From ff78954383aa0cc21f2625f256137f39acf5c85d Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Thu, 5 Sep 2024 09:26:33 -0300 Subject: [PATCH] Revert "V2 fix chatwoot reply quote" --- .env.example | 1 - .vscode/settings.json | 3 +- bun.lockb | Bin 465727 -> 0 bytes docker-compose.yaml | 38 +- .../migration.sql | 929 ------------------ prisma/postgresql-schema.prisma | 839 +++++++--------- src/api/controllers/instance.controller.ts | 6 +- .../chatwoot/services/chatwoot.service.ts | 2 +- src/cache/cacheengine.ts | 2 + 9 files changed, 388 insertions(+), 1432 deletions(-) delete mode 100755 bun.lockb delete mode 100644 prisma/postgresql-migrations/20240829184505_change_table_case_type/migration.sql diff --git a/.env.example b/.env.example index 36f974cc..b5fe50a3 100644 --- a/.env.example +++ b/.env.example @@ -23,7 +23,6 @@ DEL_INSTANCE=false # Provider: postgresql | mysql DATABASE_PROVIDER=postgresql -# DATABASE_DIRECT_URL='' # Direct connection to the database DATABASE_CONNECTION_URI='postgresql://user:pass@localhost:5432/evolution?schema=public' # Client name for the database connection # It is used to separate an API installation from another that uses the same database. diff --git a/.vscode/settings.json b/.vscode/settings.json index f2437a64..8f568c69 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,6 +12,5 @@ "prisma-smart-formatter.prisma.defaultFormatter": "Prisma.prisma", "i18n-ally.localesPaths": [ "store/messages" - ], - "typescript.tsdk": "node_modules/typescript/lib" + ] } \ No newline at end of file diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 0489f531567c119b55227911d0a901bac7fb88b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465727 zcmbrH2V70>|G-a?_B2wNky#|kiiSj`5Dhc8x(!WGP6fQ zX1>P%^XZ(=xBK(|s&ndjeXq}bp7Xpv>lx=cr}(yN**QWg>FgaC(pel5*}^*_LZ(d2&4wcz>om3BrseW7~&Tc=pPUsB@u;%#V|~0h>sZci6s7E zB8gNyvmVPu2M3vS8Pa%}&wP-(c2RLax=C(vI52o3Fr zh(bb<7zuUsPa5GP5lO{N8eD7u^{_yRC|oRMf+wLihKYt?FrM%LaY&$F3^R_aPXLK} z6M@qPNqI1X#zsc~{02NL@p z%k^&$O3=^Xz>vT&kyQF;UNxW}UJn8%(4H4a)Z?kcws!=Hao4HO%5QL84eE=bt_yMw zNc1lU`k|ZxNkIMrNaU*1Qx}58@%&TIRDjX10FY=W0sb%mIRT^|NbAOIyF1hyLVXA~ zJ{{m9+MNOtT#65um|NgDghhnJ_=Nh3!=N4glY|BZ;fSwk!Z1ytJ_98D7w^Z_ok60V z&LEqCR0Y`@wW-`E1gT^|KTt`rWHNJ0JUS{e1%^6^iP0VC@9@hlEPR3?mH^NdrI+%wiuA zNWG4%9yO4d2L>eS`ve?HS_iM8j^kU*=?e`JhX)3Wnc%?SKpzvo5V6!dA~4983F*v^ z|0s}{#{nR5eRkv8TXJ<(khtEybz=KH2Z{6M8c6J)0}`)qU$J+DKjbAC#taJ#wlp+I#P|e+ zP6+fBNhD&CFXT2%zdJjQYMgut5|(JZC?p2Nr1oShDlGJJhk?d#Gdk z6Oig4gFqL~ucLifd$3k2>fW%4T9`v*K0e~Ga4B=7FYCuHPQv(#O?W3 zh2=<*1ZF?XrvQ-zmNPTnnzc6sB+eUK8&-d~NMhm##Br!&e9dgxc{&Xw=0(a$9gxT= zfJA@2(P1dw5q^GR3GBOKvABCTbEdo>8(&yNFq&naTC;j!e4;|2UvH?RoxuLA9(R!S zpf}@$iT>ULbjNjWFS0%$dfw~IR zi$LOdQvQ5GgF?X_X3ikC|4oo+x2-d)S0eTel*09gP}hO>Oput*7*S9Vgvm^EVY!JQ zF`jGO^|K%`j%<+V$9hh_l4s+bD8XHvVPfD0kNQ1^vg^qnB+lpVATb{uK_agV68%qh zW&Ll?wb$pQUtox@3ET)S4`c1-aWV{#L~thu3F8vZgqeg_Of;XMzz7^6y067_=@9}| zCM?7sj~C2^A*{VHNuV?sQrOR(_2(N%+&A`s#C5+Aq&mpeTsBoy@w8o~CHh6M$N zo58&U<{`!tCJBZ8TgtF^i^}=fbtId=j-%N4Er4$X{ab>>`=UBXwD-f4z5W&?>U#td z?cV^2c{<0*qaZQ=dqHB}!f+FUvUn`pKOQ9NivWrJ!u(CbW5UGJyI!pR=x}j}FZ90z zb=02=66eJpPD1~{knkQ1$gt4RAdq+}VVFBGzBmu)oTl&1`X3r54iQ1ZO<}#DKYzQw zw}R_vZvhxb|H43OgVcd`lyyO(A6H=Rpx?Bwegr#sJsRxe{66K!=BF{ljr~Q^m=K={ zf#Db7I_8Py9nCMX)JGH~@)gs(p!ooCROIadaOk&B5ZtMt1=l$abo=qFz6g*N`3w)N z0L&(^{_F&a<0KEQ=&ye$M#M0ap^k9|h@`O5FwAwX{s<)cf1Z~cON9?_cBP-a~h-y$e>W)iUWW$^hdwG2eR?PeiRZB%rI}E zj&T-)M0?k`>!-Q)igBsPC*1s@Kzb`?>K4d1<}E@3iGb2OiuI4qe{x*iCqN9(521{I zG<#mFcv$EL=aG8}Dh>&>!;?E)5Fw27gv@^C1-^wvU&Z;G@vL&nx3Y17Sq)yvN>G(x$NEl>`#| zM}Wk9tczpq=}u*(Iwxr#3JYNM1W&+I0>j9|b>yQ1U;v=Ji)Zuu6ePCeVNV1p+ck~V z5Am5qiGn7O9v?`I1opGE>Fhe)036Pvg&=i6;{BO{G85|PUpe@v4AM4%J?C}@iFV3C z;yQ5T~7pwcEY*qgSqR0a6b}9!~GTJ7wQf0hG3vXr?T_pCP>UnRH(!k z6G6{S7pNV^9Q)T@%#Py((1Y>Qb0@7k4`@ff#L;0Aye~N~W&N`RiFS=a;y5=0iQ}im z$vPlW-`6Fq{w*L?p*{yB`c<(GVev}Y+X(Z9>vxpvCx%xPff8x>919X@CLd7c)Biz@buhn)V1kg&ion8DY%`Z-R2Iw${0XY=Q> zinS*ZMVWYq`o?(2;L|?L7q|(Uz=@~#YBrvUY}%RKP{;M~6C~y#74)fqqb=R@;;r&`R-?u>O0e>DO=J6Ov)E^WPjgNy&K*cI#7&C5sCWTg{ zgZaLZ9iLU3SpOg`p+S*iX6I&h|Jwi({aOMN{j>y$=M~uB;1p3-=IkB#>jE{$iEMeAM~dL z@}&V%BKCnNi*V^es4G|0MLyxc>F;6lz6~U{YjZMVH_Q2UHNodn2`3ql@X#iTS+I}o z4|RBC2@`|FS2lPZPZHvl`&s_Z-hcH}9JS-29qm9rF}`m)57+TNm&5hj$<-GhWVzK` zeGbTm&@b>1+kZ0GKZv`&it{&_li7#4aR_AdI|JHrejPZ%<`F-7p2j@SG5V9qSxp$LkYZ$9{Go zG2RZx+5QF~vAr%=@6BEB0usl)B}g1M^%Jb$$H5-fGoY>wat%m~V;i)i-zzwOW`e|a zpJ3mLeQ)O}c6}*8JIQ{v(1YukpRhtUp5Y)duO%=ZxDOU`wrs8?A3AE!p*9M8>w(=o6AL+ft zLa3`iJKbmGp&zaTNs)8qOng2X)i`Mi4IIqOe3NL){RpF8O}GZ^gQeoOaH|5xmLQ}RCu z<}T((^EE5!ynhDz;eD_h@OZr)NUTqJ!^TVRzvQ+Muq#rv5kQREfiG@zaOpW*Z$0jUPYF^;o@~q23DWYMguxb_}6@j+0wJwuE}B602_xNF1kGT)PuU+!vaF)CH*s z634atGn;S9`=8^Xs47>H*ZUxGz6IgSPAG0_tbXF(smN8teGSGB^Zn;M+6V18KD6(r zL%lK7oi*8fb^+N0>W#SicMZ0FA0+yH5+u(1&0KpT$YxNV1A1_LlpD!atb@@YQEwhd zjPq+lxr+It4-(g5u&!K1ULQdnub&6m2xN8x)?QydR<99AJ!sE>>$px7Kw`db=*v~u zGcjPV_k?z|e+zi*Kd=ew=V6ej|2?!LX9{)n>uG&9J!}xvF;9a)Vt*;ecL&)L>g_?|xM+gJ`T7g= z;l6PjB(ArOAd&Y1iTx5lqMl%oXxADf=D`po=3Nma`u#{pu40{>0f~CIfW&^YK%(8? zc5+O6kbY3dJjH;-ahTVhomVbU$2{}|iFu0aAXl+&|2Ce@pOGiL37@5tJ720Q5Q z2oqMHJxH|I9@=poDRb9fwq^Y~2NL^_mSgAZ-OlWM9xn|I>BhkGJGA3`50}DEI{X6t z)w{5Ef10xXZ3cNvj^gT(QO2Z`%x3`pGPcJ+{}*uTjS_>pTQ zgu#sL$@=FPBnl4~`!dd4e|pca*NYv0`Z?cTsN?w9_Ga_JzK4-AN4dIK3K78;(9M#) zE*f89hPerK9G4Ry(XR+eV8wfjzF-f}2c{q~AFV;+d|Tg_^*0S9?o)cuj``LEiT5D| zPJXsx;|mf;hG0BzppMsXbMi4r}qAr4u8>@P-|pwklpg+=O=YAKr7CKra1Z`B&^4d+pfqXwjdwrwHvBKh3Kf z_H4W~ujuC{p3shYzCM7>&qb4AxNA*s+=qb9@`&+#PK@|64&D%kZ5NENE|=-`Kv_iFOE)y zI_jtUdo0v(|MY?dgY8E^V*H`dj`4{>;&|C}{VYJDpB+HrJTL%>`ZYje|GFTtf2jkj z_ZCR>_Z&#e$bh znFKIB<3#) zB*y2-UGD)B{q4X>H*ePdW02VI7D&`X{o6tv*NrWAy{#{sH&dviUvyppTNU+wCwnY; z-u_}x`xY@DW^^gf4boH{y48e6BS-8u?Sh7sn%Tn@z|lIrC}qEmnx(` zc-t<2L9B+Z{LN^Op*Nhzl;sy|uXwH7_~8xzhMSB}zIlA*Mqc`zOKoE#|2enIHf?#d zNJU<=^rrjC2WJ+!Z;>0gNiJuvow(bXw54soPE)yJrDcO4B;t+#tC+Vb5skoPodgZE79sHMn_e!;^*c zI;_Y{**Ga^@`2M~sw^U9Irf?|wJU^>lQChPTqZ zam+RFl>D#jDMR9da_;TkyW>J|($@`x%j~xrdlU`Rd40>e;lt&wW%+RiAM`)LQL8U&c zOMFMV-M7rObLo6?z25m#4ZJ6|?qjX0+2g9`_A3sb);z0D&xkV?uCE=-Oa9bTsL?Y- zr=gR>%7zDD>(9)YP_8YW@XP#STFi(2x9?iz#Eo5)AlFyYv0#}P8uxtEcRx+mEur8Nn*b5@CV1&&Hgk^KXqD@5pj{9 z+jVcdvxnI~SL~nL7%6@3XP5VFY+9Uo`uX4Ul7FTjY^D9W$NR~HHMC}5-D^~LjOojn z_3MRS^9{Q6QGV!((o*ZSSAXsQT~el^f8Hp&K_i_p$!XIMrA*hIS(^Bu?^yYq8}F1J zmVEQR?^R#Pd~o@x{W*2LSD1fSJL<7y_t-h|(XiD0YUn{+r;um7Xt#7PyTo`Tadb^d+~!?RrN}y=dO& zWA5(rTHONbdYTQtSa1934xI=7_%^CR*{97q>GG+5DXV8?_uKkYV{=r3-}6p`Bf6=q zDlSS;eA4x}@yep!ZjBuyA3I(*by+Y*vvvRBR!fXWUsQ9xF>?RA_Olh+uXf(BXG`zq z1IJEEb#$8NyLfj_QT{_|-s!sqOWp-!-pej&DK*xA?RqBvws`aSx2u#Jv==Y9G-bqy zrsF;>Y7*vl+4F^mWa_4+t4kDGjI)XKFl)LX*5!PG(yKO(F6S@MI%xOd!8@t$`-6op z_FLX07n^(Z%J5pCEw?Odj9n|$W$CZATJ`A{rTFon#h?oZ)}`*7q@>-q;~}}l7tVc& zZyvkRZPAHm3%AzS9q@Hg?~+#I7pzD$)1Km9e8kl|vF?rlFYR8@FP4Uvt+V=)?cL~y zvS#xJUxLQ1|6RE7uuTV@c3tJ>Jy~~komSJlcCQ9!*awc0ShY=Gzb$TjsglvPyEFXk zyDTj_5qQ{gt9iZP=O>xc0c~E%TdV8Zy;_|adDhf+h1bD)n)0g+OpjcDq)=zY@Xd|d+%t&m^J7}rrbE(;jr602z3%(SrK8i4 z@3XZuO4sdPr9G7P&7LuO2OnKpbw>O%qgT_OQ$NS~%r@!JOg%2rb?JNytEU$g>pDz1 zlw?_;J0WJ%^LFcRl{L+rZhLU}qP^!l5&(&-6AD(~HH+N0jxWgq2JC9t@ zW`Cca%AuBLUJqT7eMH&b#U|oNwnKhQR=}~HpKjzT+Px@0v{<4r;rUDJly9Bo7A+fF zAo_Ib^u`ZA&uj`=bbaH~F2mj`=<4U(RPH}RPV3QK-y8Y!6AK@1xsddGWqHo};~keS zdS=G*}yO&S}Z4dl%(yo-TN+;Azw5xW)Reg)VD0 zm3Pm+_S}1`bl>c`CCTp-_P6cIiWCp#eUH-m7!w{J9hqQb^6vs>pCXu)e4t}UpKw~@WPWO-G|q4 z(pI0C)KCA({BPMmGPJGCH~PQJy*FcX(>E!DcV3NpdrPld+Wo}`hR%9!nje=MwpXb* z($P<nn<^?IFJ#}DJ2!#8v(if%Qw z>+ziAgO=IXPwgvPwyRJ-wq@Di^<4%B2F_fV?K#~StVzv3G^dwlDBi{I-y`HH*ER!D7kxA)zj}e zc@>%2GGgQb(@Q-w`}Nb3pPxL{Z&RyN3%=AbA7wMGjY(TCjj0D4Cv=DjN^5AQJ8Zy! zrMow@9CpxL?_QooC;89ww(OvJy5Ck`OXqIRxrd6IZTri=UqkcJP~Nat%AUH}TG!h( z4{q(Dldz_^jpp%5p5IG;g?!04k>9m+xL-ZH327(mlx%FM|IdM2w>F;g*rB1ma;(I}!$W=4l3vH3^?Q8GZMKfi_5(i# zXZ7v)(`Utwm)4=akCMB+Yg8sJo8M;Du5DXhcNj0REr@5NV<(&6PJZy^y1mgem(p$5 zRu?l4SDGk~o?IB0mw4mS$WK@F>J6|8_PaE0r-5f6rcO#QU6Fh(HqEikAZGs2DG{HZ(!M%x*pg{Mpupu<>Xny?&I`z|eRJ0e(3z`q+ z&+0$<{A{vsJ8x~J*X3cqbvK0vi!HDG^y{(Z+PjBuOH0I!>UH;*YxQHG(uKe>t(Tow zb=B*YVm``q$LO+_L9RE3`Dhe&OdoqtF@52MRx_Tj|7kTe|4_iPw34ho>l*BLYd6qp zp7I>WM^{#+o!6fjd`Puvlb=%;Zhw()u329d^CQRY-{GnCafX&|o6v5eY0CB)2ex?LY1Vj!Xs2FL{3nZ8 z1&6(FRS#X8-Yqnx`~7LFyFRj*d~4_o$r;D3qi)7UW^{FMF5i@1CvH)bQ3uR&A4m3C z)zjt1i;QQ(LiVIJ5O18}J~%BYzPR9*)7d$?|7@A_R@_F^Za_}{4RNu*sa2l|n`TTi z54|`jYs#9TnY&9H9dg}im~p3#U#nTS-fB*hzj`Y$dV^@?wpHhCM>y0`oSGT8WntDS z17o*r-^)S2>z<_Z-?ZL}w~tt?acLfBbZeAVm*l0M1--V1I6pKxnX#!w%ZMP=fNz23 z+poY)zwGZM4vE|NTREhk6v2 zAF$TE)uzeRH_MKhO0VV(`{h<{D!OqeZp`6z(t}CU`pUQLYrp3H_Vv2i-@;rDbhxSmIX-lt!8I$~aDxQp|&d5Wu*_Sop%iJRD5Q*P9O zg(m&gejeB#@LAhTOnP>A%Aa((t^7L!!#Zn*t~Gy_95(yHO1Ju+%&3&zYmYq&rEw_L zeqi^@+e)gYxOM$l^D~E{ruARae$nD^jiFDMeNNAcAO2#En`qD0lE*{xl{(}u9e&d( z{uA@y*wqU25^I*;V6Y}KMgt9pGV8EVGZAD=Npl zp7C#Q=Ul(Hqf(>v<>ZU+EGr9s_w?XLtv07`JI;tbCDFSm$zAs4yIR3!%gmya>+*J8 zy!-5{&F|}?CSBD7>UB69T+}eQ#Vc>Ga`j1fj-Slai>^C+o6=W5(=NI9-#K^ga`uM* zhmBJ^2kz3G>QMUnnCrrq&(C(c*UI(hz2G-jZ)!>Q9{4(}t(R_?VavGvTK}j-gmim) z(k$Tpg(n*M=^kAI_76_UciXkVT<+A(F(VWAW+XNp>~hCyTwe!`jlNz})(;9DcJIZt zs1bGi?wdSpTz0QeF2SI1lBq|Gx$!WS`rRDr-}j^ErZKmQLeuT!VvJK?{Ti+^@%X}F z5%EvDxGP*WJiJc*KtyMH?xb~>6aG6qAR%U)YDU;eE3vgHM56}8y`RKU#gGST0p6iz9eB^ns)aysnly8YP-Xpe5+x0xT zhi>!?zu;9LFRC~CHuC-aM^pO8*sjPv(O*3{Z$q5bgWE%C-<$lYu;84@~T_C*E?mj3(mH^bvSQ9R<`n)DR;g` zdu_FV~Yv>#Hf86JEPWqE0dVN&nEfix^=(*ou+ti1dFZMGoC-)97%<*1n8hSZx zq3)D!HmduX9T!f{@9OmY%Yhl~6*tXU+p2@h`o41|s@*y|dhxE#DpJ)?{#aa{V)19)Eon7h|E7ojP-^ zTi=Gg&9%x4wiO2%-QMIFbKaz>)9vylv5mVvRN40fbTG>*=W#%Q+sKwX4H+p_E{9M{2X<~EHboJ#C zFJqq<8ZO(R)9rhs5FazO;!V5!ug{WyZhN=E^qbE&Jb$k?u3?e#%~xe@UU+sgx12tu zQ}>i^PTPk2o|n@u8l3U+`^I+%pG{7kc<5{VuYp4@jQdRY-#ODVqX(|Ad}fk4UA<-R zlg*PGju9O`vZ7VO+Hr+_3>D+%5A)c#JS**Z&oAL>sxgZej$V+rqfUz>;lmz`dNS&M zylTh7O{cx)zW8oY=6ru@mmI|@2c|aDA3j7Jr*+`0d8ftS-R}0xvihRAW=!*|E*)-} zn&jn=+OcGA%J4pB=b8`ov|KxQzudIgJ{DW`&Mj2FKXX?`s#?~>mTxoywktQ$?9i#% z<>iBSsZ3wI-y-*YRB3m+w+oDhoPF6QyKGAD12avYybsg^dk58*Ir|8 z-#)(c#?PWR`>eNi>ay~~TGKq{)v&S!{v8_*didx}*G+-lcB`m%H4L$sJmv0X{|0Bb z4;WR<%q*C-SgSlMR{gm{E4j}S#o6Di@9OW*uQ&PJ(4Xr!`i7m!j@G#wvBB>5xo!!f zgi}siBwmfS?Dw%grEzIn!gH+_OBA)`Q;n7$xanZyv2Ex?pZ=O(X0O%=x|-;ioqB6q z^Cw5mGrrG!6gPF8-tOytW(_{Kd-)*GIa%gfcINGubw8?jFuTd%vv+;H2P&VmZZ^Ej zqTPi>=hB*`-FpfK>vN~(1y#lG#({?;@+=M<7pgv z?E0BC+D>kgvHk!LdBXii(i~V*@DhpJxvAsF_#>Ft(cK3HWhtGN6?d<)( z<$?VFGY=FW#q+nkP~0!(8jP0nYSZx0vWSlx9;}JXtt)rtQH0-Zier+SpW;FVENOO2nyMdW2TK}2v9Rv2+y=<#` zZo}&4(Q8(%jn4VHsXV4=#7;F8ao;8Z&A;l+^z7GEVeAdj(7Wl6i{h;AC@y&6F?+$* zZG)R$O;5d+P2*vpHSAl$o(+j6N>2l5Yjvn3 zy=61omkEv?8o0Ifc{^n2f$w2YI=4Ba;t_l$*xq4g3BA|Wz3KVEdezw+)d?XRPtHob zJ7~q+Ue@EjOxcp}(tQ=PbnnX^KGOE7WlFz4KA)TTx!>ETpL!Z9 z6@D?-(=>Cp8JwFt+4Q^NQKR+)A4iAWRQU6Gwb8y!i(VZbv}x;>wV|bLwJi8PchYm_ z@H+wNL5HpH(f#wD3iGsAl+zXRpU!DFmpNxO{$^`T=Y1FL_U)AOy;>jtv9G}FTMwsq zZI5ZEC) z$Bk)j&}Pipsq$`eixOKq+1#s3{U7SDNK$d{(Xi9w1#iYp_>|kyC+V~9*I|~k6BUkV zs~?|wWxM0k@ePC0LLCmg%QtdMUl4hEK>wa|=bZfQHgVJEdCDWZ8HdOh95q~R;WK!5 zo`3lI-M>}-nN;ZX;l0uE^<6D4(t81VZ&m-nl;hWZdg>gQz3x!|(8SH}UfeZz3dp^= zx}VeG$!pqJtl9a`o<7It?e4g=>#*c;y1SGL6&{)om=WL=`rLHS_6OsfT3@f*tJB9_ zqjo8IiUSjZ!jfGq-rIj&-0G~VerE5uw6kBA{V<&z6P(@k+2+|f4}14n@GDYO`EpR zdldU}m{Qs;uk1T-mF`YjeRkW(p>wpKWlS_tTXkmnA_vc`Een2*@z_*<+ppfwlh!j? zhd=B$Y^GN6?aMr z9TL1DF4*&Pw))EU9_JqSGs<`|_eE;Tb@`*6KYQEFy!k^u@#FkW#At6Sh@dYJfA@fsV> zZ@oLCY`jZqi`h?d|C~oHev2k`@rx{?ec!hA%==q+EznA7_hs^Exz-0}{G73BdP1?u zrM7;zM#U=p&~%<*F{pUPz=CV`qoT)sGBJ{ySl4J!the|~V^jSEC95&VdTB z=gsLIjjyS9EoObN}%sdIK*NS#48|nOtUf`A{#vDTf|iF`s_Br0&5HWpx^8f2=og zQHql2Qew)G%!McCE7|Cbvs`DaF@5K#U{S!(We2?HHBW3$+S&ZO zm&@U}9{uFxzI-vPd)DMg@v&)V)((rh-8-wpTN7XZCp))n%J{gW)9kW=uJtyriQ9HD zp>?eH(kb#Adf&2f-Zw4&==^@WReD~t+_%K2$mq(j2ASc;;~qCqY2IzLaZ0aG^-n)} zl<;tw(Xek?6Sw`2$cyju@SOF2_+e(~@)<>j_Hi5Zclk!Ymn*rgc_<}y%g;2W>pQML zOMjU3@rms|+qxM$ABV2cX;Zqs%bh;^7|Bh&1@QB(^;x5IZ~azyD?g>)z|-F4!}GP& z$JIA^Jz62mY)K#EfL71DPfP6kv!`ai^p#h(x!n9c$U1vS@2Ac3>Lfh8{HC|_GcB`u zk57)>n03MAa8vWhYsN`utwwy5zFL|kezmx(&H1i=shxiRZ9FAu`F+=>?rpQ_;w$?L z%a->{-s_mMpoqU{pd{g_#-}^b{S;+wv9XY39M&-&m3*}s~&Cdw++&N=4 zmB!w_6yHqwmi?4B@=Kquytunh(aEprTI*&US{VD#c5PHjFNycqK8-V??$r;yFX|N< zb1gqq@;2y}&Y2U;&xAUT&E0$4cJ6m7{n%2ic$=XOV$F=77#+thB>3Dd-5w(UthkRPlcI1%kywBYv5ytgm*9(;A}!yB0g znr|1!y^4~IDBeQv`5zp}(DZTLw3dF(m(kL5{r8!_Tfb3jp{F|C$gI<`L!E5R+Fd)L z)BCg6pwxoRy8XvD%1Ja^zSuhN#v#wfp9e42u)gPLlVEkj!12nt0e2GH{OUU@QMs*p z{F%`m=gw-VwL5!Ka>()q^NJq3T{yjIWm@ZF&WpBun$Tx);>7Fs&WcX9JUw8!-sjGm zO5V*E?tSfcr?{g|bEioyA{}>08aU=gAO753p_fBOS0y87he4y}_E>7NxaBFG{Jr^8 zQ*Hfs80Bib*fwCV?}t0BE*d2aEU|8+FrukT(;4}BBTT=l%s-Gk*R8$1$(2*3(H$Nc z#OCIO(EIhjy;twNrEl)@nch9=Xx;^gpKmp|SOIqEiPmra6;KV}og4(a%jf z>V_>EJuIfQljSM#%elkc2j=x@Q&e|>WdoaTwh<>U-@X1i>h=@;!C8&l zylD9#Wkstn>)4Fksl7F}mPOC@Olx^?@`k~VqRa~c2kkecpEK^}7;Vz=O>77Kmvnz` zHPycT$C4HecBvKxN6$QPUGgjAd*S2xMizr6b?mg}U8g&`%R1@A`#o(u^IY07&uvfc zdGy$kWODev)}RaSmXdaJf>-3UTqrtrvZL$aHAC7=axnXSps9<(+#{NGS3mYLYZ5=! z<4A28rs)T7=ydWDG}LU zW&G|~?Qt{d@oZbu`{!=%>HkIk-mKW=bGn8syz3yh=jyoGE5*GH@0GhBqxY>L%|0H# zdAoJba~CeX)*mvq)53$NP6ZlvNmO*192M5S)b`vf^Bobp9+a$(%rObPrXcxqy?i_P zVS>9uK+E#)o+}eQ+`gLUZ+=vqx%{QZ$>&bR5fKW*R!4m`-B#ed;$8fy)spPJdy-BM zQgF*PK7MNJsB?RY9&{X#w77|r#fJ$+A8*h5>7V??q1RU1i@oPlf4!_(&94qi9CN5+ z_;j_b7GB%->Kr<8+0bwB2FnKbnp|r@=M}$&L*KUfy}T5DU946`o}+E+FpN3;ehyaQ zEAK*lBtWLXD*}mae030i9)N+sQ#>TAbA))Ex(w4-hOdsJ>%i0KE z{nCIRz}ZJ0ekY1oA^scimcSDvG=6ghhOv{0pY)Qxze(yB4Ltm=S3K3h9bSd{@8Wp! zyB;sPGS4r8$N5J*>8(x;^=kqKasDCC*LT!S{2<_a%GihBA>>tvPX->xkNg)p{|kVp z^#@=7^{YB3$i6Zxygp!`<{kOLm$wJL6X!qXPbfbPc+5Zi?q5X_%HQXBC7>}TzGF!7 zrvQlghiSy%M<{;*`0l`?ePr9ihfg83E^FVmz_UC^Op`h&L5n2_yw*a2T9oG<_ zLcBRF9An_I&Np|cpZFQT)BT69ZCU;z@aR8{pV0BI1HTMS_E87lLjKzTZ_DKmZ40$O z19(T^kwcv{4%PWV_U{AV1$Y?73KrKepF;dVm@vaR`+PX+Lwq{$1A(Xf)Ai~k@!x^R z{A1jFbBDT#?*Z?Ekf*uFcMOSN1H2jVR42*T|EquS)p2y4?9_o@uD6%5PuHuH#JdA; z3q0SrNiXrsfyeU;@->;iSAe$y9$CDH@*P96Zw7y9pf~U|fBD8id@%6nKaM}zrgr#R zWubnXfXDqCw(*K0bp1R8UUvM1#&4uud49$7Q8cx$kaxksOb=05{? zci{PQV4|W>{BjN0{fqKX*Q=AnTXDRQxr4fip9{P#_)m4A`6~pT&R@u)AAAbg(}BN4 zg!2dE=W84F6F&%ev`_1wk8N2#k>hJR|MGyh2K%^gp#S6-+Ni2fKb=PG^C$MDwyHR~ zMt$9Z$NL}dU)VT_WrC>zq`PLn-%e6AEEK9 z>Q}yhp)vT=)_>K>em~%CIsb*+!-!uDd^e7Vt&n#iKBo!8jH(5%3x7FsL@oF*;A>;Q z0Qh0Gu-~j1{9D7d;3oqgSPT9s@Sa7kHR3-2Px;4dsDn=-zH^)ZJ^%2{A@MQ5+d=#a zoKd0t8Q}5!%r|co8`;Ny1P0?ryEq0y?VAIS^9TJ$_Fuj5y{ba}B*0q$Pvb8%|9gPP z`GfkHuTlQC0pDLHews&o z`R~A6%fw$DN7u=|L;L@I{t!BT$-ra&NuN;vF9DDDKe9`CBtQQq$)0A1%ID9&_5H7Q z;vIm;^@Dz+57ho&jBFeAn*uz(KPLZW`&9Lv_$-b``xv{>_>DWV_g~Uil}*`e)PEB2 zw%qvfwT*g+&jH>Vc$)WobrAo9%5kCod+<)lYAk_Z@ zz~lZ+`h@cDfye!W#-H@axcZ-8sb3qD%JU;%+o+KEK;XNBeQbkQA-oIm@trH*U)6-q z1Kz$C_Eq5UIItGHEAV!;;Fs3Y{sZ6#)xv%UIQ-Toe__DaCjNcE*CzizfUiyb17Y*6 zjr|nh@%aTOeof}@1K?}pe+M{x)N1^IuTA`ifUnK?|EQ&XJGlAQCVwfw*Cv03z&qAr z{9C}oTW#_m0DNuY-&affKY*{z_*=ux3(r4wVg2AexE?Mf9)<2765x%2$2#7>sJ%KB z)NeKLc>koc8=V9A@;3mc^Cw^5Q8(Fd2RF~!@Z*5T{PXpj;v)MSIUegZx&M~~kMkdS zAwH1(eh@sxkM{ZMAbv8ya0IA0f8p5;ew~6>A$~jXm_NSH9i*K2e}K0I9^0{vuO8z2 z^knm=gbJYGI^a`?UkE&|AFQJeq4~Q5yfyG>mvq9{Y76z%gTpJHf0a2xX#8#*k7Hkx z@m~l$9D(AAuhwy{1Nnb~vyXE}hz{a^0uTRH0v_+5m^aKl`oO0Up9ehdAIRVw5ITPN@(5B`5kLCS3Kj7vWWNvaa0{#O zAC7Xo3-RH=0~e1V&L3*WdR2w`Z3Q0pFRWwkgpU7hj>p*XLwezBm4*5#S+nmiv2zRf z@IAv2KgpV1f3$y6JE*F%P(OJahOy@I$JaJ0Cf*r%m_q-qf6M`&Li{}7as053tWZ85 zc$~k;lTIP_O>Eic51jWHKVKcxFBy0{uupzddv!igzw0tQ-?fLjiP!DNFxE2mtFuej ziT3~=T&VCL*AIU96yno>$MZjOlmj9BY2b1Eaoy1z7Q)Lz@@fA=pZNMf{`UYL?;psa z4?=kf@VI}};p4PSAF{t5c=#_KFQI+DdWe4xFy;^a#!p@N@F~RW_h;7+aYEyd1m2dj zk9LLfhk%#;`7oion%_kI?zAF_69g zQQk>!b#72Uci`#$VRek`b>cSy4@3Cx_zU&_HSm~!(kGN}=fKW?%pK)G*3Z9vCwoD_ zWB$o5>fuv}-v&JHpIArxq^CL^#6JNZ_iwDz9#kER*NNAIhd1KUHs2f&F9x3SUlac~ z0FUQa)Q8U?d<)qxm$8rWQ+suKs9$#{hOq|w=sSI?WAQriQNVZNcpQ77*^)F=akmXMSZw)-=4#$sgA^UX(SKfax25PTP5A|~bp5mvr>R7x^eP;nr&(GM- zcMOR?3OwGw(Rccwp6UwmUu1Y{tB%F%)OWxT_TLY{HZ}Z%XCZz$@O1uF0G97OAifZI z_z_sVCdXn9_!Q!UhO&Quf$Dr%>_h#J0S~u;c&yhX|4Od^d;Y*2@F`^91$Y~|>qUs$=mw_5H%} zLhc>1d^>n~j`I(B(uvorE7aE;czph+@e{g!Qh~?#YdU^;z|;CepM~1jaA$vi8SU#- z7qrZEir*D@cm-PFe@*ya9t<=2KX^@O?+EQ9RkLmGOMF6POjmp*`}?6EJVMmi{x9J1 z{#(=ddwSN+{&e8GfPE#1s^OnOR#B(;eMYc+w2 zh5Eh)-k#$zhtysLT5*Z`^&83VKiH@WAC-!$)&D{KWZ=<%ocDa^K58dEi{okk;H!i9 zC&0rae1-k$y{_y*yyYnN{!i&S0p1$y z%eLY7>I(5m9M5;$NiXr2fXDL##!qvI`cx%}R~uXT{ET}LUq6T+2t57#yC&!N?ZDfD z|7e#!RryWV$bJd%IRCJYYgp*~xAbE3hqjRy8vi8V@%)7L$tU<)ZK1v;z~lT!yVO=K zEYsIwT;=mSa(s1AzX0HEIs3@-T?52#2i{JGM;&|$@ulNfp6Yy9>_h#{MC|#K#*Jik zdWa9;cw9d?{?yKwUkyCof5k-2cgc zlGvxJLi~Q?e<5Q?{9WMt0*`saHlg{`^ZVc5Ullrj{eegS z(KgOsJj3!ST-v59d>eZ{uIP{d+v{c>hD2b@>?P`jGwg zzz>k|pHx)LUr>CcV7h;fYvvYeCrSJ(;9;7_%R0p1LF8aJW#&jOG853L>2BWvrwzLWj0z;^bt_aO5B74Ud|qdG~x_L~M*+DG4o@?OB>{!eiW&0m@f&zHs6$j|G*)BcS- zUme6Zf;V%r_g~zD`4r-Z11}rDP<}7)E;8d!daLt+`k90>jHgWgshuxB6Zktv_Dg!Lcm_z}AQ&*XR< zcZ^-=`jwZm^AFGp`{Wnat18sb6?jL;AJwa3WUo>Gbl~k|#!t3SRo{t!1iWP}_$J|% zKflukgM8n?lYLjReU8BA$fXDkU&OiJJoxhKOHwT_Lq4TFf1bhD?j`Wb9 zf0N|DJMh*r_W#!Z&vxRM0*~=y9c>G>e~`V6Tfyez%whg~mSBOsl z9`|1ycN&B0SiDYr4rd=()FCwf@4(akfqJP(d^&aM0u{X-cYk~f{&knyNs|3p(G24U z{`0->{>hgBkL#EAZ_-Qs{wAqki}pUys{w>n+a?>_MK{Es>0JBNtZjICV1HMxH}0Z;oE@_Y-~ zUk1Dd#4p4)+93WS@R)z93mrd&DYd)*bORpqk3MO^N9g%|2k=8U9$CKk5Q_H)@Hl?~ zt&x3k96SCsxOjvovOS- z{2k!&{DO6Se@^v`9N=v@|La$0ROUMQ`4f1W|8j7h z+GV=_=U3|2ZF=SYLuZ)(1pa6wUJN|Ok98quDB`yPkMCd6cYOEBcMcF=20Xn#LKlVd z)-(S1{f|(7KJd8y(0{%x`bqxh0B;REwqZd%dKq%&I)U)x^Fn@U^-B#sZJyhig}lhu_qN{67NxU@m?QxX3pK;+1Dt z?q4{Eg`Qt*fT#N(`XiHpI%G* z&w;nEg?-}%wevq5czl0f)BGI+zBc~XO{yL52z+hEFBSM9wTS<5E&XqoT)X^BfOn~d z|GB`|X8h`2AU~?pLAG84kIyd{H$MMT zJ73;tQRVr$I!5+7*%<>o`j6M@!H4fXnD{i{>HRJ8)Qexq%n z_FaMR4)$^W*M|?~1-@2UsNcAymHQX2J=DXe5T6M=?jPhg$?9|v{|$KD|A@mm$fpo* zy{z)*_tYkYPvCfD&RUYKhS?{qd2NlLwpeMm_MxJ z+!xAk2cF_bRw(~i#(s4^%U&n{jaO90kJp9T4+0+jCw)Tsjli4A@UlKu^_}e903M$| z(Jr-B#nCnDtFp54=SR4IQ9Jefo1}i09FKL}dzAkM{LxN)2=KaQs_b^$i}N4%9*UzX+jx!aUFLY%w(3~fzRGJW_urb#Un}6v!GF}r zH}}|={Fkm}|NcNDu8r>;B3^GD`}@cE>}dlZzJ>T;;9bH0n)1hi$MY}l-9if4S68oB##H4+6d?*vGu#{zdK8siJ-}fv5e0@7|5Ni9ZOuG1y1nsjWKOviuX^hX79u zUmes>eG~ipgBZUqeE5z7@s_~j`y0x=(Dl0qcq`y3|3aVt#%`|Me{l^6_5T9!elq@3 z9;=fSzuA_`-ycCnX#63-_Xqo^uO`ngdx3Wc9`_C*bBO$}zm?s8`0g7RBNpNZ0B^_H zr#7}n)qhgodBEfR!L^5l+S%IQ|D=9%wz1=n^9J{SYX3XQUZH-Yx3lXHy@||F;8=`yb_9wK~Jxb@KmJE%|mk z*}s2|YB7i82WRH5g6vNP9@j5+#Mp&C|6K$g$Di^p)PAGP%J-M(gHYZRc-((+@8!#) z9g062cv`>M&bJW%6?l67=R0@M2JvmP*!>6dM{Rt3puSPSUnxek- zc31xXybvA4I|7gAU#zRaN9g&b5cuA}<8v?Op6?tW`)&5H`*%(G5x`r6eY8t^2z;%! zko`TtdRCKDP1ABk@atr~L!jveYF{w>E--uUVuzRQ8i@#D+N+7ARC$FHXIX9MsS9FKbW`au5Q0iK>8 zW&OhMRTbhJA7tNOQvOI*#o{&M-GC?i=sVrV`10#z?DLIX*8W4zKFvQo!|^HPf3rjE z`y+~*^i-#V_-No|<0n0Q`Gdgskr{u|%a{KoV;@<*IV3w>4_7|_pzlKckK%ar7jsAF z0IXM4$bJFv10jB_BP-PZ`bR2%e;Mrwy??s_Zw>Zo+=be|4?K>aCfKgY^MigiyMJf_ zkMEC#+8+-5aL)glblclTiB~fT#TnS)uc%ZBC_qzy-%I2Hq6>$N7Wyh5Ek) z`2N7-`x7ie=Wh}41AxbU4|NEQ-}fl{{HXyfU*DnYzx!`C@OXYj9t&R`wElFDvF~qj z?obXZ6jk#F@eaUa{-|CJ_U~otp9Fkw;A^`6@;RR37dn0ujBeY!jyp#Hmn$NdNMW)2@}uTBm1tAC2Ue`5dTm;|1M_$k2S{wn~jut5A7;D^ZY zbp+b)lgF+Z zF9AQO7WVbe|L^=28ow{_7(cEjoI672PdV^?IsY+sT9`; zxr46%+TRL1o_~~}t$_d?ls){2o`>^8@Jv7kCxw zzXf>vTG)RJJl%iz#*Pk>{eD*~_y3yk8-SY)79xn8^c`2g=NW1rXLkr}_!z}IH|D&MHQfAftUeWdu^fXDk!P4mA6_}a{W!<)66 z|IxtP*24cIzz?YfuTuEG^H1pbCjwua`CkZpZT1i2TeXWn7I<8LIG=>fA)0?Bz}Loq z+uN1r@0!g2rNGnvK|b*rL+ab*4txF*55|Kj5R3f3I&|qjpMW#xm3?(!v zniCon#c$o6wZ8WAydKWU?~nKWe5{Ytb=JM^>$>l?_S$O?XP<-QzZCJ|{tlx>Amg_j@nQZzol!2?R)FUbAI_f%pHU4Ge{2=~_%T$z4dRpi7h*FTKki?A=o2G_ zYaS{&~dLLHUz9A0uSsL;SmOd>A(v17iQ34Dp*; z`(ynB4zV-J_e6Xpls}{6Ms!J>Sj0C#e6Vw&7qj!9?+rcwF^J3Pwue|GzA54xqxcXP z<`1*;?*!uOA^uR~S0esw#E1O{<`0>N=^KYPU2#oK=<`JX|2vj0O&qRVLfDhhun z@rB;~^ZJF^_$v^9;UDxr1@U40NLmc;=}p}b&g*J z{8t;{zeW7{h(7|g!|{vJLijSxKh_Us@`v*!D0>he#oc)nBi+iv5{v3n@VF2g6-oSO z$PfBI95q7!865+{pV&g5|8V?)&)<<2Lxu3I5PuGePv$SN|4xMXg&@8nh5tJqX(#+_ z#Mec9Vkdc!`hOwe4y+3I7=4 zYvTN2{25&X2>%)48{+(79~{kOe6#oT@dFxcL(pKPkoX4?AL5V1Bu3{D;ddcEng1X` z=JD@xAbh0``uM|k0~@h3%J)HhZ9M)Eo7wr7f%qzjPvS8fza8=CV?M-ZcKa!P_~-aD zJAT^`pB%p+cV_2*7UFB8{2ATu{~o8$h!6MQ!49#x;SB?YjI-g#AL9o$X8Rw8_+ZpUj`3^nVZH!|@X|N1+$9`F9~ctpCt= zm;<1}NFm$LsPo756C*t0L-?VHKM%!+Ice*Oxvpzo96 z4FiS5UxWBCe+Y%y`F95KwQ>HS!RQH&njuAMzs*AD$l`YJ8n9EG%2__(PwV-G0{*AI=|O?8!0s zC&TrBn8^6`Aig8!3nDK@=KFeU81WZlzB1x68@~(j&2j!ixqq|l`#-lIqvtUs|5U_>?FZc+ zO8#FE-xc$vL4?6V;;%#_rj7eQl>PTA;;+K-Wf+VNZX~`EE9>C?12##D9qPX-gue^% zN&KO#AH#;R{_peSq4eJk@wHL^VeNryAClLva)&nJmxTC6e=z>th)?=2`@5i&b`sx? z?a%nPDg3Dv{olPM@ug@#;=}x5cKuqP)Pr;BEBQee<J|hgLUxvNf@$e@Q1-d#xDl(;rL7HFb5ea#J>vhXCgiaBEkB@ z?EK*w`6GWuuU#NN65k#1tx)`-j$a<)n;||NH+eyr!9wEC7{xmH`6={&DChrvh_8yr zZz%i>#8*RnIQQGkVD8{X@)zP{9lU=qRQ{4bXNDDdPW0{Ak37>sOLLv)jMzU-^^$kc{(xAsIgv z-apGf2=U?ipXAT%^;ZSr8z4U9y_qESUrAH!#C76$*1^y380|NaAbfAchw&dO|25*n z_8%%=Mu7Ey&)-3AjOvj54CnG^ome`fgsh!5xAM333| zQ;hiV{3gVO^@G{{XPF@V{A;NEYlsi?pYWOO|EP(qEXy$;whN=@fMmS(A-*vsKC_=c zH6lK&-$Tt`U+72wA%8{-$^SUwllY8s!H@8(De;H0{hcPU4&J{a+l}Dwav||c5&uv2 ze-UB&`5#$7e;1dullZQPPu4H!KcmM`!oP<2aQy)N1{<^c&uEb!@gX;6$8QPsV>J{B*>3q>MjkFj7eW`9=RZ|Cn7r{Slw6 zpNzyMJ|uoQ;=54BpV{?GU5s_``ESr8=fEV!uaLxFkNCEf_`l*%+X%l1@g4twFDuSE zc>kKrJ7)X84e?h};xoJbst_MO|0eMXQv3R|_oV-V5`Q-TJrG~_58_`&e0cr>@`2n* zUO&s3Y9oG)h;N7EuOddOpzISf*AjULp2lE9f-dI#~%v67V+W!3&bDF z`LDv1ALkE4>3WU|`RmA_PzUNi-V;~dsjMuXnD0)E|G}Y}iR)Fwx5oUT zjQ?<{ALBQa_%4X=^ata2Oq!KtBj$UMPEkAhAMc6lNSQyoep-b1aQ_+RpAQlJkC;?5 zaXo|h3lM*(=P!+j51;=Hb^fc!($61Z-6T0t^Zc*(#5WA_Vf`E`zXzyp{a2p;WB*qnNiom?;u?bZaQq%>{C9{?*59G5 zpI&l5=HF1(&pU|!C-*N#%CoYpLH&oh1M3f?=fGtAHX#0=^#2*+JK^|4S-)p1{D?o4 z{38(`&fj7EAbnzB`uxxLE#i~=AB^yb4~ZqB$U6A_HK@aj(S4ZkZ4rMi%AeGU{_l|Z z-$#5n|AG78%oM_xnnAyQB3u#j<~KnNM3(SxB0fC-1$Nkn$H5y03gM4e zqK_ZUdw3E1?<9zy72>1MJqO1h#t<|ZDTKcl^9c{;AtQzGa}XcqFL0O{L&E2t`Q!W- zK0|{SBZcq{5FgeL^7#WJT<{_MT*RM+_z)L;4##jIeC=7REE^D?j32?@2@!rO;=}nH z;Spq%KVtTe`_GJSJJ2Tay%C?>zX3j@+mP_@AU>SGfF@kOGJE}}Fo(`3dd$Y(iTLpO z59B_S>*oiE57!?s?j#5F_P2%jPEetrzc4fQAWrzMh!5wFfcEZm`e7JrC7k>02cBucV5IoM9hiv=4+o7xAJ0 zF!x~_5<7bP%R>B)Aie_PLu~l$f~*6-B%?;c??C)zh!1r}a|dn0H`b)DUtohd#Ha@0 zpG16EKY%+FehK31BR<3hKBI-iA2;{U?tj}LzBY;v=T4wWbbprz@k>U0a{Ub3pV312 zO^6Tk2l_q~zPJ{B{e-y8j3J5di1?5{@QDrH|E>_Zby95e@1hMu_5_h$9#wjHfG~@BR*_@!iRN)kwW4t=+KXUzyS?L`#|_E zi2o<&zfp)!@@F(QI>cWW^BEm?hz*7Cw;(>8zc4y) z>Fgi;OvH!&4>kUKoImuN(YZ&>UqSDm>j%m2cS!p0f%tI#1+keK1Hz9(d?myu`!2CF z8owU#=OI2>zkkOg?Ie!WJo@-EGj~CQ@RuXL70w@QjBW$MFG76y{FhPQzw?)w|6~7S zbna90cS3x)euI33hmik4eb&M6Z$fNt5N5ED{?{TttRI91IWSTPf1&|>{*dt__TOm` zzlDeo=PxjKnc0U3e<$MW;_XLlzl#m+#J3Ld^)a6j9`PZ3=>gc}5BNkE-v6o)zq^PJ&(D$mGkOdnd~VZ!uD`_otJu&+{9OLUCwVZ+ z&qjP|{zR8i{s=Sr^&g4L?EO9|;4(Y@A{O-HAB;Qc!|!54JIT`#@!|RlxKN0lUiR+AU3n(uV($v^A~3KUw_1h^_%pYY)3}>UxfH%{rnw= z+D_t4TKrEwv;AL(_|)?UX8D;+jQC{#BYlAO-xb22V?!T5 zGH%4qD1Q&)ljF}&;+G-*N<9A{HnaQh9NQoFkD(9D&YwMq51-!xkD1S)$vC}2`~`>) zd86}Sh6~~Q+tKIGQ2AdGAJ*@o^39gf*WaP?BM=|HKM31?9K*f;F@LS?>EGXjZ3mw{ zlX>_%DKdV05g+FNQ1h?;L;iLL`urbi{9?q1fq;p#18de72@{^@nQU7++h6S#YiE1xfS&1_kaT$%$|RFBR<)G8Hr1LNc<$k zhu?o_+Q2CfM8F>bt>{9+dXXmzY*C{ZVzyN zze3nvCD;!Tc+b%b#;F{=pa8-+yuet2@g+hiR0O|Q=mq#1y`TVsUKM(Qy&Aos0D`?1 zy}~(|IpChclt+<_vz-z^B9Y6h`#5p1}eL z*M;aYGnk1hiT3n08jmt}(m5Z&93?aW* z-2N*Bzc}m%2yf3}jK`P&MpOVH{zZ(**#0wwrWEuC#`h}r1BAD!xDE(<83>_2c?cn& zJGdPX*7E{fry}@0Kz3*nqHA zjS%`%g|P-2Q2~Vgx)Ix(F}C7%DgwV9+kb}8^d9{I?7)72!25_0wnG;}XzGSP|3dKl zjO;KT-*7t>fzJv~|3YvbhV6iGzlH}PnE0?A5XMme<0OQ@6UOa;P#3}N61Xmj+kb}O zKLxh~g1#(5*e?|kLi-GiN(dqUS-3tMArwIHn}ZR)>jzD0xUP;-1B|Eu!hF}pb!HIa z=wRNj5d3tp-_H=@>!WsXS%Ceh2z*0ihk0d={VWlJ-3t2yLfsnI0bzWWB82gC!1Wcl z9T3JBzDo$a)z}UQ`MBZw&k+2{caW(FdR~|Z2>EVB2&Qf553CnKP{9Z~!MILEupU38VjPbU^e15y$Mz`* zpdFWwBecYIE8NZqLjRUx|DWL) z)b4`Y0U_QhTnB{yxZye@2z+ww@N zj1c@nupJQm4&eH)5b_GgenUYK#81V1K*%Qz;dq1(5JJ-<`13CWzhY#EJWFspAk?2A zg#MHvg!^_4xSbgU{YK1V1i`-v`9u5`jBS_?2>E2{Z|NnpRgYz2-h+F$R8-* z(I4PLP(W4)juGm^P<`8$`8)yJ1u;&r25N`-tb!2Ys3HWr2Ci!&ghEBQ zFQAXx4RHIf5Ofz{KR|f95Z3`APg9JG5Q4usMhk@KAIoC&2l}-P*Buc;o=ynIBHV=S zzSzDUAeUD#PCdpZgy7eT5XP?^V+Xc> z!u2kM(2p+|K?JtnNQA&24Wbx9hYQtVT*f1W^;H}ptoI5C!Cwg>_$ecV^BgT~*TwdE z2+=G2v z2=m|)LTE}ue;~h`2w`1)ju7rEHXwxly+;Uo9SEWP459r4YKM5Av41c2{~1C*zT)7C2hK+#{##ac}89^8iVeJ1agnmmSKk%1Dh&DZoJm&ohp}z{)4-o2#2%-OTupJO| zRT09t>tj132;*aj{eOnAUCdEC#I?X^iTweAzZlz>AcQ<@aQm+i^lUND4*OFPbnLO- za@-CGJV#uoB8;aq_FskDsR-?BvHe#F{qaD4;JOk0fq34S2MFg0M-YNv1h!KVOeb;s zY1|G7@y{Xzy*O#CYKQHcf_YalFBM}Nwr3%Pak`G{xd@>ELcH4;?_)b4=oe!9 zBZR?0AvyyHa(@x~$q{Rs#mA3=mr0D&ir?IIW_<90yciy;JEN!&gK<5YxD z06|v@A^6K6g!nUX`=8)6q_Yg`I$(4}2=P`RguI+_-38++gph|TZg)cn{q)3kFN_-z zqJJ#D=nstVPK1#6UWA~(4B82ffjO*dJJpv)biNtsUA^4rf^%#WcAIo|42Xqp# zJsIOAgy5fs@ft#idmYzrB7_16_FEY95W?~90YcDygs}u6vL6-v|tn>T`!Cw%eG(sJOaDHNp5dCAZM1Q0a zZbJxse~bYLA>qM6n$Z@{+*y zUm@s9Vt*-wP?yFigZWehlM=QALR@8B2L%2sTnB{uY+MI~yi~DW4Izx=1ifU0FrTj? z1ie&@X&BQHLcW=}o`nz!AdF`&#=8hXrw}2;d5G~b#wQ3NUKy@eAOzi4*j|kg3LyB^ zVQj#5K(MzUggjd@w&8X_u(u-w-42A1$0uCx!u8JxLFX&3e?tho@3=k;EhfNY$H;+^ z6Cvz+V-bS>IE0`hh!FS_F$y6Bz6h>QMhJcqxGst7(gUa7*j&^E32y?C{`>q495w&>JPlk2{C$3g{`n#=`p^&dm%q=? z(2t{kpP!-6hriFy&_Cb)`}_?3IP&-T8TvTg>D+^s0?v0Q_vy^-h(=O9*g_VSX9!@lYXYlSX6p@@A%+SwbQYA60LS2 z`So1>eKXi<_^sj!+1}f8KR;zJzo_C-ZJP;27tVP|p+#GHKe}P{a%YsmBx#P551Wne zOkO#^(0aiw+QTcsJzCP|^Gw98ChW7M1?wraib+V=~xW|T-IS{?hO z9(sTE{dv4uT+(^=SB^d~HB4xqpmSg`Y?6&lM4CSWi!n0eX(4=no zR`ahMrZG!-hT>i8>=6HNBgChvI$gJ?u@s*wQ@zurQF-!CWW$n9@5UM0B{WU*>49GU zDOGwmryWaVXWKiOq6^P}kV4x#?ck&tj>$e>C%fH~_~vz9Q@vR1_Op4-H%7&t2(dnX z_eSILsiWR5jA>wxc)}XFU{+`LnYcN&BJBIU0_<9CgZ5H%;TbhjXalkxZ(b`tVAJv6 ztAAe0wK?dskml1A?G~E9n`x82L1t{`;tE+Gue+=6@ZWPe5TnlP^~(N?;+4&=-gd8# z@FgTtbm3V$QfSqIrx&%4o#BujSfza;qitGf)J4xZopBN$EnHipzn~6OPQR%s1M_zNKi%wDH$`f=`HzI(?g>3-Gyocqsm3UEf;aNdaXyN7ib{@>s zi{RB3oU~py*o5uin$1@En{4>3#=0CBJx*KR)#&tdvjauF!X-U>3oCA{el}A*()0Na zsm79go*SFLQgq>-JSnueaMy=PCPINB{g&rA*nACC>elL8ybd>Zw5?QnZFn)u{=>MW zXznvYbGPlSHuE&Sn8SNH@;Fbah=%tG_lRvx^xrt4uRHKvCsJtKFSvIZKa8+%uMB-y zsyRXa%cfn==U4K|jVhSXJH>UPIqTh{Emwr|xj4*gLWZTie-@!}BU?l* z*SmNzN8yHJaWubgZ)V)xJ4&c2bE?BmiY|QDj1-!ms=GuV`&f}$`JQU8Vy&}$`Hcqe z14j8>7VDg$eypb}>iJ4<`#t+l3-K4+5Z~sN+u73Be6CbXd&?1_EiZ*18#uz%qncB8I0b}^-4rr#K}u|uM4?OD zYv&zt`mKJ^UxfMDd#6%#;TdC6XrAp3lFjZ0Pje{o8<9+4T^H(zh5v%YA@v;LlSJ6ZXbDp|4K zoX>qw8h*oqtn2U{Fj8nruQGe?>}JvDZolZH&uOL>-l5v_Vg4G6=4VezII70hrW*vc zF8>%_#QSt>eu1JzF)eGP=-2J1mv0aXfB9lWa34jN`a6R(lU9CzE9IpLYlro!R&#h>h+vdw$JcYLLO(3LAP(@!tyH=foYpd@ze)lLz+$jv1(hot-f>EHXfNRipAeL z&BWrpDqnd@M)iF5cBmS7X)y<{|xpZo!34y6c@FX?~Llc>)+|Mt~;VeIJHS?o_XOe zqr8GK!|nD21$<vsj4he+LcF0*W0#kRVzBNG$YiC^Ol)JRT@a+9_ zhs{e$=LRZIpy&!wb)9;Wa<6~8l=E3qJibd_((1*t?J}9)R>-`yN_%T8xPVPxQ)bbn z@C9!lb4xEznChkaYG&AHy+%!`ITpFEO-3tI*M~_|-K%HYCTE;pvAd3YoiSJ4llceh zzQ(@N-2X+$GCaI$;B4hvLk*+T4NtoHKN{~SI(lk)`IvpCtm|!9N{deDHg*NCqU1~c ze|Bgk#rn$c8&B<~1znBp%1Vt2Q0d#>W$V9i{RTnBOUt&i#P^oIc=mAED)vdAzlDly z$rW?kBky5T>3zqcJ*~Ub7k=Z0%m?_akQCay%0-jE?Ct!zIdj|t?h(^7^sW`RTxdNQ z{_uP9EGwOYJ&hIbzNwyZ)oR)o{bX%|xtrT6E9<&lhA9`UU9-$WB92pZ;kOk?q0L`x zA?C0^$bQ7p&F9a)dUH#2YbS-cH;(_i;MNE*6&j4*1vi+R($dId4l}GG4XFMJ9|2Z zol!^;y8h0)z;k3v(u#`?p6leYUi0DKeFn);z*Xu6dcR zI9R*Pf|9Q|RkuTCLqw~fUT4|siZ?u}o6UQhnj^mMl-+mv@HUOamW@>%?fp-S+>n&Q&0e{Xuc{7JdSqBu8Br`$zT z)C^^ZSD!OFUH#OIqC17ED_0fs=|)~*KKrr>^DaE9w_CZci^< zrszshb@%aFKpUDN!$a>)u>)Ui4Ey-u(>M=B-Y;yA{T3t$nd^+{2IRlJnnA zX==G$vF_WVs8_p+*SY>U(YdEHJYLe-^C<_*3oflywI|O?S0j? zwn=$+4R)`)Cy+8iG24YL_JlG=w3l#mdXjxb;6ugBLZ&b4_e}6kkF{ACnRQgFXi~qg zfe`h0F`bAaq@7hgJ;&(OS2>Ba8FH~<8khB|lOoqE8ghh7Tx#Z8UT?Gf$RmMkNlPzH zkTyNiSQtFw+4FA}^in z+Rz^T!6IkkiQ9*+d8cttThV=E)R^Sx6{VHV>WPlD7k2~hI}A^>nImWSwHtnmkm$m9 zwn(8#mdb`~)T?HbFkanRy&3Fl`$tw0*-u~@N4vroh)+6hoQVz5IEm8%0-#&|9ms@0J^RVW4&Vpol-Ra{}{n|oaY_^+JR%yF9WonG#i3WsQw)bkBpHShgscbc>n!cF_pR zILxH#ezkT!P}-%kZAeDA?E z6OX4KE#NwE^?1_=fv0yKbUi3=NL{UR{_X6t#~bH1_#`Ypuw$J4y|4BneFv=Gs@YE+ zUdt|5RC7P%N;h@Cm`&An+A&U3tTIu@ZPek_davIbZcV(=+84WV|GCvin`4tM`_2(8 z(T-SrLsH=Rg4*+*yg|;(Z#~`5(Uw?peO_9Ifz?||zUViy|5s>6f9f(r zXVf@~uFC&Z(SDJad}#hCCn;l&^C^KTQ|%`fKAPe-@q85TY-xj__d#tDrr#?HN5m`n ze)^WNEiCbR?I*3ud*{j@xG3gIw(g(05$?y4@l~bjmdGSDw%)uljn7VW;6nN71NL{v z_v*?#FxoV|!ZkvE68D^W*IvK(zBF;OJ%`ujr-E~3!fq>$bhoLyX5OU6>kvu3AEids zogrOOeE)#T7?C{I<`TUb@d2K9xKa%8(C(tBCv^)uR2w?_{#QVacwi(*I`riJYCmHn-@FgIA)rSF`r~p8ML0; z%XfCAoqhPQ)81#FU!T#tvuV$>cjHfGzGl~+zSqGyoDaThLdHRZsym-|*xbUe`#U~* zMvYqWkX=}I4gbrwgWoo(T0N1uIa4c2YB~G-npvw(sEt|Qn9o^zm@Beqz|`+er)W*S z!N}MtG8A3(oAduGH1D>Xm7K?_Qm)L(G!U;BjGrSK>K0=8H9+C(Nw34(RX5#@E2ydM zP+ELiXNSQV9fX^V=kH(%u&-xHJR z{>a-YB~IW;pH$ilOKFeK>Y1JqhYci;mY2UYIJ135gn8PzG{GZxwOL+qYV6K68A;LA zqU!FyblTcNtt8Whq5hkE*M%oXz#5fT7{+uLmyPdJvL!{DGP4 z+VMK`>NGR*nqxeSl2^MLcR0D5oAx(wn>&n}lcsMHV6)|=O7Qtj9%|pq;I~J~{GCVD zb*~=y#JXH($K{YQPda4tZ6=;iuDYPFBWa=XuJ-8aTC?E=#J|3EZ*O;qs(=R!$+n>Bvn)> z40Ol2i}$$eu%#A`FK$~BVZnKDW6NQ&?P>h-U9qy7H>l&FPt}!B>R%PWCd$8ftg5cp z1XI^(7o8-w20R_r$92Yii5VAH@J0W)1YNl^SMG~P7lc(NWcRtA|zT{&R zb=@(b>h2nNIsYu5<>q<~jxnj%0`y~#Y2Qq|w#@s@Zf?8&yB{}lUNz~7;@RcV^SCKt zzPx(Hxv737qW5+siSDTXpc$twNEwF(RNb7HYOV{F+}&(%uSxCi{}Ao?I8=tyMzrTn zQvC!+QI*ld1l^CU*jy1OL&iA*Xq)x@^V@%5%RoRCvd6UpM8pg?1--jilRVoO#JjHi&XUpxjr|l|W2)|JnV6P9o%n|8RSH&%UW@9L z*aZvEGP(Em`1AbeXE~o_j-E)5dAP6UhFYzaj*;!ru{@5mo@>7~t!}u`@JzEJMwFtv zkg98AoUK1b@6vAdSk8Q#&a*5j8E0+|-~G1N*ZQ8$KCYn3kgcx!#_tZ2+gK#=-SN@h z(_PcnTV2n&Q>o?{Y4ngkj{co6`uUj&Rd)q@U93mC{=p4InEr)=2=)0^zC-|g!hQxp44E%jE4(W1HEj41hgI-QTcl~#?W*=-$MnE#W3|uP*&S?G6zan5=2>kX@pbemFIkhZ z9xU4>PF?>NdYIQX@aBA{jP6*|Mw!L)Grr`Er|2%C>Q0&!DO8xOv`zZ~@7CPYA7$St zsPXp>6Ex2ns4P~F%W;`;U}u0e|AhMcD@XgCaniCD-|1`@_(+h=_Wb1ds&R_m6kT(w zZcAo4O?ufWu{3e(YO!YvT-0P_f=+!roU>NNrQ?DAyljqF8U5n=7cw}k*A|Dmy*YUA z*yR_M(~Q-h+-$o1WLFygP9q20tG1x(1{OE&S*Ltx>{1JTyKlFgD=hYZ?Ua%oxujiR z_)Ub;TP63-ucNO7wJc4!xbLL(1e3R3J|+j(ZxYX#Ft2W*qV&1hgZZ)y>RM8DA2wc4 zSUG3^ajV_0O}ZR?kF?Kcd%)$tVoR*f_+WKCsa=s$a<;q72EIhbsWmt&FE!6w&vox1 zt48Jv&FX}yqF3nmCs{alB26o*uIs6JQ>GpDUh}9Wp^S6q)-f^{9(A>dUC`V<{l&az zu3v-_w6ErL`b-t<=QeM#_#zSM#+`HhOD&qO;DaK7-Fo;6kX{*6atUOL=5 z)iG=HRo+YSrCBv+HC9|uzP;sEgr(3WF~8(`k*h^LMM)7YChK*1wKcL7#CeXr6ZvRs z!)JN4H=32MI}FBmF;!PW+e2`(y|7sQ5}U+@FGbCdG#dM)q@F*?x~=>9Tpee#+8ta* zaZ{eM`m8OCUU`DOIH&S?T)_Tt@mt=Z0+CvA#|CwG4*s6q5~^+?n?mB)nh8lP_cr=T z9E=;QeNoP_f5W$#ZQ|Lq2eF~*X|1M*UOh27?7Z~j)hAuy0xOC*{r9`RQ*J4lz-=*W z^bUHygStzpx`}RA$454V3>>l0R{R{^KKt^A{;>Q6^`wFnO_lnHc2k9*ZZYxT` zE52cdZ0T+vjQPj-42+$jqqS*9Lea3~OP-1^kKf((OqdwQ>w7&hP%d9_Z#ZpJ9B2RiYr0NPYdyqsuTC1CYba}OEPIDH zQTd9Bps@JM&jW|v74__xbM{~)Mc0n18=9|hKYDmnzw{^Zvcr#U9LA*0Fq^06K|H=UVq(Cm22?^5b zFGp9Id2>7Ny%{s8OB);qd#di2Y5vFgQs(e`@bz}VshX7yM&EWl%MLe;^%V^> zz1q&zR$_iY|9*Lx|B<`mt3H@DDb2Lb>s>YLsYKqu=64ib2dXYdt=$K~8I5P-y&FdQ z6@1A%e|&1TVb4cVb{?+7{c3#Mlry)c%}sijFngu^NU`1LSt@6wjau1oqN=;+L~u_0 zu?VcY6KO7|>LwJ#D0O}lH@m$%op(xh|J}QJMbGlujWqlZJ1rMIEWGB%?CRMHbslG9 z`?n~o?iu@az$eo}d|HT{P5p(M(uNHBZ|S4G80kAwb+b))PEzXC+m)aU$FH9cL7>Ua_ja+U0UE{;J2F$xk{m z5)_LPCpq7EE7y@DJVE3dd#~`)6Q_FX?G_$9@uk{i_6wKdnCO|u1Zwoq!xZE^)rqS6 zO`rFk<3qa{k4N0NdFOe!uDM%Aft6R$@`vxf^+>Ru+mNH3`li60Lo?*a+u3pkWl;nB zY*P~klW)47cRnrd z5p4_=S-;j;ob#YtPM-JNjFH-F#~%0hUe=qa_CaDy&)HD-rK>5rE>zu^ua-0SizMF) zcX0Rr?3dzV>GyKtJEwkb^W_{{H0EDcl2}%Ezx=2_-^zn>*(Y;ipH-~Sd^WC)gSBUM z?fxZkY1HfPRaD*A>>=)}D!3#QFYLN7cXm?c-P#e=w9ASq$xmjDdlhs&E^0< zygprVB{$@fWajHRuiv#P=5loxsR##fZnF98_<2M3jx~J-Pea&tj56>ISB3uzfNVEc zs;=*T|2##7b0Jnm#q72^g)+6d4>G4MT=l%(T6Nm3lbPi4 zahi$GTewa8DmA3}R4uPl@1L!q>ehs^4un0j%j^t2=d|eDtNOFES7$}EIy(pT+>|wv zu}fFD)p=y;#LI`Ls^4tonwz%H<^J&MQkmQ`N9D=fYMM`}&sD6Y>W1+NxVC*N&+nIz zowPRln9+92ur;?Am#`EGD0TWa+(!a8TXXi;w-9=6ryI8W!my{+-z zrw!cOVtXn5%B|+oeUlF8(6ne-6Ko5q^VglK8@oN}8tbCl-ydJnn%d!C@$S6W7`F83 zEZYX;7oOocwXn3R?sPz!__);XhPruUJ(Lqa#6CHf!y%mEvZy@eeocltC0`G!?)1*@ zm5I|HO=rFTIsE#GD1(IjR|XEkQ>#k{Qk=Yu=bI|5yjD?ie8HRH>z5eTTMF0v)}3z6 zls`PictMYjv|88zMRy%lcZx~-7VqM)6|=3x_B?LT;PtyRW*O~*aMZ`I9JhuaN#CNq z^stC^m1`MGf9VvpzQ}p@-XR{-?Ev)QS(!H8n+jf0=NM-xz z<0<>UF3LTtDRcIdY}VYsap~0SZZE2C>(Q?vb0ZtYrjC7!OV|ERI$WlmOBexYFwq{yMd}(zv!(00<~@T zK1ImdXQ(;IS<2>$&Re3~p1$qgyt%zET2`;l8*|GOPcz`TR(@!#OK;Yn3}^#cGec(Vx4LW=g2e>za1Ry?2d*4Rw9+q3Ygm zwr~?Gs7Y`fo4Gh>X?DCvZ(wSeK zi2N9se*QAe?M<@<_4;iSRo5`}B+JV&ttMq5d+)9KrYZN%P|06Oh*PLIS~}TCiEmoU zm8!-m!FKBYY5u(XnpxS-H7ppf-G2I#p@HD#$SrN~f8CIEax+yo#?jwW(9x!l=g4U3 z536ZHBNAd~cvM<&btk-X7mN~OFO1Cx`aW7QM69v+k4F-z>}5|_L*o7Inf zCsFg=Le;%GPOsWJLd++oY0{04N4MRasOe_AXnjpNZSl@wd3Oa=4a2?+FVO2R$?(a_ zjY+mxK2<2ou}9}d`}G~EQFmR7Ur_ShO4YS|Sf!m>C|a^4@$my z&*N!tIbtRIGC#NW&gvJtntB%1-Q5zVBeW*_Tbq(=hGlb4J16Z^2}ReJs(Ul#+VGT5 zClBA#^*A6c`}x884+kE1nBE?{ho|w#som3F`P?}Bq<6;qOPF)ZovG**{aIU56z3N^__P;8X7aBlt#(dkE%Pn;eg?#GvVj@rkp#jr{sFn zbY!toHwRbLM4`TvPvw=pvTXIUM@_WRT|ey8WbrqLo!J!x-c39=nm6zLO)+21qArT= zcB-!a0<*cN(k{j1X><34R;+&ff_s?Vmp7YNh@XDd5w?XbN(yL~wTt9lvWo6m?Jv%t(bX*_s zdc5^p`4_I1RDr~0dWVGedQIOG)9m#6OYFI%m+N=$dy+77#70qyF8Q4|kf-fbI{7hS z;h5U*84<}{-)<)9Zl5_)I5K(Rl6&>hPM4Eyjv9Aogjz{Ehx`&meHYw8j`jzgdGo@eU_kgN_*awCv1`z$~Q@K<~AvP z(ta;V%egMN=7<5$c`*S6{T&I4pWd!trKGGYj;~zrxit8$-DCID^F-Y^z1!s^7O(HCz2m8I+rKB z(st6seNJbLM-Dhk!f$Mm^=uDS*ZAQ0;)v{yoHxq*8{dyM4G%mp>_V=y!h3C-Cq7ww zMaHk-;0jMX!DV)@Tj+}C_6qJ=qyC)^)6FxFJe4oa3BE(WzeCSAh^o6L`}>7PdCk5# z=3{HPRZm!26h*aZ9M(#Y4(O0gjTxUK?!RxxrajT#T!M-B4}H*c$ zg%TYv5-Z>;hz5lzHs+;-vSV((ZwX#H_eAnGWQ|9E|KRxdX zXT9u6-kILooFmpoy6oA!yr+BQoLY^m`;-fI+6kC#H)B_~NvM`kb`O}yzB?@Qt^QrYaq4j>gsQ8S@c3vHO{Z4yqf7aN zm+QJVIF*z|cr6RNZpBvKLo--1CLqx}(PB#!demZ0Xk!xklyt)EMR4IeI;Eeua1P<_o&5j$BqK zXkr!8kg~egzfEucmyu8P63_4AAH3eA-z#8qAk|-zbc# z+m>r5VtI7^d)A^)>Z(2q8jhMYd0%RY;7O{yuxWTs$ec?fETYX^B!y$Yyjad7HA-ge z*v6-6Bg6}KnF;IaAAGMos7qtni8K#VbtA%dau#hFwdw2qfcFyoYWsFqHx)dt5WQCA zQxx~|_OjWZ8;mNlQiJx4e0-QU>T;C({e9voMYTQFUoc z;%Tc}M~qaHvuzMiOe}A=ce#44M4{+>)rZ$@IaOR%f&o689}X+7E9@$(pEfNnlxOw6 z;W-9(JEt$=Pm$16!MdVI^DtGn((rqx_Eq>!G7lwv$gc+#Aqy_dxWZ+`mR3dR4uR2 zX=}H1mE?`K7uDxX2)CIsQ_eq;o7_zO4VY`R<9? zfuSqeUQWH#fAgH??hgOxhkLKEWv4D|-ZQR%e*H$juN+R*b@N@QJB~J0ckIs5YTNY7 z+1~i)*y(PNkg)qylDT)FtI#^DezIr6YlVt+uSXtT#b*DxT6Q6;VxL)Si%E;HOOz@- z-@*H|5meo!Dp|c{+S$^z1MVxogc;2}XXkQ&C-9(U*j3ue4&kU{nhvu4yxT)y-@iO*MAyv6N2dpCR?b?uc3E}V<*LqNyEURp13fji27|iv`@fM? zT`y@}hbLUtkM-}HOrF{3&adfx@w8R^Jq?!POpm=?+5J&$GUHFjKj4bo_P*hrm;YsN z_3`p;BED}AtTIK9LafiCm1J7FoFKf7%50i=MGI_ZEszHH=t#~~}_XJf}+*{H2q+(K1(*Akk zq6%-1ip+ZXC45z*j(Xs6+4eDCp2XUZ3%@YhU$4El{E2n*2%UXjoK~_+`Pi=rEXuN} zTS>qF%P}~zg(+^lfa;zfh`((k99r0O2D+q&0NV(gU_XE(L+aoP98 z9rs%7IUw{Ulf!md$@ATnwt>Y`%Rlx6e7&(exx0*JIb-fkx9MDp++(>Gn8oGq5*pN{ z->;6Q>MqdXG@K!)Vt0Ld|G7tF2HqCTZ46wv+nhgOMQmPvoI>`R`}tX);<)>d zO7rZ^dvmYMPuyYclRFt-gs)eUt{fWHtHU*SX?>SR(9 z|8U^t31OYPudh7myz#<6dBiJPqK0EiVKT3HxA;SumG*p}R`0|4f^G~|*YSG$zK%j4 zx$eoQxdL8(yLD>JjXitb^1S8MS+ln`*7~wlbmH>N(KB5p7S^8HTrsaOq_+P|@`|pI zx^ec^_La-&*T?ARzma|{Ro7->gRGQsOw7B+vu*BU#fp`0=Vy<*t#oQu>h86R@2$#} z+mPqTk$Eq3w@2W+8=5<|yxe;{>2@dIrrrn6qvbfylKaY_dzPxp_vXI&J{Ie4l?wtJ z_IGpMXrD8l&$M=zN!Q0qEWAkq@(LDhZ$Df1Y;JD8x0!uYgw*z3sij{dzWAS%-fy5H z+)Q78=?CRFs%~#mn6T3R!d)>uM*H2Ji$1Pvn0qExR_3*$Kwxxby`=jdFSp4lTb?d_ zxlVHZ@v@1r_w16qwd7}cv-!%ma9R1%uLE`t{yxDus&4h|oYljx`xUTsUy~h?H+gB- z+(|YfEw!J6?dHr2>@0;S>u%SLJnY#-KdzU3Cbqqfvk>h*j) zRabpLlf7E7?1P)-o{dL%*DfAqRvdfs?zx06b4hkh?SY+3w9PMFpKe?BY}1(uGmQO5 z9*=Kvnmo*TG;Q&&`Qk1D;)C;ne*T+4)xENYyWpLZ(#xGq_j}&&RN?2HH+|8G)q&R> z&IhTkzufxJ^2_YcH_e_rID1S>@7c5|DaX@8pWKS_nRhQYdzOZN@N0_hd8)2N)YbD! z9bfLOFfo^w+r7-h^Q0-yowcKCi8rp%cmd}dAYWBk@oR@=@aTh zlp1oC6`T5JU3_wA#;DxNxtDCtO-#_BiH<4Hq~52!NYxE|o8I|K>Z8EAi{)=}xom2# zDDz6UCCyDdB{13lE`QCzt>fQTU6i@me$DXpQ%})W*3mjrYyI`+c6d~&X<7>|d_>7N zk*eF=;Qlsyj&14LD?S&y<$^2~gcFVQLv~slYv!-L5ZK)I-qX~l0zJy-qqs<9SJSSO zy85%{Zu)+F?)a5^?--0woKDeAqUt)|=3UXMc246|(VMfI3bNI1f6Pc#w^ zYF$C>fyutY%_8sECXL`VZwq<3SaeVH$QuRCT-%o#$r)n9cBWd; zJ8b4?35sqCRag3+!#Ja^5h4EE^#MneH_Pn599y)>{#=^+X{+@j2?1=vl?jz&n~#}I zD_e5q`{ROn?k~%l&kI_#I`8!s$W`m6ALr@w_Yzgt^X!xxCDBzAtGLYe1*V3xj_7;L57` z0tHT|bV{dmBOpjhcXu~PhoqErhlF%XH%Le$(%m5~-5tVxx&OsobN2`Mt<9V{XU^U; zheu!@JSSEOx&#O7I&Krv)^yG!ND_3h=!rUJ5_@0i(@THY*XGZ4-C^&5pxw8NZ|11Oww+4Z8Sa^#69= zD=jqqmWT?~Vz`1a+^XW^cf_@ZA@;zzakvP+^?lIrW!d*x4Y${c)V5`pQ`GKAsFblS zi=)u1wE)Mr26U6tz0|~T?cR#ne(z<$nu&{mr@&xIF?d&BLxPi-ewuKYJyc`2M$S^> zLtctQ)|6&0 zCuVG8B@JyD>=|ox*KG(bjjsy?f~K`nQ`*)G>!PUtsjEci6jH}Ho_7YnEBt(8FDla~ zvL=A{zdGxG*R39Od1LBCh1IrK_D9`GsU~7WUpshzipQXHE$FO)z-G*JBGp{8-AOR{ z3sLmNjF+{+_rX5}ZMWmhN#Gl2j;N^q^KZbv^feklcdY?O zqEF=mdsrmrSIDd(SdAp8CyTIKwH{>XRM&Ww?Mybo@2DtoqXv%ugnD3*3HJl2q6M`j zVwh~$OmPeozW%Sy`rkM-f-b6sU#xz5$EbU}4m+(yt}` z3Q(+i9+6+%&HpouAJGq=o)C$FF@>4@+c>;tZgA$c7#vilO%2xF6pB%uxMl8`p^dUVOl`y)PJ8#C&E$^f5E8n-~a34ezn#@ z8ZcJqC`R-l$=R7s9NP=!k32lQUv|8KC!N-j7cd`wg6;)+H6HRJ0or(Vd~3to<+BlN zXBZbYi=Yo`J+y&1>L+kC6eypX!`XVq`Et)PpX zuzhMJFmvXg?M_a$I<)Vde=@kwH;!v2u?h7@0xFm6y}aOwlFNJH5dCrD4XICyzUf%8 zklGvPX})MgYAdWjzHOjOl6~FJYLHGOS>7}>#S6W2O@A^Dl}Spxiu_gt!DTcq`wyoQ zMNwY!&pL$G)!^elE=apdp((`(Uz8vuYr}S*e*^yIzGw$sJ^PN29cadFc~WXZvn<`{ z!5WjNk+jt~o*%@I?Z!_B-|ZHO%8LpO{_B=#&!VCA%8`WYm?99n>}vijKv$n~2)G@f zYu?-I*+6z|7O5u!b9u$qaDC1wQ?gh2hE`NhQ)^G&q_Sy}ElV%}X3CNe>Qn537_S=x zJ?CXmI$N}o;fIAvA;9ef-8YJneA_uLB1k1ljtRM>>VDYjmK=w__=W`6E^q&^;ml(pF_M%R{@6Bap+i%fpz$ zl^s(_iECos>kGl@`g^CqD7$yG<#hH!e0bk^>bGEkDKF*$WM%!9h80vX(f{hV|J}#k zp!?P0$9i-iiJ;R`sm&$HYva-0%A=@*j#PGKSZGIA36rKryMf7Uw$C)t+Zh+{g)y)y zXZj?$lLl+L{X@Q9N#p|g_JA(GA5#!lLz(wm4Vn2XAo8wCsU>?NZGo=)ytzg#je3q;XoT>8{hj}f zLoeu>atYYnHVt$Bx(yd8gXK>z$M*9};pa!M=a(}xvR@xS5KHgZCfL*p!`B9 z^8T#K!F7}{i6w)4_uJ%*+u)JCBm>^%yV_{d@+K89iGhWe3McHhy;i5C~kfTiY*+@&nH52um$J@uanv}w+ z_o#wq$7t-bbPsR`Ko@2_P4ma{_!gQ~qp6;l`Gg>I^Mz_P?c~?h|Xs z2B|)lrq2qY!_c)UP_@Q|7!ZL);&_UcZlM&N^ zHyOlAuV|iV?q!5&O4d%d+wbT{N1Et0#+-siWi?=9kx_u9Y6iwlJI}? zVF+}UolU)*(Ctgftbe>Fd&})#OCq23Pm22OD=4aP{n3h?`qpp4_0i_lAw-h-A*h8v z0_S*Ea`6~8qbN-E8&MoEfP9BRm#u#|Owa5Tm&9aH*iYInXDndGc*?ad>c9Uyz|w?R zl^~hE@u1AwjRkMIGsHV_EyLV=%jxtjume@P?$g_}*n7Yo0o{s>i9GoM$N56K>Pr7S zM`4POht-KvTJL1W>8A{e3+gP76;eF1PZLl-xOFRVuYK8V+%~pNY`hQ9x3)9B4bTJJ zQP9IG*W7iYB{!vk>Ne++b+xl3$+`@y|>Wr2a1DHnng^(D#m_5A{jW2^M=TLVM) zqH$qf7rV=>a^e&I(Dgj~#I4eDPxI(Buh!(Csiq+_Am4G&y*fU~Br7#>xYb&O5%vC! z<=G=We5cnn4;%HazfzQ*izH#Psb`fn(zm)bdSA1(5X9I!Z{rXp-~A|WPXQ=VbdZX*ovTr!tl6$;d}Gz zSynzVv7w*ihuT#iIs@(`=mv{woXV+3#_653K-1X7KEWpaDxt&dfK*Xii5-Qw;}di8=t=u8N@e>s2Uh3%XOJM`A}0e2R3(cRd|P83(MgOhGLXN%v_ zLm)0zg;sqMoQpL_#MaM?VZW;5W-H*(`aGbnsJ$jX)c=`_c-myFqHEdQ{|{da`2E`) z=(-M-1oF*JG4m#V(pAqcW>~Xj!^Uy>g0g?I@|TZmB;spLP77rzY%hZ(^3i}{c`M!Y z2&0?bHTzAK){YwD9#{v=gDymgwz1Oo*&j@`+7M)xwC(lqfD8Aw7U;99^H{O4e2v3U+Zoq>LrNzoJJn+aeBaMam&4qVbM6;pE?y3d1Y$sqj{=2hhfwWxQn3c zm%AkTfxO|bQYSiT(Z6vV`visnYp6uwx^>ceP0B_HE2ss>z|&Ne-^X@X_Gm)hq5PK0 z?T5cU-*RyinB>`jb;}ayMrII}a@8am+p0So4s*xzjzaU7?%IaJR9;;ewhPXg{OE}z zr*Je6%)?F>QH)9}WT;8T*Hj%GRjBAvPb`L12l8D8UAvb1?}^!@l7EF#FHKojXgT6N z%(8E`obv5ILqFOZn(Wb(IELj64)&kcX?8+4zxpVrZ-Zv&Lu|)NZq2)O3f3)uK-ZDn z7UEthSo3&)0%-z!+6*n)TfxHproCdqygQMSc*{w>8Kx+4bf(j}u7G`}K%n>Gy5*kK zFn-}Wdhy5sWgf_P1$3=!Z~GH?VcT!AziDN3!_QR}nNMiQ5sAv^A7i;&iqo^ISm6@q zO5=+9qdJV=_P5d;D+YPQVNsB_OPfT@=7HbUt%B~TY!c-WENb(K2g~c!KQJ+I%WtgM zXR{*akN*3#|1q?}K!@v2!EKFGyW!?{f>+DKC67vHXb(8Dkr+-$>OJ+ub8gP(c> za`ToU^m-Zwo17UV>{B|*0Tg_>(N=-?E_zp1W)87 zscZgF)encp2aLly=&nO}XO#1O-o{b?5V}jq<5hRZxw#n;_lBiz>eJ@IZp#mh`HBAi zL)A-5AH$j)$;H(+; zQ_I_?&>rQmSa#GY;yZ6!W%obK%LERy4%hui%q>S^y8h=fHliN_j~RN^;R=E>mS)z&UMqCAxCe>9jtMRd89*+&{YZ)}KBql1%%AEhh=-#&vxJ>& z36SOct>v%kFlfW@kF(1V#+N?adsax?o_Q8pEr^!Dpz6I_5Hp1u!qzcQs4Qym$UJ|b z`LKfO4luqupvyBKr<~g|BG9e%8Tta^&!jhD$EsG(7%84D+ENnW@A z{(b`OZ=nnM;YI`!RRso{)?5th1&C9rtE*hM_d!VZqazs10v3hvx zdnd13o0c(w(M~1sbmSMfx^}ak6f@Pju|h}W@kBPrLAt{B0|2$myF&W5WB0bOHAmblW>76%-(3PV4ZNK88>ndZyA|hzQe+h>1}W zwrDFVE0XS@VNHy~2$|r#tIsS+S(Cgxz!DQr(g}h|Yxul?#Ra%0psRDb@@w=?ZAT-i z54OI_13psBsiWX7mV8A5KiJ<%S9)d7zqE_TTLvKpa(uPWtSG%Sr62`v5ZXn`%j**| z#4Er(1>FX+4$|?b*r)QJlTFn_XIV2s&@JWVl(hC_OTqnT{SJ0Yhe1-XX}yGYM5L5m zadSrd(|Kly1^tz6yos(Yl*s)|KL{d)m z?sR3PrIu!O4^uPVd}QL2o@(9ChQ147k3xhYIoS*qd z4Z8nUY8H( zts$8H2m_n@Zoa)tc0>I8Z@>I(j>pewtpAcr(FbuK(`&17dy>+SA6V6NntxysIW+&4 z(~a8FPs_ph#!)-qfeEG-z9r?{qwSYqx$d_&Z`|P6*i>#Jz^5~Uso%jvsu`BbSney1L%6FS|eSWnYC0cSr6@dvb?1f zaz~M#EhdmS8#j6S)Gd4ZA?woQJz=8Q-L_?;{-{z1WS-9K=fQ%9vlUcJC<86P{Rg@u zxA{au#Q6P>fjt_H9kwk&mYa{I#0Z1gZig+q!X=fjWl_cv729=K@2|x-X^Wz8GncoY z6dcJeFVCF%2}fK3_YriRRrxPQ%%Z!Por8%j8A%nz4sx#Y?PuTLrjaa^saP%klq;6e zUxkrjKgLELR%?1At+O>0h{_x*^39mPlcO9wPx}PAR>aJouMm#qP|<~N{KMAk5Rd;n zOuu#rY7JQ~Jno_@-CU1bVLWAj`1)<2S@B+9J;<%T@2dv$?AUn(Pm0*K0Fdv04d(wB zFe~ulVKYvp37wN8c#NV=@(J;xC?`=4)Z`}Q&9?bsgHIc(-{*H@$CuKD?U>D+{=`64 ze#v2M{b8os9%LxN^uKd9|64boziE95m=L-zyhp;@uE*SgSeIkw7Fe^Z)HyKcg8`fK z7u~S#>h1I>Y+4#;U$^AGrmR26pUEW#x!twmAF1@P@6Bd@IRf&90$tI83tU12z1^B{ z&o?ZgAGLZBd(G}#*YuDHq(;yWf8e9e{#`=ypt_&^*gr9iYWRw8waSO{R5VNtVQ0++%a!^<7 z_J#AW1W3zVjL19?TTDB}Ph2owqox7w^I7(nfZ3Hz_IaxiycS2r^|X^~ICs#V{j~^efS**6eUbVup4kU=Q7AX1Z*1 zdMB3C19p| zTc%SeTJqu|J%eC)EhKx!=kXG9e5j|8>s6J{)K*n+O3y{SZfUS!E4}iGm5Zh8{Qldm zo=}mJp`%oKxHkvf=Nj=PV5~M4d)}oR*|+hR_*Z3x7zsNdF5WQdEN7xS9e2JvIHRo` z9Z|oLEra-lEwpyR){R5>#5ecj>x~Wi+{hv9#SP#-kI75GaOQc$cAR}JEpWp{mXg@F zi&kmjaSvK)!0J}u|IGC*&0<<74g+S#=y?8F^#28~={2}^LxqxPXfSx_KFtW6245EH?~!-yHMb z=oCBYIpvi8U=$TwLPO-rHBz9G#pc|yr7Hc4+Ad0|(LtTaZq_4qBr6VU6{o-b5v=E* z&sx6(%&2Lb&h-5sbZlkGHtu7sk5o_0`We($8pLpw4_~zaTHij7!E zUHw!yI3i_9!C%WMwB}(K#xa_%D~3)f4Y6ig`kk<2fy+~ z1z+jFlMKdLwV{M(!wZ^*%1GA6!K8=C#q!Lu*-j73(v=eSQag2^fiXEsKAw(3rt3p7`v#4>2s8c7!P9 z%oB8(qdmf%ewjXaR^>RhSqv7ab@;9hpQuE7&vEqoZlp2jj#7R|BZ2GY^F8tsFi-z& zE2zcOkW%+Bp143j%En)DQ2Wo?XOc$`y=sjwYVwO)|9VxX)cP^LpXcwA+M9fgSB)A= zu~76F1>%bDb-@1b^S2`}0V5GM3aQ$mBJ>%}$Cp6vi2CVXFL=zEo?P;~Jv1hUM1Tq2sGET^;wdkod7t!SD2yaWJFA4?g zpT1S-R`C>YD)L-IzMX=7kOJ#i0??%@vX(u-tjH6Znt7MVcu1pE3P(-rQu~HHEh3aF zQZy^KPQwQRNA%Reg!c@WWpAQrtm`*f7{5Og<0akqjCU}nei z(&LORs}3XYWOEZM-94{cA?N)CmM`e4Eg0mMu2-tGx|#J}7016d!31Q>rZkTJ%wd5&!P z#>C3jm;{@092^u)-B~W~w^DfnE-~od@=j3V+Jsb~zTZuihE*V~LS~sYP?22n2#%!o zLMeX-OLX+KjE)i!-(XJJImO+2lYNS4bsv3Uea=GHrciVR>=%-NZq98n{*SPQ@|a1u zcD)=jdDkb3uI*NOU;i|lNuE{4S>d4jyajDmo{hgKzXy`o$CR8|Aa}WwQB@|j;8Vzd zRsb$3=ze^P$WM7_4dTxHX!>Qt%^*Y1wZ(1w4TIP*YmrNTeIV13p23-9A8be2UT1$> zi28#_lkUgG?47E#=#`X(#QHI z!V%Ns(cr|AYCsXIh~=o`)@@F(Ojf8ZWW#R1>N|q_=r3OZmmG9`|JoO@ue;K7Gj=%& zT^d5;3B~Z;@}_s>T?d^NTH7P9Mi_ZGa)e$w6uT1j8=_FWzRHV17@;khF0Eimz#vrt zTnf;o{C6}-{C!2c*Am%Zf;fdC#Q%`=a)=>yAnFStOfeySzjm*FO}&?}E*~eqp!9)$ z-u+-~rhM0`HHlw!E88wF;8KEacqY9Y&n7fkx4D$6)i)wh^{Y@6*Ari5e|+yj&P^$( zpCoiPJaJy-Z{CvxHQhwL+Q@$G@4Ne}`J?a0<6(%valoYlU4k8>6LEw0G{0}o@gUnu zX?J>sq}eB53sLyymaX>wl_WJX@c$s)YZR0~zUwCVt+3xS-}u8{moWCO{yU)pjA_7q zzV}`NMyYR!YAZjp))X&q&|rAa!I_uV9fx)vXW#t&$Fvj_oqzq~u^JHYtR*2XDSxI_ zX9_iY$Ia;wcs?SIp&I&NX#?)_+WZnQ16-BpG}ay&y-d!AV(uhD63&HC;o|t~G!uF^CXz|4m46&rz^C9Ntk^YnI7YCd@_;r>m!vw4r>wukSONkZhK_PDAnVXFXE?v>z%kD)?~R3t_;EBP4g z3EV)V@i*hGE~-5$z$xV zxObnoPuPa|EiCbvxEoOS2i7@mkR`eJsuzarS;%uvppExS!2UWt=!Wzwp3S72g^m9? zSCmIci`kcd<@D}p*JTH}fq!7V{j|_?nZ#NEtJCOarn|Mvu{#VICdR;eeBs>HLLb7* z!4nt<2GEW8mu%-!`*@&)DBt#WTFS5Bi|h#3@dmw76Z#PU)f8WVP$E6=x-=OI0*8Il zBB3VnMD({zVu|lPy}#Y1oF2hG0VC+v`_+HYH0&n~3DCy*7j&?Q;?e9p9Ws#Bau*n_f(Rs_ae+HrWWU(E!%Ugq74lY}H$O z>pIYaF+X^w??@8xgv+%8Rr#b8f}_vlkW6!ID5)D-BvEehgOv8)bsxs8=cKUe@y~pi z0mgwDbRFDB1v&-V@ShsoMFt-z*olW$_}3o!J%(KHZdt_RSPhHP5*pLzXhO03AR+>} z!j7c)Z7YpM-=&d$lv0r!2?gBevqvuhGrlfmQl!CXaoIF};yrr^m-G0gwMWIzV=`>s zy~KH@7lZD5M*tBUdfIn*la?|rQB^ik>7F&Nv72B0rBRop8_HB z;V|H`fo?HEoc1rlu5-(;(dD*P;cj!`R`0s>drma)jc7-{J54S(bDoXNZP`j;%gGjo zO{cSe@+dHM@f0AKm^;vst8WKfcF^7av0r8)$U`+)RO=Tam7|KL2GhBGKh0;>nn2W< z0W1Albzj^jeWSM*?o~#|1sp!YBY9R?y`1{OyN8(uJ8`fc;sD*)$vo6-@}qPYJrl|M zK*EvGxJQ>wBG{;=<%%{Z>qdUx-$^YPaI)0=5YD{etRtVa<2w0+y6^9Kja>D7{GE+;G$gAY*`KT1`zUzvS`T|Abpr>*~} zAStj=Z8&{>QdpgEcH(wF2DooQcQDwSk*u?Mx9vUFbt1KwsON0;Kz_}2yB!ljZBtIC zR;SMKiE?hjlX2S7?$3emu!9nIMh&CC`MfXF8`4)(djXdVbfMROE76@~5p1*EYu&7` z6ca1=)Vev}8KUuNZPZ!W{dSL%EwAQt5Q&*&yl{S>K=-7r6BJ}bI?F5--(k&R5Cyp0 zp!>^Y!SCq?KHCucIFNzApJ)1b*>AN?e7ekr>l-gOTB#ZejM4PbQn6BHKXE74cB~)r z>9o80BRPb$fM6tb!7|`JKiggcrv0y%&OaEwRzAx~0tkt90>_A}A;)GL0ZxJvE4qRN6A+j!AGYcKld_T-Y4IIZsZwt8xr)s`$x>3 zoS&frbt#qvZy6bH?+ODnFaC&Rsw`h?a48sIJuP+C{nV0b6%C3M77v#C!I_R&P+-_% z+5ouEYyL~X6thAkRWl|J^6-+Qn^ZcWUcVxrLfMCR{u??LdeCfy#XR7xpT6P3mkO01 z&zsbzyZ4(6GKT(VMs(Jl58|i)@AogBdq^(=`mV zYF9EykAF(|>n$6&A=G#zgDc;g(wo9sU8#{66uP1praBba(1zPnsMG3N;3Aa?++-1I zLfl8{I-YCdm+|EX-I~?Ek@bpS+G$wJzgk4Q2ST>-z_t-X&+qxR$&O7KtY6%1QL`}8 ziiLT=wy4}V zcPR}&yIUXqZ{LFuj!cm(-sgifvI6z+Y&>}lmQPm~_pedwxK@O^v({A;W`TSKL03KL zqjJH2=UwzaP&YWo`pxjkcyyF;n+e(oB!+AMLa}bTPei~_X~`&?SY{(4{^#6yh59%U z+$uA(Z~1-~XTA||g+N!6LEDzOe0dZzKDJX?{W6}T>`1@4w=;u29?iUur<2rwWxrJs zxo{ywxyryc^TF_3(%k}chJ%?-oTCgoJoY=_3WF}m+~SuGvrf-=STwa$%|qw?bKl1- zHJQ|ee@}W&epiuNg+FnZzCa7Jg$S;H`KEkdG3z6tN@?d1B(V8A&9N~Ua792DXS%iW zX3QKrGneqKg%`psqnOaRJzM`@pPd^`ENlg=QfP`HD{h$S>{oD9TQ=R=`X?eHTgKxg zYi@%XD3tfjfcpV-$2+ORR9<5e{6d2!Ut^T)SGFn+N7ZEiEI8^>rxSnc6*UyC3TJ4# zB`?2P8s_?LzJN?}wOVNLuQ7E|)n`WP=QZtRo{56)r`rGiApv5z!pPmmKw*A%rEOv1 znncle9hu?VP#6Y9=4%!s4{h-say-xFqW1YvUP{gLu=8KEpQB_e(|r(4$pBXjbTNM* zb$tD`9T7LmA*)}W{I?rnaFpZC_3+%gj2z^%gA-VqeFZW38rP4}w3F;UCV6gTin6Mr z5#@~IQJ8&Ea1($l4!V>UR>bTmKg3OMtt@JDYhz1W4*H{XTn)$qN&gmdgo+{T{h4th zuOH?m^e)K|WHmQunv@;=fjT$ZY@_Hpc-{fH5}<3&frc$H{X6Ax&?aalzV>$-?2*uU z@9M@rPspm04sRCUQ1(1GDLWRXq`ka6zCKFQiX@TpD>zZJ4K=;iZarJTl?2`DoOefF z#l7;COP{#6ch2GA2qtRc2gSxuzE+z)kTJKN)rvrlU{r>p_{s@~F`FiqjMCYU(fssF z#@q;DPMuQ#Tq)3+LY3R zai+f>aUP@J)cq^?#Ik3QH1Ry`Ojg?iaHT<)+cmOgFLA$EWksk|ccv$X1P%+)vfJyf zqU{ah;9X(UN*8wBOcPn3hROReO}Cl-gJum4gTPecx85Fma~6h`fGY#K6SSq~8Aqx- z(*!G48#4*kMVse=`vFQQ=zJxg=e0g)?;wvQeZA#{x_&^Hnt$6tFA#PTYkT`U?7AE6 zQuY%Bn6E783fp_gQZ0~t#P@bMvoT@ii$^3Ib)$T&lzT1Unlq`Xverc!a6-!$Q-4PP zlOd*yaPJDwOPa`V;qP!X8w9i`c)!Vk?j!rR>;Z={12_pp_kZi-JSW_a*LZbRbb_KB z%w|{*UNMM?HSjg~m#IVUWn6r>zbNv?;GL&AW>V6G-DVB(P=Ile2i@Yka--twN`h@9 zIW?nf9?}iQYdkA~(m}I|>Xbg%Hmo0uBu`6OJ->RE_evZ&WPZNp=5KjID)j<)VFhCLq*U0!8T6c{^hJ-sq-PJBgDQ$24#D_m)NqY z3fR|B2HnL-v6v~3yB}jzbxs_aB_RhiYH!H<9U2;>Au|>=#}z7@nxm?NdZV{H7d#$5 z6fuo8cSu0pDH6&eQj2uyLxOe7bC2UCU@+LI63KJ_E~B%hYU6_Z}Z6c!Pk5rIrBkdg}Y9mBb%gkG}_`2)coBPz7BaXm>WeBkHx4 z!wwyoE-`(~c+|>_y`GvJ z7hpaC?(C&n+9>+Qw4znm0IgEeez zkg}rG7FS5Cc}+Ratn2MYW>n1Jj=xU|SFT%leiM%18gN=xR5;f+GY+`VJ;j%RY5b9| z?~>_hyRDO4=HPd==&v`faH+o7bNnZ)fL`8Yn{SDMdh~*3-V9zeJw_<*RoS@T;Hj*r z=0-3H$8@pQ^E2TkUro?GoT?qh7Pz7K&Ka{=Ry-%B-%p!2rQ1oquS09;lznAAgGuyD z8^faKK|J}W)q!8WrMzp_S@k{LU-E(DB8Et?U;SKzzXVLZwhgsi_b2XjC~_+sKUXi$ zYI03z+t%0Im+`!qP-#F_az0Ha?vzUcoTUUNg#h7d`c)-F_d0lIDtt^u`Qc%MpzTv$$0^H}`^-I7^B>x)TAwe;gpz?boTcP(-Gpg?js8Smn2{vk+0qz;HC6V%T+a3xLhiJU?)Zr8)d5JXfC1*aoe35> zMqO`*k9O$s1ad+*-L=nqk1zQ?U&EJxArAPXN+UJ7D{Q0}^mE3%-LZde(M33D&pdQ< zc}0wBeY49eXK2*+TXD|mpWp9C(M#AvPPjv2RZnlo&9sxWUIDH#=&C#tsAd%QL=n82 zc&}W}iit&LvfqfXC~7bLX64|=o%MK zMD-)446D7bEb-zXte>WXK7#xfmx@B)nTk^D{1Gu@VAln3pKHXIfZ@u9hW};qUU_I< z59g;VN%t$pZgF+kT;hP3Tz4<&Ke%Nq0`%@wCPo8U@Y(2P_++9bR8q3 z-N}G!4!X%sU5)yYejE<6?D?+#f#JB6KT?(WtI0M>4wI}V1k?xv480lG8EBK{3>B5_ zoENAMWa;N(`1;H}@W)3@mu~>q0(9Lfbh!SjO9^-FPq?h=^^$T+G%|lgZ(3NWl_!+G ztqSyR{O=bJTG@&sr%Q1RrZ@LccTW^dsGQkItPZ;9xQxK-W(m4~|B_e5J*dX2v^O&* zp+b&0X$JCQP?ixGGRmgVSjhi?DsvF@CYR1(bDoP2#}ZzCr3QO^hu%zd^vy~7D9Qi1 zrg)jZR-ik9sd`Bk(`Ld!hNp#_r=Vxv{He%GYy83?fPZkcMrNS*kJHTw9(8%8L`spG zn(!IFiNsd)DH;Ui;g416ci7A1Zdj?D5e~nptCGEcPvORQRyzS0L{i$9x z_$eRhYT0OaXJGv6pI@-#R!FIjIVyE{Z9HL;80S{~Y^M#+@BT0Oegs{~4DD~Rh{|u2 zZ*FWSXs*sE0@Z_>cZdFlgPnRHz42Fv;mlcL7Ae0D6Pzte zzHc%sqLSF~SWt-B1cHhx6LWek;6B$dF98!>NXne~H*c}8AO2xLtf9S1VD1lk)M_SW z)|b)geQV14aKwjMgmuztovVvz?F&+_`S_3iSK@(K74_?_)34J2*A8^2(Cc88jAZUy zN|ty%J-xk-QPIR07^GoY_>?1;)*Q0AHTlARqoWyc90^S1M~d?+NyBKXJ)Pblc^<}} zu}FdIyglgRyG*=&gMf&7;NWv$vB6cQO(!0(cD9_xMBNPA$WYfp5V#Kcm(fo(`5(dC z@a0}Clsw8cH{twYUFZ@?8Ij6GAYTX2Eriis$8>+}HqoStzd-yh6UDY%D~s}uh6L(X zDGyS1C@e$41rs)Bn&^?0MIZMFvTBJ4UOcvwZ&wNg(GHo7RAI~bBJ&-IYsw|N-_n9>|9tkB*)FwbHqK8r ztN>gm(2c>ZVa(4dlP(#`AZa!wRL7nZ8g4m>Nxd46WT1WeZ@CEQdncYBL8 zhgIp5>^u+mw%BVl&*nLQEv7ml3H1qf#iHq?Or2G!8-D)rBXY7}8Q7j~t)o{Vp~s3` zdBZ@yuAu8y&wBgUGAX1E-J#Doq|FvpUEeX1_gk*1>Jgh^RpI;d*w*jz+(@B_Ji(+` z(T+7HA~cF#*1pxPfkTC*|P0+W_@{ zUs@mN&HHzJSmMJ?)@-4pTQI{Blf1gC4@*Jtln5AW^*s7sasHh{xJ=*8vt5O+YGMd^ zf_@OJ3*ABY6txEu{~Xh)_{Vt{+K+lCSj_Q?aq?^?9K0gZ zr5E;%?`s`rWmLyQB@=>AiL7nEX?y$y_J6)49);?BH{yx{VF99>nZVpe9DrNm`eaXv;R~W^q?%!cfP`9$2fdFE)R2|Qv{rcN) zS=1y9E(AaMUt>S+B=uEPEuZewI6)YnW^3RB?(>+u1WYh-k}*M}4~u~P@fAIq2qt`^ zH^(tCv)fu;^v}QgAAA#itpad+gJ451B6gA;keVr{oxdk)UR^A3AMXiczR93oroJ7j!p1*;GMkv+pz089!7NKngp~ z@TUHB%g*Ayum2v3J$z=$Aun?FQ{`LuCfUWTb&}OPbY5mD4o8^+noeuzdgkYQ;pMvd zf$mxT>h!nSW1_RU@h|E^YL>6s66qAU;WB0&Z2jqETJZX6bj!CidDr9*aXQM^OzR~i z?HgR!Z3X-K=-@0IcAsmC7x($u_7X7dR?rwnUWwaS&FWt$HdF+e#s@=@@iV_o9Ufz8 zG5CLytLPD6RP80!Rg3yHTB|=8)S&iyTj$joNhvMUr8nuE&lg&mYR*Op}x6|g?%XViQ!n-jlDP`?I4u@-3YEM``Kv^y;1O@M|jg3`f)wh!}JT5_Dt?i z$|23BH}*{p(_Qw3H%K=b+tqRbsg~88xQ^?mCQpDH0=g&ECYCkgO%#!8@1^E=g_9Gv zzmBadgrMX6_n&rBkKcT>xeT8)<*AkP8I5Er+qGl6=@2(t!`~f`EYst8%2@^P<51A8 z*)d6}d3PX7ms-wQT$U~Kiwv{8V9=zCV)i>Ft!%O8&iWrZLf**M8^k7G3N7w(M+T;KnyY#$Ma&?o>0H(veo7D40OJr2x>00bk1vI1v=KCM^=E?v4P6EA z)n1`{67V%wBWy|Wp^5wXT&cnqf5*~|QmDQx&tEbPg>{zxMx-sGV;jA~*4ouTr1ruWW>$9P-{Iqo{YN13f`Kj(ekTc)cXY&&h7{5nVK_ zy$uD=ofDo$!Fj-q1l_ug<x%7hXS7oN9L<9gg3UuQda=#`uTp}IndmEOnE+YsR*m9?E zScIt%a_rsATi+s3BthOTU8jO-x1<2X@T^>GA6+gSd!R-Bp@5Bh-)hdofzSJrNnsCiGEl zNP+9-Q z=ay~smnFj*aN|K2zU}Z`>R$0BX@&-Bxy*`7!})qzqj2Q{&2OqwFN@z?8HxAPFGXUJ@-t|ksXh@on zhKLK03gxA`um@`H;8_2F$O{puq>P_Df%4e&ZTzxw(^`Ex7480+39qSNCXlV8>;fvZ zue+Bk;`IFV`5E>y&k{k`=@oVRKVuw(pbQ01J$DRVQZ~8m@){>&)Sjh7E+|Hg&-a&6 zvEeZa_>oTo%5J|TD{y+{{>cq$*9Vs-7O@L&18x%N@>FBN2~>^k6ZjDk>pL%VOVF^L ze$Gwsyc`fXOkMOoE&Y@*&51)f`H?On+m-t#RA3#2fDe?U@A;d{lkK86q=5U}<9G>} zjxdNy+L9l))0?75#YmRRR6CMepJ{~tn`2cB^_Bm4m#%I4AcNg;RhVxQe(5N#;Olr# zf9)cG=&|~-qPKqb25?hA_v*=%P~>=|Nw?XZDLu^!e@XN9p$8Evhru6?`g0{bOzP6m}25+{DdO~5#VbUTzE4W>aKPPd#qez?f_}L?rzr!8E z?jT|!(L^oL4)qQZtH!Jt1L*tP(@_b2UQGG}`^9YE z@80oZ3+>s^LET>hl@wTm&U$5)8-HJ;<%wVe`DTG`&*CZ7hp%BKy+JZxT@fIt&Z2pe zd($Js`zg~Wr#I>Qh?NYkv22bzlZZWe{)$6)`41J&@I{b*ZrCT|s}hz1*Nbe>mH7@K z`(?Ua_ku!KkNaRMAr38CIN+1J+y<;NoX(Eop)F61W$w(*1$_nQw=@b8_HeO~Fo}#H zTn5hDOY3IQ=Q;cGe8>S^&rx>{k4f@-7y$+htE>DQhe2=GZCZS_KbP-3^Oj`Xw#cp1 zdlIvCUDv&s<|>k+s*C5gcIwrGVQdc8qxV{205=zOyVA94CoO*^g<(*LlYc#XC7x2K z2TMmLfK96XhA}gxNVZE>@k{yI8o%@#SU8fed+#}voUBrqcNoOk&ETdhMFBStbkC2~ zi~la-@oHRb`e;=|FV2)vgp!C3EfI_%yj_qb^7i|pM>?4lkE5vLARX*`KHIHC37J*0 zc+~@k(%rT%_EcXy|xAT8Y?NJL`vgR_11*M>7zNKOiy?er@HnS;1+-`Jkh_h2DeK4{L#s` zaWmupT~ZnIQ(YTl-+5m8AD5qYoD*Ifj*7At9a{b9lw@gb$(Lvt1oY{Q3y$$0q9+m} zLx5Wdy0MYMA3t14R8`!iBwA#W4di@~*i|QugrHsIQ=+=l*%R-6EwmUS^P}jP`@@&A z56D|-JO_P?@(#$o^&6)j44>C3FXN#IbW@nv)n;j}m9}yM);C{c_i-Tk{c;%bI&E@= zHsC9K{a5Cw@LvgJlvViKvDh^}-@x+O8^Pff<*VuGmZOspOO(InU3gC#+T_no%-fr*$m$N+$slh!u61C7@g4Aw0J{ovDo#cj8#O6x+aZs^MveRdk*15IHcj(r7NoxAQGle5yWz4TKY1a&z+RuC-kazrjUD5m}qX8Wwsr z@%3Wa6(!gY<)HhPzLx~2Fawdw%Lk=C9wRa%?QG(0iR;%yXqLsDPk)2L+4$TKP16Zh zixwm51@hMEZGZiad%*fg#TX`fOFp^=#QR(`cxf=mY*yE@Uzfs;cb@o5H$Dh{fcFz&+se~I$jRa7($$CzqK(|cuV~-eIs|gW z!77>{uUj`-gv&hAchIqc=RRfF!sdI(de)gZsSr+e@W+RCeJccjC6%nMOhmj_v&_ovuYP-RC*%CEn+~ftLo;`!ovWzalQ* zj=TVk zHdc{1$tU-lfL-3h4Q8>3Lns?Wz-<8C1LSF)Uu6WFBmp&=E;DbgQu+99rx;39oShpz z3K;WO<+KE66y7!Bmh)(uA%A@>g&8cMZ?LLt@(Fd><2W0F1}=40cW**Qjpk; z5lfxpghX{IolYs#Vh{&6y0n81Vj@bEONIlxwMQ;@)oL=5DJ8yct5A|PVW-I7zpYq< z&o#c6{%rzXftvSz{bgw=9&N8O(ldXmd=ZczUvpGt399##4|Kisgx0hZxmf6W;pnNzeuD6y#?=)Gf90{$X=;!+ln$Et?yX;ah-)R9|LV|LM-TI!N z8O94HEmBGE2ck=DIm z+R*=>|37O5UDY5fjR9CB&9HZb2n2y&>3JRm%8u}N&TOyX>idFx9EpEY$=AZ?=o5<# zNU8I;vbm;K*~{6blyR|}|7A~V0Q2fL(ETo9em)|7j~qU89CwVk^a+7q2;c4P&!waM zFfJopdW!xH%&0=0%_!fNCYql&qe^wZ}wPp(Wcf%*x5}J;p|H(WUN8=&I`MkrpA~c7g8iJ&~m#zO@GE z2eKnt$f3VVu|n0BPLoe;usG8uv7%_kwbFkWQ?)7Q-~YC@XYDB0#L{16XQAU;?XP46 z+N>!C1>e;?cN;HO?Ar3S$ne2e8gd7G1O$!mkE1Au|2DLMzeByCYZ^J41zY zcR8MmVq1}mSE)y>xO0d}guh=n@O@)}^J;|I=S~eD^*9&5#nQosprarNR*#hJPU?*1 z`B}Y;v*$I;OM`JToAj#F;b5Ogf6L6C{_oHBy@4{KQKQx7huLLOow;yzyhbZ#+X}CMDH3Tc5!-4x3&$;_cgUL?fcU|h( zVZ@!5P$XH8?7u2GK=r};_kIUv!|vzt&12B(!`6h*FBX&UQ#2fHbz$w0zTX-unCT3S zy)$0t={f-79R^+VzYShf0pa~vzCO1Jfe(cJX*0eD!DHpM(^eHU+VlbjS7=@|f$#l0 zr31(bxYza=|GSY~5BC^P!E=UwA%vD0aG#&yOM}_O>^c3{Jf2Ll`-9ze_98c}TI1;) ze?fhQz>AY7piKX6*)?KmgH@gHF>xc4MXxWDxZ1n5xJPv!A+Ubp%Lfy{9R*#O*d27D z=>+=dU+*l1dOy4IF2UXrAA4vZ)(Sh^B9+WAkrU{ov41Ns1X!OW^g=!Xv zgwbYKg>w1dOY#5Ti{~}hOM}t=wu-XB^nP7-{kyeg2STv~PxZ)k2bGIt2?PZvjHaPf zhSUfl1FM$mKzF6M8?V4}#Xv50sC6|(v>c}nx6kw5?#ui3yqEmaV9t6<$(EM1k}nBG zR;!km%BJ|IT44-?1y!RQaN3*dIkSHFrcMlupyN;4?aOAXQ90{f-t@CT~~+tCj!G9c`l{ z&2y5(Trnq-#2ORCQ{jE2A)*rj=Z6WPPGJLYo7(mcwptsD#g{`KhDdsZ+hNmPOH@Ud z!X0pbg08^1qy`iz9h7aE=i3I>AN0$A;)c>&L4KZ5h`6zGb^EgQ_K)K)AQNzkCX51>ZFpTILgVN*P?$+8T- zK7TY|x9P?4vbcC#QC&@SGEUVPLYt>vMJFK%3)MMCb9fBI`<%1BG?>dh;lbna1@-$b z9^&LUiy7Q*#DCvZCY20!df0lpf3@%~JYh_IF^qBJyZ(OYhbW|jjWB^?`Oc@BovgZ2 ziNhIiXF#{zRb_s%$i&S)Y~IweL|~b3ORZ@MqnAIO;hhR!QlABnl6hEO;x^HMI}5sRxOD&K(*Ad+-S@#U3!GNb3+A#)$nwPCI)i3S z8Oiiw(e=^k)C*S229?;PkN#H|#s_XkN> zuMgoOzt&($_1^9FPm+sc5o~e7px!IEwG?H{3iy$XIFdt75D`N3QP_^;RgRla8#Kjq z%lw`Q;Ld~Yy;pZR#@~1HKSOw$Ny%tqMhOxkS^^SCoVqcM7b>#POPEsdz)?(K_nZ}Lj*$lN;jOTV7{bMhM7AKmn< zvb!i`y1YM|UhUilM^n=EF0mzxrUU|2^uPP>@;4cNC2FIMg#+>a0^I?-4!EBz+2NF= zml>Xm1)KJ;HUZmefkuT8Fn=^5RYoh}eQ=eVAd~Mu@b2J?*7f5+xkX-XLL|A6-ks31 zCT0NcBIssXwWw2jhjcqr4XM%->>);%e0pWx_qLWHc_WTciO2&MJ%#}m{kBJu{r6#4QTJP=0g3T>@Rf^F!|{me~F4Qo0@Y_8jI^Mrw%Qo#NVR4onTK z)H2B145-n1HUaIBz1q;hzKFl-9~}D}o**W}#)Hn0rXP?1_c^C}X)x3AKSXj6HTEbJ zC_~u&@6J+!n0`!_#?iGPYA?j-1X1~DQBU9q>k`lfouDDQig3L?&B?p4U|k>Wg~uU) z5I6$d70|_e3Xih5{N}=Xv3l{B>F4Dfqu}Gz((RcG{D9q!SI`mCLE z7i}i7H)j{6paZ^b@^wXW%|U#F?Q+Vx!|g>5ZO++c@P_R(^W_KJ=i13jgE`AEy)Kj( z)RO(x%wVD-ueHo#ffx4B^oDVq9pzwiX*ad!93hN(VgEXbn3d(LlSv`bqb|eeSyO7B z;D9VKkW6LnEDyT5|6~j%0XJM@T}Mht%lRdj9Mj z#po*(Xu5wC*-!c<@09NofILFMuZ#z{8=$*7zvwFSP#a`!6+o&p?Ibe8W$u<2XUR45 zR-Cwo7r`8b0xPcLub%AnWeIe55&pDnG_t$`3KGj&__8l&23!f?Zh~%iy%wF4W~p8X zWEj)FHr6+q{<})~ToXPtto`7IrI~8)FdB=gWpRzB?^KuJNw77>jwx67&37bd z5bJwpFmM{`pq6}2FK2Wj@@*e|Yj@ zl$NR0co2WCQNOsmpu5;;CjV1M@f!9@nc$5?ui+o88Ug1G)HX;TX{bodsN+0!xRW>X zdN|^H-PMcEy!^eQAMw~q*-)F2CWwel3ZBmij`m{B@&>R3ftd9 z;!;wug~dZRPbp$M|G`6|e;K2z_V-(#qGHW!M&A)yiY`VPF6uY!@;M)E`~i0#bW7JX z=&M*hG*Jvwcc4?g{r*>k^)pGh)`~hcr*t|>)F`_01D#waeQpyolt}Ky+$OgRErB$8 zTv`y4J#NNVGVt8hb1wYSU|<>0Pn6?1OOqr37fFEM|0^6rz4GX&y&e)nD)j7WLB0UDF;820bVH2ay! zinjyu9`fRNo$N4!tekI?6dRXscCabBt_HvPXciC-TNkyBle}WX**K`@fQakCf6nz@ z`u7lY#pkL#YheA;mUi^T3zmlQA>rBWyQz;@rc-2V`V7dw8cd11(&HGzvYy|JV0{~w z?#K;RYC3%bm#V{`(;WDJ?yGyAGhZ4EI&HS7<GIf2{9~ zep3;|YLTmLqxXhOA#N;Gn~Hj_rLqfsBM;pO#>Mqq2`)MgdOe&M;}=?Aotf6ZRz{T9 z$v{6m=Tt8Z#u)`ZvuQ4ohezxhkL*6%*k(2YzvL?p^o3fOTr$VjX!5K8Io>rBf1~vLG*>bVOT! zh<*j36ZEaC(8lDg$-%*JDgWii*2d(-w36^c^>$ny6LvfYH!%Ob09~V%84PAKEy_}< z-;s(dQ!BFgDzbj&zvKc3+X5Fi(*_C+joTg6_MxMX@IG7B;yG%1Lf{X~s#v}^JQDoe zs_d#p6w6@0}Xq~dcGF58-rc! zTfheWHz}KR>5=x8(JxMYkR5?-p6OKnxZVN(R-7<+T&;Cs&%yfH73jkL*|V&cZ?fXG z9V`{fbt+pia(jn{k=;uPyNu=WEw!qj61#R=$<6ViY1UpkbDf!%$csMR;OrOq*9rvQ zwx;J8U;5!1bV)Jwj4T`2*k4&^?Da{}*Y@ncpXEBNEhy&;F;`DXel^t~C#!;$Ms49d zZ#QjbbT%M$Or19`eb83VpH?Rp2adBF&~-y3&MsFwJm02ebz)9C!bf6GjZo%mc-Hp` z%pV>=R~X_VF=zRl2In;D#3omh28sBub4t-@K*@uHRbUp^AJwBo2jPerznu!=X|ej7 z+Fm1_a3&WGUM6zKL)!8E3LxG`(8Y@DGiWF)`XL*kuM?bp^IM35XLp~zQik0OWffNP zv(dl)4~p8(DAkKQ?^w&?zP`uUGJbH8?%lRC2_EkWL@WZ_C(zwyGi{A1=+a3ME_XZ+ z4~E@T6!~s}r7+TEMe0%ATaMI_i2+cc{i;{F(hPkDe0`Wrr_up+V4Mx{07G+^xh4x6PgC)6S3cZO{nXnEM zfy#O}xFud7(47_4DM_81a*F-p>%T$t?Zt7krJN+@J-deorxg{%)#o|kYibzP8amIFdULZox>2ySo|||&2uf|C0-cNMPkh4!%+Q~`KQX;#fQE^H z=^;nUF~j?D8YwU7RX@I=;>@QbWo6{4%%%|k2JfM3FRvnf7J0*C8m-Moa2)^(x}^pG zeFQp%eOM~UroTR2&f1uz5cH}WI|?(Q6AzMU88vbBywZlZQqgml=`9^DG+t3R6^@au z(1!?%B!&7rb$uXSIM5|&X8it}q4aBZriFxcVJKD+*LAKBG3zV+ui|*csI3VKX-46a zU+cVVmhF*Oi^;5dyRJsDd0;ht33%Ksp{r#97anwTw4LHm``;pn##^s+)gtz+O)3d; z{325BO(i0TrmLpXMGTQI`--2T?#JjPXxnB>%^m%L8ulNZSu^iHBoZI6-iH9XT4U6I zo0V0fla%x2@BZ3i@P=GWk(s5aOaCIqg-`$8--Q)eh7#!66b%J=gh}kmi#)9FC4@wG zciR!wU|UZGjt4~0#a(6~ysm`j3W^MkE#9XZt*I})$<+_g$UKApmGLP7Pt(6Wugiyy z_-*<%FA33D;HdW_s&&hUHI2OO8OiAsa6Ur<-Mn;6{v67{(;?wspvFQ4IO`oVMAR-OrmM=) z+U|SmZD-)Qp@42+%lG}qjG=eM)L{@1mR7H0D%8TmL*lm|TcO71uD!xM=I@2R-IGd{ z(hQAJBEb0aDm4wgs!tHFQVD{A8btu>1gN09*eglJl}r{AJCF8;io$|h+MF$FuwY{E zRFGc!jr|!?u(s>H<2up-gmy+d+1J6Xbcl;1YK_75sW+?_nYIt}I;71XW%0x8T2pZ^LN~XJ5IU zk6r9n$Q19qAy{IFU}TP>u6E9LhKof2=Lam%E#z;s2~(-vJN=+iEih5A(&zc#UUEWZ z<%A?LrC5P5*UoQVA!F6eO|yTNu#{>nka!JVTt}-z7nYK85UWIg=zw^!K{w;wZ|`mi zOnO;o`>GAUNiCXP`$pOH@sFSN=%6B0yXXf9G?u0Ep41?Sw{6GoBHrjaEiqC zRhqe`?B4+{4(R3&se0>hl?tSJ5RsK-KG5yhy z-KGtm#2@;J?|q}(lST-Z31yCoFJ} zP)Mj8aPdLcD2ohj+#MMrK! z=zjB8)(&kQW3eRiM0QBuM4J;D0ha)DFW5>)lKZ(>!-_2o^?0GqvR$eg8DM?=gyDw- zC&rQ#{pv)xR*G1IxCix|L0q$$i{WpKF$TwpV~^-@ma>sCo=0^0ckK9Ibe=BF=+^ zn1D+Nx(ed5RZG~481Sdx4Vo#V|7g|GF#dcyw6&0tk!NhRTwb`hhN%9Nvi4{~m~IFA zvN@hb>5fb=wMyi*4X+-AU6-m-4>bWxkpue!Uw;W@MI32fVZ?bDS7GF( z4MLnq7FrE|6BN_s!!CQO@Pss(8NAq2*1BxF_)aUw8gH`_0l*~&UG|%O);IPTrBgPN zl-nmoX+d?ehblGvuovH!iT(=kwn*gscY!QdDGZc!aqw2*a^UXYjeg6PU!GlTxlWRz zl;HZ91a!SPyD&0iF7czzHY88o9*4M<1pMm5Rjz5mxPx%%uWE}B?Vn_TouWq;V*QnDX;Hk7)(%S59rUaW9~LOZ%SYouMuzI(6?6smke~1)EHUo6Hvvbx58E` z6o0I>7G%xzUo^=OW~pzX}2Bi}0-Q>xG#?GZ6A`qZz!Z7JQCO;Wr0 z=J~#T1_X(pLt%qAjl_O{@xB3F+il68cOnfKQ|~GKWR7#tZN2K{(s6_2>_X(B^BmZe z$NMbMoFMnFQPOO6$HvxqCYFW&cF1z^2yv}`Rh&x!^BoG%4IdUJ-m>JfZ6DJyH<#+1 z>8Mo-wHsS}-CXca>lL@g*;D(Ov77#HZvuPeL_rjE#ml;Ra+c4nx)v&ap-Y}P&wC*+ zz^*pe(i|7wZ<$*2zZ)?n%5Y4 z4+HnV?(;f`26W*Pe5#?x`bDlJ3KwB6kcKW=x`_jL(po^YD#xD`~)(B}V|Lkz1XmU=I7>&Ib zMsG1A=a}WsSDE~-`|wM~Nmp6Et{SIT$ZpmTEB(B<>5+>9myB0=Xs-d64s?4lYN-^M zs#@3sKVrf&)IVjIv35#TSCeoHT2H&9poYlTAjA2w8&X95bdEec`u+xqV_QDIZ~K^p z=R=g2SX&|B(u1x7&8V5Ot&5CCLbpN4?nyxYycByMMVhF!S+me!Q}@3F5vtC4Y#uj0 z2Dc|ME$8b--iFu{j~4%~EaW1WR$Oo&k^yupNmHXb13548rCcVuV`7j^g&`WALaG2M#*@iKxg-h)_%NOW#| ztQix{m-VW0T6nQo$5)U)naJo`g1@FUPW1-5u>0P}ZxpNzA!d-A4{@0u7|-{T7rUw` zXibg~0xlEilDfBeI{oqADd6OoOGlf8a+y`_7ymbYu>Zb%?9)OMvO+__;!-g8{Z@U| z6x=}Ty9UPdHOfIK%UyDcG}Tzk=UUOrcwh!yT_SHtH_f<(nNrsh|93$ z`Y3V+kFW|wV)Q%9Y_qONeA3d7RHNhBp~K;7_Hb0A6`QNP9uns|@Vg8+g;>Gn3A7(T>F1a|X=c z&;;;=onyG|%IR|Ecb@ybPX*!WN;}}Xn+%n)cxVNC(?^s4(Vfmubq|Bnze0!Ztnd>&MCiS@F1M?a4hWkY|TqQu!C;y3U0>d z4j*_^zfcl^<5;3!oLcCDX5LPG~qnPB0$)_gA>= z?Anj*Gu=#Jyd0p*$nGSd4D;%*&uBEqwf$R+6?VNYItZeW57FB@A;iW=T1yW>)rXYT zX}^zELkHW-)DA8^*jlrZyetWSkVE{d1LA!Px~OYk?CdT&6;&9RRPh;{yHzCeE^uKk z@b*YX9M2acO$S@Uzm3n}9jcy~e2X}s5=KU{@Wd&;P$9*mM=~*`c@Mapper^K<8_mI z%l6~R#frDC-aby&Cke_D`Mrw7(l@DHf9X?ww7LgFeLl(#h*J@M%Be6;pSqxGVXO8b zoi}Wl%r1b-1-cJhPgFxA^Lpl-G;lec@41#}>Zds^DAdsCMILxqO|=}+TKl)^qrN|Q zb?c?uz9U-s)+=4mpqTn+TXG;94O^!}y2+K?2>ePfHjP|o z7^jxX+Kf<5%IL&vCF@36RgC13y>-+pyy2WNe{2flGRo$&R>N_?eFwTWR7OLwU#8!q zXavrT!3t;8(CW~~4oaUKeo;$~Y?CgTC>OISE0*bzrKk+#_@(3{rkRn(jNns^UQm*| zqi)CsxICciDW86GLA|{OX`GbGf_1|^#n#>LkAHU26udD^(3ZS$E902k1fo@ObLNpbe*POXu z^htdMHW9Q>5=3u5R_}q}b%*4Y9dJ)d- zO@n~T54v>&X2`UxYHRe!%NBcR%jaA$Q=tDW*NaoNX^$|t(s=w21F zV2Ym;lZAF1a;&m-!Kf}!NrUHX1VDFh*sMR_Zyn2#MJSYLfFogpE>KZIbFb+yKhWzw$`STTBcFlkWzbZ1^ZOsg-=XA_Ft8Mlby-K6LZ|xx+oGYW_ zk8a9l>^hM`)!Q`}hl^DexAo9=AYNh6<-l2y*p3Y{Y12^FpRJdC4B&e-m(!f|rcC(D zJ^G6m!_!Yqc~@`j%ue$3n;D%!IC5%8amK68qN#UnPy&@Ss(>p3x(y?eL(xvQjMIOU zW`BpkY<155Hr>&`-~1^6w?ZLpD4$knH@HjaZ)Fg1F)QiuWhrp~+@5|dM6VkigMoLe z6|C=wf^HYS+Gv1RGEHrS!#y;QbHTjZvayk=?;jy+67K%J2DlxbXuqE>)2HmF^LJ2! zTTvtE!&aT1c5GL3x9e22iiS{!s8i?Uh>$>%LKhO7{> zF~gyM+2a1$m3rlOv#s5ZMp<89_hvnz;iCiom*faYR=%wB9;5f>rZD&gRk5)RV;oqP zK>tdBE^5CC3PT>lEmZt9w&%dbSwczraNMeieBoT@S3|!8@gUS&ri7*4`Auf?`FMM- z@%Ts)QY0zjolb6TS!6*DKERa(UGgD$-y-?VpZlyTG*5Lwrwys|bG&7bZE)syoer^> zPZ%=Q>UL8TG#Er#NXtDwxdRM~VV1Nhuq>c_*bS2Qzcim24$Sp1+1bpiu;jt%tDmC`Y+x; zZs@2_pB^#YQqvad)hPg126TnDt2}P3lW5mXU>ptz@5hSX;|=RbTKlv>)+`nWvuY}+WcrK1YU?~#!jj7q-Dm;0vY;E1_DG{3vY@V|1pD2sLTf0p z^(bov<=uPLY!63<-E-`eIWEL+IA>$oBWPnB)K+pN?PXB}eNm+)Pti7~O30poD+juK z@OJ-nJl}9+r{B~MUWl2i9Ew9Ldmp{Cv$Vo;lqgOVNL`D;-ce%cJcR# zZEN~yh3ery-n4KJ|5Lk^Qnb2)If|4Xr~YCKe)lC0x--+Fb!C+mw>UOCgBvV}I6^k_ zznZuGio%~bw3^(r|EBJV({z6yx$)lWisW|76S8PYB$SW7QY&E=3 zwQ&gGmR;a2%tfqh8dGLh&p zELfv0Gw9b{2+@c632{^v%$}#=kC>4JN8@L8{9Wnf|N7S5B!psgu^HQ;Gn|~y z)3W>cy`15o*J~yrcHX@4317UJV-knyn*dx@&=m+f$KD(fTW&c@pFDutKbs`uDq{`p z;}q}Ja)!56EZ5PdMOw>yGQWQ;n&8j>(ebs9RBmA9R6lG^T!`Z547iR}16`FS2pH04 z8`%K}BEqEYAsE^D-m4?kOHcX4tkh;i?-tfD!n$x4!-45QRfb&m?<)l8JW+`6b&8MW zeCu}jkXV3t)j>Co4Kn?=9r|%5G|DiGq4B+Z*WVgBOFhZD3LjyT?;YHeVv@<-%yI-m z=$I>pa>7aUaDdOWp5H!9nQ#v z<|h2It}TslsZT|M z&h*qcX_h31pMwIa%bvk`Vr`gha+^YIjaODj+@n9UXpe5#R&CO{ts^8?iS&}Eat3Go z)bI>APilc~4@(Xdlu9r$QjpvPCDK~+rTqNH#oP-1ZyyupniyNjo7QG@tOtyalZKdX z=dL?kKR4MCh7vbS9eTrl*CXhT%Vs zjat|?I2WbRi;L>?#$4^x5>skEnlLK^ z9P||QqR3Ef3c-RWYM%oXem138-$-$X^IE1LHqtErcSZGO6B}<5WMj-#3BS&)-N_{FNtTHUEZ_G0BMd z-fFtg4JXMO4srV7A=S6xLtn{g3b?+|1zkZ8CE?MUWH{oS?sl&LOLfm}cdbwpUM7ky znR14-E=euih>m$PDLDCE#KXM%tl7d)g|F8Q6C$RIw1z*_e@6oSpa;4c^TYqXIk2tl z^?BP4mEteDEzSBcjWc$9)1OH{At%T^$6+iVUExE(oQtZ2anGGtF?2^|Pq_GN zDWI+dxcZ>0k()P$xf)sjRWX3f_M;&huc>jJhH`+pHF@zxC-YGs61f!u6V4-V;*&oQ zKYQ_kqLPqP&cd%rzmrD!DeYIk0M`I?8)hKV$vDrM5l@h;3L@H(G}+9VrjWgr*w!6~ z$Q>nDd(>Q&G2q;jzU_Oa24jS%X`d9A_4ITq%0#844@tOz`J^G}Zo7G!=)SVO;>q>T z7N}liNl9UZzF^~I_&QopD>6!2PSbTNI9F-qCz;!tLjnJrjldDdY+M3w+n4sj^&=&| zF%Yj2=*r~wv_Tdw_a%nEZiFDse~!O_v=^ z4m^#i;oVKVR4Wg=)op6>8@IJ!i4Z@YkGIk>SOz7W0@nA>-vqqGYX-VM(3gW7&fN&# zi>WN3U&iIw1m-ghO<9@=%yy1^R*nAWf&!aT9>Q0$D@{UUF#+qcY5T_V?s8Yvo&xGj z(xe95*E0uQ6Dov#NM@7ElBV7yW;m(pVE%(Lvk19jUc;>1PZg7m@Zm7gQI}VcJ-Tas z^OIzss!TE)-db=*E{Z2hdPR- z&*yGWWJ2YR^;8E8?cM?i3~xTCk)@QWtOo(-Uv`ds0raF~fNKr9LgpV;?^HQO0QBMo74DM}o8@$-7zFg3zS*+)<`265*2MJC%8Vg1KqHb&o!e)mxhFC$oIKO z^m}z3#&Lz%xVzc1P(-XQ{oPvACnFlIeimfs2=X4za&&HoL;cFi6n_{o7X!?jBacSDTW)O^#V>=t&LHFU0{p7G>{ zCeu3so_bY95~^V@$Ob%b?*O_c#^#GO%H{1dUQme(?Xho6eMTc*FChM@go3_K2&EzX zs?vh0Z&rj#lX0Sh!TGJcV^h6JOOELv#xx{jROA!5&+7=fHySMBVl#&RQ$>`(C2%W%la|YdWvPXiCC|HvxBp!vwx~ZR#@5P8Fug3Xa7eVx zH~{HB-tB#a_!$-P0&rbHH&=)c2~HYusX!&n!e0sF2w?|V{_2kcNpirQ8}g50n##}J zv#MgML34?>U1GkWn*J1*{!Uomu8q7;u8P@i9Rb%3beBR~M;y3Fw<4Ot>8lUNU56nH z^jm&>)q(a?uNL!PhEdl>eDja(;*%`Yc3Bknsj)-%A_C3mb-UN(U14!Q-& z#53LDxo>h|i6f=(0whsgo2izDr}t7wV0gBzOgj0e@-+B*5&R)re<*FIm&LLVVCddQ zl!+uYQt(_>DuMer9-y1?D(&b^lREF%!mp5+ugwm%ZRDwjFp3j~!?(Mw^X_-I1NIY> zO*US)O9@K*>hlmj!!pMacM;jxS;SBX#<;>jyq=)Tp%W7`>{S8PRmb|5alxhx6P-Dw z@URXd0M`q2we&Q; z^quxl^F8I(Or0k;p=0!Jhh&fIv~z{q9*_0&D9_!on6X39w_J?WZ}=hX?#E2GNzM9y z>`Uk=FAO!v0bFm;bq}u>F|<*s*7#^t@9N9@&X9G!(EB=mljj2$eB+ij^>_E51v`HT zv`bre#X|hWBRzT$(1g9osiyjdiN*&cXP*Sj4=*D`o87+FAd60+(Lls3%camt8kzH zKGpqq0lieUI>avtv5qlh=`>taZt?W9H; zb4^qjW@VhF3sXcHwoxs!p!j^ZJ1Ei)*S1c(F^5`xtiE(RTBd8RxBdQ+3GZj4t0mdy zsRWJ$>(8IRVR-4^5YT;u%u6!5fVPM^&b^~(@rpKtOww>(JPXXvLP6KpBjzfI{YtZ zQE?sRVB{?v+%6$2U$q>)fB^9iDZ}LldtV(*oK*tAerOpe(qr) zm>`PCf*Aq$J0A|ZDJ8wPP~HU}ox0YWALI`udlvIGzjr`dV3WFdX4H6+e|7Nb;#HwK z8Csn?VR8Gn@R5!(7aE<$I`2Cn;l(@~_+CVS?i}5PnZ-9UO=?x@HhwELk)1#G`WI&L zdxJByhQBYS_M>1v$>CJKiI2RS`<}vLEb8!TX!u%!gz;6bGA6FBATRLTzJTuJ0%^T7 zk>;1{4K2;|en^>nS#?jH7>p(jvb?&gOq!(D(Y!a0?}G8KIjfl`8BRoSamti2xL@s) zrJBX{cPWem?pM&gfI0bC4xzxZQ)^;7ueh~Hz)36i_sz|*ZC?M%XoG>^nYZ(wUBA*5 z3bl#QF|tQId;{6h9g@XK;Z;1$qk4bvJXa*>N?;_sA^XGJg15R$gi99IpQFJx5Q9HL zQ4nI_II4SS&w1BhqydGDAKu|N3-Q~f3D-uc`790=^6J%Kx9P!H4G?b>=#H^NA=C!- zG-$~)$47=F)jOZXE@HO}P3r$kG-C^>vA*phzqing;!<7ny4JXj{bPkHp0)@v|%c$`bWb758JF8oPcw<4guxJ9K1|y5e z_-)_H&-UFW9b1cQ9EY)LY+lEBtHixmVQ?u@nhF18wCAtyxZ_e4v2-u!SMP5FXv;QG zy3^dj`8N)9&qc5x;FD4g|KLa56P@kuDb42*7{vTq7K_!^{_OLq;a^QYD_d|kr!l3< z=m+C@B-!ZAl)bL9Lv?I)2ySi_H6Y%2(Dmb=^_8r@z#ylHjoL?5ch}C%SqgZ&)_1%f-@uG;~bh5LS zY0@m=>xUS->13B?A*6JQ#Ps{{3O6}AyR|jsI#_>ootDhpI!K@&(m?lrIJ>K`E~55d z_>^>qbfTH#2MQ zwbqPPT4*f1OFx<%>~ZxIlJ^CAZEc4{mMr(XW9MH^0ql6+GcDXtCfn$u%4P~DLdJf+ za`@uie)R1v&67y&fmH zY|3`HKzhtsAu8tbfebNPc0@7TdNCyLJl-%pPj;~)kT)B2$I$5T{lhi;@Ysy&U7}Bx zwo(NdHGX3ldhfB7-Pb^Ku`>zVWEA4cz-twEzpWXU@hRbO%QTCy9bu37AOs_03%EI; zE4k0KvX~`4NkGUeZ}SN6V3vXi%a-7BK196IMg4e{l%K{UF%hE0*5j92LoSR%$o%aw z`x%?p@~(OS`{BDa*#FH1-MVgGcBEf-It|@v>3(a?=w}4B=r6XYKaIB`uX-fE)e3dA znKyIlV#c}D6_%51$Ghm^J5wXmtGVryFyB$26ajhjKv%_OX-kBVJWeNe;xhJ1vM`;k zyB7U(UH2!0GYLiPJ>(bpXJ~tTq1T6oHW)6p-gDS>XU<+V>(MZRa~hg6d_=&_2i=|* z6(9I0od_$$OImVPGtQqrc62whcbPQq)l!mNmlRkftE&b)zowH3^AsKUsc8A{zPYz^ z$(2hw*}re3qaSq<*%DAp29@N+zTsVmVuk~;myyVTElfyliDRDoBIF0?mKrP z9|4u5+kBKjn4_%)QP5rBKi)j*6xk19lBWRnJ->pkn9Mh%b7p)=F;R{rw5&^7b_cc( z27O&84Akt8cM%-6bp-S$H?RgUS<(;}L6{=m?~K3Rn7+chWShz}Ef%+d*U3WAr7$U| zW&hAfJ?8h;%Tb^U4$;ikfav*(X-+A7R5wr%Pc4vaUoG8~f1Ve@@d{$H;Uc7wkJBxg z7lCZ*(Ab4D38-%o==vnD)pa&nwksj(x~>RTj^bXnIP5(-LMO}Jm{IYt^4~X%){P#) zlHRuC&J_7ujV)~urC#t|lKZVW4y(%SL;!9v=#HmZP%F*by}kG$XyWkq(X6=@_Pa8s zsX(^ZAjI;)r^Hh%$;A%dsyy9z>S5>5KcVdt4EK!>es$MXSFKQ(z8HX80=hnGU;0kI zTp(ryu?l9kd2JV|iB-rD@!)UZ%rmnZEHS@}7&_$4n7S__{katWpu5fdS!UCf?OJ<= z>2l`Jon=1YmV&Oi)s>$!@|ZQ;WC?byk=<*|!lBDvGH0Fq>2#?d=ZGsmp_8noiflZ!88W7Z-0YHwhld#?HUub4z^l)l|v-V;jj0#iOGkhdIkvD3Asf>xs{ z4KXDV&s>V5#%f;O!m)+iE4`}e*vdW#R*8JE^xJ1sOQ_Gq;KHh;gZma^{~j53Wt?XB z0-CfNykAs+F6u(Mbp>xae%hVW!ERW(8_t)$5OlFob*)>C!H=?ch1`c$XQkTse>xv{ znGQPG`QJQt7}D`5LAC#KLho3keF5@Tf^JjXk|~}@Dh1TMfD~s)FRmykV28EI~+QKW!K#XY4Ie;yx9nhPRPd=6$5FJ%p{JWfW-n{cj}5 zfHlco`a*_ZB}?&Z%h0FsDSTi7aBD!f8YLiM^rdBXc&0xE4+poeDg<8NDk4x6_e&f_ zvTGYT%h@DlkK~C<12-0y8h@Zna$6qWJ5AA{_pmLBQjbpHajOMg)I%C8bxYHH4hX0@ z(hv_0Z+;=Ekh_sp2uleJY)vN?n_pK;;!uagr1%mIN$x1CFzgST(&p{xJ2YSG?yy$C zeqSBvq8j-*6zx4BmsIR91;x`K({<~y={yin~=%#Wv85Y`O*y}MkgyrLDKtcNOz zTP@BK>lP$BO)}z|_52~4anMEoP1_S|CM1O6Q6xgj+XMA&0NvkR?ed?bbBrIm$u?3A zMW1$Ev;sLRz9ML%jvSNhs6|X;nuczVRX_$TO5R%=#lCN7PB<^S=dHUznBXdkvjFe& zji9@?x_goyqd#ndSTm_t@njrTGuzN!#;>L)9Ofpz&Om#-B2%9@ZtNYth?}E)ZqigYxz8C`XyZc#K9u$a-J6e3TDX^zkGmQs!&$#TRON)lqI!}1 znS1}$Z?g0YhVge<9>8q{UB}2${vVnA9;8>r4FX=h-kaeES`Gej#UA8nHXaMHmH~rN ze0^yVwv#FSHe;)|1~r5|Z;&n#8)W8G)*qoLDgn0*bnny#=NfaSs1vIKbz6ww7m49e zG?$WP^zYOItjT_F?}lek_*>>Ox~GVX+=zU3F{bt-Rr*sJztNq}fVB#@w-31Opv%5I zsh*x#YijzP3BqlZ-44#_#QND$LQ&8QH=5jt0GeHE4Xk@G zw3^K?5hj?Re(=880lEm4SOJgh_YXhcN-Z~2cvzf%AW8C52&qqmlG170w!kpyd7G=( zG3lMdm&&dN+%C|Cc4uN% z;!|BMnAEM#XF;E-oc&?3jO$%31OfG-YBjE+13K0M1DN#Q_oYu8iUYaL#N*`i81C!DDzDF*Ya) zqhw;vKBTLLXa8s8fggsfdh%fdez!3DHoav*LlcL>r$fWp({vVF@VNDW?p7XgUh%sm z*`m#tyFomi1JA&L5Aj$WaV$h_!<5VazA1s*wjw7fLa+Eba{hoz!#(*9kES#}P^F#T znuaqM0|v<33%a}&KmTnDt?MH*nm%H;DZy;EoRhMtavl4A`X$Zj(xi8wRK|SfTT344 z&9Z$D?1SA>)x%EuuFG*X+KR0tt>GEq_JJ;b7Jh>o0v0`&dU-pG<_FUWDYUl=f{57O zZ{Y1pqXHs3#iM9Gqlz>@O&Uix7`N_tj`XFgB|yaBK}k;LcoUgz5hiyDKX8d4$n2o19bYPw;e`LxuB`hP%_=v zk0^tv7s^-K0T>*H;5AP5)qp8vz#aU5+!O}N$@GZkxS08hk`UcM?Op8P8|FtND8qCo z-B^U$ws4^~bMN>sP;qakPZ9-h9Vvb6mtG+?=t;x`Uv^W$`Pd=QeIpnA4Q30I3^&4P zsdIg~UO02TxRRiPnn1T=AVqyiw6pX^dSxOs`MaG&qot`E(HrJ&<(Qj{{sIp4Bljcn zI3VvZ=<*U>>>5%2jWwHrPAn>7s@|ORJ*YAiN2gWA8P(@$ACdeiP|EM7sM)sEIC-Qm zFZPRP>DNomD`P0<0yl`62fs!^E60t7C^$pxfr$byT6UOcLLnBMPEi-85^=eXfdQ zmID8m9QIqH9|#|;%dlJAmTfAl_yg_)=nfRGaEUMWREZU*&^tcG zUa>#e{5{0??|S*Yg@a8TN;d``U^7oF+(g}{+Sa5(l z3A$?v*l3d%spsr0z0Qw94-y%@ABgiMChAim#RTDc#9unEYyZw}x3c1Bvwb@?+gx$J zU3s%gxFA}Z#QZdD?&t)#-$B>HO}+s$Y{w&bNF!eNW@pW?Qvsqjd>2VOmy9zcy%=A) zHCsvw^Zak6eCfE0?Z1^)ZgZ&wTK!gkQfGdU5D9?u=u@Bz{i_)Mt(8^3xq2xE-1~Gm zvhX{4kJj?u?6L3mwP{gymhlyL)S@;4qpSr3kmgEqLd(ubRgn8ti6&_ROi*;-I-hYtG4lX0MXbXPG>=4RZL)(JKfabJ2@Ue+v6c%NfJLmGmi6GrmM zngibJje)n4oD%))4cLxexD8rX7FrMDR{F`qYh8(m?X_{msksur)hVRKTEKDj9Owp& zk-_Ud(GFy$zia3SL=Iqe=hxbQ*prRf&X~K?#`VHTm&A24EgUj=vLkqmj)HHy@t}L3 z_)`*I0DlK*jQR&qhk4L79Q5NCdR+Wu{)(2p;PY>j00+zDk|@!eZxCln`rS!0P;Law zp07RCff{pVF==0yROX+*1+`>z=@?z2iw!?`0qz3mjtVX+UF1)`_^Y( z`vmFq%sA}1-v~>jO0;JTD`jr3MDgWygH#z_Z{*L|x|h~NQZj6yS@|t z`(g9EYy2vDaNWuh=xTXkOyMY~>FCR)Y(ZQdWNA%N#1Xl)?a&~6x@+K$xXyf=us0%( z4wd}!E@6LUIEyf!rTLa)%Lc}UlD0_wmKeyp47yi{qn5Kv;p4x`nIHB@!!5QChKi)o z?yk&DQ$OoLb$>cE%JegYsNi%MXq|U>W@net_;TCXo#W z<}`$*@T>WL69ykLKX?PAhayu8m*&2Zsgq1|_n*t}x_SsaJUALNOnvfm4a%<&iIszA zjm*E>km7-TjTO)>-d;=QlN`9;Omcr)DQRh37(G#vuaFwRCf=iqW0+;YLS>5dh;fIF z;Gqv0UA~+bv-Aj+Y;+j)s1}qq3WSTEsk#Fc18V}tVzGwz2at2u?nPfZLS2(6gM+W zD9?A)yq?m=QSNUod$mHT$A&LgeLas zo4x3Sl*bVy{d*k4(vC38X6 zs<54jd6KA%MC91V-+C*J-KC*KeuAtW#;&>2KJAQ1@l)K&!+5Fgn3=9kvRZrWq7gqR zfI4i0?&JBmX91ZrL=*vWyezkaDuePHK#_o%>+^?+}3I0Yl}{C2Wg@3xYo-KAtBRt90ZAR zuJb>&a%A;tAf`M;2p4k1&__r}UCAYAUVg-|Zqdz6h6ezZaHIck(0fv2%VG zLrwqYtTD3Y7qjORT1(_bV{ivJueS%f#b03VROJf)ovO<=43d0}TQdJ9RH&Z+we5R4 z2c7REy`LSU6pYgdCndlC9Xx{X^W%@`d1YZ4|56tzom*s91?1fa-J(%NKjrDqul9Sq zqXwb}_0~mlRD|C~VboVRW+bE?wzpPTOSnX%f1}+dp47u z^}E21>iA*OTkqX0ja*bG^JWF<`=3Z|xol^Wb6g1eme zw11iKV*%K{Tv2APs_Xu=%#rq@8N|e}*^zoE5xX+0fOH|?4$m!O&QOdo~2&ohB zZzOOa>j;g<+m2|@P;0txNrRVyW#1HFAAzeLRk7?VTFVyW5IJ;t%U>v++i7`=7$u zp^2$Ty%Vp*kE-^cXTkrOM?VE!&HLN$nOmY6R4__Nvb(K5j()D9PC+NMBLWY63-y9u zWzb8w?JP#}4h!%?H)`2=Tj89oUWMn6`H2Xe0t5KK_26fqJ12@{WfqByS?dDRHYIbp zaGT>^X&W0s!)96xwTadXm+dS&O}t27c;Um$SVH7XK`o?ErLV4qti2rZ63F~k9H_%N z=pH0x(n6dvw6P0NsRzT>pXfnr##8AytP!&ZP|&?3!`77b8#0AK$u++fvES zLjGn3s=lMXX-?BPG%RX3)GTLSHDLWH>FwF;1APs+m!ONX^pc>lYcS#O`P={f)#xy> zgxd;P0d9NK?nA4B;gaTC{tHW)v%X~ewneB*SIYJLg(C;m1&@Pa8AXh#rWJ61;T7nn zYA+gOrg?YRedg+1xY0$3h;&l4%KONNs?NS^{D9XoR7U!Q!1!JYPG${pF*MVO@M`phCvIu@&hgazlgA~Xowpd?Km+Z4++Sc;o3q{jC(Ovg!S~3n& zuFI*wq88HcrUBeL(1pw(fkpL`4k9KQ zLrD>7M6=?#$nMEeXw)Kg8i{%VKbp(DG-klP2VJ*bD4&y7k_EYR@-FpKm#x79_=`*< zPOtIkjEYaGEco68r~bt9f{v*7EpMlL=1oesUPQy53Ozp9^JtjoB!SPz51@OOPnPkY z&j-vmD};TRbk}G4%|pAg%fD=@xOiJct3qy5Xa!NBw`Ys-aMbqr!J@HZfWZE>{d_`S zq1PyTdw~zg`v|%mP8P642$ETtBZ1VGbQ1ecRqj7H(vp1#O%#&qQrwrs4`^w6dn3;B zI-xR0tDz!}`Dq#6hQv6Clufh@yaNRL0x{=EQNPKtXV+JHuJEiOXw@a3AVl8!0R3(HE zQ@YHd-D{fc^nTmtG51m8BHf@(X^8vq-Y*>m>lwGaES4Eove4Avc>xW&!|kmDO)0b1 zLIMoN=7U*Q@iZdt!o%@lEXKn%~2Yvq-1f6@y zj-^7G+v3TE&zgj(HNV6gomMxr7y$PT;Qrqu`2X`iz=Z`|7zl)jCLwDBSi|W0m=Yap z0iR|=6h#v)+xvO!WQ1RSX1(F%WT)mi88iY*+rhXO4&xM67g=}?bCuyt5He&>|Cy8j zpYa16=;De+2C*AXSoi+oK*})wJk)n%uEKd)PeoBn>Rw}I# z0?V)t|Cg`sr<==(uR;E@8(KhKc+h1p8pe#%i_dc3Z|3(y>x&dD<^FJG@?p_~L=b-9 zw*tMSf=;bXoVu8GXPc~_4 znlt$>@7H2=SYw&Z@84w@Rj$4*llu3l9J|0kmHr5l&Qwnk_ZH!qnLsFmd302n}=_QdK6{qxTF%%@O~;miNdO z=)B$upQQGjTvM+-}nomtbh#kb^lhw`Fn;r~^9a zu2T$)hso{tZM)&JmEOh++%Id*Z9oS!Oms8~f7G)|W z@ArZr)cOYv?wu)m!0{Od=(_c~Sr*U4uDU)k@=CrWL=q@>OT;7GP>T%JX6_d2ieQ~M z&7e7c)W}io<$^rmMv!HYM*m6Jx=vkwA#~h12|jOPf-aQed6blT+gXy5`>CS!1WVz( zNz8k6wO=x(>Pj(L$zDMoJKQs-`n?C~A8a;A@BQZc(hXy8mG5q8cX-}U4}ApcfCai* z*S8#zTk7uT5{3qX^8BKa9l=!B9z(xp!uQWGF$J z=J`|2xgiwgT3gK@aIr!6U|6^Y(je#y-;j^k(*W zB&FDDdrNm?IOBMlJkD3&D$S(SM(}nQ{!)1x11=8e?!scGX`&l9HEMr5<%sxDNI!w} zop&(0?=8=`LaNWJ@L-6gXDCz+&9_Z@fY!m5(-kcuvcWq>*hbE)Dn}7bw z?A_g167Tx&mGiL0mA0~(r55ZxQXl`8qarW2l=pp3e^T`)`x4bD%kz{4xcH#EKEv{M z*?Kqtk9oqTjyNMSWtkgwe@STe_l^PTq0p*`nPZ?*e_g`(d>Dy(D)e}J4BgVt#}coJ z=gNRJY+nj+ev<%nIf^WvTZRvKdV&h-`P1SGx&l3%YlNj;ccgMEiJu%kM}%us)nV!c z)y2cC>0PZbWV)nB>GKYX{kbQJ$38q@1o9GsE-cTd)6K`XYc^aM_P8!&AKnfB@P0lB zx}y?+LbNlsdTNpWSVME1Z(XvL!eYB@Vq#yUrev0mJTyPf`Y>GD6actHpnLDB+FBkH za986e>&R#`-@SIwPgq2;xGtR&D zJ2%GQaQ=Mi%gO&)eoyH&8MVS$C2s`eB>~-#-i!E;tg3m;M>C@LyB*`0Yga*ekJ7>E zTu+=9L2?SLm$wsTTF$Df_xPs^7a~5Je9B>~v_nDd*NYbmxg-Di=EeVvA4oyBK?LRJ z9D_6mm1cB9Abo4_r`NA}<2MY|Y?+UV-vY1iN3Gr+8n3Q9ymT85to&sf|B>rDkyu0E z!u{g9!nHw0hVPx!j%#iT_7(x=t95GP|Rv*>9j##D>j5~#k0MJ6L1J6 zNm2^6 zQ9tQ=Y?K3BO3;0tstgQ6NHyL?TDpHz=r{@Yrl)>o1#(qO?iKwxCT~K7 z@#tCcvDZt1?Ys^ea~wh9zRPG3T*o`Wr2^gY%(-kN(@UjA`prL*eUgma)GeVJ7c&Js zkcJd+qzC7r+oPA-K}L;A@1%bJ!3(fR$|hqe?2}|bM#!wTL>>ay4N`+H^01c|IVGf) z)8N%jh;SDd+->lCR(-+9R7i+MW zuK@cn??Cr%Bqc`cjwKFPRYrbsj}UF-0(0`C)_3c&!Gt~7UH|@m;u}YYj)t9wbRwl5 z>4bwf64#67-U3QcwK})P-fuO4y!4>!^ZeyIIN|yLD(8?oR5{317mwDyt@?QeUxS=f2-L$V+_*9AV`G`8iNv zUxN{J%^@74m46oH!lIUx#_i+(@Vf04Z!i8bcR8c!AkEPI)2uF&p-*JMygcnjOENJ} zcfi^LhJEwP-XL_)5@(*IF;E94&_y4qZZme>r8rWOz{>F(DP>!5A4j`w;u*CMFxfT5)Pcv1 z1$0M^hrSkl_Dz5GWADz(IHpCvu<*?3XDvBA!|jc-V@yhhEx!+K_tVnYgt-@^YH{VY zCv`Zlm5qBliaSt1_Vk~%cmH!;X9eBidnL8m^&j{yN?XR-&awS|n&pcsNk(wl0vgT^ z$hHzDzvVIiwW6pGigrI>_Vl((YCdazl+0j3;&I_(y|4rO%50!JSzd5RT}4CEI@e); zT0wP;*UU>U zP+xY?=kI}mKR#ZBvDoRr-OGtaVTmBZ*4xCTrMmzw z7wDStPEsXfq`eb_R?Wbs6|$o_8gIYu6C~!|@WJhLa=#|ccE?w(d3?5<;-q^j?T$4& zia$wGbC*n12x`UWK4}MBZqT(|*pBtkaZq5POde*+2$++1!FgCF!FiBn3nIsUQn8*Zawi%-Pg5&ua;uN+}~9Y(E) zJ|tcVyX>T%dRzCQRMy{s%Llp(9V>zYn)j6=g8|%f)m;}=q1X%DMhq^G*7fLD_Wo5P zhq=oAQo$cMTME_$!rec74)&>$Fys#6hrVQNNzelO%KV_~V#@k8&-t-GEP`;ns&v}K z)aNBJ$vC*LtfdL%anZa#hT7CcyM486=FyY%PhL&J@e%UBmFypfL)BlLQq)(${dxkR zYwMCD2!ZmxQR3hD_J$>k7VsKMb^<(3RN^TW3hv>$!aP)mpn z$?uT1TQwS8&N|ZfwtzYag08aS!7w%w(=Vg;Z&7qXJFRJtQ6y`@Au#L0qUY^hlG8Y?`G3FU3|;@Wr4NW*8wyIgSINeFZ^ zj&MFnu78%VCC@}Am%TXOdrEU&i2F?`%cYmztkxQ;935bvm@y(&-)+w+TBCnA?{c7% zQyMccHjYYt;5iPyr&kzs+gigX4!Y$E47C)CfhBQtwHp?s6~GG z@sq_Eb*2Z}GXfm{ih*v0TLqla%r(dKZK?Tr?}?qjUp4CN`A5XdkJ9qBBp>A7O>*!! zjMN#f^OTP%zr8jNW-yhs6x(fB+mN7VmtF+VH*wI-r83z~p-n`d{S+L-A2UB5F4L75 zOG{@G3&oplK!HQ^f+O$IleQmx6>#pd=MI5-ieH7+$JZsAgQAJkRI&oTmsJ9E@qfRj zRrDE~D{nb5q;4<56{m`i>=L)?{pk*acWQ00)#ru%ONGhuE6ZBzsr!8TN)tm5+@~f9x}*)H`24A>ttW5#t3O0t`c&GD+9V$!;h8eW!V4LLeKnlje&YX`7ZCY+8W2Q8GE>zI4y_mSS~d{jvS-e z`mP@DPj`H z2Lo0|52>ehE-~;{km!OK57P@9LiDPI=bxI)MXDu*f2ba~7zq@T1FkISmPn~RkZY4? z;pEkZPkyKR5LokbFd8A=!t+pu>JMVt3sOM}H_ zsZq}Bdcc(fU15Fck>Bba@8j`a`0xiZBhkZiDvfcBPWM)rtH#nqBQb z)~oDidWWliuF|h#U@-F2JVMi%cz8nZiS{ac#6CENOt5^qIR{(?&?Ul=E9Oiuk-)#~ z83=TB3qlsq;>OqVzBy+bg>BFb_*3`u&!cLoaV}2{Yv{~;kZh7ihO6}3JnPjD&{+;7 zj)s7%2)gY=ZdxwWguMGJT_QP#B&xmhm$vgq3ulzljhH)=Fu$i7Tn`Cwa>7OwJTRW- z26z>lEBUVXuAD!)Uw>NXloV!=2loIO-jI_ z{S;=~g_+_~8~K~KvU#JVw!q-JZ`X3Z(B;6lMBMllR}<_LD1)wW^@`_(Izer`MOl=o6NLocxH1y zyvH;V6w4CFj0=?)_Ksp1nZ&Msu-~JdAlL)Ez?N!M7n8Os)e(3&*z ze34S{**$8qB^xUWMU zbbG6Fg-tBy-urp3{i}9s~{~SE$2;It7Q;a$hJV@MvbKv^G1Jpqmbj!c6 zBtFZo!|o9|Ys)NX3rU#rnaRERJh4go@e#5KpIQnI1*It)%>_9Sg;w8--BH364qk#+ zy$>f~J8%xxQy*~kKzE^(Hy^SQ%HX72qS}n?)T-XbqPe@=tnlMuu>TKsm=`(QX2ye2 zUOd9t6nX-)QDxkxxp?I+#JLz)Sqi0*=u5!;2)e~ug2G?OQpuW8(_Kb!$Qp5Wv&>fo z10ai|k5B6Gk^AXYlg%!WxUT8SAP8kEsvL27`C=Z8s4wh137Sj~Gr{L$eb7Z3;|+Hv zbWPCB+*7`_p6AcQef|+*nwzG=H~INhU2)r_iE)*4wpVk+Vt;D_VNOt{iIK^KfiRHC zeV&a;m$VhgYXG{g>czg1+vg=!Y{R557(*PnslHLB{)dar_=)EwoCo;ka!qAwMI}^3 zuqSuLcgEY&QVbD){UeE(Heoqwz9Dh}t|90Wp>KIjzl@KJP7k{C1`xu;=m!a{*drh^ ze!(`77O}%6bx7<%5O8wI(6ia{?u(nbvta4%nG4@M>vl8LJ9sk&xJIBG`lyk?Exu{0 z$Efx4fEndS@DUzKzfA?1+2fb(kECZv{5YNXJNX}Xws6-ic^oNrT&K{HyYC*vWOWw` zrZn_n0M{6Fug+b0CRGm==*(z$i$AKaP({{xL)i%ZF~Ya&^14G{OZBgKPhrQPR$GI~`GvJzlt|fAsFHY%7BFRdfm5KY9`YpFlZ=zj=zH4oh zc50W;UoAhMRvgUy?MO2}GV4HmQxRiQVZ)+;ch5T+B5SIdV4uJgbk{n*IQ$idxd?aI zmXAjURWj}WBUx(Qech<*wQ9X$uc%3>SZOHvGusxX6rX+J0D^ndE$?d0<}KITaxRl z5Ow{bepH!s`b}stwc~Pvc>%r$*&KA2<3|>YA0t>rGp&5|@>Xp7OH)qw>cMoYHAg=}JN>LhhQz)^G@~c5L?YWFD&xPgM@yH6C!SK{vltlE(XGzw`?E-@}gT zQ{jqVEN|Aj@`Sw^q^8Wkm8|X1O-TQG$=Np%1ay7zQHxUaPlX|Zua&mexql#M)XMmhaMeTp~y!}rf(H3+uaG}f#DBb+0f+@_$xy&vSMsfaD-6|K-J)ho< z8^Nr4Q=B&nTL;?Xg`ST6G47AIPSc|oYwu#!c)wou$;rG9$ZH3>LcVCb8}z4+?~9p| ze#pR18wkLtdeEfajn@+=X5UcY!Km>wE;5fO8f<*Gav!_lFwuUxs+w@4GOHMPkokP! z4Y>B8+vx`jkK|@*lGY~kttpz(>h*liSh82x-_sJek%0!bPh^I$YNoyrLwn#Q(L=)I zlyFBliRcfqEm8s<2Qv@aJm5NjZtGD3C1au_e_;P!`=IR0v~I^NLUd&>WIeOu)krf` zAD{b0MTk?_G<=A8-cP(`_tYBU<8o;2N&PS#2N%9lun+DCx~eq{SqQ|0m;_g-!JgMP z<>B+E`~?d(^ZO4&y^M$)-Gn>l?Lm=C-YQs?MLAC090vKvrb=A8)7#Wmw#!G3V*kwx z0Uz{lxsns;qIP_5Zz30s1&PfF0dpoXB=T=hg~dwbR*Ag&7N*dby?@`uvgr& zvXPnUs%gm&7eQP4&)R252zZG9xUQf()7*fAFdeu}d1VHRrf?U=9CRy*!F?)?xWMPk zU-oZ79@>Lt(4li7 z$Ok8(gE-wPEJKM8wc_vyt11x!kOOE)J;i}ST2hS2-OgnmI}04RuZPn&T~0?1o6d5> z4asHn|8=4M>$-z3C(pfBxgX@y%DLSFey)YqK+oXhtPRR11(I)yDv@=4hnJf9BRL-{ zl17_dw;k_$&7;cpznK5{)}y@x{}WYP>c1`oJj}m3cz~{DFgu|q{97L5lz3LkrDzr3 zhzoc7BPG@3A)RL1IU(j}DHpOYeAS~L6}`>04eN{9L`rUH@QAmWg?Z>G?T*r(l6M-@$;-o{fdEq=f8aNXDJ zbo+w@H6UrKN}Fk8VMzC%cWV64b;k>Ip;FY?)!>EMNWb+*6aM?K^6DSkAtXqg*2g{$K zIllm|59nHnM<61$OB(A5??MY*9<(}qqVk$T+M5j-X@?&2#GxuE-;mf9_bQ*dOhRIz zy8Jf)d|XGyb8>ZmK?eIo!pvconR!)-@$m4dnXx`%ht{><^d=v`j*K1aOH8~+Dnc0vr{#NJUzn-eEEr5^im*b{cQg4wWL`+q1J#K2)b#%tH;6-pLbeOHI(d? z+F+UZX}F8;&gEprinYIsVj)Kl<*d?6UrQVwke8EMq3$77)@}H8QsEPHh7&zz|I!28 zAkdZkjW&bx^;0na*(PB!%aWMUz>aABJuDZNFpa{jyg^1`Aa=vF<)YYe?+(|j|C{&q zDaXDDJOoyTyuPg6fw|m(8w|Q8_k$_OUBo0TD7}=0%*#on+Del;!V!@A!(*}tJxTaq z#f}Bh-mu1x|0eJ&qvkhEdp29)zy4awsLI_Y9W0ee$SeX@4S?7@JS~(!@N{_!+h6mr;efzO=%D&u^ii z`@PJCPu*WUbnq)u)YIyaaA>DYFR9V7G&8#U*>uHyE+Wnb&T9BJySGMxs4I3;ytkga z;8CouX9P)$uKYOB3y}8{==!dGv1yR?cY2q=fn2jqJm_N^HniR4ZImP@HJ4;v9R8`yO(+6}%sZfo}gw7tI>G%MUYBCT-}L9SY*= zPwDXDYr~13e16UJjbz9rH>%IQz(NuzTgcw%a-H~oqqS_LP@vA!Z1_DYi~(LB!a)~1 z`qds!CK*|5R`HxeSu9&W69wzftW<7lzVw&x#dY)^e=H##pg5bT)p`zwJqD3fjgZGW zGoRZA>KVEuA=k2iIz)i3m(F^G#wUhUWR>WP4YgfO3%uu>k0J`<7oYNWREby5aw){3 zKHlOX(}+LD*K1PnJ8H~%c1k=K*By^+d3%$QXuxqd0%4H9B%7FMNS0#ca%U5{j9 zN=5jhoW#=ZF1TOhGwAkEXD95E`1Hw6lC4U=iB?9@8h4a;&gVBsFodYFp`00~4dvPR zj80HFxtSMjqjJ}I_UFdg1Zjw0%-<$jse2m88x6Y5MZV=Bo93*KIVOGHLlj#TWoc;0 z5!~HS9SRs|f(!j0$Q7!v(j(w&l04}vzV}W{h{yZt!<&A3a#_@GeRl$`6N>>|w`(in zPuzWd2l?ikKbt7(tBpye+a_d1+~+5~chNp4ay5xpu;ladC=DN%Y*cP{^><;0@bMza z)1qmt6lJu7>#Jiymlad=Gp&{HF_FBs%aAbH;|~FZ-H%Rr1KlqKwh;+cdn6~JQGGh;%{W=c9z`+t zLYM5e_#?#du-D0Xt+MMs8du2oj|h3)A;VCW-X#m%o~Cp7I34gHF2@0GJm}U&QJby| zwa>WKE)vTOhs)7jh}7u1%g5(H2bxXAoMsv;VddmZ_l9Q;qiM~k-qBQW!oV2SmAI~< zI=&-KS}g+HFQB{6tQ(pCsUJ-Z`OIrnMS!$YyUW;cVOyGOa>G<#7+uAWqKDGF(XtuJ zna$MD8@_+ZPN}|#KZEpRH|(!RDH0CAO#t0el*Q&Ot<^T6#)8Sl+L!;u-dn(B(KTwn zbhjWWY0wQSg3?`*N_R;~iy%r%Nh7I%qLhSmDj`y$Qc?nfD4?_;Dsa}k&;9<+I^Vay zbN2que&4;ny=Q*U<*fU9=KilW*R1KehvwP*<`RZw?bij=`34gU?l{%kWh|UsnH|`x zbZq6TwW8n^3YId74?PH6(KHV_QSNdjJAVahnzEs05uq)mQaZ_M!(P!q@sn}kW z7OLvq7NYUdHl!!7*_2#+CZ5kA5j8@YH>+pCxwrfv^PHPJbGNw`2l3^aXnE^ae9p%z zhX;K4J`gt*=DuT(enS`}5E)FBV-Q#S^1ghsJ=@R`#pCZRM~{mRyp|OY=$;iX%W~Uz zJjhCwvc$dVwyFRI3y>I(jp8h`0FeHdCpZ^QMW z!0g$k@iKpO*TdOwCv@!v<}*adJuIUNlL^;X1`OSB{HHklyv#k|_f@3B+{X=zp9a}F z$~$8>$c0uqT2e^F(zme*6+a98Qf$+*z{Ts*Z22X*k3d-ejVfgNhH;%c2^PNX2M+Ui_4CY zBk5rVmkPH#j@{%7k*c#RqEbANA7OuY?u7XAW<+*J^~;6W6-F(2!69lKrOlS|i8|>4 z$txVL%bytF{aY5yz24CK+)Cnp-RTn7w2VQ)hc&(7glq$y)fb62uw%=v6rK=RaC>7b z_9IR!BV<9bNkmOxBe|IEy)?Ps=vX}mHhg@R4RgPzr`x3z>K|{6Bz`8^=T+Z-G-%54 z*8W3-#hVtM-0QU_N5{YLkT8(0-sfF@QB0kZ!tkbVA+&RHiB3+tjD>{7~)g9U4BR98nc5Ch1cm(yH zP?o!H2GB^Cv_tvk!rTixw-fC>A3Nuz-#^-B|6cXjVx@zerP8@pTYf0oJRmsrwg)7qszY409z zY1^^mDh=6u({!1kBR@k?>TFMwdYS6C_xQ9j|L>*Y?nFNy9S16(w}OYY@O9+}Fn6L~ z&LU-idCs3;G?`(dkE;5nYKXXnNCJ5=Ovwlel zAR68rtgTQ9v4P)j^bqF8-16-Bm=i8+rgxyxX_+{fqxECM@|IAE6u+g%GcUea+=l$- z0ep%bPy7;l@2ZruXTN{f;hRX9=rmtgZp#(_4&{&!bH|fT*4*`M?HdfT~!K0e7FiwJq3Y(Q8_EB)uLIw5>rxd7(w zOFfC27LT%-F4s6=dGZH+Z+t}1VXYB%%|WnWMmW<=hn66wiJ)}>+4Q1NEDlq`Cl8{0 zPGtPx+2JO2a5bEsfZAIKb8kft=`Y8-u)KYD=L5ljk6pBbFl8XylB(mg#`Co@b(YDD zWBs|GuNv_Xw64eB_j&swXd}^-(faNvH!)v8@{1aX`v~SbmwxNhx|v$Bx>7$%7dpSX zD}LkJceh@n+D~4l!*2x>93FX3YhR3ZFC?F<8l9?>VYm1yWz>aDF3)&&Sx>)08{$5O zxh=wZA~!#IZ;iaoSJjh}pJ7PWynC`mv5b0ml$E3BT`2i2OTrxWq@{*Kp`qf)7kNhH zZGsNMw)8h7SbjSNcl0-++n_VeRgQ% z;r&rY6{ib~qt4Mynmk!V@OHfz=4zCuPE0q%y_hG{?OP%UFs3#)6)qQ&X13+H+HvE`e$4vYsfmgh9@$%*Ka<5PTJvXxMdl8TySYWks8H*Wuo-nbeYG=6huW zQlaiQL^|6j|(iPvD&>@Dv%r1#NHEbFi-mU0cY}u^~#vhij}I=h#&G- z9}+`3JcGHvck*R)zQ4Y$`7u($D_~BX@;g1p_cWKbm)C>4#=nY+j{(? zTVbpd@%dKIaNqUj_7F?Xb`)_fr-kF)z)@3~zQz+Hqi90N_XvK!M&G!v@`trdize%fYRV)l|YeX6llLQ{$r&=5c--Wz|Y}T!`yjB+8qs|PK7Ttp zv5-r`I^1X;6gOSzupcgH^!9vnb9_CI>tu(?vb)5~a?kMg>B&JT-{&w_rOW)m%dK^r znCnY(f_#7C38|6-NrmSl+q0v`_r)_-&y*-US1|A)p~EJni%Vt37g;`@P%fsm+3BE+qMx$GH6_%+ia6k)ikCnOm{2ub=A#cyFrH1f8ZI5-BRc)q58@?6A%`onvy zOd08yIR3rzEt4NqOsv|qz1llc$k-unEzD)G-McV?Pw6hmI7e@-x}hfVLOG_`k%!QE zxCr-UW9yaie)t_0YMcvIwal7lWm1mm$WC7bmR^%>t_pFN^)J7UM` zRDTl`yMXJo5>b9-qHyemi#a)8)mk}oI)9VW80YvJ!PqmAg}{6Fk3;Qkgt;l+TqDL8 zf*)%$vXxZeX~(qxk&NGGZeTWOQ)*0*T0gP%R(|rRO#I#fq1c*5smN`7_hr@gH!KU* zSBkH6P`pZkxJ@v(KwhBqw3N_$LVu>R{aoKw!I0ds=CUA-)?-yQIOYPSV_LVj{Fx@I z-=CJmPS^Tuo;fID=|oJF@cVMaF*)aX6^PpmbL-OH$-bJ>?g*#MkEB~pYnpwU;ONtLGk(WzD8v9a7J5p^xkS1 zw&K@?lxq(q_Xb0bhyl%^*%(&w5ee@=X7)PM=?Iw&s63vcM8L z75ItyDA!|Q@ZsBM8Hk(LaXpmr(EEpTM+jJ%$1A`corT1t#OJsME9wdN#>BksXy!XK}ri$ldYZU z^}0Gq)3>s}v!7lV*cT8YUfb48VbDFG-b$%6>pQgVBjtp+FJW$L=?f9MH@E4u=!>_g z)MBTF)yF?1Jvz(Hh2QoZ?;>$kL35*RbLp+qYO*6QHv%Kdoj(Z7g{SFt_rI2^pC31S z0dYHEu7z#-&HCyScYe%w%ozL<4VzD33;bZY9`i(MD>aA4bXH(`;-Y@{n~ax6++T(3 z&zf!-z6vS(@Ipc?!25W}@v=UM+X-{~arwf}^n87@-~0PYTl1hxb(ig8s>P^~{?LwN zG1#xu5uWg4;;>ulDyQ#05u~#fa$bg=r1?S;o|`!TD_vFi`JFD9+nTmC@T>o)TIl?x zpXFEeC&dg!tP1|D;c}iVoROOwnLnS%nVoX?LAk$_ZzjJWp5}q1J#V03W&VL%&E%j` z61={3!`yEpr&;UTPlk5*8}L5n|Gd3?S80fmO=gY4gTYv@Y$sa%-HPH}X=$fBeD0eE z()XIooAO_Wi_Rw0KMOcONK7Cx% z+i4M+=`|vp-(MSyYH8=3UY|6+Ti{>K79@JSB%xLFx?f?a4K>8=fw>LTBh#(ZZ#qP+ zy)w3YX3AWIx<^9uMZ%QwlC5v*snAU5i_9$^{rY+{uqomc>$;*t)U6obdEWRHc{2LT zm$u;d9=wLR$3DL$W}$H_Dj;F@SkVsaAiU_ocISEN8h27pMkaU9h6zuDjiprL1)K)Y z?{%-$l%Lp!W=YdU$n<10h)O&621D)bg}IGRQ%(gWGcww0CT@eb1~UrR6#{QFy$`Q7 zuvK1q9>29m$ZEkAFJqWma{KM!ynxyby@~#A1kPSP$dlW~n^8?CZ5awbpu3s3% z5#jP?_puA>YV!8c=}*Ud@iZ$!Gh91-T6k)n3Gg8PIBy2M+c6XzUGfel7{l9{ciIj_c}v zqlv6T?OuNn#C->I$A4qZPxB2>iQZ7BT8T3W_bMvS{+3huaGrkC)K7`QIWdV#S6W}g z_-!hc0p&QGqV@IR!mPmV4_C$XEp{KgfVuBsZb!yN0sn$N?y|0Z#U#y@Wk^cS>XNqB^U@7Bcx7WJ zNxk3p#`gtvD2EZ4yBGAq=OxX-pu*~OX7t0C_muoT{fZx8TYPBV#J!t!n{a0O=;s|Z z>uKq-rD!a^d6C!=(Kot(dJd!=K5no-!S#f=qcE3w`%+DGT)D6awVkEF4zZ|pyrlD; z_;cczxiC2eoI!%HuLZjsufLQO23dIWMyt01^-o+UT331_`Vbxl`+NF@bk-1We)IFM{x0_x@+&H;hPjs|4mQ1b$m3_#>vA8~&b* zx}iarn3i!Q@YJn=Q?l*YUSA5h#HI+pTp4vz)#`z`A7SoP#nstinpJ$Yx<1+rbJA6% z++-RDlkqsYzz>xX44)l&okkZqI+?dfM>IU?*n9ImrXQuQv;G zm$#?)SvjLf?tPt|l?mR~P>nJ=$nV}A8K{W&W5{@XmvecV1^WB;v&ShR}z`quq; zE>mUN5h7ah^+c^#rFR5zjg?lgmycHG97=H*(u>=L$Y&@U3adQZO7ETOo%nuS^b?ft zCz#7f9)6Wc*LdjbPcmtnQcL@kSqZvK8|6sUZSQ*UH;X<*eOh^(w%>=# zq&~uvD00l}Ykek56{Gbph`RuDFTJqE>0Y-NN@JHG8o#1Kj4iYtd2F?gHa1y}b~O5F zYyHv-hxl6;OW8D=_Fb3ww!{_8>RF|_ao)~6T07Rv?+kGlVJ^F8Ve4Tt)^^8P5)OOBS}$DrI|F^>!&ODMMAQ_Ia~=)DYkiK zapyPL(dKNCv-s`A86{5nvjR|imtbx|bEeZ(u7a9n`rt?8oac|)3}dnL9EhGUxYkLA zC5QRQxCfoevs#+-`jTu;eeA|zp76Me)^F$dTRjgLk3`I0LfkJf_gRJO&lKwrd7Q`# z3YLuaXBy6pMcRGlF|NxcWh1-&xu>w>);h0E@u!s4*dn}u-@7u}jg_RVcWS?L@+^_* zj^BZ}Ut#V&|4~8G;lkWzm!SKvQzErOO_^7}m>GUBlEMrq<2_3>a>I|cU3#JF6>*QX@30*seo3ZJT+64QlTS%ePOLJq5Fzy*}L$;nRZC^y4~8-$mI>3~Q|?rA^FjVh!?G&*VkP^#tw3 zPHfZjmF+z5$>ANcEaQtky*~r*hrYqw^R^0`U+ayA<#$;}SJfYc_@w1mt?qpc)gcmT zY!H>Z!xQG=6ZPK5{aZNEu-Z*V{OoKBmvc9m%>$KgOL)K1)PUOi9p=(~WXC#w*!%MK z{Sv{=1-2T#Vs+mAG!~bT$gsmbA5WPQ?>qg&&kKoHqeR=O3vWLac@oMk?DI$V&UwQ^ z9eg1fh`R=JeOCQO);?>#RuKDqaG#aHa&DqLTV6M%|A^R3yUeSCRkh_ikAfeTF|vKIGr||w`7oHk9zLI6hq=N%vdW(o70$(LeNxysM^@tGsbVgtL^+Lj zR4h1lLhbzQbO*)erbTp^qFeAU`(gWFo!_|Qdv`R??VR{3-@gIh&)R^wypDZBe!rL( zja!b$$A0Z;m)i;b!Z}X7D-qFESNP{o>oQM?0q&g^PeYT3=I`}`>xnMX_oape|9r~o zED&2U3?EN!!rasL1CC{aE$3sSubqwc^wN$I@9jpP+C*>!{2(VJ%a^Is@X_{cxqsNQBjb?n zI96@qkh=@DcL(N@om%@EHDBDz|6Nku_WI_Npr(@hS3YxI&8m%~sLr9LO)$4RAxbC1 zNjYTGveo(f@vc~O-wE=$K>=4m>--PW{t)*E%-yfqZMcQESQWm;_GM;uTH`lWYFfvm zn7}>{iYs{*#uZK9F7Re-O*&s(IY}ij*)p47u`f$~CyMG*kFjRGGZhcS-G#Xp#;N&3 z?l0_D;$7*T6(?|92Rw~#Y(JpFy|&(C$oGYYC6?~>rFGIA-8tnpg$v3Db9;pn zmjveV4_^_e1aNyWeV@~kuvHe24DTd3uE+h_>dp2uBU~|AC9{A98D}F$1FP@KxxN|E z6i%&i<~>a#T zzP!ZcLF@i;F5tkypXMczaFXUz67C}NcfT)`yi=XV@ff&J5c+a%PG);A&|teR^xkx- zqd}1V16vh*_ECL^i-kNKj~Va;3TM+xEO(Le^(+FJ-aK&RcF&dd9Uw z^MPP)U!W}0$MM675V@Fo&8YB|AeEx@uOF(av#J{5>l)ZFS1T+lXK;fVSGg+1@4CSU zX_AeFJdxah{Sy0#(JF52Hy5w#e9fpzi)uO%_;YzgU&U{Jdb&u{)7ZUR+t|DGt`gK< z9GF{vmA|cbkobK_0d>wQ17#;yP#}HitJkq&y;Ti5-w$omo@P{DT&T_BT-NmARL1Kg zs;?3XW5qHw37xvYYI_xa{s9-}UaxTO9RGUXnB?N7h6R~`&Mh%7tS)&WQBK62k%w|IuV{xp_J*%w8d=r45&+1a*_8SDwOuN&e%Yq_{iow#=R*8P`ijrL7`8In}-)hiA6 zAuc}5ElIrH${1WdmB6|eQ+=x^x8ri#q0d+WlV{o6)b&FlGPAw!yi+(^?YC#!X2t)A zeVNQkAm}is;AJ}$fuC4?|Ha-{CbRX<{StXd;rt^{FF42CW}0Ne zHrY_X{(va=BfY{RWu29{hozXK02c?@tz)!?#B3Ati4HN^_7<z{K7RTLaKc1e6}#pl!$&!ojipH*^~Me08-<-Gaq z&Q?<0pH2&(cay^04}_A+WSuv`YgS)Yoc})X>z?EzIg1xEBQh;db+6CxloGy3F7$iD zCgA(vK=Vc--b?P8n*4m_=C4yUCcZ_n;#p9>WH8s4W`WrHLs$$GZrgO%TEoNj<}+B8 zIdO}2d)LYYf5a0f)?Ly3l2`nq)nYNFV6ebRVhaSLk+h)WK0!}N~} zSK17{RF5@o=u{FlXx;e5X?DX3ACKTp-t`!%6qCHrS5&B8ScbQ2q;yh-@y~Xac zYz{_Kg_|ti)K1aiy#GZ!g{GJya2b0b$`ChTugSDUu6)4lvR;J6@C0Kdd|iVI=8EKT zDinCK%<0BIb-YIqI-0GD7gATiFqth(@i8*$x}V^arm8se2eB+s`xHOgBBBD8i6$$C zbJCywc`|MlX#`*AqK3Jf#EHE5SgQ3m9-N>ZIpLI8b;?cSS>5{(9KX{_ep9YiV^O8a zQ#yEY7wJnXUhm;FH*5U5phF)a@uWWOJ9SMU1(X8~%$1zOQ&UJ4ZB#Y;(!(eG%ROc7 zxZh&we(~6s$OhuwYi2Ruce#FM z>QY+uU230obCKDA?`P4%+?(^W;3r=m-cwfgws||P#`kcYoaUhR(!tzS6P;A{gQ#4?g8J$+vX=wT zScrM!a(6t5sz}>um7Wc@DSDQ;F>h=iU2>`TsJ3eJ(;L;@MQiUfO$2p|vFEWVA?|UQ z>p@`NE=wYqWlt9$V^8->`_HqpO^|C%*~&wUv9N_l$#6(rov{3qOU9MFx1g|M4ipR*}BGoCl7= z`I>Bc;r{(etUSK%cJOs@CYXC$l8M{PA@3rSDNEt;W*x4D93Yww>!)*cYsa)*#c9RbkX*ex>LC$ zqPGI1^UD-25CWe` zEHJm0uY>pPwcV@uZ#8|KiSF&pCOozfi*-4Y_|j;ksNhyoF`KGkH8Ay(uv;x%<-Ou9 zrH}Q)_QZ}ZA+Cwx`6ov6A?^v7`{$d&*}`%hZFPdA?5VE96B&|XbGUUo*Db1J+%yF$ z8%`85(2oar_18aIuDYD@Ad6tI+ELiY`}PyL4FO|bBjh=azyBVR73NBoI|6FCddgEqOT{0>Zk;WFt0U)NC&Cov6V+R64ppf zPEz`3%c>t!)}be2I+?3rHk!~3pLesv+}oN(r$RGp9&Zn@41AKx+M`Guxxci2BKOy8 z-yK3%$~fMf&Q4ptjiL^g3CcgSnS@R8FR3Xy;+K^pcD_A4zAFN?mjmWr_KBJ*4^>N- zsQq2f?33r!_Kcx2!eE<&Gk+l+E479_CzSh&_aF7=%DZQA6{da0Ot zPP8i?TYJWNVcPWR#;|zeVxi%?1$(HyTrfBJ@*2^!jmQJC^v;6t`)X7)veDfx`hI>n zN@Ky!uS>*yZp-QIJh;V0^K{U@T-K32zuf3@PJdkCa7CnwxIs63TyhfT62GO1d#}@a zy!lyJlTyW;z-|4(xa~{)cPweheC+ElpCs**2u~kOy5nwuFEJ@+a!abof~b5-V7aCG znnT12bu-l7Q!qDq$Gq!;h{HMW%fS~Myte$sYqfNSPaBM|_?@$={`39&?|j*FJ7*UK zpNj5Z>CW#H?)Na`-J^+Ff5dsXyCpshUq?I*bK5Q^Rq`FjJM&{#l$AwgQE@<;?B^Yi zxd96`-6MlYGVi!le;qw#V>rE3CC>)uWHnV(x_+^G}xy_GR}^$DDY< zj+LK!V%qpNAH?N`xe_lvQ7HB|?A-dj5Xybx%+)7dSqzuRE0}b*hC~SZ_FL4sd1?;? zt#8ipT0f&qeUXM=Y`XBLii0_Or5LX#=PrEwzyou?ZAPSD^Q@G`^-#Lsw-I;E^j4or zlWzgRyi=+3@6sg|wx6#Ja`wwcRg&IvCi+S$Y@3B^;1aq|9BQ%UivG+>g4)XqbGv)7 zF9)S?J~~*Ntn0BN^Y|*U>bHN=tjtDB)W)Zbf*!Hm>_= z7v6RwbK=`@Q?4FCPwTH~9OAE88Tojz-ew>2%|a?lhOFf-28>thh=f1Ng3pHpU~Ue1 zetX*M@EZR{vrh7j=w$!WC^mZC;%{{e;fmW@oIK;q%?HgZ9A*~H?TihYJ6$r`kF(3K zrr_>*4|foLT!r_?f-rZngs9op>dBc$>-Wd=-+AOddHGe;s^Vr#)2AAKWwnG_i5;l{ z%IkF0$CI{RZ*QRr<-XF-78BA^tJ_hbB11> zv^=B#$QmYMetAEXuVd@W9< zxq`R*#L-{8-s|ZqMeGLML}leQQr~$i!cxJ`?-ua&R8g2qk=*Axdd`%`xhv<9{MT9H z0S1#(A*UG|-@0%QlZ>)g3N4A1{+Ny0SM&!jJEL^zAd+W)|K%d{@-uvC+%KWlE zGM#Lox8(??6q4`xMAg1Ey=fKswOw)upYrj^)^Nvs_YYQEVHV0{UhyNYw;lZ zOCkw2rALHo{z4Z%UJ!J^S}`{29Oc-Iww%gYTePoz~Z!O%o(%(1cR(x=Z zFCz!yo`<<}c^is}dstLr6$6w%zYuwq)cF~bJh?r3%k0)K=JQeM>b;|JTos)M8{GBZ z@>j^qS=re54c5h%($3zxDY;X69^y*D-1k@9zO6pQ&GC;;eskrD5#OOj_=0&+qd3Q@ z6@#ls;wGKVUj)5h-zGD8rEpO$m!_G&_UvhAW^;a%;*j=CKLK5cdjaOU4rp={&4Kq; zshP5LOWw!5o8+DCtBXH5sq~3a%+gW&fF&Y>M!qN+`&!g~Z*g&!0PpyPq@PzV+es_O zo^tp$4RNJmt_xM8shL&5dW=>;)u$H}8&7K|C<{ZPYko~U`uL*l4WVe>YdbcUW%Ku^ z@xR(!4vpcK77Ds@H^cO5{gcY7u3AxuD+6;=@+C*iw$!^~K9|?>P~qaw4l?;C1!8M2 zCHDl6kUpmB(o#@s{51aDH+1Oa*%|`{8-kVT{8#2XQ?U-;HtnR~^NWixx7>4FCE%vl zo0H?@2n>0psANdfYu!zGIMy8NYYuT`VeXYHyDrd6Dt4zvs^PfDzR_kv(($(F9xN4eE!oRi61##tJ?lH2ecSAZ^8T^FYdZsald%`1YFAM30q>7Igd8d+z>8*ns#Z}+; zCq3FP*(1!Qe(0T|b7fVpRa?kIUar&yyE^bzhk`L%Gn&}Sgf zMU{@Ux+(aZ__eB#VVv*x3*x^e>|x!~pBnt7_xat^k8i_15$RJNT4nOX*HaZ?uAe0K zevV&DeWh)eQR>@NpMXw_!3-(lreV9*W6zKDlIDWv`-fGiqwm~epM7=kn0QU@o<~{2 zAN5YIG{5JstKs`YN-%eD^H?jj>{dco^u*!MkCunZp`C8Ekxj~#=W~ku4VyA42UH|X zzU&!c)fBhX;#Yn9eyCs=Jy)Y7$=`6p{YfOeom7UoF=OfFb<8D68Hr9;rR~8VcAqyq zRCywBJ(|OnsVtg_*p!ela%rcqoAAl(k4P!8WpRxk%5OFJjxQPBXkks(gRgU`z+BZK zEa40b`A1iDhFjl|7Cc*IbozKWG=DAt_n?4tkfBhZz?F&cvW)L*TFN5X2YZRwZGM+e zuiupXlzw(X?|3i#9(q-nYow=Wtnx;oQn725&6miZ05l@8I8|sKHzkN2-;j3m(%=dw11+se))# z9)C+8Ig000#r>MK-li@(koWf1hx)93n>Q;$bUB&lH~JO#_TQ@N5w1viDY@Q zC~0VtbZPG4@g40m;z`|qXUcMYsyarIu?V*uYxh2d-ZtlkO}=7hSC;VQOBW*vX}{pZ z2~94c<~r7VQ|a*B)miE$ov^DfodXvcqPhy>g< zXn0g@8>23I$~R~6MoUiv$Mc&|doRP>2Yn*(OZ!fdL$n$W3bYL8s>Nd`_IueCZFdz} z{9JhOA|5b29c%vO_rav9N5-eQvaFSwH1i%Q)y+0fItGH{*br9_=6?Ayv~fg6`?d}D zv^*u#%gIbe+Rf+1_^EGF^O`Q$>OC3-a-Q~d79qRiZ%&pN+m(NCT9`K4cIT~1@xc=E=W@lVTkJFcS<^-3EW z`S zvespsk)I*%RhUaW{xWv2US6l(ac|t3+vXANkLgc-L1J|ZuIGuu_FcS&`R~ridU$_5 zFw663890?(YIsgAg&3_ZEct&n8Kg(c7CQQU5@Qpt@OM-GcdF^ z`|`>Myz2|LKV6>uevOCw%8+<;^z5?$1|pAOfNGOwOcc*84|c0h>z@s zo~AhMc`bgnes0LG8(-~B zX5}H)*@vf00@*K$Um(8HEOW=-+U$@xe&Lvlr}bgiQPpQMT%U6D$ZnCE6HvYuFt`74 z&Bv)#EUxB>r-f&-BZjRnmu9e&v)Sv@n=ABh(a%?8iRu=&bb4ma(MV8xFS#-Y8*&9` zlZ~lODB5n9c*EzhmM}NGgztX(;_0%tOe~+SvFdQX9npM2wmUCr?sHn~)=ck54uhda z=c_mK%`^>F)8vDn5@T!qsSdTDdM~D~q+Ikq6Kby&%xPCA#B2}($D9|gTaEhh`FVysN z1Z&)@8y1~ER{qo&vLgmAx?Z?$Y7*_+n^-=hor)AyG?o}B1S)pH14nY6PepNI{LNFWZImCa*mb}Z#3 zGWfkH6yMGD9rNRXW5E{TTh z0)PK#Bo<$x)vXTk_WhJFu0E6QA0%ErW;+5WXe9MOr3yT~J>o$__ z--YtleCZ`LJ z{i{uaLVrI)|Hroxsn^@y&ClKooKLI#b&cX5Un^Pzn!sNPApLI{{DYh?3h82DF@Q1R zUH7u}u(Jo(uYiYKhxu!2^xyw12_VbJ)63c0%^DPp{<_Ba&uH7<>UDPaKsSH3R`9=rGU-$wrPYX9fggv_t!fAi;-kbZm;=)Yor{^$27 zw8sAq2_V}I*B@9|tl%C;3>b5Q@qdT;M&}Vt08Ic*08Ic*08Ic*08Ic*;GdlUa_sHm z?cpu~#!nyrb-x=qcjX59XP?6&ZSit;^Rjlp!V(nv>z7Z6_pf^ACy^#r~5L_+PwI_@7ieS`C^2ngE&r zngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&r zngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&r zngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&r zngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&r zngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&rngE&r zngE&rngE&rngE&rngE&rngE&rngE)>KOh0@e*hCjq6wf0pb4M}pb4M}pb4M}pb4M} zpb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M} zpb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M}pb4M} zpb4M}pb7jpN+8h`?{9M}Yya1nMB3ZSR?ykq+sE3~RnXPL_L_sUtG%Fsm%aT(c2Qw= zZ|6XJ4+nmBadvB0XGeDr2a^9gtiz+f2E_S^i-m=}9)uF}zmd;K4LCrI81D~e8Zg2- zf$P-1`3Qv0m|mU`&$+m56Q$5GaVJi zqXM24#-qk~)WCDbe3u5}(Ex7&nHew~!+6I)c^Tu;Vmw;leZzQk7>^EkB1kx3IF9j- zgYq8`Ecl2;kMZb{36NmHz<}`>Kp7X~F=9MqIT8X7`7RUq2SGCdZ2=y#tT-^!F@tg; zvH-!riSbxK`7y@h0v@v5kUsDXj~{qQy<9-*7*7y0-AUl-VLTy>cM5ns7*81Eod(`1j3+-=#4#Q(D5n4q=?W6S1OH+10bRmOcOEkxKk(!*o)pFt z03JKWyMXZof#(c_4AK}+2$Ws^=74nq;|YV$o|yi85#xyf?<(++zJ3YgiGs2e(l{{4 zVmvWW7Q}dR7*8B{To_Lt<4FLI8Ss$)uYmC+L75SFNdH&FcxOR58q;@`Fy1-f#R3oM z!^#*BS;qr0eNqK@$YPKJipF^AnCUJ6FA3vmU_5EyX<sr7=7S}}} zJy1sas}30dEelZA$9Tx*6Ny|Fs2bA`%z%d!<$%mU0qMh*nCav}*$;S}U~Gl)6hJu; z`2rZMF`gnQy8@33jBPNU5-0~EjRJ!$##07mAB<;*@l=2(2Rx)7BAa!jeX2lGz(e|> z1IAMW<56qybMY79#XUc3deZinCWbRcNHuTq~AnfJUfhs z^qWYGXAjD+z;s9-iNbgepqvjpq(4MsJV#L010J&M?_xYBP_6(%mT3&ea|Y!*K*;io z#dt2D914UCaTxC!D2M&c!NQ8ic&^|xvfPkmnt<`#Ksg7@8?vnKVLW$G<_F6NSyqV{ z&jXZeF&QLbJWt>if;J=blZ^4MgR(yGkRb)*d4aMq@Q`^-#dt`6OawxPG~j{7faL>( zWQw%uK4vb8_kh-!lUH~X310i+gV7wckoQm;sFjB2|L^>%LHjoYu1`=ssG0}_QumstA$pXm%$pa|>DFPweV`U%}AXOkWAY|RJ2O%KG z#g0HuKw=;`6);u>QUgMcB{hIFfskWJZ6F;WT_8!Ib3i{qp!-0-fc^j-0v!P%A!7sK z0O0`<01*Na0TBa{03pYqWI*IV6hM?fR6x`~G(g9IXo2W}jswvHF#s_EF$1vxodCKD zWCCOgWCnyBvm(c+)<8Bu_CO9mjzES$$Z_c+&}X0}pf5mQfskX<6`)lhX{hT?Wzv(g!jCG6XULG6uQ=bQQ=1$P|bNh!=(Ikl>;Hi=M_MeKvh8TKnXzifD(a{fRceyfW(0$fF%Df z_TBy2<}?kwYV23PH`{p?hXZt6*>2_X6Acy zl6Usrka32LA-upF ze83m{z#qCo00crekp4=>H8PHoem;WsN#+VYAPAD+Z##~)K;{M&pd!?Py3h=ogC~@M zrqBQyLTR{ypUt5<=QW@<%;NWO7y*^}E%OUkxXSNqAajfSa-A?sfeW~T8@NLWaDoEl zQwaC9fuz`(3{pTUNDXP=9c|H3%EvKy!})oR7vLgXg3E9fuEBM<0XN|m+=iF9c?H8k z<}IV3I@E;ZkOERdDo71!ARRcuC)$XY@Bn7Q8Q2SBAO@B~PUuA&&>Nyb<~)6&AM}S9 z7yz*_5C*|u7y?6K7z_uQ7mb8bFdD|dSQrQ6VFJiJ$sf8x00e?B_(5H$2lb%=$o#1h zG=?Tn8|pwAa0NGT2M_Rsbl?DvkRCEXM#u!2Aq!*$Px9nFZQ28P2#??~oP+al5iY@H zxB^$<8r+0ia2vM3LKp{=parynwoo2&!ZF(4Z{(k>L)GEDF322S=Ik;@m-)9RyhZ;5 z-h-@TeFT~74TDZF8hU}u;rc>1@B=q^OI%8EECEj73^Iq?3AK-t3+rGSOoy2;7e>Ko z7y~gd0D>U|LLm%%!4LeQI@Ew#P#a|a=?ZR86tX~8NDt3xH(tO?cm==1Yj^{1;SYER z@8JV{gir7%e1`5Bv&yVIM?5B=m${&>Ny548ox;G=iqk3|i1GHi8zM zw}jE)#_t;(Z^Csb$nQb|WuO>DavlXep%3(heh>o#AQpzeP#6XyU?hx!F)$X!!vvTJ zli){~3{zklOotgT3uc4N<>$gYm=6nJAuNK$umpaBrLX}U$&U-zo{r-~>Rf%=+9og_ zCO|IQ)HSpi(ILN2g}L?G+kNgydCgXAFV*eM|uq=qyg z>(1$5BXQmgTVN;bhP|*44!}Ve0R6DJKg7TQkoAJWFa(CeHrN0gVFfIK=Fl11KwD@h zkj@!6W&{h&;V>5-bNvbIhXXJV=5u`@M{np0{h&XDLnQQouF!`20yqXjW5@>2xON-X zz%p0?10WU#!C)8yeV`vSrYv~CEzXN_ERAiSIevjpa2xi+a##r$x$hC_lAH3;n!IcS z&A4P+f&*3;9&GyHoFPv8V}As!>JV-$>raUkmv zOTiBYq4$E`AnOk;VFGqdg#OS3J6FMKSOb^1HXr+jVAD`=BFtBWGY!8cz(kk?KXTs` zm%Owi+a14?bI)7q;A@aI-Ol(|3(7(+$P4)(KNNt1Pz1UY)*<57 z3}pTF9lzT^dysWj(TBhoh=QIF1kIr&EW*aBAnTxeuwgPxfvGSH8bJdn39GR?3WBlO z8!BP9yQB+9d<0oblr^Xnq*Y2t1(&gN610VK@B_$Fi>$eJg#ZWySx1#ML0JQoHBede zl(oMeAZvR+WA6^w4-zjSRzD8H{x#4RJB1gp4-UdISODFj8Dxjk#A7Y2gXJ&~t`iTj zeK1VNMp-wLb+UbgEo)P<1}5u>vTi6#L>=J_;g96Lu`mqUrVTlZvB|797C=q0&1z!(?=-5?OMfFJlmQ;>EdJ7fd>(ebxT zoJ%@q1-U;n)PkB&0P;gF$O$Kv;aTUllIbR23U<)jP4e&E;gw3!Ct%q<72oBSK$#nfGcnt z#NBTo?oPrrko!bG1sC8voP!i_T0frUcm~8xYPbl7ewp)2AnruFsUL4}yao5+9*9kM zK;j_beSlZ+0$#!!{rq>1ui-tsgSQ~sA3Abf^a}6^D#D-e8Isy*bG9TL6GI~S%Jpwx z&$%5)Lny!Fl9OvWK-P<-A2sHYX*rkqMOp55;FtzdLn=rKGUt$cGC~H(1ernRqTVykQZd_PJRo<@6w!mfIGz7 zGb3+G@LT*5|EfV%C=cbJER+E$vsE}&hDso7j6XmHkiJI3s0lT|5x*T^56IXc2xchJ&HYy|R`O5$~G#C-Wbu?ROz(tTeh-;6Wi{EmuVPjlf(m3vKITxGE?iW42Ch-uP z<6pNGp5(FkA#QBx@oh1?N8)X!nO!$*l=O;wkJuu%$GF4ae8; zJG_EF-~+seV(6bZ=CY@a16hYn0@DA>oI5QP1Q|ON;FtpvgFLTF1bHDd$Q(TdBm?QM zGjWu)n)Hwq>_FCSz7f_}_yV8dPmud1Oz~Iz6u+8s-LOaMkzq?3G$ZV|VM-YC98KIv zn<`<*eJMfKm&LuTAH}s@+>50*ZsIa~6dnP#A8&b+`ss;4)l-i*OWDE+gwRV?oy5WDTwrw1iUN3@*?Dn!_^eZ^p4H1aaPkV-&}((3taJjxug- z#CaBunV=r$b)YPi0a^cYh3se^9NobUq@VKSDC0S~N8I{D0LXbcuGNB?Py?z%HK+=@FMIe4Ggat4UB#gNre$0WHFdbAN@xqy*UymP-gem@uU*eD4 zHw*p~KjPXe=W+e8+$V7{>=Zx6k2M^B;n*D3alQdWlXA5ieuXWt2X?{^*bbXu8*GJN;Ae;* zAGs&~waqrJiT{R;@sAQl{A+T*gc;v&3D4GbiHEo`Y~E$Vtywq{Z*gbKZt++21F#>A zblJzbq)UAJ;-{zK&algt8zVk#bpPaN#K*8r+#QBP`aMQ^wdS`i_Yz)w+oWDz0EvhA ze;y>xCqVMth^M%fGI1OvO^<|^p$jyw3qab@0YE3#PwhNyb5xkt@M_A%E&A6)+c@8KQ1g*WgTeur1^687MBH2%r`qS@oW2fy9H zj&oT&|Hk#N@CBT>UJ^cW{wEaT{5-eGcv$9-pSdRP#J$WBe&s0h*u-4h%`qdo%qvs! zJ1L}q~nDfWB;A(#VZ2x9IgZu2Z^`bBXO0yeZW!HFS~F}_Rh$DK4V{>Tr+;l zzQP(%1v-Q5!Knuwp)$y`z_uXI23tcbXbGi3o&`3A#?S~FLIbD|wV@_dhf3fMo*?cd z%!k-kkz)mrXP;$2u8aL;Il2;us_+Bnve!|r$#1dA@I&@FihHqL+#7z1KXPwXj^f^M zYs59KABJCYtro=nT_?_ONh3)Y*+Xgg6ZhWuZjF25h9!QO{cfWByNCE2_cV(WmiT8} zZxQF-xPD6f|C4az`Xyn=Gv9W)pK@NFdLed{<7oJA_$z5(#9OWz<-}H*GBmm0C~twB z2Y@g5fVX~>YsPOs&i$cloNICQT-X(a76LNvlJQqB&U-=>L_!3FLk|dp&9ENU!D?6o zD`5pJhh?x7eu5>i5EjECSO8OCK8%BTFc;>)Y?uJE;71q_17ReLfuYbJCc+4q2{T|C z41rh}0R12uWK7vdKlas+axI2)@kh=DIX8Ywc*gl)&IiT$ZCp2w5|7CsZscCWKJioH zA@+;ia{n-p>k?;)k6e>Dh<(GsuvhMpYsT-foQof$zzA24qe1Q!;$D~EaqpKf;@%_a zD)t)jlC+dGlY1s{jPIB6+lZt57B_OgkycarZTKPA_`%Jum7#SK5Mwwrr*!A{r#TVWN5A5zxhmr1!U*9`xpKE|z|w(90zsh9sJ z>ZH_tqdZC6*MgC5QWgf2N0RnZXN|Ox^b}3Xy-^;Fc>doQN6Ci`Ao*jIqmBCc&-!tb zeiU8W(_g@FvxRfxe$j>PT-ydlo)6;O$ah=Uq*L&}p3R)(_apcNWM8C=zaDTN%Te}9e&PHp+yhxdT!`Dxoc{?)`2C6F z8<6L)uQ?Xs*aXji=lliKh37DwYtJ~|fL`2liQ^f#2p8ZyoQ2bH3Vs98#Xhk~!aB$K zWw;Jk;R;ARu5pw&7`BV8v0T5!QS24BH#xrpx8W|_2N@$iPp)u}W zaeS%sp5sUO0PjH3>@CQ3`7K9DuWyina4n>t9mu{@@k5?b8~aXW&#A=iILO}9T2K>e zKs7M-uvXz*_O!~HvIn+F9!Pv-uWJU7{i(7~Rrallf3k1&F1qBm>|>R4S)-S|lnx+k z^%2kmWIv^$$sWrJAbT()(d2r0&ShU_SqSI1xD`Ljfb8e@09p5!{rzsxm2>g8JNSdx z?8*AOAU5umTo17QtT+-R_U+y>ZQmz?xh+lHQo$;ZE|=>|DxFTtAI)qzp)&izerB?~(M7 z@-EN8&+$xh8Ru@?f+n^*L_@b>m#?MtzZa zl+?2ZT$g+5fwU2F-Vmf+HLgpW6AR)-?w5A4700F^ZCVqK5{85+`y%CjxleQ>Tyfii z-?9(48HnG~4#u@j+M$+Q-^0CvH|Kuf1D!yA%k?fCJA;@0+qmYd|Mu69vX`^yLjK3U zf*YhoVJ)OWdpFOHQDyl!jpzToyXYmcJJ29W%RMEP z;^JId+oLGq9DeMvDr()0XDDTyU7TG@t6g~#&disw`{ssk-?y{xWcMPtn@Y+I5wZ#>%GhJV-4{Qzr^ZMD8wl??cN9VZ%0KXL2-31E#6H- z$&BK0UdU1O93)+=vD9yq`Vus&$(E zr-V~hY)eKdrUb?&z5hBx%S0J_qPRJ`l_BABpop8#&0IbVbo3jK;^FM(>`HAy5!<$< z&h(|p+p#%OTuC>)3k&y)j12S(zt+j6*@hBZ$12|lNvn+#(`y+*uX~jbjaG_E><;)Q zIal$@-uJT|77W(I!M1KFDN*JXiY-}UsGm1VX;PHbk@hqb%HD4+do1~5bP9XP1vgPf zqDcO@roX+R{jXQNP~4qMdzN!{nT?VarCPzE*O#pu>ww})&JoVfD3S(wzj^g>_3wE_ zS6n^So))nnwC?7YM+&u^EsDg{)gn7R#Ol}G8coVO{O%r<(v&H@yM@BOy4cR44_r2^ zxX}fL0_utd&rnn@tp0OD#oeRVqm*@a^Tdr;aF4K{KyORC(j`OekL}ElLLe^A?iR1! zfuRxPUfFeDCLB64<2{P2v!|46Z!bRo6dhq{9egUdR^6e`?Cm_MK4rMqp4KiM7Wfa| z(B*-{+)&LoDvH{pAi40{=@NT(R`uMgd@CdA<`Wt&!C10n-*G-g&B1mkQs)RKC%#F^ zKa|LKMV=k4bD~K7ai_QRitZ+k8Xeu{@pROb)XFzkDzU{kG}14mC-ax}9VQLvd;Wze zp3WY4R|wyvmb7W~`lD~B)L&3UD5pK^mRv}Dv(~2QZFWylB&n%cwQ%Ez((Bx^RtxqF zNsHn}O(5O;dQ;*eA}mhz4%Y199GV-2Xp*Sv$%6Q{Bl6pbEU{zVP~6FFN^f`Fg46l8 zE=aREs+9Pq)!^QGOvlft9q>BG3Q;^%FqQysl{l7b56|>!o5=sVQlv7fC%R(WV&BgF z7d8lOjv}dp)q$>ML;QM2S{gUHT)9i7y2@&Ia>%t@x4_^qN$V>quFoF0Ff=`G$Zby= zxNf0=A)*Y=JL$sPU5hTE=uJ|$2&ZVT;2_Jm%cIkMT(rtwS)fYqB&?P^ef4Lrd1Z%& zwo<-fxAwGFN^e-B&CVygw||J@N?MZ!OK~G5WX{oQZR;jVHb4)Dau5_6(p4-teKD~2 zBClD?QA$&@$nD_3U_Vj(3k|Hrz#VPE$2YrJJ*iQHu{uoI%s9OIon0-5r-TFJ%oLj8^ z@yRH}Qwl=3pKqX)ktYjMm-xL)!$=elt)4~%c!f)LU%0vS__%MgJ}NivG_vYRhSaPW zpW#l$bEk<>ZYUtyvj#_$YdLyW{5&vh35uSgkr7d zIbJlVd#X_GV<@yaQVx0t2f0Z_-B`n~^uZZZi=en*8)a0AlqkjWM*nVCvh@+AkgN3g z;a$VL!Xy0b)4e#~YVVDMD3ms7Ub+T_dP_L|t;fE|-nLOq6e;nv6rmwLs)QU~S8c}h z-d-t{8|7PIh(F(?3y93Lq~zYGcTSzteIw@rLjwH510y3GXFkc2_2#**_I8-1{>l7Y zQYVl7olZ?(ya>aMUV~+|L`r;;hf_R5rmxZ39Tihq8*o55aO}yZn9dD)=;08bQ4CHb z=i2Umk!1Fb=S7twO_k*qinQddo1Saf@%540RyQwDr1Tyc+b?Yv`}4i+?W92>d;UdC zdxd+2g+()Ko_+abk$ye@w6~M{<)67CZ-PrWKek$GS7(Xc4tu*8Nox`!!mGD(yFLGK zmjWN&EV8$&R8g|d#qv#e^L}8;QJ``%nQy(uG z#W0iJk@RcSlXR6(q|0#iu=oUob`SI=&-aY#n4@y3Z7A+482W{fh|nM}%eBh==X@Oc ztEW;_d*JKm9VOLn++d5x?d(UTgm^G^p&a-{ct-^W`C1$bRIJ`B*_$mW#6}8&UvEDj zs+^^N+qSv7y!}!766%#Csgx>j(rw(OE(3Cfd{ZSv>z=!XMq>o)0;zfq$(!-xBxQke zlOws7ZV@BveEoSz!G0)`1o&16B?D>D_~X7!I}&@(L?O{cDT^ZQ&a)5R*E?rO?x8GD zsS_R=6eM-4Nzm0g>6TQTh(cRQ6;f}fO8(q?wk`XfykAb++ttv0iHPzE_loedY(5Z{ zYF5Kc;ka>kc9%A!9d}6SEk1M2gvEV=`l8V8NuK(k$T;M9(Hys**BiScqtqXF$RMPq##vENyU!^NYeyci+%Kx0EVzsV8lfSdDMJbvH@g``&wUcchEeO=N&yNT7eT z<@K9YkC%1+b*#PJuiPu8$vhnC8^gRJA|jGb={NNgqu91fdXA?6T;uq3-i@R86eP zn#vj46X_vD!vV&8^mR!A4B=zQjgMbvHI* zT25>I6H^r>Pum{!Z1$wyM`mr(H;QeoNC3&(+h0$tDe94CI*Rldq+55CY$(ycZ@P4~ z@(!(iqwV#u3_;0(^3l<+`&W+>Gn5tlBl-_W^Ozz#R)`G z)G^zEX<1K|y?`6NJqSaQTsXNl{|_@-tp63oLu-{I!#!xVS>5%&eQCy~A<|xx(qeUg z+>jBmi;LeF9aXnjJ>^E#pRlM9x^!Q^VwJo{mPwnWBZ|zxNP{C(V+p5HC;J`eUM9cE z=n2mlQds;W{CfI@L`M8FVNjN#FGk!*Y!|~QL~7Or+(;U1&zL!V$MG`;CAMRkLY1oD zQF5Ye`u6N~%IrrAS(P+6V3jGh>C6`|s?0zA)vA<4$&HdU@{DiL$v5^^rJn9)W1++y zT^Xck17G%#n|n4W(WwJN1h#J3hVb}tzI zc3^g^(hx;TRpn$&{liBb@wF=cD7jE_^=WK(zu);-t1=jc|6 z$2*lOO5Ug75+dKp4yOZp((K@oOMX9fLy_4oB{A49ysIB>-~N<-w*4f3=>he* zvu|LylZ)PZmf_T`Mmx)Nin3cBQzw(nsc6lr@2XAN#tFVp4O zw@(wi-l0gHBc_E4Yra){vuFKLhtiS;GO9u8jw0<_;x=wAP9$A%07Y+MccO@I#Y@%s z{GokDDF=G%5*VQp)Y5B+{{!d7QKeDzvDmUAS~w}^+`cj-*KaslO zxptdg7GvIspjryAh{zt~cF#NY&bl-jE3J#Hn31R9eo+xJeoI%dW{b*GN@}B9l?DlO zK{^@n?FHdTk3KwEvAGQwZCI*&Q)A2W#kBFx4|(cz>NBZceWj=oe$wJvOxIl7{w!Za zNht?lRUk#jc2Z+f1-#W#u1vE+{n*K2h2xHTMk*KEUdm&2gfN59>&QK2H82Ydh8`kZRiOCsyC) zJ83<}jT^h?taRI1E-~|MHEpzPK%u*jJ)Eq`v|5jX_ga;MC^EWjR_RoUoVgsAT9s?M zo2;Kcxi&lM>1S15p-4|VH;2o%vyXk+S(PNtT6|op&Fs7-X*ybe!-A|R5>A>dH6G7h z)ANv3aYhl__F7)lF8tWOidCtGB0XT>)(Xo!k_JDpDlK$3R|osoa-DkRSE~|$A}P9X zc}%w#$qSvaDt%GJf|a!bJBC*-GTW+5M3KJ!^a6)m`-?tqY*m)&;S^6_)ZK3M-33-< zhwfWYmxbRhOx(&C)`;mD-HmtV&neR7$@tEyJV257Je(T&dO_uP+pWq66tQ|l;#C2i z9n1H&Dyd3oR=YX&Z*_ZHGjFSs4@J`L#~+>*=r(rd2&+;WMZ)>@{={V&vebTWRch;Q z4!?`d({FLhAFWDz6tN(=W2F+m*iAleRYG*%JR2O}ykOGLeXL4w1Qncri+|pKe$&PA zb+k5wM&IHU5*_Rn=@alF>f?}>PbY0+Y$<&fQo_~}MYY!nTjdzNZl^AzwTU&-ty>y7 z_S7hR)5kjrTfP{*&Slr#^h?@tR>d((LX-un{)GE^`O*i4<6>atUzF8a3g;w=X14e#b76cV zZKN-Wzb53MRnZ4v~PZ2R+i6IZonV7(fbmU6(;(u2>$woWZo|kCo*U6)m&>s zcyh)Y#=36~XPbpMH{`Y&!+QDn_=QDASkCQ9R^#Ev zUnY~Mgra(9mX|y|0)6WqiC!D9YxP@Ic2qei^MlsQY&<;cX{jGO=SJbVkd)CXC=OVi zrF-;}2Spb$t0o+^M%)BNa=T}vg-J>x0Y&%)_w+-`RQG67t0&~m{ zIE*4KEXog6wD_dHFg5b5%XJwm>#b!?6d4f*eC!vSxbmjjD3U?cg(fJHZaE9QIl0)i zm5fxi1$0XX6e*)wAANPMKR$|D&$voe`)(+b3p*C>E;04T`xQ|17Re+Wnu@)+NhjgF zA9|)kiqCy?3yA4ylnf}BhgMp*wn(?}+EWCakk%oLg(4znT%WwT>97adN~21hd$Q5PV?S$QV znSDr4OWE-bBEk80pm@U*zg;e-wf<_Blcbtf8;jU2uGME#C7GA#GrjaEQg%jlDbnKo z1&_2!QR$ZOsg){kdHd*3ytP2`B+A`03~6Hs+NNMvH28^dO{jR`TI+qJ5aaAn4*1tr6iIIZXPFj>>N_e6RL&)>rKk1hm5!A?7I#I_ zdzm39(uUOYkI2%ly_bxH^p=8Zs>;rhm`Pz9li%)1+bc08-ArmQ%6NQ}THko}>0Zw- zW@AnpBejH_v)S^g=VpJYT#MC=YP`L|{iM14{P;%jj!{X@vKB2Ro^a;Z)$(W3xa?JH zte?A9SEL+>8+Mg^UNvaq@lAC)6H{@6(zu?M27Zxq2V7nDP0E{Ix8wU}RodxpCM{mp z?7+v)+A4uc>xf9ks=>W2+dE8Z8+$XkofZ!3IF>88NkQrizR;@h-KZK`{-}}AU6hn4 z(I*Z)%iOnVEN=An?Kz6nM#q+|fBGq37HR#Zme{ab#T2`VsfRpmwj+ zH_~bT3&o~w$~W8bkqTtKNEXnK~$A%AX1-Mb(mpD3Ur=QvBhwW>JYm(r+uHEo)GuF60O|c`)*qsytP7J1nHDY^Sg+`;aWl@T?;o zX@qj4>OzX9nr%lszb$a~^^>(Uy&z;jkrYkcX?ETRC0pe|A>+h08&5^_nNc3y&Bav1 z2CuliQ0l4fri89k?0U+#-|%i~j||fS@~#Yu^nhyvSDrtfVOM6|jVt@OP#jV2U2l3Q z@OiFIN>Oc9YZO_L$$ER)?gzV9#<6XDGp(fo6z&q9V_iFBYhfY-sfGVM8l=&o%j?+HH2B^s-DLjk0ATN*Z#(qkYwZg`J9YwkmT`GNPm%uqEq|;?Y4?WrMB^ z@Ly73-`IDwJBDu`P_p2r+?wju9qh+2+BnD+>UOMoIOfXtgtM`YRu`OFw@%Z3N_ko& z`g+!!dAAHj+PB}vFMWIN)GnEUNq=QF_N{DJ=pQA`!xOj2#zSgVKW>ev)67m^E>cZYc&lYFO z{^w@pM&(?Zwpv=dzi8o~v_^M%rl*&Xd?->&K0W&y@^0m?vRg}EkM~5$j51{2?ZWAH z_i2M7CB&WG;V6;|>lfu~zQrTkH59!)uradJOH~AWQ6tHy{hrSDe~ezL&DxaJ?(MYp zI=_AX@)I^BW)@1iDaFRvQmn=T?YSNA%q07%T21>`^OPHHUJ@S4lZOb)rfS(8(qG*n zGd)^SvcbjXh*-J#i=$38cP`OhOKXR-Me_s~Y@MEP^ftsiPtD6g7#rg-+H$wlXqSwY z-M>no)ms{Hb|E^2g@y)Ma+Dk~GA ziQ`MZ%=|jy^%xZCo+*j3C{pKqX0CcvCDd2;he)Yn>@pce%G-*~pBt~ORN@Qc9qBf4 zvj9bntIltGlDTuiqq6QI8RROqu{XS|C28%-!Tu+^tk!yToLDw=))vb$_9Z-zOXF|6J6o#|iqZDUHZuMhyEkQRP&G&vn4b>l$N?};~Br+9)w|lDhKtpz9@OgX{A=)@XRt6Map&CWls;) zSa7_Tz1={rNSk|#RXIuP29_~9`$xUKM|`BMB6Sk3)Du%Jx9zpuNVsP^Va^p-X~H^R zM0AKx_rS=LtNq*-Iqe!nII;qWar^wW_PTMe;`2(MUQ6A^0vCCIA>mpY7EtHhELkbN zlBXGa$K)tD{}y|)V#E!;Q4&>%9``fc{o{ULUu&JSH5!!VFPo!5$scBVHb#T;NSxI1 zi}3LZ^78fj9JKFC!}h)Dw~gM+=J-IZFxeQt@!(w=5tH#77MPFUOu``zOvWKtZDYKn zKM(d{6FNn~l4VI`uwR8!tbV!aEv(8pl+3?0Tb+O9WvM@uYiSb?Fi@6S(qL`>c}>@> zm)X1C!k$5qKDc7{C4&cggi4RDa*nq*QKa1MIC9SKc2}3mD0nr9mMOYvCGp|P`^`f(%*d$1QEq}lebokpJ$HImoKvpR zIpu~GbT?O%QsrLSk{;j0wp72I8B{uSg3QEa4U#&S8%1i#<=k0kdaceTJ9}KUcX=WM z!b79F2Do_*Oi^p)=B36c0NaY`zCH8HoU}|=JDE31W|ODptz}eXpenwl=D24oKf$9t zZitN(o+x~i8vMCV^5cQ89UjROHEnKYzQ&cPyA~gZH-jCr6b{wqC2CbS9g2)<-X}ZK zv&*JcVzuM~tyn=6saY$|w^?y;^g0=ni`Aro8;T=Jn^hfN=L>2kDJlvv9fu+#q0kva z9xcwjhxw`D+hUXyD3v?C?)jyK;rNG!JNbFBMKS;5p`&-5nu>g zpRKL9AmgT%MU@*BpQ9*ZTcL*e=I^h3ErU|jc;~F{X4Z_O*?R>4l1g_&IJa~+xpICP zFmc6084XH&D5K^U1b9WT+{(Lyl}D!-S?|^<-01D7c{r)KU*ePM^4lqGHmB;LTR`fJ zLrIU4bza{YW0$pX(=DLZe@}dDrjDxH^9d&d;k?>1V#18%_sgnqRKH*ss+Gj^Irm&^ z{`3CDx^1)vf3F4R}F>RTSB66TqZglcy&2hnSkXNjS%#*rWy75?KtpQ@c-M^Q4V*X9nQM8GK#goa7{jBW*qxC{W>zQdG`$ zMahGkscnvxUlG#qCW>yGi3KE&d3@MA%5Foyh*SX|0zFool2+M6%hSoxnr(GEb$v8= zQR1V@0@e1KE9Ms13`b>HW>Ww*07aPW6E17JN^9%q_5)+p1>Scz;fMT6*WM{k8Iz`D^}~yVsr_ht<5cE0sG6 zB{d~JFx+!#jkwdnU-@F^{@t4+8SH_`8o$C{!@neof0lX_}n^-JGJ{6hDw-U7GG`8HIE)O?e9<3|)3^QBIs%GHtYk1!!*$uPbwZ z>e~SwEGX*59*L!q56^`16V&gf6KCd@< z;_1m=saUP_zHq!zy~ns0tL0Ck7L6JX9Gz^gZZ%PTi6ZrMThOc7XX|hC(8HmGn1{1&pq6gw z?AmXh=u|Vca--fm3^QFHrA2b;l47ErseaXp+Kt=(*ncNT1(|*uPZ1 zsWtBzgS55V9QhN?YdYWKzOtHUP@Wb>LXn}}-7R;T97$e$&(szu^5lX1DKkWiY1*du zru{K{Z7d4qLo&4*N)BS$YhcYO#eSSDXRbqi3;-I&*H^ET18B2BruZw!!FFXC%LQTJDVJ~~#$ z*LoWtza_V}RbgJ;nK3YyEtcczqdGGm;6_FPlxy>F%v+>xVSZhmc;dLdVftL<&(6-F z(v9_qgnfzCg6|2(W_zG!$mTKqo^ZMb`paw5mNC~SFBll)FV7ogX@U5J26si|Yc^ju zRj)j|owip>UIg)kN!aq=h1^h&esYwW7W`5(u~%^ zNjISGizmC9v6sM5@}h{<=eqvBctEMZbymd{Mb?pA_gsJ3u#{_@kwa}1Nw?mKhc8e5 z-d{?hZb4f;oN2FvU*6mD#=)ut>55lQ_cQ@Xi^uV8fbQG66IbuQulnt*)y+iRO|}!^ zd#1hnB>jRO&SDg?t^K54+3oCaU$!ddBfIY@Z|3cexo`1Hl~x<&X-@pqu`1tFv&=2{ z9^cGILVs^K=Dx+R!PZvHcDnuRaqsu!-1nrLd3^pUtK+wc)^v;CB3YGx%C^5ZMZd>4 zn==VDKQ+%e^A!Ca3(Uj$U*Fh6U^>?{Pq+AeiM3q+Z;F0jihfT^5x?L5Ka~sSwb8s4 z`=@NPS>D)X;AZ=sF16;6@I51@nd+a+XXT{iq{m-dr0lU1Ni~ z*Dlx%ksY7fm+nkfBXDyZH?q3Y@#2-x*){B<86(MZIAi}N$u-}sU-MyHrB=Usg@*ge z^rLyo45jO4xbBY|nVaF}yzX0$3w>N#M|+fH$BiuFV|wDr+U$K|^QhRnuC0>bMxO`U zcvdY-^~_jod=Ev|k(gDRe-9=8m+siX%1m4~7xiF%A^)=U9_$}H=MB%diHw?K`1)y2 zFFnSstG1(TP?)5sijKuE(o5~R+1@pq&oR5L#nqk#^%i}Ewn@k0dE!y|rE4BBie}KM zHsd6G|0hPQcC+;^oFp|7wfOUOz5tGY?nyuVK$p-t;+uNi%*I<-`eu8xx3J2xj^q~^ z5b7IYxp&%e!Wz%ctb!UA$mS|1zP}dH`E#xbA4aen2!&)Qt346mK})#9?k%rBc9@_P zHFJ%K^oop%@Qb*eWAED`-R*wYQin{ijGUsCou8N8>65O^nzzc0D!r3XQc|jd_b-a6 zeB)A66iHH^RnJCAg;Mh9`Dd$7WvD58J@^U*sk2m9j#R#KeAkFsKkL4^v-3(<8qU~N z=5ER{YpnURQ&-B?^jqkiC=1WtS&mU_X$jx^&|eU<9M;{my8XgqbuH&9*4-v&QDj{? zN0&DfhqTY!M7My_dsA1swJ+6f=h?&smDN(7#td8>URXUb#_gHScw0R=<)- z?(cig6LyLLPk{I)%v5cyW=P}YAr%JCXr~lqwF8Pg|4G%e>wxn&zm`y?N|MczTUUBj zdg-?(Xo9oVf|4i>xS6%1#Fk3Y>&uHm8Np2j6q&U(y3+GgNZ2k)uPBmp4N+u9dA)ko zYuB58Vy~2xH)&za)6KlZtEWje%Z_;oG0*LUdzj=A7{!2hBL8|lP53oNV^@E|7WUuQ zMqfYH07IjBWVqOx>(;)9mt!7;xb8up+)XAKzCDB%HYi+N2{zQd@1%|QlXVde8{ONZLrm zVN3IE+&Nka`IsjErc71lzp}Thre85n9rHB!9;<(ttMyFYZI=#Q_h3A`XY{3Y8+#h* z&FHo~EbDP2Jw}?$AKJYdbF05T5+Zd>c7f28o9|FD-|zB;aHLra}I#D6nux%HN_LlyAyWP*iXE zgrp_g;Saww_L?PorDR73MRC`BEv5(iUw+?f|ILm{QClsJqR6wHY8SWeAG>yY3h_;n z$Hj6HB^$~z?}hbO77gBxBKsUL?iET#l-#w-Jj&71K2>5noOnv-n0SG<3i`|Q$771N zT3gMkxG&QBtRK&fIMd3z$yQ~7+D=ysB{ROw_$9WW0hSKB;_z{8zcdf( z8vFU^0>e>q;ih8dyJNCuDk^CpMx%^J$s|^n95kx=+Z=^;1>Y85pGIB7&d4?jXlQgo;#D*o$-_m^} zoFt32)al#*>Tg{$9$H~lvZ07?oqE^$?e)DUKUkGgx|?67MZH;cV_r|IQXNI&bAI@_ z6JgbgURMfnWoN0b6dJWO?V9HDl>_pJCu$~N(^k*kgK?7;-?Fy1|Ml9}x7~2VxK7gA zCrJC`RP!6{@3y}lD?9M?6!i)ARWp`M4Q}2#=)NRSS)j_nP<)g6v)}T#`RlP=8Smhm zhYO{IHzIu^E&O$?hnH?-o3MYfxRFo3yILmVMrJI1v;OcYaCi$f`_Pn`DCtnDEOU09 z_4|Am+^|_#qPiSK((Tgj)#tukdCJ%l+o&k6mfa{0C_ii->U8&2m?H|41$k8bo9>(E z>xS0{xb8@%6!op~8z@p6OI%oTp!2AQpHS2X3rh3lBp<$F92w!#;NYd61$?`za46bk zEYEZ|Yy76A{WA7UKBcG?rcWp`7VD8Dy1v)%7mTN*v=s4or{jhiC%e<NYzqNKexHK>mwOr!|#l1+pKBx^45T zw(2cIw)=E*sG@D=dQqL$8e)&bc zv4aH(zwe@+Kr!fx|Lrr)0;yUyzLzHDjgn~c4KI2b^KZ4JBBnAg85Q1bXUBSv4-$?( zKQ;LZEaAle`WkNJYqM_dmdyAjCB!B4w;2<&^kBJE$(t6F-y8hs7Lm6FKkhg3o)(d_3mY)K^y|7i{mLmGTzBbkc{vyiw=!>%=joXW&LpYm@i*abq*4s=bb% z3(WZWu)Tb(S$zneQfhqZPQ^#g-vr^(EOVrnL7=7M+rCcozb}avjBi)Tw!=;(;Br?{3pmhje?cD>36Y9?z3D zyVOQKMZf4uo4)VwXBedLKc#(el^84|=+veY6 zj;=}~B_tPaWG0?(N5+SZA5@;N6qRl^+5_3MKsZHkBc=ECp(`mo+cYet!cmHEpufLV z`$xTdo*Ua>WOfw2jF#5J39R2eQ>jTKV|6!JP#Hz~`h%(8-2IeecYhQ~Ym{g)nSaL) zZhP0T%34+v9GlwG2d*5uE6l$0n{Q*E-WI=**|N^7Oqto7>a?KZF>jS^_Vvm)^LIE@kIv%L_)HzWwr-oL#$qfzQGN%n z*G2&&2d?Q|XJ!T2aiho7#``6Dc^i+Lw4}k}ms{@lozz2ig~`OkgTLmWD@W}duQXoy zNcGNY;9yy)E7PX04{VvUaU^c|p13FdY5dWKgWXo{mGNQx(S}uV+@O`jW_N$;KG}P1 zD`kON)y<9~qZ<2*Jz}R-b(2wzj1x)Ggy9&Y8gn7|78!J-GRbT_X2 z)m7cMCF{DL9cKTa8j9qC8?C>tJnHx0LjGy121hmJshXqn{st65$kSMa3k+~`Q`8ZvTC{U4}L|_trjJ~i(mpKEpxRJMZtu{J+A9XSG{ir@ZdesIfn5CFFKcp-W5ZMIU9= z1BGOhaOA^}7WbPefBqbE1jR@gUq>FXFl=v{uE~X_(t`ykp@OM_@+Kobzs1oCS#)8Fordh$y+qvN`J~6 z;^UV3w*CLKy$Q>K(JBZ2qLtCqT{2xsasKgZtDEgxwetNw_G_Ic$GiMN>gdb5Q?_ZN zv<_qUuS%46o77+#!%{})qsRz<$owuBD&|in`6Ig!OY^r?P^7hVS~Dn3z906oKT*bF zvWTCsHtykG+qK?MY}Pr-mF=&4Y2BGg%STPI`DBQ14Y3xqU5n|M=B*b`Ups@RJVs2- zEwCL^dG?Voru3T9^tmK#-weg3ZDnQ5$M{W_k}T!kMW#*_{o_PzliEnZw%IS3w0wla zvkLaMGXIfsZOrGSch;1AJGFAK=T)y4WokShtMXL7sORR2B6&K!@w$|QCU5d&1yDT% zRXO+~lEd78GVFkilUqBRu_QL^A$|IGt( zXK&HO&rn=!SZ(;`%O^(|j`_tnY(C`SJemGSc}5w1i*GVN-G8M0swtx;v{1IGUNg}y zt*`Hx=X9gu7hPnYCG%5C6@M=$syC_B@@l!YmEWbCr^QD~yv_VkdjQRSOT1f)&!p6A zd*pkXR`$B<;h0;U12HKGyYGWCbX?E_e#x8Xq%y!+cp@tl76+@-?j`rHf*w%22?p4 zWz?|E+ye7(5|;RX?_1>qTEB2C`>TSXnWinJ&dJ!)tUXX^T@N?uiO;9P0e|%9Q;RhR zNo$Eu2b2sbUPJcPUmD&yvsDSzm7%v{26V}`p8b~cL_kVN64RU;gd6FDFD}n>cc;fn zY5538#uU?0Bsb=!4LUud-u6k>aMq$^MVVA+>gMxxtFn${*k)c558*~uTZcSw$U7yO zqrEj8^PIbb8_Cn9n|!M5OM8;Br4i0olzb=)7yE`C+}@iptSA!GJO}xUxF~jigeM#R zp~_XO8}pp|r^@JBY|D#n**6_Y+V^nNFaL>c|5O<@FY)H(%{;fw^VB>I#vaoCp2XFt zMK!)1E|C4j(xnQ0K-%~>V-kdYH?VqYy=H;#75v`?I-n55L&2;aE|0i|s zpR(FK-M%MJ|6bqBONeBHuJv%J;Zbaw?i&`^d{bS`7ZRpuO?=6PP3GbJ72gcozQ?yJ$F;dx z?itr^_1>Q8v5Jqfx~{IYaQ$)pg)4{UiGY0NfT2Ue`22edY|fBXIDav>O;YsVTVUSy zeoq^cFs%#gqg(TwOE?qPCwdn1_Z!Xsu5YW8T1gzYEzQH3i{{HyQhi19cN7`NS6|oX zbzsV>tPL`!R)fogR;!hTe>rEeH9k;P&NBHo?He5rN9E{X*ST;eX?r!rR(q`}wnm+r zVr$H&DYnM2YItq2HB!~wBy8V|w6--u(cIV?TWX4}5~3+%uC`w zWr2CRnU{ET+y1F?{ol9EyiGJuQS*9gUJh){nf}?DWp0~!Irw{PmU)Vr_a)|O{oik^ z%*&2>e4d}vRsj37^iMXivm;NJjh@!lI+9jGzNc?YdR|+R*^}7r;H@Zs)?tls%=&w)qPvJ=K! zFedMQ(~S5=6U+xPaX5o?f2AE^Y-okYc<$>700}8o442hH`ndIw`ToQ z<-mM)_`mHn`-j>4m4%UA+zgBL z(}ZOfZe*`+NdETA z2NW6M7th$Th|lvTP1OjW7m!N3r?{={ObDNyFL$*^L+WX6t#<#`a7C(YDK+!-7*EqZU+4?CFewu_|&R! z?#`ILYkokHZWA|Ny#x76v;1}UbzdeNIx<7vaM3?hQWQ55ua`x3InEwmqn-A5Jf){C zjUsuv`}5Do+&+}8uiU7wT${zz&BYftvOoT5qC##>Mo*q>pS%iJ3UbB#&8=YWkeO?X z%K@{4wpNk1+hr3zW^cCFVp`POG5M2^Vc$^XHCOU9EHES#6D>0`xn*fyyY^J&MirjE z_$KL=<$RmptIRnh?>F*hxuj@RRG_c8$?>8=-BX2fA45^^Rl8Uc{$+c4Q(d;)bPLq} zX7`m8*Jlr07@A)DYh3INw=BiBbc8eKXtlO=6D1p<{KB+n@f+6`!?&NQr!78f#o$;%W6c{wc8vTRtP9BwrMdg)0;|4tOy7(h%*qR4vhO#kS!Gt%vmH=XpwjT$IYM(@2XH)2?? z=d2PKN=se&_U6H;5r0&Ft`t>&{Pl1imGy}zHtBV8tD9&P*{QVjNTV`yEK}txu)1v{ zb)~_~QRS<2dB^^EBb*t!lB#>i;=RL0uO1p!mqd(rPt;++EuAa_*EJeANnlwZ>Jx8 zthLIG9E%lAainuW(twnfx}C6n<8=^uRm5VWmgprU-4m^5ouAflZPpLfN~%0nIhU}` zNt-Bz=kKlC-_!1VPs?Xs>rGk;%C&iGnef|zynZCzsil~MR!d&(?;ke%;&J(2G<}u~ zc=|up+Qc3uN4>~@BfYFR^PZs8tU=GTC*Q+IB-!SeX7>PcbfKkU5+fMi9rH$J<< zBL|n9WQj`X-PxJhWfxc&K(Z_%5`4fyPxtMa-tDva&_e!o+7@2z|L-m0FK@4bI;(dk>^oH}*t)TvWdr>ZVM%EplRO>$?v zw$2*|?kFkf3w=F5K+4KUneoi${&LjfS8qj%)_iv%h2z|l>wo!-6%U>Zk2UdWME|)D zDI8CyeE#Ik_ub{OWds{~V{Z>H7{G%CqZ@CqZaa zPqE?*8I^NJFY0n`-f{a!Z$IT=j?V0jC}-fWYApHHbC0Z2|M)pLVW}wS>p2-Iq~P)e z-zyyQofmNC0Vz;?13eqQsLobgx6&q8-TUh5)u~f>#{s%R&vr;z888zcz3P$MHb3?V z&iK($k+PdkdG4{NH+W>htvKDmD`Dm!B^}$tfO$W#9WeKTZ{l^Y``?9!URr>orx=-9P#H zoxVP&_+#-?mDT;HV8>IgkF5T&_d8cSaa5SH?CXke%l~%SCkOUCVI)kMrc<{0V*i0> z9<|Q3VM;noItA%4>E-+q6ifrvhh4k;pq!SndsN-4=%i4__58BhrgkxU(TrI79x|)RSL1{ToN^ zB=45XeNX*Jp$)s)k}GaG3Cr0RDfBp>`lFez4So0|$hA+w2vT@1bhDqXwEopQ z9Lt#zlnYhtXOOZ9QntAAPpAIroU@>>Avkib`kOkX_kfQc_O+*HoW+y@u>$T!%BFxh z_rZtDA0ImT)v%oBb;|c%s;>2~znr*0V8lvW`OTi5%>Z-fn`d3U&CDm3lN9L-Gj+{oCH!P=x6waM4e`kk3o^eUfH6gb1k+KC+GAn=e zuJb;>H%X<(txcvDK9Vsx+L!2*4{Uwo0~@V)w$L`fj@5HFQa%W(w_0w&^H*-RWUjzSeO^M!)<{|Xtm%K) z@ZyVbUmEHolDOVK)M?XwH-BK6?Pt7lE$(vDqjRDh43LCGUgOMnZ%QagI76cbH1FxM}qs1GJ+?(kd)v5)V(%YFaf?%5~-1{`lr&C4;(Z1!_S{R zt1c;`DcXApUzn!m`vG9qLQQ}A#+Uxpd-OzE%8~X-q)lWrMZaMH+T>rV|J>aFhs!?u z!zZ~Gz;PP`YT_*}xVvd?@_jYvs(76d*f^G~_Usq7+_d))_=ZbOk@9z>tb>%-PrBi# zS@X-h8%S%4bPD4434zyh!2tYAY&mq3l$OJNC@C!`+|)exI96 z`=CB@Cv$rHbR!|@Z5rneI0^%wt+4yMsy@HnVPs&rC9m(Vd5zXiZ=Y^jAx@i=BfT+E z`-^s&Y|F7tQ?SmIDRQFsxA)DMcERX&A3}Z56L@n) zdpVSAJ8kLZ{2Aq}kG?QvV&0*vPX7^ZoRYqP&fQHp?Y#DR&^|W$DIc9WMXZg=Tl3!B zZ_&p#00jfkVvwD7ULTIUT)|2&r=4oQoOW#QeJj}ec6uwc(}q?MscNsO^lj+)bZqTB za7)PlJIi@xnJH@4_TLAb^8P!_ray!H| z-~8O$M;!8vHKd=yteKS{y*>qrycU}xQ4S=f8`>8Am+DzJ{r!8JZv2}w_Ld!KSOI+& z+S0kxPPN~&+G+F0taeHCVbaH+L>~NqvM;pP)UA=)IqLWAbV)pA`6)6(zIl}kwmRhQ zXLjRUhWi0MJ?9_=lbhqJA1z;cZ28dFC?T@2V3Ck^Y<~Z#4QF@@Qe(@nUVHgBpWhny zamnfmbXB@kwHB)0c;@Vv)_%G1GR{``*xKa{HFb>J?Ho<-bG{^|k4){n_F>w~@mnsQ zBIBu8ipg_8408#Ze6qszD0pw{Q>zynT0pSKRJvZ!ClNe`d+r?PW;W5WM#8TDN!o6PMpv zr9f5n+>R99rL)D9CChB_kztZ|n{sVWu@5Co@Gn}6?ffTNf{$+>#{;+!AY0pSXA63O?kiu1|o!*|e z+HPOD;Jy&%n@Hh~!2E4THv8jt$HV^(*l_T@x92XTaE`G?=J~^yt@V9DQhJH)DWq@> zUG5g%#zxVJZ*BrKvq)2@R zkwOY)Ju?5hJ@p5%wgGIiWOgJ{IL@8F`~z1#@Q1HFDJeoh87W)~`1Ui^FHhU@#Y;kL zCn9A!QqFkg*oQk{FkeRs<=};fSG)17bH4d@Sk7%4+f_3@`|@5N`!B2>%RPYT zjSnM*YpTayy8gBK@xM)xu~BY@`#n;~osZ|&e)+X+2R)}Yy9Ndr%rs5 zy9ioS9Euc5{2AZg_#a0uxan9)5v#L-6w1z;D{egd@NLiH9zS8QD{`7nIdJUZ9j@8> zubHr%OLfYl7wrGHpR9J<6=BNFNTI|pcj^^ida3>bcnxgw7S=;ZSq~{MEc5+Oy!^g3 zd7FYx`5RIw*SkzRYR9i_yDGWEE{txn>{=@2Ux(b(|J>!5?XF?41GPRZ} z&8wT+9_8~IDJ7&(4(8pz<9ENX#iP7Kh1igC3R1WZ`^8UAy>y3%cG*v-fNxhKg);ig zZ*F~Yxt|ul5~kdPl(muaR^}Ve7SAd_hZGuPke#QHLK$79|K+WA+U4yVGz_SI11YS} z)Qg{f|FnZgR86HmE3B<#=hT(2SY^K_7jCCvKwIJs88Y8K958I{S6@B%y1h?1^`uT< z?gR{Jdv@t@mrTq&gsX;{2kGUcrQ{WZMr-ec6l%WvkAGtP@vX)W7Vb#@>870jDVTJfSX^KA zto-n^-~Q$|uEhQVWQQugC!M3|-04Oiq_=6hPE6Nt>AEVN*S`S|sCO1+*4yiskM4ZA zZd0^&I&JAAM!FtNryyPPrR#&t21-U(nmGF95C7^$e_TMzb)$FEYno0$H|6whsPx;n z4=ZO!4)_wR0LYt|(djL>7hpIxzVcs7K7ZEo*jr0*cy{4~!K-qjh&HUi$TaLf$ z;{RKcm`*{u^rpk4b2MF(rqdukQ%?G9_kXGt-di1?&V%$7rgXVZZ=Y_s(@igV zZ!P?E?)*>j;JxMOdrS4*A5`<;PyS`<7yo#{z1PWlqFfpJXQXh=ZsEhfJnjQ4JcJcM zu8(qxyuybR%-gM1Zarn;YM3t|MOHz#LJB?bR=n@-IV;@i!J|X1sm|)zPs41v!8eYZ zk=qwuZaz#IDO&;N@&ymR`;oz$;gUfZS`O(gmp*$>w`#hvqPvm!bPBqWgZMf*_Omp5 z-rM!~|NT|>|E#Us*4F>Cf)0;Yz2f|z74)8-JuZ6uic8kH`AwN;$qIVF6hn69hR zN14;MQv2JtFZ}v7zsTIQ5h(aKc16->Q~xNcQ-9vqPdIr0^UpYrCv8y>_9)Y}a{7)y zdVSKha=IOoPIdZPS~v5oZgl*AGMo8Z%5kq z)*tCVGo$~^jCi^|-BSI}%*ZyLwvThrmg0f;Kc)G)S!MhG&sti#y_4Q@-T0xTw|4sM zu$%SkZv1M}Yno1Vx;{v^92PaI6}a{FY+oN*IDg$M$6&kA;=)mYaSxR}q@hi^Ughz)k0`2$Jel|4P@ z^(tS`&CWk<&l_I3cmOHzT%k3XUQT&&zQ_xoe*DkE4@Pgf2wtzCK#qhYp1~D+v|cRN zvxT0X%immDdhLvTaY`HYkpm`|fdcv`esT5VcIiLjYWlLlqmg>_zn53HHf;UntIzuS z($djVj_{z_$nZLYo)Zt9Q+WT~Pb_2#2msm5My^^Z6o>EsS+)Mx(nHgbqVICM5#`Y1 z^TJD}jb8Jk;@Y97`JyT67K)3uIBwf*PV$CU56+jo4VcvdbMV}U_uK7`uiOG`+JanV zmh!Z?>$aY^Pki4#8}ke<7ze(kx5Alws5=Js|MsuP{`$~*vw=-p>nrssul^I?{oaND zTz9Ps>!a-WkAep)f`Z?_@PqYlo&NT(ky$HwZSpB-bucZqev+f@t}CC*0bs#i>t2xy#pG8 zO(cakxfL+I zxVZwYz0EWwAscP_^k%oNuqjS=pyk9fVKohN&?8T8Gi~F2mkNx`^iu9M1O-Rn`URdZ zx$rYL@Aj>?SEYA4u_0wWU}MV6)s`RH`0VSS7i{8Lx;awlw|>F-o8PkE=fC+XQg}BV zV6aJ)a&EU5F!VuR^R!2wIp`NZ`37LfH`FKn<@B8Z!;`&ht$y9jOV6yF2N=!K{gA?b z>K*&sSp5@Ee-kP2YT><7`=LHe`SG?FJi5a{>+T~kycD442o2L$y8e}Wel>!d9(=x) zk+KG0{&e-k*@rx{*A z)8#-yu0#s`)}KE4cg^b-+(WNDo?V9Sy%Q<)8=SwOHnGu3x9^A)v>Tia2cAR^#QfsvMbTc>P4Yu}HrfBciYk&>DM*fy9wMefcxc>TS8z470#hwS(%iS-d3 z->wfnF-Osq(t}Y>qV$Rn`Wo9QkEoqaKH!qKjw~Gm3UqJ0cCM1%pKf*Jabr&xRznI~ z8|_mlWt&Ye-}CE>pZv|$H*9=`r1arfPS0X*LR8W_f8O-fH=1jmj}+cG1qn$QONb5f zmaY^3d!CZs@>U-hy5ig++%Z59RHr9h^QG_r<)mmaw6;aNr0TczwpYF6i5sq5E%&i+ zD6c)aZzEmrB({R+kc3f2d$3-QaySBBxyhlI{Nto|HwQ=cC^HwM414ekZw@_vkdkb{bl9p>#g+ZEvT=_IMnnXx0^J1T7FojZ8vZ*DwvU8JBz*>Z_8Dx*vs+v-!sfrY1GTJ>UPQ3I=# zs~mUN;oF@08DPVxKx`>G1kHULVA+EoIeE)>b~^0j6@+Rj=RuA2#GQY$!9Mrhy(dyA zy{KueRhh`a+}LWTp;NY7by?iuCE5ik=kKKIlf8YDpX_Gu{^{~Pug{a$gn{Y!7maQ17c=K>a>q3417#vvM)cPJvpTSi-}Ksc%Wl6n zEj#i6wq-hP?d2S+%Sngv8foM9od>G%=imc=z975$cgZ)7Kj7%EbjqH`tnsy>g`(rN zjMg%xYA)OK9@=cjF+3t7ba`%4ll{!*riy>ts+sHu2 z4S)Wzksqvb=W?k# z{n&T5x#@GX-;|I}-(AVU(rb4)alwvXQ`kfwd>1LCZLM{`y6xIi@7)RIP#KipQH%izHphko#@g!z-9)-SPkD}4d=*#{})=#E={Yu4(!p7k}Pu;tKC4@C+!>^AGvK7aUu6SM{~ zoRbF$cNxqE!`WrF4+J6Z++_1_xx;PA#Z2`KWFsKOT&hi`#KDN>YbezzC8Mm-7fO&5Y+VcJ=LkQz3!a9 z_JaC?LxcyS#U4Nk?Y9{_-r@cE)B|}oNlW}aC53H^{WiJy&Yd6Q4H=XwlryEOZeM$F z!&@Ia@Vj?@UBiHHYaxXz=$EW|-c7B~-AtXRvDNodeS5PtZ~5v)5B>TDNs%)g-BA6m z#&+7>$FB6yy-)m8u;GTLzMj4JR%`el{>i`Q?fmm4r-rm;kwVMvZ^!-oqg!wJ)|Yh( zKg;cg{fHpDk#a;19zx1GNLjexsRN%o;6t2ivX@|#IT~`n z{`0~$^S`#{_YV4yhJl^=vlIS! ziN=N$==da!1Z=B8VdtCaJySJUKBt&LLdjN(UUH7EB&%fo+%b(TQP@lt*!oI!cZ%*Ismdk$rSDgZ? zH;436S6%Vop;z2>+O-^M*>bb`dpy9<-g#u5FU^>CT;cZ`20VECLItz?#I9ey`L^9x zQ7}|}>HV|{Y~*~d?jLhVu; zJm$(wr>B`?{o@UZd09d{MYZ8_UJO7;~bDO3Yd9FA+}|wHE+E5f<1g4f?l#OQdpnA zt-Q{nk^BF_lfxRO5A8!99D3E^FK<%%*l#2S?K3+~yP%wlfsOLkGw;>WOZGfXt+ELP z=@Ne>V92+%&KTe1ok#9{BBWs2N0jV5pS^n7`OV87)G4Ux21p@oD?PKr^ZS1OY%K@W z@!KMW()+%H#!mg?7dL!e!=NvuNFwB5M_tav=dUFZ+U1{TTj@9W>a^TF>ubmm^7$ziQ?y?3a^r-9Bm zp=aRf_3yb0DS9m}ZH=op_5SMttRtnZwx;l)OMS5UC)AqVA%{)b@a8AJ&y_5_vXIi} zpk4l_C`c)%%hpcs!Rd04!ku*K?UJ^13R3!9`aBC1B(Ftt(v%>h`URp*4^wmJvwyeu zl<)ldsL%4AxjC>=;LU=R=@=U;A9&@*4?es(R*(IZ|3(T=BwoJJ<99#!o!v19^i$d? z@b`bxDc~;L&;wselB zduOC`G@Wnhz7Ycpl|B0A_y4~5;JrsS5gmek9<28xg)1`4EjW6tw$+Qfh8#`YVHcRA z0K*-Qv%i1G9mP#&ogBiXOJcgbJq(S^o&3ThJAdb(%-lb~D_QR|rSmPF2kG^hOkcom zfc#5ug#_;mz6gU+W{o4&D%*vlKg<;GUsml}VPUSX2aZaz_H_4i16Q@KeS$0K^rFJP zOuAI1`z)mMdNMWjd;O<)Aq9nquiz*0{nq_BsAf!x3$~JqRaqfou&QTs6 zc%h@eKfRoE+8zQnuGzi5_x9h~_1+y$56gK*Q?U5aR~|m??cp=SltVQSzWma0cU)M% z`Fi#&MB!h0Iq50s6nrqRxO4gS({8-&SDO|>3evH)-_h>#EggnAxEB56JHB<;-QRf> zYmh!n?K{g#y?Vc=eplSFQP0gNRvOK0sWe0Nlo`9jORiqYmJX!**6>c#XU&=3C@%G? zg>9$Lot`aG-xXFwFVMbPPd<9jZfp0=+9?Qv z>3*HQ@cuu3|KJ(VzKs4~BQc-9=blrqT4BpKuUk&}0N(S;m*yXP+r&$EBFwe+H?}+L zvaK##um4_zS4a4+a&x=UnI}97e@3axt^Zu}8})O~T63sanaQ}-p15?!7dKk+gJuKQ z`QROwBOaK3{KpFWzImed|ab7U-g|vD_74pyq+6=Qd{YQ{no0lh&oYnes|E( zUq9r^>Fce9@X81uzs^CczPskY6PqB+@_#b#$OCsC-Tt9wwpbd2FWsJp-M{6F+g$g- zZ+$~~n|{#{Gg?mO+P2ov8vZ~m;b>`Rw^Jf0r+)O_SyD*qR5*y!4|KYQ&Kzt`c3 zn{N2f0l)a$!!IFB{w~<{kYCnspLgavI(_a6^DepM%H3zIaJfpq_VKYbcKPrIKU)`J zN<(trBC{1qGj@Q@83dqV9; zPTl6DBft2~m0$Q9!lZY#N6!1~Kfn0%AH9n(cL#c2_{|^g`PKa1+7LZd@Rrw?9)9bs zqXw6-{TNp}=O1?rFL<_C8){1WrOSWfnltwL#n~#o**NmTe>_&-`=v!#o)P{&wnp{w z?Do}(kHRArO?2F~SN=V_cIEJ=n+5z6<3PQls$c=dA ztd1!c%ih9Scy|Uv&@3HCPhR6QLvh0`RXS=(ovt^LKn6V*``p=*j^*7<>N8g_)|weL zg3nYxnOdneT-1a|(rei|`i{<}yoNKrgGB^3gV%Da^=33KIcEb|OP&VEGytVLKql{v z`o77TTDCdT5Z($wgV}s>EV~HLE>(tS!tKq=XYxaXyyvHpUpzC1i@ht&Ok+u7uuv%1 zyy1-2WL|xyiWr2ybE{sR34h$?Shb40`Ne}HXup|5)oOWAU9qk43^stQJ~306uD@&b zYM}_n;9+s9&Xux_MrIT$FrRH!!Tq4|bM-1xyvnFI3M3vJYtRsVp~RH4mF%!r&y4nY zh)^9Q7E-oF;xfbB$P8KFgwz0)*5Js>i9$k*eXr> zI%px{rxGVnyO@nNTJ*-?114|V<*%#)Os4+96KQi3m>7CIWUTT5iR0a_I$SWPAf1;MC<4`@D^D+>eY=xS~Qk_^% zpo_(T9Q-G>f$Mj+l0y$GlYQv*a2&&T&4ND61k7Oot>@-Yv^Y{0DPQ;`wY8M*KM)CM z|1-lC{{ctq6e|UoF(XZZQ=d}a90%N3JzJ|y07`vyL?ig<0fIlsPrp37RO2X$bV$JX zpHdD^aR3l!1aM5DfR1fpOPC2r!hoQWPGW&Y|3{Ywoccgh;%W|-jPOvaSju~KJG9QE zFz7%=o+ohinMQV;^k&C}Pm((iJt4Y<1DT~0RGD%QPPF;~r1OVHf4YNMIMP*AF7^BFaA z>XSd2LcLnf}Z!bM)5P${WLbuYtC|l1S^pD6C zNixHh>gjA`jhcm!EUuVh%d&s@`zD3e^ZP#86Q~9vG_76|hsO{xU4q zQdBYkYLc9Q>d?}#GbTo9C#>lpK+0QnUI$!SoM z2Vfk(s3YteB2qHIg@OzWHD&l>rpg6?v0}bCf(h&PW_VDJRrQ)t8JHss*Dypkiavk} z4XSgLVKOswE)nDn0)w)x&>MuA)6zsiKF}Y0ix!dElavhBRZ5->Nk|v4gn^74nk5qj zjjP*+nSdn>!1#1e3R$SnYfXb6ghJI*e6L(xR8+p(nA8_qB`m|DZJ;9aUZz%sEo5O- z3IqyEN$E(@7$gCc5fU+S382wBKFd^Fq0ZWNkl6(%6j;!Eir%tfj8joD7agUw&BXD7@^PJv~X%t?@$peB`=9ZAQ}SsKFv1+rpzAl`Z+)*;3S zfxs6DOGWV%Xso9GngGt}c36r5fijGc7&IW@dn$I>yW^kuqXkrXYANi72fL!#njbrVZSwtHKh_fEz zEp5=O56l5Hf50R62~$2t#~2T}(_XPXJMAi-0HA#fJ;UN3q$DH>9Z> z)F3wrGorgf9A#37IU3&;>abx#v|(IVC>19INeJ=A68;V3F;R>c5lj9z3NrdcybvR) zs{&$OGDIIs=n8qLG(wdSmXMVCZx#d5R*EO7lpwLILgM-{EFqrK75ab~)Im@sA^LdA zzl}aYEyzGb_0|<~B`OLB^?FEqJf$o227l)agt#NoT_H9{;SjGG+ZozIL;MlAROEk( zG2&Wc(%vJ=LIAM(5c|iqR^(fzT<#_59=6;^J+=BPE}^tQEMtbh>11r60Zl?|xGGU9 zmefw01ueZ1fQLWefHv@HM=dHgi}w9L<^U*vXeDzy!Cr-c9zX@(9hvEis<=(3!ouW3 zU|cgb<vr&Jkv&jZoV2uOmD0d$LAwY$eXLl=@D4{!wE9a-zL z{>g5oK2T4+Tn}%dQl^dtd)vZFn2F2^AY|$z&E2f3;eO%no>;tfVps7-g6icinc9Tc9wSd1Wb4qq{4qpJwDgZl9XRl8)Ot$g9~Kc$09lgQQ(C(xE!1bI+!@GYvzwScM4 zk^oG7petzoX(_D%uSD+d$*&OVDg}Fbxhx>$SGt>24Sj-30@?B~R)y4;^k@Bzt&EIn z-{#0j3%&>$wcV+AJ8-Qiwo5DC7|cQ&bGXi0%S3XM`1V+7D_2z_gaA(@EYj@4U{(tV z%%C)xt0S5$0=yaQs0PNKG5HYgI!jZ!JXOM`0&o}zjU$WT1nmvb;9F>R)wx>nns8SJ zoc`)aXT!s}n9CGs-}s+l3(*$y8saZzAz9}D2K~i_biG9~=qF~24d?c;D4?>4 zMSEsQh{6RxLq8>F+yG9@oVK{ z>ZV?yFoC2nFiDD(IHQe$B>3(MhX{XwMXkJpDnl8>ny9vQG;k`bCLO}^PdEdF{7JY~9lT|nx0tA0y@?+J&<=r1Ww?Jwm z2N__;>rG-=fAx>$S?G@B1HMR@((jyZw;d}3mbN(Yqms(W$+yf9PVQQ$68HcQ*JRYv z5FG9Dd8|n{8s%)gnHg#o3f3htGaJzvQ0S&^7an>6ssaHW20HS(3=i(GLwRkeL|eFqf}k;gA^3*o(0tSTKDjF1MDoIPRU-?n z@vIT-njgI5-=)kVu4M z;fgn0Z5DZC*;4f|6ZscFfcd6$Z2B1c^;B_$OhPi;rfME}G?u#_D^-O_{ ztUg2pWjT{!wWw{YMvzHkP!PbP1rmq$Gu47dRA|s45lvKSHfYaghv531ffw5seTvVcW1`lSGpJD~RFskO?SMe(Pj*-x}%12P(cKFX~odzqL9j#cV_RUe?!eGVYh ze1HoBXb|m6OW9V}Xkg15$EPa|PiI5df}C5#Jd!U&ui!wP+gUfEaNtRZmHiYESBz2E z#PCVAP#4Vzw9yDL*IXT-E*?ucktNwyme-DCwwY&ttf`}w;9wa>rEQ{`keeK9$01gS zOZwy}8IR_(R_e{okVXqnkQX5Mi`?2uvE()?3n(KLjwlvrHKY!)K>w49)o}gM*Iil9 zRjE9{p*}E{x~-x3ut^GHBdJKIO9dy4&p?$B3x2pQ#n|8vOtBbgd6y0_>=$4#LLEUz z%^dOt;~Hnk%I-lgbF1n20MDfrF|vl>J>*(|3i6=r;2Wg7XVj9rsuVTK!Cn?`f^ce*sFL1&|2ko+qE^i`aU%2(*#Qr(VHyM8C=^7i>sDSyLHM72KpGn0q9*<#_Z%ez7Fxr~0VoVe zS9FyWa0sBmHz3{K8KK$98V2U2sDIbyz8t^h22eu)&>B$yX|w*#aaA z3Y5=N+|^@fW30GzX~||&Ml%9mGy*C}A4$Wqs`w5T8@82TBNuQPAs})y71w4J*%jqi zmYPJ42UYwKcBIPsTU`;R1H(9JJEFgNCxQNKc-eZ+kEdTl2CGv=>q%J+X=Da9MhFac zYch>QkqCJ80Z_fjo-4H)SQg9R0DGoUsy16FvX=4B5eXBs&N47UJ=lsY*_%xr4wufS1;3GA{?wag+xeo zDFqEE;s!wZ4GC5EGsNyvvwIrHG6QEU2Au;BPfJtKUq+=`RDjA5;^E9frcC+bqQy`J zyjd?@flTn^J%HsmgL?_}DjbFd90TTl504L`+PTHhMCx*hay8#7c?v=;{Lv{XM>j&u z%ZvD{ZcM^WAehEtMQXy2C}(l*j5!>qk`wcT%EWjKLvG8+hYUzEumy24$hssVR#)JO z#RxsFRVR~s0sHkTD%UijAki144RZEvkg%nICk%u_YH9rdKR|sz@e0}%2X&X6sX1vdczD)bE(w%Bb;~5Q)(67AA;KOwJ^=~)OH*3y3AB#@_ZlK@+>`7p-NJI*9 zqrSR0UGK>d?yy+=qD}6gTr+4eyMsDJy*R>F?*P-B3~#FoQ0d1fqIuV8S;{G1nI zWpH|WF*XbU$$}b9WQR#Az9035EY)K*T(5!y3*Zq$^`XuMa2NnAO?Uewx;6}$+Ay6{v>rkLjnJ%OF$bT}Bo)k> zF#1wWL%}kxRBh!8B`kg-P{}rnqqb$72!JXqL;&u%7u}M`(1_yHp|$6z`KEvDjwu%h1uE_xDAi|Pwb2~LR*hPa;u&HI4NWw?Y!JfD>Ru3#dsK13yNzBS zjh~lA$KyI0eCS}vTZ`paw2`Z?2j!4xvs{Knwq1)I0R~}$i9#X-hpT@CIAopA#Gwui zllx8_ysN)Cm%!>vO75Vwx%j1^_=R4jucx-P7%tS7>k@17Atkxy;4<5-+RZhb zsxo4eifiCvn13+&Mm<_}@-hMD8?sZt2)rQSx1;RD???HWEfN=w&wHM!s71#_8e(ozLwieR+64 zNY$1)USz12CU}b6!sevxs={qpL=pMLIJ9pYiNM(wC&K7zk2X=#e2It`F!7xS`-l(~ zQJ{%NP|US<;u%&tt(R>RaXC<`asihS0x@m}57SNGB^GU+&1a^X4RS2Sguq_;fQ=FM ziQo_tjsjRW#uE=vQTENoSWcje#Yn4apM+AD53@LN;sOXGBTz;oI+7E4C1r7uo(KLX zY(n=&tVktJ1oHVDz?wl-u6`HA!Qa@D_;wx0qir=8^K`et#VK&bkkd{^H)w zqsJfs#c>c#t50#rKJ9QzoQ?1;n}l>L#wENJnU)}uHaO2f;~G!3@^3`gxWPNhO<=Ml z9w&UkMidy69mVr&veabYXHO~dWKtf_>Smg-$~j4DW^K(7%ZXxRF(TY*)B)1QM0u!M zvW^&GE{#mX2qM=g!1vAp#vjQqQp;r&n9Hb416)eqv5Vv*784HW^y4L%5$SiPbh8C4 zlew3r0QFk2s#bNZf}ZI1B=u!O3IS*&45Hk9nGGV8se;vaN8Ai*3drCaknS}yjHI}2 zQm)PSKhbfxx(4Bcm{ZayeimjKxlp_jl9q5;w}B`FHu#oG3nXfTXKgT;lN&W$3O&Jn zvVgbPMjf^u#Y@PIf)ZkdSP_3+o*4Lkp}J{=01%`eoq?CVg)M0yC_XJos_ioT+BpJ@ z?U91ZWsW9Q71)xZfzRy*o2;#XF*!kKlxD_UyHVtVx}oK;%2T#_r=$a+#Pr0DI1|Vaw3t7%}aG=C;vl^NdrXZ+ja#(g)rmVJxN4OW@f67eAC3VKQ z4^Sh7Qnh=Xj>H>;c%&>{d7IfnR01VSTCODv(;5N18I&U+qPZ|nq)QRrmysQh3|0~g z#X9!DF}PqS2KQ0xxxDiIlL%P;>eQNr_@wM0A}Lzda64dYlpe*AXq*f`uC5%dC(&@v zC#bjxhYLr@HNb~~j$qYA&VW-N5GouzgyD~2#KOEm{!^8laJINBcSY9ERBAKwt)i0#~cW%zL7U z8vNj=d-@fbF%Sp+o%|VuU~thP6IDQ}7e49T=<3Qm2nPWEV5;X{O~vepI|uv$XWi#4 zaZ!f(Mkqm}F;c2f$)@hj;F0KAv()=Ut`$Ap`VM^fi+=7uz9PDaD#kh?GI9Zf5fY8z z;oP3Ad~%93e6ul5%Nt%%yRA zsyq?re;Vs>=|f`3Jd_s(M0?0^hB&a0^HJJI77Z57sIVE3=*R9U0dN@Yq;MD!z~Saz zwB>;#8WHLfJ|d~a!(J=S(7B=o;^b4L*40;toD1eGUw?LV_97%oLn;c<9@^mqPw%J~ z2rWbhd4MDMmWsOuML4pQcuWp}{%1!6fzg)$YJ_B6$R)hZ2JfwfS;$||={^8N*JJe< zGr+7|y8i0d#O;H>&Ll)+ z4JQp6%p!gXxj{ujEQ!K8tE<`uA;2R9MXDo250z^wA6%kzHTakfIj{)tmTMfvLcv0~ z%A{CV4hn2A+5P` z-ro1r`C7p0gSIr7U6(o;`~{#963rocN*lp&qUY1*#)fpZkt<@NV8nn-+*@E_<@g8> z^Wv{4HDLv2(f$&W!ZiYyK=^xFutf5aS3-k^6UE`Op^QQSZ-hj-yVNr;dd|}1R39>* zk-A{zKa;QKWJ$n6znKkK%pj=81tKmPp;^Gop8@QDvQIgUB2%{bB(Y1;KNQO)nNr&W5u(A=6DpCjum#7s3u4na3#b_8%_$FNOByRM0SMBoI3^T z#nS#}k3y+t5Y5Pjw9nK7?MPnwnlgjoOdqvrRu|(DXFX8qJ0iH(gPYoAM-0;<`&KNH z)y)#^P$<%pDx}u zRr9>X5OBo^OZky}Kokk1MsDlJ8212ggrrYnBg`%heE3x zk)_H}dkHja69|(zxahlho?!P7MY~1C>btGi(2xO^ChQr4`Ieof5~y$i5d4uL!`10( z*~Q}SjvrA99a?F$wNMOyIwVZ8%1ILa1vvM$BZ>_$H&7VO--^)$D-a`5RS`oW$X#u*(^`ScWf6h7T3!FR{8@Wf^`gfE1kvk*iGx5di8biAkZE1xF-{%~(XM9*M{m>$#Gi z>?myT^@U9x&4hCV*g}ZK;e1Rq2HSy=2ppBh;h$U-dmeW`#Q+O9vF%MnvlU9kD6-*f z3ma0|C=o?@l{Qjn8SgwqB7z$`Be8O;VI&6bx)^DqQFt|?8I9sbe=KGs3*Vjy96iq) zBh^ygDP)@E0YK2EnIOt++)nYSx`fD7xEo9&3?U*3c7q2OlYvViA{Fii(@?3!*@NaB zL)~DJb_~%-up2ylSVVb5OQ+1Ja5tE+04x_PDLf2ygM~dltQJGvV3FPtqLE-Xc!Itc z;tHa=!N<-WqGG5UEJ|yHcvQF>OukYIarrUbV580pF)`E?7Nt!ML@J^iTuNDos8qN+ zOlmAJajBSYu;r>4d_q(b><*6%Y$hg&=n9vNqy{PpcZjKo2qkypJa0LtqSu3&Tu6V_SyZ)QWuX0W5B@j|JEHJ(hNP*xL` zNEqbnDMCj;CFK`*)&sNhH;{%+)t{zR$nb|pa>F1avrEdyro+i#jQftTc^WJz!L@_1lUQC zrNy1*PiOz`o4(`peqNwZ@9Z*gKO4}RP>^Ek3%k)-&yL~#lf1l>sy_jzujjBxKTkum zi^;E8EUuE+dKtNuP=A4cFi_C$0hAhkE!d(NfiD^XjBu)O@iH{*fFKNr-jewX zENa|Rk@sv%dx6_5a0K5d-@Wo2U2h{7IBDK7*OIe?Rl2aMrl}-%eT$mQP0*Q&|AC0XxK3 z%%#dBoCS0wOlsVl5qi5s8VVTX7Yc~Gv36A#hj81PBW#KhUL4_;Y;UxR_i=dh2u@97 z8>pTc&x!gVujQgG6$HnNxPS_-TeU0(06tIwcH@u>&wm6!w2O+BT8mByNEU*yAcTFU z5>HDjJHijq{S!y#;r3fG5O4O!Z~1JI&{C*gO50W2W;& zBpsBD{Pfmzo{KQ@$4X;YQ_CHLIO12$>D!}9^;W)^pQyr}C|l8E8rFeEFne#3FL33< zU0;3(r)zXPZaiz^zB3(C{<1h)sMadD=%#yyMd9fjpi_Ub!|HeD;VmUjeCpm+neqzi zMyp18cy1E6w8|uOqD&`$ICzz;=V2X?pu&+u+R3FTLrQ@#41{fL;YYO2fR9GdE_Ca@ zlola1$!#SL(xQXeYG`uI%`HT#3_zzo&==g36~AO9GX^Ot0u;FQw2wo)2Vu4sisFQz z>tw{r-o4ZZYfw$TS_p?m2#h+WKZbW2Rct0VMps8a#cPy<6nq;g>g;EbsDehiy5)}^ zQq@XnBFGm+tE`DwuyUqfy>WP5YAV4xpI&rjy=*v`L#J%=o*G=s)v80Qmb0~t7Un_! zsY7v4nAIB#_r<~kvGANMdSOM}0CUi!xQt0(s#wl0_SCw;=v?&Fa*g#@_Z~n`4K~Jd zGsm(G+x>VGbU>Y;OSOBIBB=~OCq;`uy5@!<^}rGa&`aGfl;+|611SE4qGszb5xxO3 z%1D&yu0Q~yo{i1u?i z;l!W^eCPpzb}bObplQNM*?j`-cB6`Q6Cb>{LvULc1g`de30u;=XfwE|Ud#`BV_vB= z6Y50uY+R^FVTgo*jd$7G?Py1x3dW%cbhPPouw_8Lbk`JUr!ZMe2Ns3R3 zGA@838o@i+^@PGtz};4{#?4)nr!G!~=_{v7U2O4fYBgy9cr*g6b+5bOQ2@N5 zC=XitpKKEPx}!}XpO~aH%GE0UvQ$nSkAg24&y-*yqb5wvQJfRU(*k;JWFg!Q^>kq& z&Rz$f+^guduuqkSsS>IZd}pwtr*}|!N{g=@)UjTIn*qJbC^~`*Uw|vbV*xQS1JVpa z0`&Qng~4oSA!B->tHfj5rkjF1z#4puigUGcP-{R2-%zZW>bWE=+AM&NMr8WA_Af~E zB1pbpT_h9+JskfFLvjTtuD_#upjzJogz^mxgCn?bI!u*AWkDiCb-);iEUkfz0szYW z&yLI}ojC*(W6s5BK*|220#jR&!!uBJBm7U0 z>{iIg%(Bq?{!4q2rrRmEzmJA`E4QE>d~h|Xxgp|6+b zU|qmn9X<*kLJP1<2t(imS=2YLhIuG$mWGdJRFrfqpdoOgoVr%HLU2P&6bVLz@I?A{ zm|p~=qgo|OQ|BB`5RJ~;Hc?BtOxx&y4Q@muFuJ*Y527Xja6}_8DDkpSs5)FjgH_8C zRv55}iOb+DERAPnJH?>Ika5*7a@`4#M8cxp#GRL;i~DR%%Bhhs0ag`e7L7(suKFKHdX*@b?QKni-8I< zUY&pu@dU8MZ|rJ0GvbwSC7I0t;!#bV3pkCCn7S_FF!3W#0ja;xd)>CY(O7^qLMYR{ zQJ*U{_ayTYw+s;ja2q*&5D6Wj0S92O40OJZe@DPJ6rUOtn z2cCGN&>{u5_hf5EFqmstnU`;|$*?=y8i#U z>{r)sXfj3kA&S&MjX{~mjz#x~D60p0c`$vXinU`bBv;fvm3E$NX!)?G3d1cFra+^T zDJkfg?wLuf0>BoF>8O9Fa0l2-W_8qtL5~4&@Qo(ysSOQ#i$1sXpBHCBNOhQAHvB`{+urpO&8-?+_EJp2;LdUv~ z|C{B;DGaHz5TFsnwrfLFu>=txOt#So9MRb~Cq1OAB7+U%psXMUXBB4a^`)rUpo*HS ze&$(fWo}dhzZs-m)~g*wi5-iW$u-cWKpESXX>b(>Pb2XMRwD;B%4ggWpw5Tz>~Eu_ z!UX)m2`q(03X(R^0dB#eHUfMqD41mEpesXWq?m_~Y@D8AK8y)i?01VY95}EjK!=Sm zmrCRgceX87{3plTyfS1X9KIBBBn4a%f~&T2xI{NOX}ASXvo_Za>|d6Pc=C)67QEKJ z%`*f(y09kH%U_a<-nurwiFoPB2m<~lCx(GEiDSnBqUObGC-p=7zttNlfd4_ z$pC#@N+?Z9wbRb>crKYvLX)6?^@{=rB(x_94bGW$&`|?<2Fl>OD?TYfRni#HXGZ=T zSVjC}NF`2iI=3W)+UkBupA&So0HNRaLJE`G58VjkZpJGV>@KEG*q~gtUIc4Mz$C;& zE0h4M4tIr1sjL8%3UVBm# zx*Vg;P758`@nV&Z;qnX0w^JKA%DcT#$8r=l5H0Z0j6f8P07m!LMWU-IP^sonFSp|L zSby;&a7W#u0qT<;RmCH&#wScr3oN=8CZ*upa`fK@7U0TLj}gNt$VNAVe{$ z%!xxlm>JnsU8$@iLwA6>Ev0Mx?dEx;koM&6OESioXcN~F1VjZf zT~XAKvmgO76$~-O*-WWM2Ocd}TWu>2Oyk{Hli-IB5|r;pgcM8?n@?N>qaWE7)&?FE zm7_HQ${?moe6#=zWDH_>q-aML2JxcBQ2VkCP7Gn^a1vZGXW&7pW@J~jPzY?(^2y7# zs#-v!3W7TA*E3ka=>Y7)4~K`du$~#0P)r|j&05R^pjc5qnDN$AqS1^(5*jJcK9gX- zUvy9{KcXvaQo8_^ggV2M$h!a$x0gc+H1i_GR@qoqAS5a|Sge-0%?z~9BaJ9W!8=7S znNff`KTda1*ZxeTEWL-S_D^x}*#)cyoye3jU{@p-jML8&+iDUBr0Uf`r9L`qy#QKK zrB<8ecwj)25!V$?eG)Oir^AA4vbL2Rbqp{`NW{yv0Alt!+2=LSQwI3*W~?E$F(&a0 zW=Acec*^WS5e$TwCxInxk3lQZD|j26D+ z`nl0QY-$cTPbuW9xPnL=$>oDiHQN8h!i0QwLQXZvFDr}x$s!%!laga?b-Xvng$TGx zVar8*!xt1ME84QCXk@e$7~lYhf^WG9&9#Eg2_%-08_EP+n*HqZvG~itn`T`3eGeYp@(QBU;&VBe$b+JS z?+oA5aC;HA6$l({aY}k!SEI!1(gig`I124eaGs>U&^`4ndg`(>z6X}Y;ovGxDe`oo zI^CyF$roC<;0JQLIA0jXmAkE>?GG6#Hn2r?AfP;)b3n!9uB?)*kO!f13opImAVm{b zo;R~t>T6bUGrhI1wOTU$;g9m|at#L|R#YwwpnK{y@WC(=E<^}m$I~+-dDHov0W*dS zz-ugKl&R~?czH-H5<&aZj3`!c00lOUK?Z$xBjIYbWQJSK!d#13#6 zYbcgX!_VYlm501|AG2Ihz#W#WIfA0~*Q84qgAwrZ3uw2tF?l9!Mre;Wh)kAifeZmd z@GV#-!vj;EfXEC^nj$T(K%>889B^&1m>f}E00`7aN43GxM7g~lKj>`!bv+glAV3C- zH9X9SOB!%z8jdp8Imt~)fjZYm;PWkYYm4n*QjiA-gKs*UK@ng;K(TnC0>eFSoUssT zW&Z*)Efp>+zHdnl)NnN#lRDKK-LxqM!5$h=${-f zx5Sl06?LjK79;g@(ZeHaIFPCM0$L(rj=!Cpj?0!X(H5-;48RuziNLAC@Gcof6}+7$ zZ+Qj*2)%a4vNUgWL_+D&2nw=3k7h#>UW7#qVJPgmgSe-Z17ss{fQ*iw!Eh;qXEY6- z{^rP~BhJXkUoN{ulmGC0zQUJiT&o{iQwEp;yLext&&2@ZE@ zcyZ2giHm_Bkn*%A`Rme@=2M`|?cjXy_034Iw=CD%22x|4lLH0Z=g(4=Yn{2PHF&})BeuSznspzi3p0V{Fd*tst+qBtiZgHyf2hb8rtR+>4aV~V zX8@r$rE=8G%hf02L-^E~$?51K{x}R1^NU(jgNY0Q1W-{5?1&&?oXu z23rU>v$0&GSHiPR1Fe9FT3zvmR zBNvbwA!&UVdk5o%0!K&zP`FRGn~areg?vU64>-G=DC4m#*HHXV(RVHl8|^oMjz$0n zEGHL|j+@BE$gn?yk}x3s#kHV*JWKY&L4=o&i`D-o(4pbP_G3#JRs`FfHfqlN=6 z{s4>H<0qV!vr=*)Ip^pQDw?!*%{_=?&qcm2OACoV=qH2&lu8<@dW$W+BFqGM<^?>D z=Q~P;C-qns_6V&@*gjr9ljoDO{%2>^E-%5$_5{nSFS1+@--EDw%9up78lqAs@Vvsf zZs;<04S4>&F>A*7^quB&PB)L2M#~){mYN26P+;&49z(ZEb&dDCar{ght+1I!mq@r*c@ri(SKouwq(m!t<3ZZ3EME4MqfaUPAJ zvzk6xWgt0!YzSmq$kJ7CL! zkEesvGokfjF|4h+cL>@6?_j|w$KegUx}_@CeDh08Y7gw>93@5xuCUjO<40MrFo@gv7#n8lwkvx5lOenI#4SXx_v7RD(GLBq4Iti8U z$Tf`j2S=R57a@gk7<1r)nLS+14>@uPrp$mNm*B#EK8|d>k`dPlu$M%5hRzb{0vWYb z%HC(`tDT~Nw(K-3G_rfz8LK31AD9odB7ohSm@(ia@ddV|Xwt?_GKWg*OH`xps=(g z8EIW3c9P;I!{n0MC?9}Nzj&F0JnK?%(YFVMT*aN18U{!Cy}GC*3*%BCP;yF2M{*XY z3+Uoez{3j|9P$(q3SiOV0butUu+AHUau#V7;f$d~fH*GBMk*|${z-Sp7`}uOumYeD zr^Na)RRAvFwi&cZvcw{iMaya{n zYMnx&^>#yy11f`BW9pm$6AGo8L5jZnxwaS;iR~a$>XZ~#$R9hRtfp~F8@ZUXNolNn z0|?bILPl%pb!vI3g)Ju@C(f2Lp@7;9VpV(6j0#M0;kq`@4I(>l!Z>5K_Mds2$FXcJ1&DHKxo7Mi0j;hT5yTKdoENw51i#~f|xC)7o!7a{2Z-xoZ~Dsflfw)%zuAalttEd#lUET z4YsP=>BkH`fqcXg`=oUaWVwk~VfEXVvO)mt39;{q-mLM~>Ue|HhDo_zNY=d)D;Y`v zkVr=)8@nPIfnS3_T7cHoJAGgUH}b(4+s5v%=`w1|e{B7B?NGM{M@hRb|5q0ls# z>x1-0((??x&WFh&9*n7E)y?WyF7?;{7>_a5H6`@3N7p`$ayp<;3826DIXPI9Oli-M zYVp0&wZ#TewuI|c@v@PHAR`xW86k)nEpA7*C>3e6P*}#-W;pq-X*9K5^Mz7&NJX@Z?|WnNByy7xt-e8ut?URdg~ed z#x+4W!(N{mKK?APKugIYVC`A+**YF;!g-Z4oN?O_>D2M0H0*!iW%7hRpPo$!#l02xW`5}V>5>H}oK_rHaU#01Fx zZOTMi0(24*>fF6V$zv#~fuxw&1ea@>vb_yLVFj`<&?Vo@juGMu>*`!3%8ub`FlYg- zv>NirW*C4Ho`XGG)h(GfSD&agtGw>9Z}yzb5ROV>)pW2uWl=*SP1KEQ1`i15+Txo= zRxI~~=~yJ;CJ|gfv2!`fSI}f9GsvK}>)^BMWk#yFG((-0NlL~_A0G5eO2MJd7W{$W zHmmO2;hvt)69YeOF7PHP3CA((8H}oxW{_Ia4eHMuHaMmmk0LEPBZ9GRfy9w|78=Ju}2qBd=)i8A_0ct3@2z9~NIth}8E zCuP7OY^b6|aua^ma(*^^OoNc@o=S7b)B(@Vm%Pd_jx%UP20#7!CM4ClU7HXOHitDd zP|3@Jety{l*46igCX$v^V`OYrank^9*Tt5lCRY964N;EjexzzSog?rGsr$*&Ci=*T zpNW1G^5(GOMbM6E>1I0$zPwk+wn}*I3p*FsKh{0Y1drxuL*Vl|XedD&axg-Dg!@Xy z90yKJN_f-+YAApc8%`+?Gn@9U;QomxEil#gWAQ0JC5H7z9d*#e{`) zO0+Q3CszW3Lk11MSco+q3DHleLENwng$LGiGVSP~oaoGf*WWtL0?k%i!Jyfe9M+-( z3S-jdvm=zh$zuy7+D8^d$b8>9=xGilDGOjsiUy6olbi;I(!ezeO}g-?u_@3Yi!!HqPxLE3}8zex1jD%RJT11yhy<7F7zBj4UmIxvIb_io8#Xt0@(2xMGNVqc# zU$ZXGQXq>*Njo?f3N*fUa}OBXBZ1THee5@{p~1xl1IBn%*hC$)g#qmA^C(I`R%+gH z&+t8cc_utG*+RX;Iyo)_$Z=5`>I(jFO>)&Wj~4`TC1nIKV>J?|?H&U??srTFUHLMrfo*M=Wh;``8l`r3~jen<1GZ z1CjdR{+0V2V}w!W^nvQwCn_F4`8t~zVl_@kniPIRihVOU9@QEDd{!9H9BMEt)6+|^ zBQ;Hm=+qum(^;aEd9A>9Y7Vtel7Xi^a#A>hnK)1d-;=^%E{oGw(z$EuFMX(y6uL&O zZ1^7JNzou^PA9usKI-_4WlnDgeqTOtoPe0n8tWlCh15;D0Dqw2E}oPaL=c_79%fTm zKE25+K|q_FFj-z2avxS5*c0O?OS^$YFMmZb>qw%-cDz&9`YbWfCM>>1i%7^I#kqH) zf^{^bIJF8GEkVT*>13qDKx(W!Mll-+lchOnSk{U^Er~_=f*I63DKoAMdPesQ zp(MVe6i(5po_(HhK)@a<#;$qMz?K}dEda3ikQ#iG7xk^g(&D}!ZdmXG`$Qq6Y&a( zjnlp`wL|%=ilBl>&7RZ2mbqEMc3Octp$1`9J0UnpS3vNAIwi&I4FR*l9uq{#tJT4Z zp>>_hXI=~hG{j<9_GIj@kSx|G?A68q(k+j)>QCX5P9?pa+>-AzAc^G|gHj6Nvg>1SUxxI_TN9I;hJHlWK>Q4w=-%{kgK$$5S}8R-+Nn`I<z;k%>uX=fQxwDA$tU<8#VMPm%JC<7xG5E>!z<#A0m@zh*B zTL7T?KzqaC%HeoaUX0ty*)!D#%5l4QM#TrP(FoL9kNJ>Q=w`3kgc#X{*3SiG{wK)S z_a<2w<~86-(#+IKtzndSKbcZM?elTC8&O zB2`5n&i}#$YK~O#pchjSwlsW4@Mxiq@`=>DdWyY1C@NON&X8)3@yvl@yUD^(!i1w3 zee}7}g*=Q3j(t(a(@Dvco%~}xGkKd zE-Q_c%hvp!qI)vv(?hL=ad9mHT=6K}POC2j!F@T{cI0(xHjF_g;tB$g8F%gCBNWF8 z*Qf?XMni@_sPSxd_&~a~8XqmB8o7YM2+1Jt>hP>v)8pG?`U_AU92r)ErH2MwlI@QY z^&A9K`#k6o3Rg@vMlAGGG1f#G2DTE=CB%XDg06`=is!qPNhw;pM+&9PrG{LuU#AOE#m#RbA63u-5#p|Z~w2q~X zh^rVHw!4RdJU|hAL)~FI<`QcUwWuQD#<+$1K^~MFd}B(kHzbmV zhlQ@uA-jm(41b{y;OZeB>uU5A<;?3=Msd>{oaf*fsuE(uw}s$zAe5P&C_Tp2ib+HQ zYf?0t#(kj|eHCO)O?^O|-7qm*4aLV|Aktc{EL@7(e?StAfK1c0w)b*9uKDl4m_eMs z(0Al{4Yd*ALA-UdTF44Bfut}X^5$xspd zI1I3Ff{At(h88zV;U1%yxeIa zGM*L1#iPWSah)DPX?%T(KOISUNGzE{Jtve4tcy8e-2od0#JF*dKmoS^8hi_+Ye$(E zxZ<`n!09j0>J|cj$|SuROXJ}@&C)2r6b^+2-yL<|d^N|J7TpQ_PwBEQmU;~_?*XR2 zIPji(PLuJu?hvEnp!{Ojw zwYi~2GotWlglJB|G{mhTnOP(O0qtAe0rCDUJKWV3`6$eL$1Br)d!u z0yGkacxfvEZfa2I++d<_IvN63DXOd)tmu_({UVkVWyE5_eqiBa8v(%67AN$I^lI9; z_-8?Cw&*K0e9$s%&Inl;(D;z~@AOs=c z$WV8%C>DOz%n}!sH$WvtMLk1@PgQTGbEVR+zWxS|%Z3=%nvG~~@Gg$65h z7|JC=@@7zRUb&7c8&C+B6C>fll^BmT-FlO{G9NiF6p0BNpek~xi=dx5YBCLeTLPU@U1qa_!nCnO`b4yceNck2>*DH*GjL@kNM4~#y6J>xx6paHW zZFSkXpm?e=NP~971)5a4{Q+x)1ll$1vzc(yXl)e=GW51bc0^&i3IUPniGo|+RI$iKA~@7m8fGMQk2eh|F!niLW{fFe z;^Iqzp;{KYTq{55nF0ZD{}XWTS#sN$;FoWX6N1UrBiip8ry1p%+b54yAR;*dl+Z1W zGcgRf{#cyh2y7FEcwSaA9w+l|LG7b$;NTX9VIsE~R7u%UKvFcwcVDs_8Oebt5|*i` zi>Z(RZ504K44`zkJ&o)M28Y6vkRUia5YC8Eqp(GyI$HGrZGoYra0Ef2!==0cZ(30b zg&89&HqPNw-*64U4i6_wl6`ZcF>x-&k`cdeCG$jRC zxrl;pXz6t^!x`9OF~Fi19#q46+8VOpjAjJNXoS?()jQfvd_`K!?(awFHLk+50=WC^jrHrHuN<-MWS|7q^rb{d9ZFw6^0a07@7coz^7LSmB`2Z^`m z`yHos)+`Qp>}E|<|8W!NWV^9+d-l)BlSfb=D3Vq_dTJ(=FA6g~?ypsCEtXuF&3kCh z7}HtvgrP$QbF^N-oXMfx+*YZs$eHWAuY*ih@&_7Cw4JBzwKo_h7}=oLW9|&kE5n1K zX@eKFg+1VyPYDV$Hc`_;@YIPG~xw7GlJmbfPZ$WW+-DrtVGO(Xa99dU1 zf2RK6vvG5R!?@3vZ*W^KFd5vqey#Jcb`l?*`)1LsVg5S#MpujFT!PVRaE2UqH;`k_ zqYKqQN;-u{O3IDNP~_h*jrsZ#b10vSA(kT<}T%Gp{HP`o&Mjzj# zv356U)W=O4`^zT%L>z<#5XZLW0j2f8pcXz6H$}6ufBF+HXW5L_X^ckDKx@)-71=@c zfxB2_KyA_i_0(_R4eyr@Tye2%1k}2k?(8gcP){AamCi+`fCR?=hF2|`_8(A6(XOda zA)^xqd_|WI`90>r;YuesH4xk~&Q4DB*7$346#f_DjNx zzhEV^X+H1N@o9>TNm~SEd*@I-0!Zu?Fu);YyO_zE2!aMkNNMi$#?G6QRiXlcf#6s4 fDn_|%fc3Z5*A3Xibz-C;EGc- - redis-server --port 6379 --appendonly yes - networks: - - evolution-net - volumes: - - evolution_redis:/data - ports: - - 6379:6379 - expose: - - 6379 - - postgres: - container_name: postgres - image: postgres:15 - networks: - - evolution-net - command: ["postgres", "-c", "max_connections=1000"] + api: + container_name: evolution_api + image: atendai/evolution-api:v2.0.9-rc restart: always ports: - - 5432:5432 - environment: - - POSTGRES_PASSWORD=PASSWORD + - 8080:8080 volumes: - - postgres_data:/var/lib/postgresql/data + - evolution_instances:/evolution/instances + networks: + - evolution-net + env_file: + - .env expose: - - 5432 + - 8080 volumes: - postgres_data: - evolution_redis: + evolution_instances: networks: evolution-net: diff --git a/prisma/postgresql-migrations/20240829184505_change_table_case_type/migration.sql b/prisma/postgresql-migrations/20240829184505_change_table_case_type/migration.sql deleted file mode 100644 index 0ae315ce..00000000 --- a/prisma/postgresql-migrations/20240829184505_change_table_case_type/migration.sql +++ /dev/null @@ -1,929 +0,0 @@ -/* - Warnings: - - - You are about to drop the `Chat` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Chatwoot` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Contact` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Dify` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `DifySetting` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `EvolutionBot` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `EvolutionBotSetting` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Flowise` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `FlowiseSetting` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Instance` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `IntegrationSession` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Label` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Media` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Message` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `MessageUpdate` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `OpenaiBot` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `OpenaiCreds` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `OpenaiSetting` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Proxy` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Rabbitmq` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Session` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Setting` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Sqs` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Template` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Typebot` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `TypebotSetting` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Webhook` table. If the table is not empty, all the data it contains will be lost. - - You are about to drop the `Websocket` table. If the table is not empty, all the data it contains will be lost. - -*/ --- DropForeignKey -ALTER TABLE "Chat" DROP CONSTRAINT "Chat_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Chatwoot" DROP CONSTRAINT "Chatwoot_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Contact" DROP CONSTRAINT "Contact_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Dify" DROP CONSTRAINT "Dify_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "DifySetting" DROP CONSTRAINT "DifySetting_difyIdFallback_fkey"; - --- DropForeignKey -ALTER TABLE "DifySetting" DROP CONSTRAINT "DifySetting_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "EvolutionBot" DROP CONSTRAINT "EvolutionBot_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "EvolutionBotSetting" DROP CONSTRAINT "EvolutionBotSetting_botIdFallback_fkey"; - --- DropForeignKey -ALTER TABLE "EvolutionBotSetting" DROP CONSTRAINT "EvolutionBotSetting_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Flowise" DROP CONSTRAINT "Flowise_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "FlowiseSetting" DROP CONSTRAINT "FlowiseSetting_flowiseIdFallback_fkey"; - --- DropForeignKey -ALTER TABLE "FlowiseSetting" DROP CONSTRAINT "FlowiseSetting_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "IntegrationSession" DROP CONSTRAINT "IntegrationSession_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Label" DROP CONSTRAINT "Label_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Media" DROP CONSTRAINT "Media_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Media" DROP CONSTRAINT "Media_messageId_fkey"; - --- DropForeignKey -ALTER TABLE "Message" DROP CONSTRAINT "Message_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Message" DROP CONSTRAINT "Message_sessionId_fkey"; - --- DropForeignKey -ALTER TABLE "MessageUpdate" DROP CONSTRAINT "MessageUpdate_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "MessageUpdate" DROP CONSTRAINT "MessageUpdate_messageId_fkey"; - --- DropForeignKey -ALTER TABLE "OpenaiBot" DROP CONSTRAINT "OpenaiBot_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "OpenaiBot" DROP CONSTRAINT "OpenaiBot_openaiCredsId_fkey"; - --- DropForeignKey -ALTER TABLE "OpenaiCreds" DROP CONSTRAINT "OpenaiCreds_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "OpenaiSetting" DROP CONSTRAINT "OpenaiSetting_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "OpenaiSetting" DROP CONSTRAINT "OpenaiSetting_openaiCredsId_fkey"; - --- DropForeignKey -ALTER TABLE "OpenaiSetting" DROP CONSTRAINT "OpenaiSetting_openaiIdFallback_fkey"; - --- DropForeignKey -ALTER TABLE "Proxy" DROP CONSTRAINT "Proxy_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Rabbitmq" DROP CONSTRAINT "Rabbitmq_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Session" DROP CONSTRAINT "Session_sessionId_fkey"; - --- DropForeignKey -ALTER TABLE "Setting" DROP CONSTRAINT "Setting_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Sqs" DROP CONSTRAINT "Sqs_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Template" DROP CONSTRAINT "Template_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Typebot" DROP CONSTRAINT "Typebot_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "TypebotSetting" DROP CONSTRAINT "TypebotSetting_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "TypebotSetting" DROP CONSTRAINT "TypebotSetting_typebotIdFallback_fkey"; - --- DropForeignKey -ALTER TABLE "Webhook" DROP CONSTRAINT "Webhook_instanceId_fkey"; - --- DropForeignKey -ALTER TABLE "Websocket" DROP CONSTRAINT "Websocket_instanceId_fkey"; - --- DropTable -DROP TABLE "Chat"; - --- DropTable -DROP TABLE "Chatwoot"; - --- DropTable -DROP TABLE "Contact"; - --- DropTable -DROP TABLE "Dify"; - --- DropTable -DROP TABLE "DifySetting"; - --- DropTable -DROP TABLE "EvolutionBot"; - --- DropTable -DROP TABLE "EvolutionBotSetting"; - --- DropTable -DROP TABLE "Flowise"; - --- DropTable -DROP TABLE "FlowiseSetting"; - --- DropTable -DROP TABLE "Instance"; - --- DropTable -DROP TABLE "IntegrationSession"; - --- DropTable -DROP TABLE "Label"; - --- DropTable -DROP TABLE "Media"; - --- DropTable -DROP TABLE "Message"; - --- DropTable -DROP TABLE "MessageUpdate"; - --- DropTable -DROP TABLE "OpenaiBot"; - --- DropTable -DROP TABLE "OpenaiCreds"; - --- DropTable -DROP TABLE "OpenaiSetting"; - --- DropTable -DROP TABLE "Proxy"; - --- DropTable -DROP TABLE "Rabbitmq"; - --- DropTable -DROP TABLE "Session"; - --- DropTable -DROP TABLE "Setting"; - --- DropTable -DROP TABLE "Sqs"; - --- DropTable -DROP TABLE "Template"; - --- DropTable -DROP TABLE "Typebot"; - --- DropTable -DROP TABLE "TypebotSetting"; - --- DropTable -DROP TABLE "Webhook"; - --- DropTable -DROP TABLE "Websocket"; - --- CreateTable -CREATE TABLE "instances" ( - "id" TEXT NOT NULL, - "name" VARCHAR(255) NOT NULL, - "connection_status" "InstanceConnectionStatus" NOT NULL DEFAULT 'open', - "owner_jid" VARCHAR(100), - "profile_name" VARCHAR(100), - "profile_pic_url" VARCHAR(500), - "integration" VARCHAR(100), - "number" VARCHAR(100), - "business_id" VARCHAR(100), - "token" VARCHAR(255), - "client_name" VARCHAR(100), - "disconnection_reason_code" INTEGER, - "disconnection_object" JSONB, - "disconnection_at" TIMESTAMPTZ, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ, - - CONSTRAINT "instances_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "sessions" ( - "id" TEXT NOT NULL, - "session_id" TEXT NOT NULL, - "creds" TEXT, - "created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP, - - CONSTRAINT "sessions_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "chats" ( - "id" TEXT NOT NULL, - "remote_jid" VARCHAR(100) NOT NULL, - "name" VARCHAR(100), - "labels" JSONB, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "chats_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "contacts" ( - "id" TEXT NOT NULL, - "remote_jid" VARCHAR(100) NOT NULL, - "push_name" VARCHAR(100), - "profile_pic_url" VARCHAR(500), - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "contacts_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "messages" ( - "id" TEXT NOT NULL, - "key" JSONB NOT NULL, - "push_name" VARCHAR(100), - "participant" VARCHAR(100), - "message_type" VARCHAR(100) NOT NULL, - "message" JSONB NOT NULL, - "context_info" JSONB, - "message_timestamp" INTEGER NOT NULL, - "chatwoot_message_id" INTEGER, - "chatwoot_inbox_id" INTEGER, - "chatwoot_conversation_id" INTEGER, - "chatwoot_contact_inbox_source_id" VARCHAR(100), - "chatwoot_is_read" BOOLEAN, - "webhook_url" VARCHAR(500), - "source" "DeviceMessage" NOT NULL, - "instance_id" TEXT NOT NULL, - "session_id" TEXT, - - CONSTRAINT "messages_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "message_updates" ( - "id" TEXT NOT NULL, - "key_id" VARCHAR(100) NOT NULL, - "remote_jid" VARCHAR(100) NOT NULL, - "from_me" BOOLEAN NOT NULL, - "participant" VARCHAR(100), - "poll_updates" JSONB, - "status" VARCHAR(30) NOT NULL, - "message_id" TEXT NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "message_updates_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "webhooks" ( - "id" TEXT NOT NULL, - "url" VARCHAR(500) NOT NULL, - "enabled" BOOLEAN DEFAULT true, - "events" JSONB, - "webhook_by_events" BOOLEAN DEFAULT false, - "webhook_base64" BOOLEAN DEFAULT false, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "webhooks_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "chatwoots" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN DEFAULT true, - "account_id" VARCHAR(100), - "token" VARCHAR(100), - "url" VARCHAR(500), - "name_inbox" VARCHAR(100), - "sign_msg" BOOLEAN DEFAULT false, - "sign_delimiter" VARCHAR(100), - "number" VARCHAR(100), - "reopen_conversation" BOOLEAN DEFAULT false, - "conversation_pending" BOOLEAN DEFAULT false, - "merge_brazil_contacts" BOOLEAN DEFAULT false, - "import_contacts" BOOLEAN DEFAULT false, - "import_messages" BOOLEAN DEFAULT false, - "days_limit_import_messages" INTEGER, - "organization" VARCHAR(100), - "logo" VARCHAR(500), - "ignore_jids" JSONB, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "chatwoots_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "labels" ( - "id" TEXT NOT NULL, - "label_id" VARCHAR(100), - "name" VARCHAR(100) NOT NULL, - "color" VARCHAR(100) NOT NULL, - "predefined_id" VARCHAR(100), - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "labels_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "proxies" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT false, - "host" VARCHAR(100) NOT NULL, - "port" VARCHAR(100) NOT NULL, - "protocol" VARCHAR(100) NOT NULL, - "username" VARCHAR(100) NOT NULL, - "password" VARCHAR(100) NOT NULL, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "proxies_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "settings" ( - "id" TEXT NOT NULL, - "reject_call" BOOLEAN NOT NULL DEFAULT false, - "msg_call" VARCHAR(100), - "groups_ignore" BOOLEAN NOT NULL DEFAULT false, - "always_online" BOOLEAN NOT NULL DEFAULT false, - "read_messages" BOOLEAN NOT NULL DEFAULT false, - "read_status" BOOLEAN NOT NULL DEFAULT false, - "sync_full_history" BOOLEAN NOT NULL DEFAULT false, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "settings_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "rabbitmqs" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT false, - "events" JSONB NOT NULL, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "rabbitmqs_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "sqss" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT false, - "events" JSONB NOT NULL, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "sqss_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "websockets" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT false, - "events" JSONB NOT NULL, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "websockets_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "typebots" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT true, - "description" VARCHAR(255), - "url" VARCHAR(500) NOT NULL, - "typebot" VARCHAR(100) NOT NULL, - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ, - "ignore_jids" JSONB, - "trigger_type" "TriggerType", - "trigger_operator" "TriggerOperator", - "trigger_value" TEXT, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "typebots_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "typebot_settings" ( - "id" TEXT NOT NULL, - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "typebot_id_fallback" VARCHAR(100), - "instance_id" TEXT NOT NULL, - - CONSTRAINT "typebot_settings_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "medias" ( - "id" TEXT NOT NULL, - "file_name" VARCHAR(500) NOT NULL, - "type" VARCHAR(100) NOT NULL, - "mime_type" VARCHAR(100) NOT NULL, - "created_at" DATE DEFAULT CURRENT_TIMESTAMP, - "message_id" TEXT NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "medias_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "openai_creds" ( - "id" TEXT NOT NULL, - "name" VARCHAR(255), - "api_key" VARCHAR(255), - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "openai_creds_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "openai_bots" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT true, - "description" VARCHAR(255), - "assistant_id" VARCHAR(255), - "function_url" VARCHAR(500), - "model" VARCHAR(100), - "system_messages" JSONB, - "assistant_messages" JSONB, - "user_messages" JSONB, - "max_tokens" INTEGER, - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "trigger_type" "TriggerType", - "trigger_operator" "TriggerOperator", - "trigger_value" TEXT, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "bot_type" "OpenaiBotType" NOT NULL, - "openai_creds_id" TEXT NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "openai_bots_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "integration_sessions" ( - "id" TEXT NOT NULL, - "session_id" VARCHAR(255) NOT NULL, - "remote_jid" VARCHAR(100) NOT NULL, - "push_name" TEXT, - "status" "SessionStatus" NOT NULL, - "await_user" BOOLEAN NOT NULL DEFAULT false, - "context" JSONB, - "type" VARCHAR(100), - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "parameters" JSONB, - "botId" TEXT, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "integration_sessions_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "openai_settings" ( - "id" TEXT NOT NULL, - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "speech_to_text" BOOLEAN DEFAULT false, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "openai_creds_id" TEXT NOT NULL, - "openai_id_fallback" VARCHAR(100), - "instance_id" TEXT NOT NULL, - - CONSTRAINT "openai_settings_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "templates" ( - "id" TEXT NOT NULL, - "template_id" VARCHAR(255) NOT NULL, - "name" VARCHAR(255) NOT NULL, - "template" JSONB NOT NULL, - "webhook_url" VARCHAR(500), - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "templates_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "difys" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT true, - "description" VARCHAR(255), - "bot_type" "DifyBotType" NOT NULL, - "api_url" VARCHAR(255), - "api_key" VARCHAR(255), - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "trigger_type" "TriggerType", - "trigger_operator" "TriggerOperator", - "trigger_value" TEXT, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "difys_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "dify_settings" ( - "id" TEXT NOT NULL, - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "dify_id_fallback" VARCHAR(100), - "instance_id" TEXT NOT NULL, - - CONSTRAINT "dify_settings_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "evolution_bots" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT true, - "description" VARCHAR(255), - "api_url" VARCHAR(255), - "api_key" VARCHAR(255), - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "trigger_type" "TriggerType", - "trigger_operator" "TriggerOperator", - "trigger_value" TEXT, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "evolution_bots_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "evolution_bot_settings" ( - "id" TEXT NOT NULL, - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "bot_id_fallback" VARCHAR(100), - "instance_id" TEXT NOT NULL, - - CONSTRAINT "evolution_bot_settings_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "flowises" ( - "id" TEXT NOT NULL, - "enabled" BOOLEAN NOT NULL DEFAULT true, - "description" VARCHAR(255), - "api_url" VARCHAR(255), - "api_key" VARCHAR(255), - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "trigger_type" "TriggerType", - "trigger_operator" "TriggerOperator", - "trigger_value" TEXT, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "instance_id" TEXT NOT NULL, - - CONSTRAINT "flowises_pkey" PRIMARY KEY ("id") -); - --- CreateTable -CREATE TABLE "flowise_settings" ( - "id" TEXT NOT NULL, - "expire" INTEGER DEFAULT 0, - "keyword_finish" VARCHAR(100), - "delay_message" INTEGER, - "unknown_message" VARCHAR(100), - "listening_from_me" BOOLEAN DEFAULT false, - "stop_bot_from_me" BOOLEAN DEFAULT false, - "keep_open" BOOLEAN DEFAULT false, - "debounce_time" INTEGER, - "ignore_jids" JSONB, - "created_at" TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMPTZ NOT NULL, - "flowise_id_fallback" VARCHAR(100), - "instance_id" TEXT NOT NULL, - - CONSTRAINT "flowise_settings_pkey" PRIMARY KEY ("id") -); - --- CreateIndex -CREATE UNIQUE INDEX "instances_name_key" ON "instances"("name"); - --- CreateIndex -CREATE UNIQUE INDEX "sessions_session_id_key" ON "sessions"("session_id"); - --- CreateIndex -CREATE UNIQUE INDEX "contacts_remote_jid_instance_id_key" ON "contacts"("remote_jid", "instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "webhooks_instance_id_key" ON "webhooks"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "chatwoots_instance_id_key" ON "chatwoots"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "labels_label_id_instance_id_key" ON "labels"("label_id", "instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "proxies_instance_id_key" ON "proxies"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "settings_instance_id_key" ON "settings"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "rabbitmqs_instance_id_key" ON "rabbitmqs"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "sqss_instance_id_key" ON "sqss"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "websockets_instance_id_key" ON "websockets"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "typebot_settings_instance_id_key" ON "typebot_settings"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "medias_file_name_key" ON "medias"("file_name"); - --- CreateIndex -CREATE UNIQUE INDEX "medias_message_id_key" ON "medias"("message_id"); - --- CreateIndex -CREATE UNIQUE INDEX "openai_creds_name_key" ON "openai_creds"("name"); - --- CreateIndex -CREATE UNIQUE INDEX "openai_creds_api_key_key" ON "openai_creds"("api_key"); - --- CreateIndex -CREATE UNIQUE INDEX "integration_sessions_session_id_key" ON "integration_sessions"("session_id"); - --- CreateIndex -CREATE UNIQUE INDEX "openai_settings_openai_creds_id_key" ON "openai_settings"("openai_creds_id"); - --- CreateIndex -CREATE UNIQUE INDEX "openai_settings_instance_id_key" ON "openai_settings"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "templates_template_id_key" ON "templates"("template_id"); - --- CreateIndex -CREATE UNIQUE INDEX "templates_name_key" ON "templates"("name"); - --- CreateIndex -CREATE UNIQUE INDEX "dify_settings_instance_id_key" ON "dify_settings"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "evolution_bot_settings_instance_id_key" ON "evolution_bot_settings"("instance_id"); - --- CreateIndex -CREATE UNIQUE INDEX "flowise_settings_instance_id_key" ON "flowise_settings"("instance_id"); - --- AddForeignKey -ALTER TABLE "sessions" ADD CONSTRAINT "sessions_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "chats" ADD CONSTRAINT "chats_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "contacts" ADD CONSTRAINT "contacts_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "messages" ADD CONSTRAINT "messages_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "messages" ADD CONSTRAINT "messages_session_id_fkey" FOREIGN KEY ("session_id") REFERENCES "integration_sessions"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "message_updates" ADD CONSTRAINT "message_updates_message_id_fkey" FOREIGN KEY ("message_id") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "message_updates" ADD CONSTRAINT "message_updates_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "webhooks" ADD CONSTRAINT "webhooks_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "chatwoots" ADD CONSTRAINT "chatwoots_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "labels" ADD CONSTRAINT "labels_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "proxies" ADD CONSTRAINT "proxies_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "settings" ADD CONSTRAINT "settings_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "rabbitmqs" ADD CONSTRAINT "rabbitmqs_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "sqss" ADD CONSTRAINT "sqss_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "websockets" ADD CONSTRAINT "websockets_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "typebots" ADD CONSTRAINT "typebots_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "typebot_settings" ADD CONSTRAINT "typebot_settings_typebot_id_fallback_fkey" FOREIGN KEY ("typebot_id_fallback") REFERENCES "typebots"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "typebot_settings" ADD CONSTRAINT "typebot_settings_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "medias" ADD CONSTRAINT "medias_message_id_fkey" FOREIGN KEY ("message_id") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "medias" ADD CONSTRAINT "medias_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "openai_creds" ADD CONSTRAINT "openai_creds_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "openai_bots" ADD CONSTRAINT "openai_bots_openai_creds_id_fkey" FOREIGN KEY ("openai_creds_id") REFERENCES "openai_creds"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "openai_bots" ADD CONSTRAINT "openai_bots_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "integration_sessions" ADD CONSTRAINT "integration_sessions_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "openai_settings" ADD CONSTRAINT "openai_settings_openai_creds_id_fkey" FOREIGN KEY ("openai_creds_id") REFERENCES "openai_creds"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "openai_settings" ADD CONSTRAINT "openai_settings_openai_id_fallback_fkey" FOREIGN KEY ("openai_id_fallback") REFERENCES "openai_bots"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "openai_settings" ADD CONSTRAINT "openai_settings_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "templates" ADD CONSTRAINT "templates_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "difys" ADD CONSTRAINT "difys_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "dify_settings" ADD CONSTRAINT "dify_settings_dify_id_fallback_fkey" FOREIGN KEY ("dify_id_fallback") REFERENCES "difys"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "dify_settings" ADD CONSTRAINT "dify_settings_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "evolution_bots" ADD CONSTRAINT "evolution_bots_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "evolution_bot_settings" ADD CONSTRAINT "evolution_bot_settings_bot_id_fallback_fkey" FOREIGN KEY ("bot_id_fallback") REFERENCES "evolution_bots"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "evolution_bot_settings" ADD CONSTRAINT "evolution_bot_settings_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "flowises" ADD CONSTRAINT "flowises_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "flowise_settings" ADD CONSTRAINT "flowise_settings_flowise_id_fallback_fkey" FOREIGN KEY ("flowise_id_fallback") REFERENCES "flowises"("id") ON DELETE SET NULL ON UPDATE CASCADE; - --- AddForeignKey -ALTER TABLE "flowise_settings" ADD CONSTRAINT "flowise_settings_instance_id_fkey" FOREIGN KEY ("instance_id") REFERENCES "instances"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/postgresql-schema.prisma b/prisma/postgresql-schema.prisma index d06f25c5..931d67bd 100644 --- a/prisma/postgresql-schema.prisma +++ b/prisma/postgresql-schema.prisma @@ -9,9 +9,8 @@ generator client { } datasource db { - provider = "postgresql" - url = env("DATABASE_CONNECTION_URI") - directUrl = env("DATABASE_DIRECT_URL") + provider = "postgresql" + url = env("DATABASE_CONNECTION_URI") } enum InstanceConnectionStatus { @@ -64,137 +63,118 @@ enum DifyBotType { model Instance { id String @id @default(cuid()) name String @unique @db.VarChar(255) - connectionStatus InstanceConnectionStatus @default(open) @map("connection_status") - ownerJid String? @map("owner_jid") @db.VarChar(100) - profileName String? @map("profile_name") @db.VarChar(100) - profilePicUrl String? @map("profile_pic_url") @db.VarChar(500) + connectionStatus InstanceConnectionStatus @default(open) + ownerJid String? @db.VarChar(100) + profileName String? @db.VarChar(100) + profilePicUrl String? @db.VarChar(500) integration String? @db.VarChar(100) number String? @db.VarChar(100) - businessId String? @map("business_id") @db.VarChar(100) + businessId String? @db.VarChar(100) token String? @db.VarChar(255) - clientName String? @map("client_name") @db.VarChar(100) - disconnectionReasonCode Int? @map("disconnection_reason_code") @db.Integer - disconnectionObject Json? @map("disconnection_object") @db.JsonB - disconnectionAt DateTime? @map("disconnection_at") @db.Timestamptz() - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz() - - Chat Chat[] - Contact Contact[] - Message Message[] - Webhook Webhook? - Chatwoot Chatwoot? - Label Label[] - Proxy Proxy? - Setting Setting? - Rabbitmq Rabbitmq? - Sqs Sqs? - Websocket Websocket? - Typebot Typebot[] - Session Session? - MessageUpdate MessageUpdate[] - TypebotSetting TypebotSetting? - Media Media[] - OpenaiCreds OpenaiCreds[] - OpenaiBot OpenaiBot[] - OpenaiSetting OpenaiSetting? - Template Template[] - Dify Dify[] - DifySetting DifySetting? - integrationSessions IntegrationSession[] - EvolutionBot EvolutionBot[] - EvolutionBotSetting EvolutionBotSetting? - Flowise Flowise[] - FlowiseSetting FlowiseSetting? - - @@map("instances") + clientName String? @db.VarChar(100) + disconnectionReasonCode Int? @db.Integer + disconnectionObject Json? @db.JsonB + disconnectionAt DateTime? @db.Timestamp + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime? @updatedAt @db.Timestamp + Chat Chat[] + Contact Contact[] + Message Message[] + Webhook Webhook? + Chatwoot Chatwoot? + Label Label[] + Proxy Proxy? + Setting Setting? + Rabbitmq Rabbitmq? + Sqs Sqs? + Websocket Websocket? + Typebot Typebot[] + Session Session? + MessageUpdate MessageUpdate[] + TypebotSetting TypebotSetting? + Media Media[] + OpenaiCreds OpenaiCreds[] + OpenaiBot OpenaiBot[] + OpenaiSetting OpenaiSetting? + Template Template[] + Dify Dify[] + DifySetting DifySetting? + integrationSessions IntegrationSession[] + EvolutionBot EvolutionBot[] + EvolutionBotSetting EvolutionBotSetting? + Flowise Flowise[] + FlowiseSetting FlowiseSetting? } model Session { id String @id @default(cuid()) - sessionId String @unique @map("session_id") + sessionId String @unique creds String? @db.Text - createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz() - - Instance Instance @relation(fields: [sessionId], references: [id], onDelete: Cascade) - - @@map("sessions") + createdAt DateTime @default(now()) @db.Timestamp + Instance Instance @relation(fields: [sessionId], references: [id], onDelete: Cascade) } model Chat { - id String @id @default(cuid()) - remoteJid String @map("remote_jid") @db.VarChar(100) - name String? @db.VarChar(100) - labels Json? @db.JsonB - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("chats") + id String @id @default(cuid()) + remoteJid String @db.VarChar(100) + name String? @db.VarChar(100) + labels Json? @db.JsonB + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime? @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String } model Contact { id String @id @default(cuid()) - remoteJid String @map("remote_jid") @db.VarChar(100) - pushName String? @map("push_name") @db.VarChar(100) - profilePicUrl String? @map("profile_pic_url") @db.VarChar(500) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + remoteJid String @db.VarChar(100) + pushName String? @db.VarChar(100) + profilePicUrl String? @db.VarChar(500) + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime? @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @@unique([remoteJid, instanceId]) - @@map("contacts") } model Message { - id String @id @default(cuid()) - key Json @db.JsonB - pushName String? @map("push_name") @db.VarChar(100) - participant String? @db.VarChar(100) - messageType String @map("message_type") @db.VarChar(100) - message Json @db.JsonB - contextInfo Json? @map("context_info") @db.JsonB - messageTimestamp Int @map("message_timestamp") @db.Integer - chatwootMessageId Int? @map("chatwoot_message_id") @db.Integer - chatwootInboxId Int? @map("chatwoot_inbox_id") @db.Integer - chatwootConversationId Int? @map("chatwoot_conversation_id") @db.Integer - chatwootContactInboxSourceId String? @map("chatwoot_contact_inbox_source_id") @db.VarChar(100) - chatwootIsRead Boolean? @map("chatwoot_is_read") @db.Boolean - webhookUrl String? @map("webhook_url") @db.VarChar(500) + id String @id @default(cuid()) + key Json @db.JsonB + pushName String? @db.VarChar(100) + participant String? @db.VarChar(100) + messageType String @db.VarChar(100) + message Json @db.JsonB + contextInfo Json? @db.JsonB source DeviceMessage + messageTimestamp Int @db.Integer + chatwootMessageId Int? @db.Integer + chatwootInboxId Int? @db.Integer + chatwootConversationId Int? @db.Integer + chatwootContactInboxSourceId String? @db.VarChar(100) + chatwootIsRead Boolean? @db.Boolean + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String + MessageUpdate MessageUpdate[] + Media Media? + webhookUrl String? @db.VarChar(500) - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - MessageUpdate MessageUpdate[] - Media Media? - - sessionId String? @map("session_id") + sessionId String? session IntegrationSession? @relation(fields: [sessionId], references: [id]) - - @@map("messages") } model MessageUpdate { - id String @id @default(cuid()) - keyId String @map("key_id") @db.VarChar(100) - remoteJid String @map("remote_jid") @db.VarChar(100) - fromMe Boolean @map("from_me") @db.Boolean - participant String? @db.VarChar(100) - pollUpdates Json? @map("poll_updates") @db.JsonB - status String @db.VarChar(30) - - messageId String @map("message_id") - Message Message @relation(fields: [messageId], references: [id], onDelete: Cascade) - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("message_updates") + id String @id @default(cuid()) + keyId String @db.VarChar(100) + remoteJid String @db.VarChar(100) + fromMe Boolean @db.Boolean + participant String? @db.VarChar(100) + pollUpdates Json? @db.JsonB + status String @db.VarChar(30) + Message Message @relation(fields: [messageId], references: [id], onDelete: Cascade) + messageId String + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String } model Webhook { @@ -202,133 +182,110 @@ model Webhook { url String @db.VarChar(500) enabled Boolean? @default(true) @db.Boolean events Json? @db.JsonB - webhookByEvents Boolean? @default(false) @map("webhook_by_events") @db.Boolean - webhookBase64 Boolean? @default(false) @map("webhook_base64") @db.Boolean - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("webhooks") + webhookByEvents Boolean? @default(false) @db.Boolean + webhookBase64 Boolean? @default(false) @db.Boolean + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Chatwoot { id String @id @default(cuid()) enabled Boolean? @default(true) @db.Boolean - accountId String? @map("account_id") @db.VarChar(100) + accountId String? @db.VarChar(100) token String? @db.VarChar(100) url String? @db.VarChar(500) - nameInbox String? @map("name_inbox") @db.VarChar(100) - signMsg Boolean? @default(false) @map("sign_msg") @db.Boolean - signDelimiter String? @map("sign_delimiter") @db.VarChar(100) + nameInbox String? @db.VarChar(100) + signMsg Boolean? @default(false) @db.Boolean + signDelimiter String? @db.VarChar(100) number String? @db.VarChar(100) - reopenConversation Boolean? @default(false) @map("reopen_conversation") @db.Boolean - conversationPending Boolean? @default(false) @map("conversation_pending") @db.Boolean - mergeBrazilContacts Boolean? @default(false) @map("merge_brazil_contacts") @db.Boolean - importContacts Boolean? @default(false) @map("import_contacts") @db.Boolean - importMessages Boolean? @default(false) @map("import_messages") @db.Boolean - daysLimitImportMessages Int? @map("days_limit_import_messages") @db.Integer + reopenConversation Boolean? @default(false) @db.Boolean + conversationPending Boolean? @default(false) @db.Boolean + mergeBrazilContacts Boolean? @default(false) @db.Boolean + importContacts Boolean? @default(false) @db.Boolean + importMessages Boolean? @default(false) @db.Boolean + daysLimitImportMessages Int? @db.Integer organization String? @db.VarChar(100) logo String? @db.VarChar(500) - ignoreJids Json? @map("ignore_jids") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("chatwoots") + ignoreJids Json? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Label { id String @id @default(cuid()) - labelId String? @map("label_id") @db.VarChar(100) + labelId String? @db.VarChar(100) name String @db.VarChar(100) color String @db.VarChar(100) - predefinedId String? @map("predefined_id") @db.VarChar(100) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + predefinedId String? @db.VarChar(100) + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @@unique([labelId, instanceId]) - @@map("labels") } model Proxy { - id String @id @default(cuid()) - enabled Boolean @default(false) @db.Boolean - host String @db.VarChar(100) - port String @db.VarChar(100) - protocol String @db.VarChar(100) - username String @db.VarChar(100) - password String @db.VarChar(100) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("proxies") + id String @id @default(cuid()) + enabled Boolean @default(false) @db.Boolean + host String @db.VarChar(100) + port String @db.VarChar(100) + protocol String @db.VarChar(100) + username String @db.VarChar(100) + password String @db.VarChar(100) + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Setting { id String @id @default(cuid()) - rejectCall Boolean @default(false) @map("reject_call") @db.Boolean - msgCall String? @map("msg_call") @db.VarChar(100) - groupsIgnore Boolean @default(false) @map("groups_ignore") @db.Boolean - alwaysOnline Boolean @default(false) @map("always_online") @db.Boolean - readMessages Boolean @default(false) @map("read_messages") @db.Boolean - readStatus Boolean @default(false) @map("read_status") @db.Boolean - syncFullHistory Boolean @default(false) @map("sync_full_history") @db.Boolean - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("settings") + rejectCall Boolean @default(false) @db.Boolean + msgCall String? @db.VarChar(100) + groupsIgnore Boolean @default(false) @db.Boolean + alwaysOnline Boolean @default(false) @db.Boolean + readMessages Boolean @default(false) @db.Boolean + readStatus Boolean @default(false) @db.Boolean + syncFullHistory Boolean @default(false) @db.Boolean + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Rabbitmq { - id String @id @default(cuid()) - enabled Boolean @default(false) @db.Boolean - events Json @db.JsonB - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("rabbitmqs") + id String @id @default(cuid()) + enabled Boolean @default(false) @db.Boolean + events Json @db.JsonB + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Sqs { - id String @id @default(cuid()) - enabled Boolean @default(false) @db.Boolean - events Json @db.JsonB - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("sqss") + id String @id @default(cuid()) + enabled Boolean @default(false) @db.Boolean + events Json @db.JsonB + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Websocket { - id String @id @default(cuid()) - enabled Boolean @default(false) @db.Boolean - events Json @db.JsonB - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("websockets") + id String @id @default(cuid()) + enabled Boolean @default(false) @db.Boolean + events Json @db.JsonB + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Typebot { @@ -338,340 +295,284 @@ model Typebot { url String @db.VarChar(500) typebot String @db.VarChar(100) expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz() - ignoreJids Json? @map("ignore_jids") - triggerType TriggerType? @map("trigger_type") - triggerOperator TriggerOperator? @map("trigger_operator") - triggerValue String? @map("trigger_value") - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - TypebotSetting TypebotSetting[] - - @@map("typebots") + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime? @updatedAt @db.Timestamp + ignoreJids Json? + triggerType TriggerType? + triggerOperator TriggerOperator? + triggerValue String? + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String + TypebotSetting TypebotSetting[] } model TypebotSetting { - id String @id @default(cuid()) - expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - typebotIdFallback String? @map("typebot_id_fallback") @db.VarChar(100) - Fallback Typebot? @relation(fields: [typebotIdFallback], references: [id]) - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("typebot_settings") + id String @id @default(cuid()) + expire Int? @default(0) @db.Integer + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + typebotIdFallback String? @db.VarChar(100) + ignoreJids Json? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Fallback Typebot? @relation(fields: [typebotIdFallback], references: [id]) + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Media { - id String @id @default(cuid()) - fileName String @unique @map("file_name") @db.VarChar(500) - type String @db.VarChar(100) - mimetype String @map("mime_type") @db.VarChar(100) - createdAt DateTime? @default(now()) @map("created_at") @db.Date - - messageId String @unique @map("message_id") - Message Message @relation(fields: [messageId], references: [id], onDelete: Cascade) - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("medias") + id String @id @default(cuid()) + fileName String @unique @db.VarChar(500) + type String @db.VarChar(100) + mimetype String @db.VarChar(100) + createdAt DateTime? @default(now()) @db.Date + Message Message @relation(fields: [messageId], references: [id], onDelete: Cascade) + messageId String @unique + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String } model OpenaiCreds { - id String @id @default(cuid()) - name String? @unique @db.VarChar(255) - apiKey String? @unique @map("api_key") @db.VarChar(255) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - + id String @id @default(cuid()) + name String? @unique @db.VarChar(255) + apiKey String? @unique @db.VarChar(255) + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String OpenaiAssistant OpenaiBot[] OpenaiSetting OpenaiSetting? - - @@map("openai_creds") } model OpenaiBot { id String @id @default(cuid()) enabled Boolean @default(true) @db.Boolean description String? @db.VarChar(255) - assistantId String? @map("assistant_id") @db.VarChar(255) - functionUrl String? @map("function_url") @db.VarChar(500) + botType OpenaiBotType + assistantId String? @db.VarChar(255) + functionUrl String? @db.VarChar(500) model String? @db.VarChar(100) - systemMessages Json? @map("system_messages") @db.JsonB - assistantMessages Json? @map("assistant_messages") @db.JsonB - userMessages Json? @map("user_messages") @db.JsonB - maxTokens Int? @map("max_tokens") @db.Integer + systemMessages Json? @db.JsonB + assistantMessages Json? @db.JsonB + userMessages Json? @db.JsonB + maxTokens Int? @db.Integer expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - triggerType TriggerType? @map("trigger_type") - triggerOperator TriggerOperator? @map("trigger_operator") - triggerValue String? @map("trigger_value") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - botType OpenaiBotType @map("bot_type") - - openaiCredsId String @map("openai_creds_id") - OpenaiCreds OpenaiCreds @relation(fields: [openaiCredsId], references: [id], onDelete: Cascade) - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - OpenaiSetting OpenaiSetting[] - - @@map("openai_bots") + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + triggerType TriggerType? + triggerOperator TriggerOperator? + triggerValue String? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + OpenaiCreds OpenaiCreds @relation(fields: [openaiCredsId], references: [id], onDelete: Cascade) + openaiCredsId String + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String + OpenaiSetting OpenaiSetting[] } model IntegrationSession { id String @id @default(cuid()) - sessionId String @unique @map("session_id") @db.VarChar(255) - remoteJid String @map("remote_jid") @db.VarChar(100) - pushName String? @map("push_name") + sessionId String @db.VarChar(255) + remoteJid String @db.VarChar(100) + pushName String? status SessionStatus - awaitUser Boolean @default(false) @map("await_user") @db.Boolean + awaitUser Boolean @default(false) @db.Boolean context Json? type String? @db.VarChar(100) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Message Message[] + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String parameters Json? @db.JsonB - botId String? - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - Message Message[] - - @@map("integration_sessions") + botId String? } model OpenaiSetting { - id String @id @default(cuid()) - expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - speechToText Boolean? @default(false) @map("speech_to_text") @db.Boolean - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - openaiCredsId String @unique @map("openai_creds_id") - OpenaiCreds OpenaiCreds? @relation(fields: [openaiCredsId], references: [id]) - - openaiIdFallback String? @map("openai_id_fallback") @db.VarChar(100) - Fallback OpenaiBot? @relation(fields: [openaiIdFallback], references: [id]) - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("openai_settings") + id String @id @default(cuid()) + expire Int? @default(0) @db.Integer + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + speechToText Boolean? @default(false) @db.Boolean + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + OpenaiCreds OpenaiCreds? @relation(fields: [openaiCredsId], references: [id]) + openaiCredsId String @unique + Fallback OpenaiBot? @relation(fields: [openaiIdFallback], references: [id]) + openaiIdFallback String? @db.VarChar(100) + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Template { id String @id @default(cuid()) - templateId String @unique @map("template_id") @db.VarChar(255) + templateId String @unique @db.VarChar(255) name String @unique @db.VarChar(255) template Json @db.JsonB - webhookUrl String? @map("webhook_url") @db.VarChar(500) - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("templates") + webhookUrl String? @db.VarChar(500) + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String } model Dify { id String @id @default(cuid()) enabled Boolean @default(true) @db.Boolean description String? @db.VarChar(255) - botType DifyBotType @map("bot_type") - apiUrl String? @map("api_url") @db.VarChar(255) - apiKey String? @map("api_key") @db.VarChar(255) + botType DifyBotType + apiUrl String? @db.VarChar(255) + apiKey String? @db.VarChar(255) expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - triggerType TriggerType? @map("trigger_type") - triggerOperator TriggerOperator? @map("trigger_operator") - triggerValue String? @map("trigger_value") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - DifySetting DifySetting[] - - @@map("difys") + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + triggerType TriggerType? + triggerOperator TriggerOperator? + triggerValue String? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String + DifySetting DifySetting[] } model DifySetting { id String @id @default(cuid()) expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - difyIdFallback String? @map("dify_id_fallback") @db.VarChar(100) - Fallback Dify? @relation(fields: [difyIdFallback], references: [id]) - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("dify_settings") + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Fallback Dify? @relation(fields: [difyIdFallback], references: [id]) + difyIdFallback String? @db.VarChar(100) + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model EvolutionBot { - id String @id @default(cuid()) - enabled Boolean @default(true) @db.Boolean - description String? @db.VarChar(255) - apiUrl String? @map("api_url") @db.VarChar(255) - apiKey String? @map("api_key") @db.VarChar(255) - expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - triggerType TriggerType? @map("trigger_type") - triggerOperator TriggerOperator? @map("trigger_operator") - triggerValue String? @map("trigger_value") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - + id String @id @default(cuid()) + enabled Boolean @default(true) @db.Boolean + description String? @db.VarChar(255) + apiUrl String? @db.VarChar(255) + apiKey String? @db.VarChar(255) + expire Int? @default(0) @db.Integer + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + triggerType TriggerType? + triggerOperator TriggerOperator? + triggerValue String? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String EvolutionBotSetting EvolutionBotSetting[] - - @@map("evolution_bots") } model EvolutionBotSetting { - id String @id @default(cuid()) - expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - botIdFallback String? @map("bot_id_fallback") @db.VarChar(100) - Fallback EvolutionBot? @relation(fields: [botIdFallback], references: [id]) - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("evolution_bot_settings") + id String @id @default(cuid()) + expire Int? @default(0) @db.Integer + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Fallback EvolutionBot? @relation(fields: [botIdFallback], references: [id]) + botIdFallback String? @db.VarChar(100) + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model Flowise { id String @id @default(cuid()) enabled Boolean @default(true) @db.Boolean description String? @db.VarChar(255) - apiUrl String? @map("api_url") @db.VarChar(255) - apiKey String? @map("api_key") @db.VarChar(255) + apiUrl String? @db.VarChar(255) + apiKey String? @db.VarChar(255) expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - triggerType TriggerType? @map("trigger_type") - triggerOperator TriggerOperator? @map("trigger_operator") - triggerValue String? @map("trigger_value") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - instanceId String @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - FlowiseSetting FlowiseSetting[] - - @@map("flowises") + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + triggerType TriggerType? + triggerOperator TriggerOperator? + triggerValue String? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String + FlowiseSetting FlowiseSetting[] } model FlowiseSetting { - id String @id @default(cuid()) - expire Int? @default(0) @db.Integer - keywordFinish String? @map("keyword_finish") @db.VarChar(100) - delayMessage Int? @map("delay_message") @db.Integer - unknownMessage String? @map("unknown_message") @db.VarChar(100) - listeningFromMe Boolean? @default(false) @map("listening_from_me") @db.Boolean - stopBotFromMe Boolean? @default(false) @map("stop_bot_from_me") @db.Boolean - keepOpen Boolean? @default(false) @map("keep_open") @db.Boolean - debounceTime Int? @map("debounce_time") @db.Integer - ignoreJids Json? @map("ignore_jids") - createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz() - updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz() - - flowiseIdFallback String? @map("flowise_id_fallback") @db.VarChar(100) - Fallback Flowise? @relation(fields: [flowiseIdFallback], references: [id]) - - instanceId String @unique @map("instance_id") - Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) - - @@map("flowise_settings") + id String @id @default(cuid()) + expire Int? @default(0) @db.Integer + keywordFinish String? @db.VarChar(100) + delayMessage Int? @db.Integer + unknownMessage String? @db.VarChar(100) + listeningFromMe Boolean? @default(false) @db.Boolean + stopBotFromMe Boolean? @default(false) @db.Boolean + keepOpen Boolean? @default(false) @db.Boolean + debounceTime Int? @db.Integer + ignoreJids Json? + createdAt DateTime? @default(now()) @db.Timestamp + updatedAt DateTime @updatedAt @db.Timestamp + Fallback Flowise? @relation(fields: [flowiseIdFallback], references: [id]) + flowiseIdFallback String? @db.VarChar(100) + Instance Instance @relation(fields: [instanceId], references: [id], onDelete: Cascade) + instanceId String @unique } model IsOnWhatsapp { diff --git a/src/api/controllers/instance.controller.ts b/src/api/controllers/instance.controller.ts index 524116f8..069f069c 100644 --- a/src/api/controllers/instance.controller.ts +++ b/src/api/controllers/instance.controller.ts @@ -204,7 +204,7 @@ export class InstanceController { const urlServer = this.configService.get('SERVER').URL; try { - await this.chatwootService.create(instance, { + this.chatwootService.create(instance, { enabled: true, accountId: instanceData.chatwootAccountId, token: instanceData.chatwootToken, @@ -220,10 +220,10 @@ export class InstanceController { daysLimitImportMessages: instanceData.chatwootDaysLimitImportMessages ?? 60, organization: instanceData.chatwootOrganization, logo: instanceData.chatwootLogo, - autoCreate: instanceData.chatwootAutoCreate ?? true, + autoCreate: instanceData.chatwootAutoCreate !== false, }); } catch (error) { - this.logger.error(error); + this.logger.log(error); } return { diff --git a/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts b/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts index 8e20b93c..27968f47 100644 --- a/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts +++ b/src/api/integrations/chatbot/chatwoot/services/chatwoot.service.ts @@ -1477,7 +1477,7 @@ export class ChatwootService { let inReplyToExternalId = null; if (msg) { - inReplyToExternalId = msg.message?.extendedTextMessage?.contextInfo?.stanzaId ?? msg.contextInfo?.stanzaId; + inReplyToExternalId = msg.message?.extendedTextMessage?.contextInfo?.stanzaId; if (inReplyToExternalId) { const message = await this.getMessageByKeyId(instance, inReplyToExternalId); if (message?.chatwootMessageId) { diff --git a/src/cache/cacheengine.ts b/src/cache/cacheengine.ts index e0970331..d6ee87b9 100644 --- a/src/cache/cacheengine.ts +++ b/src/cache/cacheengine.ts @@ -20,6 +20,8 @@ export class CacheEngine { logger.verbose(`LocalCache initialized for ${module}`); this.engine = new LocalCache(configService, module); } + + } public getEngine() {