From 12e32224c17253f9616cd05d0bce806881fa8db9 Mon Sep 17 00:00:00 2001 From: Achilleas Pipinellis Date: Wed, 6 Jan 2016 20:05:22 +0100 Subject: [PATCH] Add documentation on enabling/disabling GitLab CI [ci skip] --- doc/README.md | 1 + doc/ci/README.md | 1 + doc/ci/enable_or_disable_ci.md | 70 +++++++++++++++++++++++++++++++ doc/ci/img/features_settings.png | Bin 0 -> 18691 bytes 4 files changed, 72 insertions(+) create mode 100644 doc/ci/enable_or_disable_ci.md create mode 100644 doc/ci/img/features_settings.png diff --git a/doc/README.md b/doc/README.md index f4553a899d..25fe3abcb9 100644 --- a/doc/README.md +++ b/doc/README.md @@ -19,6 +19,7 @@ ## CI Documentation - [Quick Start](ci/quick_start/README.md) +- [Enable or disable GitLab CI](ci/enable_or_disable_ci.md) - [Configuring project (.gitlab-ci.yml)](ci/yaml/README.md) - [Configuring runner](ci/runners/README.md) - [Configuring deployment](ci/deployment/README.md) diff --git a/doc/ci/README.md b/doc/ci/README.md index a1f5513d88..4cdd2e1ad3 100644 --- a/doc/ci/README.md +++ b/doc/ci/README.md @@ -3,6 +3,7 @@ ### User documentation * [Quick Start](quick_start/README.md) +* [Enable or disable GitLab CI](enable_or_disable_ci.md) * [Configuring project (.gitlab-ci.yml)](yaml/README.md) * [Configuring runner](runners/README.md) * [Configuring deployment](deployment/README.md) diff --git a/doc/ci/enable_or_disable_ci.md b/doc/ci/enable_or_disable_ci.md new file mode 100644 index 0000000000..2803bb5f34 --- /dev/null +++ b/doc/ci/enable_or_disable_ci.md @@ -0,0 +1,70 @@ +## Enable or disable GitLab CI + +_To effectively use GitLab CI, you need a valid [`.gitlab-ci.yml`](yaml/README.md) +file present at the root directory of your project and a +[runner](runners/README.md) properly set up. You can read our +[quick start guide](quick_start/README.md) to get you started._ + +If you are using an external CI server like Jenkins or Drone CI, it is advised +to disable GitLab CI in order to not have any conflicts with the commits status +API. + +--- + +As of GitLab 8.2, GitLab CI is mainly exposed via the `/builds` page of a +project. Disabling GitLab CI in a project does not delete any previous builds. +In fact, the `/builds` page can still be accessed, although it's hidden from +the left sidebar menu. + +GitLab CI is enabled by default on new installations and can be disabled either +individually under each project's settings, or site wide by modifying the +settings in `gitlab.yml` and `gitlab.rb` for source and Omnibus installations +respectively. + +### Per project user setting + +The setting to enable or disable GitLab CI can be found with the name **Builds** +under the **Features** area of a project's settings along with **Issues**, +**Merge Requests**, **Wiki** and **Snippets**. Select or deselect the checkbox +and hit **Save** for the settings to take effect. + +![Features settings](img/features_settings.png) + +--- + +### Site wide administrator setting + +You can disable GitLab CI site wide, by modifying the settings in `gitlab.yml` +and `gitlab.rb` for source and Omnibus installations respectively. + +Two things to note. + +1. Disabling GitLab CI, will affect only newly created projects. Projects that + had it enabled prior this modification, will work as before. +1. Even if you disable GitLab CI, users will still be able to enable it in the + project's settings. + +--- + +For installations from source, open `gitlab.yml` with your editor and set +`builds` to `false`: + +```yaml +## Default project features settings +default_projects_features: + issues: true + merge_requests: true + wiki: true + snippets: false + builds: false +``` + +Save the file and restart GitLab: `sudo service gitlab restart`. + +For Omnibus installations, edit `/etc/gitlab/gitlab.rb` and add the line: + +``` +gitlab-rails['gitlab_default_projects_features_builds'] = false +``` + +Save the file and reconfigure GitLab: `sudo gitlab-ctl reconfigure`. diff --git a/doc/ci/img/features_settings.png b/doc/ci/img/features_settings.png new file mode 100644 index 0000000000000000000000000000000000000000..17aba5d14d89e3dbd5c3765859853d3646847c1b GIT binary patch literal 18691 zcmd_SXH*mDx<49qKn1~y2#Abh1w=%ebg`k*yAT2*(i4!9(1Rl)3IZw;dK2jeLJN>k z6a=Jq5(o(@Qj>smLMZo*GyClQKX;#X&RX}wy=UEgk!1qO+n)E=p1d&7)8gY1=7B&U ze0Of&FoHmKLLrbHulI0+|1q*gsY4*YL+;$rH1SPlQvJ-2kV3ZSM@thEWM%i?_w0PQ z#X5V|@WzcBpQYRkGd~|&-P}7uJvDq5a&F!X_LU!^0c)Uy4vN0EY{Nk_2G%R%wROj!E1?s36m!@feC$`%yLR&*z=NOOT_f*=K%O74H=;8wJ9x!p~ZQe;Z*a@#QYcK5%X4ec{uEQLc+gx`{ ziuPZ2?hCbm!4Ppu!L|Lh*7tDlJJjz=TbC>z4JLjVVDljSgBPWt9Wm$hb+?|}#J4L| zHFVHPMKS8Byjg-BKZ0FSiaczQaMJbYw3OKH-t2?pUpw%9C_#B0JUUb|?QparN z09#!O%>L2^*aF48#ld4q=7;kD;`RMcG-F=q7YKvr+EQb6Yi3wB7tTgAqG z$F7iJD?_D@SWKh@yfMK0=H+HD`XC|(lj_`zoG!c*8#ejp4#-cp=>=St=B(|vACtPF zvkO|$CloD)syyNb(vd|bVc3V!IfV7s7A4-He6Ylv+4{}86MNL$!R~RKTENMBubn4a zUB7NORYKr3+|@b&%RR6}$!NeMZ`-9e>3`8yhr@gi)O5)lqog?6z<`v*oyHEudTc+9Yi-?)z~^Yv6LYQ} zb#2hssE~x8@luUGF;M2GAF?I?(K>?<%w`~%&Dpncl=1!tK?mS<$~qATtNCz>a*>vRIaCl)kNEB`&?9}s|M2^?ur_W$@N{2|`gUQSnJTqf-D2$^suiE62(Twq}br0Ovv)vO#*mDq$>J9X9t>OLWb-VLM5a$W7HRG7R!<2MyI zZJ(1DEvx(SC$QTdneOD?%-{R7ax|AMwWMzO{}yt+>r=1sS5sQo`a`l=$>DSQL(Bas zq*PpN`}~y50e|)Q)XPPh3pTo`E_!K76c?et-dMnbQy?I}%8${%mY*B{RbA?zwxw@v zvj0);bhdSp6x|h+l$5Y%Ejfitc`x-j_~+ms@Es7yjpsNn2;{)Y`lDd`KIPP(|GiKA zmiys@Tw`OSLtnP;9bHQ;`cBAI^3I*-2VHdjagTufE`LV*7)FKZ_R;7H$upGfP@}`DeC|Ww5Mb za7G?B=uLO+4v4507|In}ZP-(vv;2w`p6qynYuxr;OWldBdLg$jg!Q^@=M&8HIs}no zP(c?Bi`37a^Lfg5D@#y1VR2IX`sA5IcRD;M-P153+=kwMaY<0cNB|%rc$BX_@TN&lisj>SwCu4oFG}m_T1jiK(L--|VJ>)#hk$g-egW z=a2hgv$rl>q}i{pw3W;isJPSd%#6iDd!Z^mOpmx1DXp__!)8Sw-5yV+et+!KKDam& zHZk!y+A^|>u<)raDUnK19`D%?ig@-T?bpn~zKyW`1-mBY6%+`crh77liB@p3GIIT8 zkQ%rMK921hR)nP6fu(*--mwt5D%l=cwx5d2A|6m#PsS1m%B7wImR@t<>%U+Feo* zddDvJ$;2I0=OrQ*9MJ@#fWTQvl?qdG@6}b0!wZanfYn*Wjt=Q|X31r*oN86?QOM&? zO|Ud;)JXCpcDA^PTDR&5F5mcsi+{$_JJHXyqF{Ut^iiPpmEQX+I6u$X4K9^R*be96 zr6Iibr4_dukqt)atu3OnG>=Mfh3!R%{WbEdNAzFqhE&^dHYqrq>6x4#HV>4eO_Yby zv&4!f!g6;&05;iaVrDk{G0QCf;aM)JP&o+Xe|m8NYRf|XCY0g3ptZ>uUj8lw73aqfLaz2J|Q>k0n zmiKn?23N#)vpwteTOJKvd)*~J?DXASFW;1zIscyUp=DND!Z6iX>mGTAfAXY`L}$!c zcSeK5*YuMU04`+L*48#q79|7zuq{xritFTo=2fHTcGVw!^+3~B(!y5Y>YWx%SyvP~ zhf$E}Z)6ej_U#Ru&UD;>@!PlWXZ;JeJ?wI33*Ns+3=vBNswCgOU3$4K7Qn;#{S;9= zUU2TEN-)&Wqk>h>xMR=vCfu`@*H$u?siWo~Qp?rO~k#>t8ASsDzmbraiLO@*CFg$%LB=Up}B3s zD7O^`)xE^)S%QARYAGA*G!)#;<^Zx!Az>rSUCC;W;Fx&Y>=rFJWvyh2Kcy9&;N0g( z@wmQU%q)pca*t0aog8A?KXjlV3S66dMn>R+*wOoKSzZ{8x{u7Ai_fr=T}g1kfoG9P zfn6cibJW#>ggBe~t4y_`7gmDObzT+TLp~0+pWc|Y1=Y=Jt*X@_zo+Ejy837s#B{PV z^!l?%Ig_TV?5qg%sJ-M$!dApSz8*Xuu&rFfnv~+; z#1(Bblh^rw_(-5k_pBR{9@`}()pfV0#<;t~j$j5vHd^7(RIGn)6rIii*B%T2AuF!HI=&Nd*I)G^J+lS94~CGJJfI6H~>9Q8oZS ztyv#-ZyRJ(Eh452EL>dE$bQ0YOEUunl_bg6uE&>Hx<3|$wCO+iH%GW_g7oh4Z#a-7 z>!1fKl5Lxhir}Ag`gJ>AV*F!X-`Q#lV7KxwND{|7#nc?Cm4XP%HhnI$J{x{?Jgk}Z zAZoMTBa^lvFlbR@=q#S&W_iQ6+Gn z;rBD(uPvw5UFBt&azhHWi<=)G8_=y>JSm>g6*Fb&tYOV#gO>87;l`6G0jZeNT#fqb z+CCbqwj@cKJpcN}*#*|iaYcTe;0=Jg1}c(Y98Xe&bEPcex_-AU@H&Wpd_+6jUfTvG zX;xSqyqy1Lx=*omz-FbmjV}El=uc&vLbOf%47UY))1Q4))%N>CA|jOERCt~D9#!F; zw7Yvnj4Yq1x`e$wpR%Hlq(u9ZC+@obO;?R^zIlEt42!R9P>vY)YQCF(E{@HPD#&#T zOSp`D#;i4r2qkzWZ%&u@34inXFr;+7<9)R_ek8woj48>eeg+dP@}1O^^0s-IH$wQC!+5!)S_0(+k0q{Y=CcK;I)0}?WA6O#)-EkZ zq(83>bS3dH17hk@9k#y@RK^3;?v6J_leSD5-eO3wtb;zef%!-JVTYD#Tg%*oU#QrO zA(C+ds1MfY@t0CbO`n~DhbsuH9JnHBeGZ;Sxz$`a80y=+&dQaB`y^U6m{>GZ%*mWh zkABdVV)^BADK`a@@pBR(9#Nsk@VmRR*bf%;c-^AXQRH}@X}g8u1vsb=4fU8)w8=hq z(a`f;=O$}>+540g+{rx3leTG}aNA<9k8|pG%Tp=SsL4(nr^PsU^|+lRq{G-eqsi`y zO=aTbzTp~wCLxFe9`I}fnN(B3TDfCA0r)=OcmC7Ed+3*3&jFgVXzctxKZT- zdWar%BU0R>HhsV-W7#aQf?#SPaKz-bGXy{DV8k2G9gtJQKBz6JF~DlRGo`;@6^}hl^U&6$uchQXRM!UtoM*Q($$j?0 z@rQHC{r4AqCoh=&LAr7t9-5-On~oLvMTRC7{wO7_^w_Nh15 z$vX*oGczu-4}Or%f=y>43}RPb#C(Hk=Jm(4uB%VC)8FB;!bx*_x61U7bj|jP8PTr3 zoCSd0+j!=C-&ad2PZ6=FKe+@WGmd_kjNfLy4LT2LA}`v?O0yE6N&{@ zUy+ZGZsVDy}q06wP_t7@ne|9y;zwk3=1UPo3RA}A@xB$-s zbzxb~Q(awb?2nf=~85vB6w@iU<4&n;@?;8aQ~a;pH)q5Bq%SOaqsL)(V%9Dkr?ACS3;I-ThQRW5f z18N!aAT8m_$Ve;GZl(~nb`UW_lgY{mvm^`_hlHfda>zHpTW0=)e5ND~_D8vqDujf?cnzPW*jAjM z=f>*$CU^=^*|vOuu!(S514zVSfz&sGL#{BA1~0nrNmRFs3euOlsYmYhUT?QpTo~6T zj%r-ADV`Jm`Xw?cc$mb?Q(IotfEOvMriq{OdR4X5JpL4)W7kuMe95Ep{iVM4S$HUO zau7>#TN|nNi^wY|a7P|T+e*SkAyfMRarj8VV3oaGAI(*K0~1O#jTnqMwL7L(q!<7} zK7N;zy>#}fWXDtKI?sl|PFTS3)8mf41RBoN4Ao3U+u3Edw00u;N{~Olo>b9*6X#nC zFj$Jc{mST!r`I(@@(Nl?$!R-9Wy#AYiMbd0;w`b#Hx4o2)mn+9pnTH)<#YUd$~?S0 zwVUhxE~y<~@Pj(*!<`};C%gEdIeKY+vQe%hH%6JCd7&k4o7@yjAVdxws(uz9nS}O$ z#@2Htq%&U1aig!-e)LS48j|H)yHmFsBgJ)N@?L+(`C=fMc`C}w52^5{B=H@&(m4Ij zl-KMX9dgx?bEqHe{-Q`Lx}?~v?%jZyy#}B2!XJ5+n3RP0UHPYeL5w2YIk3Mn7|;@8 zo&As?-hNt-m1LIeYpdNheQ-C2fDw<{g(4KK{ZepQv)6Ozx?|ag#2xi!A5|ck(|tJ# zm;4$qPLJzoDjo}OtDuIq(8+4BBpOI0QsFa|=rbxOCpWCQy6puN#&(A1|xarZRG`CruhtqC7B8h4TuWaKK?|;z_X7k0~4Q>fI$X&9Az3{(WLug$p z^KpFaZ+;5C!#9m{)!@|EKbx+Dmj9!6{%;t--aOEZworC!%5x zO@ZN4CxTP~A$*^jke!yY^J_HVeDUbMM@+&pM+R6?Tt6GgiWRSkUz?l1c@U2t`B}=g z+^>#A7syzsslmN}kh5~cf`L{}o|!`KG>ZK7>-YTXKetSLYj9zgt&W}3OYmcH?bV>F z&G6K`|B(&~XdR5cvV=1<>fN%7OGR%mdjxEOOkhXadt06ZE*mu5S-~!=G*nR$Pf);o zr``oaS4w!e$`Sm#3($ULPeyNFbe$Sd$=<8NkxR-u@@|oL8o{@oG&+3#QjEX(Q6FqV zFK}8{mjMIU8AV&nx|&W&nit8-I(C#&UvX-2b5xp>eDEA?(_w<4xEQui#FOapWm?veiUf7pwk;MoM40P!ucr__rS_w%1&C>S3Z};)D5X?nGrw&u1> zKSQ{BMW(aTxgn(nhEk7$#DmV@YP;aA>XuY@gfu98;`hovs|L-8 zU8pbAHDEoch-sJKH(ZEE{+N=HMXbXE^akDyzg}G1V0o23oaPA#LaGlKiAclGELfOb zK}H!#ah`33k!Duq|T@nQ_J^=TSW!s zE$nlVH#i{7Zj77I^Q!{YSdqBOC>`rgM%e$Y7(6WzM8OkxhS~j1=;8N?971nfATkgD z&$rUnmSz=dxGedWx-75a57l^2mrMg}p^CPmcc%TThA{9W&tY{oC>!`KY7V9tWyjr? zo$jUs4GPT@J`8Z!6#b+qJqzHvZy)jFZ3m)Qdx3e;@CPvz;(KhDyGn~yLpsw1%EJRZ z!BXm=s8aMwU|F>W`dTWYr`M4cwyc3X51$Sc|1m9_v6wX`0l2(x$3|hys0X*G)*oq& z4-0o3cnXm1YaqTRg>q>#1XtcQYExGa=cPYr=5l_;mJWpmO}at>opvj)mf*_~IF*3Q z>P`<|Mp-1x1tPRzs!;{jn$tyYn~h9G8<-?vu}7QIhuXyK=YjGZlPIt$h#JNBU&{z5=lxt7efLh( zp|xKK57nX=t?Is`7g$MJMj2xd=Kok<>hOjhHBoSni|6q7*3LR`4IDiZ=-MmGo%jUv zsK6}YUUBp6ad$=s?=Ny~W!o&>S-w}&ru(lCzuDSPTg>gs-C{D=84TR`=7naW!+br) z2WmTcW~l1{d0Xr10Zzr3dGkC==J&AuV&&Ur_Bak%*0;kvkvPw_!*r`NK$H*aI=FS8 zsJNL+HxR(|Ngb6ueR8Ty1SBVRS6KyZlaBAeyq5@XVI7%qz!Kix$}atzh^5{E=0ly=ZB) zMUh=6R)r9YLwm18tppz33!T~nKIJuFcC7IFPj;%Is$-szqEd*=c%ht<-mfl^)4i&u z$1X41N@|MTc&R!S55kih|%T3UMzzM(FU0FHcIymH+FYh@2 zX5683gbOjas)B+=w-{#+$=q;qG+6sb7C`t|k;qOt2PxXem2}s`MPQ(JCWN^WBx!j0 zs;Y}0a?v@psc1SmS5noQeD_DGs*HO$-+b|;%t*?_d$+i+nFX^ z9$V3rIn`$AV?iarCOXX0_YPPijQ z>EGJi`9dOpT+(c4@Cu*AAT_r0>kJNOa<8(3Tbu8l4en7fQ~2&#_;e*QC!y~Q;LY@> z-2M>~dPo`PS2eSjlQx#+RMsq-%RXea=YK)c1deTTE3ie05?-juGU*_&;pC&V z7YgYP0+Qvwu@rUcZMA`TO-=9b?j{#{o;`#&D}n*{@9{;BoB8w^cEZ89DzLU{L1TMD zPd*_04G$DVPKHPpL)Y6uih~pDpnf$mUL;>E#od1qg#CEB_*<(qTn%mI>d?`tn6@(O zNIZTnSPiR7UT1dO%5E&mpb|7g!V)<8Sl#xPN~MKa9Ac z-|cdFRj~8X^}&JdP5nhDEn6e%bIVy`tSh{mHMSt2QYTwK2yVaj_+p!366Zq3I@&es z!Ugbv+bN1I&)5Na7ys-Tx3T~H8xT&BTaN*6CG_7pkEu%#KgXG6XPX${X@D?@&t0;S zQ*T{g?{4zofWqX+-w2$nQm)%gi|YQFHU}g9u8dN&@6( zD#ziiw!^2IYse|?4(xXc90VRPwVy#7EY#AtVu!zBm$gLOPY=Ev85!yJ$n(VRgGcdl zovmz+Bd}TV#02mqEo0*t@e!kk#3Sz#pAS8yQwfAS?M>}07NdpZC$oY)PY z3NT;F+JJaa+LnC9uXO~QdkN$~{rxR}X2EK(Qy0m^d{xDlFZJhsA zoY$l@`A<5J#xJfCWNS+Y@f(G=;&OReoDfh;lIp+5{{G|=>-?W|1g*E z`2AGHk>yei{Zv(EzkP#F@>03@@Ya?p@k5T7yH;yaS|$)z{+v$1*kX$A4YZuuWyGN! zuh45lY~piT3#+64;dJwdW$5#~Yvj9;spx7^@$HQ3Va(`KjiB}ReiF&Yv*mF=phU2T zEhTe0ASoqE)BD?t46BGaUvK8Jv^2)N%_41A%4DTE|L*csDm}v6j67^+lH41fSF)g4 zze6IyzF}$U=j#iib1UCdV6c}c`fV1d)sDo2fBJCQ@=pDMwk^oZYeC6pXYB_od!1pk zrYHC6S}P-+#x zj;t6q_wp*Ws6dBMI~{{A>uhc8tf1)7-9S_TB~1@(vW|=)Sp8KRB`x>ada=XbgqA<`kXPmnZtn$qo!e z!?~8Szx%oImzn%DHQmot=8@Bsg0h3v?(>T&IY_P~DQ=eutj-_K8DZuBZsLK#Si4wE zgjx{YYOu#dCA!x3`r%_|Kx}IQ0QN>8d$%>IsOKE7x~@?X`>NFvMBxJ3L6B^OMZ?Jl z%m&7gN@_c=BbbLNhc3HqoL-z6kTgc+jF`EB`hcGJMle{o8PrTvS0+HE0Q=dsZZZJ2?-WT6TlIyC1qujkbfJc2>amaUi&@}FYw!_ z984Ka?RppIrG~s%o?JNDoc2B;JUk#HEtCudH2PPc)DXNFwDTX%W4|sSR?iCm#d%!u z1;lDEwa`XsI3RW2jRVq8E5P%R>7<+>reO7Tf!NwW5Kgh&TIeW)J)^M>9mPNBh*u&# z`&|qEoV7TJ5P4-{afSMr=S-CE7_J_}r>tJ*`32kpi8eeH_=F-JD5Yl7+0gL*I)^^! zC65n0IO)PAeCZJmsua)&z4$ul^dUS?MKwZT-V+Z(itRqNg9FPb-=c`LhlTXEIO$QV zf)bV4jUKzEq`sWdvcU4y(qqsqUy>}N^eZ3qg|+LPA3p_cpoCOg7W!$l)+@H-Mc}iV z@u@FR(-pmT0*lIUXKd-wWKZ*$rQyhYjJzBBa73%uRDU186Kgp@GB+1M^tR-%Z5B zEd@A^-Ticf9|+jb@CvIx*xgmsin`A!MKXpjo=G7^UD$dRmSon?U#GXn_hP6VGSdZ0 zyZB`VeKe$Xt|rx%vib~rqwso?oi1(zP3I29KGbOF6`B-M6Z=))?C?ht`$gY>eCMGc zD7|TWyD4xR;WF*&l{r(~fim|V2N8}Z5*`XiQl?{w%hR*=Hfl_U4F?NLCeB+e$ zfyW4@AraHm>Qo)Y9StIgH!zVtfqF`3Cv=NX-e8->#dDui+0_J4O$U5rsg2?#@0ywb z+&5}8x3=q}swNFT=pcHya){sTgwjmJN7sYyRk$Fh+QGgm(?%tK#?z+_7@ZXLHl6q@ zL(hz0bsXZemXl5go{vQSS~(gX@j8IPT)W`!ybbK^AvdEsy3mrvbJ0=(l;}pMSNDot zTY?jrhw`uI=d(0C@4Ly(%s)E_DtC5V4@slX%(RyX6u|AX<}c^JPbu8fk<@?4XeqAN zCd(WU4*u4G`*bc|L5f@2LkWATVb*3I`+7*Q{QY}l_8Z(^!lXpz){;GQ51FoYuk%>b z=5+`vI?YpMkIvtlxk4L}QTW2G5~^C1nAnUT|ERLk0`_11O2+-%$Jw6FkP3-`hxM3i zF{!T#nXZr793SsfpDm}FnEGr^M=9md?~a@C#&UaV2dGC_57(_^d>r>t3sL6<>Mlch zEoCyD*^H4*zzM7fMM-G|bji}BKopUB?MPRw(Q~5%3$)FF*W)w+z^XXn7}oL{lELG4 zPA`?`-r<(7stsV{c1w9rT-P3`dGDbntY79d-^(w(T37`fT+xxjX3;6b!!z~$Eb?s4X##nC)m=zy4O+Ml#n;M_|)~ht9)J)bmRy1sn!1df2P_C%*h;a z(&&^03d#Te7~>8JNl9G~kK&;+XJez7!5#t_5}*h?x`5M9G)4&C(FHK?k_w73HS>KJ zgs=nP=Brqf7H%ovB#4^Y*tkFA7qjQycN{)TCAx2|)1?=Sq5~*-Am!%m2f0cDQ0AA( zCZ&1q0$dkF^|-T;bj8X!J^&YLeKwnP*#zKK1f?Xzjy=n1|L~(8Q>qF{r~el$Wdyf8 z_ACuykO-`*+CnTA*ut|E90w_eWlm714P_6e}%#;Nh%v z^0#Ln3bxs46FpJ&AKh*snd0YzhKXr@Ab7??Q==!w^n2TJ2QvYVG9b2pcaIyg2ObJp z!YVeF>Ub4Y5NVY&<1An#4nQ!>zL(8H9&5b?$>EZp=3WWqfyeAzXd0p zYYyHoTDlDG@kNWYeTo-?lsroKELprqhgMx&PEb~t=0p^?_w9qmN!!S9h{d*b6#!J~ zARS5&1IzRk(PoxXC11Hpd9)n7P0hbaZ+RWEcQkUXvGRq&J{ZA!2&DXRnw(Hc&|Lqt z?22AJi1EvSkmH}Wk^sbS&H-%^E|~yY68@Ude@jL%{h4Bz3+&Ek8OtIH!`l*0n;xvz zq*Zj_qP5=a9wOX;?3vwSqYw7MRYjm?@BGaF%Dvjg*6n@J)H5k+XgtFU^gqyC8(y90 zxeu+}s)R#}`xE5>KU}FvD4iIx4*@lV0%9@Dx^msR@f{Et0Mx(zB#IP&ThTRE@K5)v zv^6Dy;3KQmRPliLeGthUUPXqzTdX~C@TBdo9{^$$hcE|3Ei71%!EvR6o{BvO8V~;f zz=C@9{h(Cy_cLwO)%{}XE~C7>(C^+_dY~N3Db@i(a8;4x?RqbFEkhvw>YRPAaRVzB ztEb>J-CV#r=>mED|HQTUD+Zk|uz9*0OfzFn3iyH`GBD;kvUX?1G2Dnrt6{I?yaFMZ z#D$>M-#~71=nRQ#Y8J4!@NwyTKeo`ezzR(S@X7(0GZU=E?81wQ$SJ_BA9Wu9sW@3< z8=KLA#`ysYTlzAcG%;7Vt>??~k%ylNIPo2ui5uT|uKbw81;fSRN>aC6ZW3T-4oy)> zPDhVknEw8zrg*D4(qWLXQF!sz-M4R#>&)C69l)6yy&3Uynp6JB4(He*AU_n9cEz5^ zB!mpOl7`$quYSV6`~H6Cb^GxUpUa$g8Yc4ptOZ0?d;+*%V3K=fOBi(=55b``)v>pC zcRZjHoHQ)O9>`p+Z`~c@K~lYv`a1Df>j(%hGL$VfBmcrWd=e(lDFj!(B}n?9II?yNKAJx(F zzCkN$D13dQLj!TM2qWE`+cVaYKQKyZUGB|l%eL8ub9xk1g59>R$p+}v=3%kredbc1 z9{z15V1FO|Etiu-ylG>)jMHU3fZ`pxQrsINF<5NSgGuN1exRc;0!`z2b^_x-R@%DS zsZ_0_3m7JRA8f@U zR?wC<0Na`V_Vzv_tjy+@iaGjq&U^;ivE0;x%c$f!0~bje5P~>uFT~*LMLWL+vzv`- z#JYggqd3sc1DyrV3Wbz^iMQei3(=Y~hkbl=R~`sx%n;FkumNXHw?pBxJUr&3sf5x!9AP;$E0*9xqLI~8y5Rgbtgb!2Yx5>1)5 zd3t?luY};wLQr7DCrFV~Sv;lxNcEu&>7j&2$Me6MeXz2F9yjS(nNFI`dY4Fd#7?KP|LN_tW<*eEC_B;ByWbuB#9+{>2AQH%jaHu{z8pBQ2daCeD@UbJA@N zj!-@A@X_KXULhAm532ekSp;9-DukbV*nlBeBI9!7FeHClk{Sx?V%i^gE}4}QhU>Du zM|SCQJcqaXNCYbF`+EjtqsBsjhp*)`O!Fj<`$;NAdKix9$XvA?q?8+5qe=Kjxm+io zPZYfCM?V1exG^g)wmIYC?eg5*H*w&NBy3D8I|Jq=M$&`)8_c?83fOuSBgu#~dDmdv z*qaTLjl&;KsOEZ(g6J^L^BEILavR+`v|8RIQLYFNg{|TY4hNh##5%s7qB4gbUK~0J z{|37Ww!ww-@Vo;3*p8}2LB^F7PJWJO5ZaP=sDFcebXSRnf$`@ ze3dBfa5h#9-$j;z&PQ1Q>B|1BPBJ{?O_MIr@;saKo$G}4vsdjx!aIuyD&??9MI(zP zU;epxFc@wols=OUfjNd|abkZeAc+?8&*2cso2S|T9L@)kV%(!7(WO+-?{oBm6`aVf zj!m9D)}I2^Gk+~%Resg!V|A{l$^G7scGNoxEV?u5u@}hWSqzrgaEV4zjSf5_h}Ap* z({04u?ht(x0{?2T_6V?ClNJf@+&1G+Z7NYM?wh!vre|2+<_kRh%A>;=Zoe)Y9Jwar z>f}QsZNL8E?}DmG$M>Bvtys+s;kSh{T6&y9*Ig^1t`)UjKMQTnyx;d4Cjfdku0@Xe z?O`8Z#~vo8J=9QnD)lQKu-^!D0p5CfoRTkaE4D)7Gw5jG`Y?n{*3$6K1~K*GU7I`7 z&w<^q_66J-%&#al{;Sak3SkW=-6=x&a34kq)ofHJrDbdfWa-%ds9EX%K<23OnM0puLm=KK0C@R59QUiKB27^saU|nZ2d9sdk(}YMGQ!HG>vh#Md>)xHRHLaEHW4~!_b@;RSM@e3n^3!?|Kfr?T3 zU|bl=Kc}qOcKiDE5R1Q(a5($A%?=>OW#d;~q^x%IC(NQ#@|M1zQJJf_9@YU;bY!=l zzio%r=NM(kZLVK~b^DBkR#fm@IJ}r0586?gs_w6h4j8R@T#FivfHjHW%Ik9|cOJ^G^cgM8gybwpJWkQD5pEoZ zJU;P)6R??a`&{bSML96`+wY;VpsS*MuhF|p?@7SO!50CXTiRJXc8)=3B-_@~*Q7Ep zD}C#d32I8Zy29x@WD4Tls073)9as{jev3y%en24Z9GYaPvHoo#wqT|3T4-!_i*eBP zo^>(BVG`)qrI5g-RIW2!&JB7z#wyx52{7-&1p0`0McZ1al=$E6P>cPsAkejVKkqN?Wlv7pS%h4O%cHJZ>_L3?CNf<7lOY5x)vGq;<2+$QuOMLoy3=xxChgn zcd1!ZBaojzZIMqLg&;HpM~in1!vbD1{At#||GKVjq%#~YXPn)M`}PAkiK6^aVG@Y^ zIdZC~P2BM{Y=`nZrswg>zv*@wkqS2K;Rg}%8aW%f6BNWV%eyu}%X3)>eSnZP51I$T z3g(tJm?4qnd}j%V4XJJ*LEumyXOqyE(>2Tj7CA33CLX<6%7lff_{@5&CVjd5Zr)5H zZ9>WCs2j*Rs?=3g4P7|DHi&^O>Zd8W?p`f0)uZ%_z8r(@Od_1$0deP?FzWoI{{z1e zlj@xAb0zyAzYB9nBKo^zY}c+S_OGS%GuuVAO4NTN~`N zU;f-bTe<)HDm3MAR&Ray2tvPOmtp4n(YyU#HGmF)wCMEFrk9(&A4YL9j}mf=Hi-*E zcb}!oDEiQLa?aERn_`JP3h3Zd@Y{K5}{Z4Bxn@A=O&-S^f? z3Ow-PH2I6lB!~fDKs+bm2KO+2-v!~!p0(II|nrvsbVAW9oQD)7YyY<5X!p% zSB}lCgqmJKk59L|iY>1g0|iMpcqCV(SmkY2!BW3x-7l=%0WL94auvU^W*Axt4oK-5 z#r{`AqtnkzULbzyvqh*%It)U^C7kaCSf(qsgN|Dr&=(c+Issu;Xi3M1E78T2{M&Vs z)G1NMhP;-*JcH@cAKLFP4hDXNB&Q=BXczIxBi|-U)rHOmqyMBVFKqa=DVPrr%@vuU__ zD$aFIz*}vYxS78AZMBL=May>lNYEhv3DqC9>RzCco+2&z^U5LW7T`#h*kI89ZU#cP znz7I{q@$3oUIqFOQoH2P_G-O4-FEUKjivv7#Fi4JhAGO?Q3MC3Oqn)E+9Xe?tpVmP zz5=4QY_4qSt3fSW9;~|sto1i-AWjX!$nJYJq#0`$O~a!=H~6Kn=;NiIra0^*E3feO z+&ZU`>sJKn?PbtbnxJ-W6vU{9rwdw)J3xoj@LOGK!ha$VsFw-tsVbvC%0HL`iefLK z4|o0acf5(#?mo1|@kDNFH?K9Ur&$6;wk>^O5_Bb*`6@SY=!uspy5f(ewSoe%A$!w2 zi49Swyw9fAhHDX!DUNN#Dd*b~{ely} zqE*XhavXx2)1=zO%dXhaiXGaMT|**$HtVHsf{fof4;N_HnhjWg(jQlA&fzR+Ag7C1 z`PROOZ<^L#1yl&p$n+MP;T`%WS{myll)TU!C291WmG#JVYF<%J4s_k>1Z-8a-;jCE zGe+-AgqF3M=4B{0q50cK1(=sOHv_TKncf2I4- zgMrqw#R7Ww622pvwW%JibvEvjrqreM!M$8up@QWOzReS7gz--bgWi!c)hPQ_#L%QO z49;3dJ;mPWx(>W^gb%PxRtR~>JODNprwnyR7GrOd?@nyjq<8uM(R_4nBP>?sHG&^AP>$M$PnzwB5nzjWXhqXx`cHWBC zf`tu7Z_PxGztxnw=N>&)B`W!@wfKA5{pGKku_~h?_(M`5HZ0SVxre#~UL3Ex&Nkx8 zw7(e}LO{f*Nf%S*jkGZYm_R<7X5uu;Nd{5;Gv*)C76k&VipS@nXRXOR#1qURG?}%B z5Fn-rB*vWy{*weVPG@gJS! z>~tPO*zWaJ4l5&^(@!bxI>5sNeJ5>+tPtPl{2_`P!RB*FW=RpWu8n_suD0ARKgqpn>nr5bgk z(4u?cMRK2S+A_|LS9$xzTNOriBQJ^5j8#PXVra9LD*LNmqP7C_HsAF5@|sHI=ekob zdQFCzJ`WA0z_0ZAW^nwL*$`m2RH80St^KlkFbf6s zy)09|WVe&R=_!#4J(Xh=Zl0aa{M;-0!m=sv{Sv9RkObQOE0iwIA?GFaF9Wm1zs!-X zN%~T>@gg}B=PBWo``t`Q{yy|u^M7m*DJnKM=~(it8q*wmUHFn1XN$aHYzNq;EvNs> zL_p=`qY3%DfKsI7u$hWDm+m`z`xfKCRHI!$||;{5p!N2t3UeK zE$f`=)v2L=f$U}W4&89`)^z=UhZ7oHvvuux zchh0AGvz7*zg#Q)>lfc{AS*RKnDDs}d+NA{ka?frre#NcL6 Uo+7|EWkBxS)Voo5?f#Sh3(Cmb%7 literal 0 HcmV?d00001