From 0099908afc08b874daaae5ae060893f4d0661b2a Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Thu, 12 Nov 2020 23:10:42 -0600 Subject: [PATCH] Validate install PIP in Windows --- easymacro.py | 35 +++++++++++------- files/ZAZPip_v0.6.0.oxt | Bin 77469 -> 0 bytes source/pythonpath/easymacro.py | 36 ++++++++++++------- source/pythonpath/main.py | 63 +++++++++++++++++---------------- 4 files changed, 79 insertions(+), 55 deletions(-) delete mode 100644 files/ZAZPip_v0.6.0.oxt diff --git a/easymacro.py b/easymacro.py index 29d4a17..16715df 100644 --- a/easymacro.py +++ b/easymacro.py @@ -39,6 +39,7 @@ import sys import tempfile import threading import time +import traceback import zipfile from collections import OrderedDict @@ -170,6 +171,10 @@ PC = platform.node() DESKTOP = os.environ.get('DESKTOP_SESSION', '') INFO_DEBUG = f"{sys.version}\n\n{platform.platform()}\n\n" + '\n'.join(sys.path) +PYTHON = 'python' +if IS_WIN: + PYTHON = 'python.exe' + _MACROS = {} _start = 0 @@ -302,7 +307,7 @@ def catch_exception(f): except Exception as e: name = f.__name__ if IS_WIN: - debug(traceback.format_exc()) + msgbox(traceback.format_exc()) log.error(name, exc_info=True) return func @@ -535,7 +540,7 @@ def run(command, capture=False, split=True): return subprocess.check_output(command, shell=True).decode() cmd = shlex.split(command) - result = subprocess.run(cmd, capture_output=capture, text=True) + result = subprocess.run(cmd, capture_output=capture, text=True, shell=IS_WIN) if capture: result = result.stdout else: @@ -543,15 +548,15 @@ def run(command, capture=False, split=True): return result -# ~ def popen(command, stdin=None): - # ~ try: - # ~ proc = subprocess.Popen(shlex.split(command), shell=IS_WIN, - # ~ stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - # ~ for line in proc.stdout: - # ~ yield line.decode().rstrip() - # ~ except Exception as e: - # ~ error(e) - # ~ yield (e.errno, e.strerror) +def popen(command): + try: + proc = subprocess.Popen(shlex.split(command), shell=IS_WIN, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + for line in proc.stdout: + yield line.decode().rstrip() + except Exception as e: + error(e) + yield (e.errno, e.strerror) def sleep(seconds): @@ -4039,7 +4044,13 @@ class Paths(object): @classproperty def python(self): - return sys.executable + if IS_WIN: + path = self.join(self.config('Module'), PYTHON) + elif IS_MAC: + path = self.join(self.config('Module'), '..', 'Resources', PYTHON) + else: + path = sys.executable + return path @classmethod def dir_tmp(self, only_name=False): diff --git a/files/ZAZPip_v0.6.0.oxt b/files/ZAZPip_v0.6.0.oxt deleted file mode 100644 index 08a54e7687c03cca60224acdc21e8b453cbc354f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77469 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%0AYgYI7eQs5dqK@Y<7iRMchEd%u1&dI zyXgO(cwL>!N-X`IMjar+HG{_g0fOdYZsKfa`7hcv1Lgl6?QlT2) zXgSQ7ChO=8O#T8nj^u-5=qNGUKNPspO{UQs82ybXRRHqlJtwfglD(|aAp2u#JOqHc ze{Ip-l`9_wg6o0EyB_xF5f!(yDp%_xX#A%Db%|5iHW9S>gZ{9+Ai%PoD-&M9mKXR# z7hXRwX1iz}ypCi5%qlmFCg0?7YimR!QwCfwNXjHkWb_z*n z<{Fz^8@0ipsU3VnRfQ7ublBX3L;RsSje%2`s2Y$-;-CTi3?|TmolB(J!Q=*Jf^W!# z77%+{fJpf7%*;Pncit~)pJbrlAEEwl88vgTH)7#rG_`ZAO;NBP1VK@bhEhr!G#tPP z0HKe2p^wXGxd2so9axje+-;>*_}ZxkO7jNom)wak^ga!8`CH;IjY10iY){BSJnVR8 z8z!;w1KD(e!&fPPNOiLs;H=>6;LM>WwvM8;@i8uGeThouxu+INOIdS%CT|2g3Ml^)tpO>bw=G< z1@@_MdrcsB<@Zss#a9wn*@^DjjlXa@j+EtCmsZXfSRX}lNITVKwQsCJA>loJY>=}H z+(t|LaHdRDJY@Woxl>0!D5w|fD`g6K_7gh^=4<+rzhDidjPCw)nV^7o;^dDxD%i5< znRwKIp1OAGF_lRaI>!Dl^uUv5WhK#GQ|=6q(M|@9f8^^wwVsn32-@=>sNsLGDwDzN z{)e_(>OX9E+@g%7ng|Z`_22IC+vIObcq6hq5_)hFbfQkc5pla>Wn@O^G-U}oYDN+m zfybSJ6e0*zH4KIxnCKR?91y;kSQyk&3=Ce2?h>_C&LIU0)7{Sy$_EOOcg1GkyPPY0 zoZzZRWY;i6@0*ed9X7KmFo1f23xH57ZE)Fc)HLC9hKfU&e0Y7;A$a;Ee2Y35r66&V z^y7o>@AKnyu2TrIHVvKbplgWVZg$En~peFX4#&fwlSn=+A721 z2dwo;Xn_xZ;d_cX443y3%w^u~H>aA}X!+xk9gGs3u3;k)QLSPscq0yKGI0E=yXyK2 zV62Jd=(7+T^T!KfEgHwyzG`2l)(%VdVbliDI;_dNK?DfQbIv`RF|8DXG+V=}MZ(S; zBu7LchPhyil+nY&y@uAP7I8Ky3?{g(KNt^zPj=^jtDs3IZIUlC{={GEPbcv%K3?gM=$N zIM@`b9hAzbXOPyCw=ytVT}#0re8StYoSU=}pL-B8263PNs`ujzO^!Db zXuZ75&Hv(?{;~ou3iz9h1_MkrMO8C%>Li&&rWAD3r#?EK0GGA$_J53+yu4o;G31Xr zjFC8yY_QmOO^m(93uHl4a{b;NqYZZhQj4JNU_6hD89s>)F2D<-Sk5zbBG6K3mCfxSZQ*qFvZt=B+P36K&XO)GwP%e0lnB4*;O3~} zt{_;pNiY4unQv&MEqFb$Q^8AbSD4=(#tgHDs;bG6KOQZe;*{G zjA+K`T3L0gO5YPEn}Pty!qVm9X#fDE5bX}JAu7?US6gHmgdgzW{T{_|KaYt3(u_}< z$h1LbTrzpGI?DU z3@xz57Qb8)lbBAb>~{;T=&wa4V*Yu)c-Pizk;9erZ^2DX$FKpij!d#y>K38re06WG ze*Wgoi!Xf#R0_M#qu+s)4ga2pC0tdNaB`&4B|z3q7&QKYeE&~fZ0TV4ADF?yz`p;P z3j=ug4;SWQiA5G%1taValj#BkJx0s2=nwWTFuP%f4unm~^gmcF3z{(<0EQOT7WEdH zl*Y~h*x{_FpD;j|9nPokcSc)#GuPX$XdEuBb5f|w30v|@13G~bDiZg+ePJF>sQt(U zro;~OKL%yhp7HF#?t?cMbdZ&t++*VOpRq2%uLCb=@)S10j!^k3uZi-$aQAzMd0?*o z@f$HDd2f2g!*0|GfA*_Tdve0HlBRp##oKt6}{VW5g zY{^BMz4_FbK}}C!Z~Q_XJS$)#N)9{s32sV~;k4NK ziDp&Q;eH5GY4cvJR}1{|KYgYV&$#yf>YaDt4&?<0 zOYF}3R+x)!{n?Ovm$KLz`(;8;2se2i!+Q+XgEZ=FI)X|BL$yTl&6`h2PLxmPr{0L* z5mWbb2gSAZ<}LQqBIB$pfoOvHfnJ^>-^ny%2EKn(~oaxcy(NpUQ z;K{^M5s{n@1Hwk4qRt{~^q*qOby~;~vpBvA4th6uC$VyrFU=un998TU_1@)#q?DJo z6 zxzw*|bi*Sq0i>}q_Ps1{!j`!_%V|b%QkYk>5OgFJbkp&WD;TpF@lx@N_Q{ih(B;5hmQl+%^Mj$- zGe{B)so_814H)+~xx>B@J}Bvh?YxT5Y$R{nOvm zn=z|{5{_|J)ScQlspAQF20x>k|wsrasLRJl3+k%jkt$ulT>?_37) zTXO`&^qDvn8_J$IiG2!ylU?cCJPk$OK4r7Ec5ozX(GqO=JULWwCHh%G%x21lLnq|d zCx_0P`mwO6OQS@1^i62z{LYVH-RiThG)T)l(R~cAlAUK0;in11qpO9C)9d9Zhr;$b zy<>)ZEN}RpuurAJAR!{S&+o6WVbw`hb=`h6|F14wdZntg!51XEiG{p6C~3PD8q}g; z%5*KK#?B|$>{imM`UH@x!6C#k8qnAl288;MBG=%Xo3C164#N#a9?<^2>f7Ox46o~~~m7-yQhXFqse(}KqV z`NI5@u0v#7B#O4Wyhnb!)O2!iH#|2TBG}~q`(5X^_(#b@{&~0@O<7*M)Q!rgrkyc5 zzm=oPqs*eKRCZOJ zY>l3PCzjSNaP<$6GHVu{yCrx$xjj8zWw{3kEr~nNTvNt_OznRUTmN?#E@TssF);yF z2$frbru}CZE;uxFMxL^tzt};PB>IA2j;3aOP4$+h_(!^ORP4;%>xZoa8o5M(XGz*DjXVVht(}=^_l3!d6u0@TBvx$w z!uOl>NY~5DdTmh2!iHUwr*7zolXXcar^1;f`~3Cg9kD0pZED}YglabU+;r>tMaK8d zD{rvFm+Lu$;oAL-JFY=i5?ovTdd2#HTmDA1r^7eHrDyg&oH%`wa6rUw2kdKXcIArtgt?6goK1mClFh@g_dcroHq-UDd~4 zNym0k%GZtBFt7T-hoSNJ5>fN)<;o2DcUUE5ea+^h7*12_wY0a@;a_^YooPFr2`^~h zuy=>ERF zssez)vC9RgkMqf;)s+|^Y(6?%R#leO%hqCyG4Ej&Ha74K7{P)rf$bz`S-%K1PW?z| z0=)+4F=Nw+=OOkFwZ0O=HuyPs1iLYkp4#~lJ~9;DuIeeyp{zQd*9vS8z)%zhaRp|7 z0IFdW##a@{JR1cu`l3WdaptB)$5Hx{OvkZt#jZa{l9X+U3X)V^!C02%ZOIyz6)Txgm~Zn;$KR1 z$!pw~;k>Rtx9NbcBje8}8B-{fNciHr6nVsKQa$hyo!TsY1x}2n$|;@G9v?xGIVGVm zAvh`kzRia~nAM?gSQe*(6sz;A~ICzulOf)WIqj{)p((d}3+dcIU^i$S!ikbjek7b)ME z>J+5!h++RJY8byN+AZ6Pm*k0a8+)!dO$qXTF`m{^8J4z;`g1!r>`mrzw0to7}~5PD;bZ3+%PZC@JfSo;h{q`KQqy6^;lgy|6POk%sg_ z!>U}8!!gOfXW?We-CQL9s_w%$?sNTC^Zcoh;Wu4lt|ECNv?U*XkvYR>yMPS-z`3St z%w7m+VwUM7oQ3RLRjvGW@k9PCn`nii3h*U`z(d9HepAGh%RNs8i83s2^U)@-=9>=O zI8gWcppVpn^-pv2l;utrwG^tlOKd#Ch=)T4$%H*$*0EJxDUEY0X@DFDwkx0hkJg3Y zPTors@UoNb*TShj&Bvs4w-aW8;S1(5+~i2_ zTdy~IUthhj@hnBwT9TeYB-XtdQA1Gg7{X3To&9(UyZWtCOVhDie{qpvMGrm@slE~~ zT7Nnn&tDumg&NlK4c{5L`h%^T2`Q6x{K38JXq8K1X3WC826xnwWAp;wzOjpsEZc`I zO3TvMV>?cmHX8CuYlIu(LR$ZT4fw1Ik{8t~f^*!wpvE2}atscjJrF?n#aAGm3nE~t zEzfMxb)tP#&G6AuSTyK|V@o^V7($sq(ZJQ52sz51C_I|;_(UFZPAF@$!h&#vVG}|{ zI+3i^+|dWI{FNLoTlMM<07%^y_{-SLb)`r}$cb~L8Rx=KOLRrbt~Kfbo5D4g$nIow1*7Nxo>$TF*6SQ>l&Em)76rqmSOSX4zq(w1KV5=}^rTwo@ESldzS955}Z~ zL^j(O?q!AGvTiHe2?+y`Rs;kI=JA%3{3Rmx7Fit6Y>2%mRymZk`s(5!kt_L6w_`hG z(;8zgc8(*V=wG-?aNamTn)+r=j?GlEf@ev;yAt7n3h`hRH6l8gJJsi6gw>n4;rS;i z8Zv=GoY^1V2A-y7NUIc#;|L+Mh@kB?+0Xb@k(HfAEu5-+q7)o$cIZp>%33Y#a!^_t zhG7O(5*eTunR1(g@QH#7@@7K3L>QF~s8N6SjJ1>=5R4_W8}Feq?w16KNnPpUUl?hI?jJzG20CRuUlR3euhq!|t2UZiFXI{mN zh>w5So)@_OHaU0ksDE7S_hMM$gUw`Zf6yR5GI|%vZjmxBs*h~GJmSLH2@}@NDKFan zmE>RyC}0PofZ2gMunM5B&Q^%;4og9yedhanc(Li($TpEG;BJ{{gNS0jp^z>mm%Sc1 zVm_pEmg$}4|d!$}{W^rcgNpJc)Q94*q-NFWDCQVHy$AYX8oyr@pKx~0Lt zxYZT|4sat+^B~q)2BARCq_`)~;YP&Umx+!y2X$~mv&-%UjrTjU)SWmgE;EjysKXJ* z@dMwK;acdaa<@9RK;iJ)?TY>yP9Q%lUqn8X?Rw}fByCa_UT;~5L0G1=S(jZ#UKHRX zzWoTkEvkV68xbLdlU1(iEUgT))mZ*4Jm)v;0@$sTI+-g6j5HJ-mX8R8dD~-49%GiG zmsi#KiPlIGvCy9>Tiim(P@=iN*dCO;Z6kAOe+9+kJW&qW*|K_#%8wf}x9Rt?)~?~R z?G7xCc-@VLkpI5hb^p&$gQ746Dk5hn$4~EGwEwN%y>hgSQ)d|9Oq(oo}=?xeN2w|pa`s;((g9{nWeeOAI{o(Zz zUNT%J^Ppk)ZPjic!)-hDy^O>r9L%yfglN##m5uaN=~%ZY_DV}m9*Tv?4w#N9*K1v=aj4A{DfCkE0f{uTK zhNPU#oA`eF-1{MW9udE4?Ob`s%xl9D^Gtv~(;W%hS1M<{ql5noe<%WcM~ zFCPFAP=_ShEBJ_?==1+acKwf010pasM}oCzF#rGv(m$v{ZJ;Yf(hS%5htNFEXk%n0 zts=GlgO-67sA5^G=dITiB`$m$cO^8KY~^L8BNkbM72y~=DZ4#?ei_DI`7KpAlzZWJLf1nrp7YxyiX9rd+ z-?k6iG5=g6#&##97HH#e-zLM9W3Ra|uVu$w2>36N<$*K#lk$6gsJ}-+y2!S3ZK}n@6I+>AU zIrnnDm8=`vi&_goe89KL6zHKVL0y!(p{vYno-e7=9qJhNUcNBCKXo`fk?x zPNbCf+e=U+!GjTdd1-ydHmjapzNEJBX#zVyMd*+4D!+sfOfR{({eEVqgj2Qsu4{9ss^$tak4gH2w7r)2Z{CER`Rcz`zic z(Bv|)7FUmA|*1d1@V5^~*`IRG*!r-v9bh$wmT}RH6}TF9eMSw0MaNN~ zNxSu<_}^k#kYcA3qdWUt=ud*1Ln@V z(C4G^i~5IYH1+TNz66#>FNP-Q!Z5{B){+dBJVKA~0l82QUr|7(Yz z#~BDUuiOtBm~XW6N`&Dr>UUTd2d`oIOu9p{Gdpjg$46b?^?*<1lFc3&mCpt=rNF{t z?fV?*L)c>Q8L0d+z$I78a4onazaw}`O~RO8>pRjD4ApSBv6P8F&|c0of^Ls2JDj*F z$+<2K%=xaJ_{isb!HQ~RvruTTUkE_DX0~OwU{5p-0MwmVD?MZ~R^-m&N{=WEsjgnG32sL-<9`=eoWtBW9v}V)jOpp^JU-Y#0?i{4O!k41;3sZ;0Vr6B zZ(Y&AeDmA&Z5<}~6IF0&;|OwbY|AhoShDQcN3CQpFa0ieB{5j(%Tb;RF(O4`d@4;v znTA}bV?Sl0FX`5aH0GNAt-Q!x(*N2ot0{-JgMYg0D=uPLz!T800PC8!Qr*+923$)F!n z;va$y`^TDtv8lPElY{=h-pb0{(AdV&Sl9Sp)`H^sE%$%;_v=^G>((GW{HNt)P+M^g z!E}s`yh7F?yb&N_hIpKP-yUL8!jK?s-9fVlo~{!6P00`$N}!s+TD;-`*C*{!LUroi z?IwuJX{5fiY1#gHMia(-M66_u)6S%kImRKu6BcGP(}i)HXoxKwXGyf~UvBlL=r)i; z?=CT}^F~1e^ms{DwQ;cKq6iniE?ToSaB6Z1)WOl0ra+g2$ND7;QV7PpBcRnsn0>Zr z+YnReSQLC9@Fz7>2_bS;Z(&G31m9I3MElVcL@jK=;1(Do_N5gla3Bi`Y?LNSj}~6W z&to>bMVh&HsHi5aH1Ty_8n0npPX$zyx!@%j(uvjcJ}0M%_Z*eGy=%$dvuy9)dI4*v z&o9f%Yqyd{<&2E8dM;Vj!whuMIxLa^P(ck*Aiv#qXyC%OYe{Jf9a?6=@hS{G%Y|ua z2KTMSbXGI@41-_46CzOZB6)^#pL-xjInDM{>@KdGo_*|Q%sHeL9p()UE+~{${Um)! zBY6Mgm-=6yy?^~y|9AHOkD9%I7KBao?_KgA--G<|y??w|*2Lt;;b{2{4UMgge_YVk z!I8$z(Aipk?4RnSu4gKuZS0oAfP4~EpgM?hB2*HaxgDu_hz-LvnT4lwdkM(6@uBQn zO%wa}zf_o)v+co7!$-G~!lj@|QPqsgZx$X?$*&}&^V9p zNYfqF5giq&R#WH=Yni^4IxGeeP^)R!QeX_2i%QB-y}bTI?e<%EYKtigxpaoC0=Yua z*_H3^tOVV;aB{Ol#2JsL2CpRH3eu#}QaaWJy?EKTJ2Ee%`~362Mj2mX`0L!g+I^{1 z&O6+FseLpE6Y9#H*-irH)fk8me^Y?A2&3t?y|!8hS2q`T zKWz>?Ps~ir%x0e~zAW$y@CsU{sg2l_cJ=(sjYp&mJ1=q*^ zZIO=~o?{NlMD2}Yf6Jh**vrSx&B4w{0W^R&2HTB&!5X#8Gfv9Zi#ms^s0A}Eqs%d% zmwdmCCwAFiS6R~MiNcO_w28_K8dH4^*fis;B*dws4#Qdd)QwWpKYtMo*fD=Wb~RL{ zWYUS;(d}(Yi$pkakha(x8F+zMOOH+FVTuQu!QnPh)W3aLL^~=LheT~xxwOcT6WCF~!UJ5Fx6D@MT-$hi@m(hgf8$iZ66R zAvQXrjMWBt74xCp%cK?`&!Pi-EirETE)UEXVAPe{$<>;(QDAJ_x{opb122AhO-^%mtg8drx_n* zNm*+|@LQ$Y+hf>}Q^?Y6HWJzlyY0 z&z}S6{86W4l(7CtEhEVsS0ak+PyHPEN7#br2g?Q2&Gls|Uy&v5j-GiH&)fo0myv{k z{bn(_B_VX_0;1jr6!8EyDOKUH$fTeR`oOiTpA1mXM1Us@3FL|F{WZpZ_DCab#wKk1 z)?HKPh;@em6Mqcl8TZS7l&w5D631@XP2~!D8kVt_P;tSUk)~f0$mD<|M~pnLoU&yED_Adp4DDdK&AqD zNQ!jZ+}mW8c$t$g5(~vNZjq9GCoySzDH(`T3?MGB{|*NwIkDd$JknWW*NdcE(K$AbcI<@(+7?*8E@~1^8(0lCcPCHOQ(ar7{bE zujurAsGFO`!3~jQC}?wmHVD2(ADP}{#&oncKT?D+GJ~id+yI2@NRCFbOh2T!(x4tL z*k~NFU>#|`-vyM?Eh8fPU=M5p(7q1eGhmB?g{?{*4s?m+sKF5-@rY8+`pO*idHi`T zkVIYSppEKzDF~aXvjJmv= z&FTIVvP{dZHI9C^zPtK`t(F>MOXzkIR8>)vw-;1h-IRE+8iKN1fJLD zJ@VwjLzRoHhfyfxgD>I(4)2b#Z>7$w&iwwYTUEs@Cy!sXuADBPgePt{H>gnIX|ApF z*UR-8DP4UJn^~CV_v86XI}U)W#oa8OYG)ZkL4|>=>eI_+FDt;H4Z%Iz)>#FXad@KOU0Xs;jfq3TID1#4kK0;C%59-K2Q6~bgHE3d(7a z*qI()898~pnWAb0iyAG_!eB>$WbLmnOSeP^bS1pT1)oT{w4_(Rl-lGI)?Z&zE%WK6>J#tmRgwpO4dh~ zfplOlS}aTP-~4SVT-B(d(&XHT;T1IZR{ZN=h^sK31o8V3JIDKs3AENXvz#_3>wH|C zVfN%4cj47ydB2`XknVX~F7Lx@p20)3X_Z6bQV;3G7jIic(SN1jPv1&hOe?nfwRe>c zK4I8QOt8V$ofv3s968-wzpcx$wpG7gz-v2T8Ff#TjWl^pKco;m!_ZoIMpO0uJ!%{7 zigYJx<_Y;mjzM1Enz>Efhn~H9YHohRN18!@DQ@hjNX9S1R<;caPz|gy886I+F?URNC@)yNcR04T*PwqgDDUkBIRRKn?yfR%AU1GoL9XX;~Hed^odT{89CJMQKM1&e%@Px}k@X@qsy;aj&RC$b11YI@49 ztkG=p&AJ_=0C$InXS=OAwf@}ccnbN9ZJ2-JCn$-7JdIzk(ZC9I95<*8iwel8pchnF z+{n0ueJt(@eKfmjeI@LZJe8rp1x+jo>nMKf-LS39tN0Y)-%cSa(+yN-THmY_vBbTq z$)0|~7I|tIP+b6^bo_9F$r13$n)R&UIs84fy!%+#nRU5BOOR*;dq z<}qChwuDZ5*S_rc{3fc4w#l6rFX=F2jb%<&se;{82i>_bQBfB7IN6=%sd4d2^4`q! z;#%9zQ4wLfgV*!EFK1SpL!V>SUoM}VZfi>gzo5OW63k zoD_Xv2;IR|=(Ap-f;3S})<0E8B)XY^xF&DmG6MEyT~nHbJSNVoNo7QLUUUAa4`6vq z-B}GbBuq2I^!x@kT}MSp`b5}tW2Lphx}r&9TjJBA;jM0^xo-WtLJ)_L2{_~lb3+#H za@M;C9Et9X)$t7c!x!j3qTGKVMCSUWZ?G)@fb|yOzaYeaigJzh9o?<<4IONMLfwn5 za}R9xc=8ur*|_~|op@!Zv$G5nCdGOhV{6G|k;IA%`Pcmvq6CHJcqtVVg_Jvs9`De5 z$L|Z`3&u=VcG-G+z}Qyf`1s2!9#c_9Z4)4WJ^%=ipX-k7cOw_o-C=}LJ&vqRz^S); zlJs&)@)wGgHE78k6DC;4t#qcz!VWpsfjS~d!VX>A=>Gm3Ip!chaPPONol6o*AG!EG zz*m-tJEl>=4sXjhKtzIg1&Kq2}4fq{wusWF0d@Ps;EWP?6Kd&ylaTL#QN7kSNIZsfhaztGOe z%r!3v???h$%>0g#OB@-n*&snSiai2gTdIQA(7;XrqJErrVg9dDh$qHgoFs9UQ!sm= zS9d$)V^A;f^LixzI&33$eREM#q#W=y6lfQ}y?27B@p3D(#tw@u1W!zP9b-kaF;s$p z=1nqlEUm%5%23gUMoD2nj+e)si_P1R2EF&slAV>yg@wy!)0{8RTzzsvbdeZ)(tY!E z01Go&Jn3;yf($vF%dD%;K!y!lcsTfJ9>B-GufDbSE*;ucULM%yz=X?%hQKWNkd2bQ zv5u9q-xxgXzn55=}8Xu6ujR1G^`gW+BgLKV-Y;Ayh`FgR^ z*T?YK`eE}{4&tz+GSC5m@^oY4HgW*=-<0ZCPfskJnUnq0Jz6qtPIVu)d=O4zU|t@G zsJ9caugv5&2eKH~ty05vAKj4?=1M5*rkLAFclVT()$<1eK3`3vWOuIV+B#$jlCNnL zD2h8^CwX-r)5_X@RNWOkCdTpQHCA@G6&4Zss01A!WA3*`EXkPQ2@dc)?1oGkFyqvcsGu$GOuyM|v65Er8ID1Cgol}A$%>?o zX{YR&7K8a>YG?SoZf?<5%q&Xjam8U&&+r-t@)HtjXD&Vv9 z+41`_q@iK|ncMfYmeK_aeU>x)L)Md7xI7L&aqfTt)O}m>%kMkeD7-7vLZ%+bA0-0s z*#rE$ZAGh3cki9%>lgyPm1O$V5WcXjCZ3-K@D(avA=xMA(Il{ z5?X-19Lkpq8IsMtqmRb#qGS%%p)z8JD4Md*E`ES|bmCn%-wBL#TXf$|tcM#^e<(`X za;CQYlO$-#o;PeE4?J5)ycN0R6s{31-Pwg#S-aiU$>FIC`=kCxT%ra$^U|B^eDBT~ zWFi?H)uFr`Q!Qhi{3~L++lA;kWb`io>2hp`a>5y_+0$E1T(-q^`bowcqp|O^Rl5HU zA=yi7o2%Dc2{JE+=>oQw?T~}5S{Q69r02u+FyMZ z^5g{l_RNujLr6P8`Y14Zz3ZAM)jXg#@UvduJgg5>{Pt(ya(jv!M>pl@1(SFfH~fsG z=U$c`0M&qAsg{KUhX6+b*za3$^uo2PE5e(p4MPMpQAtT-pPn|9Ui=zjdoSz?`QbIc zz4|>g1GO&{-loNE2>7qZ_qxmwZ>?^<{D*hROf(z>hxkMCHiK%NWmGHW)!h~W+WE)p zi@h3xv{I(uZkNk_Aa8(5qBbHG4ULUXZXb^LrXx?7iDsW|xTwHd-<-lXTrZBC!cq9( zl3p?DVlLrmsDC$kHVO;|4tZlzzCS2l?mMP<@vXnwRy2^(WiVhvLP9}~eKpChva<1V zTmqMEsm{-jE57UNIEqnj+Ze#cu_mssx;}3hlY2C~*mQOA7oPiz;J2>vEBY-BKOT~T zwq(HQ21Lh5p9hkaxoa#nmEm2)<#D3eVL3x;`QgXnb1CrpXV`3?-&dF zI6nm(XtcQp`Qu?}{_OOw`hj;eXKi`9b8>*vf)NXFPYDiZ`MYcL3XyyCwu}NiBPhQpxRpip>{2|d~da(I@e4xSXu$d;QD;E#Gw&H8-Ybmk zq~hC#3UhV2qu#_O z8#T0-pzP1dN5>v`oHM(89KU(YXlhzo8Bndbok*z>sZj-|4;P+WY{9hAt|AjC*uu-X zitpSrDVMb|fo8rbVAtbVo1;q2eYmE+yn6fsDu<%EX(jth!Y&3)zF-rU=>u;x z(RcffRtZ~6xAV4KLJA!one7e8A*k={@nU_qaS&0?_hsfvzOQ~mTp6FB@}jyr(^!Xb zRih82PbE`!tBaTX#zsTxyrN(WuM)Y5N9{d|N~;=x|H5mDE!hEHB0&!13#l6bA%6X~W8c|`S1O#T?gYvY6 zdyx~y0cM=7vF2y2e9#|%Zc=S7JTlh{s`hJ5gsjnxfhu_m|N81N=4s2{neUjDm*?;^CdH83cf36ki7PlK_P0)>ML#U6e=j1!=uc>0ic=ehXukt2pH= z&X-w6TTt3@uOn$(PnZUAzAT7-#?p#@1KU6Z%TG<>90E&|! z(AfeZU>MM>fV16{?5KCOqzKErY;nzz^7~OT<2bXWnC~V2;@-NY)!q&DC+d}X6R zCa_NL*Fipwi~un44F1Xb`@$QjM_Rh|&Z)1nze5lM7sLR0gD*mnv+6SrXhYWbxPq(! z{8{7HA&JQscM`7{nxCh`0|l0|m}t$}QGpLGi`s~kW^!~Hr=fk(+$pqEQN6}MD7TQdpDKCVCACN(tA0Dz3VFi62h59kj zP(<42P-R@9!-EUwn(tH_`JJ}=I(|owmq}AFRNmxtjU=0i(#Yct)IQv_CMp`sT{*S2 z8D!Pi{}A*1?CIGW7Z2`kb{@U)ys7sWHaH7`soX17Dql%l{wUgrVI1VRXwA5k)IvZg z5n~v=Vd4p%JWU93Q80JfF}CZnR1iG3wK4YMy)xFJZP~VHwxLdGBoM#C8_0u_1>X~K zbI{w*w!n;lQ-!2FPf!_0Hf||g12# zeSY9RS9ywsCy>~qy_I8V&du_G&Cp8V2Xgl3d+3no1%)d0t3mJRGyn5h*`opm_4nHkc;0Z-B$ z;B>##MtM(%1=NGjUXmX4vLs9UBWc-LW8U7{RN^c2>*hyRK%Cl}0e}F7Z7`Q#laEN0 z6o!sK7}4o=C3(5$W{l++;p-O_Br^wBAm=plxIVQZzWBc9`qdv%cLhWSkzZlu%u20% zoR*f?)seprBJG_#_$H02L`gsB_t-MxIZYIo?68IgQy2a88t03HE%o2IEkxvTIxKNug52#c)#)pXn ziQ)T6DMsC1L2};kBK<4zoTL^MyM=Zltd=Pa6CK9hEJ`9$tTii};o+DRM0tO!nI#dD zF?=QVkX3l|nShnm2CGlew?;{NqjNlk7%ZlXw!@-I@|`|$cM&Gni`U5whVz0&1Fftd zT#Rp#U**eq8|+!7DmEJ9BL39;E~E5&R=VfRFF{?`tVG@BVA;n z#~@FZ++wN*MZ(a=ov}i`z@Bt7`lepbO!JkAANth#NO;!NrO5}LjZE4g!`g#x_S7wW z*{}oAD#|v1AQ%TI8=zZ*2>@GI_~!d?P6udO5TJ5{e^2G>|7Q8E=m7ko5;ZT;2S6Hx zbgRW1>LBn=?WU`dQezAct9Yr0LAGaZ$>1`ub*c4jve3jc-S|;WGuhK7$G-4UEC_hj@+?6 zCg#=#b%j-kfa)f<2&>W_I$7|bP}OOssj(%n*-xrD&qMl#^C(b=vCf;|I6mRa%C#PS zS02@N^_g!zF>s@Za~La1-tYM`dly|V?q0+&@=|noCGt!O@1*+sSes=6I>{AOmt)=t zNL$M|=2R2-#Gi!)Qw0FjTQzu&9rl@N-OP@AZEEV#b&)HaYhVYa&-I)}Q;Lyz&S^wv z4igG;08)8I+tfxfQiTDBwV28bad1MG-=d`K*ky_k1Y;cHOB}AK>=x!yI)eaMR8rob zn1WaD<#^eaS$V#f`o^|z90#eC6~}SdtG%7s80|{Ivs0eZ|KhAcRzj2Ud8e9u+@45p z&t1~1WtEbJ%oT+R?T-~20t-&?5IkV0PYUDT9(%l;x(Oks{_I&?%)I@5e`d@u7_+$0 zSvQ2Ga+Mya_vHSD4zPU+xdvdL1$39z2a< z7CgFf|B@fk1=rXI{%^%YU55;wAgdh8J#X)= zE}JH=&ff#4{5`Bu;A3J=!CUA$G=*Lt#y3D;KsxSAWo%4PG5J6&1X5{S z;z*p%SC5FkZZ609P-LOEdoQ8ZJc1da8&xVHaOiF9vkdI7gEne%DN;7|=czNhVvTpc zr)C42cW3Ex%yy-VP?G6&D{{`5M4ACKCh7~RLaD2fjDnOlYAch9Lc#$9R!vcY_xO?f z7>z45jZRPqbzC|{1^6l}Nx^}`)Do^rD`!tKY^~woE1y;>GN#5sU9I5@iE}{%ZoM}A zoqf0koyAmwd!6Da^`dp<0VjB>OcCqNgTKrUZ?((T(oZ9!>$x_EcykRy{EEtSK?zzg zGbWv*up~m%flhGG)t${*GjLw0q+t*ZP|%%0fidxEkfuH*IN^BcQXINsc(% z)r%$$x>uJxPrJnMW;(-2*s+GvoVF4QvCZ*j$S^-2v`KGWIcN>w*pf?wrV!0$DnbI) z&9G1%Tw=f@lhIM}rBONtByzaN4c|6uhYF|2&$ru}q+)}(6blv+r6|s(C-{Xm(V=V+ zWX9KTgBzWeN~$8ACgbT}ficZF?Y9L{GL5TV4$zv(uw)Ih0YX$Im7$2=PD~bu&#i`h zs~qedsJ{q3X4c;&7v?6ab2sIlezNJD6ja? zxy3qfugRu%jR@pof;P@rH0U06FC`iU9RrRJI{0*MyjmE3CE1!Zd|wkS+m!n4-{xSjnlLU z^_Ny<7!vp16Nx(2FBa{WK{&;zIgvHS_A9+CL13N<89MdoUwLQ3 zbCY18T9wenizPy6Z}YO+ocF`R2@Bj4;#`=`b=(FN49(;;Z>zmp@n}d~D}P$z2{k3aa~Wawi1U zyLr~n09gNdCMWFV7nCIn(uN^Pu%N6HsE*%Hx7)eJeVWzpF8bcfv2$ZY!v}`&a88## ziLQj`pA9w%-KvcC{hK$;ySo*6-yk;7Er(=+Y$1m9(|PDVz!~b~_ifE?e0e|5q@(!Z zoRB*rHiQufq_6v`vS=^54wFds8e{~CQIk7q(_n{LNT{Wil`K+FT&1t-Y=LLoiA=De5&hRh4rQexHkRE&6gOqfDXAJgr zW@R@XY)~cWH`~mpYde>^F3&4leIov4!CVhbDrJ}CU6Xf(omjT^+WOaY|%<5dIc6$N3$_B^}3-PC5W+CggVPDarTK z8o&cbKWbcL0Xs$Up(<=FkP$BtHW*W7uaS`Gp1&t|uRUD*&^{7-iQR(`YUprG94fIK zxwE)|G=BbqfnO0{xh4UE_buV? z7R6uGDcHgj=?cNYf|WnSN3(q8%70mzfk~Q&GJUr8;*fr+zldgPAMTeVLm%|lm!!}t z{NBJ4gA@W6LtRt`%OD-KX`!Kyl!ZoxA%cF%PnsHMny6OJHwkUwZV=Z);4Z~QP*KIM z#ZVZOfTE|2uhq~;?l9^V+NcV3pEVak8CEr4&IT5w^iD&&-{EQdG9>=Clv ztXvKBpq$mN6hc~=s=^@GVj$rD>$*Wa)9z>su|98-#aXg=jQeGTvUGPb%GZD)uU%_Q zD!JTaf{VYAEBlMit_uB}Hq=+0xZ<3L0^shHQPgxpyAl(=`mhl>F zKY+>ot@bqfk9ctL6pg}Ii>MWeO8+Af_7?P-hI`3AzDX@M9eI20iZE-*wod`^r?0o? zn{8Ee6ehG%XxuTW&TdX+nq)%a_12ubr@BZW6%+Cow6PwC)q7(HGzy#b1k6tHl;t?D z?PZ|H!ds<^QnnMzthxw6K;gYgnt6a$?*)t#2G0;4jF1{2bTjLIDjL|l0NMJi(=9ZA z#j2e(gVMrO&{-|w_f2;QKOj_$7mU#fwr)oN$P<}xK;-?0w@P`#`*HrJh-%tm5Eq;^ z=8DWH%^v&`!v|1V(46Zyy%df#P_$WciYi+bOuxNU5V)WCy_vuhjsAx!mwvC*nj0zc zT@&mzOlK4$`TiZdZejfqJ({qhlP}ihelhfvN2~F&W0@`10pwJ_Bi zu)tG-1qEF5o-p&{)6t2b2f@H<3TS)1CxK0zQAk&c)mkn4Gfzeg;tANpFAwz7G16Zcti+72JIAUI(t!BC&Sl)WsS_lVKE4QAnsk6IuD^3=NNFD3cwh_=!kCYQqkrESra*bOio<;2u*ZE(Lv{yFpVLYw8D?e@~Ajc za5J!_xFx$5m5Ob5b)FbBXYsk^*;uRbRu1siLvmrM z?6@LFkVn_HGM9*?QfB{Hu7DqVhYp}HU%S+vS$6v%iTfZ?BJ@OtAqi)VmyK%yxN}$6 zGF2a?d0C$Jg?S>RFGIDR+JBOh+tu3mQ2FNe7fcX%EnPG*A ziiRNrW^O1J<+!J=P3Th_7bXL?9WaRS>8MWWroT3t$jLg+qH5DpMT$hDg zX$rA^(b+l3bj(gCP{tIQN!5#OwMtL`eFsY%1EyB@q@I624p^q74a9%ik=#a>i3r>A zq`&PYeost*C68DW2rMQw<{E`B2C*IufBX*?SFmQb02EOV8fLYHb1R16p{+V+@H|cf zLh-oUy&H4?;Nl+;rCSG;2ip9jdt#GnJV1P@V6)%jcW>1_{?@}moH4dVx%=mtoOj-U z(c5|}UeE;}5qu#ewII=+zgeB>*(Wz`1BH1o<3 z<-o8G*HwNQ=h89YJTcfBzFyRq9j%G5`=T;6 zh7`|Ki$wrvPX&56isip2!3}*#PVg#5#cV5~ieLPe9wESoxOmU&yhs;MiYvhF|`r?)DUQ@pI_u*zWWu;_2E0EZ^ii!92A zAv-GW$nTbJmaN`o!7dqa#89%o7mn%)GKr(}>d(2fbsQZZ!+P{v#o!J7%5$bcsRnWc zjPi%~;X&{E;Yi!+QnUo}9XA6e=q8Qw3Jc+WQ{RWOm%Tb_`|^N5eZD4OUXekiuw$2# z`zfE#zaDoJ|HS6B+O6PUi|-;((8f)jnywFQmm?T!l~-U7)f}4_`GNVwX8|TH8kB+f zECcWJLHf-~Sg|fPZ z<2p<-662bShAE9Fjg}vY0Q8*Mq|{4_XWojcT|kkG1XIavNJG}NHFfkYO4L<3?qO3m zv?`rc3gdTBsOhXP4G+dsCV}i7@5SMb_85#a9RNFzGCiYWs^8?8SA%wIE2y4~ah$@0 zHMfIct6nL=t-{C%{!ES~cOtCH;R(e$?40B8_v#iZ6KPL!K8E$v{g}N)gmLTZ>=N$O z0R4?3-N%$zyWX(@n><2SQg;FZ)8yh&^9#~p;5Yx79O=h_T)r) z5mx=-w4-+Aoan3OIJ?nJ1?WgzY&~B!0xQ5mi~F{$(Ax>0!N1y3sU)mCO6xTCOg;Mv zg&+Sh&o_<57ikwy5imm5A!?Z?kFD04o0D%&AJ?Z*xPZw+4g(G>x#OW;?T*Q}q4wJh zt{o?Nmu#r;LG87 zjgA?^KAJa}i0^wbPhhWU&OAIaKL$z1DSocot^|{acb@Io z{Zun$iPeVHQD?!VHC0s2m2yS&-;TZ!y+T*DxxQyS(lqE8Kcqi3o%4CDG@)kY)VT)4 zx=w=X)!z6b9uDK-arGc?1uZtVE!J4=8*+m2Z8Mht`5fH*Md!JKH68$qermq>M@l&Z zew}v%l_fVSd#56c*X>jUUz$gUDqtx`pR}V#8jK*{*|yDa6`?ALVwDfB_=>~GdKL?l z!!K0rgXj}`mc+sI zT2++NI-?dr*Zgt;!+-5ABoR9PsO5r|W?D0fg&daMopAGlpw>3pDL+Nn@`6U$UA1i& z`a@T*CDg?K-%Z#)-9l;kd^ed#buY@V_h}P*etU;XQEH6fH)>Q-xJ1L@`}o$_hM0x; zFvvaswj+6v)5dSMdc+Y4lWwd(Rr34d(f>v6a^R=WAWZ>&mCmMclX|A%a5$ zTEKzA7~Li>34_tT;YE&xg`UpfmdyJv;r8e&8nnn^moB!(eTT99uR;7ag9uxz1;)^? zqL`|PZ-kXCKE!&SG}slD{t^Gmb=t6&3!P|y=cB$Qnt|WmA0S-YfUXvf35M&FRvpUp zlRN|kdqpa#Mw@+87}B-VI_I|Lp` z*Kfx2B*$+Lwt3_w1$y(8Fy)%>H1zor!ij=yxP`z`T57NfAEvqn8l@ZVu?V6Kzjb!& zmN|X|^-f$>N$WDIM!e_ZzKP9qX*EXW6+teA7_*@j< zz9_PER?>9)+^7+#&0eiLhVCvR4)8@vJ<@5@_^2vtop#V-(&!*D7e)P^N;r-=jR{Fx zmHsfb%*S?{I@G#tN7caJyvMFZoJ$2}zKTfiL#6`R{}JJfUh zuhF`=4}fp5yhry6`(o$!%_sNYuRpY-cdb7jeg3YYtUrS<<^3i)f&U)I?nYZ{@4GK> z!YvO8y)3VvG^^Iz$ITtzoYP*SP&xLovm=pBL$kK5acANQg#LbxXdxX;cu!}|WwJU~ z*|8T(Ph923qHphcsl=)smf@m}r_Sggm(4kKCK!LaI7`r`lmwd&g7O?ZcdX6dVjJ^? z_kMGogIR^Q9D|#-TP>vUd+euZ&pgKr^4NQ)c1yq6=AveAVGbp6O{ zK=T&BwViNP+LmP&-bPD~j`tB8({?5n7XN0^ zrA5V-A$6~&=0(ow^nLuJEqbrC4>}!Oi$Ug0{ z5_Py7`^l>E*&7aXd;pP=RRHvO%WCkWCUbKYOK89+%KbdPM86ce?$8&QDsZeLkHQ`X zpgYw=PONdp-ed^LW)(GyA6xMA)y;ejl(^N+!CJF1rqKwXbUxLS_|=5VLFIIx+rF>r zyMf+!zM zv)aUptkTGM7(kv3sjm$&YPVf;^D$u2y$aa8d7yBZVI?t|KSjE%qQCMbK zKE%keR^%15AP}zLxr>Zmsgvb~osN1Tbvfwm?Hs?~?e%xJKh0|fVBXz6+v^|i@Avl3 zK!B8wYSm*~G?#*fYp>}~e%kOVo8`d|!TQUU6=)JAjp=22NPMZ1xWhV+>#%yY$79T+M}v`#TA9c1H+MC>>yRcum;nHp+w zj-5R5RnTdEJI|wg88%Dsm?82NF7+IuyQ!1A6^{tQ@M*~(aT`rCqC7oGB|cEpcR~@| zLOeNHO{e+*13K~YmBzZxNIdW6fYPK69`L~;nQ@K!31sS5rv-KAgy@fCiZ9dUoeudA z=eQtIfz{2=pFP7FiJpbBPR}OhajV|5vQB;^QT0`L9p4x2PRAndM+G_L*q8`I^bL_d zPO`42YVkUoj*@U4ozF>P5jB`el(t)~BlR@gvyLw`$`Jzf7o?al3ha!}C~lMN;%+eW z>A2^45eU_J?q&(5*0#{H>lA%m6`zNXRO>kiHRFBl*|ohf_F35_V56noTfMf^XeL8o zGBeSnmPXSeKFfp;@hPL4dwedo8;?FjC&Q!9uJg$46FETpw@)BwDDUyR&+Ham(9-4> zEONDj9FdJnTpk+@3j8@ZdH~ZvhYy92SXNl0Uz1^Z)!G!+BPbS9iWSx9U7TEAl?E6m zS#TdEh`PA)(SrEoKz#CrM$%V+x^1Ta5TcQ}$-s+CmtfD|XK{Wn&J|Eh7+%#9_PmZO zJlw6VYE;}=(|DcXO#L2d6@blm_^f67q(Oxz8;y!s-AILnb!&wO1dQnEBlJ+M0%@Gb}H(b_9u%joF#3~fE~QEYYP((GISmS-h&^-OPL z$W7FbFpRJW0-@*RB^;?0(pAD-#gEJAA;FCTK9>dkE0#ehG@>{)MC(e%(}6n=%TkM zvc1AXHx?gHOSGeqe7CQ7dfkos#__#;H+-x0+n4rlx8aYS-yT|aef?q>_TnfXT!Fp- zt zVvr}(GIPVkt2XaM1wc;G)YQoKfnUPj!vyfQIbr_r8OkiB{;eloG?tDT9{ zFlwOR6)kpt*N9ecfV$T4#a}H$v^@acv38B((+IblC|`0i_)HVh3Yk1eI{5kh@#)^q zc5lxdZ`H0~OX3KN*@di#TEHTyqL5oZK^K%b6?Gcd()A_kaq&8y&&mZ7)*ndZ>GD@E-YA3TuR13AH4_zy!e%!u zK%$7=PZ$MO^b!Z0#fQ?w8;pg$9E~viE`|H%ShD*`oDTID=SCqV;Z_!qoww*qdlM4? zj;H8KLy9uP$OQcXX=8RV7@34ypMA3oupSieF%(TQaF#X!z+EZh=o=^-W`~8@2|WS% zBG-?(YWOg4oEAkq-imq5I{>4he5jz{xPyQ}9~>P}8xD$V)EsTP1NHwx-9T%p0k#1~{wyj#W(9fy{Cukqb%)yW~f!&_@CP(FOfvfqoL8pL9^1ZOQmDJdLq+ zzrvK=VFlBeYye@dD#K}L^kUV29lcN$&_zyHgT|T{DX^q1_WKw2hC>)F|JKwkq;Y_a z0OzZl-ObP8jpjRxf0kv*UF8Rq=`QT(CmvRwX~92<+NvbC3~@2pCnOz?%=c{>Wh-y5 zqH=3>Wo=z+DvsDySxz^Xm!oMCrpZMfXQNRvh{G(uT!sl!EGNTsIgdxn6zOaVJ3Ub6 z`m6obVm6_F$|$FQaV+r%jyZ{_5Fd4RWh~L8-dI4Y8loornxjW8x~BEYdr%>t7NWx& z8Cxsce7P2D52*UZZqzP*Ew;9ui`+~nICslT$v8>q$CF&0?M~M*&%1-}4S#K3|0X;& z&!Wuny#H;|;&%?!Fccl97xB6A#XZmIQq02c=j=miTGY1EE*siVPagvyMl>P{hR@HaapBPT1LWb2e-j%^>C zwl^92jveg@$OXDpl^sWO8t_VBngpqsxR505i;jsqkzKgRWh?7cqUv7ppbvJhAVktE zu10a~_3G{;6u?`rYPY(wvQnYH@~d$s5LKoOck{25QcJ~aqr7&uEMzj*`}C^?%6gc1 z{dK$7-+8xvy1jF@cWS{&qxP+p&W(bMD|0+7h9F?SIxd(u1hHS%i~mK#&^=B5KYd}X zriYxvRt&l(@A}6@y5S1H^J^l%o*v-f*R3Jn@1+WHr3)R5pZKDLhi4!|Txqx8ny7W4 zorlOMQ;pWr;!XVfznbx6(tkePK6!VrHxmJ@C$(M%yToEgNN=4_*9FgNG_MLP~2_IQ}bOLgxQbANt(c3p;c{YT8`I+XVWt^ zwD}$dJ6(Lo=L%k-&53*J^zR~@!be@dXpvRu$(unH-w1S-5##zIRzsjxoK8I{bkd@c zlc=I*b(lJ?PQH8GnoO23EM0+kaGsQdtwMM<1*{XmH~(;!{aTNsf5a`yP*}DX@H^YB zKpB}<)^V=2&^FMip`AzUyla~gX?wNqo|J2s&&+pASz*+djQMx8P3g}FtxM(BErn*B z?kyyV(_=K~@?FOQ!~+M>Zwk%8D^rUb+3MEN;eDu;`jorSanP+g)_b0N6%`nYRUVAC z0G;kYfPcn$X6Wd$)yT}l`Ie%Cy;#;Dc$`xqAI?F`KG zJ`q)R%&_Ji2Q4cO^zwwK9KMNagB{@)HP_l4q`SUS{~~#T+v!N4+XEN zPl-8F?ai95G~*_`0Rcy%plX8Wfqrzh&=c5(a;^*=)*INB)Evrif%HUy;2hTy^X%C( zKK}%TM8(TTC6^0|NNtwGNHQ_cz)wL`z>1NYse5UfOs!-1GyRoZs9XK^TZGmZu?U$! zcg{hcX)(HYPVYEh6QTJ{GKd4`d}WDtGueLE-TzoCBz*QnzTYFLf*i) z-Qdd3*B(MR$?)bL2u95rP3rU&b6Mqu<~wR>bcbnni}L#6i>_RA>r)krp5=|lxY;aw zeM?lAiSe)8f;oLFx9U)$T3@;CnJFt{k~N+FD~*zW4;D16nsXj{7ffl`G?^>E!mwG- zlbru_p5*e1C+V}93H{d3xlCv%HlT&l-KlS8{`>Zt%~Tt5-Bu#c85>lZ+M>u{BC=jx z5Iv>#O`Gg8Pc>cY<~Hq>QF_6J#-~4<&^3j}JT5D5T0O$}ga#vgTY^hcy8e396c%px zs*dX>BV1(I$>szLd7j~nm2;2r6xN~(vW`Y?Da{4D=+gw9i+iruiGJ3D1Bo@pchl;9 zIW9C##xc^k)tXK&by<#Ogd-CfJq-TEOs`bxI$%dofjDnDIylF~-P7$~wMsP+_I>L;I667q>-ALCxEtIh zUq$rvRKN79hZlwmw!N8^vmS4__wg!8na@07s;BqmRW?}&6JtPJ6y`u;(kMOyo?wdA zuYYigv1co)jjw-T%J-8zzDV++eDb+1e+Wz?q@P%eofzL9A0MK}CjPs({T^dbVIYY! zn9StJ3IF!awvSF)54D^<6g6~%AAY#LrD@y1=pJZ`?}r!S8WVzPwGOh$#B=S@Jbt}! zc5&n{Az$qtXTumT`2FxhMm9*DRFQJtDxy(LUWKL$8zZU?w=Y6YQ2>k_0M5r`)}U8K zM54IpFour6ongN(RepqFJfEFTGh5)&UbQv8iw83REq+%H_P?iegC`mnGJa|{9w(*k zK#u;)6pc^>UF_e2S~|rzhD}}z*m_ZCTdQeqh*#W__vPv)7hvhvK=*5jH|^lHyu^_; z^KiR&)<4*7$zo2GE82!9yDj?BXjHu%pi0&9PiPdXKXz)ikRT$2F(k@qcFWKl#8J!n z4{Ukm6o4=%pJ*}d8D7?{-hUkS50BsfjB^tdsKX4F^{$!y%l7G~0|mk70yfP4;qmsF zfY`^lMmB&H2MqEy%kV0k4TSXdQCbKvl#yN-DNWGx2xO=Oql8Qa1M2yBDgfE3ntFq( zLw9E@X(~EgHeyA1uc6##cbQ{C-GlL^$!vRW+fWUH2VU1)gCz0g;vK4!VGSdt49{C*hRVGA!>0= zBnrL&UsFHgt*ySQ`0>@LJs0wtxk~Q7^{kS>)g(U&|5?Z+ARYKY-|hzrxxGG)eGlFiXRT|*&IwpnVusa4Zr_IU1b#+r}3z1?_6s) zsdb1H+vm62y*+1xfv%Es-Z}vVPHvsZ|MpJzOl3TVrf4jMsQMX3WlXT*`!Wsz**~%D zzLjF2BnARFuU7O=Ko3s}n0Qp)am2$-2Nh2W3WZd_xW_}UN8Tuu0Jc!N(A55cX2hg4 z^Fb4j7lK*ZIwrGg3fb_~g8mVprR;q2&-sGcpWbmdD!#U}|2Au zV7@u~ra^cW6{iYX88S3xt6Ko8oxZNA$!+_2N#`7DOoD+;_m0fTSSG^}8WXBz5gGe0}$cLDWsnHY^a4ahsq*>vwg~pt-oBDt&s70VL%>vZm!j?p76}d`U zy6}y|yZf%-GhKy30qWTGh#W)Bs*r?QCBq91>cTQ9iMncuMT2BQrc1A3Nh2~%#tB;U zTfyPM(ZN|zNot&CQ}$xOG8WtZPUls>r&S#Me+N-Ide-_feP})F!frvI30w zrwUOqO_Q=skdC9gr@G$W;oi;})+v4l`v<4Jv)~Jpi+8FYJf}*(YjJdpx0n3ggU;wk z8^#$d(B!5nwh!2Uuj1aAo$s@<;h$xgLynw6>!LjF!QO{V2w2!3E=M!Z2{KXG_(sZ8 zjR?4*YFVg?N0TcY#BNLnF($F=>?V;1$tU{8q((mQrR2TbIk>7&jCO@~i;lHO^v=%p16l6NMy67+5pqVR5<5mca-1(LK!(x zq;>TC2C3H&{X+CJHmNcb9HGAYeQ%Z>ZJ)g}4HL=WJ68!C*@GSZ)EnKv4P!`u7#G)N zHVwA47m*wiToq20B6}BqX@kR6>2OB5#~7XYlA;kjPKbBRaXo-#9pO$koQU6sD7eChO&5xrA!+;|m+eHwpFubvY8!(Qru7EaOR>7wz~4 zg)ScBP0Bn=*&tO#r&WNa#{}TmCL8Uc$cI|?2-DkHS!R>20eY0pir9gqR1VS8Hs->r~b<4M&{Jr z9ZZV;Wu6Q*95qpaaLNpmoA4~l((42Re4;a^CL6S^ z@h^6^nnPrpbu~@IlT56LnoJgr%Xc8_5b%BlS#n%0%FG$pM3@fQu4bkf^Mxt%8+!Dy zZY%ychtJP8W;N$3E-?My1hSMR98>C!sjmn&vnM^^Ra-TD{!+NQr!+^==*(Y$NhZ`I zQg>NNh+|M_v4SPiixCzDl_DkqG`sb&MM{&(syd)bJ8#L$E*vDX$_b~iZ3P@1h40g& z@O|>)`y}w;V^C;YB*z2|NIVinFziy{gHp~G1V?=k+Na?K#u_iwGfie!@~)ppUG_XJ zptDJK6{mnDd`n)n9|=Z+G#DbPVPn?8IKz`+c5C}yDpQhxu0&`WTXC!8d9`s!%{h!a z*bxF$(#h&s&>IB-X>JA51Eq`q{l;UTfsc83ba z#*l*Y`zX`r}h6 zg*ymJUXCb?*UWx&5D&B2MH(-LU)@i%MzyPV5TH?gkD2eX zQ;EGvb=j0LE|=5dt$lwt<~8SGNw0s2r_fg( z)$JsDp%n9KFPr7C;iI*!sSXy{9E%TA;Qv=llv<|#I(zE^qmIvEt;TU*fMAyZy9rMH z#!&J`$S<+Xz0>y>P7&320vmh~1&hh2QA>+`+h+u=zo*xZ6gQP#X)$R<-<6aQ2$P8`@j(t3r$=V=hSzgd9uUazYC@Z z&aA@KEEwhzjXvfpL%Iu|>)9zqBDTtGt9n&I`c?8BoT_r+53cIheZe*HLLQY+T$dd7 zQY3Uo0gL-j{3MwKBi3#q`REnM9BClt<=Ls-1U9098MQfDnukarv0vijD z)j)VkFHo|ksJ3(TnvEX?~y^ z@n$TAYLGTY3kqh5m7m&^DA5YNRtCq zjM5JhTq9SZ@X~BnFqd#u!941#J>vrFiQI9DRYetb78es~^BSXVV;d>09;BI1sipfe z#tMN=uZ6miURSMdq;XB;7{3hwq(Rn(@}LfS~LLOPF9v?}-Ky(hsqaT}l_ z$^E1X+GLs-8>y5S=Q06pRTf|Xf)nFTznw9!Fu9b`u4s12R~KXS2KKT7p_oVV+~|s| z5Q_kdgoBFM1Xp+(ds4o2FlVe6TLN_P@0a|G3VolzS9fmpH|ZT?g&Ecxz)!M*0;4%D zKGKLYEgUNbYy3_%F3AhjR#??IJ2+icmBpt;_z@o}3qR3+MX>3q3^UygPL6xMga6#~ zn-1L(bmC;&b}zA=(N53&?!?*{DNsL~>LaC&-F~{WIpVH{86HibkFvmi6t(8TY-7AB z1Yq-C;r_AR`DyX){Io!K%2UUm?(Ocpe`0q!1o|j@T6cb$+nr@}(Vrj9U2ZZj4pcn+ zpHxYA!>Xg4vu$OJb9Em;S)lLpLPR2DMI(OsNL2XdQCP5Rbt8e(Id2>^3Bze2kh=B} zX&0F~kG4HoXes2#C}bn8z2=9P?g^m&lw?}y51JNa<+M?8Pp|=WYWv}8u4!ac7MQNG zJoy71r&EfG1VbeDdd`zh%Ilr2HI~^C&$Xx8f{lMNMvSa_4QZ9IOS; zxh7iQF~OaF2z#d^m2{gZ@nXl7j*=H=KTZU`ukAK1a4gV&nM}ID-PTGsxZirw6@BV^ z2J6lvJCJzB0Y86~Ke@F(YR#$fj!$lRCgSZYyA7zIc2cP%Wn(d=wAmFTm2 zijJ7&$KRo&p!$|hlsGK?JCEN5QSpyHfTz(g$^PD5l_L@V=smS_6%Vfe-aR!yBEGh# z=%V4*_Y|R-rw@@7d(_}j37ez}&0_|yrhoGUbiT+9U+giT<%!l=s-UAq8W@|^NP$t~ zF!_#h@zwVnqFcJ+;Bh_RYYvK+>2cA&Gb>ZPp0DKO%A)l(jBHx5s$M#vaL0e=ZlajW zPw%H${#7y&iqD%)cr~VJphD`#52uG*9>8rXB!;>{QW$LCP&d1}tz!ke}K@6e7sB7evi=XUVCSWp_3ys;CHlLjY#ea8VkS@A6H-dfPyuhgz6s z#ny_+_}VRP$mKiQ9@e)AAW({w+{FEE!IP};m32cB#gTJrp$#uTp0b^$2Yi#L77-cZ zNQ(C>LB}t27`;%1iL*1c!LQ_-c;iC>Ro4}(H}3mNhS-aR&+KwWI1^lMAZg!U*^w1VblxCM^ zaEspF$@b~?*}?I9XzdG1Iy&CnJG261%MLK3IfCx0`OMNyL8Mc6oYnhjZeexJ(7~Yk zvk3=xv{P1gc~emui<41jX`cINTV-)d-`0mLlX+YCw6JN z4U2c>yu~p?!+|%~Y7k_z>3kY~MzA^}#6`q;!^cow3}qhsI}$TsZx`2fA(ftz1g@!_ z4*l_&9ldD%iw^c14sqp;%fC7DSKIe`gLKYSi=*#y1z%b8YTSq*LIe~k(99BU>2$;U z!O2Uryq`_@w4vUCo1y8pa?5(*%By0Frq*CA6fy{Qc#b3nG8sI=LtXQDQveb)-iUXA z&DUh{&s9t2V|BR*|4_cnXvXLjLW&>K*I^};++6+wWgeE96N_cld&}H=;oUfGEx^J? z#8Uk8u`L&Ej`3`YX2#yKJ3-2`$D#QIR>zpIzJ_jUwP8# zQqJp^X_YaSE)ef{QjTxyG+SW)F+9GW;2rn3caHl9d1U+_{muaEbd7A!AY7h*JJ%{I zB>Ig-R~uCtqz1%wyE-GrBGTdrHP`}m6>^U3&_NlWnP#`lgS>8%JF0ATpID#Nte!f} zv&cr5RT<7=IjXg ziJ8Js@Wp#hEq;MOZ#1GHHIVEM>JDLxj5IaMHfz}o@mXozA5ITj`jfOea^4<$kT7Aa zrhHa=yMmbwU&`TCShT5AgI-!ZY(2LnPfltYQqiFRO(H6;vBA8do%z!6@r2?}%&pS^ zcHjClo2d5o-g?EW)AMQ+V5*H*rfZn&H3}O#7a3Zw)bKN#alyJ#Dx-@U^7&!yc@;90 zBL3F!b^CU`Vb4nh)`A0oa1z4Dzai)5>YZ|r4{ysSA1drwRvK`pkYK;hauvs=Ig@*o zWKU!f*H|#FD=sua;p{53HP(6u-!d5#!9KT`c~+LSx?Y4M&5AKh7dg(^ave!3=> z59^VKg_aMqNQGWAXmg8Y7=n%?GwC2x8V>EFOu0OXHGznz?t$xQXkwt%jYKapg&&h( z7yPGYda?D5&@kWl5h(P8@g;%G!BEgpTWS%S~7cV=4H6tt&8C4Y(UMWm+tooqaYRi^&vW;%74 z9nw$}m`<(qVleg}!4O6nvQVo^Pqzj@hIBJ*n6o7OIn6GjbbBy}Qw*k_<)Ao>lFM0c zncC&5;KKnslvx^oI53JHMH5(a^WF>%_xb@#btuEn10V04t8S=NpfMNsm|^7)+vqw= zsJlc#)PejIwViN9dT%3^P!6;xQNMYf8`gg?uHK(zD*>@bo4{;7#J4QlP(mM4EOZ^; zvpq#E`GiEP#?(o$DdBdSDz-F?4FpR8^eN9$gfw~)3u%&6+uM7I&JL?Z>@nh^Taq|; z@%6rvK&Z6l!Y1EtZGnRU0$ppa0s&eTRUJK>bvQ04UYu(EsBIpwBk08I!-a==%rz2YaWz^BcKm`Rq~^0!=%hqzBb2!Wbf&>w>Dn*_7P!90pJr zEC!HVQ`;c|z&tb6dx=NX>|Keb+MU^NK38bxaD>9Dt!Vrb^!uzg8(fK}viIa8_SVTM zMX?^W-e)3O(`N8RQs;TwYha65*wk2Eu?q*Pax$`8v|ksJ>EtQ;L~*gk5`TDxS>dN4a~9QZ`Hc zI@$Cd`e#<>GXq)mIfbDjP>P|}&FzTVN0xkiB52X7mzu5`cxN+$%O#aludz}=&kmdP z2h3!D5W$LQ6*jGR8tF%S??3dI2DPY?CNcJC5l%bsA1{=tZ;04BRna;05&Vz(xD>Ms z9-0crc?%s!tM^29SQ`Xw_p`HVQS=~lS+CIPWBCuSXlwJ}$;x&$TO>BV5>S@OzyNojl0Zjcid9yKj02hAR*wVZo9XvgF{>lku4(519^Q&|GZN?E5kfF@|ux7F`uxd5$v2}x zP`#gye{wFs9MHmr<6p%Wfnw~g0U@t5r`0_X`A31CA#24euE16ZrL!xWYJ>A6lJc;Ps3ku&IG?!24cmiTY{yI<7V5qwELf^EOgn2gHm=!; zjlH|DvB|cQFte<-6;Y~ICnWnsWtq@1Nt4ESXqa)0zT}SKz&0$h^&YC1%l7-1l{mN& z$K`dhK(^5*4=8VrOt9f^8l)BT;gSVTegT-bViR?vIoH5C`P}1~t(RY2KpNbb{Ngp( z-gtM-I7j5b+`trBybHf#))>|pdBSY3;NNNu`6{XYZ;nu(O|meV++^2MwzRl4Z|_-n zcLT9~?fCi|cuk0(nw^57{nucaXYArp)%BywmBW^TZX7BF8hGA^)DfARnq(wV&hIY* zb2?0av8(A^(ZwiTOcp};bptVX5Ddf3S6YS0_G4Lu=)ZD2HtXy`{J5<5p{)^APa8dY ze%2&QBT4R@2WerW(T}SU8$MfWKGj}1cW^b$Go+~+^X1uUUdlxbSTJRaX{WQAC za%)i4m491Dd>^-}0+PzekE~X zLQAc=xReg0gC5oFShjTVux6yplguG5xK!NPLK&RSBj9E7dFQo+$^;T!(nKz>xTEVb zUkd?+mn#cXIPD)C?)6U&cK)(=>a&3k`F2{kpQQ0gGPp*IXPq2(AFdHMHwjx=+$QB! zyEOt#o6E~~{8j0mSmte{5(QL3mNUPuH>(6bEOm6nHAwr`%^!FVPV7 zta8>OLMrEm;b%rwP%Jg&WR(j1&zAefCt$=&(t=I1&z%IsQ$hwl-vh>}eg z-`dZH*IDL7F=9HS0``MR{p}PLs(Ma$MP<7K|MU^QQ8ry=_5ClHG9(xkNyd*y-eGOL zF*6|JeY+VG4E3}>OzPsfV>S*zNIJ}Tijd6+r}waW)IJ(=UkG156fF&l4%E{x$MTv~ zHc9V^1svskNa9Koc?Lf+yx+Q;r{Jw4I;|h9@K=h{3+wouJ+I(JbPwpDyO17F-t)i zoQe?{kQlpekPr-5Pd^8G~+I&M7afUiRk1Gi*hp<5_ zNSe1*JbIER`n%8GZoQPc4y`%BgcKA9h7ej>Y{9Io@84rOLoYTL?mi@@nAUe+g8vmu zBmPA8N%2ay*xW;HW^dx3Aayg?yNmFpJ0sIHS5ivr;}IF?f1sP-ovsJs?Bf|jly{{K z(eZYNID3(OXelrvRp^dNk}cH$$lGTkRnwAiU6_)(P@}bJYKONN>Y8+gr`>P2dKCDF z*s#^91>a2y7z9neG}0AfE{q^9BkeWa0FsQlw}qNc+*e*%O2jks4Q&&P;E$zldK+NB!!an4v8n3_k^8cd_)rH2Oh;C+GN zL>_6ByQTh0|9_LQ-&x3F z_O}zV7;ys!jFBfCrK>H+(7gWpzogJb5VXZKi&@{yKDVZJ$7oYrm-%)2p|sS$)P3L0tI3i3Nr2CSQzcsHujJ zq*&aZSHv3oodSi8?MmQ{GUb)BX44FmmDxew-**US*tw+RS!T6|=$k&1`VEHSiZt)r zt7LH1Rh5En&wLe-tO z?uM7o@n?&x{oDzsiEU1AAUY{3t-={l>J6>$1#nX*07$j0ErO7sn=lg361pF-P*HD3 zAfza^I>hK?iQ+P7muVb3IxW+tAUg|?Egbe-TP-w%zi#=sotQ;y(ruo=dO`2cSxDp$ zS67(JyGUODBAM7EE>6(JeF+kg$~?Y$SObT8)eZe3tiM|QSeX06?Fq;9pltlLbeP>R zzh-XuV`~!XLCtK&CE<|Lu35u)S$y=|yN%LoeeTKKfwA)=A!oW1SDGKkG5CSC?H_DzkU)+fEpH;aLBA`s zEkFZH7SUr3s9B#^NrDWFfSAYOARA9{UVf)`VzdUsQxfMc%)vst6R~bN!_kTlM z;Y)Bj?3{f>t@al@TNJ@FTFV6p&NMEwNwI7mdxJ8Wp{qg}o*qNGAM3zGAYU? z%!7(jypi3DWA&yAMa1M|2C}NIhp(1JT+3xZMn=&;;ScOS?W!-X1FV-)m!jOVjz9D4 z7Uw<%$7oj=+9Oc6ejqnSS6zT2&EsITk9*l|rAZx#r`wi~L{eaAFAn7Khenh60*9~A|!F=F2@wY=)==T4hiOOKMilDh^N_=hV=q^2^(DAIxByRb* zuTPUxlmt~79pQCwTItcVR*mkDmY<*?gNgHtH$gvcAmK~JNQKl^T|kvZnj*L7=QvQK zb0iU(GV0LIv-2Zr0+1AwJ`j{*=n42(?p!ax0QVbR8(8o_R!MZB`F~#ok}U)APoZy zIWS0fgGhIyf^?_S-6`E6B?w4^^nYCcy7#L0e*d@rv(~$2)~tD+{nmcZo_EgKC&a2G zJlp>Gkim!3q-LzgZ=N}wN#4_$c1Zi%JDCqlj^@Bm#96jAzq9PxCao)xeybD${uU2J!-CrJBdMJ6G&bSmmYoi9`;fojEH7Vz zHSHUEXHB5SYdg4iYkOrvvBzB>X0oG*(=FhsP@Y_pGdmJY(HJbX({uSa3QGhXoH-$l zqEjQBE|jjfZolX(qPtmdEs8#1zgW||REgv5c~rd?c7hm;9#K044$BnVMlNPuGTvlu zH1V4^)SaLd&baJie>LB9UdP96rP)|dE#)~@O*U@He^A!Xcwq^*yy+OhMl;yYMoahF z;rVgG>&J+5m7(M`Dt+iahsq*z{-s(PCK??E@HQu(cj(nU>ae>sTnEvPrrD5l;o5*( zl2pl}R}4G&z%KrLBb!!Sxj z)s7JJrx85qSVtX9B+2K3%0_>l2Gwn~S=W2PfP9TiNqY!TGOX{B8}4frp}vZ^F8wo;ysU*4`9_1)(dV&TbuJ& zMRx-xJQ4D$n}fB<97ZM0e9OiW$4{ayg7<39h;5#`AP15i$&|Eu+?uZ^F3*c6y9V>}-Zgs1^+Bz#jQlsCg-OeReX?&ah2-xweOtY=I#d=Q=`C_cA6TXwF zH7TR^u4e!TGHukPtM{pj{fN^p&XKsRv`NQvJ)vdjgXd6iD?e*-d4|3UlBI$XnNwI( zNZicJF=vS>yOQ$q=8EEOetJfRs_XQrM1Br_=s-0Ay?@DVcQ}9fa#N*h8;K&KXY0Hh zlGo-2cG5>ye^s@U&&GLEww)$MT{5fLG=!PKw`L91o`xZ_V~{vB(9; zzBFp#LJeA6yE5ck9sY)%+5Wm;8|UsAb7&!%W3Q=>k%Qc@$Q>bl|4h?VFdx=mL-DJIDz%NMkR z+;3Aj4=~-`-4h8Rnip5!~YWa)J`CRE$8mz0bwxwany!PJv zQ-d=uSKb)`_SsmA+B!yDQb&Z_MHihvwAhHAqnB4zt-U^*DUY~Sd*aXQ(7|o)?7iN- zOKd}~bq-+^fOs!4xd(p#CSq8wfDn#{%VF3YVmDDezRmdd0eNTm)ETcM@__zo&YIk+ zp%K3}Tcq8ist<;NULGfM7P&kjbC}~`o;BI1CdA#MBQoG&h`D`8spz!O&JnHRuJD%} zS#unjUPMF1Z3++DmuKg~xQe(CGFQ*i<}?Bbo{$m6)jCV|g+rO&EH@#G@AuoW7+_w7 z&yaIuiWSh)fIz*af}lhueZ3`Z&)XiFRy_Kc`l^;MDh1&kFUx1dSse-{Az(@w(%wR{ zCzeCS&K7+&Wymi2-nQ@&?xIGX%_a=R%qSBxW-yF%K3vI*wcIQz4f%{0i+&Qxs-Lp$ zjvauD-AsWUl}sgf15q!ny={l#)Ur>5<26ftY;1~|N-08j9>0qdJRO$*{0_q)5w0fI z!1v@E?+^{Kl-`zMd6UoC0Essocd(YeoB{{GR%B`y=as}qI0qB&?(WX;)C6%>@^URB zQl3YhZ^W#?&z4DS?gUa3EWeOcKX3YYHDB>MDn7euv^rZYO!0IMbgthowOO`!aKN0x|zQKdt$#iGQqjEQMQ_7$;F7G^5GIII3aG>;*k~#W6>*5S-s6wWl8kz1T z-P)cfUlm2~BH4;Oo2k&h^Ub8Rfz5Ls3b(>rQO}~JAv2-YY)Vdv=DKLSw@%ALMdHLJ zjAP2 zSq3x}g!FE>umDrnJDE9I=a_;}AFIx`EwKgohnhdz66*)H2)mhm=dk!q;4|Y2H=i4a zRoC~fHeNgFSfN50U90*i5{8NoYMkCQ6{J@dn-kM`-m^! zF6vd*0Sbd9jhc|(4#rq253{5x9c_bm$QLZu-M5!e#w3ss`f6SGxh4zbeIPUr0nrM# zV$s|4y8{x&n;4WF78OBZsR1+ceyLsStWhlFh~$rrZCiVG!?B3bQ2)56Uk;`6i1kyjyu7QNrr}|lVsq9 zA>#f1eW8(I$HnJ0dE(lFg4Ya1?@RXz>vr&w-?DnNy;#OpnyoL@IiQ zhvhJSHTe3-OUTaR$yA&@{ z!-ee&u&Ioo=hF4r{v#ftz?Om} zV52J9wcZo1)N{jJtJrt2if81LYR%XBW*U%c)iEjWil!O!ph!$!2sptnxo|O-9@dCbrBnw_e7y>G2m{RHH4Qh5N=M^P7odFBZikCm83BKytR3(j>2)>P) z!*z8XEM%x~%{FS5l9n*#=~ls)44bBLiFxl2=PbJN#wIWFNybBH0uQ{~C=Y(vj~)MK zkwYg<&l6EmF1*G@7-q~B=qhJ7O_VF#QZp6yi8#^gZhv^QuSH&YVc3(7(T8=%?HQ!1)fyCP@oE=BvFk^&@FQ-%8X>^Z@ zl~Gl+sRcO3V=F7y9J3KjF<@-Si!q!LY6$E((F`CSVoMo=P{kGfrS*@(r#IzqKV&QGcb7Q)2p=n690$3xQ#E| zKacMFQmLvYy5Pi z8gBfptU`_3u|z*Bk?6r@^oUX%w*Y7khEi#!h4K7W>qn1z^L z|5dLn&nnD%xZc`eG6c+Xe7%)KEj#2&T98s3J;Q|2@EVKHD=we_kJhd@yC9u`9gE>~ zPdF7HC+Jyw)$`bMv7SP;ItZbn(R!;X);Y&Xzo>|aZZWH#Hx*Tudwgc~GP{ym0RzQ` z>e@!WhrlqI!3ok+!li=S^3v*&K{)>S#zy?=35e2}0Z+U~qe}B_v2`A$euohISl^C| zOX-~e623C9kLvIFCzj{(SsBQ`A3*+5{gQtWI}Qa&BSmR-b@3O{>VKtUV!YnZYz$sG zVa@B8r-h*62v^E3CCv*+A1kIv*-j?2DLi0XmTr{SCCF`U4v&Os(v1__V1D)D_B0m= zxOCcUZ%e;G@FlwXL>1&Ca2ydxw|&w?V08@KF7FF(B*O1!Wxuac~ z!Fa=ixmwEaayy3N%K4z_@@8pgJWCJ-JvE1mf=UaeP|8^-1NDxQPWmQgF*}CY0?P|B z6>cSS1z$KG-RH;R)W%oJUa4T>+-@y=1^uX4O%xBJR=7a0Hh}I$ zH`{s-YBOJFFq?%1LCW5s`4(1-d|+-2*!D+zQ{;+|C2L{C$`pUW6xvHmmH+tF`x7=z z`C;BC1PzTTUXLmJ1`#!pc#qYRp&ShFWZBj_{7HKSG>yqWjuq)8I|oB^wGG5r5r_L? z!h@asHV0d)ER5Q}%?g_z=AlgYPc7e4KGPBv5O8>QEFlH#jlVoRu79y!)39rWDUi_Q z_b!21CRKxH(0FTf`9SIDU1<1VD-QN4F0VwEalym2h@JM`wsh6xuQrpM!xb#p5v(y} zvwO|jo~(M1vE1O#xz*#G5zl>l^{>B%g()I?RB2L|(>UohQcn6rh!f!sT+X-WXS;p0Cp7H*#3VzbbP$MAg~{}W+PWt$ha9b)?iMfqkVY59?2K9a z@wjF6<&X260&iqt^-zkC&UNDwF{MtaVk432(2eakHgpMHhXz!{T+&%vL(@3AoP%6$ zrmkU&Tn_oGSF;zN-JVc=GD|pq+HvamXtsI3j+HT7lvN-*V}HJaSLcO6%P!B5itJ#n z^r^~JRMLGdzh-|>hWPnV%@>zDndI&7amA@TPwSt@4r#EP`G5KTy5iA@XtMsy%;xq9 zoTM{TooJfSR8~|*29uGhyc(Hgwj29nx2Uf__IL6WnaH23w=CLdW#^6y2a0Ru=cjsd zTlQQg2Jt)Ems=3ua@o5hBGX|!-*@hTeQf8$)%3=0Ia_|$%1VPO0}+=o)zLX_x^8`| z*_wX;eUE5Em?n$Jg}wZ}&zYHrRy^ajnlIeButFo><7SbNBXb`#&UB}PkoprB z^w^WCy%km+UGftdAeAIS$tG5&<&9c=EWyX>X>XzDYC~Mh*AW`GD5M#MYA+*;kh%^c zA=o*6b@D7tl!#7}iZ0|^u7RG6CNKfg8r&G0A~N(W>MQ>5T|RQQz089PwXtj?wK`|; z8W$_)Iw>96=3mj2xF4{OFWn=?m@HHO?!9no)0hXqG;v4y!+VbZRkb5E7L*pA;dqa} zRQQ5KPZ1Xb;>w*=#Hf{Gm&34DHTrlS1Kr)rYqXIITFt+LOPr_Poqe^2Xp)$0S?%dH zGL(@z7XmI{msp_uh-|oWQD$%`dOyyV{4t9mpS$~oDS~jR!H+#5gl$arj562tABN@f zp^h-l)Ast~r{~Cr)B6I;o1XbgRCS$S8k_FEN~Z}4M8Yz9yB zvJB@|d%%b6u{Hl3qMJKkQ$$!iA7tH`=a{QnXl88V=c-Q(wmGBl?60Zx z>JExZiDijzG&3Qn#?=+8>aP|iSIH-)EMMOOYYjSfBoQDZy&B0w9} zK1e2N`Z73Zfy6OYwC;ls?F)h^fh;qBHQrD4@=rcJA^M{0-3QKr!+(xz^Geh@(Yz&N zTIlY}n9>WDTX(mh>e|iP?HkO3VIh>r+*%S<%9qwpA?>d7yn?=A4=f3AOvFc@n((ml zvcwgL%E!POrPgG|C?)dra76*@+aTDn1C{usQXfm(A@Q`wYlYwy zPg0M^<#*l8cU}-e)smW%McU@L(M3Xo8fhE(%X}^Rv#>^GHVuMnt({-y&=7FCAt&xn z=mn~e%%7*5|C~cU-m&72^PD)r2RC7C`f;fP?PaooOqmTmIcfg0rWp!@r`aY`sy6g5 z@G>3xVbKwa2IiKq-A}MqZyQWwLJqnV>0(X>+2>TWeKH?IGnPRTI{SniRG9if$%hPR zYM~Pgt5GF^5nZm+T#t5G0$0VZ3Gxrwb&<`EXi|p9Eo(jQuQ70&GI}hJI zS;lp_9cg@@Jv$bV6)|Sp2$fAz{j}mtX2BE;?syM1(#Zz54r^+vu`^b<=g4t$H;-;@ zZ%q~#d|pYFh@I`r2#4<+=C{LotH+p9wc~L5DmrVPcxX~3e|{nHL*OR2wW1nWhJLUf zZuE$vH4@k|9ujaANaVD)SF=j!)Aa=;b_i668f;G*cA*q`qG!5+HCO@&CE>Fio*`H4VvVIUw{ z+UAJN!l#iklhG!w&_L=aj|x$|$>VrUN7+!S*$wvw{RW{4?d`2O_j(Nvj#&JPaO=(1 zjN2Jz=X{{|gKNrjvAs9AeEOs9rK{*Mf#vPDtG&3edxS;wJE|it?chq=Hi0@y5w)Z9 zd{)D!=u{wL*5w1ZIwY^8h329kHwW#CtHg%{CcY@HUv4ZCDmzy#r>?1suiU;CiQOq4 zJ|ubReV4y#cL-tkO~3Yrj}Cn5cvpHQgcZr)`Fo8&%)g?Isx8H1WMcryGT3UEUF$LQzzHOPQ z(9_z!KbAVz_Z~Uv-_#&Ap)CF0&IRrLLTeQ$R_pe;9(Oq>u`9Df2VB^le%7NgTktxP zc{v5jI~sDp5`jrv6T?WTW#wi_Sd~m;TldVweYn26A8}@WW^3Saq^@XP$)OS+ z7qWMXwr;J(RiVrVPjpfcpP7Xn$I$Dq^1{i*@y=M$FAD z1}q~3>n4Yx$2#kE^v&6cL_mdImnHAzxwu37!sViYpGy+Po2HZH+=L!8G-)o?;G&Gm zU9|Giv8R-*O3cJUx^h~RobH~A+7>dFp;A_rx=$T&2=M8W#v}$TFb=@dR_Zd1q=_A< zEdd@e+UlcAdX?c2q?R(wFSjaUeSJidq+e=LTL~E*m<;1<*y5RR@wgmxc%Y^Vn=x_E z8|R*?$iu-CAP@jc@&}-cbf{`09gbrrP&uU$K_G14)4z@!|DW&7AdaRER`yO-FgtcP zTj;M~Nnfa{$>$C!BmjI32XZpkHGOh5c;U*jfCkKrpw5!29EjH;AQrI!yyh1Fo!?Uh`K7uuUd`k zA_40|0m1uaa6kW7j(?-A>>QoIQ0SldhI$ocuC{ukIsjV@$nVOtJO7P$gn%7PE&qi7 z44TJf;vFpjJxBh1_#A&i*T3ObrZ77rETl-&qw^Oa6EYV^jkPH|e2MGQz>gV`d zxc!ZPJi00`zU1b+S;o_`a-Z2p8wJETbV*&DW-u!js_(OdE20PpR51#i1OwX_xZn(w* zTnEVSo-Ydio59}Q$@1TZ`+2A-n`lg9p8=!(l;3l9GU0Eyqb20uVgDJorl4&yA^`bQ zbz(sNI&%Ck5`UZE96u+!5yX+*$<684;Qb_tKHbsH`05 z)-N9nMBrx-$^TLVc+K&T07x7l7FLc<4&a~R=YU$7LhKwNMv(tcBDs|RiReGgS|Yyx z!USl93TX7ZSr5`cAZ2rNKn)IYQ&R{O0w@M^_*Ydr27L1>lu`d9P{stg|C|_*bP(wO zhSeVIWC_$IDl{pqWgc7{WKB@C`&&Z2UMU@ Npn*`w2&6OU{{Y^cKS2Nh diff --git a/source/pythonpath/easymacro.py b/source/pythonpath/easymacro.py index 29d4a17..c2e81bd 100644 --- a/source/pythonpath/easymacro.py +++ b/source/pythonpath/easymacro.py @@ -39,6 +39,7 @@ import sys import tempfile import threading import time +import traceback import zipfile from collections import OrderedDict @@ -170,6 +171,10 @@ PC = platform.node() DESKTOP = os.environ.get('DESKTOP_SESSION', '') INFO_DEBUG = f"{sys.version}\n\n{platform.platform()}\n\n" + '\n'.join(sys.path) +PYTHON = 'python' +if IS_WIN: + PYTHON = 'python.exe' + _MACROS = {} _start = 0 @@ -302,7 +307,7 @@ def catch_exception(f): except Exception as e: name = f.__name__ if IS_WIN: - debug(traceback.format_exc()) + msgbox(traceback.format_exc()) log.error(name, exc_info=True) return func @@ -535,7 +540,7 @@ def run(command, capture=False, split=True): return subprocess.check_output(command, shell=True).decode() cmd = shlex.split(command) - result = subprocess.run(cmd, capture_output=capture, text=True) + result = subprocess.run(cmd, capture_output=capture, text=True, shell=IS_WIN) if capture: result = result.stdout else: @@ -543,15 +548,16 @@ def run(command, capture=False, split=True): return result -# ~ def popen(command, stdin=None): - # ~ try: - # ~ proc = subprocess.Popen(shlex.split(command), shell=IS_WIN, - # ~ stdout=subprocess.PIPE, stderr=subprocess.STDOUT) - # ~ for line in proc.stdout: - # ~ yield line.decode().rstrip() - # ~ except Exception as e: - # ~ error(e) - # ~ yield (e.errno, e.strerror) +def popen(command): + try: + proc = subprocess.Popen(shlex.split(command), shell=IS_WIN, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + for line in proc.stdout: + yield line.decode().rstrip() + except Exception as e: + error(e) + msg = f'Error No: {e.errno} - {e.strerror}' + yield msg def sleep(seconds): @@ -4039,7 +4045,13 @@ class Paths(object): @classproperty def python(self): - return sys.executable + if IS_WIN: + path = self.join(self.config('Module'), PYTHON) + elif IS_MAC: + path = self.join(self.config('Module'), '..', 'Resources', PYTHON) + else: + path = sys.executable + return path @classmethod def dir_tmp(self, only_name=False): diff --git a/source/pythonpath/main.py b/source/pythonpath/main.py index 8b290b8..ebc9bd3 100644 --- a/source/pythonpath/main.py +++ b/source/pythonpath/main.py @@ -4,6 +4,7 @@ import easymacro as app ID_EXTENSION = '' +_ = None TITLE = 'ZAZ-PIP' @@ -34,12 +35,12 @@ def open_dialog_pip(): def run(args, path_locales): - app.install_locales(path_locales) + global _ + _ = app.install_locales(path_locales) globals()[args]() return -@app.catch_exception class Controllers(object): OK1 = 'Successfully installed' OK2 = 'Requirement already' @@ -48,22 +49,20 @@ class Controllers(object): def __init__(self, dialog): self.d = dialog self.path_python = app.paths.python + + def _set_state(self, state): self._states = { 'list': False, 'install': False, 'search': False, 'versions': False, } - - def _set_state(self, state): - for k in self._states.keys(): - self._states[k] = False self._states[state] = True return def cmd_install_pip_action(self, event): msg = _('Do you want install PIP?') - if not app.question(msg, 'ZAZ-Pip'): + if not app.question(msg, TITLE): return self._install_pip() @@ -73,26 +72,25 @@ class Controllers(object): def _install_pip(self): self.d.link_proyect.visible = False self.d.lst_log.visible = True - path_pip = app.get_temp_file(True) - - self.d.lst_log.insert('Download PIP...') - data, err = app.url_open(URL_PIP, verify=False) + path_pip = app.paths.tmp() + self.d.lst_log.insert(_('Download PIP...')) + data, h, err = app.url_open(URL_PIP, verify=False) + app.msgbox(path_pip) if err: msg = _('Do you have internet connection?') app.errorbox('{}\n\n{}'.format(msg, err)) return - app.save_file(path_pip, 'wb', data) - if not app.is_created(path_pip): + app.paths.save_bin(path_pip, data) + if not app.paths.exists(path_pip): msg = _('File PIP not save') app.errorbox(msg) return self.d.lst_log.insert(_('PIP save correctly...')) try: - self.d.lst_log.insert(_('Start installing PIP...')) - cmd = '"{}" "{}" --user'.format(self.path_python, path_pip) + cmd = f'"{self.path_python}" "{path_pip}" --user' for line in app.popen(cmd): if isinstance(line, tuple): app.errorbox(line) @@ -119,7 +117,6 @@ class Controllers(object): cmd = '"{}" -m pip {}'.format(self.path_python, args) return cmd - @app.catch_exception def cmd_admin_pip_action(self, event): self.d.lst_log.ps_from(self.d.lst_package) self.d.lst_log.step = 1 @@ -275,6 +272,7 @@ class Controllers(object): @app.catch_exception def _create_dialog(): + BUTTON_WH = 20 args= { 'Name': 'dialog', 'Title': 'Zaz-Pip', @@ -303,6 +301,7 @@ def _create_dialog(): path_python = app.paths.python cmd = '"{}" -V'.format(path_python) + app.msgbox(cmd) label = app.run(cmd, True) args = { @@ -321,7 +320,9 @@ def _create_dialog(): dialog.center(dialog.lbl_python, y=25) cmd = '"{}" -m pip -V'.format(path_python) + app.msgbox(cmd) label = app.run(cmd, True) + app.msgbox(label) exists_pip = True if not label: exists_pip = False @@ -345,8 +346,8 @@ def _create_dialog(): 'Type': 'Button', 'Name': 'cmd_admin_pip', 'Label': _('Admin PIP'), - 'Width': 60, - 'Height': 18, + 'Width': 70, + 'Height': BUTTON_WH, 'Step': 10, 'ImageURL': 'python.png', 'ImagePosition': 1, @@ -359,7 +360,7 @@ def _create_dialog(): 'Name': 'cmd_install_pip', 'Label': _('Install PIP'), 'Width': 60, - 'Height': 18, + 'Height': BUTTON_WH, 'Step': 10, 'ImageURL': 'install.png', 'ImagePosition': 1, @@ -428,8 +429,8 @@ def _create_dialog(): 'Type': 'Button', 'Name': 'cmd_close', 'Label': _('~Close'), - 'Width': 60, - 'Height': 18, + 'Width': 70, + 'Height': BUTTON_WH, 'Step': 1, 'ImageURL': 'close.png', 'ImagePosition': 1, @@ -441,8 +442,8 @@ def _create_dialog(): args = { 'Type': 'Button', 'Name': 'cmd_home', - 'Width': 18, - 'Height': 18, + 'Width': BUTTON_WH, + 'Height': BUTTON_WH, 'Step': 1, 'ImageURL': 'home.png', 'FocusOnClick': False, @@ -453,8 +454,8 @@ def _create_dialog(): args = { 'Type': 'Button', 'Name': 'cmd_search', - 'Width': 18, - 'Height': 18, + 'Width': BUTTON_WH, + 'Height': BUTTON_WH, 'Step': 1, 'ImageURL': 'search.png', 'FocusOnClick': False, @@ -465,8 +466,8 @@ def _create_dialog(): args = { 'Type': 'Button', 'Name': 'cmd_uninstall', - 'Width': 18, - 'Height': 18, + 'Width': BUTTON_WH, + 'Height': BUTTON_WH, 'Step': 1, 'ImageURL': 'uninstall.png', 'FocusOnClick': False, @@ -477,8 +478,8 @@ def _create_dialog(): args = { 'Type': 'Button', 'Name': 'cmd_install', - 'Width': 18, - 'Height': 18, + 'Width': BUTTON_WH, + 'Height': BUTTON_WH, 'Step': 1, 'ImageURL': 'install.png', 'FocusOnClick': False, @@ -489,8 +490,8 @@ def _create_dialog(): args = { 'Type': 'Button', 'Name': 'cmd_shell', - 'Width': 18, - 'Height': 18, + 'Width': BUTTON_WH, + 'Height': BUTTON_WH, 'Step': 1, 'ImageURL': 'shell.png', 'FocusOnClick': False,