From e11c47244de1e96d69383b4fd18ab71d944243cf Mon Sep 17 00:00:00 2001 From: "R. Tyler Croy" Date: Wed, 25 Mar 2015 08:29:57 -0700 Subject: [PATCH] Fleshing out the web UI for deploydb, starting with an awful mockup --- build.gradle | 4 +- docs/html5/hacking.html | 14 +- .../images/webui-20150324-managerview.png | Bin 0 -> 58671 bytes docs/html5/index.html | 41 +- docs/html5/internals.html | 28 +- docs/html5/models/artifact.html | 8 +- docs/html5/running.html | 2 +- docs/html5/webui.html | 553 ++++++++++++++++++ docs/html5/workflow.html | 8 +- .../images/webui-20150324-managerview.png | Bin 0 -> 58671 bytes src/asciidoc/index.ad | 13 +- src/asciidoc/webui.ad | 22 + 12 files changed, 646 insertions(+), 47 deletions(-) create mode 100644 docs/html5/images/webui-20150324-managerview.png create mode 100644 docs/html5/webui.html create mode 100644 src/asciidoc/images/webui-20150324-managerview.png create mode 100644 src/asciidoc/webui.ad diff --git a/build.gradle b/build.gradle index 386692b..8231ce9 100644 --- a/build.gradle +++ b/build.gradle @@ -140,7 +140,9 @@ asciidoctor { outputDir 'docs' attributes 'toc': 'right', 'source-highlighter': 'coderay', - 'toc-title': 'Table of Contents' + 'toc-title': 'Table of Contents', + 'sectanchors' : '', + 'sectlinks' : '' shouldRunAfter test } diff --git a/docs/html5/hacking.html b/docs/html5/hacking.html index e5aa23e..5ee175b 100644 --- a/docs/html5/hacking.html +++ b/docs/html5/hacking.html @@ -520,10 +520,10 @@ table.CodeRay td.code>pre{padding:0}
-

Getting Started

+

Getting Started

-

System requirements

+

System requirements

  • @@ -533,7 +533,7 @@ table.CodeRay td.code>pre{padding:0}
-

Running the tests

+

Running the tests

  • @@ -547,7 +547,7 @@ scenarios.

-

Building the documentation

+

Building the documentation

  • @@ -557,7 +557,7 @@ scenarios.

-

Running the app

+

Running the app

  • @@ -570,7 +570,7 @@ with the deploydb.example.yml configuration.

-

Code Structure

+

Code Structure

The DeployDB source code can be found in a few different directories:

@@ -645,7 +645,7 @@ with the deploydb.example.yml configuration.

diff --git a/docs/html5/images/webui-20150324-managerview.png b/docs/html5/images/webui-20150324-managerview.png new file mode 100644 index 0000000000000000000000000000000000000000..8d65adf2306b6ef318347a83c51eb78a29a4f5af GIT binary patch literal 58671 zcmdSAbySp5_XY|Gl8S^N9nvY%4bmV(gEZ2OFmyN49ny_-cd2wsOH0R)1Iz$J-0?HM z@2>m*Z>{^+tU2#_PrZBZ^E^Akl>stOFo-b_5D=co$x5msAUyI$KtM`FLxQ)A;bo=3 ze;xtf$f={Dp)IW|{X{^ZM39pdS9do!TtU^tv!FmdZKpY8mB3L}|DcP?U@r+;^*U*T zR_Rz&lFc1}Ru|i#t8<-hD~}}c)ghsA*CIqlvTW-gpCMguZSZg+1E1fQ}f$;P2%q=Wvb7m<mS+ zw12W_R=mr}7Cu>R9Vu4b3i$75V3Le{{5jD0`1oGrlC%W^9&yFe{gSb* zTCu4G`y%Gp_VhwX@OlG`)5hIRFoRxclTuMVNvr5uf*kwttT_DS83d5f1R}?~dS&77 zg&>5DbhmGN7ryJ0zy-RT7r94_lTgD_Pz}f|!%0}qrSTf!(pyaJpF6D%;p#_6oW_aM zxtZBLStO($C9XT|sU<^46iK=A<(}rpc%_Oa_GJ(GnKSVUn|K%{LVyE)oV+c_na$Pv zJP6-R>XuOO>4I}vhRaX_-#sLPDw;WkhCS!TCsi+8lPw~mD>GxQw3tw?YT5G!(hXBT zabn?da?sTlN!Dtv$N5w;Pb9!3=UwCLJaSNEh9bnoP1JE~o_UbKEP+n*Yh$mTAR=cK z*XD4@qot)F43tj(JUOoFe8Eb!nL?+x_Mvj>i!@*uDrmKltX%-{8WX-_;oIu#?$!|D zULU}8G<~8@?B+XH(SDg?;Pw3GX3emxz5d=>XkfX*eIhXjzxp&aY(Ueoio@61ztVLq zD%Gagt|;`__ZcpP>gs;33f*Ra^)9wrShVSvy1ycVuZ6C@oI@EcEdjw!*T!fXo8)OI zI^$$XBFQQb`JP3Fhq%SfNP$}x4C^V2+UVkNt@B-1ryfO?dzQ3{Rke~Z<7&NOZgXcy zmRDuA+Rb&EUniP+I>dP8du_9>-3n)CRY8n`1Z&x7hr5?z>@b_AxsVOC?JiUu;Dg8d ziqPcBj zVpb8mwplOP<~b0!UXyE~^MpehDmoh5skF-GDxJhn432x3%|K3XBqO zwNu?8$8$sL=)+4X`qn^g7nBqufXLIkER%+-D%r;Ed z_Lsh3eK>Ovy?wrN0DZ}u6Bg`qd+HvNqyP1FuFEg=>Hj69?;yxGh`+P}p;>Z-N@V`N z?VY`B}O%(Xie#hKxa3jr^It>FJ!=;w9N17#_oifh*GQ zI{`tQ-i!JFwikAog+r0jxb)=#NDa&E?=|i()`hOu?!vitFsH+zDbP4&^yuFe?=NP6 zZdAlsP2)0)cPpYkZ*Cj(Z(EOXPS4m(;#^-4f0d_ygpu%XJOpI0=1<)qfJjca?fz7e zAB&u#+)#P8&oy|vKbquZt$U&z#g;_G=cGo*I!b(@C3-_D0k{F+9oFk8e&-gp5n8S%1Po0|oOS?lZTsL&I? z4-dY!Z!40MHTs5=7n^Jht9^yyY$BR_;|$2gM{JB za=fB{i}&A0+oNzEemOq$AbhVBuzh%#pk+-H^-`R^^k{n|b*tO6HwzV;^j)WMkurn2 zGb1BoIPym=Hhp{27kn1?LJA5adM?TMh7BLqD@lf79aB?N=75~9>)s%0$Eq9u(f@8u z8FP<_KYn_+496l;lXc0(GDquKqxI}?1g6|F5h-bAd3r3VNQd{np=ol1UArrY$6m+- zGTL$KktaNNWWq=wmc84ukoqv%#lv)F8K?Gr zvR5z3=#vI9u*D{8AKR=}py-BkWMlBZvIy1?%gIe-xm3)$aEY#ezbRe6JDO)DP%U6> zXQ$t6uMY$Qr9xUG1PiENYOy^~?2nG-m_P7&X(pFx93CBwTwh@kzjnV|m6n#$YH1vzxH&^7K4l9G`LTYU?5v6 zoK$hb?GWz?Em6v*hB}tt3Hn~VlaxfxIFpo;3gPI)#l?*vWY5-kG}3au9u!t63u>~P zO{a6~g&r+{PFQv21X}MpESl}fmKyzT_u`w#!R|s%2bmRVJ1>+Hg&fv8#yE5}CAd;! zL^#`}tT0vMc2|wQt$)CIm~4>0oa+>sABu0XzFzuRkt3L`7$NvtrD)&iuJQRTG*O?w`<%GT!R4ah|B!Oob|7QZVjFs4BtyuwbM>Qk{t<7t0M1s*?OHYk%r4@RbZFN18hJjdHL-Nw zFWsa0XmW7LWi-g`sROT%$4PPbta@j-0xr<_;=3B+Qcn!5h?H#B_+lysn_#}?`xLW1 zpr=+Pwg2R=wb_#Y0_PK~-R2lDjM?EG`=Uf4{P5+No;r>?mUI(9-w_|bxti$*M@OpK zg5%Mx4xu42W9>29N2u6rYMR&hz9b|Wj(GHzJ1UA)pcZbM*cF))~s?j3T4J^#UwDD*G|4FaP8}P=*(qJvm@L5XTP-s zrP$85BiU-V+snnN8aF6>2{p=>7E>u6eH3&Jkfuhq=QBg8S{)B9nh`lZQ#~7lKFU@~ zP(8Q1_ir%`2}wZ4WCj8;^Xf)(H8`h01%Vh_J zU8Y8cDXqa|wMZLyFSH>a6S1g|7PVNO( zs5g{u%voDqnMEThil4aT&KTUC#>^s9SX+gvc9i)@?dwl6tcuHvTH4w)tMs&W-Q}lD zjE(W7WNY+F0Ay^bd91Sn<(lO;;J!!&LUv!R&Ndz0!scmmTvQjt;sxJ)spo#il=_-%yy;DSCflL{x);xdsiCxn|8JuBkY1xu5LK7t5Am# zBf)Sqb3}l--tvUOgx>CsFlPz88`%9=o#e&-r2S(07_iH2r0Jn|DBeobzG(sbO=ah> z72l#)80%j#!fz2f4g^f;=r+a;zYwfx-8sXykLIC3A zd4U(=cw!QgB*cYJ8(iWY{rGv-b3cL3{ZA*@0c@s|I+qp%66X-bt(3D!sg3#g_`M55HmNDUd}^IbcYZuBk7EiN{nFOy~MMkE>> z5-%A496edHwg2pin`v`mpM@LGke{g$BVpG$Y|UJ+cuVmI*TH#tT>CUAB0!^xI#TfY z?n1R;Cy(7Q{$1)_gL3@&Ca=Tl=wRH+_c4(TnolDstV{K74!BR0KJhtDRIM`E^ z&#Lu1%UU*lf1JMGLR30DflW?*?Eui(WUF6{#9A368cLSlvJ~w_X=MJv2{1D~&34Sn^3d1wA_xvumKv>B zN_}8E;))hySB_^Bk%P?)+B({1`U^u{T!lK`c9i96)$J*Bj@Ix!@w)7#L z!X~a7e|C;pQ{oNXKbxWMui3sU&E$u2b)9%`&|Y-AA!Fy`cXr#lAtX5T3J5vmIhvtR zFRaWxz98YXXYeeN>HVZ}p0(6GBv0?bfUCVj!(mf8RW!tS$z!)Q2)meAxgQE_Id7+9b*&~AXdcXILi4>yk&)bXInba zg#s0}6t$8Fba*B(g zoOM=k;gW=1{+Hw8w_A&v{Zx@T>$*h3{uOWA2-_tw>*m@M&)MKNe=UmGPhAv@4@GJd zHUix)z5L1S#5fj!f?n6Z=SgYAgd|PuoQ@$1_tX4sd@J!YqiUb)NxsmFB4b8DY^FEQ z|BaXX0mG=M{=+fv1@Yfaqv10lRygmR98Y=Eh~GDbE&fF${{AZP&eIHTm;%2D-tSdM zq#y*2=QoOS5dUqVG)jU~#b~GIT($pBV~I|=$D#wnEBLP?PMR?nBu(Ady#Kq_kv=cPVQqH`Gs&S8s#2W%$>i%UlW25K+T#9vUzpx^waeHMD4VhD|h-rTgvGvi&~fU zW%~UkQU*_@VNnb1SQUfQ^Em&n5C?nW8|$z2u1?I_WpA&UX77-Qd2MFv#64sr$gWWu zB)+r!K9ny%kfY8Dw9;_z&bY6kdk1Gn%w|URzWR@`C`5h5OxTfg`dtzBCv%W~bmuo* zDSh2q^Wy~^>6~*)EodISc0B%OrCl6C~jmW2su^{$+3s zd!x@Y3Rfyh=gTRKcY7gEO1SK%;cnA4u=lgocmCg>LM$GK0bjgCRd9dxhT_&ohqa9~ z`b+&FsXx;rj;s4<5zYdYNJEMe`N({_{y)y*SFZ!U;X4oSZ?KJ`gDKj0-x`_5?EzNN zUbsI*9N*2j?Vm?=>^BBH+SnN z28#5CAN#^pSVg20ZENnzSHI5($+O5tWBR%5&ZL9{9q@C0>v(szdxYQ5D*M-AL3x6V z!Lz4MfjU-S<8oH^uH9pT1Cuw~7YDX~aPW0@bQU<|>(|@{s(F;-n4UG%?>>!T^x!mF zktM`5VGcng}J9NW`l)I8@J_r|}SNVFrFp6F@dD{J> zApHl2w>u&JfrIVszC^RN1}JX2Rn!G8;So>Tm9%}1^>uvpSQy5xz^A7XpCkl%Dh`f} z$A%6wS|#MxbjCcR3~J6sF^?p0AG4R2auBzT#>N6M+7j3qF2Hv#RzQ(T~8=Lb(uvjC%HS_FP zt1H`&t5qU^q~>C?h_IkT2@r^piy6;QtfOWifV4qIcEnNdgdx(*m&?h-TaxjYM~W7FSJUp z@np*H<%{NW8egHtT)U85kNJ%k)i~Qai@Mfxam0z#A4Pb_mO=F|2H`lOrhP(h(FA@~7uEqiIEXFuecxTsS;|EvyrDyVPc zbDJ7AE?G_pK7dNFl3Yr5`p%m?9L&Zvy!$+_ zs~jV)$FfaMLUaVF(D)todZsK+bIY*STju1Q?FYB-XSGwSqKA|wI;MWu>zBBAFh{G? z{55=WB}gGOdxZ@3b)9tFQ-^jlMZmlR8|VF4KhWz9_55_TS~|5R17E!4Z%X05K#%j_ z#}Ml!6yB1{cNMMn^2a{!ujY!=&g<#3j66nw2Mco3fPq(R1$B$bQ^5+;IT;F z;}G1KiEPJCTP%FhWv-Eh(k=1(J_NrLnB}&?Y`x;*Sh^GV=9VGz zaI4N*UVb%Ey~Xllx$D?N10Dw@ zx%!pv1G0&Ax6+R}SF~4OTaO~ccrNVPE*d>uC-O4nF+-vPz+;cb*D&T+U-5%&^oU-<0M2+nPqq8H(JOZ4g*-s%G`|rKeE#yh)h|&z7@XUzL)*o?{{#E`Xhyb8;!6 zp`i|cQ)f~XOW1+_y#_bFm23$E++V~{oWS%Z~uQ>(5BDIW`@x_|IO?gIqG;kZ$g&1#)e zW7K1oZd;0JPj*_eFdy;L0w7VI;-hoV(KGH?WZmdet)}@2LoNHLCMF=h71M?Yxn=QXCkqe)OPm3z9sjNDP}gC^?&eW`EeanH6;leW0WB zqMNrbIN;x!0d_X+cKBVEX?juJXW(^T-dA}KY-1;aH`@yuc%%OMDDdzZ-intnu)W=! z;g?!yTQsZmi`WpQ@jeGcp@$D~>~XoVZ}!$4lvyr~F0`kavnPnqTj^z%eqz>*ct!Va zGyV`ixu;-sEOW$CC^RvDW3}Ain#rLrAN-SJ&Fm!L=VBAck?BlJdaxGHnt6cSClto1 zw-whT`_69M1+CI~*VBr|-BsUKFwi90!BoDT@BR0FH~#z5 zJgswvzbOpAvjX{Sv?-u*IPfSHZ4Q{X3d?xClHB;Dk%+?0g>C+59>@4d27G?`y z5>7OpRY;)T*evhUc3r~C=&gC*?tgxq@mKx^E5+8)1vpnp1uCw;$d_4z5(;d&k5P+q=)>xYXoLgSrCnxil(dg&*|e2sN7D(a;U}dxcHtg6SD9Hs z#Do8>*E6LIUJiOog9(5lT%11n_&+byPvH#Z&W4S%?*FV z-IWlIA?hK&3!T`NTl$RrTcwTKkV0tplIT`+S{c=WqSsKn!y6Z@Q7yFuwUO4&bk+L2 zL&jSriUz|x#;7OJvlU-z3m^61rEr~>7N)f(nOuby>@^FV$l^+No3%WfnH|tL&vuA&wjakPd{h^Njdj2tyBd)+0W2skPCUR^seJ7r6e|_@D5Wzd;enh`=AIY{VAb|Dt z_X`MeF6WGzAEujOj>ywzOj2S055J7ZfK#_AvLO5avif`)|J-_pBgH6`eL+naN+m0!I{AOs6|zBpNYMQCLo*alT@|0;vb|;i`W*f>`cn z^dxpe0~gtJx7>P)8guPT1B>dgzli%6c=d#@Xa?_T-(Tr~yBdCAQtp{Lg#4fOdU3OU z3Xf2QJtb@NygYzMF$)R`Ha9n~y+vTh#C8A$1qFI~dS2dUe}8}JXkwTBslLU<^x9_l zMmGZjB>$lBNrK$XjSY1fhU9Lf+gmx~Q`mPQ(hgY~oeuZ2hkK}KBf)tM`ex~HU!U1V zZ#bv<=+CpR&`Wp{#2IP+9{TUI7Ss4L(2jMj!3vqa)ue)0rkg#%ckb`)bv{~5X8DlN zbpwMnJFKlvOic9j^h{1pe)|@9hY-a>e;qg(931@d<406%a#B&>+xt6MVYy;D*Fv|S zD7x6tL>ba0X#Qli)2q|-Qa+hUYEEW|sdO?X(q~{Wf?K=!{&c;kQnz{Vv%_i!IwChB zByI4Ii{@307!JC?(2eGFv0}A;yJo&*crvpVkLC9-Ut&TXVuI&Qi_S+<*#iOs9`0f6 z+CrLWaeQ7d$dS0Xc<4z&fUc0={q4`ML2~#{;ki7iBiyHKV!%K00YQ33^OG&sm198f7VYlkm6$lPl~m4H;aEmaP4oS5 zp}wTPo>PuSi$|}+eG-3;PXmQbuSG0h2`x^6WiSL)Q&Uswgbev*;IH6#Kt7d`fAYAu zpDAvuR+ePu76w2ql5dDg*4~8v5&b%y$84qU{0udK`t%OEmKY%6{}%BzPDFn@t~5N$ z;}=i(u0**O1n3)+*czw0yV3fg&}cIc;0Puc_QZ$O?#=r-jo>4HM9_xJVL$sDx0aIl z^@`K;m+@u#?XHuj!$%B*l{XR8bS>Y@U+}fcQ6NeB3#IWiqhf>q;QELJu`bjs6&01< za?_y%DY@vocY|XR5u*kM28RmIi!zH8QbQ4NC}UqU$hSZLtHE2Elxrsj^b__pKGYMN zqjnP!(!QvusC{CC=X{asIvh?{?tzY!=5|iy{gRiBB)uzY;Y?76i;_e^GJDn zrD>C*K`QHae0y`h;ysvR!j5yv_8Qf9V{)#QxY61!l$3GtKLP^JAkq)`M(Rwk()k7s za?aW|qWC-Sgbqhr%w5TSeNqhld_AM8J#fhD=kmfuvVRb$0vB(IeDf9y#(#yaxitg( z7&)j7aKkPZuU{tXZ-W~5rT{*2ec)t>mrmvBiiXp@*NBf`b33EizV2>QFxy= z$Aj%_c)JI)Q(6t{6yWW-yvmPe=bjq@Pi2_t6U>?)YO6zxEDQygrVz=bS$=r(v*?rS zs3vipZ4`}jc9QvY)p2)+8_KrwUZUnOVZ4D}kez^p zt3um@&<3bm{pGy`>G+9!0 z+g0m{59qUuV4HI{H8RzlDSd4~9$CMe!c8FR(`;kp!fV5s9c{6>zFAh%arH)wh*4ce zE4POipL6jKyxD61B~~s!KadHNappYkJ*Tgm*Ie3I%^p%;mgz!M_n z$-ue_5#U5!?&qw{3{8eLqn}eY!)jFm2RzGkF^yVB5YbVC+6QUNtFxxqod+lSWcU?| zg99B%PF7aQ zB>iN*ZJu!#puK3_1UB@xS14yEK~)FVu&?>vqevJ8P+|$T9ZjZ697PNPj)9pvC$J0m zrFH1=bG_uVx*v=Q!7!UJZpIVqp2V-M7cD82hJxmW%9T}=VH3vh2LHfK1{x$Ou07M4 zT@Tk6cPpKu&E4|u^)^G5!v%uw!+~szWp6=4=El1r9K;`dHR zE0t>0xbB!R5>NTO+3tK2<`dDQ|sEH@ZOT5hWyFr4*2%cNM5|;@b+*| zGrqidBBza|<9bibV&Nxe_QPua{oW&oM4BA{IjtQ-fUL)nX~40>S5S8#QzPv1V&pSd z{JS{(vy0y0WD0BO&3I^jMK@@k<^JSoUczMhb;29=+o^9QLv_4Zv8r%?qSDF5b#r`T z7%P?yZ)J#0ldzpyQKVmQ`u1+mbV3jm0Mg4v+zNe|6U%h#F zktk(WI=V^Jb4!0`woIGEl9QR~W_y6E)_-DISj9=b%_rm_xl^A-HE81A;cEbmy{e^i zXj1%}#-S_?{$2-R#(QPWX}BZ`HA zoD5AC{o?)_lFOa3&x%OxNPeGEDZ0P|uLubj)f>XDyFOU)s5Aum%ul9K&v0hJ5}0NaOhwu`J75Pk<37 z-09W16ag=3C}uf5lEJb59sKlu4$qI2IM9l`8*DaCsHU8%)*q`2@hDOgeU$VE2mC^N zuUg>LDJZc({5K_lUr|P$@Bp5oLyk%BKUVbRC%owiAm;JE2%`T!JOatp=@WzV2hhRk zP!OC3aq;mJ|Bd9p7eo(FAijX`OT)9J|G1#B*y8S%n$Ige`s$g^D{tN?*KTMhhvXJq z&q<+ek+3rTxg_zC5Feprg@_^P|IcWwV%d9D7;$hY*BoZ9jhy9al23{3MDO3Yy6i#4 z`wRPiV^Nmv4gs9Q!no9aoDekDwG<}`ll_I*zbM-tW84XIRtVSBd?Mcea=0|)nyI0} zK(4>*gbyb4TF)5@vbFQW z_OeA@M;w>6g-^oHcb~OVL&2-X;ie_6y_!AMhId5(Hu}qjIhAMy-60;`R6CCIEqW=d z1p1P61uQ{dWBYT}ox(!1Pfgux;TWr&UA19E*Rxfs6O9wouSJI%=kZ!4<|Lq#gjIK| z`7~iomL7qbAVMj9ZIKEq6bo%BE<2D$$?il+4+_7)AZHCTtn&4t&ii?jEhbCEWFT<( zQ9~2nl`zI;gc=0)nm7h6mI(3$8 z;zcaRdEOwn$SaMwauPi{!0NFy>vY9v{MIXKPs`zs9O_c*By?dQfrg-?3x7=AwJ~if4UcSbC>!t!(zN?#59se?top zq)1^lwpRg%!7o+6x4F&(@E{#gyXVuv2{WkmObJ{QUj=idi;4$?*Z2n$Z*^S3m0Q(5 z_D(bbjuZ84FvZsby6+DOaig`x_;I#SH8MB8xU!vyx{vhiUCf-GPn#uvtJ}_IH&y+- zlN2jEPZ}Tb65F+@gaHt(O(@bIw)SqWwxhYyb`F_5B2~WoY;a;VaV88{78k)BB}$Nx zgnNHdLA<4ytGAQkKaN9m?km2AAt?s+dfDU1JnM2L*QX-W#;=UuJhwcOqlULi`U14e zW+<1S#2bxXl#<}-V2%>uv{!R&W_xuVzAalT4s+J-g{qi`{ zTpL5YgiTTIcAtC;IF`3dWQL#Oo)`O4>J#r8$@L}YRQ~oogEkgZGM)b6t|Xm(R&?D5 zWquVhubgl#+vlNG72-{cm$#|CZWY$96hOgbb>^FvuZ9qj4UYS&!zbd`<@&LhwxC*& zH;d*Zs@38hg$>^aR_khv=S+{;u(Tm$rAr>Cv-r_aVs2uHS+dEzg0vfR8-$>VsL20- zJ_T$MmR(Y>gaI=k9Qs-TQ7Q3?`S`MFjvlqjC$>JKl@UvSn?8efLB#%27_8w%9WFdK z8Jce^Kpw01Hb0niY4TbT`L8r=g%dF2;xTu4}+rZHZZOU-| zsZ|{xg3m0}rh+xkJrttaXkke>UAiifGTNHit~uU=pT{KMh6M^4V=Xoz1_Ck-QvCo{ zUT20mEh&;IJl)muB4(!SOY&phjPj>@%S#s(ue(^S1t!636+XmCR1cV4@_qYpH2ln%K4^V)NxulbUXCY~j`zQO#f{1B2SBIx&7W76VrvwO!_Uv&)1b7iIxiRCGUs7+pxGlPaHQoC`4%Ka=)l zKE70r%S8Nz+x%*rw;736T(yI0M}j!nNI5nSd(7W@NxUcYw0#I;&(}en-`<77_co51oz`?kSeYNwGVEY%h#tQ@wPJ@W0t`M+@ToW* zj`E^RDi(d{QG$FbxGQQG9d=54x`?Rgix~*W3iE#j(Z?G4;Fm_P<;qRiYTa+LC!Fx? zL7Y|+c;URoWWB!FHY|dWC_?Z1vIZ?ElEnHe%9o{syopJjfu;>3O;F}BKec?6EG5cega!GMxqVmFLC;9!OGA99NXiU6kFfeyFj`@e2HmmD z0qIb>a8>x$z7DBv4esvLT?xx!pwi>Pw5?xV_t@ey3ul76gkNgI{n0?Y$9u=Ibyjat zQ(#~4>$i6-Ii)CYlj7g=E|$2;1?}kxF5EI!$kPN=a>Z-DpQ=HQJPNH@n`Re||LQ zieIj^h7k}Bpj#TEsO1-lh|m~Ix3enTYRaC0*|-I(sn53Blr)zfXpi;>Cfmp#QOnZtH3qF?0K{Bm}oFco3jq>9y~p_o+1r zNS91!rU+DVDzr@(Oa)RwpKPEY`XImS<~01bvgaA^t1Zx8o}(pP1Xs_8 zoMm=K#(SGSj>o&GFl>YMv=N(fX~XNv1l&3`u3ZDRA_nG5j(eGQXdi}_iI2OUpgKIg zzlq9geh^Vqy)8|HKs*_)%j=Dev=^ja3m8^d&uIr4o7jWmO=&FR5}uL|x4gSpzgmkm z)u_FC#Q#UbSd!w3;?M@QY+qwbtqe4o?YEi9?m(O0Jf|qwm`IK7n&KGEj48KOET1#k zUn)lA&$@@KSqxicgTbn=_zSeFlO1BF^HCZOql^(_ag*CvHiF z0s$*+kmwy&OIxZoE|-I<)H68>_IsWU=tCDWJv;?;kleV?9sPt|$C-tXQ5d{f_X&o} z02@!#C74)9h6^IB_(%GPX9aU(DF8#{UGt`jp7m&=a3bpQhf3CV#r^YXZ2r5i8K64P zp*`D>Xf!asCSo>_Xd&HrZ`R^0@B%+TeYbY(+?KZvCpKb5*z2-#uu!Ra{;f71d-ob( zL}AyFR>eW52zQauay7Pbufc?qAPY!#R2R_-oHjj=@5?G56!kx3a=pLvthnXKJW$Fqk{v2F@9Qz- z!YmV>cr)Ba?$JGE=s8dXQ1+-H&E|d+4 z$b^$(5vt$N=6bf2QM6f42UBzuDM?-98GgnUo}iC^Z!Ow1B>n!X)=J!9OD*{|)RN15 zAWJ`BOGe=1HF`)}>}~I%qMv#OT7H_10&I?r(I%n}Tp{?gdK8L4Fx{bi#Ny1;jp77b zWdOxOdX$95?~<)^2>u*tFIN1+wnjytFe zC?-!_nRCFYXJ=Q3JkPh9$rn;=_%~0zx{Pnro?iQqzOcG`>~4yy7zkKEOubf>MZOx! z#w5DU&SdUaXh&$B?T6?7X~gaS%kNuJrm|s(+bA1czl9P z9PDq8*ui@M`8tOLr&THX4bHn?eP#`4=;@ah_ODaQw0Q^X#}5q#qMN;F}J?KqgcTvHm!IP{vT>ZN%+AvMSr*OX6o&Gr6NrNcuC%W z3iqO<{d*Lyp|Ls8Ub|Rl!Fw-@lZFh1eupbberWnqJ=f}NlsS9e%U@%tqd0Y~qx`2X zJ__K!x#)Xd**U$mKu)4Q*0)%t-X2Y4XF<_XUsOP{Ium7Yktgx%r7fhEVmwr&f3dPx zE{J{HS=P|=-v0grA5Z;y76O#Fca%L>|D}6~zi0{qk>Vc~2j@R(gks;V4rCDee^sdd z4q;$X#+^Vtroh$H-!PGiUy6~tj_|!3MUf_8eyFMYn+rfg@E)xOyD|G`ku(LOZTxb1|IyZ5S$M3DrDmngRK)Kd^>U6=1PwGs*oj+O zvgw9~{~mEPgt`OB!39A|Lp!XDtB?CnZ?gGLDxaHl8euP(Qg!$diPOmTvrL(Chk4zU!IrR=Kl3 z`@($!`JPP1wpvL=i_E>nm{8N6 zQ4^nWc5l7XZaWeBYFJ%loM(EU8D(ck^QgbXs|uH%c}~1O#h~6-F}cy}s;lPQS$kn4 zk<(l#4r9A90=E~Kdb$!;l$w^#@etE8KNE#lin0?Pidl`Y^Jaa;ZO?-o!-#r|imvQ6 z0DiNfG#gsBIpU2^GvjWn7N~oI%C_3+NG;?&?W&EsnNNP;mVeYB=*B0E<)?}7bJB|d z#8-I8vu9dddNlSy8%)orLb1Ir{I)=eH2>WGY`2+YC_ul7^=Q8~?--X0(FIpv14#+0B4?Xf6 z#w!2VnDXG7i+zG~N1w}3dNB%Ew==BIc&PUj&awcix$}o?Z1_+0e{?2;e5o{hydR7|-PPoQ2PA0pdOm`2(U&~iTMUv_FrYDLlS#+knl zxoY&bQhB3tv~+eLpd$3NZ(a3xXXa8SLB_Gc!RI^-bF^$|Vpze$Ip?X6pUm)LN|kP` zF7=z+P~?y1nG5Hv^YgncX=*~4Z3ZR=$yjpuprzzO((#{F9iih%{IT!?#!AY#-Z(Rj zfD6;KiX5{FMpWM8V0%4mQbiOGuII;19E2Fqdx?{CSp+<)SW1=Xc#N%SGG=K3odQq_ ziiMcQ{x^#$$mM?8?#9HdJ2wjhll~2@c-`*6#V75R?GMKIh}5Z&+KIQ^o3~sGwwD}} zd)I-MGRHrB&DEGD_3GkfV5V$3;0jBUJg(&4GW_H#11`Vry%{en(r|Gz_VK;ZbfSKQCDMeZj9w}Z`o25`f=!m3_mlG+UTa%gx=!j{8Z*Puf|sbr>gbm@ zF}W~;_dlu65fUU=?!*B7BPNn6>0Gl>O|+PCZ-zD+^Y?ak=tHNoc^b6KTJA_gT>#qB z3(0xly3(nu(VS#C>xa$n0HFiS{p3d5AW9Xmwqp@J(7x~uB`VxxkowmwaQzYi6VZ%4 z2FEuI{%#!}j`n`2XMy_PBA+f-^=)Ty>^fJ|tN<0jR3W&hMOpy!83SsJNh};W(rZq? zURJC8V5Xh7OR|ho1Ud{Wj;gmbpN3@4Gd?Yn;WL- zH*s&}tcDX3y21;3spWg~M$#4BgyU!;N@v~;6$j-jqqo|twZ{^zEbF(eS6m6_$VcHm zxQLMkgurvleEnT`m!xg_YU7!# z2?7$YtHTRRZ&t;>1%jL|HpWR!n--ZiVb_693S)%u ziupTQpLi6vhw2?XuMc5|0=b8pTDXUy5I$dPs@^ve&sY^CZ6=rRwIb| zCA_#5N%HAjbYkjq$2Y7mAES?*9s7psiHVW5SMS)Rk?0p06(EYt<6M9u%UO z#MNwyaKt}l6q5XKLwuOx`a1m=l>}qqTr9&yUC(mQq<0D%eIk8gf+eipYW0+^rSbh? z68se1D3l-tb^`*gXlsP@m*d>2`Y*wHpw{hFP9>ndSCHv!?ayO_aUJN}k~YQ*yk@BD z!3B@R92kVH7c;Gl)*F1abNyF4eC((gfZf?hkIeQ$?-J^olG}!=npWR-Vu1e42EOVw zd$4BKq?1Dmv)$<(k*hse@OX-;;qA>21v@`wp58T+ri)mUcHaQ{{K*@41P_)-!cK!F8<;MeXB4sH2mcU z&8v^q0J$x(LceoqSPE2aIlP8u&7^} zZv>g~#6VI}E*Z<+;`S#Cfm7eGdh|7+;;ShapO+%gy!<0SCdrV(m*_l^pu*>FI&PX( z2Q}C7{2l`aco#JBPpps~xr{P}=3{yx*zY1g4hZ3LSX|T&^)C3YL1CFww*@D`-L;&) zLt+B{v#J-HDUCNkc18PDO>;xKPl&$5!^EGzkmO`(^TbD6wH@UhRHERZ!A+~En^3Rs@FrSWH5&gU)5s};8NUVWx`CLcRpYYR#T%C(JlbgHjWZ@zbnT@Q38?6jfcqDqx3Z=go>av-r>sF}pzfMnrb8+_G z%b^+#prP4Hf=hyFW^=uyrzZ1_miFgbX@pXXkA_M&jr2U^IFadf5Z#-r&P`VDi#9P~ zzGN&ky;S&ssTHi;hrYQ`8p^3^mp3#rS9rZ*AFZ#x(ez5XougcLsxb#$IyHX3VSj(i zfqO)A`eUV1pfcUv`){E{5z=q2=!uslp=Flq>%-k9yV*h%(h7szKb9-BJ5)|M*yWXT zWJu>wq)3WpCa>nyL7B$hvq0quVOp%@bCmLy|C({8NQ z6iqEAZB?VYDg=A}h?3)^`Gkyma(YZOv;a?9Jt94#A3vWpu6WR{?CBd6Y!`L6RdSP( zlI-%^hj>kO+R(O)lw(QmZmur4e)u6kbLbaxS8F`9x6Wlc}-=t|LybroBj#XmDjqG zLu)~72YR9tOSQ7?;j*D#Zmyn}3R<;U0IDOA!p1Um^NNzZbg@Q1vXk};nNi*#m&VM} zqWyNcQv7I0i}En^Ih&DNMe`FSGx7eh&xTQG{nDjyTKg;Y0r1Wn&y|l}?g#lLzN-_gnRR$wbbVg_)|EOy`^amwv-@DGs|1ATyDRK(9SW zB|Lj>_3`Q1xy8zfi&A_=e*qu1eRtNzklISobEr2H4L4^Mj9Y|@>i!Xfl=J4tiTme1}L1dEs5%Y zGr=2Q5M9B<|8uIs&AcIm0TV4&X8BXu2V8p}91#&-OnMYFe2QDSu0Y@MiCBn*ukRkB zljKe-J|{4LiI?f#Gj~JemX+yfty;I6N@{;GKP>Qwr~F^C))Ua;Z$J|c^Y{aGXAafX zv??s07oy%eA#usZx7Uh~Q9sjX*Eg0s6lckFv~4~O)+;<7#o}R*YbGnX`o z_~4FHj^m;6)RbpUi8oVDkxZIrj6V3tL;H1kd}X@X^(T0|!kW;&mTGKDB0h)LXYbbf z=5*OX{6RNf_8X!PZm(-RXIOA7_iKEo>r_)8X7RBYuV$-FJ#P%#WmSzo9Gj8NM1&V! zi!V3bRBw8w{L9fudN$na*Z2FvOns_vX?2LsW)akT$4$5GLZZ-UWiQHlQMYkE%Et8? z>3{Gw(n*&oJN)(#iVr_oZ)sJ?zjTmh;<*)v3)D(3Da_9G8@0-eD6p$@Nk-GC6E?~9 zyW1NqNofW^#YQwot!n?81#M6FPqc=DG;#LesNkp@sq4O>UjutsIp3*6i6Db6GU*Q2 zTQyIEiSNr;q1z(qULsX-Zix#LiFB*Hb6;Yhqr}#NB7(I5`QyFFACFik`kJeLL zk;8p5Ws=03nEP;O@)o!F_>Ie0$f#jxfQhs$T>3-E-jAKUBWO$G{+Tkl^15bC7uFr+ z5-w3$PEXMAeC^y~tr>Pi14w~mXE>4T90@NYOrBaN9} zgc9uf_KmRWXoz?XkMGLSj#?#V`p1gDj+&DRxtpdyk-~K_>-egj-}d{C#E&&L?tX6d z7tD>yeoK!zn^%uJurw`h3xw?S!1AR>sq^5e@nWKdK=pajgOimZhT-@y;`Dig%%jDq zaWU_>)_j=}3Rai98K{ayi4wf1O6d}T$0Gj8b~s+-la^YHw0PhO&rOE;mc@DfZkVhr z(N(i~(C(x@zwxP%E!AOh&%)2@VZ4w{9ujrT#`!rx%igI38PKT5K-vpVOKEp8Px{Lv zoic{3`B+(dV3_EK|Aj3g-69Qf@{3qfnudm%VJT{Lme?-#q>er{*O9(=(sV;hdA^3z zD*ei2EryO)v8SmL?acz}ubC59PMhDQxmwM#1!L z)pu(w1DLik{D8$hcCies2Brt(E(w$RHhPZI&V-gw0nef3#Ua~`S^SuV| zy6bmSU%9xqjxIZ4_1#1oD6gk{=Tk9%6&J{ezB=EHIM#h^QJVUDL}?$guFD>@ZBKPH zX`lAn+E%Mxp%9gmEx8ssfa)YK_tSY^SnMvU0zMrV)Z4`4GR&=Cn`6BEygAISHpLRp z#`HAZm@&lawfz1#$ouW$xc14&cVVSDF0uTh;D(4v+Y(730q5aCgm$!NdcDFnh|PU< zJX^D2n~R&K<(+8$Ku989G-ShWQ*owFbjAv8o942+s$^~$n~`6)*4K`adfdyUX$H(7 zKKWl>1%MH)Kh%5WjvRMu*^@Ras!eAsmmkq28LI+N@+$E?)qB^Gn9KjTfMg0{1AyfQf2 z8j9xeyc9)XG4XZjqATnWkInM*WNl6QCdw^E|0gTul-X*_hG$J>%qCi;td%1sRp1DS z8tKv|Phl7I?URH;=Hs`zymi^ex1^)V`5LZ894#dEoH>xz2}23bf@?($Uo2N)@{ku6)yDg4F|e4 zc!@P6xaafs{P&;PC8<{r$y%49ux|yQLNJvm&j+usA7x)~-1G9a`5m%@8YD9ox7*z} z-R>@LLRTbz8N1RceLdRk`3i<_0KyohE2>0TKCeXXi*iB>#AalxE!p8h&I)noTzYg+u%rWY^y=#xAu}vL? zv(KhKH5(1!T6Rl4mL;pmC2F4Leh5|AsQdh$3G&>5~IOZDc7pGjd8xys>ZLQpE z)Eybs$0rzRgiBJ9yFJ!vG4IlvJT_R-WWcW6CIQGpHV2kxhX*H0RZhx zdq8Oa9mNGm0MSVHlJ<}Pq^AQoEkzncQ*_aPmnhh-2Xh&ZHj4)^0oTSXbqxN(wWL2P z0ffYP*VZ1HTPW!Q73N--sbCb&{~u5WVBkFnmiWc(E#;)W+@H1W^t2!bkU*>pk zCPyLUrV^=F^Qo?$s=cQV#pE497kqP2`sf25)Lh7QBiuYw* zj^yY|my^=KKInt8SbpR<+@olIYs4l}3xRk7qoHItvh0(euB#f5gnp$V88E2-?gA~H zWI%f~sc10iG7qnvda9LRSK!7Yy*F)otBbyeC`=U2AO|mfBG&b)Lg>^t2}T`)hKKEn zjaI5QhygO)H_9?MkXD1+_N*ik3oZWHPCAjJ7g1FHZAG|WKEu_-$H=fAwu7X?p5zG% zw~DzAphg{Hv-C^#SE?h`%L^ySSbT9(GZ*0)bZq|(=F!TR2`c@79U`Rj?eH9=gXFro z%z11Q+j$Hpq@$Jt1dON4l!l`D#Mk!xGI0jn&^|z{2xBjAK{EJ?Z4U`5L_fBWVsmFC zDU7hF_Uw3VFfb<%$>d7I*}2!di@_v@qU9jY9yocoKf^zbU^*+M>_K3~cx8jd8W>#I03Grk4hif_UK!GIyL+B zw$Xpei}grqx+WBmoIhulyJL^FV#reE1Z200&e`rve{6JKWq9a`8np}cO40M} zGfvRzhZmpC{tmJ<`^3#qBu)or5LQfu1LjU}=GknM#6wWUPUTO_=e8|p+m z9dMlrH(GM-4;Ls~%XA2LeWf7n`JbAyirP}(*ynN=K^cX>1%)90sUOwgtE90&h*U1u zpOcVq14dpz3Ko#A6Gwe4{VaaDnNKiQT@be%D`|3|n&!eOo|Es-b}xn*dB8;HDIx7% zTN>%KlN>pnuOPlstV2pI#dS``LCVasy%I)6%7GtD#{5}QmTkJPdMFyQ_-rQlO}zy3 z!;>e`P?`-%&>-cq{n)W=F_ySB5eIYSC| z*iExyeo1p9n3ACz6BD|rapgMsipBo3#z2O%tyuA}ea2b5G@Q=MhN{(VJc(twIg|V{ zyGxB?-O-sAd0{X|#9pR^0aYT|0Z+6S4XM52-vL%VZnlC<4`$^far=W&uy--zz{ge5 z)|2u@syLGM44sTUo-^mXplU*O{fsIDS_%&a%(@9ETziSbsp2-R6kAR*-y_u5_^|Ar z3QRx>4aotU_o6#R)lhD`YBSqXy{dlIhyO5`yp7d|*?eWX1GTxenEYf~8#LF=AJSwy zW(Rw{zPWv3@r|Q?#Z^k@Qc6P%ucOhMyKeM0#Z)rUV-otLrMVRW8G#*#!gN>?|rtzOx!12V#xPa z7|w~(<%`S8nHu|+X5(#@Ul*5s5a&=Ija^Awrm$Ox-ZRUDqm!ywcAv7O>@P?U4_Tkv!*UebW#)CaH5N|7AU_hEdiC?%go$;7xEu7o}!NHFQ=O9yqcZ=@0) z{l;QA(U;P4;h5o5L#vEo9BZZV{G+x z$N+l9ZQR{KYGv99FDlruilc1GZRHSHiea=#x33mEpjKZ+1CFqz_<`^s#A}+x*6qOl zFQ&2?TTseBF-roZh;KvN(7&csloXc`vYbvL#&G1!@}937nNpa*pb@MjoPQ z9ffo85)+%+NxRN#JDlYVqZtLa81=pkESx{@o(yd6eVl@ynI9_&);Kw1zs8Uq1L*|`M3Q4g zesjpsWghwAC9Bg`m8Io!7mqLUy4v&2_h-MtFsz&OLDA*C1_Z;J3boq$Dq;*|xT9*l zSQniFIY@}`pko6pU09=W{2A;dAfHMCdxlx%HX%Zm1AXEq?704njQcI#2cFv;lPEK> zIMvRB%c1^FPKtfRx2yy`g#^T%SLt!i{NLQ6OkI|0FAZHxA=XQLKsv)JGH~1T88%m@ z2Xpg?i2JqM>jK9rQ8Yh4Rj34Uokn+&b9DtFU;4-LFnAbSvtRN>dEGI+AP^g;(a~^U zH+g2SZLSDdE>VoN#Fh`yxbR2ITe9TMVDI$@9@$LrIq0gdNt)~CVLAt57M2}ouw1e! zuch7Xt|Ey(-cDE>h>|;HPJIZ=fUsCn)<{Z%B+Hmgu_uaV8PM=kcprSd?h;k*SKOH? zm$HFjOi}CG%nVOECBIEwK%0=?xOe))YCSC0ae=x)b&vjFslXBs-y&miWkPM(l=~%G4l)woV?^#(kR7&F(~t)>1rvqxFXF z*O{%6 zcYa&utj3Mlvy*}CX$d2hYbEl|S6R~J36PaP*v*{2P=%7_H?oc|U&yLN3!UArB#cdL z-m}mX`Abvg+MIt=AJhM0(Qz%%jT8}bl}lpR&M9<1D{B#VJ`-6u4QsermY3PF1kx-S zXLEm#;P!MUn>taj8$#kcYoO~?v1;4At8b=ou?}5dUpG?NXfYPngpqmq4;SDtx29oR zk9DGQClJ3+D~-qSD6^g?WkqQjtaqc}DceRSw2w^K|Lu;9sH$xO{mnz{z z+40A~n;FR?ii0lW#r)mJa_yrG+YncD)B=nulI$VDPa_40l3xPYIS9JUtbmpmNhi`c!SQ#@Xxqwe}duMbja zJWk_SN|byQnLo`{(@0ASpCsP}S9_LB!4}N}HR*AVrwQy`hJqvO*o;06*Z7y%){YmR z9I53WF4gC5`I-`@ow1yriqB_=57GE{MES{6=AOBm-e(Mze^XV7B|Oh$F$$sN5!|!CaHgPIZMRkbaO`N3ynKU&2AK>?sh`ULPo{F5r_^gd>D5xr9xaOdHCTvg2#4` zTmI`v=jKQ-NcM-k!hEFU=3t1x0D3q_@npuhq$H&&am-Jwd}@DB?K-yJpg9HQlt{RS zxdHP7K}T-PXe6UuY@tBN1B}PkJ|%_Ta**p3nrd&Ij7-i4kL6% zA%E0T<*G`#6s@hYJVX_id$mtZBbvNC)npegrcZUlfN#~VI+vqV7cq)}RqKUC^d5wb zIua`*GR-5P5hJJBA#0mA%tus+E4C%2<&7v%paF@;nj-U6*89|UG_fH%w1Rw;i5NUQ z9iM;9E^{{?nSB?*B7gcSk%}mA;|gR6Sd_f&v6KXwCe-co4fvi`hYiu)<72zU2ZN|$ zd3%8Og|t9%<}fsG1_Y{DXME9{sA5I3*N3L%X(}i@fF){VUtxP*H4aM~LFx0g4}V=| ziwq9w>(`~KR==QAStW=xST5UjD-&|Aaj5w!nBY4bgotr#G}YiD+!%o#DnteIGV}7G zYoW^Y1bmHi{!CRRXSw5|;Q${6j5pXn58vGzf_)lZK`}6J2NO5J@|Ht@AOQR4k@JKQ;~1Ghe*62kV35NE-g&j~d_~ZI z_QDHJlD=aC^XB(&!61x~`KHyO36%W)l@RD96Ar0ul(m zvjF)e`z(TQM1PNTm&=<4_x#u#ioI*R1RrnQHv||*FxVw&iC_@jE`!j(t8k$D`OJVf zA>ME4_`C_CK>8SePV7P&Sd2_6@fV0cg(OK&diCchvH+tvvm2EC#|-d+iIeaCp@X;g z*e}i4^(p>cT)-cE)4}Y2j;NkJF!YuY?_hr`0tRXEEJVbmhZ$RzgQDm59acX(XAJUo zaaj0@9*my7(O0v_o4IeHcfmD~=SW&({z7 zwb`*m)~FgE!GZ%<)+j&ZFg)bz#U1*3wSCY#S0LE`M^m2=!7drR<&t;DusR){y~|qM{l}qb?Yz;E>faZ~ z^xq_yiSQ!R%K*DS4atle1{_iV3hQ&B0~0H&>O4!f+~?}zFCNh#4fq*YTy%l{LF#S1 zV`pqPJADYTYQE&F%FPk7+^l#^;DU5w1klzOMpF!*Br zmq%1wcK3RV%Hgz^!@lAeay*wPH#34kN%3u}AuDDvo^;Y-2OY`cxIHD`>oFf8WSe*3 zeZIYug4IkYd<1MWpSv&)Q3)8lOsHrPcmqRpue_G? z;sSyt2oexJoj~_+jZXE7f1xH4FgwSHxcMRc;ySgcqY8rtH#gGp5J^O3&+~35^S$II zye{c(`s@dk#k!gf@Qm&>Dk7?pKsOuG7iRqN3F`LRc{h_z_hSd!>;^6mqWR1m z8LRjcm>ag1m4_+V%KmTYsErgC6u#e)^W@Hty|#VX*Gxy+=UA0IThyb46BBXJ9JVnR zr!*d^*IhD?MXer$JrxVA->mt0r^5jI67s!SS}L$Fn+IRd#s7W8)oDRU>t?6IU`XbS zh@s|76m$Rl`YFAs{t?Dnx5m;;kEdbj+zJ&|2!cg=HrgrRs_~(V zS300#h=&%hU>wN|qd&LMB#oye&2g_UICmHG!Xi~FS-<$Y)UVoo*(R=wrCdZgU#G0F zs6aG3Gt9$}1EVGYH2#M9%9axX2C@-bfh|uIOuTTb05bB@7?tP_F~6}qJtgPLYS^Q{ zFE3V5<(vc$)2uxTT|q#Wk&mea_CVgYSxX4rHOjLkcZ_hKdA#tzUeMOt+YdOoaJaza zPH_OC#~Bc-dK`gsd?~_mF$Np7(bz_)=`Q1P$xbSdeCIOUDKlKKzCC(a)}E2B4k_-8 zGMmmNKuEsrUZab9(A7DNLrI7tZz4NnZ_so-i`g5?Xf^^a93rRe`Rq&73f)+-OXLzR z$FoSBvILSk7m~=+NnlAOeZbrUF>Z+zbN`wvek_i(3}CMI17V;OLcN0zO?Re!#w{S( zJk!{7op~S0u&cH2s)7jGhZ;UO*OFgsdMvmWjc_;XBFcq5wtTK2cba$id}zFVd8PlzD{54yr%ABEZ9Q>w~ z3n0vUqX>y#R$$>BeP1gy;0c(Ap_bLffmtORQnHhu29hJO>wAZ-OjAzJfdUip&J5TDj!i~yRXA`N5WaB;iY`9-4|kHM7W#Iu#`fCq*+P+d zs}*(mAzY?Z2%~*DA~}o=%I9Nm_SzcLKZV0${5X zqJ`-GF%G}11QXER$5$9BzJJ&`H4#93qm@ax-&*o@{k_cs3Vw?P29W^BZ;Hiw1@W)F z0Y|0>+$|X8zN7;t5iFTo5X!;8!`=WD01Vqu9wP}{`!t@gRXu2&Wu}t0@ zWTQY9)UoCxGDs2vW>li3um*Ca8q2OFR5xG&i$wehXPX&Q}XpV zjecKgH$9m(OR&@WR4iRz4+2$|i#Ph67;?zfwe{8X1W$U8komh$6;7L_wXG9ZYUg5U zot3GDV&CPvFk%a1wkR8k%vG*LiBRgyPyCY8=`yH!0I)WOd?3) zw9>8gVXtvn79XXz(eK5$C@SyeQcYjPZQjhR!YRZT$K~p!KhVY1*#@MWNiAvA6$MYnaQUWf!F|Wz zHEDVfl=&Fq<#rNhAPU^>IddyBM7M>Z%Dy+>q+T57RHCmk^jx(-8qGeMw)&*?bbo{S z&oQeFS;km-L%ip!YcU@2i`OUU>uYbZgAz@SGMBPbUTf>t_YP`${lJ^rpXc(OJW@2& zxogrntZ$6GLL_QOMS_Fz-HuuG8b8wNja3;6bv}OL-Y*#yvQ`xQ`GHb$m8C(LB9Wwd zqnzwWim4%DDkVm=XVSD6ls?DUU3C~1>i!YQMCP2?u-tX6EA1LCZE_V+@H z*b&q~dS5Hbz#Yx zkFUZnB=DP?o7vgfD`$fWUMS3Q-h+{eE5Oo8h3*K4-Eu3AFX=?LH(J*ZFh%fEj&{~M zh=HE4R6{5vlAUbizHul%H^pkpCAqzPy@FQ0KN?d}mT9qYTEIsKm z8dQXe$w{LwZG}?Bck7TVtQKjIS(o9GDQ{HKbylE2Sy|<7QQ4_j&ZLyUmYYr*!)>_O zjHn^^YFno{xDF7%t2;Gfo;xtUl9{Jf+>V2hkDc1g(XGAyaNOvy7QFqcAn0den5oa> z809AM)ruaM&_&I)tZApDr|McySb@ zXuH~}Lce&!*|Co@(D9bErQ=e+uZZE8$Q?o-`X$EIKnIo17g>ARljW-YO}c@Ay9d?$ z!N-GDszk?i3MG#k`Nx*i_Vo`-6XYd|r|)!bmt$MZbmnO#MrM|o&{uCiG#|W(I91?o z<0`ctl7|M0oQG-i3AoIrSJ@~Oe)j56wb=siJw#s_V$@Qdxf|j?HxTt?s4?fyzALtnOIQ5LYW#ds^wDNEu-mEt6q!H z#2NpH`D+CxJ#3gxu1R;G!9UuaLy(Jc^s^>(ayPwvr!@HDv3EXo(`@-FoD>fBQ^8lx z(MVO;R<4&~3i_6sz=9}MN~$ah#jG_w@}}pF=MuDptFz7X#~ukCREZ}cfe-34Nmi%o z?WPX0xdtO}A!T{YephF^Sg^B)V@RP0GgdPfz9kQ#wQwIX-c$Y3H7!BT#!M1HGzw_TR9q_m}{S)55Un`fWWqjz>z%b-kb9J8i*aLAG)gJXz+67u$jm(Cd47uXKTzuW+a7o$75c_6qX#vsMb#v0FZU3K40uU2ncW=z578jO-WW5NS1l6=9M=wGChs`SN*Yp(i)u) zGi;ePYWM#eO4{(hqoh?*@~$Oqhc`t|UOO?begxy%__|c9eFDO~r9E z{sb|sJ-XyiDo)UrKh_Jl0fmro%%w4c*-s;*mY^sM`9Q>B{JE;V0HL6O>D(Tcr-fk@ zxR2mYL4dJ@@Hv0AlqTQ=18M*05Z@pJB8)aIEE%5uDPx)|LC&U(YK%KFt!1D0m79r| zVNMo`J4+|?uF!rKbH7Uadyj$+XfF^Y-0w5WirE{chDys)r>Cfzv)wNn2yJhOnqHy@ zITApLaSX%|SkB&}vs z>|Q9$pP&`cNEW?kJ#_DgX=dox&#rK~%4gzWOx~%Y&yyJWbYi|anZ$yx)1dHQI3-11 zWx+H~OCrKl@|iNElE!0^Axv&qT;oLl$ZHJ zVqUDwn5g&3YySTNEKiFBo$?4Z=2qp~(IPvoalL+&y1BL9at=fOaNvd*Fljy4D7?m~ z{$3}zHTnfB`BBDy|H!KPNPXWad1A@R6P0M5VF z8FT2GPWSM7g0r*iS=ZfYYBkq|N6`4NV`#c?OtG>XL zj~dwq;cvWh{tQ9I*Lw(3%e-OvliMm*g$}FB)gc+&&}F8?tugv07O#L9|6#^ ze$o$^-{FFlFaaBz+5~>@+Zo)s!_Z@gnW=2j--G4t9RPV$H!U8M7XY1u4by}P;685Q z;(v?eJ%;ZGjK^5IHw3Z`8H9!GogfX{3`IAF z8!~VS1nJ8?DHzCvq6ZIY!Z_*K0AQ=0W!Z0jj|~+Kcxolc>?_e&WffDI0K3)jTSWbA z0qJ1aLyKhK_$aEf&lO0uupb=9s{r&b z^ix7>uJ64|I7k*Da!l9$@HO&VpNlj8#fSBwL-*m(4Y^d+uL1+-tuBe0aFE{Kmp~xT z_VTV2=Cwakl}Cd`cX)kIwEqz|yBvNjZkwm+cAq zd>Lkl-c>43Y1p2sdkGdOy_*&XAd}*+p^X=R!O$IT*<;U;HZp}z$(ZKb(c$iK<`EPM zr2V8gj6_l20p!q~?Cw0-?shxpV4doRgQc*KUBB5m_1}@_i-@B@mX&VSkIUez#?YE^ z#Sno(@rZ4Td#TvxtHe5>df_C)=1aP~4lk)CyUexgf^CVA-&R|IF|r;xaBFAcmjWvU z<|F3=-Rj#S0enPnzePq@UJU=k*5-bX81Q()vY+$k8*zNd7%15vEl}MicnayK|-VOk}-iH4f zxoLU7^l%{cJUg&`iCy!Y85Eda@WVVr0$0Iog4<4w-0A~w&vK&0at3BX$*t_Fm^iZa z&31i>&>36FGO`@kc-4G!bcWD%%Zdh$ou2QFgEZE4npMav$h0J2;(}klE?A5NCJtEG zLny$eNZB zNe|hcO(ESRe2wnp@2@2eqe~HqlV~Dje|WiHFVPd4b+U~D%TBl#`*a}p`dN8b>`ibG zhnqwOc5k_8V>dX2l^|I4_h0uZ!-BvX!E^m_2>S~~8Vr96e7AIAYYI_)!b9O3dm^5p z7MFFem=*ecpf~x?5%7>`UCgoT?UR%V>lcidb^QEuPDqx8XFF)m8`{k zV1xcT0%?B%XTWtt>===E>HJtvzyN_>nD;pxdiebN*ia5+8|J^QqUz<_8(-k^>X%jA zIB+NfB`_FRs7kMcW*mDENKGmSXTsr&v-&6jbTUoZ6!r2LlK0&-Op2qig(b6AVU83=l5h`y|3|9r(IH zfU?rRF53P@6~Q1d-U9F)Asgt`ZzYiF(*bQ~)c@~x6oBtw5LbT>G8m-Pulq8P%72Ob z9}%f@HU9zYa?wl5#l3SXaN-9dsbO)+J@=9n#2AJOf?l2z9MiO}hH>_t8Y$ToV|(EH zMML|TMbHBxsLUFa8h8VXQHFs&)acXW>otfl%7mvw?2utp{7rKxAbo?gjuuAW#L5`0 zCA+-hxO%vWn2o?m(}^eYc*1T!O7G_oD$W;-j;C?^3DNwy!fDCf^GJ9J$1 zbnDb+e)MMtM@DL`D90g2erC#WJoWt0bn4lJ=T>_4w7C^?f8gOxBs>(BSc5dUzE5ze zU_riM9HWc1MDjB5!9*X^1zbjQ+?==}H^t!#mJVabYmg8PY7&3QXHdIvh#7L^lebUgkJ2kz1obAom z?r&b?PDDM1I-liuzM1!KjV5i?w=pU2SpeGp5A7zIoMbihUnBfAl#~`M}XfE}^$V{?t&s@W-&PXDn@lcB{1`oL5Y87SYeEHlAx= zvHP>qRm+=bselsglM4S7!GIlGDwdrxl!0D%(5BwQG}0-ED2}z89eAfNb->_^FV=UCl4S2)Mh= z1QihCv_N&b4w}Bsr0i4WshD>?J|=GW6Fcqeh0w^QL{@P6-{3&W!yV!4`nHkr0-DfMVXnLs-`^&htg! z!Xm>_eRWJr2!h%J{2>U4?wSeBpAQOEVScsO!_*#tJG#5Q-KIdC@|;^{`}vVsJVwF! zlLif)e&1=b-Q3M^o1b6FT=K4AD@R4`>~5yh>V1Gp8>E!Oan4o=uVK%_-AS;wc21`$0$RLR z;+MBLMqhM$P%-D)x{d95Z|^1d}tBYq~}Nty}_&q4NNKjteWn|JJHTUSUCI>9JCYk zMXM$JlzC;MXQzU!I+Z{QBV6N4YM~2o#l8p0G^(ghc42q_U6uPLd!@9q+(%<@(oyBI z=LQPHuv>cWO`1T3GPU}m&t2mAarr)`BL*2?Gkrh7M`*sul=kq%ItidCocZ26x_La4VAKH(dgP73&kh=4{hJC zIOWf&Lq~QZJFIaz&vSIvh+D2aL2`%1yy?xEFN_a!(j3zMd`{<)56{&SUl`roG&^q{ zNGq8KerOya=UW(j;&+h;ct2v~>2G`UVil-jU*bOEeJEj6ejL)BmQf@bgnz3TZr3bV zZ6hzg2_De30Gef;y=^Q$*QlrI6EMv~OinMvJ)U2MRN&!FmDv*E@dr0Dc;Y1sJsxKPLano5cF^_DkpqVAy;DOJ^}9>QL3?Nfh;5>}bUh{0Rq5-5(LotXG4mZBBAcB6{hR>ZJ} zzcMu4sz1!>xfU(0omq~*Mo&+0Ge#F-Wcuhvxh@0)dR@^84Y9w`zjYT->{Fy;9yV3K zU?s6HEfs#5r(AhLK4ilaUCeFj9TiF$O^%|+7Asbxj`{rUv^|sd{ILy#@JxS=BXO6C zY$7(JY+`*Syw@=$@YzOlhZ~@~$~^~fL;nSB5+D!Dc2SbD@lWrgFPGZCbFiFYi9}+V zusAVEqWIwpa8WPO^L9*Sd17|*-?*1TV-z~3#dK(`>rMEExgUS9C6QHNgs1DFY~iY1 zPa9n`pI8~8jQeUN>t%&5S03vr;O;{*{%- zIU(l?lUyb0KI)9gO#%}V8z2b={Fr!X5et`s%K3&k-j#V{E2g$Z+?H z5Y>8~a!vd+1jxuRyRz<2cvi?T_q5HuZUE5vW*uV&Qx=cK^yx%)%Y9h?;D4t{RwX*E z;$5FqYT147kbB%b!Pk{te*Suv5N7vDMV>Ex;5t{33+@#6*?8OvTs11?L-ste_>dR& z?k~(QNX6E5WNx&H2jMfi#jywWRrrKj`{w5sF=y++W;sBGA^;uON)q{r)$ z>=VjJAl<~t^W79%kX2uK0=>b*QUj^#Mw@V`;Jgr-Y1+nBhQ?o-;f$-yx^5T*i$@l=EP^|TLY2@ywNEnJ(f*(tAH|CsF z->}bWEN2e8E>y&|d1-_3sbR5HKOW@eRBdZXMRVEK+-BYPsc#4_a@GnFo(A{uAj{rq zQZicn#eFo(x>T)W^ApbHuO{0?2&sqqoBYUX`knyevv0vDLm*_<+K&|d!ss{h3Og&n z=8{7|>p%mUxCOvNDhe!)TYlUFtmc|PkNrKq7x@iPl*IuMew;{sJyADQ_-q%?v5O?&iM5v5rOWU71j3sF28 zK=9FHokiD*W*T*z3Csd8#g^*-V2W%DAi|ap2oLYmri_#IOb$t#pLfjLpI!D6zrBQ3 z(zLjN#_sE&QI$2f*;eAfe$gLY6WTL$3?0W_Rew*}GOqp>1Z50@fi$MI(gb*LRtXz#9mhX8ah7VaQPy3n5nxzIFAQxHVl$`6a>qrqVYEyb zOVd67y5mz$!=L|h$CcHW)~Azffr>$_>Wtcmr4X1UdN^bQ0&r>{oF#C%BVhpz zb(2@@VQP~RueRPXU}(_W%*7b^n29=k0wq^ZCSVXDTZqpKEXpK-s4mAxu_v?F8}DTU z>m~&;PYT3zUqmWB?r4vEo}?0~RV!liSvNAD1~?7!=U2=^kmg75(Rq!v=fl#>Yp~{n z!5SV+l4%BMD+n<{7>F^XGHu8vKFtUJ<+ELZQCRJN@zLXf+&kO=i5Ffyw=}kRdA2@X zp)k1b^&07hlI*{5B`m1skC<)Q8jqeYttF%G3!b$PS*>#G*T%u~YLX16@2BkuHb+~C z7Y5rM^}MM*d&{KXeMM=qiQ||K@a_QGV&*fQW{Wm~8btTqJ)8P8WlK%gdS0mI{7LF+ zkM8xY)EB{Mm)n_n;yaR|$OFbbr3zyP$!IrMolIB$E8J?a&ZSjj{2`^!t~K$AUzK;s zKkUDsIk{w-Fy+sqaadl!$kvM4{?eFI#UyQ}6~x}t-^d#N`F&6J@s{c-+wpg%au2#j zZ20#uR0YNempzkbiIPaTTOXraI0xWR0w@3El_8~~)+|M)1lu+={3SX6*Clnuef13)Zke6bfp&*T zP(X|xKTVtgRrUBM)xSnL8|Sh!uXNn?RZvY&6gAQ3mIu747TAk z-hoK21v~qtQ(LHq0SCO!j|?t4s1tjlWQfn~uB$so5#QL7z32{@-L+Qgbx{Rj8tlq# z?q*)$U*mW^m9HbZ<6sgjh{8@(a7gN}!IDy1)|8*;t zT{Hpj(c-QXs=V}!J>Yes5&rV6^F!w1;gBG)CgLfB%S8$?JMUzrW_u^wzE|qfeFC(( zS4P82vY>d}VFOi(`9oU6Ti&AjUX-3VVJ@ti><6lSJ>Uv-FZx?8I0VlTqoM*NBd@{3Z*=06xxh5Sqo0dPqjs`cw!R3GbGM{T^Ypa5XcxPQk8% zv^LXSw`|Dl#cL)qO94hC&=fZlfjlU+tiDC$U1F|@m4d=s?U>QgMY9TZ$;k*^Cnk-D zvkk%Ukfx@li~ozTw~UIbTed(05g-J&-~rd)|A0_83U_US6|i&8oErb!|pujfQ)Bp?6n&d=yn*ADJ;yivB;TLa`zm zh_Y`Au_1?o>V=dq^S`NDHrN$`sQfXzRGxG#doqwU8O`3JYJ;~Orx982 zb_CKJfXmTe{khdfOZFnyMf|=~XxZ&P?qp0UdUD$G0f%-7^`6J25?(jUIey3*0xdm2 zs+$$^rQCaPE5bf1CXu8Fw~27VlK^Um>t%t`v28#E#X zzP~?1KBooq)Bb_YCEC+}QS%7?jM-*&%Ku1c8twTN!cG(GLo7OC9AfxD+DW&%bb20c zws&Xtc=F8~roz(0nohD241moacqKC7>^F%ptvVsY>UfIZCf67>u~XOV4gzPU2vI#IV$2uj+ngj1GH^l#;9b1`XMGjUb($1ypYL7rfd%k*b-FJ{B`5sr21HlI$byYDk zijnbU7>?4QYGgdsIA-73*o$W6=etd@r70FY}TjPk;2`zSi%}mO3{PvhzcK$_(HN9(Vf3lANDt>%!mK^D-4Yx z!gy$1L^;42pUWYv5anvC|J9EUJWPu-FcI zznGoY2YNq@r7ftiX^urS(O(YJmgC=vHPZh|tZ|=J>mK1(ce3p`dA0NcZ2=P4`og|? zxM6Mji&B&@-$Y=0O ze40;fsK78Z5H=svQXr}J6CbbK7dxUrjk(DjkJ|Hffe4Koum$*D0SPY)5hXLJ37_Aej8cK`~6ot7#J$D6+iKO=Hr1T7{WVu zSJ6HFk}u&^7(eSNldV(X<#=v_b|c@bnn&|RY^UErp;_ECs9YhvJnk{yf}cRD#m@idv9v#tZ;)AeuR3kfnu8x6RFPCzEmo@Jq^2{R#&3ZbhFqHH#MUPP$>n;jnp@ z{y{lnSpO4dVgR2zPqb|GLji-W%%%x;=0Ac%K0w&TUt%PCz9z!(&)GhumZ>3GKoo%`u*Nf6EE!#6Q z%Cr@@3;PQ7F7m^q3NW2w;-q7ZeKc5-NU)`XtUF=XV{P)G!}y&TJ~Rf_pJe6DiisQa7!=sK)Tx_iF+8O(Z*#RJU#T+R?@Q*w1ya{ z2c*@r6o~XMULTlUMD6N^voXq<#;j7_o*Ck2XVR{wqK@|%Jy0y$% zio|^WfFw4WU!*W1qU4rt6&(|z&-p+Nsqk^d+Vr&ohUiJwOlcN*pS>oQa^neJ<)Db6 z&lI&V-S@Zaf&Ml!>{JoZ(?l3*#KgUiNWO5v9suiW#|s(N?=A+emM!4@6PgKX1$cFO z*m>G#RO5xF9RZ)0|!n1{pHZ!DNk7GGs?sb44K4YffjjvYA;jz+iPE-jI^U<+MHO~KrCcJWAq@ZpFczv62 zwpxFvaurEbUuFOHbT2IZ5x6@r$KA5?P^l2s*M;ij#*nL|?XR7O-R&%7SqFE?TUfML zcij~v)E@7Li)1DAu9s~7k+^(|po{)Jd;5x;v~k&*Z*Jwp^bJ>o^^DB8Y*9B3ta9E=4?VTwHkV!^ST5d}7kRQ;sJ>95B-)+W0 zES(}hT*~yISb?_R{d+MM>98yL2?7cfka4f($V#QpYTgZ~z*|@l&O3L8LK>?oO3R1d zCT`;N+cRH?7rxPej~1lK>C)bCHg+ zVR>)p)7I(Tq?*3WGz|Wqu%@J}8R@Rus03jBQJcI8w0^k5sTi}%#eDaXU`)Ku$WtO- zjMC$2X4I`PFYE?q;u2_5EG4C0OpnH=Fd4I!NpIDH6JWUj;!gM)?{#97gN_bbS|tlas2& z>ORQBQJAd1hse^8UPZEFT6yo9XtSys{Z2G?7hT|8b{SPaOLpBQw`B5Xc{sLy2G(uM z8qe-R<`)(GEFY-4XDQKiy~9HD7G|Mj^_N`!54=cnh_F{wk*aq;2L}iL!~by7M-tb- zt-Js$&iRd+DyI}7RD~P#PId(^u$*J)Ju3CV?p-E&a*Ade4{H5#IY?Y+)fa`-zgN;_ znk^3+Y?$mwJfTwC2ymuWl==S^Z-T*U=Q5wpU)!g-&Fq3;+OeqD4RLkhG zJd7!S?svXb>CO>Os&zLzmzyj{v=9o2a5TdwShRMnRme~1j!l3h=>$2WO3+ST3JjCE zhe)|HMpHFYy>`B(;-yw_%;~2x1tN~=W3(_76ZhD>q7cD^-HG2M3t1yVE3F2mOgLCxDbkQZcn(q z*zrKEhGM1VCD-pong+9`cWJzKq8h~pi=&7yv;w_;MNp>v7yJrIW;Qz z!a}PRSz8|iA^8Jg+TMHMX9dj(glawdUH z^(jB5O$O83%NdHERFbCK2Bv2B!Gj0hTO=!QVFO?GSUKXC&ZUH2Q5m+T4MK1VrO{($ z9q4vyK1pxpRpp!Z<+sqg*aB$sXCcUC=2%%g0g-)NOpzs}+fz6-_)p8JTY3pHvh?gqwS7zu9{a*NYb8 znw{i6@#FOQ^T-vID}@bXA~S*Xk5tW7M%z9}2?{&OLg%pfcCrr->ufbmK}~`ooSs)1 zHfw&2WWx+|H^3mh@^o-HDi0-e5C>m@{j!Krpxg%dpS@Kn+TivRv3Q3DR z*6^k^`(`PeeCZj}o|oZsBPFMqwq&)q%2=w|#V1tI5C-=QU+{f2vMtIv%ps!%OfF!2 z!&q1;ogxx9IzHrJ+*zUx9O8^~X1~^wM^7tno}}bga&b)+Z|)gSJ-D=DO>})g3e(`x=%K5SVBUA2bpdkMIS9A?TghqXKm&OIUMt^}! zfGc^bA&ijTU({*k2%A!{MNgde39=pJ*)wgjOI2TS|G?6|T?0Yn0kKHidVjlk8l6Ri zH0L{KRdGYQpVISHi)-xlUkppeDQ~3SY(8&892`$PCZ1!?mw%Lg?t?|A%}pLLCB5jd zQ5bCeG&l}iR_fTa;;`c^`nkyNzB|@GhyS>_$bEh3l(l!XO8;CeEnj1FHkHNJMk&ZD zYHc%)EXVSpwY%9UM&SxDygSPlnmquvx+;o3F`q81UkYng-(WY_Dt~?YiJn7ojEw(k zd6J99w_u)%IHZAng||T%c!)lkmq(LWY89}Akd${*KAlUd!15Af?ynM#|0PAnMak)w zDZp=~uU1kZ_vC0OTYxk}UibNMbZ0p5e((^dMONaDcXy1vB{U*~DVM@Xaz{%(MhX6> z1>#m3@9C`QppxTov+EOXDo&++R33m=#3&_Y=ai3*$9>1wQE$RgA@BHu^zmMP>avtk zN}T2(#JsCM1~|08CA*=0v)UBt5ltX^zR^x#oh)la#09!LUNexn^on|t=4>Vsl6!A7 zY)HG?HFoZLG|FMr?ltEkd;cY7IHW{&*?|eNmCfz{@zSm+7QTpB3Nu$rGKRWRfd~Ns zVo2|EcvHaXnB)f)Qss~OG5+;8pegJ*j_Xf@KH(``E$iLxo12RMLO)xPkshy_FiYqf z>M!$$*|nvyzGBGd4k?hygXVYqm4_uJ&D8+Cqa3JyQKZ@NrKZ;$KPjKhXWLi zRz`NDfnP0C$=u_wLd*IZKV%>KqfcHl7)Un0_`2LYW^SXa6uFvR<(_r#h&b0mZ@)Z? z!!y6QkSu_fNq@&W;`u;O{J>sRQ!YpZcIKjQS*p>0hqicrSc_w5cFVY{uA`)Y-Bvzb zMrk9{Pl>C-Nx%LL@V7fFwJ*fd?+&>F(1U3MT9%y@C0;ll6BfFnpcwB}sMD6k>Zjbj zb@P2tntj=O?OtEmH79HqX&eU0=c}L94I+1&)i?0 zN@Q~yaC1kgGfV7Z?FGYod(1iI%G{qxHV&zMg&~CAQGQWb()iwCPNwqxocUs&*r=-# zntRpTRKDJK@$=NVkMv=}BkCuAKX z4w`p=`b-K=IO<~JV2{o(9l&YgM63k%*+J9JJX)01V%=SPrV`m%Y2Bg~q-sg_+ z!y<=8FD6a25=0jlT#ww?iFOMZMcO|Pg6koo z{REAMgFij7a!!%vu$S{vx+PV=VI2U5z4f6Xg#BMxc)s#oN;Q7Zlrz+Ba9DMpfs$4a z;;9|;Y~xWjMJg#$CH6*`490nz{JykP1+p+j+1?hMCHhv%K&h~f2wu(?3(%rM@W{y% zL{WqHlbP(jrbtdaYK#WwCG(rU0JIAf*NDJxG1DHO$li4(9~0soncoy@>hhT494D<~ zUz%&iP4TOkj2x{ajN0KSkOktW)P3CxSj-ljc+Uv3+1S@xetZ~2{q_(AgPt$Z6F#V9 z^Hbz`lJEzQ9sHQUv_LH_-a2DHoW(kYj?c6)A+n^5r*o@}3d6mO6K8L=Q+rWm zhi)tuth!N%rEPKTcR6k~{I(`Y+o^molJdnAmv1_j;C`tLjySfFp@hT-KGZ%|>jzFL z8Ee@r3+q1l7&gxy3a0X^&mY;>+m}_q7vf77ez$`_@8m>No&l^3Xy9 z$MR11{F}DQ0fgbb@nEJhp|h$IyX@=0lSwx@TUZmMTbu6m?MeK7QA2tHbzqE5JoC3M zJsGuR`-GivQ})X;rRakld;J($E1Jtkb#P`&Rh3KB1ewDb_vCyCag)6GJyKg1c9#hJ zC&e*wEUgrlo#K*AO;4AA%k~e@dR6P9L}s_P8ahv5{_pt0fk^_(f!;3vok_sine7X4 z{+Uj6^C5FN9bq2DZ8SVBD(B>(C?-rb7oNgrz8D|EVR4Wq#c8gG(XKK?-E?wLf}7xS z(2pqz)Jnu}Hl2GNH+!L@&yu?TnR}kkNOi`@$cB6^WrHKGRyHw#PM1hRMy|)dMTQIq zB{e}y&gynQv)_ruLwjU&g+X@!Iam=p;wk>S+b8fZ0adl5+R_@RMJ%gI^tX2UDx*X|!M1`ab6}Z_4HuJn_`E#kWnS4LIa82=BmzE61x2dfoKsZ<5EL+d@Y5;rDK9Ct&KagFiK7QIaI zpP}`FKM9V#cXu(ow`BKgmjohfzDxhHo=l{3Kr5fM&&4PbiZ{;CPDNsP!dS?@#hQ8k ze6;4!NN_oMgoCnkI^U*LCVQ#W#`qfPZUDX321`WZV!8XBdG`{rvlXPr8fNc>|5{J@ zgRXu*JaMz%~9?&!Lj4KwCM}^>G11XnLqxxV(QdxO7&tSIL zU=Iy(U;!0zKr1x9!3L_S_#QA-!v6(()i0NbbCsVY@XJ~j_m~Fw_MEwFR%zXl_ngoI#x5^CY$)b#H^WZ=BP@Qzgs?j z6mhq{OIqiml97OKQ;!*9lTfMbfhyz5X8@@k1*XZh&Tc=P4bPb^Ji3qqPu~Ch$>_d| z_m?Yad_&zYiE*QXlvBl8Ym-FSa^;sTs|ad#u!1rr5Nwke4)voBtx{CyB{FYWCoi;j zTL@I{x_1LhHe22#kTatve35}qmK*3T%-`ZYWPAlQ-tea-#OJ$fe{cHQezdpVtuoJK zp;IZr4R(|@4qu}s#wDctzxt?L@IFJ#U{l7=0yg|HERD7c&&m#-UDHD(`?ytq^P)JV zF~Tfs!tl*>RU-ZUFMG#SbNF2dEV1fs3wZG%EaTFhKF+PsB703*zg+2q=lx3A#PCw) za<5=zKDSnzwwjq1S%&O}P~lLprkolRbfj4sFaD-eq=44d5TDw$H0HjL#=_Y3Y-t zWPAH(q$V2%i`fUdqpIJe3ir)j3EOibw;!IDnykNAm4Y{y>$r5B+yZ)T77st}=kSlG z)_FJ@J)k*}XYicY7%BH|KP8sc6XGKhL_y{pP7c#K6y>|+BTQUsBm*?B3&!g_>;m&o zj#gQV9T4k$Cd?2vo%dM;lil%u)s)*#9;OTpF5ioCHk|xkA=*gDefGIzag2F=Kz{-Y zW>(Ce3`G(Jc{Uf(XqM>q)P$&%x@!#Fhy2LhegJ9jF;NQ(3mKUqTGp)HmV{#UO{ZLW zWn`E;ZG&Cc{A&4Jn12YH%Rhw8E&(7INh4`=2v#Y zHIE4h@i(VkZp~|EvP^;Or@?rxbkNk>XojK1uCtMDcM`j3plA zjsCahDu2t#b;nWq#sl2|8e!d9!DE}PR}FQglTVD%C@G{%v~={ce=on-K6Y@f|0>3YYZ9FN3#pcjcLzZUuZ+9yip>N8Xe3^^ z0%AbOtYVr&Rz$-FbJ@gvoN+D=MkY_SHQ|M|1=>|0goWZ)0Pl zMc~?TU`86-jLU_L`XPefh8fMsOqWS4dz#7DcM`--&zqv-n%X7@<#*Iy?BoNJCYKhv zFMPuX4t=gjR#2h*PQaG{1t>e9_^T?2KlF>-n}F=lM=6+dmWs z2W+$`pGWenWv?HR&Rpuq$=%>GP_gvP&)$e}13b$ob^jJS;k;iRDc+E`FSdEFWNLR- z82DB{K35=9uAHZKdJs0S`ybb{`9+R#ucs~098ZgrV@1{7^%18ZN>aIK-uC$}C)g8u zGKs3g`t)(sW$n+{qCkPy@=H(p{mb1=z2bO#%TkwuJN#p_ds@YFYF>k>UG40~u#gDi zY5R+E&m-WZ!2sXIV3j1H#9dH7{x^G~^0@`er?%EYxENr;$BO=m!_ooB_K4_Xe!*RB zGOP39Aa^cvNY@-41x1s`!T393P$s@(()sSy$H6Myvk3Zq*7LJW;d2ZnSwG_Ose=5A zN9Q+w)aeJ`=M7g@MT?9;)GVHwBde(_i8LsfyDe^)b0ZkC!Nd~O;73ykBvq#IM}yu& zC(7{na68LK07{tN@>oJvvi;5d{eF$;*zOFPpTj?6j0anpLN&|-``G6c`+=%jZ~CTM z4{ki9ipu#aeLk%#;%ioOK-J#LNnpyjCqeOoUI%bF_1<*ryH~#?dv0N6(KduZ%c{KB z$X4b7Z1>2O)>7V>C~I@cjJ69V10IvSa&J62@Mkqb4n3y)^f24-5us5^+bMQst37eM zSmyR(CQ-Qugc8Q_)bYTQg^Fz|CO&5VrnEkB)@RGh7Qza?t30VK%}%ET_NkytwB_=p2Oa~PQX~rj#Jy#sRhf5ri$%V` z{N=0MiYM!JSxWcDk{XI<4yg}aVPcEc}6)HB@&=ZUetmy~meCpP&cYkr#Y;{vOM@FGsKU)C9 zq_ac-$W>cU3r_U=S^Uw1g=YVRPoOJ=D_|`9p8Y3>Sc`|p_Hgx&v_qPz+>6le`6~~v zhJ%AsyzLkBzRY%i88t6N)D!rK*9?7w2^ijc7p>(T6FKCQh@AIsw#8+SMCBLzO2z{f z8`mPWr#O(t%k&HoZ^0my9SeDxC$vbDi*Pxi!XDVkAd~+9cO_fDGh*+RIo6?2Ilxt~C{4yKWLaCAH9X|51=Z5p@XQkx#;2~*Vt8295wa21T-s1L# zxgOmn7-Ad-Xz;$>7jFD-@V+(a#Z8oT>d!%{aUd~~HVvN~%>@p5J=$r<{^RYVC2o0b zOU+gKo~0-1K&@B4DRIwy0`MY>|8v2)yz|xK_P1g0goOom^VBatr-_G)H91BSsBUbn zm)-O3eqNSuXlF??nPa}9 zX9|=KRJ~V0<4b)yoTgH4Y$7D2DsDKtux#N$IA){v;W^f2SyI~8&LA{xKZLFA5c<0_ zpTU@-uZX^REEozhHf_0IZ-L{`O;iAUzr4Aq1@g|~JzPcZr8OjpwZwNMZ#>-eSJr!S zn@-m&Q>2#KJNPzb;ZI5NHE){LiqW{(ZLRc?Id|pzHy>o9B9MD1>zclVJEe#ihSVIX zp@BYZ*I)5w9%N0j0%|lnL&{Q`X)*f^d_o}}i&SQF^+`C|ZTh9EQvKNN=Wyj)8zGzi zvKHn^A51T%q%L_qc6|#i#Sz)wHPM7Myo7-0XCaUzxHG}MC*bD%Jj1=?A!4R~e+WVL%Pgh4+9Az-C$HM^Zn+_VXkUG0{8V0^`6S09sDQQK?@e7r+e$Bl>3xF9D zhV-~l6|K5%uKH50*nNI3HlJ`WYjv#6dsbE(@hIU~TtD3SL2VGtLn$JK-g(LiC(nekI{f3bp9IjWe)*wko+cC|=X+NpeKWqMOZRSb zYlyRJ7~x0FgruZI$vh51-viWC<9RyOvDGJcn-MZ?mwEB-uAM;~H_B~i{D-u|=_#z9 zGJIg}owUqRjE->gDrv<<_lafBX2`=xj@xHK-iJ(QTS{j>EG`|xlkU-4vf?L(^WBT~ z2ix+l&L;aMYNr~!PrJJuJpJh(OOr|mXt`ay9d@%Qd}a5fnU7D}I`l*|mNG5DJ$Q~Z zSVD3pcStB<5CK=qA6jzNb&hh8m7i?*3l2BG)Hs;gZBNR(H_IUfFP(kUKT~#``=ohe zb<^#<@U!9bYb8kG^yD?$PoyYJ*c!}&Ewl2x;`k7z(n_xoVq{Mij;;s{7rix5cC*$M z-(GS(o#~`Vh72!3+WdY^rV%nMJc-vcSolx$ayR>`7^2|&*-_J%UBas49(NBRv^viP z=s_*ctcWlc#QpP&txm+h)0@=NAiw zSD2~n2uTLNrvdfr6|BuAVT3H;`ewrrWt1DnLSa<>3RU);+;AFR4e|3rM{9kzg@XS)YxDK}Y2Gu#l`YJQL2}|0eXi+rJ+LpS`lGUXe8X z843PY1n;KB{#PWEA`-Mb0%G(eRTI=p$tGNM z?PovMG`o0`$tynBOfyM)-rl(c?Y(a<26vSX-m&Rw{4DjJGE#mGswSl8k(K5!yn?bDf_F zA#l<3l9Ccbo2c(WB>o1Bxo=RgUV2EyGE5n!K5#jo1`E>y>TS9T<1SsmgHFLR`Ok1e zfA^kW5&Ofwrv!kY(R}*7b|%zyFO=;LZ5fm-L6p7~<&##sJ0_OdiiKykS8Hiw9Cqj5 zXXMQ?>YHuhFw_}qlX_RTec~TN)HE+kKp)e8@&1^>bGwC#0jHOB@zsC^v&9#=-0j;1 zpZVL=rPI@;`Sc@<9EL-Ar+d>rox|yIx~T-VV(dg-ETcIG^% z@FS34t0=u;crfUg5qD)kbbTdMcd2Y^j?fPatN1iIcg?y#HRD&wVc z_+Cb+S$U#1{W9eGFpY1K&!D%bC4nbi-OBD>2BK3OqnbxPoObZIm`t3;s`Sm)62gB_ z9lzZ42?ShLeY(DlP_^WZv!H{hSr!stT2z|C)q2i595jHB31@iSTk8pfS`uPK>4)a- zb~ghdV3rdR>96ceg+Co43bo$rAK#jYw)&dVH3lZ`xmwMNZkIShrL0l*{q646;|_$u z5sj)8uPPc%^Ra7^#W75BcFY9eVoLw6^kA>mi)*+?7oG*O8DOpwTtEcTrt=rg1~sjQ z0KO)V^Kr6vcO{8>Be?*k^?B@^-QX8(C;OS{8drq23F&>bUw8H^(s|~m7Au?7Z}VY> z!;aq;sWjZz)O!jQ`<&nDCRghh$zbGJEL3gqg%BSs@7;MTTZR#w9(5ze%PVjMQj~G5 z9QCeqzHsh~qi@e9qJB6#M~n|vLk%^$vKTmKk}s}ZC}wn@m6qZ>3p0*;S}rl0_Pq0} z)UGDvrkRkl$6;GPJe=zlJ~SND$Eyb~=_6C%fBtn?@wc*iM>iEG_9%)7mleZj?-;*l z;E}rRVYg6Av%0xCc7CO3obT}ChA(fQ(>EaEF2Z$a^Bj{Grg<}rIX6IyI$42&y}n2| z!Na}N^XbmV;<#Nng!j&TrU@C^>Z&+;pXYu1*dRVW<{w=XgoUzvll?tbI4a3!!Y_iyN|NXu}ebcsqSklB+fNL;v#NwW~fE>wmudS1oBw=M$E{Dxc1!X_ruGv+!p!Iq8rJ1F*e2^ao98cy?i{uT{(9Gbq?(Z?Z})(v0@lzs*E+$+uxwd z`x^r)Hl;SPzCq2#;y%*jGq%o$PRH`br?snw|1T>EeV-Oi#*W=$B>Z2K2W=uN{E3ti z62INwHn-BF{+tJ!>9;>>s@Pwb9j@v6!7!#&rk1AG_V<1-Gtx~KWO+=@s!Akss{Lc2 z`F%0|Wd`E~#v37sT=$JhnGp_2v<9ZLXZF!S#atEa%SrtJPeIe{9kZ{Zer|suNg1p^ z?l#NoMz-liF7R=3zx|$4TygiLq1i{gu5uuVNMKZ*{w=g_@~@HnNbJ2pXpP}`<=$=C zlboJPzjJ$Vb;C8lN5L4rSi2uvHbQ0hbAn2*dwGij!>>JbFof5M>r|jj9nJ1K<9k=O ztLa9=hQT`9A`7cN@S)q5vwoOR4}#7mINvAT$+Ca=3QdaRp1p@oiu3#X7uN*MR-?Y! zjFtpk#={0W!(Q+p589{t46Dtbe)qft6}EGb%coDgl?Jzsas#tLP;pCrkLMD2`n(Rj zK)|KZuu(@9eJ^8K!_KgpFhHsvQub&BX1WSLRu!7n++P&E=Brt<$!_VK$~Wyrna2+1 zH9~wb+zN=`WAl_qcvk;~@h02X2TS+fuQQN(nDE$akQxDeA6K_ZL0kr?<*E8qHy?7U zNCejIth6*>|FUcf)UfR`wk;;Y?D;@IfJH=fwDPl3N4KkR^lM4}i3sVx(Zo2GTwQM& z;mniye8v7%GsyCm5a3L;uG?&Sz7P_0uX3c$-n=+fLmPqDwYW|E#Qe0)wHB>HG{d@$ zE4??5fYUXcoIu-EFCM@tqXxQ9-3W_uB?c1ThYgX(%cFmmnhvK|cPiQU>AH6qPCrVo z+*n`s505C(#AaARUACv@Jpw4duj009eU7&6K>h?!C9o0u;{CsZC&h{yVEo&>UH_&Ec^NameRI$F{Z~J{w$U@mbqj180GHLrB3um zi$ozZGBHozd26j*#h#KANKTuho@LYQ8=d~f+RSj8>AuCR*KDbI`TOj4pC;~yIlH&K z1CW6uyNa>s*Sa^CBeL}O;r0Epn^+$&E}{QVkEl!g?tB;Zl7BTJ9r#13(dP?ym7|_V zM36>}JSltfZ7#(@ksuc2;S`&+s!|)Wi^2J=DDKF^94_KDYsz$jSP2DS9(-DKV7s-l zitXNg`R44}?%I6O`a;lyj|zxxDjJn#ajOd?RXz4%gMaKK0ahc&WKRy!Us@k;52-ta#zqd=_7t99Vy!O**YiUa(V0i@v-z ze!F_38pC^|e|Y2EkkKq?IOzT(z)4XZbpciYmhO7ID`A0aq{C^D8nBB=?gKw<{|bfp zGAtx;?3D#nT>T}akV_%mqbMO_RjeK5Y2B#W5$82|yNeiH<*xkASGQ6Ioh15ti4p_W zs!G|iw#G&vN5TTTkbxMJT6>^z_e@_}}SZ3!ge;$8Xelbu1tEmgz>;g_)JqZ7k?rJMq-u|wpUczw5 zantGKmF`nl{p@t`OQ58&PGA4WqK`DzX;P$O&7gD|hz1~NMOAUJ@GBPDr1O4J7*69A z*Xa|AIpxquAPc#z?cnHnlbfeXO=?|ow<`X)jyw&hu1}V z&GMGQ0`RVlXp1!Fh9p}JfStAoVmoyUuMl%QRa#Tg&i5|ugk#C|ar(A6$ziJ6?x>1% znylZLTGG(Sp+5>d7R5caf<$Qv9u*i_TO1v@W#HfhA^> z22#q!MM|1UF&uyHmUykCdC`IMRMGf^ik7DCAwg`BqJ?n?9Tim%Cyebbt%50sfYH#C zgQTsV^&d_H)k@|MG)Rk%qj>R3!m)9rWBRJjYx*QVFYoo-o(vrq*9uw8LB@#RZx`m* zLv9(Cdt80Fy;JmGwjb3gFDB-npR};Q{s77yoejauslsaQme7i?{Xqr4jGx$Rt6atC zZ^(aMkC)A_F(+JD?H+c^3BE~;_~JE@U^@UoKGC1U@|6znJT^Z(GcVB@|J>8 z+*&doR#gpZh^{4TBg9>oKn@?KhgRagYYfI|(WvJtD+Wzge~ZancP*S0TLJ@U*(l%r z>O8bPWPgDICvzpX9s$D9&+i&^+9B^LZk;Jg8yu14<}iUsR2?Sl6dnmKHIKEaF5soS zpsew!z~#T^c^Pcp1C+a_d%Q-WvXyv|$XT+ylCaI2ahb3my`Cm^#08#Qs`CRfhv?Hc zT%})j|FXY6U-}lnI#+9!$VSPJjTi1)-st#s?LfBB)avcZA4dFsnk`rmEs~!b%{_WDmSn;daduNL&(iA zro?*7#Y_{XE>~ys2Z1p*j!-Z4GeBx2PL}X?OAb(Kho)lhJ8J#c9EPyr)4ah%o@P(6 zLzOw~aKpFCs0yz{;C&qC%J4ZRDC8g0YVpFlXJ4A-S-CE%^LPJ2cq2kDUk{VhYcNU$ zdg?8EUtf9fn18pJUzpqu^&wGxJ?q*$hjy}(v=R5dmr2nbh2efD@6>&v3Cnm9Dxx@k8rv~?Y$dAeRPgPW|p4VFeM)cNa zGTmKn(_8g87}uo>RTgfIrKYMxSP7*UeS8lF55ta~6s6ohOov#KCO{Yruj72@rI)lQ zU>XC;Osq~ZE^;d?xn?*^)EytfzCUJ;RyiJMpAI(kaJf}EoG$G@p$sf2%T(-*gas?6 zCM)aMgW?& z#N|Q!J8P{k{+F|CG1q4Bp2qEC^V;FXSVFtBA;Tf-=I(25w~0-hADB;>0M>Y{*XdsP z*7_1C^>TRmY-Si*sapxfm>T{`CZi(?+jVS zSscsmMrr#DWYof{u%yYfFNd6QdS!93d_mv{KZ`jh)^-lqY-3s)M1bHS*)!qfurPL@ z_7CA}k>quHlb2X*A3^W(zE;sIJwX9?Wug z{&BNGo2N2`2?OB8Ry0Jo@DJLu%Xp1$0JrV1@>&qlzTDXwOK#p8zHC~O-R|us-#j8i zVjQ?FO{I|9O~YwRyO$o@jb2$r+@hh4Wkj)L#ys6AZmtmQ(5rudWKm!~NwD}WiP`z@ zal-EoAG@(1y7X>U2hY=S-T$$-*b$Su%m_&TQL;4mbz_zL))Rf9>RCvLP53deiX;2y z)*_z|$-lke7$uVbZmZ4qrrQ;hiHO0Jr=SOP_VUOtD7H})N%kkYK^vt#)DON&EqUbW zy^IV@dHEjaL)(d6%vEoDehu;gaxJAo%`sXOWIb)%MbJ9xXss71`N9#&*xWfoc}-bW z2z?b_hDDVVf2e{4TFdm7|RF3osWxVL5k_dvUax~uHv)i zx4{S|hyT+hw$=x%jv`h|;?U!|DOg532cQrUu`vHEJyW~pyG~zlRX(`EEl<*a(!Oh| zCYPe;H8H_*>xaGXwbVQlh1JAHg3^q8gFS|wNgMRX%@F_hixHO83`~d)zKGB@-`~lp zo+z7-vz6{jPq|fkF49&!*(xqOyjxhN5C&n&E(<(ZXUkAgmyrp#=iC}o%~5gVYq8oo zutcI(RQN+6J@Za_0WGUsqp|y0U0vWyh8;T({0xqmG*^}Pixmj zdqL8F8}SJe{!#VksEdCL;;-MAAWv5G3rwG7;s0)rw;`pR&E|PQ zAsSkFd5iveT>KT`nFAyKFS9#i%y8#^-xG0_H0OH9)L+iNdD*ik!=Sn!6keiO-bN^% z@i{zm$1F0yKj#kwu2Y7k!0llJ!XM(qgAHV5f`riX2EgNKjPxI0w*7M2Rqd~_{h+Hi zzoppev^cJDy&<@T^Qkg?>!w76y)w~E@viRV$le&=A@6xLK2WvTeUV4sid1tJNP-{#-;tpE93StPl%O5lLn1qz$N~}*#cbk(;AYB z;?UC|6JiXq;p;Y@07k8gFVp?_Ju-8)w<6V_%#Z%JX$G^hfefS*8`%c{4}+^_Rh|jW z!`yP#tWzbB_s-S_wc7c1{=AujdAztRPi%~d8Ik}ti*X)B!K*Gy?);eh1*R*;3YO~9 zg_4Ni_tydDh+RSd;q2$HL0q{^BsV;l4zZM)>u&p|u;eve9!!OE_UclVJKe?gm7C>O z8S!b%&jHsoAr1&%N3PRZ@xrR|D+gm=fq9IsyPf_n9xL$-^2eX5xH@{SPP7kP;fHDW zmq)Z+xu^ewzjnX&Ja5s!J|a_z4_I42QjWXo*WmtOtLnU7Bv{27|0 zeE8@x_hGTNzIYh7YwTdIf&wwZUi*jB^3m=1qhh?nu0Z?APbb zwHwb0>M}@FgA=I;_de+?9yvy{%N)78xgW4|?guCjHmqBA9-xG!f%T4qEvI;vR+DQ& zuD9Tj-!AQ6=Y$y>G~)QJ4V3fs9z0H@(w`relg23nIe1|Kw&B9X#jdy#{@eI6@x}h7Rm2z1I0ZriUYFQy zZ}Z*wBE=7lHHWMQN@|e_0l;MBj)2?r*;I=k8WUFk)w`!TxjXM<3Z{o}lromSK%#Oq zkH2)yN|rFeDlEy#IAEkD0Biw{QpE5-zxWm=h}2p$L&+wIz-KnIYuifcsTh8ASPpQ=_Q1GvN#itKTGOS zt_s|yXJhkeQORO~tco`QE^!pf(T=R=PJIPG?Xe1JT{QZ%PB*bp(d9h&w2ugPbeasS zo5$3n6HHHzj#Qgj>n#KOB1!W~nhrDJo*p`<=f}Cijg?Oxd-#^0HYCks1)3*l(AAa6 z_0D}evlKd#MH<(QWXES18~-`S5xmzV13=izkaWu)`%`Ls`HOz8it^(=4?3EevqmYv zIo1$^=!WB$0t-+6asm8*p~-+u z+3wYJGvxUAT(Lpw=Jpc9kuLq1Y$#fT0!T_*+)4XLT~jb|LpeHhcu8sf_WvpF+QXqt z+c;LWw8jM@FR-MzlQzWHme=X&qweeUPI@B6v$-|xQOcR-X|lxb~FJI7?_ zhrMn5&jJaNG}#yF8%1?aI4}}gQSKpjtJ}FQE7$#?j7-*Bqw5Z-)Wcy3aS1-3hRL$; z_EAS{^XhUVs=MAogY73N&SIm^y5krXxHbEs^+_;nFf>D`rxjM0GWoXH?<~l|0k>@++QJ zF88VAc4}{Xqm>IEDq-n7LJh<|@EWugkz;Sl{$Q-D`mtv$xDOGsi(Q*McjAPOnyXF1)+q0h>@y?Q%~m&| z*;Vz+ZQ4bc7f}V)$&#U+kNPiE$(WxDDfK?<@n?XdOu=R6rAf+^tIMq&izBGYi$z8~ zxl;=(@1*7{3O?6Mu<`nlUUH1%aJ6gZ9iuCOV*|KDqsR6g|9Wur@{5XpD}S~#q1UTF zFx_u<1^2CHWpZE?#tb%)?pTZxy-uOvYfld@#E;(#*12tVg9Au}ssEN7eX9Rrj6+uZ zs5P*WYalO9@yH4+m#i3;4sSZJN&eQQwT$j>sUaUxmw!&gY$Fifw_C6EF(IjyJhNWCgJz&zM|ZJLZQ`e7g?m!o`+a&1J<-NA z`KDnp^o~%=D6ALx&h@}@-V{X^9mA!_;?lpd`%Vow zNqV{Xwb6oE2fE2W(*EzX`ICm+&rBh5L~K; zEKIJdR5txZP58Vl5Z;~#jXoq?7I;~OR}R36iB5k2GKY*vpN}UOEe}LcZpe!Ce)%J4 zU8X#KQ9w2Gi+dFcYNOuv`Yapby_gS8`|!#xy1(OpvOvrh$4K=f4x`| z?%(kHH~`8j&^c5eP8YNV0jZ`ryAbh{)c(PwqNzaflqdY+3x=2O^496_AG{!5+n=++ z^Eh|G9I&y6W2`r{1>k3+BM1|iW;yUd1fKZoD$tPB<7vT9KturoOT5?PsLcb}I2s() z1RCf-Ap#AuWdQk#PMYVhK}f_36o3Yn&jbaaFb3$9BXjrfm{MNK;=vF%hrt>^+?Vsp0QG9mJeeCL4e z0~bJ9hwTdEMhwpQGz^SLNQ!Y&O3rLHbl^X1qa|Ln2SYET!N?9pDG{E50th*b6YuF; z=>qki79)zX?GDP5!5fjvbB!5qq!nZNw~3xml>|)Y%bI2qBA?-4U0gQhyH+%qL+Wtj zSwLO22ZHXEs;#W9}*{bH^dwwzneK$w|eB{@0`XPCgScs&44+7egX5pwNuR(=tKsjv0FN=;$YX{pHzNtg*XgY_8O8 zVtOJ*-=rv!Xu%~v@`S~z{D)~8w=0<1hR*JY0Q3y17^%1Y5~0la?gPG5e7gE1ZRMiU zW#v71o>ja?i^avoAvHAnl80$QH`-=g-Ablp8tBE?8i@`|YilZBHVM_cch)U&1;TjJ z`W2U(5{i!3P(%e}{A@vGm!J9}fXvKUl+LNfpWnv!Y9bNBaeX&!>GcPj7Ys)J`I>j5 zbpQ93?#UW?wW}%NrYa6(U}5Cbd(jd*F%*S3sRZ|{>1jmuwcPRgRJ(`FWE2Wgyp3|- zv!v#{SHsjxZyi**g0Bx6-%P4>oUuQ?2}^gSD16$?kwfVMn?%Q+@43n`&uXJ1O~mTl zwuZs)=vqO>-2!CG1_M?aboz|qx|s^A0i#rdGWi|_9M=LkZilLvfR$2IhB4HXPk|3P z^ADyRF+c`Em7@h=>prmd0#9!NZ}s3X$b$^>l_b}th-n}mrhPTTp9Q3HDgf-lq=^c; zV^XB@rqWXH?hx#42bh?ZlnN6_*#RBw4pj;IXI|a{VI;>^3VcePw;&jtc<;YG9UKgY z;UYYA7X%+OpaZmN3!U^p4PKlha%wcM84-+%Np7Ir=xrz2mUYLKTlT1IFtA?#tlnb1yca)Z>*l9YP0r8>bc_agLSCn|@zv`w;kYq5GOlqja%diFq{a<92 zfLtk7^q1|FjV*pre{padding:0}
Table of Contents
- +
+
+
+

Internals/Hacking

+
+
-

The Problem

+

The Problem

As a service-oriented infrastructure grows, testing and managing/driving @@ -579,7 +596,7 @@ can occur is difficult.

-

The Solution

+

The Solution

DeployDB is a tool to provide a single source of truth for artifact-based @@ -606,7 +623,7 @@ provided by other tools (e.g. Jenkins, Rundeck).

-

Terminology

+

Terminology

    @@ -640,7 +657,7 @@ of the "auth.war", "puppet-mysql", "puppet-jetty" artifacts)

-

Goals/Requirements

+

Goals/Requirements

    @@ -701,7 +718,7 @@ configuration management tools (e.g. Chef, Puppet)

-

Use-cases/questions

+

Use-cases/questions

    @@ -733,7 +750,7 @@ the entire environment doesn’t have to be promoted together

-

An awful diagram

+

An awful diagram

@@ -759,7 +776,7 @@ the entire environment doesn’t have to be promoted together

diff --git a/docs/html5/internals.html b/docs/html5/internals.html index 2a630ef..2bdae1c 100644 --- a/docs/html5/internals.html +++ b/docs/html5/internals.html @@ -540,7 +540,7 @@ components within the conceptual "DeployDB box."

-

Web hooks

+

Web hooks

"Web hooks" in this section technically covers "web hooks" but also public APIs @@ -550,10 +550,10 @@ system.

-

Events

+

Events

-

Notifications

+

Notifications

Outgoing events, e.g. webhooks, which should be invoked every time the internal DeployDB state machine changes.

@@ -576,7 +576,7 @@ internal DeployDB state machine changes.

-

Triggers

+

Triggers

Inbound events, there’s a large symmetry between Notifications and Triggers. These would be coming from external sources, such as Jenkins, which @@ -600,7 +600,7 @@ push or change the internal DeployDB state machine.

-

Configuring Webhooks

+

Configuring Webhooks

Webhooks can be configured at two levels, globally and per-environment. The reason for this distinction is to make it easier to drive behaviors in @@ -627,7 +627,7 @@ Rundeck-Integ, Rundeck-Prod).

-

Queueing

+

Queueing

Queueing is largely required to ensure the delivery of Notifications and @@ -653,7 +653,7 @@ allow queueing to be backed by different queue providers, e.g.:

-

Data storage

+

Data storage

The data storage layer is what is responsible for persisting runtime @@ -662,7 +662,7 @@ information into a database. This should be abstracted through a JDBC connector.

-

Environments/Pipelines/Promotions

+

Environments/Pipelines/Promotions

Current thinking: if pipelines are defined in "configuration" as are @@ -674,7 +674,7 @@ be in configuration but rather registered via an API.

something and allow DeployDB to register artifacts from the same place on disk

-

Environments

+

Environments

environments/integ.yml
@@ -692,7 +692,7 @@ something and allow DeployDB to register artifacts from the same place on disk
-

Pipelines

+

Pipelines

pipelines/devtoprod.yml
@@ -717,7 +717,7 @@ validated. E.g. the "FoaS" Service much execute its Promotions between
-

Services

+

Services

services/foas.yml
@@ -796,7 +796,7 @@ version to successfully complete pipeline)

-

Service Defaults

+

Service Defaults

DeployDB should support a special file called _defaults.yml which can contain default Artifacts which can be considered part of every Service. This might @@ -814,7 +814,7 @@ Artifacts which should trigger Deployments for the given Services..

-

Promotions

+

Promotions

promotions/jenkins-smoke.yml
@@ -863,7 +863,7 @@ going to need to present a button to a user to click

-

Flow Diagram

+

Flow Diagram

initiator        deployDb            deployer1        deployer2       tester
diff --git a/docs/html5/models/artifact.html b/docs/html5/models/artifact.html
index 7dc5b37..bc69aaf 100644
--- a/docs/html5/models/artifact.html
+++ b/docs/html5/models/artifact.html
@@ -526,18 +526,18 @@ that should be deployed.

-

Properties

+

Properties

-

Internal identifier

+

Internal identifier

-

Group

+

Group

-

Name

+

Name

diff --git a/docs/html5/running.html b/docs/html5/running.html index 4f52109..c98b282 100644 --- a/docs/html5/running.html +++ b/docs/html5/running.html @@ -511,7 +511,7 @@ table.CodeRay td.code>pre{padding:0}
-

Running The Application

+

Running The Application

To test the example application on localhost run the following commands.

diff --git a/docs/html5/webui.html b/docs/html5/webui.html new file mode 100644 index 0000000..9bdf192 --- /dev/null +++ b/docs/html5/webui.html @@ -0,0 +1,553 @@ + + + + + + + +#DeployDB Web UI Design + + + + + + +
+
+
+
+

Below is a rough outline of what a few of the key DeployDB web-based views +should entail.

+
+
+
+
+

Developer View

+
+
+

Goal: Provide quick feedback to the status of a particularly versioned +Artifact as it progress through its deployment pipeline

+
+
+
+
+

Manager View

+
+
+

Goal: Provide an overview of which Services, composed of which Artifacts, are +deployed into the available Environments

+
+
+
+Manager View +
+
+
+
+
+ + + \ No newline at end of file diff --git a/docs/html5/workflow.html b/docs/html5/workflow.html index 3e552ea..82276f4 100644 --- a/docs/html5/workflow.html +++ b/docs/html5/workflow.html @@ -558,7 +558,7 @@ table.CodeRay td.code>pre{padding:0}
-

Trigger: Artifact create:

+

Trigger: Artifact create:

    @@ -629,7 +629,7 @@ table.CodeRay td.code>pre{padding:0}
-

Trigger: Deployment started:

+

Trigger: Deployment started:

    @@ -657,7 +657,7 @@ table.CodeRay td.code>pre{padding:0}
-

Trigger: Deployment completed:

+

Trigger: Deployment completed:

    @@ -685,7 +685,7 @@ table.CodeRay td.code>pre{padding:0}
-

Trigger: Promotion completed:

+

Trigger: Promotion completed:

    diff --git a/src/asciidoc/images/webui-20150324-managerview.png b/src/asciidoc/images/webui-20150324-managerview.png new file mode 100644 index 0000000000000000000000000000000000000000..8d65adf2306b6ef318347a83c51eb78a29a4f5af GIT binary patch literal 58671 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 * link:restapi/index.html[REST API documentation] * link:groovydoc/index.html[Groovydocs] -* link:workflow.html[DeployDB WorkFlow] +* <> +* <> +* <> + --- diff --git a/src/asciidoc/webui.ad b/src/asciidoc/webui.ad new file mode 100644 index 0000000..a815435 --- /dev/null +++ b/src/asciidoc/webui.ad @@ -0,0 +1,22 @@ += #DeployDB Web UI Design + +Below is a rough outline of what a few of the key DeployDB web-based views +should entail. + + +== Developer View + +*Goal:* Provide quick feedback to the status of a particularly versioned +Artifact as it progress through its deployment pipeline + +== Manager View + + +*Goal:* Provide an overview of which Services, composed of which Artifacts, are +deployed into the available Environments + + +image::images/webui-20150324-managerview.png[Manager View] + + +