From 77ee698797b2ac6184e3bb017bc7a7cb4fc1d2d3 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Thu, 15 Oct 2020 17:59:01 -0400 Subject: [PATCH] GP-266 - Function Tags - updated function tags to load tags in a background thread Closes #2366 --- .../FunctionTagPlugin/function_tag_window.htm | 11 +- .../FunctionTagPlugin/images/FullWindow.png | Bin 28908 -> 32378 bytes .../core/function/tags/AllFunctionsPanel.java | 96 +------ .../function/tags/FunctionTableModel.java | 5 +- .../core/function/tags/FunctionTagLoader.java | 30 +- .../function/tags/FunctionTagRowObject.java | 52 ++++ .../core/function/tags/FunctionTagTable.java | 99 ++++--- .../function/tags/FunctionTagTableModel.java | 198 ++++++------- .../tags/FunctionTagsComponentProvider.java | 86 ++---- ...nTagTemp.java => InMemoryFunctionTag.java} | 36 +-- .../core/function/tags/SourceTagsPanel.java | 113 +++----- .../core/function/tags/TagListPanel.java | 263 +++++++++--------- .../core/function/tags/TargetTagsPanel.java | 33 +-- .../function/tags/FunctionTagEditorTest.java | 194 ++++++------- .../function/tags/FunctionTagLoaderTest.java | 118 ++++---- .../docking/widgets/dialogs/InputDialog.java | 11 +- .../java/ghidra/util/datastruct/Counter.java | 29 ++ .../database/function/FunctionTagDB.java | 87 +++--- .../program/model/listing/FunctionTag.java | 32 +-- .../model/listing/FunctionTagManager.java | 1 - .../FunctionTagPluginScreenShots.java | 21 +- 21 files changed, 712 insertions(+), 803 deletions(-) create mode 100644 Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/function/tags/FunctionTagRowObject.java rename Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/function/tags/{FunctionTagTemp.java => InMemoryFunctionTag.java} (81%) create mode 100644 Ghidra/Framework/Generic/src/main/java/ghidra/util/datastruct/Counter.java diff --git a/Ghidra/Features/Base/src/main/help/help/topics/FunctionTagPlugin/function_tag_window.htm b/Ghidra/Features/Base/src/main/help/help/topics/FunctionTagPlugin/function_tag_window.htm index d5ee8c7e62..a8a6d01654 100644 --- a/Ghidra/Features/Base/src/main/help/help/topics/FunctionTagPlugin/function_tag_window.htm +++ b/Ghidra/Features/Base/src/main/help/help/topics/FunctionTagPlugin/function_tag_window.htm @@ -34,25 +34,20 @@
-
- All Tags TAble: Displays all tags that are available to assign to the +
- All Tags: Displays all tags that are available to assign to the current function, as well as a count of the number of times each tag has been used in the current program.
-- Assigned Tags List: Displays all tags that have been assigned to the current +
- Assigned Tags: Displays all tags that have been assigned to the current function.
-- Function Panel: Displays functions that contain any selected tags. If multiple +
- Functions: Displays functions that contain any selected tags. If multiple tags are selected, functions containing ANY of the tags will be displayed.
- Tag Input Field: Allows users to create new tags. Multiple tags may be created at one time.
- -
- - Filter Field: Allows users to filter what is shown in the Available and Assigned tag lists. -
-
diff --git a/Ghidra/Features/Base/src/main/help/help/topics/FunctionTagPlugin/images/FullWindow.png b/Ghidra/Features/Base/src/main/help/help/topics/FunctionTagPlugin/images/FullWindow.png index 35ae64079401471c882a5c32441d78ca49b7f4b0..f869f9ae6f9eac149491bb05d602e9fcb94e3f89 100644 GIT binary patch literal 32378 zcmbTecRba9_&%
y{h;8)cf=OJbum}PUkr1^*s0Ue%|+WUH5f*p{JuxMb1J_L_|b&`<99U5fL$r zi0FjiX;R=3ybGa_h$#5xZIzowe%4D^5 C?hVqwZ30yev4PG5u}* UaG>+e?1u?zkv*1 zZ-?nU{B%~(R&Cg;JIRLSVdsMcsj4x`urfG#;^pW|i&|kN(!-VKANG_=bX`!V&Uq*0 z?a?j%DG$GeR;%~a-1yQv{d&5)7~gFf=5}dsgQN>=V{kVE@??6%Ef#*@8eINVjl`Rr z@ePA@CZFYpg2?HERc2BFMi^gV;^s=(`+cjGGjm=$+q|9dc)r^Z+jG+x&W;b#i6-W=(JKm}d zgc+CJGs=PJcc&IV9k^DsWmpb&ETcAFmTq0>zfol2t6d(TwiPVCUw>?Ku?Tm;EG%4& ziWN$wpYu^IHm!tWJ6fOqvj~Fppn87)?2V)DZ?%tDDN}FI+`%)on!`rzHv`KP-{34< zuGtSrKY)&$azgo3>C5EQNH1gDMD1}m^K F}6)IELCOud!=wP{Tb5UfE+l+8RErfE&6U@ zdZ=0mH74ggFRQbd{jKs=oUm9H&z8HJ zL$6}b+ll!c-t3kfes*{23dgnNt9(N$!w+(98&W&*=u! tX_Jk=*AnwQ|R$xNo#7gS_l+%C* ;#GE1Nn8 z=ibTMdM%V>l(o)#wtjslAuZ52o-gIw`>iQy%sY%?OpRHD1m7Uon6(bS?=` !W`^!g(2~_JU6JRsM*@s$OQZ z&vJ#g3Dl^#1~VVJeSBn^NP`YJf6}D|o0Ld1 Q&%Z=DY^@Tfk*p>3;hmBO!i?<$B+g39iMtuLq@O- zTMd`ZzIyW_ts6FP!6vYcA>St3BaHIDN(&(eOX|a$nmGEpl2+%DSu!y9c#-b(z?&46 zsC+P^i~shLn|bqo)ah4$29^Kko!PU|ihte~{X-MyiA$RAB?cuZ1}>RBx!f;Ub1GAn zYiN6+TKCx<4)2*Kb&dm!ny<`n^tcPV_e=*0l1@8Os@!3fi0D9= zXCCd%Z6%@!7&;}BJJtj)O Vv)_6S zj<}2*EJNIs!TK%qUr+QGj#TVIPryNYU+MVmMuIvkZXgHu9fagUj=$0=**WF25w_6A z6|PR1E`1N;eLB};&d=FTD3v`XF<&hFc;bYJ$}Ol(Nb|Wnvv-~3X8Z`p7Ur2yt3V-a zHLO-EB~NnZ+`p3R?^HAC$O{#h<%Tf|l=h!o9;&$FFkGq0g{*O|j|G7;p3SqE1DC`G zL_8es2zRo-q9u7*$DxMQochb4qKx|_pLxY(rE;hbGPBJKKYKlZaBL&gFX7TKydg1s z+qCr5`O>TzG(=&h&JB0uwZADR9dZnxS@poson!v<0P|n`k-MqNf+vOkxIyhm&85Cz zSRJ`#k?`Q7F*-dar%)fPG-o3*6iSO}X-T?BY96R&&&`E2DXfgLZt}aL!#Rum#0~RZ zg`drrl&~+q*iUQT%%#fIS88>f*ns~tku-jrNG6PTjZsEivd9d%KroNCw2+cRJWtyE z@(7I&8Kw-L>RK0G^WbwH@cH*1X@Z(v21{mv%|dR(W|p9l;!ZWH&K4n5E-I(Y;U^e$ zr|w#mkDp|@K3lh&=AJpT=6~R`b_2F7vm|DzJkq)WdjBjwu?6;pZjz~Y1$zwhDwO#1 zQ`7yp1C{#lcV!DO$)pmh3pcT21Ws=UCpt2K!vR|{MGCd>?Osvrf)j#8U2wt5&(uN) zc3iyX#4aN>G9Mf|2uJzwF893+fp0? {8=%6{mokO<4T?RY!<&?&G$8_3I1}ezYg?2pE>_m`u>^5LMNeY zD%={8p-exqTMIVjB=lXtiJ$)(eSHntS;$Pp#ay2gNWSNNvW_^|O(zxpibEmzQ9zHm zT=0hF7j6*>;ICg!**Zstn#i9cR-7LHe1wj-VO7x?+<9Pj5^6~XJby1jkzzbcww@5M z;S~1i%=hb!Pbp@Stm$QphRE$z-<*D?2)xgl`vv4lKVIDxM8+ZJf`?Kj2@%n* daXo^Ard%5s3UfyFEg{ERyb$)~&hb(({lJa@d@( zbsn#N_A~qGZ|e}36Hkto<`J)r?aP*n1@CAd&@Uce(Ro(~dob+Sc8Cq!%zCdH#gZ7u zEW*Jq=WdcF{%G`4=UahV2a8HWyXHcJnIZ-m9X5^ET$hj5=f pw8S!$_4b~5H=T{Eq`||P=p_smT&m=8;p~?r`tu2=KT)B$TJ?2Dfe5Xw_ zvDG_g+oKqx;fL4gW5JRGdUgWHPP!{PN}h8fqS|Cc9YYI<*LUp8V%rpNarP}y!Cuf^ zhTu|b`ys=u_D<+RbrK3DNSL}#-_!OkKG)GYnBP2q<04cekze^aIiu+F8-Yn~$nqE0 zN`}qlo3<+9N5{F23WJeIaWkn!x9NgNYS_i*h;+WDtOZ;BY8k=MM8qrIR58Bl)uHD) z@8Gu%sM&H#v4Op7uWhyQMML=W9ZUmGr=wq;gi?a5iCXBN3m|J2k#|5N*g{R;^$8^# zX4=q11;q`CNKxC5xugCYeW}%HFll+cpmZ6U_Bc*(R1&YMf=QXfP)e-}TAvNM8^#x6 zFBLcu<&Z{{@x_D?`$Z|xCF}W#Kw_7Omsah!s3N#B9_eN_`+YVo3F&?F76Su2qUo0k zYgr`jksBA7-FXKorg7R9?lHR8J-9IeHJu2;k7sdnl~9>{-DiCsQG9aQ4jcq&7P&LU zqdmVfxD1;EjZW=&&6ZV0?p%#CS?tNggnW}UE-`xk=F)AYdBi70)T1wqs4mlj2j}V+ zM?x}_OBI6MaP{CQkd0A^gdyb1B%yU|8RMzNA??iYmY@Cb&eM?&LeJnFpJ85h^ m`M|+@AE9rLf4=3$iD?jb8RnB`e!h90 z_Y&>V9SWir_Gbdf4Ql_*p%*aQofGb_X41>5g}F{b898@%VHG0R9$YBv3O=bY>r|za zv7XI`dh}x1!nd**?V3CN*$`Qie(<3dN=!zRKkUhzGDtE0*?9~1Nf3r+GCx-?fz(MB zi!DMIs8X>KxFEyy_WmJloaFxC2k9R W#!&9YwH_t6O2kU zj-@k?!+}P-6ZQn$XHOD1zob?vZssEfU25vB0^>f9W}G@h7wN+x2~v6{Deq!gteLFW zKR*HlPuVFhM!|ON5OIhBxB^Z&sdVgWKOXP4F_Rx2n;MDwCPjn~e7ygKKw{uzp_C?4 z5^{hXY$q_EzaD%WIs#)}^&YdCS0H}Q!=>PKf~bxnf> nRH=C-e2j2=Cnv8rd9jS}$gJ|1Hej^4sDlH;jTiKUs!;fEqEf(L? z+3yiw0he}iMlPR$9kyoF<`b^U-tU)mIjC7UPbTO}qmbB^D%WLE_&yan(`HfjK15+L zGF5J|+_>l6o& +rFo|$SI6|RWM#%5KkKd;r#TZo&iB8iLK zsDYw;%SOtLn|zM!ULF&Z>c^%koX5~%K=+PDB5H(>DL>>i?MusRe$B`{{~9>GM5E8! zLKDjjCs7YddiIFbYL=v6bF{Sfdud9?YS+|a&S65+Y4qarzveDUd9cjRxQTAb+<|Y; zjI5Fyz(FJ*=ELlIY{XsYTjHM&hHy6`tu5?xEDle&A7?)dcL04>shGS>)#aHv)8V~1 zz *?_CX@);_yd3R1D=r*Im9D)^5w(G_zWG)uPa-+!4 zx?pW5dkm9^oTXUA$-}%0<%!o1hJh&c{)keja%iHi=7bvyR7PIz*yQ!x8Mn+CH?qC9 zD D7Y?o>FYV{t4Sr>~K%G6`9vEfC4xxpjo5f3}TLq98uZO9Npp+SuGF z3s!F17*y=asgf-ksW3E63r$on-Tm5d(F);E9NYp{);ci!h^__>U&fz@PuB60jWR1n z+Ic|c062W5 N$-jhu)F EK=TH&&0Fkfg=Obq9!qi zyC(X2FgFEJq7WkHF~KevOId2*gB!l|!wj+qwx4*V{$wwVqNh#96dsHYup$eIFGQ4v zfqmx(4J{=+C;LhGP2pTO95;%;S9ZbN >^ zpvx1jyw6hXBJ(=ZH8;D1=$%f#>qjg! rROD1b2EF~Buy`6kXmLPkE+ zd#DKQ`4M-Ex}+w ?_k9X~gprM7uln(m zY53QXxz}z-g;+KvfAhWvpHCf6e%NQ(bUEV!FF#&Zwn)nH<$U>9xE5dfc_r%_zsV;C z6>%97s009DnGqf`78{l?i$$qC$Rv4ex?4g*w8Gm*Y7W1B3I|O<#Bxf5V7uZOh@*r# z;$5S9PXd+5A9(cXmG^c+M3IzSE}7M1&tK^VbtVeQbf?q~iP5y=e@Q=Z^9w3Lf0USd zt!rA{hbthHmpcs`f3XJiW3I4UtoA1^c>NzR@Deo)L_|uobH&$H_gN5q9mSs9XViNZ z`x$Ql4nJ|(5FIL2?CLquQZEnM?YLL;b@|0+8Px&Lu9?wMY`zp7@OQ*SM2eq`I_@@} zTz<_eLZldR@F{|ZldB)kT*eMr7|l3+!1LHhW&4hCh^H8`bCGnXjbOKNaAs6fW!sJD zv0IUCxmBo7T#qLaazcJ%dwJwE bq5c#IwmhrD}ok!K*+Qd)~X?XaEkQFpJRKpE>O z4FUXl^~z%r+F`_rmgd5jtv)0egs?ox8n4hnY#yEQBDrQ9S@MDlu!PNd)M-Y))z@uC z=_B;_aGUcU`SQgJZZApA{juZ0y9BLZg_|Ed@{g&AR*< ZQNs?lm#=HrsyBGe+XHtY^I+*8L5|tE-c6<>q3xS^>9e6B;dvk>>P?=G zTPo9eshkjX0L`ns+!P{uO!IU57J4t__1iqk_d64hq@fydKn1gkrNPTV_6c(&kFSsj z^k-#eUg(ZFf4$&fi5;@1^gd|%Yq|_=C&481cVRZUQ}rnC1^ty&$jHXt92m8NZPZ3B zw}$$3B?|p>g$T-I*VGlk7eb*mb4^%)nzalc$=rT(3FbU}4dq1?3Hq6qbzyM{26udB z-=^+B%-p9?En7(+U>}Je={Gq0SNrdZhOjcpscG$VsRu7yvx_rHx^UZrpWq~+k#bR> zJ%&Ak+}Pn3mYIzK-yX@B=D{GW*;a!^&T`gGT$>R(;%=`7>1n^Y#%}B;G1SjP6v)79 z6Okx*C))u9p)x*%Ub(TPkiHL Pu5A~T2+l3RB{CdjGT1!G z;vt?pg 8RNnw58}3c~1Yhvu4BiXm l0_l&0oK;mVvolaJ6~NSwrUPA)|#Rj zmhzZBo6o+AL)gf!jMi5bOx;Zrv5|KitrJa`4>AYY_auvQcW201^m}GnHTpmuWd1&0 zMLQg;>IM%!X|yj^=P8Kq^_Fp)=zSS-FT{S4OFU{1(nwoo<<~1bv9-5I=WP)X6?MGX z=)hidWbnSn&~Rj4h6;aKCq+k#!X-_Xa}{+h$S@|LR8qa!#0K^yE!NSS)eW=KF}ZZy z-Re1^ %o#na3?w$-eP33UPtUdf( z+8_nd*DPt$5k`B$(4Hb+{lf^eMgp57V(n6U41Jumkes^0R?6+ds_7fuPH!a#nEQRk zXxAk(9+Hhb*p!9}kL)lOKA2j;;K`w+hAWlT?Nd0rrM#hadVRujsCm%LHaD+ZeE`IT zXz2ZFG5r;tE`rAd^wGLtMJzHV7~{(HHuN<#1_`01NJT|7?IFI zXP>4!e6K+F!5NsW5X@!6)*ozA60FW|RGjA!$QfOAAOWD6jtwt4Ck69*kIR>}Q~Qy+ zyO^=r?zHHRMRXan%`uy_*C!Y?(PR0arQK^)IgjCdmHyEQ&-SU+BJnJ@VzKN1f&%&d z^f~q8a8WCseZc^&WuuhYslgZ0#~;hvM#C^o^_u8RNA_^1o?>4P?RpI(#yD20JC_n; znU=2uv>;X0XkFG2J_+$TG4visDq`IvsRBCENwH~2ORSodf1krn`+4;v`|p|()bE+k z=C@wRd0>A@6f2dr3LoN&Yw~uRTQje2O6vWP)~?T8X3uMECTTI^ zC|{P@Ia>1!CXD!AMU(DS!_xsk&n4Kp`w(Uo8}GKBL=lRMIJMKnwcibAf@}42)b2kU z+z0g+=x<_uar(!HdxeJiI$jg+Nl@Y^TBLr~`5~ar@9w|0A?>D*J1CP9(Qzy6Z;GoU zeU`sv=@B#eL05&{ZYA?|Bk>1VZebs4b!srO1Ej6K^PH@DYyAfM4H+tQ2BF^@R_FSR z(>J9NU3pzs)s|XTteW^j$! EW#1gDA;KaSnTrqVy^L5}#YGPHj zjmA4J=tFEHWfvg1|COH={%-smQz8&?kl@!99Eb{99aoOrrwu7=N8!M0+G1So$-X zG(#c8I_4w|hpZV;j n7k}uU@k3mn z`NZ87{Ee00p!#C$5a>B6R7yE-v6`-H7$dTNT&$0~eV={M#eIB6hBKl@J45$-pBzq$ z8rW^`-~QenM*@;;7xCYtes>laqhRn|Ng}AxdQZN9&2Rk;-cA*Q3ai-0+PYR2G7Qi) z^?`=3J#va@PVWc2-B=B}v+h=2%^`0SDDOJLSV25M7_@yJ?!u>Y_$=WYKEbHS#IQmO z&F7?QrPM|3gWPDtG?8=- XRjZhhJxZt jvE>smA&)R3cMZ2^kl%3?L`ifk! z4cRZ%!~DEns9U6oIdIL+EFRarbTet=tl4Y0lM%7n(s^^R!CL-CCD8b}cCW!Hu7&Ud z%rFa6 u ieyKnXB}P#*10#c_>$u#;KC?=gsU0MbtN_QgMIaO36@JyBdAZ08)mdHqYP;N=?_ znC#ALfWW8~I0e`KL16v`pZ_E doG!8r;xtX{Z7~^O}%7qCej* zv8(3?r;274;p$Isx$wuaI0LBof6 svFIH4-xY)+b*qBKICS zY{&xRkDq7@E8lbCJ3mX4aO3JfQt$ac^Rw->SZ1QkwxH>wgB{w1^(qN!L+>AaQIenQ zpri;P^_?(=9ZdY-FDsY14*udVKe%JVme0HItnA3C4Sq(R=}#sI5X@IUsaS^yftct@ znyfde%P1^G++_?fV7O-ASQJNg4mdgN6(Ix%k(F iiUR18Qpswph1Wn2xO8_cQxkpoX)&s72Ddovd;Q7D6|&x(e35VM zX}+BRYn~2@x1<>-FFFqYK93p)71>@rDfA>wF|%5GOyctvQEBFa8}R-_L|^lzNx6|H z>&~1qANln~kL!q+p@BVxhUl@)nWPjxlM=H8K2N5F-asM}`2g;PRaw8=Rt-CO0M*hj z8LHrOs$mlgI5Z*;ST8F;1kZ`8zMy;F2hnshTYcUo!RPZ%GC|Uvt_@@Y3;`gmZ6A{t zvejbw2XFXHdbwC_RGNfPpD*mb9(a7MGp&rMJ(?MOE#$3n$w4b>$7jF-9di5zA&zJ+ zI{>6rR_h%RZ3~0qnsiFk1&>L%K0ZHy;fkxJ##`ywT|&}aFNF{=*OaCV-A?t#T|yJr zJuO1~7`aJ;7tXPjDh6_opPBiJrvfG#vD6$gy1txnCW5$AZ@AC0g3hroIO?ofp1HO( zXp)OW)=xFWW$5PZc%Gc~c)KWX=b_4ozFckfGxR)ki&dqK0o~FGa_YkT=1mFWHkA*+ z(H%74pv)A{q)5eYLCY@-G~Zk*ESP#F<$z&}ViIDpY7W-57-WethV+=<0;U~|cz4#l z8%9SJiA;Jf16_-?JKp)XQljWC-MW<&wCdP3E28%b@-^Abky}MRHpD@A3}JeB(qU?_ zd9v$Ow+waiY!x{l(sisMOd~;1wHRHho~e3{NaCN{8zF!kbV5FhViLF=mqD;Csv1n% z%X%u#?=axja<(&G0_-RIVAqT`l7g8}&BBL+0VVE&)0Og^frQ6~ )o*+ zi!i2!<%{e`HS|5~a`I;Ls9%Xm0@nzZ*|>s@U#~`^p0sjnp_ZX@Tg(Fb=7FxOi=}!M z{Kmz{@#3jpZl gA8hi(%%xhY#Zvj1`1 zWZ3Ml=z;}wQr_lU#HNXb^@Y4{6-!_LcFD%6E6)Ft&qUu1v3s3@`%r(U3N~<&6FXGa z>+q>Kc#Gu@oZ~g|#kda(izR-0fpLVvnk(okNH;)vLCwN(?}9R9pSPgP$KZtbD*@ID z;KVO+Z5s{Df_H>U^JZSl!pA&5zH3jIOFM+jT-cZp5!(%daOTbJoCd3j^f={_!;~Xp zub#q?Qn7L)j|sNVPJCD0sJ_p*TlRon6G7}k2yOeYm9gPf3=g4X%1Pbu`j}6su^-4d z88&7BK>2ouwm|B4xn-Vnj1pebi$PW~CL7w2-BhzhkSxDonWjYt2`BASDTa@cw91Xb z1LlZ8!WmR0|L9AvdBj->uQ!WETZ3B`VZLTI61sD!w{yalH(g}B81wIRb={n%r{#uS z(MgAhyNsMax$KK$%pGu&xPY`)KKCR}eE 3UQ8NFq11Q+9RQ*tlk-o#b%0 zZkO7?AH|=0J#FZ@!y$XwHR?l-8OZbjwLhriK}K8{AI|IrCmsYs@%pn4N?U`2F9}*~ zzZ1K^sRGR)7LK^(Km2NKzEeBc F@yigZ_avuA`pFW36 zblXA&)?6;O!Kl*%?9q81LH7CU$7VU=-FM0@ow#i}x=swRs5lSc_o1z6QX36>uAeP? zd^Kvu&QWkF1QXOgSiM}Afwlfx?aP5dSGuh4TYlq09dJm7<>4i&I7^R$0d!KCp6X#P zb=(J!Powp#$tFGblHEuzmnFUBH8x>|PVXr-6w;$V=M=JW?Cx7|Y|RAh?caHH^x^`% zaDZk;;KkL?Wm!fk9^pt}G>R69Yxuq nwysyxC0t}ne=Sk#(m1sCfdY2n_KJ^g9Pc9SUf8Thy zzB2Fe-h;UDsn)#TR9(qVK$uB6_7<^2_np}HtP!`-ZetKl)1$NY1cK;$B9P!eIxQeD zGm((A@8wO67m7KoOPkmDb9P%+yfxosQ}yp0$aCu&%)OYy(+6OU&mDBmM~ADwNn^E4 z)tm0|eZk`o7Ni2Gmlc9uy!6KbT}QaL6FcWHzG=K^HN#_sP-QkR_am`dYfw6|!vUCR zC|lJ3S!%eE*_m~>=f&^ySm9|hWoW>?^G+vVTf4^Q&A4cBwq~`omj`-N!pen4-4HRm zUJZa(s?t2o;6n1xo_H*79HRW)x$<2<08DKp?b@BAH)OtHBSI2FeGXF6U}%9?7|LX= z_F{sDlelx%L0pC&vMLFH6~d5zl)Im681@)X=vEB;w!rN;;KpX`iVT0rrl8ql4ZjJD zDMbHqCCSmyZJ_n{H~PADzLUEC-StuV;Ik4jDP?A@8!l?!w9Hx`2M^*iglI9y_&9gI z<|YGpd+hPSs)9aY`ZIkL-DPq{VM{ZFx#Mu $EmmV5m7jn9`Xl>AIlr|Fm$j1hoZ_kz_zc6 Mt-jpb?Y7h{fJ~QX-<#bF0Pc1e z0Cn^M$$c|A@_pB1i~6B}^ucTlyg4KciHW3>(!|ep7aA2BOlrOjI@o?8V!KO`@G7b~ zbbAwO2V40>vR`vw856Q8)~o{TEZ;wO)-tpPcx$7|2e 2}K#VF n$c^<;|pRt~3i-=ydROSbyVcMLcB7+h$QAZrS zx$YhvPVzI$NzEi-Z2{BL+)}H?J~zY>kI)vvW1*jKe==I+gLdNP^D=F%R~JGrDw?5J z7Z(L|Y-cmsxYa0^&8;}rX8 aDFs zG;{trd<5YYIr!yBwkk!N7`&c7LM3Qo3tzK&@w(mDclWJ@8-14PBy#$a0O}vrcn(kX zuI_&vGYYV9kFSK!> 9d|5U1r_P|K1DR;9b4v z(yZg8?}8gc+_ZO5dC~N|t+;B%! }zqmu&fZ)H)AymEN1dMa-m00}8z6p=${o2(P8l z$lU!NT#E^-K9}9Z&eag9_k<+bPELJ B<3GvU%34e(ge`9 #Niu)aql3@?zw{=6lZ|w-kHnAkd4q*El$dPoPGAQbI_z 5zIVge3rk>< z3q0 N*wLu3E2Du37ZqNQ8eH>-oY(&ID3Ma!!;HKf5`j|B1z3Dn^eQz$-Hk- zHWyq*8%#l=RsJ0(P#_b){S _dO+ zMOcx-V0Nk8ehS8DHUennL&3!1k>w>|(s98Za8pj5`&2Jv`Jmb%HdTy%+8=7kXy2io zqH{BmW^5&Lgs0Y2_qXLt#Jc{nnnmrhymL`ikp)83du32vc2?0m-&$Gu) p{|3lNX|vTH#+iWanH(FkE2*`xt)M0p0nU9AcoWhvUo5PblE^y0 zHlGG*D4(qPygcxmQwX4g&!{ BOxqh$c>`UQQ(BR%+o&uH%XgyU#Rh|g7^F)aqp%oBZWu_; Z= z@*`dmap{V_t8(P={LQ+34fHqrorlgh1np#Hl^&HJ!Bz~;8qYVyzszWSXf7`J9|;Ta zx*9^uy#$0JU;q(-OVQ(U=Ql|>-Kmyhq@wu%3!~TYPU$^(P=ro&+U<3|)Qw76a=|im zRGDfFr$Xq(tD8r*R~h*&`^7{AEOXCQ+YgM1vA3Kb^?&B`si4AZZYAt0-vC|=x^*SB za#_BbJ><13*(r22X9bvtJy649wJFbI*|#@EvsSxnB>KNMeUC>QG *n@o}a4n%O zT#r+->S51qZZ%!8FCE;?{_xLk=HmC>t3bRL)&nGS7xLZHcBL)rwY$*HbS@KyZ)UcL zB#A?AwgFAE!^xhEnpL%SWt1Y`#J0yEOlrqrT0c9qcvT-gZwhOm3M|!oy-ilI3Mbg- z^*Hg5xN@c=fXOR$;N#!dD?t1Zij#Hsa~`aOp7WlW8`)u_%_qg%9{Z=C#4%kHL}eM$ z@LQB--!tzTWY^-{@E`up(_IY9?oHte_Ev#5>WT}w>CgxHuBXNKbVp3)hwj=vm1J8i zt0s9&5^U2rW%crahDA-nl_dPdYHXvC9a4&4YMaj+qtqW9d|@kXwRoV%!uPdDwfybs zq$72_a8ovUI!%0%?h^;OnoUlzFa6eXzjguuvOK)fW5uY@h~Jz0+^(Iz8?MXdSpPE2 zHQvVJ-0U39R>jl@T7 B% zGf>Pu9buy2-|nx08jaqFxt!{^L^ANrw-ZKf@gM2>2h}$v!EgkTz3SN-x#!cq!*t`^ zg!Z~jQ|_teNH{003bzRsxiDAKc&jkgI(NwG1$k_sw(&u_D71~qHEr~FvG~~)8SNXl z7t~FKCd33wcSo~vAFUzTZD9RAxQau7Y?e+{snb@pM4;h>@Eq?lCqe&Xs2iVKTD;ff zdn#0b^TdA?f$vH^(EDm^Ypo#;HLw)W3-|&)S$tl+z2UB7{^N=Nkp_QX%qFcC z0^pcF?1AnmdF_k;C?P*}26tmXONL6M%ZI$+kPn_WsnZ@6uWt_cl^#i2hHe9Nis7;b z!$otLeS&;Y06@H%tm+=$l!_ZG(9ePSCyLnUkdQNE?ygT64wl?;0H$S|6K!Ova)C7t zQpEt!KmoiPHV3!`7)QXOw&68nVPrH0@1LESM-Yxt5O+YMpp0dcG6+1LY^PYjHcCAF z`Yz>udz31`+p|s(lOkabD6NqJH^M4{0Qptdh%o!wpnbGxT20&TNr5O^7${Z;_;DU! zJBi#;wQmRDN@q;HnAZo%fc;6g+V?L1)uI6C3g{bomu|m_?D$Tq0TCb`7zW>TpZt&o z42RQZ_1~&SGwB0Pu69tF4T9-jva)EIrVS|-i;8iv$qlWkhi`ba`8hm^GGu&9PY>>_ z;+Ro9+NmnQ*bgbfMJ`h1Ij6I}3n(X>-4ZyxYR7>OHMk~!?qe6gl9n#%u4JKBee_+v zxM2NLzMxy4+v3qojCs_ZdU>{DK#ieC2$-7Z8{}!c5U~cv@mJvG6C!t%_yH6%W?E`E zR~lsh?UQ?ANATw1j7-4MHZJaIZMVyK&HoC}0OV2NHQ%@KfZrhZwD;nmw(P8b6r%u7 zH?3t9vxw_CA*#a1pO(>O;Cn1(ji9{^4F1UzB2l^kz!S0F1i0Y(D{R%F8PNy?BKZn0 z?=4xkzT7i!1@F8$KH9Nq19|AXfRmtlSx+5K`F%rXB>*O@^&x;($W}Fl5Hcp)qt(f% z*^m&xk*0OJ5XkjPiZOYyM~4iK12xwNoYn*e_Ub>Yw~ow;KenjT_K %1CQn~Ba<`KY-<>BXgx{Sl$=WmwYsrm@0BG`Og&h=z $-C(YDDJak+uRL`4F(m+oLK2?E6?&}_ig z7u`{ViJVMn@90nmxvwAYdAeYxKgSn7o_OC-AJhIeG|{RdAWY|7gJK{xTNYGiCzzqh z#g({L)fF7o vtk)lDHTbP(-#gFo5Nh4r;3o^H8h~@* zZI-pM(Fj<|ljq^5R~P+wtS0pDz^Rio0S>x8`rgKCjZhoBnQ@@;Q-6pqCU$x7dlm{( zz62M2!**`Z+#JsH-LZv{1%~NjU+4{_ycZaP*4vpUc{KOmquF_Gy=pm2U9z~nwZ%AM zS^3~hdn9exNn&DExwu`A%$Y@#t>?Og8N;Xbl$`SK$e9G~3rraYwj(IdbEzd7Ki938 zRdg$k<;}3*YCHX3YsuFIGx?rMB%T6lPWz|JHp-vykDpB4wR4+5xm&>O? ?q){Lsn&3u_eFqo9| vf`n<+6rrH5eW`UUx_c~tuu!@IGa_i!gE }t7X#eLQF z VX4 zkh*pO%3nKP$f73F$!u@u-X27!Ibe$p!CEW=oGE&AKaXyPB`j1uQmTI;+VQ~BZy3-f zBEd5gy?3dL0RI+xVcCH@YK{rMor+MLAh^lXw^#*7B!*2@8ap|lYSJ0}R!;yeBtzb; z=0J3 D{KyrDm}nu1K&yd-HUyOJGEi%i}JsJu}+3)1P6&+ z-W6S&y5C&cXYh~_Mp)zf{fl3wT}yu|$k~LY{hurLnQdb9+K8!biSuXqZhlbQ{ijRA z^KX7;sS`k=H|#UwFnt&gX=ovfE5tt2+?)cBL8Si&mgI>;TCZ)>KI*pNgZvo#KLf`8 ze*(Zi7?sD6!>Wu?){zfpcIVx~)|g8H#c7ZVw8Ou*GbgTakT(QXS@Ul?pv`G-Ct`Nn zIw|P+FvYR2mE>Qm{R060!H0+=EbCYlXE4rLPzjsfm@2mdAYa4xT~WfQq1YXVBdTnV zHrKSo+UNg9GW&`$b`$&?4U<>aY%_lNHqHkB;oEo&1VPf70o&jy@};Q^3yFeCprX2Z z3JJ%A0zWi8?EV2G6u!FD)gS0U6f38;x!9M~@AqCCCH+4jYnnXrs}(G@N$6hU`fskW ztYCi*TgP~gXAHffSM8JLuwB?; zW$2YPK*#H0(1d&qmC=i}pEkp;A1Ep z;OQy}4fPVSW{*vZ(;A19f;kp-5zvboI0E}ycE7MD!4qcI5pw@VnGhNnKIu?(%(RT+ zFggFP6akzejrY1Z09pUV_9$V+@VgJixX>h?8eDhlL?R9LA4ZVWM6$I9fFVOiH99F< zAUG5_Hr4>Lkarn#ZxI8(1+aS@ocPn+{_@qm!UG?E>6J6>^J)o)rXs1ZKF#8^h7}gZ z^Po7oor_VZb+>(oFD@I~qGfFy|BY6CKCM+4m8du@`!|zn7kr^%)XJ$iBBjid^~a|G zYccu{z2yhp337Y>xsU=~sMlqc;NGICfsHG89M>i0i3QST=cJ9sz|onYv7~};$-YJ* z8_Eq{-Ax?-<3s@gqev_rI4Pts>+r)kGyxcgzB@~xxMcI%ML`a5qgU8>q3eJeEZY62 zHN!#rNxn27yGXJVewAI8hoDIgsd6vht>=_kuw|EpH{~T95puMagB;q06`*izN!q3= zK_X$4&aaB{I3hS5-w%*R=YKeu_7xlTnC+Q`Ew221%7HCRyKd^5D!&-AHO14NxoPv@ zYImF8B?&-Zgv=9VL?M8|NU?%N=z+#ITfG+E9QaCC&0;@RtlRoPci*69(2lp`(+&e- zB(O+oGBpc6A9Il4|4AXikx2gy2O%}Fw*4Q>2#89w;Ke}}duAaUk-ygf&~7Tq0L|}{ zMdc2W$hjcGIj!g9%s09_$N`Uyka@L)Hn3qUvPvTjLCh#v`H*{m+_l=Btamwrp*|1R zP7C21CUvXx<@4EcUi1-Yw-ud=UH*cIC^AfY;@QA?4As91EzltXX)=IwbiX$&f3+PC z7?AW9#2n@)s%XOZ63d1!m0q3(L=tZzKYn<4;;QS?OEj{^9vcdBJN2w<+qRZhvsPx( z*KVev7)@L-xQX7xe)9dLt^%J|)5ID1?=1N4XVFTzykhSh6nt<@p%E{hUI!VRn^j(q zm$$v5lMlGKd!Jq|*6t$qlm5}cryxQYWVZ~>DBUluV7@cfYkSi8-f)rj{lA+5AhJCY z8c9`4)5&Pm0OW`)fXf&>J$0tgxjqW!i4#Rt5`j-1vts~B!eB|#o%dl;zbjq_h7fnt zu3eSSZQKF>wqGrOOo#1^pNWo#xp#4h{!qa$9R6^+09FG*faU6715oq$q;C^bNxzDy zL78&igK0Y8Mit<{TgcKhCHSUG{n8NrH--ij 60uWBx{ z%>Qb2fJDBY5{x_gw%6smxxb9~OU3`Uybcsy }8LSwhIJEM*Tx_R79z4-L5! zTI`H1TecWXm?3*b+09rdW0|s>F?M4a%X`NCJonr4KHb0H`~7Q-neUwMIoG+C&-J;k z16)e|gv >rN!WFw;RXqS z7jTC(KO_KhqG5B{!YH5RiIxJ86=#Dw_P>w)DMPQR3I(a&JHQXT3>rx!@aeFoO1Y-W zzs?3>p66rpN+)4gY-RkRMTIQC#WAz(0j0keYlt5C_a^?ESOH)N- z>nF;q5!bvV54wV2y{xRPK;I2oolM2iyQpj*Q1WvcRAbi!?>AH)PoiY$GvxhM( HeFo1X2WGiqw>LmY&O-B!G}qA7m97P+AF>v(ui>)-E>W02IY}eX1h~ zgMZSWbju7t2&FoK+iQhK&|uDU0Wr7-%pp?NtYdW*P?zH~GdW94k*`4i0N4c+^&2lE zR`zxSmpK$3|9B=<0xI!t-ljks|G$|SSMa#+&8pm1Z1h>B-L%u?{G{aF`|=~7>`ZsD znSOlC1=6*t9P&@H1~%sUKoUWJAdG>{V5&V4IaR%M**TI`vU%bVEj_x}qyixu2zAFI z1n#}R69RbF>IJ-HdH)n<8lnaS$CeDI!m+Bd7Q(|}weom2*v`xk%sJF$6e_nO2l z#?%-^1>v_+O?Od;;J94judn(tv{M}JHmT 61Rid97&ivZL{^m6>c3!>S=~IybG6fLiYu%JJ 8wg&cLP)K7THn zXp+$ZBHGJ I$e%E5#j&1}6W#rWvfe)sVOiuQC+qi&* zkvf%*V`uWc@-%xogw1A48kKtL{JjTHJ*M-ScQLhc_)pjGZ$>mFFoauAF&Q$(c*;Pw z5l5n)dhrofK_w)sx;D@QLirvaCj%PB?kJ^x&1rl}eOUyg%EjL_nDXkrz284e*jQ{p?|uIufhdg z(K~AkRMj}E@vax>hm{n(zia%)a=9xPB=buKKmdL_EmJF+L*YGu9JzB>$`t}h*ZNll zS}!;O@Z}7CWxE&fZthUi0+n_)2wn{`5aDlFwfq(oKMcPS=yQDh>hu~Q5(UUQoK!&2 zU~V;q^;Ca(;TY7LivX|#{p?`mpL}}xbUErhY+5)u=ed2Qd|jOmC|tZm^x8kjIq tr`%xVQhl01JlE&=}cI46rx6cZjI;?vAq&ms3dqJ!y6>wGnB8SY* zc~+Dxl0ju%-gn3HwAc8OdIszk;it dafv-LeQOC@E}G`33R+dcD8O3gGnd zK6(xO`u!VCv)@WST}^v%6saPVP15}KX41Ik+Lm#t_FkgkQR$$~kf&OS@6v}V40*MZ zEovSi9sL9UF-7y2VFa7B67}r! $%EA25MBDUSyV^%>L=KyHj zSM8~vo*>}3p1PhtHUGat?4((_XHQFUj1r=Y&ey83(FkdeN3s_r1zq2qjf4i1SW2SU zk}AQf6|78VJEn;D%roWabYTA}NB4gLb}Wq3V!i$h-?{qI-sJXsvv=RAPBQb-6Os2H zilI)qoNIomLI8byRAjt*)5pI$nhX|Sb6vXHCp-W7A7mO7)<;|I(NXD67by>ynThrx z&~N2EpkZcT=2JG8=Q4PkGpfE@mkHZxV`HU+T{RM4Nr7RL%k9r84XoxG@S3{$%X|H} z(^unCHt>&xh%*kuK6tm(v#CAMs|0pY4uz`F?}W26$-JE+;1w&2c<=0Smf5>dA#e1l zN2s$xx2pt=avKT#**aFiI)>_z5 u=LH|IRL{5f~=} zc|N&~rtRxqG0e@9&V;B(3lA1(YvhUB=YQ2Qc3kZ|FBUd^KYvuv=uO65nEFP0Vh&@W zK@aEd-nHND%FRYnH??AsAhGGejX!9OTpm~rFNAaZ4wfH!711tuRykLbiAL@Vx4P;d z=hT>DMCjkGF>=?3vYxsagN7yC$=i6gn6&YO-M)Kdt<%PCMZOVN(K+HZJ#8bgsIWIP z5=h4+wp7#gnZ~sFq}YAHhR%_;>8Kn{St-G=wl5`IlvDiL;?|%R#39}b*UOBuYSpX4 ziLiA*6QxT(-c;OqUt*QH)?YR>u|B9MHAIZ~j4l~Ff{2KS2*J2Ab{l1lekA&}C5dK^ z_ywC}5`75LP`<9Q z_0yN=B)sdoc(9 RU zHFNIcpISD3q}}PQ%F$bs^(U~ck A~l vw_*HWSmjydV~@jr2W7*QGaiq9W$DhPzb^*1zHnKHTA|u2I!kRYZ`VuoWwt!5 qZ5;SiL#r>yn-l=7Q1MS8Tq?S70+Rn zssJ7|H#hfT%PN`cX25uhN=&xHN}*b!!rZXI#U+= -t-`BnyRMd_Ae=n!{R{e;pu*R1+2gr&0v(*;;ne z4`r-y?&f^ciR}=%A_6LT#30`C!Q^4v>E#9Lf;= 4Tk`3qOkhx8y-De3OL#?s^5(a8Z{IGo z?)~SLblu-F<_k6QUr<8{g1$6uo*tk7JXL>ntgm3ckz+Zqq~vhRhFQ>L1+lRGUaob4 z$n-L{t2Xb+az|JDVz_>0s%woPjO$@f+`Vc4^;DnSFU*PZu(Bvlq^oG&V$HDp;BrFn zj)tDuIM&rp%~#{gVLdX>zKCdtv1_cHR+1Q3z|0~)gcP2fQA^5<1BBF$(6$PNVW$Dd z2MDsP9WUBV{>inz5Yq72ZeG)V1C%;kFDyZpk3CJn(w%4>KN@xZ_$WS7`E^9Z`6r{( zKU`?BPVjyyE`)I-=hX5my%g5~`o|%MXgh<^a*(ytHe_UFz^kQand+Mhjq1V`p0H@i zW+{h}PMU6M+}x~~EE%ao3{}g{@)PKTgZFdS%sSIzR zp5ojWn!;eju7vo`kKFe!>!B UqGFR={#rN{1 zg^0v-XOf1Y{q(Et3ZLV$X9J(QVO#iW*~QM+46ucqW%^5VnlK_Ha;zaYXJ@RQ@`yI< zyprF(PrJ&wpv%edhV?WN3|QLVv$ngEXultS&a#MWV{9Yq%>}t37dEkJWB>8Cc7xKJ zYABRGd2PR~c--mE`dCX$EORHmEF-RXqNio-^A;(1Cv%3+5F6B^b}l7Ntt*wyz7)kS z=TU?Ec(TtBC5WzNquXZ1&afe4#;9*qpY^-s#F;kl+x%eG$eqSiRkisOL5j{^28}mf zcoKeRH 2 W3)hoPQhk4xfn zTVrE;6yWrPVbUUs|LdjpdcA=JHIJ92U)f*&ehLF1F!q~^A6G@Zgo`bi32SBW%zNpJ zZ+!Ys7Gl0(m2z+=p6diJF1{Q{)18x=33RKssB?*wH<@EuMapmAyU7YVDVxqZVwU?0 zF|9L_tk>2`J2e8M(|iMIb@c9u_}p?_J)=lMsc37JJfE?8Z#QPO&84jye8P3&L}Sc1 zPJ|xvBai-XG CFUZI8C{r_!6`Ow^95p%RymJYw$yU_H> z*cp7=+bs`8E1wCYk=XaY*+bc&oHS(Sbx@N51ER^kBxZ(f-#DXaE3ETPRBZD-wj+qp zKRS7TQHKu>2`fjSFBQE$o^iF0AI+Fid3TRIaKfNyM{C87fZ}x<5;TeZ7^Pebz51-W z;FsO1oke?uDYc5gm%h!I$kf=KX!)F9Gjf` odr~DC>_TWW%_d> zLU~$AP!M4ZSy0`K0=Zc&kXp{WlYP?w6hO=kRTPYVr90%h{d<`mJ1uHyp0AT;=ibdk zL2LjKBM}729kD#OY<_$S@dVoy1dIe?DHWGmQy4=Y;6j%J8b*qwGt}I(jrSBgyQ|-- za+Z$OZv^i_2x%;EQ4)q^RrK-k0g+TjWoRf(H9!pj^Pk%QR3sEy)K-G>hIYb$qZgs1 zsvVuJLhPdAY62XOE*4s^>CR;rXLMGGnB)<}ob!KA37rsH_JUH-$Xh4>4&ka+5YxZe zz90MzM4L8%LgV?F_MFXiG#@W-%HGSDFMXMnTR*ss%C3e)HMFqT_$`Xqc0kwhQ^!K2 zAipuM&*)6U)7)w_03U}(Oiax4>lx$Z2ZTF$nu*70v7kqX24Jh_f=LIry R zzd3ONRSBB1=mQ{ZYM|rX? !`i=xbfJ2>y|3%j6E}`)ZS>D4~q;psL%f_7*tqRjTh KUy3&=-1Wh`yaeGE zKiVldUBNF_=%rr5^IK6JKPL*zU(20BM(g;>J-X@*1KqT_xgY)TNqbIx${`UH^jLxN zW <7%2jU6lJxCLQiiiAhyRu z?tjQCe7@EYUWq>@s*!_9)9i1_)GQFKNgls&-QoS4^O86Cc4bxUZiyzSm38POr^{ML z&5!vhli1}!@Au>7ZtI|0PF3}IotxL=C>reiyMj|2#9_?X@tA@q+bM!8nq8*7^Id+q zwlJyQg}$iXEm&!9j=j=W&?l6*_xJNGGIsCYq+ivLavOShh&V Rwn$id^4I^7L7smfJ8KAZg{`O+c8Dfr)ZS+ zB5E1k6y0t;CD kjC zRMT<4&PFMKahE7wG&ERYEkeJEIH4ym;C?Om3U6za&e8HT+X-k%xo6j5lWJd{5MSYk zR9&1|KRRqz#_ni;tcWF~QF+6`Ko_Nt_9g#>J%3z>T&+b~)Ro>5}q*-TZ`$wKq-~ z!THg9TggC==lzEsS3AyByD=+#^ySO){ZCv&NPGBBrGmzw`?k)Y%XjUpUBmxYQ3qD+ zltUlpA50bvcI`J}2$qeD`}bNyhz<)N@jNGZkka-#DhfDNdFC%(8GKyg_3XpB$BK-S zH`i|*mkb{Ezg^UD--7 ~Ib! zc`;bove4x9e;Y60Y7&UHNoSIJCJMG)Q33?u55CE~W>`s7 qZZ(ueSRF#MeGF<(6iz8k)y>`p>*6}lb zL?vFJC80;-?E@ gAKSVI?8I<82sKvv&|(K_{W2Qw>|;w>>43+85PJv9r1JIqCUTmZ9TF`! zyrz;&UJxZ NM)HKkRZI(uEn* gnjf-$=GRp z`i5z;vRQ$ff*ZZs`A;W*MGzS8XARsNYQ#N-o&H >~qcq2ca(U{i% zk>F+qTvC@&pZlP` )=e_~1tM)Znm=awYj KGU 1i_lG1B!F%7%rAmaa=)AA2?%8M8MP1uS*dZ)IoI{!mI zd!B9oM}Z*7$<MM(3KOKE3MwHvm;*jv8P}a6}wzfvLu!4iYYD5eOAVb9YAoZ2tt6nZ&?nqn-862ad ze0uCSt*NVW^OAnsv5>*NdL}QG#efc%Eab)u@FOgkKt^5A@i< fw6_%wK`%b*$Ibkh5Yp z5y1FQeGkokXYp6$_rn48* ^F#iOL*V)XPg$AAc`iJzZ;x%p_OIWX%IHsn`_@mbE3+{!K2&XfoGA0% zIFPa1FvNH12UofEtyAg|+Z%}eZ~i8K4Z50teHv!r?yrCjYYIHiBxY{QNE*m^zIrz+ zUEcrI%s$nT;I&1^{m9XshX(KJ eyJF9!{^ZLzMzk%*!Q|L0oa+_fmlNw=}DV)tqN!lRIchYYY3Sm)sr#DPY;=I)#`M!mc z;wv>ff?n^E;-RjFPTy)jNQ}p1^X!n~*})9Wb(9IL-T}WkX_PgkaGWZ}?*Uj4F0&94 z)XY5|Sl+E!?c%Zc;*AMdX^kv~-->Ufl{@F_?o&+ ipawYa@sD-4@?nRC)B}g>qca_@3U(d4J~-w?esq zq)UA1vFh<8jlN~F%~-x+xkHEJ>dOJdy_U(OW*+f}U%6zStmVr0J#4@QiI1 TRW-C1>@m>0&wFW73&dmRJZ;9SF&m zsZTw9E7~nDg2?Sr+jDpC_P0#O7oSktxpTHzXq^zBN^**H+Rz8fb|LN1A7CS?T%{JK z$VuH%uMcp>8w`l;?|U@ i)z(+h!<1ExOO0hyZw@9LjnY`R$K@@qn^G$mwn@O(m2u=ql A`R#p z$o knJFQ`dYIMj`BxSvW<#E16*)A( #1&nlo_eHd)3q1``?~K_e9sEyFQ>h+oM;Zk*RM4ludv^1M{hvAjkX{h< zs_HMnC+7iI3-Ni6RG58SgX9jq)Ai9^lJ}nF(-9 zTuHBNU(Jc?IL54d9u}oHv{%rgn;sjELyZ(Nd1x`)F2|kW81|c;l^J-{+*+pS8Wqq} zSD!f#^!>l33LK9_S-A)o%E}!H$Rc9vlVpT7^&l$^$8vPDlFo>_JzdVj+l>!M@tNO_ z21;{Fs;8W|!MtL$X2SA8eUd!Dy=(MxO?RuxzP(YwV8=J__J(S#x `NQ}tdzw9 z?YSXRJenLgcVHfGP}Bqc!O|$(94t-cA=i(T4Ft^0{-|e^%UGaxYNzZKIO@7J{l}l3 z65lWe8PdtILhA+mS_%-w-8XNw6|Zbar{k+K5f>!w{yfemhP`g{{kG$14YDAj_Gw>N z-!yT4w$masGlS7z1|0_b`Pk*%*i)a@Ic2s|ipiw9XiiZ~A Z!jb7aDolY t!yrGdIRl5E+nE#lzp-+7oYoX{(dPzx=Cq B@X#F+4pm?gUT|wlYJ+8V#oxlE3T!lr5k=E7RvYpSQA0LG39gDdPKeh~ z4jw2lV*NfB(P5eY8u3MRhQtNRp8rWt+4D4}M*_u7NBq?Qa<<9B*usbJGNwC3lxg}2 ztj@{Ot8`?bFJ62IAE!JUTTob2*-NkyLX-o$A3p)Y7kY(a3r;$4&1Zjv{0~3lFNN;T zP@v;ceKl h%L4liM`yycl-=7po4G#-QWKoJSKqM z9O*f5l$gU_`Tmuic%JjmF4 2X@4i1--S?R9Rc(|S2B$G;Y|-m&x>oU04%z}m1(#yxl*w%c z>{D@CBC#ZPxwet5GI95xr{+km?*2$4_Qr-G$%3YbS3Bp#s k;ar*4i9 >XFRKIiO<@bCMV7F~1cZ|*A{RwVo&@B39uyQkrFS}aP`byod6upIttVvT#1)n^>o z2TRP(d4@>I$PCfAjqU?%*9Mfr0K8ck)VoyG{x#PTF@?(Hz8_3{JGnmFu)`(demI^! z`z{HTap{mv27$gbLs4!SGw0dFAgu{k+=W;cWY16NDaI4rKLQ-d_3H5aK=+%4jzFOk zikqS-GJzqT8MUo6X8iMcNVq`XOlw|}rQl1Lbo*O>F}`_A|EYV^KKa7D{myB-t0Uj$ zOLpaow(rAZE$S}aXdn(5cPs5b%~Xc{^hcwb6i~O`aEKb4d*toN`aqkTOJaO8AtJlm z`?HR4Gk8dyX>I9D_2Dsl*k )U>L(wMw6m!KV>yGI8=GW+ZhxrIJ01r z4r^Fw5O;i}{i{tGDqa<38ymZK7(W?Vw3oqJ`}S?Ihew{jl4RkVf;#Vw8w;rfX$D2u z=YYNf=hAAUcQc}-VR#X&s-~SFk8;Sm*K7I*AcGYHFup0YPHAtm>3uZd5I!=xw(dPD z<27w_`6@_z3w~zJq_o!Qvr-W|c#=@Q6nX@UMK-(K!*Yx+IR!J@KH)!;&JQ{hNuxN0 z$T5zXGg=lb^-EulDHPykx%wHy=ZGCfE$<4}WKp;PGK6_ayj+waM0kH#-Kow%t6_FT z&C>b%eMLviXPU7SrjXf jwF z4W)~II0$?z9r_Kvf*87ja07#t6*5KKj$)Uy+wRI#!qMCc4-E}HPWw%n#x(rx`OF4B zMMXs|>w|NipZ$m}R0a)((gr0{eItPRd?#aJthbCL;|22;^o#|QO72@%&f%^1IfKNb zB|H7Yn-HX_e1)@%%4uT_Yj-UzgzMJ_hdV*9p}Ujz8N1Oene6xLku7fr7q5G7CVLw@ za9%Oy8rW|H$m%r=QOaqgze2bGp6z3#;DhXy8Qu64LT&d|LPVsyU=bv6Bu=0A5=T$3 zZC>ldBN41Y^-aKG16L>qnCqfa11Dv|(pJ(mV++Y5iU{(RsrZc?eEZKjS`YEy9s{rN z$!JA4d)>JKwp%)>;(ehK^ 2I&>k-@fki4O=V+M{oc=}**{?Kv;GQ*^)l`82OFsRGxN7;@Xgc*r^7ko&<+g%c zqx69MuIi35ONse4RJTA&O|J|n!>rKJo4e;t>%G6X>j~;$h2YPo?`Cz)EjwD(8~JUm zOl9mIoWZC(8#kv6!*8JRqXFxI4wBdK?9b8(mf(T#qoI;_EsW|uE`LobN~0=tUAJ3N>Q^wp|KDt9&+zuaLM);t&AB~BOluS zJ(;nZNXnDIr|Ku7 zo0bOkOn=8
C! gx*w|5Fzvy zAkup$gqGx+c D%5{5F~9sUQ5CmgvDdIp k0+4`%(%h1mgaFqZUcKl?Bu5S z+``;K^V^t4Si$(a!w3KRqj>JBvGcTy!r1F8fBQL5x+5Ub%3@JXT-OJK13%CAs4`lp zA_DjP@#me~M|7xCdli4Jg#q4`v9~Hc gW`A9;x448FJ@U3=a*BPQH54 zl?*LtPd0D3VxnCiZ= kq BgRRnu+epGS|)- zdUqP%JR|JW7XL}Tz>Aj&X0vX0zCbQ8yl$g*E~K89Nm!Q+c}c}Y0Akji+2?n_}vmUIfDFve+RcKWyD#u*V{Z0sCf`Sl`D)ap@g^RiMA7tgRqRxJ8 z>8pALJdYg1J(kBsLwL%2yOXU0vIo0koP=l1S}Pm&g|JD`xkcea*Jdht<=6{`peAe6 z+c63_*t?uZYat$8aE*XnW<;83y3-}P!cX5kei|Sn`*k0~0X{~)&W{+IG~CHpT+ch( zM;;Pi=VBh}t9U`JuMf;&k6;~ZOwTvV1^DsWcRGit;TSh!pu%q6zSV7~3)*lEr}>>z z8wvS#y!AmiQ@$rJAfuO~RU%RP!fHYy^&i;RBb7 R+tkufVF5RKG%{!PoW zK7k~vf@%Ks+1;?9!GI_lM=6@<=AF8tkGeD}uqep&2Al5pvSob^%@bb>APYMWLR@JN zos4cae%AZ=Q{rjbQ%d2r_fca$jU&mt;nzY~1$E2B>+?^%3*!yXImD}**JLwp_0l*v zDwFSirCfgZT#r+Oll2Ab9%h>x5A*Nl!;(JPnlTH-c0xjTigb@2&%mPUYzo@63*sRU zFX Kj;_Plo-(Z5@*!=E@*F%+YAF(FoI%rH zJhT;+qAa4=lP!_r%|QOpmPD9+*nMBq+`|7P-G@>KSq{-Hj=|DZP37wCC-H0+r5@Y! zY xEYP! _1~09f-~TD3&--f(%W>26m%L91TTB>F+^bi$hY;&xR(9ONRllnCJ}ruc#Wjkz zwTaMbZ+Ed($ht`H{Vv$X5`!9Me6gC`M$J|IB%NSB>lrS4;S^VEkwso~k!|$_ZiR`~ z!7QxVKZEw?--tsf`$#8&&N7Ks`!}Qa(q8wqCr|p}S?N%3-xgt7Nvo=Jp51TxQ40rA zJ9@HSbEsDZuIJ)csts5qWRVhwGj92UReNywHqO=Wm*L?r4FW{_!~-p~<^Y=o1ACRs zvCI4X3o^qvx#GF>&(&=O?dxA2W$@)kXd(4*vhIWh{tPYa^k!)>h@Q_hTR$~Twr+UT zVuF)S{5Xv&eva|6<>)n~nDE26Q(te>qNK A#{?>O47dV2wv z%EAvP6Gs{w3^YB%d4%JHc_ug-RwupvmQJ&K7AZxjjM%LBpMv|R9(TZ&Sa^n0kFAUk zkGvZzcR~1hYb=-P#k1acTHYH+Mr>F%u!=!$eP4P?6#V^#Z #A)y^qLsz(=7ZX+|2osPpr^VasU1_F;1K6{zm&AFt2_!U3 z!u_b8I~7%h?t5y;!hkENI_EvZBe3UkXy3dMY1cW5>>Y|3uw|Vm)K9zkp9pqh)xR6- z8&A(#9WP+nq27<0PScp=eiW62ms^bBHo-@)7wJ@*n->LJSK5#h4l5!gspkhAT8E*% zNMXNV@_83K^Y}0+%<`af;Ea Wa*5|L9jEoh& zK61Cs!|Urit@Pf@dt@4Y-O{hw$!61e!)5L6+r;B2Nb$#x^KyZ9B}SuCX5y6uBMxMb zqocd4n0zs1%- (c__}!(B)pCVc|6)a@M`K{e_FS+}BxC zMia~}7j`acmMRMV7^Z8~w%ub^Dym$byPie5tE%a$)w?>&ZQ)kkBm5e%9<7|VS2eN< z>{gvK)Cz=>l_KKQQ}3#DNo6Q((|b+fca(BAQ@L(KQ+kY3VMLm!b$;uX-JCmjk0?g* zT{K098@k5t{YJmOrTFM1)?EXy?+%_Z*NkXp7uMjL>(Jz6!?A3n5Y6jQB#G&`s8qH1 zR6^|8#*NA-E@ntCs(D6`wJ)v_D^dnEm^B@5(uqe P!&s06C3b$H2PNgaJu#J#IFjfTi8@F&RcM5Gu(4Gt@vE}lhWdR t!FHt-d4S zj!&BFbMQg#ViJ6!C?DLAY3l)TpB3G9$Ssy)E0-i@hQY3_Xpujq%tO?&j`fVPQBfI> z*~gE|gz?y7^Jbra>{#K^=|XX3I2}CU7Gs9dzjgNV=jqnBA)PC$-JKsS9V$ua?7?*P z@r;oOF66zuca~DN6>p<1k#DG=tg%7R&Ju;MMN|vN^^FzgK*(gktaI)P3N5iWY#d6e z5Et^uH5YHix_?W%al;7}x6D4W#o!|n>10M``VlGDOzHzrF61K}fFtGVU`AHSUks0` z#}jki==$@a!TZGr-Pd{d?if{Wt3~mRTdao1jxg-a!lHB* 6+?{AW|Tj7)8T>5ck z&a=}?)?!=Rxu!^=k*{K^@YVS{N93wmhjTFSp|UJ3tWBXr(fXH-ch0bR6&bOtncn9z zvUTi`4Mi$aH4^vD#0s08G>vC5?CC?itRya1&W@NDh)tL$^#>~#-ZcmYyW8U}+S7St zEPdqYSx6kss)E$c2MqT6u8IAYln{E+S{o{9-eNGqQ{TT+MkkX(d< X#n@QUep!pS}N2W!MGCjUe;UnewK++{^Q1}vGmm~an;MJaRb9!7tz}OXp7A` zS`0eJ($+n&A~p%zP-s-|RF7xv^RC?5AW7Mua-q?S%DY=wWf#4;w`)Q+2$7 ?o2@rb&1;NwHY9RV zZ9>u8c|B~5!Mi*rc$LC4LocZ?W$08VOv9d56)K21WM*MZyq5o*Ba95GFKzui$QtH9 z=O=s-!YBrNCrKujC}<|nR9CM>RvJ6=b%~<2vy=13Nmsd-huzG??~hcoFk=p~i@DaL z5GRn`zSW08NvrzM_RNyyxmaDd&e3v^F*9&hB{@ty=gq{)O;>ZS6fX`=UbX5;2 0lzzObmy{dr-xdS@SG|lG%7ZNm(>af4%AY`okQ_Dsu2Z-Jqwo(MkQ-N}N-@ z>5iB`T(xob%WQghBX&iAM 9LDy@!cS2IRxIC% zs`lrY=i%HM+Q#({BO8v_!|x13m#Z_NSbZH*wSanITOYBp;apK#x9_YS1J!dLdydu> znPUvO{ST~J91E#AN2zANJV5Gs!_$LEu-&ZtB`+ 8`2#--J3f9xY3GOlDB>?9-Y`0?wXK7r-ue^Zaw!ZJlHPhz{HWU6$u zjLZfokT4IDV>d>4Sf{9!wx~m0H=Zeu(J@&TN91YEV~wyT`ex|iH`ncqvxE@Bwvu+6 z`4w^XCAL2k%;ur_{u}QToO-@Lw;gzH;sthLE1SZdkoxAe?Qe6$cM<8`!^R~Vu;{ZS zrc&2g?&bJBqi)8Iyf~%Ls!D?0J?Z+!ht@r`ec+zvE${1Q1gQo-X&W!^%c~UDs_t5w z>eBJR?_(cW*4;yjnA}v(%$ncKV5sW6XO#V!;l1ztf%5ek(-mvcvdW)Z!-OaJ(}K-Q zWmrzo6CPW0>(WYBeabB4wh&&dNF?mQkkEUB3yY$oe55&lcVVt-%$U3I=ArGaKz*Ah z=;}pfLTmVTP6 uy;*9;8 QztvtVU1|b*`>aHB=i;I#4oDn$Ba|z@f)Yu zrIfvRnj0fILT)@4GHSU28wq~oPC|-G4ZdYZovGgUTEI>d=`YLdr}rQx)Rf_60=x zxa1e|O32O4%$H!^=8nL5vMLN-_dsxY1tqm%%e!)SSdn>M=rOQ;ByxBh%(hFq(HqJ^ z&+Z|{pZB)`s1YHu%{ESEcXc X+fN7imOb&%(4Z1iMvUDjcS1wgRtxHd=Jve7tHtYjzIvX^4cn%wXMc z&d#;T?ngFO@)SxKF|HD^A4BQUAI2TkH@5QvAkVfVOWt-_kbTA8cCtm9_D$rs5*n(H zpjTkbSxewuhPrq#=*ASWW_IuLvGq;JDQSwqF+Zc(qqlVN23VErN^71Vi4CK@HriuS zn)M>tdUq}5U+}6L;Z&^>uIjvd+law~c{kU_Q5FIfRpiAjaEHUs9E_JI2>XV1d7h-A z`si}Db$5y9Pk0L8Cny~eHJ;%NyQw}ZFWed0KT35$bHzL~LWJ339J-r|N_ylBJIxJ1 z64|Io$uoC`zHAI#r pkr`mtqe5MF&t*NGjcd<8zvVB5;W4Us%B&^7 zB6phRqv1dwjTRBpMS1JdQzX|Wgy0?V0TFJh=Zp7PDHkq|b>IKSVtI12ufY6C61W2x zLW#fFc6 Sn<{UvII7y;MuA8KYF*yXU<+7^seNk;J87JG~H1)<))s zEK~q_vTNd{bf~i`Z0{IsOme`x&n!QkECHZe)`{iYy?8^{70Krfj_WbfVY7nAPO?>4 zY1uNs;}&t%i$WPeV}aM{pI 5VZ<70yK zw$hT}Mbdao@g0S6dsoKi$flkrmn1{FGPIKVv)t8c?owOscwGn3a~NVfP%`|BJ9ICZ z>ljV!*C}@BS+DY a z^t}96lpc2u?Y9g*!I<_~F&D>OyLNTLC(I~!!#HSahGNr1-wA)dK^6U~^XCfc*B}gC zqs|))wisf!nZ7UPgl}HMv7BkkWeM(hDXQmw-=9m&&INUpL5MiHkRoh9mSl&`jtaN# zczKHL!y~PkHl!v0y^Nmr*7C5~_AgH6Dzn`SHzG+PqO8e{kx`-najH&Y3@2t&G4Er` zRCJL!Vh<;|@}AUZicCvcwrfO*BHAP4(c1I77u7T5H1u*GcxGGoWNRXc(pH;z#}$3I zPAe!QJnsDY^Mi6-Z!3<}?`pm9K{9Oyp1n`c6~{ypZ$kI3&tub_=leq?p>B$?qJmwS zx*<1j-c-iYF$wtanKoVMwj3-I1aopXr~29QIs9x-u>IH O@Wvq3_ z19r0bIEINoNJ7qpYgA+WQY?pxm++pr2~$1d2CHzITnsGqtP(x%Nx>;0gB*Xzq0t_G z^}?DV>(w%qt-z#1;db+3$2mA$-V*9cIIF#1U8ri xoar{Eu_oM`Wh|hA59l$R#+7vg_*=4Tz>3t>5w;DKX die{Xp0+Kn0>+YpE+em&B*Un)JpMG3Z~su)cnAp2T$&ScfxW_b@y&r$>g5a z=M*5_%yD>pD8v|3@|7~Ji<+4##8a%vw!%h rroN2_^9}4C`BGyk|JI zGFq#k+pqjiT#a5|t!K7v?M&CGV}A#N;UX#RLiIkX3pRfw7-5;>&}VPH!MC~Sk{osI zTc2x9Dx KQe|!J4a5#veQLHUuHcMQOra{G$4Cc8x5T{& z>wQJfD*D)TeXdWl5KlF8-Sik<*Kxo~j1C@GQ&aQn@Z144mY!Ww8BCfWq!>nYgTe;O zoI pSG)S4e`X;Jg!VVe{QSNJ-Jn*60jQQhj zll*4rs{l- n&uN}rH$0kwVK8#>HByLbvO*kC@Cc?2TB9jtnD`nMB4pDW zk8ywtEO_^@iaMrkB)zNPp}NDO*|3X#Z~tNuPJ2Y=W(+B<=5R)5CbDZKyW`~*oO@Vp zvS-Eni%Q`Jr3~(?WOK#=SN(7SOFp#*GE)!DVhw!nMD>^c&xCo8)|BclXR!ZPP2mfP zf8=?Kqw4?3*mUreF;g3m`ZTi*MC?j)*G2BeiI-Z6NjiLJUKKFzPisz93{%X+yt}wf zC_t0@-3{-JB2ssBO;$D%hLv2sZT;FOU85uVGKB4&4~0ZDZigFVht?0MfhWu$J;-6O zhtty1c1)HsFcAve@KzZ{m1QLtL{#I%kDoqmfoGz6lbaqy&2kWR%vt{G@|gsc;J%}` zb0)vY!_YUC(fp $J&aZ`BAzOPs$W>q3XT*z`&+ xX~9GQoXY;4XRDiC!ulM@m5kEQrkS$JLkA%!e^<@Jk 0GTcW8EBt(7}T+_==f?q^w6xjFMPgEVOsA4bR;#>7+v zEPq=38pU7dDQe7Zkb0N3qfFee)ZX+UJ^jgNWnd27B&sEG9Ssac!_+hJ@n tQ`}@?;u$7&!3T`i{==pFlRM2IYBB_b221?RYK~8<-%s8}Gi2d1hJsYxF+=~(Q zSeCs*2@9hqBfCNT %RopO)$JeGKh0d_dQ6Z<=4WH4QBJH_5^xW-(oCYPiCAij-%7K%)f!~XNqm&qA zXMeAItfWo1Z@Za?>^DoJ6bNCJ6r)*e$lmlugt;>Ml7!%*gknyCuow8ZJ-@j+;u8}# zK?Um$87<4>Qo1wZZg3Az;|_g;c)qnciSQ>i5Od*V(j&tx*w)(gBljwSQj4}kl*gt$ zvWM#VE0sU6)oFW%k0$+eY^o<_1f1?*WkxfLCNZn?*y3O1xi=+Cl)Uu`9rC7rufFrb z00*~hcm%cdNb+}_k}dAaex_{%vs&p+82C}epPq7A|0gs%%HR@2D+lH!f#1BP)%V!t z+KUb1JUP@ ;)X%qC&~KOxf7P%@D)V*j`bR|LTpInH)-A)TnsEUW*4 zQsaK0)aj1Y|2;|_@{y z2nC(`~U63f3Sd;GdHL_PwuU2 zq~zv1Y&2tTRI2yzQhW5kWpVMM^wROSW$f}PnDAZ0u2Qy-$25ry-zkM~S`hUJiv?j3 zr;4BHN(x})SNA*4kp@~lD934aHNr?8?aJzEQl@T!dWv#Xn!{wv$o5Or(Gw?bE4;gq z021B|y5zkSJkAJ;*J^ru-rG__rRBYd<# < zOPGFn o|aKi6^dV-vhNe z)XD!OS0X@f 4|;qf~}BHoEj{MnfnSbqi>V5}qt&ms*uAt~lE*~03YXEfKvOjw+9 zj}wA0jiV!i@5YKI^Gp`J?BBlaDv}J^_kX~Z)XiXy^}h$~e`4 6#@)0UW5tR~=0d5 o2zC;+SLJV_|EWmpL{pgm=bD=FI=A71VvoM8yd`m- z$ _tsdoA>5XU)7 z;|mysRL`WVsO!p@mtf~@N`erl|AMEAi=To2p&ZG8L~I|g62+H1{ZQV1_)O!jmirrX z$^5o0`V-f(l|6i=P3hZ?iVR9f_nagLP(lTU;go -g>`l^fL9TV~h}FZ9Yc8@+QbD?URA85r-;3o#Snu<+`6M ztv8BG%oyEvE99><;DJj7<)JLvZi-KbBc7row(U=k7o_iKi3N48k~Y(u^uQ`IBc{F@ zAE}Y4vLA2SqD+-3*ly37?5_QCkX*P_kPkFD)j#Y{21r-@t1pIcg;AN?!`8x^p0$=x zWY+lZwue*TGVFHMsr9C?t6LR$OO?qUt~{rVf@{1o(q>+~e3|}q__JH32l*O~0T~9} zUROhhbJgiEERTN%adU*>dHaHOp$=v{I3S>tF!{xOBHsGij;8sOh;^8nk {Q;Ao3<7zu5=CD%-O3i`O84?Qwu&Ct%%utwT~3A*lj- zT|JZLUn6BGiCn<4-KWR0Epaca__H@pa8)XR=^x*|*H>(dkc<_uRBwtE6Xr53>s;F! z5E`|X^4NGo5f# X`n>};o0+~>7GR!Y1C`BXnuJ3xGO PxC|%Ak0swzl5$Oifje zdQ=#v{Og4SNlwCfE^`0V%Xi=BW|&}$ZBx(P_VbBP;R>mFRQzPnVx-nL^s*`&U=-aE zt5NwN_xf8(x;sy|UqlkoDXNIOfy}}}T%$w=W+7z+0MwkxDlys!b}{E`P74ElC_3*Z z026#H-51;Lz@YLtxXt{_4XqSqM!iz|WT3nPWKy7~n(}Ly1PTR!kKq6w*c2Mn3_qFa zOiwZO@CxJU>zV)+R0TLtPUH~kP8m<3ky=POKs=6hh&W6fk9cig5^7vCRe+I90;ne{ ze3=Ab!kLuKLzW;XrGXZg8x*7g3qTiBARC1{J3F Z+tgsiJk6oe`y8(DTB( zk{FlR?~UOf{~F>@MNo4Yd%1(A3v!%EvY;`d9|$iM&br**VpX Pj zu4n-ruv!7!RqO|aV``X(FL{O~9H-uN&Dt#q7Rl2F*SqU&@(t54uuaV_CAZ9WXYtQ_ z*Q~9Kqw9VQ?EE6m2t*|a@vruWJ#-M0(_@Vx`dODXe!W#e!PtCwr=EtT@kXYd1wZ#F ze|Udo>P~zzxa6!8!ehm^1irknJUXI&&lMiPo+$A6%V9fQmR;!#Noxq6_o%K`z<3=^ z_-G#!Xg bDv8?{A$HaWtxi86u3UVG?1ST8fBb0-In)kINVlYt3HEGa$<>_8$QMS3D$U z_Vu(I;3Afw5jdhewz)cK3EDFP_G5R{aH*>7%TFQrD|qny{?GXktmD!BQtxH@hY_ zXVq5#e>}md8SlC};cM!V&MV~`j*v!2oN 5YCddWH z2>C00odDwbdJ8p1>_St g}L6O7cT~5ukH k*sG9canVgi+ih z>0`VjA8J(T=8FzsBp=z0lVz6uH)jExarXx2|9Ou8zbhy}VYn?L DJLnezz@p9Yw-Sp!PCbJDVZ&-W ze}GO!z*ditU$S;!F5w!u mu@m>`D!GjUcpHp$_=3lsd>(+j835N+~S3xA; z5Jg}0D+0LXj8bSA*f0NnsDS;rFARtrxx@o9l+JWAzy@QBi#ZsFdny#RMQ&h+`$&5L z>|5r#nzH}+DITNaP8pER0A$|RIEk2OVcTpBI{*zsP=eu+=Y{s`bGmkBr}y6G24pN1 z6uFsIal?e0duy0xC__>{u>Zr97-4#dD1YE!u`l*ganCP!KG-wPGo8Kw2VCM23IoWs zEr?aDRsg{@- (^;fzVR}GZR1DI1gTL{5w=S%`#&KxZX zEtA9y3thk7np veq*#!{aBs5hlOw*K6 bee J$65xmSn<1{+3wpu;%33gp@NM|FOni}dCp*YQv|8eQV;+}V5JxYK;NMh3n3 zP2@Q)=xA|FC!}4W%w8}hyCE`mZParc#XG|Y?KGifm2j%Fa+kOJ{h$DVQ3KnD yR44K+|yHZU2)3F4>!cn%Jh>Rq$~1M^EbM5LL+| z=7Ss7@MqCIvNCEXNISIzjUeys;AFI#@cWhVSBJN*EnR|EBP=#nm^*FVN{oul^lyYM z=J|UqY