From e5e75651c5fb70526ae298312d99bc37ffd1ad32 Mon Sep 17 00:00:00 2001 From: Martin Giger Date: Wed, 16 Jun 2021 18:25:38 -0400 Subject: [PATCH] Bug 1712944 - Enable lib olm crypto for Matrix SDK. r=clokep Differential Revision: https://phabricator.services.mozilla.com/D116610 --- .../matrix/lib/@matrix-org/olm/LICENSE | 177 ++++++++++++++++++ .../matrix/lib/@matrix-org/olm/olm.js | 158 ++++++++++++++++ .../matrix/lib/@matrix-org/olm/olm.wasm | Bin 0 -> 153856 bytes chat/protocols/matrix/lib/README.md | 6 + chat/protocols/matrix/lib/moz.build | 5 + chat/protocols/matrix/matrix-sdk.jsm | 25 +++ chat/protocols/matrix/matrix.jsm | 64 +++++-- 7 files changed, 420 insertions(+), 15 deletions(-) create mode 100644 chat/protocols/matrix/lib/@matrix-org/olm/LICENSE create mode 100644 chat/protocols/matrix/lib/@matrix-org/olm/olm.js create mode 100644 chat/protocols/matrix/lib/@matrix-org/olm/olm.wasm diff --git a/chat/protocols/matrix/lib/@matrix-org/olm/LICENSE b/chat/protocols/matrix/lib/@matrix-org/olm/LICENSE new file mode 100644 index 0000000000..f433b1a53f --- /dev/null +++ b/chat/protocols/matrix/lib/@matrix-org/olm/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/chat/protocols/matrix/lib/@matrix-org/olm/olm.js b/chat/protocols/matrix/lib/@matrix-org/olm/olm.js new file mode 100644 index 0000000000..e466ee6ce0 --- /dev/null +++ b/chat/protocols/matrix/lib/@matrix-org/olm/olm.js @@ -0,0 +1,158 @@ +// @license magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt Apache-2.0 +// @source: https://gitlab.matrix.org/matrix-org/olm/-/tree/3.2.3 + +var Olm = (function() { +var olm_exports = {}; +var onInitSuccess; +var onInitFail; + + +var Module = (function() { + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; + return ( +function(Module) { + Module = Module || {}; + + +var a;a||(a=typeof Module !== 'undefined' ? Module : {});var aa;a.ready=new Promise(function(b){aa=b});var g;if("undefined"!==typeof window)g=function(b){window.crypto.getRandomValues(b)};else if(module.exports){var ba=require("crypto");g=function(b){var c=ba.randomBytes(b.length);b.set(c)};process=global.process}else throw Error("Cannot find global to attach library to");if("undefined"!==typeof OLM_OPTIONS)for(var ca in OLM_OPTIONS)OLM_OPTIONS.hasOwnProperty(ca)&&(a[ca]=OLM_OPTIONS[ca]); +a.onRuntimeInitialized=function(){h=a._olm_error();olm_exports.PRIVATE_KEY_LENGTH=a._olm_pk_private_key_length();onInitSuccess&&onInitSuccess()};a.onAbort=function(b){onInitFail&&onInitFail(b)};var da={},l;for(l in a)a.hasOwnProperty(l)&&(da[l]=a[l]);var ea=!1,m=!1,fa=!1,ia=!1;ea="object"===typeof window;m="function"===typeof importScripts;fa="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node;ia=!ea&&!fa&&!m;var n="",ja,ka,la,ma; +if(fa)n=m?require("path").dirname(n)+"/":__dirname+"/",ja=function(b,c){la||(la=require("fs"));ma||(ma=require("path"));b=ma.normalize(b);return la.readFileSync(b,c?null:"utf8")},ka=function(b){b=ja(b,!0);b.buffer||(b=new Uint8Array(b));b.buffer||q("Assertion failed: undefined");return b},1>0]=0;break;case "i8":t[b>>0]=0;break;case "i16":qa[b>>1]=0;break;case "i32":u[b>>2]=0;break;case "i64":ra=[0,(w=0,1<=+sa(w)?0>>0:~~+va((w-+(~~w>>>0))/4294967296)>>>0:0)];u[b>>2]=ra[0];u[b+4>>2]=ra[1];break;case "float":wa[b>>2]=0;break;case "double":xa[b>>3]=0;break;default:q("invalid type for setValue: "+c)}} +function ya(b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":return t[b>>0];case "i8":return t[b>>0];case "i16":return qa[b>>1];case "i32":return u[b>>2];case "i64":return u[b>>2];case "float":return wa[b>>2];case "double":return xa[b>>3];default:q("invalid type for getValue: "+c)}return null}var za,Aa=new WebAssembly.Table({initial:9,maximum:9,element:"anyfunc"}),Ba=!1,Ca="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0; +function x(b,c){if(b){var d=y,e=b+c;for(c=b;d[c]&&!(c>=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}b=e}}else b="";return b} +function z(b,c,d,e){if(!(0=p){var v=b.charCodeAt(++k);p=65536+((p&1023)<<10)|v&1023}if(127>=p){if(d>=e)break;c[d++]=p}else{if(2047>=p){if(d+1>=e)break;c[d++]=192|p>>6}else{if(65535>=p){if(d+2>=e)break;c[d++]=224|p>>12}else{if(d+3>=e)break;c[d++]=240|p>>18;c[d++]=128|p>>12&63}c[d++]=128|p>>6&63}c[d++]=128|p&63}}c[d]=0;return d-f} +function A(b){for(var c=0,d=0;d=e&&(e=65536+((e&1023)<<10)|b.charCodeAt(++d)&1023);127>=e?++c:c=2047>=e?c+2:65535>=e?c+3:c+4}return c}function Da(b,c){for(var d=0;d>0]=b.charCodeAt(d)}var Ea,t,y,qa,u,wa,xa,Ga=a.INITIAL_MEMORY||262144;a.wasmMemory?za=a.wasmMemory:za=new WebAssembly.Memory({initial:Ga/65536,maximum:Ga/65536});za&&(Ea=za.buffer);Ga=Ea.byteLength;var B=Ea;Ea=B;a.HEAP8=t=new Int8Array(B);a.HEAP16=qa=new Int16Array(B); +a.HEAP32=u=new Int32Array(B);a.HEAPU8=y=new Uint8Array(B);a.HEAPU16=new Uint16Array(B);a.HEAPU32=new Uint32Array(B);a.HEAPF32=wa=new Float32Array(B);a.HEAPF64=xa=new Float64Array(B);u[9592]=104064;function Ha(b){for(;0BBL_x;`XcK0oI0WAKIxbG4q7ZM?ZA_+h+EaAc=1&Nf6*tEr@`ovh6 zw&4XN0a%El69`y~kOVbM0>^ZMI7|cEbcw`JgT!)z)Jg+4bb~ZXjMTKtPolK=q)Nl2 zN{S?^%eHdZ@9)gL_r1jfMbJ@X>m!2PcW2I-KWEOIIWu$SpPOI&uy@Y+U-N7B`IG+S zzU1UdeS-bUNpKnE543UZ37knPpD=A0B7OczD9%qh$%P_Cr%Kwaq@T(F`Q72 z&h2XzvB8q_i6H>^PKo4;H#rgMJaNJw-xrRb^vA^gqF@!=o& z@JEmSMDVqmpRXUA-+$;w{9)Hlo(n%4YPF>1$3xQg3DM+kx04k$?`mLN@V-~`!Mg_k z*Bc?}B-6FfsCDWx9dp0D*OKNo=>dnRsz(#-)SLe^y`3I}*U$aTv zW>O#bwWQk^^W8>56742*wB727iCXZD+GKAPxhGz6MMaF>92*-`f`DDKp@h36jb8~j z+kU)JOCT@lbSPdebnA6LM&L%xB}u#9goLJVg)x!RTuB-Ev_dPmu{wkV7wY8Loocj@ zhJ5LBjZX95*8jBkPq^oT{}J~|?|;<&r1wAOmb^dUPWm5r_xJ^O!XI>>@Q2)S|6%vX z{YTs%^B;9T0hgchN8HE#QTL=@bRYA_+%f+#x9FdANBzg$5&x7s?0>>N=>M4esL$O; z{BHMQ|K0A8f6yKD54i>Zu={cUUU$InaX;qY=YG_`-~EVx#C^Aa)IH%p;C|SDkK6CR zm-u_#y#GUPpZ`Ah7lQwOx5+=|em3|YaC`g@x<4QM2i@7=A9sH)_&@CaZ18^s_z$_C z34Wt{HiY?k_tPQlpLc&Igdd)FKNZ3g^KMi4k$HC}gdd%Ee>#L8n|Jqw1M}{)A^iBf zI~~Hpy!%WD2j|_VLpU_=ekgo+-hC>BkIcJMA$)Y+eRnuK@173fh$0@Hcb^Plao+u8 z2*>8#QV1WLce}%r`uX_0`=jA0{rtqdd(DSGHt+tU5Ba?NT_1MOyRZ51-Sh7M^WnjH z_y79v(7gM9e0X@?z3RhzmGqu@_ka8FKBe@2k@3j9`yC%1op=A24?BDNR^x=p1L&_8T-QV@$NA|n_ z-iIIE?|#jPAKMQf4(xZAefaVHq_MEy{T&|;?sxy44~O=oT*%g*5U7{cFJ$9#wX%jGSDZL5?@SSPQl47YG+aC4X0zIb ztS5xaT88LGM4Bb}^q~vcSejhOR!7)IV0QuQDE#`&TljV0+UfX-bVa%rC*;hgN@FY) zrjzyzKXD>$T*y|YEAe#+4Plnls?=Y|*5e&ZYf27RC!IWTJiC4O($Z4zc(!5p+Rq%% zQu$iPv;OWi_@>gS0z0kmwaKSH@$N7SW4fddG0h9v3<=e&08>W6WV*^SsT<9=SvC{= zPNq{Qh^FAFkNLMS>P)Dpk~pBBc1+PCHOr(lcY!W(Bo(7`1ECH3hZy zjnuZFc7>82PnBQWi0r1~L?;!yr!A#vzOm%?y>2C4ZzZMD+eT%tpa!lHSFBxQamUiJ zBCdU7+%9o@=?dkmkQ3rH>8Pr@mTyP(E!4CT-$^?K@%D|xrzDc5eIb-;dV9J-?tM7N zES6#h__@N$-M0LraCEE$?X;~p)VqCS2{sZp zOYf*MpGs%S%-dwXdz$L7;N;(p`PYcjPP>ErUFT;T!Jk}p;trRe^9QrA(WN2vn-aG> z{d88}oqi@u(&R)ou`MYOEg>30jHmV88$OdYPh^wZl9r;~uck-v$kW~a(^+p@(uLnYT&I(wW(o z%n`1hHjz#X*CxpgpHYPS!OpDRe=v!;HfIG zYPm@`0*j3;Q3Bz^Q69G_lU0-!{su)O9+|XMfVOffitQNk!Q-^+Lr7kY%86Bj97k`hF*uJ5%R09*Idi@oL|`JI)AYpx+m{eM-$Xv zNdL!f#58o4o=C&}bQg3d_lMa`N|10Z^*(E2W1tcQ>Sn0?^@`dpI-Pz*^fDCcZ3^2m zMNQb5tbHNN6t@QvBH1*b-ZOS1{X(WR+L zN$CUKNDrvaY)Uc8j_Xcv)94)f0Q$hY@U2nLaW{?`Q%JX^V;8bHyerd;-;O1*HXXl^ zZNj?>?R^|wO8@mX98)OOr<6urK!2LCGhrCq^`2gayAta(#J|5 zMV#ItC57ht4pV?zQ;@B=#tfCXZc#R;v7qW5ZckOp6_&u-RNR^_7$AnBg!#1*1DQgLs%llb zncsC*#ucgZPc8a%QFi6oE4o#_Y^d0U*jc5_KrXWk5 z=xu4NM^)ThdJn%V)9!^#CFxnIrmWYDql*o(|ANuhj}3a+naB|(wI+>{pu}%4_#$Sm zE%*|JL427qmOfyG=%u})81^0X!K>j4Y?6GgCQjevey*?G{Lya5|{LB zFrEyCK{ost^vzq+dzGv8&F@IRLvHoWJ&R?8AYp3>?jDv}w?F8*?@RBmXxp5=v!rbj+N|rg;E=as&~;Cy zD+c7b4t=$+?Se|b(D&$im%AO#@$m~8!1s>3PN(z9nomxm(Uxl88^faO+}hMln!;P? zC&5x!%#$Mz)pp@wIK4+9`=RRz6XBJ&AFNaHo1Nvw$d|koXCXr$fA6^5$r0sDQb~UN zNLI@)yZ4QwLK%kcTFB~;jJucwBkiq0aOt|Op%z`OtwHJ^Sa)maMptiZka`C;vz0NF zxn{RA&^6cktzmt1rCUQ9T^qNCjnOr?HK=J<+vgYuFN9_iqjNN7wePVS9A# z+!}T=DBpF^3bu7iG3Mb*!OJlJy(3s7vIAX{S@`;^Ivn4ruy!G`NbEm{`S@Xp%5RKKU1jaYlfD|G)q0|Mm+n{O$|C z2;ek;{Gwk-5#Ju;OLN!r>u#a9Mr<{wA)9OQrS(n8dA}`rg`DI*hx=OLK8yS1!hHt! z)xv!m_m#rEg!^*gerj8Csc;_NmR!UdVr?ptU=7M4^ZC|AH8Js-S>I(R4pW9aEeYtR} z)RzjkN`0|#Q|j}DlTx1xRjJQ~1=I>^#7g}oce7$c=(Rx2P=sLyd?V$co&BE44}T;k1*>q1V+g#4aqplMR9Wj-zO?kU<`JB;$Bqi{WWMwt6Z1cL^ypUV z)zQv6tBXRXQi!POA4pMM z$XwXfPtfvUXp(7dq3C+a9F!DMvNfo$z3d)Vc%=0^p$qcNqsi$~jY-}f+IG^BaY=nq zh@*phC`*2_?}?Bc$^CmNhRXx(9{$cucukba6 zuMNUucRLBv0x||j)RJ7kW+Mv9(Wf)CLM0TY-%R=VzA3oPF3DeWNAk-pl~af?PqYx0gP|N|t=JCz2 zS(M%UHGd@k$xohY9f}f5K$u`dH^wv!T~ZU|T8xdbYlLPW#3+BNK!^NT6>yDZuYj{L z;7t7V;-^cr!&S6HmFqy|dZJ896?G(^J(^J~Ay1XA|D5bnpHAzikeGz_VEr^*w+u@5 zL5a#olhsERlEyLGK9y$!15n0tuJiL_#%bo$HmN=l^|fa7HX*mkJ!#;VjYJ9>9BB(6 zCph#1q(o~|84)vY)X^~rQ7p7Yl+_6^bXuxrK9HLUji?{w5aU?xm`2MeM3)If{`AHq zm^8^^Hb`P9o-EI0oPq>PS`#hcb2p~N1W!gGOUp8f+|n8*pR@$0b6L*K?aD*l2}nyg=3!i)Gx9Bq zB0GydoGj7HqF9#0q!d~1x-rXL%5v9GmP7drv!ck;NEs%7I1lm{<(9`VUF0G7o*VPt zqrB=J%)_$VZrNEDMRrz{;be!3Vw@Z%#mL_`l=M(~!$mIA zwk(Iq98Sx~JP^~ej3SvvPZR?RPM<7L+l6Wx>OG)h7i1I0t2SZOBun|6tuyrDd#2vU3gx>XS~4lw%%{(d#T>7mj?aFI-_@cDhDO3!008(j zzsI$3leSN#Ef|rupFU+~aFKjF@#?$R5Rdhujh|(mNRX}|gzTOou)d0s_c%Z_HrJ za0cz63|RT14kZm_P$z?qGU!+aohpO2GH6={tVqHrN_-09^;HIHSlf>dWLOzg@=69& zm1WQ+gE3_=W*Ll?8PH5v!#hr^@c9+@zCMG}yrrRDBC`y3E}Oa009$z4^7QcZ@Bl!I z;nAS0X?hG#il-sZ9G*EmWAbdlqY(=!vQ&tNp#{1u(<(a<2L#oMf|RY{h2ZNa1C3M7 z^YFp1JM+<$$0k6uYMbe>IP{()`I1e2WcFi4OH-;6KrYZ)*F>^@6l=q9U|9>{M&4tF z(Orf?)yR5is#V&onDe+|u9MVG=ArLwF4Ol=p5&pLzA(2t#$0gcfGBi6B^x7`#*=-N zb>C@Dhkf#xCYQ3p;>Nd_}Xk}q)|Wq4o9moC>ZAX6IVTK#{|N(@(_`KegLTnlH|`1Ak5wlp)h_SLKYXXh*AF#SwJA6Ofjias+B2N zc!{AeA%rhuCRNN@8PmdRx!#u$!k5$}Rm@r$)523am2W(jZ>TiwSiUkoVd}AbB?Uly zEMHLuOHbAHX6U885xz|Gjrl>7Bz(!W0sjYlU(WCGSiXso@{Ns@uQ5`-Fj~GS%(tHZ z#G5Q1>f=rE58b2sn~dcv=>pP;01J7;k(@12&k*^eF9R?&^+eWf)7OlB*r|= zH^-*CB>(V&(s==fSCq~PFubI6R#7jrp2OsV^`q!+B{gU2%GQ-F%D`ZC$ctz%^en;2K6|nb_56U0y7$ z-N1o@+H(rWiq~?Ed?RI|l|xQkU@HZqrzJh}#AUQ92%M6*j|jL}HkXab2qiAan`WJ= zdC)Ed>SbMxqs={=jcXWf$w}0dtmI5z37NhoVI*qeMQSEkL^G)(sZo*gS~)M5Xm4QX zvPSjI5~*5RH%W`4H@T31b0w_c$JddtKS;9G%=_#qKt&*CNXs^-xfrh5ZBCPYTyxvp zY;>jDTu+juv65eqLN&4ay(+E@vlkNgda8?Q6$=QBssT%v{z24Wt-QC8rj&GStk|ICVtUU}W0VPEhL_N;SBp*j`ZZS>Z0)27}+I+45bAN}mh6GIlI1 z6)Se^j!FV^+kCtB%P<%IfGyD`3%SeRlZJy#Wi@88C0i*y>n(Ko*oQ9{s{)-(nT66u7rpe~|;T<$ubN$#3 zHxpe4chIB__R$@V9kQwW4*z{x!Zp_q?r;pw1p6a9Tsyk{=nlux4#D>CaBO3h>qmFE zmC=PRVC$`5AKBs9SSudvWuu3djLq|yc`z6W^SF7&qUS^AnTVc!=2;OvPnd@T8j5qk zJQyJ4Ib@#Oqi3(})Drly9gdysmctGVQRe!Pw3NB_?Qql4^~4UxhGI)~hg%n2hjzFP zo%330Pq9O%fu(Y|5p79@>;SG-&ppO3vmrIpTC^dxh7B&5dlcl?~aD8lyI( z8tS!qQyWrEHY9Rj`8;FD9M{dM_Jx#nfzpOlr~4hYA)$d}S9o(aBxSP9h9tm{Sqy$* zS!Qy<0Qz8Ohc+-=`ILt1FLl^aI2D|{`Bn2cb_8h%l_wuzN)V0_6;>WPc$78t&Q_D! zP0np|sd&H1(bcekA{X5c%PexWwz)Z6o-QE2*kL;GJ2gM1DXgChDW?ngtjF}tM<*Qk zuz_2j9@9lWU5uD~S}=`IjX4b;7Y`0?WY#l%h)qe@%kniJTgcb)_w~PNT_K2-cG!Sc zY!1kKCf_QXBptF-vQcV`sV9JFhR7TbmnNLr2tY1O!^VN2PT+4HSDekyvgHG#TmIT> zuT35?rm^2bQzni^6iIdnEUm>}3S64@v1jA8*EX=vgCz-aUiBn#G~KHeS^0bgA)`4$ z`!J#*MVmD=LoPF`<@IAEwNkM)>4lFmM=1`Ku5pZs+qBTK0t74f3UjI4Q@B`1v9kGm z639x6)x@QPH&l`(7t1ZfZ!Gs}Tp_327#lG;T0sI^>B(jq6z!`>vP(kifMD&!#U5HP zkxf?akgpbLtAJ}t8QHJW-VP+#zK`21cFaOHQxdS!uCWj?tzf*`U=RxI^BJYOzVp{= zVVY^EzhPA$g&ccJ*+12d6dN@KD9n- z8Nuw^LAh=p#fQ-L?P%OgA4QEo_tCG2cON~7u=mkgoFM3nmpJTaZozgzVH=;pwGqr% zI*p5-i|Si}OJ}rN=@c$;ypi^BDTR7EiA(ibODAxtMw4_Lmn4#-Gq|i=Z&X+-r!~L_ zV{!My;<{Mex&MUXS`i<$QXkwJ9)+%UI*m(xX)9fU>p}DmGoEHTg-0DR1;nL(lmg;X zPe}oB-H(d`;-ZsR0dd`ftCNo5LdR?hkN4@uHidnC`kGDQK%dTGQ`p-V<8U0_77pWD zy)7Kzvuaz|$7kiX@Hn5@ZDB8@yviKc>o>pF?bSQi+y1tbBLAK!B9*|Hq->X@NMO`3 z5SW$(#w6vz$htj|b&p0#sYOX?MM>#KN$EvNnTe7z8zp6Zl#~=nF@dpWc!R)jK#>ZT zz(moJz(moJz(mnex#29~Brs8QBrs8QqQFRWBrr7-okC!&S!{{z;r>|4?JA`T+fJ>V zMZ>TNMZ<8hxO4vr#T^xxv2=#omB7?YbfUn}H$?f7$h1v(Br;7C9*IoDghwJ%H{p@U zMB$OhbkmNBjN`o00{+lL!{>8mR6*0sEtp@z5C$S47!|D;I_G3zBpGxUj9Abpd?X-z z9@hv%iUl1$7d`~*_-v{|{IxXmGL9IGZ`Aqujl%T5wwQ61RnTo$8=t@DYdO5BF z@Hns;!Kj|O@KmNI@DwoZ*4t`IjHOCkhk&uxjOzd{j`-nv0vD^kxc1@VP%y3!;hMCb z<8fRZFa!1&u4(Ia_Tq{)b*%FPY@5xm{SqhLv^Se^--7lrhK0ThyAXT-J-PVnKd?@- zruR68x{qj3-SZEPv)_}5scq}^lUVg%2ssBu96MikvvioJ{SbB~1m4WH6f}%JHLaBD zFhF0K@u5E1wwZ---(`(c1wPoXvk2LFBrbRM7%c0Q4i;dub(j?tev+7_xJXw|7ksl6 zwP}%&{^Ua)+qX!Gdy}1~J^OQPM=|%{ zigK*uN7ByXgETD_A{A@C4^e)6`=Y{qA}ZViQQ;nn3iohSxEjt7axV&(k4A5NG7gCR-Pqr$#mzr>^!9USpf=w%A0~L1njZwE>Ao5oQ}=GnFdL(ybbyaQJZ5LbkFR zOf6*XYB;r!arW!MbjBE+HLLN|Le{88RGc5H##HP&FBSGUU0E5@e$+rh;e+xI6h(=A2E(kWE_r-=}OetM#?aqwsEDnR+wsEk83Jz0+ZtJ znUa^{pJZ+v75@Z!AS(XxO7SDTz^MMBtFYQR-Z$x3@=-ia`6wT!wN-@5dq&fJzGr+C zk!O9Bk+VJu$x{*%1)#%NP3qQfw9{Ff)>*XDH8`z@Xr^m%TDQn{lxmbC210$ZUA~5*I1h3dI}A(Mf)p`qj@>9;Fu@VNzp;c(uLq}()=3zA{X;( zo!P_1{8}gaa52Abr8R9HNfebFKG4x&iZrp9X>{4l++a2{HPp(Zm~e|5J%1BZ|`id zG_cT#Ekzm}T zSO@8~^=R0Ra*&##zVd5kS8373C><1FeiB;{$_|`u0bD(w!%cCji8R>7!b$`FMlq7xyauPaFD$gHqt+vb!h_Jw_=@tiW}NX>h!FOPj;m~lhrIA(@26lSx|O;pX?$!d=RV_&*A!e zoKu&n5TOr8a<_*eOD7kU>dH8~vrEZYm#-8#MMJ12M^aRVhAeiJ28+zWN5*Mw6fNp2 z3aulx9E*Jh&Y#x8T^4qeyEn=#WUWb0t-KffQ5> z-TtUZn-RJaX>EY4WZ2Bpol8m73kcK;2hqOTtSJL5pHIDju@dm&1uavXfj#%Y$kK#DdN$sKyWk zO=Hk>dC;^Bnkr}-gU-dEbIXHbQHrU~DX2O*Qr!}RZdo2wrfwr(i-M{bBZ3DsUduw$Ln01Q(dIEd|LZJ?nVTlm|VXfBqLkPI^5VgEbk;%RQms{$|9n z<6!~3LjR2dvg=?0_>}^H!jB;a=|Q8+^-m!Y>MA-zB=(*}fO}tuIAz9aAT%cA8Z$|5 zMx!Xckx)UF5h_4TBZx|)O9w4)B&#K|T3??mZaOH*ih10OEG9!=kF1J{6Qe{h8@xnhkJMH43*h%DXT z=XNJL8G{QVzDV*I3*x%1MGX1Bvr7(i{*F?^k9uj*zD#S%r_DaBcr+Kp#jYRk^Luy#9q)AYMz%c%8UnsVwM2;H47DZyGAu9Y6G7~5D( z5wwtOi>Y{aI!vred-YC+^tkTxt9CjJ%1XOuX|n*Kv}blw=mM;?nF_@)O50X<6+vm+ zax9*mvWh6}4Lg}Q;JVM>zLOOnTxeBG+ZJmd2+aqe7o+dnl+e@(0zNhpk?aie}X}_cJ>~!BD*S+pNJDqw5(th_& zcduN!E=_d5Q=SLH&YkYQ60EfEFFi{8fzqS2w-%nAZkt^9y7y`$0j~S}!`fVcOC}c% zI62E;haeAx2elc&>)ewwrgJw-^eBVxDm}{J-Gzr;4%YV4(CMjl6Q17SWuLqEb|xhC z9!(77pZLzR4bSa3He{~`o`f*dtQxV6@xRm4KsBnL4ZAeT;QAGsQZ=qey`h-~gL@hf z?Y&<^V{m7f#w|9uw=vXUa32p@n58bY!95L(Xj#3l2~af>(u#cj=7W2ta18F%F5}={ z# zHs7clNzx8R5}HlhU410v1`2H8Y_}1NP$2W=eKh7X>s4Er-9xVZej$ukA7e`gcXEz_?W?>o5IrrU_cF zX)CTVyNx(z4Rx^QZP-wuX;-iG8;aM=?|kn#jke!VnKnBg{Sr>5^q4Uo#a2OsqaWhJ z1uS4qcrupX$?Sn1nOg^Sk&}acvh8}E3F3lgOcfKktZAY~w3y=_65qR!kA1HSquU!c z+LS7SEy5H>o*I;aDruOZ@ln{&Ai63%o6PrNapZ~ta>GPtrS3O#$TmCzJsmqL+R0=PpYl?Q;fN{>*-YkdlO)tNJWiX#^cq`lAR0qQjZJGOD3Z*n%0oLe zG|>5kOiKMu?y+_PToA2O@Wu6~_@m{L3v(*jqS&dxsE6nlBUT^`@5s*jDCZYWzJDBv zWlfT34UTU)%A@4!8ddeaFT+T&hb9p@P4Iq8{E`-Whp|^xs!|Dh4@@s>pe#{RRYQ>J z=7ths(-|&N%b3f}79x&C7z%~y)GUf4g+Zxx`ih{O%nGGAq8yfJ$R>%mGANV@iVQAI zYOvW~K|vU}Q0@8OIk}L(>yh!8HH~soF@?cOJK3iy(-rv+?ooN|&)JEytVzSnTQ>A- zJ~ZAe8bULlR@F{OQ}`~TJ7Mh_O*KKW*^sC@V494VbIEjvOsYf_F4Yz+k8A)UnG@IFd z@`GyWyID*9M8-9@yK>*RDpOTckG&%(S%H2Ib}Q$E3+9k|L=vDBG3_K|BgZ7M>wNiq2pWtv6$3)i6s(l~w3>vm}m-L%iHx zBt>EF4l0zG>T6Q%_Q~2GkELnV+Zmq?;D$QZ>Ssll(oOFl;5+HGJ+jxf4D8@N`nDd!+0 zmcN=5xCyja*hSMIz+;qyYj*dn%O>fODHgpp9%()?Si3N~9MWZp7&ZXIh*A?*1em0+ zb{2@TTA;KHWUQlBR4qtlT}#R=Y;-%XC4Sm2H01O!s~}cf^$kd2n&ipR1v(dVdULYO zFQ1_C>Nf&~h-n?;<~Q`JE`&1sCQM;tp~gXW9fWOe2?Ku0YDnNG#MlKKPZ@_pKK}8P zrSc~i`JMduqA(8@mj?L%nF7U$DOb??9ImG0^VcUgqjGOXR^t-;CmqJQPn`6 z$fgiz9Q(2raW(Km*>oRKVlg?JvBOnpn$%+sYrzVt_S&ax-H0I}J2yWLNh?3T$ZwP1 zF;RGOF>SC$kT#DTT@dGLRwxXwZ6e?Pambt|C?cX?irrn*Y3%Ni#f1f^t+Toc9Ss|B zu}Ko*x{$*GHx_d9vTQ69YX8k4WFW4ZAHWqibv=QrZmaA2aCL0i{X@8dEyX{M%iHdc z$8d2a1F7syIUR1NxmOFxtS)Dv=52*zq1Ww93vST2i!or^oojFHg0rn$4Bx(OcfrNI zC~QJu7aV+etdG{$CJYQh+TeyMNSiR&Z>cS9*yFXAje`W*#D?uhyVn@%uz4cxLerL1 zr0X#h1|MxSR3nVd^#0gLKZN!MxIH%OeX%X?jLr24nyKlPaRoU*Kh5XCxOwAHA3Fqg z%eZ;tFnbWlc5k`s4cY#ByWZl?s6DioxLZoQ-r^1_2Q2PJ*=emwJFR5AkGrq##}#*E z$@Y(a1A7lHf0JErD{Qx73bto^6g8oqux+hcxaiu>L}~mn`h~dpp=Dbmy1*EA0F${I zEs6{43Y#gk4MOzU{x&P&@UA!8-$uaYyWVVno3VX(*PHEcGaWg+>&^DJwUxr~t~cA? zX4-Rj*PHEcvuYXM^=A9qMs~f~4!0Y2z1hyaZ~Cscb1OX;eZfQQjC8+zwqPbcCC9y7 zNZR}KsomkUHhj6Kv#|Rg|5A&<_qw$iHF2+7R|Z|r4b{Uzj|=-wu&KAC?h{t9`?Ca_ z^eL`5D$?}3fAg8|=6W%34=8+M!M2v+w_({<_*xl0+5InnM^}jxe!IfgEd0CJp{D$O z8LYPZ>_5?M+XUO8V08=jon^8+d4@vCHp=kz-9P;@S9UQP2}Y12uGW6XdmR?vNc$R# z-Li=FBBHJVjRYk{j^&56kZ)F`)+1?Q zHxE*Jho#h9Ua+ibsU7E>N+Z&-vZRCEu%)wUBB6IA>`HV|Sud!-C{A2*nkyN&N%`zf zPV3qwNs?Zwh!o%JHfFT)d)=L7*t?9T<+Y^Cj$*u4l$uO*z&n+Rx{IC(^E4v$^!~y4 zt;APoqv^eFy3Avyq9<5g2sxRtt@vKY5<;x>DWhX*nY6^GYRGqm>Wm7FvZL2!0IoJ* zM;wwx3yw4k8E;g~nh+LdL9-YTA6tn+KtY7XGiyRH!5bb${qt@{>Ez9Y(%CEouuQ%3rn_)kfrQy-10p;f`lZrxhiCd9A5P6gJjcyQnpKBNY$+dE;MfF^wXfu_E1ekq_pMf*G`;$j^d> zQzi>ai!7#%pKQl20@L@{o&OTrW+edQQ43C35m(*7p+?bm#|lb@cpNGw-A2@O(%R_l z#-Fb7r&M_on8@d(C`YYGtzM+wiUO6+81=dp8tN1C#9VZ(SX7&xBB@42|5#R&0C&nN zvP!0W!&+3TC9*WCbfp)os1wsgom!?X%d{Ci4db5{>XMR!D-AC%6i(uy%diSConcCg zK~q6vtBf^P5!=-E^LrhOfl;2MC{JlM5h%Hs@y{;Y$-LQ0GS5Wp^ zie~MT#$(aHe%T7XO667Lm(p8+1`0(xO&~uh$*&EOKj&7NM$cZ&=B<0 z1hrU@>SHI(E!SG|Wl(1el#H`VrCKWjfKigk?hb2d$R84t;9`th_JdqquQ7y_gF@Em zdbRwkG<&CaZ+IGb9AqTB>z_WQrDR2wkkeTdQDX`H?lw{Bnu+RhX-rtqL9&4%#O~?S zq(Ie>f?68VU!+iy*(IJvl?ek2EhsCkm_4^IY9W0>DKH!&1?!<2WeSmek92BDxl6*Mq|7mNwJ#|TgFLwW(177WWAYuvI)GBb+F@DXv1F@rJ6?;a<-M#X-2 z9hbIZhbqs8Xq{9{hL{NWvOKkBt!RmoU!g#3FCenkJL%-O({Fi3symL)C)pO0afxy4xJufhn%^)&{nB9uvT!%c-R z6STk}l<}>&BXJgTS$@CQ^ll~3HwXje1u0er6$PW-H~H6?7xS-p{3h7?21Wck2Uye6fMIH0|-%P#%#ePey)y@1qsJL6HyPNb< z5ma_lzc(Mf_)zaGJ%8EWMSPIXoD&|5COOE5xqZt5doAp=?qRd2*)~>@@9l6nCXGLJ$8tgEC*laam*jG@B;M$w59>*t4wUt-`}|+Hh0a>sgv|R4kT<($ z*RXNGGl1`XPp8uYB~a(@c{Yv3^Nw}|hviBcO?&sTOcfvw+iset+S-6?eOA|AR9v$a zY$j_Iu#Nh%@}i4ElB4n@56Rcd(}(2^yHr?PzjOJ|tXb&wu{nGB$7@0Z%1DYsZb>UD@y*~fT&fG{zdc^k^Wiq6_E%i0!5gcc>LtF`ePK>yb4^&Z5zR41M?d0T2{HLO;wJqW8HNj{B2dt7+ zm;ZtUA0owNyb5`p^-EyLN?Px+pkWQzBq7r-zH|W~tM@qB@UFqW*4tlUDE;pRyT*Np zxzi~$7F*TUQ)lmC_5K4z(~jq7#U+~HnKhkPIaPAf+GWsIIFQtown?%GiK^JeNMHM) zXnLFN1QdJ#Zo3_H5DK{;9GgxkM^+nfMtfbH8F1fSDHEsRc=jWe}ooybry`8>?cI?S1`Gyu%hY7IV zcSZoRst|SMHz2@PII?iF?49k5l!(X8n&en+)`US?C^34vkiup>r*?tTP`fkQoGAih z(DHqW=#I!7J5o~gGAw#!?KXA!^O68*qjNrUQ6PQ(>zuSe4!A4dkddiA|LdGPJsYBkaorHxXC!UI z|3T8n7beD>5ACE@Z?v0iVTnqPodR)lASFiOv65#eN|$Z51H}V9Y{a@L>Velsz0<#L ztovRcwMBaJ=6T&)qSStyQ*219NXnZFIp=!xfIwW1j29ld&ikoBG1AetY-{5C;$aXV zneFkT22B_gO=2*{PQSgna35^kP8#~!! zQ}>`N{>^jeghPl6!1eF`d4?h1k35UdyrkMOGNE5J`pKt^YBR=Q5PI!1*ga)o)W7TR zIrVo)r=#Pnj$Cr_hGcrb=sTbPV3;|%(q4a`DaKu#eIy2%sY^ zr{pl3uN)1FS1wvkKCP~>2;3|Kx6DjS;C2x>vDLf{1YW|p9g`j_LwCy1-6C|f>?-Ng zRp{|D^h6nY(u~-R(|QXh7HPUF63?elBu=rjCRG&aY?ahZnbgWMsZ~YBaivCNo~uHy zE7LdnRdlrIrBKR33J zyZo%z+X~5UUI;xm26U-?19Yhk^cqd23Y%YU4ExU2hkTZf4t6fFXLk_enhsA5=XDLW znV;zjdc_$9`Q;A!SL1W`eCez_cs5faib|{BEFQo~At?G{!B zl%AE)HubT8_8_v_AER5EM32|B0h*=o4jt4On)e9m_;cCYd%O$GI-3?ZVi_4F2=?;h6()GA> zhr_ybEiTSl@6R&`kyfT=01+3(i!Ne>Uh%44@v2_&s$TJ`Uh%44@v2_&s$TJ` zUh%44@d`QZG1y>QIwcvM)IPkr+{|*4t5ex(eV3+=vsBDWrRcT-b)`VP+N)5nN>LN~ za)G)&KwU3TmkQJ?1Jo-8>SBSqHb7k~Q0EKO%LCNQ1?pUZx;j8zEl_6*)Rh71N`X34 zpe_$kmqCdYJq^q$#Km4L`nAcbeAgx;>U@EEd4PJkK%Fa4R|lx81?p^px-vjrDNtt$ z)a3!{a)CNspe_wimkQKUfx0+AT`W+qPDbL-4^Za|)b#>&Zh$%mN;O{={oEu?LiHHi zgg7Jb`AJ#@-zz;+Atf&_PSP*{U+tL|DY<`XlC}Z(<(?^$vc4`)(mViP>zOW54fF2U z6kFc-E={rLjqj^HHoft^-ecFB<$Yz676jy#o~av?8BpXpndz-0lP`<&@}wyrlSNDH z+GO^&Qf@7mSKt7E(-P#UZH(DbwHTYCzA*|q5=bdJ^k8dGd0 zC9~;jps$GMQBfI>uXWX@NXXQ0EKSHKzRRbUSHkFZ$`<(TDTY!-Fw44L`p^cuDU3rA zpiXvaTB~=~{Z3*0!qv^x$qG)~DKXHi-(e#jMhNt5)r{3I0btjiA+}ctbz&fv3dEKQ zp&k#!Q!&C^1y}C~{BVS)6E>t$*QP#^t>MjrLOY+Hrl(VT0lW@DEWl@`W6Qn{_%>Qi0X{n&TlTAf zH}IT90X{b!TlUh5Ph@>G|B6BnOvjde8t@&oqXK+!I=1XHfbV3yT7WN2$Ci5*@ZCJs zSb#52)BQo=ocE)AWFV&jV((e||;EDZg?|23vmZZ!~!q@-)M%bW`D3lIQNi z^QwlOcNU)O^4w8)UXiC?c&^E_q42yc&uxY0syyoo59YKaT~l~2Ki|i83Job*VrhC?(3o1=Pg? zg-Des6D&~Y3lzdvqD%xqohwj?X^Apn1$DMSA;gXAG@H>^u&r#GvDw}n zH{5JV>)V{o#lUn#DuMr}vH9y&!7bwo6%xZk(YJYJMa$G^n*ja?pt9aX8@y!!_`Rk% zEI8uMx4GaHY#eIk#mMI7D)K*j_1sXcLn>K%=i9upu!qNS)r|v%vA0_JA1JZ?W;c^> z$^3>jF_Qi5-nd!Tx}kALkp^yE_>gAg_Ku(>lKh{$_t`Si>kEJ21{tmTYOZUOFipAQ z%#?J$&Gl(y+f7DIw=!G!mTYrFLL_l`s|n%v!*TuJ$I`JQ*|^~*}DIc4@nuhDi*E_;(Il^`1>m142hMSUaO54NYbC28uqMN7p9XYs=trBikq>TGB zxD#h->97zb$s&@wzv@+tl6uk06D-{-Mp+P%&iViGDn?l*m4Y+Yy0IzdQ5H`HN+-Ga zs-&tcsmhk}I&&4HEVPQrl0mzQQI=mNPFXIgVw9|yB8J|& z@f1tR2NI&j*kP*tbXjFdp_P7SsPtCql|!Yr(sE5+MTwPiVyKi>I-Z-ZLRhJ|#jVQ4 zO2f5-Rfw_*i?=0p=@#X!>8{MlBU%xG%({FV@J$NWEpa{J#!FmBINjxE@d^i}H2@S? z5|9@C&B7lgZ%RBt?j&g~bGLDexfNL<|7iql0p99ns7Wi(QNF!nwk?t?wDjfCO8asV zqkX-;tnElXj`F>Q&_`HRjKO=i7Mxq&q3meNm0WL3%aNk`j`F>g;F6_STjVfxD^V@>mTn9ctzc8C+AiI)f;!>gCv$QK;kETyI9eaa_GY zQQCR=EN#1bmUeQGPN*Kc<%k5ao5Y?N#P-!Yxm?Bvn*G|e$?{!YE+hozfpzr;?RfDd zD}K0ejIvgbxHhJ0FiTWaKZK&f^$w4{UIGu*Y zjOS%&2U?AG`A*ve|Ju9!j1EHSc|M(a+3Y5Cao1+o?sJT4vm4j_U7OvQF7@IGK3&eW z*>(Dy*4XUq4YtkB-eBA88tj(=Sl4Y{n_Z0^t9%^Sc=7RigH2Zya}&U3*X-*qSKBC$ zv~70DVzyEb8*>gs&|219%vMRv@lYlDbS=t^wG?rFv1F=VVNPr)5P30#VC#D&II#<#Vyh?|G}r2kMF1{Z^>*Ew@zV_m5Qh_E_aR->UL&xhmgv zOI7~hNR{u2RsQH(RsJnk<$G_b${!o4^2cM9f9S0$|CX!reYaHQPmEOgfmr2--m3C% zxhg+=OI3bsq{^R)Ret=fD*u+Na(2$&$}H^^x0Gl+Iy6l??PIM!jSna%%6DdsUW&_!rF^B z=?WR`r3OkpVfK2{3NH_Yp|ykSp^5aRN*He5%5{YZ88l+^uB&;gm0RsO7LxFJwOBcB z+U9j9-;h$tI$CXvixR`&NxN!Cy^_g5M=~H$V9Sb>!3+%Hz)=I^awDnrBSU3wMDPAtJEKvepxMTrj&@q3{s`!Soa#qD)N6t z5pJYBD&b<*+udU7rEGlWLm+b&4mFW4z%FBCNQEsv5spqmfU%KCKDjr1Eq7IK}f{B;< z*@vY|`PTDcPsUPjTi8gjdvtZr7rDBpe+QDsq2avwu{0cE@%vzw<$m#VyLkg*_sQeC z-}9LlGAPL}HxIE_;Y;IMl0A~$ruQ;ARiD3XfHXOh-5y_R_xVc|Xv5a!--otEI03N#TPJo5RA6^Lg#@3&BwD^PE1*urftKL0`m;;u?q0O<1- zh>HU$HK2+~jpcU~+C7)k15R8YF{ASZz!<sC-Wom> zvHQ3{!ROZp*xAKwc5B!du}@^Y!j*q@fL*hgt=Sr$h}Z+Vdntc)fL*(ot=$?9MC_rA zH@ot$4Y2DLvvu()I?8)E0)hludDkyy>$ir(#6?B()R)QWsfa(4vO3@2%3cgE zB+0|5Jb&K8rM1N){AHEMT#Vpp%V2t_9xg;g-4OM~tdgkn5z#P2gKnyntLG!4X$ZCk zRMK@WB3g!MEoPOBJr@yeL$p!WrKFvWh%rNqp*%}@dp06EhUhG2mDHVyh$%x%EoPPM zJrfZt46$M{t0eGrM9dgs2DMtYqL(7#HbdODIB5GL+`c%_0AGxV4TjjTn3*1s z3b+yxsUgzEtWpFoM#Q)wm;_Yn;BrJv7=mGcr4+sp5tD|Pr28sW!=;Gm8KOsrAqAm^ z_~nRLZHR$H(}W^ol_3TV0c{r%D-AJdKWM#(=o(_s?2z4v=o_M6NT4!*H6qp_W760cW zVpRM&hp$aKqvHQuM2w36*@zew|7Rm&RQ%6G#Hjc`6A`20e>x&Y#s5@9jEetKM2w36 zmm*?RY+jCtQL%X`B1XmLYDA2R%@-qLw257bh|wnYVnmEKvC9!L+QhyP5u;7)Qbde4 zvCl`uXcM~_5u;7)s}V6O{?{X7RQ$gZ5u@V&N<@r`|Cb|TRQ#_+#Hje!M#ca6-c7~- zTm+Ab|8o&BD*k69VpRN}jfhe4KNAt7;{QxUjEev1h!_?BQxP#L{!0-tD*j)KJQ@}M zS0iFn{9lSmjf(%(h!_?BFGj?u_+N>LQSpBoyX#lJo( z{?AR_RQ%6I@TmAd8xf=8eFM#cYhM2w36sfZXA|D}i+75}eA`bWk8)rc4s|F1^G zsQ6!xh*9zXN<@r`|0@x36Y-Daj@I0jh#0Nw7b9Y{!CZ}q(Yk&qB1Y@_<%k%q>n}yb z^17CwU5<#+M)`$^7;Ti7B4V^rem){b8|B4_7;TgnB4V^ro{xypM)`b1j5f-15i!~* zpNojmMtL?OmN!a?e{)p)pP9a?_@9p8QSm<&5u@VI@x7am{l6Be85RFmBVttizZwyv z;(t9NM#cXt5iu(MuSCSC_Z{c1#1?HkdIhSTd2QMGSGGn!Ao5)oDVMl>-@L)9x0QMK<) zrD^NS5mB}8x0MFfYY|bk@3)s`)h|WFX#0LSB1YTy#mJIMo-pdk1d8Q2A}R^Qs3+?u zcG`%jWEP{I44;^vBchUWjC!(p(kDek)h;mV$=r!qJ0hx`I23a&l^6hmay&NpxHa4NbnF3FWM~XG-!P>mYk=A z(nbU|0IAGPK+Onh0#a#PfLamM0;F=b0ktEj4M-*Ax_(X=TJmFnRJIPFP6TxTsZ>*d zrXpwxkjj$)N+Ku$^q7phHI{4mwEAZ1?e=T(^;qKJGovG4yw=4651;ic;PXj!9BeLZ z)HyKDSyA^Ke(j{wBsd48o6^uJco)BfeKMs{;=dEWWPBo}E#kimzeIaHr3vD{8^0tv zO=)@f=kQCAH>8`)zX^X2|Ly79%>Oq0S_il-eY^SJjvxA1X3NaK0zYM8(QF2n!^NBK zhUwu~i*BcA9&(z*zXyLSMd9F|!2cjxrJ15<@Q)Yq8!250{uKXC!gH^^`8VK~da7wU z4gPlg_v7a(U-RFFUn?o0pe)1hI=|Emt&=r9H*zhphhURk)Q>;Lj*gI@3ky1|m*~8r zj*8mDA_itPjuVZ@PK{%js!=<%s8`7lfqp_FF<6bW)u|^siO9uUF03+L_eTyYn&;?Y zzW!s>xjkr9%im+C9$Bs0?EY7l?-q9GW6N9AnO3=|8hxk%ePFaca8;js;_4W+FCRtM z2M+1;AfIA&44&sN@rp%U9^;L?{8b*|(FTvJd`U8&TR^tB`?h#Zh!@z9!@$ETJa3Wn z9FUcc7v?DSlfdB;r1BO`?+@c!;sOY@%hp2g-R2OW#mm87cT-xEH zWPQiDKiL9qiOFnNGOX1pT}x@MOlc3VlN2eO*OwH|=}QV{^(BWhG|Nrl@tD%SNYH_p z%-%AY!(8WFBy+V$=1P&wJdHT9 z>-A!malR3uqh5W(YO5suKesFd8mHET|3nBio-5M(fV|0A-^h90ek0J<>~N|*LzK06 z+6dX=cd zLS8#+@2UDc&HsHT_tZ^`z&xQhr*==@ImgLA5fPtND&i3O-zjvR_}L(eX+aUJ_Ma*m zFO_hTRzJLBf`Uh7nfgb)_oiBohG8jg>@_;LXr&woZggJo9JvmxjB{@_+Yfl!@B`2* ziPtlLRH0n6+nnA;!Nrq-dK(27&joT$w9gxjiI%P*;{zR@%|qW-XE@b8BF{qa70Kp$T*W}S>(w-uzdf}F09~#F*ZE0aovP&< z#5R|+z7`?0bRH1PT#s%sPpRwawYlr?Ht5?sTX+zZ-Ch%H*g2^;?l_AcABD6xyJ*|J zNj)^~b8)}cdp~cjc^%^3#SIr5UDy@qTYB6#uDEq`#77s4RQicMCrI_T^eQ50acneg z6^R-!ZRw0@?-{hPIgp4JTtFZado&bP5qkf%=Y>SxUE@r6e&t>2ydL5))co)9;MPj3 z3c}ciQw3&dVecs_Ce&T@eG#7+ys5I(k9Bws^~b-SC4A4`dNCjHChuro)4JjfJ?{{>HD0^>+Qt+&d^4xF~?S|<++*@bc zVtRXVOaaMjswO>tiL=uaEgoKk()gCKgSorYeRqe#r>cgNi$|hD#56A3y^kImhygpR|h?>iJhc z89GIfmv?-fAS8RTa~DaO>?M?k4N17UsKVR_d{DR=?TJ;76;=Pgk?qt;CNym7o4#vs;B5wEDUpS5yBE*wNjj?tSYzzf;uS(opSjBYshPk|tfVCG#Wy&O zd(Lak*Yqd+gCJl>S!k8!!ET0 z+5n7FEjrkU+wNN-dE6QTF-NkQOTy%axSnf~(&V7E9gAn|CGt>=yl3~EEF(_>QHqAi z#gc@e^NYpn*5zF&i^dFy>-($h7R5w zh7|2rWT5k_9_3;KGT&>%Dq6;~Ysw7dSK3*qMl86BaS*Oz9E2;5gU}}y1tQ*T6sUa@ zQ7Coq|MZ=I7JRdKK^(;xP??MwAldo{xWo1|84hUg#+&DLp9v~&bC%c)Id|`0$FxO) zku|CM{0mq|z_K-$$)QX$!XE@J%LXqkG9pr<&r%(`06fdwvW=8!n%Kx+bcZluZj_}# zn~oL#C1r>ZljLZE4as05rk67Ef6;w7DjUUo*(m9Ia=ESnf`WY|(U3tidlL8g$@i~g zJmvDQB)mq8)HjS0KTHV{#(!2ck+O^qjm0VozJlr)qM)AZW%JHwBpZwbw{Rm>F%m>J zRrW^pR(sl@%o%(qW2P1i&>62lwv8KT!#%bcYp^4RsSsG;&a8oIy8o75UPq4YHS7=t zl-@QDPWzq*vy2Rcbg`nN7U`g>3rg6a%=D7s*?oHNy`Th_D2Y_`{*_ViUS2{TrGQ+D zEJZi;RFAq}4$M?2Jngq>oi2~b_giYZYKHcreM{rq?}5&01bJqSS{a2WELBToY50Wj z6fx?uAfRn~e~O*SFav`PbDQ5;Sn81q-Em^|V>6q5(uhhp;h`yghQlJ@>}!Aw>04b@q2ki#%i zEur&I3-P(ev^SyNq|l0a3p1JWS$c_ZL7;{&1L7Ih;M>G|_3^!2dzfC-Bsz`b@`CPU z&U^*kOo)Xm=w_m9Nl@4%HAKP0WRLj@1}A&X_itihlgDGE-y+g36y-IlvG-7(>NR)y zR5;i9`ytBYHSS|m<3K&r2re`y;ykRgS?lbS5sVO*}tWD zFrt|8DjJNC4}C5ljF1mKPtip(3~BJly_E%tZcvuWD>bs~AYSMy3i$7&geZ1?+0h|d zp$E=hgNZ5n6tEX7Yn>O>Qz9E26H#BLK`);|>Bc9#d8(eekP=?>Vtk)H zp=8l-98*3vRx*y!#ff8@k=Kl4gd9+bb-eSNR-Po5CyBL^z{o5qX-z~qiyCSc(7}*G zDF{lc13GHZ5&cF-f!DpA)Eq;)NC$OkbR;>YQU7V=C_@qpMWI4JCMN$)5~ISE7@<-h z6VrhYRgp5qq~H11-Zu)RPEP_tQEX7A0Vmx?mpR)>f_4K^lGfGX$_@bqU)m;nbI70H zj=h;8HAR;caU*Tn)9}_X^d!8AMZ-*02<)YkK;p~sq!qn-3XsQ`p(_q2$%)*O9=U6v zht4VodJ_3K&{Ke%%Zcw2&z6xI3H7NfMBmhJotgC=WOy(?d?a%!Yp1~vy?PCJ=Ukx8 z#oi6oY>ZeoI^9M2H9CbE6Nw9f))I2|f4{s#op#VL5~uZbNPF)?&=5?y-DNK6yfeP< z%2a~-|1g-l2bp+mm_{1bY?#)o+RP1(LVBYr^c9>ckOeY``imQys!S=_x=5U z;(g9O`|NS;wbovH?X}mIY+)Zp_6b~DOF!5Vagr5%dX%;Q&x@eYC+J$0;(^;6_rS|FHs5k+jNQ5trd<^X@_s4$26MW$Vl-J z!T|!N!4%<2wV+CZvW6hJjqon;cqc9x_Dl`-3J+1DdvsD29uLuOXlfB2CWZUz{|PeY zdtjJWlJ5gD3KZ6!{{%A9=_+K*S0f`Rl^`Qs-6S#+Z^#Jl3Q#FBf~6ZHS~rV;EK=Mw z?E44UsimABV%K9(8U5u6-+=z$txHPaEkgk>QCq|oLlX$KpecYGppc1adNiti{vkF& zBeK#0-z34WceL1At&wjuI)46vdB^OwS27e_4PaKSh|4U;k&ml@yrVz2ZQ5eFzmr-XLpv(nP}+J z4oap$q!P{KaIvm+9u!!Ts3jeP7!T4U6=+Bk$ng+omArzKVX$q;9K)|W~#|XWy z=_W-7u$idBeCujd_)t4n5x@_eu>{SVOsB^Kd@(M~Np|cp7fPjQW3<3nYDr3DBo))hnmeDcx>DUN2?jZhHz=xH zj)lkKFyMumm^ZgzkwJ|~62Ur>Hw+|;l4j^#lv&CMmV(7XFTDqNkM8v@r}X}N z((`P0&y%tA9nK~kGVQQ-mPJgJE+?aIR8&Wo4Q{jqNGF{}M=Qx%fWY(#nZZvxf`(89 z>l#L)P6Lxm88sR&FGF->5E)Tqg*gVNLe(rUJ>CoVG(cK$Ql9Xx!lq4X@Z7p!a|=6~ zekN3Kn>{; zxv`Wnji5T(4!t__4{rT$#Wu$93UzbUBxI=TOl#pKBG$?xMy7nxt(41^Dah(4gIdx= z+f3dmWN8!95b|AjLc{~p&jVUZ-YpF^Hb_T=6dQeiIb7065A-{6QAa+7buFwENYnpJ zhQ9MpigM$!enWUTh*ROR`clPZAqsj~&1K=c@ScHvCTTqHl=!XHcap)y73;-ypO7jI zeF1+3L2FFlY-9%VO#_kg=uuKG<1*6#AtTF{lcFV)z)jc}CIGsoiV)aXDlfr+ z+g+UNP_wpX83KLXd86iAioM4IYUh17W;&NoqU?19x>k4bUrw(i4GU;Y&?-ca-|)x{ zGEv2_=|dw==rXIJq+RL@eGqNfd>pMXxpC)xnBA+1 z&Qi=chhBbBQ%)=(?VNI5gCO7-RB+0b5F&&db%v456?-*_zHE9Dvay*HGVWMfuypUJ zQD2nHBn!q~^E*&l03@?0BQ$%?@4z+%ZQ?9))I?>^XYy&Q1)`+YXgzJuXjT)JEuq`1 zN%^RaF=PX;u~wx}G99lJ11nH-tmVGJyNi!PSea>z#dtKeT3OLLv`)!TkeqA_)Vg2+ zGjh@-8tzz(QcF+_qvcxOB7D>MB%0(k3yNV|BZecw{N;NzRi=tJ_LRq#3)dLf$>1e^pw0*@EoqKmC)VJ#tB zM$+N;8deV;u!T{~p(K&`Ss74NPl;5)7y^;d?b9x) zsNEDFszFO&K!^mzo2KXrMWP(X*dFnp7Cm49B8BaTv187HK`hFzw8>>tr4T_nOe-`? zt?XA?tz0|eYehyic0k+G^){mb{FvobKk!QGr_4>(FJUQ#a1KRz1+t(isAM>X22>>I zhtU55KpQ2gIn&V!=nTl`d!u=yC*{%tQLZ0nSps&`F8t290$50k)olKO3%>I-Z)0$a zeWV;N!}m-Am`nl~G1dA75-H$$VZGG2z&2G;n9x@RvQ$L@ReNY@&Q7JxR11+xipgYA z(Q8yP(Q2+N71%AikQo6NCo+@(h9U7ZK=rBe%j7Vo(jFo%$}iZ1W<+UEwPHzDEi5c@ z6(t0@B(VX{WTiz8CQ}LzeC8Sr3X`(9Vo!YoMA8VGB7dU%GGWiA$b2$I`k9qCD658f zfsxKK%je;0>9nh)EThZ>TC*wdVj$`|W`5JXdPvn*>l;*wAORcI5ZAni@(X+Wz zs-xsEkiNmEHwhTUyB3fX?ez`T6)C?+!y1(M{!)HXy!t48L-HYPV8@&h;z1h?PPs(s zwTS@)58e;0f+_@UWZlFAe_g^3JwWn0AxUkwr2C)LCu~yEh5vX-ca!=ADjyQodWD8A zNiyA}MDJ7{hh<4&;+IxZDIi(d(hBXDup5>Ea-d6~cytL|DJNY5Sjh+{x&(r$E`~gDl$lyU}Bpo63|$nNRUE-F=N9z1(rZ3{{K%IuUfScS>1;!iR`3o= zGDBP>WwHnzvEPM3L8-8NDHpN!0E_};iky1oyhoxN;DyB+ITG|_ZCs_v?D#j8UP4b( z%fK3imsyXVa3BF5=AW(BddV%E79XbdvMcz!)(c?$)Ag8uRHgL-=hF39CS8vSDAnsR zC`ES7DS8H(3VLQD8os1dQ_*-qMm%RL6f=*Toh{-?)v=zAv9SM>PH)bzd%M^(pZwk zfbY3EXh+ATA+sztBCJoK09sAyNU5e=XXIFz(9eH=C4fx0nt5fs@;cg)kt~`pZD?{x zsRDGH2|{VNJWPR|XWDe^l+b;e%Qz`S5=<4x&TXV2HjeEVX_Um+35=9wU?kqO8@%g- z?MCSXZOTL~k{2L8v*@d=m}K*A@7m8sft>} z%royvCbE>sm!KG9<`}B0X2?X!6C)F;^u)}KOiT>$WFq>|0P{##3lGx@Q&>eSYy?}S z6(&bTD-4e_G6{qV^@&W;6Fo%}NC@Ca$`%v!Z1CurASdoO5hv;^;)Lg*CQjr+HnkIR z!Wph5$Vr-1oDj6SlpZW zfGhkui)J;WV@shOF{GbCC&=snbElQ^b~dl8YhAqSvas^fb?5SB2MQRSxs~iQPhGV_ z%AiWdmeWeE^Hix5_^O)*zT17I$#wd;@vHE= z8J+*8(|IjaL5TPjsO*v!xz4T7f+mVrEuUY!6#0up827%#Y_y>GW!^D17j$^S#uE_n zf;2HE+q!}--qZtPD>epMkoG-obOIVGNRjIEJj&g z2a@Hm&rPd30(zMdNHJ7U_tvS!H?0(6-&D#mlIlxtmCPjRwyg3GOE;-Vu3z`QtI%YN{~c=neFj(GyePEK0SX?)OG6T zR-CxVa+_coV75W2QYJ{RPYcqTArS5C_o!WoB3IbfEK4*k!@@mO+2qr?b>8-B=O~kz zF;RVDj1p$lUo)ItjczE1ZIO6)bl+uI|0s248tqpPH4((6f^m z;Bu=k!d^*MP=zt%GodhIR~Ex5sfkIZx*%5l)DGcV5XXkl<w3nLA=&lahPIGOD4zGlr`xF2TgBt}&SMbWaI<2U*-p+peE7pg3 zKl@p9Rds*Ba=OcL*BN9kbZ~?b6>4)wts2ThQ4k4BR{hOr?`R@*o#+UquV#Rzn>q$} zx{g*7)i6xL=$6yMn(e@t!7G=QS~YYR{^`kV7wBMtQ%>HQZ#78~?0po%R%R5jgIYz} zHo7ZNUY+WYUAZMj{{e^K6k`Jau!(I_fv|=S0^2=}s4*;?NsfkS@cgL$XfcyMTq66N z+r48@c3K2>Lb{~>G(C}hBbMkQKbF`4%8bg}t?Q9BHEdkkF@U2?jZ0uF9er6IaFW0e z0^_L$m6}Ln9NPv4oc0AgpLe?}ZV#^aMkf_ECj~~Io-fqMMqQdM`T|w1?#3O4&=X}j z&xcbCogZ=Odk6P_(}2EQXkEWh*L>G9AXydAAm}vF6e8`KXfTg9)P#+KSfAa)Mm4%G zS+mCg*etmRv^Tkg_SWx`1U96Bw{{5!P%PW`h27hekHpo4eb_}D5Ms*E(Y9M)ggb55 zJqWS=Y+E+M{x!0&KLNspAqfX>xo46yax~O^;lm*T^A{RE?a$OJf8& z>;+O_J_>RJ$r1?1E<_vjEDAM>anN?5V-Vfd5Su0x<$6bd5qOnDwEiv5+IAXXqVCkiDFfc22JG4us4B~LeYlfY--iv8odK@ z(5~q?5`lN{m2T7mBl6KF7ezmkE|lE;!v@mV$O1xu@~4xCf?ma>D=9efvgt(Nb=ZG# zX@F!6T^YdK0K+uLFe=Sz1OKQ`CQ2<(0Grq+=rk10h{KlR$WqOMDDWsN4iB3jFUh8b z`l1Y`tn>i87VuRL^+m~$z zFL3~PTARQeO+!)LVgO^I`o$2gctUO1%*3DXsLg_1Vy|_@kv0%4U^S{WmY&h)dv(Ko zypT;J&KL{VA>JuC7+_miVkeRGj>%G75C+_gR;3UQpimdx&1@MI8^p;9+Wi7oW>_6* z8$cU16h8f)75h3GqIz=I&uFKj2Dl2Ck<>@Qy7Z%dPdZ)0%$HSTGn$v+N3tHKc3K8o z1PwQa4_}QbgU^CXL1U;@a8)NM3fB_KnF~<0Z5<1 znmw&=M9_(38pwN~E%(zC2gxX>@BE0##89FSh}8$sYt7eSqd|(AsGiwNDQwL8@rpEK z@=F0apflO1z=%e0Bu6&X+LG7t)2@Q0d1TOtHW;rHXvFBkwy&&)+X*X- z$F+S$tdILROt>K%WKjc|rDRb7sjlp30W1ZCuFPWYCNUug6cSl*u9c6QrVMcquvsJM z(YTbCFmp-L-1X7nG%dJ6bgtFfi3N!7yvs84X?9q!!wzh}-R=b$=hQoKaXk76X;mte z3w9G%$2eu7cOI#%GTRv=kmx=nF#qF4Mq5utq!MDG%m_xM;r9& z3rB%8*1t(NPb7+5)`2QmZ!8FzU32Y)j)0o@;!5bLrKlpBDEcEKHEqyog2!(Yunq8* z<1*7iC&QsAc5w6zy8f?9yT|{g%Za*{v%3Ahwnx-kl9~36%+W4<(Afuy=dEUGw9bwR zMH!a2n1!v)?xSIex~7qCU3L%C4OQo33C?FsC)fMqMM)`@Vxz1tsB4*)ul~3n8Pe}r z%ieb>$H6@&@r_2LpDU%O5iH+Z5N4%;=Q0l90yP)361T%ognu2d{;r(Tk%D3q?on8X z3m@biM$R}qO#WsX32dk9?Z_Vsx#(3NtRbkc&^aM!8fC(LJJ?7EI(x-MJJ|PVz@!EN zt7YxOt`yW;?1zqlB-+8b>UFoHb5x5)Btp($1_YVTf>c3_ zhigA3>|V{_Gcm~!sLuLIoqXbkCyg_#(5?d0ndZJdO6Rlgtzzf?z3SEYNJBgnxENLm?Lu29o}6UTIt;75XZ#APaRAiJ7JTu_PQ z@+kp_I9G`?(VUn@Nt5c$x&YQoL{plCj)D~sM2A{TpdtO@p=ekEeRT+Ta#i0dD4~(7 zMuK~iDw@;89s!`Uw7>8<-?y|1yU#6;P@829+5OF`P$ZrreHF>*-MDUD+ zbTT+LL4m}h3DavHjp``uLSvEu9uB8|T)+K=DCQwOdRXG5KM!vB+4oFn^Mc>{~7Eb#+ z+qws`8a=p4)IrQWs}O_eQyrI9A=c2;>q7-CG$dAZ()w?!Xn&1eQg?zEgoxMt zy*^a%M3RdYop6CWRdfZT68tFk%AH~YJhlo~`lUsIMgM(-zgistX+A*0zb2{T10?+G zlPcan!e65j-ygy^iVr-+J5TY=p2m9I_^XmC-ao=WTP409g#X_m#vS*8kLeO$!v{E|C;A%RzY$&bzj#3B zeBc8*_X8i$Bj4`Y#p}TGDAq}t zl`2euit04c$fw#Uugk5-mR>)G{u7r4D1ExMLsW=?GH%k~CZ*(gc1PV`Nx1XRxzWn;3Stt?tt zY+9kxWNA5E(OwBc()Q}mhLvZq@(UGh>36qSV63ce)AFPVu3pJ{tVP+61pyXj3F1OLY%JoH@F4ci zQtz;Ap{G|dM0oQfEj|EKpNZxZ&5RgNL+C$hvy-{1J z(JgFQR(46BVPo3%aeszQU&b8nhwROc&Y(5Pa=8&rs#}5)#=EtPI5`QmailG~h*0a& z#f!J68ySqqsiG@!#plMj%W$xIIUnS&_Cms6Ou}aqJ|_vUAbh%-wnCmEqH9&owfITg zhUc>ZX6|jeVc?bw+oaK!8#mYTMWLm;GgEP6S%<&*wbvTPbIes<;^;`O4~7IaX}o#+ zBG&bB_&fC`1YH=D;D&e>MkX9j=cLIo_;bRr5qqi#+r!0JvxMCjV+dl}SGL5QGdzYI zB({@QJ~4MJC9UAZiJY6It;nbG7;#ywwE})Aa8n&j$E?|MXen{Tc}~z#kKtWXmNxZB zB>-Y@DlhUJ59I`R2|TpI>bPmf{3T$fP<$jvfGg|+Zv|S;jiZ2X)7CRvoZiU$AYnvO zgAO1FcnQpc?sy+-txb?aNsF@tFHHB3!8RNa$U-22S7D-1_)7C;$OicKYy_v*iD1_< zfrMQQybWV|w>zjrJ+JCK!T&|H+ zNx*8YrJJ?Ax@k8CIV^f@ph11_CS*0EciQr7(J(hz*M2C ztj2nQUZ_z8`2=-~t$?`Jr!MSP#g;4gE-7J9906wAINITJ^ROzD&A^u_-`L^@b14jj zs^;w=g4N6=BJ|r2>8PGFp--ZsU}%Y@l}hsXhlB0t1$t%3C~w;y|6Jkhj31oy{3#p| z@JZTQnFH5wSO|2>Ov{KL0F4zH?C-EdqaH{IXl0ArA(hCvJ`o(;5pr6}E{u6FOohSf ztCH&wkiC#chE|g-Khve=d>ah96ynz#yBH{~j(DUKLPbI{CSp2Oei)>RvRQO>rh7)c zm~c9yo<}&HQCAUWMzy&V;Cb@lo>X;Cl#%1ek*5q@-4hhBj8n) z*w4uGPJjf?MPp)=;1dwRich>0OJjI)QOBdRZ8BNS(@`9k*>-<-5)iaVOQJp;9syC2 zv;koS?umsK7Feu>ydjq3S!J75WwF(aQw_Dz+Q!KskL9@p%d@hz(t0B?#l~ohQ%)Ru zlhv!)Y-O3NQll(@n%ZpTfH&yIBv$$AqOr7xzEh)Y4b@==%UC<^*04?*3-c8Mc;k{J zVK%k!LeNVsys)bAFt2lJ`SlygGa4O3`c;_(>kD7cb{`pIWZ> zji?VN0Z^Yz#4Ds{$tt9$4NHAex@>aJEvb-qFKbZ#_r`q@KaU{qmdvqB^%9i zE*Q|t234HudI0ZFL1AW{c2eS>KPOjPxFqlc##Dnztmfi>b-ZYwK}Ld=c!7osI;-n3 zTE=UzCG}vo;SotCLry+U^9gMHF9=H#$R>wfy&ryWGl?KV(`u5Yc~N8yB+*+Gkt}1P z2_4pBzB+M4L1dJoaUoXhfOqh3Ar? zU+c}G>2t>J7QEKH8*_&W?4t+08d7nZs6x6-EhE~*8U+r6l^UF1tVw6I3y>38gK-|c zvIZlZtikxi8mtr`PTM?1^DM0EDlTVzwHh)}_=|)uPQvF9J}(KMPIy%&vSGpRs|U9{ z{$^Q<>88qTwAQAKOyT^DNAV54`uXgCuAk-s|Nn45JpWl)j7m>7X_hZY7lmw@}4OPD=%jIqsTN2Ui{qa~vDn#?~F zwbyd%W3(2hV&vnQiaNxc6Ufgb(OObMSJDO$(D7oUN$+!m^P$;knQ7*@9RiYgnBf=+ zfWbWnuT6e7zpAIr^_l(r6ko!=6|ml~eEjWS|M2`LK6mNzN!bS#@zCjCe&wBCTzJMqSJwigHy~@)X5hEpE zR!3}R7u_jCl46w9RMjaqm-?zYVzks+)e&Rtvb(A>wy@josv@?u>+Y%|#%iFd%NQp$ zVRgh-8tLkYt)*PAj^KbAmp)Y$I$?_A%w1K)Hd9>R9ueD4aU7GXN-=SY>)#_{yD4r! zkBIH3xPd()CQWgJdPGdtLAmNecbMV^_lTG>g(D)>DR!LVIA~baj;T}JkRA~`O>ske zMC?4p4eJrH%M^#3UmwMkB$v_*Vhz%bq?LTM8WgB4(*G2%bb;gQOlMc!GNDr;GtIkL z(BTqa3g-7+a;z2N2Q);-BvwEw9hFkCI?U~htyi%%`Y{C1-}p_*8-Kwxms+5xl2q3Y;ll8 zSJhe){R>^S`z3rIJL(e0iM}WNA`EZO=vZJEb<08@<+&bJl-4Ih_+T!oUBX_4+%u=d{@=lA-h;z1*5T>pvh>Vt})e)>=Q>Nonpd3$`j*nn{1OyHJeFPh4Dbw*0 zsK-;L<0DL$UY!LcIrvaj21@sa9uX+x5fQ6Wpn6Z4jxQ9od&+ct1Pb_+>G%lr^C{Eu z5oqyKrsE^f?x#%0M{qPIWja2hUpLe75gd$3nU0U(bWF;0e8j+RrsE?x!ICl^AJN*) zbbJK&QKn4CM{p@t%5;1LXOB~+<0FQ2GaVl>w43Sph+*AK$43l*Pp0#)Q6ea2rzUM! zQhpPKx|i`icun>n@S3dg8l7uYzw^?uc=RYO}%&xn_8^!jn|+> zN7o9k5m)=ydbkN*L#NG|&BmOzs@EB6=;pA&CVEW@I4r`v^;-I0>$Nh9!H;*)`1ddq0JUNTy)w~UtS zEu-an%V@b?GFq;;jF#)oIdh3@mP`0KO0tx7S`coDjAlXjBr=)>;gGLr2`F(5sZK1) zSgA2ed)4GfNyaFvBaBg2M;N25jxa`99bt^JI>H!bb%Zg>>Ih?$)e*)ht0Rn2R!114 ztd1~7Ssh`FvO2;TWp#ux%IXMXl+_W&D61okQC3G7qpXfFMp+$UjIuhy7-e;YG0N%) zW0chq#we>Jj8Rrc7^5_2{V!xTmd@D8X2kOlc{k$ZdP`@-OB17{!s=3#0+zu(y(p(6VU+ke;8jiu@F-u!C{d-cMu5P0R*+b@2~Wf+q8*|4 zjFManRH|o`+CGF)cFUh)8UMV8(h;*X^c8ratOuj)(etWaXL|HnjIwvHNwG1bL=Bkq zx+kMddyU88_v-Z~8KrC@@Enffw2D#w3%xc**`wD9tWd-wF2X2%U>BZj9oP%M;(X$q z#ouX9VXbWjJdV4!Y5HbwmY5F+r#X{9bxW^LYf+L{?E@ldE?RGS$f>uGmEpPeyPi8j zmmFV$ZSf8RqOx)B)$H-c))d~5J)RqHkoxrUTJnO{aGd)~@?zz@p1jza^^N4EM#=t~ zyl@P6oO?5QVKZTzdnB-ALy{t@L2I=LDICpmP!k~>Vl!Mi+hdv}s(O~3%xkqG19ucX=E%{!SF15X-mA12 zt-Mw%G4RdUV}8VPOVgv;!D?qlD2D}j^5?3#+U&Fp|8%XY@g{LGw2#m-IvbqG`9-RI zgOamgzWA3kl88J=Xrg54YM{Y9A`jaUh&-BHYvw~H{2Kq7DV6?=4r0ZnX$bo+D6u{9fL`kH+M~t8gLHUhsL# zOXy$N@Z<&9DA^3W;mMD&z3j&7$zOfI7o0-z0w+_lsa$5}T>|qm8BLVD1>2X2VIwa& z|1us|aBO4I95w;i=^4tt4Q3YSk`lgczvtNR+4lQ+`#sBk&$QoF_Irl?uC(9N?RSO! zo@T$Fv)@zgx66KGAkI8zzkj#ickTCY_WO?gzHPs6+3%b7`&avY!+u}4-@n-JYxeu9 z{oW^g+gCzW!;5d8|GS4*4g#UTXe}HX9%*Rpm}2Pl z1~!itX(k)aE#iJ#oRs)If&xa0-|HphB}`w2@M0!8`qIh^yV5>ce_r~hFGXJ9_5O>9 zt1*2Mb;@+tiWYeznfe#U3pzd~Rrro$fh~wuR6{LV2dh z#8nsbqdC+9cw)w*DN1g`M4O{+s*reM*6o@%3@wn#NWtAiHkZ&Yi48nvGblU`VOr%e zrvsrz;)eOQKa#nXw}nitJdR^#<*|f`6$~DWu8hZlfS89s%wskn<}ncv^Ed?9@|X;y zdCUQ}Jf;F$9&>>$t3T(3og=-lvzr%o7J6Z4h8K2@^Qg2h^EmlNcQ7d;nn?6fU}kBU z9!pBY8FYcUk0Fe}++t|5n-Ic~LlE{nQ4sb#Q4sb#(L-1~aXfKI3WUZI3Jev2a5y|1 z2CRjseQlgVLPZ-LA!@UYi4fI~i4Yan#N-g7VxUM!h>G}42*5}dAp{X4LhoeNHB0z!tx;=CXiwkuW*L*B4hyd~trHpQyph#nS;tA^TeuwupRk=!g6^P&2% zRk4~3&Q4-EHeUz_DOQuksw8$rfP2D$iWOC@NMgH!QcE~Mv7*1OBz74NKKmW=o5)!WlRr`Bjo$PkdTMTk%T;)<`VL-n?uOM^AJKF#E`zULQMV>>`uu`J_UngV&7?Kzh~$J-&E zb4~V~YmVn!Q$6RJ3+FPH1sQ8$X3MnQJm*^IIoAx&xsLOk%fVqunbWkV>2jbRjc`~V zMK~;v{%}|xt#DW#L*TGHLeF7GrX0@}d+*KhysRdU=VdiK1_F?qDiSSWa!W> zKP*Yem)2Vf#^RZ=ksP34J(EhRDwWZ7V(Ifj%c4iGvS8&+3rGJ6Th)JBfZPV2MKvmJ(jgRV#Zdurcj4#?-!s zCIb`{@XrCI15y=WWm8~fyMaYn98;-(FJNK+kpQdC1Iz06z$yq>cw}C}L|kvsliPO# zR=p0yRRc@YV+t(f^9rz%;{GjQY0Lo@yPdKoY1kyNG_F}K<jolk{1-j>&|WccG08`(oCmXCJJ&^eke$rDqG)HZYkn$ck3XWEF!1ta7cS(Fl50 z(u_&j7m^azCnY?dlzV$-b#wu zz%yEx(T0GOhnw*=eg8J&nPuL{AxiVZ&ZM>|qw|Qav1p0YIxnVJO*}qh-rlW9VgO!o zI8O>szWele`Yq|cC0`QS5=67Ktc%Tdt-7=>^s;KGnureEHyGXH#wDj^rlqmDV5xnp zR$Cie$7*In2B%9Whg-9?XtpOz89t$bL)XcURl*|I^cF41# z?h?vQgY#spe@qdY7+^bKD6At$-pn$UIhxy9bRRFA7MJqID}~RlxEUn`7+xE*pD$Jg zTh=k4-U$AW(Xc{qDhTevMb(@c36=t}g^&x|2}H>a{C~OJQ;xK)#+_9?QI_$pJszFPnA#>g-)9hRQQ&BY0%f zZVP1%UGk--o)`t97+Rx}Aq~YDTI2EB7gR$DVUuO8Eg4F7(?gRrooecoXs{(R%vRM6 zrT$h?ZQAw0p}NSIf>QUl)Q#4xftE0rCL9>jO~w)+P>3GNVbtZ*59*nI5UEkiPQaHr zN;}^gOYPgzs~P=CjY@X{9?{Y5O>pYqim=V#T%q(f5*cM@N<);$!;yf8V|z~!wv!qT zvaNIBkSZ7sAv!C%W`j1RYXY9G3AB~Q^eAUpSPTc80;B6k#wLRnyKaOBhUy|JCw`kl zwXHE!ow?Ae5U~&Ku6J2!s7H!Xh7_AG3pe-gdWc-Yq2WkRbESloHcRLSRo5vr!q=}s z7-aRc%SV{aKz^I8=0;z$n1glBGZXrhGKXa>sVS=^DNF6|pY%ng^s!Q!(^6VWTL?s+ z#0Yp28*0!=iL}zKEv;K)eV@kZWmz~X=~_tvh+`{Dv$cO2&r8_huZdIlL)c9HDY|k@ zNhiQ;N*$f2edQyxYgkeawA@GBNd4x99e&ZG@{2^xFZyYI+4AML-o_?RN|I}^xSNY# z?lI!G(UK#66UGBPzYUhWUPB25TLZSSwr=ZRCfdt({$+c636r+r*j-#wgHs5b_$^v} zEy>`h^kyraU24KP8?G7ybVCYgn}o)!5U_`UebuwuveM{qghz|kaDw1a;nCr6W5~l3 zY$+w!GBRN|n{_^PqqxQ9YVNXdv~PThZKc*_26_W^!mme%TZh|)+p7`{$Z+dn*pZa8 z?XqxU`e_)ko~aE_zK%%1u}zvJ4;X;GAi|Ah{1$8knho}i27A^|#Mc;f*pnb!Z_r`W zU0DZMRt;Xk3P8I=7|jyD-1fz9&a!gX58(#OS}(ws5)AuiLztl2Bpc6RzPF+854a1~ z34mdk^t3gcl=KZ8^?13NADEHJ2#j48j!U~gG~CQ$nGXk@B1INWY_f(9wuTNg4Cs?$ zK$9m}KRIn-7?92`B2iGRpY^rLG7q-Q1Jle6rBOm1&yERrcI@diW#1J#-NJg?lTNox zJEi~_;UO~FzwF@gXR9=g0;HLu=x}@*s{pY(T5N)AdKe~+4|hz1TZL27;4lL$@bywc zYl2CWmxVi|NqS(T5DvWasYfKKOUY1FW9M*7LsCgF%OD?*s#`A$OG&Pg8)GXVuC-C( z&OI^}jEakfcwF~HOtYa}qYVQa)x^};U^LiZ)Te`CGN7krF9R|lsSKD9V<|`f09LIH zMT38-vzNSoskfJ!q?N;bf5N0ctx12jTvoxzuqNpk;#vYbE;=?OMX0sP3RYyJe<|uk zd@xB2;T6*0Fptz>g4C@Ez^jp)o3hf>!+q+GB=v|Sbt!4%$fRAHC0)ra3v1J?uy~|X zy#k8{d&woqYLe_6;xisL6f$ZP4G8Q_2Jpctz-w6_0AmR|#zDP!G0JACRLYT9+OGVX z<(kr*d2}7*^rA*xFSe^5(k{S;(AxuSTcjNrRsoSmG|btpwKWM4^1c_PW?xi`b+KAB zXTn9aPKz6D-xG8|*ggZ;cs^4RpOJ`@I$F|PRfE`?v?rH9uO>m5e9|7KD!L97B&GCI zFe~8*5M=0KMao=O5?avrX7yd4C1-_=23;>{)%TQ;QXFfv3>8euCH2-M?aKT1lxlqO z9^;jox(ql_U2W3#O8;1_q|HyeTpwyYjI-n_UG%GuVkls1j?6NH<$T3yh4}=>tU{}u z8KgETp@PwD3#O&lCi&Bh9$)qA+wRFUr7Xo8VF_@A)A2^kX|Pq6TD;6KoffIR)MU%8 zWu^R71_GscXWgo)E+FK`jvn{~d{L3P&H~@HZIR=Wu&FL1-fk*KBKF6~tTAMVEo|vkk;aZqHsv6s?W#UK3Zy#X z+pP>gW@#5_n#PR%I@pD8gCFJ^05TO@RaL7|!vuklMhzQP_?MSYcw*d5Q=Hn)a!eYtWm+3ZL@Ki>Q=8G#ZGep!q+-j!eWH6^i z{3b4OlvE0R-Ljl~^!ZK8Z?)dHgS39ydocfZsNAT}UUivQi+pBLYvgY%_sO`cyhpOL zr^o?Jw(!TAO#O2B8aoy2Z{@fy?t5=(h2mTK3O%x1`G z|A|yuCGcSgPFzMUT*Jygv!7?2lSYY{4v9&=*Z>}- z%@|BGymn2%H}#tDMMyaz(kbmz!Qn7gT7>5iYy?7H+EAXpoo%a@?QFZ*v{Gq&0b*`_ z81Jw(6wvycRO1C!TVAOjP1X-??oIk(Pv4J`WZ%rM&8_|t5^_?1f%-c^IK&=eXhO4Z zf@U1n&fQHwq1)mejhq*xCmUo|9CRB3%T!o~e~DFa8kTN&yez{qiEXmCM(!PD$v-O-lJ$McoS7t;@|J`dUdT*&%Y7h-8Byvn$ITZ|KVR7BVWJ9<=<$2I;#Jfu5Xn0 zf8g+J)W-iV*!;hGH_1)@t9Z8&`9)aJdr5|&mwg2@{4?f)F(Hiqelq!gsPKWH!v7dj z-vk@gj(EsNJCD5V=_j~)glZmj zvY)H4R7g-xBFrc$#rJns+i`cf%z|KJmZ0Cw>Xd!(dFt&9L zmh#05V@M+=jCD(}#m=UcD6v@@v7#BUas~UvjgnV*^ZD($0ZqWpX2IXm*|;(s)R`lF zzO%pOQu#POQF_X^XSa~n+}W@)9LS1yh1Pfc7CH+OFtY?3I{Q(f>27E!auWq%vXc~K z&u(F@Ne%694b7^dte2Ztvawe~u1)27Ng6gdxI8RcLJ$*qEels+KFNkd{OKDtR zHEsoKw!HN_qg<3?&!W05S&!4M_O(r4y$Gn~ZkEWf0SVTk+4J2wBMFynVT-6m9A%G| z_LxBEil2 z^k57A=GgX9k)_NSS2rm;o>xK`*-Zvg(-!EZRcDPYnp4ME6zP}+EQ#-!vf+~nGcug$ z=ozsp!kZ<26+)dHv-6?22GYqz1`@~4)HMe4y-C?sR__>0_$Fn$lJMF#hq0pl^|!^$|v+!7oEEB>ETt#50P#-SJud z0Ahp~0rT_ip-o?2%Ff>%T!%~yq#)RZfs`P4Hw_JjrNq@9UI09FU&@y76XK3z;KO3z;KO8tw55 zPgT8;>pk&`K{UKVA7??($`ySO6hZlEv7iXGb1Q%}WHLN$ko{

5@k)Cy03H1W~Op zOgq_)ldyEJ4GXfML&rY}dv-QMCqdX1oEG{R<})@y^h{-l#zvR<5gMxj^6=3BJtN9g zx^#fXCLrp-184=UK4d)M!ko7>9x0cRaL&PUQ{?0f&BR+9U3NdP!ZRL%y|U5$_6$0D zG%C|z=v#su_F6%X#QjDt3ZqwXY|hzyO-^b8hkSD6uK_5sGPDp@f?ScJxH{PyS_mUS zao;d{P5E==ud)1Q2`mU2+Bf2bKwJof$IoVx*i|PcshrMkFjt>-g*pD5f9Q|-8-jbP z0e(gn3A4tFs~B+=`;@sHP|;N>d_q%X$;E!#Tj@j2uooW#{fvZ}r5oULyF@&X~~O3E@q(3OM*LeQV&147}X%n~0OJ;}~l5jTF4Kb%Ey@+3RcB}zEXm(L!K zRWDby@-nJLRf;-MZZT%e%t{6~ojubxLyN4T75zC5w6HTT` z%NNfD9Y<%Tk<7asr96eqd9a0yXILoZ85(r)2dGVXb!tV1=mI2gf|0gS$4E84mVp-{ z)D<2NDo)us?*KGpu4~?yvBK8j9Nl5FoK`nx#9s5}DOodrCR*QLw3&&n8Gs`o=nHqR z#+DVdno(o)2n1=FskVWeXfU}lfC~LX;aG&mj{duNpFYO*nY3Asc1m z1QSNC@M8wq{>x*gyJ6r;xU@)-F=K>oMP;I~^NW9m12QsjisDN?h=5Z3Q^2%f{!{px z;4dO{f(x0#;~9J>3%Px1TZ)S^D~aK`1$5--V!h-!BB8gWqs%kK&B0IKmn}s`(=3^@ z87wDunqJ*vc{wZ^n6OHb_jDJD)S8wl?+u|#L;wpJIa|oc*+NFn8923=j6|fORURgl zYl7Rja!Em&7S*4s%8|u_q(kpp0GF(|pD=7H1$#o;x z*6Scq;YY#%P-_}I8$K7n0PT_&F~^eTRE<7Uelm^F7o6&YGU^Sj62f^2Bk6|bshmx= z(M--JgrME-?FD!foXg~%DxpK<(k<{*I$`q)NK~1y2qhC1p=81$luTHJCQou_(->tL zKgq2~f}T`Z#Jil=5+Ltja#76w4+IdhN> zwBjPG=urlsA}RR=y)K{$HM3`1d46^7R=+jk5(;_^ectOBD_as>t- zIsAdl)zX$WK}mp&K1Vux(|}x87p+%IwIJpC4%O{-Fe-(kYjBmCLR;D$L~GxffX+CH z-!}!7$*p#zvo7Qjq-bHyEGx_FZmi+DHv^b4*x;Yr=*A4TjgEuDoT|hBB4b% zhO$$j5--)|A~Ujmq3NhPTqGWM8u$B$rMZrTTQ^AQ$ z^soUR^%kf38l&tn9O*=S=U8@>t=yOgI6c^-2Q9T@O!hJu*Uj?SkpS85v1v$=m^BLB zK^Xv8upkt|46z5WsRcF`Hc$`}?xcg;-KvhXW=lc7Wc22T^aijKEmVpgPfM-m+ z+D3pZo}St5mSzTo$`rk_np>AnMRT%{F34|r`lHHB2TMTIwrWDIX0 z24{D5Y003mGeR8}Xie5?`} z8o>#)Afu*Ve$d;Bn)pLmR?m_rd*q~S5}Gq9Tl8_WCuK>fuO~_&XQ3|CU*mmn6~W0q zDE-(BAKX`3JWI+!R)|~Kr8Aq>T_x&61d}Kf;YBBkRnQieZ@kX0yhn9rM?`++L}MMb z#nXb02G0nzzN+VZoW`#KIB?_HssyvE;6U-mEdrN1q!O<45P`e>kA#TtCm;Y#5jqkG zi6K@&NIqZeeN1*=2@rxDc!P$i8XRCq;5#l1sVgk3C_0QM>N1;D9h~s-^u{R&5scIY zH%tLwe)lCeo|`2MJY;2WToXC0_#Dduu{2Y9WYDXF+r8#hN(AkMg_;i}Y(G!gVwl-z z%aXXG)D4?~l%%Yr6RMUjzZZ)@k+J|#o)vT;iKDR6MN}FS z>+(O!Sd!k8tjT0y>LfB2_ju2$3Pq#pvG9cP^Q96h3@3uR9vM8p_;k=chBzsFdL!r+n@PwD*a>%2Qget3GrYelLKFXW2@DWTml*ge0E!Bi!Q?{X;l4zuJDaHxkGQ~ZmWI+cc=94XC9h)D2 z_;O~ji@NFxXJ@0%U3Z(l`yMkswC7$kXYIYuzWeQez=0qB$U(CY{^+5H9X@y7r;a%C zsQC*P9(~NQ$1PfX{E`!ve)`0dJ~Mv8Hrr0zZu?1-ci3`kEH?ku|8^$fEpx)Npw_`YL0kKfp~HrU9i9Xo{+-0_PK-}j2o%cx}<4T90 zuz2abZMNHP!VcVFQ<^t74LawJ%{y1e^F*Eno)7X|k;EN8&nh_lNNNgI*@;ua&E|$~ z@w~(59krCID_@Q}d>%J$@X>|GFF5MB7a*W?H5Lx~)`&8Fy7x(Ftrp4R*;j-8rb8m1&`+2D0n+g}b5uCo`*}+|}j*Q>h?CxOBlat)- zGk1>f?%c_3GxM6@>1$@jGk3Z=K4ItKZol)V#Y>}Rch&Ka#x-Yc<(577dfaf9>5V-1XqCZfV=ez3Ywkx^Ep}Tyak0B} z%U8>nu0ArprT*RW++!Yg&H3xxA78mT9&*v;!Mrat#N{h?FYod8Gj8^$9O zJu*18^VE3VHXn}bZapg=_0CV+@%yfJr#-jGojm&j_tD*c?EXIU3O6KP>K46IcAa}| z<(_+DOZV)F-wiI@ZA-Um*~`Hl3+{~%-0rXOwoA(Kws&0XGJU@8IuBeOyg6l<8xd_+ zp8nGJ-ME!+1Xq9dDHk5oKb|<~TKC;Y_i%q)JIB5D%J#ty2cP8*a0kY#R?l^Z{Ktvq zBbR;8ee)YT$M1~!u)FwkTLg37{j0m^qFu_boX#S0@?~z^b$7-8ar&*nX&?EOyW`d` zmEXCcIo@s2fcUrH-7)U0eKnX~GsAu4vW4YI*B$JRp7@(`)7nAtJ!9v`uY7Tj_?oj% zj<38aaNCY~-kra5hdb-oj|bm5V7fc+_^sTb7Zu~yXWHC^U;o}M+Uv#g4=!npzcqeN z+}zaWy6%3vJpBhdx)q!4S3Y_ERQKqHuLalqq0{~H>b>1&6EAXy&uVioU-n4+$hwDu z4{ddz>mQ8?w*UD)?kA^xp?t%!t?@THwkh8@>i&4|HGW|!X`G1X0abaj0Cyvc5T*spxSv=?35`Bw#tm!9n2diNbS z?-TdLKRW04WWn0IW>^doa;@VPq&)aTwPjv1P z%>K;b?%{9#CO%|~=i^u0m)#q)ZjV2)-wi?EM;>=KetZu%@e^;kz88I^eD6b@@y)Nd zl&>0pyPL4nhVr*Qez*JaGd00|`9ATPT79XT@K9dWOq9)E+j_m86`|GfH(1p|8F|#L@fB(&c;|I6?XnFBh_KiE1yyb4a_@H?D zdEW?TzuXp22^R&ytm$sYlP1O&zkGn3SoZ_>{N{g*e_T4t{dTvT+{bo!t^DLKm&faB z|60Ci#2xPLm#%fke*EX|;WtkYzI^&a@uklPlyA3HXFe7ouHl?{X3 z55M?SJnHG+x)KD=Zv>xz;dFP!+O5hz1gB@e`D`%ci0`|ne*5+E7ymTY zUG&W0@)JiL;r`>pzjR+b^?UIn(I?6$tXv=O|DzM!>RX{#Ezpv$^thw=au7I^==!*LU0y z7sk95EF8UUeBL+iE`RBrQ`}h}i-HrU{x*K&2d}uHkKPq`Ay@4C<*VGRCl>@S{%p^9 z`>!4mFPTyAp83Sq@v!>_$0Hs+INoXP+3^9tzdGLQb8B4Js6OtKXI>mXw(QDapN~6t z;r^GG@BZB1;?X~y8UO8+_3rY+cP{^;_UU-eZg;!0zk7LnTEFMxExO8X;%{~;f9n1j z?wr~}{M~CFal=3JX?OZ-=eq~reIfqXBj1Y8&An58`>{RUwZo1LZmj>Ed-k)X;E>O? z#j`FQ7u@~%A@Ppu_jarLyy+I66uN!hxhtOYhj+`PUftR4eDlfirN@3eZg}qJ!J+q# zj@^VE%F#PbuJ7Nz6hC?NFXQ~pUoDS4^)C0P5f{Xpy?IVNz*D!6 z2aI?+esQPC@swZJxO11yb}yaM=^h$&dt7?CCcgRnPq|MH{FS?><&yGN2fh%WQ2Ijf z{5yNb?JMU7hum>@e8Z29b0-ej!acP6u5Rdl!`;y9=LTQ9X|-E0;sm$zoE_u+8m9+m zyz;&H$#?s@tDl?_pLyn;@d2MY+Rdq%>0bQpFXQjr{Ig){6_3PCuRiM5oO-tV_>r%< zb(j6kZF#~l_w;^OxaBWA;eJ2le)q@ri{cZu%*U@aZyk5^uW@JoZEU%H_#5%}3vZ2F8usw z;wK;ZQ}Dw5u{&vp3)~-SzwEXfctJ2Dc-rm1a(wxKsh7v+&-j`v9r23$(I2;VOZw&F zZ_lrfZ$I?_H*)QBLFtGY?l)JhbZ=~Ng$utpr+n?$^W0BgnNfc1OL@0N=g45iV_$b4 zx%ne;+r5{?6J9u@e8ji*cYp6%8(ebBXWSd_G`N>qZ*gbNU*Sd%9pkncc5%Gys8Q~@ z@9*W#-SP%E_O$--*rq}8pW{n|E03NVANS4H_{b+0x=Ft}%^lwONPO`{=f^MSuXKlA zTIV_z?&pH+5pL(BOYu9G-sZwR?v6+8etvM}C*N?>pPd)18nVIdvwpDK`CcunaA*E#l6ar^dT$}b&$P(0?dUkfHK-qM}0aa+mSEmi55&tK7+2mWek$JfLw)1rTg;1J9q?1P`VY14sBK(NSA!8hSms7tIw=0dcI#Z>Gyt2|Iq) zt^MIg%8#_Hb$kE(7v)Dz-O>H=Zv%rllP->5id*7)4?Zyd_!m!iH?LmgUOfD3@x@DK zyYsF&ApYdgAH}7uTjIk{Tp8zI`hk1<%~RqF?il8_dG3UG;je!aU%lT~;~9g$R=)J4 zec~aP9$cIk-e@$ar}+rI9o1AZJ|ea~}l(OcKJ-_9!1Q<3sW5efKLr`^y#a%Qd&fg=cS$|M1khpwEOM z?&`La=iQy(Snf{VV{Fj&^}o1Jd~I;K{kfs8<@28ouD{{C z@tS*Q#_#TRr#o}mJ#NOpIq|rQ-VUBTf3BOh?#lSYSAOqKz2ytetvlKM>8uys?U#SS z9q{9I@weB^h(Gjnmz!1dPW;_yS9j!Jf8p*7&x)UDea-E9)_&zbpL$Z<{}*2h#{9S# z*YxjlS1!%FZx+vupB&ZV22H!5{GqlcchECC1P?6ha$C0k&i&@_AG?8j^^g0tpW-gx z`7w9Q(C6H(*Tup1?|#oc^}x5vw_Xv&`(2)OKYZd!cf;?TTVDv{QTHC^uD@n8H)wWk zaLsp*adSqlbT7X4tb6CAe(tsMadCF*PXzU^)WrL(yrlf-->;8%UAEr6@yR{ikYQuX z!O>5~w;X)1dw1ka*ZQNa;+eCKbt_+76>t8Dq3$~~UW|8Vo$>sqYRj{pKigfm^_1Yk zLzl+I_NRld{`}ndm|Gr=Z#(TOckVe)2Tf1x9WTD5BRK5H2i(^epAh_i44sEVNM9Vq z&(+V!2pN@8C`m+gR2nKIO)Z6#GD1m4Lq$VFgGdWexZmIV z7v8(~-S7FFbMA|Ovld0q4B5h^%W!t?LH6v|NjlTez^~dDBYYPzpXoLzIJuGBOC#t8 z&*s`<-yu_D&nH*upm4+y?yCKa8nm)_&-Q0<9krGRk9va@T$z13QctB(I;>FN64Re# z@k>jl;aryvRbBKVO?f5$+@%Z$(&H$q?myI?aOSZ#QM9S{H|tJ2jf?&glz4VCqRwof zk52leKGBPo>^w(d{WFjoF%qBELb$@n&(zf-N@vn0(%RJ)th#&{dfKpPuzeP{7z=sOkm6Y~3X$`9}vbk0p>*{(@ZFqS>z$Jw$J-;U|2y zqY|h<@ z*n2vPpU5qxX|f0Lu11o|hgI_31D)_W-<#^=ZRwl-R$6(^3|I3Wv51jsH1eSXHux4( z-_VKdu3H<-lSlBI71wD-`&lwK-9`^jn!|168^ncNL(|Bs^yaDyDf*wp?hF?eX?qIQ zVzc?Lgf~=fKMD4uo5^_8be3Ot0KC|cM2)}G_aDiaVB|orj~v6J);!$VHH=kF-$~&c zBJuT$486(7py0=UklF8x-tqf!JkOQ}lm%1b=$pV!J8~2q!c<)qDDQz4rZq)DS$`#e ztJV&sV?X)q)FDWj-bPn-l5lLrJ2KWEK&PyC@}|SSc&*~hZ!KO*o76^A_t@{`IbsMu zS@oTwCo*pA)Q#SPUYbA3i3+b>!Hv-jel|z3<+>BeBN&l$J0Kbt$JScjCDk=j&>cA! z=NhkJoyd6->&U{eVhy_Y_&!UTl1h)(ePF+C)<7y*l~;+j;pK_tbk9T??(z4Sjta-9 zCGL!myD7|d?tHxR5}LTdlPf%(jD9bBF8lH#_9Z5u_@6ZGQ;_Fo%|>`L>LiuVKSuTA zzo0(f9slm$WdVDf(0*Bt%B%Efth^*YyLd6e{Qg60trf9x<#g%AC;V^~l1$f{;6soKS3mI)EypD=NAxaUFI8u!_#}j0Eyt;)8}LRd31~fsNB`{j-e2)p zs-VCWW4lRfZ8Jaq{Q*5Q$skX^t>nL5lLZwFq?f<1@{7^_7?%7Io{Hm$#b2O{a&n|> z6vGp4*1~dCC3ci-#I#gxT!srxl1^TF7@S+=tACIlQm=G+z3w<5nNqu$EVH{T1O@8upvFpDv;+`!Dn0 zw6Pd3JBE%QZNvTk0`Apv4rlaJDb{T{E*4$lUps%pH_J)Tqoe7V-b%j0GZ5}|zu5|R zCz9Uuj_0l!LoM-7xTBOV>3q@T72_ijs%6TRCQYRKCt_&Ipia0SwqiBv1ITJ;9AEtK z1RbbLU~507qV?l*XggNZ-``_dW$r7;Jn`YKD;`r~iX5MBxdZizd-xf)2Um=x(0Obr z{T)b3Ar7Tpj$`p;`HWHoE;=h+m$C_YJ?a`b%n$KwJlreu$aaw z*zmLA&&jO*BV9?7$BlF;uH+;_Vs#R%^q~PcxqfCNDt43Wd{;hE-~_5x>&UNi3R&nZ zBgx^Dkh*mPTl#A!qI{P@cm8(@dbN`#44O)oYKH7`g}}D5=8;tOFsLl+<>JA5G(t)b ziW@7T_@6wRclc*)M zylw`2|IY;J`(IP=i>FX*97YP!4iFt|fY|C9+!+r(Iq)w97B{jxzB?gv!yf6wYRG$d z9-p;A6*`BGGOemXWM?MH?2`{-@W`Ez+v18*iIbuJzci)R%-r$MyU1kvYb&^zOa zu(a3?vyE?Ie5DKKwI|q~TOT1O-N0pK-0|tN1KVQgiL%u{Y3_x?v|J}2T6&A=o_7j2 zJ?cbS=?3&=MGCz>nU2~YYMAgt;8Jz#>Bf+qJS6xnuJV^`p8GjmZ_vVjw&STzQHe?d z_fY%!9H_qjNki9c=gJ$;qi&riNyjZg`|uH@lJx^QhxVX)_di@-kjbZnC_<_rkbUdc zgx~Uk*b$RV8v^e0W$Ld{Q|!TP9Y$l`g@tU~Zx^~v(#UJq6~2js>EB~z8ndE`iBy7? z?ha)2ZnE@s^=;~l|A@x4q0AzBA*}6_*yiMcIclEI#>o+aC!^qgxlx85BcK%kU&ANV==H5(C&JJdAcDWcgI)a5i zETBq#EfODm0eX`^vgcKO_ko5$U!OdWexGoI1- z6YBIpLxt?6E7BUAooN?5eLs`f#tihI%E#G)65&ic$DPIHXmZ{$ zj1tyRMb}r>`Y@3SWShC2Fh^B>=qAlezIg1of%}^l(*>Pij1#vc^VvU`^`rIRTZZsT zyIZt6Weksc_ME;MUqoK=Au5bG&6|xs;Ec)|7W3g9l|C3q``hP}qKpU2qjt=x(#Bb% z9QwGaoeWll()ov@*a)8?a6hI@21_H6^!*&Z$@b#dg*;w52MPc<0=L;ooq+{lN#ix%w|IEp&t2 zay72FBApV}Z6*0#uSi})7HMNF(Ae>h3=9OOGm-e$)ixMX?0`+~r?J^;94{Vo8oOe4 zL%(D_c@=-7ks>2$YMdP+&9~6>?1L=CT9)EM*WvIsU%K{WDTW`Dq0fVN^Au-G2&{uY zTA)D*pQET@iWOBy#v=6c4OES|#PSbqNARTUyjVgS`@NcIUaJ{-r@SJQdsoQl;$OaJ zsxhuvh~RE@1a%#DhIOR|#XfXkVLKYh$a*%FEE4vE`f)s(7)f^X+L@Si9L;bqW-ZSr zA-6e~@4E68z18=a&Gezd_hB$j8@c=9>3Ez4FY`VR&7L!S=0Q&!3|+_$R`}Ds2jkK9PwZ0$kbjYSY^KS&B=cOyAjg{#e5Lw~Zf z$TXsX?({XVRzZ8~EttnM7H7fvwH~rN|Iwn6)p)i{lfFzzVsmPmQF7o5ja~AYVl|#K z@8*G|{@Mm>I{YXkvW9miXV9Mq^?b_tw^TjyEbD%zk4bWteEgT^SoE!ydKXN``O)X; z%Hj!_)nU#>g!8pRs*BC2O{MVH%6!a-$Mj>`JnlCt0$q0p@`yZb#GU+)7ab#z@KZg<1L`%-a5rPXDzgS06(@@TV?qQklVO2QxonVOCXL!3&Ciq@(48zF zHlr?vKJ5R)I_=%CWUvL6>}#S+3x~s4yMZ>B|Ha043HbftIdeG5AeZcdDbYE!z($3F z6vx53U=~}jW*bhtG$0ROfw9Y^7+p=Ppy6 z--M6XXG5ah4r;;Ynd!iGRNu4a%OuxB;b$q;9lea$1=28d)5c2qO{`^5E^OYa^`9H?ZvPW0Wnn2y(0lBQm1tm%t^jx0(pS#%wBA zjb;9UOX+G)HO9rbq2k;zwrtflyu6yhLQQ5N?BGC}A<{`z)K9mTtfDnP*R%dqahj&m zM7?wVP`IozbGx#LtmQV4Mf+u(&T*kbK1npDqKdyaE2X~!7r{)V2qF{i(b7k=NLpeX zJp9+w9+$!F$vQverm53tgG>0lbv|oUPKJ-7B6XvDKT6(q93uQ`d0BbQhHT z&mk=N3K`GZfmN61V8$qWsyb~!wFOcR!8&5i#tmxY7rL*8a??>!L@3SZDU-w=G6e~T8W>LBbuBGqnTWbfOA z=n3~xyfd5sIBf&d%c`uvA{2JRw$cU1RB|XU#K59^_!cviXLl|}yNfutbhV;{7f<+{ zFO_)YtwL6b&Ulz3%N)ijQQs*&*bj20N|n1ju5B7j^7rt6&96yB>jhJ^oP(O_vXuB# z9%je$SmdmFnCp3Smp6}aEWeY|b2bv6Gl2ESKg4E_F?e|>j{0OCaJ?%dR?>5xo??TUyexWnNwMeekl`h@Z=3T=l3)x2tCMPXV4$PEx?)^mh zSGCyVm@X6*Eg;EMWo%y`!4%iM!;jE5NGKbi(_Ni6c}}O_M@-pqFDIn%$86A7L$XWz z#Qsdmgh!t#-<)+4>+UW_+R6LarE!|uPX34wZ4230t2My*DEN#R2T}F;GVYIZ;VMceY{l7c zYY=0ei}Tu(dGwLrl#>>PQ1MYHJ*dN9`ph7s11fZC!YcYO@g3i{-;`w9WwrEo3 zTS?->A^!DX1#Y^S^FJR3K*{qe-)~k$J?eLO#d0OuCqD^4uCBxN!kvN-F@kcIUBbHuYpT zzWg1*vNjHZo%Cwz^?!hy#no(0_zF7Pt3nY|cEN3p@a(rNBH5O7TI`lbm$&A!)h^{I zb?xQ8rScTIa5ghpQAuLMjp*;?IQmy?Pud#{sp+^K?(FQW)7IPBb!&78z zx<+TW9i#FNW4b7NoJ;w|;Lp3++g z>F-N37%$6mdHYQlEwMmO8W~U_4e@o8t3X8)kQV z5xw=OW<8}QkTtGinHQ|-$Zo-V>i<9~uLeOomT?jkO@V~4URtNt7m(w%vx ztFge}ZsFJZCz$xf1)oq!S~H~KW)(mo%a=3%y5G3$T1Iy6Vbn6UlKFnf7v8r}kht)Q z3})uSVWTIRiFhF_Er*W#52X{2Z_}{71qdFbgqkfmtW`XN^fJRBQjkR_?HicI^;U2z zd0KcaAECN6&{}bUvhDleEbL)dPcI~_GN(hg6xiqN6cn2}vgKC}(4K)oT*YE4w(A_^ zzoc)_@v0AOPyc%qq^{))=8L0gU^{E6NWlx+YNpcG3F-M)nN)@~A`a#YDd4fbERFXhe2<9qLH zq{jaQpGVNdfxfrcmxIz+pOsF=*9x*8bKN zKSn5X=SyNZJZUSf{U${LEu*-{E)DVtap4J9R3V|aj~Z0OK(6B{G&_`T>Sr;Z%(0lc zYd5<*brjZxA7oqKe4)otF+5h_F6?~_Up6|85{GHg)tQTEb*>ma9dw4q2Ti82dqt?% zvx$x=oW#eul3Z493c~K+qZLJC@znb%>ePNAG0BYGLliB2EzTkh1&?%LAOEx6j#P&l zakW|RVcAo_euf@Gl8}GOmw8St2J&pC)>!=8*NQMxG3xCJTC*v{w2Qfm zY$Nkk#VlT!gL1=;&`=2poOx=>=2=>x3kh^7*Bw4Kp;-4X3C3QJ5jcJx8g%FJ*843q zBl8(9{qZE7QwR7-7KKEWc>bJUqCbO9A%}a=mQ9P1A+eCS5Lu0>m;s-^fqc4#0Y&(1 z!t3}BGE=%kUJBR258AVNYpZa(^#l8A_J}0DE3=}2mo&pkksSU1fujzy{-|PJ;uogB zyabnCe&+#$eKCjwf3w|TImCnHW%cN-TrE?WupJ3Y^SMY}Ck-%s$M0O*kA)6TaQ}!k zwfw3f52rj7rQTz4*Y)tiCWwDKy#{Tq)@;AF_JpR}2`U!*I|16UiI*_q^B!ChosL)wf7X0zChA6hCoVo3gS5XfYk{X~c|CxMy}+MJ zDxkdiHsu`s#3#PDrRWbfe0Aqj>X%tS!M@umTf%{f+_*yG_Wh7rkVDsZ#$fKK?-=g? zhcEk*MKi^(BW=)5ib_`JlDFD_{FFzRY6)Fm(hu#@P8^dRBV23N$_HFK1naTx)ckrU&XlF{JLMN?yJa|=W^@km z(e_NoE+5^~6QQeliiW;0kp-l&y^HX`WlnEoUm%0A#1nV0mc4P zY^S)8*{+ktp~{zZ%sGp6$H?K;(mn)kKL?-1zHDFHZscwj^0j>)C=s&F#h&ZQA?+)Y z2ArX^fctFzPhSe(dYA25*h{w0wQ18UA9|FU)}Y*(x&B};gan})F8^TgQ%m0@%@^#${NAx68#1f#}sBNVMJ@SRYm{60gzFL)z; zwL8r>ot#ZNGv&C^+o8xgngdIp=Sa%E&C7;$kglsISO2mI%7-NQpsgx8TzF>)88L8B!`qbat61GFKntmn1#$wj~@>BCcZd{zXWCB1&=Fx3YPLIp|Yx zBwLYpq!BoqEtz{8Pu`1gvCXG(I(-D`eZNnRquuE3!nb6)u^z@oKj~cQL0VZi7ejkD zQbAP)ni_|(4JU5X;#nuK_mV6;hQ#upU6-&(?K})hd@%Bi1HE-_r)xid(*U2-)Ov0q z6OLrz+4+-7Tqa#yxtVRr9E>>{rh zP9z1dq0IP29{oMq#qPhEiCF~}2-tNGuioqP$ykw-wXm zWmuNIKBlO}@<-q2W8vyR9ufbVcI^wJd|pf`V}7AyXc0O?dtjzDgSsZ~p`j+>)UvsT zu6yXC#P}8Ks!64*djgn7#yV0zkiZPr@fQQ!==WS=Bu#oF@| zUoD|uVM(sq+h~*DPgd`eLL&=&*cKUtEDic{rWk)Wkn(eIWDT$1reG zr>V2vF|nYvv_0}D7ZcxzpptVew0bc`8VzA(S(Y?5&6V~TwxCw$2n*@|k4(btIDus4ByJRs2ZS10Z*>~ZjIuT2n9>djYAyaLLpwW%>ytZLIiOqIp{wLG$ zTi{3`TK6c(VlqNr-NnD@s}Qio8R3QZG2mn$8A=|9*tQEuQ2WV_hkl}xu6%a`Khr(wzU)7Y+n1(>mN0i0gFq#i^g z_J=eIj(o()gO|x~UMAB%Hj*M1E@1Oi3y}17GTEGsrxcs#WP3di+x2?rjl*{8=jVBP zkr^3mSH75g#!7nY>)p|XwNbb@}d*aCO3o^_gq3u^b)AeX`sW( z8%Z?nBkDx*Xl~SJBGdg`OtBRc&Te8QvwmRW40*CFai^uhnKZD!6gk?HxQbLYB_4TA z&f+eJJQ74+8n!e-*b8=s@wifRh6agvl4`s(XPf1vlSKd8Don{w`V z(%S-W zNQIe*542}0HxAO#TVJuRSd2uZ3fRoA71$zI$y7{isZdgyC$v9Bz>MRp{b?|a<+5nm zmYc#%K7pS)zMMKEWNF@u7(5&ANGc;=L$YBqJ8|eD9LHtiw~W)?4(j!hwJrc3_L8h}mymPbAFjWD9zNfF!0xTEr;?;tnrnN9Tn%Fp7_Cm>!~UbtCSwXb zW5E}-%_K9$`E($r9bwBkhWZKfi}gnS{puMk%h2WNt_3u5@igQcDN?X`I)$Ntg83n8 zG`>M@RlguUx&bG3UHD@uQBwWz8Y<;0(MB;s-$WE2gdS0H!w)jke8YNf4O(Qowpgs-6nX^ ztx;MO@?s(0B)&k&(T`9_7Nd|wW~8|wlKiy;Na;W@bp%9E=@uFOcz7ACEKPaXs8BR! z*TVnnY++6w$5%~|p%F_>`6SH(q%Z!>GKX{{ZuceHVBk$2b?;biqKDukTR_ELo2pv= z!1=&g%oyX!PpN!`*X96twq7EsH8~jga~@^abTjcM&D34A2m22dA>!*sj1$eENY;tM zON-#}tBh1W_zHSt2$P*73IiR%;}de!Zb#Lc8W&?)qrYlc=)74kIX&=w0jf?+7 zM)Gd9Gw=`T42{HqGqH5!zfb6S$1p~AGR?Za5n92$?2qm(6iyW(eY^AY^!jMltf@<` za|5{7e=%5=nhdFbhq29K8|$y#jGa3QX}X&h#^^ZVx_UQ#OCChG9uYAePhS796}$g^ zqCi<&^iN*TgddW^)i{EU-#Ue=D|Cduk2|zY6KRNhCPv>EgG^#lM(tPSG;M= z?Q^W*^8`$Dyh-tYlW4X78}89B3%!l)thQw=%`8eGt92bzFus8f6g(w4|DCM;suo%A z+6KFi1JLxP4&kQGw8lP$mhBio;{vAAo=RcvZ{5pp^v1#T*AX7yFo|jhEMQ4*Hp8`f zG);7IhV!r>c4uxQ?JLaYu>%fc{f2TVg{PC`v!i^|l}s3qddP+c<-@!)jD~$(g{^_k zlIo`;FXCEuy*N6~fX9h6!+PliTJhP3dTKTJoZ2lo6#R=UZttas z?n1`7G!y3P9_;4DH*~D<6(#Hng!aW?zEWEO$JEoQ_w8;<{We7K{ar9dCIu%tBk96} zmw0y4h}yhAlC)b2y*Qu>*Iin~Z-}rDm+n&K=>@#*&KW8;nn#nS{-I@+>a46}7YuHi zAwWR`4F^AQ*-1a>N&Bl2S1?Gys)vgx z$LNZ{KqTi2;B(lVUkmB!p-s!PZ+Zfqp#HR2=##&bMQK?GX6^`c3l`+ zaFqU0m!PT2@Zrfje)Ps@Y8-5ZhbozH5cOuCC!D2<TNL%1gL@_KcyJMP74R<`8OzZ9t?^$r0K1@sIn$ap`C_;4T!vo5d zYUZPiw$rLf1$_MIVETTPlTDEoiM|nIwR11S=FALcq4I=+)$;lMg~P~Z)@N2YNQ~}! z>+lcFN#wft6Knc%o2ES|=Rb1#@Nk4a^W4r*@0|kCx&qR5UxWDfrWBD-z;pwE<$LC^ zWaDtWKe?8o6x48a^h9>NO9kykwV0t*(;hGW)9rqq1|VXT&}#O9)Z?q)+-! z=(LAB8z-JaN(+VO9W)K8eZ#n{|73J7PbUYvh3I&g&bIxGqlYTLD9|vAQp9FZ;JbY| zU+;q8!U!ra4q&71Rv~4|HX_-(aIU}33hT{i<)HiYc-alZebzcb~&!mT-d>el0>Okta@CGL?pCO~Ld_H)2JpNvb zrOplWNOH-1lCLwvw|m3s&8squnbFIo*L;HSfywN)1K{X%gn146O939&+5Tnz*fjkk zb$o25SCt+-+I1IYAN>NQ1D~KfM3cNupG0zlE>F9Xi`M#&yr*Ubvc#O(rf5wZb{&i8 zy<147(~3v>zQaL^=QEyF;-dUU)|cRh2#ZLPP_Lno@fR^WIF=OL@8Q|{HgfVPqnp01 zROwuRwk}!xQy)x@dz5M1t8lt~I-Mj2h_GPK?eur_HMUZF0xsH&#+`@Sq?xHjcB|%5 zfw%_+3pvO7aba|Jd?xirzDB!J32nU8!*;JM#oi66*nKgX!cKoyA$>O%_Mbl@ zLNw^vk)P;1yqb^MG@6dPeIW()M^G%gN)cYM$QY=|mYOJ#+?Mr}(d>jXx;weUMLcid?;b&IA@F-1|FoLX`JKY=@%wvXoQpB^#xW4l=2Fp%n(bNAxWKIvEDi;e< zKe9J%1F#_HGAu`6e3E(({SEsu#>ay$y<84|12_IVwvZ|>`XY3G9Lay( zfpK%fh1^vL$zHxgZnq}0S(eiD{#YxuMGeP-?BTrY&|n%UI*L!&aR9ajFEJ!Y0Ukch zbo{;o9k%r1ab6OzS}_}wl!P?&pfbKi?E$bY&f3)OBSZMrPvVg-_neOL6DUsE_`ejLSjHky#b*qeM% z{|5YCn?f4f2NCW#K~Lz#FCFrRrFz#Rd$BiF4zonQObL?Wf6(|(cUeevHhv{qu-J3I zXs$~z+xuG$+AAh;soT$Rd~h{iXk&n^wn+NBMh;H7%iwRWL3L)ae9j^bywP%?x$XV5 zMz~_fBfNvGr+mcGoJAxO*UgvROs2{2Gf3jaU;MNCjzYHuuzkFf)Ezn?fAl-O(42}V zg4eWG$im)~ZsjwU{DYiQKM9E@M3tK`rP6QsK6M-aw)q8>i(ld8R_;_~If|c4?nJ^1 zPr8toNFAYh?A^YZ=v)-b2Z;1w{L6Hn{%X9?fv(^(!)6k$9pzC{hbdaW5LZHnA>3yJ zdq3|ll=pgLe{DYgC9LNfw_y zSF2!aK?qDsqp;$2CjBs;g|TwCaO}tjsKw757YRpZkbSo4o-GzNibKUIpqk6FO|oC!xKefv~fTE~mBQ+PKxY z-6PYHC`gvVlIC#JDOICtYmxTj7eca3bK?(;6_aq84P0d;pPF}R$_`>FZ%da zIaw+Vmu5{b{?LF2@qE_;5sWxF6ZyN=3M}R;1*B@h<##Y`ncs-RWg7hXD`$xPTEmw7 z@xZcuq0HA)9~-yNC&$(+B(?JbDgp*#MYjtJ{%%f(702R~-T;JajHT6!ZSibR7-kNC zMaSfavHqa}D0aJq-XC=|bIKNGUvUD_eOuY80(UYH9mgzZ{70`=DY3N&&)|#JCrnW` zr<E+2m(}4(^WUrncv?@1hdE4!=w4_Ayw;izrnr8jHRL(X6G}yv?l&-;Lt=8kHf4 ze5H%ym9CKg;KTy$+i}=39iiKwV_UvGvV*T<_Rd)RzCD(5YuSkh4RIJ-dV^CFaY1<`*FniMd)lNXKtLw({u$;z=4S^wRp z-fwC&z4Hvk*~gJV?o`U|KQHi*6qMM%K<}((wlB+w%GIBdn&ScDjuDu%VLQ8;p+&KR>vhiL`a?tk6H1ZU~*Cwma(7 z^-qkV4{?(3Jj>PR#G!llRDSAyBo3A=rsHN&B$LcxpQ=f@RugI2**|bwc#=hirBcT5 zU-WnLRcy)^8o82OFcd z(vj&I*tEWaZQATFw<0Elzh5Y)0CeV=v?$(VXhSC zRj=$3RPRC>L%$==F9dG-g(PNMLp!P&{rx+a+eRKC2NierYTH}7R8&P1w)BzMPan2! zdm{BHwL;4>nGUb^;u|7V=<12hP)VCbqcS(smA$gqC-n1{eF(>kWX6X?8zGiWCbx(d zk`AwBdpk`~%WSErfWd6Qc_ue+HoktmN;m&hQucaLSgh$m&5dB{l69i`!$$n^a}iii zm!uchoycOl6>C_ymv%o7;&s|q_#&mn)O{ynkH`+5@ct`WKA*-ufm6*%=)jCe%dqx_ zz?v;AN%MUIOKAH`vIobL$>v#@P`Hil_!ovE&6PMmWIgnUrm?@z*I~TfCh}lUFznr59T~ z`D~qjEC~9}17~T`_DLF;x>=HLtBLamD-AI$@;0;damLky2jLvPnhKZraitL>DE#pN zZlI@#IZ@esw*4Rkz6)j(ZtcVJN!wVv>SelpvY)@ndqi<2XSjw!C(76>o{%C7|L;mn zPSuu1_B^4cYsctTS`lBlKo1J_nkb20NcSvFG4kMWNDo;@Uhci5)Uy{W?vA9PrP2_& zeH7iFtC{O_BcV%K#Bx0a-*tD1@O@Omx;#l{KB1dpqjMm4*bhaz18KTu5W@ftMvP(u^*+)o9t{1gV(bz<#+`O2(chQgQN{D1sn^Fe1zt3CsSV$; zTb&y3{$}UM3#|d8(WWT@XVy&>iJ?M&OO$7id_*aGZCUDwKa^oKm`~JNPD7^-px+i+ zm>?a(>8)Z7aqxv*y*bL05;KG<_2Mlx>tE+#O(l zq=vtjA4aF{d&8_e2fOC(fN)a^)rr63Da#K~Q}afW|4@M&O(9(7p*W&$4`V}(&8Rlj z2shrg(DT#k@HGEGez~9cxkD$(F{z!a)Q%;su}Rcyn~SlHQ~1+Ssc7P-neUAK2wDGz z$~rz`ez_O#TyPvWpO{kLs9z)*x|oKB4#mcE8RXJagb6hjSS<9eE()x=b*dp5D7|M5 zi$|lf%1zL_!hX1A%}<%0CELYvlyOw>#{RBE?eFP$Wwe)_6f|Lb(_m(;Qb5|8Hn2L} zf!bGQY;_L9_V8)gP!%iWo%=|%^&h?V{fP;G2h--)6PeEddrZGN1)p|&qenMiQP|)* zVa`)QUR)r39&?xWpI4{7qb9O{g|T>A^&hD}xJa%MQGA={Jlf#0h{QB!LTaWPZAr<+qd|+*hUAc?*YU zenwuuhOih9^3%s=lEr~#co!x?ex>D5d~gFrimGI7{eT`WucEevj%ca<&hkb6!*rK< z{J%&al3SF-V^8m*^3P&0P92K(1v)fbWGRjua-iRPhv1W&I7Lm$hjf-Kt6$wmu4CtL zU(M;1GNOe!U!O)l7p=x?H+!7f=Yy(VY5I2l0(7qJ5m@&_)HtTlwCOIqaD_f(j#u+F z6Qk(9&;ecb{4e$yTw|jPXW;Fk$818!4qU1l4y_#(G|b>0d9)s*!!HAv^BrB%J9`HW z!Paozw2w;sX2DW4lV0!kA@SYvFwc*pm)${FToORuy?-zuQ4Aw~W#Rl_4!J@JGJ0K) z9Ukg5?!GiGG?%eoUw%{T3K@RuzAtsWR%hon&cf(hReZ|#W#~EBhS{>B)O6T@{kLj3 z$?t!J!H%kAuyGWYEZ3nca(1-7TZBF;{bA>&-oVARluhCtH1OmJ+EMq8qDMZ$)~?m? z%{Jh(yKkVpri|>PBT&5C2?=_d^lYFy^pbn%#P}-|DBM>QeKbtyf0*MbFXWp-qTxI% zfWJ!KKyeM%uy4#a`gx*+K5A9Ku__;7df!khBf-UtKT&S^Ql`DTm$pc51xvRTy3bSC z+RVpr?ruQ#w~3UsdlUOQeLem28H3Ng$DnO}8&8J~hpp~c=5|O6ixgszwyz5V=H`&< zaDO~Gcb9zo_rb!Xj;exR2+z}rHij<4vGdgw{Ie5h6$`okbPGCeA5U^;w~^=MAnN|V ztv3OuD(v2e*F%{rLy_h(6fz`=1|pPMh9)zmluQ{?Aqo)@ib^t-sVG8aib{$yQ#6}N zGBr@o`u2I>@ArMb|8@P(b*+7lJ)OO`bFaOhweEGVJw{k>FGTJ)3FEKsKxK#&hkt+I=C6dR!%VYHFr!6G$!@=Jg{a#1U>B4121gDF{C03V{Z+S z635k0@_qxwk0FrOnxSaW1RBIhFhawNs1FlY&|EiyvbAd$pQAmP%v(fGfYisi=i}`Hr7G)NfY9H@F#3NzlnUeY=gO*9Wc|} z5CqQ2QPuqC_(<&`7;I~RJNb3-pd2p~|y1;QoRug#E-R zoSeOncusFcdexK|&JzID@B4}Er#|?mBu@{;XP{q$I1%K3g!=RKpp^F@$SDM&@Mtp{ zehWf3!+PAh(;i>En?dQ0dI-7n5>@+R$?$<1h}9LNE;aM9*ti)@51ogfF85%Sz!ntJ z^JMDnjqt|ke7r1`1)KbqfN^0c_WOllUXue(oUDM{+pnS3O97U;XkyyOVlvlv0kp0D zgY;7mmfWg=kO~Dj-FOUr^DU6O$&V=HGWDuELdp5A^;m2fMc3Wj31U7|=>E7HH-|5W z@U`jSd1wpeYP$kyJRVqmcqhC+>xBizR!}$HMy;#LF&J0T*0Kaf`)WSUKgj&v-rR=X z@4A?v$BtQhI^cR)2;L6Tg&)QtSkSTy>vpEos;pZuH{%6ehV`Ja(~{iQbHZ9_rdGwH z8#P55q4(_pTsXQ2cm~z*6i)$JB%X)9T`!1idIj)jNyBZ`8eFny5d_@ohZ&axxV6_0 zH~B;``Aq?sv&xj|WbcA8Gwwb9_!pROI}6)C|HFpzZE$VLE+Wg+uBOdwAOO*o{eHwBQ<>J`j<>}KH#n%aQZZkZj8AhFH`ZOMikHz9SuVBg6On8^b zMc)U@Vr?IijT(E=g$Y&QWAceVODeIgQXBi` zT?F#<8AjyF<2Lmpgg?6-8}d}hUfmEZ4vB>Ob44-kp)&Gxr{amXlc;Mr2sgf8Ae%J? zL1*SIk$QL)SJb&fY}`NCbMP2h%jnHbGI2zk!~xuF&D2Q5y=QWWj9$F_UrZ75MC+rg z(TBfrH0YO8Nk0g9+P{no^X-f zn|K&r1fito#7h1zC=Upe4T8fUCsvN%T7!Viu94P$e}S8synU=pKUBX{LiSI55V4_v zS`0V9K*K6nr=*CtJ@z4w>|0d3y9C^B{RE%mmUzZ|3uMOB!Jau2AiS)H-1msZpqxJX z_i7Mc`XU25{j>3;a{%4_Gag+fuF)oTOVGNc20i?@aN~zRw4m7%%woS%?byd)-F%qx zi{6F)$C6NfG7@LzxTCYHHO%bHfhQuLa3MRx_qXnWt8p*ru^eIe&D_HZPV->_b)p+* zX@GzG11PbJ16gkodam*hMBl5U=SwzV?9hFPJ-8d!o{AzI)sU>r(Ean~yz?93BSa%~n+V4=;+{(IY}WTJZ7oEqtIU zhP(5Af{dOU2E^>fo*_#ZZ(B&U*ACIfFEeqnKuKERD~VfuxrkkA7fRQCAos^JaEgg%cs*mpa;;y}Gl7NRKk^eVr@g~H z67y-~_b0&3UBy&teTAixJOJm_v3F-Pl?=5)qs~ThSlk@>W>?{O{#LBamLr96ap+NT zf%@NB4($4WX@~ecs9L;`p!Q{S4f26H>pu_?zKu%iaKKfskC3W&3aS`Rh|gvl+{!0I zV(;GoxwuN;XVh+Z*DohqHaVbMwIR7?ISG+#V#r;d8K`Sgq%Ofm(DPtFH?PDt)ZQ6D)8vkTlkZ#1WFIA@g=tt4^=dRb`rU6$_YT1YXAdPVE zDS=Dp*AknPQ(#e+OX93*7)j&9u*^0OKJ+P(U%!SiJWm0xsLu(oZZe;_2KgxDc#WV2!|!U|h~ty&I6e0=B=3EPHyT3e%)k1PbN67o z@p*jvtQF2Jj-+R2|AW&mLb#+u9}GTjq=Uukpp{!mmE1lekFz0~`s zJoMkkKk(7>9H2Z0lbY-S zwYP+`vyDj631#%QRmTzUM^G7X9%Fn5p+wc5$iFPb%v-)h_CNqEaNwYquGr#<4NOke z;V?wIEu#(s!^%{Yeb92FV+Zz;6`-OvN{fM=Q zA-t|vqPxn^!-K8}5-n&0^)ivPEWZof9HKEnJq=qFcTk~NWr&qEqXnklkw3&7zt%9n zMf>@9!bc1}75g!*Hwjx7@qy>+!(#{#ZHw@sa0B5Yh0ZWnem_Pd+DyLX(y&d3XCA=zO_NN~@xgpK~wr zyp9C#CrLy=MG_XDb|JYP8`1V(D_jrD!k-0K=`}4q7}#n@ozHECl?Dvo^wJP`={ZJ6)XYE8IcMGgi)FjsYO339L3Vg?Q;wDD3Ge)c))~0w<#iP|g zv~HoBYZ@e*t)T|(L$K-XYs|Ha!!_NW=m=glwRmXp6|G`Bb2&kLuzzoOwA za}QS&{e`mIR4{dt16HZ35a(BBa3-!1I1cfkUW5kPn;gLQyp^aJs)w!#!PL$C4w%2t zr@uG5BiGvk!d+qu-xqVyoY(K+X>S-f7>wXo%SFVrYc+nUctPIP`r)oZE{xQ80|gCx z==5JXJiO19{3}n!nD%5$VR%Z)C01lXZ8gTO^dLS_>VucawBkHfj>U&PH?6*rCWlF*M~crx9EoRX2$JIemAb4D}RD89nh{DE~JDioJZ; z5>-jgOp0Q5|4F)Az8ue$h@eEl62*P8s;b zbUs;FbO?WN4*@xqfgyu{ug1q=%i}2+<9~sly^?9Aza@U&-2i?P{n*XTaP+Q@qTj$f zs_$+JwtT8|eY-QpzqcnZ9K<21iI4KMD#1G@-`1KlfN$qB@$l&|Mh7^M5{CbMSzL!~ zc=i(acmW;Gy#kBVhu~G%18B4bdMe2pO4Rfre7G3uzaX|>Xhyc-Wgnvy;z3;rc$T81{@?UAhN5YD@+r0txJvxYbtPIZjB1F4I)EH&C zb}GyD8uvU;pv|ToIQ9D%p82fywZORJfgnR}0qS?eM-5EKSh0uY5t=M;Y zAquWbhMogksn^5|8tPk-U0rc#kWOh-+fNvfNTl{_55P+aMbbK{3VFFD_(#tjZYM2+ zk00!D!djQk96W$;-&rG#C}nhalyGz1eXO-nVp=OC$tcB5Ix`DT@Ex?DLg>iaeB6=7uhhMpje(n8wR0_X@)y1ChdFV3mxE&%d zgJ!|^i$@>*U7$u6Mn)td_jTK$gaX-#l_@ovn9%HI0N~o zoEiOcBf5QZ6sI;EqDGSA$Y#aV_2uos3+gej&}A{MauOt~gcCut*M}-bJ3>tMW#Y3e z5em5c2-i(P*nhAOgO>V&mN+jNDA@=iXosm%Rj7X9Bg`wD06Z`cO_jqST=g<>{E>sg zeLZyD15?~;Dg&-l@8E_1R*?Ir1X0hspyg&2Z1i)cCG&$I+cyX63NB#Snqs^&=M`!c z#50;dGH_Bkkm#i>Og*AS8a)Gsx!9!cpurYWp@&;dkH$h!! z^X>+Y_VuCH@tZW`s4cATWFv3=YcTTF8Om#`g&Vo8Y2H;1tiNLi+9|HkCb^C-HfaMN ze^1cS*^cur>f+gxk8onXA`Ko{1I;%h$@2sare0YSo(Aj({_o$2PpK2KFATv_?LJU> zZbjO(ZO|m5m%QQZgO6@~#B$IVx%Y7rHU|RndLg*}=L77y?@l(AyI^(Q2wl+h6ykWq z$nG0o8NIj*RE1L?)%JTq(Uxq8NNc6LGMB^a{qDHZy&KFDyvhB~x|kR94*TkjQP_~F zXEYju&#D2GdtDTa$K4`_iz6}f93MHQ6$oGUtR^!qTu@ULP5c;L(L2IAps3}A2lLn9 zZ|6a{UB}6E=IDeDx`<|d{RhjV?SS`?6qE$j(F4Equr1&mG{>!l7ek9lynGQ{w@fA* zob!>*=n{3hW(#K;0;$sJZy0R813pZ&Kw?enh@zU3tk;cfMr6zaXpjcc~!FyHa`DCvu*#NriK=l4Kcb9pAHcB(MgCAsfJCf zi(zu@LYl8th>1Se$i1{+c;{J9?*I z`#L6XRe?hj*<_1_2+z=?xB<{)Cc4lH{0LJ@EYa%+&9Ci%)kz&)OjFUhw3V1d ztcERUjXU`sL-WjXQjr;hJ!^&Nne7A6{^uw?e`zlJPGY7?~qMa4UZVd()HnvxaUAWQwzxSLwQIrkK3Q& z(Lbqw2>LQIy2LBMn&`PL~5^OrEZ!Z=;{Q+|#Jls~~w z7i)0m{CPO7JVNL33c}(R588HA1@q!!(Jnv%M5>Mvi8LE{apMnNc%~FzuPdO|8PX`@ zJ52VLj9_Oo!J||f`gj~M4ZcFxh$W*XT?dVdw)9P-E&i(9M_q@E@z&M}n19k8fBt+# z56wCSgN}Wq%knS2_$Z8pQ-jztHUw_dPtby?y*s!`5zpRDqQ0{0(PxmKj_+>=o10yP zoqY%$46LZhhCZ0x(@&KbenJlwA2RkBS8pCDtOerfc^f%&zvAnC zlMvpmPk!H30lgDHsV_S(?mAI}=TACd?AQl#tl9`ajp>l~+HAD1kVpALdFW`hlllxk zz$&ppx~O*re*9a*jOBLV3+9DIJ}oo3FrIkXnJutqz25;!4;aI)u0K>mPmlL zryZeIzi@4?HoWrX#WEj7f@bG&hv_2F>1Kl!!+xYl>Kg0_?Pb_F;vkhc8?LGA;;Q1) z;P>GQE~;-MQg@hVq8qVzEOkV9Qx}nnbA09h1pN3kj$8g3! zzg;DaXZah^?{W@!3W<>0Cd<*|$4M9{oCYn|2ediI7e2XUV1w}>F7EwGn;dqbu@)zs zeRKeFmZqUV+EG+pz)KF)7Ga>qZE`EL9u8+_0m(3C^b$4`9mO-~AHTnmM|%MW^m64xyW@sn**$>283lW*UJkmqhPlV-2f;Lx z>y4T`MIyA{!-@nBayC;KN3@u_|MDx4o*RMd%QzTq_i!5jwGfJqHe%>+fA>a{WVNkKZ5-iMElc%hltP2gkl`zEW@fPYUO-aTjmuf%uJ z6zzK4_N5dyy|IDaG4jy6dkWMqRS=2UtKrzpA_$Kgf;7KN7~}N@pAS63l8Q*w<)e6E z{y66BA4Pl3Qk*IZqaT?Z{M79Av`*d#5)ZxwT@invb}Pwnvo6Xs?IoN+$Kd4Q9-1>= z2jlf&_-e@@YH$R?&6pito08C}iGTi1G<8c(kbu2Kyc95+=@*Cl-OO3$>6@ zCs>J(;DZt$9m!udH~aNyoKl<5e-`ys)Y zY#h(zMI;E{n+2%0%9V^9&PS7TZg??oCz$s>pw5MnuRe%dvp}e znY@jTo;C2oH65!MoyOCnKZ&cBFt82Fk=89o!CBgw%-n>hLveW9NXgJ!x2Y zU)Hk8SPlW`qx*k6y>pA!cnDneAn{{|`)cA|0dKa^~(Wa|A+gI&TB2#c?P*MC-1 zCA;(3y7oM7Z#s*AgGI3G%zUh2;?FJzc^MveEK%b;fJNVI=#oVYXHl5phB_I;t0%pr z_Fe}_ZJWe54~-yGR-L4X0dD5Ii1pkt*k#j8PA+zba_3{Xt&!1n4BSZAzSh86gCbk{4E~{`@14B^_?VbjZ;TW z^LWz0PM|Mz9|<%%iJz|%G-Y%~3X&S}vFJMd$lgqPuT-D~Q%fji9)-H6%&E1&74Q{W zLRJWO;1ZE~yf~(WJxczt)Sv-6GN);NMjvc!a3;q}r!aNxdm?r43}*7%fOY#(^w|m2 zWa|+6R)|CD)%kep?>rFgHeqz0E`osYOLFbCA=4X69=J|M!5NWaTEAKdXSpv$ z5%EZD9`d5fit6Z>dl*x?Y+#S+T-q-^8*W_)q`R3uQ^8v_Y27kelzVoP{83KB^U;TB zN3$pNbEeSjL}_%B{RtP(hT+*A^(g+8>2J7X9KS@g;V-$jbc($MT>k2jH;WYT^@g9= zQX`IjVv3;j_7zHA2%_V6k2s(!OXdr;qTTb&)NW=aNWRb|+wS~A zZ!Z<>5fB8mh(qLOZw5~KyrjEV+{9z6!ih!8W8kT(q9?1F^ZV|EX`Q*?@-CGm=d6Nz z^4CdG4=-{h0r2Zv!y5-Ao34og-^4?@-CGm;dQZViX;%pCDWH#Cd~lP{H8jmuL(k~r zWb~OL-c_i=I5u;<5*kNs2Xx_Bw-T)kXZRfT%cy~pJ!T9C06kp>dc_Nf-%>FgTgFK( zI@^)c{0iN**c(%BCQ{9XAF!Ke3yBJIg2wVI#JkW6&IzB#6O2CZf*@mB%&h^P>Dllz zt_F`v#t@_Y*VsOLn#%88iW&0tD6^3R&xSTouLJF17pYHGhT^DSqB+AMx=wCzi^9$$0@URy zV0rIjsN%YZd6%2ud+<^iY!4t?zdC_x`Ycl8wjO1TjmYt49_-{6#pDY$*kW2rO+w7z zMo=G_2noeC=lQ|#s42&eQ{a8TG|X&T=g6Ift$chuCIqJxNn~4n}2T zRCRt7OvcKSHwV^(|Iv85_^BZz{@YJDqhoNr#Bx~0>{X`mMau=d-vLJLCHWB+{ zyKr)4A*w2=GIh$$_-98GUd;Xu$>mouj~=29E9XL#K_7ZtP{MheS|O|BCH}7OAfL2S zQ1w~~m1pv8M{bA1uJaLaOJ+UvU)Tz&wwtMsgD8_r`bKOjrZM}GCz(CH3H6=rNyn#9 z@Ni5gXVl!m@kkt`KjndyuZy95ZXO0n_M>v~CvcFyiNEHofwJcNgku39ZjGnmvO&0S zkrxe+^n@A3aq1U(2J8Q1(pyZt;MM&J2#HdIAHfyGH6H=y#}bKVKjd5;3>T-(F{-u! zxNQ$3?_?f?4g^3ZIYs%aF5|%9C~4Di$G=`Fbo}Fcd~MMUoR2nv&o6c2WyokBPSsL% zK?yvnJU|scv@kp?PReE@1I22^G{vYE!y-iU40#xzk8YcJHyBJrGijV}q^?3ElZ{Qiq zL!Y0sXzi3FXs3=7{(>vup%M(a%bl5?FD|%F`UuQ0I#Alymtnptg$z+Q*k86E>t{WO zHEm3s*X|tdjd(zNVo&44pT9uEdpG`bYNpgr9Kw&Y@rj+)9+V8oHh9naV{*{hjHe2G+9h-1WekD=#{svw5)#>E^LJ+I& z!1C>iC=wO~hs!1Kk!m%FsrBRg-!8z{UjWf2mgKDUL5x|=MsT_SW($0y7goqYeVHVk zIh0pvL5fW~h(kZ`$*+nD??>{X-t;$yH<>oXZ!tqf9iBX}vG z8b3(?Ls7>Bu>bdo=pA2&9QiwO^SwGaUGj(Y^f*EgUjxm0@)Yau@zcbiTriYiv?x!6 z;l=81vb=p0w3YhffZP_W@RFtp1wy!9ZG_e{y}7Cfw!ocLH?W-lAw9%yi&2B(R7#W= z7d*WUK2x%=z3npI(QL#%}8$IMV8-8n;c~Vr?6&`e}t7uTAXy=4w^=?(s#@WSV0%QBG8;j;= z1gpm`3_8}?X0s$$lZ`z+F^BVQg`2xJu{jP|i>d$B47Jh2n%eunz z{uM?D^Zv&(%7QN>GCAH~kC$|A@EW^b)vPy`T;+Vdr(42UC3Hu{Xi;0_g_;{x^A0B6 z@vTqg6ZdA5+2^))Q1)!kZP%Q0UV5!F8s+b^?^zX@37qXb|Hmiylhb$8U22K^iVtLu z)vU`>UpbRlyPEx8&)m_97lHdKtE02FPVj!Nk;vqU+i@wg%`KSy^Df6%9PX}jc@9ZQ z&HpRktP{dhvRd+`q?O9b#d0Ik&-VX4w$|`d;pH1bb5zVeI_6(6KhAS7tH5_lDbEp~ zzPyngaxbfcHY*3u4_WIOdw_k+Aa$TJjVNfA={qgTx|Hy{(fxvcwL*nCNBS<87Yj{C z+eHUroA|R2T8ML8ZI@o*u_r`%?&QO!QbqTaBmA|E%@2jEGDOXCHFj~iY+QDA_~Iu6 z-<_+oc3%HdRCZ6vasSKbg?vj?>moF|^>W@C9q)GZHGY+3nf|b#eZo!d@ZW+_>+iwQ zUUu>#+ua;*o$$>4kvjiG?YVEN2NrR$y@*`1%u#F_D`E!AgFg6fbil#CNm7CPzD>7p%5|%=71_H(FH%&?h1IotNzi{gcpGZ(V0GL6 ze;aEDv+tbw}G0NDSV1T8JDKVzam<3};84F=7jVv=;&yh+L{|1 z+nO0_7%)Rv4J}(kW)qDa+P1s3P0e(TjsA~$I>x4k8s`7UEJLP?-T&T&q3-MX=(5M&sqlBJ2bZMv;Chh`QO{??l96Yw=mWIPhWFgqyOufv;G@q z8fLcUJGFI9Szl$#x@u-j19aBEt(Cd9988aL6KBVxE(ibHteoXaSZ;*nLRjvDa~8x| z@Mb}q1#1?hS#V}SnFV7Ogjw)qL6-$v7Gzm)WkHn%Qx-&7@MJ-g1xpqrS#V@Qkp)8* z1X=K7L5~GH7UWoPV?m7tGZw^H@M1xW1uGV$Sa5PY?R#qcsM~V|a!7`D4ddQ2$l0bgOsFD!`XZ>UU_ z6?d-W$BE|Gd_v!B6SPF0Wd>|LU@dywF39-(D(RT>I^Q48|7gS8^;vNfk1mI}Rdvf9 zhf9}x{Q7G*9*b%-%68d3Idt%39@pa&5^_s!Kd2e_;I&-8{6d7gT9MOE_Mda@mG?Xf zty-G=<#(ch^Sg`j*O!G2zOh*IDKa&DPGz6wVU4S@^X{3K3Nya~!WbK44EYnd7~^Mb z1!LP7JHyyw#x^kK!q{8Jn0{$s$k;W;z?Az)o5F@$DwW&PlY=HYW=?mj249!QFr|yz zwVr((tTR6quXwv!Z0mP}%eZ z4;II|xbHOiH}a^{W`WM0%%~gZV&3LLWLXQ(ub#cL9~NqJG_GA1{YrfvTUCBJI}wUF zy6KXDhVh~ILkZ&zZ+<-JJAUPk*Q)-z${}C>Y#dnP{mFI5*dmXmQqRNPN*w0qEUZ}k zcek2;O|##MYh6$1iP!rlmw(7wf1dNjy8D9s`&OU%W^1=AFk7@pZ;ov5$(wO6lSWfM zZ#K-6p1M~%T)O3~*;RWHnOOmkecL6!IL~*qSjp$lx(3YUW9R0bGj|q;pzxw49J3cM z6%pj(6JM*O!ZS~Hwdw{wo(-Gi#OHFWuM?BzU$}GcVRymB8fFIr<}cfC3)J!|j zVc~oiFRPu4L=Fb-(pe%H;Gko^Ou*M!fBy=Fn0t+%SFOKV`r*6yhTz+;{z@uexcg#! z&6WpAJ#VGe%M%9M*KWEUL7&N~<_Ar@QdskL;9-oSOjCDJvXa~@nijc1_UTl9u!{KK zXOUT(R!=nq-QKe5d-IhCYAgHSU4OjIZu6d$iYU&%FM) z{k}G{hHhASYK#7hw(&3!{1Iell3RClvx8aM6DQ>ZyB~e2^LgZ=2qW1D-wb}FEK3MrDLano8&3Kr?`-1hOF{?h_ z-_&zs?dO;eTREdiJ z<&!A;asKi_*S_%!Nv@6qlNZB|drkk0x_H8G^7py>y8Ay)hdtEX)A%n{HCt$By`FD+c3x%a5r)pZ%W?A9l2Ox5!j4^d9r?jvEYIfsRIHMJ{qDh)WuhvU{i`3bNf=B?Jm!_tn6aGch_t`9 z@AtdwWjr#e9oKwnnf|jJvxIGoJXIn3smq=dhOxSg2^VQnRrneO0Yc6bW-uEdfd|Q`kb8NKs z6XWM+qI6zr)m}Vn{L_0lBgg;)`f|c_dmP6ehUkqP{##snl;{2-zDI}IA0J_>Jhm{? zpTFEy;EwyU!b5U5%#`jQSbfE2Q;GeS3%YBH9F)&!N#-8c9GrJL+g<-Fn`gea2`;d^ z>$7iip=)}e)AP+*si)oEY|zW}^J-bS_tr`Ow`+HIZB9MOxAC1ymIqP&w6)MhSmuM; z<3o!jS~iC4R+-nN6ltwYI@Tp@TP4({n5-|qv`%br)qx!^SA3Ro)@_iOQ3|kpEjg}! z+~TSH>$xU@RcoKkw)S`-^=YA=<8$eDp&iF&c-Osp-|>e_rK;&2&JlZGQ}=JKbVuFu z3C;z51EXWJmW=d%`9(N?j89Cl&7Hx2!$N+s4>AY&-LF2%9$j$sTwdvjutRiuQTKA| ziZeIAEHN*Ny3{XfoOSJN?;@S_geX~=6)RRK>{U1cYh1luT%@k2pV=StzHAJQOe=1es5Qf`XtCe4UMV?*IJtpB1=4 zqmY?Nm?NrW-WM3+>Q# zh}^dwM|&&CcBY3=&5v;UUAqjoCwvDXX&3CZ@F0p>VJL8f8x#)_G$C0;EO8m~XFVb+ z`xwqf^Iwpf-U0PF#yD4Q6ip0Ap`6iq7Kr)-k|qXNVc`wCdvYM@Z6kTwkbze;4KV); zKSr525QDC9s7do=IH!qlU1p44PdSY1OK$<2Kt5=ir;uNpmVuatGS&W839_M6B>mI} zSi#ihDv8{J$L%{{@SYuvk8U8Uj3&GpnB)1B17LOW1U-DZ0*dad;k1+mBnC?pyT3mn zAwivvhN!^`l_ZeOEXRu>h2-q+7AR%7YtuP%u{qrcB$N`s(QpxbPin)qCrs~5Idhn= zAw@R4F@~3CV`+}tLcG6Hk>*O)q0uidX!>v!Le3PBO>0Hruo09rQT3f z_>h2S7bw`o!IYE=_|K`QlXrb#?S~cAd}u!WNvR><0)|lDF^lGWy^2nSZ{cgyNj#}} zl@?EhLU)fSX;&S_w|7;rsJ|I}&)mQu+wxt@vtw0NS?MA@{wNP&>N;$E43tv6WBockeS2 zBya*|4kaL`k~>B+x`=DOPT@Np33{iU8+UFGC9zN1ajm2~Xg$=&H~VMc@^BOsPK_s3VTTb%9s?bH)Rev5rxuo#3nGCfM{RPJYfo7jq zfbYIt*nhVT-Uw34^_UX_xH*ZN^iFV7`bO>4qady_kiIs0f^(0IkkT##$e$>s&in3y zh3Gz#HW3eOK23CGGB;dEmqTlvHQ*wBk-Gi8h}S>G!1~@y)ct!MZM^s}F{KlezDr=? zPy;@PLcEp{1z(;W1|Bg{+SEFZ_WwT8hX;G%qhKJ(I3I?~8X{?|{R9L(Swvr&uS7Q< zBaGWsfU{;Tgw*dH$Pu*?lso34R8b@LU$_B { this._client = MatrixSDK.createClient(opts); if (this._client.isLoggedIn()) { @@ -1042,6 +1029,45 @@ MatrixAccount.prototype = { }); }, + /** + * Builds the options for the |createClient| call to the SDK including all + * stores. + * @returns {Object} + */ + getClientOptions() { + let dbName = "chat:matrix:" + this.imAccount.id; + + // Create a storage principal unique to this account. + const accountPrincipal = Services.scriptSecurityManager.createContentPrincipal( + Services.io.newURI("https://" + this.imAccount.id + ".matrix.localhost"), + {} + ); + const localStorage = Services.domStorageManager.createStorage( + Services.appShell.hiddenDOMWindow, + accountPrincipal, + accountPrincipal, + "" + ); + + return { + useAuthorizationHeader: true, + baseUrl: this._baseURL, + store: new MatrixSDK.IndexedDBStore({ + indexedDB, + dbName, + }), + sessionStore: new MatrixSDK.WebStorageSessionStore(localStorage), + cryptoStore: new MatrixSDK.IndexedDBCryptoStore( + indexedDB, + dbName + ":crypto" + ), + deviceId: this.prefs.getStringPref("deviceId", "") || undefined, + accessToken: this.prefs.getStringPref("accessToken", "") || undefined, + userId: this.prefs.getStringPref("userId", "") || undefined, + timelineSupport: true, + }; + }, + /** * Log the client in. Sets the session device display name if configured and * stores the session information on successful login. @@ -1062,6 +1088,11 @@ MatrixAccount.prototype = { throw new Error(data.error); } this.storeSessionInformation(data); + // Need to create a new client with the device ID set. + this._client = MatrixSDK.createClient(this.getClientOptions()); + if (!this._client.isLoggedIn()) { + throw new Error("Client has no access token after login"); + } this.startClient(); } catch (error) { let errorType = Ci.prplIAccount.ERROR_OTHER_ERROR; @@ -1343,7 +1374,10 @@ MatrixAccount.prototype = { // Room.localEchoUpdated // Room.tags - this._client.startClient(); + this._client + .initCrypto() + .then(() => this._client.startClient()) + .catch(error => this.ERROR(error)); }, /**