From 7f86089b80d03f2776eaaaa102b172d8185f8d13 Mon Sep 17 00:00:00 2001 From: Nik Haldimann Date: Tue, 9 Jan 2018 14:03:39 -0500 Subject: [PATCH] Temporary patch to make packages with namespaces such as google work Copied from hutchk@10d8f0f This is a hack and should be superseded with whatever real solution people come up with for bazelbuild#14 --- rules_python/whl.py | 41 +++++++++++++++++++++++++++++++++++++++++ tools/piptool.par | Bin 1843372 -> 1844348 bytes tools/whltool.par | Bin 504174 -> 505282 bytes 3 files changed, 41 insertions(+) diff --git a/rules_python/whl.py b/rules_python/whl.py index c102d035c4..cb1f6cd3f7 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -21,6 +21,18 @@ import zipfile +# Putting this a package's __init__.py causes it to set __path__ so that it is +# possible to import modules and subpackages from other directories on sys.path. +INITPY_CONTENTS = ''' +try: + import pkg_resources + pkg_resources.declare_namespace(__name__) +except ImportError: + import pkgutil + __path__ = pkgutil.extend_path(__path__, __name__) +''' + + class Wheel(object): def __init__(self, path): @@ -103,8 +115,37 @@ def extras(self): def expand(self, directory): with zipfile.ZipFile(self.path(), 'r') as whl: + names = set(whl.namelist()) whl.extractall(directory) + # Workaround for https://github.com/bazelbuild/rules_python/issues/14 + for initpy in self.get_init_paths(names): + with open(os.path.join(directory, initpy), 'w') as f: + f.write(INITPY_CONTENTS) + + def get_init_paths(self, names): + # Overwrite __init__.py in these directories. + # (required as googleapis-common-protos has an empty __init__.py, which + # blocks google.api.core from google-cloud-core) + NAMESPACES = ["google/api"] + + # Find package directories without __init__.py, or where the __init__.py + # must be overwritten to create a working namespace. This is based on + # Bazel's PythonUtils.getInitPyFiles(). + init_paths = set() + for n in names: + if os.path.splitext(n)[1] not in ['.so', '.py', '.pyc']: + continue + while os.path.sep in n: + n = os.path.dirname(n) + initpy = os.path.join(n, '__init__.py') + initpyc = os.path.join(n, '__init__.pyc') + if (initpy in names or initpyc in names) and n not in NAMESPACES: + continue + init_paths.add(initpy) + + return init_paths + # _parse_metadata parses METADATA files according to https://www.python.org/dev/peps/pep-0314/ def _parse_metadata(self, content): # TODO: handle fields other than just name diff --git a/tools/piptool.par b/tools/piptool.par index ee03cfc320ea81a5ae8d14b039ca18d6270a4ba4..eb18d793b5091ee231f429a34e7a2eef180221db 100755 GIT binary patch delta 23682 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 E06EZU^Z)<= delta 22820 zcmaJ|2UJtb(@!V~frJ!#Zm1&Ci>RO=c2TfDdqb>Gv0xV)U>8w9lm$T%ML-Y*TkL=Z z6+!GGprY8o0@w@cH}~!)B)tFmat_b?W_~*}J3BkOdv|X0wa`OFp|Mt4Jtrjx#@V)G z{>>k3#b+Mk7xDv`hhs(j^@ifTv$qE3nF<5X>9AP8jaV#)_z1pT{3>g1_~<$Fs=OtC zJ_LDWPO^5$d)eXaM%M+eyPg_oOdU_w>c6~?8>Mr+ch&5vLj#8`Ip5>Yud>)3&M&9Q z&kvrVl|MlL^{PE)vxHAdX60O-JhP^;=6=Yji3^rp`ctDlAmrGNfOhUKx_O3D!-wN@ z!}jpMa#l1>oOH1a{- z9S52opVjgweCj@-m^Z%Y{NZ%ol|qi zhC6J}k-^Q*TMuq4t}UA$@17H4bAR%9?=D?ehyVQg;$8jJbw4W&EKAme9R2leto`vt zC$&e0r*$z)PTQ_s6*0WfII4C}T>6K;yf!6QM8{K-1^>uSzvxM|oqnS3NA^(tfgdD$ z<)e8;pLGWv(OBkrzRP*3O-xMY!-ACXQyXIL-ndcs=u6#oqm-bFRiBR4-hF%blV|f6 z&jICrMQ86GtF;dOY#8+{$g$7Q{oB`^`?n2uRLVEQ#K7>(*u%^0UfJ|IThgb@SZ2JS zY{ceQ-LKpa_&4f6-!BVZ4BNERy|iLyyS{DLTItxMPB%10wm))vYwV}f_Dw!ciG62` zJH4;N`26VcuP(00zjEA(J!RoW=^L#dd`{N6;he;=!w1ZK(){Ppv`4;yk9|ih-C~%V zaH3?{*{sT5;hUn`&vp+t9o@C2cKaur?Z?V}J)3S%Vx_lBKWM+c|J{C{Cj0eXTq^N$ zSo^Pa|CwyNCFeW$EKjI5aGX19#F97EMYFr-raJxM=ilQEwd*Q5Yj|b;!V6`_pI4!c zTb!qz`sy%o%#2FI@*m5`HwD}+xLqXNc;xDe7aPR=&88h4|7rX8F@4`mb^aQ@`JeM6 z+79ZF5xe=~P}8N0Pu}z5%C{~L8TIL}*RJ!kI{tHR`&iS1C+nvCZ74d>b^jdW8HaYX zH4bC%FcD#IKf!;p*?;1(d1N&;P-Enx*?Dus8!X4e7RBh|Fxa*dS$wL=V`ql%Qf^x-!k1XulKKg z(YSbld-lnVi5gF1hFJRbeEaVD?ZJN%fBP?>FJu^YcC(TY5Q)O7Oh& zbFTM~$=4o+>zi-Q_B7li8o17V)PnmKfjUuzXP?!&HS`j!n(%Fj#loBU`JYDbX!al8 zt#+xr(qpP)bmYu6Lo$W)lk^SMbsuyJ_bImwz6^^f+OdgVq|5h@>cN@HLb zv+nIzG+(T6bbmTOWcQ$|{?=m-?+@GOeIs9I;hyU${ypZr+HV=InR@Bg@sCSauGqI@ z_=M?38jUwQY*<^&ciP;g?nt|bcWdju+#9HQdsHv~HlL}oxtF`1_%4o`@~wZ>_^?L{ zQb)M$JvZ&ag3a;T{_kumLpL_bzT6B;;vHTke7++(-t&-YxnNvvhZ|W1Rh92jLcch! zTo}knSeb47GixjFV;2pNdAq{>$~Pun7&G+s+)k6iT(hQ%LeE6|muMegwpCG{_795mW@W=WskRf9hzN(%y`-+rq7q@!1PD1CU7IA!cwBS)UpDfo(g z@T;TtFEZA@2=5&Ja9aJ#6BBClpPucoDb7pox_;A8{}I{mU8hai^~UUl_t?Rc-iQC0 z^Za-9@;SoQ)9e;{&VDLft##~k-ZSg5qxyyUPZ57;>%x7v(c9^MwcDY@GncN1e2kX7 z9BV)3PEXT@9bdSi>yGtWI&Wma_gzLEJrkcLI4%g9KPr4z-O;fQ3;O$Oy^wSrARCn% zxpR9++>}}4Q^ps9{Le=>n$MN`zv{C&_r|o4@Q0g_^M`exHkXyJyR9v8$oprgj^+CD zZFUuwj-{oi=Nx+zJ~Xy!Rm@)h?kk?ZQpf5Aw_W;Pf4+BRlWp9JMxCF9f9|bHEKcsRVPU^P zu9u>k9ZSRi{JAfzoo*bq?(j`--ELh@%(3YxWXQC!vX^b%8 z<#>+>Uf83*C?urhhTd6&G3?F{&8AD!>TR2c+$r6pv*FU3x8d_m^%uSEX5R}s>wITk!kR+%RsZ#)UeBHK!*gNP_?3>Sl8yJ*C#}04UR%q}<;(7sOl*`KDc}@6>0{2vb;Bw&Avny z_PlX7E_?9i?;l@Xs{2(N8#~=#NxST@o(=w?!!Ex1;5IN$7<|TfY^i8Pneo8z)4bx^ z#}|i=DA$eC){5w`sBh6KFE`6I)>^yQM@+65IqY6f_D4Zpt+wl=vD04M>SI0Q_Q1S? zZcqFZdy3~i+&6xn*Qo<$rQ7<&n|BS!@UO^h7t*QgO5cK&OBZ{rT5;#&{s)^~=3e=5 zYRTidD5gW<@cnC!G%c@d5b3)Y8O6+~alaORVMgAVb?-~;T&z=@?x)xN7UwVhU9$V( zgEXGBCNk@&)3?VOD+|k(g*I&e%&xs#y^nK?8e!Mz!Q-82R~pPS`+M^zjIAC$KX{|J z?uENOWEYpl%KsTTHz+x{^2_vzC9_`pWZtoD&TYm1UJ*!wb&TU7n(OHq|8h<$Z&IkS<5|bbO+_ZH52b+Q;MTGkPzt>Yv|u zYRy|O`GcA3UagrJ{766H;?y+{|L%yj9oQ?o7uRv^UyUJwnp%b|7E6ak?}_5WoW1nD z;UQ;!hf!h;7K^JL?-6H)EVoi(WFAckk9~8dG_+{MF=Mwknhf?s-{m_ey0BQq6Htsu zjKRk`dCqlVaPe7__Th&?!OL*VlHd|7BR+BJP)vG1b%YQ<^<6ZZ&4?X*zO3|zZ%o=;d|MMgO)NRDi=Qm--_~I47tGn$b$~XD z^~Df*9F$1o8xweFP68!5=20<{7`NrI6Y2h$+6?TbHVreHFM*j7HcH*Wv5Aj;S&!we zeq~O&p86(H#?a(G+U!6~lt*#dzLuC;V#hu{hA|&hUO%-r#kd;aFbgI!-v2ha5L>YB5o~ zkz7yy8qt*KTZrkfHTkITIEMFw{8L%QI*ZH z)nM99saRTF+LOgPdY#Sk#O<0hD1CX~T+V}@7;M$ZDG)MFTho4uZ4CJM77OKTbKOv= zCYOgwGAX^C?%X5>e4>myo%GF1lRKL{W@>Z0;0Tt#)a72$$8rywab56Kkw3NOZp70; zKFgVVMZlQ0u(x%>K*I#3^4CLoi%I)QBYC?FaHBsnd0aA3yind=9z)%j z8^(h_U3qSpUgZr8+|q}CgxK%r&wqw<>+oYa7grguSXTb1TMpZXQG^^%Q@ZlW0sM_b z#rp|-Yc0knVU_z!mV;0JYT!J0Yrno&?mw9yO$0xj!oP0AAoqB;yK)*P_rKaq`jtZu zYOu=rvjdv90!OHg#J_|ckh_gQNB(m&e;*0Lz0v$TaoFS~7J_9sn!=8b8siBLxyC~g z76MQB1@mgV(HqVXUniS0jfF&Q}wBxz!bYf{>x49h`6qzgWxQ2J@OXx zA=DaQK{nC9t(!nX0O>si*;s#u%bm{iLH|NNDi|r~Do^Sw*nssv==ZzyI?St73luky zYl9lI1(bYNprDe3c)y{7ndI@rNP!+nV3)H6ONo+hhXp=8aDP`fD5*a_3i|b8JZX8N z>Z??f#fsygw5}rTFVyXmfP=PNf(2+-Cw*INW9{}_yATPB<<@}#p6sF@P1cLp0s5w+ zu!=+b_0tU)x&4OmqWQ4gGC|Num&H0IMdHnLK-{2Y@)|o~FqdHm{jv(N029XRGLeMxZcqYwqN~sz59iHW`_C=` zwyho=oxXBiPvI7#BFRhWC17N*Ckptx^kF;TLd)oYZry~8WZp-3m}Kzse}r0X8ULY& z%Y@UgC%cCU^Lb433Q6k890-|XVmf4dqZ+#TptZsiBu==Sh4+c18YGnAeZt99;X?c* zUz#CYLmq$U3bSz>p`3i-aVFdMEy|eDsLNu#wxL)3+wFy&6Yfx^@}i@{pJec~ z8ZDnyB^=IXn&sY0p|oK9E<(qqGR;t4mCziayOdbo>9J6sIK5x3@Cx4M$;F?9ABiE{ zU&3XEOz)^uGn$q_j##OQ^4D=-LbMl3QEY#aHkx!F`uRvGiXhoyf>^Wz4@zm#IloHC z2}5+~*y$nfZYKJGv&Ed(Y}syz{>3`2q{&ywL`QMN7{;1LnF(M)bil(ADiaCi5mq7x zoTKHrE}~b&V$@Z1ghXyYf6*+mBAps4;>j4}tEV}9`US)PnIB)Xm83)8M-aojxgu?C zX8-%jszkVwj$u8#|HV0T&m#z<;R{8Iczm){G=l7iypTvl93Pk_T4&BEnpc$O?FzGR zhy$%i{`Z1th#n*UYOc-}Z5RfFHdwqoyhPNNxIXKaXgkSLes@LMgzEoD^c}DBYfQI% z=>?A1;L2jz#Iq|*P(?K)!o^QS1Bok&--@1*d6e^AbeiOcfAz$5*xlyAK0)tc@TP0y z?Vsowq?k4O;=g3b){DeBnv9)~ERr$|VSQg?!9veg>zE-Lif%oDA)ak0wjiF}CKH>H z>62q6{zZ(>ZXw2`0vWWJj^f{B&|-Utr;~2~ z^cQy_!RI|#Y(TUO{zt6XXKWiMb|!!elf^M)KR$Gs_;wpSBkfYeU&+8&Wr`CVG4;%C z@eOP}+FU7)#6+;s)ZEIZwnFar*gbzwSgJOraN!=+;}2R6gp3 zcru>M==?|VdE9dKCvgTD5qq}8%axgclE>SZ9J6Mz_H0m$-T<~lM;_xQxnzx-jT|c3 zPE30@Msfxdv&Tw?VgAXLlGmg^Z#PJMiL;$HOZt(eW@)tK2lo5NUhfOjVVu`$V!vBu zNI3F6+aza6eD!E1mqWOTN9Z}HkphSa6aLJY=lO$Gp zN@7JG8;d1#wVB@9UwGoqf>=H8#9~=6vD$b_q9uvNg^=k}j z#Q1UM4ujWheOiplZu4o0p#`$qWneAeonYY1#>g^c&`twCeor#EOQ_|^22*q~wNr+{ zV-9{a$u;<3iXVB!1|bBy?5e?e0j74oZ?OIjqc&;uz_Ih~ z3><&Ouv!y8`d&BONhIAbF)SdqB$gRI(qJSt@niqeyOa;QD6Y}43-bL+>Bx(28LrU6 z?YrMM^bs+SDEy`2QT){LmEm{H_IPc`CYn0c8y0Ib)PzREwHUau(Qpg~zGyUDr-L77 z|1kW;#g8FuBQNrpp<{F<8dK-(G#ZeE9}8TKFGe$l_DC@vCW7!Arh$4)Ht~=bo;7Yu zI#zeiIEomtw9t635pGI7FpeSJJzQZtlVGVzJHutV@@uP1_LHHXx6WiO>A}~HCQGmz<)K?m zDhYK^oXIn6cG=(D*i;BweKz9a zCdQ=|BjgzF~_~qYzMx+lwbR4_CSjn2Fe z-~Vg2))lK6?<(C%;^T|2bQzI7-%r{N&!p?Y+Y7Hke7w>`e|@D+^1ANQY6806Q`%39 zaZ>a@yQY-G;&s`JIBA6doHWc|`bfxVL2jd@c#_Fqj*@1Q;fx(8-A6{N(+p`H_IJPh z0h6aeAjGnWs3Ag`E}Aq`I*;*jsJYIkBQP92WGt2w<6}8zmb8d;{>B37B{qWt2`m^2 z=4XYT?UI_JF(R2Ba$ZI88NjA42kvc#!5?AAVs)hf9&*uQ={_?4C)Z0q5Z`8PlG;lc zFJ=nQ8m|T2yM^eM17(G3)=LfLl4NN-){YMDmmb009iJ}U$21vsbkKv9V8>VvdX_2e zAn$%a8c#yuVWt$%E99LeB?EmwOA04zI_%_}Y-tnm)303VPD4!HaZx&q0O~JE&y#GH zb4`ieTPlq)W>j~!U#dqzB1myTPqU=f@`<%lcYUVo!CyPxX@Vi01qreZy8TINDZkJp z)gb-7{7Gs=-1+#Ia;(q)mPV0q4b-IENtzEAQ13~zP!W}d%|S9Fsvq_Pyr(iotBt7k zXpj?y@6eHhF}0X6L#Auuy#dS^1)JKANIaNo1N$DCK>pO2QY4=hrql$@|BPoB3@(>Z zLNt(qK~)Nur^=|l*gr_2TZ-H)DFN!`M44ctvMs2g`01|&HHvwXkF})O#IHeC)P5ZS zJqC2}FfoLL4wRpYmSP90J<-zaNKM2dCV~P9ehlkMt>-dk&(S)1;Wo$!fMb{&ZMMDK zs}J>(_{^#wH4k@h^5{iV=r#Kg{JAhVbS;pI#p1>fpwdYTt-;j4#Lmzmlr0(m#Nm`J zp%#vyUXXFh8b|fQ(@)+oi+WEoOwD}C4o^CyyNbd|0Qs(>I$>Q)R#Dx_K%Lo4b!3R> zlk&+qiW-e+o1&;A`sx)BsLvLvzm=NjpgR=&DSi>`ZjR{i7RrIyMWL!KlvHE6BMRP1 z+0mB=6ejyd1G(B6lUGMmhF0_|t(Hp!77JcLD}U*c*W59*BAUY6c=UmmFn1y*yTjE4 zBVk_qAE)S+z2UEevOSBH9%&dvLwho)n^kAZ!(qtGA&Yycp<)@7UHqS50h;xl;xq88 zmgpiNSumGc!6#0}`b)o4W(<@Yd%#NuS#r2Di)E=M`PgI>xs7sRP=Wo^r+LD(=m$2a zqxcJGlxh6zMLg874dxT=7W8);^mXOJc#kv-<^}`_s)%XpHz!1G60=y7M!{QOHGQ|j z82Gjr%9zo~8hNP8VL-ToUUko;YyqSbYKVc^!>H4Z1$8OWG&Nor!$qTGiMAoH4muBq zvpfs-1fFWz-fv^jlj3yIX$4x6UEJsl+KgfHt9yC-4nRAj&^Ss98O2dT#=t%1Bb#r4 z(D~5BM@_gOK>;W4+T-HDKo6v#a?sN_$_(4yOtW66w6FrUQ&L90%2f`ly_)>GJpk{3 z90f8m-jhy0(Sbp%0azzBBzG?$UE){n(?ha&#ppQ4gUTsKfa4VZAYUIH+@ava(VYBa zGzV40lMs;vN1U>UC1#Tu;#ix;Y2i1$QcFT$@J{ zvNa4f@!cR38}oNUmu#;oQRp}j7>idusBl{k0lfrATs6;_mHQP2r!%~KQV&-) zY_oSkwrfO`E^S>ZfcGVs=0p{8W29STY&QQ1{|SYsp&Xp+@lD_LwhKx=HW_0{{VEx;-Gtb4+`3{ST_<|kD*p9vQAZuVNfbqJnjTd zu|d02$%45rIVt4`gfSn|fqM41P(ed25ZqMiBG)QyW_IDui}r%3vz01*r^niQC z2F#-YZVf7c)Fy5H|7MfhG_G17<)={&Xdqms{uknr29UQ-G{hCHNF(7@y3;Qq18$~rGSs8IqbIGv9{t=$^2N3EReyN>Sgf;s*sWH>^POpEJLK%k;Unh) zg%9WNhmISq!94mJ7oFQrX6@WtD*MrF70FWCtsx+B-K+zX;lVYt5LF&f=&Ppz+#Ua?bt54guDAWN6rCEB1qu9jLKf8#?a87fOqlsU z@|s%-Q?in`>=Y zt(JgACMx(wGcE^JD+Ruz1sZWF#JCt4!<9O(hGgp94 zA5vIYlnnxZcws={K&}pb;ZC-PPC3Ba>!-q7o}&ngIGUH(ON9s5?$}EXv=7_Gr0BXYqri)sq#KSONluMD#qDL-> z@fbmqEl@}6=nXPb(pMjcjcZL$x8UG@7g`91s(4r#q3Kpv5U$%Bq4dNGeC zAI-z$qemzUrWX%}nYE#V_z&z>>0^)Lmmb;sIPS21oCT{g&oEJ+H!Z%O_b_S%Lt=s_vBU1uA%`O3+8iu+rlm=H!FG^F=Cv28F=G z;?z$|p+B!7pQ`&$RH}lHxXBfw@kbQ`XCDQDm3Nc?6Len5E2DX5-eMk9HAv8}k0jCP zHx#D@!_2USJ*fK9XYyVtOBWShHNXotfr7Mnb}I{uf8s{Yzqw}2RvY)W z{unIU)Bn{$MHjdh=;jI?9prMHGGSJK;ibNs9UyV6f}m30YxJF?+F;9Z#i=*#I7quR zUzPddxMDZ>hh|#B(Y9~ zPIBx%Gwy~4Yg13{R(s=xOG!K9QwoQ=p90-Od-3UB+M&Wed>ypnl){%=Xr@*l!n}Ek zGGYvCDKcrjk*)J5SSUHcXY!e$`xf1Ybm6Sm`p9%_9GY~R>du5*OC3t<<5EQsDm+c$ z8YT4iG}yB{nCRe7cx2y^{e#aQj7>Ao@nt;GwSvk(Z7?sbI;;&Z?}Wyvsm|7ToUDqC2r z{%S@Huw|O~(seFU#^BDI52P-FX;ZEb*Ar^kA{PehgZj7&#EfpH!FRJaYsZ0~=fc9O zzF*qYo-`;qPnj~X(GzchAsT!^(XpTl(6Njzgn9e|h3f=S zDNP^VmC&sV6khTz0Q#)%g#NZCcxjJv*LRp^n)Vi;;J$)hNWV~_#G(-Bb^RE67qqyL z!ga4Gil*xiX6WANX`x~Z)J)S?3@7wvD8@nKixk3U7XdRWi!k+az=E4f<`bH!eTXnU zFDlF)bP?#i-xK=&iwaGJG`*ma>5dm&t0VXyoA^tRh4r9R=Q8E3Ea$<8)s{jY7ORii zU~cll`0tk}ikS%L$S(a0BVp4I$FuHg(2)T&v@@E0nH+(s^)IdkLW4E1}YFF_ZI6&i0AgT{+Bm}hg9!f#LlyM|AA z35$jvh*1ydk8d$F`Kn@{arP=m@cD+xP@+WMz`9-ove_SoyfaBCLGNLvGB)0fj`0}- zGvEl!7IhnCP~}oaxzkljc4Py79i&uolw>}F;-&wdlYUB#PA!LZ{WR?T)J3i{z-{Tm zI8=3=vcPhG({iUuRd_FCU?ZJP7#mS=s?6fB|}NmZbX&RaHC`?JDG>^EVU&Q$_=#+-ZO}g2E}BP;q15 zQs4!3#Jt#2h0Bl70aqAe&*omR#<>U-vxIf^8F+|f-c+;dlTE!_e)EoKSB5y|@9{yhE08l5B))TjD zI(l}C>VgU~{)b<7|H!i*3^6N$xuw2_UCN=G4Q2u$X2RZ;L%?^ie`^&0^N(OVpa_iD zvOMC^Jaikn?~um;pt#JI5!F)1&^m3cKdTg_i-Z@T@^i}_#V9A=0a5Oclz?`~(w4k* zR;x(E1I+w4J#tf}63-N<;Y{MCpD3CE+kRVk{n1+uum23=x77;uk@TKIx8ps~{jd@9 zR^KCAkgLACdzi!fT{%okb;p%`$IyYlAhxePAQP{p;H~wj_lK3?F=dRPOje4ZDosF_ zz>x@AaUXQI5w-?oi2;>$S7BijjXGHU?;Z{-o>e} zWD|T^HYry&n#g;#r2CN>e1c=d-3i2MPrGT&X`D;sv3La|uNYWqo z2xL`+s_>wckKCM`rFrR#Rd|0M5yxAvIHy|gg(RCPF{}uvTHk}Xc!fR9-z3d4|r7A^>tpxuR)6h=Xop0&J!(pkV z8=sYldC2Xl!qwfL0&hO7s5Ec+Q{`J8njC74$)!MMIufWXZ)_bUpWk1+76 zcL7Y5nXrGcRqOKzcyCH8TUet|7F7evMs~yG^F6@6n>7mip3uC)KA30rOwq*s8Ib=B zz~qo;WWhpS3tu(E(&AykV!;$u{?a3jVBMvauKY)=gG!z$q*u~nhL53nW=Qy4F^OEC z19{yfOny08EdI~pnmo@}C$SA2rB}7S-!*|%`Uxb-lg|}HdYhK^E(wzZQp5rzs#O?Z zRSUdV>6kaHRx#YOXmUh3CO^3?=A(YMNXTVNXPl$cxIg^CWL5s)X0HO{{a#R9bnmr7 zJ^uyBy4S)ZiDCjx{`v^renDBIplY$oo3Qd}ld}%9VG9duzj`w0UPhel4*h6XF2Y7Eww*a05`Mf6HP%AQ3`hwmiI=G;sSCl&wx7vL#hYo?s*CcH{0cC@c z__bo51il76M@P}^jFD)pM2Mn65AJLV%?llkn(8T;igO!ia&Z_YJFb-IqQn?QlOAt? zm%k44!rmyxHjXAYZNTK~@IQ=+=f`%-I|Dwy0b3mP(Cr$9p_X-u5$#e361qfVGE}(= zP)_p5{$`sKWd7PVrt<_#SxNY8BqhComxN^&iup zRY_Jplfg5(kSL(qP5DcYob?(v+VLI+iLSRnhiF+GeH7e8Ns&es3^zmmO_Tc*G86&} zaro0bliqtA4u!(^yL(z+IelaB4(Qe~*oH7-@;`u>kKwd*cl7%M3?NPJm6K<;4a!TV zLwSj}(mL8vfe{!wwLu|abpuFn+fI|aAm-IFBe;})Ex#o30a05lv4@8Kx2EEp=zxfJL9FzF1+- zXHckd6-#OOtT3Jb1<1*;Z2~qbEHjj$iC-XlGTmB5^CsR<^4g)wFOU)#UOmn8f!!3{ z&gv`VM4CMQkX`0$*Z{AEwNm|pg>zRaMuwPjEJn<^uOOyRtqM>78(cBdJg-MVj}u@V z8sM*=Vm#pA^vGYT_^?-ohG_FQ;*8rJw{6=GspBy064Z}3-(ILFdHW4sb1(+zeFp=Y zU#svYKv5RvEvI?K?=dg$JJpe~E1vVPJ-C|%X@}*jX4k+EDq?(oz%H0p(MB&o(-$&X zZ#eL}s^PNvtmMYZw7ML3pCji#WceWA1&$a zokhleFlH|xwZd(q@|Pa@>@E%MgZ1hDhMmD8RM<>)Kn)efx@y}eT24FZR*DTW*1;TB zp9s$&%{Iej{Q2Lor=y`QrSPp)dOyZcD2~@du74CA^7{jp*Sy8NO@Clbqs4R|@AG#7 zOuMJNy%_BQ7gq)dX=6){Z}AswyXp4eho!*w9xT)vR*ntP$xs2`l&%X zuA!kFch(c3u_-?Pv;ilxV3v1QL!MhtBmMDU&1TD_8lAQ>5Sa+_S`WreqP{DcpswtrANNog`s(xGCYfuLvLKA1N1SNuAZ3_(lJyo z(}ahlS~8L#9ksx?(rnCIs3kMNj)|hlub`ZU9#r_?fP)@s$w(>uJDOJ~SMv1#6XGr3 zCA7Z2`dLIbYljlF6`FFjLE73oG`THmyl0|^erUr>BieH+UoNyt3A65DJbcQ4hpg?Q zjoQABP;|e$^;PkSY79NVQD{8J0gauxsEI3UOMl;h=i05P71JhyYuCb``XmX`#n4i| zsRUnrGQ+x(3u54G4`SM(0 zhvw;!n5fXt`MibBfp)EPVE1$kJ)B|6`;WUtKbjrN|7SWh_CxtR=%p=B(Rm*pD0aC) zlkLzd9toR`L*MRO4T1O=4v^}X#hfx4>SsxJd26o)6Dt9+8Y5I{s`IjJNL! zcoARGCo4Ym$;%h>g87Oxu$m?>2XE6V3Y6q(njF&|lg$MRbQb}Tt9sL9JG4?jMnB8* z_=Q>E)F}8ZY%-Zm>S^M#7n%796Lq(07<7H&3O> zZBc{1jBF}|LLk>o$7J|Qh3ryi(d48Vn4BXdA@bwK2f-rnR0()WeSXA+V(6a*QiCG9Vv*i<+*7a7`04qKq^<|3f8LZiqC(~f@VnK#rsn=%hK0xGd zGf)g$jsfWV1N5{esSLd^kdZ^tUz(nrf$0ecrBJRN1!WGj3$6ZHGwdj=kXJ!TTQwJ! zW)eBkhB9LY8*s$-_Ap3OZ{Q^1poT5VA=syeGAVZYZ+OxiTS({y7p46F4E5b$p)LJ2 z^SnAA zd1GMys3A=FMo8~JhN*onq-NOY2Bw|ufAUDk8dQ!>d0u-p2j!E{N5 z_-L=DwvV0)KE;$QT2)ogU4p^opCOm3zg*~~uf$8xzgA>L{kvycD0rPY6u=Bo{?a3# zOK3dQ!w!b876urB!At=;9a9KuHBGf5*scaD5c)$WBsU{FlmHX|J8-4NqW{#-GaFhp z!Ur(5FQ=4N(0jhWt?&XABPGtU4>X--3f9x#ZK@kzVWeVNjwu-5C?!3ng)8!p>QOI( z-Puf~k>XPMN5V^NAoByM^v#d2@SWMX70BOX$OHVpjkK&|~RpiMY{sTuI|0wnoaki68(A0k>B>L4FWSvv;r?bIOlgULL{to1BO z?u-@fwUpscv{8{IxX`wTQa=xASt%Aq3oGFD?5)BJwj!Gvwa?!a9f5z-BTx9N;Llo- zzRyYU_%RORvI6$%Zff||{Z#PA)(YM3)}Y%iP{}h!5!Q;pi=}zn2Pk3W#Sn$#TnQ<8BIPfFJu!?zfvYHrxp>Alx!Hp9#4r?SD|6yhuBQO~ecW8gm!->0bsI;9WnZxl>E7pS z$Ob8p7TM0SRfW7owO_e@|8jU3CoJF9I9xy$I=~&gq0~b@$g^efQ9;D?`de#u<=+uj zWrRMjP;|U0GG1j*QCfqg!Yl^N`9U;4&(k})(z93ImSl>jA-rC!cFke@Tj`Aay`40g zU3Bl6;?M@oNb@jc)+lK#3KpE^H1Kf6EKm4)7>u#6B2So*&c@x~BA-w~iLRBl_4Iw` zJgZpd9%TQej8kMa73_uby`NVg?<*nREj^6o-l}FX}7Nn)~){YGiM7 zZg6^z`FkE6XR#sk)7{T!oGLsj?dpj<-5X)N=Nj#`r5gJPwo27J(H0iwWoO_+5BoRPU81uf&)Axq-{$0xV4*Fyt^Hq%i%x!b zJGw`!KhIvhIb*tk+K}2=5J^e%wN>uw`5Kl8(+gl;%llNQEFk#)F}=K(V4F%no;zuh z#gx0?t%?#0nR~ng+9M=Z0rI7ccX=q<`~2?`x(ZI8v2bymjy4dOiNCKh|9py(K%c(b zC*Qo^Qct|FR-x#2l)Z7gXJf+cqh+^S3`@fK&v_b|*U=Q#_n{a~uK%2RXs?>UdO78! zmrs&OXY!mU-NzRe4lGONdD^kQyS`gTeOSWH=(OTR#OtI+R4k?VQ@zqpdd4CN>D7t0 zQcW(ke9h+~S1(OidVYn?m`mN{QC{holvrJW$I+h7PSUPhI;3DT)3JEft&#hYx}^8+ zH(z|SNxCST{cE=xWnjE(m9%xy_eCdHdGY(YZ;YO|znw6*qacI}_`Wxb(TRU`F^fh{ zJU0HRIg#j9`J4I|9VLQWfC}?lFS;c)ZRI*dT(l62PK5IQMUfrLxi!z!O=>ITtC?RJ z7_c(xE7TcVv`U(}c=2iMJBll(*jU}`r6cE2pK zz?a2Ii${_sk9#gTxzobVy?NN(RY^1L-WH`XA>AAl=bf#xb1gDTdU*2zYmA|(;?D%v zmT(o_MzzxVVBpwO6g|I|Pop|V;kXi2F!iIjcJ(|V`um+~!@5oeY}(nRfJa zo>S_Y{bH+n7spVkbHGB!2$rtb7_fik5zkVjfjq+}=;lXyB1; zUB7=($>Zf5)8j@jt55TMKtL~5bno~TA7PE=t6wQNQTLcwWcxR-tw_wWho+s~`>tH& zN0#x+DL86Qpe2E%-0de9nAhK~M)_zjq3>p=}M3neB;{>N6)%B*-rj+9w z>(9&GzHKW}T$WO4*<4m%aqpg{;zd~t0ru7%M1_=xbEl`d127~Bv6~1Nf z!RAM)^2Gzb$9z%0+}yj_%HH!T(v<3tU7o6)BQLFa9_#H}E7x!drM&<3?UBvemc-+x z3{OSDGGCtbs#>P*v$81OFwrO#cp9m?H?M@jg_KQVw1F&&k(s>)T{NkWQYTgv_egsswVPq_xJ0j% zhK;GDNbOPgvP;Lf(dfbkf}ms#Qt&m2)g)uM@MEpt zq9+0roDkbPvtm95FG=e2E27uO$WO%OF!1pO#Ri_)W?oW|Ih)Rz+!TJ~#54O)J=jsD z+93~7W$G2nQIzS#qcrty>ev>ME?vSi-=7#Q`P1JPqtA>;@%9#>2x~|QFK*XYGhul) z6kAY?!!fWiRi9S5{P*vt`c>=9$|iw_+#^OnA|dgE(j0#o8v+04cW!yMOiqMW_6M@CXl1({HDGTWR?$mR?2Sts>y zy4_MIEq1{NwX@1lQIHi^?wUHfD|<4x=l7V(SLMnpYmMFaVn1=@c!{`iPrIIbc!J1*qTiCS=YGieW?PwFxAf5Sz>Tbf=g*it}%dH2oWTfZ6G$b zn^7aM;K*);+7t^AZ}-n`-9Apt_~@>M35xxvkeZf*$illOa++ZpVOtmaq1mHGEFdnP2-IdGH!vklBx!HT-sv&uA^ zmQ~`@*)(%%fl{Nud!(Hj@PzsxR4z-V3&Rb4zt#p=acibCd zV^-)vE=j8zkxQ^f(CJBUaPww{g&;41_a@0-pEZRPgS6_|2 z3NzwrT|&`zQh2>&t6z9;eB*fm(6JM*`10lzS-&6N`}_O^6A`1)3yExgLSZSz+dm#L z<=wRmRWNvVlYvtFS9S5#G4V%Vr34>e63)-{)axuy{-(-2SkQ3QT%A(41x9sRrfhhd zY!xmWJNA`#4$)TNTShW4rY)UkwrzUm!Klyq57+4HP)}?5+zcY+D4QfM(^lRzd+)h> ze?JB2b8$ttmwGkcIQY$(wfy`mG+Q7j_4a~L#5=JZ_l;c1qGuo z=iBLmiMCMb;wJr(0v#SFyiZA{Bl!b)PIUMwxuXsCM&-kTUNe|AHF6hlC%?7dF73`Y zVwa-Us^SrDJ?W82yT_z|4uPbHxHmBj!^oili~#cw^bw7rMDcIuI?7xx1 zU~k!AFu@o)LDT_9KZD`um1lFfSTy5eXL?(2&#UUPU%2MPR(VUcTjmi%U5spg?c#D@ zsMAi<=)1*r-H4&@N@+A^>+W7(XOmcF9yJ(#w0^tUUd8mfr^(Kgt;KJu>GA!p>n{wx z9J^snA0|Nlp_SN|fBlMw^hw*B_I%nr?j~SeFX~(RD1cScr3JuJJzow$=4(kW?PrQ=+pwk}C`gMaB^n>Sx3(e5|% z!n|pfu7Jk-O(wo4+eHM)mD#SB#Lju3hj>#xbmOe`$j)BPzsUqqH&H$QOtBGf8^+em zktWnf!@#_^ijxe5v1_~n=Bpe=$!j%?tM86qxLuGJKYjOIn8hH+XM)YRFE;o?VQYSGadX1S z&5sDxaCxITa&h+6;DQ9*m>@Nek}2yZz{`6V6@B!zXb`hNh2eQ_qY$0)D@0!L3&~Fi zFP11|of8i>R=b(kV#ca328ad?YrhpqJ0*FXg;3SM?&%QyjgocN;WzG;F}(L22v3aN zh!Hv`B;C_%FIvy!qxm96^@fWoA{LhMo;c3*i)8s{hR7zkEkilW#8dBD>KjE0s*R?a(u9+ow8h(-1t=2>7*Vi6c_ek1Q=f*`3OWm3F(9xr>~w8Kr>sf;kjtB*?_ zM+&y>%zs~;kLfaFe#ld@&CjDVEtdS4iilqeCE7e{k;^+uidff(>)VzNKik;Ji090o zO&C4;SrxBG(5(%IN)~Js-Z|yKal7A3I{R8R6&rV`rigMt(OL(wnVRfVmxwR{6T64P zwgvDb$J*!!ThHDK${jb-D-0_09L%{%3=R|bPm#5C`gp6Toi$)Tu|1UhfP7`c6}1^C zXL~B@LR=N{SY2(3Nw(z9b@#pXSGPa#=sY9QPP$TDPsh7{>+%FEm*>odo5mq@h#;pN zSK4+wX*O8t=3e+6?$C3w>#6_AsHooE@4dgzE^>@WJYZlEGbYiu5YN3XKIEAZ5faQV zpl@@Eq;g(V-TcC?cK+Ni#2y)nE_2j$wG$$pNb5G{y zkJg&pc!)OFqY{UeJ$kUT`C03FDwZ~1g=n+loB5N7fL>w@ZN4R;sr+Gs_k6(@Y8xLkFmkI-U->A3RPIlbDX|Hp0C-j?*YUGAH;fx{0r&(ln z*0r=uGf`S%2>ls<8|GMol8B279`{n|LudIccr8}hL#bCSr;n04y-2>txx?_sPiCIXn%+8bOT&hOBfPiinitP<D?mWB$;H{-eXn!xGcE zl#7x_*XyiPVrBW77anvNOId{6BcDrQ@Lc8-PoJedM+7VAsby05`yFhEz_EmA~Q3WOawVHDhOFhRka*4X`ivvIpl?^ zEm>&pgQ$($R{7S}Lo$@Vz81j4>KokzAB5d4wsqbXWcx7H%=J3@6uf2^owR*xp@wIR z44pJY|IlwWQ1pFu8ga{WwW5pc@Nx4#cYi!=x5i*TEu%(x2IL@ z6Hxlrejx`W-CjRVzWBy9J9PN$@Mli`+0sv}R(*7+7I(rUXCj6^HEWkBB&j=Drdn4t zaiUi2BYlQ1>BKM4T7YjqHPYyr50lOEq%={VVbaX>KOe+>ikLH;ub1=qn|BN~=BrJ@ zy-ST}$4s@~ZJm({ycFzd_gZFmJfm8mUFlrRM1ohO=jt`JY=M*~ghXeToSoz^P^(dq zJ6~OUw~s3LG%-(iz3t4Sl%3mfW|kVch=Nv`(<<|Yu_v9l_X7LSmO{*0Z%wQ)(ZrCsWQ@q`o0|!&T-+U60LH_Cq>vjmtdKEi5hqXN7c5lfDMRmnFWS zogx&KrBO^uE;mY$Ojl?)7G=xcQne|3-j0{EosE)0wOy&mt1D`Lw14s=xu(I3rofXf z6XWsH;#)50;#3t9bNhjZlgaIE&#HEn79`qEJFxX!H!oa#HXZ{@K?bV!TmOJG)uOyw=Sh|EE&R;OZd5IW9ob^ssJ5#)TOWUrs zf)W^jh_lqS9LDi`z>h$}&n^#0V3aV#-pk9JHmcs|r60eHn@(8YuK3QP6Gcc|KVa9& zCcuf7cqXwiI5Ljs&AM3LeAb>^2zi-J-zGT3Ku#~vV4sKV=J|9rp+{6%V2tB0Z`gloMbge7mz zI_#^n$Yie@LA>b?!AB{ME}|Y@UH$ezqodlp zHs!0-iM2FxQT0&QH0SIyDOV`2S!ndwZHcpnV~BItLO#;rIqU8yp<;-pil`0|2Sowe ze5bMPOHkkaytb~s)UW(YAJjx;f}N39&%b64jC1dyNth$S5@&?E2@$EygGuY=7a8FK z#pd+Zo1hA_or(c!+=l^4c3M%SM49pzL)NkC7~}a-JaL{%ULis(awZKu!x3kz0rSMY zBFPaa;dA;~A7A}|^QXE03cmZ4qRHUC>9ytz()JVn#Yv*XV-|zg4M@Y87jn9ViRnKT zsqTsashLy3z{9Ut;=CFL5od*sC+}9N15q3=I+y+s=ZigI$&UB)nQf)n`O~k>sB5d# zaE^+7ZKUKxf6q^vq#aK&ol;Nys>K6}PYx=|G|W9!kSm(E=dOkUB9<;WV~rUgRZAja zLmVU%<-e_oW+&7hbssFqG+qr4TKk1CsIkt5IEPKwhI zXEf@2Zi*q!LE=?KoR+(*Tl0dMBWWvdt^m3zr(86H`)5C{5&{f@-d z7n9Otud~iQzD~=u^$3+S#zxo1z58(58Qn9dtje`S^g_m=W+TnWk#XN*--41kFh);f zaBz*9oWf;6S}sdk1xN%=YApDid6AaxM^(ahlbvJgdxsyc;allYmwIFAm_jplk51%^P7tOcPg8Ih;z{mL7nOi+9G1?%k9`q zHf5Sg7eO6Mz2_Q^5RdkQzWlK*S!}Un?DvrvO?5Q;wkviN8y0Si6HSMY(cnfM8MAOo z3@pGap_3U7gTV>W*k@?y1o}ajKB?3 z`{D68KWLdx@FrXk=$!%hAOY6X8hO-jHzW+UObV{;!cT%v5&&W}_b}WCiL=ifgDX&D zhv4Wcyb3ppUxV-9)Y0p3IDV#tO?W#YPJd|^9*7&w?!wJ+$kTi92gJDHJ0!s_fE&Ig zCpdv0644X93d2czG6{5&a6`_Mh}JM{q^hZmhSX4k4GF+3XQTw0>otNGzcQ^ih){eK zpWh-f8E~dPo7Xcan^_u2Kylij=x1ng5v1_A)0OhVMmFx zzxxAWM}`}YBatm6Sfk(HwxT1TD4G!%BMJ04B{CQ9IfNQXYK6mt&PYu*Y+Z#9)hH(s z!C>cTVK5mms|P6nR*WNv&__a$Ww<>@_e3HC@zI;aBE4`qME52lzu=|ismO6$$X&n7 zqB5WgrG#U10Cs01pW(gu!>^$E7$IXg4)CRtun%7=73YZP@Y2@< zL?7`v$oxX|244m@Mu@oZ;Y3Xn#c|<02oM3Ekl4))si5n26otVQ(!r=gq#%ec0jSX$ zWWX&^9I{>>h{qR)u_oY+pWwX~po}|A9hYO8Uqi()g8*$b0U@-O4ls-d37!Wuk=RUy z8715GP{CkrC-9kCE`u^vWe5yXVP^p&Z2{alLu=Rp1^7)}bpW#QdzRo1%;A!*S*c@d z50yg{4Dafh2XF_QV^ANCkAVT|9w0dmYlP#*phAUGWc2yy-AB?J`9!N(t7PZkTO;{}bw0Vb~hyp=eB zLBF{Hq~s7%Kn!|Ip??leK##z^;=puj+59V6_Ru=&8DX&Ff7v(($TLAU!XQ-yfRB92gfG&Sjei+q} z&wuQ=K9GW6|7e#n+R-VTVec57$iH{{pF0xe8mHzo|vfweoK zP+rkcLzFv&CHRQN@`HPEz!6-?N8$li#KZtzZW|A<;N&Qb+~*4%9G^!(TrL5i1@C-< zQ-Ndg2a8?BAe2V_K?ve3tr8$P+t@#HTFkvnj}6VTl&@eGY9E0|V6c;iLYtZT+kgcG zXmQ@eK*$^K=3h!lQ%wyGoqs3j#GuVc0_1T8`f48XJoL9QIJgF<2lv2(MUW>#?mut+ z;143~I$3P$%V8Z4rFWBDT2>@N#EHIelA0(#h(2`)C9|M0Q38?;4E}RpJ z>`PEl^FwopAF`vN!Q1VV6HtJ?$p?uTONJuWVa6(X!J{bvj)#B>DUh5Y4=?wH3vEGG> zRq9Zrk?-&ZDXI9(X}uH5(qn+ZE@PP|G-s zZ2{rwfEZ|-cF^>E)1dG!e8YRtouYnrFlf13isJ9U^{* zP=eu@c|<^n0+NDznFr-Vo&`7iQl zfKK1xCi<=b=g}$$f8!tnK1rW}Zk!mXgbt@kvIGZh$~lPXOAZv%yHcE(Cl{c{m4QMo zB=&lS6JM`Fl7Qj42cf26bfxt;-AwMm%70 z03Ej3*^y0t3WJ`5QRM%g)CG(#fx^2;1W^39Uj95V{JZsPQh^4gkXdaBz=l1;(=*>1 z&p}U{_o3t;UKN274!SB2kpE|fDu)77QRoygLkT%-mZF0(Q^Gp$t<$vFgiwXh3J#-~ z&SOyg;HT1qv$j?W)ux3$P7FPvkb%l&2g%VZgLF3yaXRbskS^_yt_-7lVS>@|g3vPy zuBHp6o;Er`CnXg69=?h{I^dvMUo2hrI?fF71YpJ0CpR=A81}-6JKO>4|K#(pM<$rap%dQWjWc`sACwlBMe!N|#@PKmN3GK+?YsT$94r=WOQN54~h)e$a0SS5u@aN+XmwNz! uaDRXf$Lar#g>INXAAh*h18}nf5WqcX*W! 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