From bf3d94a7332ff411b654137a1d1288c399fceba4 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 7 Nov 2019 09:06:03 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .../merge_request_templates/Documentation.md | 2 +- .../components/grafana_integration.vue | 2 +- .../clusters/clusters/user/_form.html.haml | 4 +- bin/secpick | 2 +- ...rometheus_dashboard_anomaly_panel_type.png | Bin 0 -> 41015 bytes doc/user/project/integrations/prometheus.md | 58 +++++++++++++++--- .../grafana_integration_spec.js.snap | 2 +- 7 files changed, 56 insertions(+), 14 deletions(-) create mode 100644 doc/user/project/integrations/img/prometheus_dashboard_anomaly_panel_type.png diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md index a2dd79ed1ab..2a7da2a436f 100644 --- a/.gitlab/merge_request_templates/Documentation.md +++ b/.gitlab/merge_request_templates/Documentation.md @@ -34,7 +34,7 @@ All reviewers can help ensure accuracy, clarity, completeness, and adherence to **3. Maintainer** 1. [ ] Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review. -1. [ ] Ensure a release milestone is set and that you merge the equivalent EE MR before the CE MR if both exist. +1. [ ] Ensure a release milestone is set. 1. [ ] If there has not been a technical writer review, [create an issue for one using the Doc Review template](https://gitlab.com/gitlab-org/gitlab/issues/new?issuable_template=Doc%20Review). /label ~documentation diff --git a/app/assets/javascripts/grafana_integration/components/grafana_integration.vue b/app/assets/javascripts/grafana_integration/components/grafana_integration.vue index 35135792c5b..bd504d95ee2 100644 --- a/app/assets/javascripts/grafana_integration/components/grafana_integration.vue +++ b/app/assets/javascripts/grafana_integration/components/grafana_integration.vue @@ -13,7 +13,7 @@ export default { Icon, }, data() { - return { placeholderUrl: 'https://my-url.grafana.net/my-dashboard' }; + return { placeholderUrl: 'https://my-url.grafana.net/' }; }, computed: { ...mapState(['operationsSettingsEndpoint', 'grafanaToken', 'grafanaUrl', 'grafanaEnabled']), diff --git a/app/views/clusters/clusters/user/_form.html.haml b/app/views/clusters/clusters/user/_form.html.haml index c16f5f333f5..39b6d74d9f9 100644 --- a/app/views/clusters/clusters/user/_form.html.haml +++ b/app/views/clusters/clusters/user/_form.html.haml @@ -1,6 +1,6 @@ -- more_info_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_cluster.md', +- more_info_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_clusters.md', anchor: 'add-existing-cluster'), target: '_blank' -- rbac_help_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_cluster.md', +- rbac_help_link = link_to _('More information'), help_page_path('user/project/clusters/add_remove_clusters.md', anchor: 'access-controls'), target: '_blank' - api_url_help_text = s_('ClusterIntegration|The URL used to access the Kubernetes API.') diff --git a/bin/secpick b/bin/secpick index a44867846d0..963172987f4 100755 --- a/bin/secpick +++ b/bin/secpick @@ -103,7 +103,7 @@ module Secpick options[:branch] = branch end - opts.on('-s', '--sha abcd', 'SHA to cherry pick') do |sha| + opts.on('-s', '--sha abcd', 'SHA or SHA range to cherry pick') do |sha| options[:sha] = sha end diff --git a/doc/user/project/integrations/img/prometheus_dashboard_anomaly_panel_type.png b/doc/user/project/integrations/img/prometheus_dashboard_anomaly_panel_type.png new file mode 100644 index 0000000000000000000000000000000000000000..5cba6fa9038775466b635c7b3db82fa0b9534f56 GIT binary patch literal 41015 zcmc$^WmH^Uvo6|=TOfFXHXb}kaA^qAxI^&Z?(PkN5D3y}kO0AgdvFidxVyW%`{Die zK6`)noPEc*|L$C)N6)HRPgU15*Icz`uN9`ODE$h91Oos7ypn-Pr~&}UAOHZ78x8SA z^Ha|^{^bkFLQFvn0H}z@d@w?Ok%2C%(&B*9A+p_o#Of02Z#EnQt51=!g=JUrMuxY!(=E!a8u`T5!3bFy=C zvc6cbx_H^U8hNtXyU_fHlmG2U!pz0Q*~-z?%E2D=k6$BW2RBz?YU+Oi{a5>s-)ZJ) z_1}@~UH&tzmjv1W8DZyOd(Zw~zF(k1|7Zo2tvth zOheydKBp{3*F6@$qW$3*ptI}{l9+w3JeU)&(AL^DoRaFy}P?hN=kx6&VKpwMOIeU*4DPRwzj0CWNB$B zFE4LuYITP>gvCL{|*fey}7v= zA0OA!((3K){r>%XLqkJHM@LOfjjO9`dV0E_pI>EVB@70eoSa-+TWfD`|NHmv)5V## zw)XV&^w7}I#>PfYPEJ5TfPsNQMMZ^)iAhRI%Ki3+r>E!5NMBS`)V72E=g*&;o10I5 z#XC4S%+Jp+K{)omc@^~^-7QQ9lx<$rm04O^CN%9{cQzfxf8F2P_ww?xu&{7*b8BmB zvwmrrD|&i*RaI5HzBU^sO6SE{At50NHFHZ4&J7b~xu{9`$jLv7>Uyb*&RH`r%`kOw zRRcUZx4$6CzN9bb?Cku_AYk?2_TuJYO;hY3%-hp6dSc^h!BWpCd3sR%gPv`^Z|R1Z zbIbg<;Pm=Ajo8Vo&V%oN)(ce(=2XCQd4(C8)|_rV&9XAV#j`Wrqdvc9_Rj7ryB3

4E^!nPkZd)2TvnuPyq$qTX3{1J6%@+ofHE7?kLd`h_D^~~8Lt<83|WvVY1*D%(7 z8UkSAf}9cvcntx7U;r=(2n8bm0+9d+=l~=<02=Lo5B#6<|6uq(1OFd}{}#c^Ku?a$ zjaKB0|HZY2-$D61S}+KA>JVXekOBA_5?m+ZPIfBuGFFXv8>NI$2M$~a>sj|{pVhki zU_htql6QF!Wsi0Rknj`Tqkf$<@$#Tp7AMnGdR5j9Q;b|^`&|JkkE2O z_zidy6{gnQo&Bn|IEmp(86xD%?zlg3P|vPjmg#~wWB&6D7y$$`0HyJ$Rhv47j&PDf z1l=}8uOu2+3E=30ll2ywBD637n<*$^j$?c_B~U$v*L?G9nj$Nke9LSq#36o}TVF`W zr?G6pQzYYf98>ecCR*2mNKzw>91}lUgt9e7pK~0sccbFz?QvZ12J|te_sQend?11pk`ASreEj>PBl7muw_#V0R z;lwDbp#7gMyaU^!pNn_HX~XVM-s^rFJd`WOC}-9Iz0Nd&z7!PQrD&#GH6E|V^ztJf zGk@eft`Gh&ADkp5CEdN5M$m4~<_}Ge*g@wgQZ1=p$Vs2+-*hh7`{IQfS0z$)Dc(Uz z!5fZ9%nhSjCV@vHa``b3z*A!&w3AN*2Csc{)Em9@t8KIfO}p&~Nx9|bOfC_%Eu`ny zlYKBTZ{KS0hub|F)anjSjQ#y9UbBi5ZBYS4xU~y>xq_253A#^4B}#|~7XLYxQe9hm z>oq{Jq0eK}RnKti0y`_oozXw*= zir1H{#vA#p4yJKTFQfJn{pRPRHM2`J0$J)Z__Y>9k{f;bx=`3GK{)9@$avqtoiuo1 zHvCnV3K*nO59Nxe$sE3y_vG zd$5C7Z!OMB1cLT4L!$k;*TIpxx;@ezs9a^DxN-Hjp*qS~T4}9!^tSr(&fBNW0%6Ss zjSuNvPySEM+O=IT$R-rd$|F(BBvx{{y+51I{JGAAh#y1!LF>8OhCIz+&Erp+Cv38F zV1MjKI(xrE2ef}q(1bs&gbGTg1C{kgRR<~jC-dribr)#Y&0~>kTUxrE1B~}=fweW> zJ+AVN4n#Qv4FQY}v_06mt)u%36*=TjTl1)n_K36IE9n6Bz3<6spv|+Ye!E?4E{&1-jl-AU$SMIFb&J8Zo+@DXyjrA2@AxS91s0G@b%`a^5rA5@Qhcjw7_g-9jLr3Sd}xg6)3 zjfd>D*k0Q#1M%~~yt%062M@CJ>nJ9}WAEXy9RIX))UNAh-F}m>cKn+YPa@JfXrK@& z7v=b@c%ie*bS!x$8>(tSdzbC}@{#ARiTAxCeYrwu|NQ5=@^}O5=%4WAq<@x)*Ax?? zSE*z8tJe?&ZPYK^fIwQ98)k3S%s(9f+D5&rjh$U&2lxL=(fI$N+WcSj?7z#>|4{hY zz#z2*u9&HYA_Oj`zdbm=7!hy9em4~aCfM)#C%bcT_4@C!Mmf~gKaLvgW{?zAr1iBB zdfn%yIRL=p$j+XSqxypM;7`$qYgws`*s1l6_EP=@bBcqF$(wm*x)$=uhJ&`BUi^pcIu9&b~=wcfaMt2fX8A$vsHfQS!!`0 zUc{|sRjMpukKmT3Zc+Goz+1&MgB=KVL8&Yv5OFc(+dv&76Eh#om0m~nLwdVlKY+7= zD7f$nF!%;OHC9m7h_ahz>@y8|wz0VAG2w;!|ZWlwk<)+@CJNe7w-cvQ_m--Sp!_Y+vDh}d&f&W|1?U`vw3P%E* zU)o9)F4WD_8XFaj-F&Q-X`I)AsWve*ce&DL;aBb%EAHpiCT}l4ia+%%%|1)G>`ujA+}~BX{3x zL%ubB%fy`y$(sK)VsD(KQMFjdp%A%vWPi1pG2=4S%r(%4#dYnswQ$U!!Z$Dw;&WV| zaWAxec;~)C1^`G9=D4Q6Uc1CyvxqCNom9c`-c@R#)Be(_^qltTN~C2EM|TNTtpW%@ zz*Mz9KSdt8k+&&GM~}HlKndjX9lP57x_K<<110o5p#gxwV!y}9cXkvBYcjC7^QJHy z8fIo|*zWIj<^<sx7px-HR9*F2+*DbdeQ@0nr*DA1Fac%=oT)jY9DDn@WR}x|3TZB=m_5 zjpm(fCnjO-t+6^ONnTncE8|Gn;EvUTF{O`R(`vv#xcKuoW>P0KJWDx+Pzh~frX-Tx z@%`7L)ba-1znD>j%Dhp;Qp^%Yy9CtFzOP&unly6Yx&`rhQ%}$8vm(ftlO@FH1x1L% zz=%$nN0pORTwGif(h{;V`0@{!37#>Tdj75vZf8-pyrfL5F1%xJCHV z&maQdBSs`EY&q`-DLLOKbmAP{hw(&yjSU?vLT&n_`RE{=h!D`Ak+!fb7)I9?8@4@- z`>`)r4^k0m6$9D5p19!u2oqM+*=asUa`NKc-V20?+oMX(M z!QAl1-F0h=h_9SmqZi%g7Fz_82E=}6FDasQu(eY|aELdc=hOk2b0A`d$s*m~EG|`veYr2QD9%heGLE`o^RY^Z=_Oxg1a=?&pJ8>Bt z+nV41ur9!V*E2oFP%$51OK346{1lzZfFhHhG~X*dYQdN;J@CfudxfU zC5ODl3<*jOa&2=Ki66u?%)7h_uQF^VLDkq$s`#S$I5;h*3R@KP3%(hyKKUEN>c6%> z=cnnvi{RHAkgv^VD||?|6ph%IHzz{3F+Mzv;o;TwLnDJ@u->Y(B}C2px2K%gCmHJn zOx~mqQux@Pp8L7VDr#%tqa=}++vnL~%;Iycd}aP(HMq$Q7{T*Ri&!z@eWo4t_uO=l;$ z^@4)*j%k*nj)ppd4`Q09FRjnn#6`@*cq3VA<53@i5Ax{lqQ(auC_y=KL@8DSZ{ID8 zKRe(aoayNJ(7SE?uF0L*Jw#gVRKH32lIRe#g`8$Pll_5x2wyzqHvgjTa5!m_6+!}T zk!~&iO`=CveFIlX)X$*auvkc>9Q`X8OtvBWK*##ij@E4oFHpKE!brDaA zZO^r&@#91hf0`~)dRfi&s%@SF=1P1k9181eq8e@4PNOlv+WS+b82?wQ4BnhhOnz)^?pAzaSTv&9tm) z1F{U^wy3tDf7EM-?-NM`wBJGVpT=p{2}#6CmC$1)VU4jtzR?~Ym{Od~Z+wK5OVBEn z?x*4vCUoi$u@x$4rr5hb^DA*Xw>3wPEksw`TlYH@aH&Vd4Y zFfUTCCJP93t-i#o9dz-)og3>t=IiVp9nMxedVB1zd9Mk?{ImUZaaEtak?V zb!{BiU)=~gU8&gU-{C*bG$Z(%qa0k0{OJkopXyQ7{3WznGMMsY*SBmh% zPc?{Sy?gJQ%D;xh0>$^dcH`99uhybkKBKliP8~j71*+&aW_g}c)+RWV?kr8IVd8Y- zFk_rOVFo#KO;bFBhD5AOB9(S~?AdQ;DYakKt~mJXe0pS86sswRD$ArPRX|}D1G?z9 zkrSP$-_#WG4G|+5_c!R}%=_16Ja}Re`=4nAXL=OHZK}m|iMe~x5#qM)j!=+61oDqYQ9^|HVHl|!oa95J~vV&btb zik0E{U1LU7A9oNY`hBmbvXS5YHifV8lg2OGO4-5zG%*S_!vr~9SRNX`tETnM$-CNB zBXI$e89v7;qFMRYCYEZ~(^U~4^wYy1ntq^K$rc%SDba3%z}mbDLC`{RF`CWD7SnjH zW^Re>Z-;$1#7+HQEJvn4x&~|eI?br>MV1MTw|Vp$F78P_BG(5Rav;9^_sqomNBaxt zI-wAx`(XPGhjgzhHL>R9zO*thW-+!{?5}}HJI3}duR+awlGNfstw*E&d(-4_JLyA} z2u-VUP|+*AoF1?jabINbZEvsi?s#7-Me6fVrQV6ELPanv2nojGS~QbWkup7|)SSpl zR#L1n{h(GNqEf_I9#-(FN32v39x8TcIyuQjh1WWk>-x3TwIPsr?grY+CPJet-~&4R zc!fEZX1qN7ioi4(7-U)^T5M1|=L|{DqwdvB{17~4FES;|zU`OFT81*KLqs3WVBWIe zT`x6#TU!cN%e)dwikeLbul|9p?hkJh zk6+n792d67w!;F0BVT{-|A^s7&uz$x-MyOmvUZwXYVKSgvj`E>%&YlS2jb0te#~WuWIxjuU3!Kg zTOIx2JTo>y7+W~xWkTLnS$58jE1Y1fTjZ*`cxvx3mh%pel`fm~Mx7iGF}?nB@6lf> z(#XGhH~$dPW!K7FE~6!yk zze{WM2M#V74IUfs6(6cR-!o%0u~5OEt322Qqt=w)93jiiGY5A`im#G?GR6J0Jt!OF zohqHb{j=SJlr$<*W-sU) zvkVQqCQ6C4k@YU=bQs`V5xA5Tk#TDB$nJ{<>p+M45{z;hl2PX9Lm!O5Y}W@-*1Iwk zh#Q|bj&nGMrSZN|*WJEhw@2u5Zu}ggq$%bgO0ZRH+ciiz+;9h0_GLQ8@Kgu|ged}Y z)jE&%|?9A$wt2wXo>}K2RA5Oe5`U?d#IR~c1GjV3*c>2R*uvlon zJ}i361odt!nc*RXJvHLuz&VY=!W_^SPz0LT!Re%GY`AH=*KVlF-N(WeG|?X`V%o-J znts*Jm+-zy%8e(Ic9Ibi%HiC|hHh}o3OIV4ylj5_ zk;IQ4R-TbT4EQiw98f6V5B2G=N?>g7L`a$*RETS{x=|z0h0X?CBfatQFSk+_er1U+ zAMCqyxvvAA8<~XpM^VS07AuYNzbW-vzp{H;8@qiDexLx4nLsC)-~`|(gL~Fv$q4RJ zRj93TtDq^CZ|*5Q7cof5D?y;pIto~+ff8}>nVh`WE=q`w?`QV;uHC+Ylz@whKq?Vq z8cjx^oNCz)7>w>=(q8u_^Y4( zI3UKd|G|WL5v}fDj%AX1k&=Q0P#~*N)vEco&#~@os)*f+rVu5af|*MDEwJXRRKyzE ztq5s)4})bn9@krQ;D)@QIBBk2sowGLhqu)#=3u-qx^Ucz>`iP}wPxuGeyY^Hmnmcf z!aUbwcMwc91v{`OC^XSVC=qjbDHN|lP0P5wqh61pY#`+N^q$*CVBMHNS#o#YkXnUf zE%Qj?+WVzG5ktx3J7=I0zh0T1n?o_R-xWj{AOgbJ!R9`0iISh3f2Lg9cQODtXDLa{ z08T@))%xa|NvlM?ekd^?l7>S=WLKiK^|v_f`FWV7MOS&NB-&+m*SKSlIX(R6`Fuuj z7Pt*hwpu@pBVNbcdg39_lIIVEN4}8GBzF?e(HraH&EyfFAE?l5pJ$vZpV!F?yxn*k zB%VWAQ7smL20OdAyhvU=G0VQ z&6^;c_WQlv;bZI<+LR9+|2zjU?e8P()QQ8O+-wyy?KTlk{HmQcJph38-E+79Sichl z79|S+KZr1BHQLf#bAye!d

C#Ghk^wpcn5I8}X@<^0A3YM9h9d0l~H_YK0?>qCBE zk!T>E&mrRye#}f=#+y1PW*-vKCn`>-Dn)6g5CIXH6Rrj*t(P+fpXQacYdba;+$|$_ z+bigch(dVy;5k7I?X)DE9dWC6{*1wgKf5OuKayYh0W7yl{f}w^1a-s#D z${HyDM1{n=@8-RI_l^-C0nr&XP}%17@&1}W5ZnvB28Np_wq)d)29hD9c zZk##l=4n7GRkHpn5>}NltOq4)hZfh+`0QxXhXOyDG*`N(U!C-0c2-FG0-as_rqQ7} znP2W1p=7QmvmlT{%Vq6+B*Kqtvb5b<56^3W%)o-Mh}DeAk_diT{O?4Q$Uz zdxS>$T`yDw3GO3)@{Jord9dU&Ff(xrbzevsuMkNj*O!htw#u>hGA%#P$*e)+0aejS zXi3_-zJc|})@#W2c~OIQ_jVRuXw>(Kg&wRx7pOpv;nzCjRbNUw%fnO+o6gL=H&^xx z>kXk;Z!Kgu!heqx_% zyl=kBxZ)*UzS`4!Zg+Gn#DulGz3)bhO{k=-2k`F>%^$2Ud55b^18xnO!R9LAIEfu< zL{q!xGSqyIHAS)I@H^!xH{4V*g@(QA zb`>fv*+Ix*PxFk9tf+2rJ$Wk~gnZUG%LKk7hG2kH#DAj_3}xAYjav<=A_?wjuixZp zMi`Iu-QXZrLJ)IioYG6(9_hgXi5*Aea$Upk!AFWz10=;XLfOf*CgzhQAE~S{H67FK zMAP8r*LUC9!2-31jKgo4ub4gl_qza*+==D`$Fwb5-3q>biPCq)a=q`7z7Un@6o^6f z$l-;Y+!yrj@^+LilLh1S$`1`L42cB%+3+P61GNYzoO4}J>dF}@^anaw<2?SM_N zzLPNM0Vg1Ko+UW|33m6`(8I?xs2G#bK%CiWM&}oMj|^An`68E`mo7yuUg(r%MxOZ& zv*<2jId77f{#V~vpB9`d_#k8+8p+{xC!EzrBE1l#qKUGiOwWP}lHmr?5I@sqz1jPu zb=9-$crSxN^K(Oe;L35h4CF6)?FKs5B3eJBKRc7!>HBI+ z4w8@x#xFmWaUT{K0$h#EGH$r$CLBIDZ&ba%pJKWZ1F%Tj{n1ehI0mX-5&lM-f1gEzVcA>j)m8xm-Qj4d zA@o9tS5hI^Ap{GI7cFJ^Ego!=*Dqe)njW_*2iO2o5hvmwC`qpNaD&Dh{ax2fk{Jr%x_1U_T^9Jx~zMkrwK z{m{)5Zw=R*^c`#Z$>84Ottvxp2Hd?R_q{_WZ~J~^_^;L90KD7%oQmAn#IR_X&1NDP zKrv{-HJu(GuZyjz>-^n|@EDG6CtjNGn$j}>Ek=BvYb!NDtkkOOSiuk%0wu>HBt(hq z#k-66k`06eOoaku4lL#mv_8!>2UmHFx>l}M5hTmck!x3%d}cEVJFq{4JG&jK_aeiS z$n>c}&oC1AG7sOXK|>{SonS;a7RsKpPn$3jjKWH? z;kEN01kp=;=F3mW2OOWDk`UX&>rMPbg z3kIZ5+~6#*59%@Wlpa(xZ)Zigr#;mx4lx#<|2CiIE)#b8M(h^RJA&iYS6z3bwKlo4 zV0}AmY@cg^LlRi-9v@N}$P-w9>crC~$XQs|B?B#v2>WKQ*;GSnOD}VJW&G~lXRk%! zQzZ9l!R``*xCQ}5n+r0BPBRU*wxRc42Wto$3;=X14>F{U(v-wf8nR_$ho*f_ZM0d! zeOHeHc|{RJ!mVH7HbyBd0(Ytk&jd;&?Dwls?mIOm!-X3A>b3InSpg zIUj4r7&ly6OU0l!ptjO|S&eD~XiEZ|C;bB7(se&FLT&d%t)L6I<_Gm~q?IZjppE`k zHk0dL+|&Zw;T{Sd;;;qN_(OXG=*8j|V>v5=-ES6vpsx_9!rA>Z)Yl#%R-l-$joS5 z4^i_+eA{x|t*CQGqylxFxcm9YxEb($b@i}o;KBm|B=4kWlA#NKZE^W;q{!h|VDIB< zseTd*sJ#0bGXmb;;{1Z?S7)$n0m(Ceu`?QfF;o43s-${K+F?U{Yh+M?E^orApRK9` zDU4OGrHMltGVDZ}G9Z$RWU#bWTJ0(?V*h&K@_XWagh2^&1ljy&yB}Ye7vMSO6`;7K zSKm=>nEFD$CeVgL%uq4#uy5Aux}xSR!K!EiSxUg4=+Uelp z={KOfVkA+wZC~(I#kcdHMHo4aBO#owrc(57?w=aUWOY1d4RT@S(7?DQrlf|Ht^ok; zwETy^EfqayQ-veCP7p*|uR7&Z58Yy7M9wpAAg~fJ=6KD3uL>$Rvb|&>8D{;fa}+{X z9N9OBrKW!b?d1LbCQd8L%pA!1`d5u=l@PBt6Vk?O4W87Vp7-)vCDzu;R4OZ1A0xIK z5EK#(4^p;IlNyh2^nQu+xD$811_{0&M)*qkdZseL9_MgIBBK_*xzE zPNC!Q13;#v;dXYnd=skY+i1m92ijo1DE;nI5Q-TghHfYNJrD2QgBHt)>o|1d&XrVE zHT+Gf+kpgDePxNowoxqm^>Y25VT-uS2pn6i6Y3}@v7m^xZx@bA zA*2LL%|<6$-*~Hp4@=f~jgcPOE`ZLB_Z|^?fP3}IoEP6AA(J34Oh-M=u*vnR7$_+% z!==1`%=+Oo2yC6J5;(V(;+3f`<3%shSbTa3ERHK|7B^4L0T) zvQbY7L=|5fe_Cr;k9G6krO~6qxRHt~ciuHD(U&x~<0V@Z{bscO>YZYO1glQ(C+95c zM4-*Sf&bod33OTB1E!g;eAe51W-8gGKK$YfwRP!IwM~4;psWI*ci&o}PUB0nglH$e z69e=Lm*(V>%AQ{s^&dk!g~-OUd_Y8*>Eb$G%#4mX)%nu|dC5>AegBm(X5l0}iI0@q z$gm)&o_b}$Bvj~PR@2Dem_E=AYRsrLcSNr42cA{{yJ3EN)BqItZ&ZjYVyk^j<{oxT zmy>jv9r7|R@CpvPRYrmMVY{YQ5zjS$NJ5>qk#Lff)a&5#UCRg=S>XNTke-S{n?P7> zi3Gdv(~Sr!;IVhnIH;C-6ckb;MEg4WrJB3XS2rJQf1y9OhEaAq{PEXC;e&e#GJI)= z&AjJO9W@SYc9uy7E3_{==O>%SM6Bd!Tu$+L*&Q#JaBOnv*vkaQ-PlYa4QA`(yWpDP zO9Ogggw>abss;@`noEO-l~dJ{ufY_oXyhtK8haCq9cF-J6H~=sFdG6`$?)CqwcRSF z@6RGDz%@(neE*O(&z)a&MSPLQHgVINgM+`-uP8=I-^TedlK#B=Xws}y+`bB883abNA#@{I6)56q_x+v z`9AZ-W~0gLHBF^w$h?UHfIq{VADUxh#4bvh#5d@3g4Eg1jZfLl$CBsuZnlS(6lp{O z9vgd=pw2&Y$29$cFBjLF9#mlHq-`iTTvtjyZ>d6t9QigGdf(7q8Nhf|j_Ut&vzOWPjY$M-7c8K`0(G69vo zwzsW8bG*9GZoi)BB^hc15N1lK$YI}C7wSva?NSk5IpiY5{xldsWFFAR=+Vfzdqs>$ z3)d`4`(=OtLVq)TmL4omY(dGT*)dw-0#iJp!G^@J9Q4b@O5>YHZ{NL0O1VX?QUIBl zRq{x2B`RG$(~groI}R#OK2F@J-Z2N>mbtR;+zpvE3<+*8$=`a35IlI|9WIMk8}RYR z$fe=i1Mz6|Oegl5MIX9U0gUN`(^-FB!>Ti_W5_c0DDoR+pk&moKXVadX|{9~1o|p$ zD1H6k`(_Sl@Ot`8E^&g0kB8Q*ixHr~^(#GV-^4fAGdyf`VL@r-R{#-XjSqi|l2>o# z(lbT^7oFWbf~#B)yJzYPm31fwWlEF;(vCQ6B45cMoBGD?DYGmN_*=5n;?#-PihPa} zQc5R=d~g9K|HAEv*)bNnG;n|;Zp11x?iCMM8EASK1j8ef%)T)E@#u#JOT*L=_3N@U zo-omEn3(ndyBHUPI-Sqc5tt{ z0?n*~n9hq(cqBKOo8+=NOrC#V<%aUl&U-KZ6x^6V-hcriD3m;fZ#>JS&j9rV)H3p6 zmI(UpH0P7v2T_6`Nf8a!zi*~Me`&Bpz`xn&-sh5(n_^_q&wuW%M&dc2sAeLQZrn?O zM%ZjhxZRFzydjzet*PXM^VdxwhVbmT>Pdbdu%^%H=9v&F1P=*qWJyBW4-XC(Hv#q2 z@w-1s^AIZ)Q8xNtPyPUyCZyo4X6niIgd?VJJM}~3OY0Tscatf(+g@l=Aun-HOH|f%m|=GoP`}#ekUM;^m?K6m&q`>`J2BF%&{YR-JFDM zX+ZD%8GR4EEE$-of|I~^(J6*!N($H*y+*}tMQK<1HuVy|drjSp(l#1c*?Ure_jVym zrrf-xL)Xtdl>9bd?MI~qju<%h-Ds*HXfYBV!IOywdgU?t=?zfxP&uP$Ph;OhpTU;Z z_f$=`KxsLQrCS};-}V=^y1tPa$XPm|yl$C$)VauOqaU=18W78uX~r6~$Skr&yT*kC!%2qb^!27;K}eL-#y`px=zPoL8t0jb*Crv%$%g36 zMIywuK9~DA0AW~(@hSy6`@s}su~@rMJxvg@@NmWBm{9z5wE!w?euLb-K}?HIV6fld zREW}AA}2A1kTq3;val<2ek)QZFI09Rqr^Ig;fB$?;4)f5T)4bXL58#1t7-w(%w|Be zjGB%Pf4pumu*2wsI+XJNStC-Isy>6UzxEl;A*)BaBjUD1a7z{U=Koq zdA)7b8c{cCF9fnqoqg$CCfq;2qu1`r3fQ5B(jIBIs~`VCa~X^uI>BD3_PLDEL8g+~ zl6cwVx|FJ`B0JzEMmS{Ba=#P%spK}~a3MqEk7|ksLS<(7n*Z$`Hso=;I?g`p zHd^wAG1u9}p~Kr2E;*9xWNTamh;jO!|y0JO)23BMBu zZ1j&6dN}&J%%vU4YNxz?W$AlIoS?ZV(?>|jScDV8KNu!KUpPBPh{$c_T@N!24pKZ> z|590zDh{sk?hBjkg56NYdNb2WE7i5e^BG<3;P2~JE!u_h)mS@A%N8~-Bz=MX&Oa=~ z)V-@u#RPKp42PpREGbPUE(4QMATb!6md`$zNfx_J*)JF}qLR_|@@d z`;GeE@sRP92ph@(cGXySsT@$7nL*SG;N7xJuESif?c+!Pkq2~mvw$|4H}_LI{7&={ z_n{dRVyvC{(RHMr&5b(;7)$k|*ZJ$l8e?Q0vX~kJQ1f(135e0sfDhTZ8k< zat2S=ybe5uPrLJ*gJn-wvs+ajhW!qH*B!fp&-Y%hVI9;l*zTH14wR*zv!mh%or&Fl zRoX=!#hRHM4OtBZ3oCnBFgwFiD-h1c zJyJI>hsRSLme`)3uTp=T`nNRQ*4|7RCh}$k5F*g>8NH)ZdwKk-Lb#Nt zXj0GOL52QdT8H9uQsG%}a1o+v;j0I5tyXpU58;@R7V)(lZg9N-;;v4kY7|mrhP*Ct zcKuo@;NAN>`yEni2{cdvjl2&#^~9J>)DB)m30^k3T~NfqNiGYY;3j~R;kCCQ)YtFt z>T>=qU}Dn&*8(B2XZL*$hO2_Y3qS-r-cEMO`j$XD0!Q!7vno*>4Z%ysY#blt=U zX#~~cu1Vft`6e6<91RQ|{BuNI`-W=Cp4>GJSGC@XK0j8w0ZQ2o`7zt<0?gh*L!Jx* z#zPVaz+bzwSd#}xXe<6S zGG$;X9iNX6pC8y!k#W^_rCzwF4p1ck#LnHlCx^*6oI!G8@Twck30@u)#ZJ-53h4Tp zg`L?c7_+=mU(ghM12Y`{a(VvL`U7|~rMDZ1sodCt(l-2>_4tli3&<3^=akw3$y&D&rd5wrS>>vMSOaaj}UeAb*Rx0;NwNt;3>eol&!gqLP zaIWg@vc+0`XmM_9@r`e4j)Kim4$~uDDhy~jVziuL8=}` zhJ`VKl;6aS6xJJs1WJQta|%l#L9zJeE6-DB$MXcHh8t{vw_3EgU!!a?f|#jpqCR3Q zz5hsmbZO-UENR*;THHz)VcV_3{|1yX7wsGQu!4iF&hev^5K*+O#)bL|Aa?xQoRMzf z#&w6bmkys?%U}_{$Iu7^w=6HZD|0+Im*WS(*l%mueh6Q1ULx4Yu74Osp@1O)$@Fi| z7|~pLPhC$1$V}Acbug|SWF}GOYe^Uoo!5<7&?H$ET>9lY+CT?@x&5or43PzC+5U#_ z;T7P=XrBSVJ|*z$Av@rqUFcPtk7d`hqZAs1^L{d$Etn^OFV0o>pcR`SY4GNkiYI2~ zR=3xytm}f$@vF2z{#~q(yB}v=F$O<{)|mJF{V`2Tjc&_waDG?8#IU=KWU9ACARWD4 z_?H@NzNxnQ<$FU?*hZjKY?Xo8Hj5et9Jzc3Q)o;}{v6>GPRnE84`v7PBGY`w>*3GW z)$DrdT+fJYctmW=1VFsYQrC?pg28+%)prdzvlY2tBR&)w`DtB<%t}#3##oT|k;TR8 zTgf7sdYjU}g6PVPsF1-pQ*;nppPO#!C_!9p9TzFsTNCyNUYLT3{P}s@gjT=zH2($| z#IYDMzuQ(@1I-OWgI$}hZnt>>JBQa+UP3olCWdZL?@tU;xBLN5epuF1R4U7%ia$SZ zasoUgpz0jE*&J{zHxJ0UTzB#hU(8W^Uddy%#-xDg>q_%znR*r7wHZa6!*Y|;p)Q&) z1+Q7Gto}rW_$>)Lzf>nBs1DbZHKD%`$t0~` zf#3kpRDP#eQUgUw#(0{^s^t4vmlkLFTrA_tgSSN#N4@Mt89oRnh(h+Q5TK3D1+i!* z^A+B0?P_SM&$n>$InWPd9(c29GG^koBUVdNoNoG^sQ)GWdAVb!k@9iUVqz$LK!$yI z6zau&jnLIAlKo6Tz7cYIHkw`kfVtpyrB#8PKBA=UE)qo0c!ST{t(v z(2r&oN+G;_Jk}dW{!`@U?ij;2w+jn$TVUN2guk|5DDhFf1c(jRS7xU)@0PlhMBjAb z5r;bL)V!i*?Vk{^LOABG6g5CN_uS;;6wXR86jO1g@D0(t5>u(fY0DfzjcT4j2e+tt zBd?sBNrTRVYbTcSLa9L86xeHs(wly&$Qw#0k&tD`-icY%;f2Ynjc+Cn493e|8>`nV z$XFnxd^TS!_z>JO<;c9%SZ{HHAU@L?K79EF5O>Nu~10MQ@*D29@;^IzN-2xO(*`Inw1% zOLSd@h^a@cVaH=d0~}f9MVl~Y!!|n4g_ArzF`+oC8Bt$uh2ht)+zxO6H>v=5sSYDY z>Ul(g+vF0OtxE8e!~>u>^vrEbk~Sr^bW zEo_LYwxk!^m4Tb|HxMuFD>G-8YEP+dV$sQ2-Dw-_2n!bC;o}J;duZd1W(isniFfqd ze;BkyT+$z-t(Wk8M{MLi7XW)zy=~$oPLluLL8Ex~ z@6_}iAlWnx36#5asmc&gAupHugxcL1>n(>wTVG*E2sXYNq1c6-n9E^#6=iP4Pc`>Z z`z1#hJITGNtFgmbL#@hNaXLf+|8FE!?LvhEz2m4ru#n6|KjYe!{Tb5f5Cyl2@ote48h$Y_~7pD!5xBo zfDjzQ;0__U2M-Rx-Q5BVZowUP-uHL!?!CMF-Mi2Ir=Mx5?mAUH-TmoPRVP9O#cQ>B z<6yQP$jJ|(!LcsJg8WX8IT$kHb_;M7@zMe}TJCo%dfcI0Noyi~aD$K4rIh6W**^e= z+J6v%Jmx}H(TPxYL(1a9Cx^w~ZkVrwv7rkg0?oy$;QRjI@BMvxzow6(55*esj)*^G zb>l?Z3`_Gzzfl%ai>uGPO|T`ykuWHW@F@+#BX=NxPbk&=@kUnP^1JKe0jVTg)QH^B z7cqu7YLGiO5%?Xm5+9ISi|FZar&UL;=C66`<4A$_-L$B4?y|~f@9MxKay`9fpT}Jy zQ>pVtv&pQHngLzKWbVRs6c%_{Lw?%&6MKY$#Nx{zv*!wk1(Sb>Q$ds0l5|dd$v#NB5F(T|iXc zBE(N~@?IyOlOxOK#p05e8|W&84NfT|Lmkm#4|1@VFPIWxU=UVKK+KlH(igKj6xG9v zOJI3xR3;sulSLbG^MUsIQ-e@|=dsd|KQFKV1(H)6I$f^vn>a3b% z@uw8RRh(}US5dw*2(pySgrXGSMqf_!~+%u`4{e0Q{Da;XwLBzxRk#@1$p z+nS94LY*_?=EDaA1+~pzn0M>;<$JJ*kB(9KGEvTOmmqK~^^2Levnc0NDO zAa1LmBsgexQ+Y{z&fb5w1$epex|F=`CfR|n&D?Xup}QuiDSm72EulV`XdLF!S~@x@ z-C`H^MvoOFx7HQU;d?Bl@&z@ZLa77MQN%?D0|Iw-avZz548g>+A8=&6^7%=_Zm6I8 zQytFMZQJZp`1xIkxw$;~f;;eHkWTB(;GxMdVgb1rMvX;Xp}Ll6vpbRbFXbERvdY0@ z(z%k+x0E9u;AttBJj(or<`(?{wxzBr4e4eE1Ph%)0%W9u(I+LmLmOrpWNT?C#1lnY zTV}##dPl<>4RP(_M#E_mV!3en9{^RIBwp&nC9;HsBhCZi#q6O z7$0AUU?F%18!7CJ9?hj+%U;{S!&BSULJ?@W47@9|oX5FBF-TsD*v^d1LEnCGrmjf7 zXhAL}Z-KpbmfqYIs|JDs5FhtOMDK#0=8-KrHNl6QZ;j?T_?(1+w>LIASG-(5b-^uh zJ7J!lQ>(6UM9QK{REJ1kE6PV#P8FrzV_1JIjm0=l*MYOJNYHHm`~q0J5-S2O{|N z67C)o9@>FBcX%)jSGrTh^C@-msTHLq2Z3QgUq(3_jvCJrN&P}Xn`xppoUa85SteRv zvu9fS4P@o@9in`nodUDE9S{lvDKjPPp~jfY2bt2R$Tj^KW;Sf{Cy%2JP_oM@UzkU_ z4^#cYnxFxJrI3szuJ3hiI~%jUzHEon;d}yaq^yUC3sX_$vo}dL zj!tf4-{;gV!OLM5YZw;yFAHghhLZBief|?hT43#u12?<@0)23DbmkKP1_JsQ?9FYu z0eQrNj;QKyc}%Aw&m9Ft3 zJBlm0*^|b(W$7AT4QOG%40%o9cYrJ#uYuor2=673Q_V-HIwX`lhzqRj!$Yw$IlFJT2Tb_1AcAFbX?JEEHRuo?RbF0sXQ?dRU*( zo@ybJCli8Wk8ehu4vx~K`6-(umGLn{U!Yedd$IltIPs?E&a(43Zc+GlOk_a$)aU8W zzfsf~HNnkw@2+{zcw%qmQizmOM1D2GZ-V2OSe=EXrEl5;>pk0EzMo%%WSY9@S~}d7 zans64lJ$6H1y10-D?U2NzLFLCJyHN!8@%cK^Pc)5>I~Ic=B~LjbB3)4)FqcY zm_+sI3T7D$1u4<8DU2^T`n*kh^_xSdHZMyXc*lj4eiV7ostH`xxBHJ zkIn`T$OZ9o*AbX{iNA@_8-D_(?TH{c+>V)xVQ$w&Zun0>p6;TESmEY%iK5L3hoJSoL;sTnsr&C5I3`%F}TK6 zj5?K(2fw{3_Tx-zSbu_>jt#Ovw0M>i`{2X{$|l&q-GyRlSm_@ZUn|a-%FdR(y`1zV z$KZ1^mMU(9OAsmC#II!iW}Nwr%h=`fDQzh>HUtr2&}&8W+OXb3%H{GHxHmXpuRQKQ z5Vg#$l-RGGpSIoxm|n=E4Pg?HL>{9z#B*H&Ov8sT3X`i8UYmN-l%G4o+&x0BH_u7- ztK5GhB_RT2HQxCpw+B_Y{~;TUyj)K1U>_H6E8(mpn@Ud=axGlcQ&_JXrt+-te5up4 zoLy$e>$6CWC>unP<#TiY?f(8!3uin~tV%218vHWb!R%S7F~DYNBsY#4(es*}k@4_w zX2z3kno)#quV7O-szSbG^DejgEqT!s9OvbM)9xw<1=ub>4EFYA!muh_g@O{q0Jx8= zd^FSHuY-*5Ri8kQKW=!H`bsa6X(X)2olcAi2R>n4l<2&Z&Qr>n%QKJ4vtu8TRgebP z%Df09)a@MWabB}M=FZa?-C{$c0kr{Otw+>HJO6qX0(l9pCZjNN)wmmJVm~Y8*8bTI zcfs%QM8Cen{wb`8v2Pe+nYpgB)5VYRjjK~JT8psa`zUlMxgJb^D6C6^1w43irza^o zU1$!luQkdt!g+yhLlW3LM$`h^1g%01gPl@^75TljGG%npsKwI1 z7J2x3&hq!ODSdjg&0D6Enia+=L1ZX{>QgX7)d5@On`hgb5o<4}&m8d?~~>f&-mTxT=JbTT^{LmprZRx)KZFMl)qgIlg6RHof6<6GM{tHv=+6q z@Z}F;Of%eKyS6Kn$`#Fe)B)-e=*d+zK-VlEa6SB>t%l66kRax1YNb*e`a&-CH}{EE zF;O33?Gn09ae&_z0qI*@F@GQEJ3801Gd6H_{Ui5|%{?Q5wVmWEQB9*%9rm*qk>=_5 z5v+}tk(}D(B3UhuZ12ETRz3r1_u75l0SSS{C#d;vbbO=oSuj9H2FtAU%Qu+)p!*RA zWa-Mx9KLq|D0^eM)Y_c>F_NXGI2;r|#VcztGJw}VGm}m2#`;(hFUa8qlh)St&|IYs z;|~49A}P?IuZr636g?A=o`_D zAycEo;u<=a8go?Kd$7Ts1tbvMw&Cw~Z9r4Yl6sta58@j#6uL$i^KN>^HQ+m8WMK14 z0&x=O6Q2;UgKDJo-pHa6QiozYFW(f+i{%!ER~Foyjfuob_h83}vLX#i)UMI9;D7y2 z{jBY6iQ1@D6+^U)OUoXf-C+Ea$n6}OSmHRC^qZADc`IH~m~z~m--CaHX;HKS;HnDJ z^_Tbnk~2WeLtGhVAeI4Jk*&zuHj(gqj`GC1Vui=J-O%8HUl0W&@WH$ztT$o@L7*%; zdz~vY1AZw=_nNv`hgDPiU*3({`Y~Sk7HMay{O(?!b}22K^^$O<)V7U0L$3j}udP9j zJA~&Lqp9C_@#RC)iE}7NILj;-e`HPDy5#JI?rFrwf3JrAK#D=@a__R)+bJ zRPhoQ^=t(iHkmWrgx=gt>3$&H_ROc{f54I8bE`>^#s;cCU=K|`scvrfaXK*V*?7Za z3_2hY&fm+7N84BsGwI1kBnZwa9n+x0yXt&``0IJJtCdv?GWg#F8{@VGqSGtCIzKF#0k3Ob^En|QadrUHA1z|o? zK}Fn6Ri88?0{R7FBWm58Wj3M@9pfSZwJCHRh(v{zWe}{i!>p7qkrdjWu7I?Si6AR)!#xar zh&xXkF_I5TYG^;t=5v=enNX}Rl&nXZ1qfCyg2eVg$EWC7l3;<08rip;VTdAE#5r%m zduq%+QA@D0?xdUVo6f+yny;wDutNnLmibD+#sMY{ z-Rcy0;N-zRR#+rO!~|ml`-16 z=iuLtPO9|d%AR=U)1H7@=S!cmkqWFX;+@P>9*nmrPIET=zxV+dehnuM^AzR58R)Ug zL?;wLe}A%(2{n35;>`XiHbFSK(ppeSkV8r*B^qyHe$OFXn+oRqd@1r?5*KC}GR(zO zEbkYH6DLk_%eZnJ0ZKdxU~pr*^Hm@LEd92!1%Ga6tAYDi>|c-dM|UKC4Pd z-}SyeOuG%49!*y^78W#QMoG1Jk`sI(3IxP@ zW2w?>VgoPSf%T<94#+li)fK=+MmeR)f~PhD__c&5lJY?@sxC^~PzNPO(XwFBIuH*{ zt2ampO=*o0WQo>j_h&_s-rI0GO_z11R)$|!`txPPyVRs5)PH+Ehp&YN>?(lgM8P<; z7b6O%13V;!xCU`09GZ^6d#fy?eP{j66j(>*438Gds10^P>C%z|T3{V(mvX|4x{B+I3 zGN$y|nnZ4kaDET8jsWAfAV>%$cqajKkd_S6`^AASPv%E#En@R;0Cf#$#U0#HSkS5l zlNll064qbiX67LCoe*_ZubKuz=-zPf(^xuZPv5*5q%1m?Ll)LsThJ3J4w`JcYJSHm zRc6A`)%$^kNCrJ%aZ*TOZ;}IoYHIggVSFE}Or9#e6+bS7?ocz{Hbkixq$#v}4d_hC zNQQUO8vv=Ytt5F2cZYvX33vD8?RG+-hDksjd|0L?9zz27mXOZ_cuuI7X~1m-T5N3s zx>zsr$5b_>IeCLldKZVEe45I0YscN*BL1INakt-Q>+ zy@+|%tR95eR@0Yy*Pdt}O|3jVx9}+bVByQcB1ghvf(0YM!b2k9{DUUfOVVP4lO)0~z z+A4fMnm-tg#~4-1JfBMLweHTppC>18L<&MfzR(nwXSyHNY|U~~DQp!vT6Gf~^Z%eZ z?yu#)Q0Qu9v&slyBpEDhi%UJ-u$AIg##^%wsI z<(9Sx7ui%+3C7;*xGpkS3+O|$mFX^sJvD4a?80$k6i9yVq&9MPk#3K@7e)QTbM4L< z7NyTCeUX_QfqDceu>+k+;USaCP&rw-VY}H{QO|K^#tdyKu*z(Ur#Nfn?0>zQIkxHG z(OcDuYxDqU@<6-<@r59s<(FvV?!UbRwEjj{%=GFTk3{#4Zu&O~wl4FtrZ;g_0Kb<7 zleXTdxd^8660b}#r#4=aekO7$Oe>XQw%#H4WZgQdz~|5&h2man!>dk#J^hy=2q#$k z?_F=K-dK)cZ&+oMokrfDt}NX5?=&Bq_G)@-d!5))$Oz{ z=-n9iZiveJ&4*e&(X>Zuj2lMkHsHVn?OI5#rh<%5*BY#70C78*GjddS`rMNbECswb7T|v}cA>9XTkAU|4S8x_eg38^vbge3hS{s8>6_R*zCg#vs|UUzwWUz{y9$JR8^Ks&8~vy z;#2{DKhbPCv>d_0krsK`(awn6q(_jP`JS*6`tw)M}0kCLa{$-M>M@n>)Nr;XJ| z&jjpJ5nI;+O_B%Rvq_DPTNH==IIsCvWrkYq)Pd76Bs=XGnBa;Q&)6;hhMntSop7P*PK@eEbSXhEW4U4Sz|DOC; zga51P|M=@a68&58ze@>%fJ21@Zo0dMl!6f!Pw%jffJ5<&h!;WEXl{zIo1GGORuuhvdZWVbe#%`-1LMXlkC9GdINn4{u-`-PefG%;g_Na zkCaCZR=S)V3doM=Eb)Ay=XT_v?o3sc2`LM!7nu&PuT; z;Ft@W&-jK}kV zkow3S(_g-_y13|Vm;Qdcj3C`()7Cq4ia$Odceay% zedG$8zz25Lv5^6H3cLSwA-y4!?}t6;o)^ftR;Wd&*TOmVbOe3SZ~fG7a?QodRysW z-_NkI31d%qkw$K7US)$3yzy0T51lwz;)nPd)jrEXMw`wK?4q_&Tw?!jY4oF5o_$F!wHv&)SL5kM*4# zS*+BaP}TFK-A{vu5R{4-(Naa zpYA4eHu1bc-)@E7LSKDkJL=DYh~Pl1^{(!sdP>e2DBO;qJ?6W6+dLaqnW&JEYClR;y^*GB(rwoHFo zNRzU)Y%`H)|d_ZFYrH3Ku_; ztbC+`gU9T`*+M4~cYwn&6Fa6Aw@H*m)ytz#P5wovj(HEf&oy}Fp=i{@GUw_^yA|%W zxZ6L?s46Zm^E)2hGA+F|$3)cK@Ov_4)P7+%ep#g1H8kv8vUFH$m3>=E9t4hBbvs24_z3yug=EZWF@a=HN1gE52OM$X`);FX8!NvZ;Vu`K4m;mN&QP{zzM8U;1_Y zas4CW(w~ask1Uax{aWTskMs5!{<-^wJ&WHSfx-4-=!icKDPo>s@KQo|YXl=>-&S0_ zi@1}Cf?C|_w}Avuee^k6)1ZeetR!>ZKSy9y!_bQ8o%tG!uacV0|Hc>VD-Qa_*@VgT zNN4e5LZ)RSGqQk`0))Pu({txl3jXscq~_a}ijR(zH}}QfHgv)yCUSZj!(4Ao>`>o$ zEjyL;>yMDI9@fPDkBW8=xEW#ciMM)@+I*K+?hSh|`H584{jSewCPjS|=q0+0QaHkWNCNDkT;Qfyhh++Ke zeG4r(O=q9qnpcp;D5O}fF;Y(|ica_Er7`p@ng}nzzeAIplkp$AF9F;?)tQY57_`XY zWm1CBftzjU5k86Q+gy8)rtBay%!h;P>|$-+2NQUb;_*Kinr4TUej?TFPBZyQ}VE zAiZuy1%C08dZN2iTd(n8mrh4R9S~rnB+O!>MyN()#)~Ku?5|KB9r=wTm9AmTT#SLb zOe|fMI5#MW>5M@Dxgk(1QEcXUlRsT*k5&m2U#gxp=N0+^LkKa+cx*&04eB7LeUe4X zg+BA>Wn1(d&ZFsmFzf2zSt_S6rKk3BBrD?!Vd|EmQhbfh_RfStgVDUvB-!exCMq)5 z>)aTY{g0HXlE~XKznj0oSxfQQntm1`X?s@>5iN6y4z%=@l>Ly%=M!C{?F(0W6;^X& z=xq;)CWn2=VePNuap9Fg&m70S8&6v?ge@z9=-VA7iS>3z&XzMX0-v-!Gd9>&z|*At z{c0+6fTLZik#Z|g_^9mUp{WDKbsW1eBu0pm5=kFd@<9x}-~0Yj4z6v}DQs>{u~e~r z|ImN4tJCD2`9G|sthYB3=Eh5JG<*+zQsb$v5Y^bkrwp!T`8G=PP?`j+mFJf(HUHWa zc18-VO8#t5pZ$E5+lIQy(2*Y*y6xvH|Fh=pDxp@j3(0@C1t_ff3MidmXuoyjJ(1Hb z3!X-M6yj=~{&;M1wqO%_S_Mg4q+|zU*>W)GMsOE z{>s4>j7b~x6~Em`@a#kesS1$=8ds(=Nc&`wiUj57(~rjGf;oO|(>*QochX_jA&q5@ z&`du}b#lh7>NZzEK#VW7+sBX!gH8G&q~1*hjv*d z=6*$3;gv&ZjjD+$ z-@+gj8xg_Ny|uY6>)#SZ-DuLOE>CK!I`$*-5s^&%bI#ueXb;FpKanZIqt*$0GQ3uP zL4-~E0;vrK^vt9kvz~ackB$K}$rcIv&TFnq1D>*i0|mm+h(xCuS#$EIm;96gn2!Hj zez_W4Fiednf!I<9WleyFWuhjtYgLWZ5^9W>mM;=vqB|FCsdtT)i z?|~9hEJ$kEOzz!rU}->JcVq0GU>X9>yDO2aye28aws$`vY-K4bELj{i%xKhYX2-gu zWy)+I23>|*|6@56`!_JV$V#!9*44`rNqQBc!HUfs&hM~^^zUL{QOeqhPM(%1xuwH; zwG9>QP;IVMo`~2CR0Zx7L;6fem;%u%DD43JY<;@{I5NPLG%gn2EuY<=3>3|g?ICg? zQyI)ZQbPd=uqAX-+)1-?p-bcXlabEXeMGqNEBM-xEW6j=qP@f+aOuYO5g%I4$gIQs zhQU@Cw@G5L7<ke(FYIZeXQu%RdCtxiF;moPZ$pr z{*!sDVZN)9TC-=}zdF$Pl>Z~-N$sbS`C;X8Ke_n`i+M+v{1~;sKY}4zVIi(m@JTD2 zv6=OSO&aR!9>0vM2Ku+C)PIq$5v*p=2RRK)G>5|*`#*w<7KpcI8+aw?>Wf#qEAswX zFJb%OGHf5jJM+(3dQtp(h1#%XYfNf#ALNwwx# zXv2INYwg)Uh%JsmZ_^(I`msUd>Ovwl*Y1i~_+l1yabaiBD%ga{x04YaQx3+L!oxw0 zwxeKb2pWB~GijKd{{@7UHXx~F8J&dRBnhVR%xWO<^2U&;ktpCn%#b0{l!6_2ge9Z4 zO;8dbvtGwp{WJdqv5CsvLayb`na7{ro03{ji>0RBvp-QENPQSKWT6f#x4?5Rb`c-v zzkRtHAhK}=aMiUjx_(6Y_QvnEJ*;e5YDNB9ZlA>YCPBe7paqIO3Rw9X$k{Oer`s$@ zZ&N7rQ5>u8xA!nvEXF2GQ8-8i9CQ44v+0kW+(LEN<~-ey^3N|Fo^4ZZ=PjO_?T;o$ zPhK{T!FcAK(V(7VDYyIaFDkMVgPCcv9|!!|35|l zTSQ4{U@Jmb z7+0oaBJAY9VXwppV)OULi&)J-C`t1XwEiX#pAq+kXjfyX#!)%Q`5KkXh-0gZ-h$f? zKxFVnV`$^K9m^zS^{ztz=I@(zpusmrBSbQuR~t=!E~{$@k~VlPi5 z;>fhRBATSCOZU(9dT6c@iVS)Z;sPJJC}%zC#&u;RLF7e8Vza8Wa9y=EaHoc?`&4tJ zzh!%c6qtR!kj{!jkzF}Pwx}Z1kab?yTh}A*jhz_+7DQ15xpH@A7-x>%^^Y{3iSRI~-G>Fb$Wz_R)x4LP`!N54O5Ytvi%cF0U zS7w;1GOE);=V~{eXIR_Q=q3Iarrk=)$&TiGN&4XrA38`|2X&aZ(i0En$lnUR7r&5N zCAYM&3awt9vKtDyOBE!Br^co_^G{=6ud zXB@rz0olJ(ww_JZSCXTECS}>Cv7rx}Y#8+cXZuq!jXgVPjImQs+go~%idyr&6%$_* z_W2Y1fH5~^w%LdE40`bCn0JsnHE6=Rtwxj@$7cENc2|1XvYo{Cc06C!`aS*B=(1D) z?TOg?GWn0s6C=8O9I3}i$f5^l zk9{3CvEl>)SMg`h?~m}At%mNdiK2THiDlEJ)X4>m4OXi&&m9CaZu z7jS%-+O?z=x!;eDYHlrN5ap`QpS{|B!=S-kT?I|m^5*=Tz0~%3#RIi%Nk+a$jqUOX z#C;VPj$qR4Cb**7oF)&}xwYSgx!2RSD;R$~26GNh*r;VS%>4~R^(EfbTyv~@8W-+m zF*=c=OFJ(IJx#E}U7Sv_g9hp#{Y$Fn<^3P5`r3ToBXbPAl&o78$`$(E8f;d4@9JxD zYVX21KqBizn~z$~dhQf)YTpg@V)(mkMNrTnx46vK5A<>i@(-!wj)rJs_j%>qD>P`l zuAg%JY4%xhJIK@2ns=6ds5t{dn;V{)_u+#aW`p14Ff38b2#s+Td9!7hdbIFVqgmN{ zeNbkUCbb_q0JugnL+1e(=Y$|pA_ajJ;bhI(6qZp|!=QM)KEF55!!hg2nTBMxJyg}g z@jV{o`|QjqmTkxByL{MefEQaQP6>bHH z)@QIukwqV+nVov#mwbEuYxM@Q;DrLg>Id9w;qqGc*v9uq%y3vIL~cEZ@^Wq;{h}@? zsbMUxkmXgxH}AC!Kk;l+LPJu{SUD#up+6~NAz(U5Nk*C%zZc(?vibz_*vwN@mFhVg zxcbgm44FZHKdt>OfB9!rx~|4(iuH>#0HI9^z1muf#am7LA%%73lh;>h*1?$$hQ!U9 znPJ^rLBw?n;uUoHrTItqueu!qs@b>%NxB6pn=X&3k=JWNkP3`h8S@|^yIRZSjlzln z*%#`FY;{p;4cp)69IqwZp6@K13+JYR#F>YzoZ*Hrjf|^Cs&h>$Ak2nsyz5HAC?K>+hQkbOC+q#}D ztVa73v2YhQ697Gn5lzR?w)Xp3x2*IFvC}wHn&k2@Z8sKLk$^Q<%1STOUC%V;n0^53 zUd7LzVE-QykRUO=*gY*OL&~K)!sY$B{U1yzh-|LKWqda~iperRa+9aq@}X3oVu-$a z)ym*C@haVl?XD&1uitE;b|`ofs(7vy+!SeI78ctKQT0fc)5-H2V*=_8@vumw zCUoX)F5*BJ5|$fjtcr0x(_XB(!qE`W&8=8jbKM@8mH#5jg($Y( znv=himU;Up+9PH+w#lwB36rBJxH>Cji~+&n0PMgjVcgYhrbxd#cKq1(mZI5_?il*G zn75Jn)~{anQYWQ`mY5qo!C&rq+A7W1Dd90zR=VPGl{iIHf*~92&5~jL{&uSA)ZaFo zgjhn26>71%bAm=%+UWD$!>oE9)ZI?bA2z&9w~dI1CVCBiI2s|~yR%k}pJ2QNh zU&Z9XoN?wymLfJ5r`JLBiWc1V-}E0%*md%*^r=L5@P0G9T+8&I&CnBOdde7)Yj4sn zJSC;#M{=+%sichd{y0#*4C>kQuuHD6dw#oWEM_XHT{M`_?96q^bssg}mQ@{mh4$R8 zL@Y|t*K@CWUOWk}+wE(h|EhSakT4NJb?6uouA7uCVRA-W?K-FS_|kV^@dna5OE2PE zYT6m#{ow{`zegllsogGXBA*f*>WO#R?YV$4)-ACSwEv#IwU2dD*-{m8ZZuBU;u*r( z?Ye3|=M;ICVH{Q9rphYm?b}wTEWBYg^WYfURzhv%*>lSm!RgFV71$?F{*I5RI=^$O z2EA|XO*RJb!okEz+l5p}-&q)=#=$tqvFXv*a>R2(ReCQXB}j+?QD%{#U{hSFKMR2n zUF9bHj={}D!C^iE+)Z`7MAOnF$DqN&Vsly1p@+P;9iB(85PGIPj7L`W;6&N2vr+{M znRPlp#(0{Av3`0i6_W_=SkegD;mi}V6sqh+MeyNQuwQ~Nhx)u*Ins(sk&O*#AGW7{McyaKkX*6Q~L_5sW zFN<;_v@HMN`#tRZw1D@r@tVl8JH4G1os1yC_ny*oQAvCGc;)g#|>Nw8ATf3o$2dkPy^UAs0`eK_D`~da zI=g+SaJ7b7Oq-$84`DTD7({(nMN-T0z!B{&h>R3|XIovP&NUJCZi$>MU!DyWq%+~a z>YaQ{4ho=n^lh6o(}h?X=Aavn2Apq+6Px5C^Hs{kkadJuP+0CHB=EPsv5!Wmwxe>z zGy+ac^@#bs_62jO*QtcFB?P5p(bqTokNC^##3dLZShzM_!u_$PTWPA;7g`0Ga;i)b zQD9MylxtcjpIO)lBz_wFHme4B}f~f$TC%|{-IaH)A_!q_~lz&0?B19_DT~0wu0VVUPzP zIs_$X6;67$8NxK_!b-_De;~TS-n&XE=Q!$w1E2;pD@61X!j7lr_FPB~)z-NG;KWRt z{{pJ;FyIOY`3Jee8p5C}0QDa@3;tggPm%*+m~%fH{l8!+43+|5NE8M_|4(H4zbb-< z0oDJB=tiQmdGoL*b0Syt6t z_}lNV4rWZuH2)cxG1~^5^KN6k)osr+!O-XKuT?^X!RXWB-+bp&t%;|hO3}dJbJ&PB zY;byEi&&VLBCW5Y&(9-l(`T`M_vViaaUxtUcX5Br!~xXx8$m+9tm+cjI$3HHZ?7pR zbV`RwbU3VF7;rG9R2jvAIK?fo&^K2h{eo!Pr3yXFZ9*P6^bE%OqV3op11y-A9*F9`k z&ad`xK4W2PQh%QL|63LGgxW_%)L#!Sp_ObWaNzqtHx1zVpfck*0#@n;AG&1f&GavI|xO0)cRt~x1=sSUHGx~ z#@Xnmz&w&BMK`Fv7e|4)24MS7#td%ypG+@&0nIDd(!zD8Kxg@eDPw^#?<*)+V!>oX zKhb32IayqH!CKHhqQ{DHagC4d6Ui&dFPV)-tJcR0-G$ee83AeNhSqaW<$}^-ONT9< zgY%VWhMHF^u^n7(H0M4AW|h{iDt~54MBwX=gu_n*;D-};B_VaV*^ZKuk0~9I`V~5J z+`V_scpnevhxbn@&Efvk%!^4(7cV}1F;+-2RZm(zbFL?{Ie?@IR20jiei2DHdnGPsZG4vD%O`QQ<-}*Bxwl)$H`& zm&=lG*Tbm4^fvg1I~LRjf0ZPj+zGc8DQpa=&Ux9gMzYE6r7iBGH#LsS#<|r)iwUBt zBkNk){q%(on*H)eA1DAqkHv8kU!($Go`!; z>s2HcwfKWE_kqX`|KY@@k+Vq2H;GL35@r;2{WzhUdQ@3&HuR-&Ksp!s0|t6^Z&LRc z#K9^b{eAB1NqBD$k}{l6Bp}o0^8oJHC)Qu(8?It}f&2R@8bMEfdkA0@beTK4trkr& z9^|!f;3O(Yp{TzeOSVG)+E17UZVx}G&-=mosc9KP-F1u4*2v8p$QC5@=Qq98MaD$pBzm~}ci)LI zmCKKZ8_;FjT68QzK9y>vM2uKE??h7Clq4@amEe@%$(^P7FO?XIt@xjk15op$_WkIB z+A?W{HNhhAlcA3bRWI}ui?#CUK=1OudxLQ+@C9};D`;d2;AP)O171xYrBR(49J+;W z>n6Yw+0?=I5IW1-J(|jwa#k^*^T^Ic3b|Qw;8PbM5`)4$)QrexP2tFsPO8ZYx9+0Ony#2xU4jhVl>6~v76HQF6T0@>gE1xIHp`Aa znZZ?=+8fuJSK|%SaR0JC&CoB_$R;V%)RDW<25qCymQx&3k=?gwpgo+({3iYl>z_fm2u?Ia-@$Z{v#s9UV6c$crFCa7Uc* z+8Rh8;q+b~F7ONdhs3Gw?qC4)b0m^IhVbNGx@4ro{83`aq<`f+X2t^fIH5C&|9iK2 zbqN-5Bh?2~19|K}awi8pBh8o4X+k;z8NtJA&dF2H67(EA%qY`ZJ=A`p%% zvKl%g#D-nW2>11me--C5`r^A|%CHe>VP2|bd5s=X5~nv?^IzX%KZcfQ!wnJ;dbGA8 z$*v9lMg=nlZpN50(Yes(N10o1u5_NY7RXua))^4x5)wLo$IL&wdQ#MM*)pd!a$n&*XbCyQ?LhJ-fdQ-i&jwr!|tiJFDt`pjeJ~j3Rw8O|&(!F#0q5N&n!LL0ZaO z0+J#@V{I;%9;m-L51@EbxB&xjjtm2r-at%alaq1qWr≈(MvFIM_xlz+bVgD%XJc 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 [Introduced](https://gitlab.com/gitlab-org/gitlab/merge_requests/16530) in GitLab 12.5. + +To add an anomaly chart panel type to a dashboard, add add a panel with *exactly* 3 metrics. + +The first metric represents the current state, and the second and third metrics represent the upper and lower limit respectively: + +```yaml +dashboard: 'Dashboard Title' +panel_groups: + - group: 'Group Title' + panels: + - type: anomaly-chart + title: "Chart Title" + y_label: "Y-Axis" + metrics: + - id: anomaly_requests_normal + query_range: 'http_requests_total' + label: "# of Requests" + unit: "count" + metrics: + - id: anomaly_requests_upper_limit + query_range: 10000 + label: "Max # of requests" + unit: "count" + metrics: + - id: anomaly_requests_lower_limit + query_range: 2000 + label: "Min # of requests" + unit: "count" +``` + +Note the following properties: + +| Property | Type | Required | Description | +| ------ | ------ | ------ | ------ | +| type | string | required | Must be `anomaly-chart` for anomaly panel types | +| query_range | yes | required | For anomaly panel types, you must use a [range query](https://prometheus.io/docs/prometheus/latest/querying/api/#range-queries) in every metric. | + +![anomaly panel type](img/prometheus_dashboard_anomaly_panel_type.png) + ##### Single Stat To add a single stat panel type to a dashboard, look at the following sample dashboard file: diff --git a/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap b/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap index 99f669dba5a..69ad71a1efb 100644 --- a/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap +++ b/spec/frontend/grafana_integration/components/__snapshots__/grafana_integration_spec.js.snap @@ -51,7 +51,7 @@ exports[`grafana integration component default state to match the default snapsh >