From ee98556eecc1ccec10dc9fa58806ee25b5a6012d Mon Sep 17 00:00:00 2001 From: lixiaoyuan Date: Sat, 20 Sep 2025 16:41:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0excel=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/EMU对外通信点表最终修改1版_v9.xlsx | Bin 269159 -> 269186 bytes bin/Release/assets/config/app.json | 2 +- bin/Release/gmssl.dll | Bin 0 -> 1695744 bytes src/CMakeLists.txt | 4 + src/app/Config.cpp | 2 +- src/app/Config.h | 1 + src/common/Crypto.cpp | 24 + src/common/Crypto.h | 20 +- src/common/XlsxEntity.cpp | 31 + src/common/XlsxEntity.h | 26 + src/main.cpp | 42 +- src/protocol/HttpEntity.cpp | 145 ++- src/protocol/HttpEntity.h | 2 + thirdparty/GmSSL-3.1.1/bin/gmssl.dll | Bin 0 -> 1695744 bytes thirdparty/GmSSL-3.1.1/bin/gmssl.exe | Bin 0 -> 308224 bytes thirdparty/GmSSL-3.1.1/include/gmssl/aead.h | 108 +++ thirdparty/GmSSL-3.1.1/include/gmssl/aes.h | 90 ++ thirdparty/GmSSL-3.1.1/include/gmssl/api.h | 23 + thirdparty/GmSSL-3.1.1/include/gmssl/asn1.h | 301 ++++++ thirdparty/GmSSL-3.1.1/include/gmssl/base64.h | 72 ++ .../GmSSL-3.1.1/include/gmssl/block_cipher.h | 74 ++ .../GmSSL-3.1.1/include/gmssl/chacha20.h | 57 ++ thirdparty/GmSSL-3.1.1/include/gmssl/cms.h | 552 +++++++++++ thirdparty/GmSSL-3.1.1/include/gmssl/des.h | 58 ++ thirdparty/GmSSL-3.1.1/include/gmssl/digest.h | 87 ++ thirdparty/GmSSL-3.1.1/include/gmssl/dylib.h | 54 ++ thirdparty/GmSSL-3.1.1/include/gmssl/ec.h | 64 ++ thirdparty/GmSSL-3.1.1/include/gmssl/endian.h | 78 ++ thirdparty/GmSSL-3.1.1/include/gmssl/error.h | 67 ++ thirdparty/GmSSL-3.1.1/include/gmssl/file.h | 29 + thirdparty/GmSSL-3.1.1/include/gmssl/gcm.h | 73 ++ thirdparty/GmSSL-3.1.1/include/gmssl/gf128.h | 53 ++ .../GmSSL-3.1.1/include/gmssl/hash_drbg.h | 79 ++ thirdparty/GmSSL-3.1.1/include/gmssl/hex.h | 32 + thirdparty/GmSSL-3.1.1/include/gmssl/hkdf.h | 45 + thirdparty/GmSSL-3.1.1/include/gmssl/hmac.h | 47 + thirdparty/GmSSL-3.1.1/include/gmssl/http.h | 29 + thirdparty/GmSSL-3.1.1/include/gmssl/md5.h | 48 + thirdparty/GmSSL-3.1.1/include/gmssl/mem.h | 27 + thirdparty/GmSSL-3.1.1/include/gmssl/oid.h | 215 +++++ thirdparty/GmSSL-3.1.1/include/gmssl/pbkdf2.h | 54 ++ thirdparty/GmSSL-3.1.1/include/gmssl/pem.h | 33 + thirdparty/GmSSL-3.1.1/include/gmssl/pkcs8.h | 169 ++++ thirdparty/GmSSL-3.1.1/include/gmssl/rand.h | 31 + thirdparty/GmSSL-3.1.1/include/gmssl/rc4.h | 40 + thirdparty/GmSSL-3.1.1/include/gmssl/rdrand.h | 33 + thirdparty/GmSSL-3.1.1/include/gmssl/rsa.h | 56 ++ thirdparty/GmSSL-3.1.1/include/gmssl/sdf.h | 69 ++ thirdparty/GmSSL-3.1.1/include/gmssl/sha1.h | 45 + thirdparty/GmSSL-3.1.1/include/gmssl/sha2.h | 102 ++ thirdparty/GmSSL-3.1.1/include/gmssl/sha3.h | 92 ++ thirdparty/GmSSL-3.1.1/include/gmssl/skf.h | 116 +++ thirdparty/GmSSL-3.1.1/include/gmssl/sm2.h | 382 ++++++++ .../GmSSL-3.1.1/include/gmssl/sm2_blind.h | 49 + .../GmSSL-3.1.1/include/gmssl/sm2_commit.h | 40 + .../GmSSL-3.1.1/include/gmssl/sm2_elgamal.h | 67 ++ .../GmSSL-3.1.1/include/gmssl/sm2_key_share.h | 45 + .../GmSSL-3.1.1/include/gmssl/sm2_recover.h | 31 + .../GmSSL-3.1.1/include/gmssl/sm2_ring.h | 63 ++ thirdparty/GmSSL-3.1.1/include/gmssl/sm3.h | 89 ++ .../GmSSL-3.1.1/include/gmssl/sm3_rng.h | 42 + .../GmSSL-3.1.1/include/gmssl/sm3_x8_avx2.h | 33 + thirdparty/GmSSL-3.1.1/include/gmssl/sm4.h | 142 +++ .../GmSSL-3.1.1/include/gmssl/sm4_cbc_mac.h | 35 + thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cl.h | 55 ++ .../GmSSL-3.1.1/include/gmssl/sm4_rng.h | 43 + thirdparty/GmSSL-3.1.1/include/gmssl/sm9.h | 561 +++++++++++ thirdparty/GmSSL-3.1.1/include/gmssl/socket.h | 73 ++ thirdparty/GmSSL-3.1.1/include/gmssl/tls.h | 875 ++++++++++++++++++ .../GmSSL-3.1.1/include/gmssl/version.h | 32 + thirdparty/GmSSL-3.1.1/include/gmssl/x509.h | 16 + .../GmSSL-3.1.1/include/gmssl/x509_alg.h | 68 ++ .../GmSSL-3.1.1/include/gmssl/x509_cer.h | 390 ++++++++ .../GmSSL-3.1.1/include/gmssl/x509_crl.h | 309 +++++++ .../GmSSL-3.1.1/include/gmssl/x509_ext.h | 641 +++++++++++++ .../GmSSL-3.1.1/include/gmssl/x509_req.h | 81 ++ thirdparty/GmSSL-3.1.1/include/gmssl/zuc.h | 147 +++ thirdparty/GmSSL-3.1.1/lib/gmssl.lib | Bin 0 -> 342666 bytes thirdparty/OpenXLSX/include/OpenXLSX.hpp | 63 ++ .../OpenXLSX/include/headers/IZipArchive.hpp | 345 +++++++ .../include/headers/OpenXLSX-Exports.hpp | 43 + .../OpenXLSX/include/headers/XLCell.hpp | 231 +++++ .../include/headers/XLCellIterator.hpp | 179 ++++ .../OpenXLSX/include/headers/XLCellRange.hpp | 169 ++++ .../include/headers/XLCellReference.hpp | 323 +++++++ .../OpenXLSX/include/headers/XLCellValue.hpp | 672 ++++++++++++++ .../OpenXLSX/include/headers/XLColor.hpp | 229 +++++ .../OpenXLSX/include/headers/XLColumn.hpp | 139 +++ .../include/headers/XLCommandQuery.hpp | 224 +++++ .../OpenXLSX/include/headers/XLConstants.hpp | 14 + .../include/headers/XLContentTypes.hpp | 251 +++++ .../OpenXLSX/include/headers/XLDateTime.hpp | 173 ++++ .../OpenXLSX/include/headers/XLDocument.hpp | 320 +++++++ .../OpenXLSX/include/headers/XLException.hpp | 155 ++++ .../OpenXLSX/include/headers/XLFormula.hpp | 365 ++++++++ .../OpenXLSX/include/headers/XLIterator.hpp | 15 + .../OpenXLSX/include/headers/XLProperties.hpp | 298 ++++++ .../include/headers/XLRelationships.hpp | 278 ++++++ thirdparty/OpenXLSX/include/headers/XLRow.hpp | 496 ++++++++++ .../OpenXLSX/include/headers/XLRowData.hpp | 427 +++++++++ .../include/headers/XLSharedStrings.hpp | 159 ++++ .../OpenXLSX/include/headers/XLSheet.hpp | 737 +++++++++++++++ .../OpenXLSX/include/headers/XLWorkbook.hpp | 373 ++++++++ .../OpenXLSX/include/headers/XLXmlData.hpp | 202 ++++ .../OpenXLSX/include/headers/XLXmlFile.hpp | 163 ++++ .../OpenXLSX/include/headers/XLXmlParser.hpp | 62 ++ .../OpenXLSX/include/headers/XLZipArchive.hpp | 169 ++++ thirdparty/OpenXLSX/lib/OpenXLSX.lib | Bin 0 -> 2697506 bytes .../lib/cmake/OpenXLSX/OpenXLSXConfig.cmake | 1 + .../OpenXLSX/OpenXLSXConfigVersion.cmake | 43 + .../OpenXLSX/OpenXLSXTargets-release.cmake | 19 + .../lib/cmake/OpenXLSX/OpenXLSXTargets.cmake | 108 +++ web/src/views/statisticalAnalysis.vue | 4 + web/src/views/system/alarmLog.vue | 2 +- 114 files changed, 15206 insertions(+), 55 deletions(-) create mode 100644 bin/Release/gmssl.dll create mode 100644 src/common/XlsxEntity.cpp create mode 100644 src/common/XlsxEntity.h create mode 100644 thirdparty/GmSSL-3.1.1/bin/gmssl.dll create mode 100644 thirdparty/GmSSL-3.1.1/bin/gmssl.exe create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/aead.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/aes.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/api.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/asn1.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/base64.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/block_cipher.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/chacha20.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/cms.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/des.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/digest.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/dylib.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/ec.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/endian.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/error.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/file.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/gcm.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/gf128.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/hash_drbg.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/hex.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/hkdf.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/hmac.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/http.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/md5.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/mem.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/oid.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/pbkdf2.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/pem.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/pkcs8.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/rand.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/rc4.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/rdrand.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/rsa.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sdf.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sha1.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sha2.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sha3.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/skf.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm2.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm2_blind.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm2_commit.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm2_elgamal.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm2_key_share.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm2_recover.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm2_ring.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm3.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm3_rng.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm3_x8_avx2.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm4.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cbc_mac.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cl.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm4_rng.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/sm9.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/socket.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/tls.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/version.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/x509.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/x509_alg.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/x509_cer.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/x509_crl.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/x509_ext.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/x509_req.h create mode 100644 thirdparty/GmSSL-3.1.1/include/gmssl/zuc.h create mode 100644 thirdparty/GmSSL-3.1.1/lib/gmssl.lib create mode 100644 thirdparty/OpenXLSX/include/OpenXLSX.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/IZipArchive.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/OpenXLSX-Exports.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLCell.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLCellIterator.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLCellRange.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLCellReference.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLCellValue.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLColor.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLColumn.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLCommandQuery.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLConstants.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLContentTypes.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLDateTime.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLDocument.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLException.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLFormula.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLIterator.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLProperties.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLRelationships.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLRow.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLRowData.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLSharedStrings.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLSheet.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLWorkbook.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLXmlData.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLXmlFile.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLXmlParser.hpp create mode 100644 thirdparty/OpenXLSX/include/headers/XLZipArchive.hpp create mode 100644 thirdparty/OpenXLSX/lib/OpenXLSX.lib create mode 100644 thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfig.cmake create mode 100644 thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfigVersion.cmake create mode 100644 thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets-release.cmake create mode 100644 thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets.cmake diff --git a/bin/Release/assets/config/EMU对外通信点表最终修改1版_v9.xlsx b/bin/Release/assets/config/EMU对外通信点表最终修改1版_v9.xlsx index 5588ee92685dc2bf0953289fae3c0ad9967cb2cc..75a46dff93e63648b51463c3618918fd68deee43 100644 GIT binary patch delta 2954 zcmY+F2{=^iAIE3roUzReW6wwlw=1L(Np2${`!+%)vPQO$Jv1aDL`F_1yRsYCGWIPg zmyqpm%hn{WHR>-Z?u>Dto_n6>ob&yBf8Y0<_q^}>yysIj_AV7mv13JY3WcQ)lATzk zNKey-d^*icUCfF7DD6ju(egU_A?zP?(p;)|h6+&@=?MXxq^umX)g@+N)bHkRdBHpsk zwQ{oTwpOtEK5nlaUt|%l+&b=Ezq-Zee^5Ipw!i;Ln>EYMBNoAs753-grBZhy>D*e7 z8=zlA>{Hv(zR0bcWFs?dL(q%V?JR$L#!};g{AR3F1?6$Ad}O76b)>3Ambt#C*s<5|%^e9VcCPze(syLS$Z@3>fDtX$K}YOpLOx8K6xF(1JND9~^f) zOtzW`L$Vm@eDV^cX*4{RoWuq5-O*_;>OgSTp8yX{{&r$Qj$Bl6dTN)=J>B2Y5MHV1 za_g{9eM~^d=b@q7i*HAJsh5oGLQT<`Wi0yE!9swjl9>QW)})Agx1lLYd|mEddF+j( zP0{>ZuAbI5t=p%>7Sy%mG&D8V+Q}-R2@x@rxOV9wNpIDDq=(8z|6DR5>F<)XGHZQO zkV@c=sVDMnKv*~G&HA-_4Yl7bRXbcU1_9B%COoO=)7N|?v}fklaXzBo!XxB zyLSk+J0IspyB3_BvL$%WbKFg7`Z4?Vbn~Kcs;DrbRCwg9-a*ZlK`9$cMeRNVP{EvR zjWQ#h?f*g4B5}6aq=9VC;|3 za+A|Sw&%6a-nb|0Q1SLn@8Q}EY_IYpU&AoQfyOTrcsY1S;halF1%K#9Lf=TNX;0O$ zJaf~`8jKH$gy~5dlU!LFa4T@ftYsUSoQiAnRO5#*XLwD#xzwRNKFY9NS*Dj$R9NaC zUp%Bo$HJbs6O>-Py*c$=tw?}d_=?`&c9N)j!qH^bXbs2 zO=%GiGI;IW&06*)y?Vag?&`bHJ@Oq6d1}s=&RX;FCN-i zFsoD1CH2L0_>%g%wh2Fn0+30;*7Y9WzoBnkt&P>NZE0IXJ&S7ewZL!}e?VD@qo>jn z1D1@fKVO_WbbUrjMwC5U!tt}j1J;&RY6|s-_tEqo72fe9-Ur(UJlpHqF_$5|N?$K8 zOjcveE(`|SWnOZhyuXQ)!$w#mmjS*8soj%0|(t`dlQ-npRDF8!At@^oRbY6`m2UdQC(wO2Rn^)JW`2Ls4~ zbYE@hQe88=eTGY%G^rzF1m`)uZEqQBdsiq@IP>aPjY=(!N%115$5dFW9L+dX0mmCZ zeYgy6Hh)go;`+4A$%>*S!|fXN>gi`A^;G4>IA5!vulaGd8@vsc-5%p+@AVa_v!RLF zo`3P+yDlp0*SX%BVy*R!YNJ7PUw_EjR(|CM^doa3 zUbd`XNEdOA&5|_x-B!0lfvsTmoT7L9_cS-FtP!K#j01`qCw17fByycvLjzzE?kgX5 z6M_LU5zR+k+5yh6G5_a~6f0-~H-kc0K`n$57sQPM1)vF5P!@56muxG>4;^6xPr%h7 zA{%%Cp?hY}Dxq5lCAB@h!O#@rJ$;6qt|zSaG>M^G-1qb=hRzG!(W)Gm^kPo2Z)7yFdz;t1I05cN{99;{LnIn z-uRN(J}Gd5{35^hDHu$MzIuNh2afLNf;j2j&w`3LK~;DTw8RN2!`GqTxxn*?fMN*F z4GKdMT;M50NC^{CN±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 G4g4RALgeTG diff --git a/bin/Release/assets/config/app.json b/bin/Release/assets/config/app.json index 3540810..ae3e8ca 100644 --- a/bin/Release/assets/config/app.json +++ b/bin/Release/assets/config/app.json @@ -2,8 +2,8 @@ "debug":0, "launchdate": "2025-09-01", "weburl": "http://127.0.0.1:19601/", + "exportpath": "D:/Programs/openresty-1.27.1.1-win64/zdownload", "database": {"host": "localhost", "port": 3306, "user": "root", "passwd": "123456", "dbname": "ess"}, - "http": {"token":0, "port": 19801, "encryption":0, "encryptKey":""}, "mqtt": {"host":"mqtt://43.136.119.46:6203","username":"jsyhsec","password":"123456"}, "topic": { diff --git a/bin/Release/gmssl.dll b/bin/Release/gmssl.dll new file mode 100644 index 0000000000000000000000000000000000000000..a1ec03db09eb755688a243098860808882c34745 GIT binary patch literal 1695744 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�i&&Q@kwT+DKad;4iHT2 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%0Dqb_6Id6 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 I|GWqOH()a(9RL6T literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2486320..1c240d5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -69,6 +69,8 @@ include_directories( ${THIRDPARTY_PATH}/cpp-httplib-0.25.0 ${THIRDPARTY_PATH}/paho_mqtt/include ${THIRDPARTY_PATH}/spdlog-1.13.0/include + ${THIRDPARTY_PATH}/OpenXLSX/include + ${THIRDPARTY_PATH}/GmSSL-3.1.1/include #${PVLIBS_PATH}/include/pvserver #${PVLIBS_PATH}/include/rllib ) @@ -104,6 +106,8 @@ target_link_libraries(${PROJECT_NAME} ${THIRDPARTY_PATH}/mysql/lib/x64/libmysql.lib ${THIRDPARTY_PATH}/paho_mqtt/lib/paho-mqtt3a.lib ${THIRDPARTY_PATH}/paho_mqtt/lib/paho-mqtt3c.lib + ${THIRDPARTY_PATH}/OpenXLSX/lib/OpenXLSX.lib + ${THIRDPARTY_PATH}/GmSSL-3.1.1/lib/gmssl.lib #${PVLIBS_PATH}/x64/serverlib.lib #${PVLIBS_PATH}/x64/rllib.lib diff --git a/src/app/Config.cpp b/src/app/Config.cpp index b18e153..2c1ce7d 100644 --- a/src/app/Config.cpp +++ b/src/app/Config.cpp @@ -23,7 +23,7 @@ bool Config::init(std::string filename) JSON::read(jsonroot, "debug", option.debug); JSON::read(jsonroot, "weburl", option.webSrvUrl); JSON::read(jsonroot, "launchdate", option.lunchDate); - + JSON::read(jsonroot, "exportpath", option.exportpath); if (jsonroot.contains("database")) { diff --git a/src/app/Config.h b/src/app/Config.h index ad6bd91..47fad85 100644 --- a/src/app/Config.h +++ b/src/app/Config.h @@ -8,6 +8,7 @@ struct AppOption int debug {0}; std::string webSrvUrl; std::string lunchDate; + std::string exportpath; struct { std::string host; diff --git a/src/common/Crypto.cpp b/src/common/Crypto.cpp index b48294c..bc1b77c 100644 --- a/src/common/Crypto.cpp +++ b/src/common/Crypto.cpp @@ -148,4 +148,28 @@ string Crypto::md5(string src) md5_encode(num, 16, tempA, tempB, tempC, tempD); } return md5_format(tempA) + md5_format(tempB) + md5_format(tempC) + md5_format(tempD); +} + +std::vector Crypto::sm4EcbEncrypt(const std::vector& key, const std::vector& plaintext) +{ + SM4_KEY sm4_key; + std::vector ciphertext(plaintext.size()); // ECB模式密文长度与明文相同(需填充时另说) + + sm4_set_encrypt_key(&sm4_key, key.data()); + // 假设明文已是分组整数倍或已处理填充 + for (size_t i = 0; i < plaintext.size(); i += 16) { + sm4_encrypt(&sm4_key, &plaintext[i], &ciphertext[i]); + } + return ciphertext; +} + +std::vector Crypto::sm4EcbDecrypt(const std::vector& key, const std::vector& ciphertext) { + SM4_KEY sm4_key; + std::vector plaintext(ciphertext.size()); + + sm4_set_decrypt_key(&sm4_key, key.data()); + for (size_t i = 0; i < ciphertext.size(); i += 16) { + sm4_encrypt(&sm4_key, &ciphertext[i], &plaintext[i]); // 注意解密时也是用sm4_encrypt函数,但密钥是解密密钥 + } + return plaintext; } \ No newline at end of file diff --git a/src/common/Crypto.h b/src/common/Crypto.h index c237511..384b3cd 100644 --- a/src/common/Crypto.h +++ b/src/common/Crypto.h @@ -1,4 +1,4 @@ -#ifndef _Crypto_H_ +#ifndef _Crypto_H_ #define _Crypto_H_ @@ -6,6 +6,9 @@ #include #include #include +#include +#include +#include using namespace std; @@ -15,6 +18,21 @@ class Crypto public: static string md5(string src); + /** + * @brief SM4-ECB 加密示例 + * @param key 16字节密钥 + * @param plaintext 明文数据 + * @return 密文字节向量 + */ + static std::vector sm4EcbEncrypt(const std::vector& key, const std::vector& plaintext); + + /** + * @brief SM4-ECB 解密示例 + * @param key 16字节密钥 + * @param ciphertext 密文数据 + * @return 明文字节向量 + */ + static std::vector sm4EcbDecrypt(const std::vector& key, const std::vector& ciphertext); }; #endif // ! _Crypto_H_ \ No newline at end of file diff --git a/src/common/XlsxEntity.cpp b/src/common/XlsxEntity.cpp new file mode 100644 index 0000000..70cbaf1 --- /dev/null +++ b/src/common/XlsxEntity.cpp @@ -0,0 +1,31 @@ +#include "XlsxEntity.h" + +XlsxEntity::XlsxEntity(std::string filename) +{ + xldom_.create(filename); + sheet_ = xldom_.workbook().worksheet("Sheet1"); +} + +XlsxEntity::~XlsxEntity() +{ + this->close(); +} + +void XlsxEntity::setCell(std::string index, std::string v) +{ + sheet_.cell(XLCellReference(index)).value() = v; +} + +void XlsxEntity::setCell(int row, int col, std::string v) +{ + sheet_.cell(row, col).value() = v; +} + +void XlsxEntity::close() +{ + if (xldom_.isOpen()) + { + xldom_.save(); + xldom_.close(); + } +} \ No newline at end of file diff --git a/src/common/XlsxEntity.h b/src/common/XlsxEntity.h new file mode 100644 index 0000000..aaa0870 --- /dev/null +++ b/src/common/XlsxEntity.h @@ -0,0 +1,26 @@ +#pragma once + +#include "OpenXLSX.hpp" +#include + +using namespace OpenXLSX; + +class XlsxEntity +{ +public: + XlsxEntity(std::string filename); + ~XlsxEntity(); + + /** + * @param [string index] 单元格索引,例如 A1, D6 + */ + void setCell(std::string index, std::string v); + + void setCell(int row, int col, std::string v); + + void close(); + +private: + XLWorksheet sheet_; + XLDocument xldom_; +}; \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 98ce03c..7c2163e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,25 +29,8 @@ #include "qt/MainWeb.h" -//#define wsa rlwsa -//void rlSocketTest() -//{ -// rlwsa(); -// rlSocket socket("127.0.0.1", 19801, 1); -// int ret = socket.connect(); -// std::string s1 = "helloworld"; -// socket.write(s1.c_str(), s1.size()); -// -// std::vector buf(1024, 0); -// while (true) -// { -// int len = socket.read(&buf[0], 1, 0); -// if (len > 0) -// { -// std::cout << "===>>> " << std::string(buf.begin(), buf.end()); -// } -// } -//} +#include "database/Dao.h" +#include "common/XlsxEntity.h" void memberJsonTest() { @@ -117,8 +100,27 @@ void memberJsonTest() //std::cout << to << std::endl; } + +#include "common/Crypto.h" + + int main(int argc, char** argv) { + // 示例密钥 (16字节) + std::string key = "1234567890123456"; + // 示例明文 (必须是16字节的整数倍,本例为16字节) + std::string plaintext = "HelloWorld"; + + // 加密 + auto encryptText = Crypto::sm4EcbEncrypt(vector(key.begin(), key.end()), vector(plaintext.begin(), plaintext.end())); + // 解密 + auto decryptText = Crypto::sm4EcbDecrypt(vector(key.begin(), key.end()), encryptText); + + // 输出十六进制结果 + std::cout << "Original: " << plaintext << std::endl; + std::cout << "Encrypted: " << std::string(encryptText.begin(), encryptText.end()) << std::endl; + std::cout << "Decrypted: " << std::string(decryptText.begin(), decryptText.end()) << std::endl; + // 设置控制台输出为 UTF-8 编码 SetConsoleOutputCP(CP_UTF8); // 设置控制台输入为 UTF-8 编码(如果需要输入中文) @@ -131,8 +133,6 @@ int main(int argc, char** argv) // 运行后台服务 Application::instance().init(); - - while (1) { std::this_thread::sleep_for(std::chrono::milliseconds(100)); }; // 启动 PV 服务主线程 diff --git a/src/protocol/HttpEntity.cpp b/src/protocol/HttpEntity.cpp index bdb5289..d72384b 100644 --- a/src/protocol/HttpEntity.cpp +++ b/src/protocol/HttpEntity.cpp @@ -8,6 +8,7 @@ #include "app/Config.h" #include "app/Station.h" #include "app/Device.h" +#include "common/XlsxEntity.h" static void FieldsToJson(Fields& fields, njson& json) { @@ -46,7 +47,6 @@ static void JsonToFields(njson& json, std::vector vecKeys, Fields& default: break; } - } } } @@ -66,7 +66,7 @@ static njson FieldsToJsonArray(std::vector& vecFields) return jsonnode; } -static void GetRequestParam(const httplib::Request& req, const std::vector& vecKeys, Fields& fields) +static void GetRequestParams(const httplib::Request& req, const std::vector& vecKeys, Fields& fields) { if (req.method == "GET") { @@ -86,6 +86,18 @@ static void GetRequestParam(const httplib::Request& req, const std::vector keys, std::string& errmsg) +{ + for (auto& key : keys) + { + if (!params.contains(key)) + { + errmsg = "参数[" + key + "]错误";; + return; + } + } +} + class HttpHelper { public: @@ -172,9 +184,9 @@ static std::map g_mapHttpHandlerGet = {"/queryStatDayList", HandlerOptions(&HttpEntity::queryStatDayList, {})}, {"/queryStatDetailList", HandlerOptions(&HttpEntity::queryStatDetailList, {})}, {"/queryStatCharts", HandlerOptions(&HttpEntity::queryStatCharts, {})}, - - {"/queryEnvironment", HandlerOptions(&HttpEntity::queryEnvironment, { "station_id"})}, + {"/exportStatReport", HandlerOptions(&HttpEntity::exportStatReport, {})}, + {"/queryEnvironment", HandlerOptions(&HttpEntity::queryEnvironment, { "station_id"})}, {"/queryServiceApiList", HandlerOptions(&HttpEntity::queryServiceApiList, {})}, {"/deleteServiceApi", HandlerOptions(&HttpEntity::deleteServiceApi, {"api_id"})}, @@ -381,14 +393,14 @@ Errcode HttpEntity::queryUserList(const httplib::Request& req, njson& json, std: Errcode HttpEntity::insertUser(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"account", "name", "gender", "age", "phone", "email", "role_id"}, params); + GetRequestParams(req, {"account", "name", "gender", "age", "phone", "email", "role_id"}, params); return DAO::insertUser(params); } Errcode HttpEntity::updateUser(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"user_id", "account", "name", "gender", "age", "phone", "email", "role_id"}, params); + GetRequestParams(req, {"user_id", "account", "name", "gender", "age", "phone", "email", "role_id"}, params); return DAO::updateUserById(params); } @@ -445,14 +457,14 @@ Errcode HttpEntity::queryPermissionList(const httplib::Request& req, njson& json Errcode HttpEntity::insertPermission(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"name", "describe", "is_open"}, params); + GetRequestParams(req, {"name", "describe", "is_open"}, params); return DAO::insertPermission(params); } Errcode HttpEntity::updatePermission(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"permission_id", "name", "describe", "is_open"}, params); + GetRequestParams(req, {"permission_id", "name", "describe", "is_open"}, params); return DAO::updatePermissionById(params); } @@ -540,7 +552,7 @@ Errcode HttpEntity::queryRoleList(const httplib::Request& req, njson& json, std: Errcode HttpEntity::queryRolePermission(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"role_id"}, params); + GetRequestParams(req, {"role_id"}, params); if (!params.contains("role_id")) { errmsg = "缺少参数[role_id]"; return Errcode::ERR_PARAM; } return Errcode::OK; } @@ -548,13 +560,13 @@ Errcode HttpEntity::queryRolePermission(const httplib::Request& req, njson& json Errcode HttpEntity::insertRole(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"name", "describe", "is_open", "permission"}, params); + GetRequestParams(req, {"name", "describe", "is_open", "permission"}, params); return DAO::insertRole(params); }; Errcode HttpEntity::updateRole(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"role_id", "name", "describe", "is_open", "permission"}, params); + GetRequestParams(req, {"role_id", "name", "describe", "is_open", "permission"}, params); auto roleId = params.value("role_id"); std::string permission = params.remove("permission"); @@ -610,14 +622,14 @@ Errcode HttpEntity::insertStation(const httplib::Request& req, njson& json, std: { Fields params; - GetRequestParam(req, {"name", "address", "lon", "lat", "tel", "capacity", "status"}, params); + GetRequestParams(req, {"name", "address", "lon", "lat", "tel", "capacity", "status"}, params); return DAO::insertStation(params); }; Errcode HttpEntity::updateStation(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"station_id", "name", "address", "lon", "lat", "tel", "capacity", "status", "work_mode", "policy_id", "operation_date"}, params); + GetRequestParams(req, {"station_id", "name", "address", "lon", "lat", "tel", "capacity", "status", "work_mode", "policy_id", "operation_date"}, params); std::string stationId = params.value("station_id"); params.check("capacity", "", "0.0"); params.check("lon", "", "0.0"); @@ -656,7 +668,7 @@ Errcode HttpEntity::deleteStation(const httplib::Request& req, njson& json, std: Errcode HttpEntity::queryStationOverview(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"station_id"}, params); + GetRequestParams(req, {"station_id"}, params); std::string stationId = params.value("station_id"); if (stationId.empty()) { @@ -797,7 +809,7 @@ Errcode HttpEntity::queryDeviceList(const httplib::Request& req, njson& json, st Errcode HttpEntity::insertDevice(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"station_id", "type", "name", "code", "model", "factory", "factory_tel", "is_open", "attrs"}, params); + GetRequestParams(req, {"station_id", "type", "name", "code", "model", "factory", "factory_tel", "is_open", "attrs"}, params); if (!params.contains("station_id")) { errmsg = "缺少参数[station_id]"; return Errcode::ERR_PARAM; } Errcode err = DAO::insertDevice(params); @@ -813,7 +825,7 @@ Errcode HttpEntity::insertDevice(const httplib::Request& req, njson& json, std:: Errcode HttpEntity::updateDevice(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"device_id", "station_id", "type", "name", "code", "model", "factory", "factory_tel", "is_open", "attrs"}, params); + GetRequestParams(req, {"device_id", "station_id", "type", "name", "code", "model", "factory", "factory_tel", "is_open", "attrs"}, params); Errcode err = DAO::updateDeviceById(params); if (err == Errcode::OK) @@ -840,7 +852,7 @@ Errcode HttpEntity::queryDevicTypeDef(const httplib::Request& req, njson& json, Errcode HttpEntity::queryDevicByCategory(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"station_id", "category"}, params); + GetRequestParams(req, {"station_id", "category"}, params); if (!params.contains("station_id")) { errmsg = "缺少参数[station_id]"; return Errcode::ERR_PARAM; } if (!params.contains("category")) { errmsg = "缺少参数[category]"; return Errcode::ERR_PARAM; } @@ -902,7 +914,7 @@ Errcode HttpEntity::queryDevicByCategory(const httplib::Request& req, njson& jso Errcode HttpEntity::queryDevicCharts(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"station_id", "device_id"}, params); + GetRequestParams(req, {"station_id", "device_id"}, params); if (!params.contains("station_id")) { errmsg = "缺少参数[station_id]"; return Errcode::ERR_PARAM; } if (!params.contains("device_id")) { errmsg = "缺少参数[device_id]"; return Errcode::ERR_PARAM; } @@ -924,7 +936,7 @@ Errcode HttpEntity::queryDevicCharts(const httplib::Request& req, njson& json, s Errcode HttpEntity::queryDeviceBCUDetail(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"station_id", "device_id"}, params); + GetRequestParams(req, {"station_id", "device_id"}, params); if (!params.contains("station_id")) { errmsg = "缺少参数[station_id]"; return Errcode::ERR_PARAM; } if (!params.contains("device_id")) { errmsg = "缺少参数[device_id]"; return Errcode::ERR_PARAM; } @@ -964,19 +976,19 @@ Errcode HttpEntity::queryPolicyList(const httplib::Request& req, njson& json, st Errcode HttpEntity::insertPolicy(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"type", "name", "describe", "value", "is_open"}, params); + GetRequestParams(req, {"type", "name", "describe", "value", "is_open"}, params); return DAO::insertPolicy(params); }; Errcode HttpEntity::updatePolicy(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"policy_id", "type", "describe", "value", "is_open"}, params); + GetRequestParams(req, {"policy_id", "type", "describe", "value", "is_open"}, params); return DAO::updatePolicyById(params); }; Errcode HttpEntity::deletePolicy(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"policy_id"}, params); + GetRequestParams(req, {"policy_id"}, params); return DAO::deletePolicyById(params.value("policy_id")); }; Errcode HttpEntity::queryPolicyByType(const httplib::Request& req, njson& json, std::string& errmsg) @@ -1004,7 +1016,7 @@ Errcode HttpEntity::querySystemLogList(const httplib::Request& req, njson& json, Errcode HttpEntity::updateSystemLog(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"log_id", "status"}, params); + GetRequestParams(req, {"log_id", "status"}, params); return DAO::updateSystemLogById(params); } @@ -1024,7 +1036,7 @@ Errcode HttpEntity::queryAlertLogList(const httplib::Request& req, njson& json, Errcode HttpEntity::updateAlertLog(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"log_id", "status"}, params); + GetRequestParams(req, {"log_id", "status"}, params); return DAO::updateAlertLogById(params); } @@ -1159,7 +1171,7 @@ static std::string VerifyStatSqlCondition(Fields& params) static std::string GetRequestStatParams(const httplib::Request& req, Fields& params) { - GetRequestParam(req, {"station_id", "category", "start_date", "end_date"}, params); + GetRequestParams(req, {"station_id", "category", "start_date", "end_date"}, params); VerifyRequstParamsStatDate(params); return VerifyStatSqlCondition(params); } @@ -1226,7 +1238,7 @@ Errcode HttpEntity::queryStatTotal(const httplib::Request& req, njson& json, std Errcode HttpEntity::queryStatDayList(const httplib::Request& req, njson& json, std::string& errmsg) { Fields params; - GetRequestParam(req, {"station_id", "category", "start_date", "end_date"}, params); + GetRequestParams(req, {"station_id", "category", "start_date", "end_date"}, params); std::string stationId = params.value("station_id"); std::string category = params.value("category"); std::string startDate = params.value("start_date"); @@ -1304,7 +1316,7 @@ Errcode HttpEntity::queryStatDetailList(const httplib::Request& req, njson& json pageinfo.size = Utils::toInt(req.get_param_value("page_size")); Fields params; - GetRequestParam(req, {"station_id", "category", "start_date", "end_date"}, params); + GetRequestParams(req, {"station_id", "category", "start_date", "end_date"}, params); std::vector result; auto err = DAO::queryStatStationList(pageinfo, params, result); @@ -1373,6 +1385,79 @@ Errcode HttpEntity::queryStatCharts(const httplib::Request& req, njson& json, st return Errcode::OK; } + +Errcode HttpEntity::exportStatReport(const httplib::Request& req, njson& json, std::string& errmsg) +{ + Fields params; + GetRequestParams(req, {"station_id", "category", "start_date", "end_date"}, params); + CheckRequiredParams(params, {"station_id", "category", "start_date", "end_date"}, errmsg); + if (!errmsg.empty()) + { + return Errcode::ERR_PARAM; + } + + std::string stationId = params.value("station_id"); + std::string category = params.value("category"); + std::string startDate = params.value("start_date"); + std::string endDate = params.value("end_date"); + + std::string sql = "SELECT s.name station_name, sd.* FROM stat_day sd LEFT JOIN station s ON sd.station_id=s.station_id"; + " WHERE station_id = '" + stationId + "' AND category = '" + category + "'" + " AND dt BETWEEN '" + startDate + "' AND '" + endDate + "2025-09-19' AND sd.category = '1'"; + + std::string filename; + std::vector result; + Errcode err = DAO::exec(NULL, sql, result); + if (result.size() > 0) + { + filename = "export_" + Utils::timeStr(0, "%Y%m%d%H%M%S") + ".xlsx"; + XlsxEntity xlsx(Config::option.exportpath + "/" + filename); + std::vector> headers; + if (category == "1") + { + headers = { + {"日期", "dt"}, {"场站", "station_name"}, {"类别", "category"}, + {"充电电量", "storage_elect_in"}, {"放电电量", "storage_elect_out"}, + {"充电次数", "storage_num_in"}, {"放电次数", "storage_num_out"}, + {"充电时长", "storage_t_in"}, {"放电时长", "storage_t_out"} + }; + } + else if (category == "2") + { + headers = { + {"日期", "dt"}, {"场站", "station_name"}, {"类别", "category"}, + {"充电电量", "charge_elect"}, {"充电次数", "charge_num"}, {"充电时长", "charge_t"} + }; + } + else if (category == "3") + { + headers = { + {"日期", "dt"}, {"场站", "station_name"}, {"类别", "category"}, + {"发电电量", "solar_elect_gen"}, {"入网电量", "solar_elect_grid"}, {"发电时长", "solar_t"}, + }; + } + for (int row = 0; row>;Oh!(Oj7m4sq)#pR3%5y`FjKhIiw?c3S=oJRA$zxVxrP9OH!dtILO{XXBdp0(CK zd(OVR-!xCG$K#2^|5a5UPboh6FH;=D9}XeAVT)xAJ+Ie&uVraW&U-C;4jDSimp^j& zjUxx%;u|#Z)?0^<_FZ?qZ{(O;eM4{cWna<5cgyg>*Pqd#K|Q|)9jJABRl=Z)UR3`# zYu1S)!S{JR5B0y}dX=}|bCR!qt%fIi+9!HEi|dKxTa)m?|2>`w zF+B3Tmd8^YAF-Yo@yTRQ?s1YtoYwN>p{T5+K0>c$%A7@wJ;V2SJVUlM^NbZh$9eiP z82QaSe{~ZH@{n|#XOa)67d7@|n3CK4{tz`;%&fdJr@~g`O(HLYa4nh)_;k@ubqQ(51fI+ z(i4Fk_ZiZj`V>&-e}XnrzCpR%UI3_nQ@p3*;6UKT9LCu-&jaes?Ku3r3Au0m27o^A z<80J?q@7p?Mb4X!y4j7;Zl{Ypo{HmgfP8TfhdHy5cEN7cSlbepKV{)8VG9c1xE$rW zzlgJ2>cN7*`#^bZ5Ac4d4b!?liL~j@!m1Xu{*T{L_v@{wyT2FGK6?Ra2hTvc-MwMP zxT#2MatqRq8HU5(O;9&@8O{o7!~HKl!`X&kfc)&&I80^T?@j{V^=Sa`yoj{N*8=67 zI23-6jBgr&v~x!w?V$k5z4bk6cw>=~{vM1x+!$v|Ya^rm7BKWBO!0Y%<;35U&H zV9Q;tVZpJzP~<04ck{`(oL`J`TROn$MT3F7eizbOJqM@YJC1$Fm*gd*F^(a?24WZaU3G;cO)yw(+Ix88(mvx1;K z`BtR0SP9ULSH*$98*sV!8<=r*Lln8;0-)>;;&SIm5WAgRb-xNwCu~OD1ux^Q6?@$e zf1pU;3s7Y6MpT=67A`M+4n?;0M&p_6b$6YGvnA_rHlhR;B=kVJb%`*%`>|;Etz(f} zng)Qm-=N5eCm^HiKG-syhaWc~_qZQ$*!Cts(~d!t$FD)gqdx*=L^@jA_bxInIS+NO z`x-Vc%0rPpFQcK?{>I_juBiiyHIZF1h6svdmy(sgc|kkLE2T<^RflVy|^_1 zd~&836cd9$Ne0OPKotm21qCz?;((XLor}_|amLC%@;IcOunoE1 zPf_i_??~(R9q`VZ4*R~EhqNjVjXOWY;cLvv6&`lu@&v zcBK7w1CaOp0^}z?M_TYWoQ+xrV&Crx)9QYL!XHsBI`sz1A0^0mBLU?ml;iT)QZ@lYp}>(~Vu-W|wDZ-UEi4Bo73VA}Nc2={;)NW1AEkbmXy%N>N= z&vwF~wXY%L!N-Ao^Fq{}pO3VkV{rLa4*bnv7`KwJyR&im{3>Luq4*A8hiadW2TDBs zT|5bA#~%Xn+LMt{z8%#%Bmk;)DGt|-!r_*KFxR^ah37tl!e6XKk)iB$liowx%6DxaVo>)`By`DkrP8FF{$;ZU54jNh73UzX#n;{Y6*uEgO0#pA-ZXt(akuweA1 zuy5ssxIAt#;OAi}P%)te(k^I-kli;O&OG=U(mHS$Tyha=>{)}e6F7~1@(G~Q9|mhb zY(wLPthS~#(mwbcX&X<(*&7tMITr$8IR)jLZn(^P3dqgBgpudIh0BK$(e8U)U_r1O zG8%t_!>u0yZ|MM_{PF?Ho!J)c9``AlJo`fw-b`mM>yN{dcK{l5JnHUy6ldpdMU5>T zV8)`Js4=z>P^&pOyPXRQmS)r6mB71V8Sy>@-mmAP?k*xP_aW`z<;eZ%Aym7j9#DR( zgWQK6gDu~0NA4%P(RhzPkoLfOG*tIETuz#Yj84x0{<~LzGH)@=$mFu3@>pb?vlo{S z&P2J{^zzL!Ve_gI)P0YFGL}tLTa=3@B_7gLl#ARh zvw-r-t+?E`2^qg}Uf41eHh)91cN05u~H zx%Xa%L&qmjWc>*8cRvmf>;P2Xc%1pYXy~b#C|vJ8lzW7oaQ_uRzMvfrUAT~InTE6# zO;E1R<3QQ783uLSi9>J(PrsQ8rL8TuK?6391FWU<8mMCetQgz+|m^pPh5?5y$|D1&=i+%--_J6 zgz|rZ8ZF3Gy#`3z)&iHlfhbacF3wK*5~j6epWMmS^>5GP(ES%Q{uUSDQ{qshU^Ps8 z=~0wBZwLTBT8P}lU1+G@Pq=*NY@8*fBJIy>Q25|qsMd%|J?=VO-nb4$uH%BB!6qP& z<#I565};nX9OY)ch_var+fdPIH!{AX5}y1X{N4XL02Y=b?YS**@TWgfWZ%QE`H~4> zXb-2N6D~(NFPGD!;*oo6SJY_s1{(S*h>XO?QRK9*QFt;1Zt<9>9a<4DNW#SG%-8lwlZ)`)2ycsy$6#&$I zZ-Cel>@Pbxy`Re_?|l-Niw>hm#u{AqU=MrgF*JVaXyxk&qwJHus^heukWTv`R{ z4to!+_2QzpT{#RYrfjZz5#?TOjf`7<1?bF&k1a#^v03)gj1QEt^Pu-5;0gpAjy zYwvU9ZRms|+51ssz|BBe)(w}x{s?k>2SMyz+(R53gmSy*TcNx zs446qTkl7c-ChCc9bdz$!Q^!1CLGRZzu(4DJLfr^J>Cp>Yexd=l};%9;$E<}{YA8U z9cQ|?-bTjEjcEKpSD10QE6#SzM!DpTIQ)1fE>9}}z&mdPdCo~_sLgyJf5TNqyN)>Q zy1N2YMeqH`V zk=>ktioM8~!I8YD0*#l{Mq2PEnA>9}+P#+YFq9kAILh^K?n&3;WgZVq89U5pvH?2J*Bd zfDU^C8Rt;ZTMkFvzZRg4Z?~dI_ZPr!1L|byUU>QN6KJg)XSLsJp~kaGDAMT?T;6{x zaxdmuU_bYv!x|y&Hg55<-bEYxg2-6605wK_52(+-L*Y-x!JyZ+pz)X3OMb79!&ld% z+SG-}xc^gRoXmcjv1Bd%B%1Nf1xQDhPK3uE`-^5GO9KRFkd zU7tp|p5-{}#2NOq$Iy6u3eu((qTI0W;OZ$9!I%$$oHG$N&!@R3#p3evEHt$KO!T2a z4PfrAAHjuFx#DThRrAz)fOi~sR2P4Y+{J5f7bU6;yvN$tsdK3-yej1>AxNf@T zVx)PgVFm2%x2{6k^L+piw+uC^xO=~UC(^E;fm{z4>Xqzk-@Jpga<1@Rd=q$Y?trY1WHJpkfr*d;U=_J%$>A~T#S;)PZx4jnshBn%qi~yW-8d&>@eYZn% zKyBx3pr5(5{5uuxe!}4O;GK!P=c2V)jgirl>-*un-}G24psv3YtxfBWj7s*GgA~R_ zall*g0S>=)f`j+ok8&qm2$WQI!cjX>xM3oyJ^vEYUVj@kI?>#XU*hoVJ;<2A)!YSh zVcJ2u)v^mNU*xTWb8%0dP-c?4?U^cJ`I%QWNH(jryzL!dl)zYx)N~zla;&m%azeP_DC|?S;Z;uEN=+96evx1HfW#$gk!-t#jt#@rfjF z&A%OKTkZl>|HjBz@EDq0&CYr^cY#aa!Xa)6(uQ9Pn@?+sj1=CJ$zKlmg}f!ui?^h9 z4`n>o0w7h7ygmbkzvL$5&KW3jeKr6l zoQ;gn4x-%~cuyv)8xF->Z`|lX?pa(~b^HX?O1ZsR%{zQgJ`d2LlVS6-cc8U<79wrq zdq9cjuH45p_2V5;tqT`1yN99LrV^yxSPN&zOh=8&siH$pf#-Xf_EKMzJC)+`I;}sG zXUpcmpsSi8H?uF0-`x)jYX6S2rzz{RuY{|0CIDd7->Ca}0C?-EC3AV_^X{#vHk6CD z!4r`Caf`cu&5nJ&hE@w=^*}YRyqvUU(r23I|;3*us zy^X`~q6?{0AhXh#(v~_UPIb2P94up#AVDQU?YLso9&y>_|Iv` zIQfYPiu*Nc;se|?+_4^qxP7po>I&p8qsC4q;5a!Ms?T(lawho1oQ@4TDmpNq>Y`rz#RpJ?AVIF#KD3o4hR@W`a_MN;0pqbnvFXzPfG4F9d{T0q~sIfEZ!;CH5WS+pAQvq($_i`$~ zmQ(7f#{s_QVw`>10)^{wnz(8P8p@18jrv<~dD{XUcJnLFaam}$&Quis`3ku31kW;!%{+vhx(EA0DWGE7^_G4o3uq;+b6a{XR{zuUNlN~?z&%R3?Www|b#H5G?(DadG@ zi?nY)O5M?0BK$L+f15pN|3`7}-G7x1T%0QHXC<9Rj zq6|bCh%yjmAj&|LfhYq}2BHi^8Hh3vWgyDHe+dJby-Ob%(t^ z`an^6;u25M=0Hh<7_<^R^nO)U<(fdjnl#-6OM}&Kud7>ov#vyYQ_!BWG=0lb+8+4r zr$EuFz~r(q39#xemb#8sJ&CIkyz0q1E*9GCE9Fla1csG)0`#{iIR+T*h>=7LlEvQ( za3||{+Lp=6zM|wQsC+0FmAAeJb2d4ekb_Y8vO#%MOJFhsCFA_QrCu~vNcMVo+8Q8&>O-1c!*Rna<_oN0}#tGyG)`N#4HA#S@gy{zC+%;@x` z{6&STl!8gkJmBH4D_|IX&03m;^qi9TKbTUI(n?soKDcRnRaJT!f>>5sg?|<0CFHCE&Ym|`gj$|et>?v9I-lwp-HwT{--EO?ajp&Z{A^^Tp_Na& zDK4|v%3>tFt0$d-B*B*5qa5Igu1iS~orAiPE4yz3VyAUqu$QOxh!OXqN1&Pyyl3m- z%@*OMF+MGnx+LZWJ?pBf*e~^t1ao{! z6}QHs+pPSsy4^-hwZh0Fwr>arN5)c0a#c$9Jw~@5hB5R78hUKC4b?*J z5Go(r&(x^Gpv&>61-HFJSzY4`89fg5h1_HY3gi4zLA2R5Krt=f)l@hd7`7pXkw9WX zz4F~j^~+UqEmN}BNRHK$>z9KruN^u&Ce8snr(T>RxJY+EN4kJd2!;1L!h2odk?shO zL|C5`3ZLKzpWp(IbVv9E0iTS1oP@9?q^~b3PtW!z2Z|E>=`m=yY2p$bFg-tlPE!;& zv3!>|aY+tSQVN)oaDRD4Q-RSO7){HAURJ_sbHI5CNA49!t^!F?AQvhS1QaEY1f;$K zfo;-~-)m`>NV39#&`5Z*jy2*YqD9W9K9jAqJsHNxkwCt!YA8pm=obXp#uO_TZXmFXhRl^1 zCN7k%v^_zM8OTMFe{NJ;6TEHJo8mRwMNs274;fC$kch);nCE(p?4 zff!sw0{QH)nG1q!V2YIsHxO7xLuN<}6Bo)>XX(sJR&G#j`YH`HBKLV(q*~Vwkvypqdlm!MCZi+=N2=dkMW-bV_g(+4pB7r=mKm->ADN!H> z7j7V$c3v$pOk70J&Qugdds1yqP!Nm{|gNsPAw~19Kd%AWmQy_+3 zL<0Gj0ufx$k}(Rz;KB_AT%bmSizJ4LiwN48hN8N5#w!a17gVeR2Sd1UQ!Eln$tq(N zoeP4zq(BTVB7xkcKm->A8LB`GF5E!C1r0e@Vwkvypq=eeRM*bmf7RR&Tu}DDWeU5u z(J$N-i(F8$URNNZUl8OO1!8a!31qke5nK?YzXCD1a03AsG^CBhFmVw^u1`iv=7F5DE0Tu?g~C=kH~K^|2g1{aY)1}PB11wpPC zEHO-6M9|Jm6xFqJ+s|e$s939+V&%e3vB(7_YnlQPToB}L1!8a!3FI;bBDf&Pc?!hf z!VLsm(2zP3!^A}d?c^6ox^`~($;<^6>rJLuxo}e~azV+Oq(B501R1G73@##pbW$LK z3xb@kKnyP2K)?kJ`E$SU#>7Pg?d0847%kQ2Em>Q;mqW!`$P_CVZi=Nq#wrlO1wn35 zAO;taK++Y6;DR766^Oxw8wj|dcK-OIor?(C$-A+-cD^EOYg|yVo??oX3pd3g7nH1< z6^P)1ApI1G!9^sH)(S*$L68&$VsPOG0xoFC-XH8-M9|J$aDn!u+RT%+P4_z=W{Q;y zH^ovQc?v{uLD}o3KnyM-fgGAIBDf&PPn98DxPgER8nTi# zEL=p;&TGI0jFxIMQP$SDpkfVI78qQ(DV751pg;r{1UXHC7+gdG`RzO5hjuTAAYU_u zJ=EwIZXn=-+WDHqfP?Bgfe6}}hoZW6j!_nfH8>S(kg~ww!cDQr1tlv@fe0=La-sq; zxQGN&Sz+daAUl|1<-!dFT+opD62rtr1nnG*qPlhtRTc;?s93#~1qK&xibXCcS$+i~ zxFEK3p>oR45!G)V* zkqb&zQw1WpAV_TmVsH@&Wb3zPE(lW26e|~QAmD%_ypC=atF=!37no zld{0z!cDQr1tlv%fe0=L^2axt8wMAVK-RH}e(#qcZzvE$FWf-D1q~^X7$z;DR7~n8NOD^ovL!FDno+rxN4| z1!8dF1_CZ<$S{dv;v#}}jzv*jJ5N^@2rj5t$14jAF5DE0Tu`!t_(5itkrCQJ(7gYp89hiv5;oz9MV1zi!{}_FM~H_@9UfXjX~&0_ zRJsGY^FvFhkR229(2{_0cxXwbJHpE`VSQ*xz=u4vBw!pKT2kqb@Y+L53_u=l=HQVt zp2_D~^Y}b#h9_~-cX)6a>0T7z7t?%FgHHzWDFrU@`3=1vpM3bIx%N-Eih8$a}23CZEJsyfgpVpND?1eB1jhnBIl+f0cos2 zga#2LMuAAa!-3F981ljA!W%fq$E4Ftw$gS#u6-I6sq&eQI26_ArUzwh(>;-Um}2F^ zG$W7;K`lU$9p+_zRw`k8#E(p?Ife0=La*_fuxQGPu3 zf*h+r3@##p?A>AJf*>C<#ma>n2rQ!^Pe}|D7s^&==@idB2{))V1C<4W3o6zX$^wIn zNZQ$4fe0=LQcr;xTtoud{)w3jg1o~ND;I7c;DX*fEHO-6sCB)IcJjF=T|2K*76>jV zdlxAS3@+RhOKE440ufvg3f{a%n1{ZE1;DUx+CNWH0M9@w?_oQoQ17(5Wf{OL$hngD( z7jBA0E+|>+S%tEvYv&RLV(3LAkOBoFxS%B?6o|ov8wj|dA)O?KiHiu@$>*MQ?Tk?t z2rj5tKW+};!cDQr1tn_*tLR)1+!RZJJgYzi7X*1off!sw0vVt{1Q!Ik zT!9!|xPgERdUL$QFmVw-lRIGQIV&%e3u@uNm1tPd0$bAaL;35)8 z4+SE)AV`)1F}QF80T*MQ?R-SmHr?+mV2YIsH^m|sl&o9@BDkRJU8q0|E+T={S0I85g8aT#v&7)S z4Fp`!kaetKx%V4EJNev`uAPOlw#Ee&>vm;K3pYk;!A;KEI@ z$OR>}0!37no zhqA!n!cDQr1trU;Km->AX{bO9E+T<^w#v)}K{hbO%7q&UxS%03B!-EL2-?Z#o^ z0$Hd)1Q!IEr9ccW+(0z#yisD9xQL*geC|ot&Qp~If(t5E6J>$Hg_~lL3rf~kZ<)Cu z$QGtpxrhYvlmZc45Trzb7+ko4Xxe$T#4vH8Yo~ggNIc$>>-6Ld5}lr$(UM_<<;fY5 zT%W&S1DmW53-vKQ9`$c&&iV+_zr8u@gH8YD<}4&TwdL?!5@O-_T#`z6h@E&Y3BkkQ zvIo!f?3s#Qjkjr!;D4e`dl>)yZQ5e#*kH(0U?OM^Pl2g)$6z86!NjZ)8cgehZ9s8& z@=Rf47E?CM2OZh59DXiKmRD_t2J_$FW@s?~-EAsj#B+mvrr?Q7yQF5vggkR6h;n%5 zPNh2r6VKf7i5I6}>Q7V}BeRCv3=QVLzs=BK{=3@@2_}AHD%+nMC@914@$v*$ebiMS zTqKKM#7wR@z~8nE`61To|1@K?MwEdl15pN|3`7}-G7x1T%0QHXC<9Rjq6|bCh%yjm zAj&|LfhYt2#|*grJ-T>_240oIZ^*@sLiy*=xM3(>6VxkfDc-$=H-%)&7pUNFBHnfq zym@q071Q$ghvzupJs!a~`t!Xj+TT{=Z7cSBkoXI0c}Fs@vMBVg=KrC6SL#*>%QAy! z!iua?+ALn=AoC@L07^8IOn zHb5dDeFA)s8eT&a^mcCO;ajFei25Kc0q>_NW6XjFvKo3Enw?xWdYnTt8d{8|1ANm~ zPSN@t_(59&MbrH=#iw*Q*ztPFG)yQKo(6>dyb|?e=}n+;lDqDzZ z8|_{u+ifJv0!W+1x|G2A1S{M9a)=qocnXZzI^#cHJf-%5KPAppQU$ZAwL}I zp2SHTn2RpW%cN0>^pL02xIUG2jb1OL2#EoX;8aFt3X6e=3HS_7>di?c$CN!y%bvq* z@2%_-#iCAd5e(#%5@3obrYni8q-C+DriKs{aiwYr6ScTVgDX<;LO}U$!oTN$((`WM zCEw-+VR-5qTokOyx2S?Ki97Q-abFrog_sXAVTx%!$Ye%QeDj$arIY-rB4v_)2tPp+ zrs7HdvDyVX#w35fc9Drr!=7{~y-Z9B2VNlk6Ofx^e=Xw8jYa4Edl&jB2VK_E`(OuD zS7~5RNU$d)Y6&rw z?E)o}WLE-f=vR}3d880?Q?W1$Zxw?emEbLK!8^O7o1sD}tu8V8pzzNl{2S-b)Vnp# zMW5#DHsOU2)>kG3*2%LZ;ki6#uGh>!-D61MB!AGUp&32d*^5ODy$~j11f3K0@xvrF z0uU)_suOG7LZxRI>7s|I^h|A@1qYcGZP=|vEEPYhBME-k#W;cI(RhThk8pxiU2&x} zaso>T0PrPvgXL3@7#xL3pcE&lcu0<%15aY)R9#2&Ax6crS7ZDP=!>L@Yd9X9hR{D9 zKRc&~A3wB`JwdRe+zuT-4qg3M^phj&>aS)*?CPIiOG5tBU47~mXw^ONL%@x5;CrE> z>loST+AA>j**k*$hp^vF5{kqg#U4gs5Se$M+t7nmrS0{tYw#*ZtacXd)OBhlkf2iw znNpInlOLEH8=z;Ib?Q_0Jxtp*F<|>NWQ#5X_M6Q4d(_sCsWUM%D8J z*oiEos%|eNIgKj*Wm;3?rImbHs*e*U^hH}`ydt_JQ{pFpL}QbbNuIwr8*30zKAsb* z%;lPHeQ<-GwQj;3F)Jhs@>jiHoh+a_jsoo3rpcr~V z{AZ#UoWl>8PzS4Yb1x{tY{lU<0i^@$aNwoU4#d0{yC9RaUDT90q73#Pf)gI_I@tVC z-DSNZ;hCKLOD4sTf*jP&CwoI^!Q1U6KY0PIXspQPVxe#%u>~U)zo=$aF=%;Sz=SB` zArNoY5e4J2?TO_RfW=mUi`Q1th_Q^V+6!@o`yp+{N@#uXeJr7*1GbosWo|vK1+WZPz^Amk2)J0#yQ0T`L{C*ri5Y)f0E;SE@d7{4%Sno!;0izq?mIoFYWIB%~iPv@a z5gm$YxtA9SA8=DZ>sII%>x1v+R8{d^+qR8Sk~FcAVPXSmViRd%Kr^wg)x^qpMNy`) z5^&(hM}E-0rdRiHG7~Abz6~DN2hV8ds#neQtfST|`|7%(R|IMJc0EX~Bm-lZQj+o< zKVV(&tF1wr8d0zM14s0`@OpLok?K{$G`*`zX>-=AgR0rcdbQ$Ag{XJ5JX1$IBE5Rf z&?}BE=Rw{>YY1H-bdZZg`yj{5$d6RE?)y+1FZuZ4$Mh{`<;n~UgB}Rw$`GND6QwlL zqFkA}a&6;$j7|y}){J`@{m~?*j!Gr>{0{v1$d92{S8^*UQsO7TM>T1Q zmyWLw-rd$!uZHSbN3B=(_0_epf`>1+>Os0*^6)iN@cV!o5A#8ziHC|V5%nqqIP|ur z)>qfIQR)(QeYHq68(FUsbi^ant0Y9tmRfbQEy|&z_GqQ(UQXRdwSqEq=mAYw zGo9o`B--UgB!-a}Y49~&^IzXeC4 z)8B$?$@afm6v_D0(Kt@;!!~ebF>qsJPkLNE+&!`WnIwuj{4p_79sht?r8_hz{(xDv z7=spn+@M;t{_&t_G32jo1+v3m*{XEM7MZB|SPLzV*ITr{enGSt@@JU>+2Kz?Rk~w~ z_)}2TVk}y$ueX?tWnU7aC*EsN49qKcngf$yb!NKAGy;Qcv%zEZZ0Ssb$5MQL_Ms;-FbRe;`YW|GXA%knf(;ZFzo-Fc64K+JT`QbPf-`(ejOb-w-C=en z$?D8Hk!d)CY_l^9^la&jxq}vKdBPdlqHqQf(iveg>`Ri)BpJ@=@5IuaNh%BoHc(iE z6V4>1$A9*YaE614FVzvwG_g37Y<1?3v9jN*ZiZ~LGoR_%(wSsaWL9cbQV-bMyqEY3HO#t#Vi&SKgZFVM0&z8=Z^G-H9bJPML z_-7b3XCMF*R)-3};@iw)#wGv{i%et8*aTp-o-Lg*3qT(&uVw^*uO#up8Iu6Kxhhlu z_Kq<-V-tY2BGYijCIIvGZ0U?y0E)D{nh^lLQzQY-m;~U5@=yUd*5Zs!0Dd1GRscTL zv!yd;0eD->s~G{{OF?W4fRm*&76Irg8dYP)CID@9YaIokfu1d$F$=&?qiRwBQYpYz z0l20tQ~<__MwK%*0T`fJdbV`NEC7D9Ge<1|ZQ+b<1@Q37Pyu*(qk-y zuVw_GJ)E%#K#X+8vI0o4IAarlL-}C^V27S9oiPi*TUuVt2tWp$u?axNTOu+R0SJgj z)tIpfKpWj!M*&FCv!yd;0oXshCIz4aoUsYO@D-r~aF=LQIb#!mYc-2p1fY|iEuAq7 zKr6E|M=b!EaKek$Sdt#w-B6w7i-TfNVHp6M)Z` zg$ls#Tg=Yb1YnKGG@P*sz&t%$I%5`qLM^Xm1RwxsYyyxhov{c&vc(yj0Q`1ySONG% z&z8=Z1z?4iS2F^T17~akaM{vO0k}jos>X~>08Z1bbrgX5dbV`NEC4?at4RUKg)=q* zxVJP^0PYlxDram0&|kC2MF1|;v!yd;0XWI*%ux$KPdH-}fTeGS3c#Y9%wxtT0MkUK zF=lK6Fhb9k&X@(@DlM;O1fUO`u?fKbC7}YaYpB^7n*gj9nT9hq0eDu=md=<3V2YMk zGXii8oUsW&Yw3(d02*7Iu?fJzAz=kzyPhqbF$=(QEw5$-AP>&i1mM~?LIt3UXjF|E zn*f}uTk9wQ_4I7%j9CDFxUnV$U@)Aq3BV(-hYG+QqEY3HO#rUZEOHTmj(WCq#w-9W z&CVRP01SaMHUZf5TBrcLc!PP&*aTpz$TY@`O#t%sZ0U?y0D5Y9H6s8w!x@_Z#7bx6 zEjjJJ*_YRwov{hPDv@b8V-tY6dbV`NECBz~@@hr^^5Kk40M36^M8+Zj$5@=P3Ba#| z!wSI1dbV`NEC9>2yqXb!(Qw8l03%)r6@ZIHqiW391Rzzn)=>cJ>eXE&|X&&z8=Z1;A%^=BNc=9R7;6DZXd%z^SJAvO{z( ze2Ni+PjN3ApI$tn;?ti{`9J)=?v#fy&LG?D%!7J%=ujP_6bjCba zXK8sgBLH0A+UDw+3ql28)755YYy$AI$TXa>3BWWxTRLNo+Gs7WW(0sc51RmdFh5iP zs`{Cou?fH)k!d(%6M)rvwsgiU0Q0rHnh^l*32g#UTRLMAfU_*l*aRR&x7JYr4)%2y zfKRo&nh^kp-FnC8L}V-iaJ^{MMF0Z2wT=RCs-7Jx01eE}9JK)S2^E0R^Fjq+W*>7m zvkAamBGc$*HUYRs&khxUOf9cw1fXZA04#hqQ~=)XZFa^c056G5!x@_ZOx3eP1z?nx zS2F^T8!7;M=7tKu;a+BEYyz-bWE#%c1Ynh(9V!6NX?Zmx06C!o&`dgG5rB3UXKVtH ztXu0S0KZ=4E&w~UyqXb!0GzSy)^nc;6@bB_Q5ONYM7P#a08;hrPyt9VJ9E?mz;9A) zD}aAJ9V!4bdYZeLO#to`nMOCW3Bc8QcBlY!((-CX0Qeo3Z3Xc5oKOMS*u(6MO#l{& zOv4$Q06d^)hYG+*Ew5$-fZsmaRsg>~6)FIKcQ-p@6M$VJ({RQn0Ofjir~u5<@@hr^ zGT@AD1<+PHV-bKfi!(L>Xslc7C;-1)=`H}DXn8dw0PW$7O#lWx87csSM58VO&_%b_ zQ2<)&*`WeZ-|Wm$3qTs2u?fIqPlO7jjNuVw_m4`*xw(CKjz8H)g%X>rCT0LSRoItsvn%iRTFyOvio z0^ox)HUYTpu}}fHPBiKw02k}lItsukdUmJ))H6GC)B?~P&e#NC(X3DbcqGT%&1?cN zR%9C8%q9SR_3Tgq=&0q@i~#U1qD=t4ni(np>n}4qV-tXdBGYijCIH2HcBla4Yk4&z z01T~70FIZ=SOnnDOU=&M1mFviX*gpOfR%c7r~u5>@@hr^ILvJV(0xXz0GwfQ#wGxb zbZZ?2;ODOH0`RexS2F@2__sc^Tli?G01On3x(GnFZmpvLoUCVu3P4@6Ge<1|yjg7% zfU-wI1z>u>+|6tPaJ$Gfx|vM?`smrA0?)iUEy_TYfhYq}2BHi^8Hh3vWgyBxlz}J%|35RJ z|NfXSt27@EZ}NBM@U!y4zdmc=DV0C`A%8O^ZCzZ<@M9;8Qi(C591@qln%q?-)>4Vv zJNuicM7%v7h$!i)egCH_F-|3}NE`mVN{m;DFJ!bkRwdR}iI@LSvR5V6QHk9e{<+xv zK&iv;#o_n&#P9cJ4haconffx;~DQ!#eu0_4DOdh!1N^>>Y7D=miY%?QinjO_x{3)z*9%xs z(2|C7myS|UhExD#$zQL*FCcgS>#+Et!OTEWrY}%crtp2zP81FpzhMlU#Cs3;Lv;F! zMsnpZ3Fb;qfBPwb=P`ZSTb%j{+j39~c$zi4{xr7;pO7Ve^6__2eVM$pG^(eXTh+X# zDTQDcKNOhj8GXD=g_~^C;PH+f;IUv$n*NlqF#@g63x^GD5duzA*CI|6w3fyWIrsMV z;@lGHf?!?gRZ&;e;ZJdvC!x4e8H+*4VPeY~oS zeIH%X=S?hGk7T}>$0y=d6gQF2THKm6~Amb;Wws@w*HL_LU zeNOiZF`*T_VJp;96~dN^<=Dy0!cQJeK>3PRe5r@?*x@J&(Z`AV%IFVXMdMqViZj!z zXf`vWDE`5A`l~b+i=vz#=As+(RSutsGSmH{YzcGPRj`9k_wUlnjzd{}b`fQs+{OX2 z2|vixwj*9(5IoE(+N;0tPLRuf#r4EBWk9e?fP?+h_*<{S{%cUdWd9sy6vcm-rrSS7 zq~JwM{KR`%_yQCDg1xxr8|}1H?X5YO8OGcINMjx>_7k)yE`~ivrDNoo)BP$P!_AzY zs?sse%;{}adYm;qO{HU6G?#C$(lIld(=${$CP#C62fUPKG_2;o$|QKp3-oFe{x>nRYLSpc9S&i^_Dfo4)$c1ak z!uUzBBPblp!u87ogCuTYc5$xg_^$3{Czdq9Zxw6q@jY@gwPp$`>SBBs0bA>fHZ#7y6)C+l_hBxY-N zWEBKsFCSFag)L{52ODM8-<-bD+#YbZm31=7ZrD0j{;_^Woy3mrW z@`^?m*Dpt{f3NXPbcg><#>*d7Q_MHeqf|$47-?FRnpvV$8)ehcRV>}+-M_1ZKj*TcWS^PMhe7zS+@b}?-+V3c(qV=}1GD{huyj&G$>1MHP z3$Oh9q7i;G_W1%&S29TR~^8WuljVS0>ZCBv;{<3 zSh~>zNH=px+mUW3;T>WU-XqX%C;4~RZu9`sjou~crZ{sF5K=3oo!Sj)m)gw^`j6@6 z$g$In;X}GHd?ei+Omx>8ZKAuaq`R%68wGW`cZ_nR+k)*#x0CQzlWr&Zcc&XYfOMmG zNxCV{8r`Yr-H>+D4QZEjvxEL)x;b*}bYu9CZVVqucZP}Xhew*|PL*`0D!Nfnr~4)p zbm-j{Y)87=vT2*}R+DZg`FE!qJ%DthcS*V_&Kli(;1kkLx*_e7Zg$XrOgBf4oo=j* zNH>O$q`SR|ZvO}q-F`{8U(t<%I^BQfJJM~zcBI=$c&kabll;5WjUGU{(Yqww6laZY zK9UM)C*6>CNjE#_Kc<@_$4+;+b@v;?O?2ZHi|e|(7zG`Aw*}jgZYSZbCf!c*?@srB z^SZmsttPs|t-DV^K?k~{>+X==ZCM**9c5m3Z@<|@cer);ODO0-w*}j=cRLAhHG8*{ z{JZz=|K@e~kYOge!>zkJp`ZiZ(RFu7@3yRsxzR99mA?-)(H(Bxy%_}^=(b=x_HHNP zt!D3bl7IK!{olOqzJG{`?r`hwfhg!ecXZty(z`8dWAtwGy8HMWO>~D_cmI5YBi$Bk z$KLHEyw&X8PV(>GyZ@Wl-7j8mqC4EWy8s0pdUtf)9n!lkYh&KwF==w%_Fgj=s4&T|aK z5w6#@Q20Q8h8_xDX@Nl~{=xlo{jM28k&00KZ{I_oJ-`%-aBKNdDCjUMj&Long`xw< zZ?A`fS6W~Yihpo#U7y(z3O_>ezkPqb(Y2;fgj?qa`#Xl>2-o>qC^A5PnjQ*XX@Nl~ z_=RURS4jHZHiW{5P^hn7-B(Hf&3l0Rt}%ro+#aAm3ObC6BisXMp=b~C+v=g7iMHRpD5Coc*HBb6{fAr#Slg=;9PyRZ28B2y^B?JE|cphGC4 z`wG`kRCix-S!Yuy!tEBiUbsN2t{;X;TnqS?kisCXbMHReZ@o+bO=RsU*Q^x>h3FAbTEY?+`i)A1&*PJ z?kikFQQdvT^z%)j2)C~ohJp^GBD$||4MlbL6?M-ug(BR(VpoP^D5Coc*HBbtGle4DzT#9AbO=RsU*Q^x>h3Gn zooNb1xP8TwDCiK1=)S@=6xH2VbU4Elig5di#wh3zis-(=H5Ap|SG>~J6pC>BiYX}Q z5Q^x&!Zj4t-B+B_#uSQh`-;C$a|}gvU*Q^x>h3EZKh+e9aQljpDCjUMqWcQhP*itc zk(6o*MYw&%x2+vR5#3j~hN8Oripi&#LJ@9XaSaMOjEd;K!Zj4t-Bh3Fsw=#ty+`gg<3Oa-$y035zMRoTTU$r!aBHX@WISM+2BD$||4MlbL z6@7iCP=wo8q@kcgD5Coc*HBbTIi0&&~LlLsCQ11}IYf-d!h~Srh@V=AuRZHbt zP&OcEx_AppVO%{`+IRyB{^s3M8aW}QjrXG9Z{jVbkrPtdcv}j7%)n9_IU%Kucc|c3 zC@iIs6H?lEvkHDb#8MhLA*GG?t>AZGETxeXQo4?b!48(v$k9s&@I$x@_!Hp;Wq2!@ zJg?|G3-9m|ugB^CaRX0q!wmU)oGC1a*W>05$#qe$gdvOa2@b34BP1eg_Q-St{B+X&!C#(}dr*iaP? z#7{#bS*1Q4)3>nY)_`4yUvWo*r?MUZeRvT&jmG9{mJ$swI=`86I3`nC{1#8kAzngU63k~2G(dioO$2Y6Abl+fs;S0gA zQC%HxZgTNP3(Lo2luKxTjeeo1HT=t^ZM0TWtH(7%rRymLK*=gytnrWd1n1>8z*oH{ zZgS9Td?BPv+~?tUy(Ngt(hO8DWxqVIkl!dLF{3E{uZ2zUUGN%yWxO8+a_}{BQ;{=W zmMFn%ii67r9j;c79#dpqE-N6FI0-WDDmk!7E z#5FW4Bqr4!H2*~vto=!LMRvf|qhyfNI36+rg@Js8Ewnps3JG1oKBxZN{5rrn0T}J~ z>K&N4FGIwGVeeuMdoDAI;^SY?!!Ck};L4oLeDU-EDy^I3k3(Vnhn}{=zW|?}#7W(7 zjl#?+4>nyYa))j3OqrDMI`Z|LB$X3m&+)39T3Sx2#3+kRTv9A>rxeGTu%Ilmxj+d< zccAD{py+jB>(YEQc;MMA`Rqu^bU!OW`_L;7=7A-oe4?jhjU;c<3*V??#M2VY1U9>S zWkLY%^32CnxWRMgdhyAw&rcl^{kadWgUv3-C{&qRVjy;Xps1WxS;U-61_NzWF0U%) z9WszZJU`*DIi4nEWLPM;5lnrS<$@VO5B?a(wPM}~{jNLX?F~%pSb~;^0 zw`IL_+A}U7oF0?_$MLijXR_3;MG5Nz=OwJVt&VWLvbB4WQFThI@UJqi@`dy=J4e>` z^W~I~3=>RK!USAG8!F~$+K}zf%fX;aU6v^_iv3gY8GNR@$1}NXyw+HgKnWhcqQXyL z=H^=tSIHQ0pmG-2${u@#P{DPKNFHZ_S2=AItjRZ+3emrb`v^!o)0W!ooW_iz_$173nVn(Mgt%a+ql*PWLXrMv)ug74h zqpxHwEk}AzN&E*)DM|4h#0NC|cUYfZHo0s}nIO300hCgpzS}Obf?h2_KQchyk)V4d zXk!iZSu1E|2fENF&}Ndbm69`u&0ub&8#H5K04e~s;b*a*90ae!z_+sf&KqER_Xx0C zB-qX;+u1{eK1@Irop5u1n7D5-n-Hr6jzv?KC}T!Z{Ks?k>4LgNQz^w@I}4X!TO>g9 z*h8SCv`+NzB>2ILs`bd^31Yzy&$tT%gJcT5DMLzjQCvAlKa(^eN%XaIN7EAti^Zvz zvdWCg1texY&H^Q38FEPj^vN*|(DWQ6#;{0z?E>eVm*((8>yuTlgQey9hpR|Zv6$M( zQ}Y`IPm57f=SfMJSYKsxk#1R|XJX-)hVn2u+dm}0MQ~0@gHFF319vcdFpT@K)8_^Y z2Oh3M+4h1JE}7ed5*)E)Ztoe_gG=W2ESVozMmTy9I4`+;WCA+qp##Twg1v8mae66@ ztb@pr_*Wt3sGb&!H(&xct#UTF{8G<8$CeEPu)SE5srxBhvv!I(v_Xu&<~TET3KE1) zQU0{vDcD63*)n{zxXm`oESB#c}id>HXCkFwKHO2hPw zIbJQBr~6Aq>&1Rr5u9-`b|RDflW@*|mF#c45UU2B0D&KM5=$P!2m2f^wJyg_B;n## z1-1tHzEb8QjGHn|MVVGr9vHMCP$&o9G9OafOc(xgq!J@>$wtCW!)e!|C(+EB(*L9#C`^)wf5zioX3NWLPLbu~ZLq z?oQlQOk6Vu_US=aojYWH^07N(wVLhsI?hyy#S?*}rf57L%RZNcI!We5A!o6SDRJ!W zNH>;*)^uY*sM4iF!^-enF4oM6ORy=Pl8gs{X;ML19L>t8xP|07t%Rjh=C15I-`=5G z5`!o;aY z<*5~SNXxBD7^}T$+>h!~;S*9JcGsS9y^P(pCITaVkRlKWda=0zIev(W-#fZ_R_V)( zQc21HmMCdZhL5V0$C@?uV0{3a0#Z_OQaKA$S~l8NdwfUI3j!2y(PgszacEfH8i*6O z2I62+oNxRU94QkRR&St{SP4%q8(k01CbeUEFVE6&CSskqBnN@_it|8KnFu>CynzpQ ziFPXIxc35!N+;>-G_;Jxiik@>EjY!YV_Oh5R^8ecSQl50d{5<A!jGbaje+tCUm#ZW zI+=z(SNRHXh4J1ZV_jWmykGZDY7=ADY85-IQT6>$cSHT1xNi=f6pIEQ&O+yhrytkn z2dbhT1B#cXx-o&J$dR*MY`KXWsjY!FX2J@y6FA*+*AsHrsm}OYwQ-?imoLRQs}j6$ z9{_DGLq$MtL?`fR4CX-S6?-g2(*kxh%2dHpJ38(Vb7%4{}vxTI%-gFI=Ah2jz|qxoc)2`_-i$z|h?g)4tO$3zZdk<;QD6gAI2A@~#biExPVVOu}V z5e~*roT-lw+Dq3Li%+>C4Yrl7w_wMT8Pnxb72M20!Qf+8AFirQ*RxAfdecZmDlK>q zvY4@efM6MBYn6swMaH-@>$?yHz9H`Y%H13LPE$HIaSd&^5a{4vCW0)-e*mRT<6pbS z^z;nfzYI}S+?eI2VFJo?(=f@u3ukg8ktxzRzHt&VzP*VhA0U}`X?PQo|4>v49M>1T zbAY3m_!3JBkUxpljmG37avsV2uVDjg@V1 zufev&o{#kLLe5&i6>l<+#Vh8;vXJXV;E59DLCAMRRs& zIZu>%l=5-1i-QqRI+aw{a#hcARo`-zV7Y3rOoDG|h#s2&%$(#*m6Ry10wr+))r#nS zB5wR^EX}MKm0LH|tZEoyF{`0rgKn1D5b<|jc0+0@L&V>8$?ip-Ot!|VA`TRWqp6|A zIuK)`zJX-UM3eYSF}rnfs%ZzBY%#IGTN~5DWNIvqiePUnUNu%PG$su!@OIAx-6nYP zmuYtR+6umYD7+oeOqKY{)-W(^C$D2BbRC8zmBjx2 zm3RDTF}G7Yv_*mz1+~&rQHf2!nhdKhPUb2ND=&_BE+07D$%uKK6$*+96?d7Wz^gcO z=uF|_TML?#unYdE!Hc0XDUJyN2$BMg4JoB9acgn1$+%y&h)txm8fW-RQ7IQ`r?57W;%nBG}iOc0oUW)XDa8cr>i>BnjP z8EJlP`Jg`kOaTwe80|m_XUAWcH^&Qq&vBMgR>0_*C+$hF>EUn_KEBCge(Ot&j zN_LlVVzwEF;^TbdJIVP~0I#?dcVV*qqfbW33E0{+vChGwOznQM%!j)$V~ws{Trm#e zH&%JZOuf84nI%;(KMShrb5#eU=nH4+TfwE%OzpJ)6-yngw8V0Y42-!Fl?zN?L|NB| zk*HleRi}0W%|Z8Hz)#^|{am-TM-_6UM;+z2R;mn zp^MQjwq3x$wyR)wOrU&s3vpjZhyd@*h`m=xZA~S#0$|><*><}B!u9s|Vg)$5iQz3` z$necM3*YM>%k^spx<}q@ddBoA_OQy%5Q;CW8vS7e25y-CkW`Do<=2TE1g52)j~PYr zOG@pNvFvbS*F+Q|Ii2^6<3LDJ@|9BPB|{!DR1Gx%M#Rej;63A-qxN-ycc!M4k=?q=2i%!nIDx& z+Jj4wc_f{qrGupjx~29AP9yZyTDvNfiTXIb@Ce)WIkY?dBE^t`UaSoV(e7T%&-7Pi zTH0N!Wl9nZ@eoWs&zW5gLfGmaHYcO1I)^o?TR5ZIg)=JoD2%!(yirRb_^wRN)-oNL zx(Av6l&Ni5VVUxWGpbHFqrSre;h!3nsT(ExlCkvUBo&+rXgQCnM=b`n;iDFr=q60j zrlcHOBD-MlTw9{(YA4we*=n!>66Ff#T};Zs-W=*!;fP5QE1YFmA7ahM>D0Qs#q$CB zQ-38XQ>V)bJu~A%Ufun z%MZ)*3C2@nX-nI~f75)Q#9>+#zjm@d-;*FTJo^!tT#~ZwVSaEy7KYOk`G~f5zj2dD)bBUG%r%O6z3y;7PO2mqY0mc>8%@%K zHbJ;C?q2e|;sV~ilIrVnx@Mdjj8Qu}7oO5K2;n}f&8q>OoC4c;bn4;PfP(3?5-Pz2i^O!$lm2aQP7G%CaK~S0g^^_fNxxvGh;Eg=*CZ zSJneET=ePxDqPyv2mdHsb@@cT`{)y)TEkrt&-5+nyKVTG-{_OLx|A8VUDk1@Ln2<( z2Fn~&v=5)b``XG( zDoTh)cfg|~>5<;?Eu8ognE3KHt#X~Z(PX~CU7R2al<)T8E_58`KmAr}9ek^tfNf{W zp(43BN()|zRXry9rkG3jibQc&giC<6SoKtHRZA0XBIN`Ze9^~l$lHNFthIuFVYa6B zbE@O*zyVx9VQGoWki`h@|2RC~6=}V&`!0PxoqzyfDJE70B{cKZj&dOfKW&SIC2&oe zxdW@%;8mKLM4*|aT-6=fd>_faEWT$de-})KCT}#f^UiSqr?5ed^Ba;FU&7w!wh2|5M^0b z9_jtU&FpRF^{CmN$X|WmcZa2GasNP@uz#5H|JZvI@G7eFe>^~LiI5mvF5pVgs0gT0 zP;kGofLDncD^*;oamQ*EHBqdfNdpzU8AYWQ_n=l$t5R3MEhuWVF2Q}R;5sp=Ac|B` z{-4kLo|!o_cWwgK_W3@)fAa8f?wsY_-}k)d%$XS$B<-=ia#>jK;S>}dVHomIcZDRF z$QX=;9ZsIIEG)FXI*V8!fRuX?I>)T9uKot}IYoV5@Yh%Q@GFp+WQ~&?#RBWA50Jgu zYl`;PS7v>OWk(Yz<%3jY^S#X@`_^SRb<_pnE4-VH+7VrtFYxetNsNPMtp~8)z%9H| zYo{E0$Ib33z$f)M`;{_bCL<>bo81HbwnQy3=?xQ%d3yJVvSB4z_&Qel73YVP&Ku^9 zWJr*awn4CXOgWWai$`7y-GcWQ+}WFfdgRdzM0wR)c^z$Dq%+&y3(>h%50iv3wWx({ z$VlY_>u&?&8Wo`}fOV)WPyHzUS{Y4Hq1t_g$Zfp>nSL}i7EF<>4Gx|J%s9Nt0_(F3p+*DP~Lz5}7wsidh{Ah6{w7@uqd$NZm zrt20Ec`$r04v#lB&=K)>nS{ACyB;vCrJ2mmnZ(sKf$G^6qGOhTiIF#1%mt}L1rEEJ z3N;K=K@~6nPVi6eCMIH>NG2bFhg}3VPu&D6|5q1cFuJOA2kfMQq>^?tCa4} zj@lhm1>JiQ&=LkQt5Uiji|$#Kiy8jV(<660hYvM935&*F>7EB#eb(5Alu6%bCD2Zm z3jzwp+-+JE^cZ=v6re_mq{N7DOM9OZ0fo z?vb#}5q&5{28q8(A4dNJE{EfMD}H3wi*TH=!$1NY2fag4GA3RvX67XO3CqGpyNnH) z#FBG-qkT(iCYP>a=^3qD*hVWALN@!rXeXEE;UFw8;G5>c3`o(W+3J2ZBx=$E2hF6z zeXuu7`U_#cLGZheXAKZ6-hjy*@Td$hD3v70?s?3dcuWEZgXfVEC;6*qIGq)piegQ& z?u$NhFxYrbmHXu&-rtxlOpm*>sY}s<*vs$T$F!7Ky~iNB z(M{kuk=}bS?!jQI+~r84Fd3ZU1LAHODt?`Iz?SG?a%nS40)jNnNkZ1Rr@{>x8+buE ziy$vW9B922mfwcQ|4iM7JELwo>gXC(1Om@BvE*1G#V}riKJLE;st-XFSS+E2eQVjW zi(v>%1}!qCuR!rC$=FiP9q8ssX)yuR+n`xP(9$vhlP}jhwNg1lD*eWurcpt z>AjzAWc5hY!cYPz5*N_tDd|HG|EmKJ--w|Q3VVyngomF8^M{Aido2%-@ox=eoRszg z9&1t(jxvcZXZikJAUx7%vBF%1-n5=FRsu1v-QN$Oyn;qK>W4jlU$gkF?v#p)DV|)seXL5w4N^6Gzw3TI>-vbzD#21Wk-nv``e{6lZ`n z%ZV4Or1v`AmvobKjX3ct>1LexUosaVdP(JsQr9#Rmb(gCr=rHQ5{^K36$!I(i^1(Q zu97qkTT?P(h6x}het+GcilVJ;LcNWY0E(HEeWAD6^pm=UWHY3tPrfMV6?gAtCx+KxfF-lj&c#w2Fj7A!YL_!U_?&WfFIt z<}0L~0XnVr~P%-=zIG*ee$NBhE*tfHkm=z9?BPhQAyk5h21D4UKhhm%s(%Nl6eeOwyb6t7)UM&_!?u>3fLFqd5FaUKEL|7 z`06yOJtRhi0{kU0ZA(!RhPmT2}Yy;^J&{x^WrO5MUL2rH-m)h%5t zdSNOt9(G_wp=E5q`L|Piqi>O}=Ijb)MczuzivJwuKDQmkif|z?@Z1tBd&*p-!;D9i zxm&?|F;DM6C9sz+=!3a|-fbR#Zbmcy>EqA5;2(zZrzeX_%HmO^QG9Slmu?J2ThLRG zSfOV~6cVVjLNnh_gvgODekiYgRo7}9$M!C|)l8H(7xk~H_9_{p(&;q|M!=mjxO+); z=fMED^%i+tc(WyU zm!uKUS-MYgrR#7V8EqLW6Mtgwvtve;A;*Ma9)C`_tr66^LxC*_Zw>OOk$c1DTIu1g zBJPp!11Kuu1{?oNjPKir{IGYF+RP8Eagu`{R^$5}VytC+t%Cp(dzy<;bgkKd3<^2- z$i7+4W~QlI&9;8iRoaxasg*I~%*?6cHk0#|&AI!%58*>V!X8NJrUI4Kv1WvpmtF~oyY=SIuvP#C8##zTwY8( zW(s1WBx4#B#i9@t3z$&VEo_23LslCT4@+qL*l#b%qcNJ)dSyOYV1@-@1#Kw_9MZa*liw{)4$Ni`r?{+!3fY9?{^aXu%D z4JQR`5&9>{@&{SD)R?1MC!&&btICLBM*3ddo4mrs{n0Ct%t?s!B=84HU>hWeh*JaBUajXWJ-0dy}75cu1I^1DR~b@?)Xxbib8nTr@jIUtu@w+AK(t9Kc%N3|_|i}HQEE&44igZgLel@L9@OsXQ!5}L{p*=e z#+zSgzUi3WZQG-FhcLb8NJO)}rWx`M(R&l=(RTkBsaY=_A*`sLLrX{+kY(^ zVE@PXLavgU8KqNw8J-uOT>HGEf^%L8yxkryD!6Tjvb%N++*|1 zSx3(=eoIbgA>UU{g$`(@t8z*XqJhD9eAu2kV)f5Qx5H`!X;*tP+-wU+CG#O}w#wpW z`kF#Lx#@AU9l3cGK`PA6(0-z~5H~+}|KZW2d`_AuYf$Nm%;_0V%1RJVtJqq&M^;TH z?T5ZdhC5RhfO-+H(dC<}3>Mq4w#4p1SfdR;6`CzoJ=84F&qrm*puhYR1T!C#g9=6{ zXZ+t%1k(Z(Q8mZd^Bm3tvJ+4ew&x}`WD>KE^hMLi8sr{q$*bu;q^Z?m4V0YX{LX6k z_KnFPG7Glw9t%%BHshjvZaJ&iS-u_V-j2B}CKFil8t^$q_ucEKO!)~}Im~5^lWb*y zOkf}kqMb}&7s}>FnQmlqY$S3B=O@mfbqmRLR5SzSF*^PlnTFZtnF3ddh>wm4V3Gxl%+tifaA)e3+`(b;Gh6tQUUI)08cOgKZ1yCF^;PM;BicRu#hm0JD_i@riLks0Rf6l z6vd8;;y8n%Hi9COvkj<&roNHD_$)M23zmG%oeR#&n1R4M5U z=Z^-^V%bv_8*u*laNpljsKLsl`zc(RBvU7`U_d%^Bl}RkNtaIBP-hWIwlcV1E8rSR z$Dwp<82Pa%(oD>#^>bO=B;6AU*VJ8vX%t7=HV4`ksSlpap}o6bz!V5bj30w45oFwk zVxmrba54b}k7Y^QP6$RpD2y~NkjBJq1``L65*c_6(m#3<*b7E2BMmnJ9V>ak?sG^( zfmCACoor*nhHUc~BgIf69dUErhCc(57#o;VnsHo~Zmi*xUTt{o+FX<(9SW-!{_J9`CoG;1x~8zX zHC05%tpVNDKwU*?sms@QP$(jjNd`t8#$oTJv}D0z?1bRh#Z-FRdOafqdX_t$K^UZcmr2$vj%G2HL#1lI|)AykjfY`Qz3|6rPzu^0_)|*uRUwL0v!7ur~tU0tQxs_FlUsn8XVgvI3NL?@C&~$3sY|i zpk_VOzuu%R^r?LBeH~5c1dm*pO7oF@ga+QD`{a)Z$FpRwM0d^@jPo&TMl-+I{32MG zmPKE;Ucwn9lW-39b)1J95L-rKIb95A55@w#Ky>9S<_nYM2m)qgS!=@z2*lmD2tiq! zn55`0PLy*92+1RomWI+4yPhgj8`BsA_vUuscIB$b17rH1*G~UeFa?LEvI8i)laU7K zR7UGi^8e5el1Yn>OJ66lmbrvy4B&?$jV33N)JQv#h5=#)UG1Ue9dkLSkvFLacJ+tiZrmE&T|*@rhN2vb`~0c3-vG}= zpM8LVHw8&aI{oaE#781i?xdBVzdr7stSztLexTf$6LkDCVWr-oD#X16{|*%xPCFwg z2^{Vw|HDV}143hX+JjHDUj6ltaubv1B!=^L252hr&S2d?4tE6(=_Ypt>K9h7tpxn@ zuZwvbK~B*`9spa$hD>75UHv;MZ%J446b){SH1is#j@UEnTgO~le?qVFxmEa|x0CT4F@U?h-!9~sJ|py?Matdw-#^AZ z+^~-#y*xmQcM=ilUli#x2I(acr2L=-PjIB%ck<;?k1Kh{NF-oCdE|Zp)#DCON^TjF zu%+nEdqa%^z-}4+EzR6}77nKu2>o^f@G66&3molc(55$-J=MN-DpXtD1-Ezfj*rM6 zcYI#^4p1Twk_7g~&(kV7e28pwfc6bdU(Eoeo-)K&>U4BS;~v;tmO|tiKafk3`y#}I z=U#AhJ$e0pp6I__^&=0W9I5A&rQbs^(D13L2k#N>pW^u1-w*Jih%;E@ByV5=?f(Ss zZ0$cH)R=p1@`Q7V)Og>KYjzWF!W1Avxf|!v4M=YwtnkpFr{r9TX-H?9#!2WoD6d3t)aH%kef&us@sIYBkn74f&TD) z;rgX`QWW1N&#NwAIX15*^2E#GcZ+zRZSci=IJks(Uu2Dw{D}pGa#LPNylodUpp11N zgoa}d_~j|oMFG^K6zZD_wZMqtfC$uWjEoU3-Mf~NXV9L`RF{sOmjZwlx2jp!FB~3x zJ~#IMu6gFkKRnnU;UVUe$3oWt=g0O z;O;XfsAl(Fu*LiPb1`~;IVpi3;`!$94e?$CIUFa`++BWz$U;_l)ru@DY)>CmdV8Cu z6Vb-XoO5B;d6eKGzp{DpGtHtMeWqIwTm9KC?NEQ1Z^p6~!M2GE<9dShnp`>)CI5J; zY_9h^*SxeDzs&6v%?SK`0fxeLu2p~kr!n%AAT>KOosXkpjPyjtGj3y1&cmt7JooX> z#G7j5Rer?J<_Rn_X8L-!s~*#gJcBg-4k6{VfRtyHl(UqSMnlTmtHY!$1?&naoN0nQ zF)k;r+=DSKz^jX=)Cz8E{$gL5ghvi}&U;3tMUTKf0)Lf3qlIuJ7@}-+qOfQ4Uw1qZf_&N~6SJaVaTClcPl2^a zLJ;GBB@~ckdJ}=%3OZ$M$RrLO&(vE`#rWWT8W<0s z(n$+wUl=i)Bl7W|J4w@n;wfS}*(2l#5JvFilp6c{$j4|e<742b4SbiqXA%CrruTk` zJEXIVd@Pw}hOYXwFfaILY}KuXvWcKr7C&yG+Gq4Z#nbr}Zl~ysOMTP%0x)1Ye`Jl5 zyo&{-_W;r|%XC`PR3V5VLpXBz4;h3Pml(=fopu^ZPr|kP@5M^VNc3k#LWs||iRT6X zKs5(;_>P?iWi zJV1;K6(%qE2kiXmZfEG(l)3C|G>|SDwp*#T5|!&lO4rBJe7XLBQK0K<);P(n4PD1X z=vqeDpo^-9T;G#HlS|Vi7xu$y%5^%f-FH4zxr&h3!`)8JB>GIipZWc7r|5}*n0)jG zF)u1HKe2$4Uq%45gw%$&H#0ZmP0oq=EA0#qfqx^0FB>B26gW$ zv_d1?LVtQ%fS^B@H7XVpO)BV!XuducqB#~TPKqYyj!%|+IxtG+IE~Ph zN%f6|$~+0Nr8Q3*j!d^B^L*q+;d1FzFr)iE4=9)4v&KmdGF;~ST#9*Sh#Q#jcosa_ z9r%gLdr**YFrZIIFL(0$+Ggg>*EIc(8sZS8=4DOV|_ zy^Q%)4ns6CAngB*2!xtyT@Q+VYs4l58#0Mc`$I@W7IG0YUAiK0$qI)TSjF%?h+a8Xe&JT5%nzxGpugHjChjnDZ^agMcpwJ0_SI)4 zrvwDVO)2Xp@AFF9lQ*Uu=4KU6SO#xjLSY#hoT33Bnnk?GZ*V(BkF%><`x+I(3#@UH zKMIUyw>K=v5_oHEd&-?_0*j;#)QYh0e0qQuu}fpazb5#Y`;`bsur63e&rl~Bf-ATFEr{VEKj_4h?9|7iXE zP3xC7D1)%v=a;BBBB^HTT2aOUb-psVPK7v*V2zWU$^zCu4Xj$?XgyAP>3Vv|E4sqy zqWUhL!iAbQb6lX2r+CU^QW;q+E2&&8%ZlT8C9-%5gBJa(if9mK$D-tHVHUqHYrmQ^ zqJ2D4&NKT9qnX+g2#u0J+*UXy%%WyzMsI16oiNi(ToIaH)I`7f$nv=tfGW&=4(Gmy z7Zl>nq<~aCM7Up*{FdL&c8X4^^+mZosdp09tZ|ZmV*ybzEwe<~hEFNlfR6>>xfqDP ztMmbog-65I8f8~bwxq-o;O=>l0&I;o6zA?a-(R3_9;KLjr{y#UmSa?I9_B8_FGv%96KT7RB_0pcD;0}h+V?2HW|f5)~q-5 zU#idF$1FK@!DcUM@BBb}?-lJ0uJgz>%!O{F%h`$Ojct1~Y2IWEA>u(lT`hd>8}RvS z25TZNeDh?j_8NX*q^{L?!9Um~f4UcHUS2bl4sP>B!=~Qc z1K(8EBm%OB`=v4)o#hWwf>&PTE9L+tIA00g)ewAjYlz@z1ia@cSY;1rL}&TMz!%K_#C$qGXJ2e2$-c3!Ajsq)#2O6K5oPFy$n6j6g^kYlxcv zsR*e$(fSDi;(JGEk^tZo{k9!c#{w0%Q6)BLe|_IekZWnWcYuaFAeamUT%QFiwY107 z50i2;^$95K2$RIh4>XVg)277aWNql!R-(lH-5>H9*bYQTiArxw$5>P9i|ut^5b;ci zZHfwi2^iI!{t}<%D@3#HOQ{ik+^s=~7eDeQ<+mN(whvZDWqH-Za!73X#M~15CnW}= zsT=ou!(!Jqb6WxXy>^hUyh^Ecb8S=A>Y^)GaUUhHovGA3|dDT5-yM;e%BH`+gD@6dk=;WGx?WFn7w(9*y81J76 z9xVa1dVBe#fXRhW1gR6X`@Dw6;wf{0aegoS$NiiM=;~H_O@FbQX0vHmZK}D5@6aVX zSs~7aNHWqD6XgdmfT16J+Qw_emhnC| zLD1|iX{#d!vJ=11?G#l7(Q%l{=RDRp$=g}LKqer)RQa@SMI;c35C*<`G5s8cZ3+7E zRHB2e;!>{5tvy!M9b^pd1w)rx+3N;z#xn3f4 z`dB#MUzzn_VF|6$TlhHVcbNK+2+_~%DJYje%FCI>AD051<&Px@tnkN)8~Og2hZ-{A z`J=3~j6u@HI3lllB!3Q&pL_6Unf%;|KZncDQvOWI&rPT{{!G^oH-4ICL)1@izf43u zHwaX}S5d#DfohEjRLdX^+fSdOOn`zwsdlj$!G{Z+q?xQQlfZ@84E4uuDYnoed4ad+ zn~;NxGG1(KTEvRKp_0&2LJwnhLMwiNm9XNOQdX2sa6ixmSn-tAr~?1&xu&|0`PHks z2tka-%)hpt=7N?2&9dITM7M&Ar|^UWh7qp<;ICo<@Uabm7X|=-iVq_A*Ib0bON%BuSfuX zsX-Kb$c4TSRjXo8W{s1)ngx8Q52B;3*v|qw6I=$=#6=5pr#+~FauwbWKuFsQ|xG@OeiBO|L8NKyCI1}Wn^!|$ia|< ziIns=8p#Cm0t)A#bgvb1^}`7?E3q+kG}@RECs$@-tO()5?crx?`cZQL?X;Of@l12J zurgWPk&&MsN*3v~?yt?{qvPXDnG9&uBIAF6@_4OClILT*NKuV`VN?9?l zRv0#nKJ}6n^C$xMAFL6hfiTFjdlPChcFcS82*kWw5ROgE%OewrdEF2k5%UT@xKgF_ z8Ec$mUn3pn#kMtn1Xwab11Q7CSR#au=1K{Hp>+Ei!;9>qHB1wnF9tZTR-7Lx&W#Pu z*C90vXWKclV9PUr^ws@*|m!7Cq=fCK{hUeEV5;{>~N^@ zy?1;yinO7|y%vcYsV7g3{vDDSeJ%!W)#u+KKue#?*pNvqDD?H&B3(Uw@&YL=K30C{5BS_`?KB+Nx5|qU@-xS-5;!zK{$9ohZ|*b zoWtq4j2*uBk2M$K{UnqoGMAN{VOT5@Dxrz|Ots4R&@^ zc7#u`(+C~eMibHFZ0d32w|zZ|l%dD!mqm}%kFUoV{mr3p#2-uW%hF#H8}R*)p1%HO zvj#565Y0bvLH>|;)lFv&LShq3M-EXoyQ?4!R<^KGq9DY?g`NGnI_lbe;f+`!?eb?4 zQsxxjn`_V;Lb`%APVz|>5YmMZKs!SE=(iBkS4_$@PZL%kq(czg5VI%*Ur4^S$G%@| z8M>;x%J9pQm(H|_MeF(UTFkCszP-&W;r&>s3c_jk4R+h}W8zNHhbQ}js0Vlm!etG< zn_vWS4%Q?p2n6l2R;D;SeTX;MMP~iC_@Qg3Xn6qe5(W630vuof_V)qmE1>?wUVtq( z){wE8`#C3Su&UXV4l$irp=rv*t$a3Cvtt$iq5yw`;(t@|7a07rptW{1+d2lCO~QDL zW)~ARG+Xn6XqM^@({-rlXKUeeX<9~5xM4T~%3 z#>ay6D}W_jag1Mx2Wzm7E-V6Q@0$hK=4ab)79h*VqD3z5!y+O3t1^%C6WmVGnm_nU zt-&A-0DokSlicx46j*b1|7U1r()uSXwTX|QeH8mX#ia>$2!(j_xx1HH2_jM$;T{T# zctbFYfi%vD#o4*o#0S&LCbzvRJ`I871fb8x4Fu74?mF z{ZWsSvgElvC^|#!b4_ySfG@2+TIwU;R~`PijM>+WAw2gl!Iho+(OaH z0ALljVeWZC8&jkV6ta@k$R170!zw%Jxg5-czrG;3X+0%bI`tOxHHp@%@#EdZo92a8m^X^A) z*s9dm`(Lb-!AGHOehQjpZ&K;*IM1pfR(Er|hV-~S?3z5{ST)ystbcG5$&5>Yv=^xBRmg8}R+-Rla|6`-`UDSB4mFJ{CzO zx8fJFJPs#7`Q|O?J)}PHQIWuBkEnEo`CZUC#yvKv7AL(jI41TNpoNLf)MH}LnPXxn zVE4h=K4|^Kh+1IZ*BrP9E7A@hn0+6$#y1xGmF18)%|UAdf<+xa!fWDerIEVo_aGX% z4J2YQ{svJ<@Arc=4I4r!Q<^3X zWQ7b{XnHbQTxohrg9}N(9wPzx;j_iUW{>lyfk}`6EbKPcILS9zU>e9nps+3M0pS#< zwnQ9=5hVG2ut^IcKI%D7N=!rO|N$P(j4W4E2^YwSAJ z*sZK_lCQIX#tz2xYY8cOj_jGyaF{2VCuralyN1JTMb@&uscok~S^l#Y&of|iwn}%< z<)ry-g|xt+u-(u=-!Sri>lw&ujWv9x~VpYO!q(#V0?|-g}mkr z;qW&BhfiZLI2@}SPGbRI`w-AnzMP6R9~&& z$SgjB2WpDC9iN;0B^0JTs>+;oDC*J<(|2K1STj$hp_xOt_Rx?kVnoQj_dW@^ji5iQ zDNA25PR{=7Zt(lGedrh82eU&}_-8?$3LgRFJtP-6TKdmNd;O>z4FYr-`UH zKhYQUhv)?_*pxL+ax@Ew`aQ5_iMn;M^rDcn4C2mMoeoq)Jp)8MFbhQMDWW|LqI1KD z+WyEKN<89O^jAlbOPE#@t~qg}+%FJ@Vto9;al+k~C-~fbK@d)2DQleM76$20$e%3k zqVwsf{h{1*nB#<%`^ubll?xT;Ixp8Kl;?gkPQ}t+NWb@=DiWv&#I7?!;y@Mqg+>Ca z!JQ?6){jI^M)Dz1UwNT6y6cNzMt z|CZsG<-am}XA)<8?(26kIv@a*iBZGW^=7*{aR6s-LHnrczVvJU+#lcIHb2wVUE8|0 zMUws}PZoI`R^^-g8jONG4rPs#{1XevqbIUbTjA?NYMjEc(qU-kPkb>5{{tB-@R0d! z0tio{Ny(#+(2?ZhmJ!kEP#qjIA0{iivCO1ILUqn{VHUV7J7gE zx&H{*#<^TdsBJ7Je#G`y|1P#cU3<2X%ios)q1wZE^tSB*c`4%gF>YWF==zMRpC!-! z)S~1AU^}CH73D4{c`jlIO3sW!QNDq4SCns}+zlmlHVoz4D2Jnb2PMb9i<0BtL&@>) zqvZI1q2%}vP;&fYlpMbVCC77GSc8&*f#t`huJv{yP#Z+vMb5~D7&F-MaefKe2F*Pew_zUk~L5C~rr(A<7jfH$wSWlstSp4P_GLwjdu%2Jf~pxg%KV3gaU?1z%;^-WL?Kv{>95A5-JAj;!V^2_Ddpd5@cALR}x zN1@yiwzPoUfl<<}^Op*#iUaMQj! z$|bno1LfH$`NSOMzZc4pDECH5Iqrj!{;)5~3Y007)hNqRK8tccl$0BvM5AAfKuJFt ziSlNYqfmZ>a(|R7QKnIzkCG39U61lWlt-fE3yvuF3Y0IQJP0NEIT+>XC=Wq-8p=wP z{ZSr@@-UQKS+$@%4CNgt$Dq6fZQ}oZH{UA)uU|xETHF(Z}1?Hu5kuY09xRv_mG(h~8OEOcJg3+DzS!O)*jsYP?hNBja+(leo)xJ@E4JmgD4)x?8(zj- zeC>~GTBooYWc4Mo1#Uu-o&H?j)X9Yl4awTJxSQA3#k7^rrGN-jdI}K(0hDu_jKQ=@ z87g_b&_elth%x1Jn*=X*QknIBdkyC#Z!eBDsk@>Jli%-y$?GBHY~JKW;xKvjz717b z-wcnNzwjo&x}{TvVkWG;@ynXP8ik<5bxX_y#&=M_GFWY%#hA^XQFGXgpYC>w1|Q{{ z0}UMJFpxD)@@N(?hm(+7+UCINiE?jb=}Z`(&O9J%?0HqFSaGZ0grPfOAwp8-pat1W zBmU%cA{_3$(A9+D-7JVJQ4&M>*at&EfEzHP0`OMx2x);vc3uXkhlYa4%9IT@jD(2 zMaC>twpU`V4T$-p5;IeYdCm}XPMDbJTJ*p@VHBUj&BdRMQ5^<-O?robql2eB;z2`l!4|@l)VVQE|ZH6lF1~ERHfPUXF;{p}cDtpgbkCC-1qK zF=FIBZ>$jW;Ss*_FI8e(*5JIcA*O4Xn5ew>*aPxDkD-LgzmfObjXC9w{kMpbuT}g! z`n|B!Em6nD&v%ay?oJB0yGpq`LAkq%1x&jXmST&VX>)j;!%nqs%Rq~~)IpXPo{4BRqRDZZ{Zg(hq(^%sq=d*x9t^%<(dutO< zi+nDAfq1(7?Xab3Je43C>(poeRv7CMF!r!A)=L>HH;m1POfAOZgJ>fI)!I1qMmNMd z^~Ym`nD>9{OZibH<|EcP$&C#$JA{deI(2dwj9``on82y?ff5-}Ev(27qH*~U(;+#u zBR65VPPEb?IU$irG`wYmjD-~M3nPDP1YACNJq`nSUCR>J@&q2PtC;cOdH`-X(!(k- zuFE-+r|>7&rRPQVdfqrpq_I;VjTHcjJY@%!#<475bNw)N*{UfaDriB8ZDAZBRqppU zLIMu+$cv2lBM47cguMfVT>uIQH&%or4Z?dMS{vcL!ZQJPfntzYU&GllMZ{#^9W4In zJ+dYQN&Pm6UYuW5W@ZEhm%VWWr7WW>Rloe?4 zL)tzyT}7mgB>5%;8818;!o8-!mnol0!wd!KH5Q|h22%wf{%XgEy4(q|0-4G&3&FSx zFdD`w`>X$g%O=Xf6WCBN2U_i;ud6WsrjJ zE;;wRn`m+3FSi1=$Y*HZxc zXs)}{6=Gfyv%RNM{AAb|KWbzE1ZKM{Yj8e*1yuhXxU|i7q@coH982$r9$zos0-RL6 z&;(0H>T3wN<~k}XcpIjWc&ssRl3x5!s*2XL7{5nkntbU`Coko*RGD5!=+bm`zur{L zGV*GL*A5ZR9z4wF%sfhYKWm)i$1K3v7CvXKyIXQ3F~lG;g;|fF!^kTgNS=@TwFv!e zaM@v67uw-6lD+^U39Osk_)Q0A!d!uEI-H>Jh7V*P82KCw3>moqFO*h1XAkTIfo zV-V0zfL*$Q>!Z%+Dn9!3apS=vv$uca%j_fdChEuJ#j?~Toq_D1aLjo^}9;nO+daUeY4DcusI6Yf}-;Dz5}9gFnkWw(0cTtJCE{m~ck3dw)*6uz@tY00#AqT>SOuhL&$ zoguOzx9yG@sbgwR33$!bU%379D#1~+oAeKJiX}3Rr+`yAo?`PlS4TyUDSSOzthK(< zx7KIWTBorFc_j72W-55nX9O z&KF9~KqcpBL(Xapx5@bv@xsf;xj!hrDBzx{cB7!)LCS| z^RoR#NKYK>JKrkhGIKV*KJQoGpO%nRRP6%Jiu(8JQg*6%)L-VA!0V?aY?DJ1mVqDz4ZU9s( zhK*-KCh`9Be)>69y2`;8-s{N2CGK@NtT2l;9&VZ`y^!X~c(aOGq#mK?o7lsB;__G@ z*>aS~``&|mc^4pXAlN;~8YlTF3y9`aq}Z0cTX~O)BA-gE8t{sqM_;~hsup#S>I6d& z8FPP_Drd9Uq-V4EivYN|3Qj#4NK@N^G+#t-2GT(NBU5JZ(d`VL6ds()8a%L_!6|F7 zm#zx=%o~7wfFAb5djKlh5rn@X?HSZlJHViBV%DXJn5Z3z*qR1O#Ht{mI0MVIAJ9b2 z$Rv4E*uYvuWr>N+zJbkQ4ZCOD+yN#kM*_|kitwk=J{Mal!qu#Ck~y)lsAmPJD;4!kin_(1t_!1XJD1C2YL&BvYSrxgh)Fe1ipBPPN*K)q*v2TfX^L&W z!M0HZTjU(r=>wtNOR#KDn=+U(pZ}tiKGj5;oo_$3&510E!unXcF z=9|Y@<0QXifuQjn__mFJ-@f5=1F%5I%_-nxF`~M+`8Be-(EJ(|cN%S|V!k23yq99W zMKQl-Fi(nLE+TV4Js!y9{U&C6Wh|WxW?1RI2Zh9>pHJ;0tTqG)4^)I#D#E7>!omo` z>(NUAABWY7w?irWIuyKnDQZd3^nf6#uV+Su!~!>%r@>|TcA??u!au*e)1VJe(pEyB zz5?Jp_cMeWzbmKK_Pftzcf7NXN=f5b9I;gwXSiV|$Mss@$F^l#@L9x4_og~(m9p|) zt9|3%BBW}0lMIe-ykf(&eN`^n_4 z8e?9`cC#Hjhe&(Dl!7fIAsmvIrW+>c_MXy!q>3QD##%I{>4yLk+NqMEC$KeOC1ti_ zrR|n!{{9dxxO=U&fg}R^_F}(7gNV}o2sLvdZHU5T!q0Dq0QISC`pS0fSki{+XVhdM zu3K1z%V7G+8J`%(+RIm7c*2iQbJ!I=&fuG!uPl>V$yZkKXEa|KvZt8Z!V$iy?E<+W z^gPcRC;0;lsCgnxzz#h;E|oK1`PUu-^yL8PZVL2u1^TOz3Us>&P@WY`JCe%d$$$~C zQ%)~58ky#z$xCWt>`YUo*#8k=-&3(atk_)^VCfDh$zn;97YfNrUgQ#fLosUdvhRhl zNZWQ7mah+x^3Dh3c(WpX)gT=jK^mFfmTm*I+Wu!54e zSeO0n?DGR_6x1@zNX8{JSl`NHFN#rbjkg$faxOVqHR`+G3(Nw0pHK%d!2SeF~puAQ=ILK?|mAsXpeC~MQ z#4eVw^!@J&&2-2b+)_fD`w1%NqJN$@dp)`p3}wJ2*p|?HiNpjunTDJmc2b7Ru$|aP zm+F`HN#Ux4k5E zVC%bA7=vYuoj*Gz&?$jV33N)JQv#h5=#)UG1Ue72gT0#)U@ptCDdXcOykZ~Tw4V#ldMgrTAk6>f6x?Ge04?d$oAOYDr~Ss@ z$nLbluGu09??;vBtDx8)gDA)^55&frB}lt}-BQ^|!zq!Hc@;os?P^wWA1sqN{5F4A zGld%S86(2|-FOHb8@f12j91~I&Hem$sKKV!KPF7O2jsL!|kBTnSqCqdlY=)}(Ee0eS+lfNLn^^@VDFGZO}yvpLY zZfPT^=B>Yyc_sK|86oczzz7%J;u|5i@qOvg^5m{XCcjI19$NCqKNzrNV_wNL$QIbN z5rrw=?|abSVM+KOcg;(>PdYPwA|pTmd%-+mkaFQZE-bu>Xa?m!PwtHbD_%(X(qpe_ zBVI@ef9nzrvl_k0T1p@Jsg6iyx{eEu2~)zh#dd4$g6l787{eT@Yi$ zt^ApBZRjm-koPxu1`V3+yEEc@Q}cV+JS}j8do=Ow!JQhr-Mf9$O)7c2vZTEDq5LL- z$Hf5L#LS27ln!V;21Xah)Y|Yf@dAx@m_6vB1Aw8+g2n#*rY?fK_@Tlc3zqcixxk}I zVhj4Rx*(`lQd!+oA_E_lL6A)&Hbh9iAdciPz5G6Di3C{nyJpYt@+R&ko-mJ%gJ9MR zmUJ_rDV^@ND4hW^*zXAX1LpA^H_UUdg3Y$ggN#B`wT-WCso1lGmdIV$Mlr3#c{ll? zr4}_jIykPvf&AyEq=R{_Y;Qb!ATuF|*?;RGUV93m^9b8) zfa1yAMwAF+Gf{X>@BaP|h70e;SUs621{1t7W}Y%X_XJ^}76Uy7!t!n;$aX^cuROAG z3P!r(ln@S*;8=4xE_tlkWE2d9?xsixs10Pwb7;4ev>%P{}l?np&>6^3*K& z9UI~D>qAE9Gix;F?x5KFablQ5sX-c4rEh^>f&aE4ezTJtMj{>3_ZphmApJezHd443 zo=Kr`1~?K~th)`9FJP=i8*OzeOdc`}*(!sot#2bbNl%UF_B=Hr54(TIqWJW>EKw-s zJ2QLs5==l?oCUoeVm8r(iFLBYSaUQit`(CWMk^yu3rglO2Nd61h#(G1nO~xzFB*dT`@E7I*>Bpq8Mpq? zPq58UY>O}nAX`P=gn)o^1q89c#Z08XTgx&37F?6?B_c|Rp@Y=$<$67{4znWi0_nnmdz zf09fnTU9tXa3>8onQV8s{7}5Yjqhxylv75u{LLqe_{ZOs*6*>_?<(u}IO{hL=6ho& zc)yuh!tcRR{|-eiVc|DWZ9ORn_u zfvFHJsQawDvc>Gr-BQ`wynOC`VnNC6`}5pt(UmCHB!}W--~0#>6Q-?^7Ck$nbb`O& znjk0gCt&40A#dWjTyRaGvec8z5m&lUpC}9UiReDDWYWHANgoC91rQW6p=xj4 z-Y1-vNuL)@A6cVUx6Nst2p>}zK-mZ!?heO5SR(#kZ3OY(%rp&c!ZgI6K)#oig05RW zdG!^(C~JWcmT7}cP)D0OLn{6C>OyYP|A+CZ{IZZ!F$6P$&~@oQ z?j*&Yd%e0ZhzPA$pY7^-V=0=#!Nl{%e~SAtR$qg~ms}S&u!K$H?>l_m(ncpeg54<{Ip; zu3eD-UoK_t|3NHDmofwQkqMnknd_uJvXuD(xv004`5a&EbPoqloF2WU%sea_Fg=Er zGV%FE$D6d}fA;4`vp%`R&?@Vbi}n^;u|D~tfD>)<-uj55Z#`H0Zl)GBb&swBRJ%o~E-mx5uNcYFzs9=S29ezJ@o>$YC`bh0m6CN@y_(p4}6C;7L3v*4nxD>NIwUa9vfy`7XEW+){fW=IdE z<0uW&*HLOTDxgm+OV>@je?tMRxD#$P04WpyWJ2eKY$fvtwvt)&D0VJGJGu_GyYfQ1 z@&~%I$e(lqHxD>U_a7H5F5qsLRLDNCX`QzoAP&+7q@x_`6kaMzA$+|ISG<3j?uLC} zK2c^vXq((R20C9G|L@F1V1j#JNP{$)NE$oCZ~p&nXZZheCIbEZ@U7}cwi*BD`uSgG zB87-|?Pel-?Dc;y6S-~Ab~2ITivNq5$Q>)hqBIj}+||!Su8{gjCUPQnUD}?<#I<5M zM@3qX-QAl^tFbTP&Ka$fsh6c}gy}evrP%Wmwm!InWo|Y95tMkR`bzw{H{74+1(AgO zKXaaMy-DT&mGgWB|I71yT_*ZT4zmVpPxNP>=i_}W-e|*anBtLBBHppr7f>L6e_lH#y`mds6Yh&iZ+!vVbQZ+yJjEyAkJ>wrUR$bP*J z&F+qjB=$z8fuFVChoIrX0QD9O2_((#>|f_XA{+6|?j`6Dhe;7e_$i-TONN3db>e?8r1{|i*N7TfGby5aQiX9;AI<6wP^ zzREm~MPHRF8TrOn8lSVGY|W9t`6+-+pZ*Gtn&1FeMYkspz^h;MRmM%}49}bJmPfOD z8>STxrbsaY6LncIyF_3PsK|IQ2N33OI8{Y&MnFmtd+^YLY@Xv6`wp=Jlh)IXE$)Xq zN63uy7c#B>_o2USTB4)>0ROpgDUV(eQwR8e9p{4o3w_?aV}#IOK%WN#<}a+z>vxEd z*?~OIK>sX#X34YThc;$a`}1oGF6gNgCfHCq9u-+uXr9>+Lo{aYaI2w5IR3_shMmNX z#_JN{n(lK9oeo|mML%^+r65fF& zSeL&Y*df;T4dd4q**TbQ-!QrYK$aN~1(g9W5o^hd(i~$gJ7MBp3u`GrH?@}IvGd|i zVrpes%i^K9&S@<%_dlcgP$Vcpl+=rf1#&LB#q9zUwMfmH$soS$K`-nJ%B;*sP1v5F zIu2!ToE2-jVtn$PnMoL1G=?m(oK!R&>0=_$e9ABymQI4o0)6_nx!Zsc>kayNTXY_8 zCoDZ}kcFbjciRV0g_#)pC=O4@xuS_XoCd-D>HgorK7NNi58FPPcENQ!_OWjI7 zJ|eQV5}Y`}aB8_X?DC&M%9hK&6}~)d+laKX)G8tRBd~5+sjVvW(#vI>CmyAQqS`+N z7z6D`ym^->{upf?kEk6&Zubdd{~iqPqOHSLLR2W&MIJmzns zwyKqWq-w%`nB_wcSb-}-MGgkcU8NRx!`#GqLnBJ|hrSsNT7gt^424MCbGD)zFowO4 zJw^8#aT0uyiq?vZXf+dKd>I&*(d~q|^F1vbCJ!ME#xKh$7PBFfs5{MfiYBS?5>zVY zL70Z&#`_|K65{R--71kYN#r-X@e)T#2?9hOp+pk7O{5)P*J0|VROW?4O1rZz`%k0T zq7!Zo{Lmk`HMuD!Z|tcyyLTd&@SYq@$%6Hn{4Vlf;&42eSneqhGW2JA;ysrsNEEM^ zu!iybOMAiZZDs%*b`P4}?GTx{wBaOIy{27O(&8e5?GXMWX7D^l&v^KKUsw27$HE^|+N%R3p1ridZF8X5)le}c ziXvTNZvEOI2;w`OgR?O0har1(xYx-8y1+CTl2^MYaQmy+j|I%$NS-KJx;7at<>5mqeutcpg|NdKrjo6+BP zP4Vk2dDboM1vk=sVq#t>pD1BNCb9GJem;?h8c$MaYA7vZ7hNp|Rxm>kuw?DGy;%~H zbKGd~5I0(P%iM;YG&7W4onS*{f8Hq#^cM#g#KyyAKI86V5tf6k_6hs3pH0||QccnD zd?=yMw#-YQi(GZdAxt0$w}qz~eY7mtS`&Eaw$M)`U;7+6S|xKbXn|^Bj&}dnxUO4B zg?iI>mcFC&MZ}0epr8Cy@U{az`Q6?j0SB3y(YbAT{-E11D9ik^^Vy$6&t;e)EQPNf zJx5~DTF}$6KlDE~)*m2*b+Eh&%$<*MOW4@$&oaA-W{)o755ur0(g9qcYsVjU+#&#w zgRS=c;UigP;FBF(JvtG8n92JmwA{eGEMK!vpB1YnEGG_(O^j&+>;` z;MWm6t$nqf zzZuw#N_#~#w%L-Tt3!-`2>Vm6=rf8QB+J;|l=dr}uPtfsN@awjPk6rTSl-VZ6)SJC zfIyZVN`r!Rk7H^MX{eOxZ?0ujaVj+NdQIP)dO$GbeI9|o6L!r4Ek!N}-4`N>Eg%pyVS4hQ8QR~g0d;GWXt=5fD)DM=tUyiTR-z<+f6?tb0=$@~!{b!TEw5riv?<*faknWjsD)df$r2L|mVYfP6<3L|3n z_YX=u;G#Cq6`bUrPb>brFw*N1@)jrA*8rbtb&25r_9=yO@;c&&K$mkCiD&#K1GP9e z;)$lq(w-5Y&>=$nt34^Q#$h(0Yqo=?^7Ew`+ zLH0>OPI`W0x;%+4agkWX6#soP&ZI^Vq442p?o119h%$6YF=`%UbqL7`9b_+ma1N^4 z)0el@R?2ki&)VO4yL%uDAu7@zb)lL54y(V=80n9?Q2z_iKTD9lzmmamQ9qut5`gPV#IP(8VjraMyYU z>wq78|L}1&^U+9IaF2AXM|6lQC;8fA+O1T(?d)|6@#ZA&Hr;;2W(T14Slex4-^V+o zceKH9onpvEZ>i~4t=)3b`{Sd^)+64sTmaYLH4ldBO12+{9cNz5Uahn6KxL`K7<~4IaT3J~RakbCz zqW};v9C=6Gp%!^L#MwUE2dr708~TdkfcYHIb22|3yC!a)#e5Fwwa@$$$p38S2~~D8 z34M%3UJlW=&;0T2L0^f8=xJV{iz|e0fxWYOwckhhv-=oTAsf8k>LzjwcN3=2tpVM1 zKkiN()o{1nP(w5wj(5tYF@4ATB5)ZF(e`{-x3mn;-Rt}@0z$G}ImL!dqW1{jl}k_) zVlmAw;rj#2!utXZrI9|y%%8KmiL`=lUT!72&}us>;9Ym%$i2kcco9(s02n_UywHkr zz)rS=fit-mfJzMmaQ6gYjIfAU3m6*%r42*q$g^OGt^ztdM#N;}7+Ll!5K)*=sJtM# zQn>=Uq#ct?o0ndA64q@1N>=iMBcyT}5*v=FL_D?|h5PYXqWinko(RO_4(H|oVCgWU zoR!Q9081qpXb!k?Z=`TpdhtLINbSpmBkCX>6)(RIueh>gd3C(}KH6+ce@2EDy| z1?O1PrHC!)BVOUl_v)@ev=Y+~I+|M_vwo_y+huJcgd1Nm}gVEhqHdqNbR0)!m(8*4vBMrD&3 z8Re6C5=^0WJ!DZiRA9{!{;Ub-g#dM{@O zyd4ae?n}#8V~UuF_jPrXgdus&i`-r;>iW_Kcwg7Y5B8S#37hYE?FjqOm5?`l4w->> zRWao6g1~||44eeG{F8S;@j_n3z#nywY9l&N8pZjX!~Ee_ehpZ7Hv)SWKRzPAtbWzb zHCr%@&O}XC_i_-^c7tCHipa5B$h1UmH6QX4#5MmPaNR;mEnB>~_H&@s z;Pza`+}|jN+IfR=csfxFZY=}hbmdPzn+DxD1AE<|fl#*T*%u3uCh>*Dc&I{r-Na(4X?se{;`Z z_z$bOlU_Wf0X#$*@$U(rW9|uOaRYFi4P=7*ULXZ`mOXL!P`o?KS$tVgW-FBFzWnn0 z;7{<6=ly;8H!!o|u6+S(oaF8-5KH#JMAqTHye*%)rLyfNkFM}UqqUwI&m9Qlf4ljv zTD zVbe$ZOVPZ{O>b}iNb9oh*Bs3J&-916!4}QVjp-jX!85*$F{226TCI8iPZLs~Y^#g( z_s(yqJsbSBdE_CB-m{oXX`4Qg;n8dQN9o-++8;hI8D&g=SjQ_8bX(lz-^8$~&Jweq zZ0K1V`k(y{?!ON7H!~1M15QMKmb{PnDyDl@yj%x**D#Y>2YO$Q_HSR_C)~qHuEnk6 zHT0FB4IVyMYB4bWP4@g9jQF+7r+R-mQB3vjttkM+7>^383E(TMqb( zK=*qBdV_&Jz=AHcN3239nl2Mzi~Cy(y3o#s5bdl0^n3oUv_J3K1oU2p_A>yz!a=qpNP}~-&@`S$gju;Cw!wxa1!{N(5kC#tvyC>$4D&9A zAnfkpG8*x1|HrFfIY8#4_rmrqkTQwg%6$8-MOV*G#lB~AtlGD?!>}>P^7@FKNBWp8 zq%S@ve~IJof-s%PKG646h1tjucgO-U9#V1dR1h~B5Uhi_=o0W@3xrTA%$S`MCPkRL z|L|FWMkuxW1lvQStZqV0xSOB_w0`KO>UbZgv)p;I_u5cOkx?C+GeN|+)^HhBM<~8_ z9B*#h(boql@dPDYhU3P6Io@oIoFcGkI6%&L^Kb631=b%IZ)VO`uX^~4_Pa9Bt>D&% z0VjSPi5fHmKPFAGaHAo2OzLeY*fm4}*or{+BMnLE7lMw??S+`HnSc9qM}mM5O>ZaI z4J-~NE=Ium5rdttv%sPucWfDYyUO^mrJ%$3mzYgc;Kt6FQiPahxANnlk2r_j#~dg} zx9zQN;vC^_%1^V~72VW18gVYpy64i7f>NFEaHDMq`mkh6g-=smcbn)cu`F9L9>K;TOo2H^0d`!QCZVh$jM=CD5k z3C#hQ_M{fI2VXq9BdLkec%bhi(wP6cc&a-Ia4pp}u_2SVZ989ejZ!mNKeuME7_rSq z1f{H+*(GQ~LIt4i^`?~|xkboIgi@vt%h>*nHQJXP8hJCreUpurQ|k!XVXNsrq^Y%0 zfZ0@qZ>{{*0C5Z8$|M=lXkE%MjX- zgs*0eliXpR?rEI@fV!tOq^Zq(w#qY?{!hSM-WLNBa}l+|T=u4CV}A+!W|>QL{+1bz z>*?!3mSr@JlKdo|+1fXnTB*U8jahO5O##RS1%QeHenp}dz*vRp2LTrY-20J{!?-r( zR+$V!197Ao{6*&TR-?qww7^0@9@<0`MBz~-PCXJtXu#gmg8MHrzv2~;!bU($SwJ;0w_iv{BTu3e{mp{FabXpFd6CKm<)u2;zr zgJXTL<{7ELg^@N9`R+j8`Y;868n(C}A&K_7l0G&_*Y(-8LAsjv8NnjN#2$bkD?qW* z6KJ23bc+!S*{JjdjWY6UGg63!rZ|FzCL>=rjUo`ssAQxIY6y0*upJrsPm0u|Zs1~J zXkQ=hCR(vMJvPMQlh{;fy%WaLwxQ4UZOBDiuSOk}N6Z|hj2egDk!EC(w~SoR!Z3dX z8d*sKDkDe92si7 z%QR|bK%Ee9nQ2s9k;ZaEx+iu8Z}=)T1bH|Kj!cgywZj0GW=&i234&9e!X8+Yaa zI_%+gTcXyey2Z2(msWXSA&%s`cgs!{f-e!koqKVSk$brpnlErag6jyqAHdb_d$P}B z9so^exZf7)o>DC~=?lw_x5Tw^Qz%&w;yQ@qvl+|zXT!LH2ybF#kP$8?2;S!J)>G4Bf z484`2P|_>+)tIKOxQlSA*pNw_y}3_sO1e(gyRryJ1LWGoy>Ym37kr>Ju*KaM%ERs6 zGW_PB-0tOt-0tNM-0qb|P>9>T@Ie6x)H1w)rhwbM>=M4+J03Mz-M2$H#O+=S3K?(* zze0`^pqN!)n{Qyu>{(_%)YSkn+F zk@04cYiCy0aEx zR{%dkZ-T^Qzxi}%v8^>tCebc)-!*fy)Yms*jVUW3PKfRkXcItQ2Kd!{DBxZAlCBp> z0)2WfWJOQ`=aMWH*!=N%>wvC`(sc1dd<;0h`oM6qI{q)<(kVJ}j-RZajgxgqR?lLM zlWb&xKr|2bW!->ny$1x8&uzm0LtddaQtlg%^+Zp;Y>q6WhOweQ26w5 zfz~Jkg|!-ky^&BtvUam{u>hu3s2=LsH!P=(sQjQ@YwJ z!7nQ&HL)R+aQga&(a0J{p5rrbHhi0L1y5!TD3>O_)P@Ol1-yup-3XXP3raX%GdrNV z38gy>iVms2avs$G9=y~n7ugx=-}^mLKS|6|f5`vpmX3$|b!%n}dRuJNvH|zM`}k~B zp~kWnd^Q>tv|<`P$t91H@N=v?OQxO4(o2*LGv+SbdL#}Eax~vKXzZH++%J&Gh8Qd+ zgFhhEQU*x^89aswZ{0!?pT%Io5G!4eCXnBa!Q_e!yF4s?LHTuB3Tny zT1gi1+3}IYfCv-c-jNAOX4OAY;xgj~v^-*(16ppJth8)STC!rD#$)gKdPU`N@o~M5 zJUTK{NB5JQ=+6fFWVVFpikVN5)>`{<_DS1&^?skL}^l`nPiVj$;?MR|lBXLmengR&9A&?ABl#y*prd_#9RaGb zVK;l5gmU#42HHkHKRZ7C5 zLjvh>EIbZFJv@qAGr$6Qh1mNphPVMq2?8dzmw)YJ3k&Xp0KR~_8G+r)dI2;XO1ztq zNV(~t7@^@Fzyp0BT^B>&4U!ie1+8Kn2Fe{bq*pse?HwY4joBdm&%}aTAA+2V=*a2V zCo+MYn`i{$F76TUILE)%!7Kyt9LXxBtK^-P?Ik0YWUHBCwT@n6vb^6>IYY)eGG0N+ zilGX!f8j$YMZg{;nUP6cR_-gAq+rU!r;R7di}J}v6g5d`un|Qjc|~A4^bj||wnKO_ zOA&}T1;Xre9xN>yxIuDkToKyrJ@`wsfr6)MQ%X#%Bu_IYuDAh&d;f-%dKr3AmMJW| z2++JA{7M1XL@9ncpt5+9plwbIX4qb9T=CBsB5X;4@dziEjxxpyN19>;MEo_R^&yCm zO3D`w1_&gw?1QLHYl2rq2ZI%EksK(eRER{Do+sgerj+=ZLeZI|h&_&c6;$wQp0)jo zi7F}EX5>B;$`zp@myDxFbd%(A=6Ljj(C$x3+!D7%5)@Q>KD~XYHeP)b7UK`}2tD)% zssT8lWUHBxNsK9TO14~55JTeADw(_}=~l@!DWGH+%uN+UJIsr#lHw@IeD6x|FRX+D z3E8B@Teloacq;?{r}LM6mwXX(4gxx%Ci z{Ax{?$YH2;8!>DRTo0LP#zxJXzwk=VSM)JfOc`l=>xQ3(39swVcZChrR-pid<14JP>zNuJ7A zAF`lJnhNAePUdtYQQ@?LH1r?A9PmODeV9~E?-?_D5=|E((5PC!W|G0`s8%6upR zxx0sQZI>i-*(FCvF1zFp?njrrL3~v`waG5|cV>62>Oq_RE@?&@eZ=(7)r2jBzy+Ws z&_DYHY2xB-T>tEoqV(Ai{Nh}Vc6@_8@v%rey=5>G^=O>U^h_pUd7tfL%SruFq<)PA z9TA~t8Bjk-sV6;-`WSkfWK#j{Ndrm-=xt#}Ced5s=xvacc~xzET6-cd3E{i7Cz>S8 zMiR!}c~$MEir5o*aaB?-U!5&fNz-Dmls69Q7&b8i9N8q#yXsz8j7D|@vN|yRFIBF-M;ln@{y+k(2Gd5mq7~0lO`s^xFBH65oC+Unq#^gvB zMps~QW>WjTgP^v-4r?<7=0?^TBp8q!jMw7pFlh&0-5i7hud(wT%boAb6b z!>;{Gr_~KK-Vdl(=w@2nb>~@hfwGlp!o zk6?u0y$6%SOaD^goeb{M8efYI>)w$Pyj9I2x9%Y2 zh)M&Q<5tdm1?vIdzmd^ow;u2c=Pc1#hd%`6iO;G-%iS}uAn+yjd9G(|z zn7=9L3)lxz`u0+E?eGThi z#FeF0`<`fLd8GF9=~9JZNY&L`qngUz@G^R6bEHruTfFTSeC$o{C3M2uOwnPcD7kBk z%09{bP$>^vR3uW(CWZ*GP$@zYH97Jt`j=o2i+jED;xAm+prqIFGuS6^L)(uj602i; zSV8*6Z=Kq8qBJ*+rFHL77d9T*_4Aeh5o+1N-$Y)pe%TgqIul^Y5!Inj=gOawt$a|ultwgG{ z)|N6JoY5DgE-`gQLiXL&RoyV9TwUpNS<~0V#@Ox*bQD-f)ulxtRkwYO8n>CEwpSzr zMWwIhhguydD!SXnCWZ*GP^kdaZUXbpma!HKM|}CBy!hjK14??8kA~HdiPWPF%-s7i z%~a+@_HmC!CVP(dQnNMY$)9Kq+c_4ouTd?bPTmU!m+jX!lTYt4lPThX>W4CyG7|z3 zD~e1~=cwF=K}3kzf(>P!W5C)bgffpYU>gLS4|X-Foq$Z~Zg?R>YsitKjcKw}hQPgV z8ZX)jDiy40{7cNFP6o=3Kgln1sXE_qe{G6du6Mc?sAlP1-3d?=q5|ca0;Hp3g$1b!>gnIh}S|cRPiN=me zBEYa8c(02#(JIZo3s&i?Msb^{=demI0t>7XO-zne3Xj^0Xd-0P9*4P_S^JCdob5uMO+&yB!U571cV<8e$W(> zWVKu2LiJgiFT|Ypzn?hC%Nud1$J@{NuYw%BTtrsqZd-RIe(U(T!+W{>oOIG(uI#>P z%!kkW{Cuk|bAs^mvzH8SUt-QdTY!cHbN;Y|e6EI%yQY%9^Sr=Xsj<>vQ8 zg<`nr81;$emQj5;8{`$soE)Z;WPnlU(gNf%YU}v(&b$AE{JHayE#S|CaA15U4#l6p z{Lu2Jg#3A#9T(ED{P{c?y*d7@E(0?)GzE(n=#Tx($RvLIj^j@cQ=kVmr(X8JX#S|p ztkjg$>t`<-MrBz`Wl4+v;7v+5+8<5!hpG>DZP6Cg{b%LyG=48(Zc$N+zn9_%%rL5J zhs96%y_`Sr$8=)jAAk4AFa6yY_)YtYO$}0JV<4S8Do3B0l0pxZ=rM z2OKia3N;v^k;oBj`6y&AG2qA&;$ou9yb+Ti;?l&(2zEvUmw=mP+7kkEG6~2BW=Dbn zVoQ~fTxDul4umpap_3ipuCV13#wE~_m@EkIFoPgNAC!3ktt=4P96|IW%q>V7xfi5D zxH%^d(Vtg@YgllC=vdaUIMCzRSG*mi`_ZhQe>-~P$-N{Wdj}{ESgVzsdSLGWUc*CV z*j}~BMhtrCi$QCkKejU?lQ{ZK*B_fCWpP!PRH?^$>A_+!Z3+~Uj?&)un3jk~GmYF~ z*{^ZP&dRGPcsDdxm=rE}x?hm>&gP6+>e18ywYMv$Br=|jVZ%=sg;`i7#y(s|i@3k@iogLt`6~ zK?C%YCGlJ=p=)W$?e`y(@fOGOhQ@$)}IXqY2G z44ns-&;O3lx!BY-chsDRfL#vpRExaCA3hZEQ-&h`Q-*lax+s6IgN6@0{?R7kywyCG z^fpr2P~0X`Nxccuw)6Zunm>x^_vqD{j5R#aefghRiC6zD~b2tG$akC8qZ(U(K-&`zM;$8-XyG;N0Wb=od4Rt<F6YZ&K9*hYlcSo0OyKN`57Xjqzk#$G>Rwkwv4ZR8}TvnQGFYu2xkp#1UO z;CR9P$|-8O`NB`i$A|T@KJQDn=`B?5d)8s3C~ohoIzUTCZ<@Nc8ByVES@T>PR>YO+ zR?=u;+s{Qz$yR=s47 zJP(y`rACWREsZDcL1YGx6M^2i=0OsYYe_n!!n z*NrMa*DNpFweT2d{G9qqMz7`0$)f7Gw8EX;K4Eo;2H*PD>jV` z+LjFZCVe$9h%F$4K4SI|Tg=?tyzryIfdU5#94K(0z<~k>3LGeKpum9w2MQc0aG=0} z0tX5lC~%;_fdU5#94K(0z<~k>3LGeKpum9w2MQc0aG=0}0tX5lC~%;_fdU5#94K(0 zz<~k>3LGeKpum9w2MQc0aG=0}0tezbFtscGzLR!2D8Q2njp36DiUB57KFG|~w>=}MjgoSK);gMDpFKI}h5 zP8{|-B;8_X!xh8zNas09IYMG@t^RFCfFvBBAfvtM*W#20ez-fJ>aWHLi`uW*JD}t| z2hLdBG6$7AR#9rtTf6NEY$ZQKb-FL;d(W~DxsS+F?N`>ih_q~&# z-9S*iPf!C1S_()*5Hv{%I^HMfX(i|+B}nK3L36<(N6<(iD1#3KM9IN@KlW-Y$0;zP zVUyhEJxGboNVI{j0N?Jq5@bFZAv5yXi0pyFw@>(F@>D4JR;*-xmJg8m+xeDEz07|O zDQz;xLhGvzMEDaS#~&d4yUcHhrwy5-4Y`jG@b9L1mVbk#WKqjgMf@lNe$@OFeqOd zEMM&C;qxbavaKC#P$rGVFQ*rJs?S}>VUIg6MH%v^nJ4zr%7zCo52{6jszoZS76T=cP){J50$|?q$f?0Dca^^R?(2-pqF8IgB{)JGQ%ChfiV6 zsY(^ij(kg}N=bO>WJki;D)vF9WGly?f(OKYVVH!0P9S0bNTm}TG*EK*UhKSm-niMZ zrsXI5Nn2m^5uK}uUQ19#LGZAHK-~yZ4zZ$Y;IwMB8pI`cH9ePI*^e zfPDFNE_?)B)f(w%4^Gg2=JR2m^5FsH!=L#88$W~s1!aB?Ro&p&9p-l^8Xme(^VhOz zMm}<(B&2g0vmP~9$30ZV)~}=l-@Gks;QrhOr7FLQrRBp8WC~AXex(&j9jnOBn9nWe z+I#q*>Lx;i|asTDeh>ySw zqY)x3XvFClkMka2_WdJci8|I7k!{iwCxNPfK2$IRj7#!q88;3uzI|0T_n~L`9zeXQ zKaOAV&X(Pqc04#$dGH8RvXz5;fCr1AGXYcogb>G(MF>DgPV-g|wH~uUaGsDj>z%Ob|#P(NL3ya?PykpT>s0=mP#FT7hjbYKn zka@rq4SWx!@EtW^=Xcc1m7SRe-mjw9L8i64qHA=aD7pL>49;u^thp(IOtOZV7tK`i zB9?LiKjxh+d&DR2TqUnh$$O6vRDTwd2#{xQKd>IjBbPyKkN&EvZO1Ay&5e%v@9S(r zF)C>)YP6(RXA+a|aYm~_ikd5LsIIhNwRrN6%ERAO1<3=y2*Ue!mC0<}6k)zTMvdl6 zJB#B*K49EtUXnCC1jN43@CYuDDq6|gwY*)9@2Jr;2Q+ z@&V?31B@Ahd8d0OSWJxIa*W+^)2w9iXXfwu)MlalyUCZCpB8_bI^%QG*@`mBBrj@*~(F#oL_m8W^T z9Hsm^Dr_>x^K<0cvcr6SJ*NEn5>v933;6)Qz6@R{zXrAkHuzN2wrP#PT3scu&hugQ zDy(Z2R=0t*lMm}Dv=OjcN3}*KGV>JHH+)!6D69t+*2@OgFVVr2uEDF=>MpVZI;Tv- zC0Tg)ZvKk)Lb=|ZCA=TO%2RtHShrQIH~UzhR;)i(tbZ|BPw}yqP-FmE^vE-m7X(1Y zdk>zAPy=#oZ(KMV3e^o4QN0SvnqI|D^qO!#7ha?KWarmz{8);Bh>joQQ9PhZ%bAf$ zeD6-DN{gf@y;SH=BVW)p+wkNcm4v^^F3E#Q>Sh`AG=lQx#M`AeJ|*J)I~`U`@Ng^3 z3(A}lWzNBdIfua23U;ka*o74#DZ=;Yq#!QBA+naUV~yZEMOMk8itG=HY+pq--5~oV zSQQr1$yVMg`1`#1;L#9# z%#x4q(cua6@znG3@KNmHR9LHVj0YGU#>GLL)ifF(qwGgt9-{%G48M87NshN>hV+|; z&YogaM#PO_9UWHj4g*(qRc@t!n@+-5(v&$Px6IAZvu^Yo2D8FbClPs!zgEFMD*jq6 zss;L6k{OxA0k=7M7cm80jGhYrIGjl-*xwY*=RGEJ$pS*8c<3E`V-ar6 z!M8{lZCxwWhC?CC&e^T=L@97vD)q{`9Ql{;iqW3p;$Eo2b0fmL5A{= z#oK++NJl)^WdKcai0AqcegKL(ynNvwTEd^+<;F=io@=>6i3;r^equXY_UhqIXc<(7 z&^}^Hw(>KE_=h2opwO-gx~*iV_uNtHw%Un)7ZTa*7fy{eBX9Ft+1au`_=q_#2I99A z@ty|p;St0UbNuN`pe+y3hk~}?dq#i}s~zF{x;oa2mP=Pmp-MnCQWOjBe_HCgqINqo z^htL^zbql&@y8*Lzv&@J9@tM1-udy({&*K@_RS|ce!s8Q^FF3zEC0X;xb}JUu^_)? z$Ri?pttk|ILJBUdN)y@KFU9isMn(3BkL+Vbwpx)5J4unfAoE^)$hIf+AzSNdeE(wb z_}?TFA^{9x2zulXVOha*vNDF};i%+NAXd}&ZE!8X@8!(MBo6wnfV-3Y=V+rqlv>;}PJCz^*&X#TG z^Q{a$5xQBed^=U}_Ick2Pl7^<=;pEH+Ya={%n(PSz_-gVaDZ=QNq}!#G`{`ujGXc9 z4GdK}NY9t3sO=7TO|aWD*^>I-#{N1^uECPyTTvky0++ zl%iU9L##367g zz;g&(LNstv2|$Oydzu9HY>79qm>U9FwywJ_Ov)q8T3q5yF~vJ_Xz9`#h&L%Hx+eXQ zMR@Y`M}C$&TUL9BGY_|u^lajArerI>!UyH=Smb!^NBGHXm== zsNVC|#+!OgH8X0T3VzW*MdD4}{4jR5Y)!3W(a)4czhg?avc#}x7-Sw$6BBPr!SDp) zO}iXERJ>`uF{`ohrjNg%kRMOPShOm-~Im#rSSrRr{&``Nzxt8?;7EC6y0&B6xonSu*!g~}H z(OZ^y(=wKzMpONlnimP7EHN(E(8;@}CN|#mBEPJiElbop+3uo) z&n`^KR@UoYUvugLS~*LoNlFIYhikzStxDq_GZmdXR-dV9w2s zpBtc9aq*_L9QeQ=`E-+ImVELFFT$*GgoT$Rhxl$3C-;{EAI-msH{Ek!Y`p2-?Sx-P z9q0J9kMiqFOhLSf5Af@4@Iv|J;!UHX@unt)b)FCFGYac!g|*zky32=U<4v2Qk)N>& zE9=8LP+|Q*VLfMHo$g?1yos%+>!M6UOc=GiD|95AEv^eocvB!pT82ox={x+`ced#d6QR|e~=h{z~62K{&weJmGmI`WI*c+;EM>1FVg%!$~gjtXJU3&%QD`Mfe`15>h_jaCM`R!+RBL<*W1 zOHo5CvayQnBOlpuifnt8#8iXq^a!$u6Zy&oVEdZ0Tt61ZfbR!13g7>s@uvI#eJK9Z z36F_4Eo1{>8+#Zt`krd#7Q~zGHRFmpQxBXo|njtAtk_ z6k3FjbIHdA7|5+N4wTg2fs^y_af|%%FJT5H88!r8+Sn z>(ziD1#}4Fejlw|w$~7-v-FsU!UWYU^7b+O89sO-+ZB&y)fe)&@Y6(t=w+kVsLXF2 zJ~&cjKNwjd`C+N>{AvI*QSF(^^Z87{_q+K3&)+>G#PhVB8r*a~y2T}@6CL9x)RwRr zx8ZBtcWyQ?O2ierReDes7^W5LZk6*-jP1ThyN{ZzsiVFBC6>=C%&zmIA1yOEyIa=NF&fa27~)mE@tRp2pWoy(|qYl zMnWcF{JfZ$$bJ>JB4@u!GgRVCx``%ifikp|KZ9X|iY&wH7VcM(X`$GjT2u6Zax7Pnue(N6sAeia%s>Ge{&j&BC0 z#t)v;5y{`LQbU1({nbK$FoZr!odAs=u$WpCm@Jmf*{||T&`X6?P z`&E`g+Tr-YcSnkjwe9PA+Y5k%-u5-7WGf%$1N`z%3+q^Lzsj+Is-4UliTlrmMjTH^ zPc=e>1&z25h8P+_G3OeMe@gsd95BL64;erB)+dAqFYe=buwHra8dI{ByBHq4j0R~x z!@yfJ@HmB*9XcKlpBLYag&lzG%I7mQ6H`O93VKA#p?b8lQI5;EV!ui^Bt#84l644D zV-6ef3xsOOpD+A_mhq=I&(tx&gYjTi%rJdrLikhV^XDy8hK?Ml{F%WAbYvAYE?|dD z@POC@!Gk~S7YrWs01%C4mpuEtgN^GD8$9^B@-gb9zsQefXUksS+llXeCGP{KWGg2a z^7agq7Y!afb`Es*7CLt_u#xPrj>e4_++VR=^nme$>A)K>T0P9jBo=l#qqS6un)pF8 zUtqzy@Z=vo5dNk~kvvF=AiR+n9Vl6eAFO2wYBUYOYV#sf;y&{t@dEwcA4 z$=LY8w?_#7=5zf-*SVYFlt8@SVoJ918MCnR3V0I`ZhTj93t_9GZgD?KGu1P^)SVHk->T=JTc`)zWBk2qs%a3N0H2zp;04GiUtsx z={Cg#5Mss;PIfi^9KT=Xjd@O${(JF*<~n6gBz{m=BqF)O7w=+a&LUNnUOr$suR|k) zT`MPkuuKY?IdjjHSY*#_LSwRJxBAGID6$6?*~JDfWqD zEY_7N)TpCz>4%~i>vwmGF-k_+#PClcC0jX>4^aLn+^8WGW9$qlMh)z%QH&nagATR` zM8d9-hv9)T|N5F#6@FKtR)F6k2+L6kQ^1*6i!$^Hg6nG=kKDX}eB}qy?wNkOchYuW z!IW&}J$%srLz}eSP^_APgHR~O+ZB1j#pwby>g`T|;b$Kf&z0HgxpGqqK*VoWd0Ji7 z*~W7{TLm1IST8@Soh{qhr+hc1yhbTM%TPYbQLg(Luvvwu)omp&y}kB`->mX+eXI>h zE8;Oe;wnYFmm+R7h;M|Z4WTM~pAA(>00mVgx>+T%Ut%*u-6yVcU2ii(oo>^V%@BkM z#aWK0R}726@jo)eox$&HXUq2Y7hfMzYk8C|zFuZl7VktWf-TJ%;!c->Sj-`^muh2? zy|Gb{o#-R$R%FeJ>=uLUkO;DfX@1}=u=R%$-p~U!Y$tl)wy>mNbDkkC!f!5TNY{(s zpK{Y2pWjk+OZKM>$U3JkXn9{VMl1jRln*f^v*YNH1}xrb@qWlke(XD2cDKL2`jqmm zN7q;1Fzc(sB|eaMU(ade+hugWjBCJ#fp5QsLqfjcHDI~6Xgr%WIcI440*0NO@yvu; zQ@O>@pO|Nqitz{A(Fs*(@%vNOUEze*!lHrIU5-zSn3m{)J#eGc7wHw*ELb%eTwn`} z(6KpsHL?nckK1i|J6r+CFW>%@Izgl`)l#zL`tV=fpVAGl5}X<` zzI5nY!h`2_aXdIqdGG>LvX!NV2lJpyf$?*T_ou8!t3{1;Xw8X8c}9==@Kk9(qBU?H z3TK;Gs{{WwzeVMX>M(Crh-r6I#|+df)eDcV1dZd@y|ZOwd={OgEZR|7l;#6!au#GB zP?PxmDOc_?REX)y{k3DnhM4v@N*x*GzRE9dXUm@5*-7wJC2uWLvX$Ey@*YR^0C~|6 z$s=b#Z4aWGC&M|lFQBG*<4YW!Fw&$}MkcXbK!sC1;W7|6aTU*5=zQ14mzd4?5}y2% z_>#avd`YUB`Q(|fpd3atzQi1AG_Bfd^P=%3^P=%3yl8w$_NOq&Tyzlowka zKmWP$rP7Mn_|oVN!msBKaQu2%`8CKCoC`Pn`XXF+<(G>ujgIb5>G_+$de4XDDXenk zeagVv#)oC&OF8>fS{2qOSw&6xdWAJnVa+tK9)paOt|8(}hkQ1!KiE0nd#S;WcCB@<3v0tW-^cam3$#$Y2-}qVKdmiUo z`tw%r4;pjvQ2fsmUm6|c#W0=qY(ac!4Z0Ams2^YYC0Z0?4=1b_p*>OK`q5bBZ5*VrtNekJXnCldtpZt=-5 zweCj|?@TZY#W{D-{VDuapT%|#4zabIY_#gp_frp5LK6d=i(r=2DsFnV?D8SN7f}`f zWDmWW-7eig!dd4yfik8wF>oMx2$G}>P>2J-g0?x^4}tF%_;{Pc2R;^gR~}$n z^Eg2dh40S&sh9EW+j~p#l^T4*2fsKZvLl8-_9!HvJ8k~zpvCXBnd*u5Bmm54Pp4{6 zDO0kQllg%5WC1atJ#MGX_|wqAOE4K$Z;^T*a&UZqaVzdSN_WhuYU45C%Objd)2l-5 zluAeK4$xvu)Q)FLw(=@IKNm8pZ^jNQIDCKnO4<| zZ8=Te7pq0;<@31(oqAF$N`(n>Jrr7RQPK@q_rvm_Tb9rN2H~K$bjfpGRXd((05luU zb~7&h#nCdBpeMC|&u)koa76XM7SVcthKfNns_4K;Tv5WtDPhqO^2EOg4`+;ZJWMJN zFJ?-%^80*%hu@NEa^5gYXCnk(4tI!x?_8C0k&~Ox#^3+96a?#}c07Isg2Kz0f#$8{ zQ|tzsN41Iuh5rnL!6^VQavD}Xk9RQfXHoR3ud`o~_Wpi**WMa!?*LP>l{=gE-h;NN z&J0Fwg-R-fVLrzWPzdG9v6O*uo`V1tsTsJ!C|xrtPt%Ca1C6SD2OXr6#4TR9|49qb zonoWWUNXVkM`xk452N}8&r^aseNu37RS%x3hR;nI#0P}`9r%~Q4)jCd!Hx|!peU+P!xZKNKFrAqvqxdRVPGB`hBjeJ>RUK;pfp`(}L`WXW~ zMOM@*o8hntgV3+ZpR<7r&ty5Cbt_qf!#)M<_%C8P*7U;2bn(~y!knHljyY#3bAHQ| zY~@J9oN*Wtj7j2ju?Y++dc+=QXvd4!TJ_;net!wCG}I)>b@rG^pfX_3Q_Mj8XQt~iNu;nfw#zI+ z+o_k!$ak=@g*6~*5mU2y!3~M?s+y&w7}I%GY4eg|j*Vc$4TUtRNB~g7m$BwWdK$Nc zsp3FEp2G_j=OHFS@5FP=;zCJpZ?(?l^FKru%pOZ_YTeQNs%Yi4Ohq7!e{wAoUnm@O z3jXxgsE=Ac|0hU9HR4qO{8cUhih}_7VgT@`x5#+^SD`XnaJIxfOH3)j$rt_sCx3dU zn<~d~YaRJfA$3Lv>+r?Y;ZJXGQ)frjDu5!3y&~f@M!c_ae-O3(YPnO}>rfhf`Ua+C zD|`4rpFRuK0|t3uM@k9?NEi)4R{%BbM-xf-%_m@hkT{Mnlc1RFyKNw!)~J?Uu*O;= zsfSef`Fe|@c&zmqh>R(OP@m~#Sb~sA$#2x>iUyoccu5+P^c!-$Hsl~}$hoE=OJF{Y zapGb!l|(25h0F2oy$st&9qTg|Lv&2l8ODKb9N9^0F3JkRL^W;oZgtRRpPU0jx`G`M z8rd#j@uYt&u1ZVe7FMP3^uGO$j0rlSCmr60YVx96puY5?wE5fHI^o@{ZGM0$*~&lj z0hZkcmKmEP^C`ieK^CTiLI6euBK~o4sq|v-q3Drz{71P7SNeAg*d+4H`xR5H-6DUy zN0E|&4RG^_R+^w5&H>d1CD};Wpd>W{r}6RXY>;s+3y%T^3LGeKpum9w2MQc0aG=0} z0tX5lC~%;_fdU5#94K(0z<~k>3LGeKpum9w2mWash@9V$t68c?G8)bcntzJucW^C? z8JR@#7`GNyAw}nz1&fX8%tKXaB&}>gK>f|z@HN9$EWYt;hqKM|GV{C~Pk!xiv3dW7 zdER86H{&^+t7$2KtIs6f`fUYJu70*}xS6kgsbyVAUIjOLg3YD)q=LTf|!+^?)asxTb=5Yozk@1dWP^yxz{5hx?mPJD;VW}~zCBw=rp_D5D|5={fBj?Z4lu$<>#bQ> z91@6~y(wGUTU?BFl9V)twQv3emra6fn$HyF61Kr|Dfd#QP+MF(&SHuJK^Zj0I{_)( zU@e*jwmk!}AAJl~TTUFy2FQx9s3BHc9-vlqtfB(PU50~R6u16+@+sYI+X2s}VW_=t zKUF`u@+L4jp!$nY0II*|(N6W7n1W@kzKW-)K5;_z-}{YI{SAQVeIG)hFqTVp4;7B-WFVLRy(D!}Kkv1aG-Bmz z37?Q?jd#MfsGOa~wPkEEC`0j+hATM5Cg7Ov@>3A1MVIdEQE4xhx-3%zUVG&riA#L4 z^#JrRk(mv+Qq#MF3W&rC>^5+TYavs=!`LkH(p&VQb{JetFXbJBb2|)KOpsEqQR)GY zG}a_8Eem!SvYh1!+N(BrYJ^E*S|t5KR1ta&oJC~%o7)ArpuJ1dH-ewsH&Q&YC%SRx zfMcPg_l;paQBqMDC}~*!-_2g)U@qNx23za!I*bs1M%O^q9ilg4>#el#L02ycM@KebWdlvQew(r!qzy zQ|6YI_aUv>#0gBvR<`p2<{blB2KEKy$eTv#F*Mi6TZ935e-h1tyeY=qCEyr&OFbEW zCxMKByhRbLMD6POII=SvK5yOy&T#*TY%OeU&~1g0O@XD4NuwVc?HYZkHu@2!;QL{G zpwZLNd$rM6@2(lRhf))CLI7+^?)Sq)I>joTt+bENX;eWqk9_ci>P1c3*XV&FQIVz*Oa`Ij!OQvYQ3?k&^lIPvrwl;bd(GQQO5_zW|HkID9VzkKHd9kK0zy(iIs51tdS zcLqN)oTLAp>yw07Q;+|^A7i)XSb(UV4ECb9@tj7pN%WLPvp(1YjCst+B&Ht@@#+@H z21(KH8LG>t+XH3m$MLF^(LJNTst+P|F{%yVnbTL)vWpz6?>StRm64>odX@E+GLs+*OV?VSLgQBskeWp?*HTi z>hUf(5RlXW$4F|3RRvsu&h6)!J`R}6NCynYQh8zr83}mq{STa}FN%KicrPWR(IO+*z7rrnf)+-~%|+ansKuK2~U<>F0GQ&KAq2VEDJIIUziR zjyv@DEWFfpr$n{H%az<|ura;^ZlOum!N_7$!rV7d$0L)dmP$KK;wx;T#Se)v)4N6c zM)|z?m^}ujh3$}3cv^T7Q&i{8v~W68+DNi(&9O+)LB@_LXHA7((mq@NniN4V@1tK2 zy~L}pmv)59r=Jzl9F7+>`vLt-G6Va6Yn^@;Nzui!QCzRe$Y0m0Xj|h?(*mrhsiJfrzn*V(a953}PD=6`SPV3cKx#O+lH8*C2~XYlLEa zwl@g%%VO`b`7)UJ8H}n9KU%^}?@#E~xu11@@d4=;Pb6HoID!hFP5hiG*~+*0K)2Wv z@(5V8!CE6}HuqYfb7Cgx-fX5=F-!YqxPjh^`R*ej=5u5cD&|Mn4>3Op%Lg%2Z~-yr zlWzldZE8%5HZ~yNCT3(3^#?im@{|Te*~KTkT-g;{f!4~TsBWd)ZiM_6DTibJ@@1ofo|G>-LDE8E{x9a!R0Zi9t+WV!S`N^OlBYOO@NkAOs; zldyqEB*m(b$Rw(B$11YgNhF^Gn!2^4u%Q@7&^EQ zHI)QX)09A8Q{_C#hu~Y-h)=JBE_D?-BQC;*E_pOf9jmA&PM2uI^XXGRSt$O+1pEs0 z?+wD+#03XBeOiqaZp+6*k2vuM{?gfLoYf$liWl!T^u!nuKX;$-X7+HWY)h0kS26|P z+2jKv{vAMBBrCtMpV@*OKp``kwlS>LlG8Lqob$%^vb`| zw+-}1V~YB1ycecgh~N=ZDmo!b8wp;`RUNY^0d45tpu?y#`u>jnkT(=LA>T$8WE1Z&C0n`IFcoqwhRT4DqjT=$6zKN7keG2$sCcxK zqrqV4c0XQ2x;>PBiGHPOVQTN1%=+ZTN-|f-|!XM@YA*7*Yg4G zo`NAl8=gT&8aR)AKI;yG!Whj%+f=_tt02qg-@?{s!zV$Z?tPMM?vaE~P~=^s`Zs%4 zOlgm$p{>;*OSSdee^;@`oia_5Cn!yI)6y52(kAw^$jCo3eft|f)}1X|z6p~IPQdD9 zAq?_g!IW&}t9*bBwUBK<{sU(L4-PM}@kP-o;kOj#qdrVtZ4Q`^E6g_y%$LEhAj~qh z0YJ&8x+u`273fnw&?gn>FBRy=2IvhDpkiYHliQz9ZJ!J%fOAEDQExKb7>i|KEoKBxSueX#O(}bH@h1WV_lQA@hUxDiLCUAT&F~C zuS8BYM1C3k4Dft__b$?)(p@kyEB7kIu?sumFj-@3NSsg%OCSw`ZD{aj>R=JohHLH+ z_WkB#*V+D}l&xV(wsN?k>_6aL1}KYa!%35&4O1{lG{#n>24nl(zlyQVaU{%yFt2`y zaCjfsw1|E%Ba;}vkFOt66fNe{@}%3mB>CyIX1p+>l$Mfez36>6cq{&_)=O?lApq|q z(2HR#+S8}sE?i3ZTzW@Qg^waG#A&Jt0=Z)dGasqr$Qo9VI25U0wz>U?923yKs$hSJkrJ@ ztz-n!@Seo`IJ}Q$8N65FJqaR^RMk6BQQC_i$=-DpU{h7^YZawW_pTd`-^t!TRqzhQ zs=8jUqONpx?`yl3K0Ps}@Tl0rJH!{>F1GNt@rB357A|37w4<8DX*-g(9aY+nq-jS9 z092WFBwahk8Elcl+r}2&F23*%v4uy)7v43t@Nm?32MMPe5xi4~rNEpL;`=k5v!NJuZC zp+#JHY*l@xxT-Ew+)e|##tK-8omMqr!PsE~OL0k=&G@I<#exkKTmG+S1NYv42pc%M z#u~X;8~FNXY<8{6Zf-Sty!?b z=@Ck6o;;dp*pXUiM{326)WVL`svSXs+7U#?w!n@MPZQ`WS&&ZI-=i0#r$(;DOt&=Q4Rr0Sc6N#UAy-X2K6WVSc@5JP`@p8 z>2u~9)OJ%f*Qq=wgfZe&9uvVBaVqzTU!CC3LeykI2%MUCWx2mkVf)ysT*%3 zzhtWB8p*m4#)y%uieQWw$wUNW&`1uLJi!=iBx`L~jC!55zSrr>M7_?qGEuKHu1wVH zj4NYJgY`OtWoTAveXp}N?R%YY8DsO%C+T(m<7TgF+I+9G0WK1~PN1&|pS!UZGT-|5 za=4dz5Vi`x0{bI+n8EdZKGA@reNl@lcdjx|jp~Gn&oZAopEM5e?i;Ms#zTtjNaWw( z_AJtlU*gA_pCGv{eXzcicix`}d9#QJ#zr_177T|tYpf<=DsL)9+)czdwU!NXPO?=- z=Bt7zXSj;fMfkMwSirJymC0ydH44|5$mj(8o@^qZ4al2>_i7WjN#VT~?-NWu#hKE` z;#3=1Olf3sY9K;jmkmeS)5z8hC+B#L+ zk+SWWs_jSxBBWDIJ5sJ4HbNRH%m`_2VH+Wh6lR1px3G0c$&kB}le7_a>GuGWmJGn)>?D<3pf#cEaqW4*s^Yx#dJ#IU?Jj2Vh#K;^qO?iU0ux6tWvo#*nL`zVovVkL>jE42H&}tfd_iPE ze_#V1-^=HI+T}3BpkH7SgF($o+IVG;<+P!GT2(y)mMGBxO<0M|E=5@8De9U!dZwmT z*tB7OT8T{?&NSKjlb+QxqI?B*@pRP}&#V(GU7wv=HItip`Un)9T#KhSeT+eKen}8xyg6Tro@Cyq7nXFR6{z6bPTD6N*zwR-w^oxtd|+`iKdE%TmxMmAY4N7>*e z%b0j}vaY)crAQ0>UGIn=jKT(CM(E*GVP?d%vjj7LjsFE{z^?^$_0hB4oU`P>?^rLR zw2@pU<>n+yfish0`6?%TydX%fnxOL)+2^W783dZljj_v6v#7O{KiRyZ*@=NPZ^W_M z(b?8mR6dV4RM{k*+w7ZeG)p4QbZrrd#~y9ezw~5VE}coC2sXzeHJzP0On1)m#ciGM z^LF|ECDN7z%TM!<76Mfzz?o|#)sc;=R}hDc^^QYmic##(mf zHq};SY%FDFZjI-9n18-w^9yMvZ@KBHJ;5@2Q>iPq3V_+Wjp2?HGQ45UIEyh1q1Tjtz zV|?6!)S({PL5x3;x<1C~0gTrMF;2EB4o!w#<)jCOt}Qp!tn9YgK|WAOMtG@emUiO` z$=GfR$=YsQAsN+8Az9pwE9C5ijk5&{(X_VtakjQVoUJWS9@;w{akduPBH1O* zp2%;<`PvG+RDtc(g=XEg27cF ze6v{`V$%Ee$SZK#N3;Jlndnr zi$;w8P(>rAf2g970U)j@eN1VAo6yOdKcSP?p$f^UpbHFWyT<3*@k1tb`~fSOtmj32J! z%012yDy#lOTSkCIt$SFQp*g3S6PB;ou4~$`23LeLTHJ?d^`d;>wu0_m>|j&RK0=!CnktBBZ32Y#C6!dcu3dbt>HFXm-d3L!&-rBHvWbth(DED zc4;r-I(*Mm6OSDV6PX}h6TujC9nJ}2jB_0@BeH!G-QP?b%>=Q<&O-u)A|3-bX1e{s z4pPKdh%XfJ659hcPAg2uxZJJ4g}GTF0;fmn{BYg> za0KqxAC=nJ1Z+;kz&`LXGfjX(vxD)lf0w%cOett!FE>?l=VqseFh&e)DuOX$V0VvT z3>w%(5M!Ky)p>{QmJu6kW*Bb5)ef^{i$*N%P(>s5cBrBet2 z$W8_~QgB_P8|b@=dAb)_{(g#_EPq=?Aj|sCSRv7S-^y2D4_MdOVg7oUF2s2IcVU(l zKP$>v@524qxR;;fPl^r4435iYdu{_6bcV0SmPyrA?0-(i0O2|1#^l^lh+;M-$>ee- zq^>GqLOT+0$teEUMZ1)jy>?U)7d9G+81sf{RbUuzAG{aSBeE`q8Dv`4-tf|ROXr_< z8}WGW#sow}_SW;X#%itc<-57Ur!^W`qdKNWb+E=n)CiTC)sqxh3+md?=$hb6GN!2@ zm%GMOZ9%Gtm!aC`qE=jngE%l(`KI8^j1*3HwzXi1?^s@J#L9Mk5B@{&7!gM7mP_lj zMka;Kdc=XTtk+B~;dL5gw|(BRU*ja2F=7_NF=$hAL0!whGrSDe<%IyG9Dr>Az-kjp z0}H2O&Ed7XX-usj)f^4r`sv~DtxXrBSfw;Pm1=>|6@_=>J#t}OGVf_4u&pLp-uXUi zpaoTX;>l?DNvu#yID--zuQj1@s4AHbrqy1$ziBhV2W({%8CH8lX4*AaS?Wqpd|X*c z{a!Hj#`It};Y&=sYG~k_`V{^|A3gv!uIcvyX6kQ*AxEs;PXdm{!TY0CsJJl&K}u3c zNe;X&pT&`$h=cyt21>-hK z^uv4Zu7dEkOnA+(T!@busXL05ckWootNM zPiGK)qD>-9x+e^$WGa)Q6iWyntWPBgv+FK`MhsOb+{qcA|W-_BH8q)8f&_* z#|_@-J2#`pLY!}WbsmNDkN;(>gti;2gotRaRT9?xcdU}a_pOow3|S?I!&s$Y6%glJ zCBGmjwN~jx>g{GtaCzrbR4!%TmNnQfOd}okm0+3RC`C&IU8eXFLC;A`Sknl%iAEKQ zXygF*>6$d$CnE7X?Z9}P^9?#H4PO6M=#`zpuZ;Nd<$V576QQC97gt&QvW2)EJd)MY zjo2_-H90n~vwuWyf3daF+tCBmYM6|?S6teQiig>X$W`B(Ks)=(d;5pmiZ}%ktoRA3 zc(|>I++f8i06N9y;jp!z*DI8!V)Me3VvRnCP${jm6=k!vZGM>29l{lr(j#m|%G{@n%zMI_6q|UF zH5NZ~x*n4Ry>-Vj7m1i8QLpA%sTuB}H3<#5goNI(Tv#*0u&ZmxBfnLTIG3MbRKJ4$U|RFN6jf znu7)qLTF_28byP|I5ayscp)@U_8c^T5JCfK`znaLmneejzSY9yvy zevZ#rfD7RSmvR}4!~o7CBRHWCKI9Ni+%4wk_&5PBgj0e{(RL!y;0$#}M45b$A!JYy zKgUM~I3Z-9DYt=0G{_#&#m#4TqmS2CSH5CwMeqB?krrbd@KJ?`fX?_iJ`r-sT40cn zSXs2iNX$<}=by?WMC{7qxr+5km+YelWZ?mvKh6?@H^=FGoRO@+%_fDL;|e#&;Q~6@ ze{Aoh`)A!8_vS0X*gkeU2G2$Q_AlYsKC*+c{fDKlAKR}E>~;N?sVbAk66m+PIj$pw zaY7j5%m_wg2QeNM!5BQhzIPB~&iQrBse^}W!-!2ODO1 z_CIoS+*I00Sz(weD-2T+;Fzj6J|RI@7^c#!)@Oy4Yv}NRQL0lPYVC>m~ zU>Qae8vLyz4S}sA2(`uL(cZ(~N;^A()efXFP?}ad!sQRSfik^Cc7%9ZU>fbsar|v= zj%x}=mi?Gk;a7nJ1r8KAP~bp;0|gEgI8fj~fdd5&6gW`eK!F1V4iq?0;6Q-`1r8KA zP~gD-J`Uu&-?<0zYToZ$vodnO^J-?```7o6wco$yAsC*O>F2YvXSa#Zu1xYLuX3Iz zSKcAB2>U4z_D)X4-kFWaor<&#EQNg%9-mpB7P$zw(ePuzYfa7)mvcfJPKDqs{!*my zPcMaDieGYiKr={%RKdk+%)0b&rYJCTsT$C+1w_IUM`XrclPT`vfdak7l=LtIp9~qi zRnO%2<8@^c|FK2b6^$bdGh=hKkleJh5}QspEztWA%2)IO+j0Q-O@9y#DaE$l5BHF7 zmH6nHjuQtT>ScPfo-Qr&uAR#>F?vdfUod{{QoMJp>Osj!$UlDnYR7u=U+?R#MWw)f z-TV+cg}kHwQx^hnfOrE51K>u9xL0Z02ukD8A&_i9P)2_QaJqzErfSa(8XW z3-eq<&en$XGbLL&#x&%7@HEhnf%inR<|H3Ci&K&0#6VjE4o8W`@!cMd0ts?Bs)nU% zcn+uK(xbITCWTCMI4Vunv~c%QGdZx|7u*pF6bc@WY7iwFxJ1Yx-W({vWT3p-V4?6B z8d25bzcytxj-GjUUZD~|mE5B`k{CLw0}^qxOwWb1(a5w*>uLY6R;k+q(+h@CgLtHe zU0Tmqv?w?9n)_O|9v=eeAI=rgl<-36A`9?ph%Ys?AtjeKNsQ7aiQ!Apd=kM!IS1rC!lG=Co@22p7~7wuHKKZvK6J;Yr4Rk=8mD^Kf>Y>2PcS80 z`3@gYg1>z=qL*I$-+rQtfJ2qXIRi+5Bx-V;U~qb~T2%6j!4JH5zRV>{`Z=o?s0a z%}7cq45rW*EQb5N{Y1c~y5iC~9Wp!D4J+-1iUQMgi)l3BP7i`8b}76&77SUew=Wqz z^S*l(1@a7J`ob#M=M|Unl|3G&dHjWV>0H$kw98hXeEEdLQ&T5<{@JJKH*9}A) zIdhWI!?{Q&Ym=6I*)^Qv=3pMTwW+dW-=!)z^4FdCzzzc-W3{S4HSCU#NtHdjQkF+j zEDG61?^3Csz5OGA!iiY6-AaM#KsA^YgCdv;O_bE)VR$z7t{XYg-OE=Zok1Jl*xNtS zZg7|Vtz-(=9Xb|k*p9X4jnglVCBfLz#r_-Pfb+sSiW>v(x4 zTR%N`kV1H>ozCAV{2Sain8L4R590U;v1plXnKE)>&%k|jCa_(n1_|bPa_H-cay%KQ z2eZf~fM)hVe73u|%XYCM?9(rSH_HsulM1gx#s_~j2afj5bP1DS*gX&O)d>4cPTWZPDrMrEx0veBmRdvWXa4^j*?+JX{T;C{0y$a zw=S|%H%f#4!G|;9A9Spu9CKWR82bU2jKZz}A}4IRu9?KOOP$}=$X=dC5!1`lA~hsY zWz)s@q7cXu2JLTDe(a zY)u_2m942`#j_=K2DXEoocAhnYB+*ZEc(WOeH0zwo3qq6ZlvxPoh`nx+u6BQ`hN4R z|Eu)9h1aoct-kNen{h-8b=1iG3cDSlOTj*L2dnSvF?ea}@S&^!hQ@3&Hs^ndzBf&= z`hLbE(D%C$59F{f`d)EnSl?wn4xv^#RY8QSwHt=bU89m&+rt>-uq$<@x{e+4^Gc0u2NxeG@DTmNrCH7uR9;Y1p`Jb z$z!r(7uC-I6l4xNqN{lL;EKU-WBwdV4)nnUkp7YM?D*sVK0Qr&y`qb6cB6zla3M%{*)epZj@Dj8!{GOqHlJe4saDlXYv<>7fMW45&U$|Ler##Aa? zS$a~W&5mri5<|8*uCgOLQaPv1ag`m}k;*x3j;mZ`+Z?H!(`M=Jkv2QB;R+4e=D5m^ z>`3LDHpf+VWJfCJv^lP_6IG;gPMgIhMcVAhhATH@o8u}wvLlsq+8kHeksYa=)8@F! zPE?V~uFdLbqD?xpZt?!`xlx#eac-oOuxjsFq^S3qd=R7Y__K60ZlL#h%_-s0nB$$X zZ~5)X?*Cq}C%la&u46hqi*(E!8yZ*H=~<+5j-JI;c6t`6oTF!Pm7ShNDmy*1ra!J@ zy2_D`nbYRD%8p@?$~kS0tLzvSshrd1xXO-Uk;*x3j_a7Na-?JCv^lP_V_2kePMhN@ zJBCFn=d?MlvSV1JvTJjWJ-L2j)Sg^}6tyQcKY~4ZW_rM$9C%XHo^)Av3HQU{;vT`>t*XFx&Bn+-G|9_`HCKSnb?b>$%xY! zDL+@r_j$9;^TI8ykLzU^!8**;`>c8Hr}YsL5`t15Zyy6ebom(;m0Chrp5+%ypMn1p zTwm-T@t!x&U&@mQNDcf)O~yl-u~|G3_;XG5+2(nng7M)`HyP73!@@@a2!k9r)MZq$ zfzgE}H(nrQ#Hd{Sg6dxvx*?+(4*OK+um=v^V;c1arr_4nK*vnDWker07QlU~4VSf%hT3kjYh*_r`rDYIR2=MXm16cf;zQOveps-Apg;(c{JH zwnR*!OruTzG+#-TE;=5)&jrrywz)&9Mbot0BGYKwwJbQ`*V7! zmJRpPE_^FoZK(9pU|$g_#MODo)ye5AB9pi}{rL8g;tBPYA$qbx3EQ7x-^c{G@+7^fB4p%3nZA0|&xRy1!mNi@b&fBuZ8!a!JO;5hS*2&v4 z10QO8fvID5OPSsu*Rl&7o|a%g8lv~dwd~Uh1-xvvROW5jX%1tnp|Z`^$=kB8y=%GA zX6nqbb@FQCi4M=4V9O#F;;LK=!3KKo>>afbuOUS(MB^Q>5R>SN*&!50;^t%U9)HJt zFy2=9UEn~00|gEgI8fj~fdl{g9LRTGpoS~qa&dN2f8om+aE}_fJtkSydUBoYui-+S zY>C01J$_YU@`*V7fwU%Wlfi!s5R98bN5kysLt)Izu}dC1t@%UJ&0Eu8CK^4+_r1@~ z^_!vZ3yun*EakON{=m+pxOGIy?fin0hRxy9jv+`}luMcjKc0Ub>)YXkG2&4Zjd(0# zMkev$l`i7Z!rgItlt!3pjv0~Lu{l~u_KcxS6Tiy26hMnw_p@N=*D=XVy7mPm@}tr0 z*s1l_?gn2FYnmdWM$S2F@%>WD%=j67Ra&>5adQ*g;jY8Q9d1YQ(6sr#D(}%(`10m9kj4rU0?{qQGv{p4 z^>3qewrt9Y?p#DYO5t3@QB28JUd9K`Mf?s#>yaGnU40Ro4B|v2n>kA@u8K<|$A3Ph zxF-6z8Wh*TitBuXYnH>+jhN=9feV4o0ln0 zP+f7zMCWhmZ$e*Nk0Qr##LXz|?+%Ss*m!;ITt8$u_RPzjvWj_OSH_91Uy$!mS-w_W zihB}G*JLvX<%2Y;)zZ(An2tXRGV)*!5;(ErvKJ9B__GvGZ{u-n*g`oz;(gL>B1DQ5 zbCyCYiQNuaI~WYYp|ydTU#ND-$U_MpsD}P3D^I@#tlWDlF`C0DHynbOJcm(W@#Fc~ zv0nDNioH((c_4h2VmHYoMqg%FI!_N$f_Kf#0h=(C&C?ymc!5DP8))&8N@qob{KG|L zKQ|>;To&oY)87!K-R}gav|XSB7GqzgWGkoh0j0eiZ4Dmcn}Coy<$yszJ{GjFiUfNz z*dKwb0WYJ==XU~DT{rj5vwz7B<*boVb|?SaW81Q~j$^Y>mCuSxhYu#aZt(y#=gE1+ zB+Q&+oYhknO&A?bC^rei1`kMQ%{Se_n`$zOTLI$DtgfJmt^LpItZY9WYN(oYu+vFR!Q`(depeW}(WOUs`Y(rNkA zMiRiZCMH6RjeH8LrtGgowzGsPgMQmk`XLg%88H6c_<@SX2%U5@dd}Zc>^XAIwwll| zaGpTT=~%`75E?j*tNdT>KhIn;bpPohdbD&i{U=7%+a_(Ps(*in&8qq@;bu}Xsr*qz z{^zOs)%yW!e!(|`n0Ub-jf#2u$e9!KX$3T&1Cw|B(JX-l0Wu#NMGa%Okj#rJM-{i0~^R*pVS?bJuG89_Vs0(B3=b?P6`VfzGQo(_B7f!b>J zu$T^enhd-Dzz!SkRr`Gdz3P_3s6?S&^&Vsq+pFCAD)$?fqhY%Bv~PiIJuRA3<2E^B z?R?nBJ={^s$yt(z0PX%qWBkr%~2vhopR5X33sTveQDg3AMmSyNCWl z?DaAJ{?3TL-3y3TxK7{B{mVAz+eD{t^M82mPi&&ow@co<$bIG9>DwW1pK!Y^>GbXD z6Sw_>O?3LUusQK9o9OiIp8xFJ%_cg1+v%76Ukd6@jyz205c-zFM5eZ zbf>3RMBw5O)WN+X=z62}Mu>Fcv)=bdjVc;EC$|oxU1UT|m9L?hxg3Xg6hZyUsP}fC$7U!Eiksl$66kNvLA7q&#~Qk{QrT zid1m~J^DS{w0O{=0^yd$6bLuP6$lY6_wS_Y;FGr#15^WNlJ%yc^uQN6#Siv`9Q(HU z@up)&%y^@dJ$qSNaJ*U1Pzfe?{bY!YF7H-H$D8X%+VQ47gYjl9##auuGMr(&IdreQ z<4p|xGMkj0XpKM_7%vw=Vi+%b&vx`nd;=5ErOZKGhBIAGzvZ1PR^}(dQOts6Z%Y8A z?>8Z+i1bYHFa}9%I)<`fdX-JbXckPbw(006!F2a|ui|jJbGYOKl0M!^77j+XAe>s8 zj=?RMJ{h+TOlNEGH&}tz@&&r9KhRXZSCnVz(&#`js|Q>`BoyhK>ILswqhvLmpAHIq z?Ns(M`8mNm*MfC$7sZT)f^osrg&5utVFeadSp7Y48gw=&nmsDft>oKAV}gxS{v8?Mt7Y7*lp&R3LRE z;En*%4rIASv~DK{5@`nH$kL~CQ~$IrZ^$F|x=yeB_!&J%lX`sRX}h}8)e~bXyf$Lu z(<6M!Dhv%lCJwB@mg+5$F?ctXyhE(8w|{30J~h1q_}H@iSXT+#UDNwosW5_B>qctI zP9|mY2<&)9*-1>^V@>91KHq(I54hnZ(Nct%O!NHGq7k@(!U&o?gR)Ii)XCodT>%B( z93L*I@yW040STWAEHj9ZGD=hIXThrYYEV{B1^vmXdpus3A;aLNGoi{RjOYcbMn%Py zo5{$W#5f;Yjprn=Uns%1;@BW0;ZBpPYCIgSrfL8%5E&rdq^h zM%~6`jET#9vyXJB+e|6?|NY)~t-aUYXP=~D){kE<33zBfwmR4Ey{D+x~>ClhuXH%%ZSf`>$(%P-O9E_ zc@A9H#h`7aZHw}pwyxVj+Yz=c%5&Pft_W?bY+ID)wC&@#C$!zowne$$HhVaBy6Qyg zd{~qB2&OE2Y#dl;)_A>*WrU#XkINdnGr(2%t0b^W0{>Se;O4KG@38r+qrdN)m|Khj zyeJ9hiUBJ97}HnB-1zuQ>8Us|&(vvJA^jM$SX*v!{qb%coTog;WY$pyNB+vKgR_)6 z=Cs~kylv90gL9NRrnXMmZ1^c|ou(Ypk1@kFW&b&syLE7W@*ERgCEE=6lUoO8Cw0ts zZIFI=U)H&K2&=E0c(-M7PX24o5IDn@AZKQu<<*_<_WaVuHAncNaua2pk%dRI(0%%dJ-)0jvS2CPLRlGb<=u}Gb>17azzn|~8!7rF6bL*`AzIw_3+{bj8TW9Teqto{o#;loJXYF_F zlOvZgdFIwx`#o>ti`J4H+KSt+NxHPm?SMKl#rh}ymjuAPCf*HeWqC~g>|m26XwrJ- zP7u$^^cNEelWyAP8){CHI@%5q25Kea)XWF7w1_M>D1@3x3kzEt^YgB01q)TD^b{=h7|?VFYL8hO?2W^r`qIV4`^4 z3KzE_T{3Da@<>uGBH1_o2~o5}lWMMi2~wqjijX`@HyKn~+S0y8dUsNKuAa&p)q0C3 zpIU_!r>de&I&D8qryUA1x=t5}(I@?kTI_@ClYUWGt|~XfEZ?v5Q{zag{q-OAp*HAv zzPBU(s%-iNk1*dgsUO#`4Uc}SO4|xOI)AI7wiWtz{#NC-6?%F8Rs(G-^!NO&{G1bd ze*RW|;t4(=Pb-TJo*=eGryhT6)u_3@T-mjUWf%KYt}IvNsa)Bv$WytpUXiDAWxpa% z@&SUs^#!n%lU5*B=HldzQiCLu`%sn>QV^;*n*Md|DUqzQ8U<-ZW$6dV*2 z-^^btUwm`NdeQji-L<3f&FWv!t?>lG-OfjRQ^$Y|vuhjQJdS_}>wR(YO$_~&yUW$5A^9Tmy$^pwY(xxGtm95`B$mpc0g1iIGBVX&xxC+RVdKH0@J2hHI*94g6=gCS_~jGs87$TLV8CuBo*(@Q>k|I^^n#$sPVl zo|8W$AIlrC&I|IfJl1V4I-8mDOshzvocUOss_FYtaDKI^7|<_0|AWeOfB#f(@E)og z>ePYzP+hrG2mV8K1D!fZAXHc8)IkQJx?-meQgG@t3rs$t#+S!24NT^c21e)6`|L;P zKY7JdTbkJ#qQP?nB57a@zzfGgG+RU5QYeXFcp$)^pIr;I#8rII8+1u?$p&LAdjris z**)F=#kAypb3v`ECa zqy6T4#rySNl$PYM5*omo|4AQIq$NSDgfc-a^f3F%A`x)*VNDUUfd9Ia>#ynGB~F^( zxxG5@`PtPWK6C%UHZtHtNNcK)Z27vje2bvG&a5U&P|7$VJw)Esm)n27mPYm%2S5MST;IxCjpZ2V@hIZnn z*rJjxuyKV`1l(2fuAFzE$HK-ZkH~574l@fX&mPE}b1^ih=?}-Da2BBFWRHCTWL>Qe zlIda7JnS3Me5h?MzC-+}(>&}j(Y(?&7k3hE9`>SWUS*q$hlw^1yH+$$+2-POqRqqp z7R}SPx%i=I^RN>}^IF?nTvN1p*fXPfooz1O$~MpLk8=!kv^;h^M$0WRoYJS4(+-dg z$n=xZlEYv$8xYRFAa!GRV)%QP?!{aCZtf;LpUQ1NG1A`6^{l#IC4p5ESS5k~%MytF z9-Uo5#rTFJm9fe6q{eZ_*+PtBTKLNo%ZJ-Sj8$5={np2yXA3bRX<@@j({ECKnRSYApsBzxAzPyi?nBmgDkODcD+W3h z@|hr8G1#e)4*`{di=j?oiI2EE#2Y^AV<;_e3-N~cnSu)PmNTHm%>QOGERp$NIqsbK z-)vT3{zRYAau%To!8f42>0}`DL{Yo=`#rqFd-3hx2UD#G#SlPRJfWI`3 zubB++x8e-2&G0400oXWDSQ(u0HXziHb@MyRZ2JLhk8{T{J5vLDA=JFsFO8xvcA*y9 zX2rSa3quVRy-#kTqF*~eA8P&+aqn;?+~X*8%fNqv`#u(#;eNdUeTe%4+pZ`od~EXy zbYEhd;rm%p-Is(KMs$zQ)q0HE&HCn|FA6n`=)NdN_o3!L5%<3C z4fl@j{}bH%x;NZAx({*R%Sv^%sPORtyFmA=+h)CTg}-{JVMO<<=jcAvyq|@;dK7&> z7wT%ZS-)KLtA!dybiZ1T?nBLgBJO?N8}1$5|0lTjb#J(LbRXirx0Pz2sPOTPy+HS+ zwps67;g^OQMs#1Aqx(?v{uXX&6n%des?SaTT=acH4I{emlcW1k^Ph-&U-yQ4NB92; z?tN()?j7BSxc5iA9G@Q=?|t3JjQ1gSM2F6J--GV`exIZJP`~$meoVg)xiR5ley2a) z_u%t?BJNjI_dgN$zV3VQ`TmHP8 z_aQeXTsXS#!RP-(-21vW+&ld~B&?r^dtdiG_dZeQEXJ^ZgMoXO0&d z@BLUWX1ouDFA}pky6+*@^W*%SST7Xk`*XaQI6pLP5iT6v_b|u%iMaQ5+C!}O6LIhB zKF=I4yV?@G9FZpnPqV#nh$u5P6~}RiWI;{aCGvRNBJbERY3EW>ihQaxSuV#clv_Re z#LiD=*^5oaItPN8e zhbQ!12b_P3N{9xb!&2QN@X08Q=&OB2UY{qmG*@mDIQbJ9)M@C>pq{Tk$WziEXy;CU z;PY5iS-h#=A1H^M{y-kJsTj5|HXMUlkcQco6Aa8WMaE#ZYlE?<*?xgGfleua=L!oD z{Lql~GuCMz4OIwciL$1x*=Ucj)7}j)sC9+N32%;Pe^9MrGnO#O2ah)oYEAAF!UIfZ zp#Mari^?@*r7Omem8fEGZ5$jKZ^)h09}JmSHROSxsUfq(H)H|i8nUAF4f)p{jucwj z#gG+wjv?!lhS1d+>7C^R@#oO5ZeFCSX+?`f>785(4nhZt= zDZaX53C&cVUiN{YYADKXip4-5ANr59ZPPA0Y`(nlkj_k#BN)9SpHmA`iD{e6q{4cF z9j0hVO$Z%cVHoT_7Q+&RARy3`@0Sq7OvBI&x#AEcT)ivNLyUB>kRFlloW&}_kAfsprT{8$bm0M+ed1@Vs!?cuRr@sE}F@L2Eo#|HNBSYiBQ*bvbzZ$-@VDK!To~~J@G^)!^+fV!lNUkVn@zpJf}fN$~)*8 zzH-UHlqJSL>@0;TzmWdMt3V+JZ0G}Ial`+hgW%Oq>GH#qdUhjt_2=P}kaM7)cD;H& zf1coD;?Em_(DCPGtY|B$*}(Vbq{I4i<3I|)_E0pO-`U$eCZ~1M06Ck%sr28}D2S=_ z-_humQ)%_n+thFbC&onSrJI5ti8O@;jt&37h=#FYLSvlwTKK+JjvlEA9&~yVna=RZ zJ58mG1LeXx;t?NktEm=e_O?6)Yw@4{@=w;8T?fi&3({t1<$pZPTJL1qfT!r2Lr`EV zl|bfIwX36&N>dob{%qm{M=j-G5A;$5rH|;a`9piF-eh0qhVfY2d+llWbzc}O2=ksq zAZqg&HSasXwo$eTXVzTZONhtg-8qIwRrD_J=650@83TOQ$uGO zgKBi91T|})w6WG5Cj9xCt*J3X9Qsa*4@ln`tJXh3I)~UKsu%gye|+0^j@w1TrYoRx z5Vdv=-m!D=X?Bhf6j=H=lzW3nv8^Vy4cm-nQfP?LH3iPitA>naJXlE5kntf&N1 zN2D`FZ|&PZpI?#s&+^yjj5qR93r7LXmQ{KWK1z4XSG{!fMYd>pEdqPVk@0<~sjW*n zF5wXjB+*k#dWL^U9Q^Ws2flf>iDbEHP6Q9jYlr3`)CfF|-frPlb`LKcUzD4V`9hpk zB2KUPO^ghV)Ou=P_C~n%CwQ>GU$~up zaI1Il;7xq+T7B>{pU0Bm!4Lhyr4Nzu34Oh-Fu&{?({&AQj7#!KzxK}Hk-2{1mHJ2@?~HfxNU!1TZWjrevacUItLQ35xR2KY3M=IE1}#gA z#t)afvF!u#Nv*+IY70R*7V~%RHDMj6sz9o$3yQl6yB-&m;i-b)4foGVe;N;~NO@Bp zWGp?gBAxR=uP6ES>`ckAM4{iS;<6Y%dvP>NGRchK?(kOo^SAD2FS@p*?-9?7cT!tL zw_4Do_rSWmw%od)%G}^G)}QI3NHIxGB_2gOedT#fOPF>L}54|#n*C$ear|&M!raDakh7HdTK$O zSn}mRbQ;6;%4$&KOtNa(5t08G;7_tDrQ~Y;_>jzeE`3W=3cGX8Qg5p3qzBV14*A2k z%O|%_+=#W~OzjxI_NkY2UKIHXS=$s5(|dpO#dL&<={1&QlD&7 z_v4%@-~taOVbpIgOi^}3w>Rrq!Vcyr*PwSIVMIYVX5{xT(JHJZLgvSp3YjH=HZM>z z`>Qs0Gh}WZA#+Wmv<`1QjA(J1(r%v5zEX*XGSk%#<`t)hM=0B0DSIgp;AExjRTW?_ zL)ldjg)6|pLK*u2>`1Jv!`tAQd^AS=_ev2 z;Z1zASPPr)@D^iu$tSU%^ff|Bm=KUK01AgAx8J`nrCS2xr%TvUQZQkxJRwhO&>)*<8xv^z}8|XuO10N?(1Hq~d_2awTbXC23DX zQf-8!h`uiE$VUy|C$Fg}J|f++I8XnY)FM*(>;L#}U}q(vizS)lU_-+1{}`4^ps&dw zE?ySwVgI_mKDk6FyC8)3rR+mqV6DR=l*Q?*72YA9#+B075lT{HK+=Iq(nU(r z{f4BO2)bPpis)3>~c z6-vUh0SP=W1^)0QCE+_>V8v%dNC@=R=f(Wk|DFDI*~KE9wt%vmm9k$cWzQJOUdL$A zlfI6}*#0B*uYX=7B-I5Z-K8WQt0Y}vNJ>RWis)Dk@zt_5 zwAhH0qDdTzfiU=r5Q@x)?=HB*T~J{FcqU3z{5A-CvkF1j1B|$IK}D!X5Vpp15`@hJ z;Z6{yp^*H)a`L&RV5Q}=)`g=#7$sr(Bq^U?A#RSy=ktX<$j1@Ys@qi(SS5k~atY*{?@xzQ(~+ePzSbF8X0oEK z=;-g(vLj2AG?fV$Kg8UG_Fvwe&PhI-cE>o z74;^5a641-S*JfJalAtm@^_YGlIwh+PWNvZIi0aSyMtNmRHE_mZ~!-(qUE+NRmQPV zk_{NX?@*zNu6GNCm;XgU^jz8q6Mc$-OF!_~T zmDTYnTf*x0Q0dWh-=*t3?%}`x06|HMAKAH8r!P-+{7`p2}Ig0 zMayn2Eb$t!sQi)$fFaBZ4QXlBRHATmRFy5>M&a^cj>*RU7t^@(PGY83nK z0rq_q`>u-pM1%d;VBNvqRixr+iJpsX-DrOPeQG0p`z zvV*7z$@}E+-1eyQ9Klqln6iKNC4Q)4`Ws6!$ufiK7W7kx=j;QNxL^|QC9N7ZuUR*6 z4UjHSx;)MpuW7@^ag!Z8d!D90%l#%{6}|UJtcvd9C%rQzmj&b=spPgQxexFH1Nj0y z#UZzQ73K5yOXw+O6U`hTar}KkcI_3N{tw^ZccQ7?M8i+Fm!SpwrkuVB7a&iFuN=QX z8Q0xn0tmasc$Ml;AJ%F~{PH+KI*_4$^^?C-vGnRH4t8cu2XfnmtF8}kE}6a!`szgB z)UHZ8*;W4x@uRDf!%$Zhlg+W$;QMfu^SBMm5yc|0gQDZU_C>+@P7OTt4A!V$n^wVQ zUcwL`NxHr{PIS83d%g*tBp`|guq2b*ffwj>L&Wi}PAAgS3Kk4cop@xzh7>vPD73eE z6`2maP8QxGXpdF2fBTb<_B1@f@slMOKMmSDAv_nY>Fw4TzOpq0JP5g7;|$3@C49kL zk#IYH=1SOlhE>;95@5auy8>f6og9M=|5G`y16Jg8x_a>oMTwWCqM?+x z<9J&-xefoP(H+H^N#L1634&2{6~d`$OBb`dYCYZqASCHFFFd8bCNg4dc7}A)}2znRREO!9ZUpu3*g9_lyQ@6oF3EILP0CV>l4p{E8Y506Lr(CLEm!~i9E0LtSP zWt&0y9g=!ZSIu6=R^YSAAZqk^n=;#Rv(rs=t6zQiUCMgIWeig~whHLjSLxVN={VHT z(GaG?jy~39+`A=Qh9^O-#7`;Wh093K5tl)=hg?QJ`w+UtKIrQl`rVnUaN7%r-q)W=wLzVrB5Snpk`*{Cj~YOS87H8i7`BZppx68k7sqesh-QLRPS`Z zELTjt5Yk8W-VD4@BGk!rjU!vRS^e0ZnIJYsH-@{8P=lH#|0a~rKPUyUW1 ztA_Z8>B3fg~59wfEaA`-V|I!$(FNlp+GtG}w#E2Sa3D&Sy4{JR{`# zJ5=RYpv^-eQ_DK`T|@+WGCv)jDe3c;FVHb6&?1&(lH2eCf!+^|y8`V6sNLJh3=OMG zCv#g!h=&(92M;IAiV>Bl{+oNdHLiD2jkWMt<9fB$n&(PmbPTCh4+B<}H?&{keUM+Ylh!8oPReGD!+i{?imf+T}`DUi+ z)u9^98S&dYdm3iV5L_dEP;hz@0e{Ks)>=WI@-~a$Q&=^AT=!Jx(lCXdC6>C;-BEWb z#)Rxxeoq_}2vknJNCCdgrFUrzg5)HPkXE zBMczH8xP1*g<1j(UU1^C>~G-2M$V-&b+%mT^#jP@vxP&B__M^EdL_gXD7YK!qMfwp}F#VcPKMK`^`VnhF{fKbUkDMo@ zAFX1gTYlOCZn!NVojhL#v zrw(Az-t->+GQCG`!S-wx!FKt3JoclSKA%Ht6b~uA_0}jw&)t`oqEQ$jv*)tMz`4x@ zwsP$%yd_&hd4;*QTK?PDLkfEicG})-kAHwRfI4FmlQKD9URphI->C$tHOoc2BOwd-1S){@_0&4LkhI zpfGNS-_hYm2!$+)ZWmdQ#XuIaUl6KnS=^|6uY+ob@9FpnzHj`C;k&w`o*oe@<2ohj zgirm{K-l&amtp3eaxk+4 z=9-2Xe6Z?eZwAe{W#O0*GkN&wR`Npve(KZ6>kkE+aP=6J-kPk;bRNzOY z{@7s(q40OtW-I!fwR@h=1K|%5tUFQo?3FAMf`$u0iq}?Q*S!$s*MSTRE+Hgqufg8@ zY=4ZS-LU^o9`^CEvYy!gx0wbTKNi;jMNL_@M;2$-Wc*+)RgK*Bl3HRc^@306W7V?iRi@WW5jem;idh;N7{%Z=9FXz0pqKrk#j{ZXb3)!FTpUQQt z8R8qkw$)0*vQldjQe3HNiILj84Is6{FlBT5_uQM}`}fMoEB$UDFB>{TCOV45e#ntx zDt#pWLyk^e&W9YGx^i@Hd-#QXQ_ZQ%`H-Vim-8Vu*mj3Iycd=8 zol1SIrXOl@KUC>f=3!8u%)_Bp=3!AQ^YEyZd6;CS?=U$9*uT)YNbzgluI4A=8S$w- z4kvdHg1P+<;}#Cz{QNeCll^`ZZ*JJ{KMG$bvYYBh*%DzG2eaDV5C}tk!l1Z)nym1&oh&&xru5hkM%0KlYsXC z;I23E>lXg1#IMlw@ymhe7OxX9)u{`sFq?(OQy6~c zalV}X=jZ9RXM~cz#64#QJD)a4zv|JLQV21+9?cJOS07}mI0|##Q-E0?z~pFVfsQQh zngf=vXOrF8q$RRZ$mgdlZH~DC5yd`V#Uj>Xh_!gn3%4WD<>{7AnEQZ=bpHEM+1g>D~??;!l_w^lYbwDD)X@NHx+OM-;oZ#G%L@jdRVo zY(a~6bi|)VM@tQqCPEoKU3KJ92qA|9eMn2ABe_SJ^dzGr-pA7?S#EAmkR9T5!wQAU-9b|u#l6D!N}3Q!-zk?rR3nM8W#WpM%|pjrb6E;xcB zl^2CRgJbdxirGYQZF3w7)e-QFGi_VRT@+P)UR3%Rw&0n^+llIysd1>t&2$4Omz$=% zDD)XUAeDV$5mCI*q$r{z6Ec7CD4edy7Tylm0)QN5`swPJG+ciTe_{h0pT=DJdv==U zg&aVm+1dF0ma@`O4AOMG-34NF#@ljMv=v>@;g7dV&|u`;H2znQ!WQ1+r>j8@6*!pI zd;4Zc*AwP|e?R?%LATyJPNoYw7N;}kl{q6cI)|d1R#8P*Q`6@OS=ko$^)7CHjB2^TI5S&S5;v)5+aV5H~3R8-Y*R@qK5 zT2A1G!&a%!UF}=-7;nc(s(oQ9$0Wrj=*;Jc1{{;@>=uta2a}Xm@B)qAkr(8}(@!SP30Hd4X49gHU>K| zw-lSfd8|ec*SxR}KON^0PYh`1ZRUQSLj;oj{$clbF-**+`qy&R9uW%LU-@7_R zq5cgr6u^GyaM(J|cA1)f=*#WHU-M?3q`g-mnOl{^Pykyh6Ie{ybKR8X+eoGOo<*jB6Mx z!?=dAGK^~&E5o>ku`-Nn7%Rh^hH)|s8rcy~KUe5oLywBSSQnnbS#PQ}OT!b|@@_jw z)SI@W=X!gX_=qZv#J)gPD*%CIj`S6$FQ&RhCC{NRN-OlmMMQOM1N)-BW$%R8KvN%& z2F`1ikY&E9@FF6z#~A5b=i#k6ks#@XU+oPqya7WtIF@mI3SPL0j;47b{jB4KgJfb{ zzK^?eYP~;9AS5o@@7%l;7)vKVC3v|b2M9P2aj_sRl$amzwmKTJ26{EyVDJMz#AIFY z10%7zTQ)1N0g}d=w(5#;TtOSdcO0(6kjw3ECd(Rhddio}CJjCZfjVM!)= zGcS0&2|{pR7mTJYtWGeC^*YP_FQ(ykpXX;U9>T{N4 zlIt6$?!n^@Q}#u!mW8$MyAApE`NR1CJ$?QhMjE5fQ+5#6(*f%XmGym;^)q>aK4-%m z9M<)qSkdQ(=S7+N&*^g)gbFeGymEvvwcvJNpD!p=^I4Kfe!>fw`qPvUQ+f0m^wd>% zt0b^W0;?pjN&^2sNg&^NZ4aF-H%G|~ zpYK?bNp5vv9@x89D7|~7KQxy)&lvf0P+S3xfelZlEVz-!U*IS z(F!N~06vq`JWX)p!#VxNb{EEci0#cOEVr5%Arc<#t$5!H@NS}bKT(d>GI*yU&~-TK zlJ762ao$UrU`;pAXT)mWQo)Hs8=i{D0UVD>G;C^Qxq(oXE@H!QJi65NiEBOrxyCe3ZKI~c=6rq}D==rn7=yHcpH&2tXC^?^Ov z-%9$AH@6V>4+_{fhdmvw>`&$eTHX+IW~aAhd-fj}DCAKAWOKOF@d~-kKwbzp;6l#z zA0PZY)_*)bE>@wv74L2V-a1w2{)%_J!CMo?+oS(@|HPH>AInb5*D2!l*WBaDu@mq0 z6Qk2<;7Hrf#?>6%$F=@MgB;!0A-8gLA5#!Hp68>@MdK5H<9Dl5&dwV^YlgVCCT*ozrF3Re0dvw^BVYpD4&y;jt@7q>0AIube%92cS-5b=l7Qyj_^xq2-E+@iaM*7%33ISRn;}um_ zW+oM@CZ!U~xm+oG@<8W~kcmbW)VOV#?wv{1SRK@q4R8hfOyHp#c zDAF@8-paj|tOyN@lwp`HTvXOrRP`LvQi>Ngw^Jw)>P&-x|2k0dvX zS0GH%lI!1N!FBV(nSf$*Y&r2u^Wr8V!5UWOytQ%XtYJ-OMO)FUcNkaA3@7>~i;Z)h zA-Ce3XYw|BKF&Uyh_s%b;Y;flw1Or4o+X*&KX`$(u0XEVwFFsKgH(h9 z>;(br-zw}^7529V_V5U7Yh?mk3?`kC&w+J#`y))IGFZi)HxpO7J+etMJI;!=_j;w| zx_}aHF$I@*DkX~yC3itXE|<3oSi_|_EMLj=1y$ZX`^6o$_j$Q6ep!I-cZzO?qML8f z?Gi@E5BTKb;-sd-I|zvU+UI4w0Z1JsWCs-U^Yi}>E4%P)iU?L#17m=Rb<*iJFKj|< zYhpIEGx0L}8Q-S}R!-fZc_rh!uQw9jKfTsBsK(M6_dv4P6?M)6P3#hFEGSQAtYD2JpGDM zL`vpq{&GuXet6YMvA(*4-^|XGj0}*zsYnl2q>TpY8eyc}&kvViT!lc``?)#K0HX+KPX`Tb7lW%Wq&d+u)`ma1#sA3f%)NRg*+;N{Ix

w_*AFVGO?H1tuR`Kqyc*h&OTZQrV=s%u1d?ozHpN`Jg zDdPP{&-25hZ~BquhYR?1?o7$VU;EvPpLWEEaT!Z6KjZ}(9{};X8eft5;VBBcDS%y~ zurF8Gj~dvskw0-^|8LC?j~l7O{A^fA`lp;9E=|QCGC{8(*I6i?0j5Qvs2At!{6zD^ z9XTQ*1QG&PZhpAEnG8hcho`J7w$*u+Z(BoD|DUo1^TVsvwq_%J64L*_F+aRgX8+N~E3Fe2q zKw4)aL*Ym(yCU<$7uOQl3j)~tswQ4l*xwr1YeisNE1OO$3(pU?M3`)+NpbVT!gza6 zDJ9nhl+-9CcPb@|3?);cA(zV@=Z9^(#?233T~ippEI`M-Tp00YD7yIu-TGm4-OUfT z0V2zII^X>8mQGmNF-$8v^TT#J-Ibmn_8cGVc8wn&$m~2LBZ+gylAloCia84oDJHk9 z31!JGzs=GKhp|B?Z=)%ODQk!%XHNIc^Hi1O9W2QtU*QGjxd=?ViYr52l|b78GiM=k zdj)!10Q3w6dY1xy%>cb10`zeV8U#x3S8%qU5Kl#u)~}Tb(KiI}&36WGQTQ(!_=6(w zM;rJa;1?@=-j+q-pRMq(3gAyr`ma;?&lvcRpAZ(xGPJ_bfdBO^9}dIbn^kV0Fij2z zOHXZ0pp_k}YgDyCW^TvhV@H*DONH-41G+9$x{g%3E-`csiO_XI4lbJxI^YoP?xfVN zs_KVa*!gKZe&&c>*D7bggocrG2e1~YBU&4iIb*z!cd~AIZ2Ri&7xU<7%EtHVD)LHY z9;Hc|=c)_Gm;}t&_L9)A0ij=|{8iAkO&W3(EOicyy5t% z(`D`lXBuh!Kf_Jzh|ICL3A5c2nWSqt;Rq)yF{6&3Kdf~A;mHy)j>|9id-C;a99Odh z-$UmG%&Z0v@Al*s%Rj7jSnOOotw_%bkn*TsIO1~^=}d$4R}hASwEO%+6C#zB%Rh|M z?hoGeG+-8+4<|KDd-yI1Q~QxZnV{Y6&3$1{>D2O{KFk9S1=<`@q982wKjhtuSX+ z&Fz!T;^r)lg~OdOR#!iWAl+M=8Jhj&blaVVy^HSjH_X4ys9Vph?EZ)1cgw~bb~#`oVY_s4f31g6Ov`)N11l`&jLcCpfSmPVH#7W5Uf`Kryg(&yD|zGX=! zIb<3xbYqC!Tq_+?L^|vm0Nz*u?6fL7y>sh8z=#fvM=GWd157U|CQmV~VKChaWx1H< znbl&&5QnL>Wg9?>p@w8&A}@9{EV7C`8wBervI1_>#s)rCk&8*4_3Y?>vxLJAZ`bYA z5Z%YHicEO4dMTdTOlWiQm&ksDXvbegb|12heOwZw1&Cg&j6q~F0uB~GOCSXLtH?^O zX)eV1tH?^K)t!n5>*_2nostI8z9@?*1fQ#5O<5r<^44TWvQ`jo42iV^pueU}Lkz^Z z$om1KY|NhV;eEs&*S^fRNArEx^;wch?#&DAaUud|*GjHpcxEYqWR=2*>MhHr8Vk&- zWRa3tU_N?VN}VNkfmuNXdf7!<7+At|Fyu=DVLdd+e&3TE>C8_G{em$Z zXMZ}xaVUBkJRq!_4k+%pU>6BvmIk|xSE^h8<#=UYZxP$AQ+%-%pijX@X0ZhCAMpaQ z^+Furh%NgEVxO0j46wbd6$q+F+Uiak-dIbTMhDVxxm^_EO^^ z5phA&RAVZUpy^qDpgU7?Y(PmrrQ}4VBx5L9JwnO5!mACMmN=Zp20RN#2h^qgeyy~c z@I|~&mG}0RaVd)pmCVwB%rYf2sbub9$UFt1p(8L&SrCmPbbgn-t0b^W0;?pj zN&>4Suu1}}B(O>Xt0b_(67a)yWIW0>NH0a;-8Y>nTI1rAjetch!8R7Da zI3wgC_01c~7iId)m5^T_Dvt}>gZZq*T&wB#Vop9t_LuhnqI{a9iW3rS(X3xSq0jL4 z>>8N;@mFbdI+@@H!80Yzq=wtpN6s682QhJ-!V=8)h0G3bzjSDJlx;^VBzd@*0nGnw z_zN{{Mc+N!kB_{G%RGEnE#Wo&OmYkp_UADc~4Tn;o}p4{(CVf_3HeYNeUj5o0)le~);iv zI%ljT>-hveQ?eW~ugr2AGPNjcd*%EHRJtZJsbVNe&ESi5s8&s$vW@C$r<%5sd5}_++Ia)f^HSDdt=r0 z%(defo1H}hrIXhZ)gl##)lnGzIMJMUR-Ty8ohK;Zs&=1QD}7rX-4m(zSQup*vVMd9|SDd&_HF{ z=DF3r&QF;}cjYviMM%hu;rlvhL?fImZLD)*dU7_akKbN2eHx8R$Y`lboYN1VLTCV~ z$XW3YHwpBa2CoH*qeIw@t!JVXjW1&3M!#{RY24@?ZW0G5kzl^Mf|67tsMRhH6iJ`}nXEF9Uuw+H z)K}Z~1oaqn6BqXCI$Xhz zfCWo^|1F?(!^`H~AQ=ic)E1@W)f<`j>gprTrwe}F9g-jE60`ie`iT1 zxegGqe=mn%ok7hXzkb;cdpsYqQG1+;hgWdCs;4!k<`v@!-x~P}6?$13Wk7DNLgTcF zPe`107%n=xzm13ktdvgvtJ}Jg0EQ9()IvW)iB&@!t+=O6H{r^Wr;)?sIPW>Nn9|9@ zH`>iaJ%@uCrk#mzUW5OjOSr(g1XTqdU_-=_?>#Q`J&cReSEck#*w1|edj||?&^2_$ zNE~8}Ix-3^`p(P+c{&4bBCv8b;Pf)R$+! zQS)Mn6-9+qm#@NU<~ZM?d(QxQ!xwU2m&BXkbtb#LSTMzgAM_B73?l0^h-}_YxGiGx2sdlYygr$d$aSBa^b}Y`V*FD>;T3npg<8+9+2Q znD?-WXJiy<^kzX4?57c(_whvMsepMMH;eXB=Fj8>Iw(HApu{6H2N2#&4qibW_Cq`^^>AZGsEstu1+AO*5ivN;k4L zco)BjohjK1w3%sTCv6~8lx9gLc@{5_?iY}pBi(E-p|9w8d5${_vA&3VdYd@@rqGe+ zV`rei!nX*3Sv$q)I*Y*^9a{}1RY(JCUu%Yl*bICuJssZuLc7Ixz9Hy-1=7$ z!{dNw#E?}n%x4MCyW<67=z_^QV(`a=EuVySos2NZSeNJ@*7Y3b0rkLt1T^w65`tHtLP0Br%jw2=66(8&eUeUBZKch65!y zh(_z)M?!GlfZ!igJnJgKDMRpfKEc3Q*>yNk*S1vUh@TQ7h|Q%8r`T;bIkcpvPT zM*t~D(IzJm>rc3S6*L6#prfm55{CgBlLG4Mn9X2Cj%f4EhwE1~zF66aVdMzuKBbfS z?kwHC#;y{jOfq}MbU-n|fmfwHxODPu)CNlD%GK^5^K&S_gyTcUoNzJwIor@+C1Q{u zot+*PD-hJ&G+Y763+@(BIWZFu$Dmn+4xcy^S4-xv&_C%HB4f@~`~r8Tq~R>z9nb~A z2+n6oCV3k#a0l-}E-}5prmGq-fO@qcED~qL_lICVWGZ?H14*WUJYFFa;j0rrqS3@~ z_*v9<8%;dI&v9o;J{#vV$IK9z`u@5Q>oQ9kB_Gf_z8*D($-dD9^83MbE;cH& z>0h9peP({tPjSdx5lk<`A?a{>NFFrDb%Um8Lkie@2H-(MbiR?fn4j{_lxzWbW@I*R zhi%J}OtOv_X!hsOn$s2ik-73wsPtu-A2Q<x*VbKCrSW4np+e1-xTnj)?NHp#)LWU? z&A`1iA9}Qq{k&`uN|^{rR;p#9a zG>}wwP?Cya%7Dj@6o34v9DN(_q(9}Cvoj^9oZ(x>;o9fVU`Zx<4KJ{aouGWjGHj?~ zo%ERx!$9s~oF;1uaR!plUyl=&;=sx1qCyiZ+KPVj3s9)@L5b%nGS)y!;=$X6UXvL{ zKOUpe?=Rsa(S&osTAdQs=1d7c=V!1pCC{AhGe1Uv6?L#All+_)Fux0|!FS@d*%3sK z9xfImWMm}&IH@8nHTr=cwcNq$NGC6yEOYF(l6CHtsl{ja=+r_VFsa5N*660tBpd|k zbjHLuY8S);ylUy@hYa_#%nzAE&NM$nN;B|-_B)-0w060oAL8o$V1|b^=}^d(cbtwe z(GjBk9T8Y|tS_)L2{%*p8A~$Bfkt3`VF}$>OYbjBh?NpMVU;@DbHp$vGfA-+XJ`!T-j5a>&{`N%B$GUs7xb)7M6QmZ_yf)r55Yo4!z?3H z!N)fe3!&1Z7V=|^KR@A!a+)0}5>y%bvxF5o;F&=H-Lf5KpbH#@7~dh`(#eZZ#0dOt zx!R-8{1NDE+in)>Icl&SO-RNQKFlAfAALNz-o&6IT%6)+l;Aj?DmPH8iA)qu<43;{ zcaEX$i?N8e$`nmyNhbLqFEEyehK7tKItD%d0BmM+L_+anP`>eJCPf4XQX8EwNDKji z7E@u;C!qyukJ%&f{lRFH0B2~@?P$~ThOqh7DL$Kb39zDm%I0vx=F4Eg8Ep#1UV_mk zG8lM9!!j6jnjbP4SVNG(z#4*Rr~}P{U?#FobMqRaqzQYwBTzZ#7kEt#pUfl*Sn3j7 zjitg(!cr#$qsNeVJzw&=2w-#|fcsSdXR#!cyq*{6`6UF#j#G&0dHihXdCyH%&pEHT z`a2l%xPH)w{4fX)2k5DYinx%*kKie}dXJkx_0s%E!k3Fa5PK(n922|Akf-F@nQ zsPuGrl=!ae>vYx4DhaHTz$yu>lE5kntdhVg3H&!pz%F>E(kB$PBeNjOUGkaWl3&e2 zIJFIea86s~`!SV?3Dw~ZJYPRAA=^Ine#lmdpb<0l8kS^|6L>+$wg*B#4cUgbW3zXg zEG(t)@sjZA6wdpcBxqX@WY$U-VQQBkL5rBP$WPFTN>E8aklEclNC~Po1l@dnj%t207sO4DDmY(kYp^ybry?cjI#9n8*S^R%~U zHFs(GC|z2P?A^}r6W^JVeF8QP1x(tRvN6H1@yCIdjjsL_(70gZb{BR+bBPM2NTQ-zg~q0SxZZC+^Q=YN^*mxp9hwQh->3E>?2n6)9uYzC;yH*fsC z&}n8>-}$iOlW2!56w#eZiPGFET+kXpShkO9g-;-2nxt5vm%%xYi>ZBdhftEOqDLdY3gKJ1=EvEp_Jju zefJB2M|WYqs5w)lLyzkPfRm&O-MAb}ZVw-mAJs2`Dh-H)to;p(djwB3vxFg?ziYzc z(EfG`{w*H>9%%zak}8pjzQKBMH&_cO*?6qX)+0HTo;MT7y$St-Zj!jLPj(Wpc8!zX z(r{``#x_oaXv)H?`QaOrA~*^yVNp_g&RRfc$m%#czc7v~qQa4_@qXj;xu(dXZL`)S30(H>#KYDV{Wpgx|24el@u!k_6@NMu7UB3)8VF5YoTlm5RY$3HGr0PZtlDAAi*ARUxd>Q8yc4(d2$o1f;u1pi~UG@JnU$lg$t{hK^u*B+SDt)h$Mh{g8i z<(BeN+n(PaCXLbnG{Qfcy(@IdS00(4+K-W?)IBNa{Wu`$>WVplrEdPC)ot%Q3b0vj z*x#=kfR`n-bJuy#8g_bhN#`c}-UEJFeCO`-q;&2C5SY$QZJ=|n#*$2OTVBw)Ye9Bg z=l<+gbncfxw{~tS^?$o_+aQkHlxh$*(=x1ADC?tHl1WbD z1*{(it=qUdyBWt{tY>W6j<(Q_>>f-tYzHKjO(<#@z&lnpY|%AbT6W?`dImzhFY5@f zaDJA@apCRI;XsgmQ}1`;{R_C~BY-;s*AY1L1^)x!2=1jXopK7>o`50%yXJqsSzh|c zq=ME#t05q0F2g0=d;aoH!2J?B%kpGW+<(S z9kjd;>D$7&-@v)&Yo&nSpKXftzLfXhkn>E@TD&ieHRJhytdRU+0u(^nP2mY1Vtnx2qA2cj3*MxEaZtlW|kan`3Zu1aC&+ z<|y7AfSbd36N%M7m?x&PKdOwW90U~TC25vmA2Tm7l`RptT2s-PSLsHHi`H8$aT)%u z!QZX;`yKus!{2lGdkuf@A0(7*Kug?|3zKL*UR>{d~F?uK%tQKsaMkG??|*4#MQ z*tyJgf_JMS=aW%&M$8|}?H}vo+Of>i6U+xKWs)hVO-zV5ke416tC+-Yjiz{M+Dt<( zVM!)=kM#ErZ*7Edj_>R`kRQ##2T!-=pn>nNRwWuX(c88}=_A;Z+gfaYrkA(N><(vg zvZ$5^$Z1jjuU-c9lPa0d3InM`!ytoM=8cM3zP6gn+h>mmZ%dExc^j`5{{u@h$;}OK zRR|tk-fEOg@HC+id6C^MBc+d^gMc;VBOUO8y}k}>9c+}JHBr%z!e6QKH!k3hP6Ivq zBIWN+UeKfK5W~CtZ5HNl-CX{}Fwyxd?Kl`iZ>>%wi-FP)eE4cHTzx&>QM@>M?&on2 zi#9e1sJ&dN9jes++)#UWafsUND|E&%wsARUmX<0+d0uVzN`<(MLOjAitcyUDVTEKi zq4{{RWPBc2EO|^|$zz~jT5`QwGJhJg#fEfIH7c6g38Qc~>_wj7 z+xDsgYAg13e6LtW^J)dt8$bwdY60P+lh5GqacM25kd!!^-r4keL|#9aIc@l5=asNG zm`1(v3eci>1?5q^Lax=k^PrA{hxuN?ydhW1l1%bEUeIecLDcE=n(R!djeO(desBzt zmxLxM&;tXYb0J%F#X}Y7L<98q;ME0sfB~w;me`#dxo{67UYMV#r{36GR5?NnO|V0y z3=_N&2E!>iHtz6{f11*lcRS!(Ixj{z25r$0eCrJxv=0rEtuC0@hnK>OA`D;kfJkx9 zC|`=tDZ`JkB$NDz7fA8F!Z5>3dNBMGgBh3JxnO(*@Gc7Yp#U&H{RBzQQ@|e@z%3EL z1wP;$a}{38yvyDxHs>siZHH*93rEcF^m|wVI?I3&^FJu-Ki}_6rl>e5VwV~)qW^q$ z0{S}m0n5u6W8@-BTL=%)H?8NNNCVWZ7{gyROws=8(mNv+|?R4uB?h1&lT~S%4*loeG&gdS^b~7u81Yu zA?643NXPWRdHm!y&g%~Vf2)9(DB$%B;9g+$bUta+m-qg5FyTP;`s;!TxY_qx**)b3Yt4{;7=27(Yz?j`k;uOmnMrM?3ERn zd;S0U4PF5h*gL6-a#FGtn?WJ+rXZaTEW7!2wQRuw%SN^Mi~x%*B%YjDIL04@^nqEC zm@}j&a}_WvQHe4u=A5gtz3y;19%bCnAAU6x=SlJbSenD%{GuzjgAkp#J2Lm8(e z6T8A18#ZDAHaa#!BHH^rhaq(Tk!C`USz29J&vm>%Z$pS)VK-Y3U@TYaUB!5qvhloDa+ce8|{ z&kpvLa)dJUJxeml%?v~TToz{NVlsqiS6*U4JRF!R8S++J@(uSBOWMu8wA&ClVrRIb zej`9VT2X(fsQVk#6MfV`S!s9E#;gxxZXb+a0sq|++Ghm_z3fhrQCmRh$x7&TO6W7Z zK#> z-SIxj$EO&o|`0{*C2d$d#jL0vT+{+mx<~^EOYH?R2_qI2$3|MYAeSPqA}@ zxK4cE-(x%RW4{%CUO&jU`Ad|acUY21_A>nR4)gO9cj9j2huq-c>)VBilLIEED-$Ow z6B%A$lzS`@b#G4kU*kgTYlq+GuT8!1#jEsc0H~Z@m5A{`Ibxv zE25L(b8i#rw;t%5(0wYS%UP01KFSNE-~Nw~jI!?#G*FNRuI#qURR;w7xl?`T*$xxI z3zqWg10Sf#IPY&Tby4lD-qo|eU2v<=yj4K+9Hn`CrFpcWd4NwddTC|X7NnPgBE1v_ zDKi6;`9_9~AZ*U#tjjPpJLW3{E3%Y46AwjaXD`2O9kk6SBaMvF9sl!yjx~|t|5FVz z{QYtBE^m58j_1Vr`=ct#{7GIpg#H-XG0v&--g~h)F}Z!h+VnG(&ofu0)8ek3yEaF| z>->ffX+ymFAq~;aG%PbEobrh`L#nVm#6)0!B*bzf!|j+Hd)fCEk^N92MpNXVxuAq_ zbsLssl1B(d9o}>Z&FNF}4z~n+7xqCoa}UVVVLX^D)tku@7^sI@m=LSgbRK`2poh+p z46*3Bgn#SQ3X%pU^eVXsCuzD$io-rez?FFck0Gv>_TCgf(*ri5Oa&qf3j?9(ivYSPgBM$IonN?Zt#ga^NEHCJL)nA5X`8ryWn=vA>K}sU>B&4|> zM$OMOAfl{o5NoK@kqT13!FjHCG?(*BC8ke6%oj>bQi<8a5c4SJ;I3l#K`ToE^bt_d zf`#tLjHI99=pEqrhvHa6aqMDn92&v#A=GDa^m1|RP8B!Q$JXI%6p?79jUV97lzhCu zFK>Rp5w`mUOESqp2K^fdnH?6pPL72yxF?9A0ZPQs>L7?pomN64zC~H{RV(wlv$7uJ zVM%A?PEPK)QJDNiz+|6Z!sJQHjaC|1Njl>z@Wh|BiF5ih`&|q7 zk+V#&i{d&Uz*VZaey+IAH@I3NxUMz8(OV>w|L;sK*%8u+uizyy{DIJda|TNpeF7qP znXuF{?}{I_U5l(PrMKY0!h%hkpgtTtIq51~`6ybq2h#uwYqaOjR}W(gC3t_mr6-c- zB5_^JZ1$mrJlix9u<7| zQf?6lVzHm2^y(jKcphPl`>b79O&>L zl3A!KI43e}j8X(Q1_-z*7Q@Cpir@`{;Kne5F7Xub^ffdsn<^Q{-&H2#C=x*z1ea{Y z(8k&p8^Q9Jbo4DxU6+kbcW6RvIzOwiY0JW3*&yhzZakN#yJn*6PY9gSkPP>Xj?qKh z7n)y*i?)Mi#%#(lcOI8O)5DM&H7lEA<}WRVg9W>ExyJQ&bP*9i&G(~oY ziC-3;nd<=ea!fmX^&;HYdyk@rGk%C@;zfQT8}Fy@<9DcL)x>!$$s}*(1*%@_laQ)y zro~Eb^u>_e6uNXo^{(V}%njt{#COe$n}m97wsK!jhjON~9P=(FtIZT_rrgRDjJJW? zo5hN#0e|&t;p*$3`CMJ0TrFcsCRt&)+8w%f4fq!6cEO%$nN|^Bu#?%4=e>o^TR|49 z9!kkQ+x-kB6NY6+JyD~(^g2>)WIg5ibmcB+`07E~Gpoq!Dz(}M4Mju`0ITtA2N}_ zP_v@pp|I!p>+-i_&Wmku&R_wrh!&{?(A>!$$bP)j!BL@ER|e$KF#Ux?bqgu5Ka+%#Yfo z>!GyPTl9uI(&-_q(e;`Zeuz6$Qn8nB=Y0^)AfVfxC7I-CUSQ`hgHp8%U|z}fniY)~ zBr`h`>dOfW{+tmi-yi8yxwcZdm?fEH(ongXPo)l*TT6cmPTrHSfPqJDSa99zuCVk) zsOTqO4p%ZB4aite$#_=D_>>n2>*h`?tga31XzEY6^uRy!lfukS0YSrGqe{p4gIU`% z>D;8vAE${Jt_|>SqWFKS`2S$=Z{*__F=)1z!#gcIZ36Bw>G@2$Oskm53hQ=lT=>yB zFwZkNQb@M932owr=)gYR__{vl6;82I<{<$m@f!LFuo5q&T0*GXN?pzwh#AOxtLRBMnLDw9G(7PJHE2xdzWU3Afp_-w88}oK_zO!i$zsF6U4ITSkbTK?zPXeige!96 z8cC@0%|wAWc#+%r;$!l6rV1H%2V~SK8MBoPp$~H0#3w^za&~toCYN_Apx!YXMPu?t zMQ}@i;8;a)ry^Ly3lPkQ5*$TkKLP^Uha$p{6^O}8Ti9C7u`yzf8yk&C_{MY|40;s3 zgFlySdZMBUk0&M!fa|_%JPc#|4!)6scAK(d{!+Yxjxp@@PWEqNYU|s-qfMfG{+e14 zf^Z5UEP38QSk!6p6K{4`u9avPSgP+fcd+@WcdcvSoX%UXdUYxM!s=L4+6RCo=I?@F zie{F;V1TlUbLuKWL8ysTbWK}f2h4T@HpcH-ZwYwuLE#GzP2ebd9{5J9<-6NfFQOH? z2rCoO$@uP5#5VuP#u^Kqr>64;OESst1xkl^DPTCJWBYh~tjiD}bp#lB1yB1DHi3b; zgxAX?4UQB;Bvo+pr9$2GfVwG4-8D+x(}p_loiKF>=((iaurFnol4us+5aKP?kC=q4+FzHEv5PvrM29wk$1b;Gpy!)NhO9c+*YIWR0x|CugfL zK1>E0N@fSd-KxYrqQw1$7dV=_2yx90YEYCLA3QQi0N)<~zC!^&tbpG)fS11&;<{_t ziZNs-W{$3c@jq;dP>yWF6ZPb-_LV518wM8nS0!|WTI4ZCJ%@)0&GLh8gk0C_Y=K-? z9(CdmwTK9|3Ls|{@?HvgtbzR9A44M0bF~2(^ZA|Ta{GDOEF#v9Ei4!+8`AMU19Up7 zqP91_^$y2Tudg1|o8Y3JLS$ZDoh6q}TH1^0fNEKTWfHF!f7R(P++oJcpSm1_dd3_L zNY>zqHqML0XAw%FKw-EcZ}8XCpLxxDBIomv)k!MeLFCg~5gU^KZhFxebj=*|X=oPKp4`><8~tGnm=3+p zl1%bDUeGn4#MH|58#e+d!x}7t;5&m{2^ry)K|#5n+gnpHEC?`^Du#CyLoXw|(P0c- zdr&8k95SgKIf1|~sT%t*_7}_yk}n-`Z;bMn6U zZeTQs9~m3tH0;X@A+_Q1btE2ek$zrZAV*V3{R#OXPmU4wYZ6Hh3FNS`%3)`f!|}X8 z(uZPR=1TfyF`_3bs&GwAIGXTNyp5*e?!H*y4-4RLrtn89{L>8lFChvS{^c_B?O*T==$>rasn9DSjf)4eoY9LB)fQlx!#VMjB8GhkPFDD zNz@B*=B&p`FypMj@*oy6%I;R?e; zCzRmw@P*Kh9AHi)^D~7g&uiR!q(Ypi5PxeRULJus6A=BVys-w1f_S)YWQD!fmt&{V z?_MCppFoI;>KBUYJVkY@K{X_ds!Ik@3TuhIFVV?N=SdSU8KY!<%MB=GL z!%%wdbg#3^~I|Vd0j&WTkf*TVJ zw2J9mbz5O80Bz|5+8BVk+H)F|_ze=olu0K1g3n-b>Wo?<2gn6m&wbUVLMk*tQhm-* zc3Yk&D!gqcUxk;c3h!b`CixmKa2Vr(TRWTVw9P93quR>x!_#9CIwE!)#SLzd9R4dP z_MW;$c1NydYgy5|Bi%N?tFUX1Y_p6D5k=MUp?fL$tV=ZTJ<9sTg%Jxqpi$Tx9I$u2 zvbTw{cYtBxFqfuIPnmC!?2G5lIZbx59 z_bL}puq2cGD=$#eA22?;9acpGw%}KSeNyvQgM;%Pe$dTo9Sb?;t~B>n3Z?}V z%vK7nR|*yw3Tk``(D7jVwQd6W7CLBHP8F_Z9T+Pb?b1)#81Jj1a{TEOZ51pBF*MC* z4C;Cf#Jj8$4rD8oC9tH>D?Jv|3uH;!S%@~Hip%&&oww{JF|qOh3|=0kiK!Wy$$Zy3 z*$bFE!NZow_`bz}GhSaoz?qsyp8WUpHS|HmIr!T(LlGy&Kn*HnR%JpGbw`slY*Q_1 z>{gQrA{ub5P`z6o5Ot-Xr@Y_m95q1NnmN||2c>KcrEC{NS#O^*T^ope#=HOV80^kv$c4N=h_X@GTTh@UHwufo4$KkCC7tQ3 zjD83b#h9lvc0HS7E8|=?Vr*T<$PzQsnu-c<*a+nOvD<|sRG+SQ!Xe@xjstP;KC8q< zU3LEXi{u}Tx2*FtY(Z42j|d zoE?hjGqv7pkGVb|ehqH<*@C(_K)sQoUPn>yX;7zq)Ib@(1{dj1upv2vB-K5UZ-t1g zRYw(hvFj)$a=~z4K3gb}ud*bQ{FWEU=QgOvxBSZN0vIomBfWv(R}Rsv=WR4cx$G>F z!NLIi)(ZYL1;5OIulB*K`JPPR_31XaC?dgIlE)#DO$&-7L9bT?4*lE3(*F@+XIH;| zm=rgBM&4Jb^!ux(u*;1TE+=t#XBVA${HDA|0irQ=o~2JEAhwUTckTWe>oJ{FTbzCS zL5akhX`FjS=qZ3~Sz10p_Wq^}4JoBT6C>%aSJ(mZz)&rA$w@(c<@_oiX}0YbnGP!m zYFz}}AuRbRKHz7w6am5qK>)@0@kr@Y4uYWlB7L0Et8{*|;z73^qJ(smCmJw{DWh#2 z%aa$Kxfb(fKm{zNPxW1%JRK$YF?81s<4GQfmuUX};`@u8VR13`v_CK)ba;I`zdtmp zJ$=BEOtRnh+8?fZCTveV_={T~>Dgbr@=HNIH$Xj6Q9q}sKjQ^9HPA;5S^b#);?59} z@%~~bEdhcn6v1_h;2DG9p>|7uXgrM_op>I#`+ied`uV~N4(~i&xUfPx5-t$L(DcrQ z72`LOQrL01?<(Y^m9uqpe978$nV%S00ejxE#>Q7mcNv>;9r+w5vvOT{QA~N2dk5VFU2#9=0iM&gR ze2o{5e@|KYtdu=3J56Npn*jWy3jS^d|GEKR?Ss!}&qv=ItKaJtfkXe}vGjk0`T2^E ze`0TO`2sNSX91>w_DB}s=l3y)n^e&RaIy%aUaTywdG#F$bVS5cQz*HrU9PF*#}{n7rv-{)C-IQ#6A7We;q@B4Yv&nMk` zuf5JQujhHz+G`NmFx%P|#3%1UQK4JZ4@FKpNe|&(|6Wt2x>c3z+R0FN8EEr{x~rti zmwnq;ZpVWi4yV(F>xeB;AJ^DGy_TBi_#k~QGtcGbd5n3kFxT;>ywW^RG|!XeS*M?z zL6i+ea{zIw-tu#P{&rHzU01s0Fx`UuNG;^J3}tvE@%Uzr0%fB?PoKZGwf2atNE}~Z z@TMJA`O|6qsrRPoIlSXG7{JSA#t-*|yDC6EK48*}-oz&;=%$7SQnZ(r&MHR_g7xfA zcL31&sMXMj$2i^--HdL@ot+xbrPe^P5Tu(B8S;{i;dp{m2Ol^^8q;>WxV~%%I^@XZ zcVdYZ9m@;a>QBgfeYT!hlC2^T%*<+(OozlRK_UjvHgvuZc3V=~qht&40nxPJ0>PQWd@lSm00~4QVwBTnf^;;p-sYjNEjj!%F3X z6@t+GTsV~Bd$QT)UJWZu&a}!PEX=-eCE~#9PFOjp3@&M;4y;tlSRn`vlL*tG;fuBI zr4MLqO%61_t_nh6^$3BLO;`g^naY!N$E+|@C5^xh2((byZOcF) zUk91pAOu!V!WxneE0s7_2tva&tu)FoWuQR@ioh+~Y?$bZLty2Ez`{za2KibUfR##F zNeDFT29QQsZ$gVHpX!Rz8vWcLPM&Y1`R`^>H}Wvk@aV_ zXy>!yb>$c{x)TYW8PF;RNPbq_;2s&!s>Gw4J##!V^?a7PRT0*gd|()q;pGFgUJOKD z`I(y!u+=gj$k*$LJiS&(&@L?+FA*E*3yN89x{2$xcpS*0hN1>se9>MK0FCyhbS^5G z(s^Fp`QGgfUWI0_^meawfhlEMDkKX~gK>i7NRtHKft(en%YPE?`5-ZkHw;*;)Pz8` zwjI%&h51&Uc_me#5hBQcrbkwNNAdJc`J40?dj(_nw?W?c&qgdOIG-b>1-M-d1VOGDw{v262~{-DX9h4&G%iLwaRiCi^*sr+bBA z0W86MFcTG1+H6eDNg+hllH0pJQGD7<6T7?NSHeQd%ii8g@$$|~9}7N$#OaGMnXK<$ zh3N^?G$u@$h+T)sTJTdJJ_&!s_dCJShy4e^wf$$o(f9ucsguA7gQC3r*-xFCAk+Hk zXPR6!Yx*QNYdscs6javqBb+o9t$rHXJWFSd!0R^LM5ga%?lze<1b3u9GJTM_+j~}j z+>r#F31IH_4z~P`W2NP9x{cfNvovepk|kC&&I?-ps0UM9G zo&@F-k5{y_J+vn)+9pN&h(UV?Wavlxh2do`d8w9JUA*;Xb;*;?>Z-*Hoz-OuIUWd& z$&=3NqDc6aR$s`I&g#+^^Q3Mo6A$~5+o3uz%wI>U_opWjK=}4jy~n5))`?pAa-v7el}gK*O3Qph%ai~u z{{z5@7W~IgJ|!F0Oi3qZj178j+ z6_$_w8$;>8I~5jY>^c?*Rq8TPJvB+z1{ljh`+$6%%`J?oQ`^&k1JRy7g=~#;7L!Ml zD!ma!b&K0TvfHXc+f)6j&iwJ~D?Jk==Jr-Ctnw8Q%jFh`}WX2qG+#Iw2KYeXaMd15r51Mp?>kZriW}YhPJg`Rf6yQ2UmI$#1C^^g2D)6WP_CY2i52~n7jQKRYVt=J znG8(#m!CiTLMS)g1=1f+J}=;pcYn!#6akl?tpkb7mE|Jd29J=HO2~Ce$n%Df_ijri zB-I)B>%(S zsj&WI&iLg~XiVd7F^y@C?)eF4{P;B}3OHk=$N_)s&eyOOh?pjrc3gcInV4r6rjC`c=eyh5UQ68w`M5R+z+_k0r!Y2F1 z#LqcL&f>$IGnQ47z<5*tMwzu{SKJV4Uc;24r#*_+C`B(TMc?xRJD&jw`YFl*MTu&R z-nbJft2jf^oE5mu)uG6ij28A6ddRw?M~9)JXB62N23bJ>+4U6gy4gS5PfMBr#=(Jx zObgjvX`1fQl%q6Vsx&*(u#;L&l{`*yYRI$+`Uwch*X zZp?_p6pK@{aNEY);3V0~G7)nxkEM;3rA?Hjm|^K|L^vNyi3ez9NP!67%vR;2)PV2#i(i@JkLL6ApC3m(nE!&<(s*dKTv7_z+FCKaqnNrGO!q=he(ss2vHeUYd-1q6PeymO z@%+U!ooCn}=#!MfIwp`iU1bo>(d>ZegukT!4!Ppyk3av*(4Z4RdxTHmY!Y z9HJN;zVjtcVo6Oo2k!&RI}23O^6C~h1E`x~ddBDYxAgD-ncN$cfVC{ty_L5YxZxN4 zDxHapexkj%1&lDmM&N^nRD_!2bINWlN|_@KQz`Bm-U1&wSfu#zrmku1p;BDU5-Yl? zk>bC>o=;)PV_nR$mb@FQfz-GxbU6AoWH@}HPl%IjoC6sZ9PHuR_XAjB6i1(}=$phN zrPrV|Rj@-xLa+mvdxbaYKznxPZ_4yOY&jJ$m>1*1>f!(D3*s7q;Y_?)5&6fqq^ z5ohmGF801?y2@~U%CZvIW`sYn7ynGC3>#E1*KMZGVG_I=Cnf$W=%k)JNJKGyfUETb zRO=_P1p8(30#WpU?0s5KqB0+u(1GG9^(qI;`()-5T4pmh_PsX8Zz(X>m4iMnZ+2wr=zXm2sjlC;&eos z5Bvv#$u0eaiQ8zA3-Ly_5b{3fsT^~p6Rm(?FDoE=qkq?n?XXTIWBb_CLCN0YnPNHq_EWD?qaWPH6QWA{u6f3&g&;%B^dlNCg9o$PQ@Xcx}rO= z8=XDZzelRK<913|ImrF^xLbN@kD~As74ZwCQ;vF}Zs*KdgA%WS`0}XNNC^3*{e|F>Q%lL+hxcUl9tmu!tz(5`c z(>?=96w|MOl=(ys(zs_FCN6SYSbuTK=)D}oN4XChT#KK9n~4xL&Y;8{H^!S7k$u%C zyVOrcEm99Xc1va_zCmNdQ)zb1c#XXH5G~;9S5~F(5Hc?&oE_kC_Lg#XlyWxRaQ6O{ zDV*U55U@psEFpGIUx@RX>$LGjd%}!<{j0Wd*kctfsj?Bzb&G59i_iw2W>5923Q0)`#Sf~G38NjDhXPtd z0hEsQ{ii^luDoctIlk@B;Swp|8yRy71(2kWu2!t23$y=8{49L5bMuuiYEsNft^xBwN>!Cca#2!!)wGu6yM(ab>p z8b2O*4!1?aq7Xw|{mM$2O%5-K_`fzeuBk^6_J_r5)EPs8RJ(xkZ=c z5Edbnm}4Wc=$B`vN*UzrJ2f(fH%el?cgTk0p9`Rg!eTk2vv9AO1Nn5KKAk_aFP}zD zm&>1L85h0}kQ82G4yfi0&J@}5FWZ^}ssPAZ++zdy>fGV=k{@vTim$(k=$$RKknZBx%!pecYF>zYHuV(W=3Qa zOE%Y%xzN{7KeME|*AlZHpeJsqMyLdi)SKV$$JKS;C4nvpbV;B~0$md5l0cUPx+Ksg zfi4MjNuWytT@vV$K$ir%B+w;+E(vr=pi2T>66lgZmjt>b&?SK`33N%IO9EXI=#s#H zhXfkU2CW4=yvv>6P^|MC_RPPS^YqLdhppl|$DzGN<~W>=i_CGrM!8dUp2I0EG7qJ) zMW&e?BimFZk8HuV7LnwksE$i%OHW=#w&d`#XGGTEZn#`>>!pWM8@`Q{l%(;1(xl(E0 zT#99Nm>d-6w3c}MbsKZJ)<#Edj;T>7E#xerLY*bF7EH5JC0}5A3*X{y2=8KY1XF&) zW2O$DabjAryyLWK{)B2RuJ0IL(=GY3^CMJ}J?&!tO1pA~2+1p48+~@OemsJNQ;#?s zdsln-nX)1R2OeT~XnUwWaZX=JL?+D)i_F0CKlyFF{5E+o2pqO(Wsg2G6{@Ugh)(Jo zVo(lA3>Q7hEHcd9Az%3YkhpHQhFfgjhfPaF8vcbRVz2qnU?vjxblKS4?KLY`@9g5_ zLCFJ5>51<9lil~@lG`N*oA;yK_XoP~|AbAS)yP7pd-?X~@s?8QDSDG-awpG$#uh@D zN^`u<`8>$X`MiEpXjl2-4%@hcPRX&A7x5;;oeq&>n%|EdGR<#GGZ}8#>1HzAeL5p+ zG-l?|NVtk*1n(iIO4WX;+#4yQ3=;tDcFfSDE#Mci$c!VEuDuOi-9Z=TYz<)}1uaX7 z8FXPP|Jh2*b4p8+7fd-Ub!cf(S{8|s06LUSuByzTR7%bPY2+MW@0CJMU`0Xo0GS_X zd1U-W$*5N{?lWXOeOl`Lz>zfcm=M78#IY}ij~L7})uXQ_lbk9eovK6&C~;1GbghkC&OKg%0#EP$a52ehFq;;YJRz$l(Ot0x)hC z#}yco3s@tj6Y;Q@1L}~=9J4v=V^B~Ti~1M2C#&ynB;hM<%u3!159*SX;-xsIeQa;%+gCG7e(BW);S4&chMUP9UegKeHp3s z@0XQEs+oK#0xiI~sspeHEW>WM5Gi)M1&P#wU!eJqwZ)rqQRt^J|FM^LU&N+0fOZCN zIw1KV%@1d*q)9c^|3iw||Nfz`uA-#{!9><#XKU|gsr3uYEIi7W0n?a6j*)K;Ws048 z@$wu|5DH+ft~tO9aUP%ia0z*<@0!V%V(tI$J(yMkyD3-_>ro8T5I3T;s`WNjL4$D| zRzO7I>!<2h$%wNnI8D7=isKWoHy}>}v&wqsnA3&g_GiPnRRJ(G zMX=R{)->~f6W^H_8N-5u{Dzkekug6Kc(FpFDC`8qg+$@hiEArkl0~$IAh>)-ZpS3Z z>80y&_#)XTZ5q`h-n5MO751W&B$JZg#EjGd63=++fvh0RiWei;xls1Bmt@WovNjXBe_bCvWsOT?lXPqeeD+Iw}DsgQ1$TbLs zGSfY!SmAjss~n^ig31)C{Oyr6$dA}GefQEHNfOG(v)sp2ruN8{Ds0`%?PR47t|buq zT3ko4oNFX%ag~EUaT=yR3D3}f1yoQLnMtH&SkE$FtcD8|>N`f(?1oaaN{H36W^To5 zOtDhyQ7%qBvyw{|Hk1HuB=Idei6AD%2U*4u6A{MDIuDq0EZ>?henZ!ZA){2w)JKVd z&Ks`%JQ00K#B0r^w^VLNpJR^PsoW&Y)BH`)CfwUKzwV2KrdfEOgYj548Wx#(EQ(6&+xw0D4q&P?AiXwEke=ir?NFqX73sAG>Bp5W z(pSMgF?5@m0p=9Ta_67t1Nmdi{xL%jY&ugmRZbh z%b(4?9YSb}tb?}EsRnvR9}(>a6pi-As2_+nSA-QE$qNkhF?27~KwaLhQ+iw;{JbTP zfJ}ZgeSF;V%B}9SMZjeyrB{CME z3*|_aZWB;TddrH+WNA+cykp81Z6W?T=8G1*EtjZ%Il#!1ibrco@^ z&It55Bg+0U9{Xo2`zI*-b9sTV4?fNjwsd`y62!|r2hT%si%sm2VFW-yKRx9{zqF;w z^{Wb?I&t^lg#&NNUQJkCWOv7H{fHu1STA~k5k=ke=djIcht(|d8bY7EXk~#DCBgBS zA{6HKUi48;AOFUxrWos~&|3heoJICV^(*&nYD4<9UH9H#a7+7iM)VsTrdI|dFP>#t4gwm~ME9W(MN9+ zfZM*ER0Z-ZSuB@35;P{cmI{J$xql<8H=F0wpu~G% z+YI~=SsD9x^=;T29XE+j;dRVU=yH0%wt_3OLhLIB`;tB&e+q}1WB&;Tg-EIE0t?Y5 zDkC%HSZADuq?smaR$}W={GWV@@4L_3MT^`JpPOZ`hJ6E!6Za%AI=}imtEa3#t2QeK zZ^f@bQ6Yqe)!wL9sLayRD&eOK^Q{X|#SqI8O&RHMNuwM`*wu=gV)4}!L8jCkX&>U& z9O|oyz43gBHDT^!7rHfzeKq$@tGTcJBWTxDgX^S+46em9#!t7y!%*j8GdvVK4|#ad z^|k1e8$n!)AMw|VR&E4q9lGeF+&+uwK^A?qL7zo^P#?^3!DPuI8>91WgLNzz5lctd z++(k_3RX*IuENoYlFk4W!N!2DC~-Q5!~l>(1uGlG3{1xB|3~SXr7OqXo*8}X$ zn77l~UJy)=Ecd6r{IlO(1DI6s2%DZ{o)$Lp~BXfbSnHv7-OO3zD{ZM>$CwhM~R_(i#M?p$P*tYoiaW z1@+9{?;xEn=9^Ir%m=6D=C8A|m3NPanH_XsUZ9v?H<&l`V?GaZ#<~Jomn15%JN9Ct^53qvvTPEr+@6%r{ zH@{qSL@G;vhT1s>Q9;&BMokK64S5wbmvp85{HrJ}xJA!yO2P#m2~(AX^OS^J4G9+n zNO&8yRI2mQ)u&Wxi(2yWwsP=rw`7eze}HF7NOs30pET!k&|b=XTE?ji@i&ZxDNkt7 znx>N1m*h|UZ-xEtNMz@zB(OJHH;mbE?=eAz-Hzoaj%dD)r9w~ty(Y&^9lBG>&j0Qe zu{S%MtqVJ2&yl9eT`tZ)07Z3+*~s03pqZS%dAC_3rVZ5LjzXGEDJDrfPIJVIzP)KN2aM!${ z3OCz>yPLx8u5gDMxHSQ|m4HWMYbSi1b1&7fHycg-%rU%VJw3ldYIyck=f z-B9e~ivCbxq#7IQq*l>mWqa3b9(+M~!nfH6ByCLkzb5#15%Py65E!o#_c<;ewksEH zv@&j)4Jk{wuOt4GO|HgpFDyGHOnnb6U@$Z_#>2V_Xr9r`|tDrZXnO z{W%UOw+HRcb_hS#jsYN_l1SMMiz79qskzx6 zAPH4}{4^L&eqjl|H-4t!WG2L>;RN5C@HvqHn_~Pn6X^B2{)PlS_(LxU0waz}P&o-I zIHXg8ZvR0Ddch-zdPIDCLka3(2>J?>>s*3*3PIFGkeu}SN9)>Z7tv%PFgl}@y7`}Y zOoovbAtrVE+e1crW2ITu;oIN7^1ZONEveT$?`&mj7)z|^B*WImE?X3F;!ae898ZDZ z7*#OGi@6i-u&rquezpcC9kaxk}GS zL(fGR2UanYo}`@7LGdt1HR9UT%lUTbw6d2OqrPB%gl3k$6Rp?Y9m}oMv?z7|y(%`O zI1rHi$=|76SE(8GVmrPXg7VvSpsR4)cOvi4y>#X{z=9cluj$O-Pt>mOJka4!y9%!o zBYX^|CZQo8u=`75S!GSJ0mkOb3tBPRF=D@i@D91wjG>?XXf+ zO#R}@V5XoBM*N)&il!WVy*~Q`Zwi_6OO9`U;LTx@EYT6mD(LctZ#;`N*6hfS2EEg2 zwe%AEiQUw2yCrcH4!pUz8xf(E_c%BXV0vg688a;*G2HoWPfa8O`$_KmjYzcCljtSX zpp|`*N|f*^(MCwiCs8*Ky9MX})k4{U z9%Z*EWn+}G*@m)z0lDk`*4rO%0}6cpxR3wXM7YLQ)j(D~dsi;&6i^9zd}k;bSOsga!L*(@GB?!SflM=CuV@l%TG+@Td#zacI90i%$5A2iLL<9YonuL&du1DS^G(M2m zpyWMj$a`jlL*8%czx-sU#LI=C&n~C*d_E&U(5JQ#G}E2bLNPFD+hoFw9f79`M-utFrZ!vh|f=Yb-RaW&pb^P8>;3h<@M~8G_;Q z5U|^SX&<63C*Xyz_(CLly@&cLMSZuT{-;6xE|NZ<1t#7i-{|ym(Z@r)N3#|WXmPlJ zQPy6tjvSesR)x;H6hD$0v_=np9}r>df;wRaIFgN zO9O860J!xCmb-ingS-G~KzLt^8NHWkIW4Vno&BxI=P9AG6_56|Y{EXX4=Cv?o~mu- zJ@c;X_Rm))m$Jl){>ls7{+<}1@hhnSwbmj^4$gc-+oSwDU zHex(A=Vt1U&4qJihwW(EK`ntuH0Z29_5*q^{D~a3q4saaB&VK$@9X_g-2r z>a^{G{k88u@mi=G_b333dpCZnExW|-Jy=DNowy2b)4FT}(~+&&7Mxjnlq;P8q1sV6 z0VswWsh37(bW0v8H`Uv>X7labLbXDY|4#@p&`Yf;x?F{|)`Yi??5Q2<-ilsG=VX*>rk(cN2Trl_gg6Bwpa+j)F<3DkKCBfOw$$ zg)1|Jz?Xdu%zj}jZA1a@dihF0UErbatEhKY)F&9!E0E0jOf_)>+5z1i6J4iWaKuiB z2A>Dh%;2k?$XH*J6Fjges+jwFnENZ{p^Eu9gZcPW%*nxoDLFU%B>F)>>GWu27}G2` za0U%GV5;}`ua)_V<6^c;xF4X&^u}A%37$`o<#%yx(bj+sQQB5_^Y1DvRtyowTMvzwY#OWP=#2 zoM<#wrC%MB$jFw~Es6D$CMAX4p#SF2ORT&d(jjuVD0Dz`D$m!p@_N#U&@QkTc}H!g zTd>569>xna@;CtaG~&jx1CgNHyFuHkigK@u=Cm@#uL20eH=cRRhxk!nHd>$A2g1ej zcZIMIJX6_E30tM6BJ_cz$Lh*8{J zfja!Qy>CRnJsgK_3tRHJ92Y3r{U3lm*{&R*g(u1<21*5=OWXrFuh2xbM#j=*yr7Wv zs$A&vTq|Mr<) zVplMl*e;#hp33dKB@VY|8hWNO)h|J+f0z)2MzPUT6dRC$%MNstiOnU5P z8)+LdBlX8Xbc~~crqjYxxUIZvJ(3%hGkr_P`TqBp{{xxH82C4lf$El4tM|1*z z3&2nFe{YDHMDa6|sXVA=vJFeD=onsL^La1b&?SK`33N%||56Ds z3CrPx>q7Q_i`Pc~_7W1bdT)cR0AFeKFX+6!1HJ$qy~0a$g?@Ekt_82&kjv4l`zJS# zTiMY!`bLudaZ|vXKDg<_n{L?JB6ZES*T4M@<1I*BC$E)LWV<0P2cMJe8Brv7Sb`kr zk_{#|*k9=%ZhE>4a!zz$Z)b@WUCs;A)2RbflE=h7QVa7xFw+pDF1oj&{i${bYW4^7 zmG$j~JPJB6XaQJ1Y6f4kh4;z>aZC7k#Ef>KbF4?_9!lp#rSmF7=Zl-C&>0+pec(Oh zy2GXGnBg0iCvTarr|PU*RSRs|;6;=Aq|9Jr&us3Je7GP(tqa2#G5pPbwj+cmY$RT|#v43-n*K zAKH{-XZ2It3xK|x=Vn`ZPk5lYD+_F|T|xhBK!3Zb!=r)@^q|kjV2OP)n9&||Ens-V zxxV=TZcCP>0WobK@__>yh^?KzVZ3G5sPESf$M3mgUTkKdsr>r|A@>}Q++&p7^OW3s z47vNKlAGXE!Irf(=U**QXPrW;FXvbz^nsOtt()MzJ+yb|XvIZ}^8^p)@rrYj;=J16 zd=2dT`gY0FlaqpI1`y4Ys`KCnjx7~Ug@?w>xISLdTyD@z4xllbsP}E7<;}lvK{BoE<%($ogXvlP+;0zkl07i2A80tY zU>L{ViE%+X{@$EJe+ZOMQU0mR*vb!jDbJeTyAGEF`bHu%1MT|t=R_QrdPK?$PAhw^ z61j*MxQxvLL~bwpxy4Uw8-TwN@`tA4Y&wVAnD4;uOpD|K{@XRe^e+@NLhloW`LrN~ zc8j*gnv;E{lkHngDH<>4!UVrK6q>iYd7lv!*lFg)rl~I`+ehk)U}L;uk%;f!*IaAj zXcTn(5KFA+$Gkv%@1n8zbsW&{Hg7|_htu<>&DrewL17*W_P z6gn}kwHS}~Hog3fxhk|V-`OU-Zt3xQm-0GTc^zwb{Th6j#yrRgET%p4QE2it?{8Dc zaj3RW?jy~&W=E=3hx+-BA<;g>yfe}88W11yCHTi@h2Ga*b#?QA(z~1`R&)bH@4ha* z+R`VwR2qCdh<>k}>4BDWje=k1fqz)Rzop=N8t^MI+}?@m+m}Q2V>S$ph@~=|3%{4L z9)bIFN<<0^d|67>bskkuDpk!&)$6>#AP-5UDzO-~2sOrb5Z8soxT}coy(s81ZhA)K zdX0zTSw(T9qIlJy_ySD%8HZfC+=Num5-%^C36}@K@2lYFd*Gi}@HZ)V(I+@)41f=f zZx{~$ec$KL1G2#P`D7&J`+S+@OxZM(?kvu*elSOEF*|V?B`Rfme21N$%#if<>2R+E z+;Ctg8DQO#r3xwetq1ArSJEgv7?9XV8iCrb+dwJFG!*^zQ=-NefRXffRI4VS+0U@V ziV{98r4YHMPmS(S^qFtKaIf#%na}d_3#X?Q<22Mt-41^qx;uQVNZUtXgpxLiEr?BE zRO?98g;za?C06uy)3jzIIrov4*blX6W019c3CykDik_@r^=7>EukOdoKuI5p2UVYz zc#$eXUROz@uUH!$|0G0$9cn9sAH(kD3oCDgN6>3D1%{ySAr3!5oZ6e9m(&f$ zD;-vVH$@C$WXPZos_vZ#A`9G~9fT14r6BYV!g)VY{ZI`;xQ+g}uD|J-}8Tgkz zO1T>KKcH-i1Iy|#_ZQ-b+1uuZhNp2#<7&^(ouM?YQ9rkfkw7zk?z5@nIdr3y>Q894 z0c;P#2ZRK}M2kq|OAp&wimgMjZEvvc7Qp73L|6_NkcXSU#YmIP@R&>yl-q~FkvWYr z)93kvl){A`h0~S7XOzOPd4bO6BKUh2k%*#_1Qz);${ zd+}*db+;ruBDN2DPZ~ez6xR$oCwq3RWWT$%BTSYzJ}$DH>QQ>BQaW8Jz28v!IdVq7 z=FSk!m0>A3#8VM(Dp0y}>>lCC}KVqP-S+6k=et@<$T)ZdQRGsJ3gfuAj#0& zmW{04E?*;x(&>Xt5sglR>(De(3(*&ZcMlgmDs=wCi;A}^owi2BO%0vBT{=@dhcjpN z;iU+UGkZG0F}%ALzFsgxI*+hUjt%3!@v9bLm*4$SWg#BCgc*`~@0X5sw!Bv!5uOk8 zcz#HEo~S%u#S36wc;fS*aVi9=IN+K>_P_X>=;hqSZW`1_#W9^F zR`h;epqH6oRmJgJ<|pQZAQL;5A-7rf90)3)#R}7*1l|6y5Ojb?5WO$*ildaE21C$S za0o6zoz728>)NC{Bg&VH^G|pI6IozSsu;0%>DjkI68%6tGvv5k_?_S0|14|-$7|nz zNZ7d3V`CR(<345MeZ$7KE*lv1r}DjCYqFmdkT&!VgWF6z@)BfO+dZxIhvmZ)vM*Yk zVi^Z5!jH$$dVPurw`5OwBQK#e%d<@&{VSZL< z5^?)N5nP^!b{j?8Ptledv|oXBKiW(IDLfu=i`!zfKHW&ZST+hTZpxm37K2=`IN#bD zNICpejA5q&nC{Vd)6^piFU#|1M*=TP@Unh-Ru3Em0Ar}=7fkJ!Jt#cw`jRWk_mro7 zSz<-2c!4N4P30-^F$nY%!S;jatlanne5#6{_7W(IJ}HGb*@C)+gMNt(4mlCJ9I%`U zdvLg%M<`9%9!+K)OFyNl)X+4$TdJIo(D~PgBo<@i*VKGF@qna^fM-4%T@?9W@skBQJRn1QH z{qj~d793j!!ISNM6#1|so@R*^ z{TDA_?`x2*>?N^Dvwm1o&&j7|YGn!jqjJp1q(0IYNmlM9Fb)s)yQ@@r)p2Y65{_kv z157wDr(BVgHRU+yB?C7fypV&N>6SV6)0*x(NlFYd3F%4Qe6NV1z!O716~neFhH*v= zHgeKVv^*DH-yV-VsFNf`^c~Dk>Q=Q;b{4*awHD&eH>GqL9>LBET<GxmA%=8t|RC4Be;boFB(LU!J2k*;9zCs)DB3tzE4uM5a zR4(!+b%H+%<`XB2s|XYHhY7_N*e7U{yTuL%0I+F}I~hAAy6s&^oy;@oCmYgI87Dv3K zt*W>gXYrtFE-M;>Dib+eSk}~@iHLhXV}qL`=4_u})R<|6^wGOS!aI9;;$AA@5t=8S zVe-T^|8^uSeL;7G^nGS>=l$$7@iy?DI%Jug z)3;9t9H3$!p(41;!jpH1h;H{1-IG;Bw`!vMhDmgLK)Idx_z`U|fN5}2X^}j1JkgAw ztw%g>r;L>KwDm9|wa*YQ>5dr4vk(SQKQyNQ<919+uTe%fRYngnjBXA~GBF(; z-e63pCcFs0ki>ZrzB%==CG~NE_XuxUoG3CzCW8t?Xl^?8L`AYLEu@*hfjQA)*qDjl zKFqj^fU$pbn=p9AbFP=1sSM6%i4}c`7kJ6x(2`G+W_2=Gu)w(D_8IVj>6>xPQ{Y#5 zz%Nwb*DLU)2Kf6(J$=BF`pV6yAhZrQYN#e@T7=_voV6cFYcXF$<=}1})Qg zp)A=5XiVHHD;j1$r7bs@C7*DsXe9QmtC53MX#23lik`^}G_n9Z`Gq!~BvR#(;5zU; zg?OL`akN4#RfshP;@AMh-iZO2dnJ7)*JmF?alQbjpyH&=Jf9t!kJYcL(gD;0)b&ZV z7LU+mBQBDRRgZESj+2uNUZl~I_8at$Ge4C?jIVsFeIRx=0t3MNlwT3I+oiMCcdI3Mlv|4HN&mlr6 zjO0elvDWKD{dKlR{J?<64odxL9`z3>^;4Ak>kRehKyyColLtZrMuu$2U;=pp@6eNE zreNh&2@`EW`5%i!A+dLwdHnM!n8%&S8`Pr**58DGulF_pi?#YDB+_#=Q<;zwuaW9L zuE2sbKX<%YlsCs?|4n883T6L!!+tfwo{#;+UZOl>H2m&hPNbvQO! z67IyXByV2HAE=eBKgRdasPUT^!W+)R4w%h%H;UXI@jS!3Dz_)pGbD{?7y;6Ja!dAr zna5n8F#Aa;{h_ZNpFn%^e1dN{IXIqg;(7h5N-DMyKZ{iNhL;}$8Y0OY-m#3MNMk7a zm^|U8L~g)UYIg!}3j5*JsMhW9KQ&N`D|00bg>ZdvUwB;nsvNQ?Py6Ef#SJ2h98VUX zt1LEFSsY|!QH(&UvVaiEF#zO!ya=~%@|R9MsH3x{K7|WPO_Yll6a~uhU4Lubg)nl! zSDi32NEx~78P}72t&BX)5{yIe0#9}dG?sx8qqP4#KU;TeWX!n1cpKZeVxdVOwjD|MzI^pNTr(OMIb%&O%?5|j2MF$yvmO#n>+x!%T z^RxWRPWXA?TH)s}9zVU6A4~aph8Nh|Pf+szHa~^o{A72=&j<5`pG`b|`YAtym7lSO zpY7JkkJo?oXPO!Pf#U+wy&6YzMz!t`&P)js8rfXI#QZs z)F8q0T9{rupWRD=a}^C^lJ-84qUSQ`*!X z0{5Y}749(xE*-dikbzr5Oj1%~;7SgKY)XqIp$dol<~s^kb4krX?61cuy)go4CZ;V6 z+?Y!*i#vgP0X!n*a5t*~$^t^U#=wocB`>f9azIZ~vOjP9D1#ifUP-vqu^XR`mfQOq znB{KCSq5gg3v*%Tv_AG`XkvTBRbnj_fA6fnM=`RAMAAEZl~81+&eC7s3hV3v77ZG` zCr%@zO8Driq!|xo0hRpgpP_PFb%m(pvsPCnXRDEY!V)Xm-x%2*=(PD&f*xyV$M1Xm zEE6xApsgojY2vPX2;x2io!ZcjlgY=t{HGfAnr+E6nKKz!6BqcYN0ZMIDAnRr(|2D`nP zYZgKipM31}W@JzpWIl-cDaH3Rsm7_oroxPjtg zyS}9-&jIwUv8m6rpwzR+^>wUJvCsJOz5rjD8p;j-_~VVf7{a$tLDUX$mOou4!k+92 zyFrCLRfT;sFEHj9Ou=tHnHv49PI%cC4lJb6FMR-}HVwfvL!%FsZ`~@1q!|Y)A>x&^ zIanD|67SO{LWh6Uz{-0I(SX8VhT0g8Xy=d66x(pMw|rfM&sRFU#=A0$(`hXkmzXE} zDaBDzZ6E%s3OGB#>1cE?Hfp;LW~Ka;j#6S{F&^zVmODSG=TBgQGRz^(2WgW;)x43N z5P0T?9at2Qw?ijYj$IbQ!@8)02}JC#pe|ZWcH%QUg1BmIBgMUT;7WPn-adMFPW9f& zvonx?=OdZr+Ya)RRT+L*)5#C3Va&-tW%yxPCqEnuj8rdGW6w6?&-7*Q-6m-pxqwHf zfq{s-wQX$15-WNrFK8P@0P1TSt`FVjei-)6?>jzpA#gfA)VLWU9{WmiT=T-9)60>J!TS zatoDLhVTzn&jlOch8N#_SSmx5>V7hU05$l7x}|9NPJGI$t_uAq_Vgvf=`#)l8Oc z3D?IaN@cA_=3RwNc#n znyLSb^bWl5&k~xA;n?pu=-xuD0AbFcwa#KzsAC)sXT)l~kkubB)wywM8mTKy^%blR2}SJo7gXfGAoj2otVSVC zO~Mu(f^xK(!_k`|^-zu4+u?Zyr9%x3I{!!P7jOyB=aE2M#2)*Bk;E(kYJLIcS()y} zjDxQoq~gIC}b$vJI5KKY9H1?LkP{BbC3YhQGtnn3O+p%ULj6x-4(o4N?Wu z-^H{dS*K{Z-5yj;_uFFnFY6Fb{_K-dI3T06Gy6Elw75=@%~&Qm6cV{Wq?tG$&a{Qj zdD)mekD^E=vRx{hbT;;!smDeZ0-2^k$jfk5$h$d^A48ERZPL0DCHBvb&%GK?ArM!y z*t80DY4f2XnD&&A$}%S#l{@ewb!ew)Bn&TiGpCLG?aln2w3oD0Re zuf5N;?t!ZPn^|H-m+=DYJ_60D6YD1fkNr(q0KGarlk;;}l5hFK&$~DusE@h0dK!CNd*CaVFT+p8sBOv!!+ktc^E_ z+C!Wk$0zq@MxG1g>^+FBXog}w^`fxRAU1mkeWV!*IuJiIB!gzDfM59s2&}xOPVn79 zA+H->F)-T=8ZvUnZUs{lv^9$AwIV?3|pPPcbTXOt5 zF`v*0=8=oQHbMe@f?aHsn5k2J(RA^^TLPZxRPU!AcrZ(>=vZFhfnP(~>GQyDr}}|r zxZXoB)}pSr893dZi1w;~cYe_ZSZ;<%m+M754Tsyn`8hhnd`X^7B7zGp9lP}c;c;`A zisA7_<#8*PSkWVS0gp+rp*$uJp~WpA0p6U*xv7r}Qy=H2J~rdgTX~jv36H6%fYgVU z2-O~hV9CzoF&>N5Ac5HLflIy%JJC~UKtLj;8g`eM+9vMqs*l0AJNJB%$P`cOcdJCs zRIN7~t-phCKCLkS zWni8XfcXf3m4V&@xcoBMWRAH0c|{Rkkz}mKdwbbS%Go~b*G=ZAP~3f&18+d{*_yu= zF&TStYs?BCsyKa`NMVvk@e4}vX-e@8hT=z&+WDjqw2@zLf{kpC#FRDyMnsppFSRde zLs8vgT0yGA$Yd|eM4OxmI|O$=ds)dBP1(7>xc1V961F6K`PKZDh(%IYsK#p~qEKJ1 zgJHVs{>B!NCaeCs)pIjx-+K=Hi%99_J6&6OQ>Ao2ORVSzyuem2hXnjm;wfZUJRJDe z(s8apYxSVLtQ=?Xz;u>l>ty`WNF0(Z7aPpJ{@<>^OHlG+LlI{~z+AMeZqj2<8F%tNI(Z}T8u7@Exk z3)=xsWmXNliFX%8RR~wXs ztP%0or=(iY`P@=1W_4Y&Yot@uteRP3MPKIyM*1c45TB7Ij$|GUk48k1>g~z9;H<}S z&YK&3%gGQ*iRg@hniWZ;t6%4b&?)uI_sh)tTJ!vWtB$K44;A^&=ZMHJzS$M|bQQV9 z5-a))FA(`(ke~TQ{vmymBl7$Pu5tH^J-=ZK`Y9NJ4f)aTR#J|zyA`}5Ae7_1JwiiW z{_HwPxArM*m^HarcKyM%a1lKp?pT{r+RoB%9-`wgDh3ACWF)@hA|6Ts6jI=z7z!8~ zS76&KMTzsIfxAT1n*P}MC+K+G;_k5g)Md`y&K6lcd6O%vi&R#NSb}qkc!8`AMI-Rb zipL?R!oKTKe1HQBVtk;OcImXZnSWD)hk4e?FM4>*TKpB=Q);tIYVZuEPe+_31fS{= ze3=qlr3Bw%2)+*4myh6JXxxob?~90J+;s_62zNadZUgQ*hR1YwopHW$45Rb1WXs*& zqS@sBf%(-}RtfcUZgIu^gHnG5ORVVgyg=OVfige!I0%&kZiqOQOfleCxl2$_U#~5z zI(*-#trX+=9>$*)W36I*$Y4Cx#Rw$Dj<^Cd3BvP(`c<(|@)je_aQg@u$h+`N5y;*i zdEK*N5mxpnCGTuQ-pd%gQGp0~r#k}YcVe?IP#ja{w^v^sG@5~mWe*QaPsJj5t?20n z%On>|$|f}dDLC1+|2$qZbc?M99m<#pLQ66Gs_=e5<5b~1%cH44Y3j)mD_UY`dL8Y+ zZwjYV))@Z8^mo+ST58c4@*YrU7_hjl6isgrO@BpGplC$Su((qLXxuF*{QFpC)PGzo z6Us)T=9~aL;-hW!dkJo^TzeqAqGt=ohV~WDJwqh&ninbuDXGgfRBm7-@+|C1C6bf{ zVHKvMD3&qBk-uXZl+8w(dIrrRTM<6vA>2k0E>?s;@B-N!<|15&S%k}H9pm|QgLLn7 zgU$5TaGvw!YI>-3@SdLRP7IaZ@Y6+hM|rI5s;r!-tXyGOsYg0$WQT65nS7)DY>F@O zAPKR&!F^MMP0Ud9Vz^&!JxvH0?h&x35)fAc&NBpba|uvcjw1UDi51i^o1%Y1O37a1 z`6f{_GqW~MypEY!0jjxBwjTR~#l8lfkPiq@M%n}z2#R)*X@1lRLn%D- z>EsbZQ@|VaQ<}c_Qlk@8g%!jt3ElD+q57pf1 zvAZgqpoX%ih=z8)7R_8|wS1wmaRf`O=o!4Q{Uf#aYiO<@_hvOo&txSF)dQOE4=`ww zM{-lRT5)fvr~b=ip(e+pCaKhHtkfK2sA+@TebfYXv*HTqW*FQpbyK&PqIWZyF#U`j z7q44Y!Su&6J&l<0l9e)iB2;QBGD@IAYN!P9w^aD7DA#G zay1>0zuprnzX2zU{2sc&mEU}o-{UO7dRAT_zY~!G`{l>I4%jQI#WhmBA>A);(bCx6 z!CBCF*C_9>#h2;FbyT7B9)2zH9b=$y@$Xj zw<19&^P_xvV{H5)E9aH!pdGMcC_#Z0#0t5e&0Q?gSd;;xpPGB%NSt)|})C0Oi zfqtw&`x&6aT%a6dX@N5A1y`?KJF2zzr`I-OM#~~e=;f*o%3j_aD*ba6=@Jj=QbqcL zBK?sUc<5)5+xaDRmBAra0u9qZ?3JcF7>J@9DUK&S9RE-pt%~DIgX7o$j$I9o4#UR^ z;+P(e%uSXhJeLXhxD;Y6zAqEf9RM<=HQWcXNj; z&MQ5f?<&r}D$eH&&iYiG$??z;Tl`)PMQlpJ9^xm*3oG+HupcVeD-`VW1}sP9e5?d> zvQj#>X5=-RlhHl7IhoI$Wf)&F6Z|vzER@e@!@xiKGWse0<2`*8|M9+-H~6<+ehR*< z!l_*D+{B%mnA|{eD{w=HQ^Lr<%sdnm!w{#6ZAvjPpx<=N)<*3tM^PKD_QPlp!CaMc z3CmZRt}f({!P5d<`H%O_a;NwIt@40i3Q49jMiJ;3+7`D3BulL5R9+A_FTO9;NpH#Y zf?ms{7b|#M<6Gwz=skyy_f}=x%Sbv#1exE!oxeGR(I{8-#c_+n6BZ`h+t=SMeANtO z#xNIkd_xzFSBLU^NQLlx+vP6Ln<>wCv&4%2lNa!OB~oX9VCtQil(y9Lz)KLFx}nz? z7|qG#f4N_QtTxL9scvS?O{beU?4qNIboat8SgIvUU{?mjtL%r+tPwQKBF=+TKS-T5 zP8i$4V{8XytXLU4(J=M|==C!;CCTFo@L9hbClJXBMpD$h-E7=rh{K*f-ObBsIB?6< z)b&4lh>!E}J24!BQjYM=)o&I~cV%iL zewhTa(c{L7OwPT`RrbCrlj$tMzUI6@*>}Q@R3;EW*fLP@7c&0o?=Ru|4cer*W{9vd zlD7Zh(Sm-Qhd!?8Cn@@?4f^d|^twUAn`99XE6@V;Bq=k{S5C&E5PlelJQ!-19fn-m&6dHjW&RrW3 zaaI6tnK;m>ezH3SjjPDiuy=3!?dxmT%Sq_g@Bt@*^mhTph}P7MtNl9c1Vf#{k<7iv zh>AY7Tnjl<#q}*qtmrmITn%@nh%2!OFw5YBobgv@2)=+poe23+?M-!0!Q6PsQG#=Y zhw~i8`MKiU#NaGQ#hJtjbIvGjy0?RC;7G0+@gJOc&y4sBEvf*LCNgpL;WS8VHX7t! z=-Q?^GLu1t$4j0M1_Ov|Bd^x`>Qg8e3_SBYn=_JJZXbadLiq{9ITp}{D|=KO zay9d^X6kTs&8RqP%;y`l8;mE=m*cK5)jss6VjrsoN{;Jo=oPbO!iTk zoM~jT`t}r=Bx(VcCc<#cfVfQ1xMTT~GzqA|npZOdkG>npt{KeQw$#@7JM=Kq?B~zp z`t@{^67oHh62{U@>e2?7)aSRVNrmJC+!_W#8sPV*b*l=YQw@>yE^dgNgS|y%V%GO4 zW{DM@ zX&U0ix1|btcd4c01+)$VXPBPMtR!xqY?^%l+p@z2+g={FZaryT+50NCDuZp)0Jayh zS!+&F4`AV0AjND|=0o4}*Ga3&Z>R-(srkT(if#uF-3E%TSkawm(A@(aX&{g@!`4QJ z@P`aBlnK7jfF+R*7Kx9^cLST|CvA1T(24Au)=tVUcvkEXcvql}T5VsnIM1At#>%jY;kOX}#K z7NLP~JWGZab5aKW72_5j#=R8d zHi~hK!8kgA@n>-7*!gd@$+?FJm%Tik`zX$Q#Thd=-$Ae6&*f}t)Mt}J1VHCDIqHhg zY$Z=gSmQt~03Bgg#%Vx3vbG;KA8T0~Opz!`i-Kt8lAI>K)16RKI zScMlDa~OsT|G|K2aSJ0Kg9{|ii^fOZWmWf27CG?|*I{Tgk>vQal7Q9sJyzB7*sO@s1ha-mNG-+_5;Rv1KKNBgj;zCrzyhi6k&xycr9`YzdU;Y zAwxTvL}>rXg!UlMbX;*bQaUbsLU?BT%7Mc3nkF~lnx!O2{%=M1FeGdoAfe8rK;+qT zRDuz%Q82dtHB`#SD#leF#(Ks0Elbe9GZ=42X5eQ!9~i;2w5R;p?}H~i5q(;C{`mmm z=}Qm8C5mCSVi0-5C+ru%a6d8>zgy}>N~GHWmdKhv3M{}gqd+6B_U%?Et5r(KJ02l( zm5>jWkOISM>-9nkNjw1Dm>hrS}r?rO1Rshnac=M7d_-~XqBtuJ&WEl_<#M3n zG)-Ri(D7O5Z~+%;p#k@seQBsEygo`q(c2^IDJ82w$r@$I+AKg;Fnv+JLJ4u3%7vFG z34y_u!<2-zm%8rvc_krRN!Zhna1GK-pZ@*A!~ zdE7GFfyhWzr5kb@@s1&cEii{>6@0t=_76voUW{DNOjTgwM z47o^(jG8bYEQ85rq_Q}1g7dk+JJ>~NSOP*wit|NH9x;gQ3|i(;Mh$Zv8Kvy+#lE*} zO)CSGF`0hHB?aS8!B)x)vU&wo?JzntRNHxxv%gg6?B67Z2<81XA9Y#48t_k#neio!ZAH|R%RwgPg^%8MD&P# z{zb}Dx8#u-(45i66lgZmjt>b&?SK`33N%IO9EXI=#oH}1iB>9C4nvpbV=Yp zDFJ7CSq!to%60i`O?*Oj;@DoYSOf)RBFHK!{_QWPK zhv>9v?i`|{WujL0SuC-lxAKBHMBPtw<`C`PhRJJ~K!tUHF>I?AdStOXe=P>8jsjI> z_<^BnAs+3y0M`jsMM~8k9#tnOReLK{ryHuyIMqj0PoWAM1*Fpyz8=>ca2{(-*$=_& zDKH`X`akyq>pGu|41r-?|I7#Xq^XZki}Mya9h6HUIFFH27c1<>BV}s<>L`{~eH<^5 z;4v$EZ!F>$egGBcv!1Vvo~?}DW*BXl;xL-*%PEPqsO27&5=)A5DTui zzhVPZfDerdzfYa(n%fjmgL#|JvBZjg#|zAD-eiYg-EDR{8FMC!Lb#&pvZmMoxrsNG z7qnuT2o8jt6gpk>&HjS+4iD`aiuPVb`<_9&MF6e4nR3iOo6^6(2Io^cGD)BP3W>`m zGbO+VyPS@V=4yKG-j>)GI^bkTJ@~WIz5&ev)A#dd|5M1q-Xhp-iL?7#sVsY^6ZLG$ zrwD~VlUbG6e22|y8fVK^wQ|9!ef_Zp&J~0Ma}Ca_H3wq$8ZY%~rqXi7Vqv+p_zelR z`zkdxvf$qj!K3KXLoumC$$nGfdr|_R;q$)@AvH|N?BIp+5+1UY~fXwSkbk- zz!n-$PPGN26vu++(#!oa(Xrr^dAN?x4R8PJ*x#AFwSyuNHhF6k@;H4NQ&{7Adc+%l z_V)kCst!M|aqLFIsPLnWoQeda*=l`z8tc0m#;fx*>0T4G1!@}$p($MWl(gd*>5(Wj z`--Dgp~tbBcfjKUyi*gp{xDHk*nvnb!~^{=WMwgsA%WG8OpM)@uC9opEmV z#%#*o=_+^Y+Zi~-J8X}Ti zH6e5Ey=gB#O6EQDm97KeUEFFYiu0;En^VNSFu7o-1eoHM9>B`@Fvk7>zvr5r>_jsH z5L(_C`&Vd*I+e;Wm13@FYbJ?!a6``d)tQNUw~WWBW4*3HOY}6?YBhs-cn!)VCh;uA zZGl+=Q}wPOpxWO51a;pqx4bPoLDP=dmXXzIhSdsO)u8Sl=dk){AFx_lGzLpUBOncu z=VfI6#TSv#31%x^EAQ0d9c%L+YshMOy(dLhw2ACQ{0~ z#Sk&yC1QvnBCsy8rLUOrsB>I5^a%tGGv1daRe!ehmBMp|khHy$^n^#! zk4jRDl9b>D>Npz_$S;svdV!?ZP}Q{zG+R*vOpQk1kjf@bHF3YF7GAM#na})}xD5X} z6$k{o!9u4pQGEksYoUWA4W$B|t3^bwy zG+*rXp_+07E=kJdeS41WSev*Hl%$~Boq)#&(QU=j1OE`ZmB#_yNJS?>L-<%a27tdh zSmFSix;P;ytTV!oh960Mhio;4@bd}jHb6>|(`1%fDE<9%y6FI*YY3w2L%_p==zcy5 zrGx$ux}V`>6VV{L8wmJ?c!0Z0S^6MKe?NDpAz&u%#HyDRVeUl0V}s~6XKCyYq5EYt z(ETZh?wKP2_=|%A+}+30*HQZWxtmC%Ye!0!!rkEnJS~WBBuh{FL+DoT4|K-_(XBiJ zfO`eey~@(>4*VnB9fKSq@g;&|3U_A_@O1#3(hyEyX~Q2v_ewd?T@XaqjevIyqFY^# z(&!&T_u%nBmm5TPB>_K$CYi!r9ZT;->F+m{1i8Br4jF(w|1^|s3^evZ=LPyhC$|9y~^LjUOmYyq%Gzw|OY^RLhD z2S`^cB#-dT2xnSJN~_Aqy~SV;_s-J zdq$qa->yr0Mw;=L|4PruO#FR?zwxj3jJ%A$fv=%gg1_bX``fbczfzQ^j6a0zH>W$d zu>%{}Z!QLD;_Q~wFLFDug)BjLDNc3dH%O-)i76l1lI4T}`4t{8QrRG^#tPP4HYkqB(&940Jv ziz!QI;2?Cozzp{mw-x}6Z?K@2SRvW@xSAmV-a7tqa5S&Pbk0!ysuJYFFCNsx+P_L;Th+7O91%OFE!V(#xTF=!-|JS%X(V!9^+JfqCv!b)BzsQ1Yu~HE7zV6kLs5}7 zpa+hK7O-So2e9RM57c9qje_7m-mh@(IgrENcFh*jROEIe-d4yhhhE>J(fi;-l|oGS zcG++krv#xY5fZ4jERatSt=Bk_-$hh!ZnNcbww$j1^`5Sco3Onf_fiP68t>qYIgb+ z=3wPrJ<&DyV<0ZLn)_H{Mc?NI=6)`)`^`NtBK%AlO!i9|N|WG1(_(Nrgc(-dVj5+@ ziZhK57tmN>zvVL6>$6|+Jx$q5YhC+|pejsJcK4%?qbZ_D$NS&I4JE}AdfZBKv3PF| z)#(`X6Qfwe;^_N^41rKh93`-BGzsUX#JN#x#H%5ND5A}@^Gd1ncxBQ+OO)tBWfCjO zNwj_bs8G>A{68Z4rU|a-r=m7Qe>Y38FF7wD`hOtSPDKC7p%DF<$We@src@~U*O-MM zuH!Kv`cD0aa3EWX#K4nJ{xQOB$}XGb%Ad?ZBE>sV5@22eBR&Q~C~?|+m5g!lCA7rI z$A8q)WZuhH8H+$oNx|8DoZHyBfib&_c!;-^_x4GytS-baA*-)gVnqiTS-l21{D17d zd7M@A{|A0sZcS;L!X-%tQI;}VD56P27hxofER9bg`}mk)P?}LGreh7Em=q%UWUIy} zOr-KDWY0d<&NU&T#Wug^^Ywb4<(_-)Exvxg$M28n@tDp%?{m&;-`>l4AD^re-3i}E z8dM^DxS>bRpiPn|+T@U;4f3c>(n%*Q#?g$bsw#6PN=^cg*eI3x9%9JFL*my2HH7Tr zN#=bxb)MZFB{IGDWWp;HxR_k9$6;`o&HY^>1sn(x!f0L$6`>$M3^%JYwuq=Yd7`Qk zf}%ZDR3mwSS8sL2eD>_R=fthC|ee=in~aiSz9t?1=jvl-FGc?LZj-65W9+ z5Pd_kq{9BJf2f1D-z<_m@*LOb?k5y0TErGBb|ViUXgH*lL6X~3lCR4UkHp40(gjKO z$QMacKp_sAF2Bpu;-5_0K6#3utD=uz>&kOAZlHhmz>)T~S&p86VwMZpj*U$2IPxFl zPZ>3cd)|m&rXf;R{2YR817ybQ_99cd1|0R1jUuz_id~sKsWO|u7Ay8F50KeDNRU36 zC3eSMej0&B7;+tzXY@_d$q-Jup-0l9qy26Ah!Qiprap}MJ!1jlnztX}b4|5My5?6} zAF69^1~&C{pccX$*9-+YKtTqRZS5~2oFyY%;rv&Hvz#qfY%>oKPAeFTPdGu>{4oxL z8cTCm*QB0lP@fzw233dCRD%k)C+r^u3&}r_5MUt^)xepQJ{4?aII6;oH`y(KxblbK ztc3I5qq!wgvAv9=d*hd;%mHV_m-qMaag6aV<2&f@{5$x1{e65b z{t~{*byC?${Fx7=zW5^@kE-YaSGn=04n-j2Pai`aKZO_%)(4YWDI)&N!IA&?dxi5G zv4>@Gq)d7gEblchOgGWOfyh8k;BK^#Gq@@trDkXXl4_05AQTXXRBJfeJuo(fl$pTICS5ULg& zg;4btY9AA-Xc7!nJ%JTf1dS;*RQ;doiN{Ml`-1{$e+T2p=%zVe6ejhl6QF|!J845C}_Rc?u+Si`$s=cGC{SUTSu^z)! z?dJn^2DSfC0JVR_`bINU9fU!(9|o*cJ5GaY56>5fH+)p$O&)&v;|+PNiZ1?lioSdE zk^dj)d*%LrQ{NFx?}q4mC4?c`v`=2uKEsT}*|mhQnqz zP?!_V4?WoIRu&Y7n9Xy$Wj zT>(3`BbwYg@XZ+cLhJ}GW$BR+H6C(`tHxrG0yUn(7AtlG5A=T!;ZtMcH*n$?U8t{Y zgXQJ|8=j>B+pP~$t>!d<2|GC*0S6*!uXz|7lbK z{73ALy+vGqeN>@;54C0)@bg9$Ztkni5{iW($C}rZOKMK$25`daKWU&M(LGdk7k(|O zdwZyB$~UR%5^S+z9Zy!(Jq^?$s&f`~Uz-n8?#co!c~oH%u)>t35Svw zV~iTE9780xRhh;Ut^}3a-rq)jNRP`imr4z&_qoc?JH!F1I-3c#v?Av^OfbN*G#p-g2?qXhbXPrzEK0y*GXI?S?R57b&n{C0Ji4g8zB2D|miS0VTw* zY_Ved$5rsXfj5KTR~-()&p{8Ff)5#Q3!g7czyCcPommtU3S+vAj+Ev2UIk)j+!bW5 zd8Y@;z$Br*()5eg3^@}YBLGL_&YkA%pK4sQ@6zfxXJQ4;7`Ukc3XkW6Xx{$WuA7E{ zGyPFfY@9c8Ox2ISO!1d(^`OS?dYbMj}Rm*yw9dU;dRLTk3*JDWVfA*Ms- z8T2x>KlIWLrCC5P;riHy_j?wBW;f5xC-)HW=(y#+-?L$#t-s%M<)^~jq~l%YK3C@M zWQ!GB#sipp5rivq5OH2&A#n>jiLMsvODby`o8dQfBej6pyQsdxUf!8w?ylzD{Lg-S zZ@t^RyfZSq#Cquyq4_Y6=Cw-mF-r3_hUV>Dn)OAzz*PIJ!=R9H2dY9UmsWrPe_l4- zqjc}@6pHP$dsKi2-H0?r<~Y&4zT_Mb*=s3hhVpqUq*KnL$}9VuA-XcB1Z@!5Xt_ln zw!7xa${b$Ol{x&y+~%b-3yXNr$d0cK^i+DG3cObbjq1?^JI_QbHvlbO$U#M{2?9=? zi^~9zJt_kw$3S~&5qA@+bOun>w__K@-L$@lh~)+ei#W;R-G=!s$E9b!mng)1jOSl! z52fk8BCzNqv4kf9&#W=}Q!Qa3TdbJP1FW|Rfcjk1UCOumP?*3N)@53%iKfu&_!xx- zk`#5EViJM;q|1fE!lz^$fAlOd-CTw?%}~dR2tzUvIv5hm7)pD+YUduHFHydZ2dTx7 z%tfG1yu?%G`p(o^XXI?ETu%K4vI(otX!%oy)aG@Gy77drY@$qns4BpoSUcwMOpheT zagVMOm9Ai@wLcJj4m{S?XM2p;BL$ww7Asc41N3Nz&uV@w}>jG2Qmdk&6jG{2dwX`=8aU@Igo_Fp5qI@jZ*t8#LMax$9- z=xQSLkU>|+_l2&u?5ny8i^8HWS%2#L{)_iH>in8cAlw&!YlR=If#cBxoNl0nFXOC6 z8(0-hqQ>B@c1=f#w!Ea#mcJPEY#vqI6S~xyliVT5b>%~#3asp#+J$ZfS-*<-f;-(; z6Td{WzM6O>i^Fn)!2pA^dJUBDK||afsO!=Z_rQ)2%wM2I6?iDfp~jllpS5-LT{580 zC3*;oqOjlH-GOSpKNMJ3z5jb+5MO!q>k(=YKWY8Cm#JS%p=_T)xWRa@LtqI%Am!6* zQ$Bm`q+`v;VK4PV;KdqN`KeS0yAT5Ijn>{-Ig{>1Q+y=OvH0nK5o)}$LnKSz%jB&& z&)F?yTu1WA5XA1$48X-KJ&Rz)e{}Nu_VIw47a5zMys&(~cSQilc>)-w0ytd-a1#%J zbp>iz&$sJOs1FpJU%Vr5F7n`YMT0*5bTdk8Efe+1j5gRNs&A z_=xc|?SG*!=y@A5LLf&Z2YgDeJPwa3uzM#7F#Kin#M{F7hex}?ag;J{v&D+-Vi@lU zBk=^7h$D+aSBw$Ea2(dX5;XDzS{l|RXVN^Q`(e=i>wj*NcXOvU&EmVc7vmuB=F(3} zblG-d1Mk;!K#nB7^v+RTL=ta%=O8bVc-cGWE9i-*z4Iu~XL;v%xh#^n!#i)u^YPw! z7Jk-WX=@1N5z=K?Azhu1pdB&e(a{ z5em*5Y+Nnc$^p5if}Nz=im}Ct9nAyuJOG;TX)95QyJ(|vb}%N30HiulN<3!x-ARzk z1EOF9?3Zu9@)S0*gpap$oxo#6ia!CYTxG8+NH5WskwX*T6F4wCqCmp)x-8w; znoz zvufXwOA3VNGC(+TH$a#w`rQV}R%C!QkUEkMhfhZ-v>crQ!ZZ|ui7e2<@fmW%@=;6# zl~6Y^DYK==!p>SM1V&R^y)MT7(~+*R->1gDnJrdqUm&Nk4+SE>v9nmB4g?3x5j|N5 zgN-=x4d7YXn*fNlR0*gFcB{v<-rP_>Bso}K^_oz$+M{TuQuLlu)Y4E?i!Qm3qF}Jx zd?12lZ`4Po9~q}G(2txNLzB~wMEpFic~->2-~0I6BbpT%iNA;Nw-$c~waAKGfj?g= zmY;$Crg=Xl;|oD9S==QTk+5W#p5Wa zTfm2_ajU%{J5;X+tr97IJJ8kZQ!2%XO7S2bpx0|4A)gczZ;>F&bZ2!`P}lnqF%beU zNwk+DVxyoflVJsiqh@>%H;N$u`WQ93vR)E*2wEc--ua-R&S6Uc?!^i>*bO~rrSNl; z$Io-hPc>Vt*qb~6<72?+<0ohp*Y|)`bcO?K3Jrh#DBbu{HOZCy*8#tL{hRs1hpw|S z9A<^$bu+K}{zu_+ql&`@NZ{xklQ}`24-3-P)5C@k;))v>O zS}fv5nBoafEjS`*fsf_kKCxd6s!h-#JQ%Z_NL2JMdVnnFFepgC!pUfJlFL|H2zWHnxL}$p z`|i-^IAdjB4x!QZ%cvv=21MhO8M^xgJEJQAQ+IaS(oUa|J%MZ&FHrCv(K6Q{=Mib> zOxw`y)zJfrj;|0!e}07P=x?ZFY+{QQ>o!0g<2Fd&ujs(Y>lSJ#ihN|kCFRL*c`nFC zxa9Pfr?K$(SGi8qA`TMJmogMxcbuy)0))QuS&cK^6jNVPEjlODC>H2TEJ^Ot-xQU+ zo+@|aM2eac(kq&T{6?D-EEK@_Elw!ZA~wPk3vom<6>G0TGH?}1M4|^OlGy2Oo7o6O zuE9|inU~{Jq+E8;@*Y=_`NWxTaMEgMJ(Poeqgp~R!i`%diky77tH`yg$otu1#opin z5pD$>K7%6bsL1{paW;yipsC2|ZAFn(k*7$1z3=tkO+Kq!$B?64%x?JQ^S?S?sET$v z*41Y%TIhdSILaC@InwnY@(2Y3_BW%^KBK+L?+8X3$p9ihOWYI@#`S{rxSLPga-7no zj!zF!=?8^(N z7)|+QCriLy7h?=;viHsz#X95wh;xcKs5vWZv#DoPtHV(V4)J;=jw?{llcZ8!P^PJV~W$> z>?itt$Qy&rQhJ3z4kP?6gqDf5V*?rHnQeU)DJG*H8CVl{4sM8sm@J9Gp4(WX)_^ODxf{KeW!M4|w+ zwD#%00{7VCTYCEE28A;A!hzz_L*me)nY+O+4Y#OnJ7l0^Ka^lwLn{H}{uaq-Iah=( zTn4mH9+sZ{cbjb;t=Pl$NRE(3o}e1rwEpzWI8VudbAV`CUrDqtg%oL7>E?WwJ})M= zH{h8Ovw3P_hq1+qUCaX_L^go>Ow8>btm+EenhfGYY>Op|lTh=SJ0Z$QeQUa4LoJ!* z6hdD7u;>UNx#AkM7mlxMGO@O_m_Og#j9-C0s&`Uq5Amp7rqmv;)Lv?+9f3Mcsl^`E zBNdI6J^xVh(tJt%NeUk%6ecc3k0*H)hJqQWd42YlI1K>7RT0gGLQn&u zleEm4Bx9vwOIG$_-^eKJ@14vjY(m~rb4)8p&MVJ}KrZ#j`BBL!RdOCOn_9BK$jc*R04R@TFgI^v5;lcWC{9KnH1-NQkeBR`#LbWT8d0yZMd&4CaIj za91&^>LLkXcI_XV%-~b{c;j_-p$hCQq^LMIEvd6jX-CF{ol1A$p<`(q9y*s^k@x`0 zU|$1U<5oATj=o(#>!GJJJ51 z@?q=s7Q=C|%tFRD{TQ!$DV`c94p(dsd)N+BY>z9pPYkvj0@zrF1+C%7XN7X1Q|*;Q zHHZwg3hPG$>(FFa^&=>s;wIScq!LHg=T`>06L%|QfuoQM6!J2KyvabWLnZ8!i8GQL zrqw|I!Bwhnxd3vT9s6ZdSb^L^3A%-Nm7o)ppczWg>xQ5c0|bquO0ce8I@ZaH6Nv5X z-#59%Sd-H5Poy|X4Br&iB##m9#InUhbD5%Psc8BdG`qNHQp4re;vf4+6_g5jCOxuh zsT*bFT3sOgeUI>$Qbz{t!7+!_;T0G~^5}}QK9W@Es7f2^72V#XQ5Cf*K5c&nlaf)5 zyYa*j^osfI3HEU-a850j+XwzC5-lqa8^1DxBMY|ZJ;Nvib^?u`IRjXZ9ShEj6lYo2 zRDgcG3l(OtgWTdt(d6BSxCV2hYVskrSh4qbK#)GMxnnR%nsnwk&fgWCn3vI0)j_WR zZ^k!fZT2}t&IB%fV6sa2FwCCwg~wez9`8{e_f;N;8y+c1b&C2xK~(o2fiTd6aIZo* zQ6W?q2>ZGaV5WJA=cziFi}bW}X%FeYIt#CNmv8)oBRI5crbo4FD|-=$;rK@_+Tbn9ubD4=^hb6_@5Ligio6w~K zPcnaVBA~>6`G-vy|I3*otKTeV5X;ON5Q#Ik2q{j(seL4t+VO!0al%+hE8}E<8l?M{ zNzB9(2Ra1WtyOdmfWloQ@opIt)Exu4p*7x9i4l zs)qMrixoSK2WWT>c=T!5DV7{JuHG4n?!+t^J{Q599MHF^pDNc0!=m%RfMzx1NEX-g zsHxfPv}ZACTj-srQ*1ynf$JRPz(>3|9*vK91tRU0j|ro9_i`EiLK%ICEyzbafYBGh zgfa?`%6G@3rAEL6DXSPqZ7U32qPAK;k;xXIOU~(Z)ws#7KtRR#@&E!8uoA#!=|&xa zAWp53;}luOZSS*Q?w4>}Zui{~8jkONRQ2ewmr(Y4D0?Fedvyrz8T44b6ZAL?^`JT| zRpUBrns_{)w2Jz+VST#YQzO%AJOn;Pf{;rsPVHR~nV@Z63SXZNIq7^Q$D@<<4+%N? z=Xmr-1VJOv@n{jUL`cycz+{ikKu0dk7~$9k6q84SXyYJ+Yqji~zV~CsN+LzO4U6G7 z9+X}ZuVJ8!=0XbW!AMigzv+gFXFMXBUjTTfqZPqKDEgF(*5 zZVW0v2SuE!oa%H{?v&DUbPC*jd{wSneHJndhSu~WhBJT2!ZuhiE%gluA@w7MzdS5- zzUR@It8{*>bY?>(r1J=u&aHgJ(CdJKpu4}#Ld|NeQZF zixul+1UC<|QNe*Ater;zhW<=ykJ%gla49R+iJFw9k+EAcPN{5SFgI_0{@sP;%2~V#5!u5}^qiob~M<%ccTy|#!`1&2B zf%RUzs#WmogR^&lf#h#e0~zma+u-r*w~V%6%x4*szJnrm3@9Q{N`5q3IOyalVn5|z zKUKsTJis!#xEyF#VGOA*Ru={7=w5=Cknar^g^y5-Qnc9~+8&B_S4BI-pq&TSeU9U# zz7zup8#C=KV=+U>L#jZv!qk4K#b>64`s&S3? zOyfOGHIqC2tP!fPpwM5KDRk}Z(KS-(>aKL1ZRl$0(iPf|{;VB@el0L+l&=5*!6=_5 zzmp#gV;%6z*Waqf=@85Gx2&m>#2L1F+YcI6qKQ9o59HJv%g`p^Cl+J!aDu#9z+Wep zUaoJMIB-ObmiOABN%LG#Z!i2#go>9D9>FQSJtVWA-9z&#jRF-0&4CiH#?d|mGO9m6 zz78AKlX<`UV2fDZjw0W9uIfZN7b8kbU5F*^ah9qb|Z#^znd_wQ1Ms;pJqina%~ z`lc9>8^5%j>sD?RkPF3rb^z(;I%xc$o0ke zjvx4=U3k$jdWML*hEfGzm~DPh#l4&@*jJbbi2F&1L&dE{1E#Lsq9K1^4Z0YtH1`zd zn2R~U%SrK9rO%?DI>s}?s#G0j?pvHAP(uayb;Qm2Dt8hImUaVhGJ=;O4sgTOfHVd! zB2i$$+P|&YnxV+Vjlg8*sOchuvAEC3;4zg!6VjduadFXBXOfK;f;3pQPVrB-0 z1lTJDoQVCo=73;8|L#6Pd#Q(ZzM>tYXy+NU2PdOVeS31Y0wSM={$~}?eF|um0rVaE zC_eiC>G}o!-B%)r*%k#g1ZF~D1;zI58bos@&J&d+-RLVyv=cu85r(5EmAIFM2?Gpk z7Y##h{Mdlor10U$fCM2Y^YcdPz(+uPC7>)X&CMx9G<+U5NOI`CqOuM9xsrZICEY|N z-P1^VJPa*F(oW%X*mejon~)j;g^%(1fc=~Bu?_W4Ef_adu(R8Fp#A|@kdo;}q^W=I z5gxDdc>GFvwAfcW=c%_kg_uhkwpiz=LD zcmq}KL1(I-CR88fQT?q_Jy@wOH&iDe^$eOB*czHS3sqwJ>L~5^jrlUAj(-$_2VZ?8 zufbJCkM9H$^>qrqtVK(l!=on2>~HqfGNKx7;D4Ij0_(@oZV7?mc3#q?%U{g044(!7 z2K{itI;?|SG*dIE!-m-he5koLn)n8!!6k>;M@a2}{SyTO@=@IKI-%VhqE631ROfdf zrgStE85;WHsA@dzGqF7xn~Pxe+z7;O49v)88ge(}AOmQ8#KHe#xAa1piUNXV$s*iu z?^mZBrW+ioxJ&G#2JlRbY}%62iY{jh@*EGa>Q@s<_TkoBb6UYL3J^tT7(gl-#M1TI zpP~utH9>=$x(k>{y-u<5-|_46k{5b?cc+kavqw^ECFvO@>1#vM!2y!SFU@mNNyG@P z*Z)erw*ibCe)4ejlz(dL+DswJTIWvoI6CXSzTR+>#KU*i7i%a zFb{CJB8c6u*T9QYc`c!uRT%#WPnDkir}*18-16XOAlUiP)aXchD2UzxeR1d*1dPJT#&)%tU)nPW0DxBblnX680q zO(2*vFTPDE@8eNksFV*<%1aI9&qDkeRMfo%RJ1RKlG5eO(D+ojE>HXcNg&PV6nBe( zJk6K6ycOo_fgJhm&DaXjmOEj9Yu!_c9eDo;f!0vAeI82Ns{NOLA=ElE7lA=(v)YT z2J;z&8%KAD!V-2zTrx>g)P^KE?tL^RfAi7Ty$ydK_^;%zYmETH^4F?2|DpVK_j@Y5 zK%DD(v&bys$*fdm)>dUUfCtE|1Y+^Ytp0E1uU}S%=C8w=L++2DzS1BW%wOUCiLeda z*k|{xP(n0JN>-!Uqca;_wn5<|*(%dUm;88+Jx>$FRyVrb6UmuTZre7xoTBB#);GEo z8ukrOQWs7U<;~sGHTX%YyeHXW#lGMH%6l5J^(!xsq;_ov`FCX{D3jiW$>mwv`R)ox zM+Z~`^WB=kHIpyLO&a`ad33TB!+tPZ{eq~swQN;hB^>YKaXd{q-d#B^G#oDhH_EYO zt2Db`R+A)lR&dm@j)#}262o@CoNw-CsaPXwc~^s-GxB||rmbL}T6&Yv{K_7#mhM-Y zSF**5{muillha8Dlb!PQI$Z3G10B%tyymFM%WwWSowliab`rX0qZ@*6lbp;Cd0W|!cXnBSM_GT4EqJeh2e3XJ zWcyf8ya&y3o{v+sk}2T<5qmd;Wi0b4@m(1$ZyMN}^~$Mc%HNDwntt03uWKaj>s|F= zz6v)1%uY$y4Ach&YVbAVaTA57e2=G(m8TPwr*Vd-6%e30#BSdwg0++=q`rR2Ssd?19v7##55o5zbBCV7PYtc2aEgb96+ z!~3XfGbsE&e?Z~K0U;G$xwHcKgIUu}mCncrXKIQaJ+;W0^a>tw-kBWm1cO}Vs-foH zKM1ujGOi^KMGe9CdsbdAEF9pm&@M|t(4or0MLd9o9g|r|%mls!7swNMieSnV>Jc7P zyidizHbkM0HBesw(|*CE>{@w%0y@hB)L8)uT~=(m0aO+MWU5D5H}cv^SrPx=evpgv zmlWSzAu|}u>n6o%))XOyOs2rKY{=dRRIu)-KpO%GmWFU`>$6KG*RWA@4S%^G6DXC> zDN70~Yb|4CiCqxOhFE5|1r#B)Ru&-zYO;yvJu6&ucYnECxLypvXCA_>iou3G|vO5Bj zNqUEQG`$CED!E%nj7|5Xg$k4ViMQSgt9ll<`swKqQX` zXmEj{#HLD9+29~R8llp)8G{puV|%CE;iv6wxha^==3gg@`kU1xNEgLJGp5}2nTsb{gIlYSq zm}HL2DO@5iv6i@DGTSmAHy$Ep&-+9ghnH~X0E8-PE@}}dDv*%o^Sanim0mZ)jrVIG zFqn}3;ODxn?2Ws)DmzCRX|9a)F^n7yb@)}5OKT%7mP zhBhAnE$MR=9Wb<>_qJooujxX_ymP}`MvgkcVLl>dV$C#g!Kk_(*U+1@!n53_$ZK`QEg+IkTI&``)dos=itpyy$Roa_wb z{8XcXmDt&RBw|MHQq}DnP(GlTdAVp}F3Faux&48l)F4>YAw9nrypRq-C1BZ?CLw5A z&-V&3@#lwrVFu{i0lG5)Y7at^$P~ZtxkhYkKfp8b`x>>ezHG5#7w`aQ`2qpYXJf7f zowNxSbQTC!3tA2OQ$u(le!B@dFu#|rw6ySOxn61MqO_c1XgM`N%RfKA_uI~@yj#Hz zjCC>&lxPKx_T!5)bvpmTdakRMsA>XbXv?cbBNZUQXyjIv!p&^4VlVOljTA!YK8>X9 zMm~^%m*LNab|X7&giIGmKaQG~g>U)?M> zj=7FWkeXrMt>8nr#dHO;&>vuY9!~cc?TJ?!6*BLdk=bfIXCJNryQjU`kG-AT9L%mm z`6X^Ed(cj<(q^gBPGXA{yPgLq?LG+Aue89pXtQ4+_?%ZA!3W1h8DaVFZ}%6Su$W8P z%?Izn5z#LZJ0Plz>s`*fQh0qa=JNWq^7!0Avq{3cAPF&22Hdf{ zOt|gmar?Y-J6O3bH{32k^_D@iuWo>5`=A^Q%d~0oYXvCHINU8PnS2ug9n7y}4_vBf zv@o@|ER>MNOPXK#i}}^F2Xs^d_P~4Wa}n$udtfi+H8g5JBHeyf6+5P< zB--!)>qooQjib6`zaW#BAWI)DA;_; zcC+F5pP=OvF}xh6W%b=;|NV!?-`@VW&^_Iw`!l8cF{S$>9zb`eWV%zw-zq4j+jTT0 zdHhW(lXAThKK^zGk_m%uaQsbR9-&VL$KM3%o^mZ1QX4K8p7K1N)+$d&C{LFep5hR< zPZz-sOW}`D$zti!hJNcVSs(xO_}d*QB_021QW`$~wv#gYpY2_vLrsOq9DRi?*uRPg zC~pKxIc4G6nbhtMV~}=trt5VR zY5xPEghbl5O4uZiFw8$u4l|Un*9~E(B@-4@cmrQxTM2~eeK0iMX8e4~WU%6l#=HPJ zQpbnxd@5voD13NEM0O*L-mwfu)(3zgb%bVkD6V~hD;%`=Q;#Ijp(8(ghQfXGNsX0M zoZV_s=2$u6Qn91W?On6&r0QxxJz23sc!1f?fhv4<+zu24^adzkMO&yZl$QJl z1hu32rx(!di$y>WwQ~i8FR{|oo@NWa-^v42_Z>U~K%5OhmaWKo5T+uV zpvd|wvP%rIQv=BEVshFR#=)_6Ws`ZI@p!0}T*t3@TiGo=a&A;|VoJ`@hMeUvG9T~t zt%dRAfySHgZnJ$b3Pkm!K*#oP_h*@?e7!~XV5n~C-p;{EuzTBlzCWsjzs@n~d||sh z$JN3#W%~xUSh0mXAULiDH_A4|nwMx#>!UqK%n%UzVnQDJ9@V6)Usld|Hh45K3bN~J zpQV*^(D?p1PbfLnqhy9sGD<1A(@=7>ONq{u-avFfPuOvE`1mOU`R$Svpd`P;X^1NgR~s5$LQUs4g22GWem3=wiXyZqlc_p?>5b6At#v_F zgS)x9dURjo(S2Qy?u&123B$&n`;PBFd2m^lvo$Z2!_CQbv{p8J!$v3jLQ(np8JqlO zrMuSmbRB|E$IHxI*G2UR5I(TSI2VQnw;C_6RCdw6N>XID{21 zEN5Y-{K^~$xTU(qhD(C}Fd?$L2fA=Jv|wAj9S}c-+rsPY}}E zJ{Ez(p>y9Q+Fs6deKBw1e$4G5bL{sFkvsb_rxtQ1i6)zV#{HC!0eEje zgD7F zvg(F+f_F2&5ymmQMr-!%r&=-xMikgVB0PTp0qvohMh$;2ij*~nqOQ=u0aOCMn5A3MM z(l-1xlfQE6J5sFJ7={1pu}PwwASI@3_;BuFM(6y=ee1WL& zwe(jR75u%&boHpW0bXA4gTV7aC^O~?9vvyy;>3%N45uRHFVOkknv@5P5GlX29gSMd z}M`9z6nYlvxpG=2W;*se2IyfYAV6f*W6G9{c>E&`NvOSt61y zo=AqNNDftzT*L$1c^%mGiA1)9g{GWMIVyEij!Mu~dYn0_=1J4~GP;0dWoXW9eMUC- z0Avmxg|RvIK_tM5cs|XuzqC&O?C4q8pd;|*!spKvF5kmr#tP3+F4wWeitT2&Y>~`m zQ1O4(LGjmM6`CskRuJeY-sG=9{B_cCYP|w0Ep`h!24(E$+7kQs@SR95r3h@*^TU0j zy|QB=!Q$~Na`^>j&RkXSc9Acq{Gg`}v-QTb`|>=bkb>3ieP^g0coMo;C3LJx=vp2C z|0{6svxA_7`cpzh=s|||Zc^fr$|ue8POwJ_!$f#6OvlkmixD+a0(1|rBLNB*!*;x= z6uuMjyy3#_f>y3QT%+86%oZz_ZMfYCPQ0j8KaQI57P(ZD4v@gUgT3HR6}%bQeHT_3 zQa1Kh#Ls(($0_1374eP+@mLpeXv{Ceq=xG_BXzZv-Q z+$4Me;D*zL%Z8RNm(|K;Ou0PTaQOx}@Z7}xQfY=cY8cXwsL?P}a%QSesU`gh4@xtE zEdju!M&+i@19G!*z9R4z;(QBF6?UpUb{pnqi@5BBI^X7xp|nyK->J)* z)8zkZY6JUQZbP|cW#>jTxz*w!Fe!Bpyn{^J{qB+c&r6#B`73UP?l(-ou!ePs>w18P zW_bGMEK6^cq)0m%K73@iNKeO$po8-+Yk;1W;c6jcs_e|A6I}y*VVL-q;ts{v18&SJ zn&lhnfO|5ac?4?R8g~x@l)ZeqpS!J2lXuU6v&p^Gtl8YS?fq&=>Gp;gHB3zEyQu3S zFR4lW#uh7f01(ln=AlRLiv#Y|&yLr*+{(_y&g>ndI|f9#yn7O4&TxAfV<-t?NM?%TJ#lrnr%X9=978hiQB=;2z$;aH zO0W(=*Fn(*>yhnF7Qz1B+!gHWD%kB+u!DGjV243=KEVd-ktrWSzAI1@X+2V$BwXak zK)uFTjs@~w!Jc0ec)wDZ1)pN@V!@Eo3P^zQ)xV$YESM3l%V=A={e<@!DojrDnEXVU ze26XBPnZWVc^PVVH@@a4TEcZ%GL~cD>TwERP>ZthtBAS~@z?U2L!;yX5Y8|X4|XdG zHK_-caKlML-w2PsFOwIgOU)4Cutc1Lm>{8=B!sVQG6Z@r z(@6C5?ydD6O&%K?^Z^w88DdV_(p)Mc&!3V$+*P8%xgDUp<&YNF93!OhhrEwh+f3sl ztsDZ?szsl&Z@WX{G%snK=C8l=hTWOdLQ~ng6Gbyefdo^3{H~fgnJrdq0uQj9K1iZ| z&7|AvZd3+ddLjmfykU3w8c6&S)Mn~hDN7?W$(wKaa4cG*Qx;`oMI*wD8I1}Kc8!OH z1_!$w|4pfH;lFtCLqjCDSoZ0(nir~~zrWSadEs_4TJSOB32-XdX9Irn^H%&xTV2Gf zddBx7aR#UB(1OshvYf!cMqi!?WZ?-Xqv@hJ!64oQ-CqJH$aYh@bioy7Oj*#4^bFJE zh}E4i7?v!7S-0jVh@SUu>gsvl?f86jFSb~*VLU+3$3qW3JtwY>!X`ONg`yiof)O6Z z+Xt8i@WO_+Ig|LoviL~7jybN6%4xWj)22A@SS=Qcn*`royNDn7wz9u!;u4mpgnhvl zE4G6n>=~3|e!{*0y2RV~4-`-oDS)?Ez+ZZR`zzqj74Y^3@EHNXHxb2R&%q zH!JkZJm~*Y=$9z;`wjH>QB(VAj}q`k2*n{g2)K^|zSILeS^;0IfM*!M*98DS4w#7< z_%BRFv(X-h>L%c5SDMapt_-b#9%zdh7=j1t?9>zJiB{@l_+8RD`96E!oG&G z{T%N=+$Kx{1u@;2mDm6~5B0@?i(1O1sa?8(G!ku-=r_PFOU^wVqFJCM-LbcJ?1Kf$ z*Kr~Hb@Z4_8oWlyUd0wG_6HAe&K}8R*N><_x&9S5-kzKl znR{baWIp~{-INt+i@)>nSBt;ah{^oBu*&<*b4j%3KWD%(UzXoI2k;O>_A)$SzYQ5M zC8b#^cJE*jWiOBGnaXuP<@!P%Aj&VnjB@Q?nw1rjn@N%>sK>9%=QvHFLr@Ju|Iz;6{(X=>D_TS|VGqvw+Z1tD3T7+)N5}n&wLjteW;+Y z0<$FpO1Y6l$q~WIueI_#>rdCp-cz2RWDE8e;sHFLjPXpLl_k!kgr#$+MF%CFQgqB4 zBm#ZH1OA}`U#!5tGr%`O7=GXlfW?k(T)r+)V%u61jb36FBA|T_z*~cC08q`x;Y$Y{S^CVEnH_3nq>EM+)=1 zc+7vH%y(7hiwyHyP$K%64-PHNTn%gCfODFm1>;|s^Yns_>txjwO{M|C)x1Ia3@}7z ze8G(8<>8t==q7K(t4Zl~(0J;87Rv?-r+5G1+R%FCbRJu**rzkpuh%m;#P z>4GDq=OsqK;Aj&{9Q}rm+pmvNRp!$y0wck-xPd8NI`L)Z1g}H)ZKqW$9YOQhzAMr##tX7zv-4S_BQ^0fkxU!E8{N=P68)AH-y%kLH6} zk7)-pEzMyLi8#U;&dLJ8yT771%R|u&!2$iaD-^|S9)MzE07YQ&*lusY=C<6XHW&OB z8VxRVe4}!mkR>ra7Xt9bbTKn^VRbxbk<`CU;axe83hf*4jwo+S`+aoj49=2Cpu#hfDOD3s=C0*oPzwk)YKk4j0O<@hHnx$|fsi zHHNaD$&>}d*srg_q#nM-F{xT$@+G5X$KZj=;Lgfm+%R|&0*7Dpr?SRoPBr+;!|?0s-SRSEEtS3oBhhL}fOj0@marl`-MJAtkbR45} zY+#EO>tg8m1JS^z)1cGry%J7yIm^Pp-XG!qQn{{pM6=gFGC8kJ#(40XY-s*$I)QBXKG<5I!~? zA|%v#B$O%%8`)yTx*8Jl10-w#a95L1gs^*K7MnzyXc9?am)3z(U!s$0Jx%?Talc0JHH|_u>HH25#&muw+DzYt#Zv`N?J-yX zLz6;-uL})s@Anb==-^3fs!FSeN^1lU@bp~dJHK+$O$rUjz)K%UJY-U+6NOxa*sFmt zWm3qCkN)?)Q>WjI$h;MD=sOodh6r|MK2BE44W^Gz4cD6c zzakqTjgHQGp&Ccl3q^Y0&(3{(TZGpoAOIBab2$1*i?W=F^0oK?uq4jPK_(XJpkJR1 zN!hzY3xcwfgO`=Z?&E~!vfd038kl4TFu3%<&*%N7XAy`^YkG=0_qfYd=RERfMZ2=a ziWTtyb?$LPk~)LAeakB_;X6@Mg_&@={d)>Exn}{Po7}mcPRgiKjE;ux|EL7Fd(0)c z0rNQ^xHDU<*oi!V;1cwB{Ps7C=AcEjtT$j339e_HexQhEZ%;H` zR5ZO*G^2QcDSizueCn&;-Lt=Tq(bBY#b6vT3$&uwyIH@JGV*1}U;tvE%Ahzk^@fd? zIm>Ybtd!5bMM;+(V@C z!yMO8j#X(yRT>8yX}k}9R2uc2U4?koP)%y|6td`@sN^}Qly)dl^yVlrw*X?xlNTAx z`)YCfDnzQ(w;0xU7wVRH)D2bY-e-#y%QDpUbEykm#(4Ql(8xS^3N=!>v;xGXDkXW< zSzwp4^OcavwXT@jwUoGW7h8}&d4SQ(M}qJf4W^3n984MEw^aD+-*DmM6I+arf3n4j z9k^QI7p8}A%DTowqXZfy&?tdM2{cNeQ38z;Xp}&s1R5pKD1k-^G)kaR0*w-Alt7~d z8YR#ufkp{5N}y2!jS^^-K%)d2CD15=MhP@Zpiu&i5@?h_qXZfy&?tdM2{cNeQ38z; zXp}&s1R5pKD1k-^G)kaR0*w-Alt7~d8YR#ufkp{5N}y2!jS^^-K%)fyUy*>fe}=p{ z>+Cm~y8QrNCN6e&&%jI0*o-T%o6Ms>VjoW{`^eYaw`=#oE5LZWwva7Wtda-3z57!^ z(%ZX<|6o^uA(noj3U8Me*I*Bhh&_6M*?XdZn+D*m>%Q_Hw(JBcZ};P+X5D?FuCKYX zqX5F4`~opPd~I(TXs*acG08BJU-Q>bn%w0;T1~?7f;Zo#=8gdJE<9*6`(rilXW-5W zxzA(ap(D&~mAK7)om=*GF)xpE4_j{qEgoxnQ1;76w%KBratE`>`VMVuFCCcj01C({tpd@7l_qI6xPQ3G71F}+gB2aS; z*q6IsWd%hNd;y;u+o-7h-=9Nct z%MnL9Tyl?r#3s4P|79*xrFMBhzESE8Xrf&PwxXmLGXk%2Uykg9oiHSWg7C}u;;m%}x?=l7!74gUjcx+mNaJPXY>QJ#Amo-cyd zd@s=lHM_%9X!bKWVWzkF)9i2bmp%t+WzPqx+~TMfbV72`tI|;!Q0@biaVzu-NG51luEVzNquv!w z3}Bc76S8B6?#1BQM)r5Frf0ED?`_9-KknrwrqRS3kVATW6Eomj0xQ}E{;Gk%?g4y` zlSRfhtv?fyA76MnG(G0MGGKlkzC#~hL(t8Q=+b=&X?VTZ@s}%HJH8l?!HyGbv0@#8 zh`u`u8u!_;yFp0L+hM?+4<|-$M?rR+O(J}mG!UPh{Xy!eP1)acG@dg%@PP95qUC7Y z%RpPNrTqH$8ni6K=X-F#-W=E=1xIcnQru1&)Qkr6H@qLam@tuXhY{XJDR$tFQ)(~R zeb1caGNxzYgfTtBM)<{MpfDuZS!xGm=Q5_~=E=o&>jN~@_`GG>a@o4EDvi7C}RUy|_ zELLMGYlC8H>@6_jWnDKlB(i*q?kd+Vqmx+7Mg5RwPun9D-2IFT(@S{5NdDen&<^?G8(p z5HnaZ?27@Lq7c=B9vT98D7KH@SE-flyBx)fJMb1hl4{FOhbO{al-k=pYF|@orzy3s z@&JAQ3$Ea^(_kX}@MZ}6Jrrh)BhVrpo?l!z7z*RIe>nBUl|Vdk>z(x?S(ME+UGU4@ z(rb#@!!Ww|LN}t+@m7S0LL9x2!j^oerLXfNPkvaeA|;04rd&3mOg5h|b~Z$032Yx= zG#&8hAHEj7u2|;k^#j0wUYD`Oif!TnlIn|0>XTHW0(XfUQY64HdUAHoKS~6l z3HBYkX*>yRvv#>+f6&AJiDIu->~9+E&p`)1>_I)iW`Z|>#Y-6-#1}LsM4^R3OCNa7yy4?ky!sJ#j8X^9Ap*+r$6-Ge$Jegxow_PWmWk`&ab|k-KF$E+YPLWfI)yxsKOBh3=#%`#0y+iIm*>S zx!Rt@@h2`);!1dt_auK3?i>-iJX!2rBep|R6Fqz4w$Cd5>WycUCcp(CZ+sda&csAesU%m zs|38@5ujlsx>yPLjt3ayGRRd4r~*XC<;O2|_W=#_Uy1S@yX)Oc3nTcT;Nj@TlEgwc1sw zEi%+z-pdhc(mrlJsXErm{#`+r4#}IU75_u5xf==I6`sFO|4fA6+GFPsWhYD7>1Wt^ z5Q_8}Y5k=`5Sz+%XvK={C3hKj_^2~G(BlFLX#J;xsJ(}X8&$#^auiX%LDVmR$o&vb zv6ooV*<-P*KL`|g(nsNsFVWUDXxiWG7aF{eR}w$vty+0;SPUe7#TF|TGbG-1P?9VX zbN)F?4!~DiN+l&X(Es6%|rZ+;Ru-PTO0nOi7x&+rDz2(AwnPkAJ(ydmcg`rFKvaB^HQdlm+2|EDu*@)Uwv}`!CAKO_qdb-C3xn)sd zXBllD?&8cHVxhxCV08xA8XUD}ya9Z(ppsFxa{DYj4aVBV9}4GDk8_R(!XdX)&ifnA zqb}!3vDPUbUb_Jbz8d{@9i*VvyjVgP`0Mr$rkI{pw^sJci_-5O-ha2S{lmA#fp*$c z-6fjX3;qyl>{fPR2Gq}>pU0|Cl$gm?AK$~lR70-9+{(&skpa_dJ8m5lc1e!dzZ#yJ z)(=gCX5qs0vfRRQ4;Dv;>~1b7^Q~fZ#{3=W>(+?%Tm^V0oX@~xu%5AOv0_i~0KZu- zUGRyuWwl~GZq0e{M3~KyNEI}j(751b@Wx+_5@?h_qXZfy&?td_UIJ!-bNsqo_6+hG zV!hr(Y8$^aH@S>)5$goY_;sAN&5w*}8y|^b&G=!_<`r3ye-|WY$s&TXvIqXx&5}Jd zOAcm>6)WcfS#l;yG_5Z21=)5A(aL`6IbLnP#J@W@zaKlSOFNh7e2k;y0cNDWH42No zhFVl2c?6ILk}e;Y6}h6Po>|!=1>BDEErB9?$(CpYX&L-^V+NFb_+_`P?mj~ zcC?xw9~s>|CJXc8FtB*lYWTsAIJM7)YIM994wM%u3%JbQO3Ha2DHTdesgm-LA>~q+ zl&ySp*^@d5Iv*5J?uMXZ5)^@~G7vQNHIdEX9zpy98%*vvC1{Kx=o6^V_2CR3UH0t3 zFR9nBO_J1doZ7tugaz#Mw^c$|8;`K5N?1oFOz49z6u5+G2X0$Gx?CRa9upMpA6~yv z#!}I5RJ8q#JYL(~kw;R$F(oQ^@^Cd(%zl4f4ZhUmOLU#fA0x1E@U~&W0@g>f@xw+OJxE%FhVigrT}t$;L}zSo;M`6) zknvt&u(s?#YrE~hJ zdZm46jBel;x2^1Hp7!1p?xPQ@_TD$zi$ne)0m~V@SPzr27w_umsL;`oo9yw!)0aQ< zR<5f6LRDH|e2POL@oV8K#K0I zjGk&39nr~Q6avgkypn{D9z&|^*PE+$&f@6NXwrkv;h2?PFsq1N5|#B?GR_oO7RF%# z-dv5NTFl$+6q;Gh^-H*_hOH1)J&yqn@z{Yi-v9#Q=SsF%vEO+>n3@4KWKh-DS3_0p zJF2QGmsS8qn6_4}@_SW2gi+{-xBy=lgouwSZNtOSrDr4_1`zx%Y7+cBRP}P9Iq|GZ z^HaDLG&iutisda(niHVMM{{B(?n?0MU;;H*SRAWRoAF^Sq-Y|5x(i#Z*s%uc9m!DZ zPY8Yku!#cN&ja+l0?JoFmm5IG1^~IE)V_2bK0a5uE+6)w=FJ6%zS-kKUVwS)6eXtu ztnB9Vby%qw*I*(=a?2F?u)KXwD;c8WC0+lh>VRU9sqn=L8SB`pc!Qk zj(KR_Mm@^`?l5LnW#K-DcJXcCBrf6<4*^3Aoa!M@A`!8|j3#<0!h(XFi4Tdcl5gjd zm8EF6+iP?UPIuA`ePWs4P?WNPpt)OUV^``wvjx`-f^imzV4iY_lsSv%LM|6b}y^9iktRZ?9 z9`_S{0`8(fh`>JUrv~@i*866lx+kg5F;pL&Gm#!aP0iua(G*Firn(6RUEHCuxMdsF zRA9-$-7gCZQva&lZ&ViE(_*KkVWDoPWESMRY_K6g1ne>wkVULYO7^FCKAn->4kHV? zd|M^tMWR(gZdF2FQ$qga0a5g{WI~+zW+&k_T!|>UlHaf>G4VcU~k-vm6$d z#k|HYD1!vcivlt@I=)=Z1daT*E5n@j?=((1HiVJ@Ab8b&8lj4H!^zKaB%29~y0UGM z%I5xzI4gL?5oWD9$#n}2Vn^^HMeyl7`(s!Hoi9)}FI^%kz4IwolKdDfTxk|ttk^p| zK$6)A2|lX~O7c!hvT_GUlGT6_l%!S>o;-c;CwSkV&+{**0^6$rC|(u4^e9lN>oXk@ zAH^$RQkGzrQ^eEI!hc+1vIa+$@yqzdP{^xH@hGQsxtu!dF-D{(Ki8g*0wr&>uLCQt zq-|btBwc4tMA8mW!X&98>3_EfmGtmhk@Ou;x{@|)G-k5JioL}HBs~kLGe~+nN_uC+ zMcORLr98MS>MF+K%B8h9^-DgDyyw&Tq{c4B1KxVrTDDh3{~YAXyBaMt>7#KU4_#ABNv%M;#+hGKRAoCq7va6Ma~$nRc-Zgo zqDZg?>D73BXWR{2UCtIOwwVV=@EknulVCzT#ZRrDHrmE$f~g84aF`)bJg$y3I(D$e zoT$eM9S{z5725A;Hf<74`ckR20-n7@@x*y@F_)nbrS+H zbIQxnhE|*|(yKhJVuxTqgjKea(5eWiECp$$1*N<4a8%BOx6sa?N9Rnq1;iwtK;gjq ztJ&VSA(-07EfyAvJQlQD8a+>0xZAL>BFAAt1_2VY0M_dUQF26J?~3Y;p*oO#cTp_E zJuHJj8_a*SV!6j)`BwnT;lPsUWjGKyg|M*rzrw<~9&oeN;|c{n+W?OSfYT?EyHCWR zvGuvsocW*6;QDPnxTMRH-NeZ z0GTe5Q!nLQj+k>F`yf&;Resdrs+T{41M%{UxJ;#njq(64*4+QTQEt48aNvHE<(M+a z^HoHv0erza`JO7i-Y68^1i!$mTqy%R98wysw;Ux@jpPmhJd=VczBtCY{N%I6b?&#PKHd`ejV3g~D%@kqKa zYQMWc0AJ?;X4!%mIz<6LZvc080c)h@AUC;_@Coju2UE>PhgB&BaR*b1C|w3Z?Ma(A zhLzpND;;NhbiAWG0FOP5f4seZJ1*#B29tmNR#*&f2#!s1}@^3 zy!r>b4(Y@+JR@4InCFJKMJml3*kZ*N@_-T|4oUf?ITFq}3bk5+y`f1c;D;6PBoFXn z1#Btc7YyJZ(7EyhZk_n~&xQsP0lb^_1J~DI0$rWW>MWhESfeG6szv~TRaw5cj&Inh z9WJ1vod5(3KkWWcWX|su_|1Q8xAmuF8D=?X<~RY17aVwWG((U)kvA9k5KrXI1w!Kq z(xNx+LDX@})yyIoYDlg>_i540r=9@60UG$*Iu+n|fLwe6OgsVTu5wP*@Ea_o zTPf^sJ=otW?9B>$Ujut+GVJJ#EWhL!;K+Pl|jBJ&8A{e9l&h-@*g@tPb4!v{^rpGeaq>XRYkZ zGVt=lri~4Wd>C}H7cIUR((Ta9NnP%H1DX3bVFd`|bMlnZ=tx;drjL>aEChhmDj*r{ z(OwKT*zh zMp($A)FOl7WIhX=X4irfG_~YRyk6Q(>JdN1L%ewi#O|kZo{j;P4GV*6DDA71mPvqi zqIGVt@F5w7+Jl7JV5M^Lf5cQ~%ynI9XX)%j=d#6$ear()Wv7R-Gs3VFaoI_l%yu$ehYO*!Qji{!=?WNELngUXI|!lv zd4TcHF6<#RlJiwv9`g3C@hdy&O zY@_H8wTa+4zgA&J@yAC(nqmjJn>nXF% zPQtd#Tv{IQKKCcR+srmk0&{fez^KGGj|xA#d;FZO{B&1-&NloU=<=i89r_W4D)lFV zpjgjlHaZb=Jx-XDY`N2Wd4p-kz8w}65?+dwnk|pGCNxs1X{proHPp;R-#0@}xZr%4 zPz;jP@KOtmUV#-_U!|F_q3Gue{oZU!E=sIg5XcgXkP$=|$t`-T{Q+1rm%RN;*vk=R zi*!&Vuf`+3d;%^bcD2T9%zo}kbCJ}nqBWBkM16b))aQd`PS*)07z2@TVo*fBpD}=F zVyVBm`+MGeVUrB7n}V&aagj$ZzWc%RB5ojZIs!4~jSoq~&qEKV7iAsPOcjtHd)az5 znRL5{bb3TA`4Yf0rTG}Ooh#U4#b)z>@N+IISD)>;y{{e5gVEHXVp5~222RgtoZ=D3 z@cdM{?p8d&_){3{FB1}dznrdt?vg2VIp<;C*k=+ZpS;r^Y`pwjx>p^q;IVw3I0n?0 zC!$+ikt%G3xlO#V)|})P0OTT^&cjSsmpyh&wv3tOyM zEf0|495iQR;Dfx7TD1v3WzNcVZuQ%pK);V<#lpH+CZI=-5fGTGw2k z9R(R5gqkg+gz{PIKkz=;84yOg{^YuE{-OTl!tjJJc$Vm+ZkDT$CsiNcv&D+-PDQ~W zZ-pTI`bgKGY`|mbc-a-ag!CuZjf9|Apbn#;L*Be{2C%V;Jlg*xU6q=z>vxyn)V`m7 z0MpE6VVWB$YwoPS&5c*(W8ZZxP4)y5m0yxDD*8^ejTUw+++$%5u@-f zzX)Ln!w*mMhE(NukRS1?!ge(+0L?x)+$oQoDIC50plbvP<>*zmSg~Ju07q3&lHUkI zmv5!M-(I;+Dnlt9$(1kks5Q)2igsNTrAj~L@TMO1OWTdYbNrBVsk?_Z-5O{qme3~hNEws>pZPyawdK)?HPN? zVEU#tO4mYxmJAgol41U(lAEg$-TYs&|!yBD$r`>^tW0C^!w^N;}PjLQ7`Y#8mQ-#JF> zpY(H_8^>_}PP0IZj=S0@#hFXUC5Mb1LtvKv{`b>g`h#Wo`tF186INfm-(~eEW%U!b zSh2Q-)p6fDtTI?8UIsdPfxrKafIWw#S*F)qjT3vx7pnEAaWcg6FI}ndv$vv=(Bp91{U3_EYS}}3em&h)(YsIhqX@IsyWR zCcN!6b~Yph1`w~jM@af%hO56}N>a9xbc7-4MU0R6NDB5aHk}Dm?ZqysOqJDw7AF(^ z6aD)YATM42ehZu#Vj#+`_V3MzJi8sbpXMIeQ5y>-euz6$#YOY3%<)j<6 z!4gEA4fqPwR9C-~jIV`*uPh5STmc@^W#d=D9G$#cKRrG3zkiqxoml-j0d#l6UWL5? zx-1{M=^4;jY0-%jb^a=uJJw+;&Hdr^%(1x`F*zdxf*U_i$B!ha+ulw_zzQXdpT6ii zIO6;LzVzaI9_cn*TN2&(OhVVR{){kOtB~v*TyrwuItjQKerXx@jh|&6Jo)TSam#YR zGlM5rs$1U77Ay854~P`qkbit`>DD`ghr=IdQLEyQ)xeqLk20R`t&a|?cF-|Mo@`6= z{?_SGIzmml_qV#60KV1tx9)@I2%N3Fzt!p!4Q=7?Z>`iYm+Aej`(R_p{@eEcR#d49 zj!O)fD*CDL^fOoWbA#$}D#@3nU)8+RH=v2qo)6AEx z;0;cfs1_%|{QkC<qCNybN&?-_jp>o}zR*`tKB@J~5KSe1s2G86ktUQ0WtD#C| zWhGniei{#8O?jFyAS^f=-|-B=?eOP9_T6sy+%Q|nx>#1bU|b2;*|Om z6j-3rXrsWs_JG}~z&0qbE(X{sF0iCNu)KFW5Ry0=e|MO_`XgIK_~)EQTJm2L`M+h$ zrgCi7JleulhT~7t-=k*C=nlplkcqWNTncgc#~gT}Dmr6Fh}n!epar`nuSa&{@h5Zq znMV!+a7#@mBiszGSh?h(4TkS*&&mBe?Ey$H=8{$}yoq(5?4s$^dE9W5l>}E+ur}rp zLmXA?F#Br+m;Z;oH-WEfTK~q=YDf`@;Skdm1Ti04#B`ljTL(c<6;p-wR;VFJG$;~D z294z`$$z>Q;dDT-{)C-I6M2C*1h-h`@Qe~fAXPguVJre ze%7?=L zaRfjt$cZ6?RUfg6;vf4`1pUM+@C|Q+i^L)yxYD)APgT>qSYk!KVgietiGj#(kt0D` zVkEEzDpaNs3{8j%p%V-8gu4#)(`1o}Ap+2Eu>|@R9`vsi`n3vuzJdNVLSH}hM!3%e zqpTo9!mv zh@6RvT%I160*L%4Dl0_JQi%NHM^xnHD)JIXL8zU`X~s|4Fq#UEtMs$51mcC3XGD#J;5d8(}LjcWNF2J1a6(z0q#fz zC$327n8J>iL&qS4s^d^W#2q``?26Rx;M!Nw>*!#wS?u+`m(uq7{^hBAoycAv06Iym zxruAlhoRRbNz7&GM3nyflDHHxL4wzHCV?Bnju*Zd0JlC%|B2FnAKaR61KitSa1ywA z`=R5rg5d6F=`sHixYyuH2aZjGRnA^l4#Jwm(qDVhl4j*@aan4)U5RLlbC^yLXFmtH zH2YK^fY-i29MNZ&x^8e3Tns|TuULY6cL0cPa5_5mIU;usvnrMBBZ!W{6@X^ZxUt&3 z8x)pa2jG7qv#DXigURB)GzF(kmV!T7I^Xnq=O>;>=l;>*EAsQl@c>f>CbjJce|gVZE-Oz9uw=Cc@@QyEDh(n_SFllU5&Y)9L}>7jBgY<#TR(b!=&{*MNs@aBtM z3d@wj`&eQ{K4Ah1zXSHJPL6d5lnGYQxux-Mg8#Us#s4(*18MR9>RiEpZx8HW5S0pllE2C)d3=W_EpG=mh8Khb?qw)C0L#<8;^$6$zo|CzFe*fXva{* zKTaLyGKJyvaJ1rK4qqLgbpUWa*rT&5bOy;r@mQ&k#dxgHM{)b*cxI4UhLn~Pmvl~1 z45@wMJW-6vP>jiX3D4wVig8K3F!tz+T*WwB8C%B^D{>zbD8{>3E_M}Ta$+RWt$$oe z!1HN=nZ{1qZG+eCx!UcG+U*;r+XlB=-K+Qy*gjcBwkbQ15q^OWCI2}~4tq9qKGISr zTqyO>oulX;r|4d5(0vOY&F26Tzfz*W%8@#}m#B#ABPC~`SN4Vn{9M8AmUhsVTG59j^7*T@fyBGeJ@ffnno==@g`1pqSh!(Yz;jI%5 z#mMM37E%?MaiSp!jnug4D|J>#hHwbSAxY znr*CT$v$la;A&J-#}Y&v?MSgtaI(A!t7j_Gg<8v7$jGL_N>d{WA2*poMjv|LLZkke zk%cV*TmYM3w_{ew8A!k{-85Th-`u19DW!cIrTu6_`vBIJefpl@{sR~(fq~Bx?3tLy zvHQS6=I+}47GC$yYWLe}_tQ-GbCSEq*Q3X!?-9X62T*j zhs!7aKI|;pzHu1oKQJLMMk+#pkuHy60!B*l1&lQG`>fd>6bMlR)IR)4StDT8e|ElY6XVkZvUubSVO=FqFyG1glyxVv#ERU&1Ztjz1qYv~ zQ=V@-Ck-v*F^q-mN1VL}I9|f&Prl)#Ip6005>Te0eGV97jEJV~-j~R220S7Uqc`W( z-i4Rt5wi_tM1gaZ>k}*Os~!_2&1+hoqp4-$Z@s|9J)jc<{c|coTFP zSJ{k#cP%HdRZ7e#5F=dEvwg{Za=uiDm+U^LRikt zD%^1|nz%@;ifaLY8K=t31p+$5ecV{ycS$Hw^sOkdw{S%NCUUe6|DGlY+Akngsl(tD zMWt>W)*}_c&Uci(epo$Kz#ddJnh^r52ld3h8>s?Ygl~yZpdCXR_nF4MNMVZos%qxL z>6eORaBQ7aqx?PJ)uc5Ie_3KhrZRyhU5sT$pC%=?gnd)($yRKToqe#E88&`@QY|nx z^kA&3Fg8^fhZ-202VlG?^qBJo08%~K4Hs=v1P>j*mty;$XKq$* z-+4NO_oH)Yk1B@QN_I6o3P@&^4&i)aP&Oo~S(LH7-+$H#saPq$5PlESLhy|(RXa*l zH4$pY2mc4jiZt-o1bohb2u|GtU=JGD%`60L^F#C_bTGsh(X%-k0&QskH;b^^v&`I_ zH1O8DXX)WxqQeQ`t&|qtElsKUdojLCa*8PQS(oej8%S&iX?8ZOmmz3&;%*v{Q=HT0 z9TJn(#HW4J;QGxy z)fxQ25-YMX0MTzAj5yclZrqO{+wTT1@CF73Mw!De4fLj;DaK#?-h*?#Z88Tq{zk!r z4=Bz7&p3@gt!?G*LX2Rfh2y%8R#bOli4~b?P`wKwqYu@AOJ>w?>Fp+L4&AX5#HJpw@7GbHXQoj>LU!O-jFnZlUrb6u0UMj3MkORUJ9Ou(4cpyEEpB-Tc#ABQv~E-fd>G64w@ z$2n@jBf?hAP9J1q%s6|PWT8s-CDC!Rrr5lL5w%f%lGu&e3sA#Z7r)FxaYzL8hM#Ti z8PFTZx<=ybN=#kx1&HMf?$UBhhn?ZsTs>-&D;N%`h5ECA`|99cQ^Xll72YPSN~H8Q zCIDDyY%Q=NG?%~aZRK8F@3QU|W!()du_C=pz`6w(ZvCw5XYY^)p=4EWOo{~{L%#we z#1U?(etE;>5sUhK5gdafFs~p3xA;HE^6wDG(7XbyXgXF{v8c{v#ofw^?^$9+HZrVu z714p86>n3)9aiKuIv)-lcH}kkSE?zQ3Xo38=npzyEFu>jem zGI~eY+|li_6T>V0t^}o}D0O*=@dez?if{gOX-hYyUh8&jp&b=$1823Jvmn(W1Nvh# zp*j4~UQsPmJRKUC{Ch#uDuqK^cpQ3IIkc^EXc`kJ%U#e%KZkfkCAse$^i5WXHUJ+o z%hCLg?ofos`qib73}h?5HQWM9J5{8CvGo391mXA2aYg!sBK$E+tjH<`;a?H{_z-p$ zdmYa=jr=|dag13yq@&{c{%iN5sD2(jT++nDj5y)rZ~ej!;W9m9V1IHqD?neA{kvYp zWYnvejIe{Bn#qoQ7Q!L4O25zqds)aF?^j?D$Io1sF&Xyh>&h9zoAo^2yrI0=NO?1b z3559(=vLlf*se%?EkL~WdW>Xd^MDv}jzLiTCKa1>#7LAgOA)_0$X*-@MV!b8h5e>R zDC|Rq6pCI#O?p@fMd(IqFS=dzL{9RMc6%SlBV^pX>u*Bo6=%Czus|ujmL*nXJ`+&- z1C%I@7W}?F$3LvfX`o3dCQE(TRY16_Lqwz3Z*|4-hVQ#T2kS8ARH4{6-XUaYG<>Vz z#G%q;z-ahLlPTki>`z{d$pfm3O?3&|I--y-2p*47BWwi23prW61uxSzG_o`Bn1eof zO!Vv%%`7Y6Di5759KF`lon5ip6>CXXtM0sHbmwMp%g52ghv*aHBz-$J3gn;@&eEQx z9}Tg`Y0p<_&poE+Jp(OwztD_WIsS`?j?2Cr#fM2l{@Ad!r0f&aCIZ0Ug86m;JoIU>Lp$SO+LEiBRB^q0oY=e$jdp8EV1{{ zATFrnYb&Vv9;mMs)Vm651p{h&0MuO2L^bq`8JT_-iZKI;^bRvz;8ukYew&BQw~Eb! zip}Rt;2!^pNwJUcpuiVx2Z8T}C^MCN^vw^FznoT4D`kc-0krt!T_+V-s$wdm1^kp0 z%4mU%!-+zQoNkStj2?~SVY8(Cxbb6~YK9CI?9JXlgN&eL>W>s&jP!VsugagJyx7t3 z;w8}O<3&Q^7=RX#Ku$(QnN}cvZfF7eYDH5vKlD;@zI2%Uwf zA)OrmN#|;k>Pcn0FNsuez}`Uvz#yqtP8CvToet@$FI-DWJ&Psyoo6N-|FMSTC$)*t z;IHN)HMa}!5z3d3<0};uMYi);D z%SYBKX9Q}eSIbA%Mw#ln-CivpSzF@O_IR~?WNpl=?e%K;$lAD9+vnBtk+o%BZNJpY zEew1_CG}HrvZYRV!AHJHB{mojdbNCHt*x~r5BVXTm`@lB%j@Ohthm}LR0dtGM5L+W z(K>cEJP<)i1!|B zTn_u@Fj3Q(r=~MhO(&_EivB`POA!0{)YS1#A)f`3*MmZWwmPEqr}*KcRRZ5O_5i|T z>?Xh$loX>{AQbY!SsV)-{`)R`4f3Nyg&%WkU9+8~{J5SaR^&A%;72j^;lIQW8Ft{G zW5M}K8?fhiT+4wLL!Nha9&7Ah!$-e$m4fX(3eHmsCMyL^hJqP)CsB~N4t>&V^fCo= zWzD6>WJJZfO-AMpoyc(R(7{5P5o1U$w?BdBrerWD!ZEEtaCPn>!rWCo)LIm^Z4|Ym z4QemT)EGZv+pQ~)qgp6y#~vqd1AC0!>DVLLm)ahK=k5N?dgQ0GQm;q;c5T>tBz!ZC z5}S^e`u^k>bU+E(<-z5`s!E_>hL3BNRWn#(MXq83J!}IX{Cb$`zN=YjXc+^HL-v=< ziGt647|7}O8s>%XFZoma#h~i=EE#Fr09bX~ayMK&a)XAC*@+FsDO2;+$1x_w6W+|N zpP5=RFH$p>2GTw*B;LImhmM6n+9VC66E9sdBT}O}Q$%lC(Vx+q!!+8wo+a>KOrSTF=+vh-u5sa}JI-EG*=1)9B*J-rM8bdc(ZJ(A_57Z#$u=z`yk}-Ch%H zQ;OZh#yJO@Ag2jnin|R2@>2R&I6exrPxtX!Cgzuq)K)N-7;G@ zcZ^Sla-2fB)`POOLJ_!Dx-6@*cXBj=5! z@Z=|(q^Nvx_vc73zBmbwva9ipC_y4QxagK>oC73Sl}CvWrJay4j2;#}SN6t=H5#J|f1)F`^7052yx=(=KYWaVfw9|QX!&tSEc zJJX}67F|FUPF9L;lAe0(XB(0!I+M)9zD)O$+m%l@%uD9jTEqIE9oqjiw|~R@qqfe^ z(k++yrer^ss5_k(OCI=A?ROTIi_sJSs_(o(8?vF}UJMmrow=I`BNs=ebphEo>;=tf zdsbVyUmoF_lZ8&e!>?IlMgC%Vcn&1$H>Zi_kYlHS)Ek;eYl(f)!Py=XEQv4EgUe{2 zmo3DyO>xW{+H$*Ex$7t}R^GCeVDylO(dCNKV~Wv2Ch(^zng9MykewUzs_*Eu);qVw0a^O1&kyL+8~ z#s=)%>_wi;4Y}mnrn6K91I)NeLHO`*3&p>`&SgeD8gP4Lj8ey*X9G-57|FI#$Nz16 zmVyjK5k(5p$NyUuWPtxCxF82sX4DWvE740;bBVE>sG)5Oa7uVsEk&`#5er3XhUR?0 z<@s8F7nB)yzUx`YXI@{n^JF;D=BPXs0Jho|#~auN?Pc-HHK%cKEFj9L;!CpEpG~OpNbQLyDT0B4WE(|r zyoVrf{|7VUis0!6!82enJ}2m$-f#lnXQ;u8&U7^x5JNOLmHtv0Reui$aG$^LMg{H5 zndg+FTFzzE@_{t>pap4WOU5|0af^ot?$=pOP#n8&D&lzXFjsZHVL$kNT$Wgo0VWW~ z9LU#4ZDKEM!p0>$Tl{M=4#ju-^fez^Pq7Dl*L%eR=PnPPYy<}gYhzQ*v_*#fg2~O<6 z;SGx3X~4A#ICEn^eh~NgP>K_q2*qc3faD@WE4xks-Nyugw)FtfFMEzbh%Mq z^8+on89@dZe1?LX>4D>q&p?nTE4Z5sxM$CB={iZ+g%gQPg~5Q?Z!(2Mq>o*ouvc2T z6#sg3D8)Z*EELB*6ms~!mA$W`aE?JC=Ap2Vtb_zx4ODSKwI(A1FE<&%r-c0hp8^(o z2V_p3>G{a4vjRidQHs?n9#(nm#mX*FtoAfm{R45I3Vh%Yj!q+L_Hqm@;QzJ5^}P;x zQV<<(q8*l-4iE7<%wbPxWC9Z%_YhNDv5|~>G54szZ+Y+HxPt0zq}G2+KxuHiGGP49A~?lV7mPT_28dT3!}!iM#|%fY8k= z0-;aQQyPS36$(O~9zx?4q30E$ZsDK2@(uw92T7k}J@pZzu11xLU|04YR zxZKsd3iJy?zF~c-(4DDE8W>!*!G2GF{#-T?S7Lm#!;3 z{QY2;hvzE~S5O{~Wdc*V0$d1D24|A<0R(4{#ym zpBoLnUvk25z6bbijB-hf?x3@SbjnO0Oy|lFd0WZ(V_dcG)Mq|TL^vOz}nW2YY2J!c_@9MC>^9I3Ek9x7bRWWdXg(0kg$LTe~X!+5jw)*`>9mmHMsvy zNIfet%Pg3PL{v;+G(}0lEf{ENAOQi5RSLeI>RAA4nEE(iw@knl z;P_2aw8at~lUda}ny1?8lg-oVd5v5>Hn}tM8vp6#&dh6E4jmb3H z59uyo?41qQ_|pu>HTDA!ziafyC-1)9hJ`7@Cnp@>*x*D@TdC#cHN8YdVTFH~ccY?8 z``i76_`IeYhc`544`*5j{JQv$oj8o+N8X%M!kTlK;c&xosjHsNA2rQ)4{I)_i{@=? zelDB0nC7xl1X*;VkmFbfQic~M^!NqMAhEnAu8Xmr?Fg9dBm&t=eG%xFn$Vvf@kNJ~ zcB0I5d3EX+!uYY^P>qtPih_kW6rfI2h}v+T+@`OLN%_ifzMLwr1f!&TRuLuKZGTq@ zR|lIhOzguFD{>kWDB(}AHJ=hXQxzvVU2hra;!F&CsiM==_xaV4St&OufO?w^9G3JW zLnZacOS^+I)SH=1c)axd%0lNOWiFkYDxJ@<#EL9p0y^_tI^k%ei5;Yo1CFLmy|g#Q zC@sqKGI0}hoIyZhCO`N25(Q}I0Zn=7%J7%`3aEy19D)V}TE~V!=wTnw)^4O~CcA3m zun?}#H11_%F_L_3Y(ls(idis(yEI>T_UV2u&$d;beajO3{+;33dx!wj=*G<>pd0%k zW=tQ#rHJ3!h`XrAI(TxYxoR9#f8m63KerW#am4CIQ!qz4s!i?D2TJ_LDvjUx#3)3# zgZPcyiCYZT_A>m)PDDqV_-)>Pz~4aGDGijH4?sJoQ*E!m2a+7WMFGohIam||Vd9J6 zD`{ya3U~`qi5G|GezI?Bs`gkqcy)xgHsGOiu@nBn$bo<=@m_VBACPED1Na;FLw{zJ-&c*OktK-3nZWT}iB5e+T~ zU_06GXa=56@hBxjz|-TE(kqxipC%#t^z)QI05`1r3Up7=GCrl>!9phjC6mFDu=&!D znm99UrY6QrtI3owGuLFI%us2J7xPcA!5%>sEyxxyw~Wc0qFN;Ow8`QhD!3puqIyOs zi(Vg{FAG+~_KDc208{SR+f}qP(I=Sl6ie_sZA`$FZH{o50{>dUrAbHfr=bUO0nLW= z-ptv*!SGrUCDQQFE{a-S>pp~N7uUMeu96HfV1MpCd#L;gu@{Lz?5bwx0-ngkLJ6un_X- zkaUiG+_z8BFVA^R*9%uvFB(dYuE~X8s6$Kqmo>10$>5oyWVyX7xD1zAQ%NBbM!vkm zOSs*4m@)70(H?Ey8OwLNQKIiO=S%`OYn992o z5n*v$Skp5)cDZQlY_mmijpT~AS%J6FjZwgsU!j0&pc|urq8(7cSqw$$=e41+UjdWj zC&&HQu}9Iq96WjMe=f^0>#IacU(5Wk4MdkLE1cY5PnVMq0w_2cWr-Czgb6tLE|Bzd z@}JTQ3nG~Df+_4EfeD;|F%j$TDvMPu^BiYqZoQkji|U2_KC;o zHZ|gqJ55Fe)PW2I)Q%LWv@tR9__yGrAoHHIF+Yxmwl?zmr67tYyLTVcjz3gEp$|%` z?UKkl5h14ZcmaF(UnXxAB`+A%KQT&Vde0uNOnX$OkF&&ze9iBWgTk-WD~cVzEZlShNrsVM9M^sK#Os(79f=geuYs>>l-lx@byt z?4!XRI-kIr{L>?aBd1JqWp4|y*>x?3agJefB&cKReKkjvGpb^?8E!dA8T* zLhW;o_W6+M^WlS%`!qjD<~Y0Se}X=32HvVZQAzyHE%o~TT(s2rVF8|e>eR*xu&k4* z@X^XG0WzE)vU_lmPJvu(Luw}`$o!C1IzQwSM@jOSqhvSII8<<~D#8btd6CE2iMvq& z)fsDmyf-m5kVXKZ(y&j1l>S~xsl}xv^j@wCe$t-WySZ~!^a^TWE_p4)w~EFzU>d|Q z6?OZdy_~MX*CFrB60Imje`ba<5+Mh?{GlwdA`MKS72m_V`Lx0vr=I;0qC1K6Py|Z& zsceuI5S>g?0{*}mpxB)9t4jK$t1{sLRf~EcgO9WrOdf@589N-Q!E|2J4Jf0p6&6+U zl?uK>(GM|&RLYqdG#Rl@+hioH?KhbioAsHDSZA-vL{UMJp)aw`Zc{F{Nd=>AcCgTB zm7`QE>J&e(>1S!A(Iy*<6X3^A75DLbh>Y@@UJq&Kqk2VWEV@I0dEs>>ad$jR#s3|| z=b5Q-zzgmC2LfLFPU7yazOAeJb^uGP$eB!_Z;c4Fefkz0f$sVqYB$7KC|vCV`sT*t zB2$To0t-t0hNUG`D6wToF^UY0pF)mfk*F1^itLq%OCEyCeiu@^#=E3$t)#xj5-T#q z1f*V#m1Ex!BtPm6&m)=z-~>wFP_3S4nxp!CD96xOJwoE^dC1W|BvxjIe;|R6_8ra| z{VmAR1F>(l4F>>77TYK`^owm2noNu;#le{Gh;29noQzz~04LVrsG(TL5a3YZ#r$9$ zVtK%-ALaH)xI_3*9l3~+-43pXj9kn8CXDPG=Q46!_LiJLt?j z*pTWBRl#*t;rbHx#e`cUD(GlR@IIiEA=DSM0RpDTU!RYXoIl1JyXLQ;4{KS=mQ^a$ zUv)UiYpO#_Mw!i$dfOt*cZ>16E6Wb2K-k7rReg~$wFm!fgq?}5mK%x{<%+`$sg|E1VZ;b^j`TL-xY ziTJ+{YzQVmK54%X-1f83xQ9pM;Y#BXO5=Gi!z)=A>Ov(CxD~qA* zbCIed+%QhXwrfc1cGJ3ztpPR5o~lE3jai?+Or;nM=l(S$IRCnvE0?1c=am)boea)9 zyEyCawm|5$`?rwGy@04jQ3nKEqwtm&!}nLDJ0nh&6GkX&avuYp48F(|@J4hOdQN!u z@jFZK#VQTH_(V4)ywMIcCZKQ;YP;X@CdJfYWGB*GgFhh+=sk7=Hzdm+gh<~9 zzG`a2e*1u84cOZf_SZSyPM7Bbn=y|4QP4fwL$_JctyFX`G3efppw@?O;yr1lTl2(c z37?B~P{?c2pG`8}wU`dK5LzM5u})Iw>#Ocn`*DoOC$EXW!AdpZhivnGex*sKZXMLo z1brUcXsKhaZRpybw5xui{u(2m*OgRF-NAJAI!D7`R~>lU2?BLX%dfkb_Mu;w!kQ06u5MHB<=JZ8S<3_$vG6y73=jMP1Z zF4koXv9u+br#EeDpnPVqAU33rZ#vAq&k@*DQt81EkIa_DKglPyq0s&qMo&tcO^ZO^ z(q?cwL7?UsdJ}2jpzHM8fwz-6egXPrR3Tr-L*MB(?|584NN@>$9iRK1DE7xYyLNbk z=vMZZEU_Z_yQm#5fO`29I~b~dyb$KN4yvyV@Gtf~u8~S!)0)OmWMd&# zq1n=rBBe*|Xg3mRlhmxxZ51`z_YPaRRB_5q$=N^aBss4s#V|}2p=xv^)vb#KJE_W@ zhmzzDsV8=;(VXLmWMCg;KN_&JKBQ{dFYl;&7WT<~(6qMMTI~AoXzlHq>;@tsaqfEG ziWrJ_aux1r6~p!{u_8w@ffy=ba%mJUe}MiUrk`d=7kwMPU$Tvei@F7-N0bzeP?##> zvvT`))B&#>bzlvJLgBEfeKp)MnzPFPz1{o@AqHG>JZ?=cnxHX{r4bU=Q$7L7@I%C{ z5DOg*X@HCc5DwlHis}@mP3)L+wq^ss{KoY z==EuUe-A5N3gA%!e|LL_gU;T;a1L&o2Hw!7O9gKf;T`9~dkxvt5?ioCYUZvDwOR`L z#6*9=VB;}&X|@TRlm_xOVt;0vK(8SsRm8XP*JAj)p+6JxeGD~1#5a*8R^&t`F#MAc zIr7p0V_`IpaWIR#7qV=>c%2Qm8_{?hWmn;DQ8CTLk4>*8wF|BFkFr0n_h)> z6qc~LFaVh-S`_D+76qomLWXkr$dK?H7Q(Oc6L1%Z#x|-gLx&CfE1|k;JD2Lk?83@^ zfhAUCkO`>X1`6V%IvA&1{RNchR=7AS5%3UM>q)Mw3{Fr_}V5^Kxo z69-zKK6MC1+07@q`cx;a&8`D}4S2AKjf_4Czp$0u6-j}~h)D8HMnsZhGMF5C%c3F@ zn>?mSSi{vYW@79*%e*6U86qZ>3!BL@88Q+k51JYgj*Se3)6YW215BZ_;Z{ zqHpp|nAl@7vMM;p49@#Gd?f2kzL0N{g{3Vyd?Xi3(G(2rmR1PyklF{rPRW^Kj=Efo zbs@Io^HJcn3cz;CXHQb|Ph;NP4^q`*F4>rf-!P;p(&!*y%Lbpyq9Z-eXc z2pxTL2paK(&tb&9e~^7ZP2%j(vDX+g{ia5=OTsQR6Yc6XHN|Y! zV={&0em62QaIg>>)gh@_ds!WFgGS{w@v|Lk+a$#t#y&+O#Jr|UrN~>p5}zXI19%zX z{SPAiw+%wo<@?V>wI^=lnk_F1f!Q9$5-ZZk1ggC&h)Sa_HJ?IV?n88vW~v}s5;|Y_ zGwXlL0HKuYf18A@|G~AjLlRkk;`c~**dml!FMKM@YL2?hI#ii;5lgJdBTT@oe1zA2 zW~KT)(yP!u6)ndV;$RDJjbU7XUNNT42Z*~q0i)xHFv;kK6u(Cra!DJ8Fi!rHj4$c? z1Hy-2z~punD2 zVBZ*EwEKeh=~leUkA_6t08PEmBOQgpfvItjRWAMFFn3*pJ~ zUgu-TyPT0z=;w|l`rDN2J>t#ahs4#ka?eU7O!Rv`J5_MPZOreOb6P;+yDH!> zJiyHg_pT~*Zpgg`-FbvEI;B6hf7I33;HQyyJ`(c!Jt%V&$|8lbhJjL; z3}s*kQXq~VYZmU9PJJnmgG)TeNRbc?xM&dbu0H+ z5W(9Js#@e;O`c5O9D@W)xYWYg3tVS2_yf6ICX91dL-ZV0+$t>^Yd>n{q=C;u0!_ddibBsnF6H-%Qc%j1|KL=Gt~0&3xtM-l(?*DdoND7D7z7-%uBp$Kz>aY( z$&rt{hKmRq>cCadTWim7y5pwDxD{xwv5;96ZNoeE!XjOPygjTrt=S1lbk*<))4VpU zd8cVkkDzY$d}qZpj`j?NdQinss9T!4Uk`pmw-N*uhP3l|^>_8!-u9JXcU2rsD(x}r znC`fJg(k#yss+G-u!%#nRQhO&}CfyMfe(RQXt=uZ&Fz zWjHT)4iD33zbEFg&*rcKs^qw?C)7L+WQi4-%>?H0+*Zlv5%}tQ#QV_r9Wk9xrSVIO z$5W0EoMyVb9|8wFx2fNvR|PMi(rL$sE8i6=pW4i&@^z*16_((B0VbgGBT(QQAD*W= z!Q^nfTY`E2_kg<`OBq1~Q6E@f_Y2K&vUV>5Ls3*-T^RCGH;ZA9Dn7IHe2)|2UlsmR zuX%~Oqu&Lx;69;IOI-KA5pURU!iS-8*r)tK)3eQ2vbqOO{==`95VH-KJwBHk|fD*&%ZoCu}>Yi)=x$gr3fTaK~Hg-|~cr!3sigz{s)e#&= z@(xPPrGwHSI<^3aV&Li{8&)@LPqlJ?{M%w?5%g!qgWuH5)@F$nnZN|5`w*gXpXs{u z!nfXmeMRBs)V|32z{3fUM{t&90d0ID8{gB!R)25Fsmt z>p+aA21S^|AD0t0EmMP$y?X=P>+(=^jEa=H6hc~&y^Nc+aKkNQRFoh2*!=lQ7Suf zl&}wOQ^KWBMN@{qBw{wg!KK2F9G8{FEjT>aMfXZ%{V;k(hS=_dR0HWP;2ZhIxhdXI zzFsbT)d=W2CmP!iuW(M%kItygeWr5))yVX3=v>e*3Tf)w2A}Pa`5QDOtV@rLt*{R1 z@^xw#pc1<31W+LgM5WuHLZ9UDa*i_*lqfRQn*oN-IF=06sYxiL;T(N;bqObBY7+X& zaF(`(N0A@DD*C$9hOWL&Q+ z4|7_P^soCS+r2+b6`J&;2WayS=W+%`T_0`H7I6@H5jTFhMG8)AH1()OPDq$ zoQ*}bCWA#U3}S47nhItrO{Sd9Doit3urD_mtcx}lm6=S8nYhWw7lxS0L|Ic}GKl9I zi=rlj2_K$hh+=#|U(znA`2={~3P#~>Mkz+dMkM+PuphL6Ed2z?4F6~kc(ij=q%~EY z>^(lS8}E){$NDYsGyl8H@DK0u(VlPS7;<=)NGUwq{|+)8m%u(^+(Eg>Er8;6z^|+}oVs;3HZQ z?2Vp+16dnV1YOQ9;nh|)Fu6lA*bdFin&?CD?1CC0P*KFAxsenLktt*cb;y*qcwbex z{5N}9dA;T!Vj!cAaT$lqTOS#JLqSC;ct zmJ?WFMNVJ>Sx&;7!mp5lRgHVzf-XJ^9e>RV7d2u zUIxm*&a~@qt1FrJuIrNdk&^iYORUHjOhD$5Sg=qsA(LogJs3JQHf;Tkk(&tl??g~= zQfDz?Y4_t^KT73%r296!i#hVr!%iXgZb{7s-3LbN3tNS}AcH4f=*0`F)MsL@0tACY z(hARu#7B9oNGK~-QC941STPyW^hrFiDoqKhMV;pISYY^g@Hy!=*X#Cc?RIVLc7o~l zcd*Uh?c+iq=3>%qPEbFO&~8`vy8TwWEz)lHG2Pyl-0eUmQSD~m4JBDMxRb^#q9Yds z@yk5Hd{qy`4+>&^1+kX_v3meSzy$Vw119hYV>*~X{k%HB_PJl*dIRqd~KdFxZt09lR0Gx`$k6c+{n?3gxL%ihg->%|(iar>^Q4Qs_Z z0I1v{XU#N_df<_l3epuWBU>_}41YpmALj0gaIoxMH3DCe59${FP4Up)QqewM(Z0f z>Gtngp+n=~lfvXf)^wG0Z)NgHEU_Z3OrRS(f`NV|UDFUY$P|lyaR92BO!-O)zC@-jIM-hRiFZ!v5t8z7ia{Vv6s|9=-=CzMCk%Wd`31 z5Vk75W4aTZubFvtj@|}Gc4p~qaAb2<&}0@oA#7R212aXz6f2nh4VVpFFuKQtKjTEh zaP}38P`KHXWadbv?*Kctp9)Pooo0Zcf- z=K}Ei)PQaM{J79JlD+6B=&9O$fp$O6bU!}1d;LjK6359b^oyj?s5pzX_x*fS-~y_( zXnR+30az~9u3K7d*SwGHVBp_?_bkt1SxG6ip6Zix|}?)s$-SAc~o+i z8H{6GCN4p}aEm%1-isY}n~bd4c(DljllTHH+T}H8-={fhHUNJj!ST7KcCMuSIk&?# zEUlU8;wugm##_fW$jHjke*=rZDHcJq8U2{Z`;0YQdCyjP&t-`f>0$yiKLD8e)G6po z|M3ds`8-B)%CjN315xD1Z=?mjc<;~b@7x_&q}mfX=l35N?2)M&>Mn=oD2M*Z5-YNp2{;tZP3BOl{hc47 zeJWb6f%=E+?_4+^+^s~&70TTd`g*2kO9=*Yq#sg6+^J*`)irzRflk+#@}Nor^{HZBprH%Vdp`^O}U?XhKYA)#8r? z9b{w;d5|w7BcYUSGBLV^ev=VT&}TBThTLm1;*SJ1QEyP(jT%zii8R2SDd92Ih(|=r z4_M9Ba()#>lwH9RD{=u7X!%~tCu@0N;&;pvix^2W-p((`*DG^L*M*#Mqdf-q)e$Iidc!QIH_|b}&jJv~4=F=<#om1xao;sF z*l7U)!G*{aX^73lpP;RLutf`gsO9h`eLzK}kGFKNsM&x}Vqq;FRjUq87~1a>#&_kr zjQ;~~gYmDi1ow0?0pq^~Z+(nUynw)&_>yR%m>ic@87gEPsB}q!eL3`rizIy<2S^%8 z64F2_39t`TpOV+axb#teBB4PNo;}ZSY$h>ibul1wOh!hd{{|MXgtP7B4q@9@c`n;> zM8w%y%C=1n+a3j`ezwhpLL}b%eX;CJAuar)hVVIguf*C8{rPyu&uaJE2x)~f)u9WG za~hN{c}*X1Aoocp`EtNcBM=$pJ4{A~`F4|$VZO~|VjSjMO-2|y*JOA(U^AXYU-4XL z%0;-f$WXW<1qhdF00CAYvA@ybBd=*J5anRmV;XlOr6!Oa8U~fZFUs^}bVyU*#)yUL zVe*#(|LJA~X7~qk`DmYM;?L!EU1SPDLiB^E zBTJ;?3vyT_YltWkm?(nR=OeuS`}o%oGlEvAEf_o_qdhndvk*;LTFd^0PGm|e+$EU_YSCQy;l z5Wi1F5(fdoz-Z|byGpYY5gcHVT<{kUj#L2o9)L0hu(1Nz&j4tLTk`|p;i)>@!VNfC zH7nwF%nzT17M}l=Mngm74~QxkZ)P&$s$_2%YQ$BEi$o?y!Q>b<5m%MvS0J10LNj4( zzsU$=`;Z}HMGjCP5dqxtYACm-{7ZwEfYqJw4`JzfE4VB@R4KlWC067)CSd8q7(#p$ z2d!@EbD(!KcrRmht;7pfcOjs{>S#m(s|(CeobOY0WREQG=HSVg8x)km5Lb;Vk-|zs z=F=UHk3CpM^(D@y*VaKXuSt)TYmd}NhR8G%hR=3E!g%fx{$7)3-84i>M5O2lTckM1 zu23UVv`t3bK)=a|6#Gm@q}YoLrPzZM*mN^7-(&w!8Rj+d3W2y4ATgh4;0>;HcD3O( zd$++KWV7GIu;zuPc>$Z>$maQ`IRn07y+=*+Vm6l;{#}i%^P0Xu5y!unq{j4H+%2%OvaEj(n%+zn3Oq~94<|Qm;^*R@k;|` zEB5Y#BB6vB4M2*0{*Otv=v#x6bCfES^5GIbVi6^*`xQf9DHIy@h8C6bX8MZkMF1dK%wx?$huci#T%(pBd{Q9q)Pc)=nJmiqt z!u5=+1e|{X!c+FcG17@yY)k|NC((5HwiIg`cP%t;$XVUtZ*&U90d3#c@fp0`FL^P9 z9)^yt8>xM+V|ytMU5Sr^)zLkvcWD7SDGptUt3%^{HolSFPu0d@hpvWDPkSC@WAQA{ z4hW&np{oNSppb=``)?MREVHbue(frgHCbXs#xsHX{R&2>QNNp?g8H2V>eH%Us{Isg zL|)Wy9X$ENLsmfjgvlz{-0o~$I_X9o2v&KSLvNdYA?q`&()AfW`NKjoK5n`9t*xsu zA=YPphr5QhaqYhlr*@~M0W$A%kcr?-gsJVr?pqTf{1wp)xt^W4j^hDHX(k4E3uBfu z^Z?#6Y2e+?pnECdy{aQE;BAo>-p!*@Gx1FLwxxg<1tIo)7vAGEz?Aguod({!OGjTD z;T;ZmV4iFn<9Vz}fQleA{nc+@ER&kpy-j$z1YwH#ePkyCe-Rih5%}q8fSI3GPDzAi9Om;23>w z!Ci$r^>O%vBQYMUKcMUap=;Xx2~{~XQ?AD`YWF#WI##q~mu?93bUm(uC0vg~L;m6M zK|JQ-k;OfDhK|TH&k*pB-GFmmW6`;kEJ`8sdQ<@Bov)yDQV2+#i5*Owm!?>{6fD*)j zC_&qAs26h<;J{MiN_h6}8kge3FfgDD6a!=`*%JUu*#6(ZqSW}(z#hiI>qJ#Afym89 zfFV`Yds$*d`j|jfcLb(BRZSd$R*5ySL7SNO3+9S6=HkUjBvI6+n*FdNggL~YCcsZ3D^=T!Mq0;m+ zbt-dEDRuy${L@2jtrP+;!+~)4NC(Zgu&IK1?~ogFa>z{|pxSY^cMiGbm`q`q@~Tmq zLvEVEAvbzf3C%76HdM(9qQ!@D=b_Abh|2?zQ=rcDU4R-5DmEF>W6@4AEWD!-eTUr0 zN$-#wEuCB{#Dbq)Vg~$x4&8N)=+KsnS9EkJAK)Ony;)*Ks+mBCet>2AWw$2!ltXUh zd^29*A6dlbSIZpOGgo&JS48b!#C_8712aS$-Co6E7{#EkvpW}GVHOGoY;gFG^flFWJfvVnF z6mO_H;0jKzE6d1wurniAOm_=Z3&0vukWUt&a|%FTtU-mEV5|&m6rBPJoYs`+diIDz>iT&w!3=~E|ekhg92=)M3!OZ`@=$CZ{ zN8SqQM>dHiLHR>K;3IxTF%=JoE5OAc3Rm=;MJV5gtH5M4v;@}muDDX%!g;^CZeeS6 z3%9VuioC)EZs9|CZJ%2RuIt^_iD2je*uPoVtDw?iUGIKiigmpzWW$0ZL`bRT>-jQf znCnG(PSh77af>cOq)pdyL!>N}U=^Bs@R<%WrNgR)x8R?D0BofP0kduP0_~|~rr%_$ z*s`6l3ti=BhJP?~KH67k6jifJ zr+}N;%_D~dqDKyg{O>ZuKfKFF`w)FM7ziABxoA!I&#u-SrCReLORUIpzo^! zzv!PV@c;cG7{+aHKxnGU!@gClcA2p9^C6d&Rm#d`l$BdBfdL)?f9q%EG0@_H4U%AO zLs&ccV97^}KE!`X&6a1gRejBZUpMM66_lRwP@1JE^|J)~6AVf(VU@s-(pwmh07;Bc zh`;4QK)T~~xBxJ?(lA)QZp2MSOsAO)g|&$3)R|0-;;uCr39ze7M#7_VlPPAiGLsQ; z#gU=7M7l5^5iH`Bc>rnGY8VmJ=Zh~9ienzd^-A$nrTBa%5JKN)$rOKrJ{b$q&Cp~W z*CN>I;Z~x9!>xtj72JFf@ahV92M_T13iu!ee6|66WB@RKy^;}M8CY(|p@XEDSa8NB zk-k&;=6pKkM!DI++`KF7a_S#oJ(RN@J;IEflda5BCgKm9O-B4-A8i;l6=GN>BSLL8 z8QC&lYcgVgz2|(AyY}RKo;uAZW0TrzxTzQ;Jq3g+3;lh>b z8H0<@4_+*yo%oY$UpFa-r?JF}%wYo2{*JW+pE8G@Y#r=^J|F)v87kk5vxovlx%r4v zFv{g4J8YB-jBiVMzLg8G$;VNDeqR(QuW1ViqtwEbffs#Z$=H7IBU7`A)aZ-x7X0WS z>#OWC=Q{@XR>t`zdF;gG%`9X%id4_%ZSzml-!mv;u-Gc8ZtG>gW{>U-PCL1?G0+ap z%%RhmB3?6#D$1@1ZLXxm{zntbl!rkw6kMdSrp7zc1qt8_?1%jhr()*YYH)#g=T`m< zx0QR_53V{qrt0t@ORUHTOrQ>n5C;3zA+Wb{662kt!FXyyga2GwM zT@V#4ZgNpvBlF!s5$e;PCw+d7khh6P9yWucr|j*Nys3t~JeRx{^qBZcz=eN*c>e=o zWX)L~J{*)O2K%bFwC*VCtG9cy9d&He#y0n>=c@@@((jap`Xxe@Z>s6h?6s^5m*Ph) zLT20dt`y%^GVfuD6?umVq*x3IrIBLcBaq^Cpih_Z>VQqS{c_FRzhAz7VIf_jtmp57 zw|udweih5M@_?Z(-|5#lO#JzZ2-wP<1O&MQGlnvlgM3T`!}zkj$E&i!&njKv=MzVn za!E1VA*EiJ6O%iufnh=XG*m#I&JN7Pcd3DV@(RWbcv<$zF+=+-Evm4eWn>`h`I|@` zJ-xxYJxzz__OQbsk~l6z5u>~hsePOA(btrexlZJ>2Cxo7mW`3m(~Bdq z3q(C{M1N+zj%$pt!h2bQ^*Sa{&kG7ZsIb#;%_UzF6%VAE}8Fk_7p;3Km2`)}rapvub9$H7-U(4=O($BU;p6V7x*Amlw|$T;BcGW&4O6 zVS67-tjGw1%PIj}?gC7aW8x+}x#JLYNrx$TU;%qL-s4nVesD|>cXZDghK6(PGZ-_t z78r%rQ%vhTOmh^|vlY|ZnLt4*-%a9LaMm4VeEmLGMN@wf7yS_bmAoIg8>H&@hrsvn zUQ|FWs?J~ouK6M59}SMr)RN>yH<2Yu#k!&tEHV<=7n_Vk_EcNe#3pJInMN|y(`-4^4-yCXOdBa|qaTTV1ay-I7*L4LCQ*oE2VI3&SJ`|FORUIT zCSdaj%nJO<`4r&-R3AaTfPau6L?&ml^b3Jo3sfDG5$3>^-hx)pmnwVPH$$=7K(X4; z!>UNJT3@l+%V0GVg7ssyDX>yCT@O!GQ{qRLN5seyVjz(3$E)B+Ueg^?V<-Wxh$ppvu1y49fg`zT_AHbdCY}TcH+r>of-b&bw1j+nAca~ zfJHRz9WluZv5(esg~dBAa#=ht3AJE>%>Ibyzis%` zL|Q&OSUS@uZT+OJ>ItDue_Wav*?Yens!;!^7izEl+NE}1rS@u;SdnL#fZFd6g8HZp zD%4>eP^e>I+TjY7N}t+*8TF~GE8uTCPyv5iHj54LP>B>RX{%sHj723<1QrS7Q7TIy zHrqM;>Ngp2m6SQ7OKK(kLXV_o1JCl^p}H`qPPp^RLYF&7DR*9Gi52;t3Apn%DEDzE zaVn(-Skye9uOwAjHRrfBz*GIC_@K*+8c_{bRc7ZJ>kqi@-_H?rF7nW+RCMMjIu99i zCI!&>4E?H;d>2o2l0=NANsKsqtrW0x)i>*DU%_3N?X*KiMyCG;!>@iaR2|n=3V$1L z8Gfo#_zO#{$cBc(=?FG`3=gW~@%KO-`!N2gI<|qzrSfn6WQTKKUjZ^c7bjGM6+>)8 z$GJ@u&lc^oO#3|D^to1`Pq`ruosy!gSpfx{t)1@Ub$YRO zy0>;(Z907ptoI|zQ*iW+?3BFI4+?}$q%K!(wigj#S3;%s3ZStz%^*ZGV}kBHkj&xh*lF|&o! z&0o1Xdz~`nJeF9IdznCb9j_%ZC8)EVcR^>1VEC%D{ebA|Y%2fROBOo%8gQZP0E1#3 zl3M&Pdjyd3kD_R03bxkLmsUxskMklEhw~y6hw~y6hw~y6hw~y6hx0LXM#ckzNW|g0 zNQ8VRY>|jC9~qGdB|s-l3D8N4u|XoVGkdpZLapb^Glc);377v5D*vaj#EP851pJSJ zw|=GU7Z~R15-*_bCol4vn(#06%4SOR%p6eo21{p50>tW&*i+TegC@AIB9`YN_Lw4; ztB7rH5W5P|kRP!$OQnH0eIKba?VySsj>0w+;G0Pi3zshe{ z|5r-)C^G~HBHq!bi*(nrUFr5H6AM^kMaD6KbPqr@=VM~fx_-F>*7f{Lj&;#+T-Syi_&YG4jtr4@~`-7+qM+i1cIYNw3jm~SL3pbv;RzhJa zC;l_{rSb`X5IM{3K8;*86mDmYhQdAa$WZt*|Le@~53lplzS_Jlp)irPw|Y9%vaDIc z`$b>4y#GXbzmO$XB=V*5{-5BhkN1gP$p9#y<1^&b1-*gG71}wuVgoHIbRpjWemv7- zk5)gcM_H@*TCl}8;hx}w(*)m(Jbb@WeCH^>4>5tRY#hMX0*rB;F@uYqw#2VfqSW5% z2D!^8Fb-BLpc)U*A_a7+0=musdg8@o#uSklkljO2uu3t}c9Rhktt2B*BPLp5G8JOH zCZmI*$%q4vn~XT%n90OsP&64G6ir54aIwjV3wGorE|_xSphyvs@wTuzYk|uF2P#e6!>!ZZxhl84-7_$%wc`)gk)|Hmfu>BJK*4DMLj$p3z8zU1rK-d?Ri$ zBJ7ySh_FjcrWmcFc*g5VqAp}TL|q`MF0I-{;j!xJr>Z~x%oS{e+nTKGLY7#OJ()nT z&%lU%f=&E|3J3T(gyD_0S;+cETd5^_X0#QqW3+t>tswq3B=%tVT&@2UL2SXNE@JB_ zVjr=@isTr?HVq)w1PnTfMS?#q!qJvU&^Zw|vV}-Ez)w)$l-K0km!%k+c*=PRxEmhhu-#=pWqix`ZVVS-J6rg&eQhjKb$g#BV@Dlpo5u^UvP@ zQK8!%uUUAyjMq^#M@GkMX7~rC;iFxw?9%a?9h&i)FtVySUXS&^&J6$XIv?!>*yYY6 ziL8BgSLk^C!AZjZ^FDU@znAj=a+X+;Czx>j18@Dd`2qSQBT9f82Ok-)3rt41G6ZzU zl|H02i7LJU{5V|Mhv*QX<8=jJ3%1zpu~2-sRD8Gh@I6rRouK%hVDLQ+!@VEhEdkXV zuVs{kgb3L_`>L?S1|f!lkYI~btd0#^0g-4X7W8I-)i#RChs^A+vJ@Arr+f2O#42`n*pZRWMqJG zE=iXGM(!_!d@JafhDY#;1d-s&AGxZ1oJw#3ORUJqepT(gF*x{C zCFojiz8S9NDd?+-CrXGm;)(Shl6WG9Y{1n>Op(gphe!hi8V}`2 zfhHbkUnMMxN)Z^-%PO%tWJJS|5!Q91hOFyk3$U&Osa`yK+k>G7_5MuZQntsXGnGrL zDwlR)0tc|sQ%PJ(sL`6WYj1FF13dHLQ8br$$-qoHtjR^yEu}>vJx-hACAX_P3O~wl#7++0`^nmbq*87WR-B%X@`s` z=D)+;_yeIjc=mC^-D5n8E>wzYl%ngIfV(dsIQ3B!)WN52gbwcfxHG)X1?oYa^M2~n zY?WzP7%c_WINQqAZ!5C9fZ|f|lXryT`o^(>>xLe#mnp96E3SJPT-OfAwP9Y=k5jn* zH!O_Bflmb)4}C2y!geLD)8TiLKOiT#lW9H-i=yCpxe?X-$g#PzV#zxLHdb6;<4by_ z=ie3AS6G7ITa?~ii}_LY>@~PQCGCBVmiOUC20ZFosn{#@-0bao zr$bpia$q;oEv5{AM|)Nd=msFJUs0$qSoPOtm1uJ)tSEMHXT-*pBCGX0`tMWv*H!u_ zIrL)`_34$nGh(GSDAZT5LOQjEc~!&Mk>Yz^T86+wm4Jv4@8!hiN}PX_+=}-KgYud_ zG2Fv;ye@93us>9b%4_Ojm*A^!yB#?RUe%$ds}29yPdZW7waC!{v`Xs4)UG_nD7fL9 z=oIF03bQ736J5E28oWm^{!^RiHr987pJpp&h!ju0(bZx>+sZzNC03-J3B1D{5R^}f zjv6~ZmHzGZ5azlV7E=ln8XmAmXa8h{ZoXO(>@o{gu)!)0HgOb*D5HGPUrUdgUrQG^ zS;u<(V0tvKK^|w~5$D3Nv815Xg5$wv9=hII{KFqLlTZVPz54D~lL)MjO#Ykj;-E)d zUgV6TJ!Q{ii50n=33%~$(COnvf|Juk1umEYfU1U`!n{ZA<){EOCk}+Fa@=~-V{dnN zDCh;#1@w3ibgqIfSJ3qa^acUY50L@Ru$-PjvNY^xPzZ)WM%{a#VjBo+Hdkzad)Q^v zDvIqYitWw@+v-P>7=?|vhYkB3={5ci&H0ppjJSb{;ch^DW9FX>2QnPUa3I5h3PEMI6TS2 zamTmts>|S6k+EatkiuEq-LEH}{>l>$R(6AK`+v}E`#Q9n^R&- zzJYgzPWSY4KF(V3yaUb=;0J_!M?@-t3Jz)D(1-oz>BPQfQy%uKBtdcem(!$Z^*GK( z^H_!+^UAh_%)phe`-~AXfAmf_9H?Y|&k`%LksntWpE^0k?wg1(I?rp|(=9?CsOmU9nfaDhAy%s&D zMHDT_DIQ9U;{;n}R`v2qc7H8STc9LvO5*myQ*lo*+B(O1R+)`M8T&S(Q0}iF(|O+X z-ZSuG;L=*3@yPj};Q6)sg*;)dM|{Qt72jPn(rrujmJhqq9YllS(uEkImkuLy>@90V zn5$C0RVv?|Rbj^`AJJ>z4|Q9)jSsmBdprO@VJ~Ef6?u#am^mMm>VcktwM?hxI*Gaq zepu{hqQ|mpXC<@j;xoarwHq9kkrJ|OHgpjzBM*k1Yza9pSuyM^6zQuP&J&2QDyw=` zim^7UdIer7SqG3=!5@IAiwX-qe$ZvXY_tLkK4J;Zvl2+aLwn#4$y@p27Qj{OL9 z1Xi^cPfOOe=*c%_e#`M;>7(cArW_ovU)b(y+sd@IeLUlk%rk)NZx$qoS5_CgJ(jvct_kcxG2acTjtj~P~ z&nLRWQ;cuoynM840>Jy!rHmCV*~j1Ks!Nn5Pzly#Rj<#-a(NU*sgOr8)=EAG73Iw> zL{V!#1bp=CKE7vojQlnog4=f{I!TU^dTlEddGDY@-1+bpvg#L(^7_^ zP#@zh@d|tU*`h5nBKD&_ht8P2r)W!X;NMyCn(pEC03le}M=M^J8N3?7ZJ!evIExTT zsku6bI7t>7N?yb*bMfo1@BzHkHgL}H+0BI?6Fj(&E8Ou4_f!LS#Q@yEFFbsY-@LKw z&T=(Dgal3Khev}ZP`tx@GxfqKfP_Y1u5ge{Ci|{eW5Z=+PRWHQi|qtR$Wjs(+~x{}D_XKwzsI#I8H}Jitf?=_g1my47GAxnP`J~bE}PdyTWDyUC068gCZO;WXuXfZ z#QM}i({mg@(J-#FkkBzMp0b?0@Y(*nnWbhUU!w_bqk)sP(NoeWh*P%Ww33I@28z=< ziqk#@r+ouBS;WA@X*xZ(@TB4CqSBV`c+2Z*t4(K$(bTNLF(SrR3=Zv+W`^3*tYYDi z{STKz3_8J~A6a5WHZjKkA{Q9aRaIh0ZRpT1 zbiceEBXW6nFMb<~5@{$C25+E-)X*JsTUe&WQPLvl8*bl3=&AGQ*;eVfQt5et3Hl!d zx_)}f^a>u1Oq>|xqjLvzp%fYTExq=l{k*yg9hn-QF7)bOMLoFVvq+yYWF9jd$Z+64 z;($B8#mu~5M7&|wd+t~X?tdi=5Vztf-cXyLRWr%_Sj%Pnp=~Sot-I96;X<(7e)C*7 zu4|(DhYwj|Me^=e|Imxc1+R`8F>nG+ybK+eqT|J7`OXC}S=IZaB5L1rBD@?5OANG) z2n{v36r_}wkGXIGYj1`1hQeCLz?yC*GU8MlhTQ-YO7D~H4!sZI3G^0t^xnLI(EGTL z-X4!$4&CtY&npf;F@ZnqNBA3{_i%K)xU3*Z?~^Aa)4Ls^`RR4wf?m#}0P9hOHDF*> z0~RN4De0YDlpjj;i?=&OcjE~}7kWhBv%V0017R4(-)WwKh?(Hup@_U|5E;PaK#4wu zt6aFbMJ0VSdS6^t7^Hk2qA0(lcP2%VvqC(3WfC920C@F*~6qxF}X-FdCFiih#)s0@8i+&;g0I9Z`2EJb%^f86Nrv_L_fKn5PgyXPNL8B5V>3tsaHhq zH;DX-NphIHPeJdC%c4Qb-#RXt^1TVtPx&bxK)Kz=%C1#_qGzzG3jr{VrmMVVy$8Qh z9>`9cEzA2IDQHyVM3JDWq$80HkkmKB6`_k6SjC zZrq;+3GL;h!ghG^)Sw;qqFC1shgzWzsL%=(I^77p1VS^~p^Tfx9UEc!t)3Bs z^761H9zQu~i4hd*T4Dz)^jj5LszT2(LeGWJjF#v`|GB>YC_(=UM}K}UJDIn+5l{Vx zTPVG7Qj35bqfpK=P(H6~DXfLlw)BmK9{uJx#zqJ)QK!wV7I{i$V1o=6tb7>rBKiPlP8k9~84x&62z! zv8oI|0~5$rkltQi6*g1TgrJ#v5Rz-AcPyYX1@tLvlJOx1&{zPoNOfv5#1A*~#mxXh#!da+r zS`C~(V#T2Lk=M)lQ4>AcuD+30nH;vt5hnz#@?tz>m8&g`ixkGq3Pbz{tMmhmOjgmc zrSnZ>zA4A};vO*1F3W*1t7aXX1n!GcqG4ejhJ`iJ4n&sBn`H3NL{lxcnTqWi#U^nE zY-eLBp(eUjhM0LFB#ppbzG(T?>0 zYP$X?!F1HjX6tX)6VsI%BsASPi|Q^#b&R5FGN?uZm6)#Wg0vBK$Mv)ZWrV}2*Z5#K zO`&8r36)v752#$R57sY6F6aHu!>N zH&er~OC}r}bjiB~A(yOUk+dliu|qO0*E29+*9Vf$TwN+<-s! zB(7v$o7rTiKfbja?msHBnA&J3W23291E@c`Vxtw;&_Y?RyqU zFKpmp$t5_Gak;(%8-0V>wj&#L!9Jycr-OKBlwhBE0s9OkrexkTj(uLSsD>yi!I_N9 zbs(S`4^(QOpTP_9`tdBvV7yi$Uf;qm-F&P>yjI$HT`)joz3<5S!OG%?N??IL>I)ga zkhK~!tHvwuIOzKFZhwMkrmkVH+@u!NQG1jAa*BDP* zW9+5Em#Zz5*0WtFwrcaGes>~${GZ@p{DE{CK!yg?lUU=q+Ae z?x#ld7cWyR;)#m*YDK)nAkG6~$V*$iSo;Nc9$f>D2QD4pN1_A+wg93v;8=o5=ACOG z(0~_PIOi*zMuqdRfphWko&j$MtIRfIOC2d-5nb|$)wn_JulW`?(`+rE3Y)F)$e`J- z>l-rL?iOc*;w)2~wFc*#SQkW@%~|h7&gZ-vtrDr9>*Ye=Q}Yc*3Fcb{sMdTv2r8Mk zp@Bm4{m#O=QDKcySZ5hndjOWk-xpv-BfZTd^v85=zdL~oHTJs`3I1p?WTpJUNRyaF z*&Dj7XHH{%G0JmMR@-;@3VbBxU1!n_)D85Sm*t{RW$OCF)eTi<>0QuA-GDFt>eBnZ zJ29-d@i}(UUsd0~u?F7<-~r?9V5|k;hDx*acHV<;<2U2{J@-n_{@0-d`!5GZYyV4f z#s0S%479(4=gCMsPhs8-%ui(^!<(OW#;?fvX^_fV>d5-Yl%e|)mGvEKlJTvLuMeXv zSx^14`RT4C{Xt#fkHF?-pTmMFxvsbR!@o%9;R7aqat3qedx~j*!SvKInNqTxU#IWS zxap(-z;rzHMhX64>{@?(-AnxOm}4Uc&qs>qCB^eI4~UQ9z@z?H2ZIh{?x7i!L4Q;u zH1EJK^+z?<3(j`OWh(0xM^>9DL-$sd^_9vRYIJ`Fv%C7^FM!SQ5}oeZQb!67AD-(^ zPD}W`iL06FgC>yhPd+4=x!#MZi~NNDR}1q$3iAPlDe(l8Yy_AcW-d)(T^K)=O`gAw zLJ9s_0l?N@dlFhQufYJ~_?cixuI!D%nR@MNOwMb=sW@N2LSu%daPq2w@-=V<0rwp5SXAnX&H4TrR7Y+`N zo;``lUC>Ooh&E6}Vvl6J#UQH3Y!2y>mwbb>u)D4K&UDWW%TaqW>Ov@Y4_(cTjG^zo+X||36@wTmhetm@9!a&*wY}PB@VKv#wx0bib~=V0r|xd zUO-+AUQs6jcDF8IsxlyGZzh1SsctBlPn#;YKHV6RP zn<+nRt=e%xYpu)*S*xGLbgE+7Ofem5Fl_@&omtC`uZ;GpzRa`NDJa2SyqVJGyF-aA znYVf#oMhH7?WT-5;}420uGsc5*k)qJ{WbRbn)3Iwqkovu?;ZT#sgbm ze)zbNGQ9cWE&PhyuUhc4$a>$A<@pJ|xhc{Pt1;DfIzOast&SsvW@;Mt%-#D1Ju{S; zT+cjbwZBUdy`tJ@8SPI1qD+z8h4DVW!Slx*D8U~E0e}4QC$Z7pj*T9%h#pf!Pbi`< zct9q4rQGw!GzK;yM5_9=ka_GU^A z+vn_kgZBC4hmd`avq)Abk_n1rmO-)wkaT39E{x~ude1(mpalCA2JCYvF(vbMGe~Hk zeJ!f571e=?>SBXxCYB9>@jOsuc;mS@enpPwPresf2RpJvUp-e`tFlg2SvMG2n^RV2 z>%Fw`d{G^JLQTUy`N!TtpBzd|Zp`jt&>_R*=qH}`P(;-R(N$OpWb#Rd^>=0FXWRfW zo97m@IT8Ujf#vfPQ$3eGgc4lF$2aVhHRn4qA7XeiB#JEmjgnIJ1{grV!!|gsn^&@vxOb7|xnxypji~ zUXQt(_bW({Za@@>4xHKPjtlLJBF;-@$c0aSbdXrEj+)H4;|cA{Qy8suvW?bqw3Vc` z-Akjj!r;5@TbKwf72aB9wFv^C+ey)V#~Q2)47!i@|E9gQ5dvYGGa)Cd2KR%;CZeQ1 z!Lt_ftf}q?p=m#YDX+j2Af8`_Q)n`8l@o7ktk}^i_Ink(jS+hW#CkVz=tGWxKn$%H z5knyatw2dJtQ&kZ_l;5=VE#iGx0m4|j0ZT`;315LC6)G4?XMqilG)98J5Vt35_p+l zS~v=>u;Xp`e?}SAU@17eGb|CFqT~Jl)3S z-%%M6m!1p$%8y|u^GD&t`z<7Z5?UbMC9DWA=#xUd5{;B5DxsM^vVa$3Wg9`xWvtIZWxk2~uuSJ%}pEJw4)^>ALR)N}XtdTX8 zvLv_OZ^G1@DuWki;AF-WoF@*iBQbtty3BCQWV)NC08wDGZV_A{GqK6JB?Jx4{LQ+j ztaUC4Nc@WQ*N!U7<4;*nTUkq0R*TB|%E&sGvVMDi-E|)QMN@?R z)n|0jUv;ZO{yN)2enTOjsgQ3nke|XV`|JIc4`k}EUMRs|k zqOwjiveu(48D4xK1y-=T-f3q+=TUGo^@HrdHKR91sSmsdyT%a-a-4t7$kQKFz^000 z9mTPy!O>(EX&D}T;pBvWa_J~IHMyJMub=Dr;suo8i%Ri@_i)>Sm13Vy|6-@6)us$w z+bOQESd)woHMmw|vX-IKcA?zD8`$1G2~ygdDI{!=B|8TVvKvLa26@*C-bn?&t%Ca) z!52a>+!1*hK#hU_B{VbJW63$5Jsv{|_NWTjeN_D^}SA8Z%IoIH!Q7*RFj#F$GDYknIwwE!*YmiKpJ+Jgg*$txFn<*)5nHzQt zT4o)}cP&$CrJtm})C8VCgK%>)oO)1;9>Gkul{nQ0vhszE{JE2vTfYAb;1 zEP%RVud~nc>~%6quvcBcUWX7^GVjCNY?ArHl#yhvQD`e!lZw)20pt7!%&MJPtJ8d327o#@?uHUf zHBC(A<>M`h3fF@T7KYZ17T0}>>w3lYyumdAxH9JBH_o6zC?srC*njTN(2T+O$Ftlfg(VuMkM z9{FtZAIR=OptwKsEE`U5nKHs@Yw*DJ^EX(NjQ2WQeYXdoE<{Uq+qPyWWb;H*eEH*S zMnF!pxXl77U;G>w*|T_&~1Tk3v^qc+XCGd=(a$&1-dQpzh?nnkMI{dr8fS#r)(uuw#SFQs^q2I zwZaut>}TNR!@2BSnpNvv4;W3R$-KnxNi0wDYypYbx!C+B*||8J2kbgsT8z6(VvvX3 zjB=?HritA4_~Pa0tNWs33(!0^*nErAJOs@<1e+V2=0Y@!Tt!Ug6P;#kL&Y}=_TJlR zE!~cRq z!CRleBV?aD9SXUUpJxBd9g4Ziqkjbr1#YlqkiLAjRGe#VDnCG)S?zLs6;}^MVxF4n;yKt_@PW|AMtgxl+ssQas^M zR4B!TL5dq4ib|!Z3Q}C)P*f?!kwJ>19ExhCC<{{T=uq%t4Sc&pkYYWDqE0CagA`vq zZ?)x)y@nt6?Kw5cj3ntk_2WS7I`dKlZq*CFRmGpr3Q1ei9>0~Nup#2j+5dZUY`3J} z&I0cBl=@CTgRsee3W8c5WL-}HTvXl?>n}sEUSF;#eQ>NH1C$vxAuHp z4&y$$WNd)IYb;uUE^Ya!IHw$ehd^UR;&dPYF z@@RZ2qTolhZjaAXAX;vZrY|OaGByLP6vMchhH@s~e%HUt23se;;T~6=#n)4vS!$=8 z?56!IHec3c?Q{#8!*=Q=s2Yn>;3Ib0|6sKfD||au3F9)yPSR|&c@|cTuu};Y3D{{@ zwbM<}^jV}&#v17p!?_OSOm=#;UzhFFGi0Yb!*)70V5ci0?DX>uMAcZtg_PK7^Mlk* zva<5xsXWb2(rmPO5~w83{o8%{u7B@q1;-7-&BD{y$A#~uOn8!1`TZAW zm&h+Nx%t|>b`d&dVTg{Dfd?cNO}seIKphMSyai+=?%^)s{9T?p8sZ7Jf?ty0$S%&} z(!g~18Wsq3*nR`ALk#H|m!v~oo=NZWGxU+`)ur~ne{aV6MflH7=Y4%24^9;R{nI;~ z12C#^H2w|KyX@|C;j;i?l~>MAvr<2Fk@xUP=7Xhirr4OB)6?{>gNr;HKak%0r6IOA zo-OLAcVl|*nNDvc5U)4FL6Ez$k4*1gWLuqCyr-s#!0+ z%d=h=eWb+@esN8jk!Hnw-nV(Yk(+$p&!l%b4ZNdrQdi%& z@8F~>0#M}hA#yubdM;&74dRzGJ6aj1XtF)ncOkwpl--&%HTV=+zeGL0s)(t4>Uq7T zv27Clnn=XNlrVZRDT>Fzpp*KD>MSy^6t~C!+`@SivkUnbX4UqVM+nOfPd*{cCHHQTpd0wtPqinhfe8+54MIREl9so8{_A}l8NYFpFZ)L1`kP`|81 z&&BO4u$Gy2b^ol^Lr8*k4a<9LS?c+&Vy+8WPo^k0vn*e0!g`$LxYo~RxsR6r#PUxx zNHR8;<*&4S8_WOJ@;sLLmUPfO#PUm8Zee+`mY1;nu$Gsxe5aOQWcklpUe2=I@0g6e z&hn*N|2E2P7lHZvEKEY-6BbTG;d2&FKw%9Fn8ac~uy8O6J!YY>4+?!)7=uCq3nNh& z%)&M(Y{J4&6t-YteH4bVfW>-j1Pi@U*cAnAAQX&$=7WL#vOdS(cle9N`(>?zzm4&? z75;X_-&p(|h`*!pcM|^2!QT}8O~>Cg_`4Z@cj50r{5_7pzv1s?{Jn+075Hn#-`Dv2 z0e?C0Yaadv;V%$y-9Nf5&~1VL-&(-W|B0nJ%=}qx{Srv?a&nIY(tOdR-y!SVb`?*q z`xiBpEz8*jQ$;Ov(oC;1XIWcL+ftckke6Izbd`UZWhLyni&5g$L1w4?4SY_xxuS<` zvE-Uv3c1{uTQq5BuzjbQs^Bssb>WQ4(_cK5&vg5Q-WCcCzWXcEb}u5K)M zu3vAlU!$XoZ@;s>%KyfG%D>36^6gjP)%{lX>n-+McEqo!O|t%-)k_-1A)Y7_Wi;uHVUwQ0F5 z)X}3D?f6`#*Zya}Jys`ONKwDIKZMw?Do!>;#fjK3zk#dYWvK~Xe}kEr&|enU*oFbG zryI!^=eZ?i`lU=D#qP|q)X-qpMbtL2&9VeG0j*|y91I)2Gy0MXKD9aGwbZKjdh)qK ztjW_p*A_ZIaO^7zRahfGO8Hpl^Nj=iev=xR=hcK`O?DdOdu?UX29uWB z_Wk|#7|o~@^^5Dk(wcM&L!>@y>SIqEih)x6RKHj(2Lr&OPm4t(toYA=X10dOcOzPY zNj{tuyMO;5vp_H(U|7hzPWTMZ8(C4`E-rfjC#1=|Cz_CxFqh$po%In`xbNi|)+FO= zc)-|7V#~n&#H#uHa>J6)X{h-=@F%O*M1LRHo}ULcs;c#UK?RWQd?lC>jyzU^vu(cZ zVkClJHbUguD=NzH8|dttFSu!Y$sf7jp)bI|)c{EX=CvcK8`tn8RbByvVTcXwW-u6+ z1g8*4%-U+Tm^2S0*^ETzwH?m_@So` z{XR-Gn*E(A>b3f<;`X0=Wu=<3xtYb+7_7w3o1TnH|>k4=oo&lgkKfcKbjOc?;twPVofqWM;1o-{vAxO zNuf<%O(J8>Xx0RpOqvaZX1;GRK(MXWmywi6-HS9s7keH)jvl_V9fpwWJM={Y*LV8< z2k8aZcVL5%&(oeauU}ayX2TWMMKhqcfR33q01UnkpRWDrifU{g-l3jEb1e07%Q6!7m(3& z{DOd!?`7hN@rz zYjB??56Iqk{Tx&&Nl>W)bmg{c9xHrq0YDp-S~rd>pt+>&LI%|1y@HoTDw zAwL-hMrAXOsXLJPK+YyjqbzaMOl0UHT7@__bv_KAKJ^#fDQ^3GhHs^Vq<8i&eRIO^4sMC$ENg?M)ok93LG7~&&ABit zJaa#D!&B@iX&8%xRgi^K+;Bj@3F8=M2xx>kjls-~E-yuQxi#G7A=~AF=q}ahg11G| z`g}n`GIk3!hZhs5k$XU{cPcC%jysZgO8g<3{W@Vpbdph`GP=vZkln2uh*@L1>>b_Z zZghbXj0#m^M}xWCQ(~A?VVP42l6XoCh-N|3*cl9Q7X%HWW;i}!d>7xD+;$+J@{6tPH#X(}vPm=AdNSdKK3LqvT z6iYx_j7JwR4xCe_v5QzW4pq(4`QtL^gCWvK=Z{@^ zKms}JTW^RgOi`b+qSe9t{1TD{rhn6pvdHXexNSQ z@09o5=u0Hcd$Y}2ZJ6}r8Z{8II|Mpm%2^0Orc0mbF75wv<)F*sw#z4%dMn|8lo!KY zT5OjWqPtv=F0JSMoN3AS{lBqhkn=L!=*4wPd;IGgLc5MfuSO<`BVx?n#R>@Jrc^ER zJ!UGV3OiFp&-V>0D>a)0)^m85a9ZL(#o=7c;aE{XK>$~sRWp*u$yqhS65bo#Yc^w% zJ8)SwgIH{qVm}sVvsfF-1^YuUq}sF+6fmWBGTFADr%t>#SK&} zL7!AnUm8)%v9xeicm&*$U@Dk<`R2OA8T&L6^C(TIS>fu}Ws)0a8YNRBE@@b#p&;$R zf69mqZL@!Z4>rTb=UadqE5IoV@LmIOxDPPXban!Qi_@9EgErzTMBz+Ka=OH=v?0f3 zk^e6`{_0n*pq4VB4MWM9&=|g$&@S2t$aO+nj+(T%WLS~Zgy32!N(gewG9k#p$~z`O z%egKs1eabX=2_U_hv0DIKh`AUU-EzuEWlF8_1^|UWkN+~;8}X_Kior9so3DifH_hH z-eCofP=WWTz<(Kmb6{6j;GGhiW&CERm*|*=lW#<&;jgY0t!}YGc2*(tRLDC<$gaMS z))C;3Atj@iLn<`O%~6i?EyvxI;{xUQso|KyNwvam{Qy>=-I>v|YBxm)Yh2F|Pb8*i z)1z!_mBCP{&Hyr#s2Rvi z)Gxj#iFyTorj45D@zV8t?JvvfD9oF&t5Y>Ntz!lYo$vl_me}LkOZ*W~q4xL_Ym)Jo zc)$o4fSm>>AluFhW}kI+{Sq>El`_BHGCx+C&r#;f4fFe9B4wT_`+UTS*3CY#FJRhr zK1t6$Vn2Dmt#f_1ekBKG#`SZ0azRZMddQx}WEQa5*vKRPF(BQQ^9Il&)7s_kH{CS_ zHm?}TzKa^-lVB6aQLR4+m7@0+ z&mTpmjYt0|5+1Y?cqIpu*&>zjnUT=bm(Y412r$NJ8F&3W9@Q`stGR^Uii|OoC+nJ_ zHk4fURJk`=xxA7Dxi_oa*NogIER9TZ`B|)}68soXr20kb_2E^bm&3m?lK(cA|4rf$ zdB?2I%W(f(Xv2SPJ8*N3lXYtLqg+dy^{DPRD>;;(3j*16X2ILJ}syirKvi5E8f;?uU)O5H3+ZnQpT$P&hV$@9VX|t%FWlcL% zRqv&y-PxG71Tu_iZzWtW{IN1G0!gOme(CRSbo-Vt%k1y#BG=5b(>hTrZ=>^#=uQ*R zskJe*YOXR@ZL3l@zko!51*zToeBj+s!l-FO!dQV5S?1#KBH3T9nCnFm`#Gfy30bd{ z0j{%NDQ81d?8Wt9YF)2zSZ7Wt2&HCl;6Ge^oy8;PyK8uqOSpTWwE8Zzz3#QW5o+@j zNTtZ0Ra7BI-7-#Hfp^a`(}$MD|F}|Op>e98Kuu~xewFNRQ`N3(kLKz~N;ox1N7nhbug@+VsP=2O+Dsr(y_{M+Col^>i8 zthXP0F6`|kZ-=~n*=O+f*Ek0>Gp}S?%)EypAH(}}X4=fFLGV8{|E|HAR>b_fcT&7^ z@5R1X9#^kC#F}LM-#ox8S7L49c%|+9;QU+miVXjd$x}0g`Tdr8i!y&inWqf%?S1A! zliT4m;jK0DNg;-)UO;bbg@v0jEr*u>(e~@Yey9XHhE2jNRIq@G8aT_&nRD@jx@+3h zlcCgg{USp?)g=0_WA*>L>OWZZPk8zxP#oj7)-%eJa-R#Y6l{j(^ec2t%6y<@{+2S| zK$#z4n7etWlUW2am2E*Ms^=k|9CAbux6@^QC7ysDr0w*aki21 zHWs>3V;NtjllyHdQlI`UJeJquq&KkCd;U{I+Lk!I)y!Q7e9qX-6mN4uruiD*$aC{G z^^45Tfp~M)dw#ZUAxnfFEyc->oKhR%%ODZi_Dp_aI+=Ig6n|WQrxv=1HOcrrJYZZe zfL?Cs?HCNb+x4tIv|=hy<`-DzKPmI6%6z_IezebAo-~ULmnG8#Xwve^mc7>4)yiv$ z;g#p}YCB^b_TadW#x1v+%iU_`mX%Wwx#?Hpd7=iGWG>) zlJQL^s#jNF_2GE6E%HvD%=68WM!|3VR`e7VU96&yHlmO5 zMYnDSLFPoINBBmRr}@$4WZnqNu3p*gqU=sH?D|=DufcL01hgO*K$0_Yr<)JFua1Mz zxUEo0TUkk$s-)p6snSTg8Os^9St}P@@C*ed#?UZf^f}6NN6T}%^4v{%o?&<%Xn77K zvm|cVlcULFYhqcvLpFr?c6_B7w%OToPbzoudoq5O;r=Do2L>_UAv0D!`OVYK8AYWG zq5=2dObLb(kxh?FWuj@-qDm02zKy3xB$HiFyc@C7zs~HpG_+KC&m(y8i8IUd@u6g& zglo^l^l9{ke*)t-#+bA%2Ms)M*by8!bYP0m<=|?Zjq#kqt~+;oDwJvpKSrvVfrYSH zWpW&He`h66N9vbw1dl&H@HE=5KfgGmH&nIf7o3#vghnA@W5ntSK%?F>(j+!W-GFl@ zcrVbmPY7AHt=JV7btV!}`yQOG|;oolW@se(?UshRKy#HGkkG zxY9&ZqB3*tL9iES3}~0$0Z~}E?bOGH^X%6TG1`&3ey#+=&?q0-=OF=+=!V4d+4rGX=>{` zqi)2^v_7kY2%X*rqU20(&G^X?iGz$|IUhg;Qy@Ue-Fn{g-@9cfH?`r@QNjKxKjxgw zYdP8v_HBhp>`B&Of1d{gdkGxw8kJkp9AR>2!Cd@k@^4b!I6wVy>#)!V?c7JOEfoK*{(IFDlVY zAqr!9V~SwvprE*QEQ%k_7|O1){@x7|}OsO=8>ix_yQCJ($2#i#hQq1aw1!dDZ{=f|9r zd6ib5V^p8>RG&L|z<6r`Tvs3SETXqRz2Y|Rt1^Q&v=mDG8~J$r^GTw*|T_&~1VLO$(&mYQdAzhB0Mp z@^IT=?}fN(-nVTmb{NlXdy}YT zfyyh*AnzEFSNf~vtuONW%1~+j8v8A2KF2Qh&Ibn=H=g zd2JQ-mfLJ~^sJB8LTu-Ja8m!Q)T#$$f3dJt_LmyQ+zo2HR;o_qVNe zNN7&4*Gg%BUfU;0`zX_{mD2vQwjU<#xa}901*g|*rL@1M?IQyGS=r%sk8>BOW|q&s zbi!db*y>$WARNkl_iX7}<#DvOmzQ_ZJAvx~4P!2LWih_bQdt$gEI+;v7di4oK!>?Y z_S5D5)?lQUBJ%QGaY&7^_Af-WN?#oGEi0-PACH59tGIQIT{L-MpYJ)teQfB`US0`( zOMs(9b7+alp{4FlqQ-v&6b^z$u%T2xf7d9KDj&))_o};&@p6$})n!`~K?eCbVfkx5 z7gJPsB!4+*+RLkdk$ii7BM@nHM;+MtHaHlztyT<^eGI#X+`%kf>3U;#K{UC`-f*uk zrr}w&(!p~C@T@>ZqCsAJ??W2X8Kk?>slB-lt3&ouD%@r+=c zR><_`4$CbB1t~l6mX#kIF9h&@n`018`LCb?24RZx0gSW&0_pNr(6%>|v=an6PQ3qv z^PdXs8wRb$sJRm?C_+-(o)CRKDqyww zuIQ};v2wmhB|)cBGw3_g6-s@JR4A`5b)@f4De6nAP9;j_B=d^Tx zF9HMK2=w=zsDKfcyC{PGzFcIIpi@g^@OPOjl>Q#6Lf>|UM#OiXNG4UMlGWcC0?AV3F@LSJA%2QiSch5t-5%&jlY;R`2E+OhD9)`Q1m{T@YP$?G_ z&IaYd4S96TTkK?rjradeZ0z2p*r3HaT7S(1J3ms8H)B�i&&Q@kwT+DKad;4iHT2 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%0Dqb_6Id6 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 I|GWqOH()a(9RL6T literal 0 HcmV?d00001 diff --git a/thirdparty/GmSSL-3.1.1/bin/gmssl.exe b/thirdparty/GmSSL-3.1.1/bin/gmssl.exe new file mode 100644 index 0000000000000000000000000000000000000000..7f5202a3daf1161641bec6f4837cad799cbdb7b0 GIT binary patch literal 308224 zcmeEv2Y6M**7gY!jbcbdj$$QZL{Lg-8U^)$fJcoQ6*M*oO@alY28jqt2?&Oxpm;^G zfYQ9E7aImejffhqD8+^a#e(ilupo-qIRE>uS-YH_>b*YS_uucr^N>AzX3c7|X6D^9 zv-dgc;_0D1LZMJY{Ex>&p)y?gFCu?y|MNYH8#jNhap>v2-#nr$Dd){2`VB+`<$loKBKi;XNb+w{*VRgfnsZc26(T1U7CcbYNx`>T1yji!j3`_O^6LGIghJ)*3Ju}v zy^#-FL;K)5kcNBzBIGyB&|TCS`LHE)9IjVYLzk5`=<=bV&`5|2Z9+L!d#D<^Yp=U@ z5Q@ad@U=ALyz1zNTr~oOB`F{d!SU4Z?^Wn}u=M}Jzt#L_zjk(mkbQ0u{@k}e{w$o7 z6ta7u2iSjHjN6ox@u$-{`19gW{8=^vf8H5`Kkf7J=ZXVCyqR?Qi;y~mrLXNk-6W=_ zk?wu|`J6H~q8aVH-bj5h1Am5RpvI~zk(xOif7<_!(pyhQYBO)gvD)Ix@MllfJ)$4} zOk=eJqxjQ<4fyj#I~3gXB)B|6x-W;}PxGtr=btN)*XuN-*4~Ie$D;Gt2av%v zV^L!@^WNv5hX$iyWcqHT#MU-qu|no3?lq<2>*O_BL2*!wEGas z_WSRnMhn_|HQ5(jftbKAGuLb23vdj85E|^?J`t%n$$^oQBQJWVF;!K72U zy$v|cegl6{_fdb{mrdPfluV5y)*95XUnc!*Lto;jpHYRr$#0;aLHa8V{iS~T0afU` zk$wQ_yBhk=e)65C^4oD)YS3Y~c z`Wf`=Kx!{G^lSa}bF0v|p?~I*{zgN;$WMPw75a42Uqkvc4Sk89zIzq={?xxa=?^jV zgZ=dTRiXc72k7@BeI+m;?2Y*8Kf|n=MDX#e)=b>(BDt`CrDpv=zkyX z^XK>~^vy^=p7fU(`gi>F=T@P=fb{2*{#Zl*sGt6bD)g_B{s_|l27my2r}^o(VZuzb zcRc;MjacFhLqFJ0|8f=j#iW0k^s^0pPe1*PD)cYX|1(H`rJ>LC(+{XZzkvD=AbnRu zAM(?8s6v0;PoVEW`bLKSovVHRPpU#cpZt?Z{}G;P*x&v1>i`rI{qs-KuLG&Q*wByj z)6cC!e+TuMOZpoPeIGylHC5=>lKvXfpK0hj`{}z^q5p{f>`wYa41H5S{eD&G!xI0b zufzit?A>~m&p)35sU_Nb8Ri-1kOAY;_e){oM=-d1V`thU( zj+FTH)1O;~{%g{oOZsCC{Z)SYBdX9xwuAl%(*K6Z0ruwj>9+yKCfa)@`ELWM{f41$ zXXGjS|j;-_B+RGp~*)7wD5j??U7LqFJ0KiANQz4`GB z`g1NwD{lhx)BMCmhPa7GJR8PVj;idl4DA()hv!afXmCMJ>E1b*k}%hY!@{A$dLE=o zHX39(rKxWh?177+N>i%4Kqa7{@(7ev3n}b%=+P+5h)!IY)&G@$3*+pr{NLk&$c52Z z^4)_QhBRh!fNe8!08*O?(v7-M*DC!s9w%7LV_rrMQn`#%fYCn0w<+=PlBo#vI>OK6 zDndjYp>%FEHYPJ;8CL|$=>6@BDJwr3>zP?d%$!Yu*}XcIQ(S?RSsCBO<0#6A0*1@l zBjdkxXS8%Rde|%IR@TYiqf@*NopS5jCB$G+vfla?huOZ=UMhMQO!;$)YKSI0k7QWqW;VcBvldSiUt=7xT0$^fHgRP}P4;{B%jRT;Le^p5 zpp}o^#MX!`YlcNoZH>}tnM+U}Elr+)CCX^0mC>msnX{1dT1jRGF1#MeE80TVd3}#W z(=yAXs(C7kvbl0W8Db*ON#r|;0w;mhCeoB-PGJK7n4WHulFoz6voyaL=?K!DR>i|v zw?IRvHwAgxEQe{LI;lZYZi)Ru=flb*O-Xp+We>6rc6 zWEr!Y1I(Ge5DOnEz^=mj433mB+dk?LJjj`vc$TX$&olc9nTo*UTsy4vV2U~kk8|q; z`rye7t@sVnR{mD@yztA+kEL#5)>+7+r)h-!`$70~n&G=vDtmn2!z$3E^0Y~-K^QdA zH7D8rkWU@eSnTGN!lP(5cD!6`F_=at?##bFQ~mJbB>I7aK`eZ+Xi#Bof{OM4sAlSn zLYfNY4oIVVCfpWuEaBTzQCjkYkMV>D{5wp&9iPrEgH+Hq_Ny= zP-F9~?=ljN9q;3JweowI{4&AM9$}u3ilo46*Ik1oUeYy!!9Qg8G^7^=NZ(E*1!c%S z$dH~GAYEignP;+?In&=x&Un3B*=bM@z3aIfc>0GsD zj#m>Y_Ze$Rpysaw#RqH{fAHM+T%q_Rr=yq)(vcWT}}p zX(DK9=})(^Hdb%)LvBppJHZQ^J%ww9wcJKC_aklH0h!N$%(vP@0d~b=yRXr3%N0c4 zoXoPAn(0m_rQaei=0Kt%Zjr z_M;PgoZ2dO-xbrF-}mSk>|w2y-`2}b(|8k%EZhCH329FF$)}+rO3;$bH>}zBBH`7 z{2Hci+aICZjVi{%W2L|gj5n|=Km%W@-M}@}yspMJ6ETEjsDYf9YLNFD(7i^xZ(`7L@V@T zg-@Hfu54C4`CKJ$Px2)o5B8esykQ@M6(eVubc1>6OQPQ?m+B}c8pO5xlr5#7wB%>||Yv7h__yIccl2mkzrWzDwXljq512omJ=p;=g z7j>%4XH#)rPIm{ZZ^n9toUQ`XC~!Kq2`k$>6|&q4%Y7AcwZbP~qC$UEfJ0ToZbn01 zl0+}28i-y@H7wc}sxXyY)WC=-PSC6GSWmAbRLm%f*_rMa69ES>;w4E~GSvVq+XRNZ zWFNmI<##msEdoDqpxO=6CT&7rbm#HdOaoppzn7!fNsV^# zP(&}En7S|H`b17F*=9~G+(gBdeL;*4>{o7gg3ug}79i|i#$yl9AqC=TnfVy(e=iFLG%ohX<-g zeO*hbZ#>+M8gw;9MZMzTOx$w-Y07+fAc`vL=ya}LtkxqRj~0(?yxeWgG~3KO z@M*v!|77kI6X5oY;3Qb<+NYQ3SO{dy|!j`IZZ z9BvR!d=?6gb!KM!2CuL6)vAqHb()Vlt>h)3aj%2tK_ocwl2ml8ruHa0Pg4!kN)|$f z-X*7%e2+Vu4~#W-uUo?noQKOKm^lZuHhnKo{pcbv322Dnp2bu?Q>{2;bL4P)L5L!d zna9jv4_;i2h)4et&U;toT-o>ESNOfAReXX-ljm>gdpA9TnCiSyW+*x=sVFcwr4~y# zKR(zE=T>x3EcsF90JrdhP&ou~se{ws8qtHb3{EpfnLrE-PB&ug^y1@E6Cb>o_+V;} zq7jG)rVtXj^XW0YTz5*I^mwf+mXyizt2ZJ=zyQgEJPx+e8by#s*0E$`Z2~R zD+O_L)*rI2!$}+*3P6r9^uLi+<>^VT?LY)`M!lJ=bX zR6KdVDitfQa6+I)aphITRd%kk*5g%cCB(=X^U+YD4{DB)53Z9KIdOm+BRx%wWHTog z9>5Fy|1}z0V`Lx}r4nLf<2(qNy&(`IuQPWNa_fkZqp5)}M$&N47>QqNVx$lar!mro zq=*q_`C{ZvpdadZDs;40V&<}+O_;ulL5_If#l#3xX8K~vo4$Bgujy-J<0?)3S5IHN zsuA(mOkbB)<@{GnU#+XMO$f!89zr~fe6QwEJo_36#peCpQ0!wu@i6AZ!o7JxGhd3B z(olTAVI9-g`a%;#wN77S(Cmm0UQB#2Wu`Btyy=T~|Niu~VBf02^RG`|A6LWeU!T5u zSLODvPG8NdvPy`Df6PHV40)&KcsO~4#6$nf+<3@0@o*V)u>Qvj;vokyrSb4OU`fKz z)Pq7o5R#DFhPhkbu5)ObHXIuGhNdFib7&gOd`v#$5Dz*u&0rRWCT97DrXMafIxcz_ zLlaJ@2B)tnAV=u&VnUB8Gkr1TO<%nGQ`1-PeX2%Ty{4}jRV&tG`r5ymT6IrfNmXkl z#7OA_XsGV%YmSkFua+2De2E()*O(Z2ggLSBdR`DCtq=klBM)N^Pl$%YDdgjIffz|) z?rX@cWBMw%$`>O&;^AD}Ge#oJM~qBI!)c6M%`C(SvwSgfvg%lZfUHb$9^alD2SeNk z*gh!@LeFJEbLMcD#p=PFi01G?$jV|4*B3~`1p(`D<_y*xJ`h{`BFC)N79Gq@*Wzet zPG*7i(_YACDjqJz*(a_-aIG^`bdV&$Jyg_~s&f$|9-gK&(>)ql6f`tU#=`}m!IN7g z>g?T~_8=TO0c{z@o+wz&f)}ElR$G_D$I2!-F?~Zf!!Y1?Sb7M*zJMc z9`Jdi#R! zz#%Nc37d0Z1@PQ?*dOOIu+c5WTHQlV3v|T^oAy%FCo>z{6rGT^c2y8-n2e6h_y!rY zl&aZHxlXWFwoSrW0j}2@t{2Ih8o^c8g#%$wEH#C7%ob25@WU$Wp3I4bjUE-&GiU^b zoQrU5!EvCCCjyc+3&?C>WTujiO<{L7bUXVbTKr*mv*G&`Xo4-GXPpFNN|p$!8TrHDl%sTmvF4G5n#zrZ7|<~3WBZ^ua(3vWL^(P{G| z^>W%B^%H|*jp4gQ0?tjv!`J6)gcDd7hDO3^XCjME>ncUq*z%lKz$`e8S+3LM&?TML zL)cbW#jnF@a@4-9v8Y$TqPI^m7A>hg49Zbl569&}bme*U8IDKA!}IzZi;8Jcu~>8i zvS`sTDZ<8-XVKr71&f&FT9oI6!7O20VJ&zK7U2=V+vxA7_1Kqnqn|FgMJtSCh2f~6 z(bm3t@?s_LO>#J;N~fsKeEVU%y2QsMKEYV?ar~Z^Mnh>OcZ$P!8kMEk=CC}8H=VY9BDXpMe^0`+<-jtC7>#eSk z(Y-8#vQfk=SGmS0s4Rn zZB%|94AfS=h*=08X6Z9A9ea!#Rk#w*#8*`g#38OiDvN)W=@=+@6EBA;OhgCi72>XI z>D;9)Eon$qdX|=h;ZM0Hx{IyD$Z|QdwzygQAj_E;^y#<}Tde@+{4b>$JmXQcKd*(M zA}K12hbL=Mo)#5rQE@zcC5q6{SYAB(Uw_^lOcV4sMCM)f!@ijt_ly_!wf7GXES zwFVqV)VAUx@JIJ51Em7De`r=Yvd{ymh)mT+BQwW2*o`7FzOcwUS3MjI@Gi`OXPa}? z?B@F;&9Q50xpS`iT|gzR3DmdDV4&a6BAJT7x$5`u0zA&v90Sz1N{S4~+laK40^d1( z+0Fnr=Vi4u0VXqqN!p}!)!5_eo@{?Y(BjBe=wUqS=p&P6gh#W&=6 zvqfLgpu(CB6>S`bcA728)IA1udA4T}6v~P9bPq*FtUG>8oPsiaOtY0~Z!*my%+i4Jqbsvq9O5FYh%m3P4u27TNE0ps=elok6BIf+-f{Q=q0Gr_@*}X3I05%>7Q$?A zHT@w8jPU*m=mRik6SCsrjeSgPSn0;eyeiC*EZ`XuM$y-V;VQgSS@{@YP6g3~lU;^v zm=FyWT}g4}s1iUrB#(zLr#MAA=OIm`(?eCr@S1T1v%rU0KBSX-h8Y4UKMz=PUF9&o z53>_|`LA++Mi}pS;2O~`NrVlr8P~OTN(ptSi-9@^3rC}{)t+pZAqek_QjX>xgj{Ek zd@ci$qA_j*eEVHe=s7-7xIXw8ISPMdD?s|8S>|Ul9v*)_jUR(oe#~A$IdXNcfXR3` z9|VL#?mj>oTX!^CSN8#0!5;)e{gw$B;sm%G4E^6iKpwt{j^COt!|s^OtYz5<5N~BF zgZZV&J6j;246+F!hf#`4;>r|{wN*tlRhOm|x%`w1mUt4&)BDYOpO4N(sRCn+_>xTF zt@Aw7=xr?WV9Y|)28@ZIKRLr$H|bjy){18x81oJ$7_A8y^M#o~j}kH!0T`2p;aXo0 z+j1Ivr-3nhg3Ri^lpQ4eA@gIYdoZgVvYbw9AI%v|7gTJi?D2iJz3}DekYJu`O0w-N zs06KL9phc`Sj1USxh)`~kBCT{q^nRhiE$QG>JY1CQ>4wzOB=kziToUKc?2(TU5iF9~5k1riNWoK&Hfy~Z#v)h^M zB1cLypOkqj~knmvtC$YQ$;l_ETt zdF?WjS!fq#x$WXUp`I;lE3A2sqg}2eZqX_D+<-;#mI+gEO%|22`#FyAbtE^>d2uxs z{yAbI4I}v4-o_%|p2mD+(W1Mg2ww>BELy=VSi~&XqI@UP<_X&hYyD%eXf8sf_RM3FFq4&u_iFDfk>^ zdKj5*<#YwwsP{VJ8XxVcO1te*(3T6FkoBlO{1||44m|OB;-b{;zWPUM{U=y|9A%-q z=UUOD+&vJi_h1i%EeU>{Ev=yeey8~O{dS6uf8@vKf$H`+LU2?(ys0PK*{p|hg(U?o z5xO3DP_rPGgs#{fpCy`6f%;B6-=|`?EQVOFb5-7w6Du*B&)}26;BeG`TKPD*WSo!B zRm$ff@Tn}4Jrn9P1@+xs6Ecg352p4wampg@oHW2aL-dDJja6mH*Vt)JQiLe8eCr9# zRMv5nl~M%*(dE{joA8{!*6;iuKQ*YRKp{^-JiL%15hBj^hHvL%nic^d$)<>J=i?d_ zB><)Tu>eY?e|LdWIn*Uk8u5q#CC=x&fzn?El>S5c`0!oEfr!tm7x?hqa?Ir3DnS;? zf$!Gin-Gfc(vedwzRMO;2j9h#-|L1!1Sl=yK|IvUMK=&MR|CEyaUp5AEwVVmZpb$i zu}U|Nx%h{kOsxdu8TIheHf8JJ%rpif7I`3V05}2Uod}(r(dKOG2aq>rp#$w7tl#GQK;CV5Z^s^NnCuf^QX)*!CVdKf*y-^I zjN~9eKPn3ZFlWVw%<@d7<2{aF4HvPNtr(qev2zd_Du)4W8fjA#u&&fcbaye{V!8(kEOQL0hsN}4aCit0!NJ$Yx3a+csSN$ z$=9)d8H73w)J6Gy1h3i=@T{K-?uN&+Cz^0-OKtBU94?S~FZ`Soc-BwBw=?jRK+O{3*w>bFtfp>j zB6hM7aY;bLQ6j>9hNwvl-|2H5RI}5FRsT4F)(KYK(T$#Ar-akYX_YsS#cA_-DZ+A* z=QN91a2m5*r@2`5@4~ji+W9b?hNB7YF41FB;5qGleC(Uw-B?=90N``nYwS;TJ1!p< zov#)Ft7fX&>bqXtcenvFi(5*%fwrcBQLb%yR9@cS85qY!eI_v}+Q2fs0r- zkQMyFF6l$8wpRG=AymMDEeCZxQa$;HN?uO#qd*=Ers|wvXDDLDikQ>iP6vNS>G{g^ zN-|xG$l^8(ebK#)JD4tXDul`L@Yg3ApH$ERXaZhCqwtl17g4}qcw7lWuv9VBN6Z3K zX8ABwjtc%^E(Bl5kVa%-P>67Fm6Jhpz}vbRU$pn142pr9qkC&*@ei`Vi`^mn9#qkx z^=b#c%3wS*vlYe?0g|AzCK|3ITjT(0QckoqKru8RH|&$U?s(JC$5Sp}{jYR9``rni zc5f)vex$-j?IDA^*NYBv@p**!T%-fwW`M%_;Jrj^AN28Cto&Y{1AZ+*Ef_bjIhPA7 z@m>t7F?92^nRr!vE?E#uLb^l576in$@`=q+v1d>$Uoi(hN8m{WfDhxs<B@7*gTT-Ilr(ANemK#U$|CScL9|q+A)}!$L-!V@3M)f{PQB$g z(;SPy&E@5ya)yHguYDN0EqJiV2gVQ9EFTEpOR{uuFk5otU{pN(?eU0r|Bl-?__DT@ z0u6M>Egkw3f^WTFAUGk{ZV3J#3Z4HW)%Nf{_5*VPa`|P-tYvsN&4={!nO~Z0?TOA{ zR&pcAsTS!M2&segK@ven5Ktd=5_Q3RqWd>Hb7=CGabM7TLHj#_c86nR!}vnY1nnCY zah{U$6|XRjp3WiJU3^3eVgq>1)#o9&?ej*#HgOuKEE0qXY%nTi0~{|H~J z&?Vi=rO2TD(MVgV_xjL&2?kO7H-mSt3NZPbF!9j75AUw(;1{&r z(H7^;@tFpgQ`Hr2p11tlSlG()Z&yg8$MZSdnSHTzWO23*Nf8eCz>zvzw`CS)Yi79+ zC*sVwFLg8yJ&D>*Cf@ynGj}Y!LJB+=&cb&!2;CgCAMw!s8y!9C?^b@_+yj2cfnP1w zZOIR~vGc zjSmf2e=ojHLF;wdI3bpO?ddEV2SYp1o;Ivq`5J#4rdd`mgRw+R%t1mt${$xTwZ7gFvVjK?m% zP4iLx*4}u!1F1$U9_5*MB;Ch`T=Z#t-?|+e7~3isefikHt2{Q`f&w=4C?&}9nt2|x z(9F#8JvKa}QlGyIQX4{4biCmg2g~b^(Z(B!%H5YS%Ne=u*Lo9KZ#4?|IV8?E47`jS zIIa+bFOjV%NrVj5-Dc{CUjyJ{h=XSLgaC*2Xl30BtbHrbWbXQb%;VuXZDG?1MlM&L zr{JFE7c(FJ$@a{j&n%eFET8!;Ro3#E{*`BadXh)R0=beIbb8)*H<^D&)#s6`o6Yy!F3|_>i+@|tYqQ}Y5l^p#Y zLyf_w1<0uupK?BqRyl!RpJiym(&LU{5A2y)ppTd>^}Y}T0+kRbYP2cI6j2IAnZ}65 zA`gmMtvNcRp5DfTqP>tN6y0Nn14V6&FIp1|&kq?C*-pq*1fXc{-YyjV?O1X!P&5r> z)`Z)AP_!GkIj=J&1(-AvCN3OFu*cQi_c|jz=`)Wrn(?l(Sdj z3^z+FEMSF>9)`=Wo_wm3k0SXV2E!$IqdN2L+^WazL*VbkZXadZf=nMLFu~00+xma! zD33O(v^%DOb^>V0B%htz+xlOMR~`KepEG^+TWS5JtlvZG<7j#JGCn)Ikb@&>JlqA< z2rZh?)9CEH3iR3+1#F$)GYvr=3bd29W*xK+vwYa&!&YVpi%_Zqp<0oz1EKKACsa^j zfKXJy#iU25K@Nm^1%e&tJ*ccVmpTxtkbKD8wTH~(;mfElAQX!Tp?cw-W^_?A@{zA* z3}hC}V3yB}Gga0Nl;tiHx(65qKc8N1w(5QG==USR4NdACT=c=D&$P%{X7nu}zJ{U% z1T_-zY;C&LMNkD$jtFYyR6$Uj2zMi>|8X$#KOisx?@X83o_J>ix}%48<}klBId409 zn!!6$kb^f5$Kg^v?pY*N{=~YRBAlK_AfA1Qr?cJ@@lXvxJVqa!L!%I#3z)`0!Xgjx z?8p$r^AfhDoId?L(nLJ_O>qzpKL?>Tfp`XyXDmEV$W#OnPd}U-!qnbT)x6&@zTC%n zv@$Ncg&%*gUnKJR27?2bjR-K?Pne}mng{O%?Q(5Mw)v%9j`=||-8^Sut&}@B{a#3N znj{Gh%*T6G(me73;m!TgzqglQCjyIYNn=~98Sgcxe^A@;&YPLWJKHB?Fuf1G-af{d zuvH2?f1HhdVTC#g&EivkIfvQ0)sNcv$z*zIMnFX6E{aH-#7|$=;-$Xz6GN!;)RDAK zmaCQ@u5qSNC-6Px7g!ui-IFSrFMXT@E%2p}hRlg!TsMAtW0L!&5BvZSe!2%#C~hgm zp0_g86#l4vEvDe7uIuA5Vw}}#3NX&L!;C2o#tE461B+v+53_2HkL)k2!Gy&BVHqT?Q$1G)VM{*X71pIT>Eua1;uS5Zf@ zk5+YhB(~P9L&UeMDBMKWP@~T4MxC9!V5nU%!BM9&r!v5!kKwV=<8hVY@sZ)NubMQ_ zbNQLrg0V6vXsQhKHD*K$_k7)0>=;{zrqDSQCh;F<=7bk$Z(qMF26i`B@Nx zgP5)~j4$;uE>y;o!5E0?0dTcvv2Vq~Ljue`-C?l6+R zukl9w@isnRSXNfb*xo7GISoCzv4OAd4J zn_j}N!kT!a+boR{!}bhNp?J6ydj@UTF3r*-*tOm0YEaqI)w*U&3S4ma?*7mZ;Eo-} z2k!P%wYH9Sx_lC}3QDa`lKrLbDf)ixst`h)2aMH+v56|IJHXjKlEH^?#^OZ^ulO0c zKv;L7ezDZ0tY!Q+!1(WJ=ETCAmEEaer(yjTVgVSf5KWV7MmSy!Mq>&XZ7F!zmx7L3 z;XBBE@R}ds(Hvx3r!6sP?aU}16!NU;cyXB9aC2aP4n8LZTEK6m4J)mDMr#~uv)CLG z1i96~6bDhLt? z7-e{DH#{4!*atEFI>d z2&-!Hp^I^lqTjJ#G9I1H~Z_*IMoA^j7mlGyQsRKz`3 ziU=_az|#5LSGg8&&5cT!18*V%M{ju5sfB4wJ*4pvKN&<*DMcQ$ z`-Pdinv`IdYeTX}%iJ+c+uqOj%!PV2$F;noQx4<*My#F*nbcLY&!BBnZxYxREi% zc?%~nAjq9y%5r8f{JC5}MSo}H%E&O$YrnCw;to+TLPI>F~O z`xae$!#pUE3qN2QXyFxmi_Uv^I$vmXPBJ=oRN-q2U7b&a&O|1%xFt|ZwyO?aX!Z&N zOL7B@fL{-EL+DZ?U?+28;npf(ge$--^7WLCjn{W@wN@@LyaUQ78{RuS-UAHp9}VxL zl=uEFZ+k2vlWXAlfp-?h!KL`Uixf6+N#>OO5rr5hcnw{D6}JH;D~6w&l+jD|>R7#A zSCb8Jtf$xIMz5!hUYmKrKz8E@*QuL9U=PCj0nuD520#p3AXEb~>0iQ7LdbCt^6%av)4iJ3i42=w+iAvGSpf&93~iJ~Axj2T&zJy~3$zzA1j zWIdy@W)FAl^X+ju&`pA7$io10tn8Y1K666pCWp?px+8~(Euvr!$j$j$%ho-iB#Nrp z^jwD`1gZBqvgv04#Z_MIqPPeQBZ^ydm7qAz&%06F|M!UMuT{{8&&m=>p7*8YP(`Lx*~% zF<7z417`Lf0?dvHd-$m((j0agUg=CE%MCDNO%Ir*37Lw(lzQ$L3BYW+VZ5%X$9OZ+ zWW4wa_ILYoA29n+iacfwg_#S?66|tq@PJv+OwMw~z2dA0CXg{AL4eu24ICd<3(VeQ zaV+&5RxrTqIM|J0>n!HP!Z!)03hPTmfdaGMTmaNf(GgPY$jAAw&l7-IO{O@&tPWEM z%nlL>0?hVNQ)&Qajf^Q<_jgUv9m_4u!S~A5l!H7|Zu9}OeFLTp$2To>f43$x9AH+5 z87?q;jEcCem0~p#5iT&RNsI%`>JUR4{Gag_g9ObUX7DQ>L(uWiw*CO4ewOt{r2Uq zU%CkRlkd*+A<_j68E{QJoI{4dPqT1G{KP8`dL?coo@1nzds1~@^F<@|J6owu6l^FB!JqE89IiwgokS!4R4;9=@3jVN8k|!>fWp z$pSDVA(4yho1Rp?Uin6^@t$78j9xbzy_Tq6!-u#|UJC*NgHa&WT@;@VnUj zL>W>UM2XYM2GJ(YhB9mdSDB@=Ww#>>v6Yn+#BXo@A+GA}sWjZE)YGUmQdRnBu%l9C zgp5K(d^>iiRKsxx$dk8Y`}s1c5DOT8*@&$(P-a~QU|R!%JBF%&x3f~`JJFV=Mb&`2 zAAjE?5!@Y#A62m$LtWjpT|yNA?tU03;Et2~ZgBV4VyFK^ZXVvl`>4|~A##5=vaBh_ z0T1cTVLr~ktwv-Tq&E&Z0Amr5C9cFR5>kWoqQq;tps4ppW_th10S0>#x}AHR-0L0_ zzB|KXnIj+*U5YxH!*C)IeT-Mde@tVrC5;dN{X%?}`p+~2(+DqKLt60P0B641$KXHK z1pd25MzioggiJ*c|9y~%{|w`6e2gb4#F`0pp?U|mej__Dt< z?Ad>VXXIn+C_XS?$_X1>&{UHdIBg7%*J(zc{U!-x;W8@X(8Klby`KOvYZ7xw{lw%$ z!o?y%wlo+1Oh0f-4C8OrJ?2F$j-__+yrpY@?Txqcg;RyKw4dv(0tArVz?gEb6g#a2 z{HLby>kYwx_BA{wHP-{a_;&NmGA6d&!at|dS@Pp8AMcjcG-?G+boKYy zWRKV7Ih;q5<+-Zp??|KbG*9O~M(10N&d;mx4xY|L_So>^#@go zhdYoZ*3noL6xYj$YwU>|Y{czr#GRz#&iBM|n=}F<0Zmv53vO?IxE15M4lNYE4~&fRG0KN0`brE>y4;)l-+ zJ{pHEtSAFbcV!$)r+O?>p_h0aL6$g2r_^r68=&kC7} zz$D#aZ2~?jG>mWXF^(zYQZNQSIuBg!!G_s{0JAUGB+U2;cDXhr+dpu)gWW+h-8?f* za+#!+NRVZcXTGB!Yn<_yvN)C+-o$&6#`XGXq_pX#BAl~lwr8?Il9<3GA?Rg;JcnK$b6RDu0A32_!NAmV%x z;hrk1Nz8!yi6LO!OC$(j&HR?Gt^>C;Cs8bQLkel7Sx!aJV^VsLIS#)Ht8HJmS+4T| zv7Myy`D_BPCU-~`h}C3}1H|fxFrbX^10n%yLh_=qgH(e2fLX9F)TI6 zavUaB0c2H=sNJzubU)V9T|rZ8qx;3G#GLb8-M>O;xF@;tT~yZc)@qlrIv4>hJOP&( z=VTZG=c<5HJOPtLfb+#XJ~6r&#H?gJQ)yZy1rB4Y@LC0vm60fxn&b%{Ugifo7TW~q?W=PHy>VLKjo#`)LjN7*9^NaP-U0!- zF$W>yoKKsT;zxaRP|p3&Wr$Z@6+;eCTGjJui-hz~?0@nj%M}Rbbo^)9(loK(5nn?f zW|W=CQ|#ARvqI=w=-|}Mtc{6WEIIJ%JZB?~5sx$;_IvXy!G1d$8tjL4>hKRpa}=@8 zawd-p_Ht_i`{8F{I0$|uWGVsxq|0jpK==cdi=@b`dM`)X8VYC9KTtemUx{94e_}A- z;{hh$ziMXWRUi!7Mvk z*KX%j)~?&mC^d^(8&?MG{QgVN&JtCv301S$gi_}b)S;b>GoG`Vg=@4_OpRKN1E$XL z@yk(uE6xPJS>WgVX6BgzQxAg#f-L@)KrKz`{AOkyO-j`GOappZP~*2>cwK_iIlG2@ zHTVS-@H+&LDM3D>Uf=8dkXgV?%#vv|hr9?&82vMad4;v*4A@mp@Tk9;dAAgJP1x%d zV;9fV*J9UeD6U5n^6@0BcH!0515|DHYud%D*tPj{W7oU5ax5tD>}sHPG0U~f{fNhx zc#(m<5xIHZzkPqUd&_(g^{TPVlL;8TgRRb_rGLpelvrYDBnrjw0|q&rP7mk7-bP5k3U{ z4DQ(v<})A479w98ay_$PAhUem<0uUoiS}ub_!5kJhceQQC7bsWv{C6V87{F|Cr;!4enJPnhEzx??k0tC=$xb;yLaThAfKk5pyUF`px5 zG9Kdh!UhqvlXc_84sUK(&XaD5v~TwE<#SVNVY;q70H4kf`}$%PrXLMIJ_NjoR41-SRuX)NW?!uaM@j*z;5e zqizNS(VD=h+;_r^x<<%U1TgB1=Ut3?pA;F4x&&$KmF_-_I*fp(w_);7fJu&Fl1eAA zU)%U44GNnOpv&~=dI}xhk|o{10Nw8x!m)Bkeo>+0i+rH#5ukfV=+Y)lfXtvDU7sb} z&hlH(t(<>NBVtg!9t*f=j~t9qIZ0#o8IKDNT;F_?18SF|-0}4a>|fK@8{i;2mx!pX zQSb#RaJgEYRKX>+D_D+VR~cWsyLkq@6X^{S34-(*LL&(wGp_OzZ6ADKW{6d|a)y|W zsL{D?2eU9kFw4b4F2+k&i}s{NH=*@hEcBw*qoaISDE_N)!MhPuI13e2%4v~%A_kSH&HyKE}%i8yXxK4i{; z3~lHI%tAad%ZE7L|HZ_`3nxQVwu*qboMS6WUuOTZF93Ejw&A>3_!Xh2a;2z&4sQ@j zh{lP}@~?A|g=}X6K*-i49tj#zJ3nN&wFO44qrgWOw-%8LAj94#31r}yzZ)|AHIwOI zz$IZmo-P9@&s*^fgSVeZyovePT7YOX^YIkq;Co~FxKzKdxJathcK*nb{6lhs zNiq4cCOJNA(zMRj%ib~Z&)EnuO{L7Dl8C|s53kOm64ID_NaIb|#bAI5d;HI4!sgMC zu}E_gxwES?VfWQVCDg<)_82BykXA z22sz ziKudZpFB$?W4o=jZ9D%542 zJnML@#QQ&GxoW+~w5>9&JONCHCBvy(Fn>W>n}Ef=!Jf-Hx7BX(Sk|u9u^4czbwDE~ zQ1SI}#%ub~q0pFAy@~sg$)P@F=irrB2Gz+_b~z#2Nk-X)Qs9NrJx>^Ar`4`3cCYJJ zwyRN=T?qliOVXIeoQRmjGGoMTtZP8Y>6?vpn5uebHdMtY0YWy8-O#Vi0;+zyL?S-j z*G282hV-W&6NB!RL{fGnyPF|hA0VA2q-m4*JYP$EuAvFFww6qcn@AQ5j}#%(WcY}O z2d(u+4K9ap^azbSCm!yI0#2(fl%N0wI<20=EKIA+QkZ7gIc_^ZL}35(c)0CDG_H%( znrc<{Sl`ZPvQ{{j6&^tam9%+{krW``fiK!Hf_^^^ia>B@4CrEB40+l@nDRhA9Mm%aAFr-un<(yLDNKq=v1t*@E(Ivt~Ks)3`Q~R zS272ik9eC9OGkPm+nPcv+nOk;K;v`W+!=Lptsz$>jymW2G)+@YM|Odx+ffx>kO``2 zl%pM&;-V0Ty;8++MwfW_!#B~i&{_Il*O!UpUP2Z_?jI~7dPGGHgpZj8Ud&P?$No7V z$4D3m+dBiv6;)n=?w1P+{u3a|8v&wBAV??-+orr5+nPEumA15`A^l^J=x||aw6rVyXSOw9B!j`?AsCffGN2 znS<|l>6&lX4$c__Ihk8|5ML0=hm6jpp++x@u&GIM6vpiyTMj_?*o-gLv3pEhnVV>c zhu6yraoXE@vmFSzAG|!1>l@3Kq`9VWGyw^Kd;8f?$^iF#CR4u1+p7GIlG{#yMC5`Q*^Txc_IkBd`iXYhGS^}F5;n#APnKqUqI?O?<3lDKC)uf!vJfZfnY z*X=J=RRHM%y+hI$GOy;YtR-8}(~-{q(hC(W*b=r!?)EloAWa zbw$|m_YtDw$l6-9RsHniIB2&sQtl5(dH&%#V`oL9dU=5(tX)CcSh#CIN?(zZHfenA z{?4mY5_;9oE2LL(ghsEDf%<00*Ii#p@U^q^{Up&=I)GQ}M6iyY6mO0t9jCp|d^w@LyNNOt))lSb zi`f`XarPjC9A*j!J|J+?j)xyEH;xs)pU(kbv<&BNdoN>FlYm(>LBkcBO;Ds3v+f2` zalKLVfI+dYS%WD4q+MuY*Q_F_=WF7-cAAOu&ZA-0O1y*Y);$_^c>;;5=eUprCy>-- zQ}Mk@u2wnzIwXt}1@JMBBeZT&pn1E!m=HH@)v8O5f>qOS_`+^&tjY;kwG;~+^{{GL@}IYA z5?I$_RRel?W+tI4tr`b7YpuT|F=#J;A;GGJy2?5!6ILxvhgIiOFZ^z+uCh99wFw_m z(4ZwAmPl-6NM{E~pAphJ=ch8Rk=NR+7{@PMF7p#{H|8f^LSvo&HydTXj&0V3E3D^^ zgejE(r1DFwFy+*Meqq&bYwcmztWN!8pp)QohKRz8>7|>U4)V+M)pn2-x&)g}O}i61 z!!|xn?0cSWiey7ZYe30@`S{B_(xq? zb|Um-ky2;ab+1zr!fw+t2|GT&p=o&W!Y=c%6BPfu<<}Lbmra`rQ}M?}2;j z^a9{|eZ0U&NqaGAW8vNbDcN;PIi-G5GAN~&k+M~mMZFeXKZ~}cOVib%poN z=4h{#K(LjAwf31>n*k*Y`EK_+NbB@xo$08fH4dt=#$H;ZEo<~c4a7Dd<7<7?x6k?> zkK3?S)=ozDP$^G6n-Fj-b%A*O;W!Lgn*72y36Jfsq0}0G7^GT2uHYq@-sLqkk=GLC zHQDgGCXv^Zkg zIBSJ?yoAMIMU-o`_#4LASZaR?-gOtJVS{m>Yswf0)dpOxhJ6wR?tCV}s1sD+ffN{3 z)Xv7{q#j{U$s79vNf`O@+l@c(*1i+6N?Te=5O>AHO$FZ$b&D5{^TJ zEIk$tl@I`IGawH(5t-I)(<|pD`fYro#J{V=IR``HI-*ucoCR1AG7_0|B@#8(E%CyD z#I!_-1uC%}CH99z2qbI_jok++fpKF7!JkYKr6bAWI$iq}Hn;qbV6&b~aP1K)_Su6V z)*?EEG~ypMlu6gnGQB}#))FqG0}@*%O8oRY)0n*|@p_d=EEF11A8(!(XPV}5j-l*& zG@*H(tu#IPu%Kw+D86V7CW$dtkQ*{_{NGJ8!l2 zG@yyg_QqW9e1F5j#*g=w#3q#Eu+@r@fEDJjRXK71mb17#kZ{t<64DyKzrn9+yzww` zYR}AESzL&RpVxanO;M7p9U77N90&PLEKeb@Wg4i4ML6kWmTJOB*+g7Qh?73eC(813 z7c8dzYO%`1JKu6PqKDFk2+Zj|R+nNL^uGZst37Bay{r-yu>290qIk;q(q>0b(8UX;E8a(K!K&{upm8BEqZ1qH+|w+ShCm&+`8CH64wI zqImeNxyGVA@2$aykwuH{lp;J`covm23l=fUwJ7RX^pLQvu-2x)BJA&ZXVIru;Xzh71{KtC7gbL_LCFhA{#!NPsLp(Q^dDTQ#p7W2vUIAAr?**h<+0&oPsXRu zvB-lA1P3okMO`!%8tc5!w`vX_8ceetrb<-q1+1UKJ_SWWl_Mxy_{t-9j0d~9%#ee) zMGbs^zSDZTJkQz!kz|&~rwmV%n~}{WBu8dnpUe-wVtZ9sqbM`k#!NCPs_z6^NFL1=+PBbY;2tFcgO_oOl4l%nQ5&q09 z;TxYL?J+*Tu!nDa=7x?pKIftw<8zBbG?p2kvyp?hlYVW7Si*IuUPH*{{Vu)#o!4r| z@jPMa8^@!dl$DZPCOD4o@qp9S-DQ&)j)=-~f8qhxX02Jr95Ow|O`e^isPokH6rT)5y0>DtmnYCVbN- z>BNy>qH9jF4Li_wRV{Y&%!_awW-k^AGRzLW&+$DvCqCVbiK82`ILx+@BAm~Kznt-p zS?H6@syfVaJmF|C43^mwd5$HUI>o|G0v4^jQ9Q*1J@e3v7+*tnsv-SZMikHZdpuG$ zvygs{ISE`p4v-EP(mMS#lC|sh6JKJVAQCV_<9r;?hhyB#=OC6Zerk#=`l+E5VFB0k zQwL_jPt0=t?73#x3A@KysU&O zg@@OO@7!SQc%ybZK0XaiHAZkw(r`_d3+#rW)1F zaYvc8rf@@-#MQJbeEfEOY5X#c{1$+p`#xJw@x?S5YJ3>tC#`S^D~v=1?L*<}$-h$a zHYD#2^7@Qs_E3GF&G%)cXJ&a$ctV-JAKw+Xw>5?n5WT*4-=_L#=PT`E(!MIRSo4RQ zLL;%>9A3a;ZGWp*F?^5jOCrxYf@uu^!kIiQ5FuByVs2ezoI7$jw;uDrm)!}R zae`TIfJw0WtqoJmOac)hO)>BjR)`cywXT5eR&rw{Rk&e z^!edN(!^5tMX|!73M(0WwD?jKvs33$9#Av(FR+)aH_$!xi!T~rixc{W2&pQpHLzIg zW@ugN?A8^<1%Ag;pAFO>s58eoG3SL-+9H^dbvXDMZ|QsyaTHYwK`N>|6z zd^#SfIu83CI!*+z3N{sX;H9Y$BGwrl1>k>)Hb6V`l2p`GQz1MDo{IYR{oEkMK+ue; zINe2nkwAEw1)gl6a(0tocgcdX=$Q#JoDOl@OwYM@d}f@x1g&NNb04=uTtS*x>YXU| z$MrU-4owAirIoyiQ2RG@e8Bi&tMLObp|OsRTkiC9Y^gf#OC4K6M`$3_@^emEEaf1C zK$D+yI^LI|eegbTW0xh3nUrIxtmilF0AreVySp(hC-j~q3lY_S=PqEmKhr1)y=HcY zV54{j|8j?C@MD`yqa1<&w!7@@Hp;uCiKRY{Vt17451vp|P`ZTvl&_)a(x0V62sW48 z3Cx{?T=mGUU?m=5ggYbJPKh=7#&POJ5aM^wA6TbJ=y)M=Jln|eI^M5eAvfET(?aD) zpL67}<2lWc6p%9na#Y8!W{A08f10St)u8ZV@C!suLPOV!d8pkE9=Xd>>_DS+?9lXYW z9Lm`DxoRMNA5*|M#qZm8|>FYkQT2(F&&quF-ixP5ba)`Ao-00vVa%^I1}xQzvvP#*GJsOj}`^ z=GcD+IB`kE8Rr_%N{yz&)gPG%Ui;*KbNq)Kgn)1S_lBC=Zu4ZW-)P!k$xo2^PiUy_ zy@E8c)HhJR^K|T|I_^syTSCW#@xOqjVAIO!Wg~nUYR!G% z#$X|h)5}=TZ`uLIG#&q^RT=+3$FS1>hkt8WnSE@{jq=Mh&*04;n?^b0M;P1%PseJ; zyQIPIU830S68*t5as2;`Oif>o{K|5OO^yXOzAg(i;w{0s3|gYsg?HFnID;k zx)yO^PXkgb->)%s#&3&kB@icB(`WCU#z(ohqb(B1EgS+m@NF zk^5vCRzmDI-84{kQFuV%8Y$|7t=m}YSfs5b7NJjg0P|z16PR^Bvg}oOps*u`U!hd; z__Y&$X_NHhBMAzsGCZL0wzGc{(3cOL#%aJXcq+o8AiazANmBut;jIX zKdp61yuk#54SZFIwER7V4=}s)p|H6Pox{|bP#gtcN`WIN#Tq@p>@2JR@1RqCIybM6 z&UmyF4a2vH5cA6#@o=y4h&BK?wkglTO55`5cui3t`#(yM4Qth)4$K0eW0nDQxFL7P zz*cJD$!wI)c$#ruPi!AB@Sc2Q;FQ`8#2!5as$YCTpzkHrzL1RplD7GTa6Wd|* zxIjBR@_}iGyT68-cznX=StuwLULplvJN(e!sCi56YTivB) z%>hNTRMBt0f}&Wz_jYF%fK*T@6xZDuM%XD@;RRNB3Kf>&KQ^{TRZs5lzm4Q2APojv zbynFY{ElG)C=oRy4hpI$|(*TvL}qY0aVqT}IZc)gl^ zY9|H2I9|OkA#O*hW87)VBuplago#!|^%UM?xFu8mOECPI4`BFHpNrwkehC^5FGy{8 zA)8+KSB&55P-DDvGN!9f?}gHs71m{F!^#V|9>j5jt9DfOIVwzd(C~P8{TR3dpR;C> zd(P$?WIA5BM!BVt8_)LSq8>cQ&~kr;?J9C{BE|fA1!d})d?xW77^M-1`+xVMJqi#{ zxz5AS@eG>@2%FN^`K$xQc0cRN+4P2a zUtMf1$rPJ)Hf9=~lQiDpqrJf#hmQ`%q|dHifQjjFMFyFhcIkKNPKC?0CJrAp#Rdb& z_EMZ++?rxtlP6%1hmTgv)YgaGQZ3FS4}T(Ha5?j1soyYbI6cf#=>U? zq>Qgy${qES!oFnRWu(|L&v>>RQn!>g^^?M0YPUC1ZV5FY;4!zpC?I_Ar3ASM?_~xAUdt@Z&dgHy4qi?V zedj#`+a`PrNOC>`+P=^{P`xh&p7%EPsWTGr?rPmOVX%SnHeR%6B#aG686{HECOuNk zAmsBNL2JFd2V7TZ<$!76kl1BK29I!%N>Ufx{1KrY`T;h&GRVIV-H(Ii&==?NucI5u z?vL}q4voNZ)^2U=*!V8p=y~fOpy4M{-m2Y>Yj~SJgq`?bKEII4v7_7Po*V7-d;X_-Id=^^2-K4 z=d12H0b^I3XN-NRc4OC|xK3lS3;{jSD&Jx8n_gZ{k8AZ~~LBx?hR{27Znb zDU;v1v{=KfDJvzrYwi zFUY`!lRad|zLkZm^?7Py5SHV_w$nyGVugl_C!bT9r`TO!lOP;9$oCVA!H0d+8iVID zV1i$eXXP=ios>aGZ?Y>zc*9wOH`%=5#Karym7q`Sjl9m!>6axLeB$AZkAZ<%v6S*aiabqpZ+DPe+%lrojm|ukT8pk@$BxMyvY^$2v3$oSwf?D6X6X##hYwC z-=&ig)Fnh@W-C&J*i^X5U~eZm9Zq0Mg{deWnvYghou|CMBRp6CA}xpaAJAZxXR@-u zM6{OZ3#NpN))s9oheZ<~i?@_TXR_d;0E|z!8!1U1!;DA_&E%&@h-r)mEW)$m5Dss#a3_4^fkU4W zoMQDlLvU#eJS(P4k$F+2Dbm)cwHS2yf`#)MW8*;O6shdKWs#tbO7_3T7*x*FLkz?? z9bU4A>R~k!zY91_?dH-J&Zz^YKaMP-l?S8{!Zx?wM{lY9*#4Oh$_cg|+-ZB&W-n57-{x0}>S?kf;zE=<)(h3{apaSL~ z$8mR5PkyJ8KSJ_Ps_}+vs?U5o=Do%kqS}}_1xd$;?6C?n>1AMQCekG|9}{VhH)SH_P_cU=tvVbtuoL!kONY?o zweRP;l`vwA$;=4;9!V}n&rE65QrSSs$;`AGW3P&*EccQRZkgW|$;CL6>HMxpZt!RZp756bcf0-as`PgL;zzQ|S0{1ZbVNH8(1ISw|Oi6Iv`*c?sA zh5N}IcB;$~#ZrrNgnm;KgcY<8|2RRc9Sn9TTZ?;vy0SKsxTqODQphQz1WCLz!Q>Rp z<=W*eaTz#}yDz=gNykbu3jtt*%cWC#8P2Si*W09ZraE2~%SSeg3$&Q&Vqbd01+H>m zdP&Pm{-{Y-%jh-NG=>xZ+2O2}|V+E+#MD#>0&V`XZFmD01a< zv>OMQ>F-Tk8N$urM4ixoWfnLvOQ%1>&gajw^&D`+RhXnY910toP|H}juM~JT_U~?{ zb+$t-Ha^t2UN)A43svLQY6sSV-vT%Vs{6Fufa9us2JeSPu}ks8GR^|oOyMBU@#wPg z@ZI^wWa0Z>#5{qs=h|JVSS-9$IC*AG0S%YQHbIeE%z6W_wYkmYi&{5Nm&?J$HS0o( zPy8)_0;uOR>jX9Hme*m{)A%79x9%aR%ZF&Ho`Yc{3)accR;tU!{*Iu>VC;NFE-jI9 ziZX6T#+UFHa=OugSeWO2J)KjmsrVQ(&95VJSM&Eq>W*9vUJ!D?M-+l(FWkn%efpcg zlpzd}%d150ktiS(-CqeZ5T+Wr5oUn{v)srfJD>CVh?ENJjMre}DE^{O9<{`GbEUv* z;`zXKv{4V@B#cD9-f7_tvD$5fuBY{r4|8(@KviD!SAdvI_!XeBpseyMKx=h3>TjeT*-G zFyx(&+aD^boBrT4;inJGP|=AdJc*xM9GA+q%^&^w;fOZxbNoSlL(lf9!n; zd{jlYekY_M0wDou#Fd~?qo77W4FcN1fDHzX3K(TE3Sv}Llmt*ggCR<68W}|g6*Vs7 z;D+D=0bGJ0L_`JLaF6TUHZCX#h(iCr?^NA2oyD1X??3N7^84j>-KtY(tL>aRb?;S7 z#RBJ#R9&COfW2#o&%|V+fL*_{2FSF#{s3m7>od#h`c#NR#vCobnwjVthqwP`bD#JZ;=N$9EHhq_!E$U2t>Wl%(TMjY;vf)5yQ&cQd?~Q|&Q-mo@9?b>G%3Z_+TKz+K!peNG#ivAr+~hp zKqq-XI}51wnV5$9$_UnOu2O9yfL5+?;8yo%Vzw4g0re(|?{(0vbu|=m5?>h7S+V@P zjtH9F`;u(c5A2+o~5(tKD;R*5mGZj;w;{$I>sc`3-xW(_s2}kZ!uC zc>^MyWgidMQuTTTQeDKChV&<2_(rius@qR$mQ3)%tsu0o{ zPyXuew5K8%<`@kdbRcl_%aAI}SA2{oUy(qa4g{KQwG8hU(4UE+J0m?YM}e;PfX)_B z>w6syHS5L}O(_8Lc-C;W#DXN3Sp3-E>nKKw0p}CUyNX=rlvuJHbzMHDM!xt36cO zD=GsT?AVEQBbq^i8w}R>Q`$gc_A$-{vTJMg%LFZam*o&X51x=ru-G3zr=c1@=`i9C z%TVJ0)bKJIkGW{cPgr@hiEVvYq!>gT4e^4;d?zqtH{zBz*)G;@#8Q+R{i{IqZ**pW zOg5D)WJkJ@Rcd4d6|&xLWDgVBuSRWREK^Ky2f@V&(naGj^sHSHCR_)c}KsLDNO*-wo&A8DI zqq@|R=wYd?o2C0VssZ0k+8-?8G+~N*@{(*<{UcfbZ&DxIfAQ+Qf_2NeLviIX>Gze+$2_CFC#5I1P9;>bks<_~U8zB<#z$-5dsA`u)%1RTN;N%fy^SPWD& zvyJ(9-vRnh6nVxJrqO>0$`|p=4nTMVVT;gY#uN|VF>j}iFzkMSc!s^>MR47JS8WG~{L$H>KxOyNE|4`@F z(n~{JS{kkqe}XnQzkMUy%j(-VL@Yhl`!N$2joUpm&Ue!|TGN<98h?XVf`*WNYx(vK zQ_4EV(%6s`Jv|h5DgiRuq}E#yw5prYVl_P~6u|alEG3gB10*Z)gjvZ{LV*D&M|gilSoNvA9Xq zeiwBMIv=Oh9qZcRn(T^aLDu~C4UIZ2D3g|;^Yl%OjBYT+KTZIGM?o`b+@_(kEoi0$8VY1h z3Ma?8h@CfboQqIOY=99HZyFanVkkwM-@fTN*rn)>TI_QcBLc#BO*F+XLq+UA`SuM{ zO}1xuO~%|pUO&i1<{PmkYK*!?&~E1>Fb=Kk1Y-SVA&KqS-@cJsr7tFp3-AI2YBz`* z{beDfL|-Nz1x=JjcMTn~pqUbAsEs%*?Gn4CT|!yfB_`3X>)SW39(Bq;+LHNP+;>6$^9$B)b9Qmh3v3&d#u*CiLjaX|7zHl_OIyXt|vB1GV#~vUqh$>(b z@5eO@*sAK#f6QWU&Rz}d)xcg2?A5?t4eZsxUJW!`1GKVT=QHd2&=P9= ze5TZ?$~ppe*{FxC^N^*mewK~L7L|QaJ_rz;hkPXkIMsQ`bmYKJCM-;G_gVRnK&x|* zGf_x`dI5g<$8?QKN_w+S>ywC2lWW-FwHg%Oqx`X2XA;66(}-wV=>kW($dR64rm^vv zmPi5IM=diCRXFgt5CVQNlAVGqqMwOhI=#Xz>_`3~`&~P^nN}tKko$>F61Y}FFl{)} zv|9Pc{GB>YpA(vr^NLEr*e0gx^vN%#Val=yj|I%;o?#>~R=gJth$B459w31f9y#nS zML5V!I+2wAxHU#q%8|n(SQJS)m05$41ujYf#lPr&4Bxg=*bfyHHueqstLWf-0D9Tg ztns;lzb1ns%DvoMdFtHS9AM#D0=7S0zXkk-_04?ab@T-1!J9{V(=kwm+yGKi1!iam zVL7CTj%18BkHjN^+oix}J)l{C4agf|{S$qzq6ya7O+loG5K-?~!S@uh9i0{Gs0EOm zIeP{LJb3e<32?X-3|h}Dh*gU$j@fj|NbC+7H@vP~srMg*j8oDeW05*M@qrZBG9Hg1 z!QgEZ&9k#5_1wJX0T`Qu&BJlUja!a2WA*#)=1GDaahj)}X8l02{t{xd(Wgl~5(s%% zpR}K1y@}@O*L>DNq^^dFQ+*~D$T>+h59b8g72teOf^$)6C}8vWG=O0@&oRsb24-2! zBmLIyf)zrg#yIH#$oL_HoP0qS$j_1jyLs;DBx92=NN^2w$H*DQnoTzir?Ti6MWu&_ zN_U}Ror`LS($=JAQIf{jDl~o%V0*1!tc%Y#$=ttdizD%luKM&^)m6LQ4_&;82&R25 zN_8WAP6bnMEHL&2rC8<~j}R}W+e}Qe(OG0H5-1Z)w(^Dn#&IsHA+ZknC&bDSvG$zm z5bFf6=Mbx<7HjByh_$^fHK(U3qoX<(Mbz=B>g$tUF2wJxQTqD* zJ|Mmyh~))c5dUi_u*Dw^Iu!qI=&O_r$ zm*Z%EMJmBVs!h|R-scq26sg5MgcO(i=m)G22`qe#&1ttf_+wa~ z!DwOurqN`b!MGL2kvJk*N1wsa=D{eTUSr%h4_&n%j2e9gV_1VV&d@b3V~sYb;bqj4 z)gga$>~{6?0-7+sl3|+4PYC}zW|1_Fx*bq!h&KfyW%f$-xQXVvl?MFgui$|PSfd8e zk}&aercCB~g!>wOpUHcyBm715i7#Q{6Gf6OK_T2o9o)!6^EIr%XbnU03vk29YbGQZixyg-akw)|Y5d}4mT&UC;gT*WcDlS<@HeQeb zkKhI586BC{%Q3r05vs6zgz(Fw0b&SZxQQWn|9UqMzaQgjtErlY1IWXRe!#w{+$ME2 zfMVDOaJV&3juwHC@u&y!!*0Z9Xv8b$0x?Y?D2cPaia^p8YXI*#z*}BD&0LVraHDOj z(OyopZ53M1@Cq$^Wdmpv+-SFTcd6k$3~)Y5v@g-VkfgecIDsl^EIwfBj88dkp&_}| zkxCFZZf>huWDCZRifb~(KSB#01(^15x-h9O!I4!e(bAY8;oH8YxqO>!IIGSMs4{sGoF8JrTWo{u6h?R*Od65do z5KHo9LD2joDy#6bBxo-cy4}?}qT79@MlJ0=Mc<^;o0E|bL>&3c)4+;s%NR$#?iRn* z(XLi6z>G)nkN6A3uOW9pMX6$e@}saSKym}P*cbTgvm&#vpwuzXXKFm3%>kZL!J}&e z!%kv=VM)CFBepmy?rf=;DFJk;7&n3mS}LNJ{uwnB^M8e!tJf+un-SK^OqY7PzO2;z z%I%1aj%9PzLO$w`I$2J=i0g{qSfCf`^6jK7DmKq}oaIJnyrd9b1%&F1$GxcQ*c+mb z*>m*UNSTZUmLCbsD3Enk$6i4M=UjC`HaSrROvVB;bpf|IbX>Jok`jAmG8UMxVWfko z%1p)rXP^Kgmg2?=xIS|)0b*)y05iJWD$x^z`H_@;nAH|p(I`+wzk!s%w?it~`0f{c zspYqUsFy*_3_~VUSleX7!LOCaofTMed10D!k)b%W7vYO^`o5xU1oJBlQ`2c9;5|$P zZLt1~kp6<;xx}MAQ+)Sm2c|jz)y= zY)pBZcjU!4jp9ne&gwvRMYqGSzU%F)O%`$T@Nzo zooA2&14=o|ZYQ3Ie-Lvb0ph21KC|5XR%2avGjfwt1$CfQQ-az_DHhm{ePs@0+`!hO zRO*HG1$aL!ifI0^NwhI1&8loRCS!rO0Rs`NS1#RjC+xNFAR=D5G<|g~VD_44jn1~~ z*SqFh?xd^vwik3~&$nsFk2~LXW(DVb8$>;sZ$nJ*WkjbP#Ib3=t*)oOm(S)D5{gr8 z6%+WwOhsZc)iS{`AVl;SU>co*MfQu*YY*fANV#VTchb~2xC?1^#@}x?U#xR+l2y}w z`Q42Irb%Fu4&ki~n56mgyECLnP0|-4ZCpPcL+5SmHJC5IJKs~eja0T?e&>?I;@Ka) zqXDrjQT2?BA@%zUltNy9_sIcTjT|QG<#&sb#mVg*aTQo>$G?mJ)S?MApmiR_l7~IF7mc2VLRgQdHQ5 zGEL^L_~4&u@TUm=2Ed!sPvzxzY_6dF^^y~S-|VB0YozB9=_K|FS$@&p`NnY=5S)BX z7kzhUyWU@Py)LY$zU_m#JQkP^7>=|;(k!%Tu5{Eb(RIJN33U@iCm=_TrfA0=A6kk9 z#t~H?WEKyI1qR`U{j9g(R~Cp?m%yP_)JpieDcO;l$~02pp@9$x6tYF<;U+J_r6;0p zxcY1+1Xdr&>@#xkVgg8xeLN^)iqT!&S|2{ywx6wt+UHcOcLJF@*>)66P=V|?5gqlB zj?Ym3_N?nQfnP3B6B;07-3j`Ny>I%P2trh3oHzXy=%PZsT0vnc$byX6?%Wv)uSZ88 zI~z;Ug*U3LgXya|v+iAsnplhe9mSj*T<6oy2(TTSKA$%HysA)F^uHIcN1Le+nq(~- znCx5z3sH{KXJMcH|LRlnL9j|pQkgkW7Zypo)GybK4Ad|Mx7+0QJKlVv}3LEaNE#j*isyn?qMaAfUFmsyEC%Ic|@MSzEt_3Ftq z=4}?)tLMWVW%YamgUKAfJM_SM=>~K4OloP>#Of)Zb%+Gi_|qh?dbXAqG2nZ$VgEG2 zpjOY7NE>~jR@2gp-r~oaBir_oz*z!mBY6$)R-n7^0_4Rk>ypRf-5I6+S?Zl)) zBjaw!7JU}>Mf5u?JsA8kDX?Yw`4=VAipFJ{#@fx3i9Jm|o)_cQ1&I`=Eas| zw|7vI-GpCCmTpV-6tf^1v+7GWP)qjWb&zZ`Z61jXL;^!RlI^D@d%SVU9!Y4PWU6hx zM_>1RUt)KAd)nW)SgE}WnZr3w>nzYvda!D@Iu;m#8VcS0M5jkcG(=7!fu{wB-9l#p zhP@79r^b5S$0%-23n{`Jv!3ruoZyh7x0d6)DUf5Lv^|V8<42e{jE-_ZbCs+WnmGBx z!gHTijceKk-=x`kX|M6MBEG|%M$jvOVqdo^+?H(QIwh8%*Z1p;MxK)-#9GR$Gmx_$oGj;}@Z5Cji*n(_h1sK(}6H1cJ zshAdy!|5K_4jsj80Oe_u?O5O#6u9i0xm5K{CCa{mlw1iJ8W}@4aD|}o{!^4j+{TkyD<#gP;((36@}B;dD4+|ueIEr-2o>qY<}lX5 z1i~!K5GgcO^@1R;F?wEudHHUfw2GcZ&LV*-DKMEyHfBdfIpmM}x7x@d)3@5ZYC@)> z==TJ~Hv&8)x(SIURd-YK$nZ;KErbGIg&zz2k*qYsE=tu&SLG)T-ar9Ww?YFH*{U;` z#bw>8I{6YAd)X5>LCapY^J=J$Zy=0zRB}Bn1-9zWHI(hsM3?wG#-`Q$jvjC2DT^CM zcHk_bAe$0=`4PvJtbUM7h8^YF+Dggw6@CdY!Impc%f&3KOPHJ0fn851xzZ_D89fOd zc-Sokwp=%09d`sC8tN8i;GxlOF(adt4HF4e3XxfI8w(87%vZ9IT@AkycnE0e{2E}2 zEnN?0q1BkBrBmq4KA)onJoPFF_%MdCwVAb}rK(C+wH?Qn&e9dyvBEW|podmXeDJOs z{PQaT-XGxJF=Mr;qm`qhv>oTzSSkX3lj-jtSFLgzk^aCj3d^F%-h}GwfUVWAqY1lG z!%nba(;TqxYS{DB?#VurmjZw7^@z3+kp=` zQ2b4!ST!Cfjt~^;m^x19$%Kkiis*906~uTj9`fKC=D;;wlLUyTx#QdG)FRqT$S*GxAgND z_thd9exW7a*T_9ytRQgOy}ZjqZH$B3js>a{l#`kv^9A}jYR3X!w@|~J>ncZztglup z9^yc1^Xk~3;&rQqF4Sb;;KZpFjG^LmY6asko8w>2C3C(0KMB}gB zK~F=eIY^Gvgf1bW8e)a{62z}0vL&H~r28O;CyR)cjs-x|Cjlf!ES5ZYhE*&=ZWkGWZhmMY2lLMt5|f_~aqgp-dE|4ixh>iie4UZiJW| z9PIem^!^lIW_YLXa1^SupcJ$;Or<2{SQeA9fL~y^ZLN@q<)Dx-iT;zIkce`10mO|3 z?$ia;lRgc`WGrw!3Se;I^dffBxFvhhG`KA5i!7IACVBx~mPMC}%R*yy?-uR-=;!LMxzra2ej$No4a$kFjomKEQs@{Ui`ksVK zFq02BOPr7`4jgh?d9;kphvEXmg(+oK!~#i(zp}6ry5l6tUwL@+oj(#~8C!*40)!x~ zw(GVq3-dj*EDMqjgF|`S9wtnUu?ylx{giP4xx_glDX?W6_KC8RUqyXy<2ht}55<-| z4a>;MA4KjIB5K)=1=6($>@Sp2`VAkD{poil5jTm3)OyE^}`rWiHX*Q$ZL03s& z6sqEn{bK5|zquNuq*AqLSs^4t2-vD18@5-o6qpKtLN;v2IWoj65M894his$ug=)i= zJtd2N-r%Ub^9#nFN!E}_*60?gekY9!0GTKQb7TCQ5 z@V!+LjrMPFPow=k=0g~E3OzCtL5XZION@4FEEi~^oj|lMqwY{$VIy!j2H9W@wPiHS zJm^PuR+N=l2?n*z$Ry4QlDw%y1w$cR&m~--Vc5}i0h90pP{6qXH)+;cpO=rJMPg%MVgb>c^}Th&X4FEscbspYhTN+fysp6XB`!zEg^M8PZX9Cn zD*$uF3PF1ir;-1M`t*)J`baW304W0dCY#1sk&v>MqkS}uTR|gw4QpJX3@oQH25E`J zw3M*FzeVYQf|7&?Y(2T?cavBHsW^%H;GF`VDG`r2K%#{L>z3$7Y~r$8 z`=c8XOCdP|+Y;RkW*kfB)tcN3=YiaVtO3=qMl8@#v&}Xk9%-ABP%LmD3OE|uXn;ik zScYW}b+VZS49s$`ic_efq2th11fy`q}P|ltF)$IDy~;{;V|c|Hhwc{BNdC-@jmaFYWE zt5%-!1WPGNBrsBlU^^1GvB0h$!6KS*CJTX+zv2nLjsj|QnFgprf!64^%z{RlWqC#0Of+tARjK~QieUV#;M1cG$_%+st)#P`Arcw$j4ur33gbxBC>kt>t zc>^eV1JF}eC%RCJnoxKpB_ndXLI+mBZXz{tv!JwFuKG>2;+%#Wji~!1)^1we^Ek93 zfv!TtbV|cND0MGjA=J%ZQTGKXpt=WZfNJod6)~AvkeFGPx{2MPomF=erpA~)6zaYL zy~$|_hfvY7gtKuI3;d2~BbCD34YsnfkR z-Topeur)kdUMrAV{wla{M8l@rzf-uYP9~?4HnpxgbS1Dr!)=6!@(p8wqcr0(l|#e) z6%FsKQ<53@CBhB1WC1N1vn&l0yF!fU@oOe?WxL3psSV{deg)b?2bY zd+0V=lYeWlMwza$j5V-jQ%_6rI$pGhQ8MU8=45a(g>rN=2LMN#Jnqi;k%1edYlRFo z6;!s0I-{1+(kyxafVA|c;8zk8%tVoyD3k=~N-u(W1fxQ&m$a4m{p%1z2gDLgV**|u ziLg|jlgl!5$rW=m0h)d>ZrFXvHyc2t!fa85s(7u_dc~pT6Bc~unkOzow2C8P^4ZYf zMWhB)tQrfvA5|@1z+7|<{@U9QX>L5nYdpsh&;G3OAEyjTMj4D{Gu6~-h9?I=P)FCj z@lK_ZvH9>=<>loZ6kM377YoY>50;qW!jiAC96~I7d3h<2@QjEZYfunUnHaOJ zz+3j|L3l5far#-xK84mc1Cl|QZf7EE`s!NTy6n~e%f8}X+4pMTU)6xi-%Fzjk6nfd z%NAgq+0I_NnD+kA5=;-u+4CU>v+M+bxjns10afSmrqC(l=;j~On6~7P={b(H%t^Rs zex)N{CMcaR6Om5K+=I0C34LFy)uLJ#XTr+lAJG{)jd_Mrh{K@7!MRxSs;zLQG4rv= zKAZRVuQ;!!Y@W>@EU++P-bI>=)~ka}M{yDyMYCq=?B|q!@RERO5^yzASBa~^vw62k zkvvG9@&M9C&LBCPH-RiiZ%L+2rjX3>AXx`vj0cwR!+FyskI4a?44%j5^6nMS%F|8; zHH3IigaWA(MzO$MUn*5n^IQp}1xn7sdoxi$Yjdau*Z^lp+ep)y1q{rxY_d`yFm<*; zNYog!A*g)mDms=dMgs3hfvu(JO3@NuRN9bm2#_>KxS1dyMbwZ~N<37`gi4cY{7dsF zu^)p-XRSuw#sX)4q14DuOEvOW&V3z>0;(}Z18la{crvrN;yKkwbfy}Y%_2aJae4@9 z91W=G!AigvrNCC>!`02|CyOw6tv=xx23DTxCmfs*aD)&sy`w8@m4FkV#jz9qgJVOH*wt!QZ1p%3530R4Grhumli5jDPAOxI` zL2jMg>!+)dRlO_9+2%xDVJIumS=2+WU3~B(HTdBK?+bA6K(da2)<+INv zJ^7hE>HTyY1*JR9AY;3R0nvi27iFyFKBS~WE*^l1AL7Y2$q2Zb_R|NqZEfNxUXiK{bxFAU!ZGGVC`F3 z`wBQ;sO{VqR599+#>wAUVDTrai*mVRgYef@SshAEVfWJ{Qb-~LBq%Hyqv`}H7|zzn ziNFT+wv$YV0}CmIBivwjA1?*gCGr@s zG&4%lxi?x%r2vBchi;ckDakjuTXE*cwu=9lsg&|Wf5?Lch9&{YOezjS*Gw6!(1p02 zu?0-(aXb(h*h!eB4;*sXuhqy#0a@K-HdZzHf*6#^+90A#*a!LuIB>p^MaBJb-Vyhl zpq^kpw_|K_A218pnB^c>s>%JB19HhU>p)G~Pe!4NbF#a*{Jm?53{qA~fjEoRk`#xM zNvwk!rc??9Ml1^D1u_Z0QNv_{e@%c%yvOZBMSx=J0wr-Z3c@@HU~k zU-@X*!D-xnsyK}_Yxg>h|Ej03xBh>E23-Cc*DLitmUN_Sf2|sK7{*zcR^8rN4KhOY z-p9gF+l%jWw!l6hH_wUyM%$qpKjJYlLEAyz+?JxhMF0(F`0db zG>wNj{Y;MuuS&OSrp~@kCjY=Y0%k_Pl8sOCfVX~{sZxs6!{W~)ZKU=Uk0}eJebE(I z&&(H;Jmx_%PmrXRQ&C=dEZ+UmY81y4&&s1EEN6uRA)z24+sm*|tW<_jb4Z?JIt5vr zdykbO71-2M{Rn1Z?&XxKjYDAJ3QZ;bTBekA1tg0`p%Ke6JWSW4y0vA<3Sa9AC$mBo zDrhp>-c@8g;O}YhHUzH#xK|sNsE*c+BHAV|lM32v_*~#OnXc4Gm-GSBUeb&@Kprw? zPgH9qp5!?SRj8Ex$r=`0;8DZzzYZl2uAkRouzC!{u zAKcHD)FR*Hxx2=hNSvj>nHSE>koUw)pw%{$RFG3-?4t!R54qpxKoYxIwbn}~W5GN{ z??PNp>S$m=ffEHVF08W!k(94d1!u>4ZsJgQ?OHWHK@3Z%yhEf7p+oqN0I>-B>P=Tg zvB1VnvfSaczmDM>Be2{Z2HNV-5IgtY6d)qIk)L-7kmiTXxE!BJyQd2 zzLmQ(+s=K=%Kg%jTVv&}cjSI)qFMV!?0)V2`I-? zuU|e4e$_5pK63Daigf(MpUZ%|-UbmzWb?q_6_q8z(w&$q{~N>=G)PE`Ri(7z+FR?{HqN6*liB1V-N z1fcO6GBNc~R9RS*%rN#Th@N_w#^lVRglXoXy@SX=m}>yW&wl2ymgtPu7A)R7@|}2W zfmx-5)kv}Vb_a-JDLGWjvQfU>tx>JVIo#-CY~e*`sLJPgDi2eYiOl|=c^nB5c3T}f3?qLTU zAbios72F~Z-1Q1>NF$;JS+h~mFtMkjW-{3ou-w zenmCYL-qZqD46xqxQ4pmJg&Ztwv%2NBY~HvQgv9GVu8Pt6|~$G^?Vi|yPb+GF4p6v z2z!bcg?h2Rhgn$Qm}M>2MdpM$aT-f&jK_OoVJ(D%8SN<+L12;;*rPE?ON3W!)td?& zgK7-6-k?Nko}zPF3M^uoJ&FR#HCF><*>bI97UW`~=PQS0_N=Z@$qMJ8f>z%J@xdR_;MWkGj<2_W#Zy8wSwC&- zu*`O?v#p$~G}42J^c_r3v^!vK8fRaw%rbK$>NQ8D^L3?v9FIy5$ZV*m@~)m*{KlQx z?x*Qmi&?7(we<49i41Ek8zUPELR;`Bp}3n)B^IBfQ!P?w_yMi&l2T{*FpWgF;i4z( zbdWQb71cnI6a%BwvZrpn3>Cgc1sG0wzGadHK2HgN5I{1URrH{CqBfb!R{2@9Ok7jyvFy#ULp zN*6is95S*fk6^eGMbz6AY?5NmQX5eytORf@aCS|iX{}h(8eWJa){DF*r|@jpt)q{j zv4qGH5cno#y8uolKtBM;mM#Fu9Fbcb)QyFruA@zZ5*KeDpoBYk$sCOlcp1XD4I~XR z;ZpgcN*4M_mc1KWz1Hq09j{mYwd$Zo0^nEM=Zo#L~}Z1I5z&k6AxXAqx7+27rgv?;(A4RR(yxIdW%+P>xNg6tTT zxG@g77^4GmD0Fl@4a00{@N)E6WQ)D3vPE6R917?JL0_@oV6WCLm%QW=4=Rf{hF50J z#%?}~Cg>A0rNFMYBAJW@t^@!^k?os}XH(sZrqWxH`H+@dkyk*MIKNVe+r7Tpf5JxE zULO8OXdsS14?{i_raynmQMTtk-^$H&wiYb>ehIio0_%$jtC7O*zZXOue*cHBI8Z%Gzkf#?pt`vwScnAv>Zv?RRVF?c z*A|EV=>Du}(sKx5<(Yne7e%74hr}+N+y#G)kywHrWua@BM816D4pMwG(XE2NDiZeA z!dxPZ1YY;RUEMS*-I~kF@ruN?9ujSZL~8jXXun33x|)th(@MnwW?Hge+z;roo#|F& zecMa6-QW`rYK%^Y!|-W?og!7|Y19!*5xtd`;%3?r;SH*=!v*LPSCa?4zxGD4p|JlE44DJDd>6EG6E&qHG4eN8F~$FG`0VoLN*MWU~V#8rv}cXt{Z z?ngIC0)}tL70?cMcjj;!<7`@k?q#0TdTWAPcRTN;VAfHzhA5jSwY;;X)icydt(oX+ z(B73oLvQcvpiyBL3xgG_gzfTsG*CIA@Lp2{=Kf~h_aS$aoAp))P=c0!`Y zc(E%+)?&b3^0p zD!WqMRa8Zd@pBhc`W6!v+#Lin%{`Py9iX)ubPYjQa83g(zBOUOPI16))3Emv_I8an zq2y@2r87i8u>)i6;rw=!?u$prjCBVo*P26>8w=GawJ2Wep?JqqTX|<{iq9Vciri&) z;jZlu+*bj&D|a1p3xuNbUAePB%9d+Q@_62F2^t2jHH)~j@Fniqoi{Nb{e6Mmony>G zcV?EuwXV5RHEkzyhu4gX%?aH4WGqxtXgA&p;4nMVGrHoZ2czO9PJ4iLysYnb2kavn zb}?Ze)3A=0^^I}BKB!^K341+Y*(!;tN-(TM5jSr*-+Q*}s*x27Jp8CB z*)j)RfNV7lWA~_!-00)5>ZqJ7vFeB$ld-_*V1i1VgS&>_aCaDBTsujJ=0Lms4uJac zY7jK!B5DXbNnP0@(^u2`+`E(XKVlDKFOz#U&|D2T&Wi+hV`duC(Xqdjd#ZDPDIew7 zUwW3O3Do{lHge#4WZ_5FFCPAIy@#Vfs>Iu0TEV3a^JhM%C?;Ssszjlgko_erR;!tT zKdyvxe!;JNb;bvK3tyc<`GV~z#2w2wAnh!NsYAA94@mJpBSVoSRDJKXNciZUntg5+7}Ba7(G{!_<9@#G0T#T zZ)XXIJd@E734={#R&nUf%A=Jy>nS;t5sKCkIue-Sp>w06!#WMoDQ%LDh>{6iHt`V4VE1=FZ$?dgMC3_U z;)|4WmW_fY@q(Gf%!vfP)Y#?#ThD5=R<*);GjP(x4aNeWSF$b-a>CGt@8B2jHK%GP zT3u}-*8-(6vx25<(NAV3&j}b4k?EM@a0(<89@IG$PD&2*t#{~yKDdZJ-#FZGgCupS zoU@z?lFYgdS$fJ$!0Y{TWP2Ig9~?CL;hozDDY;EI_b-pzstRb~o=bxc(nS?Q|DAIt8X(_SoRd=pVj!(u?^-hY zpa)Tf1JNjr=t&|Ptr6kFF#{}5u8_!Z+CXzv;6c{cfhdU$Usa?7iWJ6hD{f?D)+V5&>3dzQJZZDic4e4x%U z6I4@5Suaf~&++is*}-FX&Ev`B@dtDVEWBHGK}YyQGJ_ote|2e?5O@=-MrUUN_k_c{ z6?r%DU|r4`DGhBN>OE`qPL!7lG$A)(sku+*Q*+aX>3Q!6DAMe!gD+C85=z18&%nC?ghag{gNEJp zH#ktUBqtZ|6N&_m*A@0dh3Gnvqk>7ul+{Qnm+jXXvr(v?`%|+Gts3J16w*VbIb%N* zC=gvS5`cV1oWEyE|`GU{n2Zo zEmM9%MFKY!D$$3aZ%402JKSxz1pxTcDM9_4fur2`!a+>m^2s44en5<{u zXWv>5O+0vNIaEPdbIPHr+KDMw*>>bnoF~OB&K{Bz?F2B5nSn*N^Yj%A9XLwDpCu^61$-`=EF>!6>!?N#`~Xokwr7e1eAP3~Z8) zn4_WS*^0z*9uhfCllY1jTBD)}iTvn~V#)>H9YKxS+WPFqCZ#a_GjA8L(FloxXjqZB z&O_pcrb(FoSra4*qnV1tAs!N)n%U`WgWvfj2I2E9!-5qA2=j z@ta%wXHAGOq0W3Q?6dci0M<_oBZq%BLg>~QuP2#<<~Z9wyD@&9({-J@tUAB@#R7A2 zYDwylK6;gQ(GZF=U9|l{#59Hi8gm~D^FzR_taqz|G2gC`q${+xDlqEE3I#TWrH%?) z&!-w{j1OCw@}8_Hm%73Nt3o?n0g)rK!Z1gLjk>~QtHP%+K%HLSA~d;i z2cEijdVL!(CXH#xMCfq2=?DqrFMX7iKg@K5=E~Gc^GC`z>+%yq*l5RFe{=ba9$zqE zhMWqh-h57Mc$m6+dXLXz zJIs|n%6=dnJXfJAIe@;bBBo2SG!aj0{w`QjW{`~PkPi#1{@a)n39R4`#`8X)@7#vr zOS>(qA7#hwDGw^#Gi}^|SGZ>@+?0d3pN{Qz;Z7lLv{{ulVCYUUol`|~hBAw}W6E3v z>hS4`pi&qG{7EPtsZ;jHZ##e)a~d433HJhFE9Cbx-s5Tl4AB7l0>F~8E$BpXL|X!z zzfE zm>m*&=UU6}Iz@_<-*pbsh9ByM-xUTPGiWu~Q+=+gPAjva7|EXvTKzPXg4i4$uSopM zL8}k2*$P|C3R>Onq4WARmQ&P_D5g^+u{Lc`OWI;roFXe|)yqR-T+<{>r>F@MR?zB0 zg!-J?YSA=_t+qm@PTB6IM3xyJVKcDF@yC|#PcSe{4U!n)3&)oUL2r4}fScdl}~FA|S< z8JYh?&}waYvx8P29joLvP2W#oh?uI%)WYrgb$2YvJ$ctAa_bD3CRJN$FL@$WvphIw zI&f~oRte{}Cy0}W(RHK>UpIw5_5SnO3V|b1bxA(et&6ig_%j{&pV#;Y6aPpeZ6s3l z>oIQOKabeLmuW-^M6|C))L5iyp$FL=4rFI)WY2E{vNhsFcp_C(RqYaYr0TIlq2r;y z&{Fh7s?O2ycBE>chkgeK{cov0XuTKdb61ODsGnz1T5qK44CGpos<(K5p zx??5z19rPBQg!`!dOi3em<<1F_6%2~Y5{6F9iOX&1@)$tb2N{0(50de12Y@~Mq&7e z>sbRZ|O*l)n$^&TND0d#HFIV7c?&X}HQ{xAo9ztOgfu~ctDSao_ z4b}0aKW-y^921Qjcv^^34fqa{()9hAfOq8%JVloyyyTh>c6C8tU4TcgWK#^%;5;K= zB4du)xksxJE)&~g+&F?tr?8)2_cQCdf=Z*dAZu?>srhF0UdaC@4LJN4`sBu&-=n9R z{!76r&Ug`>bi|8#oR7hv{FhSXAg)tCUbH|!|A}}JuobtjhJ zG^F^#JV2t_cw`!5okezNs0J1cT$I1S{5MU52+~|ozWTv5=(e@8Y9ciBvaE4|Ndl%x zAT*RU&T>&slOpA!oQJe=F*FD}?4N3h6(W>Dp)!IZ`VFe(%sW;H~|^dG#+v(bpr7czq?b3G)EXqtrSKQuui-wdks z_K;XLRv)aJSwrk8V_FV_8F=%>Wtfv zY3x2!E&QI%-#su!;LfZK;YYbMV}J+Ih&P!N37B--g06G(cRx^P7{#>Gh5D0&4J6EI zQ|N&Er+_ZXIkF1>a=tJb9UfM0Tm0}(M=kbDR*qb2WYah#6o-cpn&=_a)j_DA=KC}f z!bT5UJqLNQz?f1;)I#ta4?KBTHw?X%o$VxYfQQJ7sBTJ=tciT~4-nCzijG2L58vzt zek&mgn?O3|J?Wwt6{=9gbV<1?@y5>bK?{6;hy!uDx84bS=nJ1S2j5cA^hblfv$vX| z3ZZ&jeB9fF!<27q-18LfI)$4bMQ1-t^x!r_6$_v&E~sLFBW;H&Wcf8^eyNLuDhi-d zEK>YYp$ew#P{pNS##HJG(g)#+ZylkEfewIYH9!#nEZtrNI?visU!f_rt*C{%UiDLQ#O>FjC@q~9zqeg9Qb!wV~=?^qP!ipzc z=OOW2f#nZ0q%G4QXo7?lPdLOwB43gC_dNtNWD3<(FP^Zlzv|IrKR0`{Bc8B-{5tpQ zI$5amFUAv=!Ynfv$tyJ44?hDdc06I~erjFy7~s=T6DG}YR&vD?MlvT7xJzRT1Dn&N zal{iox{`I9j3<;0cl!pi?RFJ1|A~0QWRPs;Lol~>QgWNt@2p9-s%mn;Ip(2-pTb_O z7f-mp1MG*Qk7?9+;t72{II|r%=W3i65T_%akVJm~R#+`eAtON{aKsb*L8@C98v!@Z zn_=OY%{x@%-}MRbHx*C#n+MVD4n&7(M2m^2Iq`(i9%TI;$bKaI(BxPmiyKequ4;SY z37y(Q$4MX2ob$vJ5;eRXPuPwJ$DMoiuNK={xkc0e8qHv`1M!5jQP@O0;gEe*pRnTzPhCs;4aE~iqg2Ne%8-<%|K%Danh{U9 zydC;#!3XTC=0hqwicr-YwYeSC2$zZNBHTFQ2@BIu_oxq9*A-7l*^I2c@r3_-?!kY& z#18*O;tA8xERy?7Xhs67NmT}(@3DbXQf`k=M_^>xMYLZVjCN@pN^dFia zVZ{?}^pHqXB>sKzgp~1=pz<7f3L2I>~dz_TbmqXG>%3oMX zIVqzs6=2`>ugr-AHfU_$Zge{-Iq_l?zvHoW=VKYw*o-#5MJD43rj=evD}99GCVo62 zR~I%IPdF~VENzu6$Jnx5s$}V@WErnzIlv=JQ}Kl5d=jqyOAhXbbq3WPVUruL$aPob zF45$k+~8JSBk_c6P094AP6i3H=LjA2$&oA z8-#|bc)}ORiv{)tl=T!u4Yrt#FL1~-uc3ItI-X>8Jo+%+L1cj@GMhwnJmGmEvhY%> z)e}z`q)^3)C!C;(c>1+Z%*T}LNJjPRh-#dhm=g(9Y5MIz-|2k2;t8KK&RxIZ9~BN$ z%5B_tDBNL%d$q>>>|1W!e=?qMKd9r;hbH0)`+*s=j83YE7v^& zxkavD%Jp5ju952^xjrk``Es2t*HXD&E7!4dJyvM>E+EB3x$?Qt*x@bZnk?7Wa&0Tu zc5+RVYX`Y@lxrusc9!b_ay>|{hsZTuu7}DsL#{{2HB+uf%eA{)kCkhdTzkm1mt0Sj zYqnfZmTOHy4SFQu)8j|Z^x#r3BOu6RE^&GhlmFsZ17RdDixsH_UXt@^3 z^mFqaU7RmK;xsI3XRdSsm*K6fkEZ0eLog&xkasD*E{4oSFU%uR~Kk!y`y*U5FgT;G!G2DxsM>$`G&U#^?w z`jK2ek?Uu2t(EJSa{XGa-^$gH>vwYfUamjNb&Fhok?S_OZkOv$x$ctdA9CFzSKkQf z|8h-|YfHH%%eA#!+sd__T+`&*0oV2GLuKD5;}yH1^4E)x4wY{zK70taJJUlIeKQuV z4~2gVh1YF;Vi0_~aNmqU6*)Q4_Y#w@YvQhLJPCTs&m90(dbI8=yp)e4J!Xx<+#qk+Ie&S+ue6ENn z{$KFi^T1~&IS%%W<$=ZYLE+7z@OOC-9{Ly=swmC~g?IEm`Nq6FB=L!@9ii~BI0$)iwM=7l5vtj0*R;Xizm^TK{U zpM@0n!(8`e-)EQh8hdvABbDLt*jcSL(|zQdT#3Zy79tFic$k6v!ml* zMH&eUt;GNuFI%Bu6OV=>*Q@Ib((90CM%MJ52*ZA_OL z0JlH>Tm+|k9rN+bd5Z+!@|I*4@X)YH2dC>$`YB3TfES>re1UW>M;9}Kgxnw;$zvA& z-vyG-7)SguNsmOUL5u0e5olQk00^$$IS~FJ6n@j-4tpr91ftze1@UChE7j-;(^pf2 zIioKeJ*tuBwA%HbO_c3Qn%pfk=2a+aNn-W50KPHrH;@qCjbqQz$CkXJJ90h|TNmEW+lXRRfXH8No=zMi%&V@On zaz_5y1uGO@nYtt`6sw-GsbqVo+saU^#??!L=MFnhq#q9Xr+>ew9To2%eU#N9<{)Q4 z&mRVjF$RQx9TNU6H~eKN{Gkzfk+bbiE>@w$t-wJnp9DNXKpDjhH-U7*f8y zWS>wuCcSLrpi;Y7-~!<0OZtvrpTqVJoEy&UnV6n%f5z{^M;`if5Oas*;iZtq`7c5K z@)(RDv_0n>@C7-lfOH{vK3^_^W&QGM zatJuxER2!s6#&Hgn%AgRwyVAne@8m~#yk!6NpmW9sa6gf&vs z)Y*y|;SV`)PNtPS+_+9&WmJ8#W72$VhilTjtQWhjbJ85eoQQw68}4+;H7Cu-rLksZ zWTQLfRG|l9@-(`Wm}BPLx{Tv=K0f||W}3d56X?G*Yf}DX&VMl4i!(ZN&deGV{%{bc z0x{f;j4Dn9_-I95`0YGcGSKdtQ20I8!$g;CRPabbvSVy}bAc_H+=gz))BeVVJ~5 z5?Gh_-*URG-}KV{^-&dsFhVATePy*fIb-pzko*9%Mi7CgP*^=QmBqSPBZ6t+U^43zg<9mG9WXX6f|*PO zQKIm{R#zXqNGqKaSoatZs zwhW2f=i3sC<*aGJ+>$MMVbn!;qKlc6PyPKog`Qlj;e*2^%Z`ixmDe{2c#7fE>zKgPkl zJcVpx**e6GI*_jUzUo#4`5f8<@O3Ak zRt8cT`0Z|7=c?V^7~rZs40izSF3Vj}v&TF=(C|X@{*qFpWk<{&yDPVWgF$s z?v4?yaV#kSqwH|S*=-Q`OygF-L%t1hFj@^hC%s0sytDZ|8$6} zob&>q2jisu!HK?{aNE+HijJk>m8;~Cu!E9nAovsoG(E!p)&LKworoZEO8YG%=G5|o z(9hTSpTbRoF`HwR#`r!mXj4wvj)Cy_(UMtQV%pzxGq@eZuNEg1Yi3le}UKdr@1C656?Dfs?P+imyz~7wpbtV?E$$wNWuNru!{I z2c5o}nnP?hf>y?|)}ff5vEsY2!IkE=Lf z5IQ!Xu+;5haXO2kENnP&&tevo1zlc&x%;kPe7?xJ`*5=4E`c#w73HJoaw$rpehZBY zRlYb{g(2)^5xdDlD53~sU`Q8}j%=h$mDIVb!mH{M)#N3zV62RLQl>Qud*SGR&)z^T z80tI>N>rOzp~(1*DEF~s`q&eD2F2qiP5q`Wn|8{#F+jYp0>g$XeP+kzmA0F+QoUHT4x(^ZXNEb!fAMfqv=`|yypXfj2%bORbS z7FdV!8Ib2XRlXFPEU7cb%MEF!#R3a727C>I7?uLVg+dd=&*L@#dhmd&k^2gX;y#@W z2Rp|CS83cly_C9izOQAjJ32h~ zU`-N)y_EVp9MiThry?n1Ncc6S1vWNh&}uKO1*TYFqL9c<9k4YPxamZ$k!z?GuzeZs zEU^JO2#`c9YA7w0+9#;I50nfOVu1{m@wUn+zDAlrViY$EV&T96jQ{G{Exz zdxCF*zS#c`tJ(AiI@1|U7gr_;RsjCXR(E#5nP^RTG${9L-g#6!8+-T4Q$7UU2GbF? zaLc@&hQjE9=h zQ3a7=8$2~k$>Z{SWpnAl&-Mp9fF9P5biU#w-B*mk%^NOp#kxd7FJf$c5a*Eote*!=H(UR}oJqs-)jgxHe;z}381v1&aDLCn0>rHCE z15VfpaBqx~hcLNBQckbLPoI^=t!ZIOPfZqElU-E?Qv*Xq^yl20V20UWGx_Gm)8V*_ z1hGIbBx8Y7a9zGnlCN48qHGp7FmDNR2fplOcu*M_+Mpw9d~ly} z>Vux8LF$?D5Us9Hj}>(#L*T4%jp%D#3iRa{Baahfg?};Sg1$1fzH)dU_TS5&3V$1b zul4^78I_LekWxDORi{j`fh6SzC&`dW z1q*7y$fMC6ys>%N5jKN$XGbXFeb~Q}KNbES0AK6xjH?o?15y-B-lsJwO}{3KLm`A* z$!<5PHBckujwOIZ5QeYt|ALlws^B}^(|xB3%yCr5dg*}1mGye#cjBSU!}v~*t;7Mm zNMJE4a&F5X6i%uRRV1yegS(#6;v1;&=m-8SoyS(Il`_Zc6mCkDLe5y=n(kE747m%1 zOYx`#)CHz#(yI8kd~xy|f+0UhO$G6dMS7^&02ZAWun4}0_H(fSYlKum9;6OZ)DV}Y zd`=Z@iLGq)lzIz*#cBLR9R3$~i_5?4&yYQ7jG#0|kgO+8yHtx-z{x5<7MM&76q%xh ze8s1^L@TsJD`Kj?Xoy3i6)9Q)MLQnY@b=lnx|#okfUYPf)(Dxnv;mTa*kfO^oMtZ@ z=>$n9U$8`Qf#=$hAh2F?6L3%n7KxePGIT{Xn9oB_iyCdi;GPf_Nf~u*L*XP?sQ|$p zvok}zlQN2rVRks!mVG#M?ZM_*h zqq=Saxxo}ewh#tg>gz{$zL-VBn4{FvHp3Q6FQyfyR+Nh`H4Y=PWXNeNr!!Hu!3-$? zIA#JFnrW`BzXS|0gl6r(mwg{HKDvjoJmEdh7<3=TGNZoWM$`=j%TP&4$Baw25%cGk zQ0n6L%ulD>uw^@t&2(xvvm|Lz0(85&2Xz}S=HVPE5^uRc=ohy#R^5w;TLH941P@{ zWhzz;qbn-bwKH=6Dm?g&*AXjipwDQ1?gI=)6)s*dbNyDmz114OEK5dfYUJ~~O*OI+ z_BU!!U#YbXnrJsl8&Rz86vU4mN}ky2)85Ly8QFD{IgO^n-$4J@laveq znXa;|JZw(-4@Z6OSfYFHU76+V{MntRCM8= zJ#pt8P4&}e4=f-bvNDkU_h+DG)%a$F_oUx(E|(`bWC}Qkpb(75K`iGH9Mfh%W~Pyh zQ*LTbu;)BXv^3#@8HYm?rBF7zKr$x+{IatZG;igcsn5$81MiZ~npn3VW6xQ@m{`}A zD}2g5`#|^bFyl^oGcoE+9OywMfJN05;>adf;HVQL?^(vvAfQrX<~BUTnEFFI`m;z_ z=0eIHD?vz}VT0GP%>dP5J>sg$Ik9dZ=}FLpkD2Lp$JZT4{h#h6#y0uO27e2HTIkE194o=T2Bs3@I1sBlxb8r*5@b2r7JHK5Wiol$(@rLX z_}dMZzXbfm)#Xlf9O$vNWjQ9BV}^o)YY(0v$8wN%7O3v*S-p(D0Y0Jq@DK~RLanStEhaqmNj<$@ro@l2RS5=2?ywqd zVgOP}5^VfrSpBia97vlTs_OCZ=f~WGcgBZ$`^)wu_=@*M>s*gSXvYRv_C-k54KTi7 zM3ddc36I;7)KFDV6M>WqLlypPVvw|;>B`%B3Xjj0l`H+l;S|gHGsn<$6iJ;bU(m7@ znBgt=-gEsx&l=E@?(~se(Y)?qs>=^YxslgKdY;R4S(M;l2J~L_;UOT$pZ6Y<+0Sqm ztxD9tkv2z7Z@MXQKBKG#wiuhaBEe{*OVJ^vSF$vbrRas6RXjb|K^#fo?_AdJC4RA? zq=CJT&K5I-kNEF#@fY!5v z{1BE6DseJ1ni+Wpk7g$Gux08dN+78SX|9?kxoS!i*%*+`%YRB!HKjyJC{

ZaUO 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 literal 0 HcmV?d00001 diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/aead.h b/thirdparty/GmSSL-3.1.1/include/gmssl/aead.h new file mode 100644 index 0000000..1bc13b5 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/aead.h @@ -0,0 +1,108 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_AEAD_H +#define GMSSL_AEAD_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + SM4_CBC_CTX enc_ctx; + SM3_HMAC_CTX mac_ctx; + uint8_t mac[SM3_HMAC_SIZE]; + size_t maclen; +} SM4_CBC_SM3_HMAC_CTX; + +#define SM4_CBC_SM3_HMAC_KEY_SIZE 48 +#define SM4_CBC_SM3_HMAC_IV_SIZE 16 + +_gmssl_export int sm4_cbc_sm3_hmac_encrypt_init(SM4_CBC_SM3_HMAC_CTX *ctx, + const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen); +_gmssl_export int sm4_cbc_sm3_hmac_encrypt_update(SM4_CBC_SM3_HMAC_CTX *ctx, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +_gmssl_export int sm4_cbc_sm3_hmac_encrypt_finish(SM4_CBC_SM3_HMAC_CTX *ctx, + uint8_t *out, size_t *outlen); +_gmssl_export int sm4_cbc_sm3_hmac_decrypt_init(SM4_CBC_SM3_HMAC_CTX *ctx, + const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen); +_gmssl_export int sm4_cbc_sm3_hmac_decrypt_update(SM4_CBC_SM3_HMAC_CTX *ctx, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +_gmssl_export int sm4_cbc_sm3_hmac_decrypt_finish(SM4_CBC_SM3_HMAC_CTX *ctx, + uint8_t *out, size_t *outlen); + + +typedef struct { + SM4_CTR_CTX enc_ctx; + SM3_HMAC_CTX mac_ctx; + uint8_t mac[SM3_HMAC_SIZE]; + size_t maclen; +} SM4_CTR_SM3_HMAC_CTX; + +#define SM4_CTR_SM3_HMAC_KEY_SIZE 48 +#define SM4_CTR_SM3_HMAC_IV_SIZE 16 + +_gmssl_export int sm4_ctr_sm3_hmac_encrypt_init(SM4_CTR_SM3_HMAC_CTX *ctx, + const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen); +_gmssl_export int sm4_ctr_sm3_hmac_encrypt_update(SM4_CTR_SM3_HMAC_CTX *ctx, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +_gmssl_export int sm4_ctr_sm3_hmac_encrypt_finish(SM4_CTR_SM3_HMAC_CTX *ctx, + uint8_t *out, size_t *outlen); +_gmssl_export int sm4_ctr_sm3_hmac_decrypt_init(SM4_CTR_SM3_HMAC_CTX *ctx, + const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen); +_gmssl_export int sm4_ctr_sm3_hmac_decrypt_update(SM4_CTR_SM3_HMAC_CTX *ctx, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +_gmssl_export int sm4_ctr_sm3_hmac_decrypt_finish(SM4_CTR_SM3_HMAC_CTX *ctx, + uint8_t *out, size_t *outlen); + + +typedef struct { + SM4_CTR_CTX enc_ctx; + GHASH_CTX mac_ctx; + uint8_t Y[16]; // E(K, Y_0) + size_t taglen; + uint8_t mac[16]; + size_t maclen; +} SM4_GCM_CTX; + +#define SM4_GCM_KEY_SIZE 16 +#define SM4_GCM_DEFAULT_TAG_SIZE 16 + +_gmssl_export int sm4_gcm_encrypt_init(SM4_GCM_CTX *ctx, + const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, size_t taglen); +_gmssl_export int sm4_gcm_encrypt_update(SM4_GCM_CTX *ctx, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +_gmssl_export int sm4_gcm_encrypt_finish(SM4_GCM_CTX *ctx, + uint8_t *out, size_t *outlen); +_gmssl_export int sm4_gcm_decrypt_init(SM4_GCM_CTX *ctx, + const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, size_t taglen); +_gmssl_export int sm4_gcm_decrypt_update(SM4_GCM_CTX *ctx, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +_gmssl_export int sm4_gcm_decrypt_finish(SM4_GCM_CTX *ctx, + uint8_t *out, size_t *outlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/aes.h b/thirdparty/GmSSL-3.1.1/include/gmssl/aes.h new file mode 100644 index 0000000..e43b27a --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/aes.h @@ -0,0 +1,90 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_AES_H +#define GMSSL_AES_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define AES128_KEY_BITS 128 +#define AES192_KEY_BITS 192 +#define AES256_KEY_BITS 256 + +#define AES128_KEY_SIZE (AES128_KEY_BITS/8) +#define AES192_KEY_SIZE (AES192_KEY_BITS/8) +#define AES256_KEY_SIZE (AES256_KEY_BITS/8) + +#define AES_BLOCK_SIZE 16 + +#define AES128_ROUNDS 10 +#define AES192_ROUNDS 12 +#define AES256_ROUNDS 14 +#define AES_MAX_ROUNDS AES256_ROUNDS + + +typedef struct { + uint32_t rk[4 * (AES_MAX_ROUNDS + 1)]; + size_t rounds; +} AES_KEY; + +int aes_set_encrypt_key(AES_KEY *key, const uint8_t *raw_key, size_t raw_key_len); +int aes_set_decrypt_key(AES_KEY *key, const uint8_t *raw_key, size_t raw_key_len); +void aes_encrypt(const AES_KEY *key, const uint8_t in[AES_BLOCK_SIZE], uint8_t out[AES_BLOCK_SIZE]); +void aes_decrypt(const AES_KEY *key, const uint8_t in[AES_BLOCK_SIZE], uint8_t out[AES_BLOCK_SIZE]); + + +void aes_cbc_encrypt(const AES_KEY *key, const uint8_t iv[AES_BLOCK_SIZE], + const uint8_t *in, size_t nblocks, uint8_t *out); +void aes_cbc_decrypt(const AES_KEY *key, const uint8_t iv[AES_BLOCK_SIZE], + const uint8_t *in, size_t nblocks, uint8_t *out); +int aes_cbc_padding_encrypt(const AES_KEY *key, const uint8_t iv[AES_BLOCK_SIZE], + const uint8_t *in, size_t inlen, + uint8_t *out, size_t *outlen); +int aes_cbc_padding_decrypt(const AES_KEY *key, const uint8_t iv[AES_BLOCK_SIZE], + const uint8_t *in, size_t inlen, + uint8_t *out, size_t *outlen); + +void aes_ctr_encrypt(const AES_KEY *key, uint8_t ctr[AES_BLOCK_SIZE], + const uint8_t *in, size_t inlen, uint8_t *out); +#define aes_ctr_decrypt(key,ctr,in,inlen,out) aes_ctr_encrypt(key,ctr,in,inlen,out) + + +#define AES_GCM_IV_MIN_SIZE 1 +#define AES_GCM_IV_MAX_SIZE ((uint64_t)(1 << (64-3))) +#define AES_GCM_IV_DEFAULT_BITS 96 +#define AES_GCM_IV_DEFAULT_SIZE 12 + +#define AES_GCM_MIN_AAD_SIZE 0 +#define AES_GCM_MAX_AAD_SIZE ((uint64_t)(1 << (64-3))) + +#define AES_GCM_MIN_PLAINTEXT_SIZE 0 +#define AES_GCM_MAX_PLAINTEXT_SIZE ((((uint64_t)1 << 39) - 256) >> 3) + +#define AES_GCM_MAX_TAG_SIZE 16 + +int aes_gcm_encrypt(const AES_KEY *key, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, const uint8_t *in, size_t inlen, + uint8_t *out, size_t taglen, uint8_t *tag); +int aes_gcm_decrypt(const AES_KEY *key, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, const uint8_t *in, size_t inlen, + const uint8_t *tag, size_t taglen, uint8_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/api.h b/thirdparty/GmSSL-3.1.1/include/gmssl/api.h new file mode 100644 index 0000000..d8fd184 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/api.h @@ -0,0 +1,23 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_API_H +#define GMSSL_API_H + + +#ifdef WIN32 +#define _gmssl_export __declspec(dllexport) +#elif defined(__GNUC__) +// use -fvisibility=hidden to change the "default" behavior +#define _gmssl_export __attribute__((visibility("default"))) +#else +#define _gmssl_export +#endif + +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/asn1.h b/thirdparty/GmSSL-3.1.1/include/gmssl/asn1.h new file mode 100644 index 0000000..49c0b0b --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/asn1.h @@ -0,0 +1,301 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_ASN1_H +#define GMSSL_ASN1_H + +#include +#include +#include + +#if __cplusplus +extern "C" { +#endif + + + +#define ASN1_TAG_UNIVERSAL 0x00 +#define ASN1_TAG_APPLICATION 0x40 +#define ASN1_TAG_CONTENT_SPECIFIC 0x80 +#define ASN1_TAG_PRIVATE 0xC0 +#define ASN1_TAG_PRIMITIVE 0x00 +#define ASN1_TAG_CONSTRUCTED 0x20 + +#define ASN1_TAG_IMPLICIT(index) (ASN1_TAG_CONTENT_SPECIFIC|(index)) +#define ASN1_TAG_EXPLICIT(index) ASN1_TAG_IMPLICIT(ASN1_TAG_CONSTRUCTED|(index)) + + +#define ASN1_FMT_FULL 0x01 + + +enum ASN1_TAG { + ASN1_TAG_BOOLEAN = 1, + ASN1_TAG_INTEGER = 2, + ASN1_TAG_BIT_STRING = 3, + ASN1_TAG_OCTET_STRING = 4, + ASN1_TAG_NULL = 5, + ASN1_TAG_OBJECT_IDENTIFIER = 6, + ASN1_TAG_ObjectDescriptor = 7, + ASN1_TAG_EXTERNAL = 8, + ASN1_TAG_REAL = 9, + ASN1_TAG_ENUMERATED = 10, // 0x0A + ASN1_TAG_EMBEDDED = 11, // 0x0B + ASN1_TAG_UTF8String = 12, // 0x0C + ASN1_TAG_RELATIVE_OID = 13, // 0x0D + ASN1_TAG_NumericString = 18, // 0x12 + ASN1_TAG_PrintableString = 19, // 0x13, printable subset of ascii + ASN1_TAG_TeletexString = 20, // 0x14, T61String + ASN1_TAG_VideotexString = 21, // 0x15 + ASN1_TAG_IA5String = 22, // 0x16, 7-bit ascii + ASN1_TAG_UTCTime = 23, // 0x17 + ASN1_TAG_GeneralizedTime = 24, // 0x18 + ASN1_TAG_GraphicString = 25, // 0x19 + ASN1_TAG_VisibleString = 26, // 0x20 + ASN1_TAG_GeneralString = 27, // 0x21 + ASN1_TAG_UniversalString = 28, // 0x22 + ASN1_TAG_CHARACTER_STRING = 29, // 0x23 + ASN1_TAG_BMPString = 30, // 0x24, 2-byte unicode with zeros + ASN1_TAG_SEQUENCE = 0x30, + ASN1_TAG_SET = 0x31, + ASN1_TAG_EXPLICIT = 0xa0, +}; + + +const char *asn1_tag_name(int tag); +int asn1_tag_is_cstring(int tag); +int asn1_tag_to_der(int tag, uint8_t **out, size_t *outlen); +int asn1_tag_from_der(int *tag, const uint8_t **in, size_t *inlen); +int asn1_tag_from_der_readonly(int *tag, const uint8_t **in, size_t *inlen); // read the next tag without changing *in,*inlen +int asn1_length_to_der(size_t dlen, uint8_t **out, size_t *outlen); +int asn1_length_from_der(size_t *dlen, const uint8_t **in, size_t *inlen); +int asn1_length_is_zero(size_t len); +int asn1_length_le(size_t len1, size_t len2); // less than +int asn1_data_to_der(const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_data_from_der(const uint8_t **d, size_t dlen, const uint8_t **in, size_t *inlen); + +int asn1_type_to_der(int tag, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_type_from_der(int tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int asn1_nonempty_type_to_der(int tag, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_nonempty_type_from_der(int tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int asn1_any_type_from_der(int *tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int asn1_any_to_der(const uint8_t *a, size_t alen, uint8_t **out, size_t *outlen); // 调用方应保证a,alen为TLV +int asn1_any_from_der(const uint8_t **a, size_t *alen, const uint8_t **in, size_t *inlen); // 该函数会检查输入是否为TLV + +#define ASN1_TRUE 0xff +#define ASN1_FALSE 0x00 + +const char *asn1_boolean_name(int val); +int asn1_boolean_from_name(int *val, const char *name); +int asn1_boolean_to_der_ex(int tag, int val, uint8_t **out, size_t *outlen); +int asn1_boolean_from_der_ex(int tag, int *val, const uint8_t **in, size_t *inlen); +#define asn1_boolean_to_der(val,out,outlen) asn1_boolean_to_der_ex(ASN1_TAG_BOOLEAN,val,out,outlen) +#define asn1_boolean_from_der(val,in,inlen) asn1_boolean_from_der_ex(ASN1_TAG_BOOLEAN,val,in,inlen) +#define asn1_implicit_boolean_to_der(i,val,out,outlen) asn1_boolean_to_der_ex(ASN1_TAG_IMPLICIT(i),val,out,outlen) +#define asn1_implicit_boolean_from_der(i,val,in,inlen) asn1_boolean_from_der_ex(ASN1_TAG_IMPLICIT(i),val,in,inlen) + +// asn1_integer_ 不支持负数编解码 +int asn1_integer_to_der_ex(int tag, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_integer_from_der_ex(int tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +#define asn1_integer_to_der(d,dlen,out,outlen) asn1_integer_to_der_ex(ASN1_TAG_INTEGER,d,dlen,out,outlen) +#define asn1_integer_from_der(d,dlen,in,inlen) asn1_integer_from_der_ex(ASN1_TAG_INTEGER,d,dlen,in,inlen) +#define asn1_implicit_integer_to_der(i,d,dlen,out,outlen) asn1_integer_to_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_integer_from_der(i,d,dlen,in,inlen) asn1_integer_from_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,in,inlen) + +// asn1_int_ 只支持小的无符号整数的编解码,不支持负数 +int asn1_int_to_der_ex(int tag, int val, uint8_t **out, size_t *outlen); // 当 val == -1 时,不输出,返回 0 +int asn1_int_from_der_ex(int tag, int *val, const uint8_t **in, size_t *inlen); // 不支持负数,返回0时 *val 设置为 -1 +#define asn1_int_to_der(val,out,outlen) asn1_int_to_der_ex(ASN1_TAG_INTEGER,val,out,outlen) +#define asn1_int_from_der(val,in,inlen) asn1_int_from_der_ex(ASN1_TAG_INTEGER,val,in,inlen) +#define asn1_implicit_int_to_der(i,val,out,outlen) asn1_int_to_der_ex(ASN1_TAG_IMPLICIT(i),val,out,outlen) +#define asn1_implicit_int_from_der(i,val,in,inlen) asn1_int_from_der_ex(ASN1_TAG_IMPLICIT(i),val,in,inlen) + +// 比特长度不必须为8的整数倍 +int asn1_bit_string_to_der_ex(int tag, const uint8_t *d, size_t nbits, uint8_t **out, size_t *outlen); +int asn1_bit_string_from_der_ex(int tag, const uint8_t **d, size_t *nbits, const uint8_t **in, size_t *inlen); +#define asn1_bit_string_to_der(d,nbits,out,outlen) asn1_bit_string_to_der_ex(ASN1_TAG_BIT_STRING,d,nbits,out,outlen) +#define asn1_bit_string_from_der(d,nbits,in,inlen) asn1_bit_string_from_der_ex(ASN1_TAG_BIT_STRING,d,nbits,in,inlen) +#define asn1_implicit_bit_string_to_der(i,d,nbits,out,outlen) asn1_bit_string_to_der_ex(ASN1_TAG_IMPLICIT(i),d,nbits,out,outlen) +#define asn1_implicit_bit_string_from_der(i,d,nbits,in,inlen) asn1_bit_string_from_der_ex(ASN1_TAG_IMPLICIT(i),d,nbits,in,inlen) + +// 比特长度必须为8的整数倍,因此使用字节长度 +int asn1_bit_octets_to_der_ex(int tag, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_bit_octets_from_der_ex(int tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +#define asn1_bit_octets_to_der(d,dlen,out,outlen) asn1_bit_octets_to_der_ex(ASN1_TAG_BIT_STRING,d,dlen,out,outlen) +#define asn1_bit_octets_from_der(d,dlen,in,inlen) asn1_bit_octets_from_der_ex(ASN1_TAG_BIT_STRING,d,dlen,in,inlen) +#define asn1_implicit_bit_octets_to_der(i,d,dlen,out,outlen) asn1_bit_octets_to_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_bit_octets_from_der(i,d,dlen,in,inlen) asn1_bit_octets_from_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,in,inlen) + +// bits == -1 不编码,只支持较少的比特数量 +int asn1_bits_to_der_ex(int tag, int bits, uint8_t **out, size_t *outlen); +int asn1_bits_from_der_ex(int tag, int *bits, const uint8_t **in, size_t *inlen); +#define asn1_bits_to_der(bits,out,outlen) asn1_bits_to_der_ex(ASN1_TAG_BIT_STRING,bits,out,outlen) +#define asn1_bits_from_der(bits,in,inlen) asn1_bits_from_der_ex(ASN1_TAG_BIT_STRING,bits,in,inlen) +#define asn1_implicit_bits_to_der(i,bits,out,outlen) asn1_bits_to_der_ex(ASN1_TAG_IMPLICIT(i),bits,out,outlen) +#define asn1_implicit_bits_from_der(i,bits,in,inlen) asn1_bits_from_der_ex(ASN1_TAG_IMPLICIT(i),bits,in,inlen) +// names[i]对应第i个比特 +int asn1_bits_print(FILE *fp, int fmt, int ind, const char *label, const char **names, size_t names_cnt, int bits); + +#define asn1_octet_string_to_der_ex(tag,d,dlen,out,outlen) asn1_type_to_der(tag,d,dlen,out,outlen) +#define asn1_octet_string_from_der_ex(tag,d,dlen,in,inlen) asn1_type_from_der(tag,d,dlen,in,inlen) +#define asn1_octet_string_to_der(d,dlen,out,outlen) asn1_type_to_der(ASN1_TAG_OCTET_STRING,d,dlen,out,outlen) +#define asn1_octet_string_from_der(d,dlen,in,inlen) asn1_type_from_der(ASN1_TAG_OCTET_STRING,d,dlen,in,inlen) +#define asn1_implicit_octet_string_to_der(i,d,dlen,out,outlen) asn1_type_to_der(ASN1_TAG_IMPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_octet_string_from_der(i,d,dlen,in,inlen) asn1_type_from_der(ASN1_TAG_IMPLICIT(i),d,dlen,in,inlen) + +const char *asn1_null_name(void); +int asn1_null_to_der(uint8_t **out, size_t *outlen); +int asn1_null_from_der(const uint8_t **in, size_t *inlen); + +#define ASN1_OID_MIN_NODES 2 +#define ASN1_OID_MAX_NODES 32 +#define ASN1_OID_MIN_OCTETS 1 +#define ASN1_OID_MAX_OCTETS (1 + (ASN1_OID_MAX_NODES - 2) * 5) +int asn1_object_identifier_to_octets(const uint32_t *nodes, size_t nodes_cnt, uint8_t *out, size_t *outlen); +int asn1_object_identifier_from_octets(uint32_t *nodes, size_t *nodes_cnt, const uint8_t *in, size_t inlen); + +int asn1_object_identifier_to_der_ex(int tag, const uint32_t *nodes, size_t nodes_cnt, uint8_t **out, size_t *outlen); +int asn1_object_identifier_from_der_ex(int tag, uint32_t *nodes, size_t *nodes_cnt, const uint8_t **in, size_t *inlen); +#define asn1_object_identifier_to_der(nodes,nodes_cnt,out,outlen) asn1_object_identifier_to_der_ex(ASN1_TAG_OBJECT_IDENTIFIER,nodes,nodes_cnt,out,outlen) +#define asn1_object_identifier_from_der(nodes,nodes_cnt,in,inlen) asn1_object_identifier_from_der_ex(ASN1_TAG_OBJECT_IDENTIFIER,nodes,nodes_cnt,in,inlen) +#define asn1_implicit_object_identifier_to_der(i,nodes,nodes_cnt,out,outlen) asn1_object_identifier_to_der_ex(ASN1_TAG_IMPLICIT(i),nodes,nodes_cnt,out,outlen) +#define asn1_implicit_object_identifier_from_der(i,nodes,nodes_cnt,in,inlen) asn1_object_identifier_from_der_ex(ASN1_TAG_IMPLICIT(i),nodes,nodes_cnt,in,inlen) +int asn1_object_identifier_equ(const uint32_t *a, size_t a_cnt, const uint32_t *b, size_t b_cnt); +int asn1_object_identifier_print(FILE *fp, int fmt, int ind, const char *label, const char *name, + const uint32_t *nodes, size_t nodes_cnt); + +typedef struct { + int oid; + char *name; + uint32_t *nodes; + size_t nodes_cnt; + int flags; + char *description; +} ASN1_OID_INFO; + +const ASN1_OID_INFO *asn1_oid_info_from_name(const ASN1_OID_INFO *infos, size_t count, const char *name); +const ASN1_OID_INFO *asn1_oid_info_from_oid(const ASN1_OID_INFO *infos, size_t count, int oid); +// 如果一个正确解析的OID并不在infos列表中,那么仍然返回1,但是调用方必须检查返回的info是否为空 +int asn1_oid_info_from_der_ex(const ASN1_OID_INFO **info, uint32_t *nodes, size_t *nodes_cnt, + const ASN1_OID_INFO *infos, size_t count, const uint8_t **in, size_t *inlen); +int asn1_oid_info_from_der(const ASN1_OID_INFO **info, + const ASN1_OID_INFO *infos, size_t count, const uint8_t **in, size_t *inlen); + +#define asn1_enumerated_to_der_ex(tag,val,out,outlen) asn1_int_to_der_ex(tag,val,out,outlen) +#define asn1_enumerated_from_der_ex(tag,val,in,inlen) asn1_int_from_der_ex(tag,val,in,inlen) +#define asn1_enumerated_to_der(val,out,outlen) asn1_int_to_der_ex(ASN1_TAG_ENUMERATED,val,out,outlen) +#define asn1_enumerated_from_der(val,in,inlen) asn1_int_from_der_ex(ASN1_TAG_ENUMERATED,val,in,inlen) +#define asn1_implicit_enumerated_to_der(i,val,out,outlen) asn1_int_to_der_ex(ASN1_TAG_IMPLICIT(i),val,out,outlen) +#define asn1_implicit_enumerated_from_der(i,val,in,inlen) asn1_int_from_der_ex(ASN1_TAG_IMPLICIT(i),val,in,inlen) + +int asn1_string_is_utf8_string(const char *d, size_t dlen); +int asn1_utf8_string_to_der_ex(int tag, const char *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_utf8_string_from_der_ex(int tag, const char **d, size_t *dlen, const uint8_t **in, size_t *inlen); +#define asn1_utf8_string_to_der(d,dlen,out,outlen) asn1_utf8_string_to_der_ex(ASN1_TAG_UTF8String,d,dlen,out,outlen) +#define asn1_utf8_string_from_der(d,dlen,in,inlen) asn1_utf8_string_from_der_ex(ASN1_TAG_UTF8String,d,dlen,in,inlen) +#define asn1_implicit_utf8_string_to_der(i,d,dlen,out,outlen) asn1_utf8_string_to_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_utf8_string_from_der(i,d,dlen,in,inlen) asn1_utf8_string_from_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,in,inlen) + +int asn1_string_is_printable_string(const char *d, size_t dlen); +int asn1_printable_string_case_ignore_match(const char *a, size_t alen, const char *b, size_t blen); +int asn1_printable_string_to_der_ex(int tag, const char *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_printable_string_from_der_ex(int tag, const char **d, size_t *dlen, const uint8_t **in, size_t *inlen); +#define asn1_printable_string_to_der(d,dlen,out,outlen) asn1_printable_string_to_der_ex(ASN1_TAG_PrintableString,d,dlen,out,outlen) +#define asn1_printable_string_from_der(d,dlen,in,inlen) asn1_printable_string_from_der_ex(ASN1_TAG_PrintableString,d,dlen,in,inlen) +#define asn1_implicit_printable_string_to_der(i,d,dlen,out,outlen) asn1_printable_string_to_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_printable_string_from_der(i,d,dlen,in,inlen) asn1_printable_string_from_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,in,inlen) + +int asn1_string_is_ia5_string(const char *d, size_t dlen); +int asn1_ia5_string_to_der_ex(int tag, const char *d, size_t dlen, uint8_t **out, size_t *outlen); +int asn1_ia5_string_from_der_ex(int tag, const char **d, size_t *dlen, const uint8_t **in, size_t *inlen); +#define asn1_ia5_string_to_der(d,dlen,out,outlen) asn1_ia5_string_to_der_ex(ASN1_TAG_IA5String,d,dlen,out,outlen) +#define asn1_ia5_string_from_der(d,dlen,in,inlen) asn1_ia5_string_from_der_ex(ASN1_TAG_IA5String,d,dlen,in,inlen) +#define asn1_implicit_ia5_string_to_der(i,d,dlen,out,outlen) asn1_ia5_string_to_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_ia5_string_from_der(i,d,dlen,in,inlen) asn1_ia5_string_from_der_ex(ASN1_TAG_IMPLICIT(i),d,dlen,in,inlen) + +int asn1_string_print(FILE *fp, int fmt, int ind, const char *label, int tag, const uint8_t *d, size_t dlen); + +#define ASN1_UTC_TIME_STRLEN (sizeof("YYMMDDHHMMSSZ")-1) +#define ASN1_GENERALIZED_TIME_STRLEN (sizeof("YYYYMMDDHHMMSSZ")-1) +#define ASN1_GENERALIZED_TIME_MAX_SIZE (2 + ASN1_GENERALIZED_TIME_STRLEN) + +int asn1_time_to_str(int utc_time, time_t timestamp, char *str); +int asn1_time_from_str(int utc_time, time_t *timestamp, const char *str); + +int asn1_utc_time_to_der_ex(int tag, time_t tv, uint8_t **out, size_t *outlen); +int asn1_utc_time_from_der_ex(int tag, time_t *tv, const uint8_t **in, size_t *inlen); +#define asn1_utc_time_to_der(tv,out,outlen) asn1_utc_time_to_der_ex(ASN1_TAG_UTCTime,tv,out,outlen) +#define asn1_utc_time_from_der(tv,in,inlen) asn1_utc_time_from_der_ex(ASN1_TAG_UTCTime,tv,in,inlen) +#define asn1_implicit_utc_time_to_der(i,tv,out,outlen) asn1_utc_time_to_der_ex(ASN1_TAG_IMPLICIT(i),tv,out,outlen) +#define asn1_implicit_utc_time_from_der(i,tv,in,inlen) asn1_utc_time_from_der_ex(ASN1_TAG_IMPLICIT(i),tv,in,inlen) + +int asn1_generalized_time_to_der_ex(int tag, time_t tv, uint8_t **out, size_t *outlen); +int asn1_generalized_time_from_der_ex(int tag, time_t *tv, const uint8_t **in, size_t *inlen); +#define asn1_generalized_time_to_der(tv,out,outlen) asn1_generalized_time_to_der_ex(ASN1_TAG_GeneralizedTime,tv,out,outlen) +#define asn1_generalized_time_from_der(tv,in,inlen) asn1_generalized_time_from_der_ex(ASN1_TAG_GeneralizedTime,tv,in,inlen) +#define asn1_implicit_generalized_time_to_der(i,tv,out,outlen) asn1_generalized_time_to_der_ex(ASN1_TAG_IMPLICIT(i),tv,out,outlen) +#define asn1_implicit_generalized_time_from_der(i,tv,in,inlen) asn1_generalized_time_from_der_ex(ASN1_TAG_IMPLICIT(i),tv,in,inlen) + +// BasicConstraints might be an empty sequence in entity certificates +#define asn1_sequence_to_der(d,dlen,out,outlen) asn1_type_to_der(ASN1_TAG_SEQUENCE,d,dlen,out,outlen) +#define asn1_sequence_from_der(d,dlen,in,inlen) asn1_type_from_der(ASN1_TAG_SEQUENCE,d,dlen,in,inlen) +#define asn1_implicit_sequence_to_der(i,d,dlen,out,outlen) asn1_nonempty_type_to_der(ASN1_TAG_EXPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_sequence_from_der(i,d,dlen,in,inlen) asn1_nonempty_type_from_der(ASN1_TAG_EXPLICIT(i),d,dlen,in,inlen) + +#define asn1_sequence_of_to_der(d,dlen,out,outlen) asn1_nonempty_type_to_der(ASN1_TAG_SEQUENCE,d,dlen,out,outlen) +#define asn1_sequence_of_from_der(d,dlen,in,inlen) asn1_nonempty_type_from_der(ASN1_TAG_SEQUENCE,d,dlen,in,inlen) +int asn1_sequence_of_int_to_der(const int *nums, size_t nums_cnt, uint8_t **out, size_t *outlen); +int asn1_sequence_of_int_from_der(int *nums, size_t *nums_cnt, size_t max_nums, const uint8_t **in, size_t *inlen); +int asn1_sequence_of_int_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +#define asn1_set_to_der(d,dlen,out,outlen) asn1_nonempty_type_to_der(ASN1_TAG_SET,d,dlen,out,outlen) +#define asn1_set_from_der(d,dlen,in,inlen) asn1_nonempty_type_from_der(ASN1_TAG_SET,d,dlen,in,inlen) +#define asn1_implicit_set_to_der(i,d,dlen,out,outlen) asn1_type_to_der(ASN1_TAG_EXPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_set_from_der(i,d,dlen,in,inlen) asn1_type_from_der(ASN1_TAG_EXPLICIT(i),d,dlen,in,inlen) + +#define asn1_set_of_to_der(d,dlen,out,outlen) asn1_nonempty_type_to_der(ASN1_TAG_SET,d,dlen,out,outlen) +#define asn1_set_of_from_der(d,dlen,in,inlen) asn1_nonempty_type_from_der(ASN1_TAG_SET,d,dlen,in,inlen) + +#define asn1_implicit_to_der(i,d,dlen,out,outlen) asn1_type_to_der(ASN1_TAG_IMPLICIT(i),d,dlen,out,outlen) +#define asn1_implicit_from_der(i,d,dlen,in,inlen) asn1_type_from_der(ASN1_TAG_IMPLICIT(i),d,dlen,in,inlen) + +int asn1_header_to_der(int tag, size_t dlen, uint8_t **out, size_t *outlen); +#define asn1_implicit_header_to_der(i,dlen,out,outlen) asn1_header_to_der(ASN1_TAG_EXPLICIT(i),dlen,out,outlen) + +#define asn1_octet_string_header_to_der(dlen,out,outlen) asn1_header_to_der(ASN1_TAG_OCTET_STRING,dlen,out,outlen) + +#define asn1_sequence_header_to_der_ex(tag,dlen,out,outlen) asn1_header_to_der(tag,dlen,out,outlen) +#define asn1_sequence_header_to_der(dlen,out,outlen) asn1_header_to_der(ASN1_TAG_SEQUENCE,dlen,out,outlen) +#define asn1_implicit_sequence_header_to_der(i,dlen,out,outlen) asn1_header_to_der(ASN1_TAG_EXPLICIT(i),dlen,out,outlen) + +#define asn1_set_header_to_der(dlen,out,outlen) asn1_header_to_der(ASN1_TAG_SET,dlen,out,outlen) +#define asn1_implicit_set_header_to_der(i,dlen,out,outlen) asn1_header_to_der(ASN1_TAG_EXPLICIT(i),dlen,out,outlen) + +#define asn1_explicit_header_to_der(i,dlen,out,outlen) asn1_header_to_der(ASN1_TAG_EXPLICIT(i),dlen,out,outlen) + +#define asn1_explicit_to_der(i,d,dlen,out,outlen) asn1_nonempty_type_to_der(ASN1_TAG_EXPLICIT(i),d,dlen,out,outlen) +#define asn1_explicit_from_der(i,d,dlen,in,inlen) asn1_nonempty_type_from_der(ASN1_TAG_EXPLICIT(i),d,dlen,in,inlen) + +// d,dlen 是 SEQUENCE OF, SET OF 中的值 +int asn1_types_get_count(const uint8_t *d, size_t dlen, int tag, size_t *cnt); +int asn1_types_get_item_by_index(const uint8_t *d, size_t dlen, int tag, + int index, const uint8_t **item_d, size_t *item_dlen); + + + + + +int asn1_check(int expr); + + +#if __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/base64.h b/thirdparty/GmSSL-3.1.1/include/gmssl/base64.h new file mode 100644 index 0000000..e981aef --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/base64.h @@ -0,0 +1,72 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_BASE64_H +#define GMSSL_BASE64_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +BASE64 Public API + + BASE64_CTX + base64_encode_init + base64_encode_update + base64_encode_finish + base64_decode_init + base64_decode_update + base64_decode_finish + +*/ + + +typedef struct { + /* 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; +} BASE64_CTX; + +# define BASE64_ENCODE_LENGTH(l) (((l+2)/3*4)+(l/48+1)*2+80) +# define BASE64_DECODE_LENGTH(l) ((l+3)/4*3+80) + + +void base64_encode_init(BASE64_CTX *ctx); +int base64_encode_update(BASE64_CTX *ctx, const uint8_t *in, int inlen, uint8_t *out, int *outlen); +void base64_encode_finish(BASE64_CTX *ctx, uint8_t *out, int *outlen); + +void base64_decode_init(BASE64_CTX *ctx); +int base64_decode_update(BASE64_CTX *ctx, const uint8_t *in, int inlen, uint8_t *out, int *outlen); +int base64_decode_finish(BASE64_CTX *ctx, uint8_t *out, int *outlen); + + +int base64_encode_block(unsigned char *t, const unsigned char *f, int dlen); +int base64_decode_block(unsigned char *t, const unsigned char *f, int n); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/block_cipher.h b/thirdparty/GmSSL-3.1.1/include/gmssl/block_cipher.h new file mode 100644 index 0000000..e928663 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/block_cipher.h @@ -0,0 +1,74 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + + +#ifndef GMSSL_BLOCK_CIPHER_H +#define GMSSL_BLOCK_CIPHER_H + + +#include +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define BLOCK_CIPHER_BLOCK_SIZE 16 +#define BLOCK_CIPHER_MIN_KEY_SIZE 16 +#define BLOCK_CIPHER_MAX_KEY_SIZE 32 + + +typedef struct BLOCK_CIPHER BLOCK_CIPHER; +typedef struct BLOCK_CIPHER_KEY BLOCK_CIPHER_KEY; + +struct BLOCK_CIPHER_KEY { + union { + SM4_KEY sm4_key; + AES_KEY aes_key; + } u; + const BLOCK_CIPHER *cipher; +}; + +typedef void (*block_cipher_set_encrypt_key_func)(BLOCK_CIPHER_KEY *key, const uint8_t *raw_key); +typedef void (*block_cipher_set_decrypt_key_func)(BLOCK_CIPHER_KEY *key, const uint8_t *raw_key); +typedef void (*block_cipher_encrypt_func)(const BLOCK_CIPHER_KEY *key, const uint8_t *in, uint8_t *out); +typedef void (*block_cipher_decrypt_func)(const BLOCK_CIPHER_KEY *key, const uint8_t *in, uint8_t *out); + +struct BLOCK_CIPHER { + int oid; + size_t key_size; + size_t block_size; + block_cipher_set_encrypt_key_func set_encrypt_key; + block_cipher_set_decrypt_key_func set_decrypt_key; + block_cipher_encrypt_func encrypt; + block_cipher_decrypt_func decrypt; +}; + +const BLOCK_CIPHER *BLOCK_CIPHER_sm4(void); +const BLOCK_CIPHER *BLOCK_CIPHER_aes128(void); + +const BLOCK_CIPHER *block_cipher_from_name(const char *name); +const char *block_cipher_name(const BLOCK_CIPHER *cipher); +int block_cipher_set_encrypt_key(BLOCK_CIPHER_KEY *key, const BLOCK_CIPHER *cipher, const uint8_t *raw_key); +int block_cipher_set_decrypt_key(BLOCK_CIPHER_KEY *key, const BLOCK_CIPHER *cipher, const uint8_t *raw_key); +int block_cipher_encrypt(const BLOCK_CIPHER_KEY *key, const uint8_t *in, uint8_t *out); +int block_cipher_decrypt(const BLOCK_CIPHER_KEY *key, const uint8_t *in, uint8_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/chacha20.h b/thirdparty/GmSSL-3.1.1/include/gmssl/chacha20.h new file mode 100644 index 0000000..6021575 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/chacha20.h @@ -0,0 +1,57 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +/* RFC 8439 "ChaCha20 and Poly1305 for IETF Protocols" */ + +#ifndef GMSSL_CHACHA20_H +#define GMSSL_CHACHA20_H + +#define CHACHA20_IS_BIG_ENDIAN 0 + +#include +#include + +#include + +#define CHACHA20_KEY_BITS 256 +#define CHACHA20_NONCE_BITS 96 +#define CHACHA20_COUNTER_BITS 32 + +#define CHACHA20_KEY_SIZE (CHACHA20_KEY_BITS/8) +#define CHACHA20_NONCE_SIZE (CHACHA20_NONCE_BITS/8) +#define CHACHA20_COUNTER_SIZE (CHACHA20_COUNTER_BITS/8) + +#define CHACHA20_KEY_WORDS (CHACHA20_KEY_SIZE/sizeof(uint32_t)) +#define CHACHA20_NONCE_WORDS (CHACHA20_NONCE_SIZE/sizeof(uint32_t)) +#define CHACHA20_COUNTER_WORDS (CHACHA20_COUNTER_SIZE/sizeof(uint32_t)) + + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + uint32_t d[16]; +} CHACHA20_STATE; + + +void chacha20_init(CHACHA20_STATE *state, + const uint8_t key[CHACHA20_KEY_SIZE], + const uint8_t nonce[CHACHA20_NONCE_SIZE], uint32_t counter); + +void chacha20_generate_keystream(CHACHA20_STATE *state, + size_t counts, uint8_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/cms.h b/thirdparty/GmSSL-3.1.1/include/gmssl/cms.h new file mode 100644 index 0000000..e52e057 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/cms.h @@ -0,0 +1,552 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +/* +References: + 1. GM/T 0010-2012 SM2 Cryptography Message Syntax Specification + 2. RFC 2315 PKCS #7 Cryptographic Message Syntax Version 1.5 + 3. RFC 5652 Cryptographic Message Syntax (CMS) +*/ + +#ifndef GMSSL_CMS_H +#define GMSSL_CMS_H + + +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + CMS_version_v1 = 1, +}; + + +/* +ContentType: + OID_cms_data + OID_cms_signed_data + OID_cms_enveloped_data + OID_cms_signed_and_enveloped_data + OID_cms_encrypted_data + OID_cms_key_agreement_info +*/ +const char *cms_content_type_name(int oid); +int cms_content_type_from_name(const char *name); +int cms_content_type_to_der(int oid, uint8_t **out, size_t *outlen); +int cms_content_type_from_der(int *oid, const uint8_t **in, size_t *inlen); + +/* +ContentInfo ::= SEQUENCE { + contentType OBJECT IDENTIFIER, + content [0] EXPLICIT ANY OPTIONAL } +*/ +int cms_content_info_header_to_der( + int content_type, size_t content_len, + uint8_t **out, size_t *outlen); +int cms_content_info_to_der( + int content_type, + const uint8_t *content, size_t content_len, + uint8_t **out, size_t *outlen); +int cms_content_info_from_der( + int *content_type, + const uint8_t **content, size_t *content_len, // 这里获得的是完整的TLV + const uint8_t **in, size_t *inlen); +int cms_content_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +Data ::= OCTET STRING +*/ +#define cms_data_to_der(d,dlen,out,outlen) asn1_octet_string_to_der(d,dlen,out,outlen) +#define cms_data_from_der(d,dlen,in,inlen) asn1_octet_string_from_der(d,dlen,in,inlen) +#define cms_data_print(fp,fmt,ind,label,d,dlen) format_bytes(fp,fmt,ind,label,d,dlen) + +/* +EncryptedContentInfo ::= SEQUENCE { + contentType OBJECT IDENTIFIER, + contentEncryptionAlgorithm AlgorithmIdentifier, + encryptedContent [0] IMPLICIT OCTET STRING OPTIONAL, + sharedInfo1 [1] IMPLICIT OCTET STRING OPTIONAL, + sharedInfo2 [2] IMPLICIT OCTET STRING OPTIONAL } +*/ +int cms_enced_content_info_to_der( + int content_type, + int enc_algor, const uint8_t *enc_iv, size_t enc_iv_len, + const uint8_t *enced_content, size_t enced_content_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + uint8_t **out, size_t *outlen); +int cms_enced_content_info_from_der( + int *content_type, + int *enc_algor, const uint8_t **enc_iv, size_t *enc_iv_len, + const uint8_t **enced_content, size_t *enced_content_len, + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len, + const uint8_t **in, size_t *inlen); +int cms_enced_content_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int cms_enced_content_info_encrypt_to_der( + int enc_algor, + const uint8_t *key, size_t keylen, + const uint8_t *iv, size_t ivlen, + int content_type, const uint8_t *content, size_t content_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + uint8_t **out, size_t *outlen); +int cms_enced_content_info_decrypt_from_der( + int *enc_algor, + const uint8_t *key, size_t keylen, + int *content_type, uint8_t *content, size_t *content_len, + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len, + const uint8_t **in, size_t *inlen); + +/* +EncryptedData ::= SEQUENCE { + version INTEGER (1), + encryptedContentInfo EncryptedContentInfo } +*/ +int cms_encrypted_data_to_der( + int version, + int content_type, + int enc_algor, const uint8_t *iv, size_t ivlen, + const uint8_t *enced_content, size_t enced_content_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + uint8_t **out, size_t *outlen); +int cms_encrypted_data_from_der( + int *version, + int *content_type, + int *enc_algor, const uint8_t **iv, size_t *ivlen, + const uint8_t **enced_content, size_t *enced_content_len, + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len, + const uint8_t **in, size_t *inlen); +int cms_encrypted_data_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int cms_encrypted_data_encrypt_to_der( + int enc_algor, + const uint8_t *key, size_t keylen, + const uint8_t *iv, size_t ivlen, + int content_type, const uint8_t *content, size_t content_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + uint8_t **out, size_t *outlen); +int cms_encrypted_data_decrypt_from_der( + int *enc_algor, + const uint8_t *key, size_t keylen, + int *content_type, uint8_t *content, size_t *content_len, + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len, + const uint8_t **in, size_t *inlen); + +/* +IssuerAndSerialNumber ::= SEQUENCE { + isser Name, + serialNumber INTEGER } +*/ +int cms_issuer_and_serial_number_to_der( + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial_number, size_t serial_number_len, + uint8_t **out, size_t *outlen); +int cms_issuer_and_serial_number_from_der( + const uint8_t **issuer, size_t *issuer_len, + const uint8_t **serial_number, size_t *serial_number_len, + const uint8_t **in, size_t *inlen); +int cms_issuer_and_serial_number_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +SignerInfo ::= SEQUENCE { + version INTEGER (1), + issuerAndSerialNumber IssuerAndSerialNumber, + digestAlgorithm AlgorithmIdentifier, + authenticatedAttributes [0] IMPLICIT SET OF Attribute OPTINOAL, + digestEncryptionAlgorithm AlgorithmIdentifier, + encryptedDigest OCTET STRING, + unauthenticatedAttributes [1] IMPLICIT SET OF Attribute OPTINOAL, } +*/ +int cms_signer_info_to_der( + int version, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial_number, size_t serial_number_len, + int digest_algor, + const uint8_t *authed_attrs, size_t authed_attrs_len, + int signature_algor, + const uint8_t *enced_digest, size_t enced_digest_len, + const uint8_t *unauthed_attrs, size_t unauthed_attrs_len, + uint8_t **out, size_t *outlen); +int cms_signer_info_from_der( + int *version, + const uint8_t **issuer, size_t *issuer_len, + const uint8_t **serial_number, size_t *serial_number_len, + int *digest_algor, + const uint8_t **authed_attrs, size_t *authed_attrs_len, + int *signature_algor, + const uint8_t **enced_digest, size_t *enced_digest_len, + const uint8_t **unauthed_attrs, size_t *unauthed_attrs_len, + const uint8_t **in, size_t *inlen); +int cms_signer_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int cms_signer_info_sign_to_der( + const SM3_CTX *sm3_ctx, const SM2_KEY *sm2_key, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial_number, size_t serial_number_len, + const uint8_t *authed_attrs, size_t authed_attrs_len, + const uint8_t *unauthed_attrs, size_t unauthed_attrs_len, + uint8_t **out, size_t *outlen); +int cms_signer_info_verify_from_der( + const SM3_CTX *sm3_ctx, const uint8_t *certs, size_t certslen, + const uint8_t **cert, size_t *certlen, + const uint8_t **issuer, size_t *issuer_len, + const uint8_t **serial, size_t *serial_len, + const uint8_t **authed_attrs, size_t *authed_attrs_len, + const uint8_t **unauthed_attrs, size_t *unauthed_attrs_len, + const uint8_t **in, size_t *inlen); +/* +SignerInfos ::= SET OF SignerInfo; +*/ +int cms_signer_infos_add_signer_info( + uint8_t *d, size_t *dlen, size_t maxlen, + const SM3_CTX *sm3_ctx, const SM2_KEY *sign_key, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial_number, size_t serial_number_len, + const uint8_t *authed_attrs, size_t authed_attrs_len, + const uint8_t *unauthed_attrs, size_t unauthed_attrs_len); +#define cms_signer_infos_to_der(d,dlen,out,outlen) asn1_set_to_der(d,dlen,out,outlen) +#define cms_signer_infos_from_der(d,dlen,in,inlen) asn1_set_from_der(d,dlen,in,inlen) +int cms_signer_infos_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int cms_digest_algors_to_der(const int *digest_algors, size_t digest_algors_cnt, uint8_t **out, size_t *outlen); +int cms_digest_algors_from_der(int *digest_algors, size_t *digest_algors_cnt, size_t max_digest_algors, + const uint8_t **in, size_t *inlen); +int cms_digest_algors_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +SignedData ::= SEQUENCE { + version INTEGER (1), + digestAlgorithms SET OF AlgorithmIdentifier, + contentInfo ContentInfo, + certificates [0] IMPLICIT SET OF Certificate OPTIONAL, + crls [1] IMPLICIT SET OF CertificateRevocationList OPTIONAL, + signerInfos SET OF SignerInfo } +*/ +int cms_signed_data_to_der( + int version, + const int *digest_algors, size_t digest_algors_cnt, + const int content_type, const uint8_t *content, const size_t content_len, + const uint8_t *certs, size_t certs_len, + const uint8_t *crls, const size_t crls_len, + const uint8_t *signer_infos, size_t signer_infos_len, + uint8_t **out, size_t *outlen); +int cms_signed_data_from_der( + int *version, + int *digest_algors, size_t *digest_algors_cnt, size_t max_digest_algors, + int *content_type, const uint8_t **content, size_t *content_len, + const uint8_t **certs, size_t *certs_len, + const uint8_t **crls, size_t *crls_len, + const uint8_t **signer_infos, size_t *signer_infos_len, + const uint8_t **in, size_t *inlen); +int cms_signed_data_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +typedef struct { + uint8_t *certs; + size_t certs_len; + SM2_KEY *sign_key; +} CMS_CERTS_AND_KEY; + +int cms_signed_data_sign_to_der( + const CMS_CERTS_AND_KEY *signers, size_t signers_cnt, + int content_type, const uint8_t *data, size_t datalen, // 当OID_cms_data时为raw data + const uint8_t *crls, size_t crls_len, // 可以为空 + uint8_t **out, size_t *outlen); +int cms_signed_data_verify_from_der( + const uint8_t *extra_certs, size_t extra_certs_len, + const uint8_t *extra_crls, size_t extra_crls_len, + int *content_type, const uint8_t **content, size_t *content_len, // 是否应该返回raw data呢? + const uint8_t **certs, size_t *certs_len, + const uint8_t **crls, size_t *crls_len, + const uint8_t **signer_infos, size_t *signer_infos_len, + const uint8_t **in, size_t *inlen); + + +/* +RecipientInfo ::= SEQUENCE { + version INTEGER (1), + issuerAndSerialNumber IssuerAndSerialNumber, + keyEncryptionAlgorithm AlgorithmIdentifier, + encryptedKey OCTET STRING -- DER-encoding of SM2Cipher +} +由于encryptedKey的类型为SM2Cipher, 而SM2Cipher中有2个INTEGER,因此长度是不固定的。 +因此不能预先确定输出长度 +*/ +int cms_recipient_info_to_der( + int version, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial_number, size_t serial_number_len, + int public_key_enc_algor, + const uint8_t *enced_key, size_t enced_key_len, + uint8_t **out, size_t *outlen); +int cms_recipient_info_from_der( + int *version, + const uint8_t **issuer, size_t *issuer_len, + const uint8_t **serial_number, size_t *serial_number_len, + int *pke_algor, const uint8_t **params, size_t *params_len,// SM2加密只使用SM3,没有默认参数,但是ECIES可能有 + const uint8_t **enced_key, size_t *enced_key_len, + const uint8_t **in, size_t *inlen); +int cms_recipient_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +int cms_recipient_info_encrypt_to_der( + const SM2_KEY *public_key, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial, size_t serial_len, + const uint8_t *in, size_t inlen, + uint8_t **out, size_t *outlen); +int cms_recipient_info_decrypt_from_der( + const SM2_KEY *sm2_key, + const uint8_t *rcpt_issuer, size_t rcpt_issuer_len, + const uint8_t *rcpt_serial, size_t rcpt_serial_len, + uint8_t *out, size_t *outlen, size_t maxlen, + const uint8_t **in, size_t *inlen); + +int cms_recipient_infos_add_recipient_info( + uint8_t *d, size_t *dlen, size_t maxlen, + const SM2_KEY *public_key, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial, size_t serial_len, + const uint8_t *in, size_t inlen); +#define cms_recipient_infos_to_der(d,dlen,out,outlen) asn1_set_to_der(d,dlen,out,outlen) +#define cms_recipient_infos_from_der(d,dlen,in,inlen) asn1_set_from_der(d,dlen,in,inlen) +int cms_recipient_infos_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +EnvelopedData ::= SEQUENCE { + version Version, + recipientInfos SET OF RecipientInfo, + encryptedContentInfo EncryptedContentInfo } +*/ +int cms_enveloped_data_to_der( + int version, + const uint8_t *rcpt_infos, size_t rcpt_infos_len, + int content_type, + int enc_algor, const uint8_t *enc_iv, size_t enc_iv_len, + const uint8_t *enced_content, size_t enced_content_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + uint8_t **out, size_t *outlen); +int cms_enveloped_data_from_der( + int *version, + const uint8_t **rcpt_infos, size_t *rcpt_infos_len, + const uint8_t **enced_content_info, size_t *enced_content_info_len, + const uint8_t **in, size_t *inlen); +int cms_enveloped_data_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int cms_enveloped_data_encrypt_to_der( + const uint8_t *rcpt_certs, size_t rcpt_certs_len, + int enc_algor, const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + int content_type, const uint8_t *content, size_t content_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + uint8_t **out, size_t *outlen); +int cms_enveloped_data_decrypt_from_der( + const SM2_KEY *sm2_key, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial_number, size_t serial_number_len, + int *content_type, uint8_t *content, size_t *content_len, + const uint8_t **rcpt_infos, size_t *rcpt_infos_len, + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len, + const uint8_t **in, size_t *inlen); + +/* +SignedAndEnvelopedData ::= SEQUENCE { + version INTEGER (1), + recipientInfos SET OF RecipientInfo, + digestAlgorithms SET OF AlgorithmIdentifier, + encryptedContentInfo EncryptedContentInfo, + certificates [0] IMPLICIT SET OF Certificate OPTIONAL, + crls [1] IMPLICIT SET OF CertificateRevocationList OPTIONAL, + signerInfos SET OF SignerInfo } +*/ +int cms_signed_and_enveloped_data_to_der( + int version, + const uint8_t *rcpt_infos, size_t rcpt_infos_len, + const int *digest_algors, size_t digest_algors_cnt, + int content_type, + int enc_algor, const uint8_t *iv, size_t ivlen, + const uint8_t *enced_content, size_t enced_content_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + const uint8_t *certs, size_t certs_len, + const uint8_t *crls, size_t crls_len, + const uint8_t *signer_infos, size_t signer_infos_len, + uint8_t **out, size_t *outlen); +int cms_signed_and_enveloped_data_from_der( + int *version, + const uint8_t **rcpt_infos, size_t *rcpt_infos_len, + int *digest_algors, size_t *digest_algors_cnt, size_t max_digest_algors, + const uint8_t **enced_content_info, size_t *enced_content_info_len, + const uint8_t **certs, size_t *certs_len, + const uint8_t **crls, size_t *crls_len, + const uint8_t **signer_infos, size_t *signer_infos_len, + const uint8_t **in, size_t *inlen); +int cms_signed_and_enveloped_data_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int cms_signed_and_enveloped_data_encipher_to_der( + const CMS_CERTS_AND_KEY *signers, size_t signers_cnt, + const uint8_t *rcpt_certs, size_t rcpt_certs_len, + int enc_algor, const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + int content_type, const uint8_t *content, size_t content_len, + const uint8_t *signers_crls, size_t signers_crls_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len, + uint8_t **out, size_t *outlen); +int cms_signed_and_enveloped_data_decipher_from_der( + const SM2_KEY *rcpt_key, + const uint8_t *rcpt_issuer, size_t rcpt_issuer_len, + const uint8_t *rcpt_serial, size_t rcpt_serial_len, + int *content_type, uint8_t *content, size_t *content_len, + const uint8_t **prcpt_infos, size_t *prcpt_infos_len, + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len, + const uint8_t **certs, size_t *certs_len, + const uint8_t **crls, size_t *crls_len, + const uint8_t **psigner_infos, size_t *psigner_infos_len, + const uint8_t *extra_certs, size_t extra_certs_len, + const uint8_t *extra_crls, size_t extra_crls_len, + const uint8_t **in, size_t *inlen); + +/* +KeyAgreementInfo ::= SEQUENCE { + version INTEGER (1), + tempPublicKeyR SM2PublicKey, + userCertificate Certificate, + userID OCTET STRING } +*/ +int cms_key_agreement_info_to_der( + int version, + const SM2_KEY *temp_public_key_r, + const uint8_t *user_cert, size_t user_cert_len, + const uint8_t *user_id, size_t user_id_len, + uint8_t **out, size_t *outlen); +int cms_key_agreement_info_from_der( + int *version, + SM2_KEY *temp_public_key_r, + const uint8_t **user_cert, size_t *user_cert_len, + const uint8_t **user_id, size_t *user_id_len, + const uint8_t **in, size_t *inlen); +int cms_key_agreement_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + + +// 下面是公开API +// 公开API的设计考虑: +// 1. 不需要调用其他函数 +// 2. 在逻辑上容易理解 +// 3. 将cms,cmslen看做对象 + + +// 生成ContentInfo, type == data +int cms_set_data(uint8_t *cms, size_t *cmslen, + const uint8_t *d, size_t dlen); + +int cms_encrypt( + uint8_t *cms, size_t *cmslen, // 输出的ContentInfo (type encryptedData) + int enc_algor, const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, // 对称加密算法、密钥和IV + int content_type, const uint8_t *content, size_t content_len, // 待加密的输入数据 + const uint8_t *shared_info1, size_t shared_info1_len, // 附加信息 + const uint8_t *shared_info2, size_t shared_info2_len); + +int cms_decrypt( + const uint8_t *cms, size_t cmslen, // 输入的ContentInfo (type encryptedData) + int *enc_algor, const uint8_t *key, size_t keylen, // 解密密钥(我们不知道解密算法) + int *content_type, uint8_t *content, size_t *content_len, // 输出的解密数据类型及数据 + const uint8_t **shared_info1, size_t *shared_info1_len, // 附加信息 + const uint8_t **shared_info2, size_t *shared_info2_len); + +int cms_sign( + uint8_t *cms, size_t *cms_len, + const CMS_CERTS_AND_KEY *signers, size_t signers_cnt, // 签名者的签名私钥和证书 + int content_type, const uint8_t *content, size_t content_len, // 待签名的输入数据 + const uint8_t *crls, size_t crls_len); + +int cms_verify( + const uint8_t *cms, size_t cms_len, + const uint8_t *extra_certs, size_t extra_certs_len, + const uint8_t *extra_crls, size_t extra_crls_len, + int *content_type, const uint8_t **content, size_t *content_len, + const uint8_t **certs, size_t *certs_len, + const uint8_t **crls, size_t *crls_len, + const uint8_t **signer_infos, size_t *signer_infos_len); + +int cms_envelop( + uint8_t *cms, size_t *cms_len, + const uint8_t *rcpt_certs, size_t rcpt_certs_len, // 接收方证书,注意这个参数的类型可以容纳多个证书,但是只有在一个接受者时对调用方最方便 + int enc_algor, const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, // 对称加密算法及参数 + int content_type, const uint8_t *content, size_t content_len, // 待加密的输入数据 + const uint8_t *shared_info1, size_t shared_info1_len, // 附加输入信息 + const uint8_t *shared_info2, size_t shared_info2_len); + +int cms_deenvelop( + const uint8_t *cms, size_t cms_len, + const SM2_KEY *rcpt_key, const uint8_t *rcpt_cert, size_t rcpt_cert_len, // 接收方的解密私钥和对应的证书,注意只需要一个解密方 + int *content_type, uint8_t *content, size_t *content_len, + const uint8_t **rcpt_infos, size_t *rcpt_infos_len, // 解析得到,用于显示 + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len); + +int cms_sign_and_envelop( + uint8_t *cms, size_t *cms_len, + const CMS_CERTS_AND_KEY *signers, size_t signers_cnt, + const uint8_t *rcpt_certs, size_t rcpt_certs_len, + int enc_algor, const uint8_t *key, size_t keylen, const uint8_t *iv, size_t ivlen, + int content_type, const uint8_t *content, size_t content_len, + const uint8_t *signers_crls, size_t signers_crls_len, + const uint8_t *shared_info1, size_t shared_info1_len, + const uint8_t *shared_info2, size_t shared_info2_len); + +int cms_deenvelop_and_verify( + const uint8_t *cms, size_t cms_len, + const SM2_KEY *rcpt_key, const uint8_t *rcpt_cert, size_t rcpt_cert_len, + const uint8_t *extra_signer_certs, size_t extra_signer_certs_len, + const uint8_t *extra_signer_crls, size_t extra_signer_crls_len, + int *content_type, uint8_t *content, size_t *content_len, + const uint8_t **rcpt_infos, size_t *rcpt_infos_len, + const uint8_t **signer_infos, size_t *signer_infos_len, + const uint8_t **signer_certs, size_t *signer_certs_len, + const uint8_t **signer_crls, size_t *signer_crls_len, + const uint8_t **shared_info1, size_t *shared_info1_len, + const uint8_t **shared_info2, size_t *shared_info2_len); + +// 生成ContentInfo, type == keyAgreementInfo +int cms_set_key_agreement_info( + uint8_t *cms, size_t *cms_len, + const SM2_KEY *temp_public_key_r, + const uint8_t *user_cert, size_t user_cert_len, + const uint8_t *user_id, size_t user_id_len); + +#define PEM_CMS "CMS" +int cms_to_pem(const uint8_t *cms, size_t cms_len, FILE *fp); +int cms_from_pem(uint8_t *cms, size_t *cms_len, size_t maxlen, FILE *fp); + + +int cms_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *a, size_t alen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/des.h b/thirdparty/GmSSL-3.1.1/include/gmssl/des.h new file mode 100644 index 0000000..c79d281 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/des.h @@ -0,0 +1,58 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +/* FIPS PUB 46-3 "Data Encryption Standard (DES)" */ + +#ifndef GMSSL_DES_H +#define GMSSL_DES_H + + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define DES_KEY_BITS 56 +#define DES_BLOCK_BITS 64 +#define DES_KEY_SIZE ((DES_KEY_BITS)/7) +#define DES_BLOCK_SIZE (DES_BLOCK_BITS/8) + +#define DES_RK_BITS 48 +#define DES_RK_SIZE (DES_RK_BITS/8) +#define DES_ROUNDS 16 + +#define DES_EDE_KEY_SIZE (DES_KEY_SIZE * 3) + +typedef struct { + uint64_t rk[DES_ROUNDS]; +} DES_KEY; + +void des_set_encrypt_key(DES_KEY *key, const uint8_t raw_key[DES_KEY_SIZE]); +void des_set_decrypt_key(DES_KEY *key, const uint8_t raw_key[DES_KEY_SIZE]); +void des_encrypt(DES_KEY *key, const uint8_t in[DES_BLOCK_SIZE], uint8_t out[DES_BLOCK_SIZE]); + + +typedef struct { + DES_KEY K[3]; +} DES_EDE_KEY; + +void des_ede_set_encrypt_key(DES_EDE_KEY *key, const uint8_t raw_key[DES_EDE_KEY_SIZE]); +void des_ede_set_decrypt_key(DES_EDE_KEY *key, const uint8_t raw_key[DES_EDE_KEY_SIZE]); +void des_ede_encrypt(DES_EDE_KEY *key, const uint8_t in[DES_BLOCK_SIZE], uint8_t out[DES_BLOCK_SIZE]); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/digest.h b/thirdparty/GmSSL-3.1.1/include/gmssl/digest.h new file mode 100644 index 0000000..18a9d69 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/digest.h @@ -0,0 +1,87 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_DIGEST_H +#define GMSSL_DIGEST_H + + +#include +#include +#include +#ifdef ENABLE_BROKEN_CRYPTO +#include +#include +#endif +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct DIGEST DIGEST; +typedef struct DIGEST_CTX DIGEST_CTX; + + +#define DIGEST_MAX_SIZE 64 +#define DIGEST_MAX_BLOCK_SIZE (1024/8) + + +struct DIGEST_CTX { + union { + SM3_CTX sm3_ctx; +#ifdef ENABLE_BROKEN_CRYPTO + MD5_CTX md5_ctx; + SHA1_CTX sha1_ctx; +#endif + SHA224_CTX sha224_ctx; + SHA256_CTX sha256_ctx; + SHA384_CTX sha384_ctx; + SHA512_CTX sha512_ctx; + } u; + const DIGEST *digest; +}; + +struct DIGEST { + int oid; + size_t digest_size; + size_t block_size; + size_t ctx_size; + int (*init)(DIGEST_CTX *ctx); + int (*update)(DIGEST_CTX *ctx, const uint8_t *data, size_t datalen); + int (*finish)(DIGEST_CTX *ctx, uint8_t *dgst); +}; + +const DIGEST *DIGEST_sm3(void); +#ifdef ENABLE_BROKEN_CRYPTO +const DIGEST *DIGEST_md5(void); +const DIGEST *DIGEST_sha1(void); +#endif +const DIGEST *DIGEST_sha224(void); +const DIGEST *DIGEST_sha256(void); +const DIGEST *DIGEST_sha384(void); +const DIGEST *DIGEST_sha512(void); +const DIGEST *DIGEST_sha512_224(void); +const DIGEST *DIGEST_sha512_256(void); + +const DIGEST *digest_from_name(const char *name); +const char *digest_name(const DIGEST *digest); +int digest_init(DIGEST_CTX *ctx, const DIGEST *algor); +int digest_update(DIGEST_CTX *ctx, const uint8_t *data, size_t datalen); +int digest_finish(DIGEST_CTX *ctx, uint8_t *dgst, size_t *dgstlen); +int digest(const DIGEST *digest, const uint8_t *data, size_t datalen, uint8_t *dgst, size_t *dgstlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/dylib.h b/thirdparty/GmSSL-3.1.1/include/gmssl/dylib.h new file mode 100644 index 0000000..c2aefaa --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/dylib.h @@ -0,0 +1,54 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_DYLIB_H +#define GMSSL_DYLIB_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifdef WIN32 + +#include + +typedef HMODULE dylib_handle_t; + +#define dylib_load_library(so_path) LoadLibraryA(so_path) +#define dylib_get_function(handle,name) GetProcAddress(handle,name) +#define dylib_close_library(handle) +#define dylib_error_str() "" + + +#else + +#include + +typedef void *dylib_handle_t; + +#define dylib_load_library(so_path) dlopen(so_path,RTLD_LAZY) +#define dylib_get_function(handle,name) dlsym(handle,name) +#define dylib_close_library(handle) dlclose(handle) +#define dylib_error_str() dlerror() + + +#endif + + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/ec.h b/thirdparty/GmSSL-3.1.1/include/gmssl/ec.h new file mode 100644 index 0000000..2dc1c00 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/ec.h @@ -0,0 +1,64 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_EC_H +#define GMSSL_EC_H + + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +NamedCurve: + OID_sm2 + OID_prime192v1 + OID_prime256v1 + OID_secp256k1 + OID_secp384r1 + OID_secp521r1 +*/ +const char *ec_named_curve_name(int curve); +int ec_named_curve_from_name(const char *name); +int ec_named_curve_to_der(int curve, uint8_t **out, size_t *outlen); +int ec_named_curve_from_der(int *curve, const uint8_t **in, size_t *inlen); + +/* +ECPoint ::= OCTET STRING -- uncompressed point +*/ +int ec_point_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +ECPrivateKey ::= SEQUENCE { + version INTEGER, -- value MUST be (1) + privateKey OCTET STRING, -- big endian encoding of integer + parameters [0] EXPLICIT OBJECT IDENTIFIER OPTIONAL, -- namedCurve + publicKey [1] EXPLICIT BIT STRING OPTIONAL -- ECPoint +} +*/ + +enum { + EC_private_key_version = 1, +}; + +int ec_private_key_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/endian.h b/thirdparty/GmSSL-3.1.1/include/gmssl/endian.h new file mode 100644 index 0000000..8f4345c --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/endian.h @@ -0,0 +1,78 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_ENDIAN_H +#define GMSSL_ENDIAN_H + + +/* Big Endian R/W */ + +#define GETU16(p) \ + ((uint16_t)(p)[0] << 8 | \ + (uint16_t)(p)[1]) + +#define GETU32(p) \ + ((uint32_t)(p)[0] << 24 | \ + (uint32_t)(p)[1] << 16 | \ + (uint32_t)(p)[2] << 8 | \ + (uint32_t)(p)[3]) + +#define GETU64(p) \ + ((uint64_t)(p)[0] << 56 | \ + (uint64_t)(p)[1] << 48 | \ + (uint64_t)(p)[2] << 40 | \ + (uint64_t)(p)[3] << 32 | \ + (uint64_t)(p)[4] << 24 | \ + (uint64_t)(p)[5] << 16 | \ + (uint64_t)(p)[6] << 8 | \ + (uint64_t)(p)[7]) + + +// 注意:PUTU32(buf, val++) 会出错! +#define PUTU16(p,V) \ + ((p)[0] = (uint8_t)((V) >> 8), \ + (p)[1] = (uint8_t)(V)) + +#define PUTU32(p,V) \ + ((p)[0] = (uint8_t)((V) >> 24), \ + (p)[1] = (uint8_t)((V) >> 16), \ + (p)[2] = (uint8_t)((V) >> 8), \ + (p)[3] = (uint8_t)(V)) + +#define PUTU64(p,V) \ + ((p)[0] = (uint8_t)((V) >> 56), \ + (p)[1] = (uint8_t)((V) >> 48), \ + (p)[2] = (uint8_t)((V) >> 40), \ + (p)[3] = (uint8_t)((V) >> 32), \ + (p)[4] = (uint8_t)((V) >> 24), \ + (p)[5] = (uint8_t)((V) >> 16), \ + (p)[6] = (uint8_t)((V) >> 8), \ + (p)[7] = (uint8_t)(V)) + +/* Little Endian R/W */ + +#define GETU16_LE(p) (*(const uint16_t *)(p)) +#define GETU32_LE(p) (*(const uint32_t *)(p)) +#define GETU64_LE(p) (*(const uint64_t *)(p)) + +#define PUTU16_LE(p,V) *(uint16_t *)(p) = (V) +#define PUTU32_LE(p,V) *(uint32_t *)(p) = (V) +#define PUTU64_LE(p,V) *(uint64_t *)(p) = (V) + +/* Rotate */ + +#define ROL32(a,n) (((a)<<(n))|(((a)&0xffffffff)>>(32-(n)))) +#define ROL64(a,n) (((a)<<(n))|((a)>>(64-(n)))) + +#define ROR32(a,n) ROL32((a),32-(n)) +#define ROR64(a,n) ROL64(a,64-n) + + +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/error.h b/thirdparty/GmSSL-3.1.1/include/gmssl/error.h new file mode 100644 index 0000000..a5902ef --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/error.h @@ -0,0 +1,67 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_ERROR_H +#define GMSSL_ERROR_H + + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define GMSSL_FMT_BIN 1 +#define GMSSL_FMT_HEX 2 +#define GMSSL_FMT_DER 4 +#define GMSSL_FMT_PEM 8 + + + +#define DEBUG 1 + +#define warning_print() \ + do { if (DEBUG) fprintf(stderr, "%s:%d:%s():\n",__FILE__, __LINE__, __func__); } while (0) + +#define error_print() \ + do { if (DEBUG) fprintf(stderr, "%s:%d:%s():\n",__FILE__, __LINE__, __func__); } while (0) + +#define error_print_msg(fmt, ...) \ + do { if (DEBUG) fprintf(stderr, "%s:%d:%s(): " fmt, __FILE__, __LINE__, __func__, __VA_ARGS__); } while (0) + +#define error_puts(str) \ + do { if (DEBUG) fprintf(stderr, "%s: %d: %s: %s", __FILE__, __LINE__, __func__, str); } while (0) + + +void print_der(const uint8_t *in, size_t inlen); +void print_bytes(const uint8_t *in, size_t inlen); +void print_nodes(const uint32_t *in, size_t inlen); + +#define FMT_CARRAY 0x80 + + +int format_print(FILE *fp, int format, int indent, const char *str, ...); +int format_bytes(FILE *fp, int format, int indent, const char *str, const uint8_t *data, size_t datalen); +int format_string(FILE *fp, int format, int indent, const char *str, const uint8_t *data, size_t datalen); + + + +//int tls_trace(int format, int indent, const char *str, ...); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/file.h b/thirdparty/GmSSL-3.1.1/include/gmssl/file.h new file mode 100644 index 0000000..435c37c --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/file.h @@ -0,0 +1,29 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_FILE_H +#define GMSSL_FILE_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +int file_size(FILE *fp, size_t *size); +int file_read_all(const char *file, uint8_t **out, size_t *outlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/gcm.h b/thirdparty/GmSSL-3.1.1/include/gmssl/gcm.h new file mode 100644 index 0000000..97c62fc --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/gcm.h @@ -0,0 +1,73 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_GCM_H +#define GMSSL_GCM_H + + +#include +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +#define GCM_IV_MIN_SIZE 1 +#define GCM_IV_MAX_SIZE ((uint64_t)(1 << (64-3))) +#define GCM_IV_DEFAULT_BITS 96 +#define GCM_IV_DEFAULT_SIZE 12 + +#define GCM_MIN_AAD_SIZE 0 +#define GCM_MAX_AAD_SIZE ((uint64_t)(1 << (64-3))) + +#define GCM_MIN_PLAINTEXT_SIZE 0 +#define GCM_MAX_PLAINTEXT_SIZE ((((uint64_t)1 << 39) - 256) >> 3) + + +#define GHASH_SIZE (16) + + +#define GCM_IS_LITTLE_ENDIAN 1 + + +void ghash(const uint8_t h[16], const uint8_t *aad, size_t aadlen, + const uint8_t *c, size_t clen, uint8_t out[16]); + +typedef struct { + gf128_t H; + gf128_t X; + size_t aadlen; + size_t clen; + uint8_t block[16]; + size_t num; +} GHASH_CTX; + +void ghash_init(GHASH_CTX *ctx, const uint8_t h[16], const uint8_t *aad, size_t aadlen); +void ghash_update(GHASH_CTX *ctx, const uint8_t *c, size_t clen); +void ghash_finish(GHASH_CTX *ctx, uint8_t out[16]); + + +int gcm_encrypt(const BLOCK_CIPHER_KEY *key, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, const uint8_t *in, size_t inlen, + uint8_t *out, size_t taglen, uint8_t *tag); + +int gcm_decrypt(const BLOCK_CIPHER_KEY *key, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, const uint8_t *in, size_t inlen, + const uint8_t *tag, size_t taglen, uint8_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/gf128.h b/thirdparty/GmSSL-3.1.1/include/gmssl/gf128.h new file mode 100644 index 0000000..8263e4a --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/gf128.h @@ -0,0 +1,53 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +/* GF(2^128) defined by f(x) = x^128 + x^7 + x^2 + x + 1 + * A + B mod f(x) = a xor b + * A * 2 mod f(x) + */ + +#ifndef GMSSL_GF128_H +#define GMSSL_GF128_H + + +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +//typedef unsigned __int128 gf128_t; + +typedef struct { + uint64_t hi; + uint64_t lo; +} gf128_t; + + +// Note: send by value is comptabile with uint128_t and sse2 +gf128_t gf128_from_hex(const char *s); +int gf128_equ_hex(gf128_t a, const char *s); +gf128_t gf128_zero(void); +gf128_t gf128_add(gf128_t a, gf128_t b); +gf128_t gf128_mul(gf128_t a, gf128_t b); +gf128_t gf128_mul2(gf128_t a); +gf128_t gf128_from_bytes(const uint8_t p[16]); +void gf128_to_bytes(gf128_t a, uint8_t p[16]); +int gf128_print(FILE *fp, int fmt ,int ind, const char *label, gf128_t a); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/hash_drbg.h b/thirdparty/GmSSL-3.1.1/include/gmssl/hash_drbg.h new file mode 100644 index 0000000..db6d187 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/hash_drbg.h @@ -0,0 +1,79 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +/* NIST SP800-90A Rev.1 "Recommendation for Random Number Generation + * Using Deterministic Random Bit Generators", 10.1.1 Hash_DRBG */ + +#ifndef GMSSL_HASH_DRBG_H +#define GMSSL_HASH_DRBG_H + + +#include +#include +#include + + +/* seedlen for hash_drgb, table 2 of nist sp 800-90a rev.1 */ +#define HASH_DRBG_SM3_SEED_BITS 440 /* 55 bytes */ +#define HASH_DRBG_SHA1_SEED_BITS 440 +#define HASH_DRBG_SHA224_SEED_BITS 440 +#define HASH_DRBG_SHA512_224_SEED_BITS 440 +#define HASH_DRBG_SHA256_SEED_BITS 440 +#define HASH_DRBG_SHA512_256_SEED_BITS 440 +#define HASH_DRBG_SHA384_SEED_BITS 888 /* 110 bytes */ +#define HASH_DRBG_SHA512_SEED_BITS 888 +#define HASH_DRBG_MAX_SEED_BITS 888 + +#define HASH_DRBG_SM3_SEED_SIZE (HASH_DRBG_SM3_SEED_BITS/8) +#define HASH_DRBG_SHA1_SEED_SIZE (HASH_DRBG_SHA1_SEED_BITS/8) +#define HASH_DRBG_SHA224_SEED_SIZE (HASH_DRBG_SHA224_SEED_BITS/8) +#define HASH_DRBG_SHA512_224_SEED_SIZE (HASH_DRBG_SHA512_224_SEED_BITS/8) +#define HASH_DRBG_SHA256_SEED_SIZE (HASH_DRBG_SHA256_SEED_BITS/8) +#define HASH_DRBG_SHA512_256_SEED_SIZE (HASH_DRBG_SHA512_256_SEED_BITS/8) +#define HASH_DRBG_SHA384_SEED_SIZE (HASH_DRBG_SHA384_SEED_BITS/8) +#define HASH_DRBG_SHA512_SEED_SIZE (HASH_DRBG_SHA512_SEED_BITS/8) +#define HASH_DRBG_MAX_SEED_SIZE (HASH_DRBG_MAX_SEED_BITS/8) + +#define HASH_DRBG_RESEED_INTERVAL ((uint64_t)1 << 48) + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + const DIGEST *digest; + uint8_t V[HASH_DRBG_MAX_SEED_SIZE]; + uint8_t C[HASH_DRBG_MAX_SEED_SIZE]; + size_t seedlen; + uint64_t reseed_counter; +} HASH_DRBG; + + +int hash_drbg_init(HASH_DRBG *drbg, + const DIGEST *digest, + const uint8_t *entropy, size_t entropy_len, + const uint8_t *nonce, size_t nonce_len, + const uint8_t *personalstr, size_t personalstr_len); + +int hash_drbg_reseed(HASH_DRBG *drbg, + const uint8_t *entropy, size_t entropy_len, + const uint8_t *additional, size_t additional_len); + +int hash_drbg_generate(HASH_DRBG *drbg, + const uint8_t *additional, size_t additional_len, + size_t outlen, uint8_t *out); + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/hex.h b/thirdparty/GmSSL-3.1.1/include/gmssl/hex.h new file mode 100644 index 0000000..9917618 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/hex.h @@ -0,0 +1,32 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_HEX_H +#define GMSSL_HEX_H + + +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int hex_to_bytes(const char *in, size_t inlen, uint8_t *out, size_t *outlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/hkdf.h b/thirdparty/GmSSL-3.1.1/include/gmssl/hkdf.h new file mode 100644 index 0000000..bbefded --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/hkdf.h @@ -0,0 +1,45 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +// RFC 5869 + +#ifndef GMSSL_HKDF_H +#define GMSSL_HKDF_H + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +int hkdf_extract(const DIGEST *digest, const uint8_t *salt, size_t saltlen, + const uint8_t *ikm, size_t ikmlen, + uint8_t *prk, size_t *prklen); + +int hkdf_expand(const DIGEST *digest, const uint8_t *prk, size_t prklen, + const uint8_t *opt_info, size_t opt_infolen, + size_t L, uint8_t *okm); + +int sm3_hkdf_extract(const uint8_t *salt, size_t saltlen, + const uint8_t *ikm, size_t ikmlen, + uint8_t *prk, size_t *prklen); + +int sm3_hkdf_expand(const uint8_t *prk, size_t prklen, + const uint8_t *opt_info, size_t opt_infolen, + size_t L, uint8_t *okm); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/hmac.h b/thirdparty/GmSSL-3.1.1/include/gmssl/hmac.h new file mode 100644 index 0000000..670586a --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/hmac.h @@ -0,0 +1,47 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_HMAC_H +#define GMSSL_HMAC_H + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +#define HMAC_MAX_SIZE (DIGEST_MAX_SIZE) + + +typedef struct hmac_ctx_st { + const DIGEST *digest; + DIGEST_CTX digest_ctx; + DIGEST_CTX i_ctx; + DIGEST_CTX o_ctx; +} HMAC_CTX; + + +size_t hmac_size(const HMAC_CTX *ctx); + +int hmac_init(HMAC_CTX *ctx, const DIGEST *digest, const uint8_t *key, size_t keylen); +int hmac_update(HMAC_CTX *ctx, const uint8_t *data, size_t datalen); +int hmac_finish(HMAC_CTX *ctx, uint8_t *mac, size_t *maclen); + +int hmac(const DIGEST *md, const uint8_t *key, size_t keylen, + const uint8_t *data, size_t dlen, + uint8_t *mac, size_t *maclen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/http.h b/thirdparty/GmSSL-3.1.1/include/gmssl/http.h new file mode 100644 index 0000000..cda8ad7 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/http.h @@ -0,0 +1,29 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_HTTP_H +#define GMSSL_HTTP_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +int http_parse_uri(const char *uri, char host[128], int *port, char path[256]); +int http_parse_response(char *buf, size_t buflen, uint8_t **content, size_t *contentlen, size_t *left); +int http_get(const char *uri, uint8_t *buf, size_t *contentlen, size_t buflen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/md5.h b/thirdparty/GmSSL-3.1.1/include/gmssl/md5.h new file mode 100644 index 0000000..dc4b91d --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/md5.h @@ -0,0 +1,48 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_MD5_H +#define GMSSL_MD5_H + + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define MD5_IS_BIG_ENDIAN 0 + +#define MD5_DIGEST_SIZE 16 +#define MD5_BLOCK_SIZE 64 +#define MD5_STATE_WORDS (MD5_BLOCK_SIZE/sizeof(uint32_t)) + +typedef struct { + uint32_t state[MD5_STATE_WORDS]; + uint64_t nblocks; + uint8_t block[MD5_BLOCK_SIZE]; + size_t num; +} MD5_CTX; + + +void md5_init(MD5_CTX *ctx); +void md5_update(MD5_CTX *ctx, const uint8_t *data, size_t datalen); +void md5_finish(MD5_CTX *ctx, uint8_t dgst[MD5_DIGEST_SIZE]); +void md5_digest(const uint8_t *data, size_t datalen, uint8_t dgst[MD5_DIGEST_SIZE]); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/mem.h b/thirdparty/GmSSL-3.1.1/include/gmssl/mem.h new file mode 100644 index 0000000..9a57eb7 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/mem.h @@ -0,0 +1,27 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_MEM_H +#define GMSSL_MEM_H + +#include +#include // where size_t from + + +void memxor(void *r, const void *a, size_t len); +void gmssl_memxor(void *r, const void *a, const void *b, size_t len); + +int gmssl_secure_memcmp(const volatile void * volatile in_a, const volatile void * volatile in_b, size_t len); +void gmssl_secure_clear(void *ptr, size_t len); + +int mem_is_zero(const uint8_t *buf, size_t len); // FIXME: uint8_t * to void * + +#endif + diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/oid.h b/thirdparty/GmSSL-3.1.1/include/gmssl/oid.h new file mode 100644 index 0000000..f733676 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/oid.h @@ -0,0 +1,215 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_OID_H +#define GMSSL_OID_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +enum { + OID_undef = 0, + + // ShangMi schemes in GM/T 0006-2012 + OID_sm1, + OID_ssf33, + OID_sm4, + OID_zuc, + OID_sm2, + OID_sm2sign, + OID_sm2keyagreement, + OID_sm2encrypt, + OID_sm9, + OID_sm9sign, + OID_sm9keyagreement, + OID_sm9encrypt, + OID_sm3, + OID_sm3_keyless, + OID_hmac_sm3, + OID_sm2sign_with_sm3, + OID_rsasign_with_sm3, + OID_ec_public_key, // X9.62 ecPublicKey + OID_prime192v1, + OID_prime256v1, + OID_secp256k1, + OID_secp192k1, + OID_secp224k1, + OID_secp224r1, + OID_secp384r1, + OID_secp521r1, + + OID_at_name, + OID_at_surname, + OID_at_given_name, + OID_at_initials, + OID_at_generation_qualifier, + OID_at_common_name, + OID_at_locality_name, + OID_at_state_or_province_name, + OID_at_organization_name, + OID_at_organizational_unit_name, + OID_at_title, + OID_at_dn_qualifier, + OID_at_country_name, + OID_at_serial_number, + OID_at_pseudonym, + OID_domain_component, + OID_email_address, + + // Cert Extensions + OID_ce_authority_key_identifier, + OID_ce_subject_key_identifier, + OID_ce_key_usage, + OID_ce_certificate_policies, + OID_ce_policy_mappings, + OID_ce_subject_alt_name, + OID_ce_issuer_alt_name, + OID_ce_subject_directory_attributes, + OID_ce_basic_constraints, + OID_ce_name_constraints, + OID_ce_policy_constraints, + OID_ce_ext_key_usage, + OID_ce_crl_distribution_points, + OID_ce_inhibit_any_policy, + OID_ce_freshest_crl, + OID_netscape_cert_type, + OID_netscape_cert_comment, + OID_ct_precertificate_scts, + + OID_ad_ca_issuers, + OID_ad_ocsp, + + // CRL Extensions + //OID_ce_authority_key_identifier, + //OID_ce_issuer_alt_name, + OID_ce_crl_number, + OID_ce_delta_crl_indicator, + OID_ce_issuing_distribution_point, + //OID_ce_freshest_crl, + OID_pe_authority_info_access, + + // CRL Entry Extensions + OID_ce_crl_reasons, + OID_ce_invalidity_date, + OID_ce_certificate_issuer, + + // X.509 KeyPropuseID + OID_any_extended_key_usage, + OID_kp_server_auth, + OID_kp_client_auth, + OID_kp_code_signing, + OID_kp_email_protection, + OID_kp_time_stamping, + OID_kp_ocsp_signing, + + OID_qt_cps, + OID_qt_unotice, + + OID_md5, + OID_sha1, + OID_sha224, + OID_sha256, + OID_sha384, + OID_sha512, + OID_sha512_224, + OID_sha512_256, + + + OID_hmac_sha1, + OID_hmac_sha224, + OID_hmac_sha256, + OID_hmac_sha384, + OID_hmac_sha512, + OID_hmac_sha512_224, + OID_hmac_sha512_256, + + OID_pbkdf2, // {pkcs-5 12} + OID_pbes2, // {pkcs-5 13} + + + + OID_sm4_ecb, // 1 2 156 10197 1 104 1 + OID_sm4_cbc, // 1 2 156 10197 1 104 2 + + OID_aes, + OID_aes128_cbc, + OID_aes192_cbc, + OID_aes256_cbc, + + OID_aes128, // 没有OID + + OID_ecdsa_with_sha1, + OID_ecdsa_with_sha224, + OID_ecdsa_with_sha256, + OID_ecdsa_with_sha384, + OID_ecdsa_with_sha512, + + OID_rsasign_with_md5, + OID_rsasign_with_sha1, + OID_rsasign_with_sha224, + OID_rsasign_with_sha256, + OID_rsasign_with_sha384, + OID_rsasign_with_sha512, + + OID_rsa_encryption, + OID_rsaes_oaep, + + OID_any_policy, + + OID_cms_data, + OID_cms_signed_data, + OID_cms_enveloped_data, + OID_cms_signed_and_enveloped_data, + OID_cms_encrypted_data, + OID_cms_key_agreement_info, +}; + +// {iso(1) org(3) dod(6) internet(1) security(5) mechanisms(5) pkix(7)} +#define oid_pkix 1,3,6,1,5,5,7 + +#define oid_pe oid_pkix,1 +#define oid_qt oid_pkix,2 +#define oid_kp oid_pkix,3 +#define oid_ad oid_pkix,48 + +// {iso(1) member-body(2) us(840) rsadsi(113549)} +#define oid_rsadsi 1,2,840,113549 +#define oid_pkcs oid_rsadsi,1 +#define oid_pkcs5 oid_pkcs,5 + +// {iso(1) member-body(2) us(840) ansi-x962(10045)} +#define oid_x9_62 1,2,840,10045 + + + +#define oid_at 2,5,4 +#define oid_ce 2,5,29 + + +#define oid_sm 1,2,156,10197 +#define oid_sm_algors oid_sm,1 +#define oid_sm2_cms oid_sm,6,1,4,2 + + + + + +#define oid_cnt(nodes) (sizeof(nodes)/sizeof((nodes)[0])) + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/pbkdf2.h b/thirdparty/GmSSL-3.1.1/include/gmssl/pbkdf2.h new file mode 100644 index 0000000..20aabb5 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/pbkdf2.h @@ -0,0 +1,54 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_PBKDF2_H +#define GMSSL_PBKDF2_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +PBKDF2 Public API + + PBKDF2_MIN_ITER + PBKDF2_DEFAULT_SALT_SIZE + PBKDF2_MAX_SALT_SIZE + + pbkdf2_hmac_sm3_genkey +*/ + + +#define PBKDF2_MIN_ITER 10000 +#define PBKDF2_MAX_ITER (INT_MAX) +#define PBKDF2_MAX_SALT_SIZE 64 +#define PBKDF2_DEFAULT_SALT_SIZE 8 + + +int pbkdf2_genkey(const DIGEST *digest, + const char *pass, size_t passlen, const uint8_t *salt, size_t saltlen, size_t iter, + size_t outlen, uint8_t *out); + +int pbkdf2_hmac_sm3_genkey( + const char *pass, size_t passlen, const uint8_t *salt, size_t saltlen, size_t iter, + size_t outlen, uint8_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/pem.h b/thirdparty/GmSSL-3.1.1/include/gmssl/pem.h new file mode 100644 index 0000000..cdaaabb --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/pem.h @@ -0,0 +1,33 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_PEM_H +#define GMSSL_PEM_H + + +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +int pem_read(FILE *fp, const char *name, uint8_t *out, size_t *outlen, size_t maxlen); +int pem_write(FILE *fp, const char *name, const uint8_t *in, size_t inlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/pkcs8.h b/thirdparty/GmSSL-3.1.1/include/gmssl/pkcs8.h new file mode 100644 index 0000000..9233b5c --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/pkcs8.h @@ -0,0 +1,169 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +// RFC 5208: PKCS #8: Private-Key Information Syntax Specification version 1.2 + + +#ifndef GMSSL_PKCS8_H +#define GMSSL_PKCS8_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12} + +PBKDF2-params ::= SEQUENCE { + salt CHOICE { + specified OCTET STRING, + otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}} + }, + iterationCount INTEGER (1..MAX), + keyLength INTEGER (1..MAX) OPTIONAL, -- 这个参数可以由函数指定 + prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 +} + +prf must be OID_hmac_sm3 +cipher must be OID_sm4_cbc +*/ +int pbkdf2_params_to_der(const uint8_t *salt, size_t saltlen, int iter, int keylen, int prf, + uint8_t **out, size_t *outlen); +int pbkdf2_params_from_der(const uint8_t **salt, size_t *saltlen, int *iter, int *keylen, int *prf, + const uint8_t **in, size_t *inlen); +int pbkdf2_params_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int pbkdf2_algor_to_der( + const uint8_t *salt, size_t saltlen, + int iter, + int keylen, + int prf, + uint8_t **out, size_t *outlen); +int pbkdf2_algor_from_der( + const uint8_t **salt, size_t *saltlen, + int *iter, + int *keylen, + int *prf, + const uint8_t **in, size_t *inlen); +int pbkdf2_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +/* +id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13} + +PBES2-params ::= SEQUENCE { + keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}}, -- id-PBKDF2 + encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}} + +PBES2-Encs: + AES-CBC-Pad [RFC2898] + RC5-CBC-Pad + DES-CBC-Pad legacy + DES-EDE3-CBC-Pad legacy + RC2-CBC-Pad legacy +*/ + +int pbes2_enc_algor_to_der( + int cipher, + const uint8_t *iv, size_t ivlen, + uint8_t **out, size_t *outlen); +int pbes2_enc_algor_from_der( + int *cipher, + const uint8_t **iv, size_t *ivlen, + const uint8_t **in, size_t *inlen); +int pbes2_enc_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +int pbes2_params_to_der( + const uint8_t *salt, size_t saltlen, + int iter, + int keylen, + int prf, + int cipher, + const uint8_t *iv, size_t ivlen, + uint8_t **out, size_t *outlen); +int pbes2_params_from_der( + const uint8_t **salt, size_t *saltlen, + int *iter, + int *keylen, + int *prf, + int *cipher, + const uint8_t **iv, size_t *ivlen, + const uint8_t **in, size_t *inlen); +int pbes2_params_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +int pbes2_algor_to_der( + const uint8_t *salt, size_t saltlen, + int iter, + int keylen, + int prf, + int cipher, + const uint8_t *iv, size_t ivlen, + uint8_t **out, size_t *outlen); +int pbes2_algor_from_der( + const uint8_t **salt, size_t *saltlen, + int *iter, + int *keylen, + int *prf, + int *cipher, + const uint8_t **iv, size_t *ivlen, + const uint8_t **in, size_t *inlen); +int pbes2_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +from [RFC 5208] + +EncryptedPrivateKeyInfo ::= SEQUENCE { + encryptionAlgorithm EncryptionAlgorithmIdentifier, + encryptedData OCTET STRING } + +encryptionAlgorithm: + id-PBES2 + +PrivateKeyInfo ::= SEQUENCE { + version INTEGER { v1(0) }, + privateKeyAlgorithm AlgorithmIdentifier, + privateKey OCTET STRING, + attributes [0] Attributes OPTIONAL } +*/ + +int pkcs8_enced_private_key_info_to_der( + const uint8_t *salt, size_t saltlen, + int iter, + int keylen, + int prf, + int cipher, + const uint8_t *iv, size_t ivlen, + const uint8_t *enced, size_t encedlen, + uint8_t **out, size_t *outlen); +int pkcs8_enced_private_key_info_from_der( + const uint8_t **salt, size_t *saltlen, + int *iter, + int *keylen, + int *prf, + int *cipher, + const uint8_t **iv, size_t *ivlen, + const uint8_t **enced, size_t *encedlen, + const uint8_t **in, size_t *inlen); +int pkcs8_enced_private_key_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/rand.h b/thirdparty/GmSSL-3.1.1/include/gmssl/rand.h new file mode 100644 index 0000000..86f5b05 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/rand.h @@ -0,0 +1,31 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_RAND_H +#define GMSSL_RAND_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define RAND_BYTES_MAX_SIZE (256) + +_gmssl_export int rand_bytes(uint8_t *buf, size_t buflen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/rc4.h b/thirdparty/GmSSL-3.1.1/include/gmssl/rc4.h new file mode 100644 index 0000000..a6a523c --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/rc4.h @@ -0,0 +1,40 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_RC4_H +#define GMSSL_RC4_H + + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define RC4_MIN_KEY_BITS 40 +#define RC4_STATE_NUM_WORDS 256 + + +typedef struct { + uint8_t d[RC4_STATE_NUM_WORDS]; +} RC4_STATE; + +void rc4_init(RC4_STATE *state, const uint8_t *key, size_t keylen); +void rc4_generate_keystream(RC4_STATE *state, size_t outlen, uint8_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/rdrand.h b/thirdparty/GmSSL-3.1.1/include/gmssl/rdrand.h new file mode 100644 index 0000000..61e034a --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/rdrand.h @@ -0,0 +1,33 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_RDRAND_H +#define GMSSL_RDRAND_H + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +int rdrand_bytes(uint8_t *buf, size_t buflen); + +#ifdef INTEL_RDSEED +int rdseed_bytes(uint8_t *buf, size_t buflen); +#endif + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/rsa.h b/thirdparty/GmSSL-3.1.1/include/gmssl/rsa.h new file mode 100644 index 0000000..4d170c4 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/rsa.h @@ -0,0 +1,56 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_RSA_H +#define GMSSL_RSA_H + + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +RSAPublicKey ::= SEQUENCE { + modulus INTEGER, -- n + publicExponent INTEGER -- e +} + +RSAPrivateKey ::= SEQUENCE { + version INTEGER, -- 0 + modulus INTEGER, -- n + publicExponent INTEGER, -- e + privateExponent INTEGER, -- d + prime1 INTEGER, -- p + prime2 INTEGER, -- q + exponent1 INTEGER, -- d mod (p-1) + exponent2 INTEGER, -- d mod (q-1) + coefficient INTEGER -- q^-1 mod p +} +*/ + + +int rsa_public_key_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + + + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sdf.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sdf.h new file mode 100644 index 0000000..77cf6a0 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sdf.h @@ -0,0 +1,69 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_SDF_H +#define GMSSL_SDF_H + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +/* +SDF Public API + + sdf_load_library + sdf_unload_library + + SDF_DEVICE + sdf_open_device + sdf_close_device + sdf_print_device_info + sdf_rand_bytes + sdf_load_sign_key + + SDF_KEY + sdf_sign + sdf_release_key +*/ + +typedef struct { + void *handle; + char issuer[41]; + char name[17]; + char serial[17]; +} SDF_DEVICE; + +typedef struct { + SM2_KEY public_key; + void *session; + int index; +} SDF_KEY; + + +int sdf_load_library(const char *so_path, const char *vendor); +int sdf_open_device(SDF_DEVICE *dev); +int sdf_print_device_info(FILE *fp, int fmt, int ind, const char *lable, SDF_DEVICE *dev); +int sdf_rand_bytes(SDF_DEVICE *dev, uint8_t *buf, size_t len); +int sdf_load_sign_key(SDF_DEVICE *dev, SDF_KEY *key, int index, const char *pass); +int sdf_sign(SDF_KEY *key, const uint8_t dgst[32], uint8_t *sig, size_t *siglen); +int sdf_release_key(SDF_KEY *key); +int sdf_close_device(SDF_DEVICE *dev); +void sdf_unload_library(void); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sha1.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sha1.h new file mode 100644 index 0000000..38aef90 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sha1.h @@ -0,0 +1,45 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_SHA1_H +#define GMSSL_SHA1_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SHA1_IS_BIG_ENDIAN 1 + +#define SHA1_DIGEST_SIZE 20 +#define SHA1_BLOCK_SIZE 64 +#define SHA1_STATE_WORDS (SHA1_DIGEST_SIZE/sizeof(uint32_t)) + + +typedef struct { + uint32_t state[SHA1_STATE_WORDS]; + uint64_t nblocks; + uint8_t block[SHA1_BLOCK_SIZE]; + size_t num; +} SHA1_CTX; + +void sha1_init(SHA1_CTX *ctx); +void sha1_update(SHA1_CTX *ctx, const uint8_t *data, size_t datalen); +void sha1_finish(SHA1_CTX *ctx, uint8_t dgst[SHA1_DIGEST_SIZE]); +void sha1_digest(const uint8_t *data, size_t datalen, uint8_t dgst[SHA1_DIGEST_SIZE]); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sha2.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sha2.h new file mode 100644 index 0000000..744e7dc --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sha2.h @@ -0,0 +1,102 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_SHA2_H +#define GMSSL_SHA2_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SHA2_IS_BIG_ENDIAN 1 + + +#define SHA224_DIGEST_SIZE 28 +#define SHA224_BLOCK_SIZE 64 +#define SHA224_STATE_WORDS 8 + +typedef struct { + uint32_t state[SHA224_STATE_WORDS]; + uint64_t nblocks; + uint8_t block[SHA224_BLOCK_SIZE]; + size_t num; +} SHA224_CTX; + +void sha224_init(SHA224_CTX *ctx); +void sha224_update(SHA224_CTX *ctx, const uint8_t* data, size_t datalen); +void sha224_finish(SHA224_CTX *ctx, uint8_t dgst[SHA224_DIGEST_SIZE]); +void sha224_digest(const uint8_t *data, size_t datalen, + uint8_t dgst[SHA224_DIGEST_SIZE]); + + +#define SHA256_DIGEST_SIZE 32 +#define SHA256_BLOCK_SIZE 64 +#define SHA256_STATE_WORDS 8 + +typedef struct { + uint32_t state[SHA256_STATE_WORDS]; + uint64_t nblocks; + uint8_t block[SHA256_BLOCK_SIZE]; + size_t num; +} SHA256_CTX; + +void sha256_init(SHA256_CTX *ctx); +void sha256_update(SHA256_CTX *ctx, const uint8_t* data, size_t datalen); +void sha256_finish(SHA256_CTX *ctx, uint8_t dgst[SHA256_DIGEST_SIZE]); +void sha256_digest(const uint8_t *data, size_t datalen, + uint8_t dgst[SHA256_DIGEST_SIZE]); + + +#define SHA384_DIGEST_SIZE 48 +#define SHA384_BLOCK_SIZE 128 +#define SHA384_STATE_WORDS 8 + +typedef struct { + uint64_t state[SHA384_STATE_WORDS]; + uint64_t nblocks; + uint8_t block[SHA384_BLOCK_SIZE]; + size_t num; +} SHA384_CTX; + +void sha384_init(SHA384_CTX *ctx); +void sha384_update(SHA384_CTX *ctx, const uint8_t* data, size_t datalen); +void sha384_finish(SHA384_CTX *ctx, uint8_t dgst[SHA384_DIGEST_SIZE]); +void sha384_digest(const uint8_t *data, size_t datalen, + uint8_t dgst[SHA384_DIGEST_SIZE]); + + +#define SHA512_DIGEST_SIZE 64 +#define SHA512_BLOCK_SIZE 128 +#define SHA512_STATE_WORDS 8 + +typedef struct { + uint64_t state[SHA512_STATE_WORDS]; + uint64_t nblocks; + uint8_t block[SHA512_BLOCK_SIZE]; + size_t num; +} SHA512_CTX; + +void sha512_init(SHA512_CTX *ctx); +void sha512_update(SHA512_CTX *ctx, const uint8_t* data, size_t datalen); +void sha512_finish(SHA512_CTX *ctx, uint8_t dgst[SHA512_DIGEST_SIZE]); +void sha512_digest(const uint8_t *data, size_t datalen, + uint8_t dgst[SHA512_DIGEST_SIZE]); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sha3.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sha3.h new file mode 100644 index 0000000..cb546cc --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sha3.h @@ -0,0 +1,92 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_SHA3_H +#define GMSSL_SHA3_H + + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SHA3_KECCAK_P_SIZE (1600/8) + +#define SHA3_224_DIGEST_SIZE (224/8) +#define SHA3_256_DIGEST_SIZE (256/8) +#define SHA3_384_DIGEST_SIZE (384/8) +#define SHA3_512_DIGEST_SIZE (512/8) + +#define SHA3_224_CAPACITY (SHA3_224_DIGEST_SIZE * 2) +#define SHA3_256_CAPACITY (SHA3_256_DIGEST_SIZE * 2) +#define SHA3_384_CAPACITY (SHA3_384_DIGEST_SIZE * 2) +#define SHA3_512_CAPACITY (SHA3_512_DIGEST_SIZE * 2) + +#define SHA3_224_BLOCK_SIZE (SHA3_KECCAK_P_SIZE - SHA3_224_CAPACITY) // 144 +#define SHA3_256_BLOCK_SIZE (SHA3_KECCAK_P_SIZE - SHA3_224_CAPACITY) // 136 +#define SHA3_384_BLOCK_SIZE (SHA3_KECCAK_P_SIZE - SHA3_224_CAPACITY) // 104 +#define SHA3_512_BLOCK_SIZE (SHA3_KECCAK_P_SIZE - SHA3_224_CAPACITY) // 72 + + +typedef struct { + uint64_t A[5][5]; + uint8_t buf[SHA3_224_BLOCK_SIZE]; + int num; +} SHA3_224_CTX; + +void sha3_224_init(SHA3_224_CTX *ctx); +void sha3_224_update(SHA3_224_CTX *ctx, const uint8_t *data, size_t datalen); +void sha3_224_finish(SHA3_224_CTX *ctx, uint8_t dgst[SHA3_224_DIGEST_SIZE]); + +typedef struct { + uint64_t A[5][5]; + uint8_t buf[SHA3_256_BLOCK_SIZE]; + int num; +} SHA3_256_CTX; + +void sha3_256_init(SHA3_256_CTX *ctx); +void sha3_256_update(SHA3_256_CTX *ctx, const uint8_t *data, size_t datalen); +void sha3_256_finish(SHA3_256_CTX *ctx, uint8_t dgst[SHA3_256_DIGEST_SIZE]); + +typedef struct { + uint64_t A[5][5]; + uint8_t buf[SHA3_384_BLOCK_SIZE]; + int num; +} SHA3_384_CTX; + +void sha3_384_init(SHA3_384_CTX *ctx); +void sha3_384_update(SHA3_384_CTX *ctx, const uint8_t *data, size_t datalen); +void sha3_384_finish(SHA3_384_CTX *ctx, uint8_t dgst[SHA3_384_DIGEST_SIZE]); + +typedef struct { + uint64_t A[5][5]; + uint8_t buf[SHA3_512_BLOCK_SIZE]; + int num; +} SHA3_512_CTX; + +void sha3_512_init(SHA3_512_CTX *ctx); +void sha3_512_update(SHA3_512_CTX *ctx, const uint8_t *data, size_t datalen); +void sha3_512_finish(SHA3_512_CTX *ctx, uint8_t dgst[SHA3_512_DIGEST_SIZE]); + +void sha3_shake128(const uint8_t *in, size_t *inlen, size_t outlen, uint8_t *out); +void sha3_shake256(const uint8_t *in, size_t *inlen, size_t outlen, uint8_t *out); +void sha3_keccak_p(uint8_t state[SHA3_KECCAK_P_SIZE]); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/skf.h b/thirdparty/GmSSL-3.1.1/include/gmssl/skf.h new file mode 100644 index 0000000..2f23de8 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/skf.h @@ -0,0 +1,116 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_SKF_H +#define GMSSL_SKF_H + + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +SKF Public API + + skf_load_library + skf_unload_library + skf_list_devices + skf_print_device_info + + SKF_DEVICE + skf_open_device + skf_close_deivce + skf_set_label + skf_change_authkey + skf_list_apps + skf_create_app + skf_delete_app + skf_change_app_admin_pin + skf_change_app_user_pin + skf_unblock_user_pin + skf_list_objects + skf_import_object + skf_export_object + skf_delete_object + skf_list_containers + skf_create_container + skf_delete_container + skf_import_sign_cert + skf_export_sign_cert + skf_rand_bytes + skf_load_sign_key + + SKF_KEY + skf_sign + skf_release_key +*/ + +typedef struct { + void *handle; + char manufacturer[65]; + char issuer[65]; + char label[33]; + char serial[33]; + uint8_t hardware_version[2]; + uint8_t firmware_version[2]; +} SKF_DEVICE; + +typedef struct { + SM2_KEY public_key; + void *app_handle; + char app_name[65]; + void *container_handle; + char container_name[65]; +} SKF_KEY; + +int skf_load_library(const char *so_path, const char *vendor); +void skf_unload_library(void); + +int skf_list_devices(FILE *fp, int fmt, int ind, const char *label); +int skf_print_device_info(FILE *fp, int fmt, int ind, const char *devname); +int skf_open_device(SKF_DEVICE *dev, const char *devname, const uint8_t authkey[16]); +int skf_set_label(SKF_DEVICE *dev, const char *label); +int skf_change_authkey(SKF_DEVICE *dev, const uint8_t authkey[16]); +int skf_close_device(SKF_DEVICE *dev); + +int skf_list_apps(SKF_DEVICE *dev, int fmt, int ind, const char *label, FILE *fp); +int skf_create_app(SKF_DEVICE *dev, const char *appname, const char *admin_pin, const char *user_pin); +int skf_delete_app(SKF_DEVICE *dev, const char *appname); +int skf_change_app_admin_pin(SKF_DEVICE *dev, const char *appname, const char *oid_pin, const char *new_pin); +int skf_change_app_user_pin(SKF_DEVICE *dev, const char *appname, const char *oid_pin, const char *new_pin); +int skf_unblock_user_pin(SKF_DEVICE *dev, const char *appname, const char *admin_pin, const char *new_user_pin); + +int skf_list_objects(FILE *fp, int fmt, int ind, const char *label, SKF_DEVICE *dev, const char *appname, const char *pin); +int skf_import_object(SKF_DEVICE *dev, const char *appname, const char *pin, const char *objname, const uint8_t *data, size_t datalen); +int skf_export_object(SKF_DEVICE *dev, const char *appname, const char *pin, const char *objname, uint8_t *out, size_t *outlen); +int skf_delete_object(SKF_DEVICE *dev, const char *appname, const char *pin, const char *objname); + +int skf_list_containers(FILE *fp, int fmt, int ind, const char *label, SKF_DEVICE *dev, const char *appname, const char *pin); +int skf_create_container(SKF_DEVICE *dev, const char *appname, const char *pin, const char *container_name); +int skf_delete_container(SKF_DEVICE *dev, const char *appname, const char *pin, const char *container_name); +int skf_import_sign_cert(SKF_DEVICE *dev, const char *appname, const char *pin, const char *container_name, const uint8_t *cert, size_t certlen); +int skf_export_sign_cert(SKF_DEVICE *dev, const char *appname, const char *pin, const char *container_name, uint8_t *cert, size_t *certlen); + +int skf_rand_bytes(SKF_DEVICE *dev, uint8_t *buf, size_t len); +int skf_load_sign_key(SKF_DEVICE *dev, const char *appname, const char *pin, const char *container_name, SKF_KEY *key); +int skf_sign(SKF_KEY *key, const uint8_t dgst[32], uint8_t *sig, size_t *siglen); +int skf_release_key(SKF_KEY *key); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm2.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2.h new file mode 100644 index 0000000..1d39fde --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2.h @@ -0,0 +1,382 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_SM2_H +#define GMSSL_SM2_H + +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +SM2 Public API + + SM2_DEFAULT_ID + SM2_MAX_ID_LENGTH + SM2_MAX_SIGNATURE_SIZE + SM2_MAX_PLAINTEXT_SIZE + SM2_MAX_CIPHERTEXT_SIZE + + SM2_KEY + sm2_key_generate + sm2_private_key_info_encrypt_to_der + sm2_private_key_info_decrypt_from_der + sm2_private_key_info_encrypt_to_pem + sm2_private_key_info_decrypt_from_pem + sm2_public_key_info_to_der + sm2_public_key_info_from_der + sm2_public_key_info_to_pem + sm2_public_key_info_from_pem + + sm2_sign + sm2_verify + sm2_encrypt + sm2_decrypt + sm2_ecdh + + SM2_SIGN_CTX + sm2_sign_init + sm2_sign_update + sm2_sign_finish + sm2_verify_init + sm2_verify_update + sm2_verify_finish +*/ + +typedef uint64_t SM2_BN[8]; + +int sm2_bn_is_zero(const SM2_BN a); +int sm2_bn_is_one(const SM2_BN a); +int sm2_bn_is_odd(const SM2_BN a); +int sm2_bn_cmp(const SM2_BN a, const SM2_BN b); +int sm2_bn_from_hex(SM2_BN r, const char hex[64]); +int sm2_bn_from_asn1_integer(SM2_BN r, const uint8_t *d, size_t dlen); +int sm2_bn_equ_hex(const SM2_BN a, const char *hex); +int sm2_bn_print(FILE *fp, int fmt, int ind, const char *label, const SM2_BN a); +int sm2_bn_rshift(SM2_BN ret, const SM2_BN a, unsigned int nbits); + +void sm2_bn_to_bytes(const SM2_BN a, uint8_t out[32]); +void sm2_bn_from_bytes(SM2_BN r, const uint8_t in[32]); +void sm2_bn_to_hex(const SM2_BN a, char hex[64]); +void sm2_bn_to_bits(const SM2_BN a, char bits[256]); +void sm2_bn_set_word(SM2_BN r, uint32_t a); +void sm2_bn_add(SM2_BN r, const SM2_BN a, const SM2_BN b); +void sm2_bn_sub(SM2_BN ret, const SM2_BN a, const SM2_BN b); +int sm2_bn_rand_range(SM2_BN r, const SM2_BN range); + +#define sm2_bn_init(r) memset((r),0,sizeof(SM2_BN)) +#define sm2_bn_set_zero(r) memset((r),0,sizeof(SM2_BN)) +#define sm2_bn_set_one(r) sm2_bn_set_word((r),1) +#define sm2_bn_copy(r,a) memcpy((r),(a),sizeof(SM2_BN)) +#define sm2_bn_clean(r) memset((r),0,sizeof(SM2_BN)) + + +// GF(p) +typedef SM2_BN SM2_Fp; + +void sm2_fp_add(SM2_Fp r, const SM2_Fp a, const SM2_Fp b); +void sm2_fp_sub(SM2_Fp r, const SM2_Fp a, const SM2_Fp b); +void sm2_fp_mul(SM2_Fp r, const SM2_Fp a, const SM2_Fp b); +void sm2_fp_exp(SM2_Fp r, const SM2_Fp a, const SM2_Fp e); +void sm2_fp_dbl(SM2_Fp r, const SM2_Fp a); +void sm2_fp_tri(SM2_Fp r, const SM2_Fp a); +void sm2_fp_div2(SM2_Fp r, const SM2_Fp a); +void sm2_fp_neg(SM2_Fp r, const SM2_Fp a); +void sm2_fp_sqr(SM2_Fp r, const SM2_Fp a); +void sm2_fp_inv(SM2_Fp r, const SM2_Fp a); +int sm2_fp_rand(SM2_Fp r); + +int sm2_fp_sqrt(SM2_Fp r, const SM2_Fp a); + +#define sm2_fp_init(r) sm2_bn_init(r) +#define sm2_fp_set_zero(r) sm2_bn_set_zero(r) +#define sm2_fp_set_one(r) sm2_bn_set_one(r) +#define sm2_fp_copy(r,a) sm2_bn_copy(r,a) +#define sm2_fp_clean(r) sm2_bn_clean(r) + +// GF(n) +typedef SM2_BN SM2_Fn; + +void sm2_fn_add(SM2_Fn r, const SM2_Fn a, const SM2_Fn b); +void sm2_fn_sub(SM2_Fn r, const SM2_Fn a, const SM2_Fn b); +void sm2_fn_mul(SM2_Fn r, const SM2_Fn a, const SM2_Fn b); +void sm2_fn_mul_word(SM2_Fn r, const SM2_Fn a, uint32_t b); +void sm2_fn_exp(SM2_Fn r, const SM2_Fn a, const SM2_Fn e); +void sm2_fn_neg(SM2_Fn r, const SM2_Fn a); +void sm2_fn_sqr(SM2_Fn r, const SM2_Fn a); +void sm2_fn_inv(SM2_Fn r, const SM2_Fn a); +int sm2_fn_rand(SM2_Fn r); + +#define sm2_fn_init(r) sm2_bn_init(r) +#define sm2_fn_set_zero(r) sm2_bn_set_zero(r) +#define sm2_fn_set_one(r) sm2_bn_set_one(r) +#define sm2_fn_copy(r,a) sm2_bn_copy(r,a) +#define sm2_fn_clean(r) sm2_bn_clean(r) + + +typedef struct { + SM2_BN X; + SM2_BN Y; + SM2_BN Z; +} SM2_JACOBIAN_POINT; + +void sm2_jacobian_point_init(SM2_JACOBIAN_POINT *R); +void sm2_jacobian_point_set_xy(SM2_JACOBIAN_POINT *R, const SM2_BN x, const SM2_BN y); +void sm2_jacobian_point_get_xy(const SM2_JACOBIAN_POINT *P, SM2_BN x, SM2_BN y); +void sm2_jacobian_point_neg(SM2_JACOBIAN_POINT *R, const SM2_JACOBIAN_POINT *P); +void sm2_jacobian_point_dbl(SM2_JACOBIAN_POINT *R, const SM2_JACOBIAN_POINT *P); +void sm2_jacobian_point_add(SM2_JACOBIAN_POINT *R, const SM2_JACOBIAN_POINT *P, const SM2_JACOBIAN_POINT *Q); +void sm2_jacobian_point_sub(SM2_JACOBIAN_POINT *R, const SM2_JACOBIAN_POINT *P, const SM2_JACOBIAN_POINT *Q); +void sm2_jacobian_point_mul(SM2_JACOBIAN_POINT *R, const SM2_BN k, const SM2_JACOBIAN_POINT *P); +void sm2_jacobian_point_to_bytes(const SM2_JACOBIAN_POINT *P, uint8_t out[64]); +void sm2_jacobian_point_from_bytes(SM2_JACOBIAN_POINT *P, const uint8_t in[64]); +void sm2_jacobian_point_mul_generator(SM2_JACOBIAN_POINT *R, const SM2_BN k); +void sm2_jacobian_point_mul_sum(SM2_JACOBIAN_POINT *R, const SM2_BN t, const SM2_JACOBIAN_POINT *P, const SM2_BN s); +void sm2_jacobian_point_from_hex(SM2_JACOBIAN_POINT *P, const char hex[64 * 2]); // for testing only + +int sm2_jacobian_point_is_at_infinity(const SM2_JACOBIAN_POINT *P); +int sm2_jacobian_point_is_on_curve(const SM2_JACOBIAN_POINT *P); +int sm2_jacobian_point_equ_hex(const SM2_JACOBIAN_POINT *P, const char hex[128]); // for testing only +int sm2_jacobian_point_print(FILE *fp, int fmt, int ind, const char *label, const SM2_JACOBIAN_POINT *P); + +#define sm2_jacobian_point_set_infinity(R) sm2_jacobian_point_init(R) +#define sm2_jacobian_point_copy(R, P) memcpy((R), (P), sizeof(SM2_JACOBIAN_POINT)) + +typedef uint8_t sm2_bn_t[32]; + +typedef struct { + uint8_t x[32]; + uint8_t y[32]; +} SM2_POINT; + +#define sm2_point_init(P) memset((P),0,sizeof(SM2_POINT)) +#define sm2_point_set_infinity(P) sm2_point_init(P) +int sm2_point_from_octets(SM2_POINT *P, const uint8_t *in, size_t inlen); +void sm2_point_to_compressed_octets(const SM2_POINT *P, uint8_t out[33]); +void sm2_point_to_uncompressed_octets(const SM2_POINT *P, uint8_t out[65]); + +int sm2_point_from_x(SM2_POINT *P, const uint8_t x[32], int y); +int sm2_point_from_xy(SM2_POINT *P, const uint8_t x[32], const uint8_t y[32]); +int sm2_point_is_on_curve(const SM2_POINT *P); +int sm2_point_is_at_infinity(const SM2_POINT *P); +int sm2_point_add(SM2_POINT *R, const SM2_POINT *P, const SM2_POINT *Q); +int sm2_point_sub(SM2_POINT *R, const SM2_POINT *P, const SM2_POINT *Q); +int sm2_point_neg(SM2_POINT *R, const SM2_POINT *P); +int sm2_point_dbl(SM2_POINT *R, const SM2_POINT *P); +int sm2_point_mul(SM2_POINT *R, const uint8_t k[32], const SM2_POINT *P); +int sm2_point_mul_generator(SM2_POINT *R, const uint8_t k[32]); +int sm2_point_mul_sum(SM2_POINT *R, const uint8_t k[32], const SM2_POINT *P, const uint8_t s[32]); // R = k * P + s * G + +/* +RFC 5480 Elliptic Curve Cryptography Subject Public Key Information +ECPoint ::= OCTET STRING +*/ +#define SM2_POINT_MAX_SIZE (2 + 65) +int sm2_point_to_der(const SM2_POINT *P, uint8_t **out, size_t *outlen); +int sm2_point_from_der(SM2_POINT *P, const uint8_t **in, size_t *inlen); +int sm2_point_print(FILE *fp, int fmt, int ind, const char *label, const SM2_POINT *P); +int sm2_point_from_hash(SM2_POINT *R, const uint8_t *data, size_t datalen); + + +typedef struct { + SM2_POINT public_key; + uint8_t private_key[32]; +} SM2_KEY; + + +_gmssl_export int sm2_key_generate(SM2_KEY *key); +int sm2_key_set_private_key(SM2_KEY *key, const uint8_t private_key[32]); // key->public_key will be replaced +int sm2_key_set_public_key(SM2_KEY *key, const SM2_POINT *public_key); // key->private_key will be cleared // FIXME: support octets as input? +int sm2_key_print(FILE *fp, int fmt, int ind, const char *label, const SM2_KEY *key); + +int sm2_public_key_equ(const SM2_KEY *sm2_key, const SM2_KEY *pub_key); +//int sm2_public_key_copy(SM2_KEY *sm2_key, const SM2_KEY *pub_key); // do we need this? +int sm2_public_key_digest(const SM2_KEY *key, uint8_t dgst[32]); +int sm2_public_key_print(FILE *fp, int fmt, int ind, const char *label, const SM2_KEY *pub_key); + +/* +from RFC 5915 + +ECPrivateKey ::= SEQUENCE { + version INTEGER, -- value MUST be (1) + privateKey OCTET STRING, -- big endian encoding of integer 这里不是以INTEGER编码的,因此长度固定 + parameters [0] EXPLICIT ECParameters OPTIONAL, + -- ONLY namedCurve OID is permitted, by RFC 5480 + -- MUST always include this field, by RFC 5915 + publicKey [1] EXPLICIT BIT STRING OPTIONAL -- compressed_point + -- SHOULD always include this field, by RFC 5915 } + +ECParameters ::= CHOICE { namedCurve OBJECT IDENTIFIER } +*/ +#define SM2_PRIVATE_KEY_DEFAULT_SIZE 120 // generated +#define SM2_PRIVATE_KEY_BUF_SIZE 512 // MUST >= SM2_PRIVATE_KEY_DEFAULT_SIZE + +int sm2_private_key_to_der(const SM2_KEY *key, uint8_t **out, size_t *outlen); +int sm2_private_key_from_der(SM2_KEY *key, const uint8_t **in, size_t *inlen); +int sm2_private_key_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); +int sm2_private_key_to_pem(const SM2_KEY *key, FILE *fp); +int sm2_private_key_from_pem(SM2_KEY *key, FILE *fp); + +/* +AlgorithmIdentifier ::= { + algorithm OBJECT IDENTIFIER { id-ecPublicKey }, + parameters OBJECT IDENTIFIER { id-sm2 } } +*/ +int sm2_public_key_algor_to_der(uint8_t **out, size_t *outlen); +int sm2_public_key_algor_from_der(const uint8_t **in, size_t *inlen); + +/* +SubjectPublicKeyInfo from RFC 5280 + +SubjectPublicKeyInfo ::= SEQUENCE { + algorithm AlgorithmIdentifier, + subjectPublicKey BIT STRING -- uncompressed octets of ECPoint } +*/ +_gmssl_export int sm2_public_key_info_to_der(const SM2_KEY *a, uint8_t **out, size_t *outlen); +_gmssl_export int sm2_public_key_info_from_der(SM2_KEY *a, const uint8_t **in, size_t *inlen); +_gmssl_export int sm2_public_key_info_to_pem(const SM2_KEY *a, FILE *fp); +_gmssl_export int sm2_public_key_info_from_pem(SM2_KEY *a, FILE *fp); + +/* +PKCS #8 PrivateKeyInfo from RFC 5208 + +PrivateKeyInfo ::= SEQUENCE { + version Version { v1(0) }, + privateKeyAlgorithm AlgorithmIdentifier, + privateKey OCTET STRING, -- DER-encoding of ECPrivateKey + attributes [0] IMPLICIT SET OF Attribute OPTIONAL } +*/ +enum { + PKCS8_private_key_info_version = 0, +}; + + +int sm2_private_key_info_to_der(const SM2_KEY *key, uint8_t **out, size_t *outlen); +int sm2_private_key_info_from_der(SM2_KEY *key, const uint8_t **attrs, size_t *attrslen, const uint8_t **in, size_t *inlen); +int sm2_private_key_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); +int sm2_private_key_info_to_pem(const SM2_KEY *key, FILE *fp); +// FIXME: #define default buffer size for sm2_private_key_info_from_pem +int sm2_private_key_info_from_pem(SM2_KEY *key, FILE *fp); + +/* +EncryptedPrivateKeyInfo ::= SEQUENCE { + encryptionAlgorithm EncryptionAlgorithmIdentifier, -- id-PBES2 + encryptedData OCTET STRING } +*/ +_gmssl_export int sm2_private_key_info_encrypt_to_der(const SM2_KEY *key, + const char *pass, uint8_t **out, size_t *outlen); +_gmssl_export int sm2_private_key_info_decrypt_from_der(SM2_KEY *key, const uint8_t **attrs, size_t *attrs_len, + const char *pass, const uint8_t **in, size_t *inlen); +_gmssl_export int sm2_private_key_info_encrypt_to_pem(const SM2_KEY *key, const char *pass, FILE *fp); +// FIXME: #define default buffer size +_gmssl_export int sm2_private_key_info_decrypt_from_pem(SM2_KEY *key, const char *pass, FILE *fp); + + +typedef struct { + uint8_t r[32]; + uint8_t s[32]; +} SM2_SIGNATURE; + +int sm2_do_sign(const SM2_KEY *key, const uint8_t dgst[32], SM2_SIGNATURE *sig); +int sm2_do_sign_fast(const SM2_Fn d, const uint8_t dgst[32], SM2_SIGNATURE *sig); +int sm2_do_verify(const SM2_KEY *key, const uint8_t dgst[32], const SM2_SIGNATURE *sig); + + +#define SM2_MIN_SIGNATURE_SIZE 8 +#define SM2_MAX_SIGNATURE_SIZE 72 +int sm2_signature_to_der(const SM2_SIGNATURE *sig, uint8_t **out, size_t *outlen); +int sm2_signature_from_der(SM2_SIGNATURE *sig, const uint8_t **in, size_t *inlen); +int sm2_signature_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *sig, size_t siglen); +_gmssl_export int sm2_sign(const SM2_KEY *key, const uint8_t dgst[32], uint8_t *sig, size_t *siglen); +_gmssl_export int sm2_verify(const SM2_KEY *key, const uint8_t dgst[32], const uint8_t *sig, size_t siglen); + +enum { + SM2_signature_compact_size = 70, + SM2_signature_typical_size = 71, + SM2_signature_max_size = 72, +}; +int sm2_sign_fixlen(const SM2_KEY *key, const uint8_t dgst[32], size_t siglen, uint8_t *sig); + +#define SM2_DEFAULT_ID "1234567812345678" +#define SM2_DEFAULT_ID_LENGTH (sizeof(SM2_DEFAULT_ID) - 1) // LENGTH for string and SIZE for bytes +#define SM2_DEFAULT_ID_BITS (SM2_DEFAULT_ID_LENGTH * 8) +#define SM2_MAX_ID_BITS 65535 +#define SM2_MAX_ID_LENGTH (SM2_MAX_ID_BITS/8) + +int sm2_compute_z(uint8_t z[32], const SM2_POINT *pub, const char *id, size_t idlen); + + +typedef struct { + SM3_CTX sm3_ctx; + SM2_KEY key; +} SM2_SIGN_CTX; + +_gmssl_export int sm2_sign_init(SM2_SIGN_CTX *ctx, const SM2_KEY *key, const char *id, size_t idlen); +_gmssl_export int sm2_sign_update(SM2_SIGN_CTX *ctx, const uint8_t *data, size_t datalen); +_gmssl_export int sm2_sign_finish(SM2_SIGN_CTX *ctx, uint8_t *sig, size_t *siglen); +int sm2_sign_finish_fixlen(SM2_SIGN_CTX *ctx, size_t siglen, uint8_t *sig); + +_gmssl_export int sm2_verify_init(SM2_SIGN_CTX *ctx, const SM2_KEY *key, const char *id, size_t idlen); +_gmssl_export int sm2_verify_update(SM2_SIGN_CTX *ctx, const uint8_t *data, size_t datalen); +_gmssl_export int sm2_verify_finish(SM2_SIGN_CTX *ctx, const uint8_t *sig, size_t siglen); + +/* +SM2Cipher ::= SEQUENCE { + XCoordinate INTEGER, + YCoordinate INTEGER, + HASH OCTET STRING SIZE(32), + CipherText OCTET STRING } +*/ +#define SM2_MIN_PLAINTEXT_SIZE 1 // re-compute SM2_MIN_CIPHERTEXT_SIZE when modify +#define SM2_MAX_PLAINTEXT_SIZE 255 // re-compute SM2_MAX_CIPHERTEXT_SIZE when modify + +typedef struct { + SM2_POINT point; + uint8_t hash[32]; + uint8_t ciphertext_size; + uint8_t ciphertext[SM2_MAX_PLAINTEXT_SIZE]; +} SM2_CIPHERTEXT; + +int sm2_do_encrypt(const SM2_KEY *key, const uint8_t *in, size_t inlen, SM2_CIPHERTEXT *out); +int sm2_do_decrypt(const SM2_KEY *key, const SM2_CIPHERTEXT *in, uint8_t *out, size_t *outlen); + +#define SM2_MIN_CIPHERTEXT_SIZE 45 // depends on SM2_MIN_PLAINTEXT_SIZE +#define SM2_MAX_CIPHERTEXT_SIZE 366 // depends on SM2_MAX_PLAINTEXT_SIZE +int sm2_ciphertext_to_der(const SM2_CIPHERTEXT *c, uint8_t **out, size_t *outlen); +int sm2_ciphertext_from_der(SM2_CIPHERTEXT *c, const uint8_t **in, size_t *inlen); +int sm2_ciphertext_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *a, size_t alen); +_gmssl_export int sm2_encrypt(const SM2_KEY *key, const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +_gmssl_export int sm2_decrypt(const SM2_KEY *key, const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); + +enum { + SM2_ciphertext_compact_point_size = 68, + SM2_ciphertext_typical_point_size = 69, + SM2_ciphertext_max_point_size = 70, +}; +int sm2_do_encrypt_fixlen(const SM2_KEY *key, const uint8_t *in, size_t inlen, int point_size, SM2_CIPHERTEXT *out); +int sm2_encrypt_fixlen(const SM2_KEY *key, const uint8_t *in, size_t inlen, int point_size, uint8_t *out, size_t *outlen); + + +int sm2_do_ecdh(const SM2_KEY *key, const SM2_POINT *peer_public, SM2_POINT *out); +_gmssl_export int sm2_ecdh(const SM2_KEY *key, const uint8_t *peer_public, size_t peer_public_len, SM2_POINT *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_blind.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_blind.h new file mode 100644 index 0000000..db34aff --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_blind.h @@ -0,0 +1,49 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +#ifndef GMSSL_SM2_BLIND_H +#define GMSSL_SM2_BLIND_H + +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + SM3_CTX sm3_ctx; + SM2_KEY public_key; + uint8_t blind_factor_a[32]; + uint8_t blind_factor_b[32]; + uint8_t sig_r[32]; +} SM2_BLIND_SIGN_CTX; + + +#define SM2_BLIND_SIGN_MAX_COMMITLEN 65 + +int sm2_blind_sign_commit(SM2_Fn k, uint8_t *commit, size_t *commitlen); +int sm2_blind_sign_init(SM2_BLIND_SIGN_CTX *ctx, const SM2_KEY *public_key, const char *id, size_t idlen); +int sm2_blind_sign_update(SM2_BLIND_SIGN_CTX *ctx, const uint8_t *data, size_t datalen); +int sm2_blind_sign_finish(SM2_BLIND_SIGN_CTX *ctx, const uint8_t *commit, size_t commitlen, uint8_t blinded_sig_r[32]); +int sm2_blind_sign(const SM2_KEY *key, const SM2_Fn k, const uint8_t blinded_sig_r[32], uint8_t blinded_sig_s[32]); +int sm2_blind_sign_unblind(SM2_BLIND_SIGN_CTX *ctx, const uint8_t blinded_sig_s[32], uint8_t *sig, size_t *siglen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_commit.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_commit.h new file mode 100644 index 0000000..6df8958 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_commit.h @@ -0,0 +1,40 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +#ifndef GMSSL_SM2_COMMIT_H +#define GMSSL_SM2_COMMIT_H + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +int sm2_commit_generate(const uint8_t x[32], uint8_t r[32], uint8_t commit[65], size_t *commitlen); +int sm2_commit_open(const uint8_t x[32], const uint8_t r[32], const uint8_t *commit, size_t commitlen); +int sm2_commit_vector_generate(const sm2_bn_t *x, size_t count, uint8_t r[32], uint8_t commit[65], size_t *commitlen); +int sm2_commit_vector_open(const sm2_bn_t *x, size_t count, const uint8_t r[32], const uint8_t *commit, size_t commitlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_elgamal.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_elgamal.h new file mode 100644 index 0000000..e9ee7a9 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_elgamal.h @@ -0,0 +1,67 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_SM2_ELGAMAL_H +#define GMSSL_SM2_ELGAMAL_H + + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SM2_PRE_COMPUTE_MAX_OFFSETS 6 + +typedef struct { + uint16_t offset[SM2_PRE_COMPUTE_MAX_OFFSETS]; + uint8_t offset_count; + uint8_t x_coordinate[32]; +} SM2_PRE_COMPUTE; + +int sm2_elgamal_decrypt_pre_compute(SM2_PRE_COMPUTE table[1<<16]); +int sm2_elgamal_solve_ecdlp(const SM2_PRE_COMPUTE table[1<<16], const SM2_POINT *point, uint32_t *private); + + +typedef struct { + SM2_POINT C1; + SM2_POINT C2; +} SM2_ELGAMAL_CIPHERTEXT; + +int sm2_elgamal_do_encrypt(const SM2_KEY *pub_key, uint32_t in, SM2_ELGAMAL_CIPHERTEXT *out); +int sm2_elgamal_do_decrypt(const SM2_KEY *key, const SM2_ELGAMAL_CIPHERTEXT *in, uint32_t *out); + +int sm2_elgamal_ciphertext_add(SM2_ELGAMAL_CIPHERTEXT *r, + const SM2_ELGAMAL_CIPHERTEXT *a, + const SM2_ELGAMAL_CIPHERTEXT *b, + const SM2_KEY *pub_key); +int sm2_elgamal_cipehrtext_sub(SM2_ELGAMAL_CIPHERTEXT *r, + const SM2_ELGAMAL_CIPHERTEXT *a, const SM2_ELGAMAL_CIPHERTEXT *b, + const SM2_KEY *pub_key); +int sm2_elgamal_cipehrtext_neg(SM2_ELGAMAL_CIPHERTEXT *r, + const SM2_ELGAMAL_CIPHERTEXT *a, const SM2_KEY *pub_key); +int sm2_elgamal_ciphertext_scalar_mul(SM2_ELGAMAL_CIPHERTEXT *R, + const uint8_t scalar[32], const SM2_ELGAMAL_CIPHERTEXT *A, + const SM2_KEY *pub_key); + +int sm2_elgamal_ciphertext_to_der(const SM2_ELGAMAL_CIPHERTEXT *c, uint8_t **out, size_t *outlen); +int sm2_elgamal_ciphertext_from_der(SM2_ELGAMAL_CIPHERTEXT *c, const uint8_t **in, size_t *inlen); + +int sm2_elgamal_encrypt(const SM2_KEY *pub_key, uint32_t in, uint8_t *out, size_t *outlen); +int sm2_elgamal_decrypt(SM2_KEY *key, const uint8_t *in, size_t inlen, uint32_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_key_share.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_key_share.h new file mode 100644 index 0000000..7288d32 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_key_share.h @@ -0,0 +1,45 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +// SM2 Key Shamir Secret Sharing + + +#ifndef GMSSL_SM2_KEY_SHARE_H +#define GMSSL_SM2_KEY_SHARE_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SM2_KEY_MAX_SHARES 12 // 12! = 479001600 < 2^31 = 2147483648 + + +typedef struct { + SM2_KEY key; + size_t index; + size_t total_cnt; +} SM2_KEY_SHARE; + +int sm2_key_split(const SM2_KEY *key, size_t recover_cnt, size_t total_cnt, SM2_KEY_SHARE *shares); +int sm2_key_recover(SM2_KEY *key, const SM2_KEY_SHARE *shares, size_t shares_cnt); +int sm2_key_share_encrypt_to_file(const SM2_KEY_SHARE *share, const char *pass, const char *path_prefix); +int sm2_key_share_decrypt_from_file(SM2_KEY_SHARE *share, const char *pass, const char *file); +int sm2_key_share_print(FILE *fp, int fmt, int ind, const char *label, const SM2_KEY_SHARE *share); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_recover.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_recover.h new file mode 100644 index 0000000..92d2c01 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_recover.h @@ -0,0 +1,31 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_SM2_RECOVER_H +#define GMSSL_SM2_RECOVER_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +int sm2_signature_to_public_key_points(const SM2_SIGNATURE *sig, const uint8_t dgst[32], + SM2_POINT points[4], size_t *points_cnt); +int sm2_signature_conjugate(const SM2_SIGNATURE *sig, SM2_SIGNATURE *new_sig); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_ring.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_ring.h new file mode 100644 index 0000000..6ce4e49 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm2_ring.h @@ -0,0 +1,63 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_SM2_RING_H +#define GMSSL_SM2_RING_H + +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef uint8_t sm2_bn_t[32]; + +int sm2_ring_do_sign(const SM2_KEY *sign_key, const SM2_POINT *public_keys, size_t public_keys_cnt, + const uint8_t dgst[32], uint8_t r[32], sm2_bn_t *s); +int sm2_ring_do_verify(const SM2_POINT *public_keys, size_t public_keys_cnt, + const uint8_t dgst[32], const uint8_t r[32], const sm2_bn_t *s); +int sm2_ring_signature_to_der(const sm2_bn_t r, const sm2_bn_t *s, size_t s_cnt, uint8_t **out, size_t *outlen); +int sm2_ring_signature_from_der(sm2_bn_t r, sm2_bn_t *s, size_t *s_cnt, const uint8_t **in, size_t *inlen); +int sm2_ring_sign(const SM2_KEY *sign_key, const SM2_POINT *public_keys, size_t public_keys_cnt, + const uint8_t dgst[32], uint8_t *sig, size_t *siglen); +int sm2_ring_verify(const SM2_POINT *public_keys, size_t public_keys_cnt, + const uint8_t dgst[32], const uint8_t *sig, size_t siglen); + + +#define SM2_RING_SIGN_MAX_SIGNERS 32 +typedef struct { + int state; + SM3_CTX sm3_ctx; + SM2_KEY sign_key; + SM2_POINT public_keys[SM2_RING_SIGN_MAX_SIGNERS]; + size_t public_keys_count; + char *id; + size_t idlen; +} SM2_RING_SIGN_CTX; + +int sm2_ring_sign_init(SM2_RING_SIGN_CTX *ctx, const SM2_KEY *sign_key, const char *id, size_t idlen); +int sm2_ring_sign_add_signer(SM2_RING_SIGN_CTX *ctx, const SM2_KEY *public_key); +int sm2_ring_sign_update(SM2_RING_SIGN_CTX *ctx, const uint8_t *data, size_t datalen); +int sm2_ring_sign_finish(SM2_RING_SIGN_CTX *ctx, uint8_t *sig, size_t *siglen); +int sm2_ring_verify_init(SM2_RING_SIGN_CTX *ctx, const char *id, size_t idlen); +int sm2_ring_verify_add_signer(SM2_RING_SIGN_CTX *ctx, const SM2_KEY *public_key); +int sm2_ring_verify_update(SM2_RING_SIGN_CTX *ctx, const uint8_t *data, size_t datalen); +int sm2_ring_verify_finish(SM2_RING_SIGN_CTX *ctx, uint8_t *sig, size_t siglen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm3.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm3.h new file mode 100644 index 0000000..ba02da8 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm3.h @@ -0,0 +1,89 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_SM3_H +#define GMSSL_SM3_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +SM3 Public API + + SM3_DIGEST_SIZE + SM3_HMAC_SIZE + + SM3_CTX + sm3_init + sm3_update + sm3_finish + + SM3_HMAC_CTX + sm3_hmac_init + sm3_hmac_update + sm3_hmac_finish + + sm3_digest + sm3_hmac +*/ + +#define SM3_IS_BIG_ENDIAN 1 + +#define SM3_DIGEST_SIZE 32 +#define SM3_BLOCK_SIZE 64 +#define SM3_STATE_WORDS 8 +#define SM3_HMAC_SIZE (SM3_DIGEST_SIZE) + + +typedef struct { + uint32_t digest[SM3_STATE_WORDS]; + uint64_t nblocks; + uint8_t block[SM3_BLOCK_SIZE]; + size_t num; +} SM3_CTX; + +void sm3_init(SM3_CTX *ctx); +void sm3_update(SM3_CTX *ctx, const uint8_t *data, size_t datalen); +void sm3_finish(SM3_CTX *ctx, uint8_t dgst[SM3_DIGEST_SIZE]); +void sm3_digest(const uint8_t *data, size_t datalen, uint8_t dgst[SM3_DIGEST_SIZE]); + +void sm3_compress_blocks(uint32_t digest[8], const uint8_t *data, size_t blocks); + +typedef struct { + SM3_CTX sm3_ctx; + uint8_t key[SM3_BLOCK_SIZE]; +} SM3_HMAC_CTX; + +void sm3_hmac_init(SM3_HMAC_CTX *ctx, const uint8_t *key, size_t keylen); +void sm3_hmac_update(SM3_HMAC_CTX *ctx, const uint8_t *data, size_t datalen); +void sm3_hmac_finish(SM3_HMAC_CTX *ctx, uint8_t mac[SM3_HMAC_SIZE]); +void sm3_hmac(const uint8_t *key, size_t keylen, + const uint8_t *data, size_t datalen, + uint8_t mac[SM3_HMAC_SIZE]); + + +typedef struct { + SM3_CTX sm3_ctx; + size_t outlen; +} SM3_KDF_CTX; + +void sm3_kdf_init(SM3_KDF_CTX *ctx, size_t outlen); +void sm3_kdf_update(SM3_KDF_CTX *ctx, const uint8_t *data, size_t datalen); +void sm3_kdf_finish(SM3_KDF_CTX *ctx, uint8_t *out); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm3_rng.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm3_rng.h new file mode 100644 index 0000000..418ddf3 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm3_rng.h @@ -0,0 +1,42 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_SM3_RNG_H +#define GMSSL_SM3_RNG_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SM3_RNG_MAX_RESEED_COUNTER (1<<20) +#define SM3_RNG_MAX_RESEED_SECONDS 600 + + +typedef struct { + uint8_t V[55]; + uint8_t C[55]; + uint32_t reseed_counter; + time_t last_reseed_time; +} SM3_RNG; + +int sm3_rng_init(SM3_RNG *rng, const uint8_t *nonce, size_t nonce_len, + const uint8_t *label, size_t label_len); +int sm3_rng_reseed(SM3_RNG *rng, const uint8_t *addin, size_t addin_len); +int sm3_rng_generate(SM3_RNG *rng, const uint8_t *addin, size_t addin_len, + uint8_t *out, size_t outlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm3_x8_avx2.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm3_x8_avx2.h new file mode 100644 index 0000000..f3674c2 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm3_x8_avx2.h @@ -0,0 +1,33 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_SM3_X8_AVX2_H +#define GMSSL_SM3_X8_AVX2_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + __m256i digest[8]; +} SM3_X8_CTX; + +void sm3_x8_init(SM3_X8_CTX *ctx); +void sm3_x8_compress_blocks(__m256i digest[8], const uint8_t *data, size_t datalen); +void sm3_x8_digest(const uint8_t *data, size_t datalen, uint8_t dgst[8][32]); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm4.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4.h new file mode 100644 index 0000000..d4c4678 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4.h @@ -0,0 +1,142 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_SM4_H +#define GMSSL_SM4_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +SM4 Public API + + SM4_KEY_SIZE + SM4_BLOCK_SIZE + + SM4_CBC_CTX + sm4_cbc_encrypt_init + sm4_cbc_encrypt_update + sm4_cbc_encrypt_finish + sm4_cbc_decrypt_init + sm4_cbc_decrypt_update + sm4_cbc_decrypt_finish + + SM4_CTR_CTX + sm4_ctr_encrypt_init + sm4_ctr_encrypt_update + sm4_ctr_encrypt_finish + sm4_ctr_decrypt_init + sm4_ctr_decrypt_update + sm4_ctr_decrypt_finish +*/ + +#define SM4_KEY_SIZE (16) +#define SM4_BLOCK_SIZE (16) +#define SM4_NUM_ROUNDS (32) + + +typedef struct { + uint32_t rk[SM4_NUM_ROUNDS]; +} SM4_KEY; + +void sm4_set_encrypt_key(SM4_KEY *key, const uint8_t raw_key[SM4_KEY_SIZE]); +void sm4_set_decrypt_key(SM4_KEY *key, const uint8_t raw_key[SM4_KEY_SIZE]); +void sm4_encrypt(const SM4_KEY *key, const uint8_t in[SM4_BLOCK_SIZE], uint8_t out[SM4_BLOCK_SIZE]); +#define sm4_decrypt(key,in,out) sm4_encrypt(key,in,out) + + +void sm4_cbc_encrypt(const SM4_KEY *key, const uint8_t iv[SM4_BLOCK_SIZE], + const uint8_t *in, size_t nblocks, uint8_t *out); +void sm4_cbc_decrypt(const SM4_KEY *key, const uint8_t iv[SM4_BLOCK_SIZE], + const uint8_t *in, size_t nblocks, uint8_t *out); +int sm4_cbc_padding_encrypt(const SM4_KEY *key, const uint8_t iv[SM4_BLOCK_SIZE], + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int sm4_cbc_padding_decrypt(const SM4_KEY *key, const uint8_t iv[SM4_BLOCK_SIZE], + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); + + +void sm4_ctr_encrypt(const SM4_KEY *key, uint8_t ctr[SM4_BLOCK_SIZE], + const uint8_t *in, size_t inlen, uint8_t *out); +#define sm4_ctr_decrypt(key,ctr,in,inlen,out) sm4_ctr_encrypt(key,ctr,in,inlen,out) + + +#define SM4_GCM_IV_MIN_SIZE 1 +#define SM4_GCM_IV_MAX_SIZE (((uint64_t)1 << (64-3)) - 1) // 2305843009213693951 + +#define SM4_GCM_IV_DEFAULT_BITS 96 +#define SM4_GCM_IV_DEFAULT_SIZE 12 + +//#define NIST_SP800_GCM_MAX_IV_SIZE (((uint64_t)1 << (64-3)) - 1) // 2305843009213693951 + +#define SM4_GCM_MAX_IV_SIZE 64 +#define SM4_GCM_MIN_IV_SIZE 1 +#define SM4_GCM_DEFAULT_IV_SIZE 12 + +#define SM4_GCM_MIN_AAD_SIZE 0 +#define SM4_GCM_MAX_AAD_SIZE (((uint64_t)1 << (64-3)) - 1) // 2305843009213693951 + +#define SM4_GCM_MIN_PLAINTEXT_SIZE 0 +#define SM4_GCM_MAX_PLAINTEXT_SIZE ((((uint64_t)1 << 39) - 256) >> 3) // 68719476704 + +#define SM4_GCM_MAX_TAG_SIZE 16 +#define SM4_GCM_MIN_TAG_SIZE 12 +// For certain applications (voice or video), tag may be 64 or 32 bits +// see NIST Special Publication 800-38D, Appendix C for more details + + +int sm4_gcm_encrypt(const SM4_KEY *key, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, const uint8_t *in, size_t inlen, + uint8_t *out, size_t taglen, uint8_t *tag); +int sm4_gcm_decrypt(const SM4_KEY *key, const uint8_t *iv, size_t ivlen, + const uint8_t *aad, size_t aadlen, const uint8_t *in, size_t inlen, + const uint8_t *tag, size_t taglen, uint8_t *out); + + +typedef struct { + SM4_KEY sm4_key; + uint8_t iv[SM4_BLOCK_SIZE]; + uint8_t block[SM4_BLOCK_SIZE]; + size_t block_nbytes; +} SM4_CBC_CTX; + +int sm4_cbc_encrypt_init(SM4_CBC_CTX *ctx, const uint8_t key[SM4_KEY_SIZE], const uint8_t iv[SM4_BLOCK_SIZE]); +int sm4_cbc_encrypt_update(SM4_CBC_CTX *ctx, const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int sm4_cbc_encrypt_finish(SM4_CBC_CTX *ctx, uint8_t *out, size_t *outlen); + +int sm4_cbc_decrypt_init(SM4_CBC_CTX *ctx, const uint8_t key[SM4_KEY_SIZE], const uint8_t iv[SM4_BLOCK_SIZE]); +int sm4_cbc_decrypt_update(SM4_CBC_CTX *ctx, const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int sm4_cbc_decrypt_finish(SM4_CBC_CTX *ctx, uint8_t *out, size_t *outlen); + + +typedef struct { + SM4_KEY sm4_key; + uint8_t ctr[SM4_BLOCK_SIZE]; + uint8_t block[SM4_BLOCK_SIZE]; + size_t block_nbytes; +} SM4_CTR_CTX; + +int sm4_ctr_encrypt_init(SM4_CTR_CTX *ctx, const uint8_t key[SM4_KEY_SIZE], const uint8_t ctr[SM4_BLOCK_SIZE]); +int sm4_ctr_encrypt_update(SM4_CTR_CTX *ctx, const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int sm4_ctr_encrypt_finish(SM4_CTR_CTX *ctx, uint8_t *out, size_t *outlen); + +#define sm4_ctr_decrypt_init(ctx,key,ctr) sm4_ctr_encrypt_init(ctx,key,ctr) +#define sm4_ctr_decrypt_update(ctx,in,inlen,out,outlen) sm4_ctr_encrypt_update(ctx,in,inlen,out,outlen) +#define sm4_ctr_decrypt_finish(ctx,out,outlen) sm4_ctr_encrypt_finish(ctx,out,outlen) + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cbc_mac.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cbc_mac.h new file mode 100644 index 0000000..e803c8d --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cbc_mac.h @@ -0,0 +1,35 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_SM4_CBC_MAC_H +#define GMSSL_SM4_CBC_MAC_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + SM4_KEY key; + uint8_t iv[16]; + size_t ivlen; +} SM4_CBC_MAC_CTX; + +void sm4_cbc_mac_init(SM4_CBC_MAC_CTX *ctx, const uint8_t key[16]); +void sm4_cbc_mac_update(SM4_CBC_MAC_CTX *ctx, const uint8_t *data, size_t datalen); +void sm4_cbc_mac_finish(SM4_CBC_MAC_CTX *ctx, uint8_t mac[16]); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cl.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cl.h new file mode 100644 index 0000000..5f1ca13 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_cl.h @@ -0,0 +1,55 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_SM4_CL_H +#define GMSSL_SM4_CL_H + + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include + + +#ifdef APPLE +#include +#else +#include +#endif + + +typedef struct { + uint32_t rk[32]; + cl_context context; + cl_command_queue queue; + cl_program program; + cl_kernel kernel; + cl_mem mem_rk; + cl_mem mem_io; + size_t workgroup_size; +} SM4_CL_CTX; + + +int sm4_cl_set_encrypt_key(SM4_CL_CTX *ctx, const uint8_t key[16]); +int sm4_cl_set_decrypt_key(SM4_CL_CTX *ctx, const uint8_t key[16]); +int sm4_cl_encrypt(SM4_CL_CTX *ctx, const uint8_t *in, size_t nblocks, uint8_t *out); +void sm4_cl_cleanup(SM4_CL_CTX *ctx); + +int test_sm4_cl_encrypt(void); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_rng.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_rng.h new file mode 100644 index 0000000..67e86dc --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm4_rng.h @@ -0,0 +1,43 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + +#ifndef GMSSL_SM4_RNG_H +#define GMSSL_SM4_RNG_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +#define SM4_RNG_MAX_RESEED_COUNTER (1<<20) +#define SM4_RNG_MAX_RESEED_SECONDS 600 + +typedef struct { + uint8_t V[16]; + uint8_t K[16]; + uint32_t reseed_counter; + time_t last_reseed_time; +} SM4_RNG; + + +int sm4_rng_init(SM4_RNG *rng, const uint8_t *nonce, size_t nonce_len, + const uint8_t *label, size_t label_len); +int sm4_rng_update(SM4_RNG *rng, const uint8_t seed[32]); +int sm4_rng_reseed(SM4_RNG *rng, const uint8_t *addin, size_t addin_len); +int sm4_rng_generate(SM4_RNG *rng, const uint8_t *addin, size_t addin_len, + uint8_t *out, size_t outlen); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/sm9.h b/thirdparty/GmSSL-3.1.1/include/gmssl/sm9.h new file mode 100644 index 0000000..bda9189 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/sm9.h @@ -0,0 +1,561 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#include +#include +#include +#include +#include +#include + + +#ifndef GMSSL_SM9_H +#define GMSSL_SM9_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* +SM9 Public API + + SM9_SIGNATURE_SIZE + SM9_MAX_PLAINTEXT_SIZE + SM9_MAX_CIPHERTEXT_SIZE + + SM9_SIGN_MASTER_KEY + sm9_sign_master_key_generate + sm9_sign_master_key_extract_key + sm9_sign_master_key_info_encrypt_to_der + sm9_sign_master_key_info_decrypt_from_der + sm9_sign_master_key_info_encrypt_to_pem + sm9_sign_master_key_info_decrypt_from_pem + sm9_sign_master_public_key_to_der + sm9_sign_master_public_key_from_der + sm9_sign_master_public_key_to_pem + sm9_sign_master_public_key_from_pem + + SM9_SIGN_KEY + sm9_sign_key_info_encrypt_to_der + sm9_sign_key_info_decrypt_from_der + sm9_sign_key_info_encrypt_to_pem + sm9_sign_key_info_decrypt_from_pem + + SM9_SIGN_CTX + sm9_sign_init + sm9_sign_update + sm9_sign_finish + sm9_verify_init + sm9_verify_update + sm9_verify_finish + + SM9_ENC_MASTER_KEY + sm9_enc_master_key_generate + sm9_enc_master_key_extract_key + sm9_enc_master_key_info_encrypt_to_der + sm9_enc_master_key_info_decrypt_from_der + sm9_enc_master_key_info_encrypt_to_pem + sm9_enc_master_key_info_decrypt_from_pem + sm9_enc_master_public_key_to_der + sm9_enc_master_public_key_from_der + sm9_enc_master_public_key_to_pem + sm9_enc_master_public_key_from_pem + + SM9_ENC_KEY + sm9_enc_key_info_encrypt_to_der + sm9_enc_key_info_decrypt_from_der + sm9_enc_key_info_encrypt_to_pem + sm9_enc_key_info_decrypt_from_pem + + sm9_encrypt + sm9_decrypt +*/ + +#define SM9_HEX_SEP '\n' + +typedef uint64_t sm9_bn_t[8]; + +#define sm9_bn_init(r) sm9_bn_set_zero(r) +#define sm9_bn_clean(r) sm9_bn_set_zero(r) + +void sm9_bn_set_zero(sm9_bn_t r); +void sm9_bn_set_one(sm9_bn_t r); +int sm9_bn_is_zero(const sm9_bn_t a); +int sm9_bn_is_one(const sm9_bn_t a); +void sm9_bn_set_word(sm9_bn_t r, uint32_t a); +void sm9_bn_copy(sm9_bn_t r, const sm9_bn_t a); +int sm9_bn_rand_range(sm9_bn_t r, const sm9_bn_t range); +int sm9_bn_equ(const sm9_bn_t a, const sm9_bn_t b); +int sm9_bn_cmp(const sm9_bn_t a, const sm9_bn_t b); +void sm9_bn_add(sm9_bn_t r, const sm9_bn_t a, const sm9_bn_t b); +void sm9_bn_sub(sm9_bn_t ret, const sm9_bn_t a, const sm9_bn_t b); +void sm9_bn_to_bits(const sm9_bn_t a, char bits[256]); +void sm9_bn_to_bytes(const sm9_bn_t a, uint8_t out[32]); +void sm9_bn_from_bytes(sm9_bn_t r, const uint8_t in[32]); +void sm9_bn_to_hex(const sm9_bn_t a, char hex[64]); +int sm9_bn_from_hex(sm9_bn_t r, const char hex[64]); +int sm9_bn_print(FILE *fp, int fmt, int ind, const char *label, const sm9_bn_t a); +void sm9_print_bn(const char *prefix, const sm9_bn_t a); // 标准打印格式 + + +typedef sm9_bn_t sm9_fp_t; + +#define sm9_fp_init(r) sm9_fp_set_zero(r) +#define sm9_fp_clean(f) sm9_fp_set_zero(r) +#define sm9_fp_set_zero(r) sm9_bn_set_zero(r) +#define sm9_fp_set_one(r) sm9_bn_set_one(r) +#define sm9_fp_copy(r,a) sm9_bn_copy((r),(a)) +#define sm9_fp_rand(r) sm9_bn_rand_range((r), SM9_P) +#define sm9_fp_is_zero(a) sm9_bn_is_zero(a) +#define sm9_fp_is_one(a) sm9_bn_is_one(a) +#define sm9_fp_equ(a,b) sm9_bn_equ((a),(b)) +#define sm9_fp_to_bytes(a,buf) sm9_bn_to_bytes((a),(buf)) +#define sm9_fp_to_hex(a,s) sm9_bn_to_hex((a),(s)) +#define sm9_fp_print(fp,fmt,ind,label,a) sm9_bn_print(fp,fmt,ind,label,a) + +void sm9_fp_add(sm9_fp_t r, const sm9_fp_t a, const sm9_fp_t b); +void sm9_fp_sub(sm9_fp_t r, const sm9_fp_t a, const sm9_fp_t b); +void sm9_fp_dbl(sm9_fp_t r, const sm9_fp_t a); +void sm9_fp_tri(sm9_fp_t r, const sm9_fp_t a); +void sm9_fp_neg(sm9_fp_t r, const sm9_fp_t a); +void sm9_fp_mul(sm9_fp_t r, const sm9_fp_t a, const sm9_fp_t b); +void sm9_fp_sqr(sm9_fp_t r, const sm9_fp_t a); +void sm9_fp_pow(sm9_fp_t r, const sm9_fp_t a, const sm9_bn_t e); +void sm9_fp_inv(sm9_fp_t r, const sm9_fp_t a); +void sm9_fp_div2(sm9_fp_t r, const sm9_fp_t a); +int sm9_fp_from_bytes(sm9_fp_t r, const uint8_t buf[32]); +int sm9_fp_from_hex(sm9_fp_t r, const char hex[64]); + + +typedef sm9_bn_t sm9_fn_t; + +#define sm9_fn_init(r) sm9_fn_set_zero(r) +#define sm9_fn_clean(f) sm9_fn_set_zero(r) +#define sm9_fn_set_zero(r) sm9_bn_set_zero(r) +#define sm9_fn_set_one(r) sm9_bn_set_one(r) +#define sm9_fn_copy(r,a) sm9_bn_copy((r),(a)) +#define sm9_fn_rand(r) sm9_bn_rand_range((r), SM9_N) +#define sm9_fn_is_zero(a) sm9_bn_is_zero(a) +#define sm9_fn_is_one(a) sm9_bn_is_one(a) +#define sm9_fn_equ(a,b) sm9_bn_equ((a),(b)) +#define sm9_fn_to_bytes(a,out) sm9_bn_to_bytes((a),(out)) +#define sm9_fn_to_hex(a,s) sm9_bn_to_hex((a),(s)) +#define sm9_fn_print(fp,fmt,ind,label,a) sm9_bn_print(fp,fmt,ind,label,a) + +void sm9_fn_add(sm9_fn_t r, const sm9_fn_t a, const sm9_fn_t b); +void sm9_fn_sub(sm9_fn_t r, const sm9_fn_t a, const sm9_fn_t b); +void sm9_fn_mul(sm9_fn_t r, const sm9_fn_t a, const sm9_fn_t b); +void sm9_fn_pow(sm9_fn_t r, const sm9_fn_t a, const sm9_bn_t e); +void sm9_fn_inv(sm9_fn_t r, const sm9_fn_t a); +void sm9_fn_from_hash(sm9_fn_t h, const uint8_t Ha[40]); +int sm9_fn_from_bytes(sm9_fn_t a, const uint8_t in[32]); +int sm9_fn_from_hex(sm9_fn_t r, const char hex[64]); + + +typedef uint64_t sm9_barrett_bn_t[9]; + +int sm9_barrett_bn_cmp(const sm9_barrett_bn_t a, const sm9_barrett_bn_t b); +void sm9_barrett_bn_add(sm9_barrett_bn_t r, const sm9_barrett_bn_t a, const sm9_barrett_bn_t b); +void sm9_barrett_bn_sub(sm9_barrett_bn_t ret, const sm9_barrett_bn_t a, const sm9_barrett_bn_t b); + + +typedef sm9_fp_t sm9_fp2_t[2]; +extern const sm9_fp2_t SM9_FP2_ZERO; +extern const sm9_fp2_t SM9_FP2_ONE; +extern const sm9_fp2_t SM9_FP2_U; + +#define sm9_fp2_init(a) sm9_fp2_set_zero(a) +#define sm9_fp2_clean(a) sm9_fp2_set_zero(a) +#define sm9_fp2_set_zero(a) sm9_fp2_copy((a), SM9_FP2_ZERO) +#define sm9_fp2_set_one(a) sm9_fp2_copy((a), SM9_FP2_ONE) +#define sm9_fp2_set_u(a) sm9_fp2_copy((a), SM9_FP2_U) +#define sm9_fp2_is_zero(a) sm9_fp2_equ((a), SM9_FP2_ZERO) +#define sm9_fp2_is_one(a) sm9_fp2_equ((a), SM9_FP2_ONE) + +void sm9_fp2_set_fp(sm9_fp2_t r, const sm9_fp_t a); +void sm9_fp2_set(sm9_fp2_t r, const sm9_fp_t a0, const sm9_fp_t a1); +void sm9_fp2_copy(sm9_fp2_t r, const sm9_fp2_t a); +int sm9_fp2_rand(sm9_fp2_t r); +int sm9_fp2_equ(const sm9_fp2_t a, const sm9_fp2_t b); +void sm9_fp2_add(sm9_fp2_t r, const sm9_fp2_t a, const sm9_fp2_t b); +void sm9_fp2_dbl(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_tri(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_sub(sm9_fp2_t r, const sm9_fp2_t a, const sm9_fp2_t b); +void sm9_fp2_neg(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_mul(sm9_fp2_t r, const sm9_fp2_t a, const sm9_fp2_t b); +void sm9_fp2_mul_u(sm9_fp2_t r, const sm9_fp2_t a, const sm9_fp2_t b); +void sm9_fp2_mul_fp(sm9_fp2_t r, const sm9_fp2_t a, const sm9_fp_t k); +void sm9_fp2_sqr(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_sqr_u(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_inv(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_div(sm9_fp2_t r, const sm9_fp2_t a, const sm9_fp2_t b); +void sm9_fp2_div2(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_to_hex(const sm9_fp2_t a, char hex[129]); +int sm9_fp2_from_hex(sm9_fp2_t r, const char hex[129]); +int sm9_fp2_print(FILE *fp, int fmt, int ind, const char *label, const sm9_fp2_t a); + + +typedef sm9_fp2_t sm9_fp4_t[2]; +extern const sm9_fp4_t SM9_FP4_ZERO; +extern const sm9_fp4_t SM9_FP4_ONE; +extern const sm9_fp4_t SM9_FP4_U; +extern const sm9_fp4_t SM9_FP4_V; + +#define sm9_fp4_init(a) sm9_fp4_set_zero(a) +#define sm9_fp4_clean(a) sm9_fp4_set_zero(a) +#define sm9_fp4_set_zero(a) sm9_fp4_copy((a), SM9_FP4_ZERO) +#define sm9_fp4_set_one(a) sm9_fp4_copy((a), SM9_FP4_ONE) +#define sm9_fp4_is_zero(a) sm9_fp4_equ((a), SM9_FP4_ZERO) +#define sm9_fp4_is_one(a) sm9_fp4_equ((a), SM9_FP4_ONE) + +void sm9_fp4_set_u(sm9_fp4_t r); +void sm9_fp4_set_v(sm9_fp4_t r); +void sm9_fp4_set_fp(sm9_fp4_t r, const sm9_fp_t a); +void sm9_fp4_set_fp2(sm9_fp4_t r, const sm9_fp2_t a); +void sm9_fp4_set(sm9_fp4_t r, const sm9_fp2_t a0, const sm9_fp2_t a1); +void sm9_fp4_copy(sm9_fp4_t r, const sm9_fp4_t a); +int sm9_fp4_rand(sm9_fp4_t r); +int sm9_fp4_equ(const sm9_fp4_t a, const sm9_fp4_t b); +void sm9_fp4_add(sm9_fp4_t r, const sm9_fp4_t a, const sm9_fp4_t b); +void sm9_fp4_dbl(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_sub(sm9_fp4_t r, const sm9_fp4_t a, const sm9_fp4_t b); +void sm9_fp4_neg(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_mul(sm9_fp4_t r, const sm9_fp4_t a, const sm9_fp4_t b); +void sm9_fp4_mul_fp(sm9_fp4_t r, const sm9_fp4_t a, const sm9_fp_t k); +void sm9_fp4_mul_fp2(sm9_fp4_t r, const sm9_fp4_t a, const sm9_fp2_t b0); +void sm9_fp4_mul_v(sm9_fp4_t r, const sm9_fp4_t a, const sm9_fp4_t b); +void sm9_fp4_sqr(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_sqr_v(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_inv(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_to_bytes(const sm9_fp4_t a, uint8_t buf[128]); +int sm9_fp4_from_bytes(sm9_fp4_t r, const uint8_t buf[128]); +void sm9_fp4_to_hex(const sm9_fp4_t a, char hex[259]); +int sm9_fp4_from_hex(sm9_fp4_t r, const char hex[259]); + + +typedef sm9_fp4_t sm9_fp12_t[3]; + +#define sm9_fp12_init(r) sm9_fp12_set_zero(a) +#define sm9_fp12_clean(r) sm9_fp12_set_zero(a) + +void sm9_fp12_set_zero(sm9_fp12_t r); +void sm9_fp12_set_one(sm9_fp12_t r); +void sm9_fp12_set_u(sm9_fp12_t r); +void sm9_fp12_set_v(sm9_fp12_t r); +void sm9_fp12_set_w(sm9_fp12_t r); +void sm9_fp12_set_w_sqr(sm9_fp12_t r); +void sm9_fp12_set_fp(sm9_fp12_t r, const sm9_fp_t a); +void sm9_fp12_set_fp2(sm9_fp12_t r, const sm9_fp2_t a); +void sm9_fp12_set_fp4(sm9_fp12_t r, const sm9_fp4_t a); +void sm9_fp12_set(sm9_fp12_t r, const sm9_fp4_t a0, const sm9_fp4_t a1, const sm9_fp4_t a2); +void sm9_fp12_copy(sm9_fp12_t r, const sm9_fp12_t a); +int sm9_fp12_rand(sm9_fp12_t r); +int sm9_fp12_is_one(const sm9_fp12_t a); +int sm9_fp12_is_zero(const sm9_fp12_t a); +int sm9_fp12_equ(const sm9_fp12_t a, const sm9_fp12_t b); +void sm9_fp12_add(sm9_fp12_t r, const sm9_fp12_t a, const sm9_fp12_t b); +void sm9_fp12_dbl(sm9_fp12_t r, const sm9_fp12_t a); +void sm9_fp12_tri(sm9_fp12_t r, const sm9_fp12_t a); +void sm9_fp12_sub(sm9_fp12_t r, const sm9_fp12_t a, const sm9_fp12_t b); +void sm9_fp12_neg(sm9_fp12_t r, const sm9_fp12_t a); +void sm9_fp12_mul(sm9_fp12_t r, const sm9_fp12_t a, const sm9_fp12_t b); +void sm9_fp12_sqr(sm9_fp12_t r, const sm9_fp12_t a); +void sm9_fp12_inv(sm9_fp12_t r, const sm9_fp12_t a); +void sm9_fp12_pow(sm9_fp12_t r, const sm9_fp12_t a, const sm9_bn_t k); +void sm9_fp12_to_bytes(const sm9_fp12_t a, uint8_t buf[32 * 12]); +int sm9_fp12_from_bytes(sm9_fp12_t r, const uint8_t in[32 * 12]); +void sm9_fp12_to_hex(const sm9_fp12_t a, char hex[65 * 12]); +int sm9_fp12_from_hex(sm9_fp12_t r, const char hex[65 * 12]); // 这个明显是不对的 +void sm9_fp12_print(const char *prefix, const sm9_fp12_t a); + + +void sm9_fp2_conjugate(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp2_frobenius(sm9_fp2_t r, const sm9_fp2_t a); +void sm9_fp4_frobenius(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_conjugate(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_frobenius2(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp4_frobenius3(sm9_fp4_t r, const sm9_fp4_t a); +void sm9_fp12_frobenius(sm9_fp12_t r, const sm9_fp12_t x); +void sm9_fp12_frobenius2(sm9_fp12_t r, const sm9_fp12_t x); +void sm9_fp12_frobenius3(sm9_fp12_t r, const sm9_fp12_t x); +void sm9_fp12_frobenius6(sm9_fp12_t r, const sm9_fp12_t x); + + +typedef struct { + sm9_fp_t X; + sm9_fp_t Y; + sm9_fp_t Z; +} SM9_POINT; + +#define sm9_point_init(R) sm9_point_set_infinity(R) +#define sm9_point_clean(R) sm9_point_set_infinity(R) + +void sm9_point_set_infinity(SM9_POINT *R); +void sm9_point_copy(SM9_POINT *R, const SM9_POINT *P); +void sm9_point_get_xy(const SM9_POINT *P, sm9_fp_t x, sm9_fp_t y); +int sm9_point_is_at_infinity(const SM9_POINT *P); +int sm9_point_equ(const SM9_POINT *P, const SM9_POINT *Q); +int sm9_point_is_on_curve(const SM9_POINT *P); +void sm9_point_dbl(SM9_POINT *R, const SM9_POINT *P); +void sm9_point_add(SM9_POINT *R, const SM9_POINT *P, const SM9_POINT *Q); +void sm9_point_neg(SM9_POINT *R, const SM9_POINT *P); +void sm9_point_sub(SM9_POINT *R, const SM9_POINT *P, const SM9_POINT *Q); +void sm9_point_mul(SM9_POINT *R, const sm9_bn_t k, const SM9_POINT *P); +void sm9_point_mul_generator(SM9_POINT *R, const sm9_bn_t k); +void sm9_point_from_hex(SM9_POINT *R, const char hex[65 * 2]); +int sm9_point_to_uncompressed_octets(const SM9_POINT *P, uint8_t octets[65]); +int sm9_point_from_uncompressed_octets(SM9_POINT *P, const uint8_t octets[65]); +int sm9_point_print(FILE *fp, int fmt, int ind, const char *label, const SM9_POINT *P); + + +typedef struct { + sm9_fp2_t X; + sm9_fp2_t Y; + sm9_fp2_t Z; +} SM9_TWIST_POINT; + +#define sm9_twist_point_copy(R, P) memcpy((R), (P), sizeof(SM9_TWIST_POINT)) + +int sm9_twist_point_to_uncompressed_octets(const SM9_TWIST_POINT *P, uint8_t octets[129]); +int sm9_twist_point_from_uncompressed_octets(SM9_TWIST_POINT *P, const uint8_t octets[129]); + + +void sm9_twist_point_from_hex(SM9_TWIST_POINT *R, const char hex[65 * 4]); +int sm9_twist_point_is_at_infinity(const SM9_TWIST_POINT *P); +void sm9_twist_point_set_infinity(SM9_TWIST_POINT *R); +void sm9_twist_point_get_xy(const SM9_TWIST_POINT *P, sm9_fp2_t x, sm9_fp2_t y); + +int sm9_twist_point_equ(const SM9_TWIST_POINT *P, const SM9_TWIST_POINT *Q); +int sm9_twist_point_is_on_curve(const SM9_TWIST_POINT *P); +void sm9_twist_point_neg(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P); +void sm9_twist_point_dbl(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P); +void sm9_twist_point_add(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P, const SM9_TWIST_POINT *Q); +void sm9_twist_point_sub(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P, const SM9_TWIST_POINT *Q); +void sm9_twist_point_add_full(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P, const SM9_TWIST_POINT *Q); +void sm9_twist_point_mul(SM9_TWIST_POINT *R, const sm9_bn_t k, const SM9_TWIST_POINT *P); +void sm9_twist_point_mul_generator(SM9_TWIST_POINT *R, const sm9_bn_t k); +int sm9_twist_point_print(FILE *fp, int fmt, int ind, const char *label, const SM9_TWIST_POINT *P); + + + +void sm9_eval_g_tangent(sm9_fp12_t num, sm9_fp12_t den, const SM9_TWIST_POINT *P, const SM9_POINT *Q); +void sm9_eval_g_line(sm9_fp12_t num, sm9_fp12_t den, const SM9_TWIST_POINT *T, const SM9_TWIST_POINT *P, const SM9_POINT *Q); +void sm9_twist_point_pi1(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P); +void sm9_twist_point_pi2(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P); +void sm9_twist_point_neg_pi2(SM9_TWIST_POINT *R, const SM9_TWIST_POINT *P); +void sm9_final_exponent_hard_part(sm9_fp12_t r, const sm9_fp12_t f); +void sm9_final_exponent(sm9_fp12_t r, const sm9_fp12_t f); +void sm9_pairing(sm9_fp12_t r, const SM9_TWIST_POINT *Q, const SM9_POINT *P); + + +/* private key extract algorithms */ +#define SM9_HID_SIGN 0x01 +#define SM9_HID_EXCH 0x02 +#define SM9_HID_ENC 0x03 + +#define SM9_HASH1_PREFIX 0x01 +#define SM9_HASH2_PREFIX 0x02 + +int sm9_hash1(sm9_bn_t h1, const char *id, size_t idlen, uint8_t hid); + + +const char *sm9_oid_name(int oid); +int sm9_oid_from_name(const char *name); +int sm9_oid_to_der(int oid, uint8_t **out, size_t *outlen); +int sm9_oid_from_der(int *oid, const uint8_t **in, size_t *inlen); +int sm9_algor_to_der(int alg, int params, uint8_t **out, size_t *outlen); +int sm9_algor_from_der(int *alg, int *params, const uint8_t **in, size_t *inlen); + + +#define PEM_SM9_SIGN_MASTER_KEY "ENCRYPTED SM9 SIGN MASTER KEY" +#define PEM_SM9_SIGN_MASTER_PUBLIC_KEY "SM9 SIGN MASTER PUBLIC KEY" +#define PEM_SM9_SIGN_PRIVATE_KEY "ENCRYPTED SM9 SIGN PRIVATE KEY" +#define PEM_SM9_ENC_MASTER_KEY "ENCRYPTED SM9 ENC MASTER KEY" +#define PEM_SM9_ENC_MASTER_PUBLIC_KEY "SM9 ENC MASTER PUBLIC KEY" +#define PEM_SM9_ENC_PRIVATE_KEY "ENCRYPTED SM9 ENC PRIVATE KEY" + + +#define SM9_MAX_ID_SIZE (SM2_MAX_ID_SIZE) + +/* +SM9SignMasterKey ::= SEQUENCE { + ks INTEGER, + Ppubs BIT STRING -- uncompressed octets of twisted point } + +SM9SignMasterPublicKey ::= SEQUENCE { + Ppubs BIT STRING -- uncompressed octets of twisted point } + +SM9SignPrivateKey ::= SEQUENCE { + ds BIT STRING, -- uncompressed octets of ECPoint + Ppubs BIT STRING -- uncompressed octets of twisted point } +*/ +typedef struct { + SM9_TWIST_POINT Ppubs; // Ppubs = ks * P2 + sm9_fn_t ks; +} SM9_SIGN_MASTER_KEY; + +typedef struct { + SM9_TWIST_POINT Ppubs; + SM9_POINT ds; +} SM9_SIGN_KEY; + +int sm9_sign_master_key_generate(SM9_SIGN_MASTER_KEY *master); +int sm9_sign_master_key_extract_key(SM9_SIGN_MASTER_KEY *master, const char *id, size_t idlen, SM9_SIGN_KEY *key); + +// algorthm,parameters = sm9,sm9sign +#define SM9_SIGN_MASTER_KEY_MAX_SIZE 171 +int sm9_sign_master_key_to_der(const SM9_SIGN_MASTER_KEY *msk, uint8_t **out, size_t *outlen); +int sm9_sign_master_key_from_der(SM9_SIGN_MASTER_KEY *msk, const uint8_t **in, size_t *inlen); +int sm9_sign_master_key_info_encrypt_to_der(const SM9_SIGN_MASTER_KEY *msk, const char *pass, uint8_t **out, size_t *outlen); +int sm9_sign_master_key_info_decrypt_from_der(SM9_SIGN_MASTER_KEY *msk, const char *pass, const uint8_t **in, size_t *inlen); +int sm9_sign_master_key_info_encrypt_to_pem(const SM9_SIGN_MASTER_KEY *msk, const char *pass, FILE *fp); +int sm9_sign_master_key_info_decrypt_from_pem(SM9_SIGN_MASTER_KEY *msk, const char *pass, FILE *fp); +int sm9_sign_master_key_print(FILE *fp, int fmt, int ind, const char *label, const SM9_SIGN_MASTER_KEY *msk); + +#define SM9_SIGN_MASTER_PUBLIC_KEY_SIZE 136 +int sm9_sign_master_public_key_to_der(const SM9_SIGN_MASTER_KEY *mpk, uint8_t **out, size_t *outlen); +int sm9_sign_master_public_key_from_der(SM9_SIGN_MASTER_KEY *mpk, const uint8_t **in, size_t *inlen); +int sm9_sign_master_public_key_to_pem(const SM9_SIGN_MASTER_KEY *mpk, FILE *fp); +int sm9_sign_master_public_key_from_pem(SM9_SIGN_MASTER_KEY *mpk, FILE *fp); +int sm9_sign_master_public_key_print(FILE *fp, int fmt, int ind, const char *label, const SM9_SIGN_MASTER_KEY *mpk); + +// algorithm,parameters = sm9sign, +#define SM9_SIGN_KEY_SIZE 204 +int sm9_sign_key_to_der(const SM9_SIGN_KEY *key, uint8_t **out, size_t *outlen); +int sm9_sign_key_from_der(SM9_SIGN_KEY *key, const uint8_t **in, size_t *inlen); +int sm9_sign_key_info_encrypt_to_der(const SM9_SIGN_KEY *key, const char *pass, uint8_t **out, size_t *outlen); +int sm9_sign_key_info_decrypt_from_der(SM9_SIGN_KEY *key, const char *pass, const uint8_t **in, size_t *inlen); +int sm9_sign_key_info_encrypt_to_pem(const SM9_SIGN_KEY *key, const char *pass, FILE *fp); +int sm9_sign_key_info_decrypt_from_pem(SM9_SIGN_KEY *key, const char *pass, FILE *fp); +int sm9_sign_key_print(FILE *fp, int fmt, int ind, const char *label, const SM9_SIGN_KEY *key); + +/* +from GM/T 0080-2020 SM9 Cryptographic Alagorithm Application Specification +SM9Signature ::= SEQUENCE { + h OCTET STRING, + S BIT STRING -- uncompressed octets of ECPoint } +*/ +typedef struct { + sm9_fn_t h; + SM9_POINT S; +} SM9_SIGNATURE; + +int sm9_do_sign(const SM9_SIGN_KEY *key, const SM3_CTX *sm3_ctx, SM9_SIGNATURE *sig); +int sm9_do_verify(const SM9_SIGN_MASTER_KEY *mpk, const char *id, size_t idlen, const SM3_CTX *sm3_ctx, const SM9_SIGNATURE *sig); + +#define SM9_SIGNATURE_SIZE 104 +int sm9_signature_to_der(const SM9_SIGNATURE *sig, uint8_t **out, size_t *outlen); +int sm9_signature_from_der(SM9_SIGNATURE *sig, const uint8_t **in, size_t *inlen); +int sm9_signature_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *sig, size_t siglen); + +typedef struct { + SM3_CTX sm3_ctx; +} SM9_SIGN_CTX; + +int sm9_sign_init(SM9_SIGN_CTX *ctx); +int sm9_sign_update(SM9_SIGN_CTX *ctx, const uint8_t *data, size_t datalen); +int sm9_sign_finish(SM9_SIGN_CTX *ctx, const SM9_SIGN_KEY *key, uint8_t *sig, size_t *siglen); +int sm9_verify_init(SM9_SIGN_CTX *ctx); +int sm9_verify_update(SM9_SIGN_CTX *ctx, const uint8_t *data, size_t datalen); +int sm9_verify_finish(SM9_SIGN_CTX *ctx, const uint8_t *sig, size_t siglen, + const SM9_SIGN_MASTER_KEY *mpk, const char *id, size_t idlen); + + +/* +SM9EncMasterKey ::= SEQUENCE { + de INTEGER, + Ppube BIT STRING -- uncompressed octets of ECPoint } + +SM9EncMasterPublicKey ::= SEQUENCE { + Ppube BIT STRING -- uncompressed octets of ECPoint } + +SM9EncPrivateKey ::= SEQUENCE { + de BIT STRING, -- uncompressed octets of twisted point + Ppube BIT STRING -- uncompressed octets of ECPoint } +*/ + +typedef struct { + SM9_POINT Ppube; // Ppube = ke * P1 + sm9_fn_t ke; +} SM9_ENC_MASTER_KEY; + +typedef struct { + SM9_POINT Ppube; + SM9_TWIST_POINT de; +} SM9_ENC_KEY; + +int sm9_enc_master_key_generate(SM9_ENC_MASTER_KEY *master); +int sm9_enc_master_key_extract_key(SM9_ENC_MASTER_KEY *master, const char *id, size_t idlen, SM9_ENC_KEY *key); + +// algorithm,parameters = sm9,sm9encrypt +#define SM9_ENC_MASTER_KEY_MAX_SIZE 105 +int sm9_enc_master_key_to_der(const SM9_ENC_MASTER_KEY *msk, uint8_t **out, size_t *outlen); +int sm9_enc_master_key_from_der(SM9_ENC_MASTER_KEY *msk, const uint8_t **in, size_t *inlen); +int sm9_enc_master_key_info_encrypt_to_der(const SM9_ENC_MASTER_KEY *msk, const char *pass, uint8_t **out, size_t *outlen); +int sm9_enc_master_key_info_decrypt_from_der(SM9_ENC_MASTER_KEY *msk, const char *pass, const uint8_t **in, size_t *inlen); +int sm9_enc_master_key_info_encrypt_to_pem(const SM9_ENC_MASTER_KEY *msk, const char *pass, FILE *fp); +int sm9_enc_master_key_info_decrypt_from_pem(SM9_ENC_MASTER_KEY *msk, const char *pass, FILE *fp); +int sm9_enc_master_key_print(FILE *fp, int fmt, int ind, const char *label, const SM9_ENC_MASTER_KEY *msk); + +#define SM9_ENC_MASTER_PUBLIC_KEY_SIZE 70 +int sm9_enc_master_public_key_to_der(const SM9_ENC_MASTER_KEY *mpk, uint8_t **out, size_t *outlen); +int sm9_enc_master_public_key_from_der(SM9_ENC_MASTER_KEY *mpk, const uint8_t **in, size_t *inlen); +int sm9_enc_master_public_key_to_pem(const SM9_ENC_MASTER_KEY *mpk, FILE *fp); +int sm9_enc_master_public_key_from_pem(SM9_ENC_MASTER_KEY *mpk, FILE *fp); +int sm9_enc_master_public_key_print(FILE *fp, int fmt, int ind, const char *label, const SM9_ENC_MASTER_KEY *mpk); + +// algorithm,parameters = sm9encrypt, +#define SM9_ENC_KEY_SIZE 204 +int sm9_enc_key_to_der(const SM9_ENC_KEY *key, uint8_t **out, size_t *outlen); +int sm9_enc_key_from_der(SM9_ENC_KEY *key, const uint8_t **in, size_t *inlen); +int sm9_enc_key_info_encrypt_to_der(const SM9_ENC_KEY *key, const char *pass, uint8_t **out, size_t *outlen); +int sm9_enc_key_info_decrypt_from_der(SM9_ENC_KEY *key, const char *pass, const uint8_t **in, size_t *inlen); +int sm9_enc_key_info_encrypt_to_pem(const SM9_ENC_KEY *key, const char *pass, FILE *fp); +int sm9_enc_key_info_decrypt_from_pem(SM9_ENC_KEY *key, const char *pass, FILE *fp); +int sm9_enc_key_print(FILE *fp, int fmt, int ind, const char *label, const SM9_ENC_KEY *key); + +#define SM9_MAX_PRIVATE_KEY_SIZE (SM9_SIGN_KEY_SIZE) // MAX(SIGN_MASTER_KEY, SIGN_KEY, ENC_MASTER_KEY, ENC_KEY) +#define SM9_MAX_PRIVATE_KEY_INFO_SIZE 512 +#define SM9_MAX_ENCED_PRIVATE_KEY_INFO_SIZE 1024 + +/* +from GM/T 0080-2020 SM9 Cryptographic Alagorithm Application Specification +SM9Cipher ::= SEQUENCE { + EnType INTEGER, -- 0 for XOR + C1 BIT STRING, -- uncompressed octets of ECPoint + C3 OCTET STRING, -- 32 bytes HMAC-SM3 tag + CipherText OCTET STRING } +*/ + +int sm9_kem_encrypt(const SM9_ENC_MASTER_KEY *mpk, const char *id, size_t idlen, size_t klen, uint8_t *kbuf, SM9_POINT *C); +int sm9_kem_decrypt(const SM9_ENC_KEY *key, const char *id, size_t idlen, const SM9_POINT *C, size_t klen, uint8_t *kbuf); +int sm9_do_encrypt(const SM9_ENC_MASTER_KEY *mpk, const char *id, size_t idlen, + const uint8_t *in, size_t inlen, SM9_POINT *C1, uint8_t *c2, uint8_t c3[SM3_HMAC_SIZE]); +int sm9_do_decrypt(const SM9_ENC_KEY *key, const char *id, size_t idlen, + const SM9_POINT *C1, const uint8_t *c2, size_t c2len, const uint8_t c3[SM3_HMAC_SIZE], uint8_t *out); + +#define SM9_MAX_PLAINTEXT_SIZE 255 +#define SM9_MAX_CIPHERTEXT_SIZE 367 // calculated in test_sm9_ciphertext() +int sm9_ciphertext_to_der(const SM9_POINT *C1, const uint8_t *c2, size_t c2len, + const uint8_t c3[SM3_HMAC_SIZE], uint8_t **out, size_t *outlen); +int sm9_ciphertext_from_der(SM9_POINT *C1, const uint8_t **c2, size_t *c2len, + const uint8_t **c3, const uint8_t **in, size_t *inlen); +int sm9_ciphertext_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *a, size_t alen); +int sm9_encrypt(const SM9_ENC_MASTER_KEY *mpk, const char *id, size_t idlen, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int sm9_decrypt(const SM9_ENC_KEY *key, const char *id, size_t idlen, + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/socket.h b/thirdparty/GmSSL-3.1.1/include/gmssl/socket.h new file mode 100644 index 0000000..e5c5d92 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/socket.h @@ -0,0 +1,73 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_SOCKET_H +#define GMSSL_SOCKET_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + + +#ifdef WIN32 +#pragma comment (lib, "Ws2_32.lib") +#pragma comment (lib, "Mswsock.lib") +#pragma comment (lib, "AdvApi32.lib") + +#include + +typedef SOCKET tls_socket_t; +typedef int tls_ret_t; +typedef int tls_socklen_t; + + +#define tls_socket_send(sock,buf,len,flags) send(sock,buf,(int)(len),flags) +#define tls_socket_recv(sock,buf,len,flags) recv(sock,buf,(int)(len),flags) +#define tls_socket_close(sock) closesocket(sock) + + +#else + +#include +#include +#include +#include +#include +#include +#include + +typedef int tls_socket_t; +typedef ssize_t tls_ret_t; +typedef socklen_t tls_socklen_t; + + +#define tls_socket_send(sock,buf,len,flags) send(sock,buf,len,flags) +#define tls_socket_recv(sock,buf,len,flags) recv(sock,buf,len,flags) +#define tls_socket_close(sock) close(sock) + +#endif + +int tls_socket_lib_init(void); +int tls_socket_lib_cleanup(void); +int tls_socket_create(tls_socket_t *sock, int af, int type, int protocl); +int tls_socket_connect(tls_socket_t sock, const struct sockaddr_in *addr); +int tls_socket_bind(tls_socket_t sock, const struct sockaddr_in *addr); +int tls_socket_listen(tls_socket_t sock, int backlog); +int tls_socket_accept(tls_socket_t sock, struct sockaddr_in *addr, tls_socket_t *conn_sock); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/tls.h b/thirdparty/GmSSL-3.1.1/include/gmssl/tls.h new file mode 100644 index 0000000..4d39ac9 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/tls.h @@ -0,0 +1,875 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_TLS_H +#define GMSSL_TLS_H + + +#include +#include +#include +#include +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +TLS Public API + + TLS_PROTOCOL + TLS_protocol_tlcp + TLS_protocol_tls12 + TLS_protocol_tls13 + + TLS_CIPHER_SUITE + TLS_cipher_ecc_sm4_cbc_sm3 + TLS_cipher_ecc_sm4_gcm_sm3 + TLS_cipher_ecdhe_sm4_cbc_sm3 + TLS_cipher_ecdhe_sm4_gcm_sm3 + TLS_cipher_sm4_gcm_sm3 + + TLS_CTX + tls_ctx_init + tls_ctx_set_cipher_suites + tls_ctx_set_ca_certificates + tls_ctx_set_certificate_and_key + tls_ctx_set_tlcp_server_certificate_and_keys + tls_ctx_cleanup + + TLS_CONNECT + tls_init + tls_set_socket + tls_do_handshake + tls_send + tls_recv + tls_shutdown + tls_cleanup +*/ + +typedef uint32_t uint24_t; + +#define tls_uint8_size() 1 +#define tls_uint16_size() 2 +#define tls_uint24_size() 3 + +void tls_uint8_to_bytes(uint8_t a, uint8_t **out, size_t *outlen); +void tls_uint16_to_bytes(uint16_t a, uint8_t **out, size_t *outlen); +void tls_uint24_to_bytes(uint24_t a, uint8_t **out, size_t *outlen); +void tls_uint32_to_bytes(uint32_t a, uint8_t **out, size_t *outlen); +void tls_array_to_bytes(const uint8_t *data, size_t len, uint8_t **out, size_t *outlen); +void tls_uint8array_to_bytes(const uint8_t *data, size_t datalen, uint8_t **out, size_t *outlen); +void tls_uint16array_to_bytes(const uint8_t *data, size_t datalen, uint8_t **out, size_t *outlen); +void tls_uint24array_to_bytes(const uint8_t *data, size_t datalen, uint8_t **out, size_t *outlen); +int tls_uint8_from_bytes(uint8_t *a, const uint8_t **in, size_t *inlen); +int tls_uint16_from_bytes(uint16_t *a, const uint8_t **in, size_t *inlen); +int tls_uint24_from_bytes(uint24_t *a, const uint8_t **in, size_t *inlen); +int tls_uint32_from_bytes(uint32_t *a, const uint8_t **in, size_t *inlen); +int tls_array_from_bytes(const uint8_t **data, size_t datalen, const uint8_t **in, size_t *inlen); +int tls_uint8array_from_bytes(const uint8_t **data, size_t *datalen, const uint8_t **in, size_t *inlen); +int tls_uint16array_from_bytes(const uint8_t **data, size_t *datalen, const uint8_t **in, size_t *inlen); +int tls_uint24array_from_bytes(const uint8_t **data, size_t *datalen, const uint8_t **in, size_t *inlen); +int tls_length_is_zero(size_t len); + + +typedef enum { + TLS_protocol_tlcp = 0x0101, + TLS_protocol_ssl2 = 0x0200, + TLS_protocol_ssl3 = 0x0300, + TLS_protocol_tls1 = 0x0301, + TLS_protocol_tls11 = 0x0302, + TLS_protocol_tls12 = 0x0303, + TLS_protocol_tls13 = 0x0304, + TLS_protocol_dtls1 = 0xfeff, // {254, 255} + TLS_protocol_dtls12 = 0xfefd, // {254, 253} +} TLS_PROTOCOL; + +const char *tls_protocol_name(int proto); + + +typedef enum { + TLS_cipher_null_with_null_null = 0x0000, + + // TLS 1.3, RFC 8998 + TLS_cipher_sm4_gcm_sm3 = 0x00c6, + TLS_cipher_sm4_ccm_sm3 = 0x00c7, + + // TLCP, GB/T 38636-2020, GM/T 0024-2012 + TLS_cipher_ecdhe_sm4_cbc_sm3 = 0xe011, // 可以让TLSv1.2使用这个 + TLS_cipher_ecdhe_sm4_gcm_sm3 = 0xe051, + TLS_cipher_ecc_sm4_cbc_sm3 = 0xe013, + TLS_cipher_ecc_sm4_gcm_sm3 = 0xe053, + TLS_cipher_ibsdh_sm4_cbc_sm3 = 0xe015, + TLS_cipher_ibsdh_sm4_gcm_sm3 = 0xe055, + TLS_cipher_ibc_sm4_cbc_sm3 = 0xe017, + TLS_cipher_ibc_sm4_gcm_sm3 = 0xe057, + TLS_cipher_rsa_sm4_cbc_sm3 = 0xe019, + TLS_cipher_rsa_sm4_gcm_sm3 = 0xe059, + TLS_cipher_rsa_sm4_cbc_sha256 = 0xe01c, + TLS_cipher_rsa_sm4_gcm_sha256 = 0xe05a, + + // TLS 1.3 RFC 8446 + TLS_cipher_aes_128_gcm_sha256 = 0x1301, // Mandatory-to-implement + TLS_cipher_aes_256_gcm_sha384 = 0x1302, // SHOULD implement + TLS_cipher_chacha20_poly1305_sha256 = 0x1303, // SHOULD implement + TLS_cipher_aes_128_ccm_sha256 = 0x1304, + TLS_cipher_aes_128_ccm_8_sha256 = 0x1305, + + TLS_cipher_empty_renegotiation_info_scsv = 0x00ff, +} TLS_CIPHER_SUITE; + +const char *tls_cipher_suite_name(int cipher); +int tls_cipher_suites_select(const uint8_t *client_ciphers, size_t client_ciphers_len, + const int *server_ciphers, size_t server_ciphers_cnt, int *selected_cipher); +int tls_cipher_suite_in_list(int cipher, const int *list, size_t list_count); + + +typedef enum { + TLS_compression_null = 0, + TLS_compression_default = 1, +} TLS_COMPRESSION_METHOD; + +const char *tls_compression_method_name(int meth); + + +typedef enum { + TLS_record_invalid = 0, // TLS 1.3 + TLS_record_change_cipher_spec = 20, // 0x14 + TLS_record_alert = 21, // 0x15 + TLS_record_handshake = 22, // 0x16 + TLS_record_application_data = 23, // 0x17 + TLS_record_heartbeat = 24, // 0x18 + TLS_record_tls12_cid = 25, // 0x19 +} TLS_RECORD_TYPE; + +const char *tls_record_type_name(int type); + + +typedef enum { + TLS_handshake_hello_request = 0, + TLS_handshake_client_hello = 1, + TLS_handshake_server_hello = 2, + TLS_handshake_hello_verify_request = 3, + TLS_handshake_new_session_ticket = 4, + TLS_handshake_end_of_early_data = 5, + TLS_handshake_hello_retry_request = 6, + TLS_handshake_encrypted_extensions = 8, + TLS_handshake_certificate = 11, + TLS_handshake_server_key_exchange = 12, + TLS_handshake_certificate_request = 13, + TLS_handshake_server_hello_done = 14, + TLS_handshake_certificate_verify = 15, + TLS_handshake_client_key_exchange = 16, + TLS_handshake_finished = 20, + TLS_handshake_certificate_url = 21, + TLS_handshake_certificate_status = 22, + TLS_handshake_supplemental_data = 23, + TLS_handshake_key_update = 24, + TLS_handshake_compressed_certificate = 25, + TLS_handshake_ekt_key = 26, + TLS_handshake_message_hash = 254, +} TLS_HANDSHAKE_TYPE; + +const char *tls_handshake_type_name(int type); + + +typedef enum { + TLS_cert_type_rsa_sign = 1, + TLS_cert_type_dss_sign = 2, + TLS_cert_type_rsa_fixed_dh = 3, + TLS_cert_type_dss_fixed_dh = 4, + TLS_cert_type_rsa_ephemeral_dh_RESERVED = 5, + TLS_cert_type_dss_ephemeral_dh_RESERVED = 6, + TLS_cert_type_fortezza_dms_RESERVED = 20, + TLS_cert_type_ecdsa_sign = 64, // also for sm2 + TLS_cert_type_rsa_fixed_ecdh = 65, + TLS_cert_type_ecdsa_fixed_ecdh = 66, + TLS_cert_type_gost_sign256 = 67, + TLS_cert_type_gost_sign512 = 68, + TLS_cert_type_ibc_params = 80, +} TLS_CERTIFICATE_TYPE; + +const char *tls_cert_type_name(int type); +int tls_cert_type_from_oid(int oid); + +typedef enum { + TLS_extension_server_name = 0, + TLS_extension_max_fragment_length = 1, + TLS_extension_client_certificate_url = 2, + TLS_extension_trusted_ca_keys = 3, + TLS_extension_truncated_hmac = 4, + TLS_extension_status_request = 5, + TLS_extension_user_mapping = 6, + TLS_extension_client_authz = 7, + TLS_extension_server_authz = 8, + TLS_extension_cert_type = 9, + TLS_extension_supported_groups = 10, + TLS_extension_ec_point_formats = 11, + TLS_extension_srp = 12, + TLS_extension_signature_algorithms = 13, + TLS_extension_use_srtp = 14, + TLS_extension_heartbeat = 15, + TLS_extension_application_layer_protocol_negotiation= 16, + TLS_extension_status_request_v2 = 17, + TLS_extension_signed_certificate_timestamp = 18, + TLS_extension_client_certificate_type = 19, + TLS_extension_server_certificate_type = 20, + TLS_extension_padding = 21, + TLS_extension_encrypt_then_mac = 22, + TLS_extension_extended_master_secret = 23, + TLS_extension_token_binding = 24, + TLS_extension_cached_info = 25, + TLS_extension_tls_lts = 26, + TLS_extension_compress_certificate = 27, + TLS_extension_record_size_limit = 28, + TLS_extension_pwd_protect = 29, + TLS_extension_pwd_clear = 30, + TLS_extension_password_salt = 31, + TLS_extension_ticket_pinning = 32, + TLS_extension_tls_cert_with_extern_psk = 33, + TLS_extension_delegated_credentials = 34, + TLS_extension_session_ticket = 35, + TLS_extension_TLMSP = 36, + TLS_extension_TLMSP_proxying = 37, + TLS_extension_TLMSP_delegate = 38, + TLS_extension_supported_ekt_ciphers = 39, + TLS_extension_pre_shared_key = 41, + TLS_extension_early_data = 42, + TLS_extension_supported_versions = 43, + TLS_extension_cookie = 44, + TLS_extension_psk_key_exchange_modes = 46, + TLS_extension_certificate_authorities = 47, + TLS_extension_oid_filters = 48, + TLS_extension_post_handshake_auth = 49, + TLS_extension_signature_algorithms_cert = 50, + TLS_extension_key_share = 51, + TLS_extension_transparency_info = 52, + TLS_extension_connection_id = 53, + TLS_extension_external_id_hash = 55, + TLS_extension_external_session_id = 56, + TLS_extension_quic_transport_parameters = 57, + TLS_extension_ticket_request = 58, + TLS_extension_renegotiation_info = 65281, +} TLS_EXTENSION_TYPE; + +const char *tls_extension_name(int ext); + + +typedef enum { + TLS_point_uncompressed = 0, + TLS_point_ansix962_compressed_prime = 1, + TLS_point_ansix962_compressed_char2 = 2, +} TLS_EC_POINT_FORMAT; + +const char *tls_ec_point_format_name(int format); + + +typedef enum { + TLS_curve_type_explicit_prime = 1, + TLS_curve_type_explicit_char2 = 2, + TLS_curve_type_named_curve = 3, +} TLS_CURVE_TYPE; + +const char *tls_curve_type_name(int type); + + +// 与其支持v2,还不如直接修改v2,让v2和v3兼容 + +typedef enum { + TLS_curve_secp256k1 = 22, + TLS_curve_secp256r1 = 23, + TLS_curve_secp384r1 = 24, + TLS_curve_secp521r1 = 25, + TLS_curve_brainpoolp256r1 = 26, + TLS_curve_brainpoolp384r1 = 27, + TLS_curve_brainpoolp512r1 = 28, + TLS_curve_x25519 = 29, + TLS_curve_x448 = 30, + TLS_curve_brainpoolp256r1tls13 = 31, + TLS_curve_brainpoolp384r1tls13 = 32, + TLS_curve_brainpoolp512r1tls13 = 33, + TLS_curve_sm2p256v1 = 41, // GmSSLv2: 30 +} TLS_NAMED_CURVE; + +const char *tls_named_curve_name(int curve); + + +typedef enum { + TLS_sig_rsa_pkcs1_sha1 = 0x0201, + TLS_sig_ecdsa_sha1 = 0x0203, + TLS_sig_rsa_pkcs1_sha256 = 0x0401, + TLS_sig_ecdsa_secp256r1_sha256 = 0x0403, + TLS_sig_rsa_pkcs1_sha256_legacy = 0x0420, + TLS_sig_rsa_pkcs1_sha384 = 0x0501, + TLS_sig_ecdsa_secp384r1_sha384 = 0x0503, + TLS_sig_rsa_pkcs1_sha384_legacy = 0x0520, + TLS_sig_rsa_pkcs1_sha512 = 0x0601, + TLS_sig_ecdsa_secp521r1_sha512 = 0x0603, + TLS_sig_rsa_pkcs1_sha512_legacy = 0x0620, + TLS_sig_sm2sig_sm3 = 0x0708, // GmSSLv2: 0x0707 + TLS_sig_rsa_pss_rsae_sha256 = 0x0804, + TLS_sig_rsa_pss_rsae_sha384 = 0x0805, + TLS_sig_rsa_pss_rsae_sha512 = 0x0806, + TLS_sig_ed25519 = 0x0807, + TLS_sig_ed448 = 0x0808, + TLS_sig_rsa_pss_pss_sha256 = 0x0809, + TLS_sig_rsa_pss_pss_sha384 = 0x080A, + TLS_sig_rsa_pss_pss_sha512 = 0x080B, + TLS_sig_ecdsa_brainpoolP256r1tls13_sha256 = 0x081A, + TLS_sig_ecdsa_brainpoolP384r1tls13_sha384 = 0x081B, + TLS_sig_ecdsa_brainpoolP512r1tls13_sha512 = 0x081C, +} TLS_SIGNATURE_SCHEME; + +const char *tls_signature_scheme_name(int scheme); + + +typedef enum { + TLS_change_cipher_spec = 1, +} TLS_CHANGE_CIPHER_SPEC_TYPE; + + +typedef enum { + TLS_alert_level_warning = 1, + TLS_alert_level_fatal = 2, +} TLS_ALERT_LEVEL; + +const char *tls_alert_level_name(int level); + + +typedef enum { + TLS_alert_close_notify = 0, + TLS_alert_unexpected_message = 10, + TLS_alert_bad_record_mac = 20, + TLS_alert_decryption_failed = 21, + TLS_alert_record_overflow = 22, + TLS_alert_decompression_failure = 30, + TLS_alert_handshake_failure = 40, + TLS_alert_no_certificate = 41, + TLS_alert_bad_certificate = 42, + TLS_alert_unsupported_certificate = 43, + TLS_alert_certificate_revoked = 44, + TLS_alert_certificate_expired = 45, + TLS_alert_certificate_unknown = 46, + TLS_alert_illegal_parameter = 47, + TLS_alert_unknown_ca = 48, + TLS_alert_access_denied = 49, + TLS_alert_decode_error = 50, + TLS_alert_decrypt_error = 51, + TLS_alert_export_restriction = 60, + TLS_alert_protocol_version = 70, + TLS_alert_insufficient_security = 71, + TLS_alert_internal_error = 80, + TLS_alert_user_canceled = 90, + TLS_alert_no_renegotiation = 100, + TLS_alert_unsupported_extension = 110, + TLS_alert_unsupported_site2site = 200, + TLS_alert_no_area = 201, + TLS_alert_unsupported_areatype = 202, + TLS_alert_bad_ibcparam = 203, + TLS_alert_unsupported_ibcparam = 204, + TLS_alert_identity_need = 205, +} TLS_ALERT_DESCRIPTION; + +const char *tls_alert_description_text(int description); + + +int tls_prf(const uint8_t *secret, size_t secretlen, const char *label, + const uint8_t *seed, size_t seedlen, + const uint8_t *more, size_t morelen, + size_t outlen, uint8_t *out); +int tls13_hkdf_extract(const DIGEST *digest, const uint8_t salt[32], const uint8_t in[32], uint8_t out[32]); +int tls13_hkdf_expand_label(const DIGEST *digest, const uint8_t secret[32], + const char *label, const uint8_t *context, size_t context_len, + size_t outlen, uint8_t *out); +int tls13_derive_secret(const uint8_t secret[32], const char *label, const DIGEST_CTX *dgst_ctx, uint8_t out[32]); + +int tls_cbc_encrypt(const SM3_HMAC_CTX *hmac_ctx, const SM4_KEY *enc_key, + const uint8_t seq_num[8], const uint8_t header[5], + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int tls_cbc_decrypt(const SM3_HMAC_CTX *hmac_ctx, const SM4_KEY *dec_key, + const uint8_t seq_num[8], const uint8_t header[5], + const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int tls_record_encrypt(const SM3_HMAC_CTX *hmac_ctx, const SM4_KEY *cbc_key, + const uint8_t seq_num[8], const uint8_t *in, size_t inlen, + uint8_t *out, size_t *outlen); +int tls_record_decrypt(const SM3_HMAC_CTX *hmac_ctx, const SM4_KEY *cbc_key, + const uint8_t seq_num[8], const uint8_t *in, size_t inlen, + uint8_t *out, size_t *outlen); + +int tls_seq_num_incr(uint8_t seq_num[8]); +int tls_random_generate(uint8_t random[32]); +int tls_random_print(FILE *fp, const uint8_t random[32], int format, int indent); +int tls_pre_master_secret_generate(uint8_t pre_master_secret[48], int protocol); +int tls_pre_master_secret_print(FILE *fp, const uint8_t pre_master_secret[48], int format, int indent); + +int tls_secrets_print(FILE *fp, + const uint8_t *pre_master_secret, size_t pre_master_secret_len, + const uint8_t client_random[32], const uint8_t server_random[32], + const uint8_t master_secret[48], + const uint8_t *key_block, size_t key_block_len, + int format, int indent); + + +typedef struct { + uint8_t type; + uint8_t protocol[2]; + uint8_t data_length[2]; +} TLS_RECORD_HEADER; + +#define TLS_RECORD_HEADER_SIZE (1 + tls_uint16_size() + tls_uint16_size()) // 5 +#define TLS_MAX_PLAINTEXT_SIZE (1 << 14) // 16384 +#define TLS_MAX_COMPRESSED_SIZE ((1 << 14) + 1024) // 17408 +#define TLS_MAX_CIPHERTEXT_SIZE ((1 << 14) + 2048) // 18432 +#define TLS_MAX_RECORD_SIZE (TLS_RECORD_HEADER_SIZE + TLS_MAX_CIPHERTEXT_SIZE) // 18437 + +#define tls_record_type(record) ((record)[0]) +#define tls_record_header(record) ((record)+0) +#define tls_record_protocol(record) (((uint16_t)((record)[1]) << 8) | (record)[2]) +#define tls_record_data(record) ((record)+TLS_RECORD_HEADER_SIZE) +#define tls_record_data_length(record) (((uint16_t)((record)[3]) << 8) | (record)[4]) +#define tls_record_length(record) (TLS_RECORD_HEADER_SIZE + tls_record_data_length(record)) + +int tls_record_set_type(uint8_t *record, int type); +int tls_record_set_protocol(uint8_t *record, int protocol); +int tls_record_set_data_length(uint8_t *record, size_t length); +int tls_record_set_data(uint8_t *record, const uint8_t *data, size_t datalen); + +// 握手消息ServerKeyExchange, ClientKeyExchange的解析依赖当前密码套件 +#define tls_format_set_cipher_suite(fmt,cipher) do {(fmt)|=((cipher)<<8);} while (0) +int tls_record_print(FILE *fp, const uint8_t *record, size_t recordlen, int format, int indent); +int tlcp_record_print(FILE *fp, const uint8_t *record, size_t recordlen, int format, int indent); + +int tls_record_send(const uint8_t *record, size_t recordlen, tls_socket_t sock); +int tls_record_recv(uint8_t *record, size_t *recordlen, tls_socket_t sock); +int tls12_record_recv(uint8_t *record, size_t *recordlen, tls_socket_t sock); + + +// Handshake +typedef struct { + uint8_t type; + uint8_t length[3]; +} TLS_HANDSHAKE_HEADER; + +#define TLS_HANDSHAKE_HEADER_SIZE 4 +#define TLS_MAX_HANDSHAKE_DATA_SIZE (TLS_MAX_PLAINTEXT_SIZE - TLS_HANDSHAKE_HEADER_SIZE) + +#define tls_handshake_data(p) ((p) + TLS_HANDSHAKE_HEADER_SIZE) +//#define tls_handshake_data_length(p) + + +int tls_record_set_handshake(uint8_t *record, size_t *recordlen, + int type, const uint8_t *data, size_t datalen); +int tls_record_get_handshake(const uint8_t *record, + int *type, const uint8_t **data, size_t *datalen); +int tls_handshake_print(FILE *fp, const uint8_t *handshake, size_t handshakelen, int format, int indent); + +// HelloRequest +int tls_hello_request_print(FILE *fp, const uint8_t *data, size_t datalen, int format, int indent); + +// ClientHello, ServerHello +#define TLS_MIN_SESSION_ID_SIZE 0 +#define TLS_MAX_SESSION_ID_SIZE 32 + +int tls_record_set_handshake_client_hello(uint8_t *record, size_t *recordlen, + int client_protocol, const uint8_t random[32], + const uint8_t *session_id, size_t session_id_len, + const int *cipher_suites, size_t cipher_suites_count, + const uint8_t *exts, size_t exts_len); +int tls_record_get_handshake_client_hello(const uint8_t *record, + int *client_protocol, const uint8_t **random, + const uint8_t **session_id, size_t *session_id_len, + const uint8_t **cipher_suites, size_t *cipher_suites_len, + const uint8_t **exts, size_t *exts_len); +int tls_client_hello_print(FILE *fp, const uint8_t *data, size_t datalen, int format, int indent); + +int tls_record_set_handshake_server_hello(uint8_t *record, size_t *recordlen, + int server_protocol, const uint8_t random[32], + const uint8_t *session_id, size_t session_id_len, + int cipher_suite, const uint8_t *exts, size_t exts_len); +int tls_record_get_handshake_server_hello(const uint8_t *record, + int *protocol, const uint8_t **random, const uint8_t **session_id, size_t *session_id_len, + int *cipher_suite, const uint8_t **exts, size_t *exts_len); +int tls_server_hello_print(FILE *fp, const uint8_t *server_hello, size_t len, int format, int indent); + +// Extensions +int tls_ec_point_formats_ext_to_bytes(const int *formats, size_t formats_cnt, + uint8_t **out, size_t *outlen); +int tls_process_client_ec_point_formats(const uint8_t *ext_data, size_t ext_datalen, + uint8_t **out, size_t *outlen); +int tls_process_server_ec_point_formats(const uint8_t *ext_data, size_t ext_datalen); + +int tls_supported_groups_ext_to_bytes(const int *groups, size_t groups_cnt, + uint8_t **out, size_t *outlen); +int tls_process_client_supported_groups(const uint8_t *ext_data, size_t ext_datalen, + uint8_t **out, size_t *outlen); +int tls_process_server_supported_groups(const uint8_t *ext_data, size_t ext_datalen); + +int tls_signature_algorithms_ext_to_bytes_ex(int ext_type, const int *algs, size_t algs_cnt, + uint8_t **out, size_t *outlen); +int tls_signature_algorithms_ext_to_bytes(const int *algs, size_t algs_cnt, + uint8_t **out, size_t *outlen); +int tls13_signature_algorithms_cert_ext_to_bytes(const int *algs, size_t algs_cnt, + uint8_t **out, size_t *outlen); +int tls_process_client_signature_algorithms(const uint8_t *ext_data, size_t ext_datalen, + uint8_t **out, size_t *outlen); +int tls_process_server_signature_algors(const uint8_t *ext_data, size_t ext_datalen); + +int tls13_supported_versions_ext_to_bytes(int handshake_type, const int *protos, size_t protos_cnt, + uint8_t **out, size_t *outlen); +int tls13_process_client_supported_versions(const uint8_t *ext_data, size_t ext_datalen, + uint8_t **out, size_t *outlen); + +int tls13_process_server_supported_versions(const uint8_t *ext_data, size_t ext_datalen); + +int tls13_key_share_entry_to_bytes(const SM2_POINT *point, uint8_t **out, size_t *outlen); +int tls13_client_key_share_ext_to_bytes(const SM2_POINT *point, uint8_t **out, size_t *outlen); +int tls13_server_key_share_ext_to_bytes(const SM2_POINT *point, uint8_t **out, size_t *outlen); +int tls13_process_client_key_share(const uint8_t *ext_data, size_t ext_datalen, + const SM2_KEY *server_ecdhe_key, SM2_POINT *client_ecdhe_public, + uint8_t **out, size_t *outlen); +int tls13_process_server_key_share(const uint8_t *ext_data, size_t ext_datalen, SM2_POINT *point); + + +int tls13_certificate_authorities_ext_to_bytes(const uint8_t *ca_names, size_t ca_names_len, + uint8_t **out, size_t *outlen); + +int tls_ext_from_bytes(int *type, const uint8_t **data, size_t *datalen, const uint8_t **in, size_t *inlen); +int tls_process_client_exts(const uint8_t *exts, size_t extslen, uint8_t *out, size_t *outlen, size_t maxlen); +int tls_process_server_exts(const uint8_t *exts, size_t extslen, + int *ec_point_format, int *supported_group, int *signature_algor); + + +// Certificate +int tls_record_set_handshake_certificate(uint8_t *record, size_t *recordlen, + const uint8_t *certs, size_t certslen); +// 这个函数比较特殊,是直接解析了证书链,而不是返回指针 +// 应该提供一个独立的解析函数来解析TLS的证书链 +int tls_record_get_handshake_certificate(const uint8_t *record, uint8_t *certs, size_t *certslen); + +// ServerKeyExchange +int tls_server_key_exchange_print(FILE *fp, const uint8_t *ske, size_t skelen, int format, int indent); + +#define TLS_MAX_SIGNATURE_SIZE SM2_MAX_SIGNATURE_SIZE +int tls_sign_server_ecdh_params(const SM2_KEY *server_sign_key, + const uint8_t client_random[32], const uint8_t server_random[32], + int curve, const SM2_POINT *point, uint8_t *sig, size_t *siglen); +int tls_verify_server_ecdh_params(const SM2_KEY *server_sign_key, + const uint8_t client_random[32], const uint8_t server_random[32], + int curve, const SM2_POINT *point, const uint8_t *sig, size_t siglen); +int tls_record_set_handshake_server_key_exchange_ecdhe(uint8_t *record, size_t *recordlen, + int curve, const SM2_POINT *point, const uint8_t *sig, size_t siglen); +int tls_record_get_handshake_server_key_exchange_ecdhe(const uint8_t *record, + int *curve, SM2_POINT *point, const uint8_t **sig, size_t *siglen); +int tls_server_key_exchange_ecdhe_print(FILE *fp, const uint8_t *data, size_t datalen, + int format, int indent); + +int tlcp_record_set_handshake_server_key_exchange_pke(uint8_t *record, size_t *recordlen, + const uint8_t *sig, size_t siglen); +int tlcp_record_get_handshake_server_key_exchange_pke(const uint8_t *record, + const uint8_t **sig, size_t *siglen); +int tlcp_server_key_exchange_pke_print(FILE *fp, const uint8_t *sig, size_t siglen, int format, int indent); + + + +// CertificateRequest +#define TLS_MAX_CERTIFICATE_TYPES 256 +#define TLS_MAX_CA_NAMES_SIZE (TLS_MAX_HANDSHAKE_DATA_SIZE - tls_uint8_size() - tls_uint16_size()) + +int tls_authorities_from_certs(uint8_t *ca_names, size_t *ca_names_len, size_t maxlen, const uint8_t *certs, size_t certslen); +int tls_authorities_issued_certificate(const uint8_t *ca_names, size_t ca_namelen, const uint8_t *certs, size_t certslen); +int tls_cert_types_accepted(const uint8_t *types, size_t types_len, const uint8_t *client_certs, size_t client_certs_len); + +int tls_record_set_handshake_certificate_request(uint8_t *record, size_t *recordlen, + const uint8_t *cert_types, size_t cert_types_len, + const uint8_t *ca_names, size_t ca_names_len); +int tls_record_get_handshake_certificate_request(const uint8_t *record, + const uint8_t **cert_types, size_t *cert_types_len, + const uint8_t **ca_names, size_t *ca_names_len); +int tls_certificate_request_print(FILE *fp, const uint8_t *data, size_t datalen, int format, int indent); + + +// ServerHelloDone +int tls_record_set_handshake_server_hello_done(uint8_t *record, size_t *recordlen); +int tls_record_get_handshake_server_hello_done(const uint8_t *record); +int tls_server_hello_done_print(FILE *fp, const uint8_t *data, size_t datalen, int format, int indent); + +// ClientKeyExchange +int tls_record_set_handshake_client_key_exchange_pke(uint8_t *record, size_t *recordlen, + const uint8_t *enced_pms, size_t enced_pms_len); +int tls_record_get_handshake_client_key_exchange_pke(const uint8_t *record, + const uint8_t **enced_pms, size_t *enced_pms_len); +int tls_client_key_exchange_pke_print(FILE *fp, const uint8_t *cke, size_t ckelen, int format, int indent); +int tls_client_key_exchange_print(FILE *fp, const uint8_t *cke, size_t ckelen, int format, int indent); + +int tls_record_set_handshake_client_key_exchange_ecdhe(uint8_t *record, size_t *recordlen, + const SM2_POINT *point); // 这里不应该支持SM2_POINT类型 +int tls_record_get_handshake_client_key_exchange_ecdhe(const uint8_t *record, SM2_POINT *point); +int tls_client_key_exchange_ecdhe_print(FILE *fp, const uint8_t *data, size_t datalen, + int format, int indent); + +// CertificateVerify +int tls_record_set_handshake_certificate_verify(uint8_t *record, size_t *recordlen, + const uint8_t *sig, size_t siglen); +int tls_record_get_handshake_certificate_verify(const uint8_t *record, + const uint8_t **sig, size_t *siglen); +int tls_certificate_verify_print(FILE *fp, const uint8_t *p, size_t len, int format, int indent); + +typedef enum { + TLS_client_verify_client_hello = 0, + TLS_client_verify_server_hello = 1, + TLS_client_verify_server_certificate = 2, + TLS_client_verify_server_key_exchange = 3, + TLS_client_verify_cert_request = 4, + TLS_client_verify_server_hello_done = 5, + TLS_client_verify_client_certificate = 6, + TLS_client_verify_client_key_exchange = 7, +} TLS_CLIENT_VERIFY_INDEX; + +typedef struct { + TLS_CLIENT_VERIFY_INDEX index; + uint8_t *handshake[8]; // Record data only, no record header + size_t handshake_len[8]; +} TLS_CLIENT_VERIFY_CTX; + +int tls_client_verify_init(TLS_CLIENT_VERIFY_CTX *ctx); +int tls_client_verify_update(TLS_CLIENT_VERIFY_CTX *ctx, const uint8_t *handshake, size_t handshake_len); +int tls_client_verify_finish(TLS_CLIENT_VERIFY_CTX *ctx, const uint8_t *sig, size_t siglen, const SM2_KEY *public_key); +void tls_client_verify_cleanup(TLS_CLIENT_VERIFY_CTX *ctx); + +// Finished +// FIXME: 支持TLS 1.3 提供MIN, MAX或TLS12, TLS13, TLCP... +#define TLS_VERIFY_DATA_SIZE 12 // TLS 1.3或者其他版本支持更长的verify_data +#define TLS_FINISHED_RECORD_SIZE (TLS_RECORD_HEADER_SIZE + TLS_HANDSHAKE_HEADER_SIZE + TLS_VERIFY_DATA_SIZE) // 21 +#define TLS_MAX_PADDING_SIZE (1 + 255) +#define TLS_MAC_SIZE SM3_HMAC_SIZE +#define TLS_FINISHED_RECORD_BUF_SIZE (TLS_FINISHED_RECORD_SIZE + TLS_MAC_SIZE + TLS_MAX_PADDING_SIZE) // 309 + + +int tls_record_set_handshake_finished(uint8_t *record, size_t *recordlen, + const uint8_t *verify_data, size_t verify_data_len); +int tls_record_get_handshake_finished(const uint8_t *record, + const uint8_t **verify_data, size_t *verify_data_len); +int tls_finished_print(FILE *fp, const uint8_t *a, size_t len, int format, int indent); + + +// Alert +typedef struct { + uint8_t level; + uint8_t description; +} TLS_ALERT; + +#define TLS_ALERT_RECORD_SIZE (TLS_RECORD_HEADER_SIZE + 2) + +int tls_record_set_alert(uint8_t *record, size_t *recordlen, int alert_level, int alert_description); +int tls_record_get_alert(const uint8_t *record, int *alert_level, int *alert_description); +int tls_alert_print(FILE *fp, const uint8_t *data, size_t datalen, int format, int indent); + + +// ChangeCipherSpec +typedef struct { + uint8_t type; +} TLS_CHANGE_CIPHER_SPEC; + +const char *tls_change_cipher_spec_text(int change_cipher_spec); +int tls_change_cipher_spec_print(FILE *fp, const uint8_t *data, size_t datalen, int format, int indent); +int tls_record_set_change_cipher_spec(uint8_t *record, size_t *recordlen); +int tls_record_get_change_cipher_spec(const uint8_t *record); + +// ApplicationData +int tls_record_set_application_data(uint8_t *record, size_t *recordlen, + const uint8_t *data, size_t datalen); +int tls_record_get_application_data(uint8_t *record, + const uint8_t **data, size_t *datalen); +int tls_application_data_print(FILE *fp, const uint8_t *data, size_t datalen, int format, int indent); + + + +enum { + TLS_server_mode = 0, + TLS_client_mode = 1, +}; + +#define TLS_MAX_CIPHER_SUITES_COUNT 64 + +typedef struct { + int protocol; + int is_client; + int cipher_suites[TLS_MAX_CIPHER_SUITES_COUNT]; + size_t cipher_suites_cnt; + uint8_t *cacerts; + size_t cacertslen; + uint8_t *certs; + size_t certslen; + SM2_KEY signkey; + SM2_KEY kenckey; + int verify_depth; +} TLS_CTX; + +int tls_ctx_init(TLS_CTX *ctx, int protocol, int is_client); +int tls_ctx_set_cipher_suites(TLS_CTX *ctx, const int *cipher_suites, size_t cipher_suites_cnt); +int tls_ctx_set_ca_certificates(TLS_CTX *ctx, const char *cacertsfile, int depth); +int tls_ctx_set_certificate_and_key(TLS_CTX *ctx, const char *chainfile, + const char *keyfile, const char *keypass); +int tls_ctx_set_tlcp_server_certificate_and_keys(TLS_CTX *ctx, const char *chainfile, + const char *signkeyfile, const char *signkeypass, + const char *kenckeyfile, const char *kenckeypass); +void tls_ctx_cleanup(TLS_CTX *ctx); + + + +#define TLS_MAX_CERTIFICATES_SIZE 2048 +#define TLS_DEFAULT_VERIFY_DEPTH 4 +#define TLS_MAX_VERIFY_DEPTH 5 + + +typedef struct { + int protocol; + int is_client; + int cipher_suites[TLS_MAX_CIPHER_SUITES_COUNT]; + size_t cipher_suites_cnt; + tls_socket_t sock; + + uint8_t enced_record[TLS_MAX_RECORD_SIZE]; + size_t enced_record_len; + + + uint8_t record[TLS_MAX_RECORD_SIZE]; + + // 其实这个就不太对了,还是应该有一个完整的密文记录 + uint8_t databuf[TLS_MAX_PLAINTEXT_SIZE]; + uint8_t *data; + size_t datalen; + + int cipher_suite; + uint8_t session_id[32]; + size_t session_id_len; + uint8_t server_certs[TLS_MAX_CERTIFICATES_SIZE]; // 动态的可能会好一点 + size_t server_certs_len; + uint8_t client_certs[TLS_MAX_CERTIFICATES_SIZE]; + size_t client_certs_len; + uint8_t ca_certs[2048]; + size_t ca_certs_len; + + SM2_KEY sign_key; + SM2_KEY kenc_key; + + int verify_result; + + uint8_t master_secret[48]; + uint8_t key_block[96]; + + SM3_HMAC_CTX client_write_mac_ctx; + SM3_HMAC_CTX server_write_mac_ctx; + SM4_KEY client_write_enc_key; + SM4_KEY server_write_enc_key; + uint8_t client_seq_num[8]; + uint8_t server_seq_num[8]; + + uint8_t client_write_iv[12]; // tls13 + uint8_t server_write_iv[12]; // tls13 + BLOCK_CIPHER_KEY client_write_key; + BLOCK_CIPHER_KEY server_write_key; + +} TLS_CONNECT; + + +#define TLS_MAX_EXTENSIONS_SIZE 512 // 这个应该再考虑一下数值,是否可以用其他的缓冲区装载? + + +int tls_init(TLS_CONNECT *conn, const TLS_CTX *ctx); +int tls_set_socket(TLS_CONNECT *conn, tls_socket_t sock); +int tls_do_handshake(TLS_CONNECT *conn); +int tls_send(TLS_CONNECT *conn, const uint8_t *in, size_t inlen, size_t *sentlen); +int tls_recv(TLS_CONNECT *conn, uint8_t *out, size_t outlen, size_t *recvlen); +int tls_shutdown(TLS_CONNECT *conn); +void tls_cleanup(TLS_CONNECT *conn); + +int tlcp_do_connect(TLS_CONNECT *conn); +int tlcp_do_accept(TLS_CONNECT *conn); +int tls12_do_connect(TLS_CONNECT *conn); +int tls12_do_accept(TLS_CONNECT *conn); + + +#define TLS13_SM2_ID "TLSv1.3+GM+Cipher+Suite" +#define TLS13_SM2_ID_LENGTH (sizeof(TLS13_SM2_ID)-1) + +int tls13_do_connect(TLS_CONNECT *conn); +int tls13_do_accept(TLS_CONNECT *conn); + +int tls_send_alert(TLS_CONNECT *conn, int alert); +int tls_send_warning(TLS_CONNECT *conn, int alert); + +int tls13_send(TLS_CONNECT *conn, const uint8_t *data, size_t datalen, size_t *sentlen); +int tls13_recv(TLS_CONNECT *conn, uint8_t *out, size_t outlen, size_t *recvlen); + + +int tls13_connect(TLS_CONNECT *conn, const char *hostname, int port, FILE *server_cacerts_fp, + FILE *client_certs_fp, const SM2_KEY *client_sign_key); +int tls13_accept(TLS_CONNECT *conn, int port, + FILE *server_certs_fp, const SM2_KEY *server_sign_key, + FILE *client_cacerts_fp); + + +int tls13_supported_versions_ext_print(FILE *fp, int fmt, int ind, int handshake_type, const uint8_t *data, size_t datalen); +int tls13_key_share_ext_print(FILE *fp, int fmt, int ind, int handshake_type, const uint8_t *data, size_t datalen); + + +int tls_process_client_hello_exts(const uint8_t *exts, size_t extslen, uint8_t *out, size_t *outlen, size_t maxlen); +int tls_process_server_hello_exts(const uint8_t *exts, size_t extslen, + int *ec_point_format, int *supported_group, int *signature_algor); + + +int tls13_encrypted_extensions_print(FILE *fp, int fmt, int ind, const uint8_t *data, size_t datalen); + +int tls13_extension_print(FILE *fp, int fmt, int ind, + int handshake_type, int ext_type, const uint8_t *ext_data, size_t ext_datalen); +int tls13_extensions_print(FILE *fp, int fmt, int ind, + int handshake_type, const uint8_t *exts, size_t extslen); + +int tls13_certificate_print(FILE *fp, int fmt, int ind, const uint8_t *cert, size_t certlen); +int tls13_certificate_request_print(FILE *fp, int fmt, int ind, const uint8_t *cert, size_t certlen); +int tls13_certificate_verify_print(FILE *fp, int fmt, int ind, const uint8_t *d, size_t dlen); +int tls13_record_print(FILE *fp, int format, int indent, const uint8_t *record, size_t recordlen); + + +int tls13_gcm_encrypt(const BLOCK_CIPHER_KEY *key, const uint8_t iv[12], + const uint8_t seq_num[8], int record_type, + const uint8_t *in, size_t inlen, size_t padding_len, // TLSInnerPlaintext.content + uint8_t *out, size_t *outlen); // TLSCiphertext.encrypted_record +int tls13_gcm_decrypt(const BLOCK_CIPHER_KEY *key, const uint8_t iv[12], + const uint8_t seq_num[8], const uint8_t *in, size_t inlen, + int *record_type, uint8_t *out, size_t *outlen); + + +#ifdef TLS_DEBUG +# define tls_trace(s) fprintf(stderr,(s)) +# define tls_record_trace(fp,rec,reclen,fmt,ind) tls_record_print(fp,rec,reclen,fmt,ind) +# define tlcp_record_trace(fp,rec,reclen,fmt,ind) tlcp_record_print(fp,rec,reclen,fmt,ind) +# define tls12_record_trace(fp,rec,reclen,fmt,ind) tls12_record_print(fp,rec,reclen,fmt,ind) +# define tls13_record_trace(fp,rec,reclen,fmt,ind) tls13_record_print(fp,fmt,ind,rec,reclen) +#else +# define tls_trace(s) +# define tls_record_trace(fp,rec,reclen,fmt,ind) +# define tlcp_record_trace(fp,rec,reclen,fmt,ind) +# define tls12_record_trace(fp,rec,reclen,fmt,ind) +# define tls13_record_trace(fp,rec,reclen,fmt,ind) +#endif + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/version.h b/thirdparty/GmSSL-3.1.1/include/gmssl/version.h new file mode 100644 index 0000000..be56ada --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/version.h @@ -0,0 +1,32 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_VERSION_H +#define GMSSL_VERSION_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +// Also update CPACK_PACKAGE_VERSION in CMakeLists.txt +#define GMSSL_VERSION_NUM 30101 +#define GMSSL_VERSION_STR "GmSSL 3.1.1" + +_gmssl_export int gmssl_version_num(void); +_gmssl_export const char *gmssl_version_str(void); + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/x509.h b/thirdparty/GmSSL-3.1.1/include/gmssl/x509.h new file mode 100644 index 0000000..1b57971 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/x509.h @@ -0,0 +1,16 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_X509_H +#define GMSSL_X509_H + +#include + +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/x509_alg.h b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_alg.h new file mode 100644 index 0000000..e764b3f --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_alg.h @@ -0,0 +1,68 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_X509_ALG_H +#define GMSSL_X509_ALG_H + + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +AlgorithmIdentifier ::= SEQUENCE { + algorithm OBJECT IDENTIFIER, + parameters ANY } +*/ + +const char *x509_digest_algor_name(int oid); +int x509_digest_algor_from_name(const char *name); +int x509_digest_algor_from_der(int *oid, const uint8_t **in, size_t *inlen); +int x509_digest_algor_to_der(int oid, uint8_t **out, size_t *outlen); +int x509_digest_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +const char *x509_encryption_algor_name(int oid); +int x509_encryption_algor_from_name(const char *name); +int x509_encryption_algor_from_der(int *oid, const uint8_t **iv, size_t *ivlen, const uint8_t **in, size_t *inlen); +int x509_encryption_algor_to_der(int oid, const uint8_t *iv, size_t ivlen, uint8_t **out, size_t *outlen); +int x509_encryption_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +const char *x509_signature_algor_name(int oid); +int x509_signature_algor_from_name(const char *name); +int x509_signature_algor_from_der(int *oid, const uint8_t **in, size_t *inlen); +int x509_signature_algor_to_der(int oid, uint8_t **out, size_t *outlen); +int x509_signature_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +const char *x509_public_key_encryption_algor_name(int oid); +int x509_public_key_encryption_algor_from_name(const char *name); +int x509_public_key_encryption_algor_from_der(int *oid, const uint8_t **params, size_t *params_len, const uint8_t **in, size_t *inlen); +int x509_public_key_encryption_algor_to_der(int oid, uint8_t **out, size_t *outlen); +int x509_public_key_encryption_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +const char *x509_public_key_algor_name(int oid); +int x509_public_key_algor_from_name(const char *name); +int x509_public_key_algor_to_der(int oid, int curve, uint8_t **out, size_t *outlen); +int x509_public_key_algor_from_der(int *oid, int *curve_or_null, const uint8_t **in, size_t *inlen); +int x509_public_key_algor_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/x509_cer.h b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_cer.h new file mode 100644 index 0000000..f8d3857 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_cer.h @@ -0,0 +1,390 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_X509_CER_H +#define GMSSL_X509_CER_H + + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +enum X509_Version { + X509_version_v1 = 0, + X509_version_v2 = 1, + X509_version_v3 = 2, +}; + +const char *x509_version_name(int version); +int x509_explicit_version_to_der(int index, int version, uint8_t **out, size_t *outlen); +int x509_explicit_version_from_der(int index, int *version, const uint8_t **in, size_t *inlen); + +/* +Time ::= CHOICE { + utcTime UTCTime, + generalTime GeneralizedTime } +*/ +#define X509_MAX_UTC_TIME 2524607999 // "20491231235959Z" +#define X509_MAX_GENERALIZED_TIME 253402300799 // "99991231235959Z" +int x509_time_to_der(time_t a, uint8_t **out, size_t *outlen); +int x509_time_from_der(time_t *a, const uint8_t **in, size_t *inlen); + +/* +Validity ::= SEQUENCE { + notBefore Time, + notAfter Time } +*/ +#define X509_VALIDITY_MIN_DAYS 1 +#define X509_VALIDITY_MAX_DAYS 3653 +#define X509_VALIDITY_MAX_SECONDS (X509_VALIDITY_MAX_DAYS * 86400) +int x509_validity_add_days(time_t *not_after, time_t not_before, int days); +int x509_validity_to_der(time_t not_before, time_t not_after, uint8_t **out, size_t *outlen); +int x509_validity_from_der(time_t *not_before, time_t *not_after, const uint8_t **in, size_t *inlen); +int x509_validity_check(time_t not_before, time_t not_after, time_t now, int max_secs); +int x509_validity_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +DirectoryString or DirectoryName + +DirectoryName ::= CHOICE { + teletexString TeletexString (SIZE (1..MAX)), + printableString PrintableString (SIZE (1..MAX)), + universalString UniversalString (SIZE (1..MAX)), + utf8String UTF8String (SIZE (1..MAX)), + bmpString BMPString (SIZE (1..MAX)), +} +*/ +int x509_directory_name_check(int tag, const uint8_t *d, size_t dlen); +int x509_directory_name_check_ex(int tag, const uint8_t *d, size_t dlen, size_t minlen, size_t maxlen); +int x509_directory_name_to_der(int tag, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int x509_directory_name_from_der(int *tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int x509_explicit_directory_name_to_der(int index, int tag, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int x509_explicit_directory_name_from_der(int index, int *tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int x509_directory_name_print(FILE *fp, int fmt, int ind, const char *label, int tag, const uint8_t *d, size_t dlen); + +/* +AttributeTypeAndValue ::= SEQUENCE { + type OBJECT IDENTIFIER, + value ANY -- DEFINED BY AttributeType } + +id-at + OID_at_name name DirectoryName 1..ub-name + OID_at_surname surname DirectoryName 1..ub-name + OID_at_given_name givenName DirectoryName 1..ub-name + OID_at_initials initials DirectoryName 1..ub-name + OID_at_generation_qualifier generationQualifier DirectoryName 1..ub-name + OID_at_common_name commonName DirectoryName 1..ub-common-name + OID_at_locality_name localityName DirectoryName 1..ub-locality-name + OID_at_state_or_province_name stateOrProvinceName DirectoryName 1..ub-state-name + OID_at_organization_name organizationName DirectoryName 1..ub-organization-name + OID_at_organizational_unit_name organizationalUnitName DirectoryName 1..ub-organizational-unit-name + OID_at_title title DirectoryName 1..ub-title + OID_at_dn_qualifier dnQualifier PrintableString N/A + OID_at_country_name countryName PrintableString 2..2 + OID_at_serial_number serialNumber PrintableString 1..ub-serial-number + OID_at_pseudonym pseudonym DirectoryName 1..ub-pseudonym + OID_domain_component domainComponent IA5String N/A +*/ +const char *x509_name_type_name(int oid); +int x509_name_type_from_name(const char *name); +int x509_name_type_from_der(int *oid, const uint8_t **in, size_t *inlen); +int x509_name_type_to_der(int oid, uint8_t **out, size_t *outlen); + +#define X509_ub_name 32768 +#define X509_ub_common_name 64 +#define X509_ub_locality_name 128 +#define X509_ub_state_name 128 +#define X509_ub_organization_name 64 +#define X509_ub_organizational_unit_name 64 +#define X509_ub_title 64 +#define X509_ub_serial_number 64 +#define X509_ub_pseudonym 128 + +int x509_attr_type_and_value_check(int oid, int tag, const uint8_t *val, size_t vlen); +int x509_attr_type_and_value_to_der(int oid, int tag, const uint8_t *val, size_t vlen, uint8_t **out, size_t *outlen); +int x509_attr_type_and_value_from_der(int *oid, int *tag, const uint8_t **val, size_t *vlen, const uint8_t **in, size_t *inlen); +int x509_attr_type_and_value_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue +*/ +int x509_rdn_to_der(int oid, int tag, const uint8_t *val, size_t vlen, const uint8_t *more, size_t mlen, uint8_t **out, size_t *outlen); +int x509_rdn_from_der(int *oid, int *tag, const uint8_t **val, size_t *vlen, const uint8_t **more, size_t *mlen, const uint8_t **in, size_t *inlen); +int x509_rdn_check(const uint8_t *d, size_t dlen); +int x509_rdn_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +Name ::= SEQUENCE OF RelativeDistinguishedName +*/ +int x509_name_add_rdn(uint8_t *d, size_t *dlen, size_t maxlen, int oid, int tag, const uint8_t *val, size_t vlen, const uint8_t *more, size_t mlen); +int x509_name_add_country_name(uint8_t *d, size_t *dlen, size_t maxlen, const char val[2] ); // val: PrintableString SIZE(2) +int x509_name_add_state_or_province_name(uint8_t *d, size_t *dlen, size_t maxlen, int tag, const uint8_t *val, size_t vlen); +int x509_name_add_locality_name(uint8_t *d, size_t *dlen, size_t maxlen, int tag, const uint8_t *val, size_t vlen); +int x509_name_add_organization_name(uint8_t *d, size_t *dlen, size_t maxlen, int tag, const uint8_t *val, size_t vlen); +int x509_name_add_organizational_unit_name(uint8_t *d, size_t *dlen, size_t maxlen, int tag, const uint8_t *val, size_t vlen); +int x509_name_add_common_name(uint8_t *d, size_t *dlen, size_t maxlen, int tag, const uint8_t *val, size_t vlen); +int x509_name_add_domain_component(uint8_t *d, size_t *dlen, size_t maxlen, const char *val, size_t vlen); // val: IA5String + +int x509_name_set(uint8_t *d, size_t *dlen, size_t maxlen, + const char country[2], const char *state, const char *locality, + const char *org, const char *org_unit, const char *common_name); + +#define x509_name_to_der(d,dlen,out,outlen) asn1_sequence_to_der(d,dlen,out,outlen) +#define x509_name_from_der(d,dlen,in,inlen) asn1_sequence_from_der(d,dlen,in,inlen) +int x509_name_check(const uint8_t *d, size_t dlen); +int x509_name_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); +int x509_name_get_value_by_type(const uint8_t *d, size_t dlen, int oid, int *tag, const uint8_t **val, size_t *vlen); +int x509_name_get_common_name(const uint8_t *d, size_t dlen, int *tag, const uint8_t **val, size_t *vlen); +int x509_name_equ(const uint8_t *a, size_t alen, const uint8_t *b, size_t blen); + +int x509_names_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +SubjectPublicKeyInfo ::= SEQUENCE { + algorithm AlgorithmIdentifier, + subjectPublicKey BIT STRING } + +algorithm.algorithm = OID_ec_public_key; +algorithm.parameters = OID_sm2; +subjectPublicKey = ECPoint +*/ +#define x509_public_key_info_to_der(key,out,outlen) sm2_public_key_info_to_der(key,out,outlen) +#define x509_public_key_info_from_der(key,in,inlen) sm2_public_key_info_from_der(key,in,inlen) +int x509_public_key_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +Extension ::= SEQUENCE { + extnID OBJECT IDENTIFIER, + critical BOOLEAN DEFAULT FALSE, + extnValue OCTET STRING -- contains the DER encoding of an ASN.1 value + +id-ce: + OID_ce_authority_key_identifier + OID_ce_subject_key_identifier + OID_ce_key_usage + OID_ce_certificate_policies + OID_ce_policy_mappings + OID_ce_subject_alt_name + OID_ce_issuer_alt_name + OID_ce_subject_directory_attributes + OID_ce_basic_constraints + OID_ce_name_constraints + OID_ce_policy_constraints + OID_ce_ext_key_usage + OID_ce_crl_distribution_points + OID_ce_inhibit_any_policy + OID_ce_freshest_crl + OID_netscape_cert_comment +*/ +const char *x509_ext_id_name(int oid); +int x509_ext_id_from_name(const char *name); +int x509_ext_id_from_der(int *oid, uint32_t *nodes, size_t *nodes_count, const uint8_t **in, size_t *inlen); +int x509_ext_id_to_der(int oid, uint8_t **out, size_t *outlen); + +int x509_ext_to_der(int oid, int critical, const uint8_t *val, size_t vlen, uint8_t **out, size_t *outlen); +int x509_ext_from_der(int *oid, uint32_t *nodes, size_t *nodes_cnt, int *critical, const uint8_t **val, size_t *vlen, const uint8_t **in, size_t *inlen); +int x509_ext_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +[3] EXPLICIT SEQUENCE OF Extension + */ +int x509_explicit_exts_to_der(int index, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int x509_explicit_exts_from_der(int index, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +#define x509_exts_to_der(d,dlen,out,outlen) x509_explicit_exts_to_der(3,d,dlen,out,outlen) +#define x509_exts_from_der(d,dlen,in,inlen) x509_explicit_exts_from_der(3,d,dlen,in,inlen) + +int x509_exts_get_ext_by_oid(const uint8_t *d, size_t dlen, int oid, + int *critical, const uint8_t **val, size_t *vlen); +int x509_exts_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +TBSCertificate ::= SEQUENCE { + version [0] EXPLICIT INTEGER DEFAULT v1, + serialNumber INTEGER, + siganture AlgorithmIdentifier, + issuer Name, + validity Validity, + subject Name, + subjectPulbicKeyInfo SubjectPublicKeyInfo, + issuerUniqueID [1] IMPLICIT BIT STRING OPTIONAL, -- If present, must be v2,v3 + subjectUniqueID [2] IMPLICIT BIT STRING OPTIONAL, -- If present, must be v2,v3 + extensions [3] EXPLICIT Extensions OPTIONAL -- If present, must be v3 } +*/ +#define X509_SERIAL_NUMBER_MIN_LEN 1 +#define X509_SERIAL_NUMBER_MAX_LEN 20 +#define X509_UNIQUE_ID_MIN_LEN 32 +#define X509_UNIQUE_ID_MAX_LEN 32 + +int x509_tbs_cert_to_der( + int version, + const uint8_t *serial, size_t serial_len, + int signature_algor, + const uint8_t *issuer, size_t issuer_len, + time_t not_before, time_t not_after, + const uint8_t *subject, size_t subject_len, + const SM2_KEY *subject_public_key, + const uint8_t *issuer_unique_id, size_t issuer_unique_id_len, + const uint8_t *subject_unique_id, size_t subject_unique_id_len, + const uint8_t *exts, size_t exts_len, + uint8_t **out, size_t *outlen); +int x509_tbs_cert_from_der( + int *version, + const uint8_t **serial, size_t *serial_len, + int *signature_algor, + const uint8_t **issuer, size_t *issuer_len, + time_t *not_before, time_t *not_after, + const uint8_t **subject, size_t *subject_len, + SM2_KEY *subject_public_key, + const uint8_t **issuer_unique_id, size_t *issuer_unique_id_len, + const uint8_t **subject_unique_id, size_t *subject_unique_id_len, + const uint8_t **exts, size_t *exts_len, + const uint8_t **in, size_t *inlen); +int x509_tbs_cert_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +Certificate ::= SEQUENCE { + tbsCertificate TBSCertificate, + signatureAlgorithm AlgorithmIdentifier, + signatureValue BIT STRING } +*/ +int x509_certificate_to_der( + const uint8_t *tbs, size_t tbslen, + int signature_algor, + const uint8_t *sig, size_t siglen, + uint8_t **out, size_t *outlen); +int x509_certificate_from_der( + const uint8_t **tbs, size_t *tbslen, + int *signature_algor, + const uint8_t **sig, size_t *siglen, + const uint8_t **in, size_t *inlen); + +int x509_signed_from_der( + const uint8_t **tbs, size_t *tbslen, + int *signature_algor, + const uint8_t **sig, size_t *siglen, + const uint8_t **in, size_t *inlen); +int x509_signed_verify(const uint8_t *a, size_t alen, const SM2_KEY *pub_key, + const char *signer_id, size_t signer_id_len); +int x509_signed_verify_by_ca_cert(const uint8_t *a, size_t alen, const uint8_t *cacert, size_t cacertlen, + const char *signer_id, size_t signer_id_len); + +// x509_cert functions +int x509_cert_sign_to_der( + int version, + const uint8_t *serial, size_t serial_len, + int signature_algor, + const uint8_t *issuer, size_t issuer_len, + time_t not_before, time_t not_after, + const uint8_t *subject, size_t subject_len, + const SM2_KEY *subject_public_key, + const uint8_t *issuer_unique_id, size_t issuer_unique_id_len, + const uint8_t *subject_unique_id, size_t subject_unique_id_len, + const uint8_t *exts, size_t exts_len, + const SM2_KEY *sign_key, const char *signer_id, size_t signer_id_len, + uint8_t **out, size_t *outlen); + +int x509_cert_to_der(const uint8_t *a, size_t alen, uint8_t **out, size_t *outlen); +int x509_cert_from_der(const uint8_t **a, size_t *alen, const uint8_t **in, size_t *inlen); +int x509_cert_to_pem(const uint8_t *a, size_t alen, FILE *fp); +int x509_cert_from_pem(uint8_t *a, size_t *alen, size_t maxlen, FILE *fp); +int x509_cert_from_pem_by_subject(uint8_t *a, size_t *alen, size_t maxlen, const uint8_t *name, size_t namelen, FILE *fp); +int x509_cert_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *a, size_t alen); + +int x509_cert_verify_by_ca_cert(const uint8_t *a, size_t alen, const uint8_t *cacert, size_t cacertlen, + const char *signer_id, size_t signer_id_len); + +int x509_cert_get_details(const uint8_t *a, size_t alen, + int *version, + const uint8_t **serial_number, size_t *serial_number_len, + int *inner_signature_algor, + const uint8_t **issuer, size_t *issuer_len, + time_t *not_before, time_t *not_after, + const uint8_t **subject, size_t *subject_len, + SM2_KEY *subject_public_key, + const uint8_t **issuer_unique_id, size_t *issuer_unique_id_len, + const uint8_t **subject_unique_id, size_t *subject_unique_id_len, + const uint8_t **extensions, size_t *extensions_len, + int *signature_algor, + const uint8_t **signature, size_t *signature_len); + + +typedef enum { + X509_cert_server_auth, + X509_cert_client_auth, + X509_cert_server_key_encipher, + X509_cert_client_key_encipher, + X509_cert_ca, + X509_cert_root_ca, + X509_cert_crl_sign, +} X509_CERT_TYPE; + +int x509_cert_check(const uint8_t *cert, size_t certlen, int cert_type, int *path_len_constraint); + +/* +IssuerAndSerialNumber ::= SEQUENCE { + isser Name, + serialNumber INTEGER } +*/ +int x509_cert_get_issuer_and_serial_number(const uint8_t *a, size_t alen, + const uint8_t **issuer, size_t *issuer_len, + const uint8_t **serial_number, size_t *serial_number_len); +int x509_cert_get_issuer(const uint8_t *a, size_t alen, const uint8_t **name, size_t *namelen); +int x509_cert_get_subject(const uint8_t *a, size_t alen, const uint8_t **subj, size_t *subj_len); +int x509_cert_get_subject_public_key(const uint8_t *a, size_t alen, SM2_KEY *public_key); +int x509_cert_get_exts(const uint8_t *a, size_t alen, const uint8_t **d, size_t *dlen); + +int x509_certs_to_pem(const uint8_t *d, size_t dlen, FILE *fp); +int x509_certs_from_pem(uint8_t *d, size_t *dlen, size_t maxlen, FILE *fp); +int x509_certs_get_count(const uint8_t *d, size_t dlen, size_t *cnt); +int x509_certs_get_cert_by_index(const uint8_t *d, size_t dlen, int index, const uint8_t **cert, size_t *certlen); +int x509_certs_get_cert_by_subject(const uint8_t *d, size_t dlen, const uint8_t *subject, size_t subject_len, const uint8_t **cert, size_t *certlen); +int x509_certs_get_last(const uint8_t *d, size_t dlen, const uint8_t **cert, size_t *certlen); + +int x509_certs_get_cert_by_subject_and_key_identifier(const uint8_t *d, size_t dlen, + const uint8_t *subject, size_t subject_len, + const uint8_t *key_id, size_t key_id_len, + const uint8_t **cert, size_t *certlen); +int x509_certs_get_cert_by_issuer_and_serial_number( + const uint8_t *certs, size_t certs_len, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial, size_t serial_len, + const uint8_t **cert, size_t *cert_len); + +typedef enum { + X509_cert_chain_server, + X509_cert_chain_client, +} X509_CERT_CHAIN_TYPE; + +#define X509_MAX_VERIFY_DEPTH 6 +int x509_certs_verify(const uint8_t *certs, size_t certslen, int certs_type, + const uint8_t *rootcerts, size_t rootcertslen, int depth, int *verify_result); +int x509_certs_verify_tlcp(const uint8_t *certs, size_t certslen, int certs_type, + const uint8_t *rootcerts, size_t rootcertslen, int depth, int *verify_result); +int x509_certs_get_subjects(const uint8_t *certs, size_t certslen, uint8_t *names, size_t *nameslen); +int x509_certs_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +int x509_cert_new_from_file(uint8_t **out, size_t *outlen, const char *file); +int x509_certs_new_from_file(uint8_t **out, size_t *outlen, const char *file); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/x509_crl.h b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_crl.h new file mode 100644 index 0000000..76a9e94 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_crl.h @@ -0,0 +1,309 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + + +#ifndef GMSSL_X509_CRL_H +#define GMSSL_X509_CRL_H + + +#include +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +CRLReason ::= ENUMERATED +*/ +typedef enum { + X509_cr_unspecified = 0, + X509_cr_key_compromise = 1, + X509_cr_ca_compromise = 2 , + X509_cr_affiliation_changed = 3, + X509_cr_superseded = 4, + X509_cr_cessation_of_operation = 5, + X509_cr_certificate_hold = 6, + X509_cr_not_assigned = 7, + X509_cr_remove_from_crl = 8, + X509_cr_privilege_withdrawn = 9, + X509_cr_aa_compromise = 10, +} X509_CRL_REASON; + +const char *x509_crl_reason_name(int reason); +int x509_crl_reason_from_name(int *reason, const char *name); +int x509_crl_reason_to_der(int reason, uint8_t **out, size_t *outlen); +int x509_crl_reason_from_der(int *reason, const uint8_t **in, size_t *inlen); +int x509_implicit_crl_reason_from_der(int index, int *reason, const uint8_t **in, size_t *inlen); + +/* +CRL Entry Extensions: + OID_ce_crl_reasons ENUMERATED non-critical + OID_ce_invalidity_date GeneralizedTime non-critical + OID_ce_certificate_issuer GeneralNames MUST critical +*/ +const char *x509_crl_entry_ext_id_name(int oid); +int x509_crl_entry_ext_id_from_name(const char *name); +int x509_crl_entry_ext_id_to_der(int oid, uint8_t **out, size_t *outlen); +int x509_crl_entry_ext_id_from_der(int *oid, const uint8_t **in, size_t *inlen); + +int x509_crl_entry_ext_to_der(int oid, int critical, const uint8_t *val, size_t vlen, uint8_t **out, size_t *outlen); +int x509_crl_entry_ext_from_der(int *oid, int *critical, const uint8_t **val, size_t *vlen, const uint8_t **in, size_t *inlen); +int x509_crl_entry_ext_critical_check(int oid, int critical); +int x509_crl_entry_ext_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_crl_reason_ext_to_der(int critical, int reason, uint8_t **out, size_t *outlen); +int x509_invalidity_date_ext_to_der(int critical, time_t date, uint8_t **out, size_t *outlen); +int x509_cert_issuer_ext_to_der(int critical, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int x509_crl_entry_ext_from_der_ex(int *oid, int *critical, + int *reason, time_t *invalid_date, const uint8_t **cert_issuer, size_t *cert_issuer_len, + const uint8_t **in, size_t *inlen); + +int x509_crl_entry_exts_to_der( + int reason, time_t invalid_date, const uint8_t *cert_issuer, size_t cert_issuer_len, + uint8_t **out, size_t *outlen); +int x509_crl_entry_exts_from_der( + int *reason, time_t *invalid_date, const uint8_t **cert_issuer, size_t *cert_issuer_len, + const uint8_t **in, size_t *inlen); +int x509_crl_entry_exts_get(const uint8_t *d, size_t dlen, + int *reason, time_t *invalid_date, const uint8_t **cert_issuer, size_t *cert_issuer_len); +int x509_crl_entry_exts_check(const uint8_t *d, size_t dlen); +int x509_crl_entry_exts_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +RevokedCertificate ::= SEQUENCE { + userCertificate CertificateSerialNumber, + revocationDate Time, + crlEntryExtensions Extensions OPTIONAL } +*/ +int x509_revoked_cert_to_der( + const uint8_t *serial, size_t serial_len, time_t revoke_date, + const uint8_t *crl_entry_exts, size_t crl_entry_exts_len, + uint8_t **out, size_t *outlen); +int x509_revoked_cert_from_der( + const uint8_t **serial, size_t *serial_len, time_t *revoke_date, + const uint8_t **crl_entry_exts, size_t *crl_entry_exts_len, + const uint8_t **in, size_t *inlen); +int x509_revoked_cert_to_der_ex( + const uint8_t *serial, size_t serial_len, time_t revoke_date, + int reason, time_t invalid_date, const uint8_t *cert_issuer, size_t cert_issuer_len, + uint8_t **out, size_t *outlen); +int x509_revoked_cert_from_der_ex( + const uint8_t **serial, size_t *serial_len, time_t *revoke_date, + int *reason, time_t *invalid_date, const uint8_t **cert_issuer, size_t *cert_issuer_len, + const uint8_t **in, size_t *inlen); +int x509_revoked_cert_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_cert_revoke_to_der(const uint8_t *cert, size_t certlen, + time_t revoke_date, int reason, time_t invalid_date, const uint8_t *cert_issuer, size_t cert_issuer_len, + uint8_t **out, size_t *outlen); + +/* +RevokedCertificates ::= SEQUENCE OF RevokedCertificate +*/ +int x509_revoked_certs_find_revoked_cert_by_serial_number(const uint8_t *d, size_t dlen, + const uint8_t *serial, size_t serial_len, time_t *revoke_date, + const uint8_t **crl_entry_exts, size_t *crl_entry_exts_len); +int x509_revoked_certs_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +CRL Extensions: + OID_ce_authority_key_identifier AuthorityKeyIdentifier critical or non-critical + OID_ce_issuer_alt_name GeneralNames SHOULD non-critical + OID_ce_crl_number INTEGER MUST non-critical + OID_ce_delta_crl_indicator INTEGER MUST critical + OID_ce_issuing_distribution_point IssuingDistributionPoint critical + OID_ce_freshest_crl CRLDistributionPoints MUST non-critical + OID_pe_authority_info_access AccessDescriptions MUST non-critical +*/ +const char *x509_crl_ext_id_name(int oid); +int x509_crl_ext_id_from_name(const char *name); +int x509_crl_ext_id_to_der(int oid, uint8_t **out, size_t *outlen); +int x509_crl_ext_id_from_der(int *oid, const uint8_t **in, size_t *inlen); +int x509_crl_ext_id_from_der_ex(int *oid, uint32_t *nodes, size_t *nodes_cnt, const uint8_t **in, size_t *inlen); + +/* +IssuingDistributionPoint ::= SEQUENCE { + distributionPoint [0] EXPLICIT DistributionPointName OPTIONAL, + onlyContainsUserCerts [1] IMPLICIT BOOLEAN DEFAULT FALSE, + onlyContainsCACerts [2] IMPLICIT BOOLEAN DEFAULT FALSE, + onlySomeReasons [3] IMPLICIT ReasonFlags OPTIONAL, + indirectCRL [4] IMPLICIT BOOLEAN DEFAULT FALSE, + onlyContainsAttributeCerts [5] IMPLICIT BOOLEAN DEFAULT FALSE } +*/ +int x509_issuing_distribution_point_to_der( + const char *dist_point_uri, size_t dist_point_uri_len, + int only_contains_user_certs, + int only_contains_ca_certs, + int only_some_reasons, + int indirect_crl, + int only_contains_attr_certs, + uint8_t **out, size_t *outlen); +int x509_issuing_distribution_point_from_der( + int *dist_point_choice, const uint8_t **dist_point, size_t *dist_point_len, + int *only_contains_user_certs, + int *only_contains_ca_certs, + int *only_some_reasons, + int *indirect_crl, + int *only_contains_attr_certs, + const uint8_t **in, size_t *inlen); +int x509_issuing_distribution_point_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_crl_ext_to_der(int oid, int critical, const uint8_t *val, size_t vlen, uint8_t **out, size_t *outlen); +int x509_crl_ext_from_der_ex(int *oid, uint32_t *nodes, size_t *nodes_cnt, + int *critical, const uint8_t **val, size_t *vlen, + const uint8_t **in, size_t *inlen); +int x509_crl_ext_critical_check(int oid, int critical); +int x509_crl_ext_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +int x509_crl_exts_add_authority_key_identifier( + uint8_t *exts, size_t *extslen, size_t maxlen, + int critical, + const uint8_t *keyid, size_t keyid_len, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial, size_t serial_len); +int x509_crl_exts_add_default_authority_key_identifier(uint8_t *exts, size_t *extslen, size_t maxlen, + const SM2_KEY *public_key); +int x509_crl_exts_add_issuer_alt_name( + uint8_t *exts, size_t *extslen, size_t maxlen, + int critical, + const uint8_t *d, size_t dlen); +int x509_crl_exts_add_crl_number_ex( + uint8_t *exts, size_t *extslen, size_t maxlen, + int oid, int critical, int num); +int x509_crl_exts_add_crl_number( + uint8_t *exts, size_t *extslen, size_t maxlen, + int critical, + int num); +int x509_crl_exts_add_delta_crl_indicator( + uint8_t *exts, size_t *extslen, size_t maxlen, + int critical, + int num); +int x509_crl_exts_add_issuing_distribution_point( + uint8_t *exts, size_t *extslen, size_t maxlen, + int critical, + const char *dist_point_uri, size_t dist_point_uri_len, + int only_contains_user_certs, + int only_contains_ca_certs, + int only_some_reasons, + int indirect_crl, + int only_contains_attr_certs); +int x509_crl_exts_add_freshest_crl( + uint8_t *exts, size_t *extslen, size_t maxlen, int critical, + const char *http_uri, size_t http_urilen, + const char *ldap_uri, size_t ldap_urilen); +int x509_crl_exts_add_authority_info_acess( + uint8_t *exts, size_t *extslen, size_t maxlen, int critical, + const char *ca_issuers_uri, size_t ca_issuers_urilen, + const char *ocsp_uri, size_t ocsp_urilen); + +#define x509_crl_exts_to_der(d,dlen,out,outlen) x509_explicit_exts_to_der(0,d,dlen,out,outlen) +#define x509_crl_exts_from_der(d,dlen,in,inlen) x509_explicit_exts_from_der(0,d,dlen,in,inlen) +int x509_crl_exts_check(const uint8_t *d, size_t dlen); +int x509_crl_exts_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +TBSCertList ::= SEQUENCE { + version INTEGER OPTIONAL, -- if present, MUST be v2 + signature AlgorithmIdentifier, + issuer Name, + thisUpdate Time, + nextUpdate Time OPTIONAL, + revokedCertificates RevokedCertificates OPTIONAL, + crlExtensions [0] EXPLICIT Extensions OPTIONAL, -- if present, MUST be v2 } +*/ +int x509_tbs_crl_to_der( + int version, + int signature_algor, + const uint8_t *issuer, size_t issuer_len, + time_t this_update, + time_t next_update, + const uint8_t *revoked_certs, size_t revoked_certs_len, + const uint8_t *exts, size_t exts_len, + uint8_t **out, size_t *outlen); +int x509_tbs_crl_from_der( + int *version, + int *signature_algor, + const uint8_t **issuer, size_t *issuer_len, + time_t *this_update, + time_t *next_update, + const uint8_t **revoked_certs, size_t *revoked_certs_len, + const uint8_t **exts, size_t *exts_len, + const uint8_t **in, size_t *inlen); +int x509_tbs_crl_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +CertificateList ::= SEQUENCE { + tbsCertList TBSCertList, + signatureAlgorithm AlgorithmIdentifier, + signatureValue BIT STRING } +*/ +int x509_crl_to_der(const uint8_t *a, size_t alen, uint8_t **out, size_t *outlen); +int x509_crl_from_der(const uint8_t **a, size_t *alen, const uint8_t **in, size_t *inlen); +int x509_crl_to_pem(const uint8_t *a, size_t alen, FILE *fp); +int x509_crl_from_pem(uint8_t *a, size_t *alen, size_t maxlen, FILE *fp); +int x509_crl_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *a, size_t alen); + + +int x509_crl_sign_to_der( + int version, int sig_alg, + const uint8_t *issuer, size_t issuer_len, + time_t this_update, time_t next_update, + const uint8_t *revoked_certs, size_t revoked_certs_len, + const uint8_t *crl_exts, size_t crl_exts_len, + const SM2_KEY *sign_key, const char *signer_id, size_t signer_id_len, + uint8_t **out, size_t *outlen); +int x509_crl_from_der_ex( + int *version, + int *inner_sig_alg, + const uint8_t **issuer, size_t *issuer_len, + time_t *this_update, time_t *next_update, + const uint8_t **revoked_certs, size_t *revoked_certs_len, + const uint8_t **exts, size_t *exts_len, + int *sig_alg, const uint8_t **sig, size_t *siglen, + const uint8_t **in, size_t *inlen); +int x509_crl_check(const uint8_t *a, size_t alen, time_t now); +int x509_crl_verify(const uint8_t *a, size_t alen, + const SM2_KEY *sign_pub_key, const char *signer_id, size_t signer_id_len); +int x509_crl_verify_by_ca_cert(const uint8_t *a, size_t alen, const uint8_t *cacert, size_t cacertlen, + const char *signer_id, size_t signer_id_len); +int x509_crl_get_details(const uint8_t *crl, size_t crl_len, + int *version, + int *inner_sig_alg, + const uint8_t **issuer, size_t *issuer_len, + time_t *this_update, + time_t *next_update, + const uint8_t **revoked_certs, size_t *revoked_certs_len, + const uint8_t **exts, size_t *exts_len, + int *signature_algor, + const uint8_t **sig, size_t *siglen); +int x509_crl_get_issuer(const uint8_t *crl, size_t crl_len, + const uint8_t **issuer, size_t *issuer_len); +int x509_crl_get_revoked_certs(const uint8_t *a, size_t alen, const uint8_t **d, size_t *dlen); +int x509_crl_find_revoked_cert_by_serial_number(const uint8_t *a, size_t alen, + const uint8_t *serial, size_t serial_len, time_t *revoke_date, + const uint8_t **entry_exts, size_t *entry_exts_len); + +int x509_crls_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_crl_new_from_uri(uint8_t **crl, size_t *crl_len, const char *uri, size_t urilen); +int x509_crl_new_from_cert(uint8_t **crl, size_t *crl_len, const uint8_t *cert, size_t certlen); +int x509_cert_check_crl(const uint8_t *cert, size_t certlen, const uint8_t *cacert, size_t cacertlen, + const char *ca_signer_id, size_t ca_signer_id_len); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/x509_ext.h b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_ext.h new file mode 100644 index 0000000..0765fd8 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_ext.h @@ -0,0 +1,641 @@ +/* + * Copyright 2014-2023 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_X509_EXT_H +#define GMSSL_X509_EXT_H + + +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +enum { + X509_non_critical = 0, + X509_critical = 1, +}; + +/* +Extensions: + + 1. AuthorityKeyIdentifier SEQUENCE AuthorityKeyIdentifier MUST non-critical + 2. SubjectKeyIdentifier OCTET STRING MUST non-critical + 3. KeyUsage BIT STRING SHOULD critical + 4. CertificatePolicies SEQUENCE OF SEQUENCE CertificatePolicies + 5. PolicyMappings SEQUENCE OF SEQUENCE PolicyMappings SHOULD critical + 6. SubjectAltName SEQUENCE OF SEQUENCE GeneralNames SHOULD non-critical + 7. IssuerAltName SEQUENCE OF SEQUENCE GeneralNames SHOULD non-critical + 8. SubjectDirectoryAttributes SEQUENCE OF SEQUENCE Attributes MUST non-critical + 9. BasicConstraints SEQUENCE BasicConstraints CA: MUST critical, End-entity: MAY critical or non-critical + 10. NameConstraints SEQUENCE NameConstraints + 11. PolicyConstraints SEQUENCE PolicyConstraints MUST critical + 12. ExtKeyUsageSyntax SEQUENCE OF OBJECT IDENTIFIER MAY critical or non-critical + 13. CRLDistributionPoints SEQUENCE OF SEQUENCE DistributionPoints + 14. InhibitAnyPolicy INTEGER MUST critical + 15. FreshestCRL SEQUENCE OF SEQUENCE DistributionPoints MUST non-critical +*/ + +int x509_exts_add_authority_key_identifier(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, + const uint8_t *keyid, size_t keyid_len, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial, size_t serial_len); +int x509_exts_add_default_authority_key_identifier(uint8_t *exts, size_t *extslen, size_t maxlen, + const SM2_KEY *public_key); +int x509_exts_add_subject_key_identifier(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const uint8_t *d, size_t dlen); +int x509_exts_add_subject_key_identifier_ex(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const SM2_KEY *subject_key); +int x509_exts_add_key_usage(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, int bits); +int x509_exts_add_certificate_policies(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const uint8_t *d, size_t dlen); +int x509_exts_add_policy_mappings(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const uint8_t *d, size_t dlen); +int x509_exts_add_subject_alt_name(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const uint8_t *d, size_t dlen); +int x509_exts_add_issuer_alt_name(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const uint8_t *d, size_t dlen); +int x509_exts_add_subject_directory_attributes(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const uint8_t *d, size_t dlen); +int x509_exts_add_name_constraints(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, + const uint8_t *permitted_subtrees, size_t permitted_subtrees_len, + const uint8_t *excluded_subtrees, size_t excluded_subtrees_len); +int x509_exts_add_policy_constraints(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, + int require_explicit_policy, int inhibit_policy_mapping); +int x509_exts_add_basic_constraints(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, int ca, int path_len_constraint); +int x509_exts_add_ext_key_usage(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const int *key_purposes, size_t key_purposes_cnt); +int x509_exts_add_crl_distribution_points_ex(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, int oid, + const char *http_uri, size_t http_urilen, const char *ldap_uri, size_t ldap_urilen); +int x509_exts_add_crl_distribution_points(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, + const char *http_uri, size_t http_urilen, const char *ldap_uri, size_t ldap_urilen); +int x509_exts_add_inhibit_any_policy(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, int skip_certs); +int x509_exts_add_freshest_crl(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, const uint8_t *d, size_t dlen); +int x509_exts_add_authority_info_access(uint8_t *exts, size_t *extslen, size_t maxlen, int critical, + const char *ca_issuers_uri, size_t ca_issuers_urilen, // ca_issuers_uri is the URI (http://examaple.com/subCA.crt) of DER-encoded CA cert + const char *ocsp_uri, size_t ocsp_urilen); + +int x509_exts_add_sequence(uint8_t *exts, size_t *extslen, size_t maxlen, + int oid, int critical, const uint8_t *d, size_t dlen); + +/* +OtherName ::= SEQUENCE { + type-id OBJECT IDENTIFIER, -- known oid from x509_rdn_oid such as OID_at_common_name, or oid nodes + value [0] EXPLICIT ANY DEFINED BY type-id } +*/ +int x509_other_name_to_der( + const uint32_t *nodes, size_t nodes_count, + const uint8_t *value, size_t value_len, + uint8_t **out, size_t *outlen); +int x509_other_name_from_der( + uint32_t *nodes, size_t *nodes_count, + const uint8_t **value, size_t *valuelen, + const uint8_t **in, size_t *inlen); +int x509_other_name_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +EDIPartyName ::= SEQUENCE { + nameAssigner [0] EXPLICIT DirectoryString OPTIONAL, + partyName [1] EXPLICIT DirectoryString } +*/ +int x509_edi_party_name_to_der( + int assigner_tag, const uint8_t *assigner, size_t assigner_len, + int party_name_tag, const uint8_t *party_name, size_t party_name_len, + uint8_t **out, size_t *outlen); +int x509_edi_party_name_from_der( + int *assigner_tag, const uint8_t **assigner, size_t *assigner_len, + int *party_name_tag, const uint8_t **party_name, size_t *party_name_len, + const uint8_t **in, size_t *inlen); +int x509_edi_party_name_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +GeneralName ::= CHOICE { + otherName [0] IMPLICIT OtherName, -- Only in GeneralName + rfc822Name [1] IMPLICIT IA5String, + dNSName [2] IMPLICIT IA5String, + x400Address [3] IMPLICIT ORAddress, + directoryName [4] IMPLICIT Name, -- SEQENCE OF + ediPartyName [5] IMPLICIT EDIPartyName, -- Only in GeneralName + uniformResourceIdentifier [6] IMPLICIT IA5String, + iPAddress [7] IMPLICIT OCTET STRING, -- 4 bytes or string? + registeredID [8] IMPLICIT OBJECT IDENTIFIER } +*/ +typedef enum { + X509_gn_other_name = 0, + X509_gn_rfc822_name = 1, + X509_gn_dns_name = 2, + X509_gn_x400_address = 3, + X509_gn_directory_name = 4, + X509_gn_edi_party_name = 5, + X509_gn_uniform_resource_identifier = 6, + X509_gn_ip_address = 7, + X509_gn_registered_id = 8, +} X509_GENERAL_NAME_CHOICE; + +int x509_general_name_to_der(int choice, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int x509_general_name_from_der(int *choice, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int x509_general_name_print(FILE *fp, int fmt, int ind, const char *label, int choice, const uint8_t *d, size_t dlen); + +/* +GeneralNames ::= SEQUENCE OF GeneralName +*/ +#define x509_general_names_to_der(d,dlen,out,outlen) asn1_sequence_to_der(d,dlen,out,outlen) +#define x509_general_names_from_der(d,dlen,in,inlen) asn1_sequence_from_der(d,dlen,in,inlen) +int x509_general_names_add_general_name(uint8_t *gns, size_t *gnslen, size_t maxlen, + int choice, const uint8_t *d, size_t dlen); +int x509_general_names_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_general_names_add_other_name(uint8_t *gns, size_t *gnslen, size_t maxlen, + const uint32_t *nodes, size_t nodes_count, + const uint8_t *value, size_t value_len); +#define x509_general_names_add_rfc822_name(a,alen,maxlen,s) x509_general_names_add_general_name(a,alen,maxlen,X509_gn_rfc822_name,(uint8_t*)s,strlen(s)) +#define x509_general_names_add_dns_name(a,alen,maxlen,s) x509_general_names_add_general_name(a,alen,maxlen,X509_gn_dns_name,(uint8_t*)s,strlen(s)) +#define x509_general_names_add_x400_address(a,alen,maxlen,d,dlen) x509_general_names_add_general_name(a,alen,maxlen,X509_gn_x400_address,d,dlen) +#define x509_general_names_add_directory_name(a,alen,maxlen,d,dlen) x509_general_names_add_general_name(a,alen,maxlen,X509_gn_directory_name,d,dlen) +int x509_general_names_add_edi_party_name(uint8_t *gns, size_t *gnslen, size_t maxlen, + int assigner_tag, const uint8_t *assigner, size_t assigner_len, + int party_name_tag, const uint8_t *party_name, size_t party_name_len); +#define x509_general_names_add_uniform_resource_identifier(a,alen,maxlen,s) x509_general_names_add_general_name(a,alen,maxlen,X509_gn_uniform_resource_identifier,(uint8_t*)s,strlen(s)) +#define x509_general_names_add_ip_address(a,alen,maxlen,s) x509_general_names_add_general_name(a,alen,maxlen,X509_gn_ip_address,(uint8_t*)s,strlen(s)) +int x509_general_names_add_registered_id(uint8_t *gns, size_t *gnslen, size_t maxlen, + const uint32_t *nodes, size_t nodes_cnt); + +int x509_uri_as_general_names_to_der_ex(int tag, const char *uri, size_t urilen, uint8_t **out, size_t *outlen); +#define x509_uri_as_general_names_to_der(uri,urilen,out,outlen) x509_uri_as_general_names_to_der_ex(ASN1_TAG_SEQUENCE,uri,urilen,out,outlen) + +/* +AuthorityKeyIdentifier ::= SEQUENCE { + keyIdentifier [0] IMPLICIT OCTET STRING OPTIONAL, + authorityCertIssuer [1] IMPLICIT GeneralNames OPTIONAL, + authorityCertSerialNumber [2] IMPLICIT INTEGER OPTIONAL } +*/ +int x509_authority_key_identifier_to_der( + const uint8_t *keyid, size_t keyid_len, + const uint8_t *issuer, size_t issuer_len, + const uint8_t *serial, size_t serial_len, + uint8_t **out, size_t *outlen); +int x509_authority_key_identifier_from_der( + const uint8_t **keyid, size_t *keyid_len, + const uint8_t **issuer, size_t *issuer_len, + const uint8_t **serial, size_t *serial_len, + const uint8_t **in, size_t *inlen); +int x509_authority_key_identifier_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +SubjectKeyIdentifier ::= OCTET STRING +*/ +#define X509_SUBJECT_KEY_IDENTIFIER_MIN_LEN 16 +#define X509_SUBJECT_KEY_IDENTIFIER_MAX_LEN 64 + +/* +KeyUsage ::= BIT STRING { + digitalSignature (0), + nonRepudiation (1), -- recent renamed contentCommitment + keyEncipherment (2), + dataEncipherment (3), + keyAgreement (4), + keyCertSign (5), + cRLSign (6), + encipherOnly (7), + decipherOnly (8) } +*/ +#define X509_KU_DIGITAL_SIGNATURE (1 << 0) +#define X509_KU_NON_REPUDIATION (1 << 1) +#define X509_KU_KEY_ENCIPHERMENT (1 << 2) +#define X509_KU_DATA_ENCIPHERMENT (1 << 3) +#define X509_KU_KEY_AGREEMENT (1 << 4) +#define X509_KU_KEY_CERT_SIGN (1 << 5) +#define X509_KU_CRL_SIGN (1 << 6) +#define X509_KU_ENCIPHER_ONLY (1 << 7) +#define X509_KU_DECIPHER_ONLY (1 << 8) + +const char *x509_key_usage_name(int flag); +int x509_key_usage_from_name(int *flag, const char *name); +#define x509_key_usage_to_der(bits,out,outlen) asn1_bits_to_der(bits,out,outlen) +#define x509_key_usage_from_der(bits,in,inlen) asn1_bits_from_der(bits,in,inlen) +int x509_key_usage_check(int bits, int cert_type); +int x509_key_usage_print(FILE *fp, int fmt, int ind, const char *label, int bits); + +/* +DisplayText ::= CHOICE { + ia5String IA5String (SIZE (1..200)), + visibleString VisibleString (SIZE (1..200)), + bmpString BMPString (SIZE (1..200)), + utf8String UTF8String (SIZE (1..200)) +} +*/ +#define X509_DISPLAY_TEXT_MIN_LEN 1 +#define X509_DISPLAY_TEXT_MAX_LEN 200 + +int x509_display_text_check(int tag, const uint8_t *d, size_t dlen); +int x509_display_text_to_der(int tag, const uint8_t *d, size_t dlen, uint8_t **out, size_t *outlen); +int x509_display_text_from_der(int *tag, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int x509_display_text_print(FILE *fp, int fmt, int ind, const char *label, int tag, const uint8_t *d, size_t dlen); + +/* +NoticeReference ::= SEQUENCE { + organization DisplayText, + noticeNumbers SEQUENCE OF INTEGER } + +UserNotice ::= SEQUENCE { + noticeRef NoticeReference OPTIONAL, + explicitText DisplayText OPTIONAL } +*/ +#define X509_MAX_NOTICE_NUMBERS 32 + +int x509_notice_reference_to_der( + int org_tag, const uint8_t *org, size_t org_len, + const int *notice_numbers, size_t notice_numbers_cnt, + uint8_t **out, size_t *outlen); +int x509_notice_reference_from_der( + int *org_tag, const uint8_t **org, size_t *org_len, + int *notice_numbers, size_t *notice_numbers_cnt, size_t max_notice_numbers, + const uint8_t **in, size_t *inlen); +int x509_notice_reference_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_user_notice_to_der( + int notice_ref_org_tag, const uint8_t *notice_ref_org, size_t notice_ref_org_len, + const int *notice_ref_notice_numbers, size_t notice_ref_notice_numbers_cnt, + int explicit_text_tag, const uint8_t *explicit_text, size_t explicit_text_len, + uint8_t **out, size_t *outlen); +int x509_user_notice_from_der( + int *notice_ref_org_tag, const uint8_t **notice_ref_org, size_t *notice_ref_org_len, + int *notice_ref_notice_numbers, size_t *notice_ref_notice_numbers_cnt, size_t max_notice_ref_notice_numbers, + int *explicit_text_tag, const uint8_t **explicit_text, size_t *explicit_text_len, + const uint8_t **in, size_t *inlen); +int x509_user_notice_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +PolicyQualifierInfo ::= SEQUENCE { + policyQualifierId PolicyQualifierId, + qualifier ANY DEFINED BY policyQualifierId } + +id-qt + OID_qt_cps + OID_qt_unotice + + switch(policyQualifierId) + case id-qt-cps : qualifier ::= IA5String + case id-qt-unotice : qualifier ::= UserNotice +*/ +const char *x509_qualifier_id_name(int oid); +int x509_qualifier_id_from_name(const char *name); +int x509_qualifier_id_from_der(int *oid, const uint8_t **in, size_t *inlen); +int x509_qualifier_id_to_der(int oid, uint8_t **out, size_t *outlen); + +int x509_policy_qualifier_info_to_der( + int oid, + const uint8_t *qualifier, size_t qualifier_len, + uint8_t **out, size_t *outlen); +int x509_policy_qualifier_info_from_der( + int *oid, + const uint8_t **qualifier, size_t *qualifier_len, + const uint8_t **in, size_t *inlen); +int x509_policy_qualifier_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +#define x509_policy_qualifier_infos_to_der(d,dlen,out,outlen) asn1_sequence_to_der(d,dlen,out,outlen) +#define x509_policy_qualifier_infos_from_der(d,dlen,in,ineln) asn1_sequence_from_der(d,dlen,in,inlen) +int x509_policy_qualifier_infos_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +PolicyInformation ::= SEQUENCE { + policyIdentifier CertPolicyId, + policyQualifiers SEQUENCE SIZE (1..MAX) OF PolicyQualifierInfo OPTIONAL } + +CertPolicyId ::= OBJECT IDENTIFIER -- undefined + + OID_any_policy +*/ +char *x509_cert_policy_id_name(int oid); +int x509_cert_policy_id_from_name(const char *name); +int x509_cert_policy_id_from_der(int *oid, uint32_t *nodes, size_t *nodes_cnt, const uint8_t **in, size_t *inlen); +int x509_cert_policy_id_to_der(int oid, const uint32_t *nodes, size_t nodes_cnt, uint8_t **out, size_t *outlen); + +int x509_policy_information_to_der( + int policy_oid, const uint32_t *policy_nodes, size_t policy_nodes_cnt, + const uint8_t *qualifiers, size_t qualifiers_len, + uint8_t **out, size_t *outlen); +int x509_policy_information_from_der( + int *policy_oid, uint32_t *policy_nodes, size_t *policy_nodes_cnt, + const uint8_t **qualifiers, size_t *qualifiers_len, + const uint8_t **in, size_t *inlen); +int x509_policy_information_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +CertificatePolicies ::= SEQUENCE SIZE (1..MAX) OF PolicyInformation +*/ +int x509_certificate_policies_add_policy_information(uint8_t *d, size_t *dlen, size_t maxlen, + int policy_oid, const uint32_t *policy_nodes, size_t policy_nodes_cnt, + const uint8_t *qualifiers, size_t qualifiers_len); +int x509_certificate_policies_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); +#define x509_certificate_policies_to_der(d,dlen,out,outlen) asn1_sequence_to_der(d,dlen,out,outlen) +#define x509_certificate_policies_from_der(d,dlen,in,inlen) asn1_sequence_from_der(d,dlen,in,inlen) + +/* +PolicyMapping ::= SEQUENCE { + issuerDomainPolicy CertPolicyId, -- id-anyPolicy or other undefined + subjectDomainPolicy CertPolicyId } +*/ +int x509_policy_mapping_to_der( + int issuer_policy_oid, const uint32_t *issuer_policy_nodes, size_t issuer_policy_nodes_cnt, + int subject_policy_oid, const uint32_t *subject_policy_nodes, size_t subject_policy_nodes_cnt, + uint8_t **out, size_t *outlen); +int x509_policy_mapping_from_der( + int *issuer_policy_oid, uint32_t *issuer_policy_nodes, size_t *issuer_policy_nodes_cnt, + int *subject_policy_oid, uint32_t *subject_policy_nodes, size_t *subject_policy_nodes_cnt, + const uint8_t **in, size_t *inlen); +int x509_policy_mapping_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +PolicyMappings ::= SEQUENCE OF PolicyMapping +*/ +int x509_policy_mappings_add_policy_mapping(uint8_t *d, size_t *dlen, size_t maxlen, + int issuer_policy_oid, const uint32_t *issuer_policy_nodes, size_t issuer_policy_nodes_cnt, + int subject_policy_oid, const uint32_t *subject_policy_nodes, size_t subject_policy_nodes_cnt); +int x509_policy_mappings_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); +#define x509_policy_mappings_to_der(d,dlen,out,outlen) asn1_sequence_to_der(d,dlen,out,outlen) +#define x509_policy_mappings_from_der(d,dlen,in,inlen) asn1_sequence_from_der(d,dlen,in,inlen) + +/* +SubjectAltName ::= GeneralNames +*/ +#define x509_subject_alt_name_print(fp,fmt,ind,label,d,dlen) x509_general_names_print(fp,fmt,ind,label,d,dlen) + +/* +IssuerAltName ::= GeneralNames +*/ +#define x509_issuer_alt_name_print(fp,fmt,ind,label,d,dlen) x509_general_names_print(fp,fmt,ind,label,d,dlen) + +/* +SubjectDirectoryAttributes ::= SEQUENCE OF Attribute + +Attribute ::= SEQUENCE { + type OBJECT IDENTIFIER, + values SET OF ANY } +*/ +int x509_attribute_to_der( + const uint32_t *nodes, size_t nodes_cnt, + const uint8_t *values, size_t values_len, + uint8_t **out, size_t *outlen); +int x509_attribute_from_der( + int *oid, uint32_t *nodes, size_t *nodes_cnt, + const uint8_t **values, size_t *values_len, + const uint8_t **in, size_t *inlen); +int x509_attribute_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_attributes_add_attribute(uint8_t *d, size_t *dlen, size_t maxlen, + const uint32_t *nodes, size_t nodes_cnt, + const uint8_t *values, size_t values_len); +int x509_attributes_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); +#define x509_attributes_to_der(d,dlen,out,outlen) asn1_sequence_to_der(d,dlen,out,outlen) +#define x509_attributes_from_der(d,dlen,in,inlen) asn1_sequence_from_der(d,dlen,in,inlen) + +/* +BasicConstraints ::= SEQUENCE { + cA BOOLEAN DEFAULT FALSE, + pathLenConstraint INTEGER (0..MAX) OPTIONAL } +*/ +#define X509_MAX_PATH_LEN_CONSTRAINT 6 +int x509_basic_constraints_to_der(int ca, int path_len_cons, uint8_t **out, size_t *outlen); +int x509_basic_constraints_from_der(int *ca, int *path_len_cons, const uint8_t **in, size_t *inlen); +int x509_basic_constraints_check(int ca, int path_len_cons, int cert_type); +int x509_basic_constraints_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +GeneralSubtree ::= SEQUENCE { + base GeneralName, + minimum [0] IMPLICIT BaseDistance DEFAULT 0, + maximum [1] IMPLICIT BaseDistance OPTIONAL } + +BaseDistance ::= INTEGER (0..MAX) +*/ +int x509_general_subtree_to_der( + int base_choice, const uint8_t *base, size_t base_len, + int minimum, int maximum, + uint8_t **out, size_t *outlen); +int x509_general_subtree_from_der( + int *base_choice, const uint8_t **base, size_t *base_len, + int *minimum, int *maximum, + const uint8_t **in, size_t *inlen); +int x509_general_subtree_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +GeneralSubtrees ::= SEQUENCE SIZE (1..MAX) OF GeneralSubtree +*/ +int x509_general_subtrees_add_general_subtree(uint8_t *d, size_t *dlen, size_t maxlen, + int base_choice, const uint8_t *base, size_t base_len, + int minimum, int maximum); +int x509_general_subtrees_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); +#define x509_general_subtrees_to_der(d,dlen,out,outlen) asn1_sequence_to_der(d,dlen,out,outlen) +#define x509_general_subtrees_from_der(d,dlen,in,inlen) asn1_sequence_from_der(d,dlen,in,inlen) + +/* +NameConstraints ::= SEQUENCE { + permittedSubtrees [0] GeneralSubtrees OPTIONAL, + excludedSubtrees [1] GeneralSubtrees OPTIONAL } +*/ +int x509_name_constraints_to_der( + const uint8_t *permitted_subtrees, size_t permitted_subtrees_len, + const uint8_t *excluded_subtrees, size_t excluded_subtrees_len, + uint8_t **out, size_t *outlen); +int x509_name_constraints_from_der( + const uint8_t **permitted_subtrees, size_t *permitted_subtrees_len, + const uint8_t **excluded_subtrees, size_t *excluded_subtrees_len, + const uint8_t **in, size_t *inlen); +int x509_name_constraints_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +PolicyConstraints ::= SEQUENCE { + requireExplicitPolicy [0] IMPLICIT SkipCerts OPTIONAL, + inhibitPolicyMapping [1] IMPLICIT SkipCerts OPTIONAL +} + +SkipCerts ::= INTEGER (0..MAX) +*/ +int x509_policy_constraints_to_der(int require_explicit_policy, int inhibit_policy_mapping, uint8_t **out, size_t *outlen); +int x509_policy_constraints_from_der(int *require_explicit_policy, int *inhibit_policy_mapping, const uint8_t **in, size_t *inlen); +int x509_policy_constraints_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId + +KeyPurposeId: + OID_any_extended_key_usage + id-kp + OID_kp_server_auth + OID_kp_client_auth + OID_kp_code_signing + OID_kp_email_protection + OID_kp_time_stamping + OID_kp_ocsp_signing +*/ +#define X509_MAX_KEY_PURPOSES 7 +const char *x509_key_purpose_name(int oid); +const char *x509_key_purpose_text(int oid); +int x509_key_purpose_from_name(const char *name); +int x509_key_purpose_from_der(int *oid, const uint8_t **in, size_t *inlen); +int x509_key_purpose_to_der(int oid, uint8_t **out, size_t *outlen); + +int x509_ext_key_usage_to_der(const int *oids, size_t oids_cnt, uint8_t **out, size_t *outlen); +int x509_ext_key_usage_from_der(int *oids, size_t *oids_cnt, size_t max_cnt, const uint8_t **in, size_t *inlen); +int x509_ext_key_usage_check(const int *oids, size_t oids_cnt, int cert_type); +int x509_ext_key_usage_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +ReasonFlags ::= BIT STRING { + unused (0), + keyCompromise (1), + cACompromise (2), + affiliationChanged (3), + superseded (4), + cessationOfOperation (5), + certificateHold (6), + privilegeWithdrawn (7), + aACompromise (8) } +*/ +#define X509_RF_UNUSED (1 << 0) +#define X509_RF_KEY_COMPROMISE (1 << 1) +#define X509_RF_CA_COMPROMISE (1 << 2) +#define X509_RF_AFFILIATION_CHANGED (1 << 3) +#define X509_RF_SUPERSEDED (1 << 4) +#define X509_RF_CESSATION_OF_OPERATION (1 << 5) +#define X509_RF_CERTIFICATE_HOLD (1 << 6) +#define X509_RF_PRIVILEGE_WITHDRAWN (1 << 7) +#define X509_RF_AA_COMPROMISE (1 << 8) + +const char *x509_revoke_reason_flag_name(int flag); +int x509_revoke_reason_flag_from_name(int *flag, const char *name); +#define x509_revoke_reason_flags_to_der(bits,out,outlen) asn1_bits_to_der(bits,out,outlen) +#define x509_revoke_reason_flags_from_der(bits,in,inlen) asn1_bits_from_der(bits,in,inlen) +int x509_revoke_reason_flags_print(FILE *fp, int fmt, int ind, const char *label, int bits); + +/* +DistributionPointName ::= CHOICE { + fullName [0] IMPLICIT GeneralNames, -- SEQUENCE OF + nameRelativeToCRLIssuer [1] IMPLICIT RelativeDistinguishedName } -- SET OF +*/ +enum { + X509_full_name = 0, + X509_name_relative_to_crl_issuer = 1, +}; + +int x509_uri_as_distribution_point_name_to_der(const char *uri, size_t urilen, uint8_t **out, size_t *outlen); +int x509_distribution_point_name_from_der(int *choice, const uint8_t **d, size_t *dlen, const uint8_t **in, size_t *inlen); +int x509_uri_as_distribution_point_name_from_der(const char **uri, size_t *urilen, const uint8_t **in, size_t *inlen); +int x509_distribution_point_name_print(FILE *fp, int fmt, int ind, const char *label,const uint8_t *a, size_t alen); + +int x509_uri_as_explicit_distribution_point_name_to_der(int index, const char *uri, size_t urilen, uint8_t **out, size_t *outlen); +int x509_uri_as_explicit_distribution_point_name_from_der(int index, const char **uri, size_t *urilen, const uint8_t **in, size_t *inlen); + +/* +DistributionPoint ::= SEQUENCE { + distributionPoint [0] EXPLICIT DistributionPointName OPTIONAL, + reasons [1] IMPLICIT ReasonFlags OPTIONAL, + cRLIssuer [2] IMPLICIT GeneralNames OPTIONAL } +*/ +int x509_uri_as_distribution_point_to_der(const char *uri, size_t urilen, + int reasons, const uint8_t *crl_issuer, size_t crl_issuer_len, + uint8_t **out, size_t *outlen); +int x509_uri_as_distribution_point_from_der(const char **uri, size_t *urilen, + int *reasons, const uint8_t **crl_issuer, size_t *crl_issuer_len, + const uint8_t **in, size_t *inlen); +int x509_distribution_point_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +DistributionPoints ::= SEQUENCE OF DistributionPoint +*/ +int x509_uri_as_distribution_points_to_der(const char *uri, size_t urilen, + int reasons, const uint8_t *crl_issuer, size_t crl_issuer_len, + uint8_t **out, size_t *outlen); +int x509_uri_as_distribution_points_from_der(const char **uri, size_t *urilen, + int *reasons, const uint8_t **crl_issuer, size_t *crl_issuer_len, + const uint8_t **in, size_t *inlen); +int x509_distribution_points_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +/* +CRLDistributionPoints ::= SEQUENCE SIZE (1..MAX) OF DistributionPoint +*/ +#define x509_crl_distribution_points_to_der(d,dlen,out,outlen) x509_distribution_points_to_der(d,dlen,out,outlen) +#define x509_crl_distribution_points_from_der(d,dlen,in,inlen) x509_distribution_points_from_der(d,dlen,in,inlen) +#define x509_crl_distribution_points_print(fp,fmt,ind,label,d,dlen) x509_distribution_points_print(fp,fmt,ind,label,d,dlen) + + +/* +InhibitAnyPolicy ::= SkipCerts +SkipCerts ::= INTEGER (0..MAX) +*/ +#define x509_inhibit_any_policy_to_der(val,out,outlen) asn1_int_to_der(val,out,outlen) +#define x509_inhibit_any_policy_from_der(val,in,inlen) asn1_int_from_der(val,in,inlen) + +/* +FreshestCRL ::= CRLDistributionPoints + */ +#define x509_freshest_crl_to_der(d,dlen,out,outlen) x509_crl_distribution_points_to_der(d,dlen,out,outlen) +#define x509_freshest_crl_from_der(d,dlen,in,inlen) x509_crl_distribution_points_from_der(d,dlen,in,inlen) +#define x509_freshest_crl_print(fp,fmt,ind,label,d,dlen) x509_crl_distribution_points_print(fp,fmt,ind,label,d,dlen) + +/* +Netscape-Defined Certificate Extensions +https://docs.oracle.com/cd/E19957-01/816-5533-10/ext.htm#1023061 + +NetscapeCertType ::= BIT STRING + + bit 0: SSL Client certificate + bit 1: SSL Server certificate + bit 2: S/MIME certificate + bit 3: Object-signing certificate + bit 4: Reserved for future use + bit 5: SSL CA certificate + bit 6: S/MIME CA certificate + bit 7: Object-signing CA certificate + +NetscapeCertComment ::= IA5String +*/ +int x509_netscape_cert_type_print(FILE *fp, int fmt, int ind, const char *label, int bits); + +int x509_exts_check(const uint8_t *exts, size_t extslen, int cert_type, + int *path_len_constraints); + +/* +AuthorityInfoAccessSyntax ::= SEQUENCE OF AccessDescription + +AccessDescription ::= SEQUENCE { + accessMethod OBJECT IDENTIFIER, + accessLocation GeneralName } + +accessMethods: + OID_ad_ca_issuers + OID_ad_ocsp +*/ +const char *x509_access_method_name(int oid); +int x509_access_method_from_name(const char *name); +int x509_access_method_to_der(int oid, uint8_t **out, size_t *outlen); +int x509_access_method_from_der(int *oid, const uint8_t **in, size_t *inlen); + +int x509_access_description_to_der(int oid, const char *uri, size_t urilen, uint8_t **out, size_t *outlen); +int x509_access_description_from_der(int *oid, const char **uri, size_t *urilen, const uint8_t **in, size_t *inlen); +int x509_access_description_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +int x509_authority_info_access_to_der( + const char *ca_issuers_uri, size_t ca_issuers_urilen, + const char *ocsp_uri, size_t ocsp_urilen, + uint8_t **out, size_t *outlen); +int x509_authority_info_access_from_der( + const char **ca_issuers_uri, size_t *ca_issuers_urilen, + const char **ocsp_uri, size_t *ocsp_urilen, + const uint8_t **in, size_t *inlen); +int x509_authority_info_access_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + + +#ifdef __cplusplus +} +#endif +#endif + diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/x509_req.h b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_req.h new file mode 100644 index 0000000..43536ae --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/x509_req.h @@ -0,0 +1,81 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_X509_REQ_H +#define GMSSL_X509_REQ_H + + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +from RFC 2986 + +CertificationRequestInfo ::= SEQUENCE { + version INTEGER { v1(0) }, + subject Name, + subjectPKInfo SubjectPublicKeyInfo, + attributes [0] IMPLICIT SET OF Attribute } +*/ +int x509_request_info_to_der(int version, const uint8_t *subject, size_t subject_len, + const SM2_KEY *subject_public_key, const uint8_t *attrs, size_t attrs_len, + uint8_t **out, size_t *outlen); +int x509_request_info_from_der(int *version, const uint8_t **subject, size_t *subject_len, + SM2_KEY *subject_public_key, const uint8_t **attrs, size_t *attrs_len, + const uint8_t **in, size_t *inlen); +int x509_request_info_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *d, size_t dlen); + +/* +CertificationRequest ::= SEQUENCE { + certificationRequestInfo CertificationRequestInfo, + signatureAlgorithm AlgorithmIdentifier, + signature BIT STRING } +*/ +int x509_req_sign_to_der( + int version, + const uint8_t *subject, size_t subject_len, + const SM2_KEY *subject_public_key, + const uint8_t *attrs, size_t attrs_len, + int signature_algor, + const SM2_KEY *sign_key, const char *signer_id, size_t signer_id_len, + uint8_t **out, size_t *outlen); +int x509_req_verify(const uint8_t *req, size_t reqlen, + const char *signer_id, size_t signer_id_len); +int x509_req_get_details(const uint8_t *req, size_t reqlen, + int *verison, + const uint8_t **subject, size_t *subject_len, + SM2_KEY *subject_public_key, + const uint8_t **attributes, size_t *attributes_len, + int *signature_algor, + const uint8_t **signature, size_t *signature_len); +int x509_req_to_der(const uint8_t *a, size_t alen, uint8_t **out, size_t *outlen); +int x509_req_from_der(const uint8_t **a, size_t *alen, const uint8_t **in, size_t *inlen); +int x509_req_to_pem(const uint8_t *req, size_t reqlen, FILE *fp); +int x509_req_from_pem(uint8_t *req, size_t *reqlen, size_t maxlen, FILE *fp); +int x509_req_print(FILE *fp, int fmt, int ind, const char *label, const uint8_t *req, size_t reqlen); + +int x509_req_new_from_pem(uint8_t **req, size_t *reqlen, FILE *fp); +int x509_req_new_from_file(uint8_t **req, size_t *reqlen, const char *file); + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/include/gmssl/zuc.h b/thirdparty/GmSSL-3.1.1/include/gmssl/zuc.h new file mode 100644 index 0000000..20db893 --- /dev/null +++ b/thirdparty/GmSSL-3.1.1/include/gmssl/zuc.h @@ -0,0 +1,147 @@ +/* + * Copyright 2014-2022 The GmSSL Project. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + +#ifndef GMSSL_ZUC_H +#define GMSSL_ZUC_H + + +#include +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +ZUC Public API + + ZUC_KEY_SIZE + ZUC_IV_SIZE + ZUC_MAC_SIZE + + ZUC_CTX + zuc_encrypt_init + zuc_encrypt_update + zuc_encrypt_finish + zuc_decrypt_init + zuc_decrypt_update + zuc_decrypt_finish + + ZUC_MAC_CTX + zuc_mac_init + zuc_mac_update + zuc_mac_finish + + zuc_eea_encrypt + zuc_eia_generate_mac +*/ + + +# define ZUC_KEY_SIZE 16 +# define ZUC_IV_SIZE 16 +# define ZUC_MAC_SIZE 4 + +typedef uint32_t ZUC_BIT; +typedef uint32_t ZUC_UINT5; +typedef uint8_t ZUC_UINT6; +typedef uint32_t ZUC_UINT15; +typedef uint32_t ZUC_UINT31; +typedef uint32_t ZUC_UINT32; + +typedef struct { + ZUC_UINT31 LFSR[16]; + ZUC_UINT32 R1; + ZUC_UINT32 R2; +} ZUC_STATE; + +void zuc_init(ZUC_STATE *state, const uint8_t key[ZUC_KEY_SIZE], const uint8_t iv[ZUC_IV_SIZE]); +void zuc_generate_keystream(ZUC_STATE *state, size_t nwords, ZUC_UINT32 *words); +ZUC_UINT32 zuc_generate_keyword(ZUC_STATE *state); +void zuc_encrypt(ZUC_STATE *state, const uint8_t *in, size_t inlen, uint8_t *out); + +typedef struct ZUC_MAC_CTX_st { + ZUC_UINT31 LFSR[16]; + ZUC_UINT32 R1; + ZUC_UINT32 R2; + ZUC_UINT32 T; + ZUC_UINT32 K0; + uint8_t buf[4]; + size_t buflen; +} ZUC_MAC_CTX; + +void zuc_mac_init(ZUC_MAC_CTX *ctx, const uint8_t key[ZUC_KEY_SIZE], const uint8_t iv[ZUC_IV_SIZE]); +void zuc_mac_update(ZUC_MAC_CTX *ctx, const uint8_t *data, size_t len); +void zuc_mac_finish(ZUC_MAC_CTX *ctx, const uint8_t *data, size_t nbits, uint8_t mac[ZUC_MAC_SIZE]); + +#define ZUC_EEA_ENCRYPT_NWORDS(nbits) ((nbits + 31)/32) +#define ZUC_EEA_ENCRYPT_NBYTES(nbits) (ZUC_EEA_ENCRYPT_NWORDS(nbits)*4) +void zuc_eea_encrypt(const ZUC_UINT32 *in, ZUC_UINT32 *out, size_t nbits, + const uint8_t key[ZUC_KEY_SIZE], ZUC_UINT32 count, ZUC_UINT5 bearer, + ZUC_BIT direction); +ZUC_UINT32 zuc_eia_generate_mac(const ZUC_UINT32 *data, size_t nbits, + const uint8_t key[ZUC_KEY_SIZE], ZUC_UINT32 count, ZUC_UINT5 bearer, + ZUC_BIT direction); + + +# define ZUC256_KEY_SIZE 32 +# define ZUC256_IV_SIZE 23 +# define ZUC256_MAC32_SIZE 4 +# define ZUC256_MAC64_SIZE 8 +# define ZUC256_MAC128_SIZE 16 +# define ZUC256_MIN_MAC_SIZE ZUC256_MAC32_SIZE +# define ZUC256_MAX_MAC_SIZE ZUC256_MAC128_SIZE + +typedef ZUC_STATE ZUC256_STATE; + +void zuc256_init(ZUC256_STATE *state, const uint8_t key[ZUC256_KEY_SIZE], const uint8_t iv[ZUC256_IV_SIZE]); +#define zuc256_generate_keystream(state,nwords,words) zuc_generate_keystream(state,nwords,words) +#define zuc256_generate_keyword(state) zuc_generate_keyword(state) + + +typedef struct ZUC256_MAC_CTX_st { + ZUC_UINT31 LFSR[16]; + ZUC_UINT32 R1; + ZUC_UINT32 R2; + ZUC_UINT32 T[4]; + ZUC_UINT32 K0[4]; + uint8_t buf[4]; + size_t buflen; + int macbits; +} ZUC256_MAC_CTX; + +void zuc256_mac_init(ZUC256_MAC_CTX *ctx, const uint8_t key[ZUC256_KEY_SIZE], + const uint8_t iv[ZUC256_IV_SIZE], int macbits); +void zuc256_mac_update(ZUC256_MAC_CTX *ctx, const uint8_t *data, size_t len); +void zuc256_mac_finish(ZUC256_MAC_CTX *ctx, const uint8_t *data, size_t nbits, uint8_t mac[ZUC_MAC_SIZE]); + + +// Public API + +typedef struct { + ZUC_STATE zuc_state; + uint8_t block[4]; + size_t block_nbytes; +} ZUC_CTX; + +int zuc_encrypt_init(ZUC_CTX *ctx, const uint8_t key[ZUC_KEY_SIZE], const uint8_t iv[ZUC_IV_SIZE]); +int zuc_encrypt_update(ZUC_CTX *ctx, const uint8_t *in, size_t inlen, uint8_t *out, size_t *outlen); +int zuc_encrypt_finish(ZUC_CTX *ctx, uint8_t *out, size_t *outlen); + +#define zuc_decrypt_init(ctx,key,iv) zuc_encrypt_init(ctx,key,iv) +#define zuc_decrypt_update(ctx,in,inlen,out,outlen) zuc_encrypt_update(ctx,in,inlen,out,outlen) +#define zuc_decrypt_finish(ctx,out,outlen) zuc_encrypt_finish(ctx,out,outlen) + + +#ifdef __cplusplus +} +#endif +#endif diff --git a/thirdparty/GmSSL-3.1.1/lib/gmssl.lib b/thirdparty/GmSSL-3.1.1/lib/gmssl.lib new file mode 100644 index 0000000000000000000000000000000000000000..6647dea63ba21dd734009a64844b9a0ed8826761 GIT binary patch literal 342666 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 literal 0 HcmV?d00001 diff --git a/thirdparty/OpenXLSX/include/OpenXLSX.hpp b/thirdparty/OpenXLSX/include/OpenXLSX.hpp new file mode 100644 index 0000000..77cb1bf --- /dev/null +++ b/thirdparty/OpenXLSX/include/OpenXLSX.hpp @@ -0,0 +1,63 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_OPENXLSX_HPP +#define OPENXLSX_OPENXLSX_HPP + +#include "headers/XLCell.hpp" +#include "headers/XLCellRange.hpp" +#include "headers/XLCellReference.hpp" +#include "headers/XLCellValue.hpp" +#include "headers/XLColumn.hpp" +#include "headers/XLDateTime.hpp" +#include "headers/XLDocument.hpp" +#include "headers/XLException.hpp" +#include "headers/XLFormula.hpp" +#include "headers/XLRow.hpp" +#include "headers/XLSheet.hpp" +#include "headers/XLWorkbook.hpp" +#include "headers/XLZipArchive.hpp" + +#endif // OPENXLSX_OPENXLSX_HPP \ No newline at end of file diff --git a/thirdparty/OpenXLSX/include/headers/IZipArchive.hpp b/thirdparty/OpenXLSX/include/headers/IZipArchive.hpp new file mode 100644 index 0000000..f538438 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/IZipArchive.hpp @@ -0,0 +1,345 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2022, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_IZIPARCHIVE_HPP +#define OPENXLSX_IZIPARCHIVE_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" + +#include +#include + +namespace OpenXLSX +{ + /** + * @brief This class functions as a wrapper around any class that provides the necessary functionality for + * a zip archive. + * @details This class works by applying 'type erasure'. This enables the use of objects of any class, the only + * requirement being that it provides the right interface. No inheritance from a base class is needed. + */ + class OPENXLSX_EXPORT IZipArchive + { + public: + /** + * @brief Default constructor + */ + IZipArchive() : m_zipArchive() {} // NOLINT + + /** + * @brief Constructor, taking the target object as an argument. + * @tparam T The type of the target object (will be auto deducted) + * @param x The target object + * @note This method is deliberately not marked 'explicit', because as a templated constructor, it should be able + * to take any type as an argument. However, only objects that satisfy the required interface can be used. + */ + template + IZipArchive(const T& zipArchive) : m_zipArchive { std::make_unique>(zipArchive) } {} // NOLINT + + /** + * @brief Copy constructor + * @param other + */ + IZipArchive(const IZipArchive& other) : m_zipArchive(other.m_zipArchive ? other.m_zipArchive->clone() : nullptr) {} + + /** + * @brief Move constructor + * @param other + */ + IZipArchive(IZipArchive&& other) noexcept = default; + + /** + * @brief Destructor + */ + ~IZipArchive() = default; + + /** + * @brief + * @tparam T + * @param x + * @return + */ + template + inline IZipArchive& operator=(const T& zipArchive) + { + m_zipArchive = std::make_unique>(zipArchive); + return *this; + } + + /** + * @brief + * @param other + * @return + */ + inline IZipArchive& operator=(const IZipArchive& other) + { + IZipArchive copy(other); + *this = std::move(copy); + return *this; + } + + /** + * @brief + * @param other + * @return + */ + inline IZipArchive& operator=(IZipArchive&& other) noexcept = default; + + /** + * @brief + * @return + */ + inline explicit operator bool() const + { + return isValid(); + } + + inline bool isValid() const { + return m_zipArchive->isValid(); + + } + + inline bool isOpen() const { + return m_zipArchive->isOpen(); + } + + inline void open(const std::string& fileName) { + m_zipArchive->open(fileName); + } + + inline void close() const { + m_zipArchive->close(); + } + + inline void save(const std::string& path) { + m_zipArchive->save(path); + } + + inline void addEntry(const std::string& name, const std::string& data) { + m_zipArchive->addEntry(name, data); + } + + inline void deleteEntry(const std::string& entryName) { + m_zipArchive->deleteEntry(entryName); + } + + inline std::string getEntry(const std::string& name) { + return m_zipArchive->getEntry(name); + } + + inline bool hasEntry(const std::string& entryName) { + return m_zipArchive->hasEntry(entryName); + } + + private: + /** + * @brief + */ + struct Concept + { + public: + /** + * @brief + */ + Concept() = default; + + /** + * @brief + */ + Concept(const Concept&) = default; + + /** + * @brief + */ + Concept(Concept&&) noexcept = default; + + /** + * @brief + */ + virtual ~Concept() = default; + + /** + * @brief + * @return + */ + inline Concept& operator=(const Concept&) = default; + + /** + * @brief + * @return + */ + inline Concept& operator=(Concept&&) noexcept = default; + + /** + * @brief + * @return + */ + inline virtual std::unique_ptr clone() const = 0; + + inline virtual bool isValid() const = 0; + + inline virtual bool isOpen() const = 0; + + inline virtual void open(const std::string& fileName) = 0; + + inline virtual void close() = 0; + + inline virtual void save (const std::string& path) = 0; + + inline virtual void addEntry(const std::string& name, const std::string& data) = 0; + + inline virtual void deleteEntry(const std::string& entryName) = 0; + + inline virtual std::string getEntry(const std::string& name) = 0; + + inline virtual bool hasEntry(const std::string& entryName) = 0; + + }; + + /** + * @brief + * @tparam T + */ + template + struct Model : Concept + { + public: + /** + * @brief + * @param x + */ + explicit Model(const T& x) : ZipType(x) {} + + /** + * @brief + * @param other + */ + Model(const Model& other) = default; + + /** + * @brief + * @param other + */ + Model(Model&& other) noexcept = default; + + /** + * @brief + */ + ~Model() override = default; + + /** + * @brief + * @param other + * @return + */ + inline Model& operator=(const Model& other) = default; + + /** + * @brief + * @param other + * @return + */ + inline Model& operator=(Model&& other) noexcept = default; + + /** + * @brief + * @return + */ + inline std::unique_ptr clone() const override + { + return std::make_unique>(ZipType); + } + + inline bool isValid() const override { + return ZipType.isValid(); + } + + inline bool isOpen() const override { + return ZipType.isOpen(); + } + + inline void open(const std::string& fileName) override { + ZipType.open(fileName); + } + + inline void close() override { + ZipType.close(); + } + + inline void save(const std::string& path) override { + ZipType.save(path); + } + + inline void addEntry(const std::string& name, const std::string& data) override { + ZipType.addEntry(name, data); + } + + inline void deleteEntry(const std::string& entryName) override { + ZipType.deleteEntry(entryName); + } + + inline std::string getEntry(const std::string& name) override { + return ZipType.getEntry(name); + } + + inline bool hasEntry(const std::string& entryName) override { + return ZipType.hasEntry(entryName); + } + + private: + T ZipType; + }; + + std::unique_ptr m_zipArchive; + }; + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_IZIPARCHIVE_HPP diff --git a/thirdparty/OpenXLSX/include/headers/OpenXLSX-Exports.hpp b/thirdparty/OpenXLSX/include/headers/OpenXLSX-Exports.hpp new file mode 100644 index 0000000..075c6de --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/OpenXLSX-Exports.hpp @@ -0,0 +1,43 @@ + +#ifndef OPENXLSX_EXPORT_H +#define OPENXLSX_EXPORT_H + +#ifdef OPENXLSX_STATIC_DEFINE +# define OPENXLSX_EXPORT +# define OPENXLSX_HIDDEN +#else +# ifndef OPENXLSX_EXPORT +# ifdef OpenXLSX_EXPORTS + /* We are building this library */ +# define OPENXLSX_EXPORT +# else + /* We are using this library */ +# define OPENXLSX_EXPORT +# endif +# endif + +# ifndef OPENXLSX_HIDDEN +# define OPENXLSX_HIDDEN +# endif +#endif + +#ifndef OPENXLSX_DEPRECATED +# define OPENXLSX_DEPRECATED __declspec(deprecated) +#endif + +#ifndef OPENXLSX_DEPRECATED_EXPORT +# define OPENXLSX_DEPRECATED_EXPORT OPENXLSX_EXPORT OPENXLSX_DEPRECATED +#endif + +#ifndef OPENXLSX_DEPRECATED_NO_EXPORT +# define OPENXLSX_DEPRECATED_NO_EXPORT OPENXLSX_HIDDEN OPENXLSX_DEPRECATED +#endif + +/* NOLINTNEXTLINE(readability-avoid-unconditional-preprocessor-if) */ +#if 0 /* DEFINE_NO_DEPRECATED */ +# ifndef OPENXLSX_NO_DEPRECATED +# define OPENXLSX_NO_DEPRECATED +# endif +#endif + +#endif /* OPENXLSX_EXPORT_H */ diff --git a/thirdparty/OpenXLSX/include/headers/XLCell.hpp b/thirdparty/OpenXLSX/include/headers/XLCell.hpp new file mode 100644 index 0000000..355e8fd --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLCell.hpp @@ -0,0 +1,231 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCELL_HPP +#define OPENXLSX_XLCELL_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLCellReference.hpp" +#include "XLCellValue.hpp" +#include "XLFormula.hpp" +#include "XLSharedStrings.hpp" + +// ========== CLASS AND ENUM TYPE DEFINITIONS ========== // +namespace OpenXLSX +{ + class XLCellRange; + class XLSharedStrings; + + /** + * @brief An implementation class encapsulating the properties and behaviours of a spreadsheet cell. + */ + class OPENXLSX_EXPORT XLCell + { + friend class XLCellIterator; + friend class XLCellValueProxy; + friend class XLRowDataIterator; + friend bool operator==(const XLCell& lhs, const XLCell& rhs); + friend bool operator!=(const XLCell& lhs, const XLCell& rhs); + + public: + //---------- Public Member Functions ----------// + + /** + * @brief Default constructor. Constructs a null object. + */ + XLCell(); + + /** + * @brief + * @param cellNode + * @param sharedStrings + */ + XLCell(const XMLNode& cellNode, const XLSharedStrings& sharedStrings); + + /** + * @brief Copy constructor + * @param other The XLCell object to be copied. + * @note The copy constructor has been deleted, as it makes no sense to copy a cell. If the objective is to + * copy the getValue, create the the target object and then use the copy assignment operator. + */ + XLCell(const XLCell& other); + + /** + * @brief Move constructor + * @param other The XLCell object to be moved + * @note The move constructor has been deleted, as it makes no sense to move a cell. + */ + XLCell(XLCell&& other) noexcept; + + /** + * @brief Destructor + * @note Using the default destructor + */ + ~XLCell(); + + /** + * @brief Copy assignment operator + * @param other The XLCell object to be copy assigned + * @return A reference to the new object + * @note Copies only the cell contents, not the pointer to parent worksheet etc. + */ + XLCell& operator=(const XLCell& other); + + /** + * @brief Move assignment operator [deleted] + * @param other The XLCell object to be move assigned + * @return A reference to the new object + * @note The move assignment constructor has been deleted, as it makes no sense to move a cell. + */ + XLCell& operator=(XLCell&& other) noexcept; + + /** + * @brief + * @return + */ + explicit operator bool() const; + + /** + * @brief + * @return + */ + XLCellValueProxy& value(); + + /** + * @brief + * @return + */ + const XLCellValueProxy& value() const; + + /** + * @brief get the XLCellReference object for the cell. + * @return A reference to the cells' XLCellReference object. + */ + XLCellReference cellReference() const; + + /** + * @brief get the XLCell object from the current cell offset + * @return A reference to the XLCell object. + */ + XLCell offset(uint16_t rowOffset, uint16_t colOffset) const; + + /** + * @brief + * @return + */ + bool hasFormula() const; + + /** + * @brief + * @return + */ + XLFormulaProxy& formula(); + + /** + * @brief + * @return + */ + const XLFormulaProxy& formula() const; + + /** + * @brief + * @param newFormula + */ + + private: + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + static bool isEqual(const XLCell& lhs, const XLCell& rhs); + + //---------- Private Member Variables ---------- // + std::unique_ptr m_cellNode; /**< A pointer to the root XMLNode for the cell. */ + XLSharedStrings m_sharedStrings; /**< */ + XLCellValueProxy m_valueProxy; /**< */ + XLFormulaProxy m_formulaProxy; /**< */ + }; + +} // namespace OpenXLSX + +// ========== FRIEND FUNCTION IMPLEMENTATIONS ========== // +namespace OpenXLSX +{ + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator==(const XLCell& lhs, const XLCell& rhs) + { + return XLCell::isEqual(lhs, rhs); + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator!=(const XLCell& lhs, const XLCell& rhs) + { + return !XLCell::isEqual(lhs, rhs); + } + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLCELL_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLCellIterator.hpp b/thirdparty/OpenXLSX/include/headers/XLCellIterator.hpp new file mode 100644 index 0000000..a5fe97c --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLCellIterator.hpp @@ -0,0 +1,179 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCELLITERATOR_HPP +#define OPENXLSX_XLCELLITERATOR_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +#include + +#include "OpenXLSX-Exports.hpp" +#include "XLCell.hpp" +#include "XLCellReference.hpp" +#include "XLIterator.hpp" +#include "XLXmlParser.hpp" + +namespace OpenXLSX +{ + class OPENXLSX_EXPORT XLCellIterator + { + public: + using iterator_category = std::forward_iterator_tag; + using value_type = XLCell; + using difference_type = int64_t; + using pointer = XLCell*; + using reference = XLCell&; + + /** + * @brief + * @param cellRange + * @param loc + */ + explicit XLCellIterator(const XLCellRange& cellRange, XLIteratorLocation loc); + + /** + * @brief + */ + ~XLCellIterator(); + + /** + * @brief + * @param other + */ + XLCellIterator(const XLCellIterator& other); + + /** + * @brief + * @param other + */ + [[maybe_unused]] XLCellIterator(XLCellIterator&& other) noexcept; + + /** + * @brief + * @param other + * @return + */ + XLCellIterator& operator=(const XLCellIterator& other); + + /** + * @brief + * @param other + * @return + */ + XLCellIterator& operator=(XLCellIterator&& other) noexcept; + + /** + * @brief + * @return + */ + XLCellIterator& operator++(); + + /** + * @brief + * @return + */ + XLCellIterator operator++(int); // NOLINT + + /** + * @brief + * @return + */ + reference operator*(); + + /** + * @brief + * @return + */ + pointer operator->(); + + /** + * @brief + * @param rhs + * @return + */ + bool operator==(const XLCellIterator& rhs) const; + + /** + * @brief + * @param rhs + * @return + */ + bool operator!=(const XLCellIterator& rhs) const; + + /** + * @brief + * @param last + * @return + */ + uint64_t distance(const XLCellIterator& last); + + private: + std::unique_ptr m_dataNode; /**< */ + XLCellReference m_topLeft; /**< The cell reference of the first cell in the range */ + XLCellReference m_bottomRight; /**< The cell reference of the last cell in the range */ + XLCell m_currentCell; /**< */ + XLSharedStrings m_sharedStrings; /**< */ + bool m_endReached { false }; /**< */ + }; + +} // namespace OpenXLSX + +// ===== Template specialization for std::distance. +namespace std // NOLINT +{ + using OpenXLSX::XLCellIterator; + template<> + inline typename std::iterator_traits::difference_type distance(XLCellIterator first, + XLCellIterator last) + { + return static_cast::difference_type>(first.distance(last)); + } +} // namespace std + +#pragma warning(pop) +#endif // OPENXLSX_XLCELLITERATOR_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLCellRange.hpp b/thirdparty/OpenXLSX/include/headers/XLCellRange.hpp new file mode 100644 index 0000000..ccfdb66 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLCellRange.hpp @@ -0,0 +1,169 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCELLRANGE_HPP +#define OPENXLSX_XLCELLRANGE_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLCell.hpp" +#include "XLCellIterator.hpp" +#include "XLCellReference.hpp" +#include "XLXmlParser.hpp" + +namespace OpenXLSX +{ + /** + * @brief This class encapsulates the concept of a cell range, i.e. a square area + * (or subset) of cells in a spreadsheet. + */ + class OPENXLSX_EXPORT XLCellRange + { + friend class XLCellIterator; + + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief + * @param dataNode + * @param topLeft + * @param bottomRight + * @param sharedStrings + */ + explicit XLCellRange(const XMLNode& dataNode, + const XLCellReference& topLeft, + const XLCellReference& bottomRight, + const XLSharedStrings& sharedStrings); + + /** + * @brief Copy constructor [default]. + * @param other The range object to be copied. + * @note This implements the default copy constructor, i.e. memberwise copying. + */ + XLCellRange(const XLCellRange& other); + + /** + * @brief Move constructor [default]. + * @param other The range object to be moved. + * @note This implements the default move constructor, i.e. memberwise move. + */ + XLCellRange(XLCellRange&& other) noexcept; + + /** + * @brief Destructor [default] + * @note This implements the default destructor. + */ + ~XLCellRange(); + + /** + * @brief The copy assignment operator [default] + * @param other The range object to be copied and assigned. + * @return A reference to the new object. + * @throws A std::range_error if the source range and destination range are of different size and shape. + * @note This implements the default copy assignment operator. + */ + XLCellRange& operator=(const XLCellRange& other); + + /** + * @brief The move assignment operator [default]. + * @param other The range object to be moved and assigned. + * @return A reference to the new object. + * @note This implements the default move assignment operator. + */ + XLCellRange& operator=(XLCellRange&& other) noexcept; + + /** + * @brief Get the number of rows in the range. + * @return The number of rows. + */ + uint32_t numRows() const; + + /** + * @brief Get the number of columns in the range. + * @return The number of columns. + */ + uint16_t numColumns() const; + + /** + * @brief + * @return + */ + XLCellIterator begin() const; + + /** + * @brief + * @return + */ + XLCellIterator end() const; + + /** + * @brief + */ + void clear(); + + //---------------------------------------------------------------------------------------------------------------------- + // Private Member Variables + //---------------------------------------------------------------------------------------------------------------------- + + private: + std::unique_ptr m_dataNode; /**< */ + XLCellReference m_topLeft; /**< The cell reference of the first cell in the range */ + XLCellReference m_bottomRight; /**< The cell reference of the last cell in the range */ + XLSharedStrings m_sharedStrings; + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLCELLRANGE_HPP \ No newline at end of file diff --git a/thirdparty/OpenXLSX/include/headers/XLCellReference.hpp b/thirdparty/OpenXLSX/include/headers/XLCellReference.hpp new file mode 100644 index 0000000..98910f6 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLCellReference.hpp @@ -0,0 +1,323 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCELLREFERENCE_HPP +#define OPENXLSX_XLCELLREFERENCE_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" + +namespace OpenXLSX +{ + /** + * @brief + */ + using XLCoordinates = std::pair; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLCellReference final + { + friend bool operator==(const XLCellReference& lhs, const XLCellReference& rhs); + friend bool operator!=(const XLCellReference& lhs, const XLCellReference& rhs); + friend bool operator<(const XLCellReference& lhs, const XLCellReference& rhs); + friend bool operator>(const XLCellReference& lhs, const XLCellReference& rhs); + friend bool operator<=(const XLCellReference& lhs, const XLCellReference& rhs); + friend bool operator>=(const XLCellReference& lhs, const XLCellReference& rhs); + + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief Constructor taking a cell address as argument. + * @param cellAddress The address of the cell, e.g. 'A1'. + * @details The constructor creates a new XLCellReference from a string, e.g. 'A1'. If there's no input, + * the default reference will be cell A1. + */ + XLCellReference(const std::string& cellAddress = ""); // NOLINT + + /** + * @brief Constructor taking the cell coordinates as arguments. + * @param row The row number of the cell. + * @param column The column number of the cell. + */ + XLCellReference(uint32_t row, uint16_t column); + + /** + * @brief Constructor taking the row number and the column letter as arguments. + * @param row The row number of the cell. + * @param column The column letter of the cell. + */ + XLCellReference(uint32_t row, const std::string& column); + + /** + * @brief Copy constructor + * @param other The object to be copied. + */ + XLCellReference(const XLCellReference& other); + + /** + * @brief + * @param other + */ + XLCellReference(XLCellReference&& other) noexcept; + + /** + * @brief Destructor. Default implementation used. + */ + ~XLCellReference(); + + /** + * @brief Assignment operator. + * @param other The object to be copied/assigned. + * @return A reference to the new object. + */ + XLCellReference& operator=(const XLCellReference& other); + + /** + * @brief + * @param other + * @return + */ + XLCellReference& operator=(XLCellReference&& other) noexcept; + + /** + * @brief + * @return + */ + XLCellReference& operator++(); + + /** + * @brief + * @return + */ + XLCellReference operator++(int); // NOLINT + + /** + * @brief + * @return + */ + XLCellReference& operator--(); + + /** + * @brief + * @return + */ + XLCellReference operator--(int); // NOLINT + + /** + * @brief Get the row number of the XLCellReference. + * @return The row. + */ + uint32_t row() const; + + /** + * @brief Set the row number for the XLCellReference. + * @param row The row number. + */ + void setRow(uint32_t row); + + /** + * @brief Get the column number of the XLCellReference. + * @return The column number. + */ + uint16_t column() const; + + /** + * @brief Set the column number of the XLCellReference. + * @param column The column number. + */ + void setColumn(uint16_t column); + + /** + * @brief Set both row and column number of the XLCellReference. + * @param row The row number. + * @param column The column number. + */ + void setRowAndColumn(uint32_t row, uint16_t column); + + /** + * @brief Get the address of the XLCellReference + * @return The address, e.g. 'A1' + */ + std::string address() const; + + /** + * @brief Set the address of the XLCellReference + * @param address The address, e.g. 'A1' + * @pre The address input string must be a valid Excel cell reference. Otherwise the behaviour is undefined. + */ + void setAddress(const std::string& address); + + //---------------------------------------------------------------------------------------------------------------------- + // Private Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + // private: + + /** + * @brief + * @param row + * @return + */ + static std::string rowAsString(uint32_t row); + + /** + * @brief + * @param row + * @return + */ + static uint32_t rowAsNumber(const std::string& row); + + /** + * @brief Static helper function to convert column number to column letter (e.g. column 1 becomes 'A') + * @param column The column number. + * @return The column letter + */ + static std::string columnAsString(uint16_t column); + + /** + * @brief Static helper function to convert column letter to column number (e.g. column 'A' becomes 1) + * @param column The column letter, e.g. 'A' + * @return The column number. + */ + static uint16_t columnAsNumber(const std::string& column); + + /** + * @brief Static helper function to convert cell address to coordinates. + * @param address The address to be converted, e.g. 'A1' + * @return A std::pair + */ + static XLCoordinates coordinatesFromAddress(const std::string& address); + + //---------------------------------------------------------------------------------------------------------------------- + // Private Member Variables + //---------------------------------------------------------------------------------------------------------------------- + private: + uint32_t m_row { 1 }; /**< The row */ + uint16_t m_column { 1 }; /**< The column */ + std::string m_cellAddress {"A1"}; /**< The address, e.g. 'A1' */ + }; + + /** + * @brief Helper function to check equality between two XLCellReferences. + * @param lhs The first XLCellReference + * @param rhs The second XLCellReference + * @return true if equal; otherwise false. + */ + inline bool operator==(const XLCellReference& lhs, const XLCellReference& rhs) + { + return lhs.row() == rhs.row() && lhs.column() == rhs.column(); + } + + /** + * @brief Helper function to check for in-equality between two XLCellReferences + * @param lhs The first XLCellReference + * @param rhs The second XLCellReference + * @return false if equal; otherwise true. + */ + inline bool operator!=(const XLCellReference& lhs, const XLCellReference& rhs) + { + return !(lhs == rhs); + } + + /** + * @brief Helper function to check if one XLCellReference is smaller than another. + * @param lhs The first XLCellReference + * @param rhs The second XLCellReference + * @return true if lhs < rhs; otherwise false. + */ + inline bool operator<(const XLCellReference& lhs, const XLCellReference& rhs) + { + return lhs.row() < rhs.row() || (lhs.row() <= rhs.row() && lhs.column() < rhs.column()); + } + + /** + * @brief Helper function to check if one XLCellReference is larger than another. + * @param lhs The first XLCellReference + * @param rhs The second XLCellReference + * @return true if lhs > rhs; otherwise false. + */ + inline bool operator>(const XLCellReference& lhs, const XLCellReference& rhs) + { + return (rhs < lhs); + } + + /** + * @brief Helper function to check if one XLCellReference is smaller than or equal to another. + * @param lhs The first XLCellReference + * @param rhs The second XLCellReference + * @return true if lhs <= rhs; otherwise false + */ + inline bool operator<=(const XLCellReference& lhs, const XLCellReference& rhs) + { + return !(lhs > rhs); + } + + /** + * @brief Helper function to check if one XLCellReference is larger than or equal to another. + * @param lhs The first XLCellReference + * @param rhs The second XLCellReference + * @return true if lhs >= rhs; otherwise false. + */ + inline bool operator>=(const XLCellReference& lhs, const XLCellReference& rhs) + { + return !(lhs < rhs); + } +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLCELLREFERENCE_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLCellValue.hpp b/thirdparty/OpenXLSX/include/headers/XLCellValue.hpp new file mode 100644 index 0000000..ba57f5b --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLCellValue.hpp @@ -0,0 +1,672 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCELLVALUE_HPP +#define OPENXLSX_XLCELLVALUE_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLDateTime.hpp" +#include "XLException.hpp" +#include "XLXmlParser.hpp" + +// ========== CLASS AND ENUM TYPE DEFINITIONS ========== // +namespace OpenXLSX +{ + //---------- Forward Declarations ----------// + class XLCellValueProxy; + class XLCell; + + /** + * @brief Enum defining the valid value types for a an Excel spreadsheet cell. + */ + enum class XLValueType { Empty, Boolean, Integer, Float, Error, String }; + + /** + * @brief Class encapsulating a cell value. + */ + class OPENXLSX_EXPORT XLCellValue + { + //---------- Friend Declarations ----------// + + // TODO: Consider template functions to compare to ints, floats etc. + friend bool operator==(const XLCellValue& lhs, const XLCellValue& rhs); + friend bool operator!=(const XLCellValue& lhs, const XLCellValue& rhs); + friend bool operator<(const XLCellValue& lhs, const XLCellValue& rhs); + friend bool operator>(const XLCellValue& lhs, const XLCellValue& rhs); + friend bool operator<=(const XLCellValue& lhs, const XLCellValue& rhs); + friend bool operator>=(const XLCellValue& lhs, const XLCellValue& rhs); + friend std::ostream& operator<<(std::ostream& os, const XLCellValue& value); + friend std::hash; + + public: + //---------- Public Member Functions ----------// + + /** + * @brief Default constructor + */ + XLCellValue(); + + /** + * @brief A templated constructor. Any value convertible to a valid cell value can be used as argument. + * @tparam T The type of the argument (will be automatically deduced). + * @param value The value. + * @todo Consider changing the enable_if statement to check for objects with a .c_str() member function. + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v>::type* = nullptr> + XLCellValue(T value) // NOLINT + { + // ===== If the argument is a bool, set the m_type attribute to Boolean. + if constexpr (std::is_integral_v && std::is_same_v) { + m_type = XLValueType::Boolean; + m_value = value; + } + + // ===== If the argument is an integral type, set the m_type attribute to Integer. + else if constexpr (std::is_integral_v && !std::is_same_v) { + m_type = XLValueType::Integer; + m_value = int64_t(value); + } + + // ===== If the argument is a string type (i.e. is constructable from *char), + // ===== set the m_type attribute to String. + else if constexpr (std::is_same_v, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || + (std::is_same_v, char*> && !std::is_same_v)) + { + m_type = XLValueType::String; + m_value = std::string(value); + } + + // ===== If the argument is an XLDateTime, set the value to the date/time serial number. + else if constexpr (std::is_same_v) { + m_type = XLValueType::Float; + m_value = value.serial(); + } + + // ===== If the argument is a floating point type, set the m_type attribute to Float. + // ===== If not, a static_assert will result in compilation error. + else { + static_assert(std::is_floating_point_v, "Invalid argument for constructing XLCellValue object"); + if (std::isfinite(value)) { + m_type = XLValueType::Float; + m_value = double(value); + } + else { + m_type = XLValueType::Error; + m_value = std::string("#NUM!"); + } + } + } + + /** + * @brief Copy constructor. + * @param other The object to be copied. + */ + XLCellValue(const XLCellValue& other); + + /** + * @brief Move constructor. + * @param other The object to be moved. + */ + XLCellValue(XLCellValue&& other) noexcept; + + /** + * @brief Destructor + */ + ~XLCellValue(); + + /** + * @brief Copy assignment operator. + * @param other Object to be copied. + * @return Reference to the copied-to object. + */ + XLCellValue& operator=(const XLCellValue& other); + + /** + * @brief Move assignment operator. + * @param other Object to be moved. + * @return Reference to the moved-to object. + */ + XLCellValue& operator=(XLCellValue&& other) noexcept; + + /** + * @brief Templated copy assignment operator. + * @tparam T The type of the value argument. + * @param value The value. + * @return A reference to the assigned-to object. + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v>::type* = nullptr> + XLCellValue& operator=(T value) + { + // ===== Implemented using copy-and-swap. + XLCellValue temp(value); + std::swap(*this, temp); + return *this; + } + + /** + * @brief Templated setter for integral and bool types. + * @tparam T The type of the value argument. + * @param numberValue The value + */ + template< + typename T, + typename std::enable_if || std::is_integral_v || std::is_floating_point_v || + std::is_same_v, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || std::is_same_v, char*> || + std::is_same_v>::type* = nullptr> + void set(T numberValue) + { + // ===== Implemented using the assignment operator. + *this = numberValue; + } + + /** + * @brief Templated getter. + * @tparam T The type of the value to be returned. + * @return The value as a type T object. + * @throws XLValueTypeError if the XLCellValue object does not contain a compatible type. + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v>::type* = nullptr> + T get() const + { + try { + if constexpr (std::is_integral_v && std::is_same_v) return std::get(m_value); + + if constexpr (std::is_integral_v && !std::is_same_v) return static_cast(std::get(m_value)); + + if constexpr (std::is_floating_point_v) { + if (m_type == XLValueType::Error) return std::nan("1"); + return static_cast(std::get(m_value)); + } + + if constexpr (std::is_same_v, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || + (std::is_same_v, char*> && !std::is_same_v)) + return std::get(m_value).c_str(); + + if constexpr (std::is_same_v) return XLDateTime(std::get(m_value)); + } + + catch (const std::bad_variant_access& ) { + throw XLValueTypeError("XLCellValue object does not contain the requested type."); + } + } + + /** + * @brief Explicit conversion operator for easy conversion to supported types. + * @tparam T The type to cast to. + * @return The XLCellValue object cast to requested type. + * @throws XLValueTypeError if the XLCellValue object does not contain a compatible type. + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v>::type* = nullptr> + operator T() const + { + return this->get(); + } + + /** + * @brief Clears the contents of the XLCellValue object. + * @return Returns a reference to the current object. + */ + XLCellValue& clear(); + + /** + * @brief Sets the value type to XLValueType::Error. + * @return Returns a reference to the current object. + */ + XLCellValue& setError(const std::string &error); + + /** + * @brief Get the value type of the current object. + * @return An XLValueType for the current object. + */ + XLValueType type() const; + + /** + * @brief Get the value type of the current object, as a string representation + * @return A std::string representation of the value type. + */ + std::string typeAsString() const; + + private: + //---------- Private Member Variables ---------- // + + std::variant m_value { std::string("") }; /**< The value contained in the cell. */ + XLValueType m_type { XLValueType::Empty }; /**< The value type of the cell. */ + }; + + /** + * @brief The XLCellValueProxy class is used for proxy (or placeholder) objects for XLCellValue objects. + * @details The XLCellValueProxy class is used for proxy (or placeholder) objects for XLCellValue objects. + * The purpose is to enable implicit conversion during assignment operations. XLCellValueProxy objects + * can not be constructed manually by the user, only through XLCell objects. + */ + class OPENXLSX_EXPORT XLCellValueProxy + { + friend class XLCell; + friend class XLCellValue; + + public: + //---------- Public Member Functions ----------// + + /** + * @brief Destructor + */ + ~XLCellValueProxy(); + + /** + * @brief Copy assignment operator. + * @param other XLCellValueProxy object to be copied. + * @return A reference to the current object. + */ + XLCellValueProxy& operator=(const XLCellValueProxy& other); + + /** + * @brief Templated assignment operator + * @tparam T The type of numberValue assigned to the object. + * @param value The value. + * @return A reference to the current object. + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v || + std::is_same_v>::type* = nullptr> + XLCellValueProxy& operator=(T value) + { // NOLINT + + if constexpr (std::is_integral_v && std::is_same_v) // if bool + setBoolean(value); + + else if constexpr (std::is_integral_v && !std::is_same_v) // if integer + setInteger(value); + + else if constexpr (std::is_floating_point_v) // if floating point + setFloat(value); + + else if constexpr (std::is_same_v) + setFloat(value.serial()); + + else if constexpr (std::is_same_v, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || + (std::is_same_v, char*> && !std::is_same_v && !std::is_same_v)) + { + if constexpr (std::is_same_v, const char*> || std::is_same_v, char*>) + setString(value); + else if constexpr (std::is_same_v, std::string_view>) + setString(std::string(value).c_str()); + else + setString(value.c_str()); + } + + if constexpr (std::is_same_v) { + switch (value.type()) { + case XLValueType::Boolean: + setBoolean(value.template get()); + break; + case XLValueType::Integer: + setInteger(value.template get()); + break; + case XLValueType::Float: + setFloat(value.template get()); + break; + case XLValueType::String: + setString(value.template get()); + break; + case XLValueType::Empty: + clear(); + break; + default: + setError("#N/A"); + break; + } + } + + return *this; + } + + /** + * @brief + * @tparam T + * @param value + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v || + std::is_same_v>::type* = nullptr> + void set(T value) + { + *this = value; + } + + /** + * @brief + * @tparam T + * @return + * @todo Is an explicit conversion operator needed as well? + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v>::type* = nullptr> + T get() const + { + return getValue().get(); + } + + /** + * @brief Clear the contents of the cell. + * @return A reference to the current object. + */ + XLCellValueProxy& clear(); + + /** + * @brief Set the cell value to a error state. + * @return A reference to the current object. + */ + XLCellValueProxy& setError(const std::string & error); + + /** + * @brief Get the value type for the cell. + * @return An XLCellValue corresponding to the cell value. + */ + XLValueType type() const; + + /** + * @brief Get the value type of the current object, as a string representation + * @return A std::string representation of the value type. + */ + std::string typeAsString() const; + + /** + * @brief Implicitly convert the XLCellValueProxy object to a XLCellValue object. + * @return An XLCellValue object, corresponding to the cell value. + */ + operator XLCellValue(); // NOLINT + + /** + * @brief + * @tparam T + * @return + */ + template< + typename T, + typename std::enable_if || std::is_floating_point_v || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*> || std::is_same_v>::type* = nullptr> + operator T() const + { + return getValue().get(); + } + + private: + //---------- Private Member Functions ---------- // + + /** + * @brief Constructor + * @param cell Pointer to the parent XLCell object. + * @param cellNode Pointer to the corresponding XMLNode object. + */ + XLCellValueProxy(XLCell* cell, XMLNode* cellNode); + + /** + * @brief Copy constructor + * @param other Object to be copied. + */ + XLCellValueProxy(const XLCellValueProxy& other); + + /** + * @brief Move constructor + * @param other Object to be moved. + */ + XLCellValueProxy(XLCellValueProxy&& other) noexcept; + + /** + * @brief Move assignment operator + * @param other Object to be moved + * @return Reference to moved-to pbject. + */ + XLCellValueProxy& operator=(XLCellValueProxy&& other) noexcept; + + /** + * @brief Set cell to an integer value. + * @param numberValue The value to be set. + */ + void setInteger(int64_t numberValue); + + /** + * @brief Set the cell to a bool value. + * @param numberValue The value to be set. + */ + void setBoolean(bool numberValue); + + /** + * @brief Set the cell to a floating point value. + * @param numberValue The value to be set. + */ + void setFloat(double numberValue); + + /** + * @brief Set the cell to a string value. + * @param stringValue The value to be set. + */ + void setString(const char* stringValue); + + /** + * @brief Get a copy of the XLCellValue object for the cell. + * @return An XLCellValue object. + */ + XLCellValue getValue() const; + + //---------- Private Member Variables ---------- // + + XLCell* m_cell; /**< Pointer to the owning XLCell object. */ + XMLNode* m_cellNode; /**< Pointer to corresponding XML cell node. */ + }; + +} // namespace OpenXLSX + +// TODO: Consider comparison operators on fundamental datatypes +// ========== FRIEND FUNCTION IMPLEMENTATIONS ========== // +namespace OpenXLSX +{ + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator==(const XLCellValue& lhs, const XLCellValue& rhs) + { + return lhs.m_value == rhs.m_value; + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator!=(const XLCellValue& lhs, const XLCellValue& rhs) + { + return lhs.m_value != rhs.m_value; + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator<(const XLCellValue& lhs, const XLCellValue& rhs) + { + return lhs.m_value < rhs.m_value; + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator>(const XLCellValue& lhs, const XLCellValue& rhs) + { + return lhs.m_value > rhs.m_value; + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator<=(const XLCellValue& lhs, const XLCellValue& rhs) + { + return lhs.m_value <= rhs.m_value; + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator>=(const XLCellValue& lhs, const XLCellValue& rhs) + { + return lhs.m_value >= rhs.m_value; + } + + /** + * @brief + * @param os + * @param value + * @return + */ + inline std::ostream& operator<<(std::ostream& os, const XLCellValue& value) + { + switch (value.type()) { + case XLValueType::Empty: + return os << ""; + case XLValueType::Boolean: + return os << value.get(); + case XLValueType::Integer: + return os << value.get(); + case XLValueType::Float: + return os << value.get(); + case XLValueType::String: + return os << value.get(); + default: + return os << ""; + } + } + + inline std::ostream& operator<<(std::ostream& os, const XLCellValueProxy& value) + { + switch (value.type()) { + case XLValueType::Empty: + return os << ""; + case XLValueType::Boolean: + return os << value.get(); + case XLValueType::Integer: + return os << value.get(); + case XLValueType::Float: + return os << value.get(); + case XLValueType::String: + return os << value.get(); + default: + return os << ""; + } + } + + +} // namespace OpenXLSX + +namespace std +{ + template<> + struct hash // NOLINT + { + std::size_t operator()(const OpenXLSX::XLCellValue& value) const noexcept + { + return std::hash> {}(value.m_value); + } + }; +} // namespace std + +#pragma warning(pop) +#endif // OPENXLSX_XLCELLVALUE_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLColor.hpp b/thirdparty/OpenXLSX/include/headers/XLColor.hpp new file mode 100644 index 0000000..3c58438 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLColor.hpp @@ -0,0 +1,229 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCOLOR_HPP +#define OPENXLSX_XLCOLOR_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" + +namespace OpenXLSX +{ + /** + * @brief + */ + class OPENXLSX_EXPORT XLColor + { + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + friend bool operator==(const XLColor& lhs, const XLColor& rhs); + friend bool operator!=(const XLColor& lhs, const XLColor& rhs); + + public: + /** + * @brief + */ + XLColor(); + + /** + * @brief + * @param alpha + * @param red + * @param green + * @param blue + */ + XLColor(uint8_t alpha, uint8_t red, uint8_t green, uint8_t blue); + + /** + * @brief + * @param red + * @param green + * @param blue + */ + XLColor(uint8_t red, uint8_t green, uint8_t blue); + + /** + * @brief + * @param hexCode + */ + explicit XLColor(const std::string& hexCode); + + /** + * @brief + * @param other + */ + XLColor(const XLColor& other); + + /** + * @brief + * @param other + */ + XLColor(XLColor&& other) noexcept; + + /** + * @brief + */ + ~XLColor(); + + /** + * @brief + * @param other + * @return + */ + XLColor& operator=(const XLColor& other); + + /** + * @brief + * @param other + * @return + */ + XLColor& operator=(XLColor&& other) noexcept; + + /** + * @brief + * @param alpha + * @param red + * @param green + * @param blue + */ + void set(uint8_t alpha, uint8_t red, uint8_t green, uint8_t blue); + + /** + * @brief + * @param red + * @param green + * @param blue + */ + void set(uint8_t red = 0, uint8_t green = 0, uint8_t blue = 0); + + /** + * @brief + * @param hexCode + */ + void set(const std::string& hexCode); + + /** + * @brief + * @return + */ + uint8_t alpha() const; + + /** + * @brief + * @return + */ + uint8_t red() const; + + /** + * @brief + * @return + */ + uint8_t green() const; + + /** + * @brief + * @return + */ + uint8_t blue() const; + + /** + * @brief + * @return + */ + std::string hex() const; + + //---------------------------------------------------------------------------------------------------------------------- + // Private Member Variables + //---------------------------------------------------------------------------------------------------------------------- + + private: + uint8_t m_alpha { 255 }; + + uint8_t m_red { 0 }; + + uint8_t m_green { 0 }; + + uint8_t m_blue { 0 }; + }; + +} // namespace OpenXLSX + +namespace OpenXLSX +{ + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator==(const XLColor& lhs, const XLColor& rhs) + { + return lhs.alpha() == rhs.alpha() && lhs.red() == rhs.red() && lhs.green() == rhs.green() && lhs.blue() == rhs.blue(); + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator!=(const XLColor& lhs, const XLColor& rhs) + { + return !(lhs == rhs); + } + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLCOLOR_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLColumn.hpp b/thirdparty/OpenXLSX/include/headers/XLColumn.hpp new file mode 100644 index 0000000..b7735c5 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLColumn.hpp @@ -0,0 +1,139 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCOLUMN_HPP +#define OPENXLSX_XLCOLUMN_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLXmlParser.hpp" + +namespace OpenXLSX +{ + /** + * @brief + */ + class OPENXLSX_EXPORT XLColumn + { + public: + /** + * @brief Constructor + * @param columnNode A pointer to the XMLNode for the column. + */ + explicit XLColumn(const XMLNode& columnNode); + + /** + * @brief Copy Constructor [deleted] + */ + XLColumn(const XLColumn& other); + + /** + * @brief Move Constructor + * @note The move constructor has been explicitly deleted. + */ + XLColumn(XLColumn&& other) noexcept; + + /** + * @brief Destructor + */ + ~XLColumn(); + + /** + * @brief Copy assignment operator [deleted] + */ + XLColumn& operator=(const XLColumn& other); + + /** + * @brief + * @param other + * @return + */ + XLColumn& operator=(XLColumn&& other) noexcept = default; + + /** + * @brief Get the width of the column. + * @return The width of the column. + */ + float width() const; + + /** + * @brief Set the width of the column + * @param width The width of the column + */ + void setWidth(float width); + + /** + * @brief Is the column hidden? + * @return The state of the column. + */ + bool isHidden() const; + + /** + * @brief Set the column to be shown or hidden. + * @param state The state of the column. + */ + void setHidden(bool state); + + /** + * @brief Get the XMLNode object for the column. + * @return The XMLNode for the column + */ + XMLNode& columnNode() const; + + private: + std::unique_ptr m_columnNode; /**< A pointer to the XMLNode object for the column. */ + }; + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLCOLUMN_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLCommandQuery.hpp b/thirdparty/OpenXLSX/include/headers/XLCommandQuery.hpp new file mode 100644 index 0000000..5d503ac --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLCommandQuery.hpp @@ -0,0 +1,224 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCOMMANDQUERY_HPP +#define OPENXLSX_XLCOMMANDQUERY_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "XLXmlData.hpp" +#include "XLSharedStrings.hpp" + +namespace OpenXLSX +{ + /** + * @brief + */ + enum class XLCommandType { + SetSheetName, + SetSheetColor, + SetSheetVisibility, + SetSheetIndex, + SetSheetActive, + ResetCalcChain, + AddSharedStrings, + AddWorksheet, + AddChartsheet, + DeleteSheet, + CloneSheet, + }; + + /** + * @brief + */ + class XLCommand + { + public: + + /** + * @brief + * @param type + */ + explicit XLCommand(XLCommandType type) : m_type(type) {} + + /** + * @brief + * @tparam T + * @param param + * @param value + * @return + */ + template + XLCommand& setParam(const std::string& param, T value) { + m_params[param] = value; + return *this; + } + + /** + * @brief + * @tparam T + * @param param + * @return + */ + template + T getParam(const std::string& param) const { + return std::any_cast(m_params.at(param)); + } + + /** + * @brief + * @return + */ + XLCommandType type() const { + return m_type; + } + + private: + XLCommandType m_type; /*< */ + std::map m_params; /*< */ + }; + + /** + * @brief + */ + enum class XLQueryType { + QuerySheetName, + QuerySheetIndex, + QuerySheetVisibility, + QuerySheetIsActive, + QuerySheetType, + QuerySheetID, + QuerySheetRelsID, + QuerySheetRelsTarget, + QuerySharedStrings, + QueryXmlData + }; + + /** + * @brief + */ + class XLQuery + { + public: + + /** + * @brief + * @param type + */ + explicit XLQuery(XLQueryType type) : m_type(type) {} + + /** + * @brief + * @tparam T + * @param param + * @param value + * @return + */ + template + XLQuery& setParam(const std::string& param, T value) { + m_params[param] = value; + return *this; + } + + /** + * @brief + * @tparam T + * @param param + * @return + */ + template + T getParam(const std::string& param) const { + return std::any_cast(m_params.at(param)); + } + + /** + * @brief + * @tparam T + * @param value + * @return + */ + template + XLQuery& setResult(T value) { + m_result = value; + return *this; + } + + /** + * @brief + * @tparam T + * @return + */ + template + T result() const { + return std::any_cast(m_result); + } + + /** + * @brief + * @return + */ + XLQueryType type() const { + return m_type; + } + + private: + XLQueryType m_type; /*< */ + std::any m_result; /*< */ + std::map m_params; /*< */ + }; + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLCOMMANDQUERY_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLConstants.hpp b/thirdparty/OpenXLSX/include/headers/XLConstants.hpp new file mode 100644 index 0000000..ec314af --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLConstants.hpp @@ -0,0 +1,14 @@ +// +// Created by Kenneth Balslev on 15/08/2021. +// + +#ifndef OPENXLSX_XLCONSTANTS_HPP +#define OPENXLSX_XLCONSTANTS_HPP + +namespace OpenXLSX +{ + inline const uint16_t MAX_COLS = 16'384; + inline const uint32_t MAX_ROWS = 1'048'576; +} // namespace OpenXLSX + +#endif // OPENXLSX_XLCONSTANTS_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLContentTypes.hpp b/thirdparty/OpenXLSX/include/headers/XLContentTypes.hpp new file mode 100644 index 0000000..f1be5e7 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLContentTypes.hpp @@ -0,0 +1,251 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLCONTENTTYPES_HPP +#define OPENXLSX_XLCONTENTTYPES_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLXmlFile.hpp" +#include "XLXmlParser.hpp" + +namespace OpenXLSX +{ + /** + * @brief + */ + enum class XLContentType { + Workbook, + WorkbookMacroEnabled, + Worksheet, + Chartsheet, + ExternalLink, + Theme, + Styles, + SharedStrings, + Drawing, + Chart, + ChartStyle, + ChartColorStyle, + ControlProperties, + CalculationChain, + VBAProject, + CoreProperties, + ExtendedProperties, + CustomProperties, + Comments, + Table, + VMLDrawing, + Unknown + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLContentItem + { + friend class XLContentTypes; + + public: // ---------- Public Member Functions ---------- // + /** + * @brief + */ + XLContentItem(); + + /** + * @brief + * @param node + */ + explicit XLContentItem(const XMLNode& node); + + /** + * @brief + */ + ~XLContentItem(); + + /** + * @brief + * @param other + * @return + */ + XLContentItem(const XLContentItem& other); + + /** + * @brief + * @param other + * @return + */ + XLContentItem(XLContentItem&& other) noexcept; + + /** + * @brief + * @param other + * @return + */ + XLContentItem& operator=(const XLContentItem& other); + + /** + * @brief + * @param other + * @return + */ + XLContentItem& operator=(XLContentItem&& other) noexcept; + + /** + * @brief + * @return + */ + XLContentType type() const; + + /** + * @brief + * @return + */ + std::string path() const; + + private: + std::unique_ptr m_contentNode; /**< */ + }; + + // ================================================================================ + // XLContentTypes Class + // ================================================================================ + + /** + * @brief The purpose of this class is to load, store add and save item in the [Content_Types].xml file. + */ + class OPENXLSX_EXPORT XLContentTypes : public XLXmlFile + { + public: // ---------- Public Member Functions ---------- // + /** + * @brief + */ + XLContentTypes(); + + /** + * @brief + * @param xmlData + */ + explicit XLContentTypes(XLXmlData* xmlData); + + /** + * @brief Destructor + */ + ~XLContentTypes(); + + /** + * @brief + * @param other + */ + XLContentTypes(const XLContentTypes& other); + + /** + * @brief + * @param other + */ + XLContentTypes(XLContentTypes&& other) noexcept; + + /** + * @brief + * @param other + * @return + */ + XLContentTypes& operator=(const XLContentTypes& other); + + /** + * @brief + * @param other + * @return + */ + XLContentTypes& operator=(XLContentTypes&& other) noexcept; + + /** + * @brief Add a new override key/getValue pair to the data store. + * @param path The key + * @param type The getValue + */ + void addOverride(const std::string& path, XLContentType type); + + /** + * @brief + * @param path + */ + void deleteOverride(const std::string& path); + + /** + * @brief + * @param item + */ + void deleteOverride(XLContentItem& item); + + /** + * @brief + * @param path + * @return + */ + XLContentItem contentItem(const std::string& path); + + /** + * @brief + * @return + */ + std::vector getContentItems(); + + // ---------- Protected Member Functions ---------- // + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLCONTENTTYPES_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLDateTime.hpp b/thirdparty/OpenXLSX/include/headers/XLDateTime.hpp new file mode 100644 index 0000000..94797b1 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLDateTime.hpp @@ -0,0 +1,173 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLDATETIME_HPP +#define OPENXLSX_XLDATETIME_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLException.hpp" + +// ========== CLASS AND ENUM TYPE DEFINITIONS ========== // +namespace OpenXLSX +{ + class OPENXLSX_EXPORT XLDateTime + { + public: + + /** + * @brief Constructor. + */ + XLDateTime(); + + /** + * @brief Constructor taking an Excel time point serial number as an argument. + * @param serial Excel time point serial number. + */ + explicit XLDateTime(double serial); + + /** + * @brief Constructor taking a std::tm struct as an argument. + * @param timepoint A std::tm struct. + */ + explicit XLDateTime(const std::tm& timepoint); + + /** + * @brief Constructor taking a unixtime format (seconds since 1/1/1970) as an argument. + * @param unixtime A time_t number. + */ + explicit XLDateTime(time_t unixtime); + + /** + * @brief Copy constructor. + * @param other Object to be copied. + */ + XLDateTime(const XLDateTime& other); + + /** + * @brief Move constructor. + * @param other Object to be moved. + */ + XLDateTime(XLDateTime&& other) noexcept; + + /** + * @brief Destructor + */ + ~XLDateTime(); + + /** + * @brief Copy assignment operator. + * @param other Object to be copied. + * @return Reference to the copied-to object. + */ + XLDateTime& operator=(const XLDateTime& other); + + /** + * @brief Move assignment operator. + * @param other Object to be moved. + * @return Reference to the moved-to object. + */ + XLDateTime& operator=(XLDateTime&& other) noexcept; + + /** + * @brief Assignment operator taking an Excel date/time serial number as an argument. + * @param serial A floating point value with the serial number. + * @return Reference to the copied-to object. + */ + XLDateTime& operator=(double serial); + + /** + * @brief Assignment operator taking a std::tm object as an argument. + * @param timepoint std::tm object with the time point + * @return Reference to the copied-to object. + */ + XLDateTime& operator=(const std::tm& timepoint); + + /** + * @brief Implicit conversion to Excel date/time serial number (any floating point type). + * @tparam T Type to convert to (any floating point type). + * @return Excel date/time serial number. + */ + template >::type* = nullptr> + operator T() const // NOLINT + { + return serial(); + } + + /** + * @brief Implicit conversion to std::tm object. + * @return std::tm object. + */ + operator std::tm() const; // NOLINT + + /** + * @brief Get the date/time in the form of an Excel date/time serial number. + * @return A double with the serial number. + */ + double serial() const; + + /** + * @brief Get the date/time in the form of a std::tm struct. + * @return A std::tm struct with the time point. + */ + std::tm tm() const; + + private: + double m_serial {1.0}; /**< */ + + + }; +} // namespace OpenXLSX + +#endif // OPENXLSX_XLDATETIME_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLDocument.hpp b/thirdparty/OpenXLSX/include/headers/XLDocument.hpp new file mode 100644 index 0000000..8574438 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLDocument.hpp @@ -0,0 +1,320 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLDOCUMENT_HPP +#define OPENXLSX_XLDOCUMENT_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "IZipArchive.hpp" +#include "OpenXLSX-Exports.hpp" +#include "XLCommandQuery.hpp" +#include "XLContentTypes.hpp" +#include "XLException.hpp" +#include "XLProperties.hpp" +#include "XLRelationships.hpp" +#include "XLSharedStrings.hpp" +#include "XLWorkbook.hpp" +#include "XLXmlData.hpp" +#include "XLZipArchive.hpp" + +namespace OpenXLSX +{ + /** + * @brief The XLDocumentProperties class is an enumeration of the possible properties (metadata) that can be set + * for a XLDocument object (and .xlsx file) + */ + enum class XLProperty { + Title, + Subject, + Creator, + Keywords, + Description, + LastModifiedBy, + LastPrinted, + CreationDate, + ModificationDate, + Category, + Application, + DocSecurity, + ScaleCrop, + Manager, + Company, + LinksUpToDate, + SharedDoc, + HyperlinkBase, + HyperlinksChanged, + AppVersion + }; + + /** + * @brief This class encapsulates the concept of an excel file. It is different from the XLWorkbook, in that an + * XLDocument holds an XLWorkbook together with its metadata, as well as methods for opening, + * closing and saving the document.\nThe XLDocument is the entrypoint for clients + * using the RapidXLSX library. + */ + class OPENXLSX_EXPORT XLDocument final + { + //----- Friends + friend class XLXmlFile; + friend class XLWorkbook; + friend class XLSheet; + friend class XLXmlData; + + //---------- Public Member Functions + public: + /** + * @brief Constructor. The default constructor with no arguments. + */ + explicit XLDocument(const IZipArchive& zipArchive = XLZipArchive()); + + /** + * @brief Constructor. An alternative constructor, taking the path to the .xlsx file as an argument. + * @param docPath A std::string with the path to the .xlsx file. + */ + explicit XLDocument(const std::string& docPath, const IZipArchive& zipArchive = XLZipArchive()); + + /** + * @brief Copy constructor + * @param other The object to copy + * @note Copy constructor explicitly deleted. + */ + XLDocument(const XLDocument& other) = delete; + + /** + * @brief + * @param other + */ + XLDocument(XLDocument&& other) noexcept = default; + + /** + * @brief Destructor + */ + ~XLDocument(); + + /** + * @brief + * @param other + * @return + */ + XLDocument& operator=(const XLDocument& other) = delete; + + /** + * @brief + * @param other + * @return + */ + XLDocument& operator=(XLDocument&& other) noexcept = default; + + /** + * @brief Open the .xlsx file with the given path + * @param fileName The path of the .xlsx file to open + */ + void open(const std::string& fileName); + + /** + * @brief Create a new .xlsx file with the given name. + * @param fileName The path of the new .xlsx file. + */ + void create(const std::string& fileName); + + /** + * @brief Close the current document + */ + void close(); + + /** + * @brief Save the current document using the current filename, overwriting the existing file. + * @return true if successful; otherwise false. + */ + void save(); + + /** + * @brief Save the document with a new name. If a file exists with that name, it will be overwritten. + * @param fileName The path of the file + * @return true if successful; otherwise false. + */ + void saveAs(const std::string& fileName); + + /** + * @brief Get the filename of the current document, e.g. "spreadsheet.xlsx". + * @return A std::string with the filename. + */ + const std::string& name() const; + + /** + * @brief Get the full path of the current document, e.g. "drive/blah/spreadsheet.xlsx" + * @return A std::string with the path. + */ + const std::string& path() const; + + /** + * @brief Get the underlying workbook object, as a const object. + * @return A const pointer to the XLWorkbook object. + */ + XLWorkbook workbook() const; + + /** + * @brief Get the requested document property. + * @param prop The name of the property to get. + * @return The property as a string + */ + std::string property(XLProperty prop) const; + + /** + * @brief Set a property + * @param prop The property to set. + * @param value The getValue of the property, as a string + */ + void setProperty(XLProperty prop, const std::string& value); + + /** + * @brief + * @return + */ + explicit operator bool() const; + + /** + * @brief + * @return + */ + bool isOpen() const; + + /** + * @brief Delete the property from the document + * @param theProperty The property to delete from the document + */ + void deleteProperty(XLProperty theProperty); + + /** + * @brief + * @param command + */ + void execCommand(const XLCommand& command); + + /** + * @brief + * @param query + * @return + */ + XLQuery execQuery(const XLQuery& query) const; + + /** + * @brief + * @param query + * @return + */ + XLQuery execQuery(const XLQuery& query); + + + //---------------------------------------------------------------------------------------------------------------------- + // Protected Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + protected: + /** + * @brief Get an XML file from the .xlsx archive. + * @param path The relative path of the file. + * @return A std::string with the content of the file + */ + std::string extractXmlFromArchive(const std::string& path); + + /** + * @brief + * @param path + * @return + */ + XLXmlData* getXmlData(const std::string& path); + + /** + * @brief + * @param path + * @return + */ + const XLXmlData* getXmlData(const std::string& path) const; + + /** + * @brief + * @param path + * @return + */ + bool hasXmlData(const std::string& path) const; + + //---------------------------------------------------------------------------------------------------------------------- + // Private Member Variables + //---------------------------------------------------------------------------------------------------------------------- + + private: + std::string m_filePath {}; /**< The path to the original file*/ + std::string m_realPath {}; /**< */ + + mutable std::list m_data {}; /**< */ + mutable std::deque m_sharedStringCache {}; /**< */ + mutable XLSharedStrings m_sharedStrings {}; /**< */ + + XLRelationships m_docRelationships {}; /**< A pointer to the document relationships object*/ + XLRelationships m_wbkRelationships {}; /**< A pointer to the document relationships object*/ + XLContentTypes m_contentTypes {}; /**< A pointer to the content types object*/ + XLAppProperties m_appProperties {}; /**< A pointer to the App properties object */ + XLProperties m_coreProperties {}; /**< A pointer to the Core properties object*/ + XLWorkbook m_workbook {}; /**< A pointer to the workbook object */ + IZipArchive m_archive {}; /**< */ + }; + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLDOCUMENT_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLException.hpp b/thirdparty/OpenXLSX/include/headers/XLException.hpp new file mode 100644 index 0000000..dbcad11 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLException.hpp @@ -0,0 +1,155 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLEXCEPTION_HPP +#define OPENXLSX_XLEXCEPTION_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" + +namespace OpenXLSX +{ + /** + * @brief + */ + class OPENXLSX_EXPORT XLException : public std::runtime_error + { + public: + inline explicit XLException(const std::string& err) : runtime_error(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLOverflowError : public XLException + { + public: + inline explicit XLOverflowError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLValueTypeError : public XLException + { + public: + inline explicit XLValueTypeError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLCellAddressError : public XLException + { + public: + inline explicit XLCellAddressError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLInputError : public XLException + { + public: + inline explicit XLInputError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLInternalError : public XLException + { + public: + inline explicit XLInternalError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLPropertyError : public XLException + { + public: + inline explicit XLPropertyError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLSheetError : public XLException + { + public: + inline explicit XLSheetError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLDateTimeError : public XLException + { + public: + inline explicit XLDateTimeError(const std::string& err) : XLException(err) {}; + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLFormulaError : public XLException + { + public: + inline explicit XLFormulaError(const std::string& err) : XLException(err) {}; + }; + + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLEXCEPTION_HPP \ No newline at end of file diff --git a/thirdparty/OpenXLSX/include/headers/XLFormula.hpp b/thirdparty/OpenXLSX/include/headers/XLFormula.hpp new file mode 100644 index 0000000..21326fb --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLFormula.hpp @@ -0,0 +1,365 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLFORMULA_HPP +#define OPENXLSX_XLFORMULA_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLException.hpp" +#include "XLXmlParser.hpp" + +// ========== CLASS AND ENUM TYPE DEFINITIONS ========== // +namespace OpenXLSX +{ + //---------- Forward Declarations ----------// + class XLFormulaProxy; + class XLCell; + + /** + * @brief The XLFormula class encapsulates the concept of an Excel formula. The class is essentially + * a wrapper around a std::string. + * @warning This class currently only supports simple formulas. Array formulas and shared formulas are + * not supported. Unfortunately, many spreadsheets have shared formulas, so this class is probably + * best used for adding formulas, not reading them from an existing spreadsheet. + * @todo Enable handling of shared and array formulas. + */ + class OPENXLSX_EXPORT XLFormula + { + //---------- Friend Declarations ----------// + + friend bool operator==(const XLFormula& lhs, const XLFormula& rhs); + friend bool operator!=(const XLFormula& lhs, const XLFormula& rhs); + friend std::ostream& operator<<(std::ostream& os, const XLFormula& value); + + public: + /** + * @brief Constructor + */ + XLFormula(); + + /** + * @brief Constructor, taking a string-type argument + * @tparam T Type of argument used. Must be string-type. + * @param formula The formula to initialize the object with. + */ + template, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || std::is_same_v, char*>>::type* = nullptr> + explicit XLFormula(T formula) + { + // ===== If the argument is a const char *, use the argument directly; otherwise, assume it has a .c_str() function. + if constexpr (std::is_same_v, const char*> || std::is_same_v, char*>) + m_formulaString = formula; + else if constexpr (std::is_same_v, std::string_view>) + m_formulaString = std::string(formula); + else + m_formulaString = formula.c_str(); + } + + /** + * @brief Copy constructor. + * @param other Object to be copied. + */ + XLFormula(const XLFormula& other); + + /** + * @brief Move constructor. + * @param other Object to be moved. + */ + XLFormula(XLFormula&& other) noexcept; + + /** + * @brief Destructor. + */ + ~XLFormula(); + + /** + * @brief Copy assignment operator. + * @param other Object to be copied. + * @return Reference to copied-to object. + */ + XLFormula& operator=(const XLFormula& other); + + /** + * @brief Move assignment operator. + * @param other Object to be moved. + * @return Reference to moved-to object. + */ + XLFormula& operator=(XLFormula&& other) noexcept; + + /** + * @brief Templated assignment operator, taking a string-type object as an argument. + * @tparam T Type of argument (only string-types are allowed). + * @param formula String containing the formula. + * @return Reference to the assigned-to object. + */ + template, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || std::is_same_v, char*>>::type* = nullptr> + XLFormula& operator=(T formula) + { + XLFormula temp(formula); + std::swap(*this, temp); + return *this; + } + + /** + * @brief Templated setter function, taking a string-type object as an argument. + * @tparam T Type of argument (only string-types are allowed). + * @param formula String containing the formula. + */ + template, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || std::is_same_v, char*>>::type* = nullptr> + void set(T formula) + { + *this = formula; + } + + /** + * @brief Get the forumla as a std::string. + * @return A std::string with the formula. + */ + std::string get() const; + + /** + * @brief Conversion operator, for converting object to a std::string. + * @return The formula as a std::string. + */ + operator std::string() const; // NOLINT + + /** + * @brief Clear the formula. + * @return Return a reference to the cleared object. + */ + XLFormula& clear(); + + private: + std::string m_formulaString; /**< A std::string, holding the formula string.*/ + }; + + /** + * @brief The XLFormulaProxy serves as a placeholder for XLFormula objects. This enable + * getting and setting formulas through the same interface. + */ + class OPENXLSX_EXPORT XLFormulaProxy + { + friend class XLCell; + friend class XLFormula; + + public: + /** + * @brief Destructor + */ + ~XLFormulaProxy(); + + /** + * @brief Copy assignment operator. + * @param other Object to be copied. + * @return A reference to the copied-to object. + */ + XLFormulaProxy& operator=(const XLFormulaProxy& other); + + /** + * @brief Templated assignment operator, taking a string-type argument. + * @tparam T Type of argument. + * @param formula The formula string to be assigned. + * @return A reference to the copied-to object. + */ + template< + typename T, + typename std::enable_if, XLFormula> || std::is_same_v, std::string> || + std::is_same_v, std::string_view> || std::is_same_v, const char*> || + std::is_same_v, char*>>::type* = nullptr> + XLFormulaProxy& operator=(T formula) + { + if constexpr (std::is_same_v, XLFormula>) + setFormulaString(formula.get().c_str()); + else if constexpr (std::is_same_v, std::string>) + setFormulaString(formula.c_str()); + else if constexpr (std::is_same_v, std::string_view>) + setFormulaString(std::string(formula).c_str()); + else + setFormulaString(formula); + + return *this; + } + + /** + * @brief Templated setter, taking a string-type argument. + * @tparam T Type of argument. + * @param formula The formula string to be assigned. + */ + template, std::string> || std::is_same_v, std::string_view> || + std::is_same_v, const char*> || std::is_same_v, char*>>::type* = nullptr> + void set(T formula) + { + *this = formula; + } + + /** + * @brief Get the forumla as a std::string. + * @return A std::string with the formula. + */ + std::string get() const; + + /** + * @brief Clear the formula. + * @return Return a reference to the cleared object. + */ + XLFormulaProxy& clear(); + + /** + * @brief Conversion operator, for converting the object to a std::string. + * @return The formula as a std::string. + */ + operator std::string() const; // NOLINT + + /** + * @brief Implicit conversion to XLFormula object. + * @return Returns the corresponding XLFormula object. + */ + operator XLFormula() const; // NOLINT + + private: + /** + * @brief Constructor, taking pointers to the cell and cell node objects. + * @param cell Pointer to the associated cell object. + * @param cellNode Pointer to the associated cell node object. + */ + XLFormulaProxy(XLCell* cell, XMLNode* cellNode); + + /** + * @brief Copy constructor. + * @param other Object to be copied. + */ + XLFormulaProxy(const XLFormulaProxy& other); + + /** + * @brief Move constructor. + * @param other Object to be moved. + */ + XLFormulaProxy(XLFormulaProxy&& other) noexcept; + + /** + * @brief Move assignment operator. + * @param other Object to be moved. + * @return A reference to the moved-to object. + */ + XLFormulaProxy& operator=(XLFormulaProxy&& other) noexcept; + + /** + * @brief Set the formula to the given string. + * @param formulaString String holding the formula. + */ + void setFormulaString(const char* formulaString); + + /** + * @brief Get the underlying XLFormula object. + * @return A XLFormula object. + * @throw XLFormulaError if the formula is of 'shared' or 'array' types. + */ + XLFormula getFormula() const; + + //---------- Private Member Variables ---------- // + XLCell* m_cell; /**< Pointer to the owning XLCell object. */ + XMLNode* m_cellNode; /**< Pointer to corresponding XML cell node. */ + }; +} // namespace OpenXLSX + +// ========== FRIEND FUNCTION IMPLEMENTATIONS ========== // +namespace OpenXLSX +{ + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator==(const XLFormula& lhs, const XLFormula& rhs) + { + return lhs.m_formulaString == rhs.m_formulaString; + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator!=(const XLFormula& lhs, const XLFormula& rhs) + { + return lhs.m_formulaString != rhs.m_formulaString; + } + + /** + * @brief + * @param os + * @param value + * @return + */ + inline std::ostream& operator<<(std::ostream& os, const XLFormula& value) + { + return os << value.m_formulaString; + } +} // namespace OpenXLSX + +#endif // OPENXLSX_XLFORMULA_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLIterator.hpp b/thirdparty/OpenXLSX/include/headers/XLIterator.hpp new file mode 100644 index 0000000..0f2ef23 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLIterator.hpp @@ -0,0 +1,15 @@ +// +// Created by Kenneth Balslev on 22/08/2020. +// + +#ifndef OPENXLSX_XLITERATOR_HPP +#define OPENXLSX_XLITERATOR_HPP + +namespace OpenXLSX +{ + enum class XLIteratorDirection { Forward, Reverse }; + enum class XLIteratorLocation { Begin, End }; + +} // namespace OpenXLSX + +#endif // OPENXLSX_XLITERATOR_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLProperties.hpp b/thirdparty/OpenXLSX/include/headers/XLProperties.hpp new file mode 100644 index 0000000..9f8c5d5 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLProperties.hpp @@ -0,0 +1,298 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLPROPERTIES_HPP +#define OPENXLSX_XLPROPERTIES_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLXmlFile.hpp" + +namespace OpenXLSX +{ + /** + * @brief + */ + class OPENXLSX_EXPORT XLProperties : public XLXmlFile + { + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief + */ + XLProperties() = default; + + /** + * @brief + * @param xmlData + */ + explicit XLProperties(XLXmlData* xmlData); + + /** + * @brief + * @param other + */ + XLProperties(const XLProperties& other) = default; + + /** + * @brief + * @param other + */ + XLProperties(XLProperties&& other) noexcept = default; + + /** + * @brief + */ + ~XLProperties(); + + /** + * @brief + * @param other + * @return + */ + XLProperties& operator=(const XLProperties& other) = default; + + /** + * @brief + * @param other + * @return + */ + XLProperties& operator=(XLProperties&& other) = default; + + /** + * @brief + * @param name + * @param value + * @return + */ + void setProperty(const std::string& name, const std::string& value); + + /** + * @brief + * @param name + * @param value + * @return + */ + void setProperty(const std::string& name, int value); + + /** + * @brief + * @param name + * @param value + * @return + */ + void setProperty(const std::string& name, double value); + + /** + * @brief + * @param name + * @return + */ + std::string property(const std::string& name) const; + + /** + * @brief + * @param name + */ + void deleteProperty(const std::string& name); + + //---------------------------------------------------------------------------------------------------------------------- + // Protected Member Functions + //---------------------------------------------------------------------------------------------------------------------- + }; + + /** + * @brief This class is a specialization of the XLAbstractXMLFile, with the purpose of the representing the + * document app properties in the app.xml file (docProps folder) in the .xlsx package. + */ + class OPENXLSX_EXPORT XLAppProperties : public XLXmlFile + { + //-------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //-------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief + */ + XLAppProperties() = default; + + /** + * @brief + * @param xmlData + */ + explicit XLAppProperties(XLXmlData* xmlData); + + /** + * @brief + * @param other + */ + XLAppProperties(const XLAppProperties& other) = default; + + /** + * @brief + * @param other + */ + XLAppProperties(XLAppProperties&& other) noexcept = default; + + /** + * @brief + */ + ~XLAppProperties(); + + /** + * @brief + * @param other + * @return + */ + XLAppProperties& operator=(const XLAppProperties& other) = default; + + /** + * @brief + * @param other + * @return + */ + XLAppProperties& operator=(XLAppProperties&& other) noexcept = default; + + /** + * @brief + * @param title + * @return + */ + void addSheetName(const std::string& title); + + /** + * @brief + * @param title + */ + void deleteSheetName(const std::string& title); + + /** + * @brief + * @param oldTitle + * @param newTitle + */ + void setSheetName(const std::string& oldTitle, const std::string& newTitle); + + /** + * @brief + * @param name + * @param value + */ + void addHeadingPair(const std::string& name, int value); + + /** + * @brief + * @param name + */ + void deleteHeadingPair(const std::string& name); + + /** + * @brief + * @param name + * @param newValue + */ + void setHeadingPair(const std::string& name, int newValue); + + /** + * @brief + * @param name + * @param value + * @return + */ + void setProperty(const std::string& name, const std::string& value); + + /** + * @brief + * @param name + * @return + */ + std::string property(const std::string& name) const; + + /** + * @brief + * @param name + */ + void deleteProperty(const std::string& name); + + /** + * @brief + * @param sheetName + * @return + */ + void appendSheetName(const std::string& sheetName); + + /** + * @brief + * @param sheetName + * @return + */ + void prependSheetName(const std::string& sheetName); + + /** + * @brief + * @param sheetName + * @param index + * @return + */ + void insertSheetName(const std::string& sheetName, unsigned int index); + }; + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLPROPERTIES_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLRelationships.hpp b/thirdparty/OpenXLSX/include/headers/XLRelationships.hpp new file mode 100644 index 0000000..d0d4b8a --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLRelationships.hpp @@ -0,0 +1,278 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLRELATIONSHIPS_HPP +#define OPENXLSX_XLRELATIONSHIPS_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLXmlFile.hpp" +#include "XLXmlParser.hpp" + +namespace OpenXLSX +{ + class XLRelationships; + + class XLRelationshipItem; + + /** + * @brief An enum of the possible relationship (or XML document) types used in relationship (.rels) XML files. + */ + enum class XLRelationshipType { + CoreProperties, + ExtendedProperties, + CustomProperties, + Workbook, + Worksheet, + Chartsheet, + Dialogsheet, + Macrosheet, + CalculationChain, + ExternalLink, + ExternalLinkPath, + Theme, + Styles, + Chart, + ChartStyle, + ChartColorStyle, + Image, + Drawing, + VMLDrawing, + SharedStrings, + PrinterSettings, + VBAProject, + ControlProperties, + Unknown + }; + + /** + * @brief An encapsulation of a relationship item, i.e. an XML file in the document, its type and an ID number. + */ + class OPENXLSX_EXPORT XLRelationshipItem + { + public: // ---------- Public Member Functions ---------- // + /** + * @brief + */ + XLRelationshipItem(); + + /** + * @brief Constructor. New items should only be created through an XLRelationship object. + * @param node An XMLNode object with the relationship item. If no input is provided, a null node is used. + */ + explicit XLRelationshipItem(const XMLNode& node); + + /** + * @brief Copy Constructor. + * @param other Object to be copied. + */ + XLRelationshipItem(const XLRelationshipItem& other); + + /** + * @brief Move Constructor. + * @param other Object to be moved. + */ + XLRelationshipItem(XLRelationshipItem&& other) noexcept = default; + + /** + * @brief + */ + ~XLRelationshipItem(); + + /** + * @brief Copy assignment operator. + * @param other Right hand side of assignment operation. + * @return A reference to the lhs object. + */ + XLRelationshipItem& operator=(const XLRelationshipItem& other); + + /** + * @brief Move assignment operator. + * @param other Right hand side of assignment operation. + * @return A reference to lhs object. + */ + XLRelationshipItem& operator=(XLRelationshipItem&& other) noexcept = default; + + /** + * @brief Get the type of the current relationship item. + * @return An XLRelationshipType enum object, corresponding to the type. + */ + XLRelationshipType type() const; + + /** + * @brief Get the target, i.e. the path to the XML file the relationship item refers to. + * @return An XMLAttribute object containing the Target getValue. + */ + std::string target() const; + + /** + * @brief Get the id of the relationship item. + * @return An XMLAttribute object containing the Id getValue. + */ + std::string id() const; + + private: // ---------- Private Member Variables ---------- // + std::unique_ptr m_relationshipNode; /**< An XMLNode object with the relationship item */ + }; + + // ================================================================================ + // XLRelationships Class + // ================================================================================ + + /** + * @brief An encapsulation of relationship files (.rels files) in an Excel document package. + */ + class OPENXLSX_EXPORT XLRelationships : public XLXmlFile + { + public: // ---------- Public Member Functions ---------- // + /** + * @brief + */ + XLRelationships() = default; + + /** + * @brief + * @param xmlData + */ + explicit XLRelationships(XLXmlData* xmlData); + + /** + * @brief Destructor + */ + ~XLRelationships(); + + /** + * @brief + * @param other + */ + XLRelationships(const XLRelationships& other) = default; + + /** + * @brief + * @param other + */ + XLRelationships(XLRelationships&& other) noexcept = default; + + /** + * @brief + * @param other + * @return + */ + XLRelationships& operator=(const XLRelationships& other) = default; + + /** + * @brief + * @param other + * @return + */ + XLRelationships& operator=(XLRelationships&& other) noexcept = default; + + /** + * @brief Look up a relationship item by ID. + * @param id The ID string of the relationship item to retrieve. + * @return An XLRelationshipItem object. + */ + XLRelationshipItem relationshipById(const std::string& id) const; + + /** + * @brief Look up a relationship item by Target. + * @param target The Target string of the relationship item to retrieve. + * @return An XLRelationshipItem object. + */ + XLRelationshipItem relationshipByTarget(const std::string& target) const; + + /** + * @brief Get the std::map with the relationship items, ordered by ID. + * @return A const reference to the std::map with relationship items. + */ + std::vector relationships() const; + + /** + * @brief + * @param relID + */ + void deleteRelationship(const std::string& relID); + + /** + * @brief Delete an item from the Relationships register + * @param item The XLRelationshipItem object to delete. + */ + void deleteRelationship(const XLRelationshipItem& item); + + /** + * @brief Add a new relationship item to the XLRelationships object. + * @param type The type of the new relationship item. + * @param target The target (or path) of the XML file for the relationship item. + */ + XLRelationshipItem addRelationship(XLRelationshipType type, const std::string& target); + + /** + * @brief Check if a XLRelationshipItem with the given Target string exists. + * @param target The Target string to look up. + * @return true if the XLRelationshipItem exists; otherwise false. + */ + bool targetExists(const std::string& target) const; + + /** + * @brief Check if a XLRelationshipItem with the given Id string exists. + * @param id The Id string to look up. + * @return true if the XLRelationshipItem exists; otherwise false. + */ + bool idExists(const std::string& id) const; + + // ---------- Protected Member Functions ---------- // + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLRELATIONSHIPS_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLRow.hpp b/thirdparty/OpenXLSX/include/headers/XLRow.hpp new file mode 100644 index 0000000..a1647f2 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLRow.hpp @@ -0,0 +1,496 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLROW_HPP +#define OPENXLSX_XLROW_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLRowData.hpp" + +// ========== CLASS AND ENUM TYPE DEFINITIONS ========== // +namespace OpenXLSX +{ + class XLRowRange; + + /** + * @brief The XLRow class represent a row in an Excel spreadsheet. Using XLRow objects, various row formatting + * options can be set and modified. + */ + class OPENXLSX_EXPORT XLRow + { + friend class XLRowIterator; + friend class XLRowDataProxy; + friend bool operator==(const XLRow& lhs, const XLRow& rhs); + friend bool operator!=(const XLRow& lhs, const XLRow& rhs); + friend bool operator<(const XLRow& lhs, const XLRow& rhs); + friend bool operator>(const XLRow& lhs, const XLRow& rhs); + friend bool operator<=(const XLRow& lhs, const XLRow& rhs); + friend bool operator>=(const XLRow& lhs, const XLRow& rhs); + + //---------- PUBLIC MEMBER FUNCTIONS ----------// + public: + /** + * @brief Default constructor + */ + XLRow(); + + /** + * @brief + * @param rowNode + * @param sharedStrings + */ + XLRow(const XMLNode& rowNode, const XLSharedStrings& sharedStrings); + + /** + * @brief Copy Constructor + * @note The copy constructor is explicitly deleted + */ + XLRow(const XLRow& other); + + /** + * @brief Move Constructor + * @note The move constructor has been explicitly deleted. + */ + XLRow(XLRow&& other) noexcept; + + /** + * @brief Destructor + * @note The destructor has a default implementation. + */ + ~XLRow(); + + /** + * @brief Copy assignment operator. + * @note The copy assignment operator is explicitly deleted. + */ + XLRow& operator=(const XLRow& other); + + /** + * @brief Move assignment operator. + * @note The move assignment operator has been explicitly deleted. + */ + XLRow& operator=(XLRow&& other) noexcept; + + /** + * @brief Get the height of the row. + * @return the row height. + */ + double height() const; + + /** + * @brief Set the height of the row. + * @param height The height of the row. + */ + void setHeight(float height); + + /** + * @brief Get the descent of the row, which is the vertical distance in pixels from the bottom of the cells + * in the current row to the typographical baseline of the cell content. + * @return The row descent. + */ + float descent() const; + + /** + * @brief Set the descent of the row, which is he vertical distance in pixels from the bottom of the cells + * in the current row to the typographical baseline of the cell content. + * @param descent The row descent. + */ + void setDescent(float descent); + + /** + * @brief Is the row hidden? + * @return The state of the row. + */ + bool isHidden() const; + + /** + * @brief Set the row to be hidden or visible. + * @param state The state of the row. + */ + void setHidden(bool state); + + /** + * @brief + * @return + */ + uint64_t rowNumber() const; + + /** + * @brief Get the number of cells in the row. + * @return The number of cells in the row. + */ + unsigned int cellCount() const; + + /** + * @brief + * @return + */ + XLRowDataProxy& values(); + + /** + * @brief + * @return + */ + const XLRowDataProxy& values() const; + + /** + * @brief + * @tparam T + * @return + */ + template + T values() const + { + return static_cast(values()); + } + + /** + * @brief + * @return + */ + XLRowDataRange cells() const; + + /** + * @brief + * @param cellCount + * @return + */ + XLRowDataRange cells(uint16_t cellCount) const; + + /** + * @brief + * @param firstCell + * @param lastCell + * @return + */ + XLRowDataRange cells(uint16_t firstCell, uint16_t lastCell) const; + + private: + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + static bool isEqual(const XLRow& lhs, const XLRow& rhs); + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + static bool isLessThan(const XLRow& lhs, const XLRow& rhs); + + //---------- PRIVATE MEMBER VARIABLES ----------// + std::unique_ptr m_rowNode; /**< The XMLNode object for the row. */ + XLSharedStrings m_sharedStrings; /**< */ + XLRowDataProxy m_rowDataProxy; /**< */ + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLRowIterator + { + public: + using iterator_category = std::forward_iterator_tag; + using value_type = XLRow; + using difference_type = int64_t; + using pointer = XLRow*; + using reference = XLRow&; + + /** + * @brief + * @param rowRange + * @param loc + */ + explicit XLRowIterator(const XLRowRange& rowRange, XLIteratorLocation loc); + + /** + * @brief + */ + ~XLRowIterator(); + + /** + * @brief + * @param other + */ + XLRowIterator(const XLRowIterator& other); + + /** + * @brief + * @param other + */ + XLRowIterator(XLRowIterator&& other) noexcept; + + /** + * @brief + * @param other + * @return + */ + XLRowIterator& operator=(const XLRowIterator& other); + + /** + * @brief + * @param other + * @return + */ + XLRowIterator& operator=(XLRowIterator&& other) noexcept; + + /** + * @brief + * @return + */ + XLRowIterator& operator++(); + + /** + * @brief + * @return + */ + XLRowIterator operator++(int); // NOLINT + + /** + * @brief + * @return + */ + reference operator*(); + + /** + * @brief + * @return + */ + pointer operator->(); + + /** + * @brief + * @param rhs + * @return + */ + bool operator==(const XLRowIterator& rhs) const; + + /** + * @brief + * @param rhs + * @return + */ + bool operator!=(const XLRowIterator& rhs) const; + + /** + * @brief + * @return + */ + explicit operator bool() const; + + private: + std::unique_ptr m_dataNode; /**< */ + uint32_t m_firstRow { 1 }; /**< The cell reference of the first cell in the range */ + uint32_t m_lastRow { 1 }; /**< The cell reference of the last cell in the range */ + XLRow m_currentRow; /**< */ + XLSharedStrings m_sharedStrings; /**< */ + }; + + /** + * @brief + */ + class OPENXLSX_EXPORT XLRowRange + { + friend class XLRowIterator; + + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief + * @param dataNode + * @param first + * @param last + * @param sharedStrings + */ + explicit XLRowRange(const XMLNode& dataNode, uint32_t first, uint32_t last, const XLSharedStrings& sharedStrings); + + /** + * @brief + * @param other + */ + XLRowRange(const XLRowRange& other); + + /** + * @brief + * @param other + */ + XLRowRange(XLRowRange&& other) noexcept; + + /** + * @brief + */ + ~XLRowRange(); + + /** + * @brief + * @param other + * @return + */ + XLRowRange& operator=(const XLRowRange& other); + + /** + * @brief + * @param other + * @return + */ + XLRowRange& operator=(XLRowRange&& other) noexcept; + + /** + * @brief + * @return + */ + uint32_t rowCount() const; + + /** + * @brief + * @return + */ + XLRowIterator begin(); + + /** + * @brief + * @return + */ + XLRowIterator end(); + + //---------------------------------------------------------------------------------------------------------------------- + // Private Member Variables + //---------------------------------------------------------------------------------------------------------------------- + + private: + std::unique_ptr m_dataNode; /**< */ + uint32_t m_firstRow; /**< The cell reference of the first cell in the range */ + uint32_t m_lastRow; /**< The cell reference of the last cell in the range */ + XLSharedStrings m_sharedStrings; /**< */ + }; + +} // namespace OpenXLSX + +// ========== FRIEND FUNCTION IMPLEMENTATIONS ========== // +namespace OpenXLSX +{ + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator==(const XLRow& lhs, const XLRow& rhs) + { + return XLRow::isEqual(lhs, rhs); + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator!=(const XLRow& lhs, const XLRow& rhs) + { + return !(lhs.m_rowNode == rhs.m_rowNode); + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator<(const XLRow& lhs, const XLRow& rhs) + { + return XLRow::isLessThan(lhs, rhs); + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator>(const XLRow& lhs, const XLRow& rhs) + { + return (rhs < lhs); + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator<=(const XLRow& lhs, const XLRow& rhs) + { + return !(lhs > rhs); + } + + /** + * @brief + * @param lhs + * @param rhs + * @return + */ + inline bool operator>=(const XLRow& lhs, const XLRow& rhs) + { + return !(lhs < rhs); + } + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLROW_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLRowData.hpp b/thirdparty/OpenXLSX/include/headers/XLRowData.hpp new file mode 100644 index 0000000..2ef0f12 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLRowData.hpp @@ -0,0 +1,427 @@ +// +// Created by Kenneth Balslev on 24/08/2020. +// + +#ifndef OPENXLSX_XLROWDATA_HPP +#define OPENXLSX_XLROWDATA_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLCell.hpp" +#include "XLConstants.hpp" +#include "XLException.hpp" +#include "XLIterator.hpp" +#include "XLXmlParser.hpp" + +// ========== CLASS AND ENUM TYPE DEFINITIONS ========== // +namespace OpenXLSX +{ + class XLRow; + class XLRowDataRange; + + /** + * @brief This class encapsulates a (non-const) iterator, for iterating over the cells in a row. + * @todo Consider implementing a const iterator also + */ + class OPENXLSX_EXPORT XLRowDataIterator + { + friend class XLRowDataRange; + + public: + using iterator_category = std::forward_iterator_tag; + using value_type = XLCell; + using difference_type = int64_t; + using pointer = XLCell*; + using reference = XLCell&; + + /** + * @brief Destructor. + */ + ~XLRowDataIterator(); + + /** + * @brief Copy constructor. + * @param other Object to be copied. + */ + XLRowDataIterator(const XLRowDataIterator& other); + + /** + * @brief Move constructor. + * @param other Object to be moved. + */ + XLRowDataIterator(XLRowDataIterator&& other) noexcept; + + /** + * @brief Copy assignment operator. + * @param other Object to be copied. + * @return Reference to the copied-to object. + */ + XLRowDataIterator& operator=(const XLRowDataIterator& other); + + /** + * @brief Move assignment operator. + * @param other Object to be moved. + * @return Reference to the moved-to object. + */ + XLRowDataIterator& operator=(XLRowDataIterator&& other) noexcept; + + /** + * @brief Pre-increment of the iterator. + * @return Reference to the iterator object. + */ + XLRowDataIterator& operator++(); + + /** + * @brief Post-increment of the iterator. + * @return Reference to the iterator object. + */ + XLRowDataIterator operator++(int); // NOLINT + + /** + * @brief Dereferencing operator. + * @return Reference to the object pointed to by the iterator. + */ + reference operator*(); + + /** + * @brief Arrow operator. + * @return Pointer to the object pointed to by the iterator. + */ + pointer operator->(); + + /** + * @brief Equality operator. + * @param rhs XLRowDataIterator to compare to. + * @return true if equal, otherwise false. + */ + bool operator==(const XLRowDataIterator& rhs) const; + + /** + * @brief Non-equality operator. + * @param rhs XLRowDataIterator to compare to. + * @return false if equal, otherwise true. + */ + bool operator!=(const XLRowDataIterator& rhs) const; + + private: + /** + * @brief Constructor. + * @param rowDataRange The range to iterate over. + * @param loc The location of the iterator (begin or end). + */ + XLRowDataIterator(const XLRowDataRange& rowDataRange, XLIteratorLocation loc); + + std::unique_ptr m_dataRange; /**< A pointer to the range to iterate over. */ + std::unique_ptr m_cellNode; /**< The XML node representing the cell currently pointed at. */ + XLCell m_currentCell; /**< The XLCell currently pointed at. */ + }; + + /** + * @brief This class encapsulates the concept of a contiguous range of cells in a row. + */ + class OPENXLSX_EXPORT XLRowDataRange + { + friend class XLRowDataIterator; + friend class XLRowDataProxy; + friend class XLRow; + + public: + /** + * @brief Copy constructor. + * @param other Object to be copied. + */ + XLRowDataRange(const XLRowDataRange& other); + + /** + * @brief Move constructor. + * @param other Object to be moved. + */ + XLRowDataRange(XLRowDataRange&& other) noexcept; + + /** + * @brief Destructor. + */ + ~XLRowDataRange(); + + /** + * @brief Copy assignment operator. + * @param other Object to be copied. + * @return A reference to the copied-to object. + */ + XLRowDataRange& operator=(const XLRowDataRange& other); + + /** + * @brief Move assignment operator. + * @param other Object to be moved. + * @return A reference to the moved-to object. + */ + XLRowDataRange& operator=(XLRowDataRange&& other) noexcept; + + /** + * @brief Get the size (length) of the range. + * @return The size of the range. + */ + uint16_t size() const; + + /** + * @brief Get an iterator to the first element. + * @return An XLRowDataIterator pointing to the first element. + */ + XLRowDataIterator begin(); + + /** + * @brief Get an iterator to (one-past) the last element. + * @return An XLRowDataIterator pointing to (one past) the last element. + */ + XLRowDataIterator end(); + + private: + /** + * @brief Constructor. + * @param rowNode XMLNode representing the row of the range. + * @param firstColumn The index of the first column. + * @param lastColumn The index of the last column. + * @param sharedStrings A pointer to the shared strings repository. + */ + explicit XLRowDataRange(const XMLNode& rowNode, uint16_t firstColumn, uint16_t lastColumn, const XLSharedStrings& sharedStrings); + + std::unique_ptr m_rowNode; /**< */ + uint16_t m_firstCol { 1 }; /**< The cell reference of the first cell in the range */ + uint16_t m_lastCol { 1 }; /**< The cell reference of the last cell in the range */ + XLSharedStrings m_sharedStrings; /**< */ + }; + + /** + * @brief The XLRowDataProxy is used as a proxy object when getting or setting row data. The class facilitates easy conversion + * to/from containers. + */ + class OPENXLSX_EXPORT XLRowDataProxy + { + friend class XLRow; + + public: + /** + * @brief Destructor + */ + ~XLRowDataProxy(); + + /** + * @brief Copy assignment operator. + * @param other Object to be copied. + * @return A reference to the copied-to object. + */ + XLRowDataProxy& operator=(const XLRowDataProxy& other); + + /** + * @brief Assignment operator taking a std::vector of XLCellValues as an argument. + * @param values A std::vector of XLCellValues representing the values to be assigned. + * @return A reference to the copied-to object. + */ + XLRowDataProxy& operator=(const std::vector& values); + + /** + * @brief Assignment operator taking a std::vector of bool values as an argument. + * @param values A std::vector of bool values representing the values to be assigned. + * @return A reference to the copied-to object. + */ + XLRowDataProxy& operator=(const std::vector& values); + + /** + * @brief Templated assignment operator taking any container supporting bidirectional iterators. + * @tparam T The container and value type (will be auto deducted by the compiler). + * @param values The container of the values to be assigned. + * @return A reference to the copied-to object. + * @throws XLOverflowError if size of container exceeds maximum number of columns. + */ + template && + std::is_base_of_v::iterator_category>, + T>::type* = nullptr> + XLRowDataProxy& operator=(const T& values) + { + if (values.size() > MAX_COLS) throw XLOverflowError("Container size exceeds maximum number of columns."); + if (values.size() == 0) return *this; + + // ===== If the container value_type is XLCellValue, the values can be copied directly. + if constexpr (std::is_same_v) { + // ===== First, delete the values in the first N columns. + deleteCellValues(values.size()); + + // ===== Then, prepend new cell nodes to current row node + auto colNo = values.size(); + for (auto value = values.rbegin(); value != values.rend(); ++value) { // NOLINT + prependCellValue(*value, colNo); + --colNo; + } + } + + // ===== If the container value_type is a POD type, use the overloaded operator= on each cell. + else { + auto range = XLRowDataRange(*m_rowNode, 1, values.size(), getSharedStrings()); + auto dst = range.begin(); + auto src = values.begin(); + + while (true) { + dst->value() = *src; + ++src; + if (src == values.end()) break; + ++dst; + } + } + + return *this; + } + + /** + * @brief Implicit conversion to std::vector of XLCellValues. + * @return A std::vector of XLCellValues. + */ + operator std::vector() const; // NOLINT + + /** + * @brief Implicit conversion to std::deque of XLCellValues. + * @return A std::deque of XLCellValues. + */ + operator std::deque() const; // NOLINT + + /** + * @brief Implicit conversion to std::list of XLCellValues. + * @return A std::list of XLCellValues. + */ + operator std::list() const; // NOLINT + + /** + * @brief Explicit conversion operator. + * @details This function calls the convertContainer template function to convert the row data to the container + * stipulated by the client. The reason that this function is marked explicit is that the implicit conversion operators + * above will be ambiguous. + * @tparam Container The container (and value) type to convert the row data to. + * @return The required container with the row data. + */ + template< + typename Container, + typename std::enable_if && + std::is_base_of_v::iterator_category>, + Container>::type* = nullptr> + explicit operator Container() const + { + return convertContainer(); + } + + /** + * @brief Clears all values for the current row. + */ + void clear(); + + private: + //---------- Private Member Functions ---------- // + + /** + * @brief Constructor. + * @param row Pointer to the parent XLRow object. + * @param rowNode Pointer to the underlying XML node representing the row. + */ + XLRowDataProxy(XLRow* row, XMLNode* rowNode); + + /** + * @brief Copy constructor. + * @param other Object to be copied. + * @note The copy constructor is private in order to prevent use of the auto keyword in client code. + */ + XLRowDataProxy(const XLRowDataProxy& other); + + /** + * @brief Move constructor. + * @param other Object to be moved. + * @note Made private, as move construction should only be allowed when the parent object is moved. Disallowed for client code. + */ + XLRowDataProxy(XLRowDataProxy&& other) noexcept; + + /** + * @brief Move assignment operator. + * @param other Object to be moved. + * @return Reference to the moved-to object. + * @note Made private, as move assignment is disallowed for client code. + */ + XLRowDataProxy& operator=(XLRowDataProxy&& other) noexcept; + + /** + * @brief Get the cell values for the row. + * @return A std::vector of XLCellValues. + */ + std::vector getValues() const; + + /** + * @brief Helper function for getting a pointer to the shared strings repository. + * @return A pointer to an XLSharedStrings object. + */ + XLSharedStrings getSharedStrings() const; + + /** + * @brief Convenience function for erasing the first 'count' numbers of values in the row. + * @param count The number of values to erase. + */ + void deleteCellValues(uint16_t count); + + /** + * @brief Convenience function for prepending a row value with a given column number. + * @param value The XLCellValue object. + * @param col The column of the value. + */ + void prependCellValue(const XLCellValue& value, uint16_t col); + + /** + * @brief Convenience function for converting the row data to a user-supplied container. + * @details This function can convert row data to any user-supplied container that adheres to the design + * of STL containers and supports bidirectional iterators. This could be std::vector, std::deque, or + * std::list, but any container with the same interface should work. + * @tparam Container The container (and value) type to be returned. + * @return The row data in the required format. + * @throws bad_variant_access if Container::value type is not XLCellValue and does not match the type contained. + */ + template< + typename Container, + typename std::enable_if && + std::is_base_of_v::iterator_category>, + Container>::type* = nullptr> + Container convertContainer() const + { + Container c; + auto it = std::inserter(c, c.end()); + for (const auto& v : getValues()) { + // ===== If the value_type of the container is XLCellValue, the value can be assigned directly. + if constexpr (std::is_same_v) *it++ = v; + + // ===== If the value_type is something else, the underlying value has to be extracted from the XLCellValue object. + // ===== Note that if the type contained in the XLCellValue object does not match the value_type, a bad_variant_access + // ===== exception will be thrown. + else + *it++ = v.get(); + } + return c; + } + + //---------- Private Member Variables ---------- // + + XLRow* m_row { nullptr }; /**< Pointer to the parent XLRow object. */ + XMLNode* m_rowNode { nullptr }; /**< Pointer the the XML node representing the row. */ + }; + +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLROWDATA_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLSharedStrings.hpp b/thirdparty/OpenXLSX/include/headers/XLSharedStrings.hpp new file mode 100644 index 0000000..94914c5 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLSharedStrings.hpp @@ -0,0 +1,159 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLSHAREDSTRINGS_HPP +#define OPENXLSX_XLSHAREDSTRINGS_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLXmlFile.hpp" + +namespace OpenXLSX +{ + /** + * @brief This class encapsulate the Excel concept of Shared Strings. In Excel, instead of havig individual strings + * in each cell, cells have a reference to an entry in the SharedStrings register. This results in smalle file + * sizes, as repeated strings are referenced easily. + */ + class OPENXLSX_EXPORT XLSharedStrings : public XLXmlFile + { + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief + */ + XLSharedStrings() = default; + + /** + * @brief + * @param xmlData + */ + explicit XLSharedStrings(XLXmlData* xmlData, std::deque *stringCache); + + /** + * @brief Destructor + */ + ~XLSharedStrings(); + + /** + * @brief + * @param other + */ + XLSharedStrings(const XLSharedStrings& other) = default; + + /** + * @brief + * @param other + */ + XLSharedStrings(XLSharedStrings&& other) noexcept = default; + + /** + * @brief + * @param other + * @return + */ + XLSharedStrings& operator=(const XLSharedStrings& other) = default; + + /** + * @brief + * @param other + * @return + */ + XLSharedStrings& operator=(XLSharedStrings&& other) noexcept = default; + + /** + * @brief + * @param str + * @return + */ + int32_t getStringIndex(const std::string& str) const; + + /** + * @brief + * @param str + * @return + */ + bool stringExists(const std::string& str) const; + + /** + * @brief + * @param index + * @return + */ + const char* getString(uint32_t index) const; + + /** + * @brief Append a new string to the list of shared strings. + * @param str The string to append. + * @return A long int with the index of the appended string + */ + int32_t appendString(const std::string& str); + + /** + * @brief Clear the string at the given index. + * @param index The index to clear. + * @note There is no 'deleteString' member function, as deleting a shared string node will invalidate the + * shared string indices for the cells in the spreadsheet. Instead use this member functions, which clears + * the contents of the string, but keeps the XMLNode holding the string. + */ + void clearString(uint64_t index); + + private: + std::deque *m_stringCache {}; /** < Each string must have an unchanging memory address; hence the use of std::deque */ + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLSHAREDSTRINGS_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLSheet.hpp b/thirdparty/OpenXLSX/include/headers/XLSheet.hpp new file mode 100644 index 0000000..71c4194 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLSheet.hpp @@ -0,0 +1,737 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLSHEET_HPP +#define OPENXLSX_XLSHEET_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLCell.hpp" +#include "XLCellReference.hpp" +#include "XLColor.hpp" +#include "XLColumn.hpp" +#include "XLCommandQuery.hpp" +#include "XLDocument.hpp" +#include "XLException.hpp" +#include "XLRow.hpp" +#include "XLXmlFile.hpp" + +namespace OpenXLSX +{ + /** + * @brief The XLSheetState is an enumeration of the possible (visibility) states, e.g. Visible or Hidden. + */ + enum class XLSheetState { Visible, Hidden, VeryHidden }; + + /** + * @brief The XLSheetBase class is the base class for the XLWorksheet and XLChartsheet classes. However, + * it is not a base class in the traditional sense. Rather, it provides common functionality that is + * inherited via the CRTP (Curiously Recurring Template Pattern) pattern. + * @tparam T Type that will inherit functionality. Restricted to types XLWorksheet and XLChartsheet. + */ + template || std::is_same_v>::type* = nullptr> + class OPENXLSX_EXPORT XLSheetBase : public XLXmlFile + { + public: + /** + * @brief Constructor + */ + XLSheetBase() : XLXmlFile(nullptr) {}; + + /** + * @brief The constructor. There are no default constructor, so all parameters must be provided for + * constructing an XLAbstractSheet object. Since this is a pure abstract class, instantiation is only + * possible via one of the derived classes. + * @param xmlData + */ + explicit XLSheetBase(XLXmlData* xmlData) : XLXmlFile(xmlData) {}; + + /** + * @brief The copy constructor. + * @param other The object to be copied. + * @note The default copy constructor is used, i.e. only shallow copying of pointer data members. + */ + XLSheetBase(const XLSheetBase& other) = default; + + /** + * @brief + * @param other + */ + XLSheetBase(XLSheetBase&& other) noexcept = default; + + /** + * @brief The destructor + * @note The default destructor is used, since cleanup of pointer data members is not required. + */ + ~XLSheetBase() = default; + + /** + * @brief Assignment operator + * @return A reference to the new object. + * @note The default assignment operator is used, i.e. only shallow copying of pointer data members. + */ + XLSheetBase& operator=(const XLSheetBase&) = default; + + /** + * @brief + * @param other + * @return + */ + XLSheetBase& operator=(XLSheetBase&& other) noexcept = default; + + /** + * @brief + * @return + */ + XLSheetState visibility() const + { + XLQuery query(XLQueryType::QuerySheetVisibility); + query.setParam("sheetID", relationshipID()); + auto state = parentDoc().execQuery(query).template result(); + auto result = XLSheetState::Visible; + + if (state == "visible" || state.empty()) { + result = XLSheetState::Visible; + } + else if (state == "hidden") { + result = XLSheetState::Hidden; + } + else if (state == "veryHidden") { + result = XLSheetState::VeryHidden; + } + + return result; + } + + /** + * @brief + * @param state + */ + void setVisibility(XLSheetState state) + { + auto stateString = std::string(); + switch (state) { + case XLSheetState::Visible: + stateString = "visible"; + break; + + case XLSheetState::Hidden: + stateString = "hidden"; + break; + + case XLSheetState::VeryHidden: + stateString = "veryHidden"; + break; + } + + parentDoc().execCommand(XLCommand(XLCommandType::SetSheetVisibility) + .setParam("sheetID", relationshipID()) + .setParam("sheetVisibility", stateString)); + } + + /** + * @brief + * @return + * @todo To be implemented. + */ + XLColor color() const + { + return static_cast(*this).getColor_impl(); + } + + /** + * @brief + * @param color + */ + void setColor(const XLColor& color) + { + static_cast(*this).setColor_impl(color); + } + + /** + * @brief + * @return + */ + uint16_t index() const + { +// return uint16_t(std::stoi(parentDoc().execQuery(R"({ "query": "QuerySheetIndex", "sheetID": ")" + relationshipID() + "\"}"))); + + XLQuery query(XLQueryType::QuerySheetIndex); + query.setParam("sheetID", relationshipID()); + return uint16_t(std::stoi(parentDoc().execQuery(query).template result())); + } + + /** + * @brief + * @param index + */ + void setIndex(uint16_t index) + { + parentDoc().execCommand(XLCommand(XLCommandType::SetSheetIndex) + .setParam("sheetID", relationshipID()) + .setParam("sheetIndex", index)); + } + + /** + * @brief Method to retrieve the name of the sheet. + * @return A std::string with the sheet name. + */ + std::string name() const + { + XLQuery query(XLQueryType::QuerySheetName); + query.setParam("sheetID", relationshipID()); + return parentDoc().execQuery(query).template result(); + } + + /** + * @brief Method for renaming the sheet. + * @param sheetName A std::string with the new name. + */ + void setName(const std::string& sheetName) + { + parentDoc().execCommand(XLCommand(XLCommandType::SetSheetName) + .setParam("sheetID", relationshipID()) + .setParam("sheetName", name()) + .setParam("newName", sheetName)); + } + + /** + * @brief + * @return + */ + bool isSelected() const + { + return static_cast(*this).isSelected_impl(); + } + + /** + * @brief + * @param selected + */ + void setSelected(bool selected) + { + static_cast(*this).setSelected_impl(selected); + } + + /** + * @brief + * @return + */ + bool isActive() const + { + return static_cast(*this).isActive_impl(); + } + + /** + * @brief + * @param active + */ + void setActive() + { + static_cast(*this).setActive_impl(); + } + + /** + * @brief Method for cloning the sheet. + * @param newName A std::string with the name of the clone + * @return A pointer to the cloned object. + * @note This is a pure abstract method. I.e. it is implemented in subclasses. + */ + void clone(const std::string& newName) + { + parentDoc().execCommand(XLCommand(XLCommandType::CloneSheet) + .setParam("sheetID", relationshipID()) + .setParam("cloneName", newName)); + } + }; + + /** + * @brief A class encapsulating an Excel worksheet. Access to XLWorksheet objects should be via the workbook object. + */ + class OPENXLSX_EXPORT XLWorksheet final : public XLSheetBase + { + friend class XLCell; + friend class XLRow; + friend class XLWorkbook; + friend class XLSheetBase; + + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief Default constructor + */ + XLWorksheet() : XLSheetBase(nullptr) {}; + + /** + * @brief + * @param xmlData + */ + explicit XLWorksheet(XLXmlData* xmlData); + + /** + * @brief Copy Constructor. + * @note The copy constructor has been explicitly deleted. + */ + XLWorksheet(const XLWorksheet& other) = default; + + /** + * @brief Move Constructor. + * @note The move constructor has been explicitly deleted. + */ + XLWorksheet(XLWorksheet&& other) = default; + + /** + * @brief Destructor. + */ + ~XLWorksheet(); + + /** + * @brief Copy assignment operator. + * @note The copy assignment operator has been explicitly deleted. + */ + XLWorksheet& operator=(const XLWorksheet& other) = default; + + /** + * @brief Move assignment operator. + * @note The move assignment operator has been explicitly deleted. + */ + XLWorksheet& operator=(XLWorksheet&& other) = default; + + /** + * @brief + * @param ref + * @return + */ + XLCell cell(const std::string& ref) const; + + /** + * @brief Get a pointer to the XLCell object for the given cell reference. + * @param ref An XLCellReference object with the address of the cell to get. + * @return A const reference to the requested XLCell object. + */ + XLCell cell(const XLCellReference& ref) const; + + /** + * @brief Get the cell at the given coordinates. + * @param rowNumber The row number (index base 1). + * @param columnNumber The column number (index base 1). + * @return A reference to the XLCell object at the given coordinates. + */ + XLCell cell(uint32_t rowNumber, uint16_t columnNumber) const; + + /** + * @brief Get a range for the area currently in use (i.e. from cell A1 to the last cell being in use). + * @return A const XLCellRange object with the entire range. + */ + XLCellRange range() const; + + /** + * @brief Get a range with the given coordinates. + * @param topLeft An XLCellReference object with the coordinates to the top left cell. + * @param bottomRight An XLCellReference object with the coordinates to the bottom right cell. + * @return A const XLCellRange object with the requested range. + */ + XLCellRange range(const XLCellReference& topLeft, const XLCellReference& bottomRight) const; + + /** + * @brief + * @return + */ + XLRowRange rows() const; + + /** + * @brief + * @param rowCount + * @return + */ + XLRowRange rows(uint32_t rowCount) const; + + /** + * @brief + * @param firstRow + * @param lastRow + * @return + */ + XLRowRange rows(uint32_t firstRow, uint32_t lastRow) const; + + /** + * @brief Get the row with the given row number. + * @param rowNumber The number of the row to retrieve. + * @return A pointer to the XLRow object. + */ + XLRow row(uint32_t rowNumber) const; + + /** + * @brief Get the column with the given column number. + * @param columnNumber The number of the column to retrieve. + * @return A pointer to the XLColumn object. + */ + XLColumn column(uint16_t columnNumber) const; + + /** + * @brief Get an XLCellReference to the last (bottom right) cell in the worksheet. + * @return An XLCellReference for the last cell. + */ + XLCellReference lastCell() const noexcept; + + /** + * @brief Get the number of columns in the worksheet. + * @return The number of columns. + */ + uint16_t columnCount() const noexcept; + + /** + * @brief Get the number of rows in the worksheet. + * @return The number of rows. + */ + uint32_t rowCount() const noexcept; + + /** + * @brief + * @param oldName + * @param newName + */ + void updateSheetName(const std::string& oldName, const std::string& newName); + + private: + + /** + * @brief + * @return + */ + XLColor getColor_impl() const; + + /** + * @brief + * @param color + */ + void setColor_impl(const XLColor& color); + + /** + * @brief + * @return + */ + bool isSelected_impl() const; + + /** + * @brief + * @param selected + */ + void setSelected_impl(bool selected); + + /** + * @brief + * @return + */ + bool isActive_impl() const; + + /** + * @brief + * @param selected + */ + void setActive_impl(); + }; + + /** + * @brief Class representing the an Excel chartsheet. + * @todo This class is largely unimplemented and works just as a placeholder. + */ + class OPENXLSX_EXPORT XLChartsheet final : public XLSheetBase + { + friend class XLSheetBase; + + //---------------------------------------------------------------------------------------------------------------------- + // Public Member Functions + //---------------------------------------------------------------------------------------------------------------------- + + public: + /** + * @brief Default constructor + */ + XLChartsheet() : XLSheetBase(nullptr) {}; + + /** + * @brief + * @param xmlData + */ + explicit XLChartsheet(XLXmlData* xmlData); + + /** + * @brief + * @param other + */ + XLChartsheet(const XLChartsheet& other) = default; + + /** + * @brief + * @param other + */ + XLChartsheet(XLChartsheet&& other) noexcept = default; + + /** + * @brief + */ + ~XLChartsheet(); + + /** + * @brief + * @return + */ + XLChartsheet& operator=(const XLChartsheet& other) = default; + + /** + * @brief + * @param other + * @return + */ + XLChartsheet& operator=(XLChartsheet&& other) noexcept = default; + + private: + + /** + * @brief + * @return + */ + XLColor getColor_impl() const; + + /** + * @brief + * @param color + */ + void setColor_impl(const XLColor& color); + + /** + * @brief + * @return + */ + bool isSelected_impl() const; + + /** + * @brief + * @param selected + */ + void setSelected_impl(bool selected); + }; + + /** + * @brief The XLAbstractSheet is a generalized sheet class, which functions as superclass for specialized classes, + * such as XLWorksheet. It implements functionality common to all sheet types. This is a pure abstract class, + * so it cannot be instantiated. + */ + class OPENXLSX_EXPORT XLSheet final : public XLXmlFile + { + public: + /** + * @brief The constructor. There are no default constructor, so all parameters must be provided for + * constructing an XLAbstractSheet object. Since this is a pure abstract class, instantiation is only + * possible via one of the derived classes. + * @param xmlData + */ + explicit XLSheet(XLXmlData* xmlData); + + /** + * @brief The copy constructor. + * @param other The object to be copied. + * @note The default copy constructor is used, i.e. only shallow copying of pointer data members. + */ + XLSheet(const XLSheet& other) = default; + + /** + * @brief + * @param other + */ + XLSheet(XLSheet&& other) noexcept = default; + + /** + * @brief The destructor + * @note The default destructor is used, since cleanup of pointer data members is not required. + */ + ~XLSheet() = default; + + /** + * @brief Assignment operator + * @return A reference to the new object. + * @note The default assignment operator is used, i.e. only shallow copying of pointer data members. + */ + XLSheet& operator=(const XLSheet& other) = default; + + /** + * @brief + * @param other + * @return + */ + XLSheet& operator=(XLSheet&& other) noexcept = default; + + /** + * @brief Method for getting the current visibility state of the sheet. + * @return An XLSheetState enum object, with the current sheet state. + */ + XLSheetState visibility() const; + + /** + * @brief Method for setting the state of the sheet. + * @param state An XLSheetState enum object with the new state. + * @bug For some reason, this method doesn't work. The data is written correctly to the xml file, but the sheet + * is not hidden when opening the file in Excel. + */ + void setVisibility(XLSheetState state); + + /** + * @brief + * @return + */ + XLColor color() const; + + /** + * @brief + * @param color + */ + void setColor(const XLColor& color); + + /** + * @brief Method for getting the index of the sheet. + * @return An int with the index of the sheet. + */ + uint16_t index() const; + + /** + * @brief Method for setting the index of the sheet. This effectively moves the sheet to a different position. + */ + void setIndex(uint16_t index); + + /** + * @brief Method to retrieve the name of the sheet. + * @return A std::string with the sheet name. + */ + std::string name() const; + + /** + * @brief Method for renaming the sheet. + * @param name A std::string with the new name. + */ + void setName(const std::string& name); + + /** + * @brief + * @param selected + */ + void setSelected(bool selected); + + /** + * @brief Method to get the type of the sheet. + * @return An XLSheetType enum object with the sheet type. + */ + template< + typename SheetType, + typename std::enable_if || std::is_same_v>::type* = nullptr> + bool isType() const + { + return std::holds_alternative(m_sheet); + } + + /** + * @brief Method for cloning the sheet. + * @param newName A std::string with the name of the clone + * @return A pointer to the cloned object. + * @note This is a pure abstract method. I.e. it is implemented in subclasses. + */ + void clone(const std::string& newName); + + /** + * @brief + * @tparam T + * @return + */ + template || std::is_same_v>::type* = nullptr> + T get() const + { + try { + if constexpr (std::is_same::value) + return std::get(m_sheet); + + else if constexpr (std::is_same::value) + return std::get(m_sheet); + } + + catch (const std::bad_variant_access&) { + throw XLSheetError("XLSheet object does not contain the requested sheet type."); + } + } + + /** + * @brief + * @return + */ + operator XLWorksheet() const; // NOLINT + + /** + * @brief + * @return + */ + operator XLChartsheet() const; // NOLINT + + //---------------------------------------------------------------------------------------------------------------------- + // Private Member Variables + //---------------------------------------------------------------------------------------------------------------------- + + private: + std::variant m_sheet; /**< */ + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLSHEET_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLWorkbook.hpp b/thirdparty/OpenXLSX/include/headers/XLWorkbook.hpp new file mode 100644 index 0000000..7150ef5 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLWorkbook.hpp @@ -0,0 +1,373 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLWORKBOOK_HPP +#define OPENXLSX_XLWORKBOOK_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLCommandQuery.hpp" +#include "XLContentTypes.hpp" +#include "XLException.hpp" +#include "XLRelationships.hpp" +#include "XLXmlFile.hpp" + +namespace OpenXLSX +{ + class XLSharedStrings; + + class XLSheet; + + class XLWorksheet; + + class XLChartsheet; + + /** + * @brief The XLSheetType class is an enumeration of the available sheet types, e.g. Worksheet (ordinary + * spreadsheets), and Chartsheet (sheets with only a chart). + */ + enum class XLSheetType { Worksheet, Chartsheet, Dialogsheet, Macrosheet }; + + /** + * @brief This class encapsulates the concept of a Workbook. It provides access to the individual sheets + * (worksheets or chartsheets), as well as functionality for adding, deleting, moving and renaming sheets. + */ + class OPENXLSX_EXPORT XLWorkbook : public XLXmlFile + { + friend class XLSheet; + friend class XLDocument; + + public: // ---------- Public Member Functions ---------- // + /** + * @brief Default constructor. Creates an empty ('null') XLWorkbook object. + */ + XLWorkbook() = default; + + /** + * @brief Constructor. Takes a pointer to an XLXmlData object (stored in the parent XLDocument object). + * @param xmlData A pointer to the underlying XLXmlData object, which holds the XML data. + * @note Do not create an XLWorkbook object directly. Get access through the an XLDocument object. + */ + explicit XLWorkbook(XLXmlData* xmlData); + + /** + * @brief Copy Constructor. + * @param other The XLWorkbook object to be copied. + * @note The copy constructor has been explicitly defaulted. + */ + XLWorkbook(const XLWorkbook& other) = default; + + /** + * @brief Move constructor. + * @param other The XLWorkbook to be moved. + * @note The move constructor has been explicitly defaulted. + */ + XLWorkbook(XLWorkbook&& other) = default; + + /** + * @brief Destructor + * @note Default destructor specified + */ + ~XLWorkbook(); + + /** + * @brief Copy assignment operator. + * @param other The XLWorkbook object to be assigned to the current. + * @return A reference to *this + * @note The copy assignment operator has been explicitly deleted, as XLWorkbook objects should not be copied. + */ + XLWorkbook& operator=(const XLWorkbook& other) = default; + + /** + * @brief Move assignment operator. + * @param other The XLWorkbook to be move assigned. + * @return A reference to *this + * @note The move assignment operator has been explicitly deleted, as XLWorkbook objects should not be moved. + */ + XLWorkbook& operator=(XLWorkbook&& other) = default; + + /** + * @brief Get the sheet (worksheet or chartsheet) at the given index. + * @param index The index at which the desired sheet is located. + * @return A pointer to an XLAbstractSheet with the sheet at the index. + * @note The index must be 1-based (rather than 0-based) as this is the default for Excel spreadsheets. + */ + XLSheet sheet(uint16_t index); + + /** + * @brief Get the sheet (worksheet or chartsheet) with the given name. + * @param sheetName The name at which the desired sheet is located. + * @return A pointer to an XLAbstractSheet with the sheet at the index. + */ + XLSheet sheet(const std::string& sheetName); + + /** + * @brief + * @param sheetName + * @return + */ + XLWorksheet worksheet(const std::string& sheetName); + + /** + * @brief + * @param sheetName + * @return + */ + XLChartsheet chartsheet(const std::string& sheetName); + + /** + * @brief Delete sheet (worksheet or chartsheet) from the workbook. + * @param sheetName Name of the sheet to delete. + * @throws XLException An exception will be thrown if trying to delete the last worksheet in the workbook + * @warning A workbook must contain at least one worksheet. Trying to delete the last worksheet from the + * workbook will trow an exception. + */ + void deleteSheet(const std::string& sheetName); + + /** + * @brief + * @param sheetName + */ + void addWorksheet(const std::string& sheetName); + + /** + * @brief + * @param existingName + * @param newName + */ + void cloneSheet(const std::string& existingName, const std::string& newName); + + /** + * @brief + * @param sheetName + * @param index + */ + void setSheetIndex(const std::string& sheetName, unsigned int index); + + /** + * @brief + * @param sheetName + * @return + */ + unsigned int indexOfSheet(const std::string& sheetName) const; + + /** + * @brief + * @param sheetName + * @return + */ + XLSheetType typeOfSheet(const std::string& sheetName) const; + + /** + * @brief + * @param index + * @return + */ + XLSheetType typeOfSheet(unsigned int index) const; + + /** + * @brief + * @return + */ + unsigned int sheetCount() const; + + /** + * @brief + * @return + */ + unsigned int worksheetCount() const; + + /** + * @brief + * @return + */ + unsigned int chartsheetCount() const; + + /** + * @brief + * @return + */ + std::vector sheetNames() const; + + /** + * @brief + * @return + */ + std::vector worksheetNames() const; + + /** + * @brief + * @return + */ + std::vector chartsheetNames() const; + + /** + * @brief + * @param sheetName + * @return + */ + bool sheetExists(const std::string& sheetName) const; + + /** + * @brief + * @param sheetName + * @return + */ + bool worksheetExists(const std::string& sheetName) const; + + /** + * @brief + * @param sheetName + * @return + */ + bool chartsheetExists(const std::string& sheetName) const; + + /** + * @brief + * @param oldName + * @param newName + */ + void updateSheetReferences(const std::string& oldName, const std::string& newName); + + /** + * @brief + * @return + */ + XLSharedStrings sharedStrings(); + + /** + * @brief + * @return + */ + bool hasSharedStrings() const; + + /** + * @brief + */ + void deleteNamedRanges(); + + /** + * @brief set a flag to force full calculation upon loading the file in Excel + */ + void setFullCalculationOnLoad(); + + private: // ---------- Private Member Functions ---------- // + + /** + * @brief + * @return + */ + uint16_t createInternalSheetID(); + + /** + * @brief + * @param sheetName + * @return + */ + std::string sheetID(const std::string& sheetName); + + /** + * @brief + * @param sheetID + * @return + */ + std::string sheetName(const std::string& sheetID) const; + + /** + * @brief + * @param sheetID + * @return + */ + std::string sheetVisibility(const std::string& sheetID) const; + + /** + * @brief + * @param sheetName + * @param internalID + */ + void prepareSheetMetadata(const std::string& sheetName, uint16_t internalID); + + /** + * @brief + * @param sheetRID + * @param newName + */ + void setSheetName(const std::string& sheetRID, const std::string& newName); + + /** + * @brief + * @param sheetRID + * @param state + */ + void setSheetVisibility(const std::string& sheetRID, const std::string& state); + + /** + * @brief + * @param sheetRID + * @return + */ + bool sheetIsActive(const std::string& sheetRID) const; + + /** + * @brief + * @param sheetRID + * @param state + */ + void setSheetActive(const std::string& sheetRID); + + + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLWORKBOOK_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLXmlData.hpp b/thirdparty/OpenXLSX/include/headers/XLXmlData.hpp new file mode 100644 index 0000000..8169fbd --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLXmlData.hpp @@ -0,0 +1,202 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLXMLDATA_HPP +#define OPENXLSX_XLXMLDATA_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== External Includes ===== // +#include +#include +#include +#include + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLContentTypes.hpp" +#include "XLXmlParser.hpp" + +namespace OpenXLSX +{ + /** + * @brief The XLXmlData class encapsulates the properties and behaviour of the .xml files in an .xlsx file zip + * package. Objects of the XLXmlData type are intended to be stored centrally in an XLDocument object, from where + * they can be retrieved by other objects that encapsulates the behaviour of Excel elements, such as XLWorkbook + * and XLWorksheet. + */ + class OPENXLSX_EXPORT XLXmlData final + { + public: + // ===== PUBLIC MEMBER FUNCTIONS ===== // + + /** + * @brief Default constructor. All member variables are default constructed. Except for + * the raw XML data, none of the member variables can be modified after construction. Hence, objects created + * using the default constructor can only serve as null objects and targets for the move assignemnt operator. + */ + XLXmlData() = default; + + /** + * @brief Constructor. This constructor creates objects with the given parameters. the xmlId and the xmlType + * parameters have default values. These are only useful for relationship (.rels) files and the + * [Content_Types].xml file located in the root directory of the zip package. + * @param parentDoc A pointer to the parent XLDocument object. + * @param xmlPath A std::string with the file path in zip package. + * @param xmlId A std::string with the relationship ID of the file (used in the XLRelationships class) + * @param xmlType The type of object the XML file represents, e.g. XLWorkbook or XLWorksheet. + */ + XLXmlData(XLDocument* parentDoc, + const std::string& xmlPath, + const std::string& xmlId = "", + XLContentType xmlType = XLContentType::Unknown); + + /** + * @brief Default destructor. The XLXmlData does not manage any dynamically allocated resources, so a default + * destructor will suffice. + */ + ~XLXmlData(); + + /** + * @brief Copy constructor. The m_xmlDoc data member is a XMLDocument object, which is non-copyable. Hence, + * the XLXmlData objects have a explicitly deleted copy constructor. + * @param other + */ + XLXmlData(const XLXmlData& other) = delete; + + /** + * @brief Move constructor. All data members are trivially movable. Hence an explicitly defaulted move + * constructor is sufficient. + * @param other + */ + XLXmlData(XLXmlData&& other) noexcept = default; + + /** + * @brief Copy assignment operator. The m_xmlDoc data member is a XMLDocument object, which is non-copyable. + * Hence, the XLXmlData objects have a explicitly deleted copy assignment operator. + */ + XLXmlData& operator=(const XLXmlData& other) = delete; + + /** + * @brief Move assignment operator. All data members are trivially movable. Hence an explicitly defaulted move + * constructor is sufficient. + * @param other the XLXmlData object to be moved from. + * @return A reference to the moved-to object. + */ + XLXmlData& operator=(XLXmlData&& other) noexcept = default; + + /** + * @brief Set the raw data for the underlying XML document. Being able to set the XML data directly is useful + * when creating a new file using a XML file template. E.g., when creating a new worksheet, the XML code for + * a minimum viable XLWorksheet object can be added using this function. + * @param data A std::string with the raw XML text. + */ + void setRawData(const std::string& data); + + /** + * @brief Get the raw data for the underlying XML document. This function will retrieve the raw XML text data + * from the underlying XMLDocument object. This will mainly be used when saving data to the .xlsx package + * using the save function in the XLDocument class. + * @return A std::string with the raw XML text data. + */ + std::string getRawData() const; + + /** + * @brief Access the parent XLDocument object. + * @return A pointer to the parent XLDocument object. + */ + XLDocument* getParentDoc(); + + /** + * @brief Access the parent XLDocument object. + * @return A const pointer to the parent XLDocument object. + */ + const XLDocument* getParentDoc() const; + + /** + * @brief Retrieve the path of the XML data in the .xlsx zip archive. + * @return A std::string with the path. + */ + std::string getXmlPath() const; + + /** + * @brief Retrieve the relationship ID of the XML file. + * @return A std::string with the relationship ID. + */ + std::string getXmlID() const; + + /** + * @brief Retrieve the type represented by the XML data. + * @return A XLContentType getValue representing the type. + */ + XLContentType getXmlType() const; + + /** + * @brief Access the underlying XMLDocument object. + * @return A pointer to the XMLDocument object. + */ + XMLDocument* getXmlDocument(); + + /** + * @brief Access the underlying XMLDocument object. + * @return A const pointer to the XMLDocument object. + */ + const XMLDocument* getXmlDocument() const; + + private: + // ===== PRIVATE MEMBER VARIABLES ===== // + + XLDocument* m_parentDoc {}; /**< A pointer to the parent XLDocument object. >*/ + std::string m_xmlPath {}; /**< The path of the XML data in the .xlsx zip archive. >*/ + std::string m_xmlID {}; /**< The relationship ID of the XML data. >*/ + XLContentType m_xmlType {}; /**< The type represented by the XML data. >*/ + mutable std::unique_ptr m_xmlDoc; /**< The underlying XMLDocument object. >*/ + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLXMLDATA_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLXmlFile.hpp b/thirdparty/OpenXLSX/include/headers/XLXmlFile.hpp new file mode 100644 index 0000000..635edbe --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLXmlFile.hpp @@ -0,0 +1,163 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLXMLFILE_HPP +#define OPENXLSX_XLXMLFILE_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" +#include "XLXmlParser.hpp" + +namespace OpenXLSX +{ + class XLXmlData; + class XLDocument; + + /** + * @brief The XLXmlFile class provides an interface for derived classes to use. + * It functions as an ancestor to all classes which are represented by an .xml file in an .xlsx package. + * @warning The XLXmlFile class is not intended to be instantiated on it's own, but to provide an interface for + * derived classes. Also, it should not be used polymorphically. For that reason, the destructor is not declared virtual. + */ + class OPENXLSX_EXPORT XLXmlFile + { + public: // ===== PUBLIC MEMBER FUNCTIONS + /** + * @brief Default constructor. + */ + XLXmlFile() = default; + + /** + * @brief Constructor. Creates an object based on the xmlData input. + * @param xmlData An XLXmlData object with the XML data to be represented by the object. + */ + explicit XLXmlFile(XLXmlData* xmlData); + + /** + * @brief Copy constructor. Default implementation used. + * @param other The object to copy. + */ + XLXmlFile(const XLXmlFile& other) = default; + + /** + * @brief Move constructor. Default implementation used. + * @param other The object to move. + */ + XLXmlFile(XLXmlFile&& other) noexcept = default; + + /** + * @brief Destructor. Default implementation used. + */ + ~XLXmlFile(); + + /** + * @brief The copy assignment operator. The default implementation has been used. + * @param other The object to copy. + * @return A reference to the new object. + */ + XLXmlFile& operator=(const XLXmlFile& other) = default; + + /** + * @brief The move assignment operator. The default implementation has been used. + * @param other The object to move. + * @return A reference to the new object. + */ + XLXmlFile& operator=(XLXmlFile&& other) noexcept = default; + + protected: // ===== PROTECTED MEMBER FUNCTIONS + /** + * @brief Method for getting the XML data represented by the object. + * @return A std::string with the XML data. + */ + std::string xmlData() const; + + /** + * @brief Provide the XML data represented by the object. + * @param xmlData A std::string with the XML data. + */ + void setXmlData(const std::string& xmlData); + + /** + * @brief This function returns the relationship ID (the ID used in the XLRelationships objects) for the object. + * @return A std::string with the ID. Not all spreadsheet objects may have a relationship ID. In those cases an empty string is + * returned. + */ + std::string relationshipID() const; + + /** + * @brief This function provides access to the parent XLDocument object. + * @return A reference to the parent XLDocument object. + */ + XLDocument& parentDoc(); + + /** + * @brief This function provides access to the parent XLDocument object. + * @return A const reference to the parent XLDocument object. + */ + const XLDocument& parentDoc() const; + + /** + * @brief This function provides access to the underlying XMLDocument object. + * @return A reference to the XMLDocument object. + */ + XMLDocument& xmlDocument(); + + /** + * @brief This function provides access to the underlying XMLDocument object. + * @return A const reference to the XMLDocument object. + */ + const XMLDocument& xmlDocument() const; + + protected: // ===== PRIVATE MEMBER VARIABLES + XLXmlData* m_xmlData { nullptr }; /**< The underlying XML data object. */ + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLXMLFILE_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLXmlParser.hpp b/thirdparty/OpenXLSX/include/headers/XLXmlParser.hpp new file mode 100644 index 0000000..f75eba5 --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLXmlParser.hpp @@ -0,0 +1,62 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLXMLPARSER_HPP +#define OPENXLSX_XLXMLPARSER_HPP + +namespace pugi +{ + class xml_node; + class xml_attribute; + class xml_document; +} // namespace pugi + +namespace OpenXLSX +{ + using XMLNode = pugi::xml_node; + using XMLAttribute = pugi::xml_attribute; + using XMLDocument = pugi::xml_document; +} // namespace OpenXLSX +#endif // OPENXLSX_XLXMLPARSER_HPP diff --git a/thirdparty/OpenXLSX/include/headers/XLZipArchive.hpp b/thirdparty/OpenXLSX/include/headers/XLZipArchive.hpp new file mode 100644 index 0000000..2b3a93d --- /dev/null +++ b/thirdparty/OpenXLSX/include/headers/XLZipArchive.hpp @@ -0,0 +1,169 @@ +/* + + ____ ____ ___ ____ ____ ____ ___ + 6MMMMb `MM( )M' `MM' 6MMMMb\`MM( )M' + 8P Y8 `MM. d' MM 6M' ` `MM. d' +6M Mb __ ____ ____ ___ __ `MM. d' MM MM `MM. d' +MM MM `M6MMMMb 6MMMMb `MM 6MMb `MM. d' MM YM. `MM. d' +MM MM MM' `Mb 6M' `Mb MMM9 `Mb `MMd MM YMMMMb `MMd +MM MM MM MM MM MM MM' MM dMM. MM `Mb dMM. +MM MM MM MM MMMMMMMM MM MM d'`MM. MM MM d'`MM. +YM M9 MM MM MM MM MM d' `MM. MM MM d' `MM. + 8b d8 MM. ,M9 YM d9 MM MM d' `MM. MM / L ,M9 d' `MM. + YMMMM9 MMYMMM9 YMMMM9 _MM_ _MM_M(_ _)MM_ _MMMMMMM MYMMMM9 _M(_ _)MM_ + MM + MM + _MM_ + + Copyright (c) 2018, Kenneth Troldal Balslev + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + - 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. + - Neither the name of the author nor the + names of any contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 THE AUTHOR 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 OPENXLSX_XLZIPARCHIVE_HPP +#define OPENXLSX_XLZIPARCHIVE_HPP + +#pragma warning(push) +#pragma warning(disable : 4251) +#pragma warning(disable : 4275) + +// ===== OpenXLSX Includes ===== // +#include "OpenXLSX-Exports.hpp" + +namespace Zippy +{ + class ZipArchive; +} // namespace Zippy + +namespace OpenXLSX +{ + /** + * @brief + */ + class OPENXLSX_EXPORT XLZipArchive + { + public: + /** + * @brief + */ + XLZipArchive(); + + /** + * @brief + * @param other + */ + XLZipArchive(const XLZipArchive& other) = default; + + /** + * @brief + * @param other + */ + XLZipArchive(XLZipArchive&& other) = default; + + /** + * @brief + */ + ~XLZipArchive(); + + /** + * @brief + * @param other + * @return + */ + XLZipArchive& operator=(const XLZipArchive& other) = default; + + /** + * @brief + * @param other + * @return + */ + XLZipArchive& operator=(XLZipArchive&& other) = default; + + /** + * @brief + * @return + */ + explicit operator bool() const; + + bool isValid() const; + + /** + * @brief + * @return + */ + bool isOpen() const; + + /** + * @brief + * @param fileName + */ + void open(const std::string& fileName); + + /** + * @brief + */ + void close(); + + /** + * @brief + * @param path + */ + void save(const std::string& path = ""); + + /** + * @brief + * @param name + * @param data + */ + void addEntry(const std::string& name, const std::string& data); + + /** + * @brief + * @param entryName + */ + void deleteEntry(const std::string& entryName); + + /** + * @brief + * @param name + * @return + */ + std::string getEntry(const std::string& name); + + /** + * @brief + * @param entryName + * @return + */ + bool hasEntry(const std::string& entryName); + + private: + std::shared_ptr m_archive; /**< */ + }; +} // namespace OpenXLSX + +#pragma warning(pop) +#endif // OPENXLSX_XLZIPARCHIVE_HPP diff --git a/thirdparty/OpenXLSX/lib/OpenXLSX.lib b/thirdparty/OpenXLSX/lib/OpenXLSX.lib new file mode 100644 index 0000000000000000000000000000000000000000..d20fe3700cac408fb3b0eea85154c2743ba9cff0 GIT binary patch literal 2697506 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

<$HR3$^t(|2qGod>DVV<0o^ir?F_JjMu8;RF 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

-RSy9y)Hcu)5_3fz)4+l(%SzPjG%84G7? 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�=N;j0K#;BOAR;GTsqH8hUJ+w;-i zvCgj>AxGN)Ijlxi;?P?LH8K-UJ!`|JU27qJ3D~rx@Mna45){h4-D#O~ps|=r%byF~ zQLFkEx=lFZgnM=2HfK8Pa2#AKC;3W)RTaLvAp9~d7dk`*-juAe67I@7t*i!auImd_ zPAaPmcynW7Gt#{9mV@uGP&ZxkAMH1no5oFjSB>;_@sU4FmoIXH6f!+1nSgO zUvgl2aiF@ktg2E~(ZF=C2f`U%Uu=4YH*46i%(VQheDA2rDV0^zDpQlJ9A(Kx{t`7J z3tEMPLH`V2Wnh}G92&ZIvQSX^gS|s?hh}7E4bAgHI;ly1BvO+ANljwL;~SZq0AE{^ zPuK)KzKoG+jYuG;!($sv#hZfZM50Sgjjca3&E|66pNMs2opH~lY9WlB zbEWpMv3e7>?V)yrq8zT3kZ?#WT*AqC+iaNVmsWYb&i;_*%^N&4cUXSf5GV!yEHX8z zwyFx+stUGn>JH^qli+84fnX4B@Iv`vJUIvlGi4QlFsrC~!mO566jlJG2@?-jBJ6Il z8AA()rl;j(cpR_OzhN~ne-65t7QpGi>raFl%VUk9eEa$i+FtcpZOgIw7 z2COF^S(NLFvP#v~RDU%M0a#2m{3Yb(7i0|0$sC3?I+$NsW^_!*7@A)&EH|$ZS7T-4 zE8nb+&&!0i2o~8uc0vB&^z@EO%&@w-Pol zwK?f*rKfpw24`kv4uQ3GmC!|D7Ybvi6cu_Q-)Y&I1%th`g~GHN2G-KDa=075PN>kE zIW#RVKRs`V7gy+Q89S%Zq-T0_(+l#`vkQlTSxsGabycty?J5GbldDRsF2`FiIB!Tn zc2$d1_KgS&$wFVDpmUEiA~-AC?P~ipr{5*sY`{jms^>-AnQ0GMJ|8jAZ0^ zbA}Gd9WpGx&|6jsPYx&pgUJDZNg$Y-R0S^vQj^MRQj?0S446L5o1UAWGpr!9K$f5a z4p7RVCr>e~VKRn#^E30ZhvsIbdF{3ZyIm*~m(5{mFld0mIYaXX=MGEr>J8EXS=~@? zUe>UzjI7Kw$WmZ>HPi{#m$kybaP+W978HLN^wPX^Z^rP9)IkaHP|C@HV#vM9l96U) zdb0`&AnSuOWr1C-0KLriFqlB34=v2h7y>Q9hizf=4(&X6a6v{!zV3;5p|C3xP!&1( zS=bv3xx*I2>8V=ixFNX(+rq5uw88m9(^)tz2=~8r>(agHS-FL|1+bNGi$<5L-x>(n(OZN`W%gG&5n5J!O0s(hjrl&()=4IsN4NYTLJQd_l4O|Pd z3etz>47HuJ+8^}8mKO-x%%yvC3k&md(h75|3=2~ULZ>Pt4L0=j!lB-xy3$hY;507K zKFY`nz4?W?S=mE#(jhHysl@FobYRKP8SnZEzplsQFm?Rdh>_Srdr_T#w>;&6(}i!eWObao9E!XjKOIz zPpLEWR+^LGrk@OFQ-`bRNEQY8sx3WLfj{$c8WV0M&Lc7gdxs4v9Go*OGt28QDuxkw z(&Vy}rj%DyR#l%Itf{S=I&J!lnXz$r|9$P}eoPLz!C)4cPJ5&5K<&`Lv|RcdGT_!{ zq~U>!H!(L&rs>Xn$P*OMh$qpY4Oeh8gRXDAp2XI(Ue46&6~Sz+o^`Gno6WDgC7ihp zv(}MU_gYs@!%0*=-D_OA)K=x8lU`{PW;Iy2qT!Oq?v|PD&CSiv%_|t3;mz<@()NaZ zKQ#&Z%>S|XHt2&m-${m#reyL)nW zH(Gmt_w)PreJY+$R>ea2R zT=cr563-ByOfv&ul*821O3dM&N-pD_WP%wXG-0H)GcmC;XZ>s>WsWyh!ddPmlgZ^)f@tP-^Caps-*Xw zWR7eE9kSzyU|ytxfB^l?%_?B~u-{9`N7^&VTsTChvBcqiG6&|H7&B%g70@d$sWV3~4SG_^-7*A=$*_Y2#`Sv*;GmG #Mt++)pHn{J9=oupqen%CB8j1(S}pU_s+m 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 z�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

&2<;`Oe5=PU?)UXj;=WEj+8QSc#lP7)@)sWTD@7 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%0D?*f$KAiDsP1 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

Gz-O4y@b%=FuHjif*iUf2E6$ zegCyC#ol;M+19^U>g77=D<I&p?}6m6K1cCZkX=dwe7J|4lUZ2>65zT z6Z0W-Lxm%irj)R;ed8cA`~7az){DPdWj8SS%kpL?ZQf@$TP<(;tYQBO>#n7ZF(=W0*f54D%}}2vwZBha{h

^0xL_6*YVIey2W}0}gp!ifDcM#LHE(w?hu4 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

y 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

azePLc*R5!iH~iNJ@%Tpx?~~?dT09m$ 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

;N))kbsZ)jO-MY*Q49)bsD(dQxT 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

+C=7QU9MMyA2Wl8LR1Ha_dhK)*F|8lk?rWK zZd^|%D^W`J9;#zKUG_M&+MJjWQgu|V%f-2J_@C`~&-_|A^P8)ovj}!a5X!UW7&(8e zaaD0c&a0>6d^7jb5>_2Yt+awwvEapy7PMGfTf5k1-G?s zOw@RbV|1*=F*VWR_{u!aHm<%cvcMP9v54)#7OeEg{%sbUgZ&#UwhQ~GS@Zt}u{W8l z8Jg@%#qL6kpHz7OG2YdmL5wehu}CEs zJuOnjiD;a7bL@≫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̾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%0Dv7!b`J@{=~*sd3NmF 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 literal 0 HcmV?d00001 diff --git a/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfig.cmake b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfig.cmake new file mode 100644 index 0000000..9a9f90d --- /dev/null +++ b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfig.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/OpenXLSXTargets.cmake") \ No newline at end of file diff --git a/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfigVersion.cmake b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfigVersion.cmake new file mode 100644 index 0000000..45967bf --- /dev/null +++ b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXConfigVersion.cmake @@ -0,0 +1,43 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. +# The variable CVF_VERSION must be set before calling configure_file(). + +set(PACKAGE_VERSION "0.3.2") + +if (PACKAGE_FIND_VERSION_RANGE) + # Package version must be in the requested version range + if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN) + OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX))) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + endif() +else() + if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() + endif() +endif() + + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") + math(EXPR installedBits "8 * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets-release.cmake b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets-release.cmake new file mode 100644 index 0000000..b6ff35d --- /dev/null +++ b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets-release.cmake @@ -0,0 +1,19 @@ +#---------------------------------------------------------------- +# Generated CMake target import file for configuration "Release". +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Import target "OpenXLSX::OpenXLSX" for configuration "Release" +set_property(TARGET OpenXLSX::OpenXLSX APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) +set_target_properties(OpenXLSX::OpenXLSX PROPERTIES + IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX" + IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/OpenXLSX.lib" + ) + +list(APPEND _cmake_import_check_targets OpenXLSX::OpenXLSX ) +list(APPEND _cmake_import_check_files_for_OpenXLSX::OpenXLSX "${_IMPORT_PREFIX}/lib/OpenXLSX.lib" ) + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) diff --git a/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets.cmake b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets.cmake new file mode 100644 index 0000000..9c15672 --- /dev/null +++ b/thirdparty/OpenXLSX/lib/cmake/OpenXLSX/OpenXLSXTargets.cmake @@ -0,0 +1,108 @@ +# Generated by CMake + +if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8) + message(FATAL_ERROR "CMake >= 2.8.12 required") +endif() +if(CMAKE_VERSION VERSION_LESS "2.8.12") + message(FATAL_ERROR "CMake >= 2.8.12 required") +endif() +cmake_policy(PUSH) +cmake_policy(VERSION 2.8.12...3.30) +#---------------------------------------------------------------- +# Generated CMake target import file. +#---------------------------------------------------------------- + +# Commands may need to know the format version. +set(CMAKE_IMPORT_FILE_VERSION 1) + +# Protect against multiple inclusion, which would fail when already imported targets are added once more. +set(_cmake_targets_defined "") +set(_cmake_targets_not_defined "") +set(_cmake_expected_targets "") +foreach(_cmake_expected_target IN ITEMS OpenXLSX::OpenXLSX) + list(APPEND _cmake_expected_targets "${_cmake_expected_target}") + if(TARGET "${_cmake_expected_target}") + list(APPEND _cmake_targets_defined "${_cmake_expected_target}") + else() + list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}") + endif() +endforeach() +unset(_cmake_expected_target) +if(_cmake_targets_defined STREQUAL _cmake_expected_targets) + unset(_cmake_targets_defined) + unset(_cmake_targets_not_defined) + unset(_cmake_expected_targets) + unset(CMAKE_IMPORT_FILE_VERSION) + cmake_policy(POP) + return() +endif() +if(NOT _cmake_targets_defined STREQUAL "") + string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}") + string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}") + message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n") +endif() +unset(_cmake_targets_defined) +unset(_cmake_targets_not_defined) +unset(_cmake_expected_targets) + + +# Compute the installation prefix relative to this file. +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) +if(_IMPORT_PREFIX STREQUAL "/") + set(_IMPORT_PREFIX "") +endif() + +# Create imported target OpenXLSX::OpenXLSX +add_library(OpenXLSX::OpenXLSX STATIC IMPORTED) + +set_target_properties(OpenXLSX::OpenXLSX PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "OPENXLSX_STATIC_DEFINE" + INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include/OpenXLSX" + INTERFACE_LINK_LIBRARIES "\$;\$;\$" +) + +# Load information for each installed configuration. +file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/OpenXLSXTargets-*.cmake") +foreach(_cmake_config_file IN LISTS _cmake_config_files) + include("${_cmake_config_file}") +endforeach() +unset(_cmake_config_file) +unset(_cmake_config_files) + +# Cleanup temporary variables. +set(_IMPORT_PREFIX) + +# Loop over all imported files and verify that they actually exist +foreach(_cmake_target IN LISTS _cmake_import_check_targets) + if(CMAKE_VERSION VERSION_LESS "3.28" + OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target} + OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}") + foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}") + if(NOT EXISTS "${_cmake_file}") + message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file + \"${_cmake_file}\" +but this file does not exist. Possible reasons include: +* The file was deleted, renamed, or moved to another location. +* An install or uninstall procedure did not complete successfully. +* The installation package was faulty and contained + \"${CMAKE_CURRENT_LIST_FILE}\" +but not all the files it references. +") + endif() + endforeach() + endif() + unset(_cmake_file) + unset("_cmake_import_check_files_for_${_cmake_target}") +endforeach() +unset(_cmake_target) +unset(_cmake_import_check_targets) + +# This file does not depend on other imported targets which have +# been exported from the same project but in a separate export set. + +# Commands beyond this point should not need to know the version. +set(CMAKE_IMPORT_FILE_VERSION) +cmake_policy(POP) diff --git a/web/src/views/statisticalAnalysis.vue b/web/src/views/statisticalAnalysis.vue index f10827e..898593b 100644 --- a/web/src/views/statisticalAnalysis.vue +++ b/web/src/views/statisticalAnalysis.vue @@ -535,6 +535,7 @@ export default { const currentInfo = this.echartsInfo[this.activeKey] const query = { ...this.paramsDate, + station_id: this.stationId, category: this.activeKey } @@ -559,6 +560,7 @@ export default { const currentInfo = this.tableList[this.activeKey] const query = { ...this.paramsDate, + station_id: this.stationId, category: this.activeKey, page_size: currentInfo.pageOption.pageSize, page: currentInfo.pageOption.page @@ -632,6 +634,8 @@ export default { }, changeStation() { this.getStatCharts() + this.getEchartsListForActiveKey() + this.getTableListForActiveKey() }, async getStatCharts() { diff --git a/web/src/views/system/alarmLog.vue b/web/src/views/system/alarmLog.vue index 7d7827a..b2f3ac2 100644 --- a/web/src/views/system/alarmLog.vue +++ b/web/src/views/system/alarmLog.vue @@ -96,7 +96,7 @@ export default { } try { - const res = await getReq('/querySystemLogList', params) + const res = await getReq('/queryAlertLogList', params) if (res.errcode === 0) { this.$refs.comTable.loading = false

b1maP29R{jihBY@FZlR-gauo3>x{eUaXy*sZGOX4LHNjX8K5Bg( zMT)GipyNC5>Zq<9MLdeGV-f`st?RnZ6-G#1Q#p!wlzbhRC^N)Xo5wopsGS@|Jc_Op zgcA4ijB`;7b<`7%A|6H8Nk!N9d((UCsCup8A_U@5be#gKelG`SSKO(iMspPLD7sD) zO0CGvH3n5n;xdY7Y!N6~doq9CFr4xQG$gVeQ#qlib* z^{Yf-+c+54K2S$lLQoQ{u!4_jH_ju4Y%gBNK3jy;mB3NNqv*OoD3Pz@9Vge&QNMB& z@hJKFP0Su3;)cflqQ1$x@ZLf}6$x+0k=(=_DI^|6*BwQdNBEE1bkt&wA|6H8UpBgW zNL^1kig*-VcNJY%TRv*4qdG^h6cUf3>mH%Ry^MCFkJPoEqlib*bzjjn)n#prjw;xZ z=^`FQ*8@U{`od>QPpK=Kqlib*^-$4u|Lff+byNmN5s#wl5urqVjoZ|2elMx3WG9wF z;!$)xR&+hQvMx|ZjpiugQFJ|#y71|6ug=U+9kq|6h)2=&RMB-j;N&MdszPVD2!VJM zUC)53_W?W#zIdji#&Z<$D7u~#$`!xibJ%6UB^`Bwqlib*^@31XhKTC>e*Z!`s%94; zK_DJQ*WWpPr7Y-4!lE zARa|mE>O)T)P?z~o?9$hN4>{U#G~j!r<|UzPJ?|K>!@QKMLdcw6QS__qLLq2HAY8O z>;_~A#G~kPP;`C$VTTWNR6Iu!kD?1!>Oczd{z6@evjY5d)K45mJc=$yMc4D7r9nEX zWOqy-yah%cMVAwyT-aqTd2rz!`DA?!<0#@$bU7=!W^Z3{Oh>)sDB@9cqwktZSN>7F&9z|DvLW%mC)bYVs9rXi85s#v)fTC;7S91e( zREJ(n7x5^%3KB|`;ggGhWH*#$c#WfoN73b~=<+Q(qqvUp?9Fr$kD{v(p+p&;{&;>r z9o3toh)2;?SkZNC?uE@d>SK-~9z~ahP@)~SzOrPijyl6p#G~kPQ**CYj*6FAY97Q~euA+*r`cZp>bkt0aA|6GTyF_7X5)$L?CCd6b$Wg?j z=qe^rcvq%<{Lz;>%C#@c7x5^%iWABUE+gvJzS6(xsP-I1Jc_Ooimo%g&JNO1b2*B5 z6kR0=CCV@=Zg&M8b(W)uN702l9_aRPM1@f$bX4hnEMLT<=qe>q$bs`W#>g`4$5F(i z=qfEyRECG&8>pi`;wa)#bd{0$LR~oiij%qyaTM_=y2>iL@Ljf!GWSPGFw+Tn6kX*A zh4&W*>|@7ET}?QOcobdb6!>V_A|6FoWkQK| zIAV#{c^w5^dkVy(=<-r@H7VcYsg9b#QN*L@szRu;OsMu`+34>_$}+sgQN*L@s;cN} zpEzy5j;cS12_qgwS2aSRJ;c!Ml=X0o)HRu-h)2;?UD0)P@x`G!>L^DMkD{vvp|A`w z{B1fP6)JU=9n7f2qv)!s=<;p!{#YF~jH8H0(dA7jEJJJ?KXm(|nvUAcQN*L@s-@`a zarjY^jxtBG6cUf3t2Uv;Gv$1f>9urJM~)&MMOPg~SL0ECPSa6KIf{4`UGGQ~rsm|@ z{JlbC8Q$h7;!$+fl_)F?v>Q6AdlbtT@hG}{2vr>}BWm06RdG5hgQJK?(dDb^>RWl2 zj`AMDbP8Y#Lq#OIr=qdwy( z;!$)pCX^_{)&6y^=qRUQOc(Jex|%4u3eCveuA@eB6!9p!{FQvY>VE98jylCr#G~kH zs_43(zdpE=oLIuNCc{~TcobdD-jJ{597Q~euI7p^AB$;~uFGWv(?vXrt^kQbj_%)N z?rbYlIGUq~N6{51QFx~m-d@gYBY+aka!ebtqA1_m$5Wv?7Mne zN6qIb;!$+9R&;fB|K3qY-Q}qNhrROvkD^-t|AqtzMK%a3*oYdhC<=ifpb@hh5;6-L z2qhE|myiUAkYbXBAQmtntZNj+Yq|Dz?d{sJB}M}%D1stbv5UE0yA(zK-}js|Gka!d zc86qxKL6)8&$G$N%;#;VpEENX#z?kun3P)Qm;AE)QeDbh#yw<=WJ{53eZKV9dAihn zLW(hxEstcYIVjfdj7|E7b zww1T)FBr$<)Vr|{;NxE5mJniY>j17 zDUcwk)$esULYEqN0Z!pyjAScMvi18XpJ(b)tArF|BwOQ{lv+1d{OiGdUFt_6#Td!f zc*)j=9(D0u$2aF_dHA@HVvJ;KqGYS-y#)(&scu!=7Goq^ z`AmxXjdu9lbjEkwjq|RYdYHr+f_@^U| z)^cOue6EZ!Qf^FRQtGZ_`}|YOb*U*riZPO{bD5Ny8!w#j{MWkFB|?fZlGJo2)d8*` z;W)p~?w@q2dxaEZB&qY56txmM(mvgbH&)cKa;uPHj3nh_Qk3&_lyq8s&Kyl@zmQ^# zlp8acl$smAyfNhjU8-UM*TopgRsoYz$FGgQ{N&c9=-UzLV2osIresT*?f#c8HNJ*R zF-EdgsKrG&((5>9h}5e>iZPO{BFWb0|888R+ZwWv+hUAltC&e8<1)3c9_za#o~h;G zeL{*clC4>it;ee$eL$Bw;zDkVF_Nv>OiHa$)V_47WkQNElGGd~MXMXC5#Rmz`+QyM zHzCCsNvecNb>pr$rk?oBkGfRpB7T}NlGOQ3N?pDQtt>U#z?lRnN(=))uoPE%spg`B;{vP9dQ{6N8^&>eY#YM zkYbD^HJ?eT_3(v$JulFuo)=P#k)#$dsnFcu-xvwQj*d&{r^CS*DK~1Elv;Z!H*~3S zLW(hxt%Xb~G&gjqe+enZNKzLvsnFcerM?nUjFF@kF{#kp(4~f5#^Yj)By|y!qS1ls z#>Ux0bC1&M#!?~07%4X{W>RWy?5&uTtV?|>q!=UFx`auoxj|#4E;Y86d&n3`>QW{Z zI#%jZ&j=~TNK%WLlsZ<<{CU_YUFyW8+!kXbsU=KG%|q$|61Ci@6H<(ka^o^4rRK){ zIbEODrH)y~Z81i&RU2ljmuBlBA;lQU)>6rqd#`7;E){<{x5XIA*0L~LM{2gF3Ms}& zwl0@!z4S@ihq}~5LW(hxt>sLL<^Xg&w&chUb2VFk3Ms}&wpK{CXfH*Vn!23pVvJ-f zpxI(`fTuRE(WRacQjC#oT_M@(GxpzIbt&fxZi_LJt)OJ>rz9n;2ttYvbBmyscWLKxv#{{((1-)A;lQU)-{qXdOk{* zN(^#ajFD`u*5V@Kmc5&2%+_pOB%~N4*}7J;75GoVYr51=LW(hxt$#8pb>92SXUe&{ z)a)y{hm4VIT_@SP_VeU9y41%)iZPO{>$SM3&KFM^a*-~TU&n1RMzVE-Wb3?JFCL>y zZ4gq7k!;>SyQZB_<{mOevULlS3hn2Q(`?-@q!=UFx>d48?^o(laVxnk z#z?kqlWfuR*j+VSQ-l;_BwM#jwjMe(dAlyPRY);LvULZON`@u$-``8RZYQ4P zNVe{iY|*>Yy40IOiZPO{`v1VADlc7X z>W$nMVOZ5sA4?y41gf6k{Y?&oe2tyy*QD zT`J*LZi_LJtrsL)gHnGTt4oy$DaJ^)USv|CdDuzI!)-!}F_Nv9BwLh+y3~lQc*u6k{Y?uSmA8Jn78s zy3~(CiZPO{Mkb}^A$=!Cf|iHV@8BLXMzZy)WUJrUd$;LQYlIYI9Q`ZxZ;yG6NvZuj z*WH2tavXjq|34YT;Qw}oNHsC3Lj|`dz2jECN~aU2L5dDyWT~|gY)urlh>@k%MUa{+ zq==EF)-$QYxGRo_yPbTv?qQwqkQhj@xBOCS2z{MN9gS2wA*rXH6H>&;Qg3KdG*QRH#I3F9ABMxirqTKjmZ1%mn)HOni7}?e)O$rIePx&uQ)TQ1Q zQpCu%-qxhZmK;~JkRpbz;yWMjX1~}E=n1Kro0%SJr*z!zyBX_xF5_?v7gEH?Qd^jm zc`GP{6tzWSWT|%|NL?hPh>@k5+4<)4HU9mJ?oyqoxhNu}UgJU%BC zpSVPqVqb@dv&2A(_bu%1=nf{8k84OcHvV)9cAQjSJ!r*r5F^|Alu1#}lhnl>Pt4S% zt`$H{G~j4bszlcKmtYDSMgp4X+0zYnKy5F<-{AxY)T-+rbpRVk#1 zfmBFte95G;pb-hj>!T_{Mytn#6fv@`ub7mY8@DQeQJE+Hplf9BRHC zcRxQtj4bsHlTu6h?3d3*kEcpa7E;8>aqVPMQ=t?I#}^|%{;w`|w~!)6w)HKOQsXM> zwnNdSeil;1$WqNr>QvZi&x62E)x)zN;HQX@rT)vL)Kc#C%_kFdseq6oMwa?ck}CgX z?Mz+jBOyf$q(Vyhe@rS9t{~w^IzAU|O7-x_2f2sD$hN*`QfhAO?KWzuE;U|A5hF|e zz@#Xy1g;oARa=(}DPm-)A2lgrpH4Um`#GxA8X-lD9M?}w>TF0L;katpFX)X`sh@-t zF|w_nnUosW=N+%cK9wrDJyF}`&_qm zxsW18mikSSl6!!cg%mN63Mu7XOzH%SFUU`mg>mwmWjBIN+lTvd-?%945QpCto zdo(FE4|H2y9_G12j4ZX6NvXN<>+S8(2deVPLW&qUuHQ8&Bpi3_`k+adI$KB)Bis6e zNvUzkebf{oMT{)9k4beEdC22XJuDMa#K=;AGAT7Kx$j*nq==EF_DfPv-TV@2tZM5n zAw`TVMF{`)24a&3xSr9a>V*_BvK0Nl8vQ#TblYZ6k#$WmRHlzGqgwU8o4 zmg>r+)VSoHE%8yFJ;caThiFpaaSaku#6T*fXY0nK{sE@iZ)uh66<2fNk45UJGqX&~Z zP2|R<3u{6~^Y?`mF|w_mOiIlSxz6tsQpCtohiOtsh(k>s{TM$%j4X9HlTvd-uJh?a ziWsh`P@Exc{7kuYCUo6&1k;=(JlU7fbc!nDa4Zp0#Hjvou$LtDd&vOI<+vq$3yY8< z22%77ABGHOV!fHvI@Or4>2SOS37>m@&7jHnPY>B;1vBRr7fmiMm^-Opp1;`PtMKDr z$QR6;=g7zyd zc}Cf;s*iY?tFNpqSm-M&Uf|<78e)k>Fp#M*g|uwQh^8qtGlkEV8pGU=PWmR!sVraM zv-T8~k%D2h26eHrq-?fUXXrvvG0SDtO;<*WNTOP0>6tMFl_HB*?r10i5M)MbM#{{B zs**z0W>$ViO5vP>N?&zlK}mI$YG9IVbdXE8E7!x;tD|TOs;Ww6mm$(t`sU7dPZ~JL zH4c?sH2Z-yrSp6XDofCoT^0V>B`%jnP#@D5qUt6*huRdKZ$L7fh(q*Vp;i_L*d z_Y}%<-D%e#7xgrr$%E-!aamz`5!GzeAL;|Ck45JeQq0J$nf_TWi(1Glok#R-s{FtM zlvfK}$ouljO3DgD>zZ9Bs2QQQhWSxaj&@_-j(7wH5A+;}Drt;e%e!(>)gszu!v?%Y zYt|Z8lwb$Cd}Bh&O3Q0o_6%|I=AqiQrGY#ajhO0@Z( zGE<1obyk6YUNs-csEb9#oG02v=%hjALONrKWb+9cHq{Oo^Ms;sZTZv|=n6Gee_=J6 z1AJm<^`0Hw7H>2RtX^1A%v()HK}AJzSrHo#?P^Dn=cl#QNI^A5qnUn_T;U$8m-S%C zoXrp^vkJ@0<`-91`_S-bVTLuYpt_`Npj-sLF~}flZusRJ&HGSRFAc(xq{6zOP&F9z zWG`kHmlao*6uMBG{MED42BGUj--SUVzr3Q_H>+S?l~k^whC|a+-Da-aRjSVJ4$L{! zshIl~rc-mRqO!cOxT?yPk8Bz^L>*c~nuQA&hH2Rsa$y3MXbwstn~Kz(BWpnYr^->` zubShUT~HC4scaw;6@m}zXh&3jzT&FF0yLBmBdqymiK>%NiiBcSq_Dh{je@2!G*!>g zNLu!p>t-Al38)kqDJox4NCGs-&9kUA`2z=~x!8|TwJcwl%Pa$0sFkWID>ayisrFFC zvG-llKDc$h8!K%{)1`cGTkTY|t;qK<-&s}B`<}MYZo_5Y0<3&XLn^s8Iz+1H=J}vE z8s7qHy)oBXTs|-6I;*HThqm$W*dzpG&ayDq&i~DV_rci<{{-}HUuFYHr+{cc|!DE;KxpmJ!O1Yi=q#! zO1=P#98o04!X`ZB{^|;UwNIP(SdH2=N@F@Cme7W72-6)J$~|nZKAKQ{t>@+n|(k*YpqP-cTZ*Gt19v+pY^!S)_stRAQ+Mrm4!+O?|Lv?amHo-a`B z7~pm9KzJ@uU0hS`69vboK1HFm8+%HqPHZ)9%pFXEC@&`uroA3&CN;ilni;WOxlpxi z4s&2iDXT(Nl#~_GHbY2RMt96Nnt8(3J|aNViCVM($(K+iT5nx-ApV56Z=QYdGR)1Y zYGkOaoGk&Yi{U`DW9297j+_Bzs*PD9dfx*m9y6`Rd}ytgR6BX*W~5H>PAQ$2MU(Hb zSo%)!PMG4tmL4{^(bY_v;>}VwvIerPNOgZfG;oUz5sMAYfs+SM@s21jt458TNNa9& zf8Ejt+OEWg+4zD5%tI><<&+t^?LvLefw@NIHanW3Om~K~yK~@XC?1%}E2u;kAZuM# z5g9Un5Zke|A<6DNgch47iBirhsGehCF=nB`3H!E5WSAS5aN*GBbo741F_f9`1~pQpTM( zRz)yoRTdOh!^e@8<)!Y*!Z{__P7Z0tdLyUZ&eqmvYIkXa`CYP<(t^3gJ|3E>!zn3~ zQc~UG=EhWRJC-?-%D45UT~sttbX9bl;K2F=b#pa?ic8zhg*J@!Emc*HjksC!$`@eS z)H;p1C^lXv08bIWJViiwk~%Fe35U4VRF?o3Pw zs&PZbh3#A4D4r)(#l>^!ax8Mh(%2;I__7kfU8L3;qPm9uUb|@cRCEu0QfQQkk+TDAy`9UTh;#V^8~&@p5q%mkgvZ~wPN4X zXjLraLZ*K$GK!qf#+(giDa9=d)vYufb>V+NcJ-xeXvES&HRJ-@ilx;o-=g-&3)t|$ z_`M60)obKUaEgFi$j+BlXeNAadaMLJiLbPv%#Yhd3w`sk^ewN%O)K0gFD^n~lV!M# zrQXA5&z|tHIP`8-hA%r7^*Lp59zSwjZdYhO;q#Uk&JFG3qTFg^ZcqX3xbX~!?$SY-$eUS>J~fOmxonxj2y@L4g#-V7MK$Q} z>e9ikJ!vc>4z|@He~Hy$2is~1o_L`f3fkn@PB%&OYqq68g97eH@SCOBhoH%S3v^-7 zrU#|)i$7zLQ8lN00Y;jI2mD|RdFC6%rql}${IMFgZXjX5aT#JaR}_-2sX}Fyo*%O- z?i;1&K}{8Q#9ORIeOhHiO$~eaFI#=s6AujG+(>$&R4FJcnpa#o7^iY3h(AWmDK4BF zcEXpf5LH!N=*Por3w?z|VaixOx1`vC)%pVLvZh3RP&B22Zb{qVG=&i#57pE~rZiAMdLJu5uYyA)J3K=W%eHt)ifV~h-Sv_)1{gb+XAWyn-80+2JGURdU~>%p7x>5 zMfJI6v^q_n)pb=t$m3J;W2HQwjI>ZxBfSKCZKZlaZx zrKF~`*>lSxg0{54V;I=xF|?%x9>btEkD)Cs@EFqCJchQkz+)KP<}tLT1+`O>p1}`! zk{@FS+YVJbm#CbnLK;RfHMOfZ0xre96P9gU&h6=fdLt^b=3>9(@hsN5&7%Eho zi8?E7gSQFPrqh-tv@j0Biwjyj2g8<0VA}IV^7AhkEZ8G`+GXm<`I{f=CH9n(b{0J~ z7vQ`8c+-#H2{4II)7e%g)i4cjNF3068mix|(!pCSCc&-J!n?ZGYT>?MG8+S5TC2sp zfaK~RzlIX&T^RGCYOywpLTj-;i{fjsK8u2Eu|Do!Sdq3^ANLO{4!NSWSReN0nq=E1s?QDb?Cz z4^~xU@=9aC0lb8%+G&9#FC)z2S|F=UAzC2I?P7Rufvh$)Xo0LTlTF`-p!*s0q1R80 zc^h3I%mnRP$Q@ur15t2QeM?`H4Sh2-)GO(ASvBgmHPVVuLZgWM_G~LcIRGQE3MJyp zw6O{$vJu;%7zcdAd%+Q3gS8z>tBkZflmmE8xaFZ7h>=!?(nf{BB8aS8ay-`WJxh5X zbL9rtX;j87aCOwtHjG;K%C^Dv7%P`ukN&c8#BbuzhlbD*k&O+$*s7M@w)2v_v41ch z(!%|Yv2KIoHcGR_j>lHF?0EFjY^mEZ)hs(5h8b(+vgLtb_|c4}pJWA*~R z>~8GTYRehkImJ$~w$_QYVr?N5YsK0sDb|X)$JqIdwPNmZ8z`15aqGYJL9V?q&}XQ& zG0cjw?cy!ek*inxzGw7+z;FsX@w5%N9%M*g<|`wpQM7YFVzBL zq5A_YtL#~0Vl6Qz-C8&hgIrKG8T$25vHRjGHQU=rJFk;?zORk+^ZMF$`nmtZ+SvcL z({EOJTK4s1W)-D{n#`PP`4^s=fM$9hF!HyEvHw`1x)u{%yeeYF920H4 z;lxTC_YEtj82T0~ZDs|kZRf}GEA7lmyKM~d?8Yb^n%!+p&rQ#`7J zV#=)g#r*pY&8lAPjqn1(a~z=s6nitgaN67qkH*jgwpBE3ZiYu==rh|Ynl?AXqrsx^ zVAQlWH)GZX#O6y$&Dwp8H1i_B!(yRD5F_2Zg}04v?zf@$h^gOgqnrC}7}I0wciZUZ zejA3;nEKr|y1Cz2Iks8-ZX4a)Z>$*G%H!g=b3ICDCn7Y!#_@m zyePE#5@_Ll+v(^28#;g(=8x$rA%^-*Do^OMKheG$-7Ment_1(GY?G=JJKd_|fBo0# zX%9F59b74_sHjoDRq3z(ox%fej@nBk1E9yb{7D;V@I7rs?Zr~spGFe~ob|^n?Aaq*CYy-MAV$iW=Wn+}8gSM2+xZtX#V zHqg!e#%=pH(9QjB8{OP*+@NnWzuQK)+9>JYd>yR+DW*2pgK9H0(1Z5>%t9kQct*88 z>!AMcHW4e^i#&+`GA>2y>Hdmn*{bZY&7=0rCe`JYu>i zo=L@%|225%x0FZx|K-vCySPc!Yb#4;m9MRAnN`2GvSn5Q+sYP?ORj=#WlOJwvH$<` zdbNwa?u-oIP<)qQaYc1Wc^Us7r9(1Z4xAq0@}*{uaAl7jo8|UqdtLcubIZyXlx3W* zJSy1F-{}f4*=BFzw3l{pyiWm6se^6&v&yfhGf23=)XUvGK>@lNU(35d`0ZC+> z4v~!0g^a^D(UX?pp2X~!Ds=cpOms&<;OY3(h+163NRJ&3kBVD6Gfw(HrGo}j9_g0p zpA_+2FfkW;QMI9;vsA2?2m7zEvf{9d(f;!>_jqXa!ir*FN!hG&mn*bBxLu=0j`583 zx5VPt~Q##KlmOd5!*(I9zQ2m1ZzxhJcr;ZqtHzw1qjBr7h z`j58oeY_-ET3lLQxzLCIv|TW}xU{&e+BeHzR!FrL>dGr|(xrsH!7(Urh?_QRefY1n z*=|RM^lx!ns&EQvLAE^jjBH zTw_Li+#|+#6&D(9Sz&n*m6yOh6UJtoF>KiBXJnj#hXI7xP<1Q2rFYv!S!#M(vn4Kc z4O4w;jjo}*OB+8}Ro2P?S%Yq^E;Ll?8`4^3~Or!G6h5j%n=*=k2DJQwXtY1OJVbyU=MscN-GpD`a=qsx#vtydLZ zE!s*aO3~`g7CsP%S2S`Zs+d{!Miny2N1HOpFt;mhq~0t`%Bv1EuBal$n4$_8;<3qx z7ybbYLcoXasn}SA@_98L`K)l-?Bu|qTIc8UlvmBfl!DEvLhFchLA8*PBAwRq#pG;g z^yZgQ(CB~7{o~h6%?&op_0$d}&2U~gXL?q5&h+wN^U41BG{bpe!t|_e!t^pXVLH#( z0%C%uNT}fmfWe0dIDr=VHef<5OzU0W^rEk#{vj(!*uq{Mh#t7X2PA4 zuZQ_&cG=8DBj@vZN-+`7M8kCWd{xDT{>qZ-g}%b_^0_5+rlz#im5O85Ec$8wTf-tj zsi}?u15<}3ha3Zko<1xsEp6!F(?d=oIWRSK$dDn)$%BRsI^*=AbZtiGqRX$0AK2y1 zIji@^Id1IYU`PL=%HqQ6`NjM%hhspT!|_X<`j`0KImyw#sCcG-cFF|x%H2quaJBju z|Lt-lW%i$0RTX+RA@mQCUYwL#-@lSxiPkUnLUJwieIj(m<8N1z%hjL0OEIOiOeK9t z>;rS|N`9stekCX6%`kH9alQhKUvLP^lsg6IFBJ@u>@d@p1qJtm`)(CyNWU5PB+mD_ z#^Kn44;_j4m~m&~{0XZaj_LT&VdbA2*JgvcFA6su+<(A0uO)5P`bNS~Z!o@pa;_tO znfX_Q^Y?)1bRFlc{7c8>9$>}@j>^qU-!hz^2j)k?S(RHmTxfs2!_o0ZZnv|fuZEw* z&*AvY1#_R^tnAJQ*97LQe{oSOZU-)(1Ln+|B6G8l5mUgtbTj9y%C{a|w_6;JH*e)! zSNt-|m*wC_-sW&@yq$A$yn4NV5Zu5!9F7m~jI8fba1-xxIO6Z&TnGHp?dthQ{$zj| zEjWl-a`|8iOgY^@7v$#(21$14c6H8=D-VK8{x@f2yE;ep>J%`=g0m{O3~;qzUJ;yC zy&4a0E116ba=X+onfXWh^1xgzI4ga*;O+wRgWw|h*X=%sBNrb!tn^WTPyps8!9~*d z9GKlv^tqw0>;15c4;`{TxgN{~vp{fidFb3((6I!}i-K#9zs>TG?0yd>^#LSsM6x>u z%sGOKWVZ;+?Siwi`xtC(26Nei%&emWe(C<{aZtT~3C!z)lkMvDkMz9*X6ZxG_0@yf zAUG?1>!D^VnA;xa`s94k?OqK9FM{zt$~mieF9CN6m_Nu-99DKe!nF>MI~IY)4j;w=JmdlY>X?@M6zM&XVF*Xt>V;|zT0u<8#;UoMz{;H=^xefNS{ zXG7nIV0t}GR;}}e><$4_8HGCx+)6O_2+k`127!AN%%_5j6z{KK20jA;99Hr6#I>vFxNke1P&{1F0MTY=J4kjW*Nu1xI7rlO2Jv_ z8vyQZFk7N6NwRwZxTS)%ii5Ztz&vP!dl}4T8{Ai5_SoPKc>%uTLx+`r z)XfhT3$KB(8>^#Luqy^lm`^hYuZcKFizyFzGh9Y%t?&aMQrd zj>09urwhO=iNaAFK`_^wa(X?e0CxwN?yn$$BMu+4{Gi?d`qxSSN!S@HXd8!!Nzu`0Ynd`U(dky$R2ImK}#0D1xbG;4j4loa!a(X|x0h#s;m|7}89CAME+|jsD2j>2FBXj@5 zzr<^-h z;`DldGS1)l8TL2up+ojh=V-j#0A`yF?lUm|v%&2Klkhn+8_{kzFh@q=XxvW$GdK!I zahwfilqsi|Z-;i+=K^!im)t)ZPxSJT^X2%j9FG3@&=D#BhJnel!HofPjt#B|Ooa{Z zLNJ$`a(cWc#$&Aj<|(R(I6C5^$E$OhIR87C;olNv-HsOF+Bh&91SjWu?PHjdLFS(&LrOxBDKU~czDN#78AN|3cY0By4OVjHtFo$(Bv#WFC!1WOflI+myfzI6l zH5K5xCvkmN^Q&}>zXf1!K9qA5mzloC4!HN$BhInEH|I`~IK5u|1LyBLD$cPUA3Er# znZ6mQ&s)HxoyfVfBu>{y`4>DX&T&0HbXe(Ij5zK9bKEJMI|Qt5SJrnIm`4R?rSDy2 z#B*S-O6U6WE%Z^mJI;=CbjaYGtWUO^1mGkDO zIDQ$JI5&?2!?tDq6@$4zaFOC&1ZH^@?qt|m1!heYj_T#BVBRt1^f)RI@W)`rjNx&N zj}XUY<50f%&=Dz)8^GLcgL?$b8XMfJU^dy{-UsuQ4ekdpf7swUjE{31ichq7j|S7% z1~&-I*)})@%tRa9d0@`B!BvA<9EGF$as`-wMd7G@+zsZjC>-fq1Lk#8POpFQm`J<> z=DmEL&ym(Mw@r$3Jcth+k?P-5U>a<2Z-9Bvl+*n?7lu9sGkglSYc;<*50|Hbd2TA_ z(EW$>2fDtOarsv;Pfp{U)q3W17}^VFfRA&BM$q>;m^%w1>w5*4zX9_=A?IZO^nRE6 zm#@G$i#SI=^>IOtqc@ms#hkN><5I{Ui-$*Up$ABCSn1n=Yxja#KAUq^`MedE?*X%@ zgmYBSbpP}?sGc5mew^bZeCVK`R@^`^!%aCo-aj#3=77mA<@&ls(Dyc&j|3OV?$=;` zHsy4?ln?s^gCsljIAqRI#(j&#Z9zfBgWKxoY^43k8y27+$A^wcaXbQMjScQqFq>>} z?}Pcu2KNJ)KTJ72UuYiJp(f7J4WIBhWUd#OQ$%9c%G=| zTuG^}{_HJO^$fo+*&W<5f~EG%IDU$L2 z^HKDXf7@;9`xM-FQS_02U25%>#}VL85Uf>skbiEQ`aIzBZRo4Asc#Xu%)V^iP5 z;GT=3kLF$P+0@qzZdVk2lz)dUwO1a;fIC^Rk;)^-roOS@rbW?5^<|+=eapbDilUG5 z?@=&~M$V)^_!P`{M$XV5P=D2BS)Ai2eCW{f#YEp3V6u&zK_B^7C>W*?Kdkzz1>kCJ z=(_{VQ%26jzb#-sF>(g~DBgWw4!Jyfy#2roHF5@h6mLG55+i5g-*PakjhsOr`S&=O z1|w&p?-MZ1M$Vv*{OhzF;{rZ(L@M8OFgZrfppWWvv0#`&{IDwD3&33*MPDz--vs6f zBWDut+h9I2at8k>-rvDES45BZG%#lvITL-8!OS&sCjJG${L{#p=z9XpS|ewo?@KU0 z8aabLsxQt!oTCpubVMrO;b1&Q&P3mAFbj;FiGTkDbBB>L(f2Z#w~U;LzVE>7F>)sQ zj<^ErEqtQIn+;~1ku&I{@uOTYOd)<))#nA^YNP0*^0))cL~hX ze0vy7gOM}oPd@?EY~&2}kIfIR!u$XqI<$N-(U%S;$H*Ds5T{u!@)bbAy>~Q{PSC?v0|4%HuVg`Zj{w9z`G3(_LV?TpQXx%*(eAn0|t@DqpIn9x&r2 zedhIa7MOX0v#O_LXTD&NWQSEfT^Poh$FT%lonWovpnCA2O?}URYmB0g%I#B|`gVf* z)rP(v^srmVVKvSi1@0ulMv6DvroM6Drbp37@h-BduNK_ZHuODgQ{PkI8lvc<^8Li7 zzGiT{qUfV|54+A@c^m`oWWidMM>6!~fSE10NaM#MFw3Lpqjq@@m`5ai;q8*{`@I6@ zT}fX!N8|L*f>suEbxDeghvmBE^vbX0+g}@`d6k0aGdI3-|A0aF>ILzk%DO zxXk?X;(UW(kYtA$NAVtVBi1SS&=Dz)fnbIUE>axRz!XXP!sDRl4Qjw#Dmb!k<{ypc z0l^^24l|D8xC-2@f{hf%f55yXxJYq)2#{wp|YFJ}JHb47!0jUGobxGZo*f{heM4Va~ZixkJ5U>=n8 zg~vgDzYL~HaOA039Mu195)6{;Fyp8^wu9Rz*hq17zYYBwK6FHiBOOeZ;J7~XIHrK{ z3C=1GTBno&~w871M_diG?a}KM zmB$g_(ghnSjl}Ly|5*WOEp~& zehuzt$u2mgf?-oOwR?0oPBkR{2chmIurQ zf{TN9}wOn5&JP$v*JIV4gE_hJJ|V#qWXn+Q^yc zYyWS&KZ6e)R`HU)0fJ#5eps!~Gr*0GqL1>g1k4g6XX4*&U>-DbCh@KZv)#y<=-UM* z{@&>E9w(S+@eTwxJc>SwcN&-~BWL2@DloSgIg@yw2lIxJGtsvb%&$hyppW{$9`|89 z$A^wc?R+elX@aw=FVxN#g1Jo67v9ckJh~3de*}leTTT1FBXItG!63;Fv;L3t{Rr-m z`=iHk9GKGt7b%X>U?xiX!s9p|cISY(LU1(RnfXWUs7WwLvcrs{{%UI&XWn0Z4DMUO zTE#*AOX34OPqHgbmgOzrI* zF#k1jCi*%*80R<~A3Ch!rE(h#CdjiVJku%YEA(+dJoIxMW$L|&llI*Y=KOO`3LKJ0NiSd}l;m$Si4GIA#Rs=+Kaa)x**|852Ih>_k~S;KY;tg zhQ1>o<#`v)zkh%mBv`BZLgQr~m>R)F8ZWN|b3+t;G+sUp=4DA=_&75c+!iorKgMIB zax@!1&cykT1%o6z%s6UCy&jKq4916!NO34&CJN3fUnq`BFpDI8;c?LZ(A8kB6C7DL z^N+@v+XaIpJIpvLkNd!F5^SV6z5w%s;3CD*?LTpjBk-Yv>kE&A+GRg5BLrtPfB6Tv zxq=~mbeP3K@vaKv%*Xv3!QCTRt2jtsqfLEpfO{{BKHB&B6-@6Zc)sv*GxzTVFarc< z<=?5$mkVa0;3Ab<9he)V=%f1g448UJUwFCE{Olbt?+ebV{?Yq_UkCKk++0Zx1roQvQogYOX_4g}m>bn-)?NRhmyf4|* z*92~J6n)e${$Nv|<0;&)z=sa2@}Pe56fh%=oXL1u1g65s8OBTU?`YExeZ zxY1Gc(K?{SroM~81#IZM7tHg5i&SoJf%zbcKDrOF2TX@&L+fdHxv~Ba%&CI2DmUVW zfH^w~NB092FcSo4HJ(#Fm@OD2*sQu0ZcafyeydJCsbF<*A>H+O!9FTo`|$IC5JJ?I4{ zMQ~Q}Qa#87Ggjiv<1Gc_7o1hRR1Yo%vpfn%^EF#Y_G8OH5Rup|S&shrQcELp|w;=KXP-A2x!FBv|)0_HO#XQIzhk98S7bZBuH^ilquA{YkZhgJTa32tN*eaVn7 z0<+Y}nfP}nm`9A9iGLfwd}!oM^z8-Hp&@d-=w-g^@GScORH1 zjhujO#O$wOP1jqG-k4LnBOD}Cm1BzVa8ED zPXt#a*hq2IfLSUyt9D6o+zIAENuPNfFN1kaa8_|pyl)AH1%V%CaZr7JH;gkM2R{Y( zonWovpz*iMtGvu~yXN|Ofa@bzD}ChOaGUx(;PRvBBmb&w>RSYEc@%wA5ALz4?0m}1ITL*)VEjhT(0(cZRttvg(qYyA-30Dl z8~R?esc$2=?NRj6dTSS$qndcWL~543NQS=cVD=a}lX`H(TD*sg4;@ze$UirjaYoKWUpbgX zM$S;LlA-TLFwYq|6MgT2`P|4E^ie*?t+Uq;bpm&oV6EaMeQ7rJrGv|{p|9AczEW@t zZRoq+roP+2J!nJUdYk&*2KSLspUMCK{T)n?^`Z3&|Nqy((R2C(1%o6z*#8MOaI_yW z0^GDH`iNTyW>pmKFmR6wh8e{VW|!5glp6IMt!G{Zw?nYJe?c53+%I5~UN^)`{}wr= zQdQ@m_ZRwunJze@VYl9>kNUOQV1k0v>>BhDcN>^S8~Qea`O${H_HSU{3?Dio`IiP} zvfwoT4CO}s#$3TLh4^7rzKg)E7A$X<$Y(>meIfrinC*g#xM_oBf~bH^6NXtmdBy_Ys&cjhw+QRiy6)BiwVi9C=~+oPdkpZzOB_VHO9y zhxKz97v8^6xh1@b{SAERuqrni&(9PL1M$PEKga=BC|IpLO!|WbU{(uGvumi&C&A9+ zV73WP%V&c=YUiJU>F^ehL$hnhXNvboFoOiA*)?$Vo=BcxkYtBdyoKN{6|830;2+In zSA)6N$Qj~24czl!z7brccz*(O_@?Obo&qLQa8~hBzRUnqV}rX6%p*}a+MnDY7$n(Y zR!^zDZ875v`A6f-HgLZP)+(Q=9wfev`+oS)LG6W=n<1Z1#rcU~77H#?K3@Um5y5G8 z4f^^)-z#9gv!QPnn4>mFE;nkw0|bL4JIuxfnuob;aFowV7>D_@q280e+%PV@-ynVY zVO+RA%Kvk0aAfzqFfQCKy?;5&21or>tqsltZe`hgp50ayuf73okdC{~aC1na4ZOCYNr5qk52SgQM|0H;fC9gSZJc zIO?ya+TiH^?~E`G`C`&v%>}nyuv))i;Hba43Czoai_~9z4W`FCyo@9DSI2;H3r@3Z zXy;@%Uoc3r!>qngJ6dRiqxy2W4UYP?n{04Y?;oa0<9P!EBH?thWsM zXkE4yO#7{d`e)$!gL8rzZsb_~(-(SF|8l_06`VXT(K(to1;E@Q>l5Ra&e6W;yxqayRi2D^x@Ar7Tk^CD9X0+gVKCAUb*GF;WgDDYQB)b=bxx)tc6qxOT zi{#%fFkQAu7#rZ3#LkNk>Xem=D{fXC|}lt`ABe)^6zUfzY8vs zUFUZEzbt&{h{WZ9nJYM}cv<}ebBo|2`FAgv=LHwZ?pt7fw!w9LAMYLGLq{b4JYc2^ z&dNV3-`QYlqv)gZy#vf^f{PT#b};**=%f5Q>H|E-jSn4G{t^WH9rYe#}6DqzOhliOF|za`J$YZjaY9GS@R9*FABBa^~^A5#uNNCQQuojP-dY zjP*_SWM%s%K%bhU7Hz|Ak@PTKflIAdHJQK6WyC;qv@5{>0%+K+8vnOSH znGZ&CyuYlvq_o&uGPAOva^djYEML|_xK~m*zIa}7K~*u7XJwCc=X)o5J(*`7Us^T4 zu%fcsa5i_sBt&mGIo6vs#+{oz;rL`Kh9B{{9-pa>IGUX~vd%o$l~-AQesN)S)wyYv zMHK~=)eFxZTTxs##XDh&p6EZ*Uox*q`@4TpN#(i1wR5L(acF;5|j%~)#gb~}z_(@aIIEQP3Qv2UzB{;5^65OuT?oFyZRS9-d_P?Sm*-Kbu zFK^JjTd95JBu~F}N*yJ4_gQe9C%En#$UBs^BS;th?nOqL;vGuutI5+E_mg_ZhIITm z5sfFoaSl=^vD8kwLeXHq+7_c&+Ls3d2156)yJDQh#C<`wN4 zmB73doU2ahH5pF3z^2uEf!885Z2+?CwoT_6EHveZ9en zDaqVMBC~^&sm?wwhbR4YfBW3@hU!jA(36Uoo4->6=ceQ-%QicgJ_-kw=l1iXkCOhj zbNL!NRd@8e_~lTR{LZpxfKoU5BqjX~=jGSoEYFkRI%QdXbvLE9{v@S##||Z+>~8KU zGDKPSK{dR6gOSdpY=;u)sMK|hcP4dH0y&8k0ZLe2*RE?ve@{{B zs1QWlD;1Q{l-eEfO6@ms)&D@1it~@4bMQV%5n4#ClD^4*64Tv$g7G>sL!s*(`Stky zo1wN55zm;`_z$?jYZq-4(xf-RaRz?&#JV)WF&3!{SZq~DQMFBQT!x=H?A&VY+@0Dv zRJXoL?S;LPlwf93WxNtRRH91s-jT1D&A;4!Fq4-bq`mG^6~7i&s=;K{-^YBN^p}W zxSsiwwq6NzQ39jUZbqYZIh@^5)fBWYI-{UhSlD=nt zUo>syS@H|VVnywG(8dNSbroo1U!jeS+}%9<*~0-S>AMwY=5D2KY@D)W4{M}{qT@m% zZJ1x$+@Q6?_0^qO4k^JOno*)Zc>+Vc!N%M`84CGbPv8=Ch;MSBuIsV6!B;)O_XLk9 zJi(^SriA_uYGrv|v^Q#M$!?$fJomZNr%5gDU+{^yxc89aE$%bzTs+#DkJXPuwNyG% z8LR}{Nb&Ya9aADJ2vH9&45^1oa4N5dO8W1J!RyRi%UnfeJVr_Xq$=rI=z*{2q91{q zzDD%9>7O{SuV<$kzUjly4g?fZS4Ey7_eEdN`?c<&{Tc-Os(n2(xq-$;9&Rd9Jlr8j zi7?V%udbn3l6Wkr7O6^bZyKuXcIuLq;Dlc4DAXm|D3q#=LV+sOWIh79R-`Gljp#W( z@&AWP2kOsF8O8$?WlxKKJ}52LT=b%o>ZJs{DTxy%O-8NH7xf-pFpVtUU?*>IZ*IRm zO3DQn%>~8N_!v}}`9X;uc*Vp zNq^IMc^)8M0hiS~mr@;3>ZYLbe~!vOVz)QAG=-vRPRU*NTlHZcweAMDX;<2%eV}Tm z5=i#ce!as}H@J_t?vi9Lnr2`6QR6`myq2~DF{Y0cWBW+fM~I$g7VEuuXM^qwB`2B* z%CbfYPDW4S^rnC7Z|@EM-h8At_!erUC-^RR9d;Sx32wxd+#s)~D~Y zk+V1#oSdZedt0gfY=<@-p{WQ>NkXS11NDl~$J6jddvE;b-oWfc4;n5XH=9uYsjPKQ zcc1G!Pn(`FLti;8Ex_`B1)QF%TvA7Q421QEx}}TS^cbcw<6;=b{#MUL(!#K4G4WLTVdJO-71m z1{ik4 z`jz?}?drNFwOgNcN`rfGeQNfKI0!D=?BD9yzuw&xcUtpM5<`vTG2yIDd31oHzfc14 zXg^6S;+49rl;Pg=b=5t*l=1}M&P6*HGZq>hG2w72X}q=|`n+k4beH}*Hl=7nidU4a zNS&*dNb)3g{PYGdNK&2`JqE_e#%$-)dp!M`6pX0oJ}&EvNxJr|)b2~F9IXV8Rf1c%mb(17kt@y`n%R^!G!Bzuv1U+$quH84>9-vo@ihZ9Z&$Ok zxwkqD2e&dkAvywQE3k*krqDbVT>^4}s@)W-any#-vlw1!dd?g04y5>?dIWNn*Tp_a z@rFq`&96>FiVw5}Nb$z%nxGaL77m6Y%MFH>*yWI+5}Try*bFMMIlRO+&^#wusa=m^ zdxMJYT~=)0vXOun+bNVG>FW%|cDhz z4o|g5PVy2zOiP`jr6wcA>xd62UPtC=S8KFXP)j|96t6eWBc<0HOqQu@H>o$DhP3ot z$WXn>^VFSsIGYorcCcwNwQ?_-KMll~!JxTgoYb1Tmzw)1tLCoPo1YQ4dA+%k3Oj0( zS1<)0Q+L)-%IXTe?R%*0PYkIb-r#HKnLJ{U@SrDfHzf=>fKK3eLv@f9a%H0UX@ZU7 zM^i(-d6DA9kJ&Z`b5;|@C~j8#|3lck`2WyS{ZR;-TUUmz0h77W zbw>|o-9kY~sZ*P!TA_9e)Fb2uU(*{b>Vf?pp}(OD7`1!qdJctlb=*+2-ax7j2i6LEBcTT9K?Qnw?;tH{5R;#Gt#aj4`mlvk%Dhps5{ zuw{j{gg5x95Jp|SDJP?m(}49PjC(f;W@o#X)_(h zV(TdxQ#jTzv4TBZ2`)@xn+dc-f%VE-CH;G>1z%(B18c#aO8UO4j?dB@q&bn6fcvln z#OiM;Hmg*-N^n|IGy4m%z>A+TD`fM(Iwi<5*F=HQmGGYR{B&Xcofqi-$SVNz?QC(zN|l#>|e39j|l zVRZ8Zrw#K2=ej(>D#a80Tw4l=zT+x*!dJfEA$1v>#?k=6hYwl>@ZBWp4Qkod2auZ0 zQcB$w$q-_@nu(M!J^Kwii`lC*VO2~ftXY`xX180P&8NIs>Xi2#Y^yY?8$a6=tfMh2 zYV_8*dtoM+owk{+%DjOdV*(Q$yT=52ICt;yGOsW0!kLqKT+J;1> z?l6j;l_%;Nwp6jZNBc?a%!WR=b_AO$ryw3KD-oLY$3Fv08?8%WDGS7S&U#a%uvT%*4?3!X1|*v1HLrNR+)1C_S&_y%G> z&B~cb@v4!FRLp|mW+DeONDBsAlVSPa)0u=$fHr)BYn|OY8sj*U6@?y$5=-y7a^3sT z(#3ACT5XOtaXT@*)*NG~HK)hYRjyoj71OsGdA&M=*6hiP7beB|kA~~$eL5@H(7|GG zM#y5YMpW|+9pN2c64GuOUkK77d7;`XxbTP8SB&6iX;*+Y1<;{>i*^J8)3jU{YdI^G zx_lS@>dXGpukycF(hf~GmP7QF44F(HHHVcfMUR<$f!lovj-g12jRNZs9sj?Ch_;_h z8;mZwEHMOZqppAkTB>|r6eQi3;8`2Q?UV*c@RjY#kgZ7E4GVVBCp9KJP(!pGD3cpv zwBYh$4^rJbK(m~K28lZ}V)ks_c6(~owK;>`;*JHzM*Y@nCAGn=a z>uIc3_mv}rcZ9e7o#SN+M6`ei%Uv~%BWn=W)oEv<@ z-PGV7p>6ZC3N%<06`x@5BTXJ3@4;X4!uK5GB~ogN>cTl;G=1!#9Z@ z%oF>q!~Bp{dJMI@wt4~`aJT9>?3-hQ-%s=R$8zJy;M!f=veMTr z=~+c4vxe z*Is&P0FzzuY=XG)c0Rk+b|$UsFo^6+syf7()bS;nNaM+c=JL?{puZ}$Z({%NN5z@* zqf$3UyC2zKy&qYi@3xveGtgaK9HSw&XU)}HmyJgyFtK}26Aa8vq9zrn>J@Ug3%ew) z&?(=A@Q$x#u0x6s9Cv8vof(4RH>v>6E$&m_l{IG7rx>wBxdM;;{k5CA5&m{n%YkaGZ$LDNG+t z(iX9zY75Pm=$cWg>`p%h{q3}pZYR8Foi_7*LLwq*!h#i@yEi4-Dv;D^jWj9afzV2U z2jWI5#9T5}vDjtNl7kyah&c*Gt_*O+abcTPhW2`-G0wxuOtbnR%33!~ve5$E7_~%I zMZeI{h`T(FGZ;$U2p4LLx|wL-oi3U?T&OMF8NzI|h31mbK-mTmvYh&0p4a@ceZ!G@ z6Z=}!B9GoXoxp4o0m6If5xZqYzb+3RrTs1K8+W;PqIDe)}G2rVozlq zf#)6aFm*_7#?XpX(4*iHt^J#E_jC$kavabi=^qgnNo-9$@sv4+4GA>sh(hfWA}ei&2T%M?K%nb)N}J)FWTARg*VI6 z5!|y>E$`MAiY>H!wq}p+q=yC$h3JB&q9|yWE;r~>pOomr@7I(6tiqA=pRkUX#$!?Q z)QXG;(;5;PMjaR*ov4ELV*;V|VGj%{WJakQr$9RF1ib`cNLUT!cen5zpZt^Nhw!_=S;XF+#B^GIzz z6w@WPecz1bmK))F`l`)^o#r(xWE6>5682pDYqW*zuI@!qh2)1?2`E3P)6jDPE1SS* z)CbgwzzE8}>ND5_psaZPr{O{>F5rnP7fK&9+&A3&H#KAZ%1`5WUtGp#?6Br!%(>a4 zjAPlOjLxJS%)&+_|Kv;>oB9(rxnZ<1q^^m{J)RtU@3-=~mz2Y!U z&%S|{{_q!TeQz*67mM&*G^Syc$nuIAaUarv1%DpK3_NvAcdGID1GX2sVwG2arnlXG z=dvF_ppv!se?y|304D+VTJgh_TPa-oUrrbk(7>vto>KJ&$cAuEwl z$%xju^a!lVcYgTi{{14GL&KygII=4rGj`Y*%xvUh9i*ASwnVszj-rPbPCMCe+MvLr z%=wS03oGoqPC=P`;9R<&vL%R$i+df;r9aYN)GwUccVYOK^V^6fo6ar!cD{M8-!le zERpG|US0&GccrQqcTMnIH8!oYS1`Talqt;^A#?Fpcl=t62d14*qm|@pJCn5kL`?$w zPrb1Jgq@g0vZ=34GSGOAJ9tHM=vlFcUw1_> zIIOYS*~dazp@HkATEzISKq?~X);e4EEOl;hohMk6gf$~QMvXSdR;%Z*ZHadL31B?D zhI)*9zb$$WcsTqK&jD+e)lr6a&*RWX!gp4$e`}1ZK4eWVNT^Q>@@^OVFPM$^8fo3n zrx?c~#itmlNb!;gnQVx`?*H^BIQ}nxQng#J|5txn)4upCBG~EWZ-lVkCJC*NFKk%r zV_VP4es^Ln-5WcDZAP{8&{QUUt^ZhWpd;zP%SHGkxtlPvVH>D?pSAYFM2A1g8<>)$ zq~|30yL$t^q~jK2>Lec$Rb6LIQtXu8Ve-3%eZ@-t|a=MUihDj zcVhyHxq)`geQ{YyPxN>51|0g?LjmEb8WoC1F0uGLL4>FzHo1Gj36}H*@f-=}qyhFz zw~EPaBFiaZ_7F1b!CN&ucfn`63U8A9bUKNh-a(-R@U{z(caWw4{e565jxyG0I4^N0 z?aV500-hGnlY&<+$R7CS7$L_Fyqa5N|IC{a%kb}%!M7hZ2n+%R#+8Fe$BN7{&u z-v26WKiHdsZDyKVC(}$hm5nOu%$9an*@+FbqAg)#WHM6I*_`4Oq_lh5O6YrN;ug9l z4csw=Nz>~o-I(-IlJo((QmMI89_~tCv0=)iV=Yn?y5c27G$He?nhIq2<7 zaa%wMj!345)K7KtWm7N_616+yYxl&>$AsCHii`eln-3uYq{>KbaWKAihjafrXk9Rs zZ4t5ik85b}gBBh^K98ZM1fWfwSXe1omAd=Vsv+iF0<5f=slN3N8M|${E)YatQMUZ?QpAUBHdH`k=~A&!P`KP+9NH3s*hq1 zce#U(6z5s(oJ;Zjkm$!;skr3-HthrKe|dwSD7BaN!W7UO?8BB#SHg|lU>?M=s=O3` zcSv?-vMg1}@Iy;C(C+_&tg7d!~^ax%tHCtBib!OLl z@Qz$R#yg)*%7loc-`iM_-9K=JSP0I+;(dji9!AXlL0rV`QreZs zL*)=RKYKbaYlc2govSBapTM-#eF+!r*Us%C{LSgfLxrMLY_w z(BqubSK@O!KKHS$n(UR>n!#R8E>8LIhFK1~tJu^L!y8To^Y5cuU}%oDyAvu;!tGHE z>)E%Xlvh%wD$WtvE7v9@_OB_O*OZlrH5e{5vnNTDX>&qk8hKHdmw-}R$(=_{LQ&Ey zXMyR9*~_oAjl*7l_0mbqTg3aXcz*|#XPu}#^~TEc7`8qVVQ5A6vrXC0!5-BSwpk$F zeWMp{`HNI55zM;K{fNg7Y(F9}9rs+hCr#OpA$yQDA-fw;e;~UXR0M0Y@1wYyvR9He ztQYmYk{=FK8|6|W*Y*Qx`zBP|rUTWs1KL=FZOYz+7KwI^nw&@*NNC`Ay_=Py*x^wB z%yvG5w}V(`srQt*sp=y%O7P~CmFR(#C9l#>hW4QEdDGEJ;u&EvGf;aBwQmceClGBN zIUL$8s1j;F!JcI0yCC$i$EB>RUxn0iHkQ7D6yF8u4)c$*tMmW}->b+(itn40l5^}T zy+*W#$zG$S=;`7&*;V?!YK5ifEy4|q>x{p7Y8X;W*}0pMnt?W-;CKKjem9@?ym^Xt zK)A%ONPUh^f}<4ldM0}@QnV+M;GkQYZ?SW4X{oP~;=cTZ)EdV1L#yLEG6Rv~Yx#xR zxl6TkYqfJ5wR4A|OXjjiA;o1!AjNlS#%t$_k$Q?*y8tP^H*+0QP0YXBka~?>y%(uQ zcJ2wf%FZ<)bp=bUqZGTk87VPath<7?sMu-sYJaW+l$)$9kCCzPHFfwQEB)rQNd$9%%*G>lO|u| z3DBpoQljn}K(+dUIKI|^o@VpFiM>kv+wNy6I4lL7mv1B)@oMRk{l8&zl3r_bjzs6% z&{qq%hZ4Z88FC75v|tODtkF$BESL}&eZNQ`6Y*z;#2+}E!sjX%3}o41nHPaYa7@Q6OU85kf8BfQs)9{+ImN^~Irk1`&x{qa%OS}U7rWEc) z9dN02pir&@H0MDfb<7Gj1)Hc6q$+_5cvgW-s6ZxEh)lq;S*`?Pk;_(ibuPRo9#56P z1$Uae;m!tm>WN3D@=Aa>je)VhH&HF{H0((9^xMP?cX>~;9jNGwzsV=e>Zq{(AA9ct z9#wVqjh{@05H4~8A_j^&Drz)}k&B|ynm`67I-^v<;*}r-LAj)12JnJLlL&E|*VJCL zt*vNlOYhctt#50%7(}U1+p5*7*tb<;&d!Fw+kXdJ+ zz1F_(z4qE`t=%FgvNPA0x^lzLfgEeUs&uFlTzyx56kJ2|Ccmi>QL57YDzP7^Y^~f) zW`9X#8)k-cJ6ee8;lW*~f8A5j52o9Db_$aW3l)E2<0|oyBS~N@bOU%A0O59@o@mEI%A|9r|*vF*!Nj!@BslA z9kG_HQ7Yxip!9hn&T3$`h_gkgoCOTiu(QH>Q?^qhr=AdR8B6;&)Va}DMSo`9!}@sU zC00E_coSoE$hAN#{O5plfq&XToc(nfrsc6NcyU0w2%ZDzbXinp017DIA^GPs+Uad_ z=Kr{)+7|PF3rPuvU0$+;j8X|tdXmNRF(3w!ZF9wiMmxgEQgl0waPo2Al%y#O*(?x? zqUYxm0qI%!R6u%uet`?a*+>L0ZUtN~*k<<5a?_M41LuWEER89rv@EuES06cD`!=Xh znpgsl9m(lq-@@j*SeQ!qq1vklkaMgaM~rHa&I3qkzypXRIgRuG`dH~7g03WRGIpVK zf>1NRd;3v`rraq;2|?3uA>)1^}4} z+Vh7>Rg1)Uq1q`!$GRd4#cWKM|c8 zPrpOU%a-Zw(Xnq;VLpt+TaJmhTn@SAp>vq#hTww!9&z;ziBNPXrxgCUf8M@ zWV8w(qqr^JvTzOl-?K;YM|2I3?y)=~G0;vx*bzMmlRK)f75+|I6Kj+ps@-T2XbPD5rr~IwyVfyAivawA+XN5K zam4ShydGr~a@hre!oUPH;B?I9Aa{Z)44|?0LhTew%~}pn08oQ$KaRCul4*0=0tc{m zowh((H}7 z@i4q}JwnM;=l3N%u@hPZC>AvT+8RH~_nYt1ex3Zh?R(>`wCYP36Q~WI+rj$4X|bfv z7lGodIlCN%pE#tMTv%N`xhRRw2NrXllg;$(eWuc@8z&b=x<*JomxC)|t6(~XC`Q-+ zHq`GLQ@zD9D5s3U&AE4+f2qEP`aL$G1-!M&3|w|)G<`L z5?v6Ai%M7Gt*TWk-d3UbYZxjkB}XwF3AaW!G6CAHwI-~)u8q+{4CMp+fl^S;-q*?5 zeUQY~ryUvVn_;IiqZ9Km9M5Hhk%;8x;k_$vp@avbgp!YrDCNl0cL%Axwy)Gau=Uju zeGS6M=*?#4KpiJ;mg=xGhrVGFI4U>^Q2hs!09%=p02vvw)ha411EeCrvjOQ4zZ%fJ z(m%A+s?pr1Hs9Uv9JQN>DyhVKA+S_CG$95fUe(0KH9q=Gu`DRh8c0!W7+y;Nw} zPhA+US~0`)Wf#^3NQY^6X1~dfs@y`b24t!GsOn8%wmMhb4d)q?#u~`z!G*yDYdP5B z<g8zfNwFXUv93oiDSo(De z3i>6=U-O&pM0~jFQ}x2?^tBUY5?#oKRsPF^~A$X4Q%LDw^|ac5!b_0GouCeq6z zW8Y73)%LLjaf+W%JPt2h}-q_0Cg?M`j!{F9s$NnQF) zLqNtZ=4XNglms*Qrzk#Falh$JU_mb;!m{P87ZlcSejTwopO@scS-#hK58h(w>x6r0 z9)#p#Xr|`3lILO!qZ*!0o`HrfB&PsI@2NJFA1=;dE_g~+;qKHC$U$MMi_s2`rOzm$ z7-q!Srz^$Zh%|2cxh}{d&mrfYdLaE0>NQymWps(@XT|Iar90rJwDAID$S*+)&GoNC zSvo(DcWFWL^4Kznx#xe6YLoV`-RbsG4Xl4K;8Uy9=SjY&s1pv8`N^jKv-6K_yUjmx zrTNd!ReDG3!6Pv z#G`yjS8iy^HtyW(X~^;laC2{I&IjT=g2Y#SxolaP{5E2ja{ zX~lnV;>XlEYCYp)NVy&>!3UTeBXrkXc7K(bZSCUND~_$*mR}9s9O$q>GTMTGyvj)I zrceIp0 z5Ky84SffEGOIRTt2!eD@4CkWW9ic+O;LEahlxwex}Yt6 zp``y6?AB#CV}~FMxJ1X;fcRZA^it>L979x9o+E?l>PY8>0zh=3G7FJjh~R>IYwb5J zfNG>7z6R(Lfv9hEpH$yNfM%icaMo%>7@58GPe;{}{Pl0jL0iDPqw!w(Jo)*UQD(5G z>kw>KMywJ7vVXAMtGK!QekAGUZm>XbR2NUb038t3Yk+e~DZk7;2XXea>J2>1v3d=c zw^_A@FT(eaPJeC_Vko3e)xAis$_=>`84_7Z3P2Mog!_053@TR8Cmkq~o>c?z zo6kicW)y21kf5ii=C@LP%?igIJbAs`h791LAaYo-cQc0QJfj;ieIB~5>9Eg981UiN zIx1!d_?-~sG)pp^=CO{`9NiH;p4|>zd=A0E(umotu}P&p@555ic_sb?cX753_Fy#d9N6lN z7~l!MHTDz(+>7w4^x@z(_sL>FO>Bmu?jDkD>NadsU$@&-+dPFNNT7p}${Mc@6wlU3dJJki} z5X$d;&yKJo%y@A5h0OzH8)&-Z_2flId@1C#(w!aYuqp*f?QxD%J1)e$|L<7OWAQ?a0w zpL;Z9t%|-6|I-)0_KDbjuo9N*a4~)(E54wmMM#jVj zk@jt;2FoO!Av&UBuu~J7Z#jmbi{OjQJsFdCz5(2F(^|UO4ssO`U1!>$pd-h8nArps*S^_EkOoa2hlg=C#27GMXXZH6DjY-;$yF6am-uZD4vn^!AfUjh zC}!q_eYEfj$SY^aLePMPV3l16TG{wP3B@+@3fFHS*A^60x_sEF3Ddy5zyy=YW<;|o ze>Wcn>MGo*1f)DAg&VpTq5i4L2YDE#&?|scQaBJ<(6A&Rm3=-8NWXRhQW44i;7YF% z&U8Hfs)*!t2c6-d*?^2C86cH?Qj)1VlO2F`XVMQGt=Xdh(ys>sQqfEap#Mf(+zL>ls!!BS|aK!@E!?aE=7yI^kMHFx186 z!9aHk>6>!L&7HH{p;M7sZt-@mQgiDpev)F;r=bSPnn=>e%8J$1deF>YQ^cTiivmG* zwl6;fTVvXVv`i}I%ryyzQj;Pjv6Cl7Qm2D&rm!Y8oEv|9X@S;1ERe`8LV7|CE>+6H z^)=}yH36usLFGz$^guiw3|t^}KgK~kZ80JOoVbJfHKQWdf0~p9Wh=wxwP%3}P#|dh zoEIq2B@>{1f@$4v`T^^YN2eJnQ^veV9B%u0?{Q{NR}0L!E~7A zXLX?B1crnp{iLmq7a?5pn-_r{r8HndEPWQ3gH6z2N}rE{+FNa&L@{tGn8sSg3Xo-a zN38rL+fb9Gp(dlDCPyk_Cr^&>%BHiVp$>|-P;FtUWQRxJ71Zd6v8^g8z?y7w_moy1 zUo(x>E%q_4p~y^W<1KN}jSl)NAZ^A%j0l}<8UWd*71<74e4&F@r~fR*ZU3U~(6wxUSka^}{YEorAB?eF{iT4&id6Z*gAPeO4=0KkU5ZVlBgj9XA#Z9ILQ+f`jgP_zlF5u&u{%iFCdvfUt9Z)BoVb z9DWZ6WjY@Z_&C5JoBShmTydoI?zkq%C871hCF);2u0V$t@@aPvU1MLUO1~}J+nrLw*tM%! zPOO*$>e6<|^lk>=XFQ)feHCY>00t^D57rI zdE!bjA`f9iGdq1Y(%pn@eVQ#W12r}Yzvq{9jWD(1H}Nc|bFm=I#Au#TVhrha{peo^ z^qU{Y_r?$N{ia9R&0Ehbq+U;icnISL6&QKen1cW*@P7S4lt@Q7>8e!oexezxi9noS^D+X(9ZvUNWci5>ECFy8+gH@ZaQeozCIRvFLq(DS zjaDi9_X$$>(0_>Wu0R?wLQaVZ`a3;yf74!azi?l2&!xEA80eP!g6!Nsm7V)GG~v`> z6N0ze2f-MIVFk8URyZHyF;c+Q5c0daJ`>nVoBcE1%~i}VP#b^_wZ@PBH& zH8mriuALEUTv1n)@F%?&Pp_C)-MG7GiH~~#3ZQE^K`vhGN>M7qdlv0|4N&dI{fSec zsGYe#5tp3G{fYjKw__EuI&Z4??l;lU2`7a|xw}pWamMN^ImQ)I;4-2U5>We=Y2$Hi zY6?GFR!ntyw>=rZh5b<6pqz52GrmJd&qISnk-6!`5T<TEStRXbeu*e)Mm)3bGJG z4yeN@%8wmUQ5pO6Tp@SKo)-4lKhz}fJ_l_Fq}=5s z(7j0FJp||l;U7By&5^Lb15$g3cLAwwLqB{`h7ZqR{wg_L3Fvu&+5u@A9e^~AAy{}c ztQe4n9R^5+g<}D!81e!@dKJh_Kq`h@0!YPy4+GLt?gXSl)Ph1=FJ%sz4@gt12c)U3 z0;IyTZ@91*U09b3I~S9&;!*^sxbpz%&SMpzQ>B#u1;`1{$T)Z6f3`r3`f)u&si4*~ zbVAP1iXh!)Nw=5V4_a@^orl#qDD)PWspS@kl?AC7!5kE6;_1Qh^z%H%pJ_!4=UKS| zY>OyY2q@&|kS`<)C@<*hpnnFO{+t7D0@npKAT?}A)+USK;R2h1_S8FLu+hQ2yVYr2 zB)d*_5~XXafr>c{5(;RUY)ZlhOeF<2ux`W`{I87QYN&`OA0l1h>XwNUczgO*Tohf6 zsQ9m&Qgd&02NJzlsu*YO#o~LWx=eO`5X^RZNEn1DZ!uq4=7B#|s$9RYNnb{0aXC-mgR<2d2*ZMBR!9B^7bp zzgzmRMETBYf8zF7`P->c#uR2F-E+fgZXlKs90jRc1MI3g4+Wig=_eFz)WypGxnyFj z^mp8CLbGi*=3KdJ#RobAWcuVU{O zFa3MGe4D?ri4kZrQQaCI2zD7naV*DeXFS~(w_Ky?{)B52@%6;&^2e5r08ki*Dd6Dh z@@JNX$G$*?wdbo#U+O}6Uc#R0Fqb?OdyzHkTp(8ZF78`991a=~sT4VvEb=5x13wG3iPI_&{#Eo{x)BT(&+R~S*b!l zcF@tNTMawOL7DsVmLcp<(r<1DRH1{k@lEB-WRou@HGb1U_+&b_IZlN_lRbfL+%N%R z1{}dVBZp2$S7pge?qpdyx@2_6}{Xs|}fQ+qq516v^H zc&V4V(BoC#;j0wLp?@<&kdLNhE1%g+vEkW|(pywu`gmqD#f^OOGGXa5n<Lk23r}x$gn>fzjkVy4HS(1u{yLskoh{S1(AKsk z@hnacqUl$wT2fC|rr*cUMpNxZTh1!H@d}Uzkn)_e+;wcT$}3L?k#o4$(|C(Gq+5#X@(a6cnDok?AQ zu=CCgO1c&@c08UQ#Cz{VCfqN#JQOxkf5>}oXi^K9N@$SCmQLT3?PwSSk`r) z%_~;9&dV5z@zcZEZM-FgLZ)_ut?sL$kL}hxjrk2ax=n1C%51A_+?-d{Qj3!!n16~g zAsrXACbq}YEAT(n7n(to7s0SHx;tJzsR*v>Py>QY4d&NaQIJcXoiI}G$*!gz(3;AW z*OVb3arT?(90VmVNd2|968R|6At=#NERivH(rr{$d2~#oIJl8wx{uuAe*&h_9~M>n zleS{3e@H>jfJmZk7Z)|ERaTk&ku3x4zWv%(6k`py9&CKkg? zsFT>G1LFV=mXcScQyX`8U_4RD9hYlv>3j#KTUOELd8=as>3xTpakakDU!AsSYJ@H& zY_&C_=nmixFkvNK@M~3p9&2<0^=C7ZgvRfeGTBE~Rfo9h-`5%8QD16{J7Y*}kxK3y zf|)2sf>-rS5G#=?sa(?A@(@r`fqtMyrfQ2UDkXcuiim29-~5;EEhWYGn>HX^>(}JV z=`L^YTq8J=n&0$odC9$cY4)%ly^w^ULbJEXNjPK$o0(g>fo6*$`zXiL6l$JP3_ca> zFb)mCmQtuW3F~kL)?v8ma9V(>Y-~m2Tcx^t*0kT$hAj82?G-kM$vxGZQ3;xABTuol z{rNp%X>BJ*a7BedYXlmkPA+M=fyD7vSU{i7tC2^XS)sQtsen)CSl|ZKi`O58kE+LW z4j|RRr~#ycfbRj)t>ya;Ivb0lhS7_W9#P!^D2mP)_WlA$538uX^PDWZrvuV>+$3te z+W@^JUx#5y(yb*mF%((=Nb>?UUXvFPH=EJE4muE!#ycC3>WxeTqzigIAk`bW8j$LZ ztOBGM?SK^HF+hs(J|M;T$b}697or$50V&2DK#H*%kTMN_0i?KZ08*ym9YBgZ8ry%x z9ScZt=KxZS`7Z1hK((lwu=ia+y3wx4SVE3dOUV5iYsc-vA~r)iW+TlYN1}zyb`(r+ zVem9A{U*=i@I6Y8AAgOfI|VPEE=~ z@Zy$R<_21db7_)f58M3aZ!uA@CVtauLV6P1^_OaBWFp6yFZ`w`7CJkmM6WVn(qvTf zk3f{J*DwHi^pJYGlP7Ryz3`h(z>8fou&>I}=v1!eEvyoL(?E%bm9+qXtP$-&uI3nq zVm9i*)x>(7f>({grg(F8<29pjAcFn&z)@KT;V`1XG5A9`sdHOHNWqP}f+1~YM|GNQ zi|x7F0wuu-2ATuS0$&n+V&%^y&j!0dSDIaK+0_!43=1D>E8sAoW$|@`EnnB3{1(^A zE|^A$tygkY*Atbkm+X#}|JiT)8G17^TM0F6f8}y?aP7I7Y|k*c#x}+3sbks}BX{oE z)Tr$k=2`tJ1lUaU2kYM;r5d&eP{UTYa2rf~oOI-WvuFm8eu6LWD8rr4MZUtKT}2K9u~G?_%eX0d{|bm}wC}*z5BAp) z%DdpJl?UW{I38;`69?rpBc0<&qUAz-FadP)FSzIlRpmSU8~z(rVmczGq(scXJ2O3n z!8*$(G6OQf0jV<$c=3DeaSo5~ajcM5PQ3{;0u6j)X{hz|S2^A931zAw)>w$*3^1wo zWrfky4Jt}xR&a?7)hwWcA^I0*lyuG}IqF}uRF`y~ml;HvyhB|Yb1Wi7pUYJSwt|QU zArPcPD_Ur5!%p;dza+X9=8y1`T9nx4ADw8AwKC6@(tk8%32ou#h+2g+gW*NLj;uE$2PGl`}bs0|TyHq6PIkf`AxD)r!V1V!f$G2XfIMKG}MKW zE|3ue;p8{%%wN>a{t^3u>x6;Eyp_bl8V5q>6|w-ku36O@Gd2g7SGEWEmQjXNkF&FJ z#L-7N!str0of*A;Lj!(-$84kUu3R1UN|jTtabZ6Iq{mdd9Q0r4of<}?d*y|n2c(?x zc0fvxhdfH}2Y@u}6&E%b)0ci72}r;G2#`|l0;H7xig{c$u@46S`90u=z2hAxS`KJ~ zgiUr~)JxZ}d4QB&6403vk9z5|1o|Z)rQ8KbbMOHm#qEzZUc-g~(y-}(o)BE}xT^)a z%Ei0U#ruj2`;H5vhPvkEQ9zoP-vQFR@bFCY@&!Oj`BFfdgGGQe2UohVW*7EtKuY<5WPpOQ`~+soewUUD?gt4@kND=K!fSEsxeTEZooL zbQB=v^QrN!xrc^0yHO|p%i-DMlClUH)rnY5P?!kYPVpcD^=oD4F}c&qmMrFlMpBp@ zV0f|A+g($@!C@>v4X-`Q(HU+7td1zZ9vo1Zq=l&(+$%q|UstDP%eKM^qdh@69pu!? zNDQDbb6sboPnM+#IvNki>qC3xW-w>PON|9@PHyJMsH7g;%&M_3SRo0v@;s@7A_tT% zEFkWwuxl0n+(rjGN=?07a!2Q_TKTf!YD-p)yrcbrc?nFFK|;+U7_+dMeWW zFUAF%(v6GEF1IMS%Y~zzKVzS}4N-&RBzg!opbtVn8iMy*!Ry>S_Wi2#E*_P&q*kV1 z!d}@PPvP8dV#Ev%j-rh2^fjPqN75Vd^xL?k4V)7ez=eIWv)zrI?H$m!y2I}Fn*S#9 z_8R7yNu4tQh;$w5$cTD>c}GU?b6Q3(hm9{%|<41&0$j?y728u@bEIqhO)%f5o#@)`M988Hn|_ z6r^U4-DKvB>|L)B?!zxii4^9|vF%-lvyD-x&g~EnmSv{%>^&RX_ zFH3)F#QclXjl|2$m}JoOBUHoo{;6@54`Gdkj7RERFwmn8W{(;vJ^M5ikhRBJbme;> z55ul(O(;3BaoZ=AtyR>a@g+moPwwVRyOwi&WAsO!g%2QM|cNMjrj}4 zHtA>JaIe@p3?7EFnS#_Y>>E-cXrRn#Pk+}T`q(p`BQR%J+(E$YpZXkzO}E-CYF^v_LoSJo*V&}Jmy73iq7^Q3lJPX)a_4iO#NVw@Fksc=F^0#Pi zCp6(wWBH0pGZ&bg#R}lkB&Hq%t?lwjoI-QkE>liIDPj)3BI#S6Vl^csT{l`^QCLtX zB4mPHtw)aCWIg-18#xO6rj?jTx?bfThD&f!*H(jXa+sq+bNOem6?%fL!$ZbyYBN(f zTG=e{L$Kg&p_P^AE#T<)mI`z+K00?yns4_v#pyf>L)2ZrkrXJOB zO-n%jkY&LDrQ;W*^Ja5HK_M&jx(zpk1C$)xkZyx1EHN_GX^_(OluyF_rFx_oACwZJ ztxTh5br9|G2V{Eu7846ima*YCLP6>LYo&DN5+AB*TD`JbF>JDJhyL#jojy(bb?nh{ zKhysy`0r}usX#gX(zLl{;Rncy=`WcD!5nj2Pc(>3h83slZh_nlG%g5S2l#s+fsW{I zyFg~G2fJmmM4yLSKXV}5TIWD%8FRXLGpI=U%`qIzA+2TpGP4x=O-s4_>8@T!=0$cK z=a4H{TYZdmjeNWee2nKKEf$=wh)~?DL4MO$z=)XWspoBuGuccYIM;X%@SDDhDZ=Iv zHceyOAy{gjkFE?Q-x3*uy%PGcisLa?sm{N~|I)~@(|(?9X*I3{ZUq8A3Ezt2*d z=%0;Y%IXiwZ<1dMcjK2~FZs>fML3?x@UO_8>1A;1=F^wm6xYm`4*I}$Q9oPH@;b}?>bi@#LQmm)3E7YgxKW3Y}*EjKoq$qn=9NY`U2qRke{wn1=> zVGOTb$EnvYpgI`~3^;n+=)LS{DY!7ubO$s+SnEy?j5E7s=O^ffS*kir;lN-DyZ4sD zSV;jzI3y?}p(h1Mhqs~5g3{rvv^LxIuQd@|(pnRDC`q$A+V_CfMjT{S*m40N6}He* ztO{FRbx;{{pSV}QDs$#|}PLm?Gd=!vk`~#3GX58ik z%DfIrzkUqp6~V}ZWJ4)00Hl=fbD5oq#lr;~`+t zG%f<9tu+gfw$^4qM+n9cuxtuV0;Dyx7?4uA8<0}@6(FsbKLDx~+yO-vcQhas0FHOi zLihDbKq~h8miv0AgMI{P2kI;A-3w@cz3CwYck&y$fmNx=8JbNyjO_~)b1FXC6Yb?WXj5H>2Jw_;(p~t&kYesY zJaw%y_I=1IBk&E*+=wT~=*?vC@c$S1uM)eK)Uyva;JX$nhoLA`J@nWdhq{zBLD$7- zYP!1%-jXEGoS-&{+$ZL;L8NrdFUt1^_ocEN1{rpf(c>}GVqu*QQ_;lnk_T%rr*D{Y zqeoeTIkmzApB_C#t?;(P3J=>o2x@V1olYDGD?ErHsfxPA(1p@RLf1D-SKml?qotei zi+D5ki|NFJ_=v@Ww-)dO6z6$#6^a>~bxX;%WOQ=^Z=ElI{1NHdNZc z(q|6=?)8=s$>*|HLf^`E%<$7ua(n#@o+A~zO|jo3@=>F>gH6f%xLq{Md#h|{FGD>#x2+f8#cH0JTWNzros0&$-GZd( zeY#KTt)5<3)VfMGfw_e`HBP8wwAmm+#xw!x4mR-2EoH#fU=!>nHyO#K@4QO}y|=!G zjwx=&pR(RtaSjHOmJJJR;m+tOI5^1)4n|v!8>&V25WuBpWn@8je=vqMI_#g5Oh1h_ zb5;77yx1Flr9PaH076PVWN^+|SfAkZa?~dT@^N1B3n6Xp`s^koxPd}~GXu_RGaB)Z z#~*^;hB5}vEd1tAq|-Y0wTPT0G>Es{e-C2dr=1Zu%KiZhir3N1a0m`Ipv}PLZGd`l z6GO6u%B_qfeYb66lxMnT_S}hCvk?D_@gL45QZSoORqT28gvg0rOermDN!1}k4WNdf zRrrau{)P#~8h`URet7Jm?-`T&wB{dsjU^HFZBh3Ki_vv0dJ$#ydWzS%MK**l#TuW) zWopmC4F5Us$$7ZW&nxo0dd#iH4F9@9BZz|!)q(BFx0({aQMVYe_fIydvCmn)&-bvqn%QX;~(dJ+-au>1yl9t3#21`AzFvZ zfXl)F&8hoD(~en`Uns z{x+;6{|UDMbvR_GL!V?dsat@Djsl3M;n&0P7du~nS$VAG{?&L9`$@PJXeDXMWJl9@ z!YIynm`*G$@nY%UFtqb_20hHNhX*br{^74|1|tvaMeVzPUfKsf;kpiul|LWzC*mHv zOfNpx^^0=X`n;%GivBv&TeX6MU$ z3S%vjLE8@-KjLu2ZgN*RRUVKBRX}2>^F>f71XpK`ABIzJ;tWHac=iQ|0CL1wG-HBaV zb^0%6B3XJY6%$?aXVv*vi5#qRED9eDdq{eSKQU|m@mI^Dko;+x}BKGkl&l52go$1VzRD-a$=1?xU~V9wjCb5d}Fk&A3~Hhz76r# z;QvGT|2Pf;S}q1dbMdx4PwyyaGds3=M9Xw+dX;(%ZIkccKtG{6tnOZgm}nIpRW099 z#P6&YeCe0ft*LyO;ITBw*YbClUKto1XpcYl(jI--Rra+#s1}-|J?vn}8Z(%`kx|_K zgPVH#0MA=B1t+d&!`0JcxIa_+l?hl=XKL`=o(A#BM$El^aDNVjff2Mg%v@b+(tpHQNp_({`^1I5Xfbh?1E z7-@P@#0~I9`p$kTs17Z&7?>JS%6t49a0@&c1XaE<4UkG$?gXS#gXaOM)POF4HQq5O zkcQO*Qd!W$E-Zur7{wb@83E~r?L`Ms8l_>w0jZCUGXSZJU77?bG}A#>0a9-rHvv*_ z9UXvFGO-zuZsJCu(ljgrNW)41=|=HnK)O+^0i@nKY60m+@k&6IlINQN>GtqDfRxHO zunRRPLD>5qAkF;-2fYSJ%TWa8V~t2Pt^uUD&jC{00}CzgEC-Q6RNRLFY3|nnQrtn9 zEj6_tI_Mt`8j6&DBB>qhpfW&8?;Josm#-H&=rRZ00BEC>_Ypvv?pi>a?vsGD*8T!W zYb_tUzyoD_O?zvtwFsbfLZuW?vq0k=G!Kwc{t_Uie6{=fi2J(MefqR@ z5Enctf{RtnoaUGwCIfo6%T@38%OtsbojPRAoC($EI1^fWu{nh?f)>B&Y3!|Svy_b8 zL^*_Ok>KIx&mjeY=tLY}U6ln;lzP;?%N-A?B=gxiWlostVaS?{PV{kZGzZ~h4RdWQ?U z+lA5ZyH3D=0Q5_lL|+7?;`_G%=@k1OA^ExskWR7Pb>iJ5R)LJWDadHbx876}3^j38 zyq=^NW!O`S^PviO_?AYrV>)x2;1H`iPvMM+_}=D?U@u#rrvb^{2oaH~cu#eD-N1xi zIroVwF~Suk!HdGc%yLs7vHIE2VeA(xf6{N_@g9vYp|Rc7NwqhzUrpX%wGrT(iNY|j( z!Ew+GoSIa?x%Y77xB+by_9B3^N3oY_m~oGSx!Aa_o~D&=ZsA53jz}YrdPMKc=56RN zCE;RY5!@{yu|)dXB4`=Mpx#jrDb}!0bqo3~-h$4YmhW;Gpx=R9k@O{F-*Uo2)GLNQ zL{Zp~L6d2n)j}@j1yh_=f|pF~`Lg+!{sT9mS2XQT`Qq+L74dNcQV9OIP&p6+EifLN zwBjo-nz?=yO0-7m{&GNiR7Y{Jj>E$+N_A{fGN@tYfPO3(Y#H_7Pl12>U#1ygKO(vt z$+Iidd2;U^>_@6G2sXifq#Uwj&V$J@X00%*L~^)Jr`>EuQe9onp!QF+8L@I}nMz+o zM&p=QAvyM&w(`YV!#3arB5jpo_qe4dU_;_8Vxg-DId+a)YOEX^;+~wko+&Y!Rv>S{%#0AE}d*hTMzFKd_9es^sjKErG zq$XyE3b7JzJiuraIdSt6492eS4F(OJ$SVQqu=_e7owTXVt&=uwCUqZG3rNGh3n=P3 z0p`Tu@SH9;7K?K>Y*UcYu^Tvt#o}pP0jBp9UnDrIR29RQ zM!dQ!I$M zhJe~wqQOJckwkek%WUL9k;B4UF_f#0Q{^gWHUdj&n2b<0C}TFV3^z*Yi8tp}Tu8OF ztaA4TXxLNH%~)ksmCwO4{IzznlrhVI(Z~N(^_Ox*1$?Fi{iV#5%f^+jqV1=yb8{SY z4~%P>{1z+PXN+EeIVYIN;x1Mz;%Fh0N)Kr z=l#C{(mDPUKsxX557B~hUH@;ke+!fP|JAd-cC<=#ugq+(9V2_T*A<|*+1_cHWTyFd z;3S0_wK&*3CEjvXA^sO(97oUvbu%2`cirs04Ika?Ely#C)y3?6QP%8jHq2mN%E&sF zz!-pciFEl*+-%S^;B z)R$De1xLHfoeO_6SM{8o>~U!0hablli{tIjRjKXRoSvBynR%I6dA5L&2{pd$00!b!BRll z(tie|(*oTh=(JD)NPEe50CCF|_Ig(;Sp^EZOoP+7Smw8_g7W`njsNhh0q1+UJFi{} zWS7$aAdmQIXARXk%sFeML-F(`>ygB{7Q*FG)>$h}Cplo(t~WbQjA=c22pYv47GT^% z*7%#J-Mp@~1t%Yj)dvkS$BxRD?l`GCwpTR-4w1O&1k*f4M3cKL#=+DhhUpb}n zgXbjS-J2fz-R8}kD?iw__Kkf1fpzWMLhuwE+EjJS+RBFZvgoQjAi_fBnd;q}Dm(Iy z>pF>OZf}UtPl*rHi;a_tMOmUH9|lWBtMX%T^nY5s{PE=elxLk*o&J3S3Jr!Gk<%PX zj;z23?sqR--w!2KzM=z=4&-M5Wma%(q8E&cK&pvdbmbR~L$9C$m-w82C!T(V!lA64 z^+()4mc+_mOr9D~f^Uz314D0k~pzgXkONUZ#m z)Most^uOL=ylUNz+>zvY)Ftn2CrzfT`*qEMopk29=89G2vBvdC=f$j@bSa#6{&gFx zEO;@1uzML+#mD#lUpyZ&`p#l(v+RN_-U%bRxlYB-b%yjJ*M+eqO?9G<65qtI_& z0}2Q}5Io=&jt9I5(m3%Apk}}5cdF@h^ME$4(8n zwv75UhoX)e)dqN!k!E?fQn?jCx06*DPes$~_fcNndNx*M&=?9utEZD^ftX0l zqecp1(lf#kzlq+4kqFtBJWO;(WKPkG@GrfH%uyr=@9CBs%vTRlIYwAOLV!+JWBZp% zpkYfSslp`)HK*3@#0)g_F*Fi#Vx`gk4V(Dh(|*Fgk-HWnF9#PEK_ycva|>7zE8>BG z>`9p(Gwovp=;|fJs778&Cg<%?K->!`#E6kkR;0K+3{V6k>LEfOO_x2gn?9 zBK8r2@n!tIQy@ya^(*g))vwzCnYE(zrV0>u<8x24@pU+9MW;YDW-AG+CygB-6I@`T z2Ug>fsPyx3xb1IEJZSqM6vq;(Ino9-kz0X8EvFxv-(RSb-mMV#O~NYkt`h`~#ej#L z1ttA;geZ0_GnCTHSSgfUcfw-%0K8=BGklAL;0TelDCUZciQUZzIZ2WxbrJ2guD|68NmgEb26)P1OeV2wVD8h!2Gt5H}DuuZn$ zI*KI+LEjBMDT-=}KFAzGDiwVYU8(R;uWSFxUmj|Dj~fa=X7byE$gcretl5bCY))hy zI?#GIlNU)(F&FAdsUsB^8rIFDlB?_?){?NG`R`e(fS6@TRkh)R3Q+Iaf? zMCp6+{C`yWzdbzxZR1;SEsFb-0Hvd^ z$&sfJq#m@koo%;HIb1J&xod+I3}>JdFuqo1wM%ParM5S+aZGIEI!S5wx`tEt7oQEd z<(L*J@${3G<|e_dX4qu>OP9ab(>kL8Giy?_h#FRZ2Q+72jbPet#;2jCJw9xTX z7xZqrb}kTeEMzjqGkgWhy$>^1o9#(ZfERs0=RC%&A4{PwfR(RXhTQT9`zX6fp-EGW zy;Mz_f?9yI4N``L9K7nFMIF=v=wi`4`w^hsx+wsp8wIi^8bTK^EKq_Rv5s)%gs{us?_jiCae_==x6smR5b%1p9#oNF1E1eo@*x`UQ z>>@yug9%tratsqrW>S?;$Z|g^_01l> zR-lQ1t`=x2pmu?1J*{C-C5hn0)#!Tp&Sea8@dZ>5!S3~o5HsOOs+$0%t}s@LOVM}n z;v9QV0p;1{FDIvueXCdL$G+F}1Sp(}%lFAwjR9R!@ z`VlDm52eVIF=)4Z43Ku!r(75-q*(n;qCMZ~Q5TdXQBC8;m!yujMJahhRsv1im{a4{!#j3Hn1Wcd3it8%;2Y5VR zK~vHLT;*te=E1dO*F z6K}a3XEm4a{j6pcn%pss)#*>T0=7gUKUpyW9AjDLm|YccR1Je3eEY@A!Fa62jDTHJ z4dzX?u&5d}k2uS*g;|CFx4{SE8vMWK;ReLe;he+#cnw9OSnYYl-~4`Z3jCPK74jLs z6kMaQ>N)`fqyri6LZes+T7TwtH^1YRX=QbptRUZI*s6+GQ2bVK zIS z64y;H&|i5y$|%^`1%bEH324CSF(G$?Zacx=?1dVykQHiH>S=UAr(@G>r{vZd&=n+lN>^z416(yMvK*fm1(xg5MLTLshUR=fRcL;bEX^@}lM zI+(3r?QX2!)wX`sV(%l)y5-;-IokyJ#w_P0 zZPK^_pCnvWRk-y{KzjbnLkbShut!!@`K_gZl;8RmAho>szJq?@APSw;2IDzEYJ)Kh zv~-3fH>D6=!CotA(0|Ysb%Efh|j|bx#3Q9MZdVEgWc?BV_U`(hClsxLT*ymDIQ9h~} z+9?7R0*c@@-^=SC_WHw$rT>_MI>w&JKjxY3uoNQJk%|>a=TsXVzjGXhLc}I2br=c}W5Qn3;nl=i3knhI^NJPD^TIda6;DL|>Yw=zLm^^RWiU)-QI*d= zS2zrXh(RMJ)HKt`fx&B%HCGA|W2$0|FZ9Oaf+2req34h5>-l2_NE^Lq6T|OfhpiB? z&r|F`8nC`61)6@$HJPCu{zIof*;4`3~ESPBtqo?so? zC*<`R$9K=O7<|)su&FUn5g^52tV{9VKDlTwQraeprHepAEjtCJOPYRP24nr&5_T~`%-|6F z$4a{}?QeRAddo=m>~*iUj|F?yq|7>spcprvxren4p>W-uq& zWy{oz(k0Etz0l<)^c)e|Dz+|qqpNj6nydCgcb%gfZ1LXcYWtDqxA#K#aYvUeVS8$C zbhXcs=AC-VtgXsavKG!%5g^2O0VsM2^a=p^3dDNodcZI`Jh*)nbR$%S@ zV*uk?hoKNL-syo6AkVDJ2j12UyMu({oF^h7hw;5mT)8w!eA{Osq+$GHo|O($A!5?x-0%Xl8^>cY_*LU^ z##V^yf?_b%7x3RcxoD5h(4N*;=vs{4Xe$O|eP9XWHy7=3N*iB;IYD^Xq$|TOo91XA>B?*9Ne7=%DMhLM#DqQbIo(Sl|sDQ@E{Q zYq&1IMrW*_GJED}ahM7bGp^-0w7@&`y@6iwh5=q5aEg2^CficubB$N17?5Hz*5p9$ za;3rBopc34WJi~EmC1)f>_JMGH0$?5cZQ*h{)oJL$h)^sc_;mw_majXlE!e<&yYC> zfP)_D4S7d*GIhu+>n5`nY{Hv;ZgO?45bK(^wxX2+^Y~yJ9lu|87zz>Na>WSD$iexw z)nO<^j5@{O%-_rW`d2}U2*&V0&KQ+n&X?G1$yE}E z;gk8tJYR9t6e139_{#U@*(hui%0crz{PF%vpb)%(;;;w*kHnvRFSH;uyjv+5f$3@v z*fzHcD#L%lKjyi`p%5{Cnll~tSNq)RuoNQJy&0^)%tL{feQtAD3K8oe z#R~L;VD7%@Fcc!jZv|uTZTE!4W7_li$2{M16cr-H4H9#njl$mZI|;%cZ>vDv+b*;w z)LYAa+ohloQ}}}r*;C8i?ywXh)}IxNb#so+#&%u9NAEihLm^_koWU@XuwbA1uES7> z7=Pbu&hBtn3K6R-lTMDDt#%j+5#t{jj2t<;(_tt?4BpGPXAbNxhoum)KIxIpfe5wF z_Z)^o#K_0=pYIJntglxzt=KEd8{+lb*0-*p#^PXh0m!xMLc!+R1%?YaeDd{2;JY1l zg-E@h#4M5T_`|+6M1qh{?*M@cWW8)Zg>f20a@o#7L)mD)%!m{V=X;zzG;CnfYt0X* zLIsC~f0^%{7aCqRz&m8z6z`C{Q@x@cgSHLa+P}T9u5V4jRFc%^X{0<7pq3#5=wMfd zI!=1#`JpR=LM%gZ&oW>=LzY;EQ34$)WvJ{Ug;-l~6{)Q)pbDwVuGZ#DN34+IRra}y zA1eE37>{qT@F;2@Ud#a8K9l*gh<|S3pUO}!0?+dk4GK-o^m7nrZ>=r1|9(;`mY=fa zeD84g^=Jo`Ip`z@u>guu<-+0)Iv0>GCNlt?ENNT}NHONPc$7M5UcTg@wR z$g3zW@kWOxhX)o9Jb2*Hf&Jz8$ibW|>UFL_0^QcrNGskD-P{B1E=Q9z>i!86k-NW?3sbnT?QuZAp<%VPQ_Rl z)9YBcsmEA2(`Bq!iiI5D`H9PzLd;mSXU5KQ8T*1jhsioGJ$>~!(y0^p&hWSRawohA zG7PdSJZnR(^80uBduN|oBXm^Hxg9MeSDUiJK09bn; z4+FK&(UXcoBOG+7gV@H3!Tztk`9$}X{l5uW%l9(<{|xt)tC3P>|5xY|2h}=gAt0q( z*5KV)5SkWVJ@AnxRj6(cqTTDLM^TDLOaM35gdX&oBUz|fD0wKl}I*4oORue7GQ&(yD+ zuM|4mLB}}g1P4uU(CH4E?4aVL*Agx`ws6tFGX~A-Q*=aV$f99~72V$lC!rW!#5P3 z(*N>7hZPRb_XdyX?~NE&?2ULQ_wvaaIA2Q08d&aXpoZ;d9<0Qu7j8-wVh-zj*1*-S z2CfxIr_pv+r7rUYlf4&{zM?<>2$VkznsJZO`OSXrt=nF;{7ZXS{N!wg}prZ{5&8z&^utx0Plct{k;R~ zHRl%v>hB?!FNH|+=aO_D?h6?@XP`H9+5m4Tu!q)bpXp>S%=2r9tq`&A`_$O~?XVRh z_OAtdFmpbx$UESc!8`nI`_&Ds88FqRITU~nBG!9{#OF8K3fbp3j4Mdlo&&M6?nMZX}p zq|TEM`#kE(p%7E~lf=v_$4e5#a=aqYP~jX#lgc^#(=HR^RAC?1D*Lcj*@vmhJ{+2_ z>;vUD$_IobW%2=M2t?Li*Y_cSbd0e672@fLLPt92I6#Uq9+0lv3Z~y4_2hi|+A4S7(%?F_RzM z>rDPv(9NF7%LNy~-X8$jXOpWPg;+b|C1#0@!dCda1aT&>6sS=6lsskpuh*Y;naA_; z$zABAOZHJAR-{51_J7DCZ$#+%g6|gY7sj8p`2}AZ6rK)db$DNJUx#_aQM&9ER;5&# zHTDe23MhNLP|ZG1x)LeG5>@pqQNopIsz3v~txYvjn##~3(tVYGSgxamI1s$?0&bw&$OSVV}*e=n4`0 ze8r}C{8Ei~qK%H<-#HA0h%r+zWb#X59>ilY_*LVv+zPQ}6@#%>;JxT7^$+1FYM6_;5{{(g*^W@6=GLr_P?Nhyz?umP$y~5Der8_Q{p! zMxmQGFzgMyR}NNd7@O^ApQl_8Q;03lqPgL*{(Jqs0m&g=7)&)Ei^(^Q&-Pb{wW*kl zbr$~HCs!IbYZ^siuLuX9h0_KLZHq+;ij|#`Vlfuo!r3Pm{ja+k4d#Y5szg!>Ks(we7u_EU-R?&~ zj|NJ+#q|V*SVKSCE7n$rr4X@xwO6d)J1m8W^{`;+;#rQxv#i&}^D5*zd+~fsa9RGZ za#1tSA6zO5F_lLpW{Hi$@;@#?Ts(Q{Wxf}Y#q$*vrOi^2+pIo6Cd#ZnZ|ILm)LscM z<(o*1R2ZkL(km*Adqoc&YWhf%Umu#t$gkvcyeY)Iz1TBvue!W-3RF0V$ilb068b#h zOZjI9Gkc(rL^P9aMx7#I8Tt9hZ+L(27fST;#vd5I)_X5}ai4;`{P3Ui3&!V%e-|#i z2-{-s+HjC{ITBRtqbac0Da1^_Df#LRL(?aQLd1ASFou^7^hVCv-y1n?2n6GUy^*&R z?-;gi=vKRbiy4cKj9GPQ1i^;*I@i`+XM1Dds8H;Xy?2{{v6EqDI#nNSK zWb&a9*HooTniYGYdy=7xUWL4S$h)^sc_;m#f?2M-pC)OTekECI5ZRj~ z7{hT{Pk)F``q!%o2r<}OSVA2dtk<(8E&%Ty{xQ$r9aV)$wOV49*eI--b0mmEW4b^g z()I%LYq%zKj2#k^^@|w6Jg>P#6aoovhR_KPiNQ8Hemfn8Ld3X4G3FI|^B_<5AzSt# zTlVW!kF6@ufL#t-A!0*G)PsHn99D<_nn`FjKz`L~Vxj6J9%EGUk9pp96cr-Q7_6}@;yvd-kXSs zgPodC#2el}L}Rh3jKl|sMx@OGGz%SupUOYxG3aJ-2IPAKCib0LU^2?>ihVRDmu`hX$@@ged3l2hyg}mz zc!S3D-vN0>4N;`u62P;|l|&(;79fw1IqhHI?Z2VFHwcCUeWo!ygINSv0iJuVxC-S4AeAC44WesA(Ib? zKn`=Ib84?OoXLwqtYM`~n%D1z?!-(DBma(ro~GRYr^`RnSh<&UVp_v~ILlbuM_%m{ zcD1VzYxgY89TvGhF!knRG5A&EvAha#mQW1FqO{vSxoA(zs!>aqt(!?dlY-JEO&&AZ zCl}od3|-8o`;=$WZMKB*n~OH}iNGp%+es3MwVta-*r&kNutKcExe{}p zjlx!3EJ0jB>IKSdwv`D8%~LJTd+jXLozK16rGB5Ki{HL3b%mIEN@AASSWNv|m-_WN zQxBiv?H3Al7n7c2N#GZz$fzVXq(V%nNoWO^dTK1#XMn>{h!{61Mz^X?SQPy3=dcta z7B6bX$$4PY9uy9s_nVw4M2v4J2Djc=IE*KQ8hmh;se~bgH<$_$^LD`u9y3u}gAc!I zJa!9(*ew);vF75xeR9#hOKF=ZmM$`3sAZ?1bV*ahtp+O>-8EX;00R|l2bhDKQYyq$ zey$jS8ciAc{Mp}OC`63=1Y_{XJxjod%_&$1O$1Q8-~sUHz{NfXxD*s(3cr?^B{m9U z)4#oHjC2STmI<^%TEBuk*XzPv5u46Q^Sy$*!%(k$4t&<0m-Pc(`U;W4CQ0H@x2*TR z=qL^s9feq8#pcw0N1&X!(%GWvASNHX7$8H28uOxf>}N`sH0g=mKDp@r$Yu{5vj5rbDR>&&7MF<#pv#t4U@ z5Ha4`BgW?(hC;-6w+F^dgxcpIhoKNLJ`@ZaBiAo4A{b3p9Pv6^j-x zTNJ5XKD)LqIe+n@T<9+BSVw1EH##m#4q$@Aq93nd>X*)%6PZJJ&#iqdDJ*C2PI8EhPNo7g0e*U7%BFV*zBMTNUx-3Yh2VCWPz}dhJ z_JHnDStIqSMalUKYiHKh*DtRB%=taeM}UJTL#%hXU|%a%!AuQM*Hm~F z?rBFWlwld{^}*urweRseDEEr}|Ivr#3m13`XVo3Qq&E5KI^spHofk?4a)`|nXdSyxDAGa2d$ z@fLbr9+tUUSt1a7|I%6Y^JgteMrO^PUAtsSPwYSl%L;Q}Q#bXJ1-$ln7;m|&lRZzy zCi$6~{AaEY72$J|Oi2cN>Dnz8zr&BB6Akk zE{QB!oCE_jACvsKtnA zaVi;EJU4Rb;?$x!OT0O?bLTIropTnNZHZUCXz8p4^XEhs*VWd~B6~GDGHqUMeQji6 zYDqG3X>DXy5^N7vkjUaiwUK3u>#vYRBl8zUlJhj+(#4Cf7_E6BO^@&A&97ay#G5rc zIe%&Gv{{#Whec*BsIQ$h=SnTclF=rM>^pN%oY9;pSqzuLlH(;Ir7MM+ja9r>QqXdv z{K;9#T8-h&n?Gkx?ILe!ZT*!o1p{r=17z3witCcENv(g{F8P+k=3Ke2T~eCmKhP!L zaJ}RfDMMwjjkJAi^DUjfWd5ZKYDatE-)1e43{=lCmEWyvXsi{^} zO+S6q?0K{5XC~`s%}*|=sM3iU(PojCodtRb8&k2z`I`M^^wcN^_>6@Ms%9l;?R|I) zj?4+?BKg`m=L#FTe-6$%yNC*NZ zsEDAb7=%TMq5>jf7j}2IsMy_s-QC^Y-F^02yJj)G&*S@@@0|OmFmv74e_wmAd*3m` z1U-B~r0D{ON`6g@he~!BH^)Ekz+)|aJz(4t5T(dk*=ku6RbGj^ON-HOeI;H3IpYi? z8@UPD{BZ*G)($y%%ngs|bZ^;oR|^o1WUX2yZaCvw*spc}WnccO|N8L??}ubkwr_kN zdcz-0LI10&{=;KS-G6VMCfBjgA_d_zqZKu2qz2OgEp#M!(|KXw3 zf9}6OS(~!Wp#Ne2jUGl}3xC^xevu6Q4@M652zZE~`>${D`iGIVDf=()N1zM#3_ha& zen#obciywV9TC6Gg%Nd9BZA9&J&u$!Du%3;BapwlsFD14GfH1>^M3qo|M?Xf^uLGd zKU|LM{_9(Oi}WUIWxrGY?x)7V_mTg8i|A`d-m||Q5x>BN5e-%&f`dmSDi(}MRcf7Cda%^lh#%y1k@XUweYv-QwUUp#agmGuKZ1BGwmo#$QfVVZ8 zKYekv^tlhweM8b!|MGTX&KReb`z^Y9kLW*n@#mH4d!?D%x9d}j{I!47sW&?&^TpA@ z?;EtMJ!8`PS3SF*coSOwSQq#5elN4%u(;Cs*&nk`*;)FM_qKik1*f#DlP#s*u#(l{HhHpCTtBh?<8y~vmHu9$ z@3GI8UZv#yq_OK>P8sl{W_<48{tFuQn3gl5--f-R-*ebm)NK$JSZIC0l~?NDifP|& z`1%_Wd1AK&%HQJ}N3Kl#Tw`L&``eCNl*)3?(@E;`cjdHMj<#*|q40mYFZIct@09-D zG544HFB|6`U9Zd%se4&=tNWu#+EwzmoDXqzNi_n; z`-}0DvVPfQ+jL#`+qp}I{~7+f)ZuC7l|Juq&3me_f88rvhRxa8Zt&+7wIf#fe#w4q z;hBvU?;U&bEMBfJY#6#NzOL2U{rBz+%Hdoi-~ZO{(wjCX9bD!(tNyg5-->;Baedd& zV2g5l3->SSJ?-ta@S4r!{dTSUT#ky(mP^)A-v3X(qY65foMs(&p=;EDLQPIJKjXO~ ze3kF3zNL1j>E!EH-EW$lcO$#JoG|Zdr!<%Ee(ZaH|Lz32-lp-hF6Av>9BR4!c%_1G zdQX#exzw#un~zn;R)(uyL)#xu8LW+;`ZZ@ zNf{FRY-pUY`o!h1@%iQcmHk!un6$rg`rot9T0Q@TOrK`d&zbIQwqu!pS4_Cwa+LqZ zi@QgK_<6tIdnU3?*kS7d6W=_cfa)*C&+U6Y#rN znMJaFIUdV`c~1ss3TP$o`&l*|z9Q{|whcadI{vP_V^_$=#?S5Byy`c-_*aKZVH483 z7nr{#Qq>d-y3I! zbtu-ReEOFcYd<>PYhk$>8@74J*H8E2(a(@1r;Mi$4;?Va_uKLjTg`jM_Lkc-GT8B1 z$IT0#>>n_-)0d=5PoJM0e|wc(ZHwHJXWyA2e+Rfvb-Vv(SMdC# zG&mKmKFU=EW@}FXv~+IpMWuuIc%?TD^F!ZM=LG5#C3AtHp*#c zw+EkZwjZC@YeO0NTh4E}UrS$k!;R15I#f*<`Q%#2X{*9*Wc&Zgm%)%|>+MkCwOpTV z<_3$PsJ%Oj-ub@c_48w05xUE!O_{&t#LJiO*7c8M9WKOlkM;`RnD6|ggND9tUiTwxcT#6)ERMP`nkOKX60W!e&3F6>D~p8d?44?_I6+3pS!2ETz@!in(-Eavv&r* z+LpX^*5jQovRjq3t!6W~metS?>$3EFvOn3|^JVjTwJUD*TRk+nv+b#M4bIjmdCxCo zv}L)3+pZ<|A71b##osj$-p@AGLi+qE>OA^T<9ugR-j~~>?DBh){C~wI=55wxo>jI-S?W8)xt$%bkZ z(Q^HvT@NjLeJa*u(Z&IfHy%4wI-h;(7Kh!I+r-YEx1-;-;$w36yJ0_M3J09E z+S_LN@JC58?nB-#pY2|H&-=?3`#1PFu2?gz<6Or@(-IrSJC1Jp<9qIh*N#QX@pg0% zSpH==QJ|zq{qG-ehrX<;uT{Kh55_<%Xne7p5GX;xI(kSI+-`tDoF| zUOtaW*z%+Im}5;7U5_@XvoH6NEVf~V%j_NcBR;gr=?ZnT1W%toZEy*{IsQ4SUJmOz z>(uYs;}$(XQ>R1XlLfxBO8-vjdmK49u$vi?PO`J7pw?`98KudjwBpL#c+ zVy@Z~{gwUL`#bQ)yPeA}r|d_}tu50Fo0)A>+#-Zbx(@z(WIH|B(D^>EHUcq`P>n+xANhnm#PNzjw)Ik+Qwn?=7}m zyik0#&8CxMb`)#z)BUAY)*AU|989kK>3FklU)o4tujey@+aHT*XY_XyR{kZ%aj{m@Ya*a1NDvun|m)=^E9yS>)?42ClUuq zUzu@HS2pCybM*VTl?Lx7&kBUco$U7V?7XQpcTV_vKGW0B()Vl2@vI#>c-);d_hs`D ztE#-M`lZ#?`F74NZ#CMOyLgVKhotZ7ui6ujytebZ)O*6Zl3`5`yg%>n8sZXOF!^bT z+gVEm)swzfBz=3Gugb@BKfRKQo40&-tB~2#7m;&^%{mpk_|QZ{ zk8sPnp7p+`yx+c0fx6R&@3`8rFjaZTohHGZ^7YH4G4w^)4d z!}+(o&Ym&S??%}}iM0-F4VW;oPHlhZyASI{PwD+($ksXco1`y#WY@s^J`ev}zt7ro zLpIiL*6zUNuT>LEmbov-Z<}T8gl2aSZ*a0cI?;c~s9KfRO+EH*VuM!42JKos;`Gx9 z>1+1u*$A7f;kG$~r`e4S*!wMIo#b}f_F-69set>3mK}{4<5%%=jSJ13vh6RP=}2e*?<$WVsH?n-#s_R6ToAX^qcA4-egKL=If*03^JMOUQxzjVI`STo>>$B#M z%NXFj_uzo$qfSO1OLuzsK#!~E#s_F z;kWB~+LTM*X5pzC3FS`g=yY<-&^xa;*6}+0Ze98DwR80R;+kRHkn>UP7P*gh+P3s` zi@2JF(~mgy)4bJyP6N{1-MAz1wVA)y(vbA`#UfiWjMh9l7^a$>GU0noX%MjyM!$rt84i5M7dDchC%)2Uhc5{I@Q>u1`{aY&b-jm4?pgU<2j1K-?kD>#&+l#xzMcIY-=@HD+uy4* zZO--j(Z%XL&j-HE++%r-4!J9gs@1F9&|F&%g}gh{D1OIX$2Chg7pNGQtOBXy?zF*Ig_)w*NCe437DE!aZCio6G-f-BtaNjidUOaCx z$UeK}k@mG$MV!dFsqunVN8UzBzF(J;HPV&uP~ff2t_sf9$Acx`=43YnMN)KRpHVbg^IPDl7#DP(cb6I)K4Z^4=UG7o`{g+)``scsmtWBg4yA@> zNN&9L{@y$(w_`E;TW`Y(?L52IU_Z<+f0Ma#JNzE>$*X+(+e4T8WZBiMcxk)a=#G66?K|_vLT%kj_;HJgYad%B>%{3tu^Q z@OYZc1$~E9p6u2BOWdgHo~Lg0^C;gp%ZfEE*LB{LWn`J`505{%w90$4@8{^1S&}-A zvy|&6G(Fj2kl&=MvfZTxF6|1mAJ$E-m-~ra|8>-nhDnWUdCuyaW%!o|C0|M3j64OJ zz0a4F{dTflh8sOE*{*FK`zdi?=HBvm{Khk}*G|nyT42a)Q>@_W0oxAwmGK{OIjd~< z>96ILX2vH>PC1_AOY7|obDcg-=1Bkdm!7jG-LAj zxw>C=%xw9{_UoA12Qxj*xZcw+_`Jin$7gysy>h!{?nN<=>bI`qk@Ki?+pxRsCtUoP z#ihxel;bV@e%=tju02M|@jZxW{VwRohp-n3gDTf7c(wO|s-3>~a9KQbRmac2{uq`Y zUv{yfcLzWFU8A}eh)WwZJTB?C5;+&9VM zXUFVu+dDK}HGNM>uNqr?BWK*W)+MY?(5h7(ClAdsFllC~#5z?^lyT1TI4N>QnT0I} z-^!7kqg9$xj&q8?ta4|#$Ae9IUiNvrIfLV-8vD-Fc3zjZpj=d$GE3M`Ff8+mc{r_$I|Hl6eifV8$ zf19t-TY@jmzu^Blp;pELleVU-D*OMR*2}*mx`%g;j;+|C?U`=r%;22@<_7n65ux!F z?d>O+nI#CNd*`T%(QWbl+FYsFHjce0t2@5(6aEToZf0ll$JmN(Bf`41w}CI7K+@c7 zu?$teD~9Qp?80AT&CQJe63aO-OBFn63>D+rvKM24&excm!3#9?UvuSa2;hUTU;&y@ z@ew`aZKCllB=C+xb2E773V3T@o%>N|jb{oh=?vB>D0rc|xf!r9*fmK9OKR#jQ(#GN zLcs?gn46Wuwd}9w_otuGR17r4mJB8o{GHs~3_h;}@~k7*u@}=rUyVn>-dMvto7hiq z*BN{~*3`pZEXX|Y-YEZjPo^0r8%YH(CZu+d-Zt8(Iz?z%EyYXO~T3OZDYwCf&=9`-hWj~=R z>-M#6W9oqqL@+l?!wgV`HC8Uwj6FS>#=hW&{WmwO4nNudiNBsU$$=F&t}}e9mbn?c zpAbAw%`a~-Zimk(cx{fk*e5Ohnt$4!8;6LW@lS5dX%w; z*QX$QpbchYA75&5vw%^3xTnxRdU$={-G1g~?(8Ql3w&;FHO}H5E4Iem4Bk@-SvfZ^ zVec4DSs&P^_1w7F!F#l+rzm>h4JSZPsXeBGsmB^U@LpXwI(X!4z;>pTS;f%v&+QaP z54;x_=EkDjZmmq)De)KW*q{gYQ)tJpbjf(rcG%&Djs2hdQwlvEqMc&h53!A-$Hli- zY4pf#`ej(Bgi2k4)RCgq~aMC$w|- zMh^z*ZOXHp(BsN}LOZL{+p_a+N{=&oV4FgpD<vf6)%^5oU12gK>3tZNVlc+%i5skTZV`Kkkj~9A^*-z+?zWOrWruERnP5|g}{W>_=G|L-3o!}?? zzd7&PKvRzodRnockhMFY3)?s;>r)>+u-C(yO-?=8&Xm%_c5gN=xDtRhJJTI1Vd}xN zfLRCOv5WeY%K57ywo{A!g!4|jcO_G)VI%bXb5>*Y!0`aK1-}-BTgElSJ=6@g2rL_B z#vV59Gn@hcZCvb7@~@s|f8lBV7asq=@C2Y|E&B^m0e}(VW$wIc2f3-AA4cXGB=AA?ZiJEX>B}q?g>E;%tP3BuKP4)7oNI4 z+!Oj2p0L00g#U%7?O%8z{=(DlFFfu4!V~!y9@x{(&HlND9nm9?hqjr^JU6W~9>L7| zLHXH|sTzE&cgk%M#n!M#+3*wo_vyOX)Dw*!YvBp?x!c3k0}p@yt)0&3VJ8yo#n1ss z2Ta?6*_GNOXyfBgm%nHy?k_xD|H2dh7oKkDxyXLP{#EwbgYu^1>W&`x5{};ijJ6#M8?*sf4Mg5Ahs3 z_}j z=Le#vFf)KBJlo<_=KLV^ykesb?5^;0TkR{a>D8KxWhVGaNl~{=j4EVMgL$_ zKhv`R%Q}VSG;W7`MxqD4S%*zm!`Jz>>X~{*p=SkaqzJp!H2)=bkbp|@{glt=(da45 ze!`lY9maT!GU^Zaj6sj=bF;Lw(wKV25|2gai1DVLam17C8J2A78BaV5Y#z5Z^-MsI zJXiji(s-q*XCi4QWq)`LC!vRZq!Ye7GB($~MyB|8u6sw&UE4_oT2p&<97JCW}pYY=z*O~3`K@?Vf&Zf?%V@c*ZlkiGrhtrYj$!- zIp=4g2aYg6_g>h$n5kzrdLRcpOYF@Ul(L;Uf8m*no=@y2%;$jvn*1{D^E~vxH{W`* zTh%{*XV>$3Tzsz1M~|GVa9uagWP2?j9;maaCy{tACG}ou>RCuUaI7=+z>!Cv3(hZj z+RfCnn0R20nR=3lXH$dQk*1y{#M8y5z!y``QsPOyon^$6`q-EMg=YnN#Px&XUi@m{V?|MdAJ@uavs9@eVx%fl}Yd|3&b?1r!Fm$S=B=)LhVd=q+PR@}oYT{jwK@&2&Wr_nrw$0??sEyQDJ zcdezVXDjh6ezGHjsb?GUz}QVa+ldFBuQT=RAfD96wUc<@cxc*AGV!F|&Mx%Gxti%t z#r&r2>?ZA`>@(k{FuTmn&at1cm9kz)cieQ2?M06t`w7eKMmO2zLdyBPkF7B`OJt2$ zuv-U5%x0(Xl%DhBj@DJ$!B)L{BO96Z-5n zY|h{VM)QZaa|k`~!JpOGt+*rS*nth)#`EwndgMHW>x4rl?HoZ*0_$^Db}RVBv3#cO z93|}(_dFVV#H5{L=z%X=Y0hq4nB|tre!)u5YADBbeq_w*V@B=pv7aDW-JW=+;yL*j zo>L?%d2Q~Rrdg*+JJlZ!%46)|bv}b0_#V7W?AFNZ9*<4ybC$FN^*LiQE|`J(yaU(s zrk?ZYDa(GsmR#I8_XShW1@y@MV%(zZ3ynRz&lk}X%Qk!ycI)KBV0Q3JIX5n$N6wA> z2hHwYH0kqY;`!j|a^2K(?cgyxk)@b z>%I*$_1q#J*j}a{b}BO3rm6S&4)LVk=exv{dY|v1M{ak=eAV}u_UArnC-we3Anin* zI=$Yw9X@{^qQ{(_blFa9sJ?z>9@F{rh-AUB<)O*^VY`Y^ec-%f>UlyuDcj-wd5RwR z7HifegX5%?uZ{b|JIz<#x(Ob^}IvRUHHlVr~Wr_cDiEyfp1%fdDb|o+c@KPc%MI@M;nnO- z+^|%vReqA`x%(SiV{Z1(p6}>^Z+W$4w}LiSDP-DbcIjy}=izbXcauKB zTSo1`xJ*62iD%oe8jnpqfBwjQ;1H-qaM*a8%(x4}oXlLx43tpz} zn4_mX^T2+Q`g1buW1x-34v)Y1D}DIf;C)Vq9@y*Cvj3?+CzBpM|NNXx2K311WW1d+ zOf}u67U+@tDLf~W0bhA!JXbTKNA4G}y-YoshzFhnG4*679(Yd1)RTpH;5ivnPgeBE z^94L7W9rF9+R^=C1vT7Y>-b`g*SYLFJxrAECQ2r@Kg)&RtYo6pFj49&MP`MVC_RNz z+aNvc3rTSCSIS1Aq%o783qpxhp7%mAFr|Z;9lK{HJFI@^5Ql-PigFZ6xKjM&p#s~1 zQJS_BD?Bw7HB~50m9j%9HI(vLC=p75PfX_v^w}-dtSZ72t*9^~iVu3AiLyW_T@$Bn6`}Ci(lFJ^!?)=0Mb0|-@)uZ| zsdmZ>#a$`&h0;zb9fZQOnx&dGTzFn8~fPM<~^m=cZ7aDCL__swu?^E>qajRw*@w!napcs@p46 zc%l?FP$+&%nJSb3rEC*QEv4KLikX=lMOsVj4tumMmC{1-P>P>W+AF1(PN5kfhnl+Qw0rlidI}1r99t+@=Pfa?72i( z(woVwOF|i`Javnr#qeDz$wE1!l%GObtCR}XoSLhYRzlgYl*vMwp_C&+d9IX7#dtd} zm69lwH%iG zRMf1Jyq!!+$yJIg*_1LyC^~DkiE_q7`6-l!s+|I*dCPB^VvaXk3ni=a+!9I_r39DZ zR7Is&mgS0%Qd$Y6t5Vho#X>28;prIe3C31kZIVfFHys-Qe?gpye)ohopT zw^DN0a;2kEehDQ`Da$HyPY$JQvg1k~rF6CDN?xVZa^OlnrDS&GN_M4Wuf&ylO6ek$ z!b+Jdl#EKL?!+l;rCbwA5v7!K=APn887veVrCb+EE~Pwo;gqFPYPxd8N-5*qxKcnV zE2?rOzf!ta<4Q55I#p=2|YJsj)DJ$IESTNAFVRLV%9+*3-Xrrc9dDbCHgQd%jK zg;Gu_Z-ml9DPI1Z>Zz3dLK&l!IRV@=MJen>ptvkh$^@ZoR!Z(5?m4cMX+k-tlt)6j ztdxiroO-O3B%yp%ihWD&`J$9QLiwo_1A7h`mW*by&ew#pOL^L~MvLLTQtk+4w^HE! zS+EpR%J>iz3@w%NL@2$K5*ErmW0g`Zj4M->vPCF~O0f^;o-In*B$V??F>lK~SCleX zC{L7fKq$YIQZIs2napH0inZfPE9L1Wl-^4DD3ozZIo+O9)09##k}C_9vR^1$l~T6@ z_nc75QK4K=O1_TVb5$wRh4Nb|g*$OiW-~d8PeOU1Jl&(Xr?pZ}3#E@zyra2iyi!WU zaAmqu<_cwzQu1}?o^48*EtHc=v5MuMYf70blq_bl&)vIlPhaJECzJ_FIT6P_ir6Ry?SS3snoY#KCl z=3`**Heol?8<^rI71+&C5m!;{^ZTXZ;3!OR_&|??y-?tShAXmZI5ePwSAN#)9_${d zi0eEf1wA>~dYH1*qZH+V$wxg(afbffV*kO69%mV*6i3--Sc4u%7-}&450@RNRFWR0 zz>BAF86rI{P>t4R{HtM+a*;(GDm~brMCRG26xko8ID!J{vC@P6VRy9RB&+&PdYl}< zz?R(XKOd>wV0)xeN%m)rR9qzmyDRTAyMap`_7fGgmEmAYJ?>Ib9ypY9sxrF;%Ru%Y z6-QaI1QTVDR2<~ER!PN4)@QX;oaHE>-q>;_Nx^7%x>R7haSyv;$ie=@!4wtQuvXOU zttLIHKX9tk?bxw<^Fcshx5D&E?npTQ~BiozdRW=u;$H7tTyGp4n`(th2b9e?I^{; zg|%~?^>>~0IJk&HE5*^CZH&vz^Im!!?Zs5k3QRKi3;!qOaS$G*I8=t6hAmIof7})r z^^Dz1Co86o8%j~05t33Kr8vl4_m%WGJFro}UwSjhmYwB<){69uQk3*4#leY#evODc*VhY>2Z;}w^AHjSXBqGoHNqn zAj_c@d)8-I=Cc31&u(H{?3aq8tJn`_NX0=O#GjieFHMv;QgL-*+Z0|QyHP7*jwuCa zR05kDN2EvfSu0L#a=Gm7(RjZ0lr|iVGiuky1%) z3Vi)Cwo?gC7_hfhl$7!)1rGqN*m@u7kyBMG7?p#q?*l!DcOPcDHv@=+{i zqsYeY@n_6f4;|$G#XU@cK^WSxs^*a`tL?58m_K`&C$IFl%K4)dywV%aJo%(Y9*nhu zb%yIcwzKdpsLr`c!D}0s%k`wk31%iNN^z(pCVfVx;!ME(q6xcaEfuw2CLF*P{(3EDHY{3p?PG0p!Mz>*;U}vGcnlR|HI*GHcDcfz<8Aizh^8J03Oyt%hoYd> zlBa@7MyjmL13+W@g-KRUMX}x3FyYX)PMUHQ6naQjE~MZn1PhF-s>%u!6neNA1qoAVXxHL6B0U-l=NLC@F?|C6#qgQ0O69#Yxtw@cisgTyW%o z#dQ$>jUJL!0x7w@VE=Mb)Hp$*hh*81tfTeH_-pFEpwL6IN}6POsVwKgyocx^S*1u; z$9w6=XlkgS&_l9HD+=0e-#Y7_Au8*lpwL6I$|wrv{N{*nJv8M!g!d3VB&#e^u)Tn4 z`sPVBO-&UPdPr6|l687b=r2uu5fpkzR(Yi03=UaA@o zQ#%EP9+G9N#s#e&Z)W>wsH&mWFwoemp20)1Dw3=TZyH!=s=uJnL$d5t7L4mpmj;71 zbz4yAAzAh$%VAl8=bCaKjvX|hhh#Y*C2QC>U7_`wS|}*=kSs@%RW8Hmqnb)Pf@h(J zWK|;LYFcdm5lyud6naRO6Uo}uvzU#hjtUArBnuu}nwzCQu5u%J579%iDwC|Et_SDq ztTBQ@56N=*hjG0Y6naROE6KV$(CwbiY77si*@7OD<)$cDpD9bBXZzGV+#o3QkgO_- zf*Ccu#Ox$ZYWv%RXZ?z7q9+Fj)WSuBd_?4z|jpbSBA>(o< zSqZ1jCTXgdpwL6IJV;i(?91zE>W-k$L$Yd-EHBrh!!+eNj`t8fB&#-3a?VHD_?Oqz zN}Q8j8$;5|eS$*M=PPDNbps)t&o%X$jW zLJ!GmLb3*R-+EkA{(?de$!e-7Xt#Nn4%^qLtkHr(56Nn#D4g>LFI#Hrl%UWj1(N_VOct`(W`+f>w=)rL$X3h)>*sov6`wd zowtP^k`<~baKQFTP+3C+g&vX>rYIO!&n6jdHFZ}|=pk9*NEwf7kjkn$gZB_UB&#jS zYU(8J?T{HkcGm7vf=vO1EiIy;y5*3?=- zp@(F3B3WDaT9wpPn%TUE=pk8AB+EW?Y!gj27ZiF(Ry0yDH(*@L{C*$M)G|S#hh)W& ztdrf|C2Q)3pwL6II+HB-^MlPb)o>0U7kWrmEXjIuU~v&mB?<~XB&&;}pj|kpII6kv zQBde1S#gSjYUCZUx~Qhg!Jn|$f*z99RgDYQ_nCY)n}f;<78H6&Ry@f%@c#ZUO)VA_ zdPr6`qzbbf=;66VPZnzGsi4q9vbvKjFSlOoSzh_PO~rZ8YxWmj@Q|z?NXfZjmw$5| zO~nfeJtV6q$r{=CyuYS)2nszUs~1voT#qj~TWHEKpZ5?wB&#>c>dPxZ;w|W+#sf&U_56S9>l<{>`XO&fG0UsB7NLGK6 z1WpLJ!Frs3;f%oWI(ttP_Gl56K#& zD44x)y`ia3f`^`II_dGFN@P}NAg5Lz-A&_k**8Y%e~ zAL~!iT{UGVDD;r5F-RF#LsLP5LJy(FB4u0+O$`$idI&WRDR~48YkcsKrnU&5*FHPlN#A}Eik~L9L;DG(By~^?y6naS3Bt^;nOH;iB zg&vYMnT!keuNalJOi<_{SyM|dI?EGYDltf`8U;|f+;=8JhX&_lAODGJ9mvGFQR zB?<~XBx|~&pk25I=%li0B=IctkgOSsf~?4?#}{bo$`VeYhh)t}%6M+nS6Q8xaSA;o zYZl3Z8ft2qpwL6IW+P?1SNf`~WI>^aWX&O26Lu~>qp5p>LJ!HBibyyY+ZZ=v|L4raLp%x%z!6E$Xt+T2|f}qets*#A4@m{H^ zb%H_<$y%r=h=aW{L}lF(6naS3B1PfsWoJE2WnIBLjvkV=n2c+1c(!C0l~qMh=pk82 zBrEX4n3~atPMz6v;L=H|6g6*6Y@}Hoe>mzNY+M@)!(Z99!*)S!D1NDL$Wp@l~H8v zv@YwWDR)7khftf5f>!}S4HL_SRMu1*pyXM$$~-;p|&Dbh7nMW zeRJw9yQr%1MNsG=)!2rVJhDCf@wStuV%I{x!GIo;wH+zrYG~@IpwL689Z2W z9UAJZsql4>#9kQ$9zyLzssUeZ=uzWmh^8J23O$5MMoM0pN8gKj%0Hb6nt@LmgatjM z8oQ8^)mXT^;&n~k6%=|%)^4PXtD&io4Ll1ygxZ5t2DX~rFx=^S)m>8$1ce?#?L|sn zi%#0wVz8#7Hu5a=5NaP%#?|1T9}fOEfPO71BG?iBCGKVcaBBL#&XQjH@>$!eVK zRxz`tehLabB=i0JrERn2z4AO7v8Ah!$!j( zO|{v^W%Lm01X8jZ=a>1dMT+=jDn+R(9C%g zC#j=o@twRe^pI+tLrPX-P5!rjnwlyo^pLFcNEuf{QyG$Z7J3ME0VzAS8upg2iN4J> z)mKpHA=E{ra`HwEL;d@)j~A5t%@;wThftT0vSt)iBPtb{`RL$aNZmF_zRX^BYIEP)I33LknT{}(95EOby);*+*=Z2;V9pG8$A=G`Ova;1s!_QvMbu^VIDD)8O0a6yc zQNx4@X=Z84_8^zhL#T&H$!ff5__p9DRgH~;LJz6NBcxQT3LJ!G$jFfRT zG*#sg?;&~!^#mz-Et=2KrL3kB1ce?#Jykt~b~lYlDa}_VcrpL$baiWn6hpZ92`f&_k$iNY!MkGqL~C zODopU)QB^jLJy(7BW2B38=?!%Jgcd&vs^|Gp?)A`TzO4ZKF2BakZSxy%DD2H%6Fbq z=pk9ZkTR}3|BfE;e-RXVNY-zX1(ny-@e4c)JtXT7QpT0n)SQc)LJy%}O7L&gm6g|2 zmrI;N524JEvKFhM@|tRJnak)Q6ug^Dzk>$myrzm>;S_pEHO!GRuDqtquW|}KBr7da z@K;V)Tw0W?{7fBf9tsLQBr6@sYUJTHK~sU(cw6WpS@7;({*9k-6o@}FvaY612nszU zD+9^e8&YD8rrfXdEcB2p3#8zYFJvuRnZ2y0HVXmWBGNhH8oC9=pk8I zNmjF;z0PVX!!4eL9+H(!jSI3~PN{FDsRTixhh$ljEU&c1mT2mmpwL6Iva2lU4b*U? znul?>c@NP;vT~3tsG+7_2nszUD<@LMHPlr29iD|Al9h{OK@Bx^OHk+`S-I7?WDPYH zaF=JHhh*g;Sx`ewof8y#NLF5?eaW%HQ#5IrQzhK$Q$zzCQ9DyyZS z&_l9HlC1A77S`6(EJ2}%WR+6mf_?ek@0%GlbyZO4Az7tKR#HBXlbXu^gpUh7B&!Tk z@)#BNYH^IF0tJO0l2w*uc?AYN)zl0@p@(FZLrR`2y?^EHrm3rfLJ!F*PqH>w7@a{= z`JeJ}p@(EuKnjikP{S<`AJ}UuP*CV0S+*prdDnyAH8n#}=pk7Zk%D;$S-xv5eKmDe zQ0O69@TvRyT@t-U+%nfx{%5QqwxEY(*&`)un0MVLqaFqd3Oyvtfn=4AcYmp~W(W#B zB+F4z(3iZsS5%*&=KNJbp@(EuQWR99QJ%E{n#%ngT4J9K1s;;+gp}M~1N`gwXsVH* z&_lAENmiS=R&JUaBPjHctjb8qIX}xG?Q?h3s`8%&g&tB3AEe|}%7-b74{EB@d!B_Jl2som z<7#N?j-b#(s0K)7V2!e;5e)g7Zt0^b{|`J1J%sW_%7U*p+#DXeK~on5g&smRL`u#L z=Tn!>kEv?-eB_Oxhg72xQnDIb9+oJpsY8N756NnblyNmQRr3?iLJy(*kb)z2TK3;J z{o`huN){A)2-O6sQoK>ayv3OhYpUjFE~AG~O_7o{gl9!Gl`JUqkZLqTN><}srvl=e z79pkX7oLS4lGXelvd#z!JtWKjAF_hJ@+|a_tN^5J*lL(jjrN^p2lsT`Y`8Bd^pLDT zk~PHZ&`(VTe&aZLNLCP171(Na!w?kH((ZuDIwdIdkgOIY>vgwp(=}E5JI_K7$!dv| z@r=^cHbJ3>P_2+k&l-hl!0VPZW&eX`p@&edk;=wb8;T!jT}@MK1ce?#wL!{wMro?l zPu>`MNHv0yGM-VIS}7>>kgO1r1@DxcsVZ;xi)W#SWQCF}cqP21ZU_oJBrD7$E0f9^ z_M2y+hh&A5tj&$G=GIh(Kb%4j$!e=8aKJS{HkCD8Q0O695sHFyrN^4YW}33VEzjQn z1s;;s4k@|4;I(rNRn`bWp@(F(Cs|NKO|2FbdPr6zQgFtDrOlSjAG4~gbAmz-$?8C| zcHaIHuc;t2n9&9UdPr7Bq~tYreCeGvG<8={=pk91NY3J4< zNLE*pwe<4m%bL0;DD;r5c%+PvqMDkKfoGwIP~DJ{S1Fm+y;-fPCKjAR523mvCC@!W zy}cJ|DrZJcp@&dCkTR~kkE+H=L7|6KqbE}GC_3`-$TXTNmWgMfhh+64S#T8Xs~lH&_k#M zq+lz9!#2b`x28r53O$4xNGPjjk6bnNR8Z(4)F7lXvmAEA;2at4psDKFcn{G-sKH3d z*=w1&Bv4b+1ce?#4M7Ty^N`hjp}P_FN>Jz_l^=?foW1aRY@OA_lJ^ijBx@K_nM78p zAm0a?+9D|Q5NbG5vhp|X4*Q`gtL!`rJ%k#8l&r=xm-TU)8YL+77%Fz}92FlH#d^hF z1&I`I69xA9nb1Zs^F+7h3VKM^D5PLdVK;F0mQu6#oybBDso`j(WDQ~VYN}oi-UsxM ztT9L#&t6T<6BK#~H5MsZLzumq`XVUw5NaHuVD@UtKPT@YdI&WhDdX9zsnvo)51}R? zCASyMUQJo#;#ue+)I_9=XRoG01%)0``AJC0%ERo{)KNj9hh$Ag%6Rr_s$y>5L-Y`8 z3R1H2FncvMT~O#D)KsKoHDLB?Dt#WFg&s0{ry<4H^0`{ZWcH$mWKBm39)GbLh9zUK zBm}D2+gW6xhtzNeQnH3$&K10^sl9?i56PN|l=0bIQ`z(Ko}-6Qvyg)4Qh>CKZhA#i z;etXBp=KjhfDy0+^gA(6Q^|rt525BDWqfT@K~=*tAMYW0NHyjnC946~HkvvnDD;r5 zc}N*oLsNtD^DOibYCclN*EX7}QGiqEA=Cn-7F& zG&Q{_r_e*PmLp|+cF@!cYfhnuP%Dsvt07p{IkrEqslCNGg&sn!L`ojn;OwBOo5eYW z9zv}`O3vOQaV1}A>TL;5p@&ebRTlJc{iB2FG-XkeQ|KYo8l+$z!ji+cyYAWF^+xubjm9S^pGB|M@l}*KJ0dLSROSuBFgaA z&_jB-f%MS8J}X#L70Pl7JtS)*Qu0yugJ46Vrrrw*JtS)r$tu=h@GMR3D95wVL$Wrj zaX}4V?%va1Q-jKL3Oyui3&~n|xJ{_0d@67XJtS)@8CQ;(P8OQVY0D|}kgRPa%RPr( zkfyE+3OyuiyBZg4W1n=Tlk%$VwXh=3LJ!H>L9*J${(PyaUUr;956Rkzlr_tN8b*Ee zdZDRC_MAcw$x0?!mN!nM(^P2(PN9cn?NZ}{tP!(THrLc2L7|6a?Iu|XeM<*u>WU-J zLJ!H>L&kN|ZcY|Wt*yi<^pLE*BxY)1^OZ&GtoKJ19U}sLD zhh*(1S+Kn{WnY<7=pk7L$hf-rRP)!A!G%-kAz24W)|7F+OEh&}Q0O69ht#;__R`d1 zSDu9)l69D59gknPT2tNKIE5aPb%c!TYizdbnyOcYQ|KXCM@g1zpNK=6Dp-|M=pk9h z6b0Msn&bZF+12)XDJb-itmBG;YOKm>eN9u}s_`uJkgO9(!J{^yzLu?aMN{c&a0)#n z>mQRcoI(%DI!m&eU0ZNjQ}t_e3Oyw2oXTQ1@RLvKsqGb1hg0YwS?5XC^|fd0 zHML(*=pk7bkdjx+@HsG=D(A_w&_k$;NE!bX3IvRgEr!LJz6N6{O_Va_g(fO*B=&i)W#SWL-r{Rs;T)t*O0&LJy&? zA!S?*O?9ltv(Q7R>xzPEm``$St*L_EoI($wZm4kq1%DZ_R@FEtDD;qO+*A})f9FT@ ze42{%;aTV*S+|gqk5k~WLlKpgxjv`RL$Yp@tn!VPUe#1vL7|6a-BFYrS8L)1lkgWS83;vR&shfgA56OCfl)M)G(&W(n zTq>)IFYh6GNY+D=1)uG#sV0p$g&vai2q}5&oiqH=8%=fa;}m*G)?<>j{)R=QrUo_T z6naS36E!ZVJbb3Ere-(i6naS3Q!6%foR^pLDKNEsj5G}SwlQ|KYoTcqHTFS}v5G-=x|O)UuL z6nY5t4k@|4iVrzZKvO3pIE5ZUy+=y!Dex#DzpBRj_MAcwsm2GSgVe7Vg-<5e)C57H$51g&fA3OSq~Q5pc0(+1eFRJTu4echYv4&ksB}o> zT`jDiI`luD0O>REL}7I-L?;UB1$f&vevERf2BJuw(oXDgdm_pqPn zA$S;tuXVKP3D%5A$>%CL%%%%2%LN41bJAQ56!Yv6lA?`p4?1R`ve6Znw4EqkVVIJLr~!1Tccn%K2m0dc8un84s1uB zn-&Dm873L_S8G9mhf+C_N_}QFWfUAc!9z!y3#l?}9rPyTcmR9Pshlk_A`3ipq`8qw zeG85e6nJP4^B|>1%>q@{1wny_QhAX|eO!;lxWGfHd`Q6+2rNe?NBirnpCSu9j531%qcxVWeON=<3UH%@GuMC}s5z)C)m@hxV`tQZmTPsrg~- z0{*DlgXg1%%=w~7r4`ndA5WIn<7y=+@X#!4q~LRgV7a+0m(hM2Cn)exsu)tK&!}09 zf;xeRQpJ&it5aBltWJ#9J=`R+z{4n`xlsbC)Q`rO1O*;S*(i$LNO3fNBPj4N%4qhM zM2Zy-i{GOE9Y5W}Og(w!!9%l3A(i^8NhNUb<**nRcqrw7lsrb=m}kXaf&vetjP?{qq*C9?p9KXT zN>xG%Di6nwpck(i>a0AydF8>wD5I_Hgj5Aafa6b~`CUyp3kp0m3%&)}+${C293Uw0 z(5%Wxl^0p9i?lR4rz{Z^cxaZ(KV%&d6nGeAG^1RRlE=el4XOu%gD<)J@M?gEQf^4W zY=foe((SAPN!1h-cqml`DY=!~eah8BQ>_IB9!gauSqr|!%+XXgL4k)-)kxO(Dks>d zW62(l6BKwTRUIjq7qGM#)WT>UE)^7bC{+U~S&g-Mx31M$y9EUvO4UTlibok9bQm&5 zQ&$BA9!j|*CC@2m`niqLRJOi+dx3{i9!PnMtV1Uwk87%;puj_^T1aIQ)P{<7?9J%1 zhV2Cf9!k|Fl*`;)`!qF3P~f3d9YQq^d$Lng^8^JRN_iqBACVRNzTQVuI|KzDO4UV5 zzHeet_WXx5^;l5gp_CU=a`v8%s2-%LEd6-p!9%HfNXbWJhq{?f)|8E)z(Xl-q-5nE z+*=Z(sm6i=52btv)uO$1Wlcp13OtmmkCdFfX>L7dm%wr>j}R1iDAfQdc`X|GISZRy zl3FMz@KDN^P%qxqW~WU_Z5I@HDAf=tc}^+6urhlejik;A3Otl*gcQ6Y5tbXPXY|t4 zb3uWJQAX#K#z>`pPO<3Ew=#Gr<%bj;=i%5v&ncw^1s+Bjol}}1CC@2Gw_SXzd*~%7 z@X)NLDhp~rA2W6k6nGeAbewOdCa$Y{=INZ^$R52e~51+TP(B~zpN-F23;puj_^V5H=8 z4&L8R`)Vp$P~c&d(VP!KstL=1-rWB+#pql)Sy14iR47vA1l4?WC8HkR5EOVQ6^4|Z zptemr=B|7ALr~zMR5(%<1vT-T*#J#h59Boj52JAZ;!kX~MGB4p?1rIqM9G1gsv{`y zP$~i`c*Fti&NHkysi{_i0uQCyA(cf?>=#?)+=vqtcqr8#Dd-`1y}Dmx8(dN&1O*;S zMJkHjNHMOZf&vevIv^#-)h|QIS~_cwpuj_^j*61~($pnEfrnC^kdosH$@SCd%Hf5e zz(c7hMX?(x#+7Lh-^$>jR5Vg@Tn{pgAE$e0D=6?#Dh4Syr?4Ahkt1v*BUptCv)3OtmGRTR6CVq7x?1s+OuK}wE`Zm-RP0uQC)6eUNadw51r;GtAkq~y5h z_If5L@K7pVQS3&Fab+3Iw-0c{of^;GtA+q*9-U^92PSO7%fXj*HI2ZGr+1rTQw0-AFO6 z>w*FgrTQTy$3^Gi4?%&4QvDTWy1fbx;d28#lp27P92cF3Zh`_2r4kgyZloAjsGz_@ zsewqzanbFSASm!qY7kPXZ?Cz60uQAIBPGX0x7Q9qfrnB<6vb|&7}s4vfrnB&<^ok-Rrn_jc@A?HimT$4~_2} z$23QGF7uz2nx|;l-NC&U2G)sS&35h;+#xzP>i;$>Wd`=EsYjrnr$?ZB3yiDXIrjg3 zmY-)WndjTNd&K|qvDxF`9NmLF8nclG*T=h+*xf*NKbUR3w!!fcanT)OLgOP0!O$u8 zBc^+3REM^~v7vFH(GhHQa7^b8G3`3DUvUxf-Qr?|v0Yq*WMFc14re+v7|}C4A~wE5 z=a}GdR#+3UE#J7T^7hKfCj{Fh9_}8VwfyZJ+_Ae3DGbfQ5Xd%KkI2w?caxR1*idWL zf%P?mz5Wk-=KzEqPEv!IBHFohI1R5(e}I#cLuDKSNTXEHp0X;0Vku(hU$HZmr>nA;eR_Vl14 zU`3DxVr4aDM|g2pA|CE)3-?4imqbkt<7~O2kBNSIixnL2*dMZtt-Q=QPCQunF^f311a8Rh|7w= zpj*Zwzr^aM!f>!N9$nHCX%DO7t0lQuq>+M;r_dAapav)sN2zH}#H0Qd9qp*wTciH& z#FCgFc^wFZ8>lKJecEE3t>KoXvG&$*^GdsuDg#grp+YBepVPDs)o?6g5mwcFLiKBbK3ujNFGal=RYHN#>A{VYRp^UY#10vc#R1;|P(7v^Fb)e0oJ`byW zTOz%2?sY?js~#{>iz-7EFluCTv^ClmNwmj#yMyM~&w4*ROSFx+%xQvIN3!;va!!u* zF#2^}Ju6u*h<&JpHRq5OyiimQY0zDLP$|W4LMEf z%r+Ja%3(Dipb$T#^db>qI^$U2nu?<%4w4p?C^1N_1$9v2IMGAV1iMZ?*|o>|$}&^c zRm8c_m$Zv@_C|Z+tiXnwqiyJuY4eiz?@WpoE0Ut^ztxO8Txd>4GU%G!Ed~~ zS;&V2RB^?q5{vfugZi_AR6PV)H!0EC+Z}C*wZ)>STDrR0!z`MVT1k$4@(=&V(o=#2 zqXkm0g3@fE4t!^CES^C16QGt#mt)}u9@y3RkD3M2VY)au8mE3kf~o+aup0@%a08uh zY6A1Fh4$~&^`Uy^_Rif`&39}8Sp^{Pdm|MluqspjNPLY>pQr7u&p035|74Z5z z%#%c0`Ix2Gm{qLM&aEhHr(hm*Uy}J&E(?|D&5nnO2b2guK84P$wMyo zM=w>n^0*5FvF=E$2Sv7O@JTZ}7E(>1pE{CF zpF^HB&ruqP1r`+ZZVJUxRaZwx1miqIfoD;K!>1>r==hl(L}gJU&(jzI{j7mGXspQG zP)IY_*`0{juvq|uR_R12cMeJ?xx_RHO`B&ym{j5xWUA?wNmA7CDIwTCZ)r3-#I~Cz zp|jnTFty#3Otsww2HO{P^_-7B-ucE*vuc^Fcna)Z@*~;`3kFS+@HNV79re=o=ac`uxRrQ=@9AqY~ zmiDgBp|^^So_eEk=DuKOYjlNme5Y?0tC29R6J62RW}9J^fnY{5jKrG*yRkI@2iwm|E)o8k72c>0FN=TN{Q?n^c2`0KR-OXEy zxzV;LhP0TEuyQLdAEaHm@is#@mbA#k01eZP<4!)=zBJOSAC6jxpg5p%%v*Vi{MNa2 zvChsy)>n(hYZLA5Rgw0V1fNi7>%}i9*eKcN}Aoc9EWKN=KA_* zJVMuUtP;*dH1m$S=mAlD4P|1w?v}G-Ghv@7trViYftGj-v+1TqjY22A=^CZVmHU(S z$z{Sg8e~ORL|f$92+gFMew5E@J$2TC&tuS;e4@hQJXVC1VwyR9#*DJE zk}uOWv`T(oqA|x=`N~{$%gv|O9sFVxE`4S$zH`v1D0P9RY^7INbtN$^QOZ08i+ZZ} z!{Yv9O-V{C1%0)VmMBG88urkg5reMt#4Q^p6;xUZ4u!2s%@?l01xDN>7{>6B-w+gK zx0`*IGm4@roqQ@n^%Gb)UEKR1-<5~UkaHCugqN_pa98>l%9UDi(ahG;sIR=Zt)#SV zrmwZ7wIzzaOSH7OrMY?fj8ar;)o@xGw{TMYiIz7!XV21QwWh85sEvJXUj=z1W#7&U|1hhAC;)UDUb6y{0}iic|q= zdLn7X0>(b9%Zx^9C~jR)+7}ew1=@Rjn-gtq{_3DSfV8`Z$-9Z+fqOXG9XM63W{6d*IV-y>%>525>mK@xxL!&RXq-6Wf6`sfP-7`7A zZ3q)l`kEu#{wT`s?L%^54F^QODU92O5(tNtVLmR!ZQOXQBiia;fZnhEMs)d^K3y?I zfs!98Lv7X>>x{)?5OD$Sz)M5dbLMQnzH+Hq`TcLHmSyW!-;|WI zcJFjb%GtXMI3?*E++mcWLpE=bu}nN0_j_9=o`qYjQqxZBrbQER?w<#t`LVR7CFHJ( zrnzS~13Fa8{2mkbJc_yg!>uyS-7Wtq{vD($n0`+Ym5ZBvQf^*_jZc`4O$_M&t_k9?Z6>eJ2 zeLEbhAwC6?L)Vt&t{$AplFp&+yc*nh877_EgT&P$KASzfF2iX0W1_{(joF;rIU><{6c43k?K!a&|MzBUzC;*g z|BeQ6+Y-&GWP04V=jr3Iz!Y~3ay*~m(GrW#L8_vkTHs#E@zerWVi@+Nr}H6wZflb1 zyg!}0PVMv=pMm;Rx#+#`2B*QlJOBTWp0x;-jL$`JxjE^d@}!4j|5R9(gUhEp!0I(6jx#x_M^mISsAa9x!j!8$UN!cSR)I| za!@1llygxd^OSR2BXb?(yGn8~V<0rh)Qo{F&V8Mn*t@=I8g zUy<=fh0D!Jqr#IOj*W`2EC-DWPdOKj3Qsw=jSANxmyL?hAZPQ&JpEx<0hhA+FDLaB zPkK1kQ{1v#)D}GD+}0Lchg{YcLW7*u7CikN_Zhho!?4QYS2A)^W##UsB%X3^3wEwA zA@M6nImvjQbS`T2&%$Lhu0t+sbfH1cYV`8lb(46~xd=U;a&GG!elKQrtq)hNSi!z4 ztbCscpOD7BTKXEbgpVDyM|(=Jt8Sk7qiSii<@}T#;Tnmk-e^mr2QSUWCrm-%Irgse zWAxQ({-`mYz|Pn^DhqukVynzvRqOP4vF0RtzF04K-xK5X1`9uVr7+RC91k!SI(|vK zu$x|A?t)VU+I~M=5ob>+!uSUo>BT$zepvP{0GcP|-#J&rIdO_W+s}_H;_N9!7*Eyo zW8e0Qx;jNk#_i|Fjq01GqWuh&5(S#iBt}fn;vY(s6L5>m7O*#E${)UEZ+0-qqmP`M z9ajYm?sMge!ixuazN`QqZA#~!Zp&!MsMJg8$mC;UD%M%(D;%;9*$WGXG6il!(U99Plqo2I)Z2^q!=?AGRSI@` z?;bwkO~r_P<3I_dp^~o#(om()%{mtpNJEu^8c0Kx0=IzzX{b`*HcTJF6u1pTnF6<= zc*t!S$`rT_B|~n*P^KVPO87<*y$(EMwGzElnrbHcSdUyW4QU!m!5-37l)^ovsVD_} zNK;V?`H-ff6!alYh1-I{KBTEA1%60V;kKaA4{0jgmeL_kh1)XJsc>7$vSQ0nr^0QS zkri8pIu&k9c~)#0>Qv;0GCV)lx-zW$CN8ZNF25_C*o1R;d4l* zBP_xVe0EmTecF?g}ydNPg1JdUfbXW$SQnS)BE%dOgwnz-_Y&r1?Uk^Sy9qWjOqdh(NsI&UETeE3n7px*U zTxUY-rc-(AS5e_iDni*5a!aH)?x1LM1i5O7DdPB4u?kwKrm zHTs}9Kg8egkElVp&{TGc&dRy|v_+?=&0ef*Dwd8oD7&acDO2=dHN7@O9fv9E4?z;L z8Ld&2+NqvVG4pf=N5W>lnHbSesY&n%3tU<@DKSrYB>2le%0kop!u`WTa3 z`|sIFx};jVS0bI>SUf@Bf1xRGT@6EDex~N98vn^(IHRv6=u#f63?+V;{)3gmiyuNJ zEh$Qrq$P#xg1|^i3fBcw7imf1x}+;b6D-kq7@tW>MAf)-6EQ)2YD5<=X^D~55!cG; zGg4t(u7k6ici1PVtXWxb1;6`1{)Cu)KbJau%11*?QAMn{+dwB**F)sl zMZMfqsX9;=sl8o5C)U*ZRG|Ws#Z?s1cgj>FG-C&|LoMCiE5to4CMWjBBk|}0b~8+U zq#J>3!o<3#GtB&`qE?AcEmT8vlM4T)v*B(PXHuiIGn`_B^C=pWoMFX67IDiWJ+Vk< zJRE6hiT3tt^1*C;MVaa51SJU`RA#5>LQ5Zmj<_sd6NzT$SjM9bEQ_v~o0-o$iMXyz z^K0})>}&K&;e8%!cE-)2E^r6cRe21{rufEX|85qz`q&ZMp zVP;>NF^aNeG;J01vcytaDLYuxKG|W44Zg)8<(_AwOU&9Oceo-xTxWiQMVsUTRzySd zU}twCUc+W94Y^6Gr*)H@wnIDgDY-Yw&>?bEP4G$rlp&^Wv&<1^S`iLy=FtNiS;>+i zPRYGdsaayLnpu{Zo?)3K&a_thMfi3@GoC>(7H_nlnokI_uRSW=9^~YnoF*sNy9bZ! z;6+Nx9K#-;r&gVNe5$cJ-D3f26}!i$4#rQJtjhL8;f$m^xO~b;(&^-LMidxaoMa?v zInI=4fgL^-L}i`FMn+!0tCZ`UrLV?a&QvhQU(OU!<1l9`$nl72&z`uON~lT&GaHdP z)Ig2N94cXq${ebq#$^tbkRvl|&zmZBV-{0XBQJ}I8Y3->Nvn~S#YE*u%HG=wlu*iM zl4>kvGgV_SWixFxnzEUy98OvL1cwq$Sxiw4rYt6EjHN6lt%gz-6O|)Lew#-&zWu5M zQ+5+o<0-r88bd0(sjE?y-E`%^!i}@h6^(84>?VII1Hp`pY{m7OORjl20c8?w4-(mkJZTJ|Z*672>CS$EWd@NII_TgibTuEqZz~N$?RSiG9?2|K4?d1=bYJM15q}KDp z$S7k)Ka5OMYx-eilw4D2s`_DLomE{w%nX#XkPX0UR>XSaz1CA&^b~I9ZduP}lE^jw z*3@h!$_E#CAU~Ula!c`ieKr&2mS#CoIdqlYS9ZfU+sP^!o9%>^%*}Sf++sXYpY4RX z#W_e=4ry2}Zb8j%OlLh^C8)EWvJ%xWjU~O@$oU`noVvJS4V2O zN#8iA%8eH4_$N2%%K_Mnnl;)wkG*x!vZose;4Oson4p%`y~ZwGF=|kxE6JF>>B>_x zDqTsk%h~8q{-Cnfqn3~FS$IEnNR~ONin7u6Xgo?2UafN@olBxNF`|9bC%=W;{b_P? zxEHQA(cWGaX>UoiN8+)r&c@DASESWy45oj-=pfJL4G@h>(n)>r=PM0hTIr(!9pw2u zeY_oMkmvJebnxf%^zj5R0`qdPi+)#fD+@B0bVX>RBl%&FXL>h}#g-9etrQ^qT}2A}dEPv$8jR0p5(AW!Bg zBS;6I@*q#h&YsmY)mY1Fvc?$8YT{~aWi?r2OgUGlLls$BOgS~avY5D4 zlx0zc)L6@6;&Q~X$(JJbnQ%Gcv!+Grd`(Uj(Yd7bv*MDRDk8gt_uhL0E%Dego8I&g zT>lSdD^bN%(X89snu+RH`|7Z)CYoCDX2)2oIyXD1r&hPwNmmXm%}r2pO`8n`QY%^U zL`4=uj_aT}A}W891mB+&oA~HTnykFf8C}{GGM@V~{{^}TOZ_`{UqD2*j%c3oK z^4z~r{-~n()TOQ$Z9K?()SB<%==xk4lqoA3Ud+EIg)vmR`c~;bN}O@QvdXB4eTv`0 zG2B)WAwTo4!xs7i{tVcH!CyelIb$L|UNx$NAw?ab1&xi=H@fdV3ac(&5{>(DZ{i~5 zW!UORC76rNy8rAtxb~bP-RD0FGbmGAH)l|6YQ>pB;qji8{Oe$ubi`78zNJ0dlX=0~ zIyi$)kRz-m5^q^rSj?u!D>CO0-89vZrlCgQkS1e{$RSNk&GR8mMveg`->a18P&88x zPSuR&B=dSk1GuleG$(PXYCdOJU1QE>SbR!tqp>UvcbL{UnGvlXHK6nqpYmt%YK>*2>7YjXXwmpdwH3Xr{-|RR5a#g#ssUmmNAh^{$y~v!2COR zd%-+Mb`;k{++OGOl+fPmEYOspy-s(vux9_NVe0&B)-PPjDkyHyO#2M>+A+JPs-GlE zOB6mo>O7y6RtiI^tn6BoiK@?>(vCA=pH+=zC*xDaH67jUk(Ou}4-d7sccCv9#g~L} zAw-=Y{LC3alXdg~$H6LAgzjBn;dJqxb!M%0@@}6?WS40B3H!VvdnL68vd=fNZ`4_c zeLj(WqMt(9=NH*8+J5jpugG4Jn`S;M!rw%&ubHkvgHLy7n9RKGbCJF$qrYnwp)*(M z*@c(%bS)1zukfx8mB zBe5QTVPRF8-_=?e>0D`hL*bC7qq+ZRs7*?_sb{DY)ZG0r)JZ9EQCLyJJ9cSY&t;Ek zQB){zP7+sl(~)d^eD*V~rY0&s;|@&;>d&~onlkYj*HkT1C<@`0NH3nA&cGn<4EjRM zVCB%Lt&&yPhT+y{S49&y((rY0XmLk-btE3qJRZvHn={yrzh=jsY|o5b6NOX0=%YSu zDeG+V;TaWjQarQrO$=C6vN%-Lh0j%V#^j+*$qB4Eupsc(Iz>K$uFFI`nWT+u>QI>JpTU;3_fkZ zryKVL#=gKnYt9=I?ab@Gz}OcUN?`CBgHJ;53ygh%p#+9zND>gw&xSi9oe5mrT^Z(Y z*b7J6V@o=tt^NhL($^MAw8ycBKWZz#a9iV0Ho{%3d!0B26q%Q;QG7vXtTPsmLCp)I zt>KO?e5-**%Y&VVV8&$f>aqMN2_O6qRxRb)wvUV(`fJ?#yvknFm|hs+Rq=G^wkBBT z_pA&@`7`TmzH6}Iz@oIUa3StX?}&7#IeRBAlVIH29_{T-Qy8wd=t>Wy4#gyfa#;sc z2AFn~Q_1S^on=C}0lhDp=oxHQ8Ycnvg~;F^*VA3_8*U+@y>f#&x_uSNU?1un)=`pr z)ofp^q;bJ`SjUR?isim2*%u|6n|iCM_2gX>P50IAG4{6NNLg8=xr`o0@y#eNZ!0b; z^%b`^mlv0po2c#L)+2HpeH$dw6K$Qx-VfBPxq-+@d7D!;uCbx? z37D8*eQS{>0c%JvpSPuWEJG)~O4EceAETmdd5uOoU(Gu;B$GSSXN@bOP4|Z4i!@kNYe@$a!bs$s|@-OH- zzq4z3XGN)s6E>qc(#o%+=+5T5dwL=(!=2IPVezpeHqWS)U+bR}Y^bWPX_)PYoQl#2 zol#MWQz}ZuIiB$RU@`98W9gU*^n|PC2OJP+I@f0_#a~Wx+;9~YK5J!=oBWOSJ{ogO zFCibPDbw{P?kAJvv{TqVjZc5AR!8v@H~nr4Tj;Osgce2mfMmwJ|7NxejWxyUUQw^FS% z6liK}2-W%9BJI6VrJR+78UwQ{tLIev<2?!5Enk?#RT28~K}WQs3)7^ypcz>b?Z6G9 z;kHC4zUJQ5iI>53^eIa-UU* z%OX9o2y!pd(n8m#jCSG8inVpYKwV`}M5N$RFY*(}zUiVCGn2)vv<0-bnn_5t*qjm( zZ+6hs`o*CdrIk_dxfWH+jK!f~XLllA!|DvP!|a>K7Kf=Mm(^BEHBwcm*5A7{8pWrx z^5-I1eyQrj?3<|P+0FhO9;-hIA-QMR&Sd7&zPQ> zk6DbGpKg{KYxYq>8><>>sw(SH0aaC1l(u$7d(kX+p`b=r#PF1b?B5x|P+d(>YHakg zEUG9aUO8G)S6$!O)DW!k_f!O$2Gv#aZPZUw8A10_MJvaY(SuEAeXw4%MD zNI6hkRoz%Qrz$ktuiHJNy0&gkHDxbqn5Ia4sd7RkDv4lKQ*Cwi99gwkXKQptMQIF{ zbR}R(S6fACb629XRSg%MG$&M5UlXeGw?^AyxLc$FVWS?enT@)usi~^5p~fHV#BJs= zbXvN)qxcjeD&vZhiqiQ@qdn1z(vCzgQfOAxnHj2`6PjHe;ue!o^-x1YU0q;KsL|it z)ph>DSai9X-po1DY#7l{?~kCmUlyGoQAMJ2)=*VjTR&$uy&9BqDbkL&$G4*Y#PX=O zqC`of(cc)Vt)E>tJ0v@UiUV{vWLKauP}fjZ@2@D))!4OuG^ulHnnIN#UzW??C+tP_ zO(jlAX{J=wP%YKfp@TsCb$K$gYEEr!Q=p;R-+~T9ROf{mv#YD6riR%yA|}*eDV3@# z=LD;9AWm<^mm{yVu3BoG(-e~U3CjMm*}*xr!KyiP{7Yl4txHlPz#9F2&TuZ$|%~tra)D&GFVmZ4lU zvDk^=>m|=CF^C<@V!biN4-Nicbwj-rs;=_W-B0Z-*`Vt0O5}E^vQ7%tSIWU+S^UwK zH_Z-I&aMw2W|W$uv!Wcyvmn&OAmUZ34AeF?s+Gm^SbQm}6@;Q85{v3;8mnuY>T3NJ z<%;5El}*9Q+J-uWPo%x2sYf}`=$}(RyP;ursNUb!)zcEKO|-XH0a1V^e|3FRU7)fS z9WQaLu`|>a(HI@{SJfiE1C8iN$pu^P;&ylS;=U}5kL1`xol?_OH>aVhakgK4krS?O z{tCW4tE($p@HkH-rk;n7S=BZM=hQSbRwD-KGquK!53B44djp2(laQ8k+1*v9a~QG2Y!mwW? zVY*jM!t^jt!gP44Pt6q3CTs&3bg&^yOols(9wx_x0+vVAlr0hF0d)kUq(<&icWW#) z?o`t-JB2$~*Sppwq3=O!k}*4=Ps)s7$(i*|b%~k*nxw4{>lLu(@JL^cb-#CRvH4-4 zg55z?0XquGoAz@RCs-U;6fixTAJuALgFyw;c1@##>2XB`o1#%d<775g6tGyP_wto56PW2b^yF1V5S+f1Gh z`@ak3K?ix`z&!zGs|)URF#mMHeF!G+XAq3V%FmSUcrXXM;En<_#RXRk<}?>v9hlQy zaA$#uy5PFNtaQQkff;b%u7$&{0WUE(>COdn*DpDzPggB(>%fiqmB;hYt(=>H|IFg=>)`yq_INhk#yQGwGwwEUQ-9;} z{Pnk-+h512_EI{B{LbS!1}iN%O(Rdwod~AflvC}Pi}NeNd`ECpf0^l5f&G61^ReKp z{9F&t`+L+`SZT5HGs(LE%-w>sl1JQQU?xySgT;!Y`k(;JS%R}l_cw6ZN-$IIVB$Pf zADY=4!2YwqTqiiaJiVXq0kctXR{3!%n*l$vYOz(}J^;=e@_{`65SHFkk&M=d9#i4DJRnN8iUeEB*R#U@Dkjue0Y~!r{BX ze0M$PtkNyV;Z0z63l8E<0o>Hu|=jCqW;H>QUKDal)T)Y(9D7<{yHyO84{NJ_R%Juh_t1#l>*!I56LI;7H!}VE*91ksX`C zJT5pZduzcxFBojH#jJc#x<|g?@f2aD#mWxiYQQXZ!L@_A#0B?lFgLs4?g8_d14rHF zR|P|M&|+rqq1eCnMUUraSZT5HA9240^N<7A4Q>mVN@}pNSjnrzu@IPV3eKuNAnsRS z{^f$3@Uq9#fRz?IdF^0+?Sgw0%z@jS<(&wo(*^epFps<7-Uc)673XwAV7}>s`xTgf zIdB&t&?mg=(Jf~2LiIua>*$MNrNzq61vvIBm=7E{l6TPGJf147v{=cTh+`2jJ%Y0; zmtk<1gL%V&BYC^PjC%tcSghm`cO;mTU2s)k<~wkYLf%p^C4Z+>t;@&ZC^%mRbLN}& z+`n+R70leX?74Fw?`$x4Z|9uV`22Dl9{UfE=PInUjK-?Q!3wsIeyD%-44791XI0M6 z1h)fB%?>)tI)5+0JYx%(*LHI5Z2V`H?gjrt9%H3NpRTIk6dYR%=580<1~6|saAfZX zU`BjGsamH?+ypR_TyV#LndX8k2UG2WYXEbm3$7JRw+rq9FqgaF)`Gdt1$Q%;-?`xa z1m+AY8~9~8ZTo8X96Ila7pf%*MW&hn-fkCUDK_uiB|&nH-&{5Sf9JkRH`I&nvUnc{*g22)vL zV7eSQ^504@YfL%Se^g&x1?C~aS(Ufb!2Mk?*kp@Y`H)bd96L47bN)%(e>7fKIenZ? znU?1%#YzkPT5%O%=D6S%fQh)^&IhyHfg?X(3g&84PW2znn_Ua$H-fXOPl6p67!S&e1%9mH%EW&GWp4l@>cc{~OGwF1Rsed7gu?I>|c{ z%n1%0^{-06oa4Yzek=jA+<~LGzZA@XDW~_}HDDIZboSq@Q}R4@SZT5I-|1k^altJC z)9Zq}2u!~NNB;XZm_Ipiy`!|?RO*vJ+pCX|# zHF=&}=tdYUR`V7IBHwm_86D&t*>7dX&%pd%aCUb58O&xE+|yvTIdGJ3+rfNpHrLN8 zUDEq-FejRFs$Xb2z6^|a4wr}U*4V3Z2f!~gz*N_B&Muz+3g+*Ev(k_9_gygmbHVN3 z0DH00VkM9KayXb82af#G2qtXGsrFL&je+?_le4|YoQ{4XR$8p|BYVriRJ-6Bz?|v8 zk-e>81{^rD_Zl!iGv!o!+hOl-!5lH4+hG^?e+IKzaCY`S4Q87QZabL&I&fs~ZZMM< z*!!9Eo(`tclvC|(hL{kTUoYhH^y5o?eRawr)PGoMp` z7CXPh!K`w@T?yv@TyQ@D^D9$MwU_L;1I*ZSo$Yu5%$tIg1Or zz)UgaR68gRiotXW&MFS>g1z4WQ%!-5<%?LY@@;Ml#-Uhgv9ot6n79k>VlY>_;JyRq zCoZ^OfVsm3w+_ssF1TmGyk^R&ekT9D4dzC=0TGLx|9-b5&vP$UTI~Gy5SYKX;9dsv z4;S2jh@puwhjhn*Im8850Omv&Tp5^3Q%?0Cjk`l&)(FljPEQ4Q1DI_N9MxB!fcavK z+l%bc#Iu?%aVLYRci_tR!*xF}-|yt|?B;DFU3s1kthCUtT8`9oAIJXXU~0NK2l1v{ z2##0|We~UrqxPbivI76L!JHz$9F7mw-vS;Jypyr>30h7pm`n z3FhyDvnodtxKUrr^MtUb`bCvTw^J+-^}5RG z<6zS_^E^*urA04K&%Fd@y9@4pFuPrFV{y~+!C39mrSZp6U`}@6XgoL*OpPh0mN)WC zBbXDK{fr75TSh58$P zVE!aHs+ZJwQ8}9D`74;$9OM!AHkki7a5Vq_DVT}hHS@DR-7kVU)`4q=ypzCOB{-#@ zvqJy88u{-A!C;du{(PT*TDP7f|NS1^eS#&wFwP*4?0w0lyf?tT=OB;L_5L6C2{zec zrQa999WPir{c2pws|R<6gFMo2xl4I{;I49zNB+CjrMy3YTkjx`^xNiA-VSgdI>;ma z4!*`+ejEXAieT;Xqt2zgMsR1jkhjvMyi36iILM>^{4ZU~yARwW4)Vx<+g-|g58Nj% z4aDnH2HdYAGd;5uB$OM>~aku#}Z{tRZbku%gURA0Rb=0hWABJbeu z=Xs9CN{gMn6=3EWITLwb1#^*+Gtuu_Fuyc%Ch|6edB(^YeI8pEpd=H3Fof?^Ft$NqTe6EY%+2N{m9-o!0a+|Ch`uw7VRKb zTI}*S0A_)aGm+N|<`N@kqTdg}{MN{s$a@0J3r5Z$kK%b3n6cLx>@bmcJeXo5XCm)( zFcBkXBJUC~Nh4<>?-nq38#xns&w+W}$eGB?`yu){SatbkBJX4{vy7ZU9@VF32!;v7 zk5xQJz;(Egmvkxb+u(leLf)TU%6kypQx5W|{J!H--pAlZ|H$BH6aO727$^Uo1a78- zJkoEGOL;Bex*X(D`5161?}y-Sagay)ZE`8^X>i*dj;XOKtjrI&6R&@5K@dpx*e z!76?+$Rq!q4kl{kO!VsmbCr=Z$Rq#V3g*v7&P3h|VBR!x26?34e%B-JvC^X0VIpq^ zm?|S@kVoYsA{ZtRKUV(h0JqYGylY&_y8+y74)VxlR!=Q#i?ElM01 z{73pt6$}IMW2Ij)xC$5Y&T%O(3ht{8^2pw+T*|u^+|L~3k-ZPPl=m38tuEw!=u+Np zaN}>b&kwS9ieRwG7OVUy1s8CTNA`wY%3A`i*M+>RUCR4DxSJg0k-ZyS%6kIb3ohjC zaw%`WpJ7~ql@`15ak5|-h##x`m;tWJg}jJMc`Uv zz`f)kkJ^uq!HoYo_cP5aTlw!OFjEC*l^?jA=Lv$DtCNTKr5WnA{lT??X%`%&&fcqL z;3%DCg25(R%sA?otOPe8SUWp@3g%Y9+1c?3n7`=cncMLen12b*$_~2jzf&;W3UhlY zUOq|T%;)dN-h%5)SZT4cgX9$phJpC8%HIlba~$MR{KZ_#`zpAL9OO~HT?^(m!P({8 z1~5-J$fNlCCzua(^33yX+%NJx`B-VO$~W@s7X-sV{FudGA@&~uE+AMtI~IV62+k_s z$c{_ET%nVfYR4(yt^@O|;OIOv{SL!^-!HkX*kp?tcOs4i!6gK1XGcGn?+VV&j^Bg% zlTKc$9c4)ONih5Wit9*mW~SdE*uPLP*kp?tNBPkXZmnSL?6?ukZvwfI0D2ZpS$MZKfYR@3vMj*kp?tM|Ru>?rFi=+3_Zr_XTHX$HZUfdA@*^7A`N< zj^lA`8khxwqx#xRzt3U+)q=q$Tg*7J;|6e>1Z!u<3t-+9oShx}-InJ$5GyTKcF=R5 z$AF0l&MH5?0PaD-kUUzZmcsc=udlud?tQ^p*+G7ph?m`!Vx`5-FF`O11ZO3W z%6~7I3w82R^S27zS};!w&dM)T-e&xk>xNCXnE8e5s0a5|!P?oe2F%rhv$NwiFn8(X zrP@L7^LP}@$AY8#mdx~{I1T*H*^bHJ=7IZ~VD0R<3e2^Fv$NxFF!$@^rP@LF3p@*E zyG~vzNBWKay|W!OPCgmj9KqVz5e9R<;Oy+^2lFkRyj1DPmwX%ca^nYLqZs$I<^GgXBzu>IoQF%KT%o3fvRKLsy_cbsN z3Xb|^X7(<`{?q>8oWE2LeLICS_sg~5ekNEeJ4oJxF6BK2ZmSD2CR@z%m*VdwaCvt+ z$KSzVjuxDiU&xLMFp^GQs(vScI~&a9g0re8$=*i=gH5)W*+KShOX1Ap?@e&;3)adG zs;?&AmFGDLD=l{U8vs);I4gPNm-E5Ib@I&pas`;*3C_wdR1fVG4CzOUm0u>@Z7jd$ zemMwSfncrdC_p-226L|9?EKOL=3)nVE^zfinPxyNX4syvF9 zQ&Tu|zf^;360DV9s2p{I`Ig}9{Bkpx-#N%5zdQ+Mt4?039aN6~3Fgp0a+~e^a*kkd z3R|q=r8|W)_sa@!s|9Q2mja}8J(&9iXXlq^!Mx@mkNkp{;&{elrG?8g_sbDr>I7%y z7b-^sf?)#jW965hrf}wdxdq%G1Z(9NO804(^427S#&z$4`9N@FjahyW=ed{LN}IHp zaa51*5AGPj+SySCrc!W<{|tVid9(AtLQ2AH_?h?V;+3{^KKNg&w9e)P1Q713e4yt$l3g%V8S>*?{M>_b*nSNyN#e%^mTg*6`SH1?^2Ep3d@f?`f1!reR z-h+9baad`w%8xP}I}*%%!CA!>&2!x-7?MYenH`iL_kep@uy%I*8_cJIv$Nyyjdb$}bCs}ydEkA6A+x89bqs_b@Ec<>UijL zA($HkXE(3BO)$&|8#~?uckn~bc1!_NDmXhk=7Bj|Cok0wnpf@ybDQ9-@`L7;Kfjsl zW@iV*1UQ+F#dF3yF2@1|?JVW!!R|$q0 zfgdwFD1U#N!kOpqE#UqjSSvfIfAut&9fGs-%Wg2^ALaI1$s@l^0W)22R`n41p%zTN z;7F>Ky^90`ge_KFIE6F!%Mx(Cg0-@P{Cu@bdEW*S@zGsS5;n2UAtQaO6R&2@soCR?oX?H4JWxgEa)cdss8 zaE5Un<=cxc<^2uZyDsD%_&E2mFavRFuHPZxjuEVtpGiNzOL-Ew`7Y%3xRiGRxXWG0 zyV0e*UxB;Jg}i57%6l2yKU~Ng^Mt$n$Om`0VD0kb6qoWU!8N#$*X~kY9Na1w@_yt} z-p$~C=R)3-F6BKB?r#qAsDCixNz5N$rNyrOI0a0t;H>h4>Y-LJ9Xffb^$WEhmx8%M zaFn`P{X+7-B^Ye7#f+otXxFB2=H>in;C?SyD?6y1Kjl*1R&Z}P$fNP<$fq!0jFlEU zKTicSLvU95(YSE|m}VW9>SwZJ6__goXXR(&z6It74jjF|@ExOF z4t)mC0b!-ZPF?`aIY!Pz-q*l<-N+g0 zAu8uL35F$%AFF=xt>ErI7P9FsKlwcLV zn6z8(804ANSJY0wYv8Qn#q(UAX98AQlynX8NBMgKm|7!e63?w*x{aJc9_jZ@Fh4SK zCi4CS<{=|zkVpFc9n6U54R)BwD*$t%ku%66{bmaWn{2W2-kd7?v=8to(O7xOEQl z3UL0*U_Lc+Ci)%zSG-3UD=k*`QvTM0S!m=;F0S7;{dF*D0Z00`!bl>M$RCQ`t3`>TqroZ_Gm4b>m1}!eSZ&_4LW(L?GarUc@E4= zf+K6p+6A)jO~GK3EoL0W!9T!#Bv?B;4txpE2VkW|@t?sjWJfuefZ(`1b2}D*IZJR> zc96YM!BD!inAt(?@A)a5c{|t(?h?UT*+KokAG(xx3%EbHkoUApdE3D4aF9p&Huhzn z7uaNrRrx&(+;M`nvX|ny3d|xSXHq^AU@kRshBzSoehlU|BWEJ-F)&+=oIxJt?}vh6 z#^T4y-reBFZ?lh6n&+AVre1J%aUTKG;UJIVJ_+VKI(eyaPyNoHgZYC4NA_+O3^v(f z757i2aOQEp72F$wwTc5ucjPPX;%Yp&Lj`LmuhgZy)4&BCCkeiXZuHw#>y3wcqO@;bn+bRq8=m-2oL z?w2m)ZFVW|DR3{jkoU1mc_UxLyb4xY?DFFz!7va%R`psbxPS|JVVCljfa`T3?`oIw zz7OsuqrB$cUfC}CpURtYS(Wc!H?2qi9#Wb|+5lNE=;ZnRMvksu?h=eF*Poxtk-YJ* zV_pR-Ej&NWxd50m960)}#d5(gf%swRvUaO*g}jf(W#0hzbHVa<2I-n`e**Ko;1vDH zErmU@I1k-_@Bx_P{>JT~U!=RvD398=lfldroRY3V9&t;+Bwfh+E||Mr$a@UTdoJXC z4CbgexE+dqhB%;pM6qD7$riKxrTa#zTyXSVhBI7n6fbdb-w>=-eoO}U3ou&*XO|x@ z67zR^d+F#wg25(RSi5iV3+Z<-xRV5{=x5-lUos~}9^%gs2gib&4{o_&?d-S|%uRw* z@=afSSvkKO%zC3d6Ydc(Pa8Rd9Udt3l3YkuxsMf&uJ0Sig&%FGe0IpWBieC)noch^kg6TAJhWt1Q++|>H6P#Us+zsX>qdXIP z-vcvtJGaHkUh>QFU@Ba2=YUB#aP-~!Zwm&SY%wdplaCZ4|8JL>|r=)Ah4{8VR5ezojV&)erzxTV~ zDDEFg;ZozCuG2k{!lkx@)X)B_8E4|>zk?gG!`{!-&Kv^f6v2_c%wB_^seNk(bG6{? z{Cq8#`vj->*&uH!vq9W+{aV6)c7O+UFd?Ne7Zb^OZ6XdSGeG4zUfLA z9F>o?DO{=@lVtb+a3t?R7aU#RdMt%YwU^TU zOA422FZKVnx!|b%c*g}t=>?^8{yAubl|) z3NW_|&aPg&7tCvdQ_?lmL-ZWR2ZCWn;K!^UBLDgRWwaN5Hq?`I>3neC5-iuRX`PXy z{?K(`ZqsoXe;DLZKj&^Rk2!Eu-#-Ut|97~KieH$$>cEHmoDZf%a7sIE;3(a>VA}NZ zME_5fN9DI0%!LjdrF%J;UkFa0AF4d!?gjIj;OzACyo>KeW2Hsdo1!1taU_`Og0oAv z7R*;%a2JEQUT}8$tpoEH!CC1?{ic_}eB>aH{4(i1+*gH_7CSqdz{CY-r{A~0+$=aN z{m6g60rP<1?9zQ6%>P_)`Ts`zVWq`Rzqw%A1ZSsTH<;Cev(xW;VE*KSdlJll1ZSt; z=ibNtomgqH)6WN{T5xvyEe3O;3vMl#+XZK*-xe@`7o3%T6o2o6neZQOhm|~vzZ1YT z2+q!qW-ymK$fLNr5zJkJv(k^!y&ufq1vd(RtM#+K-Z=2TDCbydvD2>>%vS_wWiRP> z1(@puXQ$uIU>+8noqqoYbI1qI`ker#L2!2ZwS!qDI4k`qf3E~{vx7YH^8;Ys5}e+D zI4BnCzx+=y@;;UyElbbuEh~|Cc_tO$yLcaRTa}&YbQKg7oLn0ShJv;A!Flz8`Bl;> z$Aqiq&JWL0l)1COYG>j%X;>+!N_pd0KsSxOyeji?z&+wnrnqQ3$WDsSPX$ z%?|}DPdTQecUen!Pu#G#e%?Y@Z`j!ws%{9>*UUSnfWqlLtlz=9(33~A0G{eo&h|I; zbbTe-67M~`xTm!{(i2~Kc4K$6b8%?iVs&F$b0XH>s{B2zHP&;sQ0;7xOQX^Fw65l_ zcuw)0Ix(*qujlZ5-gAWKi3A>~6aUx8T6(&AyV~Lfljlw;XzYf$u?u3IOA4yGI=W-+ zQFS_%^h#N1jF-n|uxOSS?}EfH^)K<(r+HG}+XYhc^hr{3tJL>Ve$R?N(OdHefJ+9ocfS7K$|;{T7Gme`OsT9-y?0RB3bnRBrpEoIMO5aJy3AghTW8q z=TZ82}I2fO4c^QC16jeo6_eoIILz$7uyApxzrFCho{{y*^5QM^11BDSAL$wFKP1?{ zFh7|50RK%2&3b29Jed4M>U+W~&DynWvXtB<-9>XqSXN1LIILM0pDqn_A20R&{S~Rd zcIS@M?xJ~YY1U53Te(vjXv~u?-NoYSa|ov6rCIBjb?jI#f<;=hIX;f(U-I1@Bc*Ng_1CdLNO2y zoEtd%oU=AC@KOHz1L*V!^YL@o;$iukvTr1Ua~aC}D9`7Vty$Q5o1GEB)>~{#>OZ@1 z49f_q?*jNUc|m>;wEmpbx03!kgZ(vDn)NYk2ze_vv9#B$OB^B1+SZ$Y7vw)$$x?=1q9V7ef~C(AyA_eJ?jJ|w~C6Q#a&@cAq7xr7q>z+}1n zadWA%;^z9W#mz0lR*D(PzXlOfQ@2XVr=YWxe1e@X4UC$lQS=C$xm;0+r$9yQ2o}hs z=H9k1gnD6;)E_DwGjHJ{6t4wx0ShHxL!5__V?)W0>Zk4sKDAp)2F3)Zu9u$L8N7>^ zt=*RdXRY(Du19u;2A1YY$zXnP>SpPwU2vlG)IWmBb<))PrCASozg`Fgz8n`!{x>-5 zLCIV7ZgAGS-mf3P&MYaT^0+j3>8GrCObHG&93PzZxcBmZQAT0)Afvsjx6;PIVr2H~ z$n2_}JC3bi^FjR3pjD0g2~!3q4)*1L4mqr_CU$ksOIYS-sx%U-#?VB8zUtT zMMYRY>y^ZQp{e)pI1D8U|BF0t7(qz=R1~tmuwAIsyi`PsrR1V~X)28SNE*3CX(yTetqMA60nC?Fe^@_A0+?C`ltqrt<6|6UJ!dFXCbw!Cl{ z55QxTt#h%(8=5Pz#Y228ws?sDAGWUN;n_dGFnk$t9=c0mtLhAb@zh{n=JW@(N&7}-1$g92L)ESiIZ>AKWc5PluB50y%!M9Fpf+v={flOdgM~V2igBhr+8o zH;%#~fq#Iks5NvGXX$mhv2Xlp5{= zsc$o~?GehhXIQrVgH<>@+fE>d%zDU>ZKX=Koe246+2&pS2iWH#>kz2j^;18rpZZ_Q zKFZ04fx?RVnM2g|nmusPtl-FJ z<_t_IQS#q?u1`1Qx@1UV&cHz@Q{y)BSv3I`4ip5a4lYE$0Y)vR9t3>*z+~z{pmJiW zi2lR1Fo;LNeahB;@FdUigO#lll&wYB;xQ7&7LSpo%Fz|dR#Mse1GaeF{1IDf+@SYI zZLCS$ys9bb)ErUVGzAAvJcM=f5FM+iw! z0DlCNOHsovoz&JQH%^R|2Idr?g<@Vu&-D-~xiX*iUa238PR}N3);s9AKFDGpJ=cSz zS)cTdW*wg$W2nRW2|BFktFB%bKTu9rN}iR!gZ%|tpvC)W^jPyYASJn~fmIhD=1Ck? zKTyjO7e#;dy2OO~{uzNQ>c(vUI?j~j{#9OZW_95h?`j$jQRP=4A*spu!*lm4{O~FQ z-B$E_CR1}eAn^v4jS}lHG^}gFdLGtpssCiDzYBiq%5U3LhY_$hpGJ^VstXIqSQ;71 zHBqpCbYNrMn7m+eQ)mEHS1@^2c`$jtKbY*5g2~s}u!6cRqF(qWG~xa9e`0G6Yo)35 z^IGD|*!mY6Gf-BC*wJ5LtAcGw16LN{BsMM{gN;9!?!BGwMHY)O2ijwd!PabvqY%w5 zm-=4)U;HGgZ~Yi);9!!%{DM3?49%$A&EUOwSjt8mjChnrsC+a^SC)4%El54IvQza%2 z^5!ElY0Q+|hC<}Nt z((ACexI)FhG{)nZN1iTVy;doSfcUqx=7q#Wss9U7@_ursM3T-$W}a2Rda)r?Ipx$q z_yKxX*C12_-aE@f1Er9NVa{pvpOlZo_c42Whlg?a}B+WvY!%hI*dzyd%1;?n`@QU3Q@ znm7C_YRXsmBeIb;xugim>r#gEiwMGHqkR&Or&y3Q%Z;kZC;}3d7f%}9L99f z`Y|DtTWYPCqow2+?86y+xU?1#JxNUEVjed+UhO-Z4AIM!A-c&_F7@I=2vs>;P*p5N z%=p9d{1W0t6EwH+h64L;VOz_w#rr=$z!ndwUt){*grww^G#!-^Qm#CJ(mI?yFloWU zMbf2juY-TIfv~#pH`tS0T}boip#kzfx^_GN?VWfw^?m+IcVtf&{Ca?$?z!uMUN(WO8)Rl!{tFT{d7^bDFy?0#4k_{oSyAbRM`9N|r z8mkYt)~tRZ;H^f}qE4>d_1L42KKkLS)yew<>)#rQ`g+~ES4LD09ON0X<%EYXVNIHjX$c*!NzZ1Rr$Qk9-*3p@}@2pLv3+OSvqC3cF>)Lj%_p zlBVeUp_!HxU!NQ%Q6Vvst=zH_V53jJn86SYLqc~eGW~HVGgn$t!6dO z{<%MKnzU&>&GNLZr8aQYsbf8f52Q64y{k7s5oy*FJ%^*kE%09UXZkaV*-FghpfA7P zdl?l!DLF1gPGI9h>Y%OPj!t9O1kCnO{~B{3Z|tPT|2)J*C<)8uvH4DF$W|wrh=-)9 zxlX3dUwtngnVjPKW>C#W=sfadj)kAH8{>Bl(zD=XzXCTCan8OzXIgGn1(EJw1 z$HRU(f%^V0!|t)gJEp+|?_~>MpnMjel?x{K-#BWt2av`y)7R0!T^+QYr#(mw*a#Mh z&tWT%Z5@lU!^d6a*y2aeQ1(%rqN%*FFdqSVSn{Kq;?1Jz3LqXo81?xv@guZx=)EJ5 zhfMfjRQ{O6`#9zKz(CbAKmR0{T<`tPI%(uX*p(MpwbSQab15_+dP2deD-vg-#vV~! zo|hPdlUL33#dn5q2F3Ti69+1v?Atl6H$Slc)lq@I^-orhd>GJxwjjqT{9)Dnlv<2<3?slNDsp~|{|_g?txslK;-ltf`0dOG*63k;n8 z5e3q~L04A~Olb1nn@8wC)02H4jq7|JQ?CS@w%E5 z;@~an!HqmG@+mLcSzdge{VS6+_aAB<>2mh zmF1&GBtGP=t~>^&w(>pJLMmfNJwW%u7O_f70jSH)8+y!VNCWdwH;u;>#~AO#5&T?n zk(vyrYt9%Dl1jg3h3GhJJsE&N&e}i&18xXSNN_^}*y71)dlY?dck8;okdu+#}YX9v7_>+g+mz6EL&@`Kc;n~<)!nQ8K)^xUY zjdJuBZ1Hm+RgS)pGu>$RXI`L%lCy>lh~QBy3f(qqw>w5A~8)PR8lV z*np>u5d-a|0T4TalRVcj8PdR&l9uPg)1e6UFEUM;4Embt>{Mo zguI~{DApXsV!r-PslT4z8G-PTJN1a#GYV>o|H-Cw*5b_M$U^U_BjT8OIm?HgiFbBf z#Abjna}mcF5`n)3Qy9GRVPS)A>;44qc#&o|FhyQfPLn=$VkDwA#=&G0o$X!y2$I3& z1)2`RO-1WZsUEl6yXFqknr4LFqO->W#*EOG#Ap%6q5ckB5$y0vn`#cFs;v5oj@_bO zl{+=4Uu(-xME#2C1wMa-$%b=wOMMp|nvd)1=b+zMb00~xrb^GxyZ6E>;>2> zO+|INbGLVO2mPV<5;IS@=Lpq3r`0F@1x)PesN}aFf*;vonAb9Q*aZ3XmxIZdq=5uf zy9jIa&|u&H@`K*052fTqxU9ZA{sr`Pg{C6M;GF%WsT+5UmUydzYCjK-*@pEUIOjuh z&c>Q;=JI{-scV;vII)4V7K} zHkPxvv|0*5$%~*)V%zo`$zk`AAS{=JW_{@W`r(j|J8Y!BhtOzmS~kV><{$5BlBT}_ zNJ{R!o4R!ve&8zPF6}))UeVNhFaO;bTu!>fa03wTlOR>4{)=!o6D|>=UFV*`Z9Zja zbQ9Y`&|m7?ogea6Jx+O6nH=Bus&^ppN#D+q%l1QuIN_6hhq=5}r{d|p4{*%`T^Urt zfxGfaE%_p|u${#9lt=@M(7V|v&zxX5bw8$Km*L(RcwpU5x(ROCXt@WX#7^Q)S;J7$ z!{X##Ort45^IPp7H{uUz;0S2oXXC)Evp1Dk0i?cBrcoE`~<~_kzA-vnNJC8rOf+1)Sp^)>Ijy5B4XEa z?<2ZU@(~0VeaK4ww(9=LfxD<5h1o}pIUeCyb@DA~);XKJt4~E?@2fb*ySkl~`UM}d ziLxTP;W3F=LRVSbUT_%C@*uK&y`1IVuiuABIaXlkt{YtCHrjq1{8PM{rjJL_^fa&U z^0CvVzN?`dATEOW7b&H>`ihITDdtxrtEj#^mDhK?z*?JMu9%OGzGD8){+j#XfhWAH z+h79oKod4__sbr7-~nVL^FYn4cf6}9Uda__)+ZMt47S8i4<_gG5IYwA&f?9u-U$8m zu`m`#WPfalA62tvxA%MNf&;VjuRy7+Nj|{~W-z%$NoU|Nq@#v9FIxo=qm-@BYya3E ze<Dg*A1MGasC*lrGz;iYH#RHqhPWYGhMZlg2{%-xSHzocvtfqZ@%i= zPLmI^AvAA`CK(kMCT>37y<0Rm2g)tRJKJx?UeUsMSO0|lVcyE{W*HY6AZi7P($s@v zX<}eaGo4LUA1W!@%ax09 zxeDz)-QFoB>+(fChHMLYYhIxy7+1V6!DX!7iP7>UE~-Uo1en|(VSyn+d~Dy&(cU#b zVTtTdVSvok%-@NNJ*%m=EF~L|;O6+}aL*v(VKMslRrvpmNjoqOIky~pCW*!gvv|}x zjpnTrjv|ZdsT>qAG2$*L-U(pkiSwhhtyz8YQGHgDLHV$=fT~E!%`tFYb@HP76uV*D zZ;?Pq6y1eN(Y+gcQFPV*oWA_hWWJ{S29gir767&UKBh0fviP77A76rjvl!9dF#&UD z>rM%c*qt~XZR)7R->D8c%0Xga_k*Z>&{4V5`;9jdOX$;59ds~7*^bY#fI1Pj(#DQ8 z^~wLT5GX;2ZI^aoKN|}@Dk77`2_IwCA0-d5q@*(8{S(-#T5qRZTjQYzpY#Z0YXZ~i zd-xTTBiQ1Xb?ClCp4wlrbsp32Na(@$t;H6L; zLNIQ}iurzA7-Du}D853wS6nF`xN>oNdxv5$e>-d$r91}yhDiLRp)mALmWG_RtvdH8>hP0>LY*B$=J%0Wzq32Q z;BwX1{IGkI?50%ROOdnOd5U%$a||m{sH(+;8@qV}9f@)5LM}VV=6HGOw?8T?nZ@V3 z*p(Z0od8q7$$;{7RX$qyyu_jC4K-l~uK>Lu+DZl`JZiOj3!WgO3Ie^RJ-B({OSU&J zuzMxw(Hha@cSAh)89l_u>r>3|B0w;y>s>>sZ-D=W*A1D#9f=1VP=e2Z>bR%w5ps{Zh z!dZNNm#39%{D16y34Bz=((g$!gdv2?5Vo)g0|bbykwuoEB*4H7OfVn_$`+O&C`*J1 zpn!k`A&k+eSH%_dy5Lo>xB>0~G=PF2Zg^FUD_~IL#^T2NSJmmBGsz?&c<+7RdmrLu9rPD7@=NvhI0SoST{@PzJKseDdTjQ>}n z(eANXci4YG^VjlFRYUTirXQ37R;PJGQA?<)ya5#7-Dqi&SLc@Yj!4s|-5gR#Fd!1W^nlHnyX6p3!P zv;Z|a{Od4Pj^03m24dXHjkl5r_i%(@XXi78>4BZzz(Qnm8yzP^$Kt)9%Xn8XQcl8o zaV#pZ6V}NyIuCaNvSyx#3yRvTY4VSXfLAOU50~fI_6UES7ZSK+=1Deg{Mi0nLBj&6 z>eBhBCrIZ@1~PlXS^j6`bGH4EAJc!Xf3c&D=Tw?Ko%|bnW5gu)s65PfDLZnS`|@gf z1BJf4!FK$2rWK_oKxx)qBrC458#zv2-WaDRWw0}+t}kz*v!u2!FTs;iGbhTI*TRc= z(;Ika*}?>zf}mR~$PXiU03tBN?#su2OzFP-;fRSXik*&?U!m25(#d4GpWqi_IK4RE zJ(i+i^n%L+5S{+ZvEjfiC?(5*C{K#Vp5yQ#|LK7@ym|KYyvULyJocp6bK-n?FjuP3 zctpa94D}Pv7hAb}-T;c|u@|K!AQKFI0h~d=$e+hw!BjDY*jZ9$vUMm~Z=T0_S2EhAN&Cd`7!~ry2!ZzhvHQH{Ax58#Gw+G_;$h)6ZG8ql4Hlvx?s|gu0qpX{fVO zt9(|HtY#Tb@F@W=RubD<{n|K^&253gHnV=%oK@3SO=`9h_X&-_2jWIk-9J9Q+n zU<9=iZY6;ayTSJDNy6O&2Vj|3ThBM5=1|rMx8c4S+ zA;gTW4-Q7INwl2lC~VG=E=Ok;Dv%P52p@Jk=9%&<+CZvm15-lVfDgy?QAsri28sej z)Ciz*XCr6X5JEPDkZlS9gL-HqFo$3sfAUkYVG%`*AQjmuiSwa+$f-99LX}2`a_aA1&8|(2-#| zDhL7iQeI!sl8zA22}_8*wlw3Z-9~Zp|PkgvB#ETn4ymVto1JpzCgt(7x0&#ac z=EG)u-aO0?kjo;JN*n>;Mhr&)DiKymaEluSFTzT$t^-yxXbNK37MOb5^RWJCcHzAwK+ULe>JxDkgJKnpfZb^7ffPfua#iw?yIEfv6IwnIiHyv>3 zu$6YI>8DA2fJsQf7wOaPtO%aBY%$=D!GKGKl}nRKAUWE=9h(%W4e$BS9r^wLd=y)c zr~EZm{8|$S9P=^0)6P0c&2)zg-M-}=`4uN4L2$BW&J{HE@$T`PA-l)4Q=4OlM@U-W zREftEfLSQGgA7F^Z!qSft9b``5heksC$RKYl(2XJf|*&3W^4A)iJntM z%lancI1pHIUv>EcJJnXQb|N(Esrwn%6E#ZMepAt~aabGxa)rWuq?MhPTRY?j?ZeS? zpQ?xf&=}DAaj+B=-15(RfkqzH{A2pm&57o=5A{lTJ4-$%0^I?WTVXYte`vE;Z5<<3 zT8B@A-2uKc(s<8YC~3IyDgQC_D#~$PRRZ*a)TC~wN@}3yXvo;f!l5WVP;PD!xTFng z4MH3&jy_mtrS@6KBY@Xc@(DE>2mor8#jo-&3xGPi;|^?rs{uhvpi}u~(I8CsUC>eY z+vMDj{B2MGM{Z*pp97vGDk?e4cpUDnM`|L_wA%ki%FT_wE1iLZUXh<}4twG2or`@- zxMH7C#nXV*zJ?lfNCM}T8MRvSs6}VD|HTMl7r5pY7GBBdS z(2Ow!n*q?{^Tt5T2!J&i8Yzuzi1?f7EMz*@v?J%5R#gvZd{8_PW%|X`fL~0`Ts5k7 zH~@9bGR*qN&=8BXr1ggNh#7V0EIe3X;fPi;T^>ZhQ{f1Qr5)y559g&o zwO7Y=k5ZpwpFeaqHRU+2%ctP-(~jeMKOUIv5h5O|O-5Dn8K*jom>X|=MXXBnp&8rGM<8_WQk~+ao zvuFJ8>v(XiF5Br&L(hW-6V$*DK+DRoLzuj|kIOsBcsHH?EOgX$uZ9=xTKr%C{4zul zIp-N37!2_rcfP>Ti8EsEwRHY91B1p!bu0j@rZJdMF*bMS768Qy7pgdN>6i*_C_#&+ zM42O6#>zN^<1P{;X-`}6Rsw6YIDm$DsA6@X6;EtR2{xw~985SN`?;gAQcgd?49)#q z^B0CGcd6P%#WadNK%7BvAI6R;D7Kv1Pu3;(VITCjKzcFu0#V*l@Lg;2U5i+2L-@)s z;#;8j;<^^_ZHl1P%-5GVrUWWfI(|V9NndtqKe$3D<`T#ocnzTo^+Iy_YqXvUI>wD1 zZ@Gp2_JcFFEwdT*!SXO$x>A9})9Vr-S(sh{ zB+I_rfMgN+8IUZp>7_@q@J^(qHuJk4D2G$~8&E8VZ2=O0tW!X9`6>BW$y2)Pq5;Rt z&|!H%lEzIyl12mV#nulZ=l3Zm1 z36}?egv;AN!sSyS;c^&AxSRlzQl1C1yU_Lo5`H%TNhu!!s>wCI4@k;;5J<{vLo1Z> zdVr+7mjKDrg+Nl?0w5{xE+9#5FOa16FQ6WrMjf;>F&cFP%HS~a=9DXiCIZQYNUMQ* z^V7S4dNJAvBwiY?010P1Ea?)~5J9B@y^sL{B_0tXGBhxKe9J+~e-?8)bAKNRMH(jD$Q(0L3p)aK=^ z!~aJrpMcllWEu`Bx}U@xj6+lAW!#`U4(pVItW)@|iE+gUpa~mBUixvz<~kTTadmC_ zZ;nlMFkBg{)BhN_I_FO^-RI*NOMdztW_AvMJM6^Z&Q?5S#Mt5PVsdU*3*>N$!5~WC zb#c&eQyn|AYypId9 zQ4TA&)0WU&rE5%7y&GEZ$Si;&i|es zFme3$a}X9Z3wP&cF$`fcf-L~*#$mSr%|y$w8TV-Ph(@mft>bv_0e#1_!goN+nc`QC z$Yv+;ngU(K6eEFTG`$Q+#G+i}iz9J4!Br{mDJKiqJ!qltAE-LHV#%T7eVfQid@xtj(7yij1y zN#=oVcXM>Y72K!W0Zn7n9q467rk4XT_T|G^N{)fx-G;WGh<%(nS(uk*g#O}XoErXj zw*u4anQ1c60!D*?USKqBAPm`3=qW3s3BgoK=NF#O5x3hil>v;JMcw`_^oBh=W~nv9Ljwb73z_;Lr|RQ64|^;67@(zyK`|{jS5k_TT!S3M;&@ovapv#fPPKc{? zGuRZ+)=th}*l3Y^FL9|g4hQ;ikd03|)4i*xAUab@S6$MXQuC%u97ikkxAF!&PBO%o zyXn%*ch2U(4(xhnd3^buP;MhF<+U7~qvbRPt2AKo-`gK4oEw?~HGtDd;rYN0aCPL; z$|gN6hPh3NcXr^_3_1{W%%e133fa4GuYshqzDa4TL9stsJzfcs9{5Tu4bN?ms0 zgZ!lW;jPI1Go<`-)#+(g&vPhUsUyD-8jHFZ&1~dDRNGEd0NR-(+ty50J2F}iXO?g8 zJJH_F2JNpIsE4gf2=xORKXU2(U>a|i=BJ&)kmy)N7qzVTHPUe%osq>3sy{Zr|4Djs zJ=;3TJVpbuuQ%TIv+`3Q^4CL`$64s$LFfY>V*WA-E-)%1XznB|`m_%>$I?O13_i@N zkDcDeBzvv(=UBOn0?o@p_WPS-zZwU{ao%)b;4Rstq(kHCthi!4K%F(kRpO!DXMk#- zRq`UCohmwVijO9bKXnRaC^7ak`IcK6+y$IhpzfW;`wsMYPZuYo@!h#HfR&Vh^N3{H&cjmV1684Ti^qWE z5;%|UAm*7gD2z=Hc<{EKH*!XJ;FcOdPIyS(2OrWTdN&O&Z?<^@UhD;>!86r^|EbBI z-d87MM6KvkRG>CJj7kkV2pM?K1+ftH_%{d-iIf!yzqPj!6zPtj57J~WL{jb{n z0lhsLi#sHegB{FIJ$d6ZN^o;Hq>3NCu_N!m*p0v=Ij9S>uhP&k(i@Orp}(1pkp59V zKc{H;l<^?U04<}z<1&2SNM<)IoOqQqaJ14G{u>R24RuNe zsR-n@u43ShD9Pj+1nNxk_Wz=adMI_sVDGGC_ura97|+9G5ZAG?^hBagcYd1Ftn>6# zQt8bf?o@hxi$~t;v*NWev{Qv^bjNRR4X&~m)e%T;1X!-a9@1zpknB{^Q3=_pqWApB z?m>GX**zEsB)bArfrK+zrPia`ZN^tXa=yOCsh6ClZbM~s$2>jjb=#GrO1r>%e_r=5Z9pt2dOfa)-MN28XQbA|SEplE)I3rS4Q z*8)ji=sA&r z-6Cl$0us(gfP`W=nuu_o2qd)mK=O1SkmUKGetH5(I6Gm5lv?NjB(!cIdAa~dxI6*0 z5dUq)PW+X4`+$1DENwHs0g7W;CE&ME3j~&9nZ)OG=b3wpvxF#0bR;y7SJV(=$!c989fX%h7p~L5{g2g(Hyo* zqy0eRIE?nN#fD9;;9|q(!z+PpcmV5aL48MlNH zd1(uC$L9XO*IUG6LYc{;74NeNW7%Ax>QTYydQd-c>se_T3 z0SR=p9a`Or0WPey2Dozi!BN&pE1SlYd(!s?K;=MOG~;C2z?_J3;N%WYzF`R}3DD2} zb`h*49&L0+a{YDH=+0m{u`dShi*b3NdBZ!G1!YTy&wlv=MWaAixLsl?(1c#tB*W^) zkxNaA&TI4v-m^qXb>K>uFrwowS`23>8QA(nGB|xWF9H8uzPttY68MuSagh2!m@K5` zZE+r4RJrn7$I98PU9s~$tCjxxxULKZmHjl5Bo=8$N&jLwvu&n#x;{R~zXAKVDWZm%oq z0*&TrbiGEO14(nGJyeh!GK+~%>oAxB+BhwevrRYL3k$bYRmQ;>sp%62Yz z{b15CH*zsbl8u+HV3k{2{plqS65Sv~himYD{{^NJWttV_MSk6I@w;5M#c#B6tXvO< zFoWB24iOE8i4o{P!8=$j7rbbBB)yD6nr;ET zelL}`I0v)u7ou7AI6H^&wwxb)ZzG#X9J!aHAs(SCz07d}1}*q>s%=baec5O^8FHdu zb}m~Xr=mH~6~^RsVKeRnI-k+sfkda<1Js+tXmx&=M>Bfek$9L~3^bfagByWlzMRMzO1M*;pfd zap;3PaepxDg9~716)g}`9Im(wzKlLF3JL(;YM&yGr_hD8w?^x5V^5rD1m^Xs1!m5q z#N;%Zj7(!plft}=(QXRx^{X3GY+}L71QLBWWK`|-lWOu z5?4$-dS1pAqbaz*UaXCLg{zAhnng4nQmjR+`V19nFGNj9*P8yR*mrn3Z}2*4XJ zrcuo6&_*q8j6xgfRZ@cn{Y-j39VwmKU*OnWL`GRP4UqCr9RbQejN0>(l{brZ_LTZW zwFM{C-DK~OIfG^j@o`xNBt9;W0*Q|c>HUIU(TGf)^3toXfga_V;vD2b<_EF}$eeMd zMpx;lR|AQ6;2I$D3497jUXn<2i}(b-0rVZ~&~F31&FCbM+}B6de$U@h3pnhNLB61)79g;gSu1 z16(?kjNl{$?$+eV9_<4PZfy&BU1-IM_JF`(R!Pta-= zNh@79nbh1=`hzz=<3*@2xIksjraud-&~>w+>xy2>8j$i##>*y7KuvO*O0M0iW?QZDst8OBRJsv zxd^7neFFL;yHhIu;{|9q)4;)&}a9s9^(u zMCB@br$!a()d^&-yn40F8miT+B!q@jq%an+TY61p)J6>rFWlpL?~gf+u^z* z>B(v26KS3&Fi?7ag}wMjVy)l}jG-+LShAWqS}a3q=Ie>n_PM;Gs3dS)Z;%kzWOCGm zYm{6EgU)h4wwy~2GQl@|$r-yEI&we3k8b;Y>aE&%E5(uB2*PT6L77b+ zk{t|ZNx@Rf843|WF5F9x665^zAoS-rLG&X!v%nhIX`u%vv zNAB+7Q3qp4*c~6W&@X^b!1loV%D)O%NLY4%Fc{F=S{Lz=25kL~=hx3mOP-C&o6RkG zF_7#BtpSq#pgVwMcjq}E*$;XdNcMw{1Ie!N??7TfT#6b(6pdIYjKgZFrOEj^La5kTrrD7&FAt9gMs@%=yXYE zg7=BdWxZ*0ft3aP(|3x^<-i%)Tr6`j*;#lvmAM!{c`nYxT+H_#z~iEuy!V2-9<@fy z#jv{sPZDuSEEbk5lvXBSTKdZb{4|hEyDw?9L!)9Kv9Np(Bo-DrlPx`D7LfEBzed;S zr`G|=#D6Q0Ox`a5iG_vU?jw^o^~dkf*KEf3Kr)U00VHV*!4nC)RQJq#fMm*k9!O8w z;VmLb$awk5nN*kZp=+&iWy-dk?sMrgnyx=RfqasobRBG)S6>)V4lk?%{I42b{>>+`ma_zDtewhe5YQ$@rkXS}(Ph3W zmG<+KeSx~TLBtnmg1O%p7-CNkZ1d8Yg}@Pb6!GnU+dKg*A-9{J)Wjvzo08yj4E&9T zP`qN>-=AE}8>JoF?#ij_UGYY$FRxa59(177r|-aUQRBs%M2GwItEZqBVaml|LvroGkc2dl<^a9bod| z>!^c#I_je4f*R$s$WND7@$=w_4i$H$ympo92zNq4ym+B4Jg#Fg5tBkY-J9~WBbPQv zyeYp(Z~&LqzKMe`X0}RM8b2Y1CvQ5eNKiygi9naV3a^_RhVSg85<6+O>3I2^FEGsR z#mnX_5{VXxcvr+hB5_qn#2b*;(SZ*dz%Z6bnn)yCB%=AWS8d7inm2lBsp%{%?Mb+K z0_OYd=mdc}IT($la0S&*+7*sjq58wVlFnnywaWbVY0E^9UZ z7gTEM#8pYy&Q8S|Y$JLHcZ~wQolSd_L31SSUWQxFT#RtJ18FTe8_?=bEp0HMk|_sA zg2tkXKEmk)6SR|tU4d&8eC5Q>gO??LOhW1fbL?6k_HarA=MdT4qgJ4lD6OBcW?Cx+ zz)I?bxsrm__1|^7QdTMWt~U9u2H(}3np&aBFD!}N%hU?ZvT^N^jcYVTa-`smYaHaD z1ryb>xnN4A&1%>w&_vZmO6066ik&}vK^uk436*qi{kt~;#`Vg(f@l-%6D|odTD|a zW(c~-7T)QxPP)q2oM;hzgf7wab@+n@k!(-OFZ23)I_x2!igRE31UWr&+3DT%YeP4OMVTXZC{74d@03_Riwf25pr)nUVDw# zmEcgOcg0C0;tSMF&+mx5zUPg44^Pkcro2AC34q;~Qo5k7H|6~Wwr(Gl;CR%(yd4gf zpgaeMD^ku`k-UWcEC7iPD6EJ`Eyozui9=pP!L3)xCoPmR)nTYX3cKhI)V8WE3O1*>9bAY4Oht4W0xJ5b zb|_jq4pmc;{3^gy)Iv=~K?kiyVk|sl8VehVvCttG2(|#<%_d(uXCj9^6kqv8e4kW& zWr}M+;}T8{!|J#WPajbe96WUI;mfc+%U`1^mh)F?ZtH>&nW@GB$xJl~NM@>KKx?`E z1b}1?B;{4+z|VnX4y*;K${ZL6By%9`!;NHGa^jU4XDpD+ax~w`u=b1&qxnw4YFTHw zBqXDUGCj+M%x5}unKf>?S+0!HE(z&zodsvPQJi6O%ddi2PR>pUVZe@K6TDfr-(Me{ z!E{2$D#vs}$1n%&7mkl|@`0Vv{dlWDWt&tVlbVM9!W&fnm+1;>50*vG0`Q9QG2WCi zwYRbxQy9DC^6iy;`L-kX8s5?}H>GCbhipm(v&FK7x3$?0E(VfzFa}84!Fxcmu~Oma zLEDHtdWe?HqerqSB+`<5*}=o?;qV7IqaF?wG+Ym#gQSB!d=mW%)5E<85BBhIDl#tk zknydf0Bs+b2anY9g9lpSJ?y)T z!GmhJ{NN#jLMF;9gTnPdGAKL&B!dF&E6AYmHjoTAzXM4#ivV9~X5E0sat|B`B;A*8 z9g`trI*<$xPwTKk9cH%<8Kkw9A2K$C4JE}!$1OKxlu?Z7RSeRowPGxrh8Qv^(Tau) zQUxkrV7f8io?T!D7ntZm?z0O_)sN0>fhqmy|Dgq@?nkK=^&?VQ>5Vdc6((t{G$JXp z4DYe435V5H9JrI=yn_O#@opGz;2=hGcxdR86_w9jInYjXPDeYXx$A@S+UX5k1hreu zrxL=T6|P+~RfU`{ z)9|7#w%;8CH#)xQ|JLHVQc{ClC&;#g84j<~8%QrDk&sc4l<4tcXSf!o8ruT2EqL5i zYOMSsHMWsbV}t53oNHjOPXE+Yj~${O*Oa|b{5}HTC*LJ z$($~gl@5;PQ*tLMiva`VdhXUk;FXa1gP0aNMQQLmJW2P40IkuMWB2mBvu9G||#n8d?Y4 zAbaaDTEuCalMCd!nWf8`siJEpGp%vO5@p$iq`M%M$1^qo-Z1L}J7(|DnrSSj!Yf;T zvb!0$(GeM&(GloQM&|>)$Vk0TQ@unxlueALZK7$bPeCgnY3%CUAKl7a3XUO7y`N(< z>?q1Dx)j5s3t5zFnPCpXtg))n2G8~kHRZQy2aOk zj~6Z{D+Cwx9Sq;5h+%bg_cXb5A<#&}C68~St|Gm@lmaJ2+DbB;)&-tU)af&q7f1t*C@q@09F0qam9ats1u@6LN z$*AVdIfXi7Pitp{U$Q#hrsNu@83vlHQ#GB)$6@AnDz=0ZH$sORWTvDNxWh zAnDzo0IgxSXzD(KBGG@vd#fGLv;34yG<2fOW?T*=9rm*hYo;ft z4tj#>33Ntd#0F$jk0;t%y)#Vc+0F-{(EDx9cD}Qn4;}Zv+WGVuC0e4;4bDyYfKm*P zdzh}1QO}l zS1-XeyfmZYe{i5bKq+MM7CEJmsZ#*=6DIf4T3}(FX^SyY+lg)ZVX!?SY>SnGOPizl z?q$LgdlC8R%UA#f$n<)!-D0xcXwCHcV5T3`YQV$b{)lj2ALPDIo!6kLc8hg#M5Jm> zwM#at>=e1z8{l@r$_)jo9=B2@vm$pfaXVn;R#;tb`@oIsx5!<{6L+$jxX~(9Bh?eP zvLdA8c$+v?lNFSls$m5sR{>=OZHju6dAk!(S*`qPgvq@9Hz1j#@6+f}jkW^Gy!{c7 zxYW_oF_-6P($57o1d@22fy7IijM}R>9$9(>P0+{>BouTqLgsf`xXb+h3Xsh2(U`X- zELP9uBXwBt6vTB1lSS#xI^MlNdd^Qmw)H%&*99(XsGi*m!-R%EL7u;+xEgWShlzW3 zd^tP5G(fvB%rg>rOWXg}@kJbU&yFuN=jySj7(ev5WrkKX7Of8xx13^>P~pk#5Vfc| zcwNUTP&=S3M%{rnGqRXT9Gik>lExM@iDQ#_Pcqp`@LpUsms#v2#Q84f*AwU^3uiE8 zWddiYz$a*K3AK|5t>mRT6y{Fx%)|ut04GP26-P6zDjm**%fVAm0C)G{uHwKucxhFB z8)VbqbDCcQm^k15tcS9Inq3@5b+sEJY}^f#j0M@uFOQJvrRZ%f6u;sa;0C+1L(-oqRu;&WGUi zJYJQY*FOmsj67`7=Vc_*ZHECTy_0;%pU1cUip}<%)+>JH*J@y&o@_v*r=f_vd6yDR7W5?mS$FLC$=%%Dp=)y}jBg{R-v zyUeY(*umy1+aMPz3fR``ARDrgiISDM#jYXWV&_;%E-{>+uK%!jD#c5u9CiQBR{gQ0XSoOF4aX!aQUvZz6Wo zhDxWxm{ztz&0#U{6RpH>5K^rBKDx+tA-Nm+U_!yg?!jXZmJ<&i91P$Um+9(nx-w#k zG!j=Gk^xcqlcMIUv8&*w^H4$5! zoDbEgbj*GT?#s)sfj}bB6+rzsY_$%16{rqNFSvVP-o!96ZB$t&OzRx!#{Sbu-Xq(= zJJTPey-Z7fU*4=wSC8L;nP|w0ZzB9{SNs~0b7lU77^`Jr2Tpv`P=^!Wd$H^FcFCX@ z$$lYT*?DeyjH;x^Zx*@t7$xmqWFrD95HEQQd92Ti?1qagca_y`yK)1cn;R}Re zPlNqktFXerNfWM#7(;14{E?uABrm5X%G3f{c_YpRPf&U3HG`&%+S-&+r^p?LRXo{W z;BKsTG<<<#@LnanvAcpT#XInSoi9IUhiAoa&Utmx9L{L+Jo5(rC|QU%Ab3{nb$GU5 z+@sG@Ps$08WAF)2{zVa<a z(1fUNeuD7h09U(zDRLhpr_@y__aXIOYg{O;1~-gP*x|A4Zyc)D=+x~aWbHU*YxQ_g zj%s0LRkK>Gz^D<`W|6z*>28xC^Xct^W8*!EG+Sby1lLB)!|=GsqlQSF9a8tokY+0* zxzEkfC>N-J!^o{((BFabIqV6IwrI2yNQ^j#fZn9B)S!b$V#GNYNQ^k-rY7h@ zjV=KaQwtqt7g~A|rkGW})?swoRD81=fdB2B7wSQR+H2H9BOj1(9t|W$oB|->d^?bg zydUYX&vY1#>|(H~4SRQn2NM@AZ<{#TET<;+Xf+IPDa!@SK%#E3hI5$(G@&j<#Y zUO19ZFVL&mwGaw)ukGe}VmZW&L*UE$MjAQCafpc*M0mL$z4K4>VNqv@h}2+NCMb8B z#;n&rg>bFcKWP0ycRN{)7-bi#%|He#1L@`YtdK(Ea@C9Oo|F5V8b-?sEcuQh0kU_W#6Efk6SDHRaHsZyAPQ2pFvtp4Pum`z@i{kNTGC2)zhH}W=q%; zPT?tzx_R>1W{z}9B_b5xK!(#7NQHA+p{K((GIHWg>-qg7aG4~M+Ui|#f{*e=Oxs~| zwlhkg&triA)@pfbFhR$>u}TBY#(LJ;~3!Hhvs2#X_VAUd#a_`B6Q0JF(sdB zCB|COour79!V*hQP`laWAYY<( zd&$U7qgHKk(L*2-xnPBaQhHNe+**Rb%Y>56D5ZO+y_w(d- z{f(A-Zye@!eaEWNNRzv@b=W9!Z!{gvH#(d{osPQcg}%H+=$zJT{H0r&2_ZMy1QtG_ z?`WBUo(-eL5^~bDb2oRFV$~5Wo)(8Ee>?`RS@@r|)4Sq#r`Ivy6TASpknX=|g=+_1 zp!2ZWyohyp9Zv`8dMnA_naC9xkzk{L#|z`jkTlgKO+iBQM)0acPkzomI3pfLZ>F@d zACbch(;WkT@ur+|tm0GAWTt-@T+;(z`#KyN=y;_woe@rtdM&*Jjy}JYW?nRdb^;F$ zM{X*HKzcJQohFsKL&h^ar?#6^J`^GFW(kH@Hq|?F$MJh?!`rN|SD@M+KM>+%G z$g+|g3?9fKownk#P?=C3^gXn5OMzgO&7lL&Q+ypxp%87;^9P|2J5Y$Uz`McDbO7b> z_Y$2z6+^~9giq#TFdd2kI$b$vp6DlUd3J0k1B(yS72d0m>hw7V0MYF?pM`pr!OlPqXnuQk`ppWKLkHpos=3&B2etkwxDZD+=!f*wySw2+WFWwcW zob&36*@t#~x#^W$Bdm<6D_Ao=}rnKWu-lA#)-MzBkmEv10F{E8)Z zs=i?7FVJIjC+YFlj)XGMZ*NgQA_2Lfm7it_M6!e4c9%umG!0YNQBIX^V zvrc$BybhVdZ|Fpe`87>@nmTJ=c97yJg626f#Z!aQ!%)?p!4RJGaFv;&GMSl=%s?3` zml<_tJzc-@h^`MI%?-AyF=>vZd8PQXsMunynuse;S*Qi)qC1Mcsz14I~o(R->OaYF|q|?FJ-V7U{6%I&8BJE7W1TfyCZ-3`pDi_Mt%?!G8mZ z1RWvhNPPLwjbY=Gg|>X$@S(}pxKd)+97E!YL=YN2?m{aEGj3o_wl!2+A~UU_I<@c| zLQ*q1XiKCz;Zf0>oqoXbCK)Y59c(XqtuKa8>=ZAAy}!CIc2Wb)0iGnmp!|!S(6(u# z1}}C}`#5;9lXS1K!g!DIgP2A*)o z{GaDomKQtW2v)UTqZB-vvX+mgK!d}?B}Y^6wkS_vJpSjP#DCI+jO&MT@MeWSYvwda z$E+_a=EGDoPP$X^&yf{imIZYByQF*yy(Cm5B#Fp}b6R?NQyy2tjAX$^WK z6apyAWu`Tyuoe6VZz(3_7YjSfElH#kmpur>f-5)&(vx|TbbT3buLqKSm<>R(`x3ma z_+=gTKG2gq-hKu2D5GXbNyf}6Kr+f+p%G2q@^m4Poa@X3lGB_Uf#j0n=YZri=Psb{ zcs`&eDf=tm0tuH3@I>~QXg-xWX9ke$K>ZU)cB-DyPfLI#S3d&@mpaI~aHcs{!suFb z8Oav`>07`;MlkctXGP9y3CL#oF}nbw(xLj)DDe$Z?(~} z-{Wv^+m2<7@f2@pSffA2AwIhH;bK0ag*_wqV;u42%awp$75uuj8tb_zP#A_FJJ3jI#Zg8CPP9aKjbw_hDmuQe(G-G+;xeI#u^BPl zqm7uZ(b+`MpZ=JiMVd+wQDv4(hc=1SXR)RbL=@AiOlOIv5=2xpD^2HGO(BRV=2n@` zQcWd@s1^#9EyA!}hoAVk_^RjSdoeQcDBvi!v3j9}}aQt@*e`;CX<2W~pf>IZX&{TwiV!fak>zLGP zgodd13vb-GW`E7eIZ+f9@fHe-^#T5?Pq=&^2sCzTarR)*7#fuhbv$q&tSxC!8EgHD8LQ zT53gnrOgq~`>Wu4jQLvU-iaz3_$Ci>=>>wQK7SVqnsp{iRF8$?W=$c8C?a8%4V~Yu z^X@I0LJ(2dg`$%A{Z>sSh^XQ!P3Lc#LJ(2ZuQHw6G?gHtY9dsm=}g7U1`R~bZe+Dk zpW8L1Aflu@Y9Wa-<=U-C@O_7-5=2yOD@^Y@3*}l(DTpXLhD~pSh3ZaCC5WiH3Y9b3 zaQbT*&Z&08*)_J9h#Jx#^K+M`6hxH0n3Cs4NQFL%f}Tn|8o>n7I4KkqYdHR^PdMHe z26>OH$$S+>MZATAVjWkE@g0u$K;ez2)|{Y#X6(=ugfHZJGZ1P1Gs+DKrn^Fbu=^|0; znSPpor2?+C)WbdCAY-8*lGE(4RMxrYUQH#4sQf||8*RjPwHHV4vt>tR%DU%qQ>yfJ zpQaQ+L%UTf0`WBNHjquG4M?`{Q&#svnogpL}@kJ62@_SGo@Za^CpCID5 zmibv{TI(!$zormG6!!^5nc1ShC7lN}l^~*eP^c`c!Y&qy2Q`HtqWDLpIeSP`2qKD& zRp#trO(lq^HU-leA?;m_;FQ5fG=(6dcqvF>S_Z5#+n^}~5yiGDbM~mF5=2xxgXx6H z**`ReAfk9HND(Gyk7)`)MDcEwIeT1F2_mY0g{7K`C+hQrrV>O{#X?1Gz-%scRdjrl z=bDUUf{224&MVf@Hfjn%L~%51&aAETDNQAasD2FQ>^l6!$J#od(G-G+;sjGPwpav+ zik@V1Y#N1ZFocom45J(Wl|RpFZi0yBPv$mV#iH?~CKE%eHDVY=#?jMA{NIB=QAXs< z$i`**AVr{bB?mOF)YCb5k{+6$=X4GPQ4Z>G%#a*3)H!GzHV3w8ksp`S8naa*_}-+` z5k%=UV^*wdT4uB*R4((gSyKrjs#Zc}k+!vdwrC1LM3KZ4RZ9p)AhV8Us0`rydCgG} zaqP@7r>j_0M|4SOltFdWhf%pY+7Q_|sg}`XYG&^oeWSwT_YKZ)YSk~7Z$+qS!DLImYE=unU7<YtE84DxZ+j8y8Vz$J_$D~CWQs(ne=46z)eYrBzd&EM^yi}L@6-$}7 z>oNVogzoK)gosu~Y-vofRYNCgxjI zu4NZxk=+h0J3%D7d&|r2VJ*8y8O4?Boe|PIBO)sr^#8h?&|l}Gzg}nW14*>9H%5PL zU)yMg^Wx0!m_Q11`V1_WEOM*J*_3N56f8f*`*~Rh$QiNc}YB{C9#DO z?d}@JdhVm8{C6XXcOrUZl=k$DGJ<20>k1=2^0p}38m6l+z>Inw?4GFzRz^@Y^iDCB1~7I$l^y3 zr9jt*mMPSS97J9HV@3%)AGaqCX*GD>;6Zi`1+=vFp|AUGf6|wm`^I_>+G@@;wtv!- zZ}k{UzSU6%7@HCz=D%|ose27Mi=ktzNRr0bLHx8Mkc_d^Vg&UDBG1_~ zo)doMAZjRoFpB2ZU(Eej=G}r|PaqyLCR2@@y`vaiH6qfe+q$;VdTM*4b@wErHRiKM zr45Sf71qtR>fR?w<`9I>+dAKZC`}qh$~5p=97Oq!WfVs_GCI>A z8Xt^hTmrKJPl|k)!pKch6sBIB2nuWrXB4U=NOPo1k)%1gfTTH60~QoN+n8?iMc*Ft zrG0H|$H?2`2HGoX8Il;)gdi%BgEL(h7tb_`a2ck*NwTueAp+O2$cpN?DaWVqnHE{S zqh%$CI5*&!Nfebn)FPU55Xq_~qq4G63l#42X=P>ASIcVDnaXO2anLp_I?>)ED&}bj z>z25r3WX)9k+1|I!$uEp03jZLIlew6V*W2E<03rHy^4XvafBMv?nHD2RcM^n*oEOANC6GU^KP!aDZEGkhr z{&SdrV^?j%1v`;zY8%7VJ<)JQxQzOx@x>L-NsE{cNg4T;D*afOKoFH6hht8ssPv)o zUdusLrOO$Wwes0~kzd)3#x&^r6OBgQF-b;X@Ha&UvND7I8s~CZaGe4i{^aUZ3aSz8N8val@ zAL1Yq_y$HzxEZBInfk0%hus=Am&h_jEr_~;ev~%mIxgmTh5V${&B7?;pi*8LXHq25 zdMJm2s9g$bq)~GqQ5dL*bY3jV=%5j?7m8jw9x37y&#l9T>M+_}5{kCh8BHShMc-$C zE((8UL`Bz$ib;xX7~_u{9u;$eJ^J-1XL5Xe{mxCWb2u`(abxl;jWc3y5x-KfF^1qj z^(qlO<^Cy_7=ZD*rEz_s1uqDZjK?@;5=EsC#eSB9Nbs8(S=LOF>gGGqDk6BX9Fn^LMpBZx#}=a?a)sjEd(pV7Z%H)ZT! zZdL!~-4v|%&_Gy(mNEB7EkZ#g!basq=+Yu=&FKG;-IR{H%+}qMpLLl9QJJxI0O^D@ zn=ZP{T^aowc2h3Wjb=QfP(z6fJ2WW>`fu!}NRE&hLlDWL2N$>cyD4c*2L>U#DaW+5 z1yKqq95Y1P138Gs{K1U=m+huxXxUkJQ%-2v2_o4IDKEQ=wd^io^gm=b#kAnj>}il* zuRbSrsRU7}F6E4$p01t6afzE%*Zxg&6+~Poa?Fr+Hl2g0on6VO+Pe1dIvqij&TM8? zk*@uRrVvCFaHYn0W0jCq*Zxye2qKDWn4)oW@-wdoFT{Amu|H_ZrWF{iLqx|WHST(j z4`B4QsFUPWAR8Wni1RXznM6_PL$UKXh@^A_BiWV8Aoa&+Pk#z%4(ZB^GGg&7qo58Q zJHkkcOt4)YX$&NLwq+4Q+Y;&%sWT&pINikQSt)3kjs00xV*<34WDK!NzmmTu}0v3=o;%2rbDpN3tZJFL8l;yQuu&lCaEaYDT+CW z=)PbiLx;tn5q(Y+UgCn4rkv@p8!;oqX7H9`gYU*VF+r5r*UZm48oY0zXrd_u5yera zXj~6Iou3DzP64E+G76A(af0Jfj5PXVe$LSx1rg1U9J7~-Lf=$qvLng5;!j5SW7x2` zL|e4SQ>102REolaF@aS}j9w4{#fgmKI24bfIgll>OK;-=!kY&4((=8B>GTh zWaohjP>1kH#FcoFH52tf18*QzXa^j4Bso633}fkXuhzklmRN5)BcgNsdrKRDjML zGgOd0ISi#W`Y@_ckZdihW5mo2TFc1#M^!1Ul4hwvIxidXOMO~tVG5$Wq;kw86@}{5 ztFz)`6iK`dOE*NTYHx@tQB_7ph0RE!&WIq&$VKHdGDc@)Y$X|yv7i<;@l48Sd-`L3 z)=TB#mmo@L0`qD~=gDxcH0H~iMh!Y5f{&sk2}*pL=LOL)CzKTHF_M${375uHNy7kN zq+uWpK86B{(@TT+)4e+C6E2M_I1TGW-cLoxcUvuDK~(bWauilS^(0Lph$!YWMdQZU z2I$(Lv|e%DeU3uj$V^sAk%VM0Aqic_@#&fMgk=ZKSrBnv%rVP#;*}hX_{M5R)QN9o zWV1W1!(V^{BO{g}fL6n!9nU@h!C)%jf zwN`1(;u?if8FFO8sv&gJ#SlcKcQGk9rgvj;m6cK8Z>YiApFb7P(5R zPq;MJOB!Yr#g~c@%!eTAsKS?crdGlCVUsT!De`V0??$!qPW-LMo5JP&aZV!wXGP<> z*EZt1#+2d+RwfmtEB!G)U9@Bckz}8i+|`RV>b(|Y#6h30LEDn}C`yv7#3#uLBFPFR z#k$NQfpBST36ZSgOOg%dLl8+;_!7^|D)_z@%f+sQ4(pB;82DBBru<{r`pq1qWJEksRR*K^RQGSEL43p zl^~)@6e`k{Fo2mi%VZJ}*-q8x0!=B1DB7HyeIreB4J;{Y257W`JCoNqhO{XA;Qs~bylPD^EDE3eeLR@1QBOBU0 zW_$JlNTv1Rv#bgc^>d;WVQ)Lhb|AzW){kh+Pk)`RAfg=3tgY?RN-;oF2qKEnl~N4U z6oQCiyiml1-Yb=C=8C@Dno1B+O%WKr4%n{3PD7%yi$r6HH9FeSXC*-OPWFuQRG)jL5H2B^kSWJ);5vo4Jbt@4>6b~_liV^PnWeh(NYz+ArohE{< zyZ>S|YW9`0=Pa1*%33%jE89O~&g^jHI&7EbQ(T6RjuHmEr>VX!Lp6EQRM(`rb0=Nx znw_=4H8X4W<^Jhm7zBf;v3~(3QEUV#)bEx5@cy2 zXK5m`G*PmYI?q2fH5FvIl@5fKVGJR3dmTL?#m4%fq_=Z2^yEv;s z&Y0?&=btkJm3n#3tgP97BjlHBPLAI-XPRs7q}i8eS<@|tKhsU-I1;lq*s@VcgmZId z`)AC`nwT|r?wq-2T)@wD0e=ZA#*mc1)fuFtk=6`So1QXho#sex6d%oZ+|0?9*Wi^{0#YO1!? zpgKoWbu2?QYf^TXd0GD808?4w=V~_OB`V!9l~I41VrE}GF>IH#vZPAs4-%=o_FO&q zS>cD`C+kZ5nfoPvR#BZQD`#Ahoj6IV$N`+$dDFA9{26l%|D?$S=FFTk*O+_xWP<}Q znUS?%9)(|=H8X39KWl1*MWF{&oYuPdZcc^5s`^lzp;`>X8R3ud6$^x#PQ~qejL$pU zpEY;(q?v9Wxi8AjnmxvM@tD+9kX3iC^>ET8m_#lHv#|W3;dhMBt@NDKzm(W8omg{D z%xg}5W72)DsgwMZIvZ0lAnlDq@udmxC6 zxyBS@!HlWUfu`hO;+!>_aXVuQCfKZDlV)W}Tt?7Nf+617Q?nKt^JmPPF?nW|F@46= zsadm)`B`(X_6RiF10K(qIm3UoWv=EqJbTW(8La!Y>D>Nui^$4Ds_k=iD|vvWaJsEz z1IMNjuez<|Vrt|6h9>fmuC?}D2DCNe?3y$A3Um8 zGCwFcvYep&AK;WJ|FpOY=0AvJoAjfQr)5~`p9eV>l|xEIeKc4iC6mfZ6kO;?&Q7;P zqH|M;zSJcm-9K0kl{#e>4~#=0Pbt*;`G%iXzea+(zvSa|^DpW+<-e3urW&E8LB;w1 zDded&?}U$?Vg7^50?Ehe=3mr8%Kz^=|D+CAoc~iHPs`>%5_*^zO@i%5<)yOr6I4$n zABv_df9r2##E^NI@^9yqN&ck12J;_8(tc`(Jhk$(;y7InX;Ibh5kU<>a(22U5;cZO zR9}~fRO?_ltn)3&pi#(EYbnCvCc0!&Mk<+nG6F7CO-cYpWw1#9=bzd63e$h+?TDbd^Kqc7HP?{%-_D-cJFz&EE(P8Z_@_Gl?@-(?VJZE zG>Gl|)XhV`e*5)t?S5^&c-Jw<;I``b)N2pD`O}_x%OA?$c=T^ef9vP3Kk?f27cICw zK5NO-g_C}*yDoC{(dSqHP}Idf$TxXR)2Es|_QB9kW?w#S%NzE#v7foSuX^gEtOnVe z#;ETbGp0Xw|FH{iUir$Nv5)O}>%G0xCrmDKExq}bdLPVwY}UnH6YHgPf85^xx3cl0 zme+n@&L4Bv-JJ6Mk&k}7d-J-7BD-|&JL+)$gOkRj4nEPg?6;y<-{;$6cTT*Z0udA353br;>lYymF$w zePOd}+jws;{cuXZk?Qxf@r&M{nH^V8$wU1v`~6&?ZH>bqT3=FuB^jn2CN zk*B`td-pTf$DNzmb7aZ1OO@Qq{=Q(Y^B*tyZL_y6z3s~54|O~ILa&B$NrI+apbBFj*{2a@4lXQZ;D>}T$YOWSLr`{b=S&=9vK#KtbQ-oEyaCXzIMUb z312tubCt@kN~h1bS4KbFBPCYJ`S;`Z`QEi(c4B z-RCWC`toSa@!ztn?w<3ew*91Rzk2tTHJQV`KNep1?nh&b zzr5-7mium+U-EmG4eI-z8$LL9W5id*W$9FTTGxte*S^Q$v{I(^ot-{YQns^??B{CG_LR^|Mw^lBV<{kk_hH!6+HaXt0& z;At%n-K@Ur486S0R*j{r3Ccnsi~Cb_YJ0 z@x;lJRYN+BzNFWjZXK7t-2JMO4|}`ECHmfZ_uz);l(8?ZnDeH3ezeApxVDQr-C5n| zAI{voe&5hv_V*aE{?G#n*T2ze_2s2WKi&6>{cca=cJFum>uzlm zKX1~=i&XmWjD79Zd!GIC8TI?TdTp=XIlOI`vJwxBodSf7%$kge8hPY4t(?k>S0 zBq6vZ!QF!sA_oXWAPHXF3vF?ChvKvpEl>#VUZ6lr@wRwzxU<%*nb|A*6!`Uh-}||L z-2Ex($#b6XJTq(0p1qIcoXg%PeO8zH+kNCW6T^HaPA+;dpxN}vM?Y_vFUj%MDOXi( zGbv@wZyW7MIQ|s}o#UH&p07IL@~QDtc5jSV_y61d6?)?2*%V_JciB4c*l!z$E*hZr z_sh*o_xBvsE2X-B*u82$b$yjAQr#cF^Y=9Up5<${c+=opn-0Yn&f?Xf?fwcYJ$lTZ zw{75-{NpnYyzDh%>{nIigLyK|#DwDu zS5KI{?eC>;=hUt}u;=xU?GJT){BbX8$mZAm$A8TK_F-7cU1Ohy3_R&}a8ghIJ^yXL z+Ml0|FH~V?l|}&xkI#?gB^=M8<_pUoY*1rQ#sjHJhU6@=d*ti5;AY25)JhdJeg3rJ z1)9zYOjqfANbIa*@2Y>j_}+;c;R|msXgI6zyM(@5U56*XaQjVn)xX?3>z&w;*`(5kHkG8KkpRnDiUp7zA>E^cO(%$u3J+BWr{Kx&N-oeRM zCUy@CTb?a=X~jMDkCxoC^1{T%LoydwecOA&&}3iSZrIiT#4j219!h#=x3BVT3fP)G zS%KY~gZ77XtTDTAN7dfn2Ws5i(v^t!hU) zGfoUoobk@`umwAO$B$Y4u#xfw->KUwYDrj`v5DHo-KoB_N4C1jH-Ggq>FE{EYQEps z@*7=GpVw>d?(TMeK!y~BLsETJE7SH2xAw0bzPm*F-3KGy`&BsHetqjhu?1V^taUfw z%Pii%>{sn)9lYc3Io;N@b(G$eq+X%#b0-|<$9{j6ufdMh6)GN4>zZnJ;@$T@cHX+S zd#KlvZ}z@hlQp*Pz#XfLgcZHr_43!VS4<65zCA61Q}#+b+UzthHL{Oi)2i!D}XS(0Si$#L&n zC~nz^_s92m9c{Gh&ziTUUhQBT@4xM5r*$ZVvfo_#aVkylXYh-(_!=iC5yEUJkCa>(+%Omz;mS z$eZ@X7pLxhqmI{^huu%^4ledw-M=|xR*B&JzpjYLJS9`Z-)06?-d478iQ>6NtNu41 z(eHGcdy}KuwT?)V|H8%MRr)r#n!QlYr8_DldVFusgJ;U8=HH`h5#@3gzV?e+FQ#Oj zys1Wa&k}0AOFMD%w|+6to+Z40&9$w?lMTN$KJE171NJ_vJxR4&%CFGysjFj~JT4o2 zba;o}$?E@b=U%QXQCCZU*Y4~ZuUkcxZ*;pQTTeE+a4`L=+Fy)4ly;k1C;tC+=fmrc z+7EeK)$5(}j_2tA)&6z9U2wBj>yqgj4-frw$jQuA)qZOhxTJDaV9nY)4<_sVUG^t^ z)I7<4e8kwT&cIjd_feBFe7)jEj6?O;EvozU0<-QVR==zJmH$)ugnreYy3YHj`&GS^ zU;XY@r+%**pIvT!>VDE6vPI`Esm2+%W=YQ?U7wE4R(5{$yUU@krY=ksS+ZB={HyOj zT-{?x_Y|s~BpzcYmCUuP?ai}Q`krq6FlC>WRl_ru_%fhhv5^@z$9H;kqH)}|>pp9j zf1k}WCUuS}wSq<+iC(mDb?9-Q&aXFo+n`=p*oKU?ij8Qh`u}6yseMn@o;JQij?R-G zry2J9ocBK!E7_!kpL%}&|E-)a-Euq)9o@&{!OcI1#d}O1s_OE?_!(70($%WGefH5C zKh~-{>Qj9qlMVKY-;ix*w@Rr_+^>@6Xwe1B-{d<`I%D20pGStL+jhCgzxm!D*CXppSvkiy?J-sFw-K+d7XLcY zb5-wEUbPGS`NyThH}r25mRBI`!?a`A2vB z9yL7b%@M!Wn|fUg{xk2?vN_M6u9xBS`6)`|8T`0g)^hc0ubAHTRnd^(y|sEaO;-2& zHp4rKhoKWDG#q@m(Wq0Q4HNx(|6bc+UTM=D=u&;P^GN#dnk;C4;9-Q~2lgyjHA(UC zY!5wlmMD|=aFF5~pIkR_RL&s<@0YK%yVIin`3nrWu=CL|pN;B#lOu8BpQbiBk|N=G zD@(IN<=tXu_AKEU;Jb9>h_|PX59##l*4RU8Ua0HXc8hXES4fuTYju36<6K>@Hpp=H z+x#y}U01(f9{R_x`&v2IrTQt0^IDc$zpBTV^(RleR;*s9Wj8OrNf%!uNu+xGmu|x1 zWwHI+H&ydNwLd%Z$3kC)&e-*9nOSYJ56pB_^{Z`UhNgLvdKVg*bVrkQzwOSX`laU8 z$9`A+%=OLS+%>oUmQv-W^ZTy?63YGx9LQWpO4L0 zy12-67?tPgCvXt1`0a*cWcUB<+=W3!g1bue$8 zCj~NZJD9b|H{;@O-{0f8^RG^Es-0gGO|Kqz`qB8Sqbq-LqgJP^s-0Z<-v8My!|Xuy z`?MLWZZC`M^6pBbyM0SO`+C8X`RAS? zHQKCRU8i@zQRzsLGO2E*+mWt)qC!4%^8Zos+Gzh9-(~t^ zz{Bs8`g~V)&xz_~)+f%c?l0K3?av;^SDn3D`_RTgTh2K0cRcoBQ*i2o>i*FMdN%yJ zOl5!7zf;q0&A*lS+q~-jkMaNM{U6JJ(FOw0InwzL*ecQf3OAK>KEremAAw%jzjQ6Y@a#uCZNPeW(W#egI=y(y04(2 z%2UUa+9-JEhr9S9D7lULZTb;Itsp9yje<{^aCiGo`~<$n@WVYMWgP|lk)gXAeBJ@{ zY+m#Izu7(F?cKr?CVoQHm3r&9+CA{j9d|eQ!&0bWu3S}j+dbm#EW+a@enLBEALI|T zds3qZdIg@r#XC&0d*FN8+}%Fxfp_D4%mW`2@-a{PPw>Fkt$eHZeJn%uwAM<4X z1P^>}*2mhx+3p4(X99Dhd*qwf);jkUn)ve(@z33@i1-OJJoVjXRkGr7V4XkN(F1>i z4Ex=;<@t@)cI1(g13mD`50G_Y!Fv%7En3@wPY7^#+bujWlMakbyuV>k_I8g4dOqBaSW3j$KkO-l9(A0y zFFJp}J*zN!;DdT#om$mM{K<)JTrex#-TdLF_?NGDyx7TR?6QVM(WC18d{p-#MQn90 zhMvmeCuEhn{M&M?N7lJGdQ{flaSf;0vqV`%f2>)>ZCNGJW6iR9WR@p-){CDof6`S* zB|dI9;ke)vcuiLDHv?yQTC!w2u*$i+sdh>|3_E6T$J^G9m#rNi^ehoSp+3WkwCZea zM`o2q51eygU-W7HLj$|V7d`OR*VsF^~-(4AWRKqpUa~MenLB|KPxG&3=(?aQwiPOU^N3z@A7TM zq=Q@5bpt*gz}*e@DU987>9(x)c5t?T#Dguk!H4}rJHy_uXZuU`xeDCt1|N$FXP4P- zyK7ndBj|PJT_IbdSrk6(evT4 z2cYM};#LvQoGb0)s(~KWpZL_d_f@xzt0wbQ`F&U>yGN8vj9s-euXF5l zy9avlF;ATjdSrd-qUXc)srLz<`sm3ge!>i`c>cv<`y6ZV3GLtt@Alz#;7@u!HlG`R zf~N_3;EDp~*sRWZ#Klg+;|phn8>}#JPwO+6^4LAi#62JD4_wr{x~8=rr!CL}S3%I9 zB9|_Vv1hgX1WzD(g2Yegv$^WFX0<{Oe5MX~%D))C!=BX|J?a>|Skte7-O~m=u!cdO z<+VE8vSzhK51bJo>pS1RVxfgwR!=+hz*QpLvpq??i>&tO2`5jfh-aev3ESy_o)5Pp zmUY{{NZ4nnp19^0KVjQAv&VjWRwr?fyW5Aefb&%X%YpWuPYe5{?GpWuo41Wzn_)R)qysJt+#z0Psyf#VeRh5LZm z@9mym=*df-;Ck2l*gd_`^Wk;`CdMunTs(qD4qm#~-VR&|xO(=$x^DFQgm(IWf@i=d zc)mc-QSlSzbH1$`#fdTD`ZEwc@b#A92~EAkMGXg`=P&USJjuMOiVKH??F>dw2VqDi zZk1a7Lv_1n2zo||pJHb^%6wT<2+*RekGzf=Dt@vi1O(L%WhM@;nX>luS zwLROc?MTmX^uYJK!YW*PSg4qo3A09^M_spM-RE|FxFt*WXC!)xil0FDDIA}~?tu}x zyD87`jX%w`dq$&2W%VvRuBhE3PM?;syY`G_o^wn4e`{~&OXhLi&N$|A-OhOCaox^W z%;UP9ubIbnJKubQX9DxM&YH+PuCpdFkLz|OGmq-7}YYT(>iid2%N0u+7?z9M^pGe0W?7SUWJT z`L=N_WFF{`-Lr^!U|e?3V&-w(&JyN|){l%^DjVo)~JuA=y--wu6+**??TpX0*7k1sd5qb`f0nsLege8<|!U-Mv(O_p|~N1V5Di57%c0YX|DH-BzES%mekYdwygd z7?<6%i+P|vcF%6+aox@y^jPa-Z|5i0PQpIR`s_uIS~t3<$ky6ApQT4EC8Ew%#821~ z4Qub>xQG|`xVynuGiDIC(kyHAyR{uT$M&PgdR)ZY>U@BCpwD*CLFS41{X(qWbBK9h z?X`Ojqes=S!uhKWtR6Y`Bk0K_e!@|8vrWE2)^SPC(NFLkL(f-KpBMM?UbeS$96j*0 zV_C$l`cK+6upi4O(4%SybM?5bh9{W^o`IwpJ*S!Hyz{$KcF!5~sOyct zzRGmM?m3GdRcAPs?VfWiD`B5yozJ7^!}Ynq+JX9S*;#9u3PAV$FRx8t(SE=J+hDMHhR>!3f5}7_Lgm2cbEsx?{?2!=7Hz%tsdE* zd+1px`jbrD+Bar)Zu`Etj~@7Ta~RveZ)Q}s_xTU>s6In~?%VqOC-Xp^?Vi7w2i8ox z=K*@ueD3vVQy#nLA$rulfOXaCkz*I77yA^BGBFh$hbG+?V;6;B*L9E4^Eu7KVoTy* zSv_(dK0%Kfd&S#nk36=G{VDS#UOLjv?s>*Ma9*~1{zi`)d#;zSU1U8+j~e@p9zVaZ zwj;;>0zK;Zy5fuyr(ZL6Ij)ziKX81#u#HQUL)1`>9gZ)%=QZ=dez$wxpht}hjxW3C zEqc_r;P|q7_@1+3v~6JkV#WNA@`rdelDMGyULv`~J#|o-LyMIm8}F zm8I2>_I;6sWx=^1vu#{inFp@1?VfDRvt?A(TXs)&=5gIl4(7>`_(Yh!9XKPKW7%~( zxtIsm1Zz98hPl!6;rirZ?Ld8U+v<~-d7wXbPd?^>`q(}Bna6cI1(*lwV{gZUd0e+s zka?g!)^=ol3ZX}wY(DTDQDO9miwyLny#D1E_IX$YJ!)-P>M?1h-Ba`vJjKuhUjqWq zG4^YgYp%5&c^)i|9<{c>^?WhQ{*vP=fgX7DB${$`{Jz*yYdg|Y5JX%^T+P-VIJ4*lx7~-@78wY*nQFS z;jx!t?ZDW5ZDTLXJTP{ z)gzv}5c5LZa8%8bqMdba$abor2OfdKbAyphJc`@rSXK1EIT<$3fa2l>1aq#G?Ns{& zj~{yATQvPeJ0XWMH?U^OdFYQGbzB_U_pY9wZGQzY54?V1_f%&dxQ4WQYA{c?T4@g2 zJvBeU1Mf68`yGyDdpot6$8}a6=5gIlUFL!JBiXa+F;D054{F&x^_d5*$LyX4%;P$% zA@jid2CePLxzPwcL&OAvwRL2P*GsJPNACB=tQ{D8Binv&!aQ)kuzQ*^4?M?c_cUW3 zxW=}7nxjWuKf`l7c25h|PQw1kvA0CehsPes+JUjRw2i$L^FWr})0%l;>~>EZ=7F)> zJ#Eor9lPDrjO!rd;595+Y8Z5?^)YU(5@5n6e`+PUVkoz(Dzi`W`!sx&FVT4_y61Fei8B}yx6 zNs)cN=`!mgd3tFIFVQexRjdG9v@s>XrUaAHPq)*blmS}VL`pfWBoeR9!B$=?jYtX9 z$~002Yvlnc_q5UgPWfW%tChv1RCZINI6+D??RiQ{j8?M1;fovW<-c84tfIvu3}S0W zN{DW!J1LE{GLDpJt*o@P6YloLW!3@me5^ld?)H@J;uyeW8_S zqzuwZ(-hLPMk`B6S*w)?r0mm5ad?tiY}d2`UzG-18LdntrL0zdBBiQZUVIcIo?nFv zC9(Nx4}9|lY^Aj_k`y1Uz-QRQR?SVd1D}d5H?`lL;+1l)jJGKpY|2HOBEP~BT2d`X zz>`g4Yoe8JNa^UNJX=T!)t<|wG}cNIcoJW1J+xAi6nW%k7i)%_v{-(&Bu{Tm4IrhW zRu+>Iu9ZWqdCqPpj(#fn2 zS{Y1=zgAX|(p@VjNRe5^U1t4Fo|Kx3PA{{7lE?B{o01Yv#keU?MVr#brtGsRuWgDC zJg8Dk{zD-W9^i+DeY~_B%AWYreqY4!C~v8>r;W04sNO%?MbPxJ@CjK zwoY1^MoK-cY$GL7D_2O7d$5MfJ@}41ahl2vFT{#1NGm?1IJMG}6tkBnkkVCq3T2h; z#A@Y-Y*J~fmGh*u*UA%8Ov@#+OUfu+ZOVR|;sH+=;-;$F(x%L`Dc{+Y3pVAIO(~Ew zVOCR{@`X(~U{h|}lw7%NEtAq*S8M_)E#1^e?~&rGm0IxNN^ILTHI|gLZi+fd%6aW+ zng=0AZtb~1%6#ofRqIo6hAjr)$|^+oekPk zpOh5ZGm4a>+OwIIqS|wZlz8pQTu`>0SbJ)a(nu@wNhzt7H>7OR?f4av?WEM6F{B*V zo)m?pC$siUBxR=dWG*5-6|_=^lr~!FM#?&^EFmSiZuvSXN3i5!Tdty&R-_cyEiWOZh*qAE;-!_v zp0XWJt+Xs9mBK=C$D0>PS*blqyrieURw|H^RV(92NuiaL-jd3pmBXau)XGdB>B*&) zkkV3VrIo#;B-cu)uk;ks${11#XysQ@@@ZvY8A)Z=%2(y2l1eMTk&;_0@8C%eu@%%x zp^8%R(8>@}@@pkmCF%KGEA>ffp_ON(wA9Li%92VW6uB=dRh3Ext#qm;m2_J9!A~lg zwQ|K@DrvP+xVlubXr)07sifCR&ze%nq?Kv4q>@@I+iOcDqgJlhkxDkL1k{yEF|8~l zrKDEgky1)4yXr~GTPuU=OQot-wvkdpE3Zfys+E2XBsD@STS=Lvm4*$aXMt9(ld@hb zMH@-aMy>QD zCt8_I%1fB4wvms)tJIfL4Z(a#Abl!ldV-Ru+=-n^xYC zaz`tEPD%Z#m4T!@)yi&CUTGz9XGuBS)Dc&Ul+Uy>oRrVCa*34mTJh@Qz%8p*_LGuV zEA6_X#ZgKt2S_Qa6`yeF3DC+$QkrNbXE*6-rInGSHl$5)h+Jh}f$)S~dq!iG~;8BwD(aL>NDrhBe zwDgSCS<^__s+GH>?9oc4F_Jo~m7}Cw(MtQV(vwqXJtoCNE2F=Zp3+)*LP|xgbQ~u= zHMMe;l;&EgGhTYyYGnf{U+VrmA|;phjQ&be1+|j%YpIOWRC`itY0ni>#%oW`ZzNS) zd*+bxmG)dArH=NrpCBoR@Fc>U(Kcn6O_^*{Rxl;f85!D@R$AFID3Lv^S)lZw)kb?F zqvgj03M2GKd|z?`%A-M}vZ|F}H~17Lp_EZdQ*i^83QB>K1S;i}QdcS7J|w|O6g}Qv zq%_cqYC1|OrNNR{{DZ|EDPM5|H?5#2ozP%-+@lrkfklvev{DB8^NaWgokvd@6{Zy* z)#vic;{*2viGP7gDXlzODF?>vv$vx1c&q+|YekKsvQ|{ZDrrUSux?sWRDf0#<*yY*bytdy+B+$gf)E@ReUzd{ zp%p!fddj0m5vdeijX0&~cC_NH`V6xZ>+GWxr&d&-;gTIaWz_D8RZ3|!indBA<1KE% z)?WNW$``_hxH}vz)eQH=14G=em9oB~X?TC7ukw^F15-e3S}9#tgu&mTZWk)HT)G^E z83iUQyl*|NYNxa>4Z|o%PsS6>nc}vBSi+TzR}M;~!o(MQ}S)gOJt8ATm&DOEfAh%<^h z;*RTf)Dfo@eZ*x}?dT&;EBc6=soPOUoL0olkQ>~<`Kx+NO#6KJt zEQh#h#TS+qXeXI&M`dY6_h+y0$yHQ&jH3FJNw-6bpF=BUAPf3)RkZ`l25wq`MbrUf zFJx=SD9{d^ZwqUWYDX)&ou$Hueb)8S3Pj=7Mf^mMRyr%COnI?l!(U4jQ(0vyP!Y9K zR!yK1%A-y)jw(ul1;F7a{uRfT#Sh2s31U4I|1ar)M}Oj~+gG(CJ)kJ6h^DeklvFVr zB|U;F4byJD_y>DH?k_bkqbQH3&7&1>sA@IwZ>93U=?gcl;BuHwX#K@MS!e06DBj*8 zY__OGR`kIAJ!ll!)F`~w<%RT!QIv)BT7pV}lu*iHnD|XAWno;Mg(rv2V-(n3yM-sG z@|33q(kOWKK3aHkDNi{_hfOPZO*>O4t;9b$QsvQ#cWEk+I2}k2o`>N0Dx?*)myH7L zG!*{|D37kQR&ZZ56Zhw{d9>oI#+6-ppzwHfr_zd=2}XgHZJiireItX;O{sAiD*0q+NqoXPcvw~hQr7*|KxdUA3Oy_< zl4ZfT3>8WgdRSJJrl2n{t|*-~jVSc6tY}TCaT)3$QRrb=J=nM=uIo0hm(F@g6na=z zPnH!J()*>MicW!EI~?d?Surf@RE797{d87qqR_*#Vp-Pr-s#pGsvlA4VOeputN}V} zCQ;~NS-osohPp%)dRSI(q%z83I}*RWU#*S%MLJ!OO z0x4C)!!1hQ9IUfGpDufd9+owbWlea{Aeo_}h(Zs`8l*5gU3~)^L`!vu{2RLv0}nJuGX)2ga3smdrvA%NohD4wm0H-(-D36na?Js1Jq9I2YO?%h%O0YKWsT7kI8vm_ard5{hl_|p56c>>DaaaKVD?f& zC7mO)(8IF6L@KMe8>p&Y4YnAnJ5lIiS>ssNyW`8N8R`^K=wVsok%Hq3veu>M;H6LlHxkRCdWqr-Ej^xhyr=i^E$t?7+tZ!J>kmGKX3>8ikdRW#3 zmQ^S1$~uNRK@@se)R68O2rO=>*+ij-Wld&TjaMvr zZYZ|}80A0@%bLQn?k!1N*-%}GLJ!ND%Cb^EAN0^r$B04?%bLcr(tA9#RHO7l*+cZO ztm!Q4nDb(+$(l(NdRW#Bmeu{x(VT{QPZWAs)=ZWam#MjhaxRiRL=VfFg_QN0t*<_o zj}V0(mIaS>&AI{SFGCeuEVIzVvgWWX@4;irRo0Ik#t?-bmNl1Uwf?#9D?{xd3Oy`q z9?ODjfM$AJ4~Rk!%bL%!;9AsBIhV+Bp@(HH&=fe}S~Nyy)gcN!EDK&IGc|MaJu)n_0S$Bv+56fDq zDHvDZX30w$s>U*CNj#4P9+tHVDeJff>8$xgp@(IC%d(o6Ydg(Q?(meq*wDkWR%;6G zhjFdZS)GYO56fDkDHvCUH!J!X>L;Sm!?M=0aecY5bNRJ8E7uCh7iUoLu&i|~Yjydv z+YA*=6na?JdZg5O`S9(g6%DnUDD<$b4J@n1_Lcn&l>wgK6B~M1)<%}~!|q%K4b_<_ z^suZ=EXylpk7kD2N)&on)^|v$bLEPr@Aeuh)hgLT^sub&S=P~Bk9HU;h$!^1tj#RT z@APnYLv17qJuK@7mUVmYlH7($@~!M4dRW#Lq~Mwjwz0G36uhSAMr)$b!?L!rtfJ}W zPdC&IqR_*#wjrhFM)6-O&oI;lqR_*#wzI6cW5&NWRMyq9-{@gkJCIWQEB^ICPeZjK z3Oy`qC(Bwo*jd(4vxq_u%leUxYxIT(R}6KTDD<$bT`X&3x_M6wm2-_87kXIMZcTxs zWzX=fW%T~)Koojd)*em4x{-OznmmS@OcZ)p)=!#JS!H$BL88#Zvi52Uvc4L-cYvYX z)fTZHaQ(= zs3}CDhh-gRj=vVZ$G)9q4KWBVL8ylvW_AJ>xQ`DSn*wfb)|JR zIunH+mUWC}$h7g4wmUW6{!8MzqHWGy%mUUWF&=wrlI1ALJ!Nj!m^--m2{TRce01*VOhVhEU2NOIunH+mUUHA&@R-l zo6ed^6na?JHBG4+8tMp9=wVsc*|?yF0XpjqQRrb=zp^Z-p`p5bFROtbmh~IUf*Shk ztW!jxhh^PhSx`emCE6^r(8IER*OaPZcb(-!6na?JO--p98Y-A5^sua3no?OQb=EgT zp@(JN))Zv zzv}6%yF{UfW!-04u)hqIX^R{edRW#Uno>24)LDK+p@(JtsVTL;4AqS&^subI*tlTr zjni3^i9!#{dcd+^?KRYPqR_*#9wL=i3@VZMcdSdfhCw>(H=@wPvL3OlZbu$JFw{Gu z(8IDGBL(j+fUF$_w%;~Xwyi=E8+sV^1Sxp6THJ7S%k$!~p~?}39!5Py3aSp<-HAVW z7^)pn=wZ||q%sNudbl+6uhpHp8vTeu539!CNTm`4mY9~St^suaVNU1dn z){VA0>%fnaLJ!M&&$8h7GSpv0p@(I`L~?ht&Zzb}E8{Mig&vmWhLoC76SgloVW0UWfQMxzMM_m;d)}fI3^jW3T1bq23dP9!4ccDw}N7vEg0E7(<2ckurK1l>(^};%;%n(R}#I`ts9g z!GDY>^ss8AL`qeo+ObQG4dwk4u;QCKz{9dqA!V(Gp{5Xp9!9}Cp55KbiWcE$S#zZi zeO@kPydnxcjDq(!ySrrulh}H0-@evlb>1sg^e`$7Qr5Y#T^}h&i9!#nMp~p)HMaca zf6q`^_Q@>tu&i`QS*u~FV4~2&sPstri$>u+Ulp5I&Sa>yM4^XK8IZ~&yW;5FKc;}8 z+~TE-9!6zEN>w9WP@bpq6X3z$h$!^1YQX1cn%5mt-7MR{P;-ew56jAol(ia$x=$2( z7?lO7!lFO0c6c6nu-j0T_d`F$w-SMeQCX2nFYk7IS^HHbLro?MJ&ekRl&Z$>tM=SH zujj_^M4^XOBRf)RZtOUBqlKX&56CW{hh^nJ%32LWJtGP|jLL~rHPI-{jpy-?wi{~5 zL79afM&&{(yS&@6ZqU>khDvux%IINKZlu)t>-C}TTMadbDD<#uVudb^RdQxVghgG9EQmPua@@G$Ms5wNT zhh>#O%32LWoh1rAj4Fv#2GJF`Qkgva>+yz4b4vCQJ&f{13dRN7+NKe|8>$IW=wVbT zq~KXcal`S&gRce*(bX776na=SypU4W=rF#;R71I+hJ5i(c<`_+Z=|f%FjRk{(8DMn zq+ni%OIgSE(C7|^dP)>}7*$$R(3h-->K-&y+!@fsXQJAA2%pw0uY2MC(bYqr4%5~6 zizxK4YLr1rRU`F-Tl)-E=`6G)KF8ITRTe3ARC?@LIBK}g8ch^>SXMcf_2#$b84b0Y zDD<#ult;>1c|*M*3O$UffK)xvdl*}`#IY3(Rr(x^O1wG?9!6C}Dp20-825bCEknf- zg&sy#Ldtq}Fw{Dt(8H=x87WnHI6D~XIZ^0gSyeueRrS2=IC@xC)emHiA__e$tJ(*$ zjuC|(mgV<>tjrf=57EQ2{E^Bl?iM#3)&H)aU49oE_&XAX9+nlrvfv#HhMG+jdRSI< zq^vW_P#1_o52I=zrB=2aHMdnaROXA&Plp3NjH-#0nj6JS5Bb7S?TA7TqiP|gj;}?- za=*T=kFQxop@&tYHd1Ov&57%L-B5oKg&vkw2Ptbc4CVi`92a^RRTrsZ;%->o=H9yc z%uv&bLJy`969!51qDx(~Lqg|SfHx1=}Mat-5R5PTkl{b_hQRrdSXpWS%@`n17DD<$b z7D(k4T@g1NT{>s1_gK&QGen_>Wwm5kFA~p6WvDd2$Z?^EWd$N-t-PV?5rrN`wL(f& zenz&+mkc$ADD*I@HBxHM-x@q^yrGT~g&sz=LCRWrL#4PX$AunNjkZWxD{rWlM4^Xe zwL{9f+Pu(}pHCEeSXO(M1*?srt`LPDmem0%Yvm1<^_m6NMf|bwSEnc|(mO3O%eEU6Ha@-cTorLJ!LdXFc5b!?vl*b>%bu zCdY*ymeq}ALJy;QY6`|MZF%=2hRXdrXySQK@GvR{shr|Ial=vQ+bxw>=xT%!g&tOo zSftd9+P1#mQbSEA3Oy_<4yhy}2gcQ~kIzg)9U=-njOvAyyC7hz+MxL_hI&U7dKlFk zDLB5w4Sdz?ksep+o6wT@q#E$BarHq;jjLQ_vuuV6B?>((t1nX4aT#h7QRrb*Kcv*S zD!CUcX{dcfp@&iZk@6C~7dIT)TXdc4r{B~5H&N(e;~IdJ8rO-2Gs_t&`WDo};Xn_| z`T{96d*RgzL)|6{J&YQN6g)!wT>Sgy(L_%}h1`ZD@jWcyVbma`JmuYv;F&*XHPj8F z(8H*~NWr=xZa89x51+9?@8ynnWMk-I)fj@5s>baA?Z-HAdE%NoP7U|dD@xE2wG z9+owhWx==%b%iMOu&ghU@(=?MHyja9?aD(p3L^?VENdcC)@m4PCQ;~N)Fh;`iGCy& z|00IfZDpuaM4^XKlaYe;3AUb1w)Zwvnm?tA9!5<;N>u}1DVE<72>#kcp@&stDpIN% z@Jg|vRuP3BmNgA2Yc&j&>Mz+t^e}2VQWeGBK*B4WuxiXlN>u}1 zDK^wZqR_*#79eGQhDUv_)4*%1`&lG zMlD84RRdlrmfvp<%^W2PJ**l_kW$rvSBedl^NH*NdRW#{q^#92RCl7#!>DCQ6&8)c zbvC?GY^a??p@&h+kxDPSg0B=CD$`RbqlZx|kW$rvSBj78xzU9v^ss8IL`qcyUMV)z zBcjm5vQ{Bwt%jlcKa)K~52LKt;JHdec|4bmp@&stEmEo)@LZ*#b`pgimbDHkRe5-&SbpC+q_lh?v(Uq`*0U^l zrPxrv6NMg@wE-z>N})VHQ<%vnR*@;e=W1n!>aK;QmXRsO0l7~5QQF=wHYaEH4Ihbjm$z1qkcfDl(-wN znBkRTL!BWCJ&f9dlsYQmm10A6eJiuj!>FxDsd)%jl@)X~o)d*0R*h{)scQI?AJp4W z-tS}7kXQ11BX%Hco{%le6B z!Q+%8y7IM%LJ!N@%d+5cilGJ*g&vl*k7dEQis*6uKoojdRy@msaT)3{QRrb=`;k)5 z+hltBaZ|(aXq6R5QQF=^(V`U{i)ndL)Azr$Auo2 z^%qj`j2ToTplbgPhMGYXdKmQpDX0dtTe6dTMngRy3O$T^$f#T`Zk9JxgH*DI=wZ|& zq*96;al=ujYoxcK77~RXMmUsm#LzA_cDD<$bXGp=LL&z%Brr`}kWlt@$(8H*|ky4eve0|hwLk%SgJ&bye zl&Z$vavNd{^%qg-ad`HQj))715Iqu)(~y!qK|y>1Gqe#TJdt5iK@ZD%iIjEr7SXe} zWg6KUdRPr#A*E^vv)53oi9!#{dX1EI_8KZtTA76&M!i8w)evT{q1q9J9!9-o6wF>j zZ6gXjjCzNZb@m!6T{_uA^f2l@Qfhy}>@`#bQRrb59K!N5bp?*I*HH09p@&u84JlQ5 zn7xK7kzV!?JuE8`Qr6jPs7XYjhf(fGsmjCbHPmaO(8H+2NU3VT>@`%k46=vlVY4?0 zQu1CoSBu$ZFM3$kXGp0>^ylgi&*Y_N?-|NM536BPq*M);pa1*3p~hvDeLxS(N`{p6 z3~Q)>Op-zmqmm<~&af%gKUia^H$E)CbQ7Ps5D4ft6``v*(HS@ zMy1u`g84Khdds20x*7#?ND4iy8tF78ZaC%*+T7JpYl%V+%Sw+FJP!cW>+!=!8>)Ox znS~yfm4RhF-y68tQ2U5N56jBPvNCu3s*RzVQRrb=IapSP#dFUZY7tTBVOcqmvYzz}^_nR3Fe(>P;s7RQxG1M`l(8DU9A1Sp)-RL*Dn4!w$mpw!eJEs&tO5O`;;_oYP zFI%sO(8GG@ffQU-!q#!~_fJ#kxv_w<(8GFIko6FrJup;}0wCu&lx?>wT+nPYhMwLuR3eWfjrm5;q*Jd>0%u)E=VH!?KF9tTzYyuQyb^f-(y| zEUOq&YFsn-e1F|gXNW=%%PP*Y{#wy>i=o;Vl3D0sStXEC`)hxNE2DDg{dJQl^suaw zEDOFbz)-6T%PjP;EKfGB8$phRhKea7DfFl0py5DvuP53$n({`nIK^275^gJuIsN%Np`U;Z}xf93h(Zs` zs=~5he;I1MugpRZ%c{!8)w5pZKtl~FBPsN-tZFQ4%GV8-8LC-XNuh^j`RQ?q8@Rs= zC%g=Gjwtl7tXfE^M*;B8YC~12B(u=NsM<(b z-&t*_6-1$jQFV|KKXCiA#acf@WveW+(8H*@NWtudN7=cK#n(-)t1*Ho^ss8wLrPt5 zbhx;qnW0Klky+?rS@n@p)qr;r8tM#D=wVa?q^#92)WE7T3q6c#s3|Ci`y`(ZhALT2 zQs`k+Bc#;zJUlO2NLS+mQRrdSXpEGq2D}PmsKkCU3q35WiKd{3@EJh`be0!U=wVq+ zH6?C1Dqonf(NGhKLJ!MorYV(`PiH+M3Oy{Vxuzg%`&0KUhMMXx$Auo2)dDHC9zJgt z|66vQRX#vc=wVqcSr&W`f}xt!kQ91YRv=PvEJF|HjK2B6P+e+C3Oy{V70cRiIayaj z4XGn3^subfNU8G|eEz(lX4aDwdRSH)mi4}AlQo9g*g#U~VOedFQu7cVSEkZ6Jkm%~ z=wVsySQgAfLltQ(DfF4r18bK6#SXKv?HRWCQbB0>cRA!-vWpzZ# zx&j#LNOMV{hfzUD!6QUiqs~p*veQtHT1pB%jOv7xs$u>Sd$SoTS8GY3hf%?df)${k zu158?l0pxwMhH@B1%OBNhKeN$JuEBKmgS+d77>LWmKA2pGF0MrvWMtlSx#G4ex2nc z3Oy{Vvn|U|DcZ{{^suZhni9JUSGLb})>@*_!?L<+O5AV^Y<_H{p?)U{JuE96DYcj3 zNJ*o!vUQL>L=VgA#exwA=wVqAwk$)93zigmSXQJh zE1k~zAw*K>VOdeOEJI}ulN5SbRF}5s2dP^suZrTb7~bcb61;SXM7vR(hRvBtlZ?VOhOx zS%!KMDJk@@tUk7^OghUWT2km?S$%C;hHBbFQs`k>{cKsOb=JV1l0py5>Tk<3)T$Us zp@(G+uw`Y`S?6OVg&vmmg)Pfa?!6?19+owbWx+cCna(QJTTe8Y>OmJx*> zhi6D^EUbR84Q5$VgEJXyIs3>g@Fa40#+Yx19D)?QS|M)G23Ntb1quq*Jn(R8C{pTO zrY|ccJulCiKt)m(csMl-Dc4z3C<{EC8vX(5TcW_jsS!wJf)0soP3ofJ4Z^A#$Eb(k z5fpyIrbl1!jYLX4BMpk7UJ?Z!PL0x(xZ!yG-NB-U%F$O=9z24A!h6JEyQ7hU_xFM$ z``2yb4ONvW@bIiLNU7^6-+9@07%G$~@bIj$nu4rb9kW+4)E1(^!?V8B6jbi_#x<84 z>NHW{;aTG}1zC?MnO$^o4an`ifnc@1@fDDZG<0#dGzf<*o0 z5eFVYS!T;bq>6|fs9>kVt!=SfJpo-LJ#0uS%uWTa%9*s%Daj-6pd zfrnF5ka9h)sWdL|aB3=2aIFs8fyt49ChJ?u0*|09)tH7<0YN}7@0_}S&rk=50*|09 z)tHWy>uOvl3Otkr9TM9Nq+lI16;aj5H9%_M;nd6zP!U9dM^Kj8I}0flRNJ@Ze(VDN z*g+I}7&RNI#AN;U>CwW_uH1eh3Oqb(4pOf7*Aqd(h{40DxkzQ8)-$*2BhEi6E5jGE z8sHI>rSkKTa=orrCJH>9nvaxv4sHItN`IKF_C$e4P?ou|0I8CqhtQjPqrVoPj-`4y zkSOr*tc6Iqo*N5@0*|09`)d(Wu50*6P*6kgaBA@fs5Ap51s+Z<`2gij6nHqb6sdHy zzpkvvU|Efu2nsgvaBA5HviedMcsR8jDR=}8Tbo=*#(_g_lPC*3g0jqw6-c?B8=Hs% z52sdYO58|r&OJsHcm!pc8>^5KhX>A$wu7!UH9fpT6nJ>nw@A638%YMq8iGeqmbtMS zDVPDU6?-^RTvn-S)FTQ!oLYmFS`T*=c`Z(5iV7nNJe*pKlv)9%?{JDwc2d+JqQJwc zbx6VctY8~heXJOwq9zjs9!{-C3Z8|4E#s-3rwp}$DDVi%vX?g?<$5olBnmv7+K3cX z9>&(@{-2FZ)?=c;BPh#W-h`C8vbx@Mop{rV8ds*la({t`XMLx$z{{^dDiQ@Ap7lLa z#RUQFcF5h%awhtQDDd#C%^%2GPZW3rWtmYwAf>LlL(Zko3l6!xB?>&8+JY3k>kPJ* zdtVI~i4O;I1x)nne_NIQ1i=+C6Nt*ih?<0uQHl zA*EJ;1uvuK7-~OJ;NjG6q}2Yp(>-x9LtP^ZJe=Btl$s53Ig;lx)N7)^!>OMb6;}SF z<@ic7RL%|XaB447>QSOk_*~13DnJx?IJFNcwQf|&lc9m>VI`u#!>M?r)VQ1*<1ZPi zEm7d%)PAH?4cm6fTh>s~M1hA>2N<={vs4yCjUx&?oH~e<+RKq0GFq~h5d|Jj9YRX2 zy_0Y4&1>fz-z zGx`}S-7q;fz{9CyNU6tPFK+DWYp7C0frnGak%H?e*vc1-w`4UZ3Ot-Tfs|S|O4V9r zdF(KhDDVi%awa;7l&6nF$>ITM{ms)QI5)a&4uvk$=`x2r^f zhi9G9S>WYoBFAu9dGH9za&|b2R7Gk%MdSLtO;%%~z{9C?NU8l*_vP`1h8j&2c=))^ zBh^e~L2rJ03*TX<#LkDd-`1Yxn+H>~KYOB?>&8x~eI0 zBf+>v69pblT|-KZYhcoX0VZocQQ+a!bxo;$8R~nYz{9Cuky7L8l;O>GLmeRsJe>MX zQ{qN~aor;dJe<0Llp5EKq~CmPvOXUv_Xc=4^*d6qZipMSsS$b-1s+b_L`sdT&bHrf zn5@P`frnGKG$n2%7*{`{z{9EANU3r0{WX;+@NnvmrqpOm57!X|9!}jwN{x%}uR}zE zhg0`7C2k}b*B?ZIhg0{Fay>5hQF4EQhf{xO%08~FM1hA>e;# zT=j_p52qd=<$7EZM1hA>4>e^U*EpiU!>LC|xgOUlqQJwc$C?s15{&CKQQ+a!6QtC* z`0@3KDDZIVDN?SFuhgUEUIq`Ro*|{i#gDJzM1hA>e``wINHDIZM1hA>&yiB&dX>7~ z2ynIG8J!^Gq@)KsFt!>N~=f`sU62SNXoL%jRfPmP84`J^%^PH z<8q9Vl?M-}-XP_AT)Bw?52xO0%08~jM1hA>?=&TDBp6pHQQ+a!d!*F3_&gj$6nHoV zyUE?n^*o$T6nHr0h7?o-#>MC1dZNIiC}9#?BBaz~hdIM0T$DWAcbX{hK${N7J(VtQ zCvpUJj)?0O>kPxYQ1J}y+C8?cFADD1a@M@+UiJSsqKzQ`-hF*qMLHvEMg@mNIKx^w zgS!U?NAz+!s#Ws{j|%D$5gh6a3XckN_Vx4d^7r$LjSKVhE8Q~Tok4N(Zg0N;AcOp) z`US;C21i5$HEYqLZcubcH^0DY9wEW8;h{mXaWUahUHoc@Mnby=#{|X21c%4P`qhwa z3!A{ALxba@V}#~Ikt#Sr%YG`bhEp^f-7hFSvPZ;!8kH~u$K2e%b<>*ut^L~K_^L!EsJU z5OhlXi0U025gr!QBRD2F(kbo^ii!@8>KrZp7vqfU6%$3q&M{8Kz~qPyRSh^}Vxpqy z7qKJbq9epFFbg6eFg!Y_hnO>Qor9u##Dzyk#VU;M42_PAjE)NG9UDb9VX)rDPCNUC zI*|?v6+2I~03$JCn4Caj?|NxbPCBvM{r&uF1_XL}`(a7E6Bt^8p|zM8eYyt6`PuFa z5akT00ryu6s%^X1AB$ZV8xE@Z!MnXeg2RHaZ2!=)pxOx>&@{|n8DRSHX0 z&HF#^8VoTwHa5Hq6z4xUTfjK|Yx)Oz`}jfkvKlLG__^TsDJRgopJD z3UkuA%lV(Bh`!7H9qWvP$o(7$mNXqGS5W((7vy z3j?E&r$({E#Eq7)lO!ZggoaL-3tYUK+fKqD+xaG53wN9Rz>JZ0U5as8kBtJ<`8 zS2ykM%7y;J};%e3Tf8eTl$kjh6E?OKaan3Hz z7{9tawk{mMb>$h_guL8-~;?Dz=9+G`w@TGb|`1IyxfA)hdDKE0~_* zzd&xF3mS+Gg$vrK*zmYselY!Pv5n*uuOa>i3mH|mKhhaEHHxbmzYp00{Of`(G&-VJWYkBTweegV78c`-js1wV zn*V?H*bS28HDT}InDF2zu~dhKLM&bq;i&*Dc=ZhHyen7BnwHCGJj=Lt(Utf|;_Mfo z|J0h8I_&ECqdv>Urz@{G7-czHH>jx|khq$6>aj*pZP&(x=f_WRiJ4eetU)nR!4Wm_ za`t~R-^E1!rxeTOz(1Q@TpIkd*%%o zWJC$_q18VpiW3<;v7xS=TQ_JO8Br@d!gdxAlO_=FtRdd8EuL>utMxzF;pmQWMg-&Y z6kWr6)U6@9VE5J)>)C%}yl~we6;~rV^dC~>0H{Lw4FJVPeD55@!SS}qRc z5P6Gc|H7p~!bV^aU4vt3hKZ8fOabBn8MwsdB}{Wy7PU**ksxDai8@7l3pv3hN;O}mi6sPj>pE#N_s zSv9PC5{~;;zGCV`i*s>Q96D+5H>>6m0oO(UdZoqXTJ;&GBGl~PUc!3IWjm;@dE5j~ zS+#(vp`Nh9Ut-|_ih9;cJdM>OI6OuarTV{*#&HBft@-o+YH0Yd8=f%3d_1K8N4apx zAUdJ5!o%RviT?F}9xeAMJdNewvb21Z4a;D4@r-wHRG6#v3GQy%%PF3>u+BOe% zaYdGor(ASC!E&q~?==&T(?0H&RsN^bkBc^7eGV08rRve*c|I}bgcf@E2NOWtRaac; z(Q3JD z3dRuP>=F)-hW{Z>T!ryo%f;9!j;{YJ15bg|1B-y*Sf`(8xK(sa_gHwOVVMy4LaK|s z(mOmhJS03KJg%QuXa7w*>ePY{0-DFcbD?rD;;K0CKW$uGEyHPxwG9(qzBv4EJB&|5 zi0;+Jmze)uE23xk97>dU?eRaT+`m3i;u;MzO^l<_zwd(>22ApQd%Biq3ek(ui0G() zTZjKvA7I&ZHTCfl@Sh%0{UZRig@sQXkgh#+?!l{ZdFuJktN4G*6K5a+n5PouN%Q~E zY56pucv(=qZ14%gl&hUQy8q9RTuT#n7$2m^ME8NG1OFfPt^}}+;%dur4(9+nTn)Da z4g>;0hffl)jUelc0Mhs^hVH>YB-X7ipmD(82^`$1)|2(wwV11jrR@Ai+G#uE4mH#1wVg4o z38d(@ow0##N&0PPJeV(L6zr3B+|HChL2}u1Z&@YS6_1tYChfZ|bz~G|UrdS^!hX^Y16JA%ba7R!ZoEYf%#HxjK zHUm^bce;{Y`=?VuDl?r`rRCU6LK1E|B2k01TBDs->1H~~tj_dFWvG(H)KSL0Ayq%O zW%l${=QDGyaTlUuD6*`(r_;Z9Zcli5M`t(`jYh(i5x2)3j&@drBjp|5sJ9~=E${St zI!b*N?!*0lw#-a-cM3}jsa;^cEG;ewMsm3sW<$gpGKA~~*%p_et{V8NNOgrPpery6 zCmg0A5~w(BtysNK5~|0PKRp^SAXhvF9kC!U!3019X~1rrh?P&(O1d|tVVsf1Z8uvM zN?z)53qK3Z*GdvviVL(*$7*SKpQoy`Eb6ZGb(NNNRk=GOosno6eSDFQ4sS&ns;>^E z&tSzW-HjHFC)A`>xFfl!aoh<>rhZvjhr6q?s-w&ocKb@b<(2MesoPgo8FqK#yRri6 zt82R86gen|BL%#=HDyVQQ(hJ=_mp)+z2Q<+K-gVYQ68zPs491tca@e`lu~2jYvgiK z6z9UJUeICY;%*o)gj&^V`V#@h=_Lj7lrCfYu(j{ z=Xe#0_C@!sdFRgRbag1oJL}Bvx0aMFMoe8E?$2=aC~obeVzaT{!Asg0+$9$=mo9mk zf#IGQm_c_YWy`MyKp^#GRF$g3X;D{(X7rn(R*XDtf@tdK3!awlfM- zcbCsw=Be_OmUfg^c6FAPW9-N;UelfD@ZtezH-ckmu~_5YDOAT3ABYv=;g8T@^rRv7 ztU;(rK2Oc7XaQaBjkF!8tI)Iy&RmsK4Ia9xS)y6jQ_*f_v%^zbhKv!rW|oY{mo2iHVZOFRmceM&oE5~vtkU-?qgC#R#~Tipb$UEq zm2OWIUWZHeit>uiQndC_=6g9)*TP6NDQjAPr+Hn}=k*~7Mmoz&qotLw73QQ$-I(AA zd&|A$Wg`!WS@Svz?T!AHvm#iSQu02`aobOK(@i%*qL(K* zzf+fly}X6%oV%o<+kl*TC+_uV#@V*+vgNb@R?kjQqrr{1EZx>jRNwg`5=&ZHz0xJv z1wSS!FnU^or}orm7Zd2ySfZM7@%@Remxg#+A)Bba^H#S)ZdT7vRS8B}D-pfXbiRhcqi^lYWa zH_N|9`p$W=N{z41_(vLTUt7LulnoThCKBZcHip938N-{MrX-t#Xg7=6fPbIBn zZ=4#W6<_v~ry2K^yn&CZ*-KF-Yn`mjlrW8!oyX}CoHM&ac4m1SmX1nko-E{cOXn%` zgc6RX(LS?}wL%Wflik5S(bX5Waq!LM%1Bp#vpKu}AD1h_RnmLEn69tO zbdE~UTMv@AQuI%%lcOe@^$v-vWHZWkW+wA6J1I*?rL^HVvb+3T9qVzj(*kC7pqxx0 zhvvzFK537xoebQ0QPXB^7_tf;BOADD#A%JX4a10$u`mwYN5sRz3L_l2bMaXpxTj+4 z$e9xc?i$xoHE>U%mD8eT_b$Jt)D{@HJCfzp49N%XT-4SZxO4eiV&I-yk|T?z9=QAX zy_T(KQ?d4X#KXZ%Z}E+q1=dg7>073L)J%Qsn|O5rG(L##&uMU z#!_hIw5Zt~jcH14fzg;FSx(K6d^E;IZS9f6mKcrkk|vYn$fBu7W2Jl+eB{fQ_}U+O z1F+Q#V3Xewm$X);N&PrdrVEz@{iqs=CDqBwOu4_K&Q;3lNGvH!N2N56#01BYjl?+d zC>n_+Q^=utvN{su`s8FJCRmSbB&HFMd?Yq97RHg-hMyOsP)L=9+G=Oa}v8w`5c*APniQQ4; z^Vjd--9F;k1>06)HJ?F|1}lUm4Lw~@;^Rnm{$qNpPhO^ndlk|>$_sR>jO z`Yq5csrXjtYVA3NYwVZwM0-Pc8FF{;Qf?j-KfCji0VXNvow^Gc4{g`+1^Nxg>o{xv zy?|{{qA9#&g!HNcc;GyfO+DD8r&XiMD%Wf(ix+g)Vc#9qfY~U&%2HDkFQCrgP0q}w z*i%kZF-z=J^}>ULc-ektJBN^t^vW;~?b}{c$KJ)S>YFqEk!9iT-V%37bl@BoFzol_}V1J9`xUKTX+oJ!FedQPSAvY@f&REpN%b1H?G1&uzZQg~U) zax8_HCD&4TS<1IaS#m9fm!)EhlqJ_vcv&j9NLg|%MeQg<3%fg4hYTBFW^k=RJ3Y}Z z?`jvBBkrp5n3JYU+@UDj3N#$UMQ_JYEb8wcTH5W$l|%qL=h4Q7x=uSC5>-sKdtj(H z*1bF$iVh55zfbn?AaQ5!H#X1zIKXO*LyZ<_o2iOaNR26*ZHa^jV<{A+sT+Hk#*WXb zNT7{+Ms5a>%1Z1whV9y-%liga^Gf4exWTG4MWL%Xyi5dpvcaKnu!uGe=0u_X@Y1NC zZ+5GCS=RX`C@ft|r{z(aYT9XhMl_l2_mmAsEGOH}Pmbj3}ww76CsWu(f zE+T#XtN9+UhR9{pc=Q+KBPG|G#Yh=wjbNkz@B&LA)X|L*P` z?2Zl5`f!@;HVSOzgPuD4sGE#?&B8~@L#t+Hu#s}n>N+DXTo(kAjJR-JGUdW`!6Zc% zbjg&9&RNv!8`%(?cuWx6(;AvaMr^Fq!IrHnq60BU{@be9D3d-DO%-;DBerA;g(H#Z z;Glzx9VY~u2!7dPMPj(N;qF&m?GUcA*WDSm5@EXS%NB-&=n5+dSY=HQqiBmr{H9kl zTHRZ92G`h!8m$Rz%;Es7v4-Zs-dJ>?H{4UtuCy(*&*)yL-V?Wou(XP1o=I?E4MC!b zp~|r{p=|{@BG5#r&pK_98e&gXab-pIF+qH!IF~+iB-retIFzd6LTBQcHFhZu~cYGsBQwvRv z)G3`BoKS|;B)TG{25TjpUtQ8e!Plq zGYibjb(RH|vTCxxOsxUba8crfZWJZh9A=3>PO_BqySAxqq3O=O9o zxi+%IR@O+C7^<~m{gk@HW|8?r;aYuebv>jfY;{%4KD5;plHRw~RZ;zxZKA|qT(OmP zV((B_*C>rPwN!H2xwPq|gQQJr zuFbR=NYkfHs@f@yS2t#}r`pnDWi4%K$>vJl((MxPgP=eEq$on{H2JXWdjHv!OscI+PzN%>!J#h#>@)yRcZyc#+>hKK*GFB%8Hb(1= z{LMLrD;!S-d{l+fe$S?E4sJxW(!EDSZg%kzF_CUQBJvU2jylD}D5GE9k+wcbSY}}9 zBwRDDfF!&#sFx&M)#_rQfWPfJduC1yTDg&+79!29RQ0Vjy-iq&Qs+VG6DK%I`Yd$* zkUp_$F@3eC%f+^KN5)81Da}gMue~1$>4>Y53C^${8IKWHB%@Z%Hu9PTn=DnO#z|Ew z-3nnP5(}9}L_6}@WTG>zPR3;9^~uOp+htIp;FGNy)mW)&p<4WQ69VGBeDeYE;z=1f zothqzp%T*&W>I@-P#dZ(4La2@#`<#1AW21~$wO5n($_Pzyf+nbEk}9%hU>8rkn#ss z@W9u|<&Kb8EpQK3#MWZB_>@I9?I^G7|1)7B-8B;~X6Ma>mvrS!xTxmk^;+A9HxDGS zuzvkP8WhraX%NZsr9q??2eBwsS%Nyxa0-_NaY`Xe;gmux!WMoltTv^)#pOz)ZgJ7( z_PE6rknXX?MXP>>ck|Zv_4Eyd*khsAy*{oj`P+CI68*le?TnaS*87NAnCoxEjAT8G zn1yOj+@Ew{PjT;$*1E#>u&8bzl>rA;iSEG#(Vl1|7VS(`t)W(3U8YN>ii5_^m6`w9t}M8M5|sD#l#@ITa>7Ag5wfAFx?L?6g_xuY9t>O4evLxS1<18$4zG zWP_Vp4XEp&_3CS9HGx*BpUcP=J6Rps;%KgtZ1I)Vk}ZyE)mX1zbyh9x@*tz98g+w_ zt*?l5hpn%R*^#!sM$!ehzAmcsvWeMb>#(<+A16-sjwZcSgCTmfTCT))W+=pAy5XEr zlQ&-Sjs|UHyB{UyF*p8EqLz#RqeLOqt8LcQZWW&%6}m`|9u?}C{drUwN|8ultH-8`O?_TrdE`e|CC z%&wUhvGm5Y$W)u?X4tHZlg3*l(jr&I!w+<`Z&oZ&|IVk@(qW*g5Mei2tSIg8Yo$e_ z3R2rT?x9w&q6~bB#)>DZ%5wfC8CGS?t`@C; z*`GbgofNe&uoAmsv63W0dA2W(aw$qzEH!A`xuRXDPL5Xv@F7+%iz1d5=3bCmr0N>0 z;)uv1pQ@v6X0_Is7L6l8x*pQGqy!>W6x@4ZxP#xEmT$wrYy0S`pLS~K?28O7k7BhD z-~EKL)xd_=KFWe-&PevSne#Gt!1WlE5nrn+TxmyNXx^V^}wvhJQv|Khnl;pH8j z;ZQUh30Fqk9(Op}SrLwucX*@Tj&QWR)9dLd^;NhJ_xstduMp))-VVDvq{T(f zcU6~cbxk76!ri?k*c)#Y=)xysM~5!lE^NQFtzJjmE~7&iwGkP%<(B*SG|1g0mf%)u z19lLU?w%HnDk!w1C)&F-whXTUU4e&`@cdJQVdo$rk;|<$Jg71fQdKPW#i+-Q9N|bb zG!RvHM8+fRPP9P5X>W}NG635EM*rk{_8IGY#B3{_*kff|g1r3CHfQ4uK(@K-d%|q< zR-KSvV7mR)?rOy6>`Jki3dp4(wMf{IOG$S_unb<=?Z&1rHQ27SX0gYuztgm})zEdj zqro1m&)vF;aEq|bQn#)mytf?%is*(QqroC<{IPWvkwGLhU+a`ZOYydZP{(RH2={ra zI?JN&N?%uLSyz?2GtwD}meI!->FDrQlwl}ehmJghZMASU9uQaLp(btc??|p34k4m% z%canTux+{=yuGssxJ{Qs7eKe^a_HjkHeC)~_}-?=!Rv!X|82S)4m*#svJQ7wWmQL+ zFYNY}ddn-_(Nedssxs{E#CK%{I*(9OsHq*pN?hFLpciqZfS2TZb=TG@Iul1sM^UMq z2D5FgTuy`AwpK2u!EReCm($?4t(A+{R~b$FCJpM_TDf?Aef`Siu=6S}i%)Pu2A)#2XN@`kdu1Zw1*4Nn{49?+;(Q|FbVT+;-n9_9M# z+QcZ=R5mFzg-`_VHTUD`Ew(wS`g|3&5!1a*2UrWncqVTFUTqoeTo4=R?p->ldzMR; zh&!?NAiB$%OqnF4Bj9gUfQ$l;PKS~5ar;x+V5F@1ezcEV3tdqD|Lz$4D)$@5z+g=6()4lT|9iy1hCb-fzlj*%L<|h`^dpRK9OIja5$mMe zQkrAvE=dACJ$+aN9StoH_YPqMzB6+NExw5 z9FtZ{W;fz~h< z%6GiVcfBFIR&FYYu5E2vIB>gt<-X2xygH?mwF7d;blU-Q=**kK5~Hzlrmnp^ ze`70ih~u`hbS%^R{dI9t4ZPmch_9-=ysWGg5BEkr?#j}xGM~rm>+JB9mLX%rfj3JI zR~@h|gV7apRuFqvwAD;&&N)-+Yi3Q@Y=FcH{N>?_Lh6g z%SJvB&034K(B2pcb5;a<_p{JRi-9>)=WAop6w$9MT3JEIFHL{G2m&xvf$-md9IJ74dn>aH;Jni*!Xi;fl&g zg|~w)J}SyR(NX4DIaAk(W93YEZX7FT>N;|)%Fb|w$J^!gR)(v(q7|hcjM1vR9t_{g z%PJ$@Q8!-8mAXzG>l<4|WAgrrWyEUK#u8q4XSB4+>#K~Gl~&;`vz6!wD>^-;Rc^du z#Mi|m)<~uav(yS3jU%y~scY|8-`FaR3jsN9D6c5%@VPPV?DKiURhSToR+jlHDlqR> zS%pghdRGm9cwuzRyX8z>d&m05R;e8;iX}LGt3&i?O{QzYLIFIbHn<#X@j~+#E)4S7 z>jeRN74Q<{9h|x?C$&1%)*tKc>m6Kxw+DxpM*Y>E>grI4mJ9Y^`B7(gU#K4syv4dg zeH`caSNTgrO#v5R7133ZD9h%BDX;NUcCA0;uBr9cx3$#;n(LeWi+WG&?OWMfT_)j- zx+C1lS0);$D_HixKzMbiH@Y$;UU1B!xt@Q6zbV*STUXyY&kus?vM^Cpmw}|ZOwhPO z3xht~>9J?%3e_$Qq=2A6^W90g_$!Hz6I^w*+g=%32G4GZ;hpLJqrIhMBPp3yaB@3Y zh|`}`Wym~R##4YoB0notUQgtEFU z*4Kx+>g!!9y{6HxG}hPQU#-8p7f-i!qh<$Vece>QOZhg5nuj&}TN)Z#TN)c{!BG#X zF6$eL;j62f|`dq9jMl_&(DMMXDy%7o#2nRewD1H_W`FsAo?d94E;(9~{!+Xp}%5Vv-N%kL2 z{OFD!b17_w*b~)D_8n1EU!!`1uYI1PwAR-LX&(YNVTBrq18c7z{Ml z1cjvq9`42oD1>-LDr=B$jD+Jqj+2%A0@iqR&+CW`XHXu)t+TZOLKKuXE+wFF4c@))mk5HYp8E+@pq!P=p97h)6V%C zYwH?=tu<}_foPYO>upw=n_C*2g8qO<%PeiFX>Dk4YH0Rj`*T^Pz9wkVJg>Rgzr0(= zw|QQmzM-|X9_?tA#=@txwl%}cg2Y10t!QknYn@lu$Q>qFr=6&(YgB65TN-QlnK~3p zJLhStt8H&@B=3`X?Sb~j)`rGJ+%+%I;2VE1^1Xi@zmUH?Ov_sns7D zLN~DdNW*DQV|`m)LwjR`zq(SRsj6*iXlM_#*7?~6(rk}!m0wkJLsRp-x@NAb;Z#La zOUpc^wY}Mop`76i8cTh1b5k%F5M}S}j7n=&)V1SP_VZer{42T#yQ!;Cg_X|>HZ=rm zo0|N~x;s0g((KLtw$`>lTU|@gzal!YS}~rj3HTeE+nXDd28=JLnJ*^3-96p0)f(%X zpue`Ey}2gPhCWgCDs_0%-#6Gz{icR4ZERPR`nHxIc6dZ>+dOr{a*Vk;zKwlI(5U*NgBXnW;V{zI8^bm_ zniXKzhPGf+eQR4C%ubt@m^%#?9Y(r5OO5x;EO;)ZlH5SV8{0Q{a8Rjfcq=-~`94!V zM|&-EJppV;5%AXs{FbLn+3;Tu%{39Gd?CUzSBkJa%|#@;ewy!Ngq9G!;3NQ(4oQ%u z7UN^B)E4K20=8$QWLpTcfE@B_(x}ujTUSzZrj%ht!q{7l!wiC~06LNOr;Wnxai!KB zpr(ZNX`w>0lTv|XD2Pungq-iQhiGcp@!$ZxD#?*h$1-~9%wc(6QzXe*y%tGeyx|#! zq?&Zr;0&jPV7n7irWGQ@_FeLqy1l+CnZm9RR=q}s2GB)?B7J=)c1K-@cq%H2b;(mv zR*4zWiqbM&CJsGrcX@evadD})%=jY| zm&`j==p8n4hKKN4N)oc`*g9 z2Do>DIiMH^NOpE1Tw}4zHH;6XWVjoPU9R`>p=5`983mjGBfhZ@$4$YHmHmp5zi?ld zD~1mxJAPAf?t8#oCvbN4LAZN?c`OC)CE(rw<`*S6K(eckr*Q69z??IK!EAARfWgJU z{A|DExQ}r99$vmv{nZe{vjU51bTOQX zAL0JjA-^wx8%Kc#$&MfCx39o3AinJMn+04&3Vx*DB8U9Kz%5U~kMxT>MCVwu1et!ohuauWovx^14y@8o!#+mq0d4s?lXU19ZI|Z0?%{UW3 z((ig;?l$8r_`L|sn`WGe-%jB7A7G}Ir7rIwz|1k@O#I0IjuIHo(cWLez%5U~kIEZ& z$nOf^ZcM?C+S|hp`8^NZA5-un{r>Hc-{f+a>s$Cx()`L~KjK#=Fbs$bGI31q2G(Zyluu=@XJGIxE*zfNOt8V{bm8vXvSIaivn|!8E4Xu z>h~gnA-R<7>~{rlH>Ti6_3^MnelG*}=M?;k!EZA#dspHBNwbSZc@G07XvUe!OZqJZ zW~CWt!S4saTw}&r@cW&>Fa_~tXTN8G`$GzT#i0KJm|d$lw`Aq50H)TAv(PUL%t>aP zMR_j*<_a^;#E;_D{Q|=^v@h>^;GRywkK*Yjhx|4JH~CPLT}=9sKOZ14sq`xYE|7vB zl{e&&-%{WPQ}84GzUz?RkAb^61;1(F_b4!LnsFBO`yXH?&f!+k{K{lMiZA;EQ)|Xq z@CyU8+>A5vqxKdD<_a^;g5UkXJZ#39_)&S^2Ik*poCUvKanU~mA4+!RCH-oFSzyLl z@H+{Z@0f8W{m5Ug5Ezn6$u1sT2i(t7@FRbD+9AK!fcvWhe))$nwX`og{R)BGU106( zN9C<@$S(j~OA3Be-V+`2TM67+Grs}jbs71~HNf0&!1?{NO}HI^dsSd?$dbP(5l8&q z2QKe$j^TE(#_bJEMGD-`V6#YII7jjq@MC^evP#X{0|(y*?i_)oc@R6?kAS&H;57Zn zEF}XfI~QGYzXVKvHP52!Y4Cf%ESIK9wgbi^aGG2bKf=`m)9rxYATXCX;CCx9&pP1u z8ZiGc^E1^iwezWdeCd)^{gNG~`*k23`iqMEvyE=W<^}cv?m&DfY4)?gmHJ(-x%g1h za3=l6;#`BD5HhiLX~I!`&htwQ9a-V1o?85LRwgUlB%E&ZOAH-Z*<~W~kMh%5nXGWs zjyn7jLq`%P9gzGb=6AU+$A^;Ur>wjZN8^Kg{4UoM_)rq|6YW>xC~myuceys=L&*+D zazF69T-yf-#pieJ^xFrR27ybaUnelD1TGIet@u$n&IIOCfz#TNsl24$Ex}jurAmZ3NC019T}{v4=re~uMIW?>*p^x z%)L+XA>kgjdMg&~4KI%#8VamfV&+^KmTF4uFe9bJ36o*i;&zb)O7fxf}Mu2}KR`3Dr!0_x@6Cu2!#ac$r7 z{_dXWfJ<5X;Y?*+V1H%K`V}*k_+#&pqWD$LejqkgS^L2L%G!+^m0{&`W$i;VH*BU} z&-D}oJw;_|$7ig|jqmyFh%T0wvLj{q*ph-H!M<3DzaET#uFQH(i9g>Q-=M^w( zXIBiLu`Zq1wd)JmNs`TtLgrbV7EFc|QJnY}%5Yx%bp^~>C49CaFSgyUXsEA685UvU zk5Y|;d^PqDR>=$547FJ`TG}9NSoOl4;0-;b|?E~N0B!|ANrjZh@o4;jtt`u7j6eP?5ExZ(3nJ1B^elUQ{% z$3NbbU+?=&iPxh!9b4j8;>Q&!h-!+m{_T7UZ^fFbL zcF`e-#=EFM$$wLcKiNFzos~0M;*Sc}j|A6E*}G-dL%tV+>o?}JOq>kHpV{PA*3JDV zF-7DOJdQ(*e@0oi)83E~%zsm5K5yL=A3$1H(o#Utt60I8LgB(sWtpwS7ZoY%-$GFR zl38OKY5@J^gZl?z*mZRH`Q9t12UV-&4HZ!|Y;PVO0y{D*y4K^5Gj^_s(@eFeE`Xlx z_>6VkrXBqqN4&2rfOYxNo;W&>;mWkUR_%x?ji0?1N8H`l_5cj#V4=*bK$zcf7X7Ux8kt1UyK;GE|Q&v_a&qKwKJn?Ku|{(3f8*zg!a`b@3BJ1WEDg(k6*N*>BFlo=kw z3N~DW^4FmJHM;T-??T1rELVD%Ic#mA_5Em!g1bVsp;`_6$*u}=j$ntw?dVX+jwi#q zWGg)(%#6VS%ZAouT6Q*{)qRMT8rWG0BH;j^DUmPX1Af&9B1Ru*jz2(^G@&m3Nc<6U z0(f3OH0y^E`eB5AVT9l?xaplBIP6CbqN=|rxXwSb83PqKfgkE@+P)d(gQmfJ7?nE# z%4seb`};Za0tD28;H>AE;K{EVWDoblEd8WYB`^0dS}1kBv@Aw?2bAq8nTBCF^;odq zC+Mhnpov5B$!J=eV|%DActT0x+%bh`{RkYC_~~fCn};@`ox~Tz`j04UzbqO+?TlYj zSsdG4K@=Am@a%@7HK!JAE-pO#dAKFW3eS2B2k{AL>}x+C6Pvj9^9hA#-%aP@6X16= z)YpykmH6*r>B6(V&j4+ei1meM&0&9_RShpe>#oJ`QPbX^%`yuW3^OQf(51B@Y;Zn7 z^ues5#@kT7$74Id$zZG{Fjg&okD9p&)ffWTB{SobAh0ct)hTm08t5cxW=`-VnEcpKS<}aaB;n}Bva_txSg=Y;Ai*;>WH<-e#+pA2s_nVlc zP$iS57KNs#EQ^A|7O}z>=n*uaRpPv`%G%SW!H-TYX{Y)xr@pD3`_Q8spx|ayUTi;r zmCX;XnY)W?=wHh4LiFA16nNNk&GBaf_YpTv5g$V6+l>B&7m@WZhfx1AL0Nlxk!uKz z_;lu!GrKP4{_|cw^+AZ0+#x?eBn1QXL#G#!gHBM^9R}_gVl<#Zwo;SJ!ys$r&NTQ( z5uOopTQL>@VqIXfGQD9M`(=LJS`f^CPTBW4W$oPOVW3iW9Xzzl{l%bGNehC*W8vkk z1@q!lJPLK<;H(b%9}P^S0XCLIDw{W~nY%a2&n~`sWhk3Ttri4?V=?}~W!VXEMmTd_ zNqam{ycyy5A$Q>T(D55~1&<+o#=3rr?|ydlA-;L{6@<)9_>6TOiSGe+_Dme{vwy|W zN9^oBw6iI}S%DGJY3ndGF)sO@^C*p7}I(wgyLhc(evb z-)4E#{b&J3^g!Ly&;>Q4`-#8SJm=w+(=nx>to;v*997EjNpJ~1EAhzK3fKF80~_Uc zfOD|7x;cfALEE$x6edH9l>zTIO5~X`8eukc}sA#lpV3k zqDq1atOKM`7W}XnV}<6pA7g21ufc-g=Es|nJu|p&Y*D@Mf#!WNv}R*cI6t3xz$Jia z8K@~gTI&O`UC~+#*8I6}%@^oDE`&UF0QkP|aT-8?pE8UwZebAw7EWbS=?g7+s_14P9*!#Jgzd z#hTpOhx{QJTPc2j1$>M`1^4U*9C0sh#Sw3LcjJh+g+Jh^51+BF!h37JYQ}hS-Mp{h zbPvx&Cb}-<{@edV)Mm%(k5#;6>kmA~~0$dt90G$JpsK;A~go14V3ttT`UW0Rmfdyt{y1 zN;bz&o+c_ah^e*B%Dx+d@r4gV;>qYo;x$Y@y1!?GYd5oFH1dy!rl7sC`bJ&D1REe~ z2(wv?F`LqYP)+eElqUTW3JM>>aG71lz}1w(`Uf{mfCcVlE|fQZjBC7ij2js)FMWwLjNg2C6c)I% zqXK;Yj2-1o8ta-=I^H$OJH8(ot{VCh>3sZhDt<&%cd$IY9C4?e(Zn?henb@aaf&2z z=%Sp<;YUREKb%Te9=)7(8U;ThiibEw5;+vIxEy{&R8MfKv3ahsXW|g4n0@mv@-I%o zkBH(qmX}8q!dO!|n0l>A;M!r~B-ak56J0xaxBqxb|Kt;J!gUON ziS&K^a(VoSsNZ0D)5nc*jr$AzEh*?Pj+>$#72$|e5Z_XGg_^8*zlD?euIU1zYC_se z`BDPsOFZYL;QOB7JI3WoOK0MHL<-&?jX-DONn2e%!dHjedci@y$#=E9?3pS2_Zft-42|NP*OeMqb4>d}D zM3mDQ<@D*}UDH3E;+po*WY;*f4@xQ}c{9iFq#aGe5vL?n19+&(O2%GXhJdJi$<|U2 zel!JnoG1O{lx@QInONxm=EbsC=nTq%Qo3>V#`WJYN?S^kc=h#!<px6M3f$!K(iD15MB#!<%CnR~DL)}sHM^gkH-1TjaH)D3Mx^|UWb^7G zZ6`8$q%AcpsSp0p5>ZSsoYhW=gF<$e+)e7Q>XJ-<={8&smB!3p|2JvFotpIDnMo%7 zsfkPdqp*=dHe$goViYvtf2qHrZkgp({KE0Jt&T(hpJcOH8|-umNrJLU2-e)6*) z-zHeNb}s(GM_1oE@Ihdo`KRyr-jsWOw06!7n}2`mk}Ec!`^c`Z+o_g}g6&egv>_m_W&?%aRR67{!y?3Bkk+y1df(}(Rl;f~G??```1{?Gqo`Kjyv z{88Yt3m;mm{yzBUH_x0}cKElt*|V?s>W6;_?1nuexXAlc$bRe_JkjVadgt`(8P9@wv)$<>YdvyE#PC598>7IYB=iaNIYx?I4W%I9o_u6UaJaO=OOFy3ZkDvUr;0k5e z{a=3T(&I1x*Ufjna^-EyAK0;F#^K95rd{owwd%%kb(2rMc-nP$|Lfz!-hJx8YhJ$m zlA|xY>Z(n3=RJDa^Sk`{N7HV*X#KB-#{E4s{I+_&Ht4^4@lLCX)$@;x9dl8^k}H0# z>R&PTo!EpM9=R~`>~k+o8oqAn{Xcp7tvk-R_7t@|U)*#3BPX3UG+8}=<_FaeF8i`z z`3+yadv5g|f4VW&mjA`17mhji(SyeHe7@#k*V6o_-~If(r>=N?)su@){&K$`fA#F0 zzrO6I-`(-zl$8fO{HJp^{dZ`m!{-0Azg*>iSo{2ATdzH&Zv4-B%ZFA~_YeH%jx$gC zdD)7$KKM!T1y{~F>Y$ao2lg6!*ZtA2asy8RxxZU29K_{IHWJTEoP{b%6b zyJy{e;YsHD`2AsP?|t%y8@fI@=EJ|f{rsuVdY_p$;j%Bv=e1t)-G(>bzvh-(Z=ct6 z*dh5}p5of+?hDSF^U8M?{^7v$=T81_3h}R|JG#n@2e&qwD;+s ze0!Q&f18T-oN@5nk{_$*Rs4@HzVO+5?pXY%y?U;=ZQ(V_N9y0|Z~h5=b54I>89wxn z|K4ejS08`qi7}IRYdNd@lE$U~8aV&3`ltW+oxrS9r`&S;F~8{h-IU>(MSpqX?U#QR zyu0PI<+o0`{@WK8s^>3W@KpDiM||)1y`__{+%FThR!r=@%(tXz`9o#TM*Z7;|AKWFANbv!?s@P}b9edOO~d<~KJ_c--TCa$xI7xP z^+OPiY zKGZ|x=TV;}lN#aGT*8cT>EGeQ`nWtA;?uc3_dNUo){z@9GzXra=f*cF`O@F^S)7Q$ z^b9aGd}jsuwWl!=Gl5}fz)qO&o_Fozi5S*Hw>n&T5O6B(c6`p~6le%}80 zCRt~F?_=CmrXzjXaajh;T>7Rn*V772vX~x2eQhetb__Ee-$Z@rE1y4+$Y*)lH)(qN^$*QR)S1Qz`FT6yo2Y+1?%{nC`Ow9FD$EWHQ$yeQygqNi zE{S|dN`78)42@J$VRmL18rzXIr#Id4a-uAV2cKg4#wR>)EK`P9y4D%Ac$<7D7|MsjzKD#l@Qvx&n{yXL+Vs>X3nkFVbk?ntacOqsFhM}ol z!W6g-2$uKk(M70vw7=1Xg-uGe{n*OF1a>&o_txe=ZEerkw4EfOHS<7)%K~nYp zT+A@1;G52zeC^586Zs$ue5kb&<_32j<~+&bdOrI&!0gK~75JufqBK>@d534X_S164=kctaw450t$Az5k zyrXei%MjFfR7Ye@28L?P<%)`&9kd*pnBs}}AiP@exlUlV)2JR3IYnB||B9R`TF$Oq zBp%~YrPqoau5+iQtmOi;i$?VW9Th*kOXN(`Fi(q|y|kSD(0(ZGs^uIfa;9rJXN#PD zw4B>T&hA>yW|32@1Bsx=lQi;o+fiqWG*QcWLFA0ra;~Dz7HNW(6Qs@nX`GhhqK=d$vKSt>i!ARq=k%{O<w+c)SZaRVsq|FP5W*DHkcqay-;qQ=+KMb7;&#iB#t~Dr<^7 zEXPOZi}9fzjpdZ$fF&)5VW^j;-pYv4a@dQrDBe@_Viba*;!Q z6U*^3Vfc%BG-D3+O)ST!mV&CE<*01v5lWupDHos;nImjAL(TE2vi8+-%7u#5$1%6LF^3xGco%vJj`uyXCF$+|~S zF^oYLH4iC^$|b4Z6I2XikVP#|`r&tf{_UUaqRHBoE-a83#vqGaUCLVAvEmC!6%fyp^nygiVieU`0D5OYPcYCJ(LQ?%uP%(@_7Pa8~yq)k(>4}90|8*}- z*8PHtVGOb=ft9i@{#$c_q}r{Bv2rntK^DbVE{j^q=98M&N~)6u6~h>09cqx}xoOuA zB-I;&ieU`0C{E?)(P@%(>bTv1DX9*pV2H#p23hP{Rcl`dPKZAysje1O{CZX&qiAd^ z%e7$oRgX%lG1R#sF^oah;mDOX{OzjgC6cOBP%(_5T-A)qx?GP4Duyx0@*8A5R{79X zQr65JaT3XoPrgA`fO42`kPVIHI$uyRj6qfnqf%qk#xtt^EM2+caou=E+yCya$$C;yF^oZ0gF)7FheXy% zsuJoXkr>7xs}Z@pmgzjj-rY1=rwS^DG00LhDzf~l`4bP8RKFKg3}cWLWK{Zc?V-u? z?Shj?3}cWr54qA07gQX5sieA0P%(@_RuiLAWu0=#bK4havc42l3}cYhY>>6#lehjO zsj6u(g2XTeSuM!T&tq5mIC}oNcdwOHYXud<7-Y3FD%B4gt5#!agWAJBE~psBAghg0 zsqO2KX?NF2DuiK{7{(y0-5_hY{e{JnYLTE~7=x@M7?oPCcU~?lkW^O)Duyx0ns1QR zee5MOB-Nh<6~h>0EzqcN!2EEMW{v%6c#Fg^23ZS{D}AHw#5?~Xsm9QN7l~mEvKAqi z$6h*r!%$^Ii6-j}LB%izS&JE!T3@>!ckt7a>PQ-HBQcCY){)4~&nu>Hd^Q%eo+YWC z7gP*mkhO&HTAUC5u>4Pws)Z^9iD3+~jzX^NQ~r7H$uUXwxS(PfgRG+&m0GU0g0hX0 zs-A}JNDO0;bqsQiHk_f^aJ`^n7=x^18I>xFY$&Pb&}9u0!x&^8hg_o#CDmPmieU`0 zj%QS=EV7}bI)pAhkQl}wD}-F54JFkrf{I}bvQA)Bs;pV#U%p9F%_zo6q!aKl_FrMj z(XJi-{>cuF`)W44x)>*s7{(y01G&;SI*%^6NK(C4Of+~S5;R6kI zZ@ufH9L?vS8+X}9l4_2iVi<$0rHo4LmuW2eElt*-pkf$u#-nyi-u6~h>0eOsf-$I&CNy-+Tx&MzTO{LvX>eVvHh{5%SmM0NXb zb~{i~RnI^c62ll|^&nT;@LR1_8zt3ef{I}b`qw?2{l~lLwhb$z9G05sg zu9S7fYioUys&juv#NLWxELR_+Qv0ue|FlNm(5dbfL?l=Xt3Vi-fY zPGVH54eMX~!9kL0_y8`8VGObc46=UcKfhU0`RPI#iD3+~29Yb{#(}=GFOpRM5>yOh zkQHN8YTWp7)h!rujUxd_x6k6g3}cWrgcCAukk60RsGrWX z_s*s~my2NxvQ9>>l-1e))rXSmf!r(5j?oEGdkdvRc1Bbc3m^0xOLhz)%4So&&G*X>`96MR330Z_O zQk|KEiry4YbwU^;)mlciGrlR^w*3LSNDc1=6(z!eO7|wqvyj6_=4xpq)!TxKFh;7g zH7c_FCwD!DSfSF7D@7I(VL+vOE9E)J!F_yu=i#&4g-1Uusb&f)!WdE z+3h!yszp!{#whDNjf!NwbNp_HNvdlF6=96BhBYdZ^_RB#8zt3m1QlV7vd-72NY*Ed zezQqnnOBFdgb6tfp2QVYgfUXB zV^pNCOe)nnK}8r*QUSUUzdWu=N|owrK}8rN)kR6D{wAmhW7P0sMl}}Sly3d>DfF1C ztm<-}OBf^7caf8yM_x(k-SOwWC8-t(D#944zK5LrJeB(=zgf^EslF|!2xFwWgi%ex zH>Cq7y1FFQX@ZI{Myl^4CqHi@kswvi{|by%$yW#}!WgN3fE*cr{(0ckUVT@FlGb)PwiN3Kz z1+tL{W2E{aa`N-k*4?<`wL_(>nSzQiMyelaREgzM-@{KBBh?j*N-fuSCd{ajvO+=@ zVT@E)YE)`1Nva`1MHnO1j~SI(t`m0r>erGgE~p4&r22_Ql~}G@1QlV7R97)7wOnsc zxCl*9)%9sXMHnO1)r@Kn`o@PRmFgowbv3e$RM#L!)|c|Dx89br3M)Am!hlNm{?Th0 z6}^Gfn5sZw`=(HAo9Xo*rETqvKYjR4;c~X)IPFyz>kMg&)Ujb5?wy)5JEK^0-nSaklkYtbfJbA+ z*SjyO4+Q*6j&@bATo#U*cjH`CUxT96)Y19sP@@GY?LZzxIdQr^>1j9Hpii#mKZ4{2 z>T4FeJ$_E#XhM)?diF_AbM}@SY%)o#1Rlo15~P`-Iu$1ioozWLsGk}cTDWYWZ)M0{ zQ+O8@CbWb<6cUQEoypmLuFUaj>d2hzG+bu@?_1>+E$G67gWXGev9)eTc(6O7BI*`Z zm(UjSq1ZsUJ2vRA<1~w_OT@nSeFMnz`gt~4G*BN{?D6`KfOjxQuMW{5Dukz1XlwZp z?L+AAA6nY&MP^bM?L+Q>qnHTDR-s1#H|p(bdE1EwG+LOWd=^?QBHGo?h;T2vBSmZS))0!@){ z4Asyv6iX}{6RDk+hJix-6t$Ny_Wt$5)P};5A^p0-FjHBW*pkzcrCMFYR`;Wzyakq^ zVj}&k5v;Hy^N^p)fvPnK3AJ)tVGrp*s43J$!NJR#FSa&cvb?7Oul4n-?-cgKJJ86% z2b-|tWE~vDFIv0D7EVq9_3HW}L)ch6hE0EfSS`X*9NgwfG?0^E(+uO+cYQmQh(rFCJm)S9K2} zY9tp(zLN!sS|L-2BiCd-Q@FoB+S|zulawZqC7VR>9`6B1@(_E-h%8tmB#%}HM7@bl zrxAVA@^JsC)-^yOowb>gP=E)}XlQx3cL)J_b%^h!j_{3MFxu%~6sj|IKx!ArcSslg zDguPYbf~wx7dzI2!^u(Xl#THig*YBUGKd_42L*a5G!w3F3ctj_SM_GE&p3ygldP76Kk!8`yiP26^R!WB&$yTXkQM774Iy%r78VL8I(-vnl3vAg^ zRaXJRA#33-G%}&}j#<%FwMG`*Mr8@NaYOA;?W$F5P+Gq#62(jW`+8j^L%l1zdpk=~ zUT>82v#GVzIE`V_s|<}@a+Jm_#YKn4E)`B=7)o}LqOnVk(wI5F($F}kL86Hf+N8Yn z(1bW9P(?VrW>Ez=g=_5TQb!$oi>67}KpH>0^D2W}UGu04+$GgHlfc_& zE+z0XcyeBbTuR_&@aDV>xs<@m;LCX#aw&nAp)}`Z$fX1|D2;5sL=8D3q*jG%a}!yb zBvIAMI^P6^wb>Hm#017H=}x93=$u8?32JA5z9vEa9EebhQJulmkg8`!JhT9u5f|Rs zA;@OLMGK@EapAfkSZ2gU3y2wU;kqE`WyD2umapCHo94n_zmlnyrp>Btv8hAVs9Qm@ z)`GW!Y^~jI1=(7(*b1_>7_${*t4_YfC#zK--|~Vr7vJ)tH4oqNqBRHK@}f2W-twYV z_tsig(z_h|jy~NPQN1&5I#uA7zO$k#yv60J1y1+Qj;e6lbgIB@<<5{=&}~Lv&A{8z z9WBku+mzBgC}Vmqv`wka1Nt_nw$=r1i`K>^=(eRcw|3dKrZ)HOZBA`&?TT&F+S{Dk z+}f4frnR>@wbcPhbq*G-sN;s5@Ro{i`wL^Fp}q!XkrngxS?nV#=xbCaT}5ph3z>Aa zu#G6JGx0XK0!wG_ZBTnW8d70;G^D)7Pfv{0`a|xTT7P|8TV0^JzS%Ff+^8;-aDr8s zp8OEhJlk?vlb(NrzbV*STUXyY&ksJ;Wo%cC>M}g2P+i6!q42vx3xmGoJ6wcn7Y0&5 zpy_;fQZD{VET&uN1cwE4_D_HuL96Pu$56bbWFskAK4N1bPJdFBA@gh*%lcr;uZ)Zn zPNrJz$2G2?M-T9F`XD`!qLstjR$JFt8=$gwYnh(*2Bo2)roGl5)AFj6CZ%Cs zTT>m8SNqroA==5xAgt9qud&UqZW*GTLi1{>scWfes#pAMd3kk7UCTmzwVBO2ztmKb zqEhDjO!<|}-@KN&o`ApF9q`u&%ukYWqEhRYJl|)^7a}Zkr3lN@Ttu>{Af#DB^n#NB zOgh*gCmrJTR2J)!r=qOV=kryRmgzEa=yAKt%ggaw;dNIqiW4Svp7Vn-p2^QF>zxmZdPb4nHh=6=`J=!s}v}A#L=BGG_FH`^GzkXLyjsCs!lsnc4 zVSlYDazCJdLo;R0hulNDU9K~}%?XO|Q(V-30>`c5nfRvXY^R@yw?5)S31qgo3Seq2 zam#xdF}~*D(*n$S0!Pn;O1Tn8FMhZIm{(Hp`xg}22+XU?L4Y(KAIVRaV;1svgcgSj zP3Q?!iIZ|?BY!?HYXr_%UWwZqxbuOzIR&l>xI2OQufWlxsZy@gkL>L3bGhc?L&+#t z;^yL912AU_oROc@uNt_!fcb~O8SO0jk=&{M*lz$IO3CEz4@^Yh?Bvp8_CEmT34u!{ z_dQ@f6}V(_{|n5a^m-ViWO93exkliU$^9KLPYPTzxi14Vbs)LiQ*gQ#nEw$tqhCoo z?+M%s!2C_%jB;hY5x*~hi4AhO$@rZI%=H3i$B+E)=fHgF05>+~a<$<@DH*?`fca?( z+^gVmJ1}PtF?K92NxzrnrTryt17_|@jAM)b~?w=dm&_brJqtf7{3N@+Qx^Hu^bXd_S$2O%XJVwl*N_Mznoa5~ZfE&M- z%Pqiz9Pv8`nD1HQWO)w&?n;5dAxly}i8}^o9tN)X zERHeiCvnt{4g{u4;PUae6+dc6X94qa3LNqK2QY`6jRPb*euQfQW;g|II&e1v^O(Sm z!QWQ;5x+NpnTEISP_mP|GtQL*(_YW^xWF(VzO3wb2=W8K^$Tn={mugBG6%R@f%zW?xEFx=s{`B@z)ZP- zm%>iJ>!^IdY!Em*yIcX>KY_WJUSfqb0Us;7P`rOdUHv2*F!LPX76NmEB~JE7C&1yp4a^htvMHop@sWODwDUuF zwbXO;dMTu2_3=6|?>NAH49r&!aO2_BJCI|ikh=#kGgIJbeBcG9CIxN^aLvFhvBXLH z9SvLuFuzHGqj{A_fcfW@AV5Mh(Ain?qswE@k1^K9hmu`8Ux9Nk0He@rv5@R=8*%Pr zV2-|uQ1;`_190w4U~Uz-Wc7PDFzYRGvK-_fPXhDg)g;v%hooPT+^N^#dKw=}$>i1n z)9wIwG%#J3IH}*aAgdpkb5r2RuHO|H(vOmCACe#8E_Hxw1nvsp-V#`2yq9*_54g{O z+2dLqAm!m>CHJVYh|R#9eglKyEzEkHedx80*1Khj7YHxPEn1>zU-UepIt;yxmPD!=EOuLQasD7;csu=kf1M>@kv$G40ubu(s zKPhl`0Jr^9q+~glAWDT!MXi`xmMup78Xe${0OmLcxTU}hI>3Dgm|;tt^waH8-b)0ATSo7v68Cd- z1lIu9{wzmL!;h6eAAo%SbC@&6hmxH?6K)WgD^uXe?{5I+sT4S>w^x99%K`2~U_N(% z8}q!&wLLzR?8-rMrvX#q05=<$LmlAifN8hH$@+*Po*oU%Gc+-aG#MXR9}-79vCe%7 zdm6pMV6L4EI2m8496x*&<0gD4B`fdGf%&xq+{3^;?*R7)VBWRF$#Q%Eh5ioAA7117 z*~MoCr>DOT|HFrpu^f^gm3L5J7!Y4p_M`s$bl}cS!H?$6z6;Dx%{cZhdsPB|H~#Gc zqvraH+c%0!!mChBNUa+(w7|J_PRb6#S^XyZixPx@4!{UcenFu*vjO z9P(QT+zBc8k$$H+9-J=WoDd(e&+!5Ju}Y4kNoc!0z>*yvh(NrfO{wfKdQI49P;}J zxGz)iBmJhmNm|Kdr(ZE}2MMfZXH$7ezj+S%Ee5V51wYbnjYEFt0r!0e{O)kb?^nP* zl7b(V_b(3leGJ@JDfm%&ciV_BU9zi>eKxvWv+<#1S0BW$c_SfYvg5aKBl;tJDB1C& z@}9Pl5Hi{EJAWhQ9`T`M$B*>8Ya=0Kvg7xgjp&c?p_Gi@I~y59`?BNr5pZ7$tQ|ip z@3cQ_tk{7azY^fw0&B;Q;!7(q9Rf%57Iyqr0CQ#vel)LeH88gsa7BLoZn~s2+4)Ie zUKF@I{OvEY#{ChPzox*^`1^0bd?|3e9EtpB{(1Yi@TE&uaw(4Q2;9B`%lTQ46DxqJ z6*xOPPXfO%FeeJ!82oJ|m+W#nFy{(fo(+!8w+jp)EHQp7`g&p=J!%#ke_v|Cxpu%h zRa2ZKKe!CITLpFu{x0U>)7zN8$A^+#c?q{4FtbzO z$PX%ksTH^}_}j|PWWOT?28S$J;m8k;1+K@y&)N^x0CR!B<%5pd&tzxvgIj>POW^GE zqw+om%yR-~XBR5R>jHyAmhAlCO%u+}4>kh#slammtjk;Q7t|d-l=AVhDlhqg7no`T z&e{)-112hPcI73z^Z~On1&;jS3}7x0I6FI&{jL@m9I|BR2iF64w}GFvT^gm#vh#zPCY+TYkev@O;q2mp2e`uo)~>uX zUv&&Hg94Y#ug(SLk`(+Vg5NKJ`IUiRqWz`<_Y5#^8u%sRh~Iw%28S$J`2pEw{5t|5 ze(dbBJ#f1TtestmU!_BSe&CuN@cXtyegnXrmVzJk3s(a33p38*`r{d3UN_@R@sHx^ z=fD)a%Z;bm#e&~{zzhi-0mVzIZ_Z(n;WX4(WyAPO$%s7*N zRNl9M`NWK~;8*k>`aygsX?8L3I|%0v1*S{jlC`6gfjK7yKl1yZ0&|;zUt;^%6S(!j z{7K-(;cu(XzBepUj`Z8;C;1Fl+N?d(GQj&sN_3fxI4_>mu61k7~; zm(0%h0<$3nzlq@YXJ9@MIJ^F6JaGR7X6y$zK(dSXWQXkqh5_+qXXmL2IBPra3fv5V zwX-v|w_1n%+JHO80l(D_`JD~icT?~yhJHT>=2?MDR&Q?u^S2cIsNS~QggM#&WA9Di zqbQ!f@kz3TB}6vdK|vOX5Dp=n1_HQC5}1Vz_a#@j5<#vIHiT1w1aKKvC~_$x9vtzAikw3J-|Cu~J+hlbpWpMm@ALV;^IROXuI{exuI?G| zp({|m)yBPMz*tqB0l)p#2hE2jsu+;s@`t1LJhKGOf4w~n+%gp#sNP84+H%U<2;9fz zkawz_^3DPGYZ>y$Plo?2%%Oh;8dvKA7p-DTD{uF5%Igi>urlO@L#tWkl$Q-$P8ssZ zzq|{~ZeN_Aap5d5Kl|c*#s#up*e{rG;6s;g7eDf1fl2Vi`N#{0jIk<42*g*Q`j`sb zoHFE5`+KgO@>T=4z8vyCEvLMrz?~^Wo*DZ64NP4+Xo9OWzYzmWXBDU0*~fn5H--T- z&P!g&ah1*&X9DB&l2;N}5x6&13`lYL^BdF--UV)liY=`iM}aw`;z}#W-@sJ(jq?oT z|46?&z?fBBpmB@l4b4;xOZ4w2qj9qpa6?pVY2}y%Os0w}tsKt)^Rkz`l6Fo&zMFu# zqT<5v+n=2qB7Im9zC12}xE8oS54g1|wzP7549tENS6VrK0_Ha_c_quy7Wsz!j{OCE z=%W7TPe0l>U7}(LN0&bw@jqVz7vp!nwg$L&RBWJfm?7^VFoi0vG`kc7Q~3`t;0h#< z`dd?A+Nd~|SJE!z*SZ7KzYH9;=TsE~Qe1)TGNlC0zg;qbTc~0KmBWmjRspk9#g%54 zFM#>B40&XiTfl_=DT*KkvP(7Gz7v=hDvtFlX+M(JQ^l~v!0lx~37mhs3qdIyz}Lh_Zx6G%OS7MU!=YJ3N-FF0PbED8%RI$f4zXoRB@%% zn*z+UWymA@e+bMDFL@>FtvYZ=f%(x(UP)X8a3NRl<#G9|H#6>62d=G(Ev+0qfEl3T z0@;PiF&&sWUh+!nS0A{?fO$v71zLC40Pb5A15#Z6%0cbr&k{KQ?e8XV6|b_aK;@u( z?@=*~q;~ILUPs^(%aBL?XdEz)_~QJ`V_yPhoiEPEZ&3Z_19RLL=SSXOzyw|6QUoe5 z$*Zqo7#X;{t$>RwLmrJs50q103UJfQkVpDGUQT(dfP1?f@(z?!-bvtoEJGf(myqi? zUyKi3x}E*hM|)tbzBr%yC3(rf%<#qek@o~JFZtqpwd~rVZBmFXfS?r7RQ@^hQv%weVBaig^448|)I6v|#{*5sN zAG-8%_{gJqPHSKuP;sS=GgE+>U4}dwXPyOSwU@k-T^!1*5+1_C!)#Rjqqjav_wQ{EEbo-9LNB;;)bX1|In&CXu~bD<1*WarS^IJ=Gy zT`aGpohiQC2$-fSuC#S>TNNV&;wzAyV@u%t+t~t~UBw2nGx?W?$|-LqaEr>2M|NHf z%vKdwnw<{;bD|7+Walfu6nn|@Z|Ca8h)Li>S7~-`q+%Eu*v`=a9hieNA2LNa>_dg+^=QGqy8H%YC*Gd;Bl)4aAp--n*F+# zQ(jNt2A3g^<`E8H9`(if@#Aj*v&k3d7DFEiIFV2s=+rWecQ40+`E|C4ARg3`Q zE6}(f16=2F$QxEpd1HZ_S`K;3%PH?^;8vF*kJ|GNU{0yH()`A+z}zT9-W`w^85|_t zgAZNYu1fk1N{?4D0*J3bez!Yty;W==|3Y!3p}-`Ufg`^*QN@&%Z+Z!we?K$_xFsr9 z??-;lhrQ+_&)<0v^5d@q_lb%vtv-$b^Notr^Y!T;RNkAw7(%!{0*#lV-hjEM3>?Yp zsA5X9AN9*_C2;=j*B`i1DmG9#$S(8BDer0ER+k}<`uUD>%G(Fr(K6(bA1^AWyuX1n z8a(?4?BY{zRNltGboIsg@oOW1nc$1_kw^V}2{5nt;{3?V1?G@1&PN{A?weNMd3qNY4zI;m|?y+Kk{Y)lkJQ1qu(pQZ1TnVkyilB*Sls>nbooMz&ud{m3pgfvKnB0@;Pi(L}|7 z6qhK6pYf=L56<6sMETz9gA3H|+XH7+v4P4<{V2Jd@+JY7Sq^#6lvCas;NB^Ryo2SG zcO1Cy%ONkQ64x!)Mqs~j2XJ*%Y#{rYA>=+_hWO(A^z#g07W(3R`Z=}dRlscU#rcu< z889b(aX#{>yAjK7^y%YmiIgD)+sJzr(nyMI8TtL6u9yqJ7y!7#79Ah+2%uPWi z1C!~6vshaC;Ao%j85N^(TOvy0NZy;k?JPqc;l2UpuQG5ofvaBGx4j@=Vdtn>nl3b+ zM+29jV%cx_#|;I>q2k!iz>!&^(lv2XD^O1YvrEO11}JZ?Z@y7TKM2fkDo)SWM;_rq z!h@tH_|R3Fyw<=BQgNlpn+S}n9P*w8<|AKuKJ`oO{;-M>3gRnJ{eBDFRTUe^e$n8s zc}I}c1s}RfD{l{ACaE~RygvF7|060!2*j80<32cQR||l9PQ~i_`QT`uZgUBF{@cp| z;C@uGx_&-u?r&gfn7ACeJa4xl&ULf_rjv@(%i#x?0F2!i=Ti=9AcIv5R27#+>RZAO(fP)~ z5v-dEWB=zPkL*9JoVXGGa6a`*{$&(!b5yKezdktX=Z^uiNyU-Aq96IR1M)AYfT>iK z%c9%QkG$%@+^6F7e0}6KhrC|E%q)kz1;D)KE6>M%_dwoO6$4US{`^53-1){I&Zit? zKU1|JsX0D$>E-ajk^SxmW}J!(WWN~T6ktA5ai!UBFEAHXoSv^wd1E2(mWlx>E`Q}E z{`S?m3@XfT`y+pPUkM!ii%-5ZuJ$Mgt_pAu1jM-qF0$W)z$q$L@4q5nH;(+(I$%Cg zajN}P{oFX3Z{!2>MHx8C_Zwh>YWUQzPrih!2~0;7SDJo9fSIJ?0_jKP$Nng4^{c6`ld&Y;ZK>AU;Zx2jA6&FYz={F6Sr&L^N<#-dAgJsAg zyIch3mWm6cAK@z23X<-^hpy7{Z3WDLa^M~WMp1Er$}8F*FrTQn()7y*=Cq0{O~2oO zsb0J6ax?*^mx?P*zlp%iS8;*#qxxM6%&TR{qx#(i%#SLrv~pYrrd}kMqcr{Efa#;+ z0_jKjJ^;*o6=%S2w_o$_AFl&*K*g1&-#5Sn)hS!Q`oOeRai!_k1(-1^t~C9ez`Ud4 zbp6Inm^7n9JCusAwP;woRE(A;A*f(Bn_G3a+U&OONwxt=)`9VIr-sS#{Rbuw7?@z| zlWZH%CwYi1Au)MC-^6%ZcUxlr0bODmnp=&T>_|zUI>wPQbRmk zb7SgC*lkdc zWP9S^M7z+z7ui2!s$=4m6#K-n>0{DocS%Y}PM8h#CXVZ$GC5_;j1&k@NbGJMWFKg^ zb?ek{%8Z%g($XD1sYwF{qx3$Bee4Ontx1Uk8k(sZ=!EPFe1=LvRmqeIokm#trcZk) zWt?Nih_>nD)5fGbW{>ETmNIpyeZWvR(Q<6Y#L46J-z~>aOdp}DHe#r~|Fp~mEVWur z8~c#dN$OlRXe@15RmY1_4`*Phr~XZvI4*tKjA^M3b9Dcv=00gC@WeUzkHO6G)25_N zoSZ@nHQ6~LDsqUN^>bfYp)ijmx7{N<6QX2UxgjejW#_;sv#fl2fo>`L7w4L?i$G;v z3^HXO)rb!?f(n{-J=if%&QFM<#fwCQ#iSCkWDvU3sCO&tzJ#b2lI$876)h_Vh4>s< z85m`evu;F~7ClWY#k*z2PWN}o3vWo645ZhUvvxO;727qr`7Svt_nMq_t^Ul4#k9Va z4hbQJBW2~Vpk$>$lU#_>aH1)Czn<7uOY}tEttFZ^yV)ygJWx>+o=3XLa$C+;Rz^gn z$ys~)Cg)L5a+Z-^LL3e14En4=S_+){V3AtiJJ?8 z!Z|+a2SL&JcwSJnPCh3n8kv3)lo{XO3#u8uzZFzle19#dczmxEdC1B#Gelm*M=U`2 zzU*2?>guVR1sB>ywCu7rk>hsFL_O?R4ZB}noa?BH3TPr{ojof%WmLqT=seGQI7F@e z1tElHnOx)!pf<5!G&>_TJ2b9SHU;&0QdW-G6<7F2DZ5UrloTLlwF3fB&Em}muol07bV60 zZdy7H$-P~j#pzVL(-Aexwy;>V&!#q4pC-1r!=@z`K-gN;XPOH+vtX|CFjtRjg^iOI z7d!5>X@!LWoY_&2qL4ydp{Z@LAY|vqBDJ@x-FcgmDA}B$cBQ*fR;tL#aa-JpjK;RO z{f^0|`WDGlKO5{&R|%4x!LqBrQO??B#O;h<3VX?M2OafNP4yFe@8d?sFC^0D>J9J- zhgoiZki-G3$qSL4hB|Uq9^KCvJZ6}V@vW~QlNFFuZyCDfH9$Js0adRrr zsSjaQ?m^T8xQYD?iksLUpxUWTW?)prAZ~1z>`LM+S$T$REh|ZBLVDYyZ4U?{huT>i z!PFSk^D4XER$X- zC^Q8GxPTo&{oh`|pp2T-Tg$FXiX(8bsDS^s7b_&ArfKv4>SAGVijZlX!7wwJ{l*{Y z^V`g@KDT-01Wl4GG!C}6D;>6>x$ExU5o&{vbQ)!6h-piAW2!UWh`(X@8)k~=9$~5) zA5n-V4GHySC7%X4nLL7ZRPw02yCH|&9Cb>jESl@uZbllMmW6cy&&WIq!LkpencV+Q zt+j~&rT{m*Em>PuYRgWP3iitLm=4JKw4{SAJQHgng)K&=_+KJa*)xb**ep{-B~wJO zsjB>(sj6jds%geaBfd@;Q)Sb`pV8MoIqp|e_DYn|?o5lcD{0T!owF|3m04?L=TNk@ zSrIgB%f+7q=NN8NdKhg=9}KP-rHc>9jXsx)Kb0FDlaQX@6*EF6XF{| zy`)obg5p`Hg(h;C#&I75f0A<1reKb7%8tq0;^K@BvJz}VCxfHJ4DABSR7=L>La8KF zYMU!x{R(rUjX`pQw%muTBWVI*S1Ki8l9B-KwU&%7a{exw{-x%~#k;HvI#-f1uE>k` znX>bsh#YsAmKE2{rbVC7PmD81F3QdGG37NadRwG~*UWW_Qku8Z9fw?26f@@QT2WIUP;?6d_{2+}uvqxfl)hkW{A;sw%mlw;cb(7MlXza%ei>!^(KYZ)XtyQ18c+7`A%5lo8) zp@13}PiAaN=srV52_WHJ*fMQ$?FuQapfGlYwD!0e2VEP8xyx}-Ww;@Bro{`P0inaqoo8hX!(28vAvP$(2<8PHV;tA);6Qsf?WpSN zR*-cqY(|82*LMbM)~w4Rf==z`RnDl8xcI;-Y@ zt0%2Axq-`)Q6Uj|3Cdv}7S!KBS4fCEI5Q+cIVfNPPDt{2r^Q^#yB^?2-4$WeDxz*` zsy?g#m-R5J?0TqXLp`8QI=f1g*>mq{cVzQ`<>Y`q`o%pYZ##|4m z15^w|^>P`Uc2{^e@0$3UYodl)6RoKx;1s-SqBU$=mj>ahC+t)gwyP&;_2;e&yK-0^ zqdh9aPL*L-D?{L^GHUCUVOPGkIfol<&PfqA=Zr|3bFLYyRbH#6Va8{7O*baC{lVsp zhYxQc7Qmsht6u~but-~NbM;!A+SODh4(Y{#JidkNKn$*x3l*&FJRSga(*v76i=sU2xDrUPHhJDo4}m`#T-TYUHEa8qcJed+YS_SbOrUR z;O(#9O##JHGWE1R*(DoIRfE;4t^g*45ycD*W6AJ5$}vlL zC0e(v7V=tvqQ&WdkL1H{$%q%ti9}DrqWdH*91#f-YiOFTqa8!{0Y;Pr(Z}c@nh2Q# z6(nYO9xY$FAf5DrSV3`iR6RW39z@FoM4}e{yc%~C6%0;TF8tp1v~y+DS){mnnN>TB zFb~nRaOh%F?)IMUhRSHrv~Z~Skr5y(FCTgsiNN}yN0^lt5IrIagWDF%&aPPp4VWP( zn6~tQd#Wb8mPe6rk(nLSDA&V~H80BSlZ&=IshD*zLRHb4RUDK7KVXj6mA@^l zZC65VS-G%g0o{ofcd`x!i{GjzxRMv_sFL;lEjJ+NN?woycGgA72=FK?qfSt<7w%b2 z1w*VS8Pi0H1@Mf$mrlJ1Dq74p-qX`gg1RKy5k2rN zjUXXWO{Kt?xI_E0mxVNajioF;i^Qz6L8zdJtk>zsZG<}5Dl}Ibnb#0$oS)96x*eBp zeMZvw%zi-YPq5udOp%;nqQi7U_4GuXZZ|C73vDT$eK<`rMNeu9elDX}jnZV9M-j73 zEet`ZHrvd=h>8&_$^=a9pm}VP(zQgTn|MvCwyJooRmE$q3d_>qwx_WwwJS3*!%c>A zBcg_u5Th<_X$+EGgV}TE&>#twxnhUs)rV4Cu@r}4YJpBs6;qtffbnZtU;HRpO_W+% zHK_(q8p=f%_2RJqxLETP3E##vo(s&VM+R_d7u_89o4Zh6^JMA(>bVGQ=8sSkR>K;KG^c!Js zOl`T!(aI4E54Ahdh#Xk2Qn00m8f@tyf-NwzDWZpnx6q6(mKtcXM}$S|lmE#v?&$yQ zNaT?nT*7~{AWnBd{=<@&3(2yJ=MDMR2yPGPr)m=Q++BGT;CWm?$%``6e@BgN_f!Wn z1GGPQ4P6DkUH*(U*X?f-RDLO%CCZ*uz02w=HY3l3Eijhobz&OEgAawz7auUuj8@7s z;;S|KAe^s9lx#MNH;RfO(<>LJaB7j2BYrouxC=@JwKf4U2ml+WlY>)LaJ7^`6 zaj4KBV}T|sb0cV7)q+-@`Vv|27GwDrjzA99SleTuit2lcGrp6RUc%%pWd#eUUFQ(U z;XP`4SEhJbxZ5lDf zts3=0as*c%o$uqD;x|S!wW({Wz(Z13a9}4AmFBa1>957!rPUi2Q&{3)hK5gsS6l6> zXF3FwS_@hSM(jz%w-paK7!!P$YUg1%CtkXw4M%Zk4FkfA{I7`CelMtd#mGaQnA;_-`?xTpKyjhd^tAap zRdW6=ifrM9K1%I~qB$|9D(vfXJkIoBwhUY7cFx*k8J1f6&1x3oR33F{k*`^avJa ziEWQ2DwpieL66Id)o52@=?n<=3VWCfLu?3GI1>-so%4^IA`%aqs^SC|1?v0C%KW9& zG-TV3x8D+1v+d&C*5cC{m6GDlo3d?`Jyes)&7$eX$I=QAOAMK(1f8m8geG+A7vw;6 z!D22vM|ZKE-WNmO(Ts}f+5%c3^FiOr`HAPrKkZ9AEUB>~eL$q3(Spvww0Yu6;%bL! z2OY+*--LDTO0KN*#+jQcbf)9#MKZ&#+nB@b!`99Ha!8TpOcAgs(z#GogU*X7L~C*4 zD+xoce&7q|PD&j3GA+GjP}{UU?n-8yE$)`1E^Ve}<-gm%ZOXS~`&fHiu_^lzSOX@2v&6tuO4xZN53sfA*LN^V|YSFo1p2NkT*WMYF&>5HD&EgFgVSSdmkBcV2&-C_z2Hm3zK z)_#%rAV}H|A<84dme8G!+|UecsU2+z;tdq|NS*VU9g2g8gu zwA)|H{ zNIk_o3&)O7C}%uA4@A@CX(*^(F|u=*Syuj3DrbFXa#?S$yMYj6Mw6`TA&!O^_A&oR zh%%EWv~w)Zy45U1^Ufoc6wNmV?v`Db5&|`|t_3?PWL>M6FvZ%e76m$%u z$TI9Aqro3=)PrhRzYm3}F%NV;5Ls9ql5Mb(a;orU+=!K(!z0U9hx#I-t>Ge)2AdQl znzrooXsp!WRVQP|vOjAU9Z<0==xe7Ptz-_bs_ms1+dZ9wM1P^^4vb*kD&~Ibo@>rO zZ~4n%Mz%qI;;(_Bn7cfBNQTV=5snUISg9Y2*1BYKb4Ry&U+?)fkBCk zr=RxZZf{zYLtJ#&vm9OjNnnMtbkI}XZSX$m$%#G(Jxd~S&{IVQIOxfD;o(&4*s!&Z z24|7uVjZ=}wXFOb&0Iuga@0TM&^skH|ILOiVHadE}a{Iih4f zr&c|-d2Pxb*r2`^6r!MMUvlmX_s|gIJ|H(zT_)vFn2n=6CqQixOF z_ndyW2-IETF0z)kiQMi0^|7FmK(Q1jDAwQ&P^{HXP^Sd$8&DkS{R!0XBJFoje4w@` zhTF3uZ5b$*@-!$6Psnr?C_YBJ4%7vK`v4Rlqul|DkI^0g#m8vB0L8~>&w%1%v=>0} zG1}ij@jB-wD4x003e_h2^>nJAPK^Y`T1}=jp_NO&i|E);RG2=$Xe;g`b**Qr8Z&b( z+wYmmb^_Lasy_*ecPx%e0tqzH(skfcA)-f%Iz3g#`jbmDXc9M*t-*N#sDG@6+vNHJ#nVkGxiiNI4KmnNFqvAb4Ak-x#lDK<-I zSP+huwM|o;&mEaZC-}X>(n%GyYzARInRH(K(u3COZz!Ri6J-DrFaYTFqTkjk>QEDy zjJ?|gP%l6w1K!+)#wn;gQ1qacK{^M5{lhPyxbKpmyCHC6@Xc-80gC(N5>PDVIX&%l zo!Y41-J_?`*;VevA;^=Dc1I4j(I#2w!@R4z#n4>2s=I95C zIfjE$qwTI`8&MR!7wVqC;+e`NKtDEnrWzmxu|3za(VnS)L4T3zg;k^YEWv*izra(9 zss}omcDhbmL8H~{D`Guxp^rDRK=*O%Z)?B#HJ#G5NQE>Vru+SZOY85l^+iW1u19+YXme6)m3e3yHD zY>I$PWDN26Mpo3;V~}6G5nsK+OjY$$3?=&{Vf%7FLXWlhSW|2tt&Ca#b77G^IysNJ z3U`p5pxA`O%}wNQJuMU#S2otgydPl2Ph5Kuv{+}nBQ zuB(XiFS?4RjX`a4-8!Kpq@-$UXbKskg#PrTur%x0L#I-_^`ujR7!MuPB5;IW+ptX& z8@4AC+ZHF#hP>U`$?lwE#3uqDEdJ)0t=gF$9P7j~7R$pJS~j6KV^~Cx`C+ph@-Wsf z)O@umv>h#4rm|RUac3O&(J4f%#U`Vvfr`ZmC0hBS-3_Dzf7%o{T2^KuJdUv|F9vKG zIIyR=TnvHxw5>>NLr%hKbOy!%abPAnFCMCJBbx$>qbF-X#R`wJ0~AM3^j&c!(VTTQ z7#%YrE5&?ER$R{k!Gtk89)`VsQQ?LROB6G#n}IjwuNixd=cw5&nZdsDruq-BDH$lh_L*|C;d@8CiRJ zf{ol411t*|MK<_yJ#96pQ=)?$1;wVn0;;x=T>VW@ z?~A*EtK(5%L{8M=xjJZs661u|EKscupGU;H39J?_KE;x>{V#e26>E$qfv}+~zNjN} zw}5AlVb4yr11uW(5v^`0392KBd#!o`&jK}LlJgEl;no#VGzyg7@KZ=Sym1HG+-=Nj zWRDWkGcoE&2vtg(yVCIM71P7q^>@rbt;#pfky|ixLHAKZ_Gn4GYKE7;W<|epCFP4e zF(X7X5kWYF-fS`Ilr?E5jtQ8y^bJdhyD^ideZL9x#raq^fyKz-z5IM?jB-}2WXgV? zl)>Nvi&+utC>h+FSXOXvO1|AWQOgKwVH;CK zxe%ONoST6&Ro&pe5!<3@oiiSvUeO3C!T$d;#w9y5c6x`kCelPhgtZWAsjT)L5!UJ> zD~UU`s8+QSQ7v?!a)+{T=yM8M+c$JB1q~75J~WK+OlF-12=;s;u^`iR}de)uU&>f7pd?a{gr z|B65vcIs)EMdB$)p8DvC6kqjO9FcDbxHxhzT4;(u&mbD4zMwu5)M!xK1@#yxKGH^m z9*1tK;|_;zu)b15HyuGS?=VozON*A3_!y*@@y)Y1a)TVO8HovnIMk8@iUT%Z zfZ~A7clzC~=-(Ws=>>|G(+24gP|Uj(6z6slRAX=%r0+p-zJG&ats=0*<$z6HP`od7 z4=7%IwFAWqC@f7ZD6&4*Gq=Ym6~m|R;J{<(=p8THd59th&WjLlJWVnPk7I~Q6Sy;p zA&u}XAGuB_nX9iZB^Ed?#CyoOTt~}{e(xS1o6+!W1DQR)8tX#Bh8^l)yn<)_q zMYiVHbNVAa6hScKj2brO06m$7r{)(u3MM%ux9~JghWpC;v-fr-1xp` zTg*A_aX)3=lceyB$gb?egX;B@n(x78(yp^10*jkAuQ)W!K7Y=mh^95MbAYM+wZ&fhjH&e80z>lT3*VB6I6jd7EeFYQ`0lPr) z06{wm{P2ANsE%T&z)WAJ#gCb-tOWtJghRAYSP!&8qBll7S&^u_K&g>1aEk{IfNzVl zc~}{UC0GDqb-+mK7$h^OTp_HPTNq9H)uSJX8(bH0=cTw!i#>F{>DX>PkIfC!VsU>5e)BR; zJpEt8NX4guD4p;245iU6zI-Pg~ z{}1z6bse`&T7WkX6mYCCBUCxAP^Er;L`M=vb+d}C$8wIl5Roe_-#M+83Q zJiW6Oj=vG)9TSx!N<|G*Yq5ATtq99VC~-p$Ibz*Pg|o#Kn3jA79&N3WEYSe2 z$m4FH4Op}`FwVOT&_NYcQpE&ipR$h{L5%E7gJx+kLK=*arW(P9XK}n50ZwZm1tW?j z!sfCdJ`_TYzyfs&tJqN}Xle_AQMnPIoW2DUzYC}pU@$S-niq(SDO2Q7q4xy$L-B*KprmZmUw+eN7*?Y+VE6$pW!~~ z;%^Wo@5DNZu1Dm!tEQ#bDM|U9Mredu4w&#*ab_pPxoB2$z!*XwE_#$1&*A z;aD4v>^SG5R2;g*Q_vj{??#F4rFQ8W6r{UZe@8bPYp0FuPK>=&CVJ*sgwE-(6bx!j zM#Rl)v=o{iqSzM?hVO!67ep~OriwuE1JSffW1mc0jO?K3;l2-q#~zArc2IhVjP@QW z%%z33)W>}2oGWi-QU4Z>kd_7YwDA+Ie>dhW>P$&JWsJV0jx6XDe5N4NL=hG^T+N-T zWux-2o^)1~^~6&bf8!Zy+12xJ)aYLFW0<}n^>!+H2F{0((<>-MYe#GZ^B!BAF#~fO zbXpu%l7p;fxnni?vY$m%CXlcu5)X~lZ?lG?htLFQ}*}GPzEq|ms2W_z{7x~~_;!bQ3C1T?lC)`LA zf9LMb>PQVVjMB>41R-gWuLS|c7v`W z7+1`}xbxacI~-#7iphEHlO|OZjWb8jK*2;HM}mba6=`4y}lu3?kIw(z!gGG|{CS(%CV zkKrX$B~Ipi<=!<(YUQ~5h7G463n!^a?P*6$*^LH$~fwCKl7Xg;NpA~JI0$c5Zpw( z5s!9MvE#uGe6Tl^X)MIyK+NTwv~7dif~JYWL9QxU`9@y+i)ryx425D_2&Y&P_B=pK z0Sfva7wsKz6eHtjiZqLHT|JZ-cb}$CccBiBfn;?zTjY-2%^C5KB-E*Acg}=5Gle=d zsADvuwI7W_*!7{8u?X!xXXDY&ZbnTzA2cm!=$wH;>Y`IKbZUuCodd;wmR5J%bQXZ( zG<{IAiZ#B!aj6yrsN)i?octVp-Uxt~`>l^C@da$o*_H25?N;TCbL5+LXKSnL;dDAP zi&A$JPV+u76@-Z^TRL^5^U2e-EsXDIMu4$LM0Opfwnwd7X^JAMpfJR$>_ZNFMI4$R zUeB?qTP1XSl-5QtCdI5x*{j75OSJg$6#o#JN0*+tpTp4^8?eaU374JEE_;JSAppMt;*gts_7N-4^4RDm)nzj9tH+9!-joX`!-IHSMo^0{lJyG%6?g@fH?%k6O9`3yC z-4jbTjxN(YM4YOn`d32ThkvgLV^qO8By@s(c#(~I{+ENB+WB9a@?Z{%y5QbGdlAvt zeZa&t9)EEF7_D@anKnw4%6Li2Ig_i~?R7U%Sva|Sqhbb5o%K%#9VxH#~n4C`0bV zvnPh{soS@_rVrDZP~l`FIZF#!ZrVe8ln*i6JOC* z9R|G5DLTp7F6tsJy6Ki(y9E~_ny>>?af@iat$9}BeZC+42j?@yZjB=%;30p%?bvtP zp*CgjHmtQ>)0Pv~=HIy6_J7R?*0^s>u9cYoQIX;AxuLAqC#Q$&9(oZ za9%mwzB{3P!;hgXrB=Bp@{|6GtZwXj7P)NKl#QuCbF6QKXKLx=neN7KGL5ha{f`K8 z$29EaRwPP)4nXx*RfHimZ}kJ310CBJ3zqV2=HC2w4=m6zZD*|acJ36-bs^5@y`4Ki z6i0nX;lH$5#66!7K@?bBeP)5W zM=Tef1;zXPH$d@ zfuQ)@z${RF=3ombK69{Fzk3|i$KW?e5%4t3VFSf^^Z~_r>;}b}{zjDGxCM$e4aKPf z*0d%l*0eV$mNF0&OW6)el|mFt0i{a8Xv9)#fl{S_V&2)HSl$*;Eaez8EI^m~LTp`QyB>$d_F>-PpI*6$1`*6KDWmV(z~s-;XNN=R{lVkz@Mu@o05ma-2N z^Bw}l^6tXE9+xr;6qoV|P+ZEbptzJbL2)T7Ro3oCf#Ooef#Om+Kye;(Kye<~pjd;a z=&rB^Vjc_7xG&-(p-Ad|@6#gc@j!99gwJHsI(%eac}|z`^P_G&=Z{<|$g1b6$5i~M z4)w&AA>qFZ`#-4}Kh}dNHeR-tN6{nS$Eb7hxR3=c%`29G)44YgN1y|vh#}$V<*fun zk7)eB3Q@AU1|g(?!FoN6sjhrX*{k>mulb+kA7bHvC?78z!uWaUvX4ye$KkOPSn{8x zCBNm-`TN!9p=qrU+Zpf9gIDG~&Kzxxi#geTq+YlH4k>3R+>}I1M{Vtd1EO?JLHWya zB|q3vHS7E>aaU(Ra*$(C*7@7aH0Z47`XB4ze{g!zQ}=y|`z5P#CCS+;$vF-4$7vCX zSZ(!JzS3SV3;k@)iZueyCf+v7-- zvwjWAxMXuC8?z1@NOMRxWxs&hRG*fPq;NSVknv&yxmR{33So%1ucZxrOaSn;gO+pr zn6=nG?T8SgDSIHKcs{F&?QXnAm(8nLRXq}~Z8u*N;sP$2T2rt|uY3_~($|X>)%7Bb zw-%qRsQg@x_pA*RqF<}(;u^FT70+h}VIfuq=Va+MG_G(9?UCC;u)x(q2Oii#*z-o1 zN1d*&^{8gQ%f~JvM_=_k&+zLeVoN9%R1++G@l^!pc}kzdk9@^yA#HlnG>5w1!adXr zJ?9aJ+!Kj4s39KyL_ixrgY*N^cwo2!iU$UoGO|+}4vL-j7*OoA9|P4&xN3U3>Lfk} zDIUN1=%5`GKg;z1sPDvG+KS_R4-+NQz5&Jg{sfBiEe6G}ny!SN#~N5calXSreJyxX zLGhtPI^@XuJx&z(4U)%Dfu|Q}sGz485HoV^M+t@T+53}W*w1^jxF2|M`MwX3SXeJ_ z76Wpj^XfNoGRSv8($C(ffmt75Sbq#V7SB{JA5zzPrs{)H1d6XqU_F41_QZA(Ht>~T zPti^JpYqaevn-Z>z2P<5eNW%6^=Uv!4?z|UVQbw(9 zG5Eu^p$x$5RSbAisTVdV!%cXgn$xiXkmQ;dh4)Rzo9!WZ761>W@)uoN2G z9>BPQhe%{+5+3Wue$`OuWTUq}^Z|j?B6#$(=-5T*Z)fpti3>Q$eT}8N1|cy8fTXi< zi`O)Os#2l_ZVoq60GfYI?6y;(>-Z`30GJJ>rI)nhlqs3O&`EBDeOv@j)#9S;rV?eA z)iTSTWkylKh=tc&1T5p^kn25N?HXW{9xn?`w9w<}m6McKNy?8&%B{jmTzEW_B*zuu zbrx~?j^QY;UM#Sv#mczgE*1b(X574hq7}g?0HvH20CxhcML=i91p=$wA!y!xpTOjIH&Vr-Ygs(q56yl$iPlE}{1;Fw2I*~3rvz0A-{d~}8mV#mq+FWLiTRQG;@G%EH^THHOP0ZNlz-+{KXCpgmEwZIIK+4J`I{%A}uw7FlY;qgcvmkcG;{;vfTS-UMO%SFTT9Er&+7>TI`(o1ry;VUU!7CYT9qD0tO$i^Rt#kiyV zckOYHi?ln(VN?0Rf40ZX`z&?1Qw7-LF30vZcH4P-8@uhP&?HsYq?G+^8BJ~D9xDW{Pk)=-@592p8NN@aD1fORFapIJ z-*m)SP0RWjE6b`$^!6*!RATc~AEUpvN4(|gs$Ic3&4eg3o+h`sdPeZmOYFq5_QdAh zkNmjLn6_BMQkz?isl~b2B|#Vnhnz5N2&3(5%UZpaLgg2D_^Si4XutW9VdfxFR{dacp9m?Ewy=JLp= zvj)fCS9A`hh@)AV`Mj!gF-2T4rRMXR&cPIMbSN{Q*L5zYh^sSm8GaddNYbYm2qG}o?mItNq4A(to%MN72nEuDiY;^O^n0oOTFIJxtSvFVS>9sgNp8O~WKaGVI+M&H zWynqcmpYT&k!8r9C1iVg0MDMeL9cbDs9qmtj#50pMxBc(;>s>HpZ9bQrif!%nfYwe zxtJoZ9Om-qnXQnjT_5NiOcBS5QZ@Tf=U|FBXuq;_A4tdF*mE*PT(7wE>Ce8lpQaZ6 z()I*%Fhv||-5jcS_N<$&ItNq4@ot%#ZPU4!BCZeI`S{U{Ho93erif#^o5PQ0AL$%S z5l3#BntiNuF-2Va1XmqAlWN$FpXx>4fbPC1ILN~s6*#)xp1#y;r!J8x;yEOco}N^q z9&$`1)2MkuP?bQP5tPA5b6+V9KSZP@gj@&y(Wr|5_())aLj;Br3APWTYKTPRYfsid z4mL}5!h&hI>`NfJNSPPJZ7RTdA&1gEt5{`6DpSPsoj^7vC|xv>mM)1j(*74g8I0J_ z@Y2~36WrM#m2JrDx*nc}+|9*+NTx`SKLxUcA^+A@DHaqNvH~oH7F4Psg9Rp_A#LR~ zWECL?nR*#gWk)JgQ~;wudKRa7o=&|UfqyPksfynWC=qy(p70J zC^BRVL6vUErUDbtkUdxfM{rp!vb~T)ihH(5l^v-}Q2|;Bq_-jIf7uR^$dGY@3S>yn zfoC+(+OseYfP&+I#f(riHoKe+@ETIq8I$3{o&dmzWFO( zm&z1L?IDoS8j8A8Uy(%04-iyn6}n6B`H)t3pl^tg9ucyrlLrZko`8EuP{z*qFMl61 zbO==oC%Sw++}18;g=kd>sWDjO4Lc}08N8~`wf03YQD5OA5h!hEmLMb6qt>sd+;CXoQwxL<5#eg|p z(+b8r!zLKOp)Tx2;Bm4aQ4K(6mh&LII5ZqlBu0hGWD;VhD32u z^|QaA>VH$<=td9vQm@Z+<1s}N*9fGS@!k?iWW09-6)gM(S&70@m@sq?4x}>!z@J?9te$BH31TLG2ejAf$L|I_g!ROJ|Ct?-s~t4MOOHB8hDExuA@0-)aqUH#Z2A z6d}>=VF@`=q*Vvy5LEau#MxIHQbQXWqrLpC84&GaLC8)ONva(YxqDVi3k{CHESxx) zB97yp95Dp8(wBN25$X^JQ^Y}UkHtE{6e^jr0)BDdPG~aETTCc#{BX9CVj))KQqCj=~&- znvIWk`IG$@%T^(pTqLT}ymMf=B(s%Aqw**BrbkKL5h(gETD0q!UQ(tgryw*r)P+X` z%B;ch_bZ))DdMPDf}@cK2OS;bI$(-8?hqVxqKr~aM|G*@_-azkc2%XCN2{LI7#{*b z(-ZdE)UE0W9=iVpeW}+;T{=@Fy}Cd~YY?(hU6F(@slK2>sjei8m^m~fG6!0|B9W_Rw;Vc4+HPnQT9vGl&T|OjqTINVcCvlLNOHTohd0z<)S2dyp4^`CZ=A+qhT$bqPZa7y$2NSmxoBrLD5!1h(yAeqBQ~ECCf9% z-5m|Vbq)PPD+CAMG8*p=n`b-`+&R2jm0Hy{)p)wv2N8cuJcDS88ALQ@5KSr(xhE%Uz zHL2dwIz_e5)=VQVy1d86;evbYd( zqPnrt4+Zx%j0kOK@Eoc=OUbNMN~TB;IxQO_u~%sWuM!>5t8_w%yuHd|!3!bM23|lC zDgB_AmMO~R5rOn7?V}o zIg&|62#Q>Bx}a#|fR4z7h~=AAPAu4oCaPZ`? z+ribsn^n0GQMXz`MAP7a?TGUy3o}J!e@qlFP@S-z#K9DC(2Mc)0a&zE&)GhgmN=Lq zju!+6yE80=#@B^Ay9@5DhF^E~0yxb0xZT+sf*(oJN3fB0{Uq!~IWa{!tro~=4MMG) z-r3Is*Lp#P3U|g;w_4O0b>$N7p6Z(|9ezCoj=CB-YOHHd1lMVR=^qw!CM@WD$F{e? z?u*ld^+{FBrsw3@M2SO+PHLhfS$!6ow_@qJO(nJLO+hfpi1lTqrl zr-IZT$ExocA0~zN4=y4Wo8aTGOFB1G#0?fyO#_-%|A1}Cft92RSliL1aYleX$5+WL_#mZUL8EED5MRpbYAgpsojJpbkg1?8hlfC;L~o?12@9T#X};Y~~=; zReZF|pX|#l8xT)TsLmPflY>B$OnL*0cKMTgLzhb^%@%>=vMosFGiAt?U|iG?wFn2< zn&EVwM!SB~YlkT+L8xD@EDx?Cor@{r3TH0-32$RO8(LsU3mMG|hV@!z`1`xg$rN!` z6Pyhigh~xAhf9%rDoYix)l8ShNiBf!)LWUN-pZVW>h7VPzdRy24 z;GlIr4I2$9Qv0B)4{xdr`_+EptWpHb{ zdAG5up4x>{U(?p?eIZzCOke87I#4AuMaAqWO5!;!@#J7#iGwNPxLtn9}DP&T?0?eJ$DRL zhz_Pa1`090VZvUxqg}K{wa$`nZ*Es$R2ohXv1y!4+B zd6u_t+2vIsU}lQ)m?p%OR^F?+W=s)R26NR5m+CpNh#QYZ+`#Id3%Oi?Bzmw=yRPX{ zm?9~2%gp<_&czgQEo3g57r4^H>m~B2>cJ7Bb1+35Zwrn(cztD!{$7Eo7>$vJ zD2|QM5Vb|%>E2b378I&WW{M=gCy=oO)h^=LE|RI2d?F}vu6cqo7$aZ={NsZLxgs$* zXaOZazSLcqDD<6R>FHp+6FVr(eY~JKVbqIZWP7GamwiH(RHqId;;SNsJ;}jh;^>JF zH5Fb(QByg_U{L)%ifGh}$P|e^ERfNl#6{>6B8iH3T2Ka(Em_1$gnG8R#vpDUK8(GC zcNks{{y>eIdry%s6SI1S=?XAKBF>0Bf@+6JwGnr%o$ghGeTfnCB>k$aOJIs5{J;`C zTBT=;xkKk*ia0JYM@7VCx?xHra&a#hC^M7J#T0QB39bf_1}X9fOo;aIgh*RvkdYWm z6~Gj=JLV$PC-`WWKlxW!e(g}H_GN=q1rvB$B6)IpOJ*6=qM4KA&+@2le|h}Pc>w7t zms%R5shmtvc~~yV+*yX)V8lG=gdQZpHqt+`4aq)KhJ2$cA4=iUY#vB&wmHc>R)*Xv zLN1R_!gr4*`HkpHz33rx_EAicg=(-iv{-V$ptv*+y307SA5&Co%t5HZ_-L0u*>`%C zRFg|3b?5KSf#s6SDVk6n>CIyna?3tU)I#7$*!><7tLs)^iptqoAWL}1Rw9|)M;k#^ z0u?K$($B!O7np!&U}WJs4I_ffIs;=Ba!7X(=O+S}%C1vXfH;9{O1J3}r?L`68fo7{ zPyx@tc(|K5!OmYbbwe>l`6LNRzLTIB53X7|7gNMFz%N%z53bre7gNObfL|`*yH(Ce zor@{rN@gxR{aEQ-h0%t-3~i@!(4RUw7gNNQBDfkv8l^~Voz*~`J^XSN$?yZYJ@x1f z{?aezAy>r|t%#VL@+iPZyZq%diStn*npV`j-MTPEosQ*_%;PEt{qZMvI+xmGa-tm! zA&xus5;H|5&SVasc#daH-lcOfMO^a*7s(8C-3eHb*ur}Q4l773VO|r|psAClPRpEX zPMI|>CCxE$+SEWIM0#Ug&RafmN@HuIb8YnD8armZc}#lxnAzs3DVgTUDN`SGOejqf z`G1LC^ARE@B+rO~!y*AM!oMg`&_P-wD5}Ia{hF-h{no)yDOsqL43&~uCCd!Qc#8#W zIDQL8EWrpYC$X9!w zmgkB5sF~68G+5=9go%cHK-{HRiW5;i9KvaogjnFH-K)Qo>A}DIs9|(%v zQ{aX>)ZS-iN_y(#X_<+l8}~^|nL5-yV5r3cwtwnJe-Rl{(>*MTAw+n5k=Gb%Pt?XR z%YP}eKlRKGh|DIBnc;|^HaTO;RP)3c7^G&*FgqrUnQBg*n6BMuDaB8l>KHR|YD&6! z#>6=(VmM71Kf^p_%&du1GNzcPW=t82d(%?QEiBJ;h zokDy@fyS5gPb+Njn8_I_181kD{0C~Rg3y9$jFw0t(olPR%H+u+2lKSC52cKAn8!~` znPHwf%>k1L+rg?S=Jb^587VUyDdWu!DAH1DEzJaWTDp6j8Bd7L1G~CYCQqEXc|4;=TuKAde@VcwtQi)dLF0~i8{+ceO>F=IvupSzZuYAwnqz%u6NdNY_ z{xmOi>+hyG+7#<`*HfM+9jBLrON5^uCDLqCT8Z3qG}f%VCF1!7mB=b|p!P%a9Ctai z+(}=uL4wy^O7*;Yh`ay1M%?op)}y@o^K^jpr?<0(h; zC9Fqz^=CIt`ahuSPtz8+{%(rxKf>#-um0NaWW5|*Bl!6bTa{0A|BybKc(A zyWuCM_*K{6dLb+Bjp7sYhQ3(5bYGpXwhXg>YRwz=%JavYOQ)|qHZg9&)tyx?-nmG= zY0vrLy){qutmT`2`L7`nPdk3;;F})*?YZB2x0(5?Z~9ZY;cZ6^=z9Fp`Wmq*4F`YV z`@8u5-hW#5yzz_g-)Hi>?%nXq8_zguBtN{mPv(khDf2hwj=52FRq&9Xw>|p%z8S5* z{_w`KOO>>8-ud?NUf)c8Fm>sBr&DUCZ62!qeXQ?&mPXwLnv~bq5$4)F66_JzIK>OQt(&fkw>!)6syZDn`&likt zqt(m7V?WM|`UI!Os>iikZ|rt+PUo4gKj+#T8JG82)5t4d&G*$)`>p-$Ug1EiX8ohmVWfP9~xz?*kb5pnzQKUy3hLc7?d3PL}sj<{Y&3$oT<9(YqpZKNVM`|Be0BEnymPyE zEacOTL`}f``$qAk3J<$64;I(6u=QTd{SYd;M2l{{9=-6*xtlQS- z$E4Mo{Lz^+lAZ7LZ8q!SSL(jI;^087A87q@-0sOkTfKBo{*F5;tQfh!{VeV8gNdJ3 zy?Sa^o6l0FZiuf}@Ai&WJ&#t{y7`1AcW}iGV3gO>)?!iG#&-v5 z_jiBy?V_sfyVm}HUKmZXlH z`_<&MD%E}eHv9bkoDK~;Rz8-|XVm4m<&iJNd=&O!?n_sXr1kFplN3` z-83|9#h98u4m_P%FnDVEncOPR-2LOSh=pHne751W*2l)?gj(vX+Fa@2ykPC`cSq6> zOfaRM(CoJKcH@03LfT%@>U+(b?_KKr;`>WRKabr)k=r}C>@QEz>OuRfwX^d6E-&t}3%}mZx%}Qrvwh{;#^1a2+c~fI zE1Q0NC;FM6UVe7Nw6SeQ6(0Eb4qS~;}()7ov~TjSOz{W7nyR&Fi5Pp3U~W2Zlw zw>QiZ{>p9hd#hd#Zq=^ypbHwm*8a8Mv)+$c``lMa^BYe%bF9;;=bvbQG3SYdQPOAK zcDB0ke7Ckor}n-+=&qi@=L(nhym!dp*lBHBJn~7q>4hgdCXR@*fAQs+wV`ptKhBzV zP`m$gh5Raw=idALKfQl)@|M*Fz5Y7dzW?g;uS72S^xj7wEQi`+e*|eX@9)y)vPtJ^f6^=5^H%JXs} zU;XfEQJ3?FnyoqZ+*89ITeYe%;nDnOkJS3^g~)dv-?crX!tcq>@3s5!Hp}Y4HD;N$ z`}+*Rj~j=+_>q?1f3JuAIlI~7>YMkD{yk-Xk+OBe+#Mg*X_;Q-uBW>vFF82vl{M?f*|%lZ zIsNq`AB`XXUXAX}vioUv*kOBSRzZ&y%P&3pe9<$#wnVQi-relpzAY?M+f`m!{QjKh z{-^T^nmXy(MlW14lvSP~FXXlvd1LbVe_9@`9%{tB_D<}=nXf%@>7CTCBQtAHTyuVP z(hE&)hm0TpW}PvwcWSZmyO)ak&fZ?2*1gbjY5#Q%s(pT8{;K$TTR(dD^dEJ$$g93z{O%E{ z*2HS_Ypfo3VdA`xH@gf=zATKWch9|@qh5+Sz1~)1?O!!g-*1@pYd7oQJCYhy_AFb7q58({ui= z2ETq1(yoi|Z{^FEs}`)=G;YqfkBzIoXVN%LPI&UOt5#$+>X#ZC@@3DPBNbmh%^!SK z(f(x5y!sur-yx1l*FVWj=nQ`ebNj~ZnH6eu39yB?cViOw$Au+ z;jqh^T+L5tzvunB=83xxeEPCx*UWWYC)Q}OtlJA;jpz_wsmcn?FKG9*e)!9cKOWyu zA^6IT(OJ8jk8l3o#SVXc*f#dd3~Az+Cd(dPU(vGo#Dxa6p5AlcmTs@5P3;)2>0K>% z|Kwsz$4@nRnm*cZ$HXtD&YaR?Ty(dsU)Q>Sd+Xno*naQ+^k#@wu4*l2hy7Cd`xpDa z-u3g(KUnd=rq<14<}Uf5?!bdbrncESX0V3)=$%O`xAZ*pSoTVA{F zuU&Q->|N%zdi&+^8gA03$~Q-IJ0ECajlCTFT#jX3*Ml`0M2$K-Kj_Gle|~)Vu!g(Q zIpetW=B)t-7mn|jH7mHKrmxoSZq8XaW7&|1%;Ng(mA!py7ifG%>z{~v@14p08q~=B ze!%Mq-)nYn8nme3k6UY=oOU~IY195WJ)dz-$bRbAgH1HP2b@PPAFH(F*h=%U_wpV~ z%<|<+s+s!!q$k>qh@Q41VN`#$J#?&sHwr3vquKd(@^?>CiWcYpoK`){qhvVCi%t$$UU ztl|Eu-)~gMmn!b~B<^yHQ+bX4Si3)EdB2ulbK#_z6^7|`rx*g zKRdT+;VW~sc65F7>-(lZoKac3zv$BayC>W*PI>kHM}B($z}_acV@3|!*Ku7`+KVr5 zpTD)?@*49`$7DNQU02o}Qcy2<)VifVzCP8GU9|2+OOu^{d}Z9dsb`zF-d*v~OKo0V zv8IosjWXcojT%3kJTRfw!09j7tMX&`LzW@y&hLExy!Jc1X@{)8Q|}u5#^2|c-oNS0 zn~pvq*TaquUz*<{c=ELcd!+|MK0ANy!l4&W%{n-E&W*+|{eAfTkDgt-bJG{$nN9be zSyFgAqehqhucdYPbWF&j1y?gpyLyisbhX!GPR))ZXD<5wskdK$_TdX>ZaRkcvS{_D z)sye>Sy>0%huNg9KEY15eJXe#W`4@Ze$UpDx@_rSKPxGgmJvIOTpOSNGr1g^~ zBkN{o-m0|x|6}hvz@w&|wmW*sq4Y4zN|!&{oaKSzwqVmw*$=#_gLJ6B!z_36WnR!4o|6ywRZR+}GrxYd*g z1b^wRGkn(6CIb;-n?kvg77E5ZCGczV5f-kx{@2)ZGlC{h3 ziMaMNF%KDjqT1=GycgUeZ~o>xorgDWy7$2O*OYgDAo8%{nkH*EeNyBQ_0n?PqE;z8 zKCUPJzN79Xtrwk~*+Tp+=G777H*IS4c-hTq)w-2bU(uxBzx!}f_s!MM7wg-PAAc(AT_8NVJzQ6V2 zq^L8iAg{1XPWIuF8t_|fcy84>&70}#5*@uhENn5i%r407l9x^QCNN8v>>{|*HrtC{ z@N8~)nDLU0)TX5l%(GT3*3K+aPj9QLoVp5HMSUlM3@G!iW z3^7-)y8ECNgI|^o4;uvUs8BRIagGtg;%Pt_k;C3!G<^9SLp%(FU$qYp!#f?(Pqmpd z6O0%Z5B5@c7~XqI>9rXwhm+7^9XE!?cb`4=RWr4XI4x*!r(U> z5mQ*R=1waniZJ-~AFOO|?NlgURnM&L?FkcjOz1$Ecz8#xhihI6EbLHvHuUP$bA`CvC2}i4gGugd(V*Fv-JC06j+gaUU(A}L3 zwZSl#5C(ID?dra2M;9yRQoM2A1e88Ix+U13dlSPzc* zssF71GPH5b#9jywdko&Oeo}Xi``(CQF~<-_jCC(IXtg)m(k{Gylox`oY`Z!o%Kx zcic}hFxFT#kn4;^;*dsa+u&ChpHkM}WRSi5LX8iv(~ z%dsQ(+-Ho3VW`@}Cct`(blVPme7K64Vfw)uHa`2`F7QjK!D^oNO0@s-@5dQ}mWwcL z;2pQl-f#W(l6Ct^48czlVQ}w*Exu)1Yn!npnJ`$5s5SPDcVQ4Uj|nM+2|R8LAPnve zQLFUL8L(ZL{lHKQImFolV)E9l`q7GU69(f!%u+aCW5uKq#slxDko3;&KUpyY2?Hyr z`hMGyJKl=H8B2Ir9=^k?|K(j;STX5@adAxiEn6P9VloKR1m3CbnSa5CVs86j!r=Y{ zF^_KC3xm2DGlVb`;T_lP9CH~Ilo>OWFsOxVo~iL-J1d4p=CCQS9`&aCu7N&9RpU4| z9R3c+Zz|H#C9(50R?G;(;HZdNd)|5XZYyRaVFJf9Dg+Enb0MC`k?g z8&RwF`x6Y~Asc^y2AFGLGLQSP>)&s8qty>gK@5I2Oe?-|lEDwt!Yx8+Ro}Qg%!-+! zVeX9je3BKD83JaihOyVm(l8HyTk{R8RTUdrvwrd#ryqhWqsF>A3EGgHH0zgsc0G|b5Aw^XxYay5*- z9~!~rT;lHKV^3NAGvw)9sCVZ@vS`^$)7F=Hg*VdwO5~rM5vl_OxQ= zX&5|LV8pO^<`bqlykol}hF=7eCUXuK5C(IM%L^Bz!cNAFSqN*w@!6BK*kdjy4DOwA zoL_Y4McBzGKP=Bz5T*mXk1t3$w)g@Cy#1k4)3;Jx?Quba;MEzX*swS*1w1;yK}nDvC&$}#aJ{bAl>_H#918o@iRS-xoF9xDcDpcNQ%Z3vj_2!o>{ zj!{>4J#I5szn(CM;2pP}HaoV$pT6tA^=o6yY;3uc zFj%Lkg=6m>mhtB<4YOkJLzh@FcWW4&w-_;O+_;A@*MktYtzY*To9*IW!nA{TjAz!% z4LTcRW_~sj2A{B$4xegG-t(C;KdfE%5k|D@`Q;DCZ?v@Qe!_@x^_lxt?yzEDcMg3j zFgb6Be`v)#plRVg&Wd?31k6Jk2IsU^KM!jdd#y(_jJ=;nHH^I<*yTgpMGo!#Y}PRL zezt^wp%E;I*5e`gc|yb3#|%S>pnw^S~e!II(&*SVvaPTam>ZrEp@mmELd<~C>CZ} zCH|D2agWFrp@rKpF3A$}7Be`;NXz%!^0Krv3}dD;X;If%BON(m8(}?%a4!Bgn41zL ztAJZpNy}PpaeyT!>;d>o8l)$Dcmggiz_6CS&Ml*)MLf33DJ|_7)KMxe8Qj9O9s?in z&$P_pn6;91hk?aD?&OwhBnBUyk4pz>X$PYlE@{#-i(77zmc879@h}ISaPmisuneb9-NY>~Ny~0-87(cJa!aDLG^okq zSuHL2s7AJ6zrPq}r#_iu)=AbfZn;QW9_E(i((=0I`6XM=zj4gPk~JBJ5?F>x%TjLX zC@qh1%L-{Z#w{#|N5bq{5srfgEd3>GCbx`~mi64yPgt^YZlAz+>#+% zF_cfZhDpmDZi$wbjoi{zT8?tdIBBU9!6F_jEeYJRNLq5a<#K7cnOhc0%OP%AAT6i4 zOQE#v=avF#`JG!1 zN=qA<3*mCJw0OAXUTL|NTY5^%SKKmOS{mTg0G0{TlE5vKq~$qonJz7ja6$&ld}&$9 zEydFEC%4R&mcnxx>lSIbiCcO|%X{3?U0Q0wnJ8SkNlP5JjF*;a+_GI-KIN7trKNLo z=I0J+@o>uv(z20T)L!o(w;Yg|pSfkfw6to$Jl`%Y1Gr^_v=ng54brlUTW*t<-?-&^ zX-PkidA?CvHgU^6(sGhp+Dc30`Ha<0T842;8);d~EgPj}H@93MEekJTep*XQgA1AE zJZU+|EiI*GVoQdJl9sL9(n?xV_|)?{X}OhK220B?+_GL;Mzv<1ZPySJ+)`Uw26SYY zx?o|`z^}O_LRvap%rK3mWjeQPbv=nel zth7ALExn`#eiVZikF?y#EjiNiJGc0x<%*t+HAh;);+f?xX-Vdm`=w9=OQdB2x7;l)8@OeY zw6LGkf~O)&OCCSSe^FXq;FdUPIn6DZ(sEUQrantrzT=iFrKNKM!#p4@dED}hwEWI3 z`=n)vld+~s%lq6iPg*=KhFK~tw{pva(()f}c~)9xCNfqRX*t9#S<*5tiD7c3J=oXRkd zN=qKMJSHuVaf<^i?1=sai{+@r@|9-E^X6q0&SP544_NXF*iG(WM$cd=_WF#NsPw^n zyTx-mcvT%Ne5-&TaS|53O|qxX5hjKYNRCwk6T^o(hf`XF>r!E%@hB4hS}QDktT9*! zgOloOEEs8t6m11{`o`q}g$qu*3-UB4O!{Rfh{sjPwZ8g(XI~#$5vI9Z|g_ge6|IqEJ|3 zgnWUp2sd!-$^A&ny~0BM^#=Tft4OPx@FOjxBceAB8tv&Kw!FKfVk|37wa!!xj|TBMP*)ZvD_#uLW+JIoBVVa zebH86q@|s(#EDU&jj;5>>cuOx8>J2<;)M`LBd0Jp+xy})2s&>}5V8n{Eh6Uf@+(wb9m2qyVu8*LuAeagEgal(PtVL&dt3vk0SUeJfe$703Cjq}DjjB8;Z>on&F=aXeJ4Wt>GA zP3wDN8QYa8wI1ax!f0AQXj<4V#rlx52%~A8lq~o_?OH9h8jV1k!$BBL>qoGv9Adi^ z%f(rQ(X@UdmS`7_^XsHmA!iXr)B0J{`n_;;q+)I0EW&77zi3)m8y88fmpO|tn%1wH z7Uoc~{@^UaXj;EX7JQ%_E|*%JMxxE(AdIGU3aok#6>BVK5k}Mcome7=OS2k0d$H77 z&RK-fwEobv#{PKK&5HFSXAwrz`cu=w9CnmiQ%1o`SO}wO{RLLlF3h1~UB_93(X{@S zEcA-o*9xh%pR)*~X`PlVv3)7lDb6B{riDkyYQKy*>@T%CjYfS~5Tj{@5lf7Rm_x<7 znX?F^X;ss-Fo*r5R;@8iiZGg1xTb|URII+7MHo%1x@4hW%;8F@RmfR{(X?tvmdK%E z-NRXg(X?t3t10MIgV%?T|8Wm{UI8i}^j~D%KdzB8-;# z2E-E8ixs6G_43?)#X|p#$|k>SRZm0VKi1lVu{S}Z`@~qVqG*IoWVjEjn#-) zA{)nhZYfeMA7>H9(FLAM7L^(xl)oJAN->s(?Pt5>n2Ca?$zqp_M1OXLu%SFt8=7GX42bB%@7t5`R2 z7GX423t}0oSFv8o!rH>2&3h&4Y5QHpZVZdpJKhqS%lHF+7ioHy^2+HG7Fn9 z8mk?#L=Lff6{`#hT4ogwa^-iDj%_#d?6V2&1t&5KHve{>=ZZRICp< zi!d7NB4QbsaV8mlw0L^iN`6|2(})-J+m)q4rC;7u+Omg*&prgf=|5NS9g8YX8c1yh(S!e}|{ zLM)NPXYTy^h+=KvEW&77U5V8KoZ`MR=eLD7u_v*h%AqOv4&SvyjHVT>X+{2=SFBjo zG8v07npO<4>cDE$dM5JXUW(O|vk0THVu{rV7&y22x&7RZidDc_gwa@WQVU29?_-&t zE7l{NMHr3MjaXP4xcqT&)(*w`jI#)%WurT>MCN~w+WCcIb(+e25k}MMp=n_+ca^=I z&sl`gw0i1Vpz@D7)`5}rWG51#cahoFN?K{Fq&3x zV&T|}{dIk>Mlg92+s#PMB8;ZhN7FjJz5Th0bv0)ZM$_s`EF5i6>x0)XKCD=;au#7U zt$vzT)DsO(Dpox{BO;8Z)nBqe%CWdrjc>=wcDXr=Fq&3^WMPCW+ugcRu~u*vVKgl# zu|y8vXtDAk#oEJJgweEInpXAeYAjT&YF>;QzOjNBO)HUDB8RgM9=cGmT%1K1O)E*$ z`uNw!TPoIK&LWJal}xNlAdYJAy6eMD5sPFFpXV&XXj&{P6uIEyfv)&OD| zM;pcJI1O_FKirNOjg?BQmawh{ynHu(k*8Q5&LWJ)aue$UbO}qr=YvWV>o(3JjK)eM zmT|OEtT#A|Fj_VS5=)FWugy9yL9v=oXAuxa(;5^&YdmKWM$<|UptXUs2%~9b5KGLy z?s@EwT=ql-jO`=NB8;XrSkwCH<+1G)tJw_JF2ZP9Lx^SUWyKoES%lG8Ly1)roWcjk z%+|l1RIDYOMHr1Wj99oG7rT_2oK>^*Cn{M$;NCSwgEwY8~e+!f0A! zB#X3eN|>owku%Yg!$BBLYb>!MVI7Velcw$&%ARote>g^S7GX54ahlfCuX@82YYS%) zM$;NktU6o^XDNzRZx$*#9E8zW6NuFu)>VhshI3jyqgXRIi!d5%BC+t;0hfAjb>z