From 9f9e9d6433519a3fe2ca0b08942a8ee025e720d4 Mon Sep 17 00:00:00 2001 From: Matt McHenry Date: Wed, 22 Aug 2018 22:09:23 -0400 Subject: [PATCH] elm: 0.18 -> 0.19 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit update makeElmStuff to makeDotElm, create elm-elm.nix listing the elm code that elm itself embeds, and pre-fetch it so that the elm build can function offline. also include a versions.dat file, as created during an impure build of elm. set ELM_HOME so that the elm build can find these things. continues #45448 (cherry picked from commit e7d0df84676d51fb0cbfbeb10dd32153489c3565) Signed-off-by: Domen Kožar --- pkgs/development/compilers/elm/default.nix | 37 +++++++++---- .../compilers/elm/packages/elm-elm.nix | 50 ++++++++++++++++++ pkgs/development/compilers/elm/versions.dat | Bin 0 -> 83377 bytes 3 files changed, 77 insertions(+), 10 deletions(-) create mode 100644 pkgs/development/compilers/elm/packages/elm-elm.nix create mode 100644 pkgs/development/compilers/elm/versions.dat diff --git a/pkgs/development/compilers/elm/default.nix b/pkgs/development/compilers/elm/default.nix index b7482efe7f5..51f76f1108a 100644 --- a/pkgs/development/compilers/elm/default.nix +++ b/pkgs/development/compilers/elm/default.nix @@ -6,9 +6,26 @@ # 3) Run ./elm2nix.rb in elm-reactor's directory. # 4) Move the resulting 'package.nix' to 'packages/elm-reactor-elm.nix'. +# the elm binary embeds a piece of pre-compiled elm code, used by 'elm +# reactor'. this means that the build process for 'elm' effectively +# executes 'elm make'. that in turn expects to retrieve the elm +# dependencies of that code (elm/core, etc.) from +# package.elm-lang.org, as well as a cached bit of metadata +# (versions.dat). + +# the makeDotElm function lets us retrieve these dependencies in the +# standard nix way. we have to copy them in (rather than symlink) and +# make them writable because the elm compiler writes other .dat files +# alongside the source code. versions.dat was produced during an +# impure build of this same code; the build complains that it can't +# update this cache, but continues past that warning. + +# finally, we set ELM_HOME to point to these pre-fetched artifacts so +# that the default of ~/.elm isn't used. + let - makeElmStuff = deps: - let json = builtins.toJSON (lib.mapAttrs (name: info: info.version) deps); + makeDotElm = ver: deps: + let versionsDat = ./versions.dat; cmds = lib.mapAttrsToList (name: info: let pkg = stdenv.mkDerivation { @@ -29,15 +46,13 @@ let }; in '' - mkdir -p elm-stuff/packages/${name} - ln -s ${pkg} elm-stuff/packages/${name}/${info.version} + mkdir -p .elm/${ver}/package/${name} + cp -R ${pkg} .elm/${ver}/package/${name}/${info.version} + chmod -R +w .elm/${ver}/package/${name}/${info.version} '') deps; in '' - export HOME=/tmp - mkdir elm-stuff - cat > elm-stuff/exact-dependencies.json <hoi6t4SMNlCwMg|5(21Z5(CME_3CI&_( zFpG(qfr*)siJ1wi3dNAD;`}__;^d6f+(f7}8^{nw1||juW(Ecp1_l;Js051bTwsl5 zi8-aIP-&1lkkw#)FfnBJLUd%Nmc!l446=%W5#}%k1{TAN?0l$Revto4ib_i|bW0MG za$wdlF@n4XRl~qyl$)Oe zw=qaMmKJ3u2UixCq~;cT=9Q!tR{9C^aRsBssAtMYk+5Co?6nBp;U0 z5Mjx{=9E}mk_roM-ja+|4ArclXa=V!P=bW(<#GbqS(K8WUk-JYI4D38b5e^+bW1XG zQ;T$SQ;Ule(_v8$*U7+usaFJ~w877?Iy2FVdni`bp=(^C@j z3SeB2-o#>*oRyRFbCWXjV1DI;gc&0U zFflTLvLh%xFff6F5acpOcuK%-CLhR8DTyVi1)0g&@EpeuG8UX2Ao-h_fsq+xHrNcb zP~icYke-^CT9jAOF()@MPd6X=yeJWtW#OJ;VBm1hNK7e7P0oP&o-?^b7hDa% zj0a_ZaEwD0VCdjUE-6UN%q!8&PKA3@1e9#Ri4g85CI)6mQGlHH*%+AF7+Baqg)18y z13Mc72O9$?)FO13f%9Ziem*FbAc}iXY=KfFBPdUS>THN^bj{%8n3JCm3jt7YgWLzI zW|$#bFgylM8M*m+sg+O#s3DDR1vtkS6y=wJA_uAiPe4n7W2IQPxFoS8RW~sysVKE9 z6I_YFLLS_ffaE<$`46uR(XD39NXsjRX~XYIrc78mN3?f9SsQEvsEA->0F~NM_hY6H zmfXZlSS5$wCf59-6nOFmM-#*^pemRJYCgJ0go_gMQu1?k3zE}y3o;8*a}Z@Zo}lE1 z=|a_k-+63BsU@XFuwn+9%E6%kb{o3OxJyb4a#D3O^U^XazzV=E1!#j2k^rH?7&=Sy zG7C#nbwLdrs1j)E1LX}^1BZdjIio1ExFo+IBLJ!joYylAE%H(;V5KN0C||*X5u_bd z6f=RM4W2f5o%8cb5+O|!c<_Uhe{O1CDb#4Bz~ppE%u4|ys2p2CVo@<%rx>I;1+sz> z+(=?%U||HelR&K{CRPS!Rt6SUMp$*u$iT+Lz{bSL#>B+N#LULT!p6i3HJ8gJu`Dws zBtIz=7U=AtERYS)UZ6ODRIE@P+%82#d~I3uwD-r@ok?~L%k;B(DOPfSk@&QB{TPlOlr;C!8um#3Ri zQUWVJ;93|M1l@eyJat38bq#eLJ^ge|3{krn`9-;L%gZc*Bp2PX%v4zO4wRY^ZG9}-!IdandvS76ehw_7g0ea&wSen0cx#x6nTZM1 zD1#+ITxJ%O=H%#>2x<9wCAx{_sm1xZu&NuB z{XoG1&OA`ZVAC%IijcI@ykt<*9;K53G6B82hRpxbyHz|S5UBm!U~?vvFQY-fV|S&q|_qa)QW<{yp&W}VGq_1E;#V`7p%W171Z)f zF42V;1XT_#zd@k}?iNFZvAF{5XOzN~2U3PGfm)xS(w~`;k%fT)tsOwf#NvXYOn4&~ zDI;NX0yxD$3T))AA*ezH`2g0phgJLx4A=|-mzkA`@XQO2Iapr7s)M^AwWzotHMu0S z43^Z03U@XXzk%(6$1|&YW)-||3$76ob8>Wx;q7dskU&u?3QD_)B_&0fNu?#Jx=E#( zIf&XAmnLu%3)KHhEYUSEG>1kBajGo{s0JtNl+>jB(!6AN?Sji_NST|NT!K_-g4^}r z(gqZVkfID;aG>}d+?xf}51^3`-SX6=l*AHP5e$tGL`jOG6C41k#l@+4C7Fpiu&M)L zGpK}P0abjAY*6nqpy&se7}=?nN%^3Te`*<`7mdrO;3x&DWJcyUR7QDS;3sNoHD4LI$NOgr_EX=B1>Zk1Rb~NF zw1X{yE9Lgc&#ClHP0cRKPlBokhdFX7uM0B?l;0txG!rDbz++w5Gp{%^B{euPC$-o= zEiE%S6Fzdoomrfc405e*DXgMG3KL0R}ck26jdU4n_t}Mg}e%o(AXZ)V$>U6vP-I$S;T*5#1d;1&PVo zphTXTmj)Z$L<%WRuf*c~JYTmWSRV~s%p~RKmlT&E`nzB&;Ms!LE43&!x6&y!Cnvug zmdC+u1-QPUile$PNnI2@G1e^ zDM(68hq?+J0Ps|bsT^EOBX#US4uZrN)BsMe{Gyaf-~4=7OoNNgG_wloB1HKPNl#E=ey`G;%)~tJyv)>sjQq4Ts4&=8(1;vL z(TfsPBFMakY1EnkWmOL?Gfr3_mFk?47zIx*;9@X28`M;U4<#Vk$LE^~jveRx+@xY7SOXVaq$ed7r&_?;83eU} z%e0hySWY8OeQpXY{!xPuyQ{zntst?e1QzB5E#WN9%Pc`2l|s_N>6@8clwX{m21_8| zMi!|1t_uob^l=G9+;aP7W+$fR_$F4u0~vKZ3G5emRm|#_SOTxJz*($3zbHE~Cp9kx zUSWcDz-s_@ztoES;!Kz?1@j=>G?-gK9zhhq==#7Bn4FQC z4092vECc0SMvxD1xEfqofIDpP;VO_Vh?qpT1>D6?NlngANkt!E1&0_ozknxAL9-B` zQ9pRdqZK{bGBB|+GJ&W3nAjPaK=XZ! zOq?L^F=LD^;_xuIYX_RQ2Q{}dK@+ctCO6pUIGqcQ7swoSNotC23F@FKB%o1-#vt>; z5O<*aT>@0nfwKelutY=v1G-jTkk*{Us!HUn2XZ>@qydiQf{gssJowl%9t*$;sVFfM z-hCBa9LhDO6v^T@dQslgMyq9WD?j6^wa>Zx{AwFQ%iIU5aYE_ z{mAVnux=P{{?J)111l>dD=QN#D>Gzq2rFpe0wXI26DubJ zD<>l>7XvFd#0Qw6$(>h}sS65B#DKOe#1Dv6!@|G_o@-%bWn^SyU}R%tWM^PxXJq7H zVB}wECKkXZLGb5UzT%R~oK)S^oK(>853CLZWdu<2!09S3aKc0`SU_Hbx{k{~ zCnX~>*EcZ**2n|r_T&ttb`Qt~luXO+UzAu}3ZLGGc5^ae{c&(_4ARGd1R%sNG+o>U znH8xysd?#$2}uc1bb*J|K?x1KGy>u?&;k?iBr13f5vcLZ1YU&11fFnVVqyi&jWMw^ zF>x?4aWXN%#!A=&GIJ73;B9(vM+I6a733F{=oS>^rx(F{YoNeKG`m;>O7k*N!X!7b zqzGPHfWrh7D6obXihA&x1W0KNDMetBg_IajG=KxWC>5y_jHHq+$lWO^A6A44l&2;Y zL(*AsYEc=yQHbh%{-FG%q|8*`Wbe$p;u82+4jZUwEr59o$qufd{K~`}&t$|P5)WvI zHzmJ350s}MF$jtgQ1pOT20(=vFm-Zd=B4GNR%F6DJ$S9*$jMIwXIrRwpn!#x(og|R z^ZCJAAVnsUa_r%#^&;O25?H zDtMv-cOXEcV%x~jVk8MPUC@D5(3o9n1^Q|yXd4_9aiDGn6KI(t0}B(VAP2h? z%`9+hI3+W=1T@`;wr~nou7Mjq;N~?p6PVNT%E00%%NanEbg(5FXjZc4mKNof78ye| zfo7H=K?^E8L1i5?6WGC^RR9dIRwQe1L1G0gAA?)7ImO_$lTcH@?Hx!N3|htm>JdO? zP;_z@m!<21MyOy31ho|53NFb{ED6X*ERhBGyUVj-omd<}!WUegnO0Kl2bvH`%!WCW zKeaR&w9YCqPZvB*0(B6`N<>Q?yH=ipoYchPRNb`vrsN3tE>7T5SR;ZJ6QpCs%M~PFZ4JaArDe014d4F31OWj OP%t+@ z=0d>cafAfB(Go;_88Qze2_yCl_#b?UQojfy^jX+BvJ@6V6hJz^zgyOOi+mjbsJbSs5XM79ZXBX zgHeU0i7B8F79?#Dk3$78wSoPJr9TEs?2w5>SjCUU(U964w1N~CJb2>=tQ@6(1uC>4 zjs#7!fm%PHL1LsNiV?>UGYXIvisQ8sXD0_VMu9V6z>!#*mjYV2k^-yUK`{@D0&FqJ z32F=If|3l>T<8*7C=WCE`5={bW_})yx*Ai9U`b^Gs3}*Fk(sPpoSX<>osSd<{2>{c zdD)IRsTGNNDMgvEstlaKQi>AOb#w9|BjvEXjp{KR+QD^CK~ZW+Nu@3*^heLAS$ z2-^;>B@2qci_1&$^K(iv;X4HgYvzNuG>{wjAZH_TB2P$0er{rMcxonM0UD?bPs@Z4 zZ-EjUs3i-l)SiPsXXt`TTd48SsD+kE@Zdnz z2`*Ifld^PCX7dm>A{x%9`oOM*mbZ}g{n&@;QFVcPb5LEN#jU9oC8YM7X(@aGFH)XERS5Q4d1_L6j&3euJ`W|SfQG_BO$yjD7LLTkqLj>%eAwbe z)}qwJ9N2sX0i8*SDVc_rme9cG0*xj>dXrEQu;;+B2Uk>mmkXz}W)a9L42SQ2PL}!w0HL5HcVD zZ=pffxUqufKA9i`tDrRl42&EMpf&EC42-azKLZ20+rT}U%)Ek9P|F^%*c}uY$o>X3 zwZZ8Ww5y2;ygU~)WCU8F3mV*FVq{@rVqpgL9-sqPpd1W#ExLsQnRz8Sx&;~ed7w4U z1*NbiGg2DkOiU_DOvy>DgryO1G6Mx7%9IHr2O;t-hE{Ob6EqkP>P(gt<-^CSL1hLc z03ngc0?)l5Gb*zavvOcnIiwMRyv!98Z;;>t`;mcxD={UtI5{IR7hX?s=ceRCRpTTHXU+AOx}nTv$UbVPH>8FG@r#3kMfTpp_&b|G~;>eq2i+Ss6e} z$=DbeA={uh8Q^PY7#P?RGm1-!VEzS%SyE|EZlW%D1s8nb7RW&$ZzGBg6n)^dl%1cK zmi5*8Qd!M3a+25~{j455uJF*~s=6;?`ujZdv8 zfO!k#dPoZ&8lLQl*-4q{>9CLkS1hS%X{pKZ0SC}3c#wxdbqf=;iwqn1#BK;U48TkvJXF4n}H%)Bb7X`mK{E-0_$ z7a75N=tye05_59$b#qfw;H_EK?EK6!*p>uD!w!-ELA4YtRkJ7NH>#hd1gv_Dm-g}mTE&fxsZkksHY8XSwgqVf_8Ai z0*5m(H!-_7GdCaB%?B3Sb2dOOst8yNu{v%EMHb>dOFB(UGRDtXqbQl3EVt^3UDUoX6EFj7MZ{+ zI;>q6XsZa4+(12F(1u8;5e%$}xtS%fbOWv^LA60*3228cR1K2X_&}Y!RNa)!)RLl1 z_zVEJ(}C1xEJ{s>FX9CahQi{3fdRXIa0o&5BkRTRFm~-ikVYJ69YYdiMGh>8LB%!H z6Z~M8m-{9r=az!jAwq@0gE%RvIf<~m2}=3UkOB`9Le=p?v}YwIXXheDi%aqoi%TkX zL3JqlDo*4~lb2Fi3|o`~PRi-2`Jk=<)NE*R0CFrms5uhzGIBFZ;R92=1&Miipb=lt zraf57f@uUf6lxX&XJTGSW?5n$Jgu{)f|k!frQzl?FmNUoWPrxu;k_Vmb0EKMwG+|1%+Siubr(4@rTVnnkT>}Yu1CzJ@9ZOBYXEiNueOiRm5 zg%9t6wHD-O78k=SQX~hnCKlx-!g2;!DQGzd;ur>8O2L^ZKPf9UxdeM8!;=PUVo`p% zFVtV)&`8cmEYU4aPR&a!f*0Ii-@u~)MGrXRK+5@~(vlJ!zChRkF6u!OP@qZ{YA@J$ zcwnIz5B79QYFc7x4why%ic+xaQ*)D2Q&Lh>bkj58%gaIe3AtMYwG~A(*c+*3nV{_= zc`3QYu(g4xA&l?_xcCMYQ?LeIJ}l)R>Sj<64qSUdCi}5j3-(?nXzC6=CxXaP;NA*Y z7m8EC4Xxb#ynJ})7FI}Mk0Ee~7bTXXjMPE8Utq%-7*LD{=fR@XwA7+hM2%0-QQ&r2 zaR&T=1zh0<4rfqDQa3j-IRi04jG6@45{rscN?`>6SWjuDE_f_2r3l_)L$ZS_v8bf9 zD8C>P-n;~dEGU$c;X{U?<>{bw0ErXGo_z42I3r}63S{K~JG>Xgz`&kZoRON72-`gY z_GEG)d^b5P+~GRdL1l4XB5d~vcS&j@v`TlcJ~;Hzcm9An zdSFL`CVNm0Qou9-TpFfi7AF^_mZa*I6eZ>rXM(omL8BUK6r`Ys6mU=(OryXFC#4kS zhyl`*fn_O91`C9y2S1Zpw3p_P=HSXz>qRtnlh zp9os<1eHW8P$20EB95#dTt1|vCY6HD2+2e4wS(+LjN&5e0Vl7NO!#Vc)RF`=MGx9L z%m|+;MAi#V?x4Jpln+aNU{`{Z4d`4Kh!YtYP<#p2m6lkBG#-c)h{)!H-IkUK-&TUH zKtNUxDWp=1Gg4s953=WpnW4diV>U>)$hf^0h2HK5&tP+x&mVvk2~qC-B_2Z#T_ zX&tmB3Dm%Wnu^FPpcIcNjZwo8+?@dDvy{?g#7PsN&^|W zlMxHlkXF`lBsph*P6U8e{$RTjlfmsncsY#fIdm=Dpo0-~QPw?SOTFw#iP_nyxv)wH zY!PVD0`ie1Abp^|9_U~wSPZcyB^IT?oCi)uMft_4Nb{1YuH#BdEGhvF@xZGk9?-m! zZboVjXh$q^(gT+*jNrw6p!O$3iUYKoUN6}T4#U+`B z#_%J(q(NyXqZD+q3aCT`C3?^iE2+hqRj`^0R=L5W9K#TBQJj~br<2Q!@D*bG2QDp(Qj_z`Qj6d_1fZn= zB%+}X!(unMO$*nnTUwF^8&Sd^7i^#cw-~kx4!>GRzRXB8GBtxbgitFOi$lRH2#P`L z7E^UAa>3`Zfa+MNfl%Ku46-Dnu5Ik1ndm38DPCw3ka|?5KD@|dj>%}#-KVt$Bsc_ z9FlwyGqB(TiXc;L9E=PcOrRN9E(Qi}5MtzJV1k`3h}Bj(P-J7VRTpJRGiW_H!gAQ~ z8mN220IK@g7#Z0Z(GNT1WPt9L2e0G@op8tt^$J#pfKxgs_L1vlaNL6{22c$K(ax2W zSpq&90zTXY)(Sd{u&^{0e(ESvy5&sDF3kWPO9z|w<3p~A;3GlcNJ364{7E^9$=Ssj zsi_5^lfhu^ebA~Mq*F@3+K}UxH7O?_z8{h!5p?odKD_OVC|Hrh6FR*QZ@Zxw0nTG6 zht7Zk1JOG`RSa1p3>vY61Q*CBs*uV8R#wHFl_G?=pY3K&{+x`jEo#i z3>?g$^a@!qz|8qPYmhH7xICS`&eN{EnxvKTN_V=SHnCrwb`GJ*XJ*2ta&-mwi!X5dN$ z)U(h{$pp=#!`7UDw88@mtdW6%F9~#TWLaWfQfX0kD$E3M$_7n(fqRHhr67MHTB;mL zMVaXtCGc94qd2v&6lo|Bq#BVISdxlLVRM?`F%xL93(gRr1GZqJ5vY?e>`A40DaG&u zby<`0E8w*e!f*zTq|&0qq*C~THn8(CI%OcQ!=|^PUgAxv%FNA8Ey@L*>jdj6ae!u< z(~IE4rbrgCCMPDt=U>3>vogf+Dv~;mq38g+p%8Hn0=SI`OC6xR0A7%UT8AYk<|U>irj#ba&vpfyl98N@ zvjxPJoLB&ASs@0?!40SU&|VuT9~=^iWw4bCsHuc2 zIk6}QG{s>7J12=XH$TPD0IC-$*w~U2i^}1n$YA#;=fmS)0a7r4T9L3q96ovo+BOS1 ztd#|H2r&a2WCJq`BNGcFGibjid}R@M^$2Kh80a)zW_AV^cFnEDj&<=Sa>d%FHQ4bVNbzKzNG^9IW6lMR=44 zq@y@7CpR?{-df;*nWyMkJw%AoU_FA7j(P0~!_q&2xaJ&7iuV zF%Q$mz`&K9S(IFwS&~r-E9=2&20SK*l17mR2*BwayoU&EDqbUy(<;<*a4N!~6Wnuw zuSr0jd6WVb;jokdIT9Q^!U@W%%%E-d43KgVz9N;4feCc-F}StI#>~LR%*e*f#Kz3b z#>@iSGKJ0iQlRvgmYD+`2G7g~o$jLx8f}La8c4+wrq{t9zh zgaj-&M-M~4_Z11u6LOjL1*Yfn&ilp9;Cwv z>ZE~oT!W6P;ACKdR8~;0VOkIN38-t1l0?B}6f7^nOLNGoA<(H4po|JO5{H4{>IXS! zpfxR|!~;bR(lrO5bN0cZ4xR}HEs17^Y<_2BU}k4vW@lvPU|{BCV1}+s=7L{Wy%_24?ND7CmW2X)ys*ddU}gF6S5M{qj?Y!YPnQMVW=BoOWZ zS5sgEIFqwdO7lPsT`-q{fg3cXo2m<1|A!@CvnOZeBCY)dR~4{Dp-=;mN&(K~Z16Te zBiQs5xRLIc%I|vMHMJni~l+;pK_Y5^k(KK-6rsn7-rIy2n z$3P3?;iG|Q`HLO49v+gdco-N!{aSbx%$W>2!7?!yzA_4&!Z5NIG+ZGW3mOU-T6r=+ z=W7>1)>Aj!bBR_LbY z>LMC6u=*FCIbeH-8Q7AGGn3&P&cPl9E!l*htO*JmQko1us1KZ*A=w!9Fk;Z6 z7l_|LMK)-p4RpvjWTOT2KyuKH0t|?~A6&_$IiM3d6LVpQSAc6Q(Bu(hez6#J8xY6_ zNCbddk)Zt)(9wP5_yFy`fKRA!CYP2JrzRT0JAmL46g1!tx&Z{y-3R#?Q5JHhBxdGR zrW9quoCWStrRL^mVNX4*DWJ2lpa}sSoG5(;Xii47V)#-Lb2C%(vU5QD){9`}F*x2c z;G=-h=!1kPXeS9gePh=SE<%b6z(zuyf+!*30mKZt$_SRHI8qXGOS5y}EordRQ!*2C z^3$Ov;7WWciFu%XC%Lea5F9|ri^!pq7%+Q5!)Xw!q2q<18)#q?^_=LYfy-&IX}ZPW zoo7(jU<4$0N@8ASYEE8a5&XD%a7hF?m=%?+fKQN1g=6VgxuEz?nF) z2(jD(TCRg!0ZW6}{15g7e6a@Ngg#hm1cw0Pm~brCgM9!u0XjGV^#N*L$D$eRcE~!J zj8yoD8>sMsM?Pfa6f%(k88rc&vkN|ZmK~l?u^0``q@Yc@+3;oBf3jclOBG4Nv?!8H;h`+>_4aM=af5Do60flbAt4bgy+fJ7E#HXmds z_}CNlUN-{^A_p-suro8TvoNr;f-fI}9OevjA_J;r;FmY-D15jSww)GK z*rpbxW~UUTB1Uz^s+q!txrCTAC=f_B)0z01G=4pgMGdBD*RcOiF5 zMp0>5W}cBHyxjo~O2kqcXr_X@6KX6^N@h+@eqMHJVi9~VIiyLHlc}3u09svJ3|@>1 zPrG1?;q7v4`Y{H&Kr^D?SOl%{g*Mf|)d76A3$!qnk%65FdIKD&rwu+loQsixiwQhC zi##BV%~C$_s6!!WWF!T#(hWLr0BO=73Quq`1`PrBl*}^FwR})6B%`I~B95p+O7L8u zV=i-2K_pZ;q~r$m>~sqda}$U$bWrL8Et6z|T($=8yh61yu%+Y|Cl_CSI4LwdNN z_0LG9FS>qk0Rz?#UV#eB3rLP-PbtbwO@h}t;Ncih(kjNfFIHaCqh>R_KD({pn(#xnxTz%Flw|3 z`32n=0UG^-YKB@09;Al~G4Q06g3bj`ODrmam$Q(6hKvD2; zRaSmx9%x^97WB3sB7MhM3cbJ$d(vb{DX)a}n!&LS+IfnyTOOr&1}(#aSd6R@9B1Hy z0dkcqvQ>!m$(>SFnys5#3Obk#Vg>^b_z0-H)DomYcBH^#NlnRyO(TOH2imj@zW5Vn z1CnC4)RZ#B#c$xoWkG&UC8B8qEpef%V?hIwpg~ng0St8yTWV@)DtrwTxGe;_%LbG{ zpejH$D!2iM(%XhgqG|`XyAwedD1vTYElWjSNrd8VWIMsx7P7n?oQptbO+rn_sRtbV z(A`?d#R(|OLCRb3S;t^wP@M=aSD9qhZL#?DQdt*;fYyr zI|pn4sGfl82OmNV@ijP&K=gz9AK=TN;D?oh90rRa`KYMC=W)9-2Sa1uWIKK$opn#NdU}X$w9YNOAoFw?AR081L zv5>>Jbdip0L~R>zrsiZO7U!hFHxO~QVgIT_RRcln>futDBozk_bvXD5peY z*TV+tLBf~wVOPV7yagS*5@y8x71$N9V6VxL!hpH72$m4B8^K+cSyWOAy7~i~d%+c3 zVo3(l*&XbtTqIM$xhyF^r4sdWHTKk;)bvF7WPt#rxQ7<#;1(LFa{%s|LP|Y02GI65 zcF^@njO?JX3ve9bFdbZN!X|OS3Q<;<;Lybl8mL2cCbY>9Er&sa=up!baF`*1WQHzi z*%_$4fD}-moChyfa2XJn{Lm8s-F$ymJlJj$OL3{gQM;CBoE;zt&ELM#?SO$lnqt&2AZtwyUv}pi( zM?ENI!28%(4dntgmr%x=K*NRbQXSEr0Czb-sScdvAS-vEA%oRmfz-re(25LL+JZF# ziSsMCM+)9D548i@umxL=)Sbj?HMqrr(KN;~YX}+u1@9FFWfmp|b|yx4CMI?!W_BhP zb|zMK&?#GB>#^Db&fCx_K(H#rk+>NY} z#;P6c4x9&^f>Im))C+D*Ln;e0f)U&tLuykZG84pR$XGe@T_P-S|6uhF#K27W@3pcbOI1D2L?WD72g{0Isa$e1(47oc*Fg#mQ)4EWj^0_Jg|=TSm+ z10U8r3GQ`)2RQgq9BbC7gGPt)4FTk)@3_Os|8cI$E zr5I3Q&H%cI2i(~PjR}KR^&t&25Do$GY3seJa=8lbfP%-epI}U0CYTTh~Lhhe}`zxU2 z18NU}+7#f4V(9D*XfZ1@3j=6B0;muI9li{ki$XV(88Mv)jYPx|2Og-LlN$%%sem%o14F1;6`|y4&FL1{Ud1 zccRHvY4X@gQ2EQ3OgMYos}zV#BS036+5W1s@) zI@roH^HShDZcv>GZij&uM!+&XZ%Tf0Dd>(O>g3uH7 zKu4%&f;zA;Cm`i#{?yz|&^566N%>`PQ?q!M)(hL{Li!Y8H}h zJRsXDGxCdy5y$Vzg62|-3sO^)Ge8@o)APV*ErFIlreZy(iaj+Kbfze5aT$1U6Erjc zo=VUyE-gS>ScGIXdum>4NiqDkPN=q={33`=1^GxD)p2VB59@;F(;?@(r6RYGK^;g? zw15i+NZ$Z56%1J^2pM)k-hhPI1dQf5a7-ef)Q_lRK#e-2hAtz#9foFv0K}06Ir$~J zi8%!su;mt@v;)oEpyUHhN~nm^5zT2lkTwHoU9hIM)IZRr6;DRg03S) zIvM~R^(lFI;HwaFGOLiYFOrAYQj0Q^)3d;V!oUFTz$PXqgKnA4&qE$K#;FC|Pyvm1 zf#=|$=71cC@DZvV;68S8aT)ZmeW(s-p@mBm*p|Xl(5XR)WsFQ zQ*&TDM!`duP`AQP?x0ic5-WRVl- zgm;j4zz$+dElDhduj&Pt`zT9n!Knh?gg{jdu0cUr5Nr};@g>AAScwFhaYQyB9Ghsj zQ6ORyQ4pcp1J+fPT3nEy2M-xg+Ck}#plSg(puq>3qOQ*X1t`RckPS4r912c5kQf1P z3W53%JW>FPOwg=5+IB5a+ZNu@L3ItdoQ+=IfXgtbVY=XefgMu-j$s@Q2PaIJF7TRDnBnjV3V5#^CX-s0 zn3oJ&ipU8n19KBg-~|aN-jK6A0~?BZu%A&E#Da8yq72E2$Tolz2e<}Dtb|7Q60&-5 zqDATkfHDYtd;t=w;ISX5chKAi)eY|#fD$hxLJ&J9P<;e;A6icj6pfI^ENB=X)X4^2 z*$MF^G(6$k-cU^gM=0&3Oj`vyq*Fwl@2#TI0~TmS?fY>2ZgEx&53}bjsdi#8k7nk;v8uyNvWAdiLhN(;3@&s z!URoNfksRr${0YY6sjH641kI3tPXvzk6D8c4nY6a)q6wvW9U!PEq{3w&|}l3k$mk7#{ivkRPMK}YUjT?B(^jRfdYppv4}RPf!K zNXNE9Z3Sf-c*V&KukA1m;>s^A$xSUTMijZAHXJB$z?B0e<3SC@)Xf7rxD0grr*29y zY>fvIfg}jmmXlwelZv>A2174r8fdm4GYP(55!?!g@A!v04CG2ElP#?%H67LG<8IHG!KU;QA7=B^6xUgF+H? z+cBsj1jhsDicE-ss3w3D4rnb6_UeTvtq63=ab;>!BK(9=aFzg1@S{%oA!R+b^u(n6 zBG{5rPV}Ha^%7?~xC%xLJAs3uEVH;Y5v?x|9&3Sk4ctseUM30g90PlLVo_>I25bll zY!s~4MQ-Y{fQ$jBHAJ@JOi#@#$wWt(={`Ay>g4B|d{FKbH#AJ9@ z1!t(_{L3$^EK7xNK81{qZ2ON>$nzImA!a#?tA#MXT=pnb^fVXvk4q<}070qt2Q*#pw5H$zFnG781 znaQbnCGe&MIK7pnro$>T&{bjZbjk?2Oc~lzhfE@Z?ve*BH~=-}5FHiX^vs;3)S{B? z)Vw_S$!Kgzndyik0+uFV5y`-lo|%(coRnXlomv9RI-=lqWNLA8VnM1d?36StZ5z(? z+{DtN%w+g!IN;!h?}LPI@J8}CS9(!qQhq6D^LGGL_&I0ZtQ z^q79<%t*{ht3p~t1Xi7hJYNW%s%Hdu5FumdATL48!q5-S)5V#oMFp98#o5@mu5)K3 z<`rk;r{|RB!AAAKAr9W8PzDbJP(c7s{SfOII5HB8Qa~5DLiyl$O-#{Ef+bAU0Aa~U zEQcM@2eu+NvjVh93znrpsu7XOnvt4Z1REaa2TxoSgOUumy9TuoX+|BkJqnQ-nV6WE zm_a22@)}AMQ^7gBIHwfWHU>EW5r6C%;G-X4?SAmEc4A6?5!exlWr-z;@Pje21rC~a za6JtwmvvEFS_rKOucK)NXJO0}3qbJ>i4kaMux6xI`oQ{*U`?Qb!$iml{ZKVXNtrVv zGda6BIll;Y#sN6Bp%hJ!0D(D-JtIFgrwV@WAvp9v{Wqx5Q1`%8Gcd4c6y>BO!@J60 z^+;E5gPNxh_k)XWs3{Cw8Kvp@Nubs!tl$N^3v>@(KCCoEsuz)JL`Yo#Ue*p?VgWIc zHKQ~aUK)by?v%vh4CEW!K@Az?b}}>QWFF9ErLf}(7#Mgm6Z3Ktle1Ivsxn~-0&JFX ziY|B~G0d$<;fqZVBvx|r6HyPcfrK-x0>GvboL`^^$-^49h@^wC6`NjV(8M83uP$hw z7_nLrGN}i@<_2;?7$o4Z`x=~%;f5i`yomGyTB$-<7kCV$1a!V=dTCB#5h(Y-&cA^s zI7AzsB{LCz4M-M?|2`Xm=U)%sy z4RR8qoIp33BeMi_HVgdJ9av`+9B-h}T)0+rova0!sqmX4K|uyB5@4~-fT00-BMG=} z1$!CPmjo}+LR=k)p%Zx>8dxWIXbsdVXNIoOfqE80XK@LlqYZ7wf~Srcz*d6Sguxbx zLycg|%u7#%FD(Wq?Zo2z%)~STTTMAK^Ri2;5Qj8@iyx#7I#A=$TehI(L!hIvK?hlY z+yq)J2_CrxEsBN(K3isfN@^J_eS*s;v^hjjEF(%Lj?Dbxf(*n+9k@EkG_-(?s~}V| zpeuz{0O|0)AlPX5Yz4Y{a9+$yEdiZCj=7y09#4onj2SSj1UF^C_Z>pR2+4UYnMEeB zG8pW%qR7GU#Lbi58jRbiLp&y&2 z;D7*+dBK7Pqz4fYTp)**XXfO<2mHZ0FegG0v6_{bky?(ps}QA84?b81R`w!X#=x1C zn445-XlMXC?-v{xNjdrHx~X~Th&$lG<1(NO2g0B-1w2E9a4v6FVs2`2Zens`DdMtB zaMu9Zt$+p$xCIJNQQ&j^7@3)ohe8;^C#exI89cKMS_-5KI@G%ea`Y;^?F|Y^gde%G z67#ZBLDhIR)Dd`B4uCbo1C=K$u?RHio|{<&Kg$H1*1@|kq2_^7CaADQYDF<%(+G}1 zaFT(IS0U*Hoh<=2k25Q=I6p5pF$1OuZ(kPNv;&nhpw2aTc`6eV=-32iCeUgg(8eq# z_}O0US)i+i;03-Q=w$C=-Nd{UUC5v`tZ;(1G~sPLu(KE#(6od0QDtYAfci9`!@RRo zGfR?ELFcl;l!NAD!BsG*%?Z9S1*tAZbqZ%eQED-`tpL>ws~-_HQ5NV3nqqjD6`ZzG zQj;@tQKKCma~#+-fSOZ?QW2w!=Ewpa$DpMYETX{wS z=D~6qIJFm-6s0D@I`bHj%9)jxo0^xNngeqX*k?JYV?B^I3Dm1BS(%6<)F4F*)@dlV ztjxSDcpU>S)ROb_K+`Qqdu*ZU9MqTqUwi|#1640L4PdN-0*4$tt)c1wS3$5*W2l)R zt3VzB*@blFAF4*M?~yJU1ZjenE1)b5+hc&L3G6rUXctP!g49p~`wiYMLAlfi)hKXd zIum>XvTg?G78Z^kL$K=+tt8Ne5S)w*T*#Y{ zKvzC62rx1TB1(Q#Tfp%EUH5@l=Y^E?u_y;!F@h2*NXoggGC_A#=OS*2XV1;d%glw} z5Q-YbtXWxzy|Cb_H90>wKQA#ww<@y$F)WK@0g4W2)F#7v?MimpwVVbwSrmsdEoF*%Ph`F zO3lnOgsK78-Jl(vh;e2?Z~%hb2Pqw4Gi0C?4?gSzv^o&7-Wh%}D%3Rgto*#x;tcrm z1W;0i=1r&ya6*GLIw1$TfF~6}trB?Mhh_-4umM-!plfGfnHCgNP7M@LX?`Y zR12O$1aHLyhZLG$z)md5NQEzOgr*^I9R}+Mz;YV{M^=7*USd@utbYm)iFEiiGDzM- zR|#=vWdZoMK9sAi!RNVy5(TI!1W6L0DI?HTBA`Ys^o$j_6Zo?7i_%l`K<5A!rK1~a{=IZNl(p(AGV8ACD_oM{KOP^ zF@#eoI1=D{B*D{@&|pH+!kSf-3cr08ToNPIIvA}4o~+`;yyT43;+$0YiYKs(K;wt- zc~nqjU>@5S{>oM8=*~lAo1_x|##r_bowOhXoFNaESnQFMAf~uAvlIteZa4s!I^d88SFqp}b?`LF4RU*CUT$VCd=iZXG>Q%N3S1on z0~VFwhHGL`GTN10_%(s629Omf?Er8U11_mR)e2}A05fQ24KW^y)dAqL0&Etfc>(XR zfTI)Kc7}R{E2}J}EGM;X62?CJ`v1);oI*Fylu)Z3G8?kBw+mwqq(GnD!po9bpE6_*<%6?X?CV+EPd16s< z24WQthTW`L<*D!+V8QK+%;J0tGXr>&19G7gJWe1jMMxtEayu0?pivCsEG|ea0*w^H zM$SOl0F=u>5eyn|fo#`+b<7wTIJ3%gL5H8hmm7hnW3X>!g|=KlwJEHB1a$*AhW$E`4OFfnpM?ZR{s2k3m<%w+g|-Qdz6oF5TO64|mUixHPkfD1hE3FL|8 zsm1y5qc~9e;h-@&R>;zRaB~Lg00!>t#GIVO;)0?~_`V8oIRid<2XsggtTBTWEF9U1 zIi)2Tsj$Vw;Ht7XFR`FFBfmr!lvZFl6^|xx5m=fDN>w@eMet?S=)IszJ*NAYNqyE$qpJEh2*y4v7UYheG$VKq_ZQ76mU* z0tFijsHA{ZH>k#di>Bi8%mP?8g=Q^yIfJOOS+hZ%5r|tDxYBcqb94(5i%VeB(J1*F z-0uKic?7eT0abfpX<|ugQ65^m8eCO@QXgCwdv<0Xs2vWq7MxTHN|SOji!;FS1Qmzo z6r_qDRUZ#{;~w;uaHt+oaSADrK(#R_oFEsqf~7gKGmDau4%G(t!XY&c;x2iRm*D{g zIi-<_ft3lgi3h78{Gc|pE_CV&;dO8g0{1anc6LENyhs7Z59nTG*dzl;F~XauiXkOt zX-S5GZfQ{t%IFO^fWW~Eb{PW$s!njRp9*g1z!DT_bR3eJ;6*+37;W(JOOQ>oP{X*h za}q&!j+bP@6ExVwjMT&utSgLJvU8JQy&Z_k{1TieT(f8ArIsUZGzVwaqO@dFOA8C| z;3_=pfjkL`52(A?vh#9MQ{e5(643fg)U(2nk~=8xfr>k*UiR$#%EaUhSSt{mUyI@W z8>Di9J-aBixY!c5P)h)`f;c}{w;(wkrI`bYI7B;vC%Y)KI58_VFFO-{_%f%nxF~3J`2YgA1|L3iv30IlQR>D*u?k_Yr`WRDthyfm}nt zzzDiI4V(laCxCH4F3APokjudWz9g5Cfs=`WlbL~&g@KC!G*-&R#K6VG$i>9O#l+0T z#KOhI%EiRS#mvCP%*e&e#Kp|a#lpbF!pOzSz{SSE#m>OR0Xle`hXHiV6Au#u4>JP~ zGb0ZR0}m?$4;upyI|B~~0}m$y4;KRuH|Vk=J_ZIp21d~Jy9|s13=Dz{41$adf{ctp z3=Bey3_^^I!VC<;j10m|48qI|!Ym9T3=E-*Z3=9&C z3=&KX63h&e3=EPCjFOBDl1vPe%nXt&43ex2l57l;Y>bj@Op@#jk{k?@9E_5j43b<7 zlH3fEJPeY&3{ngXQj82zjEquD3{uPtQY;KotPIi&4AP7Y(o77}%nZ`-78kY%;R2OV zi6uyP4$45I1k&h)6stI@$=d-4=3_1UTkcKqC&I!$MdX z*jO0YA=gWQ(=7u7HW#p?9?u5K(vT$*c=T{#EJT6ca{ z%t_HLEdcdapr(So1#T2U1yHR4XSw8}$^z805ka*T%pz0`;Ea@!n+V%y4R#Y~01#|E zs#>s{K%L<7)TEMp#3jlE+yt%xLA?>(0>o8DNW~zkCEz9)eX8?5|94FYhSfNpSu+5@s1Vln7YCWs(Qb}2keRUg7!Vrl;m7 z=YzIVLG>c)U3gOwD#MWjI;}nlK3fe=u8`pn&~`s~We*KbNJ7G)7u@v&FGA8y1zk;# z^Ku0=JHbtRh(2(`5o$bA&~oP_7FXru7bNDTz($6^?HJI&cRsxD!v@N+44`9^!KEW; z;1_BXS59I{NopR_xeDMspOjdfYGwje!-A|ED#nomniw%lgvARuxu#`;cD3muwi>|t zARq(4BR>$`=$gS}DBu&mbukZyMXt`7K_xuc47Qxq#B}%p1N@*FSIDq4@~PLLgn?3M zqw3-;&C4t-P1S|pSPn|)h=j+HlMd=uWWzdV;DCWNy}?cZUuy}PPX%d%h;Zg)CgvuW z7Qy$Dfb$agQZI-CP*DqIF|dPrYk5^LP z12=}jE7tQ;^Gc8-0dMyP%@jy;u^3kHfQo5Q(g82ZL7x3agaWdkz##}}IG~O*Ly|wJ zw1XRh-2|{NKvhyfacXHwKGOUmI4OZ*50*aATngu#l^+B zP=mQ3$5|k?P(Yar7Um2LoH?Z_Wtr*4@F7%iVF%h)iMVJ3sdQw|DNQS>%7k~kK=X=) zrHLt^tOB(Wb@?|}PHA>(d1`S<609@@2Qzr_4QkN@t%*T?0*@y_gNqTl-_5{)X&$(s z1e=F^o*}4{3o5C=V-BDb>OnUaf=1|(jfJ`x(@by;k9}P!reg5AJ7_rrUJihAycIa% zfzvtIS70kK%>dWJpzRr;0X(o8!~w?OaaCAn3tI?qVfY@Dxj+F4ufQ>Fb9i5c`q#DuDIs5Y{k&P8%)B z%!6N)3yyxQC&_@a6C@*n+83ba1vpHh1{A{*DA)kdUfJT3qS9p0WuCBsKxhCVQUZH! zVsUXP{J2p_QiacL!BPP@wSui;VBiGZj+$Cp48Qvk+++YvqJfvtg64doDnYpl_514Hbkou&%5m#0WpQ!(335S)7ZsM-~)1ka`|u0K_Rg zAm@Ru{R6EBh6q7UnN7(o23<;3qKnuwgqm!4auX{ubMtdjGxI885ecq1A!ENN*LHw) z!rCSb?74{*#d)daQ0rKb&M^f!3_0=`m~)e0sTOQF_#{)*VN_5e1L*;0eQ=b44d%#A zs>~@afo~@PYX@h;jMSWhRQRSwn3eEKg*7+X+`tTM1_J{)vnS_(%KJ*h^{(K9+96Ff zYz+Bo*FZ1t))ad5h^%K8P96`$b@7A81J}WVR91Cj(9KFfxM=5@ZHX zt}(MPg2u0q#t{)E6{Zz}AS*xEIx=HO%NL5GTR zFfei;Ws&rJ_@Rv8vIaebVf862Q-bf^1VREBF$h(Sl!Z{#fvc3f{5gxRkqRJC<^Y8j^i&4OYCC4oLD}Hx3()a?FfXE*4t6-y^kVRdC{PP<`4n6o zLC(yA@5ls|XP^iIwR&M=3EHrTV5Xwjh^CkuGXH|?CDbrr&n-wv%!H55frn)ggI1845m*xgRVP<& zL1q<}Rf4IYg^lp-SfJ(yasdhnMFvdG;JO_$n4FlGmtTT>U@-KmVrcgRoRi@vtU~HL zc)85V0J>)gbaOGNq+?=dU;kK#ttfoWwlD%4Cj|%;Z$0 zW3f?O1Vs0hwW2OlN_&ypC)MF65T zD?cNzI6u$W2)5pb4KyWW3acx@ITD=85cwIGPQm2-%skLhwV>*uKo{#?KU{j*K)W8` z(T)^axHaT}tb(R}kTW6WF+6A(IPy~Ri%Jk@T!EuM9lR?IX*3fYk?>|ZTV85PF#PmP zaN32(ye`uEd60deSOT|xpl;yFOD!$RhaLe36$9G|?i=fZ`Z!Qg)OIqW>BGRlmzP=& z%4x-Ai8+Xz3^pY(DH(O~5!mJMB#2!nI5~ip8y8jTg5niE)rXNBuyg!2Kdn*fW6w0UWAW3<4MIP=jq^@%a zQ2~6z4!8@ImYI{PTLiwP9_kKIvjmG!!w?>L%wPx*RCw3B)PT&}GZdNX&yT zDdYm3rk)BqmkbsZh|mYG{RKrjWX}jz{osCJd1{g_XxJ920+i%HR>JZnR2bD_^gE7_ z5(uh7KG3oR?ArFB`#w!kI;|0e4VwhG?U4<`<;q73b%` z*Dav0*N3HKP`oiih8&=A0Sg$Y{TL=;zjX|emB9MJnlZGBq3(>uJY@^sVPIgu(9DvX zS`3>bA>di0tD>N}43ak?K7?i!xLp`Fae;T#>VhT$!2UqrLx`b42%!PZPe`%Ho?ld2 ztP39n0k;r9v6Pvjo1CAQmkQrB4o+r}Tn(|F8?;G3H#09KB?s2$^Q#cU za^TtcY^HgH1+GExq88(RTratqc~U<02?1nX3x6l&lrRG^v| zctN`IGct=3(@L{oO$2aEfYy`if_AWhdxuc<;6x3o6_KVgu^Is`-aw5?q{G=ku7D&s zcr5`n7ON59_EKRH$O%woC`lLM0!R=bnl4yPf^g5>6SNg0HODg#R&;^2K~ojBy=~kDi6x+m46;h{VNncDS|y+)05ug<%0dz^c;FPg zq#ITlgKR9#NzN}qJ(e!7G&d==2(_<+l$1FO5>YjQ8->sY7xK-dNP5@`QWA6XVg3S_ z(8=)GMvxPsEeCKJ390a*?nl)L3H-$3jLZ~Re1KyP+?@iqv0$AQRDED4f{xQH)=en_ z9b*hN9jqCgi6BcDp~4&msYRLjDVb;vhOMmvCx4igP%YdAsU@jJ#Z{?A@KtHx#GhD{ z1lm*$D`dc@f`BcAS9;(*`JnTGz$cJ0FflVi7C3`uD?sb}!Mj?ZwlFYYu?G^I@N;2E zab0?1Zfa3Je7`y;H~YDc@tb)1eig4*Eks&I2jqCn*$gb5&Hv} zK@0!685p@48Mv7kKsx{!7*tU zNm0I~fhE`+1_p3P5;Sa*T?svx2r7YEoUj*U<{(c2rsZJU_|8(0nFp)!!07?&tT=Z; zW`0RgN@)_})E96WlUP)uo0+Ez?;IlKT-Jj8@>E#r1xI{ZX4$?YcP(cQYbwszX zAiokZ^$89hl>3c98bGxNyrsd0q5)inf#%s@Lsm%6VJj%g%!aqV*-=lx!l@3N{XyMT zv^BEW;tACT4zzvn(AGW3yWp}4I-CrTWmMg~ke075XoRd3R$xJmfV8|ICo_Zc2|V=J zLH9}~!Z$*K-45zyfQEx}QsEbifZYx*Nf3DzO)I#=4QgjV6P6wmXdN?XnIgz?*l;c* z0~@p~0v%)vp85gp_W;)vpewgQTj4;9jqd+ z3u>}}E{B1wqva_m$~QDHNXyL0EPxpSt|3rcai9PPMHskZhwOR*1vos;1PY4svr>~w zbkjXm;>SYe#^_3WbhCZ0bTTql=m6)8Iky)Nt4qG9`k(!p4o1c;j zYXO5(8Mu*x82iAg5nMEYhb=%YHCV+7(hm0{)c07mgA0l5)a2wu*cup6DTwH|VbugK zyGo04P=?`<3IPt#F4NS+Y*@|%yAf3V7bh2G7QhNMP-z5lBh-OB1*O^9iMgeqU3{=! zJ=iMn34NfGHK7Wj4N-_@Xk!+Xvp}=QP$ldIrA7G}@XU;Tg#wb3*$T>2^Gd3qy1^~* zf}+%tl1klzBJfZNR0dQZA@V(2K~-j6I&7&fxSfl*e;B3T4{Cgaie4}VjWfdC%37qG ztqa?k3~suB?L!>tj_3_T-GHKlFE_D3H!(T66f~~^FQkxs#sxk~C^ZLhBrrHSk`oIu zOOW@zpvF5_QDRnNaYkYhe4Gw^uPvxN1UImCVY?SfGLh#2k?iFuN=?kEOf1UGNraz~ z!2#mu=EHkBpdqEW9SCpEOmk&DG6!{Jyu!D;;)AJH@bQ5!s(+?;(;k6leQEFyh zYLRYAeh#cuf<_7WmH_niNMOssxfN(Kmrp$@++EBaP?S_m{|l`%Ab)6uS!5A z4Za6yQmc9x&^R@z<2NJqU@EzNG9w>Il9@1W)?WY(?N3_ z@Hu)yTEGqjAB~$>q>FqnGPb~DFUl#+M4Z0@&I=f6QWuhoAd87WQ4LNrOiZ9s2Gs5c zEudil?^gydib87NvokS*S`~~89E^+{j7%J`y}%r-3>>VC9Bd36Y>XUiOdRas-N6iu zkk&sZBNJ$wFcTvu6B8#BGibjsGb1NFU7@)d9NnNpFm;Pl6N}(u>);7Oa0UeTRX~&5 zpz#Dy>Bt01sGxo&XpI;+4S~`sNmAeZyLmhnQ#qClJu?5?lvxVOI^F*@I>%_}P;7d^nL0f+4|IvOZb~M6NE7TqSki-<2GXCISCF5bUz7(M)&ZBUNuU}u ztrWg)3tE@MV*znuE_YFWQh7#ZNn$pxBXyGdOfOx2H890kTdrA{?-~+bcUQ06K2w#j0z+04` z4jP|H&PXhS@4^EYf1u+?5SLMboQQ~0th&H)3T{9rrGPwG3E%b!uDW2|D@ZSojR9O} zfz}N%gTfx-1FYtP+fN{KK}iLo4!lMV-UbKlp@)Y%RwKYmz+gt`CKng$qOP|_^&M+b zKH{`;aB2Y!Vda9xq@dPg1S4lrehz4?96mP>4#Kp=GNcwR+=-xKFF&`qBoWpi2G@n4 z)9qjx4iqAw2!>Cb!1Zz#m87NSq#*8yzmo}{Lh#TB zVq{SfG$aL%L}-By&LWV3HSjPSY9|+59YJd$CU8B&2<_NnA4+0mG~+$p7sD#Z*a2kv8|prM0fy!NGDHBd6@l(q zg(V$u5tNjlUjo`W0_z1q(>^33A#Eb4t(--biFvxksqo!_{KX}yIiL%CK*3j>0vi+n z#Xh8vfofz2Y0S%jb$z+PEz&g5aSE{R8Ip(46oYdprUuZE6C|9GyY$%Y0}or|<|Ezg zh~YvmkPGv3iu2*)v*57F%}>roo(+fULxd-$K5&Z)d~`LqdjNG2R3jp{F&7)df{O=y zLV+%54iDb>0ILUuA*|qGE;fU$69kty;N^LlX|SdTa`+V|=4GNCr<9ulJ2VM88Uh*s z0i|-#-3yS-l#C1r{;mqTT3m7~Wt9x26({ z3qWIb$oJ|Xspc+D&MzrR&M!)b4;+AdJD}n;50pG|5J!MPt9p1r134m|5wbIak%JL5 z*#Pzc7DK^t2{N=O6|un!oX%mbI!HkV*3ZCz#RRakphZk>0nTM~SagCLFYwhJ$@#fS zuz18D5Qr5a$a>h3(>!E046zZ0qc}A&F9UH147m139-;@QDh8xA#$X)}S^biteE6jYpmGhA9zl!Gpuxnz4YIEwzZ7&P22>0@gaT^BgKoFUOV=$f$b?T@ zf{J29OOK;CwX`TR7rr2bwKyjeejp(@ZoruZ(j-8Xr5wfSMTuz^hDJ~e!Ff9|IT_(= zq+mr?3=RyuFfziGR`%DEe`;@x*#(#50-F1aRE;Ua3^P^f^IH@ znFqE5t?EX#BR4-k8@^_mGdVX!7kTLsl3KRnjM9=+*cMH27p15mxge*s7*y4QiaMwp zP$L+0(m`TgVrB{aav*S{2QlRZTEGu#`hoKxB%VRr0N{lye{p7ReqL&MYEnunXgm*U z3phAHw!-?KNKOUWnV*+oXaK(|2%J7pidLkU1DAl1iViXa09n5V$|exYFwFxOf#9u! zC>x?dQ36c}@a%=D85{tJbCm?(zK0BHK=LzW>j8Lo9%vec6}&i)m5GTJmYf(c4F(ra zpn)jR_!{W)5LgY56gC{inRzLh+34$txbUS2|@k_c>*2-=vu%hE953tCZ!_P z4Oqw7KwAPUb@TFz;9E7p0as9znVbr#=^z0N>W6?@T2LN0rarLON)n5+b&FC9QbA`~ zLe-+CHn!rd{GvQ#s2tdD;Mx7kBW7xb*kRh*ximz|oCm;uY-;IPRrNCj7uh|?0l@c}NK zVBW&e32xvc>C^?aSYUnzwUNM`7|>uDJaIwIVh7jE7O?g1Tt)f0*@=0ehA>nCQqtiq zF317(|IXgjG7E}J@{3Xt8?Hg|4oP=Y#|36 zf~Hd$nZSE+K^w<88JM^jn7A33Kr_{hOuP(Cd<;zd3{0STS+H@amNBOm!RkIa$VrNj zQDI0A22>-1&QF95Yl8<7Ajev=GlN>boD2+{4B&MtAd-oj0d!UnHzOktXh{lqRSL*{ zu)PcnXyMA70be~Y0`(v$@q!Kxg&cDVuiW675OSP1bQ&3U-X_#^RDTJ84nu*iJVhS; zM@`_UdYB4fnG`8%d5cR@3o=skic(Wj;HRa4lLWY03~pH^mS%#6&Y%{6vmm(CgX96|ia1aU9aadVngL0rsb$HD zMey}z=%IsbCnQ;dR~SOA1Z_wJc@k7=fntn_5p)?*d!phQUHYn zN+^K522WHFZ46w+r3Ij?0gK?1vXI^)Xe_e`ait1IWMS&VH3Y>BN><>eCe%uv;?g3} zaV4oGi8-)A0C1}|sWb;Zjfrw90Myao{Sly42hI%eX(|>*R#wocH*DY=)S+i&1Jz() z3$a-T&i7a*Sdh{QHf`Whf25ITlvrnmFOI^d6`V^!y+Y8iGT2=x`#!O00avQ<>s~(?u1ZWwLP_B8 zb0}cp0!rYZ1^{v|9aSGV26Gb2VLFfk1XUq8C_s)XE=kOVjSYfageVobL3g`=jz+4? zgN+V@gFQDhxhOw7F|P=|)gQ?g_L9_8(1jIHzk^RGfG_a?xgS!BAm%H1OF$=@f=&T6 zw1l7i%?@e8z*^xTcOixr*h^B2Qme9ILB*U1Uv~yeub>3k-T&mm4i^8~o01euR=xeut53^E+KeZ~R`F;G7lQVhW= zV+J$>xe#~0Kr93~7Rq8^ElDlThOMpThm6}~Cgr3e?-B($6|&MCAS7Vl+Ddqx3A(@;v|1mWB^a1MWemg|bYnO`*FWeYwr_(b#o;l-1Zw?( z4y;5v4gt*>;Q9*tLO@Wr03NUC_JZ|+Rv)M8LhrM|Qud&00;fI58WG*(MELc0pioAX zgy@>UB^G2R2|7^?2?@}&H>{Qd=WtN-79xdi1RrR%2q?Mhf|?I7hk~p{q<6uRjMSw3 z{OtTR(1MQ2e0cQ$j$=^KonH)3TAR)Gea;X^~<5XuMT4X6r~Apl5F!N(>UFtmf?yr3w*BtNMXcH|SFX~AVoW99XQw~ zRNdgLl$My6TuD$PJ9w)ee8`h6HM1lGo{~Y8CMbNt6BnS=2wsy0N{z5H%$VVmHE0I$ z7NwSy7Uk*Y7nC6OM}x{Aka?g%Qqb~s(B;G+KCDVaGlK^*)B;+s0Y7dS6t;-s08ImX zNl|7Vu9Y|(CHc8o*_kP@r6k~G2;h_2%M&ZH40eKsWkBs7w5bsAGD659WsKkf7Dg`c zE+B9;FtC?^F2jW1i3Tp7(lbjkN|R8B1VP?F6fbNg`9&r0of_cu1v)acQr8IPSkM>( zBw<2lhZ$JF!|33Y53!o7q$o8ltuhaBO>`G^wprFrS4h~tUD9zmSM4JuJltYH96`hjXt1}4N& z{+uPHMM?R-iO#UjK1X6+CGrA8BnvUrawcaarh@Yu*x}$ico1zOsO8}P3{)P&1aOdo zE|$;CgWo3r3J65f!_dN#oƲt-dWhRY6a&>1nh#h@$sVAFDt>Iu~H!=*_SbQUVu zYmnwU$|dDs?O)kEwhr4@sO!)bG z;2H%XigLg!$Z3#(hdPb56ttZN$^p0U3liZIU#K?mm6l|KPCd>p%`QqU$%N_wJ1{dZ zEeElW9w|+*mnG&P-QEhGflbLu%uCM)O{L}KrJ~Q$Ly8Ef+3aPBC8?S4lVQP?T~cZ; zwEYKbE+ARQU6u(_4?0vICJWXCYD_>*QiBPDlLn+}h1E$6>}B9PGGKinaNb~^@dC;|<`p_gx=l;z+(W#F?jL7VwNs~y27l7e>fF@n}SLfyz-mYbZB2w%Pd zji%g!{NhZ|L4;6MAXg%4PtLOZoYLIXO!zuLzT)Jf)YLra;1jI2K}rxdX8L}2|oEGPRri+U+;K!vy>vd4u3N+9RDr3Rh zlR;bkpq}L{Pb^9-DMhSf1vg(o`4hQd0!0G6KgL>~h`7*%JFz%9GZV#QNI}6`4!WTh zY86^#fTWDAJhdnf-Y#TM$*fGw$%l;&LA{RR1YU@Sl+^U1e0YC>3v~E7N}&iED}dC5 zkSq==i6D;QF3-%#(FL8|3}0^p?vg|9Dn?ulh#E=!AYGY>x!`5!$?(DtoYcWrA|rOL zfHlH06ax;8;IPg~t$=$SSu(N??4_Z?t!)w-ZHFbEA$76Xa~aGeV}TA={GTpsKiQ2s({wV>z$I|sDR2EL;K zR3d?NfJfXxI^ z_WnU_fa_vlV5>+i%7?EM<1NU{%LDa@kuMfOQq573nUj~F3}1xD0-7U+8VU^zP%#D1 z_MD&|a(1FF>h%K99$QgnQW8AU!Nmoy5fVoF(RQAuVoqL>1^8k~v|-b6JAT)2Uc8K}sG z4J_cZ7hDrnrw{q$$|^Q?8FlI3V)D#Sh{6kz^=X^vkYGL zgU47P{$K#_=>=`cfyN92TUBCGell#d7M%IvTb`h5pd(|Th6Z@*5mX3+jes_}z=PYM zBhTP*%T|?`nF1ei0~-oz@gbjC2l51>hDX%^$xcO?DTvF_5HSF9F=%81>NqJ-RHmeY zDrMb*%z{+V@&@p(26(#Q zB{@*5@u>#4*@{yuu$atVRi2rHIN1?A7?N0)1Mb9u*23lFL)LCVZ2{NQpke_Ohtks)A{QuRcJt z4y>&x6|}a4*S+=SBiyfaSr4?zVbJ6Kx~w^a~F6{W%kA#ke%XO+^DG~JSX#CmCH@FKE2nxDnN6(Tebq*fH5 rB_PlM4Wx+&s!G7UA<%R`_5nLdr(4*1vlNmYc$b}1$hDhQs3Bp literal 0 HcmV?d00001