From dd9703762914e4804c62982426c2ddd8a48970c9 Mon Sep 17 00:00:00 2001 From: amass <168062547@qq.com> Date: Sun, 16 Mar 2025 23:49:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E8=80=81openssl.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 3rdparty/openssl/include/openssl/aes.h | 149 - 3rdparty/openssl/include/openssl/asn1.h | 1419 ------ 3rdparty/openssl/include/openssl/asn1_mac.h | 579 --- 3rdparty/openssl/include/openssl/asn1t.h | 973 ---- 3rdparty/openssl/include/openssl/bio.h | 883 ---- 3rdparty/openssl/include/openssl/blowfish.h | 130 - 3rdparty/openssl/include/openssl/bn.h | 951 ---- 3rdparty/openssl/include/openssl/buffer.h | 125 - 3rdparty/openssl/include/openssl/camellia.h | 132 - 3rdparty/openssl/include/openssl/cast.h | 107 - 3rdparty/openssl/include/openssl/cmac.h | 82 - 3rdparty/openssl/include/openssl/cms.h | 555 --- 3rdparty/openssl/include/openssl/comp.h | 83 - 3rdparty/openssl/include/openssl/conf.h | 268 -- 3rdparty/openssl/include/openssl/conf_api.h | 89 - 3rdparty/openssl/include/openssl/crypto.h | 661 --- 3rdparty/openssl/include/openssl/des.h | 257 - 3rdparty/openssl/include/openssl/des_old.h | 497 -- 3rdparty/openssl/include/openssl/dh.h | 412 -- 3rdparty/openssl/include/openssl/dsa.h | 332 -- 3rdparty/openssl/include/openssl/dso.h | 451 -- 3rdparty/openssl/include/openssl/dtls1.h | 272 -- 3rdparty/openssl/include/openssl/e_os2.h | 328 -- 3rdparty/openssl/include/openssl/ebcdic.h | 26 - 3rdparty/openssl/include/openssl/ec.h | 1282 ----- 3rdparty/openssl/include/openssl/ecdh.h | 134 - 3rdparty/openssl/include/openssl/ecdsa.h | 335 -- 3rdparty/openssl/include/openssl/engine.h | 960 ---- 3rdparty/openssl/include/openssl/err.h | 390 -- 3rdparty/openssl/include/openssl/evp.h | 1628 ------- 3rdparty/openssl/include/openssl/hmac.h | 109 - 3rdparty/openssl/include/openssl/idea.h | 105 - 3rdparty/openssl/include/openssl/krb5_asn.h | 240 - 3rdparty/openssl/include/openssl/kssl.h | 197 - 3rdparty/openssl/include/openssl/lhash.h | 240 - 3rdparty/openssl/include/openssl/md4.h | 119 - 3rdparty/openssl/include/openssl/md5.h | 119 - 3rdparty/openssl/include/openssl/mdc2.h | 94 - 3rdparty/openssl/include/openssl/modes.h | 163 - 3rdparty/openssl/include/openssl/obj_mac.h | 4194 ----------------- 3rdparty/openssl/include/openssl/objects.h | 1143 ----- 3rdparty/openssl/include/openssl/ocsp.h | 637 --- .../openssl/include/openssl/opensslconf.h | 271 -- 3rdparty/openssl/include/openssl/opensslv.h | 97 - 3rdparty/openssl/include/openssl/ossl_typ.h | 213 - 3rdparty/openssl/include/openssl/pem.h | 617 --- 3rdparty/openssl/include/openssl/pem2.h | 70 - 3rdparty/openssl/include/openssl/pkcs12.h | 342 -- 3rdparty/openssl/include/openssl/pkcs7.h | 481 -- 3rdparty/openssl/include/openssl/pqueue.h | 99 - 3rdparty/openssl/include/openssl/rand.h | 150 - 3rdparty/openssl/include/openssl/rc2.h | 103 - 3rdparty/openssl/include/openssl/rc4.h | 88 - 3rdparty/openssl/include/openssl/ripemd.h | 105 - 3rdparty/openssl/include/openssl/rsa.h | 664 --- 3rdparty/openssl/include/openssl/safestack.h | 2672 ----------- 3rdparty/openssl/include/openssl/seed.h | 149 - 3rdparty/openssl/include/openssl/sha.h | 214 - 3rdparty/openssl/include/openssl/srp.h | 179 - 3rdparty/openssl/include/openssl/srtp.h | 147 - 3rdparty/openssl/include/openssl/ssl.h | 3163 ------------- 3rdparty/openssl/include/openssl/ssl2.h | 265 -- 3rdparty/openssl/include/openssl/ssl23.h | 84 - 3rdparty/openssl/include/openssl/ssl3.h | 774 --- 3rdparty/openssl/include/openssl/stack.h | 107 - 3rdparty/openssl/include/openssl/symhacks.h | 518 -- 3rdparty/openssl/include/openssl/tls1.h | 810 ---- 3rdparty/openssl/include/openssl/ts.h | 865 ---- 3rdparty/openssl/include/openssl/txt_db.h | 112 - 3rdparty/openssl/include/openssl/ui.h | 415 -- 3rdparty/openssl/include/openssl/ui_compat.h | 88 - 3rdparty/openssl/include/openssl/whrlpool.h | 41 - 3rdparty/openssl/include/openssl/x509.h | 1330 ------ 3rdparty/openssl/include/openssl/x509_vfy.h | 652 --- 3rdparty/openssl/include/openssl/x509v3.h | 1055 ----- 3rdparty/openssl/libs/libcrypto.so | Bin 2334400 -> 0 bytes 3rdparty/openssl/libs/libcrypto.so.1.0.0 | Bin 2334400 -> 0 bytes 3rdparty/openssl/libs/libssl.so | Bin 496704 -> 0 bytes 3rdparty/openssl/libs/libssl.so.1.0.0 | Bin 496704 -> 0 bytes 79 files changed, 38790 deletions(-) delete mode 100644 3rdparty/openssl/include/openssl/aes.h delete mode 100644 3rdparty/openssl/include/openssl/asn1.h delete mode 100644 3rdparty/openssl/include/openssl/asn1_mac.h delete mode 100644 3rdparty/openssl/include/openssl/asn1t.h delete mode 100644 3rdparty/openssl/include/openssl/bio.h delete mode 100644 3rdparty/openssl/include/openssl/blowfish.h delete mode 100644 3rdparty/openssl/include/openssl/bn.h delete mode 100644 3rdparty/openssl/include/openssl/buffer.h delete mode 100644 3rdparty/openssl/include/openssl/camellia.h delete mode 100644 3rdparty/openssl/include/openssl/cast.h delete mode 100644 3rdparty/openssl/include/openssl/cmac.h delete mode 100644 3rdparty/openssl/include/openssl/cms.h delete mode 100644 3rdparty/openssl/include/openssl/comp.h delete mode 100644 3rdparty/openssl/include/openssl/conf.h delete mode 100644 3rdparty/openssl/include/openssl/conf_api.h delete mode 100644 3rdparty/openssl/include/openssl/crypto.h delete mode 100644 3rdparty/openssl/include/openssl/des.h delete mode 100644 3rdparty/openssl/include/openssl/des_old.h delete mode 100644 3rdparty/openssl/include/openssl/dh.h delete mode 100644 3rdparty/openssl/include/openssl/dsa.h delete mode 100644 3rdparty/openssl/include/openssl/dso.h delete mode 100644 3rdparty/openssl/include/openssl/dtls1.h delete mode 100644 3rdparty/openssl/include/openssl/e_os2.h delete mode 100644 3rdparty/openssl/include/openssl/ebcdic.h delete mode 100644 3rdparty/openssl/include/openssl/ec.h delete mode 100644 3rdparty/openssl/include/openssl/ecdh.h delete mode 100644 3rdparty/openssl/include/openssl/ecdsa.h delete mode 100644 3rdparty/openssl/include/openssl/engine.h delete mode 100644 3rdparty/openssl/include/openssl/err.h delete mode 100644 3rdparty/openssl/include/openssl/evp.h delete mode 100644 3rdparty/openssl/include/openssl/hmac.h delete mode 100644 3rdparty/openssl/include/openssl/idea.h delete mode 100644 3rdparty/openssl/include/openssl/krb5_asn.h delete mode 100644 3rdparty/openssl/include/openssl/kssl.h delete mode 100644 3rdparty/openssl/include/openssl/lhash.h delete mode 100644 3rdparty/openssl/include/openssl/md4.h delete mode 100644 3rdparty/openssl/include/openssl/md5.h delete mode 100644 3rdparty/openssl/include/openssl/mdc2.h delete mode 100644 3rdparty/openssl/include/openssl/modes.h delete mode 100644 3rdparty/openssl/include/openssl/obj_mac.h delete mode 100644 3rdparty/openssl/include/openssl/objects.h delete mode 100644 3rdparty/openssl/include/openssl/ocsp.h delete mode 100644 3rdparty/openssl/include/openssl/opensslconf.h delete mode 100644 3rdparty/openssl/include/openssl/opensslv.h delete mode 100644 3rdparty/openssl/include/openssl/ossl_typ.h delete mode 100644 3rdparty/openssl/include/openssl/pem.h delete mode 100644 3rdparty/openssl/include/openssl/pem2.h delete mode 100644 3rdparty/openssl/include/openssl/pkcs12.h delete mode 100644 3rdparty/openssl/include/openssl/pkcs7.h delete mode 100644 3rdparty/openssl/include/openssl/pqueue.h delete mode 100644 3rdparty/openssl/include/openssl/rand.h delete mode 100644 3rdparty/openssl/include/openssl/rc2.h delete mode 100644 3rdparty/openssl/include/openssl/rc4.h delete mode 100644 3rdparty/openssl/include/openssl/ripemd.h delete mode 100644 3rdparty/openssl/include/openssl/rsa.h delete mode 100644 3rdparty/openssl/include/openssl/safestack.h delete mode 100644 3rdparty/openssl/include/openssl/seed.h delete mode 100644 3rdparty/openssl/include/openssl/sha.h delete mode 100644 3rdparty/openssl/include/openssl/srp.h delete mode 100644 3rdparty/openssl/include/openssl/srtp.h delete mode 100644 3rdparty/openssl/include/openssl/ssl.h delete mode 100644 3rdparty/openssl/include/openssl/ssl2.h delete mode 100644 3rdparty/openssl/include/openssl/ssl23.h delete mode 100644 3rdparty/openssl/include/openssl/ssl3.h delete mode 100644 3rdparty/openssl/include/openssl/stack.h delete mode 100644 3rdparty/openssl/include/openssl/symhacks.h delete mode 100644 3rdparty/openssl/include/openssl/tls1.h delete mode 100644 3rdparty/openssl/include/openssl/ts.h delete mode 100644 3rdparty/openssl/include/openssl/txt_db.h delete mode 100644 3rdparty/openssl/include/openssl/ui.h delete mode 100644 3rdparty/openssl/include/openssl/ui_compat.h delete mode 100644 3rdparty/openssl/include/openssl/whrlpool.h delete mode 100644 3rdparty/openssl/include/openssl/x509.h delete mode 100644 3rdparty/openssl/include/openssl/x509_vfy.h delete mode 100644 3rdparty/openssl/include/openssl/x509v3.h delete mode 100644 3rdparty/openssl/libs/libcrypto.so delete mode 100644 3rdparty/openssl/libs/libcrypto.so.1.0.0 delete mode 100644 3rdparty/openssl/libs/libssl.so delete mode 100644 3rdparty/openssl/libs/libssl.so.1.0.0 diff --git a/3rdparty/openssl/include/openssl/aes.h b/3rdparty/openssl/include/openssl/aes.h deleted file mode 100644 index faa66c4..0000000 --- a/3rdparty/openssl/include/openssl/aes.h +++ /dev/null @@ -1,149 +0,0 @@ -/* crypto/aes/aes.h */ -/* ==================================================================== - * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - */ - -#ifndef HEADER_AES_H -# define HEADER_AES_H - -# include - -# ifdef OPENSSL_NO_AES -# error AES is disabled. -# endif - -# include - -# define AES_ENCRYPT 1 -# define AES_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ -# define AES_MAXNR 14 -# define AES_BLOCK_SIZE 16 - -#ifdef __cplusplus -extern "C" { -#endif - -/* This should be a hidden type, but EVP requires that the size be known */ -struct aes_key_st { -# ifdef AES_LONG - unsigned long rd_key[4 * (AES_MAXNR + 1)]; -# else - unsigned int rd_key[4 * (AES_MAXNR + 1)]; -# endif - int rounds; -}; -typedef struct aes_key_st AES_KEY; - -const char *AES_options(void); - -int AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -int AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); - -int private_AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -int private_AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); - -void AES_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -void AES_decrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); - -void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key, const int enc); -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num); -void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char ivec[AES_BLOCK_SIZE], - unsigned char ecount_buf[AES_BLOCK_SIZE], - unsigned int *num); -/* NB: the IV is _two_ blocks long */ -void AES_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -/* NB: the IV is _four_ blocks long */ -void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - const AES_KEY *key2, const unsigned char *ivec, - const int enc); - -int AES_wrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); -int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); - - -#ifdef __cplusplus -} -#endif - -#endif /* !HEADER_AES_H */ diff --git a/3rdparty/openssl/include/openssl/asn1.h b/3rdparty/openssl/include/openssl/asn1.h deleted file mode 100644 index 68e791f..0000000 --- a/3rdparty/openssl/include/openssl/asn1.h +++ /dev/null @@ -1,1419 +0,0 @@ -/* crypto/asn1/asn1.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_ASN1_H -# define HEADER_ASN1_H - -# include -# include -# ifndef OPENSSL_NO_BIO -# include -# endif -# include -# include - -# include - -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define V_ASN1_UNIVERSAL 0x00 -# define V_ASN1_APPLICATION 0x40 -# define V_ASN1_CONTEXT_SPECIFIC 0x80 -# define V_ASN1_PRIVATE 0xc0 - -# define V_ASN1_CONSTRUCTED 0x20 -# define V_ASN1_PRIMITIVE_TAG 0x1f -# define V_ASN1_PRIMATIVE_TAG 0x1f - -# define V_ASN1_APP_CHOOSE -2/* let the recipient choose */ -# define V_ASN1_OTHER -3/* used in ASN1_TYPE */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ - -# define V_ASN1_NEG 0x100/* negative flag */ - -# define V_ASN1_UNDEF -1 -# define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ -# define V_ASN1_INTEGER 2 -# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) -# define V_ASN1_BIT_STRING 3 -# define V_ASN1_OCTET_STRING 4 -# define V_ASN1_NULL 5 -# define V_ASN1_OBJECT 6 -# define V_ASN1_OBJECT_DESCRIPTOR 7 -# define V_ASN1_EXTERNAL 8 -# define V_ASN1_REAL 9 -# define V_ASN1_ENUMERATED 10 -# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) -# define V_ASN1_UTF8STRING 12 -# define V_ASN1_SEQUENCE 16 -# define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ -# define V_ASN1_PRINTABLESTRING 19 -# define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ -# define V_ASN1_IA5STRING 22 -# define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ -# define V_ASN1_BMPSTRING 30 -/* For use with d2i_ASN1_type_bytes() */ -# define B_ASN1_NUMERICSTRING 0x0001 -# define B_ASN1_PRINTABLESTRING 0x0002 -# define B_ASN1_T61STRING 0x0004 -# define B_ASN1_TELETEXSTRING 0x0004 -# define B_ASN1_VIDEOTEXSTRING 0x0008 -# define B_ASN1_IA5STRING 0x0010 -# define B_ASN1_GRAPHICSTRING 0x0020 -# define B_ASN1_ISO64STRING 0x0040 -# define B_ASN1_VISIBLESTRING 0x0040 -# define B_ASN1_GENERALSTRING 0x0080 -# define B_ASN1_UNIVERSALSTRING 0x0100 -# define B_ASN1_OCTET_STRING 0x0200 -# define B_ASN1_BIT_STRING 0x0400 -# define B_ASN1_BMPSTRING 0x0800 -# define B_ASN1_UNKNOWN 0x1000 -# define B_ASN1_UTF8STRING 0x2000 -# define B_ASN1_UTCTIME 0x4000 -# define B_ASN1_GENERALIZEDTIME 0x8000 -# define B_ASN1_SEQUENCE 0x10000 -/* For use with ASN1_mbstring_copy() */ -# define MBSTRING_FLAG 0x1000 -# define MBSTRING_UTF8 (MBSTRING_FLAG) -# define MBSTRING_ASC (MBSTRING_FLAG|1) -# define MBSTRING_BMP (MBSTRING_FLAG|2) -# define MBSTRING_UNIV (MBSTRING_FLAG|4) -# define SMIME_OLDMIME 0x400 -# define SMIME_CRLFEOL 0x800 -# define SMIME_STREAM 0x1000 - struct X509_algor_st; -DECLARE_STACK_OF(X509_ALGOR) - -# define DECLARE_ASN1_SET_OF(type)/* filled in by mkstack.pl */ -# define IMPLEMENT_ASN1_SET_OF(type)/* nothing, no longer needed */ - -/* - * We MUST make sure that, except for constness, asn1_ctx_st and - * asn1_const_ctx are exactly the same. Fortunately, as soon as the old ASN1 - * parsing macros are gone, we can throw this away as well... - */ -typedef struct asn1_ctx_st { - unsigned char *p; /* work char pointer */ - int eos; /* end of sequence read for indefinite - * encoding */ - int error; /* error code to use when returning an error */ - int inf; /* constructed if 0x20, indefinite is 0x21 */ - int tag; /* tag from last 'get object' */ - int xclass; /* class from last 'get object' */ - long slen; /* length of last 'get object' */ - unsigned char *max; /* largest value of p allowed */ - unsigned char *q; /* temporary variable */ - unsigned char **pp; /* variable */ - int line; /* used in error processing */ -} ASN1_CTX; - -typedef struct asn1_const_ctx_st { - const unsigned char *p; /* work char pointer */ - int eos; /* end of sequence read for indefinite - * encoding */ - int error; /* error code to use when returning an error */ - int inf; /* constructed if 0x20, indefinite is 0x21 */ - int tag; /* tag from last 'get object' */ - int xclass; /* class from last 'get object' */ - long slen; /* length of last 'get object' */ - const unsigned char *max; /* largest value of p allowed */ - const unsigned char *q; /* temporary variable */ - const unsigned char **pp; /* variable */ - int line; /* used in error processing */ -} ASN1_const_CTX; - -/* - * These are used internally in the ASN1_OBJECT to keep track of whether the - * names and data need to be free()ed - */ -# define ASN1_OBJECT_FLAG_DYNAMIC 0x01/* internal use */ -# define ASN1_OBJECT_FLAG_CRITICAL 0x02/* critical x509v3 object id */ -# define ASN1_OBJECT_FLAG_DYNAMIC_STRINGS 0x04/* internal use */ -# define ASN1_OBJECT_FLAG_DYNAMIC_DATA 0x08/* internal use */ -struct asn1_object_st { - const char *sn, *ln; - int nid; - int length; - const unsigned char *data; /* data remains const after init */ - int flags; /* Should we free this one */ -}; - -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ -/* - * This indicates that the ASN1_STRING is not a real value but just a place - * holder for the location where indefinite length constructed data should be - * inserted in the memory buffer - */ -# define ASN1_STRING_FLAG_NDEF 0x010 - -/* - * This flag is used by the CMS code to indicate that a string is not - * complete and is a place holder for content when it had all been accessed. - * The flag will be reset when content has been written to it. - */ - -# define ASN1_STRING_FLAG_CONT 0x020 -/* - * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING - * type. - */ -# define ASN1_STRING_FLAG_MSTRING 0x040 -/* This is the base type that holds just about everything :-) */ -struct asn1_string_st { - int length; - int type; - unsigned char *data; - /* - * The value of the following field depends on the type being held. It - * is mostly being used for BIT_STRING so if the input data has a - * non-zero 'unused bits' value, it will be handled correctly - */ - long flags; -}; - -/* - * ASN1_ENCODING structure: this is used to save the received encoding of an - * ASN1 type. This is useful to get round problems with invalid encodings - * which can break signatures. - */ - -typedef struct ASN1_ENCODING_st { - unsigned char *enc; /* DER encoding */ - long len; /* Length of encoding */ - int modified; /* set to 1 if 'enc' is invalid */ -} ASN1_ENCODING; - -/* Used with ASN1 LONG type: if a long is set to this it is omitted */ -# define ASN1_LONG_UNDEF 0x7fffffffL - -# define STABLE_FLAGS_MALLOC 0x01 -# define STABLE_NO_MASK 0x02 -# define DIRSTRING_TYPE \ - (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) -# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) - -typedef struct asn1_string_table_st { - int nid; - long minsize; - long maxsize; - unsigned long mask; - unsigned long flags; -} ASN1_STRING_TABLE; - -DECLARE_STACK_OF(ASN1_STRING_TABLE) - -/* size limits: this stuff is taken straight from RFC2459 */ - -# define ub_name 32768 -# define ub_common_name 64 -# define ub_locality_name 128 -# define ub_state_name 128 -# define ub_organization_name 64 -# define ub_organization_unit_name 64 -# define ub_title 64 -# define ub_email_address 128 - -/* - * Declarations for template structures: for full definitions see asn1t.h - */ -typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; -typedef struct ASN1_TLC_st ASN1_TLC; -/* This is just an opaque pointer */ -typedef struct ASN1_VALUE_st ASN1_VALUE; - -/* Declare ASN1 functions: the implement macro in in asn1t.h */ - -# define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) - -# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(itname) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(const type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(name) - -# define DECLARE_ASN1_NDEF_FUNCTION(name) \ - int i2d_##name##_NDEF(name *a, unsigned char **out); - -# define DECLARE_ASN1_FUNCTIONS_const(name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - type *name##_new(void); \ - void name##_free(type *a); - -# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) - -# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx); - -# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) -# define I2D_OF(type) int (*)(type *,unsigned char **) -# define I2D_OF_const(type) int (*)(const type *,unsigned char **) - -# define CHECKED_D2I_OF(type, d2i) \ - ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) -# define CHECKED_I2D_OF(type, i2d) \ - ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) -# define CHECKED_NEW_OF(type, xnew) \ - ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# define CHECKED_PPTR_OF(type, p) \ - ((void**) (1 ? p : (type**)0)) - -# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) -# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) -# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) - -TYPEDEF_D2I2D_OF(void); - -/*- - * The following macros and typedefs allow an ASN1_ITEM - * to be embedded in a structure and referenced. Since - * the ASN1_ITEM pointers need to be globally accessible - * (possibly from shared libraries) they may exist in - * different forms. On platforms that support it the - * ASN1_ITEM structure itself will be globally exported. - * Other platforms will export a function that returns - * an ASN1_ITEM pointer. - * - * To handle both cases transparently the macros below - * should be used instead of hard coding an ASN1_ITEM - * pointer in a structure. - * - * The structure will look like this: - * - * typedef struct SOMETHING_st { - * ... - * ASN1_ITEM_EXP *iptr; - * ... - * } SOMETHING; - * - * It would be initialised as e.g.: - * - * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; - * - * and the actual pointer extracted with: - * - * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); - * - * Finally an ASN1_ITEM pointer can be extracted from an - * appropriate reference with: ASN1_ITEM_rptr(X509). This - * would be used when a function takes an ASN1_ITEM * argument. - * - */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM ASN1_ITEM_EXP; - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (&(iptr##_it)) - -# define ASN1_ITEM_rptr(ref) (&(ref##_it)) - -# define DECLARE_ASN1_ITEM(name) \ - OPENSSL_EXTERN const ASN1_ITEM name##_it; - -# else - -/* - * Platforms that can't easily handle shared global variables are declared as - * functions returning ASN1_ITEM pointers. - */ - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr()) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (iptr##_it) - -# define ASN1_ITEM_rptr(ref) (ref##_it()) - -# define DECLARE_ASN1_ITEM(name) \ - const ASN1_ITEM * name##_it(void); - -# endif - -/* Parameters used by ASN1_STRING_print_ex() */ - -/* - * These determine which characters to escape: RFC2253 special characters, - * control characters and MSB set characters - */ - -# define ASN1_STRFLGS_ESC_2253 1 -# define ASN1_STRFLGS_ESC_CTRL 2 -# define ASN1_STRFLGS_ESC_MSB 4 - -/* - * This flag determines how we do escaping: normally RC2253 backslash only, - * set this to use backslash and quote. - */ - -# define ASN1_STRFLGS_ESC_QUOTE 8 - -/* These three flags are internal use only. */ - -/* Character is a valid PrintableString character */ -# define CHARTYPE_PRINTABLESTRING 0x10 -/* Character needs escaping if it is the first character */ -# define CHARTYPE_FIRST_ESC_2253 0x20 -/* Character needs escaping if it is the last character */ -# define CHARTYPE_LAST_ESC_2253 0x40 - -/* - * NB the internal flags are safely reused below by flags handled at the top - * level. - */ - -/* - * If this is set we convert all character strings to UTF8 first - */ - -# define ASN1_STRFLGS_UTF8_CONVERT 0x10 - -/* - * If this is set we don't attempt to interpret content: just assume all - * strings are 1 byte per character. This will produce some pretty odd - * looking output! - */ - -# define ASN1_STRFLGS_IGNORE_TYPE 0x20 - -/* If this is set we include the string type in the output */ -# define ASN1_STRFLGS_SHOW_TYPE 0x40 - -/* - * This determines which strings to display and which to 'dump' (hex dump of - * content octets or DER encoding). We can only dump non character strings or - * everything. If we don't dump 'unknown' they are interpreted as character - * strings with 1 octet per character and are subject to the usual escaping - * options. - */ - -# define ASN1_STRFLGS_DUMP_ALL 0x80 -# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 - -/* - * These determine what 'dumping' does, we can dump the content octets or the - * DER encoding: both use the RFC2253 #XXXXX notation. - */ - -# define ASN1_STRFLGS_DUMP_DER 0x200 - -/* - * All the string flags consistent with RFC2253, escaping control characters - * isn't essential in RFC2253 but it is advisable anyway. - */ - -# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ - ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - ASN1_STRFLGS_UTF8_CONVERT | \ - ASN1_STRFLGS_DUMP_UNKNOWN | \ - ASN1_STRFLGS_DUMP_DER) - -DECLARE_STACK_OF(ASN1_INTEGER) -DECLARE_ASN1_SET_OF(ASN1_INTEGER) - -DECLARE_STACK_OF(ASN1_GENERALSTRING) - -typedef struct asn1_type_st { - int type; - union { - char *ptr; - ASN1_BOOLEAN boolean; - ASN1_STRING *asn1_string; - ASN1_OBJECT *object; - ASN1_INTEGER *integer; - ASN1_ENUMERATED *enumerated; - ASN1_BIT_STRING *bit_string; - ASN1_OCTET_STRING *octet_string; - ASN1_PRINTABLESTRING *printablestring; - ASN1_T61STRING *t61string; - ASN1_IA5STRING *ia5string; - ASN1_GENERALSTRING *generalstring; - ASN1_BMPSTRING *bmpstring; - ASN1_UNIVERSALSTRING *universalstring; - ASN1_UTCTIME *utctime; - ASN1_GENERALIZEDTIME *generalizedtime; - ASN1_VISIBLESTRING *visiblestring; - ASN1_UTF8STRING *utf8string; - /* - * set and sequence are left complete and still contain the set or - * sequence bytes - */ - ASN1_STRING *set; - ASN1_STRING *sequence; - ASN1_VALUE *asn1_value; - } value; -} ASN1_TYPE; - -DECLARE_STACK_OF(ASN1_TYPE) -DECLARE_ASN1_SET_OF(ASN1_TYPE) - -typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) - -typedef struct NETSCAPE_X509_st { - ASN1_OCTET_STRING *header; - X509 *cert; -} NETSCAPE_X509; - -/* This is used to contain a list of bit names */ -typedef struct BIT_STRING_BITNAME_st { - int bitnum; - const char *lname; - const char *sname; -} BIT_STRING_BITNAME; - -# define M_ASN1_STRING_length(x) ((x)->length) -# define M_ASN1_STRING_length_set(x, n) ((x)->length = (n)) -# define M_ASN1_STRING_type(x) ((x)->type) -# define M_ASN1_STRING_data(x) ((x)->data) - -/* Macros for string operations */ -# define M_ASN1_BIT_STRING_new() (ASN1_BIT_STRING *)\ - ASN1_STRING_type_new(V_ASN1_BIT_STRING) -# define M_ASN1_BIT_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_BIT_STRING_dup(a) (ASN1_BIT_STRING *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_BIT_STRING_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) -# define M_ASN1_BIT_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) - -# define M_ASN1_INTEGER_new() (ASN1_INTEGER *)\ - ASN1_STRING_type_new(V_ASN1_INTEGER) -# define M_ASN1_INTEGER_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_INTEGER_dup(a) (ASN1_INTEGER *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_INTEGER_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) - -# define M_ASN1_ENUMERATED_new() (ASN1_ENUMERATED *)\ - ASN1_STRING_type_new(V_ASN1_ENUMERATED) -# define M_ASN1_ENUMERATED_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_ENUMERATED_dup(a) (ASN1_ENUMERATED *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_ENUMERATED_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) - -# define M_ASN1_OCTET_STRING_new() (ASN1_OCTET_STRING *)\ - ASN1_STRING_type_new(V_ASN1_OCTET_STRING) -# define M_ASN1_OCTET_STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_OCTET_STRING_dup(a) (ASN1_OCTET_STRING *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_ASN1_OCTET_STRING_cmp(a,b) ASN1_STRING_cmp(\ - (const ASN1_STRING *)a,(const ASN1_STRING *)b) -# define M_ASN1_OCTET_STRING_set(a,b,c) ASN1_STRING_set((ASN1_STRING *)a,b,c) -# define M_ASN1_OCTET_STRING_print(a,b) ASN1_STRING_print(a,(ASN1_STRING *)b) -# define M_i2d_ASN1_OCTET_STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_OCTET_STRING,\ - V_ASN1_UNIVERSAL) - -# define B_ASN1_TIME \ - B_ASN1_UTCTIME | \ - B_ASN1_GENERALIZEDTIME - -# define B_ASN1_PRINTABLE \ - B_ASN1_NUMERICSTRING| \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_T61STRING| \ - B_ASN1_IA5STRING| \ - B_ASN1_BIT_STRING| \ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING|\ - B_ASN1_SEQUENCE|\ - B_ASN1_UNKNOWN - -# define B_ASN1_DIRECTORYSTRING \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_TELETEXSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_UTF8STRING - -# define B_ASN1_DISPLAYTEXT \ - B_ASN1_IA5STRING| \ - B_ASN1_VISIBLESTRING| \ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING - -# define M_ASN1_PRINTABLE_new() ASN1_STRING_type_new(V_ASN1_T61STRING) -# define M_ASN1_PRINTABLE_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_PRINTABLE(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ - pp,a->type,V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_PRINTABLE(a,pp,l) \ - d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ - B_ASN1_PRINTABLE) - -# define M_DIRECTORYSTRING_new() ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) -# define M_DIRECTORYSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_DIRECTORYSTRING(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ - pp,a->type,V_ASN1_UNIVERSAL) -# define M_d2i_DIRECTORYSTRING(a,pp,l) \ - d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ - B_ASN1_DIRECTORYSTRING) - -# define M_DISPLAYTEXT_new() ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) -# define M_DISPLAYTEXT_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_DISPLAYTEXT(a,pp) i2d_ASN1_bytes((ASN1_STRING *)a,\ - pp,a->type,V_ASN1_UNIVERSAL) -# define M_d2i_DISPLAYTEXT(a,pp,l) \ - d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l, \ - B_ASN1_DISPLAYTEXT) - -# define M_ASN1_PRINTABLESTRING_new() (ASN1_PRINTABLESTRING *)\ - ASN1_STRING_type_new(V_ASN1_PRINTABLESTRING) -# define M_ASN1_PRINTABLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_PRINTABLESTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_PRINTABLESTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_PRINTABLESTRING(a,pp,l) \ - (ASN1_PRINTABLESTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_PRINTABLESTRING) - -# define M_ASN1_T61STRING_new() (ASN1_T61STRING *)\ - ASN1_STRING_type_new(V_ASN1_T61STRING) -# define M_ASN1_T61STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_T61STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_T61STRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_T61STRING(a,pp,l) \ - (ASN1_T61STRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_T61STRING) - -# define M_ASN1_IA5STRING_new() (ASN1_IA5STRING *)\ - ASN1_STRING_type_new(V_ASN1_IA5STRING) -# define M_ASN1_IA5STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_IA5STRING_dup(a) \ - (ASN1_IA5STRING *)ASN1_STRING_dup((const ASN1_STRING *)a) -# define M_i2d_ASN1_IA5STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_IA5STRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_IA5STRING(a,pp,l) \ - (ASN1_IA5STRING *)d2i_ASN1_type_bytes((ASN1_STRING **)a,pp,l,\ - B_ASN1_IA5STRING) - -# define M_ASN1_UTCTIME_new() (ASN1_UTCTIME *)\ - ASN1_STRING_type_new(V_ASN1_UTCTIME) -# define M_ASN1_UTCTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_UTCTIME_dup(a) (ASN1_UTCTIME *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) - -# define M_ASN1_GENERALIZEDTIME_new() (ASN1_GENERALIZEDTIME *)\ - ASN1_STRING_type_new(V_ASN1_GENERALIZEDTIME) -# define M_ASN1_GENERALIZEDTIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_GENERALIZEDTIME_dup(a) (ASN1_GENERALIZEDTIME *)ASN1_STRING_dup(\ - (const ASN1_STRING *)a) - -# define M_ASN1_TIME_new() (ASN1_TIME *)\ - ASN1_STRING_type_new(V_ASN1_UTCTIME) -# define M_ASN1_TIME_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_ASN1_TIME_dup(a) (ASN1_TIME *)\ - ASN1_STRING_dup((const ASN1_STRING *)a) - -# define M_ASN1_GENERALSTRING_new() (ASN1_GENERALSTRING *)\ - ASN1_STRING_type_new(V_ASN1_GENERALSTRING) -# define M_ASN1_GENERALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_GENERALSTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_GENERALSTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_GENERALSTRING(a,pp,l) \ - (ASN1_GENERALSTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_GENERALSTRING) - -# define M_ASN1_UNIVERSALSTRING_new() (ASN1_UNIVERSALSTRING *)\ - ASN1_STRING_type_new(V_ASN1_UNIVERSALSTRING) -# define M_ASN1_UNIVERSALSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_UNIVERSALSTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UNIVERSALSTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_UNIVERSALSTRING(a,pp,l) \ - (ASN1_UNIVERSALSTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_UNIVERSALSTRING) - -# define M_ASN1_BMPSTRING_new() (ASN1_BMPSTRING *)\ - ASN1_STRING_type_new(V_ASN1_BMPSTRING) -# define M_ASN1_BMPSTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_BMPSTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_BMPSTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_BMPSTRING(a,pp,l) \ - (ASN1_BMPSTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_BMPSTRING) - -# define M_ASN1_VISIBLESTRING_new() (ASN1_VISIBLESTRING *)\ - ASN1_STRING_type_new(V_ASN1_VISIBLESTRING) -# define M_ASN1_VISIBLESTRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_VISIBLESTRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_VISIBLESTRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_VISIBLESTRING(a,pp,l) \ - (ASN1_VISIBLESTRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_VISIBLESTRING) - -# define M_ASN1_UTF8STRING_new() (ASN1_UTF8STRING *)\ - ASN1_STRING_type_new(V_ASN1_UTF8STRING) -# define M_ASN1_UTF8STRING_free(a) ASN1_STRING_free((ASN1_STRING *)a) -# define M_i2d_ASN1_UTF8STRING(a,pp) \ - i2d_ASN1_bytes((ASN1_STRING *)a,pp,V_ASN1_UTF8STRING,\ - V_ASN1_UNIVERSAL) -# define M_d2i_ASN1_UTF8STRING(a,pp,l) \ - (ASN1_UTF8STRING *)d2i_ASN1_type_bytes\ - ((ASN1_STRING **)a,pp,l,B_ASN1_UTF8STRING) - - /* for the is_set parameter to i2d_ASN1_SET */ -# define IS_SEQUENCE 0 -# define IS_SET 1 - -DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) - -int ASN1_TYPE_get(ASN1_TYPE *a); -void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); -int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); -int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); - -ASN1_OBJECT *ASN1_OBJECT_new(void); -void ASN1_OBJECT_free(ASN1_OBJECT *a); -int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); -ASN1_OBJECT *c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, - long length); -ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, - long length); - -DECLARE_ASN1_ITEM(ASN1_OBJECT) - -DECLARE_STACK_OF(ASN1_OBJECT) -DECLARE_ASN1_SET_OF(ASN1_OBJECT) - -ASN1_STRING *ASN1_STRING_new(void); -void ASN1_STRING_free(ASN1_STRING *a); -void ASN1_STRING_clear_free(ASN1_STRING *a); -int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); -ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); -ASN1_STRING *ASN1_STRING_type_new(int type); -int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); - /* - * Since this is used to store all sorts of things, via macros, for now, - * make its data void * - */ -int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); -void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); -int ASN1_STRING_length(const ASN1_STRING *x); -void ASN1_STRING_length_set(ASN1_STRING *x, int n); -int ASN1_STRING_type(ASN1_STRING *x); -unsigned char *ASN1_STRING_data(ASN1_STRING *x); - -DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) -int i2c_ASN1_BIT_STRING(ASN1_BIT_STRING *a, unsigned char **pp); -ASN1_BIT_STRING *c2i_ASN1_BIT_STRING(ASN1_BIT_STRING **a, - const unsigned char **pp, long length); -int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); -int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); -int ASN1_BIT_STRING_get_bit(ASN1_BIT_STRING *a, int n); -int ASN1_BIT_STRING_check(ASN1_BIT_STRING *a, - unsigned char *flags, int flags_len); - -# ifndef OPENSSL_NO_BIO -int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, - BIT_STRING_BITNAME *tbl, int indent); -# endif -int ASN1_BIT_STRING_num_asc(char *name, BIT_STRING_BITNAME *tbl); -int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, char *name, int value, - BIT_STRING_BITNAME *tbl); - -int i2d_ASN1_BOOLEAN(int a, unsigned char **pp); -int d2i_ASN1_BOOLEAN(int *a, const unsigned char **pp, long length); - -DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) -int i2c_ASN1_INTEGER(ASN1_INTEGER *a, unsigned char **pp); -ASN1_INTEGER *c2i_ASN1_INTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); -ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); -ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); -int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); - -DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) - -int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); -ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); -ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); -int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); -# if 0 -time_t ASN1_UTCTIME_get(const ASN1_UTCTIME *s); -# endif - -int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, - time_t t); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s, - time_t t, int offset_day, - long offset_sec); -int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s, const char *str); -int ASN1_TIME_diff(int *pday, int *psec, - const ASN1_TIME *from, const ASN1_TIME *to); - -DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) -ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); -int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, - const ASN1_OCTET_STRING *b); -int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, - int len); - -DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_NULL) -DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) - -int UTF8_getc(const unsigned char *str, int len, unsigned long *val); -int UTF8_putc(unsigned char *str, int len, unsigned long value); - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) -DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_TIME) - -DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) - -ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); -ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_TIME_check(ASN1_TIME *t); -ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t, ASN1_GENERALIZEDTIME - **out); -int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); - -int i2d_ASN1_SET(STACK_OF(OPENSSL_BLOCK) *a, unsigned char **pp, - i2d_of_void *i2d, int ex_tag, int ex_class, int is_set); -STACK_OF(OPENSSL_BLOCK) *d2i_ASN1_SET(STACK_OF(OPENSSL_BLOCK) **a, - const unsigned char **pp, - long length, d2i_of_void *d2i, - void (*free_func) (OPENSSL_BLOCK), - int ex_tag, int ex_class); - -# ifndef OPENSSL_NO_BIO -int i2a_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *a); -int a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size); -int i2a_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *a); -int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); -int i2a_ASN1_OBJECT(BIO *bp, ASN1_OBJECT *a); -int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); -int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type); -# endif -int i2t_ASN1_OBJECT(char *buf, int buf_len, ASN1_OBJECT *a); - -int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); -ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, - const char *sn, const char *ln); - -int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); -long ASN1_INTEGER_get(const ASN1_INTEGER *a); -ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); -BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); - -int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); -long ASN1_ENUMERATED_get(ASN1_ENUMERATED *a); -ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(BIGNUM *bn, ASN1_ENUMERATED *ai); -BIGNUM *ASN1_ENUMERATED_to_BN(ASN1_ENUMERATED *ai, BIGNUM *bn); - -/* General */ -/* given a string, return the correct type, max is the maximum length */ -int ASN1_PRINTABLE_type(const unsigned char *s, int max); - -int i2d_ASN1_bytes(ASN1_STRING *a, unsigned char **pp, int tag, int xclass); -ASN1_STRING *d2i_ASN1_bytes(ASN1_STRING **a, const unsigned char **pp, - long length, int Ptag, int Pclass); -unsigned long ASN1_tag2bit(int tag); -/* type is one or more of the B_ASN1_ values. */ -ASN1_STRING *d2i_ASN1_type_bytes(ASN1_STRING **a, const unsigned char **pp, - long length, int type); - -/* PARSING */ -int asn1_Finish(ASN1_CTX *c); -int asn1_const_Finish(ASN1_const_CTX *c); - -/* SPECIALS */ -int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, - int *pclass, long omax); -int ASN1_check_infinite_end(unsigned char **p, long len); -int ASN1_const_check_infinite_end(const unsigned char **p, long len); -void ASN1_put_object(unsigned char **pp, int constructed, int length, - int tag, int xclass); -int ASN1_put_eoc(unsigned char **pp); -int ASN1_object_size(int constructed, int length, int tag); - -/* Used to implement other functions */ -void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); - -# define ASN1_dup_of(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_dup_of_const(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(const type, x))) - -void *ASN1_item_dup(const ASN1_ITEM *it, void *x); - -/* ASN1 alloc/free macros for when a type is only used internally */ - -# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) -# define M_ASN1_free_of(x, type) \ - ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) - -# ifndef OPENSSL_NO_FP_API -void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); - -# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); -int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); - -# define ASN1_i2d_fp_of(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_fp_of_const(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); -int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); -# endif - -int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); - -# ifndef OPENSSL_NO_BIO -void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); - -# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); -int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); - -# define ASN1_i2d_bio_of(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_bio_of_const(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); -int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); -int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); -int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); -int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); -int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); -int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, - unsigned char *buf, int off); -int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); -int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, - int dump); -# endif -const char *ASN1_tag2str(int tag); - -/* Used to load and write netscape format cert */ - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_X509) - -int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); - -int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); -int ASN1_TYPE_get_octetstring(ASN1_TYPE *a, unsigned char *data, int max_len); -int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, - unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(ASN1_TYPE *a, long *num, - unsigned char *data, int max_len); - -STACK_OF(OPENSSL_BLOCK) *ASN1_seq_unpack(const unsigned char *buf, int len, - d2i_of_void *d2i, - void (*free_func) (OPENSSL_BLOCK)); -unsigned char *ASN1_seq_pack(STACK_OF(OPENSSL_BLOCK) *safes, i2d_of_void *i2d, - unsigned char **buf, int *len); -void *ASN1_unpack_string(ASN1_STRING *oct, d2i_of_void *d2i); -void *ASN1_item_unpack(ASN1_STRING *oct, const ASN1_ITEM *it); -ASN1_STRING *ASN1_pack_string(void *obj, i2d_of_void *i2d, - ASN1_OCTET_STRING **oct); - -# define ASN1_pack_string_of(type,obj,i2d,oct) \ - (ASN1_pack_string(CHECKED_PTR_OF(type, obj), \ - CHECKED_I2D_OF(type, i2d), \ - oct)) - -ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, - ASN1_OCTET_STRING **oct); - -void ASN1_STRING_set_default_mask(unsigned long mask); -int ASN1_STRING_set_default_mask_asc(const char *p); -unsigned long ASN1_STRING_get_default_mask(void); -int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask); -int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask, - long minsize, long maxsize); - -ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, - const unsigned char *in, int inlen, - int inform, int nid); -ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); -int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); -void ASN1_STRING_TABLE_cleanup(void); - -/* ASN1 template functions */ - -/* Old API compatible functions */ -ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); -void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it); -int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); -int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, - const ASN1_ITEM *it); - -void ASN1_add_oid_module(void); - -ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); - -/* ASN1 Print flags */ - -/* Indicate missing OPTIONAL fields */ -# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 -/* Mark start and end of SEQUENCE */ -# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 -/* Mark start and end of SEQUENCE/SET OF */ -# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 -/* Show the ASN1 type of primitives */ -# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 -/* Don't show ASN1 type of ANY */ -# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 -/* Don't show ASN1 type of MSTRINGs */ -# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 -/* Don't show field names in SEQUENCE */ -# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 -/* Show structure names of each SEQUENCE field */ -# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 -/* Don't show structure name even at top level */ -# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 - -int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, - const ASN1_ITEM *it, const ASN1_PCTX *pctx); -ASN1_PCTX *ASN1_PCTX_new(void); -void ASN1_PCTX_free(ASN1_PCTX *p); -unsigned long ASN1_PCTX_get_flags(ASN1_PCTX *p); -void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(ASN1_PCTX *p); -void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_cert_flags(ASN1_PCTX *p); -void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(ASN1_PCTX *p); -void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_str_flags(ASN1_PCTX *p); -void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); - -BIO_METHOD *BIO_f_asn1(void); - -BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); - -int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const ASN1_ITEM *it); -int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const char *hdr, const ASN1_ITEM *it); -int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); -ASN1_VALUE *SMIME_read_ASN1(BIO *bio, BIO **bcont, const ASN1_ITEM *it); -int SMIME_crlf_copy(BIO *in, BIO *out, int flags); -int SMIME_text(BIO *in, BIO *out); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_ASN1_strings(void); - -/* Error codes for the ASN1 functions. */ - -/* Function codes. */ -# define ASN1_F_A2D_ASN1_OBJECT 100 -# define ASN1_F_A2I_ASN1_ENUMERATED 101 -# define ASN1_F_A2I_ASN1_INTEGER 102 -# define ASN1_F_A2I_ASN1_STRING 103 -# define ASN1_F_APPEND_EXP 176 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 -# define ASN1_F_ASN1_CB 177 -# define ASN1_F_ASN1_CHECK_TLEN 104 -# define ASN1_F_ASN1_COLLATE_PRIMITIVE 105 -# define ASN1_F_ASN1_COLLECT 106 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 -# define ASN1_F_ASN1_D2I_FP 109 -# define ASN1_F_ASN1_D2I_READ_BIO 107 -# define ASN1_F_ASN1_DIGEST 184 -# define ASN1_F_ASN1_DO_ADB 110 -# define ASN1_F_ASN1_DUP 111 -# define ASN1_F_ASN1_ENUMERATED_SET 112 -# define ASN1_F_ASN1_ENUMERATED_TO_BN 113 -# define ASN1_F_ASN1_EX_C2I 204 -# define ASN1_F_ASN1_FIND_END 190 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 -# define ASN1_F_ASN1_GENERALIZEDTIME_SET 185 -# define ASN1_F_ASN1_GENERATE_V3 178 -# define ASN1_F_ASN1_GET_OBJECT 114 -# define ASN1_F_ASN1_HEADER_NEW 115 -# define ASN1_F_ASN1_I2D_BIO 116 -# define ASN1_F_ASN1_I2D_FP 117 -# define ASN1_F_ASN1_INTEGER_SET 118 -# define ASN1_F_ASN1_INTEGER_TO_BN 119 -# define ASN1_F_ASN1_ITEM_D2I_FP 206 -# define ASN1_F_ASN1_ITEM_DUP 191 -# define ASN1_F_ASN1_ITEM_EX_COMBINE_NEW 121 -# define ASN1_F_ASN1_ITEM_EX_D2I 120 -# define ASN1_F_ASN1_ITEM_I2D_BIO 192 -# define ASN1_F_ASN1_ITEM_I2D_FP 193 -# define ASN1_F_ASN1_ITEM_PACK 198 -# define ASN1_F_ASN1_ITEM_SIGN 195 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 -# define ASN1_F_ASN1_ITEM_UNPACK 199 -# define ASN1_F_ASN1_ITEM_VERIFY 197 -# define ASN1_F_ASN1_MBSTRING_NCOPY 122 -# define ASN1_F_ASN1_OBJECT_NEW 123 -# define ASN1_F_ASN1_OUTPUT_DATA 214 -# define ASN1_F_ASN1_PACK_STRING 124 -# define ASN1_F_ASN1_PCTX_NEW 205 -# define ASN1_F_ASN1_PKCS5_PBE_SET 125 -# define ASN1_F_ASN1_SEQ_PACK 126 -# define ASN1_F_ASN1_SEQ_UNPACK 127 -# define ASN1_F_ASN1_SIGN 128 -# define ASN1_F_ASN1_STR2TYPE 179 -# define ASN1_F_ASN1_STRING_SET 186 -# define ASN1_F_ASN1_STRING_TABLE_ADD 129 -# define ASN1_F_ASN1_STRING_TYPE_NEW 130 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 -# define ASN1_F_ASN1_TEMPLATE_NEW 133 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 -# define ASN1_F_ASN1_TIME_ADJ 217 -# define ASN1_F_ASN1_TIME_SET 175 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 -# define ASN1_F_ASN1_UNPACK_STRING 136 -# define ASN1_F_ASN1_UTCTIME_ADJ 218 -# define ASN1_F_ASN1_UTCTIME_SET 187 -# define ASN1_F_ASN1_VERIFY 137 -# define ASN1_F_B64_READ_ASN1 209 -# define ASN1_F_B64_WRITE_ASN1 210 -# define ASN1_F_BIO_NEW_NDEF 208 -# define ASN1_F_BITSTR_CB 180 -# define ASN1_F_BN_TO_ASN1_ENUMERATED 138 -# define ASN1_F_BN_TO_ASN1_INTEGER 139 -# define ASN1_F_C2I_ASN1_BIT_STRING 189 -# define ASN1_F_C2I_ASN1_INTEGER 194 -# define ASN1_F_C2I_ASN1_OBJECT 196 -# define ASN1_F_COLLECT_DATA 140 -# define ASN1_F_D2I_ASN1_BIT_STRING 141 -# define ASN1_F_D2I_ASN1_BOOLEAN 142 -# define ASN1_F_D2I_ASN1_BYTES 143 -# define ASN1_F_D2I_ASN1_GENERALIZEDTIME 144 -# define ASN1_F_D2I_ASN1_HEADER 145 -# define ASN1_F_D2I_ASN1_INTEGER 146 -# define ASN1_F_D2I_ASN1_OBJECT 147 -# define ASN1_F_D2I_ASN1_SET 148 -# define ASN1_F_D2I_ASN1_TYPE_BYTES 149 -# define ASN1_F_D2I_ASN1_UINTEGER 150 -# define ASN1_F_D2I_ASN1_UTCTIME 151 -# define ASN1_F_D2I_AUTOPRIVATEKEY 207 -# define ASN1_F_D2I_NETSCAPE_RSA 152 -# define ASN1_F_D2I_NETSCAPE_RSA_2 153 -# define ASN1_F_D2I_PRIVATEKEY 154 -# define ASN1_F_D2I_PUBLICKEY 155 -# define ASN1_F_D2I_RSA_NET 200 -# define ASN1_F_D2I_RSA_NET_2 201 -# define ASN1_F_D2I_X509 156 -# define ASN1_F_D2I_X509_CINF 157 -# define ASN1_F_D2I_X509_PKEY 159 -# define ASN1_F_I2D_ASN1_BIO_STREAM 211 -# define ASN1_F_I2D_ASN1_SET 188 -# define ASN1_F_I2D_ASN1_TIME 160 -# define ASN1_F_I2D_DSA_PUBKEY 161 -# define ASN1_F_I2D_EC_PUBKEY 181 -# define ASN1_F_I2D_PRIVATEKEY 163 -# define ASN1_F_I2D_PUBLICKEY 164 -# define ASN1_F_I2D_RSA_NET 162 -# define ASN1_F_I2D_RSA_PUBKEY 165 -# define ASN1_F_LONG_C2I 166 -# define ASN1_F_OID_MODULE_INIT 174 -# define ASN1_F_PARSE_TAGGING 182 -# define ASN1_F_PKCS5_PBE2_SET_IV 167 -# define ASN1_F_PKCS5_PBE_SET 202 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 -# define ASN1_F_PKCS5_PBKDF2_SET 219 -# define ASN1_F_SMIME_READ_ASN1 212 -# define ASN1_F_SMIME_TEXT 213 -# define ASN1_F_X509_CINF_NEW 168 -# define ASN1_F_X509_CRL_ADD0_REVOKED 169 -# define ASN1_F_X509_INFO_NEW 170 -# define ASN1_F_X509_NAME_ENCODE 203 -# define ASN1_F_X509_NAME_EX_D2I 158 -# define ASN1_F_X509_NAME_EX_NEW 171 -# define ASN1_F_X509_NEW 172 -# define ASN1_F_X509_PKEY_NEW 173 - -/* Reason codes. */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_CLASS 101 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BAD_PASSWORD_READ 103 -# define ASN1_R_BAD_TAG 104 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DECODING_ERROR 111 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_PARSING_SET_ELEMENT 113 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPECTING_A_BOOLEAN 117 -# define ASN1_R_EXPECTING_A_TIME 118 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_TIME_FORMAT 132 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_IV_TOO_LARGE 135 -# define ASN1_R_LENGTH_ERROR 136 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_DEFAULT_DIGEST 201 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_PRIVATE_KEY_HEADER_MISSING 146 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_TAG_VALUE_TOO_HIGH 153 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 218 -# define ASN1_R_UNABLE_TO_DECODE_RSA_KEY 157 -# define ASN1_R_UNABLE_TO_DECODE_RSA_PRIVATE_KEY 158 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNKOWN_FORMAT 195 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_CIPHER 165 -# define ASN1_R_UNSUPPORTED_ENCRYPTION_ALGORITHM 166 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 -# define ASN1_R_WRONG_TYPE 169 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/asn1_mac.h b/3rdparty/openssl/include/openssl/asn1_mac.h deleted file mode 100644 index abc6dc3..0000000 --- a/3rdparty/openssl/include/openssl/asn1_mac.h +++ /dev/null @@ -1,579 +0,0 @@ -/* crypto/asn1/asn1_mac.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_ASN1_MAC_H -# define HEADER_ASN1_MAC_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef ASN1_MAC_ERR_LIB -# define ASN1_MAC_ERR_LIB ERR_LIB_ASN1 -# endif - -# define ASN1_MAC_H_err(f,r,line) \ - ERR_PUT_error(ASN1_MAC_ERR_LIB,(f),(r),__FILE__,(line)) - -# define M_ASN1_D2I_vars(a,type,func) \ - ASN1_const_CTX c; \ - type ret=NULL; \ - \ - c.pp=(const unsigned char **)pp; \ - c.q= *(const unsigned char **)pp; \ - c.error=ERR_R_NESTED_ASN1_ERROR; \ - if ((a == NULL) || ((*a) == NULL)) \ - { if ((ret=(type)func()) == NULL) \ - { c.line=__LINE__; goto err; } } \ - else ret=(*a); - -# define M_ASN1_D2I_Init() \ - c.p= *(const unsigned char **)pp; \ - c.max=(length == 0)?0:(c.p+length); - -# define M_ASN1_D2I_Finish_2(a) \ - if (!asn1_const_Finish(&c)) \ - { c.line=__LINE__; goto err; } \ - *(const unsigned char **)pp=c.p; \ - if (a != NULL) (*a)=ret; \ - return(ret); - -# define M_ASN1_D2I_Finish(a,func,e) \ - M_ASN1_D2I_Finish_2(a); \ -err:\ - ASN1_MAC_H_err((e),c.error,c.line); \ - asn1_add_error(*(const unsigned char **)pp,(int)(c.q- *pp)); \ - if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ - return(NULL) - -# define M_ASN1_D2I_start_sequence() \ - if (!asn1_GetSequence(&c,&length)) \ - { c.line=__LINE__; goto err; } -/* Begin reading ASN1 without a surrounding sequence */ -# define M_ASN1_D2I_begin() \ - c.slen = length; - -/* End reading ASN1 with no check on length */ -# define M_ASN1_D2I_Finish_nolen(a, func, e) \ - *pp=c.p; \ - if (a != NULL) (*a)=ret; \ - return(ret); \ -err:\ - ASN1_MAC_H_err((e),c.error,c.line); \ - asn1_add_error(*pp,(int)(c.q- *pp)); \ - if ((ret != NULL) && ((a == NULL) || (*a != ret))) func(ret); \ - return(NULL) - -# define M_ASN1_D2I_end_sequence() \ - (((c.inf&1) == 0)?(c.slen <= 0): \ - (c.eos=ASN1_const_check_infinite_end(&c.p,c.slen))) - -/* Don't use this with d2i_ASN1_BOOLEAN() */ -# define M_ASN1_D2I_get(b, func) \ - c.q=c.p; \ - if (func(&(b),&c.p,c.slen) == NULL) \ - {c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -/* Don't use this with d2i_ASN1_BOOLEAN() */ -# define M_ASN1_D2I_get_x(type,b,func) \ - c.q=c.p; \ - if (((D2I_OF(type))func)(&(b),&c.p,c.slen) == NULL) \ - {c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -/* use this instead () */ -# define M_ASN1_D2I_get_int(b,func) \ - c.q=c.p; \ - if (func(&(b),&c.p,c.slen) < 0) \ - {c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_opt(b,func,type) \ - if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ - == (V_ASN1_UNIVERSAL|(type)))) \ - { \ - M_ASN1_D2I_get(b,func); \ - } - -# define M_ASN1_D2I_get_int_opt(b,func,type) \ - if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) \ - == (V_ASN1_UNIVERSAL|(type)))) \ - { \ - M_ASN1_D2I_get_int(b,func); \ - } - -# define M_ASN1_D2I_get_imp(b,func, type) \ - M_ASN1_next=(_tmp& V_ASN1_CONSTRUCTED)|type; \ - c.q=c.p; \ - if (func(&(b),&c.p,c.slen) == NULL) \ - {c.line=__LINE__; M_ASN1_next_prev = _tmp; goto err; } \ - c.slen-=(c.p-c.q);\ - M_ASN1_next_prev=_tmp; - -# define M_ASN1_D2I_get_IMP_opt(b,func,tag,type) \ - if ((c.slen != 0) && ((M_ASN1_next & (~V_ASN1_CONSTRUCTED)) == \ - (V_ASN1_CONTEXT_SPECIFIC|(tag)))) \ - { \ - unsigned char _tmp = M_ASN1_next; \ - M_ASN1_D2I_get_imp(b,func, type);\ - } - -# define M_ASN1_D2I_get_set(r,func,free_func) \ - M_ASN1_D2I_get_imp_set(r,func,free_func, \ - V_ASN1_SET,V_ASN1_UNIVERSAL); - -# define M_ASN1_D2I_get_set_type(type,r,func,free_func) \ - M_ASN1_D2I_get_imp_set_type(type,r,func,free_func, \ - V_ASN1_SET,V_ASN1_UNIVERSAL); - -# define M_ASN1_D2I_get_set_opt(r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ - { M_ASN1_D2I_get_set(r,func,free_func); } - -# define M_ASN1_D2I_get_set_opt_type(type,r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SET)))\ - { M_ASN1_D2I_get_set_type(type,r,func,free_func); } - -# define M_ASN1_I2D_len_SET_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_len_SET(a,f); - -# define M_ASN1_I2D_put_SET_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_put_SET(a,f); - -# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_put_SEQUENCE(a,f); - -# define M_ASN1_I2D_put_SEQUENCE_opt_type(type,a,f) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - M_ASN1_I2D_put_SEQUENCE_type(type,a,f); - -# define M_ASN1_D2I_get_IMP_set_opt(b,func,free_func,tag) \ - if ((c.slen != 0) && \ - (M_ASN1_next == \ - (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ - { \ - M_ASN1_D2I_get_imp_set(b,func,free_func,\ - tag,V_ASN1_CONTEXT_SPECIFIC); \ - } - -# define M_ASN1_D2I_get_IMP_set_opt_type(type,b,func,free_func,tag) \ - if ((c.slen != 0) && \ - (M_ASN1_next == \ - (V_ASN1_CONTEXT_SPECIFIC|V_ASN1_CONSTRUCTED|(tag))))\ - { \ - M_ASN1_D2I_get_imp_set_type(type,b,func,free_func,\ - tag,V_ASN1_CONTEXT_SPECIFIC); \ - } - -# define M_ASN1_D2I_get_seq(r,func,free_func) \ - M_ASN1_D2I_get_imp_set(r,func,free_func,\ - V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); - -# define M_ASN1_D2I_get_seq_type(type,r,func,free_func) \ - M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ - V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) - -# define M_ASN1_D2I_get_seq_opt(r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ - { M_ASN1_D2I_get_seq(r,func,free_func); } - -# define M_ASN1_D2I_get_seq_opt_type(type,r,func,free_func) \ - if ((c.slen != 0) && (M_ASN1_next == (V_ASN1_UNIVERSAL| \ - V_ASN1_CONSTRUCTED|V_ASN1_SEQUENCE)))\ - { M_ASN1_D2I_get_seq_type(type,r,func,free_func); } - -# define M_ASN1_D2I_get_IMP_set(r,func,free_func,x) \ - M_ASN1_D2I_get_imp_set(r,func,free_func,\ - x,V_ASN1_CONTEXT_SPECIFIC); - -# define M_ASN1_D2I_get_IMP_set_type(type,r,func,free_func,x) \ - M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,\ - x,V_ASN1_CONTEXT_SPECIFIC); - -# define M_ASN1_D2I_get_imp_set(r,func,free_func,a,b) \ - c.q=c.p; \ - if (d2i_ASN1_SET(&(r),&c.p,c.slen,(char *(*)())func,\ - (void (*)())free_func,a,b) == NULL) \ - { c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_imp_set_type(type,r,func,free_func,a,b) \ - c.q=c.p; \ - if (d2i_ASN1_SET_OF_##type(&(r),&c.p,c.slen,func,\ - free_func,a,b) == NULL) \ - { c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_set_strings(r,func,a,b) \ - c.q=c.p; \ - if (d2i_ASN1_STRING_SET(&(r),&c.p,c.slen,a,b) == NULL) \ - { c.line=__LINE__; goto err; } \ - c.slen-=(c.p-c.q); - -# define M_ASN1_D2I_get_EXP_opt(r,func,tag) \ - if ((c.slen != 0L) && (M_ASN1_next == \ - (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ - { \ - int Tinf,Ttag,Tclass; \ - long Tlen; \ - \ - c.q=c.p; \ - Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ - if (Tinf & 0x80) \ - { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ - c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ - Tlen = c.slen - (c.p - c.q) - 2; \ - if (func(&(r),&c.p,Tlen) == NULL) \ - { c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ - Tlen = c.slen - (c.p - c.q); \ - if(!ASN1_const_check_infinite_end(&c.p, Tlen)) \ - { c.error=ERR_R_MISSING_ASN1_EOS; \ - c.line=__LINE__; goto err; } \ - }\ - c.slen-=(c.p-c.q); \ - } - -# define M_ASN1_D2I_get_EXP_set_opt(r,func,free_func,tag,b) \ - if ((c.slen != 0) && (M_ASN1_next == \ - (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ - { \ - int Tinf,Ttag,Tclass; \ - long Tlen; \ - \ - c.q=c.p; \ - Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ - if (Tinf & 0x80) \ - { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ - c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ - Tlen = c.slen - (c.p - c.q) - 2; \ - if (d2i_ASN1_SET(&(r),&c.p,Tlen,(char *(*)())func, \ - (void (*)())free_func, \ - b,V_ASN1_UNIVERSAL) == NULL) \ - { c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ - Tlen = c.slen - (c.p - c.q); \ - if(!ASN1_check_infinite_end(&c.p, Tlen)) \ - { c.error=ERR_R_MISSING_ASN1_EOS; \ - c.line=__LINE__; goto err; } \ - }\ - c.slen-=(c.p-c.q); \ - } - -# define M_ASN1_D2I_get_EXP_set_opt_type(type,r,func,free_func,tag,b) \ - if ((c.slen != 0) && (M_ASN1_next == \ - (V_ASN1_CONSTRUCTED|V_ASN1_CONTEXT_SPECIFIC|tag))) \ - { \ - int Tinf,Ttag,Tclass; \ - long Tlen; \ - \ - c.q=c.p; \ - Tinf=ASN1_get_object(&c.p,&Tlen,&Ttag,&Tclass,c.slen); \ - if (Tinf & 0x80) \ - { c.error=ERR_R_BAD_ASN1_OBJECT_HEADER; \ - c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) \ - Tlen = c.slen - (c.p - c.q) - 2; \ - if (d2i_ASN1_SET_OF_##type(&(r),&c.p,Tlen,func, \ - free_func,b,V_ASN1_UNIVERSAL) == NULL) \ - { c.line=__LINE__; goto err; } \ - if (Tinf == (V_ASN1_CONSTRUCTED+1)) { \ - Tlen = c.slen - (c.p - c.q); \ - if(!ASN1_check_infinite_end(&c.p, Tlen)) \ - { c.error=ERR_R_MISSING_ASN1_EOS; \ - c.line=__LINE__; goto err; } \ - }\ - c.slen-=(c.p-c.q); \ - } - -/* New macros */ -# define M_ASN1_New_Malloc(ret,type) \ - if ((ret=(type *)OPENSSL_malloc(sizeof(type))) == NULL) \ - { c.line=__LINE__; goto err2; } - -# define M_ASN1_New(arg,func) \ - if (((arg)=func()) == NULL) return(NULL) - -# define M_ASN1_New_Error(a) \ -/*- err: ASN1_MAC_H_err((a),ERR_R_NESTED_ASN1_ERROR,c.line); \ - return(NULL);*/ \ - err2: ASN1_MAC_H_err((a),ERR_R_MALLOC_FAILURE,c.line); \ - return(NULL) - -/* - * BIG UGLY WARNING! This is so damn ugly I wanna puke. Unfortunately, some - * macros that use ASN1_const_CTX still insist on writing in the input - * stream. ARGH! ARGH! ARGH! Let's get rid of this macro package. Please? -- - * Richard Levitte - */ -# define M_ASN1_next (*((unsigned char *)(c.p))) -# define M_ASN1_next_prev (*((unsigned char *)(c.q))) - -/*************************************************/ - -# define M_ASN1_I2D_vars(a) int r=0,ret=0; \ - unsigned char *p; \ - if (a == NULL) return(0) - -/* Length Macros */ -# define M_ASN1_I2D_len(a,f) ret+=f(a,NULL) -# define M_ASN1_I2D_len_IMP_opt(a,f) if (a != NULL) M_ASN1_I2D_len(a,f) - -# define M_ASN1_I2D_len_SET(a,f) \ - ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET); - -# define M_ASN1_I2D_len_SET_type(type,a,f) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SET, \ - V_ASN1_UNIVERSAL,IS_SET); - -# define M_ASN1_I2D_len_SEQUENCE(a,f) \ - ret+=i2d_ASN1_SET(a,NULL,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_SEQUENCE_type(type,a,f) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,V_ASN1_SEQUENCE, \ - V_ASN1_UNIVERSAL,IS_SEQUENCE) - -# define M_ASN1_I2D_len_SEQUENCE_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_len_SEQUENCE(a,f); - -# define M_ASN1_I2D_len_SEQUENCE_opt_type(type,a,f) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - M_ASN1_I2D_len_SEQUENCE_type(type,a,f); - -# define M_ASN1_I2D_len_IMP_SET(a,f,x) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET); - -# define M_ASN1_I2D_len_IMP_SET_type(type,a,f,x) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ - V_ASN1_CONTEXT_SPECIFIC,IS_SET); - -# define M_ASN1_I2D_len_IMP_SET_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SET); - -# define M_ASN1_I2D_len_IMP_SET_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ - V_ASN1_CONTEXT_SPECIFIC,IS_SET); - -# define M_ASN1_I2D_len_IMP_SEQUENCE(a,f,x) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_IMP_SEQUENCE_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - ret+=i2d_ASN1_SET(a,NULL,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_IMP_SEQUENCE_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - ret+=i2d_ASN1_SET_OF_##type(a,NULL,f,x, \ - V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); - -# define M_ASN1_I2D_len_EXP_opt(a,f,mtag,v) \ - if (a != NULL)\ - { \ - v=f(a,NULL); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -# define M_ASN1_I2D_len_EXP_SET_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0))\ - { \ - v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -# define M_ASN1_I2D_len_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0))\ - { \ - v=i2d_ASN1_SET(a,NULL,f,tag,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -# define M_ASN1_I2D_len_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_##type##_num(a) != 0))\ - { \ - v=i2d_ASN1_SET_OF_##type(a,NULL,f,tag, \ - V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); \ - ret+=ASN1_object_size(1,v,mtag); \ - } - -/* Put Macros */ -# define M_ASN1_I2D_put(a,f) f(a,&p) - -# define M_ASN1_I2D_put_IMP_opt(a,f,t) \ - if (a != NULL) \ - { \ - unsigned char *q=p; \ - f(a,&p); \ - *q=(V_ASN1_CONTEXT_SPECIFIC|t|(*q&V_ASN1_CONSTRUCTED));\ - } - -# define M_ASN1_I2D_put_SET(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SET,\ - V_ASN1_UNIVERSAL,IS_SET) -# define M_ASN1_I2D_put_SET_type(type,a,f) \ - i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SET,V_ASN1_UNIVERSAL,IS_SET) -# define M_ASN1_I2D_put_IMP_SET(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ - V_ASN1_CONTEXT_SPECIFIC,IS_SET) -# define M_ASN1_I2D_put_IMP_SET_type(type,a,f,x) \ - i2d_ASN1_SET_OF_##type(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC,IS_SET) -# define M_ASN1_I2D_put_IMP_SEQUENCE(a,f,x) i2d_ASN1_SET(a,&p,f,x,\ - V_ASN1_CONTEXT_SPECIFIC,IS_SEQUENCE) - -# define M_ASN1_I2D_put_SEQUENCE(a,f) i2d_ASN1_SET(a,&p,f,V_ASN1_SEQUENCE,\ - V_ASN1_UNIVERSAL,IS_SEQUENCE) - -# define M_ASN1_I2D_put_SEQUENCE_type(type,a,f) \ - i2d_ASN1_SET_OF_##type(a,&p,f,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE) - -# define M_ASN1_I2D_put_SEQUENCE_opt(a,f) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - M_ASN1_I2D_put_SEQUENCE(a,f); - -# define M_ASN1_I2D_put_IMP_SET_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SET); } - -# define M_ASN1_I2D_put_IMP_SET_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ - V_ASN1_CONTEXT_SPECIFIC, \ - IS_SET); } - -# define M_ASN1_I2D_put_IMP_SEQUENCE_opt(a,f,x) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { i2d_ASN1_SET(a,&p,f,x,V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); } - -# define M_ASN1_I2D_put_IMP_SEQUENCE_opt_type(type,a,f,x) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - { i2d_ASN1_SET_OF_##type(a,&p,f,x, \ - V_ASN1_CONTEXT_SPECIFIC, \ - IS_SEQUENCE); } - -# define M_ASN1_I2D_put_EXP_opt(a,f,tag,v) \ - if (a != NULL) \ - { \ - ASN1_put_object(&p,1,v,tag,V_ASN1_CONTEXT_SPECIFIC); \ - f(a,&p); \ - } - -# define M_ASN1_I2D_put_EXP_SET_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { \ - ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ - i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SET); \ - } - -# define M_ASN1_I2D_put_EXP_SEQUENCE_opt(a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_num(a) != 0)) \ - { \ - ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ - i2d_ASN1_SET(a,&p,f,tag,V_ASN1_UNIVERSAL,IS_SEQUENCE); \ - } - -# define M_ASN1_I2D_put_EXP_SEQUENCE_opt_type(type,a,f,mtag,tag,v) \ - if ((a != NULL) && (sk_##type##_num(a) != 0)) \ - { \ - ASN1_put_object(&p,1,v,mtag,V_ASN1_CONTEXT_SPECIFIC); \ - i2d_ASN1_SET_OF_##type(a,&p,f,tag,V_ASN1_UNIVERSAL, \ - IS_SEQUENCE); \ - } - -# define M_ASN1_I2D_seq_total() \ - r=ASN1_object_size(1,ret,V_ASN1_SEQUENCE); \ - if (pp == NULL) return(r); \ - p= *pp; \ - ASN1_put_object(&p,1,ret,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL) - -# define M_ASN1_I2D_INF_seq_start(tag,ctx) \ - *(p++)=(V_ASN1_CONSTRUCTED|(tag)|(ctx)); \ - *(p++)=0x80 - -# define M_ASN1_I2D_INF_seq_end() *(p++)=0x00; *(p++)=0x00 - -# define M_ASN1_I2D_finish() *pp=p; \ - return(r); - -int asn1_GetSequence(ASN1_const_CTX *c, long *length); -void asn1_add_error(const unsigned char *address, int offset); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/asn1t.h b/3rdparty/openssl/include/openssl/asn1t.h deleted file mode 100644 index 99bc0ee..0000000 --- a/3rdparty/openssl/include/openssl/asn1t.h +++ /dev/null @@ -1,973 +0,0 @@ -/* asn1t.h */ -/* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project - * 2000. - */ -/* ==================================================================== - * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef HEADER_ASN1T_H -# define HEADER_ASN1T_H - -# include -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -/* ASN1 template defines, structures and functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - OPENSSL_GLOBAL const ASN1_ITEM itname##_it = { - -# define ASN1_ITEM_end(itname) \ - }; - -# else - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr())) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM * itname##_it(void) \ - { \ - static const ASN1_ITEM local_it = { - -# define ASN1_ITEM_end(itname) \ - }; \ - return &local_it; \ - } - -# endif - -/* Macros to aid ASN1 template writing */ - -# define ASN1_ITEM_TEMPLATE(tname) \ - static const ASN1_TEMPLATE tname##_item_tt - -# define ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) - -/* This is a ASN1 type which just embeds a template */ - -/*- - * This pair helps declare a SEQUENCE. We can do: - * - * ASN1_SEQUENCE(stname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END(stname) - * - * This will produce an ASN1_ITEM called stname_it - * for a structure called stname. - * - * If you want the same structure but a different - * name then use: - * - * ASN1_SEQUENCE(itname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END_name(stname, itname) - * - * This will create an item called itname_it using - * a structure called stname. - */ - -# define ASN1_SEQUENCE(tname) \ - static const ASN1_TEMPLATE tname##_seq_tt[] - -# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) - -# define ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE(tname) \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ - ASN1_SEQUENCE_cb(tname, cb) - -# define ASN1_SEQUENCE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_BROKEN_SEQUENCE(tname) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_ref(tname, cb, lck) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), lck, cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_enc(tname, enc, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) - -# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/*- - * This pair helps declare a CHOICE type. We can do: - * - * ASN1_CHOICE(chname) = { - * ... CHOICE options ... - * ASN1_CHOICE_END(chname) - * - * This will produce an ASN1_ITEM called chname_it - * for a structure called chname. The structure - * definition must look like this: - * typedef struct { - * int type; - * union { - * ASN1_SOMETHING *opt1; - * ASN1_SOMEOTHER *opt2; - * } value; - * } chname; - * - * the name of the selector must be 'type'. - * to use an alternative selector name use the - * ASN1_CHOICE_END_selector() version. - */ - -# define ASN1_CHOICE(tname) \ - static const ASN1_TEMPLATE tname##_ch_tt[] - -# define ASN1_CHOICE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_CHOICE(tname) - -# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) - -# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) - -# define ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_CHOICE_END_cb(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/* This helps with the template wrapper form of ASN1_ITEM */ - -# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ - (flags), (tag), 0,\ - #name, ASN1_ITEM_ref(type) } - -/* These help with SEQUENCE or CHOICE components */ - -/* used to declare other types */ - -# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ - (flags), (tag), offsetof(stname, field),\ - #field, ASN1_ITEM_ref(type) } - -/* used when the structure is combined with the parent */ - -# define ASN1_EX_COMBINE(flags, tag, type) { \ - (flags)|ASN1_TFLG_COMBINE, (tag), 0, NULL, ASN1_ITEM_ref(type) } - -/* implicit and explicit helper macros */ - -# define ASN1_IMP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_IMPLICIT | ex, tag, stname, field, type) - -# define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | ex, tag, stname, field, type) - -/* Any defined by macros: the field used is in the table itself */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# else -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } -# endif -/* Plain simple type */ -# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) - -/* OPTIONAL simple type */ -# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* IMPLICIT tagged simple type */ -# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) - -/* IMPLICIT tagged OPTIONAL simple type */ -# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) - -/* Same as above but EXPLICIT */ - -# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) -# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) - -/* SEQUENCE OF type */ -# define ASN1_SEQUENCE_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) - -/* OPTIONAL SEQUENCE OF */ -# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Same as above but for SET OF */ - -# define ASN1_SET_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) - -# define ASN1_SET_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ - -# define ASN1_IMP_SET_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_EXP_SET_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -/* EXPLICIT using indefinite length constructed form */ -# define ASN1_NDEF_EXP(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) - -/* EXPLICIT OPTIONAL using indefinite length constructed form */ -# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) - -/* Macros for the ASN1_ADB structure */ - -# define ASN1_ADB(name) \ - static const ASN1_ADB_TABLE name##_adbtbl[] - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ - ;\ - static const ASN1_ADB name##_adb = {\ - flags,\ - offsetof(name, field),\ - app_table,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - } - -# else - -# define ASN1_ADB_END(name, flags, field, app_table, def, none) \ - ;\ - static const ASN1_ITEM *name##_adb(void) \ - { \ - static const ASN1_ADB internal_adb = \ - {\ - flags,\ - offsetof(name, field),\ - app_table,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - }; \ - return (const ASN1_ITEM *) &internal_adb; \ - } \ - void dummy_function(void) - -# endif - -# define ADB_ENTRY(val, template) {val, template} - -# define ASN1_ADB_TEMPLATE(name) \ - static const ASN1_TEMPLATE name##_tt - -/* - * This is the ASN1 template structure that defines a wrapper round the - * actual type. It determines the actual position of the field in the value - * structure, various flags such as OPTIONAL and the field name. - */ - -struct ASN1_TEMPLATE_st { - unsigned long flags; /* Various flags */ - long tag; /* tag, not used if no tagging */ - unsigned long offset; /* Offset of this field in structure */ -# ifndef NO_ASN1_FIELD_NAMES - const char *field_name; /* Field name */ -# endif - ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ -}; - -/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ - -# define ASN1_TEMPLATE_item(t) (t->item_ptr) -# define ASN1_TEMPLATE_adb(t) (t->item_ptr) - -typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; -typedef struct ASN1_ADB_st ASN1_ADB; - -struct ASN1_ADB_st { - unsigned long flags; /* Various flags */ - unsigned long offset; /* Offset of selector field */ - STACK_OF(ASN1_ADB_TABLE) **app_items; /* Application defined items */ - const ASN1_ADB_TABLE *tbl; /* Table of possible types */ - long tblcount; /* Number of entries in tbl */ - const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ - const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ -}; - -struct ASN1_ADB_TABLE_st { - long value; /* NID for an object or value for an int */ - const ASN1_TEMPLATE tt; /* item for this value */ -}; - -/* template flags */ - -/* Field is optional */ -# define ASN1_TFLG_OPTIONAL (0x1) - -/* Field is a SET OF */ -# define ASN1_TFLG_SET_OF (0x1 << 1) - -/* Field is a SEQUENCE OF */ -# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) - -/* - * Special case: this refers to a SET OF that will be sorted into DER order - * when encoded *and* the corresponding STACK will be modified to match the - * new order. - */ -# define ASN1_TFLG_SET_ORDER (0x3 << 1) - -/* Mask for SET OF or SEQUENCE OF */ -# define ASN1_TFLG_SK_MASK (0x3 << 1) - -/* - * These flags mean the tag should be taken from the tag field. If EXPLICIT - * then the underlying type is used for the inner tag. - */ - -/* IMPLICIT tagging */ -# define ASN1_TFLG_IMPTAG (0x1 << 3) - -/* EXPLICIT tagging, inner tag from underlying type */ -# define ASN1_TFLG_EXPTAG (0x2 << 3) - -# define ASN1_TFLG_TAG_MASK (0x3 << 3) - -/* context specific IMPLICIT */ -# define ASN1_TFLG_IMPLICIT ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT - -/* context specific EXPLICIT */ -# define ASN1_TFLG_EXPLICIT ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT - -/* - * If tagging is in force these determine the type of tag to use. Otherwise - * the tag is determined by the underlying type. These values reflect the - * actual octet format. - */ - -/* Universal tag */ -# define ASN1_TFLG_UNIVERSAL (0x0<<6) -/* Application tag */ -# define ASN1_TFLG_APPLICATION (0x1<<6) -/* Context specific tag */ -# define ASN1_TFLG_CONTEXT (0x2<<6) -/* Private tag */ -# define ASN1_TFLG_PRIVATE (0x3<<6) - -# define ASN1_TFLG_TAG_CLASS (0x3<<6) - -/* - * These are for ANY DEFINED BY type. In this case the 'item' field points to - * an ASN1_ADB structure which contains a table of values to decode the - * relevant type - */ - -# define ASN1_TFLG_ADB_MASK (0x3<<8) - -# define ASN1_TFLG_ADB_OID (0x1<<8) - -# define ASN1_TFLG_ADB_INT (0x1<<9) - -/* - * This flag means a parent structure is passed instead of the field: this is - * useful is a SEQUENCE is being combined with a CHOICE for example. Since - * this means the structure and item name will differ we need to use the - * ASN1_CHOICE_END_name() macro for example. - */ - -# define ASN1_TFLG_COMBINE (0x1<<10) - -/* - * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes - * indefinite length constructed encoding to be used if required. - */ - -# define ASN1_TFLG_NDEF (0x1<<11) - -/* This is the actual ASN1 item itself */ - -struct ASN1_ITEM_st { - char itype; /* The item type, primitive, SEQUENCE, CHOICE - * or extern */ - long utype; /* underlying type */ - const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains - * the contents */ - long tcount; /* Number of templates if SEQUENCE or CHOICE */ - const void *funcs; /* functions that handle this type */ - long size; /* Structure size (usually) */ -# ifndef NO_ASN1_FIELD_NAMES - const char *sname; /* Structure name */ -# endif -}; - -/*- - * These are values for the itype field and - * determine how the type is interpreted. - * - * For PRIMITIVE types the underlying type - * determines the behaviour if items is NULL. - * - * Otherwise templates must contain a single - * template and the type is treated in the - * same way as the type specified in the template. - * - * For SEQUENCE types the templates field points - * to the members, the size field is the - * structure size. - * - * For CHOICE types the templates field points - * to each possible member (typically a union) - * and the 'size' field is the offset of the - * selector. - * - * The 'funcs' field is used for application - * specific functions. - * - * For COMPAT types the funcs field gives a - * set of functions that handle this type, this - * supports the old d2i, i2d convention. - * - * The EXTERN type uses a new style d2i/i2d. - * The new style should be used where possible - * because it avoids things like the d2i IMPLICIT - * hack. - * - * MSTRING is a multiple string type, it is used - * for a CHOICE of character strings where the - * actual strings all occupy an ASN1_STRING - * structure. In this case the 'utype' field - * has a special meaning, it is used as a mask - * of acceptable types using the B_ASN1 constants. - * - * NDEF_SEQUENCE is the same as SEQUENCE except - * that it will use indefinite length constructed - * encoding if requested. - * - */ - -# define ASN1_ITYPE_PRIMITIVE 0x0 - -# define ASN1_ITYPE_SEQUENCE 0x1 - -# define ASN1_ITYPE_CHOICE 0x2 - -# define ASN1_ITYPE_COMPAT 0x3 - -# define ASN1_ITYPE_EXTERN 0x4 - -# define ASN1_ITYPE_MSTRING 0x5 - -# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 - -/* - * Cache for ASN1 tag and length, so we don't keep re-reading it for things - * like CHOICE - */ - -struct ASN1_TLC_st { - char valid; /* Values below are valid */ - int ret; /* return value */ - long plen; /* length */ - int ptag; /* class value */ - int pclass; /* class value */ - int hdrlen; /* header length */ -}; - -/* Typedefs for ASN1 function pointers */ - -typedef ASN1_VALUE *ASN1_new_func(void); -typedef void ASN1_free_func(ASN1_VALUE *a); -typedef ASN1_VALUE *ASN1_d2i_func(ASN1_VALUE **a, const unsigned char **in, - long length); -typedef int ASN1_i2d_func(ASN1_VALUE *a, unsigned char **in); - -typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); -typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); -typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); - -typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, - int indent, const char *fname, - const ASN1_PCTX *pctx); - -typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, - int *putype, const ASN1_ITEM *it); -typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, - int len, int utype, char *free_cont, - const ASN1_ITEM *it); -typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, - const ASN1_ITEM *it, int indent, - const ASN1_PCTX *pctx); - -typedef struct ASN1_COMPAT_FUNCS_st { - ASN1_new_func *asn1_new; - ASN1_free_func *asn1_free; - ASN1_d2i_func *asn1_d2i; - ASN1_i2d_func *asn1_i2d; -} ASN1_COMPAT_FUNCS; - -typedef struct ASN1_EXTERN_FUNCS_st { - void *app_data; - ASN1_ex_new_func *asn1_ex_new; - ASN1_ex_free_func *asn1_ex_free; - ASN1_ex_free_func *asn1_ex_clear; - ASN1_ex_d2i *asn1_ex_d2i; - ASN1_ex_i2d *asn1_ex_i2d; - ASN1_ex_print_func *asn1_ex_print; -} ASN1_EXTERN_FUNCS; - -typedef struct ASN1_PRIMITIVE_FUNCS_st { - void *app_data; - unsigned long flags; - ASN1_ex_new_func *prim_new; - ASN1_ex_free_func *prim_free; - ASN1_ex_free_func *prim_clear; - ASN1_primitive_c2i *prim_c2i; - ASN1_primitive_i2c *prim_i2c; - ASN1_primitive_print *prim_print; -} ASN1_PRIMITIVE_FUNCS; - -/* - * This is the ASN1_AUX structure: it handles various miscellaneous - * requirements. For example the use of reference counts and an informational - * callback. The "informational callback" is called at various points during - * the ASN1 encoding and decoding. It can be used to provide minor - * customisation of the structures used. This is most useful where the - * supplied routines *almost* do the right thing but need some extra help at - * a few points. If the callback returns zero then it is assumed a fatal - * error has occurred and the main operation should be abandoned. If major - * changes in the default behaviour are required then an external type is - * more appropriate. - */ - -typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, - void *exarg); - -typedef struct ASN1_AUX_st { - void *app_data; - int flags; - int ref_offset; /* Offset of reference value */ - int ref_lock; /* Lock type to use */ - ASN1_aux_cb *asn1_cb; - int enc_offset; /* Offset of ASN1_ENCODING structure */ -} ASN1_AUX; - -/* For print related callbacks exarg points to this structure */ -typedef struct ASN1_PRINT_ARG_st { - BIO *out; - int indent; - const ASN1_PCTX *pctx; -} ASN1_PRINT_ARG; - -/* For streaming related callbacks exarg points to this structure */ -typedef struct ASN1_STREAM_ARG_st { - /* BIO to stream through */ - BIO *out; - /* BIO with filters appended */ - BIO *ndef_bio; - /* Streaming I/O boundary */ - unsigned char **boundary; -} ASN1_STREAM_ARG; - -/* Flags in ASN1_AUX */ - -/* Use a reference count */ -# define ASN1_AFLG_REFCOUNT 1 -/* Save the encoding of structure (useful for signatures) */ -# define ASN1_AFLG_ENCODING 2 -/* The Sequence length is invalid */ -# define ASN1_AFLG_BROKEN 4 - -/* operation values for asn1_cb */ - -# define ASN1_OP_NEW_PRE 0 -# define ASN1_OP_NEW_POST 1 -# define ASN1_OP_FREE_PRE 2 -# define ASN1_OP_FREE_POST 3 -# define ASN1_OP_D2I_PRE 4 -# define ASN1_OP_D2I_POST 5 -# define ASN1_OP_I2D_PRE 6 -# define ASN1_OP_I2D_POST 7 -# define ASN1_OP_PRINT_PRE 8 -# define ASN1_OP_PRINT_POST 9 -# define ASN1_OP_STREAM_PRE 10 -# define ASN1_OP_STREAM_POST 11 -# define ASN1_OP_DETACHED_PRE 12 -# define ASN1_OP_DETACHED_POST 13 - -/* Macro to implement a primitive type */ -# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) -# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement a multi string type */ -# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement an ASN1_ITEM in terms of old style funcs */ - -# define IMPLEMENT_COMPAT_ASN1(sname) IMPLEMENT_COMPAT_ASN1_type(sname, V_ASN1_SEQUENCE) - -# define IMPLEMENT_COMPAT_ASN1_type(sname, tag) \ - static const ASN1_COMPAT_FUNCS sname##_ff = { \ - (ASN1_new_func *)sname##_new, \ - (ASN1_free_func *)sname##_free, \ - (ASN1_d2i_func *)d2i_##sname, \ - (ASN1_i2d_func *)i2d_##sname, \ - }; \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_COMPAT, \ - tag, \ - NULL, \ - 0, \ - &sname##_ff, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_EXTERN, \ - tag, \ - NULL, \ - 0, \ - &fptrs, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -/* Macro to implement standard functions in terms of ASN1_ITEM structures */ - -# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) - -# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ - IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) - -# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ - pre stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - pre void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ - stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ - int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ - { \ - return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ - } - -/* - * This includes evil casts to remove const: they will go away when full ASN1 - * constification is done. - */ -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ - stname * stname##_dup(stname *x) \ - { \ - return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ - } - -# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ - IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx) \ - { \ - return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ - ASN1_ITEM_rptr(itname), pctx); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ - IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) - -# define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -/* external definitions for primitive types */ - -DECLARE_ASN1_ITEM(ASN1_BOOLEAN) -DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_FBOOLEAN) -DECLARE_ASN1_ITEM(ASN1_SEQUENCE) -DECLARE_ASN1_ITEM(CBIGNUM) -DECLARE_ASN1_ITEM(BIGNUM) -DECLARE_ASN1_ITEM(LONG) -DECLARE_ASN1_ITEM(ZLONG) - -DECLARE_STACK_OF(ASN1_VALUE) - -/* Functions used internally by the ASN1 code */ - -int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); -void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); -int ASN1_template_new(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); -int ASN1_primitive_new(ASN1_VALUE **pval, const ASN1_ITEM *it); - -void ASN1_template_free(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); -int ASN1_template_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_TEMPLATE *tt); -int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); -int ASN1_template_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_TEMPLATE *tt); -void ASN1_primitive_free(ASN1_VALUE **pval, const ASN1_ITEM *it); - -int asn1_ex_i2c(ASN1_VALUE **pval, unsigned char *cont, int *putype, - const ASN1_ITEM *it); -int asn1_ex_c2i(ASN1_VALUE **pval, const unsigned char *cont, int len, - int utype, char *free_cont, const ASN1_ITEM *it); - -int asn1_get_choice_selector(ASN1_VALUE **pval, const ASN1_ITEM *it); -int asn1_set_choice_selector(ASN1_VALUE **pval, int value, - const ASN1_ITEM *it); - -ASN1_VALUE **asn1_get_field_ptr(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt); - -const ASN1_TEMPLATE *asn1_do_adb(ASN1_VALUE **pval, const ASN1_TEMPLATE *tt, - int nullerr); - -int asn1_do_lock(ASN1_VALUE **pval, int op, const ASN1_ITEM *it); - -void asn1_enc_init(ASN1_VALUE **pval, const ASN1_ITEM *it); -void asn1_enc_free(ASN1_VALUE **pval, const ASN1_ITEM *it); -int asn1_enc_restore(int *len, unsigned char **out, ASN1_VALUE **pval, - const ASN1_ITEM *it); -int asn1_enc_save(ASN1_VALUE **pval, const unsigned char *in, int inlen, - const ASN1_ITEM *it); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/bio.h b/3rdparty/openssl/include/openssl/bio.h deleted file mode 100644 index 8f2438c..0000000 --- a/3rdparty/openssl/include/openssl/bio.h +++ /dev/null @@ -1,883 +0,0 @@ -/* crypto/bio/bio.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_BIO_H -# define HEADER_BIO_H - -# include - -# ifndef OPENSSL_NO_FP_API -# include -# endif -# include - -# include - -# ifndef OPENSSL_NO_SCTP -# ifndef OPENSSL_SYS_VMS -# include -# else -# include -# endif -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* These are the 'types' of BIOs */ -# define BIO_TYPE_NONE 0 -# define BIO_TYPE_MEM (1|0x0400) -# define BIO_TYPE_FILE (2|0x0400) - -# define BIO_TYPE_FD (4|0x0400|0x0100) -# define BIO_TYPE_SOCKET (5|0x0400|0x0100) -# define BIO_TYPE_NULL (6|0x0400) -# define BIO_TYPE_SSL (7|0x0200) -# define BIO_TYPE_MD (8|0x0200)/* passive filter */ -# define BIO_TYPE_BUFFER (9|0x0200)/* filter */ -# define BIO_TYPE_CIPHER (10|0x0200)/* filter */ -# define BIO_TYPE_BASE64 (11|0x0200)/* filter */ -# define BIO_TYPE_CONNECT (12|0x0400|0x0100)/* socket - connect */ -# define BIO_TYPE_ACCEPT (13|0x0400|0x0100)/* socket for accept */ -# define BIO_TYPE_PROXY_CLIENT (14|0x0200)/* client proxy BIO */ -# define BIO_TYPE_PROXY_SERVER (15|0x0200)/* server proxy BIO */ -# define BIO_TYPE_NBIO_TEST (16|0x0200)/* server proxy BIO */ -# define BIO_TYPE_NULL_FILTER (17|0x0200) -# define BIO_TYPE_BER (18|0x0200)/* BER -> bin filter */ -# define BIO_TYPE_BIO (19|0x0400)/* (half a) BIO pair */ -# define BIO_TYPE_LINEBUFFER (20|0x0200)/* filter */ -# define BIO_TYPE_DGRAM (21|0x0400|0x0100) -# ifndef OPENSSL_NO_SCTP -# define BIO_TYPE_DGRAM_SCTP (24|0x0400|0x0100) -# endif -# define BIO_TYPE_ASN1 (22|0x0200)/* filter */ -# define BIO_TYPE_COMP (23|0x0200)/* filter */ - -# define BIO_TYPE_DESCRIPTOR 0x0100/* socket, fd, connect or accept */ -# define BIO_TYPE_FILTER 0x0200 -# define BIO_TYPE_SOURCE_SINK 0x0400 - -/* - * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. - * BIO_set_fp(in,stdin,BIO_NOCLOSE); - */ -# define BIO_NOCLOSE 0x00 -# define BIO_CLOSE 0x01 - -/* - * These are used in the following macros and are passed to BIO_ctrl() - */ -# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ -# define BIO_CTRL_EOF 2/* opt - are we at the eof */ -# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ -# define BIO_CTRL_SET 4/* man - set the 'IO' type */ -# define BIO_CTRL_GET 5/* man - get the 'IO' type */ -# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ -# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ -# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ -# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ -# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ -# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ -# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ -# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ -/* callback is int cb(BIO *bio,state,ret); */ -# define BIO_CTRL_SET_CALLBACK 14/* opt - set callback function */ -# define BIO_CTRL_GET_CALLBACK 15/* opt - set callback function */ - -# define BIO_CTRL_SET_FILENAME 30/* BIO_s_file special */ - -/* dgram BIO stuff */ -# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ -# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected - * socket to be passed in */ -# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ -# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ - -# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation tiemd out */ - -/* #ifdef IP_MTU_DISCOVER */ -# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ -/* #endif */ - -# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ -# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 -# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ -# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. - * want to use this if asking - * the kernel fails */ - -# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was - * exceed in the previous write - * operation */ - -# define BIO_CTRL_DGRAM_GET_PEER 46 -# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ - -# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout - * to adjust socket timeouts */ -# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 - -# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 - -# ifndef OPENSSL_NO_SCTP -/* SCTP stuff */ -# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 -# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 -# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 -# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 -# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 -# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 -# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 -# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 -# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 -# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 -# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 -# endif - -/* modifiers */ -# define BIO_FP_READ 0x02 -# define BIO_FP_WRITE 0x04 -# define BIO_FP_APPEND 0x08 -# define BIO_FP_TEXT 0x10 - -# define BIO_FLAGS_READ 0x01 -# define BIO_FLAGS_WRITE 0x02 -# define BIO_FLAGS_IO_SPECIAL 0x04 -# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) -# define BIO_FLAGS_SHOULD_RETRY 0x08 -# ifndef BIO_FLAGS_UPLINK -/* - * "UPLINK" flag denotes file descriptors provided by application. It - * defaults to 0, as most platforms don't require UPLINK interface. - */ -# define BIO_FLAGS_UPLINK 0 -# endif - -/* Used in BIO_gethostbyname() */ -# define BIO_GHBN_CTRL_HITS 1 -# define BIO_GHBN_CTRL_MISSES 2 -# define BIO_GHBN_CTRL_CACHE_SIZE 3 -# define BIO_GHBN_CTRL_GET_ENTRY 4 -# define BIO_GHBN_CTRL_FLUSH 5 - -/* Mostly used in the SSL BIO */ -/*- - * Not used anymore - * #define BIO_FLAGS_PROTOCOL_DELAYED_READ 0x10 - * #define BIO_FLAGS_PROTOCOL_DELAYED_WRITE 0x20 - * #define BIO_FLAGS_PROTOCOL_STARTUP 0x40 - */ - -# define BIO_FLAGS_BASE64_NO_NL 0x100 - -/* - * This is used with memory BIOs: it means we shouldn't free up or change the - * data in any way. - */ -# define BIO_FLAGS_MEM_RDONLY 0x200 - -typedef struct bio_st BIO; - -void BIO_set_flags(BIO *b, int flags); -int BIO_test_flags(const BIO *b, int flags); -void BIO_clear_flags(BIO *b, int flags); - -# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) -# define BIO_set_retry_special(b) \ - BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_read(b) \ - BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_write(b) \ - BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) - -/* These are normally used internally in BIOs */ -# define BIO_clear_retry_flags(b) \ - BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_get_retry_flags(b) \ - BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) - -/* These should be used by the application to tell why we should retry */ -# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) -# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) -# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) -# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) -# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) - -/* - * The next three are used in conjunction with the BIO_should_io_special() - * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int - * *reason); will walk the BIO stack and return the 'reason' for the special - * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return - * the code. - */ -/* - * Returned from the SSL bio when the certificate retrieval code had an error - */ -# define BIO_RR_SSL_X509_LOOKUP 0x01 -/* Returned from the connect BIO when a connect would have blocked */ -# define BIO_RR_CONNECT 0x02 -/* Returned from the accept BIO when an accept would have blocked */ -# define BIO_RR_ACCEPT 0x03 - -/* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 - -/* - * The callback is called before and after the underling operation, The - * BIO_CB_RETURN flag indicates if it is after the call - */ -# define BIO_CB_RETURN 0x80 -# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) -# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) -# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) - -long (*BIO_get_callback(const BIO *b)) (struct bio_st *, int, const char *, - int, long, long); -void BIO_set_callback(BIO *b, - long (*callback) (struct bio_st *, int, const char *, - int, long, long)); -char *BIO_get_callback_arg(const BIO *b); -void BIO_set_callback_arg(BIO *b, char *arg); - -const char *BIO_method_name(const BIO *b); -int BIO_method_type(const BIO *b); - -typedef void bio_info_cb (struct bio_st *, int, const char *, int, long, - long); - -typedef struct bio_method_st { - int type; - const char *name; - int (*bwrite) (BIO *, const char *, int); - int (*bread) (BIO *, char *, int); - int (*bputs) (BIO *, const char *); - int (*bgets) (BIO *, char *, int); - long (*ctrl) (BIO *, int, long, void *); - int (*create) (BIO *); - int (*destroy) (BIO *); - long (*callback_ctrl) (BIO *, int, bio_info_cb *); -} BIO_METHOD; - -struct bio_st { - BIO_METHOD *method; - /* bio, mode, argp, argi, argl, ret */ - long (*callback) (struct bio_st *, int, const char *, int, long, long); - char *cb_arg; /* first argument for the callback */ - int init; - int shutdown; - int flags; /* extra storage */ - int retry_reason; - int num; - void *ptr; - struct bio_st *next_bio; /* used by filter BIOs */ - struct bio_st *prev_bio; /* used by filter BIOs */ - int references; - unsigned long num_read; - unsigned long num_write; - CRYPTO_EX_DATA ex_data; -}; - -DECLARE_STACK_OF(BIO) - -typedef struct bio_f_buffer_ctx_struct { - /*- - * Buffers are setup like this: - * - * <---------------------- size -----------------------> - * +---------------------------------------------------+ - * | consumed | remaining | free space | - * +---------------------------------------------------+ - * <-- off --><------- len -------> - */ - /*- BIO *bio; *//* - * this is now in the BIO struct - */ - int ibuf_size; /* how big is the input buffer */ - int obuf_size; /* how big is the output buffer */ - char *ibuf; /* the char array */ - int ibuf_len; /* how many bytes are in it */ - int ibuf_off; /* write/read offset */ - char *obuf; /* the char array */ - int obuf_len; /* how many bytes are in it */ - int obuf_off; /* write/read offset */ -} BIO_F_BUFFER_CTX; - -/* Prefix and suffix callback in ASN1 BIO */ -typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, - void *parg); - -# ifndef OPENSSL_NO_SCTP -/* SCTP parameter structs */ -struct bio_dgram_sctp_sndinfo { - uint16_t snd_sid; - uint16_t snd_flags; - uint32_t snd_ppid; - uint32_t snd_context; -}; - -struct bio_dgram_sctp_rcvinfo { - uint16_t rcv_sid; - uint16_t rcv_ssn; - uint16_t rcv_flags; - uint32_t rcv_ppid; - uint32_t rcv_tsn; - uint32_t rcv_cumtsn; - uint32_t rcv_context; -}; - -struct bio_dgram_sctp_prinfo { - uint16_t pr_policy; - uint32_t pr_value; -}; -# endif - -/* connect BIO stuff */ -# define BIO_CONN_S_BEFORE 1 -# define BIO_CONN_S_GET_IP 2 -# define BIO_CONN_S_GET_PORT 3 -# define BIO_CONN_S_CREATE_SOCKET 4 -# define BIO_CONN_S_CONNECT 5 -# define BIO_CONN_S_OK 6 -# define BIO_CONN_S_BLOCKED_CONNECT 7 -# define BIO_CONN_S_NBIO 8 -/* - * #define BIO_CONN_get_param_hostname BIO_ctrl - */ - -# define BIO_C_SET_CONNECT 100 -# define BIO_C_DO_STATE_MACHINE 101 -# define BIO_C_SET_NBIO 102 -# define BIO_C_SET_PROXY_PARAM 103 -# define BIO_C_SET_FD 104 -# define BIO_C_GET_FD 105 -# define BIO_C_SET_FILE_PTR 106 -# define BIO_C_GET_FILE_PTR 107 -# define BIO_C_SET_FILENAME 108 -# define BIO_C_SET_SSL 109 -# define BIO_C_GET_SSL 110 -# define BIO_C_SET_MD 111 -# define BIO_C_GET_MD 112 -# define BIO_C_GET_CIPHER_STATUS 113 -# define BIO_C_SET_BUF_MEM 114 -# define BIO_C_GET_BUF_MEM_PTR 115 -# define BIO_C_GET_BUFF_NUM_LINES 116 -# define BIO_C_SET_BUFF_SIZE 117 -# define BIO_C_SET_ACCEPT 118 -# define BIO_C_SSL_MODE 119 -# define BIO_C_GET_MD_CTX 120 -# define BIO_C_GET_PROXY_PARAM 121 -# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ -# define BIO_C_GET_CONNECT 123 -# define BIO_C_GET_ACCEPT 124 -# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 -# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 -# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 -# define BIO_C_FILE_SEEK 128 -# define BIO_C_GET_CIPHER_CTX 129 -# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input - * value */ -# define BIO_C_SET_BIND_MODE 131 -# define BIO_C_GET_BIND_MODE 132 -# define BIO_C_FILE_TELL 133 -# define BIO_C_GET_SOCKS 134 -# define BIO_C_SET_SOCKS 135 - -# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ -# define BIO_C_GET_WRITE_BUF_SIZE 137 -# define BIO_C_MAKE_BIO_PAIR 138 -# define BIO_C_DESTROY_BIO_PAIR 139 -# define BIO_C_GET_WRITE_GUARANTEE 140 -# define BIO_C_GET_READ_REQUEST 141 -# define BIO_C_SHUTDOWN_WR 142 -# define BIO_C_NREAD0 143 -# define BIO_C_NREAD 144 -# define BIO_C_NWRITE0 145 -# define BIO_C_NWRITE 146 -# define BIO_C_RESET_READ_REQUEST 147 -# define BIO_C_SET_MD_CTX 148 - -# define BIO_C_SET_PREFIX 149 -# define BIO_C_GET_PREFIX 150 -# define BIO_C_SET_SUFFIX 151 -# define BIO_C_GET_SUFFIX 152 - -# define BIO_C_SET_EX_ARG 153 -# define BIO_C_GET_EX_ARG 154 - -# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) -# define BIO_get_app_data(s) BIO_get_ex_data(s,0) - -/* BIO_s_connect() and BIO_s_socks4a_connect() */ -# define BIO_set_conn_hostname(b,name) BIO_ctrl(b,BIO_C_SET_CONNECT,0,(char *)name) -# define BIO_set_conn_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,1,(char *)port) -# define BIO_set_conn_ip(b,ip) BIO_ctrl(b,BIO_C_SET_CONNECT,2,(char *)ip) -# define BIO_set_conn_int_port(b,port) BIO_ctrl(b,BIO_C_SET_CONNECT,3,(char *)port) -# define BIO_get_conn_hostname(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,0) -# define BIO_get_conn_port(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,1) -# define BIO_get_conn_ip(b) BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2) -# define BIO_get_conn_int_port(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) - -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) - -/* BIO_s_accept() */ -# define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name) -# define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0) -/* #define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) */ -# define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(n)?(void *)"a":NULL) -# define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(char *)bio) - -# define BIO_BIND_NORMAL 0 -# define BIO_BIND_REUSEADDR_IF_UNUSED 1 -# define BIO_BIND_REUSEADDR 2 -# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) -# define BIO_get_bind_mode(b,mode) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) - -/* BIO_s_accept() and BIO_s_connect() */ -# define BIO_do_connect(b) BIO_do_handshake(b) -# define BIO_do_accept(b) BIO_do_handshake(b) -# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) - -/* BIO_s_proxy_client() */ -# define BIO_set_url(b,url) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,0,(char *)(url)) -# define BIO_set_proxies(b,p) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,1,(char *)(p)) -/* BIO_set_nbio(b,n) */ -# define BIO_set_filter_bio(b,s) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,2,(char *)(s)) -/* BIO *BIO_get_filter_bio(BIO *bio); */ -# define BIO_set_proxy_cb(b,cb) BIO_callback_ctrl(b,BIO_C_SET_PROXY_PARAM,3,(void *(*cb)())) -# define BIO_set_proxy_header(b,sk) BIO_ctrl(b,BIO_C_SET_PROXY_PARAM,4,(char *)sk) -# define BIO_set_no_connect_return(b,bool) BIO_int_ctrl(b,BIO_C_SET_PROXY_PARAM,5,bool) - -# define BIO_get_proxy_header(b,skp) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,0,(char *)skp) -# define BIO_get_proxies(b,pxy_p) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,1,(char *)(pxy_p)) -# define BIO_get_url(b,url) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,2,(char *)(url)) -# define BIO_get_no_connect_return(b) BIO_ctrl(b,BIO_C_GET_PROXY_PARAM,5,NULL) - -/* BIO_s_datagram(), BIO_s_fd(), BIO_s_socket(), BIO_s_accept() and BIO_s_connect() */ -# define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) -# define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) - -/* BIO_s_file() */ -# define BIO_set_fp(b,fp,c) BIO_ctrl(b,BIO_C_SET_FILE_PTR,c,(char *)fp) -# define BIO_get_fp(b,fpp) BIO_ctrl(b,BIO_C_GET_FILE_PTR,0,(char *)fpp) - -/* BIO_s_fd() and BIO_s_file() */ -# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) -# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) - -/* - * name is cast to lose const, but might be better to route through a - * function so we can do it safely - */ -# ifdef CONST_STRICT -/* - * If you are wondering why this isn't defined, its because CONST_STRICT is - * purely a compile-time kludge to allow const to be checked. - */ -int BIO_read_filename(BIO *b, const char *name); -# else -# define BIO_read_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ,(char *)name) -# endif -# define BIO_write_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_WRITE,name) -# define BIO_append_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_APPEND,name) -# define BIO_rw_filename(b,name) BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) - -/* - * WARNING WARNING, this ups the reference count on the read bio of the SSL - * structure. This is because the ssl read BIO is now pointed to by the - * next_bio field in the bio. So when you free the BIO, make sure you are - * doing a BIO_free_all() to catch the underlying BIO. - */ -# define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)ssl) -# define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)sslp) -# define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) -# define BIO_set_ssl_renegotiate_bytes(b,num) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL) -# define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) -# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL) - -/* defined in evp.h */ -/* #define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,1,(char *)md) */ - -# define BIO_get_mem_data(b,pp) BIO_ctrl(b,BIO_CTRL_INFO,0,(char *)pp) -# define BIO_set_mem_buf(b,bm,c) BIO_ctrl(b,BIO_C_SET_BUF_MEM,c,(char *)bm) -# define BIO_get_mem_ptr(b,pp) BIO_ctrl(b,BIO_C_GET_BUF_MEM_PTR,0,(char *)pp) -# define BIO_set_mem_eof_return(b,v) \ - BIO_ctrl(b,BIO_C_SET_BUF_MEM_EOF_RETURN,v,NULL) - -/* For the BIO_f_buffer() type */ -# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) -# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) -# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) -# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) -# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) - -/* Don't use the next one unless you know what you are doing :-) */ -# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) - -# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) -# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) -# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) -# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) -# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) -# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) -/* ...pending macros have inappropriate return type */ -size_t BIO_ctrl_pending(BIO *b); -size_t BIO_ctrl_wpending(BIO *b); -# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) -# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ - cbp) -# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) - -/* For the BIO_f_buffer() type */ -# define BIO_buffer_get_num_lines(b) BIO_ctrl(b,BIO_CTRL_GET,0,NULL) - -/* For BIO_s_bio() */ -# define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) -# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) -# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) -# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) -# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) -/* macros with inappropriate type -- but ...pending macros use int too: */ -# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) -# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) -size_t BIO_ctrl_get_write_guarantee(BIO *b); -size_t BIO_ctrl_get_read_request(BIO *b); -int BIO_ctrl_reset_read_request(BIO *b); - -/* ctrl macros for dgram */ -# define BIO_ctrl_dgram_connect(b,peer) \ - (int)BIO_ctrl(b,BIO_CTRL_DGRAM_CONNECT,0, (char *)peer) -# define BIO_ctrl_set_connected(b, state, peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_CONNECTED, state, (char *)peer) -# define BIO_dgram_recv_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP, 0, NULL) -# define BIO_dgram_send_timedout(b) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP, 0, NULL) -# define BIO_dgram_get_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_GET_PEER, 0, (char *)peer) -# define BIO_dgram_set_peer(b,peer) \ - (int)BIO_ctrl(b, BIO_CTRL_DGRAM_SET_PEER, 0, (char *)peer) -# define BIO_dgram_get_mtu_overhead(b) \ - (unsigned int)BIO_ctrl((b), BIO_CTRL_DGRAM_GET_MTU_OVERHEAD, 0, NULL) - -/* These two aren't currently implemented */ -/* int BIO_get_ex_num(BIO *bio); */ -/* void BIO_set_ex_free_func(BIO *bio,int idx,void (*cb)()); */ -int BIO_set_ex_data(BIO *bio, int idx, void *data); -void *BIO_get_ex_data(BIO *bio, int idx); -int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); -unsigned long BIO_number_read(BIO *bio); -unsigned long BIO_number_written(BIO *bio); - -/* For BIO_f_asn1() */ -int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, - asn1_ps_func *prefix_free); -int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, - asn1_ps_func **pprefix_free); -int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, - asn1_ps_func *suffix_free); -int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, - asn1_ps_func **psuffix_free); - -# ifndef OPENSSL_NO_FP_API -BIO_METHOD *BIO_s_file(void); -BIO *BIO_new_file(const char *filename, const char *mode); -BIO *BIO_new_fp(FILE *stream, int close_flag); -# define BIO_s_file_internal BIO_s_file -# endif -BIO *BIO_new(BIO_METHOD *type); -int BIO_set(BIO *a, BIO_METHOD *type); -int BIO_free(BIO *a); -void BIO_vfree(BIO *a); -int BIO_read(BIO *b, void *data, int len); -int BIO_gets(BIO *bp, char *buf, int size); -int BIO_write(BIO *b, const void *data, int len); -int BIO_puts(BIO *bp, const char *buf); -int BIO_indent(BIO *b, int indent, int max); -long BIO_ctrl(BIO *bp, int cmd, long larg, void *parg); -long BIO_callback_ctrl(BIO *b, int cmd, - void (*fp) (struct bio_st *, int, const char *, int, - long, long)); -char *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); -long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); -BIO *BIO_push(BIO *b, BIO *append); -BIO *BIO_pop(BIO *b); -void BIO_free_all(BIO *a); -BIO *BIO_find_type(BIO *b, int bio_type); -BIO *BIO_next(BIO *b); -BIO *BIO_get_retry_BIO(BIO *bio, int *reason); -int BIO_get_retry_reason(BIO *bio); -BIO *BIO_dup_chain(BIO *in); - -int BIO_nread0(BIO *bio, char **buf); -int BIO_nread(BIO *bio, char **buf, int num); -int BIO_nwrite0(BIO *bio, char **buf); -int BIO_nwrite(BIO *bio, char **buf, int num); - -long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, - long argl, long ret); - -BIO_METHOD *BIO_s_mem(void); -BIO *BIO_new_mem_buf(const void *buf, int len); -BIO_METHOD *BIO_s_socket(void); -BIO_METHOD *BIO_s_connect(void); -BIO_METHOD *BIO_s_accept(void); -BIO_METHOD *BIO_s_fd(void); -# ifndef OPENSSL_SYS_OS2 -BIO_METHOD *BIO_s_log(void); -# endif -BIO_METHOD *BIO_s_bio(void); -BIO_METHOD *BIO_s_null(void); -BIO_METHOD *BIO_f_null(void); -BIO_METHOD *BIO_f_buffer(void); -# ifdef OPENSSL_SYS_VMS -BIO_METHOD *BIO_f_linebuffer(void); -# endif -BIO_METHOD *BIO_f_nbio_test(void); -# ifndef OPENSSL_NO_DGRAM -BIO_METHOD *BIO_s_datagram(void); -# ifndef OPENSSL_NO_SCTP -BIO_METHOD *BIO_s_datagram_sctp(void); -# endif -# endif - -/* BIO_METHOD *BIO_f_ber(void); */ - -int BIO_sock_should_retry(int i); -int BIO_sock_non_fatal_error(int error); -int BIO_dgram_non_fatal_error(int error); - -int BIO_fd_should_retry(int i); -int BIO_fd_non_fatal_error(int error); -int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len); -int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len, int indent); -int BIO_dump(BIO *b, const char *bytes, int len); -int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); -# ifndef OPENSSL_NO_FP_API -int BIO_dump_fp(FILE *fp, const char *s, int len); -int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); -# endif -int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, - int datalen); - -struct hostent *BIO_gethostbyname(const char *name); -/*- - * We might want a thread-safe interface too: - * struct hostent *BIO_gethostbyname_r(const char *name, - * struct hostent *result, void *buffer, size_t buflen); - * or something similar (caller allocates a struct hostent, - * pointed to by "result", and additional buffer space for the various - * substructures; if the buffer does not suffice, NULL is returned - * and an appropriate error code is set). - */ -int BIO_sock_error(int sock); -int BIO_socket_ioctl(int fd, long type, void *arg); -int BIO_socket_nbio(int fd, int mode); -int BIO_get_port(const char *str, unsigned short *port_ptr); -int BIO_get_host_ip(const char *str, unsigned char *ip); -int BIO_get_accept_socket(char *host_port, int mode); -int BIO_accept(int sock, char **ip_port); -int BIO_sock_init(void); -void BIO_sock_cleanup(void); -int BIO_set_tcp_ndelay(int sock, int turn_on); - -BIO *BIO_new_socket(int sock, int close_flag); -BIO *BIO_new_dgram(int fd, int close_flag); -# ifndef OPENSSL_NO_SCTP -BIO *BIO_new_dgram_sctp(int fd, int close_flag); -int BIO_dgram_is_sctp(BIO *bio); -int BIO_dgram_sctp_notification_cb(BIO *b, - void (*handle_notifications) (BIO *bio, - void - *context, - void *buf), - void *context); -int BIO_dgram_sctp_wait_for_dry(BIO *b); -int BIO_dgram_sctp_msg_waiting(BIO *b); -# endif -BIO *BIO_new_fd(int fd, int close_flag); -BIO *BIO_new_connect(const char *host_port); -BIO *BIO_new_accept(const char *host_port); - -int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -/* - * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. - * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default - * value. - */ - -void BIO_copy_next_retry(BIO *b); - -/* - * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); - */ - -# ifdef __GNUC__ -# define __bio_h__attr__ __attribute__ -# else -# define __bio_h__attr__(x) -# endif -int BIO_printf(BIO *bio, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 3, 0))); -# undef __bio_h__attr__ - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_BIO_strings(void); - -/* Error codes for the BIO functions. */ - -/* Function codes. */ -# define BIO_F_ACPT_STATE 100 -# define BIO_F_BIO_ACCEPT 101 -# define BIO_F_BIO_BER_GET_HEADER 102 -# define BIO_F_BIO_CALLBACK_CTRL 131 -# define BIO_F_BIO_CTRL 103 -# define BIO_F_BIO_GETHOSTBYNAME 120 -# define BIO_F_BIO_GETS 104 -# define BIO_F_BIO_GET_ACCEPT_SOCKET 105 -# define BIO_F_BIO_GET_HOST_IP 106 -# define BIO_F_BIO_GET_PORT 107 -# define BIO_F_BIO_MAKE_PAIR 121 -# define BIO_F_BIO_NEW 108 -# define BIO_F_BIO_NEW_FILE 109 -# define BIO_F_BIO_NEW_MEM_BUF 126 -# define BIO_F_BIO_NREAD 123 -# define BIO_F_BIO_NREAD0 124 -# define BIO_F_BIO_NWRITE 125 -# define BIO_F_BIO_NWRITE0 122 -# define BIO_F_BIO_PUTS 110 -# define BIO_F_BIO_READ 111 -# define BIO_F_BIO_SOCK_INIT 112 -# define BIO_F_BIO_WRITE 113 -# define BIO_F_BUFFER_CTRL 114 -# define BIO_F_CONN_CTRL 127 -# define BIO_F_CONN_STATE 115 -# define BIO_F_DGRAM_SCTP_READ 132 -# define BIO_F_DGRAM_SCTP_WRITE 133 -# define BIO_F_FILE_CTRL 116 -# define BIO_F_FILE_READ 130 -# define BIO_F_LINEBUFFER_CTRL 129 -# define BIO_F_MEM_READ 128 -# define BIO_F_MEM_WRITE 117 -# define BIO_F_SSL_NEW 118 -# define BIO_F_WSASTARTUP 119 - -/* Reason codes. */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BAD_HOSTNAME_LOOKUP 102 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_EOF_ON_MEMORY_BIO 127 -# define BIO_R_ERROR_SETTING_NBIO 104 -# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPTED_SOCKET 105 -# define BIO_R_ERROR_SETTING_NBIO_ON_ACCEPT_SOCKET 106 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_IP_ADDRESS 108 -# define BIO_R_IN_USE 123 -# define BIO_R_KEEPALIVE 109 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NO_ACCEPT_PORT_SPECIFIED 111 -# define BIO_R_NO_HOSTNAME_SPECIFIED 112 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_PORT_SPECIFIED 114 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 -# define BIO_R_TAG_MISMATCH 116 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/blowfish.h b/3rdparty/openssl/include/openssl/blowfish.h deleted file mode 100644 index 8329302..0000000 --- a/3rdparty/openssl/include/openssl/blowfish.h +++ /dev/null @@ -1,130 +0,0 @@ -/* crypto/bf/blowfish.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_BLOWFISH_H -# define HEADER_BLOWFISH_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_NO_BF -# error BF is disabled. -# endif - -# define BF_ENCRYPT 1 -# define BF_DECRYPT 0 - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! BF_LONG_LOG2 has to be defined along. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -# if defined(__LP32__) -# define BF_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define BF_LONG unsigned long -# define BF_LONG_LOG2 3 -/* - * _CRAY note. I could declare short, but I have no idea what impact - * does it have on performance on none-T3E machines. I could declare - * int, but at least on C90 sizeof(int) can be chosen at compile time. - * So I've chosen long... - * - */ -# else -# define BF_LONG unsigned int -# endif - -# define BF_ROUNDS 16 -# define BF_BLOCK 8 - -typedef struct bf_key_st { - BF_LONG P[BF_ROUNDS + 2]; - BF_LONG S[4 * 256]; -} BF_KEY; - -# ifdef OPENSSL_FIPS -void private_BF_set_key(BF_KEY *key, int len, const unsigned char *data); -# endif -void BF_set_key(BF_KEY *key, int len, const unsigned char *data); - -void BF_encrypt(BF_LONG *data, const BF_KEY *key); -void BF_decrypt(BF_LONG *data, const BF_KEY *key); - -void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, - const BF_KEY *key, int enc); -void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - const BF_KEY *schedule, unsigned char *ivec, int enc); -void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num); -const char *BF_options(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/bn.h b/3rdparty/openssl/include/openssl/bn.h deleted file mode 100644 index 633d1b1..0000000 --- a/3rdparty/openssl/include/openssl/bn.h +++ /dev/null @@ -1,951 +0,0 @@ -/* crypto/bn/bn.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the Eric Young open source - * license provided above. - * - * The binary polynomial arithmetic software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_BN_H -# define HEADER_BN_H - -# include -# include -# ifndef OPENSSL_NO_FP_API -# include /* FILE */ -# endif -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * These preprocessor symbols control various aspects of the bignum headers - * and library code. They're not defined by any "normal" configuration, as - * they are intended for development and testing purposes. NB: defining all - * three can be useful for debugging application code as well as openssl - * itself. BN_DEBUG - turn on various debugging alterations to the bignum - * code BN_DEBUG_RAND - uses random poisoning of unused words to trip up - * mismanagement of bignum internals. You must also define BN_DEBUG. - */ -/* #define BN_DEBUG */ -/* #define BN_DEBUG_RAND */ - -# ifndef OPENSSL_SMALL_FOOTPRINT -# define BN_MUL_COMBA -# define BN_SQR_COMBA -# define BN_RECURSION -# endif - -/* - * This next option uses the C libraries (2 word)/(1 word) function. If it is - * not defined, I use my C version (which is slower). The reason for this - * flag is that when the particular C compiler library routine is used, and - * the library is linked with a different compiler, the library is missing. - * This mostly happens when the library is built with gcc and then linked - * using normal cc. This would be a common occurrence because gcc normally - * produces code that is 2 times faster than system compilers for the big - * number stuff. For machines with only one compiler (or shared libraries), - * this should be on. Again this in only really a problem on machines using - * "long long's", are 32bit, and are not using my assembler code. - */ -# if defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_WINDOWS) || \ - defined(OPENSSL_SYS_WIN32) || defined(linux) -# ifndef BN_DIV2W -# define BN_DIV2W -# endif -# endif - -/* - * assuming long is 64bit - this is the DEC Alpha unsigned long long is only - * 64 bits :-(, don't define BN_LLONG for the DEC Alpha - */ -# ifdef SIXTY_FOUR_BIT_LONG -# define BN_ULLONG unsigned long long -# define BN_ULONG unsigned long -# define BN_LONG long -# define BN_BITS 128 -# define BN_BYTES 8 -# define BN_BITS2 64 -# define BN_BITS4 32 -# define BN_MASK (0xffffffffffffffffffffffffffffffffLL) -# define BN_MASK2 (0xffffffffffffffffL) -# define BN_MASK2l (0xffffffffL) -# define BN_MASK2h (0xffffffff00000000L) -# define BN_MASK2h1 (0xffffffff80000000L) -# define BN_TBIT (0x8000000000000000L) -# define BN_DEC_CONV (10000000000000000000UL) -# define BN_DEC_FMT1 "%lu" -# define BN_DEC_FMT2 "%019lu" -# define BN_DEC_NUM 19 -# define BN_HEX_FMT1 "%lX" -# define BN_HEX_FMT2 "%016lX" -# endif - -/* - * This is where the long long data type is 64 bits, but long is 32. For - * machines where there are 64bit registers, this is the mode to use. IRIX, - * on R4000 and above should use this mode, along with the relevant assembler - * code :-). Do NOT define BN_LLONG. - */ -# ifdef SIXTY_FOUR_BIT -# undef BN_LLONG -# undef BN_ULLONG -# define BN_ULONG unsigned long long -# define BN_LONG long long -# define BN_BITS 128 -# define BN_BYTES 8 -# define BN_BITS2 64 -# define BN_BITS4 32 -# define BN_MASK2 (0xffffffffffffffffLL) -# define BN_MASK2l (0xffffffffL) -# define BN_MASK2h (0xffffffff00000000LL) -# define BN_MASK2h1 (0xffffffff80000000LL) -# define BN_TBIT (0x8000000000000000LL) -# define BN_DEC_CONV (10000000000000000000ULL) -# define BN_DEC_FMT1 "%llu" -# define BN_DEC_FMT2 "%019llu" -# define BN_DEC_NUM 19 -# define BN_HEX_FMT1 "%llX" -# define BN_HEX_FMT2 "%016llX" -# endif - -# ifdef THIRTY_TWO_BIT -# ifdef BN_LLONG -# if defined(_WIN32) && !defined(__GNUC__) -# define BN_ULLONG unsigned __int64 -# define BN_MASK (0xffffffffffffffffI64) -# else -# define BN_ULLONG unsigned long long -# define BN_MASK (0xffffffffffffffffLL) -# endif -# endif -# define BN_ULONG unsigned int -# define BN_LONG int -# define BN_BITS 64 -# define BN_BYTES 4 -# define BN_BITS2 32 -# define BN_BITS4 16 -# define BN_MASK2 (0xffffffffL) -# define BN_MASK2l (0xffff) -# define BN_MASK2h1 (0xffff8000L) -# define BN_MASK2h (0xffff0000L) -# define BN_TBIT (0x80000000L) -# define BN_DEC_CONV (1000000000L) -# define BN_DEC_FMT1 "%u" -# define BN_DEC_FMT2 "%09u" -# define BN_DEC_NUM 9 -# define BN_HEX_FMT1 "%X" -# define BN_HEX_FMT2 "%08X" -# endif - -# define BN_DEFAULT_BITS 1280 - -# define BN_FLG_MALLOCED 0x01 -# define BN_FLG_STATIC_DATA 0x02 - -/* - * avoid leaking exponent information through timing, - * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, - * BN_div() will call BN_div_no_branch, - * BN_mod_inverse() will call BN_mod_inverse_no_branch. - */ -# define BN_FLG_CONSTTIME 0x04 - -# ifdef OPENSSL_NO_DEPRECATED -/* deprecated name for the flag */ -# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME -/* - * avoid leaking exponent information through timings - * (BN_mod_exp_mont() will call BN_mod_exp_mont_consttime) - */ -# endif - -# ifndef OPENSSL_NO_DEPRECATED -# define BN_FLG_FREE 0x8000 - /* used for debuging */ -# endif -# define BN_set_flags(b,n) ((b)->flags|=(n)) -# define BN_get_flags(b,n) ((b)->flags&(n)) - -/* - * get a clone of a BIGNUM with changed flags, for *temporary* use only (the - * two BIGNUMs cannot not be used in parallel!) - */ -# define BN_with_flags(dest,b,n) ((dest)->d=(b)->d, \ - (dest)->top=(b)->top, \ - (dest)->dmax=(b)->dmax, \ - (dest)->neg=(b)->neg, \ - (dest)->flags=(((dest)->flags & BN_FLG_MALLOCED) \ - | ((b)->flags & ~BN_FLG_MALLOCED) \ - | BN_FLG_STATIC_DATA \ - | (n))) - -/* Already declared in ossl_typ.h */ -# if 0 -typedef struct bignum_st BIGNUM; -/* Used for temp variables (declaration hidden in bn_lcl.h) */ -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; -# endif - -struct bignum_st { - BN_ULONG *d; /* Pointer to an array of 'BN_BITS2' bit - * chunks. */ - int top; /* Index of last used d +1. */ - /* The next are internal book keeping for bn_expand. */ - int dmax; /* Size of the d array. */ - int neg; /* one if the number is negative */ - int flags; -}; - -/* Used for montgomery multiplication */ -struct bn_mont_ctx_st { - int ri; /* number of bits in R */ - BIGNUM RR; /* used to convert to montgomery form */ - BIGNUM N; /* The modulus */ - BIGNUM Ni; /* R*(1/R mod N) - N*Ni = 1 (Ni is only - * stored for bignum algorithm) */ - BN_ULONG n0[2]; /* least significant word(s) of Ni; (type - * changed with 0.9.9, was "BN_ULONG n0;" - * before) */ - int flags; -}; - -/* - * Used for reciprocal division/mod functions It cannot be shared between - * threads - */ -struct bn_recp_ctx_st { - BIGNUM N; /* the divisor */ - BIGNUM Nr; /* the reciprocal */ - int num_bits; - int shift; - int flags; -}; - -/* Used for slow "generation" functions. */ -struct bn_gencb_st { - unsigned int ver; /* To handle binary (in)compatibility */ - void *arg; /* callback-specific data */ - union { - /* if(ver==1) - handles old style callbacks */ - void (*cb_1) (int, int, void *); - /* if(ver==2) - new callback style */ - int (*cb_2) (int, int, BN_GENCB *); - } cb; -}; -/* Wrapper function to make using BN_GENCB easier, */ -int BN_GENCB_call(BN_GENCB *cb, int a, int b); -/* Macro to populate a BN_GENCB structure with an "old"-style callback */ -# define BN_GENCB_set_old(gencb, callback, cb_arg) { \ - BN_GENCB *tmp_gencb = (gencb); \ - tmp_gencb->ver = 1; \ - tmp_gencb->arg = (cb_arg); \ - tmp_gencb->cb.cb_1 = (callback); } -/* Macro to populate a BN_GENCB structure with a "new"-style callback */ -# define BN_GENCB_set(gencb, callback, cb_arg) { \ - BN_GENCB *tmp_gencb = (gencb); \ - tmp_gencb->ver = 2; \ - tmp_gencb->arg = (cb_arg); \ - tmp_gencb->cb.cb_2 = (callback); } - -# define BN_prime_checks 0 /* default: select number of iterations based - * on the size of the number */ - -/* - * number of Miller-Rabin iterations for an error rate of less than 2^-80 for - * random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook of - * Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; - * original paper: Damgaard, Landrock, Pomerance: Average case error - * estimates for the strong probable prime test. -- Math. Comp. 61 (1993) - * 177-194) - */ -# define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ - (b) >= 850 ? 3 : \ - (b) >= 650 ? 4 : \ - (b) >= 550 ? 5 : \ - (b) >= 450 ? 6 : \ - (b) >= 400 ? 7 : \ - (b) >= 350 ? 8 : \ - (b) >= 300 ? 9 : \ - (b) >= 250 ? 12 : \ - (b) >= 200 ? 15 : \ - (b) >= 150 ? 18 : \ - /* b >= 100 */ 27) - -# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) - -/* Note that BN_abs_is_word didn't work reliably for w == 0 until 0.9.8 */ -# define BN_abs_is_word(a,w) ((((a)->top == 1) && ((a)->d[0] == (BN_ULONG)(w))) || \ - (((w) == 0) && ((a)->top == 0))) -# define BN_is_zero(a) ((a)->top == 0) -# define BN_is_one(a) (BN_abs_is_word((a),1) && !(a)->neg) -# define BN_is_word(a,w) (BN_abs_is_word((a),(w)) && (!(w) || !(a)->neg)) -# define BN_is_odd(a) (((a)->top > 0) && ((a)->d[0] & 1)) - -# define BN_one(a) (BN_set_word((a),1)) -# define BN_zero_ex(a) \ - do { \ - BIGNUM *_tmp_bn = (a); \ - _tmp_bn->top = 0; \ - _tmp_bn->neg = 0; \ - } while(0) -# ifdef OPENSSL_NO_DEPRECATED -# define BN_zero(a) BN_zero_ex(a) -# else -# define BN_zero(a) (BN_set_word((a),0)) -# endif - -const BIGNUM *BN_value_one(void); -char *BN_options(void); -BN_CTX *BN_CTX_new(void); -# ifndef OPENSSL_NO_DEPRECATED -void BN_CTX_init(BN_CTX *c); -# endif -void BN_CTX_free(BN_CTX *c); -void BN_CTX_start(BN_CTX *ctx); -BIGNUM *BN_CTX_get(BN_CTX *ctx); -void BN_CTX_end(BN_CTX *ctx); -int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); -int BN_pseudo_rand_range(BIGNUM *rnd, const BIGNUM *range); -int BN_num_bits(const BIGNUM *a); -int BN_num_bits_word(BN_ULONG); -BIGNUM *BN_new(void); -void BN_init(BIGNUM *); -void BN_clear_free(BIGNUM *a); -BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); -void BN_swap(BIGNUM *a, BIGNUM *b); -BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2bin(const BIGNUM *a, unsigned char *to); -BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2mpi(const BIGNUM *a, unsigned char *to); -int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); -/** BN_set_negative sets sign of a BIGNUM - * \param b pointer to the BIGNUM object - * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise - */ -void BN_set_negative(BIGNUM *b, int n); -/** BN_is_negative returns 1 if the BIGNUM is negative - * \param a pointer to the BIGNUM object - * \return 1 if a < 0 and 0 otherwise - */ -# define BN_is_negative(a) ((a)->neg != 0) - -int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, - BN_CTX *ctx); -# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) -int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); -int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); - -BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); -BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); -int BN_mul_word(BIGNUM *a, BN_ULONG w); -int BN_add_word(BIGNUM *a, BN_ULONG w); -int BN_sub_word(BIGNUM *a, BN_ULONG w); -int BN_set_word(BIGNUM *a, BN_ULONG w); -BN_ULONG BN_get_word(const BIGNUM *a); - -int BN_cmp(const BIGNUM *a, const BIGNUM *b); -void BN_free(BIGNUM *a); -int BN_is_bit_set(const BIGNUM *a, int n); -int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_lshift1(BIGNUM *r, const BIGNUM *a); -int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); -int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, - BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); - -int BN_mask_bits(BIGNUM *a, int n); -# ifndef OPENSSL_NO_FP_API -int BN_print_fp(FILE *fp, const BIGNUM *a); -# endif -# ifdef HEADER_BIO_H -int BN_print(BIO *fp, const BIGNUM *a); -# else -int BN_print(void *fp, const BIGNUM *a); -# endif -int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); -int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_rshift1(BIGNUM *r, const BIGNUM *a); -void BN_clear(BIGNUM *a); -BIGNUM *BN_dup(const BIGNUM *a); -int BN_ucmp(const BIGNUM *a, const BIGNUM *b); -int BN_set_bit(BIGNUM *a, int n); -int BN_clear_bit(BIGNUM *a, int n); -char *BN_bn2hex(const BIGNUM *a); -char *BN_bn2dec(const BIGNUM *a); -int BN_hex2bn(BIGNUM **a, const char *str); -int BN_dec2bn(BIGNUM **a, const char *str); -int BN_asc2bn(BIGNUM **a, const char *str); -int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns - * -2 for - * error */ -BIGNUM *BN_mod_inverse(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); -BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); - -void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); - -/* Deprecated versions */ -# ifndef OPENSSL_NO_DEPRECATED -BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, const BIGNUM *rem, - void (*callback) (int, int, void *), void *cb_arg); -int BN_is_prime(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg); -int BN_is_prime_fasttest(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), BN_CTX *ctx, - void *cb_arg, int do_trial_division); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ - -/* Newer versions */ -int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, - const BIGNUM *rem, BN_GENCB *cb); -int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); -int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, - int do_trial_division, BN_GENCB *cb); - -int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); - -int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - const BIGNUM *Xp, const BIGNUM *Xp1, - const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, - BN_GENCB *cb); -int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, - BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, - BN_CTX *ctx, BN_GENCB *cb); - -BN_MONT_CTX *BN_MONT_CTX_new(void); -void BN_MONT_CTX_init(BN_MONT_CTX *ctx); -int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - BN_MONT_CTX *mont, BN_CTX *ctx); -# define BN_to_montgomery(r,a,mont,ctx) BN_mod_mul_montgomery(\ - (r),(a),&((mont)->RR),(mont),(ctx)) -int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, - BN_MONT_CTX *mont, BN_CTX *ctx); -void BN_MONT_CTX_free(BN_MONT_CTX *mont); -int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); -BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); -BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, int lock, - const BIGNUM *mod, BN_CTX *ctx); - -/* BN_BLINDING flags */ -# define BN_BLINDING_NO_UPDATE 0x00000001 -# define BN_BLINDING_NO_RECREATE 0x00000002 - -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); -void BN_BLINDING_free(BN_BLINDING *b); -int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); -int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, - BN_CTX *); -# ifndef OPENSSL_NO_DEPRECATED -unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); -void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); -# endif -CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); -unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); -void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); -BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx), - BN_MONT_CTX *m_ctx); - -# ifndef OPENSSL_NO_DEPRECATED -void BN_set_params(int mul, int high, int low, int mont); -int BN_get_params(int which); /* 0, mul, 1 high, 2 low, 3 mont */ -# endif - -void BN_RECP_CTX_init(BN_RECP_CTX *recp); -BN_RECP_CTX *BN_RECP_CTX_new(void); -void BN_RECP_CTX_free(BN_RECP_CTX *recp); -int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); -int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, - BN_RECP_CTX *recp, BN_CTX *ctx); -int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - BN_RECP_CTX *recp, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M - -/* - * Functions for arithmetic over binary polynomials represented by BIGNUMs. - * The BIGNUM::neg property of BIGNUMs representing binary polynomials is - * ignored. Note that input arguments are not const so that their bit arrays - * can be expanded to the appropriate size if needed. - */ - -/* - * r = a + b - */ -int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) -/* - * r=a mod p - */ -int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) -/*- - * Some functions allow for representation of the irreducible polynomials - * as an unsigned int[], say p. The irreducible f(t) is then of the form: - * t^p[0] + t^p[1] + ... + t^p[k] - * where m = p[0] > p[1] > ... > p[k] = 0. - */ -/* r = a mod p */ -int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], - BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], - BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); -int BN_GF2m_arr2poly(const int p[], BIGNUM *a); - -# endif - -/* - * faster mod functions for the 'NIST primes' 0 <= a < p^2 - */ -int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -const BIGNUM *BN_get0_nist_prime_192(void); -const BIGNUM *BN_get0_nist_prime_224(void); -const BIGNUM *BN_get0_nist_prime_256(void); -const BIGNUM *BN_get0_nist_prime_384(void); -const BIGNUM *BN_get0_nist_prime_521(void); - -/* library internal functions */ - -# define bn_expand(a,bits) \ - ( \ - bits > (INT_MAX - BN_BITS2 + 1) ? \ - NULL \ - : \ - (((bits+BN_BITS2-1)/BN_BITS2) <= (a)->dmax) ? \ - (a) \ - : \ - bn_expand2((a),(bits+BN_BITS2-1)/BN_BITS2) \ - ) - -# define bn_wexpand(a,words) (((words) <= (a)->dmax)?(a):bn_expand2((a),(words))) -BIGNUM *bn_expand2(BIGNUM *a, int words); -# ifndef OPENSSL_NO_DEPRECATED -BIGNUM *bn_dup_expand(const BIGNUM *a, int words); /* unused */ -# endif - -/*- - * Bignum consistency macros - * There is one "API" macro, bn_fix_top(), for stripping leading zeroes from - * bignum data after direct manipulations on the data. There is also an - * "internal" macro, bn_check_top(), for verifying that there are no leading - * zeroes. Unfortunately, some auditing is required due to the fact that - * bn_fix_top() has become an overabused duct-tape because bignum data is - * occasionally passed around in an inconsistent state. So the following - * changes have been made to sort this out; - * - bn_fix_top()s implementation has been moved to bn_correct_top() - * - if BN_DEBUG isn't defined, bn_fix_top() maps to bn_correct_top(), and - * bn_check_top() is as before. - * - if BN_DEBUG *is* defined; - * - bn_check_top() tries to pollute unused words even if the bignum 'top' is - * consistent. (ed: only if BN_DEBUG_RAND is defined) - * - bn_fix_top() maps to bn_check_top() rather than "fixing" anything. - * The idea is to have debug builds flag up inconsistent bignums when they - * occur. If that occurs in a bn_fix_top(), we examine the code in question; if - * the use of bn_fix_top() was appropriate (ie. it follows directly after code - * that manipulates the bignum) it is converted to bn_correct_top(), and if it - * was not appropriate, we convert it permanently to bn_check_top() and track - * down the cause of the bug. Eventually, no internal code should be using the - * bn_fix_top() macro. External applications and libraries should try this with - * their own code too, both in terms of building against the openssl headers - * with BN_DEBUG defined *and* linking with a version of OpenSSL built with it - * defined. This not only improves external code, it provides more test - * coverage for openssl's own code. - */ - -# ifdef BN_DEBUG - -/* We only need assert() when debugging */ -# include - -# ifdef BN_DEBUG_RAND -/* To avoid "make update" cvs wars due to BN_DEBUG, use some tricks */ -# ifndef RAND_pseudo_bytes -int RAND_pseudo_bytes(unsigned char *buf, int num); -# define BN_DEBUG_TRIX -# endif -# define bn_pollute(a) \ - do { \ - const BIGNUM *_bnum1 = (a); \ - if(_bnum1->top < _bnum1->dmax) { \ - unsigned char _tmp_char; \ - /* We cast away const without the compiler knowing, any \ - * *genuinely* constant variables that aren't mutable \ - * wouldn't be constructed with top!=dmax. */ \ - BN_ULONG *_not_const; \ - memcpy(&_not_const, &_bnum1->d, sizeof(BN_ULONG*)); \ - /* Debug only - safe to ignore error return */ \ - RAND_pseudo_bytes(&_tmp_char, 1); \ - memset((unsigned char *)(_not_const + _bnum1->top), _tmp_char, \ - (_bnum1->dmax - _bnum1->top) * sizeof(BN_ULONG)); \ - } \ - } while(0) -# ifdef BN_DEBUG_TRIX -# undef RAND_pseudo_bytes -# endif -# else -# define bn_pollute(a) -# endif -# define bn_check_top(a) \ - do { \ - const BIGNUM *_bnum2 = (a); \ - if (_bnum2 != NULL) { \ - assert((_bnum2->top == 0) || \ - (_bnum2->d[_bnum2->top - 1] != 0)); \ - bn_pollute(_bnum2); \ - } \ - } while(0) - -# define bn_fix_top(a) bn_check_top(a) - -# define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2) -# define bn_wcheck_size(bn, words) \ - do { \ - const BIGNUM *_bnum2 = (bn); \ - assert((words) <= (_bnum2)->dmax && (words) >= (_bnum2)->top); \ - /* avoid unused variable warning with NDEBUG */ \ - (void)(_bnum2); \ - } while(0) - -# else /* !BN_DEBUG */ - -# define bn_pollute(a) -# define bn_check_top(a) -# define bn_fix_top(a) bn_correct_top(a) -# define bn_check_size(bn, bits) -# define bn_wcheck_size(bn, words) - -# endif - -# define bn_correct_top(a) \ - { \ - BN_ULONG *ftl; \ - int tmp_top = (a)->top; \ - if (tmp_top > 0) \ - { \ - for (ftl= &((a)->d[tmp_top-1]); tmp_top > 0; tmp_top--) \ - if (*(ftl--)) break; \ - (a)->top = tmp_top; \ - } \ - if ((a)->top == 0) \ - (a)->neg = 0; \ - bn_pollute(a); \ - } - -BN_ULONG bn_mul_add_words(BN_ULONG *rp, const BN_ULONG *ap, int num, - BN_ULONG w); -BN_ULONG bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w); -void bn_sqr_words(BN_ULONG *rp, const BN_ULONG *ap, int num); -BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d); -BN_ULONG bn_add_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - int num); -BN_ULONG bn_sub_words(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, - int num); - -/* Primes from RFC 2409 */ -BIGNUM *get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *get_rfc2409_prime_1024(BIGNUM *bn); - -/* Primes from RFC 3526 */ -BIGNUM *get_rfc3526_prime_1536(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_2048(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_3072(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_4096(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_6144(BIGNUM *bn); -BIGNUM *get_rfc3526_prime_8192(BIGNUM *bn); - -int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_BN_strings(void); - -/* Error codes for the BN functions. */ - -/* Function codes. */ -# define BN_F_BNRAND 127 -# define BN_F_BN_BLINDING_CONVERT_EX 100 -# define BN_F_BN_BLINDING_CREATE_PARAM 128 -# define BN_F_BN_BLINDING_INVERT_EX 101 -# define BN_F_BN_BLINDING_NEW 102 -# define BN_F_BN_BLINDING_UPDATE 103 -# define BN_F_BN_BN2DEC 104 -# define BN_F_BN_BN2HEX 105 -# define BN_F_BN_CTX_GET 116 -# define BN_F_BN_CTX_NEW 106 -# define BN_F_BN_CTX_START 129 -# define BN_F_BN_DIV 107 -# define BN_F_BN_DIV_NO_BRANCH 138 -# define BN_F_BN_DIV_RECP 130 -# define BN_F_BN_EXP 123 -# define BN_F_BN_EXPAND2 108 -# define BN_F_BN_EXPAND_INTERNAL 120 -# define BN_F_BN_GF2M_MOD 131 -# define BN_F_BN_GF2M_MOD_EXP 132 -# define BN_F_BN_GF2M_MOD_MUL 133 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 -# define BN_F_BN_GF2M_MOD_SQR 136 -# define BN_F_BN_GF2M_MOD_SQRT 137 -# define BN_F_BN_LSHIFT 145 -# define BN_F_BN_MOD_EXP2_MONT 118 -# define BN_F_BN_MOD_EXP_MONT 109 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 -# define BN_F_BN_MOD_EXP_MONT_WORD 117 -# define BN_F_BN_MOD_EXP_RECP 125 -# define BN_F_BN_MOD_EXP_SIMPLE 126 -# define BN_F_BN_MOD_INVERSE 110 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 -# define BN_F_BN_MOD_LSHIFT_QUICK 119 -# define BN_F_BN_MOD_MUL_RECIPROCAL 111 -# define BN_F_BN_MOD_SQRT 121 -# define BN_F_BN_MPI2BN 112 -# define BN_F_BN_NEW 113 -# define BN_F_BN_RAND 114 -# define BN_F_BN_RAND_RANGE 122 -# define BN_F_BN_RSHIFT 146 -# define BN_F_BN_USUB 115 - -/* Reason codes. */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_SOLUTION 116 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/buffer.h b/3rdparty/openssl/include/openssl/buffer.h deleted file mode 100644 index efd240a..0000000 --- a/3rdparty/openssl/include/openssl/buffer.h +++ /dev/null @@ -1,125 +0,0 @@ -/* crypto/buffer/buffer.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_BUFFER_H -# define HEADER_BUFFER_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -# if !defined(NO_SYS_TYPES_H) -# include -# endif - -/* Already declared in ossl_typ.h */ -/* typedef struct buf_mem_st BUF_MEM; */ - -struct buf_mem_st { - size_t length; /* current number of bytes */ - char *data; - size_t max; /* size of buffer */ -}; - -BUF_MEM *BUF_MEM_new(void); -void BUF_MEM_free(BUF_MEM *a); -int BUF_MEM_grow(BUF_MEM *str, size_t len); -int BUF_MEM_grow_clean(BUF_MEM *str, size_t len); -size_t BUF_strnlen(const char *str, size_t maxlen); -char *BUF_strdup(const char *str); - -/* - * Like strndup, but in addition, explicitly guarantees to never read past the - * first |siz| bytes of |str|. - */ -char *BUF_strndup(const char *str, size_t siz); - -void *BUF_memdup(const void *data, size_t siz); -void BUF_reverse(unsigned char *out, const unsigned char *in, size_t siz); - -/* safe string functions */ -size_t BUF_strlcpy(char *dst, const char *src, size_t siz); -size_t BUF_strlcat(char *dst, const char *src, size_t siz); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_BUF_strings(void); - -/* Error codes for the BUF functions. */ - -/* Function codes. */ -# define BUF_F_BUF_MEMDUP 103 -# define BUF_F_BUF_MEM_GROW 100 -# define BUF_F_BUF_MEM_GROW_CLEAN 105 -# define BUF_F_BUF_MEM_NEW 101 -# define BUF_F_BUF_STRDUP 102 -# define BUF_F_BUF_STRNDUP 104 - -/* Reason codes. */ - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/camellia.h b/3rdparty/openssl/include/openssl/camellia.h deleted file mode 100644 index 45e8d25..0000000 --- a/3rdparty/openssl/include/openssl/camellia.h +++ /dev/null @@ -1,132 +0,0 @@ -/* crypto/camellia/camellia.h */ -/* ==================================================================== - * Copyright (c) 2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - */ - -#ifndef HEADER_CAMELLIA_H -# define HEADER_CAMELLIA_H - -# include - -# ifdef OPENSSL_NO_CAMELLIA -# error CAMELLIA is disabled. -# endif - -# include - -# define CAMELLIA_ENCRYPT 1 -# define CAMELLIA_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* This should be a hidden type, but EVP requires that the size be known */ - -# define CAMELLIA_BLOCK_SIZE 16 -# define CAMELLIA_TABLE_BYTE_LEN 272 -# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) - -typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match - * with WORD */ - -struct camellia_key_st { - union { - double d; /* ensures 64-bit align */ - KEY_TABLE_TYPE rd_key; - } u; - int grand_rounds; -}; -typedef struct camellia_key_st CAMELLIA_KEY; - -# ifdef OPENSSL_FIPS -int private_Camellia_set_key(const unsigned char *userKey, const int bits, - CAMELLIA_KEY *key); -# endif -int Camellia_set_key(const unsigned char *userKey, const int bits, - CAMELLIA_KEY *key); - -void Camellia_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); -void Camellia_decrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); - -void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key, const int enc); -void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, const int enc); -void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num); -void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char ivec[CAMELLIA_BLOCK_SIZE], - unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], - unsigned int *num); - -#ifdef __cplusplus -} -#endif - -#endif /* !HEADER_Camellia_H */ diff --git a/3rdparty/openssl/include/openssl/cast.h b/3rdparty/openssl/include/openssl/cast.h deleted file mode 100644 index 0003ec9..0000000 --- a/3rdparty/openssl/include/openssl/cast.h +++ /dev/null @@ -1,107 +0,0 @@ -/* crypto/cast/cast.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_CAST_H -# define HEADER_CAST_H - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -# ifdef OPENSSL_NO_CAST -# error CAST is disabled. -# endif - -# define CAST_ENCRYPT 1 -# define CAST_DECRYPT 0 - -# define CAST_LONG unsigned int - -# define CAST_BLOCK 8 -# define CAST_KEY_LENGTH 16 - -typedef struct cast_key_st { - CAST_LONG data[32]; - int short_key; /* Use reduced rounds for short key */ -} CAST_KEY; - -# ifdef OPENSSL_FIPS -void private_CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -# endif -void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAST_KEY *key, int enc); -void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *ks, unsigned char *iv, - int enc); -void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/cmac.h b/3rdparty/openssl/include/openssl/cmac.h deleted file mode 100644 index 175be83..0000000 --- a/3rdparty/openssl/include/openssl/cmac.h +++ /dev/null @@ -1,82 +0,0 @@ -/* crypto/cmac/cmac.h */ -/* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL - * project. - */ -/* ==================================================================== - * Copyright (c) 2010 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - */ - -#ifndef HEADER_CMAC_H -# define HEADER_CMAC_H - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -/* Opaque */ -typedef struct CMAC_CTX_st CMAC_CTX; - -CMAC_CTX *CMAC_CTX_new(void); -void CMAC_CTX_cleanup(CMAC_CTX *ctx); -void CMAC_CTX_free(CMAC_CTX *ctx); -EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); -int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); - -int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, - const EVP_CIPHER *cipher, ENGINE *impl); -int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); -int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); -int CMAC_resume(CMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/cms.h b/3rdparty/openssl/include/openssl/cms.h deleted file mode 100644 index e6c7f96..0000000 --- a/3rdparty/openssl/include/openssl/cms.h +++ /dev/null @@ -1,555 +0,0 @@ -/* crypto/cms/cms.h */ -/* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL - * project. - */ -/* ==================================================================== - * Copyright (c) 2008 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - */ - -#ifndef HEADER_CMS_H -# define HEADER_CMS_H - -# include - -# ifdef OPENSSL_NO_CMS -# error CMS is disabled. -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct CMS_ContentInfo_st CMS_ContentInfo; -typedef struct CMS_SignerInfo_st CMS_SignerInfo; -typedef struct CMS_CertificateChoices CMS_CertificateChoices; -typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; -typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; -typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; -typedef struct CMS_Receipt_st CMS_Receipt; -typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; -typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; - -DECLARE_STACK_OF(CMS_SignerInfo) -DECLARE_STACK_OF(GENERAL_NAMES) -DECLARE_STACK_OF(CMS_RecipientEncryptedKey) -DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) -DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) -DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) - -# define CMS_SIGNERINFO_ISSUER_SERIAL 0 -# define CMS_SIGNERINFO_KEYIDENTIFIER 1 - -# define CMS_RECIPINFO_NONE -1 -# define CMS_RECIPINFO_TRANS 0 -# define CMS_RECIPINFO_AGREE 1 -# define CMS_RECIPINFO_KEK 2 -# define CMS_RECIPINFO_PASS 3 -# define CMS_RECIPINFO_OTHER 4 - -/* S/MIME related flags */ - -# define CMS_TEXT 0x1 -# define CMS_NOCERTS 0x2 -# define CMS_NO_CONTENT_VERIFY 0x4 -# define CMS_NO_ATTR_VERIFY 0x8 -# define CMS_NOSIGS \ - (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) -# define CMS_NOINTERN 0x10 -# define CMS_NO_SIGNER_CERT_VERIFY 0x20 -# define CMS_NOVERIFY 0x20 -# define CMS_DETACHED 0x40 -# define CMS_BINARY 0x80 -# define CMS_NOATTR 0x100 -# define CMS_NOSMIMECAP 0x200 -# define CMS_NOOLDMIMETYPE 0x400 -# define CMS_CRLFEOL 0x800 -# define CMS_STREAM 0x1000 -# define CMS_NOCRL 0x2000 -# define CMS_PARTIAL 0x4000 -# define CMS_REUSE_DIGEST 0x8000 -# define CMS_USE_KEYID 0x10000 -# define CMS_DEBUG_DECRYPT 0x20000 -# define CMS_KEY_PARAM 0x40000 - -const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); - -BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); -int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); - -ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); -int CMS_is_detached(CMS_ContentInfo *cms); -int CMS_set_detached(CMS_ContentInfo *cms, int detached); - -# ifdef HEADER_PEM_H -DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) -# endif -int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); -CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); -int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); - -BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); -int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, - int flags); -CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); -int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); - -int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, - unsigned int flags); - -CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags); - -CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, - X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, unsigned int flags); - -int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); - -int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, - unsigned int flags); - -int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, - const unsigned char *key, size_t keylen, - BIO *dcont, BIO *out, unsigned int flags); - -CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags); - -int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, - const unsigned char *key, size_t keylen); - -int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); - -int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, - STACK_OF(X509) *certs, - X509_STORE *store, unsigned int flags); - -STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); - -CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags); - -int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, - BIO *dcont, BIO *out, unsigned int flags); - -int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); -int CMS_decrypt_set1_key(CMS_ContentInfo *cms, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen); -int CMS_decrypt_set1_password(CMS_ContentInfo *cms, - unsigned char *pass, ossl_ssize_t passlen); - -STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); -int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); -EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); -CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); -CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, - X509 *recip, unsigned int flags); -int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); -int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, - EVP_PKEY **pk, X509 **recip, - X509_ALGOR **palg); -int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen, - ASN1_GENERALIZEDTIME *date, - ASN1_OBJECT *otherTypeId, - ASN1_TYPE *otherType); - -int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pid, - ASN1_GENERALIZEDTIME **pdate, - ASN1_OBJECT **potherid, - ASN1_TYPE **pothertype); - -int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, - unsigned char *key, size_t keylen); - -int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, - const unsigned char *id, size_t idlen); - -int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, - unsigned char *pass, - ossl_ssize_t passlen); - -CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, - int iter, int wrap_nid, - int pbe_nid, - unsigned char *pass, - ossl_ssize_t passlen, - const EVP_CIPHER *kekciph); - -int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); -int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); - -int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); - -int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); -const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); - -CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); -int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); -int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); -STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); - -CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); -int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); -int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); -STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); - -int CMS_SignedData_init(CMS_ContentInfo *cms); -CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, - X509 *signer, EVP_PKEY *pk, const EVP_MD *md, - unsigned int flags); -EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); -EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); -STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); - -void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); -int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); -int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - unsigned int flags); -void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, - X509 **signer, X509_ALGOR **pdig, - X509_ALGOR **psig); -ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); -int CMS_SignerInfo_sign(CMS_SignerInfo *si); -int CMS_SignerInfo_verify(CMS_SignerInfo *si); -int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); - -int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); -int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, - int algnid, int keysize); -int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); - -int CMS_signed_get_attr_count(const CMS_SignerInfo *si); -int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); -int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -# ifdef HEADER_X509V3_H - -int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, - int allorfirst, - STACK_OF(GENERAL_NAMES) - *receiptList, STACK_OF(GENERAL_NAMES) - *receiptsTo); -int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); -void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, - ASN1_STRING **pcid, - int *pallorfirst, - STACK_OF(GENERAL_NAMES) **plist, - STACK_OF(GENERAL_NAMES) **prto); -# endif -int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pukm); -STACK_OF(CMS_RecipientEncryptedKey) -*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); - -int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, - X509_ALGOR **pubalg, - ASN1_BIT_STRING **pubkey, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); - -int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, - ASN1_OCTET_STRING **keyid, - ASN1_GENERALIZEDTIME **tm, - CMS_OtherKeyAttribute **other, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, - X509 *cert); -int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, - CMS_RecipientInfo *ri, - CMS_RecipientEncryptedKey *rek); - -int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, - ASN1_OCTET_STRING *ukm, int keylen); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_CMS_strings(void); - -/* Error codes for the CMS functions. */ - -/* Function codes. */ -# define CMS_F_CHECK_CONTENT 99 -# define CMS_F_CMS_ADD0_CERT 164 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 -# define CMS_F_CMS_ADD1_SIGNER 102 -# define CMS_F_CMS_ADD1_SIGNINGTIME 103 -# define CMS_F_CMS_COMPRESS 104 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 -# define CMS_F_CMS_COPY_CONTENT 107 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 -# define CMS_F_CMS_DATA 109 -# define CMS_F_CMS_DATAFINAL 110 -# define CMS_F_CMS_DATAINIT 111 -# define CMS_F_CMS_DECRYPT 112 -# define CMS_F_CMS_DECRYPT_SET1_KEY 113 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 -# define CMS_F_CMS_DIGEST_VERIFY 118 -# define CMS_F_CMS_ENCODE_RECEIPT 161 -# define CMS_F_CMS_ENCRYPT 119 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 -# define CMS_F_CMS_ENV_ASN1_CTRL 171 -# define CMS_F_CMS_FINAL 127 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 -# define CMS_F_CMS_GET0_CONTENT 129 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 -# define CMS_F_CMS_GET0_ENVELOPED 131 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 -# define CMS_F_CMS_GET0_SIGNED 133 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 -# define CMS_F_CMS_RECEIPT_VERIFY 160 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 -# define CMS_F_CMS_SD_ASN1_CTRL 170 -# define CMS_F_CMS_SET1_IAS 176 -# define CMS_F_CMS_SET1_KEYID 177 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 -# define CMS_F_CMS_SET_DETACHED 147 -# define CMS_F_CMS_SIGN 148 -# define CMS_F_CMS_SIGNED_DATA_INIT 149 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 -# define CMS_F_CMS_SIGNERINFO_SIGN 151 -# define CMS_F_CMS_SIGNERINFO_VERIFY 152 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 -# define CMS_F_CMS_SIGN_RECEIPT 163 -# define CMS_F_CMS_STREAM 155 -# define CMS_F_CMS_UNCOMPRESS 156 -# define CMS_F_CMS_VERIFY 157 - -/* Reason codes. */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_DIGEST_ERROR 161 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/comp.h b/3rdparty/openssl/include/openssl/comp.h deleted file mode 100644 index df599ba..0000000 --- a/3rdparty/openssl/include/openssl/comp.h +++ /dev/null @@ -1,83 +0,0 @@ - -#ifndef HEADER_COMP_H -# define HEADER_COMP_H - -# include - -# ifdef OPENSSL_NO_COMP -# error COMP is disabled. -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct comp_ctx_st COMP_CTX; - -struct comp_method_st { - int type; /* NID for compression library */ - const char *name; /* A text string to identify the library */ - int (*init) (COMP_CTX *ctx); - void (*finish) (COMP_CTX *ctx); - int (*compress) (COMP_CTX *ctx, - unsigned char *out, unsigned int olen, - unsigned char *in, unsigned int ilen); - int (*expand) (COMP_CTX *ctx, - unsigned char *out, unsigned int olen, - unsigned char *in, unsigned int ilen); - /* - * The following two do NOTHING, but are kept for backward compatibility - */ - long (*ctrl) (void); - long (*callback_ctrl) (void); -}; - -struct comp_ctx_st { - COMP_METHOD *meth; - unsigned long compress_in; - unsigned long compress_out; - unsigned long expand_in; - unsigned long expand_out; - CRYPTO_EX_DATA ex_data; -}; - -COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); -void COMP_CTX_free(COMP_CTX *ctx); -int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); -int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); -COMP_METHOD *COMP_rle(void); -COMP_METHOD *COMP_zlib(void); -void COMP_zlib_cleanup(void); - -# ifdef HEADER_BIO_H -# ifdef ZLIB -BIO_METHOD *BIO_f_zlib(void); -# endif -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_COMP_strings(void); - -/* Error codes for the COMP functions. */ - -/* Function codes. */ -# define COMP_F_BIO_ZLIB_FLUSH 99 -# define COMP_F_BIO_ZLIB_NEW 100 -# define COMP_F_BIO_ZLIB_READ 101 -# define COMP_F_BIO_ZLIB_WRITE 102 - -/* Reason codes. */ -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/conf.h b/3rdparty/openssl/include/openssl/conf.h deleted file mode 100644 index fe49113..0000000 --- a/3rdparty/openssl/include/openssl/conf.h +++ /dev/null @@ -1,268 +0,0 @@ -/* crypto/conf/conf.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_CONF_H -# define HEADER_CONF_H - -# include -# include -# include -# include -# include - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - char *section; - char *name; - char *value; -} CONF_VALUE; - -DECLARE_STACK_OF(CONF_VALUE) -DECLARE_LHASH_OF(CONF_VALUE); - -struct conf_st; -struct conf_method_st; -typedef struct conf_method_st CONF_METHOD; - -struct conf_method_st { - const char *name; - CONF *(*create) (CONF_METHOD *meth); - int (*init) (CONF *conf); - int (*destroy) (CONF *conf); - int (*destroy_data) (CONF *conf); - int (*load_bio) (CONF *conf, BIO *bp, long *eline); - int (*dump) (const CONF *conf, BIO *bp); - int (*is_number) (const CONF *conf, char c); - int (*to_int) (const CONF *conf, char c); - int (*load) (CONF *conf, const char *name, long *eline); -}; - -/* Module definitions */ - -typedef struct conf_imodule_st CONF_IMODULE; -typedef struct conf_module_st CONF_MODULE; - -DECLARE_STACK_OF(CONF_MODULE) -DECLARE_STACK_OF(CONF_IMODULE) - -/* DSO module function typedefs */ -typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); -typedef void conf_finish_func (CONF_IMODULE *md); - -# define CONF_MFLAGS_IGNORE_ERRORS 0x1 -# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 -# define CONF_MFLAGS_SILENT 0x4 -# define CONF_MFLAGS_NO_DSO 0x8 -# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 -# define CONF_MFLAGS_DEFAULT_SECTION 0x20 - -int CONF_set_default_method(CONF_METHOD *meth); -void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); -LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, - long *eline); -# ifndef OPENSSL_NO_FP_API -LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, - long *eline); -# endif -LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, - long *eline); -STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, - const char *section); -char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -void CONF_free(LHASH_OF(CONF_VALUE) *conf); -int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); -int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); - -void OPENSSL_config(const char *config_name); -void OPENSSL_no_config(void); - -/* - * New conf code. The semantics are different from the functions above. If - * that wasn't the case, the above functions would have been replaced - */ - -struct conf_st { - CONF_METHOD *meth; - void *meth_data; - LHASH_OF(CONF_VALUE) *data; -}; - -CONF *NCONF_new(CONF_METHOD *meth); -CONF_METHOD *NCONF_default(void); -CONF_METHOD *NCONF_WIN32(void); -# if 0 /* Just to give you an idea of what I have in - * mind */ -CONF_METHOD *NCONF_XML(void); -# endif -void NCONF_free(CONF *conf); -void NCONF_free_data(CONF *conf); - -int NCONF_load(CONF *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_FP_API -int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); -# endif -int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); -STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, - const char *section); -char *NCONF_get_string(const CONF *conf, const char *group, const char *name); -int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, - long *result); -int NCONF_dump_fp(const CONF *conf, FILE *out); -int NCONF_dump_bio(const CONF *conf, BIO *out); - -# if 0 /* The following function has no error - * checking, and should therefore be avoided */ -long NCONF_get_number(CONF *conf, char *group, char *name); -# else -# define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) -# endif - -/* Module functions */ - -int CONF_modules_load(const CONF *cnf, const char *appname, - unsigned long flags); -int CONF_modules_load_file(const char *filename, const char *appname, - unsigned long flags); -void CONF_modules_unload(int all); -void CONF_modules_finish(void); -void CONF_modules_free(void); -int CONF_module_add(const char *name, conf_init_func *ifunc, - conf_finish_func *ffunc); - -const char *CONF_imodule_get_name(const CONF_IMODULE *md); -const char *CONF_imodule_get_value(const CONF_IMODULE *md); -void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); -void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); -CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); -unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); -void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); -void *CONF_module_get_usr_data(CONF_MODULE *pmod); -void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); - -char *CONF_get1_default_config_file(void); - -int CONF_parse_list(const char *list, int sep, int nospc, - int (*list_cb) (const char *elem, int len, void *usr), - void *arg); - -void OPENSSL_load_builtin_modules(void); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_CONF_strings(void); - -/* Error codes for the CONF functions. */ - -/* Function codes. */ -# define CONF_F_CONF_DUMP_FP 104 -# define CONF_F_CONF_LOAD 100 -# define CONF_F_CONF_LOAD_BIO 102 -# define CONF_F_CONF_LOAD_FP 103 -# define CONF_F_CONF_MODULES_LOAD 116 -# define CONF_F_CONF_PARSE_LIST 119 -# define CONF_F_DEF_LOAD 120 -# define CONF_F_DEF_LOAD_BIO 121 -# define CONF_F_MODULE_INIT 115 -# define CONF_F_MODULE_LOAD_DSO 117 -# define CONF_F_MODULE_RUN 118 -# define CONF_F_NCONF_DUMP_BIO 105 -# define CONF_F_NCONF_DUMP_FP 106 -# define CONF_F_NCONF_GET_NUMBER 107 -# define CONF_F_NCONF_GET_NUMBER_E 112 -# define CONF_F_NCONF_GET_SECTION 108 -# define CONF_F_NCONF_GET_STRING 109 -# define CONF_F_NCONF_LOAD 113 -# define CONF_F_NCONF_LOAD_BIO 110 -# define CONF_F_NCONF_LOAD_FP 114 -# define CONF_F_NCONF_NEW 111 -# define CONF_F_STR_COPY 101 - -/* Reason codes. */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_FINISH_FUNCTION 111 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/conf_api.h b/3rdparty/openssl/include/openssl/conf_api.h deleted file mode 100644 index e478f7d..0000000 --- a/3rdparty/openssl/include/openssl/conf_api.h +++ /dev/null @@ -1,89 +0,0 @@ -/* conf_api.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_CONF_API_H -# define HEADER_CONF_API_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Up until OpenSSL 0.9.5a, this was new_section */ -CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was get_section */ -CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ -STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, - const char *section); - -int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); -char *_CONF_get_string(const CONF *conf, const char *section, - const char *name); -long _CONF_get_number(const CONF *conf, const char *section, - const char *name); - -int _CONF_new_data(CONF *conf); -void _CONF_free_data(CONF *conf); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/crypto.h b/3rdparty/openssl/include/openssl/crypto.h deleted file mode 100644 index 6c644ce..0000000 --- a/3rdparty/openssl/include/openssl/crypto.h +++ /dev/null @@ -1,661 +0,0 @@ -/* crypto/crypto.h */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_CRYPTO_H -# define HEADER_CRYPTO_H - -# include - -# include - -# ifndef OPENSSL_NO_FP_API -# include -# endif - -# include -# include -# include -# include - -# ifdef CHARSET_EBCDIC -# include -# endif - -/* - * Resolve problems on some operating systems with symbol names that clash - * one way or another - */ -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Backward compatibility to SSLeay */ -/* - * This is more to be used to check the correct DLL is being used in the MS - * world. - */ -# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER -# define SSLEAY_VERSION 0 -/* #define SSLEAY_OPTIONS 1 no longer supported */ -# define SSLEAY_CFLAGS 2 -# define SSLEAY_BUILT_ON 3 -# define SSLEAY_PLATFORM 4 -# define SSLEAY_DIR 5 - -/* Already declared in ossl_typ.h */ -# if 0 -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; -/* Called when a new object is created */ -typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -/* Called when an object is free()ed */ -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -/* Called when we need to dup an object */ -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, - void *from_d, int idx, long argl, void *argp); -# endif - -/* A generic structure to pass assorted data in a expandable way */ -typedef struct openssl_item_st { - int code; - void *value; /* Not used for flag attributes */ - size_t value_size; /* Max size of value for output, length for - * input */ - size_t *value_length; /* Returned length of value for output */ -} OPENSSL_ITEM; - -/* - * When changing the CRYPTO_LOCK_* list, be sure to maintin the text lock - * names in cryptlib.c - */ - -# define CRYPTO_LOCK_ERR 1 -# define CRYPTO_LOCK_EX_DATA 2 -# define CRYPTO_LOCK_X509 3 -# define CRYPTO_LOCK_X509_INFO 4 -# define CRYPTO_LOCK_X509_PKEY 5 -# define CRYPTO_LOCK_X509_CRL 6 -# define CRYPTO_LOCK_X509_REQ 7 -# define CRYPTO_LOCK_DSA 8 -# define CRYPTO_LOCK_RSA 9 -# define CRYPTO_LOCK_EVP_PKEY 10 -# define CRYPTO_LOCK_X509_STORE 11 -# define CRYPTO_LOCK_SSL_CTX 12 -# define CRYPTO_LOCK_SSL_CERT 13 -# define CRYPTO_LOCK_SSL_SESSION 14 -# define CRYPTO_LOCK_SSL_SESS_CERT 15 -# define CRYPTO_LOCK_SSL 16 -# define CRYPTO_LOCK_SSL_METHOD 17 -# define CRYPTO_LOCK_RAND 18 -# define CRYPTO_LOCK_RAND2 19 -# define CRYPTO_LOCK_MALLOC 20 -# define CRYPTO_LOCK_BIO 21 -# define CRYPTO_LOCK_GETHOSTBYNAME 22 -# define CRYPTO_LOCK_GETSERVBYNAME 23 -# define CRYPTO_LOCK_READDIR 24 -# define CRYPTO_LOCK_RSA_BLINDING 25 -# define CRYPTO_LOCK_DH 26 -# define CRYPTO_LOCK_MALLOC2 27 -# define CRYPTO_LOCK_DSO 28 -# define CRYPTO_LOCK_DYNLOCK 29 -# define CRYPTO_LOCK_ENGINE 30 -# define CRYPTO_LOCK_UI 31 -# define CRYPTO_LOCK_ECDSA 32 -# define CRYPTO_LOCK_EC 33 -# define CRYPTO_LOCK_ECDH 34 -# define CRYPTO_LOCK_BN 35 -# define CRYPTO_LOCK_EC_PRE_COMP 36 -# define CRYPTO_LOCK_STORE 37 -# define CRYPTO_LOCK_COMP 38 -# define CRYPTO_LOCK_FIPS 39 -# define CRYPTO_LOCK_FIPS2 40 -# define CRYPTO_NUM_LOCKS 41 - -# define CRYPTO_LOCK 1 -# define CRYPTO_UNLOCK 2 -# define CRYPTO_READ 4 -# define CRYPTO_WRITE 8 - -# ifndef OPENSSL_NO_LOCKING -# ifndef CRYPTO_w_lock -# define CRYPTO_w_lock(type) \ - CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) -# define CRYPTO_w_unlock(type) \ - CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__) -# define CRYPTO_r_lock(type) \ - CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__) -# define CRYPTO_r_unlock(type) \ - CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__) -# define CRYPTO_add(addr,amount,type) \ - CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__) -# endif -# else -# define CRYPTO_w_lock(a) -# define CRYPTO_w_unlock(a) -# define CRYPTO_r_lock(a) -# define CRYPTO_r_unlock(a) -# define CRYPTO_add(a,b,c) ((*(a))+=(b)) -# endif - -/* - * Some applications as well as some parts of OpenSSL need to allocate and - * deallocate locks in a dynamic fashion. The following typedef makes this - * possible in a type-safe manner. - */ -/* struct CRYPTO_dynlock_value has to be defined by the application. */ -typedef struct { - int references; - struct CRYPTO_dynlock_value *data; -} CRYPTO_dynlock; - -/* - * The following can be used to detect memory leaks in the SSLeay library. It - * used, it turns on malloc checking - */ - -# define CRYPTO_MEM_CHECK_OFF 0x0/* an enume */ -# define CRYPTO_MEM_CHECK_ON 0x1/* a bit */ -# define CRYPTO_MEM_CHECK_ENABLE 0x2/* a bit */ -# define CRYPTO_MEM_CHECK_DISABLE 0x3/* an enume */ - -/* - * The following are bit values to turn on or off options connected to the - * malloc checking functionality - */ - -/* Adds time to the memory checking information */ -# define V_CRYPTO_MDEBUG_TIME 0x1/* a bit */ -/* Adds thread number to the memory checking information */ -# define V_CRYPTO_MDEBUG_THREAD 0x2/* a bit */ - -# define V_CRYPTO_MDEBUG_ALL (V_CRYPTO_MDEBUG_TIME | V_CRYPTO_MDEBUG_THREAD) - -/* predec of the BIO type */ -typedef struct bio_st BIO_dummy; - -struct crypto_ex_data_st { - STACK_OF(void) *sk; - /* gcc is screwing up this data structure :-( */ - int dummy; -}; -DECLARE_STACK_OF(void) - -/* - * This stuff is basically class callback functions The current classes are - * SSL_CTX, SSL, SSL_SESSION, and a few more - */ - -typedef struct crypto_ex_data_func_st { - long argl; /* Arbitary long */ - void *argp; /* Arbitary void * */ - CRYPTO_EX_new *new_func; - CRYPTO_EX_free *free_func; - CRYPTO_EX_dup *dup_func; -} CRYPTO_EX_DATA_FUNCS; - -DECLARE_STACK_OF(CRYPTO_EX_DATA_FUNCS) - -/* - * Per class, we have a STACK of CRYPTO_EX_DATA_FUNCS for each CRYPTO_EX_DATA - * entry. - */ - -# define CRYPTO_EX_INDEX_BIO 0 -# define CRYPTO_EX_INDEX_SSL 1 -# define CRYPTO_EX_INDEX_SSL_CTX 2 -# define CRYPTO_EX_INDEX_SSL_SESSION 3 -# define CRYPTO_EX_INDEX_X509_STORE 4 -# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 -# define CRYPTO_EX_INDEX_RSA 6 -# define CRYPTO_EX_INDEX_DSA 7 -# define CRYPTO_EX_INDEX_DH 8 -# define CRYPTO_EX_INDEX_ENGINE 9 -# define CRYPTO_EX_INDEX_X509 10 -# define CRYPTO_EX_INDEX_UI 11 -# define CRYPTO_EX_INDEX_ECDSA 12 -# define CRYPTO_EX_INDEX_ECDH 13 -# define CRYPTO_EX_INDEX_COMP 14 -# define CRYPTO_EX_INDEX_STORE 15 - -/* - * Dynamically assigned indexes start from this value (don't use directly, - * use via CRYPTO_ex_data_new_class). - */ -# define CRYPTO_EX_INDEX_USER 100 - -/* - * This is the default callbacks, but we can have others as well: this is - * needed in Win32 where the application malloc and the library malloc may - * not be the same. - */ -# define CRYPTO_malloc_init() CRYPTO_set_mem_functions(\ - malloc, realloc, free) - -# if defined CRYPTO_MDEBUG_ALL || defined CRYPTO_MDEBUG_TIME || defined CRYPTO_MDEBUG_THREAD -# ifndef CRYPTO_MDEBUG /* avoid duplicate #define */ -# define CRYPTO_MDEBUG -# endif -# endif - -/* - * Set standard debugging functions (not done by default unless CRYPTO_MDEBUG - * is defined) - */ -# define CRYPTO_malloc_debug_init() do {\ - CRYPTO_set_mem_debug_functions(\ - CRYPTO_dbg_malloc,\ - CRYPTO_dbg_realloc,\ - CRYPTO_dbg_free,\ - CRYPTO_dbg_set_options,\ - CRYPTO_dbg_get_options);\ - } while(0) - -int CRYPTO_mem_ctrl(int mode); -int CRYPTO_is_mem_check_on(void); - -/* for applications */ -# define MemCheck_start() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON) -# define MemCheck_stop() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF) - -/* for library-internal use */ -# define MemCheck_on() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ENABLE) -# define MemCheck_off() CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_DISABLE) -# define is_MemCheck_on() CRYPTO_is_mem_check_on() - -# define OPENSSL_malloc(num) CRYPTO_malloc((int)num,__FILE__,__LINE__) -# define OPENSSL_strdup(str) CRYPTO_strdup((str),__FILE__,__LINE__) -# define OPENSSL_realloc(addr,num) \ - CRYPTO_realloc((char *)addr,(int)num,__FILE__,__LINE__) -# define OPENSSL_realloc_clean(addr,old_num,num) \ - CRYPTO_realloc_clean(addr,old_num,num,__FILE__,__LINE__) -# define OPENSSL_remalloc(addr,num) \ - CRYPTO_remalloc((char **)addr,(int)num,__FILE__,__LINE__) -# define OPENSSL_freeFunc CRYPTO_free -# define OPENSSL_free(addr) CRYPTO_free(addr) - -# define OPENSSL_malloc_locked(num) \ - CRYPTO_malloc_locked((int)num,__FILE__,__LINE__) -# define OPENSSL_free_locked(addr) CRYPTO_free_locked(addr) - -const char *SSLeay_version(int type); -unsigned long SSLeay(void); - -int OPENSSL_issetugid(void); - -/* An opaque type representing an implementation of "ex_data" support */ -typedef struct st_CRYPTO_EX_DATA_IMPL CRYPTO_EX_DATA_IMPL; -/* Return an opaque pointer to the current "ex_data" implementation */ -const CRYPTO_EX_DATA_IMPL *CRYPTO_get_ex_data_implementation(void); -/* Sets the "ex_data" implementation to be used (if it's not too late) */ -int CRYPTO_set_ex_data_implementation(const CRYPTO_EX_DATA_IMPL *i); -/* Get a new "ex_data" class, and return the corresponding "class_index" */ -int CRYPTO_ex_data_new_class(void); -/* Within a given class, get/register a new index */ -int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, - CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -/* - * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a - * given class (invokes whatever per-class callbacks are applicable) - */ -int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); -int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, - CRYPTO_EX_DATA *from); -void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); -/* - * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular - * index (relative to the class type involved) - */ -int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); -void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); -/* - * This function cleans up all "ex_data" state. It mustn't be called under - * potential race-conditions. - */ -void CRYPTO_cleanup_all_ex_data(void); - -int CRYPTO_get_new_lockid(char *name); - -int CRYPTO_num_locks(void); /* return CRYPTO_NUM_LOCKS (shared libs!) */ -void CRYPTO_lock(int mode, int type, const char *file, int line); -void CRYPTO_set_locking_callback(void (*func) (int mode, int type, - const char *file, int line)); -void (*CRYPTO_get_locking_callback(void)) (int mode, int type, - const char *file, int line); -void CRYPTO_set_add_lock_callback(int (*func) - (int *num, int mount, int type, - const char *file, int line)); -int (*CRYPTO_get_add_lock_callback(void)) (int *num, int mount, int type, - const char *file, int line); - -/* Don't use this structure directly. */ -typedef struct crypto_threadid_st { - void *ptr; - unsigned long val; -} CRYPTO_THREADID; -/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ -void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); -void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); -int CRYPTO_THREADID_set_callback(void (*threadid_func) (CRYPTO_THREADID *)); -void (*CRYPTO_THREADID_get_callback(void)) (CRYPTO_THREADID *); -void CRYPTO_THREADID_current(CRYPTO_THREADID *id); -int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, const CRYPTO_THREADID *b); -void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, const CRYPTO_THREADID *src); -unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); -# ifndef OPENSSL_NO_DEPRECATED -void CRYPTO_set_id_callback(unsigned long (*func) (void)); -unsigned long (*CRYPTO_get_id_callback(void)) (void); -unsigned long CRYPTO_thread_id(void); -# endif - -const char *CRYPTO_get_lock_name(int type); -int CRYPTO_add_lock(int *pointer, int amount, int type, const char *file, - int line); - -int CRYPTO_get_new_dynlockid(void); -void CRYPTO_destroy_dynlockid(int i); -struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i); -void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value - *(*dyn_create_function) (const char - *file, - int line)); -void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) - (int mode, - struct CRYPTO_dynlock_value *l, - const char *file, int line)); -void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) - (struct CRYPTO_dynlock_value *l, - const char *file, int line)); -struct CRYPTO_dynlock_value -*(*CRYPTO_get_dynlock_create_callback(void)) (const char *file, int line); -void (*CRYPTO_get_dynlock_lock_callback(void)) (int mode, - struct CRYPTO_dynlock_value - *l, const char *file, - int line); -void (*CRYPTO_get_dynlock_destroy_callback(void)) (struct CRYPTO_dynlock_value - *l, const char *file, - int line); - -/* - * CRYPTO_set_mem_functions includes CRYPTO_set_locked_mem_functions -- call - * the latter last if you need different functions - */ -int CRYPTO_set_mem_functions(void *(*m) (size_t), void *(*r) (void *, size_t), - void (*f) (void *)); -int CRYPTO_set_locked_mem_functions(void *(*m) (size_t), - void (*free_func) (void *)); -int CRYPTO_set_mem_ex_functions(void *(*m) (size_t, const char *, int), - void *(*r) (void *, size_t, const char *, - int), void (*f) (void *)); -int CRYPTO_set_locked_mem_ex_functions(void *(*m) (size_t, const char *, int), - void (*free_func) (void *)); -int CRYPTO_set_mem_debug_functions(void (*m) - (void *, int, const char *, int, int), - void (*r) (void *, void *, int, - const char *, int, int), - void (*f) (void *, int), void (*so) (long), - long (*go) (void)); -void CRYPTO_get_mem_functions(void *(**m) (size_t), - void *(**r) (void *, size_t), - void (**f) (void *)); -void CRYPTO_get_locked_mem_functions(void *(**m) (size_t), - void (**f) (void *)); -void CRYPTO_get_mem_ex_functions(void *(**m) (size_t, const char *, int), - void *(**r) (void *, size_t, const char *, - int), void (**f) (void *)); -void CRYPTO_get_locked_mem_ex_functions(void - *(**m) (size_t, const char *, int), - void (**f) (void *)); -void CRYPTO_get_mem_debug_functions(void (**m) - (void *, int, const char *, int, int), - void (**r) (void *, void *, int, - const char *, int, int), - void (**f) (void *, int), - void (**so) (long), long (**go) (void)); - -void *CRYPTO_malloc_locked(int num, const char *file, int line); -void CRYPTO_free_locked(void *ptr); -void *CRYPTO_malloc(int num, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -void CRYPTO_free(void *ptr); -void *CRYPTO_realloc(void *addr, int num, const char *file, int line); -void *CRYPTO_realloc_clean(void *addr, int old_num, int num, const char *file, - int line); -void *CRYPTO_remalloc(void *addr, int num, const char *file, int line); - -void OPENSSL_cleanse(void *ptr, size_t len); - -void CRYPTO_set_mem_debug_options(long bits); -long CRYPTO_get_mem_debug_options(void); - -# define CRYPTO_push_info(info) \ - CRYPTO_push_info_(info, __FILE__, __LINE__); -int CRYPTO_push_info_(const char *info, const char *file, int line); -int CRYPTO_pop_info(void); -int CRYPTO_remove_all_info(void); - -/* - * Default debugging functions (enabled by CRYPTO_malloc_debug_init() macro; - * used as default in CRYPTO_MDEBUG compilations): - */ -/*- - * The last argument has the following significance: - * - * 0: called before the actual memory allocation has taken place - * 1: called after the actual memory allocation has taken place - */ -void CRYPTO_dbg_malloc(void *addr, int num, const char *file, int line, - int before_p); -void CRYPTO_dbg_realloc(void *addr1, void *addr2, int num, const char *file, - int line, int before_p); -void CRYPTO_dbg_free(void *addr, int before_p); -/*- - * Tell the debugging code about options. By default, the following values - * apply: - * - * 0: Clear all options. - * V_CRYPTO_MDEBUG_TIME (1): Set the "Show Time" option. - * V_CRYPTO_MDEBUG_THREAD (2): Set the "Show Thread Number" option. - * V_CRYPTO_MDEBUG_ALL (3): 1 + 2 - */ -void CRYPTO_dbg_set_options(long bits); -long CRYPTO_dbg_get_options(void); - -# ifndef OPENSSL_NO_FP_API -void CRYPTO_mem_leaks_fp(FILE *); -# endif -void CRYPTO_mem_leaks(struct bio_st *bio); -/* unsigned long order, char *file, int line, int num_bytes, char *addr */ -typedef void *CRYPTO_MEM_LEAK_CB (unsigned long, const char *, int, int, - void *); -void CRYPTO_mem_leaks_cb(CRYPTO_MEM_LEAK_CB *cb); - -/* die if we have to */ -void OpenSSLDie(const char *file, int line, const char *assertion); -# define OPENSSL_assert(e) (void)((e) ? 0 : (OpenSSLDie(__FILE__, __LINE__, #e),1)) - -unsigned long *OPENSSL_ia32cap_loc(void); -# define OPENSSL_ia32cap (*(OPENSSL_ia32cap_loc())) -int OPENSSL_isservice(void); - -int FIPS_mode(void); -int FIPS_mode_set(int r); - -void OPENSSL_init(void); - -# define fips_md_init(alg) fips_md_init_ctx(alg, alg) - -# ifdef OPENSSL_FIPS -# define fips_md_init_ctx(alg, cx) \ - int alg##_Init(cx##_CTX *c) \ - { \ - if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ - "Low level API call to digest " #alg " forbidden in FIPS mode!"); \ - return private_##alg##_Init(c); \ - } \ - int private_##alg##_Init(cx##_CTX *c) - -# define fips_cipher_abort(alg) \ - if (FIPS_mode()) OpenSSLDie(__FILE__, __LINE__, \ - "Low level API call to cipher " #alg " forbidden in FIPS mode!") - -# else -# define fips_md_init_ctx(alg, cx) \ - int alg##_Init(cx##_CTX *c) -# define fips_cipher_abort(alg) while(0) -# endif - -/* - * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. - * It takes an amount of time dependent on |len|, but independent of the - * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements - * into a defined order as the return value when a != b is undefined, other - * than to be non-zero. - */ -int CRYPTO_memcmp(const volatile void *a, const volatile void *b, size_t len); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_CRYPTO_strings(void); - -/* Error codes for the CRYPTO functions. */ - -/* Function codes. */ -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 -# define CRYPTO_F_CRYPTO_GET_NEW_DYNLOCKID 103 -# define CRYPTO_F_CRYPTO_GET_NEW_LOCKID 101 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 -# define CRYPTO_F_DEF_ADD_INDEX 104 -# define CRYPTO_F_DEF_GET_CLASS 105 -# define CRYPTO_F_FIPS_MODE_SET 109 -# define CRYPTO_F_INT_DUP_EX_DATA 106 -# define CRYPTO_F_INT_FREE_EX_DATA 107 -# define CRYPTO_F_INT_NEW_EX_DATA 108 - -/* Reason codes. */ -# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -# define CRYPTO_R_NO_DYNLOCK_CREATE_CALLBACK 100 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/des.h b/3rdparty/openssl/include/openssl/des.h deleted file mode 100644 index 1b40144..0000000 --- a/3rdparty/openssl/include/openssl/des.h +++ /dev/null @@ -1,257 +0,0 @@ -/* crypto/des/des.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_NEW_DES_H -# define HEADER_NEW_DES_H - -# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG - * (via openssl/opensslconf.h */ - -# ifdef OPENSSL_NO_DES -# error DES is disabled. -# endif - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef unsigned char DES_cblock[8]; -typedef /* const */ unsigned char const_DES_cblock[8]; -/* - * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and - * const_DES_cblock * are incompatible pointer types. - */ - -typedef struct DES_ks { - union { - DES_cblock cblock; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG deslong[2]; - } ks[16]; -} DES_key_schedule; - -# ifndef OPENSSL_DISABLE_OLD_DES_SUPPORT -# ifndef OPENSSL_ENABLE_OLD_DES_SUPPORT -# define OPENSSL_ENABLE_OLD_DES_SUPPORT -# endif -# endif - -# ifdef OPENSSL_ENABLE_OLD_DES_SUPPORT -# include -# endif - -# define DES_KEY_SZ (sizeof(DES_cblock)) -# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) - -# define DES_ENCRYPT 1 -# define DES_DECRYPT 0 - -# define DES_CBC_MODE 0 -# define DES_PCBC_MODE 1 - -# define DES_ecb2_encrypt(i,o,k1,k2,e) \ - DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ -# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) -OPENSSL_DECLARE_GLOBAL(int, DES_rw_mode); /* defaults to DES_PCBC_MODE */ -# define DES_rw_mode OPENSSL_GLOBAL_REF(DES_rw_mode) - -const char *DES_options(void); -void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, - long length, DES_key_schedule *schedule, - const_DES_cblock *ivec); -/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, const_DES_cblock *inw, - const_DES_cblock *outw, int enc); -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks, int enc); - -/* - * This is the DES encryption function that gets called by just about every - * other DES routine in the library. You should not use this function except - * to implement 'modes' of DES. I say this because the functions that call - * this routine do the conversion from 'char *' to long, and this needs to be - * done to make sure 'non-aligned' memory access do not occur. The - * characters are loaded 'little endian'. Data is a pointer to 2 unsigned - * long's and ks is the DES_key_schedule to use. enc, is non zero specifies - * encryption, zero if decryption. - */ -void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); - -/* - * This functions is the same as DES_encrypt1() except that the DES initial - * permutation (IP) and final permutation (FP) have been left out. As for - * DES_encrypt1(), you should not use this function. It is used by the - * routines in the library that implement triple DES. IP() DES_encrypt2() - * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() - * DES_encrypt1() DES_encrypt1() except faster :-). - */ -void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); - -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, DES_cblock *ivec, int enc); -void DES_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out, - long length, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, - DES_cblock *ivec1, DES_cblock *ivec2, int enc); -void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num, int enc); -void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, - int numbits, long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num); -# if 0 -void DES_xwhite_in2out(const_DES_cblock *DES_key, const_DES_cblock *in_white, - DES_cblock *out_white); -# endif - -int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched, - DES_cblock *iv); -int DES_enc_write(int fd, const void *buf, int len, DES_key_schedule *sched, - DES_cblock *iv); -char *DES_fcrypt(const char *buf, const char *salt, char *ret); -char *DES_crypt(const char *buf, const char *salt); -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec); -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], - long length, int out_count, DES_cblock *seed); -int DES_random_key(DES_cblock *ret); -void DES_set_odd_parity(DES_cblock *key); -int DES_check_key_parity(const_DES_cblock *key); -int DES_is_weak_key(const_DES_cblock *key); -/* - * DES_set_key (= set_key = DES_key_sched = key_sched) calls - * DES_set_key_checked if global variable DES_check_key is set, - * DES_set_key_unchecked otherwise. - */ -int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -# ifdef OPENSSL_FIPS -void private_DES_set_key_unchecked(const_DES_cblock *key, - DES_key_schedule *schedule); -# endif -void DES_string_to_key(const char *str, DES_cblock *key); -void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num, int enc); -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num); - -int DES_read_password(DES_cblock *key, const char *prompt, int verify); -int DES_read_2passwords(DES_cblock *key1, DES_cblock *key2, - const char *prompt, int verify); - -# define DES_fixup_key_parity DES_set_odd_parity - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/des_old.h b/3rdparty/openssl/include/openssl/des_old.h deleted file mode 100644 index ee7607a..0000000 --- a/3rdparty/openssl/include/openssl/des_old.h +++ /dev/null @@ -1,497 +0,0 @@ -/* crypto/des/des_old.h */ - -/*- - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - * - * The function names in here are deprecated and are only present to - * provide an interface compatible with openssl 0.9.6 and older as - * well as libdes. OpenSSL now provides functions where "des_" has - * been replaced with "DES_" in the names, to make it possible to - * make incompatible changes that are needed for C type security and - * other stuff. - * - * This include files has two compatibility modes: - * - * - If OPENSSL_DES_LIBDES_COMPATIBILITY is defined, you get an API - * that is compatible with libdes and SSLeay. - * - If OPENSSL_DES_LIBDES_COMPATIBILITY isn't defined, you get an - * API that is compatible with OpenSSL 0.9.5x to 0.9.6x. - * - * Note that these modes break earlier snapshots of OpenSSL, where - * libdes compatibility was the only available mode or (later on) the - * prefered compatibility mode. However, after much consideration - * (and more or less violent discussions with external parties), it - * was concluded that OpenSSL should be compatible with earlier versions - * of itself before anything else. Also, in all honesty, libdes is - * an old beast that shouldn't really be used any more. - * - * Please consider starting to use the DES_ functions rather than the - * des_ ones. The des_ functions will disappear completely before - * OpenSSL 1.0! - * - * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING - */ - -/* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2001. - */ -/* ==================================================================== - * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_DES_H -# define HEADER_DES_H - -# include /* OPENSSL_EXTERN, OPENSSL_NO_DES, DES_LONG */ - -# ifdef OPENSSL_NO_DES -# error DES is disabled. -# endif - -# ifndef HEADER_NEW_DES_H -# error You must include des.h, not des_old.h directly. -# endif - -# ifdef _KERBEROS_DES_H -# error replaces . -# endif - -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef _ -# undef _ -# endif - -typedef unsigned char _ossl_old_des_cblock[8]; -typedef struct _ossl_old_des_ks_struct { - union { - _ossl_old_des_cblock _; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG pad[2]; - } ks; -} _ossl_old_des_key_schedule[16]; - -# ifndef OPENSSL_DES_LIBDES_COMPATIBILITY -# define des_cblock DES_cblock -# define const_des_cblock const_DES_cblock -# define des_key_schedule DES_key_schedule -# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ - DES_ecb3_encrypt((i),(o),&(k1),&(k2),&(k3),(e)) -# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ - DES_ede3_cbc_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(e)) -# define des_ede3_cbcm_encrypt(i,o,l,k1,k2,k3,iv1,iv2,e)\ - DES_ede3_cbcm_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv1),(iv2),(e)) -# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ - DES_ede3_cfb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n),(e)) -# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ - DES_ede3_ofb64_encrypt((i),(o),(l),&(k1),&(k2),&(k3),(iv),(n)) -# define des_options()\ - DES_options() -# define des_cbc_cksum(i,o,l,k,iv)\ - DES_cbc_cksum((i),(o),(l),&(k),(iv)) -# define des_cbc_encrypt(i,o,l,k,iv,e)\ - DES_cbc_encrypt((i),(o),(l),&(k),(iv),(e)) -# define des_ncbc_encrypt(i,o,l,k,iv,e)\ - DES_ncbc_encrypt((i),(o),(l),&(k),(iv),(e)) -# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ - DES_xcbc_encrypt((i),(o),(l),&(k),(iv),(inw),(outw),(e)) -# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ - DES_cfb_encrypt((i),(o),(n),(l),&(k),(iv),(e)) -# define des_ecb_encrypt(i,o,k,e)\ - DES_ecb_encrypt((i),(o),&(k),(e)) -# define des_encrypt1(d,k,e)\ - DES_encrypt1((d),&(k),(e)) -# define des_encrypt2(d,k,e)\ - DES_encrypt2((d),&(k),(e)) -# define des_encrypt3(d,k1,k2,k3)\ - DES_encrypt3((d),&(k1),&(k2),&(k3)) -# define des_decrypt3(d,k1,k2,k3)\ - DES_decrypt3((d),&(k1),&(k2),&(k3)) -# define des_xwhite_in2out(k,i,o)\ - DES_xwhite_in2out((k),(i),(o)) -# define des_enc_read(f,b,l,k,iv)\ - DES_enc_read((f),(b),(l),&(k),(iv)) -# define des_enc_write(f,b,l,k,iv)\ - DES_enc_write((f),(b),(l),&(k),(iv)) -# define des_fcrypt(b,s,r)\ - DES_fcrypt((b),(s),(r)) -# if 0 -# define des_crypt(b,s)\ - DES_crypt((b),(s)) -# if !defined(PERL5) && !defined(__FreeBSD__) && !defined(NeXT) && !defined(__OpenBSD__) -# define crypt(b,s)\ - DES_crypt((b),(s)) -# endif -# endif -# define des_ofb_encrypt(i,o,n,l,k,iv)\ - DES_ofb_encrypt((i),(o),(n),(l),&(k),(iv)) -# define des_pcbc_encrypt(i,o,l,k,iv,e)\ - DES_pcbc_encrypt((i),(o),(l),&(k),(iv),(e)) -# define des_quad_cksum(i,o,l,c,s)\ - DES_quad_cksum((i),(o),(l),(c),(s)) -# define des_random_seed(k)\ - _ossl_096_des_random_seed((k)) -# define des_random_key(r)\ - DES_random_key((r)) -# define des_read_password(k,p,v) \ - DES_read_password((k),(p),(v)) -# define des_read_2passwords(k1,k2,p,v) \ - DES_read_2passwords((k1),(k2),(p),(v)) -# define des_set_odd_parity(k)\ - DES_set_odd_parity((k)) -# define des_check_key_parity(k)\ - DES_check_key_parity((k)) -# define des_is_weak_key(k)\ - DES_is_weak_key((k)) -# define des_set_key(k,ks)\ - DES_set_key((k),&(ks)) -# define des_key_sched(k,ks)\ - DES_key_sched((k),&(ks)) -# define des_set_key_checked(k,ks)\ - DES_set_key_checked((k),&(ks)) -# define des_set_key_unchecked(k,ks)\ - DES_set_key_unchecked((k),&(ks)) -# define des_string_to_key(s,k)\ - DES_string_to_key((s),(k)) -# define des_string_to_2keys(s,k1,k2)\ - DES_string_to_2keys((s),(k1),(k2)) -# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ - DES_cfb64_encrypt((i),(o),(l),&(ks),(iv),(n),(e)) -# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ - DES_ofb64_encrypt((i),(o),(l),&(ks),(iv),(n)) - -# define des_ecb2_encrypt(i,o,k1,k2,e) \ - des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -# define des_check_key DES_check_key -# define des_rw_mode DES_rw_mode -# else /* libdes compatibility */ -/* - * Map all symbol names to _ossl_old_des_* form, so we avoid all clashes with - * libdes - */ -# define des_cblock _ossl_old_des_cblock -# define des_key_schedule _ossl_old_des_key_schedule -# define des_ecb3_encrypt(i,o,k1,k2,k3,e)\ - _ossl_old_des_ecb3_encrypt((i),(o),(k1),(k2),(k3),(e)) -# define des_ede3_cbc_encrypt(i,o,l,k1,k2,k3,iv,e)\ - _ossl_old_des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(e)) -# define des_ede3_cfb64_encrypt(i,o,l,k1,k2,k3,iv,n,e)\ - _ossl_old_des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n),(e)) -# define des_ede3_ofb64_encrypt(i,o,l,k1,k2,k3,iv,n)\ - _ossl_old_des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k3),(iv),(n)) -# define des_options()\ - _ossl_old_des_options() -# define des_cbc_cksum(i,o,l,k,iv)\ - _ossl_old_des_cbc_cksum((i),(o),(l),(k),(iv)) -# define des_cbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_cbc_encrypt((i),(o),(l),(k),(iv),(e)) -# define des_ncbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_ncbc_encrypt((i),(o),(l),(k),(iv),(e)) -# define des_xcbc_encrypt(i,o,l,k,iv,inw,outw,e)\ - _ossl_old_des_xcbc_encrypt((i),(o),(l),(k),(iv),(inw),(outw),(e)) -# define des_cfb_encrypt(i,o,n,l,k,iv,e)\ - _ossl_old_des_cfb_encrypt((i),(o),(n),(l),(k),(iv),(e)) -# define des_ecb_encrypt(i,o,k,e)\ - _ossl_old_des_ecb_encrypt((i),(o),(k),(e)) -# define des_encrypt(d,k,e)\ - _ossl_old_des_encrypt((d),(k),(e)) -# define des_encrypt2(d,k,e)\ - _ossl_old_des_encrypt2((d),(k),(e)) -# define des_encrypt3(d,k1,k2,k3)\ - _ossl_old_des_encrypt3((d),(k1),(k2),(k3)) -# define des_decrypt3(d,k1,k2,k3)\ - _ossl_old_des_decrypt3((d),(k1),(k2),(k3)) -# define des_xwhite_in2out(k,i,o)\ - _ossl_old_des_xwhite_in2out((k),(i),(o)) -# define des_enc_read(f,b,l,k,iv)\ - _ossl_old_des_enc_read((f),(b),(l),(k),(iv)) -# define des_enc_write(f,b,l,k,iv)\ - _ossl_old_des_enc_write((f),(b),(l),(k),(iv)) -# define des_fcrypt(b,s,r)\ - _ossl_old_des_fcrypt((b),(s),(r)) -# define des_crypt(b,s)\ - _ossl_old_des_crypt((b),(s)) -# if 0 -# define crypt(b,s)\ - _ossl_old_crypt((b),(s)) -# endif -# define des_ofb_encrypt(i,o,n,l,k,iv)\ - _ossl_old_des_ofb_encrypt((i),(o),(n),(l),(k),(iv)) -# define des_pcbc_encrypt(i,o,l,k,iv,e)\ - _ossl_old_des_pcbc_encrypt((i),(o),(l),(k),(iv),(e)) -# define des_quad_cksum(i,o,l,c,s)\ - _ossl_old_des_quad_cksum((i),(o),(l),(c),(s)) -# define des_random_seed(k)\ - _ossl_old_des_random_seed((k)) -# define des_random_key(r)\ - _ossl_old_des_random_key((r)) -# define des_read_password(k,p,v) \ - _ossl_old_des_read_password((k),(p),(v)) -# define des_read_2passwords(k1,k2,p,v) \ - _ossl_old_des_read_2passwords((k1),(k2),(p),(v)) -# define des_set_odd_parity(k)\ - _ossl_old_des_set_odd_parity((k)) -# define des_is_weak_key(k)\ - _ossl_old_des_is_weak_key((k)) -# define des_set_key(k,ks)\ - _ossl_old_des_set_key((k),(ks)) -# define des_key_sched(k,ks)\ - _ossl_old_des_key_sched((k),(ks)) -# define des_string_to_key(s,k)\ - _ossl_old_des_string_to_key((s),(k)) -# define des_string_to_2keys(s,k1,k2)\ - _ossl_old_des_string_to_2keys((s),(k1),(k2)) -# define des_cfb64_encrypt(i,o,l,ks,iv,n,e)\ - _ossl_old_des_cfb64_encrypt((i),(o),(l),(ks),(iv),(n),(e)) -# define des_ofb64_encrypt(i,o,l,ks,iv,n)\ - _ossl_old_des_ofb64_encrypt((i),(o),(l),(ks),(iv),(n)) - -# define des_ecb2_encrypt(i,o,k1,k2,e) \ - des_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define des_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - des_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define des_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - des_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -# define des_check_key DES_check_key -# define des_rw_mode DES_rw_mode -# endif - -const char *_ossl_old_des_options(void); -void _ossl_old_des_ecb3_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, int enc); -DES_LONG _ossl_old_des_cbc_cksum(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec); -void _ossl_old_des_cbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_ncbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_xcbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, - _ossl_old_des_cblock *inw, - _ossl_old_des_cblock *outw, int enc); -void _ossl_old_des_cfb_encrypt(unsigned char *in, unsigned char *out, - int numbits, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_ecb_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, - _ossl_old_des_key_schedule ks, int enc); -void _ossl_old_des_encrypt(DES_LONG *data, _ossl_old_des_key_schedule ks, - int enc); -void _ossl_old_des_encrypt2(DES_LONG *data, _ossl_old_des_key_schedule ks, - int enc); -void _ossl_old_des_encrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3); -void _ossl_old_des_decrypt3(DES_LONG *data, _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3); -void _ossl_old_des_ede3_cbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, - _ossl_old_des_cblock *ivec, int enc); -void _ossl_old_des_ede3_cfb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, - _ossl_old_des_cblock *ivec, int *num, - int enc); -void _ossl_old_des_ede3_ofb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule ks1, - _ossl_old_des_key_schedule ks2, - _ossl_old_des_key_schedule ks3, - _ossl_old_des_cblock *ivec, int *num); -# if 0 -void _ossl_old_des_xwhite_in2out(_ossl_old_des_cblock (*des_key), - _ossl_old_des_cblock (*in_white), - _ossl_old_des_cblock (*out_white)); -# endif - -int _ossl_old_des_enc_read(int fd, char *buf, int len, - _ossl_old_des_key_schedule sched, - _ossl_old_des_cblock *iv); -int _ossl_old_des_enc_write(int fd, char *buf, int len, - _ossl_old_des_key_schedule sched, - _ossl_old_des_cblock *iv); -char *_ossl_old_des_fcrypt(const char *buf, const char *salt, char *ret); -char *_ossl_old_des_crypt(const char *buf, const char *salt); -# if !defined(PERL5) && !defined(NeXT) -char *_ossl_old_crypt(const char *buf, const char *salt); -# endif -void _ossl_old_des_ofb_encrypt(unsigned char *in, unsigned char *out, - int numbits, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec); -void _ossl_old_des_pcbc_encrypt(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int enc); -DES_LONG _ossl_old_des_quad_cksum(_ossl_old_des_cblock *input, - _ossl_old_des_cblock *output, long length, - int out_count, _ossl_old_des_cblock *seed); -void _ossl_old_des_random_seed(_ossl_old_des_cblock key); -void _ossl_old_des_random_key(_ossl_old_des_cblock ret); -int _ossl_old_des_read_password(_ossl_old_des_cblock *key, const char *prompt, - int verify); -int _ossl_old_des_read_2passwords(_ossl_old_des_cblock *key1, - _ossl_old_des_cblock *key2, - const char *prompt, int verify); -void _ossl_old_des_set_odd_parity(_ossl_old_des_cblock *key); -int _ossl_old_des_is_weak_key(_ossl_old_des_cblock *key); -int _ossl_old_des_set_key(_ossl_old_des_cblock *key, - _ossl_old_des_key_schedule schedule); -int _ossl_old_des_key_sched(_ossl_old_des_cblock *key, - _ossl_old_des_key_schedule schedule); -void _ossl_old_des_string_to_key(char *str, _ossl_old_des_cblock *key); -void _ossl_old_des_string_to_2keys(char *str, _ossl_old_des_cblock *key1, - _ossl_old_des_cblock *key2); -void _ossl_old_des_cfb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int *num, - int enc); -void _ossl_old_des_ofb64_encrypt(unsigned char *in, unsigned char *out, - long length, - _ossl_old_des_key_schedule schedule, - _ossl_old_des_cblock *ivec, int *num); - -void _ossl_096_des_random_seed(des_cblock *key); - -/* - * The following definitions provide compatibility with the MIT Kerberos - * library. The _ossl_old_des_key_schedule structure is not binary - * compatible. - */ - -# define _KERBEROS_DES_H - -# define KRBDES_ENCRYPT DES_ENCRYPT -# define KRBDES_DECRYPT DES_DECRYPT - -# ifdef KERBEROS -# define ENCRYPT DES_ENCRYPT -# define DECRYPT DES_DECRYPT -# endif - -# ifndef NCOMPAT -# define C_Block des_cblock -# define Key_schedule des_key_schedule -# define KEY_SZ DES_KEY_SZ -# define string_to_key des_string_to_key -# define read_pw_string des_read_pw_string -# define random_key des_random_key -# define pcbc_encrypt des_pcbc_encrypt -# define set_key des_set_key -# define key_sched des_key_sched -# define ecb_encrypt des_ecb_encrypt -# define cbc_encrypt des_cbc_encrypt -# define ncbc_encrypt des_ncbc_encrypt -# define xcbc_encrypt des_xcbc_encrypt -# define cbc_cksum des_cbc_cksum -# define quad_cksum des_quad_cksum -# define check_parity des_check_key_parity -# endif - -# define des_fixup_key_parity DES_fixup_key_parity - -#ifdef __cplusplus -} -#endif - -/* for DES_read_pw_string et al */ -# include - -#endif diff --git a/3rdparty/openssl/include/openssl/dh.h b/3rdparty/openssl/include/openssl/dh.h deleted file mode 100644 index 80b28fb..0000000 --- a/3rdparty/openssl/include/openssl/dh.h +++ /dev/null @@ -1,412 +0,0 @@ -/* crypto/dh/dh.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_DH_H -# define HEADER_DH_H - -# include - -# ifdef OPENSSL_NO_DH -# error DH is disabled. -# endif - -# ifndef OPENSSL_NO_BIO -# include -# endif -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -# ifndef OPENSSL_DH_MAX_MODULUS_BITS -# define OPENSSL_DH_MAX_MODULUS_BITS 10000 -# endif - -# define DH_FLAG_CACHE_MONT_P 0x01 - -/* - * new with 0.9.7h; the built-in DH - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ -# define DH_FLAG_NO_EXP_CONSTTIME 0x02 - -/* - * If this flag is set the DH method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its reposibility to ensure the - * result is compliant. - */ - -# define DH_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DH_FLAG_NON_FIPS_ALLOW 0x0400 - -#ifdef __cplusplus -extern "C" { -#endif - -/* Already defined in ossl_typ.h */ -/* typedef struct dh_st DH; */ -/* typedef struct dh_method DH_METHOD; */ - -struct dh_method { - const char *name; - /* Methods here */ - int (*generate_key) (DH *dh); - int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh); - /* Can be null */ - int (*bn_mod_exp) (const DH *dh, BIGNUM *r, const BIGNUM *a, - const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *m_ctx); - int (*init) (DH *dh); - int (*finish) (DH *dh); - int flags; - char *app_data; - /* If this is non-NULL, it will be used to generate parameters */ - int (*generate_params) (DH *dh, int prime_len, int generator, - BN_GENCB *cb); -}; - -struct dh_st { - /* - * This first argument is used to pick up errors when a DH is passed - * instead of a EVP_PKEY - */ - int pad; - int version; - BIGNUM *p; - BIGNUM *g; - long length; /* optional */ - BIGNUM *pub_key; /* g^x % p */ - BIGNUM *priv_key; /* x */ - int flags; - BN_MONT_CTX *method_mont_p; - /* Place holders if we want to do X9.42 DH */ - BIGNUM *q; - BIGNUM *j; - unsigned char *seed; - int seedlen; - BIGNUM *counter; - int references; - CRYPTO_EX_DATA ex_data; - const DH_METHOD *meth; - ENGINE *engine; -}; - -# define DH_GENERATOR_2 2 -/* #define DH_GENERATOR_3 3 */ -# define DH_GENERATOR_5 5 - -/* DH_check error codes */ -# define DH_CHECK_P_NOT_PRIME 0x01 -# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 -# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 -# define DH_NOT_SUITABLE_GENERATOR 0x08 -# define DH_CHECK_Q_NOT_PRIME 0x10 -# define DH_CHECK_INVALID_Q_VALUE 0x20 -# define DH_CHECK_INVALID_J_VALUE 0x40 - -/* DH_check_pub_key error codes */ -# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 -# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 -# define DH_CHECK_PUBKEY_INVALID 0x04 - -/* - * primes p where (p-1)/2 is prime too are called "safe"; we define this for - * backward compatibility: - */ -# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME - -# define d2i_DHparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) -# define d2i_DHparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) -# define i2d_DHparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) - -# define d2i_DHxparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHxparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHxparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) -# define d2i_DHxparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) -# define i2d_DHxparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH, i2d_DHxparams, bp, x) - -DH *DHparams_dup(DH *); - -const DH_METHOD *DH_OpenSSL(void); - -void DH_set_default_method(const DH_METHOD *meth); -const DH_METHOD *DH_get_default_method(void); -int DH_set_method(DH *dh, const DH_METHOD *meth); -DH *DH_new_method(ENGINE *engine); - -DH *DH_new(void); -void DH_free(DH *dh); -int DH_up_ref(DH *dh); -int DH_size(const DH *dh); -int DH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); -int DH_set_ex_data(DH *d, int idx, void *arg); -void *DH_get_ex_data(DH *d, int idx); - -/* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED -DH *DH_generate_parameters(int prime_len, int generator, - void (*callback) (int, int, void *), void *cb_arg); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ - -/* New version */ -int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, - BN_GENCB *cb); - -int DH_check(const DH *dh, int *codes); -int DH_check_pub_key(const DH *dh, const BIGNUM *pub_key, int *codes); -int DH_generate_key(DH *dh); -int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); -int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); -DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); -int i2d_DHparams(const DH *a, unsigned char **pp); -DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); -int i2d_DHxparams(const DH *a, unsigned char **pp); -# ifndef OPENSSL_NO_FP_API -int DHparams_print_fp(FILE *fp, const DH *x); -# endif -# ifndef OPENSSL_NO_BIO -int DHparams_print(BIO *bp, const DH *x); -# else -int DHparams_print(char *bp, const DH *x); -# endif - -/* RFC 5114 parameters */ -DH *DH_get_1024_160(void); -DH *DH_get_2048_224(void); -DH *DH_get_2048_256(void); - -# ifndef OPENSSL_NO_CMS -/* RFC2631 KDF */ -int DH_KDF_X9_42(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - ASN1_OBJECT *key_oid, - const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); -# endif - -# define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) - -# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) - -# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) - -# define EVP_PKEY_CTX_set_dh_kdf_type(ctx, kdf) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) - -# define EVP_PKEY_CTX_set0_dh_kdf_oid(ctx, oid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_OID, 0, (void *)oid) - -# define EVP_PKEY_CTX_get0_dh_kdf_oid(ctx, poid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_OID, 0, (void *)poid) - -# define EVP_PKEY_CTX_set_dh_kdf_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_get_dh_kdf_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_MD, 0, (void *)pmd) - -# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) - -# define EVP_PKEY_CTX_get_dh_kdf_outlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN, 0, (void *)plen) - -# define EVP_PKEY_CTX_set0_dh_kdf_ukm(ctx, p, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_UKM, plen, (void *)p) - -# define EVP_PKEY_CTX_get0_dh_kdf_ukm(ctx, p) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_DH_KDF_UKM, 0, (void *)p) - -# define EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 12) -# define EVP_PKEY_CTRL_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 13) -# define EVP_PKEY_CTRL_GET_DH_KDF_OID (EVP_PKEY_ALG_CTRL + 14) - -/* KDF types */ -# define EVP_PKEY_DH_KDF_NONE 1 -# define EVP_PKEY_DH_KDF_X9_42 2 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_DH_strings(void); - -/* Error codes for the DH functions. */ - -/* Function codes. */ -# define DH_F_COMPUTE_KEY 102 -# define DH_F_DHPARAMS_PRINT_FP 101 -# define DH_F_DH_BUILTIN_GENPARAMS 106 -# define DH_F_DH_CMS_DECRYPT 117 -# define DH_F_DH_CMS_SET_PEERKEY 118 -# define DH_F_DH_CMS_SET_SHARED_INFO 119 -# define DH_F_DH_COMPUTE_KEY 114 -# define DH_F_DH_GENERATE_KEY 115 -# define DH_F_DH_GENERATE_PARAMETERS_EX 116 -# define DH_F_DH_NEW_METHOD 105 -# define DH_F_DH_PARAM_DECODE 107 -# define DH_F_DH_PRIV_DECODE 110 -# define DH_F_DH_PRIV_ENCODE 111 -# define DH_F_DH_PUB_DECODE 108 -# define DH_F_DH_PUB_ENCODE 109 -# define DH_F_DO_DH_PRINT 100 -# define DH_F_GENERATE_KEY 103 -# define DH_F_GENERATE_PARAMETERS 104 -# define DH_F_PKEY_DH_DERIVE 112 -# define DH_F_PKEY_DH_KEYGEN 113 - -/* Reason codes. */ -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_KEY_SIZE_TOO_SMALL 110 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_NON_FIPS_METHOD 111 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 113 -# define DH_R_SHARED_INFO_ERROR 114 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/dsa.h b/3rdparty/openssl/include/openssl/dsa.h deleted file mode 100644 index 545358f..0000000 --- a/3rdparty/openssl/include/openssl/dsa.h +++ /dev/null @@ -1,332 +0,0 @@ -/* crypto/dsa/dsa.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -/* - * The DSS routines are based on patches supplied by - * Steven Schoch . He basically did the - * work and I have just tweaked them a little to fit into my - * stylistic vision for SSLeay :-) */ - -#ifndef HEADER_DSA_H -# define HEADER_DSA_H - -# include - -# ifdef OPENSSL_NO_DSA -# error DSA is disabled. -# endif - -# ifndef OPENSSL_NO_BIO -# include -# endif -# include -# include - -# ifndef OPENSSL_NO_DEPRECATED -# include -# ifndef OPENSSL_NO_DH -# include -# endif -# endif - -# ifndef OPENSSL_DSA_MAX_MODULUS_BITS -# define OPENSSL_DSA_MAX_MODULUS_BITS 10000 -# endif - -# define DSA_FLAG_CACHE_MONT_P 0x01 -/* - * new with 0.9.7h; the built-in DSA implementation now uses constant time - * modular exponentiation for secret exponents by default. This flag causes - * the faster variable sliding window method to be used for all exponents. - */ -# define DSA_FLAG_NO_EXP_CONSTTIME 0x02 - -/* - * If this flag is set the DSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its reposibility to ensure the - * result is compliant. - */ - -# define DSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 - -#ifdef __cplusplus -extern "C" { -#endif - -/* Already defined in ossl_typ.h */ -/* typedef struct dsa_st DSA; */ -/* typedef struct dsa_method DSA_METHOD; */ - -typedef struct DSA_SIG_st { - BIGNUM *r; - BIGNUM *s; -} DSA_SIG; - -struct dsa_method { - const char *name; - DSA_SIG *(*dsa_do_sign) (const unsigned char *dgst, int dlen, DSA *dsa); - int (*dsa_sign_setup) (DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, - BIGNUM **rp); - int (*dsa_do_verify) (const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - int (*dsa_mod_exp) (DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, - BIGNUM *a2, BIGNUM *p2, BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); - /* Can be null */ - int (*bn_mod_exp) (DSA *dsa, BIGNUM *r, BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); - int (*init) (DSA *dsa); - int (*finish) (DSA *dsa); - int flags; - char *app_data; - /* If this is non-NULL, it is used to generate DSA parameters */ - int (*dsa_paramgen) (DSA *dsa, int bits, - const unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - BN_GENCB *cb); - /* If this is non-NULL, it is used to generate DSA keys */ - int (*dsa_keygen) (DSA *dsa); -}; - -struct dsa_st { - /* - * This first variable is used to pick up errors where a DSA is passed - * instead of of a EVP_PKEY - */ - int pad; - long version; - int write_params; - BIGNUM *p; - BIGNUM *q; /* == 20 */ - BIGNUM *g; - BIGNUM *pub_key; /* y public key */ - BIGNUM *priv_key; /* x private key */ - BIGNUM *kinv; /* Signing pre-calc */ - BIGNUM *r; /* Signing pre-calc */ - int flags; - /* Normally used to cache montgomery values */ - BN_MONT_CTX *method_mont_p; - int references; - CRYPTO_EX_DATA ex_data; - const DSA_METHOD *meth; - /* functional reference if 'meth' is ENGINE-provided */ - ENGINE *engine; -}; - -# define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ - (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) -# define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ - (unsigned char *)(x)) -# define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) -# define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) - -DSA *DSAparams_dup(DSA *x); -DSA_SIG *DSA_SIG_new(void); -void DSA_SIG_free(DSA_SIG *a); -int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); -DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); - -DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); -int DSA_do_verify(const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - -const DSA_METHOD *DSA_OpenSSL(void); - -void DSA_set_default_method(const DSA_METHOD *); -const DSA_METHOD *DSA_get_default_method(void); -int DSA_set_method(DSA *dsa, const DSA_METHOD *); - -DSA *DSA_new(void); -DSA *DSA_new_method(ENGINE *engine); -void DSA_free(DSA *r); -/* "up" the DSA object's reference count */ -int DSA_up_ref(DSA *r); -int DSA_size(const DSA *); - /* next 4 return -1 on error */ -int DSA_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp); -int DSA_sign(int type, const unsigned char *dgst, int dlen, - unsigned char *sig, unsigned int *siglen, DSA *dsa); -int DSA_verify(int type, const unsigned char *dgst, int dgst_len, - const unsigned char *sigbuf, int siglen, DSA *dsa); -int DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); -int DSA_set_ex_data(DSA *d, int idx, void *arg); -void *DSA_get_ex_data(DSA *d, int idx); - -DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); - -/* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED -DSA *DSA_generate_parameters(int bits, - unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, void - (*callback) (int, int, void *), void *cb_arg); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ - -/* New version */ -int DSA_generate_parameters_ex(DSA *dsa, int bits, - const unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - BN_GENCB *cb); - -int DSA_generate_key(DSA *a); -int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); -int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); -int i2d_DSAparams(const DSA *a, unsigned char **pp); - -# ifndef OPENSSL_NO_BIO -int DSAparams_print(BIO *bp, const DSA *x); -int DSA_print(BIO *bp, const DSA *x, int off); -# endif -# ifndef OPENSSL_NO_FP_API -int DSAparams_print_fp(FILE *fp, const DSA *x); -int DSA_print_fp(FILE *bp, const DSA *x, int off); -# endif - -# define DSS_prime_checks 50 -/* - * Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of - * Rabin-Miller - */ -# define DSA_is_prime(n, callback, cb_arg) \ - BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) - -# ifndef OPENSSL_NO_DH -/* - * Convert DSA structure (key or just parameters) into DH structure (be - * careful to avoid small subgroup attacks when using this!) - */ -DH *DSA_dup_DH(const DSA *r); -# endif - -# define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) - -# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_DSA_strings(void); - -/* Error codes for the DSA functions. */ - -/* Function codes. */ -# define DSA_F_D2I_DSA_SIG 110 -# define DSA_F_DO_DSA_PRINT 104 -# define DSA_F_DSAPARAMS_PRINT 100 -# define DSA_F_DSAPARAMS_PRINT_FP 101 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 -# define DSA_F_DSA_DO_SIGN 112 -# define DSA_F_DSA_DO_VERIFY 113 -# define DSA_F_DSA_GENERATE_KEY 124 -# define DSA_F_DSA_GENERATE_PARAMETERS_EX 123 -# define DSA_F_DSA_NEW_METHOD 103 -# define DSA_F_DSA_PARAM_DECODE 119 -# define DSA_F_DSA_PRINT_FP 105 -# define DSA_F_DSA_PRIV_DECODE 115 -# define DSA_F_DSA_PRIV_ENCODE 116 -# define DSA_F_DSA_PUB_DECODE 117 -# define DSA_F_DSA_PUB_ENCODE 118 -# define DSA_F_DSA_SIGN 106 -# define DSA_F_DSA_SIGN_SETUP 107 -# define DSA_F_DSA_SIG_NEW 109 -# define DSA_F_DSA_SIG_PRINT 125 -# define DSA_F_DSA_VERIFY 108 -# define DSA_F_I2D_DSA_SIG 111 -# define DSA_F_OLD_DSA_PRIV_DECODE 122 -# define DSA_F_PKEY_DSA_CTRL 120 -# define DSA_F_PKEY_DSA_KEYGEN 121 -# define DSA_F_SIG_CB 114 - -/* Reason codes. */ -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 100 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NEED_NEW_SETUP_VALUES 110 -# define DSA_R_NON_FIPS_DSA_METHOD 111 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_Q_NOT_PRIME 113 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/dso.h b/3rdparty/openssl/include/openssl/dso.h deleted file mode 100644 index c9013f5..0000000 --- a/3rdparty/openssl/include/openssl/dso.h +++ /dev/null @@ -1,451 +0,0 @@ -/* dso.h */ -/* - * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project - * 2000. - */ -/* ==================================================================== - * Copyright (c) 2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_DSO_H -# define HEADER_DSO_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* These values are used as commands to DSO_ctrl() */ -# define DSO_CTRL_GET_FLAGS 1 -# define DSO_CTRL_SET_FLAGS 2 -# define DSO_CTRL_OR_FLAGS 3 - -/* - * By default, DSO_load() will translate the provided filename into a form - * typical for the platform (more specifically the DSO_METHOD) using the - * dso_name_converter function of the method. Eg. win32 will transform "blah" - * into "blah.dll", and dlfcn will transform it into "libblah.so". The - * behaviour can be overriden by setting the name_converter callback in the - * DSO object (using DSO_set_name_converter()). This callback could even - * utilise the DSO_METHOD's converter too if it only wants to override - * behaviour for one or two possible DSO methods. However, the following flag - * can be set in a DSO to prevent *any* native name-translation at all - eg. - * if the caller has prompted the user for a path to a driver library so the - * filename should be interpreted as-is. - */ -# define DSO_FLAG_NO_NAME_TRANSLATION 0x01 -/* - * An extra flag to give if only the extension should be added as - * translation. This is obviously only of importance on Unix and other - * operating systems where the translation also may prefix the name with - * something, like 'lib', and ignored everywhere else. This flag is also - * ignored if DSO_FLAG_NO_NAME_TRANSLATION is used at the same time. - */ -# define DSO_FLAG_NAME_TRANSLATION_EXT_ONLY 0x02 - -/* - * The following flag controls the translation of symbol names to upper case. - * This is currently only being implemented for OpenVMS. - */ -# define DSO_FLAG_UPCASE_SYMBOL 0x10 - -/* - * This flag loads the library with public symbols. Meaning: The exported - * symbols of this library are public to all libraries loaded after this - * library. At the moment only implemented in unix. - */ -# define DSO_FLAG_GLOBAL_SYMBOLS 0x20 - -typedef void (*DSO_FUNC_TYPE) (void); - -typedef struct dso_st DSO; - -/* - * The function prototype used for method functions (or caller-provided - * callbacks) that transform filenames. They are passed a DSO structure - * pointer (or NULL if they are to be used independantly of a DSO object) and - * a filename to transform. They should either return NULL (if there is an - * error condition) or a newly allocated string containing the transformed - * form that the caller will need to free with OPENSSL_free() when done. - */ -typedef char *(*DSO_NAME_CONVERTER_FUNC)(DSO *, const char *); -/* - * The function prototype used for method functions (or caller-provided - * callbacks) that merge two file specifications. They are passed a DSO - * structure pointer (or NULL if they are to be used independantly of a DSO - * object) and two file specifications to merge. They should either return - * NULL (if there is an error condition) or a newly allocated string - * containing the result of merging that the caller will need to free with - * OPENSSL_free() when done. Here, merging means that bits and pieces are - * taken from each of the file specifications and added together in whatever - * fashion that is sensible for the DSO method in question. The only rule - * that really applies is that if the two specification contain pieces of the - * same type, the copy from the first string takes priority. One could see - * it as the first specification is the one given by the user and the second - * being a bunch of defaults to add on if they're missing in the first. - */ -typedef char *(*DSO_MERGER_FUNC)(DSO *, const char *, const char *); - -typedef struct dso_meth_st { - const char *name; - /* - * Loads a shared library, NB: new DSO_METHODs must ensure that a - * successful load populates the loaded_filename field, and likewise a - * successful unload OPENSSL_frees and NULLs it out. - */ - int (*dso_load) (DSO *dso); - /* Unloads a shared library */ - int (*dso_unload) (DSO *dso); - /* Binds a variable */ - void *(*dso_bind_var) (DSO *dso, const char *symname); - /* - * Binds a function - assumes a return type of DSO_FUNC_TYPE. This should - * be cast to the real function prototype by the caller. Platforms that - * don't have compatible representations for different prototypes (this - * is possible within ANSI C) are highly unlikely to have shared - * libraries at all, let alone a DSO_METHOD implemented for them. - */ - DSO_FUNC_TYPE (*dso_bind_func) (DSO *dso, const char *symname); -/* I don't think this would actually be used in any circumstances. */ -# if 0 - /* Unbinds a variable */ - int (*dso_unbind_var) (DSO *dso, char *symname, void *symptr); - /* Unbinds a function */ - int (*dso_unbind_func) (DSO *dso, char *symname, DSO_FUNC_TYPE symptr); -# endif - /* - * The generic (yuck) "ctrl()" function. NB: Negative return values - * (rather than zero) indicate errors. - */ - long (*dso_ctrl) (DSO *dso, int cmd, long larg, void *parg); - /* - * The default DSO_METHOD-specific function for converting filenames to a - * canonical native form. - */ - DSO_NAME_CONVERTER_FUNC dso_name_converter; - /* - * The default DSO_METHOD-specific function for converting filenames to a - * canonical native form. - */ - DSO_MERGER_FUNC dso_merger; - /* [De]Initialisation handlers. */ - int (*init) (DSO *dso); - int (*finish) (DSO *dso); - /* Return pathname of the module containing location */ - int (*pathbyaddr) (void *addr, char *path, int sz); - /* Perform global symbol lookup, i.e. among *all* modules */ - void *(*globallookup) (const char *symname); -} DSO_METHOD; - -/**********************************************************************/ -/* The low-level handle type used to refer to a loaded shared library */ - -struct dso_st { - DSO_METHOD *meth; - /* - * Standard dlopen uses a (void *). Win32 uses a HANDLE. VMS doesn't use - * anything but will need to cache the filename for use in the dso_bind - * handler. All in all, let each method control its own destiny. - * "Handles" and such go in a STACK. - */ - STACK_OF(void) *meth_data; - int references; - int flags; - /* - * For use by applications etc ... use this for your bits'n'pieces, don't - * touch meth_data! - */ - CRYPTO_EX_DATA ex_data; - /* - * If this callback function pointer is set to non-NULL, then it will be - * used in DSO_load() in place of meth->dso_name_converter. NB: This - * should normally set using DSO_set_name_converter(). - */ - DSO_NAME_CONVERTER_FUNC name_converter; - /* - * If this callback function pointer is set to non-NULL, then it will be - * used in DSO_load() in place of meth->dso_merger. NB: This should - * normally set using DSO_set_merger(). - */ - DSO_MERGER_FUNC merger; - /* - * This is populated with (a copy of) the platform-independant filename - * used for this DSO. - */ - char *filename; - /* - * This is populated with (a copy of) the translated filename by which - * the DSO was actually loaded. It is NULL iff the DSO is not currently - * loaded. NB: This is here because the filename translation process may - * involve a callback being invoked more than once not only to convert to - * a platform-specific form, but also to try different filenames in the - * process of trying to perform a load. As such, this variable can be - * used to indicate (a) whether this DSO structure corresponds to a - * loaded library or not, and (b) the filename with which it was actually - * loaded. - */ - char *loaded_filename; -}; - -DSO *DSO_new(void); -DSO *DSO_new_method(DSO_METHOD *method); -int DSO_free(DSO *dso); -int DSO_flags(DSO *dso); -int DSO_up_ref(DSO *dso); -long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg); - -/* - * This function sets the DSO's name_converter callback. If it is non-NULL, - * then it will be used instead of the associated DSO_METHOD's function. If - * oldcb is non-NULL then it is set to the function pointer value being - * replaced. Return value is non-zero for success. - */ -int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb, - DSO_NAME_CONVERTER_FUNC *oldcb); -/* - * These functions can be used to get/set the platform-independant filename - * used for a DSO. NB: set will fail if the DSO is already loaded. - */ -const char *DSO_get_filename(DSO *dso); -int DSO_set_filename(DSO *dso, const char *filename); -/* - * This function will invoke the DSO's name_converter callback to translate a - * filename, or if the callback isn't set it will instead use the DSO_METHOD's - * converter. If "filename" is NULL, the "filename" in the DSO itself will be - * used. If the DSO_FLAG_NO_NAME_TRANSLATION flag is set, then the filename is - * simply duplicated. NB: This function is usually called from within a - * DSO_METHOD during the processing of a DSO_load() call, and is exposed so - * that caller-created DSO_METHODs can do the same thing. A non-NULL return - * value will need to be OPENSSL_free()'d. - */ -char *DSO_convert_filename(DSO *dso, const char *filename); -/* - * This function will invoke the DSO's merger callback to merge two file - * specifications, or if the callback isn't set it will instead use the - * DSO_METHOD's merger. A non-NULL return value will need to be - * OPENSSL_free()'d. - */ -char *DSO_merge(DSO *dso, const char *filespec1, const char *filespec2); -/* - * If the DSO is currently loaded, this returns the filename that it was - * loaded under, otherwise it returns NULL. So it is also useful as a test as - * to whether the DSO is currently loaded. NB: This will not necessarily - * return the same value as DSO_convert_filename(dso, dso->filename), because - * the DSO_METHOD's load function may have tried a variety of filenames (with - * and/or without the aid of the converters) before settling on the one it - * actually loaded. - */ -const char *DSO_get_loaded_filename(DSO *dso); - -void DSO_set_default_method(DSO_METHOD *meth); -DSO_METHOD *DSO_get_default_method(void); -DSO_METHOD *DSO_get_method(DSO *dso); -DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth); - -/* - * The all-singing all-dancing load function, you normally pass NULL for the - * first and third parameters. Use DSO_up and DSO_free for subsequent - * reference count handling. Any flags passed in will be set in the - * constructed DSO after its init() function but before the load operation. - * If 'dso' is non-NULL, 'flags' is ignored. - */ -DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags); - -/* This function binds to a variable inside a shared library. */ -void *DSO_bind_var(DSO *dso, const char *symname); - -/* This function binds to a function inside a shared library. */ -DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname); - -/* - * This method is the default, but will beg, borrow, or steal whatever method - * should be the default on any particular platform (including - * DSO_METH_null() if necessary). - */ -DSO_METHOD *DSO_METHOD_openssl(void); - -/* - * This method is defined for all platforms - if a platform has no DSO - * support then this will be the only method! - */ -DSO_METHOD *DSO_METHOD_null(void); - -/* - * If DSO_DLFCN is defined, the standard dlfcn.h-style functions (dlopen, - * dlclose, dlsym, etc) will be used and incorporated into this method. If - * not, this method will return NULL. - */ -DSO_METHOD *DSO_METHOD_dlfcn(void); - -/* - * If DSO_DL is defined, the standard dl.h-style functions (shl_load, - * shl_unload, shl_findsym, etc) will be used and incorporated into this - * method. If not, this method will return NULL. - */ -DSO_METHOD *DSO_METHOD_dl(void); - -/* If WIN32 is defined, use DLLs. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_win32(void); - -/* If VMS is defined, use shared images. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_vms(void); - -/* - * This function writes null-terminated pathname of DSO module containing - * 'addr' into 'sz' large caller-provided 'path' and returns the number of - * characters [including trailing zero] written to it. If 'sz' is 0 or - * negative, 'path' is ignored and required amount of charachers [including - * trailing zero] to accomodate pathname is returned. If 'addr' is NULL, then - * pathname of cryptolib itself is returned. Negative or zero return value - * denotes error. - */ -int DSO_pathbyaddr(void *addr, char *path, int sz); - -/* - * This function should be used with caution! It looks up symbols in *all* - * loaded modules and if module gets unloaded by somebody else attempt to - * dereference the pointer is doomed to have fatal consequences. Primary - * usage for this function is to probe *core* system functionality, e.g. - * check if getnameinfo(3) is available at run-time without bothering about - * OS-specific details such as libc.so.versioning or where does it actually - * reside: in libc itself or libsocket. - */ -void *DSO_global_lookup(const char *name); - -/* If BeOS is defined, use shared images. If not, return NULL. */ -DSO_METHOD *DSO_METHOD_beos(void); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_DSO_strings(void); - -/* Error codes for the DSO functions. */ - -/* Function codes. */ -# define DSO_F_BEOS_BIND_FUNC 144 -# define DSO_F_BEOS_BIND_VAR 145 -# define DSO_F_BEOS_LOAD 146 -# define DSO_F_BEOS_NAME_CONVERTER 147 -# define DSO_F_BEOS_UNLOAD 148 -# define DSO_F_DLFCN_BIND_FUNC 100 -# define DSO_F_DLFCN_BIND_VAR 101 -# define DSO_F_DLFCN_LOAD 102 -# define DSO_F_DLFCN_MERGER 130 -# define DSO_F_DLFCN_NAME_CONVERTER 123 -# define DSO_F_DLFCN_UNLOAD 103 -# define DSO_F_DL_BIND_FUNC 104 -# define DSO_F_DL_BIND_VAR 105 -# define DSO_F_DL_LOAD 106 -# define DSO_F_DL_MERGER 131 -# define DSO_F_DL_NAME_CONVERTER 124 -# define DSO_F_DL_UNLOAD 107 -# define DSO_F_DSO_BIND_FUNC 108 -# define DSO_F_DSO_BIND_VAR 109 -# define DSO_F_DSO_CONVERT_FILENAME 126 -# define DSO_F_DSO_CTRL 110 -# define DSO_F_DSO_FREE 111 -# define DSO_F_DSO_GET_FILENAME 127 -# define DSO_F_DSO_GET_LOADED_FILENAME 128 -# define DSO_F_DSO_GLOBAL_LOOKUP 139 -# define DSO_F_DSO_LOAD 112 -# define DSO_F_DSO_MERGE 132 -# define DSO_F_DSO_NEW_METHOD 113 -# define DSO_F_DSO_PATHBYADDR 140 -# define DSO_F_DSO_SET_FILENAME 129 -# define DSO_F_DSO_SET_NAME_CONVERTER 122 -# define DSO_F_DSO_UP_REF 114 -# define DSO_F_GLOBAL_LOOKUP_FUNC 138 -# define DSO_F_PATHBYADDR 137 -# define DSO_F_VMS_BIND_SYM 115 -# define DSO_F_VMS_LOAD 116 -# define DSO_F_VMS_MERGER 133 -# define DSO_F_VMS_UNLOAD 117 -# define DSO_F_WIN32_BIND_FUNC 118 -# define DSO_F_WIN32_BIND_VAR 119 -# define DSO_F_WIN32_GLOBALLOOKUP 142 -# define DSO_F_WIN32_GLOBALLOOKUP_FUNC 143 -# define DSO_F_WIN32_JOINER 135 -# define DSO_F_WIN32_LOAD 120 -# define DSO_F_WIN32_MERGER 134 -# define DSO_F_WIN32_NAME_CONVERTER 125 -# define DSO_F_WIN32_PATHBYADDR 141 -# define DSO_F_WIN32_SPLITTER 136 -# define DSO_F_WIN32_UNLOAD 121 - -/* Reason codes. */ -# define DSO_R_CTRL_FAILED 100 -# define DSO_R_DSO_ALREADY_LOADED 110 -# define DSO_R_EMPTY_FILE_STRUCTURE 113 -# define DSO_R_FAILURE 114 -# define DSO_R_FILENAME_TOO_BIG 101 -# define DSO_R_FINISH_FAILED 102 -# define DSO_R_INCORRECT_FILE_SYNTAX 115 -# define DSO_R_LOAD_FAILED 103 -# define DSO_R_NAME_TRANSLATION_FAILED 109 -# define DSO_R_NO_FILENAME 111 -# define DSO_R_NO_FILE_SPECIFICATION 116 -# define DSO_R_NULL_HANDLE 104 -# define DSO_R_SET_FILENAME_FAILED 112 -# define DSO_R_STACK_ERROR 105 -# define DSO_R_SYM_FAILURE 106 -# define DSO_R_UNLOAD_FAILED 107 -# define DSO_R_UNSUPPORTED 108 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/dtls1.h b/3rdparty/openssl/include/openssl/dtls1.h deleted file mode 100644 index 30bbcf2..0000000 --- a/3rdparty/openssl/include/openssl/dtls1.h +++ /dev/null @@ -1,272 +0,0 @@ -/* ssl/dtls1.h */ -/* - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. - */ -/* ==================================================================== - * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_DTLS1_H -# define HEADER_DTLS1_H - -# include -# include -# ifdef OPENSSL_SYS_VMS -# include -# include -# endif -# ifdef OPENSSL_SYS_WIN32 -/* Needed for struct timeval */ -# include -# elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_) -# include -# else -# if defined(OPENSSL_SYS_VXWORKS) -# include -# else -# include -# endif -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define DTLS1_VERSION 0xFEFF -# define DTLS1_2_VERSION 0xFEFD -# define DTLS_MAX_VERSION DTLS1_2_VERSION -# define DTLS1_VERSION_MAJOR 0xFE - -# define DTLS1_BAD_VER 0x0100 - -/* Special value for method supporting multiple versions */ -# define DTLS_ANY_VERSION 0x1FFFF - -# if 0 -/* this alert description is not specified anywhere... */ -# define DTLS1_AD_MISSING_HANDSHAKE_MESSAGE 110 -# endif - -/* lengths of messages */ -# define DTLS1_COOKIE_LENGTH 256 - -# define DTLS1_RT_HEADER_LENGTH 13 - -# define DTLS1_HM_HEADER_LENGTH 12 - -# define DTLS1_HM_BAD_FRAGMENT -2 -# define DTLS1_HM_FRAGMENT_RETRY -3 - -# define DTLS1_CCS_HEADER_LENGTH 1 - -# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE -# define DTLS1_AL_HEADER_LENGTH 7 -# else -# define DTLS1_AL_HEADER_LENGTH 2 -# endif - -# ifndef OPENSSL_NO_SSL_INTERN - -# ifndef OPENSSL_NO_SCTP -# define DTLS1_SCTP_AUTH_LABEL "EXPORTER_DTLS_OVER_SCTP" -# endif - -/* Max MTU overhead we know about so far is 40 for IPv6 + 8 for UDP */ -# define DTLS1_MAX_MTU_OVERHEAD 48 - -typedef struct dtls1_bitmap_st { - unsigned long map; /* track 32 packets on 32-bit systems and 64 - * - on 64-bit systems */ - unsigned char max_seq_num[8]; /* max record number seen so far, 64-bit - * value in big-endian encoding */ -} DTLS1_BITMAP; - -struct dtls1_retransmit_state { - EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ - EVP_MD_CTX *write_hash; /* used for mac generation */ -# ifndef OPENSSL_NO_COMP - COMP_CTX *compress; /* compression */ -# else - char *compress; -# endif - SSL_SESSION *session; - unsigned short epoch; -}; - -struct hm_header_st { - unsigned char type; - unsigned long msg_len; - unsigned short seq; - unsigned long frag_off; - unsigned long frag_len; - unsigned int is_ccs; - struct dtls1_retransmit_state saved_retransmit_state; -}; - -struct ccs_header_st { - unsigned char type; - unsigned short seq; -}; - -struct dtls1_timeout_st { - /* Number of read timeouts so far */ - unsigned int read_timeouts; - /* Number of write timeouts so far */ - unsigned int write_timeouts; - /* Number of alerts received so far */ - unsigned int num_alerts; -}; - -typedef struct record_pqueue_st { - unsigned short epoch; - pqueue q; -} record_pqueue; - -typedef struct hm_fragment_st { - struct hm_header_st msg_header; - unsigned char *fragment; - unsigned char *reassembly; -} hm_fragment; - -typedef struct dtls1_state_st { - unsigned int send_cookie; - unsigned char cookie[DTLS1_COOKIE_LENGTH]; - unsigned char rcvd_cookie[DTLS1_COOKIE_LENGTH]; - unsigned int cookie_len; - /* - * The current data and handshake epoch. This is initially - * undefined, and starts at zero once the initial handshake is - * completed - */ - unsigned short r_epoch; - unsigned short w_epoch; - /* records being received in the current epoch */ - DTLS1_BITMAP bitmap; - /* renegotiation starts a new set of sequence numbers */ - DTLS1_BITMAP next_bitmap; - /* handshake message numbers */ - unsigned short handshake_write_seq; - unsigned short next_handshake_write_seq; - unsigned short handshake_read_seq; - /* save last sequence number for retransmissions */ - unsigned char last_write_sequence[8]; - /* Received handshake records (processed and unprocessed) */ - record_pqueue unprocessed_rcds; - record_pqueue processed_rcds; - /* Buffered handshake messages */ - pqueue buffered_messages; - /* Buffered (sent) handshake records */ - pqueue sent_messages; - /* - * Buffered application records. Only for records between CCS and - * Finished to prevent either protocol violation or unnecessary message - * loss. - */ - record_pqueue buffered_app_data; - /* Is set when listening for new connections with dtls1_listen() */ - unsigned int listen; - unsigned int link_mtu; /* max on-the-wire DTLS packet size */ - unsigned int mtu; /* max DTLS packet size */ - struct hm_header_st w_msg_hdr; - struct hm_header_st r_msg_hdr; - struct dtls1_timeout_st timeout; - /* - * Indicates when the last handshake msg or heartbeat sent will timeout - */ - struct timeval next_timeout; - /* Timeout duration */ - unsigned short timeout_duration; - /* - * storage for Alert/Handshake protocol data received but not yet - * processed by ssl3_read_bytes: - */ - unsigned char alert_fragment[DTLS1_AL_HEADER_LENGTH]; - unsigned int alert_fragment_len; - unsigned char handshake_fragment[DTLS1_HM_HEADER_LENGTH]; - unsigned int handshake_fragment_len; - unsigned int retransmitting; - /* - * Set when the handshake is ready to process peer's ChangeCipherSpec message. - * Cleared after the message has been processed. - */ - unsigned int change_cipher_spec_ok; -# ifndef OPENSSL_NO_SCTP - /* used when SSL_ST_XX_FLUSH is entered */ - int next_state; - int shutdown_received; -# endif -} DTLS1_STATE; - -typedef struct dtls1_record_data_st { - unsigned char *packet; - unsigned int packet_length; - SSL3_BUFFER rbuf; - SSL3_RECORD rrec; -# ifndef OPENSSL_NO_SCTP - struct bio_dgram_sctp_rcvinfo recordinfo; -# endif -} DTLS1_RECORD_DATA; - -# endif - -/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ -# define DTLS1_TMO_READ_COUNT 2 -# define DTLS1_TMO_WRITE_COUNT 2 - -# define DTLS1_TMO_ALERT_COUNT 12 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/e_os2.h b/3rdparty/openssl/include/openssl/e_os2.h deleted file mode 100644 index 7be9989..0000000 --- a/3rdparty/openssl/include/openssl/e_os2.h +++ /dev/null @@ -1,328 +0,0 @@ -/* e_os2.h */ -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#include - -#ifndef HEADER_E_OS2_H -# define HEADER_E_OS2_H - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * Detect operating systems. This probably needs completing. - * The result is that at least one OPENSSL_SYS_os macro should be defined. - * However, if none is defined, Unix is assumed. - **/ - -# define OPENSSL_SYS_UNIX - -/* ---------------------- Macintosh, before MacOS X ----------------------- */ -# if defined(__MWERKS__) && defined(macintosh) || defined(OPENSSL_SYSNAME_MAC) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_MACINTOSH_CLASSIC -# endif - -/* ---------------------- NetWare ----------------------------------------- */ -# if defined(NETWARE) || defined(OPENSSL_SYSNAME_NETWARE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_NETWARE -# endif - -/* --------------------- Microsoft operating systems ---------------------- */ - -/* - * Note that MSDOS actually denotes 32-bit environments running on top of - * MS-DOS, such as DJGPP one. - */ -# if defined(OPENSSL_SYSNAME_MSDOS) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_MSDOS -# endif - -/* - * For 32 bit environment, there seems to be the CygWin environment and then - * all the others that try to do the same thing Microsoft does... - */ -# if defined(OPENSSL_SYSNAME_UWIN) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_UWIN -# else -# if defined(__CYGWIN__) || defined(OPENSSL_SYSNAME_CYGWIN) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_CYGWIN -# else -# if defined(_WIN32) || defined(OPENSSL_SYSNAME_WIN32) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32 -# endif -# if defined(_WIN64) || defined(OPENSSL_SYSNAME_WIN64) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN64) -# define OPENSSL_SYS_WIN64 -# endif -# endif -# if defined(OPENSSL_SYSNAME_WINNT) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINNT -# endif -# if defined(OPENSSL_SYSNAME_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINCE -# endif -# endif -# endif - -/* Anything that tries to look like Microsoft is "Windows" */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_SYS_MSDOS -# define OPENSSL_SYS_MSDOS -# endif -# endif - -/* - * DLL settings. This part is a bit tough, because it's up to the - * application implementor how he or she will link the application, so it - * requires some macro to be used. - */ -# ifdef OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_OPT_WINDLL -# if defined(_WINDLL) /* This is used when building OpenSSL to - * indicate that DLL linkage should be used */ -# define OPENSSL_OPT_WINDLL -# endif -# endif -# endif - -/* ------------------------------- OpenVMS -------------------------------- */ -# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYSNAME_VMS) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_VMS -# if defined(__DECC) -# define OPENSSL_SYS_VMS_DECC -# elif defined(__DECCXX) -# define OPENSSL_SYS_VMS_DECC -# define OPENSSL_SYS_VMS_DECCXX -# else -# define OPENSSL_SYS_VMS_NODECC -# endif -# endif - -/* -------------------------------- OS/2 ---------------------------------- */ -# if defined(__EMX__) || defined(__OS2__) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_OS2 -# endif - -/* -------------------------------- Unix ---------------------------------- */ -# ifdef OPENSSL_SYS_UNIX -# if defined(linux) || defined(__linux__) || defined(OPENSSL_SYSNAME_LINUX) -# define OPENSSL_SYS_LINUX -# endif -# ifdef OPENSSL_SYSNAME_MPE -# define OPENSSL_SYS_MPE -# endif -# ifdef OPENSSL_SYSNAME_SNI -# define OPENSSL_SYS_SNI -# endif -# ifdef OPENSSL_SYSNAME_ULTRASPARC -# define OPENSSL_SYS_ULTRASPARC -# endif -# ifdef OPENSSL_SYSNAME_NEWS4 -# define OPENSSL_SYS_NEWS4 -# endif -# ifdef OPENSSL_SYSNAME_MACOSX -# define OPENSSL_SYS_MACOSX -# endif -# ifdef OPENSSL_SYSNAME_MACOSX_RHAPSODY -# define OPENSSL_SYS_MACOSX_RHAPSODY -# define OPENSSL_SYS_MACOSX -# endif -# ifdef OPENSSL_SYSNAME_SUNOS -# define OPENSSL_SYS_SUNOS -# endif -# if defined(_CRAY) || defined(OPENSSL_SYSNAME_CRAY) -# define OPENSSL_SYS_CRAY -# endif -# if defined(_AIX) || defined(OPENSSL_SYSNAME_AIX) -# define OPENSSL_SYS_AIX -# endif -# endif - -/* -------------------------------- VOS ----------------------------------- */ -# if defined(__VOS__) || defined(OPENSSL_SYSNAME_VOS) -# define OPENSSL_SYS_VOS -# ifdef __HPPA__ -# define OPENSSL_SYS_VOS_HPPA -# endif -# ifdef __IA32__ -# define OPENSSL_SYS_VOS_IA32 -# endif -# endif - -/* ------------------------------ VxWorks --------------------------------- */ -# ifdef OPENSSL_SYSNAME_VXWORKS -# define OPENSSL_SYS_VXWORKS -# endif - -/* -------------------------------- BeOS ---------------------------------- */ -# if defined(__BEOS__) -# define OPENSSL_SYS_BEOS -# include -# if defined(BONE_VERSION) -# define OPENSSL_SYS_BEOS_BONE -# else -# define OPENSSL_SYS_BEOS_R5 -# endif -# endif - -/** - * That's it for OS-specific stuff - *****************************************************************************/ - -/* Specials for I/O an exit */ -# ifdef OPENSSL_SYS_MSDOS -# define OPENSSL_UNISTD_IO -# define OPENSSL_DECLARE_EXIT extern void exit(int); -# else -# define OPENSSL_UNISTD_IO OPENSSL_UNISTD -# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ -# endif - -/*- - * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare - * certain global symbols that, with some compilers under VMS, have to be - * defined and declared explicitely with globaldef and globalref. - * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare - * DLL exports and imports for compilers under Win32. These are a little - * more complicated to use. Basically, for any library that exports some - * global variables, the following code must be present in the header file - * that declares them, before OPENSSL_EXTERN is used: - * - * #ifdef SOME_BUILD_FLAG_MACRO - * # undef OPENSSL_EXTERN - * # define OPENSSL_EXTERN OPENSSL_EXPORT - * #endif - * - * The default is to have OPENSSL_EXPORT, OPENSSL_IMPORT and OPENSSL_GLOBAL - * have some generally sensible values, and for OPENSSL_EXTERN to have the - * value OPENSSL_IMPORT. - */ - -# if defined(OPENSSL_SYS_VMS_NODECC) -# define OPENSSL_EXPORT globalref -# define OPENSSL_IMPORT globalref -# define OPENSSL_GLOBAL globaldef -# elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_IMPORT extern __declspec(dllimport) -# define OPENSSL_GLOBAL -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_IMPORT extern -# define OPENSSL_GLOBAL -# endif -# define OPENSSL_EXTERN OPENSSL_IMPORT - -/*- - * Macros to allow global variables to be reached through function calls when - * required (if a shared library version requires it, for example. - * The way it's done allows definitions like this: - * - * // in foobar.c - * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) - * // in foobar.h - * OPENSSL_DECLARE_GLOBAL(int,foobar); - * #define foobar OPENSSL_GLOBAL_REF(foobar) - */ -# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ - type *_shadow_##name(void) \ - { static type _hide_##name=value; return &_hide_##name; } -# define OPENSSL_DECLARE_GLOBAL(type,name) type *_shadow_##name(void) -# define OPENSSL_GLOBAL_REF(name) (*(_shadow_##name())) -# else -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) OPENSSL_GLOBAL type _shadow_##name=value; -# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name -# define OPENSSL_GLOBAL_REF(name) _shadow_##name -# endif - -# if defined(OPENSSL_SYS_MACINTOSH_CLASSIC) && macintosh==1 && !defined(MAC_OS_GUSI_SOURCE) -# define ossl_ssize_t long -# endif - -# ifdef OPENSSL_SYS_MSDOS -# define ossl_ssize_t long -# endif - -# if defined(NeXT) || defined(OPENSSL_SYS_NEWS4) || defined(OPENSSL_SYS_SUNOS) -# define ssize_t int -# endif - -# if defined(__ultrix) && !defined(ssize_t) -# define ossl_ssize_t int -# endif - -# ifndef ossl_ssize_t -# define ossl_ssize_t ssize_t -# endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ebcdic.h b/3rdparty/openssl/include/openssl/ebcdic.h deleted file mode 100644 index 4cbdfeb..0000000 --- a/3rdparty/openssl/include/openssl/ebcdic.h +++ /dev/null @@ -1,26 +0,0 @@ -/* crypto/ebcdic.h */ - -#ifndef HEADER_EBCDIC_H -# define HEADER_EBCDIC_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid name clashes with other applications */ -# define os_toascii _openssl_os_toascii -# define os_toebcdic _openssl_os_toebcdic -# define ebcdic2ascii _openssl_ebcdic2ascii -# define ascii2ebcdic _openssl_ascii2ebcdic - -extern const unsigned char os_toascii[256]; -extern const unsigned char os_toebcdic[256]; -void *ebcdic2ascii(void *dest, const void *srce, size_t count); -void *ascii2ebcdic(void *dest, const void *srce, size_t count); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ec.h b/3rdparty/openssl/include/openssl/ec.h deleted file mode 100644 index 81e6faf..0000000 --- a/3rdparty/openssl/include/openssl/ec.h +++ /dev/null @@ -1,1282 +0,0 @@ -/* crypto/ec/ec.h */ -/* - * Originally written by Bodo Moeller for the OpenSSL project. - */ -/** - * \file crypto/ec/ec.h Include file for the OpenSSL EC functions - * \author Originally written by Bodo Moeller for the OpenSSL project - */ -/* ==================================================================== - * Copyright (c) 1998-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * The elliptic curve binary polynomial software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_EC_H -# define HEADER_EC_H - -# include - -# ifdef OPENSSL_NO_EC -# error EC is disabled. -# endif - -# include -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -# ifdef __cplusplus -extern "C" { -# elif defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (off,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif - -# ifndef OPENSSL_ECC_MAX_FIELD_BITS -# define OPENSSL_ECC_MAX_FIELD_BITS 661 -# endif - -/** Enum for the point conversion form as defined in X9.62 (ECDSA) - * for the encoding of a elliptic curve point (x,y) */ -typedef enum { - /** the point is encoded as z||x, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x04 */ - POINT_CONVERSION_UNCOMPRESSED = 4, - /** the point is encoded as z||x||y, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_HYBRID = 6 -} point_conversion_form_t; - -typedef struct ec_method_st EC_METHOD; - -typedef struct ec_group_st - /*- - EC_METHOD *meth; - -- field definition - -- curve coefficients - -- optional generator with associated information (order, cofactor) - -- optional extra data (precomputed table for fast computation of multiples of generator) - -- ASN1 stuff - */ - EC_GROUP; - -typedef struct ec_point_st EC_POINT; - -/********************************************************************/ -/* EC_METHODs for curves over GF(p) */ -/********************************************************************/ - -/** Returns the basic GFp ec methods which provides the basis for the - * optimized methods. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_simple_method(void); - -/** Returns GFp methods using montgomery multiplication. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_mont_method(void); - -/** Returns GFp methods using optimized methods for NIST recommended curves - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nist_method(void); - -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -/** Returns 64-bit optimized methods for nistp224 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp224_method(void); - -/** Returns 64-bit optimized methods for nistp256 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp256_method(void); - -/** Returns 64-bit optimized methods for nistp521 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp521_method(void); -# endif - -# ifndef OPENSSL_NO_EC2M -/********************************************************************/ -/* EC_METHOD for curves over GF(2^m) */ -/********************************************************************/ - -/** Returns the basic GF2m ec method - * \return EC_METHOD object - */ -const EC_METHOD *EC_GF2m_simple_method(void); - -# endif - -/********************************************************************/ -/* EC_GROUP functions */ -/********************************************************************/ - -/** Creates a new EC_GROUP object - * \param meth EC_METHOD to use - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); - -/** Frees a EC_GROUP object - * \param group EC_GROUP object to be freed. - */ -void EC_GROUP_free(EC_GROUP *group); - -/** Clears and frees a EC_GROUP object - * \param group EC_GROUP object to be cleared and freed. - */ -void EC_GROUP_clear_free(EC_GROUP *group); - -/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. - * \param dst destination EC_GROUP object - * \param src source EC_GROUP object - * \return 1 on success and 0 if an error occurred. - */ -int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); - -/** Creates a new EC_GROUP object and copies the copies the content - * form src to the newly created EC_KEY object - * \param src source EC_GROUP object - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); - -/** Returns the EC_METHOD of the EC_GROUP object. - * \param group EC_GROUP object - * \return EC_METHOD used in this EC_GROUP object. - */ -const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); - -/** Returns the field type of the EC_METHOD. - * \param meth EC_METHOD object - * \return NID of the underlying field type OID. - */ -int EC_METHOD_get_field_type(const EC_METHOD *meth); - -/** Sets the generator and it's order/cofactor of a EC_GROUP object. - * \param group EC_GROUP object - * \param generator EC_POINT object with the generator. - * \param order the order of the group generated by the generator. - * \param cofactor the index of the sub-group generated by the generator - * in the group of all points on the elliptic curve. - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, - const BIGNUM *order, const BIGNUM *cofactor); - -/** Returns the generator of a EC_GROUP object. - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). - */ -const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); - -/** Returns the montgomery data for order(Generator) - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). -*/ -BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); - -/** Gets the order of a EC_GROUP - * \param group EC_GROUP object - * \param order BIGNUM to which the order is copied - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); - -/** Gets the cofactor of a EC_GROUP - * \param group EC_GROUP object - * \param cofactor BIGNUM to which the cofactor is copied - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, - BN_CTX *ctx); - -/** Sets the name of a EC_GROUP object - * \param group EC_GROUP object - * \param nid NID of the curve name OID - */ -void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); - -/** Returns the curve name of a EC_GROUP object - * \param group EC_GROUP object - * \return NID of the curve name OID or 0 if not set. - */ -int EC_GROUP_get_curve_name(const EC_GROUP *group); - -void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); -int EC_GROUP_get_asn1_flag(const EC_GROUP *group); - -void EC_GROUP_set_point_conversion_form(EC_GROUP *group, - point_conversion_form_t form); -point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); - -unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); -size_t EC_GROUP_get_seed_len(const EC_GROUP *); -size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); - -/** Sets the parameter of a ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM with the prime number - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM for the prime number - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M -/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM for the polynomial defining the underlying field - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); -# endif -/** Returns the number of bits needed to represent a field element - * \param group EC_GROUP object - * \return number of bits needed to represent a field element - */ -int EC_GROUP_get_degree(const EC_GROUP *group); - -/** Checks whether the parameter in the EC_GROUP define a valid ec group - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if group is a valid ec group and 0 otherwise - */ -int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); - -/** Checks whether the discriminant of the elliptic curve is zero or not - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if the discriminant is not zero and 0 otherwise - */ -int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); - -/** Compares two EC_GROUP objects - * \param a first EC_GROUP object - * \param b second EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 0 if both groups are equal and 1 otherwise - */ -int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); - -/* - * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after - * choosing an appropriate EC_METHOD - */ - -/** Creates a new EC_GROUP object with the specified parameters defined - * over GFp (defined by the equation y^2 = x^3 + a*x + b) - * \param p BIGNUM with the prime number - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Creates a new EC_GROUP object with the specified parameters defined - * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# endif -/** Creates a EC_GROUP object with a curve specified by a NID - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name(int nid); - -/********************************************************************/ -/* handling of internal curves */ -/********************************************************************/ - -typedef struct { - int nid; - const char *comment; -} EC_builtin_curve; - -/* - * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all - * available curves or zero if a error occurred. In case r ist not zero - * nitems EC_builtin_curve structures are filled with the data of the first - * nitems internal groups - */ -size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); - -const char *EC_curve_nid2nist(int nid); -int EC_curve_nist2nid(const char *name); - -/********************************************************************/ -/* EC_POINT functions */ -/********************************************************************/ - -/** Creates a new EC_POINT object for the specified EC_GROUP - * \param group EC_GROUP the underlying EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_new(const EC_GROUP *group); - -/** Frees a EC_POINT object - * \param point EC_POINT object to be freed - */ -void EC_POINT_free(EC_POINT *point); - -/** Clears and frees a EC_POINT object - * \param point EC_POINT object to be cleared and freed - */ -void EC_POINT_clear_free(EC_POINT *point); - -/** Copies EC_POINT object - * \param dst destination EC_POINT object - * \param src source EC_POINT object - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); - -/** Creates a new EC_POINT object and copies the content of the supplied - * EC_POINT - * \param src source EC_POINT object - * \param group underlying the EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); - -/** Returns the EC_METHOD used in EC_POINT object - * \param point EC_POINT object - * \return the EC_METHOD used - */ -const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); - -/** Sets a point to infinity (neutral element) - * \param group underlying EC_GROUP object - * \param point EC_POINT to set to infinity - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); - -/** Sets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param z BIGNUM with the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - const BIGNUM *y, const BIGNUM *z, - BN_CTX *ctx); - -/** Gets the jacobian projective coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param z BIGNUM for the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BIGNUM *z, - BN_CTX *ctx); - -/** Sets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - int y_bit, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of a EC_POINT over GF2m - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with the x-coordinate - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GF2m - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM with x-coordinate - * \param y_bit integer with the y-Bit (either 0 or 1) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - int y_bit, BN_CTX *ctx); -# endif -/** Encodes a EC_POINT object to a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param form point conversion form - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, - point_conversion_form_t form, - unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Decodes a EC_POINT from a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, - const unsigned char *buf, size_t len, BN_CTX *ctx); - -/* other interfaces to point2oct/oct2point: */ -BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BIGNUM *, BN_CTX *); -EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, - EC_POINT *, BN_CTX *); -char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BN_CTX *); -EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, - EC_POINT *, BN_CTX *); - -/********************************************************************/ -/* functions for doing EC_POINT arithmetic */ -/********************************************************************/ - -/** Computes the sum of two EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = a + b) - * \param a EC_POINT object with the first summand - * \param b EC_POINT object with the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - const EC_POINT *b, BN_CTX *ctx); - -/** Computes the double of a EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = 2 * a) - * \param a EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - BN_CTX *ctx); - -/** Computes the inverse of a EC_POINT - * \param group underlying EC_GROUP object - * \param a EC_POINT object to be inverted (it's used for the result as well) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); - -/** Checks whether the point is the neutral element of the group - * \param group the underlying EC_GROUP object - * \param p EC_POINT object - * \return 1 if the point is the neutral element and 0 otherwise - */ -int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); - -/** Checks whether the point is on the curve - * \param group underlying EC_GROUP object - * \param point EC_POINT object to check - * \param ctx BN_CTX object (optional) - * \return 1 if point if on the curve and 0 otherwise - */ -int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, - BN_CTX *ctx); - -/** Compares two EC_POINTs - * \param group underlying EC_GROUP object - * \param a first EC_POINT object - * \param b second EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 0 if both points are equal and a value != 0 otherwise - */ -int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, - BN_CTX *ctx); - -int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); -int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, - EC_POINT *points[], BN_CTX *ctx); - -/** Computes r = generator * n sum_{i=0}^{num-1} p[i] * m[i] - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param num number futher summands - * \param p array of size num of EC_POINT objects - * \param m array of size num of BIGNUM objects - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - size_t num, const EC_POINT *p[], const BIGNUM *m[], - BN_CTX *ctx); - -/** Computes r = generator * n + q * m - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param q EC_POINT object with the first factor of the second summand - * \param m BIGNUM with the second factor of the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); - -/** Stores multiples of generator for faster point multiplication - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occured - */ -int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); - -/** Reports whether a precomputation has been done - * \param group EC_GROUP object - * \return 1 if a pre-computation has been done and 0 otherwise - */ -int EC_GROUP_have_precompute_mult(const EC_GROUP *group); - -/********************************************************************/ -/* ASN1 stuff */ -/********************************************************************/ - -/* - * EC_GROUP_get_basis_type() returns the NID of the basis type used to - * represent the field elements - */ -int EC_GROUP_get_basis_type(const EC_GROUP *); -# ifndef OPENSSL_NO_EC2M -int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); -int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, - unsigned int *k2, unsigned int *k3); -# endif - -# define OPENSSL_EC_NAMED_CURVE 0x001 - -typedef struct ecpk_parameters_st ECPKPARAMETERS; - -EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); -int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); - -# define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) -# define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) -# define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ - (unsigned char *)(x)) - -# ifndef OPENSSL_NO_BIO -int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); -# endif -# ifndef OPENSSL_NO_FP_API -int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); -# endif - -/********************************************************************/ -/* EC_KEY functions */ -/********************************************************************/ - -typedef struct ec_key_st EC_KEY; - -/* some values for the encoding_flag */ -# define EC_PKEY_NO_PARAMETERS 0x001 -# define EC_PKEY_NO_PUBKEY 0x002 - -/* some values for the flags field */ -# define EC_FLAG_NON_FIPS_ALLOW 0x1 -# define EC_FLAG_FIPS_CHECKED 0x2 - -/** Creates a new EC_KEY object. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new(void); - -int EC_KEY_get_flags(const EC_KEY *key); - -void EC_KEY_set_flags(EC_KEY *key, int flags); - -void EC_KEY_clear_flags(EC_KEY *key, int flags); - -/** Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new_by_curve_name(int nid); - -/** Frees a EC_KEY object. - * \param key EC_KEY object to be freed. - */ -void EC_KEY_free(EC_KEY *key); - -/** Copies a EC_KEY object. - * \param dst destination EC_KEY object - * \param src src EC_KEY object - * \return dst or NULL if an error occurred. - */ -EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); - -/** Creates a new EC_KEY object and copies the content from src to it. - * \param src the source EC_KEY object - * \return newly created EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_dup(const EC_KEY *src); - -/** Increases the internal reference count of a EC_KEY object. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_up_ref(EC_KEY *key); - -/** Returns the EC_GROUP object of a EC_KEY object - * \param key EC_KEY object - * \return the EC_GROUP object (possibly NULL). - */ -const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); - -/** Sets the EC_GROUP of a EC_KEY object. - * \param key EC_KEY object - * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY - * object will use an own copy of the EC_GROUP). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); - -/** Returns the private key of a EC_KEY object. - * \param key EC_KEY object - * \return a BIGNUM with the private key (possibly NULL). - */ -const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); - -/** Sets the private key of a EC_KEY object. - * \param key EC_KEY object - * \param prv BIGNUM with the private key (note: the EC_KEY object - * will use an own copy of the BIGNUM). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); - -/** Returns the public key of a EC_KEY object. - * \param key the EC_KEY object - * \return a EC_POINT object with the public key (possibly NULL) - */ -const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); - -/** Sets the public key of a EC_KEY object. - * \param key EC_KEY object - * \param pub EC_POINT object with the public key (note: the EC_KEY object - * will use an own copy of the EC_POINT object). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); - -unsigned EC_KEY_get_enc_flags(const EC_KEY *key); -void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); -point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); -void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); -/* functions to set/get method specific data */ -void *EC_KEY_get_key_method_data(EC_KEY *key, - void *(*dup_func) (void *), - void (*free_func) (void *), - void (*clear_free_func) (void *)); -/** Sets the key method data of an EC_KEY object, if none has yet been set. - * \param key EC_KEY object - * \param data opaque data to install. - * \param dup_func a function that duplicates |data|. - * \param free_func a function that frees |data|. - * \param clear_free_func a function that wipes and frees |data|. - * \return the previously set data pointer, or NULL if |data| was inserted. - */ -void *EC_KEY_insert_key_method_data(EC_KEY *key, void *data, - void *(*dup_func) (void *), - void (*free_func) (void *), - void (*clear_free_func) (void *)); -/* wrapper functions for the underlying EC_GROUP object */ -void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); - -/** Creates a table of pre-computed multiples of the generator to - * accelerate further EC_KEY operations. - * \param key EC_KEY object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); - -/** Creates a new ec private (and optional a new public) key. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_generate_key(EC_KEY *key); - -/** Verifies that a private and/or public key is valid. - * \param key the EC_KEY object - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_check_key(const EC_KEY *key); - -/** Sets a public key from affine coordindates performing - * neccessary NIST PKV tests. - * \param key the EC_KEY object - * \param x public key x coordinate - * \param y public key y coordinate - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, - BIGNUM *y); - -/********************************************************************/ -/* de- and encoding functions for SEC1 ECPrivateKey */ -/********************************************************************/ - -/** Decodes a private key from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded private key - * \param len length of the DER encoded private key - * \return the decoded private key or NULL if an error occurred. - */ -EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a private key object and stores the result in a buffer. - * \param key the EC_KEY object to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC parameters */ -/********************************************************************/ - -/** Decodes ec parameter from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded ec parameters - * \param len length of the DER encoded ec parameters - * \return a EC_KEY object with the decoded parameters or NULL if an error - * occurred. - */ -EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes ec parameter and stores the result in a buffer. - * \param key the EC_KEY object with ec paramters to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECParameters(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC public key */ -/* (octet string, not DER -- hence 'o2i' and 'i2o') */ -/********************************************************************/ - -/** Decodes a ec public key from a octet string. - * \param key a pointer to a EC_KEY object which should be used - * \param in memory buffer with the encoded public key - * \param len length of the encoded public key - * \return EC_KEY object with decoded public key or NULL if an error - * occurred. - */ -EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a ec public key in an octet string. - * \param key the EC_KEY object with the public key - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred - */ -int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); - -# ifndef OPENSSL_NO_BIO -/** Prints out the ec parameters on human readable form. - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print(BIO *bp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); - -# endif -# ifndef OPENSSL_NO_FP_API -/** Prints out the ec parameters on human readable form. - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print_fp(FILE *fp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); - -# endif - -# define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) - -# ifndef __cplusplus -# if defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif -# endif - -# define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) - -# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) - -# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) - -# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) - -# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) - -# define EVP_PKEY_CTX_set_ecdh_kdf_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_get_ecdh_kdf_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_MD, 0, (void *)pmd) - -# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) - -# define EVP_PKEY_CTX_get_ecdh_kdf_outlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN, 0, (void *)plen) - -# define EVP_PKEY_CTX_set0_ecdh_kdf_ukm(ctx, p, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_UKM, plen, (void *)p) - -# define EVP_PKEY_CTX_get0_ecdh_kdf_ukm(ctx, p) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_GET_EC_KDF_UKM, 0, (void *)p) - -# define EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_EC_PARAM_ENC (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_EC_KDF_UKM (EVP_PKEY_ALG_CTRL + 10) -/* KDF types */ -# define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_62 2 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_EC_strings(void); - -/* Error codes for the EC functions. */ - -/* Function codes. */ -# define EC_F_BN_TO_FELEM 224 -# define EC_F_COMPUTE_WNAF 143 -# define EC_F_D2I_ECPARAMETERS 144 -# define EC_F_D2I_ECPKPARAMETERS 145 -# define EC_F_D2I_ECPRIVATEKEY 146 -# define EC_F_DO_EC_KEY_PRINT 221 -# define EC_F_ECDH_CMS_DECRYPT 238 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 -# define EC_F_ECKEY_PARAM2TYPE 223 -# define EC_F_ECKEY_PARAM_DECODE 212 -# define EC_F_ECKEY_PRIV_DECODE 213 -# define EC_F_ECKEY_PRIV_ENCODE 214 -# define EC_F_ECKEY_PUB_DECODE 215 -# define EC_F_ECKEY_PUB_ENCODE 216 -# define EC_F_ECKEY_TYPE2PARAM 220 -# define EC_F_ECPARAMETERS_PRINT 147 -# define EC_F_ECPARAMETERS_PRINT_FP 148 -# define EC_F_ECPKPARAMETERS_PRINT 149 -# define EC_F_ECPKPARAMETERS_PRINT_FP 150 -# define EC_F_ECP_NISTZ256_GET_AFFINE 240 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 -# define EC_F_ECP_NISTZ256_POINTS_MUL 241 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 -# define EC_F_ECP_NISTZ256_SET_WORDS 245 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECP_NIST_MOD_192 203 -# define EC_F_ECP_NIST_MOD_224 204 -# define EC_F_ECP_NIST_MOD_256 205 -# define EC_F_ECP_NIST_MOD_521 206 -# define EC_F_EC_ASN1_GROUP2CURVE 153 -# define EC_F_EC_ASN1_GROUP2FIELDID 154 -# define EC_F_EC_ASN1_GROUP2PARAMETERS 155 -# define EC_F_EC_ASN1_GROUP2PKPARAMETERS 156 -# define EC_F_EC_ASN1_PARAMETERS2GROUP 157 -# define EC_F_EC_ASN1_PKPARAMETERS2GROUP 158 -# define EC_F_EC_EX_DATA_SET_DATA 211 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 -# define EC_F_EC_GFP_MONT_FIELD_MUL 131 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 -# define EC_F_EC_GFP_MONT_FIELD_SQR 132 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE_GFP 135 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 -# define EC_F_EC_GFP_NIST_FIELD_MUL 200 -# define EC_F_EC_GFP_NIST_FIELD_SQR 201 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE_GFP 100 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_GENERATOR 101 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES_GFP 105 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES_GFP 128 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES_GFP 129 -# define EC_F_EC_GROUP_CHECK 170 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 -# define EC_F_EC_GROUP_COPY 106 -# define EC_F_EC_GROUP_GET0_GENERATOR 139 -# define EC_F_EC_GROUP_GET_COFACTOR 140 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 -# define EC_F_EC_GROUP_GET_CURVE_GFP 130 -# define EC_F_EC_GROUP_GET_DEGREE 173 -# define EC_F_EC_GROUP_GET_ORDER 141 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 -# define EC_F_EC_GROUP_NEW 108 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 -# define EC_F_EC_GROUP_NEW_FROM_DATA 175 -# define EC_F_EC_GROUP_PRECOMPUTE_MULT 142 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 -# define EC_F_EC_GROUP_SET_CURVE_GFP 109 -# define EC_F_EC_GROUP_SET_EXTRA_DATA 110 -# define EC_F_EC_GROUP_SET_GENERATOR 111 -# define EC_F_EC_KEY_CHECK_KEY 177 -# define EC_F_EC_KEY_COPY 178 -# define EC_F_EC_KEY_GENERATE_KEY 179 -# define EC_F_EC_KEY_NEW 182 -# define EC_F_EC_KEY_PRINT 180 -# define EC_F_EC_KEY_PRINT_FP 181 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 -# define EC_F_EC_POINTS_MAKE_AFFINE 136 -# define EC_F_EC_POINT_ADD 112 -# define EC_F_EC_POINT_CMP 113 -# define EC_F_EC_POINT_COPY 114 -# define EC_F_EC_POINT_DBL 115 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 -# define EC_F_EC_POINT_INVERT 210 -# define EC_F_EC_POINT_IS_AT_INFINITY 118 -# define EC_F_EC_POINT_IS_ON_CURVE 119 -# define EC_F_EC_POINT_MAKE_AFFINE 120 -# define EC_F_EC_POINT_MUL 184 -# define EC_F_EC_POINT_NEW 121 -# define EC_F_EC_POINT_OCT2POINT 122 -# define EC_F_EC_POINT_POINT2OCT 123 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 -# define EC_F_EC_POINT_SET_TO_INFINITY 127 -# define EC_F_EC_PRE_COMP_DUP 207 -# define EC_F_EC_PRE_COMP_NEW 196 -# define EC_F_EC_WNAF_MUL 187 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 -# define EC_F_I2D_ECPARAMETERS 190 -# define EC_F_I2D_ECPKPARAMETERS 191 -# define EC_F_I2D_ECPRIVATEKEY 192 -# define EC_F_I2O_ECPUBLICKEY 151 -# define EC_F_NISTP224_PRE_COMP_NEW 227 -# define EC_F_NISTP256_PRE_COMP_NEW 236 -# define EC_F_NISTP521_PRE_COMP_NEW 237 -# define EC_F_O2I_ECPUBLICKEY 152 -# define EC_F_OLD_EC_PRIV_DECODE 222 -# define EC_F_PKEY_EC_CTRL 197 -# define EC_F_PKEY_EC_CTRL_STR 198 -# define EC_F_PKEY_EC_DERIVE 217 -# define EC_F_PKEY_EC_KEYGEN 199 -# define EC_F_PKEY_EC_PARAMGEN 219 -# define EC_F_PKEY_EC_SIGN 218 - -/* Reason codes. */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_ASN1_UNKNOWN_FIELD 116 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_A_SUPPORTED_NIST_PRIME 136 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_FIELD_MOD 133 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ecdh.h b/3rdparty/openssl/include/openssl/ecdh.h deleted file mode 100644 index 25348b3..0000000 --- a/3rdparty/openssl/include/openssl/ecdh.h +++ /dev/null @@ -1,134 +0,0 @@ -/* crypto/ecdh/ecdh.h */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * The Elliptic Curve Public-Key Crypto Library (ECC Code) included - * herein is developed by SUN MICROSYSTEMS, INC., and is contributed - * to the OpenSSL project. - * - * The ECC Code is licensed pursuant to the OpenSSL open source - * license provided below. - * - * The ECDH software is originally written by Douglas Stebila of - * Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright (c) 2000-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef HEADER_ECDH_H -# define HEADER_ECDH_H - -# include - -# ifdef OPENSSL_NO_ECDH -# error ECDH is disabled. -# endif - -# include -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define EC_FLAG_COFACTOR_ECDH 0x1000 - -const ECDH_METHOD *ECDH_OpenSSL(void); - -void ECDH_set_default_method(const ECDH_METHOD *); -const ECDH_METHOD *ECDH_get_default_method(void); -int ECDH_set_method(EC_KEY *, const ECDH_METHOD *); - -int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, - EC_KEY *ecdh, void *(*KDF) (const void *in, size_t inlen, - void *out, size_t *outlen)); - -int ECDH_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new - *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -int ECDH_set_ex_data(EC_KEY *d, int idx, void *arg); -void *ECDH_get_ex_data(EC_KEY *d, int idx); - -int ECDH_KDF_X9_62(unsigned char *out, size_t outlen, - const unsigned char *Z, size_t Zlen, - const unsigned char *sinfo, size_t sinfolen, - const EVP_MD *md); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_ECDH_strings(void); - -/* Error codes for the ECDH functions. */ - -/* Function codes. */ -# define ECDH_F_ECDH_CHECK 102 -# define ECDH_F_ECDH_COMPUTE_KEY 100 -# define ECDH_F_ECDH_DATA_NEW_METHOD 101 - -/* Reason codes. */ -# define ECDH_R_KDF_FAILED 102 -# define ECDH_R_NON_FIPS_METHOD 103 -# define ECDH_R_NO_PRIVATE_VALUE 100 -# define ECDH_R_POINT_ARITHMETIC_FAILURE 101 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ecdsa.h b/3rdparty/openssl/include/openssl/ecdsa.h deleted file mode 100644 index a6f0930..0000000 --- a/3rdparty/openssl/include/openssl/ecdsa.h +++ /dev/null @@ -1,335 +0,0 @@ -/* crypto/ecdsa/ecdsa.h */ -/** - * \file crypto/ecdsa/ecdsa.h Include file for the OpenSSL ECDSA functions - * \author Written by Nils Larsch for the OpenSSL project - */ -/* ==================================================================== - * Copyright (c) 2000-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef HEADER_ECDSA_H -# define HEADER_ECDSA_H - -# include - -# ifdef OPENSSL_NO_ECDSA -# error ECDSA is disabled. -# endif - -# include -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct ECDSA_SIG_st { - BIGNUM *r; - BIGNUM *s; -} ECDSA_SIG; - -/** Allocates and initialize a ECDSA_SIG structure - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_SIG_new(void); - -/** frees a ECDSA_SIG structure - * \param sig pointer to the ECDSA_SIG structure - */ -void ECDSA_SIG_free(ECDSA_SIG *sig); - -/** DER encode content of ECDSA_SIG object (note: this function modifies *pp - * (*pp += length of the DER encoded signature)). - * \param sig pointer to the ECDSA_SIG object - * \param pp pointer to a unsigned char pointer for the output or NULL - * \return the length of the DER encoded ECDSA_SIG object or 0 - */ -int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); - -/** Decodes a DER encoded ECDSA signature (note: this function changes *pp - * (*pp += len)). - * \param sig pointer to ECDSA_SIG pointer (may be NULL) - * \param pp memory buffer with the DER encoded signature - * \param len length of the buffer - * \return pointer to the decoded ECDSA_SIG structure (or NULL) - */ -ECDSA_SIG *d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, long len); - -/** Computes the ECDSA signature of the given hash value using - * the supplied private key and returns the created signature. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, - EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optioanl), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, - const BIGNUM *kinv, const BIGNUM *rp, - EC_KEY *eckey); - -/** Verifies that the supplied signature is a valid ECDSA - * signature of the supplied hash value using the supplied public key. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param sig ECDSA_SIG structure - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, - const ECDSA_SIG *sig, EC_KEY *eckey); - -const ECDSA_METHOD *ECDSA_OpenSSL(void); - -/** Sets the default ECDSA method - * \param meth new default ECDSA_METHOD - */ -void ECDSA_set_default_method(const ECDSA_METHOD *meth); - -/** Returns the default ECDSA method - * \return pointer to ECDSA_METHOD structure containing the default method - */ -const ECDSA_METHOD *ECDSA_get_default_method(void); - -/** Sets method to be used for the ECDSA operations - * \param eckey EC_KEY object - * \param meth new method - * \return 1 on success and 0 otherwise - */ -int ECDSA_set_method(EC_KEY *eckey, const ECDSA_METHOD *meth); - -/** Returns the maximum length of the DER encoded signature - * \param eckey EC_KEY object - * \return numbers of bytes required for the DER encoded signature - */ -int ECDSA_size(const EC_KEY *eckey); - -/** Precompute parts of the signing operation - * \param eckey EC_KEY object containing a private EC key - * \param ctx BN_CTX object (optional) - * \param kinv BIGNUM pointer for the inverse of k - * \param rp BIGNUM pointer for x coordinate of k * generator - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig memory for the DER encoded created signature - * \param siglen pointer to the length of the returned signature - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig buffer to hold the DER encoded signature - * \param siglen pointer to the length of the returned signature - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optioanl), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the given signature is valid ECDSA signature - * of the supplied hash value using the specified public key. - * \param type this parameter is ignored - * \param dgst pointer to the hash value - * \param dgstlen length of the hash value - * \param sig pointer to the DER encoded signature - * \param siglen length of the DER encoded signature - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, - const unsigned char *sig, int siglen, EC_KEY *eckey); - -/* the standard ex_data functions */ -int ECDSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new - *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); -void *ECDSA_get_ex_data(EC_KEY *d, int idx); - -/** Allocates and initialize a ECDSA_METHOD structure - * \param ecdsa_method pointer to ECDSA_METHOD to copy. (May be NULL) - * \return pointer to a ECDSA_METHOD structure or NULL if an error occurred - */ - -ECDSA_METHOD *ECDSA_METHOD_new(const ECDSA_METHOD *ecdsa_method); - -/** frees a ECDSA_METHOD structure - * \param ecdsa_method pointer to the ECDSA_METHOD structure - */ -void ECDSA_METHOD_free(ECDSA_METHOD *ecdsa_method); - -/** Sets application specific data in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param app application specific data to set - */ - -void ECDSA_METHOD_set_app_data(ECDSA_METHOD *ecdsa_method, void *app); - -/** Returns application specific data from a ECDSA_METHOD structure - * \param ecdsa_method pointer to ECDSA_METHOD structure - * \return pointer to application specific data. - */ - -void *ECDSA_METHOD_get_app_data(ECDSA_METHOD *ecdsa_method); - -/** Set the ECDSA_do_sign function in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param ecdsa_do_sign a funtion of type ECDSA_do_sign - */ - -void ECDSA_METHOD_set_sign(ECDSA_METHOD *ecdsa_method, - ECDSA_SIG *(*ecdsa_do_sign) (const unsigned char - *dgst, int dgst_len, - const BIGNUM *inv, - const BIGNUM *rp, - EC_KEY *eckey)); - -/** Set the ECDSA_sign_setup function in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param ecdsa_sign_setup a funtion of type ECDSA_sign_setup - */ - -void ECDSA_METHOD_set_sign_setup(ECDSA_METHOD *ecdsa_method, - int (*ecdsa_sign_setup) (EC_KEY *eckey, - BN_CTX *ctx, - BIGNUM **kinv, - BIGNUM **r)); - -/** Set the ECDSA_do_verify function in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param ecdsa_do_verify a funtion of type ECDSA_do_verify - */ - -void ECDSA_METHOD_set_verify(ECDSA_METHOD *ecdsa_method, - int (*ecdsa_do_verify) (const unsigned char - *dgst, int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -void ECDSA_METHOD_set_flags(ECDSA_METHOD *ecdsa_method, int flags); - -/** Set the flags field in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param flags flags value to set - */ - -void ECDSA_METHOD_set_name(ECDSA_METHOD *ecdsa_method, char *name); - -/** Set the name field in the ECDSA_METHOD - * \param ecdsa_method pointer to existing ECDSA_METHOD - * \param name name to set - */ - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_ECDSA_strings(void); - -/* Error codes for the ECDSA functions. */ - -/* Function codes. */ -# define ECDSA_F_ECDSA_CHECK 104 -# define ECDSA_F_ECDSA_DATA_NEW_METHOD 100 -# define ECDSA_F_ECDSA_DO_SIGN 101 -# define ECDSA_F_ECDSA_DO_VERIFY 102 -# define ECDSA_F_ECDSA_METHOD_NEW 105 -# define ECDSA_F_ECDSA_SIGN_SETUP 103 - -/* Reason codes. */ -# define ECDSA_R_BAD_SIGNATURE 100 -# define ECDSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 101 -# define ECDSA_R_ERR_EC_LIB 102 -# define ECDSA_R_MISSING_PARAMETERS 103 -# define ECDSA_R_NEED_NEW_SETUP_VALUES 106 -# define ECDSA_R_NON_FIPS_METHOD 107 -# define ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED 104 -# define ECDSA_R_SIGNATURE_MALLOC_FAILED 105 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/engine.h b/3rdparty/openssl/include/openssl/engine.h deleted file mode 100644 index bd7b591..0000000 --- a/3rdparty/openssl/include/openssl/engine.h +++ /dev/null @@ -1,960 +0,0 @@ -/* openssl/engine.h */ -/* - * Written by Geoff Thorpe (geoff@geoffthorpe.net) for the OpenSSL project - * 2000. - */ -/* ==================================================================== - * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_ENGINE_H -# define HEADER_ENGINE_H - -# include - -# ifdef OPENSSL_NO_ENGINE -# error ENGINE is disabled. -# endif - -# ifndef OPENSSL_NO_DEPRECATED -# include -# ifndef OPENSSL_NO_RSA -# include -# endif -# ifndef OPENSSL_NO_DSA -# include -# endif -# ifndef OPENSSL_NO_DH -# include -# endif -# ifndef OPENSSL_NO_ECDH -# include -# endif -# ifndef OPENSSL_NO_ECDSA -# include -# endif -# include -# include -# include -# endif - -# include -# include - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * These flags are used to control combinations of algorithm (methods) by - * bitwise "OR"ing. - */ -# define ENGINE_METHOD_RSA (unsigned int)0x0001 -# define ENGINE_METHOD_DSA (unsigned int)0x0002 -# define ENGINE_METHOD_DH (unsigned int)0x0004 -# define ENGINE_METHOD_RAND (unsigned int)0x0008 -# define ENGINE_METHOD_ECDH (unsigned int)0x0010 -# define ENGINE_METHOD_ECDSA (unsigned int)0x0020 -# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 -# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 -# define ENGINE_METHOD_STORE (unsigned int)0x0100 -# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 -# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 -/* Obvious all-or-nothing cases. */ -# define ENGINE_METHOD_ALL (unsigned int)0xFFFF -# define ENGINE_METHOD_NONE (unsigned int)0x0000 - -/* - * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used - * internally to control registration of ENGINE implementations, and can be - * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to - * initialise registered ENGINEs if they are not already initialised. - */ -# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 - -/* ENGINE flags that can be set by ENGINE_set_flags(). */ -/* Not used */ -/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ - -/* - * This flag is for ENGINEs that wish to handle the various 'CMD'-related - * control commands on their own. Without this flag, ENGINE_ctrl() handles - * these control commands on behalf of the ENGINE using their "cmd_defns" - * data. - */ -# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 - -/* - * This flag is for ENGINEs who return new duplicate structures when found - * via "ENGINE_by_id()". When an ENGINE must store state (eg. if - * ENGINE_ctrl() commands are called in sequence as part of some stateful - * process like key-generation setup and execution), it can set this flag - - * then each attempt to obtain the ENGINE will result in it being copied into - * a new structure. Normally, ENGINEs don't declare this flag so - * ENGINE_by_id() just increments the existing ENGINE's structural reference - * count. - */ -# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 - -/* - * This flag if for an ENGINE that does not want its methods registered as - * part of ENGINE_register_all_complete() for example if the methods are not - * usable as default methods. - */ - -# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 - -/* - * ENGINEs can support their own command types, and these flags are used in - * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input - * each command expects. Currently only numeric and string input is - * supported. If a control command supports none of the _NUMERIC, _STRING, or - * _NO_INPUT options, then it is regarded as an "internal" control command - - * and not for use in config setting situations. As such, they're not - * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() - * access. Changes to this list of 'command types' should be reflected - * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). - */ - -/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ -# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 -/* - * accepts string input (cast from 'void*' to 'const char *', 4th parameter - * to ENGINE_ctrl) - */ -# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 -/* - * Indicates that the control command takes *no* input. Ie. the control - * command is unparameterised. - */ -# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 -/* - * Indicates that the control command is internal. This control command won't - * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() - * function. - */ -# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 - -/* - * NB: These 3 control commands are deprecated and should not be used. - * ENGINEs relying on these commands should compile conditional support for - * compatibility (eg. if these symbols are defined) but should also migrate - * the same functionality to their own ENGINE-specific control functions that - * can be "discovered" by calling applications. The fact these control - * commands wouldn't be "executable" (ie. usable by text-based config) - * doesn't change the fact that application code can find and use them - * without requiring per-ENGINE hacking. - */ - -/* - * These flags are used to tell the ctrl function what should be done. All - * command numbers are shared between all engines, even if some don't make - * sense to some engines. In such a case, they do nothing but return the - * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. - */ -# define ENGINE_CTRL_SET_LOGSTREAM 1 -# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 -# define ENGINE_CTRL_HUP 3/* Close and reinitialise - * any handles/connections - * etc. */ -# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ -# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used - * when calling the password - * callback and the user - * interface */ -# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, - * given a string that - * represents a file name - * or so */ -# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given - * section in the already - * loaded configuration */ - -/* - * These control commands allow an application to deal with an arbitrary - * engine in a dynamic way. Warn: Negative return values indicate errors FOR - * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other - * commands, including ENGINE-specific command types, return zero for an - * error. An ENGINE can choose to implement these ctrl functions, and can - * internally manage things however it chooses - it does so by setting the - * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise - * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the - * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's - * ctrl() handler need only implement its own commands - the above "meta" - * commands will be taken care of. - */ - -/* - * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", - * then all the remaining control commands will return failure, so it is - * worth checking this first if the caller is trying to "discover" the - * engine's capabilities and doesn't want errors generated unnecessarily. - */ -# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 -/* - * Returns a positive command number for the first command supported by the - * engine. Returns zero if no ctrl commands are supported. - */ -# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 -/* - * The 'long' argument specifies a command implemented by the engine, and the - * return value is the next command supported, or zero if there are no more. - */ -# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 -/* - * The 'void*' argument is a command name (cast from 'const char *'), and the - * return value is the command that corresponds to it. - */ -# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 -/* - * The next two allow a command to be converted into its corresponding string - * form. In each case, the 'long' argument supplies the command. In the - * NAME_LEN case, the return value is the length of the command name (not - * counting a trailing EOL). In the NAME case, the 'void*' argument must be a - * string buffer large enough, and it will be populated with the name of the - * command (WITH a trailing EOL). - */ -# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 -# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 -/* The next two are similar but give a "short description" of a command. */ -# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 -# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 -/* - * With this command, the return value is the OR'd combination of - * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given - * engine-specific ctrl command expects. - */ -# define ENGINE_CTRL_GET_CMD_FLAGS 18 - -/* - * ENGINE implementations should start the numbering of their own control - * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). - */ -# define ENGINE_CMD_BASE 200 - -/* - * NB: These 2 nCipher "chil" control commands are deprecated, and their - * functionality is now available through ENGINE-specific control commands - * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 - * commands should be migrated to the more general command handling before - * these are removed. - */ - -/* Flags specific to the nCipher "chil" engine */ -# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 - /* - * Depending on the value of the (long)i argument, this sets or - * unsets the SimpleForkCheck flag in the CHIL API to enable or - * disable checking and workarounds for applications that fork(). - */ -# define ENGINE_CTRL_CHIL_NO_LOCKING 101 - /* - * This prevents the initialisation function from providing mutex - * callbacks to the nCipher library. - */ - -/* - * If an ENGINE supports its own specific control commands and wishes the - * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on - * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN - * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() - * handler that supports the stated commands (ie. the "cmd_num" entries as - * described by the array). NB: The array must be ordered in increasing order - * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element - * has cmd_num set to zero and/or cmd_name set to NULL. - */ -typedef struct ENGINE_CMD_DEFN_st { - unsigned int cmd_num; /* The command number */ - const char *cmd_name; /* The command name itself */ - const char *cmd_desc; /* A short description of the command */ - unsigned int cmd_flags; /* The input the command expects */ -} ENGINE_CMD_DEFN; - -/* Generic function pointer */ -typedef int (*ENGINE_GEN_FUNC_PTR) (void); -/* Generic function pointer taking no arguments */ -typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); -/* Specific control function pointer */ -typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, - void (*f) (void)); -/* Generic load_key function pointer */ -typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, - UI_METHOD *ui_method, - void *callback_data); -typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, - STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **pkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, - void *callback_data); -/*- - * These callback types are for an ENGINE's handler for cipher and digest logic. - * These handlers have these prototypes; - * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); - * Looking at how to implement these handlers in the case of cipher support, if - * the framework wants the EVP_CIPHER for 'nid', it will call; - * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) - * If the framework wants a list of supported 'nid's, it will call; - * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) - */ -/* - * Returns to a pointer to the array of supported cipher 'nid's. If the - * second parameter is non-NULL it is set to the size of the returned array. - */ -typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, - const int **, int); -typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, - int); -typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, - const int **, int); -typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, - const int **, int); -/* - * STRUCTURE functions ... all of these functions deal with pointers to - * ENGINE structures where the pointers have a "structural reference". This - * means that their reference is to allowed access to the structure but it - * does not imply that the structure is functional. To simply increment or - * decrement the structural reference count, use ENGINE_by_id and - * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next - * as it will automatically decrement the structural reference count of the - * "current" ENGINE and increment the structural reference count of the - * ENGINE it returns (unless it is NULL). - */ - -/* Get the first/last "ENGINE" type available. */ -ENGINE *ENGINE_get_first(void); -ENGINE *ENGINE_get_last(void); -/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ -ENGINE *ENGINE_get_next(ENGINE *e); -ENGINE *ENGINE_get_prev(ENGINE *e); -/* Add another "ENGINE" type into the array. */ -int ENGINE_add(ENGINE *e); -/* Remove an existing "ENGINE" type from the array. */ -int ENGINE_remove(ENGINE *e); -/* Retrieve an engine from the list by its unique "id" value. */ -ENGINE *ENGINE_by_id(const char *id); -/* Add all the built-in engines. */ -void ENGINE_load_openssl(void); -void ENGINE_load_dynamic(void); -# ifndef OPENSSL_NO_STATIC_ENGINE -void ENGINE_load_4758cca(void); -void ENGINE_load_aep(void); -void ENGINE_load_atalla(void); -void ENGINE_load_chil(void); -void ENGINE_load_cswift(void); -void ENGINE_load_nuron(void); -void ENGINE_load_sureware(void); -void ENGINE_load_ubsec(void); -void ENGINE_load_padlock(void); -void ENGINE_load_capi(void); -# ifndef OPENSSL_NO_GMP -void ENGINE_load_gmp(void); -# endif -# ifndef OPENSSL_NO_GOST -void ENGINE_load_gost(void); -# endif -# endif -void ENGINE_load_cryptodev(void); -void ENGINE_load_rdrand(void); -void ENGINE_load_builtin_engines(void); - -/* - * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation - * "registry" handling. - */ -unsigned int ENGINE_get_table_flags(void); -void ENGINE_set_table_flags(unsigned int flags); - -/*- Manage registration of ENGINEs per "table". For each type, there are 3 - * functions; - * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) - * ENGINE_unregister_***(e) - unregister the implementation from 'e' - * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list - * Cleanup is automatically registered from each table when required, so - * ENGINE_cleanup() will reverse any "register" operations. - */ - -int ENGINE_register_RSA(ENGINE *e); -void ENGINE_unregister_RSA(ENGINE *e); -void ENGINE_register_all_RSA(void); - -int ENGINE_register_DSA(ENGINE *e); -void ENGINE_unregister_DSA(ENGINE *e); -void ENGINE_register_all_DSA(void); - -int ENGINE_register_ECDH(ENGINE *e); -void ENGINE_unregister_ECDH(ENGINE *e); -void ENGINE_register_all_ECDH(void); - -int ENGINE_register_ECDSA(ENGINE *e); -void ENGINE_unregister_ECDSA(ENGINE *e); -void ENGINE_register_all_ECDSA(void); - -int ENGINE_register_DH(ENGINE *e); -void ENGINE_unregister_DH(ENGINE *e); -void ENGINE_register_all_DH(void); - -int ENGINE_register_RAND(ENGINE *e); -void ENGINE_unregister_RAND(ENGINE *e); -void ENGINE_register_all_RAND(void); - -int ENGINE_register_STORE(ENGINE *e); -void ENGINE_unregister_STORE(ENGINE *e); -void ENGINE_register_all_STORE(void); - -int ENGINE_register_ciphers(ENGINE *e); -void ENGINE_unregister_ciphers(ENGINE *e); -void ENGINE_register_all_ciphers(void); - -int ENGINE_register_digests(ENGINE *e); -void ENGINE_unregister_digests(ENGINE *e); -void ENGINE_register_all_digests(void); - -int ENGINE_register_pkey_meths(ENGINE *e); -void ENGINE_unregister_pkey_meths(ENGINE *e); -void ENGINE_register_all_pkey_meths(void); - -int ENGINE_register_pkey_asn1_meths(ENGINE *e); -void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); -void ENGINE_register_all_pkey_asn1_meths(void); - -/* - * These functions register all support from the above categories. Note, use - * of these functions can result in static linkage of code your application - * may not need. If you only need a subset of functionality, consider using - * more selective initialisation. - */ -int ENGINE_register_complete(ENGINE *e); -int ENGINE_register_all_complete(void); - -/* - * Send parametrised control commands to the engine. The possibilities to - * send down an integer, a pointer to data or a function pointer are - * provided. Any of the parameters may or may not be NULL, depending on the - * command number. In actuality, this function only requires a structural - * (rather than functional) reference to an engine, but many control commands - * may require the engine be functional. The caller should be aware of trying - * commands that require an operational ENGINE, and only use functional - * references in such situations. - */ -int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); - -/* - * This function tests if an ENGINE-specific command is usable as a - * "setting". Eg. in an application's config file that gets processed through - * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to - * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). - */ -int ENGINE_cmd_is_executable(ENGINE *e, int cmd); - -/* - * This function works like ENGINE_ctrl() with the exception of taking a - * command name instead of a command number, and can handle optional - * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation - * on how to use the cmd_name and cmd_optional. - */ -int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, - long i, void *p, void (*f) (void), int cmd_optional); - -/* - * This function passes a command-name and argument to an ENGINE. The - * cmd_name is converted to a command number and the control command is - * called using 'arg' as an argument (unless the ENGINE doesn't support such - * a command, in which case no control command is called). The command is - * checked for input flags, and if necessary the argument will be converted - * to a numeric value. If cmd_optional is non-zero, then if the ENGINE - * doesn't support the given cmd_name the return value will be success - * anyway. This function is intended for applications to use so that users - * (or config files) can supply engine-specific config data to the ENGINE at - * run-time to control behaviour of specific engines. As such, it shouldn't - * be used for calling ENGINE_ctrl() functions that return data, deal with - * binary data, or that are otherwise supposed to be used directly through - * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() - * operation in this function will be lost - the return value is interpreted - * as failure if the return value is zero, success otherwise, and this - * function returns a boolean value as a result. In other words, vendors of - * 'ENGINE'-enabled devices should write ENGINE implementations with - * parameterisations that work in this scheme, so that compliant ENGINE-based - * applications can work consistently with the same configuration for the - * same ENGINE-enabled devices, across applications. - */ -int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, - int cmd_optional); - -/* - * These functions are useful for manufacturing new ENGINE structures. They - * don't address reference counting at all - one uses them to populate an - * ENGINE structure with personalised implementations of things prior to - * using it directly or adding it to the builtin ENGINE list in OpenSSL. - * These are also here so that the ENGINE structure doesn't have to be - * exposed and break binary compatibility! - */ -ENGINE *ENGINE_new(void); -int ENGINE_free(ENGINE *e); -int ENGINE_up_ref(ENGINE *e); -int ENGINE_set_id(ENGINE *e, const char *id); -int ENGINE_set_name(ENGINE *e, const char *name); -int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); -int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); -int ENGINE_set_ECDH(ENGINE *e, const ECDH_METHOD *ecdh_meth); -int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *ecdsa_meth); -int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); -int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); -int ENGINE_set_STORE(ENGINE *e, const STORE_METHOD *store_meth); -int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); -int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); -int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); -int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); -int ENGINE_set_load_privkey_function(ENGINE *e, - ENGINE_LOAD_KEY_PTR loadpriv_f); -int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); -int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, - ENGINE_SSL_CLIENT_CERT_PTR - loadssl_f); -int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); -int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); -int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); -int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); -int ENGINE_set_flags(ENGINE *e, int flags); -int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); -/* These functions allow control over any per-structure ENGINE data. */ -int ENGINE_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); -void *ENGINE_get_ex_data(const ENGINE *e, int idx); - -/* - * This function cleans up anything that needs it. Eg. the ENGINE_add() - * function automatically ensures the list cleanup function is registered to - * be called from ENGINE_cleanup(). Similarly, all ENGINE_register_*** - * functions ensure ENGINE_cleanup() will clean up after them. - */ -void ENGINE_cleanup(void); - -/* - * These return values from within the ENGINE structure. These can be useful - * with functional references as well as structural references - it depends - * which you obtained. Using the result for functional purposes if you only - * obtained a structural reference may be problematic! - */ -const char *ENGINE_get_id(const ENGINE *e); -const char *ENGINE_get_name(const ENGINE *e); -const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); -const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); -const ECDH_METHOD *ENGINE_get_ECDH(const ENGINE *e); -const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e); -const DH_METHOD *ENGINE_get_DH(const ENGINE *e); -const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); -const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); -ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); -ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE - *e); -ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); -ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); -ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); -ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); -const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); -const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); -const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, - const char *str, - int len); -const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, - const char *str, - int len); -const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); -int ENGINE_get_flags(const ENGINE *e); - -/* - * FUNCTIONAL functions. These functions deal with ENGINE structures that - * have (or will) be initialised for use. Broadly speaking, the structural - * functions are useful for iterating the list of available engine types, - * creating new engine types, and other "list" operations. These functions - * actually deal with ENGINEs that are to be used. As such these functions - * can fail (if applicable) when particular engines are unavailable - eg. if - * a hardware accelerator is not attached or not functioning correctly. Each - * ENGINE has 2 reference counts; structural and functional. Every time a - * functional reference is obtained or released, a corresponding structural - * reference is automatically obtained or released too. - */ - -/* - * Initialise a engine type for use (or up its reference count if it's - * already in use). This will fail if the engine is not currently operational - * and cannot initialise. - */ -int ENGINE_init(ENGINE *e); -/* - * Free a functional reference to a engine type. This does not require a - * corresponding call to ENGINE_free as it also releases a structural - * reference. - */ -int ENGINE_finish(ENGINE *e); - -/* - * The following functions handle keys that are stored in some secondary - * location, handled by the engine. The storage may be on a card or - * whatever. - */ -EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, - STACK_OF(X509_NAME) *ca_dn, X509 **pcert, - EVP_PKEY **ppkey, STACK_OF(X509) **pother, - UI_METHOD *ui_method, void *callback_data); - -/* - * This returns a pointer for the current ENGINE structure that is (by - * default) performing any RSA operations. The value returned is an - * incremented reference, so it should be free'd (ENGINE_finish) before it is - * discarded. - */ -ENGINE *ENGINE_get_default_RSA(void); -/* Same for the other "methods" */ -ENGINE *ENGINE_get_default_DSA(void); -ENGINE *ENGINE_get_default_ECDH(void); -ENGINE *ENGINE_get_default_ECDSA(void); -ENGINE *ENGINE_get_default_DH(void); -ENGINE *ENGINE_get_default_RAND(void); -/* - * These functions can be used to get a functional reference to perform - * ciphering or digesting corresponding to "nid". - */ -ENGINE *ENGINE_get_cipher_engine(int nid); -ENGINE *ENGINE_get_digest_engine(int nid); -ENGINE *ENGINE_get_pkey_meth_engine(int nid); -ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); - -/* - * This sets a new default ENGINE structure for performing RSA operations. If - * the result is non-zero (success) then the ENGINE structure will have had - * its reference count up'd so the caller should still free their own - * reference 'e'. - */ -int ENGINE_set_default_RSA(ENGINE *e); -int ENGINE_set_default_string(ENGINE *e, const char *def_list); -/* Same for the other "methods" */ -int ENGINE_set_default_DSA(ENGINE *e); -int ENGINE_set_default_ECDH(ENGINE *e); -int ENGINE_set_default_ECDSA(ENGINE *e); -int ENGINE_set_default_DH(ENGINE *e); -int ENGINE_set_default_RAND(ENGINE *e); -int ENGINE_set_default_ciphers(ENGINE *e); -int ENGINE_set_default_digests(ENGINE *e); -int ENGINE_set_default_pkey_meths(ENGINE *e); -int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); - -/* - * The combination "set" - the flags are bitwise "OR"d from the - * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" - * function, this function can result in unnecessary static linkage. If your - * application requires only specific functionality, consider using more - * selective functions. - */ -int ENGINE_set_default(ENGINE *e, unsigned int flags); - -void ENGINE_add_conf_module(void); - -/* Deprecated functions ... */ -/* int ENGINE_clear_defaults(void); */ - -/**************************/ -/* DYNAMIC ENGINE SUPPORT */ -/**************************/ - -/* Binary/behaviour compatibility levels */ -# define OSSL_DYNAMIC_VERSION (unsigned long)0x00020000 -/* - * Binary versions older than this are too old for us (whether we're a loader - * or a loadee) - */ -# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00020000 - -/* - * When compiling an ENGINE entirely as an external shared library, loadable - * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' - * structure type provides the calling application's (or library's) error - * functionality and memory management function pointers to the loaded - * library. These should be used/set in the loaded library code so that the - * loading application's 'state' will be used/changed in all operations. The - * 'static_state' pointer allows the loaded library to know if it shares the - * same static data as the calling application (or library), and thus whether - * these callbacks need to be set or not. - */ -typedef void *(*dyn_MEM_malloc_cb) (size_t); -typedef void *(*dyn_MEM_realloc_cb) (void *, size_t); -typedef void (*dyn_MEM_free_cb) (void *); -typedef struct st_dynamic_MEM_fns { - dyn_MEM_malloc_cb malloc_cb; - dyn_MEM_realloc_cb realloc_cb; - dyn_MEM_free_cb free_cb; -} dynamic_MEM_fns; -/* - * FIXME: Perhaps the memory and locking code (crypto.h) should declare and - * use these types so we (and any other dependant code) can simplify a bit?? - */ -typedef void (*dyn_lock_locking_cb) (int, int, const char *, int); -typedef int (*dyn_lock_add_lock_cb) (int *, int, int, const char *, int); -typedef struct CRYPTO_dynlock_value *(*dyn_dynlock_create_cb) (const char *, - int); -typedef void (*dyn_dynlock_lock_cb) (int, struct CRYPTO_dynlock_value *, - const char *, int); -typedef void (*dyn_dynlock_destroy_cb) (struct CRYPTO_dynlock_value *, - const char *, int); -typedef struct st_dynamic_LOCK_fns { - dyn_lock_locking_cb lock_locking_cb; - dyn_lock_add_lock_cb lock_add_lock_cb; - dyn_dynlock_create_cb dynlock_create_cb; - dyn_dynlock_lock_cb dynlock_lock_cb; - dyn_dynlock_destroy_cb dynlock_destroy_cb; -} dynamic_LOCK_fns; -/* The top-level structure */ -typedef struct st_dynamic_fns { - void *static_state; - const ERR_FNS *err_fns; - const CRYPTO_EX_DATA_IMPL *ex_data_fns; - dynamic_MEM_fns mem_fns; - dynamic_LOCK_fns lock_fns; -} dynamic_fns; - -/* - * The version checking function should be of this prototype. NB: The - * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading - * code. If this function returns zero, it indicates a (potential) version - * incompatibility and the loaded library doesn't believe it can proceed. - * Otherwise, the returned value is the (latest) version supported by the - * loading library. The loader may still decide that the loaded code's - * version is unsatisfactory and could veto the load. The function is - * expected to be implemented with the symbol name "v_check", and a default - * implementation can be fully instantiated with - * IMPLEMENT_DYNAMIC_CHECK_FN(). - */ -typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); -# define IMPLEMENT_DYNAMIC_CHECK_FN() \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ - if(v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ - return 0; } - -/* - * This function is passed the ENGINE structure to initialise with its own - * function and command settings. It should not adjust the structural or - * functional reference counts. If this function returns zero, (a) the load - * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto - * the structure, and (c) the shared library will be unloaded. So - * implementations should do their own internal cleanup in failure - * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, - * represents the ENGINE id that the loader is looking for. If this is NULL, - * the shared library can choose to return failure or to initialise a - * 'default' ENGINE. If non-NULL, the shared library must initialise only an - * ENGINE matching the passed 'id'. The function is expected to be - * implemented with the symbol name "bind_engine". A standard implementation - * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter - * 'fn' is a callback function that populates the ENGINE structure and - * returns an int value (zero for failure). 'fn' should have prototype; - * [static] int fn(ENGINE *e, const char *id); - */ -typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, - const dynamic_fns *fns); -# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ - if(ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ - if(!CRYPTO_set_mem_functions(fns->mem_fns.malloc_cb, \ - fns->mem_fns.realloc_cb, fns->mem_fns.free_cb)) \ - return 0; \ - CRYPTO_set_locking_callback(fns->lock_fns.lock_locking_cb); \ - CRYPTO_set_add_lock_callback(fns->lock_fns.lock_add_lock_cb); \ - CRYPTO_set_dynlock_create_callback(fns->lock_fns.dynlock_create_cb); \ - CRYPTO_set_dynlock_lock_callback(fns->lock_fns.dynlock_lock_cb); \ - CRYPTO_set_dynlock_destroy_callback(fns->lock_fns.dynlock_destroy_cb); \ - if(!CRYPTO_set_ex_data_implementation(fns->ex_data_fns)) \ - return 0; \ - if(!ERR_set_implementation(fns->err_fns)) return 0; \ - skip_cbs: \ - if(!fn(e,id)) return 0; \ - return 1; } - -/* - * If the loading application (or library) and the loaded ENGINE library - * share the same static data (eg. they're both dynamically linked to the - * same libcrypto.so) we need a way to avoid trying to set system callbacks - - * this would fail, and for the same reason that it's unnecessary to try. If - * the loaded ENGINE has (or gets from through the loader) its own copy of - * the libcrypto static data, we will need to set the callbacks. The easiest - * way to detect this is to have a function that returns a pointer to some - * static data and let the loading application and loaded ENGINE compare - * their respective values. - */ -void *ENGINE_get_static_state(void); - -# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(HAVE_CRYPTODEV) -void ENGINE_setup_bsd_cryptodev(void); -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_ENGINE_strings(void); - -/* Error codes for the ENGINE functions. */ - -/* Function codes. */ -# define ENGINE_F_DYNAMIC_CTRL 180 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 -# define ENGINE_F_DYNAMIC_LOAD 182 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 -# define ENGINE_F_ENGINE_ADD 105 -# define ENGINE_F_ENGINE_BY_ID 106 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 -# define ENGINE_F_ENGINE_CTRL 142 -# define ENGINE_F_ENGINE_CTRL_CMD 178 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 -# define ENGINE_F_ENGINE_FINISH 107 -# define ENGINE_F_ENGINE_FREE_UTIL 108 -# define ENGINE_F_ENGINE_GET_CIPHER 185 -# define ENGINE_F_ENGINE_GET_DEFAULT_TYPE 177 -# define ENGINE_F_ENGINE_GET_DIGEST 186 -# define ENGINE_F_ENGINE_GET_NEXT 115 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 -# define ENGINE_F_ENGINE_GET_PKEY_METH 192 -# define ENGINE_F_ENGINE_GET_PREV 116 -# define ENGINE_F_ENGINE_INIT 119 -# define ENGINE_F_ENGINE_LIST_ADD 120 -# define ENGINE_F_ENGINE_LIST_REMOVE 121 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 -# define ENGINE_F_ENGINE_NEW 122 -# define ENGINE_F_ENGINE_REMOVE 123 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 -# define ENGINE_F_ENGINE_SET_DEFAULT_TYPE 126 -# define ENGINE_F_ENGINE_SET_ID 129 -# define ENGINE_F_ENGINE_SET_NAME 130 -# define ENGINE_F_ENGINE_TABLE_REGISTER 184 -# define ENGINE_F_ENGINE_UNLOAD_KEY 152 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 -# define ENGINE_F_ENGINE_UP_REF 190 -# define ENGINE_F_INT_CTRL_HELPER 172 -# define ENGINE_F_INT_ENGINE_CONFIGURE 188 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 -# define ENGINE_F_LOG_MESSAGE 141 - -/* Reason codes. */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DH_NOT_IMPLEMENTED 139 -# define ENGINE_R_DSA_NOT_IMPLEMENTED 140 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_GET_HANDLE_FAILED 107 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_NO_UNLOAD_FUNCTION 126 -# define ENGINE_R_PROVIDE_PARAMETERS 113 -# define ENGINE_R_RSA_NOT_IMPLEMENTED 141 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/err.h b/3rdparty/openssl/include/openssl/err.h deleted file mode 100644 index f423656..0000000 --- a/3rdparty/openssl/include/openssl/err.h +++ /dev/null @@ -1,390 +0,0 @@ -/* crypto/err/err.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_ERR_H -# define HEADER_ERR_H - -# include - -# ifndef OPENSSL_NO_FP_API -# include -# include -# endif - -# include -# ifndef OPENSSL_NO_BIO -# include -# endif -# ifndef OPENSSL_NO_LHASH -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_ERR -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) -# else -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) -# endif - -# include - -# define ERR_TXT_MALLOCED 0x01 -# define ERR_TXT_STRING 0x02 - -# define ERR_FLAG_MARK 0x01 - -# define ERR_NUM_ERRORS 16 -typedef struct err_state_st { - CRYPTO_THREADID tid; - int err_flags[ERR_NUM_ERRORS]; - unsigned long err_buffer[ERR_NUM_ERRORS]; - char *err_data[ERR_NUM_ERRORS]; - int err_data_flags[ERR_NUM_ERRORS]; - const char *err_file[ERR_NUM_ERRORS]; - int err_line[ERR_NUM_ERRORS]; - int top, bottom; -} ERR_STATE; - -/* library */ -# define ERR_LIB_NONE 1 -# define ERR_LIB_SYS 2 -# define ERR_LIB_BN 3 -# define ERR_LIB_RSA 4 -# define ERR_LIB_DH 5 -# define ERR_LIB_EVP 6 -# define ERR_LIB_BUF 7 -# define ERR_LIB_OBJ 8 -# define ERR_LIB_PEM 9 -# define ERR_LIB_DSA 10 -# define ERR_LIB_X509 11 -/* #define ERR_LIB_METH 12 */ -# define ERR_LIB_ASN1 13 -# define ERR_LIB_CONF 14 -# define ERR_LIB_CRYPTO 15 -# define ERR_LIB_EC 16 -# define ERR_LIB_SSL 20 -/* #define ERR_LIB_SSL23 21 */ -/* #define ERR_LIB_SSL2 22 */ -/* #define ERR_LIB_SSL3 23 */ -/* #define ERR_LIB_RSAREF 30 */ -/* #define ERR_LIB_PROXY 31 */ -# define ERR_LIB_BIO 32 -# define ERR_LIB_PKCS7 33 -# define ERR_LIB_X509V3 34 -# define ERR_LIB_PKCS12 35 -# define ERR_LIB_RAND 36 -# define ERR_LIB_DSO 37 -# define ERR_LIB_ENGINE 38 -# define ERR_LIB_OCSP 39 -# define ERR_LIB_UI 40 -# define ERR_LIB_COMP 41 -# define ERR_LIB_ECDSA 42 -# define ERR_LIB_ECDH 43 -# define ERR_LIB_STORE 44 -# define ERR_LIB_FIPS 45 -# define ERR_LIB_CMS 46 -# define ERR_LIB_TS 47 -# define ERR_LIB_HMAC 48 -# define ERR_LIB_JPAKE 49 - -# define ERR_LIB_USER 128 - -# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),__FILE__,__LINE__) -# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),__FILE__,__LINE__) -# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),__FILE__,__LINE__) -# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),__FILE__,__LINE__) -# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),__FILE__,__LINE__) -# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),__FILE__,__LINE__) -# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),__FILE__,__LINE__) -# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),__FILE__,__LINE__) -# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),__FILE__,__LINE__) -# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),__FILE__,__LINE__) -# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),__FILE__,__LINE__) -# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),__FILE__,__LINE__) -# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),__FILE__,__LINE__) -# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),__FILE__,__LINE__) -# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),__FILE__,__LINE__) -# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),__FILE__,__LINE__) -# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),__FILE__,__LINE__) -# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),__FILE__,__LINE__) -# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),__FILE__,__LINE__) -# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),__FILE__,__LINE__) -# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),__FILE__,__LINE__) -# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),__FILE__,__LINE__) -# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),__FILE__,__LINE__) -# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),__FILE__,__LINE__) -# define COMPerr(f,r) ERR_PUT_error(ERR_LIB_COMP,(f),(r),__FILE__,__LINE__) -# define ECDSAerr(f,r) ERR_PUT_error(ERR_LIB_ECDSA,(f),(r),__FILE__,__LINE__) -# define ECDHerr(f,r) ERR_PUT_error(ERR_LIB_ECDH,(f),(r),__FILE__,__LINE__) -# define STOREerr(f,r) ERR_PUT_error(ERR_LIB_STORE,(f),(r),__FILE__,__LINE__) -# define FIPSerr(f,r) ERR_PUT_error(ERR_LIB_FIPS,(f),(r),__FILE__,__LINE__) -# define CMSerr(f,r) ERR_PUT_error(ERR_LIB_CMS,(f),(r),__FILE__,__LINE__) -# define TSerr(f,r) ERR_PUT_error(ERR_LIB_TS,(f),(r),__FILE__,__LINE__) -# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),__FILE__,__LINE__) -# define JPAKEerr(f,r) ERR_PUT_error(ERR_LIB_JPAKE,(f),(r),__FILE__,__LINE__) - -/* - * Borland C seems too stupid to be able to shift and do longs in the - * pre-processor :-( - */ -# define ERR_PACK(l,f,r) (((((unsigned long)l)&0xffL)*0x1000000)| \ - ((((unsigned long)f)&0xfffL)*0x1000)| \ - ((((unsigned long)r)&0xfffL))) -# define ERR_GET_LIB(l) (int)((((unsigned long)l)>>24L)&0xffL) -# define ERR_GET_FUNC(l) (int)((((unsigned long)l)>>12L)&0xfffL) -# define ERR_GET_REASON(l) (int)((l)&0xfffL) -# define ERR_FATAL_ERROR(l) (int)((l)&ERR_R_FATAL) - -/* OS functions */ -# define SYS_F_FOPEN 1 -# define SYS_F_CONNECT 2 -# define SYS_F_GETSERVBYNAME 3 -# define SYS_F_SOCKET 4 -# define SYS_F_IOCTLSOCKET 5 -# define SYS_F_BIND 6 -# define SYS_F_LISTEN 7 -# define SYS_F_ACCEPT 8 -# define SYS_F_WSASTARTUP 9/* Winsock stuff */ -# define SYS_F_OPENDIR 10 -# define SYS_F_FREAD 11 -# define SYS_F_FFLUSH 18 - -/* reasons */ -# define ERR_R_SYS_LIB ERR_LIB_SYS/* 2 */ -# define ERR_R_BN_LIB ERR_LIB_BN/* 3 */ -# define ERR_R_RSA_LIB ERR_LIB_RSA/* 4 */ -# define ERR_R_DH_LIB ERR_LIB_DH/* 5 */ -# define ERR_R_EVP_LIB ERR_LIB_EVP/* 6 */ -# define ERR_R_BUF_LIB ERR_LIB_BUF/* 7 */ -# define ERR_R_OBJ_LIB ERR_LIB_OBJ/* 8 */ -# define ERR_R_PEM_LIB ERR_LIB_PEM/* 9 */ -# define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ -# define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ -# define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ -# define ERR_R_CONF_LIB ERR_LIB_CONF/* 14 */ -# define ERR_R_CRYPTO_LIB ERR_LIB_CRYPTO/* 15 */ -# define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ -# define ERR_R_SSL_LIB ERR_LIB_SSL/* 20 */ -# define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ -# define ERR_R_PKCS7_LIB ERR_LIB_PKCS7/* 33 */ -# define ERR_R_X509V3_LIB ERR_LIB_X509V3/* 34 */ -# define ERR_R_PKCS12_LIB ERR_LIB_PKCS12/* 35 */ -# define ERR_R_RAND_LIB ERR_LIB_RAND/* 36 */ -# define ERR_R_DSO_LIB ERR_LIB_DSO/* 37 */ -# define ERR_R_ENGINE_LIB ERR_LIB_ENGINE/* 38 */ -# define ERR_R_OCSP_LIB ERR_LIB_OCSP/* 39 */ -# define ERR_R_UI_LIB ERR_LIB_UI/* 40 */ -# define ERR_R_COMP_LIB ERR_LIB_COMP/* 41 */ -# define ERR_R_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ -# define ERR_R_ECDH_LIB ERR_LIB_ECDH/* 43 */ -# define ERR_R_STORE_LIB ERR_LIB_STORE/* 44 */ -# define ERR_R_TS_LIB ERR_LIB_TS/* 45 */ - -# define ERR_R_NESTED_ASN1_ERROR 58 -# define ERR_R_BAD_ASN1_OBJECT_HEADER 59 -# define ERR_R_BAD_GET_ASN1_OBJECT_CALL 60 -# define ERR_R_EXPECTING_AN_ASN1_SEQUENCE 61 -# define ERR_R_ASN1_LENGTH_MISMATCH 62 -# define ERR_R_MISSING_ASN1_EOS 63 - -/* fatal error */ -# define ERR_R_FATAL 64 -# define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) -# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) -# define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) -# define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) -# define ERR_R_DISABLED (5|ERR_R_FATAL) - -/* - * 99 is the maximum possible ERR_R_... code, higher values are reserved for - * the individual libraries - */ - -typedef struct ERR_string_data_st { - unsigned long error; - const char *string; -} ERR_STRING_DATA; - -void ERR_put_error(int lib, int func, int reason, const char *file, int line); -void ERR_set_error_data(char *data, int flags); - -unsigned long ERR_get_error(void); -unsigned long ERR_get_error_line(const char **file, int *line); -unsigned long ERR_get_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_error(void); -unsigned long ERR_peek_error_line(const char **file, int *line); -unsigned long ERR_peek_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_last_error(void); -unsigned long ERR_peek_last_error_line(const char **file, int *line); -unsigned long ERR_peek_last_error_line_data(const char **file, int *line, - const char **data, int *flags); -void ERR_clear_error(void); -char *ERR_error_string(unsigned long e, char *buf); -void ERR_error_string_n(unsigned long e, char *buf, size_t len); -const char *ERR_lib_error_string(unsigned long e); -const char *ERR_func_error_string(unsigned long e); -const char *ERR_reason_error_string(unsigned long e); -void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), - void *u); -# ifndef OPENSSL_NO_FP_API -void ERR_print_errors_fp(FILE *fp); -# endif -# ifndef OPENSSL_NO_BIO -void ERR_print_errors(BIO *bp); -# endif -void ERR_add_error_data(int num, ...); -void ERR_add_error_vdata(int num, va_list args); -void ERR_load_strings(int lib, ERR_STRING_DATA str[]); -void ERR_unload_strings(int lib, ERR_STRING_DATA str[]); -void ERR_load_ERR_strings(void); -void ERR_load_crypto_strings(void); -void ERR_free_strings(void); - -void ERR_remove_thread_state(const CRYPTO_THREADID *tid); -# ifndef OPENSSL_NO_DEPRECATED -void ERR_remove_state(unsigned long pid); /* if zero we look it up */ -# endif -ERR_STATE *ERR_get_state(void); - -# ifndef OPENSSL_NO_LHASH -LHASH_OF(ERR_STRING_DATA) *ERR_get_string_table(void); -LHASH_OF(ERR_STATE) *ERR_get_err_state_table(void); -void ERR_release_err_state_table(LHASH_OF(ERR_STATE) **hash); -# endif - -int ERR_get_next_error_library(void); - -int ERR_set_mark(void); -int ERR_pop_to_mark(void); - -/* Already defined in ossl_typ.h */ -/* typedef struct st_ERR_FNS ERR_FNS; */ -/* - * An application can use this function and provide the return value to - * loaded modules that should use the application's ERR state/functionality - */ -const ERR_FNS *ERR_get_implementation(void); -/* - * A loaded module should call this function prior to any ERR operations - * using the application's "ERR_FNS". - */ -int ERR_set_implementation(const ERR_FNS *fns); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/evp.h b/3rdparty/openssl/include/openssl/evp.h deleted file mode 100644 index cf1de15..0000000 --- a/3rdparty/openssl/include/openssl/evp.h +++ /dev/null @@ -1,1628 +0,0 @@ -/* crypto/evp/evp.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_ENVELOPE_H -# define HEADER_ENVELOPE_H - -# ifdef OPENSSL_ALGORITHM_DEFINES -# include -# else -# define OPENSSL_ALGORITHM_DEFINES -# include -# undef OPENSSL_ALGORITHM_DEFINES -# endif - -# include - -# include - -# ifndef OPENSSL_NO_BIO -# include -# endif - -/*- -#define EVP_RC2_KEY_SIZE 16 -#define EVP_RC4_KEY_SIZE 16 -#define EVP_BLOWFISH_KEY_SIZE 16 -#define EVP_CAST5_KEY_SIZE 16 -#define EVP_RC5_32_12_16_KEY_SIZE 16 -*/ -# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ -# define EVP_MAX_KEY_LENGTH 64 -# define EVP_MAX_IV_LENGTH 16 -# define EVP_MAX_BLOCK_LENGTH 32 - -# define PKCS5_SALT_LEN 8 -/* Default PKCS#5 iteration count */ -# define PKCS5_DEFAULT_ITER 2048 - -# include - -# define EVP_PK_RSA 0x0001 -# define EVP_PK_DSA 0x0002 -# define EVP_PK_DH 0x0004 -# define EVP_PK_EC 0x0008 -# define EVP_PKT_SIGN 0x0010 -# define EVP_PKT_ENC 0x0020 -# define EVP_PKT_EXCH 0x0040 -# define EVP_PKS_RSA 0x0100 -# define EVP_PKS_DSA 0x0200 -# define EVP_PKS_EC 0x0400 - -# define EVP_PKEY_NONE NID_undef -# define EVP_PKEY_RSA NID_rsaEncryption -# define EVP_PKEY_RSA2 NID_rsa -# define EVP_PKEY_DSA NID_dsa -# define EVP_PKEY_DSA1 NID_dsa_2 -# define EVP_PKEY_DSA2 NID_dsaWithSHA -# define EVP_PKEY_DSA3 NID_dsaWithSHA1 -# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 -# define EVP_PKEY_DH NID_dhKeyAgreement -# define EVP_PKEY_DHX NID_dhpublicnumber -# define EVP_PKEY_EC NID_X9_62_id_ecPublicKey -# define EVP_PKEY_HMAC NID_hmac -# define EVP_PKEY_CMAC NID_cmac - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Type needs to be a bit field Sub-type needs to be for variations on the - * method, as in, can it do arbitrary encryption.... - */ -struct evp_pkey_st { - int type; - int save_type; - int references; - const EVP_PKEY_ASN1_METHOD *ameth; - ENGINE *engine; - union { - char *ptr; -# ifndef OPENSSL_NO_RSA - struct rsa_st *rsa; /* RSA */ -# endif -# ifndef OPENSSL_NO_DSA - struct dsa_st *dsa; /* DSA */ -# endif -# ifndef OPENSSL_NO_DH - struct dh_st *dh; /* DH */ -# endif -# ifndef OPENSSL_NO_EC - struct ec_key_st *ec; /* ECC */ -# endif - } pkey; - int save_parameters; - STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ -} /* EVP_PKEY */ ; - -# define EVP_PKEY_MO_SIGN 0x0001 -# define EVP_PKEY_MO_VERIFY 0x0002 -# define EVP_PKEY_MO_ENCRYPT 0x0004 -# define EVP_PKEY_MO_DECRYPT 0x0008 - -# ifndef EVP_MD -struct env_md_st { - int type; - int pkey_type; - int md_size; - unsigned long flags; - int (*init) (EVP_MD_CTX *ctx); - int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); - int (*final) (EVP_MD_CTX *ctx, unsigned char *md); - int (*copy) (EVP_MD_CTX *to, const EVP_MD_CTX *from); - int (*cleanup) (EVP_MD_CTX *ctx); - /* FIXME: prototype these some day */ - int (*sign) (int type, const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, void *key); - int (*verify) (int type, const unsigned char *m, unsigned int m_length, - const unsigned char *sigbuf, unsigned int siglen, - void *key); - int required_pkey_type[5]; /* EVP_PKEY_xxx */ - int block_size; - int ctx_size; /* how big does the ctx->md_data need to be */ - /* control function */ - int (*md_ctrl) (EVP_MD_CTX *ctx, int cmd, int p1, void *p2); -} /* EVP_MD */ ; - -typedef int evp_sign_method(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigret, - unsigned int *siglen, void *key); -typedef int evp_verify_method(int type, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, void *key); - -/* digest can only handle a single block */ -# define EVP_MD_FLAG_ONESHOT 0x0001 - -/* - * digest is a "clone" digest used - * which is a copy of an existing - * one for a specific public key type. - * EVP_dss1() etc - */ -# define EVP_MD_FLAG_PKEY_DIGEST 0x0002 - -/* Digest uses EVP_PKEY_METHOD for signing instead of MD specific signing */ - -# define EVP_MD_FLAG_PKEY_METHOD_SIGNATURE 0x0004 - -/* DigestAlgorithmIdentifier flags... */ - -# define EVP_MD_FLAG_DIGALGID_MASK 0x0018 - -/* NULL or absent parameter accepted. Use NULL */ - -# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 - -/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ - -# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 - -/* Custom handling via ctrl */ - -# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 - -/* Note if suitable for use in FIPS mode */ -# define EVP_MD_FLAG_FIPS 0x0400 - -/* Digest ctrls */ - -# define EVP_MD_CTRL_DIGALGID 0x1 -# define EVP_MD_CTRL_MICALG 0x2 - -/* Minimum Algorithm specific ctrl value */ - -# define EVP_MD_CTRL_ALG_CTRL 0x1000 - -# define EVP_PKEY_NULL_method NULL,NULL,{0,0,0,0} - -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_DSA_method (evp_sign_method *)DSA_sign, \ - (evp_verify_method *)DSA_verify, \ - {EVP_PKEY_DSA,EVP_PKEY_DSA2,EVP_PKEY_DSA3, \ - EVP_PKEY_DSA4,0} -# else -# define EVP_PKEY_DSA_method EVP_PKEY_NULL_method -# endif - -# ifndef OPENSSL_NO_ECDSA -# define EVP_PKEY_ECDSA_method (evp_sign_method *)ECDSA_sign, \ - (evp_verify_method *)ECDSA_verify, \ - {EVP_PKEY_EC,0,0,0} -# else -# define EVP_PKEY_ECDSA_method EVP_PKEY_NULL_method -# endif - -# ifndef OPENSSL_NO_RSA -# define EVP_PKEY_RSA_method (evp_sign_method *)RSA_sign, \ - (evp_verify_method *)RSA_verify, \ - {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} -# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method \ - (evp_sign_method *)RSA_sign_ASN1_OCTET_STRING, \ - (evp_verify_method *)RSA_verify_ASN1_OCTET_STRING, \ - {EVP_PKEY_RSA,EVP_PKEY_RSA2,0,0} -# else -# define EVP_PKEY_RSA_method EVP_PKEY_NULL_method -# define EVP_PKEY_RSA_ASN1_OCTET_STRING_method EVP_PKEY_NULL_method -# endif - -# endif /* !EVP_MD */ - -struct env_md_ctx_st { - const EVP_MD *digest; - ENGINE *engine; /* functional reference if 'digest' is - * ENGINE-provided */ - unsigned long flags; - void *md_data; - /* Public key context for sign/verify */ - EVP_PKEY_CTX *pctx; - /* Update function: usually copied from EVP_MD */ - int (*update) (EVP_MD_CTX *ctx, const void *data, size_t count); -} /* EVP_MD_CTX */ ; - -/* values for EVP_MD_CTX flags */ - -# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be - * called once only */ -# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been - * cleaned */ -# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data - * in EVP_MD_CTX_cleanup */ -/* - * FIPS and pad options are ignored in 1.0.0, definitions are here so we - * don't accidentally reuse the values for other purposes. - */ - -# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008/* Allow use of non FIPS - * digest in FIPS mode */ - -/* - * The following PAD options are also currently ignored in 1.0.0, digest - * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() - * instead. - */ -# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ -# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ -# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ -# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ - -# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ - -struct evp_cipher_st { - int nid; - int block_size; - /* Default value for variable length ciphers */ - int key_len; - int iv_len; - /* Various flags */ - unsigned long flags; - /* init key */ - int (*init) (EVP_CIPHER_CTX *ctx, const unsigned char *key, - const unsigned char *iv, int enc); - /* encrypt/decrypt data */ - int (*do_cipher) (EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl); - /* cleanup ctx */ - int (*cleanup) (EVP_CIPHER_CTX *); - /* how big ctx->cipher_data needs to be */ - int ctx_size; - /* Populate a ASN1_TYPE with parameters */ - int (*set_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); - /* Get parameters from a ASN1_TYPE */ - int (*get_asn1_parameters) (EVP_CIPHER_CTX *, ASN1_TYPE *); - /* Miscellaneous operations */ - int (*ctrl) (EVP_CIPHER_CTX *, int type, int arg, void *ptr); - /* Application data */ - void *app_data; -} /* EVP_CIPHER */ ; - -/* Values for cipher flags */ - -/* Modes for ciphers */ - -# define EVP_CIPH_STREAM_CIPHER 0x0 -# define EVP_CIPH_ECB_MODE 0x1 -# define EVP_CIPH_CBC_MODE 0x2 -# define EVP_CIPH_CFB_MODE 0x3 -# define EVP_CIPH_OFB_MODE 0x4 -# define EVP_CIPH_CTR_MODE 0x5 -# define EVP_CIPH_GCM_MODE 0x6 -# define EVP_CIPH_CCM_MODE 0x7 -# define EVP_CIPH_XTS_MODE 0x10001 -# define EVP_CIPH_WRAP_MODE 0x10002 -# define EVP_CIPH_MODE 0xF0007 -/* Set if variable length cipher */ -# define EVP_CIPH_VARIABLE_LENGTH 0x8 -/* Set if the iv handling should be done by the cipher itself */ -# define EVP_CIPH_CUSTOM_IV 0x10 -/* Set if the cipher's init() function should be called if key is NULL */ -# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 -/* Call ctrl() to init cipher parameters */ -# define EVP_CIPH_CTRL_INIT 0x40 -/* Don't use standard key length function */ -# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 -/* Don't use standard block padding */ -# define EVP_CIPH_NO_PADDING 0x100 -/* cipher handles random key generation */ -# define EVP_CIPH_RAND_KEY 0x200 -/* cipher has its own additional copying logic */ -# define EVP_CIPH_CUSTOM_COPY 0x400 -/* Allow use default ASN1 get/set iv */ -# define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 -/* Buffer length in bits not bytes: CFB1 mode only */ -# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 -/* Note if suitable for use in FIPS mode */ -# define EVP_CIPH_FLAG_FIPS 0x4000 -/* Allow non FIPS cipher in FIPS mode */ -# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 -/* - * Cipher handles any and all padding logic as well as finalisation. - */ -# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 -# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 -# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 - -/* - * Cipher context flag to indicate we can handle wrap mode: if allowed in - * older applications it could overflow buffers. - */ - -# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 - -/* ctrl() values */ - -# define EVP_CTRL_INIT 0x0 -# define EVP_CTRL_SET_KEY_LENGTH 0x1 -# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 -# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 -# define EVP_CTRL_GET_RC5_ROUNDS 0x4 -# define EVP_CTRL_SET_RC5_ROUNDS 0x5 -# define EVP_CTRL_RAND_KEY 0x6 -# define EVP_CTRL_PBE_PRF_NID 0x7 -# define EVP_CTRL_COPY 0x8 -# define EVP_CTRL_GCM_SET_IVLEN 0x9 -# define EVP_CTRL_GCM_GET_TAG 0x10 -# define EVP_CTRL_GCM_SET_TAG 0x11 -# define EVP_CTRL_GCM_SET_IV_FIXED 0x12 -# define EVP_CTRL_GCM_IV_GEN 0x13 -# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_GCM_SET_IVLEN -# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_GCM_GET_TAG -# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_GCM_SET_TAG -# define EVP_CTRL_CCM_SET_L 0x14 -# define EVP_CTRL_CCM_SET_MSGLEN 0x15 -/* - * AEAD cipher deduces payload length and returns number of bytes required to - * store MAC and eventual padding. Subsequent call to EVP_Cipher even - * appends/verifies MAC. - */ -# define EVP_CTRL_AEAD_TLS1_AAD 0x16 -/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ -# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -/* Set the GCM invocation field, decrypt only */ -# define EVP_CTRL_GCM_SET_IV_INV 0x18 - -# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 -# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a -# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b -# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c - -/* RFC 5246 defines additional data to be 13 bytes in length */ -# define EVP_AEAD_TLS1_AAD_LEN 13 - -typedef struct { - unsigned char *out; - const unsigned char *inp; - size_t len; - unsigned int interleave; -} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; - -/* GCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_GCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 -/* Length of tag for TLS */ -# define EVP_GCM_TLS_TAG_LEN 16 - -typedef struct evp_cipher_info_st { - const EVP_CIPHER *cipher; - unsigned char iv[EVP_MAX_IV_LENGTH]; -} EVP_CIPHER_INFO; - -struct evp_cipher_ctx_st { - const EVP_CIPHER *cipher; - ENGINE *engine; /* functional reference if 'cipher' is - * ENGINE-provided */ - int encrypt; /* encrypt or decrypt */ - int buf_len; /* number we have left */ - unsigned char oiv[EVP_MAX_IV_LENGTH]; /* original iv */ - unsigned char iv[EVP_MAX_IV_LENGTH]; /* working iv */ - unsigned char buf[EVP_MAX_BLOCK_LENGTH]; /* saved partial block */ - int num; /* used by cfb/ofb/ctr mode */ - void *app_data; /* application stuff */ - int key_len; /* May change for variable length cipher */ - unsigned long flags; /* Various flags */ - void *cipher_data; /* per EVP data */ - int final_used; - int block_mask; - unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */ -} /* EVP_CIPHER_CTX */ ; - -typedef struct evp_Encode_Ctx_st { - /* number saved in a partial encode/decode */ - int num; - /* - * The length is either the output line length (in input bytes) or the - * shortest input line length that is ok. Once decoding begins, the - * length is adjusted up each time a longer line is decoded - */ - int length; - /* data to encode */ - unsigned char enc_data[80]; - /* number read on current line */ - int line_num; - int expect_nl; -} EVP_ENCODE_CTX; - -/* Password based encryption function */ -typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de); - -# ifndef OPENSSL_NO_RSA -# define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ - (char *)(rsa)) -# endif - -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ - (char *)(dsa)) -# endif - -# ifndef OPENSSL_NO_DH -# define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ - (char *)(dh)) -# endif - -# ifndef OPENSSL_NO_EC -# define EVP_PKEY_assign_EC_KEY(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_EC,\ - (char *)(eckey)) -# endif - -/* Add some extra combinations */ -# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) -# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) -# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) -# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) - -int EVP_MD_type(const EVP_MD *md); -# define EVP_MD_nid(e) EVP_MD_type(e) -# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) -int EVP_MD_pkey_type(const EVP_MD *md); -int EVP_MD_size(const EVP_MD *md); -int EVP_MD_block_size(const EVP_MD *md); -unsigned long EVP_MD_flags(const EVP_MD *md); - -const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); -# define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) -# define EVP_MD_CTX_block_size(e) EVP_MD_block_size(EVP_MD_CTX_md(e)) -# define EVP_MD_CTX_type(e) EVP_MD_type(EVP_MD_CTX_md(e)) - -int EVP_CIPHER_nid(const EVP_CIPHER *cipher); -# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) -int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); -int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); -int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); -unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); -# define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) - -const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); -void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); -# define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) -unsigned long EVP_CIPHER_CTX_flags(const EVP_CIPHER_CTX *ctx); -# define EVP_CIPHER_CTX_mode(e) (EVP_CIPHER_CTX_flags(e) & EVP_CIPH_MODE) - -# define EVP_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) -# define EVP_DECODE_LENGTH(l) ((l+3)/4*3+80) - -# define EVP_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_SignInit(a,b) EVP_DigestInit(a,b) -# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) -# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) -# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) -# define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) - -# ifdef CONST_STRICT -void BIO_set_md(BIO *, const EVP_MD *md); -# else -# define BIO_set_md(b,md) BIO_ctrl(b,BIO_C_SET_MD,0,(char *)md) -# endif -# define BIO_get_md(b,mdp) BIO_ctrl(b,BIO_C_GET_MD,0,(char *)mdp) -# define BIO_get_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_GET_MD_CTX,0,(char *)mdcp) -# define BIO_set_md_ctx(b,mdcp) BIO_ctrl(b,BIO_C_SET_MD_CTX,0,(char *)mdcp) -# define BIO_get_cipher_status(b) BIO_ctrl(b,BIO_C_GET_CIPHER_STATUS,0,NULL) -# define BIO_get_cipher_ctx(b,c_pp) BIO_ctrl(b,BIO_C_GET_CIPHER_CTX,0,(char *)c_pp) - -int EVP_Cipher(EVP_CIPHER_CTX *c, - unsigned char *out, const unsigned char *in, unsigned int inl); - -# define EVP_add_cipher_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_add_digest_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_delete_cipher_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); -# define EVP_delete_digest_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); - -void EVP_MD_CTX_init(EVP_MD_CTX *ctx); -int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); -EVP_MD_CTX *EVP_MD_CTX_create(void); -void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); -int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); -void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); -void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); -int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); -int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); -int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); -int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); -int EVP_Digest(const void *data, size_t count, - unsigned char *md, unsigned int *size, const EVP_MD *type, - ENGINE *impl); - -int EVP_MD_CTX_copy(EVP_MD_CTX *out, const EVP_MD_CTX *in); -int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); -int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s); - -int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); -int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, - const char *prompt, int verify); -void EVP_set_pw_prompt(const char *prompt); -char *EVP_get_pw_prompt(void); - -int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, const unsigned char *data, - int datal, int count, unsigned char *key, - unsigned char *iv); - -void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); -void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); -int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); - -int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - ENGINE *impl, const unsigned char *key, - const unsigned char *iv); -int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - ENGINE *impl, const unsigned char *key, - const unsigned char *iv); -int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); -int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); - -int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc); -int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - ENGINE *impl, const unsigned char *key, - const unsigned char *iv, int enc); -int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); -int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, int *outl); - -int EVP_SignFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *s, - EVP_PKEY *pkey); - -int EVP_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); - -int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); -int EVP_DigestSignFinal(EVP_MD_CTX *ctx, - unsigned char *sigret, size_t *siglen); - -int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); -int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, - const unsigned char *sig, size_t siglen); - -int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - const unsigned char *ek, int ekl, const unsigned char *iv, - EVP_PKEY *priv); -int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - unsigned char **ek, int *ekl, unsigned char *iv, - EVP_PKEY **pubk, int npubk); -int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); -void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); -int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned - char *out, int *outl); -int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); -int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); -EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a); -int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); -int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); -int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); -int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); - -# ifndef OPENSSL_NO_BIO -BIO_METHOD *BIO_f_md(void); -BIO_METHOD *BIO_f_base64(void); -BIO_METHOD *BIO_f_cipher(void); -BIO_METHOD *BIO_f_reliable(void); -void BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, - const unsigned char *i, int enc); -# endif - -const EVP_MD *EVP_md_null(void); -# ifndef OPENSSL_NO_MD2 -const EVP_MD *EVP_md2(void); -# endif -# ifndef OPENSSL_NO_MD4 -const EVP_MD *EVP_md4(void); -# endif -# ifndef OPENSSL_NO_MD5 -const EVP_MD *EVP_md5(void); -# endif -# ifndef OPENSSL_NO_SHA -const EVP_MD *EVP_sha(void); -const EVP_MD *EVP_sha1(void); -const EVP_MD *EVP_dss(void); -const EVP_MD *EVP_dss1(void); -const EVP_MD *EVP_ecdsa(void); -# endif -# ifndef OPENSSL_NO_SHA256 -const EVP_MD *EVP_sha224(void); -const EVP_MD *EVP_sha256(void); -# endif -# ifndef OPENSSL_NO_SHA512 -const EVP_MD *EVP_sha384(void); -const EVP_MD *EVP_sha512(void); -# endif -# ifndef OPENSSL_NO_MDC2 -const EVP_MD *EVP_mdc2(void); -# endif -# ifndef OPENSSL_NO_RIPEMD -const EVP_MD *EVP_ripemd160(void); -# endif -# ifndef OPENSSL_NO_WHIRLPOOL -const EVP_MD *EVP_whirlpool(void); -# endif -const EVP_CIPHER *EVP_enc_null(void); /* does nothing :-) */ -# ifndef OPENSSL_NO_DES -const EVP_CIPHER *EVP_des_ecb(void); -const EVP_CIPHER *EVP_des_ede(void); -const EVP_CIPHER *EVP_des_ede3(void); -const EVP_CIPHER *EVP_des_ede_ecb(void); -const EVP_CIPHER *EVP_des_ede3_ecb(void); -const EVP_CIPHER *EVP_des_cfb64(void); -# define EVP_des_cfb EVP_des_cfb64 -const EVP_CIPHER *EVP_des_cfb1(void); -const EVP_CIPHER *EVP_des_cfb8(void); -const EVP_CIPHER *EVP_des_ede_cfb64(void); -# define EVP_des_ede_cfb EVP_des_ede_cfb64 -# if 0 -const EVP_CIPHER *EVP_des_ede_cfb1(void); -const EVP_CIPHER *EVP_des_ede_cfb8(void); -# endif -const EVP_CIPHER *EVP_des_ede3_cfb64(void); -# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb1(void); -const EVP_CIPHER *EVP_des_ede3_cfb8(void); -const EVP_CIPHER *EVP_des_ofb(void); -const EVP_CIPHER *EVP_des_ede_ofb(void); -const EVP_CIPHER *EVP_des_ede3_ofb(void); -const EVP_CIPHER *EVP_des_cbc(void); -const EVP_CIPHER *EVP_des_ede_cbc(void); -const EVP_CIPHER *EVP_des_ede3_cbc(void); -const EVP_CIPHER *EVP_desx_cbc(void); -const EVP_CIPHER *EVP_des_ede3_wrap(void); -/* - * This should now be supported through the dev_crypto ENGINE. But also, why - * are rc4 and md5 declarations made here inside a "NO_DES" precompiler - * branch? - */ -# if 0 -# ifdef OPENSSL_OPENBSD_DEV_CRYPTO -const EVP_CIPHER *EVP_dev_crypto_des_ede3_cbc(void); -const EVP_CIPHER *EVP_dev_crypto_rc4(void); -const EVP_MD *EVP_dev_crypto_md5(void); -# endif -# endif -# endif -# ifndef OPENSSL_NO_RC4 -const EVP_CIPHER *EVP_rc4(void); -const EVP_CIPHER *EVP_rc4_40(void); -# ifndef OPENSSL_NO_MD5 -const EVP_CIPHER *EVP_rc4_hmac_md5(void); -# endif -# endif -# ifndef OPENSSL_NO_IDEA -const EVP_CIPHER *EVP_idea_ecb(void); -const EVP_CIPHER *EVP_idea_cfb64(void); -# define EVP_idea_cfb EVP_idea_cfb64 -const EVP_CIPHER *EVP_idea_ofb(void); -const EVP_CIPHER *EVP_idea_cbc(void); -# endif -# ifndef OPENSSL_NO_RC2 -const EVP_CIPHER *EVP_rc2_ecb(void); -const EVP_CIPHER *EVP_rc2_cbc(void); -const EVP_CIPHER *EVP_rc2_40_cbc(void); -const EVP_CIPHER *EVP_rc2_64_cbc(void); -const EVP_CIPHER *EVP_rc2_cfb64(void); -# define EVP_rc2_cfb EVP_rc2_cfb64 -const EVP_CIPHER *EVP_rc2_ofb(void); -# endif -# ifndef OPENSSL_NO_BF -const EVP_CIPHER *EVP_bf_ecb(void); -const EVP_CIPHER *EVP_bf_cbc(void); -const EVP_CIPHER *EVP_bf_cfb64(void); -# define EVP_bf_cfb EVP_bf_cfb64 -const EVP_CIPHER *EVP_bf_ofb(void); -# endif -# ifndef OPENSSL_NO_CAST -const EVP_CIPHER *EVP_cast5_ecb(void); -const EVP_CIPHER *EVP_cast5_cbc(void); -const EVP_CIPHER *EVP_cast5_cfb64(void); -# define EVP_cast5_cfb EVP_cast5_cfb64 -const EVP_CIPHER *EVP_cast5_ofb(void); -# endif -# ifndef OPENSSL_NO_RC5 -const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); -const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); -const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); -# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 -const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); -# endif -# ifndef OPENSSL_NO_AES -const EVP_CIPHER *EVP_aes_128_ecb(void); -const EVP_CIPHER *EVP_aes_128_cbc(void); -const EVP_CIPHER *EVP_aes_128_cfb1(void); -const EVP_CIPHER *EVP_aes_128_cfb8(void); -const EVP_CIPHER *EVP_aes_128_cfb128(void); -# define EVP_aes_128_cfb EVP_aes_128_cfb128 -const EVP_CIPHER *EVP_aes_128_ofb(void); -const EVP_CIPHER *EVP_aes_128_ctr(void); -const EVP_CIPHER *EVP_aes_128_ccm(void); -const EVP_CIPHER *EVP_aes_128_gcm(void); -const EVP_CIPHER *EVP_aes_128_xts(void); -const EVP_CIPHER *EVP_aes_128_wrap(void); -const EVP_CIPHER *EVP_aes_192_ecb(void); -const EVP_CIPHER *EVP_aes_192_cbc(void); -const EVP_CIPHER *EVP_aes_192_cfb1(void); -const EVP_CIPHER *EVP_aes_192_cfb8(void); -const EVP_CIPHER *EVP_aes_192_cfb128(void); -# define EVP_aes_192_cfb EVP_aes_192_cfb128 -const EVP_CIPHER *EVP_aes_192_ofb(void); -const EVP_CIPHER *EVP_aes_192_ctr(void); -const EVP_CIPHER *EVP_aes_192_ccm(void); -const EVP_CIPHER *EVP_aes_192_gcm(void); -const EVP_CIPHER *EVP_aes_192_wrap(void); -const EVP_CIPHER *EVP_aes_256_ecb(void); -const EVP_CIPHER *EVP_aes_256_cbc(void); -const EVP_CIPHER *EVP_aes_256_cfb1(void); -const EVP_CIPHER *EVP_aes_256_cfb8(void); -const EVP_CIPHER *EVP_aes_256_cfb128(void); -# define EVP_aes_256_cfb EVP_aes_256_cfb128 -const EVP_CIPHER *EVP_aes_256_ofb(void); -const EVP_CIPHER *EVP_aes_256_ctr(void); -const EVP_CIPHER *EVP_aes_256_ccm(void); -const EVP_CIPHER *EVP_aes_256_gcm(void); -const EVP_CIPHER *EVP_aes_256_xts(void); -const EVP_CIPHER *EVP_aes_256_wrap(void); -# if !defined(OPENSSL_NO_SHA) && !defined(OPENSSL_NO_SHA1) -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha1(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha1(void); -# endif -# ifndef OPENSSL_NO_SHA256 -const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void); -const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void); -# endif -# endif -# ifndef OPENSSL_NO_CAMELLIA -const EVP_CIPHER *EVP_camellia_128_ecb(void); -const EVP_CIPHER *EVP_camellia_128_cbc(void); -const EVP_CIPHER *EVP_camellia_128_cfb1(void); -const EVP_CIPHER *EVP_camellia_128_cfb8(void); -const EVP_CIPHER *EVP_camellia_128_cfb128(void); -# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 -const EVP_CIPHER *EVP_camellia_128_ofb(void); -const EVP_CIPHER *EVP_camellia_192_ecb(void); -const EVP_CIPHER *EVP_camellia_192_cbc(void); -const EVP_CIPHER *EVP_camellia_192_cfb1(void); -const EVP_CIPHER *EVP_camellia_192_cfb8(void); -const EVP_CIPHER *EVP_camellia_192_cfb128(void); -# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 -const EVP_CIPHER *EVP_camellia_192_ofb(void); -const EVP_CIPHER *EVP_camellia_256_ecb(void); -const EVP_CIPHER *EVP_camellia_256_cbc(void); -const EVP_CIPHER *EVP_camellia_256_cfb1(void); -const EVP_CIPHER *EVP_camellia_256_cfb8(void); -const EVP_CIPHER *EVP_camellia_256_cfb128(void); -# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 -const EVP_CIPHER *EVP_camellia_256_ofb(void); -# endif - -# ifndef OPENSSL_NO_SEED -const EVP_CIPHER *EVP_seed_ecb(void); -const EVP_CIPHER *EVP_seed_cbc(void); -const EVP_CIPHER *EVP_seed_cfb128(void); -# define EVP_seed_cfb EVP_seed_cfb128 -const EVP_CIPHER *EVP_seed_ofb(void); -# endif - -void OPENSSL_add_all_algorithms_noconf(void); -void OPENSSL_add_all_algorithms_conf(void); - -# ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() \ - OPENSSL_add_all_algorithms_conf() -# else -# define OpenSSL_add_all_algorithms() \ - OPENSSL_add_all_algorithms_noconf() -# endif - -void OpenSSL_add_all_ciphers(void); -void OpenSSL_add_all_digests(void); -# define SSLeay_add_all_algorithms() OpenSSL_add_all_algorithms() -# define SSLeay_add_all_ciphers() OpenSSL_add_all_ciphers() -# define SSLeay_add_all_digests() OpenSSL_add_all_digests() - -int EVP_add_cipher(const EVP_CIPHER *cipher); -int EVP_add_digest(const EVP_MD *digest); - -const EVP_CIPHER *EVP_get_cipherbyname(const char *name); -const EVP_MD *EVP_get_digestbyname(const char *name); -void EVP_cleanup(void); - -void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_CIPHER_do_all_sorted(void (*fn) - (const EVP_CIPHER *ciph, const char *from, - const char *to, void *x), void *arg); - -void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_MD_do_all_sorted(void (*fn) - (const EVP_MD *ciph, const char *from, - const char *to, void *x), void *arg); - -int EVP_PKEY_decrypt_old(unsigned char *dec_key, - const unsigned char *enc_key, int enc_key_len, - EVP_PKEY *private_key); -int EVP_PKEY_encrypt_old(unsigned char *enc_key, - const unsigned char *key, int key_len, - EVP_PKEY *pub_key); -int EVP_PKEY_type(int type); -int EVP_PKEY_id(const EVP_PKEY *pkey); -int EVP_PKEY_base_id(const EVP_PKEY *pkey); -int EVP_PKEY_bits(EVP_PKEY *pkey); -int EVP_PKEY_size(EVP_PKEY *pkey); -int EVP_PKEY_set_type(EVP_PKEY *pkey, int type); -int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len); -int EVP_PKEY_assign(EVP_PKEY *pkey, int type, void *key); -void *EVP_PKEY_get0(EVP_PKEY *pkey); - -# ifndef OPENSSL_NO_RSA -struct rsa_st; -int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); -struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DSA -struct dsa_st; -int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); -struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DH -struct dh_st; -int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); -struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_EC -struct ec_key_st; -int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); -struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); -# endif - -EVP_PKEY *EVP_PKEY_new(void); -void EVP_PKEY_free(EVP_PKEY *pkey); - -EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); - -EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); - -int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); -int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); -int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); -int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); - -int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); - -int EVP_CIPHER_type(const EVP_CIPHER *ctx); - -/* calls methods */ -int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* These are used by EVP_CIPHER methods */ -int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* PKCS5 password based encryption */ -int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - int keylen, unsigned char *out); -int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - const EVP_MD *digest, int keylen, unsigned char *out); -int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); - -void PKCS5_PBE_add(void); - -int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); - -/* PBE type */ - -/* Can appear as the outermost AlgorithmIdentifier */ -# define EVP_PBE_TYPE_OUTER 0x0 -/* Is an PRF type OID */ -# define EVP_PBE_TYPE_PRF 0x1 - -int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, - int md_nid, EVP_PBE_KEYGEN *keygen); -int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen); -void EVP_PBE_cleanup(void); - -# define ASN1_PKEY_ALIAS 0x1 -# define ASN1_PKEY_DYNAMIC 0x2 -# define ASN1_PKEY_SIGPARAM_NULL 0x4 - -# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 -# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 -# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 -# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 -# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 -# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 - -int EVP_PKEY_asn1_get_count(void); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, - const char *str, int len); -int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); -int EVP_PKEY_asn1_add_alias(int to, int from); -int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, - int *ppkey_flags, const char **pinfo, - const char **ppem_str, - const EVP_PKEY_ASN1_METHOD *ameth); - -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(EVP_PKEY *pkey); -EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, - const char *pem_str, - const char *info); -void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, - const EVP_PKEY_ASN1_METHOD *src); -void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); -void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, - int (*pub_decode) (EVP_PKEY *pk, - X509_PUBKEY *pub), - int (*pub_encode) (X509_PUBKEY *pub, - const EVP_PKEY *pk), - int (*pub_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*pub_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx), - int (*pkey_size) (const EVP_PKEY *pk), - int (*pkey_bits) (const EVP_PKEY *pk)); -void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, - int (*priv_decode) (EVP_PKEY *pk, - PKCS8_PRIV_KEY_INFO - *p8inf), - int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, - const EVP_PKEY *pk), - int (*priv_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); -void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, - int (*param_decode) (EVP_PKEY *pkey, - const unsigned char **pder, - int derlen), - int (*param_encode) (const EVP_PKEY *pkey, - unsigned char **pder), - int (*param_missing) (const EVP_PKEY *pk), - int (*param_copy) (EVP_PKEY *to, - const EVP_PKEY *from), - int (*param_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*param_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); - -void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, - void (*pkey_free) (EVP_PKEY *pkey)); -void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_ctrl) (EVP_PKEY *pkey, int op, - long arg1, void *arg2)); -void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, - int (*item_verify) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *a, - ASN1_BIT_STRING *sig, - EVP_PKEY *pkey), - int (*item_sign) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *alg1, - X509_ALGOR *alg2, - ASN1_BIT_STRING *sig)); - -# define EVP_PKEY_OP_UNDEFINED 0 -# define EVP_PKEY_OP_PARAMGEN (1<<1) -# define EVP_PKEY_OP_KEYGEN (1<<2) -# define EVP_PKEY_OP_SIGN (1<<3) -# define EVP_PKEY_OP_VERIFY (1<<4) -# define EVP_PKEY_OP_VERIFYRECOVER (1<<5) -# define EVP_PKEY_OP_SIGNCTX (1<<6) -# define EVP_PKEY_OP_VERIFYCTX (1<<7) -# define EVP_PKEY_OP_ENCRYPT (1<<8) -# define EVP_PKEY_OP_DECRYPT (1<<9) -# define EVP_PKEY_OP_DERIVE (1<<10) - -# define EVP_PKEY_OP_TYPE_SIG \ - (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ - | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) - -# define EVP_PKEY_OP_TYPE_CRYPT \ - (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) - -# define EVP_PKEY_OP_TYPE_NOGEN \ - (EVP_PKEY_OP_SIG | EVP_PKEY_OP_CRYPT | EVP_PKEY_OP_DERIVE) - -# define EVP_PKEY_OP_TYPE_GEN \ - (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) - -# define EVP_PKEY_CTX_set_signature_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_get_signature_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, -1, EVP_PKEY_OP_TYPE_SIG, \ - EVP_PKEY_CTRL_GET_MD, 0, (void *)pmd) - -# define EVP_PKEY_CTRL_MD 1 -# define EVP_PKEY_CTRL_PEER_KEY 2 - -# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 -# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 - -# define EVP_PKEY_CTRL_PKCS7_SIGN 5 - -# define EVP_PKEY_CTRL_SET_MAC_KEY 6 - -# define EVP_PKEY_CTRL_DIGESTINIT 7 - -/* Used by GOST key encryption in TLS */ -# define EVP_PKEY_CTRL_SET_IV 8 - -# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 -# define EVP_PKEY_CTRL_CMS_DECRYPT 10 -# define EVP_PKEY_CTRL_CMS_SIGN 11 - -# define EVP_PKEY_CTRL_CIPHER 12 - -# define EVP_PKEY_CTRL_GET_MD 13 - -# define EVP_PKEY_ALG_CTRL 0x1000 - -# define EVP_PKEY_FLAG_AUTOARGLEN 2 -/* - * Method handles all operations: don't assume any digest related defaults. - */ -# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 - -const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); -EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); -void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, - const EVP_PKEY_METHOD *meth); -void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); -void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); -int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); - -EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); -EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, - int cmd, int p1, void *p2); -int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, - const char *value); - -int EVP_PKEY_CTX_get_operation(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_set0_keygen_info(EVP_PKEY_CTX *ctx, int *dat, int datlen); - -EVP_PKEY *EVP_PKEY_new_mac_key(int type, ENGINE *e, - const unsigned char *key, int keylen); - -void EVP_PKEY_CTX_set_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_data(EVP_PKEY_CTX *ctx); -EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); - -EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, - unsigned char *rout, size_t *routlen, - const unsigned char *sig, size_t siglen); -int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); -int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); - -int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); -int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); - -typedef int EVP_PKEY_gen_cb (EVP_PKEY_CTX *ctx); - -int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); -int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); - -void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); -EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); - -void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, - int (*init) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, - int (*copy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, - void (*cleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, - int (*paramgen_init) (EVP_PKEY_CTX *ctx), - int (*paramgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, - int (*keygen_init) (EVP_PKEY_CTX *ctx), - int (*keygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, - int (*sign_init) (EVP_PKEY_CTX *ctx), - int (*sign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, - int (*verify_init) (EVP_PKEY_CTX *ctx), - int (*verify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, - int (*verify_recover_init) (EVP_PKEY_CTX - *ctx), - int (*verify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, - int (*signctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*signctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, - int (*verifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*verifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, - int (*encrypt_init) (EVP_PKEY_CTX *ctx), - int (*encryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, - int (*decrypt_init) (EVP_PKEY_CTX *ctx), - int (*decrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, - int (*derive_init) (EVP_PKEY_CTX *ctx), - int (*derive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, - int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (*ctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth, - int (**pinit) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, - int (**pcopy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, - void (**pcleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth, - int (**pparamgen_init) (EVP_PKEY_CTX *ctx), - int (**pparamgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth, - int (**pkeygen_init) (EVP_PKEY_CTX *ctx), - int (**pkeygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth, - int (**psign_init) (EVP_PKEY_CTX *ctx), - int (**psign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth, - int (**pverify_init) (EVP_PKEY_CTX *ctx), - int (**pverify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth, - int (**pverify_recover_init) (EVP_PKEY_CTX - *ctx), - int (**pverify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth, - int (**psignctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**psignctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth, - int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**pverifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth, - int (**pencrypt_init) (EVP_PKEY_CTX *ctx), - int (**pencryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth, - int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), - int (**pdecrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth, - int (**pderive_init) (EVP_PKEY_CTX *ctx), - int (**pderive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth, - int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (**pctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_add_alg_module(void); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -void ERR_load_EVP_strings(void); - -/* Error codes for the EVP functions. */ - -/* Function codes. */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AESNI_XTS_CIPHER 176 -# define EVP_F_AES_INIT_KEY 133 -# define EVP_F_AES_T4_INIT_KEY 178 -# define EVP_F_AES_XTS 172 -# define EVP_F_AES_XTS_CIPHER 175 -# define EVP_F_ALG_MODULE_INIT 177 -# define EVP_F_CAMELLIA_INIT_KEY 159 -# define EVP_F_CMAC_INIT 173 -# define EVP_F_CMLL_T4_INIT_KEY 179 -# define EVP_F_D2I_PKEY 100 -# define EVP_F_DO_SIGVER_INIT 161 -# define EVP_F_DSAPKEY2PKCS8 134 -# define EVP_F_DSA_PKEY2PKCS8 135 -# define EVP_F_ECDSA_PKEY2PKCS8 129 -# define EVP_F_ECKEY_PKEY2PKCS8 132 -# define EVP_F_EVP_CIPHERINIT_EX 123 -# define EVP_F_EVP_CIPHER_CTX_COPY 163 -# define EVP_F_EVP_CIPHER_CTX_CTRL 124 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 -# define EVP_F_EVP_DECRYPTFINAL_EX 101 -# define EVP_F_EVP_DIGESTINIT_EX 128 -# define EVP_F_EVP_ENCRYPTFINAL_EX 127 -# define EVP_F_EVP_MD_CTX_COPY_EX 110 -# define EVP_F_EVP_MD_SIZE 162 -# define EVP_F_EVP_OPENINIT 102 -# define EVP_F_EVP_PBE_ALG_ADD 115 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 -# define EVP_F_EVP_PBE_CIPHERINIT 116 -# define EVP_F_EVP_PKCS82PKEY 111 -# define EVP_F_EVP_PKCS82PKEY_BROKEN 136 -# define EVP_F_EVP_PKEY2PKCS8_BROKEN 113 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 -# define EVP_F_EVP_PKEY_CTX_CTRL 137 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 -# define EVP_F_EVP_PKEY_CTX_DUP 156 -# define EVP_F_EVP_PKEY_DECRYPT 104 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 -# define EVP_F_EVP_PKEY_DERIVE 153 -# define EVP_F_EVP_PKEY_DERIVE_INIT 154 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 -# define EVP_F_EVP_PKEY_ENCRYPT 105 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 -# define EVP_F_EVP_PKEY_GET1_DH 119 -# define EVP_F_EVP_PKEY_GET1_DSA 120 -# define EVP_F_EVP_PKEY_GET1_ECDSA 130 -# define EVP_F_EVP_PKEY_GET1_EC_KEY 131 -# define EVP_F_EVP_PKEY_GET1_RSA 121 -# define EVP_F_EVP_PKEY_KEYGEN 146 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 -# define EVP_F_EVP_PKEY_NEW 106 -# define EVP_F_EVP_PKEY_PARAMGEN 148 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 -# define EVP_F_EVP_PKEY_SIGN 140 -# define EVP_F_EVP_PKEY_SIGN_INIT 141 -# define EVP_F_EVP_PKEY_VERIFY 142 -# define EVP_F_EVP_PKEY_VERIFY_INIT 143 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 -# define EVP_F_EVP_RIJNDAEL 126 -# define EVP_F_EVP_SIGNFINAL 107 -# define EVP_F_EVP_VERIFYFINAL 108 -# define EVP_F_FIPS_CIPHERINIT 166 -# define EVP_F_FIPS_CIPHER_CTX_COPY 170 -# define EVP_F_FIPS_CIPHER_CTX_CTRL 167 -# define EVP_F_FIPS_CIPHER_CTX_SET_KEY_LENGTH 171 -# define EVP_F_FIPS_DIGESTINIT 168 -# define EVP_F_FIPS_MD_CTX_COPY 169 -# define EVP_F_HMAC_INIT_EX 174 -# define EVP_F_INT_CTX_NEW 157 -# define EVP_F_PKCS5_PBE_KEYIVGEN 117 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 -# define EVP_F_PKCS8_SET_BROKEN 112 -# define EVP_F_PKEY_SET_TYPE 158 -# define EVP_F_RC2_MAGIC_TO_METH 109 -# define EVP_F_RC5_CTRL 125 - -/* Reason codes. */ -# define EVP_R_AES_IV_SETUP_FAILED 162 -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_ASN1_LIB 140 -# define EVP_R_BAD_BLOCK_LENGTH 136 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BAD_KEY_LENGTH 137 -# define EVP_R_BN_DECODE_ERROR 112 -# define EVP_R_BN_PUBKEY_ERROR 113 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_DISABLED_FOR_FIPS 163 -# define EVP_R_ENCODE_ERROR 115 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_ERROR_SETTING_FIPS_MODE 166 -# define EVP_R_EVP_PBE_CIPHERINIT_ERROR 119 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_ECDSA_KEY 141 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_FIPS_MODE 168 -# define EVP_R_INVALID_KEY 171 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_IV_TOO_LARGE 102 -# define EVP_R_KEYGEN_FAILURE 120 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_DSA_PARAMETERS 116 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_NO_SIGN_FUNCTION_CONFIGURED 104 -# define EVP_R_NO_VERIFY_FUNCTION_CONFIGURED 105 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATON_NOT_INITIALIZED 151 -# define EVP_R_PKCS8_UNKNOWN_BROKEN_TYPE 117 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_TOO_LARGE 164 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNSUPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 -# define EVP_R_WRONG_PUBLIC_KEY_TYPE 110 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/3rdparty/openssl/include/openssl/hmac.h b/3rdparty/openssl/include/openssl/hmac.h deleted file mode 100644 index b8b55cd..0000000 --- a/3rdparty/openssl/include/openssl/hmac.h +++ /dev/null @@ -1,109 +0,0 @@ -/* crypto/hmac/hmac.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -#ifndef HEADER_HMAC_H -# define HEADER_HMAC_H - -# include - -# ifdef OPENSSL_NO_HMAC -# error HMAC is disabled. -# endif - -# include - -# define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct hmac_ctx_st { - const EVP_MD *md; - EVP_MD_CTX md_ctx; - EVP_MD_CTX i_ctx; - EVP_MD_CTX o_ctx; - unsigned int key_length; - unsigned char key[HMAC_MAX_MD_CBLOCK]; -} HMAC_CTX; - -# define HMAC_size(e) (EVP_MD_size((e)->md)) - -void HMAC_CTX_init(HMAC_CTX *ctx); -void HMAC_CTX_cleanup(HMAC_CTX *ctx); - -/* deprecated */ -# define HMAC_cleanup(ctx) HMAC_CTX_cleanup(ctx) - -/* deprecated */ -int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md); -int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md, ENGINE *impl); -int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len); -int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len); -unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, - const unsigned char *d, size_t n, unsigned char *md, - unsigned int *md_len); -int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); - -void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/idea.h b/3rdparty/openssl/include/openssl/idea.h deleted file mode 100644 index 6075984..0000000 --- a/3rdparty/openssl/include/openssl/idea.h +++ /dev/null @@ -1,105 +0,0 @@ -/* crypto/idea/idea.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_IDEA_H -# define HEADER_IDEA_H - -# include /* IDEA_INT, OPENSSL_NO_IDEA */ - -# ifdef OPENSSL_NO_IDEA -# error IDEA is disabled. -# endif - -# define IDEA_ENCRYPT 1 -# define IDEA_DECRYPT 0 - -# define IDEA_BLOCK 8 -# define IDEA_KEY_LENGTH 16 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct idea_key_st { - IDEA_INT data[9][6]; -} IDEA_KEY_SCHEDULE; - -const char *idea_options(void); -void idea_ecb_encrypt(const unsigned char *in, unsigned char *out, - IDEA_KEY_SCHEDULE *ks); -# ifdef OPENSSL_FIPS -void private_idea_set_encrypt_key(const unsigned char *key, - IDEA_KEY_SCHEDULE *ks); -# endif -void idea_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); -void idea_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); -void idea_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int enc); -void idea_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num, int enc); -void idea_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num); -void idea_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/krb5_asn.h b/3rdparty/openssl/include/openssl/krb5_asn.h deleted file mode 100644 index 9cf5a26..0000000 --- a/3rdparty/openssl/include/openssl/krb5_asn.h +++ /dev/null @@ -1,240 +0,0 @@ -/* krb5_asn.h */ -/* - * Written by Vern Staats for the OpenSSL project, ** - * using ocsp/{*.h,*asn*.c} as a starting point - */ - -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_KRB5_ASN_H -# define HEADER_KRB5_ASN_H - -/* - * #include - */ -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * ASN.1 from Kerberos RFC 1510 - */ - -/*- EncryptedData ::= SEQUENCE { - * etype[0] INTEGER, -- EncryptionType - * kvno[1] INTEGER OPTIONAL, - * cipher[2] OCTET STRING -- ciphertext - * } - */ -typedef struct krb5_encdata_st { - ASN1_INTEGER *etype; - ASN1_INTEGER *kvno; - ASN1_OCTET_STRING *cipher; -} KRB5_ENCDATA; - -DECLARE_STACK_OF(KRB5_ENCDATA) - -/*- PrincipalName ::= SEQUENCE { - * name-type[0] INTEGER, - * name-string[1] SEQUENCE OF GeneralString - * } - */ -typedef struct krb5_princname_st { - ASN1_INTEGER *nametype; - STACK_OF(ASN1_GENERALSTRING) *namestring; -} KRB5_PRINCNAME; - -DECLARE_STACK_OF(KRB5_PRINCNAME) - -/*- Ticket ::= [APPLICATION 1] SEQUENCE { - * tkt-vno[0] INTEGER, - * realm[1] Realm, - * sname[2] PrincipalName, - * enc-part[3] EncryptedData - * } - */ -typedef struct krb5_tktbody_st { - ASN1_INTEGER *tktvno; - ASN1_GENERALSTRING *realm; - KRB5_PRINCNAME *sname; - KRB5_ENCDATA *encdata; -} KRB5_TKTBODY; - -typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET; -DECLARE_STACK_OF(KRB5_TKTBODY) - -/*- AP-REQ ::= [APPLICATION 14] SEQUENCE { - * pvno[0] INTEGER, - * msg-type[1] INTEGER, - * ap-options[2] APOptions, - * ticket[3] Ticket, - * authenticator[4] EncryptedData - * } - * - * APOptions ::= BIT STRING { - * reserved(0), use-session-key(1), mutual-required(2) } - */ -typedef struct krb5_ap_req_st { - ASN1_INTEGER *pvno; - ASN1_INTEGER *msgtype; - ASN1_BIT_STRING *apoptions; - KRB5_TICKET *ticket; - KRB5_ENCDATA *authenticator; -} KRB5_APREQBODY; - -typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ; -DECLARE_STACK_OF(KRB5_APREQBODY) - -/* Authenticator Stuff */ - -/*- Checksum ::= SEQUENCE { - * cksumtype[0] INTEGER, - * checksum[1] OCTET STRING - * } - */ -typedef struct krb5_checksum_st { - ASN1_INTEGER *ctype; - ASN1_OCTET_STRING *checksum; -} KRB5_CHECKSUM; - -DECLARE_STACK_OF(KRB5_CHECKSUM) - -/*- EncryptionKey ::= SEQUENCE { - * keytype[0] INTEGER, - * keyvalue[1] OCTET STRING - * } - */ -typedef struct krb5_encryptionkey_st { - ASN1_INTEGER *ktype; - ASN1_OCTET_STRING *keyvalue; -} KRB5_ENCKEY; - -DECLARE_STACK_OF(KRB5_ENCKEY) - -/*- AuthorizationData ::= SEQUENCE OF SEQUENCE { - * ad-type[0] INTEGER, - * ad-data[1] OCTET STRING - * } - */ -typedef struct krb5_authorization_st { - ASN1_INTEGER *adtype; - ASN1_OCTET_STRING *addata; -} KRB5_AUTHDATA; - -DECLARE_STACK_OF(KRB5_AUTHDATA) - -/*- -- Unencrypted authenticator - * Authenticator ::= [APPLICATION 2] SEQUENCE { - * authenticator-vno[0] INTEGER, - * crealm[1] Realm, - * cname[2] PrincipalName, - * cksum[3] Checksum OPTIONAL, - * cusec[4] INTEGER, - * ctime[5] KerberosTime, - * subkey[6] EncryptionKey OPTIONAL, - * seq-number[7] INTEGER OPTIONAL, - * authorization-data[8] AuthorizationData OPTIONAL - * } - */ -typedef struct krb5_authenticator_st { - ASN1_INTEGER *avno; - ASN1_GENERALSTRING *crealm; - KRB5_PRINCNAME *cname; - KRB5_CHECKSUM *cksum; - ASN1_INTEGER *cusec; - ASN1_GENERALIZEDTIME *ctime; - KRB5_ENCKEY *subkey; - ASN1_INTEGER *seqnum; - KRB5_AUTHDATA *authorization; -} KRB5_AUTHENTBODY; - -typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT; -DECLARE_STACK_OF(KRB5_AUTHENTBODY) - -/*- DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) = - * type *name##_new(void); - * void name##_free(type *a); - * DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) = - * DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) = - * type *d2i_##name(type **a, const unsigned char **in, long len); - * int i2d_##name(type *a, unsigned char **out); - * DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it - */ - -DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA) -DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME) -DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_TICKET) -DECLARE_ASN1_FUNCTIONS(KRB5_APREQ) - -DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM) -DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY) -DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENT) - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/kssl.h b/3rdparty/openssl/include/openssl/kssl.h deleted file mode 100644 index ae8a51f..0000000 --- a/3rdparty/openssl/include/openssl/kssl.h +++ /dev/null @@ -1,197 +0,0 @@ -/* ssl/kssl.h */ -/* - * Written by Vern Staats for the OpenSSL project - * 2000. project 2000. - */ -/* ==================================================================== - * Copyright (c) 2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -/* - ** 19990701 VRS Started. - */ - -#ifndef KSSL_H -# define KSSL_H - -# include - -# ifndef OPENSSL_NO_KRB5 - -# include -# include -# include -# ifdef OPENSSL_SYS_WIN32 -/* - * These can sometimes get redefined indirectly by krb5 header files after - * they get undefed in ossl_typ.h - */ -# undef X509_NAME -# undef X509_EXTENSIONS -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Depending on which KRB5 implementation used, some types from - * the other may be missing. Resolve that here and now - */ -# ifdef KRB5_HEIMDAL -typedef unsigned char krb5_octet; -# define FAR -# else - -# ifndef FAR -# define FAR -# endif - -# endif - -/*- - * Uncomment this to debug kssl problems or - * to trace usage of the Kerberos session key - * - * #define KSSL_DEBUG - */ - -# ifndef KRB5SVC -# define KRB5SVC "host" -# endif - -# ifndef KRB5KEYTAB -# define KRB5KEYTAB "/etc/krb5.keytab" -# endif - -# ifndef KRB5SENDAUTH -# define KRB5SENDAUTH 1 -# endif - -# ifndef KRB5CHECKAUTH -# define KRB5CHECKAUTH 1 -# endif - -# ifndef KSSL_CLOCKSKEW -# define KSSL_CLOCKSKEW 300; -# endif - -# define KSSL_ERR_MAX 255 -typedef struct kssl_err_st { - int reason; - char text[KSSL_ERR_MAX + 1]; -} KSSL_ERR; - -/*- Context for passing - * (1) Kerberos session key to SSL, and - * (2) Config data between application and SSL lib - */ -typedef struct kssl_ctx_st { - /* used by: disposition: */ - char *service_name; /* C,S default ok (kssl) */ - char *service_host; /* C input, REQUIRED */ - char *client_princ; /* S output from krb5 ticket */ - char *keytab_file; /* S NULL (/etc/krb5.keytab) */ - char *cred_cache; /* C NULL (default) */ - krb5_enctype enctype; - int length; - krb5_octet FAR *key; -} KSSL_CTX; - -# define KSSL_CLIENT 1 -# define KSSL_SERVER 2 -# define KSSL_SERVICE 3 -# define KSSL_KEYTAB 4 - -# define KSSL_CTX_OK 0 -# define KSSL_CTX_ERR 1 -# define KSSL_NOMEM 2 - -/* Public (for use by applications that use OpenSSL with Kerberos 5 support */ -krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text); -KSSL_CTX *kssl_ctx_new(void); -KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx); -void kssl_ctx_show(KSSL_CTX *kssl_ctx); -krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which, - krb5_data *realm, krb5_data *entity, - int nentities); -krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp, - krb5_data *authenp, KSSL_ERR *kssl_err); -krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata, - krb5_ticket_times *ttimes, KSSL_ERR *kssl_err); -krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session); -void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text); -void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data); -krb5_error_code kssl_build_principal_2(krb5_context context, - krb5_principal *princ, int rlen, - const char *realm, int slen, - const char *svc, int hlen, - const char *host); -krb5_error_code kssl_validate_times(krb5_timestamp atime, - krb5_ticket_times *ttimes); -krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp, - krb5_timestamp *atimep, - KSSL_ERR *kssl_err); -unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn); - -void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx); -KSSL_CTX *SSL_get0_kssl_ctx(SSL *s); -char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx); - -#ifdef __cplusplus -} -#endif -# endif /* OPENSSL_NO_KRB5 */ -#endif /* KSSL_H */ diff --git a/3rdparty/openssl/include/openssl/lhash.h b/3rdparty/openssl/include/openssl/lhash.h deleted file mode 100644 index b6c328b..0000000 --- a/3rdparty/openssl/include/openssl/lhash.h +++ /dev/null @@ -1,240 +0,0 @@ -/* crypto/lhash/lhash.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -/* - * Header for dynamic hash table routines Author - Eric Young - */ - -#ifndef HEADER_LHASH_H -# define HEADER_LHASH_H - -# include -# ifndef OPENSSL_NO_FP_API -# include -# endif - -# ifndef OPENSSL_NO_BIO -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct lhash_node_st { - void *data; - struct lhash_node_st *next; -# ifndef OPENSSL_NO_HASH_COMP - unsigned long hash; -# endif -} LHASH_NODE; - -typedef int (*LHASH_COMP_FN_TYPE) (const void *, const void *); -typedef unsigned long (*LHASH_HASH_FN_TYPE) (const void *); -typedef void (*LHASH_DOALL_FN_TYPE) (void *); -typedef void (*LHASH_DOALL_ARG_FN_TYPE) (void *, void *); - -/* - * Macros for declaring and implementing type-safe wrappers for LHASH - * callbacks. This way, callbacks can be provided to LHASH structures without - * function pointer casting and the macro-defined callbacks provide - * per-variable casting before deferring to the underlying type-specific - * callbacks. NB: It is possible to place a "static" in front of both the - * DECLARE and IMPLEMENT macros if the functions are strictly internal. - */ - -/* First: "hash" functions */ -# define DECLARE_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *); -# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *arg) { \ - const o_type *a = arg; \ - return name##_hash(a); } -# define LHASH_HASH_FN(name) name##_LHASH_HASH - -/* Second: "compare" functions */ -# define DECLARE_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *, const void *); -# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ - const o_type *a = arg1; \ - const o_type *b = arg2; \ - return name##_cmp(a,b); } -# define LHASH_COMP_FN(name) name##_LHASH_COMP - -/* Third: "doall" functions */ -# define DECLARE_LHASH_DOALL_FN(name, o_type) \ - void name##_LHASH_DOALL(void *); -# define IMPLEMENT_LHASH_DOALL_FN(name, o_type) \ - void name##_LHASH_DOALL(void *arg) { \ - o_type *a = arg; \ - name##_doall(a); } -# define LHASH_DOALL_FN(name) name##_LHASH_DOALL - -/* Fourth: "doall_arg" functions */ -# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *, void *); -# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ - o_type *a = arg1; \ - a_type *b = arg2; \ - name##_doall_arg(a, b); } -# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG - -typedef struct lhash_st { - LHASH_NODE **b; - LHASH_COMP_FN_TYPE comp; - LHASH_HASH_FN_TYPE hash; - unsigned int num_nodes; - unsigned int num_alloc_nodes; - unsigned int p; - unsigned int pmax; - unsigned long up_load; /* load times 256 */ - unsigned long down_load; /* load times 256 */ - unsigned long num_items; - unsigned long num_expands; - unsigned long num_expand_reallocs; - unsigned long num_contracts; - unsigned long num_contract_reallocs; - unsigned long num_hash_calls; - unsigned long num_comp_calls; - unsigned long num_insert; - unsigned long num_replace; - unsigned long num_delete; - unsigned long num_no_delete; - unsigned long num_retrieve; - unsigned long num_retrieve_miss; - unsigned long num_hash_comps; - int error; -} _LHASH; /* Do not use _LHASH directly, use LHASH_OF - * and friends */ - -# define LH_LOAD_MULT 256 - -/* - * Indicates a malloc() error in the last call, this is only bad in - * lh_insert(). - */ -# define lh_error(lh) ((lh)->error) - -_LHASH *lh_new(LHASH_HASH_FN_TYPE h, LHASH_COMP_FN_TYPE c); -void lh_free(_LHASH *lh); -void *lh_insert(_LHASH *lh, void *data); -void *lh_delete(_LHASH *lh, const void *data); -void *lh_retrieve(_LHASH *lh, const void *data); -void lh_doall(_LHASH *lh, LHASH_DOALL_FN_TYPE func); -void lh_doall_arg(_LHASH *lh, LHASH_DOALL_ARG_FN_TYPE func, void *arg); -unsigned long lh_strhash(const char *c); -unsigned long lh_num_items(const _LHASH *lh); - -# ifndef OPENSSL_NO_FP_API -void lh_stats(const _LHASH *lh, FILE *out); -void lh_node_stats(const _LHASH *lh, FILE *out); -void lh_node_usage_stats(const _LHASH *lh, FILE *out); -# endif - -# ifndef OPENSSL_NO_BIO -void lh_stats_bio(const _LHASH *lh, BIO *out); -void lh_node_stats_bio(const _LHASH *lh, BIO *out); -void lh_node_usage_stats_bio(const _LHASH *lh, BIO *out); -# endif - -/* Type checking... */ - -# define LHASH_OF(type) struct lhash_st_##type - -# define DECLARE_LHASH_OF(type) LHASH_OF(type) { int dummy; } - -# define CHECKED_LHASH_OF(type,lh) \ - ((_LHASH *)CHECKED_PTR_OF(LHASH_OF(type),lh)) - -/* Define wrapper functions. */ -# define LHM_lh_new(type, name) \ - ((LHASH_OF(type) *)lh_new(LHASH_HASH_FN(name), LHASH_COMP_FN(name))) -# define LHM_lh_error(type, lh) \ - lh_error(CHECKED_LHASH_OF(type,lh)) -# define LHM_lh_insert(type, lh, inst) \ - ((type *)lh_insert(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_retrieve(type, lh, inst) \ - ((type *)lh_retrieve(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_delete(type, lh, inst) \ - ((type *)lh_delete(CHECKED_LHASH_OF(type, lh), \ - CHECKED_PTR_OF(type, inst))) -# define LHM_lh_doall(type, lh,fn) lh_doall(CHECKED_LHASH_OF(type, lh), fn) -# define LHM_lh_doall_arg(type, lh, fn, arg_type, arg) \ - lh_doall_arg(CHECKED_LHASH_OF(type, lh), fn, CHECKED_PTR_OF(arg_type, arg)) -# define LHM_lh_num_items(type, lh) lh_num_items(CHECKED_LHASH_OF(type, lh)) -# define LHM_lh_down_load(type, lh) (CHECKED_LHASH_OF(type, lh)->down_load) -# define LHM_lh_node_stats_bio(type, lh, out) \ - lh_node_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_node_usage_stats_bio(type, lh, out) \ - lh_node_usage_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_stats_bio(type, lh, out) \ - lh_stats_bio(CHECKED_LHASH_OF(type, lh), out) -# define LHM_lh_free(type, lh) lh_free(CHECKED_LHASH_OF(type, lh)) - -DECLARE_LHASH_OF(OPENSSL_STRING); -DECLARE_LHASH_OF(OPENSSL_CSTRING); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/md4.h b/3rdparty/openssl/include/openssl/md4.h deleted file mode 100644 index 11fd712..0000000 --- a/3rdparty/openssl/include/openssl/md4.h +++ /dev/null @@ -1,119 +0,0 @@ -/* crypto/md4/md4.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_MD4_H -# define HEADER_MD4_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_NO_MD4 -# error MD4 is disabled. -# endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD4_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! MD4_LONG_LOG2 has to be defined along. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -# if defined(__LP32__) -# define MD4_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define MD4_LONG unsigned long -# define MD4_LONG_LOG2 3 -/* - * _CRAY note. I could declare short, but I have no idea what impact - * does it have on performance on none-T3E machines. I could declare - * int, but at least on C90 sizeof(int) can be chosen at compile time. - * So I've chosen long... - * - */ -# else -# define MD4_LONG unsigned int -# endif - -# define MD4_CBLOCK 64 -# define MD4_LBLOCK (MD4_CBLOCK/4) -# define MD4_DIGEST_LENGTH 16 - -typedef struct MD4state_st { - MD4_LONG A, B, C, D; - MD4_LONG Nl, Nh; - MD4_LONG data[MD4_LBLOCK]; - unsigned int num; -} MD4_CTX; - -# ifdef OPENSSL_FIPS -int private_MD4_Init(MD4_CTX *c); -# endif -int MD4_Init(MD4_CTX *c); -int MD4_Update(MD4_CTX *c, const void *data, size_t len); -int MD4_Final(unsigned char *md, MD4_CTX *c); -unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); -void MD4_Transform(MD4_CTX *c, const unsigned char *b); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/md5.h b/3rdparty/openssl/include/openssl/md5.h deleted file mode 100644 index 2659038..0000000 --- a/3rdparty/openssl/include/openssl/md5.h +++ /dev/null @@ -1,119 +0,0 @@ -/* crypto/md5/md5.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_MD5_H -# define HEADER_MD5_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_NO_MD5 -# error MD5 is disabled. -# endif - -/* - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD5_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! MD5_LONG_LOG2 has to be defined along. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -# if defined(__LP32__) -# define MD5_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define MD5_LONG unsigned long -# define MD5_LONG_LOG2 3 -/* - * _CRAY note. I could declare short, but I have no idea what impact - * does it have on performance on none-T3E machines. I could declare - * int, but at least on C90 sizeof(int) can be chosen at compile time. - * So I've chosen long... - * - */ -# else -# define MD5_LONG unsigned int -# endif - -# define MD5_CBLOCK 64 -# define MD5_LBLOCK (MD5_CBLOCK/4) -# define MD5_DIGEST_LENGTH 16 - -typedef struct MD5state_st { - MD5_LONG A, B, C, D; - MD5_LONG Nl, Nh; - MD5_LONG data[MD5_LBLOCK]; - unsigned int num; -} MD5_CTX; - -# ifdef OPENSSL_FIPS -int private_MD5_Init(MD5_CTX *c); -# endif -int MD5_Init(MD5_CTX *c); -int MD5_Update(MD5_CTX *c, const void *data, size_t len); -int MD5_Final(unsigned char *md, MD5_CTX *c); -unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); -void MD5_Transform(MD5_CTX *c, const unsigned char *b); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/mdc2.h b/3rdparty/openssl/include/openssl/mdc2.h deleted file mode 100644 index 7efe53b..0000000 --- a/3rdparty/openssl/include/openssl/mdc2.h +++ /dev/null @@ -1,94 +0,0 @@ -/* crypto/mdc2/mdc2.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_MDC2_H -# define HEADER_MDC2_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_NO_MDC2 -# error MDC2 is disabled. -# endif - -# define MDC2_BLOCK 8 -# define MDC2_DIGEST_LENGTH 16 - -typedef struct mdc2_ctx_st { - unsigned int num; - unsigned char data[MDC2_BLOCK]; - DES_cblock h, hh; - int pad_type; /* either 1 or 2, default 1 */ -} MDC2_CTX; - -# ifdef OPENSSL_FIPS -int private_MDC2_Init(MDC2_CTX *c); -# endif -int MDC2_Init(MDC2_CTX *c); -int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); -int MDC2_Final(unsigned char *md, MDC2_CTX *c); -unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/modes.h b/3rdparty/openssl/include/openssl/modes.h deleted file mode 100644 index fd48849..0000000 --- a/3rdparty/openssl/include/openssl/modes.h +++ /dev/null @@ -1,163 +0,0 @@ -/* ==================================================================== - * Copyright (c) 2008 The OpenSSL Project. All rights reserved. - * - * Rights for redistribution and usage in source and binary - * forms are granted according to the OpenSSL license. - */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif -typedef void (*block128_f) (const unsigned char in[16], - unsigned char out[16], const void *key); - -typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int enc); - -typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16]); - -typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16], - unsigned char cmac[16]); - -void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); - -void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], unsigned int *num, - block128_f block); - -void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], - unsigned int *num, ctr128_f ctr); - -void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - block128_f block); - -void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, - size_t bits, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); - -size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -typedef struct gcm128_context GCM128_CONTEXT; - -GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); -void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); -void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, - size_t len); -int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); - -typedef struct ccm128_context CCM128_CONTEXT; - -void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, - unsigned int M, unsigned int L, void *key, - block128_f block); -int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, - size_t nlen, size_t mlen); -void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, - size_t alen); -int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); - -typedef struct xts128_context XTS128_CONTEXT; - -int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, - const unsigned char iv[16], - const unsigned char *inp, unsigned char *out, - size_t len, int enc); - -size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); - -size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); - -#ifdef __cplusplus -} -#endif diff --git a/3rdparty/openssl/include/openssl/obj_mac.h b/3rdparty/openssl/include/openssl/obj_mac.h deleted file mode 100644 index 779c309..0000000 --- a/3rdparty/openssl/include/openssl/obj_mac.h +++ /dev/null @@ -1,4194 +0,0 @@ -/* crypto/objects/obj_mac.h */ - -/* - * THIS FILE IS GENERATED FROM objects.txt by objects.pl via the following - * command: perl objects.pl objects.txt obj_mac.num obj_mac.h - */ - -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#define SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_itu_t "ITU-T" -#define LN_itu_t "itu-t" -#define NID_itu_t 645 -#define OBJ_itu_t 0L - -#define NID_ccitt 404 -#define OBJ_ccitt OBJ_itu_t - -#define SN_iso "ISO" -#define LN_iso "iso" -#define NID_iso 181 -#define OBJ_iso 1L - -#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" -#define LN_joint_iso_itu_t "joint-iso-itu-t" -#define NID_joint_iso_itu_t 646 -#define OBJ_joint_iso_itu_t 2L - -#define NID_joint_iso_ccitt 393 -#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t - -#define SN_member_body "member-body" -#define LN_member_body "ISO Member Body" -#define NID_member_body 182 -#define OBJ_member_body OBJ_iso,2L - -#define SN_identified_organization "identified-organization" -#define NID_identified_organization 676 -#define OBJ_identified_organization OBJ_iso,3L - -#define SN_hmac_md5 "HMAC-MD5" -#define LN_hmac_md5 "hmac-md5" -#define NID_hmac_md5 780 -#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L - -#define SN_hmac_sha1 "HMAC-SHA1" -#define LN_hmac_sha1 "hmac-sha1" -#define NID_hmac_sha1 781 -#define OBJ_hmac_sha1 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,2L - -#define SN_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#define SN_international_organizations "international-organizations" -#define LN_international_organizations "International Organizations" -#define NID_international_organizations 647 -#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L - -#define SN_wap "wap" -#define NID_wap 678 -#define OBJ_wap OBJ_international_organizations,43L - -#define SN_wap_wsg "wap-wsg" -#define NID_wap_wsg 679 -#define OBJ_wap_wsg OBJ_wap,1L - -#define SN_selected_attribute_types "selected-attribute-types" -#define LN_selected_attribute_types "Selected Attribute Types" -#define NID_selected_attribute_types 394 -#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L - -#define SN_clearance "clearance" -#define NID_clearance 395 -#define OBJ_clearance OBJ_selected_attribute_types,55L - -#define SN_ISO_US "ISO-US" -#define LN_ISO_US "ISO US Member Body" -#define NID_ISO_US 183 -#define OBJ_ISO_US OBJ_member_body,840L - -#define SN_X9_57 "X9-57" -#define LN_X9_57 "X9.57" -#define NID_X9_57 184 -#define OBJ_X9_57 OBJ_ISO_US,10040L - -#define SN_X9cm "X9cm" -#define LN_X9cm "X9.57 CM ?" -#define NID_X9cm 185 -#define OBJ_X9cm OBJ_X9_57,4L - -#define SN_dsa "DSA" -#define LN_dsa "dsaEncryption" -#define NID_dsa 116 -#define OBJ_dsa OBJ_X9cm,1L - -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 OBJ_X9cm,3L - -#define SN_ansi_X9_62 "ansi-X9-62" -#define LN_ansi_X9_62 "ANSI X9.62" -#define NID_ansi_X9_62 405 -#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L - -#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L - -#define SN_X9_62_prime_field "prime-field" -#define NID_X9_62_prime_field 406 -#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L - -#define SN_X9_62_characteristic_two_field "characteristic-two-field" -#define NID_X9_62_characteristic_two_field 407 -#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L - -#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" -#define NID_X9_62_id_characteristic_two_basis 680 -#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L - -#define SN_X9_62_onBasis "onBasis" -#define NID_X9_62_onBasis 681 -#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L - -#define SN_X9_62_tpBasis "tpBasis" -#define NID_X9_62_tpBasis 682 -#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L - -#define SN_X9_62_ppBasis "ppBasis" -#define NID_X9_62_ppBasis 683 -#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L - -#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L - -#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" -#define NID_X9_62_id_ecPublicKey 408 -#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L - -#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L - -#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L - -#define SN_X9_62_c2pnb163v1 "c2pnb163v1" -#define NID_X9_62_c2pnb163v1 684 -#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L - -#define SN_X9_62_c2pnb163v2 "c2pnb163v2" -#define NID_X9_62_c2pnb163v2 685 -#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L - -#define SN_X9_62_c2pnb163v3 "c2pnb163v3" -#define NID_X9_62_c2pnb163v3 686 -#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L - -#define SN_X9_62_c2pnb176v1 "c2pnb176v1" -#define NID_X9_62_c2pnb176v1 687 -#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L - -#define SN_X9_62_c2tnb191v1 "c2tnb191v1" -#define NID_X9_62_c2tnb191v1 688 -#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L - -#define SN_X9_62_c2tnb191v2 "c2tnb191v2" -#define NID_X9_62_c2tnb191v2 689 -#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L - -#define SN_X9_62_c2tnb191v3 "c2tnb191v3" -#define NID_X9_62_c2tnb191v3 690 -#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L - -#define SN_X9_62_c2onb191v4 "c2onb191v4" -#define NID_X9_62_c2onb191v4 691 -#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L - -#define SN_X9_62_c2onb191v5 "c2onb191v5" -#define NID_X9_62_c2onb191v5 692 -#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L - -#define SN_X9_62_c2pnb208w1 "c2pnb208w1" -#define NID_X9_62_c2pnb208w1 693 -#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L - -#define SN_X9_62_c2tnb239v1 "c2tnb239v1" -#define NID_X9_62_c2tnb239v1 694 -#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L - -#define SN_X9_62_c2tnb239v2 "c2tnb239v2" -#define NID_X9_62_c2tnb239v2 695 -#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L - -#define SN_X9_62_c2tnb239v3 "c2tnb239v3" -#define NID_X9_62_c2tnb239v3 696 -#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L - -#define SN_X9_62_c2onb239v4 "c2onb239v4" -#define NID_X9_62_c2onb239v4 697 -#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L - -#define SN_X9_62_c2onb239v5 "c2onb239v5" -#define NID_X9_62_c2onb239v5 698 -#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L - -#define SN_X9_62_c2pnb272w1 "c2pnb272w1" -#define NID_X9_62_c2pnb272w1 699 -#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L - -#define SN_X9_62_c2pnb304w1 "c2pnb304w1" -#define NID_X9_62_c2pnb304w1 700 -#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L - -#define SN_X9_62_c2tnb359v1 "c2tnb359v1" -#define NID_X9_62_c2tnb359v1 701 -#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L - -#define SN_X9_62_c2pnb368w1 "c2pnb368w1" -#define NID_X9_62_c2pnb368w1 702 -#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L - -#define SN_X9_62_c2tnb431r1 "c2tnb431r1" -#define NID_X9_62_c2tnb431r1 703 -#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L - -#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L - -#define SN_X9_62_prime192v1 "prime192v1" -#define NID_X9_62_prime192v1 409 -#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L - -#define SN_X9_62_prime192v2 "prime192v2" -#define NID_X9_62_prime192v2 410 -#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L - -#define SN_X9_62_prime192v3 "prime192v3" -#define NID_X9_62_prime192v3 411 -#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L - -#define SN_X9_62_prime239v1 "prime239v1" -#define NID_X9_62_prime239v1 412 -#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L - -#define SN_X9_62_prime239v2 "prime239v2" -#define NID_X9_62_prime239v2 413 -#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L - -#define SN_X9_62_prime239v3 "prime239v3" -#define NID_X9_62_prime239v3 414 -#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L - -#define SN_X9_62_prime256v1 "prime256v1" -#define NID_X9_62_prime256v1 415 -#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L - -#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L - -#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" -#define NID_ecdsa_with_SHA1 416 -#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L - -#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" -#define NID_ecdsa_with_Recommended 791 -#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L - -#define SN_ecdsa_with_Specified "ecdsa-with-Specified" -#define NID_ecdsa_with_Specified 792 -#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L - -#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" -#define NID_ecdsa_with_SHA224 793 -#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L - -#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" -#define NID_ecdsa_with_SHA256 794 -#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L - -#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" -#define NID_ecdsa_with_SHA384 795 -#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L - -#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" -#define NID_ecdsa_with_SHA512 796 -#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L - -#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L - -#define SN_secp112r1 "secp112r1" -#define NID_secp112r1 704 -#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L - -#define SN_secp112r2 "secp112r2" -#define NID_secp112r2 705 -#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L - -#define SN_secp128r1 "secp128r1" -#define NID_secp128r1 706 -#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L - -#define SN_secp128r2 "secp128r2" -#define NID_secp128r2 707 -#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L - -#define SN_secp160k1 "secp160k1" -#define NID_secp160k1 708 -#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L - -#define SN_secp160r1 "secp160r1" -#define NID_secp160r1 709 -#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L - -#define SN_secp160r2 "secp160r2" -#define NID_secp160r2 710 -#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L - -#define SN_secp192k1 "secp192k1" -#define NID_secp192k1 711 -#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L - -#define SN_secp224k1 "secp224k1" -#define NID_secp224k1 712 -#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L - -#define SN_secp224r1 "secp224r1" -#define NID_secp224r1 713 -#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L - -#define SN_secp256k1 "secp256k1" -#define NID_secp256k1 714 -#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L - -#define SN_secp384r1 "secp384r1" -#define NID_secp384r1 715 -#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L - -#define SN_secp521r1 "secp521r1" -#define NID_secp521r1 716 -#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L - -#define SN_sect113r1 "sect113r1" -#define NID_sect113r1 717 -#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L - -#define SN_sect113r2 "sect113r2" -#define NID_sect113r2 718 -#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L - -#define SN_sect131r1 "sect131r1" -#define NID_sect131r1 719 -#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L - -#define SN_sect131r2 "sect131r2" -#define NID_sect131r2 720 -#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L - -#define SN_sect163k1 "sect163k1" -#define NID_sect163k1 721 -#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L - -#define SN_sect163r1 "sect163r1" -#define NID_sect163r1 722 -#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L - -#define SN_sect163r2 "sect163r2" -#define NID_sect163r2 723 -#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L - -#define SN_sect193r1 "sect193r1" -#define NID_sect193r1 724 -#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L - -#define SN_sect193r2 "sect193r2" -#define NID_sect193r2 725 -#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L - -#define SN_sect233k1 "sect233k1" -#define NID_sect233k1 726 -#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L - -#define SN_sect233r1 "sect233r1" -#define NID_sect233r1 727 -#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L - -#define SN_sect239k1 "sect239k1" -#define NID_sect239k1 728 -#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L - -#define SN_sect283k1 "sect283k1" -#define NID_sect283k1 729 -#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L - -#define SN_sect283r1 "sect283r1" -#define NID_sect283r1 730 -#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L - -#define SN_sect409k1 "sect409k1" -#define NID_sect409k1 731 -#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L - -#define SN_sect409r1 "sect409r1" -#define NID_sect409r1 732 -#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L - -#define SN_sect571k1 "sect571k1" -#define NID_sect571k1 733 -#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L - -#define SN_sect571r1 "sect571r1" -#define NID_sect571r1 734 -#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L - -#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L - -#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" -#define NID_wap_wsg_idm_ecid_wtls1 735 -#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L - -#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" -#define NID_wap_wsg_idm_ecid_wtls3 736 -#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L - -#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" -#define NID_wap_wsg_idm_ecid_wtls4 737 -#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L - -#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" -#define NID_wap_wsg_idm_ecid_wtls5 738 -#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L - -#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" -#define NID_wap_wsg_idm_ecid_wtls6 739 -#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L - -#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" -#define NID_wap_wsg_idm_ecid_wtls7 740 -#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L - -#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" -#define NID_wap_wsg_idm_ecid_wtls8 741 -#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L - -#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" -#define NID_wap_wsg_idm_ecid_wtls9 742 -#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L - -#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" -#define NID_wap_wsg_idm_ecid_wtls10 743 -#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L - -#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" -#define NID_wap_wsg_idm_ecid_wtls11 744 -#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L - -#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" -#define NID_wap_wsg_idm_ecid_wtls12 745 -#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L - -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc OBJ_ISO_US,113533L,7L,66L,10L - -#define SN_cast5_ecb "CAST5-ECB" -#define LN_cast5_ecb "cast5-ecb" -#define NID_cast5_ecb 109 - -#define SN_cast5_cfb64 "CAST5-CFB" -#define LN_cast5_cfb64 "cast5-cfb" -#define NID_cast5_cfb64 110 - -#define SN_cast5_ofb64 "CAST5-OFB" -#define LN_cast5_ofb64 "cast5-ofb" -#define NID_cast5_ofb64 111 - -#define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -#define NID_pbeWithMD5AndCast5_CBC 112 -#define OBJ_pbeWithMD5AndCast5_CBC OBJ_ISO_US,113533L,7L,66L,12L - -#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" -#define LN_id_PasswordBasedMAC "password based MAC" -#define NID_id_PasswordBasedMAC 782 -#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L - -#define SN_id_DHBasedMac "id-DHBasedMac" -#define LN_id_DHBasedMac "Diffie-Hellman based MAC" -#define NID_id_DHBasedMac 783 -#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L - -#define SN_rsadsi "rsadsi" -#define LN_rsadsi "RSA Data Security, Inc." -#define NID_rsadsi 1 -#define OBJ_rsadsi OBJ_ISO_US,113549L - -#define SN_pkcs "pkcs" -#define LN_pkcs "RSA Data Security, Inc. PKCS" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_pkcs1 "pkcs1" -#define NID_pkcs1 186 -#define OBJ_pkcs1 OBJ_pkcs,1L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs1,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L - -#define SN_md4WithRSAEncryption "RSA-MD4" -#define LN_md4WithRSAEncryption "md4WithRSAEncryption" -#define NID_md4WithRSAEncryption 396 -#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L - -#define SN_rsaesOaep "RSAES-OAEP" -#define LN_rsaesOaep "rsaesOaep" -#define NID_rsaesOaep 919 -#define OBJ_rsaesOaep OBJ_pkcs1,7L - -#define SN_mgf1 "MGF1" -#define LN_mgf1 "mgf1" -#define NID_mgf1 911 -#define OBJ_mgf1 OBJ_pkcs1,8L - -#define SN_pSpecified "PSPECIFIED" -#define LN_pSpecified "pSpecified" -#define NID_pSpecified 935 -#define OBJ_pSpecified OBJ_pkcs1,9L - -#define SN_rsassaPss "RSASSA-PSS" -#define LN_rsassaPss "rsassaPss" -#define NID_rsassaPss 912 -#define OBJ_rsassaPss OBJ_pkcs1,10L - -#define SN_sha256WithRSAEncryption "RSA-SHA256" -#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" -#define NID_sha256WithRSAEncryption 668 -#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L - -#define SN_sha384WithRSAEncryption "RSA-SHA384" -#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" -#define NID_sha384WithRSAEncryption 669 -#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L - -#define SN_sha512WithRSAEncryption "RSA-SHA512" -#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" -#define NID_sha512WithRSAEncryption 670 -#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L - -#define SN_sha224WithRSAEncryption "RSA-SHA224" -#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" -#define NID_sha224WithRSAEncryption 671 -#define OBJ_sha224WithRSAEncryption OBJ_pkcs1,14L - -#define SN_pkcs3 "pkcs3" -#define NID_pkcs3 27 -#define OBJ_pkcs3 OBJ_pkcs,3L - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_pkcs5 "pkcs5" -#define NID_pkcs5 187 -#define OBJ_pkcs5 OBJ_pkcs,5L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,4L - -#define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -#define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -#define NID_pbeWithMD5AndRC2_CBC 169 -#define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs5,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L - -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L - -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs5,12L - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs5,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs5,14L - -#define SN_pkcs7 "pkcs7" -#define NID_pkcs7 20 -#define OBJ_pkcs7 OBJ_pkcs,7L - -#define LN_pkcs7_data "pkcs7-data" -#define NID_pkcs7_data 21 -#define OBJ_pkcs7_data OBJ_pkcs7,1L - -#define LN_pkcs7_signed "pkcs7-signedData" -#define NID_pkcs7_signed 22 -#define OBJ_pkcs7_signed OBJ_pkcs7,2L - -#define LN_pkcs7_enveloped "pkcs7-envelopedData" -#define NID_pkcs7_enveloped 23 -#define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -#define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -#define NID_pkcs7_signedAndEnveloped 24 -#define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -#define LN_pkcs7_digest "pkcs7-digestData" -#define NID_pkcs7_digest 25 -#define OBJ_pkcs7_digest OBJ_pkcs7,5L - -#define LN_pkcs7_encrypted "pkcs7-encryptedData" -#define NID_pkcs7_encrypted 26 -#define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -#define SN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#define LN_pkcs9_emailAddress "emailAddress" -#define NID_pkcs9_emailAddress 48 -#define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -#define LN_pkcs9_unstructuredName "unstructuredName" -#define NID_pkcs9_unstructuredName 49 -#define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -#define LN_pkcs9_contentType "contentType" -#define NID_pkcs9_contentType 50 -#define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -#define LN_pkcs9_messageDigest "messageDigest" -#define NID_pkcs9_messageDigest 51 -#define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -#define LN_pkcs9_signingTime "signingTime" -#define NID_pkcs9_signingTime 52 -#define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -#define LN_pkcs9_countersignature "countersignature" -#define NID_pkcs9_countersignature 53 -#define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -#define LN_pkcs9_challengePassword "challengePassword" -#define NID_pkcs9_challengePassword 54 -#define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -#define LN_pkcs9_unstructuredAddress "unstructuredAddress" -#define NID_pkcs9_unstructuredAddress 55 -#define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -#define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -#define NID_pkcs9_extCertAttributes 56 -#define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -#define SN_ext_req "extReq" -#define LN_ext_req "Extension Request" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_SMIME "SMIME" -#define LN_SMIME "S/MIME" -#define NID_SMIME 188 -#define OBJ_SMIME OBJ_pkcs9,16L - -#define SN_id_smime_mod "id-smime-mod" -#define NID_id_smime_mod 189 -#define OBJ_id_smime_mod OBJ_SMIME,0L - -#define SN_id_smime_ct "id-smime-ct" -#define NID_id_smime_ct 190 -#define OBJ_id_smime_ct OBJ_SMIME,1L - -#define SN_id_smime_aa "id-smime-aa" -#define NID_id_smime_aa 191 -#define OBJ_id_smime_aa OBJ_SMIME,2L - -#define SN_id_smime_alg "id-smime-alg" -#define NID_id_smime_alg 192 -#define OBJ_id_smime_alg OBJ_SMIME,3L - -#define SN_id_smime_cd "id-smime-cd" -#define NID_id_smime_cd 193 -#define OBJ_id_smime_cd OBJ_SMIME,4L - -#define SN_id_smime_spq "id-smime-spq" -#define NID_id_smime_spq 194 -#define OBJ_id_smime_spq OBJ_SMIME,5L - -#define SN_id_smime_cti "id-smime-cti" -#define NID_id_smime_cti 195 -#define OBJ_id_smime_cti OBJ_SMIME,6L - -#define SN_id_smime_mod_cms "id-smime-mod-cms" -#define NID_id_smime_mod_cms 196 -#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L - -#define SN_id_smime_mod_ess "id-smime-mod-ess" -#define NID_id_smime_mod_ess 197 -#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L - -#define SN_id_smime_mod_oid "id-smime-mod-oid" -#define NID_id_smime_mod_oid 198 -#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L - -#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" -#define NID_id_smime_mod_msg_v3 199 -#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L - -#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" -#define NID_id_smime_mod_ets_eSignature_88 200 -#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L - -#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" -#define NID_id_smime_mod_ets_eSignature_97 201 -#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L - -#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" -#define NID_id_smime_mod_ets_eSigPolicy_88 202 -#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L - -#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" -#define NID_id_smime_mod_ets_eSigPolicy_97 203 -#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L - -#define SN_id_smime_ct_receipt "id-smime-ct-receipt" -#define NID_id_smime_ct_receipt 204 -#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L - -#define SN_id_smime_ct_authData "id-smime-ct-authData" -#define NID_id_smime_ct_authData 205 -#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L - -#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" -#define NID_id_smime_ct_publishCert 206 -#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L - -#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" -#define NID_id_smime_ct_TSTInfo 207 -#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L - -#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" -#define NID_id_smime_ct_TDTInfo 208 -#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L - -#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" -#define NID_id_smime_ct_contentInfo 209 -#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L - -#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" -#define NID_id_smime_ct_DVCSRequestData 210 -#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L - -#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" -#define NID_id_smime_ct_DVCSResponseData 211 -#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L - -#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" -#define NID_id_smime_ct_compressedData 786 -#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L - -#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" -#define NID_id_ct_asciiTextWithCRLF 787 -#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L - -#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" -#define NID_id_smime_aa_receiptRequest 212 -#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L - -#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" -#define NID_id_smime_aa_securityLabel 213 -#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L - -#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" -#define NID_id_smime_aa_mlExpandHistory 214 -#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L - -#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" -#define NID_id_smime_aa_contentHint 215 -#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L - -#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" -#define NID_id_smime_aa_msgSigDigest 216 -#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L - -#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" -#define NID_id_smime_aa_encapContentType 217 -#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L - -#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" -#define NID_id_smime_aa_contentIdentifier 218 -#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L - -#define SN_id_smime_aa_macValue "id-smime-aa-macValue" -#define NID_id_smime_aa_macValue 219 -#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L - -#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" -#define NID_id_smime_aa_equivalentLabels 220 -#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L - -#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" -#define NID_id_smime_aa_contentReference 221 -#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L - -#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" -#define NID_id_smime_aa_encrypKeyPref 222 -#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L - -#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" -#define NID_id_smime_aa_signingCertificate 223 -#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L - -#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" -#define NID_id_smime_aa_smimeEncryptCerts 224 -#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L - -#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" -#define NID_id_smime_aa_timeStampToken 225 -#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L - -#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" -#define NID_id_smime_aa_ets_sigPolicyId 226 -#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L - -#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" -#define NID_id_smime_aa_ets_commitmentType 227 -#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L - -#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" -#define NID_id_smime_aa_ets_signerLocation 228 -#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L - -#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" -#define NID_id_smime_aa_ets_signerAttr 229 -#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L - -#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" -#define NID_id_smime_aa_ets_otherSigCert 230 -#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L - -#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" -#define NID_id_smime_aa_ets_contentTimestamp 231 -#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L - -#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" -#define NID_id_smime_aa_ets_CertificateRefs 232 -#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L - -#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" -#define NID_id_smime_aa_ets_RevocationRefs 233 -#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L - -#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" -#define NID_id_smime_aa_ets_certValues 234 -#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L - -#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" -#define NID_id_smime_aa_ets_revocationValues 235 -#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L - -#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" -#define NID_id_smime_aa_ets_escTimeStamp 236 -#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L - -#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" -#define NID_id_smime_aa_ets_certCRLTimestamp 237 -#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L - -#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" -#define NID_id_smime_aa_ets_archiveTimeStamp 238 -#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L - -#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" -#define NID_id_smime_aa_signatureType 239 -#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L - -#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" -#define NID_id_smime_aa_dvcs_dvc 240 -#define OBJ_id_smime_aa_dvcs_dvc OBJ_id_smime_aa,29L - -#define SN_id_smime_alg_ESDHwith3DES "id-smime-alg-ESDHwith3DES" -#define NID_id_smime_alg_ESDHwith3DES 241 -#define OBJ_id_smime_alg_ESDHwith3DES OBJ_id_smime_alg,1L - -#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" -#define NID_id_smime_alg_ESDHwithRC2 242 -#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L - -#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" -#define NID_id_smime_alg_3DESwrap 243 -#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L - -#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" -#define NID_id_smime_alg_RC2wrap 244 -#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L - -#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" -#define NID_id_smime_alg_ESDH 245 -#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L - -#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" -#define NID_id_smime_alg_CMS3DESwrap 246 -#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L - -#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" -#define NID_id_smime_alg_CMSRC2wrap 247 -#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L - -#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" -#define NID_id_alg_PWRI_KEK 893 -#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L - -#define SN_id_smime_cd_ldap "id-smime-cd-ldap" -#define NID_id_smime_cd_ldap 248 -#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L - -#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" -#define NID_id_smime_spq_ets_sqt_uri 249 -#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L - -#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" -#define NID_id_smime_spq_ets_sqt_unotice 250 -#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L - -#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" -#define NID_id_smime_cti_ets_proofOfOrigin 251 -#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L - -#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" -#define NID_id_smime_cti_ets_proofOfReceipt 252 -#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L - -#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" -#define NID_id_smime_cti_ets_proofOfDelivery 253 -#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L - -#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" -#define NID_id_smime_cti_ets_proofOfSender 254 -#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L - -#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" -#define NID_id_smime_cti_ets_proofOfApproval 255 -#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L - -#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" -#define NID_id_smime_cti_ets_proofOfCreation 256 -#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,6L - -#define LN_friendlyName "friendlyName" -#define NID_friendlyName 156 -#define OBJ_friendlyName OBJ_pkcs9,20L - -#define LN_localKeyID "localKeyID" -#define NID_localKeyID 157 -#define OBJ_localKeyID OBJ_pkcs9,21L - -#define SN_ms_csp_name "CSPName" -#define LN_ms_csp_name "Microsoft CSP Name" -#define NID_ms_csp_name 417 -#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L - -#define SN_LocalKeySet "LocalKeySet" -#define LN_LocalKeySet "Microsoft Local Key set" -#define NID_LocalKeySet 856 -#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L - -#define OBJ_certTypes OBJ_pkcs9,22L - -#define LN_x509Certificate "x509Certificate" -#define NID_x509Certificate 158 -#define OBJ_x509Certificate OBJ_certTypes,1L - -#define LN_sdsiCertificate "sdsiCertificate" -#define NID_sdsiCertificate 159 -#define OBJ_sdsiCertificate OBJ_certTypes,2L - -#define OBJ_crlTypes OBJ_pkcs9,23L - -#define LN_x509Crl "x509Crl" -#define NID_x509Crl 160 -#define OBJ_x509Crl OBJ_crlTypes,1L - -#define OBJ_pkcs12 OBJ_pkcs,12L - -#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L - -#define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -#define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -#define NID_pbe_WithSHA1And128BitRC4 144 -#define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids,1L - -#define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -#define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -#define NID_pbe_WithSHA1And40BitRC4 145 -#define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids,2L - -#define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -#define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -#define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids,3L - -#define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -#define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -#define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -#define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids,4L - -#define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -#define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -#define NID_pbe_WithSHA1And128BitRC2_CBC 148 -#define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids,5L - -#define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -#define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -#define NID_pbe_WithSHA1And40BitRC2_CBC 149 -#define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids,6L - -#define OBJ_pkcs12_Version1 OBJ_pkcs12,10L - -#define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1,1L - -#define LN_keyBag "keyBag" -#define NID_keyBag 150 -#define OBJ_keyBag OBJ_pkcs12_BagIds,1L - -#define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -#define NID_pkcs8ShroudedKeyBag 151 -#define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds,2L - -#define LN_certBag "certBag" -#define NID_certBag 152 -#define OBJ_certBag OBJ_pkcs12_BagIds,3L - -#define LN_crlBag "crlBag" -#define NID_crlBag 153 -#define OBJ_crlBag OBJ_pkcs12_BagIds,4L - -#define LN_secretBag "secretBag" -#define NID_secretBag 154 -#define OBJ_secretBag OBJ_pkcs12_BagIds,5L - -#define LN_safeContentsBag "safeContentsBag" -#define NID_safeContentsBag 155 -#define OBJ_safeContentsBag OBJ_pkcs12_BagIds,6L - -#define SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md4 "MD4" -#define LN_md4 "md4" -#define NID_md4 257 -#define OBJ_md4 OBJ_rsadsi,2L,4L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" -#define NID_md5_sha1 114 - -#define LN_hmacWithMD5 "hmacWithMD5" -#define NID_hmacWithMD5 797 -#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#define NID_hmacWithSHA1 163 -#define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -#define LN_hmacWithSHA224 "hmacWithSHA224" -#define NID_hmacWithSHA224 798 -#define OBJ_hmacWithSHA224 OBJ_rsadsi,2L,8L - -#define LN_hmacWithSHA256 "hmacWithSHA256" -#define NID_hmacWithSHA256 799 -#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L - -#define LN_hmacWithSHA384 "hmacWithSHA384" -#define NID_hmacWithSHA384 800 -#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L - -#define LN_hmacWithSHA512 "hmacWithSHA512" -#define NID_hmacWithSHA512 801 -#define OBJ_hmacWithSHA512 OBJ_rsadsi,2L,11L - -#define SN_rc2_cbc "RC2-CBC" -#define LN_rc2_cbc "rc2-cbc" -#define NID_rc2_cbc 37 -#define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -#define SN_rc2_ecb "RC2-ECB" -#define LN_rc2_ecb "rc2-ecb" -#define NID_rc2_ecb 38 - -#define SN_rc2_cfb64 "RC2-CFB" -#define LN_rc2_cfb64 "rc2-cfb" -#define NID_rc2_cfb64 39 - -#define SN_rc2_ofb64 "RC2-OFB" -#define LN_rc2_ofb64 "rc2-ofb" -#define NID_rc2_ofb64 40 - -#define SN_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#define SN_des_ede3_cbc "DES-EDE3-CBC" -#define LN_des_ede3_cbc "des-ede3-cbc" -#define NID_des_ede3_cbc 44 -#define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -#define SN_rc5_cbc "RC5-CBC" -#define LN_rc5_cbc "rc5-cbc" -#define NID_rc5_cbc 120 -#define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -#define SN_rc5_ecb "RC5-ECB" -#define LN_rc5_ecb "rc5-ecb" -#define NID_rc5_ecb 121 - -#define SN_rc5_cfb64 "RC5-CFB" -#define LN_rc5_cfb64 "rc5-cfb" -#define NID_rc5_cfb64 122 - -#define SN_rc5_ofb64 "RC5-OFB" -#define LN_rc5_ofb64 "rc5-ofb" -#define NID_rc5_ofb64 123 - -#define SN_ms_ext_req "msExtReq" -#define LN_ms_ext_req "Microsoft Extension Request" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -#define SN_ms_code_ind "msCodeInd" -#define LN_ms_code_ind "Microsoft Individual Code Signing" -#define NID_ms_code_ind 134 -#define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -#define SN_ms_code_com "msCodeCom" -#define LN_ms_code_com "Microsoft Commercial Code Signing" -#define NID_ms_code_com 135 -#define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -#define SN_ms_ctl_sign "msCTLSign" -#define LN_ms_ctl_sign "Microsoft Trust List Signing" -#define NID_ms_ctl_sign 136 -#define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -#define SN_ms_sgc "msSGC" -#define LN_ms_sgc "Microsoft Server Gated Crypto" -#define NID_ms_sgc 137 -#define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -#define SN_ms_efs "msEFS" -#define LN_ms_efs "Microsoft Encrypted File System" -#define NID_ms_efs 138 -#define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -#define SN_ms_smartcard_login "msSmartcardLogin" -#define LN_ms_smartcard_login "Microsoft Smartcardlogin" -#define NID_ms_smartcard_login 648 -#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L - -#define SN_ms_upn "msUPN" -#define LN_ms_upn "Microsoft Universal Principal Name" -#define NID_ms_upn 649 -#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L - -#define SN_idea_cbc "IDEA-CBC" -#define LN_idea_cbc "idea-cbc" -#define NID_idea_cbc 34 -#define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -#define SN_idea_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#define SN_bf_cbc "BF-CBC" -#define LN_bf_cbc "bf-cbc" -#define NID_bf_cbc 91 -#define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -#define SN_bf_ecb "BF-ECB" -#define LN_bf_ecb "bf-ecb" -#define NID_bf_ecb 92 - -#define SN_bf_cfb64 "BF-CFB" -#define LN_bf_cfb64 "bf-cfb" -#define NID_bf_cfb64 93 - -#define SN_bf_ofb64 "BF-OFB" -#define LN_bf_ofb64 "bf-ofb" -#define NID_bf_ofb64 94 - -#define SN_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_pkix_mod "id-pkix-mod" -#define NID_id_pkix_mod 258 -#define OBJ_id_pkix_mod OBJ_id_pkix,0L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_qt "id-qt" -#define NID_id_qt 259 -#define OBJ_id_qt OBJ_id_pkix,2L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -#define SN_id_it "id-it" -#define NID_id_it 260 -#define OBJ_id_it OBJ_id_pkix,4L - -#define SN_id_pkip "id-pkip" -#define NID_id_pkip 261 -#define OBJ_id_pkip OBJ_id_pkix,5L - -#define SN_id_alg "id-alg" -#define NID_id_alg 262 -#define OBJ_id_alg OBJ_id_pkix,6L - -#define SN_id_cmc "id-cmc" -#define NID_id_cmc 263 -#define OBJ_id_cmc OBJ_id_pkix,7L - -#define SN_id_on "id-on" -#define NID_id_on 264 -#define OBJ_id_on OBJ_id_pkix,8L - -#define SN_id_pda "id-pda" -#define NID_id_pda 265 -#define OBJ_id_pda OBJ_id_pkix,9L - -#define SN_id_aca "id-aca" -#define NID_id_aca 266 -#define OBJ_id_aca OBJ_id_pkix,10L - -#define SN_id_qcs "id-qcs" -#define NID_id_qcs 267 -#define OBJ_id_qcs OBJ_id_pkix,11L - -#define SN_id_cct "id-cct" -#define NID_id_cct 268 -#define OBJ_id_cct OBJ_id_pkix,12L - -#define SN_id_ppl "id-ppl" -#define NID_id_ppl 662 -#define OBJ_id_ppl OBJ_id_pkix,21L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" -#define NID_id_pkix1_explicit_88 269 -#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L - -#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" -#define NID_id_pkix1_implicit_88 270 -#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L - -#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" -#define NID_id_pkix1_explicit_93 271 -#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L - -#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" -#define NID_id_pkix1_implicit_93 272 -#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L - -#define SN_id_mod_crmf "id-mod-crmf" -#define NID_id_mod_crmf 273 -#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L - -#define SN_id_mod_cmc "id-mod-cmc" -#define NID_id_mod_cmc 274 -#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L - -#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" -#define NID_id_mod_kea_profile_88 275 -#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L - -#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" -#define NID_id_mod_kea_profile_93 276 -#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L - -#define SN_id_mod_cmp "id-mod-cmp" -#define NID_id_mod_cmp 277 -#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L - -#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" -#define NID_id_mod_qualified_cert_88 278 -#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L - -#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" -#define NID_id_mod_qualified_cert_93 279 -#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L - -#define SN_id_mod_attribute_cert "id-mod-attribute-cert" -#define NID_id_mod_attribute_cert 280 -#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L - -#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" -#define NID_id_mod_timestamp_protocol 281 -#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L - -#define SN_id_mod_ocsp "id-mod-ocsp" -#define NID_id_mod_ocsp 282 -#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L - -#define SN_id_mod_dvcs "id-mod-dvcs" -#define NID_id_mod_dvcs 283 -#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L - -#define SN_id_mod_cmp2000 "id-mod-cmp2000" -#define NID_id_mod_cmp2000 284 -#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L - -#define SN_info_access "authorityInfoAccess" -#define LN_info_access "Authority Information Access" -#define NID_info_access 177 -#define OBJ_info_access OBJ_id_pe,1L - -#define SN_biometricInfo "biometricInfo" -#define LN_biometricInfo "Biometric Info" -#define NID_biometricInfo 285 -#define OBJ_biometricInfo OBJ_id_pe,2L - -#define SN_qcStatements "qcStatements" -#define NID_qcStatements 286 -#define OBJ_qcStatements OBJ_id_pe,3L - -#define SN_ac_auditEntity "ac-auditEntity" -#define NID_ac_auditEntity 287 -#define OBJ_ac_auditEntity OBJ_id_pe,4L - -#define SN_ac_targeting "ac-targeting" -#define NID_ac_targeting 288 -#define OBJ_ac_targeting OBJ_id_pe,5L - -#define SN_aaControls "aaControls" -#define NID_aaControls 289 -#define OBJ_aaControls OBJ_id_pe,6L - -#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" -#define NID_sbgp_ipAddrBlock 290 -#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L - -#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" -#define NID_sbgp_autonomousSysNum 291 -#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L - -#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" -#define NID_sbgp_routerIdentifier 292 -#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L - -#define SN_ac_proxying "ac-proxying" -#define NID_ac_proxying 397 -#define OBJ_ac_proxying OBJ_id_pe,10L - -#define SN_sinfo_access "subjectInfoAccess" -#define LN_sinfo_access "Subject Information Access" -#define NID_sinfo_access 398 -#define OBJ_sinfo_access OBJ_id_pe,11L - -#define SN_proxyCertInfo "proxyCertInfo" -#define LN_proxyCertInfo "Proxy Certificate Information" -#define NID_proxyCertInfo 663 -#define OBJ_proxyCertInfo OBJ_id_pe,14L - -#define SN_id_qt_cps "id-qt-cps" -#define LN_id_qt_cps "Policy Qualifier CPS" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_qt,1L - -#define SN_id_qt_unotice "id-qt-unotice" -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_qt,2L - -#define SN_textNotice "textNotice" -#define NID_textNotice 293 -#define OBJ_textNotice OBJ_id_qt,3L - -#define SN_server_auth "serverAuth" -#define LN_server_auth "TLS Web Server Authentication" -#define NID_server_auth 129 -#define OBJ_server_auth OBJ_id_kp,1L - -#define SN_client_auth "clientAuth" -#define LN_client_auth "TLS Web Client Authentication" -#define NID_client_auth 130 -#define OBJ_client_auth OBJ_id_kp,2L - -#define SN_code_sign "codeSigning" -#define LN_code_sign "Code Signing" -#define NID_code_sign 131 -#define OBJ_code_sign OBJ_id_kp,3L - -#define SN_email_protect "emailProtection" -#define LN_email_protect "E-mail Protection" -#define NID_email_protect 132 -#define OBJ_email_protect OBJ_id_kp,4L - -#define SN_ipsecEndSystem "ipsecEndSystem" -#define LN_ipsecEndSystem "IPSec End System" -#define NID_ipsecEndSystem 294 -#define OBJ_ipsecEndSystem OBJ_id_kp,5L - -#define SN_ipsecTunnel "ipsecTunnel" -#define LN_ipsecTunnel "IPSec Tunnel" -#define NID_ipsecTunnel 295 -#define OBJ_ipsecTunnel OBJ_id_kp,6L - -#define SN_ipsecUser "ipsecUser" -#define LN_ipsecUser "IPSec User" -#define NID_ipsecUser 296 -#define OBJ_ipsecUser OBJ_id_kp,7L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L - -#define SN_dvcs "DVCS" -#define LN_dvcs "dvcs" -#define NID_dvcs 297 -#define OBJ_dvcs OBJ_id_kp,10L - -#define SN_id_it_caProtEncCert "id-it-caProtEncCert" -#define NID_id_it_caProtEncCert 298 -#define OBJ_id_it_caProtEncCert OBJ_id_it,1L - -#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" -#define NID_id_it_signKeyPairTypes 299 -#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L - -#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" -#define NID_id_it_encKeyPairTypes 300 -#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L - -#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" -#define NID_id_it_preferredSymmAlg 301 -#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L - -#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" -#define NID_id_it_caKeyUpdateInfo 302 -#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L - -#define SN_id_it_currentCRL "id-it-currentCRL" -#define NID_id_it_currentCRL 303 -#define OBJ_id_it_currentCRL OBJ_id_it,6L - -#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" -#define NID_id_it_unsupportedOIDs 304 -#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L - -#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" -#define NID_id_it_subscriptionRequest 305 -#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L - -#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" -#define NID_id_it_subscriptionResponse 306 -#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L - -#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" -#define NID_id_it_keyPairParamReq 307 -#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L - -#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" -#define NID_id_it_keyPairParamRep 308 -#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L - -#define SN_id_it_revPassphrase "id-it-revPassphrase" -#define NID_id_it_revPassphrase 309 -#define OBJ_id_it_revPassphrase OBJ_id_it,12L - -#define SN_id_it_implicitConfirm "id-it-implicitConfirm" -#define NID_id_it_implicitConfirm 310 -#define OBJ_id_it_implicitConfirm OBJ_id_it,13L - -#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" -#define NID_id_it_confirmWaitTime 311 -#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L - -#define SN_id_it_origPKIMessage "id-it-origPKIMessage" -#define NID_id_it_origPKIMessage 312 -#define OBJ_id_it_origPKIMessage OBJ_id_it,15L - -#define SN_id_it_suppLangTags "id-it-suppLangTags" -#define NID_id_it_suppLangTags 784 -#define OBJ_id_it_suppLangTags OBJ_id_it,16L - -#define SN_id_regCtrl "id-regCtrl" -#define NID_id_regCtrl 313 -#define OBJ_id_regCtrl OBJ_id_pkip,1L - -#define SN_id_regInfo "id-regInfo" -#define NID_id_regInfo 314 -#define OBJ_id_regInfo OBJ_id_pkip,2L - -#define SN_id_regCtrl_regToken "id-regCtrl-regToken" -#define NID_id_regCtrl_regToken 315 -#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L - -#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" -#define NID_id_regCtrl_authenticator 316 -#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L - -#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" -#define NID_id_regCtrl_pkiPublicationInfo 317 -#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L - -#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" -#define NID_id_regCtrl_pkiArchiveOptions 318 -#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L - -#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" -#define NID_id_regCtrl_oldCertID 319 -#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L - -#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" -#define NID_id_regCtrl_protocolEncrKey 320 -#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L - -#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" -#define NID_id_regInfo_utf8Pairs 321 -#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L - -#define SN_id_regInfo_certReq "id-regInfo-certReq" -#define NID_id_regInfo_certReq 322 -#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L - -#define SN_id_alg_des40 "id-alg-des40" -#define NID_id_alg_des40 323 -#define OBJ_id_alg_des40 OBJ_id_alg,1L - -#define SN_id_alg_noSignature "id-alg-noSignature" -#define NID_id_alg_noSignature 324 -#define OBJ_id_alg_noSignature OBJ_id_alg,2L - -#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" -#define NID_id_alg_dh_sig_hmac_sha1 325 -#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L - -#define SN_id_alg_dh_pop "id-alg-dh-pop" -#define NID_id_alg_dh_pop 326 -#define OBJ_id_alg_dh_pop OBJ_id_alg,4L - -#define SN_id_cmc_statusInfo "id-cmc-statusInfo" -#define NID_id_cmc_statusInfo 327 -#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L - -#define SN_id_cmc_identification "id-cmc-identification" -#define NID_id_cmc_identification 328 -#define OBJ_id_cmc_identification OBJ_id_cmc,2L - -#define SN_id_cmc_identityProof "id-cmc-identityProof" -#define NID_id_cmc_identityProof 329 -#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L - -#define SN_id_cmc_dataReturn "id-cmc-dataReturn" -#define NID_id_cmc_dataReturn 330 -#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L - -#define SN_id_cmc_transactionId "id-cmc-transactionId" -#define NID_id_cmc_transactionId 331 -#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L - -#define SN_id_cmc_senderNonce "id-cmc-senderNonce" -#define NID_id_cmc_senderNonce 332 -#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L - -#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" -#define NID_id_cmc_recipientNonce 333 -#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L - -#define SN_id_cmc_addExtensions "id-cmc-addExtensions" -#define NID_id_cmc_addExtensions 334 -#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L - -#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" -#define NID_id_cmc_encryptedPOP 335 -#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L - -#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" -#define NID_id_cmc_decryptedPOP 336 -#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L - -#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" -#define NID_id_cmc_lraPOPWitness 337 -#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L - -#define SN_id_cmc_getCert "id-cmc-getCert" -#define NID_id_cmc_getCert 338 -#define OBJ_id_cmc_getCert OBJ_id_cmc,15L - -#define SN_id_cmc_getCRL "id-cmc-getCRL" -#define NID_id_cmc_getCRL 339 -#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L - -#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" -#define NID_id_cmc_revokeRequest 340 -#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L - -#define SN_id_cmc_regInfo "id-cmc-regInfo" -#define NID_id_cmc_regInfo 341 -#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L - -#define SN_id_cmc_responseInfo "id-cmc-responseInfo" -#define NID_id_cmc_responseInfo 342 -#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L - -#define SN_id_cmc_queryPending "id-cmc-queryPending" -#define NID_id_cmc_queryPending 343 -#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L - -#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" -#define NID_id_cmc_popLinkRandom 344 -#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L - -#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" -#define NID_id_cmc_popLinkWitness 345 -#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L - -#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" -#define NID_id_cmc_confirmCertAcceptance 346 -#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L - -#define SN_id_on_personalData "id-on-personalData" -#define NID_id_on_personalData 347 -#define OBJ_id_on_personalData OBJ_id_on,1L - -#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" -#define LN_id_on_permanentIdentifier "Permanent Identifier" -#define NID_id_on_permanentIdentifier 858 -#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L - -#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" -#define NID_id_pda_dateOfBirth 348 -#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L - -#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" -#define NID_id_pda_placeOfBirth 349 -#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L - -#define SN_id_pda_gender "id-pda-gender" -#define NID_id_pda_gender 351 -#define OBJ_id_pda_gender OBJ_id_pda,3L - -#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" -#define NID_id_pda_countryOfCitizenship 352 -#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L - -#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" -#define NID_id_pda_countryOfResidence 353 -#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L - -#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" -#define NID_id_aca_authenticationInfo 354 -#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L - -#define SN_id_aca_accessIdentity "id-aca-accessIdentity" -#define NID_id_aca_accessIdentity 355 -#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L - -#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" -#define NID_id_aca_chargingIdentity 356 -#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L - -#define SN_id_aca_group "id-aca-group" -#define NID_id_aca_group 357 -#define OBJ_id_aca_group OBJ_id_aca,4L - -#define SN_id_aca_role "id-aca-role" -#define NID_id_aca_role 358 -#define OBJ_id_aca_role OBJ_id_aca,5L - -#define SN_id_aca_encAttrs "id-aca-encAttrs" -#define NID_id_aca_encAttrs 399 -#define OBJ_id_aca_encAttrs OBJ_id_aca,6L - -#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" -#define NID_id_qcs_pkixQCSyntax_v1 359 -#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L - -#define SN_id_cct_crs "id-cct-crs" -#define NID_id_cct_crs 360 -#define OBJ_id_cct_crs OBJ_id_cct,1L - -#define SN_id_cct_PKIData "id-cct-PKIData" -#define NID_id_cct_PKIData 361 -#define OBJ_id_cct_PKIData OBJ_id_cct,2L - -#define SN_id_cct_PKIResponse "id-cct-PKIResponse" -#define NID_id_cct_PKIResponse 362 -#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L - -#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" -#define LN_id_ppl_anyLanguage "Any language" -#define NID_id_ppl_anyLanguage 664 -#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L - -#define SN_id_ppl_inheritAll "id-ppl-inheritAll" -#define LN_id_ppl_inheritAll "Inherit all" -#define NID_id_ppl_inheritAll 665 -#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L - -#define SN_Independent "id-ppl-independent" -#define LN_Independent "Independent" -#define NID_Independent 667 -#define OBJ_Independent OBJ_id_ppl,2L - -#define SN_ad_OCSP "OCSP" -#define LN_ad_OCSP "OCSP" -#define NID_ad_OCSP 178 -#define OBJ_ad_OCSP OBJ_id_ad,1L - -#define SN_ad_ca_issuers "caIssuers" -#define LN_ad_ca_issuers "CA Issuers" -#define NID_ad_ca_issuers 179 -#define OBJ_ad_ca_issuers OBJ_id_ad,2L - -#define SN_ad_timeStamping "ad_timestamping" -#define LN_ad_timeStamping "AD Time Stamping" -#define NID_ad_timeStamping 363 -#define OBJ_ad_timeStamping OBJ_id_ad,3L - -#define SN_ad_dvcs "AD_DVCS" -#define LN_ad_dvcs "ad dvcs" -#define NID_ad_dvcs 364 -#define OBJ_ad_dvcs OBJ_id_ad,4L - -#define SN_caRepository "caRepository" -#define LN_caRepository "CA Repository" -#define NID_caRepository 785 -#define OBJ_caRepository OBJ_id_ad,5L - -#define OBJ_id_pkix_OCSP OBJ_ad_OCSP - -#define SN_id_pkix_OCSP_basic "basicOCSPResponse" -#define LN_id_pkix_OCSP_basic "Basic OCSP Response" -#define NID_id_pkix_OCSP_basic 365 -#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L - -#define SN_id_pkix_OCSP_Nonce "Nonce" -#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" -#define NID_id_pkix_OCSP_Nonce 366 -#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L - -#define SN_id_pkix_OCSP_CrlID "CrlID" -#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" -#define NID_id_pkix_OCSP_CrlID 367 -#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L - -#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" -#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" -#define NID_id_pkix_OCSP_acceptableResponses 368 -#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L - -#define SN_id_pkix_OCSP_noCheck "noCheck" -#define LN_id_pkix_OCSP_noCheck "OCSP No Check" -#define NID_id_pkix_OCSP_noCheck 369 -#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L - -#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" -#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" -#define NID_id_pkix_OCSP_archiveCutoff 370 -#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L - -#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" -#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" -#define NID_id_pkix_OCSP_serviceLocator 371 -#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L - -#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" -#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" -#define NID_id_pkix_OCSP_extendedStatus 372 -#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L - -#define SN_id_pkix_OCSP_valid "valid" -#define NID_id_pkix_OCSP_valid 373 -#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L - -#define SN_id_pkix_OCSP_path "path" -#define NID_id_pkix_OCSP_path 374 -#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L - -#define SN_id_pkix_OCSP_trustRoot "trustRoot" -#define LN_id_pkix_OCSP_trustRoot "Trust Root" -#define NID_id_pkix_OCSP_trustRoot 375 -#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L - -#define SN_algorithm "algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 376 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#define SN_des_ecb "DES-ECB" -#define LN_des_ecb "des-ecb" -#define NID_des_ecb 29 -#define OBJ_des_ecb OBJ_algorithm,6L - -#define SN_des_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -#define OBJ_des_cbc OBJ_algorithm,7L - -#define SN_des_ofb64 "DES-OFB" -#define LN_des_ofb64 "des-ofb" -#define NID_des_ofb64 45 -#define OBJ_des_ofb64 OBJ_algorithm,8L - -#define SN_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_rsaSignature "rsaSignature" -#define NID_rsaSignature 377 -#define OBJ_rsaSignature OBJ_algorithm,11L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_ecb "DES-EDE" -#define LN_des_ede_ecb "des-ede" -#define NID_des_ede_ecb 32 -#define OBJ_des_ede_ecb OBJ_algorithm,17L - -#define SN_des_ede3_ecb "DES-EDE3" -#define LN_des_ede3_ecb "des-ede3" -#define NID_des_ede3_ecb 33 - -#define SN_des_ede_cbc "DES-EDE-CBC" -#define LN_des_ede_cbc "des-ede-cbc" -#define NID_des_ede_cbc 43 - -#define SN_des_ede_cfb64 "DES-EDE-CFB" -#define LN_des_ede_cfb64 "des-ede-cfb" -#define NID_des_ede_cfb64 60 - -#define SN_des_ede3_cfb64 "DES-EDE3-CFB" -#define LN_des_ede3_cfb64 "des-ede3-cfb" -#define NID_des_ede3_cfb64 61 - -#define SN_des_ede_ofb64 "DES-EDE-OFB" -#define LN_des_ede_ofb64 "des-ede-ofb" -#define NID_des_ede_ofb64 62 - -#define SN_des_ede3_ofb64 "DES-EDE3-OFB" -#define LN_des_ede3_ofb64 "des-ede3-ofb" -#define NID_des_ede3_ofb64 63 - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -#define SN_X500 "X500" -#define LN_X500 "directory services (X.500)" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define SN_X509 "X509" -#define NID_X509 12 -#define OBJ_X509 OBJ_X500,4L - -#define SN_commonName "CN" -#define LN_commonName "commonName" -#define NID_commonName 13 -#define OBJ_commonName OBJ_X509,3L - -#define SN_surname "SN" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#define SN_countryName "C" -#define LN_countryName "countryName" -#define NID_countryName 14 -#define OBJ_countryName OBJ_X509,6L - -#define SN_localityName "L" -#define LN_localityName "localityName" -#define NID_localityName 15 -#define OBJ_localityName OBJ_X509,7L - -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_streetAddress "street" -#define LN_streetAddress "streetAddress" -#define NID_streetAddress 660 -#define OBJ_streetAddress OBJ_X509,9L - -#define SN_organizationName "O" -#define LN_organizationName "organizationName" -#define NID_organizationName 17 -#define OBJ_organizationName OBJ_X509,10L - -#define SN_organizationalUnitName "OU" -#define LN_organizationalUnitName "organizationalUnitName" -#define NID_organizationalUnitName 18 -#define OBJ_organizationalUnitName OBJ_X509,11L - -#define SN_title "title" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -#define LN_searchGuide "searchGuide" -#define NID_searchGuide 859 -#define OBJ_searchGuide OBJ_X509,14L - -#define LN_businessCategory "businessCategory" -#define NID_businessCategory 860 -#define OBJ_businessCategory OBJ_X509,15L - -#define LN_postalAddress "postalAddress" -#define NID_postalAddress 861 -#define OBJ_postalAddress OBJ_X509,16L - -#define LN_postalCode "postalCode" -#define NID_postalCode 661 -#define OBJ_postalCode OBJ_X509,17L - -#define LN_postOfficeBox "postOfficeBox" -#define NID_postOfficeBox 862 -#define OBJ_postOfficeBox OBJ_X509,18L - -#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" -#define NID_physicalDeliveryOfficeName 863 -#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L - -#define LN_telephoneNumber "telephoneNumber" -#define NID_telephoneNumber 864 -#define OBJ_telephoneNumber OBJ_X509,20L - -#define LN_telexNumber "telexNumber" -#define NID_telexNumber 865 -#define OBJ_telexNumber OBJ_X509,21L - -#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" -#define NID_teletexTerminalIdentifier 866 -#define OBJ_teletexTerminalIdentifier OBJ_X509,22L - -#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" -#define NID_facsimileTelephoneNumber 867 -#define OBJ_facsimileTelephoneNumber OBJ_X509,23L - -#define LN_x121Address "x121Address" -#define NID_x121Address 868 -#define OBJ_x121Address OBJ_X509,24L - -#define LN_internationaliSDNNumber "internationaliSDNNumber" -#define NID_internationaliSDNNumber 869 -#define OBJ_internationaliSDNNumber OBJ_X509,25L - -#define LN_registeredAddress "registeredAddress" -#define NID_registeredAddress 870 -#define OBJ_registeredAddress OBJ_X509,26L - -#define LN_destinationIndicator "destinationIndicator" -#define NID_destinationIndicator 871 -#define OBJ_destinationIndicator OBJ_X509,27L - -#define LN_preferredDeliveryMethod "preferredDeliveryMethod" -#define NID_preferredDeliveryMethod 872 -#define OBJ_preferredDeliveryMethod OBJ_X509,28L - -#define LN_presentationAddress "presentationAddress" -#define NID_presentationAddress 873 -#define OBJ_presentationAddress OBJ_X509,29L - -#define LN_supportedApplicationContext "supportedApplicationContext" -#define NID_supportedApplicationContext 874 -#define OBJ_supportedApplicationContext OBJ_X509,30L - -#define SN_member "member" -#define NID_member 875 -#define OBJ_member OBJ_X509,31L - -#define SN_owner "owner" -#define NID_owner 876 -#define OBJ_owner OBJ_X509,32L - -#define LN_roleOccupant "roleOccupant" -#define NID_roleOccupant 877 -#define OBJ_roleOccupant OBJ_X509,33L - -#define SN_seeAlso "seeAlso" -#define NID_seeAlso 878 -#define OBJ_seeAlso OBJ_X509,34L - -#define LN_userPassword "userPassword" -#define NID_userPassword 879 -#define OBJ_userPassword OBJ_X509,35L - -#define LN_userCertificate "userCertificate" -#define NID_userCertificate 880 -#define OBJ_userCertificate OBJ_X509,36L - -#define LN_cACertificate "cACertificate" -#define NID_cACertificate 881 -#define OBJ_cACertificate OBJ_X509,37L - -#define LN_authorityRevocationList "authorityRevocationList" -#define NID_authorityRevocationList 882 -#define OBJ_authorityRevocationList OBJ_X509,38L - -#define LN_certificateRevocationList "certificateRevocationList" -#define NID_certificateRevocationList 883 -#define OBJ_certificateRevocationList OBJ_X509,39L - -#define LN_crossCertificatePair "crossCertificatePair" -#define NID_crossCertificatePair 884 -#define OBJ_crossCertificatePair OBJ_X509,40L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_givenName "GN" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_initials "initials" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define LN_generationQualifier "generationQualifier" -#define NID_generationQualifier 509 -#define OBJ_generationQualifier OBJ_X509,44L - -#define LN_x500UniqueIdentifier "x500UniqueIdentifier" -#define NID_x500UniqueIdentifier 503 -#define OBJ_x500UniqueIdentifier OBJ_X509,45L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define LN_enhancedSearchGuide "enhancedSearchGuide" -#define NID_enhancedSearchGuide 885 -#define OBJ_enhancedSearchGuide OBJ_X509,47L - -#define LN_protocolInformation "protocolInformation" -#define NID_protocolInformation 886 -#define OBJ_protocolInformation OBJ_X509,48L - -#define LN_distinguishedName "distinguishedName" -#define NID_distinguishedName 887 -#define OBJ_distinguishedName OBJ_X509,49L - -#define LN_uniqueMember "uniqueMember" -#define NID_uniqueMember 888 -#define OBJ_uniqueMember OBJ_X509,50L - -#define LN_houseIdentifier "houseIdentifier" -#define NID_houseIdentifier 889 -#define OBJ_houseIdentifier OBJ_X509,51L - -#define LN_supportedAlgorithms "supportedAlgorithms" -#define NID_supportedAlgorithms 890 -#define OBJ_supportedAlgorithms OBJ_X509,52L - -#define LN_deltaRevocationList "deltaRevocationList" -#define NID_deltaRevocationList 891 -#define OBJ_deltaRevocationList OBJ_X509,53L - -#define SN_dmdName "dmdName" -#define NID_dmdName 892 -#define OBJ_dmdName OBJ_X509,54L - -#define LN_pseudonym "pseudonym" -#define NID_pseudonym 510 -#define OBJ_pseudonym OBJ_X509,65L - -#define SN_role "role" -#define LN_role "role" -#define NID_role 400 -#define OBJ_role OBJ_X509,72L - -#define SN_X500algorithms "X500algorithms" -#define LN_X500algorithms "directory services - algorithms" -#define NID_X500algorithms 378 -#define OBJ_X500algorithms OBJ_X500,8L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500algorithms,1L,1L - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2WithRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 OBJ_X500algorithms,3L,101L - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce OBJ_X500,29L - -#define SN_subject_directory_attributes "subjectDirectoryAttributes" -#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" -#define NID_subject_directory_attributes 769 -#define OBJ_subject_directory_attributes OBJ_id_ce,9L - -#define SN_subject_key_identifier "subjectKeyIdentifier" -#define LN_subject_key_identifier "X509v3 Subject Key Identifier" -#define NID_subject_key_identifier 82 -#define OBJ_subject_key_identifier OBJ_id_ce,14L - -#define SN_key_usage "keyUsage" -#define LN_key_usage "X509v3 Key Usage" -#define NID_key_usage 83 -#define OBJ_key_usage OBJ_id_ce,15L - -#define SN_private_key_usage_period "privateKeyUsagePeriod" -#define LN_private_key_usage_period "X509v3 Private Key Usage Period" -#define NID_private_key_usage_period 84 -#define OBJ_private_key_usage_period OBJ_id_ce,16L - -#define SN_subject_alt_name "subjectAltName" -#define LN_subject_alt_name "X509v3 Subject Alternative Name" -#define NID_subject_alt_name 85 -#define OBJ_subject_alt_name OBJ_id_ce,17L - -#define SN_issuer_alt_name "issuerAltName" -#define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -#define NID_issuer_alt_name 86 -#define OBJ_issuer_alt_name OBJ_id_ce,18L - -#define SN_basic_constraints "basicConstraints" -#define LN_basic_constraints "X509v3 Basic Constraints" -#define NID_basic_constraints 87 -#define OBJ_basic_constraints OBJ_id_ce,19L - -#define SN_crl_number "crlNumber" -#define LN_crl_number "X509v3 CRL Number" -#define NID_crl_number 88 -#define OBJ_crl_number OBJ_id_ce,20L - -#define SN_crl_reason "CRLReason" -#define LN_crl_reason "X509v3 CRL Reason Code" -#define NID_crl_reason 141 -#define OBJ_crl_reason OBJ_id_ce,21L - -#define SN_invalidity_date "invalidityDate" -#define LN_invalidity_date "Invalidity Date" -#define NID_invalidity_date 142 -#define OBJ_invalidity_date OBJ_id_ce,24L - -#define SN_delta_crl "deltaCRL" -#define LN_delta_crl "X509v3 Delta CRL Indicator" -#define NID_delta_crl 140 -#define OBJ_delta_crl OBJ_id_ce,27L - -#define SN_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distrubution Point" -#define NID_issuing_distribution_point 770 -#define OBJ_issuing_distribution_point OBJ_id_ce,28L - -#define SN_certificate_issuer "certificateIssuer" -#define LN_certificate_issuer "X509v3 Certificate Issuer" -#define NID_certificate_issuer 771 -#define OBJ_certificate_issuer OBJ_id_ce,29L - -#define SN_name_constraints "nameConstraints" -#define LN_name_constraints "X509v3 Name Constraints" -#define NID_name_constraints 666 -#define OBJ_name_constraints OBJ_id_ce,30L - -#define SN_crl_distribution_points "crlDistributionPoints" -#define LN_crl_distribution_points "X509v3 CRL Distribution Points" -#define NID_crl_distribution_points 103 -#define OBJ_crl_distribution_points OBJ_id_ce,31L - -#define SN_certificate_policies "certificatePolicies" -#define LN_certificate_policies "X509v3 Certificate Policies" -#define NID_certificate_policies 89 -#define OBJ_certificate_policies OBJ_id_ce,32L - -#define SN_any_policy "anyPolicy" -#define LN_any_policy "X509v3 Any Policy" -#define NID_any_policy 746 -#define OBJ_any_policy OBJ_certificate_policies,0L - -#define SN_policy_mappings "policyMappings" -#define LN_policy_mappings "X509v3 Policy Mappings" -#define NID_policy_mappings 747 -#define OBJ_policy_mappings OBJ_id_ce,33L - -#define SN_authority_key_identifier "authorityKeyIdentifier" -#define LN_authority_key_identifier "X509v3 Authority Key Identifier" -#define NID_authority_key_identifier 90 -#define OBJ_authority_key_identifier OBJ_id_ce,35L - -#define SN_policy_constraints "policyConstraints" -#define LN_policy_constraints "X509v3 Policy Constraints" -#define NID_policy_constraints 401 -#define OBJ_policy_constraints OBJ_id_ce,36L - -#define SN_ext_key_usage "extendedKeyUsage" -#define LN_ext_key_usage "X509v3 Extended Key Usage" -#define NID_ext_key_usage 126 -#define OBJ_ext_key_usage OBJ_id_ce,37L - -#define SN_freshest_crl "freshestCRL" -#define LN_freshest_crl "X509v3 Freshest CRL" -#define NID_freshest_crl 857 -#define OBJ_freshest_crl OBJ_id_ce,46L - -#define SN_inhibit_any_policy "inhibitAnyPolicy" -#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" -#define NID_inhibit_any_policy 748 -#define OBJ_inhibit_any_policy OBJ_id_ce,54L - -#define SN_target_information "targetInformation" -#define LN_target_information "X509v3 AC Targeting" -#define NID_target_information 402 -#define OBJ_target_information OBJ_id_ce,55L - -#define SN_no_rev_avail "noRevAvail" -#define LN_no_rev_avail "X509v3 No Revocation Available" -#define NID_no_rev_avail 403 -#define OBJ_no_rev_avail OBJ_id_ce,56L - -#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" -#define LN_anyExtendedKeyUsage "Any Extended Key Usage" -#define NID_anyExtendedKeyUsage 910 -#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L - -#define SN_netscape "Netscape" -#define LN_netscape "Netscape Communications Corp." -#define NID_netscape 57 -#define OBJ_netscape 2L,16L,840L,1L,113730L - -#define SN_netscape_cert_extension "nsCertExt" -#define LN_netscape_cert_extension "Netscape Certificate Extension" -#define NID_netscape_cert_extension 58 -#define OBJ_netscape_cert_extension OBJ_netscape,1L - -#define SN_netscape_data_type "nsDataType" -#define LN_netscape_data_type "Netscape Data Type" -#define NID_netscape_data_type 59 -#define OBJ_netscape_data_type OBJ_netscape,2L - -#define SN_netscape_cert_type "nsCertType" -#define LN_netscape_cert_type "Netscape Cert Type" -#define NID_netscape_cert_type 71 -#define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -#define SN_netscape_base_url "nsBaseUrl" -#define LN_netscape_base_url "Netscape Base Url" -#define NID_netscape_base_url 72 -#define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -#define SN_netscape_revocation_url "nsRevocationUrl" -#define LN_netscape_revocation_url "Netscape Revocation Url" -#define NID_netscape_revocation_url 73 -#define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -#define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -#define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -#define NID_netscape_ca_revocation_url 74 -#define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -#define SN_netscape_renewal_url "nsRenewalUrl" -#define LN_netscape_renewal_url "Netscape Renewal Url" -#define NID_netscape_renewal_url 75 -#define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -#define SN_netscape_ca_policy_url "nsCaPolicyUrl" -#define LN_netscape_ca_policy_url "Netscape CA Policy Url" -#define NID_netscape_ca_policy_url 76 -#define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -#define SN_netscape_ssl_server_name "nsSslServerName" -#define LN_netscape_ssl_server_name "Netscape SSL Server Name" -#define NID_netscape_ssl_server_name 77 -#define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -#define SN_netscape_comment "nsComment" -#define LN_netscape_comment "Netscape Comment" -#define NID_netscape_comment 78 -#define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -#define SN_netscape_cert_sequence "nsCertSequence" -#define LN_netscape_cert_sequence "Netscape Certificate Sequence" -#define NID_netscape_cert_sequence 79 -#define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -#define SN_ns_sgc "nsSGC" -#define LN_ns_sgc "Netscape Server Gated Crypto" -#define NID_ns_sgc 139 -#define OBJ_ns_sgc OBJ_netscape,4L,1L - -#define SN_org "ORG" -#define LN_org "org" -#define NID_org 379 -#define OBJ_org OBJ_iso,3L - -#define SN_dod "DOD" -#define LN_dod "dod" -#define NID_dod 380 -#define OBJ_dod OBJ_org,6L - -#define SN_iana "IANA" -#define LN_iana "iana" -#define NID_iana 381 -#define OBJ_iana OBJ_dod,1L - -#define OBJ_internet OBJ_iana - -#define SN_Directory "directory" -#define LN_Directory "Directory" -#define NID_Directory 382 -#define OBJ_Directory OBJ_internet,1L - -#define SN_Management "mgmt" -#define LN_Management "Management" -#define NID_Management 383 -#define OBJ_Management OBJ_internet,2L - -#define SN_Experimental "experimental" -#define LN_Experimental "Experimental" -#define NID_Experimental 384 -#define OBJ_Experimental OBJ_internet,3L - -#define SN_Private "private" -#define LN_Private "Private" -#define NID_Private 385 -#define OBJ_Private OBJ_internet,4L - -#define SN_Security "security" -#define LN_Security "Security" -#define NID_Security 386 -#define OBJ_Security OBJ_internet,5L - -#define SN_SNMPv2 "snmpv2" -#define LN_SNMPv2 "SNMPv2" -#define NID_SNMPv2 387 -#define OBJ_SNMPv2 OBJ_internet,6L - -#define LN_Mail "Mail" -#define NID_Mail 388 -#define OBJ_Mail OBJ_internet,7L - -#define SN_Enterprises "enterprises" -#define LN_Enterprises "Enterprises" -#define NID_Enterprises 389 -#define OBJ_Enterprises OBJ_Private,1L - -#define SN_dcObject "dcobject" -#define LN_dcObject "dcObject" -#define NID_dcObject 390 -#define OBJ_dcObject OBJ_Enterprises,1466L,344L - -#define SN_mime_mhs "mime-mhs" -#define LN_mime_mhs "MIME MHS" -#define NID_mime_mhs 504 -#define OBJ_mime_mhs OBJ_Mail,1L - -#define SN_mime_mhs_headings "mime-mhs-headings" -#define LN_mime_mhs_headings "mime-mhs-headings" -#define NID_mime_mhs_headings 505 -#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L - -#define SN_mime_mhs_bodies "mime-mhs-bodies" -#define LN_mime_mhs_bodies "mime-mhs-bodies" -#define NID_mime_mhs_bodies 506 -#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L - -#define SN_id_hex_partial_message "id-hex-partial-message" -#define LN_id_hex_partial_message "id-hex-partial-message" -#define NID_id_hex_partial_message 507 -#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L - -#define SN_id_hex_multipart_message "id-hex-multipart-message" -#define LN_id_hex_multipart_message "id-hex-multipart-message" -#define NID_id_hex_multipart_message 508 -#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L - -#define SN_rle_compression "RLE" -#define LN_rle_compression "run length compression" -#define NID_rle_compression 124 -#define OBJ_rle_compression 1L,1L,1L,1L,666L,1L - -#define SN_zlib_compression "ZLIB" -#define LN_zlib_compression "zlib compression" -#define NID_zlib_compression 125 -#define OBJ_zlib_compression OBJ_id_smime_alg,8L - -#define OBJ_csor 2L,16L,840L,1L,101L,3L - -#define OBJ_nistAlgorithms OBJ_csor,4L - -#define OBJ_aes OBJ_nistAlgorithms,1L - -#define SN_aes_128_ecb "AES-128-ECB" -#define LN_aes_128_ecb "aes-128-ecb" -#define NID_aes_128_ecb 418 -#define OBJ_aes_128_ecb OBJ_aes,1L - -#define SN_aes_128_cbc "AES-128-CBC" -#define LN_aes_128_cbc "aes-128-cbc" -#define NID_aes_128_cbc 419 -#define OBJ_aes_128_cbc OBJ_aes,2L - -#define SN_aes_128_ofb128 "AES-128-OFB" -#define LN_aes_128_ofb128 "aes-128-ofb" -#define NID_aes_128_ofb128 420 -#define OBJ_aes_128_ofb128 OBJ_aes,3L - -#define SN_aes_128_cfb128 "AES-128-CFB" -#define LN_aes_128_cfb128 "aes-128-cfb" -#define NID_aes_128_cfb128 421 -#define OBJ_aes_128_cfb128 OBJ_aes,4L - -#define SN_id_aes128_wrap "id-aes128-wrap" -#define NID_id_aes128_wrap 788 -#define OBJ_id_aes128_wrap OBJ_aes,5L - -#define SN_aes_128_gcm "id-aes128-GCM" -#define LN_aes_128_gcm "aes-128-gcm" -#define NID_aes_128_gcm 895 -#define OBJ_aes_128_gcm OBJ_aes,6L - -#define SN_aes_128_ccm "id-aes128-CCM" -#define LN_aes_128_ccm "aes-128-ccm" -#define NID_aes_128_ccm 896 -#define OBJ_aes_128_ccm OBJ_aes,7L - -#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" -#define NID_id_aes128_wrap_pad 897 -#define OBJ_id_aes128_wrap_pad OBJ_aes,8L - -#define SN_aes_192_ecb "AES-192-ECB" -#define LN_aes_192_ecb "aes-192-ecb" -#define NID_aes_192_ecb 422 -#define OBJ_aes_192_ecb OBJ_aes,21L - -#define SN_aes_192_cbc "AES-192-CBC" -#define LN_aes_192_cbc "aes-192-cbc" -#define NID_aes_192_cbc 423 -#define OBJ_aes_192_cbc OBJ_aes,22L - -#define SN_aes_192_ofb128 "AES-192-OFB" -#define LN_aes_192_ofb128 "aes-192-ofb" -#define NID_aes_192_ofb128 424 -#define OBJ_aes_192_ofb128 OBJ_aes,23L - -#define SN_aes_192_cfb128 "AES-192-CFB" -#define LN_aes_192_cfb128 "aes-192-cfb" -#define NID_aes_192_cfb128 425 -#define OBJ_aes_192_cfb128 OBJ_aes,24L - -#define SN_id_aes192_wrap "id-aes192-wrap" -#define NID_id_aes192_wrap 789 -#define OBJ_id_aes192_wrap OBJ_aes,25L - -#define SN_aes_192_gcm "id-aes192-GCM" -#define LN_aes_192_gcm "aes-192-gcm" -#define NID_aes_192_gcm 898 -#define OBJ_aes_192_gcm OBJ_aes,26L - -#define SN_aes_192_ccm "id-aes192-CCM" -#define LN_aes_192_ccm "aes-192-ccm" -#define NID_aes_192_ccm 899 -#define OBJ_aes_192_ccm OBJ_aes,27L - -#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" -#define NID_id_aes192_wrap_pad 900 -#define OBJ_id_aes192_wrap_pad OBJ_aes,28L - -#define SN_aes_256_ecb "AES-256-ECB" -#define LN_aes_256_ecb "aes-256-ecb" -#define NID_aes_256_ecb 426 -#define OBJ_aes_256_ecb OBJ_aes,41L - -#define SN_aes_256_cbc "AES-256-CBC" -#define LN_aes_256_cbc "aes-256-cbc" -#define NID_aes_256_cbc 427 -#define OBJ_aes_256_cbc OBJ_aes,42L - -#define SN_aes_256_ofb128 "AES-256-OFB" -#define LN_aes_256_ofb128 "aes-256-ofb" -#define NID_aes_256_ofb128 428 -#define OBJ_aes_256_ofb128 OBJ_aes,43L - -#define SN_aes_256_cfb128 "AES-256-CFB" -#define LN_aes_256_cfb128 "aes-256-cfb" -#define NID_aes_256_cfb128 429 -#define OBJ_aes_256_cfb128 OBJ_aes,44L - -#define SN_id_aes256_wrap "id-aes256-wrap" -#define NID_id_aes256_wrap 790 -#define OBJ_id_aes256_wrap OBJ_aes,45L - -#define SN_aes_256_gcm "id-aes256-GCM" -#define LN_aes_256_gcm "aes-256-gcm" -#define NID_aes_256_gcm 901 -#define OBJ_aes_256_gcm OBJ_aes,46L - -#define SN_aes_256_ccm "id-aes256-CCM" -#define LN_aes_256_ccm "aes-256-ccm" -#define NID_aes_256_ccm 902 -#define OBJ_aes_256_ccm OBJ_aes,47L - -#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" -#define NID_id_aes256_wrap_pad 903 -#define OBJ_id_aes256_wrap_pad OBJ_aes,48L - -#define SN_aes_128_cfb1 "AES-128-CFB1" -#define LN_aes_128_cfb1 "aes-128-cfb1" -#define NID_aes_128_cfb1 650 - -#define SN_aes_192_cfb1 "AES-192-CFB1" -#define LN_aes_192_cfb1 "aes-192-cfb1" -#define NID_aes_192_cfb1 651 - -#define SN_aes_256_cfb1 "AES-256-CFB1" -#define LN_aes_256_cfb1 "aes-256-cfb1" -#define NID_aes_256_cfb1 652 - -#define SN_aes_128_cfb8 "AES-128-CFB8" -#define LN_aes_128_cfb8 "aes-128-cfb8" -#define NID_aes_128_cfb8 653 - -#define SN_aes_192_cfb8 "AES-192-CFB8" -#define LN_aes_192_cfb8 "aes-192-cfb8" -#define NID_aes_192_cfb8 654 - -#define SN_aes_256_cfb8 "AES-256-CFB8" -#define LN_aes_256_cfb8 "aes-256-cfb8" -#define NID_aes_256_cfb8 655 - -#define SN_aes_128_ctr "AES-128-CTR" -#define LN_aes_128_ctr "aes-128-ctr" -#define NID_aes_128_ctr 904 - -#define SN_aes_192_ctr "AES-192-CTR" -#define LN_aes_192_ctr "aes-192-ctr" -#define NID_aes_192_ctr 905 - -#define SN_aes_256_ctr "AES-256-CTR" -#define LN_aes_256_ctr "aes-256-ctr" -#define NID_aes_256_ctr 906 - -#define SN_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#define SN_des_cfb8 "DES-CFB8" -#define LN_des_cfb8 "des-cfb8" -#define NID_des_cfb8 657 - -#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" -#define LN_des_ede3_cfb1 "des-ede3-cfb1" -#define NID_des_ede3_cfb1 658 - -#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" -#define LN_des_ede3_cfb8 "des-ede3-cfb8" -#define NID_des_ede3_cfb8 659 - -#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L - -#define SN_sha256 "SHA256" -#define LN_sha256 "sha256" -#define NID_sha256 672 -#define OBJ_sha256 OBJ_nist_hashalgs,1L - -#define SN_sha384 "SHA384" -#define LN_sha384 "sha384" -#define NID_sha384 673 -#define OBJ_sha384 OBJ_nist_hashalgs,2L - -#define SN_sha512 "SHA512" -#define LN_sha512 "sha512" -#define NID_sha512 674 -#define OBJ_sha512 OBJ_nist_hashalgs,3L - -#define SN_sha224 "SHA224" -#define LN_sha224 "sha224" -#define NID_sha224 675 -#define OBJ_sha224 OBJ_nist_hashalgs,4L - -#define OBJ_dsa_with_sha2 OBJ_nistAlgorithms,3L - -#define SN_dsa_with_SHA224 "dsa_with_SHA224" -#define NID_dsa_with_SHA224 802 -#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L - -#define SN_dsa_with_SHA256 "dsa_with_SHA256" -#define NID_dsa_with_SHA256 803 -#define OBJ_dsa_with_SHA256 OBJ_dsa_with_sha2,2L - -#define SN_hold_instruction_code "holdInstructionCode" -#define LN_hold_instruction_code "Hold Instruction Code" -#define NID_hold_instruction_code 430 -#define OBJ_hold_instruction_code OBJ_id_ce,23L - -#define OBJ_holdInstruction OBJ_X9_57,2L - -#define SN_hold_instruction_none "holdInstructionNone" -#define LN_hold_instruction_none "Hold Instruction None" -#define NID_hold_instruction_none 431 -#define OBJ_hold_instruction_none OBJ_holdInstruction,1L - -#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" -#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" -#define NID_hold_instruction_call_issuer 432 -#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L - -#define SN_hold_instruction_reject "holdInstructionReject" -#define LN_hold_instruction_reject "Hold Instruction Reject" -#define NID_hold_instruction_reject 433 -#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L - -#define SN_data "data" -#define NID_data 434 -#define OBJ_data OBJ_itu_t,9L - -#define SN_pss "pss" -#define NID_pss 435 -#define OBJ_pss OBJ_data,2342L - -#define SN_ucl "ucl" -#define NID_ucl 436 -#define OBJ_ucl OBJ_pss,19200300L - -#define SN_pilot "pilot" -#define NID_pilot 437 -#define OBJ_pilot OBJ_ucl,100L - -#define LN_pilotAttributeType "pilotAttributeType" -#define NID_pilotAttributeType 438 -#define OBJ_pilotAttributeType OBJ_pilot,1L - -#define LN_pilotAttributeSyntax "pilotAttributeSyntax" -#define NID_pilotAttributeSyntax 439 -#define OBJ_pilotAttributeSyntax OBJ_pilot,3L - -#define LN_pilotObjectClass "pilotObjectClass" -#define NID_pilotObjectClass 440 -#define OBJ_pilotObjectClass OBJ_pilot,4L - -#define LN_pilotGroups "pilotGroups" -#define NID_pilotGroups 441 -#define OBJ_pilotGroups OBJ_pilot,10L - -#define LN_iA5StringSyntax "iA5StringSyntax" -#define NID_iA5StringSyntax 442 -#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L - -#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" -#define NID_caseIgnoreIA5StringSyntax 443 -#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L - -#define LN_pilotObject "pilotObject" -#define NID_pilotObject 444 -#define OBJ_pilotObject OBJ_pilotObjectClass,3L - -#define LN_pilotPerson "pilotPerson" -#define NID_pilotPerson 445 -#define OBJ_pilotPerson OBJ_pilotObjectClass,4L - -#define SN_account "account" -#define NID_account 446 -#define OBJ_account OBJ_pilotObjectClass,5L - -#define SN_document "document" -#define NID_document 447 -#define OBJ_document OBJ_pilotObjectClass,6L - -#define SN_room "room" -#define NID_room 448 -#define OBJ_room OBJ_pilotObjectClass,7L - -#define LN_documentSeries "documentSeries" -#define NID_documentSeries 449 -#define OBJ_documentSeries OBJ_pilotObjectClass,9L - -#define SN_Domain "domain" -#define LN_Domain "Domain" -#define NID_Domain 392 -#define OBJ_Domain OBJ_pilotObjectClass,13L - -#define LN_rFC822localPart "rFC822localPart" -#define NID_rFC822localPart 450 -#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L - -#define LN_dNSDomain "dNSDomain" -#define NID_dNSDomain 451 -#define OBJ_dNSDomain OBJ_pilotObjectClass,15L - -#define LN_domainRelatedObject "domainRelatedObject" -#define NID_domainRelatedObject 452 -#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L - -#define LN_friendlyCountry "friendlyCountry" -#define NID_friendlyCountry 453 -#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L - -#define LN_simpleSecurityObject "simpleSecurityObject" -#define NID_simpleSecurityObject 454 -#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L - -#define LN_pilotOrganization "pilotOrganization" -#define NID_pilotOrganization 455 -#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L - -#define LN_pilotDSA "pilotDSA" -#define NID_pilotDSA 456 -#define OBJ_pilotDSA OBJ_pilotObjectClass,21L - -#define LN_qualityLabelledData "qualityLabelledData" -#define NID_qualityLabelledData 457 -#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L - -#define SN_userId "UID" -#define LN_userId "userId" -#define NID_userId 458 -#define OBJ_userId OBJ_pilotAttributeType,1L - -#define LN_textEncodedORAddress "textEncodedORAddress" -#define NID_textEncodedORAddress 459 -#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L - -#define SN_rfc822Mailbox "mail" -#define LN_rfc822Mailbox "rfc822Mailbox" -#define NID_rfc822Mailbox 460 -#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L - -#define SN_info "info" -#define NID_info 461 -#define OBJ_info OBJ_pilotAttributeType,4L - -#define LN_favouriteDrink "favouriteDrink" -#define NID_favouriteDrink 462 -#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L - -#define LN_roomNumber "roomNumber" -#define NID_roomNumber 463 -#define OBJ_roomNumber OBJ_pilotAttributeType,6L - -#define SN_photo "photo" -#define NID_photo 464 -#define OBJ_photo OBJ_pilotAttributeType,7L - -#define LN_userClass "userClass" -#define NID_userClass 465 -#define OBJ_userClass OBJ_pilotAttributeType,8L - -#define SN_host "host" -#define NID_host 466 -#define OBJ_host OBJ_pilotAttributeType,9L - -#define SN_manager "manager" -#define NID_manager 467 -#define OBJ_manager OBJ_pilotAttributeType,10L - -#define LN_documentIdentifier "documentIdentifier" -#define NID_documentIdentifier 468 -#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L - -#define LN_documentTitle "documentTitle" -#define NID_documentTitle 469 -#define OBJ_documentTitle OBJ_pilotAttributeType,12L - -#define LN_documentVersion "documentVersion" -#define NID_documentVersion 470 -#define OBJ_documentVersion OBJ_pilotAttributeType,13L - -#define LN_documentAuthor "documentAuthor" -#define NID_documentAuthor 471 -#define OBJ_documentAuthor OBJ_pilotAttributeType,14L - -#define LN_documentLocation "documentLocation" -#define NID_documentLocation 472 -#define OBJ_documentLocation OBJ_pilotAttributeType,15L - -#define LN_homeTelephoneNumber "homeTelephoneNumber" -#define NID_homeTelephoneNumber 473 -#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L - -#define SN_secretary "secretary" -#define NID_secretary 474 -#define OBJ_secretary OBJ_pilotAttributeType,21L - -#define LN_otherMailbox "otherMailbox" -#define NID_otherMailbox 475 -#define OBJ_otherMailbox OBJ_pilotAttributeType,22L - -#define LN_lastModifiedTime "lastModifiedTime" -#define NID_lastModifiedTime 476 -#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L - -#define LN_lastModifiedBy "lastModifiedBy" -#define NID_lastModifiedBy 477 -#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L - -#define SN_domainComponent "DC" -#define LN_domainComponent "domainComponent" -#define NID_domainComponent 391 -#define OBJ_domainComponent OBJ_pilotAttributeType,25L - -#define LN_aRecord "aRecord" -#define NID_aRecord 478 -#define OBJ_aRecord OBJ_pilotAttributeType,26L - -#define LN_pilotAttributeType27 "pilotAttributeType27" -#define NID_pilotAttributeType27 479 -#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L - -#define LN_mXRecord "mXRecord" -#define NID_mXRecord 480 -#define OBJ_mXRecord OBJ_pilotAttributeType,28L - -#define LN_nSRecord "nSRecord" -#define NID_nSRecord 481 -#define OBJ_nSRecord OBJ_pilotAttributeType,29L - -#define LN_sOARecord "sOARecord" -#define NID_sOARecord 482 -#define OBJ_sOARecord OBJ_pilotAttributeType,30L - -#define LN_cNAMERecord "cNAMERecord" -#define NID_cNAMERecord 483 -#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L - -#define LN_associatedDomain "associatedDomain" -#define NID_associatedDomain 484 -#define OBJ_associatedDomain OBJ_pilotAttributeType,37L - -#define LN_associatedName "associatedName" -#define NID_associatedName 485 -#define OBJ_associatedName OBJ_pilotAttributeType,38L - -#define LN_homePostalAddress "homePostalAddress" -#define NID_homePostalAddress 486 -#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L - -#define LN_personalTitle "personalTitle" -#define NID_personalTitle 487 -#define OBJ_personalTitle OBJ_pilotAttributeType,40L - -#define LN_mobileTelephoneNumber "mobileTelephoneNumber" -#define NID_mobileTelephoneNumber 488 -#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L - -#define LN_pagerTelephoneNumber "pagerTelephoneNumber" -#define NID_pagerTelephoneNumber 489 -#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L - -#define LN_friendlyCountryName "friendlyCountryName" -#define NID_friendlyCountryName 490 -#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L - -#define LN_organizationalStatus "organizationalStatus" -#define NID_organizationalStatus 491 -#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L - -#define LN_janetMailbox "janetMailbox" -#define NID_janetMailbox 492 -#define OBJ_janetMailbox OBJ_pilotAttributeType,46L - -#define LN_mailPreferenceOption "mailPreferenceOption" -#define NID_mailPreferenceOption 493 -#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L - -#define LN_buildingName "buildingName" -#define NID_buildingName 494 -#define OBJ_buildingName OBJ_pilotAttributeType,48L - -#define LN_dSAQuality "dSAQuality" -#define NID_dSAQuality 495 -#define OBJ_dSAQuality OBJ_pilotAttributeType,49L - -#define LN_singleLevelQuality "singleLevelQuality" -#define NID_singleLevelQuality 496 -#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L - -#define LN_subtreeMinimumQuality "subtreeMinimumQuality" -#define NID_subtreeMinimumQuality 497 -#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L - -#define LN_subtreeMaximumQuality "subtreeMaximumQuality" -#define NID_subtreeMaximumQuality 498 -#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L - -#define LN_personalSignature "personalSignature" -#define NID_personalSignature 499 -#define OBJ_personalSignature OBJ_pilotAttributeType,53L - -#define LN_dITRedirect "dITRedirect" -#define NID_dITRedirect 500 -#define OBJ_dITRedirect OBJ_pilotAttributeType,54L - -#define SN_audio "audio" -#define NID_audio 501 -#define OBJ_audio OBJ_pilotAttributeType,55L - -#define LN_documentPublisher "documentPublisher" -#define NID_documentPublisher 502 -#define OBJ_documentPublisher OBJ_pilotAttributeType,56L - -#define SN_id_set "id-set" -#define LN_id_set "Secure Electronic Transactions" -#define NID_id_set 512 -#define OBJ_id_set OBJ_international_organizations,42L - -#define SN_set_ctype "set-ctype" -#define LN_set_ctype "content types" -#define NID_set_ctype 513 -#define OBJ_set_ctype OBJ_id_set,0L - -#define SN_set_msgExt "set-msgExt" -#define LN_set_msgExt "message extensions" -#define NID_set_msgExt 514 -#define OBJ_set_msgExt OBJ_id_set,1L - -#define SN_set_attr "set-attr" -#define NID_set_attr 515 -#define OBJ_set_attr OBJ_id_set,3L - -#define SN_set_policy "set-policy" -#define NID_set_policy 516 -#define OBJ_set_policy OBJ_id_set,5L - -#define SN_set_certExt "set-certExt" -#define LN_set_certExt "certificate extensions" -#define NID_set_certExt 517 -#define OBJ_set_certExt OBJ_id_set,7L - -#define SN_set_brand "set-brand" -#define NID_set_brand 518 -#define OBJ_set_brand OBJ_id_set,8L - -#define SN_setct_PANData "setct-PANData" -#define NID_setct_PANData 519 -#define OBJ_setct_PANData OBJ_set_ctype,0L - -#define SN_setct_PANToken "setct-PANToken" -#define NID_setct_PANToken 520 -#define OBJ_setct_PANToken OBJ_set_ctype,1L - -#define SN_setct_PANOnly "setct-PANOnly" -#define NID_setct_PANOnly 521 -#define OBJ_setct_PANOnly OBJ_set_ctype,2L - -#define SN_setct_OIData "setct-OIData" -#define NID_setct_OIData 522 -#define OBJ_setct_OIData OBJ_set_ctype,3L - -#define SN_setct_PI "setct-PI" -#define NID_setct_PI 523 -#define OBJ_setct_PI OBJ_set_ctype,4L - -#define SN_setct_PIData "setct-PIData" -#define NID_setct_PIData 524 -#define OBJ_setct_PIData OBJ_set_ctype,5L - -#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" -#define NID_setct_PIDataUnsigned 525 -#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L - -#define SN_setct_HODInput "setct-HODInput" -#define NID_setct_HODInput 526 -#define OBJ_setct_HODInput OBJ_set_ctype,7L - -#define SN_setct_AuthResBaggage "setct-AuthResBaggage" -#define NID_setct_AuthResBaggage 527 -#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L - -#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" -#define NID_setct_AuthRevReqBaggage 528 -#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L - -#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" -#define NID_setct_AuthRevResBaggage 529 -#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L - -#define SN_setct_CapTokenSeq "setct-CapTokenSeq" -#define NID_setct_CapTokenSeq 530 -#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L - -#define SN_setct_PInitResData "setct-PInitResData" -#define NID_setct_PInitResData 531 -#define OBJ_setct_PInitResData OBJ_set_ctype,12L - -#define SN_setct_PI_TBS "setct-PI-TBS" -#define NID_setct_PI_TBS 532 -#define OBJ_setct_PI_TBS OBJ_set_ctype,13L - -#define SN_setct_PResData "setct-PResData" -#define NID_setct_PResData 533 -#define OBJ_setct_PResData OBJ_set_ctype,14L - -#define SN_setct_AuthReqTBS "setct-AuthReqTBS" -#define NID_setct_AuthReqTBS 534 -#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L - -#define SN_setct_AuthResTBS "setct-AuthResTBS" -#define NID_setct_AuthResTBS 535 -#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L - -#define SN_setct_AuthResTBSX "setct-AuthResTBSX" -#define NID_setct_AuthResTBSX 536 -#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L - -#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" -#define NID_setct_AuthTokenTBS 537 -#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L - -#define SN_setct_CapTokenData "setct-CapTokenData" -#define NID_setct_CapTokenData 538 -#define OBJ_setct_CapTokenData OBJ_set_ctype,20L - -#define SN_setct_CapTokenTBS "setct-CapTokenTBS" -#define NID_setct_CapTokenTBS 539 -#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L - -#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" -#define NID_setct_AcqCardCodeMsg 540 -#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L - -#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" -#define NID_setct_AuthRevReqTBS 541 -#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L - -#define SN_setct_AuthRevResData "setct-AuthRevResData" -#define NID_setct_AuthRevResData 542 -#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L - -#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" -#define NID_setct_AuthRevResTBS 543 -#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L - -#define SN_setct_CapReqTBS "setct-CapReqTBS" -#define NID_setct_CapReqTBS 544 -#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L - -#define SN_setct_CapReqTBSX "setct-CapReqTBSX" -#define NID_setct_CapReqTBSX 545 -#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L - -#define SN_setct_CapResData "setct-CapResData" -#define NID_setct_CapResData 546 -#define OBJ_setct_CapResData OBJ_set_ctype,28L - -#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" -#define NID_setct_CapRevReqTBS 547 -#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L - -#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" -#define NID_setct_CapRevReqTBSX 548 -#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L - -#define SN_setct_CapRevResData "setct-CapRevResData" -#define NID_setct_CapRevResData 549 -#define OBJ_setct_CapRevResData OBJ_set_ctype,31L - -#define SN_setct_CredReqTBS "setct-CredReqTBS" -#define NID_setct_CredReqTBS 550 -#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L - -#define SN_setct_CredReqTBSX "setct-CredReqTBSX" -#define NID_setct_CredReqTBSX 551 -#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L - -#define SN_setct_CredResData "setct-CredResData" -#define NID_setct_CredResData 552 -#define OBJ_setct_CredResData OBJ_set_ctype,34L - -#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" -#define NID_setct_CredRevReqTBS 553 -#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L - -#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" -#define NID_setct_CredRevReqTBSX 554 -#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L - -#define SN_setct_CredRevResData "setct-CredRevResData" -#define NID_setct_CredRevResData 555 -#define OBJ_setct_CredRevResData OBJ_set_ctype,37L - -#define SN_setct_PCertReqData "setct-PCertReqData" -#define NID_setct_PCertReqData 556 -#define OBJ_setct_PCertReqData OBJ_set_ctype,38L - -#define SN_setct_PCertResTBS "setct-PCertResTBS" -#define NID_setct_PCertResTBS 557 -#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L - -#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" -#define NID_setct_BatchAdminReqData 558 -#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L - -#define SN_setct_BatchAdminResData "setct-BatchAdminResData" -#define NID_setct_BatchAdminResData 559 -#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L - -#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" -#define NID_setct_CardCInitResTBS 560 -#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L - -#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" -#define NID_setct_MeAqCInitResTBS 561 -#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L - -#define SN_setct_RegFormResTBS "setct-RegFormResTBS" -#define NID_setct_RegFormResTBS 562 -#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L - -#define SN_setct_CertReqData "setct-CertReqData" -#define NID_setct_CertReqData 563 -#define OBJ_setct_CertReqData OBJ_set_ctype,45L - -#define SN_setct_CertReqTBS "setct-CertReqTBS" -#define NID_setct_CertReqTBS 564 -#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L - -#define SN_setct_CertResData "setct-CertResData" -#define NID_setct_CertResData 565 -#define OBJ_setct_CertResData OBJ_set_ctype,47L - -#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" -#define NID_setct_CertInqReqTBS 566 -#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L - -#define SN_setct_ErrorTBS "setct-ErrorTBS" -#define NID_setct_ErrorTBS 567 -#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L - -#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" -#define NID_setct_PIDualSignedTBE 568 -#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L - -#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" -#define NID_setct_PIUnsignedTBE 569 -#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L - -#define SN_setct_AuthReqTBE "setct-AuthReqTBE" -#define NID_setct_AuthReqTBE 570 -#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L - -#define SN_setct_AuthResTBE "setct-AuthResTBE" -#define NID_setct_AuthResTBE 571 -#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L - -#define SN_setct_AuthResTBEX "setct-AuthResTBEX" -#define NID_setct_AuthResTBEX 572 -#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L - -#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" -#define NID_setct_AuthTokenTBE 573 -#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L - -#define SN_setct_CapTokenTBE "setct-CapTokenTBE" -#define NID_setct_CapTokenTBE 574 -#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L - -#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" -#define NID_setct_CapTokenTBEX 575 -#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L - -#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" -#define NID_setct_AcqCardCodeMsgTBE 576 -#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L - -#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" -#define NID_setct_AuthRevReqTBE 577 -#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L - -#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" -#define NID_setct_AuthRevResTBE 578 -#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L - -#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" -#define NID_setct_AuthRevResTBEB 579 -#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L - -#define SN_setct_CapReqTBE "setct-CapReqTBE" -#define NID_setct_CapReqTBE 580 -#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L - -#define SN_setct_CapReqTBEX "setct-CapReqTBEX" -#define NID_setct_CapReqTBEX 581 -#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L - -#define SN_setct_CapResTBE "setct-CapResTBE" -#define NID_setct_CapResTBE 582 -#define OBJ_setct_CapResTBE OBJ_set_ctype,64L - -#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" -#define NID_setct_CapRevReqTBE 583 -#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L - -#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" -#define NID_setct_CapRevReqTBEX 584 -#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L - -#define SN_setct_CapRevResTBE "setct-CapRevResTBE" -#define NID_setct_CapRevResTBE 585 -#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L - -#define SN_setct_CredReqTBE "setct-CredReqTBE" -#define NID_setct_CredReqTBE 586 -#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L - -#define SN_setct_CredReqTBEX "setct-CredReqTBEX" -#define NID_setct_CredReqTBEX 587 -#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L - -#define SN_setct_CredResTBE "setct-CredResTBE" -#define NID_setct_CredResTBE 588 -#define OBJ_setct_CredResTBE OBJ_set_ctype,70L - -#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" -#define NID_setct_CredRevReqTBE 589 -#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L - -#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" -#define NID_setct_CredRevReqTBEX 590 -#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L - -#define SN_setct_CredRevResTBE "setct-CredRevResTBE" -#define NID_setct_CredRevResTBE 591 -#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L - -#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" -#define NID_setct_BatchAdminReqTBE 592 -#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L - -#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" -#define NID_setct_BatchAdminResTBE 593 -#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L - -#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" -#define NID_setct_RegFormReqTBE 594 -#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L - -#define SN_setct_CertReqTBE "setct-CertReqTBE" -#define NID_setct_CertReqTBE 595 -#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L - -#define SN_setct_CertReqTBEX "setct-CertReqTBEX" -#define NID_setct_CertReqTBEX 596 -#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L - -#define SN_setct_CertResTBE "setct-CertResTBE" -#define NID_setct_CertResTBE 597 -#define OBJ_setct_CertResTBE OBJ_set_ctype,79L - -#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" -#define NID_setct_CRLNotificationTBS 598 -#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L - -#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" -#define NID_setct_CRLNotificationResTBS 599 -#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L - -#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" -#define NID_setct_BCIDistributionTBS 600 -#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L - -#define SN_setext_genCrypt "setext-genCrypt" -#define LN_setext_genCrypt "generic cryptogram" -#define NID_setext_genCrypt 601 -#define OBJ_setext_genCrypt OBJ_set_msgExt,1L - -#define SN_setext_miAuth "setext-miAuth" -#define LN_setext_miAuth "merchant initiated auth" -#define NID_setext_miAuth 602 -#define OBJ_setext_miAuth OBJ_set_msgExt,3L - -#define SN_setext_pinSecure "setext-pinSecure" -#define NID_setext_pinSecure 603 -#define OBJ_setext_pinSecure OBJ_set_msgExt,4L - -#define SN_setext_pinAny "setext-pinAny" -#define NID_setext_pinAny 604 -#define OBJ_setext_pinAny OBJ_set_msgExt,5L - -#define SN_setext_track2 "setext-track2" -#define NID_setext_track2 605 -#define OBJ_setext_track2 OBJ_set_msgExt,7L - -#define SN_setext_cv "setext-cv" -#define LN_setext_cv "additional verification" -#define NID_setext_cv 606 -#define OBJ_setext_cv OBJ_set_msgExt,8L - -#define SN_set_policy_root "set-policy-root" -#define NID_set_policy_root 607 -#define OBJ_set_policy_root OBJ_set_policy,0L - -#define SN_setCext_hashedRoot "setCext-hashedRoot" -#define NID_setCext_hashedRoot 608 -#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L - -#define SN_setCext_certType "setCext-certType" -#define NID_setCext_certType 609 -#define OBJ_setCext_certType OBJ_set_certExt,1L - -#define SN_setCext_merchData "setCext-merchData" -#define NID_setCext_merchData 610 -#define OBJ_setCext_merchData OBJ_set_certExt,2L - -#define SN_setCext_cCertRequired "setCext-cCertRequired" -#define NID_setCext_cCertRequired 611 -#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L - -#define SN_setCext_tunneling "setCext-tunneling" -#define NID_setCext_tunneling 612 -#define OBJ_setCext_tunneling OBJ_set_certExt,4L - -#define SN_setCext_setExt "setCext-setExt" -#define NID_setCext_setExt 613 -#define OBJ_setCext_setExt OBJ_set_certExt,5L - -#define SN_setCext_setQualf "setCext-setQualf" -#define NID_setCext_setQualf 614 -#define OBJ_setCext_setQualf OBJ_set_certExt,6L - -#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" -#define NID_setCext_PGWYcapabilities 615 -#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L - -#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" -#define NID_setCext_TokenIdentifier 616 -#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L - -#define SN_setCext_Track2Data "setCext-Track2Data" -#define NID_setCext_Track2Data 617 -#define OBJ_setCext_Track2Data OBJ_set_certExt,9L - -#define SN_setCext_TokenType "setCext-TokenType" -#define NID_setCext_TokenType 618 -#define OBJ_setCext_TokenType OBJ_set_certExt,10L - -#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" -#define NID_setCext_IssuerCapabilities 619 -#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L - -#define SN_setAttr_Cert "setAttr-Cert" -#define NID_setAttr_Cert 620 -#define OBJ_setAttr_Cert OBJ_set_attr,0L - -#define SN_setAttr_PGWYcap "setAttr-PGWYcap" -#define LN_setAttr_PGWYcap "payment gateway capabilities" -#define NID_setAttr_PGWYcap 621 -#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L - -#define SN_setAttr_TokenType "setAttr-TokenType" -#define NID_setAttr_TokenType 622 -#define OBJ_setAttr_TokenType OBJ_set_attr,2L - -#define SN_setAttr_IssCap "setAttr-IssCap" -#define LN_setAttr_IssCap "issuer capabilities" -#define NID_setAttr_IssCap 623 -#define OBJ_setAttr_IssCap OBJ_set_attr,3L - -#define SN_set_rootKeyThumb "set-rootKeyThumb" -#define NID_set_rootKeyThumb 624 -#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L - -#define SN_set_addPolicy "set-addPolicy" -#define NID_set_addPolicy 625 -#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L - -#define SN_setAttr_Token_EMV "setAttr-Token-EMV" -#define NID_setAttr_Token_EMV 626 -#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L - -#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" -#define NID_setAttr_Token_B0Prime 627 -#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L - -#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" -#define NID_setAttr_IssCap_CVM 628 -#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L - -#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" -#define NID_setAttr_IssCap_T2 629 -#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L - -#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" -#define NID_setAttr_IssCap_Sig 630 -#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L - -#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" -#define LN_setAttr_GenCryptgrm "generate cryptogram" -#define NID_setAttr_GenCryptgrm 631 -#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L - -#define SN_setAttr_T2Enc "setAttr-T2Enc" -#define LN_setAttr_T2Enc "encrypted track 2" -#define NID_setAttr_T2Enc 632 -#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L - -#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" -#define LN_setAttr_T2cleartxt "cleartext track 2" -#define NID_setAttr_T2cleartxt 633 -#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L - -#define SN_setAttr_TokICCsig "setAttr-TokICCsig" -#define LN_setAttr_TokICCsig "ICC or token signature" -#define NID_setAttr_TokICCsig 634 -#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L - -#define SN_setAttr_SecDevSig "setAttr-SecDevSig" -#define LN_setAttr_SecDevSig "secure device signature" -#define NID_setAttr_SecDevSig 635 -#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L - -#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" -#define NID_set_brand_IATA_ATA 636 -#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L - -#define SN_set_brand_Diners "set-brand-Diners" -#define NID_set_brand_Diners 637 -#define OBJ_set_brand_Diners OBJ_set_brand,30L - -#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" -#define NID_set_brand_AmericanExpress 638 -#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L - -#define SN_set_brand_JCB "set-brand-JCB" -#define NID_set_brand_JCB 639 -#define OBJ_set_brand_JCB OBJ_set_brand,35L - -#define SN_set_brand_Visa "set-brand-Visa" -#define NID_set_brand_Visa 640 -#define OBJ_set_brand_Visa OBJ_set_brand,4L - -#define SN_set_brand_MasterCard "set-brand-MasterCard" -#define NID_set_brand_MasterCard 641 -#define OBJ_set_brand_MasterCard OBJ_set_brand,5L - -#define SN_set_brand_Novus "set-brand-Novus" -#define NID_set_brand_Novus 642 -#define OBJ_set_brand_Novus OBJ_set_brand,6011L - -#define SN_des_cdmf "DES-CDMF" -#define LN_des_cdmf "des-cdmf" -#define NID_des_cdmf 643 -#define OBJ_des_cdmf OBJ_rsadsi,3L,10L - -#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" -#define NID_rsaOAEPEncryptionSET 644 -#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L - -#define SN_ipsec3 "Oakley-EC2N-3" -#define LN_ipsec3 "ipsec3" -#define NID_ipsec3 749 - -#define SN_ipsec4 "Oakley-EC2N-4" -#define LN_ipsec4 "ipsec4" -#define NID_ipsec4 750 - -#define SN_whirlpool "whirlpool" -#define NID_whirlpool 804 -#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L - -#define SN_cryptopro "cryptopro" -#define NID_cryptopro 805 -#define OBJ_cryptopro OBJ_member_body,643L,2L,2L - -#define SN_cryptocom "cryptocom" -#define NID_cryptocom 806 -#define OBJ_cryptocom OBJ_member_body,643L,2L,9L - -#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" -#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" -#define NID_id_GostR3411_94_with_GostR3410_2001 807 -#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L - -#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" -#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" -#define NID_id_GostR3411_94_with_GostR3410_94 808 -#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L - -#define SN_id_GostR3411_94 "md_gost94" -#define LN_id_GostR3411_94 "GOST R 34.11-94" -#define NID_id_GostR3411_94 809 -#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L - -#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" -#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" -#define NID_id_HMACGostR3411_94 810 -#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L - -#define SN_id_GostR3410_2001 "gost2001" -#define LN_id_GostR3410_2001 "GOST R 34.10-2001" -#define NID_id_GostR3410_2001 811 -#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L - -#define SN_id_GostR3410_94 "gost94" -#define LN_id_GostR3410_94 "GOST R 34.10-94" -#define NID_id_GostR3410_94 812 -#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L - -#define SN_id_Gost28147_89 "gost89" -#define LN_id_Gost28147_89 "GOST 28147-89" -#define NID_id_Gost28147_89 813 -#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L - -#define SN_gost89_cnt "gost89-cnt" -#define NID_gost89_cnt 814 - -#define SN_id_Gost28147_89_MAC "gost-mac" -#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" -#define NID_id_Gost28147_89_MAC 815 -#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L - -#define SN_id_GostR3411_94_prf "prf-gostr3411-94" -#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" -#define NID_id_GostR3411_94_prf 816 -#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L - -#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" -#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" -#define NID_id_GostR3410_2001DH 817 -#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L - -#define SN_id_GostR3410_94DH "id-GostR3410-94DH" -#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" -#define NID_id_GostR3410_94DH 818 -#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L - -#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" -#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 -#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L - -#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" -#define NID_id_Gost28147_89_None_KeyMeshing 820 -#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L - -#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" -#define NID_id_GostR3411_94_TestParamSet 821 -#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L - -#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" -#define NID_id_GostR3411_94_CryptoProParamSet 822 -#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L - -#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" -#define NID_id_Gost28147_89_TestParamSet 823 -#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L - -#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 -#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L - -#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 -#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L - -#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 -#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L - -#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 -#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L - -#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 -#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L - -#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" -#define NID_id_GostR3410_94_TestParamSet 831 -#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L - -#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 -#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L - -#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 -#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L - -#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 -#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L - -#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 -#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L - -#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 -#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L - -#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 -#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L - -#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 -#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L - -#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" -#define NID_id_GostR3410_2001_TestParamSet 839 -#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L - -#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 -#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L - -#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 -#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L - -#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 -#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L - -#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 -#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L - -#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 -#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L - -#define SN_id_GostR3410_94_a "id-GostR3410-94-a" -#define NID_id_GostR3410_94_a 845 -#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L - -#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" -#define NID_id_GostR3410_94_aBis 846 -#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L - -#define SN_id_GostR3410_94_b "id-GostR3410-94-b" -#define NID_id_GostR3410_94_b 847 -#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L - -#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" -#define NID_id_GostR3410_94_bBis 848 -#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L - -#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" -#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" -#define NID_id_Gost28147_89_cc 849 -#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L - -#define SN_id_GostR3410_94_cc "gost94cc" -#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" -#define NID_id_GostR3410_94_cc 850 -#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L - -#define SN_id_GostR3410_2001_cc "gost2001cc" -#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" -#define NID_id_GostR3410_2001_cc 851 -#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L - -#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" -#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 -#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L - -#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" -#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 -#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L - -#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" -#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" -#define NID_id_GostR3410_2001_ParamSet_cc 854 -#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L - -#define SN_camellia_128_cbc "CAMELLIA-128-CBC" -#define LN_camellia_128_cbc "camellia-128-cbc" -#define NID_camellia_128_cbc 751 -#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L - -#define SN_camellia_192_cbc "CAMELLIA-192-CBC" -#define LN_camellia_192_cbc "camellia-192-cbc" -#define NID_camellia_192_cbc 752 -#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L - -#define SN_camellia_256_cbc "CAMELLIA-256-CBC" -#define LN_camellia_256_cbc "camellia-256-cbc" -#define NID_camellia_256_cbc 753 -#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L - -#define SN_id_camellia128_wrap "id-camellia128-wrap" -#define NID_id_camellia128_wrap 907 -#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L - -#define SN_id_camellia192_wrap "id-camellia192-wrap" -#define NID_id_camellia192_wrap 908 -#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L - -#define SN_id_camellia256_wrap "id-camellia256-wrap" -#define NID_id_camellia256_wrap 909 -#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L - -#define OBJ_ntt_ds 0L,3L,4401L,5L - -#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L - -#define SN_camellia_128_ecb "CAMELLIA-128-ECB" -#define LN_camellia_128_ecb "camellia-128-ecb" -#define NID_camellia_128_ecb 754 -#define OBJ_camellia_128_ecb OBJ_camellia,1L - -#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" -#define LN_camellia_128_ofb128 "camellia-128-ofb" -#define NID_camellia_128_ofb128 766 -#define OBJ_camellia_128_ofb128 OBJ_camellia,3L - -#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" -#define LN_camellia_128_cfb128 "camellia-128-cfb" -#define NID_camellia_128_cfb128 757 -#define OBJ_camellia_128_cfb128 OBJ_camellia,4L - -#define SN_camellia_192_ecb "CAMELLIA-192-ECB" -#define LN_camellia_192_ecb "camellia-192-ecb" -#define NID_camellia_192_ecb 755 -#define OBJ_camellia_192_ecb OBJ_camellia,21L - -#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" -#define LN_camellia_192_ofb128 "camellia-192-ofb" -#define NID_camellia_192_ofb128 767 -#define OBJ_camellia_192_ofb128 OBJ_camellia,23L - -#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" -#define LN_camellia_192_cfb128 "camellia-192-cfb" -#define NID_camellia_192_cfb128 758 -#define OBJ_camellia_192_cfb128 OBJ_camellia,24L - -#define SN_camellia_256_ecb "CAMELLIA-256-ECB" -#define LN_camellia_256_ecb "camellia-256-ecb" -#define NID_camellia_256_ecb 756 -#define OBJ_camellia_256_ecb OBJ_camellia,41L - -#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" -#define LN_camellia_256_ofb128 "camellia-256-ofb" -#define NID_camellia_256_ofb128 768 -#define OBJ_camellia_256_ofb128 OBJ_camellia,43L - -#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" -#define LN_camellia_256_cfb128 "camellia-256-cfb" -#define NID_camellia_256_cfb128 759 -#define OBJ_camellia_256_cfb128 OBJ_camellia,44L - -#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" -#define LN_camellia_128_cfb1 "camellia-128-cfb1" -#define NID_camellia_128_cfb1 760 - -#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" -#define LN_camellia_192_cfb1 "camellia-192-cfb1" -#define NID_camellia_192_cfb1 761 - -#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" -#define LN_camellia_256_cfb1 "camellia-256-cfb1" -#define NID_camellia_256_cfb1 762 - -#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" -#define LN_camellia_128_cfb8 "camellia-128-cfb8" -#define NID_camellia_128_cfb8 763 - -#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" -#define LN_camellia_192_cfb8 "camellia-192-cfb8" -#define NID_camellia_192_cfb8 764 - -#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" -#define LN_camellia_256_cfb8 "camellia-256-cfb8" -#define NID_camellia_256_cfb8 765 - -#define SN_kisa "KISA" -#define LN_kisa "kisa" -#define NID_kisa 773 -#define OBJ_kisa OBJ_member_body,410L,200004L - -#define SN_seed_ecb "SEED-ECB" -#define LN_seed_ecb "seed-ecb" -#define NID_seed_ecb 776 -#define OBJ_seed_ecb OBJ_kisa,1L,3L - -#define SN_seed_cbc "SEED-CBC" -#define LN_seed_cbc "seed-cbc" -#define NID_seed_cbc 777 -#define OBJ_seed_cbc OBJ_kisa,1L,4L - -#define SN_seed_cfb128 "SEED-CFB" -#define LN_seed_cfb128 "seed-cfb" -#define NID_seed_cfb128 779 -#define OBJ_seed_cfb128 OBJ_kisa,1L,5L - -#define SN_seed_ofb128 "SEED-OFB" -#define LN_seed_ofb128 "seed-ofb" -#define NID_seed_ofb128 778 -#define OBJ_seed_ofb128 OBJ_kisa,1L,6L - -#define SN_hmac "HMAC" -#define LN_hmac "hmac" -#define NID_hmac 855 - -#define SN_cmac "CMAC" -#define LN_cmac "cmac" -#define NID_cmac 894 - -#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" -#define LN_rc4_hmac_md5 "rc4-hmac-md5" -#define NID_rc4_hmac_md5 915 - -#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" -#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" -#define NID_aes_128_cbc_hmac_sha1 916 - -#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" -#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" -#define NID_aes_192_cbc_hmac_sha1 917 - -#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" -#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" -#define NID_aes_256_cbc_hmac_sha1 918 - -#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" -#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" -#define NID_aes_128_cbc_hmac_sha256 948 - -#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" -#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" -#define NID_aes_192_cbc_hmac_sha256 949 - -#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" -#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" -#define NID_aes_256_cbc_hmac_sha256 950 - -#define SN_dhpublicnumber "dhpublicnumber" -#define LN_dhpublicnumber "X9.42 DH" -#define NID_dhpublicnumber 920 -#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L - -#define SN_brainpoolP160r1 "brainpoolP160r1" -#define NID_brainpoolP160r1 921 -#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L - -#define SN_brainpoolP160t1 "brainpoolP160t1" -#define NID_brainpoolP160t1 922 -#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L - -#define SN_brainpoolP192r1 "brainpoolP192r1" -#define NID_brainpoolP192r1 923 -#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L - -#define SN_brainpoolP192t1 "brainpoolP192t1" -#define NID_brainpoolP192t1 924 -#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L - -#define SN_brainpoolP224r1 "brainpoolP224r1" -#define NID_brainpoolP224r1 925 -#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L - -#define SN_brainpoolP224t1 "brainpoolP224t1" -#define NID_brainpoolP224t1 926 -#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L - -#define SN_brainpoolP256r1 "brainpoolP256r1" -#define NID_brainpoolP256r1 927 -#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L - -#define SN_brainpoolP256t1 "brainpoolP256t1" -#define NID_brainpoolP256t1 928 -#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L - -#define SN_brainpoolP320r1 "brainpoolP320r1" -#define NID_brainpoolP320r1 929 -#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L - -#define SN_brainpoolP320t1 "brainpoolP320t1" -#define NID_brainpoolP320t1 930 -#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L - -#define SN_brainpoolP384r1 "brainpoolP384r1" -#define NID_brainpoolP384r1 931 -#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L - -#define SN_brainpoolP384t1 "brainpoolP384t1" -#define NID_brainpoolP384t1 932 -#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L - -#define SN_brainpoolP512r1 "brainpoolP512r1" -#define NID_brainpoolP512r1 933 -#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L - -#define SN_brainpoolP512t1 "brainpoolP512t1" -#define NID_brainpoolP512t1 934 -#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L - -#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L - -#define OBJ_secg_scheme OBJ_certicom_arc,1L - -#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" -#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 -#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L - -#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" -#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 -#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L - -#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" -#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 -#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L - -#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" -#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 -#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L - -#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" -#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 -#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L - -#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 -#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L - -#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 -#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L - -#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 -#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L - -#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 -#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L - -#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 -#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L - -#define SN_dh_std_kdf "dh-std-kdf" -#define NID_dh_std_kdf 946 - -#define SN_dh_cofactor_kdf "dh-cofactor-kdf" -#define NID_dh_cofactor_kdf 947 - -#define SN_ct_precert_scts "ct_precert_scts" -#define LN_ct_precert_scts "CT Precertificate SCTs" -#define NID_ct_precert_scts 951 -#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L - -#define SN_ct_precert_poison "ct_precert_poison" -#define LN_ct_precert_poison "CT Precertificate Poison" -#define NID_ct_precert_poison 952 -#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L - -#define SN_ct_precert_signer "ct_precert_signer" -#define LN_ct_precert_signer "CT Precertificate Signer" -#define NID_ct_precert_signer 953 -#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L - -#define SN_ct_cert_scts "ct_cert_scts" -#define LN_ct_cert_scts "CT Certificate SCTs" -#define NID_ct_cert_scts 954 -#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L - -#define SN_jurisdictionLocalityName "jurisdictionL" -#define LN_jurisdictionLocalityName "jurisdictionLocalityName" -#define NID_jurisdictionLocalityName 955 -#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L - -#define SN_jurisdictionStateOrProvinceName "jurisdictionST" -#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" -#define NID_jurisdictionStateOrProvinceName 956 -#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L - -#define SN_jurisdictionCountryName "jurisdictionC" -#define LN_jurisdictionCountryName "jurisdictionCountryName" -#define NID_jurisdictionCountryName 957 -#define OBJ_jurisdictionCountryName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,3L diff --git a/3rdparty/openssl/include/openssl/objects.h b/3rdparty/openssl/include/openssl/objects.h deleted file mode 100644 index b8dafa8..0000000 --- a/3rdparty/openssl/include/openssl/objects.h +++ /dev/null @@ -1,1143 +0,0 @@ -/* crypto/objects/objects.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_OBJECTS_H -# define HEADER_OBJECTS_H - -# define USE_OBJ_MAC - -# ifdef USE_OBJ_MAC -# include -# else -# define SN_undef "UNDEF" -# define LN_undef "undefined" -# define NID_undef 0 -# define OBJ_undef 0L - -# define SN_Algorithm "Algorithm" -# define LN_algorithm "algorithm" -# define NID_algorithm 38 -# define OBJ_algorithm 1L,3L,14L,3L,2L - -# define LN_rsadsi "rsadsi" -# define NID_rsadsi 1 -# define OBJ_rsadsi 1L,2L,840L,113549L - -# define LN_pkcs "pkcs" -# define NID_pkcs 2 -# define OBJ_pkcs OBJ_rsadsi,1L - -# define SN_md2 "MD2" -# define LN_md2 "md2" -# define NID_md2 3 -# define OBJ_md2 OBJ_rsadsi,2L,2L - -# define SN_md5 "MD5" -# define LN_md5 "md5" -# define NID_md5 4 -# define OBJ_md5 OBJ_rsadsi,2L,5L - -# define SN_rc4 "RC4" -# define LN_rc4 "rc4" -# define NID_rc4 5 -# define OBJ_rc4 OBJ_rsadsi,3L,4L - -# define LN_rsaEncryption "rsaEncryption" -# define NID_rsaEncryption 6 -# define OBJ_rsaEncryption OBJ_pkcs,1L,1L - -# define SN_md2WithRSAEncryption "RSA-MD2" -# define LN_md2WithRSAEncryption "md2WithRSAEncryption" -# define NID_md2WithRSAEncryption 7 -# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L - -# define SN_md5WithRSAEncryption "RSA-MD5" -# define LN_md5WithRSAEncryption "md5WithRSAEncryption" -# define NID_md5WithRSAEncryption 8 -# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L - -# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -# define NID_pbeWithMD2AndDES_CBC 9 -# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L - -# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -# define NID_pbeWithMD5AndDES_CBC 10 -# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L - -# define LN_X500 "X500" -# define NID_X500 11 -# define OBJ_X500 2L,5L - -# define LN_X509 "X509" -# define NID_X509 12 -# define OBJ_X509 OBJ_X500,4L - -# define SN_commonName "CN" -# define LN_commonName "commonName" -# define NID_commonName 13 -# define OBJ_commonName OBJ_X509,3L - -# define SN_countryName "C" -# define LN_countryName "countryName" -# define NID_countryName 14 -# define OBJ_countryName OBJ_X509,6L - -# define SN_localityName "L" -# define LN_localityName "localityName" -# define NID_localityName 15 -# define OBJ_localityName OBJ_X509,7L - -/* Postal Address? PA */ - -/* should be "ST" (rfc1327) but MS uses 'S' */ -# define SN_stateOrProvinceName "ST" -# define LN_stateOrProvinceName "stateOrProvinceName" -# define NID_stateOrProvinceName 16 -# define OBJ_stateOrProvinceName OBJ_X509,8L - -# define SN_organizationName "O" -# define LN_organizationName "organizationName" -# define NID_organizationName 17 -# define OBJ_organizationName OBJ_X509,10L - -# define SN_organizationalUnitName "OU" -# define LN_organizationalUnitName "organizationalUnitName" -# define NID_organizationalUnitName 18 -# define OBJ_organizationalUnitName OBJ_X509,11L - -# define SN_rsa "RSA" -# define LN_rsa "rsa" -# define NID_rsa 19 -# define OBJ_rsa OBJ_X500,8L,1L,1L - -# define LN_pkcs7 "pkcs7" -# define NID_pkcs7 20 -# define OBJ_pkcs7 OBJ_pkcs,7L - -# define LN_pkcs7_data "pkcs7-data" -# define NID_pkcs7_data 21 -# define OBJ_pkcs7_data OBJ_pkcs7,1L - -# define LN_pkcs7_signed "pkcs7-signedData" -# define NID_pkcs7_signed 22 -# define OBJ_pkcs7_signed OBJ_pkcs7,2L - -# define LN_pkcs7_enveloped "pkcs7-envelopedData" -# define NID_pkcs7_enveloped 23 -# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -# define NID_pkcs7_signedAndEnveloped 24 -# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -# define LN_pkcs7_digest "pkcs7-digestData" -# define NID_pkcs7_digest 25 -# define OBJ_pkcs7_digest OBJ_pkcs7,5L - -# define LN_pkcs7_encrypted "pkcs7-encryptedData" -# define NID_pkcs7_encrypted 26 -# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -# define LN_pkcs3 "pkcs3" -# define NID_pkcs3 27 -# define OBJ_pkcs3 OBJ_pkcs,3L - -# define LN_dhKeyAgreement "dhKeyAgreement" -# define NID_dhKeyAgreement 28 -# define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -# define SN_des_ecb "DES-ECB" -# define LN_des_ecb "des-ecb" -# define NID_des_ecb 29 -# define OBJ_des_ecb OBJ_algorithm,6L - -# define SN_des_cfb64 "DES-CFB" -# define LN_des_cfb64 "des-cfb" -# define NID_des_cfb64 30 -/* IV + num */ -# define OBJ_des_cfb64 OBJ_algorithm,9L - -# define SN_des_cbc "DES-CBC" -# define LN_des_cbc "des-cbc" -# define NID_des_cbc 31 -/* IV */ -# define OBJ_des_cbc OBJ_algorithm,7L - -# define SN_des_ede "DES-EDE" -# define LN_des_ede "des-ede" -# define NID_des_ede 32 -/* ?? */ -# define OBJ_des_ede OBJ_algorithm,17L - -# define SN_des_ede3 "DES-EDE3" -# define LN_des_ede3 "des-ede3" -# define NID_des_ede3 33 - -# define SN_idea_cbc "IDEA-CBC" -# define LN_idea_cbc "idea-cbc" -# define NID_idea_cbc 34 -# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -# define SN_idea_cfb64 "IDEA-CFB" -# define LN_idea_cfb64 "idea-cfb" -# define NID_idea_cfb64 35 - -# define SN_idea_ecb "IDEA-ECB" -# define LN_idea_ecb "idea-ecb" -# define NID_idea_ecb 36 - -# define SN_rc2_cbc "RC2-CBC" -# define LN_rc2_cbc "rc2-cbc" -# define NID_rc2_cbc 37 -# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -# define SN_rc2_ecb "RC2-ECB" -# define LN_rc2_ecb "rc2-ecb" -# define NID_rc2_ecb 38 - -# define SN_rc2_cfb64 "RC2-CFB" -# define LN_rc2_cfb64 "rc2-cfb" -# define NID_rc2_cfb64 39 - -# define SN_rc2_ofb64 "RC2-OFB" -# define LN_rc2_ofb64 "rc2-ofb" -# define NID_rc2_ofb64 40 - -# define SN_sha "SHA" -# define LN_sha "sha" -# define NID_sha 41 -# define OBJ_sha OBJ_algorithm,18L - -# define SN_shaWithRSAEncryption "RSA-SHA" -# define LN_shaWithRSAEncryption "shaWithRSAEncryption" -# define NID_shaWithRSAEncryption 42 -# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -# define SN_des_ede_cbc "DES-EDE-CBC" -# define LN_des_ede_cbc "des-ede-cbc" -# define NID_des_ede_cbc 43 - -# define SN_des_ede3_cbc "DES-EDE3-CBC" -# define LN_des_ede3_cbc "des-ede3-cbc" -# define NID_des_ede3_cbc 44 -# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -# define SN_des_ofb64 "DES-OFB" -# define LN_des_ofb64 "des-ofb" -# define NID_des_ofb64 45 -# define OBJ_des_ofb64 OBJ_algorithm,8L - -# define SN_idea_ofb64 "IDEA-OFB" -# define LN_idea_ofb64 "idea-ofb" -# define NID_idea_ofb64 46 - -# define LN_pkcs9 "pkcs9" -# define NID_pkcs9 47 -# define OBJ_pkcs9 OBJ_pkcs,9L - -# define SN_pkcs9_emailAddress "Email" -# define LN_pkcs9_emailAddress "emailAddress" -# define NID_pkcs9_emailAddress 48 -# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -# define LN_pkcs9_unstructuredName "unstructuredName" -# define NID_pkcs9_unstructuredName 49 -# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -# define LN_pkcs9_contentType "contentType" -# define NID_pkcs9_contentType 50 -# define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -# define LN_pkcs9_messageDigest "messageDigest" -# define NID_pkcs9_messageDigest 51 -# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -# define LN_pkcs9_signingTime "signingTime" -# define NID_pkcs9_signingTime 52 -# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -# define LN_pkcs9_countersignature "countersignature" -# define NID_pkcs9_countersignature 53 -# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -# define LN_pkcs9_challengePassword "challengePassword" -# define NID_pkcs9_challengePassword 54 -# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -# define LN_pkcs9_unstructuredAddress "unstructuredAddress" -# define NID_pkcs9_unstructuredAddress 55 -# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -# define NID_pkcs9_extCertAttributes 56 -# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -# define SN_netscape "Netscape" -# define LN_netscape "Netscape Communications Corp." -# define NID_netscape 57 -# define OBJ_netscape 2L,16L,840L,1L,113730L - -# define SN_netscape_cert_extension "nsCertExt" -# define LN_netscape_cert_extension "Netscape Certificate Extension" -# define NID_netscape_cert_extension 58 -# define OBJ_netscape_cert_extension OBJ_netscape,1L - -# define SN_netscape_data_type "nsDataType" -# define LN_netscape_data_type "Netscape Data Type" -# define NID_netscape_data_type 59 -# define OBJ_netscape_data_type OBJ_netscape,2L - -# define SN_des_ede_cfb64 "DES-EDE-CFB" -# define LN_des_ede_cfb64 "des-ede-cfb" -# define NID_des_ede_cfb64 60 - -# define SN_des_ede3_cfb64 "DES-EDE3-CFB" -# define LN_des_ede3_cfb64 "des-ede3-cfb" -# define NID_des_ede3_cfb64 61 - -# define SN_des_ede_ofb64 "DES-EDE-OFB" -# define LN_des_ede_ofb64 "des-ede-ofb" -# define NID_des_ede_ofb64 62 - -# define SN_des_ede3_ofb64 "DES-EDE3-OFB" -# define LN_des_ede3_ofb64 "des-ede3-ofb" -# define NID_des_ede3_ofb64 63 - -/* I'm not sure about the object ID */ -# define SN_sha1 "SHA1" -# define LN_sha1 "sha1" -# define NID_sha1 64 -# define OBJ_sha1 OBJ_algorithm,26L -/* 28 Jun 1996 - eay */ -/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ - -# define SN_sha1WithRSAEncryption "RSA-SHA1" -# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -# define NID_sha1WithRSAEncryption 65 -# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L - -# define SN_dsaWithSHA "DSA-SHA" -# define LN_dsaWithSHA "dsaWithSHA" -# define NID_dsaWithSHA 66 -# define OBJ_dsaWithSHA OBJ_algorithm,13L - -# define SN_dsa_2 "DSA-old" -# define LN_dsa_2 "dsaEncryption-old" -# define NID_dsa_2 67 -# define OBJ_dsa_2 OBJ_algorithm,12L - -/* proposed by microsoft to RSA */ -# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -# define NID_pbeWithSHA1AndRC2_CBC 68 -# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L - -/* - * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined - * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely - * different. - */ -# define LN_id_pbkdf2 "PBKDF2" -# define NID_id_pbkdf2 69 -# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L - -# define SN_dsaWithSHA1_2 "DSA-SHA1-old" -# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -# define NID_dsaWithSHA1_2 70 -/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ -# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -# define SN_netscape_cert_type "nsCertType" -# define LN_netscape_cert_type "Netscape Cert Type" -# define NID_netscape_cert_type 71 -# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -# define SN_netscape_base_url "nsBaseUrl" -# define LN_netscape_base_url "Netscape Base Url" -# define NID_netscape_base_url 72 -# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -# define SN_netscape_revocation_url "nsRevocationUrl" -# define LN_netscape_revocation_url "Netscape Revocation Url" -# define NID_netscape_revocation_url 73 -# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -# define NID_netscape_ca_revocation_url 74 -# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -# define SN_netscape_renewal_url "nsRenewalUrl" -# define LN_netscape_renewal_url "Netscape Renewal Url" -# define NID_netscape_renewal_url 75 -# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -# define SN_netscape_ca_policy_url "nsCaPolicyUrl" -# define LN_netscape_ca_policy_url "Netscape CA Policy Url" -# define NID_netscape_ca_policy_url 76 -# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -# define SN_netscape_ssl_server_name "nsSslServerName" -# define LN_netscape_ssl_server_name "Netscape SSL Server Name" -# define NID_netscape_ssl_server_name 77 -# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -# define SN_netscape_comment "nsComment" -# define LN_netscape_comment "Netscape Comment" -# define NID_netscape_comment 78 -# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -# define SN_netscape_cert_sequence "nsCertSequence" -# define LN_netscape_cert_sequence "Netscape Certificate Sequence" -# define NID_netscape_cert_sequence 79 -# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -# define SN_desx_cbc "DESX-CBC" -# define LN_desx_cbc "desx-cbc" -# define NID_desx_cbc 80 - -# define SN_id_ce "id-ce" -# define NID_id_ce 81 -# define OBJ_id_ce 2L,5L,29L - -# define SN_subject_key_identifier "subjectKeyIdentifier" -# define LN_subject_key_identifier "X509v3 Subject Key Identifier" -# define NID_subject_key_identifier 82 -# define OBJ_subject_key_identifier OBJ_id_ce,14L - -# define SN_key_usage "keyUsage" -# define LN_key_usage "X509v3 Key Usage" -# define NID_key_usage 83 -# define OBJ_key_usage OBJ_id_ce,15L - -# define SN_private_key_usage_period "privateKeyUsagePeriod" -# define LN_private_key_usage_period "X509v3 Private Key Usage Period" -# define NID_private_key_usage_period 84 -# define OBJ_private_key_usage_period OBJ_id_ce,16L - -# define SN_subject_alt_name "subjectAltName" -# define LN_subject_alt_name "X509v3 Subject Alternative Name" -# define NID_subject_alt_name 85 -# define OBJ_subject_alt_name OBJ_id_ce,17L - -# define SN_issuer_alt_name "issuerAltName" -# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -# define NID_issuer_alt_name 86 -# define OBJ_issuer_alt_name OBJ_id_ce,18L - -# define SN_basic_constraints "basicConstraints" -# define LN_basic_constraints "X509v3 Basic Constraints" -# define NID_basic_constraints 87 -# define OBJ_basic_constraints OBJ_id_ce,19L - -# define SN_crl_number "crlNumber" -# define LN_crl_number "X509v3 CRL Number" -# define NID_crl_number 88 -# define OBJ_crl_number OBJ_id_ce,20L - -# define SN_certificate_policies "certificatePolicies" -# define LN_certificate_policies "X509v3 Certificate Policies" -# define NID_certificate_policies 89 -# define OBJ_certificate_policies OBJ_id_ce,32L - -# define SN_authority_key_identifier "authorityKeyIdentifier" -# define LN_authority_key_identifier "X509v3 Authority Key Identifier" -# define NID_authority_key_identifier 90 -# define OBJ_authority_key_identifier OBJ_id_ce,35L - -# define SN_bf_cbc "BF-CBC" -# define LN_bf_cbc "bf-cbc" -# define NID_bf_cbc 91 -# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -# define SN_bf_ecb "BF-ECB" -# define LN_bf_ecb "bf-ecb" -# define NID_bf_ecb 92 - -# define SN_bf_cfb64 "BF-CFB" -# define LN_bf_cfb64 "bf-cfb" -# define NID_bf_cfb64 93 - -# define SN_bf_ofb64 "BF-OFB" -# define LN_bf_ofb64 "bf-ofb" -# define NID_bf_ofb64 94 - -# define SN_mdc2 "MDC2" -# define LN_mdc2 "mdc2" -# define NID_mdc2 95 -# define OBJ_mdc2 2L,5L,8L,3L,101L -/* An alternative? 1L,3L,14L,3L,2L,19L */ - -# define SN_mdc2WithRSA "RSA-MDC2" -# define LN_mdc2WithRSA "mdc2withRSA" -# define NID_mdc2WithRSA 96 -# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L - -# define SN_rc4_40 "RC4-40" -# define LN_rc4_40 "rc4-40" -# define NID_rc4_40 97 - -# define SN_rc2_40_cbc "RC2-40-CBC" -# define LN_rc2_40_cbc "rc2-40-cbc" -# define NID_rc2_40_cbc 98 - -# define SN_givenName "G" -# define LN_givenName "givenName" -# define NID_givenName 99 -# define OBJ_givenName OBJ_X509,42L - -# define SN_surname "S" -# define LN_surname "surname" -# define NID_surname 100 -# define OBJ_surname OBJ_X509,4L - -# define SN_initials "I" -# define LN_initials "initials" -# define NID_initials 101 -# define OBJ_initials OBJ_X509,43L - -# define SN_uniqueIdentifier "UID" -# define LN_uniqueIdentifier "uniqueIdentifier" -# define NID_uniqueIdentifier 102 -# define OBJ_uniqueIdentifier OBJ_X509,45L - -# define SN_crl_distribution_points "crlDistributionPoints" -# define LN_crl_distribution_points "X509v3 CRL Distribution Points" -# define NID_crl_distribution_points 103 -# define OBJ_crl_distribution_points OBJ_id_ce,31L - -# define SN_md5WithRSA "RSA-NP-MD5" -# define LN_md5WithRSA "md5WithRSA" -# define NID_md5WithRSA 104 -# define OBJ_md5WithRSA OBJ_algorithm,3L - -# define SN_serialNumber "SN" -# define LN_serialNumber "serialNumber" -# define NID_serialNumber 105 -# define OBJ_serialNumber OBJ_X509,5L - -# define SN_title "T" -# define LN_title "title" -# define NID_title 106 -# define OBJ_title OBJ_X509,12L - -# define SN_description "D" -# define LN_description "description" -# define NID_description 107 -# define OBJ_description OBJ_X509,13L - -/* CAST5 is CAST-128, I'm just sticking with the documentation */ -# define SN_cast5_cbc "CAST5-CBC" -# define LN_cast5_cbc "cast5-cbc" -# define NID_cast5_cbc 108 -# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L - -# define SN_cast5_ecb "CAST5-ECB" -# define LN_cast5_ecb "cast5-ecb" -# define NID_cast5_ecb 109 - -# define SN_cast5_cfb64 "CAST5-CFB" -# define LN_cast5_cfb64 "cast5-cfb" -# define NID_cast5_cfb64 110 - -# define SN_cast5_ofb64 "CAST5-OFB" -# define LN_cast5_ofb64 "cast5-ofb" -# define NID_cast5_ofb64 111 - -# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -# define NID_pbeWithMD5AndCast5_CBC 112 -# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L - -/*- - * This is one sun will soon be using :-( - * id-dsa-with-sha1 ID ::= { - * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } - */ -# define SN_dsaWithSHA1 "DSA-SHA1" -# define LN_dsaWithSHA1 "dsaWithSHA1" -# define NID_dsaWithSHA1 113 -# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L - -# define NID_md5_sha1 114 -# define SN_md5_sha1 "MD5-SHA1" -# define LN_md5_sha1 "md5-sha1" - -# define SN_sha1WithRSA "RSA-SHA1-2" -# define LN_sha1WithRSA "sha1WithRSA" -# define NID_sha1WithRSA 115 -# define OBJ_sha1WithRSA OBJ_algorithm,29L - -# define SN_dsa "DSA" -# define LN_dsa "dsaEncryption" -# define NID_dsa 116 -# define OBJ_dsa 1L,2L,840L,10040L,4L,1L - -# define SN_ripemd160 "RIPEMD160" -# define LN_ripemd160 "ripemd160" -# define NID_ripemd160 117 -# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -/* - * The name should actually be rsaSignatureWithripemd160, but I'm going to - * continue using the convention I'm using with the other ciphers - */ -# define SN_ripemd160WithRSA "RSA-RIPEMD160" -# define LN_ripemd160WithRSA "ripemd160WithRSA" -# define NID_ripemd160WithRSA 119 -# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -/*- - * Taken from rfc2040 - * RC5_CBC_Parameters ::= SEQUENCE { - * version INTEGER (v1_0(16)), - * rounds INTEGER (8..127), - * blockSizeInBits INTEGER (64, 128), - * iv OCTET STRING OPTIONAL - * } - */ -# define SN_rc5_cbc "RC5-CBC" -# define LN_rc5_cbc "rc5-cbc" -# define NID_rc5_cbc 120 -# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -# define SN_rc5_ecb "RC5-ECB" -# define LN_rc5_ecb "rc5-ecb" -# define NID_rc5_ecb 121 - -# define SN_rc5_cfb64 "RC5-CFB" -# define LN_rc5_cfb64 "rc5-cfb" -# define NID_rc5_cfb64 122 - -# define SN_rc5_ofb64 "RC5-OFB" -# define LN_rc5_ofb64 "rc5-ofb" -# define NID_rc5_ofb64 123 - -# define SN_rle_compression "RLE" -# define LN_rle_compression "run length compression" -# define NID_rle_compression 124 -# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L - -# define SN_zlib_compression "ZLIB" -# define LN_zlib_compression "zlib compression" -# define NID_zlib_compression 125 -# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L - -# define SN_ext_key_usage "extendedKeyUsage" -# define LN_ext_key_usage "X509v3 Extended Key Usage" -# define NID_ext_key_usage 126 -# define OBJ_ext_key_usage OBJ_id_ce,37 - -# define SN_id_pkix "PKIX" -# define NID_id_pkix 127 -# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -# define SN_id_kp "id-kp" -# define NID_id_kp 128 -# define OBJ_id_kp OBJ_id_pkix,3L - -/* PKIX extended key usage OIDs */ - -# define SN_server_auth "serverAuth" -# define LN_server_auth "TLS Web Server Authentication" -# define NID_server_auth 129 -# define OBJ_server_auth OBJ_id_kp,1L - -# define SN_client_auth "clientAuth" -# define LN_client_auth "TLS Web Client Authentication" -# define NID_client_auth 130 -# define OBJ_client_auth OBJ_id_kp,2L - -# define SN_code_sign "codeSigning" -# define LN_code_sign "Code Signing" -# define NID_code_sign 131 -# define OBJ_code_sign OBJ_id_kp,3L - -# define SN_email_protect "emailProtection" -# define LN_email_protect "E-mail Protection" -# define NID_email_protect 132 -# define OBJ_email_protect OBJ_id_kp,4L - -# define SN_time_stamp "timeStamping" -# define LN_time_stamp "Time Stamping" -# define NID_time_stamp 133 -# define OBJ_time_stamp OBJ_id_kp,8L - -/* Additional extended key usage OIDs: Microsoft */ - -# define SN_ms_code_ind "msCodeInd" -# define LN_ms_code_ind "Microsoft Individual Code Signing" -# define NID_ms_code_ind 134 -# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -# define SN_ms_code_com "msCodeCom" -# define LN_ms_code_com "Microsoft Commercial Code Signing" -# define NID_ms_code_com 135 -# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -# define SN_ms_ctl_sign "msCTLSign" -# define LN_ms_ctl_sign "Microsoft Trust List Signing" -# define NID_ms_ctl_sign 136 -# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -# define SN_ms_sgc "msSGC" -# define LN_ms_sgc "Microsoft Server Gated Crypto" -# define NID_ms_sgc 137 -# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -# define SN_ms_efs "msEFS" -# define LN_ms_efs "Microsoft Encrypted File System" -# define NID_ms_efs 138 -# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -/* Additional usage: Netscape */ - -# define SN_ns_sgc "nsSGC" -# define LN_ns_sgc "Netscape Server Gated Crypto" -# define NID_ns_sgc 139 -# define OBJ_ns_sgc OBJ_netscape,4L,1L - -# define SN_delta_crl "deltaCRL" -# define LN_delta_crl "X509v3 Delta CRL Indicator" -# define NID_delta_crl 140 -# define OBJ_delta_crl OBJ_id_ce,27L - -# define SN_crl_reason "CRLReason" -# define LN_crl_reason "CRL Reason Code" -# define NID_crl_reason 141 -# define OBJ_crl_reason OBJ_id_ce,21L - -# define SN_invalidity_date "invalidityDate" -# define LN_invalidity_date "Invalidity Date" -# define NID_invalidity_date 142 -# define OBJ_invalidity_date OBJ_id_ce,24L - -# define SN_sxnet "SXNetID" -# define LN_sxnet "Strong Extranet ID" -# define NID_sxnet 143 -# define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -/* PKCS12 and related OBJECT IDENTIFIERS */ - -# define OBJ_pkcs12 OBJ_pkcs,12L -# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 - -# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -# define NID_pbe_WithSHA1And128BitRC4 144 -# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L - -# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -# define NID_pbe_WithSHA1And40BitRC4 145 -# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L - -# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L - -# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L - -# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -# define NID_pbe_WithSHA1And128BitRC2_CBC 148 -# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L - -# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -# define NID_pbe_WithSHA1And40BitRC2_CBC 149 -# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L - -# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L - -# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L - -# define LN_keyBag "keyBag" -# define NID_keyBag 150 -# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L - -# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -# define NID_pkcs8ShroudedKeyBag 151 -# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L - -# define LN_certBag "certBag" -# define NID_certBag 152 -# define OBJ_certBag OBJ_pkcs12_BagIds, 3L - -# define LN_crlBag "crlBag" -# define NID_crlBag 153 -# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L - -# define LN_secretBag "secretBag" -# define NID_secretBag 154 -# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L - -# define LN_safeContentsBag "safeContentsBag" -# define NID_safeContentsBag 155 -# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L - -# define LN_friendlyName "friendlyName" -# define NID_friendlyName 156 -# define OBJ_friendlyName OBJ_pkcs9, 20L - -# define LN_localKeyID "localKeyID" -# define NID_localKeyID 157 -# define OBJ_localKeyID OBJ_pkcs9, 21L - -# define OBJ_certTypes OBJ_pkcs9, 22L - -# define LN_x509Certificate "x509Certificate" -# define NID_x509Certificate 158 -# define OBJ_x509Certificate OBJ_certTypes, 1L - -# define LN_sdsiCertificate "sdsiCertificate" -# define NID_sdsiCertificate 159 -# define OBJ_sdsiCertificate OBJ_certTypes, 2L - -# define OBJ_crlTypes OBJ_pkcs9, 23L - -# define LN_x509Crl "x509Crl" -# define NID_x509Crl 160 -# define OBJ_x509Crl OBJ_crlTypes, 1L - -/* PKCS#5 v2 OIDs */ - -# define LN_pbes2 "PBES2" -# define NID_pbes2 161 -# define OBJ_pbes2 OBJ_pkcs,5L,13L - -# define LN_pbmac1 "PBMAC1" -# define NID_pbmac1 162 -# define OBJ_pbmac1 OBJ_pkcs,5L,14L - -# define LN_hmacWithSHA1 "hmacWithSHA1" -# define NID_hmacWithSHA1 163 -# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -/* Policy Qualifier Ids */ - -# define LN_id_qt_cps "Policy Qualifier CPS" -# define SN_id_qt_cps "id-qt-cps" -# define NID_id_qt_cps 164 -# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L - -# define LN_id_qt_unotice "Policy Qualifier User Notice" -# define SN_id_qt_unotice "id-qt-unotice" -# define NID_id_qt_unotice 165 -# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L - -# define SN_rc2_64_cbc "RC2-64-CBC" -# define LN_rc2_64_cbc "rc2-64-cbc" -# define NID_rc2_64_cbc 166 - -# define SN_SMIMECapabilities "SMIME-CAPS" -# define LN_SMIMECapabilities "S/MIME Capabilities" -# define NID_SMIMECapabilities 167 -# define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -# define NID_pbeWithMD2AndRC2_CBC 168 -# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L - -# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -# define NID_pbeWithMD5AndRC2_CBC 169 -# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L - -# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -# define NID_pbeWithSHA1AndDES_CBC 170 -# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L - -/* Extension request OIDs */ - -# define LN_ms_ext_req "Microsoft Extension Request" -# define SN_ms_ext_req "msExtReq" -# define NID_ms_ext_req 171 -# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -# define LN_ext_req "Extension Request" -# define SN_ext_req "extReq" -# define NID_ext_req 172 -# define OBJ_ext_req OBJ_pkcs9,14L - -# define SN_name "name" -# define LN_name "name" -# define NID_name 173 -# define OBJ_name OBJ_X509,41L - -# define SN_dnQualifier "dnQualifier" -# define LN_dnQualifier "dnQualifier" -# define NID_dnQualifier 174 -# define OBJ_dnQualifier OBJ_X509,46L - -# define SN_id_pe "id-pe" -# define NID_id_pe 175 -# define OBJ_id_pe OBJ_id_pkix,1L - -# define SN_id_ad "id-ad" -# define NID_id_ad 176 -# define OBJ_id_ad OBJ_id_pkix,48L - -# define SN_info_access "authorityInfoAccess" -# define LN_info_access "Authority Information Access" -# define NID_info_access 177 -# define OBJ_info_access OBJ_id_pe,1L - -# define SN_ad_OCSP "OCSP" -# define LN_ad_OCSP "OCSP" -# define NID_ad_OCSP 178 -# define OBJ_ad_OCSP OBJ_id_ad,1L - -# define SN_ad_ca_issuers "caIssuers" -# define LN_ad_ca_issuers "CA Issuers" -# define NID_ad_ca_issuers 179 -# define OBJ_ad_ca_issuers OBJ_id_ad,2L - -# define SN_OCSP_sign "OCSPSigning" -# define LN_OCSP_sign "OCSP Signing" -# define NID_OCSP_sign 180 -# define OBJ_OCSP_sign OBJ_id_kp,9L -# endif /* USE_OBJ_MAC */ - -# include -# include - -# define OBJ_NAME_TYPE_UNDEF 0x00 -# define OBJ_NAME_TYPE_MD_METH 0x01 -# define OBJ_NAME_TYPE_CIPHER_METH 0x02 -# define OBJ_NAME_TYPE_PKEY_METH 0x03 -# define OBJ_NAME_TYPE_COMP_METH 0x04 -# define OBJ_NAME_TYPE_NUM 0x05 - -# define OBJ_NAME_ALIAS 0x8000 - -# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 -# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct obj_name_st { - int type; - int alias; - const char *name; - const char *data; -} OBJ_NAME; - -# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) - -int OBJ_NAME_init(void); -int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), - int (*cmp_func) (const char *, const char *), - void (*free_func) (const char *, int, const char *)); -const char *OBJ_NAME_get(const char *name, int type); -int OBJ_NAME_add(const char *name, int type, const char *data); -int OBJ_NAME_remove(const char *name, int type); -void OBJ_NAME_cleanup(int type); /* -1 for everything */ -void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), - void *arg); -void OBJ_NAME_do_all_sorted(int type, - void (*fn) (const OBJ_NAME *, void *arg), - void *arg); - -ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_nid2obj(int n); -const char *OBJ_nid2ln(int n); -const char *OBJ_nid2sn(int n); -int OBJ_obj2nid(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); -int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); -int OBJ_txt2nid(const char *s); -int OBJ_ln2nid(const char *s); -int OBJ_sn2nid(const char *s); -int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); -const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, - int (*cmp) (const void *, const void *)); -const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, - int size, - int (*cmp) (const void *, const void *), - int flags); - -# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ - static int nm##_cmp(type1 const *, type2 const *); \ - scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -/*- - * Unsolved problem: if a type is actually a pointer type, like - * nid_triple is, then its impossible to get a const where you need - * it. Consider: - * - * typedef int nid_triple[3]; - * const void *a_; - * const nid_triple const *a = a_; - * - * The assignement discards a const because what you really want is: - * - * const int const * const *a = a_; - * - * But if you do that, you lose the fact that a is an array of 3 ints, - * which breaks comparison functions. - * - * Thus we end up having to cast, sadly, or unpack the - * declarations. Or, as I finally did in this case, delcare nid_triple - * to be a struct, which it should have been in the first place. - * - * Ben, August 2008. - * - * Also, strictly speaking not all types need be const, but handling - * the non-constness means a lot of complication, and in practice - * comparison routines do always not touch their arguments. - */ - -# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ - ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN))) - -# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ - ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN)),flags) - -int OBJ_new_nid(int num); -int OBJ_add_object(const ASN1_OBJECT *obj); -int OBJ_create(const char *oid, const char *sn, const char *ln); -void OBJ_cleanup(void); -int OBJ_create_objects(BIO *in); - -int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); -int OBJ_find_sigid_by_algs(int *psignid, int dig_nid, int pkey_nid); -int OBJ_add_sigid(int signid, int dig_id, int pkey_id); -void OBJ_sigid_free(void); - -extern int obj_cleanup_defer; -void check_defer(int nid); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_OBJ_strings(void); - -/* Error codes for the OBJ functions. */ - -/* Function codes. */ -# define OBJ_F_OBJ_ADD_OBJECT 105 -# define OBJ_F_OBJ_CREATE 100 -# define OBJ_F_OBJ_DUP 101 -# define OBJ_F_OBJ_NAME_NEW_INDEX 106 -# define OBJ_F_OBJ_NID2LN 102 -# define OBJ_F_OBJ_NID2OBJ 103 -# define OBJ_F_OBJ_NID2SN 104 - -/* Reason codes. */ -# define OBJ_R_MALLOC_FAILURE 100 -# define OBJ_R_UNKNOWN_NID 101 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ocsp.h b/3rdparty/openssl/include/openssl/ocsp.h deleted file mode 100644 index ca2ee76..0000000 --- a/3rdparty/openssl/include/openssl/ocsp.h +++ /dev/null @@ -1,637 +0,0 @@ -/* ocsp.h */ -/* - * Written by Tom Titchener for the OpenSSL - * project. - */ - -/* - * History: This file was transfered to Richard Levitte from CertCo by Kathy - * Weinhold in mid-spring 2000 to be included in OpenSSL or released as a - * patch kit. - */ - -/* ==================================================================== - * Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_OCSP_H -# define HEADER_OCSP_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Various flags and values */ - -# define OCSP_DEFAULT_NONCE_LENGTH 16 - -# define OCSP_NOCERTS 0x1 -# define OCSP_NOINTERN 0x2 -# define OCSP_NOSIGS 0x4 -# define OCSP_NOCHAIN 0x8 -# define OCSP_NOVERIFY 0x10 -# define OCSP_NOEXPLICIT 0x20 -# define OCSP_NOCASIGN 0x40 -# define OCSP_NODELEGATED 0x80 -# define OCSP_NOCHECKS 0x100 -# define OCSP_TRUSTOTHER 0x200 -# define OCSP_RESPID_KEY 0x400 -# define OCSP_NOTIME 0x800 - -/*- CertID ::= SEQUENCE { - * hashAlgorithm AlgorithmIdentifier, - * issuerNameHash OCTET STRING, -- Hash of Issuer's DN - * issuerKeyHash OCTET STRING, -- Hash of Issuers public key (excluding the tag & length fields) - * serialNumber CertificateSerialNumber } - */ -typedef struct ocsp_cert_id_st { - X509_ALGOR *hashAlgorithm; - ASN1_OCTET_STRING *issuerNameHash; - ASN1_OCTET_STRING *issuerKeyHash; - ASN1_INTEGER *serialNumber; -} OCSP_CERTID; - -DECLARE_STACK_OF(OCSP_CERTID) - -/*- Request ::= SEQUENCE { - * reqCert CertID, - * singleRequestExtensions [0] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_one_request_st { - OCSP_CERTID *reqCert; - STACK_OF(X509_EXTENSION) *singleRequestExtensions; -} OCSP_ONEREQ; - -DECLARE_STACK_OF(OCSP_ONEREQ) -DECLARE_ASN1_SET_OF(OCSP_ONEREQ) - -/*- TBSRequest ::= SEQUENCE { - * version [0] EXPLICIT Version DEFAULT v1, - * requestorName [1] EXPLICIT GeneralName OPTIONAL, - * requestList SEQUENCE OF Request, - * requestExtensions [2] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_req_info_st { - ASN1_INTEGER *version; - GENERAL_NAME *requestorName; - STACK_OF(OCSP_ONEREQ) *requestList; - STACK_OF(X509_EXTENSION) *requestExtensions; -} OCSP_REQINFO; - -/*- Signature ::= SEQUENCE { - * signatureAlgorithm AlgorithmIdentifier, - * signature BIT STRING, - * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } - */ -typedef struct ocsp_signature_st { - X509_ALGOR *signatureAlgorithm; - ASN1_BIT_STRING *signature; - STACK_OF(X509) *certs; -} OCSP_SIGNATURE; - -/*- OCSPRequest ::= SEQUENCE { - * tbsRequest TBSRequest, - * optionalSignature [0] EXPLICIT Signature OPTIONAL } - */ -typedef struct ocsp_request_st { - OCSP_REQINFO *tbsRequest; - OCSP_SIGNATURE *optionalSignature; /* OPTIONAL */ -} OCSP_REQUEST; - -/*- OCSPResponseStatus ::= ENUMERATED { - * successful (0), --Response has valid confirmations - * malformedRequest (1), --Illegal confirmation request - * internalError (2), --Internal error in issuer - * tryLater (3), --Try again later - * --(4) is not used - * sigRequired (5), --Must sign the request - * unauthorized (6) --Request unauthorized - * } - */ -# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 -# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 -# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 -# define OCSP_RESPONSE_STATUS_TRYLATER 3 -# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 -# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 - -/*- ResponseBytes ::= SEQUENCE { - * responseType OBJECT IDENTIFIER, - * response OCTET STRING } - */ -typedef struct ocsp_resp_bytes_st { - ASN1_OBJECT *responseType; - ASN1_OCTET_STRING *response; -} OCSP_RESPBYTES; - -/*- OCSPResponse ::= SEQUENCE { - * responseStatus OCSPResponseStatus, - * responseBytes [0] EXPLICIT ResponseBytes OPTIONAL } - */ -struct ocsp_response_st { - ASN1_ENUMERATED *responseStatus; - OCSP_RESPBYTES *responseBytes; -}; - -/*- ResponderID ::= CHOICE { - * byName [1] Name, - * byKey [2] KeyHash } - */ -# define V_OCSP_RESPID_NAME 0 -# define V_OCSP_RESPID_KEY 1 -struct ocsp_responder_id_st { - int type; - union { - X509_NAME *byName; - ASN1_OCTET_STRING *byKey; - } value; -}; - -DECLARE_STACK_OF(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) - -/*- KeyHash ::= OCTET STRING --SHA-1 hash of responder's public key - * --(excluding the tag and length fields) - */ - -/*- RevokedInfo ::= SEQUENCE { - * revocationTime GeneralizedTime, - * revocationReason [0] EXPLICIT CRLReason OPTIONAL } - */ -typedef struct ocsp_revoked_info_st { - ASN1_GENERALIZEDTIME *revocationTime; - ASN1_ENUMERATED *revocationReason; -} OCSP_REVOKEDINFO; - -/*- CertStatus ::= CHOICE { - * good [0] IMPLICIT NULL, - * revoked [1] IMPLICIT RevokedInfo, - * unknown [2] IMPLICIT UnknownInfo } - */ -# define V_OCSP_CERTSTATUS_GOOD 0 -# define V_OCSP_CERTSTATUS_REVOKED 1 -# define V_OCSP_CERTSTATUS_UNKNOWN 2 -typedef struct ocsp_cert_status_st { - int type; - union { - ASN1_NULL *good; - OCSP_REVOKEDINFO *revoked; - ASN1_NULL *unknown; - } value; -} OCSP_CERTSTATUS; - -/*- SingleResponse ::= SEQUENCE { - * certID CertID, - * certStatus CertStatus, - * thisUpdate GeneralizedTime, - * nextUpdate [0] EXPLICIT GeneralizedTime OPTIONAL, - * singleExtensions [1] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_single_response_st { - OCSP_CERTID *certId; - OCSP_CERTSTATUS *certStatus; - ASN1_GENERALIZEDTIME *thisUpdate; - ASN1_GENERALIZEDTIME *nextUpdate; - STACK_OF(X509_EXTENSION) *singleExtensions; -} OCSP_SINGLERESP; - -DECLARE_STACK_OF(OCSP_SINGLERESP) -DECLARE_ASN1_SET_OF(OCSP_SINGLERESP) - -/*- ResponseData ::= SEQUENCE { - * version [0] EXPLICIT Version DEFAULT v1, - * responderID ResponderID, - * producedAt GeneralizedTime, - * responses SEQUENCE OF SingleResponse, - * responseExtensions [1] EXPLICIT Extensions OPTIONAL } - */ -typedef struct ocsp_response_data_st { - ASN1_INTEGER *version; - OCSP_RESPID *responderId; - ASN1_GENERALIZEDTIME *producedAt; - STACK_OF(OCSP_SINGLERESP) *responses; - STACK_OF(X509_EXTENSION) *responseExtensions; -} OCSP_RESPDATA; - -/*- BasicOCSPResponse ::= SEQUENCE { - * tbsResponseData ResponseData, - * signatureAlgorithm AlgorithmIdentifier, - * signature BIT STRING, - * certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL } - */ - /* - * Note 1: The value for "signature" is specified in the OCSP rfc2560 as - * follows: "The value for the signature SHALL be computed on the hash of - * the DER encoding ResponseData." This means that you must hash the - * DER-encoded tbsResponseData, and then run it through a crypto-signing - * function, which will (at least w/RSA) do a hash-'n'-private-encrypt - * operation. This seems a bit odd, but that's the spec. Also note that - * the data structures do not leave anywhere to independently specify the - * algorithm used for the initial hash. So, we look at the - * signature-specification algorithm, and try to do something intelligent. - * -- Kathy Weinhold, CertCo - */ - /* - * Note 2: It seems that the mentioned passage from RFC 2560 (section - * 4.2.1) is open for interpretation. I've done tests against another - * responder, and found that it doesn't do the double hashing that the RFC - * seems to say one should. Therefore, all relevant functions take a flag - * saying which variant should be used. -- Richard Levitte, OpenSSL team - * and CeloCom - */ -typedef struct ocsp_basic_response_st { - OCSP_RESPDATA *tbsResponseData; - X509_ALGOR *signatureAlgorithm; - ASN1_BIT_STRING *signature; - STACK_OF(X509) *certs; -} OCSP_BASICRESP; - -/*- - * CRLReason ::= ENUMERATED { - * unspecified (0), - * keyCompromise (1), - * cACompromise (2), - * affiliationChanged (3), - * superseded (4), - * cessationOfOperation (5), - * certificateHold (6), - * removeFromCRL (8) } - */ -# define OCSP_REVOKED_STATUS_NOSTATUS -1 -# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 -# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 -# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 -# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 -# define OCSP_REVOKED_STATUS_SUPERSEDED 4 -# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 -# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 -# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 - -/*- - * CrlID ::= SEQUENCE { - * crlUrl [0] EXPLICIT IA5String OPTIONAL, - * crlNum [1] EXPLICIT INTEGER OPTIONAL, - * crlTime [2] EXPLICIT GeneralizedTime OPTIONAL } - */ -typedef struct ocsp_crl_id_st { - ASN1_IA5STRING *crlUrl; - ASN1_INTEGER *crlNum; - ASN1_GENERALIZEDTIME *crlTime; -} OCSP_CRLID; - -/*- - * ServiceLocator ::= SEQUENCE { - * issuer Name, - * locator AuthorityInfoAccessSyntax OPTIONAL } - */ -typedef struct ocsp_service_locator_st { - X509_NAME *issuer; - STACK_OF(ACCESS_DESCRIPTION) *locator; -} OCSP_SERVICELOC; - -# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" -# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" - -# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) - -# define d2i_OCSP_RESPONSE_bio(bp,p) ASN1_d2i_bio_of(OCSP_RESPONSE,OCSP_RESPONSE_new,d2i_OCSP_RESPONSE,bp,p) - -# define PEM_read_bio_OCSP_REQUEST(bp,x,cb) (OCSP_REQUEST *)PEM_ASN1_read_bio( \ - (char *(*)())d2i_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,bp,(char **)x,cb,NULL) - -# define PEM_read_bio_OCSP_RESPONSE(bp,x,cb)(OCSP_RESPONSE *)PEM_ASN1_read_bio(\ - (char *(*)())d2i_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,bp,(char **)x,cb,NULL) - -# define PEM_write_bio_OCSP_REQUEST(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_REQUEST,PEM_STRING_OCSP_REQUEST,\ - bp,(char *)o, NULL,NULL,0,NULL,NULL) - -# define PEM_write_bio_OCSP_RESPONSE(bp,o) \ - PEM_ASN1_write_bio((int (*)())i2d_OCSP_RESPONSE,PEM_STRING_OCSP_RESPONSE,\ - bp,(char *)o, NULL,NULL,0,NULL,NULL) - -# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) - -# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) - -# define OCSP_REQUEST_sign(o,pkey,md) \ - ASN1_item_sign(ASN1_ITEM_rptr(OCSP_REQINFO),\ - o->optionalSignature->signatureAlgorithm,NULL,\ - o->optionalSignature->signature,o->tbsRequest,pkey,md) - -# define OCSP_BASICRESP_sign(o,pkey,md,d) \ - ASN1_item_sign(ASN1_ITEM_rptr(OCSP_RESPDATA),o->signatureAlgorithm,NULL,\ - o->signature,o->tbsResponseData,pkey,md) - -# define OCSP_REQUEST_verify(a,r) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_REQINFO),\ - a->optionalSignature->signatureAlgorithm,\ - a->optionalSignature->signature,a->tbsRequest,r) - -# define OCSP_BASICRESP_verify(a,r,d) ASN1_item_verify(ASN1_ITEM_rptr(OCSP_RESPDATA),\ - a->signatureAlgorithm,a->signature,a->tbsResponseData,r) - -# define ASN1_BIT_STRING_digest(data,type,md,len) \ - ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) - -# define OCSP_CERTSTATUS_dup(cs)\ - (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ - (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) - -OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); - -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); -OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, - int maxline); -int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); -int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); -OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); -void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); -void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -int OCSP_REQ_CTX_nbio_d2i(OCSP_REQ_CTX *rctx, ASN1_VALUE **pval, - const ASN1_ITEM *it); -BIO *OCSP_REQ_CTX_get0_mem_bio(OCSP_REQ_CTX *rctx); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); -int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); -int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, - const char *name, const char *value); - -OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, X509 *subject, X509 *issuer); - -OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, - X509_NAME *issuerName, - ASN1_BIT_STRING *issuerKey, - ASN1_INTEGER *serialNumber); - -OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); - -int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); -int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); -int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); -int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); - -int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); -int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); - -int OCSP_request_sign(OCSP_REQUEST *req, - X509 *signer, - EVP_PKEY *key, - const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); - -int OCSP_response_status(OCSP_RESPONSE *resp); -OCSP_BASICRESP *OCSP_response_get1_basic(OCSP_RESPONSE *resp); - -int OCSP_resp_count(OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); -int OCSP_resp_find(OCSP_BASICRESP *bs, OCSP_CERTID *id, int last); -int OCSP_single_get0_status(OCSP_SINGLERESP *single, int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, - int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, - ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); - -int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, - X509_STORE *store, unsigned long flags); - -int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, - int *pssl); - -int OCSP_id_issuer_cmp(OCSP_CERTID *a, OCSP_CERTID *b); -int OCSP_id_cmp(OCSP_CERTID *a, OCSP_CERTID *b); - -int OCSP_request_onereq_count(OCSP_REQUEST *req); -OCSP_ONEREQ *OCSP_request_onereq_get0(OCSP_REQUEST *req, int i); -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); -int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, - ASN1_OCTET_STRING **pikeyHash, - ASN1_INTEGER **pserial, OCSP_CERTID *cid); -int OCSP_request_is_signed(OCSP_REQUEST *req); -OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, - OCSP_CERTID *cid, - int status, int reason, - ASN1_TIME *revtime, - ASN1_TIME *thisupd, - ASN1_TIME *nextupd); -int OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert); -int OCSP_basic_sign(OCSP_BASICRESP *brsp, - X509 *signer, EVP_PKEY *key, const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); - -X509_EXTENSION *OCSP_crlID_new(char *url, long *n, char *tim); - -X509_EXTENSION *OCSP_accept_responses_new(char **oids); - -X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); - -X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, char **urls); - -int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); -int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); -int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, ASN1_OBJECT *obj, - int lastpos); -int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); -X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); -X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); -void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, - int *idx); -int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); - -int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); -int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); -int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, ASN1_OBJECT *obj, int lastpos); -int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); -X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); -X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); -void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); -int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); - -int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); -int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); -int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, ASN1_OBJECT *obj, - int lastpos); -int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); -X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); -void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, - int *idx); -int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); - -int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); -int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); -int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, ASN1_OBJECT *obj, - int lastpos); -int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); -X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); -void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, - int *idx); -int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); - -DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) -DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) -DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) -DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) -DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) -DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) -DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) - -const char *OCSP_response_status_str(long s); -const char *OCSP_cert_status_str(long s); -const char *OCSP_crl_reason_str(long s); - -int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); -int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE *o, unsigned long flags); - -int OCSP_basic_verify(OCSP_BASICRESP *bs, STACK_OF(X509) *certs, - X509_STORE *st, unsigned long flags); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_OCSP_strings(void); - -/* Error codes for the OCSP functions. */ - -/* Function codes. */ -# define OCSP_F_ASN1_STRING_ENCODE 100 -# define OCSP_F_D2I_OCSP_NONCE 102 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 -# define OCSP_F_OCSP_BASIC_SIGN 104 -# define OCSP_F_OCSP_BASIC_VERIFY 105 -# define OCSP_F_OCSP_CERT_ID_NEW 101 -# define OCSP_F_OCSP_CHECK_DELEGATED 106 -# define OCSP_F_OCSP_CHECK_IDS 107 -# define OCSP_F_OCSP_CHECK_ISSUER 108 -# define OCSP_F_OCSP_CHECK_VALIDITY 115 -# define OCSP_F_OCSP_MATCH_ISSUERID 109 -# define OCSP_F_OCSP_PARSE_URL 114 -# define OCSP_F_OCSP_REQUEST_SIGN 110 -# define OCSP_F_OCSP_REQUEST_VERIFY 116 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 -# define OCSP_F_OCSP_SENDREQ_BIO 112 -# define OCSP_F_OCSP_SENDREQ_NBIO 117 -# define OCSP_F_PARSE_HTTP_LINE1 118 -# define OCSP_F_REQUEST_VERIFY 113 - -/* Reason codes. */ -# define OCSP_R_BAD_DATA 100 -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_ERROR_PARSING_URL 121 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_CONTENT 106 -# define OCSP_R_NO_PUBLIC_KEY 107 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SERVER_READ_ERROR 113 -# define OCSP_R_SERVER_RESPONSE_ERROR 114 -# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 -# define OCSP_R_SERVER_WRITE_ERROR 116 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/opensslconf.h b/3rdparty/openssl/include/openssl/opensslconf.h deleted file mode 100644 index 747f5bf..0000000 --- a/3rdparty/openssl/include/openssl/opensslconf.h +++ /dev/null @@ -1,271 +0,0 @@ -/* opensslconf.h */ -/* WARNING: Generated automatically from opensslconf.h.in by Configure. */ - -#ifdef __cplusplus -extern "C" { -#endif -/* OpenSSL was configured with the following options: */ -#ifndef OPENSSL_DOING_MAKEDEPEND - - -#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -# define OPENSSL_NO_EC_NISTP_64_GCC_128 -#endif -#ifndef OPENSSL_NO_GMP -# define OPENSSL_NO_GMP -#endif -#ifndef OPENSSL_NO_JPAKE -# define OPENSSL_NO_JPAKE -#endif -#ifndef OPENSSL_NO_KRB5 -# define OPENSSL_NO_KRB5 -#endif -#ifndef OPENSSL_NO_LIBUNBOUND -# define OPENSSL_NO_LIBUNBOUND -#endif -#ifndef OPENSSL_NO_MD2 -# define OPENSSL_NO_MD2 -#endif -#ifndef OPENSSL_NO_RC5 -# define OPENSSL_NO_RC5 -#endif -#ifndef OPENSSL_NO_RFC3779 -# define OPENSSL_NO_RFC3779 -#endif -#ifndef OPENSSL_NO_SCTP -# define OPENSSL_NO_SCTP -#endif -#ifndef OPENSSL_NO_SSL_TRACE -# define OPENSSL_NO_SSL_TRACE -#endif -#ifndef OPENSSL_NO_SSL2 -# define OPENSSL_NO_SSL2 -#endif -#ifndef OPENSSL_NO_STORE -# define OPENSSL_NO_STORE -#endif -#ifndef OPENSSL_NO_UNIT_TEST -# define OPENSSL_NO_UNIT_TEST -#endif -#ifndef OPENSSL_NO_WEAK_SSL_CIPHERS -# define OPENSSL_NO_WEAK_SSL_CIPHERS -#endif - -#endif /* OPENSSL_DOING_MAKEDEPEND */ - -#ifndef OPENSSL_THREADS -# define OPENSSL_THREADS -#endif -#ifndef OPENSSL_NO_ASM -# define OPENSSL_NO_ASM -#endif -#ifndef OPENSSL_NO_DYNAMIC_ENGINE -# define OPENSSL_NO_DYNAMIC_ENGINE -#endif - -/* The OPENSSL_NO_* macros are also defined as NO_* if the application - asks for it. This is a transient feature that is provided for those - who haven't had the time to do the appropriate changes in their - applications. */ -#ifdef OPENSSL_ALGORITHM_DEFINES -# if defined(OPENSSL_NO_EC_NISTP_64_GCC_128) && !defined(NO_EC_NISTP_64_GCC_128) -# define NO_EC_NISTP_64_GCC_128 -# endif -# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP) -# define NO_GMP -# endif -# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE) -# define NO_JPAKE -# endif -# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5) -# define NO_KRB5 -# endif -# if defined(OPENSSL_NO_LIBUNBOUND) && !defined(NO_LIBUNBOUND) -# define NO_LIBUNBOUND -# endif -# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2) -# define NO_MD2 -# endif -# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5) -# define NO_RC5 -# endif -# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779) -# define NO_RFC3779 -# endif -# if defined(OPENSSL_NO_SCTP) && !defined(NO_SCTP) -# define NO_SCTP -# endif -# if defined(OPENSSL_NO_SSL_TRACE) && !defined(NO_SSL_TRACE) -# define NO_SSL_TRACE -# endif -# if defined(OPENSSL_NO_SSL2) && !defined(NO_SSL2) -# define NO_SSL2 -# endif -# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE) -# define NO_STORE -# endif -# if defined(OPENSSL_NO_UNIT_TEST) && !defined(NO_UNIT_TEST) -# define NO_UNIT_TEST -# endif -# if defined(OPENSSL_NO_WEAK_SSL_CIPHERS) && !defined(NO_WEAK_SSL_CIPHERS) -# define NO_WEAK_SSL_CIPHERS -# endif -#endif - -/* crypto/opensslconf.h.in */ - -/* Generate 80386 code? */ -#undef I386_ONLY - -#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */ -#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR) -#define ENGINESDIR "/opt/himix_tools/openssl/lib/engines" -#define OPENSSLDIR "/opt/himix_tools/openssl/ssl" -#endif -#endif - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD - -#undef OPENSSL_EXPORT_VAR_AS_FUNCTION - -#if defined(HEADER_IDEA_H) && !defined(IDEA_INT) -#define IDEA_INT unsigned int -#endif - -#if defined(HEADER_MD2_H) && !defined(MD2_INT) -#define MD2_INT unsigned int -#endif - -#if defined(HEADER_RC2_H) && !defined(RC2_INT) -/* I need to put in a mod for the alpha - eay */ -#define RC2_INT unsigned int -#endif - -#if defined(HEADER_RC4_H) -#if !defined(RC4_INT) -/* using int types make the structure larger but make the code faster - * on most boxes I have tested - up to %20 faster. */ -/* - * I don't know what does "most" mean, but declaring "int" is a must on: - * - Intel P6 because partial register stalls are very expensive; - * - elder Alpha because it lacks byte load/store instructions; - */ -#define RC4_INT unsigned char -#endif -#if !defined(RC4_CHUNK) -/* - * This enables code handling data aligned at natural CPU word - * boundary. See crypto/rc4/rc4_enc.c for further details. - */ -#define RC4_CHUNK unsigned long -#endif -#endif - -#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG) -/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a - * %20 speed up (longs are 8 bytes, int's are 4). */ -#ifndef DES_LONG -#define DES_LONG unsigned int -#endif -#endif - -#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H) -#define CONFIG_HEADER_BN_H -#define BN_LLONG - -/* Should we define BN_DIV2W here? */ - -/* Only one for the following should be defined */ -#undef SIXTY_FOUR_BIT_LONG -#undef SIXTY_FOUR_BIT -#define THIRTY_TWO_BIT -#endif - -#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H) -#define CONFIG_HEADER_RC4_LOCL_H -/* if this is defined data[i] is used instead of *data, this is a %20 - * speedup on x86 */ -#undef RC4_INDEX -#endif - -#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H) -#define CONFIG_HEADER_BF_LOCL_H -#define BF_PTR -#endif /* HEADER_BF_LOCL_H */ - -#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H) -#define CONFIG_HEADER_DES_LOCL_H -#ifndef DES_DEFAULT_OPTIONS -/* the following is tweaked from a config script, that is why it is a - * protected undef/define */ -#ifndef DES_PTR -#undef DES_PTR -#endif - -/* This helps C compiler generate the correct code for multiple functional - * units. It reduces register dependancies at the expense of 2 more - * registers */ -#ifndef DES_RISC1 -#undef DES_RISC1 -#endif - -#ifndef DES_RISC2 -#undef DES_RISC2 -#endif - -#if defined(DES_RISC1) && defined(DES_RISC2) -#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!! -#endif - -/* Unroll the inner loop, this sometimes helps, sometimes hinders. - * Very mucy CPU dependant */ -#ifndef DES_UNROLL -#define DES_UNROLL -#endif - -/* These default values were supplied by - * Peter Gutman - * They are only used if nothing else has been defined */ -#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL) -/* Special defines which change the way the code is built depending on the - CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find - even newer MIPS CPU's, but at the moment one size fits all for - optimization options. Older Sparc's work better with only UNROLL, but - there's no way to tell at compile time what it is you're running on */ - -#if defined( __sun ) || defined ( sun ) /* Newer Sparc's */ -# define DES_PTR -# define DES_RISC1 -# define DES_UNROLL -#elif defined( __ultrix ) /* Older MIPS */ -# define DES_PTR -# define DES_RISC2 -# define DES_UNROLL -#elif defined( __osf1__ ) /* Alpha */ -# define DES_PTR -# define DES_RISC2 -#elif defined ( _AIX ) /* RS6000 */ - /* Unknown */ -#elif defined( __hpux ) /* HP-PA */ - /* Unknown */ -#elif defined( __aux ) /* 68K */ - /* Unknown */ -#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */ -# define DES_UNROLL -#elif defined( __sgi ) /* Newer MIPS */ -# define DES_PTR -# define DES_RISC2 -# define DES_UNROLL -#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */ -# define DES_PTR -# define DES_RISC1 -# define DES_UNROLL -#endif /* Systems-specific speed defines */ -#endif - -#endif /* DES_DEFAULT_OPTIONS */ -#endif /* HEADER_DES_LOCL_H */ -#ifdef __cplusplus -} -#endif diff --git a/3rdparty/openssl/include/openssl/opensslv.h b/3rdparty/openssl/include/openssl/opensslv.h deleted file mode 100644 index baee2d0..0000000 --- a/3rdparty/openssl/include/openssl/opensslv.h +++ /dev/null @@ -1,97 +0,0 @@ -#ifndef HEADER_OPENSSLV_H -# define HEADER_OPENSSLV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * Numeric release version identifier: - * MNNFFPPS: major minor fix patch status - * The status nibble has one of the values 0 for development, 1 to e for betas - * 1 to 14, and f for release. The patch level is exactly that. - * For example: - * 0.9.3-dev 0x00903000 - * 0.9.3-beta1 0x00903001 - * 0.9.3-beta2-dev 0x00903002 - * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) - * 0.9.3 0x0090300f - * 0.9.3a 0x0090301f - * 0.9.4 0x0090400f - * 1.2.3z 0x102031af - * - * For continuity reasons (because 0.9.5 is already out, and is coded - * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level - * part is slightly different, by setting the highest bit. This means - * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start - * with 0x0090600S... - * - * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) - * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for - * major minor fix final patch/beta) - */ -# define OPENSSL_VERSION_NUMBER 0x100020efL -# ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2n-fips 7 Dec 2017" -# else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.2n 7 Dec 2017" -# endif -# define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT - -/*- - * The macros below are to be used for shared library (.so, .dll, ...) - * versioning. That kind of versioning works a bit differently between - * operating systems. The most usual scheme is to set a major and a minor - * number, and have the runtime loader check that the major number is equal - * to what it was at application link time, while the minor number has to - * be greater or equal to what it was at application link time. With this - * scheme, the version number is usually part of the file name, like this: - * - * libcrypto.so.0.9 - * - * Some unixen also make a softlink with the major verson number only: - * - * libcrypto.so.0 - * - * On Tru64 and IRIX 6.x it works a little bit differently. There, the - * shared library version is stored in the file, and is actually a series - * of versions, separated by colons. The rightmost version present in the - * library when linking an application is stored in the application to be - * matched at run time. When the application is run, a check is done to - * see if the library version stored in the application matches any of the - * versions in the version string of the library itself. - * This version string can be constructed in any way, depending on what - * kind of matching is desired. However, to implement the same scheme as - * the one used in the other unixen, all compatible versions, from lowest - * to highest, should be part of the string. Consecutive builds would - * give the following versions strings: - * - * 3.0 - * 3.0:3.1 - * 3.0:3.1:3.2 - * 4.0 - * 4.0:4.1 - * - * Notice how version 4 is completely incompatible with version, and - * therefore give the breach you can see. - * - * There may be other schemes as well that I haven't yet discovered. - * - * So, here's the way it works here: first of all, the library version - * number doesn't need at all to match the overall OpenSSL version. - * However, it's nice and more understandable if it actually does. - * The current library version is stored in the macro SHLIB_VERSION_NUMBER, - * which is just a piece of text in the format "M.m.e" (Major, minor, edit). - * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, - * we need to keep a history of version numbers, which is done in the - * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and - * should only keep the versions that are binary compatible with the current. - */ -# define SHLIB_VERSION_HISTORY "" -# define SHLIB_VERSION_NUMBER "1.0.0" - - -#ifdef __cplusplus -} -#endif -#endif /* HEADER_OPENSSLV_H */ diff --git a/3rdparty/openssl/include/openssl/ossl_typ.h b/3rdparty/openssl/include/openssl/ossl_typ.h deleted file mode 100644 index 364d262..0000000 --- a/3rdparty/openssl/include/openssl/ossl_typ.h +++ /dev/null @@ -1,213 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_OPENSSL_TYPES_H -# define HEADER_OPENSSL_TYPES_H - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -# ifdef NO_ASN1_TYPEDEFS -# define ASN1_INTEGER ASN1_STRING -# define ASN1_ENUMERATED ASN1_STRING -# define ASN1_BIT_STRING ASN1_STRING -# define ASN1_OCTET_STRING ASN1_STRING -# define ASN1_PRINTABLESTRING ASN1_STRING -# define ASN1_T61STRING ASN1_STRING -# define ASN1_IA5STRING ASN1_STRING -# define ASN1_UTCTIME ASN1_STRING -# define ASN1_GENERALIZEDTIME ASN1_STRING -# define ASN1_TIME ASN1_STRING -# define ASN1_GENERALSTRING ASN1_STRING -# define ASN1_UNIVERSALSTRING ASN1_STRING -# define ASN1_BMPSTRING ASN1_STRING -# define ASN1_VISIBLESTRING ASN1_STRING -# define ASN1_UTF8STRING ASN1_STRING -# define ASN1_BOOLEAN int -# define ASN1_NULL int -# else -typedef struct asn1_string_st ASN1_INTEGER; -typedef struct asn1_string_st ASN1_ENUMERATED; -typedef struct asn1_string_st ASN1_BIT_STRING; -typedef struct asn1_string_st ASN1_OCTET_STRING; -typedef struct asn1_string_st ASN1_PRINTABLESTRING; -typedef struct asn1_string_st ASN1_T61STRING; -typedef struct asn1_string_st ASN1_IA5STRING; -typedef struct asn1_string_st ASN1_GENERALSTRING; -typedef struct asn1_string_st ASN1_UNIVERSALSTRING; -typedef struct asn1_string_st ASN1_BMPSTRING; -typedef struct asn1_string_st ASN1_UTCTIME; -typedef struct asn1_string_st ASN1_TIME; -typedef struct asn1_string_st ASN1_GENERALIZEDTIME; -typedef struct asn1_string_st ASN1_VISIBLESTRING; -typedef struct asn1_string_st ASN1_UTF8STRING; -typedef struct asn1_string_st ASN1_STRING; -typedef int ASN1_BOOLEAN; -typedef int ASN1_NULL; -# endif - -typedef struct asn1_object_st ASN1_OBJECT; - -typedef struct ASN1_ITEM_st ASN1_ITEM; -typedef struct asn1_pctx_st ASN1_PCTX; - -# ifdef OPENSSL_SYS_WIN32 -# undef X509_NAME -# undef X509_EXTENSIONS -# undef X509_CERT_PAIR -# undef PKCS7_ISSUER_AND_SERIAL -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -# endif - -# ifdef BIGNUM -# undef BIGNUM -# endif -typedef struct bignum_st BIGNUM; -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; - -typedef struct buf_mem_st BUF_MEM; - -typedef struct evp_cipher_st EVP_CIPHER; -typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; -typedef struct env_md_st EVP_MD; -typedef struct env_md_ctx_st EVP_MD_CTX; -typedef struct evp_pkey_st EVP_PKEY; - -typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; - -typedef struct evp_pkey_method_st EVP_PKEY_METHOD; -typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; - -typedef struct dh_st DH; -typedef struct dh_method DH_METHOD; - -typedef struct dsa_st DSA; -typedef struct dsa_method DSA_METHOD; - -typedef struct rsa_st RSA; -typedef struct rsa_meth_st RSA_METHOD; - -typedef struct rand_meth_st RAND_METHOD; - -typedef struct ecdh_method ECDH_METHOD; -typedef struct ecdsa_method ECDSA_METHOD; - -typedef struct x509_st X509; -typedef struct X509_algor_st X509_ALGOR; -typedef struct X509_crl_st X509_CRL; -typedef struct x509_crl_method_st X509_CRL_METHOD; -typedef struct x509_revoked_st X509_REVOKED; -typedef struct X509_name_st X509_NAME; -typedef struct X509_pubkey_st X509_PUBKEY; -typedef struct x509_store_st X509_STORE; -typedef struct x509_store_ctx_st X509_STORE_CTX; - -typedef struct pkcs8_priv_key_info_st PKCS8_PRIV_KEY_INFO; - -typedef struct v3_ext_ctx X509V3_CTX; -typedef struct conf_st CONF; - -typedef struct store_st STORE; -typedef struct store_method_st STORE_METHOD; - -typedef struct ui_st UI; -typedef struct ui_method_st UI_METHOD; - -typedef struct st_ERR_FNS ERR_FNS; - -typedef struct engine_st ENGINE; -typedef struct ssl_st SSL; -typedef struct ssl_ctx_st SSL_CTX; - -typedef struct comp_method_st COMP_METHOD; - -typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; -typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; -typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; -typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; - -typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; -typedef struct DIST_POINT_st DIST_POINT; -typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; -typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; - - /* If placed in pkcs12.h, we end up with a circular depency with pkcs7.h */ -# define DECLARE_PKCS12_STACK_OF(type)/* Nothing */ -# define IMPLEMENT_PKCS12_STACK_OF(type)/* Nothing */ - -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; -/* Callback types for crypto.h */ -typedef int CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, - void *from_d, int idx, long argl, void *argp); - -typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; -typedef struct ocsp_response_st OCSP_RESPONSE; -typedef struct ocsp_responder_id_st OCSP_RESPID; - -#ifdef __cplusplus -} -#endif -#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/3rdparty/openssl/include/openssl/pem.h b/3rdparty/openssl/include/openssl/pem.h deleted file mode 100644 index aac72fb..0000000 --- a/3rdparty/openssl/include/openssl/pem.h +++ /dev/null @@ -1,617 +0,0 @@ -/* crypto/pem/pem.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_PEM_H -# define HEADER_PEM_H - -# include -# ifndef OPENSSL_NO_BIO -# include -# endif -# ifndef OPENSSL_NO_STACK -# include -# endif -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PEM_BUFSIZE 1024 - -# define PEM_OBJ_UNDEF 0 -# define PEM_OBJ_X509 1 -# define PEM_OBJ_X509_REQ 2 -# define PEM_OBJ_CRL 3 -# define PEM_OBJ_SSL_SESSION 4 -# define PEM_OBJ_PRIV_KEY 10 -# define PEM_OBJ_PRIV_RSA 11 -# define PEM_OBJ_PRIV_DSA 12 -# define PEM_OBJ_PRIV_DH 13 -# define PEM_OBJ_PUB_RSA 14 -# define PEM_OBJ_PUB_DSA 15 -# define PEM_OBJ_PUB_DH 16 -# define PEM_OBJ_DHPARAMS 17 -# define PEM_OBJ_DSAPARAMS 18 -# define PEM_OBJ_PRIV_RSA_PUBLIC 19 -# define PEM_OBJ_PRIV_ECDSA 20 -# define PEM_OBJ_PUB_ECDSA 21 -# define PEM_OBJ_ECPARAMETERS 22 - -# define PEM_ERROR 30 -# define PEM_DEK_DES_CBC 40 -# define PEM_DEK_IDEA_CBC 45 -# define PEM_DEK_DES_EDE 50 -# define PEM_DEK_DES_ECB 60 -# define PEM_DEK_RSA 70 -# define PEM_DEK_RSA_MD2 80 -# define PEM_DEK_RSA_MD5 90 - -# define PEM_MD_MD2 NID_md2 -# define PEM_MD_MD5 NID_md5 -# define PEM_MD_SHA NID_sha -# define PEM_MD_MD2_RSA NID_md2WithRSAEncryption -# define PEM_MD_MD5_RSA NID_md5WithRSAEncryption -# define PEM_MD_SHA_RSA NID_sha1WithRSAEncryption - -# define PEM_STRING_X509_OLD "X509 CERTIFICATE" -# define PEM_STRING_X509 "CERTIFICATE" -# define PEM_STRING_X509_PAIR "CERTIFICATE PAIR" -# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" -# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" -# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" -# define PEM_STRING_X509_CRL "X509 CRL" -# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" -# define PEM_STRING_PUBLIC "PUBLIC KEY" -# define PEM_STRING_RSA "RSA PRIVATE KEY" -# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" -# define PEM_STRING_DSA "DSA PRIVATE KEY" -# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" -# define PEM_STRING_PKCS7 "PKCS7" -# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" -# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" -# define PEM_STRING_PKCS8INF "PRIVATE KEY" -# define PEM_STRING_DHPARAMS "DH PARAMETERS" -# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" -# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" -# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" -# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" -# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" -# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" -# define PEM_STRING_PARAMETERS "PARAMETERS" -# define PEM_STRING_CMS "CMS" - - /* - * Note that this structure is initialised by PEM_SealInit and cleaned up - * by PEM_SealFinal (at least for now) - */ -typedef struct PEM_Encode_Seal_st { - EVP_ENCODE_CTX encode; - EVP_MD_CTX md; - EVP_CIPHER_CTX cipher; -} PEM_ENCODE_SEAL_CTX; - -/* enc_type is one off */ -# define PEM_TYPE_ENCRYPTED 10 -# define PEM_TYPE_MIC_ONLY 20 -# define PEM_TYPE_MIC_CLEAR 30 -# define PEM_TYPE_CLEAR 40 - -typedef struct pem_recip_st { - char *name; - X509_NAME *dn; - int cipher; - int key_enc; - /* char iv[8]; unused and wrong size */ -} PEM_USER; - -typedef struct pem_ctx_st { - int type; /* what type of object */ - struct { - int version; - int mode; - } proc_type; - - char *domain; - - struct { - int cipher; - /*- - unused, and wrong size - unsigned char iv[8]; */ - } DEK_info; - - PEM_USER *originator; - - int num_recipient; - PEM_USER **recipient; -/*- - XXX(ben): don#t think this is used! - STACK *x509_chain; / * certificate chain */ - EVP_MD *md; /* signature type */ - - int md_enc; /* is the md encrypted or not? */ - int md_len; /* length of md_data */ - char *md_data; /* message digest, could be pkey encrypted */ - - EVP_CIPHER *dec; /* date encryption cipher */ - int key_len; /* key length */ - unsigned char *key; /* key */ - /*- - unused, and wrong size - unsigned char iv[8]; */ - - int data_enc; /* is the data encrypted */ - int data_len; - unsigned char *data; -} PEM_CTX; - -/* - * These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or - * IMPLEMENT_PEM_rw_cb(...) - */ - -# ifdef OPENSSL_NO_FP_API - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ -# else - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ -type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, const type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# endif - -# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ -type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, const type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_read_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb(name, type, str, asn1) - -/* These are the same except they are for the declarations */ - -# if defined(OPENSSL_NO_FP_API) - -# define DECLARE_PEM_read_fp(name, type) /**/ -# define DECLARE_PEM_write_fp(name, type) /**/ -# define DECLARE_PEM_write_cb_fp(name, type) /**/ -# else - -# define DECLARE_PEM_read_fp(name, type) \ - type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x); - -# define DECLARE_PEM_write_fp_const(name, type) \ - int PEM_write_##name(FILE *fp, const type *x); - -# define DECLARE_PEM_write_cb_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# endif - -# ifndef OPENSSL_NO_BIO -# define DECLARE_PEM_read_bio(name, type) \ - type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x); - -# define DECLARE_PEM_write_bio_const(name, type) \ - int PEM_write_bio_##name(BIO *bp, const type *x); - -# define DECLARE_PEM_write_cb_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# else - -# define DECLARE_PEM_read_bio(name, type) /**/ -# define DECLARE_PEM_write_bio(name, type) /**/ -# define DECLARE_PEM_write_bio_const(name, type) /**/ -# define DECLARE_PEM_write_cb_bio(name, type) /**/ -# endif -# define DECLARE_PEM_write(name, type) \ - DECLARE_PEM_write_bio(name, type) \ - DECLARE_PEM_write_fp(name, type) -# define DECLARE_PEM_write_const(name, type) \ - DECLARE_PEM_write_bio_const(name, type) \ - DECLARE_PEM_write_fp_const(name, type) -# define DECLARE_PEM_write_cb(name, type) \ - DECLARE_PEM_write_cb_bio(name, type) \ - DECLARE_PEM_write_cb_fp(name, type) -# define DECLARE_PEM_read(name, type) \ - DECLARE_PEM_read_bio(name, type) \ - DECLARE_PEM_read_fp(name, type) -# define DECLARE_PEM_rw(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write(name, type) -# define DECLARE_PEM_rw_const(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_const(name, type) -# define DECLARE_PEM_rw_cb(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_cb(name, type) -# if 1 -/* "userdata": new with OpenSSL 0.9.4 */ -typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); -# else -/* OpenSSL 0.9.3, 0.9.3a */ -typedef int pem_password_cb (char *buf, int size, int rwflag); -# endif - -int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); -int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, - pem_password_cb *callback, void *u); - -# ifndef OPENSSL_NO_BIO -int PEM_read_bio(BIO *bp, char **name, char **header, - unsigned char **data, long *len); -int PEM_write_bio(BIO *bp, const char *name, const char *hdr, - const unsigned char *data, long len); -int PEM_bytes_read_bio(unsigned char **pdata, long *plen, char **pnm, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, - const EVP_CIPHER *enc, unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, - unsigned char *kstr, int klen, - pem_password_cb *cd, void *u); -# endif - -int PEM_read(FILE *fp, char **name, char **header, - unsigned char **data, long *len); -int PEM_write(FILE *fp, const char *name, const char *hdr, - const unsigned char *data, long len); -void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, - void *x, const EVP_CIPHER *enc, unsigned char *kstr, - int klen, pem_password_cb *callback, void *u); -STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); - -int PEM_SealInit(PEM_ENCODE_SEAL_CTX *ctx, EVP_CIPHER *type, - EVP_MD *md_type, unsigned char **ek, int *ekl, - unsigned char *iv, EVP_PKEY **pubk, int npubk); -void PEM_SealUpdate(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *out, int *outl, - unsigned char *in, int inl); -int PEM_SealFinal(PEM_ENCODE_SEAL_CTX *ctx, unsigned char *sig, int *sigl, - unsigned char *out, int *outl, EVP_PKEY *priv); - -void PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); -void PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); -int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - unsigned int *siglen, EVP_PKEY *pkey); - -int PEM_def_callback(char *buf, int num, int w, void *key); -void PEM_proc_type(char *buf, int type); -void PEM_dek_info(char *buf, const char *type, int len, char *str); - -# include - -DECLARE_PEM_rw(X509, X509) -DECLARE_PEM_rw(X509_AUX, X509) -DECLARE_PEM_rw(X509_CERT_PAIR, X509_CERT_PAIR) -DECLARE_PEM_rw(X509_REQ, X509_REQ) -DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) -DECLARE_PEM_rw(X509_CRL, X509_CRL) -DECLARE_PEM_rw(PKCS7, PKCS7) -DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) -DECLARE_PEM_rw(PKCS8, X509_SIG) -DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) -# ifndef OPENSSL_NO_RSA -DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) -DECLARE_PEM_rw_const(RSAPublicKey, RSA) -DECLARE_PEM_rw(RSA_PUBKEY, RSA) -# endif -# ifndef OPENSSL_NO_DSA -DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) -DECLARE_PEM_rw(DSA_PUBKEY, DSA) -DECLARE_PEM_rw_const(DSAparams, DSA) -# endif -# ifndef OPENSSL_NO_EC -DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) -DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) -DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) -# endif -# ifndef OPENSSL_NO_DH -DECLARE_PEM_rw_const(DHparams, DH) -DECLARE_PEM_write_const(DHxparams, DH) -# endif -DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) -DECLARE_PEM_rw(PUBKEY, EVP_PKEY) - -int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, - char *, int, pem_password_cb *, void *); -int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); - -EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, pem_password_cb *cd, - void *u); - -EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); -int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); - -EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PrivateKey_bio(BIO *in); -EVP_PKEY *b2i_PublicKey_bio(BIO *in); -int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); -int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); -# ifndef OPENSSL_NO_RC4 -EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); -int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u); -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -void ERR_load_PEM_strings(void); - -/* Error codes for the PEM functions. */ - -/* Function codes. */ -# define PEM_F_B2I_DSS 127 -# define PEM_F_B2I_PVK_BIO 128 -# define PEM_F_B2I_RSA 129 -# define PEM_F_CHECK_BITLEN_DSA 130 -# define PEM_F_CHECK_BITLEN_RSA 131 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 -# define PEM_F_DO_B2I 132 -# define PEM_F_DO_B2I_BIO 133 -# define PEM_F_DO_BLOB_HEADER 134 -# define PEM_F_DO_PK8PKEY 126 -# define PEM_F_DO_PK8PKEY_FP 125 -# define PEM_F_DO_PVK_BODY 135 -# define PEM_F_DO_PVK_HEADER 136 -# define PEM_F_I2B_PVK 137 -# define PEM_F_I2B_PVK_BIO 138 -# define PEM_F_LOAD_IV 101 -# define PEM_F_PEM_ASN1_READ 102 -# define PEM_F_PEM_ASN1_READ_BIO 103 -# define PEM_F_PEM_ASN1_WRITE 104 -# define PEM_F_PEM_ASN1_WRITE_BIO 105 -# define PEM_F_PEM_DEF_CALLBACK 100 -# define PEM_F_PEM_DO_HEADER 106 -# define PEM_F_PEM_F_PEM_WRITE_PKCS8PRIVATEKEY 118 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 -# define PEM_F_PEM_PK8PKEY 119 -# define PEM_F_PEM_READ 108 -# define PEM_F_PEM_READ_BIO 109 -# define PEM_F_PEM_READ_BIO_DHPARAMS 141 -# define PEM_F_PEM_READ_BIO_PARAMETERS 140 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 -# define PEM_F_PEM_READ_DHPARAMS 142 -# define PEM_F_PEM_READ_PRIVATEKEY 124 -# define PEM_F_PEM_SEALFINAL 110 -# define PEM_F_PEM_SEALINIT 111 -# define PEM_F_PEM_SIGNFINAL 112 -# define PEM_F_PEM_WRITE 113 -# define PEM_F_PEM_WRITE_BIO 114 -# define PEM_F_PEM_WRITE_PRIVATEKEY 139 -# define PEM_F_PEM_X509_INFO_READ 115 -# define PEM_F_PEM_X509_INFO_READ_BIO 116 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 - -/* Reason codes. */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PUBLIC_KEY_NO_RSA 110 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/3rdparty/openssl/include/openssl/pem2.h b/3rdparty/openssl/include/openssl/pem2.h deleted file mode 100644 index 84897d5..0000000 --- a/3rdparty/openssl/include/openssl/pem2.h +++ /dev/null @@ -1,70 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -/* - * This header only exists to break a circular dependency between pem and err - * Ben 30 Jan 1999. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef HEADER_PEM_H -void ERR_load_PEM_strings(void); -#endif - -#ifdef __cplusplus -} -#endif diff --git a/3rdparty/openssl/include/openssl/pkcs12.h b/3rdparty/openssl/include/openssl/pkcs12.h deleted file mode 100644 index 21f1f62..0000000 --- a/3rdparty/openssl/include/openssl/pkcs12.h +++ /dev/null @@ -1,342 +0,0 @@ -/* pkcs12.h */ -/* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project - * 1999. - */ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_PKCS12_H -# define HEADER_PKCS12_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PKCS12_KEY_ID 1 -# define PKCS12_IV_ID 2 -# define PKCS12_MAC_ID 3 - -/* Default iteration count */ -# ifndef PKCS12_DEFAULT_ITER -# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER -# endif - -# define PKCS12_MAC_KEY_LENGTH 20 - -# define PKCS12_SALT_LEN 8 - -/* Uncomment out next line for unicode password and names, otherwise ASCII */ - -/* - * #define PBE_UNICODE - */ - -# ifdef PBE_UNICODE -# define PKCS12_key_gen PKCS12_key_gen_uni -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_uni -# else -# define PKCS12_key_gen PKCS12_key_gen_asc -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_asc -# endif - -/* MS key usage constants */ - -# define KEY_EX 0x10 -# define KEY_SIG 0x80 - -typedef struct { - X509_SIG *dinfo; - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; /* defaults to 1 */ -} PKCS12_MAC_DATA; - -typedef struct { - ASN1_INTEGER *version; - PKCS12_MAC_DATA *mac; - PKCS7 *authsafes; -} PKCS12; - -typedef struct { - ASN1_OBJECT *type; - union { - struct pkcs12_bag_st *bag; /* secret, crl and certbag */ - struct pkcs8_priv_key_info_st *keybag; /* keybag */ - X509_SIG *shkeybag; /* shrouded key bag */ - STACK_OF(PKCS12_SAFEBAG) *safes; - ASN1_TYPE *other; - } value; - STACK_OF(X509_ATTRIBUTE) *attrib; -} PKCS12_SAFEBAG; - -DECLARE_STACK_OF(PKCS12_SAFEBAG) -DECLARE_ASN1_SET_OF(PKCS12_SAFEBAG) -DECLARE_PKCS12_STACK_OF(PKCS12_SAFEBAG) - -typedef struct pkcs12_bag_st { - ASN1_OBJECT *type; - union { - ASN1_OCTET_STRING *x509cert; - ASN1_OCTET_STRING *x509crl; - ASN1_OCTET_STRING *octet; - ASN1_IA5STRING *sdsicert; - ASN1_TYPE *other; /* Secret or other bag */ - } value; -} PKCS12_BAGS; - -# define PKCS12_ERROR 0 -# define PKCS12_OK 1 - -/* Compatibility macros */ - -# define M_PKCS12_x5092certbag PKCS12_x5092certbag -# define M_PKCS12_x509crl2certbag PKCS12_x509crl2certbag - -# define M_PKCS12_certbag2x509 PKCS12_certbag2x509 -# define M_PKCS12_certbag2x509crl PKCS12_certbag2x509crl - -# define M_PKCS12_unpack_p7data PKCS12_unpack_p7data -# define M_PKCS12_pack_authsafes PKCS12_pack_authsafes -# define M_PKCS12_unpack_authsafes PKCS12_unpack_authsafes -# define M_PKCS12_unpack_p7encdata PKCS12_unpack_p7encdata - -# define M_PKCS12_decrypt_skey PKCS12_decrypt_skey -# define M_PKCS8_decrypt PKCS8_decrypt - -# define M_PKCS12_bag_type(bg) OBJ_obj2nid((bg)->type) -# define M_PKCS12_cert_bag_type(bg) OBJ_obj2nid((bg)->value.bag->type) -# define M_PKCS12_crl_bag_type M_PKCS12_cert_bag_type - -# define PKCS12_get_attr(bag, attr_nid) \ - PKCS12_get_attr_gen(bag->attrib, attr_nid) - -# define PKCS8_get_attr(p8, attr_nid) \ - PKCS12_get_attr_gen(p8->attributes, attr_nid) - -# define PKCS12_mac_present(p12) ((p12)->mac ? 1 : 0) - -PKCS12_SAFEBAG *PKCS12_x5092certbag(X509 *x509); -PKCS12_SAFEBAG *PKCS12_x509crl2certbag(X509_CRL *crl); -X509 *PKCS12_certbag2x509(PKCS12_SAFEBAG *bag); -X509_CRL *PKCS12_certbag2x509crl(PKCS12_SAFEBAG *bag); - -PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, - int nid1, int nid2); -PKCS12_SAFEBAG *PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(X509_SIG *p8, const char *pass, - int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(PKCS12_SAFEBAG *bag, - const char *pass, int passlen); -X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); -PKCS12_SAFEBAG *PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, - int passlen, unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8); -PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); -PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, - int passlen); - -int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); -STACK_OF(PKCS7) *PKCS12_unpack_authsafes(PKCS12 *p12); - -int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, - int namelen); -int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, - const unsigned char *name, int namelen); -int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); -ASN1_TYPE *PKCS12_get_attr_gen(STACK_OF(X509_ATTRIBUTE) *attrs, int attr_nid); -char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); -unsigned char *PKCS12_pbe_crypt(X509_ALGOR *algor, const char *pass, - int passlen, unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de); -void *PKCS12_item_decrypt_d2i(X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - ASN1_OCTET_STRING *oct, int zbuf); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf); -PKCS12 *PKCS12_init(int mode); -int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de); -int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *mac, unsigned int *maclen); -int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); -int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type); -int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, - int saltlen, const EVP_MD *md_type); -unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2asc(unsigned char *uni, int unilen); - -DECLARE_ASN1_FUNCTIONS(PKCS12) -DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) -DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) -DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) - -DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) -DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) - -void PKCS12_PBE_add(void); -int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, - STACK_OF(X509) **ca); -PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, - STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, - int mac_iter, int keytype); - -PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); -PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, char *pass); -int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, char *pass); -PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); - -int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); -int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); -PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); -PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_PKCS12_strings(void); - -/* Error codes for the PKCS12 functions. */ - -/* Function codes. */ -# define PKCS12_F_PARSE_BAG 129 -# define PKCS12_F_PARSE_BAGS 103 -# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME 100 -# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_ASC 127 -# define PKCS12_F_PKCS12_ADD_FRIENDLYNAME_UNI 102 -# define PKCS12_F_PKCS12_ADD_LOCALKEYID 104 -# define PKCS12_F_PKCS12_CREATE 105 -# define PKCS12_F_PKCS12_GEN_MAC 107 -# define PKCS12_F_PKCS12_INIT 109 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 -# define PKCS12_F_PKCS12_MAKE_KEYBAG 112 -# define PKCS12_F_PKCS12_MAKE_SHKEYBAG 113 -# define PKCS12_F_PKCS12_NEWPASS 128 -# define PKCS12_F_PKCS12_PACK_P7DATA 114 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 -# define PKCS12_F_PKCS12_PARSE 118 -# define PKCS12_F_PKCS12_PBE_CRYPT 119 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 -# define PKCS12_F_PKCS12_SETUP_MAC 122 -# define PKCS12_F_PKCS12_SET_MAC 123 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 -# define PKCS12_F_PKCS12_VERIFY_MAC 126 -# define PKCS12_F_PKCS8_ADD_KEYUSAGE 124 -# define PKCS12_F_PKCS8_ENCRYPT 125 - -/* Reason codes. */ -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_ERROR 112 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/pkcs7.h b/3rdparty/openssl/include/openssl/pkcs7.h deleted file mode 100644 index b51b386..0000000 --- a/3rdparty/openssl/include/openssl/pkcs7.h +++ /dev/null @@ -1,481 +0,0 @@ -/* crypto/pkcs7/pkcs7.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_PKCS7_H -# define HEADER_PKCS7_H - -# include -# include -# include - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_SYS_WIN32 -/* Under Win32 thes are defined in wincrypt.h */ -# undef PKCS7_ISSUER_AND_SERIAL -# undef PKCS7_SIGNER_INFO -# endif - -/*- -Encryption_ID DES-CBC -Digest_ID MD5 -Digest_Encryption_ID rsaEncryption -Key_Encryption_ID rsaEncryption -*/ - -typedef struct pkcs7_issuer_and_serial_st { - X509_NAME *issuer; - ASN1_INTEGER *serial; -} PKCS7_ISSUER_AND_SERIAL; - -typedef struct pkcs7_signer_info_st { - ASN1_INTEGER *version; /* version 1 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *digest_alg; - STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; - STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ - /* The private key to sign with */ - EVP_PKEY *pkey; -} PKCS7_SIGNER_INFO; - -DECLARE_STACK_OF(PKCS7_SIGNER_INFO) -DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) - -typedef struct pkcs7_recip_info_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *key_enc_algor; - ASN1_OCTET_STRING *enc_key; - X509 *cert; /* get the pub-key from this */ -} PKCS7_RECIP_INFO; - -DECLARE_STACK_OF(PKCS7_RECIP_INFO) -DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) - -typedef struct pkcs7_signed_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - struct pkcs7_st *contents; -} PKCS7_SIGNED; -/* - * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about - * merging the two - */ - -typedef struct pkcs7_enc_content_st { - ASN1_OBJECT *content_type; - X509_ALGOR *algorithm; - ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ - const EVP_CIPHER *cipher; -} PKCS7_ENC_CONTENT; - -typedef struct pkcs7_enveloped_st { - ASN1_INTEGER *version; /* version 0 */ - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENVELOPE; - -typedef struct pkcs7_signedandenveloped_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - PKCS7_ENC_CONTENT *enc_data; - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; -} PKCS7_SIGN_ENVELOPE; - -typedef struct pkcs7_digest_st { - ASN1_INTEGER *version; /* version 0 */ - X509_ALGOR *md; /* md used */ - struct pkcs7_st *contents; - ASN1_OCTET_STRING *digest; -} PKCS7_DIGEST; - -typedef struct pkcs7_encrypted_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENCRYPT; - -typedef struct pkcs7_st { - /* - * The following is non NULL if it contains ASN1 encoding of this - * structure - */ - unsigned char *asn1; - long length; -# define PKCS7_S_HEADER 0 -# define PKCS7_S_BODY 1 -# define PKCS7_S_TAIL 2 - int state; /* used during processing */ - int detached; - ASN1_OBJECT *type; - /* content as defined by the type */ - /* - * all encryption/message digests are applied to the 'contents', leaving - * out the 'type' field. - */ - union { - char *ptr; - /* NID_pkcs7_data */ - ASN1_OCTET_STRING *data; - /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; - /* NID_pkcs7_enveloped */ - PKCS7_ENVELOPE *enveloped; - /* NID_pkcs7_signedAndEnveloped */ - PKCS7_SIGN_ENVELOPE *signed_and_enveloped; - /* NID_pkcs7_digest */ - PKCS7_DIGEST *digest; - /* NID_pkcs7_encrypted */ - PKCS7_ENCRYPT *encrypted; - /* Anything else */ - ASN1_TYPE *other; - } d; -} PKCS7; - -DECLARE_STACK_OF(PKCS7) -DECLARE_ASN1_SET_OF(PKCS7) -DECLARE_PKCS12_STACK_OF(PKCS7) - -# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 -# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 - -# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) -# define PKCS7_get_attributes(si) ((si)->unauth_attr) - -# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) -# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) -# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) -# define PKCS7_type_is_signedAndEnveloped(a) \ - (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) -# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) -# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) - -# define PKCS7_set_detached(p,v) \ - PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) -# define PKCS7_get_detached(p) \ - PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) - -# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) - -/* S/MIME related flags */ - -# define PKCS7_TEXT 0x1 -# define PKCS7_NOCERTS 0x2 -# define PKCS7_NOSIGS 0x4 -# define PKCS7_NOCHAIN 0x8 -# define PKCS7_NOINTERN 0x10 -# define PKCS7_NOVERIFY 0x20 -# define PKCS7_DETACHED 0x40 -# define PKCS7_BINARY 0x80 -# define PKCS7_NOATTR 0x100 -# define PKCS7_NOSMIMECAP 0x200 -# define PKCS7_NOOLDMIMETYPE 0x400 -# define PKCS7_CRLFEOL 0x800 -# define PKCS7_STREAM 0x1000 -# define PKCS7_NOCRL 0x2000 -# define PKCS7_PARTIAL 0x4000 -# define PKCS7_REUSE_DIGEST 0x8000 - -/* Flags: for compatibility with older code */ - -# define SMIME_TEXT PKCS7_TEXT -# define SMIME_NOCERTS PKCS7_NOCERTS -# define SMIME_NOSIGS PKCS7_NOSIGS -# define SMIME_NOCHAIN PKCS7_NOCHAIN -# define SMIME_NOINTERN PKCS7_NOINTERN -# define SMIME_NOVERIFY PKCS7_NOVERIFY -# define SMIME_DETACHED PKCS7_DETACHED -# define SMIME_BINARY PKCS7_BINARY -# define SMIME_NOATTR PKCS7_NOATTR - -DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) - -int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, - const EVP_MD *type, unsigned char *md, - unsigned int *len); -# ifndef OPENSSL_NO_FP_API -PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); -int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); -# endif -PKCS7 *PKCS7_dup(PKCS7 *p7); -PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); -int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); -int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); -int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); - -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) -DECLARE_ASN1_FUNCTIONS(PKCS7) - -DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) -DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) - -DECLARE_ASN1_NDEF_FUNCTION(PKCS7) -DECLARE_ASN1_PRINT_FUNCTION(PKCS7) - -long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); - -int PKCS7_set_type(PKCS7 *p7, int type); -int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); -int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); -int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, - const EVP_MD *dgst); -int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); -int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); -int PKCS7_content_new(PKCS7 *p7, int nid); -int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, - BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); - -BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); -int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); -BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); - -PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, - EVP_PKEY *pkey, const EVP_MD *dgst); -X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); -STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); - -PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); -void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, - X509_ALGOR **pdig, X509_ALGOR **psig); -void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); -int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); -int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); -int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); -int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); - -PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); -ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, - void *data); -int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, - void *value); -ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); -ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); -int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); - -PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags); - -PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, - X509 *signcert, EVP_PKEY *pkey, - const EVP_MD *md, int flags); - -int PKCS7_final(PKCS7 *p7, BIO *data, int flags); -int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, - BIO *indata, BIO *out, int flags); -STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, - int flags); -PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, - int flags); -int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, - int flags); - -int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, - STACK_OF(X509_ALGOR) *cap); -STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); -int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); - -int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); -int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); -int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, - const unsigned char *md, int mdlen); - -int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); -PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); - -BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_PKCS7_strings(void); - -/* Error codes for the PKCS7 functions. */ - -/* Function codes. */ -# define PKCS7_F_B64_READ_PKCS7 120 -# define PKCS7_F_B64_WRITE_PKCS7 121 -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 -# define PKCS7_F_I2D_PKCS7_BIO_STREAM 140 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 -# define PKCS7_F_PKCS7_ADD_CRL 101 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 -# define PKCS7_F_PKCS7_ADD_SIGNER 103 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 -# define PKCS7_F_PKCS7_CTRL 104 -# define PKCS7_F_PKCS7_DATADECODE 112 -# define PKCS7_F_PKCS7_DATAFINAL 128 -# define PKCS7_F_PKCS7_DATAINIT 105 -# define PKCS7_F_PKCS7_DATASIGN 106 -# define PKCS7_F_PKCS7_DATAVERIFY 107 -# define PKCS7_F_PKCS7_DECRYPT 114 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 -# define PKCS7_F_PKCS7_ENCODE_RINFO 132 -# define PKCS7_F_PKCS7_ENCRYPT 115 -# define PKCS7_F_PKCS7_FINAL 134 -# define PKCS7_F_PKCS7_FIND_DIGEST 127 -# define PKCS7_F_PKCS7_GET0_SIGNERS 124 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 -# define PKCS7_F_PKCS7_SET_CIPHER 108 -# define PKCS7_F_PKCS7_SET_CONTENT 109 -# define PKCS7_F_PKCS7_SET_DIGEST 126 -# define PKCS7_F_PKCS7_SET_TYPE 110 -# define PKCS7_F_PKCS7_SIGN 116 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 -# define PKCS7_F_PKCS7_VERIFY 117 -# define PKCS7_F_SMIME_READ_PKCS7 122 -# define PKCS7_F_SMIME_TEXT 123 - -/* Reason codes. */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECODE_ERROR 130 -# define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH 100 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_MIME_TYPE 131 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_MIME_NO_CONTENT_TYPE 132 -# define PKCS7_R_MIME_PARSE_ERROR 133 -# define PKCS7_R_MIME_SIG_PARSE_ERROR 134 -# define PKCS7_R_MISSING_CERIPEND_INFO 103 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_CONTENT_TYPE 135 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_MULTIPART_BODY_FAILURE 136 -# define PKCS7_R_NO_MULTIPART_BOUNDARY 137 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_RECIPIENT_MATCHES_KEY 146 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_NO_SIG_CONTENT_TYPE 138 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATAFINAL 126 -# define PKCS7_R_PKCS7_DATAFINAL_ERROR 125 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PKCS7_PARSE_ERROR 139 -# define PKCS7_R_PKCS7_SIG_PARSE_ERROR 140 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SIG_INVALID_MIME_TYPE 141 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/pqueue.h b/3rdparty/openssl/include/openssl/pqueue.h deleted file mode 100644 index d40d9c7..0000000 --- a/3rdparty/openssl/include/openssl/pqueue.h +++ /dev/null @@ -1,99 +0,0 @@ -/* crypto/pqueue/pqueue.h */ -/* - * DTLS implementation written by Nagendra Modadugu - * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. - */ -/* ==================================================================== - * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_PQUEUE_H -# define HEADER_PQUEUE_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif -typedef struct _pqueue *pqueue; - -typedef struct _pitem { - unsigned char priority[8]; /* 64-bit value in big-endian encoding */ - void *data; - struct _pitem *next; -} pitem; - -typedef struct _pitem *piterator; - -pitem *pitem_new(unsigned char *prio64be, void *data); -void pitem_free(pitem *item); - -pqueue pqueue_new(void); -void pqueue_free(pqueue pq); - -pitem *pqueue_insert(pqueue pq, pitem *item); -pitem *pqueue_peek(pqueue pq); -pitem *pqueue_pop(pqueue pq); -pitem *pqueue_find(pqueue pq, unsigned char *prio64be); -pitem *pqueue_iterator(pqueue pq); -pitem *pqueue_next(piterator *iter); - -void pqueue_print(pqueue pq); -int pqueue_size(pqueue pq); - -#ifdef __cplusplus -} -#endif -#endif /* ! HEADER_PQUEUE_H */ diff --git a/3rdparty/openssl/include/openssl/rand.h b/3rdparty/openssl/include/openssl/rand.h deleted file mode 100644 index 2553afd..0000000 --- a/3rdparty/openssl/include/openssl/rand.h +++ /dev/null @@ -1,150 +0,0 @@ -/* crypto/rand/rand.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_RAND_H -# define HEADER_RAND_H - -# include -# include -# include - -# if defined(OPENSSL_SYS_WINDOWS) -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# if defined(OPENSSL_FIPS) -# define FIPS_RAND_SIZE_T size_t -# endif - -/* Already defined in ossl_typ.h */ -/* typedef struct rand_meth_st RAND_METHOD; */ - -struct rand_meth_st { - void (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); - void (*cleanup) (void); - void (*add) (const void *buf, int num, double entropy); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -# ifdef BN_DEBUG -extern int rand_predictable; -# endif - -int RAND_set_rand_method(const RAND_METHOD *meth); -const RAND_METHOD *RAND_get_rand_method(void); -# ifndef OPENSSL_NO_ENGINE -int RAND_set_rand_engine(ENGINE *engine); -# endif -RAND_METHOD *RAND_SSLeay(void); -void RAND_cleanup(void); -int RAND_bytes(unsigned char *buf, int num); -int RAND_pseudo_bytes(unsigned char *buf, int num); -void RAND_seed(const void *buf, int num); -void RAND_add(const void *buf, int num, double entropy); -int RAND_load_file(const char *file, long max_bytes); -int RAND_write_file(const char *file); -const char *RAND_file_name(char *file, size_t num); -int RAND_status(void); -int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); -int RAND_egd(const char *path); -int RAND_egd_bytes(const char *path, int bytes); -int RAND_poll(void); - -# if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_WIN32) - -void RAND_screen(void); -int RAND_event(UINT, WPARAM, LPARAM); - -# endif - -# ifdef OPENSSL_FIPS -void RAND_set_fips_drbg_type(int type, int flags); -int RAND_init_fips(void); -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_RAND_strings(void); - -/* Error codes for the RAND functions. */ - -/* Function codes. */ -# define RAND_F_RAND_GET_RAND_METHOD 101 -# define RAND_F_RAND_INIT_FIPS 102 -# define RAND_F_SSLEAY_RAND_BYTES 100 - -/* Reason codes. */ -# define RAND_R_DUAL_EC_DRBG_DISABLED 104 -# define RAND_R_ERROR_INITIALISING_DRBG 102 -# define RAND_R_ERROR_INSTANTIATING_DRBG 103 -# define RAND_R_NO_FIPS_RANDOM_METHOD_SET 101 -# define RAND_R_PRNG_NOT_SEEDED 100 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/rc2.h b/3rdparty/openssl/include/openssl/rc2.h deleted file mode 100644 index 29d02d7..0000000 --- a/3rdparty/openssl/include/openssl/rc2.h +++ /dev/null @@ -1,103 +0,0 @@ -/* crypto/rc2/rc2.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_RC2_H -# define HEADER_RC2_H - -# include /* OPENSSL_NO_RC2, RC2_INT */ -# ifdef OPENSSL_NO_RC2 -# error RC2 is disabled. -# endif - -# define RC2_ENCRYPT 1 -# define RC2_DECRYPT 0 - -# define RC2_BLOCK 8 -# define RC2_KEY_LENGTH 16 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct rc2_key_st { - RC2_INT data[64]; -} RC2_KEY; - -# ifdef OPENSSL_FIPS -void private_RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, - int bits); -# endif -void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); -void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, - RC2_KEY *key, int enc); -void RC2_encrypt(unsigned long *data, RC2_KEY *key); -void RC2_decrypt(unsigned long *data, RC2_KEY *key); -void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - RC2_KEY *ks, unsigned char *iv, int enc); -void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num, int enc); -void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/rc4.h b/3rdparty/openssl/include/openssl/rc4.h deleted file mode 100644 index 39162b1..0000000 --- a/3rdparty/openssl/include/openssl/rc4.h +++ /dev/null @@ -1,88 +0,0 @@ -/* crypto/rc4/rc4.h */ -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_RC4_H -# define HEADER_RC4_H - -# include /* OPENSSL_NO_RC4, RC4_INT */ -# ifdef OPENSSL_NO_RC4 -# error RC4 is disabled. -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct rc4_key_st { - RC4_INT x, y; - RC4_INT data[256]; -} RC4_KEY; - -const char *RC4_options(void); -void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); -void private_RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); -void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, - unsigned char *outdata); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/ripemd.h b/3rdparty/openssl/include/openssl/ripemd.h deleted file mode 100644 index b88ef25..0000000 --- a/3rdparty/openssl/include/openssl/ripemd.h +++ /dev/null @@ -1,105 +0,0 @@ -/* crypto/ripemd/ripemd.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_RIPEMD_H -# define HEADER_RIPEMD_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_NO_RIPEMD -# error RIPEMD is disabled. -# endif - -# if defined(__LP32__) -# define RIPEMD160_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define RIPEMD160_LONG unsigned long -# define RIPEMD160_LONG_LOG2 3 -# else -# define RIPEMD160_LONG unsigned int -# endif - -# define RIPEMD160_CBLOCK 64 -# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) -# define RIPEMD160_DIGEST_LENGTH 20 - -typedef struct RIPEMD160state_st { - RIPEMD160_LONG A, B, C, D, E; - RIPEMD160_LONG Nl, Nh; - RIPEMD160_LONG data[RIPEMD160_LBLOCK]; - unsigned int num; -} RIPEMD160_CTX; - -# ifdef OPENSSL_FIPS -int private_RIPEMD160_Init(RIPEMD160_CTX *c); -# endif -int RIPEMD160_Init(RIPEMD160_CTX *c); -int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); -int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); -unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); -void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/rsa.h b/3rdparty/openssl/include/openssl/rsa.h deleted file mode 100644 index d2ee374..0000000 --- a/3rdparty/openssl/include/openssl/rsa.h +++ /dev/null @@ -1,664 +0,0 @@ -/* crypto/rsa/rsa.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_RSA_H -# define HEADER_RSA_H - -# include - -# ifndef OPENSSL_NO_BIO -# include -# endif -# include -# include -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif - -# ifdef OPENSSL_NO_RSA -# error RSA is disabled. -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Declared already in ossl_typ.h */ -/* typedef struct rsa_st RSA; */ -/* typedef struct rsa_meth_st RSA_METHOD; */ - -struct rsa_meth_st { - const char *name; - int (*rsa_pub_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - int (*rsa_pub_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - int (*rsa_priv_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - int (*rsa_priv_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); - /* Can be null */ - int (*rsa_mod_exp) (BIGNUM *r0, const BIGNUM *I, RSA *rsa, BN_CTX *ctx); - /* Can be null */ - int (*bn_mod_exp) (BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); - /* called at new */ - int (*init) (RSA *rsa); - /* called at free */ - int (*finish) (RSA *rsa); - /* RSA_METHOD_FLAG_* things */ - int flags; - /* may be needed! */ - char *app_data; - /* - * New sign and verify functions: some libraries don't allow arbitrary - * data to be signed/verified: this allows them to be used. Note: for - * this to work the RSA_public_decrypt() and RSA_private_encrypt() should - * *NOT* be used RSA_sign(), RSA_verify() should be used instead. Note: - * for backwards compatibility this functionality is only enabled if the - * RSA_FLAG_SIGN_VER option is set in 'flags'. - */ - int (*rsa_sign) (int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa); - int (*rsa_verify) (int dtype, const unsigned char *m, - unsigned int m_length, const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa); - /* - * If this callback is NULL, the builtin software RSA key-gen will be - * used. This is for behavioural compatibility whilst the code gets - * rewired, but one day it would be nice to assume there are no such - * things as "builtin software" implementations. - */ - int (*rsa_keygen) (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); -}; - -struct rsa_st { - /* - * The first parameter is used to pickup errors where this is passed - * instead of aEVP_PKEY, it is set to 0 - */ - int pad; - long version; - const RSA_METHOD *meth; - /* functional reference if 'meth' is ENGINE-provided */ - ENGINE *engine; - BIGNUM *n; - BIGNUM *e; - BIGNUM *d; - BIGNUM *p; - BIGNUM *q; - BIGNUM *dmp1; - BIGNUM *dmq1; - BIGNUM *iqmp; - /* be careful using this if the RSA structure is shared */ - CRYPTO_EX_DATA ex_data; - int references; - int flags; - /* Used to cache montgomery values */ - BN_MONT_CTX *_method_mod_n; - BN_MONT_CTX *_method_mod_p; - BN_MONT_CTX *_method_mod_q; - /* - * all BIGNUM values are actually in the following data, if it is not - * NULL - */ - char *bignum_data; - BN_BLINDING *blinding; - BN_BLINDING *mt_blinding; -}; - -# ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -# endif - -# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS -# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 -# endif -# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS - -/* exponent limit enforced for "large" modulus only */ -# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 -# endif - -# define RSA_3 0x3L -# define RSA_F4 0x10001L - -# define RSA_METHOD_FLAG_NO_CHECK 0x0001/* don't check pub/private - * match */ - -# define RSA_FLAG_CACHE_PUBLIC 0x0002 -# define RSA_FLAG_CACHE_PRIVATE 0x0004 -# define RSA_FLAG_BLINDING 0x0008 -# define RSA_FLAG_THREAD_SAFE 0x0010 -/* - * This flag means the private key operations will be handled by rsa_mod_exp - * and that they do not depend on the private key components being present: - * for example a key stored in external hardware. Without this flag - * bn_mod_exp gets called when private key components are absent. - */ -# define RSA_FLAG_EXT_PKEY 0x0020 - -/* - * This flag in the RSA_METHOD enables the new rsa_sign, rsa_verify - * functions. - */ -# define RSA_FLAG_SIGN_VER 0x0040 - -/* - * new with 0.9.6j and 0.9.7b; the built-in - * RSA implementation now uses blinding by - * default (ignoring RSA_FLAG_BLINDING), - * but other engines might not need it - */ -# define RSA_FLAG_NO_BLINDING 0x0080 -/* - * new with 0.9.8f; the built-in RSA - * implementation now uses constant time - * operations by default in private key operations, - * e.g., constant time modular exponentiation, - * modular inverse without leaking branches, - * division without leaking branches. This - * flag disables these constant time - * operations and results in faster RSA - * private key operations. - */ -# define RSA_FLAG_NO_CONSTTIME 0x0100 -# ifdef OPENSSL_USE_DEPRECATED -/* deprecated name for the flag*/ -/* - * new with 0.9.7h; the built-in RSA - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ -# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME -# endif - -# define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ - pad, NULL) - -# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ - EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) - -# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ - len, NULL) - -# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ - 0, plen) - -# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) - -# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) - -# define EVP_PKEY_CTX_get_rsa_oaep_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_OAEP_MD, 0, (void *)pmd) - -# define EVP_PKEY_CTX_set0_rsa_oaep_label(ctx, l, llen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_LABEL, llen, (void *)l) - -# define EVP_PKEY_CTX_get0_rsa_oaep_label(ctx, l) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL, 0, (void *)l) - -# define EVP_PKEY_CTRL_RSA_PADDING (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 2) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) - -# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) - -# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) - -# define EVP_PKEY_CTRL_GET_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 11) -# define EVP_PKEY_CTRL_GET_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 12) - -# define RSA_PKCS1_PADDING 1 -# define RSA_SSLV23_PADDING 2 -# define RSA_NO_PADDING 3 -# define RSA_PKCS1_OAEP_PADDING 4 -# define RSA_X931_PADDING 5 -/* EVP_PKEY_ only */ -# define RSA_PKCS1_PSS_PADDING 6 - -# define RSA_PKCS1_PADDING_SIZE 11 - -# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) -# define RSA_get_app_data(s) RSA_get_ex_data(s,0) - -RSA *RSA_new(void); -RSA *RSA_new_method(ENGINE *engine); -int RSA_size(const RSA *rsa); - -/* Deprecated version */ -# ifndef OPENSSL_NO_DEPRECATED -RSA *RSA_generate_key(int bits, unsigned long e, void - (*callback) (int, int, void *), void *cb_arg); -# endif /* !defined(OPENSSL_NO_DEPRECATED) */ - -/* New version */ -int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); - -int RSA_check_key(const RSA *); - /* next 4 return -1 on error */ -int RSA_public_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_public_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -void RSA_free(RSA *r); -/* "up" the RSA object's reference count */ -int RSA_up_ref(RSA *r); - -int RSA_flags(const RSA *r); - -void RSA_set_default_method(const RSA_METHOD *meth); -const RSA_METHOD *RSA_get_default_method(void); -const RSA_METHOD *RSA_get_method(const RSA *rsa); -int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); - -/* This function needs the memory locking malloc callbacks to be installed */ -int RSA_memory_lock(RSA *r); - -/* these are the actual SSLeay RSA functions */ -const RSA_METHOD *RSA_PKCS1_SSLeay(void); - -const RSA_METHOD *RSA_null_method(void); - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) - -typedef struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; -} RSA_PSS_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -typedef struct rsa_oaep_params_st { - X509_ALGOR *hashFunc; - X509_ALGOR *maskGenFunc; - X509_ALGOR *pSourceFunc; -} RSA_OAEP_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_OAEP_PARAMS) - -# ifndef OPENSSL_NO_FP_API -int RSA_print_fp(FILE *fp, const RSA *r, int offset); -# endif - -# ifndef OPENSSL_NO_BIO -int RSA_print(BIO *bp, const RSA *r, int offset); -# endif - -# ifndef OPENSSL_NO_RC4 -int i2d_RSA_NET(const RSA *a, unsigned char **pp, - int (*cb) (char *buf, int len, const char *prompt, - int verify), int sgckey); -RSA *d2i_RSA_NET(RSA **a, const unsigned char **pp, long length, - int (*cb) (char *buf, int len, const char *prompt, - int verify), int sgckey); - -int i2d_Netscape_RSA(const RSA *a, unsigned char **pp, - int (*cb) (char *buf, int len, const char *prompt, - int verify)); -RSA *d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, - int (*cb) (char *buf, int len, const char *prompt, - int verify)); -# endif - -/* - * The following 2 functions sign and verify a X509_SIG ASN1 object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign(int type, const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, RSA *rsa); -int RSA_verify(int type, const unsigned char *m, unsigned int m_length, - const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); - -/* - * The following 2 function sign and verify a ASN1_OCTET_STRING object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - RSA *rsa); -int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigbuf, - unsigned int siglen, RSA *rsa); - -int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); -void RSA_blinding_off(RSA *rsa); -BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); - -int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, - long seedlen, const EVP_MD *dgst); -int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, - const unsigned char *p, int pl); -int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len, - const unsigned char *p, int pl); -int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - int num, const unsigned char *param, - int plen, const EVP_MD *md, - const EVP_MD *mgf1md); -int RSA_padding_add_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_none(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_X931_hash_id(int nid); - -int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const unsigned char *EM, - int sLen); -int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, const EVP_MD *Hash, - int sLen); - -int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - const unsigned char *EM, int sLen); - -int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - int sLen); - -int RSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); -int RSA_set_ex_data(RSA *r, int idx, void *arg); -void *RSA_get_ex_data(const RSA *r, int idx); - -RSA *RSAPublicKey_dup(RSA *rsa); -RSA *RSAPrivateKey_dup(RSA *rsa); - -/* - * If this flag is set the RSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define RSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 -/* - * Application has decided PRNG is good enough to generate a key: don't - * check. - */ -# define RSA_FLAG_CHECKED 0x0800 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_RSA_strings(void); - -/* Error codes for the RSA functions. */ - -/* Function codes. */ -# define RSA_F_CHECK_PADDING_MD 140 -# define RSA_F_DO_RSA_PRINT 146 -# define RSA_F_INT_RSA_VERIFY 145 -# define RSA_F_MEMORY_LOCK 100 -# define RSA_F_OLD_RSA_PRIV_DECODE 147 -# define RSA_F_PKEY_RSA_CTRL 143 -# define RSA_F_PKEY_RSA_CTRL_STR 144 -# define RSA_F_PKEY_RSA_SIGN 142 -# define RSA_F_PKEY_RSA_VERIFY 154 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 -# define RSA_F_RSA_ALGOR_TO_MD 157 -# define RSA_F_RSA_BUILTIN_KEYGEN 129 -# define RSA_F_RSA_CHECK_KEY 123 -# define RSA_F_RSA_CMS_DECRYPT 158 -# define RSA_F_RSA_EAY_PRIVATE_DECRYPT 101 -# define RSA_F_RSA_EAY_PRIVATE_ENCRYPT 102 -# define RSA_F_RSA_EAY_PUBLIC_DECRYPT 103 -# define RSA_F_RSA_EAY_PUBLIC_ENCRYPT 104 -# define RSA_F_RSA_GENERATE_KEY 105 -# define RSA_F_RSA_GENERATE_KEY_EX 155 -# define RSA_F_RSA_ITEM_VERIFY 156 -# define RSA_F_RSA_MEMORY_LOCK 130 -# define RSA_F_RSA_MGF1_TO_MD 159 -# define RSA_F_RSA_NEW_METHOD 106 -# define RSA_F_RSA_NULL 124 -# define RSA_F_RSA_NULL_MOD_EXP 131 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 -# define RSA_F_RSA_PADDING_ADD_NONE 107 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 160 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 148 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 -# define RSA_F_RSA_PADDING_ADD_SSLV23 110 -# define RSA_F_RSA_PADDING_ADD_X931 127 -# define RSA_F_RSA_PADDING_CHECK_NONE 111 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 161 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 -# define RSA_F_RSA_PADDING_CHECK_X931 128 -# define RSA_F_RSA_PRINT 115 -# define RSA_F_RSA_PRINT_FP 116 -# define RSA_F_RSA_PRIVATE_DECRYPT 150 -# define RSA_F_RSA_PRIVATE_ENCRYPT 151 -# define RSA_F_RSA_PRIV_DECODE 137 -# define RSA_F_RSA_PRIV_ENCODE 138 -# define RSA_F_RSA_PSS_TO_CTX 162 -# define RSA_F_RSA_PUBLIC_DECRYPT 152 -# define RSA_F_RSA_PUBLIC_ENCRYPT 153 -# define RSA_F_RSA_PUB_DECODE 139 -# define RSA_F_RSA_SETUP_BLINDING 136 -# define RSA_F_RSA_SIGN 117 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 -# define RSA_F_RSA_VERIFY 119 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 -# define RSA_F_RSA_VERIFY_PKCS1_PSS 126 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 149 - -/* Reason codes. */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 166 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 160 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_KEYBITS 145 -# define RSA_R_INVALID_LABEL 161 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_OAEP_PARAMETERS 162 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_NON_FIPS_RSA_METHOD 157 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_ALLOWED_IN_FIPS_MODE 158 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 163 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNKNOWN_PSS_DIGEST 152 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 164 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 165 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/safestack.h b/3rdparty/openssl/include/openssl/safestack.h deleted file mode 100644 index 1d4f87e..0000000 --- a/3rdparty/openssl/include/openssl/safestack.h +++ /dev/null @@ -1,2672 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_SAFESTACK_H -# define HEADER_SAFESTACK_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef CHECKED_PTR_OF -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# endif - -/* - * In C++ we get problems because an explicit cast is needed from (void *) we - * use CHECKED_STACK_OF to ensure the correct type is passed in the macros - * below. - */ - -# define CHECKED_STACK_OF(type, p) \ - ((_STACK*) (1 ? p : (STACK_OF(type)*)0)) - -# define CHECKED_SK_COPY_FUNC(type, p) \ - ((void *(*)(void *)) ((1 ? p : (type *(*)(const type *))0))) - -# define CHECKED_SK_FREE_FUNC(type, p) \ - ((void (*)(void *)) ((1 ? p : (void (*)(type *))0))) - -# define CHECKED_SK_CMP_FUNC(type, p) \ - ((int (*)(const void *, const void *)) \ - ((1 ? p : (int (*)(const type * const *, const type * const *))0))) - -# define STACK_OF(type) struct stack_st_##type -# define PREDECLARE_STACK_OF(type) STACK_OF(type); - -# define DECLARE_STACK_OF(type) \ -STACK_OF(type) \ - { \ - _STACK stack; \ - }; -# define DECLARE_SPECIAL_STACK_OF(type, type2) \ -STACK_OF(type) \ - { \ - _STACK stack; \ - }; - -/* nada (obsolete in new safestack approach)*/ -# define IMPLEMENT_STACK_OF(type) - -/*- - * Strings are special: normally an lhash entry will point to a single - * (somewhat) mutable object. In the case of strings: - * - * a) Instead of a single char, there is an array of chars, NUL-terminated. - * b) The string may have be immutable. - * - * So, they need their own declarations. Especially important for - * type-checking tools, such as Deputy. - * - * In practice, however, it appears to be hard to have a const - * string. For now, I'm settling for dealing with the fact it is a - * string at all. - */ -typedef char *OPENSSL_STRING; - -typedef const char *OPENSSL_CSTRING; - -/* - * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but - * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned - * above, instead of a single char each entry is a NUL-terminated array of - * chars. So, we have to implement STRING specially for STACK_OF. This is - * dealt with in the autogenerated macros below. - */ - -DECLARE_SPECIAL_STACK_OF(OPENSSL_STRING, char) - -/* - * Similarly, we sometimes use a block of characters, NOT nul-terminated. - * These should also be distinguished from "normal" stacks. - */ -typedef void *OPENSSL_BLOCK; -DECLARE_SPECIAL_STACK_OF(OPENSSL_BLOCK, void) - -/* - * SKM_sk_... stack macros are internal to safestack.h: never use them - * directly, use sk__... instead - */ -# define SKM_sk_new(type, cmp) \ - ((STACK_OF(type) *)sk_new(CHECKED_SK_CMP_FUNC(type, cmp))) -# define SKM_sk_new_null(type) \ - ((STACK_OF(type) *)sk_new_null()) -# define SKM_sk_free(type, st) \ - sk_free(CHECKED_STACK_OF(type, st)) -# define SKM_sk_num(type, st) \ - sk_num(CHECKED_STACK_OF(type, st)) -# define SKM_sk_value(type, st,i) \ - ((type *)sk_value(CHECKED_STACK_OF(type, st), i)) -# define SKM_sk_set(type, st,i,val) \ - sk_set(CHECKED_STACK_OF(type, st), i, CHECKED_PTR_OF(type, val)) -# define SKM_sk_zero(type, st) \ - sk_zero(CHECKED_STACK_OF(type, st)) -# define SKM_sk_push(type, st, val) \ - sk_push(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) -# define SKM_sk_unshift(type, st, val) \ - sk_unshift(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) -# define SKM_sk_find(type, st, val) \ - sk_find(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val)) -# define SKM_sk_find_ex(type, st, val) \ - sk_find_ex(CHECKED_STACK_OF(type, st), \ - CHECKED_PTR_OF(type, val)) -# define SKM_sk_delete(type, st, i) \ - (type *)sk_delete(CHECKED_STACK_OF(type, st), i) -# define SKM_sk_delete_ptr(type, st, ptr) \ - (type *)sk_delete_ptr(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, ptr)) -# define SKM_sk_insert(type, st,val, i) \ - sk_insert(CHECKED_STACK_OF(type, st), CHECKED_PTR_OF(type, val), i) -# define SKM_sk_set_cmp_func(type, st, cmp) \ - ((int (*)(const type * const *,const type * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(type, st), CHECKED_SK_CMP_FUNC(type, cmp))) -# define SKM_sk_dup(type, st) \ - (STACK_OF(type) *)sk_dup(CHECKED_STACK_OF(type, st)) -# define SKM_sk_pop_free(type, st, free_func) \ - sk_pop_free(CHECKED_STACK_OF(type, st), CHECKED_SK_FREE_FUNC(type, free_func)) -# define SKM_sk_deep_copy(type, st, copy_func, free_func) \ - (STACK_OF(type) *)sk_deep_copy(CHECKED_STACK_OF(type, st), CHECKED_SK_COPY_FUNC(type, copy_func), CHECKED_SK_FREE_FUNC(type, free_func)) -# define SKM_sk_shift(type, st) \ - (type *)sk_shift(CHECKED_STACK_OF(type, st)) -# define SKM_sk_pop(type, st) \ - (type *)sk_pop(CHECKED_STACK_OF(type, st)) -# define SKM_sk_sort(type, st) \ - sk_sort(CHECKED_STACK_OF(type, st)) -# define SKM_sk_is_sorted(type, st) \ - sk_is_sorted(CHECKED_STACK_OF(type, st)) -# define SKM_ASN1_SET_OF_d2i(type, st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - (STACK_OF(type) *)d2i_ASN1_SET( \ - (STACK_OF(OPENSSL_BLOCK) **)CHECKED_PTR_OF(STACK_OF(type)*, st), \ - pp, length, \ - CHECKED_D2I_OF(type, d2i_func), \ - CHECKED_SK_FREE_FUNC(type, free_func), \ - ex_tag, ex_class) -# define SKM_ASN1_SET_OF_i2d(type, st, pp, i2d_func, ex_tag, ex_class, is_set) \ - i2d_ASN1_SET((STACK_OF(OPENSSL_BLOCK) *)CHECKED_STACK_OF(type, st), pp, \ - CHECKED_I2D_OF(type, i2d_func), \ - ex_tag, ex_class, is_set) -# define SKM_ASN1_seq_pack(type, st, i2d_func, buf, len) \ - ASN1_seq_pack(CHECKED_PTR_OF(STACK_OF(type), st), \ - CHECKED_I2D_OF(type, i2d_func), buf, len) -# define SKM_ASN1_seq_unpack(type, buf, len, d2i_func, free_func) \ - (STACK_OF(type) *)ASN1_seq_unpack(buf, len, CHECKED_D2I_OF(type, d2i_func), CHECKED_SK_FREE_FUNC(type, free_func)) -# define SKM_PKCS12_decrypt_d2i(type, algor, d2i_func, free_func, pass, passlen, oct, seq) \ - (STACK_OF(type) *)PKCS12_decrypt_d2i(algor, \ - CHECKED_D2I_OF(type, d2i_func), \ - CHECKED_SK_FREE_FUNC(type, free_func), \ - pass, passlen, oct, seq) -/* - * This block of defines is updated by util/mkstack.pl, please do not touch! - */ -# define sk_ACCESS_DESCRIPTION_new(cmp) SKM_sk_new(ACCESS_DESCRIPTION, (cmp)) -# define sk_ACCESS_DESCRIPTION_new_null() SKM_sk_new_null(ACCESS_DESCRIPTION) -# define sk_ACCESS_DESCRIPTION_free(st) SKM_sk_free(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_num(st) SKM_sk_num(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_value(st, i) SKM_sk_value(ACCESS_DESCRIPTION, (st), (i)) -# define sk_ACCESS_DESCRIPTION_set(st, i, val) SKM_sk_set(ACCESS_DESCRIPTION, (st), (i), (val)) -# define sk_ACCESS_DESCRIPTION_zero(st) SKM_sk_zero(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_push(st, val) SKM_sk_push(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_unshift(st, val) SKM_sk_unshift(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_find(st, val) SKM_sk_find(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_find_ex(st, val) SKM_sk_find_ex(ACCESS_DESCRIPTION, (st), (val)) -# define sk_ACCESS_DESCRIPTION_delete(st, i) SKM_sk_delete(ACCESS_DESCRIPTION, (st), (i)) -# define sk_ACCESS_DESCRIPTION_delete_ptr(st, ptr) SKM_sk_delete_ptr(ACCESS_DESCRIPTION, (st), (ptr)) -# define sk_ACCESS_DESCRIPTION_insert(st, val, i) SKM_sk_insert(ACCESS_DESCRIPTION, (st), (val), (i)) -# define sk_ACCESS_DESCRIPTION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ACCESS_DESCRIPTION, (st), (cmp)) -# define sk_ACCESS_DESCRIPTION_dup(st) SKM_sk_dup(ACCESS_DESCRIPTION, st) -# define sk_ACCESS_DESCRIPTION_pop_free(st, free_func) SKM_sk_pop_free(ACCESS_DESCRIPTION, (st), (free_func)) -# define sk_ACCESS_DESCRIPTION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ACCESS_DESCRIPTION, (st), (copy_func), (free_func)) -# define sk_ACCESS_DESCRIPTION_shift(st) SKM_sk_shift(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_pop(st) SKM_sk_pop(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_sort(st) SKM_sk_sort(ACCESS_DESCRIPTION, (st)) -# define sk_ACCESS_DESCRIPTION_is_sorted(st) SKM_sk_is_sorted(ACCESS_DESCRIPTION, (st)) -# define sk_ASIdOrRange_new(cmp) SKM_sk_new(ASIdOrRange, (cmp)) -# define sk_ASIdOrRange_new_null() SKM_sk_new_null(ASIdOrRange) -# define sk_ASIdOrRange_free(st) SKM_sk_free(ASIdOrRange, (st)) -# define sk_ASIdOrRange_num(st) SKM_sk_num(ASIdOrRange, (st)) -# define sk_ASIdOrRange_value(st, i) SKM_sk_value(ASIdOrRange, (st), (i)) -# define sk_ASIdOrRange_set(st, i, val) SKM_sk_set(ASIdOrRange, (st), (i), (val)) -# define sk_ASIdOrRange_zero(st) SKM_sk_zero(ASIdOrRange, (st)) -# define sk_ASIdOrRange_push(st, val) SKM_sk_push(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_unshift(st, val) SKM_sk_unshift(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_find(st, val) SKM_sk_find(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_find_ex(st, val) SKM_sk_find_ex(ASIdOrRange, (st), (val)) -# define sk_ASIdOrRange_delete(st, i) SKM_sk_delete(ASIdOrRange, (st), (i)) -# define sk_ASIdOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASIdOrRange, (st), (ptr)) -# define sk_ASIdOrRange_insert(st, val, i) SKM_sk_insert(ASIdOrRange, (st), (val), (i)) -# define sk_ASIdOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASIdOrRange, (st), (cmp)) -# define sk_ASIdOrRange_dup(st) SKM_sk_dup(ASIdOrRange, st) -# define sk_ASIdOrRange_pop_free(st, free_func) SKM_sk_pop_free(ASIdOrRange, (st), (free_func)) -# define sk_ASIdOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASIdOrRange, (st), (copy_func), (free_func)) -# define sk_ASIdOrRange_shift(st) SKM_sk_shift(ASIdOrRange, (st)) -# define sk_ASIdOrRange_pop(st) SKM_sk_pop(ASIdOrRange, (st)) -# define sk_ASIdOrRange_sort(st) SKM_sk_sort(ASIdOrRange, (st)) -# define sk_ASIdOrRange_is_sorted(st) SKM_sk_is_sorted(ASIdOrRange, (st)) -# define sk_ASN1_GENERALSTRING_new(cmp) SKM_sk_new(ASN1_GENERALSTRING, (cmp)) -# define sk_ASN1_GENERALSTRING_new_null() SKM_sk_new_null(ASN1_GENERALSTRING) -# define sk_ASN1_GENERALSTRING_free(st) SKM_sk_free(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_num(st) SKM_sk_num(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_value(st, i) SKM_sk_value(ASN1_GENERALSTRING, (st), (i)) -# define sk_ASN1_GENERALSTRING_set(st, i, val) SKM_sk_set(ASN1_GENERALSTRING, (st), (i), (val)) -# define sk_ASN1_GENERALSTRING_zero(st) SKM_sk_zero(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_push(st, val) SKM_sk_push(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_unshift(st, val) SKM_sk_unshift(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_find(st, val) SKM_sk_find(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_find_ex(st, val) SKM_sk_find_ex(ASN1_GENERALSTRING, (st), (val)) -# define sk_ASN1_GENERALSTRING_delete(st, i) SKM_sk_delete(ASN1_GENERALSTRING, (st), (i)) -# define sk_ASN1_GENERALSTRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_GENERALSTRING, (st), (ptr)) -# define sk_ASN1_GENERALSTRING_insert(st, val, i) SKM_sk_insert(ASN1_GENERALSTRING, (st), (val), (i)) -# define sk_ASN1_GENERALSTRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_GENERALSTRING, (st), (cmp)) -# define sk_ASN1_GENERALSTRING_dup(st) SKM_sk_dup(ASN1_GENERALSTRING, st) -# define sk_ASN1_GENERALSTRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_GENERALSTRING, (st), (free_func)) -# define sk_ASN1_GENERALSTRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_GENERALSTRING, (st), (copy_func), (free_func)) -# define sk_ASN1_GENERALSTRING_shift(st) SKM_sk_shift(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_pop(st) SKM_sk_pop(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_sort(st) SKM_sk_sort(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_GENERALSTRING_is_sorted(st) SKM_sk_is_sorted(ASN1_GENERALSTRING, (st)) -# define sk_ASN1_INTEGER_new(cmp) SKM_sk_new(ASN1_INTEGER, (cmp)) -# define sk_ASN1_INTEGER_new_null() SKM_sk_new_null(ASN1_INTEGER) -# define sk_ASN1_INTEGER_free(st) SKM_sk_free(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_num(st) SKM_sk_num(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_value(st, i) SKM_sk_value(ASN1_INTEGER, (st), (i)) -# define sk_ASN1_INTEGER_set(st, i, val) SKM_sk_set(ASN1_INTEGER, (st), (i), (val)) -# define sk_ASN1_INTEGER_zero(st) SKM_sk_zero(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_push(st, val) SKM_sk_push(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_unshift(st, val) SKM_sk_unshift(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_find(st, val) SKM_sk_find(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_find_ex(st, val) SKM_sk_find_ex(ASN1_INTEGER, (st), (val)) -# define sk_ASN1_INTEGER_delete(st, i) SKM_sk_delete(ASN1_INTEGER, (st), (i)) -# define sk_ASN1_INTEGER_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_INTEGER, (st), (ptr)) -# define sk_ASN1_INTEGER_insert(st, val, i) SKM_sk_insert(ASN1_INTEGER, (st), (val), (i)) -# define sk_ASN1_INTEGER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_INTEGER, (st), (cmp)) -# define sk_ASN1_INTEGER_dup(st) SKM_sk_dup(ASN1_INTEGER, st) -# define sk_ASN1_INTEGER_pop_free(st, free_func) SKM_sk_pop_free(ASN1_INTEGER, (st), (free_func)) -# define sk_ASN1_INTEGER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_INTEGER, (st), (copy_func), (free_func)) -# define sk_ASN1_INTEGER_shift(st) SKM_sk_shift(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_pop(st) SKM_sk_pop(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_sort(st) SKM_sk_sort(ASN1_INTEGER, (st)) -# define sk_ASN1_INTEGER_is_sorted(st) SKM_sk_is_sorted(ASN1_INTEGER, (st)) -# define sk_ASN1_OBJECT_new(cmp) SKM_sk_new(ASN1_OBJECT, (cmp)) -# define sk_ASN1_OBJECT_new_null() SKM_sk_new_null(ASN1_OBJECT) -# define sk_ASN1_OBJECT_free(st) SKM_sk_free(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_num(st) SKM_sk_num(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_value(st, i) SKM_sk_value(ASN1_OBJECT, (st), (i)) -# define sk_ASN1_OBJECT_set(st, i, val) SKM_sk_set(ASN1_OBJECT, (st), (i), (val)) -# define sk_ASN1_OBJECT_zero(st) SKM_sk_zero(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_push(st, val) SKM_sk_push(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_unshift(st, val) SKM_sk_unshift(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_find(st, val) SKM_sk_find(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_find_ex(st, val) SKM_sk_find_ex(ASN1_OBJECT, (st), (val)) -# define sk_ASN1_OBJECT_delete(st, i) SKM_sk_delete(ASN1_OBJECT, (st), (i)) -# define sk_ASN1_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_OBJECT, (st), (ptr)) -# define sk_ASN1_OBJECT_insert(st, val, i) SKM_sk_insert(ASN1_OBJECT, (st), (val), (i)) -# define sk_ASN1_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_OBJECT, (st), (cmp)) -# define sk_ASN1_OBJECT_dup(st) SKM_sk_dup(ASN1_OBJECT, st) -# define sk_ASN1_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(ASN1_OBJECT, (st), (free_func)) -# define sk_ASN1_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_OBJECT, (st), (copy_func), (free_func)) -# define sk_ASN1_OBJECT_shift(st) SKM_sk_shift(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_pop(st) SKM_sk_pop(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_sort(st) SKM_sk_sort(ASN1_OBJECT, (st)) -# define sk_ASN1_OBJECT_is_sorted(st) SKM_sk_is_sorted(ASN1_OBJECT, (st)) -# define sk_ASN1_STRING_TABLE_new(cmp) SKM_sk_new(ASN1_STRING_TABLE, (cmp)) -# define sk_ASN1_STRING_TABLE_new_null() SKM_sk_new_null(ASN1_STRING_TABLE) -# define sk_ASN1_STRING_TABLE_free(st) SKM_sk_free(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_num(st) SKM_sk_num(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_value(st, i) SKM_sk_value(ASN1_STRING_TABLE, (st), (i)) -# define sk_ASN1_STRING_TABLE_set(st, i, val) SKM_sk_set(ASN1_STRING_TABLE, (st), (i), (val)) -# define sk_ASN1_STRING_TABLE_zero(st) SKM_sk_zero(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_push(st, val) SKM_sk_push(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_unshift(st, val) SKM_sk_unshift(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_find(st, val) SKM_sk_find(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_find_ex(st, val) SKM_sk_find_ex(ASN1_STRING_TABLE, (st), (val)) -# define sk_ASN1_STRING_TABLE_delete(st, i) SKM_sk_delete(ASN1_STRING_TABLE, (st), (i)) -# define sk_ASN1_STRING_TABLE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_STRING_TABLE, (st), (ptr)) -# define sk_ASN1_STRING_TABLE_insert(st, val, i) SKM_sk_insert(ASN1_STRING_TABLE, (st), (val), (i)) -# define sk_ASN1_STRING_TABLE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_STRING_TABLE, (st), (cmp)) -# define sk_ASN1_STRING_TABLE_dup(st) SKM_sk_dup(ASN1_STRING_TABLE, st) -# define sk_ASN1_STRING_TABLE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_STRING_TABLE, (st), (free_func)) -# define sk_ASN1_STRING_TABLE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_STRING_TABLE, (st), (copy_func), (free_func)) -# define sk_ASN1_STRING_TABLE_shift(st) SKM_sk_shift(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_pop(st) SKM_sk_pop(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_sort(st) SKM_sk_sort(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_STRING_TABLE_is_sorted(st) SKM_sk_is_sorted(ASN1_STRING_TABLE, (st)) -# define sk_ASN1_TYPE_new(cmp) SKM_sk_new(ASN1_TYPE, (cmp)) -# define sk_ASN1_TYPE_new_null() SKM_sk_new_null(ASN1_TYPE) -# define sk_ASN1_TYPE_free(st) SKM_sk_free(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_num(st) SKM_sk_num(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_value(st, i) SKM_sk_value(ASN1_TYPE, (st), (i)) -# define sk_ASN1_TYPE_set(st, i, val) SKM_sk_set(ASN1_TYPE, (st), (i), (val)) -# define sk_ASN1_TYPE_zero(st) SKM_sk_zero(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_push(st, val) SKM_sk_push(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_unshift(st, val) SKM_sk_unshift(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_find(st, val) SKM_sk_find(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_find_ex(st, val) SKM_sk_find_ex(ASN1_TYPE, (st), (val)) -# define sk_ASN1_TYPE_delete(st, i) SKM_sk_delete(ASN1_TYPE, (st), (i)) -# define sk_ASN1_TYPE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_TYPE, (st), (ptr)) -# define sk_ASN1_TYPE_insert(st, val, i) SKM_sk_insert(ASN1_TYPE, (st), (val), (i)) -# define sk_ASN1_TYPE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_TYPE, (st), (cmp)) -# define sk_ASN1_TYPE_dup(st) SKM_sk_dup(ASN1_TYPE, st) -# define sk_ASN1_TYPE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_TYPE, (st), (free_func)) -# define sk_ASN1_TYPE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_TYPE, (st), (copy_func), (free_func)) -# define sk_ASN1_TYPE_shift(st) SKM_sk_shift(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_pop(st) SKM_sk_pop(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_sort(st) SKM_sk_sort(ASN1_TYPE, (st)) -# define sk_ASN1_TYPE_is_sorted(st) SKM_sk_is_sorted(ASN1_TYPE, (st)) -# define sk_ASN1_UTF8STRING_new(cmp) SKM_sk_new(ASN1_UTF8STRING, (cmp)) -# define sk_ASN1_UTF8STRING_new_null() SKM_sk_new_null(ASN1_UTF8STRING) -# define sk_ASN1_UTF8STRING_free(st) SKM_sk_free(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_num(st) SKM_sk_num(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_value(st, i) SKM_sk_value(ASN1_UTF8STRING, (st), (i)) -# define sk_ASN1_UTF8STRING_set(st, i, val) SKM_sk_set(ASN1_UTF8STRING, (st), (i), (val)) -# define sk_ASN1_UTF8STRING_zero(st) SKM_sk_zero(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_push(st, val) SKM_sk_push(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_unshift(st, val) SKM_sk_unshift(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_find(st, val) SKM_sk_find(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_find_ex(st, val) SKM_sk_find_ex(ASN1_UTF8STRING, (st), (val)) -# define sk_ASN1_UTF8STRING_delete(st, i) SKM_sk_delete(ASN1_UTF8STRING, (st), (i)) -# define sk_ASN1_UTF8STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_UTF8STRING, (st), (ptr)) -# define sk_ASN1_UTF8STRING_insert(st, val, i) SKM_sk_insert(ASN1_UTF8STRING, (st), (val), (i)) -# define sk_ASN1_UTF8STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_UTF8STRING, (st), (cmp)) -# define sk_ASN1_UTF8STRING_dup(st) SKM_sk_dup(ASN1_UTF8STRING, st) -# define sk_ASN1_UTF8STRING_pop_free(st, free_func) SKM_sk_pop_free(ASN1_UTF8STRING, (st), (free_func)) -# define sk_ASN1_UTF8STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_UTF8STRING, (st), (copy_func), (free_func)) -# define sk_ASN1_UTF8STRING_shift(st) SKM_sk_shift(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_pop(st) SKM_sk_pop(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_sort(st) SKM_sk_sort(ASN1_UTF8STRING, (st)) -# define sk_ASN1_UTF8STRING_is_sorted(st) SKM_sk_is_sorted(ASN1_UTF8STRING, (st)) -# define sk_ASN1_VALUE_new(cmp) SKM_sk_new(ASN1_VALUE, (cmp)) -# define sk_ASN1_VALUE_new_null() SKM_sk_new_null(ASN1_VALUE) -# define sk_ASN1_VALUE_free(st) SKM_sk_free(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_num(st) SKM_sk_num(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_value(st, i) SKM_sk_value(ASN1_VALUE, (st), (i)) -# define sk_ASN1_VALUE_set(st, i, val) SKM_sk_set(ASN1_VALUE, (st), (i), (val)) -# define sk_ASN1_VALUE_zero(st) SKM_sk_zero(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_push(st, val) SKM_sk_push(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_unshift(st, val) SKM_sk_unshift(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_find(st, val) SKM_sk_find(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_find_ex(st, val) SKM_sk_find_ex(ASN1_VALUE, (st), (val)) -# define sk_ASN1_VALUE_delete(st, i) SKM_sk_delete(ASN1_VALUE, (st), (i)) -# define sk_ASN1_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ASN1_VALUE, (st), (ptr)) -# define sk_ASN1_VALUE_insert(st, val, i) SKM_sk_insert(ASN1_VALUE, (st), (val), (i)) -# define sk_ASN1_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ASN1_VALUE, (st), (cmp)) -# define sk_ASN1_VALUE_dup(st) SKM_sk_dup(ASN1_VALUE, st) -# define sk_ASN1_VALUE_pop_free(st, free_func) SKM_sk_pop_free(ASN1_VALUE, (st), (free_func)) -# define sk_ASN1_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ASN1_VALUE, (st), (copy_func), (free_func)) -# define sk_ASN1_VALUE_shift(st) SKM_sk_shift(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_pop(st) SKM_sk_pop(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_sort(st) SKM_sk_sort(ASN1_VALUE, (st)) -# define sk_ASN1_VALUE_is_sorted(st) SKM_sk_is_sorted(ASN1_VALUE, (st)) -# define sk_BIO_new(cmp) SKM_sk_new(BIO, (cmp)) -# define sk_BIO_new_null() SKM_sk_new_null(BIO) -# define sk_BIO_free(st) SKM_sk_free(BIO, (st)) -# define sk_BIO_num(st) SKM_sk_num(BIO, (st)) -# define sk_BIO_value(st, i) SKM_sk_value(BIO, (st), (i)) -# define sk_BIO_set(st, i, val) SKM_sk_set(BIO, (st), (i), (val)) -# define sk_BIO_zero(st) SKM_sk_zero(BIO, (st)) -# define sk_BIO_push(st, val) SKM_sk_push(BIO, (st), (val)) -# define sk_BIO_unshift(st, val) SKM_sk_unshift(BIO, (st), (val)) -# define sk_BIO_find(st, val) SKM_sk_find(BIO, (st), (val)) -# define sk_BIO_find_ex(st, val) SKM_sk_find_ex(BIO, (st), (val)) -# define sk_BIO_delete(st, i) SKM_sk_delete(BIO, (st), (i)) -# define sk_BIO_delete_ptr(st, ptr) SKM_sk_delete_ptr(BIO, (st), (ptr)) -# define sk_BIO_insert(st, val, i) SKM_sk_insert(BIO, (st), (val), (i)) -# define sk_BIO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BIO, (st), (cmp)) -# define sk_BIO_dup(st) SKM_sk_dup(BIO, st) -# define sk_BIO_pop_free(st, free_func) SKM_sk_pop_free(BIO, (st), (free_func)) -# define sk_BIO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BIO, (st), (copy_func), (free_func)) -# define sk_BIO_shift(st) SKM_sk_shift(BIO, (st)) -# define sk_BIO_pop(st) SKM_sk_pop(BIO, (st)) -# define sk_BIO_sort(st) SKM_sk_sort(BIO, (st)) -# define sk_BIO_is_sorted(st) SKM_sk_is_sorted(BIO, (st)) -# define sk_BY_DIR_ENTRY_new(cmp) SKM_sk_new(BY_DIR_ENTRY, (cmp)) -# define sk_BY_DIR_ENTRY_new_null() SKM_sk_new_null(BY_DIR_ENTRY) -# define sk_BY_DIR_ENTRY_free(st) SKM_sk_free(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_num(st) SKM_sk_num(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_value(st, i) SKM_sk_value(BY_DIR_ENTRY, (st), (i)) -# define sk_BY_DIR_ENTRY_set(st, i, val) SKM_sk_set(BY_DIR_ENTRY, (st), (i), (val)) -# define sk_BY_DIR_ENTRY_zero(st) SKM_sk_zero(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_push(st, val) SKM_sk_push(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_unshift(st, val) SKM_sk_unshift(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_find(st, val) SKM_sk_find(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_find_ex(st, val) SKM_sk_find_ex(BY_DIR_ENTRY, (st), (val)) -# define sk_BY_DIR_ENTRY_delete(st, i) SKM_sk_delete(BY_DIR_ENTRY, (st), (i)) -# define sk_BY_DIR_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_ENTRY, (st), (ptr)) -# define sk_BY_DIR_ENTRY_insert(st, val, i) SKM_sk_insert(BY_DIR_ENTRY, (st), (val), (i)) -# define sk_BY_DIR_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_ENTRY, (st), (cmp)) -# define sk_BY_DIR_ENTRY_dup(st) SKM_sk_dup(BY_DIR_ENTRY, st) -# define sk_BY_DIR_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_ENTRY, (st), (free_func)) -# define sk_BY_DIR_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_ENTRY, (st), (copy_func), (free_func)) -# define sk_BY_DIR_ENTRY_shift(st) SKM_sk_shift(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_pop(st) SKM_sk_pop(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_sort(st) SKM_sk_sort(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_ENTRY_is_sorted(st) SKM_sk_is_sorted(BY_DIR_ENTRY, (st)) -# define sk_BY_DIR_HASH_new(cmp) SKM_sk_new(BY_DIR_HASH, (cmp)) -# define sk_BY_DIR_HASH_new_null() SKM_sk_new_null(BY_DIR_HASH) -# define sk_BY_DIR_HASH_free(st) SKM_sk_free(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_num(st) SKM_sk_num(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_value(st, i) SKM_sk_value(BY_DIR_HASH, (st), (i)) -# define sk_BY_DIR_HASH_set(st, i, val) SKM_sk_set(BY_DIR_HASH, (st), (i), (val)) -# define sk_BY_DIR_HASH_zero(st) SKM_sk_zero(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_push(st, val) SKM_sk_push(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_unshift(st, val) SKM_sk_unshift(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_find(st, val) SKM_sk_find(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_find_ex(st, val) SKM_sk_find_ex(BY_DIR_HASH, (st), (val)) -# define sk_BY_DIR_HASH_delete(st, i) SKM_sk_delete(BY_DIR_HASH, (st), (i)) -# define sk_BY_DIR_HASH_delete_ptr(st, ptr) SKM_sk_delete_ptr(BY_DIR_HASH, (st), (ptr)) -# define sk_BY_DIR_HASH_insert(st, val, i) SKM_sk_insert(BY_DIR_HASH, (st), (val), (i)) -# define sk_BY_DIR_HASH_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(BY_DIR_HASH, (st), (cmp)) -# define sk_BY_DIR_HASH_dup(st) SKM_sk_dup(BY_DIR_HASH, st) -# define sk_BY_DIR_HASH_pop_free(st, free_func) SKM_sk_pop_free(BY_DIR_HASH, (st), (free_func)) -# define sk_BY_DIR_HASH_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(BY_DIR_HASH, (st), (copy_func), (free_func)) -# define sk_BY_DIR_HASH_shift(st) SKM_sk_shift(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_pop(st) SKM_sk_pop(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_sort(st) SKM_sk_sort(BY_DIR_HASH, (st)) -# define sk_BY_DIR_HASH_is_sorted(st) SKM_sk_is_sorted(BY_DIR_HASH, (st)) -# define sk_CMS_CertificateChoices_new(cmp) SKM_sk_new(CMS_CertificateChoices, (cmp)) -# define sk_CMS_CertificateChoices_new_null() SKM_sk_new_null(CMS_CertificateChoices) -# define sk_CMS_CertificateChoices_free(st) SKM_sk_free(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_num(st) SKM_sk_num(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_value(st, i) SKM_sk_value(CMS_CertificateChoices, (st), (i)) -# define sk_CMS_CertificateChoices_set(st, i, val) SKM_sk_set(CMS_CertificateChoices, (st), (i), (val)) -# define sk_CMS_CertificateChoices_zero(st) SKM_sk_zero(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_push(st, val) SKM_sk_push(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_unshift(st, val) SKM_sk_unshift(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_find(st, val) SKM_sk_find(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_find_ex(st, val) SKM_sk_find_ex(CMS_CertificateChoices, (st), (val)) -# define sk_CMS_CertificateChoices_delete(st, i) SKM_sk_delete(CMS_CertificateChoices, (st), (i)) -# define sk_CMS_CertificateChoices_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_CertificateChoices, (st), (ptr)) -# define sk_CMS_CertificateChoices_insert(st, val, i) SKM_sk_insert(CMS_CertificateChoices, (st), (val), (i)) -# define sk_CMS_CertificateChoices_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_CertificateChoices, (st), (cmp)) -# define sk_CMS_CertificateChoices_dup(st) SKM_sk_dup(CMS_CertificateChoices, st) -# define sk_CMS_CertificateChoices_pop_free(st, free_func) SKM_sk_pop_free(CMS_CertificateChoices, (st), (free_func)) -# define sk_CMS_CertificateChoices_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_CertificateChoices, (st), (copy_func), (free_func)) -# define sk_CMS_CertificateChoices_shift(st) SKM_sk_shift(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_pop(st) SKM_sk_pop(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_sort(st) SKM_sk_sort(CMS_CertificateChoices, (st)) -# define sk_CMS_CertificateChoices_is_sorted(st) SKM_sk_is_sorted(CMS_CertificateChoices, (st)) -# define sk_CMS_RecipientEncryptedKey_new(cmp) SKM_sk_new(CMS_RecipientEncryptedKey, (cmp)) -# define sk_CMS_RecipientEncryptedKey_new_null() SKM_sk_new_null(CMS_RecipientEncryptedKey) -# define sk_CMS_RecipientEncryptedKey_free(st) SKM_sk_free(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_num(st) SKM_sk_num(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_value(st, i) SKM_sk_value(CMS_RecipientEncryptedKey, (st), (i)) -# define sk_CMS_RecipientEncryptedKey_set(st, i, val) SKM_sk_set(CMS_RecipientEncryptedKey, (st), (i), (val)) -# define sk_CMS_RecipientEncryptedKey_zero(st) SKM_sk_zero(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_push(st, val) SKM_sk_push(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_unshift(st, val) SKM_sk_unshift(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_find(st, val) SKM_sk_find(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientEncryptedKey, (st), (val)) -# define sk_CMS_RecipientEncryptedKey_delete(st, i) SKM_sk_delete(CMS_RecipientEncryptedKey, (st), (i)) -# define sk_CMS_RecipientEncryptedKey_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientEncryptedKey, (st), (ptr)) -# define sk_CMS_RecipientEncryptedKey_insert(st, val, i) SKM_sk_insert(CMS_RecipientEncryptedKey, (st), (val), (i)) -# define sk_CMS_RecipientEncryptedKey_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientEncryptedKey, (st), (cmp)) -# define sk_CMS_RecipientEncryptedKey_dup(st) SKM_sk_dup(CMS_RecipientEncryptedKey, st) -# define sk_CMS_RecipientEncryptedKey_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientEncryptedKey, (st), (free_func)) -# define sk_CMS_RecipientEncryptedKey_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientEncryptedKey, (st), (copy_func), (free_func)) -# define sk_CMS_RecipientEncryptedKey_shift(st) SKM_sk_shift(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_pop(st) SKM_sk_pop(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_sort(st) SKM_sk_sort(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientEncryptedKey_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientEncryptedKey, (st)) -# define sk_CMS_RecipientInfo_new(cmp) SKM_sk_new(CMS_RecipientInfo, (cmp)) -# define sk_CMS_RecipientInfo_new_null() SKM_sk_new_null(CMS_RecipientInfo) -# define sk_CMS_RecipientInfo_free(st) SKM_sk_free(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_num(st) SKM_sk_num(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_value(st, i) SKM_sk_value(CMS_RecipientInfo, (st), (i)) -# define sk_CMS_RecipientInfo_set(st, i, val) SKM_sk_set(CMS_RecipientInfo, (st), (i), (val)) -# define sk_CMS_RecipientInfo_zero(st) SKM_sk_zero(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_push(st, val) SKM_sk_push(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_unshift(st, val) SKM_sk_unshift(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_find(st, val) SKM_sk_find(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_find_ex(st, val) SKM_sk_find_ex(CMS_RecipientInfo, (st), (val)) -# define sk_CMS_RecipientInfo_delete(st, i) SKM_sk_delete(CMS_RecipientInfo, (st), (i)) -# define sk_CMS_RecipientInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RecipientInfo, (st), (ptr)) -# define sk_CMS_RecipientInfo_insert(st, val, i) SKM_sk_insert(CMS_RecipientInfo, (st), (val), (i)) -# define sk_CMS_RecipientInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RecipientInfo, (st), (cmp)) -# define sk_CMS_RecipientInfo_dup(st) SKM_sk_dup(CMS_RecipientInfo, st) -# define sk_CMS_RecipientInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_RecipientInfo, (st), (free_func)) -# define sk_CMS_RecipientInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RecipientInfo, (st), (copy_func), (free_func)) -# define sk_CMS_RecipientInfo_shift(st) SKM_sk_shift(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_pop(st) SKM_sk_pop(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_sort(st) SKM_sk_sort(CMS_RecipientInfo, (st)) -# define sk_CMS_RecipientInfo_is_sorted(st) SKM_sk_is_sorted(CMS_RecipientInfo, (st)) -# define sk_CMS_RevocationInfoChoice_new(cmp) SKM_sk_new(CMS_RevocationInfoChoice, (cmp)) -# define sk_CMS_RevocationInfoChoice_new_null() SKM_sk_new_null(CMS_RevocationInfoChoice) -# define sk_CMS_RevocationInfoChoice_free(st) SKM_sk_free(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_num(st) SKM_sk_num(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_value(st, i) SKM_sk_value(CMS_RevocationInfoChoice, (st), (i)) -# define sk_CMS_RevocationInfoChoice_set(st, i, val) SKM_sk_set(CMS_RevocationInfoChoice, (st), (i), (val)) -# define sk_CMS_RevocationInfoChoice_zero(st) SKM_sk_zero(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_push(st, val) SKM_sk_push(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_unshift(st, val) SKM_sk_unshift(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_find(st, val) SKM_sk_find(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_find_ex(st, val) SKM_sk_find_ex(CMS_RevocationInfoChoice, (st), (val)) -# define sk_CMS_RevocationInfoChoice_delete(st, i) SKM_sk_delete(CMS_RevocationInfoChoice, (st), (i)) -# define sk_CMS_RevocationInfoChoice_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_RevocationInfoChoice, (st), (ptr)) -# define sk_CMS_RevocationInfoChoice_insert(st, val, i) SKM_sk_insert(CMS_RevocationInfoChoice, (st), (val), (i)) -# define sk_CMS_RevocationInfoChoice_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_RevocationInfoChoice, (st), (cmp)) -# define sk_CMS_RevocationInfoChoice_dup(st) SKM_sk_dup(CMS_RevocationInfoChoice, st) -# define sk_CMS_RevocationInfoChoice_pop_free(st, free_func) SKM_sk_pop_free(CMS_RevocationInfoChoice, (st), (free_func)) -# define sk_CMS_RevocationInfoChoice_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_RevocationInfoChoice, (st), (copy_func), (free_func)) -# define sk_CMS_RevocationInfoChoice_shift(st) SKM_sk_shift(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_pop(st) SKM_sk_pop(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_sort(st) SKM_sk_sort(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_RevocationInfoChoice_is_sorted(st) SKM_sk_is_sorted(CMS_RevocationInfoChoice, (st)) -# define sk_CMS_SignerInfo_new(cmp) SKM_sk_new(CMS_SignerInfo, (cmp)) -# define sk_CMS_SignerInfo_new_null() SKM_sk_new_null(CMS_SignerInfo) -# define sk_CMS_SignerInfo_free(st) SKM_sk_free(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_num(st) SKM_sk_num(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_value(st, i) SKM_sk_value(CMS_SignerInfo, (st), (i)) -# define sk_CMS_SignerInfo_set(st, i, val) SKM_sk_set(CMS_SignerInfo, (st), (i), (val)) -# define sk_CMS_SignerInfo_zero(st) SKM_sk_zero(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_push(st, val) SKM_sk_push(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_unshift(st, val) SKM_sk_unshift(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_find(st, val) SKM_sk_find(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_find_ex(st, val) SKM_sk_find_ex(CMS_SignerInfo, (st), (val)) -# define sk_CMS_SignerInfo_delete(st, i) SKM_sk_delete(CMS_SignerInfo, (st), (i)) -# define sk_CMS_SignerInfo_delete_ptr(st, ptr) SKM_sk_delete_ptr(CMS_SignerInfo, (st), (ptr)) -# define sk_CMS_SignerInfo_insert(st, val, i) SKM_sk_insert(CMS_SignerInfo, (st), (val), (i)) -# define sk_CMS_SignerInfo_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CMS_SignerInfo, (st), (cmp)) -# define sk_CMS_SignerInfo_dup(st) SKM_sk_dup(CMS_SignerInfo, st) -# define sk_CMS_SignerInfo_pop_free(st, free_func) SKM_sk_pop_free(CMS_SignerInfo, (st), (free_func)) -# define sk_CMS_SignerInfo_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CMS_SignerInfo, (st), (copy_func), (free_func)) -# define sk_CMS_SignerInfo_shift(st) SKM_sk_shift(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_pop(st) SKM_sk_pop(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_sort(st) SKM_sk_sort(CMS_SignerInfo, (st)) -# define sk_CMS_SignerInfo_is_sorted(st) SKM_sk_is_sorted(CMS_SignerInfo, (st)) -# define sk_CONF_IMODULE_new(cmp) SKM_sk_new(CONF_IMODULE, (cmp)) -# define sk_CONF_IMODULE_new_null() SKM_sk_new_null(CONF_IMODULE) -# define sk_CONF_IMODULE_free(st) SKM_sk_free(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_num(st) SKM_sk_num(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_value(st, i) SKM_sk_value(CONF_IMODULE, (st), (i)) -# define sk_CONF_IMODULE_set(st, i, val) SKM_sk_set(CONF_IMODULE, (st), (i), (val)) -# define sk_CONF_IMODULE_zero(st) SKM_sk_zero(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_push(st, val) SKM_sk_push(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_unshift(st, val) SKM_sk_unshift(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_find(st, val) SKM_sk_find(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_find_ex(st, val) SKM_sk_find_ex(CONF_IMODULE, (st), (val)) -# define sk_CONF_IMODULE_delete(st, i) SKM_sk_delete(CONF_IMODULE, (st), (i)) -# define sk_CONF_IMODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_IMODULE, (st), (ptr)) -# define sk_CONF_IMODULE_insert(st, val, i) SKM_sk_insert(CONF_IMODULE, (st), (val), (i)) -# define sk_CONF_IMODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_IMODULE, (st), (cmp)) -# define sk_CONF_IMODULE_dup(st) SKM_sk_dup(CONF_IMODULE, st) -# define sk_CONF_IMODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_IMODULE, (st), (free_func)) -# define sk_CONF_IMODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_IMODULE, (st), (copy_func), (free_func)) -# define sk_CONF_IMODULE_shift(st) SKM_sk_shift(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_pop(st) SKM_sk_pop(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_sort(st) SKM_sk_sort(CONF_IMODULE, (st)) -# define sk_CONF_IMODULE_is_sorted(st) SKM_sk_is_sorted(CONF_IMODULE, (st)) -# define sk_CONF_MODULE_new(cmp) SKM_sk_new(CONF_MODULE, (cmp)) -# define sk_CONF_MODULE_new_null() SKM_sk_new_null(CONF_MODULE) -# define sk_CONF_MODULE_free(st) SKM_sk_free(CONF_MODULE, (st)) -# define sk_CONF_MODULE_num(st) SKM_sk_num(CONF_MODULE, (st)) -# define sk_CONF_MODULE_value(st, i) SKM_sk_value(CONF_MODULE, (st), (i)) -# define sk_CONF_MODULE_set(st, i, val) SKM_sk_set(CONF_MODULE, (st), (i), (val)) -# define sk_CONF_MODULE_zero(st) SKM_sk_zero(CONF_MODULE, (st)) -# define sk_CONF_MODULE_push(st, val) SKM_sk_push(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_unshift(st, val) SKM_sk_unshift(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_find(st, val) SKM_sk_find(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_find_ex(st, val) SKM_sk_find_ex(CONF_MODULE, (st), (val)) -# define sk_CONF_MODULE_delete(st, i) SKM_sk_delete(CONF_MODULE, (st), (i)) -# define sk_CONF_MODULE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_MODULE, (st), (ptr)) -# define sk_CONF_MODULE_insert(st, val, i) SKM_sk_insert(CONF_MODULE, (st), (val), (i)) -# define sk_CONF_MODULE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_MODULE, (st), (cmp)) -# define sk_CONF_MODULE_dup(st) SKM_sk_dup(CONF_MODULE, st) -# define sk_CONF_MODULE_pop_free(st, free_func) SKM_sk_pop_free(CONF_MODULE, (st), (free_func)) -# define sk_CONF_MODULE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_MODULE, (st), (copy_func), (free_func)) -# define sk_CONF_MODULE_shift(st) SKM_sk_shift(CONF_MODULE, (st)) -# define sk_CONF_MODULE_pop(st) SKM_sk_pop(CONF_MODULE, (st)) -# define sk_CONF_MODULE_sort(st) SKM_sk_sort(CONF_MODULE, (st)) -# define sk_CONF_MODULE_is_sorted(st) SKM_sk_is_sorted(CONF_MODULE, (st)) -# define sk_CONF_VALUE_new(cmp) SKM_sk_new(CONF_VALUE, (cmp)) -# define sk_CONF_VALUE_new_null() SKM_sk_new_null(CONF_VALUE) -# define sk_CONF_VALUE_free(st) SKM_sk_free(CONF_VALUE, (st)) -# define sk_CONF_VALUE_num(st) SKM_sk_num(CONF_VALUE, (st)) -# define sk_CONF_VALUE_value(st, i) SKM_sk_value(CONF_VALUE, (st), (i)) -# define sk_CONF_VALUE_set(st, i, val) SKM_sk_set(CONF_VALUE, (st), (i), (val)) -# define sk_CONF_VALUE_zero(st) SKM_sk_zero(CONF_VALUE, (st)) -# define sk_CONF_VALUE_push(st, val) SKM_sk_push(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_unshift(st, val) SKM_sk_unshift(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_find(st, val) SKM_sk_find(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_find_ex(st, val) SKM_sk_find_ex(CONF_VALUE, (st), (val)) -# define sk_CONF_VALUE_delete(st, i) SKM_sk_delete(CONF_VALUE, (st), (i)) -# define sk_CONF_VALUE_delete_ptr(st, ptr) SKM_sk_delete_ptr(CONF_VALUE, (st), (ptr)) -# define sk_CONF_VALUE_insert(st, val, i) SKM_sk_insert(CONF_VALUE, (st), (val), (i)) -# define sk_CONF_VALUE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CONF_VALUE, (st), (cmp)) -# define sk_CONF_VALUE_dup(st) SKM_sk_dup(CONF_VALUE, st) -# define sk_CONF_VALUE_pop_free(st, free_func) SKM_sk_pop_free(CONF_VALUE, (st), (free_func)) -# define sk_CONF_VALUE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CONF_VALUE, (st), (copy_func), (free_func)) -# define sk_CONF_VALUE_shift(st) SKM_sk_shift(CONF_VALUE, (st)) -# define sk_CONF_VALUE_pop(st) SKM_sk_pop(CONF_VALUE, (st)) -# define sk_CONF_VALUE_sort(st) SKM_sk_sort(CONF_VALUE, (st)) -# define sk_CONF_VALUE_is_sorted(st) SKM_sk_is_sorted(CONF_VALUE, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_new(cmp) SKM_sk_new(CRYPTO_EX_DATA_FUNCS, (cmp)) -# define sk_CRYPTO_EX_DATA_FUNCS_new_null() SKM_sk_new_null(CRYPTO_EX_DATA_FUNCS) -# define sk_CRYPTO_EX_DATA_FUNCS_free(st) SKM_sk_free(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_num(st) SKM_sk_num(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_value(st, i) SKM_sk_value(CRYPTO_EX_DATA_FUNCS, (st), (i)) -# define sk_CRYPTO_EX_DATA_FUNCS_set(st, i, val) SKM_sk_set(CRYPTO_EX_DATA_FUNCS, (st), (i), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_zero(st) SKM_sk_zero(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_push(st, val) SKM_sk_push(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_unshift(st, val) SKM_sk_unshift(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_find(st, val) SKM_sk_find(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_find_ex(st, val) SKM_sk_find_ex(CRYPTO_EX_DATA_FUNCS, (st), (val)) -# define sk_CRYPTO_EX_DATA_FUNCS_delete(st, i) SKM_sk_delete(CRYPTO_EX_DATA_FUNCS, (st), (i)) -# define sk_CRYPTO_EX_DATA_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_EX_DATA_FUNCS, (st), (ptr)) -# define sk_CRYPTO_EX_DATA_FUNCS_insert(st, val, i) SKM_sk_insert(CRYPTO_EX_DATA_FUNCS, (st), (val), (i)) -# define sk_CRYPTO_EX_DATA_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_EX_DATA_FUNCS, (st), (cmp)) -# define sk_CRYPTO_EX_DATA_FUNCS_dup(st) SKM_sk_dup(CRYPTO_EX_DATA_FUNCS, st) -# define sk_CRYPTO_EX_DATA_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_EX_DATA_FUNCS, (st), (free_func)) -# define sk_CRYPTO_EX_DATA_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_EX_DATA_FUNCS, (st), (copy_func), (free_func)) -# define sk_CRYPTO_EX_DATA_FUNCS_shift(st) SKM_sk_shift(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_pop(st) SKM_sk_pop(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_sort(st) SKM_sk_sort(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_EX_DATA_FUNCS_is_sorted(st) SKM_sk_is_sorted(CRYPTO_EX_DATA_FUNCS, (st)) -# define sk_CRYPTO_dynlock_new(cmp) SKM_sk_new(CRYPTO_dynlock, (cmp)) -# define sk_CRYPTO_dynlock_new_null() SKM_sk_new_null(CRYPTO_dynlock) -# define sk_CRYPTO_dynlock_free(st) SKM_sk_free(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_num(st) SKM_sk_num(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_value(st, i) SKM_sk_value(CRYPTO_dynlock, (st), (i)) -# define sk_CRYPTO_dynlock_set(st, i, val) SKM_sk_set(CRYPTO_dynlock, (st), (i), (val)) -# define sk_CRYPTO_dynlock_zero(st) SKM_sk_zero(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_push(st, val) SKM_sk_push(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_unshift(st, val) SKM_sk_unshift(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_find(st, val) SKM_sk_find(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_find_ex(st, val) SKM_sk_find_ex(CRYPTO_dynlock, (st), (val)) -# define sk_CRYPTO_dynlock_delete(st, i) SKM_sk_delete(CRYPTO_dynlock, (st), (i)) -# define sk_CRYPTO_dynlock_delete_ptr(st, ptr) SKM_sk_delete_ptr(CRYPTO_dynlock, (st), (ptr)) -# define sk_CRYPTO_dynlock_insert(st, val, i) SKM_sk_insert(CRYPTO_dynlock, (st), (val), (i)) -# define sk_CRYPTO_dynlock_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(CRYPTO_dynlock, (st), (cmp)) -# define sk_CRYPTO_dynlock_dup(st) SKM_sk_dup(CRYPTO_dynlock, st) -# define sk_CRYPTO_dynlock_pop_free(st, free_func) SKM_sk_pop_free(CRYPTO_dynlock, (st), (free_func)) -# define sk_CRYPTO_dynlock_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(CRYPTO_dynlock, (st), (copy_func), (free_func)) -# define sk_CRYPTO_dynlock_shift(st) SKM_sk_shift(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_pop(st) SKM_sk_pop(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_sort(st) SKM_sk_sort(CRYPTO_dynlock, (st)) -# define sk_CRYPTO_dynlock_is_sorted(st) SKM_sk_is_sorted(CRYPTO_dynlock, (st)) -# define sk_DIST_POINT_new(cmp) SKM_sk_new(DIST_POINT, (cmp)) -# define sk_DIST_POINT_new_null() SKM_sk_new_null(DIST_POINT) -# define sk_DIST_POINT_free(st) SKM_sk_free(DIST_POINT, (st)) -# define sk_DIST_POINT_num(st) SKM_sk_num(DIST_POINT, (st)) -# define sk_DIST_POINT_value(st, i) SKM_sk_value(DIST_POINT, (st), (i)) -# define sk_DIST_POINT_set(st, i, val) SKM_sk_set(DIST_POINT, (st), (i), (val)) -# define sk_DIST_POINT_zero(st) SKM_sk_zero(DIST_POINT, (st)) -# define sk_DIST_POINT_push(st, val) SKM_sk_push(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_unshift(st, val) SKM_sk_unshift(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_find(st, val) SKM_sk_find(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_find_ex(st, val) SKM_sk_find_ex(DIST_POINT, (st), (val)) -# define sk_DIST_POINT_delete(st, i) SKM_sk_delete(DIST_POINT, (st), (i)) -# define sk_DIST_POINT_delete_ptr(st, ptr) SKM_sk_delete_ptr(DIST_POINT, (st), (ptr)) -# define sk_DIST_POINT_insert(st, val, i) SKM_sk_insert(DIST_POINT, (st), (val), (i)) -# define sk_DIST_POINT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(DIST_POINT, (st), (cmp)) -# define sk_DIST_POINT_dup(st) SKM_sk_dup(DIST_POINT, st) -# define sk_DIST_POINT_pop_free(st, free_func) SKM_sk_pop_free(DIST_POINT, (st), (free_func)) -# define sk_DIST_POINT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(DIST_POINT, (st), (copy_func), (free_func)) -# define sk_DIST_POINT_shift(st) SKM_sk_shift(DIST_POINT, (st)) -# define sk_DIST_POINT_pop(st) SKM_sk_pop(DIST_POINT, (st)) -# define sk_DIST_POINT_sort(st) SKM_sk_sort(DIST_POINT, (st)) -# define sk_DIST_POINT_is_sorted(st) SKM_sk_is_sorted(DIST_POINT, (st)) -# define sk_ENGINE_new(cmp) SKM_sk_new(ENGINE, (cmp)) -# define sk_ENGINE_new_null() SKM_sk_new_null(ENGINE) -# define sk_ENGINE_free(st) SKM_sk_free(ENGINE, (st)) -# define sk_ENGINE_num(st) SKM_sk_num(ENGINE, (st)) -# define sk_ENGINE_value(st, i) SKM_sk_value(ENGINE, (st), (i)) -# define sk_ENGINE_set(st, i, val) SKM_sk_set(ENGINE, (st), (i), (val)) -# define sk_ENGINE_zero(st) SKM_sk_zero(ENGINE, (st)) -# define sk_ENGINE_push(st, val) SKM_sk_push(ENGINE, (st), (val)) -# define sk_ENGINE_unshift(st, val) SKM_sk_unshift(ENGINE, (st), (val)) -# define sk_ENGINE_find(st, val) SKM_sk_find(ENGINE, (st), (val)) -# define sk_ENGINE_find_ex(st, val) SKM_sk_find_ex(ENGINE, (st), (val)) -# define sk_ENGINE_delete(st, i) SKM_sk_delete(ENGINE, (st), (i)) -# define sk_ENGINE_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE, (st), (ptr)) -# define sk_ENGINE_insert(st, val, i) SKM_sk_insert(ENGINE, (st), (val), (i)) -# define sk_ENGINE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE, (st), (cmp)) -# define sk_ENGINE_dup(st) SKM_sk_dup(ENGINE, st) -# define sk_ENGINE_pop_free(st, free_func) SKM_sk_pop_free(ENGINE, (st), (free_func)) -# define sk_ENGINE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE, (st), (copy_func), (free_func)) -# define sk_ENGINE_shift(st) SKM_sk_shift(ENGINE, (st)) -# define sk_ENGINE_pop(st) SKM_sk_pop(ENGINE, (st)) -# define sk_ENGINE_sort(st) SKM_sk_sort(ENGINE, (st)) -# define sk_ENGINE_is_sorted(st) SKM_sk_is_sorted(ENGINE, (st)) -# define sk_ENGINE_CLEANUP_ITEM_new(cmp) SKM_sk_new(ENGINE_CLEANUP_ITEM, (cmp)) -# define sk_ENGINE_CLEANUP_ITEM_new_null() SKM_sk_new_null(ENGINE_CLEANUP_ITEM) -# define sk_ENGINE_CLEANUP_ITEM_free(st) SKM_sk_free(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_num(st) SKM_sk_num(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_value(st, i) SKM_sk_value(ENGINE_CLEANUP_ITEM, (st), (i)) -# define sk_ENGINE_CLEANUP_ITEM_set(st, i, val) SKM_sk_set(ENGINE_CLEANUP_ITEM, (st), (i), (val)) -# define sk_ENGINE_CLEANUP_ITEM_zero(st) SKM_sk_zero(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_push(st, val) SKM_sk_push(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_unshift(st, val) SKM_sk_unshift(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_find(st, val) SKM_sk_find(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_find_ex(st, val) SKM_sk_find_ex(ENGINE_CLEANUP_ITEM, (st), (val)) -# define sk_ENGINE_CLEANUP_ITEM_delete(st, i) SKM_sk_delete(ENGINE_CLEANUP_ITEM, (st), (i)) -# define sk_ENGINE_CLEANUP_ITEM_delete_ptr(st, ptr) SKM_sk_delete_ptr(ENGINE_CLEANUP_ITEM, (st), (ptr)) -# define sk_ENGINE_CLEANUP_ITEM_insert(st, val, i) SKM_sk_insert(ENGINE_CLEANUP_ITEM, (st), (val), (i)) -# define sk_ENGINE_CLEANUP_ITEM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ENGINE_CLEANUP_ITEM, (st), (cmp)) -# define sk_ENGINE_CLEANUP_ITEM_dup(st) SKM_sk_dup(ENGINE_CLEANUP_ITEM, st) -# define sk_ENGINE_CLEANUP_ITEM_pop_free(st, free_func) SKM_sk_pop_free(ENGINE_CLEANUP_ITEM, (st), (free_func)) -# define sk_ENGINE_CLEANUP_ITEM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ENGINE_CLEANUP_ITEM, (st), (copy_func), (free_func)) -# define sk_ENGINE_CLEANUP_ITEM_shift(st) SKM_sk_shift(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_pop(st) SKM_sk_pop(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_sort(st) SKM_sk_sort(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ENGINE_CLEANUP_ITEM_is_sorted(st) SKM_sk_is_sorted(ENGINE_CLEANUP_ITEM, (st)) -# define sk_ESS_CERT_ID_new(cmp) SKM_sk_new(ESS_CERT_ID, (cmp)) -# define sk_ESS_CERT_ID_new_null() SKM_sk_new_null(ESS_CERT_ID) -# define sk_ESS_CERT_ID_free(st) SKM_sk_free(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_num(st) SKM_sk_num(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_value(st, i) SKM_sk_value(ESS_CERT_ID, (st), (i)) -# define sk_ESS_CERT_ID_set(st, i, val) SKM_sk_set(ESS_CERT_ID, (st), (i), (val)) -# define sk_ESS_CERT_ID_zero(st) SKM_sk_zero(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_push(st, val) SKM_sk_push(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_unshift(st, val) SKM_sk_unshift(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_find(st, val) SKM_sk_find(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_find_ex(st, val) SKM_sk_find_ex(ESS_CERT_ID, (st), (val)) -# define sk_ESS_CERT_ID_delete(st, i) SKM_sk_delete(ESS_CERT_ID, (st), (i)) -# define sk_ESS_CERT_ID_delete_ptr(st, ptr) SKM_sk_delete_ptr(ESS_CERT_ID, (st), (ptr)) -# define sk_ESS_CERT_ID_insert(st, val, i) SKM_sk_insert(ESS_CERT_ID, (st), (val), (i)) -# define sk_ESS_CERT_ID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(ESS_CERT_ID, (st), (cmp)) -# define sk_ESS_CERT_ID_dup(st) SKM_sk_dup(ESS_CERT_ID, st) -# define sk_ESS_CERT_ID_pop_free(st, free_func) SKM_sk_pop_free(ESS_CERT_ID, (st), (free_func)) -# define sk_ESS_CERT_ID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(ESS_CERT_ID, (st), (copy_func), (free_func)) -# define sk_ESS_CERT_ID_shift(st) SKM_sk_shift(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_pop(st) SKM_sk_pop(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_sort(st) SKM_sk_sort(ESS_CERT_ID, (st)) -# define sk_ESS_CERT_ID_is_sorted(st) SKM_sk_is_sorted(ESS_CERT_ID, (st)) -# define sk_EVP_MD_new(cmp) SKM_sk_new(EVP_MD, (cmp)) -# define sk_EVP_MD_new_null() SKM_sk_new_null(EVP_MD) -# define sk_EVP_MD_free(st) SKM_sk_free(EVP_MD, (st)) -# define sk_EVP_MD_num(st) SKM_sk_num(EVP_MD, (st)) -# define sk_EVP_MD_value(st, i) SKM_sk_value(EVP_MD, (st), (i)) -# define sk_EVP_MD_set(st, i, val) SKM_sk_set(EVP_MD, (st), (i), (val)) -# define sk_EVP_MD_zero(st) SKM_sk_zero(EVP_MD, (st)) -# define sk_EVP_MD_push(st, val) SKM_sk_push(EVP_MD, (st), (val)) -# define sk_EVP_MD_unshift(st, val) SKM_sk_unshift(EVP_MD, (st), (val)) -# define sk_EVP_MD_find(st, val) SKM_sk_find(EVP_MD, (st), (val)) -# define sk_EVP_MD_find_ex(st, val) SKM_sk_find_ex(EVP_MD, (st), (val)) -# define sk_EVP_MD_delete(st, i) SKM_sk_delete(EVP_MD, (st), (i)) -# define sk_EVP_MD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_MD, (st), (ptr)) -# define sk_EVP_MD_insert(st, val, i) SKM_sk_insert(EVP_MD, (st), (val), (i)) -# define sk_EVP_MD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_MD, (st), (cmp)) -# define sk_EVP_MD_dup(st) SKM_sk_dup(EVP_MD, st) -# define sk_EVP_MD_pop_free(st, free_func) SKM_sk_pop_free(EVP_MD, (st), (free_func)) -# define sk_EVP_MD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_MD, (st), (copy_func), (free_func)) -# define sk_EVP_MD_shift(st) SKM_sk_shift(EVP_MD, (st)) -# define sk_EVP_MD_pop(st) SKM_sk_pop(EVP_MD, (st)) -# define sk_EVP_MD_sort(st) SKM_sk_sort(EVP_MD, (st)) -# define sk_EVP_MD_is_sorted(st) SKM_sk_is_sorted(EVP_MD, (st)) -# define sk_EVP_PBE_CTL_new(cmp) SKM_sk_new(EVP_PBE_CTL, (cmp)) -# define sk_EVP_PBE_CTL_new_null() SKM_sk_new_null(EVP_PBE_CTL) -# define sk_EVP_PBE_CTL_free(st) SKM_sk_free(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_num(st) SKM_sk_num(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_value(st, i) SKM_sk_value(EVP_PBE_CTL, (st), (i)) -# define sk_EVP_PBE_CTL_set(st, i, val) SKM_sk_set(EVP_PBE_CTL, (st), (i), (val)) -# define sk_EVP_PBE_CTL_zero(st) SKM_sk_zero(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_push(st, val) SKM_sk_push(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_unshift(st, val) SKM_sk_unshift(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_find(st, val) SKM_sk_find(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_find_ex(st, val) SKM_sk_find_ex(EVP_PBE_CTL, (st), (val)) -# define sk_EVP_PBE_CTL_delete(st, i) SKM_sk_delete(EVP_PBE_CTL, (st), (i)) -# define sk_EVP_PBE_CTL_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PBE_CTL, (st), (ptr)) -# define sk_EVP_PBE_CTL_insert(st, val, i) SKM_sk_insert(EVP_PBE_CTL, (st), (val), (i)) -# define sk_EVP_PBE_CTL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PBE_CTL, (st), (cmp)) -# define sk_EVP_PBE_CTL_dup(st) SKM_sk_dup(EVP_PBE_CTL, st) -# define sk_EVP_PBE_CTL_pop_free(st, free_func) SKM_sk_pop_free(EVP_PBE_CTL, (st), (free_func)) -# define sk_EVP_PBE_CTL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PBE_CTL, (st), (copy_func), (free_func)) -# define sk_EVP_PBE_CTL_shift(st) SKM_sk_shift(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_pop(st) SKM_sk_pop(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_sort(st) SKM_sk_sort(EVP_PBE_CTL, (st)) -# define sk_EVP_PBE_CTL_is_sorted(st) SKM_sk_is_sorted(EVP_PBE_CTL, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_ASN1_METHOD, (cmp)) -# define sk_EVP_PKEY_ASN1_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_ASN1_METHOD) -# define sk_EVP_PKEY_ASN1_METHOD_free(st) SKM_sk_free(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_num(st) SKM_sk_num(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_ASN1_METHOD, (st), (i)) -# define sk_EVP_PKEY_ASN1_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_ASN1_METHOD, (st), (i), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_ASN1_METHOD, (st), (val)) -# define sk_EVP_PKEY_ASN1_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_ASN1_METHOD, (st), (i)) -# define sk_EVP_PKEY_ASN1_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_ASN1_METHOD, (st), (ptr)) -# define sk_EVP_PKEY_ASN1_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_ASN1_METHOD, (st), (val), (i)) -# define sk_EVP_PKEY_ASN1_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_ASN1_METHOD, (st), (cmp)) -# define sk_EVP_PKEY_ASN1_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_ASN1_METHOD, st) -# define sk_EVP_PKEY_ASN1_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_ASN1_METHOD, (st), (free_func)) -# define sk_EVP_PKEY_ASN1_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_ASN1_METHOD, (st), (copy_func), (free_func)) -# define sk_EVP_PKEY_ASN1_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_ASN1_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_ASN1_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_new(cmp) SKM_sk_new(EVP_PKEY_METHOD, (cmp)) -# define sk_EVP_PKEY_METHOD_new_null() SKM_sk_new_null(EVP_PKEY_METHOD) -# define sk_EVP_PKEY_METHOD_free(st) SKM_sk_free(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_num(st) SKM_sk_num(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_value(st, i) SKM_sk_value(EVP_PKEY_METHOD, (st), (i)) -# define sk_EVP_PKEY_METHOD_set(st, i, val) SKM_sk_set(EVP_PKEY_METHOD, (st), (i), (val)) -# define sk_EVP_PKEY_METHOD_zero(st) SKM_sk_zero(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_push(st, val) SKM_sk_push(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_unshift(st, val) SKM_sk_unshift(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_find(st, val) SKM_sk_find(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_find_ex(st, val) SKM_sk_find_ex(EVP_PKEY_METHOD, (st), (val)) -# define sk_EVP_PKEY_METHOD_delete(st, i) SKM_sk_delete(EVP_PKEY_METHOD, (st), (i)) -# define sk_EVP_PKEY_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(EVP_PKEY_METHOD, (st), (ptr)) -# define sk_EVP_PKEY_METHOD_insert(st, val, i) SKM_sk_insert(EVP_PKEY_METHOD, (st), (val), (i)) -# define sk_EVP_PKEY_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(EVP_PKEY_METHOD, (st), (cmp)) -# define sk_EVP_PKEY_METHOD_dup(st) SKM_sk_dup(EVP_PKEY_METHOD, st) -# define sk_EVP_PKEY_METHOD_pop_free(st, free_func) SKM_sk_pop_free(EVP_PKEY_METHOD, (st), (free_func)) -# define sk_EVP_PKEY_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(EVP_PKEY_METHOD, (st), (copy_func), (free_func)) -# define sk_EVP_PKEY_METHOD_shift(st) SKM_sk_shift(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_pop(st) SKM_sk_pop(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_sort(st) SKM_sk_sort(EVP_PKEY_METHOD, (st)) -# define sk_EVP_PKEY_METHOD_is_sorted(st) SKM_sk_is_sorted(EVP_PKEY_METHOD, (st)) -# define sk_GENERAL_NAME_new(cmp) SKM_sk_new(GENERAL_NAME, (cmp)) -# define sk_GENERAL_NAME_new_null() SKM_sk_new_null(GENERAL_NAME) -# define sk_GENERAL_NAME_free(st) SKM_sk_free(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_num(st) SKM_sk_num(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_value(st, i) SKM_sk_value(GENERAL_NAME, (st), (i)) -# define sk_GENERAL_NAME_set(st, i, val) SKM_sk_set(GENERAL_NAME, (st), (i), (val)) -# define sk_GENERAL_NAME_zero(st) SKM_sk_zero(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_push(st, val) SKM_sk_push(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_unshift(st, val) SKM_sk_unshift(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_find(st, val) SKM_sk_find(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAME, (st), (val)) -# define sk_GENERAL_NAME_delete(st, i) SKM_sk_delete(GENERAL_NAME, (st), (i)) -# define sk_GENERAL_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAME, (st), (ptr)) -# define sk_GENERAL_NAME_insert(st, val, i) SKM_sk_insert(GENERAL_NAME, (st), (val), (i)) -# define sk_GENERAL_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAME, (st), (cmp)) -# define sk_GENERAL_NAME_dup(st) SKM_sk_dup(GENERAL_NAME, st) -# define sk_GENERAL_NAME_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAME, (st), (free_func)) -# define sk_GENERAL_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAME, (st), (copy_func), (free_func)) -# define sk_GENERAL_NAME_shift(st) SKM_sk_shift(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_pop(st) SKM_sk_pop(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_sort(st) SKM_sk_sort(GENERAL_NAME, (st)) -# define sk_GENERAL_NAME_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAME, (st)) -# define sk_GENERAL_NAMES_new(cmp) SKM_sk_new(GENERAL_NAMES, (cmp)) -# define sk_GENERAL_NAMES_new_null() SKM_sk_new_null(GENERAL_NAMES) -# define sk_GENERAL_NAMES_free(st) SKM_sk_free(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_num(st) SKM_sk_num(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_value(st, i) SKM_sk_value(GENERAL_NAMES, (st), (i)) -# define sk_GENERAL_NAMES_set(st, i, val) SKM_sk_set(GENERAL_NAMES, (st), (i), (val)) -# define sk_GENERAL_NAMES_zero(st) SKM_sk_zero(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_push(st, val) SKM_sk_push(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_unshift(st, val) SKM_sk_unshift(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_find(st, val) SKM_sk_find(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_find_ex(st, val) SKM_sk_find_ex(GENERAL_NAMES, (st), (val)) -# define sk_GENERAL_NAMES_delete(st, i) SKM_sk_delete(GENERAL_NAMES, (st), (i)) -# define sk_GENERAL_NAMES_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_NAMES, (st), (ptr)) -# define sk_GENERAL_NAMES_insert(st, val, i) SKM_sk_insert(GENERAL_NAMES, (st), (val), (i)) -# define sk_GENERAL_NAMES_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_NAMES, (st), (cmp)) -# define sk_GENERAL_NAMES_dup(st) SKM_sk_dup(GENERAL_NAMES, st) -# define sk_GENERAL_NAMES_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_NAMES, (st), (free_func)) -# define sk_GENERAL_NAMES_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_NAMES, (st), (copy_func), (free_func)) -# define sk_GENERAL_NAMES_shift(st) SKM_sk_shift(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_pop(st) SKM_sk_pop(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_sort(st) SKM_sk_sort(GENERAL_NAMES, (st)) -# define sk_GENERAL_NAMES_is_sorted(st) SKM_sk_is_sorted(GENERAL_NAMES, (st)) -# define sk_GENERAL_SUBTREE_new(cmp) SKM_sk_new(GENERAL_SUBTREE, (cmp)) -# define sk_GENERAL_SUBTREE_new_null() SKM_sk_new_null(GENERAL_SUBTREE) -# define sk_GENERAL_SUBTREE_free(st) SKM_sk_free(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_num(st) SKM_sk_num(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_value(st, i) SKM_sk_value(GENERAL_SUBTREE, (st), (i)) -# define sk_GENERAL_SUBTREE_set(st, i, val) SKM_sk_set(GENERAL_SUBTREE, (st), (i), (val)) -# define sk_GENERAL_SUBTREE_zero(st) SKM_sk_zero(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_push(st, val) SKM_sk_push(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_unshift(st, val) SKM_sk_unshift(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_find(st, val) SKM_sk_find(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_find_ex(st, val) SKM_sk_find_ex(GENERAL_SUBTREE, (st), (val)) -# define sk_GENERAL_SUBTREE_delete(st, i) SKM_sk_delete(GENERAL_SUBTREE, (st), (i)) -# define sk_GENERAL_SUBTREE_delete_ptr(st, ptr) SKM_sk_delete_ptr(GENERAL_SUBTREE, (st), (ptr)) -# define sk_GENERAL_SUBTREE_insert(st, val, i) SKM_sk_insert(GENERAL_SUBTREE, (st), (val), (i)) -# define sk_GENERAL_SUBTREE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(GENERAL_SUBTREE, (st), (cmp)) -# define sk_GENERAL_SUBTREE_dup(st) SKM_sk_dup(GENERAL_SUBTREE, st) -# define sk_GENERAL_SUBTREE_pop_free(st, free_func) SKM_sk_pop_free(GENERAL_SUBTREE, (st), (free_func)) -# define sk_GENERAL_SUBTREE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(GENERAL_SUBTREE, (st), (copy_func), (free_func)) -# define sk_GENERAL_SUBTREE_shift(st) SKM_sk_shift(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_pop(st) SKM_sk_pop(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_sort(st) SKM_sk_sort(GENERAL_SUBTREE, (st)) -# define sk_GENERAL_SUBTREE_is_sorted(st) SKM_sk_is_sorted(GENERAL_SUBTREE, (st)) -# define sk_IPAddressFamily_new(cmp) SKM_sk_new(IPAddressFamily, (cmp)) -# define sk_IPAddressFamily_new_null() SKM_sk_new_null(IPAddressFamily) -# define sk_IPAddressFamily_free(st) SKM_sk_free(IPAddressFamily, (st)) -# define sk_IPAddressFamily_num(st) SKM_sk_num(IPAddressFamily, (st)) -# define sk_IPAddressFamily_value(st, i) SKM_sk_value(IPAddressFamily, (st), (i)) -# define sk_IPAddressFamily_set(st, i, val) SKM_sk_set(IPAddressFamily, (st), (i), (val)) -# define sk_IPAddressFamily_zero(st) SKM_sk_zero(IPAddressFamily, (st)) -# define sk_IPAddressFamily_push(st, val) SKM_sk_push(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_unshift(st, val) SKM_sk_unshift(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_find(st, val) SKM_sk_find(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_find_ex(st, val) SKM_sk_find_ex(IPAddressFamily, (st), (val)) -# define sk_IPAddressFamily_delete(st, i) SKM_sk_delete(IPAddressFamily, (st), (i)) -# define sk_IPAddressFamily_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressFamily, (st), (ptr)) -# define sk_IPAddressFamily_insert(st, val, i) SKM_sk_insert(IPAddressFamily, (st), (val), (i)) -# define sk_IPAddressFamily_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressFamily, (st), (cmp)) -# define sk_IPAddressFamily_dup(st) SKM_sk_dup(IPAddressFamily, st) -# define sk_IPAddressFamily_pop_free(st, free_func) SKM_sk_pop_free(IPAddressFamily, (st), (free_func)) -# define sk_IPAddressFamily_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressFamily, (st), (copy_func), (free_func)) -# define sk_IPAddressFamily_shift(st) SKM_sk_shift(IPAddressFamily, (st)) -# define sk_IPAddressFamily_pop(st) SKM_sk_pop(IPAddressFamily, (st)) -# define sk_IPAddressFamily_sort(st) SKM_sk_sort(IPAddressFamily, (st)) -# define sk_IPAddressFamily_is_sorted(st) SKM_sk_is_sorted(IPAddressFamily, (st)) -# define sk_IPAddressOrRange_new(cmp) SKM_sk_new(IPAddressOrRange, (cmp)) -# define sk_IPAddressOrRange_new_null() SKM_sk_new_null(IPAddressOrRange) -# define sk_IPAddressOrRange_free(st) SKM_sk_free(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_num(st) SKM_sk_num(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_value(st, i) SKM_sk_value(IPAddressOrRange, (st), (i)) -# define sk_IPAddressOrRange_set(st, i, val) SKM_sk_set(IPAddressOrRange, (st), (i), (val)) -# define sk_IPAddressOrRange_zero(st) SKM_sk_zero(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_push(st, val) SKM_sk_push(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_unshift(st, val) SKM_sk_unshift(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_find(st, val) SKM_sk_find(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_find_ex(st, val) SKM_sk_find_ex(IPAddressOrRange, (st), (val)) -# define sk_IPAddressOrRange_delete(st, i) SKM_sk_delete(IPAddressOrRange, (st), (i)) -# define sk_IPAddressOrRange_delete_ptr(st, ptr) SKM_sk_delete_ptr(IPAddressOrRange, (st), (ptr)) -# define sk_IPAddressOrRange_insert(st, val, i) SKM_sk_insert(IPAddressOrRange, (st), (val), (i)) -# define sk_IPAddressOrRange_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(IPAddressOrRange, (st), (cmp)) -# define sk_IPAddressOrRange_dup(st) SKM_sk_dup(IPAddressOrRange, st) -# define sk_IPAddressOrRange_pop_free(st, free_func) SKM_sk_pop_free(IPAddressOrRange, (st), (free_func)) -# define sk_IPAddressOrRange_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(IPAddressOrRange, (st), (copy_func), (free_func)) -# define sk_IPAddressOrRange_shift(st) SKM_sk_shift(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_pop(st) SKM_sk_pop(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_sort(st) SKM_sk_sort(IPAddressOrRange, (st)) -# define sk_IPAddressOrRange_is_sorted(st) SKM_sk_is_sorted(IPAddressOrRange, (st)) -# define sk_KRB5_APREQBODY_new(cmp) SKM_sk_new(KRB5_APREQBODY, (cmp)) -# define sk_KRB5_APREQBODY_new_null() SKM_sk_new_null(KRB5_APREQBODY) -# define sk_KRB5_APREQBODY_free(st) SKM_sk_free(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_num(st) SKM_sk_num(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_value(st, i) SKM_sk_value(KRB5_APREQBODY, (st), (i)) -# define sk_KRB5_APREQBODY_set(st, i, val) SKM_sk_set(KRB5_APREQBODY, (st), (i), (val)) -# define sk_KRB5_APREQBODY_zero(st) SKM_sk_zero(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_push(st, val) SKM_sk_push(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_unshift(st, val) SKM_sk_unshift(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_find(st, val) SKM_sk_find(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_APREQBODY, (st), (val)) -# define sk_KRB5_APREQBODY_delete(st, i) SKM_sk_delete(KRB5_APREQBODY, (st), (i)) -# define sk_KRB5_APREQBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_APREQBODY, (st), (ptr)) -# define sk_KRB5_APREQBODY_insert(st, val, i) SKM_sk_insert(KRB5_APREQBODY, (st), (val), (i)) -# define sk_KRB5_APREQBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_APREQBODY, (st), (cmp)) -# define sk_KRB5_APREQBODY_dup(st) SKM_sk_dup(KRB5_APREQBODY, st) -# define sk_KRB5_APREQBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_APREQBODY, (st), (free_func)) -# define sk_KRB5_APREQBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_APREQBODY, (st), (copy_func), (free_func)) -# define sk_KRB5_APREQBODY_shift(st) SKM_sk_shift(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_pop(st) SKM_sk_pop(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_sort(st) SKM_sk_sort(KRB5_APREQBODY, (st)) -# define sk_KRB5_APREQBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_APREQBODY, (st)) -# define sk_KRB5_AUTHDATA_new(cmp) SKM_sk_new(KRB5_AUTHDATA, (cmp)) -# define sk_KRB5_AUTHDATA_new_null() SKM_sk_new_null(KRB5_AUTHDATA) -# define sk_KRB5_AUTHDATA_free(st) SKM_sk_free(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_num(st) SKM_sk_num(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_value(st, i) SKM_sk_value(KRB5_AUTHDATA, (st), (i)) -# define sk_KRB5_AUTHDATA_set(st, i, val) SKM_sk_set(KRB5_AUTHDATA, (st), (i), (val)) -# define sk_KRB5_AUTHDATA_zero(st) SKM_sk_zero(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_push(st, val) SKM_sk_push(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_unshift(st, val) SKM_sk_unshift(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_find(st, val) SKM_sk_find(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHDATA, (st), (val)) -# define sk_KRB5_AUTHDATA_delete(st, i) SKM_sk_delete(KRB5_AUTHDATA, (st), (i)) -# define sk_KRB5_AUTHDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHDATA, (st), (ptr)) -# define sk_KRB5_AUTHDATA_insert(st, val, i) SKM_sk_insert(KRB5_AUTHDATA, (st), (val), (i)) -# define sk_KRB5_AUTHDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHDATA, (st), (cmp)) -# define sk_KRB5_AUTHDATA_dup(st) SKM_sk_dup(KRB5_AUTHDATA, st) -# define sk_KRB5_AUTHDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHDATA, (st), (free_func)) -# define sk_KRB5_AUTHDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHDATA, (st), (copy_func), (free_func)) -# define sk_KRB5_AUTHDATA_shift(st) SKM_sk_shift(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_pop(st) SKM_sk_pop(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_sort(st) SKM_sk_sort(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHDATA, (st)) -# define sk_KRB5_AUTHENTBODY_new(cmp) SKM_sk_new(KRB5_AUTHENTBODY, (cmp)) -# define sk_KRB5_AUTHENTBODY_new_null() SKM_sk_new_null(KRB5_AUTHENTBODY) -# define sk_KRB5_AUTHENTBODY_free(st) SKM_sk_free(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_num(st) SKM_sk_num(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_value(st, i) SKM_sk_value(KRB5_AUTHENTBODY, (st), (i)) -# define sk_KRB5_AUTHENTBODY_set(st, i, val) SKM_sk_set(KRB5_AUTHENTBODY, (st), (i), (val)) -# define sk_KRB5_AUTHENTBODY_zero(st) SKM_sk_zero(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_push(st, val) SKM_sk_push(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_unshift(st, val) SKM_sk_unshift(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_find(st, val) SKM_sk_find(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_AUTHENTBODY, (st), (val)) -# define sk_KRB5_AUTHENTBODY_delete(st, i) SKM_sk_delete(KRB5_AUTHENTBODY, (st), (i)) -# define sk_KRB5_AUTHENTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_AUTHENTBODY, (st), (ptr)) -# define sk_KRB5_AUTHENTBODY_insert(st, val, i) SKM_sk_insert(KRB5_AUTHENTBODY, (st), (val), (i)) -# define sk_KRB5_AUTHENTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_AUTHENTBODY, (st), (cmp)) -# define sk_KRB5_AUTHENTBODY_dup(st) SKM_sk_dup(KRB5_AUTHENTBODY, st) -# define sk_KRB5_AUTHENTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_AUTHENTBODY, (st), (free_func)) -# define sk_KRB5_AUTHENTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_AUTHENTBODY, (st), (copy_func), (free_func)) -# define sk_KRB5_AUTHENTBODY_shift(st) SKM_sk_shift(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_pop(st) SKM_sk_pop(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_sort(st) SKM_sk_sort(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_AUTHENTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_AUTHENTBODY, (st)) -# define sk_KRB5_CHECKSUM_new(cmp) SKM_sk_new(KRB5_CHECKSUM, (cmp)) -# define sk_KRB5_CHECKSUM_new_null() SKM_sk_new_null(KRB5_CHECKSUM) -# define sk_KRB5_CHECKSUM_free(st) SKM_sk_free(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_num(st) SKM_sk_num(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_value(st, i) SKM_sk_value(KRB5_CHECKSUM, (st), (i)) -# define sk_KRB5_CHECKSUM_set(st, i, val) SKM_sk_set(KRB5_CHECKSUM, (st), (i), (val)) -# define sk_KRB5_CHECKSUM_zero(st) SKM_sk_zero(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_push(st, val) SKM_sk_push(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_unshift(st, val) SKM_sk_unshift(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_find(st, val) SKM_sk_find(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_find_ex(st, val) SKM_sk_find_ex(KRB5_CHECKSUM, (st), (val)) -# define sk_KRB5_CHECKSUM_delete(st, i) SKM_sk_delete(KRB5_CHECKSUM, (st), (i)) -# define sk_KRB5_CHECKSUM_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_CHECKSUM, (st), (ptr)) -# define sk_KRB5_CHECKSUM_insert(st, val, i) SKM_sk_insert(KRB5_CHECKSUM, (st), (val), (i)) -# define sk_KRB5_CHECKSUM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_CHECKSUM, (st), (cmp)) -# define sk_KRB5_CHECKSUM_dup(st) SKM_sk_dup(KRB5_CHECKSUM, st) -# define sk_KRB5_CHECKSUM_pop_free(st, free_func) SKM_sk_pop_free(KRB5_CHECKSUM, (st), (free_func)) -# define sk_KRB5_CHECKSUM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_CHECKSUM, (st), (copy_func), (free_func)) -# define sk_KRB5_CHECKSUM_shift(st) SKM_sk_shift(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_pop(st) SKM_sk_pop(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_sort(st) SKM_sk_sort(KRB5_CHECKSUM, (st)) -# define sk_KRB5_CHECKSUM_is_sorted(st) SKM_sk_is_sorted(KRB5_CHECKSUM, (st)) -# define sk_KRB5_ENCDATA_new(cmp) SKM_sk_new(KRB5_ENCDATA, (cmp)) -# define sk_KRB5_ENCDATA_new_null() SKM_sk_new_null(KRB5_ENCDATA) -# define sk_KRB5_ENCDATA_free(st) SKM_sk_free(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_num(st) SKM_sk_num(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_value(st, i) SKM_sk_value(KRB5_ENCDATA, (st), (i)) -# define sk_KRB5_ENCDATA_set(st, i, val) SKM_sk_set(KRB5_ENCDATA, (st), (i), (val)) -# define sk_KRB5_ENCDATA_zero(st) SKM_sk_zero(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_push(st, val) SKM_sk_push(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_unshift(st, val) SKM_sk_unshift(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_find(st, val) SKM_sk_find(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCDATA, (st), (val)) -# define sk_KRB5_ENCDATA_delete(st, i) SKM_sk_delete(KRB5_ENCDATA, (st), (i)) -# define sk_KRB5_ENCDATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCDATA, (st), (ptr)) -# define sk_KRB5_ENCDATA_insert(st, val, i) SKM_sk_insert(KRB5_ENCDATA, (st), (val), (i)) -# define sk_KRB5_ENCDATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCDATA, (st), (cmp)) -# define sk_KRB5_ENCDATA_dup(st) SKM_sk_dup(KRB5_ENCDATA, st) -# define sk_KRB5_ENCDATA_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCDATA, (st), (free_func)) -# define sk_KRB5_ENCDATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCDATA, (st), (copy_func), (free_func)) -# define sk_KRB5_ENCDATA_shift(st) SKM_sk_shift(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_pop(st) SKM_sk_pop(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_sort(st) SKM_sk_sort(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCDATA_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCDATA, (st)) -# define sk_KRB5_ENCKEY_new(cmp) SKM_sk_new(KRB5_ENCKEY, (cmp)) -# define sk_KRB5_ENCKEY_new_null() SKM_sk_new_null(KRB5_ENCKEY) -# define sk_KRB5_ENCKEY_free(st) SKM_sk_free(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_num(st) SKM_sk_num(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_value(st, i) SKM_sk_value(KRB5_ENCKEY, (st), (i)) -# define sk_KRB5_ENCKEY_set(st, i, val) SKM_sk_set(KRB5_ENCKEY, (st), (i), (val)) -# define sk_KRB5_ENCKEY_zero(st) SKM_sk_zero(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_push(st, val) SKM_sk_push(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_unshift(st, val) SKM_sk_unshift(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_find(st, val) SKM_sk_find(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_find_ex(st, val) SKM_sk_find_ex(KRB5_ENCKEY, (st), (val)) -# define sk_KRB5_ENCKEY_delete(st, i) SKM_sk_delete(KRB5_ENCKEY, (st), (i)) -# define sk_KRB5_ENCKEY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_ENCKEY, (st), (ptr)) -# define sk_KRB5_ENCKEY_insert(st, val, i) SKM_sk_insert(KRB5_ENCKEY, (st), (val), (i)) -# define sk_KRB5_ENCKEY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_ENCKEY, (st), (cmp)) -# define sk_KRB5_ENCKEY_dup(st) SKM_sk_dup(KRB5_ENCKEY, st) -# define sk_KRB5_ENCKEY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_ENCKEY, (st), (free_func)) -# define sk_KRB5_ENCKEY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_ENCKEY, (st), (copy_func), (free_func)) -# define sk_KRB5_ENCKEY_shift(st) SKM_sk_shift(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_pop(st) SKM_sk_pop(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_sort(st) SKM_sk_sort(KRB5_ENCKEY, (st)) -# define sk_KRB5_ENCKEY_is_sorted(st) SKM_sk_is_sorted(KRB5_ENCKEY, (st)) -# define sk_KRB5_PRINCNAME_new(cmp) SKM_sk_new(KRB5_PRINCNAME, (cmp)) -# define sk_KRB5_PRINCNAME_new_null() SKM_sk_new_null(KRB5_PRINCNAME) -# define sk_KRB5_PRINCNAME_free(st) SKM_sk_free(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_num(st) SKM_sk_num(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_value(st, i) SKM_sk_value(KRB5_PRINCNAME, (st), (i)) -# define sk_KRB5_PRINCNAME_set(st, i, val) SKM_sk_set(KRB5_PRINCNAME, (st), (i), (val)) -# define sk_KRB5_PRINCNAME_zero(st) SKM_sk_zero(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_push(st, val) SKM_sk_push(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_unshift(st, val) SKM_sk_unshift(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_find(st, val) SKM_sk_find(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_find_ex(st, val) SKM_sk_find_ex(KRB5_PRINCNAME, (st), (val)) -# define sk_KRB5_PRINCNAME_delete(st, i) SKM_sk_delete(KRB5_PRINCNAME, (st), (i)) -# define sk_KRB5_PRINCNAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_PRINCNAME, (st), (ptr)) -# define sk_KRB5_PRINCNAME_insert(st, val, i) SKM_sk_insert(KRB5_PRINCNAME, (st), (val), (i)) -# define sk_KRB5_PRINCNAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_PRINCNAME, (st), (cmp)) -# define sk_KRB5_PRINCNAME_dup(st) SKM_sk_dup(KRB5_PRINCNAME, st) -# define sk_KRB5_PRINCNAME_pop_free(st, free_func) SKM_sk_pop_free(KRB5_PRINCNAME, (st), (free_func)) -# define sk_KRB5_PRINCNAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_PRINCNAME, (st), (copy_func), (free_func)) -# define sk_KRB5_PRINCNAME_shift(st) SKM_sk_shift(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_pop(st) SKM_sk_pop(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_sort(st) SKM_sk_sort(KRB5_PRINCNAME, (st)) -# define sk_KRB5_PRINCNAME_is_sorted(st) SKM_sk_is_sorted(KRB5_PRINCNAME, (st)) -# define sk_KRB5_TKTBODY_new(cmp) SKM_sk_new(KRB5_TKTBODY, (cmp)) -# define sk_KRB5_TKTBODY_new_null() SKM_sk_new_null(KRB5_TKTBODY) -# define sk_KRB5_TKTBODY_free(st) SKM_sk_free(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_num(st) SKM_sk_num(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_value(st, i) SKM_sk_value(KRB5_TKTBODY, (st), (i)) -# define sk_KRB5_TKTBODY_set(st, i, val) SKM_sk_set(KRB5_TKTBODY, (st), (i), (val)) -# define sk_KRB5_TKTBODY_zero(st) SKM_sk_zero(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_push(st, val) SKM_sk_push(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_unshift(st, val) SKM_sk_unshift(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_find(st, val) SKM_sk_find(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_find_ex(st, val) SKM_sk_find_ex(KRB5_TKTBODY, (st), (val)) -# define sk_KRB5_TKTBODY_delete(st, i) SKM_sk_delete(KRB5_TKTBODY, (st), (i)) -# define sk_KRB5_TKTBODY_delete_ptr(st, ptr) SKM_sk_delete_ptr(KRB5_TKTBODY, (st), (ptr)) -# define sk_KRB5_TKTBODY_insert(st, val, i) SKM_sk_insert(KRB5_TKTBODY, (st), (val), (i)) -# define sk_KRB5_TKTBODY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(KRB5_TKTBODY, (st), (cmp)) -# define sk_KRB5_TKTBODY_dup(st) SKM_sk_dup(KRB5_TKTBODY, st) -# define sk_KRB5_TKTBODY_pop_free(st, free_func) SKM_sk_pop_free(KRB5_TKTBODY, (st), (free_func)) -# define sk_KRB5_TKTBODY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(KRB5_TKTBODY, (st), (copy_func), (free_func)) -# define sk_KRB5_TKTBODY_shift(st) SKM_sk_shift(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_pop(st) SKM_sk_pop(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_sort(st) SKM_sk_sort(KRB5_TKTBODY, (st)) -# define sk_KRB5_TKTBODY_is_sorted(st) SKM_sk_is_sorted(KRB5_TKTBODY, (st)) -# define sk_MEM_OBJECT_DATA_new(cmp) SKM_sk_new(MEM_OBJECT_DATA, (cmp)) -# define sk_MEM_OBJECT_DATA_new_null() SKM_sk_new_null(MEM_OBJECT_DATA) -# define sk_MEM_OBJECT_DATA_free(st) SKM_sk_free(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_num(st) SKM_sk_num(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_value(st, i) SKM_sk_value(MEM_OBJECT_DATA, (st), (i)) -# define sk_MEM_OBJECT_DATA_set(st, i, val) SKM_sk_set(MEM_OBJECT_DATA, (st), (i), (val)) -# define sk_MEM_OBJECT_DATA_zero(st) SKM_sk_zero(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_push(st, val) SKM_sk_push(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_unshift(st, val) SKM_sk_unshift(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_find(st, val) SKM_sk_find(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_find_ex(st, val) SKM_sk_find_ex(MEM_OBJECT_DATA, (st), (val)) -# define sk_MEM_OBJECT_DATA_delete(st, i) SKM_sk_delete(MEM_OBJECT_DATA, (st), (i)) -# define sk_MEM_OBJECT_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(MEM_OBJECT_DATA, (st), (ptr)) -# define sk_MEM_OBJECT_DATA_insert(st, val, i) SKM_sk_insert(MEM_OBJECT_DATA, (st), (val), (i)) -# define sk_MEM_OBJECT_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MEM_OBJECT_DATA, (st), (cmp)) -# define sk_MEM_OBJECT_DATA_dup(st) SKM_sk_dup(MEM_OBJECT_DATA, st) -# define sk_MEM_OBJECT_DATA_pop_free(st, free_func) SKM_sk_pop_free(MEM_OBJECT_DATA, (st), (free_func)) -# define sk_MEM_OBJECT_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MEM_OBJECT_DATA, (st), (copy_func), (free_func)) -# define sk_MEM_OBJECT_DATA_shift(st) SKM_sk_shift(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_pop(st) SKM_sk_pop(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_sort(st) SKM_sk_sort(MEM_OBJECT_DATA, (st)) -# define sk_MEM_OBJECT_DATA_is_sorted(st) SKM_sk_is_sorted(MEM_OBJECT_DATA, (st)) -# define sk_MIME_HEADER_new(cmp) SKM_sk_new(MIME_HEADER, (cmp)) -# define sk_MIME_HEADER_new_null() SKM_sk_new_null(MIME_HEADER) -# define sk_MIME_HEADER_free(st) SKM_sk_free(MIME_HEADER, (st)) -# define sk_MIME_HEADER_num(st) SKM_sk_num(MIME_HEADER, (st)) -# define sk_MIME_HEADER_value(st, i) SKM_sk_value(MIME_HEADER, (st), (i)) -# define sk_MIME_HEADER_set(st, i, val) SKM_sk_set(MIME_HEADER, (st), (i), (val)) -# define sk_MIME_HEADER_zero(st) SKM_sk_zero(MIME_HEADER, (st)) -# define sk_MIME_HEADER_push(st, val) SKM_sk_push(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_unshift(st, val) SKM_sk_unshift(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_find(st, val) SKM_sk_find(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_find_ex(st, val) SKM_sk_find_ex(MIME_HEADER, (st), (val)) -# define sk_MIME_HEADER_delete(st, i) SKM_sk_delete(MIME_HEADER, (st), (i)) -# define sk_MIME_HEADER_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_HEADER, (st), (ptr)) -# define sk_MIME_HEADER_insert(st, val, i) SKM_sk_insert(MIME_HEADER, (st), (val), (i)) -# define sk_MIME_HEADER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_HEADER, (st), (cmp)) -# define sk_MIME_HEADER_dup(st) SKM_sk_dup(MIME_HEADER, st) -# define sk_MIME_HEADER_pop_free(st, free_func) SKM_sk_pop_free(MIME_HEADER, (st), (free_func)) -# define sk_MIME_HEADER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_HEADER, (st), (copy_func), (free_func)) -# define sk_MIME_HEADER_shift(st) SKM_sk_shift(MIME_HEADER, (st)) -# define sk_MIME_HEADER_pop(st) SKM_sk_pop(MIME_HEADER, (st)) -# define sk_MIME_HEADER_sort(st) SKM_sk_sort(MIME_HEADER, (st)) -# define sk_MIME_HEADER_is_sorted(st) SKM_sk_is_sorted(MIME_HEADER, (st)) -# define sk_MIME_PARAM_new(cmp) SKM_sk_new(MIME_PARAM, (cmp)) -# define sk_MIME_PARAM_new_null() SKM_sk_new_null(MIME_PARAM) -# define sk_MIME_PARAM_free(st) SKM_sk_free(MIME_PARAM, (st)) -# define sk_MIME_PARAM_num(st) SKM_sk_num(MIME_PARAM, (st)) -# define sk_MIME_PARAM_value(st, i) SKM_sk_value(MIME_PARAM, (st), (i)) -# define sk_MIME_PARAM_set(st, i, val) SKM_sk_set(MIME_PARAM, (st), (i), (val)) -# define sk_MIME_PARAM_zero(st) SKM_sk_zero(MIME_PARAM, (st)) -# define sk_MIME_PARAM_push(st, val) SKM_sk_push(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_unshift(st, val) SKM_sk_unshift(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_find(st, val) SKM_sk_find(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_find_ex(st, val) SKM_sk_find_ex(MIME_PARAM, (st), (val)) -# define sk_MIME_PARAM_delete(st, i) SKM_sk_delete(MIME_PARAM, (st), (i)) -# define sk_MIME_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(MIME_PARAM, (st), (ptr)) -# define sk_MIME_PARAM_insert(st, val, i) SKM_sk_insert(MIME_PARAM, (st), (val), (i)) -# define sk_MIME_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(MIME_PARAM, (st), (cmp)) -# define sk_MIME_PARAM_dup(st) SKM_sk_dup(MIME_PARAM, st) -# define sk_MIME_PARAM_pop_free(st, free_func) SKM_sk_pop_free(MIME_PARAM, (st), (free_func)) -# define sk_MIME_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(MIME_PARAM, (st), (copy_func), (free_func)) -# define sk_MIME_PARAM_shift(st) SKM_sk_shift(MIME_PARAM, (st)) -# define sk_MIME_PARAM_pop(st) SKM_sk_pop(MIME_PARAM, (st)) -# define sk_MIME_PARAM_sort(st) SKM_sk_sort(MIME_PARAM, (st)) -# define sk_MIME_PARAM_is_sorted(st) SKM_sk_is_sorted(MIME_PARAM, (st)) -# define sk_NAME_FUNCS_new(cmp) SKM_sk_new(NAME_FUNCS, (cmp)) -# define sk_NAME_FUNCS_new_null() SKM_sk_new_null(NAME_FUNCS) -# define sk_NAME_FUNCS_free(st) SKM_sk_free(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_num(st) SKM_sk_num(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_value(st, i) SKM_sk_value(NAME_FUNCS, (st), (i)) -# define sk_NAME_FUNCS_set(st, i, val) SKM_sk_set(NAME_FUNCS, (st), (i), (val)) -# define sk_NAME_FUNCS_zero(st) SKM_sk_zero(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_push(st, val) SKM_sk_push(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_unshift(st, val) SKM_sk_unshift(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_find(st, val) SKM_sk_find(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_find_ex(st, val) SKM_sk_find_ex(NAME_FUNCS, (st), (val)) -# define sk_NAME_FUNCS_delete(st, i) SKM_sk_delete(NAME_FUNCS, (st), (i)) -# define sk_NAME_FUNCS_delete_ptr(st, ptr) SKM_sk_delete_ptr(NAME_FUNCS, (st), (ptr)) -# define sk_NAME_FUNCS_insert(st, val, i) SKM_sk_insert(NAME_FUNCS, (st), (val), (i)) -# define sk_NAME_FUNCS_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(NAME_FUNCS, (st), (cmp)) -# define sk_NAME_FUNCS_dup(st) SKM_sk_dup(NAME_FUNCS, st) -# define sk_NAME_FUNCS_pop_free(st, free_func) SKM_sk_pop_free(NAME_FUNCS, (st), (free_func)) -# define sk_NAME_FUNCS_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(NAME_FUNCS, (st), (copy_func), (free_func)) -# define sk_NAME_FUNCS_shift(st) SKM_sk_shift(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_pop(st) SKM_sk_pop(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_sort(st) SKM_sk_sort(NAME_FUNCS, (st)) -# define sk_NAME_FUNCS_is_sorted(st) SKM_sk_is_sorted(NAME_FUNCS, (st)) -# define sk_OCSP_CERTID_new(cmp) SKM_sk_new(OCSP_CERTID, (cmp)) -# define sk_OCSP_CERTID_new_null() SKM_sk_new_null(OCSP_CERTID) -# define sk_OCSP_CERTID_free(st) SKM_sk_free(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_num(st) SKM_sk_num(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_value(st, i) SKM_sk_value(OCSP_CERTID, (st), (i)) -# define sk_OCSP_CERTID_set(st, i, val) SKM_sk_set(OCSP_CERTID, (st), (i), (val)) -# define sk_OCSP_CERTID_zero(st) SKM_sk_zero(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_push(st, val) SKM_sk_push(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_unshift(st, val) SKM_sk_unshift(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_find(st, val) SKM_sk_find(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_find_ex(st, val) SKM_sk_find_ex(OCSP_CERTID, (st), (val)) -# define sk_OCSP_CERTID_delete(st, i) SKM_sk_delete(OCSP_CERTID, (st), (i)) -# define sk_OCSP_CERTID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_CERTID, (st), (ptr)) -# define sk_OCSP_CERTID_insert(st, val, i) SKM_sk_insert(OCSP_CERTID, (st), (val), (i)) -# define sk_OCSP_CERTID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_CERTID, (st), (cmp)) -# define sk_OCSP_CERTID_dup(st) SKM_sk_dup(OCSP_CERTID, st) -# define sk_OCSP_CERTID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_CERTID, (st), (free_func)) -# define sk_OCSP_CERTID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_CERTID, (st), (copy_func), (free_func)) -# define sk_OCSP_CERTID_shift(st) SKM_sk_shift(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_pop(st) SKM_sk_pop(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_sort(st) SKM_sk_sort(OCSP_CERTID, (st)) -# define sk_OCSP_CERTID_is_sorted(st) SKM_sk_is_sorted(OCSP_CERTID, (st)) -# define sk_OCSP_ONEREQ_new(cmp) SKM_sk_new(OCSP_ONEREQ, (cmp)) -# define sk_OCSP_ONEREQ_new_null() SKM_sk_new_null(OCSP_ONEREQ) -# define sk_OCSP_ONEREQ_free(st) SKM_sk_free(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_num(st) SKM_sk_num(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_value(st, i) SKM_sk_value(OCSP_ONEREQ, (st), (i)) -# define sk_OCSP_ONEREQ_set(st, i, val) SKM_sk_set(OCSP_ONEREQ, (st), (i), (val)) -# define sk_OCSP_ONEREQ_zero(st) SKM_sk_zero(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_push(st, val) SKM_sk_push(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_unshift(st, val) SKM_sk_unshift(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_find(st, val) SKM_sk_find(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_find_ex(st, val) SKM_sk_find_ex(OCSP_ONEREQ, (st), (val)) -# define sk_OCSP_ONEREQ_delete(st, i) SKM_sk_delete(OCSP_ONEREQ, (st), (i)) -# define sk_OCSP_ONEREQ_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_ONEREQ, (st), (ptr)) -# define sk_OCSP_ONEREQ_insert(st, val, i) SKM_sk_insert(OCSP_ONEREQ, (st), (val), (i)) -# define sk_OCSP_ONEREQ_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_ONEREQ, (st), (cmp)) -# define sk_OCSP_ONEREQ_dup(st) SKM_sk_dup(OCSP_ONEREQ, st) -# define sk_OCSP_ONEREQ_pop_free(st, free_func) SKM_sk_pop_free(OCSP_ONEREQ, (st), (free_func)) -# define sk_OCSP_ONEREQ_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_ONEREQ, (st), (copy_func), (free_func)) -# define sk_OCSP_ONEREQ_shift(st) SKM_sk_shift(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_pop(st) SKM_sk_pop(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_sort(st) SKM_sk_sort(OCSP_ONEREQ, (st)) -# define sk_OCSP_ONEREQ_is_sorted(st) SKM_sk_is_sorted(OCSP_ONEREQ, (st)) -# define sk_OCSP_RESPID_new(cmp) SKM_sk_new(OCSP_RESPID, (cmp)) -# define sk_OCSP_RESPID_new_null() SKM_sk_new_null(OCSP_RESPID) -# define sk_OCSP_RESPID_free(st) SKM_sk_free(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_num(st) SKM_sk_num(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_value(st, i) SKM_sk_value(OCSP_RESPID, (st), (i)) -# define sk_OCSP_RESPID_set(st, i, val) SKM_sk_set(OCSP_RESPID, (st), (i), (val)) -# define sk_OCSP_RESPID_zero(st) SKM_sk_zero(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_push(st, val) SKM_sk_push(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_unshift(st, val) SKM_sk_unshift(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_find(st, val) SKM_sk_find(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_find_ex(st, val) SKM_sk_find_ex(OCSP_RESPID, (st), (val)) -# define sk_OCSP_RESPID_delete(st, i) SKM_sk_delete(OCSP_RESPID, (st), (i)) -# define sk_OCSP_RESPID_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_RESPID, (st), (ptr)) -# define sk_OCSP_RESPID_insert(st, val, i) SKM_sk_insert(OCSP_RESPID, (st), (val), (i)) -# define sk_OCSP_RESPID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_RESPID, (st), (cmp)) -# define sk_OCSP_RESPID_dup(st) SKM_sk_dup(OCSP_RESPID, st) -# define sk_OCSP_RESPID_pop_free(st, free_func) SKM_sk_pop_free(OCSP_RESPID, (st), (free_func)) -# define sk_OCSP_RESPID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_RESPID, (st), (copy_func), (free_func)) -# define sk_OCSP_RESPID_shift(st) SKM_sk_shift(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_pop(st) SKM_sk_pop(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_sort(st) SKM_sk_sort(OCSP_RESPID, (st)) -# define sk_OCSP_RESPID_is_sorted(st) SKM_sk_is_sorted(OCSP_RESPID, (st)) -# define sk_OCSP_SINGLERESP_new(cmp) SKM_sk_new(OCSP_SINGLERESP, (cmp)) -# define sk_OCSP_SINGLERESP_new_null() SKM_sk_new_null(OCSP_SINGLERESP) -# define sk_OCSP_SINGLERESP_free(st) SKM_sk_free(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_num(st) SKM_sk_num(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_value(st, i) SKM_sk_value(OCSP_SINGLERESP, (st), (i)) -# define sk_OCSP_SINGLERESP_set(st, i, val) SKM_sk_set(OCSP_SINGLERESP, (st), (i), (val)) -# define sk_OCSP_SINGLERESP_zero(st) SKM_sk_zero(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_push(st, val) SKM_sk_push(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_unshift(st, val) SKM_sk_unshift(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_find(st, val) SKM_sk_find(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_find_ex(st, val) SKM_sk_find_ex(OCSP_SINGLERESP, (st), (val)) -# define sk_OCSP_SINGLERESP_delete(st, i) SKM_sk_delete(OCSP_SINGLERESP, (st), (i)) -# define sk_OCSP_SINGLERESP_delete_ptr(st, ptr) SKM_sk_delete_ptr(OCSP_SINGLERESP, (st), (ptr)) -# define sk_OCSP_SINGLERESP_insert(st, val, i) SKM_sk_insert(OCSP_SINGLERESP, (st), (val), (i)) -# define sk_OCSP_SINGLERESP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(OCSP_SINGLERESP, (st), (cmp)) -# define sk_OCSP_SINGLERESP_dup(st) SKM_sk_dup(OCSP_SINGLERESP, st) -# define sk_OCSP_SINGLERESP_pop_free(st, free_func) SKM_sk_pop_free(OCSP_SINGLERESP, (st), (free_func)) -# define sk_OCSP_SINGLERESP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(OCSP_SINGLERESP, (st), (copy_func), (free_func)) -# define sk_OCSP_SINGLERESP_shift(st) SKM_sk_shift(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_pop(st) SKM_sk_pop(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_sort(st) SKM_sk_sort(OCSP_SINGLERESP, (st)) -# define sk_OCSP_SINGLERESP_is_sorted(st) SKM_sk_is_sorted(OCSP_SINGLERESP, (st)) -# define sk_PKCS12_SAFEBAG_new(cmp) SKM_sk_new(PKCS12_SAFEBAG, (cmp)) -# define sk_PKCS12_SAFEBAG_new_null() SKM_sk_new_null(PKCS12_SAFEBAG) -# define sk_PKCS12_SAFEBAG_free(st) SKM_sk_free(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_num(st) SKM_sk_num(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_value(st, i) SKM_sk_value(PKCS12_SAFEBAG, (st), (i)) -# define sk_PKCS12_SAFEBAG_set(st, i, val) SKM_sk_set(PKCS12_SAFEBAG, (st), (i), (val)) -# define sk_PKCS12_SAFEBAG_zero(st) SKM_sk_zero(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_push(st, val) SKM_sk_push(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_unshift(st, val) SKM_sk_unshift(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_find(st, val) SKM_sk_find(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_find_ex(st, val) SKM_sk_find_ex(PKCS12_SAFEBAG, (st), (val)) -# define sk_PKCS12_SAFEBAG_delete(st, i) SKM_sk_delete(PKCS12_SAFEBAG, (st), (i)) -# define sk_PKCS12_SAFEBAG_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS12_SAFEBAG, (st), (ptr)) -# define sk_PKCS12_SAFEBAG_insert(st, val, i) SKM_sk_insert(PKCS12_SAFEBAG, (st), (val), (i)) -# define sk_PKCS12_SAFEBAG_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS12_SAFEBAG, (st), (cmp)) -# define sk_PKCS12_SAFEBAG_dup(st) SKM_sk_dup(PKCS12_SAFEBAG, st) -# define sk_PKCS12_SAFEBAG_pop_free(st, free_func) SKM_sk_pop_free(PKCS12_SAFEBAG, (st), (free_func)) -# define sk_PKCS12_SAFEBAG_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS12_SAFEBAG, (st), (copy_func), (free_func)) -# define sk_PKCS12_SAFEBAG_shift(st) SKM_sk_shift(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_pop(st) SKM_sk_pop(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_sort(st) SKM_sk_sort(PKCS12_SAFEBAG, (st)) -# define sk_PKCS12_SAFEBAG_is_sorted(st) SKM_sk_is_sorted(PKCS12_SAFEBAG, (st)) -# define sk_PKCS7_new(cmp) SKM_sk_new(PKCS7, (cmp)) -# define sk_PKCS7_new_null() SKM_sk_new_null(PKCS7) -# define sk_PKCS7_free(st) SKM_sk_free(PKCS7, (st)) -# define sk_PKCS7_num(st) SKM_sk_num(PKCS7, (st)) -# define sk_PKCS7_value(st, i) SKM_sk_value(PKCS7, (st), (i)) -# define sk_PKCS7_set(st, i, val) SKM_sk_set(PKCS7, (st), (i), (val)) -# define sk_PKCS7_zero(st) SKM_sk_zero(PKCS7, (st)) -# define sk_PKCS7_push(st, val) SKM_sk_push(PKCS7, (st), (val)) -# define sk_PKCS7_unshift(st, val) SKM_sk_unshift(PKCS7, (st), (val)) -# define sk_PKCS7_find(st, val) SKM_sk_find(PKCS7, (st), (val)) -# define sk_PKCS7_find_ex(st, val) SKM_sk_find_ex(PKCS7, (st), (val)) -# define sk_PKCS7_delete(st, i) SKM_sk_delete(PKCS7, (st), (i)) -# define sk_PKCS7_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7, (st), (ptr)) -# define sk_PKCS7_insert(st, val, i) SKM_sk_insert(PKCS7, (st), (val), (i)) -# define sk_PKCS7_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7, (st), (cmp)) -# define sk_PKCS7_dup(st) SKM_sk_dup(PKCS7, st) -# define sk_PKCS7_pop_free(st, free_func) SKM_sk_pop_free(PKCS7, (st), (free_func)) -# define sk_PKCS7_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7, (st), (copy_func), (free_func)) -# define sk_PKCS7_shift(st) SKM_sk_shift(PKCS7, (st)) -# define sk_PKCS7_pop(st) SKM_sk_pop(PKCS7, (st)) -# define sk_PKCS7_sort(st) SKM_sk_sort(PKCS7, (st)) -# define sk_PKCS7_is_sorted(st) SKM_sk_is_sorted(PKCS7, (st)) -# define sk_PKCS7_RECIP_INFO_new(cmp) SKM_sk_new(PKCS7_RECIP_INFO, (cmp)) -# define sk_PKCS7_RECIP_INFO_new_null() SKM_sk_new_null(PKCS7_RECIP_INFO) -# define sk_PKCS7_RECIP_INFO_free(st) SKM_sk_free(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_num(st) SKM_sk_num(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_value(st, i) SKM_sk_value(PKCS7_RECIP_INFO, (st), (i)) -# define sk_PKCS7_RECIP_INFO_set(st, i, val) SKM_sk_set(PKCS7_RECIP_INFO, (st), (i), (val)) -# define sk_PKCS7_RECIP_INFO_zero(st) SKM_sk_zero(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_push(st, val) SKM_sk_push(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_find(st, val) SKM_sk_find(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_RECIP_INFO, (st), (val)) -# define sk_PKCS7_RECIP_INFO_delete(st, i) SKM_sk_delete(PKCS7_RECIP_INFO, (st), (i)) -# define sk_PKCS7_RECIP_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_RECIP_INFO, (st), (ptr)) -# define sk_PKCS7_RECIP_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_RECIP_INFO, (st), (val), (i)) -# define sk_PKCS7_RECIP_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_RECIP_INFO, (st), (cmp)) -# define sk_PKCS7_RECIP_INFO_dup(st) SKM_sk_dup(PKCS7_RECIP_INFO, st) -# define sk_PKCS7_RECIP_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_RECIP_INFO, (st), (free_func)) -# define sk_PKCS7_RECIP_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_RECIP_INFO, (st), (copy_func), (free_func)) -# define sk_PKCS7_RECIP_INFO_shift(st) SKM_sk_shift(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_pop(st) SKM_sk_pop(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_sort(st) SKM_sk_sort(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_RECIP_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_RECIP_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_new(cmp) SKM_sk_new(PKCS7_SIGNER_INFO, (cmp)) -# define sk_PKCS7_SIGNER_INFO_new_null() SKM_sk_new_null(PKCS7_SIGNER_INFO) -# define sk_PKCS7_SIGNER_INFO_free(st) SKM_sk_free(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_num(st) SKM_sk_num(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_value(st, i) SKM_sk_value(PKCS7_SIGNER_INFO, (st), (i)) -# define sk_PKCS7_SIGNER_INFO_set(st, i, val) SKM_sk_set(PKCS7_SIGNER_INFO, (st), (i), (val)) -# define sk_PKCS7_SIGNER_INFO_zero(st) SKM_sk_zero(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_push(st, val) SKM_sk_push(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_unshift(st, val) SKM_sk_unshift(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_find(st, val) SKM_sk_find(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_find_ex(st, val) SKM_sk_find_ex(PKCS7_SIGNER_INFO, (st), (val)) -# define sk_PKCS7_SIGNER_INFO_delete(st, i) SKM_sk_delete(PKCS7_SIGNER_INFO, (st), (i)) -# define sk_PKCS7_SIGNER_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(PKCS7_SIGNER_INFO, (st), (ptr)) -# define sk_PKCS7_SIGNER_INFO_insert(st, val, i) SKM_sk_insert(PKCS7_SIGNER_INFO, (st), (val), (i)) -# define sk_PKCS7_SIGNER_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(PKCS7_SIGNER_INFO, (st), (cmp)) -# define sk_PKCS7_SIGNER_INFO_dup(st) SKM_sk_dup(PKCS7_SIGNER_INFO, st) -# define sk_PKCS7_SIGNER_INFO_pop_free(st, free_func) SKM_sk_pop_free(PKCS7_SIGNER_INFO, (st), (free_func)) -# define sk_PKCS7_SIGNER_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(PKCS7_SIGNER_INFO, (st), (copy_func), (free_func)) -# define sk_PKCS7_SIGNER_INFO_shift(st) SKM_sk_shift(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_pop(st) SKM_sk_pop(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_sort(st) SKM_sk_sort(PKCS7_SIGNER_INFO, (st)) -# define sk_PKCS7_SIGNER_INFO_is_sorted(st) SKM_sk_is_sorted(PKCS7_SIGNER_INFO, (st)) -# define sk_POLICYINFO_new(cmp) SKM_sk_new(POLICYINFO, (cmp)) -# define sk_POLICYINFO_new_null() SKM_sk_new_null(POLICYINFO) -# define sk_POLICYINFO_free(st) SKM_sk_free(POLICYINFO, (st)) -# define sk_POLICYINFO_num(st) SKM_sk_num(POLICYINFO, (st)) -# define sk_POLICYINFO_value(st, i) SKM_sk_value(POLICYINFO, (st), (i)) -# define sk_POLICYINFO_set(st, i, val) SKM_sk_set(POLICYINFO, (st), (i), (val)) -# define sk_POLICYINFO_zero(st) SKM_sk_zero(POLICYINFO, (st)) -# define sk_POLICYINFO_push(st, val) SKM_sk_push(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_unshift(st, val) SKM_sk_unshift(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_find(st, val) SKM_sk_find(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_find_ex(st, val) SKM_sk_find_ex(POLICYINFO, (st), (val)) -# define sk_POLICYINFO_delete(st, i) SKM_sk_delete(POLICYINFO, (st), (i)) -# define sk_POLICYINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYINFO, (st), (ptr)) -# define sk_POLICYINFO_insert(st, val, i) SKM_sk_insert(POLICYINFO, (st), (val), (i)) -# define sk_POLICYINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYINFO, (st), (cmp)) -# define sk_POLICYINFO_dup(st) SKM_sk_dup(POLICYINFO, st) -# define sk_POLICYINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYINFO, (st), (free_func)) -# define sk_POLICYINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYINFO, (st), (copy_func), (free_func)) -# define sk_POLICYINFO_shift(st) SKM_sk_shift(POLICYINFO, (st)) -# define sk_POLICYINFO_pop(st) SKM_sk_pop(POLICYINFO, (st)) -# define sk_POLICYINFO_sort(st) SKM_sk_sort(POLICYINFO, (st)) -# define sk_POLICYINFO_is_sorted(st) SKM_sk_is_sorted(POLICYINFO, (st)) -# define sk_POLICYQUALINFO_new(cmp) SKM_sk_new(POLICYQUALINFO, (cmp)) -# define sk_POLICYQUALINFO_new_null() SKM_sk_new_null(POLICYQUALINFO) -# define sk_POLICYQUALINFO_free(st) SKM_sk_free(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_num(st) SKM_sk_num(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_value(st, i) SKM_sk_value(POLICYQUALINFO, (st), (i)) -# define sk_POLICYQUALINFO_set(st, i, val) SKM_sk_set(POLICYQUALINFO, (st), (i), (val)) -# define sk_POLICYQUALINFO_zero(st) SKM_sk_zero(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_push(st, val) SKM_sk_push(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_unshift(st, val) SKM_sk_unshift(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_find(st, val) SKM_sk_find(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_find_ex(st, val) SKM_sk_find_ex(POLICYQUALINFO, (st), (val)) -# define sk_POLICYQUALINFO_delete(st, i) SKM_sk_delete(POLICYQUALINFO, (st), (i)) -# define sk_POLICYQUALINFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICYQUALINFO, (st), (ptr)) -# define sk_POLICYQUALINFO_insert(st, val, i) SKM_sk_insert(POLICYQUALINFO, (st), (val), (i)) -# define sk_POLICYQUALINFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICYQUALINFO, (st), (cmp)) -# define sk_POLICYQUALINFO_dup(st) SKM_sk_dup(POLICYQUALINFO, st) -# define sk_POLICYQUALINFO_pop_free(st, free_func) SKM_sk_pop_free(POLICYQUALINFO, (st), (free_func)) -# define sk_POLICYQUALINFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICYQUALINFO, (st), (copy_func), (free_func)) -# define sk_POLICYQUALINFO_shift(st) SKM_sk_shift(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_pop(st) SKM_sk_pop(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_sort(st) SKM_sk_sort(POLICYQUALINFO, (st)) -# define sk_POLICYQUALINFO_is_sorted(st) SKM_sk_is_sorted(POLICYQUALINFO, (st)) -# define sk_POLICY_MAPPING_new(cmp) SKM_sk_new(POLICY_MAPPING, (cmp)) -# define sk_POLICY_MAPPING_new_null() SKM_sk_new_null(POLICY_MAPPING) -# define sk_POLICY_MAPPING_free(st) SKM_sk_free(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_num(st) SKM_sk_num(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_value(st, i) SKM_sk_value(POLICY_MAPPING, (st), (i)) -# define sk_POLICY_MAPPING_set(st, i, val) SKM_sk_set(POLICY_MAPPING, (st), (i), (val)) -# define sk_POLICY_MAPPING_zero(st) SKM_sk_zero(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_push(st, val) SKM_sk_push(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_unshift(st, val) SKM_sk_unshift(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_find(st, val) SKM_sk_find(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_find_ex(st, val) SKM_sk_find_ex(POLICY_MAPPING, (st), (val)) -# define sk_POLICY_MAPPING_delete(st, i) SKM_sk_delete(POLICY_MAPPING, (st), (i)) -# define sk_POLICY_MAPPING_delete_ptr(st, ptr) SKM_sk_delete_ptr(POLICY_MAPPING, (st), (ptr)) -# define sk_POLICY_MAPPING_insert(st, val, i) SKM_sk_insert(POLICY_MAPPING, (st), (val), (i)) -# define sk_POLICY_MAPPING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(POLICY_MAPPING, (st), (cmp)) -# define sk_POLICY_MAPPING_dup(st) SKM_sk_dup(POLICY_MAPPING, st) -# define sk_POLICY_MAPPING_pop_free(st, free_func) SKM_sk_pop_free(POLICY_MAPPING, (st), (free_func)) -# define sk_POLICY_MAPPING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(POLICY_MAPPING, (st), (copy_func), (free_func)) -# define sk_POLICY_MAPPING_shift(st) SKM_sk_shift(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_pop(st) SKM_sk_pop(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_sort(st) SKM_sk_sort(POLICY_MAPPING, (st)) -# define sk_POLICY_MAPPING_is_sorted(st) SKM_sk_is_sorted(POLICY_MAPPING, (st)) -# define sk_SCT_new(cmp) SKM_sk_new(SCT, (cmp)) -# define sk_SCT_new_null() SKM_sk_new_null(SCT) -# define sk_SCT_free(st) SKM_sk_free(SCT, (st)) -# define sk_SCT_num(st) SKM_sk_num(SCT, (st)) -# define sk_SCT_value(st, i) SKM_sk_value(SCT, (st), (i)) -# define sk_SCT_set(st, i, val) SKM_sk_set(SCT, (st), (i), (val)) -# define sk_SCT_zero(st) SKM_sk_zero(SCT, (st)) -# define sk_SCT_push(st, val) SKM_sk_push(SCT, (st), (val)) -# define sk_SCT_unshift(st, val) SKM_sk_unshift(SCT, (st), (val)) -# define sk_SCT_find(st, val) SKM_sk_find(SCT, (st), (val)) -# define sk_SCT_find_ex(st, val) SKM_sk_find_ex(SCT, (st), (val)) -# define sk_SCT_delete(st, i) SKM_sk_delete(SCT, (st), (i)) -# define sk_SCT_delete_ptr(st, ptr) SKM_sk_delete_ptr(SCT, (st), (ptr)) -# define sk_SCT_insert(st, val, i) SKM_sk_insert(SCT, (st), (val), (i)) -# define sk_SCT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SCT, (st), (cmp)) -# define sk_SCT_dup(st) SKM_sk_dup(SCT, st) -# define sk_SCT_pop_free(st, free_func) SKM_sk_pop_free(SCT, (st), (free_func)) -# define sk_SCT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SCT, (st), (copy_func), (free_func)) -# define sk_SCT_shift(st) SKM_sk_shift(SCT, (st)) -# define sk_SCT_pop(st) SKM_sk_pop(SCT, (st)) -# define sk_SCT_sort(st) SKM_sk_sort(SCT, (st)) -# define sk_SCT_is_sorted(st) SKM_sk_is_sorted(SCT, (st)) -# define sk_SRP_gN_new(cmp) SKM_sk_new(SRP_gN, (cmp)) -# define sk_SRP_gN_new_null() SKM_sk_new_null(SRP_gN) -# define sk_SRP_gN_free(st) SKM_sk_free(SRP_gN, (st)) -# define sk_SRP_gN_num(st) SKM_sk_num(SRP_gN, (st)) -# define sk_SRP_gN_value(st, i) SKM_sk_value(SRP_gN, (st), (i)) -# define sk_SRP_gN_set(st, i, val) SKM_sk_set(SRP_gN, (st), (i), (val)) -# define sk_SRP_gN_zero(st) SKM_sk_zero(SRP_gN, (st)) -# define sk_SRP_gN_push(st, val) SKM_sk_push(SRP_gN, (st), (val)) -# define sk_SRP_gN_unshift(st, val) SKM_sk_unshift(SRP_gN, (st), (val)) -# define sk_SRP_gN_find(st, val) SKM_sk_find(SRP_gN, (st), (val)) -# define sk_SRP_gN_find_ex(st, val) SKM_sk_find_ex(SRP_gN, (st), (val)) -# define sk_SRP_gN_delete(st, i) SKM_sk_delete(SRP_gN, (st), (i)) -# define sk_SRP_gN_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN, (st), (ptr)) -# define sk_SRP_gN_insert(st, val, i) SKM_sk_insert(SRP_gN, (st), (val), (i)) -# define sk_SRP_gN_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN, (st), (cmp)) -# define sk_SRP_gN_dup(st) SKM_sk_dup(SRP_gN, st) -# define sk_SRP_gN_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN, (st), (free_func)) -# define sk_SRP_gN_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN, (st), (copy_func), (free_func)) -# define sk_SRP_gN_shift(st) SKM_sk_shift(SRP_gN, (st)) -# define sk_SRP_gN_pop(st) SKM_sk_pop(SRP_gN, (st)) -# define sk_SRP_gN_sort(st) SKM_sk_sort(SRP_gN, (st)) -# define sk_SRP_gN_is_sorted(st) SKM_sk_is_sorted(SRP_gN, (st)) -# define sk_SRP_gN_cache_new(cmp) SKM_sk_new(SRP_gN_cache, (cmp)) -# define sk_SRP_gN_cache_new_null() SKM_sk_new_null(SRP_gN_cache) -# define sk_SRP_gN_cache_free(st) SKM_sk_free(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_num(st) SKM_sk_num(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_value(st, i) SKM_sk_value(SRP_gN_cache, (st), (i)) -# define sk_SRP_gN_cache_set(st, i, val) SKM_sk_set(SRP_gN_cache, (st), (i), (val)) -# define sk_SRP_gN_cache_zero(st) SKM_sk_zero(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_push(st, val) SKM_sk_push(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_unshift(st, val) SKM_sk_unshift(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_find(st, val) SKM_sk_find(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_find_ex(st, val) SKM_sk_find_ex(SRP_gN_cache, (st), (val)) -# define sk_SRP_gN_cache_delete(st, i) SKM_sk_delete(SRP_gN_cache, (st), (i)) -# define sk_SRP_gN_cache_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_gN_cache, (st), (ptr)) -# define sk_SRP_gN_cache_insert(st, val, i) SKM_sk_insert(SRP_gN_cache, (st), (val), (i)) -# define sk_SRP_gN_cache_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_gN_cache, (st), (cmp)) -# define sk_SRP_gN_cache_dup(st) SKM_sk_dup(SRP_gN_cache, st) -# define sk_SRP_gN_cache_pop_free(st, free_func) SKM_sk_pop_free(SRP_gN_cache, (st), (free_func)) -# define sk_SRP_gN_cache_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_gN_cache, (st), (copy_func), (free_func)) -# define sk_SRP_gN_cache_shift(st) SKM_sk_shift(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_pop(st) SKM_sk_pop(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_sort(st) SKM_sk_sort(SRP_gN_cache, (st)) -# define sk_SRP_gN_cache_is_sorted(st) SKM_sk_is_sorted(SRP_gN_cache, (st)) -# define sk_SRP_user_pwd_new(cmp) SKM_sk_new(SRP_user_pwd, (cmp)) -# define sk_SRP_user_pwd_new_null() SKM_sk_new_null(SRP_user_pwd) -# define sk_SRP_user_pwd_free(st) SKM_sk_free(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_num(st) SKM_sk_num(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_value(st, i) SKM_sk_value(SRP_user_pwd, (st), (i)) -# define sk_SRP_user_pwd_set(st, i, val) SKM_sk_set(SRP_user_pwd, (st), (i), (val)) -# define sk_SRP_user_pwd_zero(st) SKM_sk_zero(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_push(st, val) SKM_sk_push(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_unshift(st, val) SKM_sk_unshift(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_find(st, val) SKM_sk_find(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_find_ex(st, val) SKM_sk_find_ex(SRP_user_pwd, (st), (val)) -# define sk_SRP_user_pwd_delete(st, i) SKM_sk_delete(SRP_user_pwd, (st), (i)) -# define sk_SRP_user_pwd_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRP_user_pwd, (st), (ptr)) -# define sk_SRP_user_pwd_insert(st, val, i) SKM_sk_insert(SRP_user_pwd, (st), (val), (i)) -# define sk_SRP_user_pwd_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRP_user_pwd, (st), (cmp)) -# define sk_SRP_user_pwd_dup(st) SKM_sk_dup(SRP_user_pwd, st) -# define sk_SRP_user_pwd_pop_free(st, free_func) SKM_sk_pop_free(SRP_user_pwd, (st), (free_func)) -# define sk_SRP_user_pwd_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRP_user_pwd, (st), (copy_func), (free_func)) -# define sk_SRP_user_pwd_shift(st) SKM_sk_shift(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_pop(st) SKM_sk_pop(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_sort(st) SKM_sk_sort(SRP_user_pwd, (st)) -# define sk_SRP_user_pwd_is_sorted(st) SKM_sk_is_sorted(SRP_user_pwd, (st)) -# define sk_SRTP_PROTECTION_PROFILE_new(cmp) SKM_sk_new(SRTP_PROTECTION_PROFILE, (cmp)) -# define sk_SRTP_PROTECTION_PROFILE_new_null() SKM_sk_new_null(SRTP_PROTECTION_PROFILE) -# define sk_SRTP_PROTECTION_PROFILE_free(st) SKM_sk_free(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_num(st) SKM_sk_num(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_value(st, i) SKM_sk_value(SRTP_PROTECTION_PROFILE, (st), (i)) -# define sk_SRTP_PROTECTION_PROFILE_set(st, i, val) SKM_sk_set(SRTP_PROTECTION_PROFILE, (st), (i), (val)) -# define sk_SRTP_PROTECTION_PROFILE_zero(st) SKM_sk_zero(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_push(st, val) SKM_sk_push(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_unshift(st, val) SKM_sk_unshift(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_find(st, val) SKM_sk_find(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_find_ex(st, val) SKM_sk_find_ex(SRTP_PROTECTION_PROFILE, (st), (val)) -# define sk_SRTP_PROTECTION_PROFILE_delete(st, i) SKM_sk_delete(SRTP_PROTECTION_PROFILE, (st), (i)) -# define sk_SRTP_PROTECTION_PROFILE_delete_ptr(st, ptr) SKM_sk_delete_ptr(SRTP_PROTECTION_PROFILE, (st), (ptr)) -# define sk_SRTP_PROTECTION_PROFILE_insert(st, val, i) SKM_sk_insert(SRTP_PROTECTION_PROFILE, (st), (val), (i)) -# define sk_SRTP_PROTECTION_PROFILE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SRTP_PROTECTION_PROFILE, (st), (cmp)) -# define sk_SRTP_PROTECTION_PROFILE_dup(st) SKM_sk_dup(SRTP_PROTECTION_PROFILE, st) -# define sk_SRTP_PROTECTION_PROFILE_pop_free(st, free_func) SKM_sk_pop_free(SRTP_PROTECTION_PROFILE, (st), (free_func)) -# define sk_SRTP_PROTECTION_PROFILE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SRTP_PROTECTION_PROFILE, (st), (copy_func), (free_func)) -# define sk_SRTP_PROTECTION_PROFILE_shift(st) SKM_sk_shift(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_pop(st) SKM_sk_pop(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_sort(st) SKM_sk_sort(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SRTP_PROTECTION_PROFILE_is_sorted(st) SKM_sk_is_sorted(SRTP_PROTECTION_PROFILE, (st)) -# define sk_SSL_CIPHER_new(cmp) SKM_sk_new(SSL_CIPHER, (cmp)) -# define sk_SSL_CIPHER_new_null() SKM_sk_new_null(SSL_CIPHER) -# define sk_SSL_CIPHER_free(st) SKM_sk_free(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_num(st) SKM_sk_num(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_value(st, i) SKM_sk_value(SSL_CIPHER, (st), (i)) -# define sk_SSL_CIPHER_set(st, i, val) SKM_sk_set(SSL_CIPHER, (st), (i), (val)) -# define sk_SSL_CIPHER_zero(st) SKM_sk_zero(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_push(st, val) SKM_sk_push(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_unshift(st, val) SKM_sk_unshift(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_find(st, val) SKM_sk_find(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_find_ex(st, val) SKM_sk_find_ex(SSL_CIPHER, (st), (val)) -# define sk_SSL_CIPHER_delete(st, i) SKM_sk_delete(SSL_CIPHER, (st), (i)) -# define sk_SSL_CIPHER_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_CIPHER, (st), (ptr)) -# define sk_SSL_CIPHER_insert(st, val, i) SKM_sk_insert(SSL_CIPHER, (st), (val), (i)) -# define sk_SSL_CIPHER_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_CIPHER, (st), (cmp)) -# define sk_SSL_CIPHER_dup(st) SKM_sk_dup(SSL_CIPHER, st) -# define sk_SSL_CIPHER_pop_free(st, free_func) SKM_sk_pop_free(SSL_CIPHER, (st), (free_func)) -# define sk_SSL_CIPHER_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_CIPHER, (st), (copy_func), (free_func)) -# define sk_SSL_CIPHER_shift(st) SKM_sk_shift(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_pop(st) SKM_sk_pop(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_sort(st) SKM_sk_sort(SSL_CIPHER, (st)) -# define sk_SSL_CIPHER_is_sorted(st) SKM_sk_is_sorted(SSL_CIPHER, (st)) -# define sk_SSL_COMP_new(cmp) SKM_sk_new(SSL_COMP, (cmp)) -# define sk_SSL_COMP_new_null() SKM_sk_new_null(SSL_COMP) -# define sk_SSL_COMP_free(st) SKM_sk_free(SSL_COMP, (st)) -# define sk_SSL_COMP_num(st) SKM_sk_num(SSL_COMP, (st)) -# define sk_SSL_COMP_value(st, i) SKM_sk_value(SSL_COMP, (st), (i)) -# define sk_SSL_COMP_set(st, i, val) SKM_sk_set(SSL_COMP, (st), (i), (val)) -# define sk_SSL_COMP_zero(st) SKM_sk_zero(SSL_COMP, (st)) -# define sk_SSL_COMP_push(st, val) SKM_sk_push(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_unshift(st, val) SKM_sk_unshift(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_find(st, val) SKM_sk_find(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_find_ex(st, val) SKM_sk_find_ex(SSL_COMP, (st), (val)) -# define sk_SSL_COMP_delete(st, i) SKM_sk_delete(SSL_COMP, (st), (i)) -# define sk_SSL_COMP_delete_ptr(st, ptr) SKM_sk_delete_ptr(SSL_COMP, (st), (ptr)) -# define sk_SSL_COMP_insert(st, val, i) SKM_sk_insert(SSL_COMP, (st), (val), (i)) -# define sk_SSL_COMP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SSL_COMP, (st), (cmp)) -# define sk_SSL_COMP_dup(st) SKM_sk_dup(SSL_COMP, st) -# define sk_SSL_COMP_pop_free(st, free_func) SKM_sk_pop_free(SSL_COMP, (st), (free_func)) -# define sk_SSL_COMP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SSL_COMP, (st), (copy_func), (free_func)) -# define sk_SSL_COMP_shift(st) SKM_sk_shift(SSL_COMP, (st)) -# define sk_SSL_COMP_pop(st) SKM_sk_pop(SSL_COMP, (st)) -# define sk_SSL_COMP_sort(st) SKM_sk_sort(SSL_COMP, (st)) -# define sk_SSL_COMP_is_sorted(st) SKM_sk_is_sorted(SSL_COMP, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_new(cmp) SKM_sk_new(STACK_OF_X509_NAME_ENTRY, (cmp)) -# define sk_STACK_OF_X509_NAME_ENTRY_new_null() SKM_sk_new_null(STACK_OF_X509_NAME_ENTRY) -# define sk_STACK_OF_X509_NAME_ENTRY_free(st) SKM_sk_free(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_num(st) SKM_sk_num(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_value(st, i) SKM_sk_value(STACK_OF_X509_NAME_ENTRY, (st), (i)) -# define sk_STACK_OF_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(STACK_OF_X509_NAME_ENTRY, (st), (i), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_zero(st) SKM_sk_zero(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_push(st, val) SKM_sk_push(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_find(st, val) SKM_sk_find(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(STACK_OF_X509_NAME_ENTRY, (st), (val)) -# define sk_STACK_OF_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(STACK_OF_X509_NAME_ENTRY, (st), (i)) -# define sk_STACK_OF_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(STACK_OF_X509_NAME_ENTRY, (st), (ptr)) -# define sk_STACK_OF_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(STACK_OF_X509_NAME_ENTRY, (st), (val), (i)) -# define sk_STACK_OF_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STACK_OF_X509_NAME_ENTRY, (st), (cmp)) -# define sk_STACK_OF_X509_NAME_ENTRY_dup(st) SKM_sk_dup(STACK_OF_X509_NAME_ENTRY, st) -# define sk_STACK_OF_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(STACK_OF_X509_NAME_ENTRY, (st), (free_func)) -# define sk_STACK_OF_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STACK_OF_X509_NAME_ENTRY, (st), (copy_func), (free_func)) -# define sk_STACK_OF_X509_NAME_ENTRY_shift(st) SKM_sk_shift(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_pop(st) SKM_sk_pop(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_sort(st) SKM_sk_sort(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STACK_OF_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(STACK_OF_X509_NAME_ENTRY, (st)) -# define sk_STORE_ATTR_INFO_new(cmp) SKM_sk_new(STORE_ATTR_INFO, (cmp)) -# define sk_STORE_ATTR_INFO_new_null() SKM_sk_new_null(STORE_ATTR_INFO) -# define sk_STORE_ATTR_INFO_free(st) SKM_sk_free(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_num(st) SKM_sk_num(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_value(st, i) SKM_sk_value(STORE_ATTR_INFO, (st), (i)) -# define sk_STORE_ATTR_INFO_set(st, i, val) SKM_sk_set(STORE_ATTR_INFO, (st), (i), (val)) -# define sk_STORE_ATTR_INFO_zero(st) SKM_sk_zero(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_push(st, val) SKM_sk_push(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_unshift(st, val) SKM_sk_unshift(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_find(st, val) SKM_sk_find(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_find_ex(st, val) SKM_sk_find_ex(STORE_ATTR_INFO, (st), (val)) -# define sk_STORE_ATTR_INFO_delete(st, i) SKM_sk_delete(STORE_ATTR_INFO, (st), (i)) -# define sk_STORE_ATTR_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_ATTR_INFO, (st), (ptr)) -# define sk_STORE_ATTR_INFO_insert(st, val, i) SKM_sk_insert(STORE_ATTR_INFO, (st), (val), (i)) -# define sk_STORE_ATTR_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_ATTR_INFO, (st), (cmp)) -# define sk_STORE_ATTR_INFO_dup(st) SKM_sk_dup(STORE_ATTR_INFO, st) -# define sk_STORE_ATTR_INFO_pop_free(st, free_func) SKM_sk_pop_free(STORE_ATTR_INFO, (st), (free_func)) -# define sk_STORE_ATTR_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_ATTR_INFO, (st), (copy_func), (free_func)) -# define sk_STORE_ATTR_INFO_shift(st) SKM_sk_shift(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_pop(st) SKM_sk_pop(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_sort(st) SKM_sk_sort(STORE_ATTR_INFO, (st)) -# define sk_STORE_ATTR_INFO_is_sorted(st) SKM_sk_is_sorted(STORE_ATTR_INFO, (st)) -# define sk_STORE_OBJECT_new(cmp) SKM_sk_new(STORE_OBJECT, (cmp)) -# define sk_STORE_OBJECT_new_null() SKM_sk_new_null(STORE_OBJECT) -# define sk_STORE_OBJECT_free(st) SKM_sk_free(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_num(st) SKM_sk_num(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_value(st, i) SKM_sk_value(STORE_OBJECT, (st), (i)) -# define sk_STORE_OBJECT_set(st, i, val) SKM_sk_set(STORE_OBJECT, (st), (i), (val)) -# define sk_STORE_OBJECT_zero(st) SKM_sk_zero(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_push(st, val) SKM_sk_push(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_unshift(st, val) SKM_sk_unshift(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_find(st, val) SKM_sk_find(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_find_ex(st, val) SKM_sk_find_ex(STORE_OBJECT, (st), (val)) -# define sk_STORE_OBJECT_delete(st, i) SKM_sk_delete(STORE_OBJECT, (st), (i)) -# define sk_STORE_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(STORE_OBJECT, (st), (ptr)) -# define sk_STORE_OBJECT_insert(st, val, i) SKM_sk_insert(STORE_OBJECT, (st), (val), (i)) -# define sk_STORE_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(STORE_OBJECT, (st), (cmp)) -# define sk_STORE_OBJECT_dup(st) SKM_sk_dup(STORE_OBJECT, st) -# define sk_STORE_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(STORE_OBJECT, (st), (free_func)) -# define sk_STORE_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(STORE_OBJECT, (st), (copy_func), (free_func)) -# define sk_STORE_OBJECT_shift(st) SKM_sk_shift(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_pop(st) SKM_sk_pop(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_sort(st) SKM_sk_sort(STORE_OBJECT, (st)) -# define sk_STORE_OBJECT_is_sorted(st) SKM_sk_is_sorted(STORE_OBJECT, (st)) -# define sk_SXNETID_new(cmp) SKM_sk_new(SXNETID, (cmp)) -# define sk_SXNETID_new_null() SKM_sk_new_null(SXNETID) -# define sk_SXNETID_free(st) SKM_sk_free(SXNETID, (st)) -# define sk_SXNETID_num(st) SKM_sk_num(SXNETID, (st)) -# define sk_SXNETID_value(st, i) SKM_sk_value(SXNETID, (st), (i)) -# define sk_SXNETID_set(st, i, val) SKM_sk_set(SXNETID, (st), (i), (val)) -# define sk_SXNETID_zero(st) SKM_sk_zero(SXNETID, (st)) -# define sk_SXNETID_push(st, val) SKM_sk_push(SXNETID, (st), (val)) -# define sk_SXNETID_unshift(st, val) SKM_sk_unshift(SXNETID, (st), (val)) -# define sk_SXNETID_find(st, val) SKM_sk_find(SXNETID, (st), (val)) -# define sk_SXNETID_find_ex(st, val) SKM_sk_find_ex(SXNETID, (st), (val)) -# define sk_SXNETID_delete(st, i) SKM_sk_delete(SXNETID, (st), (i)) -# define sk_SXNETID_delete_ptr(st, ptr) SKM_sk_delete_ptr(SXNETID, (st), (ptr)) -# define sk_SXNETID_insert(st, val, i) SKM_sk_insert(SXNETID, (st), (val), (i)) -# define sk_SXNETID_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(SXNETID, (st), (cmp)) -# define sk_SXNETID_dup(st) SKM_sk_dup(SXNETID, st) -# define sk_SXNETID_pop_free(st, free_func) SKM_sk_pop_free(SXNETID, (st), (free_func)) -# define sk_SXNETID_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(SXNETID, (st), (copy_func), (free_func)) -# define sk_SXNETID_shift(st) SKM_sk_shift(SXNETID, (st)) -# define sk_SXNETID_pop(st) SKM_sk_pop(SXNETID, (st)) -# define sk_SXNETID_sort(st) SKM_sk_sort(SXNETID, (st)) -# define sk_SXNETID_is_sorted(st) SKM_sk_is_sorted(SXNETID, (st)) -# define sk_UI_STRING_new(cmp) SKM_sk_new(UI_STRING, (cmp)) -# define sk_UI_STRING_new_null() SKM_sk_new_null(UI_STRING) -# define sk_UI_STRING_free(st) SKM_sk_free(UI_STRING, (st)) -# define sk_UI_STRING_num(st) SKM_sk_num(UI_STRING, (st)) -# define sk_UI_STRING_value(st, i) SKM_sk_value(UI_STRING, (st), (i)) -# define sk_UI_STRING_set(st, i, val) SKM_sk_set(UI_STRING, (st), (i), (val)) -# define sk_UI_STRING_zero(st) SKM_sk_zero(UI_STRING, (st)) -# define sk_UI_STRING_push(st, val) SKM_sk_push(UI_STRING, (st), (val)) -# define sk_UI_STRING_unshift(st, val) SKM_sk_unshift(UI_STRING, (st), (val)) -# define sk_UI_STRING_find(st, val) SKM_sk_find(UI_STRING, (st), (val)) -# define sk_UI_STRING_find_ex(st, val) SKM_sk_find_ex(UI_STRING, (st), (val)) -# define sk_UI_STRING_delete(st, i) SKM_sk_delete(UI_STRING, (st), (i)) -# define sk_UI_STRING_delete_ptr(st, ptr) SKM_sk_delete_ptr(UI_STRING, (st), (ptr)) -# define sk_UI_STRING_insert(st, val, i) SKM_sk_insert(UI_STRING, (st), (val), (i)) -# define sk_UI_STRING_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(UI_STRING, (st), (cmp)) -# define sk_UI_STRING_dup(st) SKM_sk_dup(UI_STRING, st) -# define sk_UI_STRING_pop_free(st, free_func) SKM_sk_pop_free(UI_STRING, (st), (free_func)) -# define sk_UI_STRING_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(UI_STRING, (st), (copy_func), (free_func)) -# define sk_UI_STRING_shift(st) SKM_sk_shift(UI_STRING, (st)) -# define sk_UI_STRING_pop(st) SKM_sk_pop(UI_STRING, (st)) -# define sk_UI_STRING_sort(st) SKM_sk_sort(UI_STRING, (st)) -# define sk_UI_STRING_is_sorted(st) SKM_sk_is_sorted(UI_STRING, (st)) -# define sk_X509_new(cmp) SKM_sk_new(X509, (cmp)) -# define sk_X509_new_null() SKM_sk_new_null(X509) -# define sk_X509_free(st) SKM_sk_free(X509, (st)) -# define sk_X509_num(st) SKM_sk_num(X509, (st)) -# define sk_X509_value(st, i) SKM_sk_value(X509, (st), (i)) -# define sk_X509_set(st, i, val) SKM_sk_set(X509, (st), (i), (val)) -# define sk_X509_zero(st) SKM_sk_zero(X509, (st)) -# define sk_X509_push(st, val) SKM_sk_push(X509, (st), (val)) -# define sk_X509_unshift(st, val) SKM_sk_unshift(X509, (st), (val)) -# define sk_X509_find(st, val) SKM_sk_find(X509, (st), (val)) -# define sk_X509_find_ex(st, val) SKM_sk_find_ex(X509, (st), (val)) -# define sk_X509_delete(st, i) SKM_sk_delete(X509, (st), (i)) -# define sk_X509_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509, (st), (ptr)) -# define sk_X509_insert(st, val, i) SKM_sk_insert(X509, (st), (val), (i)) -# define sk_X509_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509, (st), (cmp)) -# define sk_X509_dup(st) SKM_sk_dup(X509, st) -# define sk_X509_pop_free(st, free_func) SKM_sk_pop_free(X509, (st), (free_func)) -# define sk_X509_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509, (st), (copy_func), (free_func)) -# define sk_X509_shift(st) SKM_sk_shift(X509, (st)) -# define sk_X509_pop(st) SKM_sk_pop(X509, (st)) -# define sk_X509_sort(st) SKM_sk_sort(X509, (st)) -# define sk_X509_is_sorted(st) SKM_sk_is_sorted(X509, (st)) -# define sk_X509V3_EXT_METHOD_new(cmp) SKM_sk_new(X509V3_EXT_METHOD, (cmp)) -# define sk_X509V3_EXT_METHOD_new_null() SKM_sk_new_null(X509V3_EXT_METHOD) -# define sk_X509V3_EXT_METHOD_free(st) SKM_sk_free(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_num(st) SKM_sk_num(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_value(st, i) SKM_sk_value(X509V3_EXT_METHOD, (st), (i)) -# define sk_X509V3_EXT_METHOD_set(st, i, val) SKM_sk_set(X509V3_EXT_METHOD, (st), (i), (val)) -# define sk_X509V3_EXT_METHOD_zero(st) SKM_sk_zero(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_push(st, val) SKM_sk_push(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_unshift(st, val) SKM_sk_unshift(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_find(st, val) SKM_sk_find(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_find_ex(st, val) SKM_sk_find_ex(X509V3_EXT_METHOD, (st), (val)) -# define sk_X509V3_EXT_METHOD_delete(st, i) SKM_sk_delete(X509V3_EXT_METHOD, (st), (i)) -# define sk_X509V3_EXT_METHOD_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509V3_EXT_METHOD, (st), (ptr)) -# define sk_X509V3_EXT_METHOD_insert(st, val, i) SKM_sk_insert(X509V3_EXT_METHOD, (st), (val), (i)) -# define sk_X509V3_EXT_METHOD_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509V3_EXT_METHOD, (st), (cmp)) -# define sk_X509V3_EXT_METHOD_dup(st) SKM_sk_dup(X509V3_EXT_METHOD, st) -# define sk_X509V3_EXT_METHOD_pop_free(st, free_func) SKM_sk_pop_free(X509V3_EXT_METHOD, (st), (free_func)) -# define sk_X509V3_EXT_METHOD_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509V3_EXT_METHOD, (st), (copy_func), (free_func)) -# define sk_X509V3_EXT_METHOD_shift(st) SKM_sk_shift(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_pop(st) SKM_sk_pop(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_sort(st) SKM_sk_sort(X509V3_EXT_METHOD, (st)) -# define sk_X509V3_EXT_METHOD_is_sorted(st) SKM_sk_is_sorted(X509V3_EXT_METHOD, (st)) -# define sk_X509_ALGOR_new(cmp) SKM_sk_new(X509_ALGOR, (cmp)) -# define sk_X509_ALGOR_new_null() SKM_sk_new_null(X509_ALGOR) -# define sk_X509_ALGOR_free(st) SKM_sk_free(X509_ALGOR, (st)) -# define sk_X509_ALGOR_num(st) SKM_sk_num(X509_ALGOR, (st)) -# define sk_X509_ALGOR_value(st, i) SKM_sk_value(X509_ALGOR, (st), (i)) -# define sk_X509_ALGOR_set(st, i, val) SKM_sk_set(X509_ALGOR, (st), (i), (val)) -# define sk_X509_ALGOR_zero(st) SKM_sk_zero(X509_ALGOR, (st)) -# define sk_X509_ALGOR_push(st, val) SKM_sk_push(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_unshift(st, val) SKM_sk_unshift(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_find(st, val) SKM_sk_find(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_find_ex(st, val) SKM_sk_find_ex(X509_ALGOR, (st), (val)) -# define sk_X509_ALGOR_delete(st, i) SKM_sk_delete(X509_ALGOR, (st), (i)) -# define sk_X509_ALGOR_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ALGOR, (st), (ptr)) -# define sk_X509_ALGOR_insert(st, val, i) SKM_sk_insert(X509_ALGOR, (st), (val), (i)) -# define sk_X509_ALGOR_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ALGOR, (st), (cmp)) -# define sk_X509_ALGOR_dup(st) SKM_sk_dup(X509_ALGOR, st) -# define sk_X509_ALGOR_pop_free(st, free_func) SKM_sk_pop_free(X509_ALGOR, (st), (free_func)) -# define sk_X509_ALGOR_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ALGOR, (st), (copy_func), (free_func)) -# define sk_X509_ALGOR_shift(st) SKM_sk_shift(X509_ALGOR, (st)) -# define sk_X509_ALGOR_pop(st) SKM_sk_pop(X509_ALGOR, (st)) -# define sk_X509_ALGOR_sort(st) SKM_sk_sort(X509_ALGOR, (st)) -# define sk_X509_ALGOR_is_sorted(st) SKM_sk_is_sorted(X509_ALGOR, (st)) -# define sk_X509_ATTRIBUTE_new(cmp) SKM_sk_new(X509_ATTRIBUTE, (cmp)) -# define sk_X509_ATTRIBUTE_new_null() SKM_sk_new_null(X509_ATTRIBUTE) -# define sk_X509_ATTRIBUTE_free(st) SKM_sk_free(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_num(st) SKM_sk_num(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_value(st, i) SKM_sk_value(X509_ATTRIBUTE, (st), (i)) -# define sk_X509_ATTRIBUTE_set(st, i, val) SKM_sk_set(X509_ATTRIBUTE, (st), (i), (val)) -# define sk_X509_ATTRIBUTE_zero(st) SKM_sk_zero(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_push(st, val) SKM_sk_push(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_unshift(st, val) SKM_sk_unshift(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_find(st, val) SKM_sk_find(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_find_ex(st, val) SKM_sk_find_ex(X509_ATTRIBUTE, (st), (val)) -# define sk_X509_ATTRIBUTE_delete(st, i) SKM_sk_delete(X509_ATTRIBUTE, (st), (i)) -# define sk_X509_ATTRIBUTE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_ATTRIBUTE, (st), (ptr)) -# define sk_X509_ATTRIBUTE_insert(st, val, i) SKM_sk_insert(X509_ATTRIBUTE, (st), (val), (i)) -# define sk_X509_ATTRIBUTE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_ATTRIBUTE, (st), (cmp)) -# define sk_X509_ATTRIBUTE_dup(st) SKM_sk_dup(X509_ATTRIBUTE, st) -# define sk_X509_ATTRIBUTE_pop_free(st, free_func) SKM_sk_pop_free(X509_ATTRIBUTE, (st), (free_func)) -# define sk_X509_ATTRIBUTE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_ATTRIBUTE, (st), (copy_func), (free_func)) -# define sk_X509_ATTRIBUTE_shift(st) SKM_sk_shift(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_pop(st) SKM_sk_pop(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_sort(st) SKM_sk_sort(X509_ATTRIBUTE, (st)) -# define sk_X509_ATTRIBUTE_is_sorted(st) SKM_sk_is_sorted(X509_ATTRIBUTE, (st)) -# define sk_X509_CRL_new(cmp) SKM_sk_new(X509_CRL, (cmp)) -# define sk_X509_CRL_new_null() SKM_sk_new_null(X509_CRL) -# define sk_X509_CRL_free(st) SKM_sk_free(X509_CRL, (st)) -# define sk_X509_CRL_num(st) SKM_sk_num(X509_CRL, (st)) -# define sk_X509_CRL_value(st, i) SKM_sk_value(X509_CRL, (st), (i)) -# define sk_X509_CRL_set(st, i, val) SKM_sk_set(X509_CRL, (st), (i), (val)) -# define sk_X509_CRL_zero(st) SKM_sk_zero(X509_CRL, (st)) -# define sk_X509_CRL_push(st, val) SKM_sk_push(X509_CRL, (st), (val)) -# define sk_X509_CRL_unshift(st, val) SKM_sk_unshift(X509_CRL, (st), (val)) -# define sk_X509_CRL_find(st, val) SKM_sk_find(X509_CRL, (st), (val)) -# define sk_X509_CRL_find_ex(st, val) SKM_sk_find_ex(X509_CRL, (st), (val)) -# define sk_X509_CRL_delete(st, i) SKM_sk_delete(X509_CRL, (st), (i)) -# define sk_X509_CRL_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_CRL, (st), (ptr)) -# define sk_X509_CRL_insert(st, val, i) SKM_sk_insert(X509_CRL, (st), (val), (i)) -# define sk_X509_CRL_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_CRL, (st), (cmp)) -# define sk_X509_CRL_dup(st) SKM_sk_dup(X509_CRL, st) -# define sk_X509_CRL_pop_free(st, free_func) SKM_sk_pop_free(X509_CRL, (st), (free_func)) -# define sk_X509_CRL_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_CRL, (st), (copy_func), (free_func)) -# define sk_X509_CRL_shift(st) SKM_sk_shift(X509_CRL, (st)) -# define sk_X509_CRL_pop(st) SKM_sk_pop(X509_CRL, (st)) -# define sk_X509_CRL_sort(st) SKM_sk_sort(X509_CRL, (st)) -# define sk_X509_CRL_is_sorted(st) SKM_sk_is_sorted(X509_CRL, (st)) -# define sk_X509_EXTENSION_new(cmp) SKM_sk_new(X509_EXTENSION, (cmp)) -# define sk_X509_EXTENSION_new_null() SKM_sk_new_null(X509_EXTENSION) -# define sk_X509_EXTENSION_free(st) SKM_sk_free(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_num(st) SKM_sk_num(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_value(st, i) SKM_sk_value(X509_EXTENSION, (st), (i)) -# define sk_X509_EXTENSION_set(st, i, val) SKM_sk_set(X509_EXTENSION, (st), (i), (val)) -# define sk_X509_EXTENSION_zero(st) SKM_sk_zero(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_push(st, val) SKM_sk_push(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_unshift(st, val) SKM_sk_unshift(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_find(st, val) SKM_sk_find(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_find_ex(st, val) SKM_sk_find_ex(X509_EXTENSION, (st), (val)) -# define sk_X509_EXTENSION_delete(st, i) SKM_sk_delete(X509_EXTENSION, (st), (i)) -# define sk_X509_EXTENSION_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_EXTENSION, (st), (ptr)) -# define sk_X509_EXTENSION_insert(st, val, i) SKM_sk_insert(X509_EXTENSION, (st), (val), (i)) -# define sk_X509_EXTENSION_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_EXTENSION, (st), (cmp)) -# define sk_X509_EXTENSION_dup(st) SKM_sk_dup(X509_EXTENSION, st) -# define sk_X509_EXTENSION_pop_free(st, free_func) SKM_sk_pop_free(X509_EXTENSION, (st), (free_func)) -# define sk_X509_EXTENSION_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_EXTENSION, (st), (copy_func), (free_func)) -# define sk_X509_EXTENSION_shift(st) SKM_sk_shift(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_pop(st) SKM_sk_pop(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_sort(st) SKM_sk_sort(X509_EXTENSION, (st)) -# define sk_X509_EXTENSION_is_sorted(st) SKM_sk_is_sorted(X509_EXTENSION, (st)) -# define sk_X509_INFO_new(cmp) SKM_sk_new(X509_INFO, (cmp)) -# define sk_X509_INFO_new_null() SKM_sk_new_null(X509_INFO) -# define sk_X509_INFO_free(st) SKM_sk_free(X509_INFO, (st)) -# define sk_X509_INFO_num(st) SKM_sk_num(X509_INFO, (st)) -# define sk_X509_INFO_value(st, i) SKM_sk_value(X509_INFO, (st), (i)) -# define sk_X509_INFO_set(st, i, val) SKM_sk_set(X509_INFO, (st), (i), (val)) -# define sk_X509_INFO_zero(st) SKM_sk_zero(X509_INFO, (st)) -# define sk_X509_INFO_push(st, val) SKM_sk_push(X509_INFO, (st), (val)) -# define sk_X509_INFO_unshift(st, val) SKM_sk_unshift(X509_INFO, (st), (val)) -# define sk_X509_INFO_find(st, val) SKM_sk_find(X509_INFO, (st), (val)) -# define sk_X509_INFO_find_ex(st, val) SKM_sk_find_ex(X509_INFO, (st), (val)) -# define sk_X509_INFO_delete(st, i) SKM_sk_delete(X509_INFO, (st), (i)) -# define sk_X509_INFO_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_INFO, (st), (ptr)) -# define sk_X509_INFO_insert(st, val, i) SKM_sk_insert(X509_INFO, (st), (val), (i)) -# define sk_X509_INFO_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_INFO, (st), (cmp)) -# define sk_X509_INFO_dup(st) SKM_sk_dup(X509_INFO, st) -# define sk_X509_INFO_pop_free(st, free_func) SKM_sk_pop_free(X509_INFO, (st), (free_func)) -# define sk_X509_INFO_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_INFO, (st), (copy_func), (free_func)) -# define sk_X509_INFO_shift(st) SKM_sk_shift(X509_INFO, (st)) -# define sk_X509_INFO_pop(st) SKM_sk_pop(X509_INFO, (st)) -# define sk_X509_INFO_sort(st) SKM_sk_sort(X509_INFO, (st)) -# define sk_X509_INFO_is_sorted(st) SKM_sk_is_sorted(X509_INFO, (st)) -# define sk_X509_LOOKUP_new(cmp) SKM_sk_new(X509_LOOKUP, (cmp)) -# define sk_X509_LOOKUP_new_null() SKM_sk_new_null(X509_LOOKUP) -# define sk_X509_LOOKUP_free(st) SKM_sk_free(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_num(st) SKM_sk_num(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_value(st, i) SKM_sk_value(X509_LOOKUP, (st), (i)) -# define sk_X509_LOOKUP_set(st, i, val) SKM_sk_set(X509_LOOKUP, (st), (i), (val)) -# define sk_X509_LOOKUP_zero(st) SKM_sk_zero(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_push(st, val) SKM_sk_push(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_unshift(st, val) SKM_sk_unshift(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_find(st, val) SKM_sk_find(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_find_ex(st, val) SKM_sk_find_ex(X509_LOOKUP, (st), (val)) -# define sk_X509_LOOKUP_delete(st, i) SKM_sk_delete(X509_LOOKUP, (st), (i)) -# define sk_X509_LOOKUP_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_LOOKUP, (st), (ptr)) -# define sk_X509_LOOKUP_insert(st, val, i) SKM_sk_insert(X509_LOOKUP, (st), (val), (i)) -# define sk_X509_LOOKUP_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_LOOKUP, (st), (cmp)) -# define sk_X509_LOOKUP_dup(st) SKM_sk_dup(X509_LOOKUP, st) -# define sk_X509_LOOKUP_pop_free(st, free_func) SKM_sk_pop_free(X509_LOOKUP, (st), (free_func)) -# define sk_X509_LOOKUP_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_LOOKUP, (st), (copy_func), (free_func)) -# define sk_X509_LOOKUP_shift(st) SKM_sk_shift(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_pop(st) SKM_sk_pop(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_sort(st) SKM_sk_sort(X509_LOOKUP, (st)) -# define sk_X509_LOOKUP_is_sorted(st) SKM_sk_is_sorted(X509_LOOKUP, (st)) -# define sk_X509_NAME_new(cmp) SKM_sk_new(X509_NAME, (cmp)) -# define sk_X509_NAME_new_null() SKM_sk_new_null(X509_NAME) -# define sk_X509_NAME_free(st) SKM_sk_free(X509_NAME, (st)) -# define sk_X509_NAME_num(st) SKM_sk_num(X509_NAME, (st)) -# define sk_X509_NAME_value(st, i) SKM_sk_value(X509_NAME, (st), (i)) -# define sk_X509_NAME_set(st, i, val) SKM_sk_set(X509_NAME, (st), (i), (val)) -# define sk_X509_NAME_zero(st) SKM_sk_zero(X509_NAME, (st)) -# define sk_X509_NAME_push(st, val) SKM_sk_push(X509_NAME, (st), (val)) -# define sk_X509_NAME_unshift(st, val) SKM_sk_unshift(X509_NAME, (st), (val)) -# define sk_X509_NAME_find(st, val) SKM_sk_find(X509_NAME, (st), (val)) -# define sk_X509_NAME_find_ex(st, val) SKM_sk_find_ex(X509_NAME, (st), (val)) -# define sk_X509_NAME_delete(st, i) SKM_sk_delete(X509_NAME, (st), (i)) -# define sk_X509_NAME_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME, (st), (ptr)) -# define sk_X509_NAME_insert(st, val, i) SKM_sk_insert(X509_NAME, (st), (val), (i)) -# define sk_X509_NAME_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME, (st), (cmp)) -# define sk_X509_NAME_dup(st) SKM_sk_dup(X509_NAME, st) -# define sk_X509_NAME_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME, (st), (free_func)) -# define sk_X509_NAME_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME, (st), (copy_func), (free_func)) -# define sk_X509_NAME_shift(st) SKM_sk_shift(X509_NAME, (st)) -# define sk_X509_NAME_pop(st) SKM_sk_pop(X509_NAME, (st)) -# define sk_X509_NAME_sort(st) SKM_sk_sort(X509_NAME, (st)) -# define sk_X509_NAME_is_sorted(st) SKM_sk_is_sorted(X509_NAME, (st)) -# define sk_X509_NAME_ENTRY_new(cmp) SKM_sk_new(X509_NAME_ENTRY, (cmp)) -# define sk_X509_NAME_ENTRY_new_null() SKM_sk_new_null(X509_NAME_ENTRY) -# define sk_X509_NAME_ENTRY_free(st) SKM_sk_free(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_num(st) SKM_sk_num(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_value(st, i) SKM_sk_value(X509_NAME_ENTRY, (st), (i)) -# define sk_X509_NAME_ENTRY_set(st, i, val) SKM_sk_set(X509_NAME_ENTRY, (st), (i), (val)) -# define sk_X509_NAME_ENTRY_zero(st) SKM_sk_zero(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_push(st, val) SKM_sk_push(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_unshift(st, val) SKM_sk_unshift(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_find(st, val) SKM_sk_find(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_find_ex(st, val) SKM_sk_find_ex(X509_NAME_ENTRY, (st), (val)) -# define sk_X509_NAME_ENTRY_delete(st, i) SKM_sk_delete(X509_NAME_ENTRY, (st), (i)) -# define sk_X509_NAME_ENTRY_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_NAME_ENTRY, (st), (ptr)) -# define sk_X509_NAME_ENTRY_insert(st, val, i) SKM_sk_insert(X509_NAME_ENTRY, (st), (val), (i)) -# define sk_X509_NAME_ENTRY_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_NAME_ENTRY, (st), (cmp)) -# define sk_X509_NAME_ENTRY_dup(st) SKM_sk_dup(X509_NAME_ENTRY, st) -# define sk_X509_NAME_ENTRY_pop_free(st, free_func) SKM_sk_pop_free(X509_NAME_ENTRY, (st), (free_func)) -# define sk_X509_NAME_ENTRY_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_NAME_ENTRY, (st), (copy_func), (free_func)) -# define sk_X509_NAME_ENTRY_shift(st) SKM_sk_shift(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_pop(st) SKM_sk_pop(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_sort(st) SKM_sk_sort(X509_NAME_ENTRY, (st)) -# define sk_X509_NAME_ENTRY_is_sorted(st) SKM_sk_is_sorted(X509_NAME_ENTRY, (st)) -# define sk_X509_OBJECT_new(cmp) SKM_sk_new(X509_OBJECT, (cmp)) -# define sk_X509_OBJECT_new_null() SKM_sk_new_null(X509_OBJECT) -# define sk_X509_OBJECT_free(st) SKM_sk_free(X509_OBJECT, (st)) -# define sk_X509_OBJECT_num(st) SKM_sk_num(X509_OBJECT, (st)) -# define sk_X509_OBJECT_value(st, i) SKM_sk_value(X509_OBJECT, (st), (i)) -# define sk_X509_OBJECT_set(st, i, val) SKM_sk_set(X509_OBJECT, (st), (i), (val)) -# define sk_X509_OBJECT_zero(st) SKM_sk_zero(X509_OBJECT, (st)) -# define sk_X509_OBJECT_push(st, val) SKM_sk_push(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_unshift(st, val) SKM_sk_unshift(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_find(st, val) SKM_sk_find(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_find_ex(st, val) SKM_sk_find_ex(X509_OBJECT, (st), (val)) -# define sk_X509_OBJECT_delete(st, i) SKM_sk_delete(X509_OBJECT, (st), (i)) -# define sk_X509_OBJECT_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_OBJECT, (st), (ptr)) -# define sk_X509_OBJECT_insert(st, val, i) SKM_sk_insert(X509_OBJECT, (st), (val), (i)) -# define sk_X509_OBJECT_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_OBJECT, (st), (cmp)) -# define sk_X509_OBJECT_dup(st) SKM_sk_dup(X509_OBJECT, st) -# define sk_X509_OBJECT_pop_free(st, free_func) SKM_sk_pop_free(X509_OBJECT, (st), (free_func)) -# define sk_X509_OBJECT_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_OBJECT, (st), (copy_func), (free_func)) -# define sk_X509_OBJECT_shift(st) SKM_sk_shift(X509_OBJECT, (st)) -# define sk_X509_OBJECT_pop(st) SKM_sk_pop(X509_OBJECT, (st)) -# define sk_X509_OBJECT_sort(st) SKM_sk_sort(X509_OBJECT, (st)) -# define sk_X509_OBJECT_is_sorted(st) SKM_sk_is_sorted(X509_OBJECT, (st)) -# define sk_X509_POLICY_DATA_new(cmp) SKM_sk_new(X509_POLICY_DATA, (cmp)) -# define sk_X509_POLICY_DATA_new_null() SKM_sk_new_null(X509_POLICY_DATA) -# define sk_X509_POLICY_DATA_free(st) SKM_sk_free(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_num(st) SKM_sk_num(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_value(st, i) SKM_sk_value(X509_POLICY_DATA, (st), (i)) -# define sk_X509_POLICY_DATA_set(st, i, val) SKM_sk_set(X509_POLICY_DATA, (st), (i), (val)) -# define sk_X509_POLICY_DATA_zero(st) SKM_sk_zero(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_push(st, val) SKM_sk_push(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_unshift(st, val) SKM_sk_unshift(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_find(st, val) SKM_sk_find(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_DATA, (st), (val)) -# define sk_X509_POLICY_DATA_delete(st, i) SKM_sk_delete(X509_POLICY_DATA, (st), (i)) -# define sk_X509_POLICY_DATA_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_DATA, (st), (ptr)) -# define sk_X509_POLICY_DATA_insert(st, val, i) SKM_sk_insert(X509_POLICY_DATA, (st), (val), (i)) -# define sk_X509_POLICY_DATA_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_DATA, (st), (cmp)) -# define sk_X509_POLICY_DATA_dup(st) SKM_sk_dup(X509_POLICY_DATA, st) -# define sk_X509_POLICY_DATA_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_DATA, (st), (free_func)) -# define sk_X509_POLICY_DATA_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_DATA, (st), (copy_func), (free_func)) -# define sk_X509_POLICY_DATA_shift(st) SKM_sk_shift(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_pop(st) SKM_sk_pop(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_sort(st) SKM_sk_sort(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_DATA_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_DATA, (st)) -# define sk_X509_POLICY_NODE_new(cmp) SKM_sk_new(X509_POLICY_NODE, (cmp)) -# define sk_X509_POLICY_NODE_new_null() SKM_sk_new_null(X509_POLICY_NODE) -# define sk_X509_POLICY_NODE_free(st) SKM_sk_free(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_num(st) SKM_sk_num(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_value(st, i) SKM_sk_value(X509_POLICY_NODE, (st), (i)) -# define sk_X509_POLICY_NODE_set(st, i, val) SKM_sk_set(X509_POLICY_NODE, (st), (i), (val)) -# define sk_X509_POLICY_NODE_zero(st) SKM_sk_zero(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_push(st, val) SKM_sk_push(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_unshift(st, val) SKM_sk_unshift(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_find(st, val) SKM_sk_find(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_find_ex(st, val) SKM_sk_find_ex(X509_POLICY_NODE, (st), (val)) -# define sk_X509_POLICY_NODE_delete(st, i) SKM_sk_delete(X509_POLICY_NODE, (st), (i)) -# define sk_X509_POLICY_NODE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_POLICY_NODE, (st), (ptr)) -# define sk_X509_POLICY_NODE_insert(st, val, i) SKM_sk_insert(X509_POLICY_NODE, (st), (val), (i)) -# define sk_X509_POLICY_NODE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_POLICY_NODE, (st), (cmp)) -# define sk_X509_POLICY_NODE_dup(st) SKM_sk_dup(X509_POLICY_NODE, st) -# define sk_X509_POLICY_NODE_pop_free(st, free_func) SKM_sk_pop_free(X509_POLICY_NODE, (st), (free_func)) -# define sk_X509_POLICY_NODE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_POLICY_NODE, (st), (copy_func), (free_func)) -# define sk_X509_POLICY_NODE_shift(st) SKM_sk_shift(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_pop(st) SKM_sk_pop(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_sort(st) SKM_sk_sort(X509_POLICY_NODE, (st)) -# define sk_X509_POLICY_NODE_is_sorted(st) SKM_sk_is_sorted(X509_POLICY_NODE, (st)) -# define sk_X509_PURPOSE_new(cmp) SKM_sk_new(X509_PURPOSE, (cmp)) -# define sk_X509_PURPOSE_new_null() SKM_sk_new_null(X509_PURPOSE) -# define sk_X509_PURPOSE_free(st) SKM_sk_free(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_num(st) SKM_sk_num(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_value(st, i) SKM_sk_value(X509_PURPOSE, (st), (i)) -# define sk_X509_PURPOSE_set(st, i, val) SKM_sk_set(X509_PURPOSE, (st), (i), (val)) -# define sk_X509_PURPOSE_zero(st) SKM_sk_zero(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_push(st, val) SKM_sk_push(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_unshift(st, val) SKM_sk_unshift(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_find(st, val) SKM_sk_find(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_find_ex(st, val) SKM_sk_find_ex(X509_PURPOSE, (st), (val)) -# define sk_X509_PURPOSE_delete(st, i) SKM_sk_delete(X509_PURPOSE, (st), (i)) -# define sk_X509_PURPOSE_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_PURPOSE, (st), (ptr)) -# define sk_X509_PURPOSE_insert(st, val, i) SKM_sk_insert(X509_PURPOSE, (st), (val), (i)) -# define sk_X509_PURPOSE_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_PURPOSE, (st), (cmp)) -# define sk_X509_PURPOSE_dup(st) SKM_sk_dup(X509_PURPOSE, st) -# define sk_X509_PURPOSE_pop_free(st, free_func) SKM_sk_pop_free(X509_PURPOSE, (st), (free_func)) -# define sk_X509_PURPOSE_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_PURPOSE, (st), (copy_func), (free_func)) -# define sk_X509_PURPOSE_shift(st) SKM_sk_shift(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_pop(st) SKM_sk_pop(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_sort(st) SKM_sk_sort(X509_PURPOSE, (st)) -# define sk_X509_PURPOSE_is_sorted(st) SKM_sk_is_sorted(X509_PURPOSE, (st)) -# define sk_X509_REVOKED_new(cmp) SKM_sk_new(X509_REVOKED, (cmp)) -# define sk_X509_REVOKED_new_null() SKM_sk_new_null(X509_REVOKED) -# define sk_X509_REVOKED_free(st) SKM_sk_free(X509_REVOKED, (st)) -# define sk_X509_REVOKED_num(st) SKM_sk_num(X509_REVOKED, (st)) -# define sk_X509_REVOKED_value(st, i) SKM_sk_value(X509_REVOKED, (st), (i)) -# define sk_X509_REVOKED_set(st, i, val) SKM_sk_set(X509_REVOKED, (st), (i), (val)) -# define sk_X509_REVOKED_zero(st) SKM_sk_zero(X509_REVOKED, (st)) -# define sk_X509_REVOKED_push(st, val) SKM_sk_push(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_unshift(st, val) SKM_sk_unshift(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_find(st, val) SKM_sk_find(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_find_ex(st, val) SKM_sk_find_ex(X509_REVOKED, (st), (val)) -# define sk_X509_REVOKED_delete(st, i) SKM_sk_delete(X509_REVOKED, (st), (i)) -# define sk_X509_REVOKED_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_REVOKED, (st), (ptr)) -# define sk_X509_REVOKED_insert(st, val, i) SKM_sk_insert(X509_REVOKED, (st), (val), (i)) -# define sk_X509_REVOKED_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_REVOKED, (st), (cmp)) -# define sk_X509_REVOKED_dup(st) SKM_sk_dup(X509_REVOKED, st) -# define sk_X509_REVOKED_pop_free(st, free_func) SKM_sk_pop_free(X509_REVOKED, (st), (free_func)) -# define sk_X509_REVOKED_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_REVOKED, (st), (copy_func), (free_func)) -# define sk_X509_REVOKED_shift(st) SKM_sk_shift(X509_REVOKED, (st)) -# define sk_X509_REVOKED_pop(st) SKM_sk_pop(X509_REVOKED, (st)) -# define sk_X509_REVOKED_sort(st) SKM_sk_sort(X509_REVOKED, (st)) -# define sk_X509_REVOKED_is_sorted(st) SKM_sk_is_sorted(X509_REVOKED, (st)) -# define sk_X509_TRUST_new(cmp) SKM_sk_new(X509_TRUST, (cmp)) -# define sk_X509_TRUST_new_null() SKM_sk_new_null(X509_TRUST) -# define sk_X509_TRUST_free(st) SKM_sk_free(X509_TRUST, (st)) -# define sk_X509_TRUST_num(st) SKM_sk_num(X509_TRUST, (st)) -# define sk_X509_TRUST_value(st, i) SKM_sk_value(X509_TRUST, (st), (i)) -# define sk_X509_TRUST_set(st, i, val) SKM_sk_set(X509_TRUST, (st), (i), (val)) -# define sk_X509_TRUST_zero(st) SKM_sk_zero(X509_TRUST, (st)) -# define sk_X509_TRUST_push(st, val) SKM_sk_push(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_unshift(st, val) SKM_sk_unshift(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_find(st, val) SKM_sk_find(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_find_ex(st, val) SKM_sk_find_ex(X509_TRUST, (st), (val)) -# define sk_X509_TRUST_delete(st, i) SKM_sk_delete(X509_TRUST, (st), (i)) -# define sk_X509_TRUST_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_TRUST, (st), (ptr)) -# define sk_X509_TRUST_insert(st, val, i) SKM_sk_insert(X509_TRUST, (st), (val), (i)) -# define sk_X509_TRUST_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_TRUST, (st), (cmp)) -# define sk_X509_TRUST_dup(st) SKM_sk_dup(X509_TRUST, st) -# define sk_X509_TRUST_pop_free(st, free_func) SKM_sk_pop_free(X509_TRUST, (st), (free_func)) -# define sk_X509_TRUST_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_TRUST, (st), (copy_func), (free_func)) -# define sk_X509_TRUST_shift(st) SKM_sk_shift(X509_TRUST, (st)) -# define sk_X509_TRUST_pop(st) SKM_sk_pop(X509_TRUST, (st)) -# define sk_X509_TRUST_sort(st) SKM_sk_sort(X509_TRUST, (st)) -# define sk_X509_TRUST_is_sorted(st) SKM_sk_is_sorted(X509_TRUST, (st)) -# define sk_X509_VERIFY_PARAM_new(cmp) SKM_sk_new(X509_VERIFY_PARAM, (cmp)) -# define sk_X509_VERIFY_PARAM_new_null() SKM_sk_new_null(X509_VERIFY_PARAM) -# define sk_X509_VERIFY_PARAM_free(st) SKM_sk_free(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_num(st) SKM_sk_num(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_value(st, i) SKM_sk_value(X509_VERIFY_PARAM, (st), (i)) -# define sk_X509_VERIFY_PARAM_set(st, i, val) SKM_sk_set(X509_VERIFY_PARAM, (st), (i), (val)) -# define sk_X509_VERIFY_PARAM_zero(st) SKM_sk_zero(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_push(st, val) SKM_sk_push(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_unshift(st, val) SKM_sk_unshift(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_find(st, val) SKM_sk_find(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_find_ex(st, val) SKM_sk_find_ex(X509_VERIFY_PARAM, (st), (val)) -# define sk_X509_VERIFY_PARAM_delete(st, i) SKM_sk_delete(X509_VERIFY_PARAM, (st), (i)) -# define sk_X509_VERIFY_PARAM_delete_ptr(st, ptr) SKM_sk_delete_ptr(X509_VERIFY_PARAM, (st), (ptr)) -# define sk_X509_VERIFY_PARAM_insert(st, val, i) SKM_sk_insert(X509_VERIFY_PARAM, (st), (val), (i)) -# define sk_X509_VERIFY_PARAM_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(X509_VERIFY_PARAM, (st), (cmp)) -# define sk_X509_VERIFY_PARAM_dup(st) SKM_sk_dup(X509_VERIFY_PARAM, st) -# define sk_X509_VERIFY_PARAM_pop_free(st, free_func) SKM_sk_pop_free(X509_VERIFY_PARAM, (st), (free_func)) -# define sk_X509_VERIFY_PARAM_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(X509_VERIFY_PARAM, (st), (copy_func), (free_func)) -# define sk_X509_VERIFY_PARAM_shift(st) SKM_sk_shift(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_pop(st) SKM_sk_pop(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_sort(st) SKM_sk_sort(X509_VERIFY_PARAM, (st)) -# define sk_X509_VERIFY_PARAM_is_sorted(st) SKM_sk_is_sorted(X509_VERIFY_PARAM, (st)) -# define sk_nid_triple_new(cmp) SKM_sk_new(nid_triple, (cmp)) -# define sk_nid_triple_new_null() SKM_sk_new_null(nid_triple) -# define sk_nid_triple_free(st) SKM_sk_free(nid_triple, (st)) -# define sk_nid_triple_num(st) SKM_sk_num(nid_triple, (st)) -# define sk_nid_triple_value(st, i) SKM_sk_value(nid_triple, (st), (i)) -# define sk_nid_triple_set(st, i, val) SKM_sk_set(nid_triple, (st), (i), (val)) -# define sk_nid_triple_zero(st) SKM_sk_zero(nid_triple, (st)) -# define sk_nid_triple_push(st, val) SKM_sk_push(nid_triple, (st), (val)) -# define sk_nid_triple_unshift(st, val) SKM_sk_unshift(nid_triple, (st), (val)) -# define sk_nid_triple_find(st, val) SKM_sk_find(nid_triple, (st), (val)) -# define sk_nid_triple_find_ex(st, val) SKM_sk_find_ex(nid_triple, (st), (val)) -# define sk_nid_triple_delete(st, i) SKM_sk_delete(nid_triple, (st), (i)) -# define sk_nid_triple_delete_ptr(st, ptr) SKM_sk_delete_ptr(nid_triple, (st), (ptr)) -# define sk_nid_triple_insert(st, val, i) SKM_sk_insert(nid_triple, (st), (val), (i)) -# define sk_nid_triple_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(nid_triple, (st), (cmp)) -# define sk_nid_triple_dup(st) SKM_sk_dup(nid_triple, st) -# define sk_nid_triple_pop_free(st, free_func) SKM_sk_pop_free(nid_triple, (st), (free_func)) -# define sk_nid_triple_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(nid_triple, (st), (copy_func), (free_func)) -# define sk_nid_triple_shift(st) SKM_sk_shift(nid_triple, (st)) -# define sk_nid_triple_pop(st) SKM_sk_pop(nid_triple, (st)) -# define sk_nid_triple_sort(st) SKM_sk_sort(nid_triple, (st)) -# define sk_nid_triple_is_sorted(st) SKM_sk_is_sorted(nid_triple, (st)) -# define sk_void_new(cmp) SKM_sk_new(void, (cmp)) -# define sk_void_new_null() SKM_sk_new_null(void) -# define sk_void_free(st) SKM_sk_free(void, (st)) -# define sk_void_num(st) SKM_sk_num(void, (st)) -# define sk_void_value(st, i) SKM_sk_value(void, (st), (i)) -# define sk_void_set(st, i, val) SKM_sk_set(void, (st), (i), (val)) -# define sk_void_zero(st) SKM_sk_zero(void, (st)) -# define sk_void_push(st, val) SKM_sk_push(void, (st), (val)) -# define sk_void_unshift(st, val) SKM_sk_unshift(void, (st), (val)) -# define sk_void_find(st, val) SKM_sk_find(void, (st), (val)) -# define sk_void_find_ex(st, val) SKM_sk_find_ex(void, (st), (val)) -# define sk_void_delete(st, i) SKM_sk_delete(void, (st), (i)) -# define sk_void_delete_ptr(st, ptr) SKM_sk_delete_ptr(void, (st), (ptr)) -# define sk_void_insert(st, val, i) SKM_sk_insert(void, (st), (val), (i)) -# define sk_void_set_cmp_func(st, cmp) SKM_sk_set_cmp_func(void, (st), (cmp)) -# define sk_void_dup(st) SKM_sk_dup(void, st) -# define sk_void_pop_free(st, free_func) SKM_sk_pop_free(void, (st), (free_func)) -# define sk_void_deep_copy(st, copy_func, free_func) SKM_sk_deep_copy(void, (st), (copy_func), (free_func)) -# define sk_void_shift(st) SKM_sk_shift(void, (st)) -# define sk_void_pop(st) SKM_sk_pop(void, (st)) -# define sk_void_sort(st) SKM_sk_sort(void, (st)) -# define sk_void_is_sorted(st) SKM_sk_is_sorted(void, (st)) -# define sk_OPENSSL_STRING_new(cmp) ((STACK_OF(OPENSSL_STRING) *)sk_new(CHECKED_SK_CMP_FUNC(char, cmp))) -# define sk_OPENSSL_STRING_new_null() ((STACK_OF(OPENSSL_STRING) *)sk_new_null()) -# define sk_OPENSSL_STRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_value(st, i) ((OPENSSL_STRING)sk_value(CHECKED_STACK_OF(OPENSSL_STRING, st), i)) -# define sk_OPENSSL_STRING_num(st) SKM_sk_num(OPENSSL_STRING, st) -# define sk_OPENSSL_STRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_FREE_FUNC(char, free_func)) -# define sk_OPENSSL_STRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_STRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_COPY_FUNC(char, copy_func), CHECKED_SK_FREE_FUNC(char, free_func))) -# define sk_OPENSSL_STRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val), i) -# define sk_OPENSSL_STRING_free(st) SKM_sk_free(OPENSSL_STRING, st) -# define sk_OPENSSL_STRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_STRING, st), i, CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_zero(st) SKM_sk_zero(OPENSSL_STRING, (st)) -# define sk_OPENSSL_STRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_STRING), st), CHECKED_CONST_PTR_OF(char, val)) -# define sk_OPENSSL_STRING_delete(st, i) SKM_sk_delete(OPENSSL_STRING, (st), (i)) -# define sk_OPENSSL_STRING_delete_ptr(st, ptr) (OPENSSL_STRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_PTR_OF(char, ptr)) -# define sk_OPENSSL_STRING_set_cmp_func(st, cmp) \ - ((int (*)(const char * const *,const char * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_STRING, st), CHECKED_SK_CMP_FUNC(char, cmp))) -# define sk_OPENSSL_STRING_dup(st) SKM_sk_dup(OPENSSL_STRING, st) -# define sk_OPENSSL_STRING_shift(st) SKM_sk_shift(OPENSSL_STRING, (st)) -# define sk_OPENSSL_STRING_pop(st) (char *)sk_pop(CHECKED_STACK_OF(OPENSSL_STRING, st)) -# define sk_OPENSSL_STRING_sort(st) SKM_sk_sort(OPENSSL_STRING, (st)) -# define sk_OPENSSL_STRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_STRING, (st)) -# define sk_OPENSSL_BLOCK_new(cmp) ((STACK_OF(OPENSSL_BLOCK) *)sk_new(CHECKED_SK_CMP_FUNC(void, cmp))) -# define sk_OPENSSL_BLOCK_new_null() ((STACK_OF(OPENSSL_BLOCK) *)sk_new_null()) -# define sk_OPENSSL_BLOCK_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_value(st, i) ((OPENSSL_BLOCK)sk_value(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i)) -# define sk_OPENSSL_BLOCK_num(st) SKM_sk_num(OPENSSL_BLOCK, st) -# define sk_OPENSSL_BLOCK_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_FREE_FUNC(void, free_func)) -# define sk_OPENSSL_BLOCK_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_BLOCK) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_COPY_FUNC(void, copy_func), CHECKED_SK_FREE_FUNC(void, free_func))) -# define sk_OPENSSL_BLOCK_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val), i) -# define sk_OPENSSL_BLOCK_free(st) SKM_sk_free(OPENSSL_BLOCK, st) -# define sk_OPENSSL_BLOCK_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_BLOCK, st), i, CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_zero(st) SKM_sk_zero(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_BLOCK_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_BLOCK), st), CHECKED_CONST_PTR_OF(void, val)) -# define sk_OPENSSL_BLOCK_delete(st, i) SKM_sk_delete(OPENSSL_BLOCK, (st), (i)) -# define sk_OPENSSL_BLOCK_delete_ptr(st, ptr) (OPENSSL_BLOCK *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_PTR_OF(void, ptr)) -# define sk_OPENSSL_BLOCK_set_cmp_func(st, cmp) \ - ((int (*)(const void * const *,const void * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_BLOCK, st), CHECKED_SK_CMP_FUNC(void, cmp))) -# define sk_OPENSSL_BLOCK_dup(st) SKM_sk_dup(OPENSSL_BLOCK, st) -# define sk_OPENSSL_BLOCK_shift(st) SKM_sk_shift(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_BLOCK_pop(st) (void *)sk_pop(CHECKED_STACK_OF(OPENSSL_BLOCK, st)) -# define sk_OPENSSL_BLOCK_sort(st) SKM_sk_sort(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_BLOCK_is_sorted(st) SKM_sk_is_sorted(OPENSSL_BLOCK, (st)) -# define sk_OPENSSL_PSTRING_new(cmp) ((STACK_OF(OPENSSL_PSTRING) *)sk_new(CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) -# define sk_OPENSSL_PSTRING_new_null() ((STACK_OF(OPENSSL_PSTRING) *)sk_new_null()) -# define sk_OPENSSL_PSTRING_push(st, val) sk_push(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_find(st, val) sk_find(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_value(st, i) ((OPENSSL_PSTRING)sk_value(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i)) -# define sk_OPENSSL_PSTRING_num(st) SKM_sk_num(OPENSSL_PSTRING, st) -# define sk_OPENSSL_PSTRING_pop_free(st, free_func) sk_pop_free(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func)) -# define sk_OPENSSL_PSTRING_deep_copy(st, copy_func, free_func) ((STACK_OF(OPENSSL_PSTRING) *)sk_deep_copy(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_COPY_FUNC(OPENSSL_STRING, copy_func), CHECKED_SK_FREE_FUNC(OPENSSL_STRING, free_func))) -# define sk_OPENSSL_PSTRING_insert(st, val, i) sk_insert(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val), i) -# define sk_OPENSSL_PSTRING_free(st) SKM_sk_free(OPENSSL_PSTRING, st) -# define sk_OPENSSL_PSTRING_set(st, i, val) sk_set(CHECKED_STACK_OF(OPENSSL_PSTRING, st), i, CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_zero(st) SKM_sk_zero(OPENSSL_PSTRING, (st)) -# define sk_OPENSSL_PSTRING_unshift(st, val) sk_unshift(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_find_ex(st, val) sk_find_ex((_STACK *)CHECKED_CONST_PTR_OF(STACK_OF(OPENSSL_PSTRING), st), CHECKED_CONST_PTR_OF(OPENSSL_STRING, val)) -# define sk_OPENSSL_PSTRING_delete(st, i) SKM_sk_delete(OPENSSL_PSTRING, (st), (i)) -# define sk_OPENSSL_PSTRING_delete_ptr(st, ptr) (OPENSSL_PSTRING *)sk_delete_ptr(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_PTR_OF(OPENSSL_STRING, ptr)) -# define sk_OPENSSL_PSTRING_set_cmp_func(st, cmp) \ - ((int (*)(const OPENSSL_STRING * const *,const OPENSSL_STRING * const *)) \ - sk_set_cmp_func(CHECKED_STACK_OF(OPENSSL_PSTRING, st), CHECKED_SK_CMP_FUNC(OPENSSL_STRING, cmp))) -# define sk_OPENSSL_PSTRING_dup(st) SKM_sk_dup(OPENSSL_PSTRING, st) -# define sk_OPENSSL_PSTRING_shift(st) SKM_sk_shift(OPENSSL_PSTRING, (st)) -# define sk_OPENSSL_PSTRING_pop(st) (OPENSSL_STRING *)sk_pop(CHECKED_STACK_OF(OPENSSL_PSTRING, st)) -# define sk_OPENSSL_PSTRING_sort(st) SKM_sk_sort(OPENSSL_PSTRING, (st)) -# define sk_OPENSSL_PSTRING_is_sorted(st) SKM_sk_is_sorted(OPENSSL_PSTRING, (st)) -# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ACCESS_DESCRIPTION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ACCESS_DESCRIPTION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ACCESS_DESCRIPTION(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ACCESS_DESCRIPTION, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ACCESS_DESCRIPTION(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ACCESS_DESCRIPTION, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_INTEGER(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_INTEGER, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_INTEGER(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_INTEGER, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_INTEGER(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_INTEGER, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_INTEGER(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_INTEGER, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_OBJECT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_OBJECT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_OBJECT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_OBJECT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_OBJECT(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_OBJECT, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_OBJECT(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_OBJECT, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_TYPE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_TYPE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_TYPE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_TYPE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_TYPE(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_TYPE, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_TYPE(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_TYPE, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ASN1_UTF8STRING, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ASN1_UTF8STRING(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ASN1_UTF8STRING, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ASN1_UTF8STRING(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ASN1_UTF8STRING, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ASN1_UTF8STRING(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ASN1_UTF8STRING, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_DIST_POINT(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(DIST_POINT, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_DIST_POINT(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(DIST_POINT, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_DIST_POINT(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(DIST_POINT, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_DIST_POINT(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(DIST_POINT, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_ESS_CERT_ID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(ESS_CERT_ID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_ESS_CERT_ID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(ESS_CERT_ID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_ESS_CERT_ID(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(ESS_CERT_ID, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_ESS_CERT_ID(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(ESS_CERT_ID, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_EVP_MD(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(EVP_MD, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_EVP_MD(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(EVP_MD, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_EVP_MD(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(EVP_MD, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_EVP_MD(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(EVP_MD, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_GENERAL_NAME(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(GENERAL_NAME, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_GENERAL_NAME(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(GENERAL_NAME, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_GENERAL_NAME(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(GENERAL_NAME, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_GENERAL_NAME(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(GENERAL_NAME, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_OCSP_ONEREQ(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(OCSP_ONEREQ, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_OCSP_ONEREQ(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(OCSP_ONEREQ, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_OCSP_ONEREQ(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(OCSP_ONEREQ, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_OCSP_ONEREQ(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(OCSP_ONEREQ, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(OCSP_SINGLERESP, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_OCSP_SINGLERESP(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(OCSP_SINGLERESP, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_OCSP_SINGLERESP(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(OCSP_SINGLERESP, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_OCSP_SINGLERESP(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(OCSP_SINGLERESP, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS12_SAFEBAG, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS12_SAFEBAG(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS12_SAFEBAG, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS12_SAFEBAG(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS12_SAFEBAG, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS12_SAFEBAG(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS12_SAFEBAG, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS7(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS7, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS7(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS7, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS7(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS7, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS7(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS7, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS7_RECIP_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS7_RECIP_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS7_RECIP_INFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS7_RECIP_INFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS7_RECIP_INFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS7_RECIP_INFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(PKCS7_SIGNER_INFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(PKCS7_SIGNER_INFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_PKCS7_SIGNER_INFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(PKCS7_SIGNER_INFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_PKCS7_SIGNER_INFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(PKCS7_SIGNER_INFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_POLICYINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(POLICYINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_POLICYINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(POLICYINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_POLICYINFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(POLICYINFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_POLICYINFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(POLICYINFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_POLICYQUALINFO(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(POLICYQUALINFO, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_POLICYQUALINFO(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(POLICYQUALINFO, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_POLICYQUALINFO(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(POLICYQUALINFO, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_POLICYQUALINFO(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(POLICYQUALINFO, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_SXNETID(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(SXNETID, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_SXNETID(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(SXNETID, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_SXNETID(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(SXNETID, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_SXNETID(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(SXNETID, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_ALGOR(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_ALGOR, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_ALGOR(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_ALGOR, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_ALGOR(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_ALGOR, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_ALGOR(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_ALGOR, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_ATTRIBUTE, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_ATTRIBUTE(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_ATTRIBUTE, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_ATTRIBUTE(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_ATTRIBUTE, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_ATTRIBUTE(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_ATTRIBUTE, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_CRL(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_CRL, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_CRL(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_CRL, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_CRL(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_CRL, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_CRL(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_CRL, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_EXTENSION(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_EXTENSION, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_EXTENSION(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_EXTENSION, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_EXTENSION(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_EXTENSION, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_EXTENSION(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_EXTENSION, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_NAME_ENTRY, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_NAME_ENTRY(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_NAME_ENTRY, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_NAME_ENTRY(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_NAME_ENTRY, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_NAME_ENTRY(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_NAME_ENTRY, (buf), (len), (d2i_func), (free_func)) -# define d2i_ASN1_SET_OF_X509_REVOKED(st, pp, length, d2i_func, free_func, ex_tag, ex_class) \ - SKM_ASN1_SET_OF_d2i(X509_REVOKED, (st), (pp), (length), (d2i_func), (free_func), (ex_tag), (ex_class)) -# define i2d_ASN1_SET_OF_X509_REVOKED(st, pp, i2d_func, ex_tag, ex_class, is_set) \ - SKM_ASN1_SET_OF_i2d(X509_REVOKED, (st), (pp), (i2d_func), (ex_tag), (ex_class), (is_set)) -# define ASN1_seq_pack_X509_REVOKED(st, i2d_func, buf, len) \ - SKM_ASN1_seq_pack(X509_REVOKED, (st), (i2d_func), (buf), (len)) -# define ASN1_seq_unpack_X509_REVOKED(buf, len, d2i_func, free_func) \ - SKM_ASN1_seq_unpack(X509_REVOKED, (buf), (len), (d2i_func), (free_func)) -# define PKCS12_decrypt_d2i_PKCS12_SAFEBAG(algor, d2i_func, free_func, pass, passlen, oct, seq) \ - SKM_PKCS12_decrypt_d2i(PKCS12_SAFEBAG, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) -# define PKCS12_decrypt_d2i_PKCS7(algor, d2i_func, free_func, pass, passlen, oct, seq) \ - SKM_PKCS12_decrypt_d2i(PKCS7, (algor), (d2i_func), (free_func), (pass), (passlen), (oct), (seq)) -# define lh_ADDED_OBJ_new() LHM_lh_new(ADDED_OBJ,added_obj) -# define lh_ADDED_OBJ_insert(lh,inst) LHM_lh_insert(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_retrieve(lh,inst) LHM_lh_retrieve(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_delete(lh,inst) LHM_lh_delete(ADDED_OBJ,lh,inst) -# define lh_ADDED_OBJ_doall(lh,fn) LHM_lh_doall(ADDED_OBJ,lh,fn) -# define lh_ADDED_OBJ_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ADDED_OBJ,lh,fn,arg_type,arg) -# define lh_ADDED_OBJ_error(lh) LHM_lh_error(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_num_items(lh) LHM_lh_num_items(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_down_load(lh) LHM_lh_down_load(ADDED_OBJ,lh) -# define lh_ADDED_OBJ_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_stats_bio(lh,out) \ - LHM_lh_stats_bio(ADDED_OBJ,lh,out) -# define lh_ADDED_OBJ_free(lh) LHM_lh_free(ADDED_OBJ,lh) -# define lh_APP_INFO_new() LHM_lh_new(APP_INFO,app_info) -# define lh_APP_INFO_insert(lh,inst) LHM_lh_insert(APP_INFO,lh,inst) -# define lh_APP_INFO_retrieve(lh,inst) LHM_lh_retrieve(APP_INFO,lh,inst) -# define lh_APP_INFO_delete(lh,inst) LHM_lh_delete(APP_INFO,lh,inst) -# define lh_APP_INFO_doall(lh,fn) LHM_lh_doall(APP_INFO,lh,fn) -# define lh_APP_INFO_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(APP_INFO,lh,fn,arg_type,arg) -# define lh_APP_INFO_error(lh) LHM_lh_error(APP_INFO,lh) -# define lh_APP_INFO_num_items(lh) LHM_lh_num_items(APP_INFO,lh) -# define lh_APP_INFO_down_load(lh) LHM_lh_down_load(APP_INFO,lh) -# define lh_APP_INFO_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_stats_bio(lh,out) \ - LHM_lh_stats_bio(APP_INFO,lh,out) -# define lh_APP_INFO_free(lh) LHM_lh_free(APP_INFO,lh) -# define lh_CONF_VALUE_new() LHM_lh_new(CONF_VALUE,conf_value) -# define lh_CONF_VALUE_insert(lh,inst) LHM_lh_insert(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_retrieve(lh,inst) LHM_lh_retrieve(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_delete(lh,inst) LHM_lh_delete(CONF_VALUE,lh,inst) -# define lh_CONF_VALUE_doall(lh,fn) LHM_lh_doall(CONF_VALUE,lh,fn) -# define lh_CONF_VALUE_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(CONF_VALUE,lh,fn,arg_type,arg) -# define lh_CONF_VALUE_error(lh) LHM_lh_error(CONF_VALUE,lh) -# define lh_CONF_VALUE_num_items(lh) LHM_lh_num_items(CONF_VALUE,lh) -# define lh_CONF_VALUE_down_load(lh) LHM_lh_down_load(CONF_VALUE,lh) -# define lh_CONF_VALUE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_stats_bio(lh,out) \ - LHM_lh_stats_bio(CONF_VALUE,lh,out) -# define lh_CONF_VALUE_free(lh) LHM_lh_free(CONF_VALUE,lh) -# define lh_ENGINE_PILE_new() LHM_lh_new(ENGINE_PILE,engine_pile) -# define lh_ENGINE_PILE_insert(lh,inst) LHM_lh_insert(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_retrieve(lh,inst) LHM_lh_retrieve(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_delete(lh,inst) LHM_lh_delete(ENGINE_PILE,lh,inst) -# define lh_ENGINE_PILE_doall(lh,fn) LHM_lh_doall(ENGINE_PILE,lh,fn) -# define lh_ENGINE_PILE_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ENGINE_PILE,lh,fn,arg_type,arg) -# define lh_ENGINE_PILE_error(lh) LHM_lh_error(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_num_items(lh) LHM_lh_num_items(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_down_load(lh) LHM_lh_down_load(ENGINE_PILE,lh) -# define lh_ENGINE_PILE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_stats_bio(lh,out) \ - LHM_lh_stats_bio(ENGINE_PILE,lh,out) -# define lh_ENGINE_PILE_free(lh) LHM_lh_free(ENGINE_PILE,lh) -# define lh_ERR_STATE_new() LHM_lh_new(ERR_STATE,err_state) -# define lh_ERR_STATE_insert(lh,inst) LHM_lh_insert(ERR_STATE,lh,inst) -# define lh_ERR_STATE_retrieve(lh,inst) LHM_lh_retrieve(ERR_STATE,lh,inst) -# define lh_ERR_STATE_delete(lh,inst) LHM_lh_delete(ERR_STATE,lh,inst) -# define lh_ERR_STATE_doall(lh,fn) LHM_lh_doall(ERR_STATE,lh,fn) -# define lh_ERR_STATE_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ERR_STATE,lh,fn,arg_type,arg) -# define lh_ERR_STATE_error(lh) LHM_lh_error(ERR_STATE,lh) -# define lh_ERR_STATE_num_items(lh) LHM_lh_num_items(ERR_STATE,lh) -# define lh_ERR_STATE_down_load(lh) LHM_lh_down_load(ERR_STATE,lh) -# define lh_ERR_STATE_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_stats_bio(lh,out) \ - LHM_lh_stats_bio(ERR_STATE,lh,out) -# define lh_ERR_STATE_free(lh) LHM_lh_free(ERR_STATE,lh) -# define lh_ERR_STRING_DATA_new() LHM_lh_new(ERR_STRING_DATA,err_string_data) -# define lh_ERR_STRING_DATA_insert(lh,inst) LHM_lh_insert(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_retrieve(lh,inst) LHM_lh_retrieve(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_delete(lh,inst) LHM_lh_delete(ERR_STRING_DATA,lh,inst) -# define lh_ERR_STRING_DATA_doall(lh,fn) LHM_lh_doall(ERR_STRING_DATA,lh,fn) -# define lh_ERR_STRING_DATA_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(ERR_STRING_DATA,lh,fn,arg_type,arg) -# define lh_ERR_STRING_DATA_error(lh) LHM_lh_error(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_num_items(lh) LHM_lh_num_items(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_down_load(lh) LHM_lh_down_load(ERR_STRING_DATA,lh) -# define lh_ERR_STRING_DATA_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_stats_bio(lh,out) \ - LHM_lh_stats_bio(ERR_STRING_DATA,lh,out) -# define lh_ERR_STRING_DATA_free(lh) LHM_lh_free(ERR_STRING_DATA,lh) -# define lh_EX_CLASS_ITEM_new() LHM_lh_new(EX_CLASS_ITEM,ex_class_item) -# define lh_EX_CLASS_ITEM_insert(lh,inst) LHM_lh_insert(EX_CLASS_ITEM,lh,inst) -# define lh_EX_CLASS_ITEM_retrieve(lh,inst) LHM_lh_retrieve(EX_CLASS_ITEM,lh,inst) -# define lh_EX_CLASS_ITEM_delete(lh,inst) LHM_lh_delete(EX_CLASS_ITEM,lh,inst) -# define lh_EX_CLASS_ITEM_doall(lh,fn) LHM_lh_doall(EX_CLASS_ITEM,lh,fn) -# define lh_EX_CLASS_ITEM_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(EX_CLASS_ITEM,lh,fn,arg_type,arg) -# define lh_EX_CLASS_ITEM_error(lh) LHM_lh_error(EX_CLASS_ITEM,lh) -# define lh_EX_CLASS_ITEM_num_items(lh) LHM_lh_num_items(EX_CLASS_ITEM,lh) -# define lh_EX_CLASS_ITEM_down_load(lh) LHM_lh_down_load(EX_CLASS_ITEM,lh) -# define lh_EX_CLASS_ITEM_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(EX_CLASS_ITEM,lh,out) -# define lh_EX_CLASS_ITEM_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(EX_CLASS_ITEM,lh,out) -# define lh_EX_CLASS_ITEM_stats_bio(lh,out) \ - LHM_lh_stats_bio(EX_CLASS_ITEM,lh,out) -# define lh_EX_CLASS_ITEM_free(lh) LHM_lh_free(EX_CLASS_ITEM,lh) -# define lh_FUNCTION_new() LHM_lh_new(FUNCTION,function) -# define lh_FUNCTION_insert(lh,inst) LHM_lh_insert(FUNCTION,lh,inst) -# define lh_FUNCTION_retrieve(lh,inst) LHM_lh_retrieve(FUNCTION,lh,inst) -# define lh_FUNCTION_delete(lh,inst) LHM_lh_delete(FUNCTION,lh,inst) -# define lh_FUNCTION_doall(lh,fn) LHM_lh_doall(FUNCTION,lh,fn) -# define lh_FUNCTION_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(FUNCTION,lh,fn,arg_type,arg) -# define lh_FUNCTION_error(lh) LHM_lh_error(FUNCTION,lh) -# define lh_FUNCTION_num_items(lh) LHM_lh_num_items(FUNCTION,lh) -# define lh_FUNCTION_down_load(lh) LHM_lh_down_load(FUNCTION,lh) -# define lh_FUNCTION_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_stats_bio(lh,out) \ - LHM_lh_stats_bio(FUNCTION,lh,out) -# define lh_FUNCTION_free(lh) LHM_lh_free(FUNCTION,lh) -# define lh_MEM_new() LHM_lh_new(MEM,mem) -# define lh_MEM_insert(lh,inst) LHM_lh_insert(MEM,lh,inst) -# define lh_MEM_retrieve(lh,inst) LHM_lh_retrieve(MEM,lh,inst) -# define lh_MEM_delete(lh,inst) LHM_lh_delete(MEM,lh,inst) -# define lh_MEM_doall(lh,fn) LHM_lh_doall(MEM,lh,fn) -# define lh_MEM_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(MEM,lh,fn,arg_type,arg) -# define lh_MEM_error(lh) LHM_lh_error(MEM,lh) -# define lh_MEM_num_items(lh) LHM_lh_num_items(MEM,lh) -# define lh_MEM_down_load(lh) LHM_lh_down_load(MEM,lh) -# define lh_MEM_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(MEM,lh,out) -# define lh_MEM_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(MEM,lh,out) -# define lh_MEM_stats_bio(lh,out) \ - LHM_lh_stats_bio(MEM,lh,out) -# define lh_MEM_free(lh) LHM_lh_free(MEM,lh) -# define lh_OBJ_NAME_new() LHM_lh_new(OBJ_NAME,obj_name) -# define lh_OBJ_NAME_insert(lh,inst) LHM_lh_insert(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_retrieve(lh,inst) LHM_lh_retrieve(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_delete(lh,inst) LHM_lh_delete(OBJ_NAME,lh,inst) -# define lh_OBJ_NAME_doall(lh,fn) LHM_lh_doall(OBJ_NAME,lh,fn) -# define lh_OBJ_NAME_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(OBJ_NAME,lh,fn,arg_type,arg) -# define lh_OBJ_NAME_error(lh) LHM_lh_error(OBJ_NAME,lh) -# define lh_OBJ_NAME_num_items(lh) LHM_lh_num_items(OBJ_NAME,lh) -# define lh_OBJ_NAME_down_load(lh) LHM_lh_down_load(OBJ_NAME,lh) -# define lh_OBJ_NAME_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_stats_bio(lh,out) \ - LHM_lh_stats_bio(OBJ_NAME,lh,out) -# define lh_OBJ_NAME_free(lh) LHM_lh_free(OBJ_NAME,lh) -# define lh_OPENSSL_CSTRING_new() LHM_lh_new(OPENSSL_CSTRING,openssl_cstring) -# define lh_OPENSSL_CSTRING_insert(lh,inst) LHM_lh_insert(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_delete(lh,inst) LHM_lh_delete(OPENSSL_CSTRING,lh,inst) -# define lh_OPENSSL_CSTRING_doall(lh,fn) LHM_lh_doall(OPENSSL_CSTRING,lh,fn) -# define lh_OPENSSL_CSTRING_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(OPENSSL_CSTRING,lh,fn,arg_type,arg) -# define lh_OPENSSL_CSTRING_error(lh) LHM_lh_error(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_num_items(lh) LHM_lh_num_items(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_down_load(lh) LHM_lh_down_load(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_CSTRING_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_stats_bio(lh,out) \ - LHM_lh_stats_bio(OPENSSL_CSTRING,lh,out) -# define lh_OPENSSL_CSTRING_free(lh) LHM_lh_free(OPENSSL_CSTRING,lh) -# define lh_OPENSSL_STRING_new() LHM_lh_new(OPENSSL_STRING,openssl_string) -# define lh_OPENSSL_STRING_insert(lh,inst) LHM_lh_insert(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_retrieve(lh,inst) LHM_lh_retrieve(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_delete(lh,inst) LHM_lh_delete(OPENSSL_STRING,lh,inst) -# define lh_OPENSSL_STRING_doall(lh,fn) LHM_lh_doall(OPENSSL_STRING,lh,fn) -# define lh_OPENSSL_STRING_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(OPENSSL_STRING,lh,fn,arg_type,arg) -# define lh_OPENSSL_STRING_error(lh) LHM_lh_error(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_num_items(lh) LHM_lh_num_items(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_down_load(lh) LHM_lh_down_load(OPENSSL_STRING,lh) -# define lh_OPENSSL_STRING_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_stats_bio(lh,out) \ - LHM_lh_stats_bio(OPENSSL_STRING,lh,out) -# define lh_OPENSSL_STRING_free(lh) LHM_lh_free(OPENSSL_STRING,lh) -# define lh_SSL_SESSION_new() LHM_lh_new(SSL_SESSION,ssl_session) -# define lh_SSL_SESSION_insert(lh,inst) LHM_lh_insert(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_retrieve(lh,inst) LHM_lh_retrieve(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_delete(lh,inst) LHM_lh_delete(SSL_SESSION,lh,inst) -# define lh_SSL_SESSION_doall(lh,fn) LHM_lh_doall(SSL_SESSION,lh,fn) -# define lh_SSL_SESSION_doall_arg(lh,fn,arg_type,arg) \ - LHM_lh_doall_arg(SSL_SESSION,lh,fn,arg_type,arg) -# define lh_SSL_SESSION_error(lh) LHM_lh_error(SSL_SESSION,lh) -# define lh_SSL_SESSION_num_items(lh) LHM_lh_num_items(SSL_SESSION,lh) -# define lh_SSL_SESSION_down_load(lh) LHM_lh_down_load(SSL_SESSION,lh) -# define lh_SSL_SESSION_node_stats_bio(lh,out) \ - LHM_lh_node_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_node_usage_stats_bio(lh,out) \ - LHM_lh_node_usage_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_stats_bio(lh,out) \ - LHM_lh_stats_bio(SSL_SESSION,lh,out) -# define lh_SSL_SESSION_free(lh) LHM_lh_free(SSL_SESSION,lh) -#ifdef __cplusplus -} -#endif -#endif /* !defined HEADER_SAFESTACK_H */ diff --git a/3rdparty/openssl/include/openssl/seed.h b/3rdparty/openssl/include/openssl/seed.h deleted file mode 100644 index 8cbf0d9..0000000 --- a/3rdparty/openssl/include/openssl/seed.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Neither the name of author nor the names of its contributors may - * be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ -/* ==================================================================== - * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_SEED_H -# define HEADER_SEED_H - -# include -# include -# include - -# ifdef OPENSSL_NO_SEED -# error SEED is disabled. -# endif - -/* look whether we need 'long' to get 32 bits */ -# ifdef AES_LONG -# ifndef SEED_LONG -# define SEED_LONG 1 -# endif -# endif - -# if !defined(NO_SYS_TYPES_H) -# include -# endif - -# define SEED_BLOCK_SIZE 16 -# define SEED_KEY_LENGTH 16 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct seed_key_st { -# ifdef SEED_LONG - unsigned long data[32]; -# else - unsigned int data[32]; -# endif -} SEED_KEY_SCHEDULE; - -# ifdef OPENSSL_FIPS -void private_SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); -# endif -void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); - -void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); - -void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, - const SEED_KEY_SCHEDULE *ks, int enc); -void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, - const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int enc); -void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num, - int enc); -void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num); - -#ifdef __cplusplus -} -#endif - -#endif /* HEADER_SEED_H */ diff --git a/3rdparty/openssl/include/openssl/sha.h b/3rdparty/openssl/include/openssl/sha.h deleted file mode 100644 index e5169e4..0000000 --- a/3rdparty/openssl/include/openssl/sha.h +++ /dev/null @@ -1,214 +0,0 @@ -/* crypto/sha/sha.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_SHA_H -# define HEADER_SHA_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# if defined(OPENSSL_NO_SHA) || (defined(OPENSSL_NO_SHA0) && defined(OPENSSL_NO_SHA1)) -# error SHA is disabled. -# endif - -# if defined(OPENSSL_FIPS) -# define FIPS_SHA_SIZE_T size_t -# endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! SHA_LONG has to be at least 32 bits wide. If it's wider, then ! - * ! SHA_LONG_LOG2 has to be defined along. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ - -# if defined(__LP32__) -# define SHA_LONG unsigned long -# elif defined(OPENSSL_SYS_CRAY) || defined(__ILP64__) -# define SHA_LONG unsigned long -# define SHA_LONG_LOG2 3 -# else -# define SHA_LONG unsigned int -# endif - -# define SHA_LBLOCK 16 -# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ -# define SHA_LAST_BLOCK (SHA_CBLOCK-8) -# define SHA_DIGEST_LENGTH 20 - -typedef struct SHAstate_st { - SHA_LONG h0, h1, h2, h3, h4; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num; -} SHA_CTX; - -# ifndef OPENSSL_NO_SHA0 -# ifdef OPENSSL_FIPS -int private_SHA_Init(SHA_CTX *c); -# endif -int SHA_Init(SHA_CTX *c); -int SHA_Update(SHA_CTX *c, const void *data, size_t len); -int SHA_Final(unsigned char *md, SHA_CTX *c); -unsigned char *SHA(const unsigned char *d, size_t n, unsigned char *md); -void SHA_Transform(SHA_CTX *c, const unsigned char *data); -# endif -# ifndef OPENSSL_NO_SHA1 -# ifdef OPENSSL_FIPS -int private_SHA1_Init(SHA_CTX *c); -# endif -int SHA1_Init(SHA_CTX *c); -int SHA1_Update(SHA_CTX *c, const void *data, size_t len); -int SHA1_Final(unsigned char *md, SHA_CTX *c); -unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); -void SHA1_Transform(SHA_CTX *c, const unsigned char *data); -# endif - -# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ -# define SHA224_DIGEST_LENGTH 28 -# define SHA256_DIGEST_LENGTH 32 - -typedef struct SHA256state_st { - SHA_LONG h[8]; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num, md_len; -} SHA256_CTX; - -# ifndef OPENSSL_NO_SHA256 -# ifdef OPENSSL_FIPS -int private_SHA224_Init(SHA256_CTX *c); -int private_SHA256_Init(SHA256_CTX *c); -# endif -int SHA224_Init(SHA256_CTX *c); -int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA224_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); -int SHA256_Init(SHA256_CTX *c); -int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA256_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); -void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); -# endif - -# define SHA384_DIGEST_LENGTH 48 -# define SHA512_DIGEST_LENGTH 64 - -# ifndef OPENSSL_NO_SHA512 -/* - * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 - * being exactly 64-bit wide. See Implementation Notes in sha512.c - * for further details. - */ -/* - * SHA-512 treats input data as a - * contiguous array of 64 bit - * wide big-endian values. - */ -# define SHA512_CBLOCK (SHA_LBLOCK*8) -# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) -# define SHA_LONG64 unsigned __int64 -# define U64(C) C##UI64 -# elif defined(__arch64__) -# define SHA_LONG64 unsigned long -# define U64(C) C##UL -# else -# define SHA_LONG64 unsigned long long -# define U64(C) C##ULL -# endif - -typedef struct SHA512state_st { - SHA_LONG64 h[8]; - SHA_LONG64 Nl, Nh; - union { - SHA_LONG64 d[SHA_LBLOCK]; - unsigned char p[SHA512_CBLOCK]; - } u; - unsigned int num, md_len; -} SHA512_CTX; -# endif - -# ifndef OPENSSL_NO_SHA512 -# ifdef OPENSSL_FIPS -int private_SHA384_Init(SHA512_CTX *c); -int private_SHA512_Init(SHA512_CTX *c); -# endif -int SHA384_Init(SHA512_CTX *c); -int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA384_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); -int SHA512_Init(SHA512_CTX *c); -int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA512_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); -void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/srp.h b/3rdparty/openssl/include/openssl/srp.h deleted file mode 100644 index 028892a..0000000 --- a/3rdparty/openssl/include/openssl/srp.h +++ /dev/null @@ -1,179 +0,0 @@ -/* crypto/srp/srp.h */ -/* - * Written by Christophe Renou (christophe.renou@edelweb.fr) with the - * precious help of Peter Sylvester (peter.sylvester@edelweb.fr) for the - * EdelKey project and contributed to the OpenSSL project 2004. - */ -/* ==================================================================== - * Copyright (c) 2004 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef __SRP_H__ -# define __SRP_H__ - -# ifndef OPENSSL_NO_SRP - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# include -# include -# include - -typedef struct SRP_gN_cache_st { - char *b64_bn; - BIGNUM *bn; -} SRP_gN_cache; - - -DECLARE_STACK_OF(SRP_gN_cache) - -typedef struct SRP_user_pwd_st { - /* Owned by us. */ - char *id; - BIGNUM *s; - BIGNUM *v; - /* Not owned by us. */ - const BIGNUM *g; - const BIGNUM *N; - /* Owned by us. */ - char *info; -} SRP_user_pwd; - -DECLARE_STACK_OF(SRP_user_pwd) - -void SRP_user_pwd_free(SRP_user_pwd *user_pwd); - -typedef struct SRP_VBASE_st { - STACK_OF(SRP_user_pwd) *users_pwd; - STACK_OF(SRP_gN_cache) *gN_cache; -/* to simulate a user */ - char *seed_key; - BIGNUM *default_g; - BIGNUM *default_N; -} SRP_VBASE; - -/* - * Structure interne pour retenir les couples N et g - */ -typedef struct SRP_gN_st { - char *id; - BIGNUM *g; - BIGNUM *N; -} SRP_gN; - -DECLARE_STACK_OF(SRP_gN) - -SRP_VBASE *SRP_VBASE_new(char *seed_key); -int SRP_VBASE_free(SRP_VBASE *vb); -int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); - -/* This method ignores the configured seed and fails for an unknown user. */ -SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username); -/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ -SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); - -char *SRP_create_verifier(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g); -int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, BIGNUM *N, BIGNUM *g); - -# define SRP_NO_ERROR 0 -# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 -# define SRP_ERR_VBASE_BN_LIB 2 -# define SRP_ERR_OPEN_FILE 3 -# define SRP_ERR_MEMORY 4 - -# define DB_srptype 0 -# define DB_srpverifier 1 -# define DB_srpsalt 2 -# define DB_srpid 3 -# define DB_srpgN 4 -# define DB_srpinfo 5 -# undef DB_NUMBER -# define DB_NUMBER 6 - -# define DB_SRP_INDEX 'I' -# define DB_SRP_VALID 'V' -# define DB_SRP_REVOKED 'R' -# define DB_SRP_MODIF 'v' - -/* see srp.c */ -char *SRP_check_known_gN_param(BIGNUM *g, BIGNUM *N); -SRP_gN *SRP_get_default_gN(const char *id); - -/* server side .... */ -BIGNUM *SRP_Calc_server_key(BIGNUM *A, BIGNUM *v, BIGNUM *u, BIGNUM *b, - BIGNUM *N); -BIGNUM *SRP_Calc_B(BIGNUM *b, BIGNUM *N, BIGNUM *g, BIGNUM *v); -int SRP_Verify_A_mod_N(BIGNUM *A, BIGNUM *N); -BIGNUM *SRP_Calc_u(BIGNUM *A, BIGNUM *B, BIGNUM *N); - -/* client side .... */ -BIGNUM *SRP_Calc_x(BIGNUM *s, const char *user, const char *pass); -BIGNUM *SRP_Calc_A(BIGNUM *a, BIGNUM *N, BIGNUM *g); -BIGNUM *SRP_Calc_client_key(BIGNUM *N, BIGNUM *B, BIGNUM *g, BIGNUM *x, - BIGNUM *a, BIGNUM *u); -int SRP_Verify_B_mod_N(BIGNUM *B, BIGNUM *N); - -# define SRP_MINIMAL_N 1024 - -#ifdef __cplusplus -} -#endif - -# endif -#endif diff --git a/3rdparty/openssl/include/openssl/srtp.h b/3rdparty/openssl/include/openssl/srtp.h deleted file mode 100644 index 2279c32..0000000 --- a/3rdparty/openssl/include/openssl/srtp.h +++ /dev/null @@ -1,147 +0,0 @@ -/* ssl/srtp.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* - * DTLS code by Eric Rescorla - * - * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. - */ - -#ifndef HEADER_D1_SRTP_H -# define HEADER_D1_SRTP_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define SRTP_AES128_CM_SHA1_80 0x0001 -# define SRTP_AES128_CM_SHA1_32 0x0002 -# define SRTP_AES128_F8_SHA1_80 0x0003 -# define SRTP_AES128_F8_SHA1_32 0x0004 -# define SRTP_NULL_SHA1_80 0x0005 -# define SRTP_NULL_SHA1_32 0x0006 - -# ifndef OPENSSL_NO_SRTP - -int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); -int SSL_set_tlsext_use_srtp(SSL *ctx, const char *profiles); - -STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/ssl.h b/3rdparty/openssl/include/openssl/ssl.h deleted file mode 100644 index 3cf96a2..0000000 --- a/3rdparty/openssl/include/openssl/ssl.h +++ /dev/null @@ -1,3163 +0,0 @@ -/* ssl/ssl.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_SSL_H -# define HEADER_SSL_H - -# include - -# ifndef OPENSSL_NO_COMP -# include -# endif -# ifndef OPENSSL_NO_BIO -# include -# endif -# ifndef OPENSSL_NO_DEPRECATED -# ifndef OPENSSL_NO_X509 -# include -# endif -# include -# include -# include -# endif -# include -# include - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* SSLeay version number for ASN.1 encoding of the session information */ -/*- - * Version 0 - initial version - * Version 1 - added the optional peer certificate - */ -# define SSL_SESSION_ASN1_VERSION 0x0001 - -/* text strings for the ciphers */ -# define SSL_TXT_NULL_WITH_MD5 SSL2_TXT_NULL_WITH_MD5 -# define SSL_TXT_RC4_128_WITH_MD5 SSL2_TXT_RC4_128_WITH_MD5 -# define SSL_TXT_RC4_128_EXPORT40_WITH_MD5 SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 -# define SSL_TXT_RC2_128_CBC_WITH_MD5 SSL2_TXT_RC2_128_CBC_WITH_MD5 -# define SSL_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 -# define SSL_TXT_IDEA_128_CBC_WITH_MD5 SSL2_TXT_IDEA_128_CBC_WITH_MD5 -# define SSL_TXT_DES_64_CBC_WITH_MD5 SSL2_TXT_DES_64_CBC_WITH_MD5 -# define SSL_TXT_DES_64_CBC_WITH_SHA SSL2_TXT_DES_64_CBC_WITH_SHA -# define SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 -# define SSL_TXT_DES_192_EDE3_CBC_WITH_SHA SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA - -/* - * VRS Additional Kerberos5 entries - */ -# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA -# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA -# define SSL_TXT_KRB5_RC4_128_SHA SSL3_TXT_KRB5_RC4_128_SHA -# define SSL_TXT_KRB5_IDEA_128_CBC_SHA SSL3_TXT_KRB5_IDEA_128_CBC_SHA -# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 -# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 -# define SSL_TXT_KRB5_RC4_128_MD5 SSL3_TXT_KRB5_RC4_128_MD5 -# define SSL_TXT_KRB5_IDEA_128_CBC_MD5 SSL3_TXT_KRB5_IDEA_128_CBC_MD5 - -# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA -# define SSL_TXT_KRB5_RC2_40_CBC_SHA SSL3_TXT_KRB5_RC2_40_CBC_SHA -# define SSL_TXT_KRB5_RC4_40_SHA SSL3_TXT_KRB5_RC4_40_SHA -# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 -# define SSL_TXT_KRB5_RC2_40_CBC_MD5 SSL3_TXT_KRB5_RC2_40_CBC_MD5 -# define SSL_TXT_KRB5_RC4_40_MD5 SSL3_TXT_KRB5_RC4_40_MD5 - -# define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA -# define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 -# define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA -# define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 -# define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA -# define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 -# define SSL_MAX_KRB5_PRINCIPAL_LENGTH 256 - -# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 -# define SSL_MAX_SID_CTX_LENGTH 32 - -# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) -# define SSL_MAX_KEY_ARG_LENGTH 8 -# define SSL_MAX_MASTER_KEY_LENGTH 48 - -/* These are used to specify which ciphers to use and not to use */ - -# define SSL_TXT_EXP40 "EXPORT40" -# define SSL_TXT_EXP56 "EXPORT56" -# define SSL_TXT_LOW "LOW" -# define SSL_TXT_MEDIUM "MEDIUM" -# define SSL_TXT_HIGH "HIGH" -# define SSL_TXT_FIPS "FIPS" - -# define SSL_TXT_kFZA "kFZA"/* unused! */ -# define SSL_TXT_aFZA "aFZA"/* unused! */ -# define SSL_TXT_eFZA "eFZA"/* unused! */ -# define SSL_TXT_FZA "FZA"/* unused! */ - -# define SSL_TXT_aNULL "aNULL" -# define SSL_TXT_eNULL "eNULL" -# define SSL_TXT_NULL "NULL" - -# define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr" -# define SSL_TXT_kDHd "kDHd" -# define SSL_TXT_kDH "kDH" -# define SSL_TXT_kEDH "kEDH" -# define SSL_TXT_kDHE "kDHE"/* alias for kEDH */ -# define SSL_TXT_kKRB5 "kKRB5" -# define SSL_TXT_kECDHr "kECDHr" -# define SSL_TXT_kECDHe "kECDHe" -# define SSL_TXT_kECDH "kECDH" -# define SSL_TXT_kEECDH "kEECDH" -# define SSL_TXT_kECDHE "kECDHE"/* alias for kEECDH */ -# define SSL_TXT_kPSK "kPSK" -# define SSL_TXT_kGOST "kGOST" -# define SSL_TXT_kSRP "kSRP" - -# define SSL_TXT_aRSA "aRSA" -# define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH" -# define SSL_TXT_aECDH "aECDH" -# define SSL_TXT_aKRB5 "aKRB5" -# define SSL_TXT_aECDSA "aECDSA" -# define SSL_TXT_aPSK "aPSK" -# define SSL_TXT_aGOST94 "aGOST94" -# define SSL_TXT_aGOST01 "aGOST01" -# define SSL_TXT_aGOST "aGOST" -# define SSL_TXT_aSRP "aSRP" - -# define SSL_TXT_DSS "DSS" -# define SSL_TXT_DH "DH" -# define SSL_TXT_EDH "EDH"/* same as "kEDH:-ADH" */ -# define SSL_TXT_DHE "DHE"/* alias for EDH */ -# define SSL_TXT_ADH "ADH" -# define SSL_TXT_RSA "RSA" -# define SSL_TXT_ECDH "ECDH" -# define SSL_TXT_EECDH "EECDH"/* same as "kEECDH:-AECDH" */ -# define SSL_TXT_ECDHE "ECDHE"/* alias for ECDHE" */ -# define SSL_TXT_AECDH "AECDH" -# define SSL_TXT_ECDSA "ECDSA" -# define SSL_TXT_KRB5 "KRB5" -# define SSL_TXT_PSK "PSK" -# define SSL_TXT_SRP "SRP" - -# define SSL_TXT_DES "DES" -# define SSL_TXT_3DES "3DES" -# define SSL_TXT_RC4 "RC4" -# define SSL_TXT_RC2 "RC2" -# define SSL_TXT_IDEA "IDEA" -# define SSL_TXT_SEED "SEED" -# define SSL_TXT_AES128 "AES128" -# define SSL_TXT_AES256 "AES256" -# define SSL_TXT_AES "AES" -# define SSL_TXT_AES_GCM "AESGCM" -# define SSL_TXT_CAMELLIA128 "CAMELLIA128" -# define SSL_TXT_CAMELLIA256 "CAMELLIA256" -# define SSL_TXT_CAMELLIA "CAMELLIA" - -# define SSL_TXT_MD5 "MD5" -# define SSL_TXT_SHA1 "SHA1" -# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ -# define SSL_TXT_GOST94 "GOST94" -# define SSL_TXT_GOST89MAC "GOST89MAC" -# define SSL_TXT_SHA256 "SHA256" -# define SSL_TXT_SHA384 "SHA384" - -# define SSL_TXT_SSLV2 "SSLv2" -# define SSL_TXT_SSLV3 "SSLv3" -# define SSL_TXT_TLSV1 "TLSv1" -# define SSL_TXT_TLSV1_1 "TLSv1.1" -# define SSL_TXT_TLSV1_2 "TLSv1.2" - -# define SSL_TXT_EXP "EXP" -# define SSL_TXT_EXPORT "EXPORT" - -# define SSL_TXT_ALL "ALL" - -/*- - * COMPLEMENTOF* definitions. These identifiers are used to (de-select) - * ciphers normally not being used. - * Example: "RC4" will activate all ciphers using RC4 including ciphers - * without authentication, which would normally disabled by DEFAULT (due - * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" - * will make sure that it is also disabled in the specific selection. - * COMPLEMENTOF* identifiers are portable between version, as adjustments - * to the default cipher setup will also be included here. - * - * COMPLEMENTOFDEFAULT does not experience the same special treatment that - * DEFAULT gets, as only selection is being done and no sorting as needed - * for DEFAULT. - */ -# define SSL_TXT_CMPALL "COMPLEMENTOFALL" -# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" - -/* - * The following cipher list is used by default. It also is substituted when - * an application-defined cipher list string starts with 'DEFAULT'. - */ -# define SSL_DEFAULT_CIPHER_LIST "ALL:!EXPORT:!LOW:!aNULL:!eNULL:!SSLv2" -/* - * As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always - * starts with a reasonable order, and all we have to do for DEFAULT is - * throwing out anonymous and unencrypted ciphersuites! (The latter are not - * actually enabled by ALL, but "ALL:RSA" would enable some of them.) - */ - -/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ -# define SSL_SENT_SHUTDOWN 1 -# define SSL_RECEIVED_SHUTDOWN 2 - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -# if (defined(OPENSSL_NO_RSA) || defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2) -# define OPENSSL_NO_SSL2 -# endif - -# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 -# define SSL_FILETYPE_PEM X509_FILETYPE_PEM - -/* - * This is needed to stop compilers complaining about the 'struct ssl_st *' - * function parameters used to prototype callbacks in SSL_CTX. - */ -typedef struct ssl_st *ssl_crock_st; -typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; -typedef struct ssl_method_st SSL_METHOD; -typedef struct ssl_cipher_st SSL_CIPHER; -typedef struct ssl_session_st SSL_SESSION; -typedef struct tls_sigalgs_st TLS_SIGALGS; -typedef struct ssl_conf_ctx_st SSL_CONF_CTX; - -DECLARE_STACK_OF(SSL_CIPHER) - -/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ -typedef struct srtp_protection_profile_st { - const char *name; - unsigned long id; -} SRTP_PROTECTION_PROFILE; - -DECLARE_STACK_OF(SRTP_PROTECTION_PROFILE) - -typedef int (*tls_session_ticket_ext_cb_fn) (SSL *s, - const unsigned char *data, - int len, void *arg); -typedef int (*tls_session_secret_cb_fn) (SSL *s, void *secret, - int *secret_len, - STACK_OF(SSL_CIPHER) *peer_ciphers, - SSL_CIPHER **cipher, void *arg); - -# ifndef OPENSSL_NO_TLSEXT - -/* Typedefs for handling custom extensions */ - -typedef int (*custom_ext_add_cb) (SSL *s, unsigned int ext_type, - const unsigned char **out, - size_t *outlen, int *al, void *add_arg); - -typedef void (*custom_ext_free_cb) (SSL *s, unsigned int ext_type, - const unsigned char *out, void *add_arg); - -typedef int (*custom_ext_parse_cb) (SSL *s, unsigned int ext_type, - const unsigned char *in, - size_t inlen, int *al, void *parse_arg); - -# endif - -# ifndef OPENSSL_NO_SSL_INTERN - -/* used to hold info on the particular ciphers used */ -struct ssl_cipher_st { - int valid; - const char *name; /* text name */ - unsigned long id; /* id, 4 bytes, first is version */ - /* - * changed in 0.9.9: these four used to be portions of a single value - * 'algorithms' - */ - unsigned long algorithm_mkey; /* key exchange algorithm */ - unsigned long algorithm_auth; /* server authentication */ - unsigned long algorithm_enc; /* symmetric encryption */ - unsigned long algorithm_mac; /* symmetric authentication */ - unsigned long algorithm_ssl; /* (major) protocol version */ - unsigned long algo_strength; /* strength and export flags */ - unsigned long algorithm2; /* Extra flags */ - int strength_bits; /* Number of bits really used */ - int alg_bits; /* Number of bits for algorithm */ -}; - -/* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */ -struct ssl_method_st { - int version; - int (*ssl_new) (SSL *s); - void (*ssl_clear) (SSL *s); - void (*ssl_free) (SSL *s); - int (*ssl_accept) (SSL *s); - int (*ssl_connect) (SSL *s); - int (*ssl_read) (SSL *s, void *buf, int len); - int (*ssl_peek) (SSL *s, void *buf, int len); - int (*ssl_write) (SSL *s, const void *buf, int len); - int (*ssl_shutdown) (SSL *s); - int (*ssl_renegotiate) (SSL *s); - int (*ssl_renegotiate_check) (SSL *s); - long (*ssl_get_message) (SSL *s, int st1, int stn, int mt, long - max, int *ok); - int (*ssl_read_bytes) (SSL *s, int type, unsigned char *buf, int len, - int peek); - int (*ssl_write_bytes) (SSL *s, int type, const void *buf_, int len); - int (*ssl_dispatch_alert) (SSL *s); - long (*ssl_ctrl) (SSL *s, int cmd, long larg, void *parg); - long (*ssl_ctx_ctrl) (SSL_CTX *ctx, int cmd, long larg, void *parg); - const SSL_CIPHER *(*get_cipher_by_char) (const unsigned char *ptr); - int (*put_cipher_by_char) (const SSL_CIPHER *cipher, unsigned char *ptr); - int (*ssl_pending) (const SSL *s); - int (*num_ciphers) (void); - const SSL_CIPHER *(*get_cipher) (unsigned ncipher); - const struct ssl_method_st *(*get_ssl_method) (int version); - long (*get_timeout) (void); - struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ - int (*ssl_version) (void); - long (*ssl_callback_ctrl) (SSL *s, int cb_id, void (*fp) (void)); - long (*ssl_ctx_callback_ctrl) (SSL_CTX *s, int cb_id, void (*fp) (void)); -}; - -/*- - * Lets make this into an ASN.1 type structure as follows - * SSL_SESSION_ID ::= SEQUENCE { - * version INTEGER, -- structure version number - * SSLversion INTEGER, -- SSL version number - * Cipher OCTET STRING, -- the 3 byte cipher ID - * Session_ID OCTET STRING, -- the Session ID - * Master_key OCTET STRING, -- the master key - * KRB5_principal OCTET STRING -- optional Kerberos principal - * Key_Arg [ 0 ] IMPLICIT OCTET STRING, -- the optional Key argument - * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time - * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds - * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate - * Session_ID_context [ 4 ] EXPLICIT OCTET STRING, -- the Session ID context - * Verify_result [ 5 ] EXPLICIT INTEGER, -- X509_V_... code for `Peer' - * HostName [ 6 ] EXPLICIT OCTET STRING, -- optional HostName from servername TLS extension - * PSK_identity_hint [ 7 ] EXPLICIT OCTET STRING, -- optional PSK identity hint - * PSK_identity [ 8 ] EXPLICIT OCTET STRING, -- optional PSK identity - * Ticket_lifetime_hint [9] EXPLICIT INTEGER, -- server's lifetime hint for session ticket - * Ticket [10] EXPLICIT OCTET STRING, -- session ticket (clients only) - * Compression_meth [11] EXPLICIT OCTET STRING, -- optional compression method - * SRP_username [ 12 ] EXPLICIT OCTET STRING -- optional SRP username - * } - * Look in ssl/ssl_asn1.c for more details - * I'm using EXPLICIT tags so I can read the damn things using asn1parse :-). - */ -struct ssl_session_st { - int ssl_version; /* what ssl version session info is being - * kept in here? */ - /* only really used in SSLv2 */ - unsigned int key_arg_length; - unsigned char key_arg[SSL_MAX_KEY_ARG_LENGTH]; - int master_key_length; - unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; - /* session_id - valid? */ - unsigned int session_id_length; - unsigned char session_id[SSL_MAX_SSL_SESSION_ID_LENGTH]; - /* - * this is used to determine whether the session is being reused in the - * appropriate context. It is up to the application to set this, via - * SSL_new - */ - unsigned int sid_ctx_length; - unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; -# ifndef OPENSSL_NO_KRB5 - unsigned int krb5_client_princ_len; - unsigned char krb5_client_princ[SSL_MAX_KRB5_PRINCIPAL_LENGTH]; -# endif /* OPENSSL_NO_KRB5 */ -# ifndef OPENSSL_NO_PSK - char *psk_identity_hint; - char *psk_identity; -# endif - /* - * Used to indicate that session resumption is not allowed. Applications - * can also set this bit for a new session via not_resumable_session_cb - * to disable session caching and tickets. - */ - int not_resumable; - /* The cert is the certificate used to establish this connection */ - struct sess_cert_st /* SESS_CERT */ *sess_cert; - /* - * This is the cert for the other end. On clients, it will be the same as - * sess_cert->peer_key->x509 (the latter is not enough as sess_cert is - * not retained in the external representation of sessions, see - * ssl_asn1.c). - */ - X509 *peer; - /* - * when app_verify_callback accepts a session where the peer's - * certificate is not ok, we must remember the error for session reuse: - */ - long verify_result; /* only for servers */ - int references; - long timeout; - long time; - unsigned int compress_meth; /* Need to lookup the method */ - const SSL_CIPHER *cipher; - unsigned long cipher_id; /* when ASN.1 loaded, this needs to be used - * to load the 'cipher' structure */ - STACK_OF(SSL_CIPHER) *ciphers; /* shared ciphers? */ - CRYPTO_EX_DATA ex_data; /* application specific data */ - /* - * These are used to make removal of session-ids more efficient and to - * implement a maximum cache size. - */ - struct ssl_session_st *prev, *next; -# ifndef OPENSSL_NO_TLSEXT - char *tlsext_hostname; -# ifndef OPENSSL_NO_EC - size_t tlsext_ecpointformatlist_length; - unsigned char *tlsext_ecpointformatlist; /* peer's list */ - size_t tlsext_ellipticcurvelist_length; - unsigned char *tlsext_ellipticcurvelist; /* peer's list */ -# endif /* OPENSSL_NO_EC */ - /* RFC4507 info */ - unsigned char *tlsext_tick; /* Session ticket */ - size_t tlsext_ticklen; /* Session ticket length */ - long tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ -# endif -# ifndef OPENSSL_NO_SRP - char *srp_username; -# endif -}; - -# endif - -# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L -# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L -/* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004L -# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L -# define SSL_OP_TLSEXT_PADDING 0x00000010L -# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040L -# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L -# define SSL_OP_TLS_D5_BUG 0x00000100L -# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L - -/* Hasn't done anything since OpenSSL 0.9.7h, retained for compatibility */ -# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 -/* Refers to ancient SSLREF and SSLv2, retained for compatibility */ -# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 - -/* - * Disable SSL 3.0/TLS 1.0 CBC vulnerability workaround that was added in - * OpenSSL 0.9.6d. Usually (depending on the application protocol) the - * workaround is not needed. Unfortunately some broken SSL/TLS - * implementations cannot handle it at all, which is why we include it in - * SSL_OP_ALL. - */ -/* added in 0.9.6e */ -# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800L - -/* - * SSL_OP_ALL: various bug workarounds that should be rather harmless. This - * used to be 0x000FFFFFL before 0.9.7. - */ -# define SSL_OP_ALL 0x80000BFFL - -/* DTLS options */ -# define SSL_OP_NO_QUERY_MTU 0x00001000L -/* Turn on Cookie Exchange (on relevant for servers) */ -# define SSL_OP_COOKIE_EXCHANGE 0x00002000L -/* Don't use RFC4507 ticket extension */ -# define SSL_OP_NO_TICKET 0x00004000L -/* Use Cisco's "speshul" version of DTLS_BAD_VER (as client) */ -# define SSL_OP_CISCO_ANYCONNECT 0x00008000L - -/* As server, disallow session resumption on renegotiation */ -# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L -/* Don't use compression even if supported */ -# define SSL_OP_NO_COMPRESSION 0x00020000L -/* Permit unsafe legacy renegotiation */ -# define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000L -/* If set, always create a new key when using tmp_ecdh parameters */ -# define SSL_OP_SINGLE_ECDH_USE 0x00080000L -/* Does nothing: retained for compatibility */ -# define SSL_OP_SINGLE_DH_USE 0x00100000L -/* Does nothing: retained for compatibiity */ -# define SSL_OP_EPHEMERAL_RSA 0x0 -/* - * Set on servers to choose the cipher according to the server's preferences - */ -# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000L -/* - * If set, a server will allow a client to issue a SSLv3.0 version number as - * latest version supported in the premaster secret, even when TLSv1.0 - * (version 3.1) was announced in the client hello. Normally this is - * forbidden to prevent version rollback attacks. - */ -# define SSL_OP_TLS_ROLLBACK_BUG 0x00800000L - -# define SSL_OP_NO_SSLv2 0x01000000L -# define SSL_OP_NO_SSLv3 0x02000000L -# define SSL_OP_NO_TLSv1 0x04000000L -# define SSL_OP_NO_TLSv1_2 0x08000000L -# define SSL_OP_NO_TLSv1_1 0x10000000L - -# define SSL_OP_NO_DTLSv1 0x04000000L -# define SSL_OP_NO_DTLSv1_2 0x08000000L - -# define SSL_OP_NO_SSL_MASK (SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3|\ - SSL_OP_NO_TLSv1|SSL_OP_NO_TLSv1_1|SSL_OP_NO_TLSv1_2) - -/* - * These next two were never actually used for anything since SSLeay zap so - * we have some more flags. - */ -/* - * The next flag deliberately changes the ciphertest, this is a check for the - * PKCS#1 attack - */ -# define SSL_OP_PKCS1_CHECK_1 0x0 -# define SSL_OP_PKCS1_CHECK_2 0x0 - -# define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L -# define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L -/* - * Make server add server-hello extension from early version of cryptopro - * draft, when GOST ciphersuite is negotiated. Required for interoperability - * with CryptoPro CSP 3.x - */ -# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000L - -/* - * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success - * when just a single record has been written): - */ -# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001L -/* - * Make it possible to retry SSL_write() with changed buffer location (buffer - * contents must stay the same!); this is not the default to avoid the - * misconception that non-blocking SSL_write() behaves like non-blocking - * write(): - */ -# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002L -/* - * Never bother the application with retries if the transport is blocking: - */ -# define SSL_MODE_AUTO_RETRY 0x00000004L -/* Don't attempt to automatically build certificate chain */ -# define SSL_MODE_NO_AUTO_CHAIN 0x00000008L -/* - * Save RAM by releasing read and write buffers when they're empty. (SSL3 and - * TLS only.) "Released" buffers are put onto a free-list in the context or - * just freed (depending on the context's setting for freelist_max_len). - */ -# define SSL_MODE_RELEASE_BUFFERS 0x00000010L -/* - * Send the current time in the Random fields of the ClientHello and - * ServerHello records for compatibility with hypothetical implementations - * that require it. - */ -# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020L -# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040L -/* - * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications - * that reconnect with a downgraded protocol version; see - * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your - * application attempts a normal handshake. Only use this in explicit - * fallback retries, following the guidance in - * draft-ietf-tls-downgrade-scsv-00. - */ -# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080L - -/* Cert related flags */ -/* - * Many implementations ignore some aspects of the TLS standards such as - * enforcing certifcate chain algorithms. When this is set we enforce them. - */ -# define SSL_CERT_FLAG_TLS_STRICT 0x00000001L - -/* Suite B modes, takes same values as certificate verify flags */ -# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 - -/* Perform all sorts of protocol violations for testing purposes */ -# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 - -/* Flags for building certificate chains */ -/* Treat any existing certificates as untrusted CAs */ -# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 -/* Don't include root CA in chain */ -# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 -/* Just check certificates already there */ -# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 -/* Ignore verification errors */ -# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 -/* Clear verification errors from queue */ -# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 - -/* Flags returned by SSL_check_chain */ -/* Certificate can be used with this session */ -# define CERT_PKEY_VALID 0x1 -/* Certificate can also be used for signing */ -# define CERT_PKEY_SIGN 0x2 -/* EE certificate signing algorithm OK */ -# define CERT_PKEY_EE_SIGNATURE 0x10 -/* CA signature algorithms OK */ -# define CERT_PKEY_CA_SIGNATURE 0x20 -/* EE certificate parameters OK */ -# define CERT_PKEY_EE_PARAM 0x40 -/* CA certificate parameters OK */ -# define CERT_PKEY_CA_PARAM 0x80 -/* Signing explicitly allowed as opposed to SHA1 fallback */ -# define CERT_PKEY_EXPLICIT_SIGN 0x100 -/* Client CA issuer names match (always set for server cert) */ -# define CERT_PKEY_ISSUER_NAME 0x200 -/* Cert type matches client types (always set for server cert) */ -# define CERT_PKEY_CERT_TYPE 0x400 -/* Cert chain suitable to Suite B */ -# define CERT_PKEY_SUITEB 0x800 - -# define SSL_CONF_FLAG_CMDLINE 0x1 -# define SSL_CONF_FLAG_FILE 0x2 -# define SSL_CONF_FLAG_CLIENT 0x4 -# define SSL_CONF_FLAG_SERVER 0x8 -# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 -# define SSL_CONF_FLAG_CERTIFICATE 0x20 -/* Configuration value types */ -# define SSL_CONF_TYPE_UNKNOWN 0x0 -# define SSL_CONF_TYPE_STRING 0x1 -# define SSL_CONF_TYPE_FILE 0x2 -# define SSL_CONF_TYPE_DIR 0x3 - -/* - * Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, they - * cannot be used to clear bits. - */ - -# define SSL_CTX_set_options(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) -# define SSL_CTX_clear_options(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) -# define SSL_CTX_get_options(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL) -# define SSL_set_options(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL) -# define SSL_clear_options(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_OPTIONS,(op),NULL) -# define SSL_get_options(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL) - -# define SSL_CTX_set_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) -# define SSL_CTX_clear_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_CTX_get_mode(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) -# define SSL_clear_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_set_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) -# define SSL_get_mode(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) -# define SSL_set_mtu(ssl, mtu) \ - SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) -# define DTLS_set_link_mtu(ssl, mtu) \ - SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) -# define DTLS_get_link_min_mtu(ssl) \ - SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) - -# define SSL_get_secure_renegotiation_support(ssl) \ - SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) - -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_heartbeat(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_TLS_EXT_SEND_HEARTBEAT,0,NULL) -# endif - -# define SSL_CTX_set_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_set_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_CTX_clear_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) -# define SSL_clear_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) - -void SSL_CTX_set_msg_callback(SSL_CTX *ctx, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -void SSL_set_msg_callback(SSL *ssl, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) -# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) - -# ifndef OPENSSL_NO_SRP - -# ifndef OPENSSL_NO_SSL_INTERN - -typedef struct srp_ctx_st { - /* param for all the callbacks */ - void *SRP_cb_arg; - /* set client Hello login callback */ - int (*TLS_ext_srp_username_callback) (SSL *, int *, void *); - /* set SRP N/g param callback for verification */ - int (*SRP_verify_param_callback) (SSL *, void *); - /* set SRP client passwd callback */ - char *(*SRP_give_srp_client_pwd_callback) (SSL *, void *); - char *login; - BIGNUM *N, *g, *s, *B, *A; - BIGNUM *a, *b, *v; - char *info; - int strength; - unsigned long srp_Mask; -} SRP_CTX; - -# endif - -/* see tls_srp.c */ -int SSL_SRP_CTX_init(SSL *s); -int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); -int SSL_SRP_CTX_free(SSL *ctx); -int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); -int SSL_srp_server_param_with_username(SSL *s, int *ad); -int SRP_generate_server_master_secret(SSL *s, unsigned char *master_key); -int SRP_Calc_A_param(SSL *s); -int SRP_generate_client_master_secret(SSL *s, unsigned char *master_key); - -# endif - -# if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) -# define SSL_MAX_CERT_LIST_DEFAULT 1024*30 - /* 30k max cert list :-) */ -# else -# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 - /* 100k max cert list :-) */ -# endif - -# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) - -/* - * This callback type is used inside SSL_CTX, SSL, and in the functions that - * set them. It is used to override the generation of SSL/TLS session IDs in - * a server. Return value should be zero on an error, non-zero to proceed. - * Also, callbacks should themselves check if the id they generate is unique - * otherwise the SSL handshake will fail with an error - callbacks can do - * this using the 'ssl' value they're passed by; - * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in - * is set at the maximum size the session ID can be. In SSLv2 this is 16 - * bytes, whereas SSLv3/TLSv1 it is 32 bytes. The callback can alter this - * length to be less if desired, but under SSLv2 session IDs are supposed to - * be fixed at 16 bytes so the id will be padded after the callback returns - * in this case. It is also an error for the callback to set the size to - * zero. - */ -typedef int (*GEN_SESSION_CB) (const SSL *ssl, unsigned char *id, - unsigned int *id_len); - -typedef struct ssl_comp_st SSL_COMP; - -# ifndef OPENSSL_NO_SSL_INTERN - -struct ssl_comp_st { - int id; - const char *name; -# ifndef OPENSSL_NO_COMP - COMP_METHOD *method; -# else - char *method; -# endif -}; - -DECLARE_STACK_OF(SSL_COMP) -DECLARE_LHASH_OF(SSL_SESSION); - -struct ssl_ctx_st { - const SSL_METHOD *method; - STACK_OF(SSL_CIPHER) *cipher_list; - /* same as above but sorted for lookup */ - STACK_OF(SSL_CIPHER) *cipher_list_by_id; - struct x509_store_st /* X509_STORE */ *cert_store; - LHASH_OF(SSL_SESSION) *sessions; - /* - * Most session-ids that will be cached, default is - * SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited. - */ - unsigned long session_cache_size; - struct ssl_session_st *session_cache_head; - struct ssl_session_st *session_cache_tail; - /* - * This can have one of 2 values, ored together, SSL_SESS_CACHE_CLIENT, - * SSL_SESS_CACHE_SERVER, Default is SSL_SESSION_CACHE_SERVER, which - * means only SSL_accept which cache SSL_SESSIONS. - */ - int session_cache_mode; - /* - * If timeout is not 0, it is the default timeout value set when - * SSL_new() is called. This has been put in to make life easier to set - * things up - */ - long session_timeout; - /* - * If this callback is not null, it will be called each time a session id - * is added to the cache. If this function returns 1, it means that the - * callback will do a SSL_SESSION_free() when it has finished using it. - * Otherwise, on 0, it means the callback has finished with it. If - * remove_session_cb is not null, it will be called when a session-id is - * removed from the cache. After the call, OpenSSL will - * SSL_SESSION_free() it. - */ - int (*new_session_cb) (struct ssl_st *ssl, SSL_SESSION *sess); - void (*remove_session_cb) (struct ssl_ctx_st *ctx, SSL_SESSION *sess); - SSL_SESSION *(*get_session_cb) (struct ssl_st *ssl, - unsigned char *data, int len, int *copy); - struct { - int sess_connect; /* SSL new conn - started */ - int sess_connect_renegotiate; /* SSL reneg - requested */ - int sess_connect_good; /* SSL new conne/reneg - finished */ - int sess_accept; /* SSL new accept - started */ - int sess_accept_renegotiate; /* SSL reneg - requested */ - int sess_accept_good; /* SSL accept/reneg - finished */ - int sess_miss; /* session lookup misses */ - int sess_timeout; /* reuse attempt on timeouted session */ - int sess_cache_full; /* session removed due to full cache */ - int sess_hit; /* session reuse actually done */ - int sess_cb_hit; /* session-id that was not in the cache was - * passed back via the callback. This - * indicates that the application is - * supplying session-id's from other - * processes - spooky :-) */ - } stats; - - int references; - - /* if defined, these override the X509_verify_cert() calls */ - int (*app_verify_callback) (X509_STORE_CTX *, void *); - void *app_verify_arg; - /* - * before OpenSSL 0.9.7, 'app_verify_arg' was ignored - * ('app_verify_callback' was called with just one argument) - */ - - /* Default password callback. */ - pem_password_cb *default_passwd_callback; - - /* Default password callback user data. */ - void *default_passwd_callback_userdata; - - /* get client cert callback */ - int (*client_cert_cb) (SSL *ssl, X509 **x509, EVP_PKEY **pkey); - - /* cookie generate callback */ - int (*app_gen_cookie_cb) (SSL *ssl, unsigned char *cookie, - unsigned int *cookie_len); - - /* verify cookie callback */ - int (*app_verify_cookie_cb) (SSL *ssl, unsigned char *cookie, - unsigned int cookie_len); - - CRYPTO_EX_DATA ex_data; - - const EVP_MD *rsa_md5; /* For SSLv2 - name is 'ssl2-md5' */ - const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ - const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ - - STACK_OF(X509) *extra_certs; - STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ - - /* Default values used when no per-SSL value is defined follow */ - - /* used if SSL's info_callback is NULL */ - void (*info_callback) (const SSL *ssl, int type, int val); - - /* what we put in client cert requests */ - STACK_OF(X509_NAME) *client_CA; - - /* - * Default values to use in SSL structures follow (these are copied by - * SSL_new) - */ - - unsigned long options; - unsigned long mode; - long max_cert_list; - - struct cert_st /* CERT */ *cert; - int read_ahead; - - /* callback that allows applications to peek at protocol messages */ - void (*msg_callback) (int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); - void *msg_callback_arg; - - int verify_mode; - unsigned int sid_ctx_length; - unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; - /* called 'verify_callback' in the SSL */ - int (*default_verify_callback) (int ok, X509_STORE_CTX *ctx); - - /* Default generate session ID callback. */ - GEN_SESSION_CB generate_session_id; - - X509_VERIFY_PARAM *param; - -# if 0 - int purpose; /* Purpose setting */ - int trust; /* Trust setting */ -# endif - - int quiet_shutdown; - - /* - * Maximum amount of data to send in one fragment. actual record size can - * be more than this due to padding and MAC overheads. - */ - unsigned int max_send_fragment; - -# ifndef OPENSSL_NO_ENGINE - /* - * Engine to pass requests for client certs to - */ - ENGINE *client_cert_engine; -# endif - -# ifndef OPENSSL_NO_TLSEXT - /* TLS extensions servername callback */ - int (*tlsext_servername_callback) (SSL *, int *, void *); - void *tlsext_servername_arg; - /* RFC 4507 session ticket keys */ - unsigned char tlsext_tick_key_name[16]; - unsigned char tlsext_tick_hmac_key[16]; - unsigned char tlsext_tick_aes_key[16]; - /* Callback to support customisation of ticket key setting */ - int (*tlsext_ticket_key_cb) (SSL *ssl, - unsigned char *name, unsigned char *iv, - EVP_CIPHER_CTX *ectx, - HMAC_CTX *hctx, int enc); - - /* certificate status request info */ - /* Callback for status request */ - int (*tlsext_status_cb) (SSL *ssl, void *arg); - void *tlsext_status_arg; - - /* draft-rescorla-tls-opaque-prf-input-00.txt information */ - int (*tlsext_opaque_prf_input_callback) (SSL *, void *peerinput, - size_t len, void *arg); - void *tlsext_opaque_prf_input_callback_arg; -# endif - -# ifndef OPENSSL_NO_PSK - char *psk_identity_hint; - unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, - char *identity, - unsigned int max_identity_len, - unsigned char *psk, - unsigned int max_psk_len); - unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, - unsigned char *psk, - unsigned int max_psk_len); -# endif - -# ifndef OPENSSL_NO_BUF_FREELISTS -# define SSL_MAX_BUF_FREELIST_LEN_DEFAULT 32 - unsigned int freelist_max_len; - struct ssl3_buf_freelist_st *wbuf_freelist; - struct ssl3_buf_freelist_st *rbuf_freelist; -# endif -# ifndef OPENSSL_NO_SRP - SRP_CTX srp_ctx; /* ctx for SRP authentication */ -# endif - -# ifndef OPENSSL_NO_TLSEXT - -# ifndef OPENSSL_NO_NEXTPROTONEG - /* Next protocol negotiation information */ - /* (for experimental NPN extension). */ - - /* - * For a server, this contains a callback function by which the set of - * advertised protocols can be provided. - */ - int (*next_protos_advertised_cb) (SSL *s, const unsigned char **buf, - unsigned int *len, void *arg); - void *next_protos_advertised_cb_arg; - /* - * For a client, this contains a callback function that selects the next - * protocol from the list provided by the server. - */ - int (*next_proto_select_cb) (SSL *s, unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, void *arg); - void *next_proto_select_cb_arg; -# endif - /* SRTP profiles we are willing to do from RFC 5764 */ - STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; - - /* - * ALPN information (we are in the process of transitioning from NPN to - * ALPN.) - */ - - /*- - * For a server, this contains a callback function that allows the - * server to select the protocol for the connection. - * out: on successful return, this must point to the raw protocol - * name (without the length prefix). - * outlen: on successful return, this contains the length of |*out|. - * in: points to the client's list of supported protocols in - * wire-format. - * inlen: the length of |in|. - */ - int (*alpn_select_cb) (SSL *s, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, void *arg); - void *alpn_select_cb_arg; - - /* - * For a client, this contains the list of supported protocols in wire - * format. - */ - unsigned char *alpn_client_proto_list; - unsigned alpn_client_proto_list_len; - -# ifndef OPENSSL_NO_EC - /* EC extension values inherited by SSL structure */ - size_t tlsext_ecpointformatlist_length; - unsigned char *tlsext_ecpointformatlist; - size_t tlsext_ellipticcurvelist_length; - unsigned char *tlsext_ellipticcurvelist; -# endif /* OPENSSL_NO_EC */ -# endif -}; - -# endif - -# define SSL_SESS_CACHE_OFF 0x0000 -# define SSL_SESS_CACHE_CLIENT 0x0001 -# define SSL_SESS_CACHE_SERVER 0x0002 -# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) -# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 -/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ -# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 -# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 -# define SSL_SESS_CACHE_NO_INTERNAL \ - (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) - -LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); -# define SSL_CTX_sess_number(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) -# define SSL_CTX_sess_connect(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) -# define SSL_CTX_sess_connect_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) -# define SSL_CTX_sess_connect_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) -# define SSL_CTX_sess_accept_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) -# define SSL_CTX_sess_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) -# define SSL_CTX_sess_cb_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) -# define SSL_CTX_sess_misses(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) -# define SSL_CTX_sess_timeouts(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) -# define SSL_CTX_sess_cache_full(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) - -void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, - int (*new_session_cb) (struct ssl_st *ssl, - SSL_SESSION *sess)); -int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - SSL_SESSION *sess); -void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, - void (*remove_session_cb) (struct ssl_ctx_st - *ctx, - SSL_SESSION - *sess)); -void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)) (struct ssl_ctx_st *ctx, - SSL_SESSION *sess); -void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, - SSL_SESSION *(*get_session_cb) (struct ssl_st - *ssl, - unsigned char - *data, int len, - int *copy)); -SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - unsigned char *Data, - int len, int *copy); -void SSL_CTX_set_info_callback(SSL_CTX *ctx, - void (*cb) (const SSL *ssl, int type, - int val)); -void (*SSL_CTX_get_info_callback(SSL_CTX *ctx)) (const SSL *ssl, int type, - int val); -void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, - int (*client_cert_cb) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey)); -int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey); -# ifndef OPENSSL_NO_ENGINE -int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); -# endif -void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, - int (*app_gen_cookie_cb) (SSL *ssl, - unsigned char - *cookie, - unsigned int - *cookie_len)); -void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, - int (*app_verify_cookie_cb) (SSL *ssl, - unsigned char - *cookie, - unsigned int - cookie_len)); -# ifndef OPENSSL_NO_NEXTPROTONEG -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - const unsigned char - **out, - unsigned int *outlen, - void *arg), void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), void *arg); -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); -# endif - -# ifndef OPENSSL_NO_TLSEXT -int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, - const unsigned char *in, unsigned int inlen, - const unsigned char *client, - unsigned int client_len); -# endif - -# define OPENSSL_NPN_UNSUPPORTED 0 -# define OPENSSL_NPN_NEGOTIATED 1 -# define OPENSSL_NPN_NO_OVERLAP 2 - -int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, - unsigned protos_len); -int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, - unsigned protos_len); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - int (*cb) (SSL *ssl, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), void *arg); -void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, - unsigned *len); - -# ifndef OPENSSL_NO_PSK -/* - * the maximum length of the buffer given to callbacks containing the - * resulting identity/psk - */ -# define PSK_MAX_IDENTITY_LEN 128 -# define PSK_MAX_PSK_LEN 256 -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_client_callback(SSL *ssl, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_server_callback(SSL *ssl, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); -int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); -const char *SSL_get_psk_identity_hint(const SSL *s); -const char *SSL_get_psk_identity(const SSL *s); -# endif - -# ifndef OPENSSL_NO_TLSEXT -/* Register callbacks to handle custom TLS Extensions for client or server. */ - -int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, - custom_ext_add_cb add_cb, - custom_ext_free_cb free_cb, - void *add_arg, - custom_ext_parse_cb parse_cb, - void *parse_arg); - -int SSL_extension_supported(unsigned int ext_type); - -# endif - -# define SSL_NOTHING 1 -# define SSL_WRITING 2 -# define SSL_READING 3 -# define SSL_X509_LOOKUP 4 - -/* These will only be used when doing non-blocking IO */ -# define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) -# define SSL_want_read(s) (SSL_want(s) == SSL_READING) -# define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) -# define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) - -# define SSL_MAC_FLAG_READ_MAC_STREAM 1 -# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 - -# ifndef OPENSSL_NO_SSL_INTERN - -struct ssl_st { - /* - * protocol version (one of SSL2_VERSION, SSL3_VERSION, TLS1_VERSION, - * DTLS1_VERSION) - */ - int version; - /* SSL_ST_CONNECT or SSL_ST_ACCEPT */ - int type; - /* SSLv3 */ - const SSL_METHOD *method; - /* - * There are 2 BIO's even though they are normally both the same. This - * is so data can be read and written to different handlers - */ -# ifndef OPENSSL_NO_BIO - /* used by SSL_read */ - BIO *rbio; - /* used by SSL_write */ - BIO *wbio; - /* used during session-id reuse to concatenate messages */ - BIO *bbio; -# else - /* used by SSL_read */ - char *rbio; - /* used by SSL_write */ - char *wbio; - char *bbio; -# endif - /* - * This holds a variable that indicates what we were doing when a 0 or -1 - * is returned. This is needed for non-blocking IO so we know what - * request needs re-doing when in SSL_accept or SSL_connect - */ - int rwstate; - /* true when we are actually in SSL_accept() or SSL_connect() */ - int in_handshake; - int (*handshake_func) (SSL *); - /* - * Imagine that here's a boolean member "init" that is switched as soon - * as SSL_set_{accept/connect}_state is called for the first time, so - * that "state" and "handshake_func" are properly initialized. But as - * handshake_func is == 0 until then, we use this test instead of an - * "init" member. - */ - /* are we the server side? - mostly used by SSL_clear */ - int server; - /* - * Generate a new session or reuse an old one. - * NB: For servers, the 'new' session may actually be a previously - * cached session or even the previous session unless - * SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION is set - */ - int new_session; - /* don't send shutdown packets */ - int quiet_shutdown; - /* we have shut things down, 0x01 sent, 0x02 for received */ - int shutdown; - /* where we are */ - int state; - /* where we are when reading */ - int rstate; - BUF_MEM *init_buf; /* buffer used during init */ - void *init_msg; /* pointer to handshake message body, set by - * ssl3_get_message() */ - int init_num; /* amount read/written */ - int init_off; /* amount read/written */ - /* used internally to point at a raw packet */ - unsigned char *packet; - unsigned int packet_length; - struct ssl2_state_st *s2; /* SSLv2 variables */ - struct ssl3_state_st *s3; /* SSLv3 variables */ - struct dtls1_state_st *d1; /* DTLSv1 variables */ - int read_ahead; /* Read as many input bytes as possible (for - * non-blocking reads) */ - /* callback that allows applications to peek at protocol messages */ - void (*msg_callback) (int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); - void *msg_callback_arg; - int hit; /* reusing a previous session */ - X509_VERIFY_PARAM *param; -# if 0 - int purpose; /* Purpose setting */ - int trust; /* Trust setting */ -# endif - /* crypto */ - STACK_OF(SSL_CIPHER) *cipher_list; - STACK_OF(SSL_CIPHER) *cipher_list_by_id; - /* - * These are the ones being used, the ones in SSL_SESSION are the ones to - * be 'copied' into these ones - */ - int mac_flags; - EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ - EVP_MD_CTX *read_hash; /* used for mac generation */ -# ifndef OPENSSL_NO_COMP - COMP_CTX *expand; /* uncompress */ -# else - char *expand; -# endif - EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ - EVP_MD_CTX *write_hash; /* used for mac generation */ -# ifndef OPENSSL_NO_COMP - COMP_CTX *compress; /* compression */ -# else - char *compress; -# endif - /* session info */ - /* client cert? */ - /* This is used to hold the server certificate used */ - struct cert_st /* CERT */ *cert; - /* - * the session_id_context is used to ensure sessions are only reused in - * the appropriate context - */ - unsigned int sid_ctx_length; - unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; - /* This can also be in the session once a session is established */ - SSL_SESSION *session; - /* Default generate session ID callback. */ - GEN_SESSION_CB generate_session_id; - /* Used in SSL2 and SSL3 */ - /* - * 0 don't care about verify failure. - * 1 fail if verify fails - */ - int verify_mode; - /* fail if callback returns 0 */ - int (*verify_callback) (int ok, X509_STORE_CTX *ctx); - /* optional informational callback */ - void (*info_callback) (const SSL *ssl, int type, int val); - /* error bytes to be written */ - int error; - /* actual code */ - int error_code; -# ifndef OPENSSL_NO_KRB5 - /* Kerberos 5 context */ - KSSL_CTX *kssl_ctx; -# endif /* OPENSSL_NO_KRB5 */ -# ifndef OPENSSL_NO_PSK - unsigned int (*psk_client_callback) (SSL *ssl, const char *hint, - char *identity, - unsigned int max_identity_len, - unsigned char *psk, - unsigned int max_psk_len); - unsigned int (*psk_server_callback) (SSL *ssl, const char *identity, - unsigned char *psk, - unsigned int max_psk_len); -# endif - SSL_CTX *ctx; - /* - * set this flag to 1 and a sleep(1) is put into all SSL_read() and - * SSL_write() calls, good for nbio debuging :-) - */ - int debug; - /* extra application data */ - long verify_result; - CRYPTO_EX_DATA ex_data; - /* for server side, keep the list of CA_dn we can use */ - STACK_OF(X509_NAME) *client_CA; - int references; - /* protocol behaviour */ - unsigned long options; - /* API behaviour */ - unsigned long mode; - long max_cert_list; - int first_packet; - /* what was passed, used for SSLv3/TLS rollback check */ - int client_version; - unsigned int max_send_fragment; -# ifndef OPENSSL_NO_TLSEXT - /* TLS extension debug callback */ - void (*tlsext_debug_cb) (SSL *s, int client_server, int type, - unsigned char *data, int len, void *arg); - void *tlsext_debug_arg; - char *tlsext_hostname; - /*- - * no further mod of servername - * 0 : call the servername extension callback. - * 1 : prepare 2, allow last ack just after in server callback. - * 2 : don't call servername callback, no ack in server hello - */ - int servername_done; - /* certificate status request info */ - /* Status type or -1 if no status type */ - int tlsext_status_type; - /* Expect OCSP CertificateStatus message */ - int tlsext_status_expected; - /* OCSP status request only */ - STACK_OF(OCSP_RESPID) *tlsext_ocsp_ids; - X509_EXTENSIONS *tlsext_ocsp_exts; - /* OCSP response received or to be sent */ - unsigned char *tlsext_ocsp_resp; - int tlsext_ocsp_resplen; - /* RFC4507 session ticket expected to be received or sent */ - int tlsext_ticket_expected; -# ifndef OPENSSL_NO_EC - size_t tlsext_ecpointformatlist_length; - /* our list */ - unsigned char *tlsext_ecpointformatlist; - size_t tlsext_ellipticcurvelist_length; - /* our list */ - unsigned char *tlsext_ellipticcurvelist; -# endif /* OPENSSL_NO_EC */ - /* - * draft-rescorla-tls-opaque-prf-input-00.txt information to be used for - * handshakes - */ - void *tlsext_opaque_prf_input; - size_t tlsext_opaque_prf_input_len; - /* TLS Session Ticket extension override */ - TLS_SESSION_TICKET_EXT *tlsext_session_ticket; - /* TLS Session Ticket extension callback */ - tls_session_ticket_ext_cb_fn tls_session_ticket_ext_cb; - void *tls_session_ticket_ext_cb_arg; - /* TLS pre-shared secret session resumption */ - tls_session_secret_cb_fn tls_session_secret_cb; - void *tls_session_secret_cb_arg; - SSL_CTX *initial_ctx; /* initial ctx, used to store sessions */ -# ifndef OPENSSL_NO_NEXTPROTONEG - /* - * Next protocol negotiation. For the client, this is the protocol that - * we sent in NextProtocol and is set when handling ServerHello - * extensions. For a server, this is the client's selected_protocol from - * NextProtocol and is set when handling the NextProtocol message, before - * the Finished message. - */ - unsigned char *next_proto_negotiated; - unsigned char next_proto_negotiated_len; -# endif -# define session_ctx initial_ctx - /* What we'll do */ - STACK_OF(SRTP_PROTECTION_PROFILE) *srtp_profiles; - /* What's been chosen */ - SRTP_PROTECTION_PROFILE *srtp_profile; - /*- - * Is use of the Heartbeat extension negotiated? - * 0: disabled - * 1: enabled - * 2: enabled, but not allowed to send Requests - */ - unsigned int tlsext_heartbeat; - /* Indicates if a HeartbeatRequest is in flight */ - unsigned int tlsext_hb_pending; - /* HeartbeatRequest sequence number */ - unsigned int tlsext_hb_seq; -# else -# define session_ctx ctx -# endif /* OPENSSL_NO_TLSEXT */ - /*- - * 1 if we are renegotiating. - * 2 if we are a server and are inside a handshake - * (i.e. not just sending a HelloRequest) - */ - int renegotiate; -# ifndef OPENSSL_NO_SRP - /* ctx for SRP authentication */ - SRP_CTX srp_ctx; -# endif -# ifndef OPENSSL_NO_TLSEXT - /* - * For a client, this contains the list of supported protocols in wire - * format. - */ - unsigned char *alpn_client_proto_list; - unsigned alpn_client_proto_list_len; -# endif /* OPENSSL_NO_TLSEXT */ -}; - -# endif - -#ifdef __cplusplus -} -#endif - -# include -# include -# include /* This is mostly sslv3 with a few tweaks */ -# include /* Datagram TLS */ -# include -# include /* Support for the use_srtp extension */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* compatibility */ -# define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg)) -# define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) -# define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a)) -# define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0)) -# define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0)) -# define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg)) - -/* - * The following are the possible values for ssl->state are are used to - * indicate where we are up to in the SSL connection establishment. The - * macros that follow are about the only things you should need to use and - * even then, only when using non-blocking IO. It can also be useful to work - * out where you were when the connection failed - */ - -# define SSL_ST_CONNECT 0x1000 -# define SSL_ST_ACCEPT 0x2000 -# define SSL_ST_MASK 0x0FFF -# define SSL_ST_INIT (SSL_ST_CONNECT|SSL_ST_ACCEPT) -# define SSL_ST_BEFORE 0x4000 -# define SSL_ST_OK 0x03 -# define SSL_ST_RENEGOTIATE (0x04|SSL_ST_INIT) -# define SSL_ST_ERR (0x05|SSL_ST_INIT) - -# define SSL_CB_LOOP 0x01 -# define SSL_CB_EXIT 0x02 -# define SSL_CB_READ 0x04 -# define SSL_CB_WRITE 0x08 -# define SSL_CB_ALERT 0x4000/* used in callback */ -# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) -# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) -# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) -# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) -# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) -# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) -# define SSL_CB_HANDSHAKE_START 0x10 -# define SSL_CB_HANDSHAKE_DONE 0x20 - -/* Is the SSL_connection established? */ -# define SSL_get_state(a) SSL_state(a) -# define SSL_is_init_finished(a) (SSL_state(a) == SSL_ST_OK) -# define SSL_in_init(a) (SSL_state(a)&SSL_ST_INIT) -# define SSL_in_before(a) (SSL_state(a)&SSL_ST_BEFORE) -# define SSL_in_connect_init(a) (SSL_state(a)&SSL_ST_CONNECT) -# define SSL_in_accept_init(a) (SSL_state(a)&SSL_ST_ACCEPT) - -/* - * The following 2 states are kept in ssl->rstate when reads fail, you should - * not need these - */ -# define SSL_ST_READ_HEADER 0xF0 -# define SSL_ST_READ_BODY 0xF1 -# define SSL_ST_READ_DONE 0xF2 - -/*- - * Obtain latest Finished message - * -- that we sent (SSL_get_finished) - * -- that we expected from peer (SSL_get_peer_finished). - * Returns length (0 == no Finished so far), copies up to 'count' bytes. - */ -size_t SSL_get_finished(const SSL *s, void *buf, size_t count); -size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count); - -/* - * use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options are - * 'ored' with SSL_VERIFY_PEER if they are desired - */ -# define SSL_VERIFY_NONE 0x00 -# define SSL_VERIFY_PEER 0x01 -# define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 -# define SSL_VERIFY_CLIENT_ONCE 0x04 - -# define OpenSSL_add_ssl_algorithms() SSL_library_init() -# define SSLeay_add_ssl_algorithms() SSL_library_init() - -/* this is for backward compatibility */ -# if 0 /* NEW_SSLEAY */ -# define SSL_CTX_set_default_verify(a,b,c) SSL_CTX_set_verify(a,b,c) -# define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n) -# define SSL_add_session(a,b) SSL_CTX_add_session((a),(b)) -# define SSL_remove_session(a,b) SSL_CTX_remove_session((a),(b)) -# define SSL_flush_sessions(a,b) SSL_CTX_flush_sessions((a),(b)) -# endif -/* More backward compatibility */ -# define SSL_get_cipher(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_cipher_bits(s,np) \ - SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) -# define SSL_get_cipher_version(s) \ - SSL_CIPHER_get_version(SSL_get_current_cipher(s)) -# define SSL_get_cipher_name(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_time(a) SSL_SESSION_get_time(a) -# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) -# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) -# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) - -# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) -# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) - -DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) -# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value - * from SSL_AD_... */ -/* These alert types are for SSLv3 and TLSv1 */ -# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY -/* fatal */ -# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE -/* fatal */ -# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC -# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED -# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW -/* fatal */ -# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE -/* fatal */ -# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE -/* Not for TLS */ -# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE -# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE -# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE -# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED -# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED -# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN -/* fatal */ -# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER -/* fatal */ -# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA -/* fatal */ -# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED -/* fatal */ -# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR -# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR -/* fatal */ -# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION -/* fatal */ -# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION -/* fatal */ -# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY -/* fatal */ -# define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR -# define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED -# define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION -# define SSL_AD_UNSUPPORTED_EXTENSION TLS1_AD_UNSUPPORTED_EXTENSION -# define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE -# define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME -# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE -# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE -/* fatal */ -# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY -/* fatal */ -# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK -# define SSL_ERROR_NONE 0 -# define SSL_ERROR_SSL 1 -# define SSL_ERROR_WANT_READ 2 -# define SSL_ERROR_WANT_WRITE 3 -# define SSL_ERROR_WANT_X509_LOOKUP 4 -# define SSL_ERROR_SYSCALL 5/* look at error stack/return - * value/errno */ -# define SSL_ERROR_ZERO_RETURN 6 -# define SSL_ERROR_WANT_CONNECT 7 -# define SSL_ERROR_WANT_ACCEPT 8 -# define SSL_CTRL_NEED_TMP_RSA 1 -# define SSL_CTRL_SET_TMP_RSA 2 -# define SSL_CTRL_SET_TMP_DH 3 -# define SSL_CTRL_SET_TMP_ECDH 4 -# define SSL_CTRL_SET_TMP_RSA_CB 5 -# define SSL_CTRL_SET_TMP_DH_CB 6 -# define SSL_CTRL_SET_TMP_ECDH_CB 7 -# define SSL_CTRL_GET_SESSION_REUSED 8 -# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 -# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 -# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 -# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 -# define SSL_CTRL_GET_FLAGS 13 -# define SSL_CTRL_EXTRA_CHAIN_CERT 14 -# define SSL_CTRL_SET_MSG_CALLBACK 15 -# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 -/* only applies to datagram connections */ -# define SSL_CTRL_SET_MTU 17 -/* Stats */ -# define SSL_CTRL_SESS_NUMBER 20 -# define SSL_CTRL_SESS_CONNECT 21 -# define SSL_CTRL_SESS_CONNECT_GOOD 22 -# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 -# define SSL_CTRL_SESS_ACCEPT 24 -# define SSL_CTRL_SESS_ACCEPT_GOOD 25 -# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 -# define SSL_CTRL_SESS_HIT 27 -# define SSL_CTRL_SESS_CB_HIT 28 -# define SSL_CTRL_SESS_MISSES 29 -# define SSL_CTRL_SESS_TIMEOUTS 30 -# define SSL_CTRL_SESS_CACHE_FULL 31 -# define SSL_CTRL_OPTIONS 32 -# define SSL_CTRL_MODE 33 -# define SSL_CTRL_GET_READ_AHEAD 40 -# define SSL_CTRL_SET_READ_AHEAD 41 -# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 -# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 -# define SSL_CTRL_SET_SESS_CACHE_MODE 44 -# define SSL_CTRL_GET_SESS_CACHE_MODE 45 -# define SSL_CTRL_GET_MAX_CERT_LIST 50 -# define SSL_CTRL_SET_MAX_CERT_LIST 51 -# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 -/* see tls1.h for macros based on these */ -# ifndef OPENSSL_NO_TLSEXT -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 -# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 -# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 -# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 -# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 -# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 -# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 -# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 -# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 -# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 -# define SSL_CTRL_SET_SRP_ARG 78 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 -# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 -# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_CTRL_TLS_EXT_SEND_HEARTBEAT 85 -# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING 86 -# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS 87 -# endif -# endif /* OPENSSL_NO_TLSEXT */ -# define DTLS_CTRL_GET_TIMEOUT 73 -# define DTLS_CTRL_HANDLE_TIMEOUT 74 -# define DTLS_CTRL_LISTEN 75 -# define SSL_CTRL_GET_RI_SUPPORT 76 -# define SSL_CTRL_CLEAR_OPTIONS 77 -# define SSL_CTRL_CLEAR_MODE 78 -# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 -# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 -# define SSL_CTRL_CHAIN 88 -# define SSL_CTRL_CHAIN_CERT 89 -# define SSL_CTRL_GET_CURVES 90 -# define SSL_CTRL_SET_CURVES 91 -# define SSL_CTRL_SET_CURVES_LIST 92 -# define SSL_CTRL_GET_SHARED_CURVE 93 -# define SSL_CTRL_SET_ECDH_AUTO 94 -# define SSL_CTRL_SET_SIGALGS 97 -# define SSL_CTRL_SET_SIGALGS_LIST 98 -# define SSL_CTRL_CERT_FLAGS 99 -# define SSL_CTRL_CLEAR_CERT_FLAGS 100 -# define SSL_CTRL_SET_CLIENT_SIGALGS 101 -# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 -# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 -# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 -# define SSL_CTRL_BUILD_CERT_CHAIN 105 -# define SSL_CTRL_SET_VERIFY_CERT_STORE 106 -# define SSL_CTRL_SET_CHAIN_CERT_STORE 107 -# define SSL_CTRL_GET_PEER_SIGNATURE_NID 108 -# define SSL_CTRL_GET_SERVER_TMP_KEY 109 -# define SSL_CTRL_GET_RAW_CIPHERLIST 110 -# define SSL_CTRL_GET_EC_POINT_FORMATS 111 -# define SSL_CTRL_GET_CHAIN_CERTS 115 -# define SSL_CTRL_SELECT_CURRENT_CERT 116 -# define SSL_CTRL_SET_CURRENT_CERT 117 -# define SSL_CTRL_CHECK_PROTO_VERSION 119 -# define DTLS_CTRL_SET_LINK_MTU 120 -# define DTLS_CTRL_GET_LINK_MIN_MTU 121 -# define SSL_CERT_SET_FIRST 1 -# define SSL_CERT_SET_NEXT 2 -# define SSL_CERT_SET_SERVER 3 -# define DTLSv1_get_timeout(ssl, arg) \ - SSL_ctrl(ssl,DTLS_CTRL_GET_TIMEOUT,0, (void *)arg) -# define DTLSv1_handle_timeout(ssl) \ - SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) -# define DTLSv1_listen(ssl, peer) \ - SSL_ctrl(ssl,DTLS_CTRL_LISTEN,0, (void *)peer) -# define SSL_session_reused(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL) -# define SSL_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_clear_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_total_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL) -# define SSL_CTX_need_tmp_RSA(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_NEED_TMP_RSA,0,NULL) -# define SSL_CTX_set_tmp_rsa(ctx,rsa) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) -# define SSL_CTX_set_tmp_dh(ctx,dh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh) -# define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) -# define SSL_need_tmp_RSA(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_NEED_TMP_RSA,0,NULL) -# define SSL_set_tmp_rsa(ssl,rsa) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa) -# define SSL_set_tmp_dh(ssl,dh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh) -# define SSL_set_tmp_ecdh(ssl,ecdh) \ - SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh) -# define SSL_CTX_add_extra_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) -# define SSL_CTX_get_extra_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,0,px509) -# define SSL_CTX_get_extra_chain_certs_only(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) -# define SSL_CTX_clear_extra_chain_certs(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS,0,NULL) -# define SSL_CTX_set0_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) -# define SSL_CTX_set1_chain(ctx,sk) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) -# define SSL_CTX_add0_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) -# define SSL_CTX_add1_chain_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) -# define SSL_CTX_get0_chain_certs(ctx,px509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_CTX_clear_chain_certs(ctx) \ - SSL_CTX_set0_chain(ctx,NULL) -# define SSL_CTX_build_cert_chain(ctx, flags) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_CTX_select_current_cert(ctx,x509) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) -# define SSL_CTX_set_current_cert(ctx, op) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_CTX_set0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) -# define SSL_CTX_set1_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) -# define SSL_CTX_set0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) -# define SSL_CTX_set1_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) -# define SSL_set0_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) -# define SSL_set1_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) -# define SSL_add0_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) -# define SSL_add1_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) -# define SSL_get0_chain_certs(ctx,px509) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(ctx) \ - SSL_set0_chain(ctx,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) -# define SSL_set_current_cert(ctx,op) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) -# define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) -# define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) -# define SSL_get1_curves(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) -# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_CTX_set1_curves_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_set1_curves(ctx, clist, clistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_set1_curves_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_get_shared_curve(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) -# define SSL_CTX_set_ecdh_auto(ctx, onoff) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) -# define SSL_set_ecdh_auto(s, onoff) \ - SSL_ctrl(s,SSL_CTRL_SET_ECDH_AUTO,onoff,NULL) -# define SSL_CTX_set1_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) -# define SSL_CTX_set1_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) -# define SSL_set1_sigalgs(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) -# define SSL_set1_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) -# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)slist) -# define SSL_CTX_set1_client_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) -# define SSL_set1_client_sigalgs(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) -# define SSL_set1_client_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) -# define SSL_get0_certificate_types(s, clist) \ - SSL_ctrl(s, SSL_CTRL_GET_CLIENT_CERT_TYPES, 0, (char *)clist) -# define SSL_CTX_set1_client_certificate_types(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) -# define SSL_set1_client_certificate_types(s, clist, clistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_CERT_TYPES,clistlen,(char *)clist) -# define SSL_get_peer_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_server_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) -# define SSL_get0_raw_cipherlist(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_RAW_CIPHERLIST,0,(char *)plst) -# define SSL_get0_ec_point_formats(s, plst) \ - SSL_ctrl(s,SSL_CTRL_GET_EC_POINT_FORMATS,0,(char *)plst) -# ifndef OPENSSL_NO_BIO -BIO_METHOD *BIO_f_ssl(void); -BIO *BIO_new_ssl(SSL_CTX *ctx, int client); -BIO *BIO_new_ssl_connect(SSL_CTX *ctx); -BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); -int BIO_ssl_copy_session_id(BIO *to, BIO *from); -void BIO_ssl_shutdown(BIO *ssl_bio); - -# endif - -int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); -SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); -void SSL_CTX_free(SSL_CTX *); -long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); -long SSL_CTX_get_timeout(const SSL_CTX *ctx); -X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *); -void SSL_CTX_set_cert_store(SSL_CTX *, X509_STORE *); -int SSL_want(const SSL *s); -int SSL_clear(SSL *s); - -void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); - -const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); -int SSL_CIPHER_get_bits(const SSL_CIPHER *c, int *alg_bits); -char *SSL_CIPHER_get_version(const SSL_CIPHER *c); -const char *SSL_CIPHER_get_name(const SSL_CIPHER *c); -unsigned long SSL_CIPHER_get_id(const SSL_CIPHER *c); - -int SSL_get_fd(const SSL *s); -int SSL_get_rfd(const SSL *s); -int SSL_get_wfd(const SSL *s); -const char *SSL_get_cipher_list(const SSL *s, int n); -char *SSL_get_shared_ciphers(const SSL *s, char *buf, int len); -int SSL_get_read_ahead(const SSL *s); -int SSL_pending(const SSL *s); -# ifndef OPENSSL_NO_SOCK -int SSL_set_fd(SSL *s, int fd); -int SSL_set_rfd(SSL *s, int fd); -int SSL_set_wfd(SSL *s, int fd); -# endif -# ifndef OPENSSL_NO_BIO -void SSL_set_bio(SSL *s, BIO *rbio, BIO *wbio); -BIO *SSL_get_rbio(const SSL *s); -BIO *SSL_get_wbio(const SSL *s); -# endif -int SSL_set_cipher_list(SSL *s, const char *str); -void SSL_set_read_ahead(SSL *s, int yes); -int SSL_get_verify_mode(const SSL *s); -int SSL_get_verify_depth(const SSL *s); -int (*SSL_get_verify_callback(const SSL *s)) (int, X509_STORE_CTX *); -void SSL_set_verify(SSL *s, int mode, - int (*callback) (int ok, X509_STORE_CTX *ctx)); -void SSL_set_verify_depth(SSL *s, int depth); -void SSL_set_cert_cb(SSL *s, int (*cb) (SSL *ssl, void *arg), void *arg); -# ifndef OPENSSL_NO_RSA -int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); -# endif -int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); -int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); -int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, - long len); -int SSL_use_certificate(SSL *ssl, X509 *x); -int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); - -# ifndef OPENSSL_NO_TLSEXT -/* Set serverinfo data for the current active cert. */ -int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, - size_t serverinfo_length); -# ifndef OPENSSL_NO_STDIO -int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); -# endif /* NO_STDIO */ - -# endif - -# ifndef OPENSSL_NO_STDIO -int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); -int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); -int SSL_use_certificate_file(SSL *ssl, const char *file, int type); -int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); -int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); -int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); -/* PEM type */ -int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); -STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); -int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *file); -# ifndef OPENSSL_SYS_VMS -/* XXXXX: Better scheme needed! [was: #ifndef MAC_OS_pre_X] */ -# ifndef OPENSSL_SYS_MACINTOSH_CLASSIC -int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, - const char *dir); -# endif -# endif - -# endif - -void SSL_load_error_strings(void); -const char *SSL_state_string(const SSL *s); -const char *SSL_rstate_string(const SSL *s); -const char *SSL_state_string_long(const SSL *s); -const char *SSL_rstate_string_long(const SSL *s); -long SSL_SESSION_get_time(const SSL_SESSION *s); -long SSL_SESSION_set_time(SSL_SESSION *s, long t); -long SSL_SESSION_get_timeout(const SSL_SESSION *s); -long SSL_SESSION_set_timeout(SSL_SESSION *s, long t); -void SSL_copy_session_id(SSL *to, const SSL *from); -X509 *SSL_SESSION_get0_peer(SSL_SESSION *s); -int SSL_SESSION_set1_id_context(SSL_SESSION *s, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -SSL_SESSION *SSL_SESSION_new(void); -const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, - unsigned int *len); -unsigned int SSL_SESSION_get_compress_id(const SSL_SESSION *s); -# ifndef OPENSSL_NO_FP_API -int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *ses); -# endif -# ifndef OPENSSL_NO_BIO -int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); -# endif -void SSL_SESSION_free(SSL_SESSION *ses); -int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); -int SSL_set_session(SSL *to, SSL_SESSION *session); -int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); -int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); -int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); -int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); -int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, - unsigned int id_len); -SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, - long length); - -# ifdef HEADER_X509_H -X509 *SSL_get_peer_certificate(const SSL *s); -# endif - -STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); - -int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); -int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); -int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx)) (int, - X509_STORE_CTX *); -void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, - int (*callback) (int, X509_STORE_CTX *)); -void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); -void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, - int (*cb) (X509_STORE_CTX *, void *), - void *arg); -void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), - void *arg); -# ifndef OPENSSL_NO_RSA -int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); -# endif -int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, - long len); -int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); -int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, - const unsigned char *d, long len); -int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); -int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, - const unsigned char *d); - -void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); -void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); - -int SSL_CTX_check_private_key(const SSL_CTX *ctx); -int SSL_check_private_key(const SSL *ctx); - -int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -SSL *SSL_new(SSL_CTX *ctx); -int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, - unsigned int sid_ctx_len); - -int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); -int SSL_set_purpose(SSL *s, int purpose); -int SSL_CTX_set_trust(SSL_CTX *s, int trust); -int SSL_set_trust(SSL *s, int trust); - -int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); - -X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); -X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); - -# ifndef OPENSSL_NO_SRP -int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); -int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); -int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); -int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, - char *(*cb) (SSL *, void *)); -int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, - int (*cb) (SSL *, void *)); -int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, - int (*cb) (SSL *, int *, void *)); -int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); - -int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, - BIGNUM *sa, BIGNUM *v, char *info); -int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, - const char *grp); - -BIGNUM *SSL_get_srp_g(SSL *s); -BIGNUM *SSL_get_srp_N(SSL *s); - -char *SSL_get_srp_username(SSL *s); -char *SSL_get_srp_userinfo(SSL *s); -# endif - -void SSL_certs_clear(SSL *s); -void SSL_free(SSL *ssl); -int SSL_accept(SSL *ssl); -int SSL_connect(SSL *ssl); -int SSL_read(SSL *ssl, void *buf, int num); -int SSL_peek(SSL *ssl, void *buf, int num); -int SSL_write(SSL *ssl, const void *buf, int num); -long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); -long SSL_callback_ctrl(SSL *, int, void (*)(void)); -long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); -long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void)); - -int SSL_get_error(const SSL *s, int ret_code); -const char *SSL_get_version(const SSL *s); - -/* This sets the 'default' SSL version that SSL_new() will create */ -int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); - -# ifndef OPENSSL_NO_SSL2_METHOD -const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ -const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ -const SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ -# endif - -# ifndef OPENSSL_NO_SSL3_METHOD -const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ -const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ -const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ -# endif - -const SSL_METHOD *SSLv23_method(void); /* Negotiate highest available SSL/TLS - * version */ -const SSL_METHOD *SSLv23_server_method(void); /* Negotiate highest available - * SSL/TLS version */ -const SSL_METHOD *SSLv23_client_method(void); /* Negotiate highest available - * SSL/TLS version */ - -const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ -const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ -const SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */ - -const SSL_METHOD *TLSv1_1_method(void); /* TLSv1.1 */ -const SSL_METHOD *TLSv1_1_server_method(void); /* TLSv1.1 */ -const SSL_METHOD *TLSv1_1_client_method(void); /* TLSv1.1 */ - -const SSL_METHOD *TLSv1_2_method(void); /* TLSv1.2 */ -const SSL_METHOD *TLSv1_2_server_method(void); /* TLSv1.2 */ -const SSL_METHOD *TLSv1_2_client_method(void); /* TLSv1.2 */ - -const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ -const SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ -const SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ - -const SSL_METHOD *DTLSv1_2_method(void); /* DTLSv1.2 */ -const SSL_METHOD *DTLSv1_2_server_method(void); /* DTLSv1.2 */ -const SSL_METHOD *DTLSv1_2_client_method(void); /* DTLSv1.2 */ - -const SSL_METHOD *DTLS_method(void); /* DTLS 1.0 and 1.2 */ -const SSL_METHOD *DTLS_server_method(void); /* DTLS 1.0 and 1.2 */ -const SSL_METHOD *DTLS_client_method(void); /* DTLS 1.0 and 1.2 */ - -STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); - -int SSL_do_handshake(SSL *s); -int SSL_renegotiate(SSL *s); -int SSL_renegotiate_abbreviated(SSL *s); -int SSL_renegotiate_pending(SSL *s); -int SSL_shutdown(SSL *s); - -const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); -const SSL_METHOD *SSL_get_ssl_method(SSL *s); -int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); -const char *SSL_alert_type_string_long(int value); -const char *SSL_alert_type_string(int value); -const char *SSL_alert_desc_string_long(int value); -const char *SSL_alert_desc_string(int value); - -void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list); -void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list); -STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); -STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); -int SSL_add_client_CA(SSL *ssl, X509 *x); -int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); - -void SSL_set_connect_state(SSL *s); -void SSL_set_accept_state(SSL *s); - -long SSL_get_default_timeout(const SSL *s); - -int SSL_library_init(void); - -char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk); - -SSL *SSL_dup(SSL *ssl); - -X509 *SSL_get_certificate(const SSL *ssl); -/* - * EVP_PKEY - */ struct evp_pkey_st *SSL_get_privatekey(const SSL *ssl); - -X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); -EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); - -void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); -int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); -void SSL_set_quiet_shutdown(SSL *ssl, int mode); -int SSL_get_quiet_shutdown(const SSL *ssl); -void SSL_set_shutdown(SSL *ssl, int mode); -int SSL_get_shutdown(const SSL *ssl); -int SSL_version(const SSL *ssl); -int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); -int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, - const char *CApath); -# define SSL_get0_session SSL_get_session/* just peek at pointer */ -SSL_SESSION *SSL_get_session(const SSL *ssl); -SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ -SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); -SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); -void SSL_set_info_callback(SSL *ssl, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, - int val); -int SSL_state(const SSL *ssl); -void SSL_set_state(SSL *ssl, int state); - -void SSL_set_verify_result(SSL *ssl, long v); -long SSL_get_verify_result(const SSL *ssl); - -int SSL_set_ex_data(SSL *ssl, int idx, void *data); -void *SSL_get_ex_data(const SSL *ssl, int idx); -int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); - -int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); -void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); -int SSL_SESSION_get_ex_new_index(long argl, void *argp, - CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); - -int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); -void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); -int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); - -int SSL_get_ex_data_X509_STORE_CTX_idx(void); - -# define SSL_CTX_sess_set_cache_size(ctx,t) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) -# define SSL_CTX_sess_get_cache_size(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) -# define SSL_CTX_set_session_cache_mode(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) -# define SSL_CTX_get_session_cache_mode(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) - -# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) -# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) -# define SSL_CTX_get_read_ahead(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) -# define SSL_CTX_set_read_ahead(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) -# define SSL_CTX_get_max_cert_list(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_CTX_set_max_cert_list(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) -# define SSL_get_max_cert_list(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_set_max_cert_list(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) - -# define SSL_CTX_set_max_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_set_max_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) - - /* NB: the keylength is only applicable when is_export is true */ -# ifndef OPENSSL_NO_RSA -void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, - RSA *(*cb) (SSL *ssl, int is_export, - int keylength)); - -void SSL_set_tmp_rsa_callback(SSL *ssl, - RSA *(*cb) (SSL *ssl, int is_export, - int keylength)); -# endif -# ifndef OPENSSL_NO_DH -void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -void SSL_set_tmp_dh_callback(SSL *ssl, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -# endif -# ifndef OPENSSL_NO_ECDH -void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx, - EC_KEY *(*ecdh) (SSL *ssl, int is_export, - int keylength)); -void SSL_set_tmp_ecdh_callback(SSL *ssl, - EC_KEY *(*ecdh) (SSL *ssl, int is_export, - int keylength)); -# endif - -const COMP_METHOD *SSL_get_current_compression(SSL *s); -const COMP_METHOD *SSL_get_current_expansion(SSL *s); -const char *SSL_COMP_get_name(const COMP_METHOD *comp); -STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); -STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) - *meths); -void SSL_COMP_free_compression_methods(void); -int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); - -const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); - -/* TLS extensions functions */ -int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); - -int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, - void *arg); - -/* Pre-shared secret session resumption functions */ -int SSL_set_session_secret_cb(SSL *s, - tls_session_secret_cb_fn tls_session_secret_cb, - void *arg); - -void SSL_set_debug(SSL *s, int debug); -int SSL_cache_hit(SSL *s); -int SSL_is_server(SSL *s); - -SSL_CONF_CTX *SSL_CONF_CTX_new(void); -int SSL_CONF_CTX_finish(SSL_CONF_CTX *cctx); -void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); -unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); -unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); -int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *pre); - -void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); -void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); - -int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); -int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); -int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); - -# ifndef OPENSSL_NO_SSL_TRACE -void SSL_trace(int write_p, int version, int content_type, - const void *buf, size_t len, SSL *ssl, void *arg); -const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); -# endif - -# ifndef OPENSSL_NO_UNIT_TEST -const struct openssl_ssl_test_functions *SSL_test_functions(void); -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_SSL_strings(void); - -/* Error codes for the SSL functions. */ - -/* Function codes. */ -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 -# define SSL_F_CLIENT_CERTIFICATE 100 -# define SSL_F_CLIENT_FINISHED 167 -# define SSL_F_CLIENT_HELLO 101 -# define SSL_F_CLIENT_MASTER_KEY 102 -# define SSL_F_D2I_SSL_SESSION 103 -# define SSL_F_DO_DTLS1_WRITE 245 -# define SSL_F_DO_SSL3_WRITE 104 -# define SSL_F_DTLS1_ACCEPT 246 -# define SSL_F_DTLS1_ADD_CERT_TO_BUF 295 -# define SSL_F_DTLS1_BUFFER_RECORD 247 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 316 -# define SSL_F_DTLS1_CLIENT_HELLO 248 -# define SSL_F_DTLS1_CONNECT 249 -# define SSL_F_DTLS1_ENC 250 -# define SSL_F_DTLS1_GET_HELLO_VERIFY 251 -# define SSL_F_DTLS1_GET_MESSAGE 252 -# define SSL_F_DTLS1_GET_MESSAGE_FRAGMENT 253 -# define SSL_F_DTLS1_GET_RECORD 254 -# define SSL_F_DTLS1_HANDLE_TIMEOUT 297 -# define SSL_F_DTLS1_HEARTBEAT 305 -# define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 -# define SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE 256 -# define SSL_F_DTLS1_PROCESS_RECORD 257 -# define SSL_F_DTLS1_READ_BYTES 258 -# define SSL_F_DTLS1_READ_FAILED 259 -# define SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST 260 -# define SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE 261 -# define SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE 262 -# define SSL_F_DTLS1_SEND_CLIENT_VERIFY 263 -# define SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST 264 -# define SSL_F_DTLS1_SEND_SERVER_CERTIFICATE 265 -# define SSL_F_DTLS1_SEND_SERVER_HELLO 266 -# define SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE 267 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 -# define SSL_F_GET_CLIENT_FINISHED 105 -# define SSL_F_GET_CLIENT_HELLO 106 -# define SSL_F_GET_CLIENT_MASTER_KEY 107 -# define SSL_F_GET_SERVER_FINISHED 108 -# define SSL_F_GET_SERVER_HELLO 109 -# define SSL_F_GET_SERVER_STATIC_DH_KEY 340 -# define SSL_F_GET_SERVER_VERIFY 110 -# define SSL_F_I2D_SSL_SESSION 111 -# define SSL_F_READ_N 112 -# define SSL_F_REQUEST_CERTIFICATE 113 -# define SSL_F_SERVER_FINISH 239 -# define SSL_F_SERVER_HELLO 114 -# define SSL_F_SERVER_VERIFY 240 -# define SSL_F_SSL23_ACCEPT 115 -# define SSL_F_SSL23_CLIENT_HELLO 116 -# define SSL_F_SSL23_CONNECT 117 -# define SSL_F_SSL23_GET_CLIENT_HELLO 118 -# define SSL_F_SSL23_GET_SERVER_HELLO 119 -# define SSL_F_SSL23_PEEK 237 -# define SSL_F_SSL23_READ 120 -# define SSL_F_SSL23_WRITE 121 -# define SSL_F_SSL2_ACCEPT 122 -# define SSL_F_SSL2_CONNECT 123 -# define SSL_F_SSL2_ENC_INIT 124 -# define SSL_F_SSL2_GENERATE_KEY_MATERIAL 241 -# define SSL_F_SSL2_PEEK 234 -# define SSL_F_SSL2_READ 125 -# define SSL_F_SSL2_READ_INTERNAL 236 -# define SSL_F_SSL2_SET_CERTIFICATE 126 -# define SSL_F_SSL2_WRITE 127 -# define SSL_F_SSL3_ACCEPT 128 -# define SSL_F_SSL3_ADD_CERT_TO_BUF 296 -# define SSL_F_SSL3_CALLBACK_CTRL 233 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 -# define SSL_F_SSL3_CHECK_CLIENT_HELLO 304 -# define SSL_F_SSL3_CHECK_FINISHED 339 -# define SSL_F_SSL3_CLIENT_HELLO 131 -# define SSL_F_SSL3_CONNECT 132 -# define SSL_F_SSL3_CTRL 213 -# define SSL_F_SSL3_CTX_CTRL 133 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 -# define SSL_F_SSL3_ENC 134 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 -# define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 -# define SSL_F_SSL3_GET_CERT_STATUS 289 -# define SSL_F_SSL3_GET_CERT_VERIFY 136 -# define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137 -# define SSL_F_SSL3_GET_CLIENT_HELLO 138 -# define SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE 139 -# define SSL_F_SSL3_GET_FINISHED 140 -# define SSL_F_SSL3_GET_KEY_EXCHANGE 141 -# define SSL_F_SSL3_GET_MESSAGE 142 -# define SSL_F_SSL3_GET_NEW_SESSION_TICKET 283 -# define SSL_F_SSL3_GET_NEXT_PROTO 306 -# define SSL_F_SSL3_GET_RECORD 143 -# define SSL_F_SSL3_GET_SERVER_CERTIFICATE 144 -# define SSL_F_SSL3_GET_SERVER_DONE 145 -# define SSL_F_SSL3_GET_SERVER_HELLO 146 -# define SSL_F_SSL3_HANDSHAKE_MAC 285 -# define SSL_F_SSL3_NEW_SESSION_TICKET 287 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 -# define SSL_F_SSL3_PEEK 235 -# define SSL_F_SSL3_READ_BYTES 148 -# define SSL_F_SSL3_READ_N 149 -# define SSL_F_SSL3_SEND_CERTIFICATE_REQUEST 150 -# define SSL_F_SSL3_SEND_CLIENT_CERTIFICATE 151 -# define SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE 152 -# define SSL_F_SSL3_SEND_CLIENT_VERIFY 153 -# define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154 -# define SSL_F_SSL3_SEND_SERVER_HELLO 242 -# define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 -# define SSL_F_SSL3_SETUP_READ_BUFFER 156 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 -# define SSL_F_SSL3_WRITE_BYTES 158 -# define SSL_F_SSL3_WRITE_PENDING 159 -# define SSL_F_SSL_ADD_CERT_CHAIN 318 -# define SSL_F_SSL_ADD_CERT_TO_BUF 319 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 -# define SSL_F_SSL_BAD_METHOD 160 -# define SSL_F_SSL_BUILD_CERT_CHAIN 332 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 -# define SSL_F_SSL_CERT_DUP 221 -# define SSL_F_SSL_CERT_INST 222 -# define SSL_F_SSL_CERT_INSTANTIATE 214 -# define SSL_F_SSL_CERT_NEW 162 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 -# define SSL_F_SSL_CLEAR 164 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 -# define SSL_F_SSL_CONF_CMD 334 -# define SSL_F_SSL_CREATE_CIPHER_LIST 166 -# define SSL_F_SSL_CTRL 232 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 -# define SSL_F_SSL_CTX_MAKE_PROFILES 309 -# define SSL_F_SSL_CTX_NEW 169 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 -# define SSL_F_SSL_CTX_SET_PURPOSE 226 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 -# define SSL_F_SSL_CTX_SET_TRUST 229 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE 220 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 -# define SSL_F_SSL_CTX_USE_SERVERINFO 336 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 -# define SSL_F_SSL_DO_HANDSHAKE 180 -# define SSL_F_SSL_GET_NEW_SESSION 181 -# define SSL_F_SSL_GET_PREV_SESSION 217 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 -# define SSL_F_SSL_GET_SERVER_SEND_CERT 182 -# define SSL_F_SSL_GET_SERVER_SEND_PKEY 317 -# define SSL_F_SSL_GET_SIGN_PKEY 183 -# define SSL_F_SSL_INIT_WBIO_BUFFER 184 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 -# define SSL_F_SSL_NEW 186 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 -# define SSL_F_SSL_PEEK 270 -# define SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT 281 -# define SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT 282 -# define SSL_F_SSL_READ 223 -# define SSL_F_SSL_RSA_PRIVATE_DECRYPT 187 -# define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 -# define SSL_F_SSL_SESSION_DUP 348 -# define SSL_F_SSL_SESSION_NEW 189 -# define SSL_F_SSL_SESSION_PRINT_FP 190 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -# define SSL_F_SSL_SESS_CERT_NEW 225 -# define SSL_F_SSL_SET_CERT 191 -# define SSL_F_SSL_SET_CIPHER_LIST 271 -# define SSL_F_SSL_SET_FD 192 -# define SSL_F_SSL_SET_PKEY 193 -# define SSL_F_SSL_SET_PURPOSE 227 -# define SSL_F_SSL_SET_RFD 194 -# define SSL_F_SSL_SET_SESSION 195 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 -# define SSL_F_SSL_SET_TRUST 228 -# define SSL_F_SSL_SET_WFD 196 -# define SSL_F_SSL_SHUTDOWN 224 -# define SSL_F_SSL_SRP_CTX_INIT 313 -# define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243 -# define SSL_F_SSL_UNDEFINED_FUNCTION 197 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 -# define SSL_F_SSL_USE_CERTIFICATE 198 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 -# define SSL_F_SSL_USE_PRIVATEKEY 201 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 -# define SSL_F_SSL_WRITE 208 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 -# define SSL_F_TLS1_CERT_VERIFY_MAC 286 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 -# define SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT 274 -# define SSL_F_TLS1_ENC 210 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 -# define SSL_F_TLS1_GET_CURVELIST 338 -# define SSL_F_TLS1_HEARTBEAT 315 -# define SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT 275 -# define SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT 276 -# define SSL_F_TLS1_PRF 284 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 -# define SSL_F_WRITE_PENDING 212 - -/* Reason codes. */ -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_BAD_ALERT_RECORD 101 -# define SSL_R_BAD_AUTHENTICATION_TYPE 102 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_CHECKSUM 104 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_G_LENGTH 108 -# define SSL_R_BAD_DH_G_VALUE 375 -# define SSL_R_BAD_DH_PUB_KEY_LENGTH 109 -# define SSL_R_BAD_DH_PUB_KEY_VALUE 393 -# define SSL_R_BAD_DH_P_LENGTH 110 -# define SSL_R_BAD_DH_P_VALUE 395 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_DSA_SIGNATURE 112 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECDSA_SIGNATURE 305 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_MAC_DECODE 113 -# define SSL_R_BAD_MAC_LENGTH 333 -# define SSL_R_BAD_MESSAGE_TYPE 114 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH 316 -# define SSL_R_BAD_RESPONSE_ARGUMENT 117 -# define SSL_R_BAD_RSA_DECRYPT 118 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_RSA_E_LENGTH 120 -# define SSL_R_BAD_RSA_MODULUS_LENGTH 121 -# define SSL_R_BAD_RSA_SIGNATURE 122 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_B_LENGTH 348 -# define SSL_R_BAD_SRP_G_LENGTH 349 -# define SSL_R_BAD_SRP_N_LENGTH 350 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRP_S_LENGTH 351 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_SSL_SESSION_ID_LENGTH 125 -# define SSL_R_BAD_STATE 126 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_DN_TOO_LONG 132 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CHALLENGE_IS_DIFFERENT 136 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 -# define SSL_R_CIPHER_TABLE_SRC_ERROR 139 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_ID_IS_DIFFERENT 143 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 372 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT 317 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE 322 -# define SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE 323 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER 310 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_GENERATING_TMP_RSA_KEY 282 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS 355 -# define SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION 356 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_PADDING 283 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INVALID_CHALLENGE_LENGTH 158 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_PURPOSE 278 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_INVALID_TRUST 279 -# define SSL_R_KEY_ARG_TOO_LONG 284 -# define SSL_R_KRB5 285 -# define SSL_R_KRB5_C_CC_PRINC 286 -# define SSL_R_KRB5_C_GET_CRED 287 -# define SSL_R_KRB5_C_INIT 288 -# define SSL_R_KRB5_C_MK_REQ 289 -# define SSL_R_KRB5_S_BAD_TICKET 290 -# define SSL_R_KRB5_S_INIT 291 -# define SSL_R_KRB5_S_RD_REQ 292 -# define SSL_R_KRB5_S_TKT_EXPIRED 293 -# define SSL_R_KRB5_S_TKT_NYV 294 -# define SSL_R_KRB5_S_TKT_SKEW 295 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_MESSAGE_TOO_LONG 296 -# define SSL_R_MISSING_DH_DSA_CERT 162 -# define SSL_R_MISSING_DH_KEY 163 -# define SSL_R_MISSING_DH_RSA_CERT 164 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDH_CERT 382 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_EXPORT_TMP_DH_KEY 166 -# define SSL_R_MISSING_EXPORT_TMP_RSA_KEY 167 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_MISSING_TMP_RSA_KEY 172 -# define SSL_R_MISSING_TMP_RSA_PKEY 173 -# define SSL_R_MISSING_VERIFY_MESSAGE 174 -# define SSL_R_MULTIPLE_SGC_RESTARTS 346 -# define SSL_R_NON_SSLV2_INITIAL_PACKET 175 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_RETURNED 178 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CERTIFICATE_SPECIFIED 180 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_PASSED 182 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_LIST 184 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_CLIENT_CERT_RECEIVED 186 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATEKEY 189 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_PUBLICKEY 192 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_SIGATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_VERIFY_CALLBACK 194 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_ONLY_DTLS_1_2_ALLOWED_IN_SUITEB_MODE 387 -# define SSL_R_ONLY_TLS_1_2_ALLOWED_IN_SUITEB_MODE 379 -# define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 297 -# define SSL_R_OPAQUE_PRF_INPUT_TOO_LONG 327 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEER_ERROR 200 -# define SSL_R_PEER_ERROR_CERTIFICATE 201 -# define SSL_R_PEER_ERROR_NO_CERTIFICATE 202 -# define SSL_R_PEER_ERROR_NO_CIPHER 203 -# define SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE 204 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PRE_MAC_LENGTH_TOO_LONG 205 -# define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_PUBLIC_KEY_ENCRYPT_ERROR 208 -# define SSL_R_PUBLIC_KEY_IS_NOT_RSA 209 -# define SSL_R_PUBLIC_KEY_NOT_RSA 210 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_READ_WRONG_PACKET_TYPE 212 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_LARGE 214 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSSION_ALGORITHM_MISSING 342 -# define SSL_R_REUSE_CERT_LENGTH_NOT_ZERO 216 -# define SSL_R_REUSE_CERT_TYPE_NOT_ZERO 217 -# define SSL_R_REUSE_CIPHER_LIST_NOT_ZERO 218 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHORT_READ 219 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221 -# define SSL_R_SSL2_CONNECTION_ID_TOO_LONG 299 -# define SSL_R_SSL3_EXT_INVALID_ECPOINTFORMAT 321 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_ID_IS_DIFFERENT 231 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 -# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 -# define SSL_R_TLS_HEARTBEAT_PENDING 366 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 -# define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 -# define SSL_R_UNABLE_TO_DECODE_DH_CERTS 236 -# define SSL_R_UNABLE_TO_DECODE_ECDH_CERTS 313 -# define SSL_R_UNABLE_TO_EXTRACT_PUBLIC_KEY 237 -# define SSL_R_UNABLE_TO_FIND_DH_PARAMETERS 238 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_FIND_SSL_METHOD 240 -# define SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES 241 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_REMOTE_ERROR_TYPE 253 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSUPPORTED_CIPHER 256 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_DIGEST_TYPE 326 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_WRITE_BIO_NOT_SET 260 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_MESSAGE_TYPE 262 -# define SSL_R_WRONG_NUMBER_OF_KEY_BITS 263 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ssl2.h b/3rdparty/openssl/include/openssl/ssl2.h deleted file mode 100644 index 03c7dd8..0000000 --- a/3rdparty/openssl/include/openssl/ssl2.h +++ /dev/null @@ -1,265 +0,0 @@ -/* ssl/ssl2.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_SSL2_H -# define HEADER_SSL2_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Protocol Version Codes */ -# define SSL2_VERSION 0x0002 -# define SSL2_VERSION_MAJOR 0x00 -# define SSL2_VERSION_MINOR 0x02 -/* #define SSL2_CLIENT_VERSION 0x0002 */ -/* #define SSL2_SERVER_VERSION 0x0002 */ - -/* Protocol Message Codes */ -# define SSL2_MT_ERROR 0 -# define SSL2_MT_CLIENT_HELLO 1 -# define SSL2_MT_CLIENT_MASTER_KEY 2 -# define SSL2_MT_CLIENT_FINISHED 3 -# define SSL2_MT_SERVER_HELLO 4 -# define SSL2_MT_SERVER_VERIFY 5 -# define SSL2_MT_SERVER_FINISHED 6 -# define SSL2_MT_REQUEST_CERTIFICATE 7 -# define SSL2_MT_CLIENT_CERTIFICATE 8 - -/* Error Message Codes */ -# define SSL2_PE_UNDEFINED_ERROR 0x0000 -# define SSL2_PE_NO_CIPHER 0x0001 -# define SSL2_PE_NO_CERTIFICATE 0x0002 -# define SSL2_PE_BAD_CERTIFICATE 0x0004 -# define SSL2_PE_UNSUPPORTED_CERTIFICATE_TYPE 0x0006 - -/* Cipher Kind Values */ -# define SSL2_CK_NULL_WITH_MD5 0x02000000/* v3 */ -# define SSL2_CK_RC4_128_WITH_MD5 0x02010080 -# define SSL2_CK_RC4_128_EXPORT40_WITH_MD5 0x02020080 -# define SSL2_CK_RC2_128_CBC_WITH_MD5 0x02030080 -# define SSL2_CK_RC2_128_CBC_EXPORT40_WITH_MD5 0x02040080 -# define SSL2_CK_IDEA_128_CBC_WITH_MD5 0x02050080 -# define SSL2_CK_DES_64_CBC_WITH_MD5 0x02060040 -# define SSL2_CK_DES_64_CBC_WITH_SHA 0x02060140/* v3 */ -# define SSL2_CK_DES_192_EDE3_CBC_WITH_MD5 0x020700c0 -# define SSL2_CK_DES_192_EDE3_CBC_WITH_SHA 0x020701c0/* v3 */ -# define SSL2_CK_RC4_64_WITH_MD5 0x02080080/* MS hack */ - -# define SSL2_CK_DES_64_CFB64_WITH_MD5_1 0x02ff0800/* SSLeay */ -# define SSL2_CK_NULL 0x02ff0810/* SSLeay */ - -# define SSL2_TXT_DES_64_CFB64_WITH_MD5_1 "DES-CFB-M1" -# define SSL2_TXT_NULL_WITH_MD5 "NULL-MD5" -# define SSL2_TXT_RC4_128_WITH_MD5 "RC4-MD5" -# define SSL2_TXT_RC4_128_EXPORT40_WITH_MD5 "EXP-RC4-MD5" -# define SSL2_TXT_RC2_128_CBC_WITH_MD5 "RC2-CBC-MD5" -# define SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 "EXP-RC2-CBC-MD5" -# define SSL2_TXT_IDEA_128_CBC_WITH_MD5 "IDEA-CBC-MD5" -# define SSL2_TXT_DES_64_CBC_WITH_MD5 "DES-CBC-MD5" -# define SSL2_TXT_DES_64_CBC_WITH_SHA "DES-CBC-SHA" -# define SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 "DES-CBC3-MD5" -# define SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA "DES-CBC3-SHA" -# define SSL2_TXT_RC4_64_WITH_MD5 "RC4-64-MD5" - -# define SSL2_TXT_NULL "NULL" - -/* Flags for the SSL_CIPHER.algorithm2 field */ -# define SSL2_CF_5_BYTE_ENC 0x01 -# define SSL2_CF_8_BYTE_ENC 0x02 - -/* Certificate Type Codes */ -# define SSL2_CT_X509_CERTIFICATE 0x01 - -/* Authentication Type Code */ -# define SSL2_AT_MD5_WITH_RSA_ENCRYPTION 0x01 - -# define SSL2_MAX_SSL_SESSION_ID_LENGTH 32 - -/* Upper/Lower Bounds */ -# define SSL2_MAX_MASTER_KEY_LENGTH_IN_BITS 256 -# ifdef OPENSSL_SYS_MPE -# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 29998u -# else -# define SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER 32767u - /* 2^15-1 */ -# endif -# define SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER 16383/* 2^14-1 */ - -# define SSL2_CHALLENGE_LENGTH 16 -/* - * #define SSL2_CHALLENGE_LENGTH 32 - */ -# define SSL2_MIN_CHALLENGE_LENGTH 16 -# define SSL2_MAX_CHALLENGE_LENGTH 32 -# define SSL2_CONNECTION_ID_LENGTH 16 -# define SSL2_MAX_CONNECTION_ID_LENGTH 16 -# define SSL2_SSL_SESSION_ID_LENGTH 16 -# define SSL2_MAX_CERT_CHALLENGE_LENGTH 32 -# define SSL2_MIN_CERT_CHALLENGE_LENGTH 16 -# define SSL2_MAX_KEY_MATERIAL_LENGTH 24 - -# ifndef HEADER_SSL_LOCL_H -# define CERT char -# endif - -# ifndef OPENSSL_NO_SSL_INTERN - -typedef struct ssl2_state_st { - int three_byte_header; - int clear_text; /* clear text */ - int escape; /* not used in SSLv2 */ - int ssl2_rollback; /* used if SSLv23 rolled back to SSLv2 */ - /* - * non-blocking io info, used to make sure the same args were passwd - */ - unsigned int wnum; /* number of bytes sent so far */ - int wpend_tot; - const unsigned char *wpend_buf; - int wpend_off; /* offset to data to write */ - int wpend_len; /* number of bytes passwd to write */ - int wpend_ret; /* number of bytes to return to caller */ - /* buffer raw data */ - int rbuf_left; - int rbuf_offs; - unsigned char *rbuf; - unsigned char *wbuf; - unsigned char *write_ptr; /* used to point to the start due to 2/3 byte - * header. */ - unsigned int padding; - unsigned int rlength; /* passed to ssl2_enc */ - int ract_data_length; /* Set when things are encrypted. */ - unsigned int wlength; /* passed to ssl2_enc */ - int wact_data_length; /* Set when things are decrypted. */ - unsigned char *ract_data; - unsigned char *wact_data; - unsigned char *mac_data; - unsigned char *read_key; - unsigned char *write_key; - /* Stuff specifically to do with this SSL session */ - unsigned int challenge_length; - unsigned char challenge[SSL2_MAX_CHALLENGE_LENGTH]; - unsigned int conn_id_length; - unsigned char conn_id[SSL2_MAX_CONNECTION_ID_LENGTH]; - unsigned int key_material_length; - unsigned char key_material[SSL2_MAX_KEY_MATERIAL_LENGTH * 2]; - unsigned long read_sequence; - unsigned long write_sequence; - struct { - unsigned int conn_id_length; - unsigned int cert_type; - unsigned int cert_length; - unsigned int csl; - unsigned int clear; - unsigned int enc; - unsigned char ccl[SSL2_MAX_CERT_CHALLENGE_LENGTH]; - unsigned int cipher_spec_length; - unsigned int session_id_length; - unsigned int clen; - unsigned int rlen; - } tmp; -} SSL2_STATE; - -# endif - -/* SSLv2 */ -/* client */ -# define SSL2_ST_SEND_CLIENT_HELLO_A (0x10|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_HELLO_B (0x11|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_HELLO_A (0x20|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_HELLO_B (0x21|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_MASTER_KEY_A (0x30|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_MASTER_KEY_B (0x31|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_FINISHED_A (0x40|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_FINISHED_B (0x41|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_A (0x50|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_B (0x51|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_C (0x52|SSL_ST_CONNECT) -# define SSL2_ST_SEND_CLIENT_CERTIFICATE_D (0x53|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_VERIFY_A (0x60|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_VERIFY_B (0x61|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_FINISHED_A (0x70|SSL_ST_CONNECT) -# define SSL2_ST_GET_SERVER_FINISHED_B (0x71|SSL_ST_CONNECT) -# define SSL2_ST_CLIENT_START_ENCRYPTION (0x80|SSL_ST_CONNECT) -# define SSL2_ST_X509_GET_CLIENT_CERTIFICATE (0x90|SSL_ST_CONNECT) -/* server */ -# define SSL2_ST_GET_CLIENT_HELLO_A (0x10|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_HELLO_B (0x11|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_HELLO_C (0x12|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_HELLO_A (0x20|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_HELLO_B (0x21|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_MASTER_KEY_A (0x30|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_MASTER_KEY_B (0x31|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_VERIFY_A (0x40|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_VERIFY_B (0x41|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_VERIFY_C (0x42|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_FINISHED_A (0x50|SSL_ST_ACCEPT) -# define SSL2_ST_GET_CLIENT_FINISHED_B (0x51|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_FINISHED_A (0x60|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_SERVER_FINISHED_B (0x61|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_A (0x70|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_B (0x71|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_C (0x72|SSL_ST_ACCEPT) -# define SSL2_ST_SEND_REQUEST_CERTIFICATE_D (0x73|SSL_ST_ACCEPT) -# define SSL2_ST_SERVER_START_ENCRYPTION (0x80|SSL_ST_ACCEPT) -# define SSL2_ST_X509_GET_SERVER_CERTIFICATE (0x90|SSL_ST_ACCEPT) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ssl23.h b/3rdparty/openssl/include/openssl/ssl23.h deleted file mode 100644 index 9de4685..0000000 --- a/3rdparty/openssl/include/openssl/ssl23.h +++ /dev/null @@ -1,84 +0,0 @@ -/* ssl/ssl23.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_SSL23_H -# define HEADER_SSL23_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * client - */ -/* write to server */ -# define SSL23_ST_CW_CLNT_HELLO_A (0x210|SSL_ST_CONNECT) -# define SSL23_ST_CW_CLNT_HELLO_B (0x211|SSL_ST_CONNECT) -/* read from server */ -# define SSL23_ST_CR_SRVR_HELLO_A (0x220|SSL_ST_CONNECT) -# define SSL23_ST_CR_SRVR_HELLO_B (0x221|SSL_ST_CONNECT) - -/* server */ -/* read from client */ -# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT) -# define SSL23_ST_SR_CLNT_HELLO_B (0x211|SSL_ST_ACCEPT) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ssl3.h b/3rdparty/openssl/include/openssl/ssl3.h deleted file mode 100644 index e681d50..0000000 --- a/3rdparty/openssl/include/openssl/ssl3.h +++ /dev/null @@ -1,774 +0,0 @@ -/* ssl/ssl3.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_SSL3_H -# define HEADER_SSL3_H - -# ifndef OPENSSL_NO_COMP -# include -# endif -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Signalling cipher suite value from RFC 5746 - * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) - */ -# define SSL3_CK_SCSV 0x030000FF - -/* - * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 - * (TLS_FALLBACK_SCSV) - */ -# define SSL3_CK_FALLBACK_SCSV 0x03005600 - -# define SSL3_CK_RSA_NULL_MD5 0x03000001 -# define SSL3_CK_RSA_NULL_SHA 0x03000002 -# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 -# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 -# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 -# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 -# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 -# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 -# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 -# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A - -# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B -# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C -# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D -# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E -# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F -# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 - -# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA 0x03000011 -# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA SSL3_CK_EDH_DSS_DES_40_CBC_SHA -# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA 0x03000012 -# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA SSL3_CK_EDH_DSS_DES_64_CBC_SHA -# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA 0x03000013 -# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA SSL3_CK_EDH_DSS_DES_192_CBC3_SHA -# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA 0x03000014 -# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA SSL3_CK_EDH_RSA_DES_40_CBC_SHA -# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA 0x03000015 -# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA SSL3_CK_EDH_RSA_DES_64_CBC_SHA -# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA 0x03000016 -# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA SSL3_CK_EDH_RSA_DES_192_CBC3_SHA - -# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 -# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 -# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 -# define SSL3_CK_ADH_DES_64_CBC_SHA 0x0300001A -# define SSL3_CK_ADH_DES_192_CBC_SHA 0x0300001B - -# if 0 -# define SSL3_CK_FZA_DMS_NULL_SHA 0x0300001C -# define SSL3_CK_FZA_DMS_FZA_SHA 0x0300001D -# if 0 /* Because it clashes with KRB5, is never - * used any more, and is safe to remove - * according to David Hopwood - * of the - * ietf-tls list */ -# define SSL3_CK_FZA_DMS_RC4_SHA 0x0300001E -# endif -# endif - -/* - * VRS Additional Kerberos5 entries - */ -# define SSL3_CK_KRB5_DES_64_CBC_SHA 0x0300001E -# define SSL3_CK_KRB5_DES_192_CBC3_SHA 0x0300001F -# define SSL3_CK_KRB5_RC4_128_SHA 0x03000020 -# define SSL3_CK_KRB5_IDEA_128_CBC_SHA 0x03000021 -# define SSL3_CK_KRB5_DES_64_CBC_MD5 0x03000022 -# define SSL3_CK_KRB5_DES_192_CBC3_MD5 0x03000023 -# define SSL3_CK_KRB5_RC4_128_MD5 0x03000024 -# define SSL3_CK_KRB5_IDEA_128_CBC_MD5 0x03000025 - -# define SSL3_CK_KRB5_DES_40_CBC_SHA 0x03000026 -# define SSL3_CK_KRB5_RC2_40_CBC_SHA 0x03000027 -# define SSL3_CK_KRB5_RC4_40_SHA 0x03000028 -# define SSL3_CK_KRB5_DES_40_CBC_MD5 0x03000029 -# define SSL3_CK_KRB5_RC2_40_CBC_MD5 0x0300002A -# define SSL3_CK_KRB5_RC4_40_MD5 0x0300002B - -# define SSL3_TXT_RSA_NULL_MD5 "NULL-MD5" -# define SSL3_TXT_RSA_NULL_SHA "NULL-SHA" -# define SSL3_TXT_RSA_RC4_40_MD5 "EXP-RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" -# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" -# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" -# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" - -# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" - -/* - * This next block of six "EDH" labels is for backward compatibility with - * older versions of OpenSSL. New code should use the six "DHE" labels above - * instead: - */ -# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" -# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" -# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" - -# if 0 -# define SSL3_TXT_FZA_DMS_NULL_SHA "FZA-NULL-SHA" -# define SSL3_TXT_FZA_DMS_FZA_SHA "FZA-FZA-CBC-SHA" -# define SSL3_TXT_FZA_DMS_RC4_SHA "FZA-RC4-SHA" -# endif - -# define SSL3_TXT_KRB5_DES_64_CBC_SHA "KRB5-DES-CBC-SHA" -# define SSL3_TXT_KRB5_DES_192_CBC3_SHA "KRB5-DES-CBC3-SHA" -# define SSL3_TXT_KRB5_RC4_128_SHA "KRB5-RC4-SHA" -# define SSL3_TXT_KRB5_IDEA_128_CBC_SHA "KRB5-IDEA-CBC-SHA" -# define SSL3_TXT_KRB5_DES_64_CBC_MD5 "KRB5-DES-CBC-MD5" -# define SSL3_TXT_KRB5_DES_192_CBC3_MD5 "KRB5-DES-CBC3-MD5" -# define SSL3_TXT_KRB5_RC4_128_MD5 "KRB5-RC4-MD5" -# define SSL3_TXT_KRB5_IDEA_128_CBC_MD5 "KRB5-IDEA-CBC-MD5" - -# define SSL3_TXT_KRB5_DES_40_CBC_SHA "EXP-KRB5-DES-CBC-SHA" -# define SSL3_TXT_KRB5_RC2_40_CBC_SHA "EXP-KRB5-RC2-CBC-SHA" -# define SSL3_TXT_KRB5_RC4_40_SHA "EXP-KRB5-RC4-SHA" -# define SSL3_TXT_KRB5_DES_40_CBC_MD5 "EXP-KRB5-DES-CBC-MD5" -# define SSL3_TXT_KRB5_RC2_40_CBC_MD5 "EXP-KRB5-RC2-CBC-MD5" -# define SSL3_TXT_KRB5_RC4_40_MD5 "EXP-KRB5-RC4-MD5" - -# define SSL3_SSL_SESSION_ID_LENGTH 32 -# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 - -# define SSL3_MASTER_SECRET_SIZE 48 -# define SSL3_RANDOM_SIZE 32 -# define SSL3_SESSION_ID_SIZE 32 -# define SSL3_RT_HEADER_LENGTH 5 - -# define SSL3_HM_HEADER_LENGTH 4 - -# ifndef SSL3_ALIGN_PAYLOAD - /* - * Some will argue that this increases memory footprint, but it's not - * actually true. Point is that malloc has to return at least 64-bit aligned - * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. - * Suggested pre-gaping simply moves these wasted bytes from the end of - * allocated region to its front, but makes data payload aligned, which - * improves performance:-) - */ -# define SSL3_ALIGN_PAYLOAD 8 -# else -# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 -# error "insane SSL3_ALIGN_PAYLOAD" -# undef SSL3_ALIGN_PAYLOAD -# endif -# endif - -/* - * This is the maximum MAC (digest) size used by the SSL library. Currently - * maximum of 20 is used by SHA1, but we reserve for future extension for - * 512-bit hashes. - */ - -# define SSL3_RT_MAX_MD_SIZE 64 - -/* - * Maximum block size used in all ciphersuites. Currently 16 for AES. - */ - -# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 - -# define SSL3_RT_MAX_EXTRA (16384) - -/* Maximum plaintext length: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_PLAIN_LENGTH 16384 -/* Maximum compression overhead: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 - -/* - * The standards give a maximum encryption overhead of 1024 bytes. In - * practice the value is lower than this. The overhead is the maximum number - * of padding bytes (256) plus the mac size. - */ -# define SSL3_RT_MAX_ENCRYPTED_OVERHEAD (256 + SSL3_RT_MAX_MD_SIZE) - -/* - * OpenSSL currently only uses a padding length of at most one block so the - * send overhead is smaller. - */ - -# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ - (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) - -/* If compression isn't used don't include the compression overhead */ - -# ifdef OPENSSL_NO_COMP -# define SSL3_RT_MAX_COMPRESSED_LENGTH SSL3_RT_MAX_PLAIN_LENGTH -# else -# define SSL3_RT_MAX_COMPRESSED_LENGTH \ - (SSL3_RT_MAX_PLAIN_LENGTH+SSL3_RT_MAX_COMPRESSED_OVERHEAD) -# endif -# define SSL3_RT_MAX_ENCRYPTED_LENGTH \ - (SSL3_RT_MAX_ENCRYPTED_OVERHEAD+SSL3_RT_MAX_COMPRESSED_LENGTH) -# define SSL3_RT_MAX_PACKET_SIZE \ - (SSL3_RT_MAX_ENCRYPTED_LENGTH+SSL3_RT_HEADER_LENGTH) - -# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" -# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" - -# define SSL3_VERSION 0x0300 -# define SSL3_VERSION_MAJOR 0x03 -# define SSL3_VERSION_MINOR 0x00 - -# define SSL3_RT_CHANGE_CIPHER_SPEC 20 -# define SSL3_RT_ALERT 21 -# define SSL3_RT_HANDSHAKE 22 -# define SSL3_RT_APPLICATION_DATA 23 -# define TLS1_RT_HEARTBEAT 24 - -/* Pseudo content types to indicate additional parameters */ -# define TLS1_RT_CRYPTO 0x1000 -# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) -# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) -# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) -# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) - -# define TLS1_RT_CRYPTO_READ 0x0000 -# define TLS1_RT_CRYPTO_WRITE 0x0100 -# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) -# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) -# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) -# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) - -/* Pseudo content type for SSL/TLS header info */ -# define SSL3_RT_HEADER 0x100 - -# define SSL3_AL_WARNING 1 -# define SSL3_AL_FATAL 2 - -# define SSL3_AD_CLOSE_NOTIFY 0 -# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ -# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ -# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ -# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ -# define SSL3_AD_NO_CERTIFICATE 41 -# define SSL3_AD_BAD_CERTIFICATE 42 -# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 -# define SSL3_AD_CERTIFICATE_REVOKED 44 -# define SSL3_AD_CERTIFICATE_EXPIRED 45 -# define SSL3_AD_CERTIFICATE_UNKNOWN 46 -# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ - -# define TLS1_HB_REQUEST 1 -# define TLS1_HB_RESPONSE 2 - -# ifndef OPENSSL_NO_SSL_INTERN - -typedef struct ssl3_record_st { - /* type of record */ - /* - * r - */ int type; - /* How many bytes available */ - /* - * rw - */ unsigned int length; - /* read/write offset into 'buf' */ - /* - * r - */ unsigned int off; - /* pointer to the record data */ - /* - * rw - */ unsigned char *data; - /* where the decode bytes are */ - /* - * rw - */ unsigned char *input; - /* only used with decompression - malloc()ed */ - /* - * r - */ unsigned char *comp; - /* epoch number, needed by DTLS1 */ - /* - * r - */ unsigned long epoch; - /* sequence number, needed by DTLS1 */ - /* - * r - */ unsigned char seq_num[8]; -} SSL3_RECORD; - -typedef struct ssl3_buffer_st { - /* at least SSL3_RT_MAX_PACKET_SIZE bytes, see ssl3_setup_buffers() */ - unsigned char *buf; - /* buffer size */ - size_t len; - /* where to 'copy from' */ - int offset; - /* how many bytes left */ - int left; -} SSL3_BUFFER; - -# endif - -# define SSL3_CT_RSA_SIGN 1 -# define SSL3_CT_DSS_SIGN 2 -# define SSL3_CT_RSA_FIXED_DH 3 -# define SSL3_CT_DSS_FIXED_DH 4 -# define SSL3_CT_RSA_EPHEMERAL_DH 5 -# define SSL3_CT_DSS_EPHEMERAL_DH 6 -# define SSL3_CT_FORTEZZA_DMS 20 -/* - * SSL3_CT_NUMBER is used to size arrays and it must be large enough to - * contain all of the cert types defined either for SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 9 - -# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 -# define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002 -# define SSL3_FLAGS_POP_BUFFER 0x0004 -# define TLS1_FLAGS_TLS_PADDING_BUG 0x0008 -# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 -# define TLS1_FLAGS_KEEP_HANDSHAKE 0x0020 -/* - * Set when the handshake is ready to process peer's ChangeCipherSpec message. - * Cleared after the message has been processed. - */ -# define SSL3_FLAGS_CCS_OK 0x0080 - -/* SSL3_FLAGS_SGC_RESTART_DONE is no longer used */ -# define SSL3_FLAGS_SGC_RESTART_DONE 0x0040 - -# ifndef OPENSSL_NO_SSL_INTERN - -typedef struct ssl3_state_st { - long flags; - int delay_buf_pop_ret; - unsigned char read_sequence[8]; - int read_mac_secret_size; - unsigned char read_mac_secret[EVP_MAX_MD_SIZE]; - unsigned char write_sequence[8]; - int write_mac_secret_size; - unsigned char write_mac_secret[EVP_MAX_MD_SIZE]; - unsigned char server_random[SSL3_RANDOM_SIZE]; - unsigned char client_random[SSL3_RANDOM_SIZE]; - /* flags for countermeasure against known-IV weakness */ - int need_empty_fragments; - int empty_fragment_done; - /* The value of 'extra' when the buffers were initialized */ - int init_extra; - SSL3_BUFFER rbuf; /* read IO goes into here */ - SSL3_BUFFER wbuf; /* write IO goes into here */ - SSL3_RECORD rrec; /* each decoded record goes in here */ - SSL3_RECORD wrec; /* goes out from here */ - /* - * storage for Alert/Handshake protocol data received but not yet - * processed by ssl3_read_bytes: - */ - unsigned char alert_fragment[2]; - unsigned int alert_fragment_len; - unsigned char handshake_fragment[4]; - unsigned int handshake_fragment_len; - /* partial write - check the numbers match */ - unsigned int wnum; /* number of bytes sent so far */ - int wpend_tot; /* number bytes written */ - int wpend_type; - int wpend_ret; /* number of bytes submitted */ - const unsigned char *wpend_buf; - /* used during startup, digest all incoming/outgoing packets */ - BIO *handshake_buffer; - /* - * When set of handshake digests is determined, buffer is hashed and - * freed and MD_CTX-es for all required digests are stored in this array - */ - EVP_MD_CTX **handshake_dgst; - /* - * Set whenever an expected ChangeCipherSpec message is processed. - * Unset when the peer's Finished message is received. - * Unexpected ChangeCipherSpec messages trigger a fatal alert. - */ - int change_cipher_spec; - int warn_alert; - int fatal_alert; - /* - * we allow one fatal and one warning alert to be outstanding, send close - * alert via the warning alert - */ - int alert_dispatch; - unsigned char send_alert[2]; - /* - * This flag is set when we should renegotiate ASAP, basically when there - * is no more data in the read or write buffers - */ - int renegotiate; - int total_renegotiations; - int num_renegotiations; - int in_read_app_data; - /* - * Opaque PRF input as used for the current handshake. These fields are - * used only if TLSEXT_TYPE_opaque_prf_input is defined (otherwise, they - * are merely present to improve binary compatibility) - */ - void *client_opaque_prf_input; - size_t client_opaque_prf_input_len; - void *server_opaque_prf_input; - size_t server_opaque_prf_input_len; - struct { - /* actually only needs to be 16+20 */ - unsigned char cert_verify_md[EVP_MAX_MD_SIZE * 2]; - /* actually only need to be 16+20 for SSLv3 and 12 for TLS */ - unsigned char finish_md[EVP_MAX_MD_SIZE * 2]; - int finish_md_len; - unsigned char peer_finish_md[EVP_MAX_MD_SIZE * 2]; - int peer_finish_md_len; - unsigned long message_size; - int message_type; - /* used to hold the new cipher we are going to use */ - const SSL_CIPHER *new_cipher; -# ifndef OPENSSL_NO_DH - DH *dh; -# endif -# ifndef OPENSSL_NO_ECDH - EC_KEY *ecdh; /* holds short lived ECDH key */ -# endif - /* used when SSL_ST_FLUSH_DATA is entered */ - int next_state; - int reuse_message; - /* used for certificate requests */ - int cert_req; - int ctype_num; - char ctype[SSL3_CT_NUMBER]; - STACK_OF(X509_NAME) *ca_names; - int use_rsa_tmp; - int key_block_length; - unsigned char *key_block; - const EVP_CIPHER *new_sym_enc; - const EVP_MD *new_hash; - int new_mac_pkey_type; - int new_mac_secret_size; -# ifndef OPENSSL_NO_COMP - const SSL_COMP *new_compression; -# else - char *new_compression; -# endif - int cert_request; - } tmp; - - /* Connection binding to prevent renegotiation attacks */ - unsigned char previous_client_finished[EVP_MAX_MD_SIZE]; - unsigned char previous_client_finished_len; - unsigned char previous_server_finished[EVP_MAX_MD_SIZE]; - unsigned char previous_server_finished_len; - int send_connection_binding; /* TODOEKR */ - -# ifndef OPENSSL_NO_NEXTPROTONEG - /* - * Set if we saw the Next Protocol Negotiation extension from our peer. - */ - int next_proto_neg_seen; -# endif - -# ifndef OPENSSL_NO_TLSEXT -# ifndef OPENSSL_NO_EC - /* - * This is set to true if we believe that this is a version of Safari - * running on OS X 10.6 or newer. We wish to know this because Safari on - * 10.8 .. 10.8.3 has broken ECDHE-ECDSA support. - */ - char is_probably_safari; -# endif /* !OPENSSL_NO_EC */ - - /* - * ALPN information (we are in the process of transitioning from NPN to - * ALPN.) - */ - - /* - * In a server these point to the selected ALPN protocol after the - * ClientHello has been processed. In a client these contain the protocol - * that the server selected once the ServerHello has been processed. - */ - unsigned char *alpn_selected; - unsigned alpn_selected_len; -# endif /* OPENSSL_NO_TLSEXT */ -} SSL3_STATE; - -# endif - -/* SSLv3 */ -/* - * client - */ -/* extra state */ -# define SSL3_ST_CW_FLUSH (0x100|SSL_ST_CONNECT) -# ifndef OPENSSL_NO_SCTP -# define DTLS1_SCTP_ST_CW_WRITE_SOCK (0x310|SSL_ST_CONNECT) -# define DTLS1_SCTP_ST_CR_READ_SOCK (0x320|SSL_ST_CONNECT) -# endif -/* write to server */ -# define SSL3_ST_CW_CLNT_HELLO_A (0x110|SSL_ST_CONNECT) -# define SSL3_ST_CW_CLNT_HELLO_B (0x111|SSL_ST_CONNECT) -/* read from server */ -# define SSL3_ST_CR_SRVR_HELLO_A (0x120|SSL_ST_CONNECT) -# define SSL3_ST_CR_SRVR_HELLO_B (0x121|SSL_ST_CONNECT) -# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A (0x126|SSL_ST_CONNECT) -# define DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B (0x127|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_A (0x130|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_B (0x131|SSL_ST_CONNECT) -# define SSL3_ST_CR_KEY_EXCH_A (0x140|SSL_ST_CONNECT) -# define SSL3_ST_CR_KEY_EXCH_B (0x141|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_REQ_A (0x150|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_REQ_B (0x151|SSL_ST_CONNECT) -# define SSL3_ST_CR_SRVR_DONE_A (0x160|SSL_ST_CONNECT) -# define SSL3_ST_CR_SRVR_DONE_B (0x161|SSL_ST_CONNECT) -/* write to server */ -# define SSL3_ST_CW_CERT_A (0x170|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_B (0x171|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_C (0x172|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_D (0x173|SSL_ST_CONNECT) -# define SSL3_ST_CW_KEY_EXCH_A (0x180|SSL_ST_CONNECT) -# define SSL3_ST_CW_KEY_EXCH_B (0x181|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_VRFY_A (0x190|SSL_ST_CONNECT) -# define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT) -# define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT) -# define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT) -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_ST_CW_NEXT_PROTO_A (0x200|SSL_ST_CONNECT) -# define SSL3_ST_CW_NEXT_PROTO_B (0x201|SSL_ST_CONNECT) -# endif -# define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT) -# define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT) -/* read from server */ -# define SSL3_ST_CR_CHANGE_A (0x1C0|SSL_ST_CONNECT) -# define SSL3_ST_CR_CHANGE_B (0x1C1|SSL_ST_CONNECT) -# define SSL3_ST_CR_FINISHED_A (0x1D0|SSL_ST_CONNECT) -# define SSL3_ST_CR_FINISHED_B (0x1D1|SSL_ST_CONNECT) -# define SSL3_ST_CR_SESSION_TICKET_A (0x1E0|SSL_ST_CONNECT) -# define SSL3_ST_CR_SESSION_TICKET_B (0x1E1|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_STATUS_A (0x1F0|SSL_ST_CONNECT) -# define SSL3_ST_CR_CERT_STATUS_B (0x1F1|SSL_ST_CONNECT) - -/* server */ -/* extra state */ -# define SSL3_ST_SW_FLUSH (0x100|SSL_ST_ACCEPT) -# ifndef OPENSSL_NO_SCTP -# define DTLS1_SCTP_ST_SW_WRITE_SOCK (0x310|SSL_ST_ACCEPT) -# define DTLS1_SCTP_ST_SR_READ_SOCK (0x320|SSL_ST_ACCEPT) -# endif -/* read from client */ -/* Do not change the number values, they do matter */ -# define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CLNT_HELLO_B (0x111|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CLNT_HELLO_C (0x112|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CLNT_HELLO_D (0x115|SSL_ST_ACCEPT) -/* write to client */ -# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A (0x113|SSL_ST_ACCEPT) -# define DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B (0x114|SSL_ST_ACCEPT) -# define SSL3_ST_SW_HELLO_REQ_A (0x120|SSL_ST_ACCEPT) -# define SSL3_ST_SW_HELLO_REQ_B (0x121|SSL_ST_ACCEPT) -# define SSL3_ST_SW_HELLO_REQ_C (0x122|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_HELLO_A (0x130|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_HELLO_B (0x131|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_A (0x140|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_B (0x141|SSL_ST_ACCEPT) -# define SSL3_ST_SW_KEY_EXCH_A (0x150|SSL_ST_ACCEPT) -# define SSL3_ST_SW_KEY_EXCH_B (0x151|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_REQ_A (0x160|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_REQ_B (0x161|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_DONE_A (0x170|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SRVR_DONE_B (0x171|SSL_ST_ACCEPT) -/* read from client */ -# define SSL3_ST_SR_CERT_A (0x180|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CERT_B (0x181|SSL_ST_ACCEPT) -# define SSL3_ST_SR_KEY_EXCH_A (0x190|SSL_ST_ACCEPT) -# define SSL3_ST_SR_KEY_EXCH_B (0x191|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CERT_VRFY_A (0x1A0|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT) -# define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT) -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_ST_SR_NEXT_PROTO_A (0x210|SSL_ST_ACCEPT) -# define SSL3_ST_SR_NEXT_PROTO_B (0x211|SSL_ST_ACCEPT) -# endif -# define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT) -# define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT) -/* write to client */ -# define SSL3_ST_SW_CHANGE_A (0x1D0|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CHANGE_B (0x1D1|SSL_ST_ACCEPT) -# define SSL3_ST_SW_FINISHED_A (0x1E0|SSL_ST_ACCEPT) -# define SSL3_ST_SW_FINISHED_B (0x1E1|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SESSION_TICKET_A (0x1F0|SSL_ST_ACCEPT) -# define SSL3_ST_SW_SESSION_TICKET_B (0x1F1|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_STATUS_A (0x200|SSL_ST_ACCEPT) -# define SSL3_ST_SW_CERT_STATUS_B (0x201|SSL_ST_ACCEPT) - -# define SSL3_MT_HELLO_REQUEST 0 -# define SSL3_MT_CLIENT_HELLO 1 -# define SSL3_MT_SERVER_HELLO 2 -# define SSL3_MT_NEWSESSION_TICKET 4 -# define SSL3_MT_CERTIFICATE 11 -# define SSL3_MT_SERVER_KEY_EXCHANGE 12 -# define SSL3_MT_CERTIFICATE_REQUEST 13 -# define SSL3_MT_SERVER_DONE 14 -# define SSL3_MT_CERTIFICATE_VERIFY 15 -# define SSL3_MT_CLIENT_KEY_EXCHANGE 16 -# define SSL3_MT_FINISHED 20 -# define SSL3_MT_CERTIFICATE_STATUS 22 -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 -# endif -# define DTLS1_MT_HELLO_VERIFY_REQUEST 3 - -# define SSL3_MT_CCS 1 - -/* These are used when changing over to a new cipher */ -# define SSL3_CC_READ 0x01 -# define SSL3_CC_WRITE 0x02 -# define SSL3_CC_CLIENT 0x10 -# define SSL3_CC_SERVER 0x20 -# define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) -# define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ) -# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/stack.h b/3rdparty/openssl/include/openssl/stack.h deleted file mode 100644 index eb07216..0000000 --- a/3rdparty/openssl/include/openssl/stack.h +++ /dev/null @@ -1,107 +0,0 @@ -/* crypto/stack/stack.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_STACK_H -# define HEADER_STACK_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stack_st { - int num; - char **data; - int sorted; - int num_alloc; - int (*comp) (const void *, const void *); -} _STACK; /* Use STACK_OF(...) instead */ - -# define M_sk_num(sk) ((sk) ? (sk)->num:-1) -# define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL) - -int sk_num(const _STACK *); -void *sk_value(const _STACK *, int); - -void *sk_set(_STACK *, int, void *); - -_STACK *sk_new(int (*cmp) (const void *, const void *)); -_STACK *sk_new_null(void); -void sk_free(_STACK *); -void sk_pop_free(_STACK *st, void (*func) (void *)); -_STACK *sk_deep_copy(_STACK *, void *(*)(void *), void (*)(void *)); -int sk_insert(_STACK *sk, void *data, int where); -void *sk_delete(_STACK *st, int loc); -void *sk_delete_ptr(_STACK *st, void *p); -int sk_find(_STACK *st, void *data); -int sk_find_ex(_STACK *st, void *data); -int sk_push(_STACK *st, void *data); -int sk_unshift(_STACK *st, void *data); -void *sk_shift(_STACK *st); -void *sk_pop(_STACK *st); -void sk_zero(_STACK *st); -int (*sk_set_cmp_func(_STACK *sk, int (*c) (const void *, const void *))) - (const void *, const void *); -_STACK *sk_dup(_STACK *st); -void sk_sort(_STACK *st); -int sk_is_sorted(const _STACK *st); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/symhacks.h b/3rdparty/openssl/include/openssl/symhacks.h deleted file mode 100644 index 3001957..0000000 --- a/3rdparty/openssl/include/openssl/symhacks.h +++ /dev/null @@ -1,518 +0,0 @@ -/* ==================================================================== - * Copyright (c) 1999 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_SYMHACKS_H -# define HEADER_SYMHACKS_H - -# include - -/* - * Hacks to solve the problem with linkers incapable of handling very long - * symbol names. In the case of VMS, the limit is 31 characters on VMS for - * VAX. - */ -/* - * Note that this affects util/libeay.num and util/ssleay.num... you may - * change those manually, but that's not recommended, as those files are - * controlled centrally and updated on Unix, and the central definition may - * disagree with yours, which in turn may come with shareable library - * incompatibilities. - */ -# ifdef OPENSSL_SYS_VMS - -/* Hack a long name in crypto/ex_data.c */ -# undef CRYPTO_get_ex_data_implementation -# define CRYPTO_get_ex_data_implementation CRYPTO_get_ex_data_impl -# undef CRYPTO_set_ex_data_implementation -# define CRYPTO_set_ex_data_implementation CRYPTO_set_ex_data_impl - -/* Hack a long name in crypto/asn1/a_mbstr.c */ -# undef ASN1_STRING_set_default_mask_asc -# define ASN1_STRING_set_default_mask_asc ASN1_STRING_set_def_mask_asc - -# if 0 /* No longer needed, since safestack macro - * magic does the job */ -/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) */ -# undef i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO -# define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO i2d_ASN1_SET_OF_PKCS7_SIGINF -# undef d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO -# define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO d2i_ASN1_SET_OF_PKCS7_SIGINF -# endif - -# if 0 /* No longer needed, since safestack macro - * magic does the job */ -/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) */ -# undef i2d_ASN1_SET_OF_PKCS7_RECIP_INFO -# define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO i2d_ASN1_SET_OF_PKCS7_RECINF -# undef d2i_ASN1_SET_OF_PKCS7_RECIP_INFO -# define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO d2i_ASN1_SET_OF_PKCS7_RECINF -# endif - -# if 0 /* No longer needed, since safestack macro - * magic does the job */ -/* Hack the names created with DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) */ -# undef i2d_ASN1_SET_OF_ACCESS_DESCRIPTION -# define i2d_ASN1_SET_OF_ACCESS_DESCRIPTION i2d_ASN1_SET_OF_ACC_DESC -# undef d2i_ASN1_SET_OF_ACCESS_DESCRIPTION -# define d2i_ASN1_SET_OF_ACCESS_DESCRIPTION d2i_ASN1_SET_OF_ACC_DESC -# endif - -/* Hack the names created with DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE) */ -# undef PEM_read_NETSCAPE_CERT_SEQUENCE -# define PEM_read_NETSCAPE_CERT_SEQUENCE PEM_read_NS_CERT_SEQ -# undef PEM_write_NETSCAPE_CERT_SEQUENCE -# define PEM_write_NETSCAPE_CERT_SEQUENCE PEM_write_NS_CERT_SEQ -# undef PEM_read_bio_NETSCAPE_CERT_SEQUENCE -# define PEM_read_bio_NETSCAPE_CERT_SEQUENCE PEM_read_bio_NS_CERT_SEQ -# undef PEM_write_bio_NETSCAPE_CERT_SEQUENCE -# define PEM_write_bio_NETSCAPE_CERT_SEQUENCE PEM_write_bio_NS_CERT_SEQ -# undef PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE -# define PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE PEM_write_cb_bio_NS_CERT_SEQ - -/* Hack the names created with DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO) */ -# undef PEM_read_PKCS8_PRIV_KEY_INFO -# define PEM_read_PKCS8_PRIV_KEY_INFO PEM_read_P8_PRIV_KEY_INFO -# undef PEM_write_PKCS8_PRIV_KEY_INFO -# define PEM_write_PKCS8_PRIV_KEY_INFO PEM_write_P8_PRIV_KEY_INFO -# undef PEM_read_bio_PKCS8_PRIV_KEY_INFO -# define PEM_read_bio_PKCS8_PRIV_KEY_INFO PEM_read_bio_P8_PRIV_KEY_INFO -# undef PEM_write_bio_PKCS8_PRIV_KEY_INFO -# define PEM_write_bio_PKCS8_PRIV_KEY_INFO PEM_write_bio_P8_PRIV_KEY_INFO -# undef PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO -# define PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO PEM_wrt_cb_bio_P8_PRIV_KEY_INFO - -/* Hack other PEM names */ -# undef PEM_write_bio_PKCS8PrivateKey_nid -# define PEM_write_bio_PKCS8PrivateKey_nid PEM_write_bio_PKCS8PrivKey_nid - -/* Hack some long X509 names */ -# undef X509_REVOKED_get_ext_by_critical -# define X509_REVOKED_get_ext_by_critical X509_REVOKED_get_ext_by_critic -# undef X509_policy_tree_get0_user_policies -# define X509_policy_tree_get0_user_policies X509_pcy_tree_get0_usr_policies -# undef X509_policy_node_get0_qualifiers -# define X509_policy_node_get0_qualifiers X509_pcy_node_get0_qualifiers -# undef X509_STORE_CTX_get_explicit_policy -# define X509_STORE_CTX_get_explicit_policy X509_STORE_CTX_get_expl_policy -# undef X509_STORE_CTX_get0_current_issuer -# define X509_STORE_CTX_get0_current_issuer X509_STORE_CTX_get0_cur_issuer - -/* Hack some long CRYPTO names */ -# undef CRYPTO_set_dynlock_destroy_callback -# define CRYPTO_set_dynlock_destroy_callback CRYPTO_set_dynlock_destroy_cb -# undef CRYPTO_set_dynlock_create_callback -# define CRYPTO_set_dynlock_create_callback CRYPTO_set_dynlock_create_cb -# undef CRYPTO_set_dynlock_lock_callback -# define CRYPTO_set_dynlock_lock_callback CRYPTO_set_dynlock_lock_cb -# undef CRYPTO_get_dynlock_lock_callback -# define CRYPTO_get_dynlock_lock_callback CRYPTO_get_dynlock_lock_cb -# undef CRYPTO_get_dynlock_destroy_callback -# define CRYPTO_get_dynlock_destroy_callback CRYPTO_get_dynlock_destroy_cb -# undef CRYPTO_get_dynlock_create_callback -# define CRYPTO_get_dynlock_create_callback CRYPTO_get_dynlock_create_cb -# undef CRYPTO_set_locked_mem_ex_functions -# define CRYPTO_set_locked_mem_ex_functions CRYPTO_set_locked_mem_ex_funcs -# undef CRYPTO_get_locked_mem_ex_functions -# define CRYPTO_get_locked_mem_ex_functions CRYPTO_get_locked_mem_ex_funcs - -/* Hack some long SSL/TLS names */ -# undef SSL_CTX_set_default_verify_paths -# define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths -# undef SSL_get_ex_data_X509_STORE_CTX_idx -# define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_d_X509_STORE_CTX_idx -# undef SSL_add_file_cert_subjects_to_stack -# define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_subjs_to_stk -# undef SSL_add_dir_cert_subjects_to_stack -# define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_subjs_to_stk -# undef SSL_CTX_use_certificate_chain_file -# define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file -# undef SSL_CTX_set_cert_verify_callback -# define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb -# undef SSL_CTX_set_default_passwd_cb_userdata -# define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud -# undef SSL_COMP_get_compression_methods -# define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods -# undef SSL_COMP_set0_compression_methods -# define SSL_COMP_set0_compression_methods SSL_COMP_set0_compress_methods -# undef SSL_COMP_free_compression_methods -# define SSL_COMP_free_compression_methods SSL_COMP_free_compress_methods -# undef ssl_add_clienthello_renegotiate_ext -# define ssl_add_clienthello_renegotiate_ext ssl_add_clienthello_reneg_ext -# undef ssl_add_serverhello_renegotiate_ext -# define ssl_add_serverhello_renegotiate_ext ssl_add_serverhello_reneg_ext -# undef ssl_parse_clienthello_renegotiate_ext -# define ssl_parse_clienthello_renegotiate_ext ssl_parse_clienthello_reneg_ext -# undef ssl_parse_serverhello_renegotiate_ext -# define ssl_parse_serverhello_renegotiate_ext ssl_parse_serverhello_reneg_ext -# undef SSL_srp_server_param_with_username -# define SSL_srp_server_param_with_username SSL_srp_server_param_with_un -# undef SSL_CTX_set_srp_client_pwd_callback -# define SSL_CTX_set_srp_client_pwd_callback SSL_CTX_set_srp_client_pwd_cb -# undef SSL_CTX_set_srp_verify_param_callback -# define SSL_CTX_set_srp_verify_param_callback SSL_CTX_set_srp_vfy_param_cb -# undef SSL_CTX_set_srp_username_callback -# define SSL_CTX_set_srp_username_callback SSL_CTX_set_srp_un_cb -# undef ssl_add_clienthello_use_srtp_ext -# define ssl_add_clienthello_use_srtp_ext ssl_add_clihello_use_srtp_ext -# undef ssl_add_serverhello_use_srtp_ext -# define ssl_add_serverhello_use_srtp_ext ssl_add_serhello_use_srtp_ext -# undef ssl_parse_clienthello_use_srtp_ext -# define ssl_parse_clienthello_use_srtp_ext ssl_parse_clihello_use_srtp_ext -# undef ssl_parse_serverhello_use_srtp_ext -# define ssl_parse_serverhello_use_srtp_ext ssl_parse_serhello_use_srtp_ext -# undef SSL_CTX_set_next_protos_advertised_cb -# define SSL_CTX_set_next_protos_advertised_cb SSL_CTX_set_next_protos_adv_cb -# undef SSL_CTX_set_next_proto_select_cb -# define SSL_CTX_set_next_proto_select_cb SSL_CTX_set_next_proto_sel_cb - -# undef tls1_send_server_supplemental_data -# define tls1_send_server_supplemental_data tls1_send_server_suppl_data -# undef tls1_send_client_supplemental_data -# define tls1_send_client_supplemental_data tls1_send_client_suppl_data -# undef tls1_get_server_supplemental_data -# define tls1_get_server_supplemental_data tls1_get_server_suppl_data -# undef tls1_get_client_supplemental_data -# define tls1_get_client_supplemental_data tls1_get_client_suppl_data - -# undef ssl3_cbc_record_digest_supported -# define ssl3_cbc_record_digest_supported ssl3_cbc_record_digest_support -# undef ssl_check_clienthello_tlsext_late -# define ssl_check_clienthello_tlsext_late ssl_check_clihello_tlsext_late -# undef ssl_check_clienthello_tlsext_early -# define ssl_check_clienthello_tlsext_early ssl_check_clihello_tlsext_early - -/* Hack some RSA long names */ -# undef RSA_padding_check_PKCS1_OAEP_mgf1 -# define RSA_padding_check_PKCS1_OAEP_mgf1 RSA_pad_check_PKCS1_OAEP_mgf1 - -/* Hack some ENGINE long names */ -# undef ENGINE_get_default_BN_mod_exp_crt -# define ENGINE_get_default_BN_mod_exp_crt ENGINE_get_def_BN_mod_exp_crt -# undef ENGINE_set_default_BN_mod_exp_crt -# define ENGINE_set_default_BN_mod_exp_crt ENGINE_set_def_BN_mod_exp_crt -# undef ENGINE_set_load_privkey_function -# define ENGINE_set_load_privkey_function ENGINE_set_load_privkey_fn -# undef ENGINE_get_load_privkey_function -# define ENGINE_get_load_privkey_function ENGINE_get_load_privkey_fn -# undef ENGINE_unregister_pkey_asn1_meths -# define ENGINE_unregister_pkey_asn1_meths ENGINE_unreg_pkey_asn1_meths -# undef ENGINE_register_all_pkey_asn1_meths -# define ENGINE_register_all_pkey_asn1_meths ENGINE_reg_all_pkey_asn1_meths -# undef ENGINE_set_default_pkey_asn1_meths -# define ENGINE_set_default_pkey_asn1_meths ENGINE_set_def_pkey_asn1_meths -# undef ENGINE_get_pkey_asn1_meth_engine -# define ENGINE_get_pkey_asn1_meth_engine ENGINE_get_pkey_asn1_meth_eng -# undef ENGINE_set_load_ssl_client_cert_function -# define ENGINE_set_load_ssl_client_cert_function \ - ENGINE_set_ld_ssl_clnt_cert_fn -# undef ENGINE_get_ssl_client_cert_function -# define ENGINE_get_ssl_client_cert_function ENGINE_get_ssl_client_cert_fn - -/* Hack some long OCSP names */ -# undef OCSP_REQUEST_get_ext_by_critical -# define OCSP_REQUEST_get_ext_by_critical OCSP_REQUEST_get_ext_by_crit -# undef OCSP_BASICRESP_get_ext_by_critical -# define OCSP_BASICRESP_get_ext_by_critical OCSP_BASICRESP_get_ext_by_crit -# undef OCSP_SINGLERESP_get_ext_by_critical -# define OCSP_SINGLERESP_get_ext_by_critical OCSP_SINGLERESP_get_ext_by_crit - -/* Hack some long DES names */ -# undef _ossl_old_des_ede3_cfb64_encrypt -# define _ossl_old_des_ede3_cfb64_encrypt _ossl_odes_ede3_cfb64_encrypt -# undef _ossl_old_des_ede3_ofb64_encrypt -# define _ossl_old_des_ede3_ofb64_encrypt _ossl_odes_ede3_ofb64_encrypt - -/* Hack some long EVP names */ -# undef OPENSSL_add_all_algorithms_noconf -# define OPENSSL_add_all_algorithms_noconf OPENSSL_add_all_algo_noconf -# undef OPENSSL_add_all_algorithms_conf -# define OPENSSL_add_all_algorithms_conf OPENSSL_add_all_algo_conf -# undef EVP_PKEY_meth_set_verify_recover -# define EVP_PKEY_meth_set_verify_recover EVP_PKEY_meth_set_vrfy_recover -# undef EVP_PKEY_meth_get_verify_recover -# define EVP_PKEY_meth_get_verify_recover EVP_PKEY_meth_get_vrfy_recover - -/* Hack some long EC names */ -# undef EC_GROUP_set_point_conversion_form -# define EC_GROUP_set_point_conversion_form EC_GROUP_set_point_conv_form -# undef EC_GROUP_get_point_conversion_form -# define EC_GROUP_get_point_conversion_form EC_GROUP_get_point_conv_form -# undef EC_GROUP_clear_free_all_extra_data -# define EC_GROUP_clear_free_all_extra_data EC_GROUP_clr_free_all_xtra_data -# undef EC_KEY_set_public_key_affine_coordinates -# define EC_KEY_set_public_key_affine_coordinates \ - EC_KEY_set_pub_key_aff_coords -# undef EC_POINT_set_Jprojective_coordinates_GFp -# define EC_POINT_set_Jprojective_coordinates_GFp \ - EC_POINT_set_Jproj_coords_GFp -# undef EC_POINT_get_Jprojective_coordinates_GFp -# define EC_POINT_get_Jprojective_coordinates_GFp \ - EC_POINT_get_Jproj_coords_GFp -# undef EC_POINT_set_affine_coordinates_GFp -# define EC_POINT_set_affine_coordinates_GFp EC_POINT_set_affine_coords_GFp -# undef EC_POINT_get_affine_coordinates_GFp -# define EC_POINT_get_affine_coordinates_GFp EC_POINT_get_affine_coords_GFp -# undef EC_POINT_set_compressed_coordinates_GFp -# define EC_POINT_set_compressed_coordinates_GFp EC_POINT_set_compr_coords_GFp -# undef EC_POINT_set_affine_coordinates_GF2m -# define EC_POINT_set_affine_coordinates_GF2m EC_POINT_set_affine_coords_GF2m -# undef EC_POINT_get_affine_coordinates_GF2m -# define EC_POINT_get_affine_coordinates_GF2m EC_POINT_get_affine_coords_GF2m -# undef EC_POINT_set_compressed_coordinates_GF2m -# define EC_POINT_set_compressed_coordinates_GF2m \ - EC_POINT_set_compr_coords_GF2m -# undef ec_GF2m_simple_group_clear_finish -# define ec_GF2m_simple_group_clear_finish ec_GF2m_simple_grp_clr_finish -# undef ec_GF2m_simple_group_check_discriminant -# define ec_GF2m_simple_group_check_discriminant ec_GF2m_simple_grp_chk_discrim -# undef ec_GF2m_simple_point_clear_finish -# define ec_GF2m_simple_point_clear_finish ec_GF2m_simple_pt_clr_finish -# undef ec_GF2m_simple_point_set_to_infinity -# define ec_GF2m_simple_point_set_to_infinity ec_GF2m_simple_pt_set_to_inf -# undef ec_GF2m_simple_points_make_affine -# define ec_GF2m_simple_points_make_affine ec_GF2m_simple_pts_make_affine -# undef ec_GF2m_simple_point_set_affine_coordinates -# define ec_GF2m_simple_point_set_affine_coordinates \ - ec_GF2m_smp_pt_set_af_coords -# undef ec_GF2m_simple_point_get_affine_coordinates -# define ec_GF2m_simple_point_get_affine_coordinates \ - ec_GF2m_smp_pt_get_af_coords -# undef ec_GF2m_simple_set_compressed_coordinates -# define ec_GF2m_simple_set_compressed_coordinates \ - ec_GF2m_smp_set_compr_coords -# undef ec_GFp_simple_group_set_curve_GFp -# define ec_GFp_simple_group_set_curve_GFp ec_GFp_simple_grp_set_curve_GFp -# undef ec_GFp_simple_group_get_curve_GFp -# define ec_GFp_simple_group_get_curve_GFp ec_GFp_simple_grp_get_curve_GFp -# undef ec_GFp_simple_group_clear_finish -# define ec_GFp_simple_group_clear_finish ec_GFp_simple_grp_clear_finish -# undef ec_GFp_simple_group_set_generator -# define ec_GFp_simple_group_set_generator ec_GFp_simple_grp_set_generator -# undef ec_GFp_simple_group_get0_generator -# define ec_GFp_simple_group_get0_generator ec_GFp_simple_grp_gt0_generator -# undef ec_GFp_simple_group_get_cofactor -# define ec_GFp_simple_group_get_cofactor ec_GFp_simple_grp_get_cofactor -# undef ec_GFp_simple_point_clear_finish -# define ec_GFp_simple_point_clear_finish ec_GFp_simple_pt_clear_finish -# undef ec_GFp_simple_point_set_to_infinity -# define ec_GFp_simple_point_set_to_infinity ec_GFp_simple_pt_set_to_inf -# undef ec_GFp_simple_points_make_affine -# define ec_GFp_simple_points_make_affine ec_GFp_simple_pts_make_affine -# undef ec_GFp_simple_set_Jprojective_coordinates_GFp -# define ec_GFp_simple_set_Jprojective_coordinates_GFp \ - ec_GFp_smp_set_Jproj_coords_GFp -# undef ec_GFp_simple_get_Jprojective_coordinates_GFp -# define ec_GFp_simple_get_Jprojective_coordinates_GFp \ - ec_GFp_smp_get_Jproj_coords_GFp -# undef ec_GFp_simple_point_set_affine_coordinates_GFp -# define ec_GFp_simple_point_set_affine_coordinates_GFp \ - ec_GFp_smp_pt_set_af_coords_GFp -# undef ec_GFp_simple_point_get_affine_coordinates_GFp -# define ec_GFp_simple_point_get_affine_coordinates_GFp \ - ec_GFp_smp_pt_get_af_coords_GFp -# undef ec_GFp_simple_set_compressed_coordinates_GFp -# define ec_GFp_simple_set_compressed_coordinates_GFp \ - ec_GFp_smp_set_compr_coords_GFp -# undef ec_GFp_simple_point_set_affine_coordinates -# define ec_GFp_simple_point_set_affine_coordinates \ - ec_GFp_smp_pt_set_af_coords -# undef ec_GFp_simple_point_get_affine_coordinates -# define ec_GFp_simple_point_get_affine_coordinates \ - ec_GFp_smp_pt_get_af_coords -# undef ec_GFp_simple_set_compressed_coordinates -# define ec_GFp_simple_set_compressed_coordinates \ - ec_GFp_smp_set_compr_coords -# undef ec_GFp_simple_group_check_discriminant -# define ec_GFp_simple_group_check_discriminant ec_GFp_simple_grp_chk_discrim - -/* Hack som long STORE names */ -# undef STORE_method_set_initialise_function -# define STORE_method_set_initialise_function STORE_meth_set_initialise_fn -# undef STORE_method_set_cleanup_function -# define STORE_method_set_cleanup_function STORE_meth_set_cleanup_fn -# undef STORE_method_set_generate_function -# define STORE_method_set_generate_function STORE_meth_set_generate_fn -# undef STORE_method_set_modify_function -# define STORE_method_set_modify_function STORE_meth_set_modify_fn -# undef STORE_method_set_revoke_function -# define STORE_method_set_revoke_function STORE_meth_set_revoke_fn -# undef STORE_method_set_delete_function -# define STORE_method_set_delete_function STORE_meth_set_delete_fn -# undef STORE_method_set_list_start_function -# define STORE_method_set_list_start_function STORE_meth_set_list_start_fn -# undef STORE_method_set_list_next_function -# define STORE_method_set_list_next_function STORE_meth_set_list_next_fn -# undef STORE_method_set_list_end_function -# define STORE_method_set_list_end_function STORE_meth_set_list_end_fn -# undef STORE_method_set_update_store_function -# define STORE_method_set_update_store_function STORE_meth_set_update_store_fn -# undef STORE_method_set_lock_store_function -# define STORE_method_set_lock_store_function STORE_meth_set_lock_store_fn -# undef STORE_method_set_unlock_store_function -# define STORE_method_set_unlock_store_function STORE_meth_set_unlock_store_fn -# undef STORE_method_get_initialise_function -# define STORE_method_get_initialise_function STORE_meth_get_initialise_fn -# undef STORE_method_get_cleanup_function -# define STORE_method_get_cleanup_function STORE_meth_get_cleanup_fn -# undef STORE_method_get_generate_function -# define STORE_method_get_generate_function STORE_meth_get_generate_fn -# undef STORE_method_get_modify_function -# define STORE_method_get_modify_function STORE_meth_get_modify_fn -# undef STORE_method_get_revoke_function -# define STORE_method_get_revoke_function STORE_meth_get_revoke_fn -# undef STORE_method_get_delete_function -# define STORE_method_get_delete_function STORE_meth_get_delete_fn -# undef STORE_method_get_list_start_function -# define STORE_method_get_list_start_function STORE_meth_get_list_start_fn -# undef STORE_method_get_list_next_function -# define STORE_method_get_list_next_function STORE_meth_get_list_next_fn -# undef STORE_method_get_list_end_function -# define STORE_method_get_list_end_function STORE_meth_get_list_end_fn -# undef STORE_method_get_update_store_function -# define STORE_method_get_update_store_function STORE_meth_get_update_store_fn -# undef STORE_method_get_lock_store_function -# define STORE_method_get_lock_store_function STORE_meth_get_lock_store_fn -# undef STORE_method_get_unlock_store_function -# define STORE_method_get_unlock_store_function STORE_meth_get_unlock_store_fn - -/* Hack some long TS names */ -# undef TS_RESP_CTX_set_status_info_cond -# define TS_RESP_CTX_set_status_info_cond TS_RESP_CTX_set_stat_info_cond -# undef TS_RESP_CTX_set_clock_precision_digits -# define TS_RESP_CTX_set_clock_precision_digits TS_RESP_CTX_set_clk_prec_digits -# undef TS_CONF_set_clock_precision_digits -# define TS_CONF_set_clock_precision_digits TS_CONF_set_clk_prec_digits - -/* Hack some long CMS names */ -# undef CMS_RecipientInfo_ktri_get0_algs -# define CMS_RecipientInfo_ktri_get0_algs CMS_RecipInfo_ktri_get0_algs -# undef CMS_RecipientInfo_ktri_get0_signer_id -# define CMS_RecipientInfo_ktri_get0_signer_id CMS_RecipInfo_ktri_get0_sigr_id -# undef CMS_OtherRevocationInfoFormat_it -# define CMS_OtherRevocationInfoFormat_it CMS_OtherRevocInfoFormat_it -# undef CMS_KeyAgreeRecipientIdentifier_it -# define CMS_KeyAgreeRecipientIdentifier_it CMS_KeyAgreeRecipIdentifier_it -# undef CMS_OriginatorIdentifierOrKey_it -# define CMS_OriginatorIdentifierOrKey_it CMS_OriginatorIdOrKey_it -# undef cms_SignerIdentifier_get0_signer_id -# define cms_SignerIdentifier_get0_signer_id cms_SignerId_get0_signer_id -# undef CMS_RecipientInfo_kari_get0_orig_id -# define CMS_RecipientInfo_kari_get0_orig_id CMS_RecipInfo_kari_get0_orig_id -# undef CMS_RecipientInfo_kari_get0_reks -# define CMS_RecipientInfo_kari_get0_reks CMS_RecipInfo_kari_get0_reks -# undef CMS_RecipientEncryptedKey_cert_cmp -# define CMS_RecipientEncryptedKey_cert_cmp CMS_RecipEncryptedKey_cert_cmp -# undef CMS_RecipientInfo_kari_set0_pkey -# define CMS_RecipientInfo_kari_set0_pkey CMS_RecipInfo_kari_set0_pkey -# undef CMS_RecipientEncryptedKey_get0_id -# define CMS_RecipientEncryptedKey_get0_id CMS_RecipEncryptedKey_get0_id -# undef CMS_RecipientInfo_kari_orig_id_cmp -# define CMS_RecipientInfo_kari_orig_id_cmp CMS_RecipInfo_kari_orig_id_cmp - -/* Hack some long DTLS1 names */ -# undef dtls1_retransmit_buffered_messages -# define dtls1_retransmit_buffered_messages dtls1_retransmit_buffered_msgs - -/* Hack some long SRP names */ -# undef SRP_generate_server_master_secret -# define SRP_generate_server_master_secret SRP_gen_server_master_secret -# undef SRP_generate_client_master_secret -# define SRP_generate_client_master_secret SRP_gen_client_master_secret - -/* Hack some long UI names */ -# undef UI_method_get_prompt_constructor -# define UI_method_get_prompt_constructor UI_method_get_prompt_constructr -# undef UI_method_set_prompt_constructor -# define UI_method_set_prompt_constructor UI_method_set_prompt_constructr - -# endif /* defined OPENSSL_SYS_VMS */ - -/* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_OS2) -# undef ERR_load_CRYPTO_strings -# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings -# undef OCSP_crlID_new -# define OCSP_crlID_new OCSP_crlID2_new - -# undef d2i_ECPARAMETERS -# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS -# undef i2d_ECPARAMETERS -# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS -# undef d2i_ECPKPARAMETERS -# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS -# undef i2d_ECPKPARAMETERS -# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS - -/* - * These functions do not seem to exist! However, I'm paranoid... Original - * command in x509v3.h: These functions are being redefined in another - * directory, and clash when the linker is case-insensitive, so let's hide - * them a little, by giving them an extra 'o' at the beginning of the name... - */ -# undef X509v3_cleanup_extensions -# define X509v3_cleanup_extensions oX509v3_cleanup_extensions -# undef X509v3_add_extension -# define X509v3_add_extension oX509v3_add_extension -# undef X509v3_add_netscape_extensions -# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -# undef X509v3_add_standard_extensions -# define X509v3_add_standard_extensions oX509v3_add_standard_extensions - -/* This one clashes with CMS_data_create */ -# undef cms_Data_create -# define cms_Data_create priv_cms_Data_create - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/3rdparty/openssl/include/openssl/tls1.h b/3rdparty/openssl/include/openssl/tls1.h deleted file mode 100644 index dd1d8c1..0000000 --- a/3rdparty/openssl/include/openssl/tls1.h +++ /dev/null @@ -1,810 +0,0 @@ -/* ssl/tls1.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * ECC cipher suite support in OpenSSL originally written by - * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_TLS1_H -# define HEADER_TLS1_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES 0 - -# define TLS1_VERSION 0x0301 -# define TLS1_1_VERSION 0x0302 -# define TLS1_2_VERSION 0x0303 -# define TLS_MAX_VERSION TLS1_2_VERSION - -# define TLS1_VERSION_MAJOR 0x03 -# define TLS1_VERSION_MINOR 0x01 - -# define TLS1_1_VERSION_MAJOR 0x03 -# define TLS1_1_VERSION_MINOR 0x02 - -# define TLS1_2_VERSION_MAJOR 0x03 -# define TLS1_2_VERSION_MINOR 0x03 - -# define TLS1_get_version(s) \ - ((s->version >> 8) == TLS1_VERSION_MAJOR ? s->version : 0) - -# define TLS1_get_client_version(s) \ - ((s->client_version >> 8) == TLS1_VERSION_MAJOR ? s->client_version : 0) - -# define TLS1_AD_DECRYPTION_FAILED 21 -# define TLS1_AD_RECORD_OVERFLOW 22 -# define TLS1_AD_UNKNOWN_CA 48/* fatal */ -# define TLS1_AD_ACCESS_DENIED 49/* fatal */ -# define TLS1_AD_DECODE_ERROR 50/* fatal */ -# define TLS1_AD_DECRYPT_ERROR 51 -# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ -# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ -# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ -# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ -# define TLS1_AD_INAPPROPRIATE_FALLBACK 86/* fatal */ -# define TLS1_AD_USER_CANCELLED 90 -# define TLS1_AD_NO_RENEGOTIATION 100 -/* codes 110-114 are from RFC3546 */ -# define TLS1_AD_UNSUPPORTED_EXTENSION 110 -# define TLS1_AD_CERTIFICATE_UNOBTAINABLE 111 -# define TLS1_AD_UNRECOGNIZED_NAME 112 -# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 -# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 -# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ - -/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ -# define TLSEXT_TYPE_server_name 0 -# define TLSEXT_TYPE_max_fragment_length 1 -# define TLSEXT_TYPE_client_certificate_url 2 -# define TLSEXT_TYPE_trusted_ca_keys 3 -# define TLSEXT_TYPE_truncated_hmac 4 -# define TLSEXT_TYPE_status_request 5 -/* ExtensionType values from RFC4681 */ -# define TLSEXT_TYPE_user_mapping 6 -/* ExtensionType values from RFC5878 */ -# define TLSEXT_TYPE_client_authz 7 -# define TLSEXT_TYPE_server_authz 8 -/* ExtensionType values from RFC6091 */ -# define TLSEXT_TYPE_cert_type 9 - -/* ExtensionType values from RFC4492 */ -# define TLSEXT_TYPE_elliptic_curves 10 -# define TLSEXT_TYPE_ec_point_formats 11 - -/* ExtensionType value from RFC5054 */ -# define TLSEXT_TYPE_srp 12 - -/* ExtensionType values from RFC5246 */ -# define TLSEXT_TYPE_signature_algorithms 13 - -/* ExtensionType value from RFC5764 */ -# define TLSEXT_TYPE_use_srtp 14 - -/* ExtensionType value from RFC5620 */ -# define TLSEXT_TYPE_heartbeat 15 - -/* ExtensionType value from RFC7301 */ -# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 - -/* - * ExtensionType value for TLS padding extension. - * http://tools.ietf.org/html/draft-agl-tls-padding - */ -# define TLSEXT_TYPE_padding 21 - -/* ExtensionType value from RFC4507 */ -# define TLSEXT_TYPE_session_ticket 35 - -/* ExtensionType value from draft-rescorla-tls-opaque-prf-input-00.txt */ -# if 0 -/* - * will have to be provided externally for now , - * i.e. build with -DTLSEXT_TYPE_opaque_prf_input=38183 - * using whatever extension number you'd like to try - */ -# define TLSEXT_TYPE_opaque_prf_input ?? -# endif - -/* Temporary extension type */ -# define TLSEXT_TYPE_renegotiate 0xff01 - -# ifndef OPENSSL_NO_NEXTPROTONEG -/* This is not an IANA defined extension number */ -# define TLSEXT_TYPE_next_proto_neg 13172 -# endif - -/* NameType value from RFC3546 */ -# define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC3546 */ -# define TLSEXT_STATUSTYPE_ocsp 1 - -/* ECPointFormat values from RFC4492 */ -# define TLSEXT_ECPOINTFORMAT_first 0 -# define TLSEXT_ECPOINTFORMAT_uncompressed 0 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 -# define TLSEXT_ECPOINTFORMAT_last 2 - -/* Signature and hash algorithms from RFC5246 */ -# define TLSEXT_signature_anonymous 0 -# define TLSEXT_signature_rsa 1 -# define TLSEXT_signature_dsa 2 -# define TLSEXT_signature_ecdsa 3 - -/* Total number of different signature algorithms */ -# define TLSEXT_signature_num 4 - -# define TLSEXT_hash_none 0 -# define TLSEXT_hash_md5 1 -# define TLSEXT_hash_sha1 2 -# define TLSEXT_hash_sha224 3 -# define TLSEXT_hash_sha256 4 -# define TLSEXT_hash_sha384 5 -# define TLSEXT_hash_sha512 6 - -/* Total number of different digest algorithms */ - -# define TLSEXT_hash_num 7 - -/* Flag set for unrecognised algorithms */ -# define TLSEXT_nid_unknown 0x1000000 - -/* ECC curves */ - -# define TLSEXT_curve_P_256 23 -# define TLSEXT_curve_P_384 24 - -# ifndef OPENSSL_NO_TLSEXT - -# define TLSEXT_MAXLEN_host_name 255 - -const char *SSL_get_servername(const SSL *s, const int type); -int SSL_get_servername_type(const SSL *s); -/* - * SSL_export_keying_material exports a value derived from the master secret, - * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and - * optional context. (Since a zero length context is allowed, the |use_context| - * flag controls whether a context is included.) It returns 1 on success and - * zero otherwise. - */ -int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, - const unsigned char *context, size_t contextlen, - int use_context); - -int SSL_get_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -int SSL_get_shared_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); - -# define SSL_set_tlsext_host_name(s,name) \ -SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_HOSTNAME,TLSEXT_NAMETYPE_host_name,(char *)name) - -# define SSL_set_tlsext_debug_callback(ssl, cb) \ -SSL_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_CB,(void (*)(void))cb) - -# define SSL_set_tlsext_debug_arg(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_DEBUG_ARG,0, (void *)arg) - -# define SSL_set_tlsext_status_type(ssl, type) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE,type, NULL) - -# define SSL_get_tlsext_status_exts(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) - -# define SSL_set_tlsext_status_exts(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) - -# define SSL_get_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_set_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) - -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) - -# define SSL_CTX_set_tlsext_servername_callback(ctx, cb) \ -SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_CB,(void (*)(void))cb) - -# define SSL_TLSEXT_ERR_OK 0 -# define SSL_TLSEXT_ERR_ALERT_WARNING 1 -# define SSL_TLSEXT_ERR_ALERT_FATAL 2 -# define SSL_TLSEXT_ERR_NOACK 3 - -# define SSL_CTX_set_tlsext_servername_arg(ctx, arg) \ -SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG,0, (void *)arg) - -# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_GET_TLSEXT_TICKET_KEYS,(keylen),(keys)) -# define SSL_CTX_set_tlsext_ticket_keys(ctx, keys, keylen) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_SET_TLSEXT_TICKET_KEYS,(keylen),(keys)) - -# define SSL_CTX_set_tlsext_status_cb(ssl, cb) \ -SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB,(void (*)(void))cb) - -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ -SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) - -# define SSL_set_tlsext_opaque_prf_input(s, src, len) \ -SSL_ctrl(s,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT, len, src) -# define SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb) \ -SSL_CTX_callback_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB, (void (*)(void))cb) -# define SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg) \ -SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG, 0, arg) - -# define SSL_CTX_set_tlsext_ticket_key_cb(ssl, cb) \ -SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) - -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_TLSEXT_HB_ENABLED 0x01 -# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS 0x02 -# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS 0x04 - -# define SSL_get_tlsext_heartbeat_pending(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING,0,NULL) -# define SSL_set_tlsext_heartbeat_no_requests(ssl, arg) \ - SSL_ctrl((ssl),SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS,arg,NULL) -# endif -# endif - -/* PSK ciphersuites from 4279 */ -# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A -# define TLS1_CK_PSK_WITH_3DES_EDE_CBC_SHA 0x0300008B -# define TLS1_CK_PSK_WITH_AES_128_CBC_SHA 0x0300008C -# define TLS1_CK_PSK_WITH_AES_256_CBC_SHA 0x0300008D - -/* - * Additional TLS ciphersuites from expired Internet Draft - * draft-ietf-tls-56-bit-ciphersuites-01.txt (available if - * TLS1_ALLOW_EXPERIMENTAL_CIPHERSUITES is defined, see s3_lib.c). We - * actually treat them like SSL 3.0 ciphers, which we probably shouldn't. - * Note that the first two are actually not in the IDs. - */ -# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_MD5 0x03000060/* not in - * ID */ -# define TLS1_CK_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 0x03000061/* not in - * ID */ -# define TLS1_CK_RSA_EXPORT1024_WITH_DES_CBC_SHA 0x03000062 -# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA 0x03000063 -# define TLS1_CK_RSA_EXPORT1024_WITH_RC4_56_SHA 0x03000064 -# define TLS1_CK_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA 0x03000065 -# define TLS1_CK_DHE_DSS_WITH_RC4_128_SHA 0x03000066 - -/* AES ciphersuites from RFC3268 */ -# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA 0x03000032 -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA 0x03000033 -# define TLS1_CK_ADH_WITH_AES_128_SHA 0x03000034 - -# define TLS1_CK_RSA_WITH_AES_256_SHA 0x03000035 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA 0x03000036 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA 0x03000037 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 -# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B -# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C -# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B -# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C -# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 -# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 -# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 -# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 -# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A -# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C -# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D -# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E -# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F -# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 -# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 -# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 -# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 -# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 -# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 -# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 -# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 - -/* - * ECC ciphersuites from draft-ietf-tls-ecc-12.txt with changes soon to be in - * draft 13 - */ -# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 -# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 -# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 - -# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 -# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 -# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A - -# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B -# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C -# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D -# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E -# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F - -# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 -# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 -# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 - -# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 -# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 -# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 -# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 -# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 - -/* SRP ciphersuites from RFC 5054 */ -# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A -# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B -# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C -# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F -# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_256_CBC_SHA 0x0300C022 - -/* ECDH HMAC based ciphersuites from RFC5289 */ - -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_SHA256 0x0300C023 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_SHA384 0x0300C024 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_SHA256 0x0300C025 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 - -/* - * XXX * Backward compatibility alert: + * Older versions of OpenSSL gave - * some DHE ciphers names with "EDH" + * instead of "DHE". Going forward, we - * should be using DHE + * everywhere, though we may indefinitely maintain - * aliases for users + * or configurations that used "EDH" + - */ -# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_MD5 "EXP1024-RC4-MD5" -# define TLS1_TXT_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 "EXP1024-RC2-CBC-MD5" -# define TLS1_TXT_RSA_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DES-CBC-SHA" -# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA "EXP1024-DHE-DSS-DES-CBC-SHA" -# define TLS1_TXT_RSA_EXPORT1024_WITH_RC4_56_SHA "EXP1024-RC4-SHA" -# define TLS1_TXT_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA "EXP1024-DHE-DSS-RC4-SHA" -# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" - -/* AES ciphersuites from RFC3268 */ -# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" -# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" - -# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" -# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" - -# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" -# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" -# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" - -/* PSK ciphersuites from RFC 4279 */ -# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" -# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" - -/* SRP ciphersuite from RFC 5054 */ -# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" -# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" -# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" -# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" -# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" -# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" - -/* TLS v1.2 ciphersuites */ -# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" -# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" -# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_GCM_SHA384 "ADH-AES256-GCM-SHA384" - -/* ECDH HMAC based ciphersuites from RFC5289 */ - -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_SHA256 "ECDHE-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_SHA384 "ECDHE-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_SHA256 "ECDH-ECDSA-AES128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" - -# define TLS_CT_RSA_SIGN 1 -# define TLS_CT_DSS_SIGN 2 -# define TLS_CT_RSA_FIXED_DH 3 -# define TLS_CT_DSS_FIXED_DH 4 -# define TLS_CT_ECDSA_SIGN 64 -# define TLS_CT_RSA_FIXED_ECDH 65 -# define TLS_CT_ECDSA_FIXED_ECDH 66 -# define TLS_CT_GOST94_SIGN 21 -# define TLS_CT_GOST01_SIGN 22 -/* - * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see - * comment there) - */ -# define TLS_CT_NUMBER 9 - -# define TLS1_FINISH_MAC_LENGTH 12 - -# define TLS_MD_MAX_CONST_SIZE 20 -# define TLS_MD_CLIENT_FINISH_CONST "client finished" -# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 -# define TLS_MD_SERVER_FINISH_CONST "server finished" -# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 -# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_KEY_EXPANSION_CONST "key expansion" -# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 -# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" -# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_IV_BLOCK_CONST "IV block" -# define TLS_MD_IV_BLOCK_CONST_SIZE 8 -# define TLS_MD_MASTER_SECRET_CONST "master secret" -# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 - -# ifdef CHARSET_EBCDIC -# undef TLS_MD_CLIENT_FINISH_CONST -/* - * client finished - */ -# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_FINISH_CONST -/* - * server finished - */ -# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_KEY_EXPANSION_CONST -/* - * key expansion - */ -# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" - -# undef TLS_MD_CLIENT_WRITE_KEY_CONST -/* - * client write key - */ -# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_IV_BLOCK_CONST -/* - * IV block - */ -# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" - -# undef TLS_MD_MASTER_SECRET_CONST -/* - * master secret - */ -# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# endif - -/* TLS Session Ticket extension struct */ -struct tls_session_ticket_ext_st { - unsigned short length; - void *data; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ts.h b/3rdparty/openssl/include/openssl/ts.h deleted file mode 100644 index 2daa1b2..0000000 --- a/3rdparty/openssl/include/openssl/ts.h +++ /dev/null @@ -1,865 +0,0 @@ -/* crypto/ts/ts.h */ -/* - * Written by Zoltan Glozik (zglozik@opentsa.org) for the OpenSSL project - * 2002, 2003, 2004. - */ -/* ==================================================================== - * Copyright (c) 2006 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_TS_H -# define HEADER_TS_H - -# include -# include -# ifndef OPENSSL_NO_BUFFER -# include -# endif -# ifndef OPENSSL_NO_EVP -# include -# endif -# ifndef OPENSSL_NO_BIO -# include -# endif -# include -# include -# include - -# ifndef OPENSSL_NO_RSA -# include -# endif - -# ifndef OPENSSL_NO_DSA -# include -# endif - -# ifndef OPENSSL_NO_DH -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef WIN32 -/* Under Win32 this is defined in wincrypt.h */ -# undef X509_NAME -# endif - -# include -# include - -/*- -MessageImprint ::= SEQUENCE { - hashAlgorithm AlgorithmIdentifier, - hashedMessage OCTET STRING } -*/ - -typedef struct TS_msg_imprint_st { - X509_ALGOR *hash_algo; - ASN1_OCTET_STRING *hashed_msg; -} TS_MSG_IMPRINT; - -/*- -TimeStampReq ::= SEQUENCE { - version INTEGER { v1(1) }, - messageImprint MessageImprint, - --a hash algorithm OID and the hash value of the data to be - --time-stamped - reqPolicy TSAPolicyId OPTIONAL, - nonce INTEGER OPTIONAL, - certReq BOOLEAN DEFAULT FALSE, - extensions [0] IMPLICIT Extensions OPTIONAL } -*/ - -typedef struct TS_req_st { - ASN1_INTEGER *version; - TS_MSG_IMPRINT *msg_imprint; - ASN1_OBJECT *policy_id; /* OPTIONAL */ - ASN1_INTEGER *nonce; /* OPTIONAL */ - ASN1_BOOLEAN cert_req; /* DEFAULT FALSE */ - STACK_OF(X509_EXTENSION) *extensions; /* [0] OPTIONAL */ -} TS_REQ; - -/*- -Accuracy ::= SEQUENCE { - seconds INTEGER OPTIONAL, - millis [0] INTEGER (1..999) OPTIONAL, - micros [1] INTEGER (1..999) OPTIONAL } -*/ - -typedef struct TS_accuracy_st { - ASN1_INTEGER *seconds; - ASN1_INTEGER *millis; - ASN1_INTEGER *micros; -} TS_ACCURACY; - -/*- -TSTInfo ::= SEQUENCE { - version INTEGER { v1(1) }, - policy TSAPolicyId, - messageImprint MessageImprint, - -- MUST have the same value as the similar field in - -- TimeStampReq - serialNumber INTEGER, - -- Time-Stamping users MUST be ready to accommodate integers - -- up to 160 bits. - genTime GeneralizedTime, - accuracy Accuracy OPTIONAL, - ordering BOOLEAN DEFAULT FALSE, - nonce INTEGER OPTIONAL, - -- MUST be present if the similar field was present - -- in TimeStampReq. In that case it MUST have the same value. - tsa [0] GeneralName OPTIONAL, - extensions [1] IMPLICIT Extensions OPTIONAL } -*/ - -typedef struct TS_tst_info_st { - ASN1_INTEGER *version; - ASN1_OBJECT *policy_id; - TS_MSG_IMPRINT *msg_imprint; - ASN1_INTEGER *serial; - ASN1_GENERALIZEDTIME *time; - TS_ACCURACY *accuracy; - ASN1_BOOLEAN ordering; - ASN1_INTEGER *nonce; - GENERAL_NAME *tsa; - STACK_OF(X509_EXTENSION) *extensions; -} TS_TST_INFO; - -/*- -PKIStatusInfo ::= SEQUENCE { - status PKIStatus, - statusString PKIFreeText OPTIONAL, - failInfo PKIFailureInfo OPTIONAL } - -From RFC 1510 - section 3.1.1: -PKIFreeText ::= SEQUENCE SIZE (1..MAX) OF UTF8String - -- text encoded as UTF-8 String (note: each UTF8String SHOULD - -- include an RFC 1766 language tag to indicate the language - -- of the contained text) -*/ - -/* Possible values for status. See ts_resp_print.c && ts_resp_verify.c. */ - -# define TS_STATUS_GRANTED 0 -# define TS_STATUS_GRANTED_WITH_MODS 1 -# define TS_STATUS_REJECTION 2 -# define TS_STATUS_WAITING 3 -# define TS_STATUS_REVOCATION_WARNING 4 -# define TS_STATUS_REVOCATION_NOTIFICATION 5 - -/* - * Possible values for failure_info. See ts_resp_print.c && ts_resp_verify.c - */ - -# define TS_INFO_BAD_ALG 0 -# define TS_INFO_BAD_REQUEST 2 -# define TS_INFO_BAD_DATA_FORMAT 5 -# define TS_INFO_TIME_NOT_AVAILABLE 14 -# define TS_INFO_UNACCEPTED_POLICY 15 -# define TS_INFO_UNACCEPTED_EXTENSION 16 -# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 -# define TS_INFO_SYSTEM_FAILURE 25 - -typedef struct TS_status_info_st { - ASN1_INTEGER *status; - STACK_OF(ASN1_UTF8STRING) *text; - ASN1_BIT_STRING *failure_info; -} TS_STATUS_INFO; - -DECLARE_STACK_OF(ASN1_UTF8STRING) -DECLARE_ASN1_SET_OF(ASN1_UTF8STRING) - -/*- -TimeStampResp ::= SEQUENCE { - status PKIStatusInfo, - timeStampToken TimeStampToken OPTIONAL } -*/ - -typedef struct TS_resp_st { - TS_STATUS_INFO *status_info; - PKCS7 *token; - TS_TST_INFO *tst_info; -} TS_RESP; - -/* The structure below would belong to the ESS component. */ - -/*- -IssuerSerial ::= SEQUENCE { - issuer GeneralNames, - serialNumber CertificateSerialNumber - } -*/ - -typedef struct ESS_issuer_serial { - STACK_OF(GENERAL_NAME) *issuer; - ASN1_INTEGER *serial; -} ESS_ISSUER_SERIAL; - -/*- -ESSCertID ::= SEQUENCE { - certHash Hash, - issuerSerial IssuerSerial OPTIONAL -} -*/ - -typedef struct ESS_cert_id { - ASN1_OCTET_STRING *hash; /* Always SHA-1 digest. */ - ESS_ISSUER_SERIAL *issuer_serial; -} ESS_CERT_ID; - -DECLARE_STACK_OF(ESS_CERT_ID) -DECLARE_ASN1_SET_OF(ESS_CERT_ID) - -/*- -SigningCertificate ::= SEQUENCE { - certs SEQUENCE OF ESSCertID, - policies SEQUENCE OF PolicyInformation OPTIONAL -} -*/ - -typedef struct ESS_signing_cert { - STACK_OF(ESS_CERT_ID) *cert_ids; - STACK_OF(POLICYINFO) *policy_info; -} ESS_SIGNING_CERT; - -TS_REQ *TS_REQ_new(void); -void TS_REQ_free(TS_REQ *a); -int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); -TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); - -TS_REQ *TS_REQ_dup(TS_REQ *a); - -TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); -int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); -TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); -int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); -void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); -int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, - const unsigned char **pp, long length); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); - -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_bio(BIO *fp, TS_MSG_IMPRINT *a); - -TS_RESP *TS_RESP_new(void); -void TS_RESP_free(TS_RESP *a); -int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); -TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); -TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); -TS_RESP *TS_RESP_dup(TS_RESP *a); - -TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); -int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); -TS_RESP *d2i_TS_RESP_bio(BIO *fp, TS_RESP **a); -int i2d_TS_RESP_bio(BIO *fp, TS_RESP *a); - -TS_STATUS_INFO *TS_STATUS_INFO_new(void); -void TS_STATUS_INFO_free(TS_STATUS_INFO *a); -int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); -TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, - const unsigned char **pp, long length); -TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); - -TS_TST_INFO *TS_TST_INFO_new(void); -void TS_TST_INFO_free(TS_TST_INFO *a); -int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); -TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, - long length); -TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); - -TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); -TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_bio(BIO *fp, TS_TST_INFO *a); - -TS_ACCURACY *TS_ACCURACY_new(void); -void TS_ACCURACY_free(TS_ACCURACY *a); -int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); -TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, - long length); -TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); - -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); -void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); -int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **pp); -ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, - const unsigned char **pp, - long length); -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); - -ESS_CERT_ID *ESS_CERT_ID_new(void); -void ESS_CERT_ID_free(ESS_CERT_ID *a); -int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); -ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, - long length); -ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); - -ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); -void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); -int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **pp); -ESS_SIGNING_CERT *d2i_ESS_SIGNING_CERT(ESS_SIGNING_CERT **a, - const unsigned char **pp, long length); -ESS_SIGNING_CERT *ESS_SIGNING_CERT_dup(ESS_SIGNING_CERT *a); - -void ERR_load_TS_strings(void); - -int TS_REQ_set_version(TS_REQ *a, long version); -long TS_REQ_get_version(const TS_REQ *a); - -int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); - -int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); -X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); - -int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); -ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); - -int TS_REQ_set_policy_id(TS_REQ *a, ASN1_OBJECT *policy); -ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); - -int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); - -int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); -int TS_REQ_get_cert_req(const TS_REQ *a); - -STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); -void TS_REQ_ext_free(TS_REQ *a); -int TS_REQ_get_ext_count(TS_REQ *a); -int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); -int TS_REQ_get_ext_by_OBJ(TS_REQ *a, ASN1_OBJECT *obj, int lastpos); -int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); -X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); -X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); -int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); -void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); - -/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ - -int TS_REQ_print_bio(BIO *bio, TS_REQ *a); - -/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ - -int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); -TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); - -/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ -void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); -PKCS7 *TS_RESP_get_token(TS_RESP *a); -TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); - -int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); -long TS_TST_INFO_get_version(const TS_TST_INFO *a); - -int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); -ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); - -int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); - -int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); -const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); - -int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); -const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); - -int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); -TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); - -int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); -const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); - -int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); -const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); - -int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); -const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); - -int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); -int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); - -int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); - -int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); -GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); - -STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); -void TS_TST_INFO_ext_free(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); -int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, ASN1_OBJECT *obj, int lastpos); -int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); -X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); -X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); -int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); -void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); - -/* - * Declarations related to response generation, defined in ts/ts_resp_sign.c. - */ - -/* Optional flags for response generation. */ - -/* Don't include the TSA name in response. */ -# define TS_TSA_NAME 0x01 - -/* Set ordering to true in response. */ -# define TS_ORDERING 0x02 - -/* - * Include the signer certificate and the other specified certificates in - * the ESS signing certificate attribute beside the PKCS7 signed data. - * Only the signer certificates is included by default. - */ -# define TS_ESS_CERT_ID_CHAIN 0x04 - -/* Forward declaration. */ -struct TS_resp_ctx; - -/* This must return a unique number less than 160 bits long. */ -typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); - -/* - * This must return the seconds and microseconds since Jan 1, 1970 in the sec - * and usec variables allocated by the caller. Return non-zero for success - * and zero for failure. - */ -typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, - long *usec); - -/* - * This must process the given extension. It can modify the TS_TST_INFO - * object of the context. Return values: !0 (processed), 0 (error, it must - * set the status info/failure info of the response). - */ -typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, - void *); - -typedef struct TS_resp_ctx { - X509 *signer_cert; - EVP_PKEY *signer_key; - STACK_OF(X509) *certs; /* Certs to include in signed data. */ - STACK_OF(ASN1_OBJECT) *policies; /* Acceptable policies. */ - ASN1_OBJECT *default_policy; /* It may appear in policies, too. */ - STACK_OF(EVP_MD) *mds; /* Acceptable message digests. */ - ASN1_INTEGER *seconds; /* accuracy, 0 means not specified. */ - ASN1_INTEGER *millis; /* accuracy, 0 means not specified. */ - ASN1_INTEGER *micros; /* accuracy, 0 means not specified. */ - unsigned clock_precision_digits; /* fraction of seconds in time stamp - * token. */ - unsigned flags; /* Optional info, see values above. */ - /* Callback functions. */ - TS_serial_cb serial_cb; - void *serial_cb_data; /* User data for serial_cb. */ - TS_time_cb time_cb; - void *time_cb_data; /* User data for time_cb. */ - TS_extension_cb extension_cb; - void *extension_cb_data; /* User data for extension_cb. */ - /* These members are used only while creating the response. */ - TS_REQ *request; - TS_RESP *response; - TS_TST_INFO *tst_info; -} TS_RESP_CTX; - -DECLARE_STACK_OF(EVP_MD) -DECLARE_ASN1_SET_OF(EVP_MD) - -/* Creates a response context that can be used for generating responses. */ -TS_RESP_CTX *TS_RESP_CTX_new(void); -void TS_RESP_CTX_free(TS_RESP_CTX *ctx); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *def_policy); - -/* No additional certs are included in the response by default. */ -int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); - -/* - * Adds a new acceptable policy, only the default policy is accepted by - * default. - */ -int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, ASN1_OBJECT *policy); - -/* - * Adds a new acceptable message digest. Note that no message digests are - * accepted by default. The md argument is shared with the caller. - */ -int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* Accuracy is not included by default. */ -int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, - int secs, int millis, int micros); - -/* - * Clock precision digits, i.e. the number of decimal digits: '0' means sec, - * '3' msec, '6' usec, and so on. Default is 0. - */ -int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, - unsigned clock_precision_digits); -/* At most we accept usec precision. */ -# define TS_MAX_CLOCK_PRECISION_DIGITS 6 - -/* Maximum status message length */ -# define TS_MAX_STATUS_LENGTH (1024 * 1024) - -/* No flags are set by default. */ -void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); - -/* Default callback always returns a constant. */ -void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); - -/* Default callback uses the gettimeofday() and gmtime() system calls. */ -void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); - -/* - * Default callback rejects all extensions. The extension callback is called - * when the TS_TST_INFO object is already set up and not signed yet. - */ -/* FIXME: extension handling is not tested yet. */ -void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, - TS_extension_cb cb, void *data); - -/* The following methods can be used in the callbacks. */ -int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, - int status, const char *text); - -/* Sets the status info only if it is still TS_STATUS_GRANTED. */ -int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, - int status, const char *text); - -int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); - -/* The get methods below can be used in the extension callback. */ -TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); - -TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); - -/* - * Creates the signed TS_TST_INFO and puts it in TS_RESP. - * In case of errors it sets the status info properly. - * Returns NULL only in case of memory allocation/fatal error. - */ -TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); - -/* - * Declarations related to response verification, - * they are defined in ts/ts_resp_verify.c. - */ - -int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, - X509_STORE *store, X509 **signer_out); - -/* Context structure for the generic verify method. */ - -/* Verify the signer's certificate and the signature of the response. */ -# define TS_VFY_SIGNATURE (1u << 0) -/* Verify the version number of the response. */ -# define TS_VFY_VERSION (1u << 1) -/* Verify if the policy supplied by the user matches the policy of the TSA. */ -# define TS_VFY_POLICY (1u << 2) -/* - * Verify the message imprint provided by the user. This flag should not be - * specified with TS_VFY_DATA. - */ -# define TS_VFY_IMPRINT (1u << 3) -/* - * Verify the message imprint computed by the verify method from the user - * provided data and the MD algorithm of the response. This flag should not - * be specified with TS_VFY_IMPRINT. - */ -# define TS_VFY_DATA (1u << 4) -/* Verify the nonce value. */ -# define TS_VFY_NONCE (1u << 5) -/* Verify if the TSA name field matches the signer certificate. */ -# define TS_VFY_SIGNER (1u << 6) -/* Verify if the TSA name field equals to the user provided name. */ -# define TS_VFY_TSA_NAME (1u << 7) - -/* You can use the following convenience constants. */ -# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_IMPRINT \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) -# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_DATA \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) - -typedef struct TS_verify_ctx { - /* Set this to the union of TS_VFY_... flags you want to carry out. */ - unsigned flags; - /* Must be set only with TS_VFY_SIGNATURE. certs is optional. */ - X509_STORE *store; - STACK_OF(X509) *certs; - /* Must be set only with TS_VFY_POLICY. */ - ASN1_OBJECT *policy; - /* - * Must be set only with TS_VFY_IMPRINT. If md_alg is NULL, the - * algorithm from the response is used. - */ - X509_ALGOR *md_alg; - unsigned char *imprint; - unsigned imprint_len; - /* Must be set only with TS_VFY_DATA. */ - BIO *data; - /* Must be set only with TS_VFY_TSA_NAME. */ - ASN1_INTEGER *nonce; - /* Must be set only with TS_VFY_TSA_NAME. */ - GENERAL_NAME *tsa_name; -} TS_VERIFY_CTX; - -int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); -int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); - -/* - * Declarations related to response verification context, - * they are defined in ts/ts_verify_ctx.c. - */ - -/* Set all fields to zero. */ -TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); -void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); - -/*- - * If ctx is NULL, it allocates and returns a new object, otherwise - * it returns ctx. It initialises all the members as follows: - * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) - * certs = NULL - * store = NULL - * policy = policy from the request or NULL if absent (in this case - * TS_VFY_POLICY is cleared from flags as well) - * md_alg = MD algorithm from request - * imprint, imprint_len = imprint from request - * data = NULL - * nonce, nonce_len = nonce from the request or NULL if absent (in this case - * TS_VFY_NONCE is cleared from flags as well) - * tsa_name = NULL - * Important: after calling this method TS_VFY_SIGNATURE should be added! - */ -TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); - -/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ - -int TS_RESP_print_bio(BIO *bio, TS_RESP *a); -int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); -int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); - -/* Common utility functions defined in ts/ts_lib.c */ - -int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); -int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); -int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); -int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); -int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); - -/* - * Function declarations for handling configuration options, defined in - * ts/ts_conf.c - */ - -X509 *TS_CONF_load_cert(const char *file); -STACK_OF(X509) *TS_CONF_load_certs(const char *file); -EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); -const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); -int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, - TS_RESP_CTX *ctx); -int TS_CONF_set_crypto_device(CONF *conf, const char *section, - const char *device); -int TS_CONF_set_default_engine(const char *name); -int TS_CONF_set_signer_cert(CONF *conf, const char *section, - const char *cert, TS_RESP_CTX *ctx); -int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_key(CONF *conf, const char *section, - const char *key, const char *pass, - TS_RESP_CTX *ctx); -int TS_CONF_set_def_policy(CONF *conf, const char *section, - const char *policy, TS_RESP_CTX *ctx); -int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -int TS_CONF_set_ordering(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_tsa_name(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_ess_cert_id_chain(CONF *conf, const char *section, - TS_RESP_CTX *ctx); - -/* -------------------------------------------------- */ -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_TS_strings(void); - -/* Error codes for the TS functions. */ - -/* Function codes. */ -# define TS_F_D2I_TS_RESP 147 -# define TS_F_DEF_SERIAL_CB 110 -# define TS_F_DEF_TIME_CB 111 -# define TS_F_ESS_ADD_SIGNING_CERT 112 -# define TS_F_ESS_CERT_ID_NEW_INIT 113 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 -# define TS_F_PKCS7_TO_TS_TST_INFO 148 -# define TS_F_TS_ACCURACY_SET_MICROS 115 -# define TS_F_TS_ACCURACY_SET_MILLIS 116 -# define TS_F_TS_ACCURACY_SET_SECONDS 117 -# define TS_F_TS_CHECK_IMPRINTS 100 -# define TS_F_TS_CHECK_NONCES 101 -# define TS_F_TS_CHECK_POLICY 102 -# define TS_F_TS_CHECK_SIGNING_CERTS 103 -# define TS_F_TS_CHECK_STATUS_INFO 104 -# define TS_F_TS_COMPUTE_IMPRINT 145 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 -# define TS_F_TS_GET_STATUS_TEXT 105 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 -# define TS_F_TS_REQ_SET_NONCE 120 -# define TS_F_TS_REQ_SET_POLICY_ID 121 -# define TS_F_TS_RESP_CREATE_RESPONSE 122 -# define TS_F_TS_RESP_CREATE_TST_INFO 123 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 -# define TS_F_TS_RESP_CTX_ADD_MD 125 -# define TS_F_TS_RESP_CTX_ADD_POLICY 126 -# define TS_F_TS_RESP_CTX_NEW 127 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 -# define TS_F_TS_RESP_CTX_SET_CERTS 129 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 -# define TS_F_TS_RESP_GET_POLICY 133 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 -# define TS_F_TS_RESP_SET_STATUS_INFO 135 -# define TS_F_TS_RESP_SET_TST_INFO 150 -# define TS_F_TS_RESP_SIGN 136 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 -# define TS_F_TS_RESP_VERIFY_TOKEN 107 -# define TS_F_TS_TST_INFO_SET_ACCURACY 137 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 -# define TS_F_TS_TST_INFO_SET_NONCE 139 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 -# define TS_F_TS_TST_INFO_SET_SERIAL 141 -# define TS_F_TS_TST_INFO_SET_TIME 142 -# define TS_F_TS_TST_INFO_SET_TSA 143 -# define TS_F_TS_VERIFY 108 -# define TS_F_TS_VERIFY_CERT 109 -# define TS_F_TS_VERIFY_CTX_NEW 144 - -/* Reason codes. */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_D2I_TS_RESP_INT_FAILED 128 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_WRONG_CONTENT_TYPE 114 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/txt_db.h b/3rdparty/openssl/include/openssl/txt_db.h deleted file mode 100644 index 98e23a2..0000000 --- a/3rdparty/openssl/include/openssl/txt_db.h +++ /dev/null @@ -1,112 +0,0 @@ -/* crypto/txt_db/txt_db.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_TXT_DB_H -# define HEADER_TXT_DB_H - -# include -# ifndef OPENSSL_NO_BIO -# include -# endif -# include -# include - -# define DB_ERROR_OK 0 -# define DB_ERROR_MALLOC 1 -# define DB_ERROR_INDEX_CLASH 2 -# define DB_ERROR_INDEX_OUT_OF_RANGE 3 -# define DB_ERROR_NO_INDEX 4 -# define DB_ERROR_INSERT_INDEX_CLASH 5 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OPENSSL_STRING *OPENSSL_PSTRING; -DECLARE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) - -typedef struct txt_db_st { - int num_fields; - STACK_OF(OPENSSL_PSTRING) *data; - LHASH_OF(OPENSSL_STRING) **index; - int (**qual) (OPENSSL_STRING *); - long error; - long arg1; - long arg2; - OPENSSL_STRING *arg_row; -} TXT_DB; - -# ifndef OPENSSL_NO_BIO -TXT_DB *TXT_DB_read(BIO *in, int num); -long TXT_DB_write(BIO *out, TXT_DB *db); -# else -TXT_DB *TXT_DB_read(char *in, int num); -long TXT_DB_write(char *out, TXT_DB *db); -# endif -int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), - LHASH_HASH_FN_TYPE hash, LHASH_COMP_FN_TYPE cmp); -void TXT_DB_free(TXT_DB *db); -OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, - OPENSSL_STRING *value); -int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/ui.h b/3rdparty/openssl/include/openssl/ui.h deleted file mode 100644 index 0dc1633..0000000 --- a/3rdparty/openssl/include/openssl/ui.h +++ /dev/null @@ -1,415 +0,0 @@ -/* crypto/ui/ui.h */ -/* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2001. - */ -/* ==================================================================== - * Copyright (c) 2001 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_UI_H -# define HEADER_UI_H - -# ifndef OPENSSL_NO_DEPRECATED -# include -# endif -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Declared already in ossl_typ.h */ -/* typedef struct ui_st UI; */ -/* typedef struct ui_method_st UI_METHOD; */ - -/* - * All the following functions return -1 or NULL on error and in some cases - * (UI_process()) -2 if interrupted or in some other way cancelled. When - * everything is fine, they return 0, a positive value or a non-NULL pointer, - * all depending on their purpose. - */ - -/* Creators and destructor. */ -UI *UI_new(void); -UI *UI_new_method(const UI_METHOD *method); -void UI_free(UI *ui); - -/*- - The following functions are used to add strings to be printed and prompt - strings to prompt for data. The names are UI_{add,dup}__string - and UI_{add,dup}_input_boolean. - - UI_{add,dup}__string have the following meanings: - add add a text or prompt string. The pointers given to these - functions are used verbatim, no copying is done. - dup make a copy of the text or prompt string, then add the copy - to the collection of strings in the user interface. - - The function is a name for the functionality that the given - string shall be used for. It can be one of: - input use the string as data prompt. - verify use the string as verification prompt. This - is used to verify a previous input. - info use the string for informational output. - error use the string for error output. - Honestly, there's currently no difference between info and error for the - moment. - - UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", - and are typically used when one wants to prompt for a yes/no response. - - All of the functions in this group take a UI and a prompt string. - The string input and verify addition functions also take a flag argument, - a buffer for the result to end up with, a minimum input size and a maximum - input size (the result buffer MUST be large enough to be able to contain - the maximum number of characters). Additionally, the verify addition - functions takes another buffer to compare the result against. - The boolean input functions take an action description string (which should - be safe to ignore if the expected user action is obvious, for example with - a dialog box with an OK button and a Cancel button), a string of acceptable - characters to mean OK and to mean Cancel. The two last strings are checked - to make sure they don't have common characters. Additionally, the same - flag argument as for the string input is taken, as well as a result buffer. - The result buffer is required to be at least one byte long. Depending on - the answer, the first character from the OK or the Cancel character strings - will be stored in the first byte of the result buffer. No NUL will be - added, so the result is *not* a string. - - On success, the all return an index of the added information. That index - is usefull when retrieving results with UI_get0_result(). */ -int UI_add_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_dup_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_add_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_dup_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_add_info_string(UI *ui, const char *text); -int UI_dup_info_string(UI *ui, const char *text); -int UI_add_error_string(UI *ui, const char *text); -int UI_dup_error_string(UI *ui, const char *text); - -/* These are the possible flags. They can be or'ed together. */ -/* Use to have echoing of input */ -# define UI_INPUT_FLAG_ECHO 0x01 -/* - * Use a default password. Where that password is found is completely up to - * the application, it might for example be in the user data set with - * UI_add_user_data(). It is not recommended to have more than one input in - * each UI being marked with this flag, or the application might get - * confused. - */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 - -/*- - * The user of these routines may want to define flags of their own. The core - * UI won't look at those, but will pass them on to the method routines. They - * must use higher bits so they don't get confused with the UI bits above. - * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good - * example of use is this: - * - * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) - * -*/ -# define UI_INPUT_FLAG_USER_BASE 16 - -/*- - * The following function helps construct a prompt. object_desc is a - * textual short description of the object, for example "pass phrase", - * and object_name is the name of the object (might be a card name or - * a file name. - * The returned string shall always be allocated on the heap with - * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). - * - * If the ui_method doesn't contain a pointer to a user-defined prompt - * constructor, a default string is built, looking like this: - * - * "Enter {object_desc} for {object_name}:" - * - * So, if object_desc has the value "pass phrase" and object_name has - * the value "foo.key", the resulting string is: - * - * "Enter pass phrase for foo.key:" -*/ -char *UI_construct_prompt(UI *ui_method, - const char *object_desc, const char *object_name); - -/* - * The following function is used to store a pointer to user-specific data. - * Any previous such pointer will be returned and replaced. - * - * For callback purposes, this function makes a lot more sense than using - * ex_data, since the latter requires that different parts of OpenSSL or - * applications share the same ex_data index. - * - * Note that the UI_OpenSSL() method completely ignores the user data. Other - * methods may not, however. - */ -void *UI_add_user_data(UI *ui, void *user_data); -/* We need a user data retrieving function as well. */ -void *UI_get0_user_data(UI *ui); - -/* Return the result associated with a prompt given with the index i. */ -const char *UI_get0_result(UI *ui, int i); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* - * Give a user interface parametrised control commands. This can be used to - * send down an integer, a data pointer or a function pointer, as well as be - * used to get information from a UI. - */ -int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); - -/* The commands */ -/* - * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the - * OpenSSL error stack before printing any info or added error messages and - * before any prompting. - */ -# define UI_CTRL_PRINT_ERRORS 1 -/* - * Check if a UI_process() is possible to do again with the same instance of - * a user interface. This makes UI_ctrl() return 1 if it is redoable, and 0 - * if not. - */ -# define UI_CTRL_IS_REDOABLE 2 - -/* Some methods may use extra data */ -# define UI_set_app_data(s,arg) UI_set_ex_data(s,0,arg) -# define UI_get_app_data(s) UI_get_ex_data(s,0) -int UI_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); -int UI_set_ex_data(UI *r, int idx, void *arg); -void *UI_get_ex_data(UI *r, int idx); - -/* Use specific methods instead of the built-in one */ -void UI_set_default_method(const UI_METHOD *meth); -const UI_METHOD *UI_get_default_method(void); -const UI_METHOD *UI_get_method(UI *ui); -const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(void); - -/* ---------- For method writers ---------- */ -/*- - A method contains a number of functions that implement the low level - of the User Interface. The functions are: - - an opener This function starts a session, maybe by opening - a channel to a tty, or by opening a window. - a writer This function is called to write a given string, - maybe to the tty, maybe as a field label in a - window. - a flusher This function is called to flush everything that - has been output so far. It can be used to actually - display a dialog box after it has been built. - a reader This function is called to read a given prompt, - maybe from the tty, maybe from a field in a - window. Note that it's called wth all string - structures, not only the prompt ones, so it must - check such things itself. - a closer This function closes the session, maybe by closing - the channel to the tty, or closing the window. - - All these functions are expected to return: - - 0 on error. - 1 on success. - -1 on out-of-band events, for example if some prompting has - been canceled (by pressing Ctrl-C, for example). This is - only checked when returned by the flusher or the reader. - - The way this is used, the opener is first called, then the writer for all - strings, then the flusher, then the reader for all strings and finally the - closer. Note that if you want to prompt from a terminal or other command - line interface, the best is to have the reader also write the prompts - instead of having the writer do it. If you want to prompt from a dialog - box, the writer can be used to build up the contents of the box, and the - flusher to actually display the box and run the event loop until all data - has been given, after which the reader only grabs the given data and puts - them back into the UI strings. - - All method functions take a UI as argument. Additionally, the writer and - the reader take a UI_STRING. -*/ - -/* - * The UI_STRING type is the data structure that contains all the needed info - * about a string or a prompt, including test data for a verification prompt. - */ -typedef struct ui_string_st UI_STRING; -DECLARE_STACK_OF(UI_STRING) - -/* - * The different types of strings that are currently supported. This is only - * needed by method authors. - */ -enum UI_string_types { - UIT_NONE = 0, - UIT_PROMPT, /* Prompt for a string */ - UIT_VERIFY, /* Prompt for a string and verify */ - UIT_BOOLEAN, /* Prompt for a yes/no response */ - UIT_INFO, /* Send info to the user */ - UIT_ERROR /* Send an error message to the user */ -}; - -/* Create and manipulate methods */ -UI_METHOD *UI_create_method(char *name); -void UI_destroy_method(UI_METHOD *ui_method); -int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); -int UI_method_set_writer(UI_METHOD *method, - int (*writer) (UI *ui, UI_STRING *uis)); -int UI_method_set_flusher(UI_METHOD *method, int (*flusher) (UI *ui)); -int UI_method_set_reader(UI_METHOD *method, - int (*reader) (UI *ui, UI_STRING *uis)); -int UI_method_set_closer(UI_METHOD *method, int (*closer) (UI *ui)); -int UI_method_set_prompt_constructor(UI_METHOD *method, - char *(*prompt_constructor) (UI *ui, - const char - *object_desc, - const char - *object_name)); -int (*UI_method_get_opener(UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *, - const char *, - const char *); - -/* - * The following functions are helpers for method writers to access relevant - * data from a UI_STRING. - */ - -/* Return type of the UI_STRING */ -enum UI_string_types UI_get_string_type(UI_STRING *uis); -/* Return input flags of the UI_STRING */ -int UI_get_input_flags(UI_STRING *uis); -/* Return the actual string to output (the prompt, info or error) */ -const char *UI_get0_output_string(UI_STRING *uis); -/* - * Return the optional action string to output (the boolean promtp - * instruction) - */ -const char *UI_get0_action_string(UI_STRING *uis); -/* Return the result of a prompt */ -const char *UI_get0_result_string(UI_STRING *uis); -/* - * Return the string to test the result against. Only useful with verifies. - */ -const char *UI_get0_test_string(UI_STRING *uis); -/* Return the required minimum size of the result */ -int UI_get_result_minsize(UI_STRING *uis); -/* Return the required maximum size of the result */ -int UI_get_result_maxsize(UI_STRING *uis); -/* Set the result of a UI_STRING. */ -int UI_set_result(UI *ui, UI_STRING *uis, const char *result); - -/* A couple of popular utility functions */ -int UI_UTIL_read_pw_string(char *buf, int length, const char *prompt, - int verify); -int UI_UTIL_read_pw(char *buf, char *buff, int size, const char *prompt, - int verify); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_UI_strings(void); - -/* Error codes for the UI functions. */ - -/* Function codes. */ -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 -# define UI_F_GENERAL_ALLOCATE_PROMPT 109 -# define UI_F_GENERAL_ALLOCATE_STRING 100 -# define UI_F_UI_CTRL 111 -# define UI_F_UI_DUP_ERROR_STRING 101 -# define UI_F_UI_DUP_INFO_STRING 102 -# define UI_F_UI_DUP_INPUT_BOOLEAN 110 -# define UI_F_UI_DUP_INPUT_STRING 103 -# define UI_F_UI_DUP_VERIFY_STRING 106 -# define UI_F_UI_GET0_RESULT 107 -# define UI_F_UI_NEW_METHOD 104 -# define UI_F_UI_SET_RESULT 105 - -/* Reason codes. */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/ui_compat.h b/3rdparty/openssl/include/openssl/ui_compat.h deleted file mode 100644 index bf54154..0000000 --- a/3rdparty/openssl/include/openssl/ui_compat.h +++ /dev/null @@ -1,88 +0,0 @@ -/* crypto/ui/ui.h */ -/* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2001. - */ -/* ==================================================================== - * Copyright (c) 2001 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * openssl-core@openssl.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.openssl.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ - -#ifndef HEADER_UI_COMPAT_H -# define HEADER_UI_COMPAT_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The following functions were previously part of the DES section, and are - * provided here for backward compatibility reasons. - */ - -# define des_read_pw_string(b,l,p,v) \ - _ossl_old_des_read_pw_string((b),(l),(p),(v)) -# define des_read_pw(b,bf,s,p,v) \ - _ossl_old_des_read_pw((b),(bf),(s),(p),(v)) - -int _ossl_old_des_read_pw_string(char *buf, int length, const char *prompt, - int verify); -int _ossl_old_des_read_pw(char *buf, char *buff, int size, const char *prompt, - int verify); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/whrlpool.h b/3rdparty/openssl/include/openssl/whrlpool.h deleted file mode 100644 index 73c749d..0000000 --- a/3rdparty/openssl/include/openssl/whrlpool.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef HEADER_WHRLPOOL_H -# define HEADER_WHRLPOOL_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define WHIRLPOOL_DIGEST_LENGTH (512/8) -# define WHIRLPOOL_BBLOCK 512 -# define WHIRLPOOL_COUNTER (256/8) - -typedef struct { - union { - unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; - /* double q is here to ensure 64-bit alignment */ - double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; - } H; - unsigned char data[WHIRLPOOL_BBLOCK / 8]; - unsigned int bitoff; - size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; -} WHIRLPOOL_CTX; - -# ifndef OPENSSL_NO_WHIRLPOOL -# ifdef OPENSSL_FIPS -int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -# endif -int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); -void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); -int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); -unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/3rdparty/openssl/include/openssl/x509.h b/3rdparty/openssl/include/openssl/x509.h deleted file mode 100644 index 6fa28eb..0000000 --- a/3rdparty/openssl/include/openssl/x509.h +++ /dev/null @@ -1,1330 +0,0 @@ -/* crypto/x509/x509.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_X509_H -# define HEADER_X509_H - -# include -# include -# ifndef OPENSSL_NO_BUFFER -# include -# endif -# ifndef OPENSSL_NO_EVP -# include -# endif -# ifndef OPENSSL_NO_BIO -# include -# endif -# include -# include -# include - -# ifndef OPENSSL_NO_EC -# include -# endif - -# ifndef OPENSSL_NO_ECDSA -# include -# endif - -# ifndef OPENSSL_NO_ECDH -# include -# endif - -# ifndef OPENSSL_NO_DEPRECATED -# ifndef OPENSSL_NO_RSA -# include -# endif -# ifndef OPENSSL_NO_DSA -# include -# endif -# ifndef OPENSSL_NO_DH -# include -# endif -# endif - -# ifndef OPENSSL_NO_SHA -# include -# endif -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_SYS_WIN32 -/* Under Win32 these are defined in wincrypt.h */ -# undef X509_NAME -# undef X509_CERT_PAIR -# undef X509_EXTENSIONS -# endif - -# define X509_FILETYPE_PEM 1 -# define X509_FILETYPE_ASN1 2 -# define X509_FILETYPE_DEFAULT 3 - -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff - -typedef struct X509_objects_st { - int nid; - int (*a2i) (void); - int (*i2a) (void); -} X509_OBJECTS; - -struct X509_algor_st { - ASN1_OBJECT *algorithm; - ASN1_TYPE *parameter; -} /* X509_ALGOR */ ; - -DECLARE_ASN1_SET_OF(X509_ALGOR) - -typedef STACK_OF(X509_ALGOR) X509_ALGORS; - -typedef struct X509_val_st { - ASN1_TIME *notBefore; - ASN1_TIME *notAfter; -} X509_VAL; - -struct X509_pubkey_st { - X509_ALGOR *algor; - ASN1_BIT_STRING *public_key; - EVP_PKEY *pkey; -}; - -typedef struct X509_sig_st { - X509_ALGOR *algor; - ASN1_OCTET_STRING *digest; -} X509_SIG; - -typedef struct X509_name_entry_st { - ASN1_OBJECT *object; - ASN1_STRING *value; - int set; - int size; /* temp variable */ -} X509_NAME_ENTRY; - -DECLARE_STACK_OF(X509_NAME_ENTRY) -DECLARE_ASN1_SET_OF(X509_NAME_ENTRY) - -/* we always keep X509_NAMEs in 2 forms. */ -struct X509_name_st { - STACK_OF(X509_NAME_ENTRY) *entries; - int modified; /* true if 'bytes' needs to be built */ -# ifndef OPENSSL_NO_BUFFER - BUF_MEM *bytes; -# else - char *bytes; -# endif -/* unsigned long hash; Keep the hash around for lookups */ - unsigned char *canon_enc; - int canon_enclen; -} /* X509_NAME */ ; - -DECLARE_STACK_OF(X509_NAME) - -# define X509_EX_V_NETSCAPE_HACK 0x8000 -# define X509_EX_V_INIT 0x0001 -typedef struct X509_extension_st { - ASN1_OBJECT *object; - ASN1_BOOLEAN critical; - ASN1_OCTET_STRING *value; -} X509_EXTENSION; - -typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; - -DECLARE_STACK_OF(X509_EXTENSION) -DECLARE_ASN1_SET_OF(X509_EXTENSION) - -/* a sequence of these are used */ -typedef struct x509_attributes_st { - ASN1_OBJECT *object; - int single; /* 0 for a set, 1 for a single item (which is - * wrong) */ - union { - char *ptr; - /* - * 0 - */ STACK_OF(ASN1_TYPE) *set; - /* - * 1 - */ ASN1_TYPE *single; - } value; -} X509_ATTRIBUTE; - -DECLARE_STACK_OF(X509_ATTRIBUTE) -DECLARE_ASN1_SET_OF(X509_ATTRIBUTE) - -typedef struct X509_req_info_st { - ASN1_ENCODING enc; - ASN1_INTEGER *version; - X509_NAME *subject; - X509_PUBKEY *pubkey; - /* d=2 hl=2 l= 0 cons: cont: 00 */ - STACK_OF(X509_ATTRIBUTE) *attributes; /* [ 0 ] */ -} X509_REQ_INFO; - -typedef struct X509_req_st { - X509_REQ_INFO *req_info; - X509_ALGOR *sig_alg; - ASN1_BIT_STRING *signature; - int references; -} X509_REQ; - -typedef struct x509_cinf_st { - ASN1_INTEGER *version; /* [ 0 ] default of v1 */ - ASN1_INTEGER *serialNumber; - X509_ALGOR *signature; - X509_NAME *issuer; - X509_VAL *validity; - X509_NAME *subject; - X509_PUBKEY *key; - ASN1_BIT_STRING *issuerUID; /* [ 1 ] optional in v2 */ - ASN1_BIT_STRING *subjectUID; /* [ 2 ] optional in v2 */ - STACK_OF(X509_EXTENSION) *extensions; /* [ 3 ] optional in v3 */ - ASN1_ENCODING enc; -} X509_CINF; - -/* - * This stuff is certificate "auxiliary info" it contains details which are - * useful in certificate stores and databases. When used this is tagged onto - * the end of the certificate itself - */ - -typedef struct x509_cert_aux_st { - STACK_OF(ASN1_OBJECT) *trust; /* trusted uses */ - STACK_OF(ASN1_OBJECT) *reject; /* rejected uses */ - ASN1_UTF8STRING *alias; /* "friendly name" */ - ASN1_OCTET_STRING *keyid; /* key id of private key */ - STACK_OF(X509_ALGOR) *other; /* other unspecified info */ -} X509_CERT_AUX; - -struct x509_st { - X509_CINF *cert_info; - X509_ALGOR *sig_alg; - ASN1_BIT_STRING *signature; - int valid; - int references; - char *name; - CRYPTO_EX_DATA ex_data; - /* These contain copies of various extension values */ - long ex_pathlen; - long ex_pcpathlen; - unsigned long ex_flags; - unsigned long ex_kusage; - unsigned long ex_xkusage; - unsigned long ex_nscert; - ASN1_OCTET_STRING *skid; - AUTHORITY_KEYID *akid; - X509_POLICY_CACHE *policy_cache; - STACK_OF(DIST_POINT) *crldp; - STACK_OF(GENERAL_NAME) *altname; - NAME_CONSTRAINTS *nc; -# ifndef OPENSSL_NO_RFC3779 - STACK_OF(IPAddressFamily) *rfc3779_addr; - struct ASIdentifiers_st *rfc3779_asid; -# endif -# ifndef OPENSSL_NO_SHA - unsigned char sha1_hash[SHA_DIGEST_LENGTH]; -# endif - X509_CERT_AUX *aux; -} /* X509 */ ; - -DECLARE_STACK_OF(X509) -DECLARE_ASN1_SET_OF(X509) - -/* This is used for a table of trust checking functions */ - -typedef struct x509_trust_st { - int trust; - int flags; - int (*check_trust) (struct x509_trust_st *, X509 *, int); - char *name; - int arg1; - void *arg2; -} X509_TRUST; - -DECLARE_STACK_OF(X509_TRUST) - -typedef struct x509_cert_pair_st { - X509 *forward; - X509 *reverse; -} X509_CERT_PAIR; - -/* standard trust ids */ - -# define X509_TRUST_DEFAULT -1/* Only valid in purpose settings */ - -# define X509_TRUST_COMPAT 1 -# define X509_TRUST_SSL_CLIENT 2 -# define X509_TRUST_SSL_SERVER 3 -# define X509_TRUST_EMAIL 4 -# define X509_TRUST_OBJECT_SIGN 5 -# define X509_TRUST_OCSP_SIGN 6 -# define X509_TRUST_OCSP_REQUEST 7 -# define X509_TRUST_TSA 8 - -/* Keep these up to date! */ -# define X509_TRUST_MIN 1 -# define X509_TRUST_MAX 8 - -/* trust_flags values */ -# define X509_TRUST_DYNAMIC 1 -# define X509_TRUST_DYNAMIC_NAME 2 - -/* check_trust return codes */ - -# define X509_TRUST_TRUSTED 1 -# define X509_TRUST_REJECTED 2 -# define X509_TRUST_UNTRUSTED 3 - -/* Flags for X509_print_ex() */ - -# define X509_FLAG_COMPAT 0 -# define X509_FLAG_NO_HEADER 1L -# define X509_FLAG_NO_VERSION (1L << 1) -# define X509_FLAG_NO_SERIAL (1L << 2) -# define X509_FLAG_NO_SIGNAME (1L << 3) -# define X509_FLAG_NO_ISSUER (1L << 4) -# define X509_FLAG_NO_VALIDITY (1L << 5) -# define X509_FLAG_NO_SUBJECT (1L << 6) -# define X509_FLAG_NO_PUBKEY (1L << 7) -# define X509_FLAG_NO_EXTENSIONS (1L << 8) -# define X509_FLAG_NO_SIGDUMP (1L << 9) -# define X509_FLAG_NO_AUX (1L << 10) -# define X509_FLAG_NO_ATTRIBUTES (1L << 11) -# define X509_FLAG_NO_IDS (1L << 12) - -/* Flags specific to X509_NAME_print_ex() */ - -/* The field separator information */ - -# define XN_FLAG_SEP_MASK (0xf << 16) - -# define XN_FLAG_COMPAT 0/* Traditional SSLeay: use old - * X509_NAME_print */ -# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ -# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ -# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ -# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ - -# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ - -/* How the field name is shown */ - -# define XN_FLAG_FN_MASK (0x3 << 21) - -# define XN_FLAG_FN_SN 0/* Object short name */ -# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ -# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ -# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ - -# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ - -/* - * This determines if we dump fields we don't recognise: RFC2253 requires - * this. - */ - -# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) - -# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 - * characters */ - -/* Complete set of RFC2253 flags */ - -# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ - XN_FLAG_SEP_COMMA_PLUS | \ - XN_FLAG_DN_REV | \ - XN_FLAG_FN_SN | \ - XN_FLAG_DUMP_UNKNOWN_FIELDS) - -/* readable oneline form */ - -# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ - ASN1_STRFLGS_ESC_QUOTE | \ - XN_FLAG_SEP_CPLUS_SPC | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_SN) - -/* readable multiline form */ - -# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - XN_FLAG_SEP_MULTILINE | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_LN | \ - XN_FLAG_FN_ALIGN) - -struct x509_revoked_st { - ASN1_INTEGER *serialNumber; - ASN1_TIME *revocationDate; - STACK_OF(X509_EXTENSION) /* optional */ *extensions; - /* Set up if indirect CRL */ - STACK_OF(GENERAL_NAME) *issuer; - /* Revocation reason */ - int reason; - int sequence; /* load sequence */ -}; - -DECLARE_STACK_OF(X509_REVOKED) -DECLARE_ASN1_SET_OF(X509_REVOKED) - -typedef struct X509_crl_info_st { - ASN1_INTEGER *version; - X509_ALGOR *sig_alg; - X509_NAME *issuer; - ASN1_TIME *lastUpdate; - ASN1_TIME *nextUpdate; - STACK_OF(X509_REVOKED) *revoked; - STACK_OF(X509_EXTENSION) /* [0] */ *extensions; - ASN1_ENCODING enc; -} X509_CRL_INFO; - -struct X509_crl_st { - /* actual signature */ - X509_CRL_INFO *crl; - X509_ALGOR *sig_alg; - ASN1_BIT_STRING *signature; - int references; - int flags; - /* Copies of various extensions */ - AUTHORITY_KEYID *akid; - ISSUING_DIST_POINT *idp; - /* Convenient breakdown of IDP */ - int idp_flags; - int idp_reasons; - /* CRL and base CRL numbers for delta processing */ - ASN1_INTEGER *crl_number; - ASN1_INTEGER *base_crl_number; -# ifndef OPENSSL_NO_SHA - unsigned char sha1_hash[SHA_DIGEST_LENGTH]; -# endif - STACK_OF(GENERAL_NAMES) *issuers; - const X509_CRL_METHOD *meth; - void *meth_data; -} /* X509_CRL */ ; - -DECLARE_STACK_OF(X509_CRL) -DECLARE_ASN1_SET_OF(X509_CRL) - -typedef struct private_key_st { - int version; - /* The PKCS#8 data types */ - X509_ALGOR *enc_algor; - ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ - /* When decrypted, the following will not be NULL */ - EVP_PKEY *dec_pkey; - /* used to encrypt and decrypt */ - int key_length; - char *key_data; - int key_free; /* true if we should auto free key_data */ - /* expanded version of 'enc_algor' */ - EVP_CIPHER_INFO cipher; - int references; -} X509_PKEY; - -# ifndef OPENSSL_NO_EVP -typedef struct X509_info_st { - X509 *x509; - X509_CRL *crl; - X509_PKEY *x_pkey; - EVP_CIPHER_INFO enc_cipher; - int enc_len; - char *enc_data; - int references; -} X509_INFO; - -DECLARE_STACK_OF(X509_INFO) -# endif - -/* - * The next 2 structures and their 8 routines were sent to me by Pat Richard - * and are used to manipulate Netscapes spki structures - - * useful if you are writing a CA web page - */ -typedef struct Netscape_spkac_st { - X509_PUBKEY *pubkey; - ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ -} NETSCAPE_SPKAC; - -typedef struct Netscape_spki_st { - NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR *sig_algor; - ASN1_BIT_STRING *signature; -} NETSCAPE_SPKI; - -/* Netscape certificate sequence structure */ -typedef struct Netscape_certificate_sequence { - ASN1_OBJECT *type; - STACK_OF(X509) *certs; -} NETSCAPE_CERT_SEQUENCE; - -/*- Unused (and iv length is wrong) -typedef struct CBCParameter_st - { - unsigned char iv[8]; - } CBC_PARAM; -*/ - -/* Password based encryption structure */ - -typedef struct PBEPARAM_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; -} PBEPARAM; - -/* Password based encryption V2 structures */ - -typedef struct PBE2PARAM_st { - X509_ALGOR *keyfunc; - X509_ALGOR *encryption; -} PBE2PARAM; - -typedef struct PBKDF2PARAM_st { -/* Usually OCTET STRING but could be anything */ - ASN1_TYPE *salt; - ASN1_INTEGER *iter; - ASN1_INTEGER *keylength; - X509_ALGOR *prf; -} PBKDF2PARAM; - -/* PKCS#8 private key info structure */ - -struct pkcs8_priv_key_info_st { - /* Flag for various broken formats */ - int broken; -# define PKCS8_OK 0 -# define PKCS8_NO_OCTET 1 -# define PKCS8_EMBEDDED_PARAM 2 -# define PKCS8_NS_DB 3 -# define PKCS8_NEG_PRIVKEY 4 - ASN1_INTEGER *version; - X509_ALGOR *pkeyalg; - /* Should be OCTET STRING but some are broken */ - ASN1_TYPE *pkey; - STACK_OF(X509_ATTRIBUTE) *attributes; -}; - -#ifdef __cplusplus -} -#endif - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define X509_EXT_PACK_UNKNOWN 1 -# define X509_EXT_PACK_STRING 2 - -# define X509_get_version(x) ASN1_INTEGER_get((x)->cert_info->version) -/* #define X509_get_serialNumber(x) ((x)->cert_info->serialNumber) */ -# define X509_get_notBefore(x) ((x)->cert_info->validity->notBefore) -# define X509_get_notAfter(x) ((x)->cert_info->validity->notAfter) -# define X509_extract_key(x) X509_get_pubkey(x)/*****/ -# define X509_REQ_get_version(x) ASN1_INTEGER_get((x)->req_info->version) -# define X509_REQ_get_subject_name(x) ((x)->req_info->subject) -# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) -# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) -# define X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm)) - -# define X509_CRL_get_version(x) ASN1_INTEGER_get((x)->crl->version) -# define X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate) -# define X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate) -# define X509_CRL_get_issuer(x) ((x)->crl->issuer) -# define X509_CRL_get_REVOKED(x) ((x)->crl->revoked) - -void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); -X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), - int (*crl_free) (X509_CRL *crl), - int (*crl_lookup) (X509_CRL *crl, - X509_REVOKED **ret, - ASN1_INTEGER *ser, - X509_NAME *issuer), - int (*crl_verify) (X509_CRL *crl, - EVP_PKEY *pk)); -void X509_CRL_METHOD_free(X509_CRL_METHOD *m); - -void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); -void *X509_CRL_get_meth_data(X509_CRL *crl); - -/* - * This one is only used so that a binary form can output, as in - * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) - */ -# define X509_get_X509_PUBKEY(x) ((x)->cert_info->key) - -const char *X509_verify_cert_error_string(long n); - -# ifndef OPENSSL_NO_EVP -int X509_verify(X509 *a, EVP_PKEY *r); - -int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); -int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); -int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); - -NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); -char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); -EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); -int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); - -int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); - -int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); -int X509_signature_print(BIO *bp, X509_ALGOR *alg, ASN1_STRING *sig); - -int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); -int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); -int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); -int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); -int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); -int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); - -int X509_pubkey_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -# endif - -# ifndef OPENSSL_NO_FP_API -X509 *d2i_X509_fp(FILE *fp, X509 **x509); -int i2d_X509_fp(FILE *fp, X509 *x509); -X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); -int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); -int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); -int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); -int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); -DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); -int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); -int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); -int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); -int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); -int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); -int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); -# endif - -# ifndef OPENSSL_NO_BIO -X509 *d2i_X509_bio(BIO *bp, X509 **x509); -int i2d_X509_bio(BIO *bp, X509 *x509); -X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); -int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); -int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); -int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); -int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); -DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); -int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); -int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); -int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); -int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); -int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); -int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); -# endif - -X509 *X509_dup(X509 *x509); -X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); -X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); -X509_CRL *X509_CRL_dup(X509_CRL *crl); -X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); -X509_REQ *X509_REQ_dup(X509_REQ *req); -X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); -int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, - void *pval); -void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, - X509_ALGOR *algor); -void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); -int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); - -X509_NAME *X509_NAME_dup(X509_NAME *xn); -X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); - -int X509_cmp_time(const ASN1_TIME *s, time_t *t); -int X509_cmp_current_time(const ASN1_TIME *s); -ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); -ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, - int offset_day, long offset_sec, time_t *t); -ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); - -const char *X509_get_default_cert_area(void); -const char *X509_get_default_cert_dir(void); -const char *X509_get_default_cert_file(void); -const char *X509_get_default_cert_dir_env(void); -const char *X509_get_default_cert_file_env(void); -const char *X509_get_default_private_dir(void); - -X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); - -DECLARE_ASN1_FUNCTIONS(X509_ALGOR) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) -DECLARE_ASN1_FUNCTIONS(X509_VAL) - -DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) - -int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); -EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); -int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); -int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); -EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); -# ifndef OPENSSL_NO_RSA -int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); -RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_DSA -int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); -DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_EC -int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); -EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); -# endif - -DECLARE_ASN1_FUNCTIONS(X509_SIG) -DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) -DECLARE_ASN1_FUNCTIONS(X509_REQ) - -DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) -X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); - -DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) - -DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) - -DECLARE_ASN1_FUNCTIONS(X509_NAME) - -int X509_NAME_set(X509_NAME **xn, X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(X509_CINF) - -DECLARE_ASN1_FUNCTIONS(X509) -DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) - -DECLARE_ASN1_FUNCTIONS(X509_CERT_PAIR) - -int X509_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); -int X509_set_ex_data(X509 *r, int idx, void *arg); -void *X509_get_ex_data(X509 *r, int idx); -int i2d_X509_AUX(X509 *a, unsigned char **pp); -X509 *d2i_X509_AUX(X509 **a, const unsigned char **pp, long length); - -int i2d_re_X509_tbs(X509 *x, unsigned char **pp); - -void X509_get0_signature(ASN1_BIT_STRING **psig, X509_ALGOR **palg, - const X509 *x); -int X509_get_signature_nid(const X509 *x); - -int X509_alias_set1(X509 *x, unsigned char *name, int len); -int X509_keyid_set1(X509 *x, unsigned char *id, int len); -unsigned char *X509_alias_get0(X509 *x, int *len); -unsigned char *X509_keyid_get0(X509 *x, int *len); -int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, - int); -int X509_TRUST_set(int *t, int trust); -int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); -int X509_add1_reject_object(X509 *x, ASN1_OBJECT *obj); -void X509_trust_clear(X509 *x); -void X509_reject_clear(X509 *x); - -DECLARE_ASN1_FUNCTIONS(X509_REVOKED) -DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) -DECLARE_ASN1_FUNCTIONS(X509_CRL) - -int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -int X509_CRL_get0_by_serial(X509_CRL *crl, - X509_REVOKED **ret, ASN1_INTEGER *serial); -int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); - -X509_PKEY *X509_PKEY_new(void); -void X509_PKEY_free(X509_PKEY *a); -int i2d_X509_PKEY(X509_PKEY *a, unsigned char **pp); -X509_PKEY *d2i_X509_PKEY(X509_PKEY **a, const unsigned char **pp, - long length); - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) - -# ifndef OPENSSL_NO_EVP -X509_INFO *X509_INFO_new(void); -void X509_INFO_free(X509_INFO *a); -char *X509_NAME_oneline(X509_NAME *a, char *buf, int size); - -int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); - -int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, - unsigned char *md, unsigned int *len); - -int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - char *data, EVP_PKEY *pkey, const EVP_MD *type); - -int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, - unsigned char *md, unsigned int *len); - -int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); - -int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, - EVP_PKEY *pkey, const EVP_MD *type); -int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - void *asn, EVP_MD_CTX *ctx); -# endif - -int X509_set_version(X509 *x, long version); -int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); -ASN1_INTEGER *X509_get_serialNumber(X509 *x); -int X509_set_issuer_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_issuer_name(X509 *a); -int X509_set_subject_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_subject_name(X509 *a); -int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); -int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); -int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); -EVP_PKEY *X509_get_pubkey(X509 *x); -ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); -int X509_certificate_type(X509 *x, EVP_PKEY *pubkey /* optional */ ); - -int X509_REQ_set_version(X509_REQ *x, long version); -int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); -int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); -EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -int X509_REQ_extension_nid(int nid); -int *X509_REQ_get_extension_nids(void); -void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); -int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, - int nid); -int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); -int X509_REQ_get_attr_count(const X509_REQ *req); -int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); -int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); -X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); -int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); -int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_NID(X509_REQ *req, - int nid, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_txt(X509_REQ *req, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_CRL_set_version(X509_CRL *x, long version); -int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); -int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_sort(X509_CRL *crl); - -int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); -int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); - -X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, - EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); - -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); - -int X509_check_private_key(X509 *x509, EVP_PKEY *pkey); -int X509_chain_check_suiteb(int *perror_depth, - X509 *x, STACK_OF(X509) *chain, - unsigned long flags); -int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); -STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); - -int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_and_serial_hash(X509 *a); - -int X509_issuer_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_name_hash(X509 *a); - -int X509_subject_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_subject_name_hash(X509 *x); - -# ifndef OPENSSL_NO_MD5 -unsigned long X509_issuer_name_hash_old(X509 *a); -unsigned long X509_subject_name_hash_old(X509 *x); -# endif - -int X509_cmp(const X509 *a, const X509 *b); -int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); -unsigned long X509_NAME_hash(X509_NAME *x); -unsigned long X509_NAME_hash_old(X509_NAME *x); - -int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); -int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); -# ifndef OPENSSL_NO_FP_API -int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print_fp(FILE *bp, X509 *x); -int X509_CRL_print_fp(FILE *bp, X509_CRL *x); -int X509_REQ_print_fp(FILE *bp, X509_REQ *req); -int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, - unsigned long flags); -# endif - -# ifndef OPENSSL_NO_BIO -int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); -int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, - unsigned long flags); -int X509_print_ex(BIO *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print(BIO *bp, X509 *x); -int X509_ocspid_print(BIO *bp, X509 *x); -int X509_CERT_AUX_print(BIO *bp, X509_CERT_AUX *x, int indent); -int X509_CRL_print(BIO *bp, X509_CRL *x); -int X509_REQ_print_ex(BIO *bp, X509_REQ *x, unsigned long nmflag, - unsigned long cflag); -int X509_REQ_print(BIO *bp, X509_REQ *req); -# endif - -int X509_NAME_entry_count(X509_NAME *name); -int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); -int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, - char *buf, int len); - -/* - * NOTE: you should be passsing -1, not 0 as lastpos. The functions that use - * lastpos, search after that position on. - */ -int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); -int X509_NAME_get_index_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, - int lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); -X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); -int X509_NAME_add_entry(X509_NAME *name, X509_NAME_ENTRY *ne, - int loc, int set); -int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, - unsigned char *bytes, int len, int loc, - int set); -int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, - const char *field, int type, - const unsigned char *bytes, - int len); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, unsigned char *bytes, - int len); -int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, - ASN1_OBJECT *obj, int type, - const unsigned char *bytes, - int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); -int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, - const unsigned char *bytes, int len); -ASN1_OBJECT *X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); -ASN1_STRING *X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); - -int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); -int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, - int nid, int lastpos); -int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, - ASN1_OBJECT *obj, int lastpos); -int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, - int crit, int lastpos); -X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); -X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, - X509_EXTENSION *ex, int loc); - -int X509_get_ext_count(X509 *x); -int X509_get_ext_by_NID(X509 *x, int nid, int lastpos); -int X509_get_ext_by_OBJ(X509 *x, ASN1_OBJECT *obj, int lastpos); -int X509_get_ext_by_critical(X509 *x, int crit, int lastpos); -X509_EXTENSION *X509_get_ext(X509 *x, int loc); -X509_EXTENSION *X509_delete_ext(X509 *x, int loc); -int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); -void *X509_get_ext_d2i(X509 *x, int nid, int *crit, int *idx); -int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_CRL_get_ext_count(X509_CRL *x); -int X509_CRL_get_ext_by_NID(X509_CRL *x, int nid, int lastpos); -int X509_CRL_get_ext_by_OBJ(X509_CRL *x, ASN1_OBJECT *obj, int lastpos); -int X509_CRL_get_ext_by_critical(X509_CRL *x, int crit, int lastpos); -X509_EXTENSION *X509_CRL_get_ext(X509_CRL *x, int loc); -X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); -int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); -void *X509_CRL_get_ext_d2i(X509_CRL *x, int nid, int *crit, int *idx); -int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_REVOKED_get_ext_count(X509_REVOKED *x); -int X509_REVOKED_get_ext_by_NID(X509_REVOKED *x, int nid, int lastpos); -int X509_REVOKED_get_ext_by_OBJ(X509_REVOKED *x, ASN1_OBJECT *obj, - int lastpos); -int X509_REVOKED_get_ext_by_critical(X509_REVOKED *x, int crit, int lastpos); -X509_EXTENSION *X509_REVOKED_get_ext(X509_REVOKED *x, int loc); -X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); -int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); -void *X509_REVOKED_get_ext_d2i(X509_REVOKED *x, int nid, int *crit, int *idx); -int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, - unsigned long flags); - -X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, - int nid, int crit, - ASN1_OCTET_STRING *data); -X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, - ASN1_OBJECT *obj, int crit, - ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex, ASN1_OBJECT *obj); -int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); -int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); -ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); -ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); -int X509_EXTENSION_get_critical(X509_EXTENSION *ex); - -int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); -int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, - int lastpos); -int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, - ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); -X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, - X509_ATTRIBUTE *attr); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) - **x, const ASN1_OBJECT *obj, - int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) - **x, int nid, int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) - **x, const char *attrname, - int type, - const unsigned char *bytes, - int len); -void *X509at_get0_data_by_OBJ(STACK_OF(X509_ATTRIBUTE) *x, ASN1_OBJECT *obj, - int lastpos, int type); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, - const ASN1_OBJECT *obj, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, - const char *atrname, int type, - const unsigned char *bytes, - int len); -int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); -int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, - const void *data, int len); -void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, - void *data); -int X509_ATTRIBUTE_count(X509_ATTRIBUTE *attr); -ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); -ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); - -int EVP_PKEY_get_attr_count(const EVP_PKEY *key); -int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); -int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); -X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); -int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); -int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, - int nid, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_verify_cert(X509_STORE_CTX *ctx); - -/* lookup a cert from a X509 STACK */ -X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, X509_NAME *name, - ASN1_INTEGER *serial); -X509 *X509_find_by_subject(STACK_OF(X509) *sk, X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(PBEPARAM) -DECLARE_ASN1_FUNCTIONS(PBE2PARAM) -DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) - -int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, - const unsigned char *salt, int saltlen); - -X509_ALGOR *PKCS5_pbe_set(int alg, int iter, - const unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid); - -X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen); - -/* PKCS#8 utilities */ - -DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) - -EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); -PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); - -int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, - int version, int ptype, void *pval, - unsigned char *penc, int penclen); -int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, PKCS8_PRIV_KEY_INFO *p8); - -int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, - int ptype, void *pval, - unsigned char *penc, int penclen); -int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, X509_PUBKEY *pub); - -int X509_check_trust(X509 *x, int id, int flags); -int X509_TRUST_get_count(void); -X509_TRUST *X509_TRUST_get0(int idx); -int X509_TRUST_get_by_id(int id); -int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), - char *name, int arg1, void *arg2); -void X509_TRUST_cleanup(void); -int X509_TRUST_get_flags(X509_TRUST *xp); -char *X509_TRUST_get0_name(X509_TRUST *xp); -int X509_TRUST_get_trust(X509_TRUST *xp); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -void ERR_load_X509_strings(void); - -/* Error codes for the X509 functions. */ - -/* Function codes. */ -# define X509_F_ADD_CERT_DIR 100 -# define X509_F_BY_FILE_CTRL 101 -# define X509_F_CHECK_NAME_CONSTRAINTS 106 -# define X509_F_CHECK_POLICY 145 -# define X509_F_DIR_CTRL 102 -# define X509_F_GET_CERT_BY_SUBJECT 103 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 -# define X509_F_X509AT_ADD1_ATTR 135 -# define X509_F_X509V3_ADD_EXT 104 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 -# define X509_F_X509_CHECK_PRIVATE_KEY 128 -# define X509_F_X509_CRL_DIFF 105 -# define X509_F_X509_CRL_PRINT_FP 147 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 -# define X509_F_X509_LOAD_CERT_CRL_FILE 132 -# define X509_F_X509_LOAD_CERT_FILE 111 -# define X509_F_X509_LOAD_CRL_FILE 112 -# define X509_F_X509_NAME_ADD_ENTRY 113 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 -# define X509_F_X509_NAME_ONELINE 116 -# define X509_F_X509_NAME_PRINT 117 -# define X509_F_X509_PRINT_EX_FP 118 -# define X509_F_X509_PUBKEY_GET 119 -# define X509_F_X509_PUBKEY_SET 120 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 -# define X509_F_X509_REQ_PRINT_EX 121 -# define X509_F_X509_REQ_PRINT_FP 122 -# define X509_F_X509_REQ_TO_X509 123 -# define X509_F_X509_STORE_ADD_CERT 124 -# define X509_F_X509_STORE_ADD_CRL 125 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 -# define X509_F_X509_STORE_CTX_INIT 143 -# define X509_F_X509_STORE_CTX_NEW 142 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 -# define X509_F_X509_TO_X509_REQ 126 -# define X509_F_X509_TRUST_ADD 133 -# define X509_F_X509_TRUST_SET 141 -# define X509_F_X509_VERIFY_CERT 127 - -/* Reason codes. */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_ERR_ASN1_LIB 102 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/3rdparty/openssl/include/openssl/x509_vfy.h b/3rdparty/openssl/include/openssl/x509_vfy.h deleted file mode 100644 index 5062682..0000000 --- a/3rdparty/openssl/include/openssl/x509_vfy.h +++ /dev/null @@ -1,652 +0,0 @@ -/* crypto/x509/x509_vfy.h */ -/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library used. - * This can be in the form of a textual message at program startup or - * in documentation (online or textual) provided with the package. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * "This product includes cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * The licence and distribution terms for any publically available version or - * derivative of this code cannot be changed. i.e. this code cannot simply be - * copied and put under another distribution licence - * [including the GNU Public Licence.] - */ - -#ifndef HEADER_X509_H -# include -/* - * openssl/x509.h ends up #include-ing this file at about the only - * appropriate moment. - */ -#endif - -#ifndef HEADER_X509_VFY_H -# define HEADER_X509_VFY_H - -# include -# ifndef OPENSSL_NO_LHASH -# include -# endif -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# if 0 -/* Outer object */ -typedef struct x509_hash_dir_st { - int num_dirs; - char **dirs; - int *dirs_type; - int num_dirs_alloced; -} X509_HASH_DIR_CTX; -# endif - -typedef struct x509_file_st { - int num_paths; /* number of paths to files or directories */ - int num_alloced; - char **paths; /* the list of paths or directories */ - int *path_type; -} X509_CERT_FILE_CTX; - -/*******************************/ -/*- -SSL_CTX -> X509_STORE - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -SSL -> X509_STORE_CTX - ->X509_STORE - -The X509_STORE holds the tables etc for verification stuff. -A X509_STORE_CTX is used while validating a single certificate. -The X509_STORE has X509_LOOKUPs for looking up certs. -The X509_STORE then calls a function to actually verify the -certificate chain. -*/ - -# define X509_LU_RETRY -1 -# define X509_LU_FAIL 0 -# define X509_LU_X509 1 -# define X509_LU_CRL 2 -# define X509_LU_PKEY 3 - -typedef struct x509_object_st { - /* one of the above types */ - int type; - union { - char *ptr; - X509 *x509; - X509_CRL *crl; - EVP_PKEY *pkey; - } data; -} X509_OBJECT; - -typedef struct x509_lookup_st X509_LOOKUP; - -DECLARE_STACK_OF(X509_LOOKUP) -DECLARE_STACK_OF(X509_OBJECT) - -/* This is a static that defines the function interface */ -typedef struct x509_lookup_method_st { - const char *name; - int (*new_item) (X509_LOOKUP *ctx); - void (*free) (X509_LOOKUP *ctx); - int (*init) (X509_LOOKUP *ctx); - int (*shutdown) (X509_LOOKUP *ctx); - int (*ctrl) (X509_LOOKUP *ctx, int cmd, const char *argc, long argl, - char **ret); - int (*get_by_subject) (X509_LOOKUP *ctx, int type, X509_NAME *name, - X509_OBJECT *ret); - int (*get_by_issuer_serial) (X509_LOOKUP *ctx, int type, X509_NAME *name, - ASN1_INTEGER *serial, X509_OBJECT *ret); - int (*get_by_fingerprint) (X509_LOOKUP *ctx, int type, - unsigned char *bytes, int len, - X509_OBJECT *ret); - int (*get_by_alias) (X509_LOOKUP *ctx, int type, char *str, int len, - X509_OBJECT *ret); -} X509_LOOKUP_METHOD; - -typedef struct X509_VERIFY_PARAM_ID_st X509_VERIFY_PARAM_ID; - -/* - * This structure hold all parameters associated with a verify operation by - * including an X509_VERIFY_PARAM structure in related structures the - * parameters used can be customized - */ - -typedef struct X509_VERIFY_PARAM_st { - char *name; - time_t check_time; /* Time to use */ - unsigned long inh_flags; /* Inheritance flags */ - unsigned long flags; /* Various verify flags */ - int purpose; /* purpose to check untrusted certificates */ - int trust; /* trust setting to check */ - int depth; /* Verify depth */ - STACK_OF(ASN1_OBJECT) *policies; /* Permissible policies */ - X509_VERIFY_PARAM_ID *id; /* opaque ID data */ -} X509_VERIFY_PARAM; - -DECLARE_STACK_OF(X509_VERIFY_PARAM) - -/* - * This is used to hold everything. It is used for all certificate - * validation. Once we have a certificate chain, the 'verify' function is - * then called to actually check the cert chain. - */ -struct x509_store_st { - /* The following is a cache of trusted certs */ - int cache; /* if true, stash any hits */ - STACK_OF(X509_OBJECT) *objs; /* Cache of all objects */ - /* These are external lookup methods */ - STACK_OF(X509_LOOKUP) *get_cert_methods; - X509_VERIFY_PARAM *param; - /* Callbacks for various operations */ - /* called to verify a certificate */ - int (*verify) (X509_STORE_CTX *ctx); - /* error callback */ - int (*verify_cb) (int ok, X509_STORE_CTX *ctx); - /* get issuers cert from ctx */ - int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - /* check issued */ - int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); - /* Check revocation status of chain */ - int (*check_revocation) (X509_STORE_CTX *ctx); - /* retrieve CRL */ - int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); - /* Check CRL validity */ - int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); - /* Check certificate against CRL */ - int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); - STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); - STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); - int (*cleanup) (X509_STORE_CTX *ctx); - CRYPTO_EX_DATA ex_data; - int references; -} /* X509_STORE */ ; - -int X509_STORE_set_depth(X509_STORE *store, int depth); - -# define X509_STORE_set_verify_cb_func(ctx,func) ((ctx)->verify_cb=(func)) -# define X509_STORE_set_verify_func(ctx,func) ((ctx)->verify=(func)) - -/* This is the functions plus an instance of the local variables. */ -struct x509_lookup_st { - int init; /* have we been started */ - int skip; /* don't use us. */ - X509_LOOKUP_METHOD *method; /* the functions */ - char *method_data; /* method data */ - X509_STORE *store_ctx; /* who owns us */ -} /* X509_LOOKUP */ ; - -/* - * This is a used when verifying cert chains. Since the gathering of the - * cert chain can take some time (and have to be 'retried', this needs to be - * kept and passed around. - */ -struct x509_store_ctx_st { /* X509_STORE_CTX */ - X509_STORE *ctx; - /* used when looking up certs */ - int current_method; - /* The following are set by the caller */ - /* The cert to check */ - X509 *cert; - /* chain of X509s - untrusted - passed in */ - STACK_OF(X509) *untrusted; - /* set of CRLs passed in */ - STACK_OF(X509_CRL) *crls; - X509_VERIFY_PARAM *param; - /* Other info for use with get_issuer() */ - void *other_ctx; - /* Callbacks for various operations */ - /* called to verify a certificate */ - int (*verify) (X509_STORE_CTX *ctx); - /* error callback */ - int (*verify_cb) (int ok, X509_STORE_CTX *ctx); - /* get issuers cert from ctx */ - int (*get_issuer) (X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - /* check issued */ - int (*check_issued) (X509_STORE_CTX *ctx, X509 *x, X509 *issuer); - /* Check revocation status of chain */ - int (*check_revocation) (X509_STORE_CTX *ctx); - /* retrieve CRL */ - int (*get_crl) (X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); - /* Check CRL validity */ - int (*check_crl) (X509_STORE_CTX *ctx, X509_CRL *crl); - /* Check certificate against CRL */ - int (*cert_crl) (X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); - int (*check_policy) (X509_STORE_CTX *ctx); - STACK_OF(X509) *(*lookup_certs) (X509_STORE_CTX *ctx, X509_NAME *nm); - STACK_OF(X509_CRL) *(*lookup_crls) (X509_STORE_CTX *ctx, X509_NAME *nm); - int (*cleanup) (X509_STORE_CTX *ctx); - /* The following is built up */ - /* if 0, rebuild chain */ - int valid; - /* index of last untrusted cert */ - int last_untrusted; - /* chain of X509s - built up and trusted */ - STACK_OF(X509) *chain; - /* Valid policy tree */ - X509_POLICY_TREE *tree; - /* Require explicit policy value */ - int explicit_policy; - /* When something goes wrong, this is why */ - int error_depth; - int error; - X509 *current_cert; - /* cert currently being tested as valid issuer */ - X509 *current_issuer; - /* current CRL */ - X509_CRL *current_crl; - /* score of current CRL */ - int current_crl_score; - /* Reason mask */ - unsigned int current_reasons; - /* For CRL path validation: parent context */ - X509_STORE_CTX *parent; - CRYPTO_EX_DATA ex_data; -} /* X509_STORE_CTX */ ; - -void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); - -# define X509_STORE_CTX_set_app_data(ctx,data) \ - X509_STORE_CTX_set_ex_data(ctx,0,data) -# define X509_STORE_CTX_get_app_data(ctx) \ - X509_STORE_CTX_get_ex_data(ctx,0) - -# define X509_L_FILE_LOAD 1 -# define X509_L_ADD_DIR 2 - -# define X509_LOOKUP_load_file(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_dir(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) - -# define X509_V_OK 0 -# define X509_V_ERR_UNSPECIFIED 1 - -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 -# define X509_V_ERR_UNABLE_TO_GET_CRL 3 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 -# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 -# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 -# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 -# define X509_V_ERR_CERT_NOT_YET_VALID 9 -# define X509_V_ERR_CERT_HAS_EXPIRED 10 -# define X509_V_ERR_CRL_NOT_YET_VALID 11 -# define X509_V_ERR_CRL_HAS_EXPIRED 12 -# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 -# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 -# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 -# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 -# define X509_V_ERR_OUT_OF_MEM 17 -# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 -# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 -# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 -# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 -# define X509_V_ERR_CERT_REVOKED 23 -# define X509_V_ERR_INVALID_CA 24 -# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 -# define X509_V_ERR_INVALID_PURPOSE 26 -# define X509_V_ERR_CERT_UNTRUSTED 27 -# define X509_V_ERR_CERT_REJECTED 28 -/* These are 'informational' when looking for issuer cert */ -# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 -# define X509_V_ERR_AKID_SKID_MISMATCH 30 -# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 -# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 - -# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 -# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 -# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 -# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 -# define X509_V_ERR_INVALID_NON_CA 37 -# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 -# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 -# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 - -# define X509_V_ERR_INVALID_EXTENSION 41 -# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 -# define X509_V_ERR_NO_EXPLICIT_POLICY 43 -# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 -# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 - -# define X509_V_ERR_UNNESTED_RESOURCE 46 - -# define X509_V_ERR_PERMITTED_VIOLATION 47 -# define X509_V_ERR_EXCLUDED_VIOLATION 48 -# define X509_V_ERR_SUBTREE_MINMAX 49 -# define X509_V_ERR_APPLICATION_VERIFICATION 50 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 -# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 -# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 - -/* Suite B mode algorithm violation */ -# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 -# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 -# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 -# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 -# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 -# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 - -/* Host, email and IP check errors */ -# define X509_V_ERR_HOSTNAME_MISMATCH 62 -# define X509_V_ERR_EMAIL_MISMATCH 63 -# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 - -/* Caller error */ -# define X509_V_ERR_INVALID_CALL 65 -/* Issuer lookup error */ -# define X509_V_ERR_STORE_LOOKUP 66 - -# define X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION 67 - -/* Certificate verify flags */ - -/* Send issuer+subject checks to verify_cb */ -# define X509_V_FLAG_CB_ISSUER_CHECK 0x1 -/* Use check time instead of current time */ -# define X509_V_FLAG_USE_CHECK_TIME 0x2 -/* Lookup CRLs */ -# define X509_V_FLAG_CRL_CHECK 0x4 -/* Lookup CRLs for whole chain */ -# define X509_V_FLAG_CRL_CHECK_ALL 0x8 -/* Ignore unhandled critical extensions */ -# define X509_V_FLAG_IGNORE_CRITICAL 0x10 -/* Disable workarounds for broken certificates */ -# define X509_V_FLAG_X509_STRICT 0x20 -/* Enable proxy certificate validation */ -# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 -/* Enable policy checking */ -# define X509_V_FLAG_POLICY_CHECK 0x80 -/* Policy variable require-explicit-policy */ -# define X509_V_FLAG_EXPLICIT_POLICY 0x100 -/* Policy variable inhibit-any-policy */ -# define X509_V_FLAG_INHIBIT_ANY 0x200 -/* Policy variable inhibit-policy-mapping */ -# define X509_V_FLAG_INHIBIT_MAP 0x400 -/* Notify callback that policy is OK */ -# define X509_V_FLAG_NOTIFY_POLICY 0x800 -/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ -# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 -/* Delta CRL support */ -# define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check selfsigned CA signature */ -# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 -/* Use trusted store first */ -# define X509_V_FLAG_TRUSTED_FIRST 0x8000 -/* Suite B 128 bit only mode: not normally used */ -# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define X509_V_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define X509_V_FLAG_SUITEB_128_LOS 0x30000 - -/* Allow partial chains if at least one certificate is in trusted store */ -# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 -/* - * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag - * will force the behaviour to match that of previous versions. - */ -# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 - -# define X509_VP_FLAG_DEFAULT 0x1 -# define X509_VP_FLAG_OVERWRITE 0x2 -# define X509_VP_FLAG_RESET_FLAGS 0x4 -# define X509_VP_FLAG_LOCKED 0x8 -# define X509_VP_FLAG_ONCE 0x10 - -/* Internal use: mask of policy related options */ -# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ - | X509_V_FLAG_EXPLICIT_POLICY \ - | X509_V_FLAG_INHIBIT_ANY \ - | X509_V_FLAG_INHIBIT_MAP) - -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, - int type, X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, - X509_OBJECT *x); -void X509_OBJECT_up_ref_count(X509_OBJECT *a); -void X509_OBJECT_free_contents(X509_OBJECT *a); -X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); - -STACK_OF(X509) *X509_STORE_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); -STACK_OF(X509_CRL) *X509_STORE_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); - -void X509_STORE_set_verify_cb(X509_STORE *ctx, - int (*verify_cb) (int, X509_STORE_CTX *)); - -void X509_STORE_set_lookup_crls_cb(X509_STORE *ctx, - STACK_OF(X509_CRL) *(*cb) (X509_STORE_CTX - *ctx, - X509_NAME *nm)); - -X509_STORE_CTX *X509_STORE_CTX_new(void); - -int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - -void X509_STORE_CTX_free(X509_STORE_CTX *ctx); -int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, - X509 *x509, STACK_OF(X509) *chain); -void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); - -X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); - -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); - -X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); -X509_LOOKUP_METHOD *X509_LOOKUP_file(void); - -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); - -int X509_STORE_get_by_subject(X509_STORE_CTX *vs, int type, X509_NAME *name, - X509_OBJECT *ret); - -int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); - -# ifndef OPENSSL_NO_STDIO -int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); -# endif - -X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); -void X509_LOOKUP_free(X509_LOOKUP *ctx); -int X509_LOOKUP_init(X509_LOOKUP *ctx); -int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, - X509_OBJECT *ret); -int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, - ASN1_INTEGER *serial, X509_OBJECT *ret); -int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, - unsigned char *bytes, int len, - X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, - X509_OBJECT *ret); -int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); - -# ifndef OPENSSL_NO_STDIO -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); -# endif - -int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, - CRYPTO_EX_new *new_func, - CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); -void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); -int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); -int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); -X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); -X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); -X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); -void X509_STORE_CTX_set_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); -void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); -int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); -int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); -int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, - int purpose, int trust); -void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); -void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, - time_t t); -void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, - int (*verify_cb) (int, X509_STORE_CTX *)); - -X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); - -X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); -int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); - -/* X509_VERIFY_PARAM functions */ - -X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); -void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); -int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); -int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); -void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); -void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); -int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, - ASN1_OBJECT *policy); -int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, - STACK_OF(ASN1_OBJECT) *policies); - -int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, - unsigned int flags); -char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); -int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, - const char *email, size_t emaillen); -int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, - const unsigned char *ip, size_t iplen); -int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, - const char *ipasc); - -int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); -const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_count(void); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); -void X509_VERIFY_PARAM_table_cleanup(void); - -int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, - STACK_OF(X509) *certs, - STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); - -void X509_policy_tree_free(X509_POLICY_TREE *tree); - -int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); -X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, - int i); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(const - X509_POLICY_TREE - *tree); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(const - X509_POLICY_TREE - *tree); - -int X509_policy_level_node_count(X509_POLICY_LEVEL *level); - -X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, - int i); - -const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); - -STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(const - X509_POLICY_NODE - *node); -const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE - *node); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/include/openssl/x509v3.h b/3rdparty/openssl/include/openssl/x509v3.h deleted file mode 100644 index f5c6156..0000000 --- a/3rdparty/openssl/include/openssl/x509v3.h +++ /dev/null @@ -1,1055 +0,0 @@ -/* x509v3.h */ -/* - * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project - * 1999. - */ -/* ==================================================================== - * Copyright (c) 1999-2004 The OpenSSL Project. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). - * - */ -#ifndef HEADER_X509V3_H -# define HEADER_X509V3_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifdef OPENSSL_SYS_WIN32 -/* Under Win32 these are defined in wincrypt.h */ -# undef X509_NAME -# undef X509_CERT_PAIR -# undef X509_EXTENSIONS -# endif - -/* Forward reference */ -struct v3_ext_method; -struct v3_ext_ctx; - -/* Useful typedefs */ - -typedef void *(*X509V3_EXT_NEW)(void); -typedef void (*X509V3_EXT_FREE) (void *); -typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); -typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); -typedef STACK_OF(CONF_VALUE) * - (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, - STACK_OF(CONF_VALUE) *extlist); -typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, - STACK_OF(CONF_VALUE) *values); -typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, - void *ext); -typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); -typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, - BIO *out, int indent); -typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); - -/* V3 extension structure */ - -struct v3_ext_method { - int ext_nid; - int ext_flags; -/* If this is set the following four fields are ignored */ - ASN1_ITEM_EXP *it; -/* Old style ASN1 calls */ - X509V3_EXT_NEW ext_new; - X509V3_EXT_FREE ext_free; - X509V3_EXT_D2I d2i; - X509V3_EXT_I2D i2d; -/* The following pair is used for string extensions */ - X509V3_EXT_I2S i2s; - X509V3_EXT_S2I s2i; -/* The following pair is used for multi-valued extensions */ - X509V3_EXT_I2V i2v; - X509V3_EXT_V2I v2i; -/* The following are used for raw extensions */ - X509V3_EXT_I2R i2r; - X509V3_EXT_R2I r2i; - void *usr_data; /* Any extension specific data */ -}; - -typedef struct X509V3_CONF_METHOD_st { - char *(*get_string) (void *db, char *section, char *value); - STACK_OF(CONF_VALUE) *(*get_section) (void *db, char *section); - void (*free_string) (void *db, char *string); - void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); -} X509V3_CONF_METHOD; - -/* Context specific info */ -struct v3_ext_ctx { -# define CTX_TEST 0x1 - int flags; - X509 *issuer_cert; - X509 *subject_cert; - X509_REQ *subject_req; - X509_CRL *crl; - X509V3_CONF_METHOD *db_meth; - void *db; -/* Maybe more here */ -}; - -typedef struct v3_ext_method X509V3_EXT_METHOD; - -DECLARE_STACK_OF(X509V3_EXT_METHOD) - -/* ext_flags values */ -# define X509V3_EXT_DYNAMIC 0x1 -# define X509V3_EXT_CTX_DEP 0x2 -# define X509V3_EXT_MULTILINE 0x4 - -typedef BIT_STRING_BITNAME ENUMERATED_NAMES; - -typedef struct BASIC_CONSTRAINTS_st { - int ca; - ASN1_INTEGER *pathlen; -} BASIC_CONSTRAINTS; - -typedef struct PKEY_USAGE_PERIOD_st { - ASN1_GENERALIZEDTIME *notBefore; - ASN1_GENERALIZEDTIME *notAfter; -} PKEY_USAGE_PERIOD; - -typedef struct otherName_st { - ASN1_OBJECT *type_id; - ASN1_TYPE *value; -} OTHERNAME; - -typedef struct EDIPartyName_st { - ASN1_STRING *nameAssigner; - ASN1_STRING *partyName; -} EDIPARTYNAME; - -typedef struct GENERAL_NAME_st { -# define GEN_OTHERNAME 0 -# define GEN_EMAIL 1 -# define GEN_DNS 2 -# define GEN_X400 3 -# define GEN_DIRNAME 4 -# define GEN_EDIPARTY 5 -# define GEN_URI 6 -# define GEN_IPADD 7 -# define GEN_RID 8 - int type; - union { - char *ptr; - OTHERNAME *otherName; /* otherName */ - ASN1_IA5STRING *rfc822Name; - ASN1_IA5STRING *dNSName; - ASN1_TYPE *x400Address; - X509_NAME *directoryName; - EDIPARTYNAME *ediPartyName; - ASN1_IA5STRING *uniformResourceIdentifier; - ASN1_OCTET_STRING *iPAddress; - ASN1_OBJECT *registeredID; - /* Old names */ - ASN1_OCTET_STRING *ip; /* iPAddress */ - X509_NAME *dirn; /* dirn */ - ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, - * uniformResourceIdentifier */ - ASN1_OBJECT *rid; /* registeredID */ - ASN1_TYPE *other; /* x400Address */ - } d; -} GENERAL_NAME; - -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; - -typedef struct ACCESS_DESCRIPTION_st { - ASN1_OBJECT *method; - GENERAL_NAME *location; -} ACCESS_DESCRIPTION; - -typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; - -typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; - -DECLARE_STACK_OF(GENERAL_NAME) -DECLARE_ASN1_SET_OF(GENERAL_NAME) - -DECLARE_STACK_OF(ACCESS_DESCRIPTION) -DECLARE_ASN1_SET_OF(ACCESS_DESCRIPTION) - -typedef struct DIST_POINT_NAME_st { - int type; - union { - GENERAL_NAMES *fullname; - STACK_OF(X509_NAME_ENTRY) *relativename; - } name; -/* If relativename then this contains the full distribution point name */ - X509_NAME *dpname; -} DIST_POINT_NAME; -/* All existing reasons */ -# define CRLDP_ALL_REASONS 0x807f - -# define CRL_REASON_NONE -1 -# define CRL_REASON_UNSPECIFIED 0 -# define CRL_REASON_KEY_COMPROMISE 1 -# define CRL_REASON_CA_COMPROMISE 2 -# define CRL_REASON_AFFILIATION_CHANGED 3 -# define CRL_REASON_SUPERSEDED 4 -# define CRL_REASON_CESSATION_OF_OPERATION 5 -# define CRL_REASON_CERTIFICATE_HOLD 6 -# define CRL_REASON_REMOVE_FROM_CRL 8 -# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -# define CRL_REASON_AA_COMPROMISE 10 - -struct DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - GENERAL_NAMES *CRLissuer; - int dp_reasons; -}; - -typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; - -DECLARE_STACK_OF(DIST_POINT) -DECLARE_ASN1_SET_OF(DIST_POINT) - -struct AUTHORITY_KEYID_st { - ASN1_OCTET_STRING *keyid; - GENERAL_NAMES *issuer; - ASN1_INTEGER *serial; -}; - -/* Strong extranet structures */ - -typedef struct SXNET_ID_st { - ASN1_INTEGER *zone; - ASN1_OCTET_STRING *user; -} SXNETID; - -DECLARE_STACK_OF(SXNETID) -DECLARE_ASN1_SET_OF(SXNETID) - -typedef struct SXNET_st { - ASN1_INTEGER *version; - STACK_OF(SXNETID) *ids; -} SXNET; - -typedef struct NOTICEREF_st { - ASN1_STRING *organization; - STACK_OF(ASN1_INTEGER) *noticenos; -} NOTICEREF; - -typedef struct USERNOTICE_st { - NOTICEREF *noticeref; - ASN1_STRING *exptext; -} USERNOTICE; - -typedef struct POLICYQUALINFO_st { - ASN1_OBJECT *pqualid; - union { - ASN1_IA5STRING *cpsuri; - USERNOTICE *usernotice; - ASN1_TYPE *other; - } d; -} POLICYQUALINFO; - -DECLARE_STACK_OF(POLICYQUALINFO) -DECLARE_ASN1_SET_OF(POLICYQUALINFO) - -typedef struct POLICYINFO_st { - ASN1_OBJECT *policyid; - STACK_OF(POLICYQUALINFO) *qualifiers; -} POLICYINFO; - -typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; - -DECLARE_STACK_OF(POLICYINFO) -DECLARE_ASN1_SET_OF(POLICYINFO) - -typedef struct POLICY_MAPPING_st { - ASN1_OBJECT *issuerDomainPolicy; - ASN1_OBJECT *subjectDomainPolicy; -} POLICY_MAPPING; - -DECLARE_STACK_OF(POLICY_MAPPING) - -typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; - -typedef struct GENERAL_SUBTREE_st { - GENERAL_NAME *base; - ASN1_INTEGER *minimum; - ASN1_INTEGER *maximum; -} GENERAL_SUBTREE; - -DECLARE_STACK_OF(GENERAL_SUBTREE) - -struct NAME_CONSTRAINTS_st { - STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; - STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; -}; - -typedef struct POLICY_CONSTRAINTS_st { - ASN1_INTEGER *requireExplicitPolicy; - ASN1_INTEGER *inhibitPolicyMapping; -} POLICY_CONSTRAINTS; - -/* Proxy certificate structures, see RFC 3820 */ -typedef struct PROXY_POLICY_st { - ASN1_OBJECT *policyLanguage; - ASN1_OCTET_STRING *policy; -} PROXY_POLICY; - -typedef struct PROXY_CERT_INFO_EXTENSION_st { - ASN1_INTEGER *pcPathLengthConstraint; - PROXY_POLICY *proxyPolicy; -} PROXY_CERT_INFO_EXTENSION; - -DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) -DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) - -struct ISSUING_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - int onlyuser; - int onlyCA; - ASN1_BIT_STRING *onlysomereasons; - int indirectCRL; - int onlyattr; -}; - -/* Values in idp_flags field */ -/* IDP present */ -# define IDP_PRESENT 0x1 -/* IDP values inconsistent */ -# define IDP_INVALID 0x2 -/* onlyuser true */ -# define IDP_ONLYUSER 0x4 -/* onlyCA true */ -# define IDP_ONLYCA 0x8 -/* onlyattr true */ -# define IDP_ONLYATTR 0x10 -/* indirectCRL true */ -# define IDP_INDIRECT 0x20 -/* onlysomereasons present */ -# define IDP_REASONS 0x40 - -# define X509V3_conf_err(val) ERR_add_error_data(6, "section:", val->section, \ -",name:", val->name, ",value:", val->value); - -# define X509V3_set_ctx_test(ctx) \ - X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) -# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; - -# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ - 0,0,0,0, \ - 0,0, \ - (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ - (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ - NULL, NULL, \ - table} - -# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ - 0,0,0,0, \ - NULL} - -# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -/* X509_PURPOSE stuff */ - -# define EXFLAG_BCONS 0x1 -# define EXFLAG_KUSAGE 0x2 -# define EXFLAG_XKUSAGE 0x4 -# define EXFLAG_NSCERT 0x8 - -# define EXFLAG_CA 0x10 -/* Really self issued not necessarily self signed */ -# define EXFLAG_SI 0x20 -# define EXFLAG_V1 0x40 -# define EXFLAG_INVALID 0x80 -# define EXFLAG_SET 0x100 -# define EXFLAG_CRITICAL 0x200 -# define EXFLAG_PROXY 0x400 - -# define EXFLAG_INVALID_POLICY 0x800 -# define EXFLAG_FRESHEST 0x1000 -/* Self signed */ -# define EXFLAG_SS 0x2000 - -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 - -# define NS_SSL_CLIENT 0x80 -# define NS_SSL_SERVER 0x40 -# define NS_SMIME 0x20 -# define NS_OBJSIGN 0x10 -# define NS_SSL_CA 0x04 -# define NS_SMIME_CA 0x02 -# define NS_OBJSIGN_CA 0x01 -# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) - -# define XKU_SSL_SERVER 0x1 -# define XKU_SSL_CLIENT 0x2 -# define XKU_SMIME 0x4 -# define XKU_CODE_SIGN 0x8 -# define XKU_SGC 0x10 -# define XKU_OCSP_SIGN 0x20 -# define XKU_TIMESTAMP 0x40 -# define XKU_DVCS 0x80 -# define XKU_ANYEKU 0x100 - -# define X509_PURPOSE_DYNAMIC 0x1 -# define X509_PURPOSE_DYNAMIC_NAME 0x2 - -typedef struct x509_purpose_st { - int purpose; - int trust; /* Default trust ID */ - int flags; - int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); - char *name; - char *sname; - void *usr_data; -} X509_PURPOSE; - -# define X509_PURPOSE_SSL_CLIENT 1 -# define X509_PURPOSE_SSL_SERVER 2 -# define X509_PURPOSE_NS_SSL_SERVER 3 -# define X509_PURPOSE_SMIME_SIGN 4 -# define X509_PURPOSE_SMIME_ENCRYPT 5 -# define X509_PURPOSE_CRL_SIGN 6 -# define X509_PURPOSE_ANY 7 -# define X509_PURPOSE_OCSP_HELPER 8 -# define X509_PURPOSE_TIMESTAMP_SIGN 9 - -# define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 - -/* Flags for X509V3_EXT_print() */ - -# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) -/* Return error for unknown extensions */ -# define X509V3_EXT_DEFAULT 0 -/* Print error for unknown extensions */ -# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) -/* ASN1 parse unknown extensions */ -# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) -/* BIO_dump unknown extensions */ -# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) - -/* Flags for X509V3_add1_i2d */ - -# define X509V3_ADD_OP_MASK 0xfL -# define X509V3_ADD_DEFAULT 0L -# define X509V3_ADD_APPEND 1L -# define X509V3_ADD_REPLACE 2L -# define X509V3_ADD_REPLACE_EXISTING 3L -# define X509V3_ADD_KEEP_EXISTING 4L -# define X509V3_ADD_DELETE 5L -# define X509V3_ADD_SILENT 0x10 - -DECLARE_STACK_OF(X509_PURPOSE) - -DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) - -DECLARE_ASN1_FUNCTIONS(SXNET) -DECLARE_ASN1_FUNCTIONS(SXNETID) - -int SXNET_add_id_asc(SXNET **psx, char *zone, char *user, int userlen); -int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, char *user, - int userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, char *user, - int userlen); - -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, char *zone); -ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); -ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); - -DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) - -DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) -GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); -int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); - -ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, - STACK_OF(CONF_VALUE) *nval); -STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - ASN1_BIT_STRING *bits, - STACK_OF(CONF_VALUE) *extlist); - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, - GENERAL_NAME *gen, - STACK_OF(CONF_VALUE) *ret); -int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, - GENERAL_NAMES *gen, - STACK_OF(CONF_VALUE) *extlist); -GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); - -DECLARE_ASN1_FUNCTIONS(OTHERNAME) -DECLARE_ASN1_FUNCTIONS(EDIPARTYNAME) -int OTHERNAME_cmp(OTHERNAME *a, OTHERNAME *b); -void GENERAL_NAME_set0_value(GENERAL_NAME *a, int type, void *value); -void *GENERAL_NAME_get0_value(GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, - ASN1_OBJECT **poid, ASN1_TYPE **pvalue); - -char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - ASN1_OCTET_STRING *ia5); -ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, char *str); - -DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, ACCESS_DESCRIPTION *a); - -DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) -DECLARE_ASN1_FUNCTIONS(POLICYINFO) -DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) -DECLARE_ASN1_FUNCTIONS(USERNOTICE) -DECLARE_ASN1_FUNCTIONS(NOTICEREF) - -DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) -DECLARE_ASN1_FUNCTIONS(DIST_POINT) -DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) -DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) - -int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); - -int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); - -DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) -DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) - -DECLARE_ASN1_ITEM(POLICY_MAPPING) -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) -DECLARE_ASN1_ITEM(POLICY_MAPPINGS) - -DECLARE_ASN1_ITEM(GENERAL_SUBTREE) -DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) - -DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) -DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) - -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) -DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) - -GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, int gen_type, char *value, - int is_nc); - -# ifdef HEADER_CONF_H -GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf); -GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf, - int is_nc); -void X509V3_conf_free(CONF_VALUE *val); - -X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, - char *value); -X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, char *name, - char *value); -int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, char *section, - STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, - X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, - X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, char *section, - X509_CRL *crl); - -X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, - X509V3_CTX *ctx, int ext_nid, - char *value); -X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *name, char *value); -int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509 *cert); -int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - char *section, X509_CRL *crl); - -int X509V3_add_value_bool_nf(char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_get_value_bool(CONF_VALUE *value, int *asn1_bool); -int X509V3_get_value_int(CONF_VALUE *value, ASN1_INTEGER **aint); -void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); -void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); -# endif - -char *X509V3_get_string(X509V3_CTX *ctx, char *name, char *section); -STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, char *section); -void X509V3_string_free(X509V3_CTX *ctx, char *str); -void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); -void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, - X509_REQ *req, X509_CRL *crl, int flags); - -int X509V3_add_value(const char *name, const char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_uchar(const char *name, const unsigned char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_bool(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_int(const char *name, ASN1_INTEGER *aint, - STACK_OF(CONF_VALUE) **extlist); -char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, ASN1_INTEGER *aint); -ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, char *value); -char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, ASN1_ENUMERATED *aint); -char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, - ASN1_ENUMERATED *aint); -int X509V3_EXT_add(X509V3_EXT_METHOD *ext); -int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); -int X509V3_EXT_add_alias(int nid_to, int nid_from); -void X509V3_EXT_cleanup(void); - -const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); -const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); -int X509V3_add_standard_extensions(void); -STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); -void *X509V3_EXT_d2i(X509_EXTENSION *ext); -void *X509V3_get_d2i(STACK_OF(X509_EXTENSION) *x, int nid, int *crit, - int *idx); -int X509V3_EXT_free(int nid, void *ext_data); - -X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); -int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, - int crit, unsigned long flags); - -char *hex_to_string(const unsigned char *buffer, long len); -unsigned char *string_to_hex(const char *str, long *len); -int name_cmp(const char *name, const char *cmp); - -void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, - int ml); -int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, - int indent); -int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); - -int X509V3_extensions_print(BIO *out, char *title, - STACK_OF(X509_EXTENSION) *exts, - unsigned long flag, int indent); - -int X509_check_ca(X509 *x); -int X509_check_purpose(X509 *x, int id, int ca); -int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); -int X509_check_issued(X509 *issuer, X509 *subject); -int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); -int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); -int X509_PURPOSE_get_by_sname(char *sname); -int X509_PURPOSE_get_by_id(int id); -int X509_PURPOSE_add(int id, int trust, int flags, - int (*ck) (const X509_PURPOSE *, const X509 *, int), - char *name, char *sname, void *arg); -char *X509_PURPOSE_get0_name(X509_PURPOSE *xp); -char *X509_PURPOSE_get0_sname(X509_PURPOSE *xp); -int X509_PURPOSE_get_trust(X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(X509_PURPOSE *); - -STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); -STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); -void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); -STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); -/* Flags for X509_check_* functions */ - -/* - * Always check subject name for host match even if subject alt names present - */ -# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 -/* Disable wildcard matching for dnsName fields and common name. */ -# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 -/* Wildcards must not match a partial label. */ -# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 -/* Allow (non-partial) wildcards to match multiple labels. */ -# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 -/* Constraint verifier subdomain patterns to match a single labels. */ -# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 -/* - * Match reference identifiers starting with "." to any sub-domain. - * This is a non-public flag, turned on implicitly when the subject - * reference identity is a DNS name. - */ -# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 - -int X509_check_host(X509 *x, const char *chk, size_t chklen, - unsigned int flags, char **peername); -int X509_check_email(X509 *x, const char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); - -ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); -ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); -int a2i_ipadd(unsigned char *ipout, const char *ipasc); -int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, - unsigned long chtype); - -void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); -DECLARE_STACK_OF(X509_POLICY_NODE) - -# ifndef OPENSSL_NO_RFC3779 - -typedef struct ASRange_st { - ASN1_INTEGER *min, *max; -} ASRange; - -# define ASIdOrRange_id 0 -# define ASIdOrRange_range 1 - -typedef struct ASIdOrRange_st { - int type; - union { - ASN1_INTEGER *id; - ASRange *range; - } u; -} ASIdOrRange; - -typedef STACK_OF(ASIdOrRange) ASIdOrRanges; -DECLARE_STACK_OF(ASIdOrRange) - -# define ASIdentifierChoice_inherit 0 -# define ASIdentifierChoice_asIdsOrRanges 1 - -typedef struct ASIdentifierChoice_st { - int type; - union { - ASN1_NULL *inherit; - ASIdOrRanges *asIdsOrRanges; - } u; -} ASIdentifierChoice; - -typedef struct ASIdentifiers_st { - ASIdentifierChoice *asnum, *rdi; -} ASIdentifiers; - -DECLARE_ASN1_FUNCTIONS(ASRange) -DECLARE_ASN1_FUNCTIONS(ASIdOrRange) -DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) -DECLARE_ASN1_FUNCTIONS(ASIdentifiers) - -typedef struct IPAddressRange_st { - ASN1_BIT_STRING *min, *max; -} IPAddressRange; - -# define IPAddressOrRange_addressPrefix 0 -# define IPAddressOrRange_addressRange 1 - -typedef struct IPAddressOrRange_st { - int type; - union { - ASN1_BIT_STRING *addressPrefix; - IPAddressRange *addressRange; - } u; -} IPAddressOrRange; - -typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; -DECLARE_STACK_OF(IPAddressOrRange) - -# define IPAddressChoice_inherit 0 -# define IPAddressChoice_addressesOrRanges 1 - -typedef struct IPAddressChoice_st { - int type; - union { - ASN1_NULL *inherit; - IPAddressOrRanges *addressesOrRanges; - } u; -} IPAddressChoice; - -typedef struct IPAddressFamily_st { - ASN1_OCTET_STRING *addressFamily; - IPAddressChoice *ipAddressChoice; -} IPAddressFamily; - -typedef STACK_OF(IPAddressFamily) IPAddrBlocks; -DECLARE_STACK_OF(IPAddressFamily) - -DECLARE_ASN1_FUNCTIONS(IPAddressRange) -DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) -DECLARE_ASN1_FUNCTIONS(IPAddressChoice) -DECLARE_ASN1_FUNCTIONS(IPAddressFamily) - -/* - * API tag for elements of the ASIdentifer SEQUENCE. - */ -# define V3_ASID_ASNUM 0 -# define V3_ASID_RDI 1 - -/* - * AFI values, assigned by IANA. It'd be nice to make the AFI - * handling code totally generic, but there are too many little things - * that would need to be defined for other address families for it to - * be worth the trouble. - */ -# define IANA_AFI_IPV4 1 -# define IANA_AFI_IPV6 2 - -/* - * Utilities to construct and extract values from RFC3779 extensions, - * since some of the encodings (particularly for IP address prefixes - * and ranges) are a bit tedious to work with directly. - */ -int v3_asid_add_inherit(ASIdentifiers *asid, int which); -int v3_asid_add_id_or_range(ASIdentifiers *asid, int which, - ASN1_INTEGER *min, ASN1_INTEGER *max); -int v3_addr_add_inherit(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi); -int v3_addr_add_prefix(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *a, const int prefixlen); -int v3_addr_add_range(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *min, unsigned char *max); -unsigned v3_addr_get_afi(const IPAddressFamily *f); -int v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, - unsigned char *min, unsigned char *max, - const int length); - -/* - * Canonical forms. - */ -int v3_asid_is_canonical(ASIdentifiers *asid); -int v3_addr_is_canonical(IPAddrBlocks *addr); -int v3_asid_canonize(ASIdentifiers *asid); -int v3_addr_canonize(IPAddrBlocks *addr); - -/* - * Tests for inheritance and containment. - */ -int v3_asid_inherits(ASIdentifiers *asid); -int v3_addr_inherits(IPAddrBlocks *addr); -int v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); -int v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); - -/* - * Check whether RFC 3779 extensions nest properly in chains. - */ -int v3_asid_validate_path(X509_STORE_CTX *); -int v3_addr_validate_path(X509_STORE_CTX *); -int v3_asid_validate_resource_set(STACK_OF(X509) *chain, - ASIdentifiers *ext, int allow_inheritance); -int v3_addr_validate_resource_set(STACK_OF(X509) *chain, - IPAddrBlocks *ext, int allow_inheritance); - -# endif /* OPENSSL_NO_RFC3779 */ - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ -void ERR_load_X509V3_strings(void); - -/* Error codes for the X509V3 functions. */ - -/* Function codes. */ -# define X509V3_F_A2I_GENERAL_NAME 164 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 -# define X509V3_F_COPY_EMAIL 122 -# define X509V3_F_COPY_ISSUER 123 -# define X509V3_F_DO_DIRNAME 144 -# define X509V3_F_DO_EXT_CONF 124 -# define X509V3_F_DO_EXT_I2D 135 -# define X509V3_F_DO_EXT_NCONF 151 -# define X509V3_F_DO_I2V_NAME_CONSTRAINTS 148 -# define X509V3_F_GNAMES_FROM_SECTNAME 156 -# define X509V3_F_HEX_TO_STRING 111 -# define X509V3_F_I2S_ASN1_ENUMERATED 121 -# define X509V3_F_I2S_ASN1_IA5STRING 149 -# define X509V3_F_I2S_ASN1_INTEGER 120 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 -# define X509V3_F_NOTICE_SECTION 132 -# define X509V3_F_NREF_NOS 133 -# define X509V3_F_POLICY_SECTION 131 -# define X509V3_F_PROCESS_PCI_VALUE 150 -# define X509V3_F_R2I_CERTPOL 130 -# define X509V3_F_R2I_PCI 155 -# define X509V3_F_S2I_ASN1_IA5STRING 100 -# define X509V3_F_S2I_ASN1_INTEGER 108 -# define X509V3_F_S2I_ASN1_OCTET_STRING 112 -# define X509V3_F_S2I_ASN1_SKEY_ID 114 -# define X509V3_F_S2I_SKEY_ID 115 -# define X509V3_F_SET_DIST_POINT_NAME 158 -# define X509V3_F_STRING_TO_HEX 113 -# define X509V3_F_SXNET_ADD_ID_ASC 125 -# define X509V3_F_SXNET_ADD_ID_INTEGER 126 -# define X509V3_F_SXNET_ADD_ID_ULONG 127 -# define X509V3_F_SXNET_GET_ID_ASC 128 -# define X509V3_F_SXNET_GET_ID_ULONG 129 -# define X509V3_F_V2I_ASIDENTIFIERS 163 -# define X509V3_F_V2I_ASN1_BIT_STRING 101 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 -# define X509V3_F_V2I_AUTHORITY_KEYID 119 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 -# define X509V3_F_V2I_CRLD 134 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 -# define X509V3_F_V2I_GENERAL_NAMES 118 -# define X509V3_F_V2I_GENERAL_NAME_EX 117 -# define X509V3_F_V2I_IDP 157 -# define X509V3_F_V2I_IPADDRBLOCKS 159 -# define X509V3_F_V2I_ISSUER_ALT 153 -# define X509V3_F_V2I_NAME_CONSTRAINTS 147 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 -# define X509V3_F_V2I_POLICY_MAPPINGS 145 -# define X509V3_F_V2I_SUBJECT_ALT 154 -# define X509V3_F_V3_ADDR_VALIDATE_PATH_INTERNAL 160 -# define X509V3_F_V3_GENERIC_EXTENSION 116 -# define X509V3_F_X509V3_ADD1_I2D 140 -# define X509V3_F_X509V3_ADD_VALUE 105 -# define X509V3_F_X509V3_EXT_ADD 104 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 -# define X509V3_F_X509V3_EXT_CONF 107 -# define X509V3_F_X509V3_EXT_FREE 165 -# define X509V3_F_X509V3_EXT_I2D 136 -# define X509V3_F_X509V3_EXT_NCONF 152 -# define X509V3_F_X509V3_GET_SECTION 142 -# define X509V3_F_X509V3_GET_STRING 143 -# define X509V3_F_X509V3_GET_VALUE_BOOL 110 -# define X509V3_F_X509V3_PARSE_LIST 109 -# define X509V3_F_X509_PURPOSE_ADD 137 -# define X509V3_F_X509_PURPOSE_SET 141 - -/* Reason codes. */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_CANNOT_FIND_FREE_FUNCTION 168 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_ILLEGAL_HEX_DIGIT 113 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_NAME 108 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_ODD_NUMBER_OF_DIGITS 112 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_SYNTAX_NOT_CURRENTLY_SUPPORTED 158 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/3rdparty/openssl/libs/libcrypto.so b/3rdparty/openssl/libs/libcrypto.so deleted file mode 100644 index f9200a8c4f5886c7ed4b09f670690182fa7537cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2334400 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%0A6-6Ea6$w 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

{n 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

-S{uz$R1T@pX}Y^@t)TZTPYWV?|?g9<=_@BeoM@9SNx>v8?aMuAddI}=r_k0-Rb1M)rjQ7W6g{?s%o&(^wSP_|+K`vc^QLF02H!mJf=X=CRq9)qclPq_ZPo^Rf5c2k6b##LeWjqw#f-nxd5g0z zavryvIVaj|h<;@3i=4%sZf+YfH(EMq89YOHMd!V$g>lmvaM6+Ce1+SSJlG5Vgh$`@ zp21U@W82o=L);CWw^rMKrw*M%7L5vqIJB6f?HK;gN%}ARXl@nQHjDRd!rwUdZ~CVC z#1E9O26~IX**!x(6gK^eYbN=0-IJ;~GhzNTV@RTXRUPLC855lqK&FnzhuPY%a`5&j zbpq3z4A1h*3G)rDVQTQReZuD(ON=tcCbF%568kpeThI%hzaO7i_VxB+SJ`tLw)Q0^ z{YT-Na?<;{MkU&74i+@6g%0<8G|}G7^Lae)JqfsYev!JLKQ+<5k>{IuPHwJRR{vPl zB+2dq_+8;ZQ{C@KQ;qLqyBR|KgrTN=7kwnKdON=A?aF6Nba0XwSbgCyOvI6A)_=D+ z!aQr1JQJ-JCnlY6^~mWF=r9T$j)4a2_{GWd9DLxn>f;w8m-Jr>jgn^mY^;o$Rm?YV z{2c%5_!sW_wiz$%m19^KTea-Uw z82Q8U_Gif2tNDG3^cw1syj6XYw_oZbZ)fQY7d*di$c?v)=N}c!t1!=ZGNI7Qgnozp z9^S7hWIZH%k2@P8o-LW6`;w%~E?O{T==0-DepMlSxfDG@XJOH44fe!4?bsikR*a9_ zM5D9%*uzS)Zx7|33(Ct^lX=$3ICZvSOJ79{f9XxJp{8xs=UqM6;26WAtbF(}ZIg)wOBMSK~#SYPr^m90OLR!1do~$Y`bHqnBq7x^P zS*pkRt`=pF59&W3{Ho2){$|BHoF)I`Q28bg&%Qk>njW^ztxMSl7^>JW@Eu?%&KCXI z!fv0ZANlq~t?w&HtNW|s=xL8%=YYzxlYxu7;oItfE6SZFmvi6sUgC|2?`xl{qv-94 z!||JZexkKiWph(mC$mNrZ^TwvnHxvnwk6(CdK{kdCi^o_zstRq;3CWqJr8_uk+b_Z zn)0EuklB){u|Q_$crG}`jMrG1i-!f%^>;sy_==2Eg_7whPr+B*8jCIJA?YWs6R%%!r7V7)e7=0 zdS!s_C7-4>zT!|=pHygIFSvNV*|Z;DL|lqy@I!xdFL4HsIt~<+N#3@}E_)ZUq6Y@X zPh%w*#;ERsW5-T@O>&vBP4u^8`)$&D@{{KCk02d5hJKZQjceG}-g9=*(ywW|kiJNl zmhYu}+MY&^-j8msex1uV&0p<%cdf2YH?SXQh+(jx)Xn!4{IdgH-Z1_fr|I1Fu*I9tgx`uDVP*xUv07(2$jZH3QEZlPbQvoV7mDO9h@D~5{3>~QTq#5chRPw1VG z^egOtvzG7hpz*D=Asglz-tBYZq;xCK^?Z}gpmmZ@zk_s*jT@id{b=SEebId#sm@0^ z-)r&D8g$=Ix0jm>#%9T*qG!MEaQmL>qkKVo`iReGf_*mn*m)EE&>o1M`TQ2}pY|IM-~Re3>{0plBcb-M_?PYXuJ1&jP<4J2_W#S(2G8~AvKprvbXD+7 zoHD1|Rw=E+G;Ja+Nt!{|wfb!`(gZyt>x;5E^rR=Bw0;_uI-}EyUS0oK{iOOrGrkyp z6&c9-23i%q#{~UVzLRKsCwQk`_G8M%Ci_d@@%#5~uUut@hsqpJnb$e9win;t)zDf? zK)cA6PR3@v@G=HG^sQ$I<&R> zwC`aUNF6%@n)CXqUAuw9IP+KML}g2JYdh_sr8*a4dlda;tPMndhVnTr&dQ%nwmS9W zlkft`Df9qqXZ34fy?goP(|YMWJl^iS-jj^C>UQ>*i2UK#$C*D*9m{zIVz+GKUEkxm z>huoMa-7lpK6LTi<&mZY`t5TsM4DoZc~3s#@I6XC^z7cUu`|+}NHe6Vep?^&^{!(i=&Jld zzM&VU_*VWf-}KD47=FDm@Vzl=xP!ZHo%TbNrz6k#cH-*+pG{Yu@ESpRumx2;%2=x0 zUh+m6=S=~vd78PI_$dwe1$9tfenF4WUw!lEZq!$usT#UJ*n`wJ?Exp?m9U(NAjDbB~?X_lvZDlCGl+w%}^5qm(DZ zT3UFOjr$5>Z6=_<-L#=OT?Kth*4$d+?r+QC=j-?P)V|sl+%+#^C!tN^|EASm3jIa% zQSiNvZYa6Y95vM!Q@`Y$+Nfvz;3a9nEPa3Xm`%6W6`F~vS9P>tGgX<%l(G5?dsw1V z>5@kSSGfFI&h&Osep7zHMDYXV_qfsifa*CtXgj9ki8qr8-Y=9s*Ln6vtl{LvyVG-MvaI4B_k?a2Dr$qi`m>{YQ}Pq8-ty$D!&N zJ-Sy;_&T1W4*B8O@5I3p4-2>PG~Yce&y!F5O?h=5NO|{uEM?{06QO+19wy)DlU=?o zp?vZ!R$W_(eYcxu@kn&^*G88m-qE^Cd`UL0BxAgbe7n$5Jgv{_;t}gYfO}>g17VC=cxNAuX(O`cqdhJ~st@ zmG73{+tB<;u%^-(A@#-aUg}^yxa64kR{jaN$K6$(HrGdrL@%o+rl#dtU$Sn&H-r5; z=BMIV-%mfr!H+Z0b@NNumf*u}(D?>vvKZcd#gO+_zRUV)1a{hbY_o|uIs=!Oa35_L z(ux)=dT{RXW@w6U@1kcV<|OU+Z1BC9?<@G8+>9Md_N&p@4khz%jJS8~1F~z(y)1G` zl6<$3PxUpAars)vC)-yI`PMRiE68^n-#J59xwFJfvhcIl`!;)$yP~DrgiAdRMcY#tKh2W{Xu`v)wj$Io-9a&`*PIpT-9ca8 zQEZR^cESA{OFzB(s_0(4O*-RSN9#^mt&P#U;91jIFX^oGJjOAD4xGAb?j+fk6{oFl z>{c7+#SBg#`>f87_tvkvW2`C5SwFVGYt^3i^y1RZbY2(RF7qhA8XZRabKiKDy(fIb zXpeQVmz_>OPO?9I?0wd!&c*{uQLg$K)*i?NJrj4p#yv5VlWfZA{QQu?>C~U>nm8+2 zr*93c*Wkl;?c(Iu!|S}=L%br6{-wFpjUVh~*bJO)#I(sbR`U$`5v;eFzqIex+r7TR zN5LE3AYJoW^Fw|}*AoA-d|R}s9zLLcAQ#(f%1l!iwv7n*kR9ee;7@W^TYTaEGIuWh zP5fqi`NURhyY;>te!j~Vq_x-q`g>sLU<;${A(F-FpX?&4Bf^^aiKnejXy11hI=jf9 zNjpe<*C^wp@tVb02~NQk$2LMA+F9FGNhTy2r{Z9YWXDg@mwWE*9TVkw5_~6#MWbiw zpy0gI)1X_^xqW=io8jcuIlLV0v{0AU(QhEPfFD~yN%luQ_*EZDxRbqT&MDycPSS-# zbc17Suyu*QIy`a@qVPzZ8|A;{Fy&7sZx|lI>1CUvhu<7R53+@MS@F!XPN&xVn7_rz z;X7$Bj?C2Dv1OS@q?gWKMDF(`XT-5q>T^sD`boC{bG%b zoix?Cmp0HRwMTnMe?M@4xTU*DwieywhqTdwy~n&T;8Z)dlR5j{-MvHfBA=Ybj*q0F zv1!Vi8)x3@X0PW@rL-hfH~y^r9$dzN01Q zCpS;r-pV)D=*#pi#U5{h@4#E><*n9M-BHtY3+qIUw`8!P5Bjb#@o^+ukdf-=^Yq#7 zv5ced@RHp{k#sY7DQAzR7T(b{72d186y(wF^SLuydnr8cxybFeoXGRu>2AMe8*+$x zs~7h-)k_AM>ZM1UYWZ!c{czjDRW17b?qkkbxAP2ckDCr)iJ+tUxo!QUw>aLyS;b267x8|4Vpb{+ zPLee(zR1|gWeX_EdOG_XvE?niMZLB$(Vfl`=s!H))RxvNRT)NWq?VWipKE32$7rywOhk73NjBtcs zh3|9!_0Be$AZ>1R*!H)8bC@Yw=6F;|cGXqmCY=Jjf;9&%x1#@cY>q8Eku+pJY49U# zz8e{{@8tYu3f>v^jh8Ol#(A##%|p_*jlfsse_!ampMDg+ z^^FIoBwC%xsrG&U>8q373b;kDQWU z9WKxNkHh78e=J;{_c1|vTmQi+`OV?)ydNK~pZgNpO6J>(d2=Vo~FEM$=6&n);jGScoV#-Z!PrtZ=P?Y&4}<@Y2s zGmHDZ4Dim1vHwq5|LxY%@0HeZ{}=jA6GCJLG+|+xg)WY*zbD`8D}Xboub*HJo*&^^ z>(CC$K2E(gz?9^ZnrZ8k)U9ty*WF{RS!UD#TT1`5osj+- zeAhVCL&pX@#7L{<-?w>BpEk)iBLQrxcN6U~CoiE-oi#z5zCHA7+g^r$`<*tW6Whw5B~*!n}4ankIAhQrL$pMS{Xac9Hy-g%ys!msBiFx@h$W- zNu9jg{W#UJn6!G*G?ul-;ZpUeFQP}k{t+*XVgK;;i62UbL8r7dlY}oFaC&ZKf|xnq z>9BV1Y!Q10*n);?Z*mAc5LsAx$CKSFf3>T7jKs&KL)i#?=mK~!;YOm<#> z)+*?`ckF`K9AT;yZ$Rse2y3hP)ZyetN%k79Z-W1nOy258C3sh4iEYr8-X za(zp3mMjK*8qX5eEIZ%muG$*3V{I6xf3OX;zk_ys8-F9ef7W=b+}2ZExz)hsVG~>` zyNR;$|5jgq$Nzhaves8F295338ko6>PCVlY_(8em9{vzIZ&c3w+r)gTfX?h%Yzg+` znAV*|*#}QXkD*=34--2*E!*;sxswN4u>8%f8FyKo&g#R`P2mOg)VGOpDjScTnl_nJ zZQ1WqHi?}AI_CVIE0@6LCR%M}{UchZ%yPA3VpVCqKSLSftJpHK`<09D2yW(X1RuAc z%z9fUahfgjgkU6Ao7&O&(^#l)>PwXV4cyH5F~@xWZ29DA>C07?{R@>9zn0(7A#KE5 z8*St>#HLriC&+V1f0M4i)5*i#5;l*<|ByU6m*-RD>3GxSk!{+;8e!aufLlB@!MN2V zu#?bltM4>M(yg?sdA^{|=w68R-Af|X2Ns`3jG5A`=1Ak1#DX^%%S&0~G~!>>c%~Wp ziAQ9kaQk1|2C)`^uB4Y#^DO?MvZ`0*zkk)J1**fBJvmgio&3$wvVGV^dUbG1C)oHk zcDd8i#p?T;-Ih+~hx?v6&3;$D!RkA6LwNoQc`iRXQ7xFi#NLwNnvMN+G4(cLo2|oN zED}p~4gwC@&BMG}Yk1}WYa#grxw9Sv;VCoV0kS)ZXE{Dyl075fXX@irz9VN?2lU#l zuBJ~rp$pN!;L;rQ`dRq>$tPvwb9;d3lx>TB+#UfJQ>liW{IR&qIx>}(*fEo;W5>!6MAQa(n%1y@fQ?F-Si z^n^$-591xDrO*eZ`4NweO@Hn%Z3plzkLMhG7at}M^(~Jl zPfvgHFyBNQoG)KKpZT(3^SHFl3!R=#Ud@9BXx-0^I_66q^JOC6nxiHAgnNxqJ-&an9ak z&7eIAoyQOjB{*Y5Z2qPU{!k}_Gh+QVy$mg|@6vQ6Y4!LSORm*3zqQx#1?Hq|w8-PO zkFehbp6#6*2E3obdFLNOJBobxrTB9aEAG=kGbc5_muooeF`yl3G z^YQR)e2<$e&|C2lvoe{wZlHW@2=VuT*UP)xqViMlej!e#a+g8VCiXkk*J|Xy`icx| zbN;$z*>(R2Vo*|-;HfZ+Eg$>(L3j-Qa^ItV`Be$dUn?(gX>U_~pG?2kuusvT^Nzu} z?pIhZDbE3LB>C#$@i2N@=`+-C*TVa|Hz1>z7qXAy^#@P zI(wtSGd$PADmb^E$@y*eNqiaBgz&@?jpeHe#z(OT&miuq_Dr_;^7K_PG=vl3=11Vb z_wQEHpSq}frSK|TLoc26;9EG}%D&9%5RO;SmT;_d#1?m-2>Jj#im@ylY^E+hZmRRs z)b&b`f3Nm}=)+?4ArHUcxq*7WMxL$br>3dQX4+Ky5&jeS63q|#XyT&be#j_P3ng3*B-8IZJ$MgNUDu=T;dW+<;<}r5U%FD4S#lXGBKzt&e zI4xaI+7{Z(p!;Jt#$F&l%d)_3+$(pSzPxqqYxs(fBEQZ|_tX(vwNwLw>(6VBtwtrOzULiQut5n*p4us`NzV7cJt4uJIAB z3(sW?gMBsa?~Mv@*@8^7^g{f!Ul4CqGD+}D4y){%$-QIM8k8@ltYN%FJ7Hfm;amRB z*k{0rWOt$U-6#acANP!hi_dKJA>rEE?IU*ISAM`RyR&%N41Dwl_>_qb%9fnT`LwDY zJDqd}?fstfq-;jTb8bN;-M7jN+fG%xL*WP)2@?9;W4#k&bV_$9liVgZO!BjWJI-`~0fLe^*6Sdgh)($Ny1a(%37uk?78k|0AULj( zJ*FxN{>8hml1>}YiN->7@)`0N)}k)<9(?!4^Twub&l);?JJ@%nFUQaatAh|vqXOERN87UFI2m1<9Za8P3w3nH znIh!gcPJw{GTY@v7kBnr?QtGy=}k8E!0#ZmPo#dzmqmRXPg&vZaQQ4P;YZ?WZBxK| z-rW1Xy~kW*uAlbg;+(bBd>?zjtuIpG%G=k~=ih(V&8w7^*PL~_%cL(mfQ&|_=9Grd zWzy;{hx%9whP}+$Ml;^U?FnFb5*Qp$cXuT{P5rV%2_Apet#@4!4dlmo>&GKJ%U9qx z1Mo}0mLphyN_pubMzRS$k@UO+zLwP83+xdZ^fE)7IQ0{_ZOm=_5z_cgwm-lf$Kqkc zEC|MISa#3rCawLE_4rW4pmWZJwQCKnF&jmDv|Sa}jdZq2HYyjxLiu{fMc;Hkg77f~ zULkzcfs6V8AIrgq*C|#|_u=Xl|Ao$7KZtRse#qXTI+qgbN9R2CyhgEl0(|@W7f}C; zzJ1#4`~7Qt*IM4;zgNDvy#>V>bAAuvHD%x%zZ0u_<72erc7Bp2??OlSLetXWstd-a zXCiYPPtm@8@tg}83)TN~@`%3-1AeF9pzkr3=;T($h`&sv{&;eHIs+e>!Z+t$=Fi3=d*3@fJFW_bodzcFut8nbB?gQ!1=Be4z63+iasuW-tw#N zm9JjtV)5(!o4lU~{skX9*^I7|(ug zui$%zvx%ZhLp+#L)*Ii)UaB#@4gdO{xq291BJoVo%>erBbQEw<;P4{5VT`*pOn{HK z!G~~BhWvV%u}c;>dC6Yx4ADU$ysRk9_$Dzf!t^CwMY31&*vsF&&`>l~ zPW7p-7bvSbv?fgek940nde7I`d-->DUJedrv$Jak#zs8sA>jTne9S!7$!N*@T6oB1 zJK^00Z(F;n##A(s8&S8g_O))?-=*mPg0Ue4w_t4tX4#lxAPJ zK=Y3MqW{rV|W+>GC-5pPJ>~bvA7K>+V_gh5Il32?vsyznh@5VurhMwf|{~ zS&y{WCGnxuxk>C#3CS7mo`64*-^<0#Yv)n7hxv*l^(A+ zJnpPtLFN6Y5mO$#+BgL4!_M4uCiYL+`{j#c?GdlWQ)i|h*{JzyiaWp=XQhw*G`vZD zFwjdqW6=Z+IGH!XmQx*~H`Vh?%4$w00$NkrN5Hx2nn*p`H!0`bo_MYwhr{V=c05K; z&Nqa|gZInAlY?Xy6Bo)q^(Xj%?W6cZ)vR zft*XQroRh1DCEpaW8$pzYV?3j@Sf|5XChdDll~rh&y#egMTOP}i~DgSO-C_)ONo!a zI4JAuRDD-bkLu{{m-E$F10R(is@e+Yzbwe_*R($bPP-OiF3YY4f9n)}uRRsqvRAw^ zYV!2O@<#PTZI0&tTCI(I-JhgR(Vlz>)%TnDSDyrzWY;R{5PZH(#k*6RDSXJ9@nvek z?ks+OcF^Y>Y!xHL6Fx(n~!PAZU+=DO94hdiJ0FGv05G=ykk`F2C;B$9(d;a5OOvK6j?$cLN#s94?A`L^(WWH!`tlXgrUdyU zmnsH3e;}(9V@N?Cn zH0);C>8x9^Em^+tE7q&ueXZN3r_k@kH{86%{|p@HzVcZ|u-2vg=R$QZgKvlN_0~_x zJJGER6K{35>CC-g6O6up!l&+g-Uy6ZkGl0narSSN?SY5*|2iM7G8PVfBQJZB0ls?i ztNMhmcWgd7$^YgHA^qgybMlp6cJEf-XxaDLt=gxll&)^K|_PszU@ z_4CDF5D~U-rZse;rxbHI+LIo`6;_ zV$D-68(@)*UGWd*K(5B*{|udUHxK#Pop(jjiL=~(p?H*NM!IZ@J;rk4e00b+85%{W znD#UHjpg0c*T(qD4jwy0`&Y)<7%ocWe?gm>fyllk3D#K9!xHw|h!wN+chEO!)H&yt zvG6mVmA-^@%g^v5N>rK+^Pr>RO6xbVoLDH(S8?_u1?>6ZZy}n=eap1VUs16jTG(sc z!u=5M07q&9^V`Ejywwi+XL2SjJ4)^o;-@3BjkJY*!p5Y8uAzIEruMr&LA%T`+gI9) z!8^3ZQ@_7LzcU}h&cQh+*#T7U;-IeW(#s22M^%AiVA5RwweG9{7qYutC48{QCY$W} zz_$gs8dD~{23=5cr8bZ&e6fMN3^3zk=un9mwm0h1SkO<) z%anc*Z6&a)r&yz};f!Gly()8}aKU|R-_cqS{Y7JjT%1eaL=&A6?Fnj~>GlNAC0`D| z6T!KZ`@{sR;H(ee+z6bSpXyI3F!(;F=yMo;(RYNijT+s)ON-&)aR?FrB%xQ??Xn@qdXLzAOS z+i`;DeDqY_bLj0E@X!DrlEMRf;-mB(*(%O#Q-^9aXCdNrP)6L+jGbh zg3tBHU8MP1?MADv@FU~gEG3bq<|NOUslX3KNc|!ot&#>3~x-;l^5y^y7XLHS!c=}`g z2u?%~N&NP@=+|!_XRS|M4AJf-%pK`Ad*$mDjBQIWw&yXnIr2Xt-!t$lU40OBDejc| z*Gjo~ESj#SpWwKX`fXp2qmRE5KIz}CR~=m@!2h>^+rSI10hXhn=bL!$0r?qca!vgSv?n+WW_^C=V7pPQr6Ihu2Z^Etwgr7`Bn1>}6Rp z^fu(ZaDR8uclEpQG}dC+-&%vdA3@($r>}1k_1Sn<=mq_*>|QCHO_5(+fHR$aTLqq^ zXAq0HP2+MLd{8*}UVsDqw>GGp%51G$VIH00`;)=nW!-#OZhQ zjlCf8(>44|CYoNFjAAP*uB3rr&;uGSGdOY^&BkuGcR?wx0C| zb=FpX3(`*=@6ou%O#$mA=QH=WhkDN!#DQJwh9ovY`H0r?A48`w$U4RT(prA%RAI?%gh3U3;vf(Z6%7X(cZ+^ig(4)ms^~r~UtNcSJejgtKGhIN%ki4YVT9{8wTDqcEGY;eN`NAZ_Bu0&HL7FT;KEU zq@Hir^3C_x@1KfRCPI5|o$u^2(!X_Azya2rZ!%`z8*Ij7TedOY-C9;_`9PlL`rCC{ zJ9C3I+WN8dwR+2#^i0-P2k5I}u%1Gir<(^DC#%0uegS(98h5w8EXrO)A2puq$b((V zu1PnuCUg6LMcIwf!Z|-fc4|GJ8YErZG#$k}Swg!S7aMmuHGp~R;5&wPQ%8SDJ~OZ< zUq9s|?&0C<>&^ErF@P6C)0>$;YENfB%HG#B`IvS!q6-4cuZdTr zf6;*WTmG*1SF+wI^*FnLx#jWlGCG;>`^|c$e+kz1zArBmtHif0Jh$+(c+OR(AE5o; zQ?F>suiv_`pNN)3L$Wi7pUkJst_J7Y8?T<4|9b;*?Rl=_`2}RT##=g&;eF_5Jw5gM(}>9BHUtZOFAA87x>3(|$i}VT3now@< zTZ)~|c>uoEu%=A1pYP-$`U&!I5^YpLd&s@c4&co3EFEt)I#*+IP&&%maud%9bh3Ad z)zGH(n3boj*YO!Tk@DkMoA=Z?@Z9_;!Ob3lryFnMxAmgOsb2Y#`g-?L@8R-$9Nq;E z6_c-pb!`WD6wcXKX=|h17~@uBOgnwZr^zE6$>+5Nn~BEinqaKt8(`a)zDxTRp?+

+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%0D%=r8kv3u^*6766CJ=zL*slInYS_ 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%0Dco;6X~Mw078u4kH+DaV$JsB84@ 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�p<^-eHDbFOU?A|U9PnKu4G5LD!GsS+Uxq}%NSYU}oPI8>ntnfH% zj2W}#DJv5#Z;)T6xQS_I*v&ppaftah$`1=~Qm)Q{(=z&iP3=X033Vf|xzuYCW>O8=d#d^5uWyE)1% zC)mfs%(2P=&N9!YP5R4qEHK3qJ6K^4GyCj|oa7j*JQ(65`o})bggDpzsebLZE;)6r zeUr(e_4Q}^bG?2te}i#z=tIi?xx6#Q5<6IC4=dcpD)X#yh%v_)jp_%JtT4qHra8w9 zo7385k~y|B&rTND%OZ0uagb#Wv%&+cvdkK%81opT58MBlWb_x>WgD~H$UM7PWR_(P zu*#i`Il|;etV5qd@%Zq^TTUanc^%nY}%?k z*D?C6{4zhGzpQ;ue}i8T?=ql*4LU7mj+uZ(|a{x0`= z%KWjy?d-eBx?qlF#+>8m&F1|X+GiItw^v-@`Qno&PHnPV^W%(1{h z7C9W^RqHRrd5q(nXMBhDt`NV|_*nUgadC>rnVK>FD;@u-a_s)OJhJi&^)UXWJYQx0 zYpz=+@76v`9OF0-vdjuAJjUX$w9nG4{CA79gXv#eZ!ELK)NiaW4)8dKP8iQK#pmt& zjG2Cx`cBCgOR@d%YW?_~ezD9f+yBdT!wM%jUUz-4J8`nUzQ_7rakAdcG7GG&I$57$ zrRik-Sa^Nj$$IOvy;3{_+&l#9Qk05;}1AlKfp}u z$$FK^2WjuQ+F9p3PH`7!S!ByYPS(fS&O;pFagHP0I(XtUUH)z4NcN|KyYP877~0vflN4Zqg1rc!(87S?efm{A}y+`UU#QPFC2< zDs!xHkTHiDZ8lCOS!Rk;;W%4gXkNFRtZ!g}8CIERjYEt%#%QblGsy}wtTD^Pi}a7J z%yR<^Oo!K<>SN~8ll8-_GSO#zmz}JqSYbc=y0pU@s~mi~`MO5Cm!GWnaFoO0^)rlv z8BR0H@XkjRTCilTqemeS}GtnBpYUoMwi{nPtozTVA3au4jRp zSY(DJ_J!kD7!PAsnZDAv`<>7AEU}B3tMr3?90|u+;vgr(@ow!h`z-l-spITmk$oKH zc9yt{(bdjpjkAo|^fK|Dll65>GR4{F>K|vGXMEu`W5#TGx$=LlpG%$zi5=fN7SQ;}r8e#scR<{6*H)EA+e1 zJaU#h8C|14OtQojCz<9nGd#{LVy|Xo^zudqA)6BfwJTaAX9siB~v5gsSWR_jbG0Qv$Sl~_;Il>Z4 zEOU|-PP5A6tTATHmRIZ7-X<5UTxoDj)y{=v#he|HR|I!#!NBy8u<&a zxs%a=elf`sQ=DX))6DQVvy7Qz%YgB5JdxLev)EnjbZ}sEv%^!2DFnWt|zE1o9pgpGEs^3h$&A7L#|LrI1 z+c^0S>y^cK86T^hVeY-g@p}97`&^eyaXZu8#q#^LA6|b@`)@GrVdG1&ObWgchpI@i?>ui4JHXkTS=R6m&FG_#xw@ega~P2wLh&n$h+I()P7v5Qq^ zS@^j2ImN@__yO1P-)a97=99TkyB_l^6CLB`jn&Vo@9)hEcd+t#$JuwI{=Y@PzN8;a zmi3!`U)9flkgsp*&!GB#s2^{29($O)$#u=#E#~QM+CAz%_jc=rqwM1ZD?H5THv1_D z*u2wtZ7|d%(BKD6T7s}Ru;H{MW$I|H_Pm2g*#Yffi;dY<^-b|^TZ^pOmUWJ zHoaT>T*oX^%&~)c_OQThEHcj$hgjwqD?G?5E39#bG3OZln|1LX?K8;~+nHu3GwfxS zIp#RXJcn7}0Tx+iiBl}|7%QA-mC-+HpKXk}kw1FZf`d+&ApZtbwb8f#3vPkX;Izf5x@2iV2jta@1Z zwed0Ly7z1UH|B>~cCf}CcKlZROwXBbmRVzki6Q-9D{I`qm}y2QtRp7bACBMS_y_d& zwES@Pj68l&y>-XAue|J=SE%WvDd%eE@d_BW5x3j`stg^@& z#~Jewql@S3N0?-dDK_m>Ki9FyE{-$H3I~{Z;Cy}4i1QvaU*8dY$b7wRzvl{eGRs~T zxPw&|89j8~-x+nB$2iXDTIWAZeM}_fg(Z$M^KkiLfo<2Rhn;MBg!-9bj=4w9*QZ!| z)O>wo(L6kQ-tXmWXZ^gtBWk=)6u;j4qjv4G@`v(tgZG6`ov-Jaf0}Zf`7`tIA>&TV zAJdo4`+J{WUp8Og$wHU;VC@R8Kdk*L<&yY|jwzOzW$NYg_4#o871rlJtxR;hQa)K?>jC5E23DD7 zjopmd&*)XwLx}SLhjQ}4?BAH*e|G+>jh{6Rv+x@IV`4zQn0c-B_zC4-XC1N1<4n9> zy`QviaEz5V%-82wdZX*2WPRC(Mq{`}>>v{bASh=kUu3 z4}QveV~vS}#{VzcWsVzJW)GuJtDjj8v%mx4ILqPq_a=fT+irV?HA0l zp9Ss+$5{x+KVv?^aaK6R#21b0v--hN_AuslrY7vC%(BQ5%i%by;rQoVr{Or8zT`O9 zGiE0TKCgXNIKs9sSTD@5!aQffaVE<0a?o|bA@;D$ZLBfR^o{z#0?SN%QTt4>>C5`T zbu4icWA?K9OZpMw9AT9uMrHd5vz!UXnfQu+epx=4V-L&R&gd)Vg;`Fpz{BA6orNjaCrdwa-F#EMKQSML8ox|4Ks#EpjOr3YC-u4~sHlL~=Vs7=R`W*9Y z{;v9&M?6feb4$~2cxy8>OD+y8&k|P%^_wu#wkv*c)wHi){1_$ zobvZVy}tjc`cCF9KIQL%>IV<8z$4)}Yb-JGef2)zRK1;3>}Rs|l)nq=e$E5Tu*^PA zvCKJE*!%~+);Phb$DXRsvivynIc;3*VD$J?{*I{ev&QNZ9KYH4o_MO> z$85@cGUgPcC!MMvW2#;Iw}?OWRDBntrx`zsen{ zMb5Ft^*?bxdGRTK-&CC2S>qTpFF9484)*KUjCNjT+|2VZi!XQHzj2%VGWiPavBDZN zuT=lPd){U*v#-)G4seVG9%Nh2JTlMqKNaUDCjUl%nBy4RUM;W8Gj+^5XO_tU^T-@$ zS!C0HIL`HqUn`$1{;l=IaZa$p!>qB&n6r#t=lq|km+P2fifMK*!yab2jXCBy#3G9v zXNiYc<`Gs{W0i@YYnQET*=~I>$u6dtWts!ba3`}IVU8u{ImrU2S>hbaY(B0%COO4+ zW?yf8u*4!0Z;-bTXUyCi&C@TO&pe0Tq&|+n*?jz`y!@Trd63a=^T9sG%(LY;`o;CEa1&!@ z7!7Nm?cC08?qZ%rmN?Eb4{?S^7_-KfJ=WoGjf1W1;09)y<^a1{U_VE>gJl*t#ZlHc z!Ngv9XOdO6bCwx4%^4ThG0zl-*ufHeSm8F#FwdAnY}qGIOz|K)SYehk9N-)aY(Akr zCOOG=R@uo}_A(lA9k7jqOmmpsJir{w9OM*>JjQX(v%=^e{bU8Ll%(KQJCg#l( z+vx}5^-d<)%Xa3N;Z9aQWPf3elPr%K?N3~miwPZeOA9Xz$(X?_%H2!-h8vlBdoE;StjcG`32Vnlia`*)2y;Dc+fnA<2T9|J2=TK zrX85F~cm!xr?cv82?4a{crlo%ul^uYg|7wpKL#FUhbzKOmpxT^1=$YbBeoIWs!yd z)Gph8Y27e?xA|!?&RO*be=QHe6ZY-ocryj`@|R>&XWyx9W7gi-o4s^_{Ho z0Q=56U9T{G{^@%3AbGq%Ii{Fp`a;K9V&cK#t55s=dgEGix}FcOqto?6%yW(fHm@^2 zCRt)T%j{%@y{t0F8V4D3n9)W0#U#s2af)dkV}|q0GJ1${vyFLfWRYErxr3#(r|Shq z_d8u5G~Km8&1~`Gs`M-oMoO(k8mE7 zEOH}b_Otr<)Ab^291n3GV)TU5^&?EO#uWXrGk^E$biI`sZeW&aR=J&})aiQ6)RWBD zBh454nSHXnvBJa5Jw>_j`VUXnJ09h{r&zVya^)km{ zX8uY&EN(tsZ+WciX{&y)!W^p{WR1hjUn z=D2}*rdeP&i|l8KJ6OrcAIn#qu4f*vKkQ?T+Zl5gvscOsqpOUEgFMC>=UMEw9-p8e z&vgAT^(=Yk6nmM!+IU%Ffi;dY(_@{n$m2{r`*eNX6ZPjgr~Mwi@jchNXNDzaImsNS zndfm<*qm}+ukmvHh4RY6i}ag)efrDXHRkC_`u7s!XPO0OILa(1nB!rVUV6Hoda`=i z!3uj=MfaSk$Ofh|vQ|9rXpuw$EgILZQ}S2&+-uasA2Uu8V) z`onJK+0O!Zu*d?_IeB4*)6DWXldrb#{-N_Z$UKKx-~pxwte2;1?{Cc$2RX>x8?B$G z8Sf7Bz$$mL#u3IWF?y4B!|OMjw~gA%>mO6x!88lZaFkh2Fvr8pv&sTzS!B~6c`kdK zyt1;>^~Ul$taDB=@yFVEr+H-Y-L3=1Z2A-N_vi;xOtHY;5dTN}3EMapELab$aQ!Cz ze6Rcl-)A0KdcXN%g)M)oo+0zV+_kQI4swR$oMVN}f95%cNv5xJ-(Zee7C68Xce27F z;~VsY?H_XfpF599#vhhnW|4N*jnE!<9oHdRy^-1&0 z3KJdTY-OtC{=*D=LYxIoeMI~im6Hc<17=M#=%xbUvoV8Ew3+8A2+f5ZR2C{u=c}iR#@Q-tDIwv z&6lc=Nk-o>4kp>j6nmLwju{TJ#&OPk*YyzM74v(UelyQ9M_J(nQ$I3)UHZc^b2q8~ z>EZd>I$-8jdAwZtBl66c+nGA*IIFC%#+h)ObBu1&|7YkglT5LlX?8NhUS^qNj)Tl| zm<1kSk!6-R#WIhv!g*F1Wwg&W#@xv0cI%r-W|`su)7;4nN0?=aIZiUqX%={#MaC?# z&;qEHcG$rg?}N9$}U>=9sur`)p-_DaLo$2U)t)`5c;2 zo{4`m-mBEdPL}`Ocv$(Vd0_RJ>$KbPpBXokKX*Q3&N6r0ygbwR*v=9=nf`_TbNoM* zXX=;o%{*J5rN1@nfSJ2oZ!EIR^4;e9YOiPQlg#|u_?Z8Vc6z-2t^JYlDdnE+ezoFE z{TK&UovCkpj`hlZ*0_VS7oMqad#>`#Gr9VV-=}vSUUa5D%jkY*{9SVG@-TBPXX=UP zX^*WeFvS}CSh>IRnR(!udX>coDfidL_Yn24_=q$0-1C)dJ5wKJ@zH1Momt1%>kkVY z<c>sVuo$)}vDXP9M<1r}Ili8WS2yxsXPc0N;_VF%MsJLB)7 z>+eRd+5Jan>ch(9=J2O^^CtuE`Eve zzs$HVJLC7()qjQKFE>9|DZfqsIKc7lGk$Meeb17oS2+LbGxb9(^%ys^&z8?uTCYsA zz;2GRpJndg6br0zl$qxkH%p9}eZG2M}QEPSZ0A0j^kBYn*4y==H|=GV6*-Ze)sGOf$)*v{N*jFYn*X8d~j;piL8=bMyc z53_GHZdP_!*UY@h{J&X!>|%{O*pfGoOmU9m-0*kK|9k6!$+zfNc>NF7E%S`>@-%3E znPN9P*v~1BvG`Wy{@(rOZRUsZ+x3^xPW3U#GE>xDeHsdtg+0*yX5QB%CW@lta2A?EHdUeqjCETGn{3W$z95^ zoiRHZ{i{4N$2^N1WtkJK@-Smonf#3Um}b+vjf3krz!VGY;3#`o<~B|-&l-oA_^kP0 zk_Xw&3bUMHfpct|(BJnM2Rk{yUKW{S^abPkNA<9sMfNap(DlaXM)il+W%E~X{LAKv zCH4ouqFqK`b=|OqE$>wy*E7XUOf$m_`PfYR{Q=Dg- z(Fe5u4gKaQ3#=Sco`rA8;|Cr8w)U7kEKe-(aEO1$`MbSlJFD#B)OU@St!nQr)Kaw|&|JXb;d6Rbb$_vx%n0A~sPO$A}`vXgC-DkhJ z#kyj2tMM?$aaK6ZDvz_qm@!*Mls{s9GRaL$vzJ-!V4fo^@*qpBu*?}&IL9iR_p6^t z#%yQusCCFR2bkp$^BiY^hnTuezu3W+Yn9`A7PyIJW*FUW{=;z=nByq(oZt`-Gg&p? zOfkAnzwgiwPTlD|=6|AHmS^<4sNR29KXX5me^%Ihy>h>>&e-=$<7Kv{UpLsd?~)%T zf2AH4IM39qaes)vmNyRl#`VPHoc(%K9!|KBCd}xxhnSe@_Bw- zZy$5KIj-lKxiGFDV8`m%e;1%1YvOv#$BgIVxIWDan?9~Q*D-!TT<>AFHLedb{lK_B z5ngkeIUeUIW0oEi*Ejx?b|36K_HjE)9A?Z3X4g4Cynblx@7l}H!_?0x8P`XdY>WL} zdU<(tT#r8C_+#RFKcmOS{(ii6H^lYUPwMZJV!zj~z9+|iuV3Dt64!UJ#3IWaXN8AY zb}EVu2m3u!rqeS_e#Xhs<76ubt}-9YvyX{x z>x>agOmdPbPIH{m=j5Ml?09Be?`4KL<~YbahgskOR#;(`GpuorF`GZHy=R#(CfUvu zJDFiWv&^$}wSKX^N1mDHJO|nK1?_Poi|k^FS(Z7#j%Vu+Gc0q8bF8xYpu9atUYTPL zXIWs(Q4T)WI%9z~w)9$`H|jSxag;fhILP+rnMbC1m|0et<1A;n;fv~LnuCAsx?+L5 zSY(k^PO`>n#yrmG`L0hU+43cM<9epKiCOkC$6Pr60^?`C&v{HzXCbv#npAzbv2ZX6mKpg&i-8>j&A*3bUMHj&sbj`72((T)$Z3HfFXNA1kad zdWF2O#Pwg*4mYvF3~TIT>J8S#q&&URdCcvwuD_<8HyH;f-)#M}_7>~u>-zIn?Xj>^ ze^_Jk8_s)&dRgTTX5Ohk%yW|QyId!S^kibO=AW7O zntxVVWA1&%^)2VU-@0VmkoCnX53%n9#?SNzt>bTVw|+4@Y@cCek9lW#pS&Ly9}#D2 zzkV?0rtc_st>dh6h&7He=0Qf+$s3cLVTyB1v-!LF%_OsIXO5lBvzGG#d|b!qL#|sU*}?Wv^Ud^!<%Ri=$TQo<7`PRe64u% zvl31IkGLNeJ)#j?C%pbMch%b$kB4$8|2o9di?O!w+P|Dw7ZaP;wq4(J!>TR2S6+GN z9XG8Fp;rI;{TorHDFhb3I+*uwNW2$*?59b%o!VoB!~#5%;nI!j!-w&nVjH>~Kq^Nz+k+9*_VJhZnX9Pc{Y-{BR{ z&{0dJbFKeUeRxG!f=&yOg|Yk3ClVvhTi$oS0-P8YTUwK${m3@BQ>+l`-@JBc<@Jxc z;gQ!YbRdi^<@oHfdcxZ75UYuWe9B>?&spF0iZ@N%Ri6y;uC*Q4H{Wo8e|9-g4(1w;pM%^0gh|U^o^^ZoN-@Pt)F2OULwEl?T<|ul_dU(AP%& zTSFD0==1lj?7MZd3+R?*b%z6??q}><`RxDu!QXSzzLnv$%>VVA%a_i{=}NbR);=d6 z*4DlHb!iy#)_p6lT5Z^&u143^ge07OwUC5HsuqtgL>7i0;?KP0=FLmR6JbqEYOnP9 z#XK+WA)R3Z*}7-t-WAUd`^7>M);x3R+r~aN@4Ss)xU0TP9oE{y{DgKINxV!yO~Jyc zjq7K_dGfA&SO?)N%zavHNUS3S7Qe#r9`S?A%7)lBv5EV{@?zu5Vrk`u#7bhLzL&qo zp13uP=aM}uFAM8sVMg0SXwS;9V?Og{t0hDm{hV@sbnvcvcR1fyX#1F0msnRLvJjgW z+bI^>3}5a3Md#~}SeQp`cVEByh6^v*bN=4*I)^XV-Mn>Q(`C1AnZC)Tb@MHaYckZ` z;hdUt2EsYMLaaxu>&Cn4J&njhY@66FvE_Zpi%p7!c?@6S+##`T%dtW<#6m+O|;F(*0_9MY!RF zEN)%1m}Fy6rtJdz(!N0*YKAX^RjfmTU@Jdn2pIAP!{MMt7vha;t-sm*?#utZ zoVSJXE8nGjV_lqkrsy(3XV=|9WqOqf&ne+6T#ps8KC!TuFMWkIbxeGlc=$ei1?R>3 z#o8N@g;;c9A~7h|wk*~rRuHpYG`>RJ8^!Ws9U-!LVb9Mj-lxL7smJl6sdA51; z_3vA8!+Te3*|%%O$h%f-*+Ns1 z9o<~Lz4MMcmohusyl{fTPFbj9p~7p-!BRQxhH*`W{(kjbf5Z5Wh5m|d_r3m}Tl0-O zy*0mi&E<=$fAbneLf+S{_McEVXUDR2(iv94*2abqCi*$fx%J4>_UfEX{&hPq`r6t3 z>)hHs*Vg86C%D>e;OtGnd769Vv-!xai4N7ZNI>-Uvvm(#zxIZUw(O3E*MvvU z#aq^%)z7|JjSD;RKsdN(btre)%?ml`QO99*G%w_CaK-g4H{5T_?zO`govUQ?-Zguo z&V8!~mfg@Y+8=Um@f&y54}^0sT|2bm`ipP4|CZe?!}r^|XYJmLE?YLZEhB68MVIei z{pv7)qnp=Uee}|0+kn%<-aezg_|RST*!PJ`)-LPIb3+dspZsiO4Kf6D-DL<)vxAFs_f6MpO-i6{}4INYFfHK=c8DAkb zFV=MU-fJzo$N@21L*pxyYZHr|8@>-;ZT@W(n-|N5z~c4PxqGDtjC1=_uQD6ewX|<^ zE1DBqFE+D~kA=0huX)6Sp*6I1&+5GwKF=u6T~p86fBwr>FKn_)E4u6GmHW@%BDiMD z(LQxfs&o81_M(M4`>u~}ShHpK>fsBw>^pztysi72u3fd|x|Nsgyx3qsLQ^17Ab^viF)WlM;5-C{krX=A-zxA5J?z4F|6&%R$tDbuCQh%y!5 zFXhDhz~L2FoSnC87G`8&f7zk@#_ugYe=VQ4bC*cxo|RXwUcO0eQ1y7|i}M!uvc~gK z<9W~X(Xuy+jXkWY?6k5Y3w>I6e;Mw#OKogjbFVhGx>my8*J|-^s{GH+3)fo4d85ud zywKjlTk=q1}S>+rRJHUpRl+GilhX8arG# z|J?dmJnxY64*dT(FLqwr5B_KEg>i0lF^o8`cHe$pvhW_}`Jt0bV+?nevo97tL)h;8 zt{>i2&n%pO?tb(PWf!jTrAOMvGs~Fr+msLQSFNqaGmEFu5zqK`jjiF~)c>XS{*}+3 zzRAtA@$Auf8eDs?$CmJ1;_=m++K|Ao;oa--{*~9R2t_mz*2}v4ClYg0uKR_1_`+O< z8SEUsaQEscz))rH1$UHW4C^-cHw?8jc+xVl1vXE%t&@;T+lmG21^oO=#=dYJW4KHO7X zvW>4c|65dkM)`2vFDrkxTFW9asZ33oBVnF=wfZ+LcJLPWgvD5hhq5*CmZRtP6-OG2@5FHDKIDVtcx`?>dKmxgy5Ve4L6^u5czUwCh|&AG>%yFFC4 zICiL#NJ3&$rH;d6`4H+d)uIY|0fbWZzii_f@=&za__k)rT^qP%##%lAulF8}N; zgu{4_Dc8GHPYC)7@mRd?KJo5w%)xEqL!sdEz4@{|E1z+8Ltfi>58C+5Zt<#Jh%CG- z?OH0Qije1R>Ks#NXg7R?dq#dSHV^{m*2D0ME6?r&PhY5dp^lRB$JDWOPYv}>idDth zLLI(BY+CHNSYzFI9Xu}9bo<%ogvOq;e64mbuDxMpTOVkDQg-qBTDVV#yYtrTnu@C~ z9bU6L+H&oA`_F&+$OZeFU$%J7-geY;$?es~wH=-&pV8Qi>^6(BwF9AsP(gT9^mgxT zeBl9d?}gz`v2@%`iFn7S69QP16LI>R3BbDEJAeW8N0&-dZ!?%b=!^IiHuuID?>-X|M% zG(J8F?+h0A@w4A)GtA9^bCP$So13uCcZzKi3-^|#^>)Rwbw1{Juj7*o$IrFXxu@yn zF1pavM#n13%_ATtTqo8eX4y2p z!Wv2~#==}ITd!yLFV|*c{|e{#D!bkJqoJ&?5X*@rX72Le$uE3`*q~U8SlePOTo=P) zNwJx*(9i7^jZY{V`(#LJ_{QN-$06k_$Ig8Y6=Fxk=EXw4!&jSswb0go+*Qwqz$Itj z2lgy>yHQumI{j1zjjvAsyWWc(V&U`W#L~J8ORn);b9uNIzRG(LJK0ixyN}%3cofcws;+$CdmS5PD7xwdW*VC59?fu$S`7?w8lPW{cSE;qx5P|Ht{8L($Gg(Z<|W9^%=+ zc$$qZe1)9Ph?T^~LSS((4+#m&Cp>O7*3;s(7Rt0d)LQvZ&t?m2Z*;}=tv5WNbN9u= z_usOoW$*pA>{~l>QRdn;`=id{h1ae2kfEE^kdt$J!zDJZ>g|o~=j`s`lDiuE7EIW`1>-zmehV+_gQtV)0HF_P}9fwkflGZ*J_XTN@uxhrRighI%%kYnEj< zjCI=in`ZB-7Z=v`c+-~aFTLTCExS91w{G3DW$)&J)py*vbfxwx-((X$@awzk(+lO# zeI^+8{Dpn|((pcg^T?`wO_dI( zZu{-IeJJ#AyVxeN<@@OJd-2%^JY_>2W6Jj`AHEM?!GmHwVlLsvSBO=_`j)j7Vl!fS zv9O%OSBTAt<(8ETeQN##_aU)TD71Om&jT9oX~K{KQC18LT($+>gPUm-M{i0CmlUEpJ4$nd+A}}?5oiBggUpKSp1Ct+;h{? zBTVQ~W1LmxhLme>L>BJ*vtlK&@N)wFX*}Cp8lFJH=MdouV&TWiorjC#YEwk+hT@z`)#Sf62ehMoD`a9+Cj@NwjhJCzPeS}GSV zkcGbPQfF&?@4c%i)*?0)`oFk$HGUT2XFDNdi$5O@M;Gq@%8x6*D+K)fuJPH~C1*c7 z3)|k(BpTDgw_!arJ;MC|?p&Ta#ny?f7fbrAaVbyUt`}EzhR46nAxWFVfAh5$Tz7u)yjAzyXQ16q>2ZGH@&CKyJfO~PPq_Cu%VK?E|DACj zS9bjq&y6#zgIKIv?0<5-g!48&N`C)`=XE$Q=e$Jf?t1uK*uJswY|(hE=nM}6mo}a< z!rlIo@I0_8ai7#S_Ox+zBsblC_UD#iiVlf&EsKRYI3l)P?0<8QN{`Bs9-Ag*e zI>ef_8NR}`*dw+{Y?GhS-)sH(v~l@|l%edPvYGVVOP>oYQvLPo&ls%^G(tR(i>zde%SbE|5omz4I zLvMJ4zXnBTr8}Q z9d!bzn#h-SH5*2UxO>J zZ@b|UTlTNJ_Q9RQf3W-ETlYR}Pjc(XL-sv%Yw>~CJ?J%OZ#C81-D-~B)_BGZ{jR8I z;;OqBet*X6a2?EuRmA3euixk1=QkcGF9|;%^JZ=N&&GPp;pWlWLeixn>8~5X^ax=>9T4=lR>~qQ4pCSI<+i@bJ?6C7TJ@fAR z@XAJ?7uM;Puuivxg}ODY)bI)0(oAk%^RoRHzvO86)aYEOd;i6ok1ovdG4)dz z-1xMi@iW_N7W%gE-u|%ihm=p>yL|Y~s7Cu;;x%PvlsU3cW_IQEPrl(vTX+9|)V&W} zUD!;4zaO~ZP_M{;*f+SaPI}K5YnI-W`>#3*w|)l><}BZPiz$RTEM(7Ltgowo0p}$_Q!HMoE;??{Dq1 z&)N5YH1bRPKA(3#p9|;y&f0&@-fOSD*4k_DvuW&|?FZg*@a?(rhKaZ3C*OMLE$YW) z?ryDMfwQonZ zLx054TWpt>Gt^gNHvRYO{*rrL(9c3Y>ga8(Id_`$-H_jt@l*%x2NNJe^ zv1ZO3LS9G6cTX?!*~!Ml4sSnD_I$89*!ogV)wha8!xCxdYz<}G8PH~5a=dtpyc?fM zbRx;(s&~S-V2k(?X&W~mcaObp|NXgx_Z_IpP24-aajX0vt@3}Y`^ELKH1>{=jV5<{ z$>+u=*O<5d3O3R)@|+(^#*=tq4(tqAG^Ufe78~iqw1~Hn#GhB79sX3zpHAl8g?&^H zLoAZ6i9GZX-!y@heH!_+jvtX7Y0KDoxw*5lCi5~Uv$B~o@-&6!Kx;*2e=*WRHhal) z=(8`coZ^~16Ipoj9Fd$TX3*SBDzfAtkF8^VR6UxcNwAh-g49%P@&74e4tuGdjq21&$M;=%9(qHBL zXx->^rS`Fh_Sdu>eBi)?xrx`0SLY7BZu0)z^nFuR+t+WocYR@F=35)KY$)W`5M9b) zErURoLYGTSIef$m&5g*Dv6oj$T-mc`k7UgrIrzE*_va?=8?VY9x_5G8Zn|QsvTgmA z*RC(zlX<`QlgMwZdc-=`Y^l=9lo_v@xNmafp?jw)rz>RSkdD+USA27va?7WYgRb3H z@r|*J+z?%gkaFQ)YPm?O#W9rVa*5AETHQ8NbrV`-E9KSy5c4nP4LMoo`Y9`afOVGj z)7C?;nJmvuubt12u^=Q;~i}L>UznCS$d9{5Abv><~X`Nli3qWZttO-p`$S$2jeHFLGUFtl%4~2FPVY1=Wk;AH?C(v@#Ev_pU2KF+Nj905+)|Buy}((l#rocec8n# zS}QoYJObYPYcH>;?U7-Lts_<5%CfB}Hovq$avb^z=x2%NfZp}b4$T&RT*rRMPp&l! zE03GxQTE#}uT+J3bolhjD;H<7eT_`&$)ov4&^LZB)=d-L3p?bCbe^g%x_;=6{eIlf z2^~6#ryGK9FLe9n@tc(K!|R?|`GRut1(}m9x4uxme#>j}QbBW4K|f|Z|9SPj`C5|+ zk(+HIdx6Ec^XKIFET$+KpqP^PF~$~XOIK!^2Xm6dS&8DjlffMl?h@$+F25Yd6$6!=;(H6c4_x~=XzyT5c2r@Jgl4Xti6r)k= z3sC+V%3%>(r#4RC`^<%<$MnB&VJWNs*$YcM^gkE<)D)XZf!rqP-=Ub%+++X&Xo#>9MZsGt9dB?L( zqA!s4i}!5kY^``;ajR&H@*krOQ&=t7dn@eGNuoEe) z7i=bl4T2p>VZ&hiQrH;SXbPJF+nvHrf(@mxd9c0|b_uLEh1~=zq_D~#M=wobbzqGt zY%^Fx3M+usq_CY}RVi!;tR#hvfZe=S+#eHQms8j=u!|{d4s0GwDyTl{%LTC0DZ0yG zCsNogu-Oz=^%L|_3aba3NMTK2qbaNlY&eDWfeodwU0?$#Y!s|Fz$CY(!MX!X&nNsi zcmdo$vvA3QGvF=Yn)?~2v%{tN7k{qm@HeZn`$wwAzEPDu@b#*LU#sc~mj7+Ns|?|+ z=bLuv=9F%<>hQNn_j6TaBtI}xb?_Tix$&=C+E~XBx!OBV`kSP$6u?JVFW3z*O)L7S z-h*J50?gwh;EUi&=Rdlh23OyP`Obo!2{7e*3QYa&>6C}?CGfd5@EhPKQuq<*D}U1Q z!xcBbIQf;Aj4^%8=E9uB%rlzk-oJD~9y2fEHQjtz_|DaMhckV$>$koJG4uf$J*`X_ zowA?9^by@NB1qq(eg(d>)bZ90WcEG$@VZZ4dP}a@W`07t>AD{)b&)t>DLZwimgKj{ zt7Rqf#YR3w3rFRi?$`d*?eD99nxp%}k;^kles!hA*%pbv?h}feY1Mi|<{7g9 zWA~xi=A)!Le$UmFIoI}zIn+DqhcIm;ZE4xB{&({8=?&Y*5n$=1u`bW8Ga_D;UVO?1A zikz6PRXSd#2Rkx#ClzPqW30$*s}@~Uig&1=JWu=O5ld-kq{5b-|{j29S66#=Wv>Kh#P93MOKDNmnu^Rnw~H;V0n}%;t;qBGtFc@W)(Ex-tT*aM z@j)K!^jogRvJS}ld?)xE_|8aBkAe?@RlfV`%F#RYx%G;4`wydLwxnc)`JFS*Tg+WB zs#BeZ6U|JJs!e|KhS?;pOpQseT! zeg8hD{(a*6=-=(D`d58(hVteq&(8yOU>Cv8fOT{2$22iS_;#JEPd@Fk9P<}6BTkl> z9^786=@V;u;JFLD-$8_ znSE(N7$$IRZNm)9kERUESk`1M^7H+68)uFeurgS~xK3j~@u9JxA~{Xm=+|TV6-RmI z^(*Tssi!{T&*?nlrS0m<=Kp>Cxi#d^Tjbx}P8+%Woqx&pX`1sQEC0y0*va&S`Indj zB!bc&khEWKtGSmV86;wgDj96U{-wNTH+RpM`11yt)ri9@qXO{3v)0xR-0XCz_MsRRJz+ z9;`CJl>QP}d4K_#9&`)5WDUH!0Dth@5o?Itbk9xT%iuR(0}!pxSv-f2`qdt~b%!;f zCSsDMKDOc}ze!rhcQ<(*{Rq023Wl2Lx<&en!^Fy(qOdt=fX@3DPRRda&LAQ*z^!4DP5BaYJ z`eyKX@a1*$0=eOB9w**`H|nmGVl6brOok`0r`o{6ixOVRQOWN=;! zERw5PxtC2CXHKokBeQE2L`KZXe3w+e7q6}~IUWo4aVg+AZ#%EGerMadGPhP`q&(`j zqCfmHGW+&<*czZ)=hn((@iTUjM?ZO-{@Yhqx-$I8h3ncfSn}F}*`}fMfpDBar@P_M z(oRgxi^rAU-$iySKfg{cV%vGiWJ9=z;`MWi*UxEZEPFEJRX6Wa4|bn;i0r!gR#WN4 zU%l#MiCv$x*+e*Y@BWQBtq0i3KvwHr&#t-r5p|^TYae+IkY~@YUG;1G$(obxr_IG1 zZnoUznp0{u$$Z&oDC0O~45+ViQQWT0=eC}jvz4QWnT%}`sYF1J4^l@PQJi{m8bUI+ zN9Q7pkbToO%KG)Iyel*;ODyY_ZLOhfZE9*mW*6IMQJ4HS84j7bZT6XOerJIiM9YVC zd#bg^=(&uv#M&Vs@fW_5oU^NZ8j7YVp=FEe+>ToCs*AWL+X92Z@d=oc}HP~u}h(~ z;_eYJ+}AdY~WtS65dColFnxzJgz1YtzbnR%YKb zwy+4lCkuN%wZECBh+Pyy6k%C>dJ7sF1By8O;dB51aDy~^JRLW zxRKVZ$>UZN+v=G#=PJsmBEL+Vxb@G+;fHfqU2Id<@sC1Gb=VfqZoFAfefL6l5jw=U zcr)Q+&i3dG)>Dr|SAHH}T0rOb1+i~9UUyxBZZmX^qRYnm9=s5T`Peusdjc5%op@az z)ujfkA587Y;U=bk$q^`CC*a72yXx5j-5hj_lE2YjsI1IytJf1!u$%{Yy z9z!qL2qg!B^5VOX{JNHSHYXF^*s&PB*u5Kvw`5L`cd@!*>v{|1vGYITS1cNTN@k8? z3#*csEmKf9L*_3z7becg4BHBGz2#r}u9Ii=H1z0yp-xWkkH&NCb2b;9i_@}PKO1M} z!w8~h8zi5xmt%RK&d1`tRLh)Y^Si6Ek*u2~kDWL0sc{XD_tK|gTKWCejYPXuf1Y9 zZ4ItglIikOJQ9(4+@}z=C>gpQ@?u@A6=o(K zz$urwQ?RpCR@-MFXv&9nsn8gaSvEz&MKs;vDweb(rQI3ZbWC)_E57Zwo)|&3$ zUu6EoPEB(%D~};Jv0-_o*6BOepSC?GQ7nFz%wk7jMFuJDfAKuB14sF@t9*H7)Y+1= z>t1}{;UCHF-#qri*#qxA_(S>e#)H`%o4J3*$?rLf(`vo<4Xq0LXbYo06wIN1P6RkdFPoQdn0zM4=hEw!S1v~~ zeBF!hJ^Vwt1MfcguI%`xiFalv-*M>exv7Tfw{?uYXMf`p)Yeoe*8rNNID9Awny|6H zZhzz0dz6K8PzFk`e0x?WpQjGB&+y}pr zoxD%LaWP>=Ia|Ar9*Ty9l-%VRiiP13USqWfuz`ojHQfEnZ5M&NTwfA~b_a7wKtscHA0! zO&TFN4t>p=msk1%dh(2Q0NV+oF(CUEO-=Q^Oqx7te0}S|Zh^Ic4Je<)2N|AOXK@wv z&m*6p+vVuo91xx(M`Lm_Qqc|*<-e13r$~1*$lsnz8i$*h%qAOwZlXSVo-qC~=^%w= zMk#1}@;jltNwZsd=L21tm_p9F@jRFHz3)!Kb^UaMwB>JEb~+Tv>-d(xAG-}qdHc2q z_phl9H$gK5jru?z^<4|tUa&p^Vcl(|%6w7Mx6J@mI}bsB68b%kXWbqT`L2=!%-HC0 zs8qg+P?~Fp;+=kTh)r^va_aalQP%uhDU0i(x;^J=q-QGm0MGHZ<)ZVFtHB1qPUt=# z*rcQZthxcYE+EqLlQTKkC)s^AkP9i@z9ZS~RJ12G()(49QSv`Z{>Eec7B&r5_V(qX z^O0x4Hi3%F@(!L$b2py`zSVu0Jnt&z z_v9RKhOCsmEpl#pq;)*=I9ttdOxXTS$xF4-W%4S2&$2rUlHY2VTVVUZ z`W-JO`I{ap3)SmBo#UCO&a&Ok3-VO|ww{H64EZ$j?fD@3M&t5IeV`ASe(LpGj?F=@ z@R^%VJW860_oCCeIVe>Zw5czLNiy0D5@(=iIZgV3A6fQ3pk!RRGZN)v?wZVe$}2S1 zdc_`Qd6#*_Krh=zzI7jh|KGQ~a;l6UKHezVGu9@JUvsO|9(`iY7Lso#bClq3)bJo^ zqvF%&&YPwZlineW;z-GiWG(^6YA4XpM)bh&lBD+~yL=uW(c5avHJ72yh9fU!~Xh5MP@)lO8=Xgu2 zL}Ou?GOP0F&aU5+HHy4Hl%=2(Ms_QTKIxp+3Ok|YL!6Fu?tIW`YwSDHuA?2=gxAh? zasA&xwX+rc>d>zaJw!!^nP-yyRsD>+_GKTt5bVK|kT!+6ApMw7q{waMWP2BByGYyD z!TjLHlclvYqwRFxHaoFXvfV7|K!s1Q50aJ5Ez{)JQdnLY7LeHbW2G8CDz?qGwc6aG zad!s#ebAfC3;jpTiLwqN8H0u3oy$JnE2)?5+m@rui^T9e z0-E2!CCX!#JeJ7gIM+qbhOaxAM}o(sY29Ngh2?RBJbJgrvNov)e#Xq-3e>oqSEAdz z8l~edZSPytN70M7GoNLw9w~Wi2eE32Dd{6yhkNe)IXzl}28J+(sfJj3!LM-ce9i{V z`E!yNvy|K1y}VKg%hkv-(>1GQzdY-Gy=DYO2lUJME6Q7<9$U;EO?Gy1)qQuue>=9A zyf;b;5P;tmkxSDclYwbCUvhy`sJiD3t%u}CZPb~X$yb_)ibBNm!cFC24@}w*O82#C^ zymDjB`L{!HtGi`|d1ho1In058WaW9*&HdfvGyim~b0)k6kJ||Vt`0F%N(POPrlz;p z4naOxJyqfOAOL8)`5uS97y6q{&YFBMSBp8GO+Lsqm2g?{2`Qf}x<`I}e9J$MuK6r_ zpvyB^%eS*dwRTZ_rdNj+F}`sA9Lq~_Icu+8blV0nl`%*e`=0whSH>`9%u`0~^VlP9 ze5BUivRdwU9wgsw9dgfZlN3=^^|nol{3o3AN3~WCkz-a?lB7-%>`su= zEk%>-y)>OcqU3HzR6k^fTG__W4eBxQ;WgUMtckYodZ`~YlnUA|A@IcFSy>kN*OGG` zH6{x`i~Q(EPgWt}oSVp<)&rS*?0)ghqX{KGD>-U3VU1)nO`c=qdBx?K$TBHVu3I&m zxGQK>k9pE`y^wmggJrn`>&G_icxeHh&DI%P#x@*Sf3QrC)pgHH3wi;F{}tSEw>Z zp*aps6pQKjc|4Pt*dL+5*y7QubNs{NrB0K6r@r_RPnvc{Zri6wLbcP z3v3Ro+z^LVeG>mf3abY@k;0n5j;F9Lu-O1pfAoPJ1B=e$Ovb6V1t&^Bt%r$EN|jES z{4zr^zDItN8^_7><^VQ>lhwu-_`kw;WF&IKb}!hxXEyaRX_r10`=nfbY`v1k)>!PN z7g;Z$b=AG<$mAC@Hck$^RZTsbhmhwVPudj7#Xo?Lf)5AdJh6Xme##V2Lbk>eK4!@c z@|q@}xk2n`b&$eKEG9#Co*8zzI2h@17>~(VHl153D-PaK3MJht29@?8&4Y3LYV-xg zjbyel$&pY8p2i6(I6I*TSTjn;mCB*PT1>ElyA_kb0wcy;Mdr8c-_sayLe+SDTKJBA zivImfN>2LKVp~`#p5E=0pM+;Dk45r0{@LY~)2{7i?Q90y%ajifSg@U#nKf2y#b>pj zraoU`4T5WYHgk2YFOHTS{#F^=!pg?JiA)(OJNS*V?D*HqCcakoNxg{3O`J;GOWGTx z9aY+#Tc^b@Wb#Uk75Qj$Q6M`M?g0GVkdKkJ@YUs&O=bM>>!~t_?c9xA9JlwlX6?*i z+6rGiZOaB$lO-NPjttX$-Nv$!{y$;%Z$HIVeFnMkb!^!6R(7<8n)m>;l#!JMzfG$j zAGKEt1*>FtaAstt&n`YMcZtcK-IR0cTZun<6UFTXn*%Fw&2#&4ZDUz&7CX(kEtz=| z`is!tbo5SVBSJ%47u@S#>`({Ac?`k2$7}=e&5YQ(e7Z21dV2<)mov#K}Dgy9^QrB{`0Y~Y(DeiI}X1+ zd*H1H-;&+mF!r{Ni8qhecTK+OgL>ml+qn)Z5Nq5U=QAP^trE$sk4`2?Zj9GYyjeFp zC*RbnEOzS8V;C=0dVb0t{x*JI$tgaVF;jiHn46u5zJ^Lb`H8hQUo4_vp4R};- z=lz*l6TlAD@^xfmw_C74v<5Lqnv1_gpDPU?l{XBww4b>#z{bED4lJ+KJ!E7?Hv_i$ z*z(Gp_>zy(o>YGSaCv3kW;ut=gH6vZuN;vb!$)%ZlJYy1%yYu)_}&7q1K0C-e#7oS z1$OZ>0G@}Y3mW6wWPVS^dPFQ9AA)ue+TI{P^Mxeq1Ka}Q`anc^pM94dGPvbm7myB77cChRr>nS#tQ=NL)!3jYSe3wpdHYssXdVg2kPjXqhD%3$gLfR9gRXqYel;6!bTQoD!EI@N7 zK0E`>4QP6lPr`?`ie__8l;I$^Z$evthP4I9Bav>QutAI8Fy+S-jDjLai4uB0ZFdec zglx)kvelokiXY7f#sjlg*`GY$SJf53)Y`i;nXxrrWpNVHCUWRyK$vuoakDl2o z7h`0kER=)t+m^m@;PHby#=9pTo7{eAn1*~d-oD2i4JhRgQ< z)YwlRXg>H8<3B#}W0OsXest=6(?6no^cr7=hUpSd2lTo}hv}4&+b0&+_{6q0dy2Xi zF5!c8{gaFpdv9&lc0o+i=%%wXETa)z@j;8QW7xR?opM0R{pi}V{>${wAH_cBq%F;9 zfkOV2II!5)B3(_B7*#9jC;c?(qyBY1DLXjM;sfKeCnFBP+(gky<`3;k9hiLk( zA6rl;wd373imE9qp4MOa*FJ?iDY)BXcMH_z1a-;3jK4OlzXYPi5!gDF3CRzouM;k>q<>u?uR;TD_KIhDy&F3Eq4_9J`hlylpC-{ait5s*n)qbq z)Qx|Uhn{IK`BW|c)t^aqS|qO%v}+j9Foo|JjhE`L zG2UNEY%^gEVD(_S)<^%F!Rk_2H&|^7>j$d|uzu3+2CD{JTBU!u1KPBP-68)2M|VkE z^1Qc(qd}@i=4a9i#43aDMatRx-|;1s@uM|5&(_}JlN>B&XG;`PzWn0N-2Oa)?Y#46 z&jmYSFsM`o@CR94z6Vuy>Ym5+N=rTC&acx>e};YP=C#O{w(xTq)OKJ=L2&{+W6?Uo z>J1|<+6Y7v|=RL&{NnYp#Ra>+fT^L1qHw5j;;mV(ZqOqVme>HsMn9+ml>+my5E z8}LBsHNW36l7EtBc4&t?q)n%B++AB{zP&~{T|Cbi<(w$H=H-#u4{b8)6K`+U4(A%* z&|N(9Xlgub2FCaXyEfnGCGu-nf6eW0i1a^m(o4K!bZVHQrI-uz7#eKHXUG_DgPAM4A>df zCDdR*1%`)6!kut`ZPdoH-ORRPEL5@b_T6#nYe8?*M9=jB9i z;X6ZK`Pb41rToCAY?XRqvvu-9Zp(Wo=LRG*T(s)p&WE}}9(DJ`d00PNTo>!!&j#mb z6AhYY6}&?4v$p>KIeZ1AE2n6EtpCAoq_8fqPDO?SB8!u{^s+}}gieca!}{nWb7M5!${*n-=$5z|-j zmRVxIQ3G5^LJ(x<_GZKZ1Gl*^lQi1)5zDTNlwW!8wUrj?qE8*)8(>Xfy97jj0$V?M z%8g#p)cia)-yLY`p=pNZA~d~R7x@5@JE#=a*`n)*u4dz%=_JSYLe~x5W#t$05$~7X zo*JJoby~=_JRw%PaFGEug4UZl^v-DcqHzh|UZb}#b`3pQdwB5zD z$@mOtTcAA#?XhB7xfLv5_R3klo47v+ZDZ9n@5>9`r;sJM!}$ob`AT9>WluxD5Bf$Y zpA&h7-{N5D^H6%ZE*Fo#4r4L~V_fg{ZY0lT@*KSX+Um1rHBg=CRtD}0di6{Fx2X$h zhPV#o)mZ6TX(Gd~3eugVTOeJz((w^541t{iGv4#>aiBn*K;_#&bQ93ky#Cec=AawA z3%bkDowy6Ss=bVt>Q^tf3A*09pzDL~*j><#LU$87{;7?PH?;UEUQmaqebg?q5bS*5 z+RE@6bgcp1B6P>0d$o2h`9(5%@YU%WpzFB{x^C!>Ko{0e+!^+-=84_V-Gr{*>BfPN zSZg-nUa-8j=(Z}{rd7)_p9xfrh~*P+usp$A6Q}QVX`398ZpnrP{p9)!!F5M)Z9H22 z*BJi~zj~WAL$?6kzMwDU&QzcIzR)=6hpzdNLy zGyf_yN1(X^O=EFBD6)xf{1h}dUxnr}G-b7S&Zlx8&jXG1NmA!dUzVP)5t>cVc$uc> z%Y!w5**c>4CCS&2#GadKnvrWgrJHKJkC1-i4U8G5+d4g2zHU2QNWqPSH1@j#h&{`% z;jHT@ijZC%@yP6+n9*ybZ#&1%6Fp<~-+=$$SZwb!L|6^?^(pXe2HOYS9ydR^dh5Ak zKfRWjzMOh!dl^bmD`-57lGmxah~NFZ5RHc;+@In80{4$Pd6C4m*_wD;yvMlJe2C8_ zLpqrlwRq}RZ+$byTZ-jd3^uUDxc4r~p(vU)bEbYr`F8yhb$m1J=KO=f+PRtf?K1Uq zcJPDZ=LgoRW9FCEsAS>}kQ)GY^tDfJq&FTj_E%?AK^-^oy+J(-4cFX$vxLu+xN^c1 zoC@IR>-Wf`#`Cw8+h(zS3hcw@7A^P0L43+Lazf0Kew6g5NZ;f5J6exR&R< zQSWA+bo?Ip!`qT~Mads-4z|oUa40xeK@vcbIy2E9f~d0-x3A$=NRf*yTIh;Y)`&ni zA{LgJBY6N!`JR=e*)c9vKjg&=q<)zReX*)Pwd^eS(8Oy@B=Ya z%oYC}@!D-gO`w;=)D<6yIzWp9{XS>vw3F`{>ecc-{6K5+zNrAwKKgcra_XJ+wie`7 zgrc7x)?LRMk{jaDP2>FkQS7rae#G%;S~E^U(d=BTr*!H}Myoi!hIGbStH$Cjxo@=r zn|Lyb=ZLUk_4`tagW8nTGc_*RC0iPFSyXhYe5adSq|R4Om%*e@2fB&E zgEtDQ<6AS~Xj-@qXqX}rnr3Lqnj_mfk)tuq07?6xse`7{$-+d>wYc(}bXALr;EbEc zS8d^cdMeX-K~_;XU1q0(b-#}LgWT^DZFCMyc)x}F(|1VU$Ne+hm%dPvIxj%& zKg|7G-0#u-Xx{gBp!d;ACz*k+;ir>+6m}A|gQ}y9l)0_L`VN+0bk}OD%aqZO zP1;ZWaSN;t>?YTG4n2cAMOyra1ylGc?8PL>l-O18eW*$!eXbL(#AqTxd?_$i*B*!&bEF7Kgboz$1tW zQew+bZ(fdQE5rG7otkz1E#BaB?!1mv2tf<$Fxn(bgrszR_rur`~*-`Ps17-D4K37oi3dX-!3X)eCA@ zMo+ALrPPx!eI|Q$k)^a&A1_cxb!VyX;8U@UYJMWWR;9-g4=zA63XRF!XkOBp6Jh}Q zCgh^Ci4NK$e9QhO@)i1MKe4l0a$2IaHxAknC#|wu?4@74Vu-%8b_kfGLdQcJxHaII z+Z!ldK3s+f9@mbyr#1Oc9gjX6%|q1LCC>NsM;?cxi5GFQgG`p9#UJQv8bMr{+yc4r4k|9h%f|D*Tl z3$K+17LZ$fVB=4$ERy9g-{xP&*7_iReOHFr|4E1`&V+(i_daTZ*D9w8YYoQ(>l(1+ zohT%5shlU#6iWH(?>Xu)_@Qg=9FXuinXrR69_ia+vywT|+#t;f($u|%AECddN83lY zDPHPvJ2m#{^XDQf#51YYUQ3V3(InPMyezxb?_Av`uLmde+m6>~7{6y1JA>Pg>$Xv~e1jLqXSV0gqjzL%lz zg?@x zq_9!2dBl0Sw>tQYjEs!5#(qQ@Y}f zZ0W-a{6Pg$3lM7ZvFK9&b?dQ64kq%h;#o&Y(3TE7uwLhX=$v_GP2tHa0Bo`#tBP)I zvFJQ^{^_JtAu92C=5k%LjoOZ(>cB+T?*sc_I3v4Kb zRsC(oQwpmG8%SYIVErkq3#>1N^?~gSuqNua3#=Dx5B(X-CQ~`3H%mSDYNj@=_-hvj zFiYC$&k)Pu(k47w?C%aDOtk?lc72z$P~;8r7~OSkWo(_5Z*t2*)$9d29}CJv_HH?w z=^HO=Kl{vhS>fyx`cooZt?BO|V?TdwrMArSNbI_TB2zl!HH*i!W|8U8tbbvN!7Ss@ z6!-YlP_0>*_z2zxD$b$%ksaYXLbY$Cvxt9KGK(q2JI;ekETJRPo4u&&#k zY&MOuk$Ka;Ds!P*6qK>$B|H1}1bJ3}Ic4XGhw`$~h^dV|4)IJT^Cl-pgLq1MQ0sVR z$K6_TN-P(iICPw&wzT7x$K=mhp3tprcFiy+eI;J|GMQ{=0cj!6dcDHdmv=!o3f(>> zOl$=4tjTUE{L;_r`5uAx3bb9KO?(VvrO5QZf=Q=9tNSfdGW0JxjV!4xt()eLK$X|Df zI?R0S+RAi>AEA!WDc|gN_KKg?0F3&`Wv9ZECXQLXs1A05e1&U0H>l&=&hX!&gP02T z=j@hoHvjR{VP_?$_xu|3**B84q&l#DV8_5(xGw7NNN_0KacEAb(wzo7^(yJEKyxvb zuH^5bFN5XN<>8svGaUi1hvpVEH(Vbk^3u+@$V*@1bY>bn?y4ds&(x*K%oFDrKVe75 zL?TdZi7F~9qgUJ5I`wDEIcE!;rj9+|OxjZIv;@|j!j{3hQdk*=U;(T~ zZNNu1R1KK&8xauljJ?B%^97zrJRq9W3ee9$&p*+-Hj38(ZO;`tyljP7O&5EbE;T}; znx9M7PgVB`uxhYs<;O?Zu?Q3V2C?tKKDlpT4Eudv)#4 zZ{v>4RqQRcJ<_8HJ`1`he$))_7;2 z8G99)GteA?rlmNa*dJR5z6{ODJJd&YsQz{4c4$`VC*~X@_S%*(V_%rb!2)UON6`md z*(L{REt7*?U<1+p$fua-EyNynV>@JWFC}p|#Le{t$M9(0i-c1}j+jK1aYFh1{MzfK z>gz@BZ|1(|Y3qNm7O;?~O8$YvJe@s1SOL0-_mjF3cO(vuv?*DO5)n3D3Z$7J&7gaJ zZ;!0GrYKpn8~O$4SG7lnCaq6PeejPQ9!OE7YP68g9QiE$0`@-F@Q&5hoz-z5voqW} zr1?6U<{XvtE~{_KW~tA&X_sK`OwRk0-R*Tyi)M`0P{Kt(Sj>@>Fb$XVkYDp&=0rE& zB)Xyb{I|urVe3@pLr%-nro^a>;$W7rkT`gEjbrlN2FGV)(W5j5*;PDks%K{s6ceqp zux8MsHv5P8=YNrY3uSvOw~E({kn^pR?3kkvw@%}98uKHB04~asUh=*4*UjigaZH!H2dM>Db zH>qFGKH>q(_)%m>ChrmLlnL2tXWi|kRn5+e{WpOXDf=#3nZMm_Z^4Odn{4~y%y>ss z1o}B);y2L0#u6K@nQ9&bYXMtpT*~l|#--Gj^boau&{s%5668siHouqsCj1Xxt%;=- zhosg=ZF@wU9HDYQZc|wQ6I#n9ES$>2i^-$j-UFKXo>6PHAl|^Sn%b6Q&Edg&D_gw> z^y6`hv{0=X>Ueo7UI$3Ue`FP=5xi66vot~Rk%uP#$Yc2MwfMbW!gK)gPztLC8vyh3 ztmJJ2SU=b%rO7#)%FB1mXOwq~8(T%|E6*mKWJ1LcrMT;)OPO>fE|$Dz zRQ}&2Zu7PLh}T}@LmtC`IqQGF(5qsi>rjw=LhBn0n2#u=VC&-9%(r#%C5=N4aa=t6 zA>Hq?pF7Sj=JhLgcJWjCkDf^tn*J}oGw~XDBIDd1ZyCWBxc8*&-!CG~+017=f9||J zY9i+RXtg11gh_TKCw9^2)x}aoB0bIQnea&_EpJmp&R`@;zf8S z+SU7ui_ULVpEp34Ptln@l$UT_9KObtXwYw6EW>6FXsczSM&|LWZ;bA%>4DbchD>xWTOQ|>Q6`Hw51Y&4NGz5VkXPE>f(QU27=8b2@E1ysN^4k@~8GU6Z(N^NO|uJJxhB{~LScAH{JC zUf;D-JjC1Hhoe60hxR12dtEzO+uM1C2g(9JWjNwo8PlYz`X|?l&S!7ipDbl5!b#&t zvgQ#vge*oX5`P5o@$hmYL&Qhw1uxDp#yuCNqV3 zN@KbNcQc6YGLr?WX$y6@NFB~lhvQu93GLameZmxc30_}psOu(Ur-@|sC*k$qPURsX zY5Oq3Jhb}f^KvXn|~YolXORdXG-iPW9cZJIfV3t#zTXotDD2FUL#$g1gWq%%@NWJl4fF!G}iL2 z{o*uz&@GT=ku)bY`Eq_n=Eb)jeoNc_`mr}3c+7WbWaWS@M#|um)8u*M-^S|^rXSmz_LNh5e9nT4Le)|#hX9B>Rz)8w z$k_!hb~EWAQkO2^3cNG9BlHI{*cl8yZL3E$h1%w}+h*lMtj&81X{0V%J#m}HIdZgp za{VcPNmE|tJO4ZQ!~Wpf$|)yn13RI3*Xq-5vanY{84DG+gs+PoKAwqV8)%H!6}+nD ze45mnOnefHY(9Trg=n*GMilH7ws!T_$0OWXiGZo}9y<^&ND<^s~14 zVw7D@Wo24cam{KzS|-n`e@4FF#h;SSvps1)?GEnrm5Re`SG9*Y$sJL*BUa0K2tU~v zy=ZRVqQ;B9pt$YyP=PEPiI& zTku?v-|e5>^TKu?=F(a8*kS*8QUW}JtQC5Dho7EdhKh++^NQs4C7y3_37wT|hP?SE zWiV<_mJ}B0EAk)czuULeTA_5c{{kE455NC(J*2Do9=3W=p4`Y`dE&lwd3#AWN4oE) zp0c%0k#6AMC%(=)utn7!Ebr>z^)sz%NM$N%;d=|3F=$S>e!p1yV(sBav-=+zdpLKX z=HNrw@dqa!$WK-udi~V>neR~F-~>VQ-7D{wQ^=c3=yrjQWA>Q&`s@@!UNmW^QYG_E zY8l`t`HYfJ&mXaVw~ilvPLNl_-h=SC7_n93&h2m6_R@DXDQy!U`QgBsRF2D$?*6=) zRb$dKn*_TJ3ADjiCH|5t&DPQy|0Vw3%h=0dJx$C=(Ax`M%^9;pvF~4{iYoDOj+u0G zNTeJU3tRsL8t$FEm*Fl+KYwAVOSzW}(PXEo*Ns1BO~1_AFWP&fD2&wW8Qb;hu1_(8 z@Z^3P6(bTKO2Gk=a`1&7Jc>}6&HoQ;1y|8$ipsRJGUXCXUJ2P@@0sjltkO5G2&cAW z2rr6Db<@!8!{BTUXO=Q+UrGFe@(rB=s{t!t&yV(vbN0@)tPbaD8+%~?gSm;b|#M_2RHFg7qXp2wh_fmZ69 zK6QL&z>b3T3P{ouSL;Nf@;w91MQAR%v1t0Nspxqr>tA35d)>S^u0&;)pT;-(XGxi= zb1m2~n8g<+>-2IiQrE=BtA(}zZU3LIy$-JY2e`kR`^r}zVSB*#ft4HLuzg^A1FWBW zN5MwHA|L&*I|o<+%v%)M{FM3d6a)Pf{mKhx7NZSHs$(1mFhl-uv2(s9=LgO!0@jXpu~Tzo6(@qMPj2B)o-f{-xVD2AaU+W&Nn8921wOvD zMo6q&#GU6^>m8w<$EoMuzl`HmqxR6_*?Z2Nw^I8*W-6*sVPVK_JA*f7xh4+Dp%gN03m7&|uPsKs1w$pl-Y@eVnjbeJyt*K2mfl%+DI8S{}wr1e%;6IczJDxvo*RDM!SHR&nCWIq^Y{+`pU3? zNYC_op4Tt^o*vQffxZuVjTz4u`8Z~YNlID@#Ym0~KynQFIp}-bb1#>^_{PI;$nLKl zdo+9Ck%JFsCm%fYKz6En`t@BC4~^G+YEf@2(`@UNj^$F(igdhY;vrFsSeY=bWrgvd za#U8$?=k08Twlp+PSs?n2{5avFQ+LnrwK5p88E9E@Wa&7s}9l3er**bRlAsotThje zP}XP_e8sgs`}j_Pjewolzz^2sGB4I2esgyJo5p@HccAXz4`j#RIPr$Z4m~73pN{p+~14nSNNgbVZJhaD1=(sZuGFIZyYT^La$6sDkFWO}~%- z`N8Y)zPap+nZu=RIDj{A{5o%n;hv>arvV3RJrL`1Si?M$QC`dhWCD~DcW zrkgZ!`q3(~=xysC)}FXe=nu7V?YcyLmLItu&#!uhWw0w?;_;YA#bSJPziJ-4;12g2 zxnKF{?bCO2zxFowtH^(d`W@>%?W>+$&v{4BZ2p9Qd@y}QXVZZ_BFwG{iL7Ja|EbfM@4lQ3k_ zrdq#dt7-bNRT}*5X|orWwrE4H&bTa^X4lByQ~(igUp*y}l(9P?Arz{|OH%RspuP4YeOFQ8RFc0qsXEyxV6 z{il(Oe(;*NUSECYPI8`|?Mm@$XH}$`AWeZZo+pGI18YfPb70LWYyqq(g8&~0qb}5 z@ca?R=E6-9TW)?Fgnj|~y^h}5Co)Zvy?)W+jPsXIL*Mwe>+YR8k^RB?DcT_H$8Yz> zhAu&*smC{G!^jjPjx%XY3g0u$dZuOko5?^m2$L)g2x{vnTy@=nY`T9zk zYjdY7*|Mk>NT1T$=$CA9-0O2idXH2i&ejjR^a-tk_MctcqW?}#E>XtNPsjRrVt2jD z`d&4*-U-qjp`L!ee6{tx21vU|SJ#4m?$UXAxN1#Y`t@#T3(!V>M8|W+KZ@b_tY+nk z&)8o!U&l_2*ecVIwyg`1y;hO^&cYV4{g9>Uw7*-~C8&B`qO7J|EO)J5tfQOMjeH~s zR3~Gq&NJ^ody(Hfdm62@7nwg+)CRq=8H07Dg+}KFuJkF?3E0tqe zI}aqfj6m0KW27%{i}jA~Ruf=)IvbGo5{`b3IgK4AsJtro4C!u=E|RgX?r|)qy?<7o zkR%yfGcAzrHf->K6K)EI>}qwY)q#?eaT) zXz4;{u}*t?Ka<|WL<>3Bjbn*|4kg%XzNTLL>#n=(+Sw{6sZU=wZAIPSRa@7=n{2jB z70?p*hq$k6ee{1BY%qnD{UP&n3abI@Php$DR9=nc=6o|PV9KvqSmKwJRcG}W2JVMu z6q>PB?UuDBlmC)8N#O$a!mhZbEW_5yWeblT0j{qG)omr{(sW8&>fHTBl%wo})H-;NbAW9s z(}@yMvn6Me$b~N*#fK5OGfAG*^y-_~*|odK`@{>^-M(?2PqUeOX_qFzFqC!M_=fF@ zSIM1i8{d%A)f4Ct`iPfLlF$4{5@uYSd)kneq6QAP{-|C&|ZXA&l}Jdttr%9 zgbzN-To|-NvZnB}G@hRiR<9}SB<=7(VsEH^LtuNr7>42AzmJIvC0TvkSS`1wp>6!w z^)>g_>HbOX=eggz?BZF{oFq-9 z^5&!Zp8`9P!WO}fr?4wvvnj0PKVtu-uxhZG6xINCG=(*T9Z6x`VAEi#mp+^M_Jd7; zjSBFwbDGX=FPTL#MK%Yb!?Bai=hLKHCf%}2m&}D`=O!`liX0554v|;$T~hsiCaH^X z)$4}p6X3$i{}cTkVB)V@uzg^gxTfAVzj*(x`nj3=%D+YTBm0zi=1yZ}VSJRfAG#CJ z6$C_M5}PzuB3K)ClLfa`moexUp|24=AJt_B>=Kyqauk0L+ZnIVaQ`&-Z*aeB9Y5r+ zZPlv`vU>kP{^08l+@GJgZ@g;9RAo-@LCAc_De}w_7kF2XlUj2{FGEmjr|x&%o*;@i zT}`0Wgq&ynt0vnfHy*loN<6DJ*ma5a|HSo`fsEBPu!GFbaEonnso92$%(FybrF!@= z`N3=rdXBtK4k4%AbI+H)_{iahv-@kt9@=v7fddb=O}u`*I(z7KllNz*@0+Unc>LT+ z(9y>EQjsfN?2C2Kfd>yhFkU_J`pNqby>6;%`aY3}uQvY?`od?DF$iRPkh{S9z-I-7 zei;i3u(&qcqoD}FkYC}cs|Py`=4Fm}x(VzQ*dDGuPg^X1;xXYZ zIpQqGzXQ-$e|GJ$BpETv{d(@7a``2;8u7c&-xE7UDq8&|bgJ7N>1Iji+e6p_*i3-+ zgIxwY3bxm^QDWoUJDfgpyLUb_1fq?=$SsL1zffj}U$_VKyZtRDt^2<)|939{rl#SaV6&wP@Vb8u`}$S9GPX#yU`9tDEx;|B!-I6IYML$M%wD;A?RoB>a|`uojb;7=;wX zr@(iNv^T%bcyrH}j0F@gZEmri%2mXjR&*&V!VNoH$Gb>gC%?fQ=-S!)B*J~E$%xfr zrR(~{`IH=+CeuBAx6?tcox1)Q`S;D3SCV!zW?da4FF7(ynrYIE=;6KW(h{)wBeB_8 zcZr(T+I1HCW#~^k`k_`+o~1Y28*;`sd_ax?KgJ62wdBGT(hmPzq7O7EkN<`q2DZ!P z=Y1oJ2{3(BMv-KgWYi{TPeHpcpf#Bn*idmBMJ=Oe>?d9Aw_;zYmBIW!R;sW#*P^lQ zrE39Y5$bUPEg-PtL@Es9xA8(?} z-O%?#KgTuCl*osV#yk;Q6>66m=x;!8Jj-w8aT2U*Z?xVPmKls*KR%W23iS2Rr`pk6 z&Y|rk+M1W)d1$A(rhdi~h#%X!5%jP1SsvOMXv;;*NA>LmJDS1`hOB^Uy5!XY;Ov?1U3p5mT?noB!yL8MLwjkI8gY5?E zD&t3}=j9cqn$=nCk0r6HUt3G(EONKW(dKmRSOG1%AI671c2~J=aa8FrYpSd9dV~6x z?;|EEtiNcp+9#1!)!P-mYVWxEnDf&_0pv_Bc689soLwYfGybLEg5?Ie z?K5cqLKJ^#YPk3PoS<&|meFtbUthW5>K4VZ+Uw%{F=9IuO=>4IW?Fd8$l>IpcyAv+ z%0V^Bo(dCBQHZP0*!CVeT|B(4AX-o2k3`En<@VI-o-numeGMIVBH=S0$L6el@N)2B z0pVD;H7d>+k)9sSSvf_5M%Uu;Bc$yjt>^n@u;X9_u%j-&M0aY_#A)s^3HwAs1^dsH z&kfQa3-XjaD8J4a1{-jBCUbx}du$dk8{O&`+2|tGe3d8dB54QHY1!j-&|Z?`5`<~> z9D7JtHTnO}zBl}UT)BQ;UDK{^gystL7oqPD=xzQ^tfOT44H~so-7EY*l=P{v z&0ysztN>P)!ghj{1eoeP1a^x$EO71RYO=QUGjyBRU09lia%`OHNl!{Gzs(KEs@`mBS}1puw}4$FkS1T|7HK3whOQpuo|$_V3J9`pKS6o9W3-&g=@@- z|Eii~JISNvmlNJmRw{27cvFC@O-I2tgJ~>Mp4Zb?={R-VJ`QaG+TLQ?BERh-G$YU) z4QzFIkuJ`ZWot%=IbmzPG?Gf>kOZAEm9j$+!vV z>cQ&47Qv$Wc-{=-e9ZUJ1zpPw^IRwc;^E&jUe^6?t zIom|pN62&VSD9N}o{29bu~qSEgr`Nlpd%jaS(Zq9Gl8-)Wk7cl9VEY6_<1E}$ z?l(wDR@eR+?eX{Gxa$-jeJ&V7F4nvY`o?4U|88Gbvn$Ob*M6WJzm|7Wu&1;5x`Of> z`5qz9y?>vW7_NPNQ+~E22n3R0z6+!&|8-(3)?1pyZ=Ui)rv2t_+v}%R#Uid!@#%lk0-%Rce*4=xopDShCCNcn0dCz5DflL4A%h7ijPlojsGdP7=53 zmV*@sDl;8gto^D}!y_X<*k_>?UGk6XlC1aYj&yv#QRQ((3Fnk$UOQZf{gKkGyC2k2 zZ`PfVtl#>%Ri*A^RW%{g%DirIjLm@VKBfSk^If)JFI)jV`awoq3CX#i?YjP=RxiOR zlb{DKD%?TxJMEh0&^(vF#e8`(>1!bKW94j2r8)w5?nAm+&gIp?q5_KIS<2 zHbQ#^+8d6)65ZQ2IG6*Ha}J~9cFsj6f6*ZX{tU-XTJv1;l8T5%k#(^Z7`P*SDq~co zj3tM?;_sY#oXxAQx6WlNwAs$ZYE_g>Q}4^vyWyY3YcBg(A7T(^<4uc?;WqQ5$}HF} znSn$lsOuGavW;l0fTmqo8@J`qm7js7dol#YUb#7LVxl5px+C9%fGz4{JW^aN$8J2AH~pJ%)Gei@H?~P zZ=HCH3>tTCKz8iy``?i}__hNL`9p7>tj|sV;MAKkzk;ETh@<&U){C-^{3=UIOZrZ) z8Z$-yxkhOALQ@I7J{oIzuu(9{?x0;(>8|RpA!w(ey$~&MRZ+K^($bOz==FU1NCs^JTLzP@6+Guy=^Fkv(eH%5?BA?vmsS2YWjDchFZ5N= zFS@nNWbH@;reMAq`Ig%3wORvf#m{WxjBN|Uf!}=$&Z^nl?}6UFRt{hI&cfM6b|q*i zYpjY`?a`1aE$R8aq~Dvtn!&okhPkFa68*^gH6+<%zXrBZpr@*R_K>1^dL-nWMwPS&DgOG6=z%=7UC z5#MkpC+E(xooUj>Y~i!l-cwL@TMy>nODs=4gLJGiM>=0btP;D2b+JY ztgN)8=HJ1mEi<&gOSd_>U3N#i-e(cEay+4Gn$;_KqUUo4h`>hLw|YJDjQnP}_Wf>i zQL>&MJc+ZL3ZyCfZZbY>{DYN%-3@P93*SL07(5++Xmo z2?f!L<}x&6&>ZF3_i0EYy`b_nwBflp2BGMj5dU6sO=`+hPpAL2q|1|ThIHM^dyRL< z^>crb`;wW&gIT_vk?*b#XoUMWxgW0g+Wss8xbdq{OcG>huPAuZ=5HF?ZYk`|nj>Y? zXn(ueFye*FlyUTYu|LTCj^-2!WkxvGkb$JFXY)ek5^|U8k{!kMZvo14e<$~&bIuZZ zl#CZnd44?Rj^t^!+Dq(J#wdAg{=>D~sDb-4-0$K3FxP4iJv4i6%yX-L*a7Fs8LDx& z0PPI4gO1kED>h4umW52C)oqjiuPr4$HW|AfuLZvdUM3*=h<-EpBDf!ax+S~|e0~kQ zAN+I*S3UQD&w<~Ke5ix|81$--+QaiOaw!fU)0mlu<_a`30gcJ>=V4eU!ELfi7I1jY8iKeSexh*%}km*Fkdv`U&X8+d*3}tX$VhhAlxe3yrlGzlAM>odGN7 zS|4F$74%Pli63jgPJ!h`)LzW8!Un;rQrIw9WeOVuD^FoF zU}Y)nBv?rbn+LlUJd4V`1a>op-2}Ul!YUC!%PFi5>`DsT45nuf+pqw3DTVC>yO_d; zz?Q&NFMaCxj({zK^>OX{68n3sRD&80sRN#YM(x?h^;$IQ<1^57Lo?xM5;^4Fvl26& zXm3J$>Mm$^LR)_?`qqCS=ETi=iH_G1z1#R_SL=Av@8WqcrQAJ>PbbptY}}2I|IB}k z;=v=?h6iy1w7FTV}r;d7^B;EXfiuYoBzpSE}jHU;gi_k1Vv(v4q z1Z|>&2JnZ)8fekv%)S_&sX}KexjqP{AhY?JHqzgJM81?kf7qOso||>6j&DD-HUGJI zUlei$|F5fOBQ&GX6rj1pweMfkwUg6)lT|uMBx6pJrsTgA`)y3dBpy-81Cue5Z&#r2 zgZ?Dfz6_&J^xVXdU`AC+RLhe3``~xd-Eel9^ZDp_3VZ*D?UU?~rujSu6*Dew7iR5q z=hbCcV|Zp*?53Fw30>Xt>A07Cx9PnzXBX++I}rIJ0E6rcafuvTt#|vRitmt#XEo9Z zXYNfm_+4=2CD%GLO)m!!-Wq427wq}$q!Vgx*~Esfg+Gqhotz%SsM3RaeQW@_9_Y&d z8}nu`UM$QqXYafj&$OSl4Qj?*O3dr*RB@-z*zk(r#G58B?jNkcaE}-P*${G z$`V_+Syp3{;}c^3j`Pyc z0<0J82G|T(iIWLYjD#yu3W$4c!=Y{iN~FZ+c2}o>c*O8kz-YqVrCYb+Ek7 z(|B@x!_#L8bcs7S*deMFv#n=4#y4col20Aq%j9)wxmb5XP@0_NwzXB|>zV(c3Hz=N z>`DsT40bt%6~L5#xiaIUJa&RzOkqP{O97_m9|2ngYYxVXZ6j_M4-+@p1Gh?osPXW# z_&8+eD$r^{%E2JEEjZ_a@hu};%@iGd8OeCQ2M(Pj@$%Ac)=n2rg6Ox?F;)M-miBC>Z-oPv92IA+evklx{ zElyX0Wg{Q3{BF@@Z*-OOd$nXv*j!xoKxxUI|IXNOb@y}XSZSb#l8^O7#Yfylqv}Dr z{QrpcZj(dp(b}+vO;j)%ja?Z}?jg+_X;L!aX>v8bY#`qw&{Y0u@i<}5lEDrUq302C zEwpE#?S@v@@QKN1lxE9I{CFk0AIgW42N|!V33=RhIDm&8^CsfHFF(|*Mc(z z9KUx#voA=eJo~^-rt;qfb^RQ+;ni zvmB&TeXAbA-*U6KJ?g<~z{2`AfmNsIy1=Ty!us}sRi@~6ft7=W^&JJ<40fmb9)qSk zNT>SFf$d4cIxU!umFWje*^%zB{3r4brK; zLtsm({71kR!NU4ZfGwoxj)BdCh4q~SJCmYY06Ps9*7q{l4X``axAI~7@6VESs&5@w zGnlUR(f`e0O<-Yt3t*d5bUVQs!NU3ufo)3Bjes?Ph4q~P>jAq{eNRF&6r@w#=E0^@ z`CkH?01NAT6KpI+SNRCz7c8uA9oXI!-Da>+u&}-bu;XBNs_!5)^U#F#7zR6&%6|;( zG+0=V8L(3U-6o#(B-k9-Zmx+*^FASI?yMk7v`ega+Rr*ju0UV)=eMt;@~nE4{(F}bK)(n2kUx6Bc7yrnRK5dXyTEpFjr>gPu*65EikiNsye6POk;?ZN*c@2cE^}Zf z13Hzp5T(7FXQ+d|498vhU);G}8lb6%=5F#-{d=L`1%22qgJ45oVY>{24T9ZmyUapA zo67eT*a@((T^7NP2XtzeD^c3Jc?Pvh?Hf=6Zr!aEhgXtu8Hje3)9O|y1J>xhh*DBx0`1s4D9eYVu z2UZDoQF-`SG=*Zi08*(SS!s1yDRfyWdCxn0Qme~;5n5}KZoSzdWTofdL*Dzy+qZ@4 zybo+I*xj^e9rSb1FF}7hxuZNUL38si^Hg1`e*pdGesTGUcQR7YH$zwZgXmkOuN0ks*ShKQx!h_|Y1^b8f2+a%$D#OgWt{oYVP(8FNCoh?!*Pas_Ac$NMOv zv8=3gVzGa5U3fBK=9k=&lNXlUdc`g3aB9OV&R(Dz`lwB--^Bb29=3A>m}pg9ed_o& zgB=I!1?(8uyxJh@Yk1^^ zm`Ad!c|@eueD{#HWn7bT7Yf>VZNYkw=ZMOoON7q(Tz2$W4t?0ncY>dxbpz0gZTLp*ud*~R<8Bw;d>Ko3~WY# z*T-yaTweDlf-|>@o{^bMp=9=Ap`sg{(q&_!`z`p3$hT4XCTBv#Yjlz;yP&xVO(=i7 zk1UJ>?(n`X($w)iM!N3mSJM6h^L9&qHb65E%``LvTzej2Oq%yXG+IQHjFoJ>1?@#> zyNYS!{WG3cxAi=m-U_ok@QRN`w*Itp4_QMF-si{>OwPxlXYC`+9@6YnCQ&=vv$8kH zq7EEK1-=>gtP`YLAl(V2OZFRlFsi=w>q%&a9!$oM`g$I$4@}qk=>H|KonV!QIP4}^ zPl~ScZL}{~c|cbO)|J9GgB4O(0W6=wc7nBlh2;)`H3wK9WsQI}fiW#5Z6r3dcL9Ge zbdDGCoKvf8+6k6tK(}Zz6Ei!9x#ZMk%DAEWsf^G^X6yervYeca9b)eABIa?(>l>I4 z9(u*=9c~<3{SIV4K<&KeKB}Asr>a&2M_^Pl)$1jbL&M~~x28C6Tllhg?VY!Mb}e?u zap)X|(ZYcJNTLg^PYC#gA9yP8>Tbc{2#jGBkst3H72R#y6UE+MepOAV8WK$zxky zYj?F-ZKB;MiIOOZlBhu;0t6L7NeqY};*m76WLFdc1_X%Wwr&xvXx-KYLj{pzd#wbw zb*T&PTfxd8TDN|`zjL4emN(ucpU&qq(lfv3oOADUpL@?e_uO;ujkeoMV1rF)NlQ(%=grotQbCMrvpBAE)QzQ83-MWNMRZ*|A(ALV9-Uza$ z>f^Q{<)qZ?y(^z3Xih<6@15VmPJx{Ti$3ET*m?rn09ym|pHcs>B`_e1zq{q}d;9sV zr%yDVd|TnzTT5@r&os=wIY0NN@*5MIR48aHw5yP#_gZMefAt3JF$wm{kY@_|k)ZSA zww`Ge`Xcl_5&Ec4TQeOh4Aqk*XosP_NLb`Xpya zhPZ2=`$Hb}S2f>8`~>N(xb$3|lPa}NE4u$>FpRSIT7+*j8@Gjdroa~NM&2+qtI%AE zK8vPlY+jTzNRQAkr9_;45wuyCQMFnQpFxGFbtOZ&V_cvJ_Qz8#qkM~hN8ok{J>Gz9r5D7s^aPd~>8Z|*{9WqLw}$mq&o&8GC(P-i@ZDG^8`bg7 zE;tSSF7)CE*+!VgY0@yZK8(1cumdrqFia~R=@a0%54c@itL+f{t z2jmQJ{k7WYAhb>27Cy7;$QW1ynCg1aj=X1xw$UZ%x}l4<(bHf@!BlpBY+|&HZgRiO z{i&$zdu*dMEsS5`{aS5QX}3Y!{_S78O(`3CAH&cuL7x@CNBU#}Yz1sP!w=uTY-c3P z$!rV%3-g(@7JbI{0aN;G@D6-O(9T@FQD1F?QrjsjSR1N$b_4ni=<8j55Bp2jZ(9Vk ztKnwT)O{!I{kxv`_wq}~j;}#bUW(8c-kz`<^ghuqv$oNb@5pj`c1-f2FT%@nTmM9S zjJ3@yP?`HX+;4ODeSLG#Z@;2hgQlkS?tUJX?^S4;pqZAOP!E(+;VwvC#Eo?eZj`T1_VUyWotol3RTJ6(=f_Dk~0X;DR}B5*cjO9h-}eKfvtk6 zFV;uc(jM4purm=lmH#;p8{j&YuP|;S(2vpsyU<@pM%mHZ`!y5qfP7PXI-J4<4W6Vd zyzOsCpS&Z`MfRS|C#UE}NhJ=-|=2)O^eS+Hpj>*qT5zC3xV52v9y z1>c5fJpE^Rr>;FiL-DLO^Q5{et@S?com_%t2maRY=6yV1{Gr~rZ942+haS$*3;Wh! z*^D;yuobHF=>wOGwgx!;1^yMPx^PbK!60JWczwV^ApOqz4uNh}u_P9%j?Aa~F56mB z?elDjxTI{a>#DB#^iw3ps#I?CqeB$7kW^)}(MtXNesp8RwsqSxSTK$Zf+311w27Y% zf1HEA<{j9V?by_gKP(#y^USL|+&`cG6vJmr)xG4z`d&RWn+=I#&-?RfQTS_w<21VC zRj-6p#}yp65R>e`7i=C++#=7i#j^}_pj)HQqOLh7`l1d~XOG1XFs{(?^C}XVZn1ac z5`7;d*}Q)so|-sgk?3!C>bjo^D$WbYI(V6APp|%eH|;%#?}xnVqjo$Ewg%QMAgW(N zAGa3>=VYuyzXiSDwxmxt!7hQt>Oe3qV!uY2;=w*0vi^b}>IQ-z(i7S5AwPNAO59#B zn{_s2mZR6lm<8)y>ww!(-?t-Y2sx#~^S75>-{WE~^NOp?+2&S?zRWA|QgN5oisPG- zOCPKtV`u;Kw@*L9kB)uo>4FY+&*@b5qJO%3myUPWS?&4z57ym(=v9ULi?6x=z^gm& z?|!9rMht~M(EY%{2M#?@eBgjys9XQRWI)fmp7+lcns_*OVmf{DXVbZ3Ur3jJCfzkN zm7e`+rlNu+-$cUJla&H|yYP*2O}-}5C$cBs@NUHZ-1yWj2keR6JJA{Dd}*8NHD zm$`p8{$ zJ>~s##g5~h^IhpF8qRZ<_ge}1FYZ|tm#?w5Gd}BFvAlo2>v*RmNM;u&n>^PMhzMnA=Sf#G{sLj`c)q#0>GaP${Ygz}X zzOHNSn8|!_kG)$YyB|60?+?>!1RDWc1?%J5&m&{Lz*puw0@t~{2<=s9i*6s64cpr~ zug$8pD|JrWQrjlioce>#)fUp0C2vFP=!AKWX~$^1pH~&^_VPl! z?|x8BhpO`W*TFf7+78<`f2qpz>%y0FN==}mKeVfWg5($Z4z$ys4n2SSoEK~U()@`p zrcVA`DtBx;Rr=XfZsrTA*`G=EmVY`mH>k+)cJ7b5c8$YB zv#Do3{cPeu^Zc3p7^rbm;^7p?zIKrtDC0<`W{gzRC1zP#j7ORDHc78OV!N7q zsUWkJAqCDxTN9BmT4g_Dod!BRipC+uML41Kb@5kK<0 zf6h#}=0lOhUO6{HGX{-U&LPb+s2Qj8ZND4Ht?yGi>4zsf{`~E=3_loHsRHJuQ>_j& zi$h`URed#Y$cAvtE3(Z%SeL6l$dAsdC;6LqH`oF`a@%OD3WB`9wjz-3LJi9u3FjJ_ zEeo_1a#h*|#x4A#fQ{GDD}5igonopUGlWM`J83OqUr&T}NcK!OSOpkOH+bJx$JOx7 z7cZY&sFUM8irn7eJ)Bbh4@>V9vacgsY3rl^Yhc$RnA++F*i|s;Q_9@N3jR7T-QVW^ z4el$y{(XPlYAaC90sLh@{=ADn_3HP2eDXmQmpgQ{BlxX}E%+q68{QFk_mbVl{bBB} zejT!5wfTY-__yI75fJJb4MN>ClGjkxXI+A}ewKi$K>JptVsbnT+!qp~Z3 zT?g}R#*{W@&TE9+S+1I^&X-Zx?J6%-UyIPX6|%<`1fWln0)U&w&s(b>u<4c}`$vou;P-t2!Ly+Dk8dV=t0V z&oBkwHhli`D7(t@GWag|IRUZuC;P@Ggg+GNF6@~v!BhG<&z6Br<#9vu!FHS+XA5h3 z#)82#1Pj}+-bMWp<|w}C`KA1K;qA*nc!O&c&<*k}LYp~;j!4!Kj)^@=hRFPgX8PxVER+#RgW`i6Pj_ZX-g5CAJa`{Kk+Ji*`ewo%QAe z6ZF`);^=W4=4!V0Gy%^DJpMaZ-%$b^1M7Fs7}{ECnW8)uAJvOB=vL=~IdT6PEY3kL zUT+>mR+e$;oo>T(10H*(Xunj@yw8)tni$Eie+>J(eDCs$@bthl4o`#2dsxT1ELKb= zl&YCp58;WyFacRZ*UR`%#v)<3(VR~>ADW*3?*&$pU7@%odm>pE6ndhN_>W?wy5SAJFJ z{40;YVxe~N<@XmKNuMFLh~K$rR!0qT#*s69GPE0nO@mE==~^HCUj{oGp<4qx12zfP z{2)K%3s>w~PO)n_#jX{PzhOR`FTZi_O}WL_Exf+t{$l-o|0c!G8AS8roqC|C#_I)y zt*6B%E(N^JXOF*O;q{BJlRUUSY>r{a6PXcvK^|6!M7X>ybNz%F9q5_Hp1_y?%i*(| z{sY^NV364vcgx_{!Oyw(x&G3Q6Xn#&IecidsnSd;H+w8K!$C6)AA^(lUg~ZEbJJ1( zAn_S5biZTni>bbgY>Z)R>g#%$&;Aw4*QL4o(%gyJ)JYOMR!WtQrH;&eG4*UHZ}p`P z26bfnrE0nf`e@-929eeHt2}F@P55UXNNsuTbiljPV^?JPF2YywYw!&rcMh!^z zIyCjrjB-sq2z5X>zuhsDJ`nNHc3zNf+l8+Wz9Glw>zKd~8*CQF{d&HQPtu=2FC9WU zHm<;^FkK{hMeZ+iUpj#MzP#uj=`?nyyp-=T=+8pm@915=?=Ldff`#S$N)K2|(SUkW zm#z<6h3^J@-Hvasbd1BNzY2Zz%DvI+*=pX&_y_uCC*Ph^g(8Jzy}ochdgeB0o1u+9 z^WEY;hoK*az6bgV=d;_s@5J|={NCKLw$k_H=UU5e&(D1K>^q)0{+;vR)v@>;3oTDr zi}5BCRd5~qw(k?M$V5N?UB|z3p=I$qBqjYc+d^#Re8|5YIbf?3-9&hniED}#A;!QLtUqab!vG^e21gr=8kzkZp| zSrOJ=TR0C*=C_{r&rr1f+U2)>g?o-x zcxwMqIJcoT(hZgY)3x75(6iP?vOvS!ui(BtXJ~T<{!4NV&~TU;X}Y|q39CgW&C zzYhJ47eT)b{o-%myZr3a*yE=Io6*@o!FVycho);2Jd_BklHOQ_e&bAh?U3n=P~S0(do-f&obTW|d=39Bt|u)_igAUU0-g@Gv0?4I@F|Km z;#;?A0Gkhxdo9iJ+wZ+hNQ&>H*)wdQfPYPS9z7Uszl=DDC|X8&d;?0a`rV8j;af_kr`1VnWX5+S zC|jSe0AJ(pzBoSlT*l#>hVN7|J*(@sB+6cWp1DuI8YoTG`!n!n{zZ^xqTZ+j3960J zUx$A59_f|0I*jjY&|h+SOUO6t+N+k@GA&F?<=6}F(SHdq&7F1UE*>Cv?DeJBB6sZZ(qs9Vp4lT$Muh0u znxVh?Z{u;vp-eI1|vg}{;M9E++8C1@}GKE6AZpXWDr zuI-=!9@05Z?|SYseu|(J;|>LXYq>)Y(vL={st(3~$GJ2b{n|1+k(sNi&{(bgS>_x6 zAn0SwUeF*?y`XO|h;9hFbI|p1%`+LDx|JxM>3`^ML058gp?#yRtj!9rEsto7t{tpH zKX5*1Lm_?Wm-mLk?tGAK=(nI>bMl>TFdu-%XMN%LjPU#~ZQ3Y7mPc&eT{ypl4TPM+ zd+-na;q(3(1Yuio4mowc@%6~`+5THoot}ih@{fW#73wR~1JUzN;%!a5>+r6^d&@mf zn6~*Qm8{=3dVoIGU#H1ze#8jq*7f(Dw@j4hZdJE++&$ zqkPAZk=bBA#nti9->h}qIXfXj;U`6fu&_|n)+4(?q^kt%8_mm!ATE5xKVHHQUBP?| zY3fOLn{)^MIPi;4r%$};!wKSt|mJGWY)y9V7gM`!QM zhWNa*_djSGDmo@x327}Ms73OqDlg;6nEsQ%7h!GU8J88)8H?QC=Ki2dBXUkUN2D`B z;=CHp9ybCmBS*e&>P2rER+yRz`_+nS=hH|3 z`@l+)<2~m9*f7}k#b8|F_A|7n)A_}ALO0L3nCj7!euC943W49xe?9S5_{ax^Ti9#W z0ZwJnuiV8;F8>>(v37ZnSOwpPaob;;{v=D5*UTXP1$g}YXTj^hu7OFv(GE-Yiw$ow9%gpek^ ze+HUSXijrYJ|JuDPG0G%SNF!mK!JV+3D`hn`rSSMd8h<*3Y&fZwC%j0$ zt3Slp>MGBhe781hYOk?FUgBqCZEFX?XB5V-SL@qWGhi<8N|@eh)k~z%5>tl1sX)>T?uBkJ2@+t5z?6YFJZbW zt4XkUCU5mp8pi_m4kR=`HVrn&ZY5^eZBe!UgV1~gZpG24ERx-Ho|&|HT`Z9yOP z#g!k%rwvvX;Mu3ryLxEVjYjT|{uwc$u53b|y3GMvKs{sPbfUebe;5(5_NRP}BCGDt z1AkA#W@8M&ES%?Vv9ef(z6gD#^2SHca0aZ9z|MoUC$OtvZ4pe*x&zh&tv!XFpI2_t&^zO12Z$>pc}T24B<3+IdXw;EoGPC8%3Z2g7MX zdN0_!C?S9MFFYONotNRKuV+8a{kj{Wta|?Bg zugV|Gmfnz?dHw9`a&z_N*V=X_&e-&OJ;~rZh@8s*;pNw>TiD0u7n2P=>D@0!^g=k^ z+h4wKF2gj0jYUkdASY`vOr2u=M%(O)68C}oT7kY4L{Sbjj3&uWa7cJM|4UYwg> z?%hC5-0$K3E!~gpKW3XR$!K>W=ZZ0Za_b6fVAOlr!9oj$(KeNtb4AD=}nNZ?eR}g*qITLMuw0>l-{}pzv z%a617)Zth^m{+&cr5*F~i>ZaQW=6NJ#GlVAFFjut87s&ec;52?d+~tLIKu&GHlUe? zrolZ=n5LPRmavBBVeRiw=UP+_9^1NdhqFMtUxn1jSNm)EIR3Sr&=wO`1nULUwLbda z57v{wM!>og*d$mnftA4u5lr=E1*{$Hx)Si$iU#G$GSO&x9(m#Vl10QV?yxL zF*^%osJAFQ`w7M-(5yI`Q1AP5spb1v57xmJ>FFn;0U*k6KfEJ1zj^h01$ni9eed;K z@8Bvt{qR&P|9ph)fc1ez-&N%Z?=ON$Pt=3;L@@E|xmv)B;NOh*pfa9B-gV@CJ!QNO zZ~xzX^UAp9@6m8}gBUxfLxT84i(%kYCeOq|hbaFAc-r7O#WnTF>nGGZs5zU;X3+S0 zn-dLAL4s7}KLPIwywUel0y_m3eLttbmLr(n&l=cL1OuuV;JXQ42Jdk?!0A_!m@PUVC7OO{R-u{X+HYS* z!`d*FN)PY^G&TQ|*e{pYiR8JYd36O{+PANu{JrzJ%V^1ivHrU!?95&L+(hOUGBeTV zSHEJy@+yfg^(%Qv+^b)~{)+Z14L?A6{;$Aiv{%2vg5j`VY3I56;JF5m*H`+_Wx3E> z$jd{uU*&FFcD|qf18;7);!I_;h>WFM)C2E1Iy896nXkac{Beb+J?mW2_<8TBqG

tS6^D)=k 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
Yd{uvw`EV&e4lO@dIG?0Z{eSG8 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
g5I{awx+KA{g{uJw2QPtV;Bz*3x=M5ye-C&! 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 z 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 gh#v6CUINs^}^Tykb=j<8Z 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 LUnLIj+pTL7Q7@U3`Sd%(T3DYg*ZR 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%0A6-6Ea6$w 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

{n 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

-S{uz$R1T@pX}Y^@t)TZTPYWV?|?g9<=_@BeoM@9SNx>v8?aMuAddI}=r_k0-Rb1M)rjQ7W6g{?s%o&(^wSP_|+K`vc^QLF02H!mJf=X=CRq9)qclPq_ZPo^Rf5c2k6b##LeWjqw#f-nxd5g0z zavryvIVaj|h<;@3i=4%sZf+YfH(EMq89YOHMd!V$g>lmvaM6+Ce1+SSJlG5Vgh$`@ zp21U@W82o=L);CWw^rMKrw*M%7L5vqIJB6f?HK;gN%}ARXl@nQHjDRd!rwUdZ~CVC z#1E9O26~IX**!x(6gK^eYbN=0-IJ;~GhzNTV@RTXRUPLC855lqK&FnzhuPY%a`5&j zbpq3z4A1h*3G)rDVQTQReZuD(ON=tcCbF%568kpeThI%hzaO7i_VxB+SJ`tLw)Q0^ z{YT-Na?<;{MkU&74i+@6g%0<8G|}G7^Lae)JqfsYev!JLKQ+<5k>{IuPHwJRR{vPl zB+2dq_+8;ZQ{C@KQ;qLqyBR|KgrTN=7kwnKdON=A?aF6Nba0XwSbgCyOvI6A)_=D+ z!aQr1JQJ-JCnlY6^~mWF=r9T$j)4a2_{GWd9DLxn>f;w8m-Jr>jgn^mY^;o$Rm?YV z{2c%5_!sW_wiz$%m19^KTea-Uw z82Q8U_Gif2tNDG3^cw1syj6XYw_oZbZ)fQY7d*di$c?v)=N}c!t1!=ZGNI7Qgnozp z9^S7hWIZH%k2@P8o-LW6`;w%~E?O{T==0-DepMlSxfDG@XJOH44fe!4?bsikR*a9_ zM5D9%*uzS)Zx7|33(Ct^lX=$3ICZvSOJ79{f9XxJp{8xs=UqM6;26WAtbF(}ZIg)wOBMSK~#SYPr^m90OLR!1do~$Y`bHqnBq7x^P zS*pkRt`=pF59&W3{Ho2){$|BHoF)I`Q28bg&%Qk>njW^ztxMSl7^>JW@Eu?%&KCXI z!fv0ZANlq~t?w&HtNW|s=xL8%=YYzxlYxu7;oItfE6SZFmvi6sUgC|2?`xl{qv-94 z!||JZexkKiWph(mC$mNrZ^TwvnHxvnwk6(CdK{kdCi^o_zstRq;3CWqJr8_uk+b_Z zn)0EuklB){u|Q_$crG}`jMrG1i-!f%^>;sy_==2Eg_7whPr+B*8jCIJA?YWs6R%%!r7V7)e7=0 zdS!s_C7-4>zT!|=pHygIFSvNV*|Z;DL|lqy@I!xdFL4HsIt~<+N#3@}E_)ZUq6Y@X zPh%w*#;ERsW5-T@O>&vBP4u^8`)$&D@{{KCk02d5hJKZQjceG}-g9=*(ywW|kiJNl zmhYu}+MY&^-j8msex1uV&0p<%cdf2YH?SXQh+(jx)Xn!4{IdgH-Z1_fr|I1Fu*I9tgx`uDVP*xUv07(2$jZH3QEZlPbQvoV7mDO9h@D~5{3>~QTq#5chRPw1VG z^egOtvzG7hpz*D=Asglz-tBYZq;xCK^?Z}gpmmZ@zk_s*jT@id{b=SEebId#sm@0^ z-)r&D8g$=Ix0jm>#%9T*qG!MEaQmL>qkKVo`iReGf_*mn*m)EE&>o1M`TQ2}pY|IM-~Re3>{0plBcb-M_?PYXuJ1&jP<4J2_W#S(2G8~AvKprvbXD+7 zoHD1|Rw=E+G;Ja+Nt!{|wfb!`(gZyt>x;5E^rR=Bw0;_uI-}EyUS0oK{iOOrGrkyp z6&c9-23i%q#{~UVzLRKsCwQk`_G8M%Ci_d@@%#5~uUut@hsqpJnb$e9win;t)zDf? zK)cA6PR3@v@G=HG^sQ$I<&R> zwC`aUNF6%@n)CXqUAuw9IP+KML}g2JYdh_sr8*a4dlda;tPMndhVnTr&dQ%nwmS9W zlkft`Df9qqXZ34fy?goP(|YMWJl^iS-jj^C>UQ>*i2UK#$C*D*9m{zIVz+GKUEkxm z>huoMa-7lpK6LTi<&mZY`t5TsM4DoZc~3s#@I6XC^z7cUu`|+}NHe6Vep?^&^{!(i=&Jld zzM&VU_*VWf-}KD47=FDm@Vzl=xP!ZHo%TbNrz6k#cH-*+pG{Yu@ESpRumx2;%2=x0 zUh+m6=S=~vd78PI_$dwe1$9tfenF4WUw!lEZq!$usT#UJ*n`wJ?Exp?m9U(NAjDbB~?X_lvZDlCGl+w%}^5qm(DZ zT3UFOjr$5>Z6=_<-L#=OT?Kth*4$d+?r+QC=j-?P)V|sl+%+#^C!tN^|EASm3jIa% zQSiNvZYa6Y95vM!Q@`Y$+Nfvz;3a9nEPa3Xm`%6W6`F~vS9P>tGgX<%l(G5?dsw1V z>5@kSSGfFI&h&Osep7zHMDYXV_qfsifa*CtXgj9ki8qr8-Y=9s*Ln6vtl{LvyVG-MvaI4B_k?a2Dr$qi`m>{YQ}Pq8-ty$D!&N zJ-Sy;_&T1W4*B8O@5I3p4-2>PG~Yce&y!F5O?h=5NO|{uEM?{06QO+19wy)DlU=?o zp?vZ!R$W_(eYcxu@kn&^*G88m-qE^Cd`UL0BxAgbe7n$5Jgv{_;t}gYfO}>g17VC=cxNAuX(O`cqdhJ~st@ zmG73{+tB<;u%^-(A@#-aUg}^yxa64kR{jaN$K6$(HrGdrL@%o+rl#dtU$Sn&H-r5; z=BMIV-%mfr!H+Z0b@NNumf*u}(D?>vvKZcd#gO+_zRUV)1a{hbY_o|uIs=!Oa35_L z(ux)=dT{RXW@w6U@1kcV<|OU+Z1BC9?<@G8+>9Md_N&p@4khz%jJS8~1F~z(y)1G` zl6<$3PxUpAars)vC)-yI`PMRiE68^n-#J59xwFJfvhcIl`!;)$yP~DrgiAdRMcY#tKh2W{Xu`v)wj$Io-9a&`*PIpT-9ca8 zQEZR^cESA{OFzB(s_0(4O*-RSN9#^mt&P#U;91jIFX^oGJjOAD4xGAb?j+fk6{oFl z>{c7+#SBg#`>f87_tvkvW2`C5SwFVGYt^3i^y1RZbY2(RF7qhA8XZRabKiKDy(fIb zXpeQVmz_>OPO?9I?0wd!&c*{uQLg$K)*i?NJrj4p#yv5VlWfZA{QQu?>C~U>nm8+2 zr*93c*Wkl;?c(Iu!|S}=L%br6{-wFpjUVh~*bJO)#I(sbR`U$`5v;eFzqIex+r7TR zN5LE3AYJoW^Fw|}*AoA-d|R}s9zLLcAQ#(f%1l!iwv7n*kR9ee;7@W^TYTaEGIuWh zP5fqi`NURhyY;>te!j~Vq_x-q`g>sLU<;${A(F-FpX?&4Bf^^aiKnejXy11hI=jf9 zNjpe<*C^wp@tVb02~NQk$2LMA+F9FGNhTy2r{Z9YWXDg@mwWE*9TVkw5_~6#MWbiw zpy0gI)1X_^xqW=io8jcuIlLV0v{0AU(QhEPfFD~yN%luQ_*EZDxRbqT&MDycPSS-# zbc17Suyu*QIy`a@qVPzZ8|A;{Fy&7sZx|lI>1CUvhu<7R53+@MS@F!XPN&xVn7_rz z;X7$Bj?C2Dv1OS@q?gWKMDF(`XT-5q>T^sD`boC{bG%b zoix?Cmp0HRwMTnMe?M@4xTU*DwieywhqTdwy~n&T;8Z)dlR5j{-MvHfBA=Ybj*q0F zv1!Vi8)x3@X0PW@rL-hfH~y^r9$dzN01Q zCpS;r-pV)D=*#pi#U5{h@4#E><*n9M-BHtY3+qIUw`8!P5Bjb#@o^+ukdf-=^Yq#7 zv5ced@RHp{k#sY7DQAzR7T(b{72d186y(wF^SLuydnr8cxybFeoXGRu>2AMe8*+$x zs~7h-)k_AM>ZM1UYWZ!c{czjDRW17b?qkkbxAP2ckDCr)iJ+tUxo!QUw>aLyS;b267x8|4Vpb{+ zPLee(zR1|gWeX_EdOG_XvE?niMZLB$(Vfl`=s!H))RxvNRT)NWq?VWipKE32$7rywOhk73NjBtcs zh3|9!_0Be$AZ>1R*!H)8bC@Yw=6F;|cGXqmCY=Jjf;9&%x1#@cY>q8Eku+pJY49U# zz8e{{@8tYu3f>v^jh8Ol#(A##%|p_*jlfsse_!ampMDg+ z^^FIoBwC%xsrG&U>8q373b;kDQWU z9WKxNkHh78e=J;{_c1|vTmQi+`OV?)ydNK~pZgNpO6J>(d2=Vo~FEM$=6&n);jGScoV#-Z!PrtZ=P?Y&4}<@Y2s zGmHDZ4Dim1vHwq5|LxY%@0HeZ{}=jA6GCJLG+|+xg)WY*zbD`8D}Xboub*HJo*&^^ z>(CC$K2E(gz?9^ZnrZ8k)U9ty*WF{RS!UD#TT1`5osj+- zeAhVCL&pX@#7L{<-?w>BpEk)iBLQrxcN6U~CoiE-oi#z5zCHA7+g^r$`<*tW6Whw5B~*!n}4ankIAhQrL$pMS{Xac9Hy-g%ys!msBiFx@h$W- zNu9jg{W#UJn6!G*G?ul-;ZpUeFQP}k{t+*XVgK;;i62UbL8r7dlY}oFaC&ZKf|xnq z>9BV1Y!Q10*n);?Z*mAc5LsAx$CKSFf3>T7jKs&KL)i#?=mK~!;YOm<#> z)+*?`ckF`K9AT;yZ$Rse2y3hP)ZyetN%k79Z-W1nOy258C3sh4iEYr8-X za(zp3mMjK*8qX5eEIZ%muG$*3V{I6xf3OX;zk_ys8-F9ef7W=b+}2ZExz)hsVG~>` zyNR;$|5jgq$Nzhaves8F295338ko6>PCVlY_(8em9{vzIZ&c3w+r)gTfX?h%Yzg+` znAV*|*#}QXkD*=34--2*E!*;sxswN4u>8%f8FyKo&g#R`P2mOg)VGOpDjScTnl_nJ zZQ1WqHi?}AI_CVIE0@6LCR%M}{UchZ%yPA3VpVCqKSLSftJpHK`<09D2yW(X1RuAc z%z9fUahfgjgkU6Ao7&O&(^#l)>PwXV4cyH5F~@xWZ29DA>C07?{R@>9zn0(7A#KE5 z8*St>#HLriC&+V1f0M4i)5*i#5;l*<|ByU6m*-RD>3GxSk!{+;8e!aufLlB@!MN2V zu#?bltM4>M(yg?sdA^{|=w68R-Af|X2Ns`3jG5A`=1Ak1#DX^%%S&0~G~!>>c%~Wp ziAQ9kaQk1|2C)`^uB4Y#^DO?MvZ`0*zkk)J1**fBJvmgio&3$wvVGV^dUbG1C)oHk zcDd8i#p?T;-Ih+~hx?v6&3;$D!RkA6LwNoQc`iRXQ7xFi#NLwNnvMN+G4(cLo2|oN zED}p~4gwC@&BMG}Yk1}WYa#grxw9Sv;VCoV0kS)ZXE{Dyl075fXX@irz9VN?2lU#l zuBJ~rp$pN!;L;rQ`dRq>$tPvwb9;d3lx>TB+#UfJQ>liW{IR&qIx>}(*fEo;W5>!6MAQa(n%1y@fQ?F-Si z^n^$-591xDrO*eZ`4NweO@Hn%Z3plzkLMhG7at}M^(~Jl zPfvgHFyBNQoG)KKpZT(3^SHFl3!R=#Ud@9BXx-0^I_66q^JOC6nxiHAgnNxqJ-&an9ak z&7eIAoyQOjB{*Y5Z2qPU{!k}_Gh+QVy$mg|@6vQ6Y4!LSORm*3zqQx#1?Hq|w8-PO zkFehbp6#6*2E3obdFLNOJBobxrTB9aEAG=kGbc5_muooeF`yl3G z^YQR)e2<$e&|C2lvoe{wZlHW@2=VuT*UP)xqViMlej!e#a+g8VCiXkk*J|Xy`icx| zbN;$z*>(R2Vo*|-;HfZ+Eg$>(L3j-Qa^ItV`Be$dUn?(gX>U_~pG?2kuusvT^Nzu} z?pIhZDbE3LB>C#$@i2N@=`+-C*TVa|Hz1>z7qXAy^#@P zI(wtSGd$PADmb^E$@y*eNqiaBgz&@?jpeHe#z(OT&miuq_Dr_;^7K_PG=vl3=11Vb z_wQEHpSq}frSK|TLoc26;9EG}%D&9%5RO;SmT;_d#1?m-2>Jj#im@ylY^E+hZmRRs z)b&b`f3Nm}=)+?4ArHUcxq*7WMxL$br>3dQX4+Ky5&jeS63q|#XyT&be#j_P3ng3*B-8IZJ$MgNUDu=T;dW+<;<}r5U%FD4S#lXGBKzt&e zI4xaI+7{Z(p!;Jt#$F&l%d)_3+$(pSzPxqqYxs(fBEQZ|_tX(vwNwLw>(6VBtwtrOzULiQut5n*p4us`NzV7cJt4uJIAB z3(sW?gMBsa?~Mv@*@8^7^g{f!Ul4CqGD+}D4y){%$-QIM8k8@ltYN%FJ7Hfm;amRB z*k{0rWOt$U-6#acANP!hi_dKJA>rEE?IU*ISAM`RyR&%N41Dwl_>_qb%9fnT`LwDY zJDqd}?fstfq-;jTb8bN;-M7jN+fG%xL*WP)2@?9;W4#k&bV_$9liVgZO!BjWJI-`~0fLe^*6Sdgh)($Ny1a(%37uk?78k|0AULj( zJ*FxN{>8hml1>}YiN->7@)`0N)}k)<9(?!4^Twub&l);?JJ@%nFUQaatAh|vqXOERN87UFI2m1<9Za8P3w3nH znIh!gcPJw{GTY@v7kBnr?QtGy=}k8E!0#ZmPo#dzmqmRXPg&vZaQQ4P;YZ?WZBxK| z-rW1Xy~kW*uAlbg;+(bBd>?zjtuIpG%G=k~=ih(V&8w7^*PL~_%cL(mfQ&|_=9Grd zWzy;{hx%9whP}+$Ml;^U?FnFb5*Qp$cXuT{P5rV%2_Apet#@4!4dlmo>&GKJ%U9qx z1Mo}0mLphyN_pubMzRS$k@UO+zLwP83+xdZ^fE)7IQ0{_ZOm=_5z_cgwm-lf$Kqkc zEC|MISa#3rCawLE_4rW4pmWZJwQCKnF&jmDv|Sa}jdZq2HYyjxLiu{fMc;Hkg77f~ zULkzcfs6V8AIrgq*C|#|_u=Xl|Ao$7KZtRse#qXTI+qgbN9R2CyhgEl0(|@W7f}C; zzJ1#4`~7Qt*IM4;zgNDvy#>V>bAAuvHD%x%zZ0u_<72erc7Bp2??OlSLetXWstd-a zXCiYPPtm@8@tg}83)TN~@`%3-1AeF9pzkr3=;T($h`&sv{&;eHIs+e>!Z+t$=Fi3=d*3@fJFW_bodzcFut8nbB?gQ!1=Be4z63+iasuW-tw#N zm9JjtV)5(!o4lU~{skX9*^I7|(ug zui$%zvx%ZhLp+#L)*Ii)UaB#@4gdO{xq291BJoVo%>erBbQEw<;P4{5VT`*pOn{HK z!G~~BhWvV%u}c;>dC6Yx4ADU$ysRk9_$Dzf!t^CwMY31&*vsF&&`>l~ zPW7p-7bvSbv?fgek940nde7I`d-->DUJedrv$Jak#zs8sA>jTne9S!7$!N*@T6oB1 zJK^00Z(F;n##A(s8&S8g_O))?-=*mPg0Ue4w_t4tX4#lxAPJ zK=Y3MqW{rV|W+>GC-5pPJ>~bvA7K>+V_gh5Il32?vsyznh@5VurhMwf|{~ zS&y{WCGnxuxk>C#3CS7mo`64*-^<0#Yv)n7hxv*l^(A+ zJnpPtLFN6Y5mO$#+BgL4!_M4uCiYL+`{j#c?GdlWQ)i|h*{JzyiaWp=XQhw*G`vZD zFwjdqW6=Z+IGH!XmQx*~H`Vh?%4$w00$NkrN5Hx2nn*p`H!0`bo_MYwhr{V=c05K; z&Nqa|gZInAlY?Xy6Bo)q^(Xj%?W6cZ)vR zft*XQroRh1DCEpaW8$pzYV?3j@Sf|5XChdDll~rh&y#egMTOP}i~DgSO-C_)ONo!a zI4JAuRDD-bkLu{{m-E$F10R(is@e+Yzbwe_*R($bPP-OiF3YY4f9n)}uRRsqvRAw^ zYV!2O@<#PTZI0&tTCI(I-JhgR(Vlz>)%TnDSDyrzWY;R{5PZH(#k*6RDSXJ9@nvek z?ks+OcF^Y>Y!xHL6Fx(n~!PAZU+=DO94hdiJ0FGv05G=ykk`F2C;B$9(d;a5OOvK6j?$cLN#s94?A`L^(WWH!`tlXgrUdyU zmnsH3e;}(9V@N?Cn zH0);C>8x9^Em^+tE7q&ueXZN3r_k@kH{86%{|p@HzVcZ|u-2vg=R$QZgKvlN_0~_x zJJGER6K{35>CC-g6O6up!l&+g-Uy6ZkGl0narSSN?SY5*|2iM7G8PVfBQJZB0ls?i ztNMhmcWgd7$^YgHA^qgybMlp6cJEf-XxaDLt=gxll&)^K|_PszU@ z_4CDF5D~U-rZse;rxbHI+LIo`6;_ zV$D-68(@)*UGWd*K(5B*{|udUHxK#Pop(jjiL=~(p?H*NM!IZ@J;rk4e00b+85%{W znD#UHjpg0c*T(qD4jwy0`&Y)<7%ocWe?gm>fyllk3D#K9!xHw|h!wN+chEO!)H&yt zvG6mVmA-^@%g^v5N>rK+^Pr>RO6xbVoLDH(S8?_u1?>6ZZy}n=eap1VUs16jTG(sc z!u=5M07q&9^V`Ejywwi+XL2SjJ4)^o;-@3BjkJY*!p5Y8uAzIEruMr&LA%T`+gI9) z!8^3ZQ@_7LzcU}h&cQh+*#T7U;-IeW(#s22M^%AiVA5RwweG9{7qYutC48{QCY$W} zz_$gs8dD~{23=5cr8bZ&e6fMN3^3zk=un9mwm0h1SkO<) z%anc*Z6&a)r&yz};f!Gly()8}aKU|R-_cqS{Y7JjT%1eaL=&A6?Fnj~>GlNAC0`D| z6T!KZ`@{sR;H(ee+z6bSpXyI3F!(;F=yMo;(RYNijT+s)ON-&)aR?FrB%xQ??Xn@qdXLzAOS z+i`;DeDqY_bLj0E@X!DrlEMRf;-mB(*(%O#Q-^9aXCdNrP)6L+jGbh zg3tBHU8MP1?MADv@FU~gEG3bq<|NOUslX3KNc|!ot&#>3~x-;l^5y^y7XLHS!c=}`g z2u?%~N&NP@=+|!_XRS|M4AJf-%pK`Ad*$mDjBQIWw&yXnIr2Xt-!t$lU40OBDejc| z*Gjo~ESj#SpWwKX`fXp2qmRE5KIz}CR~=m@!2h>^+rSI10hXhn=bL!$0r?qca!vgSv?n+WW_^C=V7pPQr6Ihu2Z^Etwgr7`Bn1>}6Rp z^fu(ZaDR8uclEpQG}dC+-&%vdA3@($r>}1k_1Sn<=mq_*>|QCHO_5(+fHR$aTLqq^ zXAq0HP2+MLd{8*}UVsDqw>GGp%51G$VIH00`;)=nW!-#OZhQ zjlCf8(>44|CYoNFjAAP*uB3rr&;uGSGdOY^&BkuGcR?wx0C| zb=FpX3(`*=@6ou%O#$mA=QH=WhkDN!#DQJwh9ovY`H0r?A48`w$U4RT(prA%RAI?%gh3U3;vf(Z6%7X(cZ+^ig(4)ms^~r~UtNcSJejgtKGhIN%ki4YVT9{8wTDqcEGY;eN`NAZ_Bu0&HL7FT;KEU zq@Hir^3C_x@1KfRCPI5|o$u^2(!X_Azya2rZ!%`z8*Ij7TedOY-C9;_`9PlL`rCC{ zJ9C3I+WN8dwR+2#^i0-P2k5I}u%1Gir<(^DC#%0uegS(98h5w8EXrO)A2puq$b((V zu1PnuCUg6LMcIwf!Z|-fc4|GJ8YErZG#$k}Swg!S7aMmuHGp~R;5&wPQ%8SDJ~OZ< zUq9s|?&0C<>&^ErF@P6C)0>$;YENfB%HG#B`IvS!q6-4cuZdTr zf6;*WTmG*1SF+wI^*FnLx#jWlGCG;>`^|c$e+kz1zArBmtHif0Jh$+(c+OR(AE5o; zQ?F>suiv_`pNN)3L$Wi7pUkJst_J7Y8?T<4|9b;*?Rl=_`2}RT##=g&;eF_5Jw5gM(}>9BHUtZOFAA87x>3(|$i}VT3now@< zTZ)~|c>uoEu%=A1pYP-$`U&!I5^YpLd&s@c4&co3EFEt)I#*+IP&&%maud%9bh3Ad z)zGH(n3boj*YO!Tk@DkMoA=Z?@Z9_;!Ob3lryFnMxAmgOsb2Y#`g-?L@8R-$9Nq;E z6_c-pb!`WD6wcXKX=|h17~@uBOgnwZr^zE6$>+5Nn~BEinqaKt8(`a)zDxTRp?+

+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%0D%=r8kv3u^*6766CJ=zL*slInYS_ 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%0Dco;6X~Mw078u4kH+DaV$JsB84@ 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�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

+p1l&*A9?c%S$o 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�=Zd13bTmbI*t!+<6Vp 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�W%*G*3Qx5r=5@!D~@t-s>=sw*$) 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

tS6^D)=k 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
Yd{uvw`EV&e4lO@dIG?0Z{eSG8 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
g5I{awx+KA{g{uJw2QPtV;Bz*3x=M5ye-C&! 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 z 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 gh#v6CUINs^}^Tykb=j<8Z zGXBhwcyFTf$Bkd9txLYe`2N?$I3961KWlvGc)Shc?>FA~y%^s`>qUQTe5|(b=2OP6 z|D&kSD_qWVemMH)R_$DlmjEX{T&=BN9CZF`{!ZmbT+X!d8#Vv!kHVore!spOlylhm zA4=tT9Wc?=xB0zqd`p!tww?d_yJEiBZ#sXy@wuA)^~1({KCkjFzxOHQ`)m99pEiE= zSE7HGod2W7ulT!KiBA3^<)4oJKkodEC!)P`wRMgE$$0N?s`e zc5Ct8?=`;9aW!dtf5Z5V+Wx^mHvafaqW{zQK5Kl*-(O4Re8G=IKVMx8dibE};cnrn zcIEF8=fCoF$dgZ)U*?T3IUXs^r>n-tYWnAEjX&e_50iZOe&cgr5%qbmU;R_YZ@xU* z6{Fv1{F?FIyFy+Ko&O`ouf8C1?lb;Z#`impI@R;D-)#Q%dehU+|E0jmze{hd^3hA2 zf9Xv0!{hFUgT@<|L;l?9{`@DY{F=XO(fC#S+Y|lwjPLtE$j@h8pVu3|u@RK{c-(G0 z37qvj{HImD<)@s#SCeDcjql!!{`siO|9#_Ey&oZs%O{OryF1#I@XvdT`PAp|-0gB+ zWPI$-7?-~_{v(GY|2508M2Gh{f1{>n-f#TcTjISb|54y8jo)${X6m0!<6}N=B=Of9j9*=h{(QoA#9NFn)%-v2GTv|;$e8PM-T3tzQImD! zA2Qx{{6l*0e@gj>@!p%x|J=7m|6Ko`XxA;*=c|qPYWu$LHU8<^KD&Qn{MKDj&NY{R z%=pu_efJL=Z=Vi1_Js2fjrTkcrg7gje#g&5{;SUagT|L?cELN0-}v8xK2!O>Y<%By zLce;a%lS>GO^yY8~QddB!tO`rUX@wwW1>zDlV=;y0n5cPSr-}{xu zcb9^0$6Wr`8h_sZ8SQ^}&zFU7rsazg4q?K5YDm_wA=b2$HRV`R{&vym!p>|4QRWelg_0r`@jC8GpRy z_jtR@@730MuQ~tzn*a9w#`pbFj92m}{E^GK_UbAfej=6gWkH8O=lc8)<2SxE>i;6s z&*#4_+PnXi)pEWXIQ8WHH9yrsCgr~)`sWeX^OMGJ)co*wzCHTkO6@x@|Iql2 zzYRHg(B=H&l;3{)BgT&#?>!OqylMPV<41M_zvOZ0q;hKKLc9Su*DHH}7=eLb<8pq; z`L8`E_-ohrJCq;smi~Ts;_F{`{_A%H-Cpy1f5-Uq9AA{^=P!-lT)I;w-{p9}&-$_G zpIfzcpBEaR^LZ(W-zSV;@w^jnZ!{)_yVBXuqVwIi=p{V(i`{9p_k3Bc|3*@AKpECYD?b15 z=bZno#&7&?&~rLB>HR7HN29%I-v9Rr|Lx$T#P9zpl~dD`|JwL|>u-q;zwm1G!_`0W zyx{(PiScK?Bl>gE{d2(h&BfrCRL+d?{k8SebH;bSJ?i;xm(w+V!{0+p_5TjzW3}^d zf7JL*$5TDya^9WFubt2KfrMM`z0Cc5(|E)4`$?DcH^y%~81nGL&i{A9ohkdd>t95_ zUB5r_r*Zrm<2SB{efK`o?P24)j)Piv`BTQ9_lrS4L+5{3c=kdk*Hbyuq5r3T*iE?o z)%%_QM}Tuay|G%IUw*>)ooiM6y)LKm(y0GOUC-Z5<=58hKW2RF^S@AUOmgN~<2P#O zethvyM893D?UQ|x@gp@q?U?c1THMh$8^50HDcAF)@mv0mOyb{f0ZzI7t#WfJ=|9#gqIe8IY z^|^?N{uhkzui33FA7-Xw2-+W2lO=8N>+cN=f`+}+gw zzYU!2y1rTE_m4UMr=JOaPx(J(e6bh(ll1&M|7G;Ut=f9umm6QI>CfZFuhrJYUT(bS z{j)(WjmC1yU-M&pyYcq3(Qk=Qf5`ZiS{%Yp8h^LXk-p3Q{7c4r?}#@JEjQk8d|xfT z;@=xz`l#v3nIq`QN_5__ePKd6LHKpBSHeO_aai@0~Z^^SqP#dBynRH->%vVduXLoOJR?ZC~y8 zJO9<63VQgs^@JZYe%*8)t!OmfWBk@1hx|$7_1ng8zNgv`A5FOB|3_V)|C;bGhO23w8ehEL_|2sluQZN7YW&uvz#s8@f64g4e;V|b=J)>{INy7vw%_W*sr-G>KT9s> zzZ>7J_4DUG75#S2=kuR*{udi>+!^DN^zg5fzulR#pO1Wz%Xwq;Orop9Dksb6wTJ!QE46vQYy5c+M7!SSa$alvi07jX<5!Gde{1yTy73<~ey|bznB>5(8o%)c zLC-!Gu<-%oSKbrtiocD$7fr|D~X-G!MSY_?XWdN%Q9S z8Qj^mU}OC`M&`Cxs4Yz_I>chLZWquD{%hC4~HF*zF+n`3HNsupL99@ zQRQHtRBd10e|7#FHTn5jKNI~qSKI&ceB+JOE|>rH#;<-T>XZ2H<;Hg%*PZIWlJf5l z{VLJh(D<#IzV~|Ljn`J?+uMxq`>K#LiLQRy`0i^0zv_Das_`p67xW(Ezi0do`)QYq z|9Q&qIEuuNf1U7}J@~ml8~t{(rq937c*FB=D(4>Hr2iYWbE{^ZzxPei-b4@In#%wB z=(ktc{#`eIq_#ftYUA(rc{r(m-ei2*`yH;hz3&k2i|prp&fmDl^P}nZ-`ytv$AGh4 zAFrKD|4El~B^_Yka=r+L9`(SRj|U&6{`pGdH~c-0ldjX4@vBFof71LoW4!TXlrZM} z-)4M&&HvUje%;?kNblVRuK4+yUGsg;zpu7`^X3yk0Tix|fwufE23&-z&Ehx=1G z7#;pQqQ8yCJaEx%ZQXO(`LF-O$e-rB*BHO@>!EkO$#i=~<$O`&$ah!$es6RBTeb5I zo-#i7aLg}l%lThR_+!yCY1}{gozV{s?|Vx9`Mb`)&+8+pKR;&t$WF{J$?x<@uZgf{rt>s>? zxv||kKWGfs`<>->x7}nzR+d}m8|}+mzQ-KREtEe%J64x>Hipej1`xTYKby2OdAic?L$n$hARV$aSt3?!OXS3N}Swo+1B6afktzi_=-bR08 z%*N(=b91}hX>9GFw%x(<%0{OVzum31W}=bC@@97(c^j<@o&ErwjaIc*H6%{Sn;h6=!1`uu8`_1Z|(G&JHzfqv$Z0OBN{oFpI3aQ zyVVX_ES^DjW^fToYb0Gm0d16>U$dliovPXBf*17%^d;hNw0gs4r{6~-r{*7>TRhVo z4Ev&m;UGsqwF3}hqqEX#cU#E4({1DLc5~R>>?ncf^xN*n?`pR<5I~+qq75+t5kMF( zND6*xb!&ta ztK~u5Ni;M!*7abX-FJqUdz~goN|%1eU`QF0o`m=UJ2Ri^1`@GdVv64m>s2Ja)RV1-XZegT`Rb+x3#vUo3c!q6n)fyeSnK z*B6#Ib|68SA%rheK}KhezC5R)beRZ<887uaoJR)TwY}a-cyL~0izGO2w2cF_Q3IPY zu&ix>gZ?l}>P3ys_Q7U*ZNO1rl4OV!NO7}$sJwB=HwNp=31o6b^998~bGwg;uK{q} zr7^i@hO(&fGC6VRzR}DlfTAwrEcVd&1Up5EJ#ykUYTTMAn$ntRu57n23-oK&Hzhq5z;Ip3LQoL`~^B(g?-vzdJiwBTFRPq$4DKe_QtjB3BdiP60XG?6IVSjjhh`-UE%DE&fi#FJ`vYA;w-HnzP&= z@|Ae_VqYS2dS-!z>#}n%C~eOG}YP%!Y{J6g=O{z&nDw1s6_EvMSyfH-LLUW?EzT9WGuwO2f1^0XD6~z3C zPP>CSuC?jH`5F)yigb#U&K{cRT_n1U`M+0r_j8FX`*4i?iz=Hsf+#P zUb?;AC%V`f$Nw?>KY;%ejXoOFSZo7qPvAdpv~i<-P>-Xkc%%=GidQo=h%Ut6=1{r= z!6KtbAfC|}D0$G$?Y9o5$C=z2Zs2y;5961VA|yT9^?SSNv6a;5dN6$PGc|2;7 zU%fc!P(RkIm5eTnq{>#(Z(M1OPaNj^hW(TnII+4C3FM5#T5GdNG}kt%xgT7ClmOmb zTVEcm$7LT{h45C&e`)A4NhMK4QvJIZ8Y^2(%!#N267BAVNOUfdoKBsYZq7V1*PL3M zJv9Rjcka>VvH3Hnnsf6rN6#K>96e116G~PO+}`Tl+Y1IpIWZ?9fqP^&C~uwq*78OJ z^&L>^Xgwt#K-pLBD)@Hq8Xs?KAq4dqSLLXro6);h!o>yW~6<02;4 zNUdx@{f*@LzO-?0Uz9U=3<6T)wALzLDD|_~ht&xMzlj=bVyfX^^=9ZK7^zIH^;ObH zSd+)7g+}7Gtz4GyWP3Q+%Fez=3I(qAw>LozTf?>O%})PvlMP~lo4syi1tn1E0a{y~ zpcF>x!DAD62)#dkX}q!U(0p^aLU;?dH8SY8*=rt}7-t2G>jQ@&U9xK`7M1IX>izKt zAk3J51+z44Ar_Bf0oS34iGw2$^po0ycz+#273+}SikYwWI9|f)U^1-Vh<0Fhtle;f z!7Q~K?wO#DcBkh-6f>X$=Z{TI92|Q9>`L~%|GvZb-e1GU$0iQmdmq6AhbHcG#_>Z3 z?z{I;4V)M|co=P|<~%TV{{-4m1@XrF(1t2_-}u3UsDBkaj6RCGUwYucxJimh7-xO3 zX|vab0%BnTnrjYVy`f!ws1Q_5dLlRgOqytrzjcAsg9Jrnqoo5TnOo~d@(b2a}jO|sk@dw8DD3|DHxkN|H9l!s+ zz0ms(>{Tw%J<0_d<({5hSakOux_|trT2{qQ)G;vmNIqaA`6dn@7|91L@_`5*^n1~z zCq^nWabS;!4~#xM{=k9xXkS($!I2Wj?{kTH#{2fpI8w)PklyHP3VO_o9N()#0HZ=d z+EJ9!50n&tSV@%?VjJA*p2@+9gQFn$a1ZdlvAohzCOFYm$;t${$Kw-+_jnv&v?PCg zd}5EB03&B`O3|bW?HaA|T8ZYgTcV@oq5~?_A9;yJ38Lu$HDQB+Gf2~V6_P$sg-}{U zA|BJyU*5{O?oHb1DsgvZ(~BjgUr&@)kJyw zUQOgs?RuE*Pz_Z5+~nfSiJ3>6gU(~k;Sk{5iMh%7$x}0nGxH00y}=T4MhmL5^XF#L zvjH8OojEx@JH0o!++Jx^vjG{dY`}@x*=XY_`gKtamkt3vIfaTqoXk!&7axW%HL7{r z`{fHL-D?l~T{OF!!;9P1m(9(bUYtCA=G5%u$@CULK-YHyof zW!~@hHZCXog~MTA51m4|ggSkJMkoD5xP;9&pbNbmDYEX)?BLaU<71C3roU9@;nb-t8As<&(xZPMrc2?w1EU$b!Z(#Kay=oMi zkY6`@Pth%^Al_32R7`4U%95_DJ~cKw`L)zv1Y*%3Twl&mT$DaC+zFMjxQE4z?y6m8 zxJ#d0aZg=cIN)#>^~x{V`9G&<^tWNG^EQniSK5^aj#m!8z+xypkzK;)&HQ*y1)xKn`QGlJPxlL-0m-qVkhQ#m zZ-~zzt1h*oDe+LeuFMPe$(}5QIJ4?OiO&w=TmfihqPU7m!fUgQR0uXcm5WGT7oE`R_b8p(z#tZpTH_DAb^uT_->UNX zw0V5Ht!$=V_B@w*@gRPXr=-i!Rd|P;jKPtEFp(>=N=jpKB2)-IJ3_ye0!gjqW4_9s zG16R^eNb^3eD#IC;yI9Fd$34<-|T=>Djh!0DE^ zKw$;j=o;M`%Ti<_B4Q#Y#6(QglmtCyR?_X7#-RJTzK}{5Bc`X#eCg7hRjH=2vb-E% zJAz$!pTk{VX#n%bn1k!$gEbxzmQInxm+)dgPVET-&a zF(%RsKPVheMCGxzdRJW2o0KNGnJEyTXaX$IX(9F}wEnga0WFt5np5z`LQtG1L-mu^vqOpRWYXhs*+b1NIq&#| zI&hn7au^B;nSq351wsizYXL-$a4Z=xC%b{aHBoXrbt7&iiwa5e<$A$ysJV#lU`~2!>{19>R5qyu?K5eZ~E{nZP0nQNoJ~lcBklc?TKFiGmjuj#F*2!v(X^ ziQRyv?}_1BlBGX47CI$OeoRm)DZ8@?}j{6+FgAOL4@3+w9Rh zj`3_{0tXC6HJ`bIt(hu>%<-CxiR&a{^pI-X9)R|#i$`L$r8##4zmA*S*xo)*p(+Rq zNo!D8;zA)!U>8gSP!$ZWV67~orXrKBFJPHIE;qK9p^m7m-tusLBuhXz{TJmKKSbM2HM3j@Ucg z9PDJz}5lEHbfq8bX`#iCSOMn(is;4w_+w|xv#HA~j)e%nl%z`=&p3(8U%>Eu4I z)n)p)%e;LS6nUH_!g;7T54J8=toJT*e)9Bm#LyJ^5d*BClf55USUfX7(@>uB6|HV> zy~72|y`PEOgGT(8kF^o=lGA6cxp5l-r^;47);mu&yzSdGX)?zk^iA<>(K={yoBw|g zQ`-~!4;qwV;#JU$3NG%sK4@{Xlmkh~rWU8`)Rc5haV3R-l6iPsW@1R>DuA;nl zuvrO6?bRh?apEnJpVz!AS+5-KZICU3$oUHQV+r7$G|!{FT5$)P2glM2*v8ftXDD)z z#~7;L4%pl3;OGrim4CVj^LiD-XvF<+t)n!Au%k5mMZj_^bQ6}qX^y>J+|lGmBVTtE zQkxzMiSH7m`lLHaL-jq!4MWU9qfPl4YS&q13^3b9#~J(lb(1 zO29ifP(o?}voOXELE=bZzK?q(dsr_l$`hFUS}aTnJ*$+;RVs>6Qa!4aN>obkWr3@V zSXphWX82KF{HjR&szCfkaY*Pv{JL_i7z^pCcB_~rSR5w{)=r6df>0F3l#63h1u3Ju zz(wL-6gt4x1{BI46{>{lsg#~lO2sP`#Vc8)(~%9%?A$`9=+A*YmN%0Gt5)m7!p+pO#K&0y)2TdfgfVE zA{mtpdI@4#<%<;^DS`(N)Lz1S099$HSv4os&rS!;M0UO2xL%r8X>u$TQW=BD(69p! zV}LCby?zs+qpkHkU9rJdH-``^4Q%A;A=Z;yaOh6fi<_(HTLj*VNP47CYLncu0qwn~ zb``)l0A!%fstjYI+GXrDKxzEZs3@U^E2W-MN{v=3`dP_J{OtzI9TicaeF%@Zhm+A!tq;Udj}ja7)~jx8JR;ccVCN7Nj@UTGJbnxNG24|AuP#BEG17IST{Mt1^OB9(2CSv#chX*I!1kCa7QqHZ{ovvdnee?!zX;T4UDc zy{w&Ubo}*T|AhOL=frPdJ)UDpEX_* zW*A|6Yqf@iao1qO3ox-fXmz`BspJH}M&|;yh$(iQsWA26eA|RP4q{P`<nNIwmL)blm5)Weg&E*4Oo%>*ppz5o0o_R&o7aEymo!Ka!qNha=EcU_EMwM zT%l6U*!L2|RZ$P#VZ3{K0N02h&#tmcbfDmNXpr(JFEFn2VuWM`={hS)*F`1NLkBn> zY<28~NL4U&psaGrR6L%5N<$KuRU$!IJq#USCsaBYwGf#1Fo4v>)k@|%L0U;HN@f&& z)|dmB?3NM419c~M2cX$0nU8pZWdm1WS)&RJEl97)v7%KuShT7Di_R<%ME@ zsS3~~%N)?4TlCa+n%G-{U+yr;`k0s4QxKiUi>yWIUh#SY>ahxvwO0j{P4#8bN?#WZ z)HP&_`GJ?*01;|by09a=xEZ{YE-N)rL(2QuG*OnNi|W0~vpFTO@ZzR-Rbn>9j!IwH zwgv!u6>~lMH8zEme5~uDkhrVeAE~v1vcA)GHZq;2HYTxbkn5#@`rv8Y*%Qrm-tH#;f6}X z%8wnDx`dlVx#*%nLQWcRS0lVLOtJ46U#MSPD+~8HMi!=ci&2UE<+c1hC?3Cfk}qNk zJR2!wbqblI8W&}~tatkx)Z+qcE9eAU!UqFZjX!aNn=92M42l}j@Af*IQp%Lz5{vM{ zLn$vLpq|`Wcorf0I5|KGtb5^?`n-yuVp*{{0nk_=PD;Qps19xjy8`elwI07!^8>GA zp|OKZ^IWA^A~GxSD+_=?l%ULf7ZWlAn25K?@iAbjD&0x~wjNe14P2%3H>&Li0fcs; zIHs9%b5d}uzNE{f-B9h8A6Znz(Uk{ISLQ}I3qtN77ExLC%N|vNgF^iz)NuC4HtiSq z9jo;Ppw7@HURb`$!7jiJ^$vccbC9U?#5NWK@PgzIXL5xu7yN}77~PQ!ToHyWq^Tzf z3^(`ynt;;;R(86Gv)p1ijUE^_f=rwu;dQ)4Qj3;uTBP@SpIo$DPKEih)n4wmWp=zvBDw5tvsZF60yLf|HHS1MS@R)MbVXByoQW|Q+o2uxBLxCrP8_>%8B!nQjNcX1g1@l!E<}Pk zK(3J$p&qawXax>Bn2Jd4j0uL5AFj~>7!enRfz2GNP|s2Zc!8KttB2f_2g!kr!)0^E zN1?GsgdFn#gW>Yp#1<{^#(L)xT86H_L~`C{TOK)t%~g{pA3QU^5Yb=^g)T6NLd9rb zYT~efl>1y6u6zkHXvH>&5+qJNK6mzL7UP{mjIg*w`c36!aV3{9T8{yzOR6Ype&!(s zJE;&}xKhRS?CE1=m^SOqOakLw%R^Yv+!3oMCKngyXOEs;EQ83^+yY&gSwz<}B>a*W z#qlI!KDrb7k%Zv}Kl=S3;wHL~w%U`|Tg4MNNQVvMkFqGCXOxPl2PIja5-cKavH*@U z3b@2ddBlSS=n}!9JUCTB%{YyK`6dF$=N}EBciX$Y?QrZ>i&T{=FJXg9ptX#M)I^ab zj70@7PL_|W45)uurP7d=cs&b;R`^^R&nw*nP3_FVN$mfNE8)R)J>j#v|vazzZmoUj-CuZmEI#c)?6J>LS;Q0Fi#N~^p@dG<18;F zCzQNM@1Y45H*~C2aL=GYj}Qk{YmoG~V}&4Tb0j0gC^SKl&54p~L99Fh34A-p>4$__ z(5w)XV*%D4@NFK?Ae{h%8q*uJ8G4b)WpJu0qFCfT^T^`N>4n)dr)y%Zz!Rr&%4gT1 z2=$;;fQs5*z>>|yl}w7_N*Zr*6&?f92#ccxFK&fOTwGR`42a4`z#&!i#PJ8z+ga_# zigN%1tX}N_N4!8U9U_pC zB+Cv(#xzuVW}<<0HRgdfMK#dbOxSz^u3S7J9^%VvI2G5)asnlBH3V5XJ&=x-C6-8} zCn8b-cQMf`dP8ESNYzh@!cI1*mSH_Kd~V<7^58s83Lch5GluPnwxCt9^moXn(A?1( z?Z!w{3R4EQ&4meMpF4VD`q)I}E^=3a-r>X_3KBv8&YhTAIILZMO)_9Ux9xR{3@RGJ z!B2Q6kAJELSY!z8js~px6fCTyO?9B21&PL>FcpR;Q!zSoGpBN^HeIH%VMfnlN}_tG z6_eWvo?)tYo;CuMa3t7j-L{nIT{urFNvo|JofWyxx)WG}nOJGgojZ}K?O0I7;LDYf zNqk}o%*rro{D8sZd@oATp;3waSz#_M;I)zD=qc5oVD*&*pCK7j&R_@AVsj;Kz+S@* zSOzo;SW?WvTsZ7giZ*7Dm5i84j7mu{0EsJctkHGIFUp-rL*8 zKCa7+7NQ@i7IBHPiTwpTm`Xvg;D*>f;UIb5Wm&itkM}zlpaJtNMFT8D)d+i#$yS*J zpK~OXAqM{uHZNn%;yMjK^XB^Z1-k#EfJ;SLuqKS!9#w`7>NZM+0W7Y~uMviWr5G9& zL6f>SEQ=lLI6Vp}2uL2VHtgeA%7*?bpmmuSAqOO1!41B;g5?r_b(D!Ia6)&YrPt>nOQY}8cpOF?8xwMII|7`l>!w<=`lOxc2n7T zf&cMZb;N}pEpUyEmf_hCT;Y|RcgR^2`qYqNn`O%+;w~I$uFx1p0o{oU&7+eG*tt7} z8F_Jj64uB<;{teR6dgg53}ktnFHj!XySX!1UW=muT@SioNWyX~hm^%5r~x^UDQ=*K zCvXeV<^r57xuUVf+;UM5pz)ES!Pnw4-pFrj{g2}BmdC(x%+0IJ%kJ}GV;nms$zd!g6kq0_JiB=O%>3-)qa>2qX%R>r!xKFb zRd=Ev%D0HAIfuRUXQrVSB=RznRXMbLzFwLaF8O|I;G6=oZW~x7{=yf5!yJ`D zH5&_$&>C=8=%PFn00p)%|4>MTk;2jK;tT-z;88qqGu&G@HAgalD6kLIB#EH5%O-cs|$e`nxvtSVmv(GLp zoCPm8r+LcC+!;vK)B#iQOO$9y!6hcrHW5c{nsGF5JqvX~QqfMIstT-EGA(rw{MKc` z7X7CXv&fcBi6MDez&4b8$Z5nXp`tjDUezex0*Ie&x^hUA_WL79swcNM? zH-Pq?SMSk}jd>Oo-s?fsrnS+<)L5%cR!xc-4(l??EhmgYvQ!2;y7 z0jwdSf5!kKY#L=!25WXH;ZHG8d)(z=%pjSH;+I=H!|m1807CaD?!kA7H_^5#i!Yxf zMRZ#ocubR=qkE}rxrAKSu-@jfjzMOB27@+FP0r1MA)+ViSnay#y(*r+0JC&bU!19~ zzw7~zLRpbi0$3zwF7}E%$%L?k1o?_POvk3ZTsCMj$={7dLaFee=dCr^lj&NbVI+4Q zNEJ%+*}~bQi}N%2bk%Eh+4*zxXC8Spe6ym{5%)=CaFff~4v*t$v;)qjK@(S8sMx_y zd<;FVH0J#6wXiptJjL8HLn5Y*B8K<25C)H1{E^rp#yBiyM-l|!6jpJVv2#gTMX}5f z>I|4*8OIvqK2wOSjnn{f@kntT7N!=PCm}=|Oz7!^#1%<4A))n!R)HajsC#=Ait8lp zF`m#6waSsE6XnU(z-66dsGRDhJmPNzRmfjtV?CkJFw{ERtklSEN;A#w>4bO{8FnfD zLMUO4*ma`@AHc)2rw>fTC1bD^!^fLA-GF)klMGI?%lpctd(vBEH-L)NrsWxB?;zWLA>z%(p`D~c9SLOaDSFW1ppidnuUAAFOkAXHK7+Ie7-_2KD^3rr_qR6*NCHH9I%r;kh4+QhOCc z6=G%{?&j$xw5aUJqo@@tfZMs|lieuJb_%RgKWSHLZBnZ4_egRLFCNIMN-ZNR*{>{7 zrr7KDA>o9W`|Uc?J3w2>v*)@1NKDA*+S}S87&qyarPUkj$tV}4fd`~HG!=L6x*&2U z%XL4Fe)57iO=hjZ18N~ePqcycOp}ST@jbXh5MeWTV@eHZW3VoOIl(PV9?Q%O-ynE& z^1)JhtKvC1pcv=ITf*B{g?O^oV0pE(vW%!@f1AU@fQ))eHhKxl%2F1Or0a1C>s8Z} zi#P-z)NsSTQj6UqC@;liC`n6!_u1u6l1H5k1Bds|!$2Y^=P;^XnIBccW|)?KHHkO4TGqo^B7Cr~t z=;WDVB~dV}fzsp>A}`DQ3?A`t2_=w^Xp{+s>LkpqT3#AJ3yYJBXBTWlxCE_{=JKK_ z8C8e{`~rb9sE}#}c=XXl@Itj(Sne$4rE@+s@{%(URb?E4vdK&<#FQY4G*o-Oc(Zg- z_$<(gO0F{ncPm#du(Gf|9KsYqax8AgU?^vcvxicHK6mRW8D5XL59<|%l1x5q*2T66 z97DW;IQUkP#wG*pRL~8-A>6krA(XuE6F|!rCZR+-CLFZFf&|sRj0B78M1ngw4PDD2 zXR!cXicDW+xuTKQFu2#j<~g3;rh^ghhA#)xCtbgAT4NCopJ2(=SI+DD1P}@*CF83m z+0Im)7=#w!(;c)3G1(6Ay!S$(UVI;C;^Gc!h7VBa2J{cS9K!4Z3&?KJQw@(b`h}ZT z>5;@LHGUYI)*Unv%rt~QmOvj5!g3hX6&JM1sxj%a)Q}=mYOD77{>mZF{TSmD^G6R! zW^>|AArm=x^vrY-Gg06{%@b=tH1B$3-ibiUK-bh$SonwmlLaPVmd^2nXRF&+dSB7_f2Dt-tDN(`Fk zbR=KV_}bkC&_w0l6wYacxnHkT4s+^bF*S_yC>x)M8*^yn3hCWxPxE|?tW}dc!*#r> zOEwv~ITOx`(HqkWbQ{HIa7M)jIAf$F^k=t67lztY_R$%y1FyLwGx6N>3 z=EUE3Z??^*(OZ`{`9$aP)42Z4e*w|kdaHfyPvcWC$%oWGTWi>C#F1nD9 zXBkE-QP#EWo}w6JFYA(*qYh+YiP-X+z!w?&Srk*JsG@c`8D+IBTUmdSG`rU@r?ocb zpIYCBza;Op80|dIvF$$Qki60=xnF-DY6@@44g+J_x2dcj+^Zj_IMJ<&$fHt&dabe? zqg9&KYUAWqdjWjBym4CgW?tvKMzjRTbJb2y=;*jp@}#@PGsVCle{nbK89pGfnt%9-G*WyRWa%$0ZuHuqT@EDp`v;98aMr5 zbTS@Abvaw}cp-d<4I0EykkCh@QBvOTC?t zt@WyUzbH2L#9QS)7er=pibqh~&l9sf7odv!|#t6jf6m7z1RH zK|gI2U}|c40|(wR{5BLs2>9lNJ%1JO&|cv90~yN0tDF3YLmlJS9_koB3sJ}T{fIiI zleNMT$?E7G{31m?pU(D*eCM~eFK(@!uC{6X0bLh$tlm9T-ehIVD^|0-Vg;)Y#-&PS zP0OsTV|Ilz$<*;-Ch(XNL`~wWM=+BSCRLF&3-fbWD97}SZ$W{yFb`a45L-JO6$1yr{^c zeGBJ3YqZ%;5-| zZZ;b_Du!Q8#i>~92-Jf8(VXTo?(7uM2Tz}E&K&mx$EW83EuNZ6k3M+v%uy^3pE-7n zp_+@6M^DZ)8{CSc<<#Uz!cmu$6Je4LDIXYm)3|T|J&@3bED=|FAn-FuQJ7AW!snAe9F|v{pYiT&>`@v)J%^1)X z4zL%q!C8)4Xn16a7fzQl_|>7{SmxC}4eeIv&H$b~yxc#pYdOcuQ`uk~&vt}DWgHPxmF>)_<0Gis-* ze(nHip}EDGTwO15!?(iX0b5a_Xo2*uiVdL8bpn_0-hm57_dv84u2%0Y$SGRP7W%p-NZn^uz!j zz2){RaVB1Tq0HR3iKw3DGUB=+E_nQ&WFo!UQQ0+Bg&PXJul{g@G@`?y!XrlqI98{) zEP?1t@kcm)NsDZ@Nm#RT`88sm+^J6S3hwDM(=&EgCN+-)%?83%hlNJ?s9Rk{kYZla zp|_ZOco4A3ncL`w+d0+O*O*x$a)LZ}d^h@W`grpUNF5a3;9;2fEs>I z1*G8wbR-=!BkF}Dsdv#fIG6{*(XHL%{)Dj24$T{0Cqz5)dPGBQs+5KFf((r>;f({nv z&%#Pz%P8N21r{JQHQ!TIlf>}hF>Ii;&$mGdhArb~<4d%nOOgv}tk1)Hl8(q35K`jO zLcu{s+oV=w zHw1UyKFoom1l5pU?}Dfg94sZn3St@APvSUQjat%B?IkEjBeXm_kpxiBq#&}&t|&?i zZYCCcBw^K(OL*QkC$OxU5wb-EP?H?g(FVV4YZ^KbgE~KxHm-3iSMm?%H={K*&z#&!<3cQ%TygXUJwf+h8(9f4_B z3)c_N?ruSg$+#aYzghrV-Raap3( zMSez-#uYjb^CrLYiH0smPe9+8nObZtLOqy1>Uak*2){DFjo!jnl#=_ht}1)7SAUlK z!_bL|BS{})BBwjD zE(VcL^JQ?6?dcH&zl86o42>yh4+27!#+nO7gcWU)4Mwu;2`|^CC2RFF$#!85aZotq zi8VoN!)f%a$V#Cfj@*c;T}tFCcTeSn!D^4H3N&3*g)&N#-Ia(%hV4crP2pLbBC*t2C|RhRUNvZ>HbM@H7NvvXOJcDKgi{ZKQR$Ja zYp7w>;v>$=M7_O?6JAKuUx;2*6T9vhH3f~n=nGc<<*@E}3{Y-eWa5xY8mqi-n?iw~o z<`@j%&7>HL@}zc%3TmC;N4fc)9u8{Ls*W5a+=!awJi7oVRCB}6WE^t-> zdqwCeeO{ardmXGcNp;3r2(Wy11JhEIwR==!g>=5!Ky|WiJ8;p6XS~*wNQ|d+I`joT z%xAp}UyEGCLP+d&f?1b+mWnh)W18n%@hrbaDas^E+C6Qz;G_w$L25}h8QN&kUzd+K z7-vE~D+-;`8rv*JH2U`FY^sZ1z|(1{<6Ka~vBx1dFQ6lfqa3=FOmrLYazRzYMO4UX z=|~Z_%l6sEm2-;IAC>&mSV`u4eB``u7jS?j1`-(IpAXr?xL$2F`SDB zTT(a71=i3YBP<{_6RBkBt5wyB>=P0^$UZu~^kT;_${`MCVl0_w;ReMjegs}%NLUzx z9Sbqgbi8Oj-m!s$Re}x~BQ8%t3!X!){%=qSoI+5txP%-WF-#E95iQkd&Muw;HzflP zYbrQmr?aRHqhz!NG|OQRl!t{z;;x0HrCNK6&Yb@C#UL!LB1FwN`Y^fp0im!7X;sAW zoH&Uq>GE6wI|pa{4AcO>Bb(|u&1=$=N-sl$HN*Tgp2C(Kqa@{~{BSPYt1&A4{P7Tl zJ}M^d3!0aPJoFT>1kHjNM$T`THW1=OUc{Q6bOe&G?KrF(kt6Dor_>GG9fsZTaA|zT z9(oe&R8rXr4$kW%<^|lDY#udD6EeRu5Ts-G{9t`&*v6t~CS%c~g(f6%SY3G_ffxFT z#S~|AiK=KDqTPyMb#a}0Gb#Ke^b4jH zlcd!*3`Rb;^7{zw&dLtXIET-h+l^ygrxN^yjY4PvI4k$ZlJjgsl`}0@%3``rqnx;` z$=)VwQZZn>7X_hQ+3?*Z$6ZBp<_j>@hBPNrRc0Kz{CFZ{H1&bzeG}L`T7EMb{f2iH zsy5YZRGwTA77`hZBaqEh)(M;j)h=YZMsuUG2i6h!&+1s75#zK)g{$cjIm z!X*Ngh@m-JgefegLE>8WcA?~m@U)|tW{1Xxb@zUMK-LGT=s9C&^V3@LEBFPRok_V5mlRcBdrb2y#r3t5d zkv~qUuzrF=jIsEq0UB|RQ4f#B0#rwP^R;jT3n=wn_D;&LVg{!$(y7YuB8$=%$_*hw z*O1YyO%ku5nQ&YJpx6m-xcZd@M7rTPv(jlQ2sJUqwO6O%C>leqk4L!s2uf@*)`zAP zU&4)vctHpn@2AtNqT0pYm^euaYzP$>I#MBRB_k1_RQOubt1W%2Ms0L7yDDXi8mj*Z z7fgpGgu!DxIc0NY`Cw9~6NeWwVYzo_ge&P6i7%aDVx=EZjtrclQ9Mkug#r9Ib%Zs} zWjfhPDV$IfkQS4mTiA9`_yI|hP3OQkZal3O&BDj&uw80JiJ91Ntbk#6MFc^>=?e8&&<(k25W4sn4h9u)9LbRnsWoZI6=8#3RLN|ApU#sV!SU(5$0TqrIk+*v}8}`Iz8j?XRWYkQQK z09hKCKZSM&S4jBtc-=70)>;Ud;fb95t}G7b>nxwg7x3)HR$d*@8+4HwBja4ht(7Q- zGnQt(m|-!$$lXtJorcEM?l?%KXiK5UFC^~VBOoeO6tf^=V2a_R)D@2f?Np5tOi4K9 zF0{ma`aN8kJAzz_)0#+6t3yQLR=)4^p|m7UbES{gij&UIEQaBe?+8Gac-j5 z#eJo7prWAh#T39v6%z%QUZmMInwn6OVD}EE3 zg>fU>k^4PSP+kp+ioy~UM<|Ri3E;#w_anqQ9eE&KFq|sIT189*k|<&Gl4`mu+&Czy zNkWn-y9o^vHX#B9GyY0it>!sQINBzOZcCQgG!C-XqD_1@Ig3aNjjgnYz&dlKA5CMN z7Q!Jv#u!G#%(T8mCvMn-E0iPpWiktV78Dc*QbL6fPDDKiSyyNY?5mDhx(z#0fLnzm|@04)@| z(~4&_x0iE5KIes~wX&%}P+8FpR8h=6a(CexYg{tG;32&*aiB4(2Z8_#Eu5-dp%DowK+mx<4F`lNCGoUJ&TR1j^h@Z=1qV+Lq(n@?jCOWDj z;lN{K)}L5A$}Ek3_!m;ZjNX@%3|PX_zl>bQ@skzllA?uSI*&*gIKD{xu$ajHbnU?_ zBHuH<`WN$VIy+aklqvw#VKmNPllrh4w>tzUowlE21IzfJU*(#?jFU1^fypo>w@`49@yr(BzgH zqzNO}NLg*UtFXn2@nNc67J~wf<>=|gY8;8OvfaKM#6#y8{M0&kh##mV!Dh>fQRC_3 z7wl{YnTCIlG!C6`haXfJ@ggu6mSk$dLwrALS$sjM@G4`1yF5X+GQ~q~e-x1;(xwvW zaOi`_xR4D-R$OX*UiYjCigPSq7tKVl!02R70**OFMoDq54slbf<%(kebx+0H;N5JOe5+nky^EzS@xQ0sa0QnCCcR9p$-iDqa< zA%VuM;$R}>A$RjNT-&kkT&LUNV3}-REP0lO8~b?oZ~kj|pV6k#NNMZ_E4&{&P7kR;J0vpPg^M4pwZ z17tKCAD$?WnS?RwKUeV%t4mm5VyU8!9PmXVM0Z`lcX)CpP{km9B#dQDshKjbV*nGU zvGBUuMqPKO;f?ukawQg~@8S13Woc`lMpNK2fKZ<4`u z>0Cmfv7G86!6H^=B@T@`1YYJL@J-qji4WsA9QFXoICd4X+NH*60R#_SSW*rU-J-)e z1g&=<$iIVk6>|hUWS2nXQn=#-LRO}dG>z3n&SoRxvM9w~BhGQ*if3obU&o0Q$Kx!Q z-aAYzQwMQeOe~6)>-Bg9-&Ek?&zQ&E9&V6ui%v}+v}7hlv73D;L5vwWDVbQ=Vjnr3 zqsK|L7>}f&ki-i4g~;S=VG~OSSc-Ps=N|Kf7%mMn>VgBTCN5F06xq^2Au(Z=J9gM6 zS(2nZw1IkHaFoi4v#rN#k>tHxhM|J&*O-4(7qQ{ynYyJj;_D2zr$$XnkjceVsvOC_ z)G4BBizHa=CiNt4A%@z3oFQJoC0sFy`Ha;`G9gYQP{*>~TAe1{L6hWn2~~VubVnGH zl=1__yAd<^X_<9PyS3N@^+1z0&b}EP4@tBjiQoYqL*NiC z4FAg31nl+31{TfF=Q6p*ND9UcrOHm-7!IDepOh((47k2(g0hRZ!Rw&+6!RRSk5ZfE z9WJKfnwwP=eohgCncur`NU76C-$h%O^J>OXd&R{wX0IUIht*aVg-=Iw=LtfU zw0k?OR4SMF!neXObjpT!E;C9{an3<*84r*uBC)98#(`S!wqi#v8L=VvcI}XEaXFbD z>q`?1gfC_}ezF)1PmY~d4?ZvsG|g+NaqJ6#1Jh}I7Kl_RH&j^t9oDavJx?o^H2 zaC>9>BBI~m7s};@JC8$v)%y!%uQGTdwziOONE&;eCWOX9R`Yo<9OhUrOM8148#DZL>vv&b_D<9`Q>xALDPJxT$Vt?bkX z4s%qrFmOtDNU~&e;mCd}oa)vsBordxp6n?qk<=Ns&?GWnP8*m@v;zu%)*PM;>1jy40`2<-5d`LZ*kTzsCZg-91qFE*xBW2r5! zZRVB^&4JyTKJjhB=0L#T%#-m--Yi_l6nrU;7=w>M`y|l7FG1TP6-}I4sHc4;nA5_C>7I<${4N3R9GwoILp4m(%kaa07p%E*d z@|luOFwUlLE0!G3JWlv9v#|Y1(RM!3W*KT?X%TukyIkk3h#bT2z^7RllxOy!9)fW= zO{i z9QyhckFLl}HVnKC1*%+>%wG6|bn~v=th&jCz~u*g=5DjHfT#9{q(&E3ymG7pCmLl5 z`a`#klR?7^R9&!2Vg!RBx~dDlm>@7eN-WSpok)>mhsvFYvcVgrWlJaq=mV@56}po>3ev5zS+(JC!|AT#GV!j#Iz3hlZY$?Hjj(D@gQLeCA<~W~ z7(cJTRMZS#%S)feQFl1o;MhLw}I*RoXH)bUB2p$3;b_7~&a zg~f*<-|1_kE<)X^6NfE^&@3eE8J_2YGvdg!X)?9+ri&^Wl9Uo4n(Rckob)*Up+|so z=x5p(@I<3=#?YriDY%y_OWGRzhZO$O~=`H#ouzDi|7^yKnC(w-OwW@|wS;o?1sz_mWTSbbwT1S#A69>!^io(%s zUf9aevNziYNBx&U!0aDM7A8Ul4KCtH_fpVT?Ig8pIiI&QTu27+5CSfAy=ep=k;4qAwQpo1dJQ4@RbFf0)sv5Ep z*BcWKK6-@RM4Je!fEu!@W$j$o(@^{Cm_cI2^jX?LcqbimnWh~5p%q=)eS<9ui#!Y% zdQa3$!z+=_z4q$N)D2>TLPM4YwZ05qJB=Bk*C@0Y@{mf&+(;aH7@LR>%H@07T}e4# zu1r;?a<0tso-P}NG!i8X6?dg)8pbzj?f zQ#<&Q?xg4k@f@W@L8TRc)84d7k-(N|PLWngME+k|mnzd*7_7xyv(lW&Ln)J%%Sef8 zQ4}k3d6M4}Wrnh})5Y|@Md7%!!GMoCWsvJfOG7jUgm8$$VtX+ZN9gYr1Fae~7k!%+ zZIS>EM`bMBl`G$}qLLQukz+HGzJ@s|iu1lK81NQ4p)<%0m3+jUge3rDF?MrpHO?8( zJ{giwZP3%VxVl?79vb9Y^rpsxJ+1MemX<_$rh}Us}v^PKkrBRF{irDShn8n$37x)pf^)BLroA^2@ zwz-6M!H5SAgudnzk@WOQLPTCXJ$VfN=sosK6jgJE!zjl{(-t?sw3m3=n|Bk*fMGl3pA9$s%cOjiHB8rjfCn<=|M3~ zq0gE^#_FS9$uq!7WueZ`q)hQYzL^4EfE3i(7}Z&pQ?y>e+LojvsPub78lYXEzuJoI za#D(8Zw%@;2raSn&qnE$8HBGY2A7MVWKH;y9Z@BQuZ5!7Qz?bVj`Hwi6ug0Th!`fx zZk0i?LoU*|V!}w#uK|FZ=o?055R7B<3H_A#pSC@x;5d+#V69gQZlmdkZ(f#Xi(n z^0l~bm6E0i&j1u_awPh&s$!RRuCMV$>ifhQhYQl2D|&~VKth#ZRNit_AMS+mMFA^qm6$3m57+?Lv@pPIT^??!0f4O^gita5 zlIf`|=O$0ag!y1+xWLn*xOGmeHZaqh#-_nHfiyiEH8fWMwHHAZL%}xGdWiHQE zCS5a2f33R6mw|qGoCGrCUdDuf(Ra zJ8}V_4OOT-dzj3x*dEeg;TDcv(3;Qf#zH6OlL1(QcFZK_QTWe+pqPC5>#) zo0Or5=?m+o6dGv_7!rT8hx4FAqr#r;aC(Q7)}W_P1d$AxJ7SfZkL`5fP-A`71`R#+ z0Wjg!#NHl@X=jP#UiZK5k4W)SAisy)~Yob7#z;)5oXQhR+uY=V^}??Z*pQO zXw==8j?dsrM^_~)LW6_F6U9bcIaWhJcZCLraQZ&J7?alv>W4n`nLO5|SW<)2-VsXi zbVMQ#L#0^2$BP|MXt`3%f*Nd4`{<7K6hK7V5Y#xp#2qoLVOuvMDuIk*z~hyzh!s(= zH~|lPNQ=ux5q6pj%wRn3^v6PuxU!5-BNqiHK#PYcp|HfNA{q{Tn%lkiBE9MiNy@1j z3V50^_-d4E{1`_GmXni*gJlX5iWt?Xq?eGEj*NC@RfiNOK<69eAmU zG5jyFn8s0wuqw$%vIA>X#+p(k2|G5Q`x(=PlV!M*x7mlYJ?($gva5Qv-#Uo!lRd*W z*t0s~IfeWCLx~KN@=2s&aN!1GSZO~JbFttA*N1fzslPeLO< zU%p(-(*&rGwiM@B@W3aX1X0#4*6#I#N#f;M8G`Q>29I>ho@H-sgMPtK|Vd#G;e zABYznc%wj@ z^a)dE7J3t8h4IfU0;&`mEPbR>6|@(NgHYoEl9;ko3`Y;4B%n=S&jje!m{-d))kGYz z$EH==(B0aE2Z#h4N3tm?=ZyLubjsCWy`F@^igSDqYi32KDlmy0kZaMLq7YoDvXZf- ziZ>`j%hTt zLRyN(=#@ZTY9fz3aDco4Gn40a*jNRrZh>AZ<_pHQh&5u2G2_bEhZ@wvuMsbj#*98o z{lxLXax}*XlXmoS7ObC45>j_1YNim-9`T5)Q;)(z;K(Nz5GNj%izBERl{PLTCY{Jt z9}ZG5iqA1dBt|>_rAIIF=)uKS1pwARQ%+Dr~ez}6g zW5;m%NIKdXDsP`3=#y4qCzl3#bb68>3!jcy;|3oxbE5G3o2RE|j)gEC^;<&8C{B$_ ze*Zld+Q^mcmL%=C^&}mLS?`hJ#458;&a-4TQUo+l4oP`7MiZa(kin63=B%R*6ujmc zm+}zIhO>~xv^vON(<=L$2Zd=ugqIbAgRr4xgd;^bV`!y(2%ju%;oQgV&76n}Rr)q7 zDyf4)xTWL_GQ0kK^a+GUap)KqlA0B3=OBNIQqK0;@5->~n~X6nI4f z&|CoNQ>j*AYsPjHOfYIvxTZPZg!m_)v&d~QQFtDv;OISha#q@&J{+Z`5=`>zI8mQ5 z7d)#tCa`pnfJ!bUy!nP_qM}xMPp-&{Jy|_SRqVmd>G3Qggu=o}BJlrf?OcBR&eF49 z;ids37^Dyd2xL%%6r|9y-Pf>++jjSu?zTO)yUBz_rOH)hm%8k#sdBk{BBTf*AvQ#i z1^fXlU={KQAe04c$O_mH2_aY@X2Al92(cnOpXa@tbG}s_STNG`&-MF#FXz1Hy*%&b zyr*HoNZwAlq7mCfZ^o#Y z9HAfj{mpkc{mT1a9X{WqvGfRsx&9>J37j4Ck9Pf)&Lk>q`TYj9rU%PLB3iyX5lAPl zvXTKNQ`H>k@@6ZlX)Vy!lLKt_&@yLG2-fq{%^;y@;)_leY50{U@@U2BT_(lcU%#*) zPFPHpSw2N14U@NR?>^Sg_=kF8BAd<1t0;{rM@Q zCUhh&K{H0RjjmkDO~2%%A+Vd6>`An-)eRKVogN+REoZg0amy(UM?p<5`rsI+s^=Xq z?ryZS08T4dJDJc2&s49Ned`Bdx3J1GV-dUk;QLASmY*y$R7ickO>aYyZ!c>CTz(AWF$ib^9C=M%tZnHk&Z?A3DWSR8W+QiIJLv;(Xu1qO# z0iEl&BwHNF)4sVz1&RU+_^l};F@31E`_jNMs5?NXrb zIfkf=Hn^U)CBT_{jhN7j&p1lH(V+XppM^O_7}t1l@uvOQJV9$Dy45TjA>oPXUm0xQ z+Rd{?p0M0e^T85U)#o&jRe+`{o`$mCYw4Af6z&g%WQt-4p-&Q3@~mbgaX^Ge%wotX z@nW>mOf)GZs9tG(MBx;X(uluX(a4zFTmf1Q3}jU3VbWB?Pf{6^e0P(dMMrPz0ZL4% zh7=A+@@P5LKCW}P6|!f93c|SPPgV~=FBveZj}Sks8szLGPVkZ0FV5787k2xn5{ck_ zuf3a%EMsIp`z~eE_`C3xWu|vi#Rfz5KdAw6=5c+`Jrr$!dUz{z1^u(V5S~=6M!x| zmh@i=1cQR%-P`s!py(R=-47j-f6%dp*kaV2#FXhl)Ljb--HPwDe{yZ^D^Cyy232Q8 zP^Ev->mjV*H(2%xg(-cgV>JQ3Q7PHGJCC$O-P;+mCFm+vYA!{DVG=uYI7s`Is=bC+ z5<#49_JPbgJg>L)vODX)REkQ*EfazE-Ll(PkJ2fT==tHf<%5;1;7am|ki1y0{MK!{ zjaBvb1>uV&v@Bs~_mgQEJ02^>%%l9ZOK7ify1Cr2#Q`?gy`x0D`?aF4_KhT@8g5rJ zXrl1b6H?s=cY#;9VCK7W5!YP_Zv=ej%8_n#t72+#BfLAXzRj^URnywK1MDhpR90H5 zCRWlHAY_GwtS8iMUd;#=*MMt6-I1W-eT#!S+uU-2cvQh%IxB70YXqTjxUj4onYf>Y zes=T}7>V?0O{7>4hAMT@2?|D)YZToqVpK~!(uC0Vp>sz;5b`(XrlYtPUCUHQVt%AI zw$=5)g~L1b77d>eF=lz!M4OdGD0nr7d#bV!-)zrT@r-# zLp#!7#Aop|$A+6KipY$-;J9W>GI}O~#+BNrvV9DlY$Y&}Rncof7tIgQ-W4AGjkOnF zdqk$g@LqFTKG;)FzUwso7uJgAQJ-eB4o(UWG4h^{P`BcpE}Y;eZ9RcRc{BsBi1ka) z#P2i*Mbu>4fbG#;T%Mgd;WZZ8{^sb0oi?a+Nw=K>tX2tV&jva6T;M0Jh{c`MWQmvH z0FMlIuKJbhLod)XLNC5rQ(A>oP1Z^p_)SlCko4}oyUt2}{^a(@I{FrMEt{F1M4r2H z0odvY(Ym@;XVmlH>efCtxl%an&1*i_tUdb{nRHL!i{WhKc3eoJb;V%n71khVp{&7y za6$55EfY}vRw7JcW6D=ql<%e)Fox^$w|Zri#Err}6Z7O$>MxGy-E8_Yg%>@+4N*=F zF1;EBR+6lM9hVj$y}B_4q{Wh(g9E(}rV6khWgCiD6ULC9u*cAS+4CG~wVXx2=`m$R zcIeu%?yhZH6$`(mOmcw?h9?~QJfPuX5N8db;AE0)vhTjV%U0r~&Mb>(kPlQCCqL>C z8(|=2@@uqoY*LGW=jfE$i5J##l?wO9Z1F<006RS_SW1<+&5l-m5PGrz?xP|Dt+F$V z=0rG0v9emLJ+NambW0lc+yP=2DdpOs1sSKQJe5oO??Rmg9kAH`VcL9DkU*iouUwU8 zJTjAh_tmBv_2@($0mQYuce3z33_{masO(f-)qpc9|KOCpaBQ!&t6_RmwG`A;R`9SaXV1kqMkeR;k#Rd&eh}LX*!i;X zAx8w{0P7e`XxXgFrun1&4@S_yWI)}yW?6^ZC)bVbFR&SmjN%!QHpkjC&gPZMa@*4I z0)pD&asBRMnGsG2x1?8QNC&s=-1$(UzRy3)P>Os23d$v`vB--)4D-YG5nUIBrdvpXy83K-lGLtcQ+tX6G7`POj5upp0WGhq=r@;0 zgsi~1@X7lgUq_m-!^1z72D%!+)|c~oPt)tXTbA15c4VAux(XW(JH^}W1gV%L(Vy}I z_f^gd%X$sCZz(I9Fbv9ECjxLS&P($^7H$Ukg91lX3a)jxc!Y+NZG56}*L86B zD|>$tvUDa!HN6rc)S9*`y9Q2{A+h!G8_rqata>DF0^IJ6773W4o_&@}TMci?3mdpG zxw(%GWs0H=`Che|Rz(Bq=;MgoC&6Ik2=a}}u4KhbmYJiEj?dLP;QrlvBR$k>#S3a5 zX!h_6mxHO=Y2yo_bru0{Gtg>2%dulRF z-vHEmMsKWT?_?z@<&Zv)%TF7Ip*Gh`7q}8mgD=m9aE1LMRWn7gO)8q8vFFwMRW*jp z=K1@|A1ULbHImGzZ6Qa)>Q>eKQu4coQXzW2I=iRIw;Et2G7AYOU&7 z4iC$`=Hf$-&e?3fQz@i?n7Zn!SEp}DW}nK!-zb;5mV*|4i4g4^Msj-5J4EMi$yjar zJ$n>eZ`o=v*u}1CvT|(08hW_{%0)0IE9e2V2`N=rcaDmv(_z<*8Iky7|#&YNFqdZN`J1pK(xNGd-_^1ElMk5q%x-jYeW637qwSl z&ghtL{Kau?tuTC{y}O6t=1vpp*5vRIdhZ7|1p`tgE!gp#A2uoumw=9wUi5?c&I+W# zj)7KdMh`WvtO7vzsY>>)bm)!XK)xmR$DNXCkl2ozNb@T+hnDx&uK0$wVxlHXPkDYx*-HR{0Jd~%j?GAsw_ zqLZxyRt54WZ=gG*NUlQo*sVHxCEk#MRe??}6wn6k$AVEgNS;Oj5cE!C&voo#QV!qk z!cJ}?+w1U9oVBa7z^)x#o1@KI8g$|UMtF@rGY z{k031>TE}|$3j0Ed(;P{iSN^-jhafXtq3L8AdYp<#M?LCzh&h(S8RI(q25$f5Tyev zplG^_*hTj`1aVeaW$dhgY<1@1TEMq4Ohi1)L~*5NC0!9*^;GB4e)#!QRXaz&b@H)D z2ojm5x?qy|TlFc|lwtF(KxK2*#d0zX;Vj_hJ|ZYpZ==q^$IBj9)@e#jdn#_$;;#I% z1E7l$ck%Qox9a%YsSqS%BKY{_!I5j8iwm)F&q9il6SH{t_|}^xIvq{er`HtWKm`VS zLm99;Uk+%P1BQP!igm^Ii$7B^AbRb-&qg{#Mcf&>wVX9lBa>k_VLdzFl1~OJ^Ee80 z6o@_|Ig(137io;{*upA<(+T@k_+FU{JwXQ?>hJ?K`;@*vI9bXGw3XLQ5H_}QYi8CA z>tq*6BvNafg*X@?J6EF(CNrEdDbpLc)Uq?SQz7GBWFmYw4)v~HevAZWz49nl?=~ z&{W+TMt{KGG1E?kZrWC$FYPX7lx;pnD4MkkPOGYhC$Y%s-Q1@t*94HGt@-y54K`84 z-Sru-lY)qkeBNi${mwQ%#QY&wv#TFI9VC&ELsn#NOxn6XQ|P@HY*?VgFDflaiHOMD zWQ8<%+~e4VWz1r=mT5M-6JqJ#S{NTBzDd0uxRK7vagoYRSCs znEGkyU4#Zp(dugR`-G(Usk{P{kJYR=zwv@ZU0m_Ttket)?n0uv#PL9#$g@*Y206r_ zxtGz;-6*WN>!Cuy7%u_XJKA&e^!`Jit>wF{MxXEvtu5N^97Uv)%XV;b^h`C1>SySp2b~Ch6_@cS z0ZI8lj;`m3uj20ZKDJsaan7e7KU5~d67_r3dKOYJb0GfpPM10 zmM0uP+wa^s<5Ge)+LcA_VsP{B75^!EIj^0AIOH`8bhO z)KN(p2mJy|=3^GSKzL1LWmIi8vb(#_Wq*Ycs7l)!VYLKJ-3$dZac0qoZg&LD= z8I$NKsJT+p2Ca^-hfdnt2oFtxz*XJljNVT0mqj&U_peG+0nY3`BfjMT3ByL#zg!-) z#@u~H_1e<)SE_4tec2=2wXoO#Nbi=Rsuvm-Rpt{pmn}eineJkv&f9=KQ%;Z=#?tgrBC~ZP3KBAGWhO z#L&n~CZ+#MzJXuoo(drV`2|sP92u!fb)k}U@~`u3fr%)k%}Zyy!eF|HM0e&$s@H+n z4VvtqpMI&`9BIo^apSkG^U>2{dy!Q~no2L#U*tAv`U$W z(siPWl;t{~32nwZnM5=j^0AL5Xa+OgP!kU-2pc#Y>!cQOw>q}N91|H3(_mF93!O2j zc#)n{U5z?f%e|8WIC77$==D_)E}(j_ds*3vcsNT%OhoZ<7X3<*ytPQOhoh&nS_x}1 zm;}NiV-&Piw94Tc)+OGT{<7~Bi+u8^Pnn9f?S8m727^a#an#sE$(L7-2UDP~CJT0D z5(2aq$jrORb$q6@hz%*E_MFBZ(rG`B1(crx_+1B|eNh$Tmf_<3(ArVyuV>)g#ey zb3Hy0B*e+rpbrQwDUZhYC^WeU%$@oRGgAZ#q-%ncF=fNLq3IChsIYot?Z?BDVf~K6 ztVHcXo!pbiJ-FkIi&mkF@28h5*-OQcS8#Nn5yn?P4(;Lwtg8r1QkmNd4Lhec4T*W6 zr=L$C0d2n;s?x5$c%lS!SRG=Ya<@e`}GEy9wq81VxC+~GtNq2F%okMcLfwceR@ zs})!n#7S96hy(ST2OLfh0~oFa&-H@>!l#D}QK;D6Y`B%6QVNjy_{he`acr?g$lNs` ze=uY*tr^8(8pzj&NWoh$ne|;qYU6lE79uJUwFQ=LJ44l8xG(3>$*8*dFis@dZ|uxI z+IP)>!QQ#Nlb6C+Y;8k9Rh?GaaW4?G?#{=S!0wIU*wpB9nY~WK zfllf`(IxzZ3C#d3dg!_hy$wMUbKs zY|;TJ8Yv{&#_x_wup@0=oWsGa%M+3{(ZOA7c5|t5kuE>GIJ{H{fEEfiH8cHF8QZ8t zS@k28O+AdVD$QiBuaRY#_te>RA?Z;F_sLVbvTd|3#JkkyBB^5rdOeW9r8XyBVBo2yBo8^FpW@nI?&$rux3VU-lgMQETuMO zy@>c~X*71@qZvKX52G5naNoLd0b?M< z?`@W%9oxj0sTs(0iJuk(Z5KI8MI+vz%@_7jSsw~%5TI04klc)`P!RHCMlA~ziwwMf z_~1zv;(M&lk?0|2r^N($jk|dFmI#rD8SP>stTV>!oq3CT0GAs@Wr&QE!)zfm5quQ; zmeDf{O%X9>uqNN%yZO#Lp3K6qOu7oE=*yD&2IW_MyF7WGSE10M+rN>S{2~*jvUP}x zmf+E-iLBJI+)nX^UT|Z<5-cF2BZFdfgUx3cviVj^hk=tk^EVf-3<{4z_l|>f4Q}LY zOz)j6vfd%U5$xB@vbb7`wG*V2NYv(9&ni6=$RtdRFTm}llx?Vyf&Yw^3R4+AJU107 zMG=qCmol&oj`n;<$*bROr&OZ`W6gsx0ZK9{P?Br@rD~D2sG^*$vbiPW3oM9l@3x^{ zG-$Du;rB%6apWVGi+_>I4zWRko}vyIb2bL90Y3q+E~1Ql=vHs!HCZI?!gvuXGZ7 zDUPP(Mp@xW#G+_5#6`2=@(deighaW}50#sp+tf1)a;4ynV^0Q8UZfpog~L_HnO&8y;_f`LVSkY=>yk-kqhg zh*J8du%kD~31QCJU}#_o&1Q{ekgF+`LiqU$#cA&O1h=w!ioquAqm4@Ncddai4`LVS zC${=U4actT-Z|^K!|cGxBce2aDwJgG9B?4-pl}E&)3I9y+lIMxbxIbFzLvck~l}MD@4QSzaZn;P&ho3p^wRMvyEOCMa7v*A!SD*`2 z5q~()(l~$P@J&`3`1_rt!-*4X+x0>-26 zoCOSZ*5}%azg>W!k@bm<`*`}Z_Iajt3*Fx}7|D?D-AvQQVi*Elsxk~cp(THv#oCke zlm==|6*A$_&wk0$(n!C#5>hd?*wp~5zrV{Snd(CzVzk2&LfcAFue*r|4T~bjw=Bxw zB$lPCb_~80YtUsU&&0;Qth%k{_{)m(q9srYCX$Azoq1MjlTTK5oV*P8rasHsQ-5W( z?5dA_=V$Bv8P3pTb#?+Q)4|VO|drg2$K+ zURuShJBBB{U|VP1s4I2a=gc|QmeKG{lFeDwWZ3)`_qqsn1QckLA8XgGtFSVo=Qk3f zi4AxOSXLKK(@-64T{8_omrYu$R750qNGeRIb&j2(Q-jSPKK%6F?FV51J5A4`6CBFU zpr74-^oVd;%Hl|~nI2K>5h7uMesOyIjGpu-a?7-Z8?QFnpYfK4P^^mbVRMCFwp#Ff zHna6$?S47eEW`XdCZJ(TF_@piySR8IM;E;!rY?sh%5mq=YcLkqS(K5hV{Z}mo;k%`Zu*?$+Rv2|=q>D1#D^6XZp%`vfw$9WDe&mJiHIWa ziJc>1VnTORYl4)}(;lm2WN+!z-}aEJ2VI&bbyR|ds~9>0nY|G9!~NT0p!y)7a3bI< zlukr^rUZK;hp%M?6=dxVaGJl6@QPal#ba0oV>z+s38tw;hCG_Y_LK4>Sz4mUc-Cq! zfSXM6L2Ub;VOO4tT^yo2<^OfHq^|7sEWZT~DG-+ zh4*I&&fwm+>WflJFY2suu{|*D6o~RFS8gz>lz8{9B1|91rE2{c|M_s&t#2# zofxPCy6N7TIOD(wUxvMYv==SG*MO@Cf##~tKU~<6!PJYSE{ZP3n^}BbrO4*l--c#U5_CTOC%pR*LxCHLJJ3n`@7T~*SRVV2bhLVToDkM=C87WzclosUTHb&0H%7@an#%7iNl@I8O9 zi7G5zk}yQWPNM~9Jz39iStKiyDvga!#0*q7tjRo!kiO2vEc>1(D~DtK4X8<*JF&i#Q7fRbw4hQ#PJL&d#qsH1eByuw+r1)RbekqS?4m+% z1XJn2nse0%JXh4*E!sqODo)s2xCmqm2C%aN84NAfY}gMm$4y$bTnigPAi6)d&B8~q z3Pvh^T8Bj!O46buN)hu`gsJOh$6*Ykj?}8Q)R&$dGGgaZa3C^rOz^fe%<(>@7S5k| zfD6;|rtq4t;MpPr?-EM0N%XnFRrHlV0Oz8OGcLlK)QB=iPe&(-yjrpvG3JqmGP$!EC>msV*1SII6HqQ0ERm$u;nO0(-GDs=oZBUuHV?E?%B)f_ z54vu4l91`PEm0xw_q(3^?gS+6J$U-qjbY#>!0mD*7lq~E-J3~e-ba;7kstnDlER>i3N)c`YESrst9p3+?dv{%mWfL?6 z+pg&IQz?ociWvpV!YN{YS2)KlZhLn%CMNkQ7BAct7a^ZtUg&rgQI_+q^|IRi5fPy} zyvIX#Tz3=^!!qoPupa&@qIfb5d)nVQ!=M8r+PFD zJtBhu@TutN23%G}xUXMZA8D%!q!B@7a8LJ6dU)8UoatCZ=xLQ_k9xv@)X z>9KzmA!BUeH|no=g{|hq`>dq-9K~X}DLERPB3(e(VX`-@H-^6JP@uNgPrkq%@cvU- zITOGntOj7`$I4|K+44@AE9j~W+D~)xL&|zF`q!>XcIy#`+iY2k6L&xR z_#^efPwx#I=jBk%Ms87B3=km09I`cN)<|A|FSIoIe9Vt9CbYNR+?Is%$jK=v-MroQ zfx2I$n;?evZ7MwT<;CT;FlAF1=NrplWJer&Rm;?pFxBwbiFc_kKznC4+BOs!J0VI! zL7<#C#ZRsiH?4s-x9sh!BYk z;6#DKDAH4)^zaoq@Q6XCG0Il9R1L~44V^h6?SLsWFg#Pm0EkKJX~-Xf75854`)ao{ z@mSTlc(Bu+a;t`-BJcW!gNvbu<|T@_Xo>j+w(tW-LClTzVBO$H{k>45S%567JHghd z)*j{CN~37?U#Sbr;U;nIchC?a_5wtcTJa9!RSxRp@TKChd){$`4)odywFhS^FqM#* z5cp#82Xw_nfwB=XC}j!nqq>^ofI!;GqEpZv%}lqPtu+@HCt+kp-v(6Pe6~8IR_Kqm z-+}wYy}Y41BRhaMB_ASbL-@%P8jS=EJs54;`f^vBZ!>0+7L<2XH8civT1s%nSV~Ny z`9Y7i*m?x~9>tv+Z|qdmMcHIPIldSjPl}A*Mt2QYUozcg)U7Fj6eFVQHJI{Cld=pO z9p|>9HZ793OmIco06>o78A{dbN;iL zE+J+-wC_#!2f#=eh6F=vOza_tKdnt~jH6$uU-yBlbWsLUN(lN~vzhDsWB~4PqsJ>? zfq9Cl8?}F$7%|b4gTuqKu!006Em9$);~_9mVTM4Z&Qi%|s1R`4`|!WYQ!`2tsniej zPHf?S${Elsz2$=R*?7r-o#Zq(u9Z0}>yR$u?zyaB*nvn2b5<<$@@wEQ=@oL`X-=XZ zYmk23!O=}h%~4_c6n4)|E);%#sN-RB17c<^X7_mlT4t-&Vysn==o4=ZZgdjNE7O;H z`__$jKA@PLDP9#mogz-4hWh^fA4*Wq7jWd78@A7X6V^qM?%wh~s+Ii~BR7IP=$uJ9 zor}0)xJ)+r!5L7}uB4G~+xlSvNV>2ba!du=RBczC_>0%C6~QJLfoQBzj4uU>L;m&J zP@vL`I=-~_(reh1)oPt-*h&gH4!f`-b(TS-n$C1LFT(XQxLTPo#4ClYHnwFXu}xAd z7t!tO6Js%FW}$G*{R3Gpw?%REWCZS=9dM#(M0YpjXMi0Ime%berPdYiZ+OpxZo}Bg zOeH7;4^lf_JF)yt%adVpA$3WH&Ir@~DNETv0Ie!s?p=JD$NMtW^s)=3p+nWg5R;I* zX&3i8^oIKg=UdfXa;-Dsq0tMkOwP83rgY}}igSK^@5$2*a35InmKORV5-lQ+_HCLo zObSy;`d8>xs3fbFSP5Im)~CTKF&oy_F*l980)o3V$5e>!U39JzelL!XdY6M6F)MIE z8)lna^4JIasDLn2ip1MxTE)_m*8(3wenVa_$aj7de^=UOXjUC*#dCjvR+hV5!64GgLu^CVNUM%+Ld1VwHk{zZ=8yh|d&n z@y<$JIY-2j(42JfSnGWTXAAvG)8 zw)_=TsrQP;gYtYH@$d#bX|fz; z%>o6ypQ5f`WRqkT*{J*|&vm1St^t64`+%hp7SIa27(xnuFTl<4l)#m+h8A)383zN56Tq=H zeuYKVg1JUPaQ`97@{Cj$OXJ6~8_8gum-P{bykc{jIUWcP_S^5MxUT3m^~Bo-rhIK} zREMszN73G$CnX@5f??(WE$0i2tB%eb!B9Ub$Xe(dfjSi{X?@w?sR^fEP>BTo#AHKb z%yKMwWyz4gT*{j@LhU6r&xJwHjY^0+JN%5BRD(lGR{GAI>1{uG2y8em3ACm&$@8?+ z?+Q=dd8(aiPoCbtv-|X~J5e_p(Q9StgCcJ$EiSB(6#NjS9^!H}TmV6qv|9!FZO^g{ zUDUd1q+$46`2Q-vR3nl%x8A1kj>nEBDgJZKPdOJtXi_EwjR$=O!+9rDyW^5ma7Z47T`8#s9k!WZI@3@9K zWDA_3>qD7v!_?q`m5zSr2G_6{nxXh7wlZs>);Vxl)j6!act@Nm%xykN($j)mNa6fU zr=gU(=ZT|Wr?ihC@+c#WPUY>7n>i{uj)sjgZKJkPIxAY{*}EUzzxU}~0VYkRL6PCJ z5r+XR;fYCz@W-x4#-V|nd6Z2(@)oBi8DpX15K8y$ipNv8dhf2$SWsoeNzAKR!8CIy zk7AxTtq@;6Ke`!Uyprcokt158t?VXE z7GMMg8v#JHLI8;IluH|o8+8la#zQMig8tO2H0 z;c>88oDwx_7BACaJI~EA%84p-jVt=ptLbWI0k|q1U-5mLUaQ)(xiD?ZEd!t%Q;zMB zA?NlD&JUOy_6=k=9Gn7lo<%0d`IW#deHSlwj(k|nJY(YMc++hJwWRIoP{2lpIl1?H zz*U`bJqkj7Kto`T4Rh^%ZRUz>9S|73V$n_9SVlJ~t1+OCB^MdgUjk84ou48n#ed5_ zP126Vp2#-IrDJCOcgF(i75p-+wG4shIiT9vWvJkMk2nyo#Jm(bT0ZOXfuV+;gdQ0M z3TP!C4;THJEjgjU!V+@zy36C{yKldTODQPMMq(vDVehbW;%krXs-s_FV8`-vd8Fby zt)|-C%k#Zw!srUt**SODpW)airQ{j=&MCg^piY zg@eQAMCKVx+Qy00*0aMTsE815EJBs*#s)#XgP+Stk=J z)nOYY1=B^v+{#c)(!sdO%pk=@RbJ9HC0_B$O&bv~BfDp0i6IsHmr!?})7 z@1PDtJG@Zj66X;ULNSoZF7{b1SQEHNT5O$+ey|@WaxFLRI5i#C7OONeMmHS6D(8-e zXZDZBvmpnDQTp6{pb9$hTkS!P$Xx2__6jXn1()EzE(gHcJ(R}*IlG$O>m$W0w@FJW zL0ihRULHR?Kh3aRa%)Il7-~InoQIR5rW|AIj~Uw!Je&!R?6Rs?PIX2WE-Bk`+6?hD zC71p#8`0ssfqNjUQwY#ejvsVF8-}xCWwxi#oZEXS2yt}e7y15gh^xj-~y!(+xK| z-t&8~TQ$kL{ownvg{GO|%wLZWRYI@meI)j86h>2ULuL>RzGi67rU{n~ z_b*@T%tp^7uxzF_q^Kg9(H3|3B@9N*QE}d+C>uRit~hllSMAGGa7^6%0w9G#VDZ&; z$#MX}S~3DJs7z@U!LhUH!9zvF?mfQuk@ctNjYY~XXi!WAmK@7d63c%b{;Ai$XNzW_UKaFf5IT=&u;lpYCk{xq&P*CWc_+d0hbIg0{f9~ zV<}1^$ToiRvv~=ENHKxQ);(^NMhZ)?6C2H!lOL=pk_QqwbOg^bM5l2X?@QH2LdwY| z@W!ZUNg&4k1Ozp$O@PKd==hlk_1uFlL)#E0q6SvK5pB6@+ebgS^TRJMN*gXg+VqHl zXKcPJM=Yc>7ngb2{O#_ao=yi;8*xdenS9>np*VM7ySAsXs&l#^s)oGkL$_(JYU6D{ z{rZ^*g#>SD7ol1p9O=hZ=}g1U05UZ0;zU<=s#O@>k@>bq3>j|KwsFp+a5pPwqRohUb6Q*4zqm{}Ur?qyT!Z1?Qlbg1> zmmbWA*}x%IT_+=h4*GCM-iS!uUE8PlE%t8+Kx<4E4!gDrxP)&?IMZL}9)>u}Vac`j zUZ7UJQ03YxNmb(%h!~Y&uAM2hI_^?!%&XAFDZ!Hoj==1Pd#s;ImEO zo{9kAW<&^2#o6G&AggP+^-uT&?i~oanmk%5J2_opW~p&ize;;$P}^(mx#TnbMY=;# z2U?+~Da`tfBB{q~-ISIaF=vJ9uQ{cTf~(4pOesmX-<){1K*c76xY4~63>9$CjQBgZ z(lb!^6gl^s1JkV5>2p@HF&4kkDR8ai))C@2rr*Url35btnEd4oy9 z`wx{xwO}?KfXf9!TpJV+lAT}OdWlo`MT{&#DW4GbXgaaQ%wXP(y5=bqk-#;0 zPit=LC!$MrUhOR;ha2Ru0b>%-i@C(D~>&7%`f(jR5XZfFVlj$joOA4 zUu5{_+R!EST9n7%e{}oqU1_T)yASSc>K<@ePuZ4@Qj#rspRBcXTPfh+>Pmn?IHD%_ zL{N5aT%gsmimXkNI;HR8hcDZl>ySR|RcU7ejM98pP+q`_MD`|;AqMJi31{<#)E@j5 zX|VzHxv}_2uV%26|!;6G=3E}juY*tn!pW7RcjzL^9 z7EYUoNP|xWQo(rXJ|itWZ$>a?GR?kY1`V@hsBNPOT@oCZ=3X4duU;IVpPb$Zw@jyW`$)2%2QzyFMoYubf&0=7mQ&RVuyO4%;$lspKMMUX1C za_ETF!-zBmS2!qT6wA{btX4b-G9}1byFCrGoE;1dhVDwkfncK!Lt?`H9X+Oghwz>b zZJ(YSEWj5;t(4&H`ieL5|HgYj<&V16jxjH7f~2doJBF?`LqsIU(O_p_@4yDCC37ML zv6S~%HVLIUZFsxtt@n0BbCsW!t=PvG5k>LNzQ$-evN6;LG?n%mAum{k^M1|xqI5mxZ{&_h-+J`B0IvLOeudGZli* zvG;*#5{0wns^CwKz|&GJ8t{7kqE0N~&H6&alz=M2XeWz;jw zW6!FY!8bA_*1wdH3^>t}Ao5;xZu6Lp!5*u-*fzJ~ovi?MA;94U6J51SnXwa8LU5ZR z0NElmg!Y{%0??U=wgIe!_alc@t<$efjEv2s`&w-KzRv(^<;d=mIEkd@R8*P@MKb3s ztfC)n3Myt(PTUKhS|ZS?vy{{!iqeGF8}RFT_1UE~j6+o^GrliP<-hCbP$8-1KAlsv>8fV z1XwkcEG_F0QIBRAYY!fsX+tgTyQa)Jp$yF8wuX5a{SgB4cW@f|3m6mjG`C6kSN7W|HL2Cv)4|YgzTbM? zLEbhel?+r^QUqL_+pZNuz(+`#IgO2ZI7!i*Zc+m|?Nyya2s3zO+$EM4*9}&+Wa?#8 z(Z7ivH4S=1o?Lz+p)Iai)EcpBi`JcSlG*hh1vkEys= zPkU{V{{c(!XbV7(NR(|;Fn{NbyaalcIuUzuqe@BbGWvj0tNu)AK}D#Lag^Ldn>=~% zL7wWWDZ?K;5Vx1r-AIM`GkvbI*@IH3nxs%yqS*zk%@ENqMnJPMp|mm*zrD+A7}lee zi||wSamW&{$9JYwa@7mm%lJjBSlmjoSoR18O(S-uariiAIh)Z+uY=m6!(79+7G(A1 zj6JkfIJgD?Cj8I@DN(@v)-HJPi>s|*xYwquDxqqM^ekm!q#L1Pr+T0EZz{}XnH^AY zj)z98k!ZT?(=IvUqQxeeIzb(e5i*5&GloV@03iKd;q$vov#@rY!8BvGOttHiFHTR? z_KUtYF=H|*wdE5P?4>7qlYSnKFdr3KBq9t}z($HG&t3O3>sw7C; zQWG19)tzFHo5T~^u_i_!AxrUQ>XPONyNO#>#*$}!ZPMf_&}N=lDYK1PROJ8imA1ce zK6z>i#Y{@OCAyhuM{$|A6S-`**V1M+e5j0?YjYfI(n%=kl31m7Y~_-leks%>eD0!+ zLQI*#j`dJ*je74Z`nXMCeCOwcvx9YcfU%N7G{T#c291Z}RsGAI1Z-9^BB(Nre zNS=<*OxKg3?>yn6wE3H&BHFj~u^18f^V_0sY2gb`ulwZI9yt-`)waT$v-eHh1t$Uh_hoM<9oS2Ptqb6)jTvvE zXk?GtWYv+9cn;K&0R}@C$4;*?Em6y)Gq|tB@I2A#e~BfDC;;A(452DRCSG@b%cI9B znD$Bs-(4xj4jCB5UV1zMlRJASYF_NM-jo7(DVrNx^Q~4v=_-%G@lpU;>ZmhK&kvp5 zf!lX#MyR^zYF6Kv2P4!G(mkSSraD!P=FTer(cg*(cxO9^0)Cfb#qEyz<=QQ=fjwhZ zy5pw8>qtw?!S)!7DaIdS>`h}O#VgZ&J$rMz_n%TA@LZ|#!}F(~-BI_|!>4Y&mMj(> zO4AuCXA?n(Q;+tJPcBt#YCW$X?F%xe1Y!q=?%r(*xXQ$?h^&0N^7jAE;~)mVZz z8HSN=oi=bxxsO~WNI@dihGyD$&F~n5C^Iz=wYf)gPc2L2^vgL51Tl8J1xnOZQ-Ern z2p?z9NGBkh>|_lyDB`8^o~jx8N$d%-G2qzjIU9d1GDj!Dk64&6N22{9F~!y>7AZoG z+s=a;r`HezT_!CmijK8uS3%bJc^o5Jtynccl~ArIXpUFMeG6*{BE}Ny-r@F}{ds+< zVly%}%pB;|Byfj`u)6ia5*&%hSBT)Yvxq3UIKhcdyJRyo7q3mY%eKO7R>i=L+4CNd707QmOoj4qSAyNM5=iUg>KdQ$RK)TqqbtW0HD^AO6!eoKmosDsGPTv zfV$bH3XsVY&fYL8G@TSbc2o$rS7^;qx^T_hWsz}TstMGEZ;q@cmPlu-X;vF^KbPAv z;t8>Um!sc_%aBKFA3@2l9^BT6*xK*aN^Kk_CW`6lYxNR6q4ad;459Ow1Vr$pW4$)+_Jj)hTJIJ!;Imw&LddENDmVb}zot zal~HS)$R>#(fGq!Q^hQff1bTQ&%o)RnJ<7@tXn*nC|+iYsZZivUA{V(t|leFS1nO) zN{D{Y6-1hGH5;__d(4Ub>P~yoV%Y+&fp7^$BAm|gn!{G#8hrv?6`-1G4a}5yT+nOn z`t^%vKk#0Z{o`Go71jzsMv+{A!tMfixi@EX%B00D>Y1<>ywXvV958eOiY(jIQ@_Kn zOT4otU0XKsxr4eHb=T8M0U_m(Kplak$w?obKD#(W#bMp`N=oab-?wbi*7$mF*5JCG zG&APpbPtR_JAZRbZkn1=tQR&wx6eFe$msT{`%NP8McIyMn3ILvlKja=2kacRUgKN| z`Fz^Spk!kkL|mGZBocxXK5%9Z+CSTzA%^aqYb5-H;ZoOG8%V(yk#y@=(QWOqooh$X zUDi~A%e6>n*V7yRxUO~w5p-bmKDoZEolQ;4I4z2HN6)}q5Fk{I(Q}}LL4owMWtvX) zPw}%PilD}J70GH(WIUKL z20vin1t#ur%wjmAIKnFg9EuA_t0XM5ib!FQRw76=cR1sSZtY!k0wQ|7j$o*ByO_1u z<>*PlBG=ion^%JDNMhe>3#%2j_i7=uml-Xyk}5pGrKB(#yGPM{YxS09c%^1~(0as@ zjbO!1c2KJF1NEj57XhQggFDeFz*+RL@7Dy|+!KJ?plpUrx@~w13yX&P)3ZJ|J?cSK7 zGh@kd+wosYE8sKo0aB0Wheull5;b}0Ug@<<>$M1OS1oZfyOD(n#u{%321WIi4+|ze zGe;S-+svJ-y^pjuOnso{^yfnCaa=OCAHIPDVeYfE|4iFpQqlA3p=kxdvnnX*J#FR_ z|FfBo8^r$lCkj&4rq52)cBhS<>P^$OV0?Y`!NrA+E2JNADLO19n+fT7-**a4SyREe zEKWI15KWucI!0A-r-+5Ga%cr>r($OD@Y%992kkq%Qz%`(*MNtGm;P8hoVnkvd0(g1 z3=!C3oiL2y1X*9ead^u)L~%)RiPqX*za} zgR}hpvL7^Gh0@6>y+@vhcA0N$BDAzZsdWX*Y%;pK&x zyRU_FB1@!0&V7Z=KaBtQK?I2XE!IsPROOZElwvwQdKe>r6Y8(MITTvCb7>VG=9G8bBU{{OH7W5fb^dImB7WWH|R^H zv?SQrSf?+2uJp1w`n2c1QK7%)?z;?stg9I~jt4iKj{bSzSi;LEd)izS=`-p?U8)oH zjm${sy87unR4_k6W^U=klEm)2T$d$WCfB0M%U&Em*Pd^old&DR;LPF{O}x^<9_ZGn zUdrj{_-ixKq(WDBuz}Mj8obdNAznG~JUuo2bhDW=1UzDu2yH4-*Gi`;?xQTWKB5+6 zM9cl4)HzvNQ=krBZ-v9s45YQ@W!H%4bVP`0RV9k_BqAAga6NP|_e>%G05DTvJ?Cx0RTihGXY9P=^skUEf_- z%%9P9#jh`&-J%R^3Avoks=6>1=^z|)Y%Y^oQ{^T1V=hA@ePQq(QoPk~jDQ4+JzRLf z8(r4k3ikZ2OjEY#@gN>d4csfMo8#@zyBQ~AQqkw$aT22RlJ ze9^J21t2Rdv1I)^HgJ@-c|(x$)lqP|BU)OFvYM<5>9h6lRd3LrH9MmqQ&)r_jHWkoWb#JR&3hrP(*`2X zPh*=s+tR>Q`ZthNXy$PHdik0o7 zuJKJtrImsuMKp+rSU^$TXW=iN!9BBf{|*vO#5 z)~&KTJ8xg&CIeZD@A&lmNt=dUi`G8BJH1JPwW{!|g?Tl`XVoB!C=Z-Og(T$ukl zQ&IO@MqqEf2J*ipuyd^6PF+g!*5M0Dqv8^~FLb6z{}p$jW%qs&(8lGOa7-tV2({onc9@k4$7?rHqJy+3c?`Aho8AJ_lu{-69G@k@RF=igfD#{V0?86&OFfAO8TvBqETsm~Af z^Z%aiKl?XvWqtla+`hy3d3TLJzux(t{=skcyx+|G`}2>*^XmO|f6f1IRQX+`+s$F|L^|OpjdtW+&_r>>c89f|Gmxq-}$S5#+TOT&)r|& zU+Y)T`$zf*6zZ#f?a#+gzxGr9++JUQ*XKXhRey52|66(gxBegR|7W@v`qlfto%eq` z@Bi7q!>{9iTl)QT{ltpb{U7`|8fjP_+M`q$3RpZbRT|Ls5g8Q<_< L*FM~A64?xk7!-7XAQ2FUO@jhXNPwU$5duU7Cn1@TNR}}R1ohETq67qu ziUQ9y8yiV7n7-KXlDNl!8TJiqt)e%JT?^A=Z8-FKZn zRb6%0sZ-V6lbgp(7~8yAGfP4X>v^l`%(6V3;aS#NM1aLwr{MqY)>%rnRWRq|gN9R2 zQJ|z2Yo{_O$K6%uySr-rk{(^9b=5zhQ@O4=Ul%h`Ul%h`Uni+W0u(rn&}UZC!J>?o zI9{EnYip+8chQ29k}QQQaGfqmpZ~Z2BUxYym*;eUb;Grwq|)Z6qTc&jSXLH*0;Ja= z&cN}-z)!<51-f($u=$7=AzqGnCE_Z`v_X0|(hQ`xBc<@7POR5(z8X3nM(m3?5;8Zi z%ud$*CS?Bv-WliTA^ia99Y`hY!SNforiA6s#rX=(AI4Z5&PVcbE2O))4ALiIQ|6kZzCSX@it)bNZmMp3XwuGr!OJxiTEV)&w!ptqye1YjQ9oQ ze#H3~h}{rdAm4}B9CwpbGq_7kC1;9>0T!rHjU}cCWkpDc+(~@AHn%>$n8a1 zfb&^6z8&e!IKKty8GOxOz|Y5d2gLVrJPqlGkf}l}!STO=twwq?;t|9baNPu?Ifxa= zI{~@h5h)bld@tfC9DjlQG#uZEbPD3txUL=2AAnIfh;$jSm56sD&PBW)@e0VaMH-8g z!h9TGgY*)de}eP?t{V?*E6#5vU5K3#*WtV)Vlkl0kWb-mr2UashvQku+m3iG&bt85 z#Bm?Q{)iNo0INgZK%C!%^cI}wBR-GgzQE2xIvwd-ki7uM6fQ$rjMxS7cjS$O{0&IS zG~Glg!aFScG>-oUb_HY}#_{zyei!N4$S=k5aU8ctIvDXR#On~#AzOwt8?iIuH;_4w z)Q|WmuKN_}U5L?$6#k9$c3cy~=ZQF`@Frvj<9G$qB;>{6_)?@d!#=h{RMJQL#7$xSR8)_jKV`mQ*pi> z__avwp$K{1fK?%V3~4oFy5sma2z`WfF0i#oug19>$6XPBVFlGlFGb#3TqEIZ96tq_ z9l*N+q^ap?98-{a=HEE}8`uz}!;n7|>A!G(F5&NK-a4cyNE3j+fb>(+fpi$o^N|)J79+O7`6A@WjQAGLDf9sLE{-2V`W7OE ze;}UY z0P$2lC+t)%i;gR8$4gk|Y@`n&w&T1Har`J`CnJ3q*exjQbR4e$)*a_R;&=?w&4{gW zd;#KG#F>cSL1s7bCvbcRuA}g!POP7RQTP#Y4)UfTevIQx~Jc??U94 z+wd20-;Q5idi07WvZ=R|>I)|fYykiQ%89mEg#x{XMqasC%{f5@`Ea898mVm4wD;vbNE z1v0a7OkqCGDGcOmF30(KIKM@q@b!?E0Q&;@SKxRS<5wcx3_J_?YS!Um9ix#BL97J+ z8p`T`=*`zK^`Itb>wA@ZTxGzCon01?L;}q16RgM_iKt ztUuyJL<-*`?nIo7^AC|v;VZs=0I;Drz6;pv$jjtwNaiX&z72RM$Rr_M%-H=%KSrDg zY%}s6LwX$XOx9bE>+fON8<4(-_!zKw8JoY{)==yV3I`2%SV*WpE+55oCc%0yTO*$A2l6CbW6OWkhDR}ey)FM|K5oRtQ*C%R zQHJzcKHkLn>8x`M@V9|=MZ5^d`;abUna}tdN_sP9gMx=2K-aH0OAI5E86Af~aLAF0c{0O$F*W-Ib;$ML-^OJaL~ zzd{EHcj`p_Uk;g7h!1dCHvs(vb-R|YeTs1s?qoZr^DiM6Lk9>C=p^`m4z9nCbr3k# zcI{!DM+7BLK6nq%99;XU?HZEu(0{hD6#0v7=X7`<>Lg(tj-SHGnYMaJ-cDTG6ZtnqkprZk+w!~O`f6M|0N6gp7vuan9JjMwvm3|%LM%dj+=hS6*SyYY8uAJeCnK(h z9tr1jd(inAhy{qJbN=PFyf;`6$vs2=ap(=12Uu0Zd} z2euIT%aO(+_Tl{BSmzO(`w=H0?`*`@tSb}8DZtm`d^ko$+j>9@p*Dht|u;AI!&; zY(!oS($}DW1dd-L5TTz=tS=#dp`r6IH%%(;zbrvfKH}A;_DG zxCiHJfY;&Lwk*FL=k++Bgt&`!zRxLNu98zBNB8T&8QHdosKwb^C!EoFT&IYN=8@Lu zfx{+PZQHbrxU({`S<4X}M`MDfB?Go@I>0eLtK}&Xts82Z^_tM7EYLo`c~2`U>eNWj zDX&DF(ypZy;c32fKtjveu1;7QMEo3Rb)7rVyjy!u=g}zU;+AEB6{S`np?U12<`EH9 z1D3gZ9%$Y?;?@Y4)w0xcU3uUhS94dOOS2ohBw10tT-LRo*>U?5BTjL39J}t7gyziw zw>-7kIBQ%pSFg;mqpi_as{t`CPu%+Mkzfv|1!KbEQ7k zF)`BG>GE`mXciSY;nq{FfV&I)@AI#ysf=z@dfV9Yp1947PK{ajq{fc#+pKv)A8fep z3?z3P-fVQs)Ryfhr6+nKBbp}-S)cG)#QK&o%^Ozq$ea?JK52c8r`@8rdsigKPwFwy zvvEhvlItR`=$0BcJT}HUJ*$1EI@hf$JTrdziTbxI>bj1Hz1N7AiwA_M4AIOAyS~V4B73c`COxVFKR0= zvT-!;KF|5poW95@jkoQHv|gvZr&kbPMHC-O#u4d#4Y&lEn`v%+i*eegA|IPLIC z&=Ke4my;jT6_NaeC`1Z0uXX2R*)utZ&s|6{BCKABwC16?pMuP-=kmEmVbgI=z66E- zNNK-Q!azQzwLkfq!w_kXh(#QZNdC#Ch#tf^#011Kh~p72M(ThkS6=?<^`;cZL&f)Vcq}hl$h19~w{u#CbTOjc_aHq>fzjIYPDBdi(^DW{n0%l6 z_*|oUf9U~Ws}UbYT#L94@e#xgh!i#=eGHN2*(Vs=gmg3F7Q|-}s}X6QAzyq4qJ)=m z{0ibO#NCLmAxe0ikKf{y*3j=F)**ht*vCjeLHv}@KS#O`@k_*mh+iWfLOhK44dS)TXX*CqZkxWX5!keuhQ+Kq)r-D%&y1U5#_uUm~BG{HavL48%-C30XMK=5yLpn2VUh z=ebDp5NR)?0I?8}LNU_$h$VbZ*bO+o(RNP0`^|^}#9I()eNc*c8{+MVvJbZe$7Wax z>`p}TsqaBtfk^Kli@Er`z` zK8IM1NZ|#f+xYk;PG3g)3gS-0R~g%dbT{H2#9GAH5#K_58}S`PdUi&>B>9W9U;HuR zr-+{+evVi+Ao|5!EuQ@2`FVey^VOEBxT~%m`ql0?&n~*?ww^1#nG(Ng_a}X-OYb=G z>)owZm+hZ;?4y}iRkUmW?%v)7%U-|YoTcT*E{K18)SdlGhIsGoR5NN)uMJzSxM*kn2&RS7;-;R6644%CF_ltk1tJ(MF?3ad49kp`Bqc@EFWaG8--@fOo z1+Tuhcg2jz!*eTteYQiwilrm_pE$c$#{O=%94o$RZ6N-ur;p#e=e{eZ#*di0ar3n3 z4qtciUi!s-N7j~So_g@Qw1}0@58CxarGM&Y4@LSv-`B70{-d>xgCBe~=JX-ew_?lTAdYra* zk2B8>W8N>hSc<{~q+hyTxxOt-W<;di|o! zx3zh%lQm;!&&W&P@XXJ?YlU^*_|mrf#^kJszOm=TWcOWtHvKYpZ}sT!ZvJOvn+Z== z&uKn%YtGHdGnRIpJ}s*pWqx<;!VOpa@J7*#J6o@P_|79a)1GVezE+vu=lt!v&aK}3 z^tv&djyCr!f9}hFKR>ZkOxDVa_g?kwv%eo$ab1tLyB<1lY}HNoBp)kkecssh%O2~$ z_UBt(C>ef_Jd0kFFLY)%EPDS4(jvM_MxwRuyxJx zZ4)1AcF8|KO&$2|5AU7#&(~S)CpKS|`};@3&!6~l!XJ+eU)$lLdoN%2*XXM8t#?G< zShlSH^2j6ajyU+$ecso4-Q4M}@$Y+{7(1wM=ZqIR9BR?-{vYn{(|LN@p@p~pan0~m?a$9BYE}Gr*HNeK zZgy?f%$H95G05F+_?M5o*tucv@v>Pj{m|k4u6z0|+J4X3FP>i&GvLypr%nE1+$vmtqX5F%RT0_uW$LJU{Jq5Ph7k5`@&H(*3G?X!ib^Y{XX7*&cHn{XJ0)b zfAp&X|Bll=X@`csU3cjAqcgidaA8K`l93Otd*+!N7M=dxiHd%2rppC2B%@`FzO-c5hvr_n#;?OpWvt@r-3W%#UCll=$U^?j<}kKT48>P|fI z?CBpaTy@`FlXJ6&_Q*cvxATtWjJ&Dsy?MhTzFxR=`I|eQ==Q~l#hH_`-g@)?R#QJH z>=rk1-+kMEy7P?MR~vpU{9)b|5C8qZi+S6g@AQl7?7c5-sK5KZ!BuzO7&qYsYvq81 z{`-nf>p1uGuQ$FpY3|Nx2fz8{<7q=muDfthZM>D?-*(Pr`9IEU`#_I3KaJnG`S#3X z|9sr{+wGl73rCE7{HJG%{(QInEB>QnTX*hp@pY}zYHpnL(~uLxI!Di+`r&sa`=b3* z_P_AmtI1EEQ$Kde+S9zlyG3l+{^OZvJ+^;&|MJuGcSgQ=&^7VZoyVI`EB5cLJtN+8 zUsO@_*`xloamb8Azt4PS(52B&9esA$D+%ql96mnb)Zyp-w%I*n>D4XU-@EL_*?)b! z?!Enss*imzGeW4y~U4#h4|}Y?-lUU&_Gf*05K1_R6ci z>d=`zTU{M_{mhFu$F6BObcdvT??q)rnzq;R={u}x{ zKjX6Bhx~JF)xS^wKIe;#U7ze0ch~%x(S1y{@Md4q!n$+9-D3{jS$2v0$xQ34#p6?EcdB{j(e;# z^}lWC^YW@^3!0r%({Ry){hPH|bNSM`@*Pi3S<-3FU$Z8B{=q|M{FCw6SvNg&S7yJ@ z(v$aY9x>~q9}g`ZUwFg5i`&k6XYCOz&KK%7K+HB@S#~(rsjq!JB5i-}RLViQb*%w*#F9R@zT;CD(4*9zu@oY-@bdvy3tp(|NEu#C$CMJa+`Jb zkp)*SzV_GJ>)u><`-ze{&#dZt?9(^5ZX5VWQK#8g9sF}yhw~N<_;kvczfbpGIeq_A zL+;-;^1F>!ExK@LW9<*FsBOppYG41+s?L!UUys?G|4elKZ`~eh7x&TW=e_*i$hxC{ zeYog?{#TyJic5biwoT^FGc#}KK63K|qc2{&tY@=hmt4PR!?)AUf9R33e@kAzd3@eA z$KQM;^2KegEwf+gvpM6tSyvu<|MJ$I_ghon=-&QFzYkuEeR<>0tva6j_m;nBEGb`9 zxnqy7#g8N3j<5T&V$$zV-Tlj3u?zawY+thAtg5`WQ6(oHfAQsoeO7$*;Kx<%+Pr+r zkF!2K_4ygCGbB`G>E2bl$!mMWY9n ze|K;E#|H|}zai!HMV-HD9Q{<|)!&srvSe7qh5vlL%a>f-=k_;}B2Kf;xaf;pziTYr)FJ<+2Ok*PcXRTkNoTfo^}4NLTc?`GzQ196 zmp2*<_8us>@6s>s>03X(`s|)5r}S(0=EsjsDgWn@K`$;J*zeAo7BM>^Vxv;E(~I@NN~W{VM8;El4#nJ{>^@Co*e=y|*uvQbJnye~F{ z!{N7|79Rfq4`{;4kHpI);qd-3;qm4dg~#to2#+rx7am{HK0LlKIy`U3Y9vvP(2bE>@zR_MnxcV=1=&##bhL_*tz}tEZhj99D85|z}-Jv}{awzw9JX8v& ze-~aB2!{{GgNktYcMko&$$_6s9Qe?qXL$WCJeUnv?hEnZ@h2SmH`_t}_c7u1eC5!d zPdl{RKMwtsvPbdU*0-5y!;eA)Ct#aXE@lO<`;yQKW|8Q{Q89O z_%?@eSLeW=3kQeSGt*&QWTDZ*-PbG!{ZsIuES&t44t8&v1E2Ff;q|O_=$F47?8BQ5 z?RIQnc>Q?}_chjGo=S4y;hm?1*MGi4eO5TMv&(_cg%0z}XovCsibJ^{U_T~Ye=Tzu zcl{jrT)hc|s4?DE;8xD5nu)};b$^oD1&@WFq*nudAa@V5K!nNB72R?k` zfX{dEmrikLpUWKjy&)=meQt6Xj~yJ^;WP(-;|quST;VXTkK^%fxb}&3&@;b%c=_=T zcIh*R`EIoX&yyYWyBzpA#i1SQE(%}Ikq+%}y^}q`OwG0v*E6Yn>h1 zVTFVK0j}`(bxDu#c!`4@zQ&<{uW{gcyn~)|9Oi}24t~WfhjG#0q5iua#>;kxe$REV zOIO5%Z=bI(4UfO)z_*qC!^@x5J3QXU!QY_we9)CAg+mVZ?YKjK`5o-lGY;+0$ARaI z9pi zb?|$qy2I;lbl`20gZ|GP`sICxdd_vwKgfX(K8JaBfy2CcuLGZx9qRLrL%HuelsnwP zz72G+|9KAcV2nfkTRQOM)t2G=>oy0wl;U6q#yZ&fvmD0hZ4Ujr$3f4V4*NW>JItrA zI<$YY&f)L(EW893Zd@cf@aheReoTOpaC*K!H#|PW;l7SJjQ2eb{{IRG`N5v>t#Yzo`*(+uTLw7_CM~RXP<-L`-B62!?^I} zW;@h>l|%cS=fH=(4u0=Q2OhrVU?3YF`T{a?=U~Eau_d< zIpEhi_-}p({y*fvt5k>ff6~DY9CGkiM>&j(j~w*;>d+454)PB>*u(A)_f_uDUzrZ| z@8H1yIZk};8@_-2y~E?zI@tM_V#3S6=1~7?2fiH`6JF0=hxuZV!#JAd(4K=F#&35A zKlv4h`RHSZ`X6^_&qEIT=g&Lvc4WWs?QojIJpQc1cpvZ3@2ef=k;M-4(HRcq?s4#Y z+c~UXs-wf-S1$)WmpRyhc~1B1&@cNP`u!(|@zTe^E?wr}Pd?@_UVe7q?S&3@{v`*0 ztc!#FjB|x=&u<*~f1g8rwm7tNe}{T*cJMQYJJ`KW4u01N2fWmwK0b$be#^lgUhdGI z$qwyS?a)4_JIuc;9LCE?hkclt4*Ned9meV74)wXmf&cLi`VTs+Yo2i6zsF%-OLd3m z+v5&=d(xr(w>i`^(xD$q9Q3br@DCR_jQ1=Dey(xAUvcQ)a~#UWH!xxSrC|>Jd$U73 z40W*2Z^VVy|Bb_ViF8zOzxJl@h_-t6qaw?v0^@h1-BeZ7O-nCak` z&T+V}R~_b~BMv;=?l8WNIJD`D(_0;Btr3$1Vsi z)_)oH%{t=!s|tSq>L}_#p<3;4Kut)a1@^?6Y3zu~_ArS;Eb`Gj6t zfB6y&WP~!tlNpaN@IuuuZLRX-`o8E}I0~g|eT4e_p>ZzWy7Us=K2?{8*0Y^jpSHCc zPt|x1>p6my?l+3>SL*Xmg4UB%tK}1QV#RSgly}j<0eySc86NJJGL4t2TI$~{r2Zc{VN{k!YLT0WR@t|z)xh3?#64fH_}0+us6#A*4eWxCt}d|xw_ox!B{ zw^qE8#cw)K%SZ0hxb)-YYJJhxsx$Qe&Fz+o?_DW;&U$Lp`l~H|LrderpKRrqwzb?R zbUjl=UhyCO^)uIp>-h)QKjVI_hu)K*a2>aE(HR<_pkb@4nx|0D8#PYfX;NsW=7qLa zDu4JSJpYl$OR_Ou{^oJf<&f5s!Fn$1soSS+uC6C;Qw4XT##4XL^4%H#l>6ntxf5RiR(JuFw*`!K3Aq z7HfPa*K;`rGPT3F1E&F^iks=iuY+OxwsT91c6wku)zzqy_+=D&;apSa&W^Z^yZ z2*y8W`;)}&BmMFN^R0qD#6pmE{)X%6KcMly_`WtXp3LgVz}Hr(r#QIbe{@eGCy}QKesb}lk^K4FqyBv z>Z$dYKcwqf%kq)T&j5WKiV)jcXUyaFNn-op(XjO=1_;$N&`RHzv|BXKcNNBbH;eh4 zL?4tQ=&SVi->My^X?!T_-@$sU38DIzvb}ZRrtwmif0+4DYVh_=mT#aJToHu-)6lL| zu7^InMQBw2V|wCoT}~g>B5dOJU(0sYAEn#P0-q?KU1(fg>8WZfARvbVBRd#Q1kzw0vnVU7sYz zKjr$n=|gaYSbdqb+ok2JvNVvPa`F2Fy)+)+k3omF(iyp2fA?W6e)W&LVmq8<%)i&N9joGbQ0(W` z%oB@wB7C@t?LduTPYM{XGw^Y&=SZDyPiePb)V?MBcKT2rVFJc2g-6&wshgwaw{kyL zvY%PeR^!6|{5ahXNq1{Jh5K<-)$Jhinaq=+w`n{<7i(=~9)8F?3^0BN^Wnf) zUC-r=`!JysPYw*!<(5jhW4T|x(75nz4JttLx$yXVEg`3B_hd%U1kbbY=`CWZ{4m?4tvyOJx zdi?w`I{hXHg+Fm2=`Zc41!Wx+P|p!yZ^!HVMf0kV$@agF$CucDa{E>LyrdN$W&Ke+ zPOJK8J)2n1+JRa=mHlcoqY7nbF&?GmlNrB|+c~m>##gic?mS;q(GNW!R4^W+_J3e+ zxgRI6p66ITqq&xk(dw*!_txdM-xB#*A={x$I+RrKhm%Rcl2a=`k@Gf0qTG3EAaTO zcuVW~i}8ntYWXT-e!PSEu)kKfJIHwrgQg&(<{ca>@RrHqsRrN#yQkO@LS{g2=5fF8mF59oTX z)QRQdaozBl*5haS9ORR{`&=#f7UlyA)7j1k3_DLh8%6RJ&9r;~yrl5TU@q5~$3I|u ze&CQM=4xHM^&HQqsr+MJ(cHg}!yu4;*F-Id;jhABo~KHG(Rw0uVts{NRe%057x7Em za)0^H*7dAr`Q<#Wi+EhSw0i3|_Iqo1Jt+M}`xc}>!1jvW7i+TGuY+BBNw>e)t6Wr= zr|G{a_e# zbI>f*4hd39t8T` z4+>q?a|Gz8AM-&-U|u!w{9D8GZ-vUm@5pq~^-1on?>B|<-#cr(YM91l+`S03RR8jL zjq~(uJw@jvF9CL(*Yo(jj`t;M&eQs1xjtKZ zXgxK)&~{kE^J(;#8khckbBva6`M%cUVm<4a=aCDve0SI>3Tdn-l783-0W?c-=@g7=YJtlxuzNKX>|U=xD0=T06k(Jizd zG?xmu^LX#V{)6=61--PM1N37`2vW~kI3@iDxcyUAuKukcRe$?g!%SpD87$tO?O?Q?|jBCfxS_u-|UA4F^YF5dT$`Lvwv zOu6Cbw_v=%m>;j~$@Tn3mn*zlz~j!(_TfgZPa?OQ%kY0v;F}dYYeWc)rv1sb=}!=niV< zq$lvE;v&z1dEwhvj%xBVWi$F)qiLmBI7;Qi;M zM2$UDpDD5BmK+cqLlHMcw98l4@@DXs{ir3f;><8*=|HK z-i7_cRQ3-8j6ceJ2(bMWd?eR1$yk3qisGoQx8jPFV{1b_mhPu z4`V(gJ*Diw)pEJh*xeObTt zm6osMa_iYHrLrLrJ(ux#bRE*=Ze{reJbx8U)%yR^>a2r2UbeoZ@p_g|i_!P%`CQ{4 zGTw&gyNbUxF7_>{x0Y{U$M7ik?}f~Vt-O!qVLjQ%r}hlck6I$^;v3k`^(?tD)# z+Gy05sr6m^DMC^Z1-^c zD$wtZ9a&-68zx&HWYlw=Orp^4Wa9EfX{@^<2(;-o-pm zW%&!(ZZGG3!W71PbA8m0BLWlo7uo)l=IZuIWcgw=JJmB`i*C;e%(pXn9;xcC<&$(` zO=ADtWz6H`{*j&|JkX{7UC@Apmm1HH&K;ofM&tR;iJlryr4Jtvj&eQQaDB>oeNm&U zYjtAYrm{m_!uU9zf9nQnUVYB>Kb6-7b;f>L`cPeNInU!#|0;}MdVk<3eVBky#`T$o zatZev_)eb3TYjkP@8|ktv)u@MuYu255B*LewNHTkAK}SR9=}!md}k}mZ(~2O#_$7= z@VY*5xxP`Uf4fWgz6`uK^Q!6^E#DpXox(vb*KgFP4damp{$RA$A9C z?tQxb#eaT;{SXg7HPKc?n zi0xs3=N;kI9*@>jbBC@^3fHp_^Qyw|)2etJd3b%Ds?}Sox@$cyOV{T{*3*mS8;o%` zj@!X%)bf7Tb2YCQ{B3o8r2eiLt|!}*r7Zsm^E{IM2jNv6+jAE`hZQ}yu%A=K&y~7! zJ?HU!-N5r^fc5_@5x{Ce19LATkeMs%9-`8LIwyh_a&whR%M*95^-tTHSQ#VWn z>!~LK z>)3xzHT>r+zTb@Jw0r~CCywpd))`!`&bHb`YyEEKt+fAQ_M;B4KQHwh#`@iczwrag zp?dmrwPM)^rsp< z)czj&ad(8z)&KYnX69QYw@(+w8{+tWmuvm}*k1juH_}sezt&TR@kyaI+p$RIL$KeO zhwj;2F8c#l@%U9g8jtHsl@>gw0x?K`xzRo|xPMdk>-yAl`{cqfl6=Jv8t=|}QhIXz zjs5w9Tu)DfmKVDe>C*BEvvvE+KHetgNu=>!%}3miZgO-H0wnnA+Svs*^9;)@!@O%y0tKesT2L7$@YdhmzVW;W7 zN?lq(B;PMJBjHuNza)IPi^oNcF)nV3(elacw|H3p3|^1;`T2VhdE^v6SzL7^8E&wZ@O0ayCJ;Zar3@VDeI|cys=*2mz3)rp!NF=zw`^Pf2vXc zw|HLLI$oD3^TiS7m5cqQOG9m>yhg%5GelVpDXA)58;QQkG4CtxxifeVh$hz!>J{nIl_T>)py4Yg=ySUs{ ze7}t=bOoh8ZN{=5-tU$17|H!u%Kk|g)^jn}-_7-x_B;avklHiQUF$Dr`Ac~o$@p61 zTN&@hc+E!|Z>JM$;ZVNc_PQN}hqs_TNPo+0EjWVp>|wi9W!R-rY@Zu>yrX(5T*vmx zZS31T!~R1#`wyU{3R`&ot>XPg;qANP&l}G-i@80^`F$JFbB@e|9rb-R@crHfKaTDz zb%gHUqu>*T9o#-$c>b09y_V;}t^8b1_*sdLAUzevy6nt2jW^t>%a!%)GPW~r!_I8r z@$Ta97o`5LpiZQ}YP_!a1nhTHc%9q1g4e&%8n({o_8H3Wi(+`Ha5M8c)p$SW8TKmz zhW~Tf`MTW3Uv&Gh8M1Pip9ySdy0iYX*w1(K^9bSdW|m*h@-CL&z~gS~ZMuC1fM*nP zPuJz9#_Mv|YuL(Szf}Hk=>f(ULyX$T#m{|m7_T~4qM*x*tpVera2P z^k-b6^)xa+@9n7Zsv#Ok!u1s5#1HAD@kr+FRm@M%VvW0$H2!W2-&ajbtzYizIP=_Z z>`N^2aJfsgd@1WWj+E*d;P;(`pC5309=$`iXBo@i!+db@{=-tnr}22-%J0dPFg~!C z*026(3@~m^>q)j7e#35jeUX+=>aXj$iSJ0~|k z&s$iOR#4>iTHf)=6TKO}0^gkM!XjTm^2GR@{5)TB+Uy*k&I_O8O)p9FW@hK5FGXy5eww!<@wV2q`;S!p<%zzH&-9cFUT(9>k6}qi!$=(=jn_BU!HGHeo=Os zWZM95dX_Jp70mHbI}_5u_uck3^9zbsxOP_12u&RCt zOnpAY8``C+^9oT{ZYxuL41x5KMKHw#~rR5Z(L+5(Yh}16XV%-zm znCV&h`Gr2dj@vVP4(`I6o(6to;HJ{^3o?|nCX82eUEgw1PNA=)$eY9b^7_*XNSnHE zyM*e6%1MOb)lM|B7qCD=cMJ#DYSBZx#|7|a?N1L z=Hb}XC)`)M@reXzNmS3r7o1ePw2TagEb4c3GAqo0!O#t5N9Xz$czq?Hb{jqUUrc+dJ=VjcXoDBp~_28Ej%7sxWJ3G%B6Ysrz%$4do zJ_N_y;N|R`>~wW`2wadoPt*o+TTwv_Do`A124vin$>BTUL-n_J2 zpQSq3m+sBW&KRuW>?he10A3RC7A^3rX-JjNb5DGnR}K5@!5Q9^VeaAHNpTa$*lyJ?14tESGfyGZof0=G zfz3SKsGk{-;Y%-Afaz#*(wIrgL=mqFeU>UnnW^I0AuW)e>nCG?e#SJb+flU)WCwW@ z5}TSz^-n^gwtnck-28by#bN3!G7iLN9IHd{I2%L;kENxB3qgQust2A8#f{L=he7rE z3aq%PlLo2A%b$HM&8#*-eWO8u3Q#jy2%>7u^d~CvA?Xhe1VscYFmx1Ydhl*^&IfW{E)xkUoO z_MNWE({_*O$4byNO(!OOZS_(!9R^okaZZkvF*sX|0|NcU7~qPls{MczW@TrpDbkr!^m+!@- zlBS$NY8SdtTUIqFq+5$HwahNg%p_B$isCBMjOm>X4ReFjt|k~doDRJ6XJ_a0m5NHm zYKGUom2$`m3;aS0WiGw*vx~C4#bAn>BT<+dSEiyN8qI`zQAl1|Zd$t36`qQ~Hb{FW z;vW|JeJoG342n|+u-}r4saT%{$2xM7t&OZ`-IIwJM+qo%zW^aon~zuOt*B1-Ef#TrO5;ZS*Pe9>@qdw=4NB@kT=IZ z9TTm%In@o2=|Sb--LSJoZKi0gx{ z`1H()P{)Y8A?+q(X{nr{AdMMlngMwbVG1U5GI{i6%E>L%ehbwrL#+U2FHnQL>3+zZ z$+)B2%D_UbAm8R#O3@)Rzfd@2=2y3p?i^(o zmD^2ZgOfxF92-uQ^MupF;@RH$SgI2Y_EhpUz8k1ix+Kaqcvu2?C=lZZVPs84r z&S^q})rXnZCQTKt6oR9eg1D*$KCB8*CB1i~rc13$GL$CUbT~v$l6o-c)r)dYsH)Jc z`9O5i_6d6$G+PX|Z=>nFLX?~i@2R)|`&+6uf&-+B3ybm#)T$k&XXju(AW%<6+Io?9 zrj3`bhlw_koM;yu`Ed9LdEu$D4TKiOszO7F2B|T0$uO^jbn)uEDMRVg^~z9HK$jF0 z&4w9~B?d2YQD##wtMzW( zFouF{rdk(!PuUsSMGMr;L4mGFZd&2oLM^F{1O{ReCPNqlB}m3GXjujmG=$6n?S9cJ zPy?`n7EUS8=J=44Mm9zJV=6beI6|?uRguawJR;@zsSHfhX>i|^Yt^J*-;-LOG=XaG z4vV%7%`I#&<)o!!9MOJ4{N#x?8VApWKI{-vg>4QtquC)|cW%Zo#khFY(lkfVKE!0d zFAu{ZAzPPio6ddn^c-pTxz(jwi(V|KRs!d-Q9=E#b?fGZ?=2ImA55j4STZApG<&Ke zx(8`0_@AmhNFrz{l+)5=LG%Du<;cv46))X{(xSH*F?nPAG!M(j z1!-TBCsG)HzdygA$S3|41lX!*7ziG3aAe(*U(v>%;MtB%{C z>5``=#$k=-RsIYgCl_GHC^NqR8_~!dJXB{+Oc>U55F#=pmPH^w4BK^0nN(VWa-hbl z9a0vM!UhG49b~&mZ!r(DJ%PbI()5r8C+SU3S#TxLV;My1Q$){EnHSPZ~?;32oh{*wK{RG3E=qS5|rf;bh@7J3TT zkAG;>6ugsC#M`tz{tB~xLn%yerGyHQ_N8Ohx^$r0mJW2wN+GZVnvklm_2#2(*C9b8 zy8CS+LE8wA8wMOMRrVY_??Jz)M+ca}w9|)GbCGiU$Tcs_3m)d^LrgU3Sp`i#p>9!c zK88#@_STaVCnuA0m(Z&%?G`FB3aK)OOxZLCV8ifnVK{{L7l60+?bSPZ2DraX=+f9eXSZ&4=KnlU=~C&yg*P- zNJEyqwu-||#SSw`t0T-0^gK1p&4(8;i&eHumYuwrMp*Dc0DCa{Jord}cAN04WZac7 zM3$|Qnp{*}McteKv5IyPvx>A%wrSTpmci!Ng$38rL0or>ve@KiiFLpZ4vi~fq%5+7 z=lY?9z^a#((<%K@jK|5dn>P2cfl!P+WwlsU!mKn8yKH!%M(Zb1ZQtTitxbNKIv_7i z9q5U#$xBn9gO{fAjOkE$X(|K5JJd_l;^f!!@-bMb%}Y~4n8)EOkgrJFBDq+i7i9B; zHnsYtB_J+VKB+P;YOa}zg|M1pLZK!bWOKI+Cy(40{WQD?>#G7QQzl^82b)7=8^wjN zmYA~jWZE<)G#nzQ7D?3l7{k6i?I#DFA;PKfCffl6D3(I@dSHvylQp|APbD^C-WlV` zCAd#!JC~_dFI=bz^pW04)yJx~`jF=vmf^Wqp9SAx(5J*Uc{xENw&_U&dagbC$hTe=UAnu5-x&O@8~)e8y* z_C|q8!%HLVb&4Rps6wwYh$M|^zI$1qb3J8efv==z)W&e3ZC;%VFP01e9w5TOm`(fG z7#)-Jgxesw|k1kBu0gA*+oMUr#q3w1%`N z&sWkC<)ka|+>Bh+Tr9Knjne))76EuSrjW0rDICv}b**x;^X7VUv-7;UMa2x+SFHMe zZH<$S2dCKG(HGNA@)AW_gWl@lW3@cPqCm@P7s+-U!gDnyGSlEMNV|~ku*{*1^z_0| zI?2>%+i{?EVbh}}dzX=OWxE4S09ZBJ5tRN5Z4z6n%2?)`1RwD70^W(?bJ{^uokf<5 zSPP>~j*U1PD$fb0ThqHi=r!dYu@e=dkvs>H_4F}Q z#*e+yn-n)CZlY>D$)zi(RQtKqvZw%)g2VMXPp)n{<7)@;ZlZDv%)$prSBaEV8@+^= zPSiFeLB=V$GMMSeoa)|Dn{~>%sw~lpmjUz&n3xFI7h{dAXKlKGgy;gw;N?J2FXd5*q8O#Br*c7nUOC_mC7X*c zZVK%l$)${C;MG5VU>(w?bZ^vJDhb!cef@a;_F2 z#3^ObNSYczPZ+Ra!B?KxFQ%s+c32guo`smG?w*t0M#QjfdJB`Tww-&^X3xeOe)NK- zZXA1_y;Y=BnkY$?=36RM_o(iIUb=*(plt-2Xl*$m?=z}4(7P67)v&&|A^xHQW$SFa zO}xE$l4&$?>TVOGX2CK_y$7X=#6$GC-s^n@`9V5pe^V_mntG3xdjvJT?!^22wr4CX z?S}UukN9!Oue|CO)$LSdlPH8k4BbW9g_tDp5QdbTEQQ9^PZdH1(sKNG-HYBO&}~b1 zY+|BJ;h}2K7;Y^u)08USVND`6Q%pU1sD%(XGY4y6EjG zAYP)Lo7QlQx8O{G_4fHPRh-z%Wyfb^#~3FQH7}xmZHPiF#EozU_{nu;3Xy5ekV3V9D-vZw-KvK+4X57Hr;NiGDC29{pp;#Cc) zEIAJnkKTunI+B2l2Bt1v^3N)?4_&*A&XlXwLu|fG-l__@R0%ZY&~>DZ2#8mr^jrAB zmOmK{xlgQ$f)AL2H`ny~7U|`xVCjp`1A=z& zhnsk!gVi+NL&rxr3RZ7$<-HCkB#!R(hJI zmhgpGj^i*1-^u8`WW1(J_onWL)KE5CQC$+Y9*HjaPK*{Wip}&6C*BbVUXzi{ean@z zT_WF2B#fV;3JiWoK>#*x&GyDE@(V)t9Cd%x>Ote3gZEn4f*UIGp79W!i9;IAqaP zs?+RCWiI6;JeI7v#(+;i<&8_Vh~yT^_7Ne*WBSA8wVuxv^D5m8P@BKF$ucFE;L|4D}6?Sf3_QM=>SBFIB)? zg_R3t+k~A3Wmd;~U3yzdy`^@2PBzx1uyHiNs9E%c$vZdn^iwsuI=8*StR9`F73K}n zyRI-V>Y;fPjH}$r*H<__JX7E4Q1$pJ173GdFUa->zs6vgisQLm4L}MdlO zR=S)GjJiMc6qb$r+SW-s2DGK1_DuexgtEjZsnE5PO$oDZv_w}DYL&uX1{xQy*HLW? z!ozk{$?2!rOSsHn(@N&acNI40WUV0=dQZ~p za05;7$r^2WC#kcONWYX4-c|F)O-l)B8NFBt+0CMcY=U(??0uxa1I6dYW5(h8IT!}@ z))Q69%U}~QIX-zzvUh6ol<||s>Fe~jqk4NyT|;mD@du^K5RUT|P34zbEd`L-&`ueV zC!`$v2^m<$Tm^;{tkmci2gj<%Ou8x>(T_0D0yMe#lwV2g5Vy)tuYD@_7Zuen04OL^ zVHw5nXKDX~7tSG9c{BAU5vGQMG;9#)*%MO%%u4WEJ!KTtw4eqrW%)9ELxTBOoMZoh zKkO^OPc+k9Qjm_1t%BHK?@-ugK2_fW4sXh)b9$>ZBp=@j&Pmtbph&*`oWCXXX3+~h zcnG0CauG>r3X@}ALth(GRl{8+dFgmgk&~017V`085VY62(5D_c=+7Ie$@uMP+R;_3 zX<)kj3JY~@vE@;S-?5Cwa4`nMvQ9q|;)$Fe)2FnZBS z|K^HF@H;QcO|)g{a}*`sJUk7$gz(^gB`w#;pA21j1@|KKN(@gdSonFnxBXI zv3OEneK&2?&Y7ejeuqIhpV`=D7!4SMKb#gNKV5&z5a-R!&+uv$@$`LAaZ^2bJ4$V# zqfowLw0Q+OOlr>lwp^hN(%d}!9*uX-BzfX5!f~pCpa=9v&Sr*c%>}yRL6V(xdHQT);id0L>hT{g)GHT1 zJ(H3>L6}&*IW@2_f8d~j?tyNLAUeB{j=-#@oN*JzkB;{a9ykcU-=sq`{8ZBa{eR8> zU+4_Iw&|?t=)cwXze)bL{QsuEnME43mjCyn(TK;>zMdJTvdH)k#B>O*+m-_xs zQ?rc!T&^koKP~Nl<^Q(@{t*3JnJ-lUv&mv&+;*6hU#fxJYe958Lv0+ zM#kM|h3YxVc$tA)opgN~47`%-8QVQnPXx=C8+at+hYdW6aZis>Jub#q8h8xjjRxMp z^+`NCRF9kGD-1lA@uLRrVLa)aP(6u^R~mQ{8Lu|*62>EYh3W|~o@L-=jMo@=Ipa~iL-nj=+;8Bi5&C{>4SXf{iz_-*PYkzD ziGf$J{yGD%WIU!%sGb1p4;Xj~li<5;Ps4qVnX#aFuu~j4>R6q;EjwYo)@a;DB~3dZgtl8b=1Hk8BgjLs>j86rGZEM z%)g7jXcrW$zcpIT3~fhRE@d48y#KpS13ECWBx zc#VNKFdj89R8Jk_egpS#J!=g-k#W}rp?Z=SFEQ{`#_J5+&v=YGR8I-x0Rs;(UT@%K zjJpSg>M3Wu%)l!dZ!qv0#$yME>ZxbE+`tx{?@Roa7y}o6dJJ6nnPT9=PrrfJ zGe64=TzFey;Eg-=II1-86t`~wDg!^7tMM8GU(R}J4cyOq>I~c(r1dlyxQF!|Ht=%R z(`ew4tj8J_+Ro*B^nFDb_)69jY2Z<;$7SFi))Qmkm8{2Y;4!SnW8gKrb$t>Iyqfi- z8n~b3vkbhJfy>{2FEen9|BigQfy>{;SZUz$cgHFW+;yEUx6;7f`5Lb>aQQoT)dntq2cgEm ztN8CD)Ec<_z4bZ+m%nRPZ{XIwx;_mC?%AmE!v-#YzqrxB>(PA3Xeb zULp)!{;pr7fv57{`-?JgKjSU~ui*85jDaVyyxYK|X6pLI8o2!ZagTu~r0MoaH1NnQ zji(s6@H5rGg`ZglF8uTxxbU;Yzyo{r-+c%exbU;gz=faX1}^+uY2d=o3Ii8@RvNhQ zv&z7QpVbB~{H!r>;b*OZ3qR`&T=-dU;KI)a0~dZCHgMr*qk#)Qj~ck}(;6PibKz%% zf!8rVBMn^m8D-$YPnUrUKVuAB_~|xq;it#Ig`bHAF8oX~aN%c)feQ~)4P5MJmVpaD z{RS@lEHQB5XTZRPpJfIv{46(c;pa*N7k*Y4xbU;mz=fYx1}^-pHgMr*je!e4YYklZ zS!dwF&w2wFel{4m@bj>N3qKnTJc<9F@=+6K`)OSq%5&jogn{Wy|YvUck$m-&N6Tr7k&r4 z#K6n>?+^tHT=-dL;KI*x0~da-G;rZ(g@Fq{D-B%uS!Li!{P)YM4P5^IY>k1J^56fh zHE{Vmq;&=^e;=*hz#HCSzs11i?>-+kaQXZ7jRr3KJZj*=PwSFUo(n%C4P5vcW#Gb3 zmw^jEV+>sQ={9iTPpp9pKRpI6{7f`(;b)S8i~bY`Jk`L3pIHVj{PY{R@Uz6gg`WWf z7k-u*xbU;wz=fYH4P5wHVc^2gN&^>uRvEbPv)aIgpEU;V=D&AVYv97qIs+Ge)*HC+ zv%$cHpN9=x_<7X8g`d`lP(BMkBMe;l8EN3clPCih`{^=p;b)A23qRckF8qu&a4Fa0 zfF~Nb@H5H4g`X(~F8oY2aN%c`feSzV1}^+8F>v8$z`%u{Wd<(%EH`lB=Sl+?epVQ` z@Uzmu>*}@rtTJ%nXSIO~KWhwJ_*rYkVA^*Qft0~dbQ8o2PY&cKDA^#(5dY%p-)=V1dEel{Ao z@bjpF3qLJSD9?qT5e6>&j5KiJXOw{pKV1ec{ERVh;iuccg`cqoF8uTuxbQR4z{`1l zPcm@fXNrN#{GMvy!p|%N7k>H;T=*FsQ={9iTXRLt>KRpI6^LwI!3qO+#T=#lVH1sRl0m%rbD{q2Iv8|12?Z;b*|Wg`Z^xF8nMvaN*}l z0~dZ)7`X7W(!hnERR%8ntTu4rXN`diKWhzK_*rM*!q0jG7k)MvxbX9^feSwy4P5wn z)WC(GR(vSW8+m?@FmT~#q=C!)9%bOdPnUrUKVuAB_!(>9!cUKZ3qKPLT=uRvEbPv)aIgpEU+9{H!%_;b)zJ3qR`( zT=>~w;4;4-HgMr*qk#)Qj~ck}Gh$3A&m&9q`$drk?pdVqCl z>HknFnM_NG0U<#DqzLrMv_Rx<2mwM-I++xVRA34SfmZq?Ef}fb1PVlSVHygX#)X~L zf(h=z5GqCycPuMrk=4nxV5Eux1TsL$_jBesmz+7P>+i?w)mQR)Klkss=l*@}6IvCw z{^=@i{j)=H>z{GOt$%hYZv8W%xb@E-&Dl?qikGl|_9<@tGo`ro&q2kle-3HR`DPTi z{yCz!_0Lhot$&UwZvE4oRp{r|KT8z1{uxl*`e&)))<1)aTmP(3-1=vg;?_T_HD~{H z6u16atGM;gI?dTX8x^z`GMTmP)qoc+^L-1=v&;?_Uw6u17_sJQjdh~m~i zTNJnc8B;vn%Ig-z4f~0!xSiiS6u15vSKRt%m*Unxdo<^KlZspa>{HzOXG(GFpM#29 z|4b`x{c}ih>z^6Lt$&UvZvAsqaqFLBid+9QUnul*>z^f>vwsE@xBgkGxb@GV=Ioyp zid+AzQr!Aywc^%49mTDG)+%oOvrcjApN)!J|BNVZ{j)`JJATF#xBl6xxb;t0aqFLP z&F#3Yxb@G3;?_TV6u17FRNVS!pW@a(Q;J*v98}!;XIgRVpF@gU|I8?E{c}Wd>z|{V zvww~$ZvE4oUFhf5KT9-c{|qQ@{j*eY>z_fzt$$W1ZvC@LaqFMeid+A56u16atGM;g zI>oJjHY#rYGorZl&lbh4f3|9F$8E)}e|9Kt{WGq(^}{a3?fNsJxb@E-#jSrP6}SG` zr?~acl;YMu2Nk#enO5BT=aA;?pBcrie~u__{c}`v_RlfJt$&(x3jN&rXNlt0KLd(e z|14G9`e#sa>z@^hN49wLdzIqWKdTkD^Sh(C_0L+xt$)@jZv8W&Is0de;?_T7id+9| zRowcgtGM;g4#lm1#uc~z*`>Jk&xGREKYJ9n{+U$V`e&cw)<094vwsdMZv8W@xb@E= z&DlRQid+92QQZ3HsN&W?#}v2zY0fS5bL*caid+8-C~p0;RB`K{LB;L(S)sV~&nm^O ze^x7Q{j*kc_Rl)St$#KuZv8W&xb@E##jStF6u17_s<`z}S8?l~9g183j4N*avrBR7 zp9#gSfA(n3{+U$V`e&cw)<094vwsdMZv8W@xb@E=#jSs46u164qPX?XQN^u)jwx>a z)0|i6=hi<<6u15vP~7@wsp8f@gNj@Kth%5u-^3R^U9EVgoBz&(;`V(|OmXXVh3RCN#}yxAKB9QZJ6^wbu2ktT?^4`(*9$+Ycqxaky{a&s zD&`5rYnhKJo@8G4<-&9#%zG4XWo}vu!^fF7D&E69sd$Qc$yW-~8Dbt$e3W^g;w5aK zz}1E61ev!eUd=qEcpdZ7^@ZuQFpnwjG9OgDi+S*?h3O=jw<5MY(Qas6g zRPhw^+6{&2q?soaA7MVGxOvaBbKUiY>69|>QM{VDxuGz8fO(_hRm_u$*D)`-u`rz& z^N8Yc=6#AMnFqdBm`<8`i{hiqQ;G-P_v}!5Q(-z4%wvi>%m)>3WFEY^Fr66lR>eD* zrxi~yuV^hyr;oX-c$)c;;v>wfZYfNs)94>GUaRG3bNc|!3q=3|Nn#@PSAUYJe=^B%>knVZ`R!`CuzR6N2w zsdy{%lFfzb#Fsh%dBv8(bcUF_ijOfLQar$aSF>tsVLBDeI}~@AXB2N_UVVFEI<3s( zigz&|QM`}2b4Ou1L(IDrA7ehMc+h3qj;>*<4MIG{`Zr#@6u0}G zQN`_k$KK!6b~E4n+jc8a+}bUmxV2lU;?{0K#jV|{6t{M(R@~aHR&i^$M#Zh&B8pqP z#T2)8YgOFZ&E6~2cI!~#t-r+;w|47N+}bUnxV2l4;?{0`id(y-6t{LuD{k$UQQX>X zL~(1kF~zOj%$KMil<)o_@Ls&%!d?Dzv6|@ zDDH6h5yjW-^}>%TUd7zpRoE`0mw5FGC?2@f<3YtMm{%!Y&D>GEmU*4x5#|xaW6WcU zyUbn1~)RRJ@gW zmEv*cj^YXCb&B^fk0?IGJf`>n&nP~~ zd{prf=H}al_Agn({;zli^Pu7m^D4z7%pJvD=5>m9F^?#oWFAv|kh!aPhIw4^G3E)y zOE358n^e4tc}j7Id0O#W<{8B!%tsZEF*or-`@75oipQA;6;Cj)QoN73qxc~6I>j^0 zBZ`kPk11aAMbB=o;-$>vidQgCC|=Dxsdz2(l;Vxd(~7q;&nVu(d{pr+=BBgI{z>Km z#Rr)O6(3?=rT7SQM{)Bd&u(>!mokqiUd=qFcq4OH@fh>C;vLKriYJ&S6;CoxDV}1U zRy@r-qxdNEQN;sScy=)N6xu(?JfL_r^Pu95%&Qb{W$q{*XI`gx5A%rPgUn-!XPCQ+ zo3&oO;)<6tPbgl+JgIms^OWK(%+rdy%rlC|nU5--WNz*)wErOUfZ`eELB+?IS1BHd zcy@3UuV7xMcs28g;nu8SG#w@k24P_o@5?WJk7jH@e$^Z;w4}9%3r5=kazKQW z$C$?zk26mwo@Aa>e2{rc@eK2{;$zG+iklX%zN3m)FgIO=_OE3gP&~#wsCXCiD#iPl zJBnwR*C{^AJfe8uD_;3yidQjr6?d4&6>nsoP&~#wsd$`uO7SG~wBjk|8O77gM-?Ao zZoX4!|B|b{`UVsaG7l(x zH(zD{SG<(Dt9Ui@xZ-up6N<-}Cl!w~PbuERJgs;i^NiwY=A(*_FgM>Vw0{Zzf8PR% zS1=DMUd_Bp@kZv3;xXoRio47siYJ)I6i+dC6;CsdD?Y+Jp}4u$Yu}XSOFW)dyp(xH z@ml7iibt56?-km)m3ct%IP;+53FcLbCz(5nr3dGLI`> zZU29Biq|qvD&ELErFe{aTJa9%8O6Jpk1C#IZvLsz{wd}G#fO*&6(40@rMOw<`H7== zfO(zbLFN&~tC`0XuVd~i9%CL?JkC6!cn|ZW;(g3hiVreRE1qGVQGAT~sN#X;o_)+i zh4v3J4=7&EJg9gb^D4z#m^+HQ%QORBy4CKRt=o>aV= zc}nqG=4r(nnP(JlVLqyO2Xpgqq5b2`1B&-B4=Ucryh`yjb4T$}=5>mj6`p+}ikC8v zDPG0gRlJUQT=5w5gyJ2{lZq#prxZ^yPb)seJfrw1^HIf1PhtO06xzRg!_i^}`;u+?y;$zI?ikE(#{a^7a=1IkCnWq$QVV+jJgLy{r z9_FKpruqIimVOz|P+uHvK2~Li;<+1By2?4=NsGUZr^5La#iI;x31;Q#{E$qWB>5nBpVMUB%5AUcPa~ zOPMDWuV9{3++m(lJi9D&`KaP?=BB66 z{yoeCil>+d6(3?=rT7?gNAW07lc~bEn<|)O~%+rdGG0!ModJfxP@oMI#x6uBL%ma$IG7l== z#k@-K6mv)M4D&k0&ADDVBZ>!^#}s#%yNXAc#}#*(ClpUGPbxmhJf-*u^R(h6=XvGN zC|<#QRPkEo=KF>Ak1-D@-o-qqc#?UQ;%VlN;-k##6fZfS?XP$R^O)kb%w5G>n8y|G zV4hIChj~)*LFOsNN0_G-FS&s2uXq*nQN^e=GBV;$6&xiuWiHZY=6b8na325Fn1Mqna36HVxCaEk9kt@4D*!Y=0dNWX~ip;XB4kxKB{;NbMtti z{axk(#goi~iVrcbQhbcLqj+h(SN=N1tC>d>Z)6@*yp_4Dco*}y;wk0{#WT#4ikDpE zl{2My74x*>jm$HO$C!^Q-oe~FQE2}z<^jc%%!7)jnO7-3!rW2ZG_d^@FJ&H4yn=a5 z@ml7t;t}R?#ao#t6z^i5RJ?IE+h6e{hfga$#5|+;DDzRpOE31)H~(5_|0?DI#p{>{ z6>ni)rMS!7QM`+Jo#IL65yc0Y#}v;ncNHIF9#_2N60g1q#e>X~iaX3xiZ?P(D;{H> zQM`lssNxCcCRu3zKIQ?%2bnt;c;S8ce5t}r{8uOV@(FAj1#b~NBKX$@ZxP%TyjAe~ z1$PDiC&4=ePY50t{D*=k1pl?*J%Ya`c%R@^zKI8E!7mcr)OmLE!*1Re&0d@m!M!iS zJRT67drJO6so;|*vNb`$y_~#<6@r(D@Ku5zDtNWvQv`PepDK8*;L`-J6Z|m28wH;( zctr5S1#b~NAb3ph8G^S8K2va4@L7U)2tHfzxZraH?-G2j;0eL!3Em@kso+V$j}W|1 z@cDwL1V2*nLBSUYo)-Kwf)5FPl;9b`%LE@0JSh06;N^mk2_6#MTsYzX3k5F`e39S* z!H*WaRPe=u2L(Sy@Cv~{D|nUQm4a6beyre*;KvDGEBNOGuM_-u!5alXLGXy+Rf4w& zexl$p!A}yrRq&GqcLiS}c!%Ii1&<59Ozh~RaCw+Mcr;4#7L z1#cDnBEen38wBqV{9?i5f?pzdm*AHQo)ElI@E*Z06Fe#S8o~Pnzg+N?;9nGcQ1CAa zo)-KH!G{E2D|klmh~OiFHwiu}cvSE)!J7p)7fty8I>Ac>zf$mk;8zJ=D)^TL4+<{V znH7S6MTD;s{A$6g1z#_?BluSZuNC|n!RrLSR`5o_uM<2XcuepX!8ZsV6a0F?TLr&C za98jf1@932Yl6oGze(^e!EY8kA$Y6cJ%ZmNcvA3N1@9Alqu?pQHwiu{_}2wb3x1p6 zLxOJ>JR^9U;3I;!3qC6N7Qx2^-zvCinDGDG1uqf&4#5M0e?#z6!8-&G3jR&OD+Iq& z@G8N#30^Juw*+?tzf161!S5ElPVjFF-Y9rn@QC1@g0~2MkKi%E?-jgN@a=-Tg5M{2 zhu{wg9v8ez@Gil>BX~ma2LLc!}V<1P=(_D|o5k-xoY6_`e8VA^78hR|)=v z;MIcvtKg2{Nx^Fc|2M(w1pk5Hje`GB@QC2M1#c1jNx@@+KP7mp;6D=F6}(UI4#E2c zj|={^;9Y|MSn!14|1Nls;Qt|bQt)R4?-Tr4!Bc{#1RoUqIlISvcvA3;;C+G*3!V}@EBK(``vgx5zF+Vm!Cx0VBlsJFj|lz; z!AAuj5qwPWKMHOxo$&uR1uqf&fZzea|0H;+;C~i8DEM1~R|x(W!K(xx6}(#Tw*_|u ze@F0I!QU0UPVm19-YEEcf=2{@U+@;eKM*`7_?Y0Wg69Nx1^-a+4#7VXJTCahf_Dji zQ1FD{p9tO~__*Ln!HsX?L7(70!Bc|!1s@c=Nbt1a#exqBK1uM5;FAR(5&RIrM+Gkt zd`$2|1viZo{y#4H}Xez@ROf(Hbz7JP=_j^Hx|uN8cj z;B|t}7Q9jLIf6$7pDTEa;PV8J30^9AtKdfn?g~C%@D9O`6g)2Y0>Qfk|BT=X!H*KW zNANPilY$2Y?-RUS@RZ;o!3PCjD0o`%MS>3rezf2j!50fYBKR?aj|yHP_?Y0I72I4l z;s2F_mk55W-~qvp6TDRL&j}tB{CL4D1V2IWD#7LZyK2Et6yY7gPZGRV@RJ3v6MTu_ zje;)~JR_F_$h*S2>yA&kad2%ZuAOu7>uf41Ny zf}bOJK=5+~FBSYe!GnUIFL;IE7YJS@c%9(Yf?p`OBY3^wwSqSYUMKj)f;S3&iQo~z zFBQB+@J7L7f?pu7QtHuzg2Ko@Qs3Z2);@1xZqzGyi4%g1WyRQS@0ggUBQ!rw+Y@Sc)Q>!!M6xL zDEL;v(}LeF_>kat2%ZuA8-kAr-XZv?;NKK{Oz=AeH(#9a|80Vo1&e-taO1PP4i=ft z8I#TSgBzdgNfoXA^r&ML&(eM~I^&bGa)Ip1&Y-{S6^dj3jrvV|hTq8r{3ib_uO~x? zgq{K&7J52#ROp$|?LyCm?iPAJ^nlPuL1%>yLHm6Z`7eeJ30(;t7W#PTsL&@tw+p=t zx?AW|pa+CL9Xcy?7~1cj$p1{}kkDsChlM^LIx2KMbi2@(Kz9qh26{l~E1i z6Zu~S9TNI#=&;b&LPv$Z9=cuVo1nXez7={v=-Z&PLbpTvizo8G13D!1ozP*S?}m;F zeGhcI(Dy@k3;iJUfY1*?XNB&D_D`C~|1s#0(7n)Mp`U<`3jG7Sl2z?uLR_JzU|Fntx?|=>oeJ6BS=)0k#Lf-@3F7*A--9kSIJs|W$ z&{?6oq5X$VB|9)R{wpUD3O=#bDq zhYkz=ysv+hwc{oLFfUYAA-&b-3{%ZGm-ye z&>^9Fp~FHy0UZ_k2hi<8KLy<_^wZD-LO%nY6?y>LKX)Sk7obBz{~S6j^e>^KLhprc z7y1?GZlPa=9uWF>&{?6g(EfQ7`M&`j68cT(u+VQoM}>X|x?Sk^p}U3t5PCr9PoT3x z`&S|V(uw>hLx+T(0v#55I&@U%nb7S*&xP(5dOq}k&__XMg$_ackC@1RF?2}iO6aiA z$3sVjJ_)*A=w;B|LZ1RXAoS_bS)s$w{`nL6p9vij`fTX1(C0%(g|3Hg7y1(DZlTve z4+wn)bXMpnwExJ7{I7xz34JwmSmq-4|KcG_d|CJ{UG#!&<{aph3cA+nU?iP9t^nlP;Kxc)HLi-m^^AkgboXRH*{3!d!XBe zz8|_<=m(((gnkG*D|9!s|LBSQAA=4F-3uKS`U&W$&_94~7y2paZlRxs9uWE&=&aBK z(Eh~}`M&@i68h)RVWEEs9Tj>nbi2^6Kz9rMD)fNRzk|*SorU%vGm-xr&>^AUgboY+ z7IakTcc9yaejmD9=ntU>g#H9NE42R%3(CtEB0^Ke28t4I`uYk@99fkHEJCXlY&>^9(h7JpTEp$}q>!I6) zz6rWp=v$!&guV?rD|9=w|G0_#?|=>oeJ6BS=)0k#Lf-@3F7*A--9kSIJs|W$&{?6o zq5Yqm$p10ukkGx*VWFRZjtcz)=ysu>g6g{q^XOfIeOEv~@$qreBuu9dKg;oRr7;Im z#xy*Kc;&m#$~7V0Xpyhi;5|eBJ%kEhZp@3Jk2k+uGp%h~`NuW)K8NrFh#UU*vvSdV zT>qzWDZhgopUJ=5cz3GF%_=hS$bho~@B5dcoJo^BE9W9kzRV?O=Kk%Y@dt*+#~%n9 zw>~mpR=hja$sOD{kbfUy>+st6_&oc2zCOm?E9+?ffks|&llV;Mr*X`*4H4Ae#v4=V z=fgYY|7Uorqi@mHdU}WBuXXyVuJ0C^-nGWJ9(Q;eii(|_ALa6)Ud`*AT=S_;E@D=` z5=5NH*`~i~vXjdc&FZE4mg70qx!iGbwjB;`?BC^^;^xzT_afgeO4}fx;Y&?_O=xTV z_{k<$hP+bqOoI=aes>Nv4H2Zf5P6n^y}ruVS!_D?hVlF4DwJWs*H3w-P>#PAnabgd zoc{7d%#!HwPA+?b$!*5-vJUh1=Za0kI;69&$lrUF-|4>{_X7c*OCYy#W#_4}<{MnhCQ5JWSX{edu*1LYU9`Ei(7u^Coq?UI^ z%ia0_+B@<>O}}qb$*h&r%!W*(|}v*869>^)|iN z5oY|8@dvV(I{Et4puS}*%=U!2qkgt=XOew0Cp-E6@Mv!QflSft%6BiS*>!N^PxF2i zggq$ClW2D;`->lrHxyA@6}$ECUGCp?u`%1oPSk#HY%|*(Sv=d>6%G`2KH~SiI1Ib3o^5s&&#u|E zdbV$uA89l!aPHY`LI=)4`>l1&h91};a=O#Mx!3f=Hlv@8(qSz&VRe!@e!PPRir8yO92&X7@1C{-C*N zSESeJUlv@p?R~^g%|==Au4pdOH!&wSuf)mWt>#f|@?_D0=^+EHhU0cv@k%5~2#K`zk zs#l~Pea)%Kg%3BoeXDEo{mOxlml^ohbhG4uV;ZPkgA}$BeGlcOdM#~ra-H8Y+u?V4 z8xOJ)= zBYxAr6ucYlwAPrn?=&JSRdgn!-Br`i6YpU`eZon@4TayY;87t4rx-K$;>kO^vW>* z+=aey)k!tEGiSlqU;_i&>_gwkVjjM7Sxs(yxyd=xe0}>L@pYEhnS4K_aXU4`EP3zn zGxNS2MLe<<%>`?}XmS^~VtoFb*_~Toyeo2rlUo%-8klR>jbXfvdgEae{Z9G8_br)tq$fwr*06taf*3V{6;}h{kailZXt)H&aS^aG^yjZS{VR(D*W(UMLt=J%c?RLAU%z@C=9g8Cfw zN53)som>~nf9tp0`e@Ze{ZB>Rn~ty(6 zQO9!IURXEoJ`8P^!@QjLW53sy!$qZ)`SwIx7onZ0y|d^;4*E?P{ie(mt#^trubH_A zFcvnH!Z%hHm98(RHm82zH%rOKeDEU&epfS;pYwJ<{lWMH#Pf4^tI3%;W;gXI^6zh7 zfw6WLe4pn4YTtI0oBWj0Tnhg*m;;*;pKKkOHo6RR(%yOa2VbpkMLvh3kDrG!KZ$wC zKO6Z6o!nZp@tqI+?t?4M=67Df&rDHiZ~8;{60MJl=2VhiYv!y!m;H754C-I2cg@4x zK<(4Y?PABab>H!Ptd7bi+PeIm@rGgchiOnLm2e>v#&nLT%TacI4E70M~YJc2M~MZWdd?DN_)^4IaD_q{#7 zdk1`$+HV{AKiXvu+GHyK-h{OQ*^6xFgY7E0?2Ep~`CuNgb4LftWXrP+d65s#OGws?!{v-(jlpLQ{Byo)lpu;Xl6Gh$tE z6NlaTuU=T1+iaPdMVY7$S8`Z8{}dxmJJztjMVdFE-`Kj&MP2{GVfR1grQ0pauovN} zZLho2Y^U{yU5gxkEY=~I1NNbBC4A;dS+{jNym9GANVf_0ro75wUu)Z!!KuGfTik~9 z4{rRiw;!|nh{f1HT!3}Z*%*f~zXvf6<=2knWAM9j2lD~^%v&@6B)?{+br8+FO_lId zgjrgQap^|P4QTV-@Uu3|r3UNy#MPl{V(w(KB0s)k9`sLhc7>*yUH)k``03k~A731d z1Cy|xLK*$5G52E)d@lA7&H^(tyve!ugCkAOz0<64@1{B0zm4iy9`to~VvL}4F;DcG z|EkG7S!uREHxS$w1q)*?31hy)`enty&x6&=F&2?+zjLuS55I(cP4`Tva~Sb0XM?@+{&*zDm9xEl1C2Ss56740?T@n38f)ch z)BiI3v*swV?|F{>4!*G$W9bg;Q4IWz(rZFm|BUd|wluC6@4>hpg3odM7gYEUkUzzF z5OJ~>zhb@0ulk%1@nyXchw5v6tY=7x}0uHW!dz`Ouah-7slaX3M0bm+6cRf{wHT*3?C`#4;Fp>p6r&%yD}%Z zr(G5(U5@@-Pvidh<{6*OEXRBjHcw{Iw?5k9@BH|Ae`jim*?r9W;}7_%&5Y~=DAxjW zV$gBt*I@rMjC9SWqFIsOhWbp2nX%n(rqUkuxRXtT``f0mw_(>@W%cs@|{t()@n%N!Wts(wAz{=U{_8FLw8qW3L!R zd(*Q&pQWCm4_(gB4#TtIRZgz`Hs@Z7dolC#&cuEV<;h;;?`)e&eqY-AKK5Re-Zf`n zFF^G~|8$GY3i{nW1pO0b943x7FVEN2Hx>POh97&KwU`f=1h&sF!nuW)*R0+)_y^5D zH zYI5-5^wyW%`owClz4pGxYsvF?KQ`pcT}kufIc7-^en8`6qCIsg`9cD|kZCr#Cs8Nz zgAdT&)b_T`$tP~bKdejO3-fxHFE+a$L;8Qq2W0!NEioG+Q(<%DVSV9TtZg2EFT4d` zfd9^DLb~+qLxiFJM$agZc?-?%yZ%8QMX)>NkvfR=K|YV7yubY!+WIj0iR;2g&__Z6 zTC z1-+T?V;-4@%^B>OdBo`_dy*|}|08?ei)WV|UA=71Yc;vAoot?TuXg&shjS~Z!YtiX zMeD=`z1O20RPIRF^A}>LzUIrtF=wPOFOYr|{V#&wY5nDzu4TmPQ2WHGW(ocNIMTq` zSg(UIf^-|=W={5gzn|6__?^ZsntKe^j|rR!;C!j~Uf8(oTmB7y`aJEsXZL;^X})z1 z=J0K%KeNP3`&y(m3FFc*(l5qO+MBndt`z=3`2N+1v*!8bodX%{$&2RqeuQv;g#Ubi zpC2JEt+U7d=I!EA=flW}l+S|R%fMf!{V1NT+e~A^?B0FwJxccyq?h@&>8JXb6Q~Sx zdbiIsGZvtZw*SyRj@teytP{3`u<;OkfxzN-<{u_+e65hINPVY-d z*M{GVXaDX;f55n!N#pDV{fGL@k5O0M?`du@ezUvtumAU$V*9(nenR&5!=T48CQgD4 zXbx$@_(W#`)W*Ze|J+M(26vQM@;%g#o@4(!kLI@=e%f-;8CCF;!0W8FrNP!{zLWs{S=&);Y`AZeUcwGrRP)fwlS5@Yn0i24(Le;j3^v1LV(nffHwd20_b8`^NrHe7Vpt}M!cW0Z~Q-f&FvtYw)Gwg!()P*?f%wP<4 zu=l(Qe&s{BDB^?>ZWZji8S`Q=;La!h7~;uw1(VK8)iJ#OyG}hA`MQuv`F*9rGu6AG$v93JnT%1Q4jEPf`Z#(?8#pzG{W_)QM%K8|5lg7s!!f(MGun_x8 z+t;a|QyRLjn?tjzrTj$yyzyAfv|R4$~y`V*Y*APvgLreB2g{ZqU$(wIeggpkJv zACK>*abOGb*-!CLa&lX+|FZSUmkD*#^&&g`i1XXC*UKx4`uxI{A?Mcro`2u@%EY?b zmWRslJNW2NIn1K}_QGVb|NgOMZ!tqzWxO=v?L`>cFH(IMee8v^VFvM>>iQE-XX|U; z^C)a!eY^a}d3!J))?2jK zDXMk)X^yA0GQCgAU`G;81F3+?ug#~>rH=tPk^$QBfWA{JasXpg)?uOANH?z`oDZz z$t;{LVlMFaE}UwXT!}QAk9Bg7qU^WAX8(@3SN_Jyeee0D+s-Unu^0U^T zTD=`-dQ{Jgip`1}u!nilKWpj-_(v>^dQu(FM1KE?wjho$7rs|iTzLcDe>vb3|DyG$ zwo-r2?!%co>P@ye8sq6O(#XGm#s29=%&9?RR%EfxqV>)!&M$MwS-UW&bdr5r$QF1; z_QMi-Te+DvmD*w_(%yf1?aLn=WoAZDw;i~A z=5Ko)X|8KIrFtLIyczkeLtOfOE8;XG&wY5lh2Jkzx<2qA+BoAcT^5AT(K(JiPor@c z`=@?7)64h$L)z+}o9T_=)HkxIcMsMCcC6NMn-F&m;x;wY`NI)7lSEr$efC3IHx-#B z5!B~-)T^o4?f0V|j`3~7S}AXrRW0S!WEc2m-d8bCulPrr{3wFF4CRA*MVd|ji(c82 zJEykQ{|dj47ft(>?yjMi!e{q8s@GD(#rRbx#$yfD%YWHhS4`l;9rTgW6R4% zaE@?|7p6F6F1!QnP=m9tp9RdXoMLCiPm9g378aWe2d9}|8B?}FK>@2zN zn4N(W7VivPHwizB@$(Oj!E0Z@zen+JEB^VnUVr{V{2Q)ln*Llx)Ahg_GzzjDMe_!p`upYE?HKfi84)%hz;(Se$e#~a`~7feFA9)bOQ zVRLO2p7}!jbEdhr96DHHt~CqF&-b0`n{JG6%Cn~AKm_l{KkJ+HVhR4OJOcH@p8X6n zY1^T1fBhc#AL@7Lwmqm@BItaKI-O92y7*BS-`1w{n^Bf9{zXu32j!-;&FXdMQ(38; z2Ice>M>dx)2u=?c$2R*Gl;daXW`vt=%TVS!^ninLv8JWD`bzkF1?=wgmFMkV4x8iN zz?2|<;`dqOX3~K_VomF`Tv>f3>RE!Y#uuDo&_>ig@)jL96n(;h9jx!^a5XJo zu0GRD-u4Fi!xp^9IvVNK4z8)Wi_IZte+ADM`W8<48GbG{ z$DHlkbo-PS%%M{vu-D{GcT9N!;d_03%eJ6TM)3P2#G$wbVIM`DFXNvvlcwx53#Z`! z%rNDJO>QN{d41oi6)(Vlj=>zZ5B<>iCY}8UGwa2aF;hk!F78YibG9?MsQPvE$^E8i zTXca_y`yDab&c_z{T$-a&mAp`s>^&u2ZphqYoome<_YSem;JUvzw6`K35>TYjn8 zJqz`nQ;IVcl*=?axfYB+G&Y(uaOVSdNWO#d2zO7~R@0fooZeB4KeRqDt7%Ozr*{Fu zzl`&@i@perdeHkUinqo~C;#q{&MoI*d~z|)(plecFkjH`WjND&C4as$x0lZQq|I>m zrIKuRF>FTmBD?)9o6)(z`oCc_I&++`+s1d=jx-HFoZ&2!Haq!LGc$_y!m|UR1HR9h zhRuHehMwi7;r^#EuAgdlFU8nRcKZP9BRXTDcmK5CxDNS+0$4|yS?BmrzKnm)HagFs zaoo_l2KC?K(0Dx$;b-@z{3~C9%__?Sw9cH@yAtt#?=Q~h^$O01#tsy9(i$&^y&m3k zc4BXvw_yb54{_M#RjgBfgK`q5y)xzb;k&+DUdOZf=PYae;MTH>?uUI+=VOk<`PNFb z8R`7q8g24rw8ee-=jdZTlic6jmfv3`5I$9nv-PvRcqbwrg>#=qJ7JIcYv?xoPH831 zHn|`erJq9h#4@vcD|{U1P1xVh>U|FWOm!t6r?tsev>Ew#3Vz+@cP_uJ>kwKy z;~aDMvIRJgd13s?ZtTCPY{hfDvNiGjv8|{h?GvWruEDHuDgGo9)}((Nf0EjT?uj&0 zewd@9o4$T;IJNM__G$iY7h$e`8EHo`2CR+Y%n@tro8hCs85yT{Y03S^dU^Pf=k-X} zk3K-}i!VccX{|@;Qrnke&-=qUb<6MlLhZ70%=L!OIdFc`w8&ZJB2Tj)eGKuA9QEQw zzJR?a>PYkVpK%6Z`_#SMXHqB=`4P?Y^@u~^4#WMM{qU=OH~2cU&G0k$T4sx{b28FF zKddZs&4%ZWLf^X_?-?A_g??Y_^aqbJOZTB|^Zp6H+fQpw_*V82@7>lZs0*ck-YF|o56h>T6Sk04%q%B24dwFMU|#Pxk-mGZSwiKfagfptA}-aB?#cNU zm>K&}4jR|W@m?rzJA|V(?=MkTdpF{+3K|_~Qb7C-Z2AL_gb zzqjSvdWtIg3Gaf#TnIyD0^b**fRH4oL80LUBFVa zgvt|n!W$bZ5r?#URZZ?c@jLlagx(^ej?&f_!BtYUm@K$kp_idbcHu2hEa}P%<_A}BQd@E$?=N69Pvk-^ch2CA;veEh1p2$SHQ$)Hqb30PHcX6CO zT)q(QWzgLjN@wTsUOrLeYi&1%{!4jL+}jW?2w&=fO~Rk?%C=~JVcGtK@KLPKZV+WF zzOv0bFXK6AAHq;OP@U^U*=QbG`ow zwl<^m=xmw%vj^$_8DSqoTI91-@3Y`1l+GITgM7Kq_0pg-#c7=Gy30HkMY(Lc_aUuU zz31_rjcxUG*BHVVPQFsMi^^zD(gC= z&;2OAe_mnO`3Otp+=28$-kEQF|JMq`%s?1Qr;Ea%T`A8!*A|AM^9?%x{x-rykM+VV zYAFmej`54~x`V;X$L*XN2#D<2L84;(wk+pq0LIxCCJ`r~jWVz6#` z81ImMfrbyiKdmq=b9l+}1lG&>yDapbLE5(=f$tK^uy!)oJDGo(b|LKpd+>ga_I*D1 z(wE@t`S;6s&$R~QY<|7@8JtP2Eb4U3ycf&Hd~g2@ab1jK!+2LW>`$F$N>Znl8*~2f z$?j>xllgbt*%-$Co;*JmzfVt{7DSlLG45%_Sd%tmo#Zc}_1Wy+W~ZccEv0Ojv#;~>7vRnrzSF=uvw_M&zGmNF z(Rh8sab`Q6wbL4h`d|cWoc|Ghcl8#GN#$<6kLRCN?C+Eo-R)|}oSg5kw|PEq!>wSS ze*6|wUAEPyn_kGITd>c@BYX50}&EMDd#>zV|Rvtc4j~R$hb1l{5Ke)c@ z+Pyl^7)WC}^=o=gYa6N~jk$YnZ_B?EwDlZEUSv-SN9)~o9!qw{3+?e9!bLF#P`Dik z_bB#&`%!j!Kb^lPf&2On)-UDosrm3BD*v_;(?GuQ+@HOA?CkK;45J=2Hzg)J{rmCm znbM*(D6Mvk^AxAtE$O_G)A_{#FaGK~z4(6QL*G15owjcE7?qpOv;R?=wEm-b`?s~> zPPy6er;+gnvP)?3r)#zNy1TqIX}J&ZG9teqN;#dGRA z7ozj#l;@whjEi7PS|`)OkwUgBzdT<*V9SUxf8JeFJCD*z;%b@GJ5u zI%f|d42_4hZqA>z<9nGl*ejS=mEX&{I7ciy&TI(cZYJeJbz0YjwhqFUcK?qy3}cL? zenVy6iMz4({X`r3jdxG=h5WeccB4NR<6Dnu=IvAf;|`5yIG4YM?n{-f?#Efg(h$-K z?J4TVdnW!ajN@XQr7<~!G5>P(bJ{E z#90x1t@Y)7h&Ruf*ZYCrPvbc5!OuF7K>t4%FM-zL`=<_k2arWtmmvNs#Jvb{S0io| zap_yCiyZ8G{KdV^h)d@wPx_0tJ?o!$URO?f}k)t}r=Y!0ZlUEKMPu9rUf~YiH$l z9KgO4VSNqo0klK@E+P76wK1^0x7Md|An$VzdOm6Wz)yaFv4P4&z7T>R(D>=X2Pl0i z3+2&)JW%(U_Ux3>rT%|#qu0(^eA7Yc@4v4w{WsC(v^Jr4V>V9;x9B?){c0FttnX2} zWA8oe?B3kn z-recrM#medT^~BpY)4x+{ouBWQEte=mN1O@Viaew@YNUi;fk7<&xP zLK6p%p|g;9@h-3IH1^l<{h4!6erhL58@^jlY1{9h^Kp9H>fc4(XgnX^a_Fyor%$}! zl-~#EzXKL^q;rgN+$jiR47TqR5I_Gef!4G>8q;ttcgrcbPxO7St$mq?>oI;;nn2C1 z_e*57Hb+l2DzbnqQhJo`jjeL2Q%8Yll9{g2kNiKD!8zYp?vtLF87STw2gqhn2O z8lHcYKck%A`|CHowKd%(eGliVhoTITAl}E~oj9F?!WMhq!~5-pk9&6#Tzs2ZhI{r@ z?oWEX@?xB>Y@6xax*q4Eln(hhrS(3Zr#?exg>!pvxW{a#_KV;gCT|nEhfwODQEp17 zx|jn~3%u`VKicQ(v|;F+rX1lGzl%8q@3HCJ_smkdmv?0Ee%!aAxqo<}cW>-yv>DBF zG`>axX305Nhtf9!C}({Hdw{&Hk6X1OgF9|mTh$lgo!~yChxO$O3TMOkE4(li&xY}< zFuq0qAJPe~S}}~gXfJ^S|IUS+UkGXa6+HXx+Fe)|cK#J*XrFF&y$|+E*mS-Ry$NmN z$3DT@atYdt(zyv7{i5=9grzkUy^HYHfAe~Gq{_DqBkuoTor3eqCHwIHKmQJc%TSK@ zW%NAX-k784`7p+*Z2tND-Y}kL@jQ%gFh-G&0~=ELv-i?IY<}+}C`00KYRh@O3A7in z_wh4|Hl@C}4(-|oo2`PsZ$-ONy03p3cPY?*xO2Mg4y50Vcc5W2`Nb^m5QIz3g|~yf zPI=;9M|;b{>V1?S?i$duDDGKM+Qe2PO}b~1MVYD1wwy|HAim{CAN0looZXYpi*M6D z!aayG8m|za%0*>d#ci+_Z9x40ueR~la@m?u=X}{v-`i17O0yYt-HP&ssl0i67QN`I zvi5O%p3ipNiJwhuM>$^T`ix>9P3&X*q`N9U%uP9@MLz!$)^QJ_?P=WHk7o;49fEe7 zm)}PO!7-LDITP)QyFR_;Mf7Zb{tmPsX}pFsutr!CJmm6SnQxTrItg~8K6^)}cZcv> zT;33uw-rC_n54@{#uHcJSl*y0>a@huyy|2!C7G5~_|a-g8Tc+6?KDui-2{ z|9fZ}{cOkgH8r`*VVh>8;y2s8PG+!L#@4tMQ z2dpj1dsg@FC^1WD-R=wHECb&|t#+`_#+(#_ws&NPFL3&6u-~ISPWd3}g*e#PzI`6r zo5uR4sMG&7tebcHofR(bP|^HTiDwD_l5O-2*8}*@9OLK;EPg5Bt!vLcAIY}$W9e0q0NgFTW9dltXso%6-uk2YT$mh#Uad^3NGweAI+DdL`? zjoUmCXC{UHHHR(!nKze55%xVW&)!dedY(l4Ak=R!*^2fSEB=VJ>3(xU{=RuL_7GU( z(YNLQ34fyTwGBTX=*8G!O#jVi;l0f9PCu>Z%JGh&?Re9F7uF_a#j~%^;9dvuZ$i71 zV$13Mk8_#X?LGvbEj3H;#rIZu+r6{AvlQQPQMrO>*Uf&j{;Sw)Wy-eJ50`D7>EDX8 zRIr!uPA-CPM#@$fZ`g&s1cfJC?EI>CuA0Spo)2q2vLn5dDT6(5U#j2WE(PB2_5XvDRS$~nPmZILpgq@_5J4QW&_$T-&SQolnrI3 zGxc*YhCN(qa#X){Tg-MUTiavde)>M9=DqQThfk+9=Iq{wVUOZ=vz^L>e3Rx+XXR=( z(HJymYRx9o@6N}b^GvVqWP2aZGxD|)ZA0%|HsgN(U2l&!Y@Xt5Fi1ZFyOG@!IIFn> z&r@q6tsGy9W0I&@bs7VFvdDyuTMQyLau6&32p4IW_n`;0)71X*jTjAKzD!t=o|<*@1i@ z@2{{o**b;qi}6mf->fi8?}N>80buvD{#p6^viBkm*@=9noc-=TuyD}HO!+cmOwaqkji&#%lqSmU z!&q2z9IZ!Y_u}2sr#8Cg54f{d?bV0uly6sre~I&5Bf=hrZ=>j&NXkcs9pJE&@m;^Q z+2i{W_LTn}_D2Z21@lJU2B&VV_u=2Vbxv*z?h0>hboyV%9@(aGR~CD?UaU!j=rbr= zz73DT+7$T*Q$_t$4k~Xq(rn{2x1j7a-?U?|P+o%h2yMM8X7c+92k$lW`J!At{JS4# znl`V`{eHZm9cdVprv^S5MjB!4hipA5o}(mwAs zuO6wOS=v4~+)sHMti`ZC+F$~0^C=Ho7pmj6)}Hvr=+pAOiu+l3W-uoDxxE%*PNe#8 z&ZpC!PiHO1{W9L?+qmZqd2!3oS2N`php3*YADzcXK2x$h_!`y$cpqT>+2DOK)#bP7 z|G2xAKmVdV7s|MozRL+_5Vz%PWAOFeWOuUnDGPAt6m!MJm=mz3s-$)Z;r)LY=aiII z6zdD82xB7Ef#W}g@IS-2Viu1rr@H08nF*QBX9vvN!#D#Xo6sJP-UHHeIuA3SF-r~Z z%F;92HX*L_JJ^%jIzOKF>g>mPo`L^R_z--?#+idSTj+1&AYJTNmlX$A_2ay8$wFUX z`6T$vPPF}M6Ik{LzL$I0`19W{K7ui0;R0t_5$sh~THN1-cAJH{>iHMxn+|+K2YY4y zYkVoKZIItg%4E~YAsmuoVp>3H* zkXBKryBB}2;>{-9*K_9>?;ZN7=uZd7cZY-CSRMW3@MX=gE#>QXurG6Q9}W3$#dG>D zE*#i0f9*80{v6nNgl*f7d6mY+BGemq```3oO+;g4%I7Sny8Q;#wlzI%JUhNlg5dqD8DUxKNzKRsHo>%&wKqM@`v%I2ImwM_H>lTj^!`IH*B7t z8$ka=+N&_n(Re^TEaKezpw#=4*2 z8J$B?Kczd5wy)w_-`&)I4bCn@$cO9_HXDBsLS6@8lfJz>7Qy6y^?D{EKWQxaGt~!eAZ>pMY;W89+!w|hw!^mMN0c_@L+x=4;*}#EANn8V zMR%%foWuUj%ZvIu#WCpnUb_|L`Y3N&hE%QPr*Lq zOOzJfr=hf{J>@#`25=gqno%zo&&gM=0z*FOt>w_PFG7BFc1HI6I_G24ZT8Zgc^Q7v z`?|N$Z>9fU#A&U=87-v~#hIgR7b@>pkX}89SyboN??*YZXwz@tC-nvTXY&5%k#in8L(@3djupg!a6jh@f%jp!_45z1=Y+K0aOXe;7^#F|M+TQ%Amj7!yT35cyswWStX zr~0W$pw^03L`BgL^e$GqS7eV233J@?#m&OP_sq4Eac zQTx)9s>vTRH$PErOiFytOaCj+J-2-C?%ba8ja`T2c8CtY4&H6u=ksCL-!Uit)AtwKHgG03YUP(V-sNYV_Std8SYPaTo6tk0!3M`kwFzxDgvC+fxeDCGR%3Jer$L{#7NP%Sq4@dw8ws<_z(_ zhs)$+6a77ShzS>FZ4K*_Y|uO(8sxlrp`S4%rep(ouyK}z$@eSfm1t(=m8CkX)>-J! zUVz_J-MYS69WPLy`fK^#DA)WHPbeflSO{MaD`Qi|;`!idtVsdw=1M?*gs>?!t|bh&t+v3Y2{tJ5EioGBeW-L57(N2yyz`D?C* z$Fq)kWe#)8q}W^A>E>H?g;V!R_^OvL+s&u5%xXVy8Dqio06xqblWO{Ke6i`$x8m=N zz$PCCJO4MFvmWl zzD-~C#6XoFk5$}O`wsrtf-kV)HpOblEFw)d{(j&VZ)-(fi!wjNBmLA<&7O86bb{XVZO0m9 z4Y6YlqF*FeLSOvLZf4jcOpi6#k3YEL4XV$Yqv~r^`Z0FpFnc+wFL|v=B~K40ZbG(~ zPf-;6NqDj;+l@bL3Y)=6#92%h;m3}BSM%|3=zfK-z>cTd54_)cz}6At27h7U&clE8 zgkZ%A;{3GHt`ECm{nW`77JFbTSxexvAM~@IVol;5p9{U$^X~f^<;idONtcwKB)?pn zrnDbHdym|xy}X?GEAXVA;82CV4|5GRTX?MVc9@PD+FS|qYy2@m4>xDOqM@c4<4B*(&{$#IT zir1?cD=W5R&k?_c){+IBQ>1LQ?cZS8_P6vhh2S>Myb$i|fyLwPW%R9^cwF)`x9FR2 zr}b(@YPc)_esx}5W32JD$Cfdcyl^aQdQdiD=9&7!c+_5W2euUCb=SS%;Y;W$tRsTGfw4@7zwP5;J3g)UqoaY*{1sW>meIxAiit67$5h0RG=_}% z9z6Ye+7j;jkTt#jRnxz~^b!9P@krU%8pgB!UMZQtEC?|t26SHH39GaI#6agDv==+X zlxa+(%+piIKhEvf^E`{k35F(O?)mU{taf2|78nMQoxSlF&lC^zzN=i#O%CsSioC*$ zVAb4L88a7Ufz3^7ai~kH&5|m=ezpwGdHc~$4*)i?P|^S;S1o^y~?Y* z*~!y(c&s+zrZxS@NgF`tSnK7x%Smfsjq+f)9vHm(?soIl5GPS^uEY=I5jQRHLpKdL zy4|$FrB0d;+xLTB8`s5ZpY@(&?)M_j^pPf=M7RjFIO!e?7zJ!!H4hHiqip}FBijDA z{}g$|hduwPYJB=^JzD-#CzyroiPp&$5}7Q%)x6W>pS{G8=Iu9lzEx?lFgMR*Oa$lP zy$+ljH_N5DqkvWZ8t8K$bT)i|Gh@)Y_T_@mv*!LD{#OuNUHg3UyNM4txE8;G z#zy&8-NV{97G9zAIzeLIc8?8L{+2x>cy6V^|0y?|8{guy;yte4lw!PWA?7r3X?EO3 zf289Mv0suXVB8J~SNnykXZuL4 zK%P$lL-i!n*$sb^UzhTKoAb0)#44SEKdg`WG6nyvEb;XW>IXK*FN?TR)c*}+()s?} zZMVWZCfs&v5)gd);sj)co2O{IIeln!LfXKJREB*UILDJ%x&>?kIqGt z?e}9>z$YX z*Xti!hwod<-iu&NA|JQHSA*z)QP#tar0cz`PP{)>`#T?Nz2pSSi2erXoBYpg`h(^y zbkr3Y!EyubMKfk_&QyDJS@E-GxPCw5P2!pHCKbfKqWZ6dUQ~b8g~s*~(|H5+ZKnEj ziAjB%zS+7zx_-@19J~!6pUO`ZTy83UU?eRaKR1IH4@WAmvlGg{>OLob5%V%Vzw&;U zGH1H^2Hi1ITj}{O(-?tw)p@d;xBa0nuJdB@Dqk7-?v&M&#`23EO!$8Mp0M$u3K|1quMjKxR9?2zsl=>GZ= zWDtA4EWXyTM(4+W$2iVwz8Fn_&WM82t6o!*}RD+6^fe96^yU)e@uSWt$NjF`=hL0@8oIE(=YI?trtp89C(zf+ zEniaEXrOyjIJts#`6CnacS>JZT$h{Sb%l(*eKs*f{3K-mA^)`a^~gHnW4U?Z zS=|NIDV_C=fx9~L>f18~R_g5|@UKVqxmUggz|uM{Txo?TRlbd_Bne+@oxpny@9gJA z^*)LBIlQyam_*KR&EoxQyl3)V?|HnRJE^iNkMG!YTBq_}$NN;i>%EZo3wbZ(JN;^% z&if_2A88g^=n<_)@*bUJ$IXiQ!i<{BwqyA|dBk1twE7k>P z5RA#`kRD%%40{Fs|I%wYyP7KOHi<&!dLc2N3m5Z0nL8)C_@Bf78vbMazrg>K{J+ot zNBjq@RN)L?VkL3+9iODE_*``VaJDIvEFzwxwd$wr7t~B`nF>_ShMzRB~hu6U{0H4{M>jmN{~_?88Nrl@D^SK>i-Cu*Ziwwe#kEu-cZsov9)$*KkzW-!c9&-v24)~w%{+} z_+IKfL2mpt@>H^R)RRZ_P(BSE#H9(37Caj8#(pX7$rt@VxFw5uxS9v9JRY#3~St)IcKx{y@AP`uK)F(9z6Zmey3QzgzKHs?!)SCzBJ=Q_(%q>%duFyv6U^ zW-&K1fG@~g-HM-4#I`9pYq08gm^~QHVU17lBjRN;k1JpBC%Tzu8s`vW9HV~asrbl3 zr-*G9uAZWQlFuZ&c;hZ!m5#HqF3vU_B%crNeSsJMhCIS)vp=V!?{svPy~AaaVLd#f zfOiEBb!bxS(8a1Vjb?Z7y(!E2KES#^kMD!y9X}OsJiKudzdmqW?gVbZEIPg5fV%%i z-GhfXbw`lzq<07|wXgZY##dKOw)4G>c_LenbhM~>zx);I{pA7qpH==G=j@!V<9`0{ ziuC&a!1oP0_X({_-Vu(xKHLrLp#$oBg8Zv=hK&3Tw4a{;hve6u;#TI%D&~rC=hYSC z+aY{Yxte^+(@y&L#e5&j_bI@j_}aFteM(!c?!p;$Rss8t)`F$r!d?%^qxC@cose|e zY+`Iclj7g5?1*u~Xy8m^obx*QR#ITVVYzk5Q zYVo^D^p7>*3SSoT<=<-aig*zEmOVoD&y7DcUDrK;T(lB9GPL><_*Y%ae`Zo1?-1V* z|A-vXTDuh*j;%EIT>;o7Q!!%s?Pcz*Lq2xSA?3uMB~Si@o^LFoo*M_US6{}v>=2H8 zm=kZzv^pEm<8{7yCTo!BU;VJ>05&~m&%v>k>)D$ho*$3keic0Tn>ppaW3Zj1Wb1eK z^#%I|edFESuD-GN$-8J=<2D#{#;u-MZ{p7r7&Fx`+H~~?o2MTIjd(Um>Dqr!tE0Ve zbRC}zI=bl&@`!HQ!IS91Yhx$hy*|ih`2qR#UGQuu9$nXa!Sg10WdqP}U-SR1 zwod&5dio9f5#SfwS*A@-RNBRM|$dvLc4-#^CP8glgW zFmxz+t{a-_fRAci()WOLzU3g!Db+)lMY11qF0UTBuLzx`7(09^dd&2R;mT_Cm(p-{ zyvyg0w`MwbfA!OL68@{P`7`TNbS!*utXX?qrq4cuX5-__4(>F!LdDJ)t#olB-l2Kl zci8B$;T|tXPUqaIJ%W~mMd+g1TPkw%G#xiOPpezc+iqK{ zj%}@d$9*28-B)Ts^%N`%b3|$dFF?>+z8~W0Y zJCKDOAAD!e&EuKscRT$Kx%zTV8Sv2;ufG=oUpl?&tlsc?;**^KEN(n9-yH4>b7S$_ zdq~J(_1NQ7w|wg*V`;4Aw@=y5kKDW2e7uVX`2)_rmEx2IX0V?@{t$BeeWc?+uQJL<<7?9eSc!|c;o_dBv@CA!{UiPJOdW6s=^nYCeqynA%e*>~XCP)G1QcnSRH z6Y$b=E;N}XztjTO;GFoS&`XH2Y&4hj5+fNK@WO*HGIdelXU>%@W}YiXj`pprdD1_? z7qG>kXOm?T@?lXu;)CVjN-~Y1-Pln<;wTryUxp89{Z+X}>XbjM1%FT<_wU<)OK%=a z&iXYtHuTTXw=nQ#ZwC+97#eP$eN*xmfzDoZg9vg5vC(gO5gw>{^&+B5D#7&t9^#_ zOzLxFtL*r6>Jwi6bqaW4Ote<{0>n9CFY#%{MBffR@EiLP>)db0o^0xdma;$bisB?G zh9mX|_nYF+=>0NiD!}}Ehwq9hqgX4xAi5m<@^`?}bIwqO#^aqr_6M&lpQZ6oU6S(@ zlTrBt!1NCBdHv)UOn06|-NZ*O{LI>M+wrEZXHqP)d#tHMm+kB)9sRU&fd9IQ#KWX6 z3mm8(jYTGXcE)R}GhW~;eZ11gO0?Mk{GM!hp=b`e{(q#g_ZJUxCeJe1v55=V%Y4g5 zH|)Z`az5X`MPALnS&Zi!5oau??8QH8s#&XZ`-11k?%3$LiLucbFXx=LVtsdmzrT~l zoQntXa~0oyo&FPRvQ+tlJcsdl6^<9uo;{9?hehlf&0DR7nsbU@BU^rmJ=Q|{P8&8o z|0{yr&9i7nb5}TNhJJ;M`UB>0lsOz>4r~6Z&eIrU!GIEM(~@KfwZR&=Kel-(@YQqv zJH&e6BX)vf@Af0-KjFX--$2>LSgxD~y&*==XX z52IdNcPCx+(#DuF_MNv3<9usaW&>aXq@l5Jb zjOpl->eLO?aRYSG^GoRnX6+H+Q}5Bss#6_r=6?^Y~uVudyM+?*vEq z^^VcY8o%n94`{Q^fNet_|=)Vz058XnB|md#qJ+tUHG1hpUYj` zJV+V!tBUlC=&yN@vkBl@bF>GTS!)uCXTbhn-4t+BIcVEy*VJ6*$Qd3y|D>K3M~2JC zt_i0up-@suut1s+Iu1G5p5z z8@Ia3Z`~A{1AbTsWhapTLzgwdIg>_=-9gs4DBl%N_aVl=X>RFa$=(k&7tV{F>5SWx;7Vzd zI~C*Y62`8c=h&GhrF6x36RwnBW3|dY8_rq|KZ~91)bVq-4$aZ8QC|EacD6}H&tVNl zuW7R7foUb;A6gH!p4Uwu~vz_}3!1eFwllYPN#vsopbMMy>{6ufl-|qnyZ~hb$`ysvE z-_x##pDk{ks&B)O9a-MP!J0JqzLW-E0nh5+>u%c{A}&1IA98u&3d%l{R`=kAqha_7 z-@Q59Mty=ucS|^Sv?=kjH<1Bure69c*ae?g_w6qHKPUfIWZov$ilQ|B&}PFuHGUQK zE`dHZHe;YeukIt<_8xHIYx;@#q|J}Rz^O&^z!{=VH!x7UEHh+Bc&=)u-VIq{{l zXv5Vv*3{VXW?0i0^F829aCms%aJ5snr$D(oU7HZ=~(q(I^W(~Ls zx)2V%ac&|eP@DD$+%X8du#~v{{Z?ApZ&KDPH%M%)^l~S<<)%^YJQt1)cFZRB)M)p| z!0P#G&UNbv+&vmcqVFK}oa&Xo$@!i>PWgP-xR<$k+P~xEdCbMds+jX0DRR!q3*O?E zR<56PaMgaB^W7((S+~!A>I}K{t+HchIQ~n2_Ua@)h{jEDNS5B$yvFwVk-j85y!5SI zvn3a2$A>RAiPxD&{bypMIkC--`&Y%jeGht=zV8A*;#ar-ojmX{+cpf}l0FuMe@i!$ zO<-U1Cfg4q+2-hD@Zrq^AdNRJMX-o>}`D zut;XR6Q3Xsp&{?s_rusa_H@QY`_I&!`JtDObt6eT^4+ko!-vLYRQRW%ci1v=Ufco) zQQ%Y_i#$Q{n6aEo@U!+IpY~wWQfwdj?r1ISX07pJUGe7- zIz!4YpGNK~q;5wRn-U*bD!CjVDdh5U`lWv8&W?d$;#mW`d@`}69a@8pq6+(Mg!m(Y zjrc9f#)iLKKi@6<;6nH`_Fh>wOK~l+n^o@Se;w=BI%I}pTd_n_hzssLEEw!)BcXL=$GwZ1Fj_t>^lYd1OE{B4557{^%Zbw4koS9(N{I@ZQwr2 z9g>ol6^GNxlKz?yFzc06E#1Q=&nuB>SB1}J^Tyr9===Yn}_SekyCUZ&>%4Rv3Iwjr-b3j zdt7|~3p-E}7<4^4;gcbEo=yRW!r63p4ki9JVh{29-A})drw!FnbH6ih#iPAC zGN{Ajn@z;Q(7f&gAKrJvcg3Yq`2evqw7+84^>FL{b+d^W6SD6qz4)hY8)Y64vPg;2B@e#AyY`Vq+y4ii*BMhDWGs_DGoIK83oZ8f*Ky7! z?4`|d((d<#mv#9KcUUvOwSO5zR$>pYkTWb+ELLm6{5U^VXr?ZhEBhpLX4lzn7WU(B zCtMEpw$@^gUaRraxFDn1a`=PbOZHORb_{Ln{QFm!xA*wIw=+C7{0Y8qb-TuARFqni z?fc5ay9|7Z`?D%yw7VDBhdGb90{*j{7}v;Ub?b<|6DI!uDbNsp2PGcd7I61Y$|!&P z^KlDbBwrQq=Tb)=edx)&&xRiZQ{5ZLY=4En2BG<*sY7;+5d98OUS+n}dAVO0zN>Lg zhh6VM?Q{m*5j+P zYgb-HoP1ip1^=pqJ0}=N_2Fph61-YF)5qO#Z>{octZRCZ$B47(_4zQj{dBy^#;^QM ze{kxLkbjq(R{V^UwlX_btNEQip8Y!}Rdkc4xzfYA0~^QadTLj+CVfx+eEaiB3twpOYH)pxlJ97q}oE!g$=RDGq;OvpVI&`{L}1lvCpfcV~{rDAN>nkR+8Q$+l(zMq3eo|>;BF=z$1IkDcwcZ{x)$nkfV;o zhK`LV)0)v%Tf{FZxrnm;+^uCP#@B3zKNbO_{3*`IR%ZLFF)z)bic4iaSaH6oD?2D$ zQ3Ty77MJFU_S7X`NtWK%{F*Ia-HQ${UMU{gdqFsLKYm*wbn@VK=gh|YtYI7|ZLGs*gF4Sg)|m*t7Wr~E_MlIzojmmZ z3hoV&Z_mt&%{tNAInbc+dl9e))A+=GdP?j6-PCc$&G=M3h3Bs*>QEfsq4RT$zsVkx$N0T>6>tI5_nK-Y1Q|O^MofSZeWJ$ z`mU8)NBQmr>~WI+b)F@g9ejzY>%DTxEbid8>)FdcXI+;Sn$WgwXR8hep1m5QMNSeR7Ebr5^vPR7KB2i;$FZ{c6?RP2W*Z`%U9E(e}L)peul%IgTT_pyb4jZgnf(fG7@ zF|mcrIi~cc!%W4LBUz7P+;itQAGE?}^xb@pt&Ujh@JHe-J9^+o=AzyYg2vutoy*BH z<%V@7IxnLgGSN>Xu{tlSK zStiv(9XI;&Hun0ab_`S3zb-R%Jy$l{W6?k#${7zs-}C6Z#aJlLTn9GsNS@|vE-~ct zI##K!Jd^6CF0b!5oyl2O=t^_IFgLdWv-G6f$h#C;vcl*cG1dy^LnHlaVZ97-E>V8& z$2OTduWSMH?Y=$3Yh&;SZ%sGTGMu?nCA%{5=z*gjJSH1`o!6g)pBiy74L0ZKS4^qK zj=Pv%7M{*xf8np-NAIG8%5gp4sH_SvYX_z(f7Z4YC&D|hT@$xphc$WLCr9(1)IJP4 zO*QAR(qZU1G@~Ll8-0cQ4s{peRDPdeA4^_7PX0Xh-G}#zPMJURC$Jxj3}7vGbPIjo z$o$0CTyhfS^zK9ct3tQA`WREExu$&)*mYY*2XrEN=1j`3c!u?`AD(^w)L9j~xy$u5={8#Hck-`w z8XJYmdv&Wm)%7m6ezlY7wj)0HF7`{wNt$2!etaJ19~kq47!!R<`p3q1(ihoyPM}<~ zZSR>Hf80*Xj!%FlynR-!8y??m<$kJbfY+l>(RQgz+ZVWNpkU>mDBE`C!MY8cXYjor z`=veJz<8!R4##p9L}TvJfyREX`|T`Z-H!UkxJ$m!_+33sdg#d5f8eG+jz64ytfh}? zeyHA)-EYUdG&f8GHRW+2z;s&D3oZ*t^UzQ#*X%U374x>YD)no9prZsW$Kb z7jPxT|KJ;c=O-R0{+GL-|K)D$sMb0%)zxK>{YP-#iMh9eeFHC_)}kOjl0&p1JjT9c)>c#J zx!^y@v-%ODKLKdAoA`37Q@%GbzW0<2vEQ9%+e5uExo8sW4}7ZtS!F&n{1)}f1|1DE zCWqjQ#GaVLN2U?~0iV0$h$nNLDK+?n{)zbSJ;WpV3S+8qj8=K~j7*Kc0R4BLpnZmd z`1RB&+$;hn(XDJIo*dbV&R9=*-D7-5SUAjyf6uKiID`9sDf=$@dyX_~bMZTkW}27t zu#vp&Gus|JTz8m^g_b#kY4am&AG9Z0jZuf@bc}n}Uc(1v4`ZP*_-lr#5HCm_bV7yl z3NGbeOFONsO)3*&eG)G?89D94*ByRv4ESpVKhg_4eWu2~e-VFV_}UQtHRz(+*V6sR z&y!btY7A-i+-FYp!Fx16l&-W@ds**7BYg2a>Jb0Z{PK9>t7;P-=e4=&*G_$EQ}U_i zpxqzo@{|w5AMHATLv;w2_0%DrGzpy8G($gcz+ckPPmTMreD~-<`Np{UgbT%bG0a=z zrpeDqd4)5Tm(M^7+^JsWSBwF#e;a;Je4Qgl`uD3Z=$~MJ(8X2p9;a_U^n|CV$Kx{| zE;`+OgCCFNlOKkSXY^pBTfw-0G+v&Q2z@(A}@C$(N)n&YgK+kju|uZ^4MW3@rIo((TJ^%NaY z&rIt1(8WV>pW7Drx|y^A@S%E|-g44C_>XYg_SWgsXCe+{T}}TtQrEZLv{lcH zq{+T%!?D{q#YCV9r5yPq$I=d~O7W$Pv!>!GAg5y?$#xz31lB7-%lN=F*zo-gXBz zFaMk56<+@4j_-yo4xjRYzgN=AiT|v6pEa(((?zN511nXlXrdr1K-e zwZ_dq_^t!L=wG%Ldn|jMG~w${UOsnTDXot*tp_`xMdeq&ia&q{f+MeAKXcnu-yWuK z+G}a}vP*OS7>%9wJL+(FqhymEhmm%7jGFOKxV z%il`gqxtU9e$8elkNC2eN3!OPS=TH48A@(&o|vX73Asj>UnK+o;o*=Y(0W!)vMqc90=zg%yZp5hr4+Ow~XMS zm}lkvt2f67op<5(Tou%y6YmX1F zdc*mq`|btz_s2Q!P1~R!=FT}DtgkrfE1|1nfJgBrt+3;Jx!+zs2i*nTu?P7{Hqu_; zbo^QW_$apF>?nI>vZv=_bJkj_m?SCui?8#YS-CdTRQ?2=`2NGf%j!?Xo|I)WxA@Fl z`4x2Mn$Fj`Pq*VW^wwN_VW!I8fcw&Yxf8m%JI?~9-<>&q)?VL~2?g~1cZZnD7&agQ9i_zSztff#!|yoE`3hhS)ewuz%_qHQ8~cl@ zD+r9y5_E3*P(d8QFlS@bu5dc=Fndr-9skhBhaKO_;Dn(Hugr4x0;2dcC$Wo!(fuxl z|0MIA=NLTeI>pLC_m@3XXR@N~frV)=$a#+_Z7}Ye)y~1%JEZ+Q#jE^$xK#LwQl_3f z=DFF#i!lksaWiAEN3l}GPGH1W*`}-|>UB{mTzOFU$ zmMqHbKVLK&UxFRHukDwe2b_6$P+Q+8wv2GxJv3a}Pd=p~E86Gzc8yzJ@C@@z{rMaJ z9z5;8cHoJ?b3AxX0-m+x(b+ZC5dx+n_#O0F@^xVQG2ddOQAei6rGt0jBR!T5aM)cnN-8%mF$1LSe(AEQDmPWrTn@{$&QD{QC?j^jNal|Yo zR%tgr*9XRER9wv|C$-h)m$ucG4vbzbOxcDNi?kY? zsQu5zJF!Tk%&i&BC&eOFo6>E2PMuu7KmI5%h>jG8bl@t=0B5qol*QmxZJhm%tUAN? zL1-&5+(By&wXQLVuXCTM+9;x&e2~3(q-E-h8!whQpBKbGUt@C>dw9vC-Lb*e5@bI? z=`X-Xl1DnvkK4A`?D%Ubd!OI&Tg5NdaE4R(60X$dJwxo_=K>#NC;O1bv6b)MIPTps zyl$Cr!THI9iD%j}HoP##niMroJKUF6x189szq9R4ZXci%yASXi#Z(Z#S%IxG#+qeO zu5~Q+AM5lvhjW0O{Vo+O8oNiXh9`XLycbL~U16Tv!JP$N3g1hw2q%2tTrf6*zol0= zeTfV$UZ(OsV^W30tkt-CbYOinY{#C}yimN+Am^6sd7=4rvh#dQ5p$$m&%OnZvG1HL zbJDj@2fz3rDE~2{g)ckLk5i9eK5=gvevii{3Ji+NDEtcEx53@uQKIL7P0#PY~T4kxo33#g0kM&sO%=nZar3I{Sy?!H-ng_YO@aex>xor?5l=3e_+{O(M#BY z^#%2_%IyO-w&Yh-r*Y<2zf)&kS{%E_v7;Jj>cBeXk2Ek-Wqo$pTZvgJc#7aV7QY5; zk{(=l9?5vq2gx;U?BR|9w__izNw5c28_0;H-e%nkP5yp?_K!4{!dLhjV)Z~rOAYa5 z*lSeX_PUC{%52WRYHjWLV7Ro+{Z_2HeP5yJZ)P|XMwYM09o;7aO?4h+n zLs}~pE7u1Nw$Wx#vE&qk>ME0vY!-F%zev2&=#nfuE^$52bNJR@seTjh8J_gq>%@&z z--v13J5_cfZ~*_c_$6{jaBy{@scU2YM`>4ZsgLvNx5*4;Yf63WafWE$V*hgfx!?pJ4B^uv7Pm#e z+hVcJ(-~LA0#O0@`u-CaR^`*Zh|1^RHv;dm)MuC9+o zoN(f4>)dd&@K)v+-4G6b^{txe|NjQtA(xTb|H2x%b*hzhU+YH{ z8KXIu7h*Xpl7IlS(V)UPrq();O>n4@*A#I0Sy z{Q!ouj^20+|EdeVF1>M+bk~|!INyM5RbK*q!RLOA%&2x$r|0+j%gN|Uw6A&3yxZ*K zSC5UW_~nr{uX=JAa~gI~=1uzAQb}8q-CUV&QviE_+LgS1o!gct6Qs)nH~xBf-H+&- z2j}34$jrw&a-izEl(N;}U2say|2{B|s>j7q#jl3f-Ap}Nr~NaCbpLEV=vQ4)4Zf>nk-S~=Am(oo8(#`4lyRq%1 zzY`;2;T)|AlVY1io1t)UW90rb@Ds2)%&uEr;qID^;feUf(53;W`nSHuzQ+dt!XV|W zu;f1a9js2wzr-vI!=IEVSX`ZO%ZzGIcWbZ)ZCZ)%uXNy$;T*Mlp3xA$=4r;upzHYV zk8PGdA-XsjJYE+uDd{EWKJ47ZW9ulag+W6caPm0%WuNWyA$Zc?W8=(PwX607uXld4 zo^z{T&7eN$Ey(^YvfNtLJH*;;r!oJ%w5PnZZuENc-2hLp^St5sQ#`>ux8J#=Ti=(_ z5Br@s0^PjVyYU0A+2rMO>bb;wPmZ+p!-L%RFN`?)D{Tp`cUBT309Y+>b1L=gxsGow z;3oafC*j?rhkeaY@3%F`&fw{06TE&O0N)%B9{Q=ipW^njs@tT3^i^p$x_zyB!%79| zuhK4X`&-5RyvQ6i%R-TYsch#HJmDb<6Y5i5cLa)sWeJRmF z5*vx=fQvJ1oC+7Swj1i6MBS5DPhViVTCOFoCHU|~W3^H2JfUmGbynSMRzuSX)j3{x z;@*!I?)eaHcy^k7%^Pf*`C@!oC7}#+o^V#hTG^Cq&J#`U!A7$iyGrcV>Ls^f4_P$U zoY(R?CwOY!c$-l51l_z=I4kPwmBQe~1sP zAxCC@{R;Tv-r=>az%F=##-tMB<-9BY;$rZTgz#6UsT}?6-Z5O-#kUx7d7{wTcbN;z3#=5l+oAS16ofzNMqhmUbN`Mx{A0^25f3an zO!Ax6*}}Ytkv~eDSivTrm&-`I_b@AUquWO8L+-JNF!zz&LLUy73Rgw>+!M#%>iM*} z(q~dLXSF33xP9^Zc+4yZ)=S-V$DbxAKAk@PvcmbMGp530bQ@#TMIZUk3byKAL|Z0T zA7dZTK6%0)@C{sN@gMz=_kRwr{W$gP!T8RQ)F~a>|y;fjNtJ z=*qeCgY>F2c!hW4!drO&ysYW9Z7#gB&1)=FcP=`wY~%Pt$j%sVJ<{pZQKZQZ+PX5M zGuD^USw6!_pH8~7$2{_FyIW?O>ZOmtt@M%o&_$nDzd{_xwe$GtJ|e}<%6kZ#A?xa{ zB{wYY!Y{7tR3kYAn{md8yNOX=h+LIDxvOC9lJY0F;Gc$`y=?`u&fcli$9V+54QozZ z@Nda6Yu7Av;M#`_qA^qYZ}IzH@pzJZD*{^ABEqCYEsb3pQ=I2OA}GBO+US8vj#$Pmo`Hu!g%acN6DN zb)HC_N#gQ}PsJwQU#|HPJjPjLfAtbR0lcfNvSUnYCFOS`6R6yCe{p2{Zv4INGR01r zKS0y_%M_c`J#L$WoM}2Axj|)*b;~A+_ivYl-)jEP1D5?|r-SJrB7QPF%dq1=i+V9r$Js+CXVxD8ZY8!5i+jV*u-jl6~h2HaEb)s<4N{F_u zB29G%x*gm}eoe<+FMX2lgPlkBje_5X1M)mc9`2dRGmF2JDL6FV7x4ZR_DJ#Ic|31- zpU>r4^fI&D`Svy5MZfY*TH@008FrqW_z&R4(T|7Agtxhjhwd#E91Yr21CDe!?*j(O zOUD?`v~>^hB7g&sS_vKYwBLU+wU39`^VmUz!~YkUp4rKJGhKxB7~U(O68nSQe^o3Q7wui4qR zX&Jx<%z3M}55D-jWS7a%Mi3wFmR#y1KELWyJvl+A%GE1JdX!{)TegKy=fS&|b4Kk}`gI!h>_Jw0B>3h1dd4nr(0yUk z;s)fiuq&V0Fw$qyr!5=8uRWP;=}~6wa_+(D#ZL(z@r7aRdC{>KuZ{-HYIO9?(Xp5C zY^{!t{U-lDJJz!HjFUe54j3Dc2DzaJ8hxL1#c+1cljYfR$gi$5T{+Ax!H_)QyVk^? zr+rtP9K~>uufhs&?Umb1x?pMCf-XQkf8jm)jcVN&wz&~G!k8PLht08u^(*I1pDEYd%r`3buAs4pj z6#1m(#+7~_<<;Ijd=s4%zv5*mazPzeUucGG#A1u}-7J;!7Ukds+(_yHCTO8Ut}lkr#;bt=;JqK zBXn>s-|7#Myqb+XlovmD(a5*2sxDVXeU?59BXhoujH>q9kx>n{x8=yF&pG={l2O-q zGU^ukmLz}j(_!|PwGW*e|3A`pL0f`JGMNWc5itEI4W^^{=9F<@mh3qx?Ym?$uk82O z-}7i%@k_PmT_2g)8Eu%Tz4>@6GM4u}C#_ue7_;`9X=M*d`?i)ii-l?5WG5B9CpoWQ z&)whZzhV&I#(1>c;^6&r_^{GP zsSb||zz@bwgTF=i|B}t)WGA)Z`0GfyAmwt#I&}KD_kD}oHgM*<@T_vn$mb->O)K8& z9(dVG?0AiVE1uYzXHpZe%kFFblWoUX0gv^e0|%nroBhG?O-8ga?TTe8H{S%d z!H;eGT$uFf#@wW~^{jv4TmCoRTB`GJ=G8Fs+p_obhp@x!W$n~is#n{>sUEYYBK95a z8%@48IJxbCuTO4$KxaQe>)8BhvC9JuvU4|g zy!E8%_uc*=aiQ^NfJV=5G+lkmup=B&y}C6svU;UCw_IzQ)|p0r?fe=(s9xP*!sUPb zZ8-Hu@Nj7ncN=pr0e&kVgc;A}rr-m^e}ivUg;Q^S{1WC{KYNc+|4_N$;%w2Og840b z9_B1~0o#Yp-D_@nHY1(C-q-v`8{hTgwJ(ty|1Ecr1o08^>OI}9H@0uM;sJ9)c~1l$ zzNWUa2j3H&3Hze@%3grxffXKG*8;4)v@LkvWG-Cv>F_$0)BDlj3?p}3XOKNv&u7b0 z#3^w7iK_EigTX;$S~c)td#6m4F*CCw_FC=9bn>MMF;1TVe?8xeuHtT~8j~3bPrmk_ zdCLpJ#HNy8$>Aop48Nn=41PuU;Xi_1IKcA}cACjXQ{hU={{2#=3n(O z9-G(iWB-@;wkr>x<<&<&>U8dRMPFO3^0wlq*3P>(b{eyv^DbJ~&$EkrHu&stIB}hy zeaAWAjJs$JJkjDVqt<{a_l4PCewBNq_#PUQQ89+S3Du|d&Idde|BsYv9#?IN62r77 z!1-{-8#%%rSH?7vk=8Z*P4fPfo z-78}%ig?zz6}@RCTz+lyOyw(jvzq-xXfaToXrOWrvv-RxdGMBa)aM}dVl};jinP*e(XI=Jmwf0%z)JOh6 zT)u<)j=o^mt2jf^4EFTFcY1l1{R{gGw7c+M)ZYLMl1antv4-i3{KudfbS=w1XQO?( zlb+Z5z_}-AMg3JCwROy;&R&SdAxK*h_Hv7iNmWso%|p}lNsZxu;=_tN`0$k^z=!ZF ze6Vkkz;CZCO5ZiMTUn1p%VVJ5qW3MkZS_NPo#@#v2MzW}KH&R-Z5O@I{uewhgnoRf zjnABtD0{dnuXm3TTi+}r;fg@{-ZD0FpJm!*Z#3TfnHzI z`d|82?)GmG8>!$?AIsDF_+R^H$1ZSSIk11KOZ^kxY}wcApUIu@AN`}A|JJ_~4(Ole zQ!n#R=ZaeS_rn8xWAEP_EXMXtOs~c!`E_*fY-G>8#oV&fOpbg)+=&M?&kSpn{)H#+ zx3BqEqxQe#&uD1F+Xs_>h2)uB6G`a|`>Y`Q*q>FWev1y8lMzXskN&!jHU2@L$$WK! zDZlYbVx?lAmHrcL@OQR;+jJoV-&GufU!&JWuXSvI7yKDr;#!k>tw_3FPW+e1*iqhN z?896S4R)_YZs1<5XZp-giu0GEuVB=4;vbi~XoA*=+<4_sb!reff^+pH-T1f4=RV(G zm^qy^#q`MM4nCFZW_*ROVqmYCl3(7!-CE7B#0r$Z8#t0T;_LAP*5`uSC9T}meh=~7 zemi#R1eGmXU*0i5Oib412}PVu9GGoVMVvznZJ(VOIK!mM)|Yj_Cl+j@+#dT}e{P)1 z(e6uDz!!|8 zXM%8Mmyk5zD>Y|?jeglo&Wwy^j$hBdpeJ+CkpZK|m^720o zJzUmlhyk&UF^^tpQp6})8|GQ{h;HY>LsFdEQ(t|YJJ#5#{%-EM`t*$S^r`W))$Y#W z(jlFLCcn-Oves^11zv-stKYjx6VE;t8R2=-k)!vI{q3R=d<~s5%1(Qg)ETzZrrJ7! zU?^4l{~j*gO5 zsK*avNVtSPv_B&}_Z5%exl`Y6VD7-D-i7|qb81Davd<`Q1M$i2F)_E+{(!vQD^1Fq z`{Cs9y6KFU#-_bgGBtVKaerO7`yX>c_3Uu;>$?UI|4-U^mO9P@4$)Qyh3XgW4)gr>}%d^^MEMhuGk?1(|yGC^>GH< zi4%JlXC%Ve4j&xw&skmcnUxxtE1A*9{fE9(7k$_z{SG}W3GE|`-c<%JyqF-HSTnJE zPSCgW8N)7oK|LAgCrb+FX-^LQucV=pdqC)?&PQ^FWUcx*L`*U1WV_e^P3+5ZZTGv|Hsu+NUk`DvrC)7%`G7xL##kX(QqyjlFezlAdn ztkbPN>rkC*ZKe+qek1cMC;kL=2DuO3UVF(So>xzv7%{{&NAzBOE^(3q`7f$8w5b4U*pJKmXB&V2mjWbQ+x%@}uxy~O_rEcx*t^WMXqGfunQ zX z93}e+FXkH7!a?L@d^(MIL(J@8U8yUaOdH6sUW|Y$@?6NAaPC1MMhY+oKOHW6m$VJ# z*jkulD>yeALmtxH(!ASBo-d;5^fa%2kKU21;(@O?e8H>lW$N+r$%d!Cw1U&*$;fl` zqf&UHzpp^2>hH_^|B-x2=#6;KsogxMpVyEKB)`Tz$V6Gp?Rv&M`#Sci8^&~AXYX-l z$FBfqE1;)-?5jQeV!n}hIya3CC%R}8KDzJ|&YECLUda3?8DzfHObst-Wo!}3$_CkM zwb&WAbYxj4;sk?z&I%PL&x!!-w`%3zb zU93cH1o>7oA-u%Go^YVt;GLn!zJh+V1v+=7hSx>MViy9|v#3M%8kMg<1YOLv>3C(L zt`L_F5fM^i%(*ky6;z{Uq^jkq230yN1tPFnN*l^J>(0)52f!h*EaW% zH^g_~7^UlLZE)5H=WLvxetGn%zCxq%I%p`WI@yD5GLA3F1~a3=!>{Zyr#wHL_b@Ps zFE#?FEvLIU2?I+$V<%knV{1w;C%r-Vb9CyFJAZ{^!66-C1%1`JK9hC3;p|xLJ+!0o zGn^&<(Vy7!=e>Kt*uHH^d>gdJY<<}36t6497pdTKG5g0D$#yw^74>kq_Rp}PgpPLOr) zGTO%uSW9fQgb(|d-k$|8Jr`a&q`6YZ9C}YY)nqS-vhKWdPB`%hvcWs#e}+AX+o0R& zoI4x5$d&nKfCJ=AjmK9tj@0eZwfecQ`2|OQqMd%~(ir3~t{)->_S#*u(S@L;>Gt~Q z#5Ib-YrS|wuR%BZemw9*s2e&hG00K7fwK>P6Gt}6j?d+zgZ@I(Or|x>R915i7aQqFTE3}VA$xIlT3WWL zw3IeEEp4)?tjGR{O@E~9L{o{aM=^3n(lShCNNL>9KLKZX%+k9HsYMIr!w?Si)AHNYg zxSeqc<_%SRx@hd`X{<9(VV}=tAM-P8AoYbNa|J%6UE|+;UFfX20cRWB8tXT=wI-#Lrt$eo-UW-sJYH~nCxPjcWWf{y09>565n`Jp-@q+jHw z-^o6|U{d-D=k@Na^LD(!04s`NfY+&Ug7UZ~&}{JOJ4 zZOA@k&pT{LP8kQLGB^ET((N@O%jrXh+wNHhk^Vym&VI(>OEy2si(d@ge!A%N)ya-9 zx@9$c(Gm9MX0u0G!+4*z8k(^0&Df3nmufJbdrvf-`Bz~#V17lhgEZ0y^R@6Y^V~Jd z@Lk@~zeD^WKmO}Ouvt$t*G75&gz?eXdSj$G)~$aeZYSdtjhxic${2-WhjrdeTFh54 zp{XTf-hhuaCTI?AI5RjjrkMLv&||V^m_xgvCG8PK&kW6a51Y#mW*0FRv*OPpORf?< z*<-{VA=7=G?a)lqnTO9(defPuvsN)akMK-fro{WxP30q|pyNTo$rwDwUXR~BqrOFb zLRS1DdT@+;rh?=9Ui;X;oHiV~{<~YxoveA%WfiBg zQntZJuwz*M@#w57|82%hHd@)Kp5LJ7Df{gnp3LvqL0_`haIK$#g(K@{>j}=fuQ59l zShO!z_=2_YQS?@L=trSod1r7=a+Yfw&(y#C3ewgV``(^Uk;SW^r-Q*2`+v6Ftyr#- zVHoFNHqKy!G=`P?B&H_9OXQ6W(e6`U=JNWw|ysZEy>Tee`#eQk+D`T}M;ovu2 z&QHg63pg2%-1S9$ilK*#ezo`7Xl8Y`2hp?f>t5l;!+3zc#{P~DkY^G-pB-7Qe)cmK z>g!C#8v9JbKr4)U$t&n1ifQ#D_I%S}i2-Xl{lAa@t&H)VoGXfAf7(htqFvFk?H>nz zJ_aX}w>)}i3&|=z`Tv->Obzdv)V8W7qvH>P9|l zz&`T7>UQ8CiDe_$o%MjTAV0$|-S`)5hi;>PL+>-bZBh6^56|Io8RgNqzFQ0W;W_hw zVNnsb8s^3Mz(1Katsys@Xk_=4NUmD~WT@p?`%{s$(`#Hh$3zDhe0o~c!U*wDv zWi_rrE4EB^Uci|OWBeP3*+VoL$V||GGd8j7{mALWp@<^eoPV*U`y;ZV+#3-+6Pzkm z6TDU5*jvera^FQXkC;8coP>`Grfzh|2JjsL-x2UVFxgaG)HtS7`+23~IF~)&THS;1 zk=9A#5!`2TunWV}4EEtB$|-#-yjwg@_du;xEK_;K+2Pa-_ChYJl^?~__&bzeh5X|SIPJSizGDe)gKL)6>>(wf-Zv3&0f+A9Kyr*$Rqg={Q%o% zUi`5>^e)!G;3Si})&7VQ2g<`Q1B=>2sES|EBcoBcvlk!y3o4SSJhXtc7<_-k%k-*U3R}Ur%3y z^rf+QAcd1|g7SufJ_{Ea+Xx8#3W47^$oU^FT51ji2Gw{1+49cDgUop59`3;U8U z9++X+i_N0HQ{q|p2^4nAeJGxM;kOII z$oTA^&0RXc1Fb#i8?PB7#Ev(tx>7zeftY{xnH zqfMh~gE?%sp>?E(7_jSnS^L`(ylO*j^@Dr0^=MjK6KU%maNJv4f(3igXW-N^&zXf+U|qKx|etM zR!U~luZ_Ix`Oo|d?&Q#sqx@W>LxtkKar`Q~dfc+gR|O4ro8YLt-By0N`izV^dOoM& zNw6qSA?5c_pX%28c2v9E z%p7cV(Bf?Ne4jCkc7`Um7i?vJ$m5?j@0{%LPUP9r`ZM8`@K(ulAz!q@NBIEzY*x_W zw~fHuc<#hb@omYxLHK->wCpZ_qLeZ9WKVBx^!LO#_8sfA7cO=8<5BBy%&(Lrg^4x#Gwc+KM z9jn4?Q+d30`@f*wFYs4m-uX)E!IdqGoB$o+&nH@KfUow_ANh?MQ@sRxa$OGVYtTPb zv7DGxtc|vxrPf3XA4K1)Rw6q(t}>@-T&0EWO?8SV+H#8PHz)tfkKo7h?UT%4ea^Yw zld4lIuQXlq@5|vVfaDaz97r$ML$_&;1v=ZfdnVJJaD#uLVGUozU1lv8 zn1$ktv8Akg@B0!#;_ayYrh*HWR9{5;8Q5-2VP^P(j0(Zg0`KV|W?0KNfU$&s%7?i_ zprwI-#q&BDnh5C})3o?+I6vDCobr8*eT8pb)Xm!QPvTSkkQnjHyR5{$!Pz(69X`GC zo|@Auk3@E81*WCpv7JAdho1v=)F3~sWX^&2+9YGY^cV2y6R^8;=2&e+&{0~^8@AH# zDBp>@zHkNih_uol8%OU)64$?gT!!s7NdF4iJ22cil5-L3_cCjt_RSlJry|-6{NCXO zt*-u30iF67cg=sbRSgUmuzsfNFaN1;JHA@6*STZmLHN08US^J(Q6Ak6UM@GKd5_+; zImg_(*&n-gbHeBEmDuwNyGiW1=;uem3ykl98qH3~4-pk9!hQ?9RSi7z}M&da46I@8_ZCELe&i zAqGqq@U;RT>7B@nso_Y`wxz7EZR7Z+eu<};a0>a@?r)fJ#Lib@%CJ+jHy2xAuW@T* z-wmh!g8UK9AdTmZJimqP?$`!6=SbYU8~ov;a)TF4SdOh>Muhe$dldQl!9%~*y%YKO zcG)^@TyuutZTht}?Bpx_f_%vkbxOWPHrwLMo_hnh;b_G#B)`9l&(y8-VGs6EAN_Fb zm)ym0xk+SPip_5fxB=gqPw!rC`@oiz`h6WekA|0o(Y1=$uM*vDh&XiDkGv#V=_mB5 zjeqIllCQLG?driU056XM3-Zaf8LZ)=%TL&cf@V@l^ay>!zh+zGOn3%#b2R&+!BYHD zNbk-JcNT`h`_atR367nq?>JM&e(6GM`*2+Z-zmXTJZCg4Hvmfnc`__m;K!<0dfy3Y zba*FsF?i#wwhkQYK4LxeF{f1jAig15d%V7Wi~9TM>kR4_uZTSakAS{bzlHrIdU|E_ zE%rp2N5QvbM(*p-O9d@-hQ8v_2nc}(ZHOaPYkvge8?M< zgGzbUnm-esz}}=e2K$hByJDh!0bVvD2OI8$@bD7d=-`FD$+9T@(%O_@-18p2b@S8e zGkpK6q=(KO+lg;|-T-3~gl6hb*4WMJd>y=HkRE%AHK3g}^(D>%oy@px8eXfjVu~4H z&kxp^YUTiQHerCZ5!^7gm0EjRS*v2mGRc$RA&hsda#p!`s38tr%$QUQ_{nhBplv#*pFTUC>Y^)dILgF@u2WBZto?%e!y zFEPuQn^oYmo@aZ0_PX=4hkJ}z`?`DXtFYUo&bEoM+FQYs=EmQ2PG5Nca9qVwWQCCM zYTDWNB^D)ovbD-240j|kpAxM<_a$VTY@=K?ZHJ!3pA~$}W^Rb5-gz8$dderyz&9R5 z_O2f;to+7 z-qEeYdS_2Idr5U>8KgxIYv9Qi8?0%QE2VLP_WSt*VulTIyuXJkBj^?W9)R`0M`zFp@@)2WR zu&=@gF@4=y0~`_jFqr>&MeZ24Kjh@`#^mS91Akvg9>vP7=A6G|CeeH=bFlp>bflG& z4psh~O`K<<9rau7+)r8gDTs%lGsi9b8;kfJ308JmtQXpsWBn)zkroP9cHT<BIW6=Do`~RqW_xQM~a{qtrJ-Ib4rA^XXTFp!vXbDxYw#S{i+};OEtd|o zsiljJ!>s|4DvTdZtp73{2R2zdSB{~@Okoy z$AyS3j^1L<2$Cj#Fj zs(u3wbxt8T^YMOBwjZS`gPpa5xgKXWTd74|SGUhI4Dpb%!d)UwYH8 z(Z4IO;rl{eCGwNnq&DOX0vU$%N}>hFiQ368njPlRDAF!WF(tSMQ?pibgr>U|eN(o>o0@VxBjY2U_1w9@*ro=RnG{@BO-7&DQg9 zPM#|Ayyf?W7&7G*9Djy)y0CChMK|9yKkuiU=?+x*vQK@U>&Kdk7g)e?a(eXVo{qDTwVT7>D9Tz+fOfGn-19uoew2Gw1snUJ`}yvl zZ#u`VQaop$enCpY&TaF*ZOA|c8#}DzHv{WnhbWF96H`Un!99^7wEgW{S zo}5P33vcOq;8dKO>x=Q~^2)QucU2tRlqOYH{Nz=;6|Z0lb_5 zLwr>Cw|yAmqw8J(r;;z=@1aPduG^S%y4R0oKRkKlD?RyJXdG?v?Kgb$=G&v2^N8PA z4g8vK1>j8M^5S9Q(U^0ObBAoq7vv%=j7x zg81YG;8)5qW57BhC|NePJ(GMeQ@ueyTt4cD7_>8E= zrpRd%oo{Dst{xg2;y%f%vAKwT3BDlp&0>5`rcIT55JU|xC+7JMd79~`>QW5ue;NmT2;H>%AMf#PJ>R~;wJ=*#vzbnmmxG0~uGP~RsT;JeO8aOsjc;qQHF z8DU26A7?TLqh5SLb9UY>X70!6R|Hz!KaO#tjMgMSO8yp;zguNmIM;Xeyvo{6hZr#O zv>ctccMkE5dY?n=qdO;*P92dE+()A_**U=&X8QPM_@*^~L;doHBeU0}0*m$;c%&B# z;O*J<=+isT!{-%RFE-3^Z=IgK;(`36%^eY)va30Ne6=}JV{smNJ!|(J+-n-6Pr{e| zBlLG|}_O8>{0JaFYldYeb?BRRnlbrtr&5Y&F#~Yv-!QMd| z*HLGDAAX6$oW+#0MidT2XKRf|b9Qy(i0(XOlll{)b?dIcT)GfEK5b|}tPOv#f==co-a9@0>-M?RJYKXT%XgRIBM`q*`{KEG zpgTbaYeioX)#35E+pE~eDSqvjyOMI!+g$yZcK?ynMjp0EZr;nYZTNY$P6_Y4eeov5IFvu75uPOg}lChA%AjMat@oO`9Mb=s>)Et8bM+1OmMn^nY@0j&ikmu+^@^91 z5BNIrIPl%5acWY5d9&B?|1kbpU&qtj@YnCk_$L4EB*~{7zmEU?GScNcLSAjL>4V^p zGRFmb0((U;cMzw)g?j!54w`uC+!N|8xq~y0wPvMvjjPf5qj}cBY+U5+q3Ai?!KGeY zWQy?-?-Z}}_~oOUt?JwN)4;8l`%$r(MVZMAQZjb7|9-X($th;+Q;~j*~ zcG~B3@46V9i1*+l#152)i7hOv#!t7!GKy`2k1{s<$QNKAjC(E`c^!Ub}!Q@S7r@ow3{#gFh)AM*3b?7f)~-0=Jy0d-t4CtM3+GyTF6TU$ZzR)*uF6jbn{Q zjI7ZZl_5Lp!LJ!Hs$00NH`gD!0X)Z9d(!_|SzK?(!L`QaG5V7l``-B8I)rb|4$k&} z8~Htak8$xmg8!mh;oH}x)c@I>Q+_fnj0N8}WbwW8eef;#a`Am{7T?+*Dx6n+*28y< zHSUYD_;&4e+WZ+fAKEXNJ$q)}AoN5Gk9gVlc$e(dnrm(hp>I>=p(lv`*D(&)G3TYv z3b(?YWcxN?6TJ$r+Beq1o+;tw&Rd<#wOKqm%wN%LJ+VaxO2TjNVD5^(c2-8vG3?g# zITyZN1TDM$TyUJOnq9n>CDmWit?z@V=wj|b1G(cr&KS|^Xd8T@$8ayR_D_#bmO;0H zoH{>FU0T!rPyJ&K|Bw2|+TS_qAM^5m+rR2;{}!Lzzvch?{*B4@&*x=&ig#8@$K|R0 zD3$1%cAm4M5?#~Ar(4M$9RBxKvOh;pHxK)F__m^wy*)Pje=6Dc18#dOgWl84Q^k83 zd8YE5MxJRrN08@i@9E~5$@?Vo)Z&vqQZ=k42Z+Z9ZLL-6>p2`0fSnAEOd5*&iZ zhfOdEUcsbx1(V%fD z*6?%vdE>uyJO4wxxA41#bf;kamm*VRBSSn_^Zjws@8dT&Z~R#;q!*C>BI!nX_$?v* zah~__Q=O`-i=Wy|k#9Y}1N@rZG9k)@Mt1Rw@C(%DjWo;iMpo6@BSXvWkyrBHuC+$C zkY<)!BTpM)zF29jFG?2v|7m==I9d#}8L=hfti@|;PY z#XQGn^DOn=E3f9ciagiwJdZrr@tl;+vm9FBJ-F&PEx7a`Iu$L8PCZ)AM2;@q>&`FH z=?K2T{~|{}z1O8@_x;knE={}d^Y*&)jCYr&MX#c1(W_`WPi3i3G_CnH%}=8~%{BKs z^@+CKcj^;u^G-~IhZoVd@FLoVN4oVv+rp8HJ2#E`gg^J4`h-LGo%)1B-d!9DKfWlNdnEJYS5;Nw)cPsBz)OVYo zMt!&Y@6@->f2Y2?y!Xm`c|J;g37%I_-zJ{e4Q_q+^FEFG9`Mts?;-!4`nLG*)VIxh zuY8o}^VFB(c{TMt#&dkOz9)E}NqtZHY1H?O|4x0s_ur}SIq$vld7ek9FU@lm^&Q|j zDO=ymyq`yXuli}!_YeP_`d;_nsqctOi<#h2j}}jZ&RURv2D!K$yFGwzA7s2Xp}$Rm zpXSY5T-##uhIf(Y2PV*vFoF4x^P6Mx8c65epj+BJ^XEr-H@xp!RZ$vU73ZwPV6ow> zz5B>}AedKORc21Of5^8zq!(OI{nC8`(4O=LSHBc&i}7cm$L%UIvp2GTM{vp~^8~hH zctqaFkg*%$1*!8p3Rn{la z`PHZ4^SFifY~bO%$_DQ8!}n{?Uu@fy&#R8mpZ)V%YKMzFN{j&kGqlyht$cihnF z(aoAVfk!a_9rPy%T+(}l1NOi)+yQ<(y~p$Kyv&(T&yY8TeuRJPb{ic!WG?8&m(_jx zHtiWPvv%+;2%eT%X0|b3S?jzxxTT%_Rnqx@ui;;^<%LUqKf-^WKMA5!DR%VO%AdOX z6EwcF8B5O|va9i-yZghQ1!s!C%V0~qjc;iY^!GArRPFc*@5g7rU5}&Z1@abL|5a;Y zg(+_>vPv6XWZ(JtkMxwk(L84OCVM<*yyWlZ%$2qMtn1y!-U5q$|8vn^&M(VPZe3eC z@eypA7iq5|P~HlUZJLVjD=#p%;Ua$WQ51!1*F27YJ;pC>7t9Ztar{j6PCIXYnlaqv zrWG)Tc6IR>r`86SEzm@WF}jNN)Cl7nF$J7=9V-68yd|}vRjZ35#?04z36Z{j-jv$H zRh`9(8QFmkh4I=`nvFx*z?g5eCpLzu^D5{jL|vQaU0|Sz$xpgXg*5 zLwx@P-+#bZNgf?rx!oPF2;=_;eig=Qi(<1spfx_?>lE96Y~>DbEhApMKyfVTTaKrR z=0pRkOTWRusqC*dZk_2ClSxnhM4d+i`B^_hL3W>DAgQ>|1B%0Zn)QuOI6vvHIAwF+ zGNbz~2VN$oBi-U;CIQor1y@&bTY{LB+lZkNjER5Z882>IU&0=|jlSqQ^jFI#rdzQ&Ze*U#Hlvr>friZLeEKlKy|?Po z5v9ZTujC#*+2*_E^zJ7%gP5karJuvs&wu6XBd$+*mOhMK@fYh8%5&h1Y4lFR@o%Va#4$BmYUfFqX1ZeaF1xd7s_t<^4GKzq)iqjDZbZ zh@Q;L7iLbTDbbU0KG5yck!Vcx<#y{G&6di zT`)Wa-LSuLxWyWLC(l*aeqdpgu?T_l2)|PB&iP!B*=JZ9MY4<&oCbtH6!kh!@1ki zt;C_QewAi!#3SslWV~M?_FDT~JDJZJ=)&`-b651nVcmbS$29~4tbs8<7b!2v_rdm(%|}-kcDH}U+T8vXn_pn_BF@`< zxe|T=ocbo%kAl|`^vT6{puGBR{1Hb2!;@)b?f|ep7@56h#nqEat_Oz2oB@~K&iDmp zREv)s*v;?9%qMH?@cu`f-oGPTiG!S9L|@Of?D;nOK+vk1&pBG?H+Jzo=G@}`?VirD zvb~~okb9ep(Mt}k?JPIu-0FVdTFG4GPubjtCABx335_2`wvDt(=l?76>QZ#2-&&)q zZA;H0WZ|glh$)(1ly64=_A3>oFOfHbth~hfFmkcF`nP6eu}!;OX5{=%p8aD?ZG~0R z8X;z~AHC|uKq2RJ6}A%F(DW^E)4vvX!EPkyZEx^mcI9YmN;4dM^CjbN$*Cc ztxTP-In>vXI^UjDd5Jr}p!Zjyb(INC+HlFh&*p9JYlxp8N51s8r_S&DgqK&}`aXgD zAXX#+%>AqRwlL@0LcYOscc63h-@>;~rOr3B5uB8`B>k!Q`R!&xD>{5rvzgG~K+BR% zUq|i(+sMj!D~?(XD~`^+<^v^hGhsO8MpAC1X{bBegTFAvxK+-J*5-k;{Dx?4bHElJ ztL=thZM(^9{WUaLiM^B0+35uhi?iPg_+G{L{MKKiKUU7e`@x!QLBo|f-%s<(!&BVy ztO>qnd2r#DXAkFlmIogy&$+X}=eIBT)V^s|tW_28V{O!~4CEEBM3zhhcJY=om~XdP z%`9O`6IfcC~;>pn>Gs}4~ z@CoS-(jlZjyr1qMy(0R5s6X_f_ec-&VSdz~hm4zGRC@nP$%o;|t=Vrn-@k7evS9{1 zmhV&4Phz~{`1##E!>4Lbk8#W1%e)W12fq*>$>kY3OXCLS$LsCbqQKNK9DNU;w_+lM z%OB9Tr+aZW2)ftWEG(~yW;LJ4D_CyJrcZP4ftZwBMf>l?uTE}11&q0Jc?B_ZuD-~9 zqQ1VUJH>om_e(#`>Mz`i+96#xk=02!|5`eVuj{&cNvhh@OM>)|IUgMv-{b2i z`Ele0aJV`NYX#DGrIY*#SVG}=VaXwIQC&b zE32nJ^*ayt4(U_q=&nBX`~R#@ouH%NUeT?73a+uh^$z;NEA00*0cfSh%7_<9cK0_p z8MDwi5?yGHq@Nwu{eAE?#QV@G#M>l)_rt$lVUO+v^o06C(?(3Bt0TMvJ-jhR`hau; zbOP!cbF9YX(@)nS%LN*mK(4_m`qR<{V-;)X~+V|B0 zQx@CC-VmPb?J9H2Qa;E%!X`e|m5cwA`Z}rOGt_r0&($Z_7o0X!pY|VHkuEou$)4xi z`zFa+D!vGtbJAHa#&?tEJeL@Lj(Xs}jr;2B>Bm#>k!IHLgOu0$(4y=)4KJ|Q#`%zG zN)?+0Z?P{xa%XcTyb9Y(GGu8LYs&aJG(RQ#6&v9BIevNns|!q7w3D&F8k>oGW(@K? zp#3^pKX)$ZZa#~3@saUHt%U(&$*s`h?a1%wZ0$jF>MY{g$8iqX*7ETSx7t?q_5!Ev zwlhrA_Db$1IL$PzFE*pq?%Vm^z5!%^+k@m>5)B`}jh{NABbP&<(gQSoF~RJaOEM8F$eRh%4JM-PISLVO~8G3D$QT$`mjU)gJp8$31d{ zSo&gb4K#*LyV4)~X{IgCTm(Nud#n8zp4>FGYb_Vx?u z?xDm;_IwnZS&0(Tn5P}+Bsc71Kj6Ec-n-9s_Uz+Mgh6DO@S(Z)6Ur|Im#IVSAueD| z7CO)zI^1B^r8#HNRCaL&8ZwHp=bq@cG`P{d-4$_@iL&l*@cl>2O-6UE8P;SKD<8YW z^j=S%H0#Jw;wd%|C)pRUx<3d_s~&tuy<_sMUd7hH+pBf{Lj|-T+XB5}o#Gk%f`=nyWg?=K}KX;VB#~zSP4}C%&~Mq$S3BI0+r{a1unna&dx=JC*n` zl{s*xS0-}WiFjQMUazJOjep0!!KU@#G71iNa29AiIDG{@*bIBFCKjcywsCo<#!R#- zTqVJU>fdypSN{giOj68|3nzAw#!_kLXVW%)Bn$gV;~N2v`Q%CGJyB!5Pg~#i+tPj& z>eU>ZlCAeZjhD8Qwkk*2sLi`aJ*ZkrRx2Q_4!$gvtM2_-Q7e56c-ZvNsgp z*R9w{_W)z!$g?$}_bJyzIdc*WpCIi8_N$DbykwT>GiA~>&Pn+`N}>Py)3Y^J z7x3Sg&wgxy=OcA}DSIS0fAbLY^ME-^XWpgvn{Erf(_aDIGdByNWe(-L^ZKOd+4RmD zPV5Nhb%<_5*g3>l_I~hUZ-1O|X?1fENW5PzCI)M*9=K744=bn$7b-C?c zjjfsvcQp!z2Y{icnD)V4lzNo51AJD3r{;4^?>}eTv5?nlLvq3*UyQYl6fq{Mf6*(z z#yRsb;!4J%OKc|&w5#N@n}Wo>aO@xBLn%CDsN{fy;i{<}2s-_-Y}=b5qvoLybZa|S=Rtf%iiV^U`g>1XZCvs1wF zP+X6@&KBT2C_8DMQ~a@+8MV%yZA^U6heUHlsmt+~ZtEzKug^RCL3=RDe*(Pko>k-d z!;Ytykxtp6n7Csrf9CrBMbDyR>2>n+bN`I|gnP-pO0%KYq zU@a*5S^ZHKzAd<*C^>MB|M= zGtbSoQX9BOuI8_AvKF$hc*JO(pZJzZ&+aQ&ver%|_+}4?Z)8{_+h=!_|I9oy`z?FP zA&a!SQqoE~%44fp(>%;wb$@4n<`v;gJMm4+?4I&P>@n7}KKsAIjBj-&czp}A*Y7QS zk!vfR&CCPn$AtwTg7%)1&E5^yB({%6pVGHsSL@){^2YOI==Jvb>@t zQQ!R-=h=x@NS|I0zu1CJ$l0GIQO3=fal@mG*%o&WPlQ*DgI9QUD+VriP0Krz>epGG zF){fq_|+QbL{Fj58@w?K!#kq);G3#3Tiee)Ubo;Dj}Y9#k3~B%_Kq3%e%^`6`EQ~h z)k%k&m|XZWJ^|iik8lPLbP-%iyg7ZPU!#Ld(Ko=CaAdgSFM8^U`-vv~n6u}gHQimT zy83AMEjv3-+zBfA^H$-J8uefOqs|4wf%@ymq~-QC3JhiNm5)*1GW;EHOt!nD$nx|W z;F#`gW36c$vc1llQd<+v>V+}vk*M@8=5`V9_2`Y!sXW=o*}*f09u}U;`7P)U(i!@u zpi{CY6@}K*)1H_e{guua!G5gq?8(Gzp75RYEb5ISe*>ns9NLQ(5)X$ip>aO2$kU^KVtJK2{edi%`Z;KLgCY@a)`IFii6DY=e~S;+$Q?OVX%K5XSuVi~Yi52h<04JmB!0&_?6ZB_J>XP zGIZ*`V$&UrqMH_&6>2Y2f{inS^M&b?{7wCw$*S}K{OuXiQfHf)vS0cd&GNx(&GOIe z3a%0Eqrsw@a@Hg{!<9akSFau)-!pi+sY_S0pM(0Mz-@rlx5eE5*kg~tGX?uolTFk9 z8Cnx5PsZFnPDs`T%GZR*a}_vE1Lrvbv-|A=Q#WTg=LyrsR;o@2hMZLR8qh4I>tG+fw@Dx z)3zArj))#Y#Pv9Fb1X*8uI6?z`}f6L$IuV)P0`#Y#?KDMhxn%G>%dsEVCg*zbV!gIu9*~>RBN?Mxn%rKsPr?VI5=llu_kS!D4@zNQ@Q>&cK^QM^1 zQ>(%}t<8h~V(Qj}Jvy4q{k_WD<Bnd12;!Xo>ya)%qX*05%*nmA>4pxSaFmgzs=6 zXCy*5<>t$4)5C6^Ets4qs%qaRzv@{u&eZ;61oBd}gG|wx#{1zf{hV>4?-MxR3mk9J z*(p_&rLT3YCGMU~JC*EJ39NhhWp0iPZ;GKydOEVs~KMv_k_w15isL+FNUAE za8EbOn>o{_2j0TD)TMFG@vB2-W{N$!8w1Tr4oBg&?MqDWg~Azg`*c0U&#;gBo@2g4 z5037hEGJF;3!Vxedgw9Yg~f{^LH6ip`H*OH9Qso~b*!KdC8Al%i|<9LOXU_X@yf|Q z%PlvIa=%yG@L&_?N32Uf>mmo*P48cs2M5|&+YtWGz*Y?RD>58I{#s zR`~`0B400Mz<+S*IklHFK01d%aV$^5$AX;wmu9@~0>*NiJ%HuMd4cW^H&KuG{)sa- zHE%Tk1b-F#3)Sxp=;p!|H2#p`=lUv0@1xuwY5Pp_YaIS`7(5eiqPe5FQbW4v#d#)c zUokgfn(o}3z_<9*FL^c#>4|K5De1!PZM3JScrJHIjBEK3@{o9{=0<0^+R~X)q67J& zqWG_tprcG-Z*PqGu6ZIo#l3$cJGTsDBtO>@=9IoGUkkJ~m+u=im$KhQ%h5Br_mh6k zU97WzojTz_<0p6`iBm^Q=eP@A)B;?RS>Md!ZDIC5cZ0fpl%1yU{{II4t6tS7`&T}} zjvRVgO`YoR$Funs%f2OVgnj3VanhK(=c>Flxb-pqyD(mur7>iod<9B7P@f$)#_#29 z+G5$o)U|=M{iKP1h1F+pp?=-^Dt8%C);$MExTXMCg?z*O;-`83U;lsE z^ZzM^zxveYB|l1Aaqhuixx-|*_WJI;{}l3q@9Z8x@6NT?(!frvrF8UY-2ATH*ayv# zo7U!yciz_6q?n6y@Vn@}-Beh_i3;4$;MAV-%OYTs~^S z=*R#0_U`NW68-yD{|Q+nStVJ+9P9leGC;b%!Df?vM%%Mu<>GCn@L%t|s5P{m=BGW> z*d}gSSFbEpA9vk<{{^N@`S+a*uLHli-vpCr2z)s0)K;9B`#XN>+| zFrR%A%+CJ-%qGh|nO3Ys%holGsyvB+lWmUmU-o8UarcKirY z=t41z@sZrYO1k0&cW}n&cKR)u_y9clj>|@z!MP#mnD&D$`)8n6@>rQA>FkKG}H{jdVo}e1u3xP#>Zlqns=fv#l2P|BvX@he7SRbc=sN-~4pp2R{FhiOv|Z_x=AS;oWI5^xrA;@}PeiV9+{J8h+r~ z0X(4_cO6OeKEO|Va~E>)Ui2qpG8XT#fSJA6@y`AXbH<_16I!@m*FcxhlFRRWzA0P;koPgxm_m7@ zO6ud-sQ6gwQ#_%EdWR=Cw#J9uHmHA#RTj?l9WAU09S!frFG-9oaY$J{toj&}XNb+| zHc_h^{dbQ8Y?3v(>BtE;UB2s~^rgr1YhRtIb#$Nk%;-}5!9103J#oIOTXptj%jTwO z@BL7Hans#FES&Q0BYiMXJQU9O1gd)=M2Tn)^|PzhK6+egl8cRy(i3TazD` ze1tUs#gV;1Ud{Utv0is{zl9Dw4!wVpd?tH-@PPMCci<@f?FZ2*zZ~z4*%Q}jUH{K~ z53;tQHa|f<7WRPNLk>0~>u8738!sZ=00;c1!2<8%DIsX6`QJJkODHcpE6rKz`_Glm zXy`jB%Uv$?dldR46O7=;AU1&;oD<=FfW%dF~(+GU0d{5D*_{WIL<5|l(MQWrO zeHZ@GnE?ZzIWfjcI+3@YU+m7;n2jCwCw%$F3?!g?2b%t`$_VxbVE*sqjj_fPeZi|g z#5(Q*@GD=!esC8H6uRS=M}KW(_+R|-W8U47m1`|?3cD9WS87vZ{9W4B_&@oYV)4t8 zXYgNR-Odxdl}MM9jbw9gW4zMp?xwv*NmHI1+`MJUNj(2Mu&e&IMzcGUiuSyk9zMqL*((e_r8;N z$wK{(5$|w(pSLv>=b*F4*dO05`Ty2ri}MV*!wvtw=Pw_V{2czLD0hpzG{woF$IL2Z z?P4iD5OB2Tz+_K%AqJrPKApwKy6~XM9}r${W*lEIMXe$F^>uJ~6+XavtH3>%PkB<% zdxG;I7@L`|^9zE*6Lp1Ox<1vJr2mP2EMc#^&YFUz-ZP)W835{|=9u#2^tJkR)(pai z`FIU?-Ig!B>6?s)r>A&rG`nl90Z*T2%}Q}GDR`Hj+kZ2o_9@0l{=FzNcs0CZBRJ@) zWNix^1kji2O~CDQe0gkJ2s~6kCo#p>qRad6`s?WWuklyichZJi?=hW;HYQnvEv*0P zql2@QPvsBN=O}fqE)J~G|2Q(ZnSH;(EFS!N`M*c_@yFY6x6XfwkMw)v!?kO`gO3-% zwhCB<3%$oUOW+^kC)mptV+(Jp>qBO5u(1ih@Qub$QQ}&~&IF+Y;+lFpmwto2@`-Ef z!ApwyxMAt7jh#!A?*9Zaaq6o(_Vmy1kJ5yvKkzK2|C%cez`*{PYUbbx<8U+go@p%d z7>f|Jhj$A(AkLQW{AT(aZo@{u{NO--<`(@gnJI-(2IpFeI zliWsoQN

JEHc9yhv>reBTvUo3>TlWoWG+s!^r_L;~&quKn??0?}f z*S-~hk}ak^g`DAr4r(Wxp!F1TQM%Uz_zyI{rF1iTz^B1gc5S>Ky43oD&NmR>Apgu4 z@Rjc@Fm>p1TO_;7p^rH0WqPl_pYrIWhVt9VH-oa!&XA4fpGl%R-z)w7@~2s2N#R$O zUr4k#0l1cDVWRC>Y5Yklt2}=s&mCEQp8y8QF@4j!%IjU{W#!thvY&OAif|-7eHi#i z>8@>PS@@}s7PMLD1UCMie)wMB3#R)`myeH4{s1^ctL_}Z9{oA^ILw-R2eK!AH+R&o z!=_@7ht3hn=e};?X%;dsh0GHyTY0YQ^zQ79e+i$cV)KOm{Z3s1d6<3){>K@VDfrsr z7S587;`e1vtiB+uGo-e3a>syyA4HJhk`=_c4Wur1rKG zm%;pN>RHM<7ww$Gn8km~dKP8Z0DCEUP8=IAUZIO`D*s;J#2fF+3~nj79eK^!eJ{P> z)CEXWoi6}Sl)1HOX-jPj@bs8MmtXF{N0?$9=F+F9cqX!N^zknGT{MDwwt=(KD6Y#WsL-VCD5v~M1xtFo3Vqh#Qtrz%+@IOsl)tA zVV}BwY{p*gs~-{ct*>Ew>MWy=9x0ryy@|eEE*_j?n?KZoo~HRBy!iVQ-F`tsQSR0i z?)<*phyAPiH6J3_%j(aQYJ;cZHFD>O=7DVJAoml>*TXu(M|OaND75RZ6$beqi(s38 zR|CF7;9GL19y=&Vd{-ywQSMu|`G%|>K)wvgX5V*1+()C%pxMv-(wT9ZSD{ajUHJQV zh!r9B&Hc8EZ>zK4j$XDmWE^CoDcMb)__4v6uZ)|s`IqSail;IK57nH(Tz(mOE1djw z9P^R>{gSy;U^#XDfns-k(jUWi>6g&mT*lC&*8+D83-g`2x!`J$G1VCM;74=lFXKE~ zW3O^C(u;<%KE&9+Tx#g|uz_8y%l8z3EAAp(3sX83ZkM{}Gp24@ zwvD~s-TCy{W?ihWGIe*9IjcKl|3O>o+mOyqY@};vpD7*gaaVWOw|Dp-46ufSuCkvp zwbbITno|d$yx~-<%plJ3Hc$|KAeR=b!2eMVf2wW&)0t7!5_!|Rh|jJ zza03(;692ilm4M>1grHhzOZey!~Aai9W+H-ZSU2V^ojIBvtpO}NPYR#x0w18Z&4Sz zguZ$Hjk4ss;P9XL7NXA7(Lq;c|B7;XjN@v?uLVD6yJQ5gwM#z06WWmvLB>=3Qg9i* z#ixc@>o;4V(@cC?I3qqB#z!5(2M`Kc-41gG+x|bL$KNY`>WTT|XQKmf{*_zz%%Qq( zck6a6d{W2j_VsI@9<9f`yAWOe&RW5BjH_A9k8>t^zG`iDxa(DMfU%c zKD8`82q&CJb|*4%OF#6_TKU=n(hB*7;fYUcTD zMkikAX=I+Zrl0lj^e|~dd2cypXc5mEd54tmfjuE=%DQ1z?Uo^vG(+^Hm*3N z2hN3#WMgH=CwT7o8pYhjA17{!@21`~9ht$r91icIOuId1pp(7L@k7{v@P|QY`KNa2 zZmY_4zYUMzEQEp8+__Z2y^u*V+;Ud-dj~K^vt?H>-w#t} znO(j{{fPe{(wnHmAA40elR)M?ML#5ejLsuG5;(Y&_$#J z+e*6`nEs;vXWP!t!o;4-?gOL~Z{Wi8A>ip`-YUMrfhVzPa?KIG8+cO%yeYxmG8N)Y z7w{Bsf+jjRbL|e!=j&)NTjSU&>5I)w2Y!yMzdiABGfVb)X(7G_^a+<|1jY2S}-1R{XY^fF&ohp5mX^&741%qKd#@`iP1AbY>~1d6nThtm#t`^{&YOWT3NAE0mGsSh z(zky47R>g!^rSwQVp9t)7Y^XslEne%8hCR8KG4Cu_jy5L3VfQi%O|HW-~XmKM(psj zk(acIEk1A&F=T?Rev~=*3g*xA>2tVC+TN|b!tmgM{p_h*L_3!Bmux%ABfL}R z=*ny#b^omJuXKIaw;*l%|4+`Rx;n_`;)G`haOJ|;z!+&BPR`;~dFLFkd)b5L(ruhE z8yc_t@v}w8KlzARhrPPxaCW^*<1LwKL06CPP4$bmBCLPyXI)D8Y++AzeQNT+Mq<4+ zj=LB~l~a9!eKLL6&r|DMi|MQ8RtWt%mhG$Rar5w0e#v6tzlZjS`MCYS6Y$I7-Z*N_ zZ3uqp2C3rikB?LQoz^GEB>Pue=!TqO4$SSO8}@^BVBZMtSblJJ2m2CiV%t{F*P1Z8 zE(a}H~@}tRih)Fe8gXI5f#G|f87i;0aOTXCN_?&ic-&r}Z zA76<2eIMhyn0_tOnj`HA2ZF=rlkgLlr{`tqDsU2A-H3kajvsT%GGljxhqgF-8AI4& zJMbla5S>MR8&91};W5&Yq{n=3)8L)s3(e@fczAPH(aN>P+_bjKnB-h+PS;*V-noAp^kbTQZ}O8e?kC$k$5#HzwIMo~WA2$7 zo96cJNDa<TmbZ))({d(bHcUV+9$UvnRXUePn5+dasq#^KOx{9W`ZV$1)wku`eKUj;ViP}?`T zyU#Fx1oQZSS)+Vy=o7>UaIbJ_>&4U=w~=|Qi>ur(C|6GYKmK*F#t>s|z1y=#y4F1I za`t(0Ke6cI#{u-rdi;Ma{Fh(gK44h{-VHjYjoyR3(CFhmjE*^ea2~##bB1T&DOZBa z&yq**E6>ULnTu=EecbtDFrNB_b6=kMV=*EJ2hx!r01tv!=Q7EEBboL?`ex*Z378ea z!&y0amJOATk~DxwAeY$ z2js&$Q$7XC7{<=!!<&h#%+|FK8%}k7pE~3p;Y@@*>&Yj6@H%<)O?ke<_fBx8dH)mA zHFkaA^HTaI*aY`c@*G>aZD_q#>jRoAwxjcb|kRF9jvl*R6u&f71`tH)Cp3qaD`krmq)n`<{_=4)s(F5Y> z0nz#JK6HS$S|m%gcW~U04$yx#IzYDVN_3t5p9POOI>2gl9l_w~0OQaB@Z*r*<zdm3 zwaANuY3&(7M+_1#=EJ&^SRxls=$oJCT`&&mo7CyfPd#b3KL=OBVYBp2zV%m(n(fYS zzK6lFc%$04?w{LRaerR#de&K@=%9J*8=DLM0#Wq#8CG{+7LRemUA5f(;KNjj54!IY ztQUj75IWQ%_||I9dWq%grL-#;gp)LRT^*42eO=MT2kGuu7k+eeKkxpy?%u#%E5J87 zOAl&m4sg2qllq8!KfrudTvz`bZ>&S){m2+*5xzK;RsG>lM=~M$GiTde)}I2^ng=>( zi96wUH-C^d6x$xyg+EX@&4-sP9*OOR{oYSm+3QQN)1%A{RYC{eJNM zGO%m{mzp=OZN~F!q`yeIKUWIG+eklouB@exN|!BWnK7=;6y$7y5PWkzI+OgqqMxdN zKhE2BRC+qjVfd-|Tdv-6Y~>TKZgYe&6VH-OE*iGTch)kG7W24&Jb_0CI~Z~s}^&v@bpy4dS>V6`|*^0z!8HVhi-#@ z{=glY)K>wI`X;&#XLM{!V6%(&h{iT3Z>N*_6flMG7u4f_?qkd(L!@hke?QoCBi|C_ zI~n%Xz@A7C&Q6nG>kgkQ(5<5_r)S?Bt_u)Vcs zT76#(o+fvFZgZ!B_rXu_bz%Y5hYy)Y_KU z>$l~v!9@#LlT`ol$qT1Z`lWS2^;dn>d1>+=TiEe#42T=+ia%}?y2e@TKbM~sIUeUJ znhc^NARD$+vOe4oOfg`Xj0}n07Tz2}r)WW^V6Pr`RO*frdyVjCaSv+;>npNH&~uu^ zQ@Xy>;o40bi0`*1dpw2p!jk{M?miRzOBN&~2cBV{7*G56^!2CEJvi3b3BT&wXTV>3 zft88kClSwxmDs)V(?_8P$@`%8SfQ_^i7jyJWXx=6gmv02))9{`9O`49wxys4oVPA5 z$mUDa|BnDm59{psDVlmXpCg5B%Nk%C_-M)Ffa(e zo8O~skg@ms`-V#oo<6BqXwHcQCG3s7(e%dI$5e5YI392$TJrYzdOY7-H?*?x&~~!U z`1)s{x`RDhqTzaIv}c^%8wWoS!kux_D?V*!;`c;)FW)t5O*k-Nx4G_vCGmUg-g@q3 zKSg`mr#Q0<9Bya&oa&!x)WdFJ*>|zyMQ~Z&A5S9d@tV^a5BZv#Ml1Len`$?_3oU~ zxmS~jLyk8(?0;OwI)3~xFryayg^UAu9a7XS|fA*ca%jdP7r3<98D9pgT<_!T!qCd~5!o zvo?fpJcG^~g-_8vJTLSwe{w%tU^VPK` z^`*6`Qw(d8lajy8t|h*P56ahFg!_xBQ*eJvb#s0}d%(2i6@|}9qYn+Wec0-~S>K^s z`A4a9rq)l;$GDSQJ~XdSss~=w*jeK3OP%)j!KQQJBk|RgI}qu0*l*o_s%ble^w4l; zMRYj+Gib9S7;5eK8?ikT8Ix1JF|qi65A8)i8*#_s0~!bZ`{U5Lq@!^rIMy7Ce%5y9 zS&;bqPz5oIjK>7N2_C^*ihQ_C@S|sn2S2vK2PE@3M?xnnQ6AH|;?uMcN_3f|LChwC&>mCYTEyL;ew^~fpKy!uHO zJbj$W_peIVc#_r;D6SK)vEY-hqBo_u^D=k79wbe?Qe{n^nJzxrpPR;=1WNl4(j?z= z%POCE()vFQHr>rUsiQB-qkgU9U2W;Tn|EK|@?sm<_d*<<^evnDr??Wue=Gj5#}Ee| z$V*m~*}a;(7JBaAusP!e*VOF5e;~Zp<3rf=8|Q5U4~y=c$r>?hE5l6F4(#U8Vt%Ym z@5motV^ulJH3v4xo`XNjp3@vHz~63`#&jMm_w*L*u4hf)Oww5!CN>nGtI{MZ;FXV~ zSG)h=!A~NiN*U9NZ=&CckCOHjWBV)a*V)0o?^Ild3TDCkMRX3?hl+u_5I@7t>5980&g9*}tuHcW z2aws?C)^(>M6QfY_8-D;hyIDIch8}Z10Oa)TUt5@GIu}qh#s^zZpT==SLb)>zuvW< zN$=6@f5jDR4(S(SKSGFD1e?_ypb0RpqTBK=$Go!KEO!Ot5^F1BaZj3Sgc6Ydsn<(B<{WU z^Uj$9oD;)X(T?JvHEx1K&!QuW8}pX_%XkMn5G~Y~Xi1`th z|1Mh4hCiceeJ6YtJoxru3?24$Y!;pADqB}{RL@y(@QY;BcIq_NdBC$DJ0qVt)WW>l zkL|O_#F-S$t(- z?8>(F@3f`~m>lRiicTW?u$ghojVXKsn77(?xA;E$4zuxecJexSpcg}E$-lhk z_l9-zD{Mzk_15;TaWAEFLeJ;J@fl|MJV`FSEAv{(!EW!d^b z(QNUQF>xou8t0ZoWtg=qyV`-~|KlI}KO#No(@zfH5-cb4GC!Zs+jKse`AgwhvgdQoB`fjdxt;8*G1#Q+^kWK_7{sXD>?Iy|Ue+=pXA( zIlIOQ;xiy`8+mmGQALovOFY~7YSP-5Sef<)i+eju2TV}&s%$sofAB-tOdbuDC7rD8 z7qiP<+b@LPP>&oxg?O9^$eSbJaeNCr8Qmnf`@+m1`b)arWE||i%dq>d!0wCLV|N>5 z{Jn*#%f}$w@2xi_vLk=QoL+*>R|w5q>Dqi_kj=>Cz$9d|civJOeeOJT{GJ)i3;gvx zXYs`D>^T!#>_a@i&9ln5_Lt6JbBIyusUcQlI?r*)2K}!`1`xX;yG?n5=a4psJj8cJ zbM$IwtYQczCfA?g+6)Kd6EC@GJ?jDcOF7HNJ@-L&*Tm#8zNgE~%>G-vv;0J>h0GDw z+-CZ5u+mpu-H&lqnJ_fN+-yw#N%ZH@y6F6bGrEL-^r(+>o@bo(o@mzR_|!rE7dR^_ z&NJ7>^v-^!)%YJ{cEH7}L3cvt46MNy7~_nb#pq>M+Ii??Bigh^5#)RvX9n?8^UT2* zyd}0Ydc-&##M-YvWKyX^Cf$EXooW}wA1z!d^;n)Ae;pz zH7M;vq*awV%g-5M76jotb*Gx{J1Kh<|G=Waq}B%3oMQv5bzyIsBIl;Cd^XshS7N`c z$9^%aON3q@+}bl3XqyUs$hM6WQ_wlCqw&QVCiCRI>vpKJ_4$I7St zFLH*|Ti74spB2Fxw~WEZaV7b8k^c{W8=QFsc7KAirbUxsaId*({x-PPv&+X+M<#VN zeqS&#PZO^WZn?L@SsTW-XMQBR+;n2&mY!Fua?jHi^$b|7KmW0E)|x2u6+P(SllupW zk1HPt55Qw<7I>HoEv}^oNn&D85pi-;?^l?X#ng(06RXzBPt>wLM?j zuHvi@kh7gc(^2Lo`bD*?cfm7guPvx2G?FI1#y$7U4DbHuk!IbEj8zSGnVW{)mqHG? z{04geBDzrAc2+2sJ;odmuWUt6VY8_)8;T`=SJJFlRI!j12Jcv*I3+VsCO%4CwZ+=QQbH^8Y zIUCua_Fu&Jp)tLLFN__EJ)F98POdLwvtvi`WlL}*kt9=^l0 z?~ltFlXV&s`u9=~_64}Pg7yt_+m}y1EnY^t==(}&A;$Q= zSDt$KCowGJ#Q!b)Z`R|3#I}0=l77;+-)atqAANrr6MN+SWlYD&iHa412}E8;V-Y?&kf^$GWef@#te_`7@R2{9YMzxu8OF8?m}mI zVkB}7AD`r${Mz^ORDG{*#}2@+6diOj<#!L>xr#GT+XuB@-|mJm%6jlSKJ|;irVaR8 zh}m(^*`Gt%2y*-u6KKHJ<7|(@;Sb{r(fHmQ2(-@qx51_tFEp9&qqiy6JoV_{mi-qZ zn|Oc04h-zT-c)-xFvf;8lo#PWeezKuf9_>ZhueQ}|NQCB@~!mWtrvZ4d*ykpF>w7R zb${}=>_Z87I-{k%6wh3k`RjKF@4UC(S=*=c{E$1U?+nSF05WMCdrW}gd3zE*rAY(M zlOBFj#KTA@1%K0}i;CXd|M+>mALQxN??%40FmI#i$x(RPPvHmp@AI;VJ z6XKz|fZbge$m=c-;+L83)P=AGLz7I&WNg5C_~KOT+M1Ou+t78|o-(ZQeDy1L?Auwh z`{9ve*Q6r&5!j!?9VFe$u;mmxu^-uKz?bZIgP*|QCrG1LByPfHL1##OjxnL%iQl4s zQ8vgt^L+%qt>^D0+fp57pM`1bDt6vR|7{w=(}!8xee-8E(i`7GhHn91>g&VcO!$($ zCfXDprVC$hLi1Vt%f_~7v!Atf#d^Jn{b_-J+0n0`g&zC*&uSLp*YL+cXQ4!AJ9SIn z8N71?`+`#ullkKY(>sWcE1!FU|3BydcJldks{W^`*RRvB>o)SNfTsQR_4U8?_6`E; z`{Lk>z-`t%leJN^v#{; z)E}lyjI$41{N$9i@tdgZrf-~BR{WwL8Lo3TionH7_-Xs_)!8AfahWYk0!M0e7Q-v} z@Lpo?rR?#*Y4`(%bD~ zpTpV1OX<6z4igXW&F!C`CLE|I)mbRJr@>JDRB zYg%a2`h09#%$Q#J=zx}JODcELC9vhmY#*HMDJ?1^dvMpu4n&TIbr zXNN4JKJ>Pxj_JX0K8f*MY^5Hzx`G&^} z2@=aJL{@2^tsz!nEBgLqY)A)~vE8|^QTrrJcTK5To`x1?l9#)f*I4)hzruWxF8>;K z2DU+UKYT^BZqfgp`@FOJqt=m{C6{pKD7X@i9*a0@g(LV0=k%7svnM2lFX2jON|#Y* z4}2`Xhx>%H@Mk9D2L*QUSdyFeZ*G4kBnv5X@;B{!6aDypf8l)0#o^4>0%t8U{a_#V zmUVB0J$Bxn;T_1CUSf)Lo@EHXbDZ-m)2t=G39htGFMYJrbT%efCn^L7ngeNgvjZOR z)vt(hhOTgeucf<_v52szqj@BIR(NmbJnHGdDEleT?rap!K921cy$rgd%$Zp{%3kwh z=VUNnXET28ygzaMz)mhS_!>rbvQOHJ2Nvyy zfJ^g-^P#zeGl0*lta`&;o(xG~AK#B1TZJCB4w>1-y3R2Cyx$C(?%N#Gy@s;ij!*BQN6PcG?dOd zkluqzXB|lIhIjdJqwah;QD*u6{WN^hhEENef>!2UQ%9|XpQgZFbBa6o^m*??N6>vu zx)Xj8KITp1!{<1p?fk-w+S5Kiqjnj#zx{{Ehv41|Z2jYOKCu@& z)VIrYUymI1c;N4{``NwytI{FM;p3tUpHF{^cnZ*$v9CHH7;jd_1GkXIevWp(#( zc7(x~I)S#|`j{zsD>AC&yLol@%x-ZuzrYd&2ZPPvu!KZu&jr^&fqnx^%`T z@w}x5KVuYr-~{81e5+oG4!C8anaw6|=J4_OJ74GXe4oE^`~R5$ar6&=bI+Uen(l0b8o_K!nPGYlkZ^lQ0 z$f_{o^clt@z&K2ljy@M%xR|Fi>RS8H@Ih>u?=G2q&q~fsij3+g-!g?eiouKIlg7ZH zzkZeZ?*#F~<&04RA9NZ1WcjB2v8v>KGGk@%D`|{^+@bs_e)lp)@)yZZcHy1eJ;ojt z>7KURx6F5;0E5==gQQ!mR~pjm(Y0d8`gQi$ z=}~lwasN=v=D6hjz!E3^TzG}2HkM&O9RY6jL*L8ji|%qzU!=o7#DD4||G4CLDGOe> z+t;}FIIx$4aU7GpgLIvV{u(h^Iy+rys@tOMQDjwa{YSrZV*Piie(@pd?>MP`&RZX? zb!qNqp8n2DgEPf<+XFMdu>K|W%S=C)ZzqpyndxXOWNd>624^nhyJ%H(d*CBH8y!YaGK%HY*Tg7UiNE`R=kzgv190O z0px7w|Hs?g$46CN`~UmQ3?UMpOag?5Yi0skNYzpWLKMxJNkl3>2CUY4%OpXijam^@ z0#;^{SZ&eP5fqEwW&+rnskXL-*0J6)0jjiWYw_0FURx&ttF7&=&oC;@@BKMv4oo86 z@9*_{eP6#nk~8P*r?uB!YwfkyUVCllef07eG%sJR&x0q?OcI;6WP|h>_3s+aFo|Xb z%O1XorbSmeU(;2F9Upr7JNB$DbVF<@i)9z-#iy zxX``k`Ve-E)@zWJ#A|ivCXvPlh&HFo3f|>_rUD0(AI~f<@n}| zBX-7J_@13bSrk!5%UyGbx!rOD$4@Yye z<`P$z^HrnEIX<|GNBq8jc*@)V-49;=!oJWw$ewqRyV0_PHE(zL5+Bz4u}hStu7dvL z$Mz1knWfHe;uYtg7H2EF;7i#zuy<4oH`y<-p9nq5=8(bPa6eD?9{cjtfn5Qe|8Q{l z73yFOHe3F=;)yG$N9}zX8K?HHah~O=R_BS|BzOEibC1#n$0~RBO zru#2<*tv|-I+P}PUzWO%G}*vDXz?Y~H}zBYO{KNbzo5>O(6;uTv$T~xUC($rThEhv zve-AX_3T@*@2>IlVBZPsHuo>}Um!c7Ti;oGAy8Taamk6+SU_0Ko-b&9VKOWe#JK-|BIcNc zv5!fF$Hf|7WsIYwd3Q>$1s9ov1G8^b{sR1l)IPGkf4#;79MQh~ty?I6HF<^4fet_M zyZt?f&~4vd6zF;91L>^8IQvMvTIl;gOOb2^iG%y>bgp$c@vw&L%q9No#XXt_`^Fs8 z(_dCT5p_h#_ zvz8#g+VS0(H0F=wo06*FJ~ViwaWAk}_}L@DUfIsRNsN1o{QgNLm2=IT4eTHFZS0z~ z1f3?!lY5t0XP6P$brWW^k2a-(%SNAh+i7>=jM%kPO5dmM`>wtD?hje7d9dvNJhb(c zblkG)57yYZuLD<ie5Pk$IAcC}@r;2o_H{0?b03T`xxSy-Y1yyg8OCX1>Yb@3 z%{iuxQDV$xKX2!1Igi{Wn=ZOBbeP5_J1e`3xo0jhKv_>9`}f+d*?CR;nJJ-b?bhTx zV=FdE#p|-qFz(zfU|QM#TfA@h=VsJ_w;A|@&|Y}_RoLMBTIiFVLl+!(NPC3pU4lVaAbCFYyGtfiJ{R2IxnRf8g2bQKhENaiRjv}oI z_%u!to}Ax0Ck&kHp>g3x;~8#^&TZz;Nox%{zF#VPF8EQo+sP~4kNl0IzsGqO-ZJ_Q z|4j?QH}IeA74fOAy~2V^t;^h~?Z@!*G9pX3E zir7785wlPBy8p*7xM6ZZXiapI;sX=0fz{8q*zKD%U`m@d5Sg{q@ z_mS6i>#=#QFu8kJ6C_7)7Y6f5jQ8Y8X4^f;!sKRbh$oVNI8XeJ&2`{qO2wQccB$+_ z@-^~APQMTSHkFy#eP?5z^jDVtY;*&>H6fLLKb*sdKm88!p%{E<4lRez+Eq6=iqPNs zAaTSdRm|DJm~7u0Ll#U({gS-qT>I`#srT>o=y1N) zPokS=k<-nRE%4x^4Vp(;-vC2q;zM(?@TiU7qhwU;FI{`3((k99=fM|o#&zF8;^1wj zM{Bbp>}Q;_%+c3$|76LSiK$nym0hvkmuM;TC-(b`s(skrlH&7;iX~Z*TEe-Bhjp&{ ze$62hQs}Pf+w(Y3|F7^>mI?3Ao8{nwD|I@_iG?LV8kxf4wF+(aEQ zLmwCyA2z0)*b=b)B&087z~e081^D&;1n<~c6BhQow0oQ|2 z<~VeCH~T=Mw|1V;+aLeV+{>I&N57Tc41Zk?oUxl+ANwF{kV2U3ii$b+kuLgY&AMH3 z;eBvbUw=$OYn{&X@i&LRL)=LmV{DEAZ?Y>KS`$IO*Tb6)$oI35@AKi!vwPrWN4{?> znp|T0$CZGd65&4LHzfnmnL~HXi_z>ci7a!CXioH~Jhi({Usp(f)%gE-^2KXkFuewC z$?g?nj*~nQ?rip0f2?otqx$XfWNcq$&5oVspuSBc-7dFt*f`#F{2Hd1V`uP9{f)3E z6Q<7wU1Fv1)yh10U|`!X84tB7Iij^*A$_4kJG%QD;tTwZ_CbHTKT!A&gRATLj<3^f z^{oNgb8Kt7@quVCNPy%$mWdKv#pY||&P29qC1 z593;;e$t=H6HRU{zXjj@JeA%}`fg(5s7=Xb;ja*P-vW1cIeDj~ZrL-iv4eUd$cR2@ z8hcP;0N%XfF773PXNjZthIm%I+RN`(%}9qwTey=iWRFPr(Brq`3u4fVH3tjM(016bbDhFxJ+(FX45Ch=j>kxw%x~=sjjWgo!x_B5Z*4PF6O%l zqN7PX)!u;LH)K9Csad2O=A!}bf|PvBFy4iHKpBVb75CzmeO6-sdMmN7!%FmHL+jgO zCF;1BP<=BaDYt&UGpDh!_C^zH*%uOSyEbScu5C$gA* zk-z)XD-T+^pOH_tdTg)TRM!XG1J?}f@4Re!H0JLz=4W3>YzSns#y*0bJro;}P@Tx~ z^k&BX3h1B(TA2k6sBbaOs3?AI#($~qU1g6An&4i;bFtYAFT$bv%Uqe8wcjXq#x^5< zjJb1ICGjBopmXJ`BfT3PShD(ZVAb<_#@CTIpA^j;kwG5rz5ExFUv;R=6$NG9W_&v@ zVs3>FoAUBZv?2O>9$X)-PVLDo1+S8UUYR}Q6&#M9qjd0Em|jlXJMwuB0ISv@ht?d4 z>6qU)sdoL6O)3mcm{oS}`=VduzK!1fJ%0b3I-(N~)+}azSp-e5Xdaf>!2T9+ralj^ zgpqYxFMGb?p>d|hW}b}VYyVmPVm{aQep8X1?f@sqc*cl1#Xq6?r>c9zLvvJzP2Gp< zF#lG1&jjF!T8TK%F!N)myrHcMp9=Zk_SIXpR?vRTjI`VO&$ep&rVe{7`vcRK)tKO0 zXZ!6o(R~wk8_|ei{}cMJ&8{z6)eDac_NBnXU6+gY|G=u%@BKfvYCl1Lp-18hA?vWu z{to`CMMr^-($1a8Mch$F{5S({`LNB0P7*5Fxhb^YcYhzYM(sZw-iLJJ`MS1v&P(?+ zQ^zOhZxi!rkn&BV*)PxMmmR>1p@q*!?mTY{Sf8B3?|-LUa5Q7knjeGqK!P*X&KSH; zy70e+@kK{l9+(_nP5h$8uZ(_ilKp!-_uxwvlZW|-E!@hwD_Xvwrr$TLWPr7R_UE(C zy&pBz=-wrMY=ND^FY8|)6K0ESp`+2omIdc(e|Ifs!DJ5VexMVpCn5VKA2h~_!+j>O$3`dTYyf`A*wc8I?&#@_tiKl9^m8ozz`oMx&>rt2 zd9Nfdu~e(oFX5~YKfp@-#`=lnGt2nCltJgzTANrJ%y*MgzyE{UF0URS|1|EMiD~@- zyftRR!kd6owp!t7Vj&Fp%f_**3bx;B4xQ`*A!7OVkv8)vX;usOf0Fif(#%Y3vCtNF zeaAoAn&S8o9UEdytSQ9X`0K!ItD@jrg{kd*jc?@z-^xvGNZ-a5d>hL?{i}Q%S@3Nn z@ninNH{!mBSVKB(6r0+xzTuy7_!}`+y0L$1uR-4|d?KW){MVZUvxQ6ez}c%6%@@+J zXk!lfE=Cq>Y`+EHN8cRSt}#?O;Ys{1yy@(1r@3{~Wqfn^eC%L8m)%zQj4F=q6PYta zf2OnVd=rG88Pg~+b+02&ls3e-C%)v`T(u`9_|)DB{Ptv@pZU|1ecBIvkG&_&RZTB( zju)O@qqz*YJD4Mg?S*b-%Jn;%1>R*V4kpQSh2)si-ndpHJ46-dZg!eCd$He3Kb1Uh zxFNqTosNGo>(a~N3*b5IqvY{>jJgeVms9sFVqvrHbZnP%k*%Ih?H|yH(>Hi_pw6+2 zq!!bDwvPKB@-oD$PxEa5+pPQGiyu>m%H086+Pfdvr8TZ=Q|i0GhcBt$UlN&`l*;D-qt(A1gwO|nL zvaE?^ml^n}Nl)aiN7cP>#2be+ygoCrAcP2e2`74_BilGF3J9w zcJK$3jwyYO^(Xc#w{Go8{E51g+E2^3k6mps=L67#@QJ)c{u$`l8@b17i=DpA?^_pT zKc=0zs(&i$(jVJt;yLf#cLBN{dX8*UvP;P(HRpZiXZ%sKKKqc<-WvN*c7&bo!#*e* z5wM+;1!nb8FbNju`A}N$d_es0C3bE-?d*o8Ld;*%^^ZsHNpFvH-$Ips|5P?b*H&gT z2Qrq7SJ_AGY0%SQJK8pAKx5ktJqMv@Yt@Q_b=W)N#FRi8U)<)OxUi0MCx1f^3sRrP zISXCf3SGVezQr>iVBeP>B%6-b4W2#cPSF=|Z!CcM;5U!J{I2u+qwslsI1DFsOrnkq z`{)~X&RZuq1cP8{0S>Kw9G)ZJe&!$OVpjGyT2oAEjl)AK^Dg-W>(T5=Ex`E#>7s`L zzwEbG&!KwRlkhcwUf=yZz9}sM?k4b|cMao?MJqKC8`1|Wih9ay*2$d9nt%>=13FeM zcA6E-NJcC@tM8-7$##l#t1@C_fUjN;>r zDENji7Pg1kQO@=ru8(unG5QbgoNv@q3(uwxtqEgWh#(v58M6lFx3jP<%*VFi+Kwln zr`>=ah7GuM#VL}v6H+gOzqjbK#_7Gc2Id^r1)?R6F3=r|HU1e|b;j?lf!QChf8y>t zOinHP26|GFi=zYZ;(MnvFXU}{_M4S+V)N}>1@n?Y5B7sEjbYPhyREs(ek{Ass@?ah zRolO1_+xzo=)rX^9ozyfYLDiZz}3xf!`$kXb$$LOq^^CDF`8no$2Vc|ZSd{`Yl{~> z$k;wmfBL$ujP1Zw;^G0zSN-GHWx4Cm9bc1v5PyVy(8jA#F~#{A^RH+e=ra2V?RoJ8^~VyaB0rbx_Bagns=_>?fTfof%RVG ze~`7`Jl25k?1E02(=xJoB9k52|9LyN_V8ZEMC7ylLdsLM$iy4!%m!>8j_iLN+U!Fn zYtO@{{f^=Og!Vgv#ynkjv+2=(2kZRj>Tb69?JLPa19dn1dM@iIVf=`d_g!SRdXoOJdrkWWF@8-2_V zS|@9ccm?|>YmglEH2#ITVjuHNj`>2maUXMv<`dD{R%HK!2hqo5FZnJpO?F~~rSICm z`78Rx&PeY(!I?cZb4G7u=e)?2;I)~^u6a8n@p=6CC&-6et_2!mAlQGA?85Uy@UM1A#(J&quK9|g@=Ad z9;F{m&K^U$>}&%aM{Fdr(dVEU+2&uO+$QX3vg5P&ORRz6_&5g8^@`Y29_IK5662w| z`95q^6N-EKuw9C-H-i6cDRF^VKiu!L5^vwnJ(l>7+M?8T`SrT1@g>A$SHYE!In z9r@qJ-tXA$IRn{;POJC>%lY01efs?6>tgLD5rRIES?i{i+dU2Cre|7tn5WgFJR#^; z-vjyY0lsJNN4CO08RGn!*3;)^S^s`EVAUFfPt!=Vz3GlS_ZmNCA9?t#-aCK&mbLru zZ=pZEZrE3C`u-hz!@vIiTixd#`JUx__epm+WtzT`Ph0vwPMIkF9!-zju{Shk>s#F; zfAf}gvRhY-eJJtty}RfOe8#0Y>HdZE@AszX6X;nXbS%XP(%x7Ryg7`q#}?`M5@=8N zIcSVIk95WTu1Jj(PM~w?aK{MGJS&}fyCU^(&hv;ZbE5ZKr?46CFYrcQ| z68t;5*$4AYCT9L4cQoof#JhF6U0ZjTwVeCA7LP)AwF@b@2f`WI&XYEefW z{$hQcVb-||)iJdESy~H#Pu2Y^aO<3Dc*b(>GVFyHLfA}0_&Ws`WamnLNDk{MIqd!U zbVk`QzUcfGW663i!8*9jWaJm*dp!>C7M3ZB**WmH{BNxB(GifX{?sncrasBKSF+|w z)3IqEytf~n?w8d4Bz3c3++N0*JV~7c+&yKGiHceCDs9zqS8A9xenBjobC{1`v5M!M zWtp0%#$v-@@9Y=AavQMy0$bf1>~$MoNV9xt-nx`&xLU!(pn z;#c3)x?+{i-Q3DtyKkz_gt_`wkl1XMz`G9LDTDul@lSEiACHnR6*S12j9BQzhs8fQ zN*xan8$dciY**!6y~m!fbmWF&tFr&#{Eod{Ik%s(?d-9{fFl_wuHjq|<6e0Rx<}h? z@GE%4_Z`5~k35SRVwnLeK6;5IoQJMwuUczPt@nfAyboPN>;HMiuy!1L{$71NMt6Ya zVSff+WJ4Km&8qxId|-a*_`vjc%Ll3ZmilbXyo$-)QVyXW|R{1m(A zDeSk!W9=Sfkh7n>1$x@b{!-RotaxRPZ<|ZQf!C3#i`i#u6KyZSZ&LKu4ZT?b)23KV z4?>qOo8hm^w_1HGr1!)3k2+^PEa&cxZs=M0)F1gaDZljmP{886IPw{v!qv#Om=C=` zxCI~aBIDTq3d;y5x_?UiXOr&_cVhFPF5;0oXUD2KyY`0YOI0BGRxp^^3V#V?LNmdbH1B*z&SWRaum^$m12Hv7V>k3n}(y@SSf>XG|wYyHKEVA;Z+ z-Rv_mXQU(}{K$dY-0Rw}mqYk>u#a z-`8nAF)8$zZB^()A@=dq*GRy(E&|@CqMt6sr?CtDZ5rt}WlhfwV@>YVWmT)xV3Z0kv;*tf} zUFJ)^l&9jH?Fm6|m&PLL_{k>yvlHBNKL(kr^q=yc9ClqzocytNJ2yAxOS6BxE%xmQ z_L4x4Im^sme~z7If_?6V(lLpNCwDdm?M^3-<-_P;*~(7h+;*0tU$#E0{V4X(Dg%M# z$FOeRMVY0`u^DDZC;BU~8A9i>CE{aPdLC=17_b>^_%YzR2_6zWtR3GaCxwIKW+zL)&!iz)w1|FlN5$^gTr1#hbD3_|jE8+fOs;jmSCG zZ)raU_+#wVSedRyGo`|zi{A6_Ev}YNLuVs0GaWtM&Hv2zz;3|{0ch{#o&N19C z!k$GD`B#V2QO5Be>Z@TM;f}Ia$*1+?5xjywl*jo!e0v+56Sr(aG~ZXnmWi$|C61cC zT(M<#3+Kez9mVgpBkbh{9W_dM(LfU2vz_$JWzkj5+zo9%6vR|k$$7VOCw^HaHXuQ|;nYu&9jkX7hQYT}Ses z#Quso?W1{rR{-1P(3aX54?KE)x&YRbUIS0m?Wf;X5PB!QKBF;r+dU85B;OyHon#Ee zFM@~IToas4cmS=SK%!qmNBW`b+J zKYpfcJCm5xBkAtbIJd{QFnJ=pANV@H3%oyw{l~SpmJ@>~wzrvaX(9bGzkl6X?7dy= zANTY=^x!qe!aw=3yXTgXGt`e>=>JcA_wf2`*6pjIpX!ID{P2dxI!vD{O<;Kz`-;kr zq2E#Nsu6BPM|wJUVT`nMOJ4I6C)%FVK|fmpVJF_2%KSW!=Lc9rdu^WdC$~+tVNN_k z1J_We|5)@YgI%mat)KZb&?-)hsp#>|<9Tvhv)%^ENkYiz)GtdsOE z_IE;KJ0@{9sUrD%efyLyomnL=O)DSb$0-Z_LJK;@gy!^i+tIx)0|iLLI&Sk;i3wfwD|iK zF>O6uJWFi(cIq&|6~?v_p^gY^5Vfl|RL-Ujd}^FJ!oYMziP<1n)c+tb#CV!L#J?V| zeG}RNUW>nf7WC~-;-4t(SCXmpEj!N4ZXX{>3m$W3XX6t3XXu;SRoxzc6;r>;DSnFw z^GUyfzo=jNJU9i*A^c91H;jLYm-kuXpO{%k##s4wAfK|_6%tdw>92(!VehfUb7J7m zTuPrpW}D64Q1W=QEo|Je3z;=P3LBIA0dq*^&qsJq@?S9gJ8i3OyP_c-o4}s=DTCqD zeE@=OQl1{OtYJMEAKBxMyEPMBzz6D=Xy5DGQ#}wC8N}sC;q|2C(zXfbnl(&Ve@A#bY#8|jNu+$a6aOZCJ@)(z>;tWl9 z@%3$R@AQfK*<;OxePe43yk>lMjmo2|I`#aOv#efU&La-WJ;Xx4hgfFD9*hIkrPw%< zqq7Uf?wfpz^6rhN@_k)>W=$q~i&vYpA35XWuL<4emD^oi{2I=+DQ{49kw@k2Oud7* z)sz>ECyU-TGuMCHCw=1B*k)h)dE$IX9!}`AbN|WjGmvY*pNer$gJo{t+sk{l%*?u{ znzgOqm=8};x5d1>0GtR`jm>BI?Vkd_*u{xB-_)L9kUaHxUhrAiK3c?Av10B8VQ-am zeZPphyUuiZtc$U^pvr7$2QGBUN6i~&=fXF;`dRp9=KV>mHy?L>AgTllyed6nFYs@9 z<5M*;#wGg3*)_t2&DaZ;wfXV+4tueO$7ehDo{>j%;qlm~)JJz8_tAz`u1==?C@aMM z+~|(VuenBj-b8zaycf*lIsCwpHctAHOV4$A-u1>#F#moMHef%uw-wC2m+l^zB^+z4 z`#a1j7xVO?gIVZcl`&uXE3`SAZ}$jJXu_*cw9pJKczydjF@3HlujWC)?D0JZxAbz#l^zRynI2+$0*C0zK(nH8!51N~Y+J?5FNO2_ynI_rC%SDlk3Ryh z>WtBr@_6I8`?G^#T9xmU>hxsRO!7-s=+B|K>~V$bnMV!p1?w62{r`vcjMf&j7}uk% zX?_LnmVb?yNIdULxoet(Had;s6fj;PcwB3l+o!r~nI!fieedMmW-X(&ON=;j(iMNt z_#bGTkeGN{d*hrliAMk)*80Y`Uac~f?T#)rO1?0a?WIwlDXHA;Up}LhGpywE@VvhX zJO?K@YnTx0nB($zcGeAMT#42%kL7iLcm2}dX#9%tFnH}!xQ-CK2d5#ofHm{JJMXgB z{1G{(^X9R<9^S_qK)SLc3y~#0LreqcDR^~WSH9Y$1$P%~5f2_mj==YVCpKt35?CG> z8(!T@d`ovt((bHD%p7-3(*0{_bA~(DThQ;Pky}CDrF&Ub?Tw=A=4G_YK7e%A2xHQ` z%#}CFUx|&PlD(yN-va!N_?`kbWUJOQTAu_B`aI{jG)A&DNArEWhI1Lw)n(3F!{Ya| zq&e$5^j+a>ZGrI6`g-M{#77+L=vVAyb^F3;G|s#7BJvYgO&n);eNFdh+eOnT!W8(7$wyJz+BqT!Y_ud)QeU zVpDiM%R2jq@JDR4$w|%$-yTjmZ|1D`xD&-$@6Bbs$34wQS?{?t>aF)`fmwL9g3tl& zS+r|uJyOta6S}V2Qk&mYAA$X4aHD7UkB;==q-xe(GbvBrLU}BGUU`}1oiYcxv(xMM zozvZU-kj3j=%3}5ZP-)q%wJvjt`T$8(Hos}tmrUV&c&;)D&^&G^w=Z%?nx)WC&1{N z1MW7VFVml@;z%xpj-&a|LT46i5qK8eFWp{5zh89c=rD7*bZhCwu1?@!i1_^3URLDLm+V`bgPlxtCb!e*#{uN1Dm+!Kn3! z@MX9&R`6=vkELGekg>_gf;?`jz_Z1lv*uxa)VaV;-}v!3#Bp3T>@jXNnk9Nvk4sX6hZ`2Jl!@4F8l$$JuKVobHmmx4>}Z)cpd z|AhCD6Wz!%&DY{1;s-hN!z$_#e0E;Xw(@#*#&Y%S)3y}UkL@guejS4T40D$H@4>D* z9;GhPMyTNX_xKiLJS4X||I8lECG26&m0n=_SPbh;hzOGJE!JztgwR3b&;TdJJ;ke}W57Cw!y6cjfUb_@vLPjphP* z_AGm@qL&PIs7zj#dE=?R=q&ihtpWDmnqLF3pR2siyjShggSQ5_M&*(76`gkOAi7Td zZ4Mq&8P1bS&wq;dDErRR^Uoo#bO`B3f>%0N2>YXS360lQWa?=0*mp3mX^yzVq?fA< zYgjX{U3;s`1-lvhEr*^y4=)s^>AULPljqTgnTIZ=eEZ4JKK2#xoVX1C)Ce(A|KqF3 zZ}@W@c%BsSrN2WNj~1_H4k?^({z|`u*G|i9n3}IU&hHF$iw+8DLwEEFpN0DK-Qe+X z-K?wsN*&T;^7_qP`-vAT{YLA7SJAnI3y+QqY4|DWo_QVjbKsSA>TJo`D$yZ$Rk;v) zu4um9H*AK=KCUwPG>;cJ+v4b?=%aU;%#1>P)Ojz^N8NXOuzfv-OQsAEF` z&R>i)8`kG-T%rSSzl(U(PMxN+!?Eob*6-~>slMyBN#A#U?Y*)YKYP2JDXPMMG$dX8 zx>#d1w4s<=jPEwzb+Nr_tA}xU0{V=eVC5dylh{R%=}Fw9pXfQq%5CGR{iAl`Y($CW zxD(&AW?yk4O8mnmcJV><+ilInNc8DR?4+IO2F=8lT*5vYzUA*To{QsonXWl-{e0uh zgW|hFcwazok5Z4#{Q10o=i@Lvr{C14@6YP@neOjj@ms#TFVe4G#=-bp5#-ygmDDEoIQzUs_}4$w%2MzBe9O>W|haPmcZFifLAE!iiRH{7fr1ZkFZv0+i3Q z9A5yH{UdnLd918iHOGjSeeC5tX*quDUc5q$@lN&wlgOwLb0z*JtvVyEye_VP;p`_l zaM8b7__Gh(A6m1+i5c=4+5qlt7QP{MoZm8IyEYwK)9aMc*c@$q40y913g^0w*={{d ztRS8tc-P7lwOQEJj6EvxW$@obKh=*a@=ndnZ{w`}x~hk)+@@@iaK$S)s& zZtNpgr(i3*PlLF&@POB*+A_3h@c&R-*$$IfOj|MP>o0TRlFv;mYnOc!kfr#^usljw z=Hi1UcJV>Z>pX3Y|LG>5=?Pi~e;TL0zQ)_I(_63WJ}ANK;?2Dm$UIk{2nEbjMu495VO6c?a`M zc8sk();F_Hbxrd8Bb4s__Av$>#P$k<*J*Pr7lruiddDme&Fq*IW*pWJ;jb!{#ZSQ! z&FA^7E@=^O)t}b45Mv;JP5rK-{6EW%jFHAgW3;Km!NI=d#+dJ5jp(}>yGqaoZuGcHbXsl)nH04B>3+&9FY73$j91qT^a8~Wb?AjL z*LZS2LAl`Be;A%4^e@@OS+JDukohWlo(1ky*2QP%-h08HbaBC=@3UjR^lMevtI#1w z<>~om@TPOm!d)-8o9>Kb-ev^Pc=0QRi$Z+VooFq`hYO!2$w>FC&ohim-85@?1{+b` zbo}!e=SS(Ic*fwn?a^ml12M43^Pn>)nri%r@VP2`{SNpto`>~R#!2Pgrr&j0Yk82g zy8UjQ8}sE{UUdC~>Ruv^JniV=LHZK++35&tJmOh0{@5N!+kQY}Yp0z(V&1{)-oiTK z)Vnqke0?GQOM*l7oZ9Ka@mt_fT*xf(3mo3VM@VHA8_J6z+Kc@`-{4y(?>+Q=C%^Tr zm#6m3jrHOj`@`SY2)-oUVydr5ELy^FjLV~4zA&(gWa6FYGl z&#n*s%X?YxG!W}#3HOpEv3oh`BMZ{;b+CzdvV?n}lHhXbp6J}p5;Hr5rR%PB z=spQuIO!t_(plfx#64kc?c9adOu2Sq!dCHIqVlZSDrs9Z6yZA{6@rN$n8m9j{)OYzs?73ntbT~W8Q)NVNcD_F``ZJAocI%#xJiJZd!0S(p z{y6D6H{qpI#_Lav{y6D6FX5$A#_NyP22Q%pPI&2**$LmP4@Tefed#9eE0wX*DCZLU z$HWxdyw+ljn1>b`&Vk~O)@qXNlN>*u=i-jAGel_YK4Ik|nNB@wn96ad-U+pS&4BCueS3yaGKy zGNib3VB-zW?{TRs_$@iQk9xN<9$LHg;a_tTx+uI=DjN3A?Rqg#J6Wr>UynXC2VK@@ za?K-L+eQ1x3woMIW2=oJH%nccVnZyDh>UFPY5s=Kxi`G|8-AV<-UB`D734eF z_>gV3$=@B0|H|*td7@v!rlse#cCHk7g8AQL_+16;2OJ+2Yxy$lRWDS9)BfQ$v2s4k zx#jV#3!p=lzncCOo>hv|ewKJam1cbF41W8{iLIw|m}hC;tW1O$cj4%Lbm<7be)y}F z6FUmuWyK|!m|9GI8RQDM#+R!BJN)F<4?bzEf+a>eYrP(vWVWl0@{T|vKHkplv5ONzec>~?3K?3&$KgC)@aS> zt^3rr+RG#ZZHBfou|Qjf_3CHx@I^W654>|`x9?3=npY@z5e`_{&;lspy&X6 zig*0f+s%G;rZD%XRi@ zuP+FE4sAfA&~c1&hw6jc;m*W#oS6MF;{S&@uNmV08f${d8Ggqb?Z?bKQyR{i$KrR} ztHRSv+lC+6tD1I((;K)eU;}prl*31y0h`@~Zl9R=t1h%3^U=r9 zUG^%AKE`Ns9Bs+&vVvz2I1A_NLV8lab^f_>O2zexk*7XrPk2wPIB^wqTOoY;kiqyX zIKJzDhn6J^)`1(#a%DkqT4ob6z9x(8%|4`aVa3c3WvN=^HZeA5i)Ops(s!{{C(%ztBWlwoeuU)HA>@7K9oF(^ z$P@P+!@p{`jl{5a`-*Yq5iC#`w;&t?D%vOpj78V2hq3YHYY~xQ_eiE z_yZT;hTOzn_EXL(HxpZtkI&jLg&gw76whB6@4lIPY|~S*3b)PAYja=f3%!JjK*XZhNwNA9}Xrb)l>d(ynB+ z`l32Rv&^x=cO2Lhqv(g}fsLP||M!!wvC|lO>j_6UDHy-YrUnvfcPaHqcUa>0&ESkK z@r@gL?%isoH$G%>#(F~ay$@Sy;qty0O|Fn0JX)CY1p87?IrmS$k(6E$t#R~<`7vkh zfKF0@KB74Et}W1m$16XQ^3M6^{{y|z_fl}VN-Ki3%x>mN=??tZ9%@qdb$H9nwNV~#=EN&IM79y+rhUJ z`(qHkWs{QJX`1BnMKG_oE(CV@Q+s;T(*MlkguTUhDAxE}>C5268+XsP<>hbqxto6{ z_dO~9FY@_i(>;Q}|8#IrFFdfG8-{H2Sj94r2iUekcy+(O>X)TMD~i4ISQPg+v=;%eWFG|``B z-QF0Xod|kN1RX{)z|+sYzKORj;2HWo`Z)Wuopz49=(fwo79Bl!zxD)Z&Vh}yDE))_ z|8vFrOsVgIkqdfctHp*<)58A2dU!T=A~X~A9}G7jzmXRP{WDk|Xv3B;XrHAC{qzcz zL2n3=r)g}U?K@KQvPId7tHeHW#*zj>~=dihi)put8c%AxIg)rRv~`xxQsF3&gJN*@D(`2%+k1K zIXkMg&5C+=-8GT1QS9#MLOZ?klP2xhb>+K9Y>69)AtTxOch;cnccxdPe+Ka{i(Y`f zfUccEmu_xZ&=Zzk+<`8E|4toxL>ONV8+{t!&+SwUfSiUhS7ei@@h!H!5-EBI($ZQ=&)FBD~Z1 z8gcY(&d|O_?EjYU;R}8$@!E!EE+g(hN;D`u#LexEqQ$kGe+dDH?k^Png0Dr=tAA}d z_V6Hmti-+-U2GOVj=xxx{%H;tZ|dBvN5O} zHOC82&z|bq6V#5zMdPEf(OGYeh0*;ZXQR8YS2rBKJ_rp*-{O8&@=szOjpp_53z1#= zX8ZZZTy9IxTw&7lE5kikP8ri-&am4?U~e)g$#Z?g*0IJE*WIF%V7=r zh4jEt#LiWJm!OYdPWgJuSzAUWik=^ph)KV|e)LPp8?Bu#(3vV)ZhmlHZIE+qS0PWN z?=?w&K!=|E=tO?VRwntOc}%=}T7}u5c-G?4rha0QL&s4c?fh+c3;w*ZUs zHZN;nj+1Y1plv1k#j8IQ-%L)u$upK6nAJSl&1X}$Cl3}P53`cx|Lw}2*xm`mEe)sb zy#upXBOhjB`)kJTW9`z~XL9Nk#s7L`V2)^8wwA4JF~{y34!XJ&vZ=HezLR{CY^tZc zGf%KKLq_CuUjGWt*hPUkjGaU=f$9wRoO7>vc50-y5}6#G2|UOpbD}9#zoYP6Qy%tU z0qm{JCz(@@z@B`@g+2NVV*w7Mz%Q5u(;fH&IktQF{f4gyFJ-9^zrVoz?ZH|BtZSM7 z`ud352%dwlg|&8>70hxbQ}Yur?F+S+`i!6bhLvwcDlT08OZ2fyv*NA(P-m$zz7ikb zis2)h_SLReckngo7E=!E<*pv=+D@CmMQ|nOWPUL)Yie>-;$`Mq`Q`3E-PzxF)<1t? z-iVglb7PVXjBzJt$h~p~nhdV=rBMQt{-7iJ`sF=+9jJW$H5n+yC$kcMN0C z`~oy9ylk1^>Xe2vLPx{zI^rdSdR;lz`Q;-zV&PcNXRNiir~1B`uP-_2lGQPMG(SXF zS6?1xP3Pf3v3Eo}oXTq4jJy>MdG(!2T@l7ab%pczYy6qUYRbo~NnQN)?PLx3_`q!8 zTeef#|C}~{GPr)NH&ws(tUX%%^>DL6d>ExY$)7rW)$pjBv_$qR{B1R_C8wC#lF?D( zP&(^*zKe%7N4&}&kN8)yXru#7gNF@uiGM}o*3I?lZqCz)p5#-nzRkj~e)r?>k>guF z**R-VJk^cP+(G*x?zPs~I=TQnZ5Zz$JYCMX36E+w=;FsYJ0d#&B7M@BXR%|n0Oym$ z9)Ok{cx_^c@8a9kt-Lc|WRa`8h_gBMA>PGbddJss>chM<4`>f~7x6l$KFYgv5514& zeH-t{_bl>s7jZwQKF0eL()G?h-P9*|m)u5%?qYv#YKHe|r0YG%`)=Nm$LMd1cTMAc z5AP?E&U!v~k&b?>Am*6$IXwKsEq{vXH_@)$E^ zVTg6SeVds<-)CzM7mhTKFJV5F45|V*(N@-quMcc*XCF_rvH#}5w6TG8t7xN%yh>l% z>ZXg9!oef5?d#-|txI`!e+^%g%h4f;)oL>yw!`DDyt$4unN56aVr=^J{5BU_)7VA% zUMQP%ezT9ZFQ8wdk0#zFn`)3#9^Yu5(K&`b>CDhlC|~#fBy_uF%&~%T(sNc?aA}<; zzFGpT@1U0xvj;uUIqSZcwdkXfU~OU#bt_gBaw%xaX1$I1cA>P2l}r*YaB9^73{_^7QbcwLhrUr zd!yzm>88eX;;$Q@6kUk@`n$e#M;>pr_#@cE4%P@a9B|%nC-l+pjpKuZVWx}QCZu(}{#S8eh6WY@E zz~;f_hUMGbOP)fR-Yvvd z_h#yoZV#_+6CGIKNcIT9srHm7GJ*L0`)oSxz}FL9%MyqK5{dL zZyalQYZZQKz^1&=sWXqf%i6+Qx2x<@?E@x*311m&c=oJC|4FSGpaaohVSb&T>b~A2 z9)mea=URaUN<{gCFQKV6k9sco*Z+p69e*7lJ)sGoKpb@nJ}w;%Y_ zZU=1|?u7ikgNwYcY~D}IOlOW!>__$+Y{t-lv*;=A??d3&89U^ie1CFl;1g^%>-Zi$ z4m}B2-*W0q9loPX{(QozYajNdR)X7R@EZ47;MMo~9%Q!YN@E=BxqYwovYnHj6$-{S zEx}LkA=1mo0|)br_DR*(_lZ?9@OhIq_-o2m(!ayBDc&4%v~3=+uo0ZH8Izjfj3sUL z@uxZs^M@BpNq*(b`OI@i&eI)Q^MYeLR+{o1q%SHj8K(Qk4^Xecf0}PS*&@@Uc;(q5 zi)VzVk7qqkKhFl9fgZIRWgG{-irt|ax(AQ!;cnAfQMRzZfa3sl55sSum$7QbW~24v zPUBmbWL}nkeb>(5>+DtO?8NeCdCIQSRb}2h37?sM>a&XNySFpOhPz6)w0|Pe#65)d z%XCkWzdB4zLFMpF6sK7IR3Ft> z_0j8}`X%4B4fL}KTi?Zb+)ECB3;b&=+KhpxC!{Xc802GNB}j|=%(~;LSMbT7Q~hvY z17@ojdp&(!x~zF_cd&O-2pF4|Rn2XpZ!Ybb*B_=m;Z9==9B-b--lPSde8MSx)p%_O z55mFbD!bNCf7jx_gDhH%9ecYQlXOyQa+~XKLVFIKiY~vvH}Y*$KfFF&0n8!pGr1M{ zfD&F_7cf6G$Q2*;^8L5+lZt|8ou$zHm*g)J4RMw>nCNb1KLcFcxB3VUwC=Bf-UpDW zFY#Nr`blBgEOuPV_AQAuew}jar_PZa_QA#;cB+fN<&OZ9=2*!P&#zB+J4q&9@Gkp_ z1MYd!4F0^b?>3QN=S+cdmga1)+(Yk5$1YD@b_}`!bd(;x~UquitOTE^RoWat=gaGzk5Df{dHFD*H*c7l*P|S z@{SuFa?kKB2p%2TPW(90zvmaAK6!m!ls1UUad&A@r-y zfqT{r3q9Ia+g^DKn7w_1S)Gye27C`^-5yD+|F2S~dJdRc5j7QfO+n({p*Qf-m8P z<dcilL1i9Gw$1BaT+DAAKx!Z*;G=zU>*Qd<#udznH?NoEoQs!xV2dl5RGM4^o z09^)p3&ZPYLvy>$uywu5j-MNbe?lK#_NJE%aGq6Ec$*ZpV)- zz#ei_sbVdStG4O;68bG1-ib_99bx7?J>26h|Ds3OLpL+cMWLDO_xMK65RVDY zmsvlGhq_rC`gz`Vlk2;mB^H8ZCYIRHiTq!`2HctpR97+cpvpccJ4e2p>R3ft(X?o2 z6t)_{t}_5Z{B!EKWBY5|i$c8Lg*Veb;o^byu}S;s6FV_=ToJX)&zG6jD(zB*U^ zt84G813!4{R_OXg-R(qs+h|WPs;wq?dqm<2bQkVMt@e|z1sa?R4Z6PUZ;_$ecXQ#Mz_P-r;TVYYXtoAL>eILHnCc zz#62#OZ`P9E!5S?xd82XX3<~QqL+j|1{bbf@kvMD7Cy#36iF{4292|BfR;+ERYPeT9I82O~uiJy*cF}>J<$L zhwoq)!!Fk--6d#@ySFsYat(?ATu24U< zHqv}i1MkI8Mz-PiCwi1G>{cK5RU-#vL+C(vS_^-56hV8X?VIiyd(R}DFKeRCcD|{< zTYbKgj#Bgp`r3(}b*s;=9Y!Am=niZCc79JAJ~^v4p&QcQO5~d#`8HvdKRp3GEjBuH z#=G3n8*Tr_y!d9jt-T7Kyak{06L@YiIjcO-#=5?>*O6DniKd8fU4L*6d*kp#?l?nCkoc;oIl!Uobeo} zamVnT8}d3SI(=WI$z^Ca$=X`>k$0cxj2YtNHF_=cjaN7gt%eg zxS zVLfWsR>3oV?8826#sTcYEibKlzS;JrA|{Zk3XrE5{TuqMg4X@meSO%11FT;M~Vj+8!S7~pd3u&z*d}Sna zPcXA@Es`vj&!7`ev9SZX5dA&K8as*ntpwlCGT&={jcfmmyt0{b9@mL?^X>)2Uziq7 z@5gSv)@NSd!+fsx`rhVVIR1tKUr6}E4`2uTz)8l=ibWjVDvG~F2%iJWy%`(3=>1~K z#yJ<;r@Ogi6DwwY+!C&B;=S*xaP7X$pp!mpS&f^IdhyoG6VA7|)QH|^i8ar)@I{gOkI@Oduz^>B~ox$cuS zE+!E**asb69G5yNU;ldQ7d>aF%W!wleblYkpe}5V%`)}!`|i3h%UweUSa+AfQ*p*~ zJ25h2w6l+I$1{$yn?TQweMs;|%s9t3q_O=6IuqyYTD#GUy!JNbW%owf{J4H>AvVCY z)$E6AUrV-yeB6ewKx5il(B08G-`7Oj@oJO)-*B?sSGKMTo99ko@$jd+f7Hg-6~ul} zzeA24@~+*w>#Lx>Cfbt?T=4>3zc3d!Z-5)MukX2fY<-KsBV*jp-Gz17_;l7G0?uQs z1+sbCW!-p~b`5lkta0>9-*nCQ-02N`2e?aPTrjqGy)oO*g%?*~bF$&R7& z*`0c?#oo>wV8a`y(QkC!yCtKprw_8@i8k8!&iczaV|$Rh5@k2lxQYgr-ZFU1_p>HZ zTF9-daV}5K2IT1!@A!wMjP2?Py4%Lujjjw2<8zhnFb8X_WIZy--x@;qZ-!TQXCL5(*$;e*rFwi`1;U8|DXmXDMx84n~ zbFY1?#d*mnu)oV#N+$~LJFBhx3u6~mZCQv;p1G_Y8&kYUzPF~Wf4*JYj-PHnb4EM& zI(3akSF0lZ1k%TwwkWc*61_0WnpW~d@#1vfj_B>WM_j)@$B%=2`x!gw=jxC2_npia z2K-6J9StO+{D9<2BkGb7V{*ZZ)Tc*aub&#$Al9JBi6M$U9;MDi$}mqnLBCxTz{C=7h7iCqAkcXu(qcjU`$jeNA+xs>zTd4qh& z0pvP+w&(^K|B@Gqdp=5UqBYTi);Q(&x${wgdC^{fD&vP|F6-qCO3k@CgEygd7i&D}3Ex6rt>a!L!yW}P zZaM4hLG^fcZ_oBuw}7}o&|T~l&bDlh;DeXBjPpCKvY`ua|N1BEAik>{bsj6-P-oGj zn|PcjV=BP*LA9Fc=zmpt#w7}o<@3^sp@a3-&&JWXO#J<~EJ2Hn0 z_qxNy!?$8f|2uW=z)xfQ-mXa=K6Lg-c5m;!+v(dR#ZxW4i2UAn-MQ`RyY6{=jrTa# zgWHSjyNT=lrufl%AObzRaq|1nTZWBsZQWt^U1FT!VDDzOaMQla#Z3~Mz+(C=y)1~$ z)~4S#_~6G8rdBwJjyH*R#z1Sd=F!B&=65rEyf%*;`3^@pJD|L)^WQY5d*{!$P`~hX z8~Bn9EJz#z=}W?w_)24VL|?)epL_0);Hx|}3K|G9Rx!ri$9%_HinVlEs)V+r8?Yzp z`1us$UeweueL9ts}8Fs}fH8fUM0d}=cJ1jpO>Rtq;RnNK7d*u!oI58Zhjo}fI8 zh33rXuXpJZcn;f$T>FqKD;)f?r>%ObPIT`)xzulRh50?Y_T+)e?B_lhm5CIzt2T$z zwugWDddub-=B~Z}U`!6b2S+5d--fL%h3wg88r(Qbl9|EB@F8Rm-CP~c>D{od(^L32 z3*2w|t-rx@x%Slk&OVOhpYBG{+$;OI^q*gX@9~mNjNJ>|j}9MgOR`s^Z+d^(SKj(1 zmn&g?{)AM4O-PJ&-_pK2NXRQv3wR7*cOVa3446`XUnn6oxe zCdBE1=Y58q{MDa%J8r^GjrVslXk=QV`a0PuiY z?f?w*oMyP|`zn*ZjCtm=I#c={J~fXQnVSBqxc9;DYaPKJr{_;U7vC$%yN>*LtX*j3 zmNF)?Rb1vr-vXaypRkeboMoZ>3yj0>eUlch;2b4)MVBxaFFy&{xPo~>zAFKEPxq*H z`O90SkN5efIAgI3de<6e2{A!5XT8JsC~eI-#GT20yY>LK7va5*`LLHY040le~^(_)R{DX*OBQ(b2klvmlpGVc*f z*Nin6`EIrrMWD^fW%%3U(`o!yecP0nM4USIjSie2tgJY{{$}5z&>cI^ke*MR^DlEx z$N4d}(b;`|5%)6d_cXo_yKCne(vzB}Y&qYWl03hq^SkGp&cB==>D+pLsPmQc>(Fn7 ztA>@wm7?F4Mgmj5V6VL8?qHze3mrH6Co>nVYhnyuz;?gH1X{D`o)wH|4RrA`{#Q2k z?uxOz1NY0NoF^duUquD)6}(R(UGJQ8tl@s>m#av}ufAeB@6&m&CSC97c{SMgUp|F& z?p3Rp%llm3Pa|FLHt#m?5z;wdUa^4p1-zd_y52A3{X*XHInUtlUU4b!m-3E1UViZv zQQo7xH+lpnpFXR17r0e}U-mf!E3j-4Z`7!JF2e>mGAC~;MJ;yrG8+UKq8eQSe#A@63CC5KE5CgOzk6Bpc=52-;zRf>^23h|Ll4{Lw_}Y{4YncPwZ?BjW=zGN zDj6ra5yZY;hizT7+I^TtdL8{v@A@vfk!;+JoRF-D=jqdfcPsD;PA~43*O$(d^EAy< zWj5vW$p=(ESe>7CeU-%fva_nbCHOpA@N*SBA3^`qc@4=3?QK=z2iZ=%6!Ev_*aMTX zIdX^B?W|j5v$DCb?Eri%xp@HoErNIdu>6S3gcn~AQn%KWOPDLQhwaK%-my8zcf#va zLygN*efhq&0=xK7{S+@Bn2fHBY?WT_`Fg2r=P5_{*eiQ^zO3@Ad|{bR{P}#)ftS~7 z{{qVNv8Fs)8L$1!IaUrmz>)8Tb*hft?3GCd^i#LaK}+s=f1;J8P4UJE{+059>tr9^kIXN5Q!v zkGDVU=Qrbtz1!E?O?lNfmA@s(gQ!y4`~uZTJy zjLk?iu)cX28VPoqgAV>obs_>Ex0qWu9ZM{!EH;&W%$?HR@65O7^=<#uSmRE748!Od zg*f;pb4DQ!JpNh|V_%PXz_-{+3tkf)mRL!DHLhNr(?mN}%#D)=*ZIdGbrz0?`g6GM z;(XmR1BrhhQuqG3Zr$M_b?+KdxBLNHPIJfC)Bo3lw-u2Yi6HAw>En*Q8@(yc`vC3S zv(w0zI<q<^ zyMyf0`}SE*oEpw&R^P+AfpbI5%iLX$KKt&e*a>gKHcj1Y&*TisrpRi;y2R_h`na#o z?PF5)lP~r-HsW3AVPoyw?bk^*l%=NH@H%ouxX6(2C#nzIuUar8&) z#Ld34g%){lV?5pkhJEm!+07Zo>yOa0xfHu^;XCP-D+Z@eE_^3_N8vl=e^&TTx^U#t zljK}V_DfQc<2j=r_O{0McTVEDhkB-o9;w+85_LM2l{XMNI?AeVrIsDXf{{#>HPj%5=5IPx(v(C%m zO}<-0Wb)ILH%G~@{uIKaHibVACXMBE=(e)F+_A$P3yjYIqqE0@-XJ(V7%!s@ttXSf zrZrREM?IzeuA{*kSmMGO9|CLgV_+2>dHa1Dn>oP3{MFj@fotDsryap17}oMza^JK0 zEy}|nf31)77y2md@89X4*Wce=JFxMtkLmAm`Tj1WZnfjiGi534w@2;o?k2at;UWE9 z`f>e*M+*D+&4zqV3W4B^#M_Oy!Cic45`h2f9-`&3H zMbRTT@?tW&^6_KJZ^)OwaOC0gdyZ1x*xXr_mm!iLKPZ$>TL<%>x$sC{hhLFDgXG&2 zgY#Rqm5$IC-&W(uCDp&<+9UGLy35rsRhLuWU9NuNy;}k7vlr^_U*f28_wQj}1n^{_ z;j;UPp$N~dxXjL#@sth_#m`*2Ov82Ptnf{Uzi+T+8;UpKdFZz+uo~(V@0i7TpK;^% z2_AIp1cfxH_?F^3jg#o`ATce)KdN^;u>+#m!{hu(o@xzgL9a>+8YiwquBphegAij~ zd&cYww%fTI_>0juW0xeF6@;UW!hEi$G=)zw9>&T~==pOwU@L{5&KV&QP7x;fjd-wRLs;mEh zpGm-Qkz#;=c*#tl3aRyiTouhpz)O`@jZ`i5DU*P$728UoYC+9OK&xW=IEdQDwoDMM znMa>e8r1RImf=$C^Vs%_u~KXMlnLOaqAlQ!!ApMc&pzj5P6GDn>-YU*UbD}>uD$l! zYpuQZ+Ix?}CkR+e(P4GhdX^{H2V3h}Qt@JZ?E$5vx( zKLo?Pc(JWGZ6)c)@@007x^3stKF*xcep_Svv|;hu;^$F+!+fL3C%dY%wl3SiUZZg2 ztc_(gzpDr*#^K8{-DJag9^(IS`IWaalGjkD^n2-M!pm;PrDhvzaBMlcFQg{T`T%=^ z?9(;Ruoh>JwC1;*>t(HM{(?WtUwqzF!7WKvQwVJi8Qz>ii_OdMjPpd(XO>6&SIp@cK!@Q{TUEDqYqUL-oBUo!D zIt$~(k7YFT~>MU%dT(j%LSr{=pl|>r}AQFq4u+GH35t>i!idT-1gA6Pp8u7 zC#PP;rQ7M-<16$gtKhA=@i?n*&b{4Pm}89k0ej7L&O&4a_Jn?!5aylCfAwwH)9j_v zmuQ;q=0(@4&%JPH+O0QvS>?6(yV1*j$UM3AE-(AO{uwi!@w(OXvhV4CxtA3mzx8(Z zD)oPt#OpwIHt7hEL<7C(hjE{GT_5^M_n{y3XU3^K!9Tvd&uZ=C{$cfK zGt}oT@&&-Y;pgFB`u4}=Rr@{r4_ErSgvPjM{{h<9x8_1fvpxBfhsjS{ee>s`?;f29 z+nCO{Fs@d&^xz3=(f8z2^J(Zdw08~rn!i?(Y?Gc4+G+$x-*2_I3*AO=sht?M70ugH zXd}MdJrL-t^^YHCRxw9AZl^u;q3RsxXikUT(MPJIy6Wyn(I?Oo+WN?i2D!BdYa1 z7k|!K`0cD_FDTExq1FF_^EJ`EIE6LNvKeYWA>0dE9Xoo@s{ZD=RpmcuRr%HIM}1r! zQF;yW;`a|77`zBa+T+AODZoc8GkR@Zb_8Q~`>#2_1U@h4_b%&@5^*08438K08D@}G;n&O4N|*9?K5!PE5JAU`JF z2Hn0nzC!hN9j1Q0fk1!ichG->KJXH{iRy&UZ!_^vr^52)&&)k%>f|t9_rKZmMbw|8 zeq)Zd=W0T{Msc2teSDfZg7;Tv@&2miD}hbmFykg1`Sal^YYWq!7k7zdjH@|p=Y0?E z!@V=zdE_!DE7z80TWBYgyP>>g&$8O%j;FVW7CmPlx`uEEIKI7U z@&|U`ZCkhcI_nztD-x_NzD|3p7e2;0ZJpyk*7{c7m4Tl!7GD5A@e=qy|2hjU82iqb zUS|UEhjHKUo+vqZA#+#rgFUSc(wBGt%5S@hb%@#)OrN9uPlBfg%E{lTfj-q1_z!T^ zrF%|+qxmQ3)7%4}fQE$|hp~?0=OkpOg%>$7)$Y0fb2tT0X#meo?t2d5Q6I+x)Bn~_ zmDieT_a^x4r;6oA+p@>@yd!%Cc*Jjar0P@Mo3HuT>R$Wwp|~ocZuwxTpXkAp9C)_b z%ibwtC;FERi=#92m7O*}c@xOV82QBqWUC1COZMl7t)3H!o^dYVxtz+vUl1{+D_47i32|yk$Hi+=;7}nx{Fgs z$a_S0i6iiv!Mp&NV0H`>As~!--#fFqVb4p=$(Zl=|#dNMG@J zWYFHK-tE0l9btPdfA!ldS9|vz+TH=^bnyhud6a{WcfJQon;5~9hVcIEcb0*;^&m> zJcIY1LDS-J zJF|&L&nrBvbk4ANM?~u_HF$f7@<9GS+LbcJpn$B>tO}7khZ^{t< z6~C2Eb{}viTcO<{rlaYjf$d%0-P`i~nm!uTp2&?%nOud=UlkT%8&o(N^F`CsfPnwsqPoPfpHa`ewI76E~ekf zr%fS;oP}1_nRs<-59!!=3+~V$E?J#=MRC^yD>$?H($%Rh#Vs)f4?X1TqSHGGqj!ch zE&5&z?B18*{nxQaeGBaj9W~kLe#rZTkJ0VP&Hb%EONwO@qs)joQ>xG6Z!qY zACv};vaxRT;WATDo_)$w;S}=7?grXyVP1;IE5FSfPw!XWxQS&1OVjTS_u!l1dLLwL zX>+~RCjz_e8Q@W6L)r~#^+90ooA(s*Dxd7*ui;-2mQnez9Qw4aRMer7pzyN2~t zB513U@`~?Uuj(5W)UEjw)+HFWzKgzq?i1EAgnZf?5v`1UBd{m3_Y$V7u72eCEqPRa z_j{B-zL@?I<1OEZWb6n#e%ql-jo+v7^GVkEanA*DZ{XXrBB*En0d#;!J#SEtbn}l` zU&`LDvjMg}@-;^C?IhpNNpogHLy`IKT+!$I_5tm^(l2(hv0oJPXutS|t0VSj^pj@? z758stcl%A``@^MASbe0s>8SB>=1x@{J>T=!o8lqEU9Wzwxp}{M&8qU|(PsG!yFQct zBK;(JjOjRod2o<3j)`NrpZvC&Hf|bmtk0@#+{x$az9&TIkZ@w8$o(YZC19g0s1cI`yOvj*MkA>*~aU9ze*xf5H1^1Q;l3({7_yw+P|x3+$(OltyneL6O( zdXn)v|DyHV0{hNtX9G3}jrluAtZv=G+M_LY^ZH3c?`>`7U%r+P#+ueo9J;Et(&6q| z!foc}^}~-^)!Ibbx5#&U?3VR4q&>*L;^$JA;#c=?+W*O+x3W$)6CdK;mM+?ToL`b3 zcUdpKN*9A{Nd(#$A#|=a-+@O~`oR z-9Zm{`JVpF{bMtCLGuSoMpk<#axU$jbK5=MlD>_zI4_yw%KvDNE^lT`l<#HT6HnP1 z)3pD+^3|iSf&a+{^fEq)X~|jcE$&BMFLT~UcYSOBOJ(BZ^H^&tpFu7g;}&w{KbiTl zlRMG6PLHLQ!IzbOkhAys6`b|pZoAS^moC}FTCO>UoiDa@{gcMYH2r&Q;b7u6@I9IO zE0g^f=J}S-!V~XwPaIXU1l%oIpP{eG|8xtlau4onCw^jlH++*bB@3c-w)2VAqhDR* zl77+nKSGDz8{Hd3SC-zuU;NGP4LYZ{f&1-rCNH@%sBbA}-Gcg5{(b6sZK<2RP7>=d$2Gsg`Ig_^y`cs=FR*W+xpo41CSL8s zo~OP%bMjc?{_zz*?p@-J<9jsYqBF@O2n!d&OEY7>3S5jTxoN${8{gYwH$h)Z)?d!u zgd51as{c~^{Q=>kep2*b5BD+?u5aJcI!5oocQ*|fFTOJQFSYG;PTAyF8Fy?4nKWp##x_=qCdW>^vPC${5bWK{Gr0FWsNV zMwvW;eNAXGSq1CjQzu8)F`=zXGG*(OW`9o=-`g(sskG)^2uy~04p*k)!&44{Bgs9& z7LI^^^Q@m#kF9^2Uw_>=zy3Kv-PW!iI91 z5S>@AdcflzDqlYPZx=RFhat@w;dRzcmHka`tv0u6KhMhNvwRp^uwT>yr(i$chqE(U zkKi3Mlrw%Fc6jK>TkICj0pH>iG5l5AZo2uNMDCN%HV<}Ihz4toFBfOT%#>w}t@n&u zKql0uIWw$%nVIJ_+dFWzzUyL7IK-LOKOaF;jAduIHzS$rUEvl!sq&n2@TN2O3A=>f z>@^?yzF&!d6tGBs>V328g$r;94hpT{(bZddiUTi|vKNfxEi3ww%*CJGGQ_M%p3fRb z`r9n%J|eY{}wB=7ExxEVI!CPNnj>Y|1e}I!X zxZn)dLJxkn0lYS|ZkBIc!)Slp!!c8S(S!1CV(gnM4xdkXqIk5l)62$zA3$T#r?(ls zG@zrqHD+f9v=hz+&7IPD#rzF@@}F{;{JSIhoxny3UD*1^^qFgn0e9OEUYG+%;@i;0 zY~9VC*0|Jzg2)9vpB|gK61^fKm&;-lZu`5{}yF!*)oUw1n4-VAo_-3lIZw}iQie%UD=A-b=n zkNPLRzKZxZ?Cdk)70^LP^AO$y%q2q&HW^N4%>fIk zSs(S))4r$WAK)hkJ{#zt_z2;F#JXq^-iDJCmlZDi~lhfdwoCo@%&KZZAe!?lIYo?%wrwWk%rISgPi+CKeNhf zkuSH&+=CB{#~m5qabmIx`&is5@Rmiv9gFRwiZFXd?#29H#y@*NP4$H9;DbBsvh!Z4 z%epT3_!9JYCI3tKzmfm@_+Q2Udj8k(|9k#_%m3^AzsA4pfu+=gozT6OJI(U3tZN3P zn!fH78e)S|Gj_+aH@;})Nws9lChYMV%Qf6L)zHW?Ne0FVC zzH`X*1>!~XuqUMJW2yP~pkD+s@D}E|{KPd^9<+A_jL6*kltGsEmT}Fg=K3V%v2)#B zXHH7xnGe|8quRM?fbF z=^R~;H=c%n(_!8=^p{Rq^g&IGm0jBR&(!>zf17Ww*~xhrhw~Mho2}5l<^yAbpPR2& zD(~`J1KUnjG4H>VSGuKWJ_=74e8hpjg)k*fLa#yA3Kr(Dg)eV?a?ndgE1wUS+LIrW z^6CCc(|yAfrAe-aun0!MGxkbfmyNOa)r?MgEwBjY5FY3J-t*1L^}%nhH-29QFY?RL zI|5oi@50Y#XUP%7asLkO?=I<|SrHj86YrmT;>*SH)AuJL>Hn-gH>mH1NPgp%q#lgc z$M^g5iuDVIUi1O|M88A)hx-W9kwjyf2k$_mi-*AHqCO)bzk54w_P*LwcF0p7WKABc5A9dz^C+H4a2GEF_b+Pi7grP3u_bV>Cknx=IR z>#h5B*S?2-r*G~Gu>L736Sp#Gc!u@X{gs@Zi=%_7e)&q}_}98XWp=zJeu5th<2RrA z?6Th~T9VvL^6kmC!*?^^SMr_wPHuT*tyb~3;h7%+Px=C64&U&}Ua&{cx`bu_7L?sc znXnJhe1cVT>u_mdzt;Yz&wte41pS>A^wHY)7~eEFl@2J}3MSP@y`ABl?Ug?3&~yix z8s-(fIAz7XO8ec>Cw*}5bkSEAG+Z5}55Di?o@ABpp^s2MLZ=n1e+QRMF?a=hHyrn9 ze)08Md{08&ekSX@BzIOMAFj(boy%TThTj}?CE^;9KPBeQ`uXS{j=9U;ySExXQ-`jT z7`klqSnyoJnx^pN)-! zTF`Gd^A;m{@t zPC99GaL15KT#UA??nwA_YKN}?3iB`jQMQ+Gq$Sp zXx_L;?)Ss*&LbXOP4OolAYAT;_bPt0AAVEe{+!tPR?{s(kj(qZyRa{2+M3!r8eiX4 zxHl`tJGBky&@+d-?PG_V_PW7(cbWUgHp15*rrZ|(e{2fBP(SBTKQ!k2hPAD1VVA~I z_W}Pj@DaPGmUA5y8R!1m?95Ng|3SX(BQg#D?PSBXz*1=X#;4#RFPl@EZaEJB)QU{^ zM>XuPjL2-oe=NWG_z#p<`@jkMn;htT_;t#d@6;Ae78UHdB0{(VltL(Yk> zRFRe-?}duzTX~c6UBPcnyhc6&miGiahjseI7-^za8~@~ag*w)^bD4X3m$KmulU;=! zIh@Oy*K5I<`A+UE&XU~Ln#lJp-D>TA`d0dzlwAg_V<%%DkgYgax8K84vl>a8e-V)Zk z@MHX`vJL!e94CO+JaQ6It{A`jj#?QzT-w=Nb_;H)~F=6oyuL3-c z22XSNt}q|oQFY$<#?hwmozdryzqR}`i1A+;T{ixz@&V(U8u3Lz zmNh;c%YK1&JnR7;Z9Fc1_9atr@z?O+?TY)E;u=jM&3y6Tm3j2IM~Ty3l;)89=#sxT zg@O1$%z-Z7C4MUZ!WH8M{zhc*aXxAVWjyATzW+j)^y)BuF8AD@gp3Yp)~7|^ew`TX z%jRZezvhqd8Om!98Nzy^LwZ6puu8wY6<((JZ#X_rGr%i5gU;uvtmub#Gws`&!fhU& zJg>2c_pgBu`G{7cSB3D1c8`hpWQ4Y4*$h(jRrM;5@*hP$ty?9(8<-2?z1k~@zjn@t z4s$+~-3jKnGs+ZVQ`z5lOF!6%eM5Q??>$+)D3l#{aE>t4?_?hc%RA~fI8obSUey`e z1n?QU|DUCY@LAa2=mQ(}cfrO@M;5m42e5s)4{VLVCOrMi@KNtSg)fpG))}rNw1zmB z_W#ECBxAlU%mW8+Gwzx*;tiYO-HkE3W(eLQi3NPkw|(gR*LY}8I|-B%r1$#TOzr)>ySsZ`$sn(Oxj80Pm|HyWDR^Z6A9`BRmqhg&0ER=?z(HHfAC4>RRwP%nWGYB*q{XGo~F>RG;3G!->u8x(cUTc zt)?#aIknCiDOm_DhO#2OL#2iKuDWIDur1Ki{9DR~X?}L?GN~_{*os%UtJ&TeU&;H^ z+z-B!|4X^cM*nq#@pUEr^T6c-m+EnVM|@55pf;CS(F~rWa>c@i?deZ_WB`Xy_ug~o ztnAOZ-x7MRj?VvOvI)TtIO&`YO$n#oorANoKlIREu%3ESI>8cCcwGPR#}571nZkPg!~4Sd zC!H>w4=tS8G+*-PzGzrF+bZA`onGO$r}GYU9pAz)d7Xcxu7=Hyl?x5vE!i2%YHt4z z^VrVuh`mSmZf>Q1E6;lX>x*_U9^*XJj|%_WJ~3f zO|cPsYS}lmbQak!J6t}8z5KrUeEdDtzL~XE=tC^s_XhCymc^gX!zE{g-+tgyvdF`a z>MiDka4DS1*Q!N0?SI|@(d4EU_c7+mvzrI9UIia%@Y}}wVY%b&y+VaG15LKA#XRQG z*D}f}o;NGGGkIovTNQV&ZXTG*V(WI1CquzS`UGU+Xw$Lj1Y{6=D@VD9CC`alL!9E> z;ieFWC#OkU9i+7>|4`L?PJ0_`VzoDpKBP}Z?vBI{eu95@eFwDg)aJ6(`}8?I!4z`W zu$O#|$qGMLF>bqfA8_|rbY=RM=8mfb|5s5L@~^Otwyx^$=UI*}R>z!3$0K>qDDCZ!5GOsB2FVzl!k} z4a_YWz9(VtmKc#ar5hYp*A_OiC$aGar{J=m!R=DnF8b3_?bY8e99Cm@B7PJ3HlJKu zxP`bJ|LK#le@wtPje8t(*Z5`Dpo`wAG853X(N8v!zIk$OVWG_}5K#6KlFPbxxt}T;QWF z-eXGb0&cA{8o{M-eL473ne^wV_kvoRPkEGg`6Fn1GzH`_%bXMT~Pf4ziu(CxR<9YMyG}bRpo6~c`ezsXw$;CxtUJYb z+Jf`+&9q_R1rE{VT4+XlZSqAeWsMNcdp&uz&u8o59w^x}!g{_zntVr?z2{HH;;^qG(Uy?uRb$ zCwq$gsgeOsJHSga!0D0HnGA6H_b&-w+?fgv?Oq%>|223{LeIkgW`!9qg*Pf3*fxHl zaA42KDhwSd&quVKgjN)OU*UQ`yiR$bo9Cb7A9{IC|6ljh+DWtWA+Yg1G`F|iK{6?n zXE}IRs6QIx^CihH@yF2qbcy-`4{@=fNpBF&X4d)ogvN3c<6a653}sYSzA<6GwY7e} z#vtE8XkYpC7F`H~WZ`hyMlRX4jqKPS{bl{TEx~z&oBs{D4lfc+z8>J~ZnnLM3}kK9 zV{=xW=-*a9kSx$TK=iJ)WuCgNPJe(-jPjvzR+eiJNnfaP#`erNj= z_$;9#$UgJD_$2&P?a3Y^8nX9R*>UmLGF>B0p_d(S0Lnqn1ux>y&6V=rD9;>pAA zm;bQa>M`oObWNSrSDl_{H`1Rr?$eL6_7c9M{b~r}jp8HyO9b(*&MHRwsq=rT$CEEx zq`z%JJbT9*qWx|N;^POpJGB3#erRm&0an3mb)QI|H1_)G?gSTmQVs7s@^AZJ!y9Fr z*wf7D#T_Y2ZL|T^_>@?|JD?BIP~9bq5k`Q=9O$clGCa) zR>QlCjC(^P>tw$1eJCXN>kawPF6Hw8>Ahnw_GL;U*y9$zmfoAgFG6~+ogei@9=|i> z@qw+$&P4L{fX{4MzOpgrlv9{mq_(3MxhgMj7UM(8!rlSPj%d45FMjj>_&E@b%w&bb50^gHbN8O`WcPo) zz-~H=Ggat6tAIs(>JHk@<9{zZ4BtLKvo!U*)fbdUIDVHk-G2Jzzd<0|jNaF&$V>x9 z_(FBQAMcR0Nbg`>$^8?F((6`^M!wzW+p(~H=^nL;%&+Nxqx?@8Pu5f0O!Cy!TyU9) zpPEVx_3+QH$ZQo%{BQpvV>*Yu6uuiC#(raAuE-3RJblXL9VPCMfR8&D`|Y}>X1ieN zdP{e6RAd@9o5Clpj6JkpDnDYdYwxbuI>*yr=fy~nSSN5pGc**{$a+bX#ow^hUC6wd9S4>qb6I)dC0Te`$k!1YC3s-Tl3{*47h$61#Y$&ggoz z3%p8BNiQ(e%RWAM_V3R82;3+5+4Uan2@csLUt^rWi+!W#&&u>C#;_4iC^ym^YleAr3wkUiuV;w^Oi!*Iw}6i9gr>1H3;Fyo^&{c)#&a;r%~4 zM`-VG4ee=h_XK;Nr|$IC`?G(fyw=n|qW&~t-I2c|#(k5c+=HyQcz=QS{215fBfa{u zqE&d%JDekc?_hfqFBxfV?Xs!-mhv9sxEP+C=giC9d>itwr<~|FjXtii(;R;e{^OQd zyHDn9^7XANOI!{)ti10s$3{>Gwg6~iWM=0a;Gll-s(XXOGYHam zly)Wf_rt?8vVZFyolsx&4t8&_IxqLwiHAt%O$7TK=aToY6GuOFH&elhud-s7PS z;YINN4H*AGnNY7(yyp8B!5;J}Pxx8#6z6O4e2C_O#xB8lX>B_NONyIVci2A;@1Hu@)P&x-iXY%fJb^kq>acpp4YjN{kk&N zjGqQqrqo;_I<7qMiG}0rxtx(1&N|+o!!J_yG_AwW1P}I26uw`A_qYR{KLSYJ3^C$g%io&c{${6{?yb1qzNC&U)qArhj3SLU)=Xe(;3w< zs*^kMHYbW{vftRTIRzeW=hdjplk`Ej7_*G^G5B+7|M_5SK3wYdoQsoPLiPc0Z~ecE z^!p!n415}lWn$^trPI zIK)h{VeK)HhBwn*n+!| z&BAv`bD^!JFh)G%1*<=CXa*lqwK{_A{NUD*Ev-IHdn@b5wm+fdu$PYK%k zXYhx3jnUra;CLc?TksRT!PO}k-eb)&g?Q}DBh|k@G0wv06#liRmv7SAY*@8$+DN~n zc(YJ5Bl-<-s(PNFd}~l=2jO23?n@t`EkJald!2L*AE| zG$NoE;hy#6z76Hgt?>HE%ZBil6yu}zG}gBPpXep2d4^3-@zP_jrhSFi@GrgpckH3+ zI|hE$hNXYL?<8G&g6K3_3#^k3;0s?+*^!y=koIHpzdN{WN)zW=7gektt?|5n2>b#c z%D!U|(vQYz>%B!9X&&$Es6U7Asr(fm$!~E)rir>gu8!&SOFD#s#|u`$xFW#!WAgjs zI~=0|@cMjvMCMntk>;+F>Ew0r*^HfJ%4<&I+zacTxvQLo&HVq8x>f#$puR`3-8X}O z!StV$j}I^tH6EI;!nHrA{CQ9v;5+?x_oSy8-{)h;m0$0Snp`m;K1KMw6jzVZR*L;UGy!(E5(ooiv0dB6PU6rq+FS?)bI&crKTPNB}Bu`@<#`)?X&vB#) zkE?C{BQxjNe(w(CM%El_gH@4 zp+22G6O1!c!T8~u9Kxt^r~`&(^6jP$;a9kojlh8CO5vBV@HQVjiFSp@+2l|1E!?P& z4FP_V#24pB^gLYf{tau?&CInC+)J#tB&73bJ@@mNDXfMb=Z|&|Ch)C|Q?KPYk+sH% zBxP7PzNNOSVyU%1D%z*RG0^(vaAgHkRNsA@y~s=9b^e^?E^crHy)f5CWL~0QnqNl( z2YqD^!Czy3^);VQz(W?ceT+S)r|rYoL(KPkuRpXNdXRmuO~4V_wrF|3n3Z&`C% z>O^2!)XMn@@RZ!lngp9jae?6vxZt zOHwC(vG;dVBwg^f;0t4T8zO{Pu&x3Y=>xN&Nx_ed>WH1>?_WI+4T6(S=LF8Uv*#$- z4c`r4Hif&cKySOo6z1Xo(zw&VD@JfNeQ;`f(@Xd$esolO(?{jJ)n*DmAaBzx+&S`} ztQq?B)9xbzmvr2=K*#+q?aH3QeCvpDuBFP*Zrtf5-;rC^P7%^;8r@!fv~y)aV0%fQ zmf8${u{{*+>!u_%06G(me3x}&bl)`Ek4J&QK^`XApZk;gTF?7t{k_iZ3Rhu=;*GNB z6~@M=dC>emVeAYFPonc03=;H+MEZ4hd zy2jb{?w*eAB%1>tdIMKBuhJ^?2gaivUgd$SJZXk~!!5KwpETBX)|T8x`V9e1=^azi zRT*uku@8CR#G~9q=1lSeQ!qM<1a1^}isC*89IQ1w@UOTviUZCZbS?df3Ji4MpG0{Cn7jUVuI{R`Bo6`tIV~x4NHQEBZcgO&<+!_ZVw~-Qs{9 zci_X`9L}M>`9ECh-w_y&qp$lq)edd2-^<=K^PBx2GZtRPzGjkn?9rDbeLa;ttD(IO z=n?WYmcP=!!kC;Yzg zk;WxBn`q^MzyB!xy?`tc?sWgGg{RK1Q)|FoXEM&vc$#_wpMiBdp#jO@2f^Ka&=BwN zbrgtGKHgH!x@I=}FGM+z5Zk&(;3-sLakq(k+K)a@;q`p2x)eT;vG-Yb2k} z$vy(^W@w*~{-T>ytBmqL_6p;~`oOM_&`o{`Y<}Mk?UMsdhWJ~jJ^WWX@$=uX?G4t@-5dI~r&l29trN838MLM!!-|}+z;3jAtgGqw8tU3|m0wPB z`xMGSD?RJ0(8lB3?iQ}!%zJ9^hS+lal=z>A?Y@Tn43{}D*Hr9D@0PW*j* zFCOj7S?PP|n4Jy%y!z>X^ZTW{Wkr`aQtuS{73OJ%21NH0$R`_*;`JStKZ$sBygi=< zCyS5geOd8C#*8^RF~r>ym-%^;R!^4iJW=YOV~u&U+PR~BMGfan9@Bo(K)V*pRD#b2a0&mlZ#y)C z&qnZB!roeG&ZkF@KJf0I?Mq0H4d7MusQD5*iLqFNpRUDih}WX7x(5GC@%vD3wROR# zW5@b<6;G5Or|Q-jw#u7I+I7xO`iSPN=Beg)1M)ePTk)BC+sTnXNWEmVbQJ8ZcfT9( zOwC!%;Voa`zSPT^Gj{F{%Zy~qni!WjeX{9S7w76s@(E7a^u*UCJ464&-hAGdyJ!nqzL+93;p*6wu7s9Kd zUGYuP)Q3wSYM;+N=ON$JI9$d$S9bW-@TX^y`{EPtf#(DC|6SI7qPyK=oK*YczKw&s zOBT)|UvkKS$-2j+Ycw_uY~gA4{f`BH@qn|C&nol7VwuyD(gWC+x%z0%nv?$>@^|1{ zW(L(};V}ym)Tui@ozqKGX><;)AE5W@Bz73m7dkU|?}U3fp!aJM(0lru$a#36foFAm z8DG-Rv)-oOs;k-GGqGn^^M=l|<=k6vCbEe$D2;b+f2ql)r6+wbXyJF^@m&{6?vKihp51kWvRQAWN z^Za(#a*j`9`Ca1h1G#?^|LK@rJ6DUw?UYFZrrTq zrOy2%uwy5n-#Gn)Z(84c$%HgK0sE7ci)a5Gd^49l+EtsS*B9FqzUyc=+3K$^KLz~F zU-Eg?;#O18UU-z(H}to%B^$Qs$tMLp!q&UUuQzr)yq)#^_tC+bpY?m`i)<;Hcf+V( z>s`Sv`fa2>^+D&3a=K#+8Yu@}#p|L+dkF_~pX8}xJT(*XCn-{G~{ zfvyq7X66WHuE*MvLKz$|}l-|G#95Joc=Sv0mcjJ9vYNBbst(msyr8%}i! zjT3$U7>$GS^-3Q{`boXhqc%6`8wOg_`t7^$T;2B}nSm{?TJ|@!{}bkN6MnYX7Vh58 zoYfwkS7(lj-R9N*g8nB-lV6cxojd~i9A4_&s5#ZbUGZKia)&&O=OI2xg4d_JEtZ#x zPl(QDQm@w4oA5z40ewlXzXOe}Hs;%^OW&)hJ6hhCf4=^~J(dOWp*-gZTwvNwU!;dD zq7RGcL&kAq zV7|()^FQEA7Jr&!!5D}1>WuU0CHywydegIWQlE76KG8^+-#N8UIy|;l`tm;M%lo8X z*(V)76)hj7HM@Sp)-3+4`FO8*lJ;Z)3t|7nXrP}^8(N>PsvR`U?*;D`j*0&RS|8VJ{^|6l(Plr#zGYr2t>;33> z|8Ta}0KaU15PONkTn_b6Y|?k%Q#XPA&SBOr@(y(HdHBKx&X8#S*?AR|xrq35745L5 zX`##*eEl@PRG<81H1FhNa}I4K!Oye6YN+4jrlh9ZvWywDBwb`D_7}rG^U6!Du4&K3 zJivG-2O4x0WBHr<;bH4jn^n}O^;csIyHkJV8J2mK`jz$qb-Sehl<$8AS0!+19)E%S z@?ri7`1)^t-Pj-ARN4p32lnfNVoc$W#ua>!m0S?W%4`0@!&Z)F1JZ-W#_4n-dv&P*EzAmDlJ6LDshML)LmV6@fTFKDN z5b|>G@xHatR-Sbh{k-T`rS3|N!OutCva-Y6uu^kQYf#~5;HPWbcR*W%p}Vghb!V&S zCuQm9sMpi1cSS!bOFu`w9_L&1ld|+fI<&Y<-}5V(6f^i}_&SN&SZ(LvMF;boKMLEpFleK1{i^o`V7rUH z&njFrrIWDAsm3e zJ%7BJSj$|qJkXoK8yn2sFP1QWOPIU7gSDVv`_7-Rj+#q9Iv5+qqViG3s)B#sM2zd- zI163jiYUgxTEb zcwPGwV{@%-2acFx)1lM1E=7m^qV8*-2`9mi!ZmSqZzxd@RoeH zd$#VD&N6nnA#NcDy>!(ed+}q68}oX;2Hp=%=CG65v>Dh3u`S!Q8R$^h<8u{3+If@< z)6PRTR@&$w?Lx|7`?BROG=(_4JXeLiq}1J?2UktZU-1Oz?OWC_iaB@c+u(oTjJm~7 zXD*Aro%{`cI^Tx-syE5*VQ$!;jNPz)*wA}g6Re?g*qEuaqw6A_;RxDfyuEk)c{mX{ zEc)>1v-0iFqdFq*nPfFLI^V?tHji+71KGXiP zEm<04o^~@oz8&P>7{_M={B_Nx&(KqheP`A46=*6=KULS*N3q35>QnhG z(oX{VT0~uze*O+GI1GIyx{sJFe4RwT{C6&BkJGXbQKG|yH^h4o!ge9Y0 z;4rxf_60=A`yq?ECrHJoyPJ?u9745{-+Wo@#^dbVcJ_;>sDPXk3yw z&T{@S8kZ(+v?+8(S$b=xHC-Qr^UE!CSICqJKGeVMz*KxOyN4lBE8;Z-GK+D+yibbPSTT8 zzapKzxx&>NtH-f7mPOLNDXGVmegSk1td8JtTa~o+H|VR5J_=8DxydQxPDmxDc=hGL`D8RLKgp)G zad*rh(qR0Na#L(t7v)Mx(_WKgmww@UUGIO2_YAIc3t!|d7}4)r$f&nji%H*~Wk| zgD>pM@fOa1As07#_++vNxP>-08fRavZ0M9v11Im5f(OpOzc}wej(Qu>|7uIkb2T@a zecHdbYg=zrrqd#L0mTk!1)jw*+5)c1I@sg;{8=fov zaH;FO8gJPSkJInKr`OhuTQ}%(adt`o;R8 zqnm&1kNXytuWt3Q>Gy>nSn74wIPAkR)#uU{1-%@8Ew5HqvYPPeL1&^dX0QMR(dqS^i`D zy58np8}NjG#lEC;U|^{wPV>sd&q%e<4zNM{?0vEB&=?2~jg9)Q^@#8p){$4e)RDk< z(bkchmRd+1M!Jk(pv_v|%~5{I(p}UedANvg);#+f_J-xArsh%3WzMVI^W?GhnQ5ti zQ{P$hg!M_sP@kIr?$?_S^CqXI>d70&&hO`S_UXO`wf#r(R6@(=18+#*^E~(-`dRYD z^pkP)a|17IgU%Do56&jy2f&*B#`yJZW<=bOJCz$Kp?Dd@a&rgd_nL*zC>7yoV4vzgfwy0CFp9emvzk$!HZRv;74dtUP zy->O$@LIi4ZE0U9kvlWhNZXgurh7`zUjJfSxerd9EInPi{paE38+MMj_>oV~!3Se0 zzn;;Vgf~4EV^0eT$aY`Oo!N{>kDTHDG})O-_>rem>)%^Qmz;TX5_0BpU(Or}Pt4!% zW@Dw^N@uLMvSOyUQhCgLZ)NS!=GN`yUaOhO86NaFC&_x&7f(`z?vg=G!IF@&4yzyot zbhA!$Qw80O8D85SpC}uM+4ug))vX)(A2YnJeSS&P`UlJdt%{#la?ARqgl!tO;Q1vt z+q6%{{c`hopQR^#tkReG=~Kh>Zx_?2D}Aw_J}yjO)RR8Ho z%k?%~X~W-I@0Pj+wOzyaTfndQB<~*07^?GV_q4jh{W=zmN4;|r<|Bv=zRmEo6q zlhfWs+dE>T7c^*(i84vnYbBJa`2@1lGtX5~R_nqf?Ip02CI%VtSL>Ii{H5qeqX(Ny zQWmQzvzm zk0I`jgY4h&ule~m!q9l|EVV*u=fgo%$y&&wmSPYU6(h+r3@t8$sRPFzx@F zf?!s71GZ}yRy&LYQ(Yo%nk~8sRIUU=$ z$uLeG!eiX92MF!C%guo{Y;U#bBZ=hEDf7c+onwtzF~+NHUq;@S&y=oI@_LSO_xRq$ znyr#=m+v?<=i1h3_r`RTf|sL;fH^?L%-RDei_PvmXFXo7_;S)JGwuH?*`ge z+oz(ts&CKZe_+?z@OEm?n(f^inqq_Z9aHD6goaioOT5-&>!77C9?>qE`XS#1c=n^z zwFrLk9{)N&CcdD3JmLH*XhwTBYUe&+dyBIi!k=W_$^eIwbN{UG$gp)A8po%?zI>K; z!Zy?%NPA8!GN?-Ecg%roC#fB69<6$^Ip|rM|iU&D|K1SIDVh zNna+()<9gRie_MS}5yf2hv!VkYBi&1+2T6SEaw{UG6QxPx^ZMUtw|h)mewuvk$*5 z!7kk+`HLdVJ6bqTy|H`tj?L~u>18|W+=aD#hxmOjxNom}nbTt*l+Euw=v(@ZLEeS- zz*61<)OftyTHC(s$93&p*mU-sfFH{-qb66wKL)s7{UiLZMt&sOmzkq6%1=qnDLE@O zXPDR8X3Ug^qsu0<4%;^E!B3@1u%X#-Np(u=A$N?KeFyfsjiz*8y3)-43_dF&jI!Gs&r0nee==@npHKcB=+W3PXa5b_-w~%C{FZjOW?$DQ&FtCaU$y4! zRFjGAODD|is|T6cP2^Gd4%Sjl)RV_=sR@0x3%SMGVeg`tNp+J)Ynew_lXRnt$H`;$ zsx>vKZrWqrH2XH#I1P^y;m}s^Gz>73-afRAJ3f! z$Qjwiy6KY{ZsFa#VP{FIo4%zP`))Ti zyxkXP@1cqQOLosZ8r$ax?634!cr*D}YS9|*?cz;G`5ia09?Ua_pCNA(>p`uFn^+5W zfiEA=C8>v%kN(yMah7&kOp3j-B{ol8Noo;&|Dmm~Y+p{}Ct5&Px9KfTNKCPXd zx=Qs!lS$gXgM2%nN%o-l2M+pY+kz&)LcS*QbrI+H&q;k)2^hGs5uZnv_e}wp(>}>a;MPu{wjWk7vi`_hCCbHLfSmSvJ3)Csxeg5=%|- z%Whk=vnDl>us=U0+dP(Txbs(eu7Ea1%`3(B_0Q?vwoTs$^t4@*Di6c7@d?6yo|=>) zY+>5$q(+2!8qZGkCp?z3nl(<@!gIiz@;{V2E46*|*{SWkGrAvsYwM^wEA0V{F*-!&cux?=h?^#DAjsl%`*fbn5Mh z%?{3QUF@INLU*+5Y{8+jVg4Fq0J{6ZJocL2z95|MvwOo%^*_*uw5F&e?~%+a?R!cl z?1&9pK;Q6j^Y1+Q!iD}h_C@Rs&ov_!IOyV`9VgtclMZ{hxDY1!4S z))3dlyW0tOYRV;kF7cOL;M+LE{d3`_3tOCQo9O4&=+D-7dNQyZ&a8X=OD?HAfSm+> zmLyKL&O6X2p`C3bv2ALvJoY|$@qM@yylD^K)!86q6AQ3x`uC=teXn)Gh0bDyHqgD~ z&C%~Pwm=&n>G$7)v^+SGe^&uKn6d+tm0x&L+z+MG+I@Ym9$lw?KHtKLY*a%SQ|X1n zDCd$Udr=9nF8|Qib=tzW4v1Gj!*b|wef+vBB4;yvTlCC>=(XG*7}hZZxhb9ZI>AGE z)g_x)=o_y3`_@~}7(N5v5Nwkvr+xeR;86NoSnrj@hj7W~TK(ApUQ}j0Y3k3~4>;!n zEY|)OnNJ4V6dlHv*S5Q*OIMCDOIG3+D?gA8Ny@Kr%BFbyH#$S7sJ;Z>l&SARUrIRR zrsN1W8+S?#dun;Y?C;D`eQCn_CvUm_MQ?f&P(D_o@ml6{;(YAdre?bbJPx#^c}e-! z@D0ImzN)PCl?=*+cPfYJ=6w8V>z3DJ*IV#g?2=uTe)uHhU}9#AjX#OG-c{*`f2a9d z*;0-zdr;-_(uJ>Sod*9&>>ZklUy;1A!I+`(N8&4tsT99Kz6JL^l)4LD^solw*V9Zr zHa%T#`Br6_yD(3i4aRR@d&xFE9;CwuwFdO-Ji(UPS-BiIVuLDYmM(k*8-azxj6MX8 z%AxMU9DUGPntJB4PLBVtnq?#jrP_7&eh`^0Z<+_j-su#Dy>XHFNSL)mPkuKN_D(Fu zr$1Q?yOD5iY$QGsj*gcX8M}N{B!47qe46t65^2|qj5Yg}J#d;x*gHKE9|?mw3Y6C|BIQ$e$>_y>n~LKOvyr{Ihre3$Xwo*gy$!`X({Q* zde696_q1X=t{;x_Gw~9ab>=MburqvqGx+0p*vyh554*eS5Z+k8^>*>p0lk5r8ub%#HGr34O z9SP?n^p!uW2m|Yl9(dA`uonp@BVjiZjz_{K683u9-D}()IN1}7gws9aMZY59WF(x6 z=I;q_GwHL7Fnf`3vL{Ttk$U2hu;~edx0+%-xkxx2344)nG7@$p;dmr$BH?@wJd8^u z>_)=zNZ3TeaUX}`0ovEDWKY2I5r56JPPA>;Oz~LnHIs?iKJ_i5d1lLaFwke(Nl}1D(Onp|qcF=juAnG@qZG+8~|i_8y&xvF#t?a<4Iwa6Ynzi>~L=k@#S3 zXWL3f;@wC%9toRBIA2<97n@ZNKS)QyUL>51gmVLn`AsA~Us8-`-CV3Q680kDWF+iH z!tqGhM8a;Qt#~Ay_wj7;kc)&}AD@RCpCs}`vP3Z2@j-4Mc6{=mDE1>63Fn6t19SsjCmUScHd|5Hxi-hBmaQ=v5 zo^&MaM#A|B&2nE*&zPG?I33Ls3A;mW{+{vqc=^9qICaevlSc8$gTCXBh-4A}0=q@#=nL=-<9-@^fADYDx@kn_j=NYNvR*g% zi)l?h3VZO#n{K}6z1XN{?;kR9Mc3Kvzp_@=zQk#)8{a;U{W#*ZzUQ3LLe|~*mXF9R zp>Av@6P0h{XS(kRns|N@Rb!Va?}x)S<5?U zJ2`6@)^!tgsQo2s|1fn$$BS{u2(RIIX*?>g!|xc~PIvb}FCB5=d4QRe%(w-QZ`m-8 z5iG=gm%a*)nVfSJ{DLDv*uy7GXMJUl;$E*F+k)^J+82PWvp=*T+fDw%?kV@_EZi+O z-(yV0v&mo#J^Wv9ryts5G1yzw_M?IayF(rEU!(oBd}yHy58d>|{Wm|aJflh~p1qNA zH0+h`^~+bg_-f@y@2MYO1JTH-q^GO!pE-^*pxB868nNT?OVV`iRplyx%RnpF52;wO z>T~f2)UQ?0$qS76VrZl(LLusau45)9TwfyZd#%0~P*t$4(qq(K~K;b*~-rmXQ zSpT4Xzhk`vKUtWAURQH2-hey7wfsnb4z+v&pUU7aZTaKhZs~nkra$F5Q`0k-LVNC( zr?gMaU0Af!c-IB(zomWIGT8^OzZai%%?I&=pK>AL{zlc{zFiZ>xSY|kV3-J`{ww_Vv(Vec(3?37|J^<#LT~V0Py81?9P;0>+)<}-5dUq6 z;ANb}$FR)9ln?P3rMHkDoa(RM=o54Py)|&h zsC3YoPHP{cSBDf zx&Mkj_NAej?8}Pgnj^Rk`+It%zafoA;R$t*Lu5bnHyHX0W&d%s8 z?1xq*`_r6j2xb3K^h@{-CPYu(e^bzW7A-)cg|Mc$-==gB+`25|6=f|(Sj~~!1pN=;b`LS)|QrhUtkH?Z%wAnZB`9a=)g&%(w zdb=2UGl${F+iN5AcBuScxAx*9y*UxQjI;Pa{!>20W0c-P8aRV|Aq{N!IQb8qNd7PX zoKI`fc0&9Qw(T8CYf-ws9NJe~lKnc1q_Sf#D$-lD-UHwyq_?q`_<5q~dr9w0Z~s*O z(}%wF)=T~$hTgVb>eE|SZ(eL^VH@p-crDUf@l9rUW#|WG&nxbw@6Q9ncK!|iKUyC~ z*V$JFi)oFZDWslUjp`*$tw0a9LSC*g)1~w1buC#t@rX66* zoM^}X@OCWWe(mK&+&3Rnw1548HunbOv-}D_kH##T=Wgdch2H(VeiCW=Paxx{9ehZ z>eZChn3n?gPWl>!C#1t`?6@4h&$7Rs0dAh44%wgZm9gi=BnM;i&m;Jc_A@0bmUAbh?jgx-F12sY9KXxXnQC{inV3Ts8-q>xNPPLQ zt$rRjpJ<$fPuMWtS{s>pa54C2%<;qR*h*gcx9LpC0esTl<2|5JC1<9VQ~te{0V(hQ zWA0txtE{fP|9z6Ec&)`Kc&Qu^E21b@1#jevP!VVn)LxU53lIqjBmtq?a!}ebqi@Hf zbn3KDjmk_VV_Q4L8JX!j6Dw_PwKq#!JMDA=(hjYiwpOaf63+ko+n47&=j0^z{a-$x z|KStX^Q^u0+H0@9_S*OToX+`Z(R!X|lrw*ZygC!8KHoFow{ezY`|%YETDb4Fsg?I+ z;^dYl=2Njn&a7}w#gtD%c7x5XG8J34m+`I10o}2A{93JxH=Sg@&l=n-7ZZNhNfirv z#+&b_Ppeq4b3ES@jPicQ%hQ-k+F4S1cTY*_%Q`PO4?TyySbs-Z{epd^%AahTdy}HG zH`zVd`BCl(LGDM`%5>bxH;M z>PmMHW{+p8l)E#y7vbRBPTZZuMr2=_LzKP#JN4zOl%eb|$#3H z%3Qt3GM^>6?K$V3+TG`qXO(ZwmR#MR?CXAm>;Zkq$Nt32@nb>K{~=KG8b8o`>4fRd z#=iBK)|x~wU5oFo4>`V7-~!+4Jl}nur^-`22Q07h{(rOZto}XZL%hSBb3Bb;v->{6 z9ctKr;H~~$$eVn%=%#uZ}Ezv1a*w`CvZ4hzi z>v-beOC_1ZbIkB$^f+$cqG8pIH~fBc+3@Snlv(>d{8wi9;QgH2!dN$)*)L8-Of z!=C~F5cBoIcQfz&Xi4Ty@^WxF-wXW*Gqmk8){EHR{4{Ga_~{Ml%MAA{4ZOD!n!)%~tDK2)+G`RtNv^sQQFO4ohk_=>$>=i3wC z8eg$@-;_k=o7}nm40qx_dn;!nS+Du^?WDOivG^;NtHxhdf{k0otE__1>{|w;|5ni9* z4t4bhCib60zxU_`$7M9ObhruqXM)o+=X6f~Q}ywb;d%W>vHv$;I*z^g=43~AZvX4x z0-eqnzsmd5=wCFI?=7 z%Y50>e-*kx!bE>npvQi*4{@i*MD#-0X1B)TK6+wimydf;aS2o0OF~@An)?QGvX!2c zdBD?`NH)SmKPk{t_Suie=vz+8+~eu*6g^?0Kf}|j|58H#N;vgj{z#s8a*sd#m+AB~ z_)asn^h`;n6dKw5f%h5iolV#Av0?P1?=w#9-(hvD=L!8Ejh@fz@3iR(e{TQU==q%f zH9QYsD^2G+I~hFB*$8LRtbM2)4)##z;jgsHPRD-%zeAd`AEkQ%c5_hYiwV1nut58@ zNUpQ{mnj`=qiF(sDKpFWHW%laSe&Oq9Llj$aVR58yVcRY6r=roprzcd5H00nY438h zrP8sN`;kCPnO!1UY%|#9!Mh#3?z{-}e;w$t*E#4>c4>Lv?r5uHw08$uY_(jxF7~a!KhZYRUfBI21Dp7UFS@As zuFmY9IXzAvXynI5Ctv>b_p=QpM_1gRB946e!ADCL4BmgzX8H8HS!=a*^RDAEhbT+c zwPwjmJ&`T0#Sf}Z>+F-IyI@@Aw^n{L{SlQ1^gDWbzy4RSy4jh^lY&<&QJVExZmkWaEa2M)h|@4=T!GY3!hejB+4Pe=@3 zjXt-8@J9*H8t2!MXYfyEcn;xRA-sj~SA95g4F1jx%Rbr&mwtn8HD?g?dhj7vo-MKR zJSmhXI=mklx1ocBpK)}LT0XA+m_UcDf6Mc=qT?P1)t%}X-D~9C)@fwEAG&vl?*59s z7eFK01Er^;D`b04~-e{^rl;JnPgLf40{JFt~@p8Ho((x-OPj;F!#oy3<7eR<_w{r8!_P=D|Y z`b**b%lB=6^QF~{@6_PEFr?{dMFY%OKP8J{bNgX6y{jitdbpVP&2Pl7)hx*j& zFY6BYzC(7tyT6IC?xX1cE^yL&F`Zl9>zy=EO z9|kYn_LH9?bZra}y_f2?c{2h3H z3Ebcu$FGb%FDmyY`n)Rp>eABZ4#IabHlVU^G-YdFhhNqAwx82HUf)P!4-{$L3lEj= zAaVNMZk{yM?-KOebiAW!qObgMr9<2b?Bx#1{}8mYmtDO7g1q#xr)Sdkk`05py9V1D zm|^zF?!Jay;miAlOWkUQ))80sTQvTTk`3uATzqr3i~nRi{wg!{0mb+Ar-`;7yW8^^ zHof(|u1;v)=gzZYGTq~N2K%*g-V2WL`&RDjk^dQykDVnO2IhM?xNk-IxIZq(2hGsc zUXFv(1NjkurL8)0=NaZnecNs8yBuD)t;={uZt0=#osQ>6;ynA!&^yQASv575r^iY* zG@+-hj~J)-$H~tE&d&QfYV-I+$%drP+(0yMzm;KVKe214gjRV!pX&}!pu;VGnWUiinrS3KDt2PY> zbw{T4X=nHU=^FO6)o`ag@&+HX9seTxtubZK9m1XumX`Iu{z`U_t@G5E=g;F#8|+zj zt-F}?&9$GvNBz+6l9nwiuOn+GqsVoXI0K8ET!ZyaE{!=P+YbrrYjA#6aycJso>Scj zKDOydcF%z?r}zFmlrLc^%Ha#h5XwmRoF(y1g}z5V?*o*@)9m{g#4r8}&$3f%^IrD% z61Pe9llrib=cxWYfZZ}*DBH7k?dkWuoXyqI2TL}vpSB@xn^WWAeT1uSczfOc>sZ`f zB^wgI&NdV)%P&gLS9zUP1)aI}t`)nceD}!qLK}zeMD4}Zqm;v^#q%=9v+25g`{*Go zxp1U?s2t+<(f7J5i`(O6fqriA_8>dZeZIx=^dY4`%jaofe){!<^;Nue`UBn;-WN|F zzi>$`{m+h){(DJd;8K^qxhg;XISRY#&q$y8AzQpUo<3!JvbRNBC-6_w!*=AL9>36f zHFXbP{VCZVzV4gA0ro$yBwRix*zm8w_pv8{wZaKa%x^TYx3Y;jmLz-H;B#LSKJB~E z9GuL&6>H0?hX-lj5736bjQrO2`EF6*7yQxRvhQaraR-zxYf@K=f9bj7RsW1Re>VNM z1*(tg3#m<29)5?+__sX=z?IUEJ4oGBd!{-mTVo79^gd%2s6CWVYBZ&5E53KvIaU10 zr__>GF&h|yZ+g5dg8}Zk$oZ&={i@ID2`0LJp&qMGuZ};U|!1Hh5Njf$k#dt1& zr+jFTHTcr+!c$|W)Z6A?*~Fa(3-PJR81Gl%JLua*>07=_?UHoY7wfyp4i0{udx^Zy zSx9=JT&|~FLb`E3{)BW??($Q?8NaxW+DO+VN3Z)AjiRH^z;obS$Fu2@IM1{DdkITk z>e@r)LwyP5;Q-~RHbQMfihjW$cHi{(IeSfEyW7dz3hb#^K0X59!841ed2^98|Bkfe zZ?>D`Y?{cRbKeV6e8X4u)An(K4}Qk^(X+{K6Js6DfKQ)%9d*Ljhp9XVJ^v^BkOEDL zJt%>umFGaSKSq(0K4Xg=v>_Oc+gf2CnkWIAE#%k-s@|%P{sZYzKK(7?9wM%p#QA&V4{^V(I_>rFF#8-r9(VB^jBh_vD%!@2NZo-rEa!%byhE|C6h*L*}E>G5$})_&>Zj$A1^k zfqzF#_m$V@Xli&4G%e7`exGKKlYHX2@=qG0;1dIleARoPOQEYIdoIHGNOV(q4|FR6 z4d438qv1W!T<>Yp>>Y^HXfHvaxz5w{-H=bSi}ye?51K!x+*iqF&cbHUdnlWSM%YYo zz2A=BxzFgyKJBUT_O`{xm5s_)Wp~BOY%%FF{(DmTlAS*JXQuf<(v-Y?lw(Nq?msi` za^kY?_hbd-8{&SHxEhbkN5{wGwx39yx)0k;euw+hC|mgg`GimpbO(-fEV~>lud_(E z37J)<%IiIEk>*CV1K)LN%5TKee8s1ktIx&Drd)bD89iYWN>gjBW99P})zNRdH096Y zX=)BF-;&mutq;w=Z(1w!JV}+{S&ZZ=H54~)7?Hg|HXXN0DB*F4|gAH;QFR^6Jhon z+uT!Tzq!p_V+Z{Av<++R4~J*&Ib-j|hAHlh@)K1}+{wtfb7&H9DH6`I$HAbBIR!kfOMKS7r`V7li*`$gBRg zzVS-@xmUpdHs*WQ$9{a7lrvy|5N%1`OqDE zR-X5JdAPsibDrjTzJc-eAkX0RjK<+swx&xm55#5T4vSBC*=BGjdJ}8NeT-|YY|O9a z$wruD(_QR^vi(JYY@ZA1r7y|c5l^pgL8jZM_j&F^Z(=Unlx`|<(e zJA|KYMpu#S1J`7}@98e(n*gtouKaKQc`o)xo#DPmxQTpjK`+b?us`Zdd-kpbKUH~Z zx-NT##;-c_c1Hib$HLizGx~o5KJ4vu-^F;w`lT}FptH?zMd&%nVG!5gq)WFGnCn-z#izP1HS~#G~kzk z?*zVszp4Cv5xObBQ%O4stS06@N; zQ!>g=rx(%|S)SZcxG-}B{G-Gd##5$rFv@ zix&r@hki>vP@3)=S7+)T;kpyZchk}AT%{4(SkZ^QjG`$_Kc|nqwlAY~J#)G{zpQ?Y z_GtO_#eVG>Jj%R1XQ^kU>AxWR0)02Eg8NqW9k4Y0mHMAm?>?J!e$2kUbNJ@S)jZ#| zwc>v5LsVM5r&a7#e$pl9oHVKI{O$qT+9vMiKFIz*`QSlONl_jRrQ@zJ_zn4%1@uoUO(HMv+Dniy%te)+ZTI~R z-~J722R+Ru^Y0}SUglnQd-tSdR=G%Dic?4r|DnI3ZDw2*t-%Ib_zxA*FMwaX48-%l zD6>j4`6PvDKPbbL!I153qN>r7~A~jq*c3OL-|w z`+3s%5qiI-%)DFSDwi|21E;=Q5>?|7Re-=Vr~_d1?1?TV(;*td#q=mYHeHsz+e_+4yU z=K?A?hY>#;uyUTw*DEvdG1^~SN_t9Dds04&e__8=e+7O?JO}7QD6Ya&@SKiZ)Y<9u zB}atyktc=8PqpG}^=$|7e~mJkNSblK5zaU$T(X`%O1RQV4`rXc0veqm0P;!j>;%=v z(&M z?^EF0gf6DMs=9{t^0 zrxEOrJp!~BiT-WqDU}#^MH-zeNSQVl+3mrrMnr|-7EQ9jLB?6m*2R;e*ewt zq#~x9V)_y96zx+2|ClbNAnccL*ZWqf4-I4U)5BaQ5tjcZO!MiFP1bydXHn9 z&BWVTGH(1%?mVf4X09pk$LZU4teEZ;H#Z(Od~b*Q<|%WP%S!ArluMd-l}VS!6)Tf? zU2=CTFm5|_;uWe-_D+qmaaSa1fAEp_y~e&UwL=f%7n7_b&m*sM%$avvJnhmTV{G;L zCetsOJYX{4r~dsH-+xtq{K>QUjuiE%iF$dEdZD`ZG(PDT>WbQfN!ZJ)*bDJ(yAst4 z+Wo*&=}k6?Oc!;tZ&>Z`8U3wli#3*`-l)FvyvL@4e-HI_8~VD=`x%!8{RdmmMxLD% z&&vr*4`=7GFNJn|Buxe5+ac^YO`V(rjeJBrPkmo^^-O6gZ_hz1osjp8^l~?PNy1<4 z&cDX_{3)9!^Cx0_G(Rt1PXS4Dyw*9LJ?7>{4lo`_v4*8`JiwU2&5xAyKQv5!-p;o; z87JJ2t)ipx6zZN-$)xcE+}pG5bTc=Jd}{l2mtPC=G3T1YarfN^C376dJ#Fs+XX3b~ zl1u}*rZ}#zB(q%nxbr?rW3VLiE^z5{W4L5#rnWF{MQNr2+~7nrw}SKRPQJ@CSA!dv z5R02G&0HaVe48aoW1uuM3tS)hn?qgfId}?pj-Qk{6a6&Prn`Gk%KPh8erDm1WPi_N z*UTNwN@B-p^rZ4{IxTr+z72fM_G_L#!OV+f;(pa{VTXNjJ#sI|*TALYxQepOfb2Dn zYbwk9E4YC;uCFZfPvZBsSbi$b%6!T5Bi(zgF1T0haq)}O4U}a*Cmi3xRey3mc{eYe zk}=$Cb^yPZ{#Ysf2X`NdY?rof{QIyE&J@j4KTGz}Q<}U|wkA6Zc^|&rY~O^>`M6}~yR}Wn=WyRqe;r)UohGwY{XzOqx({0CY^&It^|b%C zmmT*d6B*Gf{e#%7>JEOmZZh}o?NhsqY>L~;T=0}wT$NXd|8LM0%D%6fK1GZ^(0&_sl=eK7X3Jn%MrnR7#!G1jT|{;@<)qB5$Rqu&0g6V?-1RUaqCr>MgA=_^IX?4& z`1>QrXWojcv{et|Z(9l5zWMy| ztk=$N)ZLKurygN^*J{jO=Gg6g-YMX0-J*Y@x~99h<9&lFc&Y7s*tk7w@vt)ZSHUl& z!CdIxuX?`gxIbzevP^zHdH1#wGo*W4lx_*Wb+4zoRbHxzflsvF)Vwq2<l$l{s0_4 z^i*)Ux(W^-I!?BQZ_dSKKYn3ce5l6jd2#WfL*UYUuQ`f~4?O~|BF+yV`a5ugoO7(O zK2-8up7}Mn0lw=L#l?sIq7a7<9Tbl7p7Q9*#N8jCpiPhX;s5@UeoXSj7(Y{%`6#%- zxLzvCGHG!5nq0a~WtrOx~6bQI6KY$Xl7O@n;T{w{j*ag~O~tkRG2pD$a2@rxUy{cq}<&KYR@qI3fP z?A-kJsfsz~&_3aq_)gWyI_Ji`7CwP}(=D@Yy`@iX`X}9Cc1zYqzIWJoN6GFWQ}a3b z<@*wGb?2VWS3Z4Onlmlwy3ZqzWDasT*>m%m^xx}Jj5D-m$M=(`Pe8|EjnekP6Y09w z(D`l1!}wsjJ410+|K-ovu?l(QOau7aC=cYHKIwGk_PEb7x>U z>fAKXtoPBe3%JsaG9;TR{Hfq8cip2nV7(rjk# z5czDHS#XnmnlniAS?I%^mm2S=ObCC=G8tb`CU1T^aC8@<#2 zw`CIY_-pu$rE5bwqB5o3wDE!-enz}MkO!5+sg%PY{0KHt zOb5R~?t=w-{02P#Q#h3+V@j3f!I?$Mk~OAcW%*-xYEM_(=Kc|$(zVK0Yp%gR+4~;$ zBsPTlC_keyg396nY@a#fH?gw@)z2hzqOakzUS|$^(i@2l7n3K$nt{&mAEYj*o`t@% z=F->AwCkPUtNQ)PnF{XYZ|0uw3jggBjh!{WRv1ThRC|g}d!93_C)o6drtlriNv7oG zKK7JPX1-MV)U)XNoG%<=9Lw0-$uXHcN`KAgGhahlNXAC&(AavYHHeb_&VlTw<{<-q za)@!n_gWcOv~Z{NBb=pFeBCcUi}ptI&s({Fp$XqDdX3`~rIorPgx~+V?_FVQ;XWISpy8mNhe>3@) zy;kr&w&(eFnryF$Gbr*Wm8|b6ekFXap zef(Z@7yKz0SB1 zf#;3qr|q67rD2|S<=S^RJ5Oa3=BQP6e}}9pbB*OhD;|GMxpmO?E&%sQe93wKVOGr!C}DH+b;UHY3$oL$7x8n@oXqmTC_Wu^G1Tl~a+&Yarw zh|0s6JS)ED?h4!EGvWO#bwTGrga4_}{6?R$)@Dn z{z7HR`ylV1OqhAEQJ(4tNLJ=pUw9bXU5Y;RZv71X`Y=)%_Qxh z(o}lPm$>?*w#DMk=-&;U=1d1jJMyKmJW7V&T&Db&_y5{L?{5oeR4xZc30GJ#-l6>B zeL>A*AE-#z{fT-mx%I5HU*~;miFrl$2vJrIl3(?$g!@-0`s71*3@?-;+FF*qk< z?pQSR^H7G=gV2Xo*&b3}z@-xAUg0MXUY3!pKcDSvIG%syS@SK>?lBeQFa7QXTTRK@ z{~^yBzm$}l`OQ`M!u08xD#AXAeWZ9-J}2|e813Y31#=oxxxe%vb8D3sro$bWPqb9b z&%B1OlpJyWxcc*NyQgw*aA?n8rLC@J-vK^t!?$Vwrm_}r7yU2EmEgS`In#H(d%;7- z*!AQjcNN`vUd4Ue?mRv7Kj?(_d9wL!e_ytjJWP+LC%&!aw42CN!hJB?yo}#Pwgaq@ zq{vI5j5ZGUhAGaJSe&mCCoxtW?r_uCteCzZrcRWQj|z0ir-Byfn`c|e&kW|dw9eY( z^*)F$g6^+C_nIebLjQ^FZ)a>rJmNPQbNA(hshpDJyVCPyJ^SRM<-;AQDxXxYeC}1= zJ~3+f4&tRhEDY={29iJkqw6Vk4r0uJ`K;N*_A_Y;4hl4s2qAt z@T$t8BZAje4*fx}s&eS}f{QALek=H{%Awx~E~^~U_+#t&+*`n0OsZsDX6y6>{v%zd za%j3QeQh%R(QA_FkMZ|${&w*97uPiRm+am8-o#LtZ?V1(dch!XvY5QBl|!A9_twgx z=aqhE<#N+|mOj67sL7|< zgpRh|H*jr=bhb^e97>V)){h|%X&TZrq-jWVTYuHwH05$!z*H&Qf71(HR2oX)@2K z{>WYEx1<5PF$;f`q%D&^5+~7CscoW6rI!K9OnONRlJ5%Ok-JPL!MMlvU(n+u+E4BA z*1TZAAEz>++<2#tRNlXBM)p&!RVQb*jjPz5KBap1H+ffnQ?eEGroN5SnOlpih;-}T zU4H&|Y_Gifex>%_4Zi)+&m2|%ICu_9KIxIU#P?%6N+ZpDXbOA2MYe5tx5!F>qsdlD^EPRTUid2*(eyu#1kt zXkPFi!4IoQ>IBIrLYTvgX4&OEYPvsOPHV zCD;vnnwVeJUI)|PN|^91)OYDe{!n+3q$!69#4n$3-d=j1nN>;qn6A3(oXPl@D#q&N zca)x?_WVs~)PHg1AUmDVf1&K(uC+|GV=%^I)3vW+dn;>y>~Bd^2k9eE-^M-}jVYdl zhv0M8rYH2PK51UE)WY1p4Xwq7J_lp9@$9pDfjjqJP=8SGujJ_`x1U1&aqZLO5VF;e zbY*%ghh7$c`ciTI{0p)u|4F_X-Q0}6fT^3DPBo6IKz8Y`0=)E>T7~{7vtDfC4c-U1 z??wH|U!Vt-bu;BF-M8XbZzsJs36ot9T;gGp$Ox4l-k=k$NUj_)S+KW^b!{VyQ5{D$;hZ)wl!Z--X(LS^}grE_H< z{p&7-ux>8hW9KjY4K#u(gTLlk^Pqax_X}+O0-oc;wWqVtzn#H1+2qGG7WCu%e(k|} z8~QSdH?Gte0{(Rm`!P{`&$;NDrc?}-K|63Pdxf6yhkKijW#={#whBF`x^*@qvGyMr ze>F3gQbPN>jWSi;R(Z;&f1AE_k~9t@U+T`P-4BqDG~>ntv|%Cb173C~|G(~*{}1CU zwG*;4@mz=gLOan+xrcV*cJS&4gm&U}$>wcD?e2e1_w5Az2g$Mx9~W;Yki+`ipnsK{ z>7bp0ZlIL?fAo*o(TlHa{E-dA7vzP_bYYU;hPM`kUs@2pqab`mE?jGg8dIqqlnxHC zj(GhCvY!fTSB2q|X=@i2gim44OY>lgueSKgf^hC1>fZ)mg+KPe9B-%p{PdrO?xG^` zQ$GF!MdFM9!#@1pBH>CmjCp3v@I5sDf%g9n{H*!x znDNslJ!be?vv$nzCet)#_)4>K%<${Y_2zA-oqEd2C!IL%gyWAZE5+epKP?@dz1DtY z9lUq6H%G6gdg-zT;p^*e!rvIPY~|9WGj6Pzr)T}_d;MaXVfU-6o@;{zgl1T3(63fX^SzAAA_WVc+ zE1%dF!Pi>B3j=Bv*IGFW@k%$2lNjV1)a-dz6iu%XAElQU5KAu)@6(HLpP$>}wc zKjaI9^c~@&eB}iMc?ucjm!oHbK>7O4;jdp_->_ir41xIzJdpfC%$_-OR$+*zx5ee2 zMIECr2r1CN&qHLlL3J^FzWzf%$ZuhUxc&pJ0 z>s@@W+dRC_Pkn7|jja{lj$-dl{s#J{!8AFVZm(7RInLpR2 z66tlc=)rG|7TwC}E57PV(ez`Ep;-E3MUT~MmDY&p!A?h{9kbuONVU}{kpJ)r!G%~& z#PGqj7vl5WY>eLP&RI@AK4)RV*A_`Qj*llC$LA&N%Pk%r7oY$i2_U@n7?fLIZ`_gq@;JwFYp z*5UKh$iv6d5Wc={MNvN?yc(WjJ|x7G;g1!L6fSYt|t3c|gXa(>1Z$LP_Wy+z?8qI>=$n{t<~$H$`C^hT2B>>8!S$P48k z;ZIyTc><2+SKvG%dXfC)MIV_zAB>DLm;7)Eo*&)ukL9-@dR};u=xpEFkZ4UbByLFD zl}IN(#*)_D#3vK?B^LAa|MtHt;dyrf-yMlhB;J-tCf<=aJ2Ac>ES~;56H^nHB~DC~ zCVp*RGXH5_H2bZ5-!|W{@L}^A^H*k*=`w3f%G8-Jf_=>A;AwNCxr*lt(dXx&yVu-l zwwgOkr`2%yZ*_S1e+ka=d`>VYL>#Y)o<=^*L+WLWWGc+jDDaQww>83f!^{MXOWY?c{w{=?T;NT{x|L7 z>6ctO~lGj|D zT(Yd8@y5zqj9HgzY3ynLP@9moH?0t|@y43Q`X%qJ6&rIQhaB{i7E&E;s09wqZQV(W zHKu)(h@{`#)w?EAj4ce}te81-`t<2@=1iZ#KYqOPyL9HvOQui1jNeTC7ynI*y@-B= zOSr4MeRX3;TW9jRYm@6*Z5C_*>9#b-%EO0^BBe2{soqrM`i_k~jnagDSf6TbZSP#| z)smbwbN1ZibPGtq>Z`4#yRBELukKwV&Qf64s%dL1i&X2yPQ<+bduGQbXb8E!mgzix zD;N*xVR3C`jo^xv4qv@|*|OT|29?{Uw(g$xu1+P?u(aNm&`q^<^-Gp7gI;{&1NY?H zIUE9BKh-0J#|QGgv+`aIuF%rbURh{8H%~1c?QNaC$yM#0?LBMST1`(|H*)0O&%F4e z3on>)$*c))@O%3iS6}{)bI-nV-kfVEX?KWz6U^D>JgVA6T;^HkG}cQ`Hm8^q4I7H> zZ}jkTbEX+@&M(` zFY@;j{{Dl%pYr!J{{EA{pYykmzpwH4b^gA=-``-E&jP>6-?#XCi1+7!&+EC=m`C~h zJN`@p1i#_KCOPx`nd6Q>e)>mCOG-|Rp3aJ%CWsC;h>I7}i+(5BoJjh!(F8Lt1;10# z&Pm55$`U0BCS*z}=}oi#5B$&+&o1!g?2`RCsg0@d?*Uo?!KFPO4ZEL*Eo(M*u2tol z>Co6so}csfaa(tLZ(DM0+m^t_+sO$0lADsv9bGMJ107M4ZJXDpI%V1*ZAB)n3wy4* zu=T2BcU#Mh>r^+Bldp9z?Vam4_MT*Vy-e#;J-ygtkFAQtALkhd7}6=~f6qM2`^=dC z%{u=(bJpxR!J%Fg9PW5bNxn0Q4{fZyrJ-@r(#q=_>uZ-a;3%Zm%`rdSIx9Di`?17_vt#`$H~Lq{zv5I^ zo2$*XF?hTu@t!e4Kb&2iSUqO=C(I{CN!iJ>B(Y@7_*W&a8Z&%$V)mHfXC%%TGkjcP z+?e6TwU)#F9#5Kk8~OBI^W8DSpE6I489vj@95ehvdSKW?q9>LSr`!1c^&th0T-#uZB| zmn>^sTD$D}hQ&%Rub(z;T1Qvs>WkO)tZrP>+CAesJ;3AQHtPu47jd@TJF zx(L0EU8`0luZ>y@i*KDpf3wkZy38|5UXrAT8g*)}y;d2V)mT+o(@3Z0;)Qdra)|2c z`bPDMYU{kD7mNM0jkFi5JKI{5?VY_BhqURDN{-Rea|{>Xn9px)c7flz-i>N-T6;Ts zW;L#B?`#Aytp~pyOWSht^8BC4fc{iIBQi$sGHSoVL!zX#?6~7kn0WR%=brbD^CxAG z9ev~Xg9GVoqV$BfOa_s5uT_5$g>+2d;G`bOXWA%-VOf$`DoKO2&3_oYKOXL{s z826@R-{kLjpKgFXJso+5S-EuSRg-IPS+TsX;i}0?m*0HVy8*U~rqnmUy#g ztZR+diFltg;=N~0DvbV|y))lx?fx<^8H?ZQ5Ao{YEC=DQbmjmp{mjeQQ|o@D!-%K7 zwXvml^T?ihJk<5pDbLZUlesWs#u^dM`{N(~IDf|Fv*w(A-ucNXQ{OqQ1_Zw)H!OR1 z{Y`qh<-H#eDE4c+wHWp)_5tO7P5yC()oWu5!?94{=pnhPt2;?2y?xb|WJ{`}qd7%) zi=5Jcs4ws0>fQCx-1~(+mtUw3%SC?BvV2ADGI%xCEU9bkZcDXJdnXFKG@SbzcS2@$2b{%TZrjuhB_zMP(h!Lk)~oyu9t}qXA)kL!EO#p0S@{G=eN8%+VyA zf|!Z46m`|JEh?-d`e@8UMst4_rFYHS_~<6AYlO+Z5HG^Vi3wcY)ziy@O-s<1T|)@W z2ybtlk!tJl^H$NjpDE&9`iPAYH8Omk^vRf-)zZc#HMe{q)~m*TshC6?E1s>pg%KIo zO4J2mePWDs-EvYv(uzC-L6x?Cn(L^j_^;M)YoT7lkhf4kaj0Q0sA? z4EtMDxpHZP(cq-3yVuHjc^D)sojNKXznaAkTeH}{Y8*XHGX=gHX`RdlC?}VPK{c2g z>Z+_SRH2AK;ev`kZ`SM(UHqA*Ryqz1jI%d3ka%IOP*Ay8*45c2ew5QRv=i~8{^Y$= z&!)}0;$oHiw7D}KjMG=A*0ptXw5LKO_%T%)-dwu#7fhpMToS4$xlm)*`{VBsKOaN$ z`O{`y5eX{@FfWWsUM5{Mb4iVOLACR{l!(s*S5w zF>dVb>Pq$~OgQ~6oH2V&Px8W^Q0-o@C`l;M|^MZD$J)3wn|_rt~nk=fWOM zVc2%)^3eJiGi}-OWwoe+cG2>yUVh_>rL{LQ$XmWhxcGapF%hoywzalqv6TkVHnj%VhekpHw7Gii7DxOcri;ewSv5gnY)qChzcjSNBsjC2#uYH$Y=z(&z@ACJ0 zkbMc-?gbD#z+5fF94u6@w;SePa~l&ZKD=9EFyY+>@}IIZe*q5ABk0=LC)dTHp4zU? zTzXLM=idFI11P#cHsHqEnk6f5WIk`n^)`cxmaMS(fqsTo_)vG)hvL_{N8-e&fHvA7 z6ZlYkBlr~J0-qQ@;$sq7jyGmY`O~k=f$0C^PA77bzY6~JOY1)-mzWjm?7FQp+0&cq z#q3=FE9s_t{G8Al97k8umYOkLYcEf=w6v}7)ewYUdwXwts-yiwsa`kjqwtol&d#=$ zQ3#sb=+(515}EXUc;GQ20T&*nF-myS%Qzxf`D6a6vu$-3f-}|CLLa7$DIQz%2}!jk zi)Gt~7tu?V6dCkp%V?wYEG5HClLn`tkNCU#l+uXyJMG?d>g3Yra&2 zKH_}x=z=(T_8U`M?SDmt>}V69i3CgSPb8i&NKA=qEY)jRxPqXIW2zn zy}7G3EcDs;HFSU4?6AeGTz13F%aX>-S+sOzJw0Fazx)Q?nQC65746w`ZmwQT+SUGD zuZ<|dLhy6y>fO7bd#|?Pb@kQ${RWK$pu3^ghF90QaG;~F@$@zJ{pM;HUr^zKxGoE6 zHGz(wpbNjr%X3qp*LX+t^)`Ibl4bTCXww64=e`M;TbyZ0ck=kN1>bG^&IpqJ0<$Lr7Mx6bFcuG-~S5c=6F0QlQ- z0#bgpb#)eB?eGW;T@BzS!Y$N01mS>owd`uAm?Ze@t?`K}D|`|v6^yfrJm92yhq*V56|)0XUH zG_lH7rDg^YEOvKwwb++3$(no7s(#|(4 z-1ChPZkmoP^z?SOw}erpG3&d#db?V>Iy52fw-_k8X-6Nc7$w==E$klH$OZ-#1nW0# z-JN8_r?inKgIV;>mbMNn2YSv81O3=l{Nnm$A-^r`XNc=@V`o=$Z>qgB)!dzr;)%GkmPL3cJuuA%(GjpE950PDV@-uW zS=U%U+1OaW51RLl6^sRjUQBVaIwLDvQaljsBI7$Jqfk_sYexxj=$$4rX1MCuSic?S zqhkfzUElTQ$Jw#|-DCd3e9YWs(xcGHSNzi`VdDE`^TZgTKhA!h)@ZEs89r9rKPRl0EA|^+ z55Jqk!|U%}c7uOj9N}uK7GAU9ia9f9OuuMqKu!)1ub+Qzc$^p>UOzK>8XrBq?UWOb z=fbe){pRTD|LZhWS+vgH-IEI29axvDW8cz}Ws8<47cH+#+VE6Q=d3`Wb(9kR)L|;) zPvi4Vvu4oEYCb;R z3H2d%vq?xN9-dr77d(pY<)~YcR7YI>V;^MGLx=4A&07xWXkXRV+rF;Nv$?RNH93v$ zeHWu9yFfikJgf64-_^OH7aF!DWaAa!lhZDAOhZ2Edv#uK%j4OR-cfGNV!dlbwTQVfR_7B+i8MEyx`vdaB!~2Xb zCm-vOcF#j=PmhJEjlEs#Se0vW(T(2qD0@eXtAah(v;8iGyls^ot2u+wyJnqhgRAWX z-DshV&o?rs38|KQSA?-5@6HzM8N4xBz%SUop7mR9$B;dyIyR;izTTckSkk$wYf-yK zRry@Q`325!FgRUJIt=t|`Z6Uph3QRfjGN_WT)D=MV9lj&FcmetE$dqCb7xm0s+i4q zTX2q`_5=plXq5;*k8kwFV4627b&J=)-n6x}u0g8K)qW@_db^+{B7SbBk_muS?p>qn zmMv_>iY*!_#N!>gN=Qqn;NizuapO9xw#Keb7t`WLi((UU!)NK$R;z{}Q!SjfEb30J zUdLFHoK*Sz#Hxgi@5*BZau6 zF@HHi`h79XH_dmr*xUV5>(|?LCzjlqBk*%a1f_b}z{_fUujVuGt&tyvuC-lzV|45X zd+KF21A5IzxN~1_=Ek#k_>H}5G{eA>v*vkvx2*T`6C)Pb{JhkfwwATnrg(^Nd|fQO zBbB@%lOoNrU5uU{e;&<^c|mNvHObXUcN)v_)w`b)@!{(?HtUp1pz{3IBm+L0K?(GM zGJ22mYhSI!Y@ebN#M1SoI11+dV@$rbmKHnrCY0##0V60Ketj2>ppB{bsN7;nS-jm~ z;a3u3>BI#R9TSR7q^VtT>FPbu*l;%yqYPQ5X~Rv-ebI!V2HP_t92ubtWjvd7b}N2PINup z>yxP{rp<=sD}3`P_{h*4c|_ki3Vk#$YFhy(xA^BIj;GtZKDlmfd$3)FI61*f`M7vh zG#*#c=p{Sadz`TZx}FZ!lRMgMMRaUkeDI;W)ZUsesO9hX@`UuF%Ha9BRVOND_ZIov zB(vA>^LDC3U4B;#lfZ1u?_tS~BLpFR6w}^JJ4+D<9VOSbv-hsIWeqeAukCm`cffm# zCOcc&+Be|>+EU$iF^_-m{`AF+=UJU+dny~S0cpxnqRTb=K2QBxFOna~N3q@NkLMbX@D zO}KUAdYIXrU%9pi)kqim1>bHJp$+(IWm2oV+uEFi8xbxi!x?mxjNaqZoSPH`myDrb+r8fhk#?_VaUMok-Syb`=C7NI|&jj7Drd zZEX^oh<-(9O>gh|9x>Ux#j2MMfU;qPk0WyHVfGNY3GekPg=7_VS$zksH_=1u?xJ$a zwpNAX8sO=B_2AfDH>|L`Lpa`shgk=-hy#opG1zz6Cn9XLY6 ziK&HL3nA|8Ywm8I7hu?dNjD39c4A1Z<4t45u6J$kLO=+B8+PQT!eGww_4pBdJ-)lu@gCNOTbnD9=kM_S%d zP_N>yGS_N>Z>QE$bMQjyV=d}4U(0b=j+b|dM$3ly&?5KbYU^>eX+7`|xCDBK?F zu-?cuAwJ(l!X=lLRU{!i2??9aZ znMIEp0i8^+CgV-+Qrq0*ns+uRXjwm0O|>&FeJ6|EUz<}6a;@hCZ`82)VTt7O9Ytpt zxp&v2iItN^BHCI(pDx!27QO9vdAsucEcHY}MZ_dOH2 z+Q^*q!ea#*375#VWjMSq6hC=@|GOl4Q{AqN#ES$4d09({3sj=tPS>Pl{<#dA;G(SodtvXfY*YG zdc&df5%6w+>`lncHn`crFx;ZG@dJF1w-%(~1}y9^hR-{P$Mj=#)<)g-nCba=AzU>R z6?EyYCg~vXjfcnO@IxYBnSFam{sZ1uVq4>LwKzwo$x`d%y=h2|A8PBit0dB66dsL> zbD>eVGa8L?Y}w=}dRlrm;a&X1$8F53@)l(!nocp!AV$t71Yf10ft$QdZe*P4k6T5} zoUxrfScmn;V57;~)@Vuzhva&zYL*M#ZQRmw;Tk{MUV$6f7Sv%k4%DzJ$z-veaS&;wH>+j!8Of3BK;&k=;(WqbJDPKKdWzx~YhdE>b9*Fn6ASs_#rM*BeW^>K*+Kd3 z*0xnCdeF9~k+%aCe$b5E%Pah7W39kHW)7iK6HQ?$emtBdTjs5LWzPk8E$rlKOhLHB zm$^6}=kynkKVm|Vo&xujIXf%dyDPcl;chJ=?nOp~kJvL@5MSYW4C3K5Q;cM(%dx${ z@$k{+TngnJZIAFsy8J!Eh2hvi%!k`+&hqpT^%Y_k5|`K4$!M>1A^+g!T4>*XY8=u7qbn%*>zsuRBH*%MAz~^dGG!#+xl#i%0qyd#C zUTo`;QX7*S8`%C|Yge1=gxS?P=1$*wk=5=cyRT=Hf@UMWQ_XC+QHrGG85OEoA4C9#_PFx zRl5okI#kj8H5(-uH?VrE?nYkE*LE$~=WSOYAn>(~Ndu)8+S?J~(L{=)$c0lb-6@V` z=X#D(SuUKpR+ey?ZjbHe7!hu{$0-Wp=a`SpM{X(_Tj$Hs(S^Svd^Y!h&Py`6&2)2a z9GFWl(9QX?>Fo4+0mEW#gp&vBaRYHzZH44l*a-`D)_Kg_N?pLmEh85yKJMJT@4iOk z&;ooECBo;XbiF)|Pnd@ebap_o*<4xa88+d{MlE65<6PW|`akI{w{l>*#wqS6wWg z3N+^S$e;FkVD8%PlJ7S2*1w9Fyw6w8qr`g?QBU3r7?1DgC~R)ycwKzL{uvhSqisTx zFFHpP&vP6f&r=@Wc~6&)wp?h!LcQJ4zo&cd)>sQyR}FZUMdQ6UuS}13yy|}jehDLYmPh<6x6^nIo+!A-kj%ccv zF5xbg#_HO-h9!%ZR980Cx|kl%p}i&bi@9RNzc1#iCiY~Pf4{M^o_nksZ>W8bPq1}% zdn0={xyIApb!A$+8r>yvwjkM$wp_t;8gH)So+9G7K-W%*g*~U)SXonJMQUtV-dMF# zN8KEr=S3t}S6jWju14fOzFoFt!XIB@g&$Uzp>|t;5`cN7i)N z-jYRR#>HnvB>z~DmqYY7lEcdDYa18URbH?AY~uVCFVEe1e(K?Nv;{$P@<*+*r^8t@ zH)Ss}YsB}oclvZ!)YY!2TV74d1<6L?F3{D?h4PWnQ+ zoT8mR)Kh3|-qM?EM`HNAeFqNDL@k>NbCY0N*HNb<=+}kYIi5Hf!o=gdaB3n~!a7e} zEZkOx=wO5^S1yyS$tzeC^6r(jn177F8)=T7z7KasG%{W>xva4_G9%Wg71_APWI2U( zOS+HYqdHcA&#P;qcYCZGqdFSsJ$?iqkFRg2Y*Dq<`i+GjxLOnxdgJ?_vdYVSGgKp zU#c-&Wn>lR!`U5TC27QwHOBi8@o-mPU45}~xJD??P91%mGAfsNF?)FuZxM(V=*oPOl?i+VdZ|J4}6t!g(~39Wn)KIg-7_+s8M&M#kwh4J#eQ!HM% zV8v%VidPUJ!bdBhF}+Fd&bHgogIy4c@7RvwX_HB#?HSsL)*e)CebW-r74^a~d3|`e zdZ930XyPqCnn==>lTKcn?y}mOL&u~M7kEQ0-w{x~8QI)Ae13g(?!r5B8_za}b{WIb zkKWwH!;2QE+?z@+UU3DE2=|H_fiIpOT}tcBqC4t+JmFnuz}_3^%gJ^@ z8(rhq>;f#k$He;$F?`;{1NcV1GvS-q${Ddx_kS4VHPYBPsm(Evi1$lLhE=$Kmw z!A1Enm0&Lqj+np+JF@Auws$)jdp0)T%J{aYv6l_^y}DX9l2`fAWc^r#K`vK%Z!LeE zu9*Ds@M7{SJ!Y}!)w%_F`@XTgqfp}(uL4uPe1j0*SF3Qjx<)nvD#Ot`lZ4W^^rS%r z%^CfTWerRG$ReV{Zz!JVT<_g4v&-B8a;Wt*^P}@jO7A+wYF}zn}L}$AScJ#}& z)RaVsZ}BGKy0w*xW}6{hE8gfsohum?*tAzjU&!~=v^*SqmH zopkbzjZaTAn*MU{#_CF!XXRIQMe&$-l@*TJVic##dEDaRvOdjX%WYq$_mexo|gJ8xbz~g8xxdBYFJXk}c2pJ1s~jUzM@#Q5=sC zn?=RUIWKQl;_F(C;6+`%sn;0Y+o3%vde&9<+f>gxf&W*_^GfE9(-ze@AeVG zyU$z1FXXjA+!5h!KW)y=0>9vM!~1RV^kVyN6wb!V#%kIYKZI4bti7-Shy6h8K9t6K z(5T_#2hyAC$~#L8U0%hD4ez!7H*0q2C9v1bpWwB47t?d`BOcKg z4tit9nRHM0tVTaMT&#m-<)$}Xx|+tU ztg9{N6D*$)Uc@I@e(SsaDPX%!$rnB}^_@RXv2?EUqCM!*foD7K+{niqYL+a!p7O&p zSZ5p#%1#c;RrVu#cidq=axrJdb!zw8yZ9WQpHdFPXOYQ1-ZGwV;0og*CoP8iK1t%- z(yI@b8}lF+BOIwXn&o?MW@_cpY&ozMI1RW5xD>b#*b3Ya+zdPfya#v$xC>ZTbu{}F za4PV5;9TG!a53-*@G;=Tv!GvgH2eMuz!gWcj{_UteKh+$;N}k=%~ni=f9h!VL120B z(d@Hl6MxIm?22LkQ3Md+zi}x z|IzFKa1U@l@LAwt;E_)q&ED}2V|IM@Xm;`W@PG7Z_7L#MZseK-pU018=O@8`{%E!d z*!u<210McY@;RCO4IIsuO+n7D9nIbgZ2j@k?92<0_r;^xUf?0%FOOy~ zoodWZU<-}mW9UtIzBF?LSZ;>1>AE=)SNh+y$87Ol;P~$>Cm4xoP8d6 z2>5$o>)VF2<(Hs0;0oZl@x$3cU_<$EcIu^s1Lp&e0DFNu&m7L~0PdeSoIMKMb+;lM*c zt{>q3!r|;L;GRXp*~7rYz*FX8XV(vB8-RNj4`&|)E?zR6eF9kauHo!HVENMF?2Et$ zmZ49*FCWhG*)8e?@&R|%4QKDrJ8&1UrfE34l>7C!1Dk+5fxW=}z#YItzz2a-*Pxdx zvCmtH59|fr3)~Le1v~=W4{Y5;{P~0fcK|m79|Z0JJ_~#b_%mSnZImPMS>Ut<@YziI zz?v=41NQ;H2Wf0+BfuwsQ*TEvz`4K| zfi=M202_dOKF@3imIL?Qfjs~l(!<#S;QnpH**AcD?!^ACA^a}*0~dc3xquD8L%^ND zaoixW4|pl?2yg{(>c@t&x>=(2^!W zat7`Kz5$&2EOOMM_iqv(xZ^qMDX{h1$i;%^KA`US+_#_d0IvBV@qxX--vGD2IGmk% zJ^X))o`BmAq6grMhmdPA^8bo*1HSlc%4rGt{w?JIY<-1t06zBWaCYLm;Qt!-06YTh z1x|e(I^cfbgTTjzhO?*NfZe@GzJZ&8w*YqlJAnIvX<*q=(g)5RrksE^z|)taC*V|I zD{ww=7f_!9DLd&{b|0`D_#$vB@HfD@Kt8i;?WF_`q4mvQw9#XW(Msv?zC1 z5Aaf8%{inCoO<-`>;1j@|zcIbT)asXQ=BM0z} zDaW!i-;G@FJeGY7c<2)F!0neG%RXKQKj4eNeKW~-J#ZHC0vFFdmhA-|T6iqGy#YT^ zaV+~4;J!-qw9=S~Rpbx&R4sgfa~B=U4gza{M+6ri%g(=vd;*sO_W+xKM}XUbhn5fz zIB_}py%{`kCve}pkq_8ghupUyKd=V4_!jgH-1XjL*|PV*4>%F{6!22LzaRO4b3aJ< zdwFl9yny?F_W<_;`+#Ll=p9%Nd=}W6I+i`}ebBce4{%Kz`T!nUh1~ClZZ&!ZHURGd z?gaJ$C$1qruow7y;IqJqAE2Duk7X->JAi9|4YwZ4J^*Y5J`U^!4gj|U_XBqV4+D1r zj{^4qPyZlt1E&J_1Lp$|0ha=|uRWGc19t*<0(Su)Q#kNh;9=m;fKxl*2iyak*$CY_ z(LKz8n7&doWPmD)(!9hmUmMhfK!3HfIEQufQNvGfUP~)c{6;0N#Ik! zxxip`G?>GoO?Uv+Dg9epge*5wo+f(uv_3X;MDZ7>@|YhC}&^|Z~)i<+z)I89tQ3Q zp1z9kJ4p}N09*>(4r~JM0rm>N9X$eTcEEo%@4#z-t-uw)USKP5J8&~_C-5HNE?^&U z4{#6g$UWHQ8s0x~Ect8_!EV~yuf%|}m1T)m5cH{$A01p8hfKS~AAK+o&e&EFW zso%iG!17z+vlID%y}+fw9l$2wE?_V4Dc}y^e&B<^L%=71M}Yf)WuK(J0jK^o^>8hG zfEB>)zy{z>;2PjA;2pp{z8t^w``-T^!Wycc)` zxC>bJ8RP?&1D^-h0Dli`0G4$k--Flza6fP<@DQ*Gcm&uBEc;vZ2P_9Z2%HLh0=N%& z7`W@R)Q2wKfs28MfbRz$0j>v@J%qmnmIEIEP6a*=oC_QP)&Tbddx38N%OA$h)&n0U zKfoh@M>z1s$0+9w#NUmaz|FwTz#g0LBa;K!AZs5JVvk42hE{iPKK2ku>_StEO(F?w_{Wt^1GKb+>BkrfQeA zYOt|n3#ztmt8Uy~wRKu$>!AIe_nb3x=SpMQGU-G5_&yq)`#bM>&wJkQ&wDRu#q&s~ zUqyO@mj4>k1GMG8A>GtBAr2Fpye+Be+Tsi^blw} z=wZ-3ppg-jZ&3GdK_0Xm)cqpz`L|&wXyt#0eV{F%`$6}Ej)5KkodR_qgg?Td)t`mj z??69j`R^i~K_jCmkD!Nt59!yAc>e+PftLRf{DJNVt^6Fq8AHB-R)Z!$)1Yb4L!d*T zhd~d5o&X&O&HORa8T0^X=}V9U^?{!F6W9$p_B!GRI`Zd`1Kt07G%Q1>y!6SNX^7PK1F{RQ{~^@AP)4TDaA#z5ylcY;8Ub~`g?NLOgC;;LL3e{zgJwX(ps#^8gN}l>fF1^I z1Dyfg4SE{1`fcca1@fQ~&}Pu>pu0g6pa(#AgS!6``AF`dhd|pvCqUalPl9$#BR`Vh z{}t*b=-6MQ9)OnrEy4$__y@%MRixARp&xYQ{~&&#<+CWapw&M_`g{rL_YT?z(CT@# z51`GUyFlAOQ=q#+_k)(>gXmL)K}&ZdUqOAK2SBSqcjK#IW5frY0-Xb$1+B)H!n|LG zUeHR=!xzoZ*ML@*%+EIwEuEi_gT_GHK+~Wdpw(sb^8=uV*UZlkgI0Ry=MRB~K_@^@ zT{1tv;Va13OXug4phM;J^9MnzFPopA15M*o?bTmJI$VM8tb>Lt=I6&j_g@M7JJ7#g z1^=K2K-)pf*Uir#0L_4&0Ij?R@%tL$g-^Y22Q9yDetr*V*a!Wf`>%)ouS3rb&<}b5 zbP%+>67dJkfR=s(@;A@VM?uG`=I37rJ@f&@a}W5{^Yi|1!p;c%|1|tK^`I?xAss;XZ=IjtokF^Tz6RRdJU@RJbO`h`=z)8Xu0M-%gHO!IKwCkRpoc++ zKr6Q)eL(kvo&Y@sTJm%7ci;ScE2w)1!tDfo2Z$o*^KtE_T=>8WGPta4Kdx-y8q!Va+`~3VV&=a47Trc!~etv!@=>AXzl`z?S_xVM8U}3wZ2^sg?gmYQ?gt$NJp?)mdIEGB)cp$5qaXf3eV|^8 zucDXkw%qO47F}I>o#9o0eewfXyAyYkTaRDKdaRcT&j%X7uNu4vs8w6$+w0y}9PD&$ ze*3LA%7|5tUkiS5$he6i7wJRuX~n=VvGG#4Z?^Hs|9j z7Y2{~(M7xy_>q6R+#GmKHaQ<~X%X|{xYxLZJ6%zYO91YE{5s&TiImlrCH9u>TOH~w zO?zB-uY%m+GON}T>AtvYl`E3DsHfziH;>d#9NkQe`&Z%KQ)~WjGXFzw9%<-W)qU}1 zlH39@!`*u1%~~+KR@Hjy$+f2>bCIjIZ$Tzgmct$3Q<$d_lwvB}`X(OPo)jIccotW-lHFPk9)NfL{wSd<(Zj=V{_ z!**enApH?oLq0tXlgGA@2ZR=uI^vwdJ5VRqp9OfZ@+bP z!endNu#3dIZs@+AeDq%1cTNAgfvZVRagmG6F&=^*ymuYtx)^1p9&7rbuqj!z*Sl{` zUH{5~6&n%B<5N^lYWptgEeWPqca{aaJzb^2%*8#cTwhyt_>Ed9lay@ChgKER>;UQB zh;{h2tb1ks-uS+ULY+I(4~Dw7cRx^kYtgE=-ahgsm&R!3zMlJcL0y(rmRw1)BuXBQ z!2NyOdSfq{K<^?C+m22=O|)g=XdTg7a(CTr1ZsQk&)gU6jrDB{Q*m%@B)swHM2IM{ z?;-XRgqkLfHVUmbQWHm;R0?jCWCS;f7 zzRC5$$z!BXb#Ef!-AJBkG&_K^m?=9WuY3N*)zWBjxnctkf3uadItgP?8sH-H{>vlC$*)kQ^)64~9 zvR0a!vN)+AT^oB=W>z##9Bt?->Ar~Wd)@eg1LBWx%O5>GKZSc+-H1?FWmd>zsvO;H zWlpV!zolBS674JeRdTvbyMue1_H7DwHl{Z=p>T203iXA0!;PzsO@@^d?r!Lcgfn$L z_2K@Y>pNsQ=koDdPr?SeBHazW;l2=+bh_`U&(!q?AI(XS?E|o3dn@_}ZYNCN66$oN zi>L~b1tHIq*}FPsHN)Rw`13z`dVZ&^eF;(fvXxquNROM^yrbd)?GHIo6GQEgF$niP zZqphcMLv?SX}8v2g#PBK)AJKZBhAAgWk6UH-4%d6M<=vI6$gv@ihJE?c3nT9o7%}^ zpXqh?6{FZwzqAYbCSJ((OJVR*;2j1p!nXVOuH3gG*y&Ce$0Vkx7umbI?xHT&ok--c zCrC-{iN1LRI!N~f^h~{&(@ngS6drixxTh;c|IqmougX>~O`Pm)F$&_2Ra7R?#1na` z*UcRpils(9cyywH%Uv_7&1SwuO`S9)6SV}rT~@f)4F;+hNtsT=6Y6!N1)0QmZ!o5V zO^KII&!>@(NN3Z>2C0t?QJ1ux`o=BPAG(r=^Rda0Npmidw&prPKI}aeb=7Dlwo%7~ zwq^61M>di(!KTS$A)=JmXp)G%>CGc`>b%vk8wu8tSOX1u&(hmf?VVcQ(`iM_UTZlF}#Mgx-Cf#QC59VK?iB=(cW zOp5l@aY}Md@H;8aI@aiS4-{|bF~aewa8_ok+Pol3$OC1|3pU**ne7^zDQ)jWd6_zH za>nk4@A#nqUxohv>!>s6=Dy}j;7Q2waU1=SkUcG?r#)FFsy+-j-D zBJbfXs&c)i@i2u~SyX5yjw0wv{GwHtu1w zsplIzF|0x0G&Z1d<^W`7Ak!vemX*Q1kMDad)Y+1Lv{BmNpeLAls3#umez@zAJNq8& z-SO11$&FMfX*BpbVl)ms(7)XkGuaj;#^c2Jg28tiL2bOthF6m6u1C5b?ulm}>fO=z zAceQpl%36!$958@$)LM22qax`qdZ7FWR9n9^4RgIMiPsVL&MbZW+T3_fBV1#rVNtQ zX8fBx79lZ|&sw774h@Yq*o0DsxRC2T;{4#T$<2fj%qF4{qdZKm5ehkiq#Vb%ys8gn zf!njBYp-wLb-|viGU)WLOscAJAbLAdI1rEHbqGp3f-ScDd%0=sEADqSqQyIQ+%%9> zOZ(B5i|1O;uH5YaY#D+ryS{}pA3Ww8ckO-uzFUI*zJcq4omJ`g-Q9gt*Ue4n2xx3+ zYG&EEiyXRc?!JknjCkh8p32(3>w9l#*ZPLaP*{FbPi5xD-W&R^FaBf^mnlRn=qbLu zi0p14Z6VSYfPE3n_SPT3SrOc$Jex7S>2u9U!%U0Jm_C>(?r{fuT|3xYN$Vn6NRX(^?H%;b)HQ z{SM}F&c3`(t2IVmP4F~n>&`u{dewP?Ka+e@W#R04PF}w$$Y$y#!R{Csq{4X#s|qj(HP`U z(S4BT?-*mfXqq9g{PeYcNh1#GDR-v)O3QK@Dqcd zfkUU~4^aZtmgW4^lb?HSd1Wg*n%GCsKbX&^;>OF1mJ z^|{+h*n9%IMxkqp`(R^Bm`!g;ujpLaaQF=r!=p#uM8jJapop;}#q&;@e|bXqAHuMn z?)iURmXB$=?Vk9-JWjK5Wf_{yQBs+pFytnEW`>7B9o>g*vh3qt8^<0p-?I$=j~Gd^ zR4rl|=Ggfh*8N73Ww<<*qHSsao|FaT!8-hW;KkmMHJ>1l#W2W1?O{IwxVNc0c$9a| z;0=N|%;kmW_ht@HBkdk{ra08=>ML^9BAX_UX}PI2QxH4$L)Rd5xsPD3YpdHKs@u5= z?TSJVmjSFr!Ovm%@#5T>ecpgIsdUk!SwZRt*bABxx zYsb`aUCp{Sb4~BMzN`DM8o08~^t)4=kRj}^Y|usONL!D{Q5a$AgR^p;2JW9#h?HU6 z0vpr#(Rt90zs9*rE(d0;Z^jGMrEI3*LaiBovyQA%p2U+34dGF_)Tq1xDh&|G9fOT1 z#ug48XmOkz8tfjM^uewZuxt2lFbBcC_6epw$iSRrN-oFz5HeIARL0D;@8kMGWp6!X zA}4U(lVwbqMRVL;WG1LIbk+WuCXae=S$iPg3co4%^>ID6&FOT~bSF(ZzJO?8Ofq>) zePhMRj?1!B2%3k{)B)+0mCm{99DyV#7cp(hN_hgXXAbuGaHh10?HMiFTe0toQ0L|8 z%R*h{-Is=X)@Ckw1hL4qPKi83?Zt*GFh0b&Q@W>%(kKdEC3qBP>P@H*2~n34q&}s- z$3^2IwEtYaQOxC@bnJoOcKD_79$g9i2ElXVOlu97{pq6G`~|EKuRZl$(loH9-|Kp6 z>UaaD2KMS%*Y6!z^D@TVdF--j$7)vJC8XG*wxPTNw>(W=(bzRkcrRzS#D8EG@9r$gBp4dMk&vCEU0o=5K9|wOA$0=79 zf;1mAQ_dh2hA_=LdD@1lfNf}-Ed-j)I*)XPFizz~XXLnyY_Tl8aJcK)k!99;f>>#! zuy`g;qj#Ov28~bHT!r8IE0M>u`RmN6BQzW_eE|)usADAA7-V-s)?VizYu5N^ey6fj zW_Ck%5V8Sh{}H6h^&-@3d9l|qE+3=tyZ@h12HjAk>&(I4lD>I^aSurLf7tpLz>#+ZsyAmQL37;du|keSC)sSn;dz3 zdI&lO=WuQt7!k_#r43y!Gtwl{kcXOk<0*!)=HO@j4-p59m*I!|ygKUhsF%CH`$;nH&2}EG^zm}4&GQ2+7`6*;gW!T%pgTS&-Dbmx`-h;%>`QUy;dwY00!E}7TF6t+ zfo!w~B31|OJRW~FuS5O52|cy6SG+G$)QHw#|%6+fEaZR5Fp=tHi=xpNZ2MSW6*5A&g`V5>ck zsXHj_fGqdq#hAhF}wSAYks6n@nRgl*3pN4~e$Pg>7t5Ycn(_3P z3|!ROcX98kmyS)g!bW?^c*%j=dsp>ce6Lx8cHM5yHW7Vf^4Q}B zADeuh=tkoKE7)N|+p!bF7nO-UH)8$a6R58?-XM4tRJ?U~rt1JP>|-cQ@UmklT3AA<(2kq@(KCCQbM!~$ zyPd-O)VYO6rup$Z0KbFqn1~ zFs?F@)4rTmH_Z%=9HsXl1zb)y+=R9=kSmjvwo&k^!J~V+h_-;|cktT5TMr(UW4cIg z4|oxWzCrN94!;M$3pjXV;B9c|n*uN9&^HTSv%|0ZX4viERe;xI(?@o$2d@>pKoLN$ z+?kbSYLjh82&{I9Y=?Y%EyiNSMn1Wsc5igwmSBJVKwYq>F|#q$xjB7jsH>@aQ@A(M z*Wh~5G@|zYfQ}mEPc3QVE1&c10uGhS352~TjAycJwqpK8D^q5!wnJ~SwTAmW@B2`< z>au-wZhU3hR*aEo{VO|v$1p+eqX@GJe%tF&e<{qMtzFi!C#HQ}E1Qo{{iGR*w#(G2 zHqrnwwCad7ShU<{#tehdS>1sCy0FgLu9Z72GrR*{EY5lJTLz*$o*}PIEFe=rwD=Bol^A>I^azek)`KAVcjJUBuf3Faq8NiW{yl zekt%yY%Dakd>DzZ!w&oYn*E;haRPb{Hln_B{+lsduK#h_J(xC42AF2eyZjc!8_%Jd zG&Dx+j4iTn>J#(re zoW8hoRj425eK1K!_j()+4lPtU2GKCl-8#qR}#f@h@3{eo=0ozxp_7X<~c@s=B5@CM&&^VNm8-y`y9U;@l zXVBm@J&U}vrKPFAX5$WhJRh~nCL-m@>+m!29G)+iJfZS64PHe8=}LNnwzZ)LI0Zvx zek$?im{k|jS{qVSxg)_|>J<&1Ktd z`EGWGq}ic`k!)1V{%Hn!qR*quvE8}$qK*zAgy;+bj!g9xqrFHVyK)sn?3jT6^=(+Q z0M_zk=IHfZXkc=&3}tU~2_gNHMg6?*Hnern^Sa0A;W2ZF#>pWXIB%p;^TRY^Zt7m$ zRrWG1pwI#nt()S+5~4*zXfCSH(I}fny{@N?>oerzzBiAUm0CSyn<}!8$4Q#PqJcV{ zeLOa~&8D%eu<(O)W+&?Mz;pmE>GbV(E~M6WSR( zRzCoJQ9R#o%7*mG7~9Zxg&EtJ)`5DB>}oUe5!rVV{?_At0BPJ?4Lonax*Y8SnZBIr zkk^m30LZkH46X!zmEd{t{(ys27VT#{?xypUwKU(v(G!{xN~@#;8#+eG^GP|A6!O&d zV%5zE)8dkzxWX;1!_i6;f{5UkL73Zjwz`a^xXxYPYPvyILh_NM-l3)SJf z%%*nT8;5b0DqS2r{6-YIPC(ZIyw_lgbcJna5lmYWruo8iNV{CKPixOPM2qe@1Qpc3 z)!dH$?W@^7*0z3}>tkCW7l&LM{2)MWO-x+;^ZK2EUZY>9elAx9z(% z)VV(Wfv)#=-xBPp%DgYsdvo7Sq5jH&8y8w>+Pw&LH2o~r;#ddmQ(e9f>pkV^OM_i& zyDtg#cr$B4y=8r?L;a-#9xNa^$MI}S3VPbos4LQc71!=vzwZOV&iAKpiS$?PWNzb9w>7EIWt}}+Xrs%uapLIXbn{Gh9B3NWoM+t*qg_uvR*SQ^b;QMZlE)~s zu=nnEDs6e!_V?jJ)yh`(Rz?ZRuOP)^~p( z)bsw#Ee(C|>#Yh7+|+-w>vL#gr;bP7dOKTr%7%+om}Gma`rg-n^T17{zm{7EC*B_L+QF;BJzc~b1TPKVYlg%5Z~#32ui`xHA;v*LAAETMr(&(?xUxcvTKw6ue6CC=PVB;nxCQ6uej| zfIRz=|J=Y1Iu{Z@Hc35quKb%p!F^OQ?A+p)i@*wcTu;-XbqoPr8MCH{HOP$w8_k*` z**Ar7Ykns`9<$(8gJ+M28^-z_ybAEvgQxKzx*q>x;H_Kbh==XWWMA>ih(rFEg~Dou z-wl71Z_6(5YQVGGk^-;V#w&;4{owh*qrBCN{2T;72EO)ZKJdoDYX;AhrQFykT|`eL zViraIPC+JV^XCVzneXcoIL#LMz7Rk^% zq0&pp?1sz%$Vi)<3;PQ>JwuQg_+#|1`C(z5lgDn&;J*%;8OVqp-j}C+fpB)5R^RK| zI*G9``h(nro;JH^f|);T>vhq()H>*;_gAI=MA|CZk3oBqTmOOkAlx0cVW`fwq3N|+ zA#)Nk6KsEOk3P50pIfz;eY8r*4pP{7CzCymsn%1&gjOm$ZXJW%FyzP&T|WG#z#9W^ zJ29jz;CW6Opk-~RcWAj^$Jmx+HfG1f)cr!J)eLS_&$dq^hN&Si($*#%JAoHD+6 zjJO^C=HRcL{pI3}HFYG8Sx4Uqx80D7;yqLLwaRe1sMCe{vxy_Zq~nY9Y%QPNG^aK> z5w_5Xmv8wjC!b6WAASQ-O&8Ug0WqBr#rF2$H@N&Gy!fACjg9(3TvV@0@Nefh<_28; zc}uozCY6a%giG({ z+PMNi<|es=D0pa;_OhRc65G)eS7$yRfmeD5+Q~`0(~j-uaXO8h>S$%T zo!VdRPq}wPKfi#7h~mhJZ3`)Xpr&V*wwytRMuRF>zc2*YO=E>auzh?gTmN)DvI_@) z+*DWIeB+4e$IUT@8w#cw7m!isc_R;(1MW@CKjZ8qp}}R<#D~C8f*j~ zAi;VSq}Z4!P(txMf8bN--@cD=9x-Gs$y7(PsAv|HD8q8q17ZRE4#VFm_>;9}lTT*b zzOKtWr7jzIwgdAf-#G{2--lmC0R8JpSxd{cdD(oU{M-PUlaLvdI`7I()j~8)YslQx zb8}y5g`BPSzB|{qK;Dbr9Q-uF4-Lua3gA~-i*^jWIc@`a?}u6t^B{{k+2*1W zl}qrQd5H8zp~L;pvMvBjycY1H;MvD1?cg7v}(cf1z`@rRuMUvP$n+dy7lqM0f`LQDsbgEYW=VxXws$q6#Tv+BcBa)lrvS=?xljlB-_h?HDB@F;lwn!%^{{(a(6U~``wb^-@iXJ6 z+@kiAtQ_?KGOs~CHix#W2*AEqU|vYDiRRVjQAIS_E_z-N;gQK&=(49qX?mP3j8J9z zzYy9Uykqe-wnf{}^oph~_g3ApLmi}JNnLKUC#)-{CXXZVzX9)HH0>O8Y^NW1uYnik zd>Jj?TeI(@!OoAQKOE|+?*34)=Z?(np8eleMNG-%oIR%!#e=bnwwK- z1x}xEXWmytdB3#DOxx?*H_d)YoFK!!LDs~vBo)yW_ueQ3qIM0&PfeL2;ous zrVwWJiu^R+51!w_8v$=UcvO$*BER(B(g=9k&P2hR1}_X=6Q@OPKiixaq!dL&o}uEE zYt^W+v_l&*`CVO)_HrfOyH|_=q#p8v!r3a=NDmK((w@%J$Iz|u(ylfkl<)~XV4Yp> zGIJ7SpbU7;0L(mS1Yzfs+&Uye@Mio2d#sD`o-PpV@tE^sSkx}F>hjNyQJ&61wga;E zGlQllZK5Z^u&=ZO_VU>&vNJ$KV5;rZ@$qtqc|gOsaa*8gM9fH=4_m^OwoB+*hhIwr z@^uy7lSK@fKQ+qSh1_?;eGu*ea+h`ah`3X}?uYv*+-dwqS0#QU;GG0-H!(sIXV^$V zV?Jl*HzYR=xrhhv-Xb~2SvtF1Nd)cjS;+YzHw3vj>oaxB>{DW23DaIPw4iWfkegmY zj>>Klauua`7a-}YD@zscy<^|)!A^hrgQ2e5x^J~__?t354EY0)FClqcls<>R8+P#M zox86&cqhRda`3E;NM8q!-qSni;8lS);NWclFXP}v!AskCl;@pssfs%GYZ}*@HVh+GrmSXWaq`xa4%n-Yp==ADe&Cj zE#`;pEpNma5bo5r=h=(%y=GRxBgO1_`f7+p;Aa>7%sTzhTsId-+nAHbxJme{F2g(Q z&cUA#vLo;}4u1jmXX1^q5p2rM?WZ7f@(ePRrq(9R{nq4{r*iNt2d@ge)6iuvcN@T) zbMT_zopSJ6z?*gO+QB2+j135m=pOK99CCx;opA6DfH&>nje$31(^mz3Q{YX27soyF zQP-8S&#TbLjS32dUDAZ{FXBvfmoDcJK~S|LbaHBcyRBxg^{xFU{AT1}^|!3Eb&gkKYh@8^AkFdhTL1w1P+JMRO8E ziQpo=6Ob>xEMM0I>%jR|H4cvY2^0`vd%uRr>wMNbkR9TX+-ZncUK@@Joe(b9?h}L zgQg+gkHnz@voSy?0`m8d7w#xiYmhHP$9?lT2$%AEeH3|hReqTYfOiNyKiuisiC;5# z)8L&ZM&2`N4Rq8fIIyCBrFrdHEj^gF%{-Dud;i!hr07yEoZ+Fg?0C{Vck4wEhY()k zYNQE;hl_X<;Ozph)Nq)061;XB&(z(!P+q}Hkes89YqpJNsvvi82{{Tk3OV<>{BT>q zv%vFH7`RBT9lUim9*ynxfL8-vhRTebRcfGf40w*s71imc%v#KeC7vC(L3|8;2d+W? z%jJUSJmlBBBg*wn%=;p=n=O@3l<3rlj&HCon|8eVj28#;PFUa_fE&ph!lZZv?#6iG z`dnK@Jo>hy*THKAuhhZY1zrhw_B={~=XS{L2hVcwM!-Am%Y_?<$m`(EfmcI~8J_7g z=lknv4>U|ijY1huPiZafi`EWY)L-JlkvCc*z>)+PDbt9a;Y^WPBl2&>{IU{#qO)F` zxh~afIv|moOHrSeL)@0rcLbt0<2}AG6LxC9oG!|}l^}bFgv#`O$d5xlL-Jem`!O1O z9U^`2!+W*K-BE_Si|o&YVXc{`+h*Em)~5T zW1LPKJTj&;5AN|W-^_gZ7XE$sRo{z$AHaL1L2Pl(_SqC(3^MB>qhlE2?F6sN!ApWy z>ENZo^Er4!;H`7;4uV(V;EjV3ygj(rG{-(l!z$kV3wa`M z1d)9-3^e1#3CO?hkT>Hh*-`X_bMh32k{I&q*8DiE1Fy=#qi>K@I(YOw5+8UpMx)E* zKX@A)ay!ARaqyDhRXhBq!HYWNhQMob@D73(aqz~$3)^@;*mDBB0C;{f&feZ)xIqQm z#Q(m0{Uo~%Jkr0D%1E89ou=&)t`Rg|%hnCj6NR7Mx8?U~E#M^`yms(*Ie2@(Yj^Ml z!E1By4uF@i@v0H-7!>j(44VR7)<9K1I0lHl3fh7Ry{Id}u$wL5sjqR;O4 z5O@j5l~NpVQ9ew7x6{V+fp-!-vXAPMEse6zvIM~PKEU=4aJyjoX4JFiY#Z^k4SzT4 zo#!suc;}MAt7#jcqZvBJ{jwe|bD)M!m#dYsf@&z$RC5z9v)*{?Z4}8)7ilHG_@&`L zbqC&~&+GcRy@(J!YWzGsu!jDU7gaTLvBrwyf!Vznvrj=g_q2A2gZ1Xw_><6E@nL-5 zg!Sgy{yV9^cYPM4!)#%>hgf(ACbkMp>B(Oz#|aYH>BBFu9c|M`vA&FZO;emZ&91{x zo6rK8amY~IR0eA`rtZ*Oo1S?pgOd-x6lCWhYs#k7RkT}q`VK(GSF^M}%I9gwMj+dU zdkx#nM{V_jqsZmP`ykRE^7iso30}&oe z!FYzEY|83xao6%&13rBtX&3yQA|b3pQ$FUNU$Vaoj~>U-JruO15U1}bRex-e^~PLl zg_XxUZBGGk+L!J?xbU}u!_;wUHtlJ? zKh_`LW_FpD6l_?9cQ=M`u%v;e&b4{KPBt& zQf^Vk(aZ9*LTY%^8;~XWcE~3oAH{uMxuoG1x7RY{MVdoo2=arFPm;X0)8>qO-uv*- zqnVU7_D{jjN%%qcM`37vr)48!KXrdv?@Hq6?*jOC3Cn8U(@8c{PMg4A519>+Il$?m z`qIVb{fu;kUd!P#Xx9!OdGoEeVJR7@^GxKJ%s;4(?1H|bTA2p{6E6i`IGAh8sm$#M zF92Q}?lrAUnalOV=9%-?A-4x|2T9H`f4)!W3bqNZjPOjjB@d&#hH`b6(qSEVCE&?k z(Qxja@nL!kyjjbZ2Y6nvMV?l=G$BmhwLp(QyhwdSU09@#wR{LW13v@sLv4Y^*|b}Y zTs%nTAY?|)AVcXn4VlA`vA1WZz#9jT@|3OsekG3}{&m?oX)bRuH?y}CwMWb$H&fAZ zoTN^Zm2@;gNBeo`pmI*%DmwukLq!0xr)`d3$bRMLkhs~$Zy`c{4#7{n0pGi^`7vj} z>U-Q9Y1{jWH;>TdS#^Md9AvMSWi?az*X0(Bi&2@F>dXMtqyeW$Yd2_p;JkSL^8YtMmrdVDAmo^V@b* zX`XL`^faIinl-cx^zPgQy}X_ydP!xFlm|(1L+=fb(ZTLq+m?IhE5Evx-ujAH)KlEE zFC~AZ_lD?Xxc7#w^nUv0$-8@RpfoILL3!VtonPegA7zyGgQdO3aV>6NsGr#YKke|- zj(c1Ck}igyZu7!Xtp*sE*y?>7{Efn&mPsGHcYt>gyg2T)ymP<8<(p;-VAu9;2pqyo__O0IQLuR*ZUai9^}eN4j1t%!5g&cqws6M z8vw6@%1^Fu$UaT}yfmEDm$pDQ6~(xV%bMxS&7Lz3bD5)D=FzQesYZV*_wd__-+uV7 zz8hYDVv$-JK!Z=c69*Ch4)>Ja8LK23CRf{vCe-<(;YZ}E*Z zXUB+U-8}bhkq2#Ro}{x6_u(9|EM~_h@$#T3ubk5h7Uexc^a^;h@ZRh4BQ6Q(4{yUa zyKt}hVA{3ZyP?eJm~%wp4?olJv&)u#=2Z_N+Ox+y_3qB!v)6rjGiEYJX!*2<2B$Uvpxn&E~AW_X+IZ#ZXST-VGP;{m8x#hdZm&AL_cJ`}Vrb2YdWcN;uDR=06Ut zWc##Qdb~vhd;FOXl23DzEtkaRg_1egXmptIKnKG0Z%4n!an$}dU6d=IJGdrrnH+(9 z>4W)mt=GY;0MA}_rx)R!0?+60TY`eN9=sCD7hF`v*MV0BUK=rFOoP0l=D>^}bYMtz zBm&ulL+5tz+QGBilMtSdbmAhvyTRKHIUg}_ZO1PIUJASkV&ujy>Ee2tn9%#1I5lkD zxpRq-p9nMuoIH5>Q+7CI&QHuif9a0wc+J#F^Dd-;*eVkVEs4-Jim^ z&YW|lQnSg-;5Z&lkR5_-3CZH3xW&QS@8Gq8H|XGXfH&aa4S<(%@P@%lJ9vk{OF4KG z;O%knPJ-9r;8{;0?QOhj*i7HCOoI0sMZ%u;*#Ecn1$hgD6j%D*<(y5Ii9dL!96b6C z<}7%WzI2fseG{|vp&V}=c=UbDD)1sCgz{HUFM?`(>ut&$az6<7SOIs^IR*C)xL4qw zF5=CCmj=&mI6Pl+KaDg1&pab8@zwLPwv(~;EpMZ11N?1|<2!kxD*ze=ulixkO>J$J zd6!xCEWH`QWP4*8Eav)V9*d=+Bm4;B&F#JEi?`5Yujp4@cv*EVm1Pt@9b3~{_%j%9 z8=LWL`cBv}0Ub>(h$ls~woIR!qh~K8=}SAyYr8M$S{ux)>G9U~t?n&zMR^azY>D7$ zNPhl*w1}SH)W_`TDLe8{4|ck`X?#zw(S>@-#|Q$Qegf?#+idESi8mT**Vn1r;K5fC zvTcw}JcT}n+gN!oL;p(iib{T2rP(K>Hxyu@!)6&q?8m9rJ!Rt|Er_@1mLWZx_cSTs zc%jwsAbctZbFg9j8CgRBrgpdV8ML3zqD{RR47BD&VR~^!u*=)MCY-*cb8TH_bx&E$ zXhRZlpE6uT@6{lYp0dnpl5gts^p@5RT-?8^cxMrM7!x!do-OQU%c`s&JP6%e+UMzC zHE?mu*?A6S{oYR>L8#9{n#@i$s5bL5&#WyToOS0!AZ=B?G_cR%bvg;U{m@x|tOvJ^*&j5*( zo<=nBp+avP((qcJc|Hi)tmS+fHXZmvzU`-k7l+MsQCnJ)z`vIV1i zE^-IJOLgS)#=u+m_55(Bz>9%L@uMq_-z<17;0@dJhz5*iKyLD=6{E7;pw6@9=mZ8j zGDu#S;27%Cxks}O0Q~{{nm>(m8sBh~gKQY){bV%d%QgG?U4mK5$Uw)2Z=#KaKFa6p z`k#4c0nKK0*iMH$^d9pPh#!XE6Yy*5g|0=>^JJzCFkJ@~D>KXyXR~-se!ZVT|Mk=O zmMf=EZXRgrlv%lxC65R4!lime-!YE;Om<9V{F<|&xpf*EGGb`Yz>%w=uagVZX%85zO0_9{sYJ7tod9o9WAmR}=iU_MCnC?}Ge6 z$S)`TN8q0k%TN z$v%W>8z0tDcV=c0<~;*p>Ls^QFZqfL**uuo)A)%BdR}iwtzl!XlU&#;>uATkC-wxw zrtim}rm#cuKD3QA;0e;OF4(=M%X=3MeL^&9qpbyuiD-O_hY0u`>4OVKdGvgtIU}%` zfR4FnI2bYN(Ud= zZ0X(HcV~aoz$TJ{epmF3!~AuOm65u$@`191auI1qdHgo^56X@0Df0~x^FDR+g79Z- zja87|tNtLpSN+pwJZkG*7rs-S-ltxV*EgA!5_}GHvwn@l^{d39$3M69S2P^wk9H!h zJ+A-34j4)IS2Q2Tqozg<4l%uJD17snI^Cl;_v(#)`$Im5f>2rU@mjU%40^LpNFKUc z@Z0q{jGulR>smCvmiI-Pb!)TM{X&oXF51xLHa`1eNB&IZ)*g54=ob2iXT8in*ORL- z>TAgUyNB-3mq7IigcJB(IX@=tt-i0@jFNe3mVN#JUd$TFx|cBSCVyP-bxq3kh*|$3 zDfFrMg(2trJ&eum?Sq-`Qe_TOwQk1aPqyc-77SaPxW)%PcnMuzjdzTA&9|HnAiPn8 zw}IP|+&h(m^uSRqeX`JeKO#sEAw6X(DjzRJYVz^Yf=?9TD4;y7h|kY0ElpPQKD>Fb z(J066zKx4lP3OZ#o;V+$GB4cG$DrtmCe+caGJgK^^O%qRL3W?p>>Jaj6U~72{R@>y z|3i=qpM~5>$h9vaN8^|BU0Ab%9LE`aMyJJA9#nr8wQWsI^B!GI(7D35BZxRn;=8o6J5kR4c?fI=O_Lv%uC`vuk7T` zi_mr&n@;lhh2f|C&-2$SV&M5~Jc`>+@M^#_b~bR`K=CngBiuSJUVELwtd0z&G4~8)UWZH)_Zlygm$`U}G|yoxAh>S)okiaV zVzymc3N`37He(&zp=0M?VEJ{!^TE`%C?EjvuF~~faUw=TuPU;g4oJsI@FL(f*>s=`m^w^-3N>XWK)93qx-Y_h$nUYqo4qG?&!Xj?S$b5HgJh~8a~d+Q;oep^TT~_hb`xYerm$yK zlqZuevbB5LIVJFcjk`Tk`#1QzMVUpLHV#Byf}ET<6ip+vnNY&bmTpi*Tayv z{t{`!^0~5Y_T}x5)Mkg5<{b#7yD=t(zZSAz(=@woh0W?G?8!(4FPo;Ozi5L0p=sF@ zxBE9sUS@&qv*ane`GH`<`0a+j)L-Fz42PS0M%_GPZ@Q@_>J4|jd4wtmEj4qj8>quF zAMNo_oqip9X8wAS`iApKX2pzsnesLV*XjQ`MKTh6#CU$LXTH z+5p~!gBJzwgoD=t-mHyBI@-ZI4W1A8NNdy2={SkpGfTLSEa5&O?#5oxuYC>i=9chZ z@fEhOkpG%9xKoraTo+Q{LJC|+feR^cAq6g^z=agJkOCJ{;6e&qNP*?1K-3)AfN!DR ziWNpx`;Xj)CWWg0_Dk4Zv6KGgJYP=!QaHJUUf)s*3b?11&|AP8-YHYi#W)N(^wJdj z-MEGwdY3Tctb-hJ=;ho!YwraGM;&@s7L+_UhcSoVl5_K3P8jppto(LI`RA)QR>0n*2Cz&TFQE5)+n?4# zde5_BBns&*USRero>j*;#U~%|!Gp_4;yAJgd9psf--lghEe3^QeswatM>h)P@PG0<>cZy#@E3mZ;DvhhEKREuZRLvC>rq>{Ry9GWA}s3JTECCG@I&PWq}wq=4Ru z0(#Y(Qm5Xf(qVR)dY4LvlJfj^UGuGwooaWXbf~$5^{qzw(9a6cKb-3pKJDiiz62B# zKDCpj_|1E)B#0FkKD{Tv$je4zLikkQSw#SMIM*!vt8veKj=_-diN}0yDMo}(>CSxq zKPLPu!6$og`r7>0{aPBPu|3vxc`#aj3#VC~mze3NwAFWLAefC=eW@MwbSF@|b? zW8)h`XMdmViupOc=bmAz`IZ*Yx44gsd+Nh%zm~tjL#%(|Y37#%^WCH3KJC!2{=E1m-}hqUj{zu=TyV_Y~f!ne9c*})Sn9QDb6bI7e4K4 zQyZY=z>;~-^gSG(=r*R!_cFD9z>>oo83z(feV=CPe~xM58K%i+nGOq${;J>}rdB7@ zz_*zuV@&;zFm*pE?n3vAU2&lap@VYHBPzIJJCzi?TcLYk z@f?4b%|dreIrIuH7driC9Ihoe(Q)Q-d$#dZ``;_^^#A$08&8ejdo4f5C*Iw7 zzE|5@|37d%Pe^@Rs@%GksGmP6@tj+teir>FiD&X_=hqHteri2^uk@d(A5*z~ugCM< zD!1?Tc%E;$)%d;F#zV93a=HCUiRby2+n&*l-!an}%e!0VBVT1Y{uRMHnR-7b zxWK$D`p4|W7su6edJ`nKKUDuyeV%QJfnaA6u@jf6?%)18IKl&Og z(&w&5)-%?9x$lepw9ZZ!t#8vMrQe#_!uH8(j8##|?zEmx7rR>46%4JC=h-0TM~|_C z+C7qCOl#)(&0inP}R6l z4la~~3+3QKJ-E;gTxbU_v;!B~f&c970F`mNyfVLuf1YP}e)FLSytntWj1ymF8vTsS z0Kddkrh(S%7sXwkf6!S;%z*=6V>$bL$jHh$Bfn5?eXw3G{(;Q|Ncl>A#`@fOE3q#7 z^rC-M1RQb+(F^%A>Q#M8S4hBx^d@uhT~x28i`uVxYsEg*n*^qx%5{id%;(RjSM@1f zN^eT^VwSt8UR}>neM*y>l2SYKFFuj+BqT8XfxLjq|qWJ`xZu@~zoMz5x)t}8h8 zDPBtNi0DOpjb8P4zIw++@1>%5DSaC5QufY>-pd_&wY;bvCtXUfCC^)7J;tPi+N;MjGp5qfmy+SsvO&?*~P%hNm=OeC1x#qoA53+=wSG`ywy`DxL+p@80i=yU3Ima`<}=%@As{)H|0L;<}d zOV?6*o#{{^_I^_IYCN@^1&r3E^(G-lKeg8{dOsz4wS1kg-iYW8h+fsF`oTBXQt6O{ z6#dlRVbNP#AbnL(!%_MwbkJ3(zle+8V1e{quHJUh8!C{#%hj6_z2O4syIj3PqPNbW zSJQvFdPhZXy+f~-idNC_{TSc$hspU9%mU>ORV2s*R zBJIPIqF2l3`RetF-lrVtp!%03SJOFAD19CM1%*#PwWn3| zK2tz1$eQ_3YM$ae~K;HEqXOPrJCMqr_xs?9@;(_ zv*AhoO^dx>7QGr@&8Ow+ofExZ5xr{9`ResbI($|1sy@}fTzjiTZ-+y#rqgou21GB8 zCzu+f_G&s8)GHAxly5Q7`*qQ)8Jd**R{feTN^2eEf#m6@@oW{n-zcD0^*Cv*C{TM7 z&^ct&n-sl!3g`_$mM*8>rN)yP(fiE;dXq-$(t4fsVpjBai(XA1rFuZcX>YBBr|Cf9 z(@*^ki{2j5tNEnmV!3)pMK6w>m~y6eov+?;(c3F}RiEl#uDvs&x6h$h(`mVStsiiT z_B-@yIv3O{5h|2#6{2@Q^s1dowZjY`uj$h8wEQNeWGCT9KlN85diNI6>w_?^fcd{r zuO-h3I?JzD^zL({gND0Yd;OyK=L_lev7zT`Z&dUSie4>WTHcmxZ$k9`LLt4&v^OPs zzvV~=wR^et4vXGjETngt_Ku6*{i0XP=lQ1ZtmyrvLVA~JulHZs!e4fzgW6p%eNF2} zb&PW&Y30|qD$)DxLV63?D|!pnw}9v^8s+vkfN<&3akS5%h5gV{>o76V>nfmE(?iRh z(pm|xPpjXpF^(kE{-+ZEXRRO)p z0_p42>&&+r(d!YtKGAc&^(`uTOAF{-ZoajO-qi*4YI-{9Qu&q?y=4XT2F@~llaQmI zjt?@TcTEAkBukgm-lg(wSoC^DZ_;SVh3gaS)VoxD8xy^k6wtfee47@%YYXUg+NpS{ ze47)!mln_)D3A`$^i4vJewuIIIgV+00lg$km)fb+sn=QGszmQ)4!xSLKBIM^-lg)b zM)Y1@K(FdoJC!cA9~%+9R}|2zdYp8r{n)tZttg;3P#_&%mGMKN{;gf~URgkI@+|c_ z^DQNMuM)kMCa6$n{1rRL56=1gkm$YIp;ybH>T%Mg^p1(%bq>8wJx;uo-Wkz*jYF@d zN5OoPbT5=|)(<%$uXX6vbXcz53ekI=L$AhrxqAJg*XPiy>5!E8YB)+?6~3l}vz$dl z@AVG7nhwj=8yCGdIP|Jr%hlU1dT$iHswZIarBufgT5YtQOct15WJGUe0li7l?-T0O zTWEeUB6@EUy#evB_BpXrZy|dpMDNW7^d==7pHQdXLiWyy-uF4uLCZrx^r`($y@l-c z%KLGv3g}IWUY}5>-a__PiQZd8uliT}0-{f`Q*R-A1ETl+1@tCGuTQ8`Zy|eQqW1%i zbO?wZop>sC>Mdk%yXakCNUx6rD5STLy&2JatLRn#nx4zGcSQ8wR!HwM?VS+4A9SRH zmfz*tJ12V4j+zlc(&8(tcbWE9{5$9H?V?xIsF~S?hyVwt&Aqi$dsZWQ?KWdd>ejXSs4J5cNecP`LwcV zrE6vJilP;+6~*o%x655zTvY5TE_M~UT=cH0wyj3Yn%>UTcNbGD&NS7?wCz5orO-`R zBE~o%CwkW~+lo4H{4tgbKf?41$eA2>oGbp1wu92_yV235|sil0Qt3oi9`Lns^xmui!=()+<%kAO0d0Hr~=kCvzss@!;T!^Zi(n4}E z54A3MA2KeY+fZ%wXU7*w!q3V3Rhy5PQf!UB!PG63{LnT2Ci4TrZ}}c$zffzqyqx4_ z@8$5Vz)FL?+XN?88C<0}%I-CaR^E9%Wpmc${%S@igPO;uPD{uGq`rrxee!{Geis%Taf0!f;w0l4#VN)m_e=PL zjH?t6GY%*oWgJ(WlKfOW$T*{TnDMaUQO0A6#~Dv64qV3Rqj;L#D;^O0W*PexTNfGm zfMPG>h~n8Y;~rP+WA}t&i}Nq3*w5}M#R0~HildB26vr8lDNZn+Ry@w(&nZr_d&zc* zPl|Dc;z7n$iia83C>~`TQS4>=V~PhkymrOoEZ?Dcl-)Cmr`dg2@hsyp#a4+)zX`=j zF5feXQ>@Q=P~zid`3l88#x;s9u0Juwe$MYi7PEYZ;sE18#nIKqp5ZKJ_t7k7`^FUq z7|$w>v%GhQ*gMVk`xFN%jQ$$M36_s3_OiZq#YuKgDNZpSQas3bOz|+|X~mtZ9HQtV|stk}nROz}ADpH@7}cuujO<-KvS zcbLY zMsb4WM-)$Ud6`z6;`E+XJjmGlq=Y}q>ETyA%=QKpk1~!awm7{KioJ|eibpv=h82&q z|53%$jK>ux+5Q>DUa5aiseLT(%VLh7U$Irn{f}ZVuXi)WA}E&e#RY&2RS`5 zisPK#BZ>p8Zz7A?|BPab-RBgiIDRGaoe;~<{ew?&l>G-32W0%DI4<@oPB2a>PBI== zoMJq#c#!do;$g|^&5`JRmBWA`e>gPfiBRDR2Sn$Jw#{};Zdu9cHL2yY8+xN2ID#1zdUnBSxagV6G;F#c7 z1-A);4cdv5&RXwMpWBWSyiNR>7YX z+#xt9ct~(a@VMX?1`F6p(1a}C2LGYm9X2BzZasHj{ z6I>zgbAs;?T=Ge_5Bp(8zDn@rf&+qg3yunYOmM58yiR|p;vyiV|#;A;d= z3%*wHjNt18dq2hY`UF=AzFu%Z@C|}n1>Yz*DY#N_M(|C7M+M(3ctY^|1kVZnc}ZVy zfbAI+>=V3J!2_6yrvf3;73xa0_|FXz? zYuVm!3-${h5*!u$D}q}E{};g>f*%+CLxTT5aUT=>QE{IZ{F=DW3I0{V-XPoaYl5o; z-!J|Hf`47yV}geTw+sHSf-{2uo8V!=zae-`@BzWof`3!66=Hk-f58=kza!W$ctmhS z@NWr@3Em|3w+jAkaZd{V?}9Ue8%2IZ@Ii66!fel%#l1rC?})o!@c$4T5d6D>V}eHo zCj@U5ebF0Pe^_u*+<#BxhXuEb`P zUlN=W{CUA6f^QK#Ex19jRnOsnSM>V?|Bc`p!DS*J5&TEu9uqt!I4Ss#1*Zi6iQpl@ z|5Nao;MWCD3;wEvSJJ@tbqMwe{!@{!5&UO@qk{ijaJ%5Y6r2(~EqF-qUkM%+JT7=b z@Lvd?6Z}2F-U!?GhTtl}HDYf-@L_R}2|gk?A^1(f9fIF4{s#qb5j-L|DtJQhU4rKX z9~FJxjcnh&;$9_qLfoT*C)FOo#{{PY-zWZu1z)P+3%*S7tl;C~zoL=D@6qrDw+apj zo)Y=E;3vhsL-13AhXg+@cwF#K!E=J&((pHN_#Y7W8o{-KV}d^=xLt5Sa7OTY!J~rT z7X8zL*SdK;U^Q`gr;8c;1YaiZ0m0>hC7hEGaCb&s(yWradX9T|^;g1Ne5cdhe zLBX?v?-%Tia`^WNt`WRVa9nUqa8mHSf-{0=B)vuiKO^ZmE%;f%)?FOlbDG|Q_iB0z z?iKe|!T%ucNx}b1@UYP_mBafN!G6J~1jhvbKyX5ExrE;#_+Q06BlzD04-1|XJTCZ$f@cJO zQS@2OY)?YdL-79<`6|KxE;u6iwBWel9|>+3{Epy^;CaEZat`lq32#{3Ex{9liv-UK zu2=i+VgElR*e}>6I4ZbUaI4^rf|G(jEjT0CEqGY)D}u)auMj*f_$9$}f>#PIxtHy` zNU%?EiQs_Xiv`C7e@1XZ@G8L_f<1x<1(ymQ5xiRPm|)vdqq%Jeg+A`9!v9-u_uuxR z+x)&Kc0T#Yqqp91+lQ)sFFy8}+x`CAZol2{yTgCShi>(MGvY?`715`&O|={B1^wlk%S}Fijn(m` z#rWRrcSiE%FUfviB%i<53dnay^7)rq`dy5Cez{d8-wDa*UzYuTNIw7a?0aYP`Bzx} z;fw4nb6=eON=VL$QqgVw6Pk(qtHi*C>FfdDW##y0F#|l7Uzm@~Uzjfy@KZS4i!DC} ze)dcC%sBG#x-;tWSSd$2c|YXIekXsu@JAi;pE5=)Oy{7;Tf_Nw#=tMaS6npx)s^)u zEGI2Sej)!GqCe`;&w3V?L#(4A+=YCWUt4FdsidzId$oqV}w@tljzb zWwd}E%;y%>k9p3be2m8z8)@et*P`*#zbIVq$oolUV zO@6$v4s7D3d}q8`9r41v?u_x8Ml9?X)@e<=lwT^27@r#ctjI@z>H3E7^}FlNbnq95 zSIx)rOVcMV?_Fo@mbD&wsGiRLG;VNVo^37-cdkD_+>aLs zSM~dcSPyGa`&V174tvzjQ~`d*!4E?%<%{xz5`fz29n80L^AdJOzmsq0Hb6=T<)=me zQ^G$X@*~23S@?q^tfz#Dl@|W+Z!<$)pD+2i+M0I6OVc4apPyeEubN-XkJo>J+Qsr+ z(|`KU#1OIbH^m<1*W{(!TFdwG{PO%=$WuF`{FyxYHP+1je0z>BVUPdM^X>UNu}As& z_N=y2i>AX`tK_Hh?R-bwxw8E)hjuj{lcg5D_v~oT5DoMe!hQJ(oOlAZr>FC=qFfS`M)Uqp-<-X zH62DB_J3yy`{NG#e_HHM6|g_`seJo?PwY{?+WEHd+XMM_{=4wwwfTIt-}@{1>5p~P zGnSK4hy8A-HSK=^`y;`8`+d+)|0jg+59Qm5bwMLv5zgnU{c(r=FBGt!|dGdJHk)QGJl%c z*0}Ja|HOQ(&zS3|>i=ivV;|gHYJc2e|Jx#O{VU7+M4n#zXYBts<_`#e6{1i4wn`KX zTv*pLm+GG_%1I}q{R0s;m3tPD12>KpAr6q@Kyikg+DF)gy^ARJn4^0d^t5Nt6TU<;p_PP7lfY@ z{#w!V+rl3fzE}8~ZV5-aF@KFU>?pSr(6di|{BbYFpTC)}#|Qbv;;ZpW$#b|G zWwj^iu!s3;EbnjS>%V0Q{o_yPr`v}hPw8gK_fEB3v3}%sU4HowoA~DV+K$~P{27t| zf2Dm5cwAMr_5q55*rl(_BolY-}8L) zJnhW9XPvdzUVH7e)?Ry`iQ#47Gpic=u^ZWtoY&Pv-$*~EhkFuwFuf)JUaQgXP0+uO z_;Y{l@2MyId(Y~4e{X^OhFibx2R_*w@7JTicdm)!HeQb>`uiuM|6Be2=HYSuSby#B z*P80AzxxvOhmjcEU;8`U%W;F!A0L!2jQ95x`pR+2aO*FZK^Wh3k*(N~7slKD9O(C6qxMhx4)QX+ zeKSF?_=$o29dDDz`qjB7&VSF}>DMeLTF&e1kjL<54Oh{6=U_sf8PEq4%4Zkke**Zf z>lNRIW=zg)_r>MpLTw}cn;sS)5vR9t8UI3D{uj{&9v8#+p>NH=`|nhG+AopU>wxc` zQhXBZ`hiby0!gnq`9BDB|hx84X3a2ngsqh=nXf$ zHGeJ6|KEtiXK2mLhu zF1O_^riYmXz3HJhp@&Z5!+J1$6XaP9d=m7A8=r#-K8BB97uU1mw0?geF8_Ms-^drUg_;FlXD^==Rwdf0(}$a^-Er)2e%c~!F z_DzcSA}(wJKGmoA0(}dvCtTt(_8DhSRX!$XGxq(_Y%nSGM+b&CN*?9@mo6YOFE1-B>F#6>!asJls^zY;Nt3B-+|7l);JFgC+ z=lO0phBu0Xo6d>zUkmzK@UiWs%YaXeEB_hT+Ys=9s}w&F>lf+mnK=I|iN2BEO#Xq7 z#pO5sY)i;#_|Aqnt!w@qZ};7vc8$-pCw{eZA;NjtxCDQR^S}P@@IT_|I3Me8>fShR z{3jFqZ}RXrK6C#O=W{F3^SB#sb&_e|!L-sZhkw`yyz@U5??;~>1->hR|Hb$x@DnJY zaJ$`KQ$Cizoe4a(SMjyre?IU@;920kz!!X7=?&imybQb-^jYB3z{i1K0lf1Y$|nWf z#=W&QK8{y`eggD+V)+&A11^on_YV_2`%lC7ga56-n>v(!0{B;fPXZqR|8D^g&Qto4 zSi7`Om#~LNi2iTQqv-c`(C%YI&*Nfv2k<`ux8LcR1b!%$Dwy7W-^b`pZ;!Xf^|lc7 z_Pamh;PYbO_Ip9L?l={={hm+_{XG-7{f^K!9k$3{J(p-#=yIVc{jZg54Mto>rDbcR+-}!=gzy8I; z|5^`zI?3E$1UzVlJ@&$&HIe2%C2+y4t)XEiDN;ApZh z#&_SVxcRHIfVciwaUItnxIl2+?7XEwKXs&zdn>LDd+4w9;CFPZJk8h#F*!d1{u3u_ zfU-RHE^GH*#b@C+9`Nwr5Bl++Xur%#e+hgy9gybNZp6W7fKME)xanaL9Z_PvHKV_V zw*U`TDT4#h!})^ai}Q9N=m+RvH@|3D<#maNJ_P*?@R7;c^eTez5*&V<+TrX=)!rsy z|1SkT@gFMZH-Rq&K8LzJv6a^w1$P9&$2FjDO`J!1i-*1d`cBl}Oh51R(0|l}-v&M% zsIPWIp1mIWeIEP~@ELes_3#|{{1*7s2UVXtfWL^0u#p`u5}ejes6SZ0T7YMNr2GfK zr`yBlV#0YI+4-x3uhts|!6%>xKKON`!a)uAf_;jYF^)F?Z$%x(p1*qNk9o1$=k)KC-u%)zf;$c3@@yZ$S$M)@aq;2pD%duY4DjDRz2^A zANY}n{`VgIuO6I#eGsClfcT$(wS?o5{qAlH@D||N8&sa>5Z5|^FZ#9`6n+Lccnk0y zuTc6F_*4XsH7Q@-;lZy3p9wygN3UH-zitM8fF5+>m+i~%_3-%t=%?PNd^%zOj{|Rh zpYqu$+=Afn6I2i7g^JU1MqZ~0jxWwzn+JcR2Vd*K`vj*t>R(h&m{E`io=U`>Yk-&Y zYPXBguTLBOGL_%v^?iang5%>1=$oHbKCQr?06q;pOaecWjv6$wpH~RJF!&7odOaL8*AcZ)=)tGKf5)p;&j^RXe&7@D)pqxw zjX4jW=RNqbCpFg3>4Gl|rq*b?To>cl*}!+;?;4u^*BJd$rB6ZWA#nR0ZQD1j0q;!Y z+gAghLEIUTR%t#7jxWyJEubGiOzp?w`~AReeP@3ASHP!=D(5(OJ?G)SkP=SzGu^8( zzhJk6w9sO_^%>=3e)trjcLc=8*Ld(Q@Spgkj^j5${}$lE9~HNG@lN1&-k8t9@asko z|Id5yy~YQ>e{FjEk%xYc@MdW#{@?Q+`r}{H*sf0V;IH=JD?E6=;Pf2LnK~{th&2Q} zg^6PE_Z=QS@ABXu2cH4#xAueoT^{=X^5EYCpQ(%D{_QE?W%x<6pTp?DlB~1du6A`f z+Itb`O5P;0uETSdZ_5oIe8Ig7~`@`0qS? z4uXCX_G$j-M4C`yp9#O+0z8X#>t5*d9N=ZDGV#m!bOIkwtV1sae&8`>a1+L>YJ8yQ zMUel!g5!(x_7M;MB@g}$@DKi58|(nD{T}+KLEkzEyMiBn-a~)N%T#ZvZz_L_MbNev3Qr7aT;++ebb4 z=fP*-*UEo4?)fhd{Ue}%=9Qp_ojeP?nSLOEUw44dB0AW~>qk3Bv=jK5gtHw6v#Ph- zfG-yuU!1p99(@*~5Pe=ojRb&vNj2zlZ*lpie!h^4R&JFL>x5 z0DWg7kNP?A@{}sx^!zOFro?)DL9^cQ^@|A9}bo(~54dI0aC=_Z>}OVR<>~(a2he9K=7hhs2)17Ur@tMuMphj zpr4n3ejNGdHjwlH-+hhpH-GX^9zMe!{Av&We()dot&WS?;mscUJ3&7I`<#Z}?(@)p z5A?x|@=w7Yo&}zIkM`?w@HzUGs<+91hCIN}0zPryp`sZZ-!}+8U!T38pW37RZv@Gk zfd?;FJOKaAz&nulE&}~KfOo=A4gkMFaC~vzKI_5n^59?V>ZgiZTsTH>M?idR@!-qAXW+WSgwmdi=>k3ue-8H=Tmrlab?JWazXJGV zV%~i~@cHt54D?gSE|7}{F)p7roF9aw*CgcPM4!T-~P?-!i* z$1hPmJOep@0ep6s+Mzv1{3j2eBmbeXo=*~-o;$$#idpb~gNJ@2=*#a`d1f$Qiojcr zR{V14|GgeQH-WxsrOI#l+rI&y{I=pK;|33U`25s^KS=vmoIlU~UgcSae*FRb7r`E~ zz>lIp#`H5-@LBv_41D}(mB;M48+a=ezf8?2*Z@43Q=km~KRaL7N8|5#p&&bf4;ww| z+w@gl{{lR9mbPo_tQ&yabNX<*!KZ;Yp}uPI=x)Km)Oq`s2mfymJ`4WMuTptzKF$H( zk*K#k2fVde^a@zkk+)-(`FbRX*mgzTu(&nFs%)2VWreS(n2;ErQ*qF4cBz|K)TKeX9rW0-p(f zK$u>8Fi$hU`xAEZHsG`G*YVv1`j2_||106NRXy)@pNIYd@Ne3o^0a{eJ`erRLErjA zrQd;;{^X&5(OEiw$MJgt_OmZ92X22))asnC7JQ!g!3qz4G5Dmg-*-7~9Rl8obqATf zyx!^I^IqeFeAw*vy0^Ye(>30DCf`|V-9{fJ=**l?pO#UANpTN4_^8eog z4=SpkZnS&IYv2d2QoITHiGt&c^Y*s&NfhqgY2Y)vQ}O+{r`5yf0?^yvfxhkq zdc&n2`W)z6u^u-$uK->?83qMD?*|^706T%-nDX$y--AEu!T-mD|HXqJLj%!hebgfO zLVDg)$I<5XIlw1=uYwmK{|XPEO&+`iKCPQ|e3$84@GjtGAb`_+HME*bD4)e>%m9C zXF9R2yv9R+Gw8F}w;G2ozT%;O$b;_#pNR`q{vF`+gopl5gv1>n<}*!Q`_LmztZf(IW5|2ZU{1CZ%M9{QU> zpTay{1p2Rd=pXdp4};Gv&ZAm={x=@_KY>2=E!DqjmG<#?knvu&+J7Ovmvvm|r_R{6Ff!@9^Mz&~8&AANa0^eirmQo>V!_Z~PW`E6&Yc z4*8!4K8t;;GVm8ueO2ncc>ZXcvI|}XeBuo4?#OyyAVpClmSMZGt-u;^S9AZ_jV81wI4373)p&504PedELZ&wFRBzpD;`)D?;Pd4?6Z8Yn|2Rn6flr|zkpY?*aW49{P6> z&i%FD4c-a*_km9f{L(|fKLc}KUgfpN!~X{!{8!*JiG6?blg|O4!+K;f_@D6l z#`FD^f-ej@5_!ezfIowc4jbRgfbYV%G=u+E5C0E>z6JTfBGBLBp`QYMXIb_0FzCMm zd@>QQXFPm<>A{}`pB?-|xb$kqJZf6rSU;zG@OHt;Padxfny^ma;GzFV&`&}S&G2s} z;M0lxsMd48buN&fDue_?y6IFMeOh>~Ppae2HEOcNzageda%bccKoq4g7x$d^`~^o;LpQ zGv*(TdShd~HGA;01*hjDlKvTZDp4PPlZVeoPHNn48hmEn6`w~151)5~z7_ig*Fg_A z0^f~um8PF551+4l@Na`pIk6A>a}WLRJos}Sd|_u}J)9^w)#cFcQRr72@TQlkAFCa$ z7d8N&I!^6p7Jl+l;FCuyZsT4BK8xoTjsHgl59YnT0QwHhJJa(wfCuo;J8-~)+x7kc=VJ@|GHel7UVz&_0mCxMSA^fLuKK%Q^* zc0cgRgrD3GydN7xHH`iL27Um~6YT;17vSZ@zTwebYM-4rr`ikpC4%FN^L7E~%R@Tu z`wr2I>pb*t_TYK&8RtLTK(7g96THJi{{hfX@E_)&*Fm)VSr7f!KtGH5X!>~wc=s2T z!CDN=FFbsn@!&7$Zfu8(1gCuLe4Td(AZH8kMTy^AI2ZVAB7SWI-ZY~6c?SB)126Lr zgVPITk>E2lPAsM+LEc-cNbxKM#8QePFZOFMH@`JopKx>3YO||9K~5+7JG_ zUb;Y#n}Gk>!{^8zwa@9qJbKH8iXXuFCG)qh0DTtcQWk47L5JXuV(@V_=sS@|8J|H9 zeHHZfcRJ?4=U;&D#ktJ^;GgjDx!r?*#e?tl;NKzqIQm^v``ubP{voef5B-xK{P!OG zg{xH0{W!P33H+OZPyY2VLGA(mM&LWJuABva8SsIG{}}<^omM+P0Q$EHjxWyJwV*F2 z^7)%R^!I{(67b8T%L4q21R2 z?|irFZ2|nl>w%~KqWB%4?+4!fe^fuSp#R3%+U|IwJ~<@xxY>EDc<{G_|KvkDQJ%v+ zAMnuM1o}?wkM98eSAkDlq8rdBc<6rz`f)s;xDWJ)u3>%7f1TjL&+y=F9=u!dg~1~DhvjJM zV&F50^c+ah1#O%PdUei z!JQ7_)PtB3wR z(9dApFGsukJ@mf;{nRU!e>eCaigRl-Sce`3{1o8!cdy2Qp94IF`D@QdtTX&!6m~#msM?1$+wg^wcBuhLylu&r~~qXrbaE@J{sC^3|H*h%Xi|-Y>YLFnqiT z^b_qW=gEk7U-Zy_8T7O7QhKwKeIELQpnoQ@FK|q%@w_`l@P$EVBJQ+%=vR60KJeMQ zQ{}u4{T%{6kjN9R1|B@C1G^u3{s8dFLsT*2Fz5$Q*KwRizHN4XJLt<;h(8BAxm)o0 z`v1BI|0(!1VZC5>@)Ypaw`sp@f8?+?HP+`bg41(7A5pvA0})R1(4PbP9nIR`Cdj|i zL%#|1<;1$9=%L@@!QbP-KLY*(Z&UfFAie|v|pDiyWkPy|GWa` zXXb!U{zmnD6WTp~qmFwk#&&ml%cL+Xz+~45A*BJlA{`i}LHzn4~CE(3C z&rm>9*8m?+*!j)Cv%l80Pm{vX}=X&7dcc~uC|K~h>svdj-d{X$mJM&|o z06sOV?KVNQe+NF0_`RKnJpA{0@L3Q3qz6Cf!M}?-+w>uai-a~VM_#P@FXOqYqagoj zzz0x=H+-q!^Yy<9^t;#S0PY7#8hG=YR6qSX48a!QbNC(ImZSBCU4~=7!~Fl}1fSpT zS3qxnZ_fPN10MRHdGI+8{#WpCPUz>TOH^;!FKLHnA=(+hr?$oIVY%S*c2@?*X4ho_03qe`WM| zuH-r3e+J%+Jb4lDmtCrQ8+csxb`$U=g5!(xwjA{Kck%e|F7Rs&@B@>o=Ly))KYI8C znMy6cq!hGl3o_|KA>5ivZw`lw3>OKew`y%{XlO|$$mS}!;e550tAw@DFjFWMbJd_F z8-!uD6b=_kgXuz;t(7X(Fg-@hN~7gMu9nL#X>Cjq4&{saFkPvnw}-i6t+G8Bs-#DA zVRmeEbUWSRd<%)P79*{;hoiaL2uVess+BDj{gf#bYx=2>AJh-IVn#odH_N4^(T&x@ z(r`FelkcT$(AT$ii(V{c!)&^iCc&#qBj!e3%~iIL2DtU;rWoej3vn{(Fk1{WqvfE= zTrwlM%x2PGo_ZZ-a-{yDd?sDX=~b2p*J5qNFsBW4v{DYs>1uUrsgfnll}1TrL!~e? z$X$R6xb2a2FH9*g8Yj@CUyE}ID zB{6uo?2H~EW*gN4ZitPQ3_4S}gBmH9E|@_@x5tLTZjXWP?Pi5bLsejnbfRY4zqW5n zTc}oS61NA6Dv_aWK-C(IJ8?qSj8lU?)EPFoXnY%7Y7K}zx^CMp5GB{?n@7) zEBT&nwOp~9FBPjR3#H8FC2e+r2B@t)c~w-b^IkfeqM2VMcS*O`%9T=?6s7paRSwu5 zQfbEgRNf~$)zdu z26`z|$fYac6=S(E3cl0@L^ZOVvBC2?26G@Aq>xQfs*=l4Krpjc4mA9kT(yd8%mZE= z5{+`?9UkT2RLpG!zj7sK_t{lkspKf^#!UM+-~+BOPi6wye)p?raEsa9&`aC5P= zwdi0(32#iFs-ys#O5xhx6@9%S|0k^CaMy-)DQzKN9wBA2V;L=nEBks@Z0za{yVj+` zRqKOlrn-eDqr6eVK+JQMO1sHM-i1DHD{^9k1RzXji4nV6ryHp`E z>Q6qqjV2*8W083B<%THS6>}BJ6C&yJ+#m3c<*enO-8kCDk z^BJC^G)}o(P$*Hf9~{dUYI({{h@hf6shYKjZnfv>a=EZQtc(?MvGH;!sxyBYP@q}r*BnAcYQBuvm{BSW{8>{426oyNbz>SPn<*E-tLV7=f(LTT)lR~ z$`xzF4Xal5_4J4RD^{-UVedh)^v$@B1x&1XOB`Q@5)1A z;fH)}hNc=hYRsByIj5cM>fc23gJjm6X=C4tx((3Mtt_lTq+U+ETF}!KUet4$r0g_g zTS88Ff=%r8F6r60X4Pe3Y6W$eRxRXd^Ws4?zo+qt{GFQ((kg>=Ia=C6!qaRL;oI|} zaHKx=h#VYohIAOk-DziZbWFxF`$w$BU>`bqoHTBeaL)t7YXs6tk#Zrm!=UGqRM@R~ z>MCC2$X(R8VlGn)^6goXMb)t;)!Va?M@&|kq68ZIaE$y2JCR7%3fXJ0a?OU2Y=d$< z%6!?bxEHkK%nxl3d4V;N4@kwj%_*{@XW7AY9XB&O_~%tvMcNlV7fdZPZ3jo0Ef z!5z1is>6LGS16QdL@8;YHGnZfx3jr&ZA6J#84^78Qbfs`<36R>$}|LE!3PT-B<)dN zFE{k{^!2UTuwFFF5j4S?J2pnym87{82`cGgb(9JaqZA=2d2v(NpiB#aQAw1T+r%2CE|^CQ7+|njLvn?Ms5(8mfLk8cqKwt;^-N(BNsB z7nCI*3`rEq4@wm=p~$t3m8qCP6FE%_9_c+>0uPNdaaZ)MZ-e2D=0=5z6^(o-x{LGD zMp?*)RL^=IvhFn-*#pXqqqVa*d3CG8jRKH_XjV6yA)AN96dims7hZ2jliXZ3H#nw- zWfK;YwQGgOx-89lZX077qW%#{|7MaKly8F4C; z+ooPv+LiDV-NV|DA?DV))WKwP)l4NXF}HzhRc-P_lDR*UUb?J<6(n5Df{HXCSZ}8b zoTFw+*|^o{h)M3l*|y3pzR@XVMH87vTBa+t-pUg&Ukp~R4~t`?G(Hp|uc9IVok zCNmP&RRC8bW+6ku`BFAt0jsgWeHJG!8|zyGy$X? zkAsxF5W#4S0_SKn7hIQR**Y6hU+)U8lJ&EXl9dPpej$$lWs{%7 zUOr2UynJnYIFc{cM2RpYCdzLK3zE|7uq4&U=4={~=}Zems+u5_>V(!X!1v3V$2->@ zAIL2W>q>?E7>_GNs*A%3v+$$Li)e^DVlx~A0)tL>9R*t@k=X?pQF2oha47pC_usjC z?V6QcVf&J{*GiLVs@=4m-!7q1*jrTRo{SY~EtW5Gb6(?7H>FX0F--&m_b$ zuDinAEQ#W;)M=`M=n{;QrS4u?lZ}z%Hro*gGFGAB%(F6DuSM$B?pqvcUZxy493G{0 z5;+bUlTcD0)+`Ed;qZE!QWAA(MsvUOxh*+$sZ7iMT2@ja6&r=aC7PbC2uG=EOEm$q z6CO+TSL~2j4>pCx0qDA&+=nhRS=G#1l+5vqRuKsKBThj^d^M{fLkqJ4t&l@5oO23C zi8w6G(K$(=OeIgI1u85}va(ohWT}J!^0Bh0mPKSzWE%yYSeC!AFjOxkF>J)RMWW?_ zql7oNP4&h(x%fzDPO|~QTdSt>G@(R!Vm$2Mk-UjOd}mKl3d8k;n|ZK8opjLj94U(> zQbvQ@xe{af5-0OIZJk;$)iy5kkP{Xdr;%2C54fB^thLNW3X~{UO zj+Hqg(29WVL<$>`DdY+iOu5|6RWs_UM0LI@c3Pn@Bt4Y$Bf5#)Ar27ze#81z^;{bZPBueM z{ka+v%HXTVp(0z9P>H{9U&iw&9FYQ$8nkqcnNod0S|De$IT$L_qOCTR9D>qjv0O`b zkg9M+PleMIjXNTVk4Qn4yD}B;bj&0-V*9BU+u5(Mxm#*V4uM=E%fo}hYDS7A$wye; zDhp0dWx@?z{Zt9)>)*I$J<5O_e5x|atOkxBDiLOmGeERcI833<3g7L#b68(q>Lj7w zbIC`-5{sD2WUFZ^i;QN<+g+VFLEYwfJ-ca?@Y@=c%Egq@&+iKY_o&8g)r%jJ zl8r|4Gnhd=Ri+EP(1;Z-RI?IxC^@A{ddT~z8djiaSi4RiO4qr4iH(TaSaZ@wAKQqH z6kYSxU+=qtwZY|SHMwJg=@d0jAAY#*c*f;2fcSjcDC0(mD;S3u%Cx#DY! z^K8CaPSh4> z{o{FR5mV;6E|KcPXvb@r9B1BIkZix`h zQRL8rym44BYqOcLd$g=m#B5Mkqj6yYWlV*J2Ro`U$w2~^aQ>{qqEhN!>?*`!M)S1w zLaP$-Tv}Yl9JT5p%cZkU{B_-`cmu_B!S5uMB^`9Ht8P>m)aV;I8_4UFKq5_ZU)fV( z;%DmXut-5N@i~#-K+7VMq&u&JWSNIVh;T>?#4<3E|1lEoBqxs~2!E8aoiqGmv%2c# zj4W7r@hZw^*Gal0K4Q)K{+`uTR3tlt*>fZ$E%53?23n>JyIyuXPSr+_ucYN1kM4A6 zS%XX3PL8XKYz>(_c+S#LI)i)$m2|51jFd`j!VQ-a)K&79#hO)iSjUoH%(G}o0_y2q z-RM|LWJy}r48zQ}G=HUCqPND@Z{l<$Na~Re%GG%@C8!T$wO%)2i=$riISoU*v9L_{5}nleMAw~}GdcRJ=2k7`z} z4tqBBQzef|qkU>r>OhH_3XH`}F4S5guaLMKYwC+X9vygFZji@UEL;vDSr0TEpQ=iN|EK7&;<8d#zYmPb=%ZWTNaz3#H;(5GyqB%VdqF9SbD&#c1bF zGNuh(eW`F`PhVZ)1+R^3{bC_wkW)9Bv_&WEb zL`HfhZ4Rl~k>uFuFh?yKMqa9G16|s(M%3%;_t?@Rp75|)spSsRHn7Xs92Cu=w&b+s zdDUpYgqG7>g|X6x&F*xeEIaVEk|Y#TES-O@!R)1;9fn;i%=}0=&9&H?T>mKZQ!6m! zEyydd(Y!TR(ft!DJ&?DM(O~u*9jso=-6R{}E2FA->k{kB3JbF5!P_lthZR0wsC`VNFzl>p_n9+n;hQJhS-IYf)9jgM za6F-l`~j~@ozR*{iCG|3iv<*#a9e{eHYU1@{I{&MWi-V+Y^vAmi<0xqUx7kjbP|(N z6w3K{(SfCOWX7a++J4gYgZV3)m@)Izw1@j-3m~pSQ7NHXBkx*qml;gN^@sKjljzZ0k9BukM7MXsE>teC!@&5K2{ zI@BWM_?1+DO@~p1PfnJQH)VeXTj9CRM#v|bREMr&S$*(II1~_QL)W- zP*?=@wJMx0PiP!ajkIh{e2{xFEbs)67~5JrY37=XqN*n3=0tUcAT>%VFtt~Ufh;Ao z)S&A^VdliydOX{jrn*sNlI}T(=wt^ucU`ozZLplKTSVg#2iodat;@Ku(X*COpmI&V zz7|tu%*(;Ly6d%XR<4YtEhf#(5H95!%A?UGI#`^~QS&%nN0+f8MH(huk#&vDWfqs^ z;zgsjM@6H=rX)vL3YIL0rmB>q@O|1WmF9WoNS_C3Q-Z=;u|#zp-TimNlH6mZO}dA6 zjr8P~I1lne9AcOL^JNk}@BnffzvSNRCW; ztVSZ^6FI0k8Rkay)3#^|iW^C@N5yQSs3J4-3a&T}^64_QI(aO@);-*7^Y^SItEI36 zl}v|PqSRF2^c|y>rnwDww59k)VXnTSoaflNO+6>1@t;ygsR|^0B>Iu39cbFdp@e5! zIZp@1b#(c_hm2}{iw==icf;6G&EI_G;1ElJWM`fa3`G{r9kOJSJdfaFl;X1GFsW?0 ziL{Y1$Cn>bPoySSRcFuLW~m$vsOjrAA{V#6WRS!&oSiq$dM5=GMzr;Ab$ z8Pai%!k;q~6s>3{#gZiyIca=2uaDWku30qbM;q~$Ttsza6h|;loYLlKu}+r5mTEg@ z>e{2ULn0*2>Bw%)70C>fj8SZo%hY5>BpXGC>xnXLJtQWwB}W380kJ%nN(ODtDFv}!neYvQAdeJI)|ta)h{Bl0aM^!z z6eMT4#l7+2FUbz+hzYL)x@_ZzOh7kPsA9tvdWxmALe#2_6~p5zD#`$oF~ocmq63eN z6Y#_xzm?9I&kKE85Cj+hU8pqo|7 zi+MP5nRpxxdFg}@KuMOf=H(|sA}#XBTmHjGepunsAoa2>?3VNKlqN;xJ{X>OoW?Pu zW?P3_xW1+y6|%|bvuz4Zi5QGxj|b={e4<@0Y?7jbn_D-Kjx zqcbpo?`a87>sc$L;jkBlVSwCE`W&X^-LcTKmwvmctUZ(b(W*y7H<|vI6lWu>u*l zjf|si{Z?=ZqxB23(fGqmDHWq$#m_O4p;(=piLDDd_7pkEB};~>xfmN?e1n<=VT*Mt zC2VQkayCQNAnU`r|Bs1oNuJKNurwr_v-2u8OKp=(maAEsL;R=^c~SF_>KxrVk$4;D zpp%<0*vVa{rxGf=PSy|msgO<4UB|11>y(5ImbX%A%<9C>!WHXJ?x0359=BNZl2J$} z&yu>{)dqu`jV}{5y<_I&wkv6RT1osW1LDnj6eJw7{-Yx|ZF*Edvzb_`Y`GNXoF1;z!=6;9(GmnV&wYfP z(HSGbtgrD_+O2=MiKA%UKk&C-C^@>O{%K@>0JAbt-gx9rx$dPTjWrrT1Z zGlvfmsmRWoa0ntchb+n^Rz*?gxpkxAhSiRvpuvy@3>pB-7P(i+6FQuUs@hALT6?*~ z=WS&{$`4)C)hI37s#n%b7OJD|d~TFmNF?PAQ!rhFi##Z@;mI~Kb=#X~6E`1Ux6zna z)5(A*Ff@AF2%A@OV!Z_Ux-XB+6`ON1tl4T+A2%?Q(8SXEHd>`;w=Ebj$P(~7HCI;~ zol22PGcE{`Ok{oFNT;1-hC^v8)98v>oPkh9k)6L);abRSC|8w7i#Qruh^!x<%gKUM&YcJWgWO7PgnWdU2_XN{H9;D&P>87ko<<>QH6QY6VfOFIcK&N+T z(uw%o1WZcr6`A!xC7iCKY?{1}a6T8vSN;~=t zmzLh^A&Q=`6;te^v%ET#W=Gtom<6g)Xrxe$^3=UVkNmF0kzc#p(Z20Caz-U-I;mY! zbYV!&J{}jNQi~;wl=Dg!!jp_g*RcWVA@!6F%#yD3iePH>G#2uBGc{-vT_0wZ$6>6x z88ygJie#d-OM^-d+X8pWoVbileHUH&QlZm@bTHMb5%TQ0_%gbYio!BYg)nXrY?#Q2 z>UkG+c0QF;w}}o;@R4H{4*3M~EFK3QK{ZER2)*aP|?aI@>8c>iT@yS!1XwV}b-0d!{35eC$PCgx*-6A$A>u%S@a3fY~8YEzs%+9{VvZ?w4LaIWQK(zq>vu;W{j9-WlyVIW8oQ>>3)>INM^kAsV!;A>iiH`k_)QeqaglfT2 zXyxfZ?w-b8PHf0=4eX(v|b8%9YXXi?2gAixjIa>pYU?e_e4;UFcErktzO}llQ8dX5Yr)H{l zuEboLyWxX}Fm0VEg;j2lf1-tS&H7NASNbW75rH91!rMUE90(^8Qet)JSZe43GYyI}IT0k--@6iMWSEKzlLHcx1#(!P7$ zug6x*93X60DW0*=ma63GR3hbP^4ujDKRirNVDRq=;J73$nQcW$^z|`eMe?}76eUgqvl8U_dH_4F|_$pHw3#jP=AC!+7AQgFJ@aSHOr0&?U%HkGZ&(N)&Lkgs|5I?TUP1GMF z-cq8aOEfL%8ueCJhTL8Ly+nTU&-37)D4Mm4-D<7`n(J7~1`@3UWiqJYkW(dhVh^B5 zd}32$3La%G{ByuzJ;*oRJyKuh{2+#^j>>gVUj3M_Oea1*rfWgjRG{q`W$h$FEV{Yb zdPrwe5KWs%Mq-}W>5QAnQ?0Q~CtmC+DH?x0qD_lTS^siAKs!Rw<8_*bAmbvQyi*yU zuRK(B9g7nl6lYiWZL;Uj0&!n#?OxyP(WHT{#gzcX%@` zJ3Gq<>8Ybu3D0yFZ~aiyuBk@L7gI2I8Y>}@$`*j+wl+JWLz6fz!-Dc^S2kdSCDrYt zwe%pp*DCrxVxNYKV@o8UEXi&!5?LVcmyoW}aHW|LpUU){;Sw2uCGxb* z683_0tt8Da$#Hdze~fMJ(|yu2qkKS{#zogDd)jz zHK1RI8|5Dk)L$b0|NEc*EJMJ*$c>-H4kqw>%l7`6la#;y%5f0b@6h9C(t}gz@*kdm zzGU|=dx_H9`;{+le7~YWa0Y$gKOJHB--91^w)dIKm6F?I8La)26%Nh;Zujqek6y6% zCwf7MH*_xo&!tb#JM!1Qr6J^Zq9*Ka{EKp))uJ8{3gwNl`T<=KUe?{W{ zho4dj?cIL&+uBRYzZLhJ{^xMNz281=cj|kx{dXqrzp1FdZ*T8UCIm>f|GvciJFnLJ z?S0d`;_ch`8F~YKIEMb2mRe6#gKa%gM>I)q-|hX=bnmgw{mXFwvj4~X@1%Qq#H{^J z+~0}&A3u*SIvFuiO6O4Y+@U-ak#(-Iv{O z?+?&L_x{Im|Kqs78Nc^#JnTMu|9;~BrpvYcrpvW`{(BMb%j7of$Mk`DS^rz7Apex! zzuyS)p1l8OgtPpu3A)9&zbk<=Ex+7%vwgjy|Ce$9wjKKYrSx_?-DLf?Y0ZCj$z)eb j{r~X}?MIP*58r)RyM`S{9~#|%$#r`FV@8Pg*FM~A64?xk7!-7XAQ2FUO@jhXNPwU$5duU7Cn1@TNR}}R1ohETq67qu ziUQ9y8yiV7n7-KXlDNl!8TJiqt)e%JT?^A=Z8-FKZn zRb6%0sZ-V6lbgp(7~8yAGfP4X>v^l`%(6V3;aS#NM1aLwr{MqY)>%rnRWRq|gN9R2 zQJ|z2Yo{_O$K6%uySr-rk{(^9b=5zhQ@O4=Ul%h`Ul%h`Uni+W0u(rn&}UZC!J>?o zI9{EnYip+8chQ29k}QQQaGfqmpZ~Z2BUxYym*;eUb;Grwq|)Z6qTc&jSXLH*0;Ja= z&cN}-z)!<51-f($u=$7=AzqGnCE_Z`v_X0|(hQ`xBc<@7POR5(z8X3nM(m3?5;8Zi z%ud$*CS?Bv-WliTA^ia99Y`hY!SNforiA6s#rX=(AI4Z5&PVcbE2O))4ALiIQ|6kZzCSX@it)bNZmMp3XwuGr!OJxiTEV)&w!ptqye1YjQ9oQ ze#H3~h}{rdAm4}B9CwpbGq_7kC1;9>0T!rHjU}cCWkpDc+(~@AHn%>$n8a1 zfb&^6z8&e!IKKty8GOxOz|Y5d2gLVrJPqlGkf}l}!STO=twwq?;t|9baNPu?Ifxa= zI{~@h5h)bld@tfC9DjlQG#uZEbPD3txUL=2AAnIfh;$jSm56sD&PBW)@e0VaMH-8g z!h9TGgY*)de}eP?t{V?*E6#5vU5K3#*WtV)Vlkl0kWb-mr2UashvQku+m3iG&bt85 z#Bm?Q{)iNo0INgZK%C!%^cI}wBR-GgzQE2xIvwd-ki7uM6fQ$rjMxS7cjS$O{0&IS zG~Glg!aFScG>-oUb_HY}#_{zyei!N4$S=k5aU8ctIvDXR#On~#AzOwt8?iIuH;_4w z)Q|WmuKN_}U5L?$6#k9$c3cy~=ZQF`@Frvj<9G$qB;>{6_)?@d!#=h{RMJQL#7$xSR8)_jKV`mQ*pi> z__avwp$K{1fK?%V3~4oFy5sma2z`WfF0i#oug19>$6XPBVFlGlFGb#3TqEIZ96tq_ z9l*N+q^ap?98-{a=HEE}8`uz}!;n7|>A!G(F5&NK-a4cyNE3j+fb>(+fpi$o^N|)J79+O7`6A@WjQAGLDf9sLE{-2V`W7OE ze;}UY z0P$2lC+t)%i;gR8$4gk|Y@`n&w&T1Har`J`CnJ3q*exjQbR4e$)*a_R;&=?w&4{gW zd;#KG#F>cSL1s7bCvbcRuA}g!POP7RQTP#Y4)UfTevIQx~Jc??U94 z+wd20-;Q5idi07WvZ=R|>I)|fYykiQ%89mEg#x{XMqasC%{f5@`Ea898mVm4wD;vbNE z1v0a7OkqCGDGcOmF30(KIKM@q@b!?E0Q&;@SKxRS<5wcx3_J_?YS!Um9ix#BL97J+ z8p`T`=*`zK^`Itb>wA@ZTxGzCon01?L;}q16RgM_iKt ztUuyJL<-*`?nIo7^AC|v;VZs=0I;Drz6;pv$jjtwNaiX&z72RM$Rr_M%-H=%KSrDg zY%}s6LwX$XOx9bE>+fON8<4(-_!zKw8JoY{)==yV3I`2%SV*WpE+55oCc%0yTO*$A2l6CbW6OWkhDR}ey)FM|K5oRtQ*C%R zQHJzcKHkLn>8x`M@V9|=MZ5^d`;abUna}tdN_sP9gMx=2K-aH0OAI5E86Af~aLAF0c{0O$F*W-Ib;$ML-^OJaL~ zzd{EHcj`p_Uk;g7h!1dCHvs(vb-R|YeTs1s?qoZr^DiM6Lk9>C=p^`m4z9nCbr3k# zcI{!DM+7BLK6nq%99;XU?HZEu(0{hD6#0v7=X7`<>Lg(tj-SHGnYMaJ-cDTG6ZtnqkprZk+w!~O`f6M|0N6gp7vuan9JjMwvm3|%LM%dj+=hS6*SyYY8uAJeCnK(h z9tr1jd(inAhy{qJbN=PFyf;`6$vs2=ap(=12Uu0Zd} z2euIT%aO(+_Tl{BSmzO(`w=H0?`*`@tSb}8DZtm`d^ko$+j>9@p*Dht|u;AI!&; zY(!oS($}DW1dd-L5TTz=tS=#dp`r6IH%%(;zbrvfKH}A;_DG zxCiHJfY;&Lwk*FL=k++Bgt&`!zRxLNu98zBNB8T&8QHdosKwb^C!EoFT&IYN=8@Lu zfx{+PZQHbrxU({`S<4X}M`MDfB?Go@I>0eLtK}&Xts82Z^_tM7EYLo`c~2`U>eNWj zDX&DF(ypZy;c32fKtjveu1;7QMEo3Rb)7rVyjy!u=g}zU;+AEB6{S`np?U12<`EH9 z1D3gZ9%$Y?;?@Y4)w0xcU3uUhS94dOOS2ohBw10tT-LRo*>U?5BTjL39J}t7gyziw zw>-7kIBQ%pSFg;mqpi_as{t`CPu%+Mkzfv|1!KbEQ7k zF)`BG>GE`mXciSY;nq{FfV&I)@AI#ysf=z@dfV9Yp1947PK{ajq{fc#+pKv)A8fep z3?z3P-fVQs)Ryfhr6+nKBbp}-S)cG)#QK&o%^Ozq$ea?JK52c8r`@8rdsigKPwFwy zvvEhvlItR`=$0BcJT}HUJ*$1EI@hf$JTrdziTbxI>bj1Hz1N7AiwA_M4AIOAyS~V4B73c`COxVFKR0= zvT-!;KF|5poW95@jkoQHv|gvZr&kbPMHC-O#u4d#4Y&lEn`v%+i*eegA|IPLIC z&=Ke4my;jT6_NaeC`1Z0uXX2R*)utZ&s|6{BCKABwC16?pMuP-=kmEmVbgI=z66E- zNNK-Q!azQzwLkfq!w_kXh(#QZNdC#Ch#tf^#011Kh~p72M(ThkS6=?<^`;cZL&f)Vcq}hl$h19~w{u#CbTOjc_aHq>fzjIYPDBdi(^DW{n0%l6 z_*|oUf9U~Ws}UbYT#L94@e#xgh!i#=eGHN2*(Vs=gmg3F7Q|-}s}X6QAzyq4qJ)=m z{0ibO#NCLmAxe0ikKf{y*3j=F)**ht*vCjeLHv}@KS#O`@k_*mh+iWfLOhK44dS)TXX*CqZkxWX5!keuhQ+Kq)r-D%&y1U5#_uUm~BG{HavL48%-C30XMK=5yLpn2VUh z=ebDp5NR)?0I?8}LNU_$h$VbZ*bO+o(RNP0`^|^}#9I()eNc*c8{+MVvJbZe$7Wax z>`p}TsqaBtfk^Kli@Er`z` zK8IM1NZ|#f+xYk;PG3g)3gS-0R~g%dbT{H2#9GAH5#K_58}S`PdUi&>B>9W9U;HuR zr-+{+evVi+Ao|5!EuQ@2`FVey^VOEBxT~%m`ql0?&n~*?ww^1#nG(Ng_a}X-OYb=G z>)owZm+hZ;?4y}iRkUmW?%v)7%U-|YoTcT*E{K18)SdlGhIsGoR5NN)uMJzSxM*kn2&RS7;-;R6644%CF_ltk1tJ(MF?3ad49kp`Bqc@EFWaG8--@fOo z1+Tuhcg2jz!*eTteYQiwilrm_pE$c$#{O=%94o$RZ6N-ur;p#e=e{eZ#*di0ar3n3 z4qtciUi!s-N7j~So_g@Qw1}0@58CxarGM&Y4@LSv-`B70{-d>xgCBe~=JX-ew_?lTAdYra* zk2B8>W8N>hSc<{~q+hyTxxOt-W<;di|o! zx3zh%lQm;!&&W&P@XXJ?YlU^*_|mrf#^kJszOm=TWcOWtHvKYpZ}sT!ZvJOvn+Z== z&uKn%YtGHdGnRIpJ}s*pWqx<;!VOpa@J7*#J6o@P_|79a)1GVezE+vu=lt!v&aK}3 z^tv&djyCr!f9}hFKR>ZkOxDVa_g?kwv%eo$ab1tLyB<1lY}HNoBp)kkecssh%O2~$ z_UBt(C>ef_Jd0kFFLY)%EPDS4(jvM_MxwRuyxJx zZ4)1AcF8|KO&$2|5AU7#&(~S)CpKS|`};@3&!6~l!XJ+eU)$lLdoN%2*XXM8t#?G< zShlSH^2j6ajyU+$ecso4-Q4M}@$Y+{7(1wM=ZqIR9BR?-{vYn{(|LN@p@p~pan0~m?a$9BYE}Gr*HNeK zZgy?f%$H95G05F+_?M5o*tucv@v>Pj{m|k4u6z0|+J4X3FP>i&GvLypr%nE1+$vmtqX5F%RT0_uW$LJU{Jq5Ph7k5`@&H(*3G?X!ib^Y{XX7*&cHn{XJ0)b zfAp&X|Bll=X@`csU3cjAqcgidaA8K`l93Otd*+!N7M=dxiHd%2rppC2B%@`FzO-c5hvr_n#;?OpWvt@r-3W%#UCll=$U^?j<}kKT48>P|fI z?CBpaTy@`FlXJ6&_Q*cvxATtWjJ&Dsy?MhTzFxR=`I|eQ==Q~l#hH_`-g@)?R#QJH z>=rk1-+kMEy7P?MR~vpU{9)b|5C8qZi+S6g@AQl7?7c5-sK5KZ!BuzO7&qYsYvq81 z{`-nf>p1uGuQ$FpY3|Nx2fz8{<7q=muDfthZM>D?-*(Pr`9IEU`#_I3KaJnG`S#3X z|9sr{+wGl73rCE7{HJG%{(QInEB>QnTX*hp@pY}zYHpnL(~uLxI!Di+`r&sa`=b3* z_P_AmtI1EEQ$Kde+S9zlyG3l+{^OZvJ+^;&|MJuGcSgQ=&^7VZoyVI`EB5cLJtN+8 zUsO@_*`xloamb8Azt4PS(52B&9esA$D+%ql96mnb)Zyp-w%I*n>D4XU-@EL_*?)b! z?!Enss*imzGeW4y~U4#h4|}Y?-lUU&_Gf*05K1_R6ci z>d=`zTU{M_{mhFu$F6BObcdvT??q)rnzq;R={u}x{ zKjX6Bhx~JF)xS^wKIe;#U7ze0ch~%x(S1y{@Md4q!n$+9-D3{jS$2v0$xQ34#p6?EcdB{j(e;# z^}lWC^YW@^3!0r%({Ry){hPH|bNSM`@*Pi3S<-3FU$Z8B{=q|M{FCw6SvNg&S7yJ@ z(v$aY9x>~q9}g`ZUwFg5i`&k6XYCOz&KK%7K+HB@S#~(rsjq!JB5i-}RLViQb*%w*#F9R@zT;CD(4*9zu@oY-@bdvy3tp(|NEu#C$CMJa+`Jb zkp)*SzV_GJ>)u><`-ze{&#dZt?9(^5ZX5VWQK#8g9sF}yhw~N<_;kvczfbpGIeq_A zL+;-;^1F>!ExK@LW9<*FsBOppYG41+s?L!UUys?G|4elKZ`~eh7x&TW=e_*i$hxC{ zeYog?{#TyJic5biwoT^FGc#}KK63K|qc2{&tY@=hmt4PR!?)AUf9R33e@kAzd3@eA z$KQM;^2KegEwf+gvpM6tSyvu<|MJ$I_ghon=-&QFzYkuEeR<>0tva6j_m;nBEGb`9 zxnqy7#g8N3j<5T&V$$zV-Tlj3u?zawY+thAtg5`WQ6(oHfAQsoeO7$*;Kx<%+Pr+r zkF!2K_4ygCGbB`G>E2bl$!mMWY9n ze|K;E#|H|}zai!HMV-HD9Q{<|)!&srvSe7qh5vlL%a>f-=k_;}B2Kf;xaf;pziTYr)FJ<+2Ok*PcXRTkNoTfo^}4NLTc?`GzQ196 zmp2*<_8us>@6s>s>03X(`s|)5r}S(0=EsjsDgWn@K`$;J*zeAo7BM>^Vxv;E(~I@NN~W{VM8;El4#nJ{>^@Co*e=y|*uvQbJnye~F{ z!{N7|79Rfq4`{;4kHpI);qd-3;qm4dg~#to2#+rx7am{HK0LlKIy`U3Y9vvP(2bE>@zR_MnxcV=1=&##bhL_*tz}tEZhj99D85|z}-Jv}{awzw9JX8v& ze-~aB2!{{GgNktYcMko&$$_6s9Qe?qXL$WCJeUnv?hEnZ@h2SmH`_t}_c7u1eC5!d zPdl{RKMwtsvPbdU*0-5y!;eA)Ct#aXE@lO<`;yQKW|8Q{Q89O z_%?@eSLeW=3kQeSGt*&QWTDZ*-PbG!{ZsIuES&t44t8&v1E2Ff;q|O_=$F47?8BQ5 z?RIQnc>Q?}_chjGo=S4y;hm?1*MGi4eO5TMv&(_cg%0z}XovCsibJ^{U_T~Ye=Tzu zcl{jrT)hc|s4?DE;8xD5nu)};b$^oD1&@WFq*nudAa@V5K!nNB72R?k` zfX{dEmrikLpUWKjy&)=meQt6Xj~yJ^;WP(-;|quST;VXTkK^%fxb}&3&@;b%c=_=T zcIh*R`EIoX&yyYWyBzpA#i1SQE(%}Ikq+%}y^}q`OwG0v*E6Yn>h1 zVTFVK0j}`(bxDu#c!`4@zQ&<{uW{gcyn~)|9Oi}24t~WfhjG#0q5iua#>;kxe$REV zOIO5%Z=bI(4UfO)z_*qC!^@x5J3QXU!QY_we9)CAg+mVZ?YKjK`5o-lGY;+0$ARaI z9pi zb?|$qy2I;lbl`20gZ|GP`sICxdd_vwKgfX(K8JaBfy2CcuLGZx9qRLrL%HuelsnwP zz72G+|9KAcV2nfkTRQOM)t2G=>oy0wl;U6q#yZ&fvmD0hZ4Ujr$3f4V4*NW>JItrA zI<$YY&f)L(EW893Zd@cf@aheReoTOpaC*K!H#|PW;l7SJjQ2eb{{IRG`N5v>t#Yzo`*(+uTLw7_CM~RXP<-L`-B62!?^I} zW;@h>l|%cS=fH=(4u0=Q2OhrVU?3YF`T{a?=U~Eau_d< zIpEhi_-}p({y*fvt5k>ff6~DY9CGkiM>&j(j~w*;>d+454)PB>*u(A)_f_uDUzrZ| z@8H1yIZk};8@_-2y~E?zI@tM_V#3S6=1~7?2fiH`6JF0=hxuZV!#JAd(4K=F#&35A zKlv4h`RHSZ`X6^_&qEIT=g&Lvc4WWs?QojIJpQc1cpvZ3@2ef=k;M-4(HRcq?s4#Y z+c~UXs-wf-S1$)WmpRyhc~1B1&@cNP`u!(|@zTe^E?wr}Pd?@_UVe7q?S&3@{v`*0 ztc!#FjB|x=&u<*~f1g8rwm7tNe}{T*cJMQYJJ`KW4u01N2fWmwK0b$be#^lgUhdGI z$qwyS?a)4_JIuc;9LCE?hkclt4*Ned9meV74)wXmf&cLi`VTs+Yo2i6zsF%-OLd3m z+v5&=d(xr(w>i`^(xD$q9Q3br@DCR_jQ1=Dey(xAUvcQ)a~#UWH!xxSrC|>Jd$U73 z40W*2Z^VVy|Bb_ViF8zOzxJl@h_-t6qaw?v0^@h1-BeZ7O-nCak` z&T+V}R~_b~BMv;=?l8WNIJD`D(_0;Btr3$1Vsi z)_)oH%{t=!s|tSq>L}_#p<3;4Kut)a1@^?6Y3zu~_ArS;Eb`Gj6t zfB6y&WP~!tlNpaN@IuuuZLRX-`o8E}I0~g|eT4e_p>ZzWy7Us=K2?{8*0Y^jpSHCc zPt|x1>p6my?l+3>SL*Xmg4UB%tK}1QV#RSgly}j<0eySc86NJJGL4t2TI$~{r2Zc{VN{k!YLT0WR@t|z)xh3?#64fH_}0+us6#A*4eWxCt}d|xw_ox!B{ zw^qE8#cw)K%SZ0hxb)-YYJJhxsx$Qe&Fz+o?_DW;&U$Lp`l~H|LrderpKRrqwzb?R zbUjl=UhyCO^)uIp>-h)QKjVI_hu)K*a2>aE(HR<_pkb@4nx|0D8#PYfX;NsW=7qLa zDu4JSJpYl$OR_Ou{^oJf<&f5s!Fn$1soSS+uC6C;Qw4XT##4XL^4%H#l>6ntxf5RiR(JuFw*`!K3Aq z7HfPa*K;`rGPT3F1E&F^iks=iuY+OxwsT91c6wku)zzqy_+=D&;apSa&W^Z^yZ z2*y8W`;)}&BmMFN^R0qD#6pmE{)X%6KcMly_`WtXp3LgVz}Hr(r#QIbe{@eGCy}QKesb}lk^K4FqyBv z>Z$dYKcwqf%kq)T&j5WKiV)jcXUyaFNn-op(XjO=1_;$N&`RHzv|BXKcNNBbH;eh4 zL?4tQ=&SVi->My^X?!T_-@$sU38DIzvb}ZRrtwmif0+4DYVh_=mT#aJToHu-)6lL| zu7^InMQBw2V|wCoT}~g>B5dOJU(0sYAEn#P0-q?KU1(fg>8WZfARvbVBRd#Q1kzw0vnVU7sYz zKjr$n=|gaYSbdqb+ok2JvNVvPa`F2Fy)+)+k3omF(iyp2fA?W6e)W&LVmq8<%)i&N9joGbQ0(W` z%oB@wB7C@t?LduTPYM{XGw^Y&=SZDyPiePb)V?MBcKT2rVFJc2g-6&wshgwaw{kyL zvY%PeR^!6|{5ahXNq1{Jh5K<-)$Jhinaq=+w`n{<7i(=~9)8F?3^0BN^Wnf) zUC-r=`!JysPYw*!<(5jhW4T|x(75nz4JttLx$yXVEg`3B_hd%U1kbbY=`CWZ{4m?4tvyOJx zdi?w`I{hXHg+Fm2=`Zc41!Wx+P|p!yZ^!HVMf0kV$@agF$CucDa{E>LyrdN$W&Ke+ zPOJK8J)2n1+JRa=mHlcoqY7nbF&?GmlNrB|+c~m>##gic?mS;q(GNW!R4^W+_J3e+ zxgRI6p66ITqq&xk(dw*!_txdM-xB#*A={x$I+RrKhm%Rcl2a=`k@Gf0qTG3EAaTO zcuVW~i}8ntYWXT-e!PSEu)kKfJIHwrgQg&(<{ca>@RrHqsRrN#yQkO@LS{g2=5fF8mF59oTX z)QRQdaozBl*5haS9ORR{`&=#f7UlyA)7j1k3_DLh8%6RJ&9r;~yrl5TU@q5~$3I|u ze&CQM=4xHM^&HQqsr+MJ(cHg}!yu4;*F-Id;jhABo~KHG(Rw0uVts{NRe%057x7Em za)0^H*7dAr`Q<#Wi+EhSw0i3|_Iqo1Jt+M}`xc}>!1jvW7i+TGuY+BBNw>e)t6Wr= zr|G{a_e# zbI>f*4hd39t8T` z4+>q?a|Gz8AM-&-U|u!w{9D8GZ-vUm@5pq~^-1on?>B|<-#cr(YM91l+`S03RR8jL zjq~(uJw@jvF9CL(*Yo(jj`t;M&eQs1xjtKZ zXgxK)&~{kE^J(;#8khckbBva6`M%cUVm<4a=aCDve0SI>3Tdn-l783-0W?c-=@g7=YJtlxuzNKX>|U=xD0=T06k(Jizd zG?xmu^LX#V{)6=61--PM1N37`2vW~kI3@iDxcyUAuKukcRe$?g!%SpD87$tO?O?Q?|jBCfxS_u-|UA4F^YF5dT$`Lvwv zOu6Cbw_v=%m>;j~$@Tn3mn*zlz~j!(_TfgZPa?OQ%kY0v;F}dYYeWc)rv1sb=}!=niV< zq$lvE;v&z1dEwhvj%xBVWi$F)qiLmBI7;Qi;M zM2$UDpDD5BmK+cqLlHMcw98l4@@DXs{ir3f;><8*=|HK z-i7_cRQ3-8j6ceJ2(bMWd?eR1$yk3qisGoQx8jPFV{1b_mhPu z4`V(gJ*Diw)pEJh*xeObTt zm6osMa_iYHrLrLrJ(ux#bRE*=Ze{reJbx8U)%yR^>a2r2UbeoZ@p_g|i_!P%`CQ{4 zGTw&gyNbUxF7_>{x0Y{U$M7ik?}f~Vt-O!qVLjQ%r}hlck6I$^;v3k`^(?tD)# z+Gy05sr6m^DMC^Z1-^c zD$wtZ9a&-68zx&HWYlw=Orp^4Wa9EfX{@^<2(;-o-pm zW%&!(ZZGG3!W71PbA8m0BLWlo7uo)l=IZuIWcgw=JJmB`i*C;e%(pXn9;xcC<&$(` zO=ADtWz6H`{*j&|JkX{7UC@Apmm1HH&K;ofM&tR;iJlryr4Jtvj&eQQaDB>oeNm&U zYjtAYrm{m_!uU9zf9nQnUVYB>Kb6-7b;f>L`cPeNInU!#|0;}MdVk<3eVBky#`T$o zatZev_)eb3TYjkP@8|ktv)u@MuYu255B*LewNHTkAK}SR9=}!md}k}mZ(~2O#_$7= z@VY*5xxP`Uf4fWgz6`uK^Q!6^E#DpXox(vb*KgFP4damp{$RA$A9C z?tQxb#eaT;{SXg7HPKc?n zi0xs3=N;kI9*@>jbBC@^3fHp_^Qyw|)2etJd3b%Ds?}Sox@$cyOV{T{*3*mS8;o%` zj@!X%)bf7Tb2YCQ{B3o8r2eiLt|!}*r7Zsm^E{IM2jNv6+jAE`hZQ}yu%A=K&y~7! zJ?HU!-N5r^fc5_@5x{Ce19LATkeMs%9-`8LIwyh_a&whR%M*95^-tTHSQ#VWn z>!~LK z>)3xzHT>r+zTb@Jw0r~CCywpd))`!`&bHb`YyEEKt+fAQ_M;B4KQHwh#`@iczwrag zp?dmrwPM)^rsp< z)czj&ad(8z)&KYnX69QYw@(+w8{+tWmuvm}*k1juH_}sezt&TR@kyaI+p$RIL$KeO zhwj;2F8c#l@%U9g8jtHsl@>gw0x?K`xzRo|xPMdk>-yAl`{cqfl6=Jv8t=|}QhIXz zjs5w9Tu)DfmKVDe>C*BEvvvE+KHetgNu=>!%}3miZgO-H0wnnA+Svs*^9;)@!@O%y0tKesT2L7$@YdhmzVW;W7 zN?lq(B;PMJBjHuNza)IPi^oNcF)nV3(elacw|H3p3|^1;`T2VhdE^v6SzL7^8E&wZ@O0ayCJ;Zar3@VDeI|cys=*2mz3)rp!NF=zw`^Pf2vXc zw|HLLI$oD3^TiS7m5cqQOG9m>yhg%5GelVpDXA)58;QQkG4CtxxifeVh$hz!>J{nIl_T>)py4Yg=ySUs{ ze7}t=bOoh8ZN{=5-tU$17|H!u%Kk|g)^jn}-_7-x_B;avklHiQUF$Dr`Ac~o$@p61 zTN&@hc+E!|Z>JM$;ZVNc_PQN}hqs_TNPo+0EjWVp>|wi9W!R-rY@Zu>yrX(5T*vmx zZS31T!~R1#`wyU{3R`&ot>XPg;qANP&l}G-i@80^`F$JFbB@e|9rb-R@crHfKaTDz zb%gHUqu>*T9o#-$c>b09y_V;}t^8b1_*sdLAUzevy6nt2jW^t>%a!%)GPW~r!_I8r z@$Ta97o`5LpiZQ}YP_!a1nhTHc%9q1g4e&%8n({o_8H3Wi(+`Ha5M8c)p$SW8TKmz zhW~Tf`MTW3Uv&Gh8M1Pip9ySdy0iYX*w1(K^9bSdW|m*h@-CL&z~gS~ZMuC1fM*nP zPuJz9#_Mv|YuL(Szf}Hk=>f(ULyX$T#m{|m7_T~4qM*x*tpVera2P z^k-b6^)xa+@9n7Zsv#Ok!u1s5#1HAD@kr+FRm@M%VvW0$H2!W2-&ajbtzYizIP=_Z z>`N^2aJfsgd@1WWj+E*d;P;(`pC5309=$`iXBo@i!+db@{=-tnr}22-%J0dPFg~!C z*026(3@~m^>q)j7e#35jeUX+=>aXj$iSJ0~|k z&s$iOR#4>iTHf)=6TKO}0^gkM!XjTm^2GR@{5)TB+Uy*k&I_O8O)p9FW@hK5FGXy5eww!<@wV2q`;S!p<%zzH&-9cFUT(9>k6}qi!$=(=jn_BU!HGHeo=Os zWZM95dX_Jp70mHbI}_5u_uck3^9zbsxOP_12u&RCt zOnpAY8``C+^9oT{ZYxuL41x5KMKHw#~rR5Z(L+5(Yh}16XV%-zm znCV&h`Gr2dj@vVP4(`I6o(6to;HJ{^3o?|nCX82eUEgw1PNA=)$eY9b^7_*XNSnHE zyM*e6%1MOb)lM|B7qCD=cMJ#DYSBZx#|7|a?N1L z=Hb}XC)`)M@reXzNmS3r7o1ePw2TagEb4c3GAqo0!O#t5N9Xz$czq?Hb{jqUUrc+dJ=VjcXoDBp~_28Ej%7sxWJ3G%B6Ysrz%$4do zJ_N_y;N|R`>~wW`2wadoPt*o+TTwv_Do`A124vin$>BTUL-n_J2 zpQSq3m+sBW&KRuW>?he10A3RC7A^3rX-JjNb5DGnR}K5@!5Q9^VeaAHNpTa$*lyJ?14tESGfyGZof0=G zfz3SKsGk{-;Y%-Afaz#*(wIrgL=mqFeU>UnnW^I0AuW)e>nCG?e#SJb+flU)WCwW@ z5}TSz^-n^gwtnck-28by#bN3!G7iLN9IHd{I2%L;kENxB3qgQust2A8#f{L=he7rE z3aq%PlLo2A%b$HM&8#*-eWO8u3Q#jy2%>7u^d~CvA?Xhe1VscYFmx1Ydhl*^&IfW{E)xkUoO z_MNWE({_*O$4byNO(!OOZS_(!9R^okaZZkvF*sX|0|NcU7~qPls{MczW@TrpDbkr!^m+!@- zlBS$NY8SdtTUIqFq+5$HwahNg%p_B$isCBMjOm>X4ReFjt|k~doDRJ6XJ_a0m5NHm zYKGUom2$`m3;aS0WiGw*vx~C4#bAn>BT<+dSEiyN8qI`zQAl1|Zd$t36`qQ~Hb{FW z;vW|JeJoG342n|+u-}r4saT%{$2xM7t&OZ`-IIwJM+qo%zW^aon~zuOt*B1-Ef#TrO5;ZS*Pe9>@qdw=4NB@kT=IZ z9TTm%In@o2=|Sb--LSJoZKi0gx{ z`1H()P{)Y8A?+q(X{nr{AdMMlngMwbVG1U5GI{i6%E>L%ehbwrL#+U2FHnQL>3+zZ z$+)B2%D_UbAm8R#O3@)Rzfd@2=2y3p?i^(o zmD^2ZgOfxF92-uQ^MupF;@RH$SgI2Y_EhpUz8k1ix+Kaqcvu2?C=lZZVPs84r z&S^q})rXnZCQTKt6oR9eg1D*$KCB8*CB1i~rc13$GL$CUbT~v$l6o-c)r)dYsH)Jc z`9O5i_6d6$G+PX|Z=>nFLX?~i@2R)|`&+6uf&-+B3ybm#)T$k&XXju(AW%<6+Io?9 zrj3`bhlw_koM;yu`Ed9LdEu$D4TKiOszO7F2B|T0$uO^jbn)uEDMRVg^~z9HK$jF0 z&4w9~B?d2YQD##wtMzW( zFouF{rdk(!PuUsSMGMr;L4mGFZd&2oLM^F{1O{ReCPNqlB}m3GXjujmG=$6n?S9cJ zPy?`n7EUS8=J=44Mm9zJV=6beI6|?uRguawJR;@zsSHfhX>i|^Yt^J*-;-LOG=XaG z4vV%7%`I#&<)o!!9MOJ4{N#x?8VApWKI{-vg>4QtquC)|cW%Zo#khFY(lkfVKE!0d zFAu{ZAzPPio6ddn^c-pTxz(jwi(V|KRs!d-Q9=E#b?fGZ?=2ImA55j4STZApG<&Ke zx(8`0_@AmhNFrz{l+)5=LG%Du<;cv46))X{(xSH*F?nPAG!M(j z1!-TBCsG)HzdygA$S3|41lX!*7ziG3aAe(*U(v>%;MtB%{C z>5``=#$k=-RsIYgCl_GHC^NqR8_~!dJXB{+Oc>U55F#=pmPH^w4BK^0nN(VWa-hbl z9a0vM!UhG49b~&mZ!r(DJ%PbI()5r8C+SU3S#TxLV;My1Q$){EnHSPZ~?;32oh{*wK{RG3E=qS5|rf;bh@7J3TT zkAG;>6ugsC#M`tz{tB~xLn%yerGyHQ_N8Ohx^$r0mJW2wN+GZVnvklm_2#2(*C9b8 zy8CS+LE8wA8wMOMRrVY_??Jz)M+ca}w9|)GbCGiU$Tcs_3m)d^LrgU3Sp`i#p>9!c zK88#@_STaVCnuA0m(Z&%?G`FB3aK)OOxZLCV8ifnVK{{L7l60+?bSPZ2DraX=+f9eXSZ&4=KnlU=~C&yg*P- zNJEyqwu-||#SSw`t0T-0^gK1p&4(8;i&eHumYuwrMp*Dc0DCa{Jord}cAN04WZac7 zM3$|Qnp{*}McteKv5IyPvx>A%wrSTpmci!Ng$38rL0or>ve@KiiFLpZ4vi~fq%5+7 z=lY?9z^a#((<%K@jK|5dn>P2cfl!P+WwlsU!mKn8yKH!%M(Zb1ZQtTitxbNKIv_7i z9q5U#$xBn9gO{fAjOkE$X(|K5JJd_l;^f!!@-bMb%}Y~4n8)EOkgrJFBDq+i7i9B; zHnsYtB_J+VKB+P;YOa}zg|M1pLZK!bWOKI+Cy(40{WQD?>#G7QQzl^82b)7=8^wjN zmYA~jWZE<)G#nzQ7D?3l7{k6i?I#DFA;PKfCffl6D3(I@dSHvylQp|APbD^C-WlV` zCAd#!JC~_dFI=bz^pW04)yJx~`jF=vmf^Wqp9SAx(5J*Uc{xENw&_U&dagbC$hTe=UAnu5-x&O@8~)e8y* z_C|q8!%HLVb&4Rps6wwYh$M|^zI$1qb3J8efv==z)W&e3ZC;%VFP01e9w5TOm`(fG z7#)-Jgxesw|k1kBu0gA*+oMUr#q3w1%`N z&sWkC<)ka|+>Bh+Tr9Knjne))76EuSrjW0rDICv}b**x;^X7VUv-7;UMa2x+SFHMe zZH<$S2dCKG(HGNA@)AW_gWl@lW3@cPqCm@P7s+-U!gDnyGSlEMNV|~ku*{*1^z_0| zI?2>%+i{?EVbh}}dzX=OWxE4S09ZBJ5tRN5Z4z6n%2?)`1RwD70^W(?bJ{^uokf<5 zSPP>~j*U1PD$fb0ThqHi=r!dYu@e=dkvs>H_4F}Q z#*e+yn-n)CZlY>D$)zi(RQtKqvZw%)g2VMXPp)n{<7)@;ZlZDv%)$prSBaEV8@+^= zPSiFeLB=V$GMMSeoa)|Dn{~>%sw~lpmjUz&n3xFI7h{dAXKlKGgy;gw;N?J2FXd5*q8O#Br*c7nUOC_mC7X*c zZVK%l$)${C;MG5VU>(w?bZ^vJDhb!cef@a;_F2 z#3^ObNSYczPZ+Ra!B?KxFQ%s+c32guo`smG?w*t0M#QjfdJB`Tww-&^X3xeOe)NK- zZXA1_y;Y=BnkY$?=36RM_o(iIUb=*(plt-2Xl*$m?=z}4(7P67)v&&|A^xHQW$SFa zO}xE$l4&$?>TVOGX2CK_y$7X=#6$GC-s^n@`9V5pe^V_mntG3xdjvJT?!^22wr4CX z?S}UukN9!Oue|CO)$LSdlPH8k4BbW9g_tDp5QdbTEQQ9^PZdH1(sKNG-HYBO&}~b1 zY+|BJ;h}2K7;Y^u)08USVND`6Q%pU1sD%(XGY4y6EjG zAYP)Lo7QlQx8O{G_4fHPRh-z%Wyfb^#~3FQH7}xmZHPiF#EozU_{nu;3Xy5ekV3V9D-vZw-KvK+4X57Hr;NiGDC29{pp;#Cc) zEIAJnkKTunI+B2l2Bt1v^3N)?4_&*A&XlXwLu|fG-l__@R0%ZY&~>DZ2#8mr^jrAB zmOmK{xlgQ$f)AL2H`ny~7U|`xVCjp`1A=z& zhnsk!gVi+NL&rxr3RZ7$<-HCkB#!R(hJI zmhgpGj^i*1-^u8`WW1(J_onWL)KE5CQC$+Y9*HjaPK*{Wip}&6C*BbVUXzi{ean@z zT_WF2B#fV;3JiWoK>#*x&GyDE@(V)t9Cd%x>Ote3gZEn4f*UIGp79W!i9;IAqaP zs?+RCWiI6;JeI7v#(+;i<&8_Vh~yT^_7Ne*WBSA8wVuxv^D5m8P@BKF$ucFE;L|4D}6?Sf3_QM=>SBFIB)? zg_R3t+k~A3Wmd;~U3yzdy`^@2PBzx1uyHiNs9E%c$vZdn^iwsuI=8*StR9`F73K}n zyRI-V>Y;fPjH}$r*H<__JX7E4Q1$pJ173GdFUa->zs6vgisQLm4L}MdlO zR=S)GjJiMc6qb$r+SW-s2DGK1_DuexgtEjZsnE5PO$oDZv_w}DYL&uX1{xQy*HLW? z!ozk{$?2!rOSsHn(@N&acNI40WUV0=dQZ~p za05;7$r^2WC#kcONWYX4-c|F)O-l)B8NFBt+0CMcY=U(??0uxa1I6dYW5(h8IT!}@ z))Q69%U}~QIX-zzvUh6ol<||s>Fe~jqk4NyT|;mD@du^K5RUT|P34zbEd`L-&`ueV zC!`$v2^m<$Tm^;{tkmci2gj<%Ou8x>(T_0D0yMe#lwV2g5Vy)tuYD@_7Zuen04OL^ zVHw5nXKDX~7tSG9c{BAU5vGQMG;9#)*%MO%%u4WEJ!KTtw4eqrW%)9ELxTBOoMZoh zKkO^OPc+k9Qjm_1t%BHK?@-ugK2_fW4sXh)b9$>ZBp=@j&Pmtbph&*`oWCXXX3+~h zcnG0CauG>r3X@}ALth(GRl{8+dFgmgk&~017V`085VY62(5D_c=+7Ie$@uMP+R;_3 zX<)kj3JY~@vE@;S-?5Cwa4`nMvQ9q|;)$Fe)2FnZBS z|K^HF@H;QcO|)g{a}*`sJUk7$gz(^gB`w#;pA21j1@|KKN(@gdSonFnxBXI zv3OEneK&2?&Y7ejeuqIhpV`=D7!4SMKb#gNKV5&z5a-R!&+uv$@$`LAaZ^2bJ4$V# zqfowLw0Q+OOlr>lwp^hN(%d}!9*uX-BzfX5!f~pCpa=9v&Sr*c%>}yRL6V(xdHQT);id0L>hT{g)GHT1 zJ(H3>L6}&*IW@2_f8d~j?tyNLAUeB{j=-#@oN*JzkB;{a9ykcU-=sq`{8ZBa{eR8> zU+4_Iw&|?t=)cwXze)bL{QsuEnME43mjCyn(TK;>zMdJTvdH)k#B>O*+m-_xs zQ?rc!T&^koKP~Nl<^Q(@{t*3JnJ-lUv&mv&+;*6hU#fxJYe958Lv0+ zM#kM|h3YxVc$tA)opgN~47`%-8QVQnPXx=C8+at+hYdW6aZis>Jub#q8h8xjjRxMp z^+`NCRF9kGD-1lA@uLRrVLa)aP(6u^R~mQ{8Lu|*62>EYh3W|~o@L-=jMo@=Ipa~iL-nj=+;8Bi5&C{>4SXf{iz_-*PYkzD ziGf$J{yGD%WIU!%sGb1p4;Xj~li<5;Ps4qVnX#aFuu~j4>R6q;EjwYo)@a;DB~3dZgtl8b=1Hk8BgjLs>j86rGZEM z%)g7jXcrW$zcpIT3~fhRE@d48y#KpS13ECWBx zc#VNKFdj89R8Jk_egpS#J!=g-k#W}rp?Z=SFEQ{`#_J5+&v=YGR8I-x0Rs;(UT@%K zjJpSg>M3Wu%)l!dZ!qv0#$yME>ZxbE+`tx{?@Roa7y}o6dJJ6nnPT9=PrrfJ zGe64=TzFey;Eg-=II1-86t`~wDg!^7tMM8GU(R}J4cyOq>I~c(r1dlyxQF!|Ht=%R z(`ew4tj8J_+Ro*B^nFDb_)69jY2Z<;$7SFi))Qmkm8{2Y;4!SnW8gKrb$t>Iyqfi- z8n~b3vkbhJfy>{2FEen9|BigQfy>{;SZUz$cgHFW+;yEUx6;7f`5Lb>aQQoT)dntq2cgEm ztN8CD)Ec<_z4bZ+m%nRPZ{XIwx;_mC?%AmE!v-#YzqrxB>(PA3Xeb zULp)!{;pr7fv57{`-?JgKjSU~ui*85jDaVyyxYK|X6pLI8o2!ZagTu~r0MoaH1NnQ zji(s6@H5rGg`ZglF8uTxxbU;Yzyo{r-+c%exbU;gz=faX1}^+uY2d=o3Ii8@RvNhQ zv&z7QpVbB~{H!r>;b*OZ3qR`&T=-dU;KI)a0~dZCHgMr*qk#)Qj~ck}(;6PibKz%% zf!8rVBMn^m8D-$YPnUrUKVuAB_~|xq;it#Ig`bHAF8oX~aN%c)feQ~)4P5MJmVpaD z{RS@lEHQB5XTZRPpJfIv{46(c;pa*N7k*Y4xbU;mz=fYx1}^-pHgMr*je!e4YYklZ zS!dwF&w2wFel{4m@bj>N3qKnTJc<9F@=+6K`)OSq%5&jogn{Wy|YvUck$m-&N6Tr7k&r4 z#K6n>?+^tHT=-dL;KI*x0~da-G;rZ(g@Fq{D-B%uS!Li!{P)YM4P5^IY>k1J^56fh zHE{Vmq;&=^e;=*hz#HCSzs11i?>-+kaQXZ7jRr3KJZj*=PwSFUo(n%C4P5vcW#Gb3 zmw^jEV+>sQ={9iTPpp9pKRpI6{7f`(;b)S8i~bY`Jk`L3pIHVj{PY{R@Uz6gg`WWf z7k-u*xbU;wz=fYH4P5wHVc^2gN&^>uRvEbPv)aIgpEU;V=D&AVYv97qIs+Ge)*HC+ zv%$cHpN9=x_<7X8g`d`lP(BMkBMe;l8EN3clPCih`{^=p;b)A23qRckF8qu&a4Fa0 zfF~Nb@H5H4g`X(~F8oY2aN%c`feSzV1}^+8F>v8$z`%u{Wd<(%EH`lB=Sl+?epVQ` z@Uzmu>*}@rtTJ%nXSIO~KWhwJ_*rYkVA^*Qft0~dbQ8o2PY&cKDA^#(5dY%p-)=V1dEel{Ao z@bjpF3qLJSD9?qT5e6>&j5KiJXOw{pKV1ec{ERVh;iuccg`cqoF8uTuxbQR4z{`1l zPcm@fXNrN#{GMvy!p|%N7k>H;T=*FsQ={9iTXRLt>KRpI6^LwI!3qO+#T=#lVH1sRl0m%rbD{q2Iv8|12?Z;b*|Wg`Z^xF8nMvaN*}l z0~dZ)7`X7W(!hnERR%8ntTu4rXN`diKWhzK_*rM*!q0jG7k)MvxbX9^feSwy4P5wn z)WC(GR(vSW8+m?@FmT~#q=C!)9%bOdPnUrUKVuAB_!(>9!cUKZ3qKPLT=uRvEbPv)aIgpEU+9{H!%_;b)zJ3qR`( zT=>~w;4;4-HgMr*qk#)Qj~ck}Gh$3A&m&9q`$drk?pdVqCl z>HknFnM_NG0U<#DqzLrMv_Rx<2mwM-I++xVRA34SfmZq?Ef}fb1PVlSVHygX#)X~L zf(h=z5GqCycPuMrk=4nxV5Eux1TsL$_jBesmz+7P>+i?w)mQR)Klkss=l*@}6IvCw z{^=@i{j)=H>z{GOt$%hYZv8W%xb@E-&Dl?qikGl|_9<@tGo`ro&q2kle-3HR`DPTi z{yCz!_0Lhot$&UwZvE4oRp{r|KT8z1{uxl*`e&)))<1)aTmP(3-1=vg;?_T_HD~{H z6u16atGM;gI?dTX8x^z`GMTmP)qoc+^L-1=v&;?_Uw6u17_sJQjdh~m~i zTNJnc8B;vn%Ig-z4f~0!xSiiS6u15vSKRt%m*Unxdo<^KlZspa>{HzOXG(GFpM#29 z|4b`x{c}ih>z^6Lt$&UvZvAsqaqFLBid+9QUnul*>z^f>vwsE@xBgkGxb@GV=Ioyp zid+AzQr!Aywc^%49mTDG)+%oOvrcjApN)!J|BNVZ{j)`JJATF#xBl6xxb;t0aqFLP z&F#3Yxb@G3;?_TV6u17FRNVS!pW@a(Q;J*v98}!;XIgRVpF@gU|I8?E{c}Wd>z|{V zvww~$ZvE4oUFhf5KT9-c{|qQ@{j*eY>z_fzt$$W1ZvC@LaqFMeid+A56u16atGM;g zI>oJjHY#rYGorZl&lbh4f3|9F$8E)}e|9Kt{WGq(^}{a3?fNsJxb@E-#jSrP6}SG` zr?~acl;YMu2Nk#enO5BT=aA;?pBcrie~u__{c}`v_RlfJt$&(x3jN&rXNlt0KLd(e z|14G9`e#sa>z@^hN49wLdzIqWKdTkD^Sh(C_0L+xt$)@jZv8W&Is0de;?_T7id+9| zRowcgtGM;g4#lm1#uc~z*`>Jk&xGREKYJ9n{+U$V`e&cw)<094vwsdMZv8W@xb@E= z&DlRQid+92QQZ3HsN&W?#}v2zY0fS5bL*caid+8-C~p0;RB`K{LB;L(S)sV~&nm^O ze^x7Q{j*kc_Rl)St$#KuZv8W&xb@E##jStF6u17_s<`z}S8?l~9g183j4N*avrBR7 zp9#gSfA(n3{+U$V`e&cw)<094vwsdMZv8W@xb@E=#jSs46u164qPX?XQN^u)jwx>a z)0|i6=hi<<6u15vP~7@wsp8f@gNj@Kth%5u-^3R^U9EVgoBz&(;`V(|OmXXVh3RCN#}yxAKB9QZJ6^wbu2ktT?^4`(*9$+Ycqxaky{a&s zD&`5rYnhKJo@8G4<-&9#%zG4XWo}vu!^fF7D&E69sd$Qc$yW-~8Dbt$e3W^g;w5aK zz}1E61ev!eUd=qEcpdZ7^@ZuQFpnwjG9OgDi+S*?h3O=jw<5MY(Qas6g zRPhw^+6{&2q?soaA7MVGxOvaBbKUiY>69|>QM{VDxuGz8fO(_hRm_u$*D)`-u`rz& z^N8Yc=6#AMnFqdBm`<8`i{hiqQ;G-P_v}!5Q(-z4%wvi>%m)>3WFEY^Fr66lR>eD* zrxi~yuV^hyr;oX-c$)c;;v>wfZYfNs)94>GUaRG3bNc|!3q=3|Nn#@PSAUYJe=^B%>knVZ`R!`CuzR6N2w zsdy{%lFfzb#Fsh%dBv8(bcUF_ijOfLQar$aSF>tsVLBDeI}~@AXB2N_UVVFEI<3s( zigz&|QM`}2b4Ou1L(IDrA7ehMc+h3qj;>*<4MIG{`Zr#@6u0}G zQN`_k$KK!6b~E4n+jc8a+}bUmxV2lU;?{0K#jV|{6t{M(R@~aHR&i^$M#Zh&B8pqP z#T2)8YgOFZ&E6~2cI!~#t-r+;w|47N+}bUnxV2l4;?{0`id(y-6t{LuD{k$UQQX>X zL~(1kF~zOj%$KMil<)o_@Ls&%!d?Dzv6|@ zDDH6h5yjW-^}>%TUd7zpRoE`0mw5FGC?2@f<3YtMm{%!Y&D>GEmU*4x5#|xaW6WcU zyUbn1~)RRJ@gW zmEv*cj^YXCb&B^fk0?IGJf`>n&nP~~ zd{prf=H}al_Agn({;zli^Pu7m^D4z7%pJvD=5>m9F^?#oWFAv|kh!aPhIw4^G3E)y zOE358n^e4tc}j7Id0O#W<{8B!%tsZEF*or-`@75oipQA;6;Cj)QoN73qxc~6I>j^0 zBZ`kPk11aAMbB=o;-$>vidQgCC|=Dxsdz2(l;Vxd(~7q;&nVu(d{pr+=BBgI{z>Km z#Rr)O6(3?=rT7SQM{)Bd&u(>!mokqiUd=qFcq4OH@fh>C;vLKriYJ&S6;CoxDV}1U zRy@r-qxdNEQN;sScy=)N6xu(?JfL_r^Pu95%&Qb{W$q{*XI`gx5A%rPgUn-!XPCQ+ zo3&oO;)<6tPbgl+JgIms^OWK(%+rdy%rlC|nU5--WNz*)wErOUfZ`eELB+?IS1BHd zcy@3UuV7xMcs28g;nu8SG#w@k24P_o@5?WJk7jH@e$^Z;w4}9%3r5=kazKQW z$C$?zk26mwo@Aa>e2{rc@eK2{;$zG+iklX%zN3m)FgIO=_OE3gP&~#wsCXCiD#iPl zJBnwR*C{^AJfe8uD_;3yidQjr6?d4&6>nsoP&~#wsd$`uO7SG~wBjk|8O77gM-?Ao zZoX4!|B|b{`UVsaG7l(x zH(zD{SG<(Dt9Ui@xZ-up6N<-}Cl!w~PbuERJgs;i^NiwY=A(*_FgM>Vw0{Zzf8PR% zS1=DMUd_Bp@kZv3;xXoRio47siYJ)I6i+dC6;CsdD?Y+Jp}4u$Yu}XSOFW)dyp(xH z@ml7iibt56?-km)m3ct%IP;+53FcLbCz(5nr3dGLI`> zZU29Biq|qvD&ELErFe{aTJa9%8O6Jpk1C#IZvLsz{wd}G#fO*&6(40@rMOw<`H7== zfO(zbLFN&~tC`0XuVd~i9%CL?JkC6!cn|ZW;(g3hiVreRE1qGVQGAT~sN#X;o_)+i zh4v3J4=7&EJg9gb^D4z#m^+HQ%QORBy4CKRt=o>aV= zc}nqG=4r(nnP(JlVLqyO2Xpgqq5b2`1B&-B4=Ucryh`yjb4T$}=5>mj6`p+}ikC8v zDPG0gRlJUQT=5w5gyJ2{lZq#prxZ^yPb)seJfrw1^HIf1PhtO06xzRg!_i^}`;u+?y;$zI?ikE(#{a^7a=1IkCnWq$QVV+jJgLy{r z9_FKpruqIimVOz|P+uHvK2~Li;<+1By2?4=NsGUZr^5La#iI;x31;Q#{E$qWB>5nBpVMUB%5AUcPa~ zOPMDWuV9{3++m(lJi9D&`KaP?=BB66 z{yoeCil>+d6(3?=rT7?gNAW07lc~bEn<|)O~%+rdGG0!ModJfxP@oMI#x6uBL%ma$IG7l== z#k@-K6mv)M4D&k0&ADDVBZ>!^#}s#%yNXAc#}#*(ClpUGPbxmhJf-*u^R(h6=XvGN zC|<#QRPkEo=KF>Ak1-D@-o-qqc#?UQ;%VlN;-k##6fZfS?XP$R^O)kb%w5G>n8y|G zV4hIChj~)*LFOsNN0_G-FS&s2uXq*nQN^e=GBV;$6&xiuWiHZY=6b8na325Fn1Mqna36HVxCaEk9kt@4D*!Y=0dNWX~ip;XB4kxKB{;NbMtti z{axk(#goi~iVrcbQhbcLqj+h(SN=N1tC>d>Z)6@*yp_4Dco*}y;wk0{#WT#4ikDpE zl{2My74x*>jm$HO$C!^Q-oe~FQE2}z<^jc%%!7)jnO7-3!rW2ZG_d^@FJ&H4yn=a5 z@ml7t;t}R?#ao#t6z^i5RJ?IE+h6e{hfga$#5|+;DDzRpOE31)H~(5_|0?DI#p{>{ z6>ni)rMS!7QM`+Jo#IL65yc0Y#}v;ncNHIF9#_2N60g1q#e>X~iaX3xiZ?P(D;{H> zQM`lssNxCcCRu3zKIQ?%2bnt;c;S8ce5t}r{8uOV@(FAj1#b~NBKX$@ZxP%TyjAe~ z1$PDiC&4=ePY50t{D*=k1pl?*J%Ya`c%R@^zKI8E!7mcr)OmLE!*1Re&0d@m!M!iS zJRT67drJO6so;|*vNb`$y_~#<6@r(D@Ku5zDtNWvQv`PepDK8*;L`-J6Z|m28wH;( zctr5S1#b~NAb3ph8G^S8K2va4@L7U)2tHfzxZraH?-G2j;0eL!3Em@kso+V$j}W|1 z@cDwL1V2*nLBSUYo)-Kwf)5FPl;9b`%LE@0JSh06;N^mk2_6#MTsYzX3k5F`e39S* z!H*WaRPe=u2L(Sy@Cv~{D|nUQm4a6beyre*;KvDGEBNOGuM_-u!5alXLGXy+Rf4w& zexl$p!A}yrRq&GqcLiS}c!%Ii1&<59Ozh~RaCw+Mcr;4#7L z1#cDnBEen38wBqV{9?i5f?pzdm*AHQo)ElI@E*Z06Fe#S8o~Pnzg+N?;9nGcQ1CAa zo)-KH!G{E2D|klmh~OiFHwiu}cvSE)!J7p)7fty8I>Ac>zf$mk;8zJ=D)^TL4+<{V znH7S6MTD;s{A$6g1z#_?BluSZuNC|n!RrLSR`5o_uM<2XcuepX!8ZsV6a0F?TLr&C za98jf1@932Yl6oGze(^e!EY8kA$Y6cJ%ZmNcvA3N1@9Alqu?pQHwiu{_}2wb3x1p6 zLxOJ>JR^9U;3I;!3qC6N7Qx2^-zvCinDGDG1uqf&4#5M0e?#z6!8-&G3jR&OD+Iq& z@G8N#30^Juw*+?tzf161!S5ElPVjFF-Y9rn@QC1@g0~2MkKi%E?-jgN@a=-Tg5M{2 zhu{wg9v8ez@Gil>BX~ma2LLc!}V<1P=(_D|o5k-xoY6_`e8VA^78hR|)=v z;MIcvtKg2{Nx^Fc|2M(w1pk5Hje`GB@QC2M1#c1jNx@@+KP7mp;6D=F6}(UI4#E2c zj|={^;9Y|MSn!14|1Nls;Qt|bQt)R4?-Tr4!Bc{#1RoUqIlISvcvA3;;C+G*3!V}@EBK(``vgx5zF+Vm!Cx0VBlsJFj|lz; z!AAuj5qwPWKMHOxo$&uR1uqf&fZzea|0H;+;C~i8DEM1~R|x(W!K(xx6}(#Tw*_|u ze@F0I!QU0UPVm19-YEEcf=2{@U+@;eKM*`7_?Y0Wg69Nx1^-a+4#7VXJTCahf_Dji zQ1FD{p9tO~__*Ln!HsX?L7(70!Bc|!1s@c=Nbt1a#exqBK1uM5;FAR(5&RIrM+Gkt zd`$2|1viZo{y#4H}Xez@ROf(Hbz7JP=_j^Hx|uN8cj z;B|t}7Q9jLIf6$7pDTEa;PV8J30^9AtKdfn?g~C%@D9O`6g)2Y0>Qfk|BT=X!H*KW zNANPilY$2Y?-RUS@RZ;o!3PCjD0o`%MS>3rezf2j!50fYBKR?aj|yHP_?Y0I72I4l z;s2F_mk55W-~qvp6TDRL&j}tB{CL4D1V2IWD#7LZyK2Et6yY7gPZGRV@RJ3v6MTu_ zje;)~JR_F_$h*S2>yA&kad2%ZuAOu7>uf41Ny zf}bOJK=5+~FBSYe!GnUIFL;IE7YJS@c%9(Yf?p`OBY3^wwSqSYUMKj)f;S3&iQo~z zFBQB+@J7L7f?pu7QtHuzg2Ko@Qs3Z2);@1xZqzGyi4%g1WyRQS@0ggUBQ!rw+Y@Sc)Q>!!M6xL zDEL;v(}LeF_>kat2%ZuA8-kAr-XZv?;NKK{Oz=AeH(#9a|80Vo1&e-taO1PP4i=ft z8I#TSgBzdgNfoXA^r&ML&(eM~I^&bGa)Ip1&Y-{S6^dj3jrvV|hTq8r{3ib_uO~x? zgq{K&7J52#ROp$|?LyCm?iPAJ^nlPuL1%>yLHm6Z`7eeJ30(;t7W#PTsL&@tw+p=t zx?AW|pa+CL9Xcy?7~1cj$p1{}kkDsChlM^LIx2KMbi2@(Kz9qh26{l~E1i z6Zu~S9TNI#=&;b&LPv$Z9=cuVo1nXez7={v=-Z&PLbpTvizo8G13D!1ozP*S?}m;F zeGhcI(Dy@k3;iJUfY1*?XNB&D_D`C~|1s#0(7n)Mp`U<`3jG7Sl2z?uLR_JzU|Fntx?|=>oeJ6BS=)0k#Lf-@3F7*A--9kSIJs|W$ z&{?6oq5X$VB|9)R{wpUD3O=#bDq zhYkz=ysv+hwc{oLFfUYAA-&b-3{%ZGm-ye z&>^9Fp~FHy0UZ_k2hi<8KLy<_^wZD-LO%nY6?y>LKX)Sk7obBz{~S6j^e>^KLhprc z7y1?GZlPa=9uWF>&{?6g(EfQ7`M&`j68cT(u+VQoM}>X|x?Sk^p}U3t5PCr9PoT3x z`&S|V(uw>hLx+T(0v#55I&@U%nb7S*&xP(5dOq}k&__XMg$_ackC@1RF?2}iO6aiA z$3sVjJ_)*A=w;B|LZ1RXAoS_bS)s$w{`nL6p9vij`fTX1(C0%(g|3Hg7y1(DZlTve z4+wn)bXMpnwExJ7{I7xz34JwmSmq-4|KcG_d|CJ{UG#!&<{aph3cA+nU?iP9t^nlP;Kxc)HLi-m^^AkgboXRH*{3!d!XBe zz8|_<=m(((gnkG*D|9!s|LBSQAA=4F-3uKS`U&W$&_94~7y2paZlRxs9uWE&=&aBK z(Eh~}`M&@i68h)RVWEEs9Tj>nbi2^6Kz9rMD)fNRzk|*SorU%vGm-xr&>^AUgboY+ z7IakTcc9yaejmD9=ntU>g#H9NE42R%3(CtEB0^Ke28t4I`uYk@99fkHEJCXlY&>^9(h7JpTEp$}q>!I6) zz6rWp=v$!&guV?rD|9=w|G0_#?|=>oeJ6BS=)0k#Lf-@3F7*A--9kSIJs|W$&{?6o zq5Yqm$p10ukkGx*VWFRZjtcz)=ysu>g6g{q^XOfIeOEv~@$qreBuu9dKg;oRr7;Im z#xy*Kc;&m#$~7V0Xpyhi;5|eBJ%kEhZp@3Jk2k+uGp%h~`NuW)K8NrFh#UU*vvSdV zT>qzWDZhgopUJ=5cz3GF%_=hS$bho~@B5dcoJo^BE9W9kzRV?O=Kk%Y@dt*+#~%n9 zw>~mpR=hja$sOD{kbfUy>+st6_&oc2zCOm?E9+?ffks|&llV;Mr*X`*4H4Ae#v4=V z=fgYY|7Uorqi@mHdU}WBuXXyVuJ0C^-nGWJ9(Q;eii(|_ALa6)Ud`*AT=S_;E@D=` z5=5NH*`~i~vXjdc&FZE4mg70qx!iGbwjB;`?BC^^;^xzT_afgeO4}fx;Y&?_O=xTV z_{k<$hP+bqOoI=aes>Nv4H2Zf5P6n^y}ruVS!_D?hVlF4DwJWs*H3w-P>#PAnabgd zoc{7d%#!HwPA+?b$!*5-vJUh1=Za0kI;69&$lrUF-|4>{_X7c*OCYy#W#_4}<{MnhCQ5JWSX{edu*1LYU9`Ei(7u^Coq?UI^ z%ia0_+B@<>O}}qb$*h&r%!W*(|}v*869>^)|iN z5oY|8@dvV(I{Et4puS}*%=U!2qkgt=XOew0Cp-E6@Mv!QflSft%6BiS*>!N^PxF2i zggq$ClW2D;`->lrHxyA@6}$ECUGCp?u`%1oPSk#HY%|*(Sv=d>6%G`2KH~SiI1Ib3o^5s&&#u|E zdbV$uA89l!aPHY`LI=)4`>l1&h91};a=O#Mx!3f=Hlv@8(qSz&VRe!@e!PPRir8yO92&X7@1C{-C*N zSESeJUlv@p?R~^g%|==Au4pdOH!&wSuf)mWt>#f|@?_D0=^+EHhU0cv@k%5~2#K`zk zs#l~Pea)%Kg%3BoeXDEo{mOxlml^ohbhG4uV;ZPkgA}$BeGlcOdM#~ra-H8Y+u?V4 z8xOJ)= zBYxAr6ucYlwAPrn?=&JSRdgn!-Br`i6YpU`eZon@4TayY;87t4rx-K$;>kO^vW>* z+=aey)k!tEGiSlqU;_i&>_gwkVjjM7Sxs(yxyd=xe0}>L@pYEhnS4K_aXU4`EP3zn zGxNS2MLe<<%>`?}XmS^~VtoFb*_~Toyeo2rlUo%-8klR>jbXfvdgEae{Z9G8_br)tq$fwr*06taf*3V{6;}h{kailZXt)H&aS^aG^yjZS{VR(D*W(UMLt=J%c?RLAU%z@C=9g8Cfw zN53)som>~nf9tp0`e@Ze{ZB>Rn~ty(6 zQO9!IURXEoJ`8P^!@QjLW53sy!$qZ)`SwIx7onZ0y|d^;4*E?P{ie(mt#^trubH_A zFcvnH!Z%hHm98(RHm82zH%rOKeDEU&epfS;pYwJ<{lWMH#Pf4^tI3%;W;gXI^6zh7 zfw6WLe4pn4YTtI0oBWj0Tnhg*m;;*;pKKkOHo6RR(%yOa2VbpkMLvh3kDrG!KZ$wC zKO6Z6o!nZp@tqI+?t?4M=67Df&rDHiZ~8;{60MJl=2VhiYv!y!m;H754C-I2cg@4x zK<(4Y?PABab>H!Ptd7bi+PeIm@rGgchiOnLm2e>v#&nLT%TacI4E70M~YJc2M~MZWdd?DN_)^4IaD_q{#7 zdk1`$+HV{AKiXvu+GHyK-h{OQ*^6xFgY7E0?2Ep~`CuNgb4LftWXrP+d65s#OGws?!{v-(jlpLQ{Byo)lpu;Xl6Gh$tE z6NlaTuU=T1+iaPdMVY7$S8`Z8{}dxmJJztjMVdFE-`Kj&MP2{GVfR1grQ0pauovN} zZLho2Y^U{yU5gxkEY=~I1NNbBC4A;dS+{jNym9GANVf_0ro75wUu)Z!!KuGfTik~9 z4{rRiw;!|nh{f1HT!3}Z*%*f~zXvf6<=2knWAM9j2lD~^%v&@6B)?{+br8+FO_lId zgjrgQap^|P4QTV-@Uu3|r3UNy#MPl{V(w(KB0s)k9`sLhc7>*yUH)k``03k~A731d z1Cy|xLK*$5G52E)d@lA7&H^(tyve!ugCkAOz0<64@1{B0zm4iy9`to~VvL}4F;DcG z|EkG7S!uREHxS$w1q)*?31hy)`enty&x6&=F&2?+zjLuS55I(cP4`Tva~Sb0XM?@+{&*zDm9xEl1C2Ss56740?T@n38f)ch z)BiI3v*swV?|F{>4!*G$W9bg;Q4IWz(rZFm|BUd|wluC6@4>hpg3odM7gYEUkUzzF z5OJ~>zhb@0ulk%1@nyXchw5v6tY=7x}0uHW!dz`Ouah-7slaX3M0bm+6cRf{wHT*3?C`#4;Fp>p6r&%yD}%Z zr(G5(U5@@-Pvidh<{6*OEXRBjHcw{Iw?5k9@BH|Ae`jim*?r9W;}7_%&5Y~=DAxjW zV$gBt*I@rMjC9SWqFIsOhWbp2nX%n(rqUkuxRXtT``f0mw_(>@W%cs@|{t()@n%N!Wts(wAz{=U{_8FLw8qW3L!R zd(*Q&pQWCm4_(gB4#TtIRZgz`Hs@Z7dolC#&cuEV<;h;;?`)e&eqY-AKK5Re-Zf`n zFF^G~|8$GY3i{nW1pO0b943x7FVEN2Hx>POh97&KwU`f=1h&sF!nuW)*R0+)_y^5D zH zYI5-5^wyW%`owClz4pGxYsvF?KQ`pcT}kufIc7-^en8`6qCIsg`9cD|kZCr#Cs8Nz zgAdT&)b_T`$tP~bKdejO3-fxHFE+a$L;8Qq2W0!NEioG+Q(<%DVSV9TtZg2EFT4d` zfd9^DLb~+qLxiFJM$agZc?-?%yZ%8QMX)>NkvfR=K|YV7yubY!+WIj0iR;2g&__Z6 zTC z1-+T?V;-4@%^B>OdBo`_dy*|}|08?ei)WV|UA=71Yc;vAoot?TuXg&shjS~Z!YtiX zMeD=`z1O20RPIRF^A}>LzUIrtF=wPOFOYr|{V#&wY5nDzu4TmPQ2WHGW(ocNIMTq` zSg(UIf^-|=W={5gzn|6__?^ZsntKe^j|rR!;C!j~Uf8(oTmB7y`aJEsXZL;^X})z1 z=J0K%KeNP3`&y(m3FFc*(l5qO+MBndt`z=3`2N+1v*!8bodX%{$&2RqeuQv;g#Ubi zpC2JEt+U7d=I!EA=flW}l+S|R%fMf!{V1NT+e~A^?B0FwJxccyq?h@&>8JXb6Q~Sx zdbiIsGZvtZw*SyRj@teytP{3`u<;OkfxzN-<{u_+e65hINPVY-d z*M{GVXaDX;f55n!N#pDV{fGL@k5O0M?`du@ezUvtumAU$V*9(nenR&5!=T48CQgD4 zXbx$@_(W#`)W*Ze|J+M(26vQM@;%g#o@4(!kLI@=e%f-;8CCF;!0W8FrNP!{zLWs{S=&);Y`AZeUcwGrRP)fwlS5@Yn0i24(Le;j3^v1LV(nffHwd20_b8`^NrHe7Vpt}M!cW0Z~Q-f&FvtYw)Gwg!()P*?f%wP<4 zu=l(Qe&s{BDB^?>ZWZji8S`Q=;La!h7~;uw1(VK8)iJ#OyG}hA`MQuv`F*9rGu6AG$v93JnT%1Q4jEPf`Z#(?8#pzG{W_)QM%K8|5lg7s!!f(MGun_x8 z+t;a|QyRLjn?tjzrTj$yyzyAfv|R4$~y`V*Y*APvgLreB2g{ZqU$(wIeggpkJv zACK>*abOGb*-!CLa&lX+|FZSUmkD*#^&&g`i1XXC*UKx4`uxI{A?Mcro`2u@%EY?b zmWRslJNW2NIn1K}_QGVb|NgOMZ!tqzWxO=v?L`>cFH(IMee8v^VFvM>>iQE-XX|U; z^C)a!eY^a}d3!J))?2jK zDXMk)X^yA0GQCgAU`G;81F3+?ug#~>rH=tPk^$QBfWA{JasXpg)?uOANH?z`oDZz z$t;{LVlMFaE}UwXT!}QAk9Bg7qU^WAX8(@3SN_Jyeee0D+s-Unu^0U^T zTD=`-dQ{Jgip`1}u!nilKWpj-_(v>^dQu(FM1KE?wjho$7rs|iTzLcDe>vb3|DyG$ zwo-r2?!%co>P@ye8sq6O(#XGm#s29=%&9?RR%EfxqV>)!&M$MwS-UW&bdr5r$QF1; z_QMi-Te+DvmD*w_(%yf1?aLn=WoAZDw;i~A z=5Ko)X|8KIrFtLIyczkeLtOfOE8;XG&wY5lh2Jkzx<2qA+BoAcT^5AT(K(JiPor@c z`=@?7)64h$L)z+}o9T_=)HkxIcMsMCcC6NMn-F&m;x;wY`NI)7lSEr$efC3IHx-#B z5!B~-)T^o4?f0V|j`3~7S}AXrRW0S!WEc2m-d8bCulPrr{3wFF4CRA*MVd|ji(c82 zJEykQ{|dj47ft(>?yjMi!e{q8s@GD(#rRbx#$yfD%YWHhS4`l;9rTgW6R4% zaE@?|7p6F6F1!QnP=m9tp9RdXoMLCiPm9g378aWe2d9}|8B?}FK>@2zN zn4N(W7VivPHwizB@$(Oj!E0Z@zen+JEB^VnUVr{V{2Q)ln*Llx)Ahg_GzzjDMe_!p`upYE?HKfi84)%hz;(Se$e#~a`~7feFA9)bOQ zVRLO2p7}!jbEdhr96DHHt~CqF&-b0`n{JG6%Cn~AKm_l{KkJ+HVhR4OJOcH@p8X6n zY1^T1fBhc#AL@7Lwmqm@BItaKI-O92y7*BS-`1w{n^Bf9{zXu32j!-;&FXdMQ(38; z2Ice>M>dx)2u=?c$2R*Gl;daXW`vt=%TVS!^ninLv8JWD`bzkF1?=wgmFMkV4x8iN zz?2|<;`dqOX3~K_VomF`Tv>f3>RE!Y#uuDo&_>ig@)jL96n(;h9jx!^a5XJo zu0GRD-u4Fi!xp^9IvVNK4z8)Wi_IZte+ADM`W8<48GbG{ z$DHlkbo-PS%%M{vu-D{GcT9N!;d_03%eJ6TM)3P2#G$wbVIM`DFXNvvlcwx53#Z`! z%rNDJO>QN{d41oi6)(Vlj=>zZ5B<>iCY}8UGwa2aF;hk!F78YibG9?MsQPvE$^E8i zTXca_y`yDab&c_z{T$-a&mAp`s>^&u2ZphqYoome<_YSem;JUvzw6`K35>TYjn8 zJqz`nQ;IVcl*=?axfYB+G&Y(uaOVSdNWO#d2zO7~R@0fooZeB4KeRqDt7%Ozr*{Fu zzl`&@i@perdeHkUinqo~C;#q{&MoI*d~z|)(plecFkjH`WjND&C4as$x0lZQq|I>m zrIKuRF>FTmBD?)9o6)(z`oCc_I&++`+s1d=jx-HFoZ&2!Haq!LGc$_y!m|UR1HR9h zhRuHehMwi7;r^#EuAgdlFU8nRcKZP9BRXTDcmK5CxDNS+0$4|yS?BmrzKnm)HagFs zaoo_l2KC?K(0Dx$;b-@z{3~C9%__?Sw9cH@yAtt#?=Q~h^$O01#tsy9(i$&^y&m3k zc4BXvw_yb54{_M#RjgBfgK`q5y)xzb;k&+DUdOZf=PYae;MTH>?uUI+=VOk<`PNFb z8R`7q8g24rw8ee-=jdZTlic6jmfv3`5I$9nv-PvRcqbwrg>#=qJ7JIcYv?xoPH831 zHn|`erJq9h#4@vcD|{U1P1xVh>U|FWOm!t6r?tsev>Ew#3Vz+@cP_uJ>kwKy z;~aDMvIRJgd13s?ZtTCPY{hfDvNiGjv8|{h?GvWruEDHuDgGo9)}((Nf0EjT?uj&0 zewd@9o4$T;IJNM__G$iY7h$e`8EHo`2CR+Y%n@tro8hCs85yT{Y03S^dU^Pf=k-X} zk3K-}i!VccX{|@;Qrnke&-=qUb<6MlLhZ70%=L!OIdFc`w8&ZJB2Tj)eGKuA9QEQw zzJR?a>PYkVpK%6Z`_#SMXHqB=`4P?Y^@u~^4#WMM{qU=OH~2cU&G0k$T4sx{b28FF zKddZs&4%ZWLf^X_?-?A_g??Y_^aqbJOZTB|^Zp6H+fQpw_*V82@7>lZs0*ck-YF|o56h>T6Sk04%q%B24dwFMU|#Pxk-mGZSwiKfagfptA}-aB?#cNU zm>K&}4jR|W@m?rzJA|V(?=MkTdpF{+3K|_~Qb7C-Z2AL_gb zzqjSvdWtIg3Gaf#TnIyD0^b**fRH4oL80LUBFVa zgvt|n!W$bZ5r?#URZZ?c@jLlagx(^ej?&f_!BtYUm@K$kp_idbcHu2hEa}P%<_A}BQd@E$?=N69Pvk-^ch2CA;veEh1p2$SHQ$)Hqb30PHcX6CO zT)q(QWzgLjN@wTsUOrLeYi&1%{!4jL+}jW?2w&=fO~Rk?%C=~JVcGtK@KLPKZV+WF zzOv0bFXK6AAHq;OP@U^U*=QbG`ow zwl<^m=xmw%vj^$_8DSqoTI91-@3Y`1l+GITgM7Kq_0pg-#c7=Gy30HkMY(Lc_aUuU zz31_rjcxUG*BHVVPQFsMi^^zD(gC= z&;2OAe_mnO`3Otp+=28$-kEQF|JMq`%s?1Qr;Ea%T`A8!*A|AM^9?%x{x-rykM+VV zYAFmej`54~x`V;X$L*XN2#D<2L84;(wk+pq0LIxCCJ`r~jWVz6#` z81ImMfrbyiKdmq=b9l+}1lG&>yDapbLE5(=f$tK^uy!)oJDGo(b|LKpd+>ga_I*D1 z(wE@t`S;6s&$R~QY<|7@8JtP2Eb4U3ycf&Hd~g2@ab1jK!+2LW>`$F$N>Znl8*~2f z$?j>xllgbt*%-$Co;*JmzfVt{7DSlLG45%_Sd%tmo#Zc}_1Wy+W~ZccEv0Ojv#;~>7vRnrzSF=uvw_M&zGmNF z(Rh8sab`Q6wbL4h`d|cWoc|Ghcl8#GN#$<6kLRCN?C+Eo-R)|}oSg5kw|PEq!>wSS ze*6|wUAEPyn_kGITd>c@BYX50}&EMDd#>zV|Rvtc4j~R$hb1l{5Ke)c@ z+Pyl^7)WC}^=o=gYa6N~jk$YnZ_B?EwDlZEUSv-SN9)~o9!qw{3+?e9!bLF#P`Dik z_bB#&`%!j!Kb^lPf&2On)-UDosrm3BD*v_;(?GuQ+@HOA?CkK;45J=2Hzg)J{rmCm znbM*(D6Mvk^AxAtE$O_G)A_{#FaGK~z4(6QL*G15owjcE7?qpOv;R?=wEm-b`?s~> zPPy6er;+gnvP)?3r)#zNy1TqIX}J&ZG9teqN;#dGRA z7ozj#l;@whjEi7PS|`)OkwUgBzdT<*V9SUxf8JeFJCD*z;%b@GJ5u zI%f|d42_4hZqA>z<9nGl*ejS=mEX&{I7ciy&TI(cZYJeJbz0YjwhqFUcK?qy3}cL? zenVy6iMz4({X`r3jdxG=h5WeccB4NR<6Dnu=IvAf;|`5yIG4YM?n{-f?#Efg(h$-K z?J4TVdnW!ajN@XQr7<~!G5>P(bJ{E z#90x1t@Y)7h&Ruf*ZYCrPvbc5!OuF7K>t4%FM-zL`=<_k2arWtmmvNs#Jvb{S0io| zap_yCiyZ8G{KdV^h)d@wPx_0tJ?o!$URO?f}k)t}r=Y!0ZlUEKMPu9rUf~YiH$l z9KgO4VSNqo0klK@E+P76wK1^0x7Md|An$VzdOm6Wz)yaFv4P4&z7T>R(D>=X2Pl0i z3+2&)JW%(U_Ux3>rT%|#qu0(^eA7Yc@4v4w{WsC(v^Jr4V>V9;x9B?){c0FttnX2} zWA8oe?B3kn z-recrM#medT^~BpY)4x+{ouBWQEte=mN1O@Viaew@YNUi;fk7<&xP zLK6p%p|g;9@h-3IH1^l<{h4!6erhL58@^jlY1{9h^Kp9H>fc4(XgnX^a_Fyor%$}! zl-~#EzXKL^q;rgN+$jiR47TqR5I_Gef!4G>8q;ttcgrcbPxO7St$mq?>oI;;nn2C1 z_e*57Hb+l2DzbnqQhJo`jjeL2Q%8Yll9{g2kNiKD!8zYp?vtLF87STw2gqhn2O z8lHcYKck%A`|CHowKd%(eGliVhoTITAl}E~oj9F?!WMhq!~5-pk9&6#Tzs2ZhI{r@ z?oWEX@?xB>Y@6xax*q4Eln(hhrS(3Zr#?exg>!pvxW{a#_KV;gCT|nEhfwODQEp17 zx|jn~3%u`VKicQ(v|;F+rX1lGzl%8q@3HCJ_smkdmv?0Ee%!aAxqo<}cW>-yv>DBF zG`>axX305Nhtf9!C}({Hdw{&Hk6X1OgF9|mTh$lgo!~yChxO$O3TMOkE4(li&xY}< zFuq0qAJPe~S}}~gXfJ^S|IUS+UkGXa6+HXx+Fe)|cK#J*XrFF&y$|+E*mS-Ry$NmN z$3DT@atYdt(zyv7{i5=9grzkUy^HYHfAe~Gq{_DqBkuoTor3eqCHwIHKmQJc%TSK@ zW%NAX-k784`7p+*Z2tND-Y}kL@jQ%gFh-G&0~=ELv-i?IY<}+}C`00KYRh@O3A7in z_wh4|Hl@C}4(-|oo2`PsZ$-ONy03p3cPY?*xO2Mg4y50Vcc5W2`Nb^m5QIz3g|~yf zPI=;9M|;b{>V1?S?i$duDDGKM+Qe2PO}b~1MVYD1wwy|HAim{CAN0looZXYpi*M6D z!aayG8m|za%0*>d#ci+_Z9x40ueR~la@m?u=X}{v-`i17O0yYt-HP&ssl0i67QN`I zvi5O%p3ipNiJwhuM>$^T`ix>9P3&X*q`N9U%uP9@MLz!$)^QJ_?P=WHk7o;49fEe7 zm)}PO!7-LDITP)QyFR_;Mf7Zb{tmPsX}pFsutr!CJmm6SnQxTrItg~8K6^)}cZcv> zT;33uw-rC_n54@{#uHcJSl*y0>a@huyy|2!C7G5~_|a-g8Tc+6?KDui-2{ z|9fZ}{cOkgH8r`*VVh>8;y2s8PG+!L#@4tMQ z2dpj1dsg@FC^1WD-R=wHECb&|t#+`_#+(#_ws&NPFL3&6u-~ISPWd3}g*e#PzI`6r zo5uR4sMG&7tebcHofR(bP|^HTiDwD_l5O-2*8}*@9OLK;EPg5Bt!vLcAIY}$W9e0q0NgFTW9dltXso%6-uk2YT$mh#Uad^3NGweAI+DdL`? zjoUmCXC{UHHHR(!nKze55%xVW&)!dedY(l4Ak=R!*^2fSEB=VJ>3(xU{=RuL_7GU( z(YNLQ34fyTwGBTX=*8G!O#jVi;l0f9PCu>Z%JGh&?Re9F7uF_a#j~%^;9dvuZ$i71 zV$13Mk8_#X?LGvbEj3H;#rIZu+r6{AvlQQPQMrO>*Uf&j{;Sw)Wy-eJ50`D7>EDX8 zRIr!uPA-CPM#@$fZ`g&s1cfJC?EI>CuA0Spo)2q2vLn5dDT6(5U#j2WE(PB2_5XvDRS$~nPmZILpgq@_5J4QW&_$T-&SQolnrI3 zGxc*YhCN(qa#X){Tg-MUTiavde)>M9=DqQThfk+9=Iq{wVUOZ=vz^L>e3Rx+XXR=( z(HJymYRx9o@6N}b^GvVqWP2aZGxD|)ZA0%|HsgN(U2l&!Y@Xt5Fi1ZFyOG@!IIFn> z&r@q6tsGy9W0I&@bs7VFvdDyuTMQyLau6&32p4IW_n`;0)71X*jTjAKzD!t=o|<*@1i@ z@2{{o**b;qi}6mf->fi8?}N>80buvD{#p6^viBkm*@=9noc-=TuyD}HO!+cmOwaqkji&#%lqSmU z!&q2z9IZ!Y_u}2sr#8Cg54f{d?bV0uly6sre~I&5Bf=hrZ=>j&NXkcs9pJE&@m;^Q z+2i{W_LTn}_D2Z21@lJU2B&VV_u=2Vbxv*z?h0>hboyV%9@(aGR~CD?UaU!j=rbr= zz73DT+7$T*Q$_t$4k~Xq(rn{2x1j7a-?U?|P+o%h2yMM8X7c+92k$lW`J!At{JS4# znl`V`{eHZm9cdVprv^S5MjB!4hipA5o}(mwAs zuO6wOS=v4~+)sHMti`ZC+F$~0^C=Ho7pmj6)}Hvr=+pAOiu+l3W-uoDxxE%*PNe#8 z&ZpC!PiHO1{W9L?+qmZqd2!3oS2N`php3*YADzcXK2x$h_!`y$cpqT>+2DOK)#bP7 z|G2xAKmVdV7s|MozRL+_5Vz%PWAOFeWOuUnDGPAt6m!MJm=mz3s-$)Z;r)LY=aiII z6zdD82xB7Ef#W}g@IS-2Viu1rr@H08nF*QBX9vvN!#D#Xo6sJP-UHHeIuA3SF-r~Z z%F;92HX*L_JJ^%jIzOKF>g>mPo`L^R_z--?#+idSTj+1&AYJTNmlX$A_2ay8$wFUX z`6T$vPPF}M6Ik{LzL$I0`19W{K7ui0;R0t_5$sh~THN1-cAJH{>iHMxn+|+K2YY4y zYkVoKZIItg%4E~YAsmuoVp>3H* zkXBKryBB}2;>{-9*K_9>?;ZN7=uZd7cZY-CSRMW3@MX=gE#>QXurG6Q9}W3$#dG>D zE*#i0f9*80{v6nNgl*f7d6mY+BGemq```3oO+;g4%I7Sny8Q;#wlzI%JUhNlg5dqD8DUxKNzKRsHo>%&wKqM@`v%I2ImwM_H>lTj^!`IH*B7t z8$ka=+N&_n(Re^TEaKezpw#=4*2 z8J$B?Kczd5wy)w_-`&)I4bCn@$cO9_HXDBsLS6@8lfJz>7Qy6y^?D{EKWQxaGt~!eAZ>pMY;W89+!w|hw!^mMN0c_@L+x=4;*}#EANn8V zMR%%foWuUj%ZvIu#WCpnUb_|L`Y3N&hE%QPr*Lq zOOzJfr=hf{J>@#`25=gqno%zo&&gM=0z*FOt>w_PFG7BFc1HI6I_G24ZT8Zgc^Q7v z`?|N$Z>9fU#A&U=87-v~#hIgR7b@>pkX}89SyboN??*YZXwz@tC-nvTXY&5%k#in8L(@3djupg!a6jh@f%jp!_45z1=Y+K0aOXe;7^#F|M+TQ%Amj7!yT35cyswWStX zr~0W$pw^03L`BgL^e$GqS7eV233J@?#m&OP_sq4Eac zQTx)9s>vTRH$PErOiFytOaCj+J-2-C?%ba8ja`T2c8CtY4&H6u=ksCL-!Uit)AtwKHgG03YUP(V-sNYV_Std8SYPaTo6tk0!3M`kwFzxDgvC+fxeDCGR%3Jer$L{#7NP%Sq4@dw8ws<_z(_ zhs)$+6a77ShzS>FZ4K*_Y|uO(8sxlrp`S4%rep(ouyK}z$@eSfm1t(=m8CkX)>-J! zUVz_J-MYS69WPLy`fK^#DA)WHPbeflSO{MaD`Qi|;`!idtVsdw=1M?*gs>?!t|bh&t+v3Y2{tJ5EioGBeW-L57(N2yyz`D?C* z$Fq)kWe#)8q}W^A>E>H?g;V!R_^OvL+s&u5%xXVy8Dqio06xqblWO{Ke6i`$x8m=N zz$PCCJO4MFvmWl zzD-~C#6XoFk5$}O`wsrtf-kV)HpOblEFw)d{(j&VZ)-(fi!wjNBmLA<&7O86bb{XVZO0m9 z4Y6YlqF*FeLSOvLZf4jcOpi6#k3YEL4XV$Yqv~r^`Z0FpFnc+wFL|v=B~K40ZbG(~ zPf-;6NqDj;+l@bL3Y)=6#92%h;m3}BSM%|3=zfK-z>cTd54_)cz}6At27h7U&clE8 zgkZ%A;{3GHt`ECm{nW`77JFbTSxexvAM~@IVol;5p9{U$^X~f^<;idONtcwKB)?pn zrnDbHdym|xy}X?GEAXVA;82CV4|5GRTX?MVc9@PD+FS|qYy2@m4>xDOqM@c4<4B*(&{$#IT zir1?cD=W5R&k?_c){+IBQ>1LQ?cZS8_P6vhh2S>Myb$i|fyLwPW%R9^cwF)`x9FR2 zr}b(@YPc)_esx}5W32JD$Cfdcyl^aQdQdiD=9&7!c+_5W2euUCb=SS%;Y;W$tRsTGfw4@7zwP5;J3g)UqoaY*{1sW>meIxAiit67$5h0RG=_}% z9z6Ye+7j;jkTt#jRnxz~^b!9P@krU%8pgB!UMZQtEC?|t26SHH39GaI#6agDv==+X zlxa+(%+piIKhEvf^E`{k35F(O?)mU{taf2|78nMQoxSlF&lC^zzN=i#O%CsSioC*$ zVAb4L88a7Ufz3^7ai~kH&5|m=ezpwGdHc~$4*)i?P|^S;S1o^y~?Y* z*~!y(c&s+zrZxS@NgF`tSnK7x%Smfsjq+f)9vHm(?soIl5GPS^uEY=I5jQRHLpKdL zy4|$FrB0d;+xLTB8`s5ZpY@(&?)M_j^pPf=M7RjFIO!e?7zJ!!H4hHiqip}FBijDA z{}g$|hduwPYJB=^JzD-#CzyroiPp&$5}7Q%)x6W>pS{G8=Iu9lzEx?lFgMR*Oa$lP zy$+ljH_N5DqkvWZ8t8K$bT)i|Gh@)Y_T_@mv*!LD{#OuNUHg3UyNM4txE8;G z#zy&8-NV{97G9zAIzeLIc8?8L{+2x>cy6V^|0y?|8{guy;yte4lw!PWA?7r3X?EO3 zf289Mv0suXVB8J~SNnykXZuL4 zK%P$lL-i!n*$sb^UzhTKoAb0)#44SEKdg`WG6nyvEb;XW>IXK*FN?TR)c*}+()s?} zZMVWZCfs&v5)gd);sj)co2O{IIeln!LfXKJREB*UILDJ%x&>?kIqGt z?e}9>z$YX z*Xti!hwod<-iu&NA|JQHSA*z)QP#tar0cz`PP{)>`#T?Nz2pSSi2erXoBYpg`h(^y zbkr3Y!EyubMKfk_&QyDJS@E-GxPCw5P2!pHCKbfKqWZ6dUQ~b8g~s*~(|H5+ZKnEj ziAjB%zS+7zx_-@19J~!6pUO`ZTy83UU?eRaKR1IH4@WAmvlGg{>OLob5%V%Vzw&;U zGH1H^2Hi1ITj}{O(-?tw)p@d;xBa0nuJdB@Dqk7-?v&M&#`23EO!$8Mp0M$u3K|1quMjKxR9?2zsl=>GZ= zWDtA4EWXyTM(4+W$2iVwz8Fn_&WM82t6o!*}RD+6^fe96^yU)e@uSWt$NjF`=hL0@8oIE(=YI?trtp89C(zf+ zEniaEXrOyjIJts#`6CnacS>JZT$h{Sb%l(*eKs*f{3K-mA^)`a^~gHnW4U?Z zS=|NIDV_C=fx9~L>f18~R_g5|@UKVqxmUggz|uM{Txo?TRlbd_Bne+@oxpny@9gJA z^*)LBIlQyam_*KR&EoxQyl3)V?|HnRJE^iNkMG!YTBq_}$NN;i>%EZo3wbZ(JN;^% z&if_2A88g^=n<_)@*bUJ$IXiQ!i<{BwqyA|dBk1twE7k>P z5RA#`kRD%%40{Fs|I%wYyP7KOHi<&!dLc2N3m5Z0nL8)C_@Bf78vbMazrg>K{J+ot zNBjq@RN)L?VkL3+9iODE_*``VaJDIvEFzwxwd$wr7t~B`nF>_ShMzRB~hu6U{0H4{M>jmN{~_?88Nrl@D^SK>i-Cu*Ziwwe#kEu-cZsov9)$*KkzW-!c9&-v24)~w%{+} z_+IKfL2mpt@>H^R)RRZ_P(BSE#H9(37Caj8#(pX7$rt@VxFw5uxS9v9JRY#3~St)IcKx{y@AP`uK)F(9z6Zmey3QzgzKHs?!)SCzBJ=Q_(%q>%duFyv6U^ zW-&K1fG@~g-HM-4#I`9pYq08gm^~QHVU17lBjRN;k1JpBC%Tzu8s`vW9HV~asrbl3 zr-*G9uAZWQlFuZ&c;hZ!m5#HqF3vU_B%crNeSsJMhCIS)vp=V!?{svPy~AaaVLd#f zfOiEBb!bxS(8a1Vjb?Z7y(!E2KES#^kMD!y9X}OsJiKudzdmqW?gVbZEIPg5fV%%i z-GhfXbw`lzq<07|wXgZY##dKOw)4G>c_LenbhM~>zx);I{pA7qpH==G=j@!V<9`0{ ziuC&a!1oP0_X({_-Vu(xKHLrLp#$oBg8Zv=hK&3Tw4a{;hve6u;#TI%D&~rC=hYSC z+aY{Yxte^+(@y&L#e5&j_bI@j_}aFteM(!c?!p;$Rss8t)`F$r!d?%^qxC@cose|e zY+`Iclj7g5?1*u~Xy8m^obx*QR#ITVVYzk5Q zYVo^D^p7>*3SSoT<=<-aig*zEmOVoD&y7DcUDrK;T(lB9GPL><_*Y%ae`Zo1?-1V* z|A-vXTDuh*j;%EIT>;o7Q!!%s?Pcz*Lq2xSA?3uMB~Si@o^LFoo*M_US6{}v>=2H8 zm=kZzv^pEm<8{7yCTo!BU;VJ>05&~m&%v>k>)D$ho*$3keic0Tn>ppaW3Zj1Wb1eK z^#%I|edFESuD-GN$-8J=<2D#{#;u-MZ{p7r7&Fx`+H~~?o2MTIjd(Um>Dqr!tE0Ve zbRC}zI=bl&@`!HQ!IS91Yhx$hy*|ih`2qR#UGQuu9$nXa!Sg10WdqP}U-SR1 zwod&5dio9f5#SfwS*A@-RNBRM|$dvLc4-#^CP8glgW zFmxz+t{a-_fRAci()WOLzU3g!Db+)lMY11qF0UTBuLzx`7(09^dd&2R;mT_Cm(p-{ zyvyg0w`MwbfA!OL68@{P`7`TNbS!*utXX?qrq4cuX5-__4(>F!LdDJ)t#olB-l2Kl zci8B$;T|tXPUqaIJ%W~mMd+g1TPkw%G#xiOPpezc+iqK{ zj%}@d$9*28-B)Ts^%N`%b3|$dFF?>+z8~W0Y zJCKDOAAD!e&EuKscRT$Kx%zTV8Sv2;ufG=oUpl?&tlsc?;**^KEN(n9-yH4>b7S$_ zdq~J(_1NQ7w|wg*V`;4Aw@=y5kKDW2e7uVX`2)_rmEx2IX0V?@{t$BeeWc?+uQJL<<7?9eSc!|c;o_dBv@CA!{UiPJOdW6s=^nYCeqynA%e*>~XCP)G1QcnSRH z6Y$b=E;N}XztjTO;GFoS&`XH2Y&4hj5+fNK@WO*HGIdelXU>%@W}YiXj`pprdD1_? z7qG>kXOm?T@?lXu;)CVjN-~Y1-Pln<;wTryUxp89{Z+X}>XbjM1%FT<_wU<)OK%=a z&iXYtHuTTXw=nQ#ZwC+97#eP$eN*xmfzDoZg9vg5vC(gO5gw>{^&+B5D#7&t9^#_ zOzLxFtL*r6>Jwi6bqaW4Ote<{0>n9CFY#%{MBffR@EiLP>)db0o^0xdma;$bisB?G zh9mX|_nYF+=>0NiD!}}Ehwq9hqgX4xAi5m<@^`?}bIwqO#^aqr_6M&lpQZ6oU6S(@ zlTrBt!1NCBdHv)UOn06|-NZ*O{LI>M+wrEZXHqP)d#tHMm+kB)9sRU&fd9IQ#KWX6 z3mm8(jYTGXcE)R}GhW~;eZ11gO0?Mk{GM!hp=b`e{(q#g_ZJUxCeJe1v55=V%Y4g5 zH|)Z`az5X`MPALnS&Zi!5oau??8QH8s#&XZ`-11k?%3$LiLucbFXx=LVtsdmzrT~l zoQntXa~0oyo&FPRvQ+tlJcsdl6^<9uo;{9?hehlf&0DR7nsbU@BU^rmJ=Q|{P8&8o z|0{yr&9i7nb5}TNhJJ;M`UB>0lsOz>4r~6Z&eIrU!GIEM(~@KfwZR&=Kel-(@YQqv zJH&e6BX)vf@Af0-KjFX--$2>LSgxD~y&*==XX z52IdNcPCx+(#DuF_MNv3<9usaW&>aXq@l5Jb zjOpl->eLO?aRYSG^GoRnX6+H+Q}5Bss#6_r=6?^Y~uVudyM+?*vEq z^^VcY8o%n94`{Q^fNet_|=)Vz058XnB|md#qJ+tUHG1hpUYj` zJV+V!tBUlC=&yN@vkBl@bF>GTS!)uCXTbhn-4t+BIcVEy*VJ6*$Qd3y|D>K3M~2JC zt_i0up-@suut1s+Iu1G5p5z z8@Ia3Z`~A{1AbTsWhapTLzgwdIg>_=-9gs4DBl%N_aVl=X>RFa$=(k&7tV{F>5SWx;7Vzd zI~C*Y62`8c=h&GhrF6x36RwnBW3|dY8_rq|KZ~91)bVq-4$aZ8QC|EacD6}H&tVNl zuW7R7foUb;A6gH!p4Uwu~vz_}3!1eFwllYPN#vsopbMMy>{6ufl-|qnyZ~hb$`ysvE z-_x##pDk{ks&B)O9a-MP!J0JqzLW-E0nh5+>u%c{A}&1IA98u&3d%l{R`=kAqha_7 z-@Q59Mty=ucS|^Sv?=kjH<1Bure69c*ae?g_w6qHKPUfIWZov$ilQ|B&}PFuHGUQK zE`dHZHe;YeukIt<_8xHIYx;@#q|J}Rz^O&^z!{=VH!x7UEHh+Bc&=)u-VIq{{l zXv5Vv*3{VXW?0i0^F829aCms%aJ5snr$D(oU7HZ=~(q(I^W(~Ls zx)2V%ac&|eP@DD$+%X8du#~v{{Z?ApZ&KDPH%M%)^l~S<<)%^YJQt1)cFZRB)M)p| z!0P#G&UNbv+&vmcqVFK}oa&Xo$@!i>PWgP-xR<$k+P~xEdCbMds+jX0DRR!q3*O?E zR<56PaMgaB^W7((S+~!A>I}K{t+HchIQ~n2_Ua@)h{jEDNS5B$yvFwVk-j85y!5SI zvn3a2$A>RAiPxD&{bypMIkC--`&Y%jeGht=zV8A*;#ar-ojmX{+cpf}l0FuMe@i!$ zO<-U1Cfg4q+2-hD@Zrq^AdNRJMX-o>}`D zut;XR6Q3Xsp&{?s_rusa_H@QY`_I&!`JtDObt6eT^4+ko!-vLYRQRW%ci1v=Ufco) zQQ%Y_i#$Q{n6aEo@U!+IpY~wWQfwdj?r1ISX07pJUGe7- zIz!4YpGNK~q;5wRn-U*bD!CjVDdh5U`lWv8&W?d$;#mW`d@`}69a@8pq6+(Mg!m(Y zjrc9f#)iLKKi@6<;6nH`_Fh>wOK~l+n^o@Se;w=BI%I}pTd_n_hzssLEEw!)BcXL=$GwZ1Fj_t>^lYd1OE{B4557{^%Zbw4koS9(N{I@ZQwr2 z9g>ol6^GNxlKz?yFzc06E#1Q=&nuB>SB1}J^Tyr9===Yn}_SekyCUZ&>%4Rv3Iwjr-b3j zdt7|~3p-E}7<4^4;gcbEo=yRW!r63p4ki9JVh{29-A})drw!FnbH6ih#iPAC zGN{Ajn@z;Q(7f&gAKrJvcg3Yq`2evqw7+84^>FL{b+d^W6SD6qz4)hY8)Y64vPg;2B@e#AyY`Vq+y4ii*BMhDWGs_DGoIK83oZ8f*Ky7! z?4`|d((d<#mv#9KcUUvOwSO5zR$>pYkTWb+ELLm6{5U^VXr?ZhEBhpLX4lzn7WU(B zCtMEpw$@^gUaRraxFDn1a`=PbOZHORb_{Ln{QFm!xA*wIw=+C7{0Y8qb-TuARFqni z?fc5ay9|7Z`?D%yw7VDBhdGb90{*j{7}v;Ub?b<|6DI!uDbNsp2PGcd7I61Y$|!&P z^KlDbBwrQq=Tb)=edx)&&xRiZQ{5ZLY=4En2BG<*sY7;+5d98OUS+n}dAVO0zN>Lg zhh6VM?Q{m*5j+P zYgb-HoP1ip1^=pqJ0}=N_2Fph61-YF)5qO#Z>{octZRCZ$B47(_4zQj{dBy^#;^QM ze{kxLkbjq(R{V^UwlX_btNEQip8Y!}Rdkc4xzfYA0~^QadTLj+CVfx+eEaiB3twpOYH)pxlJ97q}oE!g$=RDGq;OvpVI&`{L}1lvCpfcV~{rDAN>nkR+8Q$+l(zMq3eo|>;BF=z$1IkDcwcZ{x)$nkfV;o zhK`LV)0)v%Tf{FZxrnm;+^uCP#@B3zKNbO_{3*`IR%ZLFF)z)bic4iaSaH6oD?2D$ zQ3Ty77MJFU_S7X`NtWK%{F*Ia-HQ${UMU{gdqFsLKYm*wbn@VK=gh|YtYI7|ZLGs*gF4Sg)|m*t7Wr~E_MlIzojmmZ z3hoV&Z_mt&%{tNAInbc+dl9e))A+=GdP?j6-PCc$&G=M3h3Bs*>QEfsq4RT$zsVkx$N0T>6>tI5_nK-Y1Q|O^MofSZeWJ$ z`mU8)NBQmr>~WI+b)F@g9ejzY>%DTxEbid8>)FdcXI+;Sn$WgwXR8hep1m5QMNSeR7Ebr5^vPR7KB2i;$FZ{c6?RP2W*Z`%U9E(e}L)peul%IgTT_pyb4jZgnf(fG7@ zF|mcrIi~cc!%W4LBUz7P+;itQAGE?}^xb@pt&Ujh@JHe-J9^+o=AzyYg2vutoy*BH z<%V@7IxnLgGSN>Xu{tlSK zStiv(9XI;&Hun0ab_`S3zb-R%Jy$l{W6?k#${7zs-}C6Z#aJlLTn9GsNS@|vE-~ct zI##K!Jd^6CF0b!5oyl2O=t^_IFgLdWv-G6f$h#C;vcl*cG1dy^LnHlaVZ97-E>V8& z$2OTduWSMH?Y=$3Yh&;SZ%sGTGMu?nCA%{5=z*gjJSH1`o!6g)pBiy74L0ZKS4^qK zj=Pv%7M{*xf8np-NAIG8%5gp4sH_SvYX_z(f7Z4YC&D|hT@$xphc$WLCr9(1)IJP4 zO*QAR(qZU1G@~Ll8-0cQ4s{peRDPdeA4^_7PX0Xh-G}#zPMJURC$Jxj3}7vGbPIjo z$o$0CTyhfS^zK9ct3tQA`WREExu$&)*mYY*2XrEN=1j`3c!u?`AD(^w)L9j~xy$u5={8#Hck-`w z8XJYmdv&Wm)%7m6ezlY7wj)0HF7`{wNt$2!etaJ19~kq47!!R<`p3q1(ihoyPM}<~ zZSR>Hf80*Xj!%FlynR-!8y??m<$kJbfY+l>(RQgz+ZVWNpkU>mDBE`C!MY8cXYjor z`=veJz<8!R4##p9L}TvJfyREX`|T`Z-H!UkxJ$m!_+33sdg#d5f8eG+jz64ytfh}? zeyHA)-EYUdG&f8GHRW+2z;s&D3oZ*t^UzQ#*X%U374x>YD)no9prZsW$Kb z7jPxT|KJ;c=O-R0{+GL-|K)D$sMb0%)zxK>{YP-#iMh9eeFHC_)}kOjl0&p1JjT9c)>c#J zx!^y@v-%ODKLKdAoA`37Q@%GbzW0<2vEQ9%+e5uExo8sW4}7ZtS!F&n{1)}f1|1DE zCWqjQ#GaVLN2U?~0iV0$h$nNLDK+?n{)zbSJ;WpV3S+8qj8=K~j7*Kc0R4BLpnZmd z`1RB&+$;hn(XDJIo*dbV&R9=*-D7-5SUAjyf6uKiID`9sDf=$@dyX_~bMZTkW}27t zu#vp&Gus|JTz8m^g_b#kY4am&AG9Z0jZuf@bc}n}Uc(1v4`ZP*_-lr#5HCm_bV7yl z3NGbeOFONsO)3*&eG)G?89D94*ByRv4ESpVKhg_4eWu2~e-VFV_}UQtHRz(+*V6sR z&y!btY7A-i+-FYp!Fx16l&-W@ds**7BYg2a>Jb0Z{PK9>t7;P-=e4=&*G_$EQ}U_i zpxqzo@{|w5AMHATLv;w2_0%DrGzpy8G($gcz+ckPPmTMreD~-<`Np{UgbT%bG0a=z zrpeDqd4)5Tm(M^7+^JsWSBwF#e;a;Je4Qgl`uD3Z=$~MJ(8X2p9;a_U^n|CV$Kx{| zE;`+OgCCFNlOKkSXY^pBTfw-0G+v&Q2z@(A}@C$(N)n&YgK+kju|uZ^4MW3@rIo((TJ^%NaY z&rIt1(8WV>pW7Drx|y^A@S%E|-g44C_>XYg_SWgsXCe+{T}}TtQrEZLv{lcH zq{+T%!?D{q#YCV9r5yPq$I=d~O7W$Pv!>!GAg5y?$#xz31lB7-%lN=F*zo-gXBz zFaMk56<+@4j_-yo4xjRYzgN=AiT|v6pEa(((?zN511nXlXrdr1K-e zwZ_dq_^t!L=wG%Ldn|jMG~w${UOsnTDXot*tp_`xMdeq&ia&q{f+MeAKXcnu-yWuK z+G}a}vP*OS7>%9wJL+(FqhymEhmm%7jGFOKxV z%il`gqxtU9e$8elkNC2eN3!OPS=TH48A@(&o|vX73Asj>UnK+o;o*=Y(0W!)vMqc90=zg%yZp5hr4+Ow~XMS zm}lkvt2f67op<5(Tou%y6YmX1F zdc*mq`|btz_s2Q!P1~R!=FT}DtgkrfE1|1nfJgBrt+3;Jx!+zs2i*nTu?P7{Hqu_; zbo^QW_$apF>?nI>vZv=_bJkj_m?SCui?8#YS-CdTRQ?2=`2NGf%j!?Xo|I)WxA@Fl z`4x2Mn$Fj`Pq*VW^wwN_VW!I8fcw&Yxf8m%JI?~9-<>&q)?VL~2?g~1cZZnD7&agQ9i_zSztff#!|yoE`3hhS)ewuz%_qHQ8~cl@ zD+r9y5_E3*P(d8QFlS@bu5dc=Fndr-9skhBhaKO_;Dn(Hugr4x0;2dcC$Wo!(fuxl z|0MIA=NLTeI>pLC_m@3XXR@N~frV)=$a#+_Z7}Ye)y~1%JEZ+Q#jE^$xK#LwQl_3f z=DFF#i!lksaWiAEN3l}GPGH1W*`}-|>UB{mTzOFU$ zmMqHbKVLK&UxFRHukDwe2b_6$P+Q+8wv2GxJv3a}Pd=p~E86Gzc8yzJ@C@@z{rMaJ z9z5;8cHoJ?b3AxX0-m+x(b+ZC5dx+n_#O0F@^xVQG2ddOQAei6rGt0jBR!T5aM)cnN-8%mF$1LSe(AEQDmPWrTn@{$&QD{QC?j^jNal|Yo zR%tgr*9XRER9wv|C$-h)m$ucG4vbzbOxcDNi?kY? zsQu5zJF!Tk%&i&BC&eOFo6>E2PMuu7KmI5%h>jG8bl@t=0B5qol*QmxZJhm%tUAN? zL1-&5+(By&wXQLVuXCTM+9;x&e2~3(q-E-h8!whQpBKbGUt@C>dw9vC-Lb*e5@bI? z=`X-Xl1DnvkK4A`?D%Ubd!OI&Tg5NdaE4R(60X$dJwxo_=K>#NC;O1bv6b)MIPTps zyl$Cr!THI9iD%j}HoP##niMroJKUF6x189szq9R4ZXci%yASXi#Z(Z#S%IxG#+qeO zu5~Q+AM5lvhjW0O{Vo+O8oNiXh9`XLycbL~U16Tv!JP$N3g1hw2q%2tTrf6*zol0= zeTfV$UZ(OsV^W30tkt-CbYOinY{#C}yimN+Am^6sd7=4rvh#dQ5p$$m&%OnZvG1HL zbJDj@2fz3rDE~2{g)ckLk5i9eK5=gvevii{3Ji+NDEtcEx53@uQKIL7P0#PY~T4kxo33#g0kM&sO%=nZar3I{Sy?!H-ng_YO@aex>xor?5l=3e_+{O(M#BY z^#%2_%IyO-w&Yh-r*Y<2zf)&kS{%E_v7;Jj>cBeXk2Ek-Wqo$pTZvgJc#7aV7QY5; zk{(=l9?5vq2gx;U?BR|9w__izNw5c28_0;H-e%nkP5yp?_K!4{!dLhjV)Z~rOAYa5 z*lSeX_PUC{%52WRYHjWLV7Ro+{Z_2HeP5yJZ)P|XMwYM09o;7aO?4h+n zLs}~pE7u1Nw$Wx#vE&qk>ME0vY!-F%zev2&=#nfuE^$52bNJR@seTjh8J_gq>%@&z z--v13J5_cfZ~*_c_$6{jaBy{@scU2YM`>4ZsgLvNx5*4;Yf63WafWE$V*hgfx!?pJ4B^uv7Pm#e z+hVcJ(-~LA0#O0@`u-CaR^`*Zh|1^RHv;dm)MuC9+o zoN(f4>)dd&@K)v+-4G6b^{txe|NjQtA(xTb|H2x%b*hzhU+YH{ z8KXIu7h*Xpl7IlS(V)UPrq();O>n4@*A#I0Sy z{Q!ouj^20+|EdeVF1>M+bk~|!INyM5RbK*q!RLOA%&2x$r|0+j%gN|Uw6A&3yxZ*K zSC5UW_~nr{uX=JAa~gI~=1uzAQb}8q-CUV&QviE_+LgS1o!gct6Qs)nH~xBf-H+&- z2j}34$jrw&a-izEl(N;}U2say|2{B|s>j7q#jl3f-Ap}Nr~NaCbpLEV=vQ4)4Zf>nk-S~=Am(oo8(#`4lyRq%1 zzY`;2;T)|AlVY1io1t)UW90rb@Ds2)%&uEr;qID^;feUf(53;W`nSHuzQ+dt!XV|W zu;f1a9js2wzr-vI!=IEVSX`ZO%ZzGIcWbZ)ZCZ)%uXNy$;T*Mlp3xA$=4r;upzHYV zk8PGdA-XsjJYE+uDd{EWKJ47ZW9ulag+W6caPm0%WuNWyA$Zc?W8=(PwX607uXld4 zo^z{T&7eN$Ey(^YvfNtLJH*;;r!oJ%w5PnZZuENc-2hLp^St5sQ#`>ux8J#=Ti=(_ z5Br@s0^PjVyYU0A+2rMO>bb;wPmZ+p!-L%RFN`?)D{Tp`cUBT309Y+>b1L=gxsGow z;3oafC*j?rhkeaY@3%F`&fw{06TE&O0N)%B9{Q=ipW^njs@tT3^i^p$x_zyB!%79| zuhK4X`&-5RyvQ6i%R-TYsch#HJmDb<6Y5i5cLa)sWeJRmF z5*vx=fQvJ1oC+7Swj1i6MBS5DPhViVTCOFoCHU|~W3^H2JfUmGbynSMRzuSX)j3{x z;@*!I?)eaHcy^k7%^Pf*`C@!oC7}#+o^V#hTG^Cq&J#`U!A7$iyGrcV>Ls^f4_P$U zoY(R?CwOY!c$-l51l_z=I4kPwmBQe~1sP zAxCC@{R;Tv-r=>az%F=##-tMB<-9BY;$rZTgz#6UsT}?6-Z5O-#kUx7d7{wTcbN;z3#=5l+oAS16ofzNMqhmUbN`Mx{A0^25f3an zO!Ax6*}}Ytkv~eDSivTrm&-`I_b@AUquWO8L+-JNF!zz&LLUy73Rgw>+!M#%>iM*} z(q~dLXSF33xP9^Zc+4yZ)=S-V$DbxAKAk@PvcmbMGp530bQ@#TMIZUk3byKAL|Z0T zA7dZTK6%0)@C{sN@gMz=_kRwr{W$gP!T8RQ)F~a>|y;fjNtJ z=*qeCgY>F2c!hW4!drO&ysYW9Z7#gB&1)=FcP=`wY~%Pt$j%sVJ<{pZQKZQZ+PX5M zGuD^USw6!_pH8~7$2{_FyIW?O>ZOmtt@M%o&_$nDzd{_xwe$GtJ|e}<%6kZ#A?xa{ zB{wYY!Y{7tR3kYAn{md8yNOX=h+LIDxvOC9lJY0F;Gc$`y=?`u&fcli$9V+54QozZ z@Nda6Yu7Av;M#`_qA^qYZ}IzH@pzJZD*{^ABEqCYEsb3pQ=I2OA}GBO+US8vj#$Pmo`Hu!g%acN6DN zb)HC_N#gQ}PsJwQU#|HPJjPjLfAtbR0lcfNvSUnYCFOS`6R6yCe{p2{Zv4INGR01r zKS0y_%M_c`J#L$WoM}2Axj|)*b;~A+_ivYl-)jEP1D5?|r-SJrB7QPF%dq1=i+V9r$Js+CXVxD8ZY8!5i+jV*u-jl6~h2HaEb)s<4N{F_u zB29G%x*gm}eoe<+FMX2lgPlkBje_5X1M)mc9`2dRGmF2JDL6FV7x4ZR_DJ#Ic|31- zpU>r4^fI&D`Svy5MZfY*TH@008FrqW_z&R4(T|7Agtxhjhwd#E91Yr21CDe!?*j(O zOUD?`v~>^hB7g&sS_vKYwBLU+wU39`^VmUz!~YkUp4rKJGhKxB7~U(O68nSQe^o3Q7wui4qR zX&Jx<%z3M}55D-jWS7a%Mi3wFmR#y1KELWyJvl+A%GE1JdX!{)TegKy=fS&|b4Kk}`gI!h>_Jw0B>3h1dd4nr(0yUk z;s)fiuq&V0Fw$qyr!5=8uRWP;=}~6wa_+(D#ZL(z@r7aRdC{>KuZ{-HYIO9?(Xp5C zY^{!t{U-lDJJz!HjFUe54j3Dc2DzaJ8hxL1#c+1cljYfR$gi$5T{+Ax!H_)QyVk^? zr+rtP9K~>uufhs&?Umb1x?pMCf-XQkf8jm)jcVN&wz&~G!k8PLht08u^(*I1pDEYd%r`3buAs4pj z6#1m(#+7~_<<;Ijd=s4%zv5*mazPzeUucGG#A1u}-7J;!7Ukds+(_yHCTO8Ut}lkr#;bt=;JqK zBXn>s-|7#Myqb+XlovmD(a5*2sxDVXeU?59BXhoujH>q9kx>n{x8=yF&pG={l2O-q zGU^ukmLz}j(_!|PwGW*e|3A`pL0f`JGMNWc5itEI4W^^{=9F<@mh3qx?Ym?$uk82O z-}7i%@k_PmT_2g)8Eu%Tz4>@6GM4u}C#_ue7_;`9X=M*d`?i)ii-l?5WG5B9CpoWQ z&)whZzhV&I#(1>c;^6&r_^{GP zsSb||zz@bwgTF=i|B}t)WGA)Z`0GfyAmwt#I&}KD_kD}oHgM*<@T_vn$mb->O)K8& z9(dVG?0AiVE1uYzXHpZe%kFFblWoUX0gv^e0|%nroBhG?O-8ga?TTe8H{S%d z!H;eGT$uFf#@wW~^{jv4TmCoRTB`GJ=G8Fs+p_obhp@x!W$n~is#n{>sUEYYBK95a z8%@48IJxbCuTO4$KxaQe>)8BhvC9JuvU4|g zy!E8%_uc*=aiQ^NfJV=5G+lkmup=B&y}C6svU;UCw_IzQ)|p0r?fe=(s9xP*!sUPb zZ8-Hu@Nj7ncN=pr0e&kVgc;A}rr-m^e}ivUg;Q^S{1WC{KYNc+|4_N$;%w2Og840b z9_B1~0o#Yp-D_@nHY1(C-q-v`8{hTgwJ(ty|1Ecr1o08^>OI}9H@0uM;sJ9)c~1l$ zzNWUa2j3H&3Hze@%3grxffXKG*8;4)v@LkvWG-Cv>F_$0)BDlj3?p}3XOKNv&u7b0 z#3^w7iK_EigTX;$S~c)td#6m4F*CCw_FC=9bn>MMF;1TVe?8xeuHtT~8j~3bPrmk_ zdCLpJ#HNy8$>Aop48Nn=41PuU;Xi_1IKcA}cACjXQ{hU={{2#=3n(O z9-G(iWB-@;wkr>x<<&<&>U8dRMPFO3^0wlq*3P>(b{eyv^DbJ~&$EkrHu&stIB}hy zeaAWAjJs$JJkjDVqt<{a_l4PCewBNq_#PUQQ89+S3Du|d&Idde|BsYv9#?IN62r77 z!1-{-8#%%rSH?7vk=8Z*P4fPfo z-78}%ig?zz6}@RCTz+lyOyw(jvzq-xXfaToXrOWrvv-RxdGMBa)aM}dVl};jinP*e(XI=Jmwf0%z)JOh6 zT)u<)j=o^mt2jf^4EFTFcY1l1{R{gGw7c+M)ZYLMl1antv4-i3{KudfbS=w1XQO?( zlb+Z5z_}-AMg3JCwROy;&R&SdAxK*h_Hv7iNmWso%|p}lNsZxu;=_tN`0$k^z=!ZF ze6Vkkz;CZCO5ZiMTUn1p%VVJ5qW3MkZS_NPo#@#v2MzW}KH&R-Z5O@I{uewhgnoRf zjnABtD0{dnuXm3TTi+}r;fg@{-ZD0FpJm!*Z#3TfnHzI z`d|82?)GmG8>!$?AIsDF_+R^H$1ZSSIk11KOZ^kxY}wcApUIu@AN`}A|JJ_~4(Ole zQ!n#R=ZaeS_rn8xWAEP_EXMXtOs~c!`E_*fY-G>8#oV&fOpbg)+=&M?&kSpn{)H#+ zx3BqEqxQe#&uD1F+Xs_>h2)uB6G`a|`>Y`Q*q>FWev1y8lMzXskN&!jHU2@L$$WK! zDZlYbVx?lAmHrcL@OQR;+jJoV-&GufU!&JWuXSvI7yKDr;#!k>tw_3FPW+e1*iqhN z?896S4R)_YZs1<5XZp-giu0GEuVB=4;vbi~XoA*=+<4_sb!reff^+pH-T1f4=RV(G zm^qy^#q`MM4nCFZW_*ROVqmYCl3(7!-CE7B#0r$Z8#t0T;_LAP*5`uSC9T}meh=~7 zemi#R1eGmXU*0i5Oib412}PVu9GGoVMVvznZJ(VOIK!mM)|Yj_Cl+j@+#dT}e{P)1 z(e6uDz!!|8 zXM%8Mmyk5zD>Y|?jeglo&Wwy^j$hBdpeJ+CkpZK|m^720o zJzUmlhyk&UF^^tpQp6})8|GQ{h;HY>LsFdEQ(t|YJJ#5#{%-EM`t*$S^r`W))$Y#W z(jlFLCcn-Oves^11zv-stKYjx6VE;t8R2=-k)!vI{q3R=d<~s5%1(Qg)ETzZrrJ7! zU?^4l{~j*gO5 zsK*avNVtSPv_B&}_Z5%exl`Y6VD7-D-i7|qb81Davd<`Q1M$i2F)_E+{(!vQD^1Fq z`{Cs9y6KFU#-_bgGBtVKaerO7`yX>c_3Uu;>$?UI|4-U^mO9P@4$)Qyh3XgW4)gr>}%d^^MEMhuGk?1(|yGC^>GH< zi4%JlXC%Ve4j&xw&skmcnUxxtE1A*9{fE9(7k$_z{SG}W3GE|`-c<%JyqF-HSTnJE zPSCgW8N)7oK|LAgCrb+FX-^LQucV=pdqC)?&PQ^FWUcx*L`*U1WV_e^P3+5ZZTGv|Hsu+NUk`DvrC)7%`G7xL##kX(QqyjlFezlAdn ztkbPN>rkC*ZKe+qek1cMC;kL=2DuO3UVF(So>xzv7%{{&NAzBOE^(3q`7f$8w5b4U*pJKmXB&V2mjWbQ+x%@}uxy~O_rEcx*t^WMXqGfunQ zX z93}e+FXkH7!a?L@d^(MIL(J@8U8yUaOdH6sUW|Y$@?6NAaPC1MMhY+oKOHW6m$VJ# z*jkulD>yeALmtxH(!ASBo-d;5^fa%2kKU21;(@O?e8H>lW$N+r$%d!Cw1U&*$;fl` zqf&UHzpp^2>hH_^|B-x2=#6;KsogxMpVyEKB)`Tz$V6Gp?Rv&M`#Sci8^&~AXYX-l z$FBfqE1;)-?5jQeV!n}hIya3CC%R}8KDzJ|&YECLUda3?8DzfHObst-Wo!}3$_CkM zwb&WAbYxj4;sk?z&I%PL&x!!-w`%3zb zU93cH1o>7oA-u%Go^YVt;GLn!zJh+V1v+=7hSx>MViy9|v#3M%8kMg<1YOLv>3C(L zt`L_F5fM^i%(*ky6;z{Uq^jkq230yN1tPFnN*l^J>(0)52f!h*EaW% zH^g_~7^UlLZE)5H=WLvxetGn%zCxq%I%p`WI@yD5GLA3F1~a3=!>{Zyr#wHL_b@Ps zFE#?FEvLIU2?I+$V<%knV{1w;C%r-Vb9CyFJAZ{^!66-C1%1`JK9hC3;p|xLJ+!0o zGn^&<(Vy7!=e>Kt*uHH^d>gdJY<<}36t6497pdTKG5g0D$#yw^74>kq_Rp}PgpPLOr) zGTO%uSW9fQgb(|d-k$|8Jr`a&q`6YZ9C}YY)nqS-vhKWdPB`%hvcWs#e}+AX+o0R& zoI4x5$d&nKfCJ=AjmK9tj@0eZwfecQ`2|OQqMd%~(ir3~t{)->_S#*u(S@L;>Gt~Q z#5Ib-YrS|wuR%BZemw9*s2e&hG00K7fwK>P6Gt}6j?d+zgZ@I(Or|x>R915i7aQqFTE3}VA$xIlT3WWL zw3IeEEp4)?tjGR{O@E~9L{o{aM=^3n(lShCNNL>9KLKZX%+k9HsYMIr!w?Si)AHNYg zxSeqc<_%SRx@hd`X{<9(VV}=tAM-P8AoYbNa|J%6UE|+;UFfX20cRWB8tXT=wI-#Lrt$eo-UW-sJYH~nCxPjcWWf{y09>565n`Jp-@q+jHw z-^o6|U{d-D=k@Na^LD(!04s`NfY+&Ug7UZ~&}{JOJ4 zZOA@k&pT{LP8kQLGB^ET((N@O%jrXh+wNHhk^Vym&VI(>OEy2si(d@ge!A%N)ya-9 zx@9$c(Gm9MX0u0G!+4*z8k(^0&Df3nmufJbdrvf-`Bz~#V17lhgEZ0y^R@6Y^V~Jd z@Lk@~zeD^WKmO}Ouvt$t*G75&gz?eXdSj$G)~$aeZYSdtjhxic${2-WhjrdeTFh54 zp{XTf-hhuaCTI?AI5RjjrkMLv&||V^m_xgvCG8PK&kW6a51Y#mW*0FRv*OPpORf?< z*<-{VA=7=G?a)lqnTO9(defPuvsN)akMK-fro{WxP30q|pyNTo$rwDwUXR~BqrOFb zLRS1DdT@+;rh?=9Ui;X;oHiV~{<~YxoveA%WfiBg zQntZJuwz*M@#w57|82%hHd@)Kp5LJ7Df{gnp3LvqL0_`haIK$#g(K@{>j}=fuQ59l zShO!z_=2_YQS?@L=trSod1r7=a+Yfw&(y#C3ewgV``(^Uk;SW^r-Q*2`+v6Ftyr#- zVHoFNHqKy!G=`P?B&H_9OXQ6W(e6`U=JNWw|ysZEy>Tee`#eQk+D`T}M;ovu2 z&QHg63pg2%-1S9$ilK*#ezo`7Xl8Y`2hp?f>t5l;!+3zc#{P~DkY^G-pB-7Qe)cmK z>g!C#8v9JbKr4)U$t&n1ifQ#D_I%S}i2-Xl{lAa@t&H)VoGXfAf7(htqFvFk?H>nz zJ_aX}w>)}i3&|=z`Tv->Obzdv)V8W7qvH>P9|l zz&`T7>UQ8CiDe_$o%MjTAV0$|-S`)5hi;>PL+>-bZBh6^56|Io8RgNqzFQ0W;W_hw zVNnsb8s^3Mz(1Katsys@Xk_=4NUmD~WT@p?`%{s$(`#Hh$3zDhe0o~c!U*wDv zWi_rrE4EB^Uci|OWBeP3*+VoL$V||GGd8j7{mALWp@<^eoPV*U`y;ZV+#3-+6Pzkm z6TDU5*jvera^FQXkC;8coP>`Grfzh|2JjsL-x2UVFxgaG)HtS7`+23~IF~)&THS;1 zk=9A#5!`2TunWV}4EEtB$|-#-yjwg@_du;xEK_;K+2Pa-_ChYJl^?~__&bzeh5X|SIPJSizGDe)gKL)6>>(wf-Zv3&0f+A9Kyr*$Rqg={Q%o% zUi`5>^e)!G;3Si})&7VQ2g<`Q1B=>2sES|EBcoBcvlk!y3o4SSJhXtc7<_-k%k-*U3R}Ur%3y z^rf+QAcd1|g7SufJ_{Ea+Xx8#3W47^$oU^FT51ji2Gw{1+49cDgUop59`3;U8U z9++X+i_N0HQ{q|p2^4nAeJGxM;kOII z$oTA^&0RXc1Fb#i8?PB7#Ev(tx>7zeftY{xnH zqfMh~gE?%sp>?E(7_jSnS^L`(ylO*j^@Dr0^=MjK6KU%maNJv4f(3igXW-N^&zXf+U|qKx|etM zR!U~luZ_Ix`Oo|d?&Q#sqx@W>LxtkKar`Q~dfc+gR|O4ro8YLt-By0N`izV^dOoM& zNw6qSA?5c_pX%28c2v9E z%p7cV(Bf?Ne4jCkc7`Um7i?vJ$m5?j@0{%LPUP9r`ZM8`@K(ulAz!q@NBIEzY*x_W zw~fHuc<#hb@omYxLHK->wCpZ_qLeZ9WKVBx^!LO#_8sfA7cO=8<5BBy%&(Lrg^4x#Gwc+KM z9jn4?Q+d30`@f*wFYs4m-uX)E!IdqGoB$o+&nH@KfUow_ANh?MQ@sRxa$OGVYtTPb zv7DGxtc|vxrPf3XA4K1)Rw6q(t}>@-T&0EWO?8SV+H#8PHz)tfkKo7h?UT%4ea^Yw zld4lIuQXlq@5|vVfaDaz97r$ML$_&;1v=ZfdnVJJaD#uLVGUozU1lv8 zn1$ktv8Akg@B0!#;_ayYrh*HWR9{5;8Q5-2VP^P(j0(Zg0`KV|W?0KNfU$&s%7?i_ zprwI-#q&BDnh5C})3o?+I6vDCobr8*eT8pb)Xm!QPvTSkkQnjHyR5{$!Pz(69X`GC zo|@Auk3@E81*WCpv7JAdho1v=)F3~sWX^&2+9YGY^cV2y6R^8;=2&e+&{0~^8@AH# zDBp>@zHkNih_uol8%OU)64$?gT!!s7NdF4iJ22cil5-L3_cCjt_RSlJry|-6{NCXO zt*-u30iF67cg=sbRSgUmuzsfNFaN1;JHA@6*STZmLHN08US^J(Q6Ak6UM@GKd5_+; zImg_(*&n-gbHeBEmDuwNyGiW1=;uem3ykl98qH3~4-pk9!hQ?9RSi7z}M&da46I@8_ZCELe&i zAqGqq@U;RT>7B@nso_Y`wxz7EZR7Z+eu<};a0>a@?r)fJ#Lib@%CJ+jHy2xAuW@T* z-wmh!g8UK9AdTmZJimqP?$`!6=SbYU8~ov;a)TF4SdOh>Muhe$dldQl!9%~*y%YKO zcG)^@TyuutZTht}?Bpx_f_%vkbxOWPHrwLMo_hnh;b_G#B)`9l&(y8-VGs6EAN_Fb zm)ym0xk+SPip_5fxB=gqPw!rC`@oiz`h6WekA|0o(Y1=$uM*vDh&XiDkGv#V=_mB5 zjeqIllCQLG?driU056XM3-Zaf8LZ)=%TL&cf@V@l^ay>!zh+zGOn3%#b2R&+!BYHD zNbk-JcNT`h`_atR367nq?>JM&e(6GM`*2+Z-zmXTJZCg4Hvmfnc`__m;K!<0dfy3Y zba*FsF?i#wwhkQYK4LxeF{f1jAig15d%V7Wi~9TM>kR4_uZTSakAS{bzlHrIdU|E_ zE%rp2N5QvbM(*p-O9d@-hQ8v_2nc}(ZHOaPYkvge8?M< zgGzbUnm-esz}}=e2K$hByJDh!0bVvD2OI8$@bD7d=-`FD$+9T@(%O_@-18p2b@S8e zGkpK6q=(KO+lg;|-T-3~gl6hb*4WMJd>y=HkRE%AHK3g}^(D>%oy@px8eXfjVu~4H z&kxp^YUTiQHerCZ5!^7gm0EjRS*v2mGRc$RA&hsda#p!`s38tr%$QUQ_{nhBplv#*pFTUC>Y^)dILgF@u2WBZto?%e!y zFEPuQn^oYmo@aZ0_PX=4hkJ}z`?`DXtFYUo&bEoM+FQYs=EmQ2PG5Nca9qVwWQCCM zYTDWNB^D)ovbD-240j|kpAxM<_a$VTY@=K?ZHJ!3pA~$}W^Rb5-gz8$dderyz&9R5 z_O2f;to+7 z-qEeYdS_2Idr5U>8KgxIYv9Qi8?0%QE2VLP_WSt*VulTIyuXJkBj^?W9)R`0M`zFp@@)2WR zu&=@gF@4=y0~`_jFqr>&MeZ24Kjh@`#^mS91Akvg9>vP7=A6G|CeeH=bFlp>bflG& z4psh~O`K<<9rau7+)r8gDTs%lGsi9b8;kfJ308JmtQXpsWBn)zkroP9cHT<BIW6=Do`~RqW_xQM~a{qtrJ-Ib4rA^XXTFp!vXbDxYw#S{i+};OEtd|o zsiljJ!>s|4DvTdZtp73{2R2zdSB{~@Okoy z$AyS3j^1L<2$Cj#Fj zs(u3wbxt8T^YMOBwjZS`gPpa5xgKXWTd74|SGUhI4Dpb%!d)UwYH8 z(Z4IO;rl{eCGwNnq&DOX0vU$%N}>hFiQ368njPlRDAF!WF(tSMQ?pibgr>U|eN(o>o0@VxBjY2U_1w9@*ro=RnG{@BO-7&DQg9 zPM#|Ayyf?W7&7G*9Djy)y0CChMK|9yKkuiU=?+x*vQK@U>&Kdk7g)e?a(eXVo{qDTwVT7>D9Tz+fOfGn-19uoew2Gw1snUJ`}yvl zZ#u`VQaop$enCpY&TaF*ZOA|c8#}DzHv{WnhbWF96H`Un!99^7wEgW{S zo}5P33vcOq;8dKO>x=Q~^2)QucU2tRlqOYH{Nz=;6|Z0lb_5 zLwr>Cw|yAmqw8J(r;;z=@1aPduG^S%y4R0oKRkKlD?RyJXdG?v?Kgb$=G&v2^N8PA z4g8vK1>j8M^5S9Q(U^0ObBAoq7vv%=j7x zg81YG;8)5qW57BhC|NePJ(GMeQ@ueyTt4cD7_>8E= zrpRd%oo{Dst{xg2;y%f%vAKwT3BDlp&0>5`rcIT55JU|xC+7JMd79~`>QW5ue;NmT2;H>%AMf#PJ>R~;wJ=*#vzbnmmxG0~uGP~RsT;JeO8aOsjc;qQHF z8DU26A7?TLqh5SLb9UY>X70!6R|Hz!KaO#tjMgMSO8yp;zguNmIM;Xeyvo{6hZr#O zv>ctccMkE5dY?n=qdO;*P92dE+()A_**U=&X8QPM_@*^~L;doHBeU0}0*m$;c%&B# z;O*J<=+isT!{-%RFE-3^Z=IgK;(`36%^eY)va30Ne6=}JV{smNJ!|(J+-n-6Pr{e| zBlLG|}_O8>{0JaFYldYeb?BRRnlbrtr&5Y&F#~Yv-!QMd| z*HLGDAAX6$oW+#0MidT2XKRf|b9Qy(i0(XOlll{)b?dIcT)GfEK5b|}tPOv#f==co-a9@0>-M?RJYKXT%XgRIBM`q*`{KEG zpgTbaYeioX)#35E+pE~eDSqvjyOMI!+g$yZcK?ynMjp0EZr;nYZTNY$P6_Y4eeov5IFvu75uPOg}lChA%AjMat@oO`9Mb=s>)Et8bM+1OmMn^nY@0j&ikmu+^@^91 z5BNIrIPl%5acWY5d9&B?|1kbpU&qtj@YnCk_$L4EB*~{7zmEU?GScNcLSAjL>4V^p zGRFmb0((U;cMzw)g?j!54w`uC+!N|8xq~y0wPvMvjjPf5qj}cBY+U5+q3Ai?!KGeY zWQy?-?-Z}}_~oOUt?JwN)4;8l`%$r(MVZMAQZjb7|9-X($th;+Q;~j*~ zcG~B3@46V9i1*+l#152)i7hOv#!t7!GKy`2k1{s<$QNKAjC(E`c^!Ub}!Q@S7r@ow3{#gFh)AM*3b?7f)~-0=Jy0d-t4CtM3+GyTF6TU$ZzR)*uF6jbn{Q zjI7ZZl_5Lp!LJ!Hs$00NH`gD!0X)Z9d(!_|SzK?(!L`QaG5V7l``-B8I)rb|4$k&} z8~Htak8$xmg8!mh;oH}x)c@I>Q+_fnj0N8}WbwW8eef;#a`Am{7T?+*Dx6n+*28y< zHSUYD_;&4e+WZ+fAKEXNJ$q)}AoN5Gk9gVlc$e(dnrm(hp>I>=p(lv`*D(&)G3TYv z3b(?YWcxN?6TJ$r+Beq1o+;tw&Rd<#wOKqm%wN%LJ+VaxO2TjNVD5^(c2-8vG3?g# zITyZN1TDM$TyUJOnq9n>CDmWit?z@V=wj|b1G(cr&KS|^Xd8T@$8ayR_D_#bmO;0H zoH{>FU0T!rPyJ&K|Bw2|+TS_qAM^5m+rR2;{}!Lzzvch?{*B4@&*x=&ig#8@$K|R0 zD3$1%cAm4M5?#~Ar(4M$9RBxKvOh;pHxK)F__m^wy*)Pje=6Dc18#dOgWl84Q^k83 zd8YE5MxJRrN08@i@9E~5$@?Vo)Z&vqQZ=k42Z+Z9ZLL-6>p2`0fSnAEOd5*&iZ zhfOdEUcsbx1(V%fD z*6?%vdE>uyJO4wxxA41#bf;kamm*VRBSSn_^Zjws@8dT&Z~R#;q!*C>BI!nX_$?v* zah~__Q=O`-i=Wy|k#9Y}1N@rZG9k)@Mt1Rw@C(%DjWo;iMpo6@BSXvWkyrBHuC+$C zkY<)!BTpM)zF29jFG?2v|7m==I9d#}8L=hfti@|;PY z#XQGn^DOn=E3f9ciagiwJdZrr@tl;+vm9FBJ-F&PEx7a`Iu$L8PCZ)AM2;@q>&`FH z=?K2T{~|{}z1O8@_x;knE={}d^Y*&)jCYr&MX#c1(W_`WPi3i3G_CnH%}=8~%{BKs z^@+CKcj^;u^G-~IhZoVd@FLoVN4oVv+rp8HJ2#E`gg^J4`h-LGo%)1B-d!9DKfWlNdnEJYS5;Nw)cPsBz)OVYo zMt!&Y@6@->f2Y2?y!Xm`c|J;g37%I_-zJ{e4Q_q+^FEFG9`Mts?;-!4`nLG*)VIxh zuY8o}^VFB(c{TMt#&dkOz9)E}NqtZHY1H?O|4x0s_ur}SIq$vld7ek9FU@lm^&Q|j zDO=ymyq`yXuli}!_YeP_`d;_nsqctOi<#h2j}}jZ&RURv2D!K$yFGwzA7s2Xp}$Rm zpXSY5T-##uhIf(Y2PV*vFoF4x^P6Mx8c65epj+BJ^XEr-H@xp!RZ$vU73ZwPV6ow> zz5B>}AedKORc21Of5^8zq!(OI{nC8`(4O=LSHBc&i}7cm$L%UIvp2GTM{vp~^8~hH zctqaFkg*%$1*!8p3Rn{la z`PHZ4^SFifY~bO%$_DQ8!}n{?Uu@fy&#R8mpZ)V%YKMzFN{j&kGqlyht$cihnF z(aoAVfk!a_9rPy%T+(}l1NOi)+yQ<(y~p$Kyv&(T&yY8TeuRJPb{ic!WG?8&m(_jx zHtiWPvv%+;2%eT%X0|b3S?jzxxTT%_Rnqx@ui;;^<%LUqKf-^WKMA5!DR%VO%AdOX z6EwcF8B5O|va9i-yZghQ1!s!C%V0~qjc;iY^!GArRPFc*@5g7rU5}&Z1@abL|5a;Y zg(+_>vPv6XWZ(JtkMxwk(L84OCVM<*yyWlZ%$2qMtn1y!-U5q$|8vn^&M(VPZe3eC z@eypA7iq5|P~HlUZJLVjD=#p%;Ua$WQ51!1*F27YJ;pC>7t9Ztar{j6PCIXYnlaqv zrWG)Tc6IR>r`86SEzm@WF}jNN)Cl7nF$J7=9V-68yd|}vRjZ35#?04z36Z{j-jv$H zRh`9(8QFmkh4I=`nvFx*z?g5eCpLzu^D5{jL|vQaU0|Sz$xpgXg*5 zLwx@P-+#bZNgf?rx!oPF2;=_;eig=Qi(<1spfx_?>lE96Y~>DbEhApMKyfVTTaKrR z=0pRkOTWRusqC*dZk_2ClSxnhM4d+i`B^_hL3W>DAgQ>|1B%0Zn)QuOI6vvHIAwF+ zGNbz~2VN$oBi-U;CIQor1y@&bTY{LB+lZkNjER5Z882>IU&0=|jlSqQ^jFI#rdzQ&Ze*U#Hlvr>friZLeEKlKy|?Po z5v9ZTujC#*+2*_E^zJ7%gP5karJuvs&wu6XBd$+*mOhMK@fYh8%5&h1Y4lFR@o%Va#4$BmYUfFqX1ZeaF1xd7s_t<^4GKzq)iqjDZbZ zh@Q;L7iLbTDbbU0KG5yck!Vcx<#y{G&6di zT`)Wa-LSuLxWyWLC(l*aeqdpgu?T_l2)|PB&iP!B*=JZ9MY4<&oCbtH6!kh!@1ki zt;C_QewAi!#3SslWV~M?_FDT~JDJZJ=)&`-b651nVcmbS$29~4tbs8<7b!2v_rdm(%|}-kcDH}U+T8vXn_pn_BF@`< zxe|T=ocbo%kAl|`^vT6{puGBR{1Hb2!;@)b?f|ep7@56h#nqEat_Oz2oB@~K&iDmp zREv)s*v;?9%qMH?@cu`f-oGPTiG!S9L|@Of?D;nOK+vk1&pBG?H+Jzo=G@}`?VirD zvb~~okb9ep(Mt}k?JPIu-0FVdTFG4GPubjtCABx335_2`wvDt(=l?76>QZ#2-&&)q zZA;H0WZ|glh$)(1ly64=_A3>oFOfHbth~hfFmkcF`nP6eu}!;OX5{=%p8aD?ZG~0R z8X;z~AHC|uKq2RJ6}A%F(DW^E)4vvX!EPkyZEx^mcI9YmN;4dM^CjbN$*Cc ztxTP-In>vXI^UjDd5Jr}p!Zjyb(INC+HlFh&*p9JYlxp8N51s8r_S&DgqK&}`aXgD zAXX#+%>AqRwlL@0LcYOscc63h-@>;~rOr3B5uB8`B>k!Q`R!&xD>{5rvzgG~K+BR% zUq|i(+sMj!D~?(XD~`^+<^v^hGhsO8MpAC1X{bBegTFAvxK+-J*5-k;{Dx?4bHElJ ztL=thZM(^9{WUaLiM^B0+35uhi?iPg_+G{L{MKKiKUU7e`@x!QLBo|f-%s<(!&BVy ztO>qnd2r#DXAkFlmIogy&$+X}=eIBT)V^s|tW_28V{O!~4CEEBM3zhhcJY=om~XdP z%`9O`6IfcC~;>pn>Gs}4~ z@CoS-(jlZjyr1qMy(0R5s6X_f_ec-&VSdz~hm4zGRC@nP$%o;|t=Vrn-@k7evS9{1 zmhV&4Phz~{`1##E!>4Lbk8#W1%e)W12fq*>$>kY3OXCLS$LsCbqQKNK9DNU;w_+lM z%OB9Tr+aZW2)ftWEG(~yW;LJ4D_CyJrcZP4ftZwBMf>l?uTE}11&q0Jc?B_ZuD-~9 zqQ1VUJH>om_e(#`>Mz`i+96#xk=02!|5`eVuj{&cNvhh@OM>)|IUgMv-{b2i z`Ele0aJV`NYX#DGrIY*#SVG}=VaXwIQC&b zE32nJ^*ayt4(U_q=&nBX`~R#@ouH%NUeT?73a+uh^$z;NEA00*0cfSh%7_<9cK0_p z8MDwi5?yGHq@Nwu{eAE?#QV@G#M>l)_rt$lVUO+v^o06C(?(3Bt0TMvJ-jhR`hau; zbOP!cbF9YX(@)nS%LN*mK(4_m`qR<{V-;)X~+V|B0 zQx@CC-VmPb?J9H2Qa;E%!X`e|m5cwA`Z}rOGt_r0&($Z_7o0X!pY|VHkuEou$)4xi z`zFa+D!vGtbJAHa#&?tEJeL@Lj(Xs}jr;2B>Bm#>k!IHLgOu0$(4y=)4KJ|Q#`%zG zN)?+0Z?P{xa%XcTyb9Y(GGu8LYs&aJG(RQ#6&v9BIevNns|!q7w3D&F8k>oGW(@K? zp#3^pKX)$ZZa#~3@saUHt%U(&$*s`h?a1%wZ0$jF>MY{g$8iqX*7ETSx7t?q_5!Ev zwlhrA_Db$1IL$PzFE*pq?%Vm^z5!%^+k@m>5)B`}jh{NABbP&<(gQSoF~RJaOEM8F$eRh%4JM-PISLVO~8G3D$QT$`mjU)gJp8$31d{ zSo&gb4K#*LyV4)~X{IgCTm(Nud#n8zp4>FGYb_Vx?u z?xDm;_IwnZS&0(Tn5P}+Bsc71Kj6Ec-n-9s_Uz+Mgh6DO@S(Z)6Ur|Im#IVSAueD| z7CO)zI^1B^r8#HNRCaL&8ZwHp=bq@cG`P{d-4$_@iL&l*@cl>2O-6UE8P;SKD<8YW z^j=S%H0#Jw;wd%|C)pRUx<3d_s~&tuy<_sMUd7hH+pBf{Lj|-T+XB5}o#Gk%f`=nyWg?=K}KX;VB#~zSP4}C%&~Mq$S3BI0+r{a1unna&dx=JC*n` zl{s*xS0-}WiFjQMUazJOjep0!!KU@#G71iNa29AiIDG{@*bIBFCKjcywsCo<#!R#- zTqVJU>fdypSN{giOj68|3nzAw#!_kLXVW%)Bn$gV;~N2v`Q%CGJyB!5Pg~#i+tPj& z>eU>ZlCAeZjhD8Qwkk*2sLi`aJ*ZkrRx2Q_4!$gvtM2_-Q7e56c-ZvNsgp z*R9w{_W)z!$g?$}_bJyzIdc*WpCIi8_N$DbykwT>GiA~>&Pn+`N}>Py)3Y^J z7x3Sg&wgxy=OcA}DSIS0fAbLY^ME-^XWpgvn{Erf(_aDIGdByNWe(-L^ZKOd+4RmD zPV5Nhb%<_5*g3>l_I~hUZ-1O|X?1fENW5PzCI)M*9=K744=bn$7b-C?c zjjfsvcQp!z2Y{icnD)V4lzNo51AJD3r{;4^?>}eTv5?nlLvq3*UyQYl6fq{Mf6*(z z#yRsb;!4J%OKc|&w5#N@n}Wo>aO@xBLn%CDsN{fy;i{<}2s-_-Y}=b5qvoLybZa|S=Rtf%iiV^U`g>1XZCvs1wF zP+X6@&KBT2C_8DMQ~a@+8MV%yZA^U6heUHlsmt+~ZtEzKug^RCL3=RDe*(Pko>k-d z!;Ytykxtp6n7Csrf9CrBMbDyR>2>n+bN`I|gnP-pO0%KYq zU@a*5S^ZHKzAd<*C^>MB|M= zGtbSoQX9BOuI8_AvKF$hc*JO(pZJzZ&+aQ&ver%|_+}4?Z)8{_+h=!_|I9oy`z?FP zA&a!SQqoE~%44fp(>%;wb$@4n<`v;gJMm4+?4I&P>@n7}KKsAIjBj-&czp}A*Y7QS zk!vfR&CCPn$AtwTg7%)1&E5^yB({%6pVGHsSL@){^2YOI==Jvb>@t zQQ!R-=h=x@NS|I0zu1CJ$l0GIQO3=fal@mG*%o&WPlQ*DgI9QUD+VriP0Krz>epGG zF){fq_|+QbL{Fj58@w?K!#kq);G3#3Tiee)Ubo;Dj}Y9#k3~B%_Kq3%e%^`6`EQ~h z)k%k&m|XZWJ^|iik8lPLbP-%iyg7ZPU!#Ld(Ko=CaAdgSFM8^U`-vv~n6u}gHQimT zy83AMEjv3-+zBfA^H$-J8uefOqs|4wf%@ymq~-QC3JhiNm5)*1GW;EHOt!nD$nx|W z;F#`gW36c$vc1llQd<+v>V+}vk*M@8=5`V9_2`Y!sXW=o*}*f09u}U;`7P)U(i!@u zpi{CY6@}K*)1H_e{guua!G5gq?8(Gzp75RYEb5ISe*>ns9NLQ(5)X$ip>aO2$kU^KVtJK2{edi%`Z;KLgCY@a)`IFii6DY=e~S;+$Q?OVX%K5XSuVi~Yi52h<04JmB!0&_?6ZB_J>XP zGIZ*`V$&UrqMH_&6>2Y2f{inS^M&b?{7wCw$*S}K{OuXiQfHf)vS0cd&GNx(&GOIe z3a%0Eqrsw@a@Hg{!<9akSFau)-!pi+sY_S0pM(0Mz-@rlx5eE5*kg~tGX?uolTFk9 z8Cnx5PsZFnPDs`T%GZR*a}_vE1Lrvbv-|A=Q#WTg=LyrsR;o@2hMZLR8qh4I>tG+fw@Dx z)3zArj))#Y#Pv9Fb1X*8uI6?z`}f6L$IuV)P0`#Y#?KDMhxn%G>%dsEVCg*zbV!gIu9*~>RBN?Mxn%rKsPr?VI5=llu_kS!D4@zNQ@Q>&cK^QM^1 zQ>(%}t<8h~V(Qj}Jvy4q{k_WD<Bnd12;!Xo>ya)%qX*05%*nmA>4pxSaFmgzs=6 zXCy*5<>t$4)5C6^Ets4qs%qaRzv@{u&eZ;61oBd}gG|wx#{1zf{hV>4?-MxR3mk9J z*(p_&rLT3YCGMU~JC*EJ39NhhWp0iPZ;GKydOEVs~KMv_k_w15isL+FNUAE za8EbOn>o{_2j0TD)TMFG@vB2-W{N$!8w1Tr4oBg&?MqDWg~Azg`*c0U&#;gBo@2g4 z5037hEGJF;3!Vxedgw9Yg~f{^LH6ip`H*OH9Qso~b*!KdC8Al%i|<9LOXU_X@yf|Q z%PlvIa=%yG@L&_?N32Uf>mmo*P48cs2M5|&+YtWGz*Y?RD>58I{#s zR`~`0B400Mz<+S*IklHFK01d%aV$^5$AX;wmu9@~0>*NiJ%HuMd4cW^H&KuG{)sa- zHE%Tk1b-F#3)Sxp=;p!|H2#p`=lUv0@1xuwY5Pp_YaIS`7(5eiqPe5FQbW4v#d#)c zUokgfn(o}3z_<9*FL^c#>4|K5De1!PZM3JScrJHIjBEK3@{o9{=0<0^+R~X)q67J& zqWG_tprcG-Z*PqGu6ZIo#l3$cJGTsDBtO>@=9IoGUkkJ~m+u=im$KhQ%h5Br_mh6k zU97WzojTz_<0p6`iBm^Q=eP@A)B;?RS>Md!ZDIC5cZ0fpl%1yU{{II4t6tS7`&T}} zjvRVgO`YoR$Funs%f2OVgnj3VanhK(=c>Flxb-pqyD(mur7>iod<9B7P@f$)#_#29 z+G5$o)U|=M{iKP1h1F+pp?=-^Dt8%C);$MExTXMCg?z*O;-`83U;lsE z^ZzM^zxveYB|l1Aaqhuixx-|*_WJI;{}l3q@9Z8x@6NT?(!frvrF8UY-2ATH*ayv# zo7U!yciz_6q?n6y@Vn@}-Beh_i3;4$;MAV-%OYTs~^S z=*R#0_U`NW68-yD{|Q+nStVJ+9P9leGC;b%!Df?vM%%Mu<>GCn@L%t|s5P{m=BGW> z*d}gSSFbEpA9vk<{{^N@`S+a*uLHli-vpCr2z)s0)K;9B`#XN>+| zFrR%A%+CJ-%qGh|nO3Ys%holGsyvB+lWmUmU-o8UarcKirY z=t41z@sZrYO1k0&cW}n&cKR)u_y9clj>|@z!MP#mnD&D$`)8n6@>rQA>FkKG}H{jdVo}e1u3xP#>Zlqns=fv#l2P|BvX@he7SRbc=sN-~4pp2R{FhiOv|Z_x=AS;oWI5^xrA;@}PeiV9+{J8h+r~ z0X(4_cO6OeKEO|Va~E>)Ui2qpG8XT#fSJA6@y`AXbH<_16I!@m*FcxhlFRRWzA0P;koPgxm_m7@ zO6ud-sQ6gwQ#_%EdWR=Cw#J9uHmHA#RTj?l9WAU09S!frFG-9oaY$J{toj&}XNb+| zHc_h^{dbQ8Y?3v(>BtE;UB2s~^rgr1YhRtIb#$Nk%;-}5!9103J#oIOTXptj%jTwO z@BL7Hans#FES&Q0BYiMXJQU9O1gd)=M2Tn)^|PzhK6+egl8cRy(i3TazD` ze1tUs#gV;1Ud{Utv0is{zl9Dw4!wVpd?tH-@PPMCci<@f?FZ2*zZ~z4*%Q}jUH{K~ z53;tQHa|f<7WRPNLk>0~>u8738!sZ=00;c1!2<8%DIsX6`QJJkODHcpE6rKz`_Glm zXy`jB%Uv$?dldR46O7=;AU1&;oD<=FfW%dF~(+GU0d{5D*_{WIL<5|l(MQWrO zeHZ@GnE?ZzIWfjcI+3@YU+m7;n2jCwCw%$F3?!g?2b%t`$_VxbVE*sqjj_fPeZi|g z#5(Q*@GD=!esC8H6uRS=M}KW(_+R|-W8U47m1`|?3cD9WS87vZ{9W4B_&@oYV)4t8 zXYgNR-Odxdl}MM9jbw9gW4zMp?xwv*NmHI1+`MJUNj(2Mu&e&IMzcGUiuSyk9zMqL*((e_r8;N z$wK{(5$|w(pSLv>=b*F4*dO05`Ty2ri}MV*!wvtw=Pw_V{2czLD0hpzG{woF$IL2Z z?P4iD5OB2Tz+_K%AqJrPKApwKy6~XM9}r${W*lEIMXe$F^>uJ~6+XavtH3>%PkB<% zdxG;I7@L`|^9zE*6Lp1Ox<1vJr2mP2EMc#^&YFUz-ZP)W835{|=9u#2^tJkR)(pai z`FIU?-Ig!B>6?s)r>A&rG`nl90Z*T2%}Q}GDR`Hj+kZ2o_9@0l{=FzNcs0CZBRJ@) zWNix^1kji2O~CDQe0gkJ2s~6kCo#p>qRad6`s?WWuklyichZJi?=hW;HYQnvEv*0P zql2@QPvsBN=O}fqE)J~G|2Q(ZnSH;(EFS!N`M*c_@yFY6x6XfwkMw)v!?kO`gO3-% zwhCB<3%$oUOW+^kC)mptV+(Jp>qBO5u(1ih@Qub$QQ}&~&IF+Y;+lFpmwto2@`-Ef z!ApwyxMAt7jh#!A?*9Zaaq6o(_Vmy1kJ5yvKkzK2|C%cez`*{PYUbbx<8U+go@p%d z7>f|Jhj$A(AkLQW{AT(aZo@{u{NO--<`(@gnJI-(2IpFeI zliWsoQN

JEHc9yhv>reBTvUo3>TlWoWG+s!^r_L;~&quKn??0?}f z*S-~hk}ak^g`DAr4r(Wxp!F1TQM%Uz_zyI{rF1iTz^B1gc5S>Ky43oD&NmR>Apgu4 z@Rjc@Fm>p1TO_;7p^rH0WqPl_pYrIWhVt9VH-oa!&XA4fpGl%R-z)w7@~2s2N#R$O zUr4k#0l1cDVWRC>Y5Yklt2}=s&mCEQp8y8QF@4j!%IjU{W#!thvY&OAif|-7eHi#i z>8@>PS@@}s7PMLD1UCMie)wMB3#R)`myeH4{s1^ctL_}Z9{oA^ILw-R2eK!AH+R&o z!=_@7ht3hn=e};?X%;dsh0GHyTY0YQ^zQ79e+i$cV)KOm{Z3s1d6<3){>K@VDfrsr z7S587;`e1vtiB+uGo-e3a>syyA4HJhk`=_c4Wur1rKG zm%;pN>RHM<7ww$Gn8km~dKP8Z0DCEUP8=IAUZIO`D*s;J#2fF+3~nj79eK^!eJ{P> z)CEXWoi6}Sl)1HOX-jPj@bs8MmtXF{N0?$9=F+F9cqX!N^zknGT{MDwwt=(KD6Y#WsL-VCD5v~M1xtFo3Vqh#Qtrz%+@IOsl)tA zVV}BwY{p*gs~-{ct*>Ew>MWy=9x0ryy@|eEE*_j?n?KZoo~HRBy!iVQ-F`tsQSR0i z?)<*phyAPiH6J3_%j(aQYJ;cZHFD>O=7DVJAoml>*TXu(M|OaND75RZ6$beqi(s38 zR|CF7;9GL19y=&Vd{-ywQSMu|`G%|>K)wvgX5V*1+()C%pxMv-(wT9ZSD{ajUHJQV zh!r9B&Hc8EZ>zK4j$XDmWE^CoDcMb)__4v6uZ)|s`IqSail;IK57nH(Tz(mOE1djw z9P^R>{gSy;U^#XDfns-k(jUWi>6g&mT*lC&*8+D83-g`2x!`J$G1VCM;74=lFXKE~ zW3O^C(u;<%KE&9+Tx#g|uz_8y%l8z3EAAp(3sX83ZkM{}Gp24@ zwvD~s-TCy{W?ihWGIe*9IjcKl|3O>o+mOyqY@};vpD7*gaaVWOw|Dp-46ufSuCkvp zwbbITno|d$yx~-<%plJ3Hc$|KAeR=b!2eMVf2wW&)0t7!5_!|Rh|jJ zza03(;692ilm4M>1grHhzOZey!~Aai9W+H-ZSU2V^ojIBvtpO}NPYR#x0w18Z&4Sz zguZ$Hjk4ss;P9XL7NXA7(Lq;c|B7;XjN@v?uLVD6yJQ5gwM#z06WWmvLB>=3Qg9i* z#ixc@>o;4V(@cC?I3qqB#z!5(2M`Kc-41gG+x|bL$KNY`>WTT|XQKmf{*_zz%%Qq( zck6a6d{W2j_VsI@9<9f`yAWOe&RW5BjH_A9k8>t^zG`iDxa(DMfU%c zKD8`82q&CJb|*4%OF#6_TKU=n(hB*7;fYUcTD zMkikAX=I+Zrl0lj^e|~dd2cypXc5mEd54tmfjuE=%DQ1z?Uo^vG(+^Hm*3N z2hN3#WMgH=CwT7o8pYhjA17{!@21`~9ht$r91icIOuId1pp(7L@k7{v@P|QY`KNa2 zZmY_4zYUMzEQEp8+__Z2y^u*V+;Ud-dj~K^vt?H>-w#t} znO(j{{fPe{(wnHmAA40elR)M?ML#5ejLsuG5;(Y&_$#J z+e*6`nEs;vXWP!t!o;4-?gOL~Z{Wi8A>ip`-YUMrfhVzPa?KIG8+cO%yeYxmG8N)Y z7w{Bsf+jjRbL|e!=j&)NTjSU&>5I)w2Y!yMzdiABGfVb)X(7G_^a+<|1jY2S}-1R{XY^fF&ohp5mX^&741%qKd#@`iP1AbY>~1d6nThtm#t`^{&YOWT3NAE0mGsSh z(zky47R>g!^rSwQVp9t)7Y^XslEne%8hCR8KG4Cu_jy5L3VfQi%O|HW-~XmKM(psj zk(acIEk1A&F=T?Rev~=*3g*xA>2tVC+TN|b!tmgM{p_h*L_3!Bmux%ABfL}R z=*ny#b^omJuXKIaw;*l%|4+`Rx;n_`;)G`haOJ|;z!+&BPR`;~dFLFkd)b5L(ruhE z8yc_t@v}w8KlzARhrPPxaCW^*<1LwKL06CPP4$bmBCLPyXI)D8Y++AzeQNT+Mq<4+ zj=LB~l~a9!eKLL6&r|DMi|MQ8RtWt%mhG$Rar5w0e#v6tzlZjS`MCYS6Y$I7-Z*N_ zZ3uqp2C3rikB?LQoz^GEB>Pue=!TqO4$SSO8}@^BVBZMtSblJJ2m2CiV%t{F*P1Z8 zE(a}H~@}tRih)Fe8gXI5f#G|f87i;0aOTXCN_?&ic-&r}Z zA76<2eIMhyn0_tOnj`HA2ZF=rlkgLlr{`tqDsU2A-H3kajvsT%GGljxhqgF-8AI4& zJMbla5S>MR8&91};W5&Yq{n=3)8L)s3(e@fczAPH(aN>P+_bjKnB-h+PS;*V-noAp^kbTQZ}O8e?kC$k$5#HzwIMo~WA2$7 zo96cJNDa<TmbZ))({d(bHcUV+9$UvnRXUePn5+dasq#^KOx{9W`ZV$1)wku`eKUj;ViP}?`T zyU#Fx1oQZSS)+Vy=o7>UaIbJ_>&4U=w~=|Qi>ur(C|6GYKmK*F#t>s|z1y=#y4F1I za`t(0Ke6cI#{u-rdi;Ma{Fh(gK44h{-VHjYjoyR3(CFhmjE*^ea2~##bB1T&DOZBa z&yq**E6>ULnTu=EecbtDFrNB_b6=kMV=*EJ2hx!r01tv!=Q7EEBboL?`ex*Z378ea z!&y0amJOATk~DxwAeY$ z2js&$Q$7XC7{<=!!<&h#%+|FK8%}k7pE~3p;Y@@*>&Yj6@H%<)O?ke<_fBx8dH)mA zHFkaA^HTaI*aY`c@*G>aZD_q#>jRoAwxjcb|kRF9jvl*R6u&f71`tH)Cp3qaD`krmq)n`<{_=4)s(F5Y> z0nz#JK6HS$S|m%gcW~U04$yx#IzYDVN_3t5p9POOI>2gl9l_w~0OQaB@Z*r*<zdm3 zwaANuY3&(7M+_1#=EJ&^SRxls=$oJCT`&&mo7CyfPd#b3KL=OBVYBp2zV%m(n(fYS zzK6lFc%$04?w{LRaerR#de&K@=%9J*8=DLM0#Wq#8CG{+7LRemUA5f(;KNjj54!IY ztQUj75IWQ%_||I9dWq%grL-#;gp)LRT^*42eO=MT2kGuu7k+eeKkxpy?%u#%E5J87 zOAl&m4sg2qllq8!KfrudTvz`bZ>&S){m2+*5xzK;RsG>lM=~M$GiTde)}I2^ng=>( zi96wUH-C^d6x$xyg+EX@&4-sP9*OOR{oYSm+3QQN)1%A{RYC{eJNM zGO%m{mzp=OZN~F!q`yeIKUWIG+eklouB@exN|!BWnK7=;6y$7y5PWkzI+OgqqMxdN zKhE2BRC+qjVfd-|Tdv-6Y~>TKZgYe&6VH-OE*iGTch)kG7W24&Jb_0CI~Z~s}^&v@bpy4dS>V6`|*^0z!8HVhi-#@ z{=glY)K>wI`X;&#XLM{!V6%(&h{iT3Z>N*_6flMG7u4f_?qkd(L!@hke?QoCBi|C_ zI~n%Xz@A7C&Q6nG>kgkQ(5<5_r)S?Bt_u)Vcs zT76#(o+fvFZgZ!B_rXu_bz%Y5hYy)Y_KU z>$l~v!9@#LlT`ol$qT1Z`lWS2^;dn>d1>+=TiEe#42T=+ia%}?y2e@TKbM~sIUeUJ znhc^NARD$+vOe4oOfg`Xj0}n07Tz2}r)WW^V6Pr`RO*frdyVjCaSv+;>npNH&~uu^ zQ@Xy>;o40bi0`*1dpw2p!jk{M?miRzOBN&~2cBV{7*G56^!2CEJvi3b3BT&wXTV>3 zft88kClSwxmDs)V(?_8P$@`%8SfQ_^i7jyJWXx=6gmv02))9{`9O`49wxys4oVPA5 z$mUDa|BnDm59{psDVlmXpCg5B%Nk%C_-M)Ffa(e zo8O~skg@ms`-V#oo<6BqXwHcQCG3s7(e%dI$5e5YI392$TJrYzdOY7-H?*?x&~~!U z`1)s{x`RDhqTzaIv}c^%8wWoS!kux_D?V*!;`c;)FW)t5O*k-Nx4G_vCGmUg-g@q3 zKSg`mr#Q0<9Bya&oa&!x)WdFJ*>|zyMQ~Z&A5S9d@tV^a5BZv#Ml1Len`$?_3oU~ zxmS~jLyk8(?0;OwI)3~xFryayg^UAu9a7XS|fA*ca%jdP7r3<98D9pgT<_!T!qCd~5!o zvo?fpJcG^~g-_8vJTLSwe{w%tU^VPK` z^`*6`Qw(d8lajy8t|h*P56ahFg!_xBQ*eJvb#s0}d%(2i6@|}9qYn+Wec0-~S>K^s z`A4a9rq)l;$GDSQJ~XdSss~=w*jeK3OP%)j!KQQJBk|RgI}qu0*l*o_s%ble^w4l; zMRYj+Gib9S7;5eK8?ikT8Ix1JF|qi65A8)i8*#_s0~!bZ`{U5Lq@!^rIMy7Ce%5y9 zS&;bqPz5oIjK>7N2_C^*ihQ_C@S|sn2S2vK2PE@3M?xnnQ6AH|;?uMcN_3f|LChwC&>mCYTEyL;ew^~fpKy!uHO zJbj$W_peIVc#_r;D6SK)vEY-hqBo_u^D=k79wbe?Qe{n^nJzxrpPR;=1WNl4(j?z= z%POCE()vFQHr>rUsiQB-qkgU9U2W;Tn|EK|@?sm<_d*<<^evnDr??Wue=Gj5#}Ee| z$V*m~*}a;(7JBaAusP!e*VOF5e;~Zp<3rf=8|Q5U4~y=c$r>?hE5l6F4(#U8Vt%Ym z@5motV^ulJH3v4xo`XNjp3@vHz~63`#&jMm_w*L*u4hf)Oww5!CN>nGtI{MZ;FXV~ zSG)h=!A~NiN*U9NZ=&CckCOHjWBV)a*V)0o?^Ild3TDCkMRX3?hl+u_5I@7t>5980&g9*}tuHcW z2aws?C)^(>M6QfY_8-D;hyIDIch8}Z10Oa)TUt5@GIu}qh#s^zZpT==SLb)>zuvW< zN$=6@f5jDR4(S(SKSGFD1e?_ypb0RpqTBK=$Go!KEO!Ot5^F1BaZj3Sgc6Ydsn<(B<{WU z^Uj$9oD;)X(T?JvHEx1K&!QuW8}pX_%XkMn5G~Y~Xi1`th z|1Mh4hCiceeJ6YtJoxru3?24$Y!;pADqB}{RL@y(@QY;BcIq_NdBC$DJ0qVt)WW>l zkL|O_#F-S$t(- z?8>(F@3f`~m>lRiicTW?u$ghojVXKsn77(?xA;E$4zuxecJexSpcg}E$-lhk z_l9-zD{Mzk_15;TaWAEFLeJ;J@fl|MJV`FSEAv{(!EW!d^b z(QNUQF>xou8t0ZoWtg=qyV`-~|KlI}KO#No(@zfH5-cb4GC!Zs+jKse`AgwhvgdQoB`fjdxt;8*G1#Q+^kWK_7{sXD>?Iy|Ue+=pXA( zIlIOQ;xiy`8+mmGQALovOFY~7YSP-5Sef<)i+eju2TV}&s%$sofAB-tOdbuDC7rD8 z7qiP<+b@LPP>&oxg?O9^$eSbJaeNCr8Qmnf`@+m1`b)arWE||i%dq>d!0wCLV|N>5 z{Jn*#%f}$w@2xi_vLk=QoL+*>R|w5q>Dqi_kj=>Cz$9d|civJOeeOJT{GJ)i3;gvx zXYs`D>^T!#>_a@i&9ln5_Lt6JbBIyusUcQlI?r*)2K}!`1`xX;yG?n5=a4psJj8cJ zbM$IwtYQczCfA?g+6)Kd6EC@GJ?jDcOF7HNJ@-L&*Tm#8zNgE~%>G-vv;0J>h0GDw z+-CZ5u+mpu-H&lqnJ_fN+-yw#N%ZH@y6F6bGrEL-^r(+>o@bo(o@mzR_|!rE7dR^_ z&NJ7>^v-^!)%YJ{cEH7}L3cvt46MNy7~_nb#pq>M+Ii??Bigh^5#)RvX9n?8^UT2* zyd}0Ydc-&##M-YvWKyX^Cf$EXooW}wA1z!d^;n)Ae;pz zH7M;vq*awV%g-5M76jotb*Gx{J1Kh<|G=Waq}B%3oMQv5bzyIsBIl;Cd^XshS7N`c z$9^%aON3q@+}bl3XqyUs$hM6WQ_wlCqw&QVCiCRI>vpKJ_4$I7St zFLH*|Ti74spB2Fxw~WEZaV7b8k^c{W8=QFsc7KAirbUxsaId*({x-PPv&+X+M<#VN zeqS&#PZO^WZn?L@SsTW-XMQBR+;n2&mY!Fua?jHi^$b|7KmW0E)|x2u6+P(SllupW zk1HPt55Qw<7I>HoEv}^oNn&D85pi-;?^l?X#ng(06RXzBPt>wLM?j zuHvi@kh7gc(^2Lo`bD*?cfm7guPvx2G?FI1#y$7U4DbHuk!IbEj8zSGnVW{)mqHG? z{04geBDzrAc2+2sJ;odmuWUt6VY8_)8;T`=SJJFlRI!j12Jcv*I3+VsCO%4CwZ+=QQbH^8Y zIUCua_Fu&Jp)tLLFN__EJ)F98POdLwvtvi`WlL}*kt9=^l0 z?~ltFlXV&s`u9=~_64}Pg7yt_+m}y1EnY^t==(}&A;$Q= zSDt$KCowGJ#Q!b)Z`R|3#I}0=l77;+-)atqAANrr6MN+SWlYD&iHa412}E8;V-Y?&kf^$GWef@#te_`7@R2{9YMzxu8OF8?m}mI zVkB}7AD`r${Mz^ORDG{*#}2@+6diOj<#!L>xr#GT+XuB@-|mJm%6jlSKJ|;irVaR8 zh}m(^*`Gt%2y*-u6KKHJ<7|(@;Sb{r(fHmQ2(-@qx51_tFEp9&qqiy6JoV_{mi-qZ zn|Oc04h-zT-c)-xFvf;8lo#PWeezKuf9_>ZhueQ}|NQCB@~!mWtrvZ4d*ykpF>w7R zb${}=>_Z87I-{k%6wh3k`RjKF@4UC(S=*=c{E$1U?+nSF05WMCdrW}gd3zE*rAY(M zlOBFj#KTA@1%K0}i;CXd|M+>mALQxN??%40FmI#i$x(RPPvHmp@AI;VJ z6XKz|fZbge$m=c-;+L83)P=AGLz7I&WNg5C_~KOT+M1Ou+t78|o-(ZQeDy1L?Auwh z`{9ve*Q6r&5!j!?9VFe$u;mmxu^-uKz?bZIgP*|QCrG1LByPfHL1##OjxnL%iQl4s zQ8vgt^L+%qt>^D0+fp57pM`1bDt6vR|7{w=(}!8xee-8E(i`7GhHn91>g&VcO!$($ zCfXDprVC$hLi1Vt%f_~7v!Atf#d^Jn{b_-J+0n0`g&zC*&uSLp*YL+cXQ4!AJ9SIn z8N71?`+`#ullkKY(>sWcE1!FU|3BydcJldks{W^`*RRvB>o)SNfTsQR_4U8?_6`E; z`{Lk>z-`t%leJN^v#{; z)E}lyjI$41{N$9i@tdgZrf-~BR{WwL8Lo3TionH7_-Xs_)!8AfahWYk0!M0e7Q-v} z@Lpo?rR?#*Y4`(%bD~ zpTpV1OX<6z4igXW&F!C`CLE|I)mbRJr@>JDRB zYg%a2`h09#%$Q#J=zx}JODcELC9vhmY#*HMDJ?1^dvMpu4n&TIbr zXNN4JKJ>Pxj_JX0K8f*MY^5Hzx`G&^} z2@=aJL{@2^tsz!nEBgLqY)A)~vE8|^QTrrJcTK5To`x1?l9#)f*I4)hzruWxF8>;K z2DU+UKYT^BZqfgp`@FOJqt=m{C6{pKD7X@i9*a0@g(LV0=k%7svnM2lFX2jON|#Y* z4}2`Xhx>%H@Mk9D2L*QUSdyFeZ*G4kBnv5X@;B{!6aDypf8l)0#o^4>0%t8U{a_#V zmUVB0J$Bxn;T_1CUSf)Lo@EHXbDZ-m)2t=G39htGFMYJrbT%efCn^L7ngeNgvjZOR z)vt(hhOTgeucf<_v52szqj@BIR(NmbJnHGdDEleT?rap!K921cy$rgd%$Zp{%3kwh z=VUNnXET28ygzaMz)mhS_!>rbvQOHJ2Nvyy zfJ^g-^P#zeGl0*lta`&;o(xG~AK#B1TZJCB4w>1-y3R2Cyx$C(?%N#Gy@s;ij!*BQN6PcG?dOd zkluqzXB|lIhIjdJqwah;QD*u6{WN^hhEENef>!2UQ%9|XpQgZFbBa6o^m*??N6>vu zx)Xj8KITp1!{<1p?fk-w+S5Kiqjnj#zx{{Ehv41|Z2jYOKCu@& z)VIrYUymI1c;N4{``NwytI{FM;p3tUpHF{^cnZ*$v9CHH7;jd_1GkXIevWp(#( zc7(x~I)S#|`j{zsD>AC&yLol@%x-ZuzrYd&2ZPPvu!KZu&jr^&fqnx^%`T z@w}x5KVuYr-~{81e5+oG4!C8anaw6|=J4_OJ74GXe4oE^`~R5$ar6&=bI+Uen(l0b8o_K!nPGYlkZ^lQ0 z$f_{o^clt@z&K2ljy@M%xR|Fi>RS8H@Ih>u?=G2q&q~fsij3+g-!g?eiouKIlg7ZH zzkZeZ?*#F~<&04RA9NZ1WcjB2v8v>KGGk@%D`|{^+@bs_e)lp)@)yZZcHy1eJ;ojt z>7KURx6F5;0E5==gQQ!mR~pjm(Y0d8`gQi$ z=}~lwasN=v=D6hjz!E3^TzG}2HkM&O9RY6jL*L8ji|%qzU!=o7#DD4||G4CLDGOe> z+t;}FIIx$4aU7GpgLIvV{u(h^Iy+rys@tOMQDjwa{YSrZV*Piie(@pd?>MP`&RZX? zb!qNqp8n2DgEPf<+XFMdu>K|W%S=C)ZzqpyndxXOWNd>624^nhyJ%H(d*CBH8y!YaGK%HY*Tg7UiNE`R=kzgv190O z0px7w|Hs?g$46CN`~UmQ3?UMpOag?5Yi0skNYzpWLKMxJNkl3>2CUY4%OpXijam^@ z0#;^{SZ&eP5fqEwW&+rnskXL-*0J6)0jjiWYw_0FURx&ttF7&=&oC;@@BKMv4oo86 z@9*_{eP6#nk~8P*r?uB!YwfkyUVCllef07eG%sJR&x0q?OcI;6WP|h>_3s+aFo|Xb z%O1XorbSmeU(;2F9Upr7JNB$DbVF<@i)9z-#iy zxX``k`Ve-E)@zWJ#A|ivCXvPlh&HFo3f|>_rUD0(AI~f<@n}| zBX-7J_@13bSrk!5%UyGbx!rOD$4@Yye z<`P$z^HrnEIX<|GNBq8jc*@)V-49;=!oJWw$ewqRyV0_PHE(zL5+Bz4u}hStu7dvL z$Mz1knWfHe;uYtg7H2EF;7i#zuy<4oH`y<-p9nq5=8(bPa6eD?9{cjtfn5Qe|8Q{l z73yFOHe3F=;)yG$N9}zX8K?HHah~O=R_BS|BzOEibC1#n$0~RBO zru#2<*tv|-I+P}PUzWO%G}*vDXz?Y~H}zBYO{KNbzo5>O(6;uTv$T~xUC($rThEhv zve-AX_3T@*@2>IlVBZPsHuo>}Um!c7Ti;oGAy8Taamk6+SU_0Ko-b&9VKOWe#JK-|BIcNc zv5!fF$Hf|7WsIYwd3Q>$1s9ov1G8^b{sR1l)IPGkf4#;79MQh~ty?I6HF<^4fet_M zyZt?f&~4vd6zF;91L>^8IQvMvTIl;gOOb2^iG%y>bgp$c@vw&L%q9No#XXt_`^Fs8 z(_dCT5p_h#_ zvz8#g+VS0(H0F=wo06*FJ~ViwaWAk}_}L@DUfIsRNsN1o{QgNLm2=IT4eTHFZS0z~ z1f3?!lY5t0XP6P$brWW^k2a-(%SNAh+i7>=jM%kPO5dmM`>wtD?hje7d9dvNJhb(c zblkG)57yYZuLD<ie5Pk$IAcC}@r;2o_H{0?b03T`xxSy-Y1yyg8OCX1>Yb@3 z%{iuxQDV$xKX2!1Igi{Wn=ZOBbeP5_J1e`3xo0jhKv_>9`}f+d*?CR;nJJ-b?bhTx zV=FdE#p|-qFz(zfU|QM#TfA@h=VsJ_w;A|@&|Y}_RoLMBTIiFVLl+!(NPC3pU4lVaAbCFYyGtfiJ{R2IxnRf8g2bQKhENaiRjv}oI z_%u!to}Ax0Ck&kHp>g3x;~8#^&TZz;Nox%{zF#VPF8EQo+sP~4kNl0IzsGqO-ZJ_Q z|4j?QH}IeA74fOAy~2V^t;^h~?Z@!*G9pX3E zir7785wlPBy8p*7xM6ZZXiapI;sX=0fz{8q*zKD%U`m@d5Sg{q@ z_mS6i>#=#QFu8kJ6C_7)7Y6f5jQ8Y8X4^f;!sKRbh$oVNI8XeJ&2`{qO2wQccB$+_ z@-^~APQMTSHkFy#eP?5z^jDVtY;*&>H6fLLKb*sdKm88!p%{E<4lRez+Eq6=iqPNs zAaTSdRm|DJm~7u0Ll#U({gS-qT>I`#srT>o=y1N) zPokS=k<-nRE%4x^4Vp(;-vC2q;zM(?@TiU7qhwU;FI{`3((k99=fM|o#&zF8;^1wj zM{Bbp>}Q;_%+c3$|76LSiK$nym0hvkmuM;TC-(b`s(skrlH&7;iX~Z*TEe-Bhjp&{ ze$62hQs}Pf+w(Y3|F7^>mI?3Ao8{nwD|I@_iG?LV8kxf4wF+(aEQ zLmwCyA2z0)*b=b)B&087z~e081^D&;1n<~c6BhQow0oQ|2 z<~VeCH~T=Mw|1V;+aLeV+{>I&N57Tc41Zk?oUxl+ANwF{kV2U3ii$b+kuLgY&AMH3 z;eBvbUw=$OYn{&X@i&LRL)=LmV{DEAZ?Y>KS`$IO*Tb6)$oI35@AKi!vwPrWN4{?> znp|T0$CZGd65&4LHzfnmnL~HXi_z>ci7a!CXioH~Jhi({Usp(f)%gE-^2KXkFuewC z$?g?nj*~nQ?rip0f2?otqx$XfWNcq$&5oVspuSBc-7dFt*f`#F{2Hd1V`uP9{f)3E z6Q<7wU1Fv1)yh10U|`!X84tB7Iij^*A$_4kJG%QD;tTwZ_CbHTKT!A&gRATLj<3^f z^{oNgb8Kt7@quVCNPy%$mWdKv#pY||&P29qC1 z593;;e$t=H6HRU{zXjj@JeA%}`fg(5s7=Xb;ja*P-vW1cIeDj~ZrL-iv4eUd$cR2@ z8hcP;0N%XfF773PXNjZthIm%I+RN`(%}9qwTey=iWRFPr(Brq`3u4fVH3tjM(016bbDhFxJ+(FX45Ch=j>kxw%x~=sjjWgo!x_B5Z*4PF6O%l zqN7PX)!u;LH)K9Csad2O=A!}bf|PvBFy4iHKpBVb75CzmeO6-sdMmN7!%FmHL+jgO zCF;1BP<=BaDYt&UGpDh!_C^zH*%uOSyEbScu5C$gA* zk-z)XD-T+^pOH_tdTg)TRM!XG1J?}f@4Re!H0JLz=4W3>YzSns#y*0bJro;}P@Tx~ z^k&BX3h1B(TA2k6sBbaOs3?AI#($~qU1g6An&4i;bFtYAFT$bv%Uqe8wcjXq#x^5< zjJb1ICGjBopmXJ`BfT3PShD(ZVAb<_#@CTIpA^j;kwG5rz5ExFUv;R=6$NG9W_&v@ zVs3>FoAUBZv?2O>9$X)-PVLDo1+S8UUYR}Q6&#M9qjd0Em|jlXJMwuB0ISv@ht?d4 z>6qU)sdoL6O)3mcm{oS}`=VduzK!1fJ%0b3I-(N~)+}azSp-e5Xdaf>!2T9+ralj^ zgpqYxFMGb?p>d|hW}b}VYyVmPVm{aQep8X1?f@sqc*cl1#Xq6?r>c9zLvvJzP2Gp< zF#lG1&jjF!T8TK%F!N)myrHcMp9=Zk_SIXpR?vRTjI`VO&$ep&rVe{7`vcRK)tKO0 zXZ!6o(R~wk8_|ei{}cMJ&8{z6)eDac_NBnXU6+gY|G=u%@BKfvYCl1Lp-18hA?vWu z{to`CMMr^-($1a8Mch$F{5S({`LNB0P7*5Fxhb^YcYhzYM(sZw-iLJJ`MS1v&P(?+ zQ^zOhZxi!rkn&BV*)PxMmmR>1p@q*!?mTY{Sf8B3?|-LUa5Q7knjeGqK!P*X&KSH; zy70e+@kK{l9+(_nP5h$8uZ(_ilKp!-_uxwvlZW|-E!@hwD_Xvwrr$TLWPr7R_UE(C zy&pBz=-wrMY=ND^FY8|)6K0ESp`+2omIdc(e|Ifs!DJ5VexMVpCn5VKA2h~_!+j>O$3`dTYyf`A*wc8I?&#@_tiKl9^m8ozz`oMx&>rt2 zd9Nfdu~e(oFX5~YKfp@-#`=lnGt2nCltJgzTANrJ%y*MgzyE{UF0URS|1|EMiD~@- zyftRR!kd6owp!t7Vj&Fp%f_**3bx;B4xQ`*A!7OVkv8)vX;usOf0Fif(#%Y3vCtNF zeaAoAn&S8o9UEdytSQ9X`0K!ItD@jrg{kd*jc?@z-^xvGNZ-a5d>hL?{i}Q%S@3Nn z@ninNH{!mBSVKB(6r0+xzTuy7_!}`+y0L$1uR-4|d?KW){MVZUvxQ6ez}c%6%@@+J zXk!lfE=Cq>Y`+EHN8cRSt}#?O;Ys{1yy@(1r@3{~Wqfn^eC%L8m)%zQj4F=q6PYta zf2OnVd=rG88Pg~+b+02&ls3e-C%)v`T(u`9_|)DB{Ptv@pZU|1ecBIvkG&_&RZTB( zju)O@qqz*YJD4Mg?S*b-%Jn;%1>R*V4kpQSh2)si-ndpHJ46-dZg!eCd$He3Kb1Uh zxFNqTosNGo>(a~N3*b5IqvY{>jJgeVms9sFVqvrHbZnP%k*%Ih?H|yH(>Hi_pw6+2 zq!!bDwvPKB@-oD$PxEa5+pPQGiyu>m%H086+Pfdvr8TZ=Q|i0GhcBt$UlN&`l*;D-qt(A1gwO|nL zvaE?^ml^n}Nl)aiN7cP>#2be+ygoCrAcP2e2`74_BilGF3J9w zcJK$3jwyYO^(Xc#w{Go8{E51g+E2^3k6mps=L67#@QJ)c{u$`l8@b17i=DpA?^_pT zKc=0zs(&i$(jVJt;yLf#cLBN{dX8*UvP;P(HRpZiXZ%sKKKqc<-WvN*c7&bo!#*e* z5wM+;1!nb8FbNju`A}N$d_es0C3bE-?d*o8Ld;*%^^ZsHNpFvH-$Ips|5P?b*H&gT z2Qrq7SJ_AGY0%SQJK8pAKx5ktJqMv@Yt@Q_b=W)N#FRi8U)<)OxUi0MCx1f^3sRrP zISXCf3SGVezQr>iVBeP>B%6-b4W2#cPSF=|Z!CcM;5U!J{I2u+qwslsI1DFsOrnkq z`{)~X&RZuq1cP8{0S>Kw9G)ZJe&!$OVpjGyT2oAEjl)AK^Dg-W>(T5=Ex`E#>7s`L zzwEbG&!KwRlkhcwUf=yZz9}sM?k4b|cMao?MJqKC8`1|Wih9ay*2$d9nt%>=13FeM zcA6E-NJcC@tM8-7$##l#t1@C_fUjN;>r zDENji7Pg1kQO@=ru8(unG5QbgoNv@q3(uwxtqEgWh#(v58M6lFx3jP<%*VFi+Kwln zr`>=ah7GuM#VL}v6H+gOzqjbK#_7Gc2Id^r1)?R6F3=r|HU1e|b;j?lf!QChf8y>t zOinHP26|GFi=zYZ;(MnvFXU}{_M4S+V)N}>1@n?Y5B7sEjbYPhyREs(ek{Ass@?ah zRolO1_+xzo=)rX^9ozyfYLDiZz}3xf!`$kXb$$LOq^^CDF`8no$2Vc|ZSd{`Yl{~> z$k;wmfBL$ujP1Zw;^G0zSN-GHWx4Cm9bc1v5PyVy(8jA#F~#{A^RH+e=ra2V?RoJ8^~VyaB0rbx_Bagns=_>?fTfof%RVG ze~`7`Jl25k?1E02(=xJoB9k52|9LyN_V8ZEMC7ylLdsLM$iy4!%m!>8j_iLN+U!Fn zYtO@{{f^=Og!Vgv#ynkjv+2=(2kZRj>Tb69?JLPa19dn1dM@iIVf=`d_g!SRdXoOJdrkWWF@8-2_V zS|@9ccm?|>YmglEH2#ITVjuHNj`>2maUXMv<`dD{R%HK!2hqo5FZnJpO?F~~rSICm z`78Rx&PeY(!I?cZb4G7u=e)?2;I)~^u6a8n@p=6CC&-6et_2!mAlQGA?85Uy@UM1A#(J&quK9|g@=Ad z9;F{m&K^U$>}&%aM{Fdr(dVEU+2&uO+$QX3vg5P&ORRz6_&5g8^@`Y29_IK5662w| z`95q^6N-EKuw9C-H-i6cDRF^VKiu!L5^vwnJ(l>7+M?8T`SrT1@g>A$SHYE!In z9r@qJ-tXA$IRn{;POJC>%lY01efs?6>tgLD5rRIES?i{i+dU2Cre|7tn5WgFJR#^; z-vjyY0lsJNN4CO08RGn!*3;)^S^s`EVAUFfPt!=Vz3GlS_ZmNCA9?t#-aCK&mbLru zZ=pZEZrE3C`u-hz!@vIiTixd#`JUx__epm+WtzT`Ph0vwPMIkF9!-zju{Shk>s#F; zfAf}gvRhY-eJJtty}RfOe8#0Y>HdZE@AszX6X;nXbS%XP(%x7Ryg7`q#}?`M5@=8N zIcSVIk95WTu1Jj(PM~w?aK{MGJS&}fyCU^(&hv;ZbE5ZKr?46CFYrcQ| z68t;5*$4AYCT9L4cQoof#JhF6U0ZjTwVeCA7LP)AwF@b@2f`WI&XYEefW z{$hQcVb-||)iJdESy~H#Pu2Y^aO<3Dc*b(>GVFyHLfA}0_&Ws`WamnLNDk{MIqd!U zbVk`QzUcfGW663i!8*9jWaJm*dp!>C7M3ZB**WmH{BNxB(GifX{?sncrasBKSF+|w z)3IqEytf~n?w8d4Bz3c3++N0*JV~7c+&yKGiHceCDs9zqS8A9xenBjobC{1`v5M!M zWtp0%#$v-@@9Y=AavQMy0$bf1>~$MoNV9xt-nx`&xLU!(pn z;#c3)x?+{i-Q3DtyKkz_gt_`wkl1XMz`G9LDTDul@lSEiACHnR6*S12j9BQzhs8fQ zN*xan8$dciY**!6y~m!fbmWF&tFr&#{Eod{Ik%s(?d-9{fFl_wuHjq|<6e0Rx<}h? z@GE%4_Z`5~k35SRVwnLeK6;5IoQJMwuUczPt@nfAyboPN>;HMiuy!1L{$71NMt6Ya zVSff+WJ4Km&8qxId|-a*_`vjc%Ll3ZmilbXyo$-)QVyXW|R{1m(A zDeSk!W9=Sfkh7n>1$x@b{!-RotaxRPZ<|ZQf!C3#i`i#u6KyZSZ&LKu4ZT?b)23KV z4?>qOo8hm^w_1HGr1!)3k2+^PEa&cxZs=M0)F1gaDZljmP{886IPw{v!qv#Om=C=` zxCI~aBIDTq3d;y5x_?UiXOr&_cVhFPF5;0oXUD2KyY`0YOI0BGRxp^^3V#V?LNmdbH1B*z&SWRaum^$m12Hv7V>k3n}(y@SSf>XG|wYyHKEVA;Z+ z-Rv_mXQU(}{K$dY-0Rw}mqYk>u#a z-`8nAF)8$zZB^()A@=dq*GRy(E&|@CqMt6sr?CtDZ5rt}WlhfwV@>YVWmT)xV3Z0kv;*tf} zUFJ)^l&9jH?Fm6|m&PLL_{k>yvlHBNKL(kr^q=yc9ClqzocytNJ2yAxOS6BxE%xmQ z_L4x4Im^sme~z7If_?6V(lLpNCwDdm?M^3-<-_P;*~(7h+;*0tU$#E0{V4X(Dg%M# z$FOeRMVY0`u^DDZC;BU~8A9i>CE{aPdLC=17_b>^_%YzR2_6zWtR3GaCxwIKW+zL)&!iz)w1|FlN5$^gTr1#hbD3_|jE8+fOs;jmSCG zZ)raU_+#wVSedRyGo`|zi{A6_Ev}YNLuVs0GaWtM&Hv2zz;3|{0ch{#o&N19C z!k$GD`B#V2QO5Be>Z@TM;f}Ia$*1+?5xjywl*jo!e0v+56Sr(aG~ZXnmWi$|C61cC zT(M<#3+Kez9mVgpBkbh{9W_dM(LfU2vz_$JWzkj5+zo9%6vR|k$$7VOCw^HaHXuQ|;nYu&9jkX7hQYT}Ses z#Quso?W1{rR{-1P(3aX54?KE)x&YRbUIS0m?Wf;X5PB!QKBF;r+dU85B;OyHon#Ee zFM@~IToas4cmS=SK%!qmNBW`b+J zKYpfcJCm5xBkAtbIJd{QFnJ=pANV@H3%oyw{l~SpmJ@>~wzrvaX(9bGzkl6X?7dy= zANTY=^x!qe!aw=3yXTgXGt`e>=>JcA_wf2`*6pjIpX!ID{P2dxI!vD{O<;Kz`-;kr zq2E#Nsu6BPM|wJUVT`nMOJ4I6C)%FVK|fmpVJF_2%KSW!=Lc9rdu^WdC$~+tVNN_k z1J_We|5)@YgI%mat)KZb&?-)hsp#>|<9Tvhv)%^ENkYiz)GtdsOE z_IE;KJ0@{9sUrD%efyLyomnL=O)DSb$0-Z_LJK;@gy!^i+tIx)0|iLLI&Sk;i3wfwD|iK zF>O6uJWFi(cIq&|6~?v_p^gY^5Vfl|RL-Ujd}^FJ!oYMziP<1n)c+tb#CV!L#J?V| zeG}RNUW>nf7WC~-;-4t(SCXmpEj!N4ZXX{>3m$W3XX6t3XXu;SRoxzc6;r>;DSnFw z^GUyfzo=jNJU9i*A^c91H;jLYm-kuXpO{%k##s4wAfK|_6%tdw>92(!VehfUb7J7m zTuPrpW}D64Q1W=QEo|Je3z;=P3LBIA0dq*^&qsJq@?S9gJ8i3OyP_c-o4}s=DTCqD zeE@=OQl1{OtYJMEAKBxMyEPMBzz6D=Xy5DGQ#}wC8N}sC;q|2C(zXfbnl(&Ve@A#bY#8|jNu+$a6aOZCJ@)(z>;tWl9 z@%3$R@AQfK*<;OxePe43yk>lMjmo2|I`#aOv#efU&La-WJ;Xx4hgfFD9*hIkrPw%< zqq7Uf?wfpz^6rhN@_k)>W=$q~i&vYpA35XWuL<4emD^oi{2I=+DQ{49kw@k2Oud7* z)sz>ECyU-TGuMCHCw=1B*k)h)dE$IX9!}`AbN|WjGmvY*pNer$gJo{t+sk{l%*?u{ znzgOqm=8};x5d1>0GtR`jm>BI?Vkd_*u{xB-_)L9kUaHxUhrAiK3c?Av10B8VQ-am zeZPphyUuiZtc$U^pvr7$2QGBUN6i~&=fXF;`dRp9=KV>mHy?L>AgTllyed6nFYs@9 z<5M*;#wGg3*)_t2&DaZ;wfXV+4tueO$7ehDo{>j%;qlm~)JJz8_tAz`u1==?C@aMM z+~|(VuenBj-b8zaycf*lIsCwpHctAHOV4$A-u1>#F#moMHef%uw-wC2m+l^zB^+z4 z`#a1j7xVO?gIVZcl`&uXE3`SAZ}$jJXu_*cw9pJKczydjF@3HlujWC)?D0JZxAbz#l^zRynI2+$0*C0zK(nH8!51N~Y+J?5FNO2_ynI_rC%SDlk3Ryh z>WtBr@_6I8`?G^#T9xmU>hxsRO!7-s=+B|K>~V$bnMV!p1?w62{r`vcjMf&j7}uk% zX?_LnmVb?yNIdULxoet(Had;s6fj;PcwB3l+o!r~nI!fieedMmW-X(&ON=;j(iMNt z_#bGTkeGN{d*hrliAMk)*80Y`Uac~f?T#)rO1?0a?WIwlDXHA;Up}LhGpywE@VvhX zJO?K@YnTx0nB($zcGeAMT#42%kL7iLcm2}dX#9%tFnH}!xQ-CK2d5#ofHm{JJMXgB z{1G{(^X9R<9^S_qK)SLc3y~#0LreqcDR^~WSH9Y$1$P%~5f2_mj==YVCpKt35?CG> z8(!T@d`ovt((bHD%p7-3(*0{_bA~(DThQ;Pky}CDrF&Ub?Tw=A=4G_YK7e%A2xHQ` z%#}CFUx|&PlD(yN-va!N_?`kbWUJOQTAu_B`aI{jG)A&DNArEWhI1Lw)n(3F!{Ya| zq&e$5^j+a>ZGrI6`g-M{#77+L=vVAyb^F3;G|s#7BJvYgO&n);eNFdh+eOnT!W8(7$wyJz+BqT!Y_ud)QeU zVpDiM%R2jq@JDR4$w|%$-yTjmZ|1D`xD&-$@6Bbs$34wQS?{?t>aF)`fmwL9g3tl& zS+r|uJyOta6S}V2Qk&mYAA$X4aHD7UkB;==q-xe(GbvBrLU}BGUU`}1oiYcxv(xMM zozvZU-kj3j=%3}5ZP-)q%wJvjt`T$8(Hos}tmrUV&c&;)D&^&G^w=Z%?nx)WC&1{N z1MW7VFVml@;z%xpj-&a|LT46i5qK8eFWp{5zh89c=rD7*bZhCwu1?@!i1_^3URLDLm+V`bgPlxtCb!e*#{uN1Dm+!Kn3! z@MX9&R`6=vkELGekg>_gf;?`jz_Z1lv*uxa)VaV;-}v!3#Bp3T>@jXNnk9Nvk4sX6hZ`2Jl!@4F8l$$JuKVobHmmx4>}Z)cpd z|AhCD6Wz!%&DY{1;s-hN!z$_#e0E;Xw(@#*#&Y%S)3y}UkL@guejS4T40D$H@4>D* z9;GhPMyTNX_xKiLJS4X||I8lECG26&m0n=_SPbh;hzOGJE!JztgwR3b&;TdJJ;ke}W57Cw!y6cjfUb_@vLPjphP* z_AGm@qL&PIs7zj#dE=?R=q&ihtpWDmnqLF3pR2siyjShggSQ5_M&*(76`gkOAi7Td zZ4Mq&8P1bS&wq;dDErRR^Uoo#bO`B3f>%0N2>YXS360lQWa?=0*mp3mX^yzVq?fA< zYgjX{U3;s`1-lvhEr*^y4=)s^>AULPljqTgnTIZ=eEZ4JKK2#xoVX1C)Ce(A|KqF3 zZ}@W@c%BsSrN2WNj~1_H4k?^({z|`u*G|i9n3}IU&hHF$iw+8DLwEEFpN0DK-Qe+X z-K?wsN*&T;^7_qP`-vAT{YLA7SJAnI3y+QqY4|DWo_QVjbKsSA>TJo`D$yZ$Rk;v) zu4um9H*AK=KCUwPG>;cJ+v4b?=%aU;%#1>P)Ojz^N8NXOuzfv-OQsAEF` z&R>i)8`kG-T%rSSzl(U(PMxN+!?Eob*6-~>slMyBN#A#U?Y*)YKYP2JDXPMMG$dX8 zx>#d1w4s<=jPEwzb+Nr_tA}xU0{V=eVC5dylh{R%=}Fw9pXfQq%5CGR{iAl`Y($CW zxD(&AW?yk4O8mnmcJV><+ilInNc8DR?4+IO2F=8lT*5vYzUA*To{QsonXWl-{e0uh zgW|hFcwazok5Z4#{Q10o=i@Lvr{C14@6YP@neOjj@ms#TFVe4G#=-bp5#-ygmDDEoIQzUs_}4$w%2MzBe9O>W|haPmcZFifLAE!iiRH{7fr1ZkFZv0+i3Q z9A5yH{UdnLd918iHOGjSeeC5tX*quDUc5q$@lN&wlgOwLb0z*JtvVyEye_VP;p`_l zaM8b7__Gh(A6m1+i5c=4+5qlt7QP{MoZm8IyEYwK)9aMc*c@$q40y913g^0w*={{d ztRS8tc-P7lwOQEJj6EvxW$@obKh=*a@=ndnZ{w`}x~hk)+@@@iaK$S)s& zZtNpgr(i3*PlLF&@POB*+A_3h@c&R-*$$IfOj|MP>o0TRlFv;mYnOc!kfr#^usljw z=Hi1UcJV>Z>pX3Y|LG>5=?Pi~e;TL0zQ)_I(_63WJ}ANK;?2Dm$UIk{2nEbjMu495VO6c?a`M zc8sk();F_Hbxrd8Bb4s__Av$>#P$k<*J*Pr7lruiddDme&Fq*IW*pWJ;jb!{#ZSQ! z&FA^7E@=^O)t}b45Mv;JP5rK-{6EW%jFHAgW3;Km!NI=d#+dJ5jp(}>yGqaoZuGcHbXsl)nH04B>3+&9FY73$j91qT^a8~Wb?AjL z*LZS2LAl`Be;A%4^e@@OS+JDukohWlo(1ky*2QP%-h08HbaBC=@3UjR^lMevtI#1w z<>~om@TPOm!d)-8o9>Kb-ev^Pc=0QRi$Z+VooFq`hYO!2$w>FC&ohim-85@?1{+b` zbo}!e=SS(Ic*fwn?a^ml12M43^Pn>)nri%r@VP2`{SNpto`>~R#!2Pgrr&j0Yk82g zy8UjQ8}sE{UUdC~>Ruv^JniV=LHZK++35&tJmOh0{@5N!+kQY}Yp0z(V&1{)-oiTK z)Vnqke0?GQOM*l7oZ9Ka@mt_fT*xf(3mo3VM@VHA8_J6z+Kc@`-{4y(?>+Q=C%^Tr zm#6m3jrHOj`@`SY2)-oUVydr5ELy^FjLV~4zA&(gWa6FYGl z&#n*s%X?YxG!W}#3HOpEv3oh`BMZ{;b+CzdvV?n}lHhXbp6J}p5;Hr5rR%PB z=spQuIO!t_(plfx#64kc?c9adOu2Sq!dCHIqVlZSDrs9Z6yZA{6@rN$n8m9j{)OYzs?73ntbT~W8Q)NVNcD_F``ZJAocI%#xJiJZd!0S(p z{y6D6H{qpI#_Lav{y6D6FX5$A#_NyP22Q%pPI&2**$LmP4@Tefed#9eE0wX*DCZLU z$HWxdyw+ljn1>b`&Vk~O)@qXNlN>*u=i-jAGel_YK4Ik|nNB@wn96ad-U+pS&4BCueS3yaGKy zGNib3VB-zW?{TRs_$@iQk9xN<9$LHg;a_tTx+uI=DjN3A?Rqg#J6Wr>UynXC2VK@@ za?K-L+eQ1x3woMIW2=oJH%nccVnZyDh>UFPY5s=Kxi`G|8-AV<-UB`D734eF z_>gV3$=@B0|H|*td7@v!rlse#cCHk7g8AQL_+16;2OJ+2Yxy$lRWDS9)BfQ$v2s4k zx#jV#3!p=lzncCOo>hv|ewKJam1cbF41W8{iLIw|m}hC;tW1O$cj4%Lbm<7be)y}F z6FUmuWyK|!m|9GI8RQDM#+R!BJN)F<4?bzEf+a>eYrP(vWVWl0@{T|vKHkplv5ONzec>~?3K?3&$KgC)@aS> zt^3rr+RG#ZZHBfou|Qjf_3CHx@I^W654>|`x9?3=npY@z5e`_{&;lspy&X6 zig*0f+s%G;rZD%XRi@ zuP+FE4sAfA&~c1&hw6jc;m*W#oS6MF;{S&@uNmV08f${d8Ggqb?Z?bKQyR{i$KrR} ztHRSv+lC+6tD1I((;K)eU;}prl*31y0h`@~Zl9R=t1h%3^U=r9 zUG^%AKE`Ns9Bs+&vVvz2I1A_NLV8lab^f_>O2zexk*7XrPk2wPIB^wqTOoY;kiqyX zIKJzDhn6J^)`1(#a%DkqT4ob6z9x(8%|4`aVa3c3WvN=^HZeA5i)Ops(s!{{C(%ztBWlwoeuU)HA>@7K9oF(^ z$P@P+!@p{`jl{5a`-*Yq5iC#`w;&t?D%vOpj78V2hq3YHYY~xQ_eiE z_yZT;hTOzn_EXL(HxpZtkI&jLg&gw76whB6@4lIPY|~S*3b)PAYja=f3%!JjK*XZhNwNA9}Xrb)l>d(ynB+ z`l32Rv&^x=cO2Lhqv(g}fsLP||M!!wvC|lO>j_6UDHy-YrUnvfcPaHqcUa>0&ESkK z@r@gL?%isoH$G%>#(F~ay$@Sy;qty0O|Fn0JX)CY1p87?IrmS$k(6E$t#R~<`7vkh zfKF0@KB74Et}W1m$16XQ^3M6^{{y|z_fl}VN-Ki3%x>mN=??tZ9%@qdb$H9nwNV~#=EN&IM79y+rhUJ z`(qHkWs{QJX`1BnMKG_oE(CV@Q+s;T(*MlkguTUhDAxE}>C5268+XsP<>hbqxto6{ z_dO~9FY@_i(>;Q}|8#IrFFdfG8-{H2Sj94r2iUekcy+(O>X)TMD~i4ISQPg+v=;%eWFG|``B z-QF0Xod|kN1RX{)z|+sYzKORj;2HWo`Z)Wuopz49=(fwo79Bl!zxD)Z&Vh}yDE))_ z|8vFrOsVgIkqdfctHp*<)58A2dU!T=A~X~A9}G7jzmXRP{WDk|Xv3B;XrHAC{qzcz zL2n3=r)g}U?K@KQvPId7tHeHW#*zj>~=dihi)put8c%AxIg)rRv~`xxQsF3&gJN*@D(`2%+k1K zIXkMg&5C+=-8GT1QS9#MLOZ?klP2xhb>+K9Y>69)AtTxOch;cnccxdPe+Ka{i(Y`f zfUccEmu_xZ&=Zzk+<`8E|4toxL>ONV8+{t!&+SwUfSiUhS7ei@@h!H!5-EBI($ZQ=&)FBD~Z1 z8gcY(&d|O_?EjYU;R}8$@!E!EE+g(hN;D`u#LexEqQ$kGe+dDH?k^Png0Dr=tAA}d z_V6Hmti-+-U2GOVj=xxx{%H;tZ|dBvN5O} zHOC82&z|bq6V#5zMdPEf(OGYeh0*;ZXQR8YS2rBKJ_rp*-{O8&@=szOjpp_53z1#= zX8ZZZTy9IxTw&7lE5kikP8ri-&am4?U~e)g$#Z?g*0IJE*WIF%V7=r zh4jEt#LiWJm!OYdPWgJuSzAUWik=^ph)KV|e)LPp8?Bu#(3vV)ZhmlHZIE+qS0PWN z?=?w&K!=|E=tO?VRwntOc}%=}T7}u5c-G?4rha0QL&s4c?fh+c3;w*ZUs zHZN;nj+1Y1plv1k#j8IQ-%L)u$upK6nAJSl&1X}$Cl3}P53`cx|Lw}2*xm`mEe)sb zy#upXBOhjB`)kJTW9`z~XL9Nk#s7L`V2)^8wwA4JF~{y34!XJ&vZ=HezLR{CY^tZc zGf%KKLq_CuUjGWt*hPUkjGaU=f$9wRoO7>vc50-y5}6#G2|UOpbD}9#zoYP6Qy%tU z0qm{JCz(@@z@B`@g+2NVV*w7Mz%Q5u(;fH&IktQF{f4gyFJ-9^zrVoz?ZH|BtZSM7 z`ud352%dwlg|&8>70hxbQ}Yur?F+S+`i!6bhLvwcDlT08OZ2fyv*NA(P-m$zz7ikb zis2)h_SLReckngo7E=!E<*pv=+D@CmMQ|nOWPUL)Yie>-;$`Mq`Q`3E-PzxF)<1t? z-iVglb7PVXjBzJt$h~p~nhdV=rBMQt{-7iJ`sF=+9jJW$H5n+yC$kcMN0C z`~oy9ylk1^>Xe2vLPx{zI^rdSdR;lz`Q;-zV&PcNXRNiir~1B`uP-_2lGQPMG(SXF zS6?1xP3Pf3v3Eo}oXTq4jJy>MdG(!2T@l7ab%pczYy6qUYRbo~NnQN)?PLx3_`q!8 zTeef#|C}~{GPr)NH&ws(tUX%%^>DL6d>ExY$)7rW)$pjBv_$qR{B1R_C8wC#lF?D( zP&(^*zKe%7N4&}&kN8)yXru#7gNF@uiGM}o*3I?lZqCz)p5#-nzRkj~e)r?>k>guF z**R-VJk^cP+(G*x?zPs~I=TQnZ5Zz$JYCMX36E+w=;FsYJ0d#&B7M@BXR%|n0Oym$ z9)Ok{cx_^c@8a9kt-Lc|WRa`8h_gBMA>PGbddJss>chM<4`>f~7x6l$KFYgv5514& zeH-t{_bl>s7jZwQKF0eL()G?h-P9*|m)u5%?qYv#YKHe|r0YG%`)=Nm$LMd1cTMAc z5AP?E&U!v~k&b?>Am*6$IXwKsEq{vXH_@)$E^ zVTg6SeVds<-)CzM7mhTKFJV5F45|V*(N@-quMcc*XCF_rvH#}5w6TG8t7xN%yh>l% z>ZXg9!oef5?d#-|txI`!e+^%g%h4f;)oL>yw!`DDyt$4unN56aVr=^J{5BU_)7VA% zUMQP%ezT9ZFQ8wdk0#zFn`)3#9^Yu5(K&`b>CDhlC|~#fBy_uF%&~%T(sNc?aA}<; zzFGpT@1U0xvj;uUIqSZcwdkXfU~OU#bt_gBaw%xaX1$I1cA>P2l}r*YaB9^73{_^7QbcwLhrUr zd!yzm>88eX;;$Q@6kUk@`n$e#M;>pr_#@cE4%P@a9B|%nC-l+pjpKuZVWx}QCZu(}{#S8eh6WY@E zz~;f_hUMGbOP)fR-Yvvd z_h#yoZV#_+6CGIKNcIT9srHm7GJ*L0`)oSxz}FL9%MyqK5{dL zZyalQYZZQKz^1&=sWXqf%i6+Qx2x<@?E@x*311m&c=oJC|4FSGpaaohVSb&T>b~A2 z9)mea=URaUN<{gCFQKV6k9sco*Z+p69e*7lJ)sGoKpb@nJ}w;%Y_ zZU=1|?u7ikgNwYcY~D}IOlOW!>__$+Y{t-lv*;=A??d3&89U^ie1CFl;1g^%>-Zi$ z4m}B2-*W0q9loPX{(QozYajNdR)X7R@EZ47;MMo~9%Q!YN@E=BxqYwovYnHj6$-{S zEx}LkA=1mo0|)br_DR*(_lZ?9@OhIq_-o2m(!ayBDc&4%v~3=+uo0ZH8Izjfj3sUL z@uxZs^M@BpNq*(b`OI@i&eI)Q^MYeLR+{o1q%SHj8K(Qk4^Xecf0}PS*&@@Uc;(q5 zi)VzVk7qqkKhFl9fgZIRWgG{-irt|ax(AQ!;cnAfQMRzZfa3sl55sSum$7QbW~24v zPUBmbWL}nkeb>(5>+DtO?8NeCdCIQSRb}2h37?sM>a&XNySFpOhPz6)w0|Pe#65)d z%XCkWzdB4zLFMpF6sK7IR3Ft> z_0j8}`X%4B4fL}KTi?Zb+)ECB3;b&=+KhpxC!{Xc802GNB}j|=%(~;LSMbT7Q~hvY z17@ojdp&(!x~zF_cd&O-2pF4|Rn2XpZ!Ybb*B_=m;Z9==9B-b--lPSde8MSx)p%_O z55mFbD!bNCf7jx_gDhH%9ecYQlXOyQa+~XKLVFIKiY~vvH}Y*$KfFF&0n8!pGr1M{ zfD&F_7cf6G$Q2*;^8L5+lZt|8ou$zHm*g)J4RMw>nCNb1KLcFcxB3VUwC=Bf-UpDW zFY#Nr`blBgEOuPV_AQAuew}jar_PZa_QA#;cB+fN<&OZ9=2*!P&#zB+J4q&9@Gkp_ z1MYd!4F0^b?>3QN=S+cdmga1)+(Yk5$1YD@b_}`!bd(;x~UquitOTE^RoWat=gaGzk5Df{dHFD*H*c7l*P|S z@{SuFa?kKB2p%2TPW(90zvmaAK6!m!ls1UUad&A@r-y zfqT{r3q9Ia+g^DKn7w_1S)Gye27C`^-5yD+|F2S~dJdRc5j7QfO+n({p*Qf-m8P z<dcilL1i9Gw$1BaT+DAAKx!Z*;G=zU>*Qd<#udznH?NoEoQs!xV2dl5RGM4^o z09^)p3&ZPYLvy>$uywu5j-MNbe?lK#_NJE%aGq6Ec$*ZpV)- zz#ei_sbVdStG4O;68bG1-ib_99bx7?J>26h|Ds3OLpL+cMWLDO_xMK65RVDY zmsvlGhq_rC`gz`Vlk2;mB^H8ZCYIRHiTq!`2HctpR97+cpvpccJ4e2p>R3ft(X?o2 z6t)_{t}_5Z{B!EKWBY5|i$c8Lg*Veb;o^byu}S;s6FV_=ToJX)&zG6jD(zB*U^ zt84G813!4{R_OXg-R(qs+h|WPs;wq?dqm<2bQkVMt@e|z1sa?R4Z6PUZ;_$ecXQ#Mz_P-r;TVYYXtoAL>eILHnCc zz#62#OZ`P9E!5S?xd82XX3<~QqL+j|1{bbf@kvMD7Cy#36iF{4292|BfR;+ERYPeT9I82O~uiJy*cF}>J<$L zhwoq)!!Fk--6d#@ySFsYat(?ATu24U< zHqv}i1MkI8Mz-PiCwi1G>{cK5RU-#vL+C(vS_^-56hV8X?VIiyd(R}DFKeRCcD|{< zTYbKgj#Bgp`r3(}b*s;=9Y!Am=niZCc79JAJ~^v4p&QcQO5~d#`8HvdKRp3GEjBuH z#=G3n8*Tr_y!d9jt-T7Kyak{06L@YiIjcO-#=5?>*O6DniKd8fU4L*6d*kp#?l?nCkoc;oIl!Uobeo} zamVnT8}d3SI(=WI$z^Ca$=X`>k$0cxj2YtNHF_=cjaN7gt%eg zxS zVLfWsR>3oV?8826#sTcYEibKlzS;JrA|{Zk3XrE5{TuqMg4X@meSO%11FT;M~Vj+8!S7~pd3u&z*d}Sna zPcXA@Es`vj&!7`ev9SZX5dA&K8as*ntpwlCGT&={jcfmmyt0{b9@mL?^X>)2Uziq7 z@5gSv)@NSd!+fsx`rhVVIR1tKUr6}E4`2uTz)8l=ibWjVDvG~F2%iJWy%`(3=>1~K z#yJ<;r@Ogi6DwwY+!C&B;=S*xaP7X$pp!mpS&f^IdhyoG6VA7|)QH|^i8ar)@I{gOkI@Oduz^>B~ox$cuS zE+!E**asb69G5yNU;ldQ7d>aF%W!wleblYkpe}5V%`)}!`|i3h%UweUSa+AfQ*p*~ zJ25h2w6l+I$1{$yn?TQweMs;|%s9t3q_O=6IuqyYTD#GUy!JNbW%owf{J4H>AvVCY z)$E6AUrV-yeB6ewKx5il(B08G-`7Oj@oJO)-*B?sSGKMTo99ko@$jd+f7Hg-6~ul} zzeA24@~+*w>#Lx>Cfbt?T=4>3zc3d!Z-5)MukX2fY<-KsBV*jp-Gz17_;l7G0?uQs z1+sbCW!-p~b`5lkta0>9-*nCQ-02N`2e?aPTrjqGy)oO*g%?*~bF$&R7& z*`0c?#oo>wV8a`y(QkC!yCtKprw_8@i8k8!&iczaV|$Rh5@k2lxQYgr-ZFU1_p>HZ zTF9-daV}5K2IT1!@A!wMjP2?Py4%Lujjjw2<8zhnFb8X_WIZy--x@;qZ-!TQXCL5(*$;e*rFwi`1;U8|DXmXDMx84n~ zbFY1?#d*mnu)oV#N+$~LJFBhx3u6~mZCQv;p1G_Y8&kYUzPF~Wf4*JYj-PHnb4EM& zI(3akSF0lZ1k%TwwkWc*61_0WnpW~d@#1vfj_B>WM_j)@$B%=2`x!gw=jxC2_npia z2K-6J9StO+{D9<2BkGb7V{*ZZ)Tc*aub&#$Al9JBi6M$U9;MDi$}mqnLBCxTz{C=7h7iCqAkcXu(qcjU`$jeNA+xs>zTd4qh& z0pvP+w&(^K|B@Gqdp=5UqBYTi);Q(&x${wgdC^{fD&vP|F6-qCO3k@CgEygd7i&D}3Ex6rt>a!L!yW}P zZaM4hLG^fcZ_oBuw}7}o&|T~l&bDlh;DeXBjPpCKvY`ua|N1BEAik>{bsj6-P-oGj zn|PcjV=BP*LA9Fc=zmpt#w7}o<@3^sp@a3-&&JWXO#J<~EJ2Hn0 z_qxNy!?$8f|2uW=z)xfQ-mXa=K6Lg-c5m;!+v(dR#ZxW4i2UAn-MQ`RyY6{=jrTa# zgWHSjyNT=lrufl%AObzRaq|1nTZWBsZQWt^U1FT!VDDzOaMQla#Z3~Mz+(C=y)1~$ z)~4S#_~6G8rdBwJjyH*R#z1Sd=F!B&=65rEyf%*;`3^@pJD|L)^WQY5d*{!$P`~hX z8~Bn9EJz#z=}W?w_)24VL|?)epL_0);Hx|}3K|G9Rx!ri$9%_HinVlEs)V+r8?Yzp z`1us$UeweueL9ts}8Fs}fH8fUM0d}=cJ1jpO>Rtq;RnNK7d*u!oI58Zhjo}fI8 zh33rXuXpJZcn;f$T>FqKD;)f?r>%ObPIT`)xzulRh50?Y_T+)e?B_lhm5CIzt2T$z zwugWDddub-=B~Z}U`!6b2S+5d--fL%h3wg88r(Qbl9|EB@F8Rm-CP~c>D{od(^L32 z3*2w|t-rx@x%Slk&OVOhpYBG{+$;OI^q*gX@9~mNjNJ>|j}9MgOR`s^Z+d^(SKj(1 zmn&g?{)AM4O-PJ&-_pK2NXRQv3wR7*cOVa3446`XUnn6oxe zCdBE1=Y58q{MDa%J8r^GjrVslXk=QV`a0PuiY z?f?w*oMyP|`zn*ZjCtm=I#c={J~fXQnVSBqxc9;DYaPKJr{_;U7vC$%yN>*LtX*j3 zmNF)?Rb1vr-vXaypRkeboMoZ>3yj0>eUlch;2b4)MVBxaFFy&{xPo~>zAFKEPxq*H z`O90SkN5efIAgI3de<6e2{A!5XT8JsC~eI-#GT20yY>LK7va5*`LLHY040le~^(_)R{DX*OBQ(b2klvmlpGVc*f z*Nin6`EIrrMWD^fW%%3U(`o!yecP0nM4USIjSie2tgJY{{$}5z&>cI^ke*MR^DlEx z$N4d}(b;`|5%)6d_cXo_yKCne(vzB}Y&qYWl03hq^SkGp&cB==>D+pLsPmQc>(Fn7 ztA>@wm7?F4Mgmj5V6VL8?qHze3mrH6Co>nVYhnyuz;?gH1X{D`o)wH|4RrA`{#Q2k z?uxOz1NY0NoF^duUquD)6}(R(UGJQ8tl@s>m#av}ufAeB@6&m&CSC97c{SMgUp|F& z?p3Rp%llm3Pa|FLHt#m?5z;wdUa^4p1-zd_y52A3{X*XHInUtlUU4b!m-3E1UViZv zQQo7xH+lpnpFXR17r0e}U-mf!E3j-4Z`7!JF2e>mGAC~;MJ;yrG8+UKq8eQSe#A@63CC5KE5CgOzk6Bpc=52-;zRf>^23h|Ll4{Lw_}Y{4YncPwZ?BjW=zGN zDj6ra5yZY;hizT7+I^TtdL8{v@A@vfk!;+JoRF-D=jqdfcPsD;PA~43*O$(d^EAy< zWj5vW$p=(ESe>7CeU-%fva_nbCHOpA@N*SBA3^`qc@4=3?QK=z2iZ=%6!Ev_*aMTX zIdX^B?W|j5v$DCb?Eri%xp@HoErNIdu>6S3gcn~AQn%KWOPDLQhwaK%-my8zcf#va zLygN*efhq&0=xK7{S+@Bn2fHBY?WT_`Fg2r=P5_{*eiQ^zO3@Ad|{bR{P}#)ftS~7 z{{qVNv8Fs)8L$1!IaUrmz>)8Tb*hft?3GCd^i#LaK}+s=f1;J8P4UJE{+059>tr9^kIXN5Q!v zkGDVU=Qrbtz1!E?O?lNfmA@s(gQ!y4`~uZTJy zjLk?iu)cX28VPoqgAV>obs_>Ex0qWu9ZM{!EH;&W%$?HR@65O7^=<#uSmRE748!Od zg*f;pb4DQ!JpNh|V_%PXz_-{+3tkf)mRL!DHLhNr(?mN}%#D)=*ZIdGbrz0?`g6GM z;(XmR1BrhhQuqG3Zr$M_b?+KdxBLNHPIJfC)Bo3lw-u2Yi6HAw>En*Q8@(yc`vC3S zv(w0zI<q<^ zyMyf0`}SE*oEpw&R^P+AfpbI5%iLX$KKt&e*a>gKHcj1Y&*TisrpRi;y2R_h`na#o z?PF5)lP~r-HsW3AVPoyw?bk^*l%=NH@H%ouxX6(2C#nzIuUar8&) z#Ld34g%){lV?5pkhJEm!+07Zo>yOa0xfHu^;XCP-D+Z@eE_^3_N8vl=e^&TTx^U#t zljK}V_DfQc<2j=r_O{0McTVEDhkB-o9;w+85_LM2l{XMNI?AeVrIsDXf{{#>HPj%5=5IPx(v(C%m zO}<-0Wb)ILH%G~@{uIKaHibVACXMBE=(e)F+_A$P3yjYIqqE0@-XJ(V7%!s@ttXSf zrZrREM?IzeuA{*kSmMGO9|CLgV_+2>dHa1Dn>oP3{MFj@fotDsryap17}oMza^JK0 zEy}|nf31)77y2md@89X4*Wce=JFxMtkLmAm`Tj1WZnfjiGi534w@2;o?k2at;UWE9 z`f>e*M+*D+&4zqV3W4B^#M_Oy!Cic45`h2f9-`&3H zMbRTT@?tW&^6_KJZ^)OwaOC0gdyZ1x*xXr_mm!iLKPZ$>TL<%>x$sC{hhLFDgXG&2 zgY#Rqm5$IC-&W(uCDp&<+9UGLy35rsRhLuWU9NuNy;}k7vlr^_U*f28_wQj}1n^{_ z;j;UPp$N~dxXjL#@sth_#m`*2Ov82Ptnf{Uzi+T+8;UpKdFZz+uo~(V@0i7TpK;^% z2_AIp1cfxH_?F^3jg#o`ATce)KdN^;u>+#m!{hu(o@xzgL9a>+8YiwquBphegAij~ zd&cYww%fTI_>0juW0xeF6@;UW!hEi$G=)zw9>&T~==pOwU@L{5&KV&QP7x;fjd-wRLs;mEh zpGm-Qkz#;=c*#tl3aRyiTouhpz)O`@jZ`i5DU*P$728UoYC+9OK&xW=IEdQDwoDMM znMa>e8r1RImf=$C^Vs%_u~KXMlnLOaqAlQ!!ApMc&pzj5P6GDn>-YU*UbD}>uD$l! zYpuQZ+Ix?}CkR+e(P4GhdX^{H2V3h}Qt@JZ?E$5vx( zKLo?Pc(JWGZ6)c)@@007x^3stKF*xcep_Svv|;hu;^$F+!+fL3C%dY%wl3SiUZZg2 ztc_(gzpDr*#^K8{-DJag9^(IS`IWaalGjkD^n2-M!pm;PrDhvzaBMlcFQg{T`T%=^ z?9(;Ruoh>JwC1;*>t(HM{(?WtUwqzF!7WKvQwVJi8Qz>ii_OdMjPpd(XO>6&SIp@cK!@Q{TUEDqYqUL-oBUo!D zIt$~(k7YFT~>MU%dT(j%LSr{=pl|>r}AQFq4u+GH35t>i!idT-1gA6Pp8u7 zC#PP;rQ7M-<16$gtKhA=@i?n*&b{4Pm}89k0ej7L&O&4a_Jn?!5aylCfAwwH)9j_v zmuQ;q=0(@4&%JPH+O0QvS>?6(yV1*j$UM3AE-(AO{uwi!@w(OXvhV4CxtA3mzx8(Z zD)oPt#OpwIHt7hEL<7C(hjE{GT_5^M_n{y3XU3^K!9Tvd&uZ=C{$cfK zGt}oT@&&-Y;pgFB`u4}=Rr@{r4_ErSgvPjM{{h<9x8_1fvpxBfhsjS{ee>s`?;f29 z+nCO{Fs@d&^xz3=(f8z2^J(Zdw08~rn!i?(Y?Gc4+G+$x-*2_I3*AO=sht?M70ugH zXd}MdJrL-t^^YHCRxw9AZl^u;q3RsxXikUT(MPJIy6Wyn(I?Oo+WN?i2D!BdYa1 z7k|!K`0cD_FDTExq1FF_^EJ`EIE6LNvKeYWA>0dE9Xoo@s{ZD=RpmcuRr%HIM}1r! zQF;yW;`a|77`zBa+T+AODZoc8GkR@Zb_8Q~`>#2_1U@h4_b%&@5^*08438K08D@}G;n&O4N|*9?K5!PE5JAU`JF z2Hn0nzC!hN9j1Q0fk1!ichG->KJXH{iRy&UZ!_^vr^52)&&)k%>f|t9_rKZmMbw|8 zeq)Zd=W0T{Msc2teSDfZg7;Tv@&2miD}hbmFykg1`Sal^YYWq!7k7zdjH@|p=Y0?E z!@V=zdE_!DE7z80TWBYgyP>>g&$8O%j;FVW7CmPlx`uEEIKI7U z@&|U`ZCkhcI_nztD-x_NzD|3p7e2;0ZJpyk*7{c7m4Tl!7GD5A@e=qy|2hjU82iqb zUS|UEhjHKUo+vqZA#+#rgFUSc(wBGt%5S@hb%@#)OrN9uPlBfg%E{lTfj-q1_z!T^ zrF%|+qxmQ3)7%4}fQE$|hp~?0=OkpOg%>$7)$Y0fb2tT0X#meo?t2d5Q6I+x)Bn~_ zmDieT_a^x4r;6oA+p@>@yd!%Cc*Jjar0P@Mo3HuT>R$Wwp|~ocZuwxTpXkAp9C)_b z%ibwtC;FERi=#92m7O*}c@xOV82QBqWUC1COZMl7t)3H!o^dYVxtz+vUl1{+D_47i32|yk$Hi+=;7}nx{Fgs z$a_S0i6iiv!Mp&NV0H`>As~!--#fFqVb4p=$(Zl=|#dNMG@J zWYFHK-tE0l9btPdfA!ldS9|vz+TH=^bnyhud6a{WcfJQon;5~9hVcIEcb0*;^&m> zJcIY1LDS-J zJF|&L&nrBvbk4ANM?~u_HF$f7@<9GS+LbcJpn$B>tO}7khZ^{t< z6~C2Eb{}viTcO<{rlaYjf$d%0-P`i~nm!uTp2&?%nOud=UlkT%8&o(N^F`CsfPnwsqPoPfpHa`ewI76E~ekf zr%fS;oP}1_nRs<-59!!=3+~V$E?J#=MRC^yD>$?H($%Rh#Vs)f4?X1TqSHGGqj!ch zE&5&z?B18*{nxQaeGBaj9W~kLe#rZTkJ0VP&Hb%EONwO@qs)joQ>xG6Z!qY zACv};vaxRT;WATDo_)$w;S}=7?grXyVP1;IE5FSfPw!XWxQS&1OVjTS_u!l1dLLwL zX>+~RCjz_e8Q@W6L)r~#^+90ooA(s*Dxd7*ui;-2mQnez9Qw4aRMer7pzyN2~t zB513U@`~?Uuj(5W)UEjw)+HFWzKgzq?i1EAgnZf?5v`1UBd{m3_Y$V7u72eCEqPRa z_j{B-zL@?I<1OEZWb6n#e%ql-jo+v7^GVkEanA*DZ{XXrBB*En0d#;!J#SEtbn}l` zU&`LDvjMg}@-;^C?IhpNNpogHLy`IKT+!$I_5tm^(l2(hv0oJPXutS|t0VSj^pj@? z758stcl%A``@^MASbe0s>8SB>=1x@{J>T=!o8lqEU9Wzwxp}{M&8qU|(PsG!yFQct zBK;(JjOjRod2o<3j)`NrpZvC&Hf|bmtk0@#+{x$az9&TIkZ@w8$o(YZC19g0s1cI`yOvj*MkA>*~aU9ze*xf5H1^1Q;l3({7_yw+P|x3+$(OltyneL6O( zdXn)v|DyHV0{hNtX9G3}jrluAtZv=G+M_LY^ZH3c?`>`7U%r+P#+ueo9J;Et(&6q| z!foc}^}~-^)!Ibbx5#&U?3VR4q&>*L;^$JA;#c=?+W*O+x3W$)6CdK;mM+?ToL`b3 zcUdpKN*9A{Nd(#$A#|=a-+@O~`oR z-9Zm{`JVpF{bMtCLGuSoMpk<#axU$jbK5=MlD>_zI4_yw%KvDNE^lT`l<#HT6HnP1 z)3pD+^3|iSf&a+{^fEq)X~|jcE$&BMFLT~UcYSOBOJ(BZ^H^&tpFu7g;}&w{KbiTl zlRMG6PLHLQ!IzbOkhAys6`b|pZoAS^moC}FTCO>UoiDa@{gcMYH2r&Q;b7u6@I9IO zE0g^f=J}S-!V~XwPaIXU1l%oIpP{eG|8xtlau4onCw^jlH++*bB@3c-w)2VAqhDR* zl77+nKSGDz8{Hd3SC-zuU;NGP4LYZ{f&1-rCNH@%sBbA}-Gcg5{(b6sZK<2RP7>=d$2Gsg`Ig_^y`cs=FR*W+xpo41CSL8s zo~OP%bMjc?{_zz*?p@-J<9jsYqBF@O2n!d&OEY7>3S5jTxoN${8{gYwH$h)Z)?d!u zgd51as{c~^{Q=>kep2*b5BD+?u5aJcI!5oocQ*|fFTOJQFSYG;PTAyF8Fy?4nKWp##x_=qCdW>^vPC${5bWK{Gr0FWsNV zMwvW;eNAXGSq1CjQzu8)F`=zXGG*(OW`9o=-`g(sskG)^2uy~04p*k)!&44{Bgs9& z7LI^^^Q@m#kF9^2Uw_>=zy3Kv-PW!iI91 z5S>@AdcflzDqlYPZx=RFhat@w;dRzcmHka`tv0u6KhMhNvwRp^uwT>yr(i$chqE(U zkKi3Mlrw%Fc6jK>TkICj0pH>iG5l5AZo2uNMDCN%HV<}Ihz4toFBfOT%#>w}t@n&u zKql0uIWw$%nVIJ_+dFWzzUyL7IK-LOKOaF;jAduIHzS$rUEvl!sq&n2@TN2O3A=>f z>@^?yzF&!d6tGBs>V328g$r;94hpT{(bZddiUTi|vKNfxEi3ww%*CJGGQ_M%p3fRb z`r9n%J|eY{}wB=7ExxEVI!CPNnj>Y|1e}I!X zxZn)dLJxkn0lYS|ZkBIc!)Slp!!c8S(S!1CV(gnM4xdkXqIk5l)62$zA3$T#r?(ls zG@zrqHD+f9v=hz+&7IPD#rzF@@}F{;{JSIhoxny3UD*1^^qFgn0e9OEUYG+%;@i;0 zY~9VC*0|Jzg2)9vpB|gK61^fKm&;-lZu`5{}yF!*)oUw1n4-VAo_-3lIZw}iQie%UD=A-b=n zkNPLRzKZxZ?Cdk)70^LP^AO$y%q2q&HW^N4%>fIk zSs(S))4r$WAK)hkJ{#zt_z2;F#JXq^-iDJCmlZDi~lhfdwoCo@%&KZZAe!?lIYo?%wrwWk%rISgPi+CKeNhf zkuSH&+=CB{#~m5qabmIx`&is5@Rmiv9gFRwiZFXd?#29H#y@*NP4$H9;DbBsvh!Z4 z%epT3_!9JYCI3tKzmfm@_+Q2Udj8k(|9k#_%m3^AzsA4pfu+=gozT6OJI(U3tZN3P zn!fH78e)S|Gj_+aH@;})Nws9lChYMV%Qf6L)zHW?Ne0FVC zzH`X*1>!~XuqUMJW2yP~pkD+s@D}E|{KPd^9<+A_jL6*kltGsEmT}Fg=K3V%v2)#B zXHH7xnGe|8quRM?fbF z=^R~;H=c%n(_!8=^p{Rq^g&IGm0jBR&(!>zf17Ww*~xhrhw~Mho2}5l<^yAbpPR2& zD(~`J1KUnjG4H>VSGuKWJ_=74e8hpjg)k*fLa#yA3Kr(Dg)eV?a?ndgE1wUS+LIrW z^6CCc(|yAfrAe-aun0!MGxkbfmyNOa)r?MgEwBjY5FY3J-t*1L^}%nhH-29QFY?RL zI|5oi@50Y#XUP%7asLkO?=I<|SrHj86YrmT;>*SH)AuJL>Hn-gH>mH1NPgp%q#lgc z$M^g5iuDVIUi1O|M88A)hx-W9kwjyf2k$_mi-*AHqCO)bzk54w_P*LwcF0p7WKABc5A9dz^C+H4a2GEF_b+Pi7grP3u_bV>Cknx=IR z>#h5B*S?2-r*G~Gu>L736Sp#Gc!u@X{gs@Zi=%_7e)&q}_}98XWp=zJeu5th<2RrA z?6Th~T9VvL^6kmC!*?^^SMr_wPHuT*tyb~3;h7%+Px=C64&U&}Ua&{cx`bu_7L?sc znXnJhe1cVT>u_mdzt;Yz&wte41pS>A^wHY)7~eEFl@2J}3MSP@y`ABl?Ug?3&~yix z8s-(fIAz7XO8ec>Cw*}5bkSEAG+Z5}55Di?o@ABpp^s2MLZ=n1e+QRMF?a=hHyrn9 ze)08Md{08&ekSX@BzIOMAFj(boy%TThTj}?CE^;9KPBeQ`uXS{j=9U;ySExXQ-`jT z7`klqSnyoJnx^pN)-! zTF`Gd^A;m{@t zPC99GaL15KT#UA??nwA_YKN}?3iB`jQMQ+Gq$Sp zXx_L;?)Ss*&LbXOP4OolAYAT;_bPt0AAVEe{+!tPR?{s(kj(qZyRa{2+M3!r8eiX4 zxHl`tJGBky&@+d-?PG_V_PW7(cbWUgHp15*rrZ|(e{2fBP(SBTKQ!k2hPAD1VVA~I z_W}Pj@DaPGmUA5y8R!1m?95Ng|3SX(BQg#D?PSBXz*1=X#;4#RFPl@EZaEJB)QU{^ zM>XuPjL2-oe=NWG_z#p<`@jkMn;htT_;t#d@6;Ae78UHdB0{(VltL(Yk> zRFRe-?}duzTX~c6UBPcnyhc6&miGiahjseI7-^za8~@~ag*w)^bD4X3m$KmulU;=! zIh@Oy*K5I<`A+UE&XU~Ln#lJp-D>TA`d0dzlwAg_V<%%DkgYgax8K84vl>a8e-V)Zk z@MHX`vJL!e94CO+JaQ6It{A`jj#?QzT-w=Nb_;H)~F=6oyuL3-c z22XSNt}q|oQFY$<#?hwmozdryzqR}`i1A+;T{ixz@&V(U8u3Lz zmNh;c%YK1&JnR7;Z9Fc1_9atr@z?O+?TY)E;u=jM&3y6Tm3j2IM~Ty3l;)89=#sxT zg@O1$%z-Z7C4MUZ!WH8M{zhc*aXxAVWjyATzW+j)^y)BuF8AD@gp3Yp)~7|^ew`TX z%jRZezvhqd8Om!98Nzy^LwZ6puu8wY6<((JZ#X_rGr%i5gU;uvtmub#Gws`&!fhU& zJg>2c_pgBu`G{7cSB3D1c8`hpWQ4Y4*$h(jRrM;5@*hP$ty?9(8<-2?z1k~@zjn@t z4s$+~-3jKnGs+ZVQ`z5lOF!6%eM5Q??>$+)D3l#{aE>t4?_?hc%RA~fI8obSUey`e z1n?QU|DUCY@LAa2=mQ(}cfrO@M;5m42e5s)4{VLVCOrMi@KNtSg)fpG))}rNw1zmB z_W#ECBxAlU%mW8+Gwzx*;tiYO-HkE3W(eLQi3NPkw|(gR*LY}8I|-B%r1$#TOzr)>ySsZ`$sn(Oxj80Pm|HyWDR^Z6A9`BRmqhg&0ER=?z(HHfAC4>RRwP%nWGYB*q{XGo~F>RG;3G!->u8x(cUTc zt)?#aIknCiDOm_DhO#2OL#2iKuDWIDur1Ki{9DR~X?}L?GN~_{*os%UtJ&TeU&;H^ z+z-B!|4X^cM*nq#@pUEr^T6c-m+EnVM|@55pf;CS(F~rWa>c@i?deZ_WB`Xy_ug~o ztnAOZ-x7MRj?VvOvI)TtIO&`YO$n#oorANoKlIREu%3ESI>8cCcwGPR#}571nZkPg!~4Sd zC!H>w4=tS8G+*-PzGzrF+bZA`onGO$r}GYU9pAz)d7Xcxu7=Hyl?x5vE!i2%YHt4z z^VrVuh`mSmZf>Q1E6;lX>x*_U9^*XJj|%_WJ~3f zO|cPsYS}lmbQak!J6t}8z5KrUeEdDtzL~XE=tC^s_XhCymc^gX!zE{g-+tgyvdF`a z>MiDka4DS1*Q!N0?SI|@(d4EU_c7+mvzrI9UIia%@Y}}wVY%b&y+VaG15LKA#XRQG z*D}f}o;NGGGkIovTNQV&ZXTG*V(WI1CquzS`UGU+Xw$Lj1Y{6=D@VD9CC`alL!9E> z;ieFWC#OkU9i+7>|4`L?PJ0_`VzoDpKBP}Z?vBI{eu95@eFwDg)aJ6(`}8?I!4z`W zu$O#|$qGMLF>bqfA8_|rbY=RM=8mfb|5s5L@~^Otwyx^$=UI*}R>z!3$0K>qDDCZ!5GOsB2FVzl!k} z4a_YWz9(VtmKc#ar5hYp*A_OiC$aGar{J=m!R=DnF8b3_?bY8e99Cm@B7PJ3HlJKu zxP`bJ|LK#le@wtPje8t(*Z5`Dpo`wAG853X(N8v!zIk$OVWG_}5K#6KlFPbxxt}T;QWF z-eXGb0&cA{8o{M-eL473ne^wV_kvoRPkEGg`6Fn1GzH`_%bXMT~Pf4ziu(CxR<9YMyG}bRpo6~c`ezsXw$;CxtUJYb z+Jf`+&9q_R1rE{VT4+XlZSqAeWsMNcdp&uz&u8o59w^x}!g{_zntVr?z2{HH;;^qG(Uy?uRb$ zCwq$gsgeOsJHSga!0D0HnGA6H_b&-w+?fgv?Oq%>|223{LeIkgW`!9qg*Pf3*fxHl zaA42KDhwSd&quVKgjN)OU*UQ`yiR$bo9Cb7A9{IC|6ljh+DWtWA+Yg1G`F|iK{6?n zXE}IRs6QIx^CihH@yF2qbcy-`4{@=fNpBF&X4d)ogvN3c<6a653}sYSzA<6GwY7e} z#vtE8XkYpC7F`H~WZ`hyMlRX4jqKPS{bl{TEx~z&oBs{D4lfc+z8>J~ZnnLM3}kK9 zV{=xW=-*a9kSx$TK=iJ)WuCgNPJe(-jPjvzR+eiJNnfaP#`erNj= z_$;9#$UgJD_$2&P?a3Y^8nX9R*>UmLGF>B0p_d(S0Lnqn1ux>y&6V=rD9;>pAA zm;bQa>M`oObWNSrSDl_{H`1Rr?$eL6_7c9M{b~r}jp8HyO9b(*&MHRwsq=rT$CEEx zq`z%JJbT9*qWx|N;^POpJGB3#erRm&0an3mb)QI|H1_)G?gSTmQVs7s@^AZJ!y9Fr z*wf7D#T_Y2ZL|T^_>@?|JD?BIP~9bq5k`Q=9O$clGCa) zR>QlCjC(^P>tw$1eJCXN>kawPF6Hw8>Ahnw_GL;U*y9$zmfoAgFG6~+ogei@9=|i> z@qw+$&P4L{fX{4MzOpgrlv9{mq_(3MxhgMj7UM(8!rlSPj%d45FMjj>_&E@b%w&bb50^gHbN8O`WcPo) zz-~H=Ggat6tAIs(>JHk@<9{zZ4BtLKvo!U*)fbdUIDVHk-G2Jzzd<0|jNaF&$V>x9 z_(FBQAMcR0Nbg`>$^8?F((6`^M!wzW+p(~H=^nL;%&+Nxqx?@8Pu5f0O!Cy!TyU9) zpPEVx_3+QH$ZQo%{BQpvV>*Yu6uuiC#(raAuE-3RJblXL9VPCMfR8&D`|Y}>X1ieN zdP{e6RAd@9o5Clpj6JkpDnDYdYwxbuI>*yr=fy~nSSN5pGc**{$a+bX#ow^hUC6wd9S4>qb6I)dC0Te`$k!1YC3s-Tl3{*47h$61#Y$&ggoz z3%p8BNiQ(e%RWAM_V3R82;3+5+4Uan2@csLUt^rWi+!W#&&u>C#;_4iC^ym^YleAr3wkUiuV;w^Oi!*Iw}6i9gr>1H3;Fyo^&{c)#&a;r%~4 zM`-VG4ee=h_XK;Nr|$IC`?G(fyw=n|qW&~t-I2c|#(k5c+=HyQcz=QS{215fBfa{u zqE&d%JDekc?_hfqFBxfV?Xs!-mhv9sxEP+C=giC9d>itwr<~|FjXtii(;R;e{^OQd zyHDn9^7XANOI!{)ti10s$3{>Gwg6~iWM=0a;Gll-s(XXOGYHam zly)Wf_rt?8vVZFyolsx&4t8&_IxqLwiHAt%O$7TK=aToY6GuOFH&elhud-s7PS z;YINN4H*AGnNY7(yyp8B!5;J}Pxx8#6z6O4e2C_O#xB8lX>B_NONyIVci2A;@1Hu@)P&x-iXY%fJb^kq>acpp4YjN{kk&N zjGqQqrqo;_I<7qMiG}0rxtx(1&N|+o!!J_yG_AwW1P}I26uw`A_qYR{KLSYJ3^C$g%io&c{${6{?yb1qzNC&U)qArhj3SLU)=Xe(;3w< zs*^kMHYbW{vftRTIRzeW=hdjplk`Ej7_*G^G5B+7|M_5SK3wYdoQsoPLiPc0Z~ecE z^!p!n415}lWn$^trPI zIK)h{VeK)HhBwn*n+!| z&BAv`bD^!JFh)G%1*<=CXa*lqwK{_A{NUD*Ev-IHdn@b5wm+fdu$PYK%k zXYhx3jnUra;CLc?TksRT!PO}k-eb)&g?Q}DBh|k@G0wv06#liRmv7SAY*@8$+DN~n zc(YJ5Bl-<-s(PNFd}~l=2jO23?n@t`EkJald!2L*AE| zG$NoE;hy#6z76Hgt?>HE%ZBil6yu}zG}gBPpXep2d4^3-@zP_jrhSFi@GrgpckH3+ zI|hE$hNXYL?<8G&g6K3_3#^k3;0s?+*^!y=koIHpzdN{WN)zW=7gektt?|5n2>b#c z%D!U|(vQYz>%B!9X&&$Es6U7Asr(fm$!~E)rir>gu8!&SOFD#s#|u`$xFW#!WAgjs zI~=0|@cMjvMCMntk>;+F>Ew0r*^HfJ%4<&I+zacTxvQLo&HVq8x>f#$puR`3-8X}O z!StV$j}I^tH6EI;!nHrA{CQ9v;5+?x_oSy8-{)h;m0$0Snp`m;K1KMw6jzVZR*L;UGy!(E5(ooiv0dB6PU6rq+FS?)bI&crKTPNB}Bu`@<#`)?X&vB#) zkE?C{BQxjNe(w(CM%El_gH@4 zp+22G6O1!c!T8~u9Kxt^r~`&(^6jP$;a9kojlh8CO5vBV@HQVjiFSp@+2l|1E!?P& z4FP_V#24pB^gLYf{tau?&CInC+)J#tB&73bJ@@mNDXfMb=Z|&|Ch)C|Q?KPYk+sH% zBxP7PzNNOSVyU%1D%z*RG0^(vaAgHkRNsA@y~s=9b^e^?E^crHy)f5CWL~0QnqNl( z2YqD^!Czy3^);VQz(W?ceT+S)r|rYoL(KPkuRpXNdXRmuO~4V_wrF|3n3Z&`C% z>O^2!)XMn@@RZ!lngp9jae?6vxZt zOHwC(vG;dVBwg^f;0t4T8zO{Pu&x3Y=>xN&Nx_ed>WH1>?_WI+4T6(S=LF8Uv*#$- z4c`r4Hif&cKySOo6z1Xo(zw&VD@JfNeQ;`f(@Xd$esolO(?{jJ)n*DmAaBzx+&S`} ztQq?B)9xbzmvr2=K*#+q?aH3QeCvpDuBFP*Zrtf5-;rC^P7%^;8r@!fv~y)aV0%fQ zmf8${u{{*+>!u_%06G(me3x}&bl)`Ek4J&QK^`XApZk;gTF?7t{k_iZ3Rhu=;*GNB z6~@M=dC>emVeAYFPonc03=;H+MEZ4hd zy2jb{?w*eAB%1>tdIMKBuhJ^?2gaivUgd$SJZXk~!!5KwpETBX)|T8x`V9e1=^azi zRT*uku@8CR#G~9q=1lSeQ!qM<1a1^}isC*89IQ1w@UOTviUZCZbS?df3Ji4MpG0{Cn7jUVuI{R`Bo6`tIV~x4NHQEBZcgO&<+!_ZVw~-Qs{9 zci_X`9L}M>`9ECh-w_y&qp$lq)edd2-^<=K^PBx2GZtRPzGjkn?9rDbeLa;ttD(IO z=n?WYmcP=!!kC;Yzg zk;WxBn`q^MzyB!xy?`tc?sWgGg{RK1Q)|FoXEM&vc$#_wpMiBdp#jO@2f^Ka&=BwN zbrgtGKHgH!x@I=}FGM+z5Zk&(;3-sLakq(k+K)a@;q`p2x)eT;vG-Yb2k} z$vy(^W@w*~{-T>ytBmqL_6p;~`oOM_&`o{`Y<}Mk?UMsdhWJ~jJ^WWX@$=uX?G4t@-5dI~r&l29trN838MLM!!-|}+z;3jAtgGqw8tU3|m0wPB z`xMGSD?RJ0(8lB3?iQ}!%zJ9^hS+lal=z>A?Y@Tn43{}D*Hr9D@0PW*j* zFCOj7S?PP|n4Jy%y!z>X^ZTW{Wkr`aQtuS{73OJ%21NH0$R`_*;`JStKZ$sBygi=< zCyS5geOd8C#*8^RF~r>ym-%^;R!^4iJW=YOV~u&U+PR~BMGfan9@Bo(K)V*pRD#b2a0&mlZ#y)C z&qnZB!roeG&ZkF@KJf0I?Mq0H4d7MusQD5*iLqFNpRUDih}WX7x(5GC@%vD3wROR# zW5@b<6;G5Or|Q-jw#u7I+I7xO`iSPN=Beg)1M)ePTk)BC+sTnXNWEmVbQJ8ZcfT9( zOwC!%;Voa`zSPT^Gj{F{%Zy~qni!WjeX{9S7w76s@(E7a^u*UCJ464&-hAGdyJ!nqzL+93;p*6wu7s9Kd zUGYuP)Q3wSYM;+N=ON$JI9$d$S9bW-@TX^y`{EPtf#(DC|6SI7qPyK=oK*YczKw&s zOBT)|UvkKS$-2j+Ycw_uY~gA4{f`BH@qn|C&nol7VwuyD(gWC+x%z0%nv?$>@^|1{ zW(L(};V}ym)Tui@ozqKGX><;)AE5W@Bz73m7dkU|?}U3fp!aJM(0lru$a#36foFAm z8DG-Rv)-oOs;k-GGqGn^^M=l|<=k6vCbEe$D2;b+f2ql)r6+wbXyJF^@m&{6?vKihp51kWvRQAWN z^Za(#a*j`9`Ca1h1G#?^|LK@rJ6DUw?UYFZrrTq zrOy2%uwy5n-#Gn)Z(84c$%HgK0sE7ci)a5Gd^49l+EtsS*B9FqzUyc=+3K$^KLz~F zU-Eg?;#O18UU-z(H}to%B^$Qs$tMLp!q&UUuQzr)yq)#^_tC+bpY?m`i)<;Hcf+V( z>s`Sv`fa2>^+D&3a=K#+8Yu@}#p|L+dkF_~pX8}xJT(*XCn-{G~{ zfvyq7X66WHuE*MvLKz$|}l-|G#95Joc=Sv0mcjJ9vYNBbst(msyr8%}i! zjT3$U7>$GS^-3Q{`boXhqc%6`8wOg_`t7^$T;2B}nSm{?TJ|@!{}bkN6MnYX7Vh58 zoYfwkS7(lj-R9N*g8nB-lV6cxojd~i9A4_&s5#ZbUGZKia)&&O=OI2xg4d_JEtZ#x zPl(QDQm@w4oA5z40ewlXzXOe}Hs;%^OW&)hJ6hhCf4=^~J(dOWp*-gZTwvNwU!;dD zq7RGcL&kAq zV7|()^FQEA7Jr&!!5D}1>WuU0CHywydegIWQlE76KG8^+-#N8UIy|;l`tm;M%lo8X z*(V)76)hj7HM@Sp)-3+4`FO8*lJ;Z)3t|7nXrP}^8(N>PsvR`U?*;D`j*0&RS|8VJ{^|6l(Plr#zGYr2t>;33> z|8Ta}0KaU15PONkTn_b6Y|?k%Q#XPA&SBOr@(y(HdHBKx&X8#S*?AR|xrq35745L5 zX`##*eEl@PRG<81H1FhNa}I4K!Oye6YN+4jrlh9ZvWywDBwb`D_7}rG^U6!Du4&K3 zJivG-2O4x0WBHr<;bH4jn^n}O^;csIyHkJV8J2mK`jz$qb-Sehl<$8AS0!+19)E%S z@?ri7`1)^t-Pj-ARN4p32lnfNVoc$W#ua>!m0S?W%4`0@!&Z)F1JZ-W#_4n-dv&P*EzAmDlJ6LDshML)LmV6@fTFKDN z5b|>G@xHatR-Sbh{k-T`rS3|N!OutCva-Y6uu^kQYf#~5;HPWbcR*W%p}Vghb!V&S zCuQm9sMpi1cSS!bOFu`w9_L&1ld|+fI<&Y<-}5V(6f^i}_&SN&SZ(LvMF;boKMLEpFleK1{i^o`V7rUH z&njFrrIWDAsm3e zJ%7BJSj$|qJkXoK8yn2sFP1QWOPIU7gSDVv`_7-Rj+#q9Iv5+qqViG3s)B#sM2zd- zI163jiYUgxTEb zcwPGwV{@%-2acFx)1lM1E=7m^qV8*-2`9mi!ZmSqZzxd@RoeH zd$#VD&N6nnA#NcDy>!(ed+}q68}oX;2Hp=%=CG65v>Dh3u`S!Q8R$^h<8u{3+If@< z)6PRTR@&$w?Lx|7`?BROG=(_4JXeLiq}1J?2UktZU-1Oz?OWC_iaB@c+u(oTjJm~7 zXD*Aro%{`cI^Tx-syE5*VQ$!;jNPz)*wA}g6Re?g*qEuaqw6A_;RxDfyuEk)c{mX{ zEc)>1v-0iFqdFq*nPfFLI^V?tHji+71KGXiP zEm<04o^~@oz8&P>7{_M={B_Nx&(KqheP`A46=*6=KULS*N3q35>QnhG z(oX{VT0~uze*O+GI1GIyx{sJFe4RwT{C6&BkJGXbQKG|yH^h4o!ge9Y0 z;4rxf_60=A`yq?ECrHJoyPJ?u9745{-+Wo@#^dbVcJ_;>sDPXk3yw z&T{@S8kZ(+v?+8(S$b=xHC-Qr^UE!CSICqJKGeVMz*KxOyN4lBE8;Z-GK+D+yibbPSTT8 zzapKzxx&>NtH-f7mPOLNDXGVmegSk1td8JtTa~o+H|VR5J_=8DxydQxPDmxDc=hGL`D8RLKgp)G zad*rh(qR0Na#L(t7v)Mx(_WKgmww@UUGIO2_YAIc3t!|d7}4)r$f&nji%H*~Wk| zgD>pM@fOa1As07#_++vNxP>-08fRavZ0M9v11Im5f(OpOzc}wej(Qu>|7uIkb2T@a zecHdbYg=zrrqd#L0mTk!1)jw*+5)c1I@sg;{8=fov zaH;FO8gJPSkJInKr`OhuTQ}%(adt`o;R8 zqnm&1kNXytuWt3Q>Gy>nSn74wIPAkR)#uU{1-%@8Ew5HqvYPPeL1&^dX0QMR(dqS^i`D zy58np8}NjG#lEC;U|^{wPV>sd&q%e<4zNM{?0vEB&=?2~jg9)Q^@#8p){$4e)RDk< z(bkchmRd+1M!Jk(pv_v|%~5{I(p}UedANvg);#+f_J-xArsh%3WzMVI^W?GhnQ5ti zQ{P$hg!M_sP@kIr?$?_S^CqXI>d70&&hO`S_UXO`wf#r(R6@(=18+#*^E~(-`dRYD z^pkP)a|17IgU%Do56&jy2f&*B#`yJZW<=bOJCz$Kp?Dd@a&rgd_nL*zC>7yoV4vzgfwy0CFp9emvzk$!HZRv;74dtUP zy->O$@LIi4ZE0U9kvlWhNZXgurh7`zUjJfSxerd9EInPi{paE38+MMj_>oV~!3Se0 zzn;;Vgf~4EV^0eT$aY`Oo!N{>kDTHDG})O-_>rem>)%^Qmz;TX5_0BpU(Or}Pt4!% zW@Dw^N@uLMvSOyUQhCgLZ)NS!=GN`yUaOhO86NaFC&_x&7f(`z?vg=G!IF@&4yzyot zbhA!$Qw80O8D85SpC}uM+4ug))vX)(A2YnJeSS&P`UlJdt%{#la?ARqgl!tO;Q1vt z+q6%{{c`hopQR^#tkReG=~Kh>Zx_?2D}Aw_J}yjO)RR8Ho z%k?%~X~W-I@0Pj+wOzyaTfndQB<~*07^?GV_q4jh{W=zmN4;|r<|Bv=zRmEo6q zlhfWs+dE>T7c^*(i84vnYbBJa`2@1lGtX5~R_nqf?Ip02CI%VtSL>Ii{H5qeqX(Ny zQWmQzvzm zk0I`jgY4h&ule~m!q9l|EVV*u=fgo%$y&&wmSPYU6(h+r3@t8$sRPFzx@F zf?!s71GZ}yRy&LYQ(Yo%nk~8sRIUU=$ z$uLeG!eiX92MF!C%guo{Y;U#bBZ=hEDf7c+onwtzF~+NHUq;@S&y=oI@_LSO_xRq$ znyr#=m+v?<=i1h3_r`RTf|sL;fH^?L%-RDei_PvmXFXo7_;S)JGwuH?*`ge z+oz(ts&CKZe_+?z@OEm?n(f^inqq_Z9aHD6goaioOT5-&>!77C9?>qE`XS#1c=n^z zwFrLk9{)N&CcdD3JmLH*XhwTBYUe&+dyBIi!k=W_$^eIwbN{UG$gp)A8po%?zI>K; z!Zy?%NPA8!GN?-Ecg%roC#fB69<6$^Ip|rM|iU&D|K1SIDVh zNna+()<9gRie_MS}5yf2hv!VkYBi&1+2T6SEaw{UG6QxPx^ZMUtw|h)mewuvk$*5 z!7kk+`HLdVJ6bqTy|H`tj?L~u>18|W+=aD#hxmOjxNom}nbTt*l+Euw=v(@ZLEeS- zz*61<)OftyTHC(s$93&p*mU-sfFH{-qb66wKL)s7{UiLZMt&sOmzkq6%1=qnDLE@O zXPDR8X3Ug^qsu0<4%;^E!B3@1u%X#-Np(u=A$N?KeFyfsjiz*8y3)-43_dF&jI!Gs&r0nee==@npHKcB=+W3PXa5b_-w~%C{FZjOW?$DQ&FtCaU$y4! zRFjGAODD|is|T6cP2^Gd4%Sjl)RV_=sR@0x3%SMGVeg`tNp+J)Ynew_lXRnt$H`;$ zsx>vKZrWqrH2XH#I1P^y;m}s^Gz>73-afRAJ3f! z$Qjwiy6KY{ZsFa#VP{FIo4%zP`))Ti zyxkXP@1cqQOLosZ8r$ax?634!cr*D}YS9|*?cz;G`5ia09?Ua_pCNA(>p`uFn^+5W zfiEA=C8>v%kN(yMah7&kOp3j-B{ol8Noo;&|Dmm~Y+p{}Ct5&Px9KfTNKCPXd zx=Qs!lS$gXgM2%nN%o-l2M+pY+kz&)LcS*QbrI+H&q;k)2^hGs5uZnv_e}wp(>}>a;MPu{wjWk7vi`_hCCbHLfSmSvJ3)Csxeg5=%|- z%Whk=vnDl>us=U0+dP(Txbs(eu7Ea1%`3(B_0Q?vwoTs$^t4@*Di6c7@d?6yo|=>) zY+>5$q(+2!8qZGkCp?z3nl(<@!gIiz@;{V2E46*|*{SWkGrAvsYwM^wEA0V{F*-!&cux?=h?^#DAjsl%`*fbn5Mh z%?{3QUF@INLU*+5Y{8+jVg4Fq0J{6ZJocL2z95|MvwOo%^*_*uw5F&e?~%+a?R!cl z?1&9pK;Q6j^Y1+Q!iD}h_C@Rs&ov_!IOyV`9VgtclMZ{hxDY1!4S z))3dlyW0tOYRV;kF7cOL;M+LE{d3`_3tOCQo9O4&=+D-7dNQyZ&a8X=OD?HAfSm+> zmLyKL&O6X2p`C3bv2ALvJoY|$@qM@yylD^K)!86q6AQ3x`uC=teXn)Gh0bDyHqgD~ z&C%~Pwm=&n>G$7)v^+SGe^&uKn6d+tm0x&L+z+MG+I@Ym9$lw?KHtKLY*a%SQ|X1n zDCd$Udr=9nF8|Qib=tzW4v1Gj!*b|wef+vBB4;yvTlCC>=(XG*7}hZZxhb9ZI>AGE z)g_x)=o_y3`_@~}7(N5v5Nwkvr+xeR;86NoSnrj@hj7W~TK(ApUQ}j0Y3k3~4>;!n zEY|)OnNJ4V6dlHv*S5Q*OIMCDOIG3+D?gA8Ny@Kr%BFbyH#$S7sJ;Z>l&SARUrIRR zrsN1W8+S?#dun;Y?C;D`eQCn_CvUm_MQ?f&P(D_o@ml6{;(YAdre?bbJPx#^c}e-! z@D0ImzN)PCl?=*+cPfYJ=6w8V>z3DJ*IV#g?2=uTe)uHhU}9#AjX#OG-c{*`f2a9d z*;0-zdr;-_(uJ>Sod*9&>>ZklUy;1A!I+`(N8&4tsT99Kz6JL^l)4LD^solw*V9Zr zHa%T#`Br6_yD(3i4aRR@d&xFE9;CwuwFdO-Ji(UPS-BiIVuLDYmM(k*8-azxj6MX8 z%AxMU9DUGPntJB4PLBVtnq?#jrP_7&eh`^0Z<+_j-su#Dy>XHFNSL)mPkuKN_D(Fu zr$1Q?yOD5iY$QGsj*gcX8M}N{B!47qe46t65^2|qj5Yg}J#d;x*gHKE9|?mw3Y6C|BIQ$e$>_y>n~LKOvyr{Ihre3$Xwo*gy$!`X({Q* zde696_q1X=t{;x_Gw~9ab>=MburqvqGx+0p*vyh554*eS5Z+k8^>*>p0lk5r8ub%#HGr34O z9SP?n^p!uW2m|Yl9(dA`uonp@BVjiZjz_{K683u9-D}()IN1}7gws9aMZY59WF(x6 z=I;q_GwHL7Fnf`3vL{Ttk$U2hu;~edx0+%-xkxx2344)nG7@$p;dmr$BH?@wJd8^u z>_)=zNZ3TeaUX}`0ovEDWKY2I5r56JPPA>;Oz~LnHIs?iKJ_i5d1lLaFwke(Nl}1D(Onp|qcF=juAnG@qZG+8~|i_8y&xvF#t?a<4Iwa6Ynzi>~L=k@#S3 zXWL3f;@wC%9toRBIA2<97n@ZNKS)QyUL>51gmVLn`AsA~Us8-`-CV3Q680kDWF+iH z!tqGhM8a;Qt#~Ay_wj7;kc)&}AD@RCpCs}`vP3Z2@j-4Mc6{=mDE1>63Fn6t19SsjCmUScHd|5Hxi-hBmaQ=v5 zo^&MaM#A|B&2nE*&zPG?I33Ls3A;mW{+{vqc=^9qICaevlSc8$gTCXBh-4A}0=q@#=nL=-<9-@^fADYDx@kn_j=NYNvR*g% zi)l?h3VZO#n{K}6z1XN{?;kR9Mc3Kvzp_@=zQk#)8{a;U{W#*ZzUQ3LLe|~*mXF9R zp>Av@6P0h{XS(kRns|N@Rb!Va?}x)S<5?U zJ2`6@)^!tgsQo2s|1fn$$BS{u2(RIIX*?>g!|xc~PIvb}FCB5=d4QRe%(w-QZ`m-8 z5iG=gm%a*)nVfSJ{DLDv*uy7GXMJUl;$E*F+k)^J+82PWvp=*T+fDw%?kV@_EZi+O z-(yV0v&mo#J^Wv9ryts5G1yzw_M?IayF(rEU!(oBd}yHy58d>|{Wm|aJflh~p1qNA zH0+h`^~+bg_-f@y@2MYO1JTH-q^GO!pE-^*pxB868nNT?OVV`iRplyx%RnpF52;wO z>T~f2)UQ?0$qS76VrZl(LLusau45)9TwfyZd#%0~P*t$4(qq(K~K;b*~-rmXQ zSpT4Xzhk`vKUtWAURQH2-hey7wfsnb4z+v&pUU7aZTaKhZs~nkra$F5Q`0k-LVNC( zr?gMaU0Af!c-IB(zomWIGT8^OzZai%%?I&=pK>AL{zlc{zFiZ>xSY|kV3-J`{ww_Vv(Vec(3?37|J^<#LT~V0Py81?9P;0>+)<}-5dUq6 z;ANb}$FR)9ln?P3rMHkDoa(RM=o54Py)|&h zsC3YoPHP{cSBDf zx&Mkj_NAej?8}Pgnj^Rk`+It%zafoA;R$t*Lu5bnHyHX0W&d%s8 z?1xq*`_r6j2xb3K^h@{-CPYu(e^bzW7A-)cg|Mc$-==gB+`25|6=f|(Sj~~!1pN=;b`LS)|QrhUtkH?Z%wAnZB`9a=)g&%(w zdb=2UGl${F+iN5AcBuScxAx*9y*UxQjI;Pa{!>20W0c-P8aRV|Aq{N!IQb8qNd7PX zoKI`fc0&9Qw(T8CYf-ws9NJe~lKnc1q_Sf#D$-lD-UHwyq_?q`_<5q~dr9w0Z~s*O z(}%wF)=T~$hTgVb>eE|SZ(eL^VH@p-crDUf@l9rUW#|WG&nxbw@6Q9ncK!|iKUyC~ z*V$JFi)oFZDWslUjp`*$tw0a9LSC*g)1~w1buC#t@rX66* zoM^}X@OCWWe(mK&+&3Rnw1548HunbOv-}D_kH##T=Wgdch2H(VeiCW=Paxx{9ehZ z>eZChn3n?gPWl>!C#1t`?6@4h&$7Rs0dAh44%wgZm9gi=BnM;i&m;Jc_A@0bmUAbh?jgx-F12sY9KXxXnQC{inV3Ts8-q>xNPPLQ zt$rRjpJ<$fPuMWtS{s>pa54C2%<;qR*h*gcx9LpC0esTl<2|5JC1<9VQ~te{0V(hQ zWA0txtE{fP|9z6Ec&)`Kc&Qu^E21b@1#jevP!VVn)LxU53lIqjBmtq?a!}ebqi@Hf zbn3KDjmk_VV_Q4L8JX!j6Dw_PwKq#!JMDA=(hjYiwpOaf63+ko+n47&=j0^z{a-$x z|KStX^Q^u0+H0@9_S*OToX+`Z(R!X|lrw*ZygC!8KHoFow{ezY`|%YETDb4Fsg?I+ z;^dYl=2Njn&a7}w#gtD%c7x5XG8J34m+`I10o}2A{93JxH=Sg@&l=n-7ZZNhNfirv z#+&b_Ppeq4b3ES@jPicQ%hQ-k+F4S1cTY*_%Q`PO4?TyySbs-Z{epd^%AahTdy}HG zH`zVd`BCl(LGDM`%5>bxH;M z>PmMHW{+p8l)E#y7vbRBPTZZuMr2=_LzKP#JN4zOl%eb|$#3H z%3Qt3GM^>6?K$V3+TG`qXO(ZwmR#MR?CXAm>;Zkq$Nt32@nb>K{~=KG8b8o`>4fRd z#=iBK)|x~wU5oFo4>`V7-~!+4Jl}nur^-`22Q07h{(rOZto}XZL%hSBb3Bb;v->{6 z9ctKr;H~~$$eVn%=%#uZ}Ezv1a*w`CvZ4hzi z>v-beOC_1ZbIkB$^f+$cqG8pIH~fBc+3@Snlv(>d{8wi9;QgH2!dN$)*)L8-Of z!=C~F5cBoIcQfz&Xi4Ty@^WxF-wXW*Gqmk8){EHR{4{Ga_~{Ml%MAA{4ZOD!n!)%~tDK2)+G`RtNv^sQQFO4ohk_=>$>=i3wC z8eg$@-;_k=o7}nm40qx_dn;!nS+Du^?WDOivG^;NtHxhdf{k0otE__1>{|w;|5ni9* z4t4bhCib60zxU_`$7M9ObhruqXM)o+=X6f~Q}ywb;d%W>vHv$;I*z^g=43~AZvX4x z0-eqnzsmd5=wCFI?=7 z%Y50>e-*kx!bE>npvQi*4{@i*MD#-0X1B)TK6+wimydf;aS2o0OF~@An)?QGvX!2c zdBD?`NH)SmKPk{t_Suie=vz+8+~eu*6g^?0Kf}|j|58H#N;vgj{z#s8a*sd#m+AB~ z_)asn^h`;n6dKw5f%h5iolV#Av0?P1?=w#9-(hvD=L!8Ejh@fz@3iR(e{TQU==q%f zH9QYsD^2G+I~hFB*$8LRtbM2)4)##z;jgsHPRD-%zeAd`AEkQ%c5_hYiwV1nut58@ zNUpQ{mnj`=qiF(sDKpFWHW%laSe&Oq9Llj$aVR58yVcRY6r=roprzcd5H00nY438h zrP8sN`;kCPnO!1UY%|#9!Mh#3?z{-}e;w$t*E#4>c4>Lv?r5uHw08$uY_(jxF7~a!KhZYRUfBI21Dp7UFS@As zuFmY9IXzAvXynI5Ctv>b_p=QpM_1gRB946e!ADCL4BmgzX8H8HS!=a*^RDAEhbT+c zwPwjmJ&`T0#Sf}Z>+F-IyI@@Aw^n{L{SlQ1^gDWbzy4RSy4jh^lY&<&QJVExZmkWaEa2M)h|@4=T!GY3!hejB+4Pe=@3 zjXt-8@J9*H8t2!MXYfyEcn;xRA-sj~SA95g4F1jx%Rbr&mwtn8HD?g?dhj7vo-MKR zJSmhXI=mklx1ocBpK)}LT0XA+m_UcDf6Mc=qT?P1)t%}X-D~9C)@fwEAG&vl?*59s z7eFK01Er^;D`b04~-e{^rl;JnPgLf40{JFt~@p8Ho((x-OPj;F!#oy3<7eR<_w{r8!_P=D|Y z`b**b%lB=6^QF~{@6_PEFr?{dMFY%OKP8J{bNgX6y{jitdbpVP&2Pl7)hx*j& zFY6BYzC(7tyT6IC?xX1cE^yL&F`Zl9>zy=EO z9|kYn_LH9?bZra}y_f2?c{2h3H z3Ebcu$FGb%FDmyY`n)Rp>eABZ4#IabHlVU^G-YdFhhNqAwx82HUf)P!4-{$L3lEj= zAaVNMZk{yM?-KOebiAW!qObgMr9<2b?Bx#1{}8mYmtDO7g1q#xr)Sdkk`05py9V1D zm|^zF?!Jay;miAlOWkUQ))80sTQvTTk`3uATzqr3i~nRi{wg!{0mb+Ar-`;7yW8^^ zHof(|u1;v)=gzZYGTq~N2K%*g-V2WL`&RDjk^dQykDVnO2IhM?xNk-IxIZq(2hGsc zUXFv(1NjkurL8)0=NaZnecNs8yBuD)t;={uZt0=#osQ>6;ynA!&^yQASv575r^iY* zG@+-hj~J)-$H~tE&d&QfYV-I+$%drP+(0yMzm;KVKe214gjRV!pX&}!pu;VGnWUiinrS3KDt2PY> zbw{T4X=nHU=^FO6)o`ag@&+HX9seTxtubZK9m1XumX`Iu{z`U_t@G5E=g;F#8|+zj zt-F}?&9$GvNBz+6l9nwiuOn+GqsVoXI0K8ET!ZyaE{!=P+YbrrYjA#6aycJso>Scj zKDOydcF%z?r}zFmlrLc^%Ha#h5XwmRoF(y1g}z5V?*o*@)9m{g#4r8}&$3f%^IrD% z61Pe9llrib=cxWYfZZ}*DBH7k?dkWuoXyqI2TL}vpSB@xn^WWAeT1uSczfOc>sZ`f zB^wgI&NdV)%P&gLS9zUP1)aI}t`)nceD}!qLK}zeMD4}Zqm;v^#q%=9v+25g`{*Go zxp1U?s2t+<(f7J5i`(O6fqriA_8>dZeZIx=^dY4`%jaofe){!<^;Nue`UBn;-WN|F zzi>$`{m+h){(DJd;8K^qxhg;XISRY#&q$y8AzQpUo<3!JvbRNBC-6_w!*=AL9>36f zHFXbP{VCZVzV4gA0ro$yBwRix*zm8w_pv8{wZaKa%x^TYx3Y;jmLz-H;B#LSKJB~E z9GuL&6>H0?hX-lj5736bjQrO2`EF6*7yQxRvhQaraR-zxYf@K=f9bj7RsW1Re>VNM z1*(tg3#m<29)5?+__sX=z?IUEJ4oGBd!{-mTVo79^gd%2s6CWVYBZ&5E53KvIaU10 zr__>GF&h|yZ+g5dg8}Zk$oZ&={i@ID2`0LJp&qMGuZ};U|!1Hh5Njf$k#dt1& zr+jFTHTcr+!c$|W)Z6A?*~Fa(3-PJR81Gl%JLua*>07=_?UHoY7wfyp4i0{udx^Zy zSx9=JT&|~FLb`E3{)BW??($Q?8NaxW+DO+VN3Z)AjiRH^z;obS$Fu2@IM1{DdkITk z>e@r)LwyP5;Q-~RHbQMfihjW$cHi{(IeSfEyW7dz3hb#^K0X59!841ed2^98|Bkfe zZ?>D`Y?{cRbKeV6e8X4u)An(K4}Qk^(X+{K6Js6DfKQ)%9d*Ljhp9XVJ^v^BkOEDL zJt%>umFGaSKSq(0K4Xg=v>_Oc+gf2CnkWIAE#%k-s@|%P{sZYzKK(7?9wM%p#QA&V4{^V(I_>rFF#8-r9(VB^jBh_vD%!@2NZo-rEa!%byhE|C6h*L*}E>G5$})_&>Zj$A1^k zfqzF#_m$V@Xli&4G%e7`exGKKlYHX2@=qG0;1dIleARoPOQEYIdoIHGNOV(q4|FR6 z4d438qv1W!T<>Yp>>Y^HXfHvaxz5w{-H=bSi}ye?51K!x+*iqF&cbHUdnlWSM%YYo zz2A=BxzFgyKJBUT_O`{xm5s_)Wp~BOY%%FF{(DmTlAS*JXQuf<(v-Y?lw(Nq?msi` za^kY?_hbd-8{&SHxEhbkN5{wGwx39yx)0k;euw+hC|mgg`GimpbO(-fEV~>lud_(E z37J)<%IiIEk>*CV1K)LN%5TKee8s1ktIx&Drd)bD89iYWN>gjBW99P})zNRdH096Y zX=)BF-;&mutq;w=Z(1w!JV}+{S&ZZ=H54~)7?Hg|HXXN0DB*F4|gAH;QFR^6Jhon z+uT!Tzq!p_V+Z{Av<++R4~J*&Ib-j|hAHlh@)K1}+{wtfb7&H9DH6`I$HAbBIR!kfOMKS7r`V7li*`$gBRg zzVS-@xmUpdHs*WQ$9{a7lrvy|5N%1`OqDE zR-X5JdAPsibDrjTzJc-eAkX0RjK<+swx&xm55#5T4vSBC*=BGjdJ}8NeT-|YY|O9a z$wruD(_QR^vi(JYY@ZA1r7y|c5l^pgL8jZM_j&F^Z(=Unlx`|<(e zJA|KYMpu#S1J`7}@98e(n*gtouKaKQc`o)xo#DPmxQTpjK`+b?us`Zdd-kpbKUH~Z zx-NT##;-c_c1Hib$HLizGx~o5KJ4vu-^F;w`lT}FptH?zMd&%nVG!5gq)WFGnCn-z#izP1HS~#G~kzk z?*zVszp4Cv5xObBQ%O4stS06@N; zQ!>g=rx(%|S)SZcxG-}B{G-Gd##5$rFv@ zix&r@hki>vP@3)=S7+)T;kpyZchk}AT%{4(SkZ^QjG`$_Kc|nqwlAY~J#)G{zpQ?Y z_GtO_#eVG>Jj%R1XQ^kU>AxWR0)02Eg8NqW9k4Y0mHMAm?>?J!e$2kUbNJ@S)jZ#| zwc>v5LsVM5r&a7#e$pl9oHVKI{O$qT+9vMiKFIz*`QSlONl_jRrQ@zJ_zn4%1@uoUO(HMv+Dniy%te)+ZTI~R z-~J722R+Ru^Y0}SUglnQd-tSdR=G%Dic?4r|DnI3ZDw2*t-%Ib_zxA*FMwaX48-%l zD6>j4`6PvDKPbbL!I153qN>r7~A~jq*c3OL-|w z`+3s%5qiI-%)DFSDwi|21E;=Q5>?|7Re-=Vr~_d1?1?TV(;*td#q=mYHeHsz+e_+4yU z=K?A?hY>#;uyUTw*DEvdG1^~SN_t9Dds04&e__8=e+7O?JO}7QD6Ya&@SKiZ)Y<9u zB}atyktc=8PqpG}^=$|7e~mJkNSblK5zaU$T(X`%O1RQV4`rXc0veqm0P;!j>;%=v z(&M z?^EF0gf6DMs=9{t^0 zrxEOrJp!~BiT-WqDU}#^MH-zeNSQVl+3mrrMnr|-7EQ9jLB?6m*2R;e*ewt zq#~x9V)_y96zx+2|ClbNAnccL*ZWqf4-I4U)5BaQ5tjcZO!MiFP1bydXHn9 z&BWVTGH(1%?mVf4X09pk$LZU4teEZ;H#Z(Od~b*Q<|%WP%S!ArluMd-l}VS!6)Tf? zU2=CTFm5|_;uWe-_D+qmaaSa1fAEp_y~e&UwL=f%7n7_b&m*sM%$avvJnhmTV{G;L zCetsOJYX{4r~dsH-+xtq{K>QUjuiE%iF$dEdZD`ZG(PDT>WbQfN!ZJ)*bDJ(yAst4 z+Wo*&=}k6?Oc!;tZ&>Z`8U3wli#3*`-l)FvyvL@4e-HI_8~VD=`x%!8{RdmmMxLD% z&&vr*4`=7GFNJn|Buxe5+ac^YO`V(rjeJBrPkmo^^-O6gZ_hz1osjp8^l~?PNy1<4 z&cDX_{3)9!^Cx0_G(Rt1PXS4Dyw*9LJ?7>{4lo`_v4*8`JiwU2&5xAyKQv5!-p;o; z87JJ2t)ipx6zZN-$)xcE+}pG5bTc=Jd}{l2mtPC=G3T1YarfN^C376dJ#Fs+XX3b~ zl1u}*rZ}#zB(q%nxbr?rW3VLiE^z5{W4L5#rnWF{MQNr2+~7nrw}SKRPQJ@CSA!dv z5R02G&0HaVe48aoW1uuM3tS)hn?qgfId}?pj-Qk{6a6&Prn`Gk%KPh8erDm1WPi_N z*UTNwN@B-p^rZ4{IxTr+z72fM_G_L#!OV+f;(pa{VTXNjJ#sI|*TALYxQepOfb2Dn zYbwk9E4YC;uCFZfPvZBsSbi$b%6!T5Bi(zgF1T0haq)}O4U}a*Cmi3xRey3mc{eYe zk}=$Cb^yPZ{#Ysf2X`NdY?rof{QIyE&J@j4KTGz}Q<}U|wkA6Zc^|&rY~O^>`M6}~yR}Wn=WyRqe;r)UohGwY{XzOqx({0CY^&It^|b%C zmmT*d6B*Gf{e#%7>JEOmZZh}o?NhsqY>L~;T=0}wT$NXd|8LM0%D%6fK1GZ^(0&_sl=eK7X3Jn%MrnR7#!G1jT|{;@<)qB5$Rqu&0g6V?-1RUaqCr>MgA=_^IX?4& z`1>QrXWojcv{et|Z(9l5zWMy| ztk=$N)ZLKurygN^*J{jO=Gg6g-YMX0-J*Y@x~99h<9&lFc&Y7s*tk7w@vt)ZSHUl& z!CdIxuX?`gxIbzevP^zHdH1#wGo*W4lx_*Wb+4zoRbHxzflsvF)Vwq2<l$l{s0_4 z^i*)Ux(W^-I!?BQZ_dSKKYn3ce5l6jd2#WfL*UYUuQ`f~4?O~|BF+yV`a5ugoO7(O zK2-8up7}Mn0lw=L#l?sIq7a7<9Tbl7p7Q9*#N8jCpiPhX;s5@UeoXSj7(Y{%`6#%- zxLzvCGHG!5nq0a~WtrOx~6bQI6KY$Xl7O@n;T{w{j*ag~O~tkRG2pD$a2@rxUy{cq}<&KYR@qI3fP z?A-kJsfsz~&_3aq_)gWyI_Ji`7CwP}(=D@Yy`@iX`X}9Cc1zYqzIWJoN6GFWQ}a3b z<@*wGb?2VWS3Z4Onlmlwy3ZqzWDasT*>m%m^xx}Jj5D-m$M=(`Pe8|EjnekP6Y09w z(D`l1!}wsjJ410+|K-ovu?l(QOau7aC=cYHKIwGk_PEb7x>U z>fAKXtoPBe3%JsaG9;TR{Hfq8cip2nV7(rjk# z5czDHS#XnmnlniAS?I%^mm2S=ObCC=G8tb`CU1T^aC8@<#2 zw`CIY_-pu$rE5bwqB5o3wDE!-enz}MkO!5+sg%PY{0KHt zOb5R~?t=w-{02P#Q#h3+V@j3f!I?$Mk~OAcW%*-xYEM_(=Kc|$(zVK0Yp%gR+4~;$ zBsPTlC_keyg396nY@a#fH?gw@)z2hzqOakzUS|$^(i@2l7n3K$nt{&mAEYj*o`t@% z=F->AwCkPUtNQ)PnF{XYZ|0uw3jggBjh!{WRv1ThRC|g}d!93_C)o6drtlriNv7oG zKK7JPX1-MV)U)XNoG%<=9Lw0-$uXHcN`KAgGhahlNXAC&(AavYHHeb_&VlTw<{<-q za)@!n_gWcOv~Z{NBb=pFeBCcUi}ptI&s({Fp$XqDdX3`~rIorPgx~+V?_FVQ;XWISpy8mNhe>3@) zy;kr&w&(eFnryF$Gbr*Wm8|b6ekFXap zef(Z@7yKz0SB1 zf#;3qr|q67rD2|S<=S^RJ5Oa3=BQP6e}}9pbB*OhD;|GMxpmO?E&%sQe93wKVOGr!C}DH+b;UHY3$oL$7x8n@oXqmTC_Wu^G1Tl~a+&Yarw zh|0s6JS)ED?h4!EGvWO#bwTGrga4_}{6?R$)@Dn z{z7HR`ylV1OqhAEQJ(4tNLJ=pUw9bXU5Y;RZv71X`Y=)%_Qxh z(o}lPm$>?*w#DMk=-&;U=1d1jJMyKmJW7V&T&Db&_y5{L?{5oeR4xZc30GJ#-l6>B zeL>A*AE-#z{fT-mx%I5HU*~;miFrl$2vJrIl3(?$g!@-0`s71*3@?-;+FF*qk< z?pQSR^H7G=gV2Xo*&b3}z@-xAUg0MXUY3!pKcDSvIG%syS@SK>?lBeQFa7QXTTRK@ z{~^yBzm$}l`OQ`M!u08xD#AXAeWZ9-J}2|e813Y31#=oxxxe%vb8D3sro$bWPqb9b z&%B1OlpJyWxcc*NyQgw*aA?n8rLC@J-vK^t!?$Vwrm_}r7yU2EmEgS`In#H(d%;7- z*!AQjcNN`vUd4Ue?mRv7Kj?(_d9wL!e_ytjJWP+LC%&!aw42CN!hJB?yo}#Pwgaq@ zq{vI5j5ZGUhAGaJSe&mCCoxtW?r_uCteCzZrcRWQj|z0ir-Byfn`c|e&kW|dw9eY( z^*)F$g6^+C_nIebLjQ^FZ)a>rJmNPQbNA(hshpDJyVCPyJ^SRM<-;AQDxXxYeC}1= zJ~3+f4&tRhEDY={29iJkqw6Vk4r0uJ`K;N*_A_Y;4hl4s2qAt z@T$t8BZAje4*fx}s&eS}f{QALek=H{%Awx~E~^~U_+#t&+*`n0OsZsDX6y6>{v%zd za%j3QeQh%R(QA_FkMZ|${&w*97uPiRm+am8-o#LtZ?V1(dch!XvY5QBl|!A9_twgx z=aqhE<#N+|mOj67sL7|< zgpRh|H*jr=bhb^e97>V)){h|%X&TZrq-jWVTYuHwH05$!z*H&Qf71(HR2oX)@2K z{>WYEx1<5PF$;f`q%D&^5+~7CscoW6rI!K9OnONRlJ5%Ok-JPL!MMlvU(n+u+E4BA z*1TZAAEz>++<2#tRNlXBM)p&!RVQb*jjPz5KBap1H+ffnQ?eEGroN5SnOlpih;-}T zU4H&|Y_Gifex>%_4Zi)+&m2|%ICu_9KIxIU#P?%6N+ZpDXbOA2MYe5tx5!F>qsdlD^EPRTUid2*(eyu#1kt zXkPFi!4IoQ>IBIrLYTvgX4&OEYPvsOPHV zCD;vnnwVeJUI)|PN|^91)OYDe{!n+3q$!69#4n$3-d=j1nN>;qn6A3(oXPl@D#q&N zca)x?_WVs~)PHg1AUmDVf1&K(uC+|GV=%^I)3vW+dn;>y>~Bd^2k9eE-^M-}jVYdl zhv0M8rYH2PK51UE)WY1p4Xwq7J_lp9@$9pDfjjqJP=8SGujJ_`x1U1&aqZLO5VF;e zbY*%ghh7$c`ciTI{0p)u|4F_X-Q0}6fT^3DPBo6IKz8Y`0=)E>T7~{7vtDfC4c-U1 z??wH|U!Vt-bu;BF-M8XbZzsJs36ot9T;gGp$Ox4l-k=k$NUj_)S+KW^b!{VyQ5{D$;hZ)wl!Z--X(LS^}grE_H< z{p&7-ux>8hW9KjY4K#u(gTLlk^Pqax_X}+O0-oc;wWqVtzn#H1+2qGG7WCu%e(k|} z8~QSdH?Gte0{(Rm`!P{`&$;NDrc?}-K|63Pdxf6yhkKijW#={#whBF`x^*@qvGyMr ze>F3gQbPN>jWSi;R(Z;&f1AE_k~9t@U+T`P-4BqDG~>ntv|%Cb173C~|G(~*{}1CU zwG*;4@mz=gLOan+xrcV*cJS&4gm&U}$>wcD?e2e1_w5Az2g$Mx9~W;Yki+`ipnsK{ z>7bp0ZlIL?fAo*o(TlHa{E-dA7vzP_bYYU;hPM`kUs@2pqab`mE?jGg8dIqqlnxHC zj(GhCvY!fTSB2q|X=@i2gim44OY>lgueSKgf^hC1>fZ)mg+KPe9B-%p{PdrO?xG^` zQ$GF!MdFM9!#@1pBH>CmjCp3v@I5sDf%g9n{H*!x znDNslJ!be?vv$nzCet)#_)4>K%<${Y_2zA-oqEd2C!IL%gyWAZE5+epKP?@dz1DtY z9lUq6H%G6gdg-zT;p^*e!rvIPY~|9WGj6Pzr)T}_d;MaXVfU-6o@;{zgl1T3(63fX^SzAAA_WVc+ zE1%dF!Pi>B3j=Bv*IGFW@k%$2lNjV1)a-dz6iu%XAElQU5KAu)@6(HLpP$>}wc zKjaI9^c~@&eB}iMc?ucjm!oHbK>7O4;jdp_->_ir41xIzJdpfC%$_-OR$+*zx5ee2 zMIECr2r1CN&qHLlL3J^FzWzf%$ZuhUxc&pJ0 z>s@@W+dRC_Pkn7|jja{lj$-dl{s#J{!8AFVZm(7RInLpR2 z66tlc=)rG|7TwC}E57PV(ez`Ep;-E3MUT~MmDY&p!A?h{9kbuONVU}{kpJ)r!G%~& z#PGqj7vl5WY>eLP&RI@AK4)RV*A_`Qj*llC$LA&N%Pk%r7oY$i2_U@n7?fLIZ`_gq@;JwFYp z*5UKh$iv6d5Wc={MNvN?yc(WjJ|x7G;g1!L6fSYt|t3c|gXa(>1Z$LP_Wy+z?8qI>=$n{t<~$H$`C^hT2B>>8!S$P48k z;ZIyTc><2+SKvG%dXfC)MIV_zAB>DLm;7)Eo*&)ukL9-@dR};u=xpEFkZ4UbByLFD zl}IN(#*)_D#3vK?B^LAa|MtHt;dyrf-yMlhB;J-tCf<=aJ2Ac>ES~;56H^nHB~DC~ zCVp*RGXH5_H2bZ5-!|W{@L}^A^H*k*=`w3f%G8-Jf_=>A;AwNCxr*lt(dXx&yVu-l zwwgOkr`2%yZ*_S1e+ka=d`>VYL>#Y)o<=^*L+WLWWGc+jDDaQww>83f!^{MXOWY?c{w{=?T;NT{x|L7 z>6ctO~lGj|D zT(Yd8@y5zqj9HgzY3ynLP@9moH?0t|@y43Q`X%qJ6&rIQhaB{i7E&E;s09wqZQV(W zHKu)(h@{`#)w?EAj4ce}te81-`t<2@=1iZ#KYqOPyL9HvOQui1jNeTC7ynI*y@-B= zOSr4MeRX3;TW9jRYm@6*Z5C_*>9#b-%EO0^BBe2{soqrM`i_k~jnagDSf6TbZSP#| z)smbwbN1ZibPGtq>Z`4#yRBELukKwV&Qf64s%dL1i&X2yPQ<+bduGQbXb8E!mgzix zD;N*xVR3C`jo^xv4qv@|*|OT|29?{Uw(g$xu1+P?u(aNm&`q^<^-Gp7gI;{&1NY?H zIUE9BKh-0J#|QGgv+`aIuF%rbURh{8H%~1c?QNaC$yM#0?LBMST1`(|H*)0O&%F4e z3on>)$*c))@O%3iS6}{)bI-nV-kfVEX?KWz6U^D>JgVA6T;^HkG}cQ`Hm8^q4I7H> zZ}jkTbEX+@&M(` zFY@;j{{Dl%pYr!J{{EA{pYykmzpwH4b^gA=-``-E&jP>6-?#XCi1+7!&+EC=m`C~h zJN`@p1i#_KCOPx`nd6Q>e)>mCOG-|Rp3aJ%CWsC;h>I7}i+(5BoJjh!(F8Lt1;10# z&Pm55$`U0BCS*z}=}oi#5B$&+&o1!g?2`RCsg0@d?*Uo?!KFPO4ZEL*Eo(M*u2tol z>Co6so}csfaa(tLZ(DM0+m^t_+sO$0lADsv9bGMJ107M4ZJXDpI%V1*ZAB)n3wy4* zu=T2BcU#Mh>r^+Bldp9z?Vam4_MT*Vy-e#;J-ygtkFAQtALkhd7}6=~f6qM2`^=dC z%{u=(bJpxR!J%Fg9PW5bNxn0Q4{fZyrJ-@r(#q=_>uZ-a;3%Zm%`rdSIx9Di`?17_vt#`$H~Lq{zv5I^ zo2$*XF?hTu@t!e4Kb&2iSUqO=C(I{CN!iJ>B(Y@7_*W&a8Z&%$V)mHfXC%%TGkjcP z+?e6TwU)#F9#5Kk8~OBI^W8DSpE6I489vj@95ehvdSKW?q9>LSr`!1c^&th0T-#uZB| zmn>^sTD$D}hQ&%Rub(z;T1Qvs>WkO)tZrP>+CAesJ;3AQHtPu47jd@TJF zx(L0EU8`0luZ>y@i*KDpf3wkZy38|5UXrAT8g*)}y;d2V)mT+o(@3Z0;)Qdra)|2c z`bPDMYU{kD7mNM0jkFi5JKI{5?VY_BhqURDN{-Rea|{>Xn9px)c7flz-i>N-T6;Ts zW;L#B?`#Aytp~pyOWSht^8BC4fc{iIBQi$sGHSoVL!zX#?6~7kn0WR%=brbD^CxAG z9ev~Xg9GVoqV$BfOa_s5uT_5$g>+2d;G`bOXWA%-VOf$`DoKO2&3_oYKOXL{s z826@R-{kLjpKgFXJso+5S-EuSRg-IPS+TsX;i}0?m*0HVy8*U~rqnmUy#g ztZR+diFltg;=N~0DvbV|y))lx?fx<^8H?ZQ5Ao{YEC=DQbmjmp{mjeQQ|o@D!-%K7 zwXvml^T?ihJk<5pDbLZUlesWs#u^dM`{N(~IDf|Fv*w(A-ucNXQ{OqQ1_Zw)H!OR1 z{Y`qh<-H#eDE4c+wHWp)_5tO7P5yC()oWu5!?94{=pnhPt2;?2y?xb|WJ{`}qd7%) zi=5Jcs4ws0>fQCx-1~(+mtUw3%SC?BvV2ADGI%xCEU9bkZcDXJdnXFKG@SbzcS2@$2b{%TZrjuhB_zMP(h!Lk)~oyu9t}qXA)kL!EO#p0S@{G=eN8%+VyA zf|!Z46m`|JEh?-d`e@8UMst4_rFYHS_~<6AYlO+Z5HG^Vi3wcY)ziy@O-s<1T|)@W z2ybtlk!tJl^H$NjpDE&9`iPAYH8Omk^vRf-)zZc#HMe{q)~m*TshC6?E1s>pg%KIo zO4J2mePWDs-EvYv(uzC-L6x?Cn(L^j_^;M)YoT7lkhf4kaj0Q0sA? z4EtMDxpHZP(cq-3yVuHjc^D)sojNKXznaAkTeH}{Y8*XHGX=gHX`RdlC?}VPK{c2g z>Z+_SRH2AK;ev`kZ`SM(UHqA*Ryqz1jI%d3ka%IOP*Ay8*45c2ew5QRv=i~8{^Y$= z&!)}0;$oHiw7D}KjMG=A*0ptXw5LKO_%T%)-dwu#7fhpMToS4$xlm)*`{VBsKOaN$ z`O{`y5eX{@FfWWsUM5{Mb4iVOLACR{l!(s*S5w zF>dVb>Pq$~OgQ~6oH2V&Px8W^Q0-o@C`l;M|^MZD$J)3wn|_rt~nk=fWOM zVc2%)^3eJiGi}-OWwoe+cG2>yUVh_>rL{LQ$XmWhxcGapF%hoywzalqv6TkVHnj%VhekpHw7Gii7DxOcri;ewSv5gnY)qChzcjSNBsjC2#uYH$Y=z(&z@ACJ0 zkbMc-?gbD#z+5fF94u6@w;SePa~l&ZKD=9EFyY+>@}IIZe*q5ABk0=LC)dTHp4zU? zTzXLM=idFI11P#cHsHqEnk6f5WIk`n^)`cxmaMS(fqsTo_)vG)hvL_{N8-e&fHvA7 z6ZlYkBlr~J0-qQ@;$sq7jyGmY`O~k=f$0C^PA77bzY6~JOY1)-mzWjm?7FQp+0&cq z#q3=FE9s_t{G8Al97k8umYOkLYcEf=w6v}7)ewYUdwXwts-yiwsa`kjqwtol&d#=$ zQ3#sb=+(515}EXUc;GQ20T&*nF-myS%Qzxf`D6a6vu$-3f-}|CLLa7$DIQz%2}!jk zi)Gt~7tu?V6dCkp%V?wYEG5HClLn`tkNCU#l+uXyJMG?d>g3Yra&2 zKH_}x=z=(T_8U`M?SDmt>}V69i3CgSPb8i&NKA=qEY)jRxPqXIW2zn zy}7G3EcDs;HFSU4?6AeGTz13F%aX>-S+sOzJw0Fazx)Q?nQC65746w`ZmwQT+SUGD zuZ<|dLhy6y>fO7bd#|?Pb@kQ${RWK$pu3^ghF90QaG;~F@$@zJ{pM;HUr^zKxGoE6 zHGz(wpbNjr%X3qp*LX+t^)`Ibl4bTCXww64=e`M;TbyZ0ck=kN1>bG^&IpqJ0<$Lr7Mx6bFcuG-~S5c=6F0QlQ- z0#bgpb#)eB?eGW;T@BzS!Y$N01mS>owd`uAm?Ze@t?`K}D|`|v6^yfrJm92yhq*V56|)0XUH zG_lH7rDg^YEOvKwwb++3$(no7s(#|(4 z-1ChPZkmoP^z?SOw}erpG3&d#db?V>Iy52fw-_k8X-6Nc7$w==E$klH$OZ-#1nW0# z-JN8_r?inKgIV;>mbMNn2YSv81O3=l{Nnm$A-^r`XNc=@V`o=$Z>qgB)!dzr;)%GkmPL3cJuuA%(GjpE950PDV@-uW zS=U%U+1OaW51RLl6^sRjUQBVaIwLDvQaljsBI7$Jqfk_sYexxj=$$4rX1MCuSic?S zqhkfzUElTQ$Jw#|-DCd3e9YWs(xcGHSNzi`VdDE`^TZgTKhA!h)@ZEs89r9rKPRl0EA|^+ z55Jqk!|U%}c7uOj9N}uK7GAU9ia9f9OuuMqKu!)1ub+Qzc$^p>UOzK>8XrBq?UWOb z=fbe){pRTD|LZhWS+vgH-IEI29axvDW8cz}Ws8<47cH+#+VE6Q=d3`Wb(9kR)L|;) zPvi4Vvu4oEYCb;R z3H2d%vq?xN9-dr77d(pY<)~YcR7YI>V;^MGLx=4A&07xWXkXRV+rF;Nv$?RNH93v$ zeHWu9yFfikJgf64-_^OH7aF!DWaAa!lhZDAOhZ2Edv#uK%j4OR-cfGNV!dlbwTQVfR_7B+i8MEyx`vdaB!~2Xb zCm-vOcF#j=PmhJEjlEs#Se0vW(T(2qD0@eXtAah(v;8iGyls^ot2u+wyJnqhgRAWX z-DshV&o?rs38|KQSA?-5@6HzM8N4xBz%SUop7mR9$B;dyIyR;izTTckSkk$wYf-yK zRry@Q`325!FgRUJIt=t|`Z6Uph3QRfjGN_WT)D=MV9lj&FcmetE$dqCb7xm0s+i4q zTX2q`_5=plXq5;*k8kwFV4627b&J=)-n6x}u0g8K)qW@_db^+{B7SbBk_muS?p>qn zmMv_>iY*!_#N!>gN=Qqn;NizuapO9xw#Keb7t`WLi((UU!)NK$R;z{}Q!SjfEb30J zUdLFHoK*Sz#Hxgi@5*BZau6 zF@HHi`h79XH_dmr*xUV5>(|?LCzjlqBk*%a1f_b}z{_fUujVuGt&tyvuC-lzV|45X zd+KF21A5IzxN~1_=Ek#k_>H}5G{eA>v*vkvx2*T`6C)Pb{JhkfwwATnrg(^Nd|fQO zBbB@%lOoNrU5uU{e;&<^c|mNvHObXUcN)v_)w`b)@!{(?HtUp1pz{3IBm+L0K?(GM zGJ22mYhSI!Y@ebN#M1SoI11+dV@$rbmKHnrCY0##0V60Ketj2>ppB{bsN7;nS-jm~ z;a3u3>BI#R9TSR7q^VtT>FPbu*l;%yqYPQ5X~Rv-ebI!V2HP_t92ubtWjvd7b}N2PINup z>yxP{rp<=sD}3`P_{h*4c|_ki3Vk#$YFhy(xA^BIj;GtZKDlmfd$3)FI61*f`M7vh zG#*#c=p{Sadz`TZx}FZ!lRMgMMRaUkeDI;W)ZUsesO9hX@`UuF%Ha9BRVOND_ZIov zB(vA>^LDC3U4B;#lfZ1u?_tS~BLpFR6w}^JJ4+D<9VOSbv-hsIWeqeAukCm`cffm# zCOcc&+Be|>+EU$iF^_-m{`AF+=UJU+dny~S0cpxnqRTb=K2QBxFOna~N3q@NkLMbX@D zO}KUAdYIXrU%9pi)kqim1>bHJp$+(IWm2oV+uEFi8xbxi!x?mxjNaqZoSPH`myDrb+r8fhk#?_VaUMok-Syb`=C7NI|&jj7Drd zZEX^oh<-(9O>gh|9x>Ux#j2MMfU;qPk0WyHVfGNY3GekPg=7_VS$zksH_=1u?xJ$a zwpNAX8sO=B_2AfDH>|L`Lpa`shgk=-hy#opG1zz6Cn9XLY6 ziK&HL3nA|8Ywm8I7hu?dNjD39c4A1Z<4t45u6J$kLO=+B8+PQT!eGww_4pBdJ-)lu@gCNOTbnD9=kM_S%d zP_N>yGS_N>Z>QE$bMQjyV=d}4U(0b=j+b|dM$3ly&?5KbYU^>eX+7`|xCDBK?F zu-?cuAwJ(l!X=lLRU{!i2??9aZ znMIEp0i8^+CgV-+Qrq0*ns+uRXjwm0O|>&FeJ6|EUz<}6a;@hCZ`82)VTt7O9Ytpt zxp&v2iItN^BHCI(pDx!27QO9vdAsucEcHY}MZ_dOH2 z+Q^*q!ea#*375#VWjMSq6hC=@|GOl4Q{AqN#ES$4d09({3sj=tPS>Pl{<#dA;G(SodtvXfY*YG zdc&df5%6w+>`lncHn`crFx;ZG@dJF1w-%(~1}y9^hR-{P$Mj=#)<)g-nCba=AzU>R z6?EyYCg~vXjfcnO@IxYBnSFam{sZ1uVq4>LwKzwo$x`d%y=h2|A8PBit0dB66dsL> zbD>eVGa8L?Y}w=}dRlrm;a&X1$8F53@)l(!nocp!AV$t71Yf10ft$QdZe*P4k6T5} zoUxrfScmn;V57;~)@Vuzhva&zYL*M#ZQRmw;Tk{MUV$6f7Sv%k4%DzJ$z-veaS&;wH>+j!8Of3BK;&k=;(WqbJDPKKdWzx~YhdE>b9*Fn6ASs_#rM*BeW^>K*+Kd3 z*0xnCdeF9~k+%aCe$b5E%Pah7W39kHW)7iK6HQ?$emtBdTjs5LWzPk8E$rlKOhLHB zm$^6}=kynkKVm|Vo&xujIXf%dyDPcl;chJ=?nOp~kJvL@5MSYW4C3K5Q;cM(%dx${ z@$k{+TngnJZIAFsy8J!Eh2hvi%!k`+&hqpT^%Y_k5|`K4$!M>1A^+g!T4>*XY8=u7qbn%*>zsuRBH*%MAz~^dGG!#+xl#i%0qyd#C zUTo`;QX7*S8`%C|Yge1=gxS?P=1$*wk=5=cyRT=Hf@UMWQ_XC+QHrGG85OEoA4C9#_PFx zRl5okI#kj8H5(-uH?VrE?nYkE*LE$~=WSOYAn>(~Ndu)8+S?J~(L{=)$c0lb-6@V` z=X#D(SuUKpR+ey?ZjbHe7!hu{$0-Wp=a`SpM{X(_Tj$Hs(S^Svd^Y!h&Py`6&2)2a z9GFWl(9QX?>Fo4+0mEW#gp&vBaRYHzZH44l*a-`D)_Kg_N?pLmEh85yKJMJT@4iOk z&;ooECBo;XbiF)|Pnd@ebap_o*<4xa88+d{MlE65<6PW|`akI{w{l>*#wqS6wWg z3N+^S$e;FkVD8%PlJ7S2*1w9Fyw6w8qr`g?QBU3r7?1DgC~R)ycwKzL{uvhSqisTx zFFHpP&vP6f&r=@Wc~6&)wp?h!LcQJ4zo&cd)>sQyR}FZUMdQ6UuS}13yy|}jehDLYmPh<6x6^nIo+!A-kj%ccv zF5xbg#_HO-h9!%ZR980Cx|kl%p}i&bi@9RNzc1#iCiY~Pf4{M^o_nksZ>W8bPq1}% zdn0={xyIApb!A$+8r>yvwjkM$wp_t;8gH)So+9G7K-W%*g*~U)SXonJMQUtV-dMF# zN8KEr=S3t}S6jWju14fOzFoFt!XIB@g&$Uzp>|t;5`cN7i)N z-jYRR#>HnvB>z~DmqYY7lEcdDYa18URbH?AY~uVCFVEe1e(K?Nv;{$P@<*+*r^8t@ zH)Ss}YsB}oclvZ!)YY!2TV74d1<6L?F3{D?h4PWnQ+ zoT8mR)Kh3|-qM?EM`HNAeFqNDL@k>NbCY0N*HNb<=+}kYIi5Hf!o=gdaB3n~!a7e} zEZkOx=wO5^S1yyS$tzeC^6r(jn177F8)=T7z7KasG%{W>xva4_G9%Wg71_APWI2U( zOS+HYqdHcA&#P;qcYCZGqdFSsJ$?iqkFRg2Y*Dq<`i+GjxLOnxdgJ?_vdYVSGgKp zU#c-&Wn>lR!`U5TC27QwHOBi8@o-mPU45}~xJD??P91%mGAfsNF?)FuZxM(V=*oPOl?i+VdZ|J4}6t!g(~39Wn)KIg-7_+s8M&M#kwh4J#eQ!HM% zV8v%VidPUJ!bdBhF}+Fd&bHgogIy4c@7RvwX_HB#?HSsL)*e)CebW-r74^a~d3|`e zdZ930XyPqCnn==>lTKcn?y}mOL&u~M7kEQ0-w{x~8QI)Ae13g(?!r5B8_za}b{WIb zkKWwH!;2QE+?z@+UU3DE2=|H_fiIpOT}tcBqC4t+JmFnuz}_3^%gJ^@ z8(rhq>;f#k$He;$F?`;{1NcV1GvS-q${Ddx_kS4VHPYBPsm(Evi1$lLhE=$Kmw z!A1Enm0&Lqj+np+JF@Auws$)jdp0)T%J{aYv6l_^y}DX9l2`fAWc^r#K`vK%Z!LeE zu9*Ds@M7{SJ!Y}!)w%_F`@XTgqfp}(uL4uPe1j0*SF3Qjx<)nvD#Ot`lZ4W^^rS%r z%^CfTWerRG$ReV{Zz!JVT<_g4v&-B8a;Wt*^P}@jO7A+wYF}zn}L}$AScJ#}& z)RaVsZ}BGKy0w*xW}6{hE8gfsohum?*tAzjU&!~=v^*SqmH zopkbzjZaTAn*MU{#_CF!XXRIQMe&$-l@*TJVic##dEDaRvOdjX%WYq$_mexo|gJ8xbz~g8xxdBYFJXk}c2pJ1s~jUzM@#Q5=sC zn?=RUIWKQl;_F(C;6+`%sn;0Y+o3%vde&9<+f>gxf&W*_^GfE9(-ze@AeVG zyU$z1FXXjA+!5h!KW)y=0>9vM!~1RV^kVyN6wb!V#%kIYKZI4bti7-Shy6h8K9t6K z(5T_#2hyAC$~#L8U0%hD4ez!7H*0q2C9v1bpWwB47t?d`BOcKg z4tit9nRHM0tVTaMT&#m-<)$}Xx|+tU ztg9{N6D*$)Uc@I@e(SsaDPX%!$rnB}^_@RXv2?EUqCM!*foD7K+{niqYL+a!p7O&p zSZ5p#%1#c;RrVu#cidq=axrJdb!zw8yZ9WQpHdFPXOYQ1-ZGwV;0og*CoP8iK1t%- z(yI@b8}lF+BOIwXn&o?MW@_cpY&ozMI1RW5xD>b#*b3Ya+zdPfya#v$xC>ZTbu{}F za4PV5;9TG!a53-*@G;=Tv!GvgH2eMuz!gWcj{_UteKh+$;N}k=%~ni=f9h!VL120B z(d@Hl6MxIm?22LkQ3Md+zi}x z|IzFKa1U@l@LAwt;E_)q&ED}2V|IM@Xm;`W@PG7Z_7L#MZseK-pU018=O@8`{%E!d z*!u<210McY@;RCO4IIsuO+n7D9nIbgZ2j@k?92<0_r;^xUf?0%FOOy~ zoodWZU<-}mW9UtIzBF?LSZ;>1>AE=)SNh+y$87Ol;P~$>Cm4xoP8d6 z2>5$o>)VF2<(Hs0;0oZl@x$3cU_<$EcIu^s1Lp&e0DFNu&m7L~0PdeSoIMKMb+;lM*c zt{>q3!r|;L;GRXp*~7rYz*FX8XV(vB8-RNj4`&|)E?zR6eF9kauHo!HVENMF?2Et$ zmZ49*FCWhG*)8e?@&R|%4QKDrJ8&1UrfE34l>7C!1Dk+5fxW=}z#YItzz2a-*Pxdx zvCmtH59|fr3)~Le1v~=W4{Y5;{P~0fcK|m79|Z0JJ_~#b_%mSnZImPMS>Ut<@YziI zz?v=41NQ;H2Wf0+BfuwsQ*TEvz`4K| zfi=M202_dOKF@3imIL?Qfjs~l(!<#S;QnpH**AcD?!^ACA^a}*0~dc3xquD8L%^ND zaoixW4|pl?2yg{(>c@t&x>=(2^!W zat7`Kz5$&2EOOMM_iqv(xZ^qMDX{h1$i;%^KA`US+_#_d0IvBV@qxX--vGD2IGmk% zJ^X))o`BmAq6grMhmdPA^8bo*1HSlc%4rGt{w?JIY<-1t06zBWaCYLm;Qt!-06YTh z1x|e(I^cfbgTTjzhO?*NfZe@GzJZ&8w*YqlJAnIvX<*q=(g)5RrksE^z|)taC*V|I zD{ww=7f_!9DLd&{b|0`D_#$vB@HfD@Kt8i;?WF_`q4mvQw9#XW(Msv?zC1 z5Aaf8%{inCoO<-`>;1j@|zcIbT)asXQ=BM0z} zDaW!i-;G@FJeGY7c<2)F!0neG%RXKQKj4eNeKW~-J#ZHC0vFFdmhA-|T6iqGy#YT^ zaV+~4;J!-qw9=S~Rpbx&R4sgfa~B=U4gza{M+6ri%g(=vd;*sO_W+xKM}XUbhn5fz zIB_}py%{`kCve}pkq_8ghupUyKd=V4_!jgH-1XjL*|PV*4>%F{6!22LzaRO4b3aJ< zdwFl9yny?F_W<_;`+#Ll=p9%Nd=}W6I+i`}ebBce4{%Kz`T!nUh1~ClZZ&!ZHURGd z?gaJ$C$1qruow7y;IqJqAE2Duk7X->JAi9|4YwZ4J^*Y5J`U^!4gj|U_XBqV4+D1r zj{^4qPyZlt1E&J_1Lp$|0ha=|uRWGc19t*<0(Su)Q#kNh;9=m;fKxl*2iyak*$CY_ z(LKz8n7&doWPmD)(!9hmUmMhfK!3HfIEQufQNvGfUP~)c{6;0N#Ik! zxxip`G?>GoO?Uv+Dg9epge*5wo+f(uv_3X;MDZ7>@|YhC}&^|Z~)i<+z)I89tQ3Q zp1z9kJ4p}N09*>(4r~JM0rm>N9X$eTcEEo%@4#z-t-uw)USKP5J8&~_C-5HNE?^&U z4{#6g$UWHQ8s0x~Ect8_!EV~yuf%|}m1T)m5cH{$A01p8hfKS~AAK+o&e&EFW zso%iG!17z+vlID%y}+fw9l$2wE?_V4Dc}y^e&B<^L%=71M}Yf)WuK(J0jK^o^>8hG zfEB>)zy{z>;2PjA;2pp{z8t^w``-T^!Wycc)` zxC>bJ8RP?&1D^-h0Dli`0G4$k--Flza6fP<@DQ*Gcm&uBEc;vZ2P_9Z2%HLh0=N%& z7`W@R)Q2wKfs28MfbRz$0j>v@J%qmnmIEIEP6a*=oC_QP)&Tbddx38N%OA$h)&n0U zKfoh@M>z1s$0+9w#NUmaz|FwTz#g0LBa;K!AZs5JVvk42hE{iPKK2ku>_StEO(F?w_{Wt^1GKb+>BkrfQeA zYOt|n3#ztmt8Uy~wRKu$>!AIe_nb3x=SpMQGU-G5_&yq)`#bM>&wJkQ&wDRu#q&s~ zUqyO@mj4>k1GMG8A>GtBAr2Fpye+Be+Tsi^blw} z=wZ-3ppg-jZ&3GdK_0Xm)cqpz`L|&wXyt#0eV{F%`$6}Ej)5KkodR_qgg?Td)t`mj z??69j`R^i~K_jCmkD!Nt59!yAc>e+PftLRf{DJNVt^6Fq8AHB-R)Z!$)1Yb4L!d*T zhd~d5o&X&O&HORa8T0^X=}V9U^?{!F6W9$p_B!GRI`Zd`1Kt07G%Q1>y!6SNX^7PK1F{RQ{~^@AP)4TDaA#z5ylcY;8Ub~`g?NLOgC;;LL3e{zgJwX(ps#^8gN}l>fF1^I z1Dyfg4SE{1`fcca1@fQ~&}Pu>pu0g6pa(#AgS!6``AF`dhd|pvCqUalPl9$#BR`Vh z{}t*b=-6MQ9)OnrEy4$__y@%MRixARp&xYQ{~&&#<+CWapw&M_`g{rL_YT?z(CT@# z51`GUyFlAOQ=q#+_k)(>gXmL)K}&ZdUqOAK2SBSqcjK#IW5frY0-Xb$1+B)H!n|LG zUeHR=!xzoZ*ML@*%+EIwEuEi_gT_GHK+~Wdpw(sb^8=uV*UZlkgI0Ry=MRB~K_@^@ zT{1tv;Va13OXug4phM;J^9MnzFPopA15M*o?bTmJI$VM8tb>Lt=I6&j_g@M7JJ7#g z1^=K2K-)pf*Uir#0L_4&0Ij?R@%tL$g-^Y22Q9yDetr*V*a!Wf`>%)ouS3rb&<}b5 zbP%+>67dJkfR=s(@;A@VM?uG`=I37rJ@f&@a}W5{^Yi|1!p;c%|1|tK^`I?xAss;XZ=IjtokF^Tz6RRdJU@RJbO`h`=z)8Xu0M-%gHO!IKwCkRpoc++ zKr6Q)eL(kvo&Y@sTJm%7ci;ScE2w)1!tDfo2Z$o*^KtE_T=>8WGPta4Kdx-y8q!Va+`~3VV&=a47Trc!~etv!@=>AXzl`z?S_xVM8U}3wZ2^sg?gmYQ?gt$NJp?)mdIEGB)cp$5qaXf3eV|^8 zucDXkw%qO47F}I>o#9o0eewfXyAyYkTaRDKdaRcT&j%X7uNu4vs8w6$+w0y}9PD&$ ze*3LA%7|5tUkiS5$he6i7wJRuX~n=VvGG#4Z?^Hs|9j z7Y2{~(M7xy_>q6R+#GmKHaQ<~X%X|{xYxLZJ6%zYO91YE{5s&TiImlrCH9u>TOH~w zO?zB-uY%m+GON}T>AtvYl`E3DsHfziH;>d#9NkQe`&Z%KQ)~WjGXFzw9%<-W)qU}1 zlH39@!`*u1%~~+KR@Hjy$+f2>bCIjIZ$Tzgmct$3Q<$d_lwvB}`X(OPo)jIccotW-lHFPk9)NfL{wSd<(Zj=V{_ z!**enApH?oLq0tXlgGA@2ZR=uI^vwdJ5VRqp9OfZ@+bP z!endNu#3dIZs@+AeDq%1cTNAgfvZVRagmG6F&=^*ymuYtx)^1p9&7rbuqj!z*Sl{` zUH{5~6&n%B<5N^lYWptgEeWPqca{aaJzb^2%*8#cTwhyt_>Ed9lay@ChgKER>;UQB zh;{h2tb1ks-uS+ULY+I(4~Dw7cRx^kYtgE=-ahgsm&R!3zMlJcL0y(rmRw1)BuXBQ z!2NyOdSfq{K<^?C+m22=O|)g=XdTg7a(CTr1ZsQk&)gU6jrDB{Q*m%@B)swHM2IM{ z?;-XRgqkLfHVUmbQWHm;R0?jCWCS;f7 zzRC5$$z!BXb#Ef!-AJBkG&_K^m?=9WuY3N*)zWBjxnctkf3uadItgP?8sH-H{>vlC$*)kQ^)64~9 zvR0a!vN)+AT^oB=W>z##9Bt?->Ar~Wd)@eg1LBWx%O5>GKZSc+-H1?FWmd>zsvO;H zWlpV!zolBS674JeRdTvbyMue1_H7DwHl{Z=p>T203iXA0!;PzsO@@^d?r!Lcgfn$L z_2K@Y>pNsQ=koDdPr?SeBHazW;l2=+bh_`U&(!q?AI(XS?E|o3dn@_}ZYNCN66$oN zi>L~b1tHIq*}FPsHN)Rw`13z`dVZ&^eF;(fvXxquNROM^yrbd)?GHIo6GQEgF$niP zZqphcMLv?SX}8v2g#PBK)AJKZBhAAgWk6UH-4%d6M<=vI6$gv@ihJE?c3nT9o7%}^ zpXqh?6{FZwzqAYbCSJ((OJVR*;2j1p!nXVOuH3gG*y&Ce$0Vkx7umbI?xHT&ok--c zCrC-{iN1LRI!N~f^h~{&(@ngS6drixxTh;c|IqmougX>~O`Pm)F$&_2Ra7R?#1na` z*UcRpils(9cyywH%Uv_7&1SwuO`S9)6SV}rT~@f)4F;+hNtsT=6Y6!N1)0QmZ!o5V zO^KII&!>@(NN3Z>2C0t?QJ1ux`o=BPAG(r=^Rda0Npmidw&prPKI}aeb=7Dlwo%7~ zwq^61M>di(!KTS$A)=JmXp)G%>CGc`>b%vk8wu8tSOX1u&(hmf?VVcQ(`iM_UTZlF}#Mgx-Cf#QC59VK?iB=(cW zOp5l@aY}Md@H;8aI@aiS4-{|bF~aewa8_ok+Pol3$OC1|3pU**ne7^zDQ)jWd6_zH za>nk4@A#nqUxohv>!>s6=Dy}j;7Q2waU1=SkUcG?r#)FFsy+-j-D zBJbfXs&c)i@i2u~SyX5yjw0wv{GwHtu1w zsplIzF|0x0G&Z1d<^W`7Ak!vemX*Q1kMDad)Y+1Lv{BmNpeLAls3#umez@zAJNq8& z-SO11$&FMfX*BpbVl)ms(7)XkGuaj;#^c2Jg28tiL2bOthF6m6u1C5b?ulm}>fO=z zAceQpl%36!$958@$)LM22qax`qdZ7FWR9n9^4RgIMiPsVL&MbZW+T3_fBV1#rVNtQ zX8fBx79lZ|&sw774h@Yq*o0DsxRC2T;{4#T$<2fj%qF4{qdZKm5ehkiq#Vb%ys8gn zf!njBYp-wLb-|viGU)WLOscAJAbLAdI1rEHbqGp3f-ScDd%0=sEADqSqQyIQ+%%9> zOZ(B5i|1O;uH5YaY#D+ryS{}pA3Ww8ckO-uzFUI*zJcq4omJ`g-Q9gt*Ue4n2xx3+ zYG&EEiyXRc?!JknjCkh8p32(3>w9l#*ZPLaP*{FbPi5xD-W&R^FaBf^mnlRn=qbLu zi0p14Z6VSYfPE3n_SPT3SrOc$Jex7S>2u9U!%U0Jm_C>(?r{fuT|3xYN$Vn6NRX(^?H%;b)HQ z{SM}F&c3`(t2IVmP4F~n>&`u{dewP?Ka+e@W#R04PF}w$$Y$y#!R{Csq{4X#s|qj(HP`U z(S4BT?-*mfXqq9g{PeYcNh1#GDR-v)O3QK@Dqcd zfkUU~4^aZtmgW4^lb?HSd1Wg*n%GCsKbX&^;>OF1mJ z^|{+h*n9%IMxkqp`(R^Bm`!g;ujpLaaQF=r!=p#uM8jJapop;}#q&;@e|bXqAHuMn z?)iURmXB$=?Vk9-JWjK5Wf_{yQBs+pFytnEW`>7B9o>g*vh3qt8^<0p-?I$=j~Gd^ zR4rl|=Ggfh*8N73Ww<<*qHSsao|FaT!8-hW;KkmMHJ>1l#W2W1?O{IwxVNc0c$9a| z;0=N|%;kmW_ht@HBkdk{ra08=>ML^9BAX_UX}PI2QxH4$L)Rd5xsPD3YpdHKs@u5= z?TSJVmjSFr!Ovm%@#5T>ecpgIsdUk!SwZRt*bABxx zYsb`aUCp{Sb4~BMzN`DM8o08~^t)4=kRj}^Y|usONL!D{Q5a$AgR^p;2JW9#h?HU6 z0vpr#(Rt90zs9*rE(d0;Z^jGMrEI3*LaiBovyQA%p2U+34dGF_)Tq1xDh&|G9fOT1 z#ug48XmOkz8tfjM^uewZuxt2lFbBcC_6epw$iSRrN-oFz5HeIARL0D;@8kMGWp6!X zA}4U(lVwbqMRVL;WG1LIbk+WuCXae=S$iPg3co4%^>ID6&FOT~bSF(ZzJO?8Ofq>) zePhMRj?1!B2%3k{)B)+0mCm{99DyV#7cp(hN_hgXXAbuGaHh10?HMiFTe0toQ0L|8 z%R*h{-Is=X)@Ckw1hL4qPKi83?Zt*GFh0b&Q@W>%(kKdEC3qBP>P@H*2~n34q&}s- z$3^2IwEtYaQOxC@bnJoOcKD_79$g9i2ElXVOlu97{pq6G`~|EKuRZl$(loH9-|Kp6 z>UaaD2KMS%*Y6!z^D@TVdF--j$7)vJC8XG*wxPTNw>(W=(bzRkcrRzS#D8EG@9r$gBp4dMk&vCEU0o=5K9|wOA$0=79 zf;1mAQ_dh2hA_=LdD@1lfNf}-Ed-j)I*)XPFizz~XXLnyY_Tl8aJcK)k!99;f>>#! zuy`g;qj#Ov28~bHT!r8IE0M>u`RmN6BQzW_eE|)usADAA7-V-s)?VizYu5N^ey6fj zW_Ck%5V8Sh{}H6h^&-@3d9l|qE+3=tyZ@h12HjAk>&(I4lD>I^aSurLf7tpLz>#+ZsyAmQL37;du|keSC)sSn;dz3 zdI&lO=WuQt7!k_#r43y!Gtwl{kcXOk<0*!)=HO@j4-p59m*I!|ygKUhsF%CH`$;nH&2}EG^zm}4&GQ2+7`6*;gW!T%pgTS&-Dbmx`-h;%>`QUy;dwY00!E}7TF6t+ zfo!w~B31|OJRW~FuS5O52|cy6SG+G$)QHw#|%6+fEaZR5Fp=tHi=xpNZ2MSW6*5A&g`V5>ck zsXHj_fGqdq#hAhF}wSAYks6n@nRgl*3pN4~e$Pg>7t5Ycn(_3P z3|!ROcX98kmyS)g!bW?^c*%j=dsp>ce6Lx8cHM5yHW7Vf^4Q}B zADeuh=tkoKE7)N|+p!bF7nO-UH)8$a6R58?-XM4tRJ?U~rt1JP>|-cQ@UmklT3AA<(2kq@(KCCQbM!~$ zyPd-O)VYO6rup$Z0KbFqn1~ zFs?F@)4rTmH_Z%=9HsXl1zb)y+=R9=kSmjvwo&k^!J~V+h_-;|cktT5TMr(UW4cIg z4|oxWzCrN94!;M$3pjXV;B9c|n*uN9&^HTSv%|0ZX4viERe;xI(?@o$2d@>pKoLN$ z+?kbSYLjh82&{I9Y=?Y%EyiNSMn1Wsc5igwmSBJVKwYq>F|#q$xjB7jsH>@aQ@A(M z*Wh~5G@|zYfQ}mEPc3QVE1&c10uGhS352~TjAycJwqpK8D^q5!wnJ~SwTAmW@B2`< z>au-wZhU3hR*aEo{VO|v$1p+eqX@GJe%tF&e<{qMtzFi!C#HQ}E1Qo{{iGR*w#(G2 zHqrnwwCad7ShU<{#tehdS>1sCy0FgLu9Z72GrR*{EY5lJTLz*$o*}PIEFe=rwD=Bol^A>I^azek)`KAVcjJUBuf3Faq8NiW{yl zekt%yY%Dakd>DzZ!w&oYn*E;haRPb{Hln_B{+lsduK#h_J(xC42AF2eyZjc!8_%Jd zG&Dx+j4iTn>J#(re zoW8hoRj425eK1K!_j()+4lPtU2GKCl-8#qR}#f@h@3{eo=0ozxp_7X<~c@s=B5@CM&&^VNm8-y`y9U;@l zXVBm@J&U}vrKPFAX5$WhJRh~nCL-m@>+m!29G)+iJfZS64PHe8=}LNnwzZ)LI0Zvx zek$?im{k|jS{qVSxg)_|>J<&1Ktd z`EGWGq}ic`k!)1V{%Hn!qR*quvE8}$qK*zAgy;+bj!g9xqrFHVyK)sn?3jT6^=(+Q z0M_zk=IHfZXkc=&3}tU~2_gNHMg6?*Hnern^Sa0A;W2ZF#>pWXIB%p;^TRY^Zt7m$ zRrWG1pwI#nt()S+5~4*zXfCSH(I}fny{@N?>oerzzBiAUm0CSyn<}!8$4Q#PqJcV{ zeLOa~&8D%eu<(O)W+&?Mz;pmE>GbV(E~M6WSR( zRzCoJQ9R#o%7*mG7~9Zxg&EtJ)`5DB>}oUe5!rVV{?_At0BPJ?4Lonax*Y8SnZBIr zkk^m30LZkH46X!zmEd{t{(ys27VT#{?xypUwKU(v(G!{xN~@#;8#+eG^GP|A6!O&d zV%5zE)8dkzxWX;1!_i6;f{5UkL73Zjwz`a^xXxYPYPvyILh_NM-l3)SJf z%%*nT8;5b0DqS2r{6-YIPC(ZIyw_lgbcJna5lmYWruo8iNV{CKPixOPM2qe@1Qpc3 z)!dH$?W@^7*0z3}>tkCW7l&LM{2)MWO-x+;^ZK2EUZY>9elAx9z(% z)VV(Wfv)#=-xBPp%DgYsdvo7Sq5jH&8y8w>+Pw&LH2o~r;#ddmQ(e9f>pkV^OM_i& zyDtg#cr$B4y=8r?L;a-#9xNa^$MI}S3VPbos4LQc71!=vzwZOV&iAKpiS$?PWNzb9w>7EIWt}}+Xrs%uapLIXbn{Gh9B3NWoM+t*qg_uvR*SQ^b;QMZlE)~s zu=nnEDs6e!_V?jJ)yh`(Rz?ZRuOP)^~p( z)bsw#Ee(C|>#Yh7+|+-w>vL#gr;bP7dOKTr%7%+om}Gma`rg-n^T17{zm{7EC*B_L+QF;BJzc~b1TPKVYlg%5Z~#32ui`xHA;v*LAAETMr(&(?xUxcvTKw6ue6CC=PVB;nxCQ6uej| zfIRz=|J=Y1Iu{Z@Hc35quKb%p!F^OQ?A+p)i@*wcTu;-XbqoPr8MCH{HOP$w8_k*` z**Ar7Ykns`9<$(8gJ+M28^-z_ybAEvgQxKzx*q>x;H_Kbh==XWWMA>ih(rFEg~Dou z-wl71Z_6(5YQVGGk^-;V#w&;4{owh*qrBCN{2T;72EO)ZKJdoDYX;AhrQFykT|`eL zViraIPC+JV^XCVzneXcoIL#LMz7Rk^% zq0&pp?1sz%$Vi)<3;PQ>JwuQg_+#|1`C(z5lgDn&;J*%;8OVqp-j}C+fpB)5R^RK| zI*G9``h(nro;JH^f|);T>vhq()H>*;_gAI=MA|CZk3oBqTmOOkAlx0cVW`fwq3N|+ zA#)Nk6KsEOk3P50pIfz;eY8r*4pP{7CzCymsn%1&gjOm$ZXJW%FyzP&T|WG#z#9W^ zJ29jz;CW6Opk-~RcWAj^$Jmx+HfG1f)cr!J)eLS_&$dq^hN&Si($*#%JAoHD+6 zjJO^C=HRcL{pI3}HFYG8Sx4Uqx80D7;yqLLwaRe1sMCe{vxy_Zq~nY9Y%QPNG^aK> z5w_5Xmv8wjC!b6WAASQ-O&8Ug0WqBr#rF2$H@N&Gy!fACjg9(3TvV@0@Nefh<_28; zc}uozCY6a%giG({ z+PMNi<|es=D0pa;_OhRc65G)eS7$yRfmeD5+Q~`0(~j-uaXO8h>S$%T zo!VdRPq}wPKfi#7h~mhJZ3`)Xpr&V*wwytRMuRF>zc2*YO=E>auzh?gTmN)DvI_@) z+*DWIeB+4e$IUT@8w#cw7m!isc_R;(1MW@CKjZ8qp}}R<#D~C8f*j~ zAi;VSq}Z4!P(txMf8bN--@cD=9x-Gs$y7(PsAv|HD8q8q17ZRE4#VFm_>;9}lTT*b zzOKtWr7jzIwgdAf-#G{2--lmC0R8JpSxd{cdD(oU{M-PUlaLvdI`7I()j~8)YslQx zb8}y5g`BPSzB|{qK;Dbr9Q-uF4-Lua3gA~-i*^jWIc@`a?}u6t^B{{k+2*1W zl}qrQd5H8zp~L;pvMvBjycY1H;MvD1?cg7v}(cf1z`@rRuMUvP$n+dy7lqM0f`LQDsbgEYW=VxXws$q6#Tv+BcBa)lrvS=?xljlB-_h?HDB@F;lwn!%^{{(a(6U~``wb^-@iXJ6 z+@kiAtQ_?KGOs~CHix#W2*AEqU|vYDiRRVjQAIS_E_z-N;gQK&=(49qX?mP3j8J9z zzYy9Uykqe-wnf{}^oph~_g3ApLmi}JNnLKUC#)-{CXXZVzX9)HH0>O8Y^NW1uYnik zd>Jj?TeI(@!OoAQKOE|+?*34)=Z?(np8eleMNG-%oIR%!#e=bnwwK- z1x}xEXWmytdB3#DOxx?*H_d)YoFK!!LDs~vBo)yW_ueQ3qIM0&PfeL2;ous zrVwWJiu^R+51!w_8v$=UcvO$*BER(B(g=9k&P2hR1}_X=6Q@OPKiixaq!dL&o}uEE zYt^W+v_l&*`CVO)_HrfOyH|_=q#p8v!r3a=NDmK((w@%J$Iz|u(ylfkl<)~XV4Yp> zGIJ7SpbU7;0L(mS1Yzfs+&Uye@Mio2d#sD`o-PpV@tE^sSkx}F>hjNyQJ&61wga;E zGlQllZK5Z^u&=ZO_VU>&vNJ$KV5;rZ@$qtqc|gOsaa*8gM9fH=4_m^OwoB+*hhIwr z@^uy7lSK@fKQ+qSh1_?;eGu*ea+h`ah`3X}?uYv*+-dwqS0#QU;GG0-H!(sIXV^$V zV?Jl*HzYR=xrhhv-Xb~2SvtF1Nd)cjS;+YzHw3vj>oaxB>{DW23DaIPw4iWfkegmY zj>>Klauua`7a-}YD@zscy<^|)!A^hrgQ2e5x^J~__?t354EY0)FClqcls<>R8+P#M zox86&cqhRda`3E;NM8q!-qSni;8lS);NWclFXP}v!AskCl;@pssfs%GYZ}*@HVh+GrmSXWaq`xa4%n-Yp==ADe&Cj zE#`;pEpNma5bo5r=h=(%y=GRxBgO1_`f7+p;Aa>7%sTzhTsId-+nAHbxJme{F2g(Q z&cUA#vLo;}4u1jmXX1^q5p2rM?WZ7f@(ePRrq(9R{nq4{r*iNt2d@ge)6iuvcN@T) zbMT_zopSJ6z?*gO+QB2+j135m=pOK99CCx;opA6DfH&>nje$31(^mz3Q{YX27soyF zQP-8S&#TbLjS32dUDAZ{FXBvfmoDcJK~S|LbaHBcyRBxg^{xFU{AT1}^|!3Eb&gkKYh@8^AkFdhTL1w1P+JMRO8E ziQpo=6Ob>xEMM0I>%jR|H4cvY2^0`vd%uRr>wMNbkR9TX+-ZncUK@@Joe(b9?h}L zgQg+gkHnz@voSy?0`m8d7w#xiYmhHP$9?lT2$%AEeH3|hReqTYfOiNyKiuisiC;5# z)8L&ZM&2`N4Rq8fIIyCBrFrdHEj^gF%{-Dud;i!hr07yEoZ+Fg?0C{Vck4wEhY()k zYNQE;hl_X<;Ozph)Nq)061;XB&(z(!P+q}Hkes89YqpJNsvvi82{{Tk3OV<>{BT>q zv%vFH7`RBT9lUim9*ynxfL8-vhRTebRcfGf40w*s71imc%v#KeC7vC(L3|8;2d+W? z%jJUSJmlBBBg*wn%=;p=n=O@3l<3rlj&HCon|8eVj28#;PFUa_fE&ph!lZZv?#6iG z`dnK@Jo>hy*THKAuhhZY1zrhw_B={~=XS{L2hVcwM!-Am%Y_?<$m`(EfmcI~8J_7g z=lknv4>U|ijY1huPiZafi`EWY)L-JlkvCc*z>)+PDbt9a;Y^WPBl2&>{IU{#qO)F` zxh~afIv|moOHrSeL)@0rcLbt0<2}AG6LxC9oG!|}l^}bFgv#`O$d5xlL-Jem`!O1O z9U^`2!+W*K-BE_Si|o&YVXc{`+h*Em)~5T zW1LPKJTj&;5AN|W-^_gZ7XE$sRo{z$AHaL1L2Pl(_SqC(3^MB>qhlE2?F6sN!ApWy z>ENZo^Er4!;H`7;4uV(V;EjV3ygj(rG{-(l!z$kV3wa`M z1d)9-3^e1#3CO?hkT>Hh*-`X_bMh32k{I&q*8DiE1Fy=#qi>K@I(YOw5+8UpMx)E* zKX@A)ay!ARaqyDhRXhBq!HYWNhQMob@D73(aqz~$3)^@;*mDBB0C;{f&feZ)xIqQm z#Q(m0{Uo~%Jkr0D%1E89ou=&)t`Rg|%hnCj6NR7Mx8?U~E#M^`yms(*Ie2@(Yj^Ml z!E1By4uF@i@v0H-7!>j(44VR7)<9K1I0lHl3fh7Ry{Id}u$wL5sjqR;O4 z5O@j5l~NpVQ9ew7x6{V+fp-!-vXAPMEse6zvIM~PKEU=4aJyjoX4JFiY#Z^k4SzT4 zo#!suc;}MAt7#jcqZvBJ{jwe|bD)M!m#dYsf@&z$RC5z9v)*{?Z4}8)7ilHG_@&`L zbqC&~&+GcRy@(J!YWzGsu!jDU7gaTLvBrwyf!Vznvrj=g_q2A2gZ1Xw_><6E@nL-5 zg!Sgy{yV9^cYPM4!)#%>hgf(ACbkMp>B(Oz#|aYH>BBFu9c|M`vA&FZO;emZ&91{x zo6rK8amY~IR0eA`rtZ*Oo1S?pgOd-x6lCWhYs#k7RkT}q`VK(GSF^M}%I9gwMj+dU zdkx#nM{V_jqsZmP`ykRE^7iso30}&oe z!FYzEY|83xao6%&13rBtX&3yQA|b3pQ$FUNU$Vaoj~>U-JruO15U1}bRex-e^~PLl zg_XxUZBGGk+L!J?xbU}u!_;wUHtlJ? zKh_`LW_FpD6l_?9cQ=M`u%v;e&b4{KPBt& zQf^Vk(aZ9*LTY%^8;~XWcE~3oAH{uMxuoG1x7RY{MVdoo2=arFPm;X0)8>qO-uv*- zqnVU7_D{jjN%%qcM`37vr)48!KXrdv?@Hq6?*jOC3Cn8U(@8c{PMg4A519>+Il$?m z`qIVb{fu;kUd!P#Xx9!OdGoEeVJR7@^GxKJ%s;4(?1H|bTA2p{6E6i`IGAh8sm$#M zF92Q}?lrAUnalOV=9%-?A-4x|2T9H`f4)!W3bqNZjPOjjB@d&#hH`b6(qSEVCE&?k z(Qxja@nL!kyjjbZ2Y6nvMV?l=G$BmhwLp(QyhwdSU09@#wR{LW13v@sLv4Y^*|b}Y zTs%nTAY?|)AVcXn4VlA`vA1WZz#9jT@|3OsekG3}{&m?oX)bRuH?y}CwMWb$H&fAZ zoTN^Zm2@;gNBeo`pmI*%DmwukLq!0xr)`d3$bRMLkhs~$Zy`c{4#7{n0pGi^`7vj} z>U-Q9Y1{jWH;>TdS#^Md9AvMSWi?az*X0(Bi&2@F>dXMtqyeW$Yd2_p;JkSL^8YtMmrdVDAmo^V@b* zX`XL`^faIinl-cx^zPgQy}X_ydP!xFlm|(1L+=fb(ZTLq+m?IhE5Evx-ujAH)KlEE zFC~AZ_lD?Xxc7#w^nUv0$-8@RpfoILL3!VtonPegA7zyGgQdO3aV>6NsGr#YKke|- zj(c1Ck}igyZu7!Xtp*sE*y?>7{Efn&mPsGHcYt>gyg2T)ymP<8<(p;-VAu9;2pqyo__O0IQLuR*ZUai9^}eN4j1t%!5g&cqws6M z8vw6@%1^Fu$UaT}yfmEDm$pDQ6~(xV%bMxS&7Lz3bD5)D=FzQesYZV*_wd__-+uV7 zz8hYDVv$-JK!Z=c69*Ch4)>Ja8LK23CRf{vCe-<(;YZ}E*Z zXUB+U-8}bhkq2#Ro}{x6_u(9|EM~_h@$#T3ubk5h7Uexc^a^;h@ZRh4BQ6Q(4{yUa zyKt}hVA{3ZyP?eJm~%wp4?olJv&)u#=2Z_N+Ox+y_3qB!v)6rjGiEYJX!*2<2B$Uvpxn&E~AW_X+IZ#ZXST-VGP;{m8x#hdZm&AL_cJ`}Vrb2YdWcN;uDR=06Ut zWc##Qdb~vhd;FOXl23DzEtkaRg_1egXmptIKnKG0Z%4n!an$}dU6d=IJGdrrnH+(9 z>4W)mt=GY;0MA}_rx)R!0?+60TY`eN9=sCD7hF`v*MV0BUK=rFOoP0l=D>^}bYMtz zBm&ulL+5tz+QGBilMtSdbmAhvyTRKHIUg}_ZO1PIUJASkV&ujy>Ee2tn9%#1I5lkD zxpRq-p9nMuoIH5>Q+7CI&QHuif9a0wc+J#F^Dd-;*eVkVEs4-Jim^ z&YW|lQnSg-;5Z&lkR5_-3CZH3xW&QS@8Gq8H|XGXfH&aa4S<(%@P@%lJ9vk{OF4KG z;O%knPJ-9r;8{;0?QOhj*i7HCOoI0sMZ%u;*#Ecn1$hgD6j%D*<(y5Ii9dL!96b6C z<}7%WzI2fseG{|vp&V}=c=UbDD)1sCgz{HUFM?`(>ut&$az6<7SOIs^IR*C)xL4qw zF5=CCmj=&mI6Pl+KaDg1&pab8@zwLPwv(~;EpMZ11N?1|<2!kxD*ze=ulixkO>J$J zd6!xCEWH`QWP4*8Eav)V9*d=+Bm4;B&F#JEi?`5Yujp4@cv*EVm1Pt@9b3~{_%j%9 z8=LWL`cBv}0Ub>(h$ls~woIR!qh~K8=}SAyYr8M$S{ux)>G9U~t?n&zMR^azY>D7$ zNPhl*w1}SH)W_`TDLe8{4|ck`X?#zw(S>@-#|Q$Qegf?#+idESi8mT**Vn1r;K5fC zvTcw}JcT}n+gN!oL;p(iib{T2rP(K>Hxyu@!)6&q?8m9rJ!Rt|Er_@1mLWZx_cSTs zc%jwsAbctZbFg9j8CgRBrgpdV8ML3zqD{RR47BD&VR~^!u*=)MCY-*cb8TH_bx&E$ zXhRZlpE6uT@6{lYp0dnpl5gts^p@5RT-?8^cxMrM7!x!do-OQU%c`s&JP6%e+UMzC zHE?mu*?A6S{oYR>L8#9{n#@i$s5bL5&#WyToOS0!AZ=B?G_cR%bvg;U{m@x|tOvJ^*&j5*( zo<=nBp+avP((qcJc|Hi)tmS+fHXZmvzU`-k7l+MsQCnJ)z`vIV1i zE^-IJOLgS)#=u+m_55(Bz>9%L@uMq_-z<17;0@dJhz5*iKyLD=6{E7;pw6@9=mZ8j zGDu#S;27%Cxks}O0Q~{{nm>(m8sBh~gKQY){bV%d%QgG?U4mK5$Uw)2Z=#KaKFa6p z`k#4c0nKK0*iMH$^d9pPh#!XE6Yy*5g|0=>^JJzCFkJ@~D>KXyXR~-se!ZVT|Mk=O zmMf=EZXRgrlv%lxC65R4!lime-!YE;Om<9V{F<|&xpf*EGGb`Yz>%w=uagVZX%85zO0_9{sYJ7tod9o9WAmR}=iU_MCnC?}Ge6 z$S)`TN8q0k%TN z$v%W>8z0tDcV=c0<~;*p>Ls^QFZqfL**uuo)A)%BdR}iwtzl!XlU&#;>uATkC-wxw zrtim}rm#cuKD3QA;0e;OF4(=M%X=3MeL^&9qpbyuiD-O_hY0u`>4OVKdGvgtIU}%` zfR4FnI2bYN(Ud= zZ0X(HcV~aoz$TJ{epmF3!~AuOm65u$@`191auI1qdHgo^56X@0Df0~x^FDR+g79Z- zja87|tNtLpSN+pwJZkG*7rs-S-ltxV*EgA!5_}GHvwn@l^{d39$3M69S2P^wk9H!h zJ+A-34j4)IS2Q2Tqozg<4l%uJD17snI^Cl;_v(#)`$Im5f>2rU@mjU%40^LpNFKUc z@Z0q{jGulR>smCvmiI-Pb!)TM{X&oXF51xLHa`1eNB&IZ)*g54=ob2iXT8in*ORL- z>TAgUyNB-3mq7IigcJB(IX@=tt-i0@jFNe3mVN#JUd$TFx|cBSCVyP-bxq3kh*|$3 zDfFrMg(2trJ&eum?Sq-`Qe_TOwQk1aPqyc-77SaPxW)%PcnMuzjdzTA&9|HnAiPn8 zw}IP|+&h(m^uSRqeX`JeKO#sEAw6X(DjzRJYVz^Yf=?9TD4;y7h|kY0ElpPQKD>Fb z(J066zKx4lP3OZ#o;V+$GB4cG$DrtmCe+caGJgK^^O%qRL3W?p>>Jaj6U~72{R@>y z|3i=qpM~5>$h9vaN8^|BU0Ab%9LE`aMyJJA9#nr8wQWsI^B!GI(7D35BZxRn;=8o6J5kR4c?fI=O_Lv%uC`vuk7T` zi_mr&n@;lhh2f|C&-2$SV&M5~Jc`>+@M^#_b~bR`K=CngBiuSJUVELwtd0z&G4~8)UWZH)_Zlygm$`U}G|yoxAh>S)okiaV zVzymc3N`37He(&zp=0M?VEJ{!^TE`%C?EjvuF~~faUw=TuPU;g4oJsI@FL(f*>s=`m^w^-3N>XWK)93qx-Y_h$nUYqo4qG?&!Xj?S$b5HgJh~8a~d+Q;oep^TT~_hb`xYerm$yK zlqZuevbB5LIVJFcjk`Tk`#1QzMVUpLHV#Byf}ET<6ip+vnNY&bmTpi*Tayv z{t{`!^0~5Y_T}x5)Mkg5<{b#7yD=t(zZSAz(=@woh0W?G?8!(4FPo;Ozi5L0p=sF@ zxBE9sUS@&qv*ane`GH`<`0a+j)L-Fz42PS0M%_GPZ@Q@_>J4|jd4wtmEj4qj8>quF zAMNo_oqip9X8wAS`iApKX2pzsnesLV*XjQ`MKTh6#CU$LXTH z+5p~!gBJzwgoD=t-mHyBI@-ZI4W1A8NNdy2={SkpGfTLSEa5&O?#5oxuYC>i=9chZ z@fEhOkpG%9xKoraTo+Q{LJC|+feR^cAq6g^z=agJkOCJ{;6e&qNP*?1K-3)AfN!DR ziWNpx`;Xj)CWWg0_Dk4Zv6KGgJYP=!QaHJUUf)s*3b?11&|AP8-YHYi#W)N(^wJdj z-MEGwdY3Tctb-hJ=;ho!YwraGM;&@s7L+_UhcSoVl5_K3P8jppto(LI`RA)QR>0n*2Cz&TFQE5)+n?4# zde5_BBns&*USRero>j*;#U~%|!Gp_4;yAJgd9psf--lghEe3^QeswatM>h)P@PG0<>cZy#@E3mZ;DvhhEKREuZRLvC>rq>{Ry9GWA}s3JTECCG@I&PWq}wq=4Ru z0(#Y(Qm5Xf(qVR)dY4LvlJfj^UGuGwooaWXbf~$5^{qzw(9a6cKb-3pKJDiiz62B# zKDCpj_|1E)B#0FkKD{Tv$je4zLikkQSw#SMIM*!vt8veKj=_-diN}0yDMo}(>CSxq zKPLPu!6$og`r7>0{aPBPu|3vxc`#aj3#VC~mze3NwAFWLAefC=eW@MwbSF@|b? zW8)h`XMdmViupOc=bmAz`IZ*Yx44gsd+Nh%zm~tjL#%(|Y37#%^WCH3KJC!2{=E1m-}hqUj{zu=TyV_Y~f!ne9c*})Sn9QDb6bI7e4K4 zQyZY=z>;~-^gSG(=r*R!_cFD9z>>oo83z(feV=CPe~xM58K%i+nGOq${;J>}rdB7@ zz_*zuV@&;zFm*pE?n3vAU2&lap@VYHBPzIJJCzi?TcLYk z@f?4b%|dreIrIuH7driC9Ihoe(Q)Q-d$#dZ``;_^^#A$08&8ejdo4f5C*Iw7 zzE|5@|37d%Pe^@Rs@%GksGmP6@tj+teir>FiD&X_=hqHteri2^uk@d(A5*z~ugCM< zD!1?Tc%E;$)%d;F#zV93a=HCUiRby2+n&*l-!an}%e!0VBVT1Y{uRMHnR-7b zxWK$D`p4|W7su6edJ`nKKUDuyeV%QJfnaA6u@jf6?%)18IKl&Og z(&w&5)-%?9x$lepw9ZZ!t#8vMrQe#_!uH8(j8##|?zEmx7rR>46%4JC=h-0TM~|_C z+C7qCOl#)(&0inP}R6l z4la~~3+3QKJ-E;gTxbU_v;!B~f&c970F`mNyfVLuf1YP}e)FLSytntWj1ymF8vTsS z0Kddkrh(S%7sXwkf6!S;%z*=6V>$bL$jHh$Bfn5?eXw3G{(;Q|Ncl>A#`@fOE3q#7 z^rC-M1RQb+(F^%A>Q#M8S4hBx^d@uhT~x28i`uVxYsEg*n*^qx%5{id%;(RjSM@1f zN^eT^VwSt8UR}>neM*y>l2SYKFFuj+BqT8XfxLjq|qWJ`xZu@~zoMz5x)t}8h8 zDPBtNi0DOpjb8P4zIw++@1>%5DSaC5QufY>-pd_&wY;bvCtXUfCC^)7J;tPi+N;MjGp5qfmy+SsvO&?*~P%hNm=OeC1x#qoA53+=wSG`ywy`DxL+p@80i=yU3Ima`<}=%@As{)H|0L;<}d zOV?6*o#{{^_I^_IYCN@^1&r3E^(G-lKeg8{dOsz4wS1kg-iYW8h+fsF`oTBXQt6O{ z6#dlRVbNP#AbnL(!%_MwbkJ3(zle+8V1e{quHJUh8!C{#%hj6_z2O4syIj3PqPNbW zSJQvFdPhZXy+f~-idNC_{TSc$hspU9%mU>ORV2s*R zBJIPIqF2l3`RetF-lrVtp!%03SJOFAD19CM1%*#PwWn3| zK2tz1$eQ_3YM$ae~K;HEqXOPrJCMqr_xs?9@;(_ zv*AhoO^dx>7QGr@&8Ow+ofExZ5xr{9`ResbI($|1sy@}fTzjiTZ-+y#rqgou21GB8 zCzu+f_G&s8)GHAxly5Q7`*qQ)8Jd**R{feTN^2eEf#m6@@oW{n-zcD0^*Cv*C{TM7 z&^ct&n-sl!3g`_$mM*8>rN)yP(fiE;dXq-$(t4fsVpjBai(XA1rFuZcX>YBBr|Cf9 z(@*^ki{2j5tNEnmV!3)pMK6w>m~y6eov+?;(c3F}RiEl#uDvs&x6h$h(`mVStsiiT z_B-@yIv3O{5h|2#6{2@Q^s1dowZjY`uj$h8wEQNeWGCT9KlN85diNI6>w_?^fcd{r zuO-h3I?JzD^zL({gND0Yd;OyK=L_lev7zT`Z&dUSie4>WTHcmxZ$k9`LLt4&v^OPs zzvV~=wR^et4vXGjETngt_Ku6*{i0XP=lQ1ZtmyrvLVA~JulHZs!e4fzgW6p%eNF2} zb&PW&Y30|qD$)DxLV63?D|!pnw}9v^8s+vkfN<&3akS5%h5gV{>o76V>nfmE(?iRh z(pm|xPpjXpF^(kE{-+ZEXRRO)p z0_p42>&&+r(d!YtKGAc&^(`uTOAF{-ZoajO-qi*4YI-{9Qu&q?y=4XT2F@~llaQmI zjt?@TcTEAkBukgm-lg(wSoC^DZ_;SVh3gaS)VoxD8xy^k6wtfee47@%YYXUg+NpS{ ze47)!mln_)D3A`$^i4vJewuIIIgV+00lg$km)fb+sn=QGszmQ)4!xSLKBIM^-lg)b zM)Y1@K(FdoJC!cA9~%+9R}|2zdYp8r{n)tZttg;3P#_&%mGMKN{;gf~URgkI@+|c_ z^DQNMuM)kMCa6$n{1rRL56=1gkm$YIp;ybH>T%Mg^p1(%bq>8wJx;uo-Wkz*jYF@d zN5OoPbT5=|)(<%$uXX6vbXcz53ekI=L$AhrxqAJg*XPiy>5!E8YB)+?6~3l}vz$dl z@AVG7nhwj=8yCGdIP|Jr%hlU1dT$iHswZIarBufgT5YtQOct15WJGUe0li7l?-T0O zTWEeUB6@EUy#evB_BpXrZy|dpMDNW7^d==7pHQdXLiWyy-uF4uLCZrx^r`($y@l-c z%KLGv3g}IWUY}5>-a__PiQZd8uliT}0-{f`Q*R-A1ETl+1@tCGuTQ8`Zy|eQqW1%i zbO?wZop>sC>Mdk%yXakCNUx6rD5STLy&2JatLRn#nx4zGcSQ8wR!HwM?VS+4A9SRH zmfz*tJ12V4j+zlc(&8(tcbWE9{5$9H?V?xIsF~S?hyVwt&Aqi$dsZWQ?KWdd>ejXSs4J5cNecP`LwcV zrE6vJilP;+6~*o%x655zTvY5TE_M~UT=cH0wyj3Yn%>UTcNbGD&NS7?wCz5orO-`R zBE~o%CwkW~+lo4H{4tgbKf?41$eA2>oGbp1wu92_yV235|sil0Qt3oi9`Lns^xmui!=()+<%kAO0d0Hr~=kCvzss@!;T!^Zi(n4}E z54A3MA2KeY+fZ%wXU7*w!q3V3Rhy5PQf!UB!PG63{LnT2Ci4TrZ}}c$zffzqyqx4_ z@8$5Vz)FL?+XN?88C<0}%I-CaR^E9%Wpmc${%S@igPO;uPD{uGq`rrxee!{Geis%Taf0!f;w0l4#VN)m_e=PL zjH?t6GY%*oWgJ(WlKfOW$T*{TnDMaUQO0A6#~Dv64qV3Rqj;L#D;^O0W*PexTNfGm zfMPG>h~n8Y;~rP+WA}t&i}Nq3*w5}M#R0~HildB26vr8lDNZn+Ry@w(&nZr_d&zc* zPl|Dc;z7n$iia83C>~`TQS4>=V~PhkymrOoEZ?Dcl-)Cmr`dg2@hsyp#a4+)zX`=j zF5feXQ>@Q=P~zid`3l88#x;s9u0Juwe$MYi7PEYZ;sE18#nIKqp5ZKJ_t7k7`^FUq z7|$w>v%GhQ*gMVk`xFN%jQ$$M36_s3_OiZq#YuKgDNZpSQas3bOz|+|X~mtZ9HQtV|stk}nROz}ADpH@7}cuujO<-KvS zcbLY zMsb4WM-)$Ud6`z6;`E+XJjmGlq=Y}q>ETyA%=QKpk1~!awm7{KioJ|eibpv=h82&q z|53%$jK>ux+5Q>DUa5aiseLT(%VLh7U$Irn{f}ZVuXi)WA}E&e#RY&2RS`5 zisPK#BZ>p8Zz7A?|BPab-RBgiIDRGaoe;~<{ew?&l>G-32W0%DI4<@oPB2a>PBI== zoMJq#c#!do;$g|^&5`JRmBWA`e>gPfiBRDR2Sn$Jw#{};Zdu9cHL2yY8+xN2ID#1zdUnBSxagV6G;F#c7 z1-A);4cdv5&RXwMpWBWSyiNR>7YX z+#xt9ct~(a@VMX?1`F6p(1a}C2LGYm9X2BzZasHj{ z6I>zgbAs;?T=Ge_5Bp(8zDn@rf&+qg3yunYOmM58yiR|p;vyiV|#;A;d= z3%*wHjNt18dq2hY`UF=AzFu%Z@C|}n1>Yz*DY#N_M(|C7M+M(3ctY^|1kVZnc}ZVy zfbAI+>=V3J!2_6yrvf3;73xa0_|FXz? zYuVm!3-${h5*!u$D}q}E{};g>f*%+CLxTT5aUT=>QE{IZ{F=DW3I0{V-XPoaYl5o; z-!J|Hf`47yV}geTw+sHSf-{2uo8V!=zae-`@BzWof`3!66=Hk-f58=kza!W$ctmhS z@NWr@3Em|3w+jAkaZd{V?}9Ue8%2IZ@Ii66!fel%#l1rC?})o!@c$4T5d6D>V}eHo zCj@U5ebF0Pe^_u*+<#BxhXuEb`P zUlN=W{CUA6f^QK#Ex19jRnOsnSM>V?|Bc`p!DS*J5&TEu9uqt!I4Ss#1*Zi6iQpl@ z|5Nao;MWCD3;wEvSJJ@tbqMwe{!@{!5&UO@qk{ijaJ%5Y6r2(~EqF-qUkM%+JT7=b z@Lvd?6Z}2F-U!?GhTtl}HDYf-@L_R}2|gk?A^1(f9fIF4{s#qb5j-L|DtJQhU4rKX z9~FJxjcnh&;$9_qLfoT*C)FOo#{{PY-zWZu1z)P+3%*S7tl;C~zoL=D@6qrDw+apj zo)Y=E;3vhsL-13AhXg+@cwF#K!E=J&((pHN_#Y7W8o{-KV}d^=xLt5Sa7OTY!J~rT z7X8zL*SdK;U^Q`gr;8c;1YaiZ0m0>hC7hEGaCb&s(yWradX9T|^;g1Ne5cdhe zLBX?v?-%Tia`^WNt`WRVa9nUqa8mHSf-{0=B)vuiKO^ZmE%;f%)?FOlbDG|Q_iB0z z?iKe|!T%ucNx}b1@UYP_mBafN!G6J~1jhvbKyX5ExrE;#_+Q06BlzD04-1|XJTCZ$f@cJO zQS@2OY)?YdL-79<`6|KxE;u6iwBWel9|>+3{Epy^;CaEZat`lq32#{3Ex{9liv-UK zu2=i+VgElR*e}>6I4ZbUaI4^rf|G(jEjT0CEqGY)D}u)auMj*f_$9$}f>#PIxtHy` zNU%?EiQs_Xiv`C7e@1XZ@G8L_f<1x<1(ymQ5xiRPm|)vdqq%Jeg+A`9!v9-u_uuxR z+x)&Kc0T#Yqqp91+lQ)sFFy8}+x`CAZol2{yTgCShi>(MGvY?`715`&O|={B1^wlk%S}Fijn(m` z#rWRrcSiE%FUfviB%i<53dnay^7)rq`dy5Cez{d8-wDa*UzYuTNIw7a?0aYP`Bzx} z;fw4nb6=eON=VL$QqgVw6Pk(qtHi*C>FfdDW##y0F#|l7Uzm@~Uzjfy@KZS4i!DC} ze)dcC%sBG#x-;tWSSd$2c|YXIekXsu@JAi;pE5=)Oy{7;Tf_Nw#=tMaS6npx)s^)u zEGI2Sej)!GqCe`;&w3V?L#(4A+=YCWUt4FdsidzId$oqV}w@tljzb zWwd}E%;y%>k9p3be2m8z8)@et*P`*#zbIVq$oolUV zO@6$v4s7D3d}q8`9r41v?u_x8Ml9?X)@e<=lwT^27@r#ctjI@z>H3E7^}FlNbnq95 zSIx)rOVcMV?_Fo@mbD&wsGiRLG;VNVo^37-cdkD_+>aLs zSM~dcSPyGa`&V174tvzjQ~`d*!4E?%<%{xz5`fz29n80L^AdJOzmsq0Hb6=T<)=me zQ^G$X@*~23S@?q^tfz#Dl@|W+Z!<$)pD+2i+M0I6OVc4apPyeEubN-XkJo>J+Qsr+ z(|`KU#1OIbH^m<1*W{(!TFdwG{PO%=$WuF`{FyxYHP+1je0z>BVUPdM^X>UNu}As& z_N=y2i>AX`tK_Hh?R-bwxw8E)hjuj{lcg5D_v~oT5DoMe!hQJ(oOlAZr>FC=qFfS`M)Uqp-<-X zH62DB_J3yy`{NG#e_HHM6|g_`seJo?PwY{?+WEHd+XMM_{=4wwwfTIt-}@{1>5p~P zGnSK4hy8A-HSK=^`y;`8`+d+)|0jg+59Qm5bwMLv5zgnU{c(r=FBGt!|dGdJHk)QGJl%c z*0}Ja|HOQ(&zS3|>i=ivV;|gHYJc2e|Jx#O{VU7+M4n#zXYBts<_`#e6{1i4wn`KX zTv*pLm+GG_%1I}q{R0s;m3tPD12>KpAr6q@Kyikg+DF)gy^ARJn4^0d^t5Nt6TU<;p_PP7lfY@ z{#w!V+rl3fzE}8~ZV5-aF@KFU>?pSr(6di|{BbYFpTC)}#|Qbv;;ZpW$#b|G zWwj^iu!s3;EbnjS>%V0Q{o_yPr`v}hPw8gK_fEB3v3}%sU4HowoA~DV+K$~P{27t| zf2Dm5cwAMr_5q55*rl(_BolY-}8L) zJnhW9XPvdzUVH7e)?Ry`iQ#47Gpic=u^ZWtoY&Pv-$*~EhkFuwFuf)JUaQgXP0+uO z_;Y{l@2MyId(Y~4e{X^OhFibx2R_*w@7JTicdm)!HeQb>`uiuM|6Be2=HYSuSby#B z*P80AzxxvOhmjcEU;8`U%W;F!A0L!2jQ95x`pR+2aO*FZK^Wh3k*(N~7slKD9O(C6qxMhx4)QX+ zeKSF?_=$o29dDDz`qjB7&VSF}>DMeLTF&e1kjL<54Oh{6=U_sf8PEq4%4Zkke**Zf z>lNRIW=zg)_r>MpLTw}cn;sS)5vR9t8UI3D{uj{&9v8#+p>NH=`|nhG+AopU>wxc` zQhXBZ`hiby0!gnq`9BDB|hx84X3a2ngsqh=nXf$ zHGeJ6|KEtiXK2mLhu zF1O_^riYmXz3HJhp@&Z5!+J1$6XaP9d=m7A8=r#-K8BB97uU1mw0?geF8_Ms-^drUg_;FlXD^==Rwdf0(}$a^-Er)2e%c~!F z_DzcSA}(wJKGmoA0(}dvCtTt(_8DhSRX!$XGxq(_Y%nSGM+b&CN*?9@mo6YOFE1-B>F#6>!asJls^zY;Nt3B-+|7l);JFgC+ z=lO0phBu0Xo6d>zUkmzK@UiWs%YaXeEB_hT+Ys=9s}w&F>lf+mnK=I|iN2BEO#Xq7 z#pO5sY)i;#_|Aqnt!w@qZ};7vc8$-pCw{eZA;NjtxCDQR^S}P@@IT_|I3Me8>fShR z{3jFqZ}RXrK6C#O=W{F3^SB#sb&_e|!L-sZhkw`yyz@U5??;~>1->hR|Hb$x@DnJY zaJ$`KQ$Cizoe4a(SMjyre?IU@;920kz!!X7=?&imybQb-^jYB3z{i1K0lf1Y$|nWf z#=W&QK8{y`eggD+V)+&A11^on_YV_2`%lC7ga56-n>v(!0{B;fPXZqR|8D^g&Qto4 zSi7`Om#~LNi2iTQqv-c`(C%YI&*Nfv2k<`ux8LcR1b!%$Dwy7W-^b`pZ;!Xf^|lc7 z_Pamh;PYbO_Ip9L?l={={hm+_{XG-7{f^K!9k$3{J(p-#=yIVc{jZg54Mto>rDbcR+-}!=gzy8I; z|5^`zI?3E$1UzVlJ@&$&HIe2%C2+y4t)XEiDN;ApZh z#&_SVxcRHIfVciwaUItnxIl2+?7XEwKXs&zdn>LDd+4w9;CFPZJk8h#F*!d1{u3u_ zfU-RHE^GH*#b@C+9`Nwr5Bl++Xur%#e+hgy9gybNZp6W7fKME)xanaL9Z_PvHKV_V zw*U`TDT4#h!})^ai}Q9N=m+RvH@|3D<#maNJ_P*?@R7;c^eTez5*&V<+TrX=)!rsy z|1SkT@gFMZH-Rq&K8LzJv6a^w1$P9&$2FjDO`J!1i-*1d`cBl}Oh51R(0|l}-v&M% zsIPWIp1mIWeIEP~@ELes_3#|{{1*7s2UVXtfWL^0u#p`u5}ejes6SZ0T7YMNr2GfK zr`yBlV#0YI+4-x3uhts|!6%>xKKON`!a)uAf_;jYF^)F?Z$%x(p1*qNk9o1$=k)KC-u%)zf;$c3@@yZ$S$M)@aq;2pD%duY4DjDRz2^A zANY}n{`VgIuO6I#eGsClfcT$(wS?o5{qAlH@D||N8&sa>5Z5|^FZ#9`6n+Lccnk0y zuTc6F_*4XsH7Q@-;lZy3p9wygN3UH-zitM8fF5+>m+i~%_3-%t=%?PNd^%zOj{|Rh zpYqu$+=Afn6I2i7g^JU1MqZ~0jxWwzn+JcR2Vd*K`vj*t>R(h&m{E`io=U`>Yk-&Y zYPXBguTLBOGL_%v^?iang5%>1=$oHbKCQr?06q;pOaecWjv6$wpH~RJF!&7odOaL8*AcZ)=)tGKf5)p;&j^RXe&7@D)pqxw zjX4jW=RNqbCpFg3>4Gl|rq*b?To>cl*}!+;?;4u^*BJd$rB6ZWA#nR0ZQD1j0q;!Y z+gAghLEIUTR%t#7jxWyJEubGiOzp?w`~AReeP@3ASHP!=D(5(OJ?G)SkP=SzGu^8( zzhJk6w9sO_^%>=3e)trjcLc=8*Ld(Q@Spgkj^j5${}$lE9~HNG@lN1&-k8t9@asko z|Id5yy~YQ>e{FjEk%xYc@MdW#{@?Q+`r}{H*sf0V;IH=JD?E6=;Pf2LnK~{th&2Q} zg^6PE_Z=QS@ABXu2cH4#xAueoT^{=X^5EYCpQ(%D{_QE?W%x<6pTp?DlB~1du6A`f z+Itb`O5P;0uETSdZ_5oIe8Ig7~`@`0qS? z4uXCX_G$j-M4C`yp9#O+0z8X#>t5*d9N=ZDGV#m!bOIkwtV1sae&8`>a1+L>YJ8yQ zMUel!g5!(x_7M;MB@g}$@DKi58|(nD{T}+KLEkzEyMiBn-a~)N%T#ZvZz_L_MbNev3Qr7aT;++ebb4 z=fP*-*UEo4?)fhd{Ue}%=9Qp_ojeP?nSLOEUw44dB0AW~>qk3Bv=jK5gtHw6v#Ph- zfG-yuU!1p99(@*~5Pe=ojRb&vNj2zlZ*lpie!h^4R&JFL>x5 z0DWg7kNP?A@{}sx^!zOFro?)DL9^cQ^@|A9}bo(~54dI0aC=_Z>}OVR<>~(a2he9K=7hhs2)17Ur@tMuMphj zpr4n3ejNGdHjwlH-+hhpH-GX^9zMe!{Av&We()dot&WS?;mscUJ3&7I`<#Z}?(@)p z5A?x|@=w7Yo&}zIkM`?w@HzUGs<+91hCIN}0zPryp`sZZ-!}+8U!T38pW37RZv@Gk zfd?;FJOKaAz&nulE&}~KfOo=A4gkMFaC~vzKI_5n^59?V>ZgiZTsTH>M?idR@!-qAXW+WSgwmdi=>k3ue-8H=Tmrlab?JWazXJGV zV%~i~@cHt54D?gSE|7}{F)p7roF9aw*CgcPM4!T-~P?-!i* z$1hPmJOep@0ep6s+Mzv1{3j2eBmbeXo=*~-o;$$#idpb~gNJ@2=*#a`d1f$Qiojcr zR{V14|GgeQH-WxsrOI#l+rI&y{I=pK;|33U`25s^KS=vmoIlU~UgcSae*FRb7r`E~ zz>lIp#`H5-@LBv_41D}(mB;M48+a=ezf8?2*Z@43Q=km~KRaL7N8|5#p&&bf4;ww| z+w@gl{{lR9mbPo_tQ&yabNX<*!KZ;Yp}uPI=x)Km)Oq`s2mfymJ`4WMuTptzKF$H( zk*K#k2fVde^a@zkk+)-(`FbRX*mgzTu(&nFs%)2VWreS(n2;ErQ*qF4cBz|K)TKeX9rW0-p(f zK$u>8Fi$hU`xAEZHsG`G*YVv1`j2_||106NRXy)@pNIYd@Ne3o^0a{eJ`erRLErjA zrQd;;{^X&5(OEiw$MJgt_OmZ92X22))asnC7JQ!g!3qz4G5Dmg-*-7~9Rl8obqATf zyx!^I^IqeFeAw*vy0^Ye(>30DCf`|V-9{fJ=**l?pO#UANpTN4_^8eog z4=SpkZnS&IYv2d2QoITHiGt&c^Y*s&NfhqgY2Y)vQ}O+{r`5yf0?^yvfxhkq zdc&n2`W)z6u^u-$uK->?83qMD?*|^706T%-nDX$y--AEu!T-mD|HXqJLj%!hebgfO zLVDg)$I<5XIlw1=uYwmK{|XPEO&+`iKCPQ|e3$84@GjtGAb`_+HME*bD4)e>%m9C zXF9R2yv9R+Gw8F}w;G2ozT%;O$b;_#pNR`q{vF`+gopl5gv1>n<}*!Q`_LmztZf(IW5|2ZU{1CZ%M9{QU> zpTay{1p2Rd=pXdp4};Gv&ZAm={x=@_KY>2=E!DqjmG<#?knvu&+J7Ovmvvm|r_R{6Ff!@9^Mz&~8&AANa0^eirmQo>V!_Z~PW`E6&Yc z4*8!4K8t;;GVm8ueO2ncc>ZXcvI|}XeBuo4?#OyyAVpClmSMZGt-u;^S9AZ_jV81wI4373)p&504PedELZ&wFRBzpD;`)D?;Pd4?6Z8Yn|2Rn6flr|zkpY?*aW49{P6> z&i%FD4c-a*_km9f{L(|fKLc}KUgfpN!~X{!{8!*JiG6?blg|O4!+K;f_@D6l z#`FD^f-ej@5_!ezfIowc4jbRgfbYV%G=u+E5C0E>z6JTfBGBLBp`QYMXIb_0FzCMm zd@>QQXFPm<>A{}`pB?-|xb$kqJZf6rSU;zG@OHt;Padxfny^ma;GzFV&`&}S&G2s} z;M0lxsMd48buN&fDue_?y6IFMeOh>~Ppae2HEOcNzageda%bccKoq4g7x$d^`~^o;LpQ zGv*(TdShd~HGA;01*hjDlKvTZDp4PPlZVeoPHNn48hmEn6`w~151)5~z7_ig*Fg_A z0^f~um8PF551+4l@Na`pIk6A>a}WLRJos}Sd|_u}J)9^w)#cFcQRr72@TQlkAFCa$ z7d8N&I!^6p7Jl+l;FCuyZsT4BK8xoTjsHgl59YnT0QwHhJJa(wfCuo;J8-~)+x7kc=VJ@|GHel7UVz&_0mCxMSA^fLuKK%Q^* zc0cgRgrD3GydN7xHH`iL27Um~6YT;17vSZ@zTwebYM-4rr`ikpC4%FN^L7E~%R@Tu z`wr2I>pb*t_TYK&8RtLTK(7g96THJi{{hfX@E_)&*Fm)VSr7f!KtGH5X!>~wc=s2T z!CDN=FFbsn@!&7$Zfu8(1gCuLe4Td(AZH8kMTy^AI2ZVAB7SWI-ZY~6c?SB)126Lr zgVPITk>E2lPAsM+LEc-cNbxKM#8QePFZOFMH@`JopKx>3YO||9K~5+7JG_ zUb;Y#n}Gk>!{^8zwa@9qJbKH8iXXuFCG)qh0DTtcQWk47L5JXuV(@V_=sS@|8J|H9 zeHHZfcRJ?4=U;&D#ktJ^;GgjDx!r?*#e?tl;NKzqIQm^v``ubP{voef5B-xK{P!OG zg{xH0{W!P33H+OZPyY2VLGA(mM&LWJuABva8SsIG{}}<^omM+P0Q$EHjxWyJwV*F2 z^7)%R^!I{(67b8T%L4q21R2 z?|irFZ2|nl>w%~KqWB%4?+4!fe^fuSp#R3%+U|IwJ~<@xxY>EDc<{G_|KvkDQJ%v+ zAMnuM1o}?wkM98eSAkDlq8rdBc<6rz`f)s;xDWJ)u3>%7f1TjL&+y=F9=u!dg~1~DhvjJM zV&F50^c+ah1#O%PdUei z!JQ7_)PtB3wR z(9dApFGsukJ@mf;{nRU!e>eCaigRl-Sce`3{1o8!cdy2Qp94IF`D@QdtTX&!6m~#msM?1$+wg^wcBuhLylu&r~~qXrbaE@J{sC^3|H*h%Xi|-Y>YLFnqiT z^b_qW=gEk7U-Zy_8T7O7QhKwKeIELQpnoQ@FK|q%@w_`l@P$EVBJQ+%=vR60KJeMQ zQ{}u4{T%{6kjN9R1|B@C1G^u3{s8dFLsT*2Fz5$Q*KwRizHN4XJLt<;h(8BAxm)o0 z`v1BI|0(!1VZC5>@)Ypaw`sp@f8?+?HP+`bg41(7A5pvA0})R1(4PbP9nIR`Cdj|i zL%#|1<;1$9=%L@@!QbP-KLY*(Z&UfFAie|v|pDiyWkPy|GWa` zXXb!U{zmnD6WTp~qmFwk#&&ml%cL+Xz+~45A*BJlA{`i}LHzn4~CE(3C z&rm>9*8m?+*!j)Cv%l80Pm{vX}=X&7dcc~uC|K~h>svdj-d{X$mJM&|o z06sOV?KVNQe+NF0_`RKnJpA{0@L3Q3qz6Cf!M}?-+w>uai-a~VM_#P@FXOqYqagoj zzz0x=H+-q!^Yy<9^t;#S0PY7#8hG=YR6qSX48a!QbNC(ImZSBCU4~=7!~Fl}1fSpT zS3qxnZ_fPN10MRHdGI+8{#WpCPUz>TOH^;!FKLHnA=(+hr?$oIVY%S*c2@?*X4ho_03qe`WM| zuH-r3e+J%+Jb4lDmtCrQ8+csxb`$U=g5!(xwjA{Kck%e|F7Rs&@B@>o=Ly))KYI8C znMy6cq!hGl3o_|KA>5ivZw`lw3>OKew`y%{XlO|$$mS}!;e550tAw@DFjFWMbJd_F z8-!uD6b=_kgXuz;t(7X(Fg-@hN~7gMu9nL#X>Cjq4&{saFkPvnw}-i6t+G8Bs-#DA zVRmeEbUWSRd<%)P79*{;hoiaL2uVess+BDj{gf#bYx=2>AJh-IVn#odH_N4^(T&x@ z(r`FelkcT$(AT$ii(V{c!)&^iCc&#qBj!e3%~iIL2DtU;rWoej3vn{(Fk1{WqvfE= zTrwlM%x2PGo_ZZ-a-{yDd?sDX=~b2p*J5qNFsBW4v{DYs>1uUrsgfnll}1TrL!~e? z$X$R6xb2a2FH9*g8Yj@CUyE}ID zB{6uo?2H~EW*gN4ZitPQ3_4S}gBmH9E|@_@x5tLTZjXWP?Pi5bLsejnbfRY4zqW5n zTc}oS61NA6Dv_aWK-C(IJ8?qSj8lU?)EPFoXnY%7Y7K}zx^CMp5GB{?n@7) zEBT&nwOp~9FBPjR3#H8FC2e+r2B@t)c~w-b^IkfeqM2VMcS*O`%9T=?6s7paRSwu5 zQfbEgRNf~$)zdu z26`z|$fYac6=S(E3cl0@L^ZOVvBC2?26G@Aq>xQfs*=l4Krpjc4mA9kT(yd8%mZE= z5{+`?9UkT2RLpG!zj7sK_t{lkspKf^#!UM+-~+BOPi6wye)p?raEsa9&`aC5P= zwdi0(32#iFs-ys#O5xhx6@9%S|0k^CaMy-)DQzKN9wBA2V;L=nEBks@Z0za{yVj+` zRqKOlrn-eDqr6eVK+JQMO1sHM-i1DHD{^9k1RzXji4nV6ryHp`E z>Q6qqjV2*8W083B<%THS6>}BJ6C&yJ+#m3c<*enO-8kCDk z^BJC^G)}o(P$*Hf9~{dUYI({{h@hf6shYKjZnfv>a=EZQtc(?MvGH;!sxyBYP@q}r*BnAcYQBuvm{BSW{8>{426oyNbz>SPn<*E-tLV7=f(LTT)lR~ z$`xzF4Xal5_4J4RD^{-UVedh)^v$@B1x&1XOB`Q@5)1A z;fH)}hNc=hYRsByIj5cM>fc23gJjm6X=C4tx((3Mtt_lTq+U+ETF}!KUet4$r0g_g zTS88Ff=%r8F6r60X4Pe3Y6W$eRxRXd^Ws4?zo+qt{GFQ((kg>=Ia=C6!qaRL;oI|} zaHKx=h#VYohIAOk-DziZbWFxF`$w$BU>`bqoHTBeaL)t7YXs6tk#Zrm!=UGqRM@R~ z>MCC2$X(R8VlGn)^6goXMb)t;)!Va?M@&|kq68ZIaE$y2JCR7%3fXJ0a?OU2Y=d$< z%6!?bxEHkK%nxl3d4V;N4@kwj%_*{@XW7AY9XB&O_~%tvMcNlV7fdZPZ3jo0Ef z!5z1is>6LGS16QdL@8;YHGnZfx3jr&ZA6J#84^78Qbfs`<36R>$}|LE!3PT-B<)dN zFE{k{^!2UTuwFFF5j4S?J2pnym87{82`cGgb(9JaqZA=2d2v(NpiB#aQAw1T+r%2CE|^CQ7+|njLvn?Ms5(8mfLk8cqKwt;^-N(BNsB z7nCI*3`rEq4@wm=p~$t3m8qCP6FE%_9_c+>0uPNdaaZ)MZ-e2D=0=5z6^(o-x{LGD zMp?*)RL^=IvhFn-*#pXqqqVa*d3CG8jRKH_XjV6yA)AN96dims7hZ2jliXZ3H#nw- zWfK;YwQGgOx-89lZX077qW%#{|7MaKly8F4C; z+ooPv+LiDV-NV|DA?DV))WKwP)l4NXF}HzhRc-P_lDR*UUb?J<6(n5Df{HXCSZ}8b zoTFw+*|^o{h)M3l*|y3pzR@XVMH87vTBa+t-pUg&Ukp~R4~t`?G(Hp|uc9IVok zCNmP&RRC8bW+6ku`BFAt0jsgWeHJG!8|zyGy$X? zkAsxF5W#4S0_SKn7hIQR**Y6hU+)U8lJ&EXl9dPpej$$lWs{%7 zUOr2UynJnYIFc{cM2RpYCdzLK3zE|7uq4&U=4={~=}Zems+u5_>V(!X!1v3V$2->@ zAIL2W>q>?E7>_GNs*A%3v+$$Li)e^DVlx~A0)tL>9R*t@k=X?pQF2oha47pC_usjC z?V6QcVf&J{*GiLVs@=4m-!7q1*jrTRo{SY~EtW5Gb6(?7H>FX0F--&m_b$ zuDinAEQ#W;)M=`M=n{;QrS4u?lZ}z%Hro*gGFGAB%(F6DuSM$B?pqvcUZxy493G{0 z5;+bUlTcD0)+`Ed;qZE!QWAA(MsvUOxh*+$sZ7iMT2@ja6&r=aC7PbC2uG=EOEm$q z6CO+TSL~2j4>pCx0qDA&+=nhRS=G#1l+5vqRuKsKBThj^d^M{fLkqJ4t&l@5oO23C zi8w6G(K$(=OeIgI1u85}va(ohWT}J!^0Bh0mPKSzWE%yYSeC!AFjOxkF>J)RMWW?_ zql7oNP4&h(x%fzDPO|~QTdSt>G@(R!Vm$2Mk-UjOd}mKl3d8k;n|ZK8opjLj94U(> zQbvQ@xe{af5-0OIZJk;$)iy5kkP{Xdr;%2C54fB^thLNW3X~{UO zj+Hqg(29WVL<$>`DdY+iOu5|6RWs_UM0LI@c3Pn@Bt4Y$Bf5#)Ar27ze#81z^;{bZPBueM z{ka+v%HXTVp(0z9P>H{9U&iw&9FYQ$8nkqcnNod0S|De$IT$L_qOCTR9D>qjv0O`b zkg9M+PleMIjXNTVk4Qn4yD}B;bj&0-V*9BU+u5(Mxm#*V4uM=E%fo}hYDS7A$wye; zDhp0dWx@?z{Zt9)>)*I$J<5O_e5x|atOkxBDiLOmGeERcI833<3g7L#b68(q>Lj7w zbIC`-5{sD2WUFZ^i;QN<+g+VFLEYwfJ-ca?@Y@=c%Egq@&+iKY_o&8g)r%jJ zl8r|4Gnhd=Ri+EP(1;Z-RI?IxC^@A{ddT~z8djiaSi4RiO4qr4iH(TaSaZ@wAKQqH z6kYSxU+=qtwZY|SHMwJg=@d0jAAY#*c*f;2fcSjcDC0(mD;S3u%Cx#DY! z^K8CaPSh4> z{o{FR5mV;6E|KcPXvb@r9B1BIkZix`h zQRL8rym44BYqOcLd$g=m#B5Mkqj6yYWlV*J2Ro`U$w2~^aQ>{qqEhN!>?*`!M)S1w zLaP$-Tv}Yl9JT5p%cZkU{B_-`cmu_B!S5uMB^`9Ht8P>m)aV;I8_4UFKq5_ZU)fV( z;%DmXut-5N@i~#-K+7VMq&u&JWSNIVh;T>?#4<3E|1lEoBqxs~2!E8aoiqGmv%2c# zj4W7r@hZw^*Gal0K4Q)K{+`uTR3tlt*>fZ$E%53?23n>JyIyuXPSr+_ucYN1kM4A6 zS%XX3PL8XKYz>(_c+S#LI)i)$m2|51jFd`j!VQ-a)K&79#hO)iSjUoH%(G}o0_y2q z-RM|LWJy}r48zQ}G=HUCqPND@Z{l<$Na~Re%GG%@C8!T$wO%)2i=$riISoU*v9L_{5}nleMAw~}GdcRJ=2k7`z} z4tqBBQzef|qkU>r>OhH_3XH`}F4S5guaLMKYwC+X9vygFZji@UEL;vDSr0TEpQ=iN|EK7&;<8d#zYmPb=%ZWTNaz3#H;(5GyqB%VdqF9SbD&#c1bF zGNuh(eW`F`PhVZ)1+R^3{bC_wkW)9Bv_&WEb zL`HfhZ4Rl~k>uFuFh?yKMqa9G16|s(M%3%;_t?@Rp75|)spSsRHn7Xs92Cu=w&b+s zdDUpYgqG7>g|X6x&F*xeEIaVEk|Y#TES-O@!R)1;9fn;i%=}0=&9&H?T>mKZQ!6m! zEyydd(Y!TR(ft!DJ&?DM(O~u*9jso=-6R{}E2FA->k{kB3JbF5!P_lthZR0wsC`VNFzl>p_n9+n;hQJhS-IYf)9jgM za6F-l`~j~@ozR*{iCG|3iv<*#a9e{eHYU1@{I{&MWi-V+Y^vAmi<0xqUx7kjbP|(N z6w3K{(SfCOWX7a++J4gYgZV3)m@)Izw1@j-3m~pSQ7NHXBkx*qml;gN^@sKjljzZ0k9BukM7MXsE>teC!@&5K2{ zI@BWM_?1+DO@~p1PfnJQH)VeXTj9CRM#v|bREMr&S$*(II1~_QL)W- zP*?=@wJMx0PiP!ajkIh{e2{xFEbs)67~5JrY37=XqN*n3=0tUcAT>%VFtt~Ufh;Ao z)S&A^VdliydOX{jrn*sNlI}T(=wt^ucU`ozZLplKTSVg#2iodat;@Ku(X*COpmI&V zz7|tu%*(;Ly6d%XR<4YtEhf#(5H95!%A?UGI#`^~QS&%nN0+f8MH(huk#&vDWfqs^ z;zgsjM@6H=rX)vL3YIL0rmB>q@O|1WmF9WoNS_C3Q-Z=;u|#zp-TimNlH6mZO}dA6 zjr8P~I1lne9AcOL^JNk}@BnffzvSNRCW; ztVSZ^6FI0k8Rkay)3#^|iW^C@N5yQSs3J4-3a&T}^64_QI(aO@);-*7^Y^SItEI36 zl}v|PqSRF2^c|y>rnwDww59k)VXnTSoaflNO+6>1@t;ygsR|^0B>Iu39cbFdp@e5! zIZp@1b#(c_hm2}{iw==icf;6G&EI_G;1ElJWM`fa3`G{r9kOJSJdfaFl;X1GFsW?0 ziL{Y1$Cn>bPoySSRcFuLW~m$vsOjrAA{V#6WRS!&oSiq$dM5=GMzr;Ab$ z8Pai%!k;q~6s>3{#gZiyIca=2uaDWku30qbM;q~$Ttsza6h|;loYLlKu}+r5mTEg@ z>e{2ULn0*2>Bw%)70C>fj8SZo%hY5>BpXGC>xnXLJtQWwB}W380kJ%nN(ODtDFv}!neYvQAdeJI)|ta)h{Bl0aM^!z z6eMT4#l7+2FUbz+hzYL)x@_ZzOh7kPsA9tvdWxmALe#2_6~p5zD#`$oF~ocmq63eN z6Y#_xzm?9I&kKE85Cj+hU8pqo|7 zi+MP5nRpxxdFg}@KuMOf=H(|sA}#XBTmHjGepunsAoa2>?3VNKlqN;xJ{X>OoW?Pu zW?P3_xW1+y6|%|bvuz4Zi5QGxj|b={e4<@0Y?7jbn_D-Kjx zqcbpo?`a87>sc$L;jkBlVSwCE`W&X^-LcTKmwvmctUZ(b(W*y7H<|vI6lWu>u*l zjf|si{Z?=ZqxB23(fGqmDHWq$#m_O4p;(=piLDDd_7pkEB};~>xfmN?e1n<=VT*Mt zC2VQkayCQNAnU`r|Bs1oNuJKNurwr_v-2u8OKp=(maAEsL;R=^c~SF_>KxrVk$4;D zpp%<0*vVa{rxGf=PSy|msgO<4UB|11>y(5ImbX%A%<9C>!WHXJ?x0359=BNZl2J$} z&yu>{)dqu`jV}{5y<_I&wkv6RT1osW1LDnj6eJw7{-Yx|ZF*Edvzb_`Y`GNXoF1;z!=6;9(GmnV&wYfP z(HSGbtgrD_+O2=MiKA%UKk&C-C^@>O{%K@>0JAbt-gx9rx$dPTjWrrT1Z zGlvfmsmRWoa0ntchb+n^Rz*?gxpkxAhSiRvpuvy@3>pB-7P(i+6FQuUs@hALT6?*~ z=WS&{$`4)C)hI37s#n%b7OJD|d~TFmNF?PAQ!rhFi##Z@;mI~Kb=#X~6E`1Ux6zna z)5(A*Ff@AF2%A@OV!Z_Ux-XB+6`ON1tl4T+A2%?Q(8SXEHd>`;w=Ebj$P(~7HCI;~ zol22PGcE{`Ok{oFNT;1-hC^v8)98v>oPkh9k)6L);abRSC|8w7i#Qruh^!x<%gKUM&YcJWgWO7PgnWdU2_XN{H9;D&P>87ko<<>QH6QY6VfOFIcK&N+T z(uw%o1WZcr6`A!xC7iCKY?{1}a6T8vSN;~=t zmzLh^A&Q=`6;te^v%ET#W=Gtom<6g)Xrxe$^3=UVkNmF0kzc#p(Z20Caz-U-I;mY! zbYV!&J{}jNQi~;wl=Dg!!jp_g*RcWVA@!6F%#yD3iePH>G#2uBGc{-vT_0wZ$6>6x z88ygJie#d-OM^-d+X8pWoVbileHUH&QlZm@bTHMb5%TQ0_%gbYio!BYg)nXrY?#Q2 z>UkG+c0QF;w}}o;@R4H{4*3M~EFK3QK{ZER2)*aP|?aI@>8c>iT@yS!1XwV}b-0d!{35eC$PCgx*-6A$A>u%S@a3fY~8YEzs%+9{VvZ?w4LaIWQK(zq>vu;W{j9-WlyVIW8oQ>>3)>INM^kAsV!;A>iiH`k_)QeqaglfT2 zXyxfZ?w-b8PHf0=4eX(v|b8%9YXXi?2gAixjIa>pYU?e_e4;UFcErktzO}llQ8dX5Yr)H{l zuEboLyWxX}Fm0VEg;j2lf1-tS&H7NASNbW75rH91!rMUE90(^8Qet)JSZe43GYyI}IT0k--@6iMWSEKzlLHcx1#(!P7$ zug6x*93X60DW0*=ma63GR3hbP^4ujDKRirNVDRq=;J73$nQcW$^z|`eMe?}76eUgqvl8U_dH_4F|_$pHw3#jP=AC!+7AQgFJ@aSHOr0&?U%HkGZ&(N)&Lkgs|5I?TUP1GMF z-cq8aOEfL%8ueCJhTL8Ly+nTU&-37)D4Mm4-D<7`n(J7~1`@3UWiqJYkW(dhVh^B5 zd}32$3La%G{ByuzJ;*oRJyKuh{2+#^j>>gVUj3M_Oea1*rfWgjRG{q`W$h$FEV{Yb zdPrwe5KWs%Mq-}W>5QAnQ?0Q~CtmC+DH?x0qD_lTS^siAKs!Rw<8_*bAmbvQyi*yU zuRK(B9g7nl6lYiWZL;Uj0&!n#?OxyP(WHT{#gzcX%@` zJ3Gq<>8Ybu3D0yFZ~aiyuBk@L7gI2I8Y>}@$`*j+wl+JWLz6fz!-Dc^S2kdSCDrYt zwe%pp*DCrxVxNYKV@o8UEXi&!5?LVcmyoW}aHW|LpUU){;Sw2uCGxb* z683_0tt8Da$#Hdze~fMJ(|yu2qkKS{#zogDd)jz zHK1RI8|5Dk)L$b0|NEc*EJMJ*$c>-H4kqw>%l7`6la#;y%5f0b@6h9C(t}gz@*kdm zzGU|=dx_H9`;{+le7~YWa0Y$gKOJHB--91^w)dIKm6F?I8La)26%Nh;Zujqek6y6% zCwf7MH*_xo&!tb#JM!1Qr6J^Zq9*Ka{EKp))uJ8{3gwNl`T<=KUe?{W{ zho4dj?cIL&+uBRYzZLhJ{^xMNz281=cj|kx{dXqrzp1FdZ*T8UCIm>f|GvciJFnLJ z?S0d`;_ch`8F~YKIEMb2mRe6#gKa%gM>I)q-|hX=bnmgw{mXFwvj4~X@1%Qq#H{^J z+~0}&A3u*SIvFuiO6O4Y+@U-ak#(-Iv{O z?+?&L_x{Im|Kqs78Nc^#JnTMu|9;~BrpvYcrpvW`{(BMb%j7of$Mk`DS^rz7Apex! zzuyS)p1l8OgtPpu3A)9&zbk<=Ex+7%vwgjy|Ce$9wjKKYrSx_?-DLf?Y0ZCj$z)eb j{r~X}?MIP*58r)RyM`S{9~#|%$#r`FV@8Pg

+p1l&*A9?c%S$o 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�=Zd13bTmbI*t!+<6Vp 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�W%*G*3Qx5r=5@!D~@t-s>=sw*$) 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