From 45d3bb4f048d6f5b5134b44e0308dd52b63c9087 Mon Sep 17 00:00:00 2001 From: Leo Franchi Date: Thu, 9 Jan 2014 11:11:50 -0500 Subject: [PATCH] Update our pivotal integration to handle v5 of their API (imported from commit 2deba4ed2f72c7d7ccedafbb8fc4370b2faa5490) --- static/images/integrations/pivotal/001.png | Bin 26118 -> 22327 bytes static/images/integrations/pivotal/002.png | Bin 41869 -> 53987 bytes templates/zerver/integrations.html | 3 + .../fixtures/pivotal/pivotal_v5_accepted.json | 47 +++++ .../pivotal/pivotal_v5_commented.json | 68 +++++++ .../fixtures/pivotal/pivotal_v5_created.json | 59 ++++++ .../pivotal/pivotal_v5_created_estimate.json | 45 +++++ .../pivotal/pivotal_v5_delivered.json | 47 +++++ .../fixtures/pivotal/pivotal_v5_finished.json | 47 +++++ zerver/fixtures/pivotal/pivotal_v5_moved.json | 49 +++++ .../fixtures/pivotal/pivotal_v5_rejected.json | 70 +++++++ .../fixtures/pivotal/pivotal_v5_started.json | 47 +++++ .../pivotal/pivotal_v5_type_changed.json | 47 +++++ zerver/tests.py | 87 ++++++++- zerver/views/webhooks.py | 183 +++++++++++++----- 15 files changed, 750 insertions(+), 49 deletions(-) create mode 100644 zerver/fixtures/pivotal/pivotal_v5_accepted.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_commented.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_created.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_created_estimate.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_delivered.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_finished.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_moved.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_rejected.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_started.json create mode 100644 zerver/fixtures/pivotal/pivotal_v5_type_changed.json diff --git a/static/images/integrations/pivotal/001.png b/static/images/integrations/pivotal/001.png index 00d50988d295222af6d0219466f1854253e897e6..c2deabf1eabfdff520b62c0015b2ab9e519477a5 100644 GIT binary patch literal 22327 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 literal 26118 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 MsOqZJDp^JT50QzKe*gdg diff --git a/static/images/integrations/pivotal/002.png b/static/images/integrations/pivotal/002.png index 6cc219275417edbaf4334f30afc86f1ff74bba36..53c3528a87e2da3655b1ed76b5abacab1a616b2d 100644 GIT binary patch literal 53987 zcmbTdWmKC>)HWPwffg+k*HTWA;_gWxCIFA^3rpj z=UeMt>;3huBrD0>lgXaFXRf)n+!0C&QW&Vjr~m)}L;9<@3IOnm8~{Ktc!T`Xg7!G% z^YZrEQdC|P0H^_?Js2asd`ECmk@^Ct94Fm>`SQW^tBO1T;7ttx1cm?rcP~wWdjNnN z3jlCn1OV`*0RRM!SuM%}FBgzaWTnIb&wn4e?Zt^NEpHvaYP-Dr5zgNi!sLqo!^_VB z(&D0Oo{NVo9-eCIcU`CO>>*sEu-7<qlhll44GJ06lAciHX z7fgH#xAGqO>vFgfqEj5VN#M@D;(y0Esc@~Ft~M4U=CUPJ0p)56*m9A$1vBsko(oAQ zDc%Y!<@_sfPtzo?s)k)}YCb9S40i~Dbvrf&(6*!dU~vvC!8^1$>8T? z#Q+8JAtR3~X>{xutM?Q!5C<6)saR4ZvDXlcgY018N0;K}X2L-4%hDzr_*;U+#-)Wg z*z16m5)qZ?pa`g9 z`eG9od{WfR!aPA2C9Ub#$8K8V-9#6MW5NZE?O8W15{D0;qEc3v>B=;B1$r8f7P8dj z`uYsy&IhO!g?6PUug&5-CZ)6IwfHz~4hvQW{|xbm@-t-Z#4wsK0V$T{Efgq?-At{Q zYKX!jkA#ozvPgw|Ul&gX7R4NB2!ReL-H%5Lzp_u%Ym;Pfq56~J_Dc_dp>@Zp`nam8 zv-(vZdG|NYHrHKMwkE2z z+amkG4!8|8rR_}{+xyV=#2p!Zs+YdJ*!ssQ?)NFm6)wqsmhY#Sm}2D)8LiJil{ zd2T?~onRIN>15}*tQ<358 zzty!A?1`esOx<=7UmZt*L*?q-TP}Yc>Ri)3r?+MuA)&rlmBAApR?9<*(y@6ewYp{0 z&qk3sL?x|^a90>|$!`B?TUSgQHvAmBf3SU@egICk##-rWAD@G^h@67mOB0-;;aY_b-d!byQ^rj z1uL0XJ-%BmeAy+XaQ4N#S)Yd+CwvC2z!m$dQzBO~B->fs3~f0pWTgW8f*4UTWrf;@ zP~6%e`s19@3xZ>$T>Y$2mS9N)$9_LBo9O|St9WnQtzgH9ds1@d^SQ5ug^#^D#H5Gi zGwM86wP!zN)|mZPj2FfE^5qfhPQb7tQNN{{;m)$TEwfUa8`0+r7i@Y1&+On;w&LWJ zgYjllRLdN)(R3tO>HN-+q&Lx=gedC3`+dDrN4{*H zY}81V+v2`ox%(NAB2!gj?nbr6-G~N+0n{Y{Igp+Iuo`Z^gI^@h5F@i5@CyQcz=)_a z?pdS17y`@MZDs`eujsCOnd|!{%{x^!HF0U_x0vAtho8f%Ts!QmGO{daR(60Wn+Rvzj|L1wW`}iwDr+p*O!-C!B;hfaU1#b-KH&hF~u##aX&wl!>*-*Z@BAgPl z0$LyA=Rda@Hf?kM5ELNao@o(w_CTV$(whnV$5<$Rs9e*~Y+?KhfDgknau9wPE1}sl zfJGf&ONmalNkXze?&tv>;ruQE)B%Ig_QS{gIb?WwK$?@3!S#mFLgG!qWxI zocNTKfhk4dm<3zR{n6jBJxmRT`!IA|y^)l4+NZZJs|psrOGzk8yXVqDnCF2*0+1@I zjM<>uy2^of$^;VoL#+;t1x_yDBLynBUVlN|lw+1FLav7eo67-e?nN&B_7TG2N@f1< z8uA*ymYzuc+^Ia$r)>^cnHaQ5XruOl!@%3@^ZnUL+gis5)Uz|HuRMKL)467Mo7vQ(2d_}-41FRB z3(cW7{{W$GM3;^yBjrP*^S`79-O0%X5+Ljr&ho0SJg?QG8>E|Bz0N^|;9AqA!M2<; zPMbOSYoqzCboBj+KQ4Wd?&s_5iZu*NQv{kZ+2d608=oKbC0t3nV#4Uq_weC13>bd;3SO^^w$MBdGsMT$8Aj+3{L^ zvV8(I*vz?fVQZvxI-L)c3}PlWY@!H(+R>USsVYohxwNRdLS8|Pw0hTlWzmYxUnrAk zQ8Or`t-5M27&VUm7<)(}6Jv|dz1>t3?Y5q?EFlry92m0-(f9?81o|val=le1dn@dI@C5jiup_{Rl;V(~+?QH(E+hze)sw^>buH|j^KueZ`g#K7zbEAt z1ol5)W9w$>t6DzoG0cb8D1w z-lStifhfG^ibFp|2h*&WYYKgSTB7`4IHD4M&J^ZUhJif^0S*0v50+<_TDYO^!>ZHqA_Z3@ zPx}Hb%mN+*0Oh`ytQs17BgV}B!%+TNv8hNcFEFi;Bm(Y1ETN2L8RqU2o}7WQc(x5_ zql4T|yHhT_D2)XW+3~3<+8)de|9J}E9Yi$hbQKtqmosyKy69Xc8|FD`z?yop+5zR> zcBEyWQ*I~q?Aw37XO1E37BZz-%%s1r%Xb)3g)8i|6Xa}W218E z8z#8TGLvd3~lNxpbvxcU_~ng|Bwd1=eWxDq|^ zJTE(|YL|~8NXVmfK{hCS9|p!aex}{jP~CVOTVV3ruT2ktZxKQpJ%sy(?;1q+ak?il zm}{)T*vCijL?vRFT0`lz2N%t4oc62CJZpC&haiFG_3JfY0+s;;B%}rN&F7`;1wH80 zIrr|Y+x84E7%~o)h?=A)12CnQJy66}vm8wSdjCLy^mmDATN@~XgG>lCE9-(}H@9Qm zf_L%$@?S%lqs|%BiJso!V~E2$3JlWH`c95ce!d`|jF$A@$3C&E1S0{dOG^BLBE@gG zZ&#c4^q>{Ln|!I{b;AorR>vz3O&0q}hV2=dRXA}IcNc=?DHJS+Yb%n2-8?tXpL7y^ zp2;v#e6BpH;RO1w%3p8UI(;*wEQ^g1?OV4^6`LH$M%sU}&@I0gD+p-o^Wir9etcsw z5bYZQd^$(tcH4`Pu5o;%p>Q@A1QrWM|i6}yjFGn*j$#gvqSlPqr zqF`s98*c~N5+w&)4Y%?tiDeD_QVKg2H)kkx&J{QJr>`lm-R#!1ebx53!;8FP%es#k z&m~qn3#qoAhv$6^HVTl0*{z%%nDzzJF#Yca=eJY_+8&XpfEH&{3A}9$58OK)Jn0JO z(EJKfMiL5|Y}5=+4ngGy)%7tjD9I4R8$VtCq0qohk}biF(Y;*+2nbu zA+0I`rM(DUZu*(tnkSMOUL&j7K9N^W#ys?W1!~@zNd+q9kq{qh3diud-cnjx!kQ49 zI9T5=T64RF^L5qbD`PL|e%|8J98s1gqxrP)hm$L~E4d#DW83|!RHp<(3;8mkC)u3K zldCBSd?dqNdRs2t1*paTkvaf5IBzkt+_!d58`|o>Eg=m&vLJnI1Ad~ItY zoQjYf<8x9RCUF%vU1`Y<$&vKyG}}pT8nmK?aVIwU$?NDJ(A7D;S8Vw+u*xRuh**5) z%;UVgUJ#&A^SFDIHMw6xLI&o%R#*cS+2bC42nX^BI*go=|MHep>`)pAq7iCP@guui ziOMH4yW7&#j_euZ_UP98L|%7YC@TyfJ&#qQk!mwHoc`ky*5O*Q4#Q}~gj=@1GjOm8 zscoz$y5x%@U}n14W-p2Y3&bqyA&CIFAluuoX$$^&v;p6A?pWh97>uT}A73h$9@JG% zN=Qjd5A8GZ1qQfPYBuhDHSo!|h5U7!f1s&W7@h)H;LijO{>M9$royZ)x0HH!WnXP| zu*QxAJq*^oxVlTM#cA}Uq~MI7?DeJW_lRSPti=tT-jgkKU1>Z6ok7ImiXDNz=9eND@Eu&QJPoZ2 z8KeDYbvb^NmnyA#`Rn8n7No!lyUcP75tr%P^p6n-udI>b1LfPRn|B6u-qAx;RU2DH z`m_(@BvS;Z)53ht51r@pv0u)aoU}6MDxCZXxFbadu{HdwlWezn_G!}^nKxFjo^r*2 znK!!k_UPi9Bi6vWuRZ|TMFJ2TivIToPkxW(Ytlj2Y)`*cGbXm=>k){9;pXqTfWZpb zpDygwskOB#--L<+acKC}ShQ6}WPeGXi-T$R?#LeTN*JhnAgH(Xj$u04Fdo7Y&4}Zb z`zy+$uFh${#mR0Ec_vnM+WggiA9ADL$s30-!M^@hVS4)3Yza}(?q2{}9=yqQl=^=Wvo`DW*&V7hsYx`v9%m)`lwz9UTP%?bK5=3Sj_f)gXF*& z{It4$vuO1ap=8eT!%>@M3#Tf-fv3aAm5&@9esD%1txVbWvg7s5x9#ngl`*a)0?2`v zIsSiORaHA%5`xVI!Dvf6g>pGhl#D3oxkN@B=@W8e%|gFlxBIZGc8p!T57-8;w)>nf z+ElUn-kiiuYCbTG&pO!@Q#%S|2S*~ATKgmqEZ;+99~d`yTvQFVSIqe%$ZvQQukB@) zbfFeTsdu(FuEq)Mw`n>?#rd#UdzdmxOPUR!r>B-9YxP82u*s2EqzRt zSDN)J-E4oqSd&?1-QmeX7#-kcTic{EZk7f2)7}wE`tQ-5PwiK+xZE=3qr~p++hhcH zi@0!be9AvWm9}n!w1dnxR@x!Io9Ye|wS8;d=|7ECt|xm?{AA6YO5f-6tlv%ZXN%%q z)#|Ou-2}kX*wlVik!u2p*T^)vA;WtG&j)%v=Ws#ArZ+Ke?3QYuTMuQzMa6p8HY3Ap zRLZM5J2E!$On%+SlNa8;s2UUi_o|GX(BifsPBcs(Z{kJeA$zS-b1Y&`xKVWy`}`?+ zptDQ~QjGhF0MJct^Rr zqN>$%-idcE)_8EvF9=Xt8!n=z_NbJ~JgK{jMf(enSz@K7lcnlqag(!Wx)p6;ds4yB zSJgTdprI8a{{mNS-c@On!beG}*-7atkJjG|ewSwq_)&1@@!sN2_w))4xu->vy(!xP z6Smtik6GCHT#g03r0^sBmcz8>1~_HNj~E+_np4cC!FC9_22?i@%EL8^avfOfv>1x7 zr5yR9@Jdd<6jGZLDi$zekZ_edfmG~zdeZ{jZipHs{|)bOHrz*}xc$xt&(vGZohdp= zhzc=}g7Y_N_UFr~E?f0`v!C0-yeW6y|Fz{iOR#q9%))63{fpsNIoi4EyjF_`HG8+ zzr)53I_2oV(E0Dzr@M{@_~cxfG0V$(wOHiF@D9W)3fdm`FPmEalziFm6M3VHb>uK7Av^2tU4I4(O;(U`HS0TQC)%4{@XNgP436J9%U=TotoET*jZ-Q{ST0Ww{zy#*{#9ql4H~Z{8dmB^KSjVpP(E$F z0~GY|V4K0UIzq<@tR(Z_9Oq{?^*^xSvI|DW9;4;C;=g`S&GR~sy4fpuWh)CGK2R4v z2lErxSc1u!TJ}C(c>9fgueLmyNEVwHxouLh5qCbCcZzPWV1_i>o*}gRyy~QIo~YbT zUs+A=w0=wB=aFU5gh9p1<*2QoOFZKLfSo!%3#+eil1l3Q`fAlyty&ZAJ8uied8ZcG zWXBw5J?GJSoq6lN_s9pPD}{)e6`Nb<%-AO}Zm63~6jBH6yj-{tW-F)s6aX3ciqE@(#!tq~gx+Q9A9Uv6>ZE+EbvYBrHY~ zADDm)7DwEzBWQI?tQ=NgjK_PI-Y!wSsnxFW91m{~zJ*kKdf65l7_E|XM<#rZSKE`6 z#}UwOps1&(x4?yg)YKZnVruGtV~=u=MZVVR5Fqx}CYo||tY*_~p~ep_{l0FY3I0zQ z%d2>0WDblBZigU+;?1t0SDdkht}4%6_pteT>-RZ|WT=5&Q!4Ie592+Y(6ggjx2=-T zhVmq1kJnHzP3E~^`XSNJ0(@n4A8?rNcrzfVSUP0sn= z*l6`#dlxzURoRfZ^o{{IHo?z~AEpY;-&La(1)((fmnDx`Y~Gx1zHEbzN%!L3h+gF{ zo}TE?$0RUwXXRE>9n$O_b21{4l=hzTDJF3!{ub}xtU9k^q@iW!mZMOx$Q9?zNLF+W5<{!)J@ zZ)GIhWBj0OOA1Z%cHcLRx%gfu>*Y^%z!ytKNduNL-87CEi?DP6MK^_FD zz@qo4wjj@lZGWQPY&jA^Hk&1@xY1cUyljF4Lqhot8X6Tfb=dOq@|2Ee8=Jj=uBqDW z!wo&)st=)0TOs9$8}aB4Gt8q=#iLinxj7|K*dI}(E*xc3?}{%|$x$3@ccdSPowMu3 zBKQon_O02)f2!HzZ-#$1SS20kt(!Xq#^M9;8E=!&!-+mI$4IDxjQ9P?U>dekemwQf z0qH`qhJd!HXj#+pL&K{>>;C^B<{Qw!p)W8-j91DUdMslfeQoQZxj;}hx5?qjPB$GpViCeM&LESAuv&6V@R;+=d%l}OCKPftycrIWn)Wg)T zx;$q5Fkp*A!nVP0=(G65gI3g^W-#sfi~hvw%@x~S%8*W!n37iF2`AV`?-box%x1&G zP?XBhfZx9(e*E}RNlD2S#D3x34yx+Vk&Qp%Y4>i_7mSR*Eeng70cjeH6|adSxW(|NU9P`VoB1)MhZ5D_bGkVwX5g8m z&=r$1K@F8pu>TbMoDi{#aK44&ZGu$pNAcl!M%j#9+T5t~QheJo9*YN^YHw-)vBZ4p z9(+tPs(Je82^)F?a6Lv}O=nA?=v>s%0OGut`beC)oY}lTRCV(hV?*y3VQjtZfKJg> zjB)-)ct=}{hvXCFGEDYIra_&S(2ZILz4%|$$>-AI8OJj86%{Na@-b$`XnDZc1vQi} zDyNbYv@R%_8>-oa?)e#>_LmAa+cNQ8l{vbJ6~Af+UW@L#76MP4y>e`vW}^VH!64xy z0^_-Zp5AR|W3Ei;?E6m+Z7y-u)zsoz{`tyOR7EYpyv`qqQ%5AErBSZP`J!hQ5%H)n zQ%PEveynB>Lb8`wbz6;khNbT@%iS=~C(^KJc_44I6Go;KJ!sf!jelUL4^yvE=Scm$ zK>ZpjA^oVZ98eKl+{uS(Ke<^q z=To9DD!a-8MME4mBh4>y}tR;-ffJ4NWtjR=_?pSv#3-Ork5brrUo z@y>>Xi*h9zw-(p0*{>Qq#4}2q7_4tif26|C|D|R;Fk+AWu{9=l)Yy4eDJdi5T;^9x zd#tcLuLi$3*Ipw9Qo1fJV-mo6_U}p{Q0BAk+#K+vQj~b2ETHOq#kUhzeyU#N?c~%{ z%?^~JK38(3v$XMO&M@E;Wgf{?(YWb)>G(8jR<3rzEny5X|Fxcc!GL~E8BNVJ=Ok5S z$a}723e4$3?dB+VNb#THDlzZ8WWM3ISxi(CgBFvmiabz155O1?@mTU;B9Jd4!dmXj zmmV*e_>4tw5O&$j+&9U73l}2}oe_L~uFQ%__{=aHaZQGTLxs+i)_)|MNB@PP*MFP& z{IkB{NrPTqmG-kU_JH(-F*fdk9AS+7FUzCoDeGd8Hn>dlC_m=%LzeToelX!82V-6Y zZ;ooQYg^mCN(VUV<1!$O?{WSChPZq&pfVWZT}xQTx#4@wO^@&lnK|&<-TKS)@j1R zBzENOEivWkpWu@y*F@f!T}~Utu*M@81YI-|qOZ?$5*Qobv16(H=LRU3eREq^E><9m zB@>o;Vr3zQtuZ)lxZ`a)OBLkiYA%y9JB!YWy57=I$^n=1@>SJwQ%RCcP+`;kg?j*u zF*};J4(z7Zcd7WW3W+?0Y`)!Aihuo{kaq~v2R&j{bBP`ogoCIUX|T|B$E+TsKvfB2 ztH@Yy?_`WnR$u*VoTrpiW*&E(?6Nn@#C%O8x?2*y%e6Gf!5feESTV>L412f)sB4nl z+s>L#33&g48D(Ei?D1&SNtI|Y^44z7TGBVsD$NN;Y>PmgVoV7H`6(7_V%3?u<0 zkmjFtQ>Iwl=9=sfO=6*L1s9)#Z^aW61;1C)U?IwPu_p3pVpF)p99E7U_saii1Y4wn zN#F(YCpeI}HC$!hMrwS|ciD6f&!b(_!0o{$U>f_Av{!sHKL6d0iRUn^Nmt&??!t}3 zb%FMD^&3(yEy#w9cFmoHg&5;6uY&vkS6TDr^~+&`RRH;FX7-8+juSCr_XRS8uxv$0 zr~kDX7pbl+?K>Z9TjC7@3Pyany%U8jGr4rqIgbJ^?IXUuME4PLwt`}sLV?s5zn3bX zKnN{V>VI{i{UR>F#MJcnsU*MgqD~}QfQVBLV)ULHv2o;ggJLPPs9exaA2uYcP_T2Y zlZ-qsZ%H9Sg&=!8#Gp8LDp;YIO1LWSy@a>g%s6KNJ0xEs>U<^qKM(ZBhi{K=EgEIX zjdr>xlTnwf={@rug4voX%hSJ#bNOT@oKRcsSlt*SaB^^W1Xoc+ZJw zsmkbm<{JxCAdoC}-@ky{%an<_q%$pdR7IyQ>0;`=0i{B!7uHs?TzeJkAE9Mf(PSFXYSww)?CcE|Lue z%#oW4H92E*Dk^Hgn{8Ut8l%2JHwL0xX}q9b+l@gCJVre3yxD95^Cd zQtWZ@x%=JoLmsume;IZP*)26bss?z3w>$${ugITAW-fOf6Y6t35?eg6bgw{fGPqoH z@qdSopOanWe5ayGtS`^+)YJdh1BN<|WTt&b*@WJH*eiT9dFJmi z5+TxBY1nnzc@p)(vO4_xK9|M@{vAY@2in#vEtf>A25t!z^zPLrKHCv3EjG*){_#PN z3=OQNkIGE9Y;yr#q2XG$3+|H7Fb_%a;`rjxZG)!f*U0%63zSXheat%Cj_PtLczb(6 z(WL3wi~2Y{>U#32H8FZ#bF}kX!`f{|D+<$PrqpzFjK}Q`ZxLAQ`Gm=3hO0Th_mABe zlS=295OhVEO1lhh^5+Cx6PloOmB9#h=8R6SXoVv3m#ltv2}i@~&>3WJH3?4n26*dJ^; zC(73xStwmx{Z?~;hZBTs$u>O3=Zsal?933Z ziq$xPuH+eK6Hv#V>(X1tZ846J*#EsXC|T(#;i~AW*sy!)r|?VB4-DsJf_21qBhYu|k$^vk=i#mO>fk8&KQQk;FTT?!&s&tob7&E|TFXg6uxqU$FG7JGDQ% zhVwUgWY1)aDME|~0Ey*lp3LTEZ_W~aPyOz*R64%lk$zMlH3vH5p#(HZPki`*X;lqqK$`@P^&G zjrS`d_|lHlIbhnAVJ4}xG)=Ck>s}7xe{IU9%;}LxXcIFTuJWI`^mg6Wot|{`z2cR< z&ioVV9oW6R3x)|+866Dq$M!(--RZK!y5X!1Wh0ej{cXWL<2CwLhG|1LzX#Kg5tRsE z3;Afs3->vu_PokAZHvMLptU>L>w@+i@#)ach>E@OrGWaR-6PzCFKG^*ulk|sKS%in zcv3fF1XCb_B(Jz;NByxhCuu8fRGrR_r01%8d<83aKlLg14QuN*Kcyj(=G{(HJ+!-U zOx<%~keW6Kedn$qCL!iFc^X??+LDQlW83_&t~togR)dgy!`S*Gx$cT>xv*=MidGd^ z<6`@gtww-%e5)})8Vk~Iy*fXOOca12PSknzeR7S#K$|q&meV)&-0jqkUX2?|5w+Mk zp76|d;b0ZLf8ZEU*$H->vn} z?gJ4}IJkm0)OICd94KsA?Iz0y-TJ1)cRCw+yQ9fp!BnX@FhMxW70gNktSx(^q~76S z9lf9&y>CLFS!E~g^N27I;G4D2BnZ6#TFjXn+kQVg`>diL*dr(%sY0N4~38sM4f z3d=N^pIi_b?m!G<5?EV+qpPH{r=G$oEcMdTv&AxN3hRPcNnEtzolq4HchZ}7*}c6q zw)q$_2rVZ)?KcsS$D~bV7lIG)6PW5)(0^EKg+E`!u7TXKyG_eyr63n}<<&+|CpMWj zY4>f`@xpf$HWi}xjQ@N}9<0mr;5ju%V-l`GbPL?SS1>sy?5;F$lkVzYA#o1A*8CJ7 z-8|Vf+kRWF7e7+B=hddTxn};d%GLD{%DA|;%#Bsa%rnnAhfRXVlp6ySHSkANb|B`9 zr1*YU)ZFCyJ^CKLhhCLmMvPQ)TD5!+_*S!8@);zYs7;@?d|j7MVR4-BY1GS_79LC1HB2gX z(((`^`1f$sQ(|hPCpQ+Uk(sMf&+y_V6VE&Bz%Inb5}JMEs8apRvg7!Q)V223i1kR< zI{`f!Xm&RS+I=%^x0H_g;L%rj5sPFsd_CCs?m7JV-GkqDUQ1Qne%Bp8AB2k7YAQrO zRM#rUDNFxqr+!hFu$qaJ5n31EC~!m)E{aA5e*pD|RCwtHxO|kwXA+N!E>p4L=_POZ zanp}NSO>>l>G<>dQIreaS^}sbPjsSA+}cxd@zwUg&Ox$^a0ym+jeY8#am3%9ZwO?6 zIzzTyutiA>{W)Jv+|cQFUxcou%?qm4xcQN+D#eQ=*UlH~l*$drYP%WXssuNgq9lnt z;u+q4LS9ehHon6``RyMbl}DC8f-m?jj_n&;N@?VmvbJu-b@gK$U&pJD$H#lWBTssY zfwcz|hH-gMiC080?Z_{~G|Y*lNcAzBP{r}$=d3fQC$NMef>Kgq1ZxpvWMg2x80KPw zY`&o^x6cxFLfl%!SbAg1Cvn#Ee&hNWwl9aY5%r>=@s#yBBIbS4;{||-H5^Z&h1SUMx1ufuY@(X$e5_}_gXwJ zynCElA>nq!pIqM~^5?Ueldtc7$UK>I^xlh(*BNhqu5)=ijG8`}D+meZpKO@N&wv!) z>bPr@+LxZU!vPby2K!Xw$Q!1(H@!qE0qXf2CT7=S(Mx+95oIF;f(w{o?WF##ISz}{-pA+_VQHh_FY0Te?X(59({&I1TNo736e-FXQX zQ#~erPRgait`1d7eXgN-S+qaU`a_#e02#>h#mCacFd-U;Yy0lKzONIQaqNs$&L81@ z*j;*x2)Lt^z7;=y<)vHjcpbGq`tttl(YE)&cCQQlfeebU77rC5N(V{XWLN*y%JXGV zr7PO4#$6(=S!;yVH-rP6xpuNDij`pkeo`~s_3S}d>C8IwKyBg$-rXDYi{?@$Uv0Sq znebh&u#qyw=HL`Exn!-8-=zm7MS9lY0VUjY?oe=FCHufAmdMLowbhxwAbTzpdWh+-92&VgIbYZCS@C#dj z^yZ@91P|ButDP6EY(G2Fv|dq&3Hrt*M_tDmqZ|^+$;hppawfy;gdfJpiGLn%7xo9l z{T2p}+WDk6iUqTXvBD$OJI?=Y$T1DTaOJy$hvB<(L`Y=(%=c*nAUa4W_08``BQ+pL%D7Lp51Y_uz{qaHv zruQA{=xBh;(GAfg4S|U(@cfFm=ru<_CfSIt`UKd{Y|SciM%t^kzX&?2MN^&+JFFNL2_3e-Tq~Nvgw`{&XR~3Y|k*RiK!k%Yw8BQQ;I9g_#3Dd5C7D?S33voRw zH|>q#b7tD?t$po)@{pS_uEspav$O)|8^4X)8kQ*Xdxeu_AvkwXX7nMcH>*X@p7$^8 zS>EPgv`=_r9?~MA0O9#CZbF`w3yYJ~| zpK~M&%b0_POZK%&`(!3nds&5_@Wt*rL#eEJz{}O)K)QfGy>AHJt1PCw)BvQXR9dHZ z7$6w#<@290|h zYtqppP@}KUYNJ?VJK+KDW{aupgaK1x%R(oN0KJxfR^bc4BIO_$BGgpz?;<9^mzd&U zRQi5#;aYxsjlx)>d|fr}p*#NB$CxthAna)c_39(48o|zq<9ARN3N2la!69NhLS3PK za<;-@D9z&`S|JnkR(%GUx(p0Ad_xFqf76P(<0w19hbXQ4Kyq}w|HrFM^|s8)=3PL^ zV4in*cb2FhWs>q{javM--W?W`iaS84U<{?^>Nu3ZZVk@JY0FhwjG&}$i-{sx2H&h) zv^AFw z`W^OUWH0^b_XP*Mu&zs#iV+Y0#GwOW*<8<2{Lz^M_K;;Mq}Is==QUivtKUS6l%N0P z7g(5wB;TZ6Z|!}uA0o_esJ9W5iwbwsIM6A(Sn1!WExFlE&u^}m{N^~r7i z*7{dbZ`N}d1jhMDg#9=&`nJpx65sEipOCWIz9bY$`>H)`OQwzs4NX3RD~Ax(YG;|v z)JzbEhKBy3p*~v&f{r?-UeQc?`Z+e$Uex)IUcQ$^rU3q)eJ^G55o`1|{^JMKnD$JK z)MUu^+1rN%&5R*Kfxr~`;WgbGtIKZ&@LhUlT=VkJBbgHpECt6f*(#|NAL@Xh4WU#1 zMElc2*kS;#Dz!tXw>rtsvzfj;xzS0Nm&w1}V1biEdLe+{wV=)57)^DI>7z+%55DY))VA3Z42AHn3SZ*yEGsEp(q;?CXO} z7kqyF_@?$M=B}@b2_3^C{3Hk1Gq&`cR*JfumpoRhhblz zfhlouxsT9N!-n_CSMv?#O|FnT@W@#@I3+vpvE}UfZ)ZEFq67AJ(>WTQrjU-sYbkYj z%KOEvzRE?nD0j_RKvpy$hEf%iiOvw9eYw9i(aTYMoEGlRfEClzz|Hr|) zwUgQIqMNziJ|eh5|EkL=wcoqG?YR7Txul_U{rnrNI_$lJoJWy;*{l=^z3UT55yeWs z1voQ#)N$8UIR;yjkOkFMsE|qj@+qbGIeE8p#H8rsU|I19ZLa|>7RJc$6}h$8x48E$ zjeEUJqQ#X$cNXjI+qa8>Z=>oj3X*l34p+x@Qjf1~_SF|{nwA<44>|0{rhWcS@Mv73 zb>v`w(yzSnGUS=fSyKo$l-MF)XOmGx{vZm=jLX#*w#-am8_i z#pWYWqVw@^bN=?5>@hc3Bchk2wetvJQEibq^})|z0lK>L>s7c$^3u_V4PH&P5HxBBXY&N|5u4$ zUQ?rCQ54B%4!jhKj6Ag#>0Ae7%{)@jcue6OlU|~mF4db~#mMKr;TWcA9*<65X7xhA zYU|91U->9HvNm5!xs9YQ?GO_!PL+@j)0`6Q5?>)E0*<$1>+XNcCq^+>r9FB>42sa1 z@I>6|CzUAv%3bE4*8StRcG`Um)#XT@7J`0YbGCJjm5kp0`EjunBk)%}@Uuo@r)4`3 zC6d0rAdIbZDb`!pMox#^r`EObd?hd%AVXD2_UuqeW@CE(lH%v~LgfBIl=Y)nK$QS>CrEBi!$NrQ1TM_`Kh*`B!}UJM3>{cuYaj9 z!Vo*T&_C4Fwe~A~vlY5hCMG5^XXHAZ$tbF`adxT^wnVbJ9Ppou|Cc8-4DQHqR7y%6 z+OQ-yRb5!PIM|2%zkHiA0f=suJkH9H>DDIQ1IUz0*i>)|lr0sTlZH1fqpAfxeLZ9Y zw$Sg0g>0&7HM=wB2)Uu17M*!M^xOTglS)b%s;1eAkGG_Klm_Z=i^d1i<{P?f zeGiDa%5}%s#RksA$T_56DnlGS2eJinTB3nDPc&1t7v?n@_(lw~xjB9fg%Xo*Hrkv7 z($08Cc7zmDM`#>BcVA!ikUuS{l^#K`HC(dTPTG#~~Jb~xK+V_cV9hJsmnLE(nF}!+m z8uYbmOYqTFNn zBbG@-MQ!ryj8Ewku?HI1!{T);jiZ5_#>b$57&1BdYJ0oz&_&h**|*$g7!8}x4%M`_ zaJKIK^-hWu{#0Wq3FGA6xpxR_tqHo2NvYCY#iI|q(X?4~Z*lboq|*PK5aDwh^$gDb zE~SYJ|A3GiBkC|00-vkP$eBhp{fuQ`f5(x;#A1Ov*ydIiljaaeZYVZ3Au3^GWp819aDox?=zeg)9g z31`aS5R<4DpY*`!e;g7=Kn^WinM5)_-`pM1$)!KDGwI_vFoX8=U(eb9$EsK)rs@Nk zixd?V2QvZ!CcYE9Js0GWOsrT>XPP)%nyehy;tYYsMnoLc0;4tAt z5{hxCTlf&-sy=c>0;K4-&T-xr=03Z|MGygd`+r2n3f+aCf&50tAN;+}+*XA$SPx?(Xicjk~)yE{*hQ$bO#LGqY#rojG$p zz1NiwNzrsw{?*l0>;B#AUh=<7!01X_t@WyTd}Htpca1^9iZH?CjpEH-Z^9&2-Qm6t z!=yXXG`h#u&4PNd#1*rU8i%(a) zg}7U{;OdX+e(crz{O}9t!O{-n;@f(q38T$)a@gb;0U>jgQ!8{_r}+CiQ_uwcGS^_8{RHyn>cWZDw*4&vy(#~ug8*lKz3*p=hSqgKkCaq*jtPia9G=fP)^3Kb%vB9)vL>8$}*yz!BQ=ZDo zKEL3)-B32veClbN?>n%|)7Hm0achF6r}D}-PiWbg|0QUYDJ*PE-r$HYWeAI^cz za>{Bf(;1zr)%%z>Op?j&epi{)DXl(;Slu63IYm?|gC{L20S*q6U#IsQF&Xb|Ow)mD*PlBqdhF&N4o_ zzv^LO>X3nTlRw^p=ygO3Q(T31emOt7!SkIo-Ef^5h_+>1SmmeWhq7Zr>R;y9ndcib zM}?}`Rhn&t%FQ`ez5P)PiB#kkRA}UzKYtuu6&I>k5HI{OyEH=o7aYseF24#IXU?`*@g4#$ zvL0`bUlP!kQQ=Dq!>V;e4d8UTN-ZB=-=ItOF-qx13pD=1dq_eOv>EcRs$e=j2l==4<;(;u_Va}vn zx9TnjNVgQpD9QLHo5qwPGL$b?liN0UngDDTsJqD`L{6)Hjsl1oy7a>(4%q>*BGvO5 zbH*5pB3e3Sn5I(91Kl<16T1{mqIjbkp3frxW4b`x{DuB#8$U6d)yYE4h3DNQ#E)HE z1`YEXas8}Md)mFSv5CGBPr&DDakQ0>4FR`{l)**pA*iP5t^It zX&JJMOPc!fxSjY!=4<1*n`O4(fibmo!TPpVtO`6<1bFzsc2t({rgD!L)v z`^61$2WWDH7pXjjIRx5uVryO_3>QW+y^T|!fr$$-WSmKY1KzGZ`6=CFIvBzyXTzsk z4ERXj6tqYwD#IX@%uy#?&lb?*8Ol<*(izPhbTF?-se6)TqNvq^KXd+mom_jXh(^^z z96D^&bsyz%nImD(E%9|&xiUd}qI@V~C=LU7dpia0|5wcPbY?PdDLN{pBNTxx6OZc2 zscpeTeIZ%U0{jx;b5du%>oq%4j@eRphFdr&bCo)cE);~ zKb_km2%vyyeIDp4HgIzdB*_FGBbo;>wk`crX}0UdAI^tM?UmJ3Q$x}jip*Z?u;S|} zprjSJ0>?2cGchN+ z*$}G&FGRNPG6-Lda(jiK=Ga!bf|W&UK)bQRH&RE>#1+7*BW3`j!@6DeaRUwF%Vx3w z7+jnc4cIAT(~o4GF8076Bt-VaRKQNr5Uc5HVZNIvLjv#NweuW(^zKzG4$s(IP}FK~ z+0b>wSlut-?x{yx*C}Q(Z1u~^I&);bKq6}~ZQml3PeY=2TM-$;BbuEmqoFp3q=8Ywt+1*n#$Sf53%0cw=EJ*;XzZ{C4F6uNA#(halb>R2)Ang@IG89_W&gB~b?7jn%c-07AM9-r zxFu0c^mSoONR$@lX3Ptwn4p|3@t&N{75gC1=C7Z0j?dEIF%Ar%( zr=^d}77=Ny;=;O>`j!!!w0`w!;nZar4^bBPni z7Ful$lU1&O$M(}I3*6TlXc$XGi`Nibc0aCT5NHmy$lBh0 zM7@BWqtE)l!^xu8reJgkS36Ero?qLH1+8ORTDmOUwO~{Od>QP{GjcPCQ>IsmCyxG0 zyVH2`@#-j%QB!ZraX@*ENL~_e3yuDApS?$I8Ori(oo=CycO?u@`o*P!>-oTz#YSk4kB##6?(b# z*UVw5FI^X{zFAJn#x!>jA)I31{88yEOVWNoIqV@}tn60|C(sQ3fP=9^R%TgJ$B`tF zM0_6mz};|+CIaqXzquKITh6tKIi>(4>QFfm=`_1oj_bV{OmcPpverHLv5+VAebr$F z`{MT@{<6jtjB^cMqPc!0hqO8-KYw&bj~kgWh%?R%i+Vtg+O29 zP#v?zOIL}HBXbzaN5Obbfj8(66&a(sNa-Mybk{)u6$X$ z68v85$bVFPR@7Ta}r&&VZ!XJ8w~X*N~%q`v(;BF)Hul_#cpZQtZ>OQmsW z`BTQ%0l&0RKA;tIP;y*hmxz9JqoCnLk0GB5FJ%Xdwv=}bN!gxWPMc<@;H>eu3N(mY z467PlqWFqZV5zcENGG2WwcIdkYc?$#+%3}W7f8eh1HtHWs6^AU5Dg@0#V(jhhr~f# zy$uFfs;^u7b(E34#`LR`_s7uzaDOK@R-h0u(@bfOOY|#$CK}7VSes){5d1WgD0)C^>qH)(Zv8@yHNN*0lxLpHr1Dk&A z+obTtLJU>m(k*W7;%|+wptqY-6|OYPN_C8aN(7jg-}5eu=wC66w=9iR-<>>!2u}nn zVZ(|so?)?qkr^w``xYw_6IbTN!s#j)s;{_nf6^O}HCDj)-;;!zT=Q?tzL`(-nURA? ze#wXP9tf8w{PMKR0{(bq2J{pRUcEElTL6zIY%YdB8)9S8!Tj5g5Ym05H;;taF;rC> z_rnNEg$aH(I=MIfFe8ltgagcBWf&T7#47KE9=oLC1AL0Ud5Ff7zEpewAJs!#JWwA} zq26YPNcVo*g2oj5mX%1yr!J(gj>I?Y78P50!CYc_Cx?bDo7*~^lf-S!G|gx}`9jjZ zHMoY9zN>~vbWnE|^}MgIGNRg@_PQko{<2Mm0TSM}rB`ti-#dWM2#d;~5cTun^fTl6 zS>K3k{tRiL?pfVI1PA1dl5k%U_El@CYV+Sm}shPBJi`?d*->+thlA(5S#MXhC?->|uGnDUyZq#h*o8AfLE5ejMCQ z{#evse5=+^;3_q*RQw1nANUW>l2>#qK!Eq;_?540szC^Z*D~!Twl%oyf~juiklQ(2 z#crO`Tza>1@TH%04_35U#cNkX6*)Z5SB0$tCX8|#e|)FpZHuFicbzsntNiiyyF%Na zKB10Rw;=)SwMf}>yXT2Mup0+Vcc2^t^)#r+XyR-_d8Z7OCs_eZv>6nTXLn?N9AdxS z{UazUhx=+U;T-RGPjw&UhtE34yZ<_2^FNe7FwmltmKytOl7Z|mY#;zPMsBkfQK_{= zdvAQobbz`*roOs8CQ?9O65n_!%K)Nz?EEUo znAY9?HgVBD>tHkU1I6{1-6Pqdmu_)OFkvTO?+nNg{7V?q6;%RwR~pr+8woIST5nY9^iG~KFFmdFyKHtnS2<%uhy?8bact`s6Dj96#h6_c;C5c;Ge{{o75%8DTDh%|&yb43K zn{U1l6W^R;QSua>2Kj}EivRI+rn)HpEZD(UV4$t-C&$1#ZB!lTzg=%Si02M=X*;6dsLv3bC@K=u|Fg6aUw+)eZsfv zWl5be8dgDV$z4Ot)aBw%;viYZvc0%UL)6=4#Ra~`q@>KPQ#%NiZ@sMt_eV4bzI|wj zSmcWLZSQmfkqK;FnDI+8;yUsyoUTwdOT-Z1qHVXb1k;VRb;tOU9NKxjt4yr zTF~A%vMvq=W%ErGxlgfwMMlO~H-iJFQ-?hP_>}3G z_Ff$e+66YvGi-pF!D9{VzE8Uw)_I4mI>ChBCgiGUK-Sty`S@w8(dhc@LP6-_SRw>- zHXMT7Umj2VynDtZEQAog#A-JGrBuCncd8Hr;@&8bQ8(zJ>}fh@0=QL0O=*m5z81r$ zByB)+i6ds-N3Khy05Q?3IbP1cU^V0Ii9}ZQqL5yE zV&se6>#{Sa+lzkGj>nXY(tlJK0}^)ab91GNU{cmPW6gV7LPnGB! zeFDs`A-|LcdCB^4ne*mIQ46kZse~_GgJ6BgLFd;Re}pM*OxAH|5!fHvF>844C@~u;!0+}ko4U52J`gW@yuydQZK6II-k4MCqPLt!gRdCo3*g1$Ya5QqlR3Jv&sfgnSKV4SZ z9(UM2SARUH7~yU+?3|*xhY<8lpb}(iz_Ycsvc%9;;-<9h{|zt4&qJ;_yZswpt{Dwh)XOa*T z8-i>16^_1S^Vpls(Wq5Do>#bTSLzuUwwB!UJ-t{ZDIX*boV^U3rb#codXSlF-1225 zD=)NP%2bFz!HAcg`V%0UM(}q`?5M-t@e+(4EaXW!8 zR$13Hi{-Ig)GNoQDdjrgV>3RoxM@-rp8|E^OeE(o6kLw=z$LftOh7|Ww@$TfV<~T$ z$vMb=?AMNI;dkM0`zglNJK&Rqr=6;$R@74;?OfYWH`umnEa=TtEk*;3pO87^jhGvA zjP~0Js#+lbytJt?n$K68pY=6YzJqN#DgfQJe|RS0r&$CnkOs$LSr?Z(>MH9-TY^Hf z%Nh=8kfzz2*_HH*(r_L9e?jfsRy6a)Tkhwk(dP2HVzx(B<~l> zoL!yBiB$%GwiXLiC=Z9OxSkZ6++OF(I`8)adQ1ph#Ts3d&(9YC>Dav!lW6SbDi9O# z^g9CEym>Mw^2Mmh9AyHz!>w6KpHU;Kfn|KTYCKZ-Nwx&aDU_1$rHy^t_10FGA7}<@ zzA z%e|`db$BK@rzMW}r33kc%1DpHM9O;kEuR9_6{li zl?%TKV<3>*FXTx9H*Dd4koY zqc5iWzA}G|uXkrzf)SrAjyT<2#3_$1AuX_yW{n;XOIwRCdlgFdNqtDhHpsSeKL9Hv zF43=kh5cJAZqSF(S3efw(SvikqIrSt&XZ?xqIY@PEVnMxcaCLspSeEkUgUtyEoh~# ze!Rq;JsVUY7qYNQP7&G4RGI%iVk&iR8^6L?e9>?%l*7{)b-gmC=-)9cP}+v3T@SZa zyYNcX!*J@%(=4wCfQhi&x+;G6t9KhL-t0wD(1r+s}gn#9rh&M_0E2WsRcG$7==f75D) z$mZ){xs2^cpQ&K^NVTp0WoNTryOQ`s1X63)xHz|12k}>j+}8J9MQPtoDNz2~NZiXO zfvWHzkVAKKu5YQz*G1z2aj@*pNFj1Y_;!>ypCF=b4a?!ob)S*f9h53QI1ZDdn0SHB z{}Fp32Vv)SlEqZ9Ho?F@WD6DubA!~@WW>^{;P^-C{h2+hNJI1&=9pm>f3euUQ7Z0I zcqDoAYU>wS$kYAY&F?rw@ z%Yu>P^lv{xI>bP!q#tpAV zpm<$JKh8B`ngW=xh`E~VJ-w3@SV1DZ9&e&0i9c0C-}0_)`C{LON~*agDXHMPE^dKg zqtb}jEMag70?C2X0k@<2JwE~!3!2cs2lgy=oF`*>K`b&DkIIX{$qR#V%7N&?er&}&Z=D$m<*`mP*4?h)qlS=^lh z8)RkHtuK&Z<2JBdi%}uDJmE#;9+qms`J*GCSjKz*Hvo@i_9QVevNNxNOF7B3i}rbG z!8C^5MvpWOoFlJFt$MD_uzT|$q&)mWZwn_>QNl}VW5Ja54WZgp#Y4}A zu+@C7>MbDD_3;5=U8en|ODs3QjP9{rn2(w|@ylJP3glgIF^i|M-AcRX%v}ue(75G2 zdRO!-lVxxo!U_{|N<}>Guzb?5EXqzdOL09G3ak55dh)1*PmZD^=RiG(?Dv=DsjR8d zyieqqR{Ec9>}MguGz_%o0qz^|12>$ainj8Ip zVc%mA_I+PMFuH3j~)!Z)!eLP zAM>@9H1~q7?H)Lih>v!bvS^n(W17jlbA}gV1kKaWU14b;tNOyqi-!AqO=-&D08ceX zy4+lgGhr|~4JBAaLT_t((Pl>c&iojg!CUHHV)4i*L{xGebn61hODLLhV9>qUnU%Bw z$49xff17GE>CwD{;rtt{p768$kv!Hl{-Cv~L!jv1lq(Z_$(3nfW^i2nHv=sCHri2xn7pPe0&l`nv~QLl%(U5vm>B0`5$+bb@GRSm{Pf&ul$Qw-bsNt_RG zN5V?n9ldzfya;&a7u=1-vYxvQ;qd=Gf$}L2bV%0RL^0sS!t}vN$^Y@oV{z+hG9{7J>?kKI`9ebZQcoW>Qzt;4XbA3c#3^sjMMV93S7}?F zz7YF<8erhT^_{-HZlkk7b;&4N`HhB4UACf@VwD$?JsA-zzMmWAd|&Wal_Vh-2ekPg z=mv!jBjnRGu&Sf@63lzS-#7^o5zZ&|FdxxL87ef9Y@%K8vfc_UpAzrza z1qI&yzWM%ll*Y`DHp`7PC%RoK-~03+Qw;ib&s5@+2`!!=K+8FW1lHB`oxvn5Y2;h+ zF|Q4TGO+C+Z?cX|wT1DoR^ydd+^<>0JsNr&MM79KZ61!0vzzT~M@hu|GwgX*-bSgousjint< z8oamYWNo8jgFoO)7)pw!l0yl(Hby3g;zW}KGVV!LhV8qdQLgA6l*N9E{R$SYGcJOK z>OffLrRp#}bz|)CQ2B`EBte_m`b7D^2KoOR%nw;$04;cwP~6O!DbJ2w*h8%!M6=g* zZMx;4VH!#8PG#CQ>_fYAB1NTiH*9WxJTWaBw-lDn?^1I9Xui-KQ|hrSvQXFwMRqrC zrn)$P4u0fO687qQN-v=;Qz`alkLWq@X^cpMC>7ctA;$jVCSXg6-d)O_E0fo;p^WR% z)Iarwf64=Y>K5cwcbx>41=$|WsbnRzu~MtCO>lbij5m%$)x^%{y!1Q5L7wEySLVuU z(ZwOY>TT8LCpC=i1}iAAms#Gz2dm-jQ)%6D6~mfl>#{sgn|a?D>M@> z(_XAsQEb#I1-Ov~;rjMg3m|vdhjp(Ooh79dx{m0ZjlHZKK}3R;j|}`J4lF+ZrwIUS z@rz2K?wX9~p#Ha1l%XK^xO%Y|`kn0bCN6s@DjQr)0Hm=PWr&ylM?5^w-ET$V`i90_ z!yJh<5iyY_oIBBBI)8pPGP;`!l{76iuA|j}N3iMiXBrnrEia9))O=Gy2o@#OR$H6y*$xiIR&u0C5K)f^E!mdh`aU_%4a*PJo}K} z4qhZy3G;Oqb5W;Rb=GqBOj#0}U9w z>)+ZJn8%hUOOd^(j0G=?gK4pc4BrM!ru`hf1A-QK* z|I9N?Zx39*O9d5V&B)MGB{+uu)4q?N3kYruXlf1XZFDmCssjg+VKwrgMo;hBm+Dc# zO|&NQ12H|>AEV#QPFTL|+qo7($c|W1q~)wm$tKToJ!9;b`LqBb?3=D20L4)&eiDw;E9d{H(y1sDhOO9c5Cmf4gntRLvLYlN@we(mY)JWyOkBePr#Q@UvU(j;1cSprsu9EVwy2;a2`Wi?9^ ztTnXuntfOIyj^>~_JSA-lc4`1k>|2-p@s?X2KYm44-bAc3K(ui_=pVl2)4U7Rk;4Z zh^OcwOy>Lr#w?+%&=UTLDXemEIZ56H9%ec_XUpXZIV{(0gWfQGBYCAVu8bx8z(P{D zzr)Wk!b;8<(O^~p1Em$xNO+Z;v49bu#@FXhSiC!yPXW^+s-sXBjUOn{d^G$9Q^&>a zlK11XWThLK;>CegkH)emP2!Pe#ZNRG`OK?YiwWTE&wPbmhU2r> zo{<0_J^MD^IF#v6==a{q~hSUKW2cI3{?WQa~Z;j--IN3-ZNj?ggo6G#Y)+< z+j`QIGOH{cNZ6dou#YM4v@e~LvK^u*pZyWLw*MV}gznl}bZTPoXWsA&se&>&VQoLR z4^joa_Sn9XDr@J(Vqva+oH{EzcU%o}Ev3uHPFL$WSrEYl_^+%6o)v{C&k7XTq?rpz zMrv|64Ee}Xs95Y*)6RW{mjf8P_#PhRvrjD=pnhCakF-a`7`92w{1bBLmeiKFTZ-~W zT#>K#aRz;Cpw>R%`{ao{eI*T8*{trcw!qoREow}Zi~Z*=4s3loE9ex1*Z8}N?)d}i zhe}rQREw-T*NCzt=ASlhMA~{YU%wLO(VL?RiTu09{_KbM|7#wOQ~f`9g}nHZ2rm^# zM2Up#`MT;tX;bPNT*pxBLJ~r=+j=3Y{G+Qa$|*5%Z=`fZaQC3SWrkX51#C;C!=8O6 zRTEue?1&-N)`Vj@dkpaLoPw3jW6EV+Gso=S zLWS563s;3TOVl4O(iqYsLK@;p%ZQ)sLd4oy_;%&?{w-SY)ca@I3jz+B+pl1EH4Kzj zAs4!0J@1N}EVl58j*=50s;VL65e4R|YF|%|$6PS&l`^ON9D%dTAj_o&=YEQ9!?Deo zJrF%aGUVkE6vxCFCE1xIF7(hP+Nbs+GICh~reVvod561O>#u%PoDkEgK0FE{H|oR> zI44F%p2%rVttYb$_y9(25B&^&N%B8;githplTQzC`xIWd-x1rLRbqRB1jj{J>Yl1K zTH%xb-h@LTdc`hxN@LrQXSKk#n^GEUKV^vpTMSakv~K=?_i(gc*WD-A*nCnX+i&#P z`MN3i9nAIs*n&7biA>H(?G29g7iyNCh6aUjM?(~|ucYCP`0)bDVWAnQSVihp38v9! zZc;;pL;#`V91=)CriG&ak`x!8P21;UeTMjdcBi0lZ+oa&NtFe;gm zVstl|Odkn!^>-rb_1M^2t7Gvsbajl6oFLQqMkMX^Fn-;NVb2`<^pvAivB8!WQiB7y z=BmM%`)fW$s!ah1Tqy=x?@=9HCAM~8kvu8`Ugx_w8J!a79s`JM7SwZ&M*kQRcL@%R zdtJs->8Up7ggZbBhn?99CW!k>9>R52aRRC09JE~c6d0Vi2x-^%43hHn{U((6k4Hix z_};mbZj2)3${@PwtckSFZ1(FSy{QTUdeAJ!6sy;6290aE@rU4Av@zQ9jw!@sqzm4h zLr%3h@CGf=hUTHsX{9cY>;{Jq5D9-A6u|H;^SFQ_L{YAV#`&IGesMa?NMl6vUIN+b zuB{fza_^U8s{vnvP&BZyy465q=!AmW6(XTID<`_)S)-PJSC7D4e;;q@7a0r0X~X$c zi*xtBA6lF=6L3L3R;S|Fy3(;2hLtL@k*?Bfa}7xokR+8_9nrjXJwiqod-$RcaP@`G z%&{>6?-`2X_R}mLhBG@4Ak?hj=6U#RBG$K3o=mVg#QES2?z`!{q>r(v{373^mhBI@ zEPY63t$d!O$GUq&{|l+^`%zQ(8-rfaez&92z1gGxk)0*=eAn7UxTa`UVg`>aE_L52 zQ&{|gvk0srTh=D*Bc>Ss&_*o#!ffwcc%+EhO&0o7b?aVJmQ{XmN%b%s}nv(G3D?2>&Cnq2v0wE`a1u zIy2P;Cwmjw4~?NLFBsf0mWAS1;wLC9z>2UTYDP0{cbt_0Cba=)nV`U@CJyT z1>Fp~=3E)R7JE_;>u>*U&;m9jky49U`_d{gYFHnJ?{1_@GDKdocD52rp-u7ohr~{= zG2_eT1f-f&s0W6{O@g{3G~)5@b^K9E`C}Ck}ZjKO}os z{Hw@X|JXT)bBhm0?^DRzL#usKZbQhE{&X{AnEIp~c4@>z;sLxhFos{X?IsQ8Kmwi+ z3WD}+DuG9G6E8sz;^VM|D;mqB4AbutRL^Vtz9~G3E(VLN79Ud;*zT+8s#sr{{d#_< zSNxFu4y5q!pS|#xbV&{PxYYD;gby|{!*b=`R(>BDDI)o7XwZgvk{_<^Nah+J>H%!A zQij#0-(IhDRAr0B|BU-&ZOwR;swO!y#;i`T7z$zgoEmI_E2g>eEmiKo7Kmj+{~=B# zzbIV3bofgs16fAGQo8NA{54xX$WIn4ch)#`XJ1s&b+Jl(6<-Z1JSMsfY-QL#huio(NUCS4!8@lKT>Il$t-bH>>)1f} zV4*Qc_hqb5n9X@{Is}HP<>P|FXPQKj=71AW&y{#`<4-}R)X)6`!sQ14!rjH+s_2MkQ?-va~{`cJJSf3l4DZ321avx zez1^L{@Zou&@RYFhE8e9qSpFYeefGvjt7U&ve|}VJiD(4j|WlC&?Plt5b`5aL|2_6 z=Y>a-Q+Q7W%a$1<$!{`tBmewD~!uNsXSnsM|2JWKOm zia^#FqzB>CpX=Mjsf>luQ;g|+*BWcYZZ4#h@8+KE)p1WDSwBBD&JG}}u$#=*6l^JM zmeLA)-lta;XYg>;V`RE4-CAhyA*_Kxv*-Kb3ZnR1Y2w4$St$G1^N#Nq~~Y5ezSOPwLWx!eOD5-Qz`-)2NCS0e$m$c7#P?bpT1|f zmRnTQ{C>=0xK}2fx*HIQlsoZ!*o7sZZhfkYqn^n)b5tqWqA;-Qi%?DxMR2Kca(Yd^ z)VIX5mk|4*t5y@PN?)%|r)Eu9vROjFYd5iQFLp;@*& z{+_104|CwduM==af0AF0wDpjQCnv9Nwus^H=VVF^K1)Z+H%f+kVh5>DoVakr_sD2! z5CVs_DCz3oF!RaoP8h39ol%{sK)#C`KA9C}*nxYMATZjRjb?2`20&jUp`yPso28sg zSSwPz2!89(;=2U|mYZH87LD2&sMq#k4j9d4VJ3e*#c8zOuAdS!2TdWGD3oO5`%!aG<+h$DN|{@qh!qm89#le*DE_z)pY zuh3W^f;^qFguQ1i14Z64)%$<-z?Tc6ZS*&zqHE1)v%4K2FkV0^P8jf^FzKtw|56i@ zO_Ojfs5EuJy~K*Oes|&+%;&f^=Rl5azr(>%^SrA}@+%j?GskkabT zRBOhP==ydGjYQ;G?wUw4uBK&yIH8aSzVd3`o7$02aW>=NU|rEm|FU7OMZ*=lV$>Fi z8J@+M<>BF9l6NM3V^mdaeEUJJlb-{&VKTwGijFDO?V+f5JD&Y5aL+F#>8&%2l8vEqbHUz_n|DzK=U#kRQ;^gt!FvyQ!oAEuU|lBk+(pGctq92(F+cLcH=Vozg#_dnL0+Nfw`YrSk^6h?F@nash4Vf;_hgcO(CGU;?ftXr*O9>v7;b|{ z7Ky?!gRwOqG?k3N5)<~~`&@ATFUS(2qf2i1$5ehRVZRFs*OmQViV}K&1+W@M3d7}q z^M8|pGs(5G^zOTr6$8}ezFfH7U#7Kpe)r14ghAy>FjCX-Xh|f3oT?wKY3I(}J_0K? zJ8^6>naBE%LkIaTISTmSqa#V+><+NKb7nXgoo?ITW(hA1H#wAcS|gP>Zko>hXdc$9 zDo_{-3ytqmoAw$v%2;O~y29f?(;==gGD#40A)61=X1vn3uA1dv%8}TcWo~e858Kcs z;0e_Kk)~v86o^#ekdkpQ3>_?+od_eC-#VI#2C$RlD0qQzdn_NOpo=Q*rUF)D4bF@0%slB zvu?7(U}UuWYr@CNkooZkgXZ{N+H|QS`z+^{TtzPJ>iWjY`8}9MS9Bk?ipBdJywC_dAuqUE z+gOWyGYsx3A|&VleD+I}?oDL>J%eoJuUhP)p84*YN|^D+7_ww46^D zBUv*w)^8t&p;j(=@FzSYSB7;uRJeEsVVwE8e+hHy6lJLj9=OUBkvZO73T6*L8H&D? zMIX*K(R|swZ;WfHLEtgff76QzPKn^4T22$pzP{?75#DP!pS@f^aQ$)ph3P8$fR_C< zPu-RF_7*Y_K**F8Cn#gplD%(mkZS6@d_(s(Yoi{i8q=-1|Jj zbgAqkfYV(uUS303)5*Ns{ppn>@BQ(I z8f4|+P!!hGEi{r=Z@ZQSL75QWjEKce^O&abRLwghduk^?w%Tk4lPTU7*L%JYjWdzz zQo+RG*O&}3^-fY8j_)Om!et;zxcnR=$%Z^y_Ll^dE*cWB*66cR&U-W3$Ie%_;9o>o9vP@v74*grgM*S-Hp(b6^;n;iZ9Yqlqr&<#&^u9kc6$cQ@Gk&ljAxo2F-2b05^xHEva=Ss(qWO`+U zXb`nrYoqrT74zoi+c<9aAm3S!q^Tz_pI*Z-j?-g1VF)IJcLY%YquB#5uHN!zxv5%t5)zVAh+p;mY>-Z; zTDkCEp6YJz!Bn}yUl+~ZY`&`jeB8#T!%%9$^W)(HpLb|_jZYI@7F0u8Va6xld=1UU zR^qo7bbP;p1MZEQz51d$mwX2_dF4s7a`|1k9AEFWP$Q}kU{8wWnTx+KXlMwJ?`Ta7 zrSWL}V(Y>@^>Qosa0d#mR-8Z}u_v_N?&1N;)#gOpZ;MhHR*ATYFPx2cMK~q=O6K6@ zw;98(caE=kdc`vku^T3F&x(4LI8W_+XdbX|SnY>!0Byao){FjkH{p#X;WMaZ(4xmO zF}yB(L_#5&T|Wr9TQ3Y8l3AY?$LaWh$b1pzX=QL&zq!x%g}}ac84y=#MOGo1sb^r1 z8XcAXEI>pL6=srvih?a}Xh<%YnH9At069U82CbzQ5)_ApBfybwH1g?mSW6QG^Jf6j>+W}&^a#*HRO2<*aV&EAr}PRO}gkfaBu z^qYcc0!%ELQ=yNHD?K&_5!_5L(kOLa+%~w-7EIX0iT?2QrW7RXt%E~64SNM=>Tw6j-+pK8g-R_Vw zgsOT{eo47saX>j&Bdzzfyj=^L{7PN!aL=Kj2;+?PLsGEN4A z;tvJaVsh0g*vYQvP7;?oIa*( zo^t|EZ}ZsL*k)|p<>Ulq(2^u`b9XvjaAMzO8Mu_rGrv9C_|h^U6Rg}4And;R&p)|v zd{Z(THrxoF)%`yA4%0L*Dd1?Lt+>x`q1`0_JNuS1&ikIwhGW?T)MDEGHGFlI5?tSE zO9V1$9aLw0EBRV`?9s3n9~hZnYd=jmqi}1X4X(3AoSoQJ5it6>Trc;Sh#XA5`vnUHf`gTEFwee^ZVL4zO}$L4BhhG(Ytyp|0%s5Cqi z`61v+AjcB0yx_=_kEcT_wGHR66v?a9>4>9ikn2=cAMWqpym^zy zUH1pif=fdEM`^$*H`$CuwWsVxH)}QRz320TdqLXvjw6&Z9$(0Dt54=Ld2~X}Nye*6N*@Fon8n3*rnVJX<5!8y=eQ7@5}q=_}Pj zf9-FhRjTh-QhSpm?nGftY-e%A@}tFUHDmCoA4KOPBawm>#yH%6D>^36^I zC$@dOk2AEdFE;T-S0AoxD}ii0q`aCVpieo-_+8_%`{m|?v?E)>3{I}}=jiT|F&Sx? zZZk6soH(9T-oY-aho6$K6uu4KGy<$=ma@J(BAA)uisBH=gzVh!>_p}=XYF_WQE>EGda~maZn7lkqz5~_O;Oj=!@v820eAT(WwA$5$F8=tyeK$~xQ7wSq7&AoU z;f8iO83tXNDxQ=Taym4Z3`@wRY-rUkIGuK5%(Z&(L53Ya zO`gsU?+iFO4reTB_VLCcJD;akK;R+e?zLf9^A)N$?=OY3Yb9l4kCJBYE7z(`-nfb9 z4)JPdHe8JH>NJ1#2g5CbU1^gS(u{^w_}9=wh#MT*&(w6TglykVWw{Lol?;_li{9*@ zVZKDpP}A>nDscZzTOiY1$%cf@@NM14CUcT4`v z$d<`$R`fo{@w*xh$l(n{RruVvD1>8gso9U(w9V$FA24&Ko)FeyFJP!XD5pW=<1fk6 zwqK32JDW!`<5zzLjIB;htxeS)=APNu$+$7~Tw6uHPnim~zoZ17e*OCOgcuLu+0 zz8i9h{a!bKQ%1pBPbK=zzO~JD7&C+Sd)(nq%WIWRQWarVama2x_-Gjx7MC;gfoco9d;?$rlve>zOmM1Ob1@aBAyvxm8a#A`J-yktV$2|E|$9; z$3IZjZC3|yImY;vpP#UAw}E%swIVPKQDu~6vD%~62KLtJ&IoWRQ&HP%c>;^1cfCEo zdM2>f)D26bt#tp=Vs@jB@cTw1a%<)eJOH(2N2!N)9P@gTJ^@p0>)=)6_F+`$|7q+k zfa++vZea+)J-COUf#B{A!QI{6-5~_G;O@cQIk*$t-QDHj&OPLL-uJ7o{`*(mDkzFG zJw0c-XS(;=Ywx`(pKeCKTF?gf2()?JfKa>IH%xSqVvnhJQSVDhLXfEULK~nx4oSr0 zFM%P?L?zA5?B#p1P#XzlF-h$p`CO_PHca8wl>D)?`1nsmBl#!&iOxNZLRR|hd1g8E zbblJ`iBi_5ZJL=Q9=|=PI|oDfOwDI}I_ZqQxkjui449Kwus61L3Q-Y(S%f;GXUe7a z#>LmkC#%`@Ke6?$cCN={UR95ADj$r=Zc;vw@Ad9QIll2Q5{+HYgdyY~nkblt{8O4&L-PIItXu z!V9Bun21wMhvQInt7kKCSg?ab#xqF5aPtjXO(_v*XDfCVIg3CCOT&fxSFbH_&$wkb z=P|P*%Z;LJUg(R1t-?XvJGeKtHx~YJ?^@k_A?@-hhxR#+a?CI2fwj$gPML--^2`wR z7zDUsmf9(-ip+8t1Qrm6z{k$S>vQEK-NxpMXcMSA-bk91_InN;9}iZbEgdN#Xh=|O zBhPm&EF-kI+_;zM&Z}PX@~vj?_S)Xox>n2A_XFC}l3TEv5wSy>&Cxspz=Ny7y$zXt zR;!~IHRIG-C~H(K&tcx5ZM8e{Tc)`44rWIp(WEubpTkF zHHYS@Lm1S_Kkmv+dkwz{@+j%i%MEYr!tc6pxx084dz87mQwDW9tiMb!M?OD$JzLCn zUt?`eat{vZa{0eEXa1zN7q@WR%6-R1^kLYWrsYe8gXjl{Hmpl!qJ_cX+8i7RSVpD7 z^l0Z>?h_@t+f*|#)o(7BR;&^J{+Y-SOIMejV#|BGy9rAT&0ZN0S^J=U2W)>Vo3c zgV7S+q4;AUr39yvw2(7jPJ<;>ddY_{BwIS$DQ1ioA?Njdt249#vWMCn`3-)xKukRw~BfvA#QuV1VOF@lFSFa_IC2=t>l71XNIM zKeA+?%?`XruxK*e;=gm2AtihW4(qFku|@7ZW8Rp#W}nPSz^TkJ-=MT}TlCgmT5%_` z_Oq%yepAOUksA6(TKr84u7VITL#9Vop8f~}JvffLB@Rp)+DC7qMfAJ-Fb{WVu;}4$ zlJT=%1Lt4Xj=37g3Prfp7Et&lmW)*z1@k>$EBF2>RKG zRF+Ivw&KM!^}T#xj!Fqs$x$k)!iF4&ts?ls@?oh2HDW~5lLJxXKOWDmPhlEP$yclx zz5x<`0z%3xN<`~(x8Gc(5nbB`ht3FX5^Uo(-?K;FM{)hqTBZyMqooAUalH8wD7kxy ziZQx+oTG5?s~5yLzc<;`%;^c$R@QDK!0_^DRocn{tcR3Z;FgqZ+?VS1zL)v{wR+Cu zP*Oe1ZtmbeJBCNw_23R`@0Y&@7x>!)@y`npXIHKG=aMWopLP}W(T5^&0002uqvH}2 zgH~-QC@2PMD?kc~*a%P{bwQB7nu3z@;1gTUKR1-isDV)n)j?(DIGMrW7!&}F?C`ws zb!y5webg>CtB{1Q5hY_RYH&UJ@un8G7)$sv%d{AyE;B*b!MW$NCXz-O?7StwrSls+H5K>7vwZ_#8dZiWjTK)iIRglLzGlxDI`bvq?Tvk~O>YzSzTyINcDppTnAIbY)~1uP}CpterD z+-NIF3krVl_xE=?UBZYP{F&<~voEHEvq>M+?VWk%0J%EO&e;-z?Z&x#4rA9p&%r-t7 z;4a=9pHITgt0VVaNy^Z_mo04m#l6+RrPNy6Er`%nez0Ci^a72v)vp5O^K{5|C&A^5 zU+>1slkS0Or*+nIcNj}b=y`Y6XU04Qa5NofM1)j!-Y~WLb9;{LaMEkvzJ3cIrYnTt zL#4iNVSmx7qY#x3@~}N%KO_8{Vaqn3s5YdC5G4WiQ10?ggzaW~ZBYWm*JibHB7nX1 zM&e7oCe&*-R9jE0OqHv&XFgFH_D5{?@T61-1`du8F$Dz=$QY_Z+3|)dPZN@Ja;C~m zR!eEO2iAhAJ=mY+alhn&`yua3ZES{Ki8pAlS2@!#4Iq=xY3~*9E>|g$oDHa)eP&?r zf9TP6KS|MYl~6cUqwP!i%hufAnNM7LG_#gM@P8-pW!5A-8f@!5XWw#OebB;l{-T)+ z-Mt)WSd~TBCS(dEF>{O)y+2l}TBJ{tVpoW2Qel7nJgSqnB;Wx@>k4r%w=GmYmd+sr z(jQ@4by6(ebx9*g8x_dl)c1NbByVx?758t0-CL5LPy&sXr%pyAa-Kd>V3gShgu>7; z1Sn>7NKWUY-o|wwNnzn$NNIMq;3k`0A;E6$;rNv}tEC#qLfUZD@l{E;kc8FJyXu<& zo|VOF=wRWM8Tyj>UTsOuh<0MjV$bScOkz*=h?%sbW3#|(tHngo`ez#wq8GNpem7u+{y}}7J+K?x zp^AEHIT!iE-h`eCA-_j z1|%6Foph9;ZgK(*mn(!EHjm$*Y_D+-l8Ksg6t%i&4KCJL8KO&99~l1afgrv0Yur%E z1wpaP#Yb^r<0kR~(^rlpS!CqBGw1c5o>h1IXrgGE<)Kw;tx5=;#!Zq~>sLw~@v=0g z$jAXFtCuaXxq%YQy9)QXMaT^q#tK9xN2_TjEcEcd>v$1|M;j^xrc8cTzVh%ffMuv& zi>8)Vt8&1`4oe{d1T(iX4xXz`-um~mvcOu<6x&Lhc7v!lS9Ii#CR!&sZpkwGTvjCV zXd~J0de+&1MUy!ypiN|Fe;*A8C$zx4s3dH*5C#BXsXCr$#7HbUv?kcbFUI=X0(e7(g$f$U;eVn)j( z%w~U#)ibjHCf0qGfE@0s)fIQDuT2YQ>`UAmw*8p@1V#5t0+WDDkRGT<`zvRr)-Z>MvotZq zzM(_ zy>F6Nd!wZo%T2Bgm;3`$#i9>szD(XkN5g63UcpGR{qCJs z;uLMYnuTEFKQHRE=0|9nN#T&(P!(Tonb>)UZL@ z2VJmVs!ED12LCM6EZgJWPerp0Jo+A=D^Vs4oiH8NY&NW>ULB6Vq|OmP%&42`i%N3^ zd|GL`FINE@6C`3;?5w1zpVj3+bHHeVGJ3I|HQS0wOzfXk)s0kiwtKv0n3^6()v83& z^>L3l<%695QUd7%#pTh1Bj*TYGe+Cc#S88UlF@|^hLCy%Pv;=$lcY0^_2x~}=nwej z?n|jsiW=t&hKS4jnT#xdC{%0`v5BF`f^9vrc~yXPJ@$v?5BHHK!ensAb$j7n|{+AIYM({L!^tLo;aFy}XmjPtt&Eq09Om1Z?u#D7^Tn@B_hZ|m59tkzlNi))t z(3RVn`R7NEECnKlZ(&b2F%b7fI#4O<6}{bS*`U}ZU7?-UqrS^EvCDFlck3!76{VM> z!T0g2zlkrL<0XuZFWPMn(95|BQ@c`SQQk!R#RM+L*K4#;m!RL=eu}(71ULpNwdRTQ z`}Z`4^yY5!ns*iS9ORgPX2)r8l_fKt7>3KN2HuE440LaWl1u!#AC~O=l#!J z*C+E=4n*y;VFl*6eu@w+ie&3&q@|r>;^C2o9FW{sJ@QBhoEnEwA4tw<8&9^Q`Szl? zf*9{+mCIgA2*87`m~Ee$Ma3oNK>jv? zvSS{Q@^c_;nf`7wXW(&D(Q~&>B*w%Wwl}g-OmTvazGFW?;HuRiTBq@Cf!=`CbJ(Oz z?Hg-^Xf4HJwc5A*SK3CpJk;95Zim^U{(t4t1H&}pJ5SD3r+&+T>6?(;d_b6CJOJKN zuS+U!+tyDp2d-#Q`0V7}l}c9h{hY)W$OaI&coO@+dgz?Ja*d8sWb^MnZP2HRv77B= zi3|8gVWCy-21h*3F!&LFPULBs&z=g;21A>B<{sH=27N*8IViT2Q4A;Zlp!*3liG(5 zch3K@!nPEOfW1QU`02dXedFUq%zQ_I%%bu~aS4Sn``6q3P=)51Z4mqN7;Qu=*-sEM z*mg@VF!bp3-##aOH2z#tU~pMEkPs7t&%5*?AO|Th6^)PYMfbnT?Rgf=z#{Dy)p%cSour zjEqR9WhJ?!x3;lkygB4w_%4||3MC2 zRTmnrs02K?N5;+V{(lbz3>@4S<~rW;O4dy!Y073WevzK<@?SQU(4RBhji7&4Q$F&@ zU<)p+?C7)Vynx-D?pNjUPpURyKq^CK$V6w!PbfJj z4xNllcIM;i@R?!7btI@A@rP6G@ zor##3IGrY+@>8M(59Bc$kif?;tNK1c55Qw~adB;Rm0F#)^n$)Sxo3yliE8+DF)&b7r7SLx2 zB7guW)jI1P^J>S?UNvu5Z#^BLE#o(h*kVj!bF?aSQN=2klT+I!l?F?z-*7W$wf4v2 zG%=>@w#gHzCTK@vJk4@72K$`#!7`QiYPCO6SaxD52scvg2yt;GY;0&jCiB})Ies8Dz6`H( za|6L9axlEJ@ZPeyGkB77y+I3%lz>1{mr2Q#t*enSpFu5_!*%E!i_TvzO;{T6EmSNf zJNt7go9(;dNT;3w&S`dD7;g@F&UPLc2-v{d@wn8D%IFr9;31|P86Ds&Qi0?_=J2{K z4qQFBcTt1)V1os7IPBn!{PU;NVn*9tJ0XFt)Vo#=6VbsN+{bu{NUM6PyL3GtI7frJ z^7h@VeyJ(9`8e%bnbvXTII;e~*_P`Q_{l)i%Z-#xTRtRm9YWC*uQqk-oy~n%d2^Wx zH965LTBdV>T-Gr|3Z-VVd@?{|Sv8;buRSGsSVK;jbY3J$fs=2$b|t=)*gegs`7qOF zwCOA8UMKc(L6*_C%Up`a68O}`jhS8x?Av%qXlxqi0R9EvxjEhGSQRLd%Nm#aY3?EON$eee7)BB2J#$|+Y-P#eJPNGy* z880rgw?yvl?df<#<68jFQ4y1i)AtXrWY%i3cKX;rJX;3?_&SlHv>AlT`Wc~vG2h@b zBt@~K5IV9jv?_`xtu8G`H;p=+T@bYnPfy0FV9Gq(f~%%#pt3U=1rnFs7vRMr6i08R zM9v-Te030X>b;2)`&Y}jwqBJlP&APbY_dB;jj9Yq#i&)6FDv?1Ru52>YfCfrJ_jEi zf)I9Ao*_^8yVmr;&b`?K#%@-h*x#s`&Re2E5Rm;?%u&0ax9Mmu7lN2YpM;L*_EYFt zv@vgu9>JZfb?-b=5b$~*lbP^~iw$|kewm@mdI89FF)tczBvNv$LD;BAg6xD?DyW^H z1^u7bMVj`FYcVOar@c*V@j;RC>6UP}B@P#z=Vb2k-o}+!RYyB*M_<2}EeOb$wR@-4 zX|W4k*nc13o?O9NTPO>maTtwu*9DrH8?Sk~`1QB#eGlC8(@nrEEG73sdCpxYTol@! z0A^e{l*&rWc(uA8-QUB@hN<4uqzDABU2X?WHDJM!H&D~n!Cjw4S zvM3~eRUY8ajjGy&R_cvg4Ha;<)>;C1YQD00cd!W<-rXE*zmejuspRH8t@6jx0ts+H zZe!N*+>uJfMg3~`IU*Tp%{k|H2NuUc9;sxG8Jkz$_3R5r{M;zs?s8%AS> zP4HfgoVO(mlCQvSnuSkQOZ6140^;xLgL{20$&EkpxrEnLqBZBM`HPN*`zJ`Qr#YhB z9wHb1%@~i0mSMqQG`mqQY}GA9r9k%zJcYMUip+4{bLAg!_bmkDyv?T8|Sc_g_Dg~@0N`ruNd2QJKaS9+0p+bNN_LW|P}{D!*}D&^>HIi6 z*hzU|PDJ`dwGDPXp*@z-YPVDS z(B9s}l!yXh2V)YFy&rbWWK*VV2C}cQo~GscD_m*r*@iG?gGSc48m$7fW@H7?X+nY% zF#7i0CY(v)^e5sN^M8e^>;ccz`)04RLpND5oNnGerF%g~=Y94rK0u;^r&^THf>Ia2o_3kD|EHakEmOdK~ z`-qmY3tpO2>u-uSLx78xcQ0sx&lPHh44D#HeIX;sAX4S-3NQA+O~m$5CW=(ury*tF z35Xj6N)fgMJ&)y?>wge(lRUEg8sX-EF^GeyfTnUWK}|u7Vnt>+AZjBDcU&laDFrG? zudj{&+q)_;J_2EivFs!3xhMiogpU`8_#vjlI7O}ds>xKDa#3mQG5@>um0R#k?aAGo z=vk@^TrV)WQNu|d_;c?>_z`M$dJ-GMmyhSbIo=a!+f%wQ`vRuVrxvP_0!JA!(L>dC zmtOHgV7>6vN6d-OJ${t14-QjGz~3#6itApfDa>{nAKK zFBI2dC^E>U+2x4NA+X$o8v!ZYZbE28JnTASVvyDo&HgbY9Xk%Y&|)hT%YP>EwA#3L z4e)eo1esO~qI!LYJ_Oxr`jsz#FSy|wfkv0Tr2h~EQtsojBLizFlJ^2?_^R@WoSG%l z_@sjy?%RuXxSL6kGDs^$1%l!?zT~B>^^JuiBX2loZL^5Xg$$*bP+r>i!M5#3Ab%wOi-BoKT1#)ocl_=lPsblTMT03v)7Rt=Fe?I$@ zPd^Up0r4tOKU7wym>hR*sI7c-sk3HL?>9IC=>yghMit#Q0r%=0W_#k@=*%0)VNq=T z=7E2>%aBB)B%qzN$N7F6y&VEGxgSkjJ7US5Kfo~I6=UgTCkjM& zBn2*|M>umc_5GSVWGb9vQhir!hk=e{+kfg1TVpDG0RwE3r$ZVc_3nr+Xs#@?Me>a|m%xTC&m`2Qj%>esMmh5a!|C zs62y)YxGzJM{h!*qqE9|CVQsPuYlR5N=iC5oreMsry2Cp zdZ$eJ-s0o_LWf)iJjyoWr5NF) zRPPham%6@-#NULkz8Jl55{U1eTW{$33i@y8Zd>B{-VSTuJcb^@i3y_+=8K-gWOkbMSNAsf)t#U$xLhqkrIi}-mhT14yCKF zgQ9p0flKvLCkLNxdq~@*>XkjdVbog#gi2RqankOpfT4ssXt=h2B%~0csk@HYzbH1&JQw_n~i#j-TGqSn#{Y+=C@X9>NfZ-V$D=?77LH&O? zSS>E6xnj|T*9VgU+AS{1l~sxTBWrnTpB}NPS*`RQPV}GGe}a3Z*z{yRV{Bu+^wvtU z)jZVpT_X>5hJ{9v5a!|G)XZA=n3c}6H@oS;VmfLx zIKR)LP0y}pclsl80*j^6*T%H<$v_j^?h6ejzgZzlFD!}{*{?qQP!nUv&Jst&R&J28 z?E>N#e&puUpH{HXb5Ki}c$~|ZtvE&X)KO#KS76lt8BTeC5MKF%6E zEo%@FVsaTCXKo(!D{(c%x@2qpODZVZW|DE`>Cb)6xs|bmm6*m|+IOuGw71Ydp(m|LstZZ0{2yEI z)^UWzf~K3-(N%a*$J!s@wcCh6leeq(u+`3sfWs3QnZlXrRb>g#m(Us4#@PNqAJ}Ab z9&Liz*n;}~;h7&Gz9E{uQ3A@n&+KZmhj({%`v`iYw2J}hOOL#1@@DMzIN{`xdQ;u9 z$qO^$8wCmYHJC{hAIB%YlIXz`3?^1$G8t|Rj#6lS=|Ze@I4@%X z4Pf;P9(a?7EPZ@wX>PJ4(K0cJU+q3tCe#hjoIFS}Hh_@A=vTB?cT{7pHfz0HW7XhY zh{(d^4WGpp`&qozL<2YkOD<)X2Uw*UW!q^s?(HrW?cl)Ka=~QW2JRQMHSZTOqcv78 z57Vf?cUWhR3fU21A%v zFtX0OYY=NUM1$K<~5O&bxxz1I!=1y{Q1}kE)y~nMWsGu9Fnp{t zs$oT>S<9BvPUzEW)kf#MG5sd8C@carH=VFsZBoINg)|0M$}XcMR5o-B7GV_M56GD8 zn)c8`G{bE*Pz2_EjS;z8rHiO%FUV!3QkUM_{78qETj~-uq_kr$7dI#s44xO7enT@@ z=#b-+Quxd}roC$~;1+Jv$s0S(lw*#4i$0$o%^E}OmZ1J@`MBvcelB_!)v+8mwmO;y z!8(O(l=D?}lCjLA?UM)t=1rH|Cy{(`@2$1`@sIGHtaN*u>Xz6KqThmbn{raE{~Ayo z@HiH`BA}qt#RhA<JZOHe zRf9Fhm4Rozi>wZGwPNjvw_iAI;B!N(v41k>x3zgpq0EOZRTPshkT;ur0Ywh?_LU zmHG5rgUY0)YTu>Rx`ZmzfASaI6UZc_&r>ADrR#4RZ9x%wJYfA0jmX*6^?Es817tMa zCO(iB80l62zPf33{|&ZzGgN?tk={bpi?L9QRc-d{y7h6+dTrz?dQ^<$Cv=PFd2Z3o ze)x#mEo|0^cRa9k+U~#*&~AH}b_%>~f_!vMkdc*-`Ok$CYrjo~%WNak$Re z41Ec`xrLgU@8 zAR4Xdi)PY0;XXTHLzWIDEeIW|M#-Chg)#g-h~3(&wAH#cIj*d_@Q0)9#>+C#W54M4 z9CD@c^(JZrLGx7YNsRk()8epJR@hj^U6VwEB{~ytn&h6feJis!XZCieYofikx7VY| zCVsnp<8k*5(~9_dee1(wTJI`f44qEuAeJA83u6|~e23C_IHpQ-`S2^Eh;Q0~%X;m_ z_OMs29k1>qqTWMy8bBsvaM(T+Y#|S->i#VJW)HU7O{q>+aKD0qki9(?=?gI@7y|Hm4pYk#jnAE(bUS_ zWGUrL1nt>J@5*bPq~b8P0~5!a;I?GiYy`mJL7h{q?A|8~oS!r#ff;G6iVJonrhk+J z?bD>Ncm$e$8CEJhC6^?}Kd`$hM-MCIT3QcGBrB(=caU_`m!rgo#=Zx7{-KGrSd4Us$!0q{3K=bnhXa{8a3X~7wG z@&DAKVv+e2?aNJl7>pES0$8zE8cEC)RIsQRH~hZ(f`P|oL(V|fsPWXM<}e+%P;JN- z8axGH&vJcksRhLufyy+jKXEA=?iop$R(HIgT8GIB^G(QvI5*hpW#G0uZ%OZ%AW$z?`<8UkeNR2F zze!AvgfEfx#4D!ox9*h|Laf`29|`r-27D#FW*3|pS37oqR(PnHqQ1NyidB*RbPZ(tSn6bI%Ddt zSrApa{PT%(#-dSvQLQ||34Xx}u7ozsl8c3mdqt}xy)t)gj$kP+tYoHR!`9F(yrqT^ zQFmTnd1(;J44Xm4{;8z@pMZM`ac)|wcSzG4B7#}wNc4r3Gu5;KfAhG|*5HI9IGk;I zDw*#$9nsmK^BZq64s{X(Lo*r(l+?AjleaKRoZNbSszf~e4x*YFCMUlwx=(rDBpUHz zuLqmmxojt%lVTM`_s8^(W_s6k*m#7#Xo^d#4Xe4Xf*QAWFx3mE2dFo@GgbC^P{RWT zb=`+t!U(z-f}f_YfaBV1#Tb3wuc{_UF6GA)w%;60P6PODPdOrRiao~0aHLw&Ok)+2 z&qB>ToG6-|h$L%fwdZ>XxSe^P1~a$tjPLA6R-0lD&(t(|t~d@&!?!J6ucUmc<162u z0NW|m1ITTue6=TW}e)u2X}ew2f}p49{?HDvWOH`CiGmD<%<(uZslo~VJUc@O<>m3r_a`$LHXZJzR9yWP zy!Ry#=Wbo7x5VP{xXuQ_vXiCyQd}}=Cww6G>O>Kb9)jbVPg=_obG}Gn!Snr)L+q;N zBJ!!8u?42Q^p8%9O*;#!w7tsQmzCYJr+Y*jo)-VfJD&|)&B}a++B?d`pS=BHhR%Mz;Ppd<5gI!^$M$_lmN<~~Jv1t#!$#2qZU(O%$%XPKubt11^8({>uk znZy1f>zg(1h}s`e%)HvYnJ1=nx>PKNtW|h{>;S`{=Au!-DnkYu8s??)GnCF*ob*=a zw@lo5NJSBQ%l|L>C>-bM9DQ=-$b^mc^6)n10v$JBuO9HA#w0Lek`&XX4@w>9f>! z_U72v@2_xK|J4$0cr%hR;|_t1rr962}aiNO5E3Up4f29(1f0p6fY)U+*-c7JjuqGXNqq< zt}hrm!TJ?OIk_&Eo6%4Vpa^?N5lQ_eZTkw#yqbmSt)*|Mtb^`)fU(7 zgC+6ypm(R(v!wXerihjnJ}6RSXLlDB3rn@UhM1-Wby=yeLxeel(>d3;DTds8U~&SG z!s4kV8;)$1D!%4xG6nFl2Z$w>Z@*?*o8e;gfLJI0!x5<1ay>ruaj2u(`#{t>8013d zj%q0-CCuk!g%X{2*q2LxUdwhk`z5wuQpo)npb6W}Vq|i_rJ3?+Ii?`vk)a?wBM(|Z zOST{ZYNhtfQU`k?VQGOrsGfgP;X9|Ym(XEp84pm?jhokSPT0_N!oyjxu&qq~Oq4T#|OeW(iLr zAYgZ%9MPo@P!T7p!3nga7&q+x1&%;OBnETw;vbhSd||MKYuYFS<^|X% z)fVj-5x(=u%w!7wO496M(}|~`RXsV}A*0Q<7QH^w%|dT+j2s}^Z5ocy`=$G>3B4ML-Vhe@ufT=VMFz*$M@PMf3K zGN=R`9k;C!l_!3|=OSz7gp$0dt#TJ?k*~>pa2{#Ll`mIkBqlmQ6^^d}zrgc-8RMy= ztRW))(1UL(u01Uo{g!=%fs@sBPO`IA%4)uSrz#09RFd!v?w`Vb?QQaF6yLNPu>EW# z#f{7uPO9c8gYGC_3Rk=%swn##M){f#@OM593S8cM= zLGJVo<1enE+eJaKvX|kXdK;!yYMkt@6qXm`cnv@U0fWz;MKiwY_w~Ur_uMUC=~Rw) zQ{v$jY;JRu-W&&CW>#Qz>KG%;GmEOEBb{+xe|EWe2db~5fJla}amn;#ub>XhXG*5V zXY9iarYrF52e2-F4GCl|ZRtt|X}C{G!d!U#V3;f^|4x{q^!5LHjNseFp&^lt+FsG2DT|Y%n4M zn5<8@ZWiYPPlcq3J%Vy^$3aA58xq~`42zeCFHDKv-4u>Q#?MF0 z_>XE8wzxa$=S(h^$ygLQ4_*`6!dctpV8Y$pZv0 z9t`)un>w@H+(7I$UU#;j_=qk^DYB#HJY71dh>Sq{9sG8;+<He&^!~6R+=3Oh#Tiis$xG0IQoOoNzXG(+4V19NiglpCXv&0Jl;nK#=k@bXl`@$a zQ`_M8=}m8BL1dm=BZuL+E_c1%xNNyGes|e6d_Bmb)^fS-vGs8B3f_8FZO28?Y)r zW3L-j^J6qnx7bFQl*s>V{T$kLu$v!uy`wFEM(GD>Jv|Oxt$@ z>oox!BYqh0>r(A8IDEKn`aMWCNJ*}m?~K^nNBQti$*V6CsWY&jN34G9`1xx<@x1!% zKCu}^iAgi0a2q~2f_$18by^c8e8r?6d3z*- z_b;x8_Hk;b>QDGc3ajsPx^&QNK?5N8d^IRX4V+gmKU1yyiwEC9py0D@T#m}t6k`hQ z5^)%2w{~HJXr@C-t+<$UO<+n+J?>yJvrdgrEA1Eo4xOo3|1A?u| zTVuFX!}w0S@XbC>VLxOp-xpF)Yhg&IFltx+V)h5h1UJgFG9h_%Cr(7Z!T&%`jEiZ2 z19S%0m7LdalzcQ~bSKIKXE+~D$UL0_zrPoQA@*WAa>jPzbmCN{-Lz~DqNtU#Gp68# zMBoG^=Zg6W$olCBOxF#2bN}<@LOM{xX9fIph&!_fb_#p49i?ZB45C2=wZf=@7t?4) zGm|u}NasXw|K(W0n_{EHI_@*pq<=7^IVE48^$P7j-6)0ajZrf5&w_aHuTDj3R!9zT z1nJavRnJMxF2DEXHsb$fWJ7#gz}f`Q$-59N2}JGuh@4+uU>F}a&p}t7&$)~Bj+fwO zModo)8ZB1PQyr}5_*2hOtwyl3qy%>&V=v^MQ9O!F;7#aK#&Cs%7x24`(NGn`gV&ugTES!(eS?d1c61 zo@n9-Qmt`3hoaLFEP{~2)V~lkW)-V&0+vKuQ zsajp?aZ(agVo_w486ouP-`Rf!#DD5IkmGjjM&yJH&WOpu-u>_M&>=Pn^Oc|?M~Tz5Cdc*8=>Q!v|3@@Tq9k`Vd$Ak~ zw{5LL{ni8irJ!ejGF z;;G_qO3m^s3E=;Iz?=_WAOGdEQF0Ap|5L8hBAt}*-vgp=aTwrNVjwdI3V3!DvC&|bPGs#44qQa(%s!iH|H9C zpKtH?`_6mLUTZ&V8P9Of-1q$Bx_Oly&=XlhEX44c5)`a_66UiLNt#MzCDyBJ6UG+&sEBCn~Dnb%$YZzSQbd zGXF_b$vh8I(Wyd9TlUk{Cl~L$zseP@7V!xEmnWhYbnrX;^?dT5pFDY|fPVSn9TJ_P zC_m+F6>3K6KmQ-G8t$b$B*=YXLr#b~lm72(3{rbKfknYBhkxE1U;BAN@jrZO_i$&) zdrBUMQ(^Xq$fKhi?D#$c$IY_`4_iW{ufe;Ye$=Ov`sF6w;3oFMmR7*!$%e&RFSQ}H zwtz>zCXGp^Mr65+?wn3D{Uzd_Ev@R+q@tEW;j{Y!^Zbawk5x~I_G+3-2}3!p=ypjF zSi52MIhD9(O_f!J{wPH{4w=^d%C^ndO)AA-c%2U5(QPDIt%v-R{Pwxv&0YF$4UMF) z3z0j1_}&`G#a`_t!}ne*+dOnzAz!-x;Eetj&1rhWn^0qSCwq#s#_{4p{ z?dLQR(sgF{=_Z|@U<-JJN>FCKikXlc(ckp`n!{d{oW93=u5`=~6|9iHoZ6{$)zOM7 zdA0QFfB}VDOs#CHqG^|ByPf^#AY1P*C&pvZ>KY+ZW^#8QUeRn~lvFGnw%osQsU^*3BGyY#|q!T zOnVR8?J7Nak6E@5u9pQeetsX!_XH(SN$+mmJM+s7CjD)Q&FyA+uhI+?2ggC)kW`&s z*~yNi_B6%bvS77t``VdNfndBiwCNNP?I0?R_D4L>lV{3hS*#dvlJ5} z#kMtfSja^W!+A{O;`1c4<{I;k_LsxL!W86Q)P3?H6>AbyFo=xrvMD$;8X+r_Q;cX2 zZkPaU>isS-ye5%5VUdy98B z{j5+?C~OT3QkwZ3ZvQr~`5Yack64SKL~zpiMxk@*bIc+3dagz$3~(D+#Rz}ts7-JA0m_{#i8pv`c1Yd^Ct@DdH^F$4F#a8K z#>M{{@WeP*qF){6m#Sj4o@q2|O)2blH<`*-td=@rTXLG=(kdIj>o17fTG%Ej*TjBl zI{Wk)k|me+3*!BS?7G21!r?1Svqo+VxwKWR1sxtUM9CIB(+@C4*Bi#o<)aZ@9a|53 zj0nBO*$!AYEvMvnEtSWyhrj!`??#6)&s?zb(YN003O%+u7Aoeo(L3}ytN$^QRKMs{ zvTx0@NF<*pJ@w0$M42^U`sK2Z-v^24RVSNEv)k+ApChbqMoT}pQj#KdD%-7X=o%Eg z;Z{>#rf-YUWIII9SSiEif%b5@A!#yXPy2KSK4w_5mMHqF7 ztJCo4qZQA;D!Y8h(z^FaX1KBUm>an}FpPZD89sBbGuDdEjt~*kUO~*Uu_&^&yG3U7 zXBQ-OEwVclU${z=a}n2im^ye-t^S5GMh>gJ?)$S^6?Gn3{L@=>+Io8B?)`>%A(<)s zWgkwMpq9Ps9{wDuw--@en~HBq>rDHwg*8W$i_FB8_JLR&>^fMrM(3EucgU-S;65@$N=No7BxK&DU$@`%Q3yt6 zR+O$U{lc?WF#eh^)1BX~(q-M=UA3&ZO{W>X8f8*pX}?t8d#sXmv+hd>`GrUJv7Z|- zU(TN*in;eOWD{vIZ&%&NtI+aMLpIAi4>{@7=P*^)`1&?>&jOLRsavA<`HggP-1B6) z`}$;e%O>n?N+VbgOYztv+#O$F1ou8e45*iJ(5{pACS#1AmhapvW6tel)okg`fn^?bdc{x<4e78NR zG=g}h_1klsSDNW@H|!Q0y-owV22a|Rk~5W3e_N71YVKvzXyWykR+ci@dt~KJuw*)% zukb*5OHZtYM?%f)I$bah6lBu2+L6|!fO5&D!eL5NBO{}?J}2ZH7z`X|sG^;Q_91d- zW2Q}suO$(bxNpjYWynnVz9@YDw%xx|bX&u`HM*m(j3zI)d^lcar-#2fsZ)`7q@npo zWfQVA=0geIp1)fCZ(QvS=OyzfiT#-EsI3vgP4|>uym7{!C>A%4%={bsZIoH+evPOc4gSq`SqlXsrC%Serlao z%jnvSRfC+g#)wx*I3B!4dRe;6@q#7y;XML*d^tJQ_t{6$Dyl zo?lKV>qjz9S8)W*FpI;sahsH7bPZ;q>IhIs3y8J|1}G)hv=0$FlXmF$m*kc+8ITzl z$dHoYBB-h76pfo{A4oOUH26ftx0uQ&In`uq1^6Yh#n}rAKiVrhFgvrJxlS#s;dTR? zv;(W9KZwOlRN_ec4+tuXu4SRLrrLTC%4S5-x3NW`&yC1gexF}Kd8>qlqb6-HHk2xp zk!*2^{HgBY*}Inq8ob7S1NJ5T`zfWdOhU(V@R0$e_I5M9&(EJc0nsQL!jGp4j-MQbs!|73o#o|Y>OXvser@|=zZC0NlO8jPDODqr zS@m#zteN0rQzaq$#5W+ewYfl`R`-9vPdEv{5hkD4m>`!Agl5x=wHX(Wyw57+v;{MfR$$ zKJnTOO*;B)a97K)tI$fd3a`NS(Q6}Jt#wu-MwHs<#Ikh;1No`(Fjv{_x8?D#q#Ip* z#1r*p0|reaD%DKiMenp7s4D9@a`h#9HoS|QH65ieLVfDIC8IaX%-LXWbB258{esGU z?i=J7SSD+_@ap(4PVLo4758N2=TPLFQj_VdiEr)T4|T zp;O9MX`s(8znk!foy3zfsuyN74L2iQ|B#YSoqy;GJmVkA@n3YMCiO3~A&9#4=TaQ$ z4}V_x-x$f#(NcQ0!&VztYD!9R>a4@bPQPlY4Q+UMco!}D!N`5{@$mzw*YgcJD6Fil4_dTOyIu=O zN=aGT+37F*ieu0yzRJZ_WXBi@58g@f_3PJPui1A(h6e{H*Ve{Xw(ZtNK6!Xx)_%k{ z@3zu6FwoQ0eV3nao!_Uq-W*J?qN++8Tf-ae-xA8CprPR#8mb&96uGsv)zscjO-1!V zI+}MhsM5GUTp^fZrFAR24(@vsq->IC+yhx6edMZzT|v22?+@c&BxonQc3Vi4#KQ@&AI8X zjaS8vmf7c9PK)fWk9VA&9DVZfF_v>eB9W$URNHl*2s1RxLQ+yv^fSw})YM2wIZb2> z85tR8NA1UvF#h*xXtoaKW36X?exVMgWnsAnH|gr?GE*Bz8Cw_`XC+H2Hw&|D4My$Q zMkZIW8Sq(mj7xmsq*ULEB#Lg2;t8}}?qji@lSH^3t#TohvNW1V&C4Il%M;)dJ)Bu9 zTUXM5fD!Ugvl(vJmZe#SNJ&f6-C62w4P)`>On9FEy7R8QygY*2^^pDSsOl{Je1-kE zE7yE`H0H!ajR*hc&wIWk9Nyt<2Ah5A=3fE>yW^dX=Y`I64mM{Ibqx)4%W7(zu>Pj> z!#Ip@PEJlrMsni8H~3Loi-V7E0AGqc-lfcbeXcc}ZU5+q%Q#v(IeqJl#LsiR>MRDH zhpxrM#3W46l{bKY^CFvm>r1#&Du%zgwY9FM=B=;q<+QXkGx6bqVWcZAib7E>rgWS6 zqxYU=iUVaIHK(Ly^ceNxddF~Wd@)UGQpEFz{6CdX3SVXw78{1{V<@IYl=m8;Hl?V! zxI&kfjGXq?+H&<82a3!o-@bht6dFo+>((dfWW9}v8gb^Mlf7|0BO~vGgnJ+HDd#$$ zQzDo9GRXv-g1&wwK>jKzE`F)6pLE{;)~#FTv9SZg!hU+@qPk;!Sh2cweS^qcFa}dk+tf zJomHHlUo8#>{Z8`5*2y3)RKFR9AU5D;xM{i>xqYHL|w;gzvi2mNab`AOK599V)=2? z+}ZgE3$yM0`}5K<{9?AYsJzzZX76v`Zr{CkZ?M2HFmI%_)wjC(QK{{+-7;449QDh1 zR;t!jiYqtP6N(ar-tGzyF`S&*VJ;ewSBK{Xwp!rT{-`6!6qgBJYrx;oYxK9AYrTcU zvZ?dBwo@3+taC2bbvK+f(`|D`jGY8e*zOpiCZAIi%H!Q`On2b98vG@$$s%Z2gye&r`Cp zlAQO}Y}Uuf-#D*Vgns{izdf4oBP<3FZ2X4K&flKfQe_vCQF~$Sn_)hvPk1oO7F>HK z`PoS=a7~ zOw7+ex3OWDlaqV;^l1*%Z>3-<=nf07H@CLLq@-qJoY!g^8a&rV%ephwx#HvFH@3F! z!G>B{F_~+N{P^L+1iV})Zz<4 z;kie~V|89ZLE(w8aPVWSo)R**Riv{ptV487=i%XLjo|Q+OAyI*+F82Ui~a=3SV3|> zk=ig8JuiR%xy{)Y#)p48)3qBnZsDM)XBMGQnSl*)!XLc? z0vciGK!rhuba!=q)v9o^JUw>wynO44uI^ohWNFha-s8jN?EU@yiIo*eOG}m)FJ7ed z8i`9tufhjsqEMZcy! zN2#W%1<9>jVn#-EP=uP<-9sO02E7f6j`oX;B!$19GkTaS+-4k;g?|yBocF1;^p(@o zQ&?APu!5xz$BN|i)RBrC$gicxL#L>~@ zkD_UItgWqitY$8{9}SP^&3F-;xIf?PG++aZl~Rq!PibG} zM;_T!8WYPp!s0bQee<{Qn7wUZfPGk9gw`^*HbMQpP>OFV%5^b6G*@UxdgI_Nu%;6L zoJ0w_s^KUZ^YHPp!JVM|Id0ToFG49!mX7`b73!b?7V?GaP;ECcXrz6DbATd!QirDYAYw(evZLNYQ*9i2N(O-ZQz(s_7)%W@r0 z{EZWRB)8?=_42JNuq~nOr?r<3?RlT>4x7)+%uGyA*8=bfBARcH5r`CU-u)aB(g0ZD zxvcC}fN1DePsVHGwKwJ*aI{`U$;8A2)7QO{mzb3FH6p@0J)QpEbN?B0_oGNwFLik| zW{6J!oOKh5@?1}INHX5PImwys!dZiOnJb?D3Vcibw!w^exF! zkxAuu7Ss+74&br|fAaL!`_Na(xwyEX6*|^x|IF@M-Z^~NTqxu4%P@fYLXwYe>`U{> z?2N_Sklc1cM?te|$RXCgZMDYVKko7WKGG&OVGG(ja`}Ep*3oSd9^l~{SDr4g`kc=yH& z>++B-4%G36ETM<`m*2+~))KD~*9}f7tS}x28>Jm^p9uHR-N1JgXg-&1!O(NlAbU6fdA^d>reNSx4LF#V=p(9k4)R!+A_5^=4WPl*4`RQ{N3$}At51H zmSq<&sBqSG*N(a5k@&Ha(l?3J{7}pqyrp;d08*N!k+VQvXBS2%-wjUpkd< zT*TLQc;pzG8a-6mo}PsM>Q!?mcQMk?pH^o&ku+k>`-4-(vF4Pp>g>ZM*9$V5PGKF# zRWr3(u?q3@)B}d>=vTBax#`N(meA0un^m)Q3$i6d4hUQ{ zBiL|K__D^@Iqs{=@kW?Elm0bDiZ2g0TbQxq_kYKz9*)Xl4ag%S`G z{~Rf?HV-F!;_RE=)g{l$%E~KAZvNEK*Drh-6p$FVLqp(y&I&^bxq8Kn0iA`dWx3^0 z?^*y2lq_eJ5%W7(q>u49-fL)mi-{e^X-WdDmmu70SgUN*y7YT@3syflJ#RDg8}T>1 zU4q|hwA~Kxtn-O81zQ!)1QCS!TZUC@?$+{}cr3vKUwF>gM8nP=RCRW;-ps15K76I0 zB3(I~bKg3-=#sIqF#`jGg_YHh&dzI@O6tj!{QUd_CDt^1qxRa-CunkN0l8#n0C^Y{)RS(=L&tme)I}Z=X$qz)_ z?x*E>mGSZK(4X$O`3n8=?w~=i?S%^$u=bom%lPE$%dUd0hopP>a1IzWfZO+QpR1&R z(8nA4NR8JUb}M260}0#P+qwDp`j7l3Cu=`i11@7_V+%$?+y41e^vRPaLC9;@uDQVH z+3vamrc=q+m-2Ar?4$8q+UsyX4P>g^e=@k%EhB{N%TR4bwgDMjt2{CzAS8_B$nr%c z$GK^g*)cBnXBz-pgue9~F71t?q;QV{8bf!aUFi~@lf&HH(&Fc@qlYXWgVopq=$)8F z_dIm>$zO58SS{THzx!n!NtR{w^yY?`FkzG20V=JcuFh3r>g(s@xilJ~SIp5Ur)O)} z&XdQ}xB|>`AV&xD)2C19I|AMvA<)}jOpetbE;MZ}LDT-Z@w3ySr*u#BrH5-z%LTTJ zNWB8Xts|4vGiWEF@Hg+B$2Eh@AyRgJ8;z{okSqWX#X>=^L*HxPgV6yN#N#5la85OA^pRuRIa-44hbsFBhx zdiSAcOcjO)MtEf)7xRt%nBzwn^_vVTj~+cj3=R&8yN$bS;lYpb)4Yyf?b6G1+ z50~re>wm|d9b>~TI0aVNJ6M#v(=b$)>zcjSCBdYFL_P!9@#2N8J2PyLFK^x;>{f^B z-(A2(aJwCI1L$&acD4orhdA6@?*OV1)N%|;(dux~7EEdPYax;)LgAgQ?QJwo;NPF{ zK%jvF6a*kQ#Jn~SfR6&=`Bh>)&q-S4dH8$Gd3|d|*~>G7at2aWM{9hi zo1s-#iHSvF_yC2%qzJ1LQBbslh<6bW4+&C+$#~`HLhV!3UViVXCLiJ4@^VX{jG!1y zmy(ha!k3iGA7rCx0D}U1BObxQH$s`Tm3DD(aCD~XK5YX?#inq0laax2>Cz=o^GwFd z!>J@fnB7lZj!)2PMM2(pid+K8NH*=|;8fV$0M51+5&{UI9>JPh9w{3faMD{H9jL@Z zms`Zf_I3tQ&!P=4wRF@^rmEuu?|gv2td_c?Oj3k2()Xd~z=$J&P(KI2bx*{XIV?L) zkVUDAZ@oMa1h8-Y%S{~}Gy($AsS3$f$NQFu_E;eq_%2CFNm3Nb4V!Fz0iYGAsHy21 z8~X$V$mE+{D|WlgrQ~TG92E3TDgF1}USofMs8}F%C(5`VX0c~_{cw}LFSemUG82g4 z8+~^FX09c<2SP zhuYm6ci56m6UA}o=Dvt%;mvk5fZU@{TpOS5ILkNnUc`at?ytchb zUKq#5#s)I(%a#zv=1&hmCWL!*b$6$xrTrKm*B%@jAE!inxmK+H{{DDLsojf9tv@yR zNLgN1zrhm9aXwgUR+2V9~&=RGqd zsj{*%n)JSUbsy^2%4k{W=g(IY@QsL#h5^NT?BHI!_$?#D7bFm1xKBYtDcNf03&u7> z&)>_J-)i_tNt7Fg@@e(bsj?_*{emaepoUUIheY=Z`!x-a8w@ta=94Jg`$LndP8=(M zsgaSB=jP`F0U#zJ@?44z47xj%9P za4344fPQ71Uw!>$)Yj9nh0+L_E}<#HGrX`gh6nwrye7i^W9vj@WWGK=K6xWGH5h&( zn6mT2nY-hj53&1V_KnP=snLbB{maeY6ngXNs3Yaxx zi;B3Dh##`yMnc!KG8<6`T!mvQ&Rm7&5iknCPg}}zfMoQ5rZ14jB zKNmqj1wO>T)ygK)&CyfXuw-CtEYT4o0A(Lt7cP_Y1_25oprn)mMFDCJ|L%ZZ8;LTC zjR$YGKPb01NHxEqAt#qtTP9IHSGWEWTAxPCWTNc|vHUdMc`4lT3lbnRk~ zFa(rH+T+zKA|HzdU*a`0@y^c9Ca9B);V;qJNS06a`t&Id6cB_)xkGNdTc+(|7Zt=u zxGg3SKr$7Tl@*kf`o6omy12ZFINHw=h$}P*H^M9%7*L@)gEE5r+sWhO?ahL+2WO!o-HQt6%WZ9Kup<;ts|rv2E@1lgmfV5=&R@8Y3!-@C>7g;m z=4#pe0BjirPt}HFuUxsZqu->~#p&031USmLlVxORI)%s9a9wX#=~gY^lI9iE)uMDe z*XJL!F4XtZ74Z7ll~5|CcPI3!%4%dj8Gm~Y)FFAGG{IG{av2yI!`Tf9K;peiM|UZu zB#M}lGCO0q+>s5+DRh-QuoM9O4zIj;3Mdl@@@(`w5L8tIwS!Ed0g8%VG_N}01Z53` z7}!reS;)MiA{u7q&+C;({vdERH#ZNIJLcz^>n;2J*||Lnoe52#wE^aUI-XTynvt1_ zmWu(n+`E7OytVb#%~@oI8(O280+gnxq(qnh0aRO^quo_dpsOcNk{Fw^b8}~>rk-eM zXhb8S7VATWxPJ4dyqa3GvbJmQ60bHrEv=X%Q=)XTaH2e|Os%$dOdpwh=4uB(1X(#b za3WwnTZSU2&jwhX()oz^T58yZu&M3~t*xzU$GSUtd8~k6!L<`flpp=f3KzkbHnvbo z`xhn~t_6y&TJFG7X18h-=;GJAF5<7PcLENb7$_ENYirHLoy$8jb91`p=Hn}Nuf?M| zNbrET!3Dka3hjj^qchS-nUN0Pq0aw3?5$rxU`V`z{nW7oD1w zmDQC}li3=;DnR5D55@lW-%Q$z|G2jQgi-&od(Cca7Pyf%cXVVI zwKg@0k%*uPdic#om_{y!j=5b4Lql5d!HS-aqs?d3jN!=@lhIOJs8J9KWix1hHJFD4qw6BV-hNMH zPrJg21Bz!`J3P;)-QE#5^m-2t4hD)LdZ+}#2cxjQG#@j##pM+hXj`SazW&*PJJ^T_ zfRQT27Iy%umT&yPjS_O#8a&(S*QQ}*l|MLx@)u&*orK<}Xio%$c#>AQ1*2AZ7?6w@ zhbbHoBphbGJpb9+I+G9}s0(nnHIgf!Es~3V`1#YP8}Lc}V$+#LW4dh-98yNH&>}!# ztcMLA2J$MsQpPtR1X_-lQ8J2(*Z0QVg+Ri51#klD4U0j06xP=Nq@LLfK)7Fln}9Z0 zr6M^whTOnD$WTLhgPnn<-T57Y=|M+ehw_8}beWXX7uW&k026A*c_}sd;-yP>`S~@% zRki*Hr{o9|F&>tMWdJL$=XV>|II~{E<-Tm~0Ht)QyLX?c0(}w_6T?B!($WH9_-YXA z8UnY!MnT~Z&bWtRp?=j3dL?E6QQ#pyM zyehCoq3okg8!=n-1Rm|J8+67$V^Ga|57KqM)oe5GESd|Fn4p2@)2HXbRyYRP26W>~ zFmvFpS$kkOYiN+29dx)m0HGf!w$zK>LANY$Ig#KWqh~ZjHQy5kmDscjO%0*3{|4hP z&u&!>MEIqkGW8;}4D}*^@Kbu1Lyd=zDv#FmU@t;}&T;sy3u_JJW+n^_3|~s27|@~t zZhpqvuKc3(Qbf9-?nGJxLwY9aWr6Qj8XK9j3 zRh1llc>n$?35j=Al~8w*6hMjq5KFEI2??!Low=>7u7a0drM+_`u6?mI97(Ox4sJfLSnWCJLGM`osJ zWKkTt3e}{h%=`1L$pX#0r>v!=WnKn=kdTC=x!iF}1=b%Z?NZ_}EVgSSss}|MKVky` zEG{lae3MVLu(wan$heI7i}&L-^vBBVnE*V&#IUPnZExFvYrnC#ryO!{bd=D&2x7Kb zfh!Cl3mehTS8~TfHhzhpxX+bnYyMXo~!{@Hz2J8d)QD2m_PB` zS0*MVUgn&Th|jAv=u2d;Q_e;vsrjX*rgm|zj(WnVKXnGiJ}e374Vn)RaIUmHW_jn8 zegLx#pM!$x!2JB#(qi02<%*!Bq*SE40RXQ#4@~BB9HDiQKftdCGYKqN9=F3q8fuxC zkqJ8h0tj1*cYycgPcetH`7+ep_h`Tj~eI^e-T^%BeJf}0nd zRfgm7(2*e=>1RIosi4zI;N(hW=9;sU{EKB_~}AbfB*jdOK=CipZo(@xy-5W z+>ZD4^?;(AayK(PWiF9PkSq@)DT%)s1S27Wy5x$r`-?frcEN+AslUPUS2OmLa$Q2^d!jaq;kGQ+!)>IEx+@G$d*!CVV2IP^Tlf zLS9z(O<7r4XMuXxpY^K%5j9_fyAe07n_#D11BZQNWW;R1O$r5$9q2Rz@zvKOPB(s` z082c9(i&WS{WdQz36zS2Bk)^EHO+N&M=sqSgEV1JlOkIX#1yh zuM%X75_(0>LYJEX_4s>YB4~-)BfrWG0KP-3fq}2-=?Ov$Jl%^bD5GE--@gT|nB0#- zAOhkXYvo(gFyZE}$Iy~97?L#9)SeKafxsHr>8?wy-|cMBvof3N^rux^>QsViYi@K3 z@`*1Q&t`~e6~tn0J%tSm$vaQm?;m6TI6h|2HtA^L9e>Iv`ge4n`Hum-Ki8o_;9q;? zUk8o;iSj{%>f;O5d~8=DLh`RGx_9HSMO=bK>rOL7ilR4!S=VEm%=63Lz34@D+Mivb zLv^8#4xu4Hb!omMS&3RrmyVgAnX|66at!5Cm%d}iicaHI1M8b75qHS{JSL8`xxLdw zDrR^F$)bN|Nkp7B^@gg=<7iWgkuS~ZAC2^1)Y>O)^wvK?Y6dHHOjmu6bE3!UEhBPV zR(y!i8K=oVRw>LItqRbnchh9JK_Y;77OW;YR`pa;n#w$2cg`n8YkbsaqKO`RCDGkgC&$0Lf~jmn;k&Ba;=5)i zxvtaEIKM?aJm{%+Yj)vnI#NykQksL=8@95np7YIn1z zS}wB$Q@_^JcW*eNoA{!2#pJZ&v$ONi7SiR~aI(FjMG>o1+se|)+OET37{&(kgb~ua z;scJogNpV2Oy6i_@vtR>#uVwk`x=ZiRq`!01*}Tv9q9}QBbw~5px1(^h10M#iuFTY zDO<>vGas{^F@XXsN!z=_LSyk&_)G==r znvMFJMZq1Y+I|~fV)5#~o}6!a*5rzv{z|EQ1_PU1%{v$!|0V-1ChUYGckY_VwO#%5 z?$LN6O#m&7+!T&FxPQtWG+T_BRKwk2?(~33lbTpOvYF=WUJgrTkhbQA?^B?z`SC zr2kZtLF(6;%%kYl=eC8ZMJv(WC6Wt^j|`mI7B8cpcf{(|T!G(-o)>*duM?-ngV&ZM zAxU(+!;!Ra4HYz7GiUOBE|l}NtMmTZ_C@#M$d;Z`lF<~!f{0wN-CQeF#37bNd)gP$`qJImobx`QtLN=hM{XW+U( z@(dhQbpuB|Ad!E=xzFBppWOsGpB1|95?&K%RypnC;6>WjE<682LQlY#94xgp{EuD+N&kD)uLTfBo6!;PU+`pPj?skZsE>8XwFzz`1<+)!Il& zQO~~lvgP1V<>G6-MA|y<5lk;PyHwmO97LH3cNQ-FjQz}z2=1A5byrza+UO&*y-PXci*?{#N9r_Aus5DEBf zQBhG4p?I3!+qd`}h%nf@O|E;R$_7=Su}v*5I=1+o6;gz*4swyB_!}Bpclx5+rhoQc zvKw`NK27=Fx^&8@*Up-N&3S-j<~@&(Tie7IZRIA$?Wb&LXA9u=^!oaEhAnUO71UwJ zv`RuJIv3fEGFC>0`}yGkqyQ#h)Q$_`MLwb9jX#;|0u2Cd+}zxszkGQN<_f5_T;-;( z=C-lYva--)j^9&CSJrm{@X>O(vka?|O zva3!@+bhj0c5WK?Wf(GdG#vKGo}2=`-2`;3ICRae0K$_FxkU^!5Q06PMFvV*1*h%9CC7B&o;-uWR?h*bJ_KPRPou z9_+GFwes61<=ep!%y3dE^ zQo78TMt3pc9i_`@_Dq|7sTznMl`{GVxhBXmcghm)lTsBrb`I@wA39W6x%;QEDDg3h z)ixrzlKVGaw1{bW=`V~|34w8ghvn|sXNXc81Dl7psQUy0U^Z(bw;-#}JKTqrgxKBP zRebTHw}l2+0I0PvrJN7kLFE7`EWUej039Sgjx?_XKKK|mI_LkS{37A{|L>B*%~=@r zCgbc1ks`BE^q~UaNAmAH(GD|+8NYwt3&^pW6$jsId4=uY5~zCJamI}`sua)L6>MZd&9>kJG9_tPy(Er-bqzi!-c&EyXCG&c3?%D z+mI12k^XU>Gpr8`Ade9g5<(a16Q7U(5?vf*lTA5K@%%7_T?1ocqzw%hV;?KMxB=v` zS)j_(9|Ph8O5);|Kwz2~G>AolNCA=A>DgIi4!__3S}jKPb1$A)a@;F7MG#Nv*V7Q4 zmYZm2b>`loj=d(xvCMSiMWFWYd4`qoy;mCwMzmk-?I%BesysgFw{a6^sOhMQq9pJR zS`{ppePo#!a+1nn>c(AhSyPOoBB~8%JMUbuw|1cT%zdV(Y!Han)z|Nv=v5M4hIlqC zo~q5k&tJd(fbAa6Z5iK5&j9rV9fno|7O4k$L@>iAmzJ7=J{5y-V`*VA0h%QhH#adh zHgm)LecZZ3pd2DZ8kH`pw`O2n{)tJW zo$5vkXWw`4&Y75+4ubCj8=MzNZW8p5qz81E zS-+JSdD9AR6~$-o59tG7#m^H zZNFwS&b$*eMd&f0uqr_i0@0(i%Jzx+I(co zO_04n-4*}r0DiXT74qhTt$Cb_7pr@E3Yw<#z-kjYYW&4b%wzScqS7#JIpA%Q?-w;N zkRbO69{lgk%^&@H9TI(>4dQx@>pQcC8A5)3;c9Zq#`*@%r9G`#t*fh#eum-%DJ|!) zDCD!{o^S2(U6nuU^M>lO*FKYHsb+vY*{0ZaaS;sIaFZ^#<;52GteHfW_|1DBt1NF> z9EWf%XZEEU&pqD3muX5EFV|kShi6<`V48QjGo-#6`T}IEzv=I!PKk9;k;(Y%d_gz! z2z&}B2&m}jyg|K)mrq^j%OnL208-rVD_xIRLGvM1dk%EwGwf$NP|ZNk;j>#o7@6_f z+1t~Av;mqE?_LO;GWn}GaT3og+LZEkZ}$t*j{SN>M@u^i0a|oq0K7N27J~U^8w77a z9c^osaO6Q-Z0sb+-9;zQU1MptBKNV-6m$KPMI!n?QF`1?d_R+)9O(wzkNhpYK4zi2%YD z@E&mZYM=+aEcHB0DlQ&)d2;UDxd-(0_h@N9NrXP^ta5ipGg!!?;i6^6poy&1>Ac)i zLlcw2x}C;H3Js!}|4XY2uI@`bO~05q-7p6#_g0qJeBZG z1znuIojilB^$#QC-57)~PFw@M(;g>Gx3TeL@M&+cZ=6P5I$o8;`Hk|VW6X67ChK@W zGteLLOS+IhU&w>&xpN*9>b+S1`SRK*#-CZAix3wr@16XoNPB9D+Sky~M$lO5LFk4r z&k>;o8FNul(dr*R(3uYa9F&lSwY0P>nY0a@*v3k&&}QQ1E|z}I$Ibn%vnQ%2`$RVF z#9nyMOXFy=%x19*s~^PMUiCt-W+8D3Vi^|f%P4-wyml%~35gc0?z9T~_SV*nnjM(F zOTtLjpyasOhM}Sm@tt{^0+4$_t};BD+g3LHWn)T8Y807dWn=RS<^-)-qt6(CJqhxT zoOv1SvaMcaZBWkJVcj{*g&X)L8K;>0_I5z{JVwA7l3%s3ebG4~h@_*}6J#5pf;+C{ zHb!tfglLT4E(E#qS@168^;2R>-MZKB9}L=ij{BLL;QjBzK$=6e)F($|g3Di!7op+1=-Dy-OiX)J(?tO9RzXJ9#jwu58a4;?x zB6e_k0d2uRtUUp=cmPGtLW__juz-SG{T361Vt7y23cWHx)Yx4kCR|>~DL8J@mI9i8c0f9Z{BOLEbB zXxSY)H@q%)?oqJ#3xl~q6{lyapE;eZBy4C4^qG(tt-5K_x(X|>PCx=VvN3Pek(@oRJJ4Zj7nkxpGbjM}@8AC% z5z*Y>M+)@EBwrZ^9bxJ<3a051I$Fu6u3{bo@fZR*V{S*L5W#?WmIj>L(QNq#J!gVx z2Hwa6T3Q|O4K>$QA=y>ZyUOCU{Tf2F+%^lc z(ay}-NK?}`hn+gB;2<4K{^3_G&n< zw=Y|yhrf+=`$%pc+cEo4+n7pIz=AqI>M=!#)h1DVG(cVmh&+dHoDeAVuhRpwEur-8 z;Pn|=9DxkmW5fYHDiI_^1RUs!ww!LzF*kRI(*sO3hI|9yfdJ2F9;bb^VIl4# zIxGqt&U}ycR&)0+E4@`*@Tr;=WCZFVC5XQ5*F3shjP)ML$5FP4SI4OljI|qSiU~-i&4sNB7e|zi!n^_0W<~Hxbu?i~K>ky|Y zGIaCv^YA>J`$Q9Sn};VH!f-6MOFh&@?s|IPmEcG#d^i1(VoP6;UV*C5>YzNEyCbHH zI8Fvz2FX@h2W%5nRQ2QEU8o=%APej$*J>DNIi5UkUOF6k?f4m4+Ku^z!y2lGGm59z zW`?dtDm5@v39U0m57dY3Z*TJMMaDGKeH3S$E*)rY()PL;24_X%;^L&#;27QywhsPU zVByQAe6S-RfBY?~R@-ql*vZ|qeVi`X8|J6CtgQ)7+ki1hdP-p%td-qQq&OCXsrxUj zor`}Q=o$zU(4;cCFkfhC!9NP4V5V@9PP|KoGti zj{f{@ZbHW1!{t;F181i|r;Z%GB9)pil5hu-81(e%PDoaEB{i$#!a|`l*BLrWtp~Rc zzQi!D1zz%tNk@{Dn@R=KY(y?G2_=7(OPdT;wHFP7)7-DYbmu4REC`cWH}XPV z!;<~I#;RP)U$WyVifJOTf~Hc@Qc_aO6+NZ7xm{nUi%=&A0e7-8yqXPaKb)gjSRROH zXOMbfQ)qrF>`G)!f3Tv9VTr#7`st82DBvS^$6U6g9%_|~s;Q|(Yg-T$*}JQSr+sq% zM*8dp*XiEsYOB<~Ksn7Qd0V3J2ehc(Nro2ahgaILxmqB&1T}4@oo`*yjX+V<{hY&a z#FQ(c^n9h==C!+MJ>2W2VSBAMd2lY#IPRhh9D^{2Q-W~19~82GG8X^nWdCF={y&8I zzluIMr2i(cc@^3XpSdi;fty#?|0r%YSLrIWvYAqXJpWvGl`B@GkLZu4_m3&?-#_BN z9_AlY;Gc*2j~bn6TLBMgw$`00Vf4R!bMa2Z`v1j0OBP?t3JSB(Jb~Ny6ox<@*PAbm zj4ZpGEpHn!2KOe8^x9+C^_h_;xv~$@{Xgx!cTiSa+U@&dz-_>Qie$5>L?sFWDk4f2 z0SN*sl9PylWQ>RsRI-2wlA|CwiX=gTlgPA^Ru1a0(MqK3)6{7 zj&Z%k$Qn-z-_+`XWW%Ouj=dx4?lSgoWE9M;vVPRc+L#y4q${hOeDnKpm|U*Cu;gD_ zppjpYan(Q6=k?Aa88P+!$0mPJP^fp+ZVg`5eDWbKw69q9vcjV{F98)bZqQItteWWz z5_sZkSo^eHnDAsnP5=n;IF<1p8MI?BgeIFEdIh6XKsMqD%oprC+DgyAO4j2g%GcIY zdVg~0C|g!pq+?!JHxJ2CLuO^K@_N%PBWA+wb`Pp`WB5$<4m#^OMa8le7lds)yS$fR zsU!#J&IDTRaom|m=PW+==Ihz2Z#^|m%zjLKJJbBKLk_W2j0_A4x;VyLY8v&_4O;6b z?>_(LTB%+Z+qxM)r=UI#s0?Fjb6%OQbNtvb*<_>5?L6Q#FuGGd!j1r{j0!wESRI5* zJio_%|D&xcp>1ov*33kEX#^A|M0A9Lhs8E3LM_;DVqPO;Z@QNFcs1T#0H3^EW-KbL zym~As&Wl-4!1abhT^3)9#m$AM4%~dwujRIhSlKz;-l(;EUXo#D(^ek!fb^-urcsND zskaZY+*?l)X0-R~N{W$WoH;3-+F?GC_g|644EJh|=tqv~%kT2mI;Kf;y)`(@)3dKm znJ|EIUC@?Rjl>#?nNJ)RTHz-kH1fMmySgsOB~{fmhevWT#O2cRmKg8y3I|+eX*NUkbgy}*xQVXK=(?l6CDK!wd}Wsi$yocNW5Mh{=p zbys#uSTDGJ>S%fXBi2Kg%gelF^iJ`KnSd1sCEw>Vea9U5Z7MidM>n=NHy zB%>NUcLwF=Nw+w?6YjnCY1Y?I`HoYcTBy2Ufm=a>+_D&rL7AnehD`1yJu5croQ7|F zda;bf6Gv7hSA*1nESF(1bP9F z(sDg!ijgcwd;2SM(^JO*0HX{_3X(Q{IB3*ZA@KBrsp`cHm7Uq)Jpp17jo(K2Ne0YJ z;GQ{4Ij`Hta_?|uYG9May+zdi4Yy~p6X7xr%~gBAS& zL@V`q>Auq^$vta9sOgCL-PEzdNBh}dsB-yx_~icZ>0ZsR52mXXTVki`<*ATnXBPHO zdUksBC;c-OBXOOo{PRr4Ootb@*sB-BQ)p&<=(F20ddf+pPq@prizjJwH-GXjfB1e7S@Wbu!F(ZU%kU8$)_&hC|Ff%-qz~`6kUSMrM?~0Yjdm+r<#}iXM6(zS)Gq@Y zMQT#YeC2JoRl;oXbq|eG!e;6GFB!rlwypLgdA%}~cJ-8OHGSiR+vfc$Oe0ILxTdUG z^}UV>Gbqo9*)${@m|nUN$h9Vudt_##2ys`0$G&ru*{QQ!-Aws)fNQFs>sg_T$gMp~ z2xr!QY&5!_b6SwW25*(*r6PsgrD@ZJjuU=(5U$=IPK{U_wFmwOsM+>Ymxzu3+f;G1 z^Vhn;*Wq=+oatJYLHneO?4^MI3cV)yP{rt3kd72bcy0YPDxS-$Rs+g$(er5+t{QPj z#VHoZh-n1J9tg^{l>ENcJ&Vu!y9ZBy<|yw=~#n$kSKDmE}|uk*Y% zJK(a}0B>)ZOyRZpOUiFNt=7b)W>)rCnsLSmw|okfre!rsFrX1vT`XA%52s3R>b$&D zUT#ujacFcPIqAJgWA<=tdt%zmfxJV0*p^7?0#k+6sXI@t-zY9Hw_>_?GKHnwDBZH| zxSPh@gU%}s-FVMK`vUsjyjT^9GoEvM)0;drZ9dj~%oE=o+7ob?m3Na@**f8>?{}UN zCvX0MtGsN$1E(w7?f`lEKIJYaWdOMu0BhLTQtR!VI3yjPM#!to1NrX^X#-C zOJFIRWTdjrkOC8_L4D_;LmGmjz^oZd3j+1{D&Q0I*C+XUAP-5aw_M!geg*_Ojd_OtR(01jIIxd&t z)uX-IJaNV)4L^Fic^sc#%6nlueaJ$Q5uh>9j2L6xaBD z6$sk@cCpFgDj6L9GF z8*-4rZQhsJPt2?NjPTeE@-*|LzXQWg|L*|9{Its1#k&Caq+C5JrfO@u>LLEK z7o$_Ou9coH72I!fUH@i>_DHK|wr%@{J3t|xoMfx6k2&(z(sEGLaDovKExSxf!}K^# z_Z?>QOtx+0ZyOD&2e~5awUt!)XpDl2Tk5wnOW0)ITX($V+_sERf|Ru$T35xvUWW5> z4VTV{2C?n*{4(`q>LjImL>PkuX=Ilu0*y7Ku8l~%atetc6wO)42{ zfQUS9(E!Vmj_H0qCKa{ax$$IoC#YR6sFsdDr~7F!9?{C3a7&*Rq%b2Y-%mla{tMQ1 zIjnC#EM6zY-(tAJ#>yLhc%)u_|JoJtDrwEn%$c7Op9h&P%$i&dK3BihNmA2lKE19j zA-YzfyQgN>{af+|{+#e|*7glN^enGi&A>nG-XqjkSmdgt+{D>iS>(GszKL06q*f`5 zwzl2!ZiTa`(UYJ?wL1^6-m49N2e*bT#qhNkh%Ngj)BbE`-+VOT=(pUj+)c_EsIX|a zAJH>NR=^=!c6ikQMy;}#O(1<0m)FTDtE*qe8LsT_^>T=9nM?LvTw^4GUllOmKyls$<^_5^@8R(wlzgElQEWj`?wpEBi_}n- z1%CQLGJ=LaNW<41H@$v+Z? zci8eSii_Vw54{cQfwC=!KSD*3fkw0!*%bwaqQUwYLf{7giZ-O&`1PdQFv+gWI;>vZ zXbt%?VZ__;5hWihh~}x`3_?Na2R`fpCZ-6{={b033*c-ed+O?{(2$aBi1lAs!C}zA z0{N^Tyzr1gpdq;vg>%$o1kTS}jCEAtV?qdQ(!dX_N#81bA7HH!1}+6}D{E`e#oTWb z1{}MEyM%%tg{!anDX!kkFdw2Nh{_@a)|tnQYK?uSS?jE2^{fVK3h0k_lmvI#Dfu^X z6q#H5hvo^JY@>1~NoL#d*$?C$Zb@KY5Z8?IDtu+Mno*^P-}nupK;v6dOWf z$hmLAcT~0jll25_+b=vkM9>)FIB_EC!z#KBd^R&Iu-EXNI&}iK1a1gWxptyNto_lE z>`X<^G)x)ea3+2K_U$cvmkti_3|2r#BbQ+KyJ3$K3n6(&gVpi%#zZ_#O+7tl^@OWk zJ0QQ*5+*+Xg$%`W=hncd6q=c-qOASfNe%23Vda;mg%_L$i1_L@$kp03j$Xrj47w$YSCN|maE5A=&pERlF`*17bfTn;JG7sh+Y4QNdk}B5H$?2U{YggrArT%lfO|-B$A80` z>>wltfodFT5095G^NGg_K{S37i7+GMmVCILzXqD~c~B#U+G1LOw1SQZ7$!nJKp+V4 zo0Ftrgt)FGQJ%5;qrO`gURh5pLc*f zxsifGft*IR@6KF`&j_YetPCOQmAx6As*l)a)r6nXJ@MwzAp{F@{ z>ksJL39VDb(9fX+6r#ExLUB}7R0J(euwo24ALxUTgPQeA6di z+o#L5#(?2PjnQ7SjO~w{Fp=;&EMnx8n0L?QVXNDFie6jgT}7E8!n0D`0b_<~k9o6q ztX;Dv9p-x4_IMsXR~MHj}|VAGTQ|>q~h&_l99>!Y{oS*dt&$dOl8(*mRRV zd`L`6l6x=$rv%;0P0bx~sTU!7WG4;w<7uBo5S9A>spa+9ZDe0E; z#JP6J`OpDk1hjMx;1NO+HTUy7MD(xFLL$%^gvAyrr6O#Ruhmk~hlc^05JaF4wKQVl zaK$*@_|k76mOd0U#4ZgHOK`nD4PYdA&DZO9WbUM*Dn@I9xNR^JnyU}hy%XC8$t1M@ zyQ!$Cw(J$kuKd7=jt`FBtqlByvC2l4i+HKDaMphe+9t*Q18+9S77TDJKt7|btxfD@ z4DuoT0Mg8^9UNCx;CI5|uqHKbcPXaBoblxp|sp|lOxF%Gp|i|cGQJ7`I{r?{BE z`3$lZ$WV#kSGnzB{O;Vj`suoVaCT?kPByP%F50(mGB{&OwXWsdq)Eu05O)%|4#5eY zUBc|Gy>;20u`@M5XD9^T*D^MC15wL~`PbQX86cMHH*Qpai}5D)FiMLIK~^**xPBY4 zd0{~yl#=%MPD@Xxrla%cm+9p_pU?=q%@b@#xCa-~SdSk4SX>;Q-*`q5wtDQ7eJicr zN~wl4Rp+@_d*wP^?sL>xP!}*f_WV_j!SiXN5t_m%|Px+(zMmv@ST3tsfl%8#+3Q(teEA(UfsJn*B+jZfj zqRaz~1Y!(KETdDZhdBrs^LZzoe!-BCfjZtS64-F!DMj*wLwS2YsAz~f$NS0|B~Ez~ zWh11BBQZ1Pmk%coHbH^1HcW))M%41b}OXLed@U>HFqw zN5@X4Txo5zs;|4^!`R!Ht#RlK@k<}2Q?z;7NQ*U*GqX22bj{|;1}A)rlGrxsx9Vft zG-L)o**XE&UgB>g@@0mPHC2e^2=%!#8XV1$7r*tLy~d3AA=_6U8<&+202kTg6GYy+ zW&J)-Ue6Sz2E;A-=InM=7x8V)@x5_Dc!;#nN^vN4_<)Xt^rZwM7C?ct#X>)*Fi)Pg zV9`$KJHTXSX^VDcLm~E`7u~>MJkelvVDI!ofcv8TSrsk)z^hWuZr>5gb)$zz-dIvn zaz$45>k+HNz#fC-6I?r>lAOz}$9o~BUJjbl8!c*W9VKcuZp#fn+C8%gMy|T;xG0Df z7a$C@YjTLmK|_;Ue;!mH}fT#$33fz~|3pXKeo133c1jYq;t5Kc`hrdMXtuyD%54OBb zw2wD4UiiKNkqZ!DVYbhbgZuk+GcCs|fdV>MA|+5S@va)?&|hqk`j|ZkcL;v;x^?Ry z;Ivgu{`11%k0ii;9o9pv0Bmf+EDVDh8P{i-EpbJRvue6O$6CH6DP6ra#dPW5W``(F zO>3WJj(2*Nw-6f=PlO20ApM2>MP8>pS|P^wq}C=tU#}NE+l|Wxyn9d9gtpJjVAO89c$QxQ}z@X+Yt2->40~t!ukgwziDU}s65(0n(TqB6s4S%7k08xB| z5D)gcX?x8%B>aF-OoBmxG}p~~k*6WGc)@<8B_&oP?+tQIN}O>()7FJr@G4r0biX^? zV|>&ds^cJAnBU4Qh6%7HYG%1MOQy)SVhoAM>bE4_L{61QeyoAsGLB}EU{Up@ z^wR5qFLxcw;n0yI#D_#k{Z)72N#))r#gbPRqJlLGlxX7X0}?x5jknfJ=BE&%m8ohm zBHhM`Y}}sty{AW1T>M#nZboxSSg=_wgewHT3rcfyZ8tgy;DaQJ-DE_jx$c$=As#2- zaL{;?2+Z2b@|c4}a`WW}wFVi!WxnC(9~)?jsK^%uTOHRmrM`O(fF1mq?} z^f_XajR>cV$73ZSSW3v5p(QlP_ygX%#76BPzyYv?3Jl_D{+iQQP zh=_<+dp;s@M3Ml3thgV;m)~-6^9evcZorIj8VWCD@XpZDBHR4O57*q6 zLYv(!0?Q*M^Yz&zK=0j)*}lEpye(DFQ3U|IsOR5LQ)M|;C~Gv9et1{;+8!TjsfXQR zKj1e=We`d?Cu%w+v7J600I|{zln_84ZqBvKs`gJc7;}wT&ayaC2CNr^TCWf>LdZ{| z<~63r77t6Zlg((x2AGoBG;(8y!TkO7cYpvc?rpU$z&e}~-Yhp(mgXTi=7bDREAN+P zT;mG$@hkAG5X^fZKn;H3A^|1-FE%9omp#*Y>ujRTgr5k$$(W{hE+yZ7W_+&85veN_B>qP6oJAn z47{!x_T^kX_oD0T5)&GSRJrU`?+EFZx1<;hG$!l?nSmmH><_&3-Fo0*fOqGPHw&Tc zDR3yB3(HV21X0x2%KDQqRf`~`1uzLM^dBTBoX$M{QSGCr;%Xjbh!+4Ii&#~sOgf3( zVcU(-4=sn5HAS8HE;o}Cqo zsC|io$SpDO!XoSYe*n^4^J#cQ z7HN)KUMcegi$F0Z3xT9S4 zhuYe5dA+qwO%wAo>FD+vd5M8U2Q4Ms_ol#N5v)QaTT!P^!)BhWqiF zFd~=K>d3YtAKPp&c*4w1P)$vZs43vw!fyTn>PeXBUr&FNx^ZJaYM4#U&D;jD)cO)4 z(@;elR-5X?nzY;*?tI!^uCyR^Dk7zDS~EQH}f{`K<1TJgY5W;q-8PR&0e1}|)B ze9yC4k_>3cAFlB+^M{rX3XOL94S*VyN-M9CKx77}g}5~`F+ zI(ZEk7C;G{1U=tv66#DSQ5|Du200^zDITN+ex|+|77t)PNGOJiuRzCLmg^eF+t7gu z_JvuaXyp9haaV$0iaL>+XAl0Xg{m((yN6mQv0I6U={GE1b**2%;G*+Cqp%rpj6jGC z(W?^38X6AE-1uQ}jpR~#ydt2=7T^i+SqxKKSy^3RXW+pgkl>Ekrx_Wipnf*beM_p? z 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⪚WqEferxKA`cbDniA|(xhxy^LTopR`^ zk?&>ueH{o(;RhCevF&g}YFLJ5T13?;!FG23k`mdV{?oPd?_Iy3N}>se*|~G%$-->! zC++?9*{}3?zbVM%RCgVDe(_LE>yh5#vq2EFVo5!99?*1Tz3A?OEtdZDz3sTSL@(t` zWQkE*`VNHc5TP{AdodkQg<|wPq&M*zd0WwyL(_jF$_W_Gd6T}}r2rj*=9efJO~)gV z;^XH(uy5a)F-{q0L)O!$=}-D?K@Pghp3ygw3Ft;*rZ?8RlU&q!ymN$4kn`bZzU>}Y zLY!RE($ao@)C%diK2R|3oLSJ`t~Rzuje5gE@b|RoUnQyEWv4$&QmA14S&}mB`ZPk- zW~|7${db9~JVN#;5>QZBMWINzj`4NmKJ{za9RmJpVn)4il(KNY_4FW0lUJcvv^`y6`lHgWhDkwcM;S8!1@qEndH>&MiKgn$(SH=eWbF%&e@0 z017o0Vq7ZBJ%4O-?F3d@`ps!)*c6HE2ucq8lPB+u(QYC7|1Q)g*0iRXlt4GKC6^I} zg94{*n};w)3J1x-efvnHpJmJmXIQ9+d8*ietY@diT`6^SMc>QpC4Kxsc5|txCg;mc zg+7HvU*my$w{7Novf?6*GAuW)ggJB+GHFTi3F#bNVH|nxBb4xw=_=ic@`{ZP?77S= zvwafgy0WR?Zz=C2ee2x4NtagjL~+5!lO`wjQGTC%b-{uW4|mN+ji*Ub#l;sO|INpI zyN-?ybfwpS6*92?_K^&;_Q;|B90}SqJp3MgB>-hN`E;P~PGpgHqtYgaV0t33+DMR3 zK#D?$%Msi{v`cb?G?dxJbKAJAt=MMaBF+J~9L{BzC^`L54w7qN37`|!NRR^qhR{wa(o zgu;*d^gWLA2X-J2c&vrF8l*GnQzlUu2pNLtTElL7HyZtqBo=xnb_tL+wbOk0k!bvx zCHJ|BG0$2f70JB~Vq=-_+FDK4Q}+)#_SyenTPkwbmErGRKE$V5|Dc@C^(jNc9!e&G zrOze1v)CHQ@IB)hK8Br!ikgm_$JqAc5g&=*xe5`kKX2<^*U)O+eU#4M1_y~G4BBOM zr8mPMkGfL<%){94TsrpXyFelYuhM&rRQTL;2f?dy^2(L9MUE;DnYm}RjSH3zIZ`#v zjTkLe>GJZmI8T|hR&U+7vix%)&GL4pBpE4PvGdvHwAL}rz`@21C1rGEDOBAX(n%z3 zq3S&*4jQfzc508UQ%IExJer^O?fLay-Mpi3@HpAqHrtde z{BWwuXYjV>xNgjBuxMNn>tk9W$_?M?=6V;JBec?+LyL8sWo{ore?+kOp9ejknZ72@ zYHE(_jva-&bXV_qup-iim*^ZK8wKZMr0lwn>zstream is the stream name you want the notifications sent to.

+

Choose version 5 of the API. Zulip supports both version 3 and version 5, but + version 5 contains more information that lets Zulip format more useful messages.

+

Congratulations! You're done!
When you make changes in Pivotal Tracker they will be reflected in Zulip:

diff --git a/zerver/fixtures/pivotal/pivotal_v5_accepted.json b/zerver/fixtures/pivotal/pivotal_v5_accepted.json new file mode 100644 index 0000000000..b6d811aebb --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_accepted.json @@ -0,0 +1,47 @@ +{ + "occurred_at": 1389218398000, + "kind": "story_update_activity", + "project": { + "name": "Hard Code", + "kind": "project", + "id": 807213 + }, + "changes": [ + { + "name": "Story of the Year", + "story_type": "feature", + "change_type": "update", + "kind": "story", + "new_values": { + "current_state": "accepted", + "updated_at": 1389218398000, + "accepted_at": 1389218397000 + }, + "id": 63486316, + "original_values": { + "current_state": "unstarted", + "updated_at": 1389215951000, + "accepted_at": null + } + } + ], + "highlight": "accepted", + "project_version": 60, + "guid": "807213_60", + "primary_resources": [ + { + "name": "Story of the Year", + "story_type": "feature", + "kind": "story", + "id": 63486316, + "url": "http://www.pivotaltracker.com/story/show/63486316" + } + ], + "performed_by": { + "name": "Leo Franchi", + "initials": "LF", + "kind": "person", + "id": 981905 + }, + "message": "Leo Franchi accepted this feature" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_commented.json b/zerver/fixtures/pivotal/pivotal_v5_commented.json new file mode 100644 index 0000000000..9bef75da25 --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_commented.json @@ -0,0 +1,68 @@ +{ + "message": "Leo Franchi added comment: \"A comment on the story\"", + "primary_resources": [ + { + "url": "http://www.pivotaltracker.com/story/show/63486316", + "kind": "story", + "story_type": "feature", + "id": 63486316, + "name": "Story of the Year" + } + ], + "guid": "807213_61", + "kind": "comment_create_activity", + "project": { + "kind": "project", + "id": 807213, + "name": "Hard Code" + }, + "occurred_at": 1389218474000, + "performed_by": { + "initials": "LF", + "kind": "person", + "id": 981905, + "name": "Leo Franchi" + }, + "changes": [ + { + "kind": "comment", + "id": 59124096, + "change_type": "create", + "new_values": { + "story_id": 63486316, + "file_attachment_ids": [ + + ], + "google_attachment_ids": [ + + ], + "updated_at": 1389218474000, + "created_at": 1389218474000, + "google_attachments": [ + + ], + "file_attachments": [ + + ], + "text": "A comment on the story", + "id": 59124096, + "person_id": 981905 + } + }, + { + "kind": "story", + "story_type": "feature", + "change_type": "update", + "id": 63486316, + "original_values": { + "updated_at": 1389218398000 + }, + "new_values": { + "updated_at": 1389218474000 + }, + "name": "Story of the Year" + } + ], + "project_version": 61, + "highlight": "added comment:" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_created.json b/zerver/fixtures/pivotal/pivotal_v5_created.json new file mode 100644 index 0000000000..ade19d7d26 --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_created.json @@ -0,0 +1,59 @@ +{ + "project": { + "id": 807213, + "name": "Hard Code", + "kind": "project" + }, + "guid": "807213_62", + "project_version": 62, + "highlight": "added", + "occurred_at": 1389218525000, + "performed_by": { + "id": 981905, + "name": "Leo Franchi", + "initials": "LF", + "kind": "person" + }, + "primary_resources": [ + { + "id": 63495662, + "story_type": "bug", + "url": "http://www.pivotaltracker.com/story/show/63495662", + "name": "Story that I created", + "kind": "story" + } + ], + "message": "Leo Franchi added this bug", + "changes": [ + { + "id": 63495662, + "story_type": "bug", + "name": "Story that I created", + "new_values": { + "current_state": "unscheduled", + "after_id": 63486316, + "id": 63495662, + "requested_by_id": 981905, + "follower_ids": [ + + ], + "story_type": "bug", + "name": "Story that I created", + "project_id": 807213, + "description": "What a description", + "labels": [ + + ], + "created_at": 1389218525000, + "updated_at": 1389218525000, + "label_ids": [ + + ], + "before_id": 48420109 + }, + "change_type": "create", + "kind": "story" + } + ], + "kind": "story_create_activity" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_created_estimate.json b/zerver/fixtures/pivotal/pivotal_v5_created_estimate.json new file mode 100644 index 0000000000..61ca636cd1 --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_created_estimate.json @@ -0,0 +1,45 @@ +{ + "occurred_at": 1389218976000, + "kind": "story_update_activity", + "project": { + "name": "Hard Code", + "kind": "project", + "id": 807213 + }, + "changes": [ + { + "name": "Pivotal Test", + "story_type": "feature", + "change_type": "update", + "kind": "story", + "new_values": { + "estimate": 3, + "updated_at": 1389218976000 + }, + "id": 63496066, + "original_values": { + "estimate": null, + "updated_at": 1389218941000 + } + } + ], + "highlight": "estimated", + "project_version": 81, + "guid": "807213_81", + "primary_resources": [ + { + "name": "Pivotal Test", + "story_type": "feature", + "kind": "story", + "id": 63496066, + "url": "http://www.pivotaltracker.com/story/show/63496066" + } + ], + "performed_by": { + "name": "Leo Franchi", + "initials": "LF", + "kind": "person", + "id": 981905 + }, + "message": "Leo Franchi estimated this feature as 3 points" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_delivered.json b/zerver/fixtures/pivotal/pivotal_v5_delivered.json new file mode 100644 index 0000000000..ea0abd0ff7 --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_delivered.json @@ -0,0 +1,47 @@ +{ + "message": "Leo Franchi delivered this feature", + "primary_resources": [ + { + "url": "http://www.pivotaltracker.com/story/show/63486316", + "kind": "story", + "story_type": "feature", + "id": 63486316, + "name": "Story of the Year" + } + ], + "guid": "807213_64", + "kind": "story_update_activity", + "project": { + "kind": "project", + "id": 807213, + "name": "Hard Code" + }, + "occurred_at": 1389218691000, + "performed_by": { + "initials": "LF", + "kind": "person", + "id": 981905, + "name": "Leo Franchi" + }, + "changes": [ + { + "kind": "story", + "story_type": "feature", + "change_type": "update", + "id": 63486316, + "original_values": { + "current_state": "accepted", + "accepted_at": 1389218632000, + "updated_at": 1389218645000 + }, + "new_values": { + "current_state": "delivered", + "accepted_at": null, + "updated_at": 1389218691000 + }, + "name": "Story of the Year" + } + ], + "project_version": 64, + "highlight": "delivered" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_finished.json b/zerver/fixtures/pivotal/pivotal_v5_finished.json new file mode 100644 index 0000000000..0f9d13ecbe --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_finished.json @@ -0,0 +1,47 @@ +{ + "performed_by": { + "name": "Leo Franchi", + "id": 981905, + "initials": "LF", + "kind": "person" + }, + "changes": [ + { + "new_values": { + "updated_at": 1389218709000, + "accepted_at": 1389218708000, + "current_state": "accepted" + }, + "story_type": "feature", + "name": "Story of the Year", + "id": 63486316, + "kind": "story", + "change_type": "update", + "original_values": { + "updated_at": 1389218691000, + "accepted_at": null, + "current_state": "delivered" + } + } + ], + "project": { + "name": "Hard Code", + "id": 807213, + "kind": "project" + }, + "primary_resources": [ + { + "story_type": "feature", + "url": "http://www.pivotaltracker.com/story/show/63486316", + "id": 63486316, + "name": "Story of the Year", + "kind": "story" + } + ], + "highlight": "accepted", + "project_version": 65, + "message": "Leo Franchi accepted this feature", + "occurred_at": 1389218709000, + "guid": "807213_65", + "kind": "story_update_activity" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_moved.json b/zerver/fixtures/pivotal/pivotal_v5_moved.json new file mode 100644 index 0000000000..aee6391829 --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_moved.json @@ -0,0 +1,49 @@ +{ + "project": { + "id": 807213, + "name": "Hard Code", + "kind": "project" + }, + "guid": "807213_84", + "project_version": 84, + "highlight": "moved", + "occurred_at": 1389282538000, + "performed_by": { + "id": 981905, + "name": "Leo Franchi", + "initials": "LF", + "kind": "person" + }, + "primary_resources": [ + { + "id": 63496066, + "story_type": "bug", + "url": "http://www.pivotaltracker.com/story/show/63496066", + "name": "Pivotal Test", + "kind": "story" + } + ], + "message": "Leo Franchi moved this story after 'test story'", + "changes": [ + { + "id": 63496066, + "story_type": "bug", + "name": "Pivotal Test", + "new_values": { + "current_state": "unscheduled", + "after_id": 48326435, + "updated_at": 1389282537000, + "before_id": null + }, + "change_type": "update", + "original_values": { + "current_state": "unstarted", + "after_id": 63495972, + "updated_at": 1389282533000, + "before_id": 63495662 + }, + "kind": "story" + } + ], + "kind": "story_move_activity" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_rejected.json b/zerver/fixtures/pivotal/pivotal_v5_rejected.json new file mode 100644 index 0000000000..f13bfacf35 --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_rejected.json @@ -0,0 +1,70 @@ +{ + "primary_resources": [ + { + "story_type": "feature", + "kind": "story", + "id": 63486316, + "url": "http://www.pivotaltracker.com/story/show/63486316", + "name": "Story of the Year" + } + ], + "message": "Leo Franchi rejected this feature with comments: \"Try again next time\"", + "guid": "807213_73", + "kind": "story_update_activity", + "performed_by": { + "kind": "person", + "id": 981905, + "initials": "LF", + "name": "Leo Franchi" + }, + "project": { + "kind": "project", + "id": 807213, + "name": "Hard Code" + }, + "occurred_at": 1389218802000, + "changes": [ + { + "new_values": { + "google_attachments": [ + + ], + "updated_at": 1389218802000, + "file_attachment_ids": [ + + ], + "file_attachments": [ + + ], + "person_id": 981905, + "id": 59124580, + "story_id": 63486316, + "google_attachment_ids": [ + + ], + "created_at": 1389218802000, + "text": "Try again next time" + }, + "kind": "comment", + "id": 59124580, + "change_type": "create" + }, + { + "original_values": { + "updated_at": 1389218792000, + "current_state": "delivered" + }, + "new_values": { + "updated_at": 1389218802000, + "current_state": "rejected" + }, + "story_type": "feature", + "kind": "story", + "id": 63486316, + "name": "Story of the Year", + "change_type": "update" + } + ], + "project_version": 73, + "highlight": "rejected" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_started.json b/zerver/fixtures/pivotal/pivotal_v5_started.json new file mode 100644 index 0000000000..30865ef43d --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_started.json @@ -0,0 +1,47 @@ +{ + "performed_by": { + "name": "Leo Franchi", + "id": 981905, + "initials": "LF", + "kind": "person" + }, + "changes": [ + { + "new_values": { + "owned_by_id": 981905, + "updated_at": 1389218898000, + "current_state": "started" + }, + "story_type": "feature", + "name": "Fresh Story", + "id": 63495972, + "kind": "story", + "change_type": "update", + "original_values": { + "owned_by_id": null, + "updated_at": 1389218887000, + "current_state": "unstarted" + } + } + ], + "project": { + "name": "Hard Code", + "id": 807213, + "kind": "project" + }, + "primary_resources": [ + { + "story_type": "feature", + "url": "http://www.pivotaltracker.com/story/show/63495972", + "id": 63495972, + "name": "Fresh Story", + "kind": "story" + } + ], + "highlight": "started", + "project_version": 78, + "message": "Leo Franchi started this feature", + "occurred_at": 1389218898000, + "guid": "807213_78", + "kind": "story_update_activity" +} \ No newline at end of file diff --git a/zerver/fixtures/pivotal/pivotal_v5_type_changed.json b/zerver/fixtures/pivotal/pivotal_v5_type_changed.json new file mode 100644 index 0000000000..fde5973a6c --- /dev/null +++ b/zerver/fixtures/pivotal/pivotal_v5_type_changed.json @@ -0,0 +1,47 @@ +{ + "message": "Leo Franchi edited this bug", + "primary_resources": [ + { + "url": "http://www.pivotaltracker.com/story/show/63496066", + "kind": "story", + "story_type": "bug", + "id": 63496066, + "name": "Pivotal Test" + } + ], + "guid": "807213_82", + "kind": "story_update_activity", + "project": { + "kind": "project", + "id": 807213, + "name": "Hard Code" + }, + "occurred_at": 1389219010000, + "performed_by": { + "initials": "LF", + "kind": "person", + "id": 981905, + "name": "Leo Franchi" + }, + "changes": [ + { + "kind": "story", + "story_type": "bug", + "change_type": "update", + "id": 63496066, + "original_values": { + "estimate": 3, + "updated_at": 1389218976000, + "story_type": "feature" + }, + "new_values": { + "estimate": null, + "updated_at": 1389219010000, + "story_type": "bug" + }, + "name": "Pivotal Test" + } + ], + "project_version": 82, + "highlight": "edited" +} \ No newline at end of file diff --git a/zerver/tests.py b/zerver/tests.py index 71ec6ce16c..56ae1341e8 100644 --- a/zerver/tests.py +++ b/zerver/tests.py @@ -4945,7 +4945,7 @@ class GithubHookTests(AuthedTestCase): "zulip-test: commit 7c994678d2f98797d299abed852d3ff9d0834533", "zbenjamin [commented](https://github.com/zbenjamin/zulip-test/commit/7c994678d2f98797d299abed852d3ff9d0834533#commitcomment-4252307) on `cowbell`, line 13\n\n~~~ quote\nThis line adds /unlucky/ cowbell (because of its line number). We should remove it.\n~~~") -class PivotalHookTests(AuthedTestCase): +class PivotalV3HookTests(AuthedTestCase): def send_pivotal_message(self, name): email = "hamlet@zulip.com" @@ -5017,6 +5017,91 @@ class PivotalHookTests(AuthedTestCase): self.assertEqual(msg.content, 'Leo Franchi edited "My new Feature story" \ [(view)](https://www.pivotaltracker.com/s/projects/807213/stories/48276573)') +class PivotalV5HookTests(AuthedTestCase): + def send_pivotal_message(self, name): + email = "hamlet@zulip.com" + api_key = self.get_api_key(email) + return self.send_json_payload(email, "/api/v1/external/pivotal?api_key=%s&stream=%s" % (api_key,"pivotal"), + self.fixture_data('pivotal', "v5_" + name, file_type='json'), + stream_name="pivotal", + content_type="application/xml") + + def test_accepted(self): + msg = self.send_pivotal_message('accepted') + self.assertEqual(msg.subject, '#63486316: Story of the Year') + self.assertEqual(msg.content, """[Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Story of the Year](http://www.pivotaltracker.com/story/show/63486316) updated: +* state changed from **unstarted** to **accepted** +""") + + def test_commented(self): + msg = self.send_pivotal_message('commented') + self.assertEqual(msg.subject, '#63486316: Story of the Year') + self.assertEqual(msg.content, """Leo Franchi added a comment to [Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Story of the Year](http://www.pivotaltracker.com/story/show/63486316): +~~~quote +A comment on the story +~~~""") + + def test_created(self): + msg = self.send_pivotal_message('created') + self.assertEqual(msg.subject, '#63495662: Story that I created') + self.assertEqual(msg.content, """Leo Franchi created bug: [Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Story that I created](http://www.pivotaltracker.com/story/show/63495662) +* State is **unscheduled** +* Description is + +> What a description""") + + def test_delivered(self): + msg = self.send_pivotal_message('delivered') + self.assertEqual(msg.subject, '#63486316: Story of the Year') + self.assertEqual(msg.content, """[Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Story of the Year](http://www.pivotaltracker.com/story/show/63486316) updated: +* state changed from **accepted** to **delivered** +""") + + def test_finished(self): + msg = self.send_pivotal_message('finished') + self.assertEqual(msg.subject, '#63486316: Story of the Year') + self.assertEqual(msg.content, """[Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Story of the Year](http://www.pivotaltracker.com/story/show/63486316) updated: +* state changed from **delivered** to **accepted** +""") + + def test_moved(self): + msg = self.send_pivotal_message('moved') + self.assertEqual(msg.subject, '#63496066: Pivotal Test') + self.assertEqual(msg.content, """Leo Franchi moved [Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Pivotal Test](http://www.pivotaltracker.com/story/show/63496066) from **unstarted** to **unscheduled**""") + + def test_rejected(self): + msg = self.send_pivotal_message('rejected') + self.assertEqual(msg.subject, '#63486316: Story of the Year') + self.assertEqual(msg.content, """[Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Story of the Year](http://www.pivotaltracker.com/story/show/63486316) updated: +* Comment added: +~~~quote +Try again next time +~~~ +* state changed from **delivered** to **rejected** +""") + + def test_started(self): + msg = self.send_pivotal_message('started') + self.assertEqual(msg.subject, '#63495972: Fresh Story') + self.assertEqual(msg.content, """[Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Fresh Story](http://www.pivotaltracker.com/story/show/63495972) updated: +* state changed from **unstarted** to **started** +""") + + def test_created_estimate(self): + msg = self.send_pivotal_message('created_estimate') + self.assertEqual(msg.subject, '#63496066: Pivotal Test') + self.assertEqual(msg.content, """[Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Pivotal Test](http://www.pivotaltracker.com/story/show/63496066) updated: +* estimate is now **3 points** +""") + + def test_type_changed(self): + msg = self.send_pivotal_message('type_changed') + self.assertEqual(msg.subject, '#63496066: Pivotal Test') + self.assertEqual(msg.content, """[Hard Code](https://www.pivotaltracker.com/s/projects/807213): [Pivotal Test](http://www.pivotaltracker.com/story/show/63496066) updated: +* estimate changed from 3 to **0 points** +* type changed from **feature** to **bug** +""") + class NewRelicHookTests(AuthedTestCase): def send_new_relic_message(self, name): email = "hamlet@zulip.com" diff --git a/zerver/views/webhooks.py b/zerver/views/webhooks.py index 3a20c2d0aa..403d93fc98 100644 --- a/zerver/views/webhooks.py +++ b/zerver/views/webhooks.py @@ -360,13 +360,7 @@ def api_jira_webhook(request, user_profile): [stream], subject, content) return json_success() -@api_key_only_webhook_view -def api_pivotal_webhook(request, user_profile): - try: - stream = request.GET['stream'] - except (AttributeError, KeyError): - return json_error("Missing stream parameter.") - +def api_pivotal_webhook_v3(request, user_profile, stream): payload = xml_fromstring(request.body) def get_text(attrs): @@ -378,51 +372,144 @@ def api_pivotal_webhook(request, user_profile): except AttributeError: return "" + event_type = payload.find('event_type').text + description = payload.find('description').text + project_id = payload.find('project_id').text + story_id = get_text(['stories', 'story', 'id']) + # Ugh, the URL in the XML data is not a clickable url that works for the user + # so we try to build one that the user can actually click on + url = "https://www.pivotaltracker.com/s/projects/%s/stories/%s" % (project_id, story_id) + + # Pivotal doesn't tell us the name of the story, but it's usually in the + # description in quotes as the first quoted string + name_re = re.compile(r'[^"]+"([^"]+)".*') + match = name_re.match(description) + if match and len(match.groups()): + name = match.group(1) + else: + name = "Story changed" # Failed for an unknown reason, show something + more_info = " [(view)](%s)" % (url,) + + if event_type == 'story_update': + subject = name + content = description + more_info + elif event_type == 'note_create': + subject = "Comment added" + content = description + more_info + elif event_type == 'story_create': + issue_desc = get_text(['stories', 'story', 'description']) + issue_type = get_text(['stories', 'story', 'story_type']) + issue_status = get_text(['stories', 'story', 'current_state']) + estimate = get_text(['stories', 'story', 'estimate']) + if estimate != '': + estimate = " worth %s story points" % (estimate,) + subject = name + content = "%s (%s %s%s):\n\n~~~ quote\n%s\n~~~\n\n%s" % (description, + issue_status, + issue_type, + estimate, + issue_desc, + more_info) + return subject, content + +def api_pivotal_webhook_v5(request, user_profile, stream): + payload = ujson.loads(request.body) + + event_type = payload["kind"] + + project_name = payload["project"]["name"] + project_id = payload["project"]["id"] + + primary_resources = payload["primary_resources"][0] + story_url = primary_resources["url"] + story_type = primary_resources["story_type"] + story_id = primary_resources["id"] + story_name = primary_resources["name"] + + performed_by = payload.get("performed_by", {}).get("name", "") + + story_info = "[%s](https://www.pivotaltracker.com/s/projects/%s): [%s](%s)" % (project_name, project_id, story_name, story_url) + + changes = payload.get("changes", []) + + content = "" + subject = "#%s: %s" % (story_id, story_name) + + def extract_comment(change): + if change.get("kind") == "comment": + return change.get("new_values", {}).get("text", None) + return None + + if event_type == "story_update_activity": + # Find the changed valued and build a message + content += "%s updated:\n" % (story_info,) + for change in changes: + old_values = change.get("original_values", {}) + new_values = change["new_values"] + + if "current_state" in old_values and "current_state" in new_values: + content += "* state changed from **%s** to **%s**\n" % (old_values["current_state"], new_values["current_state"]) + if "estimate" in old_values and "estimate" in new_values: + old_estimate = old_values.get("estimate", None) + if old_estimate is None: + estimate = "is now" + else: + estimate = "changed from %s to" % (old_estimate,) + new_estimate = new_values["estimate"] if new_values["estimate"] is not None else "0" + content += "* estimate %s **%s points**\n" % (estimate, new_estimate) + if "story_type" in old_values and "story_type" in new_values: + content += "* type changed from **%s** to **%s**\n" % (old_values["story_type"], new_values["story_type"]) + + comment = extract_comment(change) + if comment is not None: + content += "* Comment added:\n~~~quote\n%s\n~~~\n" % (comment,) + + elif event_type == "comment_create_activity": + for change in changes: + comment = extract_comment(change) + if comment is not None: + content += "%s added a comment to %s:\n~~~quote\n%s\n~~~" % (performed_by, story_info, comment) + elif event_type == "story_create_activity": + content += "%s created %s: %s\n" % (performed_by, story_type, story_info) + for change in changes: + new_values = change.get("new_values", {}) + if "current_state" in new_values: + content += "* State is **%s**\n" % (new_values["current_state"],) + if "description" in new_values: + content += "* Description is\n\n> %s" % (new_values["description"],) + elif event_type == "story_move_activity": + content = "%s moved %s" % (performed_by, story_info) + for change in changes: + old_values = change.get("original_values", {}) + new_values = change["new_values"] + if "current_state" in old_values and "current_state" in new_values: + content += " from **%s** to **%s**" % (old_values["current_state"], new_values["current_state"]) + else: + logging.warning("Unknown Pivotal event type: %s" % (event_type,)) + + return subject, content + +@api_key_only_webhook_view +def api_pivotal_webhook(request, user_profile): try: - event_type = payload.find('event_type').text - description = payload.find('description').text - project_id = payload.find('project_id').text - story_id = get_text(['stories', 'story', 'id']) - # Ugh, the URL in the XML data is not a clickable url that works for the user - # so we try to build one that the user can actually click on - url = "https://www.pivotaltracker.com/s/projects/%s/stories/%s" % (project_id, story_id) - - # Pivotal doesn't tell us the name of the story, but it's usually in the - # description in quotes as the first quoted string - name_re = re.compile(r'[^"]+"([^"]+)".*') - match = name_re.match(description) - if match and len(match.groups()): - name = match.group(1) - else: - name = "Story changed" # Failed for an unknown reason, show something - more_info = " [(view)](%s)" % (url,) - - if event_type == 'story_update': - subject = name - content = description + more_info - elif event_type == 'note_create': - subject = "Comment added" - content = description + more_info - elif event_type == 'story_create': - issue_desc = get_text(['stories', 'story', 'description']) - issue_type = get_text(['stories', 'story', 'story_type']) - issue_status = get_text(['stories', 'story', 'current_state']) - estimate = get_text(['stories', 'story', 'estimate']) - if estimate != '': - estimate = " worth %s story points" % (estimate,) - subject = name - content = "%s (%s %s%s):\n\n~~~ quote\n%s\n~~~\n\n%s" % (description, - issue_status, - issue_type, - estimate, - issue_desc, - more_info) - else: - logging.warning("Received Pivotal event we did not understand: %s" % (event_type, )) - return json_success() + stream = request.GET['stream'] + except (AttributeError, KeyError): + return json_error("Missing stream parameter.") + subject = content = None + try: + subject, content = api_pivotal_webhook_v3(request, user_profile, stream) except AttributeError: return json_error("Failed to extract data from Pivotal XML response") + except: + # Attempt to parse v5 JSON payload + try: + subject, content = api_pivotal_webhook_v5(request, user_profile, stream) + except AttributeError: + return json_error("Failed to extract data from Pivotal V5 JSON response") + + if subject is None or content is None: + return json_error("Unable to handle Pivotal payload") check_send_message(user_profile, get_client("ZulipPivotalWebhook"), "stream", [stream], subject, content)