From 4138588e7c0d95783a2796e3266be6893afd0c72 Mon Sep 17 00:00:00 2001 From: literarytea Date: Mon, 6 Apr 2026 19:21:19 -0500 Subject: [PATCH 01/12] Abuse/pir form link update (#60636) --- .../reporting-abuse-or-spam.md | 3 ++- .../github-private-information-removal-policy.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/content/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam.md b/content/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam.md index 9168f2440a98..025e04ce9ecf 100644 --- a/content/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam.md +++ b/content/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam.md @@ -20,6 +20,8 @@ You can report users that have violated {% data variables.product.prodname_dotco If reported content is enabled for a public repository, you can also report content directly to repository maintainers. +While we encourage using the in-product reporting tools detailed below, you can also report abuse directly through our [contact form](https://support.github.com/contact/report-abuse?category=report-abuse&report=other&report_type=unspecified). + ## Reporting a user {% data reusables.profile.user_profile_page_navigation %} @@ -81,7 +83,6 @@ If reported content is enabled for a public repository, you can also report cont 1. Complete the contact form to tell {% data variables.contact.github_support %} about the contact link's behavior, then click **Send request**. > [!NOTE] -> * In order to get accurate information about the abuse, the abuse report form will direct you to use the in-product abuse report links. If an in-product link is not available, contact {% data variables.contact.contact_support %} to report abuse or report content. > * Users in India can contact {% data variables.product.prodname_dotcom %}'s Grievance Officer for India through [support.github.com/contact/india-grievance-officer](https://support.github.com/contact/india-grievance-officer). ## Further reading diff --git a/content/site-policy/content-removal-policies/github-private-information-removal-policy.md b/content/site-policy/content-removal-policies/github-private-information-removal-policy.md index 95aa3729705f..12f4f5138261 100644 --- a/content/site-policy/content-removal-policies/github-private-information-removal-policy.md +++ b/content/site-policy/content-removal-policies/github-private-information-removal-policy.md @@ -87,7 +87,7 @@ These guidelines are designed to make the processing of requests to remove priva ## How to Submit Your Request -You can submit your request to remove private information via our [contact form](https://support.github.com/contact?tags=docs-private-information). Please include a plain-text version of your request in the body of your message. Sending your request in an attachment may result in processing delays. +You can submit your request to remove private information via our [contact form](https://support.github.com/contact/private-information). Please include a plain-text version of your request in the body of your message. Sending your request in an attachment may result in processing delays. ## Disputes From b88f59ff65d0af2fddf619fb9eb2059c8d4983ad Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 7 Apr 2026 00:07:41 -0700 Subject: [PATCH 02/12] Delete orphaned files (2026-04-06-16-33) (#60648) Co-authored-by: hubwriter --- .../help/actions/actions-oidc-settings.png | Bin 383547 -> 0 bytes .../dependabot/learners-enable-dependabot.png | Bin 123013 -> 0 bytes ...curity-coverage-view-summary-pre-config.png | Bin 101506 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets/images/help/actions/actions-oidc-settings.png delete mode 100644 assets/images/help/dependabot/learners-enable-dependabot.png delete mode 100644 assets/images/help/security-overview/security-coverage-view-summary-pre-config.png diff --git a/assets/images/help/actions/actions-oidc-settings.png b/assets/images/help/actions/actions-oidc-settings.png deleted file mode 100644 index 5bfd4d4a94a1a949563377da6f0996f8d8d4e679..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 383547 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�$D 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�Fy1l9%39Pye^ZjbMkuAUBB(T* z2c(Pn(WnWUlxF&m5C^C0+7^x4{jxN{`*!wjn3o4j6{BchDCa9}zh`==2`yCy`E z)cw#rXo{qHyEAUC=+5hLh}|Q-Ez9#zq6TsS`CVp;GCt>MSw|Urkc7@V1;7o7(~;2D zmP^N{5L>pX2i{(E7;Oow8zynbQmaQrWgb+g${-K$#-S_nS$-0n2QvoketTX_%)_|A z=!=&ghkeGr=1Z!Cy`CMnlKXaA^B$4zrxASH!^|Kl{~HcyCY$$H{odN*;`vx)i=>Ok z)1i*^1~N_S=aOz0w&Q4zr<{-Z&)IP{jRNND-2EuMzOuiKr|@`-fW4z&kx%iDwG|+Z zTl=X6+8dMV9c5dm7{a@ z)&kD1b%kHR0a02UPsHL6Oxis4XIA~mE9SEd1WjiI54+Z^kC(-294{j=+qa5`vP@dt z>qkjP8HMOmMA_CPLzXR63R)GaR7L01nygE9R&P%8!CDqe(^E5aD{NNMzwFawO*ZbN zL5V262y}RTxlD~KiWDZ!{T$3RBKJ-CMuX<2<8=8nkKl*`z()!eBEZAg7nhUpUHG8o z*uBD+UB5*Ss%;H3g3eEr)4wjayBiO2{&1i+*dEFD-KkpnoO5F@@{-#43<@wU2*)B9 zFWvtP|Bl6BSTj|XATW~Tm*!X4&|s2N?)H51nXmitvR?}_aqV=)eS4?(4T7T^fO!?+ z-@XnF>_54^*xwRK268IPjS>Ir7zU9(`4T2(|JU_eJn1aKhH~22XCe0$AH*K@DULDG zK0m)Rt^(SCI)#2Xc6}XR^Wj1RtG?&f1U&*+jNDCzIv#*ZZZY3+H`LLBnD0!)Qz{}W z?LLZ%xKeX-(`AL59XEmj49F+-mh9yT;`Ikh`_g)kYpJ>^TuZE*6v*y0;>eFU5p!v&SmjGd#O)$te|}%vN@f1^Mwgujvl9tTyuv)qXDytQ zi5n%5k3ur#{to0{J@=fdf0wa)j!@bPrwWnGNdA6rbOfI>Pc+}4Xy@u1p@y_Kgyoj|Nf&AcUJENG#_xb^L}lgKx{bo4jN{&03g-r!Dk zYjdhhiv(wAg}UeF0EN>3>)8b&kuh*BmKiyF6$0n;n8P6e}H5*d=2*=S|Fofxe3 z_h_q?fd%Z=6tU1I{2&}P{iTf2-x#v1Y_{P*3;BRs$!l&HU*yHdtGHgDW&RW&#i zB#WL}*&VqCMr=J1L>B=M`nGRds|P+Tpt!LmX!Rd&@KE@sb!;qhHv?-1e<7$Hmg4>I zXc4k_x96?jIkDL{*Tt_cMUQu`sF|rPoc;6ScR~^MKqUO|Uou$D4hxNFXhJ^kGCyFn zoeokiKHh;ISr-SaWfC4gu}JDTPs~x#(Ws(O=fj&4@}1gFTKeHWirc*I3CoqTZrG|% z0m?Gs50d8y9Shb;AKa%SWDiR#j}VqJ{t9T52koMpU16N!?eY700R?aPcIMrE&x3+7HKkC!ke3Z(b@Mj z6K}na<^>cJlc0YBg|ZFyutxcy0UQswReMx`dZab=D(w91L2toa@$(2j0tMWb1niZH z9!2g4nZP#UJ@!n_J5eahd9hAoOkgd;Z{cftYPMv?ZZ>1jIG<&v7mngikE{@bq3 z)sUUL(Q2<2PL~x?1p%DiQ-sifTm0bFIHO_1o6UbazRph_tA`jX?qv*q)oO#081|}3 z)r?{y3sejK{5GYy0X8Ep2rzYMC*$1ec9WHtyjy ze5GSkz-h5^T{_Ezri#iboz1uqtj@?EhRW1b*T5@xj_AHA>cF|6qQw-wtwy8(Jq8<& z7s&rM@(Xj}=&$#k{QP{))h}{vTVRUMUV7m@Gm9sepnkq@fAk2~4cNj&^NPsxUv5*S z7p9t^`i`(PY_L)L-ox=D{P7SW4YjV&2*^8LyoiKPcRUQ6|D0p9C3n0iMoP^WeoLY;9aIQ- z!|Xv#`rAEo-in3`xzf5T2)6jGzI=DSSi28fW{W5dT=hK4vY3B9y{-!t0e1C)`7>gi zWnwX{Gz@kM_s8BLch{nvMK)>aAH!eS;GL0zV|iy)r+N)*Ta#256S@8F$ZNQ#(MBh_ zu0PW~+!u5Oe2fIRayx9z+9b*l1jD`Z`yDlJv;`z2uA;p0mo5UrUUE}P?ZPvu$02FL z>ttV}K4|hB9CZzaNF5{J7WdKzj_(T)qd-w;v1HyU9l;fU8(=KLw8@rmkt+rC|KXQ^ zi4>f#+{Y7fy-rMgT?zFKIS4N8W4siRpa6bod59f-Cbyr;Uh+m+|6)un_&y~%SmFD(p(=Q z?0#I{xPp|6Sbq9)U>SYFe}KLgdSfnlm*Qk$%g<+ik}Yn)3V`Gi=F`(OvXQ2Y4*iwI zbz>saB-7V=E`i<}Z6^mz!h*}FJu)#}>ESr#QK#bMI-ihEkgaG++5LK4N_5^AH+(ck zU+L%*PFmu#*yk%wQ)uMJSHUUoOLYM?aFE#EpI>>j>-}~;hwuk0gCI4c11|vZ9`mF2 z$s12)6j6L5DUT}4G!M1k(^@$nF~Gr3(~Kb|xEZ^r*`eTiV%M;b50=a((CO`AVe5?N zb{g^luC8v;B63-TMpP#D`jtT9|InK_!rW0_;5`fs02P2~sA}irPIPPIKG@?E1fMeb zLIZW$uB3LhUBQ=qKyJNj$RFWFAifRB9=DjzF-qCg?^ z*N=ZOTeY2463bg&YaV4$^1YR%oF+f`9b-FIR!VFFZR!)qkIz=sE6oG{KO94^i&T?! z8v2peopJNLH)P@i4P?ALJZaiq(9xJs?y!`a=^#sUFsEJr(~Z=fGsGMk9qlltUU!h~ zm6841c`ewx^2hDWO=s<{tv}v6-0<2e_k?fBm!D{q zxW|*Rn;PsgVoc6|=rMnc3GaXT#u*oE_7Pc1WyX?);b>TddQafcThwVBsXF#ey+e(> zE%9y>79k?xfWI0&@(=f66VE5Of1OND;aN=gp0dkiCNs~Z&yj)U!ihEKX4AgoVDG$d z%ONzz2&tCgnUomVf?>Hp&d?nNZjVFj7?6rEsA+9eu zB;Hcz+6y>R(sDUWHaCEPmyol@e6BwBF+8JYCq_2x`fm|d^J$sYg4UIG5EPRl^woHgHQN6EFJ#(nRCrXmHVfX-;V+*75UcC zrE?7%aQhdRiEJ}ra!jcAS=KpN)3ZXqYAV76eeYAVHHGOjJ|m)H8!1M4g2aINUrkS> zR~{Fh8V5dEJ}-NWy}IAY&MURI3v$oYmT{)P^vZjjT4<(Jdl7n_P{hN@P04vXh;Shh zwy&OlG8KUIfmAwwZ~ek1y}MZClX!B6NfUqi*3R%I2t~9$fAPro72$-0O-1dHh?ulW z81zDsMzsoWBh-E++G(-{`sH@Td5|N#Wy=IWB%#Y)Jxu3 z!*=G+@|18BW_I=<$!aQ`SL}C9saeB`xnFNp9NIjl$u~i`LNbDP-!pG-IF@!aQe%H8 zE3wjJQLH$n&pu1i)mgtB-Skk`PT*2j_69sP_02902Y~MjZ1C-4mx|O+2jP+Z*3YFG znV7?0J6w)B!$ge@L(Bc`p(Jd-JeKa1Nzncorx3LTbpDfB#mgOPN4PkoYq@tz4u|JLikGfVWHr3%ZyAE%vw4S@9&Ycp)U)ga%8wt2GyKd=e{-CqanIN z#{oz5bep;HxJtKVkD{v|6?MLfN7@v6QMFiu))2eI)eQJ!hhFJ!)g+;vVxz!$Mi89a z<+R_~8uif1NDfFGDTTIZ3WW+y3^EMT+-L<#KQF2%Aa*RA;bZWAFO$kcW<}|c+wuRP z3HV2hsYUK5K>31A_Uixmd&d%g8~Fa*DQM7KF)6|~*9%b~9zkR>DU1=F^#okDj>2zq z2^?W}Yc3XU(|Qj&RIQ0d#jGU$2S#@1zDdug0@DbS3lWgNgGwl{d-QLYwDc14x`^cgM)jmRAt-~Y8AgR=m57kJS0#R>6Lq!#qdr_v*K`3Z%@nPqIV5S-c6r;DZ zZ*}x!(d=+`ptZjDtmSd4=vIT#?f~FQfE(nn7U0C(^O3v(JhdPna_Hc+Svh$@7(rae zV54G@giLwC%lCE|$yjv>R^+mYS7=8+5evc;LsI{q9_>Yts7nIa;6$j&o6sV*RlqP3N&~h0#qinvrI!964P^t7tT{$Zm+v>hux!W*8vf#RQLU@FUAxJ|c zY5$dA-drqqVLIe}#*z;t7J+I>WE=U6n;-Cf#Pn*DcRgTv9pRc;sW`Rb>Ddf8*E(`2 zR6S6Lpt^0=o#eO7d=B~V<}dr~QwI4e2^pdv4YCYK4~D+W~*He--bvuJ5zN4`E1fV zGVV-A0O&YiInpziygi{Vid7WBIAAoapQ-M5p4Qu6&<|cB3Sxr6SCl)F9+#IJGB?^m zR)n6w_-wuwIf`EFPT;exGs#YPE?-Qd6;$wRUfYgS!Nr^Eq4RjE z`!~J5Z58NLR1im03q8PrmpV3>wL^dPZdl?csUy-c#hO)qU;*nt|otV6z zhV0W8()`nJ;toV}x7+zdOg}&@5F)v-c}P@VeglOkRm>pTFW_66*jM$8C!a4%Q1gVr;XrcOD~7)cBN3`oYQx)%at_%I@}(F=SI+*dJZe|m z1POYsk+7B8EGzregL6%UC5mG5(c>d1!v$$g+LSztx+Or2P}S@;{v{Efq@Cru4xyf~ zL=Q`ozprVRXsJ?JjaqHwGe1S%g7PJ%MQ>`gTeJ~XA32hL{a9o~uR{C%_!#G%NM8H` ziTtq+6;2l)z?kZAU1N(=4=Y@&H|mMOpptwzO`Fh2P33pLs7MTT(R;q+*M867Ye^g; z@tv);D*sA=wS&d_aj#DruC)sEgGD^mM>0To>y*I4e3hwEC%hbYrLXvs#S zt3^Ae`^5h13*p-rD?H^Ou>+PFaYan@oU|4Q)6k_O>izWK+J!B8^F1EOPsU#d~?~` zQJi;zV}D`K`#gG!rVx& z`fFSccWI3uJ@~&LMs28?RMIq$y_aPZhJmE%2kFEqE_x=R`3oUjds%+E4F@-;O(^xB zy#nAyK*?i^SXY+9!+;uDb=9FyHlH?V>b=}_3L{7%+HP4@Hl}V!evxgb#4j-s8HYht zP^8E5GdFqej*mx4*_VhfKk`YltoW0T&>X>!eIVSlTW8)fIS8EcsC0t31|a+S6{grq zM;l+(RE{ET>!w0`{SzV((mc`C>*GgX9wQ!}9xZQeW0S@ybYLxhHKzm7e;-*?R8)S$ z3Adcg2pvUv7dvOMFEihxoW}N2{v(+ysyXQ>UdfgnovoLUJ&Y0d+R8||u5o<-k-(Pj zEsm{~!*CZ|BB`|V)X_u^C@qNyH5Gtlj$MN$0$yj%{$PqoAQxvzQv|#{(5)v;kRFIP@!MZ2~9Wa-&TqopsO50X%Ab( zYrzHJdx+~gj?_Z|kyYW+=FX}A>#w2*#fu;!TZanml@Jn#Em1?#y-DHjQHEGP>>=y&Tf$8E<3`=Bw`#(4!!Uokps$b(@f8piaJDEt#Wau| zS6rxJOhjP%$PD^7^CQ4cx#N>e@I-Gs<^XRJr~h?2tK0(pp>sOj|AcD)m$=$HR0yZ% z@f>I_{#$j0W0evMz91Y|2Ojl#hvs0M93`Y@+VG{5HmPP+Qahs0#H8GIH)@}zxs>9N zuVKIhd1#r)R=VL(Lw-Or^wH~do{@e~5Rww~w9{>XE4xGKxIVB$Rx<1p8yn!YJ z#VlxDaOd?oLI!LgT?W;{bml$?YN3`H00akXAqU^1|UNglOWh2}t5 zANj9@`NLMp*)B-p_b1qHn#-!K*2@hJJ1(U^;w4E{e5Ju=Mam&O8E8spW_XA5$ptd~ z$YYAMs_KCsz`-!t&fD2?Z>3zcEHwAS2;oTKGnK%8?hM$b2nMhvOZBMGD9{ajf1rAF=C0l$Ey&^e=&bc*OsfP7`+%3IB$KHu zgN@Cnd0}&*Q2U8;UF1XVV<)B5mpFUW?{HXrcDZ(TsmDktvjpOzIlC0 z5D^cA<2lZSMMa2kF>ihDDlRTFx4&|PLJuN!reGwpucfCyh_0ye&7h4X zyCsGAYIwnNXh>-|GIXlH>H)d+gJ;AtXW2SqWYofNO20g3PW zLBY<&(2BT*&K@2a4>n<G(d&~98{rU;E#Cvo-T;2)ReY+t5G*Qrkg4c|Ni}PFKVt~|v*JMhULW3n7#q&~K zO}(-WQXA;a204y^d}i{u)<;6cY1l%h;7MlY^HlMphv(hmmxZmWJzfnH4YJ%{COz&yZSnK%D38_c?s2r|2Y*D;2tEVmxmXZJrKf>dywuNv%PfPp z?8humnY=FESH(?L$K!oeHvMV8H8{%o{lXg1SE6cRr6A}+8Dal^e(L9H8$2~ffV|{p zy?4~@=huO(090*?&4hF7^Tqx!UR1@Az!F)ZJAc!E#M(X(a2mqSKxALYKPEgR$y!b)t|JiglZI!(fnXA?p3Bknvd7pp`{*ptPGEjXi}Kzf zr15x+_@AZHW4GrRl|5if0-F)9Oh+t)&J5>-=pGrNUO@;bUScfdd($rf9z-_s7Q#Jr zq+R9z7?7QWLsbKIK7T+8f2|HQavRla^claLW3$^Ve=&jz;lg@ncW!ZicfRd@VL_13 zM4y(qb>Ly(rW3s0zEroUQxJYtUGT=pN;)ZE0#>*zKioY=Bdi38(?FwTuoTgf?zK8> zwo~uEh6YZ4Lqb6u_`=gphW4J{A1Dku1)KqSt(=>JZA4ga0FGa5ebDK@%p&C=|`Z|QdO-+=Gm<*E*CwQ z$TX$@5wFaU7D!`1hlk%NJoaOfMh8mD+Kc>VNW7mRzemYI=s4*-7|Y^S!y3lN>b9y7ANC&aZTfS!njH>qG$ac~KuWE-wk=$J0_m1NTN(2df~ z==H#OWGXY5gAc?y-v8yh|JE{Vvs$(+O;`QNaUlR|R=k*nRv0II*WFEq@-F<5WMtOA zcI;8FAa*K-Wot&4L`oXZaK+r>PvDP?d!b_qL|fBM=!)hrcc{QI&Y#2vq)eUXA_Ag# zDFoc>uJKm1`hew^z~e*4{isDkIizgThr@z@Z(Z|Y z=8L?0LWv^i#Ty?5J(WMmxyi+4(RaowNqQ6hd?5uk1LX0w#6Z6*D(2lZR^}pEdJpde zB?Q{+caZulhz>w5&sRjiN}TQDfa%@AWfeJ<$AN_2qZCFwH7QximZ~qtny~|SY}nf? z#on@8T=tuV`qKx|G>^j&1$L^{PG^bdm#V9&jBHG8fB;;wOvq!N4;jWxy)nyxhkLK# zNhmZT-wZyI>U7}pz|^N6Dtvf4zUmC$pA@bS(Zo~{w(px}niMiIvWu3~^u7Q>3r1z+ zch#RId9JPk9RKT;_&?9ZVHXXmRF@yiQ-x3pPFrBt@%^2SD%GKJcvw>&$-4Xea*R34x()6+e#*bJv&l1t=Cx=J)tajga`6hQmc~cKGPfWIh(lYv15O z{Xnt#F0|lD?s*~|wrzFNjxuF9gn@aMx`TP^n!iNYGS5b+d$5yQW2A9^XC^Fo^CY(} ztx8GoX4?w;&BodWYaH{68z=OS-03T;Ah&SR=nc85gJf96ZLa?0^3Zz4iU)l~t@rgW z@{!K^t&#_JZoEMj+6SoFzb0h6ZG}ws&aB0%2YgnMsmcjFg`0}jv=(5xFVgU@Dx9_w z>*w{q%%YDX&8nGm`z)t(c}vK=q4)9gwM9tsSKps5)%L?7LN?Jgt2-?oNajSDpwa6)pVH%qv*wydbxh{b25T%(=TzRYt}WQ zTVh{UT=Kh;46g^S$99h}eXq|_8}|-)WsE$=g9lP`Fu&Wrk=eP(Y%$++3OMIavo0N$ zPW{rOb(uM=q*-A>!|>#*UanN_45wq?OyQdsdfs=c+0WId6`>Yx5b-`MQ;%=(98MdT zk+nPV^^&ekcZ=@q@?BdnZ_aMp0VRdiDd*!Oj3OIABFk%I0v-GBKtKczMwpIK1HVV? z$KjTaiIPjMB#?rE@YaoMGaSvNTXhclUH66*O2ZeTSp7iv^_JD%-1Us#mYTMh({n`! zg?XX3nx*mvX_`Pcu$h7^?!06P7o}Y)0IJ0XV3HcS(LG-gFf4`%_Jz|-usXS#JMLg) zGaC$JTwz6bq0BP~2{F>k^oW6z@NjppyhS;uug^#XR{yH53H6keWVzDr_3e25%j{p) zF=j_G^%*cT;Eh}A>A2jnHykXz!YwrDUG`jK*xU6s9LL%GbzECP`RS-^rG+eY(`h?- z<^TLZ|L2Fj*98N54psNQcie}5__BMVQGxHG*|0BN5HM~?;yKB-nR3ie(QUIJ9QgM? z8;UuEky#gZ=y^;p(;Uh&EfkKd;2sABWhha0jsf*jXeN_vDSD2wK->OXHsA>ZP<4`( z(@)RS!;D3xvf?U+-7ijVKQp=PvPD*YouR@1hIWLpyd{+Xn-Bdn7E(pZCCz76450yJ94JD$_n#x=d3`&*<*FNZD&} zeiS=?$YL?`bOTKv7(q&`o6~H;;KdTe6q;L8Q^{J>h^MZmW(nhiBS}+JqcRD>xt1o* zx%)tI9nO!*Le<1n+w@I(ZN*AG0J`P!OH+kgs1)qd>&FDGx5@Y4zVmjpIY7k zP&Y5LNLc;o18#n)=Tw1^i#CaA!yP#XQ%B`3tsChMCl@i)&#rfSwlP^^FX-f~lS zp&swwA3r+LI&+)x$gps*!+EtHmA?`ZKr%wnwo$E*f^%B&73>+Y@EPFjq7rrwV>B9r zt0K5?ox%bc?9;tdkO~tK?@32Q6@am9p96@+0kewF-jG|ke9!m3D$8k?XK zED8w72YDI}9NLT5A}&G$Y=pQNe4_B_D~hCcjm9^P;`--PKNdq}M?&&^$2Z4qL5a#L zr9}?^$`p>Cnk#F(QPG&`=Vt$&%5!}Md`Gp>x!x^Z{t;)0gxole586B*&O+el)_D8$ z)_jGG%dqG>;hDd$ROQuXX0I*<#^}s-3wDccu(7p8`qtw6mu+gM+xV5u1p?5!9A6Q| zK@G_6^!mMEAkF7^pCKKYjM$DohClfibk;IF{ zIVmHjqNgxip&LZ3Ax+SyjHG%9qZtAV4BJ@0#Vc@UiB3Xw` z8fU*b$Fig0h61mNSqu6TWs(hJYsXRSo&Ib0s@k?k~VP>0Fx-RJV$wD;Po>|H>Z z*tg-v{uS@|4>>xIv#WdU`LL~glO`KZ`sM!{=l^>Ldb|GRx_g#WR;?6XFv{n1Xi+di z{H~|Ok?ga}9@4x)scL}`y14wj%Y|(tQ$UCO`Wh>ZkGnt=# zcjxVR>UycIYh&h^lynZ8jz{t%Iy0+p%Oi5;$6n+ocB03x%uV{km-k1aW<-%vwHNl+ ziIHoD`cBe%UPq= zov#W5S+lo0yd@u}rRjI^OQrxGLOx2Z-U;EAr&tNMtW!Ov{hE!>f2~$5_Xk+&!_D~2 z{|+jGFZRtM9zCFze`MpyT|1r-(lG{KKL4per*H8OIc@p-^h5VC)-_Pvl9G|eCz2`5 zw&CJXd%xJfiy1eSlX~k5#ke`K#YQ&XtuM&@eS$BB&mJ53=~Lc*Sw@|PKs%ScldLsp zNipzeT68Yc#TVirK@xUp8tesuU(V&0ZgC3BGYB{mhIR$1|O1Rrtyp|8+Metsft1Z_Z@DIb~9TR7C2u*M9x+ULJ}mJPeCh;2b2kzRDY%-7l7^ zh`$yS_D=MT_i;X5p+H1@usau15jk;*g|Jp%`uscMA`Jt~UIp~wx5X9dF&?T{huIqy+p8;~B{oB26Iu5>wdg2!i4Dp`l5L8p|9OfZM$S<2o z)icS(#T@$60eV$WTO0p=S;A%?SY!Z)8yBJ0q@kIcSR}XXXXdOawS2B2m#tV$cOv0>=Hn!(pFMbO)I_#QTDb=pef z39TWLoiv31^X9z8M;Q{+)O&C;bY!_0Y9>xN_$ACWHXZTN9t=IA_O$@w?8&Lhrq7As zPt397##St9YT;}#7hQm}L-rGGw>!=vvHR}s;_3Jo&Gh5NDac7m`SI{*%H7X#45!*~ ztWAJtwR~Ste%i$-Wh*ZII;-vSlAH5GxSuN(PjeY`Xz^FpR^n#^0vIOK=#4tv6DpHHJh46CV5+VXP5fM zGLusOh!1qTPDkeFof!#C@ECA+AhcPQhDwcxZ$(>D#6{_&ddqpL-%WY%LAgPfeV*2o ztc1VlJ-E^RqYeD@?H*z#Tyu4Ew{neyAgCwW5O;;D3ZIOg*ci-{mcc2XNIW_N+o{7K z5^H+D3_-S_9jT~wgiqu0Et(|o+i&`z56UqX>!6-seE2U5qjl<=Lq@~hMCO);gC>h2 zG^1nkJsoYEoqjqC==HS?@e0`-tg6_YQpubZmv3?|?^kwu?4vnxx7Zy^Ce&@LftY?3 z@mirf1P5X9;gmEMPik2U9@ks4!jpe7linjZX$MK86M=Q3g3&q90W^|tQJ6HG7t_;u z{G72o-ma(fW-hmbKiGYy8K#`-zN3(DB_k>0IWk*Y+OqVp8L%=K*DP+{JNKM)hA<_X zs+y8mKX$hy_)C3h(VY$wDtslD#x_weKR?u5Dlvdi3EhTm$MhU&kHH!){+9Cf9jzmDxChZ!fjNBPfJpgK7_pvQ(jwJJzO#-rV3L}Yl--?<-s1#xs1At z{q+WRntVDjo(%2k#+n9U`zb>u3y(=#8uA4Sua%~3v6Ghns0kBv-z#CWnb^Jt>#XSG zzOt1iL1Ui5;a>8;vB#oiqoXhrOQgkI?RC0rd0lmBG7v{`o%Q?Hg9+N=O}XwYoL8@K zN9vEu-B8{Z&zuzj!&G=KU4Z;gq4t|w+lY^jcIpUBwKYDKuSWwzs9OXU1>vufNJ?;d z1ccQqf>O228XSx%I*aw*SJTV@VHKQ_Fj`gH5cC=JWKGo%5Z zA3nsd7n5d6VJO+|{5x}G&s5paVkPNaG8UE@nQ8gC-aIKILU0g<-Gof9jlxz&qb2Zy zWIm}XJ;$kUp|QPq<#&L z>6;p?a%qr6mon>WkFhvgiSOh>%hkSVoBV1P$|gl(eEb8Q>isLZk|oW&odk?E`DbE3 z24Q75tc-S1cf!EGW9wq4ZD$i>*X{j@Xe)9gB)OhOY3slt0+mRaCzz$-{_f7qsU}rg zr3`KP5YK#&h~InB76VPl$yjB$rGc89kkhF0{LFf)(M)!#dadcf;Wig@f~me`|7>yp z7GgF=TD;Mw5QZk@_Qu!Wg#`G{O}%GlTeDYsH6EceBHsnUkhd#AU%2~ri1m<`&t&4{ z&zOU|u6xUI6m)G4$J34=z(Qs4c|}_0V|xpCeFThl$M@Y!{AGU5)bLF$KVh?RQ+AIl z!VXYIc1f_!)n>=UWH#ppgFyp_0M5$|F0`R!Jn@1}9PTO*GR@EbSCj{>8yEPcd%wY# z65Ri2!;N*~v@fO!2OtqLzPFlSwI4VrLXMQoPlw2pr*Y^|h^i19t=ek5+>9NEAJ8v* z-xo4xb@H?#v%shFLiZc@8{Qv3SqmLaN91X3@89+#DcaZH3WPoM0WTdmO-CS8x~SsL z^0Ixa-A0+&Zb!moF7E=Q7EKboB^(~HFQt%EC;L!F)MONKTj2-pdH$IO#ThF^t&mkZ zQW#O-e^(j57xE5(*^ig8V^7Z8@!){gUs+y;+odb=epLWJ%pfrxPvsDBJ*Gm26F?k0qg$WMVhj};jm?S2~>WnQ99T8*v^f)YnJ`GP(iGwAnNg3waz9_@4( zM9|kpBGo^`D!c>*#tg#(yi9w2%E#(V@enBm2W$-~$+wb)1k>H=5 z4QCx4Mezx%h|x89?C86w_6yyA#_KU0fRU>cv3C?Yfj-5iEqERJu<2VO#y@ID*tj_Y zXXdsyHtHS=FXv`E=)ReNLBLM?9^li45x6*nBwFZVtBcw9^&57599igj`On`2t0}6- zQIwqFeN{nmA0x0^?YC~`f5)-Sk8Aa^HFAB=@xllN9A_ufo#+@EnX|;9);>w3c8NGhF*D=Ouc{0hWu zHWSNH0jp+22mRCk_qan|`5ikY2aUA_GlPnz5|y3rvJOD2I5E_WHkG%o~0w{skiM(eOC>QgbTF|zd-v+b|tDhy$7)5>xeK=iAZ`?ctkc?P=C8i zuX7R-WswE@4zR=;%D*B$FQf#=IpEd3D_yvB0v*T`aImpQiJ$DYR*V2id<{Es6iD&r z7k*R`47SFxM>9DN=5X(;5G&tOkM|Q|7k?La_43m4X-lMXG(}8IJ085^v=mek(S^od zCj{PRr2t>UUK2Ivz+LMD}$Yu^c{TJ&k zDo>6IWB#)(EE#+wNx_Z-!LRsP06$aP6Tn-67YjsmY5r-q)bs5r`rnzNkzft8L2ngb zs2JwsAWw+5#whW>%?=l}=iDUm#Rf!x;n~cpB26w2ABVH0?z0O`+fSTUHafhK_SPIf zM(!1{JR~S)!;LU;$+yy;Nx|U)pppkMaIBZBb96&15jZy}MLS{v$0*JmgAhXMl-6^5buti6L_KW+djUbvYcFNkI!ZuPl@ zDDvKtiLr&O#{qG_@Ot%kNDT_SUrg^_`)DS&LU!Q}M29n2p?kW+Q<*Li$g?<}$r1*h zD)3p*W{k!*nH3~Pmj4KIpTXSP?D1)H#wPdYv#h!Q`4Hy!W5V|$b3GCC?)|Jh<&POBE4l;l#%>BG9^vb+pT9 zW4j&qx*<^6cA6ZRqLD?H#b%`@4I%W7qkZ~z*F=mCD~lI~2C@rSTy6FJc1&Sm^z1}G z@*SQ$bzY#Ix9NVr>N;&MTGur1qj=1~KSDQ2hGk^cC8iM~yhUMku6$a8_R4SboiQV})GI$`1uICjvxrM^f zE-`!RW%?9@vxfG!%XHurN2=?!X=?phgUNs`#&mAD>DmBvXfP=ZUZ^v(oz8M{dxXKw zpgl3yrB=wVKE~YkF)UPYa6TY|;OZap>--81)BQ0DLa*Wut4t2I^cd^8@R%YqPW}A$ zrvCw8OXv7A!w_Q#+_HX%Hg`TBja+`I(Qi9h<2R@Q<1f3gsXK|_-qpJ>tK3;qQr|{~ z{C#Zme`}qVbH*)-2V^I}=k1lhn4hQJX7c!L+^^Scwy}ZjOp1;5^{YR#1pYE4MQ9vX zqQEWsD;(a5O{MoYxropH6A+$Ck>0GB-c##RA?CTUEZ2jW;O89I-r;ckZ$Jo0rIs{+ ze1Y~vF=FY6^RGJaWk0RvB1DJ(1y2$k(E@4%Wt?*h+eiZL8oU%p`8pM~wCu{{3d|vt zeWw>Ek0FYz=Z%p-1IAXjSCdexZl~{$0enEFCvpjxos!XK%z79cY1K9B-mpSfqWhw+BI! zL!J(|x}F!?|BVRy>yRXOy?akW_~a?@HTXsN;YR`jtaD#e`cxLXj$2*?+Mh7ZJu{P! z_S>QnFOKA}g}(MNt;11`Q)W7k=*gk4>=vV)Ec)-TCPV_gh=Ou{ndc`v2Bt(pq<~sH z9JvCaAqF%eGsTKnyF z)p7jLlMl2$`|{bwrmIL^kYpmCizOKd_w;*>!lbTLe3vU;gTPF|C+niC(V*1Z;DUC zs|3p*`*Z{~b}|!Ka>!#&53FvZs2&%?(X^EzA#__dFAoa}*u+hepw0UkD}#Cju|B;d zzoDX1xpD;Ga$@G5hvcgtyNkoy@cpqM<32}l5YYTB_7rK>N;nV*iT0Y;K)iPVZ}lw* zdc)iQS1(%j zT?c#V%o>ir6q;O|WI*tQoUWX!sv%<3&nMiwXd>$iTaZ_{yWD%ccLs7OWCVOxzJO+{ z9QnrFSDXv&>2Qv&QI0W;bTbNKcI+zZ{r>$aKF=L+o~EI%bWHvLXTc=5MgQI?Zg9xg z@7#YMg*oE38M!`|dAZ&ryU^+^VDjbxKDu5c4e2v_5b>57kBI1(sr_vv!FD5{kj*xC zo7Twu^mbnNt;rIt$3$Q?$IPL#sY&BK8n7a{k_le!+Hr<56m~)W9FtM6gIv4^qw;-S zUQ>=fGS)}S_0vA`9S>~X9wyTggEw3|H9k|4-ddNjf|uiHEo=Yt`O3zmMS-7rt4x<8 z#`gs14zIIP){6ZOr+ta7^Is14a>hUXZ7*i#9Uhi^<{e^*T)3H~S}OL2eqGLt@pMC~ z1I^&)r-3&^05_242oph8o9NT-XJ|0Q%bVlYSO@vq!Cd~59o#tq zD5J4Bpsy12wY9Z;dnbKku$jo^WtS_uuzPxXuzI}+>0>^|*i-9i{*^xojYs5i7stK* z8AWC@JB&rW8E`Vi)709i&w^SFu#nH2170E@Gp{zpiuc}h1@2UPIua#GI}hnFrx3Ic zn;JC;I6p*o`0sayN4gjBXr5%DZ3@(z|N9Q}IYNzaaIo2P%oqhl{$+kf82q#E{a{~# zgU~vTP@z}O{!clC5ssj^+kt7;WXXg2r(E>=7h{(0Y8kEB@Y2c|68_sMb3wLUl{gyWhw0wm+H3M2K0TeI1CJQt)5mDYcZvWbF zxJ1t>C)YY3n}t@z_&ELI;7C|68N|*CehyG11r8I`<+S-flr7T{LvgQUlj?<}t0-$T zjd0jVeI5*g?Ft0p9vT%kHj0v<22yMqq7%afVm875VPV3?KG@7F3_G2YA%zg`OW@al zakPp-H1QP|#1or+XB0`n_wO(s+K1A|c?VxnbXBBWhsMv1Sq=eoP zabBMkV<>9zN^~I}Uk~_hxlhY4eb`t!&eMO8df_X8dM1pTv1cB$eZvyA4SWODJyMGX zoDW^rxc8tt!u~T4>*cRgu#sYU64;o;d`pS&3S`?Kn@YMZnmOfnjhvkoFfl@4OYGsqS=j{N60d7E#wnGOrTi?H+N_-LbfncvU#UZbLFHwU1OBp>+UQ*xN zbVh?nVw|%O0N_r5$4D*G z^h1IM901%!cp@659ppDjwC+**}j0hNF{dzcaq0KaqDTt+xwYYw- z@sq7MEL}mb(93RN?}-tu$vYnvz^vTO&+FwTs1`TnP}e5T=ALRp5%~Syxj6@6!j$7e z_C;D&O|2!1(t8&a->ClR#X$qG*P z^Q`cpjDf$FyJg*`CZAzWj(GI_>uWDAub0k$s~yCC^%es3o^&kJTdkC+n&ue-|3-%1 z9`B_-KI|t5CHd^x>v>ejZcOE@(+C!42t4$?%*VW;C4iuZ?POveU@I8;xW+YCeGg)P zFx6lE|F%~BUf4mO{FdWopa#V2zo^{3eL5K7-kzI|BUuxyenJ)&OjCRRb}M6 z48QWH#H0UcA+d~r$VIQ#a=0C=s+gW2R=V>h?kRofcY}+#&c*191*iz>QK4@>e=qLq z4I~aEi*b+O3v+>7Pp>=~e%fugPzNxxz&GwbuC7C1t{}3TyUePe+jt?Ul$Ziif=H|6 zDA!j%0+$Q7c$LgofHgbf-{K-s+}%k3Wf`r@1TSrWfWuO7wZ2Z-yc~ifBrbo zj^zgaanjq;v!)%;Uxm0|miTjla)j=y=cNE6lF}x)VVn%j5souaP0zyZ0?-T1R#T9J zC7g_M{CG>(MrX^H;nTc=UQ8b9zoI?m{+IYuPp$r|vVTs3pWL2ZPj~V>9{r4P7S*1^ zLwcCwg8R4IPvY4Li}W85l}Jt%<{LZx9eGQMnn6P(;KIj}nOU+Yhq?WnM%>|TYM0EO zCPYkpH+*Q&Df`jLwf{4J*o9}H3!%x3{xgvO+3lk?GJkI6*Pt^Cp|kX zzfFdFgK)%Ey~6ZIxu0&qofV16I*!c(pS!HVu9V~-Q3C6&Gjt!TzW17%4ZS(5Vz0*X zzl47Xwx?Pek=EY5K|k1WoUG(3htio_Bex+2quMcc6seVtSqCDxO8!UcwEn84Z>dy& z%w#!*)63(~+7GyJox&b)?>7xMPeF0cEh*HLTH?Za6D?a|D*T>5(iur4_*_mJm zBwpk3MFm}trgS35p{Iyjh8hpk>bRC@_^{RufbAKKvF!WGI)A_k-h0AyoUIO8O0JXbsfSPUli>{-&NDkvHa7?ppQ0 z9qJykdR?QrXAr`57?h;T--iuf?%3xlwck_cb$w+wqe}@abi!!_Tt<@(cl)3GOD?N; z-9I9|m0%Tau?~Vxr?__%D~4b(anu%{Z}uj8>uRf%VBr}UAzOSV`ta6K0#PE@&N25? z*d;NB-Sc{cI*vav4BFdB7*PUJ=iuu{9znvttNGXf2Ma>P0A{v6DD8NX} zWa@Q!n4iUba6A2@L@~STe%Og|)_W78C!9g)m3~NRaN6?@+|}D6Y9$nv$w$e&JRAA6%VfR9oM=^%LBK7Pq1;?(W*+&=!hI zad(GMw8f>kI~4b#0Sdw0U5YzFiof}v``$awIr)?^GV&oAYwx|*eCGU3;14@HD^24t zWJbfKZyUwocu1f&(ZchI_f$8XYtJLnh^|&Q_5=ybC@1XDsqz_Vft`QUG?n=a;!z!& z5PEpsO;Tp~{imcQ=9a)kMsB0iznbn91~KHqnVr;Cy1$lK7i$cA)wxb}W=*|j z)-9=-KQ9}4Uz<+{v>8Mp_)oU?jCh9{%Yut;3@GZkR1u%e;ra+37gNlMOabJC1(u1jrN`rZq?Un zfgTWX8fssu?IY+>0K!@^$yL4MMy7;3z6slfbH?fBrTBZ&!iU#yDSaXO z#K9Mpdd1oQ4$=EWAnXQ$~&b$HS=CA zRZwb^QZmc07o!pm9gb!n44^;B6f!He{?Q>?65;K3x%j z5rdlqKJ&G>(E?SY$up8Ix}Us5EY|l`rMI;Re2WB7B~nx*(dlmyXkc-=hn#&7G`C*X z>`NDpquI?!L=3d$cA&*5*&}f%9_}W+1k6DE!0f();13XfN%B>rUpAqK-MumFFt{>e zjr87_;XxpZ)*tgXvLd2dGsgaxmuQd4U1ZoRD=}OObTF8Vfg2p*AfYNFfvE&p0M>ll zl7YQ-Nj`kCQvVD>%#~2 z#k{u)n@CYHHu!5&{Ee|hCqxeKHc_c<+CGyXVInA}Vcb%qa--Gkuxum#aI6(gG7vBg z=aRawUyo(^9)7qTe|a3gPgGx3`XU-}Gwc(>1-UST&PL`$AlcB zO^7xo7)+8KJuNk!H`%V0D>H9;}aN zx1={-PWvR1m>7sib}rr@{7Mq3J!&^Z?wk?XF2VOY=lLLq@Ixs>va%$3ev#3u<{xAT zU*(o|keqv>gH|wEO+#!nCWw@7i6X^KD)>smRv-%>EQ6qJF=t+0uU}4K<6@3$cL!=j zhR|*6ap5B_gJKY^&hX=@=S%)Xw>MwgL?;}3KFePhr<@_q=U3y3Yk6~=wq!JO3r{3> zBug1N%ajqA^Bfp?gnWJ&WeZIY&bq(Y)ISuTy0+%H@5wY#CUs=(Ip5zgN9gFgkEb{w(L0v}OTF)>z@~s> z5r(#dGRTRj%Gp`5YKC^}s%C^={-L?enhCSMPE{C9WK7R_+1eu$3d(prS1GA<7<76L zfFcgA!wEZ9LhNez2>LT|oSL4y%4PfBhPa*ddisH!C8?O+-=zJS`|%S{S$8EslOe_) zk|akeJ+JF6G`iY3d4I7*Hg!B6ve*y}5mmLS73LN}&(Zhl?D72iW3>vQ;jn*m*ZebpHLP8$=a;7QjS%rXZdi*1 zv5{>1a}oXVmGcs?i2df@>4l3SIKSq>8iDby#pv|~aF`#{ZPP!sLoRpzaQ3J9_?P_C z+ta0A(8oKDz)!|KzSkdxP?_a?cyIW5&&rR(36algJhX;7BQFDNT@POEcjBAE+E6q` z{^+!SnBD%kmNs8$VEO#i^>PcJaqsMIKH+HT=o?!&q?P5qQd}08_<44A+>6VF-+~Is zR|7{K6W4NF3%ndUj#Mo2{AqXaSAYXW)4k!{2JV4h@8g2W5M8862s+|cTEImTj~B6r z9hkr2{PnI>=Q>Au9j6<~nV?e0DRe>`Y?%24jROuBf7`)t-3?X+NFNS7Q^nmHy&MHr zmff9i{Skh&UtjBR$#TUAerInvqI^>Q2Tf|mt7G0OtIi0r79AGd<*RmdUj01VHTB_# zr1l}4G4VM0SbnB`$Sb`L2(cVk8-`m)dM-1G-?(pzW(qI7Y>?!`T}nzXz;BBpCTiGY zkN_yhmz)Rl#py3OaqXkBOy*G+gsaax9`0a7r@5I=-!S^zjH=be8cqxa9t21z)g5n) zg{eHsr%7?C;=XGUoBXs?&MBVntxu{0ZhPt0t9|W;{L`;s{blj-t7!BH+LvO3!f?9q zyOiZFUN$XV!Y{32Y|mqVYjV^ImtGDWpP5!uOllNe!yQyJ_&?Gz%A*|IV8`f*?jdBIGVM|&so|S+m zv|7;fN+(6Yf_NYj$D48|@LxEHN@D*nZV#nl&odq;>~crxurDSat>cd@HPT}oEM}9;JxKhlkSYGb5xM z&(zg6PwT(_D%VWgDn_k*1e_zH=Icaa(ETtm>(~CzhuS+fknZ&F4tUsk?(cs#;jI=M z1uc;n<+@%?M!|cF9XL_EDtSt7PZxhajRjD{?y6r7t7pqFECqYY%#@|*F>lbn=}WHH zoeg9&Jq@ipuOO6~sl)Q4P+dcuo{ozy1$M)f$PaHHva|lGZw9qQTatUU>eF&y(mIhv zVjo@b5qh0`UKkt&+H&qWM>-LhYV1mAQyC`rNvT@re#r?FXPy{$1A5n+U$*!)e`0Mh zhKoQiMlU~oQ0M0btQK$_Qa4|d0Pv}3!0`YENs)PDjr?q{mP@DZ^(i6q>4}7Uja^I* z(dt*0qJkGSVe^!c6oF=wrrm%KvJWh;cuWG%@8GDZ3MwZrVHf{bukV=-v(lCH1wkR5 z4JHneS9vJ=3LQX2KQ*+NzQ~j>Uah~H7UaC!d$UTbthb9pB@|XIh zV2znXf#&}44%3B1tPpwiPp~tZS$Fj0t|loK3}>CDTl>cqgfy>Wx zCnVeqCNpu((<5g3?HzEqJnM*;;6}fSQEuBEGV{aJUclWpK%G9q11_ zf%eldOHJOmV^d@JUBH3aVZ;x*J&_vHN>muWpx#G=qB-XfBBn1s~CmkFD%%26Zz&yr|IHHEvMt zJzP*6t3d?;7==IR>6Ms|B@oBIyF90e6njR*aHTZJCj0YY&vR}<7FRX$?B&Ms&>dNHFr_BhDqP%C!oEk-$CcGn-Xc9l!0y-nPYQkM%!GV)^o zH&OdPGtoQ#2;b17B+r2i1ZKtXPz74fc(G=Nx)((>TWm*`2MVu?+P%Afz_dP8G5E*7 zXf#Sln8tF`JIFQ&*6OkhC@mgaeCmxi5w2JIgN6p{iiX|PB5wmle=I(r(XlWpSc9J! z9<{GlC0?n8cYSfpctTdm5)`Dd?<~`}d;9Yw04e@>!N}OLr6yN>9ky6+Jf0Sj(jaro z8@v*`V}9eG;ZJwu_Qg(uQk))el9VQx_j$e6xinoMFk5)}T)fNY`u*xp2ENyTq=Cqg zyZ)fE+OjpWN7Q%@yuFX_NM}MpXP3t*2ycM>qlxLWh(9`nZZ6UpdEaiJ-cXA9{T4m; z$~6m5sk`YfrCqc4v>}u;gMku#5<9dg2Ht;t(xiw;9)4!3iSsAA2?W{}a=C3R75gcL z{rbAdgnXzGcwZpuR0=6Wq0D2ALB0oO7i_IpWSC;I}#DmX_zI(EE@E##~(mYXq(bi^7Y)g3pgJ(>*<3ZKUhm0#AxqTZwMnio_K}CP{$91+O5WO-2EOTDAzl_cwAk7%1RS)^zg!(q)yX1=6HUB zvuS_%Jd__IJ?H}rr8_-Ek0&CUk8dZ!Ie}G5FBf<4liEwwgQj3KU}e#gnoQYZKQXfN z;4ii>^tQ+md^v;7Io!$hFj*vpF$$;L$=uFGFz4b(YVy11Qcto(VR8m^Zy=Roft=z+ z2U*saxcjhfK(4)h-0v|f*V#;Dbwj@}Dth`yLE0l&o#9rxRVA}dgs&-VYUGAB zpHxx>HK4@da_ysU)@_gVw^u121&xn7Sok5%h)J~nMjxEwTsP~%Qj3uF!*w$yD`{*T(^!Eg?yg* zE%g!dvL#zf6td7{duoKQ;AG#omEP_@?vW?`*yN*O*W_-Oi<~3hI4wOIqDrAun6x>i zf|zWU7vX?60Nj;`nFJ2Bi>)d=F@dG^)7?QXuOS3=1Nive?)5N?M>kB29lIK^tkFVA zMJ(09i-+Ut@c~knv)badUXuQJGYS5ARi|8oTp$ z4|a%JRTo{s_@oYrY8tuloXS2us8tkAZg_y5=|^2&uEKPdJ}7ZA1$dbN0}@UJI#AT_ zS&gNm`j51T5!MXL(6#oeyc!nvwNK=Woywj&rR}~h5N92L9#Xlxt<`^vg6CYXwGjA@ zuIfEb&beM^I(v|N0hEg}yA_lVm&$Xjp7Q;n@H&kV7sS|U9o;VPTq7p4CXdl2&K&M} zmrrezo#UCYH{Ynt5H&IEIFG(MtH|AZ{nbqqOW{7usgqoi`@F%^?)cT`_m+u~a~49- z4;F3q`Phtkhs<8#k|{IX$i;BQD6_etUYwi~yeeoW9Gs=*k#%>DkZE0!WVlSZ(k~Lw z;0xXj#h4>Ed<2xW%gUY6(Oq*P`0Yw1giqNy`yb8WLAd%^>3)oMz`rWd(j-{zFJAR% zCA2v2aYVua@N;>0(+U|zrEV^6d62(Kc90q{N}*? zwZ_XesG*a$^)Goh#5z{Ph6QDZv0M`;F_Cb}2fw*73yKmf&~dy-`pW-jvv-UWJAJrh)bLI$sCYXl z0HGj)3{|#IC(HlU-lL4oXp4{hvKXE*LyW1U))bbDsJA7xXgl?l-pC(@O9aKFDNhe< z5ekx6Ee?S27?H2X*`zT3+te!$k3gopYm*#|zeJ$+vC3Ot-bNj}Kg=~{SI?OD0BU2q z?}%1n3ppQjhB}X1ua9Pe344*iqf8;0|5%&h2h-s3Yd!YL%2WH2A$8` z;-a}j<2paQn}KiEg?6YH5aeP-t$ug8!(!5Tl>jMNmz(bW7IYUx`&*QUY2l^u!Dk6@A!DZGHF+^0zj(3qxs|1ueVm{bg_ z9nTbVT@!vqdUPzk`d7p*TqqV8ZcA*^e84j0fe>}^+7c(hCst_Kdjv1H_GhfS$FXMY zIo_>cQE`YE(<7f@XNjEJ^9A*b#zT(3XlB+SRBsPgH2lQ-K#U`bjCZ^_37Le^Qb3g@ z{B@GoY<2Ogy4@9yvLgJ7`IWA_0Sk>KMDHN{0izTkVBAoYXSPP*|kZ zZfL@oV{s?dva7wVO`DPe-8D83#r941o*+8c?d_RFsabCqY0i;$^--o-r}e`hvJs^@ zJg5ODPAR!|3DvS-HSIp5DdpuSs}^tR7EgDNQ00kX0hTrR)M=}yGlucBKMvhpt9NJ+ zhbj9=cQWVKb2bS>R1Km>!H*MqZJcBUdx*l(p7ffZfr+Mq?UBxS;Dr z5R14_Z{Bb(jP_D`xtbdFQ66!dvBuPw!cp4u#IE{z^6-H^jOAApjs8ot`-mB1ji3^; z6Cd7qtNh5H??nj@Y5d6r?B6sF&xU-+3bNwo(6ny`jub^TLmKp{n^yB`X%c!AxA|8P zg_5^ZQ~gbb@PAUJ(JcRAj&^=0J{4v!7&nrPx2H5x^v3CWl=aN|3$MS2t!|Z>JkN(g zcYSu-Q>XzC)O6v3-dqGRA%2NhSA^0lAhXpxP(o9zzTijHr*JF!xOjT3cSI|QIbYcR zORX6HH1vLmupB7Ob%{c@717p1Z|fxj@MQ)sV84LlydPb^Kq!H zHo9t|`W!JgcpHUt!dvR{ExOz0YC;`2)VvO1~rDu+EEU>)?2U9zZ_6<8C`=eW;Mh7Zx@ZBaEYnzblkxriMdH$bCJS(jkoSJ?}7M+Qbdh|p5@OZz;emhI_yrd`#BIEu#lF1DO0t{cDhoEHI zc)6)meE=tm#?pKrXcEs*71?A>M2`or5N;4Jprz#`1?qNx(XU~xbCoLl_S``;5JkV&m-(?QZgF$69o(Al;SayRsrbYkA?)#X zrvlnuj;f!3!m9!U3pS@d&SToyh~$HeBc>!KN=#bPBKak4-kKRi+;C_Fy$h1;;+jXh zi%#JZ?oHobLZB#FSEQ3{9cuGDJ#3dl<X zZ5dy_BvDHC^VJV=hN3UjW#sLm1Q#2^;j+}c{Vtgz{J!x%gvZ03st&`MZlrYHrO`z( zzeEkXzN_3EXQ(v5*<2EH!QE*1p?}mc!t1dy@^@srd##{y%c+4Z=NWP?Y*Tq^9^z6^hAnSe~lBN>-G5wvT#F} zerp~nE*lF(LHVOwPBQ*E_QM}3{iOi2bm+tYLv!$)+)l4u^Jy)G=6*Tu%4Ms|`EI`5idfTq=%OWP`r^hIKzJBitt; zSoOq0zbfW7Ku_IMaU)tUXCmwCq?f0v%lIC8I!JFFs(d5Smklkkasxp(J?AS(s;~Ym z9xY59-ZAzb^qkQ375HLvnf2pdrQmi$g!-d$yrN68G&C_dNVS%}dD=QUHj@dqG=w-% zBm5n6#$mPP?fdc;>CVqGnm}`j;}BbvGu4&ijvNs8+*g0U`4o=fu)3gg&hbD5^s7H$ zJ_%qlX2*;D8M8@yB>M5<14^;5&cW+nmy|v+&s^df1IpzeMK^_rQmd3x#B{hJ3uik3UDKL?Nm<>9c({gs zo5&}B$l<&Q`hL!xVGd8`jlOAb=p!ZBFWj^JP}p9^Ae$DF)jY}uAL-oNnH&-BZSzYL*y%K{!@EFJ!@hD_->2_=1SUMB!> zo7{DO%G&{YV#y^8p}i-Rd-zxVvy?iKr{c#o*;nZWq84mxxkWoo?ZpazsbQYG2@wLJ9QTH-7HW4ibsJoke`JU@7U+Uma68qlFR zE@(gNcZr4y1ypP~P?gn!3l)+G$h&PU>2Y5Q6R=|o<|%$gAxYOiY-m8PGIVS5L3wo1 zS~s_9+ZQKbm8SViMYDtcZp!LUo@!1{B?sgB8>9X&5j;dwHvVR@H_0GJQ=?kZN^!A^ zU$vWEP))jncJE6UMAE_FC+FWmuw(NtZn$aU0`L|B%Y?~(j|#p3!VmsSd}d!jf0^cU z;^$^c;^TMYA5JyqN$sg(W>Z<`oy|foVwZE&%oKP2^GeGOLNXo?jqV#JMB_2*$3kX$ ztZime#FQ(qZNYXtk!B)rNsVh{hjVd0$*z%;eGdgk`Qt(?2(3gEBeuf{p7X&R3pr#M z($0vc_}(}G(!F52E|BQw6A|n4stoR4x_UVX6$EEO(09%*^a|ibLv|k3J~D$z6RXW| zX98^0VpQXvEcNrT4;ugaozUvn#3(moy6^r0Q2?r zX;cFbK@3v#gr@-8R+?`Y1|~ab2{5O7t=IIc_)=q7ZL+LQ^H3QOLU3HeVl_%J!BH#F zsLwi$f~quLk-Dj2^Od6~nVNA_K0y{j=!+L!oa`e2Z*a{RhI~NAdV$Coy5vUV;Akj zO#`XGN9~S8Mma;6kB-}*VRdeh_NS{B-L1EwD1m;-OKKaIXws^?P|l3kzAzqvTeV1b zHtIfl*R*^->xWMtQBZ()7_qjtM-3Fxi;l~kqi{2)x>(jEBG$+KW|>RMwMmJWK8`P9 zrK6>71h{tGXk04m2I=-q9ud>W35{|7%9q^5)ErOF6wmxP zKl|ek#Uz)(aLYa$q*X)nCQeu%y4LwI6V3UG-$ybGKPFNVYrY!Z9u{+A>BP ziz%&e|LkniGY^!ZMjq>W19;39+O$S{VwSwd|Hb5Jm(}+{Zu(UFLz_S$kR)fz6Gq4~Yj6(lc|MuY$k&X-)z?lr1EKNwgLa%{XYhISK4g9yfm9o5OD zmyrNV#oCBCh8->+WiVVtAMD)S`HJD<)Iv1|Ak#U!>=n{tSCLD@TtN6<3Cv5jKf0O^ zMm(bZ*Y)C2?jIM96s07NI;!$=y=Cm_ol2%4?KyK(E)mG;mSE$X6**=l6Q{S6mXw#- zwJ45gfdOd*?DPu<9!OF8cI#>XFmsrzuZVBN%IJ3)5`G5k1R!97DzkG%s>A0A=`M~x}lm3D-k8{?kwoJQEk;)`71BcMySt$xi@ln zkemXQ6gDH@&@}%l6KPa~#*$ZGA2XCV=Mwt?DkWu?x?8kDmP`vPvh%`2y!#VVg|$C^ z2sQhix`D17ahzi4^KO&6mE1=IYF4g=7?i?ukG&$F5RZmnhKJfrN&f-BLNiljKe{89 zQ;>xFjHr?(AmO`bnGRh5uE_>S_x6>1wJl3=mde{LDZxGr)iW%nF7%#~ot_ewn?^A% zl{SKpA%`hM0+jdO=gl})K8}8i^fUg*{OW2l_eNk_>!UeLJh8-Y?0B(ttU|Zry;vqZ zE?r2qHX`KWZYC%#eg#iX*cjR#s$`)b{3{dyZ!=JJjR(m?T5iN(QZm;}%5vsEZbC;< zv)i`w<0&3c?}-%u@fT`at$A!0k2&A>MJMvWLo;iKNzs|$TW-mhm0$Jc+LAsYd^rA0 znm}R9zfhX5&$QJ159bU;eR-SFh6+~-)AUIT&Q1?kkH7!+OW9nuCyHco$%jwgwiHi9 z+fwU@z4u)yQ1edj$yL10h#+Wy%2Dm4$0WV_W{7nKT3Xp++=?=5_euZf%$uQhy%dt!i00JjH zuY(jIm<>zm%z81&TE2rCy?3-0&cOa~rqbiO-qx(zg$Te%*1!#AV!ZQSc4#V_r^_3@ z*#AA8p+6Kt!U#Qv%Tv5vEKovX; zI3i8t%CV%#Umxy(FhB=l9Xm_Tgdv}SdNIhS3FXh}I9w6|MRk`L$of}{@O+fAy?fQ5K)aDTNI}1?wOF^h%$@3edc4*vl$-$z)sa8krsHHT1X06g#}^ZyayNhI zX(O>x@xyyQ1>m_q^^S?3{dS#SBpKK0z^?rIA0_Z z#P=ME>zlyiv3HDS7%S`s?S&9h;3FOx88G2(1c8%+chvPHoq`JNx5eaGuig6z;yO5>+Jj5_0^U2nu{dgUO@@T z8y#FD)+cU5;BmXRYf-!5^y;Gh`|nCKr6CtFsB5E{M?L**WtPA|W%sO7g!$@b^p?hr z9N`2rzrngbi^(nI!_ddRy_^iVS?O8Bb-X}9pvZADC^`96r38$~pf@+@x!7*$D2i<2 zWB*sKg9PtE9m018T=av}^$-BUV~I{4 z6F?#6Gn1JpOfBT1BlCTJ?&HzYy9SKIurYXJk)`n71qEv7^o#jL0w;bsEV(!uBtktj zG?hDFjJ5Pt3ZY-_>VcB7mr6@lv)pX9S_5QiqyL*^9q)-csjmFXQ&CrAl;&mU{J!%^ z^Ag`j1YtvU^}<%m-WceJ_vc#@GZiD6p3KY3Q8-Qlj!yJ`JBaL?^LzL{1F4@~_PLo- zQ?L4HlIm|Zcjt8}vB0_^sqHE}oD|h;a{iw_3d2q#{CdM`hh}8K&!0Y3#UVSv|1YD| zccY0TJ#v^T0iDQkaAAn|;r2`bzJ>`FoZsgv5uc?eRqq%?nE(=@TM-85EusL8h8r zyccWXSU(X^DAZ3m`ZP!df8^+}giA7}CR`s)bxgV<53CVn;cNBqbxjxT@h;ofb{ClO;J zwRMgrzdQgQhkK7c0RpKr;D__;M}ZAkFi0ZKxl;YiV)CKZOM} ztvAH+reW0SK~05}+%w(EU{uK@3~Nv->(UAi+K5R%I+x?+=ADhBq)%pjz$ zX`@wxcd(t5<&g(?mHGy$+M%|gzuY08f>2c>l-G{LQ*Gcp#gj{5! z-Sx$7ucGc?a8SuRvGUKpoSDE>I9M;~$fGfYS6v&4lelPS`9 zd!C6OZujdV_b2_s`@xc&x4$i;;Fh|{(WP?85gFpQ)P0%eyQ@UCE59qxvCPHduAl42 z5>AQ_;J6b;&II&n5E;ihoR|oI0;N}C7O|AM zvdVPm?S1r-#a;}h1-uNVb=Kv6#QORakr0spC;*lby_u^vs?K?r$b{@|G;P>3RL}jIx6EjK}Pf z0dpg1x~O~h(Iw1Ov*41vZmCe6e;_JEA^bA}sf|Z-Z!3JR8?{GA^#qDIJP)tW1$TVB zOcHW#AkT>D>$gL*EM#AO;v0UPLm|>%IIVl}=)mF-{i-Lfl=XC6D4B(D0*IYx0R$K- zFlPwwf7P>e;;6}PIMG1Karbg*^c=Yh=&vW+AM@G_jg6^TuQ9|%*d5Ivu5-y?@l;KMEZ!8svm>4qTix>*+_7dU!zPLxsVSW(AO|V30Ux*YkDt z#}}>&z-1X~?aa}t=laKLdoYhZPVW~~!+H`ytCqiSN`2!E*3_8eQ>6y6f*4ypV zz1em@cDfc7r6=rSdNijL%7=#mzN`Q~Mt3g%6MSsX=FD4U{ap83*~+dCW)S2Q7r9u- zoe%hpND^C%p4X6O3AyM~diB%c2l51kqq&Pafpo?*(!}c#DM^mj5x;vlY$w09)_Gc9 zEbLzW8A=^!*JQV98io=^xZ&D<;fhmT!G=ctW@*ip{&zo8+*fcY#S2g9>UtXC8x)yDmBE8K{<$D)t&)TG z9Qq0J0>D*H&0q5(^SnHq*5?eP7x`;&BO0Z>Lw2sj=jK$cieT9xNd*$^QEfJJN-?;- zX@8-XPV=HA^3YjtpcZ`R_z!{*fAB|O|Nl>i|NE0I#W909LJ{BL*BYyS&4hBcs9dib!84f` zZ~;&nCqm=|%tSJ-)ax31ga>G*XS|V-@5m09gL3u3KO}%914LM&h)4(nU>?cTDf|pG zViII}THe2KbO)a@m$!4!76IIZz>ElR_q;_r_qJ*Z{I!}X=q(MyvK2H4%Fs6iR`Oyw zPFO9Rlk$|X{6@TTF_0uQj6^d=1)vC03It@PvCU`Goku;^ers>}+Om{Rc0E?8HgJYH z@(2(0jz0T8jKVkdv$nUt_5|Mk{jG;jBF}sXr>v#IDJX=WdSR!l9VMIIL3)5eqsPk> zpX{GD+yk-E8~z8Ef75BEnwMRW5P0|jyfK^YAGoJpz(?JAik~N+NrXHzBLfuELQYUJ z;hvfg-E3=P4>xC88w2asm|)CY5xJ{yuAh!1j;+FNGXBPPG7(B+XX?O{*ym1Qs4r}9 zT+7jKWAV;)Zxlw4_}44!9QhtcNTBqhJug?s<`|EaN*$Jy5@v=fa1#zu7qzMQ=n zbm);<4t3CP5OUo914Y#~43LXv(qE6IHnN0k!&Bz-`@SqhV zY{|AdGz?XLx!Y$c%S1AsVT2OGM^g_+%pqTS`4og-b;HXj;gO?`s=!#(6MCc;a_af; zt0Oo8i*R=fFRJZV!G-8E zJ~m>)Mwiq-el9c5cho9Y#*ucJKWJx&5;EDU#-v$mv@MamRw~xNQe9^B_kUV)H^4Lu zI3R+-14Hw|&0%4hb6#c>hsNAONnD`)z$=H`KuB0=m(v;?1r7DP94tY|1-((+{Tm>3 zn_fW*2)Np*6j;YcTgf%Y{Tk4BX`WAQPnHGts5La4-Nxh#5wK+nLn2^Op6G=94X!H- zzgFg$;KMHW!3`oTFM2J57Lgwc`t>UwQTUf@9WD( zrL8~$uJzm&iuAFmV7Yz<`Ijm$DW5x^KkrOR!VA}NzJ=jjnq7{5J3Bh779Fm=_W3UX zuhaVApf)=i{2FzsbL>_N7ikkRNQXJFo$j?$Yl&Uj6Nzj5`o>bQfXS6KtHnuWBRTKWv@`CEqhYIR(deV2P8C!{|> zc-{2(?=IIHe(+sqp?@_qxT?GY4d&r$e|a&b;1!fSd;ylH5t6ieZojiQZ1_}ZYj2-b z7Iy^9)Tag-1nol9Hdem>U?HU1dWW-t(6*IzFS${9a*K*_ZjJb)>c5??AXs#L;x&<% z8}-=bRXU!{r$ zZeV1~S#xrNHQ=CC>s5Zc72`F(Bb94eHg@&|ZWLtxy*H12G{76+O#ff-ITY>AQ)Pol zwe33w<_8J1#TaKvxzC{p3cHB8f@%O}dxmyVlZuNCY7XH6_pNWK2>nkFpi(XbVJ^>8 zQCK_JUNn+)kLoVQ?ERNVKr{KABj-O*nQIbqoE0)G&H> z5a^jUV}sM49v>%GB>b>5U zia95TM4Xdpf(QKfknd+v^o}s&U4G&fqU(2YluvqSSu;-aGdUEnO18@Kb;%5M5vDmmH@Rpf zp9eQFnR&E5ao1gCwn*n*k$}krIo+;m;U&8nk(_JjDqr=&zW!AHZN95WiEQ9dO z`G5ATqQ{s2{;d2TL*b=8F)9t1$teO}TgR+Vt9*Jv07Y)_C=;Ms3-($E$}p;?mV%T0 z`ZEy=eUmn>Z9A@6y^zv1P}UOd1(peM01iQV+sNsOIj@{7I?Nv2sz*Z;89$u1v^wt| zHvYswrBp|Gji3ttV&xXWzzp+Txv@1Pf6f?xvuDTQ^Z=~Nf3g&1eny~R zV$Lmg%%{x-#wC5bf%P5j5a+2vX#Y9G<$Gq~QCmX=TWwCay1VUGB2M+*?n z0GAI4D19^9`Ab@^W|q$0kRxi%0u`kw?~_6|jlG zi!8cj{@#BQjvt$|{tR~O{|NnABzJ^WN_9+))iKv5;!9Lma2A3El}V0UBmrRIV5fg= zM>q)-H9@Zj$twGfFL?l80`AAuh|n}~jCsh?j29@5sWk`w6Uu~y%-y{~NeuF1y;3B}4=d3`kdop5IkKGWZriAeU4F5zy6q>@;NYyK_ z>}d0ny9_oE-^ZKhnABfl=e-9X9{qWf=qAcJMN=Z|lvaxIr=aA?Ym=v#gyFXw=%Pt} zLL-W0pPc4#X0A;5`P2ON66(liQDn;gip<%$o8_t&nn6^aO5TipnEWSW2cBg1KYurj zm1#UWV`hI=x0lDGPVg=5XMXrabz(Nc$gjp*giti;$+v_SV`6U-0M|j_PMc1XQR5NL zfjkMoNrNT4zEF4mb6uwsfnwslKQ5^1Kk=^rx8WQHy{8bYry4+?7PbCbhATNq zzk#48C2DYCg_I01M8m`8)EKu!RfGb#GPU{FS|s1lpy3j5e1VYeY@+M2b7C(fq!4Q} zqdNgh0d_(tRt;9Q$i|XkngWh0T@OERoHGn%PZ>gN<@T- zV20GWl_#uXI=Sgq`QM2Q_|Mm_6Xn)5)oX4bS_Vm zv`Nc;sd4mDmU&}Qn5j2oHH{kWTYsz#k8CKJP;-r9p2Jh`r@wskZqK>=gTsF3b;1?vFb<8?5s?UNJ>fBp8C@*M34(Erp6ELf5B< z#~7}e)BJ8=pN}7sLc^H+99^BDZrD~fHduR1RM1s}RbBCU)69zy4p#OFSk`kJf2h6E zBGs(RHdhCV$;+g~F3vXDiQ1Ct>Wp4Hr-VIWBDYBnUL!E8#33p&>^vE?SI`*A7$7EZ}k0}9ZR|V#fpAw7wd>~`zP(Qoc3qxQbeK3prs0>D<)gwYh$~K z?fBQWUUxpfga4&g+$9eUkb3^Br0M_G^}pWu5h29wpERxo{+Ru7UrR&J)0zuo_V7-G zzCL}-1C+X8Lll2O3K|MM1Hn07x+1vShkJ$65FC?`>6zK=$Z&?dri_e?A8>1?+Y&P)L%#Qs_1w!H^{VX^>5~7ca+e(Pd1CApM^v8tG|xUyjnSa5 zx@Gq+jdQfjCuyh=Xazs(ycOW%OGPQmA?JP%5&9%%Mi+(!km~8?8G|SlxGUQTRdt=* z9pw0o(%Pay_{dDJdu>SUZ9V!5uKSP3XcW9|ms)MKv}|buSxb3K5V?I(?~fOhD3P^o zy8uTCPy8V~VPqc>68ZN1r@oA!FXtfURS5?JHdue98Au4mk&P9dD=c|Q0-d;vHxCA{ zGxLbM|7vS5b9s6X1kGJp3coZ){V1i$%VRt>v_;E3$MlvCGOKd91JX`- zq(Xo{U2#%bCIl{=Iwu`Edj*Rt+JDQ2Uby@^wLjcUJ+v?|sBHK-_eH6N3R}1!t3g9y zsfLc$HUDiUah2-6;5Oz8yM1*rb_`}e%L*es4MR;gwh!Zp;@o@mcJ@4?IUc#LfQ!vck&5*g)xE-vzCUF^0Kmpjwz;i<;8DBfW2gH`&`;%4}$PySx`^_w$>RS)3y+^B-{Ul zS;@U-LP}f2K?-Q$^@0#bEkZfnUn9dfd1mKd1m0-tH!;b_W>u1w;;Cch=p9NJ4Bc~bWEdq!^9vF z!;NX@Fnxk6-{_-ug3uB^*6Zs!q1I`bYV3IW&;CZ+2_#!-R>1aPgQs`l>f+PxQt90e z!T0}1)?0=}*|zK7bV?}QDAL_EbV|d3ba%(l-H4>3bW5jnmnhxcokPda;CtQATHCv= z=l*}64-?m%=Mnq<+Y7>4!rw|OK*p?_Sa}TO3m*p<1XNPWudHmEJ8=$8il*i`be{<- zt*b;Ej+8!j;mC|9*sgjwfEjTrb3*0`YPlv~*b;g)pRCoH(?;#(f*9{3}K==fttZcO4O?QezW{qaGb zrtxxk`-Y(OSfqM6w&|DmD;%5O2NjhLHry%qzqM)$k8c_Loa*7j;%0;MWZ?a_wh@z7 z-_(HkTfJBx)smup48eu1!sA*`#wb^1Yn&*`0LF*cK%Cv`)qFu!?|^~F#NU$;>!ot|v|pKMi$JcrrRP3r za_uku(o4z9s4$fXa1iU0WWTZ@gGktG*32LHtH4fDTm>E4m=xBR=@ zJ9L&J?eTWrJK?$wuNvoH|I^`VMYf-&J*rBkS;AKD;V$K)3pc+Yru2mvBS$wrIpk*4 z8IhO{1L3O!=s&WLe*0LrwNExuru9p|HLAL4ZjEhF&D1{r5e(yJZ7~rsejV?7SX)>m z8~BDP!@m_d0(s8m?e|6N-b+3*Zt{t}rQgxJclvX#386)YuKCV*R(;opd$9R+wS*%Q zZY!kwsViA3Rj*2KtAoqqqXhR8xyFF-Mv-XHP`Tjtg62nT7rcmu8bGyMB|6UMGU&0k zJtY6r_fBR7oo>sO;xI_Ez5j}dmJRP8r- zTbj5#IA}JeLCXQ8&^YyO9{Bm~{y6S11gv2N1tm)v8E>UXe%r{SlZC#EjEOWaM8kL!wq@wopQ$+Ualn?~Qh_<3$UbV}zs`}o)r zYb`}Ad%pcux2t=${R(-l##<+$ynObo)i!D;(_#F0=d7`y7!sa z)cTknJ&LDnXqa_R7lE9P`Yrp^2?AU4n4X?4_pq@knHLJAz-$hXjmda1E;U;BU+ft*t+FGc73j6+t_k2rdH5>8Ah>=0gG7x>_ z`y2--v+y2coE!o7g*Xi$f-qq-Y_-6^#N=InbCu;cKOGaa@Gn)mQTr2z%vF>eIb!}} z#=5NN9(hLzBq-<-m7sJgCgm*YPB4Q|^&`#YMh_xn=Ug3fcxlP)!} z{#qjIYk|WKtF5!Z*0^8E&WX>t^S(&3z*#7qFA{HN7eE#B^DjB2$C1rr$_J{OoX*?J z%+Jr;^Et0M#8Zhm0j@D?BkxUQu$I=_?PLz)lvmi;sl8D+X+W0Da0An5Bo^67t>tj1 ztBZ&RQZW5%e(qyLHxmxLy4-9|o(iebyLrz5_H~rk9F?*Rq+{Z&7V5F#2jVP>O$iht zR%-#bB3ahe?GLrOU4hTqa8(^_KL1bYBXG|qEjAK<6zJR!e6{&^^5wSoJz@5v%CE!w zn*GkQ7aROi1YOR5+B#;HC6*Lb_2Cl`q=Vp5R2*wt93M}Xt!_^Ptkz!wG~%)Tgv>K; z=p|4|Y-aM#cu5%W_CBtG*Z)TL9yts={`?`8yF+<(ZW@)w?_6bTo8^FkuhfrZQ>>KG zJq4hcGp38j(<39%5$cfLh^#-deutfvR6~<4Z!;^ud`3(bDjf4VUE!3Hl9I?c*6J$V zN4{=pE0&962UH;zdt+HwaR)&DMXs+{4#;&%DT8nH6`JNtYxOXw&F3mv&;$Cdw6c8lbLL@7(sNj;_E zL=x68IB&*ssioI~^tA&a^1jmiBhjgtH-pJT^H_QM66rsgt=yJV1@7Mq^0HP9_fA*a zit_U>?Rnq)`^)YmsWJL7sod^ROwDeT{oR}T_@7O!9?vU(5aDrjkeB!7JnP!_Qh^8| zIzeE^Nl}aU{pZ19b`BtQgAb3M5B*by9n+8k~AYJao}2yASD?2mZEuL1#I z{J>P7q(9ExJSK2FY%$38{Ela$55RQe#8uJuVuyWR1*%dQJl{(z33Zp=n7I#(E*hof`__QXd z^3IFnzgOLt72&s5H?q;as7O5G)BzVKvwEVef(soOo6-F zEj#iP6)~yCz|PA}GiKaTR6jbr$a^A%-w4m@tPNrfc%ck%7n%EoJS?0j#6E)1v{%=h z7oYg>2?;p>3>E1A}uc57!ViL6QfVsvJg>Kg_bI;viVZTc6$t!@$OGpHI z)(8dxq`e70IC}$yxt^h+&!+uvEKT+*(u%0Ny733dXFPgAl|lZbt$tGE`|%K2|_i~DYwpx4D$pYxyKO;c0T zFN4G5n3t1F+dTdducj8Sv+TXeKAH@*sXu@I6e++F7`dGmm*eakw0VxYdwN1|8IFKc zyy4XtZOYZ%#rAAnV|%_q4`T3e!LdhMo8Rt2+uqoTU;gzoMk+j=H{$%9W=0uQfw9S( z*yZ5(_$%a;;nnHssXB+YrltuH@QEC|!@P2Ec$##SJPflZAVv|f^?iJR8Hg(JKqXc$ zK37&%Y2aqDpG@#{lpeeOH0PvFEc#KWFPgP?HwZ3jQ>4_m!W>SuUwkat)7TP+d zRp9AhVR?IhuccJz7&mSu&s?`fL1DeCezO2(p06sanwU7l9@!aeuvzXM!-hQG7*bG) zf?k2w|5*y}6=h+&(2t&T>|hHal>7M>jGuXx0L%1<`#ItE%IC(|Rm6aEl;1Ge&44S8 zQq#37yvMf(0!6Xe0p4MS7-aE&$yM@iFIMCNfAbE;R{cJDp-~yC8_|gkD>)iwF*5xG z`wX~gU@=lysLgk7LC#*JAON`JMp4rA=(dLNz!%1?=*CGGeFJ&&SGI@t-1FE z6Qf_->ud>oot9D7HA(NLodEd_ z&_IK$H^Tx$dah?Z0T9KdvCN{=5#)yyS8Gb`Po12NUKVSo%Wc|2ZS>{_w2+Q&asadP zVwm4R&my#qQ@>{=E38A53h|#HTarj~a+J7r4;+l4@*UH8g{Jg}CP@Ap%4&X4$Swib z&351H;X}9zw-FANyAC3Xt$xD@tt43cW3v6D2Np?4@>Jl`@|sgWIU*`lQbZS(YN$0W zg=k*X*}-9=)lG>hxCD@=?DaM9O^Yp5ZxH@K8ZTHP zK(Yzt%*~CXm5G2hsC4b3LL%(At(u%yr-ZaLKiaLU@rmgk5!=s+?h&7iM$SBq={<_~ zCF8?)aG^#@YkyY!tn|V4OKDOd3wxbCj_rH6y_vr^C(9aL689bA-)rj1rIz);VC%kw zq#OCwo8v`x$W13B8`BqF^KNn>7oA~?%97;PB^!)d%G>KwSJe+(h4vmZa1r*C;}x#Y zTwUAw!vqADOZ^9iEfsI8l&|?^Ndw%vHjJ(|@@AQ5lgwU44Hd8}Xx`4&2@_&snSq-A z>8Acq&tx2N9vII(fVkKTg+iwSP*Uk`W=OYZHcxrnoD(^EsY3KdDG8ss-66Cz4$!b36W#cLGZR)C9y zCsV)$GdNs>58d0=(UG@YyP6N^#A*vs)0>0-2G*JPV{-#`stC1zRI|XFo4Hck051FV zd%zV`sF-3W>Ig^jx;KPUyV{5wc5RUQ#@f4YigNl9<>ke(Uop)w2 zf-W1up*Y7dC3Q(=|u6%Dq$PRvlYmw)@~?NbIN<0)JGWJ{mCkBI$Z>rZKdelMYE+}6puEoLoge3e>%QIH&*yJ#O6glJFHSK->x z{rip}zrv%1a4xSfB-uAOUNveSNXQj0c6fCG*xXNokiCk4$wbxZaJtD#^fJZi;zq0M zQc@(ea}nR2l6$jZBH!n#Q??e_&NM+t5p;(Y-p$8NIe0m7hQ7F9N-T2?Yv@Th@Hq8g zgbxB6(rVa}fy;owu(-qsqsJ=L!Y~_-DM)$Ryw2uCEkpq~htWfq(LT=F&u_yk{%0Mx z_!yn{dl_YZ(cRMzjj_wwt9}JIH|a-?{4)aLrnw`_5nSxapW@lR=G^Y0z}6nm(#FNs znNHw+_XkO@C!S7kySM?x?VGH0b3Vrv21t|4Jo?@u5HnlvG{%9lDjub)eNYT2whlqk z-iN||H|>iJkc3dz_&j6m;ne(;SuQbprOXl!+t-Hgp}zqQ>x^Io9KZEww&UJ#D!Xp2 zJk|%v?UdIWFhFcRYBgC7_)1I1YLi!i6eg(YyyQbWz^8Xu__cLn+srX-}FJooxj2?!+r%A+1(zm6$gny_UhvqzaaG`kQM***zSW_ z_54ECGd85Rv;ksA9YtRb%qyouBQQOT^4G7KaWJ&LYvnKFS+vim(dOg*`P17w+0?Yo zC+y{4x;-&DS$HJ!tfQ}QK38Q}d_QP!$3!qe!(Y`j2zpZLZbQUn=$W#qY4APaC^R0`sm21wiMV&K6RXQf0u2icR^ELrqVoVC^Ti z{}z_l)9(-PxHtp~TOLGTYb==RBb!||L+=lMB;d2be}f+NGmE3(!s)OX)^em9G14{c|46Y0I5> z(;ZfeXa%HJnF%4kyM#+kSuiP5$;jW|=JkGAp}hhyr5PQMH%#OX4tARCzYBsN0iQwX zzJ<1R%Hc5-|4zMlg8-gQ;}oEy(+hfa%~e|}#E9=oBHPMgQ}H$-or0SGif<}NnLmFr z4{lK zjld)-6h%cMT?03FxV(^qHPwrrqam#Kv?+pH+s%;bo z{RX=hUphpa>)M`XSt6WRL^k72yBqY(N<#St+ijHRY;&iECQOh}?zY~#TD8&hwq?cr z^Bk-DMka8UhsMf{Xny>rC_>unHaBSJ+A4#KlIaz8r zvRZDWKp5;)6R9pQ$IG41HCl+BY`G#LfHNnX9wPj!_jDy;(Lpv zPgaJ_=}}FVZ}-O!llzPVaz%~J3+a%CZ^M}&CIIuc$gL5W0R-JBlfFRqutTUcmIK85#UeP+|zh9RE;ZW)i(>D!b@%ejoFU zxzA|+NC}qU1}`qLxW9@xulc7a5p|UFrJ_;qAjEuKW}ANd>aHqvg3C+1+Bx^q8k|V7 z3Qlxbuz{GG>pmG_pR7~hboQ80Po7u9`0!!j_ zrPDs1LZr$ZUQL!>o#8qJhSAaGwn)l%4ZFqAF}62OmeD?!74v|`-fui7xKr#~lA2=> zQEU%Pn)^Cdwb{WiNT|q8pYsmj>>rTR+Pp2MO@Ta$qPZD`tczs&bQH+WLjzfD(fZ`Q zj}K{@GJc~zF0m~39zVnX z^lSfr6_!$ro5^|k#+CPHA4x=jyy&0WghYD3Y(Sa%0sFmUYq{ps|L*bDWn5o#Y<@Wh z-PGL=-X3G&mEJ^k&O>`Vq`eP5MAyP;(xJm0oSbnxo;V_`dS;|U73zHN-H_>baOnDB z0VZ5Ho=AVhG$h3MbfI)(F67AO z#Rm2M;$yZTq%}>@zO_4>Y_IDnXe*^m$jH_=A5x4_`V!lNDEX!Mc&Bf=vF?Xr zud!H@Ylm*5d!EvD;8iqSV}j_@f&qT8Si8U@1 zpVY@F(ylTn^zD{(-`qkDQKZ6TS*xa;jUi;85#1NUL1v;Lxbx8LL)wPF-a`&)3qApw za!j-ralpL=rC0mfs^a7{fCkPnS~tUJfR7A+8dcrF!Nj9deXqHH{*ykO!}lb#qp$OB z3j*6(V-67I5hw_#HCZDUIZN%H^#b&!n@<2|a}+vjKk}JixPjH%$$7C>MuI*-OT(bd zC(%tI`3rn@<#NH8H^8?AEmjz|eO#8xn#5bGh0Loso{gk&;~OlyvVhM&PezB{PZX{g zA)4b5U3Q6!(>zbG!o6Nld@N-~p$mHE4>Bi3GDA3lUo!T;h#1N9gd7f8ayJzIX}|uZ zh+wHdYMtZ6OJ%&y;%jIg2&k!28_Km8dEnhBHa004uK;|24H^VgZtQzVd!p^+UIAd2 zFQbdd762u&E&fJAlPjlbotE~HdsU55{SYs|;}XMqioB0-!!vPLrf`r-hadl7rXEee z46Wn+`8Lk1)cxlf*k|$EU1mb8von@Y9|};fsqQdV{^VM2{)*sQ|H$Yf68IF}Jyq$c z{CGg~?AL4jw;_^64%PAQTvCLn+W4L9NHPptDy})wm5Pf9S&18G$*D1oWZD|7Bxnra zPAiYGYyQ9)LLvN7O&ssARF55}jTq{hUstg`KU>}=0|Np|eTo#jPk|}<$c^K&V?hk7 zYnC}C;mGWRN$k~&AJu2dz_-uKHb(x3GI5zbq%H^D5_KNJ^B_wz;m&XNGm#sl?9W`1 z?)G+{5k$Oz+~6{6X*ThMVpT^za1l?2*wf3nRewqwkN=&%nD1zXag%~@YCY~C^(`o1 zxV&td{;&|MKEo{(ggbc>!PK z)4$tGN%@#xuw*tae-%>1lf3=&Tm1i4XHABgZN^;Z^?e_{J(4>hoOX9YK$|s{XCWm> zHr7}%tCDPo#l-(% z$iYGY7n-;1yKbvslI%==r}|P;O=JD2A9Qr#h13I}8#}FI1%FY1cu-`qE6EV#AP3>6K`7gc; z`3P2yjwQ)SW=z75h2On!K(Sh`(?GyeE$8PBxW0@TPuu6KNa}1b4JLycYpWiOW{Az! z^wg0I@T567_c<;|QQQpuX)8`a#ThWx4p@@8KO!zbK={G0r zUEp0V__5g7WaSWCjJ!q(#zjwj|LyYHwo(suX>qYeMS@A_6OsKll0Qm(=BhH1R?C0Q z1eZ)!lTR>%udIrJVBfZ??v$7JN;mC3SIUkaX&>UsIXhMjYnwgG=^KX$l&kEk&U1Tx zM-XxbO`m{Zur%KCkKyx3zY&SV?#^ju_Z!JD2@I0B+bd66WA)p_+l1;Ay4T*pSI5ET zh6TUqFkDrtis*9^zYY3{IsDAf!rB^q%ia>oiK1I;5j_|8!aQJH0Y}t}IC_}*Q?PD0=<=O43#d9}3RP~prb__NzM)!`TeW=0JA0lH8z-tdZT%Jk2 zsi$vh9c6Tek;$X6B%p2@98%kFdXf~ks*{+8_j}d zTnUrB6|j;o3)ng6^cZ&84I7pA{Jxa(5@S~K2Gn|q)OXwJRG&%t3wc;WDZ*N;o|ky1)@5WJ%|m_k)Qzfc z-{NDf_QBD;rmEUzI~IMDu&N{o(?0({uf9K(UqKpkxg_~L-CC~ygN8oL&%n|$;?!BL zDLANPxeAz*)2gLA`A{Pezs7E^ct4&g81Q?qh;T!Tj=EUx8}#~n`QF0hj|W^{^Evm? z2!Ew+XTRkJ)0@Dgboz`3*SLqoh&KqO@FwAH6vV_D&MjkOP7!1xs~wv@>Ake7a1WU+ z2$m_f2S)VXhohN-!IWb+SQhlCkVUg z^r|0AfR&CRwW5-#zNJ=#WZrbKDmq$cnU8&WnZ1&_Yte&cFHU<2yt}^$HFZnf5B-OV zg&pMn&3o+Nm=B0(oN?N0l(Q;!NDBbLMXlxeIRK&jc;H$-3w=__$X?QUd-7hK+Q68q zrTbAiO zpr==ic3!3~uC$6zIP6Uca#8E;z#}D2xDu?h)^iyXz*N%fbcjx4gL{k&_NkH+et1YC zofB&JmqlF`rDJxiuND;QARM|RQ5;y$Sj z9y7SS9O>6=WCOXew&NV8CdlihqQ(EvO$hYB@N3098%_ZIN>wuiU{OdM?G)&Bvzy?v z`$6Ti%`nSY9eC3HR!Fpeui&EQZHGPGy#B0s@K}~^H?6jAvsB>hjCKridnyqB%QPyZ zB<8g8vnO5=L@2}z>8+K8n+sgn-S7;uex|MvoVN}^vlO;u5ro|`ZJQrxoYrTu-det zpSrZ0ShA#zMBCW;BW6L?R5~`;SY6#LnZ?jy2`RU69U=Y3X8HVjH-E$xDgv2fsWZFh z;&wFy%iafXCef>uva#ybPq2W;x7>|<;}hsVrYWYd+t)`whJ+xC6Atr{ZTW@jHl)j= zl@sU*r-6L(b?ZDENIPu~VD|IM&R$)S@0{(sN{<-c4qhM?1E1MOo81+TLss@X!FRiQ zm$v8ldYaOSdD(aJ$Zva&M%!B;u=Mm4p+m_>G9X3q8POCU=Q2r7M)|$jjrqQ(ftc6n znzpm|*lxB&yz_N&T^%q&RTw?d_d*gPV!}t=!ISB=B@~J_C4eLbuGT<`Wj}VGNAhBf zKW_a(5ENsNE!p_5vA0pX|Ez|A0mE6dR=Qq{2<=+*;a|W96Wd#1k0pG;I zx=XDp18p2^lKeUCmp>*6xrOXj4=;l-LHLO0*MS&xgU)K7sByz)le`Mh$``!b&0dw# zTUyoxgWme4AZo^b_YygQ?Beh;lo4r57luO05I{E^9EheCkM4Q9h6q#o13v3b5an6! zTB$PXy?$%d)@?5t;pO4QoY+eD6Uli#f2&q5KJu!2?}rJ;n@F8y^18QG@V)5B0%JsE zXN#fK4v_4@ZZ% ztt`??vHdMaV@;icU2L=xR5Z6|Y(X5UxE}Zn)aTo-$1riI8?x;+vI~~8PA%hV#yCfUp-+ED92z81J9$X(M>Y;HkZ}!t>bJ3J6`VJH@pG~Q0 zh944>*KfjW;^4XRCVz^^o-3u6{yur1j-E6Zf=sK zzleA^+?Ne+EE|&MJec=wjN%pN0pdFj4$4VaNlMZ7>g@aO1=sCp1wHwx< z{gVIX?+??oxQ|s8X&i$buhfQD$KH6KfbCR4bkR?N^&RqC6VnUIh5vj110q*jTFR#TDxVx=1M~2B zR8ME4>eHt4mz)7bkek@R|17(Fir%0n42#4KjIz10J~pgOo9L?Vol5~Ky*gCWx+IPyfU7PqW;tsV$BL2dHwXyY}rc$8dQf$zoAUl!EpD7NOe!M^~onlj6B_cne4 zl&$**T)zZXUgn#P8TR5^1_9)|-9M=H!GL|uu4D@xkB-4cc}HZ)O}cJYKBvzD)J%x$ ztmA#8sn#S78aaa^aeTft&-SNED3m-%kfWzuhz^gi^tsGkUL^6ZA8Ket%KoYv%rUfs zM~%vtXv;IHw&`6<`oM$5uEimcxE^xU9hmZWg~BwB+>CF=`<$P$RTw!P=NgB}g}G;d zTCX6u2o$1;e2;!#V45L$@tQg%Y~Cl@|AcIR=}`7v9;W#(fxB#Rv6+YBVRy7+RIYvG zNHn^-h;)8|FZ-8P!cvGoOvlauJGGExj;G?f8`i`6uao9XeT%*EjN;q|E%$K$wJ?PB zilzXAZugK#%7hz_5uILis8q^p1Sh`No}LYX(1=3Ei| zEcEiBd{~0PxuWvo>sazyrx7p9l)*kNt*QL+&%5S^8BcYD31-yQ*#o&D_OC>yv2OXk zk-0yDZ#2^WqPw}{V3kDi9U1)XPV`-vW_!mAS7L6b!&N}>;jc=LpcIx6FwS#|Tv<`k zW%s?#a#J=#a&dIfjMlVyHgmgfpcww<%7|gMX75)zWo&JHhAlmNL5ym?m=p`(b>WIa7ckV_Kw|K}T&~=DU0%=F$!5!K^U| z$)(Yc@Vs%E4aP#@`5auQLL0q}4mJZGPYvs2a$)p2fki*9w|-k;!2oaxQ#V)DeF-r1 zv~pVQEEGpX(~=f2|3y38i{Q2M+!OM zN0w}~<(^PQqj$eX63Cpd%$w@#Q?W+}v!`6;v2<+=-n+P7?pTpfwM$}Z1`*G%QHT3} za8-{aYC#z5lz`n7wP8=1( zSQV|47Iptjcd6PraW(LISpBJ;g&z7o?Vv+;(B95arP^y(4+%|L^$J;s99axSV!Nh% zj&dBV%O2Kv`%qigCbwt0mkGrTcG6gq`gG9VjVDMrnPVzD7&2yq{g_t}Nd8F)d2>n* zF{#vm`#nbiT#?y8B8Az?9xlI~Wgn-v4>uh#ZgZr$+Ap1!pC@VAyMOY{3+)1wHKXCP zu596V^4nth9e=*Y-m0<_x;fxAh0*^*|vJthN6q)Ow zRZK|*r1U6#R8ABLN9n)G>5O?$)bw(41EJBB()1h>Qe@dh*hV>>q=Oy-WcQF`*geyb zH|fQL1y^GoCZgIXrNCn|vFXL+r}n-KQ$c`UT&&|SF7I*~CVIPqa&;~dCCEPUFnrR6 z-wALHM|o83cvum_nWYDpqD~j03dJ!7X;`~*gnWj`K`!!FisQyVyW3xu$`QWkBSj{c z&2zRCs>=n(i6+X3FoPvT&7LjF9Z22vT85=jR2`44FDH3kj*<9+5Vze z_Gsu@V{2!}6+<}2kL=@$T;Ws;Ea#1L@0F3olI?%jJqY(RAhj6Uk`?0< z?iEYvq4xiF!!q0%POX#vR48Gti;La-qpla^e|GA@xQ4q4C&;+;SfHM2$C2U<<%^Z2-OdfK02RhuF9W%j%?{1bLA zCh{E%$^``Bzxt0fkBGc{vduA~L#)Fo*}vq~Zg44$Ve(YzRSHvJ$3+_fNZ0ep>j~PfOwVRARO*DA7uy#IU>e_#dLL;lKW30{ z>laYzDJ{qG0qLJPshIoh8Hz;JcG%X|BHXFuiN4r2Z3C#;oSN{t$6ttef8``$2e+@Q z=f&Ob`cX3p=7)SMEy<3{ox;Y7>W}P~G2T&{yDxne4BaTVlNcdYyhi_ddVGNPgG`{u zJ5nB(B41ymLxdC=e%y9W4yH2q4SkZEi#gs@+C$l60_Qf$XKjDD`L)6;8u+DfUj4ug zTh$I?uPO3OL5SXUoz}EeGqcGI{8N|zZf%jfJZ2`lC-i+;NJ$W2zcrD_?y@+W#ivxj#b_UEi9a27vVqO+S;_D@#dLmO7I=`?d;? z7Uu-g-9{qr4b+$yb(*#peIG!s$~tI|eavL}S9N^&Tee@(=33##YGHk2`_&2zCS>XL zHXDhh*?e_THB_2w*jtGD+Tw2YPnTb<=pECrH>vA>PLc**Q zG&$FRHQj3NI1RxP1Nk@BV6kxs<gn$(Qd|H#M!<%cr9P zn&_y}L2hdTme&Z{9WlGDS_mO@Dh^y&%2<0L!Fhl-G#yw^SS5!G zC~>&(=y}pyJsSFat>Q%)FQ6zz+Y%qx&dW7Cli=?1;fR;^P~W!^w_T_qByq3d8tW_TFno zEpC7O&wEgzA#DJ=klXP=6M5Sk_Eqd~vllz0fS;$D$EZFNawXd)7 zwqviqonNQCH*z@5Rn4YgOr9)S&Nn-|OFER^nECx-r2``8p0BsGl5eiM=29HP$t{V5 zXpSJY+b#dQGMWyPy4Xxtk35Ua7W2)9i)3#rJ*PG8#FmBAkVT*A4)pjZ&Kho};gS*=+v zY^;aS^4+vlD9iJ(5QopDMT=+UT&58B+=xi~)?wG)o)zr8kHh-uPH0pM8?KYdH=yGr z(l+r?Lfy1e7R}^%Qs1q8Jd;8ZN{ka}Pu~uKrwwuyavHHziY?>>>Av9##g3GE-fru;-RB^A)u%MCU&l zB{Ahm4w=P?)1R$%SgXXSaHeod5@XDP-Jw0tj~e|>;P);RQgnOKK?nchoftQqi{kw5 z+w3{Lmw9zfGlt~E?o^SlMoS3MuRH`(g((&cquroTq3X!mc*v60(02slKZu6$rH-)v z=ub+GgS#(q9AM~068@MF5V*5H4gF=_*lT!M+V_h9pVcLHo_{k>wOUmrFGq{)xWza` zG)>dO(Wmdhg0h;b>-)p?`*|FN`?-T8ACRGo%9ptwW*2dc8R9&X+J{=xy)mKkav>>4g%0Uh;nZ+>mL=L{B)?!U0 zOAvR9pcD&K3bDN^u$l%OQwDDm+pKRXr)h%2$a~T@qtF?J3vh?_d`GK%xCVwZG!vwu z3A?7Q>d}%*z$THwq3TT{x@O<@*+xj%!&`r!tl&0(w;rTIUS7U*EV4Pfmvw*;ls?Yq zOepT7lk^J*DZ5okx_#6y)CE*S?a!ZBpq2Y{b7G8vwqkdR&Z6IFQ3{u92g9dZInEaG zBaqb6>R{+DW5KkO){ZHGYrmXXrf?ouO2-Jf;vT_wt3~n2b6nW75crt3v9w2lnoS=y zHGzdQw}=n|?^mpv!>QloIIm@TlbIIcW!1FUVBh3h#g9Sm;FO(+_sc>ws_@$qC*dGV z!uXEKP8;<%7b}U6X96gzhes!`vls!>0ULg**WgO02N;WP;ztX_3X_AZcr&jH5a1#R zR$(1TMP2(Yox;tanijR}G(When?Hq%TV2B?j;{Oqweh|>zd30esk~WE_w!2RI6}w~ ztkyKa?;|B>~S}>x6*=7q!^oE+3h_4%e4_v1c zdevV1m&2qd$-h6I0)xbQJnhGkN(-O^=h>;H!f>1FH|rhcSZOsI^aN4Bi`edKGI?{p zinEJFocogU=T!}5&yL+$N`rY*h0lkyq&ll{4j9*7?AwQc;|28q_^kKmsSR_7ZhyOj z<9&E6d^Jf)k47tWxh+7q=&>TS_7j9KO{?skT>=Jg0OD5N!Wb|)HI;94ZR%ttc{c1D z>V4ko{BtP>r6>X8*k_w)x6TaBXj5Y`(7vD-Ao7wEbHW$<`um6qhDp9!@Rb%qKpU6 zlC3|~f7_{j;7Y|VqV}uV^b(g0*nnKrf5snB3+hUpDJ~b=1Wk{HMPb_-*PtlbIAQGh zxf)`8lC@s(57e zsK2Zqd;qTEJ4mpeMDg1^NT|sY{>86arCLRyTGt2?c;@w6vcN|juXokm16U@Em$9k%Mk2c=YII6PKg@X)cQ53(mZ6J z#RQEV2QlGsPTPj`O*54c-Z=Qv$0_xgf#>xMP?^V?^EjxsC{#PA|vY$kxF_ zz>|s@++Lph<*6Em@G2(8A$2WJ{yDOm_QNPLWlT4N_7_dGd9Wa*|5SDoIVukV*T-a{ z48ZTIDB{P%F6bf;ALy7xN{nko>bxxzLxjPiN9$4{E5Zfq5h3Y5|AsDE*+0qx?@YlC zDt>T(n6c&M5^%jNh?jF#O}IXza6~+jRfTJHV$9+8OZM6QLqtGLCE(I+(CMz*?bb0m z$?V96zoEm_9eXn^8_PEFVPpL`ZF;1fy(`z;b$7@Tl5xI*&`BJ%?B#@M;5g0KfZ^_l zE5G+Z6d>We_IE=Hayi2Yy8{J270lV1{50+mYh{BY%R;9~)8kK0dO}*0p(24J^4xy%<`2tkSdE8_6QcjtUtVA>kg85!^qhF~`WG z0(qNQ4SIDuP~QMLGZ`GAnE`~}FhHsD{mP-)r5(cQt6Ogq68ake>qB)CjY$#F|3C8H z`=8C|{U6t%+NS6-O3_JcwpG-wwy4&q+FL0>Y+{F^XenBXqV^t1YQ&02wMFfjgb*=m zB@$I4B*NG0`+dLK_vcUeJihmD=e~2FllxrPxyCuy^}I-mANw$N@^=;TpKl}=4So1!u;BuI5t)hq-9Q<49+Y10kcgc%(9vb&7`Y$pV{X} ziqTH3ShW_bvo?*4%oOwoR)*Hw6T;i0*zfQu{A@W;x-DPrmk=3tBbo_vN3XuwY7jg~ zEq#JRCEU?A{|@ZWlA1Tk4)6Riuj<5<6Ar#H>_Eukue&_N*Tb6c>FE7WSo`6jK(~kk zzaBT{ZYj0_eXNR>ONkC>mHYIdR4?a>(q5rJIdu}n+ zK>b6*z#YG(0ig}+&HpnO$Trt_)z;E~|MG^HqqLahrS$2HzI@GO!`Qb}kEGdMW6|oz zG5d7>(^rwFmL@muMGn>W9w-0)1-Z4_dyrS|T-!N!qURRu9dImmY`*a_?u9{#fuY+T zC&@@Mfm1CIVX& z9mFNS*W2|SRdCrz_PuubTjVP?#f-I<+FD)I?`_CZl1(X!u=u<~7CgPXbNIJF|IJ9> zSN5BicU4V=t)FjRMs3@6SVC-t zkN}(8MBO@9&ahJVspIFb*UMfGobV6mtUfeWgR|}G|ZSfzrZVNI*#VZS|8RyqMxrFao=w)}n-nc0EOf=irKKBg} zE68h*wCZqyTP-+}EUC?N{+H`<82MF$xCQ%uiiSm$q`SEY*E}>5aD3h2az5IcFY~J?}jHbtL71tk<+PhU30)-uF1J ztdxRfUVUVf&tE&pC|~`Yp;Wjp zc=WmFc+>5^xFod{iQJkC0vDeRPCd<#{&bKn|0({DZ=K8R71@g5+7*%Q=XnGCMvE%B z^H0+ypQ{p^{W4;KYN1<&iG}%rO&^yho@^W-2fM1@t2q62{0i=>?oLT>#@JJ#LDERd zSsLk>boz-V>xQtmHzj0@;P!jrwhW%ZP<-uUMqEv%A|$r&3^_45PKNd9_@9?|)ZZK+ zB?;UXVm=t2c&+Bt@(w53`rYlZv;{XH;g9U}4F^$Q^G#rn7Vz;khtjt2)=V|WmX&iu z5i?&k4)RB{Z{EC#c|XQ~82UlZVWe1e{*%&tq|b@dd|s>L$5+^gXmTLaszXD2C}#fw zzT|=Fn?t(E8I%K`2}Uii7+a+Fe&1m0{kn_An${fv0dodM{GK^9{5Bzrp7qBZ@Sozp zvkic=uZJ2@Q3L(&<$e^~-ko;?^|i5>{Rc6+j~WMEvtm*TuXv0eKzxqLPWE5NCOuH( z8+1w1Il4110W_fxs>eh?V>Z1w-#9qZ`DNhzu>KX>j+@o|yF zWh7f@4ajIID#&3UbeVUiHe9BC1oLlXI7-f2yzBUczUX)%c_MbqasP5x0r4>8NuvL5 z-Ngh$blAJ^xnRNEEk@Da!4o@#nriosG_+JGpg0v86pQbCu2`aD{8u1*E`9) zFLgakE-e(Be*Mw2@Kg`%l&JHwboU?uWY- z4n1JbT@S885vGt4b`L8DJ}W*{)jHufiNgUqPn-|j@rk_f`n+iIda=$q9)GrQ>m0zz z_`U-;=A-p^m8QhRbNV0XI8|HcP zOS51E%~ zgAH&&6>>jrEDfA1ziknj>k*9@(b1&7oWQCbTSc#Xg!zgAcVDyr0KAeI7D+Fm~j7X*W^yuKeq+BaERsKHH$_gA?Sj8;9OLjv>2= z_f?umj0x^-;AvQea-bLIXBa_4jTwAx)DMtNNLf>vTpLcQ#Ephv&1VLElq3(Ym{ggbw1>*4iYinIb8~HGA9H=`w{gv) z4*1%`5WaM&Pktkd7CA&Va%y`gXjW8l(Y)+-^(VX%rY}#ytmu-9`VZ)#S0Rkvh&pF| z9OKABBw<;8;m{ktzPvJWW9%lEdvaD*R>V>o$w%%|g4H&iN^-;lLG$sCkXgxww7*v)L-djID5(ZiO} z&#oP+e0fL0;^vc=V4Oc~Yjc7ytq25eVW?!5*&>Fj=(n}1=%+R2Z$PeGeQuHYG9`2D z=!w&p>bWk}2e`@)qMWI-XO6!*eeL2kv`D(_m8t&zgVbs2M1P(tJ=OwcpQqO--+x;)J{wzD+0pfR=dO zQDf|?o^DeEuNGXbY|c4(@C1C;AEii~oA=jS*reSvH&Z6}5>mwHUJAVb8fQyY-);QX z^zs6E96g;i;!L@n+WagkiC*nl=8we42ev6ZUYdP#1t-tP+Y#<&M-**L2MrmHWDEdj zh`@;O;Mu}Gs#in_x7zN{2USwMVSC2v^=!Q;LQZtm)ZT*KJ|856WTdY8C(mMtQJ2@Y zB5}+Sth+IkE3L|TV)Qi3kC8iYrcu6$3#+n*RH4AHsf@XyD+wp!N7c+iNxw0B>r9Gu zS1Tb>$Bx}+$}`%IZlsqivqcm$N`@POxP3x7b7}K1 zIZwQYKAn&irLZ~b$U)al7|Z%|Re#B6B}`Q@?&arepy)E89Mhb@B+U}XAlCl8x@Y56 zH@bEe+>$je(3LZf0Qa=XjI5NVI{IG}^MrU>;!qftPw1)oE#jVTF{BP3ST(Aoy1Y-U zRXS$Hw4Jo0Z-QDp$d;Pn;#bTjm>AZx*HuOtTQ$XMG$?qiAf<~+43k**{2zx+Pvz(0(vW7pFbB3?u5 zydu!V(5a@PBM%Xt&mIqm>!N{k1LVB$_U-STRm6%M)=We1(Sx45!j&T4jw~FpoQ$EY zH6XfdSUpdt=S$N9;lL4Ey;a_Xf7F(3-umFQT%%;_V@bKxuPvn!O z*2AVX=3}Ej1aK9mF-s^7n?IvwQe}s%B;LE;*x_bD?_ZwsuADP958B`Vgx(A0<3CCd zHjudJf?At~h-#RKa^C*NwUxT5@xi1Dxq zTJ^GiY&1SFXv{QsEn#TQH-n?Ke7zoc4~~g}nIbI{6BePm%$^mj-r>E{xLbAY!7Bv= z5%Z(&G_Ol58j#QKOQln}xw%_BBW-$~&BvIT#2Ha>9La?>?i&$T^}^SI;$x)|NM200 zkKWIDi*HnP=})}fjT=MdnTgQ5=v&F^S|97XIVM;5={Wyr>SNDaZY-}S5>gprTR?xahMUE$-Sm#zEU3Kk3GyVERJIM{)!ZiS4#wX~h zwHL?83Rjo*%@XXp8o&&6c0k z(_8CsGsqJP>}xsQfHmDehG5_bZ{|yl1JwyOj)_{M56FF4J*0tB|8U4rHxohlq%$GV zY$?=6T?XY0%cCdm__s6 zVr^@CZNCZ$akIpEO%2V>71}L<2Xj^N^%X>TG6{0GfvA>${akcFP{Fk@hJ0z03&a2KKya>e=^qY{}%uHMg zJI<4fsR4j0YxbMJSnM7x5xW4PAS~9-m0v4(R?WeIOXlA;(mAejmJT7hKMJ?;qwjP( z%MSL9jU+l3hZN23D~P9dGj2{1LI$8SA*?Qx>^SFI@Rr06Py}S?{BL4Fn8E+6jM><} zHgbck=O?`L-oNnvV!&dd1of?0;MZ8THs-G7h9VvEL3jAKWK328J0|AVQUtw9H}I}U zk@GQfxaTGg!k)a#^*{7tYco3z%lpbe*oy>rPXRvzKHV7%x-ZlyMsEYot$~du8ydD@ zHrHn+=#r*0Ef%t27=L^NR#HIs4d?&#a6iyrwP~+GKS5w>N%6{X+0E%MhwqqgOyV)H z<_ByS>3XM6{C6xBiQKpGWG}}cy~iwCP|Ab8nF1J_*@>^HT+Es`HtyK}{4VSuT>QVU zu(9PQvS>A&L~-1X;a zm;3iHzv?*bzXU$GYoqD?-;X?KEsIC}Uo#{dyGFieuy{LI!Qk}2&--ofbCIdtsDg+m zCw>FbFBZuEd**KjbRi_3qF3niOe<;7Wixtrw9jk0-4*y>lu&_4!@`qWbm}4TM8C7qzm8s&buH8*Ec<~CJ7Kml589WS46JZbpst)RfG;^AsA-Ji=)WnR zVg880NSArAOQ=9icqy+q|l59~^A)^yyQ|S^s~%e^uzxJJZ(Gv>XjG z^S2gH!^dvDqS5oFy1@umoSO1a~1=Wzdf|Lb=jSzF{qtRAN=90!pnr-K6&q1l%woob~B zKVL>S^=|kexqQSZO5ecg&d%1Fy15> z?2d~D;S_TYfvf7Qy(!^=>NZV;30=C%zp-c9tp`ZL(y3sOIZ~TU$FAa_6w9`Zc3O1( zVRw36M+_D^@LxfH@RrJ_UQ-(r1fc3^$w+Lwe`7Qm2KQlI$~mF_zq;&Jsp`F>KFagI z*Wj93Pv$=+_`i6a{r^Ln{NMGJmDMfcmUIP0rGHEqM)bek6i@(OjYyb8U)Km2U-x1Q zGHvoIzXb7D<10hQk!}B~kFVc@p({mt%APqluPV z*MkO=(-p!PjLTgfO&!gE;!v>*b_Bm)B5XsoZBH1}IIQPvo7xTGgubV(G^R9oKNaZ?IsYV2W5 zkpsY`raW7|+*qDkBkh?*ABcS)HljAjVFhdlpfbg{9$-eK>U{FQT&VceU-_{gWE6o8 z2@RFQH(F#rc_{u8u%*X?Z`A#T_Ibc8O8`m#ozXBc|JzPaA{OmC*tUo`eHgtAk}QhO$85rooFSJ{gV-`-6&9!STh;o=>f zzGK`#mH!mAumK&w{{0%sRg1?ar==;i@(N3+dpDu4X_#=2NI}RU4&YThD(#~Wc+@hQZptrNZKxi@dq< znAhy^%&R*Z#h(|RD26`8M3sbq=7^V;$IT>)8-6P#DT#}pfE_AlnVha>8ByN;h#oMb zWOvK|d{pBA_`)aEw@0DLfI&VwW-uG$?l#AyRpsivsr;-JOWcLO0(8bl6)}U?R8HUD zzS)-gw#~-+Kb^<=j=62WQ?iI_piZBQbK}r$ z#}{40q`c_*ILmfvA3W10{mq^Qm4-f2hRCz1<>Se*taR5FyDKJw5?Lrz;oAyj@rBx~ zD%>WAc0|6zrw!su&&g-He1FZ!-}iDII>2X7LbbXtV2Uc!1x#3^O(ugFv7gL%xmy^2 zRgtHzAS=^6@t&#FyRlQ2avyxMjF4d0(f2Mk@)T@2_)xG!@mZto!$f5$JjR~z-9!_) z_HJMZPv9SQAuP{D$dBepziU`K$4u{YdXN^&7ba4{Ig}_kGR?E;; zY@^%{Z%WR~S8ObLh&Y;Rx2hznu)Oa=0r{98-Oiz^(sCxwME zD;74*0VeZCfhHiV@s}TEnJ0|>jNWoUNvoKnH+4mzx0C~n-gbc+ec;VQbI#;a>%EkYq;0g?iYodHCtcV z+LA4af>hy*$H`)z>T|zJ1(->`M1upVEzv6>AcC&i+1c6Jf?ZKg+M)h04lKxxH4Pbi zk|a4^fg@F#io0p)*%k0_XB@GUV%_^NnB}eW2+O8~=G%Nk1XQgxKEp%oCa%{14smkQ ztn-t#w6);LuHqw-D|BRb0TB?D8&SRD2#}3b}-*( z7P<8=4(aaqj8FS|lGe2zV%+rlo&CU8ZQ=iVn;5m3SF)vpl!ThNW1?Ov5!3I^g)cM6 z_JlziIwCL3rg@?fwJ+QtVmS{_MK@jv_ZHc{UBw|%hEV%6nu(vuUiT0&Q2Ua!hU!di zU}K=IdG0Z zq^bO()w{J3Sw0_i&j=qSeR9F=3nNn6H=DKps7i%zYPi2QJ{cF%x?P6yj5dN?m zf{Kr7SO$A=D?E-0>eo~FJL^Fz27#5oKLUcY4t$KW9(-;{`yqCXe(>aJ4%HTTRo5JI zch3W17)1FtuFD7wT`kc8ovl9x>YR;b4Z#|0BVJ<(0_~);Ys3fZ58L)kf;Sr>yszab z0T>*wxxxsUitZ{L;9Lu=I{J4+Y8mM18sn!}(&VU=0yWc@<_Bi z#^c@@)xSdscZ@=tsFIIPndZ5nr_x%*R9!x5WnL~A4b-eEMDvTbg9*8y7O}Z&-u~;A z0E>s}Qjpylw+Z+~-u82--TQ;~j7cu&)y7W0_qsQwcftc8q=)<4NF~PyL$D4ni_l8r zf3ChtB}|v6ZF*kXiS@`bVXY-XQ?FuJcce_WQ+O87-n<4GO%>rKHhr~uh%7~DJ@l!2 zp%GBe2;;9j<6QsJ>?-b^vAZa^jx%&RIr5eTM$y8HRngEgPX_{vr;LnNQ``dU;vfNs zad50%rmpD)@?@;)+Cy^v9|rQ?v{h0#`P>I6HyQ@IajHkHmJ!%Y6qYM4_KmPvJrrr)#it$;ke3Z@U8mw8VaDK_} zAc(cL>&u^=R$gA-yNYrpY0Zi|pJ3+ieS^srQzYxfwyb*8d{VSZ5One#N(MA}*ZM=C z_dZ2_8h7=0$}1J!aKw9+-(7yQVE!(_1|-kphHu?)x2F=V?mk&*NTd;AdTv9Q}O?e$?FBa2ht51hqmyCb90ZzHP3#fWW z`1E*fR~$ZXs-;w>%Zo(qD}J&yed8S@2=&6Q9{8I2&Oi0Z{4d&oT65k2%fsLA(Nu5> z`N7PL#8xvSM5~G%06*g|tlXc;0v5XpD(uc?ZCU=RtdPxoDekRc>n7(RG*PXp9N7W>?!eI+;D{lAn5Ks>s5+qGwz;1)oht(yYTDI2wyaXK)$DN> ztdKVHm+J>p*0jBIj=ik`%6i`Cu z$0b5oCAg2=e*~6=#t0>@EN0`rrC(jD0RP1ib;!CNYho6c*86L0zZ;Hd{R1LgKtpe( zf*LhfP$$>5ntk7I-&j&MTNDkrpMR-g!zD6N zSum6WO4E%HhNFG1s2aO3%{ccATDpjoFAs{nORZcfWyc%-Qsanpqg6I=pCTLBZXaRI z{SH*hI||Zn%GpjFos%TebXb97-R@}m4h+!$5l$EufpYWpqlQt zx=KpT+?ARw%kdAU^DgQid@WZlFy&tPX{;(M*HY?gLgg&>aWU?+OBLrmIzWn{cF9%z z4a5w~%YndYT%~!N!SUsyXMxi%&ayFX$vwW(`uX}R>1*$zOu-;afMB)owZxO753iqb z7v&@iy1rTdHk3P#P<>oFWlPM>$8Z~V5rt$Jzm+!C>wHG9jJ!naJiEwnl(X5MxG)v) z`Umu}vM$KOMqPfS&6fuatKIFWVKJ8C_V2@~p|&zyInOMvFL*HhSb>`XZQ70j1iNv@ z=RJFzj;fi8y~odGd_y*)aI->R;i`y|!ie&rshwk6kNO)+WZxNt+^*;SWvx6l_Dd~@ z^J8*K8>o2xdUNEJW&W${$CA^N(9z&S0j-|dTY87dozVyatqQ3>;Xld)NXvlSYh8R$ zVN-VzgE8uJEk}pZy=Jz9AwEf-h5wMJ7NfuwyHnQcy?qPqA#(+{;D5I>=)&N?vTj0JkYq5_b z3tqkb>~0V8ndAvcGl_V@SWo}UN;kmILfs*lo78xbLJ}muAw^z7P|V0u+mf%i1muDI zIMEbPRol3(#0%WV-wjxRnS@YsSP&6*ge$84hU$~bZ{M4W zObI4s3J_IfmHifzJ37FY%(&VRi>xHNzt^>)Ja~%EVG?p46_Kp=catCtb=0Px&{Qq4 z(JL(Ef!U(hO5dte4jQc2+aF7M+M9(^EdaGtSgRFfE5NH924gaZz7fXZkvYb@q6(Lq z!r#o9+FumqR!#@l0s?X+sEAwS79#Qli~Y{baPeEgUD_sL_BrX^POrD^}KI>OI1mw zSb;8#O;Aq0*++MsaG(=EGmX*8ep-kfi#CKwoO={M>ZppuXk z?auscIoi^t!3bXWOD!+JoWja^)S@fGD$ zDUfD5QWcrW`2ej>X5LGknma8ve#QgzkYyC#jVhBQC2^SSr1r@A_UKkI{5Q}L!eRJZ)asM%n%7{bYG zj%XzWT&*9h8+Ng)yXcI?s&GkrK6||My+o-oXot?s1;%@ow-Z$`w0%0WJI8xR0TDFom?mgJzz17NV4P5p6-S#-tra2CWWYD8 z3gFep-{_xdeq-(oalZ)49q0j<-m+mu+7hO-u}vYbR1X4RlH9u;26+ z*QQ&74)nze+u`VDObm0{DGmMe#cYaBi$et38_7yc}~f14*&_DtuIXn8o#X+=Xr`pxMu6GsuX6> zQTY#9%w5N=<&SE}ApQBe1j`yW*hCGnRwPVTko-gcsyl@sh>s%p5-O9j2) z1NrGz93>Rm6p?yTRkdfq*V5W{WUTL5IO${4 z$(8vfH#J!_J*{S^+Im;HtfS<*Tx~GG1e(Wc>Dx+1bj4&s7KGEDqV`nEmVjW=h%1Yc z5O^0y9P`Zsh3aQyP)TNdSM+qP-lJ*@Wfnc%rVo#%g=zKc`W8i26=%@2J0CEI9rEO9 zoGuedw`-d6gD2tSk*pjmIIZikJZO!(-q_3X=k#w#>Y&pYX#SEHvjXpz;CkG4)9lXt zz&P>Vv!BP*eu9@w17}-3j1q0UMRwF~wmfiE9;`%BVQ4qGh@x-fGjABZ*ZZ;QcTop0$;O2NdlcWnRwmNlRmGo{9LM^4?c2~P&Nx^aQSzuc=ViHln2 z5h4d=Po#0V-mn|`Oao1D3~1`%@7+U$na;~L^6(_IG}q^6c0Tca7#*`wAkxUWzhgwe zgK&d1!eU#vdeJMvs>UVYc}%*;t`%@8;RzM=W|t;mnV<7kwg*Y_1guLWK0|b9_8V6T ze1W(NO;^|2q&g{6H|JXOI#r|>jX6_lgta_dcAHeMhchn!JEY82B@$*@{Dfvo;oX?` zFD~q4;cug#b0!}f=vYy9ZO0J?MOUw?J!3iS#!Bl>V>tmAZOWw0U)lH^f^y#+?XhEK z)}2<&lOYcc@d{nUSF?(&&RdluUtTVq>{{qn&ia&7KP87vu@b}^1bVL3IdYr7YW_Ze z>WZ2vX;$p-8?ek50J(VIpX_XKad#hMz$yfBU0{!07%wF#Rr+V6&89^Vy4fo`wim+d zPJQ-XrxLNjJK#xdGlDzYV%+U)%9cd$$|*pV%TCBI9 zZIV1s#H*J-jDASEd0x)M0xLC1Kgi3}3T4o~qv8-1Xzenp?Qp1qv`dXe;|7=9Gpb4F z2wnAI5nfrTw5C5BVSnfkLOIZXu@l@s86csj5Dc;LfoOhjE{tt-AAMVc61Z_nycUG{ zIRH|$9ZsKn75;_w{+J+dy}}iOWtLIHC){{xKYm)hSaC7{-x-39+Q<^*fH~j~N@6HF z`(4*8d8Vu_PyYRrS7^GHKqvp$tXFFa&@khrSex=nz8n}o?M=4S-iwXg%T?o?*d~t2 z=2vnKRK#2-jJ+c@XK}d`3i!4rmZb7<+nY8vjUXQkY^9bG)MhyRq(v>@GRp8ObjOy7 z`Rl8^0(J%}GHSTx!NaNG?(bOWWVx9UVYh8;aaBv?GMM?!dyo z+$#a4DuAi@U`W`kECD)DNqjJJPCIEi4rx17ny)=CdoF~zK?gGyulHjz&O4{LS(%wA zTS}6b;%tYKDQ9@<7?X8*B&bo|GPWPtlgIKWM=k)I%p|KRqk~C%kKsc1Dnux1 z6=CvggI@kFk0N%9@<=bYQ#{AYHr3mhPgx-h8-Ql$W{+PNZ80~st&nNPr#`%!k+-}^ z(^*&*z?hldb!gwn?lM>&wB0T^R>u;c5DQz_R{^}~5h0YPISupl^MDZ7HABip;gKCH zKI3~d*y55pqQ-P6L79u3Y|Dtu85CuaR<&Dpm=QyNHeW~8R&gCDfHDBsLVaymPzF_q z%5Ee__u7$&pF^}qQyV40YjtFZ`997pqImW>+H*W~(17rVe*9vs_a1`6aTkbtv;z=Dmf4h)NC4@gPa@`k###&u?~4rz+J4!w0Olza=j+w2iX zI%U*%Q3HgAfQ2IwQbi%fQV^C>1M|xkRi*qKGTF7S6RR%>81Qw{gbO#pBzjXB*+yv0 z%0^z5Gw#bXX;-I`!Vjpyl_ePz%+Zmf{;t(94``$BPc0!eQLs!CjrbQRc4c z9ZoRx#S1WMQ9>r6$MtE2b{u^blRI&>#l&JH-tMYWQO^?-JISeMv`si|x_?7$4%K|8 z!Uy0%*u)j_mbcY72h z-;kwFcEAZ68^2$Z7yLI($#mzU6~8@)h&TB}& zmEjq2clHEOYQFa)jD#_0HCDP>cFRk?s?xo%Gf*JeTv+eWOQ z4f4v9Uj;O+>L>~&t)@t+ky(8*VCwt#ILY7rq|F(9LW^>RtleibFXNH*Srns=r9KSH zw@Z5%xi??IEw$TN-12e#vfD-AN2pF52YtnWd(T??WB}*WB1V6jALHAAjUjyNop8O{ zPK^8{CTB{%Dw}qKoZK1^TSPL^v6HsL-d~AlNSTX>^Un4br9Zr&SyX3U z7b)()hsUpg-vgza^h-I??d%$<*vDHE_u|w#V0Wu5Jxz`2AZ|W{qY z>=+?it&k!}D1F{AXnS*I;lmPmwmDlVg508p0$U!Ovtx4zybsn?s%!ebG|-Z6I2Jh7 znbM_9N(!N>tdO0V+d}*kPA?|osggvj5CCSD&Wng3OM^DZA@g6K;?qU8E>mj}Cv!47rcg?2!l?KH%?44yMed24kt>w{=# z7nn@qNu-ht<$*Ow&e$hTn&;|9E&GhYB}%Z4X2mqgThfm-7X*UUHN!4y#e)oe8z1(= z=ub4^D2H}(_P+5Trzc{*IW5HxOO)%!EE@NvvHXeJ3Tw6AcQdM4s|>`8u6kCi;XtQu zeqTJT&hEaoCpEyy+L8jAmhwc{5kfb%LTXHn?WX4GXUyh`rKk|Y<&0BaO>*VYrFqWb zW}XRalV9=1b@xMh27n>q7BTt7Inh>|qf6oCBFQMX$(Oq!t924a0(n`_u-~ZA?~Ve} z?zO|N8nlL@EVVmDPXjm?7bRMJXR}JXI-!OTap03Ji!Wal&P^x|y1F`9%+D*ZvgT{# zZurYykQ77oPTVL;$qDQZmmZh9vCzAx*!CrXPw2WaTp+?#w#>E0uPkzrWw5NhSY5 zaO#x*QfO!+2`Dx_l(~XbQVqu#2-yu@b0pB3kl-k{f5+Is(Lm8At`Y6_!=yr1{izW% zlNRyb5cxF;RT*nkHJw8pyBH0@*OL_iL0y}v9#(f%n#|NMsKQ5)1FqN0-70UFt>fQy zW|V=kP#%v%nF1erP|*Ulx4c5Fv5!%|%D%Lz1?x5PmeE#zu;-vd^-KUL`YFm--bLmI z+ev2Yv2Rh+cR?Im@LaO>OAezIt3gb`e3}($AL}p+zt+HIDT?fax zQ1=?l)Ro=a172k8W%KQsr|s~t;6UOqU!c^d!St~A#7)|unt0=9`9C@lUIp6fllv)q zG93Glka7-Xt;K_#gXA2Eyp_e(kLuHrdXx3UsKGqpU>&P?<|a^PbEP!~zvSE{=M~8u zOwJuUz-~(h*M|MjewR_|Nmfu$uNm3{IFV~YBxAzBOB+hf^ri+*5A56iE*ji+JEl~$ zjF#OkbKaOFj+|+6eo-4U9xg<2Gs&~rx$hORQIC9**upv`x6-? z+GF+AUBlN!Bu+~U4A6^qNZxXvD997qDVXM0$u!P{Phln|%{FHdgK{Vpc+>FE2Pq`j zpJ^*3qI_Vu&h)Yp^gy9kH%Hr$xdZq?_pEg1EA$V3fu>ETF&zWE9r$2NXLv15Pw`2q z{NMyr*6@=%=mmJD^nKt&;QMvQ(C%;ZqX8ZR2DTXAj>ABt8X66;-~ps?Fhelt_oJJM zK2mUFnlgERa7lW(=a-(x%~LBoHPMXJd39_=6g4>61rC|2Cg2Wy}!jG;-4*J zx}#-C%MA~)VxCGHJg7jHA7pdkW)9M~-QcO3oy}O}EiZ~x@lx8lhxB;xc{2f}hQN%y z-5B*DyVh+ne3l@Bt@Xv4dXcRBG4!XF!Y}V}_iN15@f%V4)O*#e4#Pxu!7&0#VRIdr z=i=$qO}u~FQe<0r{b7B6)j6|jXdXGbs;qk7(L;)x+|Ls8_g=E4r8O?^d|2`y>I6&`ACmNSfK0+|<^##W~a!D)U;}Uds(bYFI< zKFQ^1y80Mx6nEFkVt8R;QVHR&iF4biw0PEpi9%01XlMtB)DP9;qWV5_ZLN(pOdIxN z((m3z=f?xS)fL2s#Dcxo4sk-QM`>v{of4c9w~}0L@c&*Ka^dx#AE>9kBi68f;Bm^; zln#x3e8);QgD$d*+9Sk86g?@0z3q%@AmFPLthUP4vq#As25#De`Yd}KAf)%ffQ;m4 z|D3b0HI(Z;&7V;#fq;^zn6E`jV@SQLhVZo^!E*{U1rb*CUZW9u1lm(5o|ctcm%ptD zz}Kb!XnQ&9^PK@ND=XG5Dt-9Sks$`(9gEs13Kv-V8r8)u9Z|i%6S!}>X3I3rj%T^) zOOZ+KRnOI`3;{4Q@2$4lB_~#0Mw$NxD!AX`>&1?P0wA5^xbqP~G$R(7xNF7w^DWLT zy{EE&kc1zTa|%gNYw{ddV`OWlnT+_3jWr{e{9i1#Xf=9_lC^EujqC@jC6|kO^T@>9 z2&;te7o^5`J7;o2dgBrW zXyZBeyQ1^sH0#$9NWfyXDTxPC?`;co%U~t)GZQB7%F314psdD>sH6Ay^BJK`jO_T5 zSJ*ZMS|^}{*8G0tp^|)yL9>G)BFG|7*Lo~MWg~rn(3C$rt$}U}R5WVnHQ%HphKb0t z7>mtrHXI>cn?(?~OQ36&8-@qsL#f>B4~;0I!@~<@(qUC)Xgdu=0W#3D(%x}d4)6uQ zyX)0x4`Ke~J=hU?*J6Q(TM&GFxL^|fw6Sn}IheX{dxxl5IE+D)O01p5NW2 z@^px>P<9(TKdGz`&t6-P3scnxdl;I4&^XEMNsMe^ban&CVN%WG!1y0qlx1|usEus* zwf;Zty=gex+yDOCR<*lL(Mc3VyW7$lJDA66tJ*4RCNWgi7?PUDP!ziq-4r#qW+90o zF(gRKE=rA&1QBW;B8HM65svS%Lz%!u!6E z(8@tEYT)hDa}JFMNt_kP$DW`_N=LRGquj=`!Hy>NUcl#$`@3^h&l zJvXYHS;Sg%V9A0EiWlBPI?wFs)aGo0uJIDQ}2+^K-E`0-d7%8F$)jX zcAea-5(}*id{lh1oGq5$QgKJ97qqZlY#Fbn2V4mE)TN67B1H*ldwYX7c;N>}G4!aF zQMG2w)<+$3(yO?1xd#NFtrTr+)lOG#1*mGnuFRrnCpb3?S9yPWese0)Nd&7cT(h>h zR>w1HzC`&kV;3>o>e=3bNpmq2g4vNXrZfDU*s(9E9&;#pBPg+F(Yrnhdk>J-of*Y9 zSNUx=K%E)fLqQ54e6^1TiuA%3*Le6O2$vFET~*?d7=K7S08W zP>_on;jn9ftqcP}(l5TW8fU?HpmGLau?O&7JM{Lo*^OX84+LQ~Hne#Mgg{%L%YN+U zx&H&K8t&`;q}#v@*gMbVJ1(qa0(a?gz4=NdLD7j%kc06h*3F2FUeJbfqQ)D;p9s04 zJet%mD+zhZ$}ZkpEt4PLGes|JFHuYbEw-Hs3%e#-$_|_@+N&kZ*?)F1y%WtSgF7l1 zxBRbqqCe_0?lo(|&4{E~OoW%LHK(gMDm{Cp{q;*A54rZYPbH`h?ivLVdfEsgJ$%1= zrYHiRucmUX7EEa@Ey82<3~AdB>V=^6g+#b|i$9v>HICfdJDlh_`r}gw1}s!QL*YjA(Uy=#b6G@bsd0icU{dZu@}E{-D5VX3JiOuk5NSndIb?Rs@JQXp zY;l%LN$Gi&Ea?v+=F4=m+7647t%YC9A5aa-pbHG>jaR&+#!Vc4!tRk+;DZ@m5nKJm z9v)%(IZ8`^U@K0yIWnXWwbK}^7`Hor>$ol>k;L<*qt&Dx^~@4h9;2klL6pch;f2&mj*6XvmK^?s}V0WXDxA#64ddU^IW zZ@Lsqf-E5xVHSEk(0#sNnR$LJ)DG@--w?pR0X)k(wi7^~`UG{fB}SP8)=~Kb$Fl>L zIwN^R=n_Opz`1(Y0P%Qrumctl^Hr+_%%ilJ^#d>Fk{fm`7E8ANpFZz{Z}- zAu9pb^i5tJ zbQtPW6cbG1-3s^{O&0PCV3$BgFHERo?3#h98Qsnjwt?|cCF#@g>9S=gPJm>fx*}so zkOZHF4-$T*QK52cpPD`I;w*#k{<%8;3La&*jSK}>5?pz%ncb98Yb?meHB8?BIxu;e z$yi_>-e?_*LiHLgY|i*A$=>xP^$a{Qbd)1^1opZ4ETRs!82L*J(ys z(f<6Zdg5q?j9^c1j~fd2$yDBn6JS=1UsG}Vy6Y@ALN`$!at0*B3~8qCyQx$jiCvVy z#p%u{`oozDTR6PRi-OVih1^w{Cb?7Waz-%y*4jm0+xgWon=Li8jM3CcrCMXGoG5f2HO4hYYWPZmm^92B{NRkm|(bx{WLiD0bT z&MtPmjAwq0=dDrFh?~r-snLq*9mm`y(e9opGK)mlwOL%pKbtV@%e#1U?XVvbI$6O` zNV4K#J+0``omVU3yq#wKI0BXSwlZ=+lQI58dG7Mh4R*xtHes-O^2**{^+Kzo7iLKHVEo^f`cz_H*Hh=!Ir&k`)=B z!7yC;lm1P!QlVYLW062l{IyV|X_YI$#=(2MQkhgq;`W@*yt$@w=PGwj`@SHjbgneo z_@UEn^u0DT%FZ}Hk+{cyzVbvVWxVEh34HC^9Vp!Zb?-3KHRXcpFa3yV46SGMf7j|O zKkw|vYQ5G>*o<+J4f6UR+vNMz%|TbK`@F(a+X3`A2b;vdy8abw=4Gwwa+&(P+&DC( z-Xk!$BBsnnM{k|#uxk{tHK5~BZ9ib^^%cfB*h`u3Pmyk=9kGI6EMKY6xdWUVsqS*_ zak+!LrG$)WPpQd#7ei?l>E>H%{A@RxGBFc9lbOcb^ROGJte;i;d}C$kL;9R$#fQF$ zrXm7&TMX`UdAnquTW&6jJRf~L-rBo(^B+r2~md`Za9GKD-;-_Az3+G!lL91Y1&O2b88k=z~BWgAG zIqd=N;k$J!AP!CB#|pR6_OVkTRq3|k5Wl3|+A=vkz)Yh9DeWfo8kc?Yp4F@v=M@Pp z>_tFtw=R9Ll96&fbJa08^w6;Iv4Je_GnE{oA!A@$IO)!rtg zFOlL84=`{1ND-i&AFbkw*E+2Ue00a(~{rzvNzu0 z^H^?@&P$8fWVm4Xg3z%?pwxdD)v&&HN2SBc|1=Z-A|1%sWIX=K!fn2to0HnjnS#Q{;(4KIjm|VVm?hGLKAZ}8cAts=iFU1Ev7lRh zMyRJt5-maC{WkpmLj!pX)+;0`C23g)>ga#=ed9@L3Hp=~A~8+DootU+zl8#))?=MK zOOs#`M&CR>3Dt|G==GCRN+i==6aQNpWE@VkjR-nS}+El9|I`~jL; zA%_M)ZfE!eGiXf);JEtozSdT@4=rlq`UwNL$e8fLH^vKdiBoaaXlH)`A=}ll8ok-| zCYSm7uxp-mu-bOEzJJ)N43Nx!gPKYt9UOsuFHcsiZF+v$(}&C@C!GsTUWx&`GQTmr z^-`y^YSv7NwbG|nNlBB8QRSK*!=+`gcc8P842r<@qd(3DdBaE|wPjZ?@I_xO^G};L z=|}LuNLKjm+fM-%;IH&0LUaHv=KNbPHNuX1|ZW+KKWWc>vWx zYd57t)E87{;ir*B{495TGfttUB!gdjm11esZaWiAjOF@q?W<2Wi65x^1!lTNDLMrP zBL$XoLd!EilB|Gxtz8Au$*IdV^+ruwC-Z6hR@|UF5ls29su%?VsgX5|h+fKbX{_A!LAX=-_E>X|dew3*(v zZ^ObWFGYZr3f7_XbJ!27CT+b^e;}_p)@mi~o=(j#w-cn&!+gIJOgq#3ULCZb(9v=k z6$J>Ch4PuTr@9jJs0BiS7s+{3{0^U+8>-6GG>niYTPkuG;H5xH7w^!)XJsRig}!lQ z&p7`GE%8WhMDgdnEDy+k*{@s&0@WJ=&ZH%f#)gJb>UZ+LLu3hhp>1*^YGZVn*gHVe zy*;v;1V%~j-NAAO8y_!~ScThYbOd0wurGDzcBcvuq*z`zoBia7mYTAM@|M9Hk^pIl zh@5~M%(0dqI_`cMTx0lQh=&uGA%lQ^reX2*ezPpW#CM+LNuD@a^RbtXD?n1Apk3`< zPD;$6KcG@@F6@z-nN2@)$J@|qPLYha!RyyA6<^W!bDoSZsi?)-MBgrKNJQch^oM0LqY^)ZRP=FWwmJswtV5Vr(Z!zu_6JbAN=s7;ZvA z5Y=^p4FKKU>UF^c`{D4r5$o*|kkw&vzAZ@+~!xU%ZY!KF?_DPVz@Z_nzF?%p|8fvNJeRK9E=7ps`Ad zAEYa4BHLvNrmpPxk?j&=4;m-apI|>k^6&$G?nO zxGv`%NMifTnWtmT!6s@Bmfs)#S{Xl+JB)K+dRUB@>Y4#8B2w=ak$$S%S%6IBhvY=> z@byKKn7%)=pB|zkyWpo?n3reIbTwd4wg@qI7jzpRPeXbHX_>i$j1ggt zfFAVa@#SqyF0kl2lkJxF4knNl*eEa9p*a(BcN=Q#dVund;xIBneO z8q~wb=LvvF43}GYp=?78Dsp`WYg)s_Q)89H6g)z`pY>$~EWU}!)pD#cG#$u3>h7ox z#{%9eC^!r--_q5E^ZVz1xd_(HnM-djux9w0{n=u0Xk@JedZhJ-=M}Q8mx+}tY?0jR zC1JbDm?)3<)taoN`cl`!3q%pE1uC-K0t2jd#5D?Uh=y`Rsf&x>I$Mu647cIv3xF3I%yd)-pZS_4L*o&AsIBtIZrQBS@Xy8o~ zwo5=&+*T@#im9X=cy}bm_tN;8D?`0b)UfT47t~vNusOf&e@wn*T4yiuHn%L6B_)fk zq4C)##~XLc_lQz3diz*W(q`h$6Y8bE2Hn)(eyH_saN#;TIC*_81_ZVRH2dSS{7ydt zIe0f~cODR8{6A{X)2HMP)g@GZk5S{U48@HWU*>M7sbI>7D<}_>-2?XndZYpW?s~2w7x3-g&v{MVlI!#&&#*P zx46bMQ-@C*G)GK+kWP$`q4Wee;LJAdU|%<9cfcX@yK(C3bq)%r#QOnlp@PlZcf=+_ z@49B7x_Tfw?->IE$`ZuAJ-fwuB{FT~v0dXGl$*N^>A8Q(ui-x6`*rRV`IbUE)NrdZ zefk~2#e`lGsYI#WaEa-~|Mo{7TC3dY<)t8R4qCZMpFp?Sj_ZfJqV4-9nzm$mlC{v3 zt(>8`NH4Zo=x!u$0x@fY_$SPipywZa?UrNZ!M0YZ`gW;91goyS6pE-(L?_g$Yz~l! z?8Tp=BHsn*eOtQ^U@JS-=@w=q<0_uCrGi>PiElAoY4Jd9*IiJL$%hAFj#vae!B<@? z*aj^(F);ka1%T|{yV&xvxqP3oNe!Wo3eU1R=3R4K#kr02J9{g=86x5P5<{v@1y-#5 zp~%lXqdFLe4aBJ0(C+A9ozz5>i_>EXo6ev;mRyg5{0*VG^ERjLjekA9X25$qT+F3@ zW$m9QdIU|*-(u*pe2F}g06+Ix2V211VLzOZUQgZn#59D=PA+E3gwPY}nP1DzvOu80 z+_e8(Qc8HdbgOu%oNRL%Z+x6n5Bkz#5rL2Z0U#n(b!mg|y`6*YCG0hd341>!{8^(m zHauw(b*Y%w8b7YBJGHarU5{Pn+${4` zr3v7T{_$gB*bT;as(J(i(^VWUrv2*aY?P=!)L4xgcyNLEvu~oIXv>IzUS5gkf2Ud6 zc0UvYbE{t&weXGf9@wL~S#o=LM#9uB8gc`Pc15Z;v;raTTnByE^)^043sbhYxI zx|1m69H5rHFsLR*ZPG7PI5h&%YgP@il{)6ozit=DBN_T7>_nnf}kqV04U<8H8;gL>gb5^9f&C>{db1B{Iebb{C42ou7;ns1^-#@b@?i zxH}2jOQ>~u{4+&<^wXe`CNsf~sn0!Tij8`hjnUFA^Z^ zKHI1369!?>@N!WA5f}@EXXP8VX-c3w9&@2RF&yA_Zf3suYDT^^Ro0F3MP8$Wu_OQh z-gKduODb4@+Q%E~46e3pThFh)gEUnaxHu%EmBRPuf)krLTWlez7tJ-Cj}F;EUj(pM z`;!MFvy|`WwfeV5=We7R}$oW`uj@ zme^r?xL-h&RY@u4`@J2xD;mq}hglBx{Uf46ev2%@T-Dta77km?-L8I3LU}*yM12+eOO|| z%9zNyd;@B1Yf~ z6T;@_K>zJ32|YmHfWV8}W76l?uuNw2r@CiCNQeWp@#BOv zXMlL0*DWl8Km zoW7IFUjHmK1ew2OyRxNUX+0bi=x(`@rUz$@=&OgWSLSx)oP-BE+|q>T?&$~0FYa%x zL=1h38JVt4WqVG=&y9%;G`=`%E7XMm=ZC*qKgW%b!~Os-ggfn)$oD0JpF3c~WjK(% zommB@&dffxj{g+>2gz5x{wAtnxz&OG44{%xh?7_7Ths|-p-@i^E8MvobkR~jNC2pY zl^z;`ao+e;Hxq(%1+X{CYKHb)b8P1kr_iTzKiosUk@)pRsQb1WLjKjB{h0S8HV*Wc z5@ddjJiBG_Hr>Am1u0kjBnEGj9^s@%Ip^ZwCJs3S&q)ZHe?kj6`PGo^xtk*YbfTsx z=u0mp3BH)KrxO!_tj^Pg2Tvoko8h_}K#sC)3v{tL`yo}1s|j&rcTCTx!B-E?;C7Of zM}ps-?*^7h`Tq)>EA^in<&{&E9&L20KUV*4fn2~`@97TUh9K8@l_35-J%)?4I}&B4 z4g=gUqtsLx?LS0d*a0@TMKJ2OSQu~h&dmEWso8Pz9^fGa|zR8L6;iUXr1 z=>_1M5^PT$DEjz+X&a4CcdV=A&0zS?6hWBEa!p#C1G&#Ec;7xEbkU9*z8?SUej5V! zV)UV$VIGZ8ps(>BeZvs(7X^D4IV^3*Yoi7bHwbtqmT500I$92=27vys9P0W0*e^xu ztuf_ltd6T|cKzwF?3hn&K)3YPob)*%%=2U$z?v;ys-}9*&cf#cw!)XD^Zf@ka@B=` z%fZ(EjIy-)=5aaV^T^Pv9OB)QqJhC@p&}dKm)=QQy2yU0v}R=!o0=n9Xp<{%$8n4NBqA%yf%RFv{Bt|;$gk}r82ykp zCwh8XKNVK2)VZRg=VyF}PHFB{N-Zy>6+#76VlAVFt^6`7jYCB~=PRq9%x-ZITAugm z-=zFwr!VwoOBo=St2I%Y0Nifz-Mf?95^n!@ z;$*Rh-u>)4P(!obJ|lTAX0M`9$8@BZVxhRd6|t|gNZ4PPK#bBuLT$jZo$@NTyLf?C z^G`-cRf-IO3&yCY^aFR6@)GIQ{Mp8k)k;q@xzWNo4mmeri1L)(fp!y+GUs!&L!yl~d57n&zw=w}ben`7TbM#?fZU= z@?qDi6~wIFu9zbH>T3Hv<*tzn-`&3FRUGBh39nfUg5g$k{UJFz%Yj`>eVb<*lp8l{ zwOf=*=esqS`+Eud8GCe{J=gC)7<;M}5Rc=B>5$(mQCQll?Kf<#wxox?h5S$7gv0v4 zM$&-_*!nMFIkxm{x52siTALm@xt)#|g@|vRQ`NS&;WgkbRhX`|9rVQPOS{QyfU$Is zzopFty+GI9+gWM@mD`8NaaJZDo-&u`3+ws^qwKB3L`&#T@OP`oZrjrHBO$cbn}AW- zNZDDr4|0N@oF)(N_jzW^$@#utYZ##et<5FP9gKZ)S5t_uGqa(wmeIHrpPLPiP_5cJ z-Z-vat3H`gDVv( z&RWP?`vaVXE0fZGiHD=7CCd$VRsgHqnUiVllPeAkBG z6P6l;UKxY+Q8{zor^_Zk7MeJ7os}A?GRXWaX68`{wcWsG6&M>Om^OMo=yCDC;9SP={?DbIebQ{!7s zM(RLhvar>!@am^bOpOdv5ZU1C?bIdb zliLUWn8W<+1xb&rWIDX0IDciAyy!43F7Y<_wOV-|bHnUePkZ}^#DNkA2(7m|-SQH? z+FF(k$I+*v_VING@LHtf{ONCxXXu;>);SOuu+wQwftPxGu1zFpQw_-|vo@5O;rH`2 zLmjUm!)`Rab>hYY7D_>8wiBRTZD}G^QaTsbF}*yxKEAK~VH~wZw6< zfO2~6!MTG{nT>b0u=^rZ=>S$?(LG(A2tze7agUjeW1~%KLREtBZ@%L& z;#14Wx>umZEGn}3!6KU`47i`28CEmlQWOjr6^gDv6kEH12tDcno!yjLDn#kJ{6BXZ>vLq}7?Wo|3C!P#;7!vzl zI!zW@8I}Rsq8@ZF)_u-rkMh1lB{g}VUBk3cRQ)^U9)XvksQEk@dUrfr;(>M;-?9i| zXeqzHb$Qt8C0?0BpPQ?cf8)OO&8Jxy_hrmNu4D19D!SMQKpi^lwihmRG-|Nj=RjNx zpI?1iUei?O8T=?tKbg~!f03K%LI-GLBsw<{%T~qwiVm5ij*Q+#om{p){8li@zP|e9 z^c9I2Zpe>o8mlgsS#);=5RXU?4$;_@pGU>^SuI$2{qJae$AtHHd{j){=svU%3KF{STo9XB+{vPC5(hL^j`0W;;n$J( zz6-SR;P6CjT?S-F_%`B|3zAAI<+``^*;+ziDvdmwvr!Ay2p5A1xou^6lgDF z!sI%yzkQy1Y2bM1lahU}?Ju>yOF#YgQ7?u~)vdUh>%U-}v+L=zL8_C(`?(1L}=Q=b%bo(mGrQU#sztTK%a;x!xFgiKgEV zwdfxY4eRqxIr*zs^laD#ujGgN^T!~d3)_2d2f6i0=gOV_+)>RvIeKK#^YR)bfw1*W zU*r#;km-elkex5xUFFy7U-+q6S(ffBeb8=t1&WAR(t^KQ_cgSbORMjv*il@r62^T< zyp76vw&^V|I(&KiOfD4hTsdLMRsG|`!~RH2xa58i0}cHV>rJ;!eT;zj=K@XfYnqRe z>4=XsE)Zpe2V&Y?Kja1KyOzKLGOGYzYuy*JpVsGYzQDp09{JR^#^?83QVai;`Igvs zcRqe&(e)ZXRpQIlI3pPX(Q8`usU$TC?DXfF*Q(~mr6jAqdTjD@|EC@9RT4+PX06|M z`%RQy^JFJk+D>ph=@ZEJiceI01Y1yFuxBJAGXyqenehcAi|X0Z5`ICf2YC9q;Uz|i zy8Vx&(xLEg|2J z>*xh$k=S3<-uBrJQ*8I=EVmirbRPP1J5L}ww!~yUo1&yt{ue(MB!#O3VH&kB1Q0bi zhy`pKQj{5~0abc*WC=^XMyeq_XH<_)K0ocZtp0?0dV-qyRg2&!UND_}3F!tS5m8$S+yKdWuwVbP<|Gjag|xr~5lyLoi|Io2Sx3e)<7hM6VD3JTTLQ_o2WN9afVv%ZuT zpmNfD#hvjmij|2OpKo1y)f0@ru3COO(5%J^yc$mw2dHlqhH^f0!Bul;RWXI{4oEQX z3b9w|v+sO^37(5{T}H*uGRRoy`vo^W%-p%Nl^TiLdGLSvv?EM0KGdqh9)d7^^)G(n zVqL1o;?I_K$C_lztIg1kT)J(Cu88J@l%iopz6KI#*)tEqI+HBwwj_y2nH#rPHJ`ZV;dI;gf3`rH z7st<>JuusF#`ipV+Z|{IqFY;|*;mD(3X2UV$W|t>uygvAiKyN7{CCF>vYG$+SFxF{ zMf<59R8)%hFgzuu^Yo}l#5c3WnXdKd@x3oXt5$Ozv!&OCo4wRuTM_5C9Ljj zO|RZK(aLaji}cg3P<8EN{S&^#aMr1t7@2i zdyLCv@9eoYdq3bBCT5^d>#TT7FyZw2eKx`UueRTvM~gTO*w-gMQI7 zrO+YnupiO8V{zke0f###MD4rP`2`xHDuNF_$3H2_51bxBTIE)rfx{SUDsjgBDl!dy z#=qYN&9|t7Km)r8Rr}n*k(kgknWA|&7IAaPZ|PKeLY#JG@AhHp8roU5p;u2H#c#oP z&teQj(#=6t^nTe3pt@N`Z+5l+U2xq4ZT9abxMSl(G~M##Li(RZz&&OJFY1ZXlW_0J z=WB{G=8>GYDVc``XFsK$5iY|%^7nMYPPQ`0xY5W2j1!5m3VJ{GZlJ44B}cvqOXxt1 z!ka9b)~{Nk^YPa%$6q0cgxqGTQU0BUk2TYNs#iVev$*=ur1Iv|d$^nDq<=UM{b=~3 z%%yM0tL-KqQY`9{CScI}0(#tUAcTx`uuI$h@UuFRTB+sZ{;5eai3Ni{YuHhBf-`QV zOz>zcZ800nLIPQCW#qKvsaS-vWPD@JfAA(QwPIVdN5kO1$3n9JWhgjKq*g>4Mt2GN z0Dm>4y@s@?=`P%ZMoDODSjr$N+7dT1PmYmj${);a@L?Lc8eckc7z57`oLwB*gB6Y)C# zw&n=#PDA)FT`@mRvL0gl;Zb*~jtXLwK3{!Hq_UStKTAwQu0i~%g8=Bx_um_}pJxuz z1Rz3|fxE?fc{MCgYB3ia;PKOi;E~QEEg8=K3I^=XQ21C0$2!dAr))5FC1eXbyn7o> zH88U7fEHU1&JIC~^&xMxNPJ^kRPVeAGaIz8gJgvXUc(MW%9Nu!PF5H)Bt{YE;*#7w z{g%T6)qX$o&&!%vC6vmb!^!}vM*|c1JX@0Pn^i#;d?~kC%gFxf;r1XX(N#Ze!d0~8 zrV6?JTr_M~TPP;>)T*m-6+3~m=V8cMxkoRsLxDSP!A=HEJUgmwZoix9e!wxK6R3;qv0 z;4@DfekkLH3_?F%6u7U4)W@MJjgP&ZT%!$w1a`7JH7Uk7lJxucS{Aog+?53tuf!-F zsI*D2ydXOTi7;Jm<1Zd*#_zefb~A5Ogd(Rsd?F?P+f8(nmeEC3RGOPEQNoSF!7JwRqsnjNF9Pw`|$;_9zbh|3n>1c z*8$K)#i*r3LUSK+fUYQfk+Vhpw)kOc59gEmyTSQ#C3xw8ja>)e!hjprmoTAz86k09 zrZC-Nf$>41z=QkU!OG_I6`;hyK@$~c*w}bn!Y)WRKeTRSouhR;^t}A5lX*8U8Q=b1 zxCmxmy7FEg6JVC1uX{FL zC*T9SXxbg_vfsej2BE%P@uae^VIb#ShKL%7>Fj_7<`sp7{JphgY+w-nSgW>@sNpx3 z7Vu?5ZuP4n(4UBi3yBg!5uhEju_0MUejH)CLzkzK_ z9#M&htg8qG*2&I4`Wd`TJC zo6NNPUB1_}h|NDikE4vWpT+C%EUe6WuA8=5c;cSn&)j>%<~cAia@4$Eyy0`S@%7G+DGbdkts( zLnecd8)!WA2$p<;Hb`;2-F81Gj6SCDN%G%pnQad{K9rac`yVmDdb`Oor7EeQB<4X+ z(XRpC2lAKWQ@o-!U326usaZRL-1C!2S^)Ft;V}A9q&tB&c+~NdifGVj9Pi0Nuv65q z0=R#C@9?DJzfm<`thy2O!J9axS?I?%4{Z$Mr``?vSMnqz+>;Q#Mk0SUE{s-P{v+i` zzIB{-S<>j_0aIV|DHsISUU@KWj7wfSG0v%6E+ie#O>mB&vesqa#h{%e-j#Mx^&4>F zb(XML@5>lGrPN>VkK*5Tq(!{%?llt8HPxRmPK z>wNR#r3Zd!wa(A-HjM zeyxErusVIB-K@frI-z(DljnH&_ndo;HlxU(R1VS%CWg-zmZV&|bx!KA=~x~h%xj}C zK$;Z4E55P`^0o{Wd9HG8?HDJb3|^*`wpO_6#Ms+>w7Q~sd_Qo_4StZ?fJB&Tv9^A>qEhtQo_aubY2OFtmfCCrJOm823Jk75QQEnbX=k+Tz$%iLl)n?br@_2ijF)-RY^;{*04j z;mK*K5q*`8d-HE52eJqfNHLlSKv#cx@6)A_LbTa`g;}6kr;G$!ZaFwNuc&1l$NK!a zk574hV|n=3c;%V&KG^s)9h!Eh6wl(b;u1q_QZ&h_r&OtXCI6=d{K_9*F z{&M1TW2;-^`fzUcct@Lk2ii#!p6c{#amxwslJjpO)N3@YUb^AfYggg_dS#|}a4x>T zi~B*MW%cQQNz#W7{Xd6Bb)7u4hW#Vz?(gO!$nU>6)cT>VK_}nE!>cy#CK0 ld+7f+xorO*#uBm5Gk1pF_voMa|9c^QtY`E9b?0s_*FNG%~thk$fRw}P~!#KO`YQqr&sOZU<& zy}!lJ^Z%anJm>#DdzdqC=FDqu%)NK+yl=!?4JBd%IsyOyK&+ztN(%tM9RmO`JMl2k zZz>5V%K;DIZ&Y5%>v%rcn+?JS0PwKd&zU9gMP4yUI7OD_px>aMoDj)>EgtA!Lx%X* zJcd5_*DjO%YdRVKHUE3492oQdZ6Hwd-&pvpBq6*$9V@yJYH9PopA9ueT^1L^Aaa-+|;TXxhC&dj9qefImSQ-@3Uw7hiuOERx6xf`F5r1y>+_#y;y zr(kvKEd-ImehIl}Bsjny-5?Koph^t!Je-qiz?8<7kNo@Uwthpi9u2Ed!+ocUw?Y-Z zUe?kFxKlQ=0#3K?V=OP;hLw?NXGFeVj-WKv*AHnI$Zn^WY}+sLLXskEBoaD z{f{!2TDBbzM4$&jq*STkQ>xGpG&YGIT@TU7ayp~Vk7UO#Ac|!)^*-h4=vR{kWtMu# z3XR1(lf8aSiT0nc>?Rx~O?MonU|oL0inth-&+Ss#>vIC{(!{A=`xp-|@TIq^TV#*6 zOwg}Iwf^z+_Hu+xI2Tw-U6Z_H;a0^i)u*c9)_F%B3Skb(ZzIFs^P;kI7kv8Zn>3{R z%8mt9fthfC#uYd^F)XAM>5?%Z0GQRk)2k$r?L=BYaOJ>pEGLL|H3^9!vY?30=JCZf zbr`}d-luW?qVm&H{}f$IhLP9LVmYd^&KM89&wQbfb^0__*74OoD*p6UXpHR=i_O}# z-4r1jB-)XG%0RK({krS!Fzu2#1TAlyw|x}|ns*zl}^9m0%%qQ~t z_Fzl(?Vg?9e#(Ob?nh|Q_PZOgn*AC9&vP#{nFl+EF>VdbG<`b{$PhLRWtjZS@Mm3C z90VtdJ}|eDBF}#~^YgpIZ&!zDCV1w2pX0?1MjT+2Do>SYy)OqKLLuoxvU(Nve%x<$ zuyywyz1{zKzk|~*E_t;Hei~nFE}!541cpOj1i&z!9rRRt141DE$&5D`#@W`ht@kW6 z3GpeI9#cLEU{XmfEl(gu?gsZvDa`ZO-lQziBF4&7cQ7j_4dxHE?R!*rXE)SKb>8y? zT7W4L`TXXETkqB1!Ti&oQ8AU9G<-yATcfc7UmL``Wa|B79ssf+P7hL$D`06rr}0T+ zChh*+n0(-KiJ=MmJOSrgP)<=2m)?%rcHQLPj6z*z72xwD**m}WPMX&KP=43(YbdH? z>Gr6y+2S|lDd*e$p6?ANAARq5mRe6>2(KT6rfbJ~V6E2qM{bBxg9nr^&9m@9vUtO( z0uvWgd7YZ5c8{-3=)Kg=cCXi48L2my=$<>_SWJ5}%|R<#nWFXrnqM_8YV1v5bS-43 zJ^e$!|2ZxnCG!4@WU|Qz1C#PPoJ?ZRAM<`^^ouozZPo{iEqYDIQ!+OZqcopdTu+MK z8}Cl(gSCuLqdHJrQ$2F5D|NyBdM_#ih9G=?=|g-D2CY}+%#Msgm4L_}0+DNqU}wtG zEBl8b#^st134YBI$S&0TVU66I)!v+?)336lC-s;Bfn10a)<(;01bT_MYHsjLRcbNtFV_oeZxTm70w9Gk7GAhV7c=j|$ft$Ni znrpziL6f~zbRb%OcRWwX`toeEq+VkhEfT;#4-LW!k?dpy-@B3+E1~p&pDCz%FlC66 zV=H9RcYMf{F%j6d?&#F8m&{XcnF5F`ijQo9MOc#|DjXoQ&4xPp@b|F=9vmt6PTu4P z`tNcqaMLd6o}DI}o^ze1sMf6+g{ZxA`mS8mx$~wZ3Y&Vx;9LqB%0HCi_$WkyyA*>J z3gc{uHkskLUK3tmCUJJz8rR&o4=wJa4mna5=tG1+ogQ>ayR6cC6+%Sn{bwTd1FCbT zm1oQRu{#+dct)=Y|w;->U|Iu z{W9WlqhDa7F*q~-Pl$lR?)hz?6_?#R8vVO)(7gqu z%FA0B!Ut@zjL>xY?Z6`wHJ3($Lp(AsnG}~^>{X?o7H|J*OI+JEL1+d@YT3E-W*7>$ z`0h=ZzVJMREBqO{Wx9xuv6%Sw>S-wkk60(n+I7Hb6Y~$uHtj$y^6}}Vp0Uh{^}`4ZC!Zpg1E&t*3fZOF7!5{TCl#U++neFw6FdNnk#t7ejT6F zd6=J%dZmT)7jN?4T@G2MqMPocmD}$a&&kb;kjQ|-l$4f?DHq$@!&XwyLxr26xeM}GF5;w??I&wAWm zLS#|DVa$l1PZ=u|6tR0B(F4d3;}BWLx`W4%5TFv+tw;UlkJ#0fYIJmYLcJj}tKvN4 z=A0wi0g^UwV&8XpDQb1{I))k}+3;RlxA{$1OIeDR#+IPd4od7U*Q#x=l3O88>U^{8GeB?xa`*Ma5(a zw00Ir_GP^{=ouxOUae(2ZF^pu`lJ5%HOQji#+tC}-0Qo`%{CMwwe9AJ)cLL)}d{GdJBHj7kGHqez!d)}&FFyUqb~t?Kltm>#=RmEcl&CQ=N= zSv)3f;1giqqqD}zS5C4mu*>#r-D3msB#l0{W8VDFu#cmy!M>*a`ZaHu$#{8rlfQRg z4G}XwZWBVf(d_J(E&sJ0W^ZA%+iqo~#@t~8$=Y>yf5?WA?g_g~8P=X|mWoHEUSu`9 z1VXk+Lj?P%HDT7K1{2PrKIeg;^NZh^qEQ8Z>Oyky~bjV_ZL6{2}cM1C(|+q&1p>4HCynnHTjuCagH4*_Aqg3 zCjHz7XUCD8_C1(h(r=LZ-QDLcZEq`zD;*|6g@!MfyQ5AYPPZ6QA16u+>}JImy=2?= z6cSlj9I)cJwunGQ0MMBS-%i(8h5QiJ!F`nwdS~XOL{!)1}zj+FB9d zW`jhYN9H5(z3rArH6Fq5e*4l4+c$|%N`GDnv}CIw^1haiVovXfS~0{rrsljn{V{gT zM0%vR9}|fBh4<$t$H}MX7)&4G6+sXjM2;VYb~|)xGB0%w{?Q; zI+bG32fZ0ll?HLF&^r62#qb{I{aKce=ixgP9cS-;5DPwxsg^tn=$aFtCvc92g^qlF z_oF9F?A-U{IR!9a{jA|wb+nQAYiY^L!?Z8wKs~zWCxh9m%l@n2!R~JMMI_wvEqtDs zgtTs{{l^m>iJ)TW!DSQ9k=OjM-69sfBh7&8hPSD4P0s_`2+o;u)BcE`rNH;^2w$qH zsbPXn^xW9Dg*m89c!9F+d5yHK#)%0oxb2*NO1`r`TS?E=rrzjcf_QHmO9LAvm(0^I zG%=vkFVE?~_GrQ-m$)`Ysq4g7MDmG11b!JP&eA+KP#mk~8x73gg}KqMI#?j;j}Y3| z0s4%MX9RL_3%9RdkDyA*?(&34TXl3O*QhDJr zy<+2+_l`7!=8(s^dG+SDbk0ZBpm)WZMCJF=9DZ@e=udb9hFICfDk3aRkHCTK+1zw(v=K75jW0$}@~)=`jTg zHtHX}c6wD@^)>BqRQ31H(9kjILFMqsMNK^|{vJ8}&Pzqn_`^~1NP0=G9@Uq&nb)BV z2BKYf(4~W87xUNI*~Mg1g@F+gglP81%IqD4uz`r7&J1uFyL0j$&@@^mW(R004R)L- z-=AByw*sHh=#)NHQ-&mFT+Qn2kl|JXh0`)nPoEyZ9h* zF%5ih;x?tk8MkrQ1^!uq*{ZC1Iu*EuM_-Q~>Jq|7~m&%Ln4@_Q;Ym3k&~ z+QO+XHK+HWUtTK3_OTZ{=C%*pnLokXTc25^{*m|R3*LJz_-unXyzN>AWxzxoKp;%K z)M)!b4xY6AJHd;Qy#Dt<26_5iW7W&_hL78S8VMCZh+gdpbFQ-DPOn)IT%d9hm)Vb; zcPxENe>brDNQGV;cQm7c46_1Og>5@_=W_1Zmerqi8D%^2p~`8MI)vpB!%Tpd>eYEX z(A}i^)9`XWCqY`lN1ub_sk%IDp;iV6bxa!M>+v%hPOI zrs(Njw%j##7DJ9#86S7Ui>0o(D$gLuS-}k@mXo57LN$v?N!fUA^oawn1;cz^7wvhcsIpJmy)V<=F2;u}5$t5EEUp>f|y)H<;izUh)wUlMyLaoga)B$$Ey|wpc!hh#Atua`iQ;*o$Z&((^8s!Tbt`8_qOb z6y|>=VvdmmhEpd|)9?yL z*vVDT&J2ti5pHchVVXccZuWF#+ z%~Cl0&qU+3oF%T5af^AT?+hjBv#gbvVEA^mwym*;jJHtfb^G`p*O-_hQ2ZeSuD0h% zN`;v9XEXd)4#tq@Y(m_v_NasvE))B#z25SNg#&rEZ~L7B{CT8qUCLp150npz}oGaOr1xu^`DWeUt(ZiJ?=kE7~;+KVTwNv~8ORF`q)` zb3e4`1|c61Mmkw?zOf?*vr6JCG9VP)2B1a58M_s-r8#sH+3}+qe9rH?D_Zgl?Y!zB zGH>M0bHBzyj(^|ixPLK4K9L<6qtI+Kd(td-h}FSY=dV5XKFFB?SgRcJ%Pjx^`X$o5 zaQV`yrpDh0&}%N=%PwzWUQz{~3~O((A8keO*-UK14MJ7G9jcfh<$GseFG2&4U30It z8-x~2(|p~3&Q_1{J0no?>F5=L<_HxO?fb;t`<=7BCD~i$J~bUX+Psad9Cpxahxb{=H4B} zJuJm&-qnX|h?>IrRGdLgN&%k=ODsM)sW@7>yY`O+(+79zRuY;t+ME!4+)qYfVu(NZ zUHj1`G_v8-+{%QYA79p-3pSXO`O{P0*(oHez-d**fl2?UWB3wpN!nEapEv@sM3tRD zX-e%!(9E>|wDsyh_EvZ7=A7}xn+!3Z^?6>412U$^v>_qwWK3T~rqp|0i2&Pv1WBH6 zk)_hlTF2i8HFts5`>T~_+sNK`sddlFa*Hjdg%R$Be~CZDc>uoQK1RMCz3C)(H=zQX z)RHp1AlGEk@9_O>dbs&BMlK#W0DynB8yHKlgk@*6*U{7R3T-{)-ICSCPK%TBxqIS) zIDRKS9!~lN?#QA?z?U1-B?M5C13c+4#lqQoGlI4gRR^3bG^DvXFx=>KlmtOS2r@&|81v~IGz(7YnyUatt|+SA_QU5#tAoj z|I#;triWdVSM^ctehKd%x40Ni38mgB?>fS1<+~&y{^pkLr2DwJ=!-?%gcB)0x%X8w z?XXM-cO9cmR|zI~iIkTDCP?(;eeTc~7ai}@U|Br4$y@(rEBE7p-(2JP>FLo6wAS0D6mTbGGJ=eIL4qGVl0+vEpAd9P_i*)NsOnX^T>r5zSfj=$`~ z6DZY*QO6eV2hu6FvYI|m&}^0^oR|cN{W3#ciIp2hBsjP2=EQWE&l>Ca;&|{{$O+)# z2eC+DMZA3|K!*+NdzFO^ZS-H^;Q}9Z$jp1#glcgDK!@t~V&aa4jrbamyAuFMy0yd| zM+~&7vy&R*lkK1B2LjTq|EPzgHLprO7tLnrXn|SR;%S0wyM*W~sR#iasiT4v98n`j z5d$;zA3wo+9X*TS)6Q)OY#!z`N~$VvUUBRLJU123WlkrDzU6`?KD}q*Ir~YZq4vZL z7^kc56MH>rVB%kU3pEA$ZG!u$QPRx5e}gm4KJm|+2ahN|V}0Zo=DCj9x&VbRfKLee zLWiyKvFy|@H`j-|_#{a9&Zg|eM6}@*1qB5`lC`dWRcd5$nBGqbUaZN zL=!KIgOWJMIDO(=M*@Cf;)I(oHq@M-@5+)mFs79+;}gdu{J2*=@EH1v)E$)3^08nm zqTAO}QdbCTs8`Tdpf7?-a^+NAS0(Gz~OV;-R=0pBgVz5uiRij{*B@OY#q_RRfM zCk~Qi(g}bGk}7FAsKOJ*(b_VY=5vCJ$l{Oq_KLv9QJ9<{TNKE7`7X|TGJ9f!6soc? z0L>;vD^Y5$#lcc3!3I4=Dv^P)%iZsq`JuOV!v$-%T~69kEH(9%v-n6QJ(E|q1C<^_%&B6&09nX>C&jSj|YVWnUOF>DVP<* zA_d4w!yo;N##aL+HGYg11VLVDgcFoNEKJo>Dy{O9y*0C5bh!&G`J*s*`E4DrVP6AX z_5mP(D(jediD9L`1<%dOqw>#B3I6EpG1l>||5h|MW?8b;EjO-1M?7T(RA?!H~c7#D7@W|003C=qnLad7zJV()E3LdW%U=8_B? z3^z-zI;Qhcz%AZ`yHk(13M3} zFa6uE!N=+yO;ku8I9)LCL0X{Xr}m5&%u*f(4)aXa%$jxRR0`6pDIEj!e5D(UWmP-X zeac##g6KV&Ea($68T#}cMW?ye-PvtVwq#o>-F3>DBpq>!M3uSFsW_RV+Q3zQSy$(QW%aXn=E`*KR~kaWpgba z(*nf-!rci|CLeY^hJE%o81p!%6=pwT&wcy$(>;chtN{ZwscoJAxyFbpK5Er4RXTp< zu~>%>?mvep8?2K-oVL_K}!MQjHg^{-4j@2k#*SRuW zM9+KT*U4wfw0)M1W4QPmsHR&D^NqWKGEFMx`KP5t2FZ0!BaN2wn{l`_VdcQNA2Qsv zds`bU#wIkiw{Zbi_O3Pw!vbUiow~%(Gd;AkV$Ty6ZRRq%`>Ei=MBsn<$ z_~%F54V!$mV`U`=#f6{z-0yX?a6pvNfufjcpW|6g-QXjT@*vVA-ZHuA(*TAiPS|+V zitG*@B}kcxtQkNEJ>e0S4Ik$4MGFXV| zsls1bzC6Hy`=HbSn8 zFN{voI%f-z7F%>3mnAZ-U8m~s1qDIxO4^DoBlPjo8Lok1(B6=7Bb2cBBI;S6Vu*}p zYCQ*&Xk0c{2Eo z{)A={dQUP`T^bI?lU*`_d4_pXgSj1CC7#SMAqYlF>XXLXjXQkzD|Ni;i3!CHyK_Y?)9*$3m(^F zfMIB7q%yY@`7PA%FEj)!ug_@Js1APOGkz~XQge?%qfP~&qux;`_d25VpkA@F(a1?{ zmwqmt*rQ{N!h6O`!w9b%{#Z%yAU}s2UvixcPU6G^eP?d7bKv(#{cl1*p9e+qMs@kG z3Q_8lQzmd1Wq-D2)b>?d0Jzl zcAws|gO4mZn_MZB;v%R-H{W<|!MFK%p6mf?amc=qXpTlel;h(&#qPl` zx4Q(SPEW5?Lvd#?2a7^0!{?jLX8uN~DW3VS4qUg*ZP&*(KwYo1L8B&zC2ZBkPtc&E zz=qWn8Ossh9^oFQYyfm%Lfs4U?AbtGVWDe&l{|XaBo=jPbgvVd?>Rj=?oO(E7PM~i z&UV#PU|CrvVEHdPSbyBcsi9Q9MCm>pbluvOpm*mxV(<(8Y$6`^DOHn#3jKA-oZNCr zYCEF|A9V7vt73X)g&ND_yR~ey5l|^qtz!b(>px71O9LX|t{`XWMmF5H@Jx8?D@)L?KkJlSd~GX!^40s~n1?h#>3g-{pgAIkQm*GhQM z54G9|=hl$N(ePidPUbjK{ zMZg0_rH#L#TwRRGi|n|x+W%uc1)n9_wHI}B{C-=nYF%i zT%q=vQB79y{1Ox58Rc`wX(R1HHywxOTkk62%{1BHf$o*hfw-UgI60~yUw%hZ5t`@$ zdm9#U+sm8N0cy`2{tWP#*?QLm|9Ht|_lR#?Sg0oERuDtn+{%kY=CJy zo*C@SriWmDgVyPFi7#v4Y8Cs6l%=44UwS@dQ(eydInV__&Hp~B79Abor#8GMVm#7PmK1Fv~EsWmxq#&=9Xa~UiN8l-s+J;>qLNhnhWTp8Yc4;t1B^- zDocBlX6p1gu!JFlw&UV2_LbuFI_wfOJ!bfUT%?WDXDWmu^NHim;w#Ks?hW zUzupZs#sS5zBW#-CzaMiy2bva*Pq?bBmU)}pJJouksR)2^l`@k<~DpRnPohz{k)4# zwud*Ti;W1C0%Pm1)*c%(dbJk+u|wPS6a-M#Zr^!c`jT;?a6tf87r%6YufvLJx5Y}@#$yQ1={Ah7N@wT55ck6YI721{dk~L z2HZKU)`0|dcY2&F-3i)?0A-V>$-ZqH5pW588v1FcSqvBLwUVc4{VyLv&Rw7G#$Xih zasQJ|c-zP2GyY#egWRQ6IU&^dQKASf`O>Q6;p6ipfcI28W2i`|BVND6tyRr20qg;Y zQmMQix{E`{Q{Op|9c%dJwAV5g|4SJ^7EB!@lPYloXSaj~Y8 z2(6bJ9!V0<=%XGcR{i;oK4jmHzCWu)XGM}X37eeA8gUR(MKcqUu^*?xay14w$}WCS zUU6??f^w5EbV;En1d;M(L#6y;19cRGbmWBgSHyJZ6Q;MWJA>>O9DCmynPn64!qPK; zqTn~NPH4w~zBz11CpYwHp2O>|*pN2nJh?gPUD6pw7G^D->Q!=2aEl0u35@BkF|{Uq zF&~X_v=LITi4ee(rqyehX+-!5Taai`sdaJ)(}2Y28V937=~fssply|W8aeLyR}5FAZo)L zz%V!|pG+QptesAci#^st(Vq|8bjxCv1drX3EDGlQ)e_WzG2DpR*5Pd1eeL4fnqDv$ zPi1%}e8OT-bCZL%S-FkL$n2qxL?gX;52x)R9GLNymBA^Jf`{E=0(~bHW8{OrN-fM| zwd5GBBZb;o52d!J_O4q!q@QU zjq;UxZQhbP)f^q{BW2`la{(aqrKs7H`#UrS0oc2CMnb?y$!Zh3r{vrc+&n*ihn~Ei zf+2-g1h|hwk-y2Yc7s!~fLAJEIW6_&BChGoRS!)5iXIY7g&**vV?X4(@88LE$oXEF ziPuH`DpCDk*|D zexK%v{w4=B*Sxea3Y&f!UodpCT(3>D2}ynHHMcMeL7ROEjDySX;M1N%5nvelUYE9p zYt@;y`EVWsxpvB6>9D|hJ`^MwlF+a>`gNC8tc5F4WdR@zeWmzcUb+N>NT#<_{BJv#JgKW%EPFr#__Fvpy288=X|1-19Er zjOYgivl9MW6~XDxFUkHUN#N~H95c9dV8Y%`QJVvRCnK0lzET@nO5Lrj)e+m_VbYZZ z;E7mMyr`#XTnwAlwCxfuK=k=E<;wTXb#BwvhVPBi2T35ov7)k!%m3t=j9w}Ec|+ze z2W7d(5tn6Iq|laB19)tA_?E;)?xyHK-ANfg&9n($i4zgb?_$Hy`4-s%YP&jLF!zb2 zOfr2|-WcLBsZG4(ww7Y(BwBr@i@LQ{ca^0`MNq(F;eyz2Ua&vMFPbvYBf7~a zK(oMh2uf|wu1a2+5A6FUfL&kwP=nou?YX-IO<^**_nv+zHo5(_?XOfY?oyg3$G2|w z+UzKvbM__v&~=Id=yJT%UbESNkc#bE=fux&A3Xr{M`?!JoA%A2<=erTDG?bK<}8JoXOs8^Yfw%+0O=wa)S@Q zzaC0yyE=33)*N|$BSDtbj2`MX?;u9v{KRZ`q`V= z^q{qis(Y*XsC$B+L52z6l=6tOadeuzQlIIN2WZ-2PQOT3Chnx|!hT{6HLt3hnn>|`C~v{`ted!O@f z6UK4zqllvuX-Idl$fWy`PG|givN9n*pbwDH8--RZPgsFGS;`9%X6c~*Bai%Y;w8MR zqPi6HjkIEyHmg?sEeRk+9O#iJFj@`duo9T78g zZt>8RXeb7MwWpO%^HyMpJ^D6;q1O01uKha{rneh!j4QJ(so-Fd;RW1c@(=i}4X0!R zb@F}fWK!1HZQ*lno53bMJk76YdEv1a-p6ZDJ4;5nBMnrV#mkY!bx^ehm$AaE z5Ht2fu4QB2Y6z;N@SZmx=YD$AsIID_sjP}E(jYA3$peQBm8N|R;rH;h5Sq>(>oci+ zk4NP-@jX_ZD&T2n|CTdKmo6l7?(%^CjjN)VAtj-9mrHO20X5TFUr5-CwkoVM*U?vf zDesMX1VdtoOm>frSmWrU9=)~k;B!`uAG*GEeKO0h+BPlj?_|5O6>U#0@7)YK2t~50 z4iPLf+8T#$DB(h#$MWv8wGgC{N=pj1lf|@GBHCC;a7oi^tcz}D+%bLm`+e^6b+LWq zd=6kvreh^oQL{()u`|&YDO}@+vcv1)=WjaJO?f1mS0Bq219p#=9)AZ$$7{cR#vEiK zt$#x1<8WM+&*^{j*dy2X125{ps#;&+nr=xIea}R0bEJLL)EAH?%JThlHMP*^jhc$A zNqhKWbRY!EuZ-Tn?*&1^V0&Fcq79?Z{U>@Q*_Bt3;G3%V_|OMYBfT8!lu2`a(5eJ{ zXw^Ps>AH1*=PQcI>!yUs52w~?0w->1`-UY1*E6y=jLEMvtew%E)$`2*ig6|cS`o-z zm@WXuP)$kGC0kh6xyc3wMuMGvU+StJz_Aen-y@`A?Eig=v83-BvDsMiO!DOOHfiJ@SF_%kPkIERxf!)%Um?BZdon7G zlv3mWeM7)gVKH>d2%5Y7sXbZ~di_I*0ka;s3DJeYf|lhblgxzzw3l0svxwr-cN}g2>cZ)hgPh_ z;!GzViLMMIWv~grF}3+)Y{-^#$&cif^cP6PM+1Qy6XGxAHEjzL% zn{B#uT})ux0IgpM*9*)+W?<0|i4Q9Ipm7o#SOR>|2vsu+3X{$jrvXmEm~3KJZfLeu zu6v^nONd!aXkV`HS8S_6)e$Yc)V%KcJaPqPqD#CYVA0_QFGyDFgEtIcRG3t9`I(v4 za|n~B>n7@rTID;)M0Qkk8~iCYwSqGE8Xq6zXD}x0G|4TnOQpE_`2jmJjhAV3Ert-3 zlKo({GrJgzqduxb6`Yy7X7WDYZ91F)bSfm(VvNV~6glWKz~6Q|H$`EohsPqgW?Jks zu(O}k;jk9ZR!h|=4}P2~nyZV)BF%;t9iQ)YbXQUEi8%Xt{qFkw8A1M0Q~Th00E(3| zvX;ZmCgl1euS6*qND$4R@#z(q;@drNh);H+o^dtIZp~hAc_iw>@63ZGgbYn4eo8>c zw*^rhwi zZdkIeT-C_+&Iky-c2df2-W@Nh>fpl_pEn259WDirwoY49ZPPMe?&GQGU_c&~gg|f; zq0hG*-sS^~3aAqwD&Vn%v?>s?gv2v_I=mrAC@AQzPI+cm{aHN-I;;%9(VqLkMY$wB zeVFEc1et|jXNPWPmUr>DJ*vJ#l@!izgeTTNzX>TR%*lXd$I7}Dt&Um*8Z!>{*)Eo2AAtUG5R zX;ag61d<{-KQGO69^#@Ki|%#*v6?^Z7uT?6`jN+XTzD*ttCyn)7NMk^*F>L><_h6Z zn(4^vr~x!T$P`R}grbE)D(dNv4`N{{JNnd|ETa7a5hthFnNjT6@O8l_%w)Hpb&&Z{ zpVw%!zo->lFr4T0E>z-}1a=Kd+e7Edji0^T-Dz&bPSRVHoF249=3s=}y5jNWRw zi+Q@-)8mta0CwTf(m@Ej@TsriqTRr9X&gq_(p_&gI;_6D?zqO-J_Er(O^We$aiY1`k~rBme3p>I4y47&0jt)4ALh$$yoT3)w|4SdkBZP7s!K!+-%&;1 zJi=oy4;ox4HdVqMTd|fR8(F+CzN(2^P4%U0yIDmz#x??rCMw#lR^eTit{#|T6?YP~ zCy&H|kvRVtr0*q~Qey6yUSmk{RT+zwiA9d@TX9~TMj6p=#rtx_Tys2@J6-o_81bwTt6|gt65`%jQH~<%cFS z?;&qK@91BtGOPR$v=XKpEjwE{IWYEWx^2&{MOSiMfYEh(o*<;A)-U9-{m0+V27V$g8rf_T;Q-PVgS6uuljZu zFUUu{^_1|`|9=p9r&H$UByT`&oNsp3gpoFN7p1cA_wJ5AV<2$@r1`e*;FSeiK{-1; zyV!_%QIv^KbHZ@&j)T zj2_S)d~I<(^AH1BOlx#-ZCls=Na?uOS4HC}u$vbP@$()(_#Pj5Z9#~}2WeM+sPX>usUslE$2hmAYspwa^J6K3y31^9<+*d7#%Sh~$ z>C(R1w&b;y!w|X{p!L0f{Q0*&)b)yuY|9y1Fp!=4r7PsCJ2qVaAq<$I|uzTx`m?Qp5f=O3|? zut<)-RmU^5C#(IqmYZ#)_xd4=hwHQ8EbBod4Td=$zlh92tDi~id-FuK?x^DG2o?HgVH>NRh&!uJO1#~pdJOzYd6Q;TPE znrC^7e{oL*{q)1qET_UVw1Nw*af2X+_tic3&!1G9L2ueu1MY&J2jcz% z4E?Xd`u}vF{#Rlx_dg}p|EEiEU(^Nwy#1f*=KtLd{NFhLr~7|!{!jP+;QXKN|KR-p z7WKbj<#4I*2^;$jTueeT-JM;vw8_{dj*=LyuS)Cf7`y^J!Fl*K{1sN$Z%n{H7DTH! zYmQ#nI$xZ^r+)YFyb^fA^zd6VGt35kNNpjLDCU;h0JHuTws3)0Y&Fj#4)wDz z{$u#z?wOBmrQ>M*{ucE2Orw(LuQw0=!??KmsUB%C2@Van9(eNQ9c40JoHZ8!@K3_I zj9}GwQ9G^sNt7K=BUMBCYA6B!L=(6d(^!uG7vn!#bc&S;|C{XXk0-qUtw=6(zCND% zKk)AguMO@=Y`Z%{eQsDxkk||P{qp#B)5J?spBX@r>}|`Dr}a{0?H6zH+r)fLZ?niC z%g}-XKY5~B_Xf+t2LzybI54?OMUtKVNe6m-Z+D^4hysL~doqo8?kKO|TS`5SAjF~k zL8zpo*Vjt6CyhkhoAR3T=WF8ne8tPJdP*#ZE8QA8lSF@gOYx|sLD1TloBr59?qz`N zO8f&wj?!ayTjsX`SWlrY-np%vB0q6|$5U2nz#z?65xE0%yZV9x@59i4Z(of2Q-fkGyd?1X);aOhA6+)&H#f{D>R za^|EdTb?wns;57^>eRO)l?0<(N_^vin^?ae6A;|mqvo?ZDbDfoC;R(_HK^Ap=73wk&gqA3 zO(vgCt|MWegMcc}S{Vw_GH0`=IUK(?N8-#g@2qaS`2reR&JCTrhLMtoRTo9atkKbmclskzVPWCD#jZc- z$JfNhhJ5#qO-=T72~)0%*a$~U3R8^DUyUXoBR)@~il&pC`Gcvo;TqS1?NJhXhm{kt z?5AeJm>22euaUAB$~DL0P z_ehED9e)BWwe`5}vw^xwZ#xRrW11e;SMoxLDoZpN@Qn$JDrCdoA=za=%{h$~j=e&Gh4LfRl@7 za}DEe!`;Tg-MdNrfwGJ45s0b#z&h6Fg$wF1CYLwfHsYL!gS+je#!iU%(Z{ql#o_p5 z)K#wYv4u4Br2S>ZFlUZ;J^lb486v}urQ>u2>3>+uYuj>lRkVBSrqdZH@|S}*@yI$M zsGJ*}mPidqwQ218pq$6$X?pQjZzb>mb@=~L_EuqWG*Q_-&BRa zvjq-KjhuDbeSvN;^O2`6gXc!*3wB|sv2DwoKj-Gg$YcjiU{qIq%Ylzt1C__@iihIU zvJUDOA6{PGP9GleKL{BMK^PJtm62)RV!0*z_&R+~a7BWGmQEde+U0%sM5@`k3^>i- zcN)Z6NE08EB439vWcx;Ql4Lk92dlT*PZeW5-xk$Vwda@3#~lCGOItTg<0%=RG%QNt zD<@eaPjUb5-SRvZCr6RJZ28`&6F`TuQ+DJJY@(5|^;|q|mzrW-@i@0VodG}qs-8^` z`v>bVpwSCvac@}yJS<3Gmcx7E4{le(Od8L(Jh|#9Inm-z122KfEbBe-e~+(styid z&gCF=?nnAjavAr+%3i(WDj)z_QrUW~CGpsWA-G!=>57PKNDA{K)vypBsyxtPr{>o_%Ht)*nIF_!*`62C4jJLBTF*rqH ztpX;eX_Jng7VP)ku7gN#=t@2uNH_X`vstSTa{myvCEco+E{35T*J(soXPvxs9gVWh zCmOpOK!E&3N{R+-F<3Xd16Cu#@66YCDt~i2$x;bey%@0vXwiT}N4VP}(~(+wfq=63 zHC7AJ+=rfT#Nrn$l|IC!2JbEVXu%|F%e>YI=pr?gt0FnE);N%Za9NNXkCIF}xj>xO9SV2_=w^2M0g((}R(2@-n>Sx`hR6*zOG)GH`WqUD2| ziEx;VlSGrc)yN|sw0}P=7EP--{dhaYsL89clKOm4KFbw8i_%@@-Q{IPl22R!0a9J0 z6Uf(=J4FIfe^U7ZGM#f+`o;%TueVZn47II%=ce-QHkPg>kl#Lsh^1NGT|Puqj&BG4 zDB(Q^ii~Xz2!6y6J)5(Tcn z$`jR5^0TUt77acprxS@I-NpqToQ?LE~uYG!{PhU^fiQOb1Sx2Ssc%lY4D)?Wv!R zF&QnL_n71NUl8*ZSrkRS^BrvF`D(8X7eAA@`O`uw3O!Zz4zmcUv!H-!`)Iw9#HPr~ zt5*us=JuYY7C5jw;zxS}EXW zu6~H?Qy-mM5OIuz|02WI0AS{{+bo<=Yt-V%Qc?sxK})Il;7I^lzo1DSnRUM4LML&Y zs38`415Uw4R`U!jjeX-$^aZx^!=Sb0o+kRtszUv?E=M8m_s@^qtD>O#C6wzF*dI|U zT7stpNL}|Sp1k;L75kFm;&%fENdaH&o9DR%**B$c;u&@YsKYGfi*4=$h)C(&-e8ks z#7EROZ-{M`0Xm2^?*&t3M{xOi-@Jn@Sh-%fZvXIH-*PQ6N5u7Aoe*1Wum`!sJDK@o z_i@mO3pR#w&DtM5{=rFvZsurQ>Cx&?ycvcY!zhQ!Mh;~uKm!k+Od}l1Or{G$d6Ob> z5>vpF9#KfF$&5L07>2Xoe@YyU+$yh0_XpWs=zS4%+krEd%87>_%=Yj^ z)D%?$Gh}xnLzQ`Kw2Nhe##}5&dY=%1{;&kw=r_p(Qde*o%C*>ugMIc~)@#pNj+8;j zdt8thc6rI+FOF0EmQYIF>T4!C)Rvo$7+<)@E)KY|(ukB;NS<=Eme;B%Cj8AF9%AA)YQ+#T|w_6MBzVJCR=<1iXchfWQYl%JMSgz$z)W> zl`Bc6xz~_Uo(1)>dG5yxXhg=tXTDDPGwIKA9AMK69|LD4yAbvxtK&GVoM75p0LP>X zX7QUEkM$d{!jCK~^0~Ww=+kVu*$IytDB|GgnS5lvH;0L#B|i!K_7G@uFRP^UdfCg1 zw$VRux|FZNS9Q#*M}FCcUegU2r#;b6Vm~qwH<@3Aov19#TZ9poGkw!YE|iV21{tKI z(66K`YSzhPeoenj65%i#Cbx6KgALi_-nD{~Mi?{t>-yrD%qg$bO)TivAYroPKV3%H zb@M~=K3wuy`#Yt`OIp{`UDq?f)Ayv*;k@NHqNN1V%Fs51q*`^EvT{#m5#XuA(d?KA zW~Riww*=n*sToy*A8k2_ciB30=Fl%eH(Tk)j~pCFJ_^<{G>rtEOtMTWPEvRAGV4nf z?bJ1xf8sa{@Lnu^UycPK%w*pp6Np5?pNvd+H%BI^KE(?oqAd*?svF9!0?_shq`1U2 z5w98Qs*keG%t|~qJlx28+lw!Bwhc!1?fdMp7?A`!gchzhMZN>=sK9^>)^_ws*D4B_ z>=UYwxU`Fp)GR3ghx=-MS^Yi8q--QdvYn4D6gToKAmEkj@1#*o$XA?Lb4!TuR)o9=@zhu1*FBY_PQxYWfGL3ZD91zUm|cY&Xpts4CA^#N7fOFT z4eBo$lr`18ekb8yHj{C}23&bw%2sin40|x*(5+OoGPh(w2l=aUHgcT?r-G}iU0D1d z)#53-%yX^K1X&73*T^R{keF&q9%WxiN;Di~%^LdQSfdK@n#zP_CIQbAs_^?1UkzpZ ztLFYy26GetQesWciD6?CY``*S4JnTfC0s@zjvoaFKDX@Nq07SizvBqh@ zGw=ikPC`8Kzh;>>^T>mq{EOs#cU||qsooWju&x>AsL?Eih)b*FsZBgbGmNoB75Kvh zJ^o?Mpj~rWEidgRUK>>)z;9iUI!a{EL%LB%oB5e-{4l1Uhz$XE`X^~gP3XJT@cVEFrzd_olW)>m+;6<>dX z;8ayhbmeE;FH41s5n+2Q@Z~@(<`b_<$Ljiwa~tKbZk04cGXtt4=a5BNMwDp501}=< z+EbK<2|Z)BS|4PdkJeLYPY5ZquE_G|@38MmwvlFIdG&WI>=TR%3SXkf0ASU#)4)Lx zqhyu(<6tP)@RvbEk`^bni*&Gk(Bx-4h|b$3wS?Sl&F0F=;1B(sE5;@jD+dY=08nqUUE z@6_w@)JNe3ZS)nD$dmydk==i8egQT`rT0Jnj?0Y7q8?d0`%I{XaOp6mh)Hz&T`6vp z*u3a<%;WD?nfFWaWpp7IFqJ_7Gre2FJ%Fb0)B>{mub>&@-5Gh1+%Ie$r`ASN((nl} za=|#!HNyfmEGiD{gR4=cG@F1NbKUPV>QD#~^Q)uTMH5Ib`%9|9#EQWcR<1W&1}MTC z5UFQBR*414tTTDPfE`vY@LGi%MKjmnJdxg>}+6SqAJ$E}Ns8;6e|DHA0Fk_sx~ zHziJ#2U(;Q^*+alr}GaT@Eho(u8~{8R(aa}7GE>$$^Z61@7AHv?Qsdz&y4~$J(&Np z)YX;{wNJB8YvhNu!cAHYU=eL#=H;V}(s7tvGF!QBms(BUQ0_G*w{n=8CS4;ht*%Zj zaJpKDfo0t^6OYDe5TaavCQf=X*e>Yf)iadogl)AH2mk!}Vx5VX z+q%E_Y)#V@`iOqx~soZ}3rq&okl4)SH3?(1NDVysHVubW3flqvy1+QWcRL3CxPv|G{`>0FvfHr3C&e3yx;!U z!~wl3sfx+lEQeXe7>oXXpBJxA6f67reDI{h)B)n=i+@Kbh`pVjjHG{wd_A+qIq-Ua zrUTAKQ()SI#+ih8ja+4YIIzP)i<3;rzJx0d#;6EeT4`s@$51 z)O}teE0V#4#Jy%@<5tghsN7PM_D#66+6xx}i3Mt2Nnk^m%RI)%AtOSaExwXan}6$v zT!#n{Q_hsTJvj3(!(WSz9%&YFJT-=`YgY@uN6*^{3JLl2v6tJMoSNPLGM6*Aczu=snqALC?C7LzUC0fTbV*5MsFG1^#QF9tF zO@@~WkapwnWyn);VerfQzV6R37q&VTx7E{HxRzeF9OexmYevhn8+ z(>Z?n|3+KOx1j0Rk26Z*IZv@gKG2$V8%-@e`Z*>Lnxe|fT!N^C##3)opMHCY&g_jgeVIWil^a30pk_~+6F@>6MYr6<}} zukN4CqWyK+F-0Zz%gajYu&yMi<+(@eyxUnWJhFT7m@H^#puAcVi#g2c(s|V8Rf_und88I2 z;>UD{9qCaJP-N>Zsic@Di;xGt#akfY3;dwWi_7nWy8NR1rdX2OuK76VzIBVrAPzA~ zw*8>AN_$cytyh40VF@qREm$qKPBMEo6%YoFF~-mt<243?mZ-?DWlLz57eJk!Wm~Tp zsVSn!1E!1Tt|j1Yc`0KxzMB~pBsY%YA9VNuB475yxbfT*E_AX`#)x{iB|TPxxMsIc z2aCt6sujdTMmo(*Mzq(@>LcVmiDkYo<0L)AK)ZUNmA3M!ON?3tL{hDiy{4SH%Bbwm z^YcN2X=^4i`~6E~mh1GH+c&I`jnV-4L=lT5Zu|dEPdD|6WCj8nQpxejNpvNrCw&L) zt@~z)EtS-1&VWtcjU$StG6qDq@*s?Vc1aT^+)d9z5Q)yPZt+6k)W!M z;+64x6nAXwN3sAN-nFdC76_r@;3fsNl_os7GZ)5m`GB25>QH5K5!yCEaJH`s1BtS@ zZN$dJtqc%gL)e=XhT?urSRR8w)_eSkUSB^1Agd_&p&>2Hp>h-IGSq_#Q6lh!pfw;x z4EY%uuZ3G`nbZ#b65P(lC9s>va0MTDE3SSzzI|SanP!q7;p&tsJZctF{V@z6uNLX{%uMIS34JeXmZ7caXz2=~?rRS<(I~ayS3} z5KJqI4KXVN+!AYELi6J&lVK~ir&KY*hPPPM@@GrmKNUm!nZ9R>67#BH$4YPXtZan# z7z8cQsq`mXN-DgMhKeXfwzi0knk&O0TRM!dGc)hC-9Wp#ynWBF8cUQEo!2^8Ys%xf zmh+!Y8i0W1Z{0uFOXr1<$h{EM5yj8K3`|TvyL&EKXpTt_iojbSjgK;XjMDJk5u&_Q zFU$(r*l=XOx$pvt_?j1ae-E{<^8a4!G(3!QO+<}|ruh;fy{sh`1eZ4MfcJUulW=Bq z8a|q2HqDfEcmAzP=HXVtx}**x{x6OK%LfpnGv{3RITTt+qj5D{`@Y^>a`I?f9Lx0?VLei#++x z!`GD?{BO@HQZ$5xfpH5lswf(ANF@o;r2Kn(33Juzt5TuLf{J2&S{oHmUJkm44Usfm z6BCNNOL8?`TOVLx?p=n4PicwY@n7xAZR)m)IHcb{d%V z<90R4e3XKfwTA{{jeK2LSw1`xlvsr*V7?9A;7lxg_&_4mGFVEYHn1d2sk&djzqIp&memw~zi7sq8x*P6?~DnL6=fy0#hhK9(XF zE^B@&KBaNoz{~twi}XH8XGdJKBQ6v9LKZnkm*ezE3@_{mrG!}%BSx0a_m`ksL3mG9 z9DUe(i{LtBjm!l4xL2_NY~rQhLv2pkwdpo~-$@p`XS`boTEH@-3bP)p8B^mk=3nzDNZ)H{wHi{{F=9UND}_Z( zk9niJ(15pCHy7f`$1z-5Km0@m-b+U9r$V5tN=Ac3b@h2-hcs{NsJ;Khg+)M|39{Xg z#-ImtWoE%hJz#dqU_)*{F60(`m|0KI8x^k<5!tn{h!x{Z4uj|nqr=?TV;-;z8-|m= zN&m96K3(ve$LFNraNMQAHNSxt!|ATv=R0TWv3&n7unEtmT&J5r!xXq-)Y;ODIys4a zjY=-FDWDWF@x59Rm>kSB@yAAFEn4kd$j+crNs?G;%v)Do`yo8R*-=K~X>)4y*STgd zjhPs8cg}lPKvZsxAb@z>aQv3qf&W?+$v^^~KlC(E zALfyB6feFo+Av4xSG~jbZ;>qI*oZ9V!c?hJNBm3q$Q2LzqjXR4?ANxtY*{K9Z0lg9 z?B%SO%?&q3u}Y?y!4T#*)o(D{7uktR#Kt)+5FJax!uc{L5iyLw=Mr9v4h&Z*>Qye{jK26pW(A$Wd=*1|mYy4(I(}zafQSS6KH`#E zH55Feo9?f{#RKq3h>GLYdqb|(0BcfR5!ktyE6+q0<0$dL{=J(8VNBw+`^NxeZIa&9?}|*Hpm>`8?Kk^M3n5ncy_BvAz5%gvb%= zZHZjo`~419HVi(M$gsz~-I3XEn@q-;d%H^Bdi>noi=EEhb61iC>Fx0a9^l|WR$of~vTb`T7SoC3c>$8C*}wzSv>BGFZJ^1naPh9)BI>E%N!H(rLiijdjE`_yM#%;(GOxZs zh*;TJ@ko>2xVNlmz#B%O$fd%hYqc_Li5FA$gr@Hha!#(XVFMOMs}A!izFccV#7d z1ym>fV6E5qP5xrC_xzZpCxZ&S)qSafpjB*9tH38?2;YzmrVbESL1Ac#NYo^!d%@Z1 zvTX1ljGmeuz9gRnH9fV24rCC(X*}M{30s-vH}LMUW^|Y@oDfzI{I&@UJu+;2?vV4C zTJCZrK?e}8iRYz`N>LjZo@lFlPpn9RwVqC904ws9GK8X|nW^-D)}LR%;(;{_VI+oB zgkmQo5k}t?gpkZ_4tiE=5s!|<-&jw}v^d*qpdY`chv#kCobc^s^f+e#%M2rCrr6Hj zcOvZyp0fKJy;#t>&yYWOrS8N)`ej1o`i zjR|XE_!+*Sc=&rKQl>40*Vf4A#-6`KwI?IHuiU?)|In`lGMsz! zql-nhU7^Q)xA78)DBz(-c9mF{Z}tWs>==3w1(x&{Bvf}A!`UO)gso#a&vfj%E1`2I zVPfR%3K9CkF^iIjW0Wg>IxjA2jTGO+m(O+K!i4Z7Ib?k>gx?gQDDfWQj}m6WB_CNg z$4A5N$7SKqPv3)mG>-j1PA>kD2E2p3i8RuyOeG;Osbw=DFJO}|d&!DyL8s;}TX2gP zfLIf-yueufV7U7JtkZD(wKF|9-)C(skjpe^3!X^&3dXo^XcEa&(k;KY#C>=>)mIsD zJZE}j^|ng!jwDrPq>Jj0t&ldJ$9qPB)QhaQiND-ynz104Y7_aZ_=i}W?mq;e6H-KR zJRR?tjG?eSpKJ1Bj**YbC?ud`*>IzV$Tse<(@HIA5d^DsAsGT#O?ovK1H_gkN$(pU zABS=Y$dI=+!bj$)M)Zc0ty0jT)!?9h9LQ^>e12&tJ)xmWSHSFJ%N%F5(^qS2CLq9N zn3uPe7s>u7tnlEVJb9%)=9(dV1b)w4c%(8_b)8|W_9rPTr<6Z~Q+cnI{7Hz3*Ooa6 z^a_36H}y$Q;Sqm1a`;|85RzcHSMicKNKO^Mj&hJ&##aLAHC;VE_broIzQ^kM4C5ED z%j6YdNU1^H@|Kb|{GFxVyBO7QOi5aNMqFgHoOtXwb4U!uU}oU` zJlRUd?Q^9**+Owx@)oDJwbdel7N{P>-Sp<5ox|Ovi!dYdD@lk9Z{K2!=~`=1&^ZRV z1d;F0Sv&AxWG!wokxs&`%m}qtbouhO!4j~k1m9Q{R8v5e^@epwcJDRDb)_okUOKqw z)qyb?hU-56pd&Lb#HTIY8)<~jd4DnYT!%^op!=x?!Nky$9}K}OCh$#kU3XE;5vWEW z#D$=(Dk^dz3_0A7@-G_YFZ~WunWp1zlJc8iOoxnSw8Z9Xj_8}Kg4|Q~N1KBIcAItA z5DW0>gH>+X4u{)(nNC|@Z1t>X3{_3F$iuT;9f3=;r2pHs=;NQoePo*$Q_XVdt2lV6 zd%mMSuRIS7;=Kq5Y_m`EoI@5!bk9xUN&v9fHYaE#uf0CH} zk21HcFV1JJ*4FC##}E;vmysDo<(BCmm9I@mz*=p^P~!1^Y~_wvo)$Y&P2(#4d<*VB zmSFqNQkNU&b(5TcD}>J$Ks~WdyT&vN^B)t>_wnZGY;qv+$C1!=BqrC`68Ne+M{JQi zOsVty+2r31LVvhVWmhaoTtToIYdB%LcCY5i>+CTW0gKXfA5Y1P1yjFG#RV#ME-`_c zhC-V}GE%3e?uUFTP6s<}D$r42Fkfh%+B$}Ik+;`3lc=9LKl9JlBfucPFezChWBy1# zO~g?IaVBvRW)uJSWk^9o(`Y7Aa9r^b3?)bc9m;&JG3yL!u=fdN27U&5dc>o{i1NP> zL)*^|r{%5OoF|_fi`$a0+WeeM=+P;MDI=*qP@``g3=_g2{6{1G+X-lc9Z-@m^z(n7 zmHbCj{lB06_mjVOm`h1r9vWFtRPg_ypaf=P6D7lj_7K{UDs{thvU3}~$INWN+JC1g zK{OzE|J4_5kQ-c$k#q3G35M5#r;1I z{r}H){@3CEYUh6){;zia*Wtf*{-;y__h$cf>i?tJ|NF!LYX|1vSp5HQR@(%|ze8-t zD&eE%Y(nP#(B?s_VmvO#NohrTqEpt(izi@$?%x$%-7P}6m6YQPJgU=|Uc?e~uV2`5 zJS5Do5Wh}m^zt=yi1T>CZ?IwlZHYq3%Lzhorfo8<5R~@|1M@J84iQpeQ|(fSf10`e zDW~ykRQ2p3YrE4(5o;(fHuKNavH!74{h_5Lyf#uTG%82d?@qb0n2_ga0Df}m$peEXZzdB^>kW5STx5xPH zt54fUO?@hc;AU5mMh{QEJ5MqU8npkp?%T0S4)7BBb^XOHnf9+l{5yQMrh#;MKs)_3{tWwA^*u)1t2`c&2G=(n{W#k0dsD&e_5zD6S# zlPTzP^-#z%`{$2HK2;90`NM*47?62L7+OLC?m= zte_3hFSZAPWfhO%hh zmg*H})M5$_?K6{RT3z?u)EG`%e_RDbj#>i>Y8c8QlFw#xwY7e&g;^Nx@~qZFx9*sl zQDwvx({y-#Joanz8d<3HeiTui>k7zlJy6WtMSj&KcZYVFY+pW8%N6&F@%?c2lgAzcUv>ZkGoe#i^>QA0g(;;+MAq0 z9tQq6%X?ERmxA4CDiRw_VEa{LhL>el(4oAQ3j`3j#HaGw%9b9k2V1=noTkn!lZ`7VVK+FFfex4{g| zz@k8mOezeTLb9`lB>p}O^iRjq_xhdkx^rNdS-xDh_jj3qsPy_Y;P*N=+&bq`sCqOX z0rs|ks`1v>rIK;2*B7}NF4dXNUgXV7Nf2{+U(BuFqCIAi)?P;WhD>SB5SDzkgucjW zDlR*+i~S_=TCd(_F|P4`U`kV*DvhGa=3zsA{)yLDoDmQ@c3)7!vwUA=37fdpI|e3pyv@xC|;0lQ#m?B(F5y)m%=jhN=Hhn65hoM^xsSXS{O%QzC?u zK$)x67T{apu?+Wg1^vk>!P~PpXpn>V{KlN>s~0}ohYe^Cf~ZFg&6(~xO%=39n+}I@ z+9j&;4#(&rc<4KRXg>{W{`8p6R){s5wmk*u^IKb6*W0de`E}$?nD%y{J=M4#V33Le z1Mj{>8L}`lJO0MJlZzpXF$=n+BT>#Sae51ZD)MQJF=BGm$|J;G{CToak*ofX0B;T# zea2~DWO|kHnu%Nc^{oT00-1#4I<3(pfuZjabpUkf`{Vt!XRP;?)QJ|ni^E6{9@4Dm z`FGp%ZI14wY;IRX<+?m4zg4g0X4eDi03wrRlUDrz076Xuv_)?# z+jqY75w$X13>`riSN|0YEy#JvtHN3&scVNCghBYQoV|a1_Xhck-BN2pZIESENnz5+ ziVn+;lfAd4gu6KN#Zzy+->UoVaiwqBaeGH)>uvOyv@z|^RlDgczx&EcYS<@E-;;R) zqc!+tEkmpDLHNL?iNWeT&ds3D`fV}VzrT1UdLMQ(NqnRBk{GxdP#1cB%%!+h>XM7% zk~u{UeiwL8@P_yOQ~h{VjGVBP>h6W(T4%82cH?DXRmcv9$+P?JvF*_jJ2_Mwp&%8W zIsT;{=WR1?g;3z&fR4`&m7`ND)!o za#KX?VdDunbb5odIUKoGD`h1q+{t#fN7B&<*uw5wi(X&A^(;9uHJ{xrW_)UR_8&r& zwq4$mc-lFz;@g_c|;^`R?X09IfDT@37*D`JC&{MJQqQexa~@f1jA#==Yb@ zA@olL!!sMZGwv`(4k1mf51RySj;U{-4YP0*nF1)duL11=4R+uD$2giU^)Qmlq!i>% zH!Pt)k5+pDfa6i%&qynrI>3HURvUAB#E1ga}Gej(+5{J1eZ3e z9Y~AStLsYdjiwa-UzuT7JrWI(nPgVtL=qD*UEyM^AX9Vx;m;echHC8(iS|ZloN$jA zzGo2b32~1Vgrhfih>K^SWkYqzfCps5*Nn|xAQZPa z0>fpn$Gt~L8B7B%X>aTq{|t4Ht3I!m%}xLmX~3Y+H#IjypA)^1!O`*#_YT6_;I5f1 zR?mCMBrjgyy9*-nz6dyWGLNJH{O|9$oTgKzEns}5xn{qU`yMildLIXUW{3B95^`R+ zNUcDk{?FIMt}3I%PDEuz%k$d``rZv8Jr%^vxs~v1En|Av?dZLFCQ>yMjny79reG48uoeI)2ricSdnj_Vh^ zvTALq`z%J!(L*rH)m3ek8UHYgyhHM;o#x(TRC?EdzM}8R$%G~5yBe*81~3U<*aYPl zuelOagip-+Y|*-|(I2@(-->yZu0HjO_)N~;Bx~Meygl~CeElv>Km-xNo&T5IK${RJ zK3FaW`U*$5ttAY*x!vje-%lESJ15`Tjq{c&t)k3sT!i?svW>L$+qpeHzV-iCqDd1aAs4#UVtF_SC0A-n`Z|dN7Ec^V$9qM9fPa$lytm-$h;V%}^@fLH?ry`6 z@J8qq7T_+IA>kKL-&s3Q2#?5JqCPV#AV@t0KWujSUnKjM6~k&~;sv5{`knX!kSK9_ z7Q}I2LsNgtp6rH&$8B6_jptHCwSPO+!$9(0{<%u-()_knAXw#SJ3OTDb4TXuKV1Pl zj~k+FvcY{4`4ae}X*@q2@Ht>|s!LTWN=p(x{tZ^5suk%2(eT1#7oVnSc9x^@PEWt7 zasFAgiz@C4cCwhBnZEP-t)=v{%b>osn>Pm6!>L7lxRg05eXBsa>M261D`Dip?JI&_sP+?t@^B}gR{>Y=5kM*KZN?`4i-X0 zK92LBcI6}<3$dmg({F^08ofQ=O;ZG~Lm?_z|JoIi1uZYzw_}DN&vi6NI=?-a+~x2& zhiPiS{hvJZ6;h1#51O?!H}4)_AhYnK7jK6-^U)wFJKtiT$bW%H+FedbJvSaYv3Dw5iT{o*a@b+N&0Qc|2uHu75} znP?xRX9Z#S`dJRcn@Xh^iJu@hjf-B)CA3~q_=@PCtu(Dr8Z9%Xe$0(sg>JMOjh^n5 z6YJU8J<#NKRBi1s4oQWt0JD>E(h1--@t|4|4a|KzQ^n>y?frhh&kI$)zOeS1 zWgRC1Fxwn%jit{<(MSdg-9j*m+qAUtDNTY<*lBNv(A|%oxtve~GgY#&b6!3^5-psp zP)&2hu~MP4uF#lGhkKj)Aeo5dM)aKL(mlF^Z&j;r06rOsoNLHKEmEF7Ni`wAU@Cc7c=(`T#X4vCm_}`se<}IO>?@?$p`$Jq z+zbpPl4Mv=lLP$%E%4Q~e;*pDQ%)Vyn}Ko}gI4bz`yRY)rKamczNRkW5FEi1bE%tp zm?7eS$;57vyu*(5MHPFDv3+Wlk`j9$fbH@1YgjBHzCKVaO_4GOFAA7CX~cqZN>3+4 zf1wM@$iaf=&Pd{d@Y*O?nj9ZIe-^C2P=jQC1;86gy+%?fJodL_5tpW6yb@r)eZeOH za(_|la?VaJm$|<3rs}O%P4!a1;GE+?ho2Qp*1kt0?jGu&)vD3p=BFT{~_u z!Ac#175o*RpCpKi>)Ah4oimi?)-3lWm3=yA7c}$TqY5dDti{lUrhY5H8MtMHuc;tNFs<&BVoctzWa%k$Ht|A2_UXY@+A5s~kG zz$esQ1mooHe~^3W4GMHNwYUKxxr-saLo5IOrraf8!QbdstM$}iRLHf6Ij0|rC%XN_ z-PUn`+`jWb@YeFc8Jwij8)IdbZ9i(s4-~mNOZ7o~_@mdDe?KNSu!i?YHdT~QNg@Z>iOfRjd*YxGDyB7x(cfL#Wa{Y459Aq}IMdBN2F?Si*Bg4}zaNa6ZeG3ME4Z1x#s14NP0{ zctZCgZ-SvcbzXgQ_j7qiY?T?FDAQeTrg?=o{Zl^H!Jp(tn|5n(9lVm){l`iM@|be- z_ojVHE+14K`d+Q!!7;9~lQ?`p73I;Usyar+wCossFV+^w=`>AP1MEc; z<_D&|reKx{ynBqh=<>>z`62svx^l0s(;B@t3ob55qLg%AxgWPf#OBxFaiY4gvQ#K) z&r@|r)3S$rw+){Yr>UlzU3flv&bJz1<=?(H)L!BRk`iC++8vIU z#g-Ayy#z%Z=>ll>_xFF2#r}s;^Ymys#BAUaX3yMEU4&mBa2zg=ipdKZXW7Mb{T%3M z9c#To-N`9oVjUepj43Mrx~6l!6$2+pQbqzV~T{m4h3VRMh<@k zitOK=Gl8ITSQmiRB4SO|{z^t2;9}?9Vk(@n@#ap6b7e>A*oSlYFyd1NY=m2Be^Dqi zVIl=yPcm(*517i|b>BaGc+BrI$Fwt0q>VWKgw$3|v^oYpr(pzf7W6*8t{~d@rAuw+Q&zy z=Lvxva=6}k=Ki6B%<^oGW>2%u;gr(o0Fi5(c0D1Lm+TIH|ixd#rY z&&Pio3B18F6Y+4{{(Rv5FCf>;1&Zi&ROx5=)h;2T8;{qv>&1(ac#mo^W*F6=?yerr2_%j z4O&SZC_5mZn%^Y+y!}D5eyt=k(MY3eI;uA`$nrohxQw728pGhY$`;jKA46xuFN;BV zVASeO*Sb3T>Zt(;-(3~B_9t$jyhs%u#;(wxy+l0qVE427#y`I(29E-1u!QJS##EsQ z$@!S#WDKgEh`V}y{(P$ct-p8!g5H3N&2PTk=(BT`*)*mx>q18Mv!oDD%-9jj?TD>w zMqUY8sYIQvk?i@ccBiYin5Pu`J_`T&==hQGE9I0Q`PFIvZ@xCpvbfc(5*GTVK|+bt zz%?2JQ8>IUc5)B2fa^{&UIR@>2v}7hVMQ3@96JiHOtFGX7aS(1-T4v_fCcR5 zzt>fk5cQe4oK_=p)NPp)-W-Ou5w~dnEd9#1VLPS#J_jv@BQHE1NcL(h3p!^9sg2*nh z><{${&B_S6vuCFo8XAp+?e(;^Fc}@Dy(ssCgIwQwV#+JI3CpOp$2W}}>UZQTxIs7G zevV&-nL+inwS`wQ{h16U5)aUTGP2R3`CPPf)Xg--8R*AzgLPr=@ITN#6v6!ucms*$ z4CY8O;{5oK!CxqBoSM096LrOF{+&mdKQG%q#gD|;Ih(l0`L$?{%@$Q3W(fUF7 z;3GS9#j4m$&ntJB*VCXuaD#K`4ihW0TUd&LX!1^nQ}9r4?blgup?ml`LoSs}M_)O6 z!{pB2dptr&PfvdI9b|G%A=f=oT?%XK_i-4ZzMCl?fg-$K%fPZtr{3mb*waU7@w?Aw z;0tfewZ=nHe-7e~ncgw#e>Utzhz-_pOP;QPY9}@r2j1PBCI)fy(4kKmq5D&1e3wSr zj~2&`5Hz>}?Bx~lg@wgOdiE-r4=JKEuS)DKSH1hesfRri)RSi0>pc=@DK#qbUL~{=Wqd9rH4W?=APM0moJT+-R?+=Yz!@=}%;FLSjYr+&Lk{5Uq8qdT@+3VWQvLBfmYuR;L z-D&gUY#l%uoOCoSGPTZ-!8$K`WtT7nBicO@&CWAhY1C(G^#_Q(A}*Ev6r^1zn{WKp zB}?8xAcpbK|3ojMtuw$~aPn#RR`_HA(U91I>Eyg?AV%Uc1G+!j%OhNP(}Gx_h6nAo zQ}Le^8-->PfG#wg`dG+N@I;u4bZSl9rKkzAB<#janr;-p&Z6O8JId3;_RO-A#d3^X z=k*k_%@_G6gz?0__JQVfxCH4_=;cV9oKdHMxZm&JED7CL0GDPug3$f&0Fgw0dRCx4sHdRt z%0pVSX@KYxCzwE7YE}03A^kX3HC?WQtg1oC1RCeqBQNu+-|E_8SDghE<(Mn$Q?%k% zMH)5Q1nc0w1t!~8q0#lZKC}U@D>!zp)i}LrA+2K_O!iB4OZp0cASZnAfWQEvS2jI9 z*t0tH0IW82thjWVXhO8tf)P^q)T)noGIVM6K=ZySFDTo4;k+~M|Mi@oRcX-q*f8~- zhOq1kk@3>;6tZ5I3h;LSR)4#!REBj;A}DApzNz)wZIfdi^?*gIBF%H$D#2NhNX~4O z_c`$1nWNRZ6<02}5Y6L^RLE=C4Dk<_nr}{#h(*31%j~=9Q5Om%DFFVk#7tEu5NF%TQ`?^XE?nMZ>Bjq;o{*3Ub&wWYHwv`e{>cxp5Ea0r+DXKOY`sq zTXz1RjzMQN44^XyP+PC5ayKI4twq4%XDcbK;D@smTqPW}73z9JwT8SK!_jglJFGzI zyrbhFm+&DQhw&lC3jU*^;a)2;Gc)u5!`pj?MbR|>!sH-f5tJMyDw2^PNkl=ihy*1E zK_o38EU-k8AW=bbR3zuTu!IE!M3RW)1(poLE_s*C8T5Y6`+x3py`qU2 zS9Mi&)vvp1gqu>lDg>aANrcI@M>?p_`cIm!_U;g}5sRW3gkg)Bpfg((GdDgiR z(6Y;0nZDOd7XHAmE|9bKiCP-D;MuWM^hv!Co_nW;FK4~&bjsw}buF3CIrFaoo)4PZ zK71p0QfR58zoTt<*hp{!y=4dL0tC2C(*4}L;zt7wGJ$G?~4pGo645G^u0^=Hy8 zn2l)eK6v?evbN0=fakk-AN9@zSMNqDo{@(3rB)r(NzW-Kx@nnRcPPvOy+ocJgBD)x ziwX&q<@QAPy?$FrVcyUxxe?4|)%$Z9xs+hD#J_k$(-$_eCo{%FU_M<4@ly6ZU_%fe z2HS+d-aX$kej{g9y4n+yz2x4dfkaGuB2gH#xi`C0GG5BtJIxMa zCV)Z$G`F!`q*X(^mi<*gLprDSnpJ#@o@ZX zPW=y6`~a#vT4d8-idC}y@dEYxV8cQxRsE84jJQx<964|AXNAnjGAG0`N#lF={D5&C z-p?&9M8=U63tttmRC_4@z+~;qk7^*2klSKgealJmeQ8Na_=)_!2J3Z7154rQL1-OLWnIR{R$o{*_LAvF_jJ0chT7 zBH%+yaD`-=(6s(t^(VQL-^1~mW-ucKL&9b)JNBzV9y$b|1~@;p&ukRM zFO@xI>_D|b=RTnl0MrcUK>JJ}CVpwoYb_9L(co}0*g^^w~Jh7!i&k%(~c0*IQrzIxn`fs5`dRV0j`O|v6p`5$Ii?Jyy`z!E9P47Fr#Vg zykA{HZT^9P{67GQDESa4@kB9&0H}bQ#VG>YB|x zaL>W4zN{-6DwusT^yrn)0Cv2k;u7!i&!&Mvh<~6{m_M!I{0C1I{1;F3uS>GOc%pm% z;EDcq>B;-w5C8Kq-alpi>)Ql>`|Uqv5kT(B!R-bu?!Fl7FlpGze@AdxpCClblOof$ zNx!ph5d+Vy0DE6{|AWQ-xr@HQcfK2)6+a(bHU;kNnQnCM5{!Rp0!2Q)hXdb;1Z zZz3Th^ZI;YxsXEJ=vJb}EuVF?Zlo&?cd_GJ{Fin_n8y08+3W!QG+~Q@ge~-jCU3!D z22i-~&48rJtslcr)$k~(sUS#n^AytUTw`xNKfNH$MSkRo#?8Esmw%q#M%Xa1N9`EL z_jJgQCLqo-tmq9xfW1&LN`0wNr|W@=1h~gc3BSqi{R*f#sK5Ar5rj1@UwzjrNI*lj|8(-g(8!#n* zY)2*>_cPbi6Os)FJ8ZRc$2IM>hkRIYhWh$OeW=IArl@CxFsu7Ub0`Gd8j|N@;`Rr& z;O$4CEO(|37wY!Q$6+UEa5Q_p)%t#Ra~!F#F-o7TErR35St0*F^!tY~+q< z6?Z^q5?c{Z^{!uCW8OiJgGV2(?HFTUw_2?lbbh`%#~{5FS-w%`41DJ~@>=p|*?s`g zvoPMp(LHk{nm9X#W~<$9b=$za+@sY$w)(#5E|I}FS-16rju3aMtZy$=sxdn)=aMI85FFqX zo_!ap7dr*yh6!p#Kjcp((V7OTb#H~e4}15(g8>Etfwq+VHV;6p-;!^f>)3pD)xvOj zoD9yeCa)Tbeu$4_v9*8)NNm~0J(jay-kGu<_j7JLEOt8kQ3V9jKSZx`p6`U`D=LDA z(lOy-VeEUu5-UPwXT$d+Z0v|JFYw$bHHX#tE_;G1e@%!k3b(&WhIACf+4PbI2b{I_ z?)D#P>i2eO8tv8NrZ}PPKSx1xetEC<4(rWM++&sQ-c8duKO4nGX?oC?6~=UUKyl>c zNF1vSE%#BxxO}VE2-aHk`49tlm4Q+srIPpiX`pyQODJ@wt>BK`9I$aP-jAUcBgH$=qm3xUO(TleQ?{4 z*Sw%^l07$R|G@1o&62&A*ETGq!Jy%#7RFRbn*d+q*%c8msZ3yA+ALJbpVG` zZ&k4<>~46bLzX`c6GDW^g}^hZ0t%yjE=Z$Y(;U~McgZ?Cr6%3`P6K?CIaP^ba3x?)BNxkc6 zHC&}|f#Q0;@Rj8X5}ycjaB1NX;8ev#4+Dcw-s#(qbXvoGTYWM2_1Rs|x5ki53ew^4 z%I40_2p6$n*DY9`?eZ~{PFxl8;wwSz%n;@j9mEq{tS?U)7a2;h4=n zA7DSe->B(+oBarCK!+V_O*M`Fn!Y*|DO(UfVQ3LuF$q%utxTMKuVVp3q=G;8zT2bC zlWcz@q`dRs!mr1F%?3a%w|CiLH>A^Zr~6w@GK*BvgF9qJ+&&k1jl9y~Oyk?zU`@vp zV8Aa9MxaKv_@o9wR8)E7?w{7bH)+d#zOi4C<}rJa4etiD3djj)>^&gVggQ4Bpw=Fc zn_PT3d6+i5urdl!99ZlM!;ujDwL^$7F{&u@qNnHUp$)sZ;xZuJ`WIEg|9nP(>)!Ou zW@%3rJnmvB7zCclegu@v3AVSjUFvVl|Ga=3*~_b`+1NbFk1>IWSk&wwJ}jaeT!4W{ z1hnXK++A8j@|BlofYHJUb_Gs=f29AZBQ+iwlI8LqFkTUamuED9*++mQxx5D$G~0;F zGk`&W;>3Wne-{Tp-v5u{E-jIN71s^i`oArX{J)EnR{T@Ne~McSkoKudlC! zcul?2OugIQnB%xhZ3E=%&qCqn8QYMHb|r}q3F+Zlo9h;*=@&1Bw@;LgpKY2QN&~rE zw&#ObtPrn_AVaQm>6X@0$gW(E4!0da?;qz-oC?-=G2~r-pS?xE*&ChG)=%&F>+Kf3 zYdSWMUtWnRn$?kZS6>kd2=x$xL(C9D!FRyti5@iE(wcDm1peXGe0 zj%%T)C@kjUqbA}!P@}W&;xFqP6!FDwrcO(93(mP*?5~gL$;>wf8V_<~adQ-t6fqW( z;EI}{li#-Z0L=QImnL8S_qS4el#{T{f**PCwSUrsL&5hNIyWu8DZ%Kek;Raop&|8^ zPHi4nB&!W#re*sj31;-`*Q`U-9#fqsRdA~}VU4?AZzNT483E>RvGF|QFtvM^=U+rN zi76Hdz0cathm_n(X6ysmdW44^AGt5uks#dxpB`Gi-@`jK1sWlS!kBwI5kk5LHgkM* zAiA!{J2eayb`QGiOc7@PDHb1M@=vK_WA*oV<(!ZMe7Bn$Ww<`1KRz1><*?DL0wJBd zD8bqCj#dFyZ@pa2M2>6_Sd83Fmr8jTKf7D(K?je5dI>?*c8j6A&PA^uM z(#m9#0`EM>6qJ>*F=gO&U*WEF(EPqGu?pJ@^7b4rpVOMDq6n#fg+2ywVY!A1x4{q* zxmHE-E~f6x?J>#uuU zCGn7VxyAp?DhO%QKHNZ^+GWwUYnXT9&7tYeUP14-_|U7 zpR@#{hy*P;?@b^t{r6KK%P#LFR~ELM>%eJNCn!S+ICQNc__$=w%iFZzxjHE5DjMlS zk=pP~h_m!vbbl#cu9nvGc1%4t)noDW$-5r|7!!A0lGXL|mHZCDkHM!2*%x;!>0r4q z%^)vNPchl^J$1y$>4)y+6k5xC*q3WehfAV#5#$zr???^-m}fOC#Kz*zd{K#n{ZJKe zH|rj&af}rBtFxRJ)f9t3Mhx0}4~^?>Jp%>-_)1P763#*0WL)kKhZLZf^C7br5k6Ov zhe!^nsB$ThMFm4yU0oHHEDu~QICkyALV7Fc`KDUZOfa$8;^8Jt*;>cNtyPnmr+C8l zEOJQ|GXza%@~GHPB$*KON{Q=uC@E$;zvo$1umW?+cWa3&x_Hfd>mTpgyoYGXQWE}U z%wNMJYUM`L$g!!>X^1PT9bprCe}|TkL&cAA=fhGD9ftuvZaC?3fRn>KS{|oY(W1gW z1Qw0HdDC$Z`cVfuMOfO<0C_+JyErv!>#PG#PO|YT3j{@Rh-MC$Zif7U4{6st0ULvm z4mf>MQR!h9Zzl-`$03g}_QAHxl?!*^l@p< z!NF4mNQCkfCH#lzl!6gcJ$&{?0uN^2&FlnU2Xh!)-j5HGyJ?Gu;uE$Y=X3m)spbI1 zerhp0U~RL#xn4Gz==MU)x>vR#;P^xYFBH90n_9z7fJBQfwNzF0E)TBUQarUi1qB{! zu2en0EgmsoQqM%l3g>Bq!%5YD&wv!?`BH}75@Edb)`%HIAHH0;%`lQHH3veT9B)ms zSsAyv`)m09yvtI=-HAn=%ZtHtvMRz!{|=HmG-L|eEe?JvaP9DYta&Cp2>zGM@H7R; zc~0I4`1Z4g0PdC!1BY0Bk{ih+hoMvrr<%itFNWI5%AQr2l&=Z+-yXM}&zK->S%0_bzpQt? zP-Z0ylZ8P(5MwH}tRxT+5IFD<9MmgfC!BMW#vHHJLm#SE&^z6``~4OB4r+L$zhb(1 z(FftbUK}G}CoPH0;Ng~NK!A|S*wh{uS>CbH8JqO(r%y*yPIn|2w8Ik5yFExKdKY$y z|8$f?VJrGGI`So@7{t$;7^(J0d+?yB-NS#nw@p$Q9@N4u4|H6*01q46n_nI!&nP6@ za(u^@i7yLXp+Tp>An#%5K_HihK>`i#=`OgNAT8hh`&VsJ-0ao-qo7t}K6ST=dDSblSPqmJkMG>x0UaR@sHA3D=Yp=ZFu^ec6Le3#eN zH}2s$6`Tt^qt0zu-Dwb3en+({FL5(Iqk5VrcsLcA(IgG77kJMAER+It?=}!f>L|X? zD)IdOC(&8)!|f}uxZ+DbQAcF@=r1({Q%-AhFhK=UQscbyyP+wv$6 z>(C?B3TRH#8T_%%3=jfhZv;`XsqwcKb!WN;%Z9%e`q5H+T<7CqFVvLv zZZ-@?n^-sHSZ1qd*rI-*PX3x6lD~GbYrD=y0!yodHvrvXJO)e`X%68LOqZ=@*0-2o zV`GEj*ivMn<<52;Fz@x%=3F2(Hz`K+MjR(NJl?R>I%G4$ zRR6r6**VMV5sJD7+JHaylB#ku(Q!eDfCvSWy|uX=gW>-F671bUz&8e@G9T&RU-!7k}|$ zxgTL^{|LcGf7c}>bca0n9hLkQgcjmwPbRjoq=JJMOv+@xBGPtYV|)6!ihNDp$oLME z;dhU$P7!GNo8aCMG6LL@reXDDSQ-2j!KR_)wc@kSdK6!+QD0i-`Z`ITiUJ95@=Yn& zT=We(Ip{~eN3aE8UIuQRpCOLCBRBpI(B6u)?y-*VO=IQe^L=Yq0G)5*=e={49vtV7 zie<35aJp}Ksf=1qXD`2mw@rZiL_0jBCtVz8K1qey*-;fTZj~`2tm@;-!x#6-ku%rTZcYys)Yl7(zGRVh^@LAMFykr6gCTwWjRXZ286>FC z5meUsiIrrOi@eup;M*WMq@`1GO5eDI0wVK`o?H&L`cAr27N*+$*QaTp?fqX0;fReP z^JZ)&A`_K$|EL+gjlstN))1BzkxF4i;D-8kb8o@dF4i$|ads}sNP_5(D7yJY!;v|6 zTvzqe`w~jU4gyRr|6em4NRmF9eSS{ybu}U1z3W?0Z}i5AvWRO_?TM$rndr1l@EF2y z;%(;<+lew*!60tF7l_xJvw|&Jtq*ei#dIy@>T@xQOX8o1Fj+T=wjclWV6L`ldc#EN zoug?1m>$tqx6=UE?E`&%kIMLxmHI~RLQKQnnu}aLKVKOt?llw_0YM56_1F^LUIf&n z*lUSZ-byNh(-{!b%+nM1g-xEMoGk~dJs^a=Qi8owc)01u57t#;&v^f>rg=QMVrBs! z0~m;A$zE-(X>A|PEb%!enjB8p|2B^K=S6>)aIV<3D|<)R!Era+6-e^YL(mn5bZg4i zMXsIh?tFo}R+lu!0S45!t@2htMM&ZC-020DTT00G6^(}x%SIx#@yeJX%=KzSjKYRQ z%X|}EDLlpNsX!#Hq0JEwZovu;yvQ9Q!C{=7U!;Fs7Ia=?Wrs8{B?+OVC zc_kN{j1HAZUL4ktcj95dzwO;4iTAm-Auh*VuI7-I#dWUEI`hWxZGsVCwI`)31`vGF z>&fL)-$)|9j;6oI;o*+E?GUf&ZrebTug^3}v!#wOl#7ORc#YEnU8UzfJ3H(kq3ef zw)Hb%lSy$g`mx9I_Tm0YIx(0YEmkJyw)@of1_d%IGBQ;QHv(Vw1Jqr46Qqw8fmxa@pyd;+h#lv>ZDJEliTFm(3)ZAl+uV7?NL(5d#DH5UkNA|xgu>yS)WiDQYf9)=o!L)wY3vFyuqBN z)mm{eyRf{`NIsyY2+VzF0|C3K@~|GO1DnhF-=>k^H3AF)M$eLguATAfn^lzsouD{i zPDDr?jmOH}yu?f1*RR;Fh-{mViq!nP&<*r2Im{*&8+g%+JEX|S$@qcHpRW|NQbSm{ z+?dZ3(Fh7tSzf;W?Xc6OP0qQZ&5bBn&WNUtkX?@5CWA|eP6LG@Xa0)A;c6I)r`l>L zPWSZ=lqgZuRyn6~J<~we-tgSmX-WxvV6Je6PhkG^Nvv=HirR#6(Q`0G3L-XU+VwLR zTaK9vw7k+w=vdORoynvG#`TP4o(xZbkZ!LB@xiM2Jy&df%Rmktk+wt1#7G;XKejRa z{wEr6TtKMus`tE|JR3I!(v0s-Q`a{F$YaLyQ7XTXXut-zcHLs4&@sO%nnf}}x#nJv zW^#ph6Qb&Ckmc{SD!MG}_M@s#Lgs;oy@&T$lIGRuVJd}!Al4Th3>L>uBhQ{IzDBja zI(QzSPg;5B)vQXq@7Q^#Eyq9@DN+o7=!UN}I6j5X%Em;dd`28lMm#;#V70R2%p^nX zE)-_Jv;_ZwEawHh7gjc<8h2kx7v~jUTBHmvwi74;D>cu4$?jyyhE3NU1Y;Q^ zm039MdZ{85(*7E`05%98VgT#ZCBe60y7*kw-<|2ZEpou^ZMfZMeOZ%r8g%sB(Bz!61_{gd? zK|iRaFMG<*pn<_0|B@0%usFuQU8vK6l-UCYlPtODaI@F1&-m^Vpq$Y0Ye-|tvMN_~TrLt-SdS{7n*wA;5#=mubwOXHzLA&XCX_1x$ z*W~V?X(%TrXY!W>lI$fmZ%H)ZJ>2n{t4n`!aBQ>iS8dicF4(5HW&F>gsfh)JHJWA(#oEzdtXq9j0vrp%2Atb_cKWXPb zA@b^wEhdj2M`WI42YZk!S}N%BO%V@4t_|mYneqMxAnPqm#(%gs9IXGSV6$b-TLW}a zh6qzJ;6j)}x;NA|SC=l(kNX~w?cp1<)ARQq5dtk!kN=NU6%cf{cZPGoPEJ(mVfx0| zF>&RfV+QdElJl&dV#xLDiIz9!gXN6zGVFJ@_8#F=$IQIBZ5e8S)AipEC5R5W&oF{` zC;=2mfcYs9bQn}7-zppqLgqd*HW+0OU*y+OtjN3UN?=k7zdt-X>2bLBE^X@AxT)~` z1f-kY_A%2$)R*)+m;tQz>9{gj?nIRprhnVr)zPtGZ*|ZjXjyRAODkPA{k)PLHMlr6 zR9R#0j%f}p4@ShKGdX!Q)Quiw)YXY9wo6`GtA#U$f5=9@_q8GpnrtZK;sfm`gbez1 zZYWiL#W)5Y`D?%Z|*ehtb$AB;S@`@I2j@y;MiTIq2I@afG;Se{O0dFu#?MyoY)gzy~Z8 zkBDXo`&9D_u%cGqm}L=9);rI&Ctc3-_{cZ#8p^koPLnSjigz6hFI_h%;g~ll{jEW! z&bd{JC_zrZM+NoQPG1YGdu6#}^Gv!7Jqu8w)McEG4 zgYSDbXdkwUkil}mW#|d%*(k2t zurdrWSnm#0d>7vLtzSF_#HuCD#F`AP)Q!6y`iB8>Z{tI5taOpTJH1aSBA?Zjxj7vu zIu$Ip(x!CoL}1Sr_P0I2uoBg{Z!FEHmFBzEj@ZUJVYdtBPByAkP>H%=gQ0oJ%t2A4_mL2V(!g;Apz^C zk$^%L>(pJ4&38~Fo#8!=H|4>)(=~BDubiD#!Zg%p9HjgKr-v5F`R0&E;5AvbZ9sgU!TooCF;#vD786EW@atr~ni?M+hX;tucx0JhS}^MW+qFxCw3>2x zw6XB^3xe-m<(mT->y4NaeH^KE=SFZDHyQFSlYG zl!Z*+1s@5OvCY*za)9Wm`xtmSr}#@r&M4cMs@aB&5!%2yi@ zsqUGtNFc0s-a%@JFhk62yWQWr_o?YpNW{{>xM`EhEG^Oc-h($B76uyTdTQqL&%WQ; zI4!S6&bL5u9e9xP@@~>0l{dRUbO2T^encF~*XTP#!k4S_hfgl0!R0SX(Zef)s|?s$ zz+KsEH~*t2OT(s;w@jtOMm?L|yapXGghhP%q{JO>4BzX|Y*>?PR6;HhX8c+z7)%-9 z$xzX%u7NXXHcy2c!@M0H6*jHjyK6@*NJ#Bjdq}tw$mVsz(BR;XNOfe#-Zp|QE+bvaSn|$N z>IkyCJU`B&`qy2+t^_7!4wzMh zoh~`lq!3B)Hn7o-*=wcl800XJSF~MYdw-mXQ=;BqC=F3q#`AJj@kt-7@k$^6mK2P5 z3>aqu$k=BVLlQCVIPI0wE^+IpiyoJR_Wl_Eh}d%W zSrN*QK_`M#NcDc@-u0$fhI)zU%WjFe4OU|>WOJ;eqNJQaHJWJWaJ zkq1{4H9Ajer78-Z_VVA>uAW!aSR8P%QtXr(765qef5di3zt@Uwq#dMN9nW(`ulMNC zKFG(+MlCG+8y3l2N!6CPMm+cJo1JE}YS0Tc8dw5x?$q&Nuf*+r)h}qJrI4(y7d(xH z9zDD{Z?lP*>V9XnO4oSwM$JDYgnTR+muS7n%}(dJQoH^%ghYOi!l)ddXvmCa$jxPA zO015-_ zV4I;bbY|?(JN*yn!z8@s8`XOhslb|U|KKbIf8`i$iAtN3-NoeFDtL71{XpzoyXKvR zPD9^pFLF4Dj`8hyJ?UA}M>al?P0|NENI%U)j2Q}p1FycfzG^mo5#IYAp&;EB;bZ(& z6vT0g`1VyOx&hMh`!LZ_nvxtA&SCt#2k*FsY1UQi3asrnB9nOCrSkO*F=qZGmKq!` z-4r}kbQ!EbOf++1l)P!!VVxXdT?eN0ccM}JDn?Alz5Bp?L|O7*14*6#*&=Ji*}9rp zHWg!_($E)TXH_a#F4^76+x#<4&=X+sA&r*B4<6lgwA{$r7=h|VvmG$wOtbSg<*f8B z>dg)A#Ty}gBu2GwWgj<;C&nQK?kOctrvkyorKR?K%{)9lHihG3C>D}Qq}q)Xz@vVg zInxNYta~0&y^A?2fNP7Co=!8L*UMU5hS-Db+M&{q&qV~7x9eonSGv2FrNE#$$m<}e zmyYnjn3?z>^IrDp>A2Q0keZk|aAi|=yqwKYLNro2-F_%*G97WIUD4F!TQdYWpl@&x z0)(agW5r&|V|<9=E7u9w^^a001oa5x2p)x|I5~)3E=4U}j}Y^vlQQi+Vyi3g0m|K! z;Yx{Hi?Q0ZhdcSX9I(!bw;?v$(%#Y$&WKo6xh2|6tbm&#ArU;e=6+7aa?F3W3GlmE+;LhY#gI~SP&iGs*tbo-y<@h+ee1{06fyGaMzhE~pxcAH zS}0Hlnnva6t;UkZfGSe>D36%Q9VWt9&H<6N=T+Zle@#yI?s|bQ^(tU(rrBLA%$=(J z@USfed>c1(Q`lt+C%<+*uP}oL`}IHiZ$3ufvOFyR(Z(X;Byu${=SIMC#}~na{)mUM!$P96J6t$_#5Ijdd!)1#r z7_LA{$2qk}FC-pohA7g-Y-S}^LV+(hsl&_b=we3eJDN#W2uuV zb`nZ}8^oB`kUMW)4QsnFF28IV*}iy8RTh32anFK2*`))aiV(?Fni6RqoHN>=s}}de z4u}Pno-PjY$-53YKylMCML_=9nt_G44=zLde|>+K;wADGDptcw#uc%;l(0jGu2Y!N zK-b3#pGE`@#2J4V?>|SsatX}w^?ls71xQzU#2HWD1RDq4ib-GJqzls{Emocd2y>fmGgHWyHU#CnG zLZi_XwLpZ`iW%8B(!mq^(xgQn#4c}IG)DetQr`6N5y^;-AR~RN^tO~_<`qs&Wzo?69sBXU7L=s4HKYU^7 zX$S(VH8!AsWH!G@FL<2xGLcWTbU5EFk`y*lO;X92#9b?`j4XE~ld0)s440sj8ZR$% zJzltoqoudFle)-1w4LG1?fo$zT^>=@+k7%#z!xIyWN2&})_>{8+nn)yX-3NUyuuXb zE+h|Dvt4Bn&rZ$kk$2@VGZlqeZ4nW^+!Y*m0pdEHpi)QGx8dwEy}-l;#ZFKWPI2Q< z>~m{tE8sr_`#QL^(kY8DY!>I`5yPEdI-RbhyPn3t;ZREFi}SdE?k@n%|Hk4jX|6|w z?B%^W(w0UsdnJq_BQ2#i(g%vxW~`*q3Nh>W!HN-BszmHab>~sYS1Jaz79d$R)5BE~ z#jea+bz2KmlESzvC)V>nK0SO_^O70A!e@xr=K5pIo~o*pab((X-HJ=9n(gmP^yh!x3JRQQo>m$M7R(Kq16xQ*>e-GU1ryXPW-fNJW zDw0Vv5w!zrs9y+@dd7klsfUK`_sX?~dHffqtD zy6mEzC$SM*C0R&;tjgk77Dac=cVlF)e5l>&w!&A`VJ9B8l1Ey_5gxmyh>%_>m}hVJ zT%0z$_Vrj`mVezYD6vyjDQMVvrB58ph?$0lFvx12$euq+qjX7to||e*f|+H+442^u zwr}Y@T{cvJ$^<{`ks!rpc2y$GdeCofynb3&!%ISsQxN2zGgG}|$y)o$ta`m;>U5j1 z4-r}P;IujY10`S@zUgi``Gn>SJnzUeZh3O45^(@ffr?VTS^{vyp5ZX0X_t(rjps zQ&GDrtudwNgBD}_WJCGp#mqT^x_xq3@jWD1E^5Es;Hs&>9a}^=8)=6@_!h145FHV# z+>UeznzH$I5^sX9ew76F_$S|a*Qi1OVTLU_0S;eL zYAX`f01NV~A7SI^d<~aAEK`|@(<<^?*lStLz!xWRofWC4u zcMXdHi^#oHQ6XW!;`^m(bMjK(R)g2;BL#?OGZR|Vg2{iiI18a9Lj>Gb$6;mS8 zVLYPnty{*Vizm?>Vkn0hqwdSmbm z@Pu8JM@Al)pmR~KmI)WuD+F?Tv~_MKX|i;q399f*_p!^1j>sjTA&Uk5?MEmThSsQ0 zjQXozFB|b)vzX@t2*#=}r9V%BJuxop z-T7q{+5W3mMXNRK_is$2uR={j#gLA*asQ!Z&i*9p$*P6PT*`-pi^E>Ji*c$y)gEhA zkmUon`#xJ0eSziZmz8G|1NS)f#FQetSLFI1am~#RpUY_=X6W*k6OA89NVly$9(cT7kaG2)q@u0$Fmhwc zC(92@eEx-zvTGm4HrapPi!Ed2`q6*awfTVM2{K@NUd@ojWk?492-O+q0PK0@2h03g z(dGkH3O;St;D9{ei?t5O$_{KigPEa0N~b>*kIRy={d#=5+ zg;%5xr&wJ5u}2IEo)b}_j(Rm`?{+Qx&x8Q?dez3QMWMLIlu+n$owPu2n3z=hglaT; zebvHm74fO?uE-}Q!FTGbKf;}8zlhv3Vs^fQTy@N9Fo@t^;C?FYEYW^)sJr3Yy3igv zwMYA$!J^&1C{E)jf^1|g#6C0dnZDhaoAL#bj}?3PtpAX3iv5IM;fU|6l7t5A2+O+$ z-$iYk^s$b%6A-JlRlJbo=a3WrR}RO@dgzS|HO+0O1l;ss66L3-Ys^fp?|**F=T0e- zU*ODtp*k0>@#8TQbe%c9X+$Lfq6QP@V7tqDEM041v$FHmsPb-WR$M0&804RMcwhY2 z(s?V=&H6$Sr}^aSPoKSl1{zZ5H#;Uan^CC>*TbxFHW#N+BBQ-a6Mb$j3HXtbz1nV5 z2DM8M>+ttB-7Ju1NdD9hbc?Gqp_m4>1rZMaQ}QCS!z)V9>m?#Stc0e#Hno%6650Ju zY}P-LAn4N5TqE|XS?q{2HQMO+$WCz(H1QTOk^+|e@$%Rtzln-9eSLHhvU}-;j?7j( zJsjc5xca@J#?!}c@=fAmRfaqEVOa+oPX0%%=+UM%^x~A`Ji#IUrb{!Chu-h#275f1 z1$2aMiG2q7C~0zWX){gzWF?@o_1O@gyWTWU6S_6vqBE|cBEw@iQS7Gk$s=LWo5*T= z4AK5g(slDxrTN;uw0NP-wjLg-ETRDAWemysHL!}&UiQVtTkK85!d$Fu*LUP%^u{e4 zA<$z=+F&l{G17s1etfB9&k}2m;aLxQ2S-QMPd=8%tu`*lLZ=JvEfK+@ZpA7rXAB6s zL!@WDK!@V^nA|kAi95lp@D`RV&rdIJ`*Lt(2KJ7cO-GnK(A%qJ5W&~`d{TPR%bz{` zMaEQyXu0DJ(&B6+5MpsUw5W6P1jH=uMEt!Qu9zwH*r5U81#B8xrz<88@>=9-Xii;+ zjfOvTxwZXuWN4c8Ze_N1U|i@{leA}uDV@_s&Cql~+Xa8%YP*i&>6*=qZ8bqU80LE% zn2XUz>#8-o(2R)Zy6W5t-bCXMZI zj*~sQjg<0v!Yx_qe+!pg#v977Qxdq7I8M0HD13oyN7MKo-I4ZG5s0yOM%*2?xQE?z zclE#0etuiod6csBMjD-tPS8M=3)s6vN@gy$@ zijQl#!TaYRMy6)SUH$zgPOFc-?~e2=)+AUiqVHnh13pbZ;=+ z+jm!<2NrjltlFLS;U1g+&u3^(H)r+-DHlEKpNsdrsgcu?G64^AOy!Om87%6^f7xulp#HM%QIufLxafZ?smhx~eY`i{Ux z4nVxmVsCOy%Yws;HCdb7$B2_x5&r3E()CYuql0LF&^gGQ#bT}f2OR3L%|wqHieAvc zG)2{d<%ToSwN*J@1WBt*^^b4fdc3J~Sa9c=hEtE&xH@XKYIDP-iF@CS1o_a@tZ~1X zWr`%s9btQOEz;3-b};`#iZQ=e(>>3;UcQVs zb$ua!GAGN}lN2cXo2RS+(DuFzcdozpl?zzm1nc^7`S?;Fp5!d@P~1v--#^2fy6%F` z@tW1|Wqxv7q-}~2lHFnEvpvjTly8}emho?Sta%l-cr~kl5MyuQ-8B|P>iUH1m}1|j zTCs(rhlBoeys{Rzw5aK746%}SzZ_HU${juq9<~ZH@3=k$`c}pW*UPZx<}JLo{OJ`?6hZ6^RWUaMlujT8=>8uF{ zKJnX;#m96r&U((NWQ1RN;QsDu3JrCgeL7<1=+?8%)MZ*;HS_0j5*xE$@_yhS5qxlT zx<$YQGruEC(+f5(iEy7Ih&CL7o(~ zZX21n-G?fDRHliEGWKEe9Vknt{!`L&mKV*-_r-=8U-dj<_uD5gW+Hi{yppgqa~5mN2DAB`&cJJ%GQJc{R_}KWrZ&*P=^Op^jL|ZR@zzS&t;+33ot{LZ zH1|?#nBG+|4UJ?a|9}`Ty!q~?BXEnGaFNie!+KK6S~4Y`?Ammfy!c*_sou)m>7L%z z<2YuinX>XAx$!x7e(uguX=FXQpWg0$6y|K!ucxIJDXPm=8jO9Z!WZ#5Er5*Pr9t(q z4392H$|2o-+6?4W_f);o`Gl-(amX_m&iCMoxaxDi4CT?q+V963)Y_$j9*==ET_}H< z+}|CJH^4acuW}qhq87)S3D#WygJT|8aYbTtjto<|KG)F*I$zJ3O|Oqhk|E%$50#(u z|G279XHcBv^-%ZQKs|T&u4{SJHXXsm4ZIAsy%p;Ma`hWvj`1fXNHg)q-6oT@I|Rh9 z?}nSs3f>T6pI)uLpL6T+fnf-VbjP?GKEaZikY zXfTR`0W5O!@|cWzf;g*obotCo{9EXySM`H$JZcL(F-KgZ^3)l>XLnWIQ5dbC&Dlb~ zziUdIrO#vmQQg#if*GuZnD{l!%F=roxww-L6PgbkU$(iPd3<$WZ2>)8A%;C;fa%xV zp@hjYIf9}q9UpxD(lxV5+)iI8SWPQzWeBWZGFZt}7T}|E<($2C?>PhCRR^->Fzze* zzDnYAm?tQ9VU6Dx!i1fyD0WE^CGp>lMfWrKX#zdwrV}Jh!DDZUC6wY@40Bc_+E z_oN~vr$e|^lW(^=WXaXR)u^T)swtv>E*{bb6_u>u<77xw$>0N2oW|_ZRf>-rbSqYDY|(j75urtajox_ z6x1$t!js_v-mF_c1UueHD_J*wY~9XnE=Y1syA_i32{K1;$cON6Ok(93*rrct>srmh zY!>V8Gn_qI^?b1$FX$T4=nD(gEax)8UFT)sJlwZyA71G8hQKH7{LX`@5Pw~FQl60bGzlVWT$V@-yb1kuU~y^m-YKmL5mANK92yv42k zeP|L3v&{9?Q_e5fgXQR+>*=*x-LzKZsHu3%vr_-ekoL#)wrAoIAo0-(5fGI^;D^ne)j#M59H+h7Ro*W@fd#Wq zzeO{#n|4*!@lI_vrQN4yy&F*p*>aHrk0;R+KssFcYrZpv`Hi1}AQtNPWDCWX62w$+ z$B4}LvngM@Yf*AylFoZ&%*mF{feq>*C2fifl`%7>Q62hG zroDFMU%i?~35DN2<%3?Whllr@WWt5>1_KnZ;mhw`bm2Re%a&hl4JS4h; z^KI+Ya0heMbAoH~)9xr?9L_8z<%1u|WygE9_EcE$_OcA0#LxJ)*X19k6ex&T0SodG zY&JR75Dh6>@;;}|dS32QXGJjopsy?#;w)m9D5e})agApIt~`$PhLg_sDN=Zm!Q_g2 z*sIzMInq8q8Y0F#xTl6vbg;=ERSk!OkZNZNkc?1-nPAI#5}bCL-Z?z$ITNg>4DxOt z(m6x~6B&<3WI6{d7EtbrQTY5X-rh4R%4TUBMadvR0TD@(L86j{0hKIKaz;RcA~3`O zMskvjA~^>IlpKegGYmNoFa*gAnIZGt`0Tyk{jP7Fv)1`@?mw_5^mJEOS5;S6U)N`K zzMOU5A~RNd|BWX}r2ES;#|;)lAr|i%!ZVGZHzRTQk_hMha>9#yTR8^HgkTf8lZY4#f}HY#JJ(x)!byZ>o+2OSV8x?cp&l;*F- zyb2b>0!p&DL4m|`A(;xMHD7ch@d!F8hidv%4DLV#$+EjW7tPVW7qF(a$Z|ZG4PU7N zQMM4D=*d`Zv!~-rvCAT(m^@aQ;N6E`YD`@)Pm_tXfzQG5oaQpNa z$Il3iPp*N!QT`ghMIFG%VS{$6-{oIAZg&)UfP@HYSo_sCQ=%^%n_jj4o+}#2Q!?gW zyJ2>+r++m+iH*wghOlk9I%ZGL5wUi(bK!H|>h8_G`t3v;vQab}4B>d_aV*nvOck2M9NeyiEDc>$NkiU*7yzBie6nMEyK zF3~XBOgjh1MTJ#<$AsuW07gOTt3Qbx5LfaMyGnvI&(gBw+KYqG{)U~IkI$kaIEI6L zFWk%z_Fpa1VpG~9BxZ1@pB@Zbnb7F+JWuRrT#}RIgobbLfBu-rE6;7J=^yQ z^$btr<)`K_P|G`d#E3r|J^@4=(0>CEp_OmlCqnhn6PXg&pVd55MelB&GEx|HS&RtrwF;e~ zXEEhl;__-K`PovP(b7yZ3aL7jrbp|Dr2D!BDA-(PkLN4HtS512s0(^au+P(jHSOlB zsOw95w&TuK#-&!k*81PtT0r_~X-=m7>WocjUue;f!277iZx8D3g_*HEx^5eZzcz!T zFURlDX(jtloy8m4rmo+8y=P~x+X%l<5>k&!xPw>&VqtokVu9Bt?ERE)taj689Q!mS z&`-5aEay++6gnH!31Pc$|3)Sp97uS0UYMmI<=K#urJV1D8Z-_Q(l&lbgR*-opJ6TC zkg+J_DQFqdtugxKx$GicD8h>Jg!=g>4}Om6Q*sHfatiHd-`M!pd( zb^qoxi(nHLO+5d&@JB~Gj!>Cg%68qDC>AV98izIA58Mh-gz zDecN!R*z2liW}*=nx(-8{4=V>CMZ6zaA^qM;Bn?B8oaFG);gofoMlAL+s2fYja3yL zT-0w8<&=eOV~4?=VHy-pA7&+l9wz5)(&4ar2jXZ|y?nF_EQx19oX+ORm-m^;=lU(HQ^Wn%GUVJSdV2FF)x&#wow7%HyO3$$WF3)1f@RH=rGNJP{TgwdP z_)E~s$l{tx*0=86dc9)No2qBvodD`~>C{;{k8hX|ZpoI6t~5vZ(`KXYz8`FmK4wgb zD|Um)ix&Z#5!7NmFIr$HLB4f~OHPXuB}5aY)~4;kuIOk}F`tTw1A7{(FIARIcb<$* zQyLFPl9KRjM8ZA-H`bBas-OPw7EU7?&)#=G6Fdrsp;pBPY{%gbO*WeEEwNJ7GA!uR z!ivQNO1+Sr&lT1kFi@V9zg<0g2TB3!bo%=Ghz5;*)_2U1@hDNfdR4MCOV1UL2r>>NTlhtK(F9)ru$BY zb_|dqOV8&*x{|mk%c-a^PS$-BV#NJ#%5|wPb8C|~%np@tk#=?#9bZ&7-%VxD%u0aQ zYF7#A-iX*G`6X2O{V8$}BC>G(-GdWJYdj^M;TgbMXCTCA+>fPeNC=A=YrPz%+g_<~ z;`spT@bJ-fl7APkuW~`Mf4$F5ro5DF-#DkK(w9^z0XA{5R&NU*ui)T*=qm}rR-E!7 z*Yi0pt>kMnq2!;O-u3xTL0d4s=H39RH3NEgLiUBQbIi^Q$3*6ZtS9u@oz(mo2uY&l zSdt0aRupr=6a;w{kET6!**Ck5pQTdn$CFq7JG$UFi}kJJU(}XYS2_XvSc=&l=_wUm ztu|H*uR)m$S(ykhk`fDP0(6_^fE3rQVP|;*??3yFF^Eg=`5=qoIq7J7VS|}c9@c`< zOHdl2#+#-N?hJYYWcG#{(oP5`>EkIizBdDLaYLzU#!KI%jz0wC@_idjelG?^cGWpY zS5y8qfegr^gFtJ!R5w(3=D8fu2pOFItv!NX zx4M<%%L$9Sf2e5Q0aw0!D94B6MI zY-4KKsD2C>3qD2oS-sSW!TIUP2i&sTbh_91ZW`2S3G7mXEgc$!3uCBml9xFLBZQ(TiMnp#E!8znr!YkJ>|a$9ml zN)-JtMWXb-_~UbaKD{4BQZQ_Rf5H`Vy)<52d#&AxWk=KDF|;6VYiPFpTqHFCBZ!sm zrS2C+>E?6T+%uIHA>_8C(qepU!w2K*zYBCK;SMsgf^PVMA^7R7OF=eX{M|OGt2cu< z16ZlLl9*FUMFt%#E5({UD?oj|b>ve%1-eszxOxVZ7maHhUS6#yQQP+!P`5ob--k8R z`a%SbJ0C!#bI?XUAszUx@Hd^szr)i_X<(cg(QY#d#4>oCwCe=0_sPw)GChK|t?&qs zmV@mx`p>6dk*p89yP1g~U42D{9^*vXX}JwMh@{VaCVrv$hvs({FzQ#Ss!C(N6^PXP zST7g(lxC~H7Bl4q zLblild}g#@d=bLsrfm%HXHF(xR0kcr>0MKvA?fJcA7Z8`Ojo>TiaxdUmnk;HL&V!~ z;GzgPY97ce9t@j=Gwu=y_eE0(Q%}OP^JB_>8nm{1$1u#%yc(`Qyv=a~a8((&gKY=Y za&Lf#0JclyKl)Y0+k?=G@YzSI{^egvL!sPBlOnR87l8EC{vQ+gXvynuh{XQ6 z<(;1P1Pi~(rCi$s4h{`@qCrZrd1-#7IXb6agNPed)Va*`4g3`eD`Pc_Wpw0hO4$Rv z4X;>AL)QUIPs?&FKNsJAnnXlt1gI-P9wLl)S8DbvfsFR^i`ql@yWB^*Yc1A}`ww+H z-bTEZDyXhwVp5gK!`Zt3`6EoYSkL)wa|*W~^c*hs(d9{%#~t`1UQmvEzIDI_&F}~# zQSgTcBGcDnMY;qBPqSzGfcs#p`~>)(-+BoMfzyt zE}lGPyze=nQ|qQ%CItBmc3cU;H{G*ytQxw;f{_K$AMoGXRorHIVxvHiLF{cFb1$be z(bmmmcW|7tC64Jv7^Q#_tePnoNzcBsP)qI|;~|!(sOy3j@ab}_=6YSYxl5;CF6Bye z6*v8Xiv&D)S9BqbLDbtt_hR&zC@8@kui64BU>1mfP2=!*ix#{f}qtBM5j)@`( zHLzn&cDp^hApci-C?EIa{*y8cRw1RDo*x%tQ*?*jWSa8CxIEm_Q=SZK&)9K5`xpS@6^(bv@}hfsqaKUa5)P1I5e(U%^2T3d}odE($%Hyr^*%wru<={ z;Rl@Kft`}tA+PUkGpcHp_yzYq&PSM%3N8`KF7w3C(Il17$g}L=W)jZ{o(Ku-73~rp zUU?!MIyoL+L`};ucy_Ha*6cD=U{%ruEWTs8$E^TPz!8T|?BB~#Xu(B(ZRoF`b!7ba{-CT0+h`J6 z?$zh(+dh@R9#$Gs{KHF|0c!DFhkH4CG#;|={zG63cJsS{r5d^8 zzPyDr^l2kQbnR@PacF_8#I$5@Ukx@nLHSk3GKVdl3hO=K;^$xH`{!hK+1wI%e)7HG zRWZ&xu`XWiH9$FYvAq!=zRCSYt`k2S>;Cy1&V7sU^XL&4>PLE2?#ecU>YIb29==Dh zI+_*L)xje}r0v=jT;b zRchZoFHUX%imvg~({hGPb`r_+cAchu?zzRiMJCe>4zwhyU86F66fUlF<8T*a4_D}K zt53kZmCX&X3`7hX@%(HE(ixeY0oGeSDjy`2nJzWYom)Jvp66KFnf??uZ?o)AB8iV_ zJAFXWm<}ML;$k5G0yo`4HyJaEv+(8{)HuPLrVcGA642gA9;;NS=>`@eQK?htFqQtY z;>Qmb3=Hpg|KKj(Mf1KzqLgPZfOJK!qw1{S{O7H?JNSrLo54ge@0)APOo6envHk?n zy2eI^|MfMXR@c_*oFA;ynnn$~xmNYw1rThs09E}51?m=j3G)$*(`xso*=V}a{lOxi`UUyCl2w2+Su5P-c0#@mW!er*K)D1j_-=39aU5gVg`zo z>s)t@>)ked{c)k<9h$jKb~E)B*M5Q2!gjw33wKaKRiL_Lp&F~fdG|v~w~z**)!DvD z1ft${_9QUu;TF@8Lna$=y?f^JWJm1C76<4Y{pWv4oDFPJXV-xJr?}yI^%@g*dkdG& zi_6&@jRH{`dHk3-JzaBP+xRkk*=!_SN`*bZ5cSQY&SNHVZKmG{E%A=Ox9rB=!u^aT z-ozsQGs1NZ6cLfw{`#V?xRyu1fXIHnOi=&qEZWpnOO<%ubN7~HqWa`uQ7*j%yXkT# z{pcV-1O8=xYG~*b$rL3=?=WyIyruBcES-j1o5{^!m2LDXf&`e*TU=R;=6A1=Do9i* zOs1JF-8C+i{MY$WbZ$`*+-&`Fe`0o5#`ofYg41?&9+!^TUE=I>p3yj^kkjNGdRocu z>&35eo2-hNVAm`*EQVl4`@wqhjf;~Vovgwl-gsjNWiOUSRCf35 zDlhExz_d;7*L2^Pui2iZLfKg21PIUdQMt&+*~w6D;6%t^Hc_l`D(5=P^KzQ>c%Dko zW80n5X!FNb4XrtlFV#w(^aGZ`Z)TJ6BUSOM6y@s;`|LHv5ZRb_fpY^pa+%CuD z^4ajm<u*B6* z+M=)>>B1@7gBfbO{f^#qCk;n$=8Oq}5Z}7mhG2Phq=elimiK&g&wEFD8MoCU^7*x$ zJ3eW`c{~y;YCTQd+LWjN0eaorMK6)U?B^Q!L10yrY(>vUFle2VizZqjHhA{Eva)h_ zX4QsJaqGz?rabqZsJoEyoY@sm5{Yk9aEpm;Q4ZfaVu@qo4TjkHB@)a7Xx(p)dPwWr zh|dW1PV|HZ5_My-{cb$3w9csZtV*n*d7--fRsJoo*{v!)D!@bFHk%JNu9|wBKaT)P z8@UM^vc=~fm2O1LQFwyy=mgEm$HaBz`xbf%(Ijx+yb&4Q7rIu9!nvM#OIcfXo=H2j;^mv7V|$5lvd^3Ash7?g&t-|iO(z6$tGpa zdSj}qU%S#P62H@-fEZc9`6OSzE6=vp#o0k4SGgLy_e$!)aepbcd1oXbs$(r)W^nPZ zUscC(HESeIn=B{4wF^%a?0IfbQ2O;I@L%|~+iu`I^cC~1b38Gg@8VF^!Ag+;IA$pX zgWqz|eOoUWZf~B07P_s)4F=yUr=tCs^Z+K7+V|LY{LrH~iC)6&yYjCA5BcY|=SsWU zCWZjqGMdg{VR@<&TD|c8>YT{+qm2Mh?NRUMX437X|M&|^2Y}O!#Lq+LCfyVh>Fk$m zLd(s&;IGS;tfvLFylNQZp2Z{eFJ3F`J5Xl9K{ zB-_`O?+G%=MeM5?1a2~P&7nbgXP3=$Ab=G5q!aMYlW<}pRza{gszayNhTN&=kIpp9 zLWta6XonNOo##$i!!^)}Isb!&n~mMKxF@!=RnY85$$BvBQu^fvyjC5mu*wtc;&ln%f#39sJS& zxYP7uZ23e{3h@-&HEj*{H@-TOI!}j|V>OFmLLW9^8Y4@`uw54EYJFHP%l1BI(3Xk0 z5D+mapARibryAYshoKYWql_qSV51{j}7paAR1#iuiLrfOq_TNEaPbMZL zuR6{!4>l6cGTY=-(q3qtnu_bwg;GhHsxRU+UA1{;CP*UC?}jT6W+B^`M{A9mr$3x) zFRz2?xIM({4-hpKo)Q2PkejZAA&=*4(gjO)Rtd$+@zXIKZ?pSh$DBz=gWhL0ffi_m z^PSMOeclF#ORvjBz<)+_`uq(R*%3}dHMy(}N4B*Qx~}w+UW}|&gAC>$q!hXGmp>+L zNt)Mwv5}Ga(;^kTJh?C6DO(H_B3?i*a~QPG_BUR0Xlae_caDz>G7Ms1-XdJ8!PYXI zRORMIc`b&jF#jzDM{??usdAIIb-BCo2vJNQU(XZXamIh15!-C=Zf`b=1 z((At(!}w=d(;Be<-y383zk5dfzk3D&0V8<1=miKEA`VEH;1)RjNE{^MrPW(CXv$ec^7vLV~#{By`ESGDNH*-~<9Jti_go)=W*fQRgTRd)Ab2-Q`?d`|~_HB3|-3tySZ*^NBa z>0d=cyq{2{aujKWf4;c5 zPC&uvRjyqMq7*GRT4Lww!8aQf3%Ss%;(V1`4FqJ*S5nMDR}w)juHK<1;0@btiHnPi zc3NgtQQ6JQDtm5NV%}90-+15>82(7~oQ~s`%`A!TJsfd1cN3LwNQmyh)d{$FtE?{< z=dm%Go4t-o*^2Wf7mlhRCZ01_jTiJ!{jnziJf*N%M}Xg?jb-T|S?a z`uN$$ez;Mc(_YuuI63N88329u@ils_rFBffHog29y;pI5ey&&@**>}u5uuzJ&W@iL8SWx?O>)-uvbb<6d)(^Tu;7Gwou% z$(fl@c?AWIi>U!jkvQa5xQwEEggtP#LJXj#j{L%%Nb zmMj))QMpLQ1#w3!hxMaGC!0x&#VYuq?!BnTl9Hg~*%kk~p#3%8?gS9T>*ObQwbP-} zf-?jHP_H5ytmt19>o+`%Y40FzLSC1gJ3L=iiKjOzA2^X?ZmNHGbv6(dRV*d$WB^=Zd(%!EL#Y2G_K$D?%c8z6Z>8)MAlYVKCBEmM`K<1{J zR@!^R%@b#fP^~G--)Dcgixuq*h*z#Q@3hIdbZl__oe+S3q{Rpzb{Zo26kI?=%`xY7 zawbiNaqI*~U{|F!frm%mTfx)9NP;2-qUV$ut9GYCl+N~;cD?pWW53~(TTmqA)qn18;+<=4a58F_-KD7dAB}__%!BzLP|i`vT^0OFcXca z<2@PcHm9qVwWgx{{AYKDGTJHwW$6h}(S>t?9bts?YReMI&Dm81s2+`6D!o$2N(VPX z%@u7Piwp0CGheM9&=YUyWQTr%Oh-phjz==yiKVfJi>4c6e^o_AKi0d?yY9>R$w^7F zNdR`jO!M`wJymd&n!lyLJQ2nG1#;hS^u~3jdMbElvd`p~ZGIRYs>TA+n7(hYtHDpq z-5isWgPflkK3@%rYSXxJ-f*%YqF}}FyXNIL*?Zw#>-5G+PVpQc^$!t^JeU&r=Lj>o z#F$-6-umZvxfllHkH_c7)W$bgxWqE&Qo6-OMN|Ou+tuUA=inC5HI7fUk#7So8Fv1{ z*S_Fys2>6JaM2N+H4+IrGX380#Y!w0waoNdLcfBuFUZKxhXIU&vo(hRS6oj1C{yaQ zu>phXY0=8rb_i1j677<8bKP_!i6cx5%RBWmH!y1_KzZvP&)g&(l6h?jtprgAyUWD| zcurj(_U}FmM35mC=0t)XS5Ho)45-M0cQ-dY90m+LQ_pYU7otVoBF-+5x3=gRvE_5kso4n$I3>Ct zRSM6a!O`B^IFgS+c1XXv$$}h0$al4#N*&+u55mdR<7W3?88n(zQn(u(*EBY^h=`+? zev37#%O#-dFVElsogrzV{j83@1Xo&)N)G@>m`*>b#?N7WSW}VXp#dgUt*_K~NZ?x! zR}w?8-0Ox)qQ#omEW*YDf`;^N#r(v!@%uMdH;v|5u)Z=6qle4U8%AvpJ3$U-Gso1f zggF^V9-VJ~Vl0-zrZlYlG(^N3s4{6Ri1GJ1ii}D;IPrdJu(dyGb8_mHuW4-r<$PV2 z2(SB-YWz7vZ2INBUnXv6E_47=CC2scy;h=att-Kd~IE zb)+eEx#w#WKQZT%)su(N^^t6wF98QvoBVqB>|ij#%o5_!1U{A6%id+`Xt)EOxre^H zA$YJytn4RY_THkg*m*87*Ye1@RCw!Qw2Mt>^=aZ8Pjkf>wIR57TvfG z1+z}!yrj@xE^(Tqn*>?FSVYEL8jP}o^5YSE{63OFKR<6zMn2DrAmyZ z^1o^Q`2-dmq3!~RqiiywZQYj4ZT;!R&D z`LQOGpBT-DM@PSMmYkyxK#LM=H!zz7bKKlN_rs25<{lShdGvkqtz6rZ;^=Q|u;8-;GB#xk6=8pRPjQ^Dupjrxns-p$m)KNbpo}A| zuT$B8kplA7EJ}oW0$4@udi$9NbfReK6D^E_!nH+zqpbS+OJiR?LwHz}JXlrnf14X7AldtArrzZUHfZ>pw933ob;_>ke21PYyjm*QX~=v2 z@}4YTW61NDEvdw-n3RZ~?V7{sJ3kq@q&5fn2qgTBh{nW}tvgg&QW<$|sym&EIAHvO zY5Fx0+wd7J@X~ zERQ}_H2NNk$Do&C#U>@T3#Er!1Smz70_oDx651ZgMSK(&<7PzFMduw=@R}3$l?Ng+ zB$EVc2o4UnyZb!Sq6|~X{QLppYdT!MX`ptXzGl%}mQGXh2u^rNgOAz>2CM`Fz)F}V ze*4$!U7Jxm!JkighaX5vr#>_hH8QS8Ic9_dUh@+mX~4^h!TjpBU-(2;vOnVLIt4aW1k@i#$r#LQlh-VV+ zbshJl@e0>4;(3LD?~ncy+B!s#`1-c8!S0w$#)G9uzqk}~}VEYsM_IG$wf=J*Tqo3IL z$AqzEBix_;b%nLHopptMam516U&V-M<~16X!66QVaJC2{&JRt^I8pJnk%vn^2Y$h4dR%@J*@Clj|)&yJSCga;_7Izha?%oua8X=Ap>~Hb%&2P1)qkrYDd(vc-w3}L8n=kuck#F6tAkKY34!zDIpE4SbQNet3 zD%Q`*lI+?5MxPH+n1sY9a=zNT?3XR3Z4nMbx`N-YGGjch%7s4BylA0)0aL(Y{xDfe z>yAFL(flI#R{Vyl0*HN=U-m%>P-;DMebql#c*N`2U{DtIukTRWp8+;h%Mri2n|oXX zhKsB9yOLl$2RuZknD~c}A77`~`c#KVh*$Wl`ql-a)n3LfGuP4&N_>{|KM`>#Aqfax0k{=xZFlZTxU@7>G^Tu&ETXfZK~6vD z0b5DEsCNLu@b=i{`#`+03{kb%Yqq^%5Z80F+ln=^7I#Knvz&BEys}lK6|06+NxcU| z^7G#!`9~rbcF0eoRs)3v1!ci%bY$)WctKSR0P?9_bbZ3xB|}W2^sAP6$Pb{%H3F z5qbnM^77zb5M&}%CZSblRAGb!D6{)+O~9J4GZays+Ao)q1~1gvH`%O8c~VJm=Q;FB zO*!Bj%{UnBN8X(vs>1{OqS-`CW&>mnH_i@hrl^O&7CTiq%{ikyG31bV0`~I!ONFN}K zZau+Ovz@&?!!Paz< z_o7n2Jd3m)%20N!KiXuse^#@dhEz$WP09`C=7C|ZY(VFpOt3M*ATBQZtm>^n%cQK^ z5_D71848L`{L-?bM=0L~R)Vb*oGPq(+~biyocQU&hU7(eLr%8s*({q&@K9fIj>RoV zAl*wSwG#I;6DO~4?}x|arEp$U-C6Pz%P4{8xM|9Eq}%Q34-f1;Xk~2yDgS#&p8pI< z7F+&tUqFN`yJ==OfEpt!ahHU2uno(V{_8dPi9<~9ekGfF-G@_uP8cRR`7zw@dGa$2 z$I!W+ukrD__|wiFzFD*cDCF>Rmu4_%=TWTDveUbKgW?y~hTt{ZKkj5Ir>ljtor^<@ zDFL7}*SlQEX?I}3TS^$4Khs(+vEDC}x8f2LcN#GQH)*_GpMjOXa+UiC1Zi?DdBkcSziGfiJ4^r7YEi^UC&ee4ihn|?iNa3V`3w_cjgZi zR7n2lvm?W2`%$TNC$L6gkxKlG!cbc`$!2Edw+_$d+H5b7%g@*|LM1Pr=lNDBi>A$D z@U;ieN-zO?ZdSt=XpL?nVP@wdx!}sJ2+Z%+1q={8*eN)`-p)?w4zO$Jatu@@rhCd& zz<}APJk_d~9(%QLgT6t-1GkU)0_k5CcO7o*&^LElorR7I@IHPaYkSH^)j|v3$lO1d zo0T|}o%P-VpWatfH`&xH3!i;>>Q_xZps>m*;Qy#e6^VeSrVF6e5UJlCm+X#W)FTIor{6;KHf>+FUq4E=p zW%H-m=SSbvdPy>~g0u1yC<0bZNfjIj^2VPmDk1cLs-__+9QM$8iUUmqMW)a$|SPvyb9u5jR*>gv66?DO=gi~fT|K34Zc za@&HhOpmkSDEOEJw0QH5`nEp3DyE4z-Xrym)zvft+sg_}`@n_A%tzvv2Hs1JT z=j}H!f7X5^XVYbJ(w=@Ydz}0DW`;A+T8u|1Ia6+h0&;ykxog@Ysb^w4661Z^;@`Ay zxyZZrJ(2v8dlX_Tks{$<(YmS2<1eTOh+B?Se3V&qpxdA}9W{pRU-kQ3&QZKoO0c@% zz9!L*#*3b@RkdyeHLQQU9<_?HT`|xI8yI4`t}lK3+m;&j@`ai3z3a6A#+bWI+h5z@ zWcFR*b1vssMt}Ea3@umF!9pUpyUikQ{L$IJoU8$-yXoE>W@$~-htvpgZI3H}`d$+e zzF=s}#2+kUOD<<$J%fEy#3by$0O#%S!q?}0e`=)(rcaDQcwc?QM2<8NUtRP3&8$Qt zueYVr&xf4nL!8 z*(V-}*ZEy^e_ok+k+$6kfT;@X7}5W;LEvBnGHYU+UsO^h%IoT8=^p%TH>&w5={IbB!ULI-- zAJC5Z(x2inyEv*me(&|Xt@Vz~mf~vR$8}%j0biR!VLC|j-ivgbw|%fvJqJ?d zAvcpK9FG9a%fa;g>~EG~awn)Uq2noHT>~En5q&)EHdmDV3rT7;HpfYVs_BC;0Je)T zo5GogeXBi?nH+I{jY8%jDR++?F$4?!xSH4TEe+Ki9|+M>vcf_CRwYW1WbZzL{DK?q zmklFiy?;8EIs%sx){l;j3Q1&lHQ1Wk(H8f8r18(>|7)X;_qFIHS&k%BJh--`Ago1@ z?XfNCgPh5mlVxK4p^}D%vXR)dOvjni-+fQ(qnb*yM(A4G>!sv@bH4N_FYEJcV8{kB zm!j`%GK&H~S{{&{_Q|z5f8=8)%vGY+v;iIOll0F5OQvXtBe5YhD_HOpcL3hgxc9=b`l~myP<%kNI z+9V=O4qg`rtTjxf&MkbIdAih!LYx;8=Tr9XQt5r{%SZJC;TvK$JLSDWxHwRL*87Ac zV~20_+T8|YAO4f)ivCwFNc!Bj-ISB~b(!?HN=OB4RWX$^am?=X@xCl|@NZbW#V0w! z*(j^;ufv#0^Epg{p4;SMOQ9f3&!RQ9dyCVaM`G=evnpi-ux@{X+~rGRgDpEMVK}BY zkt51~Q?+k=iViK|gh}RI9vny-2lokUc@m=52xf-w6f;fP>(JN=++nZ$7-d`^41dP% z#AeuEzofE^p#?(JA|-s;V54yM#Ro>-V=Z;0?ki8u&8IJt7K{40(*#Hu8jIn1_fpir zU8}*VHEggO2h+p|Hw9F7`LAUtgWW@M9Fn?@69#5j7@KMuKq{6|32{yk$o&1g4_=d- z+jS%-CAIvkfV)rIN=Iw*`IoRtCgg!_PFtS^tt=$zD~XC#;$wD?;;9D*N)tNJXNg`gk$v{@ z6Dx0h+xhUrB#de3yHpFU*qwxXkJq9SXTK;{ti8Ej2x+u>QKgka5$T)BM^-c&88)Cc zwZD3&b0v!^*kM{LMe;;uh>UZPIzqN(uAIO2d`O4*>xDfD1C``K_p8{|628(F>U(*= z&QY6hjGs{Oe!>9q#6r6Cc1G_qkx%{OxgTy9uPKzyv9y4$*4NiRpXPN}t**wkCpnsvT{wFV zJh!PigLofbCRZg2m>!*eaBZEQJxRDuNG)x3y>=e?gyY`h4k55z=?>u+I+&$g2+FXR zy?3n%*zJFobO7msIFiZ?yD@!$XP@|)=ObepV4MH_2}6$hI@S`Iv;<3H>?=#yEDPP6V7-km9)#l<9e{*YfYZ!yA-CS!~Z*sqqE z`KxV4U~)U~d09aK2c%z`OekpgzV~oAtJbIk+ks@Ch2+L@{Zi@yA94YbemEhUtOON`gQ3jKmH13o ziQh^&?GD*TW``$IKhXgBZTlENM7kg--rXV-*7ysm{MIqY?FqM@xtQwl1dR8o!G6%< zxi&oQ5HsPFBc>>tqJ)i=tA}s?oM8S=d+>ODG%&~siTHLO@m0{Csc#>F!=hWWungKk zI2)RjYWDbYtv2as1|#IS6lyl2{kg%xq+|q zlIq1Y42XoMij1BZ)_!c`=YTm~I>i?~{+|`vE*~iSutduge7X9OI^Y~pjEu~&v5LcQz}U&F*GI*xaZ7~V8EJ@c_aydc_}tU{5-NOKXN}}NtO8j_ zr$-q`W8+DFc0aL8thD0#MJLfw#qd59`t-W3tBQl+g|Drf)0l$Rp9A3A8 zBy|bSdzwFhuDfeqNKiAM=8Ju7Sh*^zrGt|9QFuS|tK%g{u-O$VsDryImZQk3i$yrS z+J)Y?WPieN4Pl1m3RA>tY04~qUZM>gycZ=TBslw|@nxx6#r(YSvd>JiP^5aw{T5oe z20NA?f2??oedRv4FVq9fdlYhCb9f?Y{*r^Vj3 zu8us5$CL=$NXc+W5dwCcm&eSN-5aws!}L^0!n&@7Jw4vvUh>j8bVn4j|7P}1Zd?C; zpl#*{FAb+K5Y~++8ADANu$}#3K@nfP@WOllvG((N*Jk&Fmgd){vq2>IT>zP~K%?!a zj|bJMVq&}VP@lS+gg#Cnv-huq6t~AO-&X!Iv5+ERkw1q3c_m&^gpYmpfa)_@b$&wg zGS}Y}@82qn)4e8A(sz{F5$w6skj5%%2Q`;rA-^1BRoZ`yv$eqp%WlnGdnzSKl`xZh z-5fo^$}++ZlhTM>U{VFM-MAu{w81X1D5|=Tz#0?vu1=+JXn3Am&=sa%EQA+}V7?3b zaFt$$gcp8sGjPspnZqv`6r%2{P2;o%QWu@|S3Ow2LnF@tV0h9?^=*a~v*4#Yg^0V$ zd>^!Nc91~+y4`~MRmZU6q}}y(EP4vp#02IDQeqf1OdXJ@ib&=2w_IN=!F5y_!C$-l zVpKo?u#P5lJv_ds3`Ph=sby(u729r3hlsLrvto<3M z7}065f)nyz>Mt_wl{p>ina2=fpIKg~B^5IW4vrFabZZM*$~z@9UMoto(b7)|BRKA# zb2(uz^VBPTP$oD4`i7gtA-gPl_p$9q^#s0lkJ+1{h`2Fq$YxU;Bg`Cfhf_(1>a<7q zZGt<(;pc9F%a!}y=F5ow{AE87L4&zp1tZAK|Vfi$Q*MGBYOL>ani(Zez(G8p%{O@LHNO zaC~G;iKp74e^>rS_;%OzcU$rL%Odu}P3?$4TA|;1Bkw>wuu%jPSvljYWejjSpKAq2{s!+R@+8^&pfEJCM~<)zSIsv zEQ-7rLkflg)@VNLbv@?Sr*2#|F8dyqfk0XUn+3!HLCvJMiO^U+3dVV{?kD!+qx_~_ z+C@QNVr0jqgs|84n0tR{s%g&y;=WHuyp~)EB2El6ieTrXwbA@FJ4DqQ@+;ZsDvznv z`}SZzu|MWYBv4FLcR!h`9ymCpH!k&p!FyKZ&95Z`fvq_IzLh6M67W%mRK$_;0VTBx zMJMkm`MA3hKI6qHhtu@o`2YftX@MnAcLl^7Aj3K3B2iASBVS+TT z1KVo*c&80W3H;k=-@Tizbso(XE}3Yb77m<1@3+flxGdR_VHoTLkIzjMrM^%9uoSXw z)s|!a=*ukc~7UlBAJEG=?2*C$#Vd{f~j7C_yOx%V<9_`jEY>ZeU}<)S>+Dlh2j))Qvk@K_;fyA4rT8Hj-CD4hI`4a-BZYeGZm9OlcHJEju zIFpX6;SFF8a#(-$r?3^@eOje6;nF(snA-PQ7+dOcD2^hyt3Oo})vhZB-Nv0djD)u; z#I&x4ERW=I7+7zk2v9IE4vDe-KG*U6a6A;(pWeR3hw>|5{YBuf^Xom0LB@}8r}0jx zb%(!`U@RCR89x2U;exG+ar#KRsM-c|i_uF`FDjf>hkFy9ZQqKQy*x{>x`OepJ(Vm# z=qW(%ckz2SQjj>&MrcN)U)K6?APOq@dU4Ti8K8khmXLcZJ3b*y#$N@5b7}WD(qK68 z`F?GLSdb zEfO%2zxsjcfBad-&rj6kAF*O65nD7`_ZtN?AY+Wlk3!c5E#s%299zFGcAZ7KKUmF~ z4H{PZu67c*ga6%x`4|15ZFY>9^V)YdL$wKoLYg!-zPjL5!mFgPpz;!al?Xho1Ey;I zVK6}?AG_a0-EYqP*~mFHqUi<+`MmV%>PV}c530}kxM{zEj9>YRDbPbA!M>xDBAx5cCJIXfYRe7ao>cTHbztNE3bPqVH zG=H3&lpjGS=}G)`4mVQ$I%o<67#*39ejYjE+0>buJ3^ftT28u3ZOmCkMR#iX4jN6R z{h2+Ix#{jB7~Ih;eyRyV_IcQl?=gQq0wotrW$s-P55ooN@{K=7m+P7R+zOKP)y>P*%wBkMNTHwE`G;S|%IiIqq3 zMzMR_0^C&H0fXcf!E@}>(EMI@|HKluW#FvTGyz3KtcMUOd2da?!y-TZGiyhv;L*2Y zsjrXu(JL-Op^G}dBGz0@+Mr00X7KNHKpM(tN}6=$yK`@)%!tMd)*}~ zV~K>Ov2Yl&krkROjQ7db+Jk@052|X~#O^9pZhl54XaZSwsHw2lmk&9I)~U zJHSWv%mXF72?w6te!_--TMYVMgA0!1Nlul`t zZje$yI;6X#OGaww4rv9E1`!15hJm5GyM&>;hGuBKgZJL|`=4hX7&x)_S$nUw*RJ0( zCN4%Yg0hzW=A{oW`8aYCeT7g0*hLN75}&Q`)`EE6C9atCT&YKAd0>vWNKO)cZCL3D zpTz&1%tQTsJg4otx~ki(R{wqw6~sJZ$!)!O{z>4}T_?jzUl8tjHx|QvPb(1>2QkE|WBM~gkwF9o5_Zp!_jbV4 zK11#Aaq9F6(ej-T-kV^kRFa61&yv#SJK8YOs=IEh^6Qm-+aFJn3Mb@2Dvr-r)efYy zl(Bw{v|g*Jau_$Scd6<*114Co0a~;DQP_L0>h_T@{K(WMR|OyuBNGm#zr$>z@d1Diwnl#c{UTOZ}an^ zIyyT(y{F4M0-#W07G7iRuQm%aJujGNF;@uZT83F`KliWxd)WvaZfZIM9-b$6Gw~+^U?7~srVrJV1*pR%zZE1)w(v`;#vWX~1_ z0*tx#O8ILtzT-!wgmI0ASA zhGX;2;tARLxhFj$wg2?=xuz-wuc3jzBY$=}Xr;edxTrR`2m$88RJ+>mpvV}-z8lUg zv8AIkn0H)J7cP$rMOzc22uS^CKg_-F_b!5oJ@uu-L~tlvi4WT}Kbrms+gOzPHsev> zENr5HGj7t}pKoanx;y3*{uLynl7jj2_L}L?E7^G*k?aBt1fxD3pmKBp$`X&h%xc*$ zgRZU%UwXSpf=Xob!bS>R8-(#bx;^>F_m@>fiYWUt`6pjZZO|mw$+y1@pmvuY0X;H@ z)-k>)$!CblI}BEc-)oziXnOVV)?hDEgD@amJZa_x2Y=d5Kw5kQ_KWepjM@{dy+AXc zL$97`BG}jB;peYc5t?(>vqKdnZW~OGA7;#>1$-}5v>I->StM31s3-y)lcIk}gc8VM zemfL6;b+V6Xf^D(uTV^G#1yX>)iJ-*C4w~)x$nrW8zukBLmPXW^s3zH_B)HfN6qPp z6w{m^hfO|@zQd0jg3Guhp|CqWWaFvn=xL4PbQ8M@t*ZX zz~V@sq&MUh%n*9U5!5%KmKZn2G~0&*6V&#tRCM;ZGNiYcr^QfQ`#*JyYq=`Bwi*oE>zKWrm$tY&xuq%>#5=y5E)K5fi5pdLRdn5N5tZNT3%Z7Z-o|Ca zAB%2rTubxk!T66hR*eXh=>eO&e4qJjUA3^5Nm2LJEA}&6C+=mR5j3zR5u<%rOhy!r z!k6$InQrFS@=Cu_ih@JYFBRa>od_f~Qz^MI6CkHVOer8dvuD`wB zubBL^2dp1)0T!^@vKvCTAHz{~_rLjHE<#}5wjJfB+uV;4&QXfX6ybB$=lTtVy%{}N zwXM-}=Wp&TV`}DATZkoerYD|#nh|ea%7{*@1O4IvJIM~0+%k4E!&M3WxoPu_i^Mh6 z4Ai=A(HDTwQs6S9!p$+08r*Y!?}lb^gQbYg#w3U9l7cp>Z)+pk$*H1k-s@g?&GXd|Wc89oHy-^zs6) z;`f^(bS>z#Q~OHIu)`Df*6d3x#?7l}f>)m(w^Y>f8KQps?zdlaF?XD?GC9nrzw_>w z`>yK6s=shyr8}kip0=@9`;>CW8L)>Dm4tcU5hYGHSXdm0IF;#lv_8re<54?C(7=Ae zl3lJ;lOauNoL^33SnMdhOaDTI?adhp2KMxEa~G+(R~pIlyR5g;M=-ZmH$|1!E$jkC zGv(RJGo{dGq8#Lt?KTx-zY~WdZ1Kk&vN$O8Iqo-3xr@_^KX>V04QX$EYw&Y0&BgZB zJ`pCa%%mg_e|(vm>?ceEf4{iyqhJsl=E{Q9biR*!YL5yhM_)avo?guPatTRt{1r`) zoj)vgzw&3(*!Ee9XsXKDO;B=yPiMR{Fp622OZ5UL;lyy@o|~x3(#pwtUoIIziUyks zRccb8-9_l+YrOipbb1zh_a`d-ml`tSp2|Z@ZZ8~M+1&2-?v=aIiQuD1n%mXzRQyVd zs+JqKwX8et1-To#%{hbCY)hoPZ$k1&$Er=J;@ar{~iKWEpz zOO*fRY5GjC|6(sPxQ$W8infC~pPeo2L&8LYM6+Gg5_~uJsjBo~oD?szaJ`R-P%z`$ zTI5!PB=c$Qu$Lj>dm|sD`JnXOd6~YxpbV=6joJp!$+OyH^zarcR=T+zxa8_Z4L1b_ z1vc^SJH5^lqpF!-+J?AQ1r`x^am%B7o@i!e#0e$aj=S`MLzLK~@Ok-Xw zc=(d9Zrjj?Z`s+7MnAgxOe4#4zE>mr+ob`oIXyV^(xp{J{Soz*AXwD*Y;yXjrbzw* z7C#RLSgvl`ZFF;an+7gu9pf)MaXV#G=w++$Z{EGeUgjpm`o;-T2dbS7Jof+`YVC1b9LgG!$L>;G`nRcrTy-6P-0F;P^k-U zY|G;34Ks|o9)~DGylFiC5~#7;S+rg3>IUyLr2I*3Moan!4s>*TV_JY*wH&LLh#OSg{H|QHg?+Jn^Ih-R*Bhj~>MO>^G!Jak^C0B35qOZ;Lo!*qsS&ApEL^)s4J*tzWGoH)9GEqqo3Yyc5dx5 zdFG`C{pdA~&5ztMGfpuSrJnPp6Pq#$B2;m1*w?u`E+PoK5NH|w?``~XQ7@N$4~B7gRLeeecc~MRrEk1h#c>#cC?y65IB?_< z5c;OlMMWgLgahhPEnP5Kt7QBOUQeBI@G7G`lSx7J>{SV>w?ogh{2w?DlZ#zP2P{hNbJP31zF@8Fr< zELvYWk@S-YR78PPG2Jf;INACi+KS%vUm;Y%-e#?H#guQ;SiiAcSfqGou@ zHWh5Ix=}KHnewr2HN%b3q$i%uT#Dr~(|1>9wTpiND7ExbQgLQ7R*x}_kvTmLGMVUP zcPA1{a^#E|2RefHLo+(%Bc(KobEKOcDL~NdW22$-mYM!8W5Uh{~@Vf?o9b$rSum9-zrl z3#ZJxsf$^}5EpPpBm?3uAmNXhWHw_jwEGBA!uR_^yHaoM5@W6{)}Y2|ONbT@LZO3j z)x;j++tYm2$WEt42OE*}NT7BTC?c`bhu9d!>*w&WmUqU#n8OHwQee94I}~Y4nPKKB zuY3Wuu7Zl56%QL3M&~ovbmAZ;OaUcgKL^s6~>?Ri+ADMW}K>xEj5A|{q+bhD3 zlpmQ)ft(JIQ-<^Mx}2g;AWx5yVvVUA)D4|P!e_yh_X>OsVKdSD9Ijr;OivV7EoT~9 zGfaW3D>WB#G>-{ePUU|28zW=Gqw$!yCqB1r!az(n`^%%}T=gtmsM1@%wSuLd_I}>P z9eeZS%_G^!PP?vXhoUp4fNSPVU;f81!&L@_pAC6!w-Km_a>b-u)N zPUWDL{ffV22p6cR32qszlWs`mEv1h%;%A)%?C)e$YGxF8dTnJS2^oIz^<6~L_y)wPK`7y}0#i9f=Ma7c7 z_>BdW?dF4-Y&kAmDz87L&3+SGt@DCV@(6IZX#9@z(Z0{)gGtpY^*Dq8ZoR>Sy}$Tf-Z?c#1hLDEZ%OCT z$ccQFz1gHdQ1=3dw%};26Ib`7%tFL+kIc}gy?9?lwK$sDOyf2O4W=`qEdTUq%mS_R zi&V_lcc}R;EW`~FR2z;fhI{V zBAg8Bve>abq&kWZstx))TzNsnZ64}>?5^2t-qp;Gwg|Xy3nd<_gSE9Tji2J3@9mI2 zNwueO@pe2&=Q+flm{TgX;J#yxOcQgWzM^Yl76|Db^qQdP});@X)ZX zz}DTfl<9h;Z;=-5xKGl2C_&Q_xYXK4;1fW<08r}LJPl+VEQ5l$)RLF}t~z}pnF#Vq zCioVnmEDr<7_VALjRqIiMSHAas70ozZ1m82tL6K9{T0Po8#P}1BW}*c`7dGD$(zRV zr~d9OBbTMR$0HPujr8Np*lAU@`)&fAzig;K*}#%`_0>uhYit(k$d+&`Jd= zi;lRKKEe{!s!!*Is7(%>b@7AC%~?sf|0;L_n&yYbV8D=qF+h!+0f0e{iju#|F}A5 zZA?+&45|Qo{wfG{zX+S1;!$8+De+YhXf7JYS4P)B-xQJMI)9#l$&@6u%k;+i`gGcN zHP+G}YGe4WUKTkr%-;(qnGGooCfjt_cmI_TQ9@eB2l|Ya2f2h z+{lEH7+iq%4CeU=>|;jqv+w{9W_Y^N%)HvWRPS4MbNXDnB$|BQF}B7EZN$YC=l2d) zYZvk7OV{2A``&;kI$0=vgge!KpmDlKYkA9j6KBSle_R$2H>!K*TATthT&u=i5v9%Z zCTza@&9|J3?PwjF!ecgYRFjf)u_qzqz=}wbRhiH-g-=%FKZC3OPi--pd42j;62v~W z=uHnwoL@R6FJ*S)-_{Wdu0tnwlqI+t*-r$Dzfj*i;oxp`JrJigmpJEhedv_S+MOyo|w(R$US^UQ}J8?(P%;Wjg*cH@A^^oy74m-PDfI z5M4jEMf98-!Au(2uiWk!|EX{&K$xScvAC_@purqlLSNtvP4!uYPwFaw zdD?n(;lzyrR}-OXKf*QYSbU`3{E?;8bMy{rgm3At)D7R@Y%fwUTkQGux*QeaziXfY_)cx8D0CtK1l7 z{cC~IqrV;GXgRurMG@2$yx7|@snzy2$fOp+k_BtkCW5$F?|;yTG!&(&ZW_7#q9MDn zC4^8c6!gE^6XatcP@$nBUv2TJXhPv0XCk_>47fIDaiG-oyPVH_{ia^Vpgn4hklf$P zKw;|f{0m!2$9UR8Wq;wx)0$wX+2L0!-${t6^sm#Lrb2xGG0^$`{}Ug7Nj`Icu#UMf zNQR^Fc(&K1nxWe3rq`+k)t}9V^<%6Nhs(JM;#ThTIogIh5RFP;Dv&usxu?>zp9+EB zu_P>hmrxZl5o5rQ3Onh1{2}9zaD)N3Cj+*!3_p907Z(_({w>I@^0(BDCK7n{o26{IQ zS(x1pg_-7f!I+$V-0ngB0c}yIrGU=Jrxwu^8XJ>x{6}{9p>w*J_lvC$>JR?yNWCBI zXv2&{vu92XQK=du1zDj)#G~wrM!j!n4!E%QJ|fVWr2}m);`p%xtOt@Qsjx++RV}Ky z5qGU7!lZ9WNQjyUh0=O4IS0f4>h-t(>h);JlP6rLuxQXc)ry3K8^dGS@a<(elp##v znrvy*51-LKx0+k}3twcnf29t7v78|UA{jxFj{oVVf8FY5NAe7Tve-olp@@YFd8D5B=dC0IvzpyGl)!#$ zmXgZVzYZ(w<8(VY@{Y}2OL>u#8wL96HGRn-v;*y?R3z~CH})zv^U|LL3}?^kJHw5J zgw2Mrmc!;sy3yRN>rK=HKLvZQ;Q6|FZeHxkn(pa{Oyl9`70WVwIaHs&_i*{>OB_DW zT+}^)6P?E7Wf^<5@nNE}F5tCW%e)fxso@PV`vQ}W@U8_Ron;NC>YA)1e;od6zlI(io&148+H5>-A}OHHPfkNq|tQAWd}@blew zmKB*b6W*qdPXf%09MSDYSU9eJUexiy1eJL*_5o6RF0J{={t_AyzKb>sEni;X#r}}x zku)>%nx1}T764n!H_^JTRjYD#!al*oZ>9*E@`qMi=6*1YxE~t=Tn>-Ip^!~sFVEl8 zegT>g?rs>wz16P_jK^7HV2adDksYB5jaCN$Nx(<{)8C)a={#fZ()!BDcb4$^MUFi8 zDTEXE{XhoF1J}}|of^GGmqbypl}TAcCH>KHtEi+mVgEs*00R;Ly7XVBhoBtM9RmK` zv&4=&Uxs&h#-ix0=@-xQE?#5`N^T=04=bI0ksg4bq0vjYRfg0QiDV3KKnHqv=ilr* zZ=XDV0BW{`K5171#j+R~dtX+gy0Ec}Mc3A?(oLN*2YMO&@kxiOg^~VC@ciUzY7miR zNIK_?L{FdnN#DL3T>t3d+{|ABP-~-gb!OA;T8VsMhl#O^I+q*csJ{qM$jr#vg*K=PxCZ`rrK(un zNt`#-`}!C~Z_qMOEn+!}U~qV!8Elw>^j`w&A=z5}&2vU~voRYPe#4@nLjQY%KKi+V zF)g;$o*2|$Btf(M_5b(LaDBVD8e1X!%^FD@+qtbSPG+DafIMTu-}TZ2r~k-NhvK8YU%%m9!;16MhX>s?19$raXGF2Qd>Mi208|zvB#~zD5CuF?I8gX6xAozC zqZhD@LYd>go5DH5^#3SFE+usW~`h%x(kB+ zucR^-(GcFY2dq#8C&U;u%J^(5goMWVCVcLoYA!SNx`L(TYEWP?=a>LCy=YyzCqo8q zr2<3&Ff~u0OVk{BGVBMv5eEg#03#&b$@lJZGm@k32C>mJcrN@HkkY?0K|Do6xbrmj z8{DyYZ7$_>Cx$FHTLD_`SL49*pz~ZA;SS7Z!#l-|)sC+7a2K^_%){zdTzSLb>vQd- zlsuK8>WXQ#X<0~WU?80^;$38-`P7yUu%l4rx6^9wU>Gjd5O1^m)Ggk%9Tj7}h22|I z)6x9#JdV2I(9lprs9ULibJouf`WBj+Zc1j^Q`1~!O{?cr!UB$eJa;DYZ-P`(Q&SOp z^Ld?MIBb1c=(5dF&gS$91;34UadB}XJ*+w`o>|3V22z((wFj#^>08TQ`ML6R-xgq< zdfp5O(0MM1-=39#5_fjUZ(q1%3%>!lTmZW3@8RFPNC4N~ext$RR2%{&<#e}xUyl$! z)w$Z~)3oCSb*YIJ@dNbF--^i~&8Kw@4HC>1OyWQJ9g=qkp#AjC2-C3l8zUX5^fIy1 z37I#0i7wj!ru3_e*4rw^-lKstAVM~k*w)rqu?(;qxHH%bU?=sLHj?dc3iw?_X0XUW z`cwVxyTw&}*8m9QIlWYoPTh`n^R1bP+UKZj=G+Va~{7HgFN%+jsPgDWt)&!)nU!sBlqj*vrL^FV@Rkp71r3#+VQr z?EVG;U5D|A{{*Ah%w_22zhmeaZ!>g6t5QjPSMKsBLUCElW#;pM=S%nG+Y7X=zR7KQ zJD=KmZ7nUMB1Njxha8~(pBxatxrQ4r&Kowj6&1&^ z!Y;US4lS!LtS~B$hMUP%kq<4+Qf?eVQ5ny z)0U_~#+?!2+z#-=opGL8Gj`VkYAYyB}3t+*0p{CywE$RUuGKrwXHI zCagaIxau;nWYAgixLf>Mv*MXS*PkInVlg(D#Ywx5;X$#j7Bs93YDBfwN2=t1#Q4r> z%e&`(zvQ|t$2}YIBuhtqi6;aq;w$U<65OW%yJm4!JD`m_rh-ty8+&+C-s;Qp~9%XnQ;_s(|$={PKdTJ*QV4r~}F( z4(+#J@x*pWxl{QaKh1f0D(vKfE5!jV!GFN!Jse>8;sGYu>%`n3_swuV*!pOf9wrk_ zO~D<6j;BytOQFPrr_D#m_!ORA?>5}>hkc1piqQ5c+eBK9FXQx55bFl8ub7Bb8l+(1xA>_4eK5hVVJEmsnk?XN zy?6=l+I;$_0tfV6_9plUw`NpsApla0BaY_!{6GZ@91U)!TrSb&rFA}?DW`-|Jw^Z^ zy4f;eKpHYDIUdK!BoYDA_17$ef8s)ig99Drz<{zNajN};Sw#X2R`T+K@3L>Y6-0oa zU-yNbyXVC6f?vyXn=Kb>%g8&g>5_S3IQ83j4oG1^K{hTT?Tl#FNH`c;v#*UQL~j?@ z)>u?zAntkWb^lh54fnF`VkPTkoRW1`fh|mKLU6WI)7i#;hnmEg&F}X9e-X zQaWh5&GxiG*e}E5E!8iOAFPn1Wy?|)Esv3YUt5q1IXMLZ9LXOjZB(pp_ma>*0DIAQzfh!|elbmZpL*D%_VbVCNmQu+-xvSw18DQ>3o`<1M8`dW4hIw_DW6k*jn zwvLIQc#PEi*IRwa&2kK=cKHeI_01HN26o*-PkT^etKuji42H|UK7Fa4=g9VAA~<>R zW|@O{9pGPo1%Zt(0Wjhucj;XIfZQ|&^T$u6DM0gBstZ+a*ROXw*mkuX%$O5fW{-$a zXc#h65z7|ZbDG)_sGY3=#m+8h{@{?uE3D(Cg1R)XW#v=%@YozrSoCYV?93XnT)h9Y z1`V5sBDP*O{OVQD-6r+~i8k%F`$h@;;5)O}A+WWxbBqEQlD>ca*oXYLQ7vcC(70_) z%+Bt_=A=Ti%kD+JFJwJKuYZr4@$6PVJNqQFyW6C7zx`$O<01|?nOpy(c2`oG5^Lb&aA z_2VsLpAW9B@CZgbmflVQHaOPy>ozt2hly<-D+!CCFJRYPW^tCIVy)f2f`S1_^+|1j zO}lVS<2i6<>T(@`g26LgT38rg=eAgjN1m`dEW)eFA{?I~SjxpW`pahAO4_*XOBOwl zA!_t0VX?71PV61@0D#N$}QMz`)R;mt9-?ShJ5ts9*G`c59| zva71DPN8|V%_~Q%)FplJ>J>2F3gOAyWnvvh(Z1 z-z9x5W#Z@$mf`UJmOaoby`M)3=*8_v5Jr%&$zM(>4xC8= z2kzhYAeM*kUyR=W?S3sDpo70Gp#J##8bMwao$l|IzAqXdprw$!E&fSi%KqOiy5HkX ztMz)1Rfb6 zg*?cZ6gKwzMJ0|oFPjfS+0n@f)Qi1zFNkGr%20g{}m1O#R zL0r_NZid1n0Z}^Ag7iNLCLXc#G2hvMl%B1q@DdfcZfz%Yw zYb&SgWj({G!rk@9jiOJ~VE0eW&^X2Oq1SChCxlak5e1Y?qu)RI&N z^6|5)-J(ShY%%XcaFUPB{lPmoTx<+aognNQ;x!hnFgGXZ&5SrI6I$nduWiOn6 z4>*MGN5O-EcDZ;hzxW1eqg0g#2%Z)k&U55;@D>awW^;+j6e-4HnPwV~M~DA?N!|aG z7B8r8ik3Hp>eAC5BrOWve}^W~)=uY^=73j7A>IA?nk+5mR~@4jstW zN~Z$hhNdn_43#*6d>NFM3VQeyX|io9yE|qx!0YwKH%dWw>#?<$r=~y{7(TvD9yTlQ zvO7|K@3ke`cFUoR{urBd?nKR>*NQEQ8Lxd>yd(v=G1gusX06G@P#TtjxL6!2NbXg@ zS^Y=Pfd_h~&NsM5-us;%F&Es+_?>HKJt9fRB4Ia}U^f`4LN>tGd|#?Q-{d1RspBkI z<-K2j1`CF%YLfZE@pGFjhm*rZZ&w)m{z{U@yGJ^1EV1#GF{fXZ_y{4cSJgpB~uhFu&Kq-?eGCB2P zXWH+^V|49W{7Tof6qgFR^_0X{g^XA;($A_cCZx~PIRv@RY26mK=y5`_fx+n<{i^9* zGF;xTTi9*8YvdP6|g^(Q}dI5}2)bj_uoIHK0B~GtzeRrffvVfr9Vf_LW}a zQYUCJX%$_*KzSgm%{Lz4Cs7_ipc{8 z3}vA%5&|RBuLMgs$k`+TXUkF1zs7UtAdH*L0Dm{Gg=ZhPh*rHV zR$4tn#<1Ygk~w86b|02>!ll}@v(yIA3_ICee#-GUD=vI*WPS}&d}yn9o=9K^zyg&Fm` zEihd+?b;g%e)ayh#_1b-VXzMg6YiM;7bQCRn_)o};su$$W~5CH&tG+^>~x|40cCpvEt5qy68+!xm3=9mng9D<-i1OyPH1> zXGENz_=0#n=3D9$Cww|bv%A%nsAU8(Ed?);2Mn_NK8~LL3gazp4o3nL<`tr(^R%Sr zLm|f_qw!O|4WGtN>o^)G)B<~38yt?UXr|`>3 zXMCR8J!`+MIT=K4NdPQidCnx%7W|CfjaBuOejxVCp!}*^Efswyen6uAQG4Bgb zrUo75L<8QldFsY$qTj{2M$NvWLre>`_irpAec-IO0mAs|%B&CcdV${il*p&U>>$*v z7GMu{xPp<^arLTL7d;-olCkicSKrRC5@VhAEI?G@0?RaNeoID9gTw1ATDB|)(jBQQ z@329Z9C$D?eAc15T=J5uSaEu}^}`PVoG#1S3Fp(E#9cf?l$(zx(O_Y*64FdQozWziy|q>oTd=FF@#X}AXd8ymu**Tk>$+l(W~SgGML%{ibEQPpBmd*bdI z>x$GMRSAzwgml+>Lvz2wGsU%5K>FV;H23CW(1LBC?W*&f&YM9Yu_P!6%Ywcvk9z2U zRRP^p($(1s$8?IH5@%>_ zy@Xqq`#wTxQWwr0vJ}F{tc$IY{Wi|^vR~e-jmU$LZSAx91-o`KAp`*z{;|aPG~U?S zbrlKhFgf_V&wF=j|1@F^2>0| z%@1w6SUNRKNMLmYoM0`q4`17t7|i6iK!OECt@@!4BHk#t%KIHpSQ?~Js2MMwmLhPv zclA*vV;l#TTI9|-RS2V{8L21=jSqm1nMj(X{bY4wJPg!TuONo;$Ri_yB_dSgVp5EA z)o#)?jH3+7He^roPg>G*W@qS78YnQ-CuaK$TrDB;ZVxrQrD}xXM_vuPUIQ;-m-ZLL z9F}43`_?u2jS5TeVfZ{0ynSr(9r4YtvBlF9Y^tIm_()xF_O;zPOd19Lc~VB5oO&+t zM9suwX=ro|Dp)j_FyEPm7+M|?CZe|)s{t;|=azcX!lGyalW1AseC>|I% zR-=a4sj*c@mC}J|1UzyJl+vp?QDC3kwP^zeuiAbU#sc1Sf6Dz}{rytwq@BP}nsBqz zekfrPiU0L_;WYOj5f^3@*dOx79AU!OG%`3as{unrpW`jfpE$QVKo*zz5 zH|^twW!L+{mn%c?$N=f4FDxWYh?UBz=XMT@lJf2qXH46$#tSizJBJOwnYVeL4a+2^Se64z;v)zc| z31oNTSVOL|jO?A?lFw=OnOM``L-iShx~<9>HdojO~kdg}sPEfPp#-8)tL z18RE*EQP!881VeJ(Hjy4m@wgnIhD!p#dj~7t#_c!UYT*cOS2cvdHD$KQbT6DCZ)uM zkSk!_O}@faD$!;q9t9837UT^W{Alz3l4smw+HEaH^|L(Qk`$uN)PJm(uj~jGq$jtj2f~&=tTINTz!qfvurHw<00&T+SPz-a~`(l+hDFC~$aC(#r7)_>wZL+#a%`70`Q3#YA z<-1E_7QJ--BS%_ZauA1eB%Ng*H^-YVgvU}Xw*$$Q1(~ct2Dk6j1svv*G2lsEIMhOK zQ?ZWpc55AB4Zr$?5%B5OeiQ`npa@??z_peC_15EY%_KbHPrt;vxL=XUc|9G}Zy0-M zpO`0mQ&_wY8a+>9mVdM_|NeN`+SZLt!~NjbdO~X+jcdkbolH78IZl^HW=xHxkyvbQ z>lVIQJNwaT#)+rV;6HGEZE>Rl!u=&S@)lzN1&rh1PDCzP0gTz5zAVfUBuT!e3`QVm zpcOAT?!u(igs75vOCwxse-9K?Zht*{CHj+|yb9Af1^T*RH6J2Y5s3M=6X|zb zEi_0rZaTEfFX&Y3ds_bbfvT)X*xFbDFxAC{ahTJRj<+c|=h@oU8PXELb|Zr^@LQ1t z6*lhr)?#fQ)RHd#>=iBd?JqI&$^nZ`(cCfy#cuX_9U-@_fj?1h#Vw)-Un?y4>pLzR zzxqQB{Hw$Yyl)b4jD$d?h>MdpDPJ@*Uu-P!nKMUI9DFR-hgs8qNPur?sGlXj9NK}# zh6lsuNXcmgTvnAQeWi;KpzOG0d%M84+&m3rS0ZPU208UEmK^p5Ur zPHxrtwWmW zwgsn_VSgPF(R^UEp&wxs|2C|B6un26SLvb0?CTAdBhQ7=-D@AQ`=Mmg9S4r|zoFi^U$lXv2X)UMF(w&m6<(3o* zEHtwv&bS?;&lLQm##i2nx1J7dN~IR(V;}-q1&3H3d+59b0rB}fe+zBhW^Kc>xJiC- z@~CQ`B%OcWw`1$KwI+k)eWX_Wlk2$v2O_);S}8vMpXjh2Ij(2X`r@KihXIB!HEJH_&|z!?Q6(7#((>VR~j zKR?QJ%B3m5gH>{z&<^VJV6)@QE0-)LpddV>o1HLMu5jEN5~k^0w3!8TK4j;-{f!B+ zTP#2U4+`}Xg(1${Si*zCaMV5ImP!_th<$aSAAJNhL<694svv(=v=4(a6u?5j#enuD z%a!rr8r#z`i+9W0-*8B|wHWu3^nL=JFK9_~q>8HZ@`pWTl=WdGaMbE*)OA>cJwf=T zKO@WZv$fgyIch9@x1D@L9ZkNHX4`pYLh`?@3Bt(iZCG|dTT418$k9?>$%I>0RGYTf zuk_w2UnEb{WVj6_kNbxlY(sM$7}x1miMq(_fF26wgmLXj=>|q&$WDo>-x5MjcwbaV z+EN&x_)#p#O@BJZ<>$Vgs3aQ+#^4z$WR>7P)qDmfq0UQijj3i=%tSyu_Eh3~+#7O` zUt_A+;k&(l$8P?DK}ie^&i(k;6T)Lzx#_VmH)ODdQ>%q6;`$=~i5_oMw`CpF+#lK% zL8-Dqeb~GFq0`2*Al3(2ox@Y7Ga>-)Y*dVG1vqWd94O$9OdJO#vJWW~G0D=;=;=APLpwY_-f@#dHs+v4r9A->fF=84s}^Fu3aW@34ALI}&Q z!FMXt7Z-_)0;}qY4MjHu;o6-z>Fd@vnuA^tmIeFC?*u0NDKBsQea=Xt#r-r<;Z822 zkp@Lq{rdg|Uz%QJnat+iwKQg|mX;EinNcnzKN-`Glu+v|`#O$zv&lrUkGTGn&#_8M!TuZ@(cS5YkbL5DVeA9|bQrOt#*aY{ATslIJ~^?tIr4 zl(mG<5?h(9!&jN-)$qpL4@Co@U$52Cc*(qT+sN2ww_yfqDH5@7|Q=6>np&b z>bkb+mPQZ+Ou8F}P(nnyyCfxtj-e$~O1itGL5ZPDx}p{0iI`VacN@ArKFH+tbE zGjq;9d#}CLy<*=BhRfUrfZY8-vGZr?#dW{3=Rvd1@LwZJL(K<;1p_*-zKFz4=-jJb zJQy{8h(E-|6sT0I>7G#0GW3O){j^B`lHqJj`vt zdYMJgu6twXjv;zAw>ekPj+9_-M}9|6@;=V+sZ}rzt|V$kywZ2C&LX9Na%*Fz0D6&^ z9(k?aJLlLz{K>p}=}Eu&%ADt&2(_q{iGalY~V0s}o&{r&65New~- zup?A07x<8+wH0fcJv=NN_{Hm@2G|@hxz4%>=C96^?BPzsGA;yh01Qr>Z2-JfUfMag zy&OjxsKhicW@eDqXDAv2Z4>_0TRE`@|C-kmGkCh&hhe9SA|$uGFGnoLxmSI17#T^< z%oMdokZ0|<6Y|?fjcF)uX5`Vuab>TW^vc>BH<@5B3`u^LNK48;eLGdAUtpWt^l_?x z*wjw}4aUu!(rcLhvzHVaQ>yWe-Hkjd2k;%m3)mTQKidx&H1JN&wm3u>KvfsXjlUh=)DI!@3;^rD(^?Q`KURP8nSvf?=phnBS^016F1SaJ>@ zCd8F&ILDE*K8wagAgN9;qV?X6mplV2YMKu2o6VbipmSeqZK7EzuRB5s9)gbT^U)Ye zaaE=9i+$7hV}>Z9*1S*Vsf36M@p7N@@WL1NZbrEDdr{qZY=^Q3vR+N|+b>LNa+UJx zV43w5wCY=mmgRh)#aXjPX7=gzX&($>!pcvs^`|1qfcxFM%nb zRM0td0ral(Zea<`kZitpTqf{AzZMss(@ZFn$%u={02VCBQKw1_Lwk@u6P7`_N z){%)3)veBDZM2?b=&d==%fb}tfhinU+P(!dAI_RYBRdLfmc}1j?Xbs~snXTsxVlc2 z*H1}$R8biQHUNSz^g({|uMBm=$84vMmVVMgWAXBOuk>7 zZ(n(1`@R=|q%uX!C@c|V#8V^*yLd8;u!c~F-+n51bKSV6w4L>C!Mwz_-&uAYe~MNE z-Q4qKxhS{DthM=}bX~v!JCb$$#1ckmNT@M+rlLhbBINC!RdcuzIsjmPdSS!UAGNMh zPV7CLV5dvEIzQ)RDVceqn{u4ZA9%bb{NQ^Fr_3FA{aQA``p)&;!#bv6!|z-R&d296 zr(`J_5!XBD{bPG&Ki1j9xd*j#Tz0#u*!Al5m|sqDW-VQtvuf1~#bSAx?5hZ%cd-|7 z*c}eE&sYx`?tt85nZ7-sfcD4IO-7l}uSq@EP3hMxXVtxldRMVlcpa?;q@I94-eU}e z0grmCNaVPzU6I#_T2fK}YHpP~%~-PeMWbUB?ot>jXCQhx0D4VdrO%8q{E7+VIARr6 zIfTEPyat@&6)Pb6gd-sx#w13%TG8>k=K*~hPK1)Xm%Kmdv~ZT+p-09K!qx5xFf2hH z!P&$f$!JOr4-e?BZcu@Pc>&iHh@(7>KZAE@(;k|km439$5eMr2jDG%7-@oCtiKUX7 zDmU!*4{yOeWVYw=U(jMn8yYpkP%UF53vD@sj}&W`t4|W2c0N%Uw6p}+fA~=ghKBJD zScB&B54y!-o+?1TDcT`Rl%84~q7F@rgK+}TS1&v@Zjeig&L>uydI=p)-&pDQSkuPx zsB+qAmd^{gpHuW)^>^PO7Mq(Tkk$_fsjge+?>*lZxv8i5vMQE7oF1`D#%VuvBsw3{zz}Q zvemluxlZ&@&oNzuFqj^>6o8n1<0R0JHh@zY!;sXihJQGK;szwYYFT98Tz^=1$zeuD z4EwPeG^(9{$-Ce%P#K?U45<4GxTr55L1~4(obTF%R(?gTJis~Bsop&&xZ7-b#-?9q z;IWoZ`UFeoymas8+vX2_Ham*pg&Pdfn!_R&+K@hx%j16M_`47*Uh=Y7`_DP`sFrZR z^X2!KL8{*>excmA%=|09bWY{@9v87<_gLd34n+g`Ct+TR&+*Evs|RLWFd4IF;Z1~% zY1DnaD9kf9-}r}(9GTclDC-?3l9j}7b?WUG%o8Mi4u3nm>r4%ij`_AhUH9jCRG4=JJYBqD&W)&saIHae<)@jarw#bv$jZ@EzzvuMD?r^a5HX>wca)}Rq`l>2tQl5tmGHndRh zq*yx`9G;>c?zJm&g-`etwBT@sxZ!wWF_flhEaZm)An}t4ligYWor`Fmi>7qD70-7g zhw13OrjHpE;bf{^9n>B1O2$Bov^yQo}yqTBIuo-Z6z0PHPmB_DK+j4jDoUHk4k_CMe2&g7~=hl`=o--O&TQd2}#Fz~Wvh|Yk@K?1t zOQ;=s*I)~fN5qZu@G<$+Ge*nf{`UG@p3=ut1t;Y>m==UU)wjHM9b*i%c=UHkA3=|# zV|q7%EHIA`_vkosby3>&O**piZ+@3qyhlC1>-S%VlYOSSn)ScWT*HSxa-YIJlo;Gq z0(%M~0~he=fi!8%u^sA+Dp$+~2c4ptMjzZGBeaQNz; zFk;eW9TP8w@^ZV*a-~Zi{iBO5u_4>eeHa48cEc7?!6*u0QrVHH&gyvcknbSaeF;nd zuJy*_EAAw}XZ;lr>J5?qu`v*e>~^{SJ#0RO8f@VhFy9FSLbZW|L#qS@MSJ%_V*ntJ z{*Z9jZi(f;KDKSUykld%>~k?DNYkuEMjT;TR$KRw=d7#OeP*=tRb5NVG#Yr-ADGG z`xhGyl%U(4SxJoJ@Ohe8}>>l2Do4uqlU7%rb0e z!w5i$4W=5Ja=Ra1l-#ukg|d_d#Xzhi2pn#KUXv__S3s^>mA2e<>)RvKdPZhL=XAQI zw;i9BuomUW<<+103Mf#H>gBEQJsDxUO^XIz*XVz`&^&kmXp3Qno7Sh9s?pkMeX8n8B%|-Vr zL*E~~?6#x=?$do~y`*o2cb;S>{n(hmX;|DH31RzPu~Tg{GFp!)`$5k3K@O-c>>TX! z9o717VQCA%HO!axE`@Heb@AKNg8_h10D7N#vHu< z)iZi|4DEu6>rBqCz{5jukX0qxosz{OS!a-RzdnFWx-&tQBF$k7ElQQXyiFoF@2Zb5 zAFeqBS=OOoJ+TQY>SkzZ%~ucq{KXsxHj>0`v1l{FxARR9+rU}C`*L6m0LFlk1T5wK zUpyE(I4g#cGnLC*L$6N1pca=bFtS%t;gL}O#0N74G*=)vh}CRljfJdAXq6B0n^kf; z|K{Kz=&}4PE-P1kE+U}7L7u~!A!HyQuRg$md6D{H3`l$iq4dyMM&jUBTFrMeft>#yW!0F%`=dJPCeh7ki)}356Yn zme&wg`>y*n_%|d%Ja)<&&rQpVu(OMHc2J_zc>oH2B>iU_)QV1-w*JF?^&&26v>aft z9<o`!%ZrGZq0=IYql_8{4X>k{PEp%_A+_`5OJgZ6WbmL=%m$`&W%F@@9#RGW1~l zj|z+0`7fXo%oVQaS|%ODK0j|o$4%vDmAK4z+;`LKCw|x?LrpfKC+Q``#x3$CgN)Pt z?26F#u9W1D(4r@E^Q>L;8Gnl%p?Q`r{mSa-O$9Wn;-94WpM^nn3ncb`XX1$XRoTn#cCmUF)r+AMWY!MP?6m6o8M?379{(SReLBO zaOaq@lMi5x-t?c6a)OA<#BpFQZz5ieinvH#cpPPlwo*$_5mt;g35tq+x!4jPJ9jq{ z%zWiV17)sn9E&ODa9K~)bwgB=RZ;f|o@ARbyCD|%UE597yGHVmV7$-U`*8yIo!ybe zeL#(unT%gNLgS-z%a5JJH;;lshweOB{Vu8aZSy?BkaqD>(tR&nd|m)Z2rwz_XFxe9 z-OF|o&ntg&E}oFr=oo>EbcYA(N80FsntYGIenl@iEx}N%pB25ubI8 zq~q=^Lp3Oyz=muZNh9LAF*M&ji5V*q?>~~tX2{)z09;EkuX8M{^Mxh|*_?N}ASC`{ ztRM;vA}cDXdc;|4n#X$z%&R)z=n=z460lPVeL3nz&hiJ|{nQp{*S`h?M@!26}3dDfYC4-5;rZ4{ac+^VY=CQd#)!D=jNTKY8b#$>+Hgn1o zSg);^OzVN9ZBwU|u%IlNKg0*t=O#_4LE8L_DdHhU#(F2Y4k=AvD$1GY4Q6Na#_}ym zfm}HOco+ih7YddcUKAkd;zJIj>LmM?is@mE;rowh&Cx3E|;pkY) za=3O9A-=SWYz|sYVSj9|J*kQWXpg_Tqcsg}0YySiez?J9j~evV6a|U$FkcnUR*^Ca zKKM-vC2+U5%#zU&EGR31_s|{nkq{sFM5c6P*0ORJ zThAo0KW}|tAGg*&{>j}0K-69Qq$_ky?+XFWk+_;a;7Zt4vCZ=&slhC2oV_T5{5tb2 zq|D%l>%>;|HKs3>$2w1U8DPTx*5btjR!u^IUM@KqqppKdfUQ*<%Z8!b_&FQq&hpS} zSH8EgtBdyDd(z`F{*dHcz06^*c?Ew^i25P>8wMPYM5U)=-Uk}$Ic;2fWkTTL$Ul#0 z1siR}3Eo7*ppCT8XB!VDg%r$k0z6>GW~kTQl*&Jlha$-){l!&U}M;<`cZ8FHu~n7ipBmA zNZ-N@ej+5>UIo*B{yM>yRHyrZe&DQgattWG80!cj$hdr60c2kOS-a~mrd@CVEM$Nf>x0?*-5R7!i$U-jz-z6Ja{JP+CZ*vqr2404b6B=&m6t* z*Jkr0cm%SiJ~YWv39cYBJ>IOUxfWL}W9A16J`a*FopT#g%(Uv-WnhwU^JWK5e5YuK;2)tqidsdM^StXB*AWeMcqmU;(Jm3utbH5 z>E1*BQ=It+tCcJ<)+}W8gSa=?p7=g`9#Lcg4OLLVd>$ph@nUJQyB=1-Q5aScWEk`s z7f8C*9Wkj1c~$#CE)c8!per0^iTZ;r?V9%|^ci;T9*u=&P;2s;*?~k}{&7?45g_aK zYbmFC*{-zXEsstx#0167;3f7;%!tRbz8((%>s;IeE6!N5)1HO`1ta*kWyJRe^uPN- zfAS%t5xRqlN>m6$9tS3MYSOOt+LBk;c7;7F#u2ovuUoK`9emi1l`z-XjzVIQ_H$o;^P|q9l zX(mX<>pg;k#`kbGLrMW?y!ef;g0#pbN7#T2kkWe-Eaw_)zG+13drd5x24nDI9WN580r@ z6IY#|sx`hw3R0R43u&+s367-1w8C^K0{2uXKZ5)0cClKPKjFony#ktFJbuHVr@fHm zC##~$X}MofZ)4&75FeLG-B|svyfnl=U284ktK)w*`INR@+SkRReLiJE zi`d@!<&(6};UCBw9u^6NoH3v=^22n4%M~jZp$XdrFl(Hn0c#MeZu96n#GZnbbNk^n14U)q}6(~862D_&Z zVh*bk;u|Nk&G0zel7CI_Ki^>Du=Lcq2mT7_8SSu6Cse}43Wpz~13-6#M@37dwC|=R zlYQSJk&|dPyCUy#DSq8#sbOLS(_4xS{%TVdWm^_A9v$aO2-`VS%D`1l5Np`kahWh0 z)9ZsqAQZ3H%)ChuD$xh(+p>a}6 zLgY5Ty~Nkv*)EdCEo$YX%q1R0*|7M?u04E>9lYkocYSCZ%eku#%yG?Is8}oJ$6ODY zxhf0a?Yp9k5h$%E<7zG+l0y5FX-R10j%Y!;9j%Vs-*n8{1f1SvGo`H!p?xRW)TK;D zf|uQ^RCeZjO%H^kN{Xj|-f|OD>VmOm7yRv)H+#Omn}=~0nK{j$;;x&$F4hvJ>|w`P zR8Y|469Oz@dv3JHC2Mk2^eXU$l8+wfYx6O8Lq9RV-Wv$-+|~Zv=IrNx_n-#JSAWoO zEdi})J@8(Fp?6$ijm2V{Vbg5z`SFiZrc_Z22Zl!1n>QESI+GQgF+M?wH{7f2l;Xdo z^>Nnx`=sxH;!0*!+y038tl6RyDm4KhPOJ30QGEMz1@D>Mry1OM{+xI*_k9n`Q@^Js zDQX=ocWJ?%7Itd z{b=;+9a&H1y1}X9KsHq8cO$>ERX5~5N8N6EY!Epj&h_8d0HZ+QO{PNnKwgnTi7oa5&Bp7!I$=DG`ZsUiGy#gWS{bf3~LZ`j&|^`3Q7*ZgCVbF z@BXZs!3E|s?GzzKTGk$$gqtjz;?I~;vs-c@wv&b)^Rj`+{B9E?B`GOsw|n6J#W65o z6g)#xOio{>DpJQ=zh)=llZC1O?OoouzO;6seuL(Qt5$vzmM$6C5R_8hbbET%Qmex` z0uBC=qGqx{qufeOE$SFs^1M5O_Ktv>1{WIgM(*~sqD5|R9HQ+m~ zP5&^QTsRgIo_5W=+}mqz@p*G^fBb6~_0QUw%k3Aw?-KZ)n|O)b&Mhk3-k!yZwxP)A z%q(OC%rg33^cx=jB)W+s+XxN~(QT=jyJ5F;ImukBWY^!d5-%|ag)>% zFmBFYezAGtV>*qwx)l+@=#D=v+_$%nmq@FB`=LDydGTnl$L zvgA#}Jg}Y9A)D$L*K6LuzHtV&(-$Oa=3Bd5wtS`lv{GfIL=W~kWjP>rO2Gl zrXXyDzcq9+)84@Ng})mIiOO@lDBf*a&j-1Soz=bN1%VecfzZ;Ik5`A)d$%RjPoTNl z9h~DYDCkGdd{03MDUkDng1cd9(M6wF(X+q+X``uxmLt_3{OtqJec)izOelR7EtL`o zy#F=Rv=irg9VR=6{Oeg8A)T#TrO^ZkaZ^BtWoue@8{aTpTw^n@V7CayTMxQgZKdw` z5~pbtAst!WRAt}dR$mvakKb|oTXQ40Tr1su9i4#YCY3+s{~tU zM0L1nbwO#m*vPd7bax1Db@M&c?a>)!WNSVQR`S=~t6#j8-TQ4%Nhcr?sl*{as@{!% z+mt~o?CcKE5k6n%lsIcUfM+r5oCoXf;S==iCeCRcELZf{-~FC4ewE|P>C4UcPVup< z$EijoW5-Igh?~)Pdv&zo_cPIRt-1bO<lKNJEx)n{YuXu9bbE%3-@cT@yVcRU;gxQn}DRM^b=9t zhmHs0+5T4;X-*??*vio**x)O!s5%MS*#rJXhsDhz9Fd4|$NjrVDf-DMb+78Vt$nU8d4nC5h_xr293W7jsf=ku$1g%jn>I3uvM z+`W&$*8?AQ2MJ7Y^Kx_ExGp)A5=^^wC>Or%e)EH*8oVW^=IOSAe~S?DIaHLwC{`=v zvNtv|b~paY2ye#thu926n$sjCZh&%O*8ANU@N66Ph!fi%zF+$U;U!gwz+;X|JXUM6 zIA|qWnKeg4th((-xWTUWZ&5?AOd;o=Exsjko+EouDNCegO@kZonC6bV% zLfUjiUY}0BlF2uQ^7@%bHM-w*C}Mb(V0G9u3^lB7)vR^RA>uw0M$0H*e@Etc1ecf5 zHmYF7IB=aVO8UgkI>4Q2K^%{(&@QRBNC(|N+$M(Ov!Ya|+U0*)x9k2W;Do!euG6*l z8~#e7f^vR~YVj`Ux2iA?oW4+VgD;Y@xF&mK9vx1%|EQnvXOXUfcgHRtj|;qR)|Ikp z;+M{OIsYyUM6%onVBPh?B-yv$bF4qE zREFimj6q1$XRAzTeF1ReRRTAPV^Uvd#bd!^$KyhW{UHX`K_vr+*L8qA7u=;&LL~ftj!}1pVkEZ?|o}wsHC-BWPeRK6!ehKC;25J^x+9zYdT#(Q=UCA4B=z9jr z-;!zme0lh5Y|VmW(y=3-mF~-j>z?x46RV49UUE^n9Cy5Oh& zm0Sj&4?DPhHo99rG$bYgoV0~gy;es{4)N(A4y!?YSoz(?V#O1q1|~85DkCJs^{Cqw zm*}H(<}m%(dB`a%HtcAD+W$%^!Gg`JQ|v26;WyhW@6{iQ${!Z9a)2TOvyIz;j{s~+ zs^zHQXyoW21+xR>a4H`jsI|_AP54Riqx|@}Xwo`gA==*jGeLxfqhz7hP86HKaG37j!Wuh3e!kIHNh}!Dy`AKM|YM2yiBC?Wp6r@75C?qg8W+**mxkq>|WSjFg z0`2FEo%wYN420)A2iUNA13yg13Hj_NRz7*R38sz`d_mK3nmz`bm}H(qxxTN}JF~xh zuA*1iq~M*?Z$)3bVoD8-BqsHufegjqcEBM0g`pEbU5>k_7kfBuj~E9AEYIfEbl~Un zbiAj$4o;xf^7g_PPco$>gWY*DJHlG$Q~J!jQVphH?hp_j!`R-Ms`nn%`P-iG7?_&} zob7lMl_u^q_VsG3$m^r8`RTe2sxj#DNQj|k$+PD%pJ|chv~fl+(i!*9O5G+;cr~RX zXktWOw$7`ecKL;rkiIFQAJucJ)BC=V<3EsV@#rY#XECPVl~VQERMdggPr63gsMNWj z$Q!O96$Ma`Ds|Jw+ii19gyaYgzf3YG;S!t0Py61_BZ|C?D_(;t6Xj2rSco2oq`i$m zb!)OCg$|E8VZJE^gyB?1M=~RIApjXlGC&hab0Xv9g&x(Cx4Q;Y#{lxv>2}|t@0jWm zQ!l7AKFlFd@4h@a1Ex*Q9n{fJ+1Nt z1cg;AeHl6e)t_axxTl2(2MJ(K5SW^4GESM7N$vi z*lW5Kz{0jZqT>x0{k5hK`uXTx^Q|$>xHAuG(UUX&DchCuMWFrO!%^55W$)wbL!6922sd}O@`j(AXJ4P)Lh zWmJY;Arxn)*Y48&NMQ2XwIHF@*7NO9{NRZ&`9$^(*5GLq&q)-hM!cjwu@;8uyIxo3H!{ zJV}P`GEiV45Jc-YUUqOdmLQncvh6XH;3}8fpf^FJm;i=ZFZ|3`?fj^>x+F7epfR6FG8i!wTGomX5b6r2vw>)1`KIL}(@(lqd8o}svGe}Q~w?oq#K z$ z2r~w1#L`Yp^0HJW;L~I1^Y2|LDdJ+7G{&h8aM3MCnIShxXDg7O9oIh-*FUz~=KSTRiQsfL@2A1H&CHNWCXeLQdcqmV@pdl4}u*=su!^CcX3Q{wM}Nx4yEHj8q%-cB%QzLh6f$<^02d;!gwL>^bG8~C8%XFzTka@{#_Qu z?a_mN_rByh(%u=7)*uf-x>ua9mL%bJcHy68T!`TaoZ*pv=3bNcwW|iry_{Vvgn9#^G*k(?=SDo&tw!Z6${1M8T|HA?Qt8a=m;VIE%J%y)R zsAtn_A(APFZQ%p+gcihS@T~l2uTNPtj>q} zNgEawpt@n_+c!!ko_gSUqM3K;HjmrckBrJmY+;$+p424-laLVYTEE{;PYMv16r_tm zudXQO*VI~5_j=BQo%!HWZlp$#Hpyp^u{AAly+HTq7lkeQOP+$CxaEzaQLM?el1Vd@ zW~d2hh?1x|SK~Kq?_XIG#L+;uF2HP=9GD2S_7KT^jMwFfW{G=D-@1T9A|!A-t4s~u zX%SOc9&Q3Au&3!i<2wS)1$aX>y-~W=Du$7t4^!$J+*Q}fwo$2yPfx`=h=V6RN9-1ukwAKbI2z^bu@vH5hnWShJ?qI z7}?D&RP&1JimX|E8w-<4)C_>VDQri2zi|35F>SftqS_t&idQ!lnS>AX--&)Nemb2U z@mPdzo8Vw?{h_6BJNv;JE&_#C4sZInMC^JgGPEbBX%#aTwVU5f9_c$>(yp>V46=X0 z`7$f6!gzuBWW}}r$B>6^`jD|SM7th|KV;GM1<9uwNCGM%pUlx)|CvRH zM3COXGqNm2B!t(kef~TcM4af};P+(DV;}XlCr}9mHgS<)FsFxK^n3N!VXODRn%>7L zvb)&>9Ws&!SAf%4Hwby4nWA=^zPw}9!p2}!tLQ5!=(YN7j;L3?u_3A`+gN#pt2M2F zBT#scC|Y`e=JJzFRkt7L2OV2%QAY?Pj(4w@A*mdt7Ava4T;A}jBz+5Lcv*7V&b}@A zyp?4v4HDvFAL=!nCTi9BNNJR(Ze-%!Iy%CH6=1M7&cI8`O!nJB%=*IN(ZK1fd1Pp$ ziwF0~S*TnhL*!%mf_JheZlkYlW-IsR!$Dyld$NGM7jZ~(C~@d=_|P(?SQ^eId~vm?h>0LZR;2G`EUrAr_dXz-I#RHXt@_l*?^~mLE;pzDm@&Vg z@#^;Svm#S}FymKNWHvl0;>%BtlEvAyiF8rt4W~OVSCBVO_ok`%Y_;X)-XZkkr%<(V z$lX=4>6}ElfI!aI!dEZ}c~cQBMGoYiCj(zoIbdoU475pDum{z2CxjY7l5>+?Ln7tlC@{zR&VTG%LdZ?Np7_eC)y?;U<%?ZVaP3Q^pmoPxtfVV~wU z;{$2VaIbNK?CXwvwq}M6j1+@eFhoYfz7F^4I5e2~U3nzv?e3s|9%@72c^7OGwHWwK zQTP+>v`J^=o`jIgySTgE21j)5&@p=UoIh2}{nXMyfv(uyNNBue;WuCVu#`vy{S z=Gz#oJl<;H$fxZQeSbCEfr4h{6G6E&#n=?yYUl+qKr zN&0E+p6Nap{>4p$Wo9!)Z=x9hG{b4gskCUI1PzZJ8iKEN-6z=JVK;5pTg4#B3JHFn^jsn>^RG>edEveKn1pk>AFDbvRW!8Z~_%@$o#If68MLG z3@N_L1)lt$nR@%hq0OTHI?coUlhXFeiTLyf6NHZ_I~zUQfE>~5R_K_rV76Wi+OkJk z+&yR>7X)g{Fz9liV47UhtjsccVj{>_c=Oyr z%JB4KEH1U4v~Zd3qCi9qEs()_oZacMuUe@0JFy3Lns`a9tEa>LD5q*)gg|(mkdh67 zQ|qeu#-7H)D>fbOqShP8@kd8dQ&fjRyGe)kd7%UBdMy+1mAG7ar{{^4)bx+6U;9_5 z7semRFtr-u?-ri$=OZ^lMn5gtN9MM?XrhX=5~~kveU%_xh3|rEZd!4e^YxDU-Y5QV zUl&}+AX*4I;XcODHrvxGYZc6Z<g1$g^xT(YAJH-ebfaWVH$s@@Fwcpqrcm=!k zoF3ZsxF+@<{M-q@@^SG#d-u}AIVSyk!RnRIJ9RTzk!YQom~(#ia&|4;60pD6Jl(al z!Ppe(@e5Si=SY5wi`W27?GrF2P)!~kJEb+4b0WHBRk)-uZuned4IlKN+odeOd>c}s(+tXpq*VXpLv-4(SbM`Ga)%MIvzSJ>*+-rik8%f&}ATM3gKW-Z%YmnMRPzT)!DAY@fphqb=A z!^6G=Lyzj_=H{;(PlRl>XAI=)Dk}@QyFzIqPI-8FXA=1rg`fbDz|qF=Hty2ln2bWI zaADmx_Vm;eb4?$+e+k`IyG0S zt!tWXvvQc2yH)&a#Y6!qR?qB@6J|aO*Fi%s(mU!;sCeiuqYE-T3|_l(t^kC$y9Aq% zR@Y0atD{A`F(Z-T=`hm8h6tO5@4T*cbBM;X<4x}5*!gHwVD~xxk)Hi45UW|VP)=T$ zqb-?bLqK&+O%a3W;P}jXKR*_{A)`CsXf?q$4P;%|^CJGw>ox zk9`iJ&2XwG=2qj`N-1siHAQr=0nLQ=zFgAl^dDJEA(=cNiJ7RUu$mwwq6{X3}Wcj?q2PD;a_?qiI^(z9?@0qchxigLZHROWQ@DY@&YR2K{oZ zf@#7o_2MebpZF?EG>pC35<(|~b@xjdV9DRKbQ6KY7!6ov%Q)3HPthBC;abY}=Xnz3 z^1C+!N4GEg*7XBNt?n{o<3i-+vs!#jo=>_+mmy^XML0g;Kh(4+XDa!-mjXLMLuh7*c>M1A0KCV- z<0zA+14Th{G2!#2u(`dF=oFtwl!MjfB%vZJOWR_N@@n|>Yy=3q(b*kdRwDQ?mL6S> zHAtuF>IilQf8LAKB)w-59S$$G5p(zQg!`QC2+|X&<`3?N0CfJwxOtZceair+K5&wB zEpw0d-&1Ar#J1L)>$IKYVLC!g={9$7GJ2YHh;B@`vyf55inRSwQ93dO-px$pie3SC zzX_HfLemrC0cQw&DAJdzUUG2}O!&%GjU+FBhYh=PxSH?XsIWX3_2QnO4h~nuhM9B> z0PI308)81!k|9Jb%CANIL9hPwgt%9TKh);z=I269u>qF6ko7@BK-OSHgRoM$tI@pv z5#sYzb7^liTkDMY1kD8%;Nb3P|KGc}xF1Bj7}c)5!F=!tIN{Is%*d)aQNOtEbQ1)> z*Fb@?p(xZ6{#ncmG z0oM-btIze06)ETyS6p%;tE$RC?N`!aEMP@n{7wIcaCSglg`|q3oSjhdb?FRuPkWXE z_w@hEvHb+h?mcT~vYawexdfU_LBdE=79G6VEAlz4>KWdmz54o z0Cm=a+X3|1)v1L=Bfy?1Z@CSQ(M?URPo0ZV1B==G{Pt2dp?Fq5&1+mjEY!bYA@Tq+ z{<+6x6;O-Mz?k=N;r<1f@ljWZF`=x!redKWR}hmpgATeab)U+hL!54D)DYREKf>!w&R5H*%X8ZcW+%TM7guDi(*#Q&a5 zo(~PwU*amQe?;$s5b=mCzPiOI-Onz;ogpE z8hQ^3W!2WybYbkx`M!ExvkZSg#b1Egjhs-^I!_+g&^|tCFqI!9XL2>c-$h5vQLUWQ zebKh{lbEUySsM@5NqMsf*s;FFoVDxQFaK+fal*&T=~pWmsd?w5jz5v%~rE^`mB#k zOjMpN;m0#i7e_auhvnNzXmYj}U(~7NJ2FJQ-_ZB!!R_?Tj)}Jq%kNmT%0xY_+jJ&K z{@28$nbvdJ*7j&AH=yU-ToUNi`gBm)H@jpuiZdJE?$ftaNX*sjg*9)D(0l6ai+K?dEDa@;rZ! z(A!)CEflJ6i)w;GWh%Io^sG8SAnnu3He z0Xv_78EM#Lod6zLZNkdJINqHXnA#~P>8H?>jiI^MWI>nw^%@`Wr=UnKe;j?NP7p)yM%cj?p zx4pg1+qP=;ZIg9=g7WsK41}~(VKDuN-PO*Flk05QDCx0x^q%h80Zo%P+(0wI3DAju zcIa=R`y1MQfV@G96kh0%-m=ooDEU--_XrMP`9BQjzhusD(pqoeOF4{;UK&W41T-qS zcKsa+>0Gt|iLjN%k!j>YjbXUi<9o>cXVd$&il|=V(U=@~IyyZ}Yq6WN+ zKX0QU(w>`ns|od*(vGhi^fz7dn%fR)xuneaX2OvF^&!bYQ?-o+)-l)2tgP3#-}w0W z4jA^?Pj_2UkSKx!e&4D-#1WDT!D4e)bUlCk`p?DD+>ki_5OM>GALAbK|HeijahUyO z7pF$T``iBr)vrzTOmHLBY3Tlk-7fH%Cs5FT{;vRBiTwlc-Bx^{ixb5?!}KdK0g_+a z-=0GMxd9Cl(#OB7<48t-uP=h}_n!Ctqm1sSE&u|sg#Y)JL-+IjKUc&=`Z$08q5n1H zhWi=1?{f9u5xWuqzxme{3I27(KLa|W`Og@EEB+mj$bZK8&m<7SApg4J-vON={WHe@ zKH?to|Nn>!sQQt$_>)=rwMTSCy4_iZ_t+NaE^)&HOQQ`$uZ){5cq zcI9Ge-r&a5EpOtR_wDh4!oU z~hVlt3cYqOf_1a|F`4lG&pFRV0qZN!@!HLN(W0K@J^u*{NW|tQaueBGx3>}C?R7(bNp^a$*cpeE z3CmHrm@`~4$(9LXBD3V?E)jW^6ldJ{x#ILBS_+<>&B2{5LkeM%hMs8b+-=5amvgnu z5ho0+sHKp{W35g3XfDzOVxJ<_IVAH=9>zzh(z`oFXJx!^z|qq*ET#(GQTk zz{kHin7b}$Mv>l#EoRJ}$<6o8hAVoJbpVI+LWldaB<$RIOMaD+&c3pWf(pNM#I}Jf81a zDgRPfv;A7lXbq)2&L(0<65`)5uMpXm1$_Gn%uL^rIkg|ubpDl8`uf4jvcoCL3akU` z-j!hyIT=|gp+ef?2o8JuKXMzqwA&gfdmf&$VQxO-w>BaHu{2$1I*J?kMiVJ@@aJ(w z8k060pL1muW${=s^AE-zUmRjFKcqqez3!<{Sl~ln@|PCor6tyZp-xV0TDYYzpCf3= zkh=k=MP}rV8S!_4TT=abg}P@UKZ-Sr+i{od8@HRm?0*F3?lBcqZS-VCu$v>A=GUWA0q34$_>h>>j_0;> zO-%(oK{8&~?ke_1KS}?zP1RC;r;|Cbv%;1aI~_wFZy$r1#qiCA(Vnitf)*ZYIFTR~ za#F-yKi|CJJH!&h^Xmd)wA>!(1a5>x1T@e(CU$GGPDMLA=W$TP0>a~fAQWBx&kyyp z5+05juNK^RqBUJ_RGp_KMi~%)CN0^6yut|+?80cCI>qiT7Ym#Wt7z?x-fs;}q9=d= zO7xub6Zj_S<~V55R6ARo4Wyrw+(j87T|vglcs1q4U<=t1gIvo)Ab31Ry3gKw2pK6^ zS~8o^Gi0!!Y!|(EwN?9jdi?emBWw$Ic0l%n*>Q<6rnP~TmtH|v>T0efPyOFpvaCt@ zZFfX!nkKR{^YC$b&78H}J&FMeode`$zP?JLZ6F#9^n{QF1~kD+c$tOzZJ7>!QHgM< zkr9oB)%I)^4QglPGY?Y!3^o$q{|fQhi=p<_G@aMBPb`u4OJ}EcgC)71n5OfA-CXR~ zmO8Y?K4$9g+Ge2AV-ph#BjB6;3EXs`5Ew7|Rcg|#<@&}37bmBrrzjnYV*~t)NDqbkE|NJ z0*Nlu!Iay`>gtOqaCZigSZO?Uf*j}kM}_Q_ER;-HY4IBuvXw;c%aDZKYFGq(&c8*l zQoj7st!vxY=WZf~3W`}WxvtU)HJcnD&}y}F^Q{fk@@{MJs%yZ1@{!vFg@Z`bmx>o2 z`aLFl&qNL};`%d9Md33+n++>pop(qUEWCFYU>k%9jdvmU=F1|v5KzBt)q8$YV29%b z%@FMH>t!)=<+bB!8#vUD6LAp+O!u#Kmcm;OwHG=B`yD`Kk9YxAG?IR#GyH=S=fZ%G;OVfy3alpYLGaZLtj=_ zCWsRp?$rG(c?yvOkg2*k_LzSe`rz~&H_llE}Vhz%aip;a8C0}hal(^ z!=?(y0dbUHjZ){m*|wP_6U411`b%3syxw9($bdwKhlvTxVkMY-7x*4n!VT(M^WhOt zC#MUJr>jrkAl$dwIP`88Bx2&WVunvxMZ%#So4kv#1X2G>4bir%$-^~|w6cxeF&M$p z0QI+v&KiagQ^i{Yz<$|FDm4z7fq#UB7kc}7<17sb?&i+yvyzDd^WD58wk;r>1u%}B z2-5qYG?%%vR_&uj-j}a~t0Duh_TIYru{{8*wic&L37Q1%E#7;;T1Cc(9=^IeoDYroNVK(o5ItSHqz{E#KnJ{<6VCeaa%G6|xyb zU>D-&;gq{}4(qddHpDA>Bbey2+z%d+l*}0*(wbpll~(GF$awc!u#7ji0c3(>Fh8pf zYk#Y(B{} zZ&C1t)R1{3!DD3fTg}CZ1Zn~Z17Hh{0?&RC^PgNkF%qrYsn*=lPbTWhpg!#+YWRC5i8r? zi#429CPs(YsiuTgI^oA4RU?axU(YT8piHwlc$X^dV^7r#% zJlNlZw80C##3tV^pN(4>n3v?xJ2vH2so(iLnc*|WiogdPN99$o}o)C~V~KwmFXjqqV&f_c6)JS9K`iw6O*w=Zbw1K1Cq^E@myU`xYK zReqGVhXVHNtI!wZPlI3c;1Td$`AtnWNmludq+ zXMGZ7+&@ZZz45HS)yfqd`~>~+cR0jxo9F7{X-)CRiakUwmE?@mEjFO8ckpGWgv zKd2=FZgTIA-M!i8(>+!K`p$IzEIP2}L_jjERLGv=3G@7ic2Oi8TR(oCVMq9_hYE|| z*TO29;k2^Tnx?W1dFr4c3jQe?mm>9g8KMAVC<&lWPwD+qM@T)5y;wP4AjqBBNsWBW zsWme-6`Sv6?0)KbAsnpRK4WobB9QDHWKsX>vnTbaqa+pS0usVo17^PTZ!u#0NznwZ zwbW4 zfgH1X{aUW}Gu}91$B27Bvf8ey0V@vR!>GO*xbqA-R{}EF=uWF+f!Nl%pHV9H@L}SN z8|zMPR{W0>jj2FDR=_gu2f_$QXkb+SL0H%Mo2I&u2J6a`+|;-@>t`?qV6FO z*%m@pnDZ+M%qp|6&X~e7el6ZZ;EFNpIL;}+FdtyDSbA32_8v{@ozAu%J@eQJU|`6I zRD%^{YQA*=AiXysB)EQ4Piuyx(NIF8-lZLv9r0R%+1M(6=f5+-1XH% zz8cKt8R{^aTS(1`U^WzWxNUFx=Ev55Z`FN6| zTE$hx`A7=)O;WaG(6!AuPsBy$XD5ufEVql#3R)I&L2V$1U091 z@vpM!m#+dYVP=-{PlX5H!&?eRkX;I}?w!PRWvaU(-cOpdtqCE&mCe0>jsMz$vn&AC zc_D8=Nf-(}UU_c7hWP$yQCie-hNWNWshyw!ZWG`#A-iYutcc1cr+KV$=WpL!{ZD_0 zPGSq&hYGaZtv_c=Mu`C9hMSnb?o$7;@R7zsS$Q3SGcmEVF;r3_Q{U9OT4~PdnNbD4z1>uM_mJw1P?1sm*W`;oVN1j3cl)(3{giRSKFJ5% z2Q-@RuSO@k0Y!3CNz@c$pOuu9jE;sZ_#Ox7CSq=^MTb3!>g(fq)fx+fqOy;=t&g9d z0Jy!-yEKF=fsk5-mQB%|K2u(4=q*QJn-m+HdNcmHc!}u!#218+<)`XwoAp@qoN7xw z;PjR!JB%LB&PJQsYu-$#!#=Xavm#bVL^TRg)wH+R$_Ec3=@t-}3%)rUd!%@hz!*T| z<0~~j6F_++w-^k-uopp=3nZ+8t8I5SK2C6T#ukw*%+3zS^lor7NtLa;KGW^-{601= zqS{xgWVxQDTh;k`fiEO>=iCAS_@1C7>L~CWj7^K4-@NZp8A$B3V9-*z=L_QU?v+J# zO|=t$<~hqG*RA8zfeF#ta&RL4d>|u$babi%#c(q57|S^OuHF0Rd~a+g!@mjT7Bfrx z=hG;6Po>^9CJsnqcgfdZTb&)*s%IJDv(STkLLgi1znSQGZ9sKv-|%HV62;|!T^$^T zwTTZmoStp)a__%!QH=gh;XkyK^97nHP;>V9n!0ouG_KO z!+;2F3=-n@nEOz5J3hX(S`vElpklv)`YG&UAZjlHo?RyGJEig9Rf$^4yqaC7e%?cA zmy~@V8dE_1q7!j9`1p~4T{u&i{-=LnOksV5_);wUl@6}*xo+bAGP0=a=y$)(+3q7|Se=sV)q537XKkW4?rhcC z78x{>Pa?g&e6V^OSYo6zm7dOo5P6Qhbt8nZ*qG0f&Bw<7A~HrZJTI`QUzO(nYa<{y zw%fOH``=s)2|Vk4D##rLRI+xP^JXcpD=Fd0w^DK-Z!E~8$Cv$9XX|rF!yDmtLW3Mk zNAD@>b_0OV#Yt8&4apMG!WK1B&<&o@*x|`GGfOKJoB3Pnn0x1qDj$o24C4aQjaO>{ zDZ>o7z?HETa#fZg^YP0NYY2jwYWDT^we?+%pn#H(#@;}4*)z7zHoWsKw9*Gr%+hHO zk;*&t`DyS732HN8$tLF?Gi{)4Ezw2VO>ANP1W@IL{E3FBC&riTzxYKWOz?47Th^Zs zfX7}8XHvpWQco}YxEZ~KXT0rsURqZpq1@^cpki79fRpQkTGtKezz4W2_0FT7p8m9R zZoe}cu1G#rRw}d5uP%0TN^xxQz1*e{#Z4QUMcO;AN5V>O&lTp_;0Pv}YaU(@D680` zEhKCt8ilL+v#YIQBzLnSPY|y&43|{by}M?C40Sd6`~hRE{h9^&uL~0$e@n~D38-|b zS>s@j@h<5r^E$@_Nzev=#P$BmZ6k6{arOXZW0-oq$eU3i50_6T>OBDkgQhNkTkIxy zP3+*pc#CcgCLGJEy@-{cq*a^dRt9rlJDIwVMWh3j*Pf8=N1{iCcAtM# zrf(_zRw0=53%se$Ebp&xKY@;poZ{AZsD1GP~caVKRlYiG8i27Yvev z#=6hAMC`whPXCI^^rT95aCU~E6t6sCr?I_`h`UJ+Nde61M#cPsKEe1nok8&Jz>O^U zF>!+X4Jc1Z#LPt9$rQ-4{jqOE1du-%F1&39^C^s!^cK|v(NI>amB63r3*;Pc(^x=M zzI7L|MgJjIeOElUsnYk*kyFyh_?J~Id%qV~ z@8})B&I-sYDX48OxklZbH4j-*z0R-{HH^6654=hPjN?FS;%&qm<*!f5Y(zzs%Ch%T zIWW;z5o%vc5B9Yaj<~3h{nKzAm~DtAIWmbksfm#NPv@wRR7eVjTI71*h{(g$l(wrX z{HJ4uOsPf*1PdhNWh9Begs6}~q5ql@Kpy9hKmx|6h>IN3cVIUa{{4iIF;!g}DBtno zNzZQ}_sN(*0c_080~h@HM@sWognxcWMt}k+frvckHmCgXx>qN>RdTXt3z7@gC#GiU z5{Zlj)E^QmFU1@knFx6w3AJV`8Jws*p1X8T_dpk(C!C8fW^A-@o~ViLJYN7HR^ts+M^@s?Qkxkqx!=O686a{kWxs+ zlX}e@spi}-eEHxg0?S74JZZGccsQ?ua5&UCU~gUo*NteEt|#~Iv3 zjBfC4gfA=rpDDly4GG z@gZDkcWvLAoGj$%qK0p|{PqXX5X(yBJo$oLXE4tbi3b$@`&2fN&N$g9nlyF@!h0iz z!~N09QLDm_UH`q9z#(VhB>khRwb6rvxMVaw{Hb4M_H=FL?&E?}OI!s71DQMtK8quC zl(O4r*;g^N6v{kNO7e}H-hg$QNHF^m+Wn}7*^P2LYEiJep&$Vd;_DU)bzfhPfs-;V z98)MqXCF`#1SuAd2u{}d7GD)KU-GK`1Z<7vPy;Le0qyp?JHWiYoveSo^KAg0DC<~- z2hpu3OLPyW7!=PSb}@@153&b^3knO5W~pJOYZD`_T)l{U*I_`Rj0(9-DkHJwPkQ&v=8Vh=@NF#VhtNDJ8}`f4z|59jPjl!@d=R7MIQ-&n*4wl3NkYu_P_XfywKo1zEe z;M)Y3JRZJrJ4hHt40R%eP*o{=y?V5{ko<`-?LqAjr%J^@k;On4=m&?EFCnBcSJl_< zSayi>WKt_J?G2m2@NATDVhjyyJ(wSklD#6Qo^E?^^AX2`PNVV5_!Bu z*D=jztGkYQ@0nq#h0J$4B;7MHcWOpU(&$%2v@#zT69A8>m#N2wJ>vh-o=B*D=Ay!7 z0XYaxzjT6|NR3powpO-rzv&j_xqOIV$S{rKY6rw~rkNo}01<;~m^GNC6Fh*cEih64 zzcYx-elV)vG%0b0GLRUxjgVBZn_8tZG^*CfmY$aKAzirMbBkctQILgZ>TVy34G$O+ zqfQ20cH8SCE`l9l>R-KyG={pHeR*Uq>5(w%XYAg|!U(rR5TxbL>-T^_9b4VvED{Yf zd6!WK7KQyUWc`m(hCbhR8UH5qBHc6WP^rxCC7oj`wZqnSTKLv!c-YnZr{V9m8ZPe! z=yM_jy;jW>y_^G1+sw-fj|R=f9xm$oe(t8T?oyI%uT>j*Hv_$gLM&A*0Iqw*h!=24 zBjxmc)4iWJY-acj6ML6P77{;f7;_p-rSqBEJy4Dn>?2IQAnkM3PWYK55P0Be`~I1P z!wZZtGJE;vQMRV&x{Gg0a?FyX|0qdFFq3cpTpjx)xy_tOJhq)t%nt*UPky1c29O~4-kYx%c-+sNvaXxp zG~qnLZ+%u=y;v@&-yK>DxFOrA20hp>;YYS5j55MI-yR;HK6AXc&@=FLhnAHjmtL^F zyYzqh3&G;niQ-2nJ&!vdQ_!g7Rd{X8OK(KVY3u3n?kN|Q3oZ$s8>7|}I*DaGJ>ssV zc=yIPu&=oN@Hy*t8f5fUOw=}}yuErg-A0}JfFGR0{WmD?ORp;X_C`p?gWPBGv*lI? z>sjUILn9Kh{?j6Jw_3yiB!rUF6}WZOm=Yk&lAEq_MnnuB0w4U34Mk-QyKKata};wJ zzR~CH86)9B%mMJK5r*qoEb4h#A;OB!qeuUK=AIo&pHMHuTI|!d*JP}}wb;kuNf-gq zkG%}lQbS=4$#4n%ha)Y5R*fX_-E>OVZPRyCO?TtfW%cUjtd&AD3=DIZ^r6ZpnoI8v zSW?8h({bdPo~w-UU2XRnewE|(dc710j;by%a+0m2H#br8Qv>!BaJnhzzP`O%EZW?%e=-}61$ ze&(TGQqu0RC-3U;%JDU|d}QowQxkB=kF>Qgcu(O?vY>$L*^MUwYJqfYCAdj(!|{@A zmCyJmMI@DzPumjdk(o|T#R<6M+x6yr`%SzdxA?hLwH_8V4QPR|)eZdp83nZi{k}?~z1FFiJ7Bs#6@1%|cn-h*9%$kYQke=UT<1IN~F>g3BAMIG}9d5ZMDP;wQN7@n<(;) zzQM7jxcMP-a`tKy!|WjTcv@v9YFYIg_{WSW)e?fVsq2(2L9^6U zsl^vyDIpd5sN;sB{Aoo;PW&%3lQY*6=$JQf<&_tJySw1yrAGKUGq+$=L+ zaPo>me{2pPvx>E8WL9Hgo?2Z#ND9EePWqC~a!o=OuXcn#FXQTp=r!UkN*^_dySW*~ zkB|VObpW*g3kTY-E^p`!kz7igcu!tg{VbiOIvef~i%#da#3{!;O)Q`vi4k(>`obTl zHon4dRww7${NXikt=&+_azmTV5A>W$tIt#V-n&3znvOk3<9z{B>l=d%U=6#YHl7O@ zElZvw(jUJNwG;#pR6}(H9MBz|^Mbd9cNhq0=p}@{0cY z372V=M>7#lH;{-cRA}^Z4ws00)3eVGl&(fmoDFc9w8|!nwP>;4= zSQuzJ3n=QqMngXps>*UAERB{G+`pe1$}f}+nF5pjrT~63C42c1Y@ae)2R$?lvv@Z%98oJc<3I?0N$R>@U&Ikrozbxf8IIC^~N4*57F|94yF(0L?2Gnb$-8LKi~X zvaH;Ay>5VnG7d20rx(C$kX=;B>mX+qDkKrk|D{Ie>UiX?;BHfwcla$D@FsEJ1O#@N zj1#LDM{XZ3KjFW$(y~B5SWF1rJ<#@B-zYjvD_N2~T1vvJZS78ucX8eU(P9opEEb>U zLFbA;OkK87r1%$=7W-Z!8tUzba+Z2jEuJdK&(@2lUr)$Y_cU!Lxr>Z3lk2grO;*{T zvhh7$P6ji^V=eJ>*FBy4ebifUcrz(MX#B))B|fr4PEdtb5W6#$79$so1src$#g!5I zbB#V+vYpE0uurVngukrf=Dq^Isor~7y_q#4!M|W?(bQp~{ z&Ac$_Lz&1eTEmn)nx&*m|A96G#PW}GoC1Ih`N}D43 z#v`~j;c4R$%E$tGIL{jU=wX+lA&u^}_W=nk2wR+f?UmA0eL%NKBOAh1K>5{jk0|DV z2-qrP=}Oa-(-dy@q4vOhFzj$I^ZhpiQD?OjJBHfsu631t7>$3R-~LE?#&0-iyr^ZP z(TfN%nl0%wLX4m=$|qgqfSCnB6!Q+r1J#SZh@xSiS{)iTwf$}~l!8KR=aE7Iy+Z)q zHv;ssHElul89EAJ5CBe%&RZDXUMI)6h=`YwwF+c7VwM3{18F$vXC(9F(|Lggk%y{V^zLvu>f&Ko5K-EaK}_ykh2aRvq_! zf2@k%#Dv|)uMf@a@N>Oxaq?*R1MQ1m6>aen&}%m1e4esKF)DmzGzt?Z(&@-!&E_kP zAY7_!JOu9hgx7gWl3}rerzbWwH`3Qf z$tuhO+5+C>EMWt`rX5rYCYXW_>Yl8`)ZTbrJn~3cCsFS&K!-$gsDI&gT1qY>QtPJ7lnK`}0%#uxYa#x7p9?roDn48;#{6Jo6R+xgQ1+ z8`0N$dlA4W10H9EI!`xIrYyyk4O4lP^2(67FS5F_gR)^`fP9|BUyEYaKNWOvD(+!}9!2 zE={{pbjo(s4;~I`iWl8V7edipes^DdxVy^tK9>thFhNF(LSiJwthg0Kp|`zF_jPvw zG2=JmC}>Wc9a=z+iEDYU2ns?cKZ9Bra4%v(3hq>1i%$hW6u@r9rrt!H#BD-;Z~Gl= z-*dT#ilOCRIK5#CksPnJMs|Mf7Ky=ug?`~L_IpTeq=_cABXVlRyvqYy_ zVxR;Ta^b!7^`tD5I_>mW4jB$#iZd-ZXeDdlGFJL1W{AqZRKJKq0UZ;gT^=1Z{_O9C z4guHbJlOY|<+xc37m6>zmLx9=oHj?bMiQa1`+Qwd+z)>4LqoVZO};dUbC2rC%zfqf zBON=5qH8|DESH@5fidASm_65NIEW>d_&Lkhrz{Z|WW*d!FO}XHMMB(-mHVtpnQvTU z(8kfh1>s$0mf#KHb$rRA9?D?WK8K$#;RKwTExlQKMvxiQUUR@QyQ?oya%Cg_&~z~1 zf&`$EQ^}!zvuT2bOuOvea*25NvqLo&nz^ca8rEW0DS$;-b(uryM?q0c(+=q3Kx0dCOQ&|P&C)?f~{d#(GKHw|&+2a=5MzkTSqsD37=?vgBfH`){t^HkSs zN3?QiU;s~?$*hf<{kM#N$M>{XJi6IpE#~xI^EUz*=B=Ps!1CGI2bm*zE7spYS) zS0p<+F`rQjQG%zcF!$2>G0v7)U@{;WC1lb)RPy{Ss`br?NF^17x7o^}Sxj(KZRp7b zW{VP@UH)?`YRtw6&$vFzU^m{hNq73|B>G6Jsj%8v-<q*B#I?a`<3I6QS@EgwX z9MeFt;gQ?M~F$euv$kQ{}vhUgu)V#wHsaL{(kC6p&y7Ftb;T?0ztLx7s z@h<|Ji)F{)-x5z;nWZM< zDDC_jMzu{e{bpm6Xz^`mFDHUA#Pfe0mDQ#A9NdB-eUkP=h8*@ZSlWyxf4opFY_KB) z2cJH@o*x5}^7A5rY+9wF?z;@08J;!C*}@X*i>fOBI6?%}4M%H4S{|zo#F|nKl3TT7 zv8&oJ)*FnijlRyytURFNnrG7az|FY%<55NDjmOFpObDNN<(}BukYCm-LDBx1ou?S} z9wY)yZg#y~rtd@>j*1y@doL<>$2}i)6W7NG3DWo3apGI=dKU&JW8F8wq;O2&+&J0b zg&=+_#puY>5`CF9N*WMvM%Pmz@?`F9PrV|r;^wRJ&F&il2-sOIN2O>FP|Ls<$IPYU3 zv_*pkw{S+LKWZpcQIe2#Y~fy+=b)nFxIRcAIla60^(0HmJFvBgyR>u6LtmwGQjkM9ze_&n?J3_n4An&zK)&XvadO6Jk0*w+gjG@0;6asRD8DYZC5}{cs^oU;_SLVa}v?3*P zO%Hn+!3Cze+y-{?RFAJS`LyX_n57)l(hHXk<)bCgCv@P0m%o5`(2zX?5)ZJX=+fy@?`^-HJ8f#|l&)Jzu*Io!oer31cq?>kr;$PZ zd)|?+0T#$HDsYa|UmJmqz@OMMvS#p7tyr^J%z9S8!?TjItd-@{8shJP(BCi0p#A)rh4_XQZpCR%an<3r%%qBuzL3}R<` zGH^|T7v--Ch6=bIDh-DC{d=l*MTNMT)u(v4yqpcJ?Q?L%F+(*!C@1VFPmc!i8$Er} zx@3jjGILPK-TspCXtI~$U_y#*=oIhX+@}@YYr4Y4Lh@|9H2k*6 zaE1qQan_Olu9Jog=|@{Z+p77!MTjVJ+z?QwBRf_0&fN2uK%3maXgd*8)jCOk{2VTb zP$*lBO>0KLAeNBBthl(eLXSgszb%dVY@d;YnUS4GX7=s$(NHEIESABVp-Zt?@QtU( z1*|qiD7pk4xsCIwIKE^c6PLGdQl0s%v!!!Z9L0}wHX~K-(C5FjUT0LSU%#XI>P^fuuYXW!(iskSz!4DH%%#RY(`;u?&KkB)mMH|B|}8K$#;7TW;k@o(4+xPDOl z@eGn1-+$ldr%Z%V%_|7vu%+XQTaNuFPy1w>5ecIxjJyRzu?9Vs9c7IF-7J<@1}AUH zqB%gn_~=q}?~M>y_QJ-RvQ9QJMbx2QwwUpvdpB~X z7BSu=4;oQ+ktwG&ES6!AZ*J$vLV58c zGgAXz?AE}8E;I6q`wvm?tUs>Jp6FcRJOOyia{EXlq%4&oqCbfHlH zJBTe zjRx6Eb}KDp#1h~o+txJ^Sj;2VAQ|x6Fc3K>e_eGLa&euP-~#cuQmdD|R8ct}E0At9 z#&0VXYmwTz^etx-Yk zbz+W--w12Y)2!HPWmd zcFoAR)om!$H)bf|2Y%T4mx6=UbNGqmq@QF6Tcgmy9G?o8+=zORDi78^{1N>lc29YA zE~%87ZyYzvDi|Q>B54o{>?azWjcTHXY|JGNPY2p@SFjH1vXgo*5S0D(B zrvvCaQ*W<3fa}s>vcOh)g%wRsJy7!C-TV@unZ{p>K_MbBfxo}LMj0HL4oTiTY^Ly} z)sk4V;SX09_?>064|HTC!TU0gBP(K$r?x$Tc0wiGsvNl)Cuo^&*^i5qQpS3r%Y@;B zFIMY9j%~3#-$J9HSfuftzYrIkw311LV2km&{IPb9rdQ-b0xP((z7N*^?t=ldb!|MH z&CPrSm6yI*xrxv{Do5ka|SSd&ZKu=E)X&nt1Bt(u7d-afuUU7QXweQs?C()Y% zsh!Ui-ewrJKNnDClD@>x?C>>Xd>29GLs;#MFT$JQ-a_ijM2?}2RVm%?^~pFU<6WMtdL6fJ4pt zzi)gYHLty$Dj6=~MaF>7@{tKiP?X~m9t=;2*3CpCek4Yn9G#B z*=R`G7Pp_mIz;baA3CCEq${&NimhQnM62y1+Xo*c#o?QbzgG;@J75P7Nd(PqrK}3X zNH1J3_lwD5JYBq5JWfuA4VxQH4jZ#CP=0E*#NBCSdBR!wPB=dh9(~ByR6Jx`C~Z*R z)B^HwzsvrD-w$K3%C%?>#gK*rBw}8r73BE$q9y>}eVosL3DHt_;`5TZ&+9i|hI!gR z7{g^OR1k7;YTqu~+ePm6B{g8*BggkNy;%h98#M4>`lJcGd-OI1P-(%J0-oWm;R_LR zU;Y(E14&Y^$47AdGNR~?1iepIVf+WZ^s_s13s)BQu{j4{#K~cCzw2K)((%tpl38)r zP(CsPy!OJ(tdB;h#*g`oDwFn|=+Mp(s-uF%uhJi#-%klztIw5=wvRHO|E zXyZLF&90FdzIyljo4z@WpV-=lOW9Hg;dPPXx2~UMQ`ig%LC4QGEx47XecfC zs}LLiY@(U>F_wy^Xi(SI-Bq>;(Nm(}{z|?zv?T_kH4|l5owLcbn?lq#G*!swDI>)2 zOYDg_tcfQnWt)6qa(b)N+U($E%oAs1yb>mkohhcORYF*|f~<(;zN)1>y_0|q7_$9R z{tjIYqhpxwgyD3Jv`QC4_!oW=w^|Q-h0(@wH(Bniz2%O#F7s*h*{g_P9wHb*SY&qg z`nkqBD7cDzTI-mvhH4beB4EC@>|}{3%>I1dK5SK)D=h?nkZsG_ZW>uvL8{hxW8Vza zr+@Zr(sOF?<8Tr?5&!Cc_~WaDTC>FlV+Ji*>dFu-s8;;!3UL~Z6~<_M1_Q0{Pa&`L z!DHdMOVo}G+84G@p8Yx9{o1d6;#Mslm#L-z%(=1!2#JcA%ohOhMT1OfQ|DnM^e5xa z<;GiEmy47^M`0f;r3XRI z@8yQLd3bniqpd!!+fF~xz8ogK=7&P??F^`t(P_1xb36Op9d&bf3cib!(gj1l!r*WT zYzRc=(kbf^Q1oGc*A!k`+a3tH;@IrGmpiHIcd=pCqa2$Yfqe)$t5*3?lGD#o6 zY<1GZBxDh1F~4k<{PY$cUI(=w#^HLOyfPBcR3afMs&9I^Jvur)H(PgpHnTPM0Db>3 zi6WXiT0YvOaEw;>zAjf$3UGQKc(9uaY;`n+<0#zVIU{OOGi^8q^CIhvw589|(v+z+kzJ2;;p(%}@U- zM|tx}{A^y@)p&LHt}cx(y)LMz=bx{)3P@`ww4@&AjwY7z_T7I>{yI&UT$f6hW+VNt zc+k+KB^x2o(agiQCED@3{$SN{WYbQ@S`Fvj|Lc6TyK40YR00ybAxorW?Q>J&zb6~Q zayNI_=_BV$H;q$i8ljmMK^bls<{#DrfXcx4A2x@76Jo6W5A_4dAIbwXF!ilS|1w7W z?@igb|3i53pJWtS|4n8g^*_`V5VZN^TPBA8X1ut4TQUdG-2Wonkj=go+byLBK!y=q zbxV){kaqn4-Sn5=!WX#nUmPB|XoCc|tYo)x_~%J~Z*ut0o5HS8H{d_aAi#eJXKg@L zT4(;v77}_Pg%;eLa?9oMU(6l1E$abTDgHk2pXagM{`w!95ZSG z+RD{!ul`7-X)dU6$LXus+AP#!vpSFpfi4R?4GnE>cW(SdP}%9L#a11Y-)`!ROvVLa YQ|Ahc&~_vl@IBfSB`w7=d8^R>55g)M5&!@I diff --git a/assets/images/help/security-overview/security-coverage-view-summary-pre-config.png b/assets/images/help/security-overview/security-coverage-view-summary-pre-config.png deleted file mode 100644 index 5d4079b49f93c9bcd8cc3294463276c1478f34a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101506 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𝔚U5hC{=dCk6vu{DTBoE^RD+lP@gvWaoJ1ilc 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 From 00f030d63a66a86b685558658d18746e0e6d4131 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Tue, 7 Apr 2026 10:07:21 +0200 Subject: [PATCH 03/12] Copilot Code Review User Activity [GA] (#60459) --- .../reference/copilot-usage-metrics/copilot-usage-metrics.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md b/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md index d246d6045812..f45306054726 100644 --- a/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md +++ b/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md @@ -94,8 +94,10 @@ For example schemas of the data returned by the APIs, see [AUTOTITLE](/copilot/r | `daily_active_cli_users` | Number of unique users in the enterprise or organization who used {% data variables.product.prodname_copilot_short %} via the CLI on a given day. This field is **independent** of IDE active user counts and is **not** included in IDE-based active user definitions. Omitted for enterprises or organizations with no CLI usage on that day. | | `totals_by_cli` | Breakdown of CLI-specific metrics for the enterprise or organization on a given day. Independent of IDE metrics—CLI usage is **not** reflected in other fields such as `totals_by_ide` or `totals_by_feature`. Omitted for enterprises or organizations with no CLI usage on that day. See [{% data variables.copilot.copilot_cli_short %} metrics fields](#copilot-cli-metrics-fields-api-only) below. | | `used_cli` | Captures whether the user has used {% data variables.copilot.copilot_cli_short %} that day. | -| `used_agent` | Captures whether the user has used IDE agent mode that day. | +| `used_agent` | Captures whether the user has used agent mode in the IDE that day. Does not include {% data variables.copilot.copilot_code-review_short %} activity, which is captured separately in `used_copilot_code_review_active` and `used_copilot_code_review_passive`. | | `used_chat` | Captures whether the user has used IDE chat that day. | +| `used_copilot_code_review_active` | Captures whether the user actively engaged with {% data variables.copilot.copilot_code-review_short %} that day. A user is considered active if they manually requested a {% data variables.product.prodname_copilot_short %} review, or applied a {% data variables.product.prodname_copilot_short %} review suggestion. | +| `used_copilot_code_review_passive` | Captures whether the user had {% data variables.product.prodname_copilot_short %} automatically assigned to review their pull request that day, without actively engaging with the review. | ### {% data variables.copilot.copilot_cli_short %} metrics fields (API only) From a3ad25d29fd7bc1f955d9399e7d7c935844c8b3c Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 7 Apr 2026 01:32:46 -0700 Subject: [PATCH 04/12] Delete orphaned features (2026-04-06-16-36) (#60649) Co-authored-by: hubwriter --- data/features/code-security-multi-repo-enablement.yml | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 data/features/code-security-multi-repo-enablement.yml diff --git a/data/features/code-security-multi-repo-enablement.yml b/data/features/code-security-multi-repo-enablement.yml deleted file mode 100644 index 9865699abfeb..000000000000 --- a/data/features/code-security-multi-repo-enablement.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Reference: #9212 -# Ref 17108 Advanced Security available to Team plans -versions: - fpt: '*' - ghec: '*' - ghes: '>= 3.10' From 01aa887140e9f36f3223dfb3644c5a4fede6d6dd Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Tue, 7 Apr 2026 11:01:53 +0200 Subject: [PATCH 05/12] [2026-04-01] Add CLI metrics to organization user reports (#60591) --- .../reference/copilot-usage-metrics/copilot-usage-metrics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md b/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md index f45306054726..9327ebbb7ed7 100644 --- a/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md +++ b/content/copilot/reference/copilot-usage-metrics/copilot-usage-metrics.md @@ -92,7 +92,7 @@ For example schemas of the data returned by the APIs, see [AUTOTITLE](/copilot/r | `totals_by_model_feature` / `totals_by_language_model` | Model-specific breakdowns for chat activity (not completions). When {% data variables.copilot.copilot_auto_model_selection_short %} is enabled, activity is attributed to the actual model used rather than appearing as `Auto`. | | `last_known_ide_version` / `last_known_plugin_version` | The most recent IDE and {% data variables.copilot.copilot_chat_short %} extension version detected for each user. | | `daily_active_cli_users` | Number of unique users in the enterprise or organization who used {% data variables.product.prodname_copilot_short %} via the CLI on a given day. This field is **independent** of IDE active user counts and is **not** included in IDE-based active user definitions. Omitted for enterprises or organizations with no CLI usage on that day. | -| `totals_by_cli` | Breakdown of CLI-specific metrics for the enterprise or organization on a given day. Independent of IDE metrics—CLI usage is **not** reflected in other fields such as `totals_by_ide` or `totals_by_feature`. Omitted for enterprises or organizations with no CLI usage on that day. See [{% data variables.copilot.copilot_cli_short %} metrics fields](#copilot-cli-metrics-fields-api-only) below. | +| `totals_by_cli` | Breakdown of CLI-specific metrics for the enterprise, organization, or user on a given day. Independent of IDE metrics—CLI usage is **not** reflected in other fields such as `totals_by_ide` or `totals_by_feature`. Omitted when there's no CLI usage on that day. See [{% data variables.copilot.copilot_cli_short %} metrics fields](#copilot-cli-metrics-fields-api-only) below. | | `used_cli` | Captures whether the user has used {% data variables.copilot.copilot_cli_short %} that day. | | `used_agent` | Captures whether the user has used agent mode in the IDE that day. Does not include {% data variables.copilot.copilot_code-review_short %} activity, which is captured separately in `used_copilot_code_review_active` and `used_copilot_code_review_passive`. | | `used_chat` | Captures whether the user has used IDE chat that day. | From 06a0f403198138ec484914a990149598bf44409a Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Tue, 7 Apr 2026 03:12:53 -0700 Subject: [PATCH 06/12] docs: update copilot-cli content from source docs (#60596) Co-authored-by: github-actions[bot] Co-authored-by: hubwriter Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: hubwriter <54933897+hubwriter@users.noreply.github.com> --- .../cli-command-reference.md | 207 +++++++++++++----- .../cli-config-dir-reference.md | 8 +- src/content-pipelines/state/copilot-cli.sha | 2 +- 3 files changed, 152 insertions(+), 65 deletions(-) diff --git a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md index aa5c5936556a..a460528081f0 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-command-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-command-reference.md @@ -17,7 +17,7 @@ redirect_from: | Command | Purpose | |------------------------|----------------------------------------------------| | `copilot` | Launch the interactive user interface. | -| `copilot help [topic]` | Display help information. Help topics include: `config`, `commands`, `environment`, `logging`, and `permissions`. | +| `copilot help [topic]` | Display help information. Help topics include: `config`, `commands`, `environment`, `logging`, `permissions`, and `providers`. | | `copilot init` | Initialize {% data variables.product.prodname_copilot_short %} custom instructions for this repository. | | `copilot update` | Download and install the latest version. | | `copilot version` | Display version information and check for updates. | @@ -74,37 +74,44 @@ redirect_from: | `/add-dir PATH` | Add a directory to the allowed list for file access. | | `/agent` | Browse and select from available agents (if any). | | `/allow-all`, `/yolo` | Enable all permissions (tools, paths, and URLs). | +| `/changelog [SUMMARIZE] [VERSION]` | Display the CLI changelog with an optional AI-generated summary. | | `/clear [PROMPT]`, `/new [PROMPT]` | Start a new conversation. | | `/compact` | Summarize the conversation history to reduce context window usage. | | `/context` | Show the context window token usage and visualization. | +| `/copy` | Copy the last response to the clipboard. | | `/cwd`, `/cd [PATH]` | Change the working directory or display the current directory. | | `/delegate [PROMPT]` | Delegate changes to a remote repository with an AI-generated pull request. | | `/diff` | Review the changes made in the current directory. | | `/exit`, `/quit` | Exit the CLI. | -| `/experimental [on\|off]` | Toggle or turn on/off experimental features. | +| `/experimental [on\|off\|show]` | Toggle, set, or show experimental features. | | `/feedback` | Provide feedback about the CLI. | | `/fleet [PROMPT]` | Enable parallel subagent execution of parts of a task. See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/fleet). | | `/help` | Show the help for interactive commands. | | `/ide` | Connect to an IDE workspace. | | `/init` | Initialize {% data variables.product.prodname_copilot_short %} custom instructions and agentic features for this repository. | +| `/instructions` | View and toggle custom instruction files. | | `/list-dirs` | Display all of the directories for which file access has been allowed. | | `/login` | Log in to {% data variables.product.prodname_copilot_short %}. | | `/logout` | Log out of {% data variables.product.prodname_copilot_short %}. | | `/lsp [show\|test\|reload\|help] [SERVER-NAME]` | Manage the language server configuration. | -| `/mcp [show\|add\|edit\|delete\|disable\|enable] [SERVER-NAME]` | Manage the MCP server configuration. | +| `/mcp [show\|add\|edit\|delete\|disable\|enable\|auth\|reload] [SERVER-NAME]` | Manage the MCP server configuration. | | `/model`, `/models [MODEL]` | Select the AI model you want to use. | +| `/on-air`, `/streamer-mode` | Toggle streamer mode (hides preview model names). | | `/plan [PROMPT]` | Create an implementation plan before coding. | | `/plugin [marketplace\|install\|uninstall\|update\|list] [ARGS...]` | Manage plugins and plugin marketplaces. | -| `/rename NAME` | Rename the current session (alias for `/session rename`). | +| `/pr [view\|create\|fix\|auto]` | Operate on pull requests for the current branch. | +| `/rename [NAME]` | Rename the current session (auto-generates a name if omitted; alias for `/session rename`). | | `/reset-allowed-tools` | Reset the list of allowed tools. | +| `/restart` | Restart the CLI, preserving the current session. | | `/resume [SESSION-ID]` | Switch to a different session by choosing from a list (optionally specify a session ID). | | `/review [PROMPT]` | Run the code review agent to analyze changes. | | `/session [checkpoints [n]\|files\|plan\|rename NAME]` | Show session information and a workspace summary. Use the subcommands for details. | -| `/share [file\|gist] [PATH]` | Share the session to a Markdown file or GitHub gist. | +| `/share [file\|gist] [session\|research] [PATH]` | Share the session to a Markdown file or {% data variables.product.github %} gist. | | `/skills [list\|info\|add\|remove\|reload] [ARGS...]` | Manage skills for enhanced capabilities. | | `/terminal-setup` | Configure the terminal for multiline input support (Shift+Enter and Ctrl+Enter). | | `/theme [show\|set\|list] [auto\|THEME-ID]` | View or configure the terminal theme. | | `/usage` | Display session usage metrics and statistics. | +| `/undo`, `/rewind` | Rewind the last turn and revert file changes. | | `/user [show\|list\|switch]` | Manage the current {% data variables.product.github %} user. | For a complete list of available slash commands enter `/help` in the CLI's interactive interface. @@ -137,7 +144,9 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--disable-mcp-server=SERVER-NAME` | Disable a specific MCP server (can be used multiple times). | | `--disable-parallel-tools-execution` | Disable parallel execution of tools (LLM can still make parallel tool calls, but they will be executed sequentially). | | `--disallow-temp-dir` | Prevent automatic access to the system temporary directory. | +| `--effort=LEVEL`, `--reasoning-effort=LEVEL` | Set the reasoning effort level (`low`, `medium`, `high`). | | `--enable-all-github-mcp-tools` | Enable all {% data variables.product.github %} MCP server tools, instead of the default CLI subset. Overrides the `--add-github-mcp-toolset` and `--add-github-mcp-tool` options. | +| `--enable-reasoning-summaries` | Request reasoning summaries for OpenAI models that support it. | | `--excluded-tools=TOOL ...` | These tools will not be available to the model. For multiple tools, use a quoted, comma-separated list. | | `--experimental` | Enable experimental features (use `--no-experimental` to disable). | | `-h`, `--help` | Display help. | @@ -146,19 +155,22 @@ For a complete list of available slash commands enter `/help` in the CLI's inter | `--log-level=LEVEL` | Set the log level (choices: `none`, `error`, `warning`, `info`, `debug`, `all`, `default`). | | `--max-autopilot-continues=COUNT` | Maximum number of continuation messages in autopilot mode (default: unlimited). See [AUTOTITLE](/copilot/concepts/agents/copilot-cli/autopilot). | | `--model=MODEL` | Set the AI model you want to use. | +| `--mouse[=VALUE]` | Enable mouse support in alt screen mode. VALUE can be `on` (default) or `off`. When enabled, the CLI captures mouse events in alt screen mode—scroll wheel, clicks, etc. When disabled, the terminal's native mouse behavior is preserved. Once set the setting is persisted by being written to your configuration file.| | `--no-ask-user` | Disable the `ask_user` tool (the agent works autonomously without asking questions). | | `--no-auto-update` | Disable downloading CLI updates automatically. | | `--no-bash-env` | Disable `BASH_ENV` support for bash shells. | | `--no-color` | Disable all color output. | | `--no-custom-instructions` | Disable loading of custom instructions from `AGENTS.md` and related files. | | `--no-experimental` | Disable experimental features. | +| `--no-mouse` | Disable mouse support. | | `--output-format=FORMAT` | FORMAT can be `text` (default) or `json` (outputs JSONL: one JSON object per line). | | `-p PROMPT`, `--prompt=PROMPT` | Execute a prompt programmatically (exits after completion). | | `--plain-diff` | Disable rich diff rendering (syntax highlighting via the diff tool specified by your git config). | +| `--plugin-dir=DIRECTORY` | Load a plugin from a local directory (can be used multiple times). | | `--resume=SESSION-ID` | Resume a previous interactive session by choosing from a list (optionally specify a session ID). | | `-s`, `--silent` | Output only the agent response (without usage statistics), useful for scripting with `-p`. | | `--screen-reader` | Enable screen reader optimizations. | -| `--secret-env-vars=VAR ...` | An environment variable whose value you want redacted in output. For multiple variables, use a quoted, comma-separated list. The values in the `GITHUB_TOKEN` and `COPILOT_GITHUB_TOKEN` environment variables are redacted by default. | +| `--secret-env-vars=VAR ...` | Redact an environment variable from shell and MCP server environments (can be used multiple times). For multiple variables, use a quoted, comma-separated list. The values in the `GITHUB_TOKEN` and `COPILOT_GITHUB_TOKEN` environment variables are redacted from output by default. | | `--share=PATH` | Share a session to a Markdown file after completion of a programmatic session (default path: `./copilot-session-.md`). | | `--share-gist` | Share a session to a secret {% data variables.product.github %} gist after completion of a programmatic session. | | `--stream=MODE` | Enable or disable streaming mode (mode choices: `on` or `off`). | @@ -280,32 +292,32 @@ Settings cascade from user to repository to local, with more specific scopes ove | Key | Type | Default | Description | |-----|------|---------|-------------| | `allowed_urls` | `string[]` | `[]` | URLs or domains allowed without prompting. | -| `auto_update` | `boolean` | `true` | Automatically download CLI updates. | +| `autoUpdate` | `boolean` | `true` | Automatically download CLI updates. | | `banner` | `"always"` \| `"once"` \| `"never"` | `"once"` | Animated banner display frequency. | -| `bash_env` | `boolean` | `false` | Enable `BASH_ENV` support for bash shells. | +| `bashEnv` | `boolean` | `false` | Enable `BASH_ENV` support for bash shells. | | `beep` | `boolean` | `true` | Play an audible beep when attention is required. | -| `compact_paste` | `boolean` | `true` | Collapse large pastes into compact tokens. | +| `compactPaste` | `boolean` | `true` | Collapse large pastes into compact tokens. | | `custom_agents.default_local_only` | `boolean` | `false` | Only use local custom agents. | | `denied_urls` | `string[]` | `[]` | URLs or domains blocked (takes precedence over `allowed_urls`). | | `experimental` | `boolean` | `false` | Enable experimental features. | | `includeCoAuthoredBy` | `boolean` | `true` | Add a `Co-authored-by` trailer to git commits made by the agent. | | `companyAnnouncements` | `string[]` | `[]` | Custom messages shown randomly on startup. | -| `log_level` | `"none"` \| `"error"` \| `"warning"` \| `"info"` \| `"debug"` \| `"all"` \| `"default"` | `"default"` | Logging verbosity. | +| `logLevel` | `"none"` \| `"error"` \| `"warning"` \| `"info"` \| `"debug"` \| `"all"` \| `"default"` | `"default"` | Logging verbosity. | | `model` | `string` | varies | AI model to use (see the `/model` command). | -| `powershell_flags` | `string[]` | `["-NoProfile", "-NoLogo"]` | Flags passed to PowerShell (`pwsh`) on startup. Windows only. | +| `powershellFlags` | `string[]` | `["-NoProfile", "-NoLogo"]` | Flags passed to PowerShell (`pwsh`) on startup. Windows only. | | `effortLevel` | `string` | `"medium"` | Reasoning effort level for extended thinking (e.g., `"low"`, `"medium"`, `"high"`, `"xhigh"`). Higher levels use more compute. | -| `render_markdown` | `boolean` | `true` | Render Markdown in terminal output. | -| `screen_reader` | `boolean` | `false` | Enable screen reader optimizations. | +| `renderMarkdown` | `boolean` | `true` | Render Markdown in terminal output. | +| `screenReader` | `boolean` | `false` | Enable screen reader optimizations. | | `stream` | `boolean` | `true` | Enable streaming responses. | -| `store_token_plaintext` | `boolean` | `false` | Store authentication tokens in plaintext in the config file when no system keychain is available. | -| `streamer_mode` | `boolean` | `false` | Hide preview model names and quota details (useful when recording). | +| `storeTokenPlaintext` | `boolean` | `false` | Store authentication tokens in plain text in the configuration file when no system keychain is available. | +| `streamerMode` | `boolean` | `false` | Hide preview model names and quota details (useful when demonstrating {% data variables.copilot.copilot_cli_short %}). | | `theme` | `"auto"` \| `"dark"` \| `"light"` | `"auto"` | Terminal color theme. | | `trusted_folders` | `string[]` | `[]` | Folders with pre-granted file access. | | `mouse` | `boolean` | `true` | Enable mouse support in alt screen mode. | | `respectGitignore` | `boolean` | `true` | Exclude gitignored files from the `@` file picker. | | `disableAllHooks` | `boolean` | `false` | Disable all hooks. | | `hooks` | `object` | — | Inline user-level hook definitions. | -| `update_terminal_title` | `boolean` | `true` | Show the current intent in the terminal title. | +| `updateTerminalTitle` | `boolean` | `true` | Show the current intent in the terminal title. | ### Repository settings (`.github/copilot/settings.json`) @@ -316,7 +328,6 @@ Repository settings apply to everyone who works in the repository. Only a subset | `companyAnnouncements` | `string[]` | Replaced—repository takes precedence | Messages shown randomly on startup. | | `enabledPlugins` | `Record` | Merged—repository overrides user for same key | Declarative plugin auto-install. | | `extraKnownMarketplaces` | `Record` | Merged—repository overrides user for same key | Plugin marketplaces available in this repository. | -| `marketplaces` | `Record` | Merged—repository overrides user for same key | Plugin marketplaces (deprecated—use `extraKnownMarketplaces`). | ### Local settings (`.github/copilot/settings.local.json`) @@ -394,12 +405,15 @@ Prompt hooks auto-submit text as if the user typed it. They are only supported o | `sessionEnd` | The session terminates. | No | | `userPromptSubmitted` | The user submits a prompt. | No | | `preToolUse` | Before each tool executes. | Yes — can allow, deny, or modify. | -| `postToolUse` | After each tool completes. | No | +| `postToolUse` | After each tool completes successfully. | Yes — can replace the successful result (SDK programmatic hooks only). | +| `postToolUseFailure` | After a tool completes with a failure. | Yes — can provide recovery guidance via `additionalContext` (exit code `2` for command hooks). | | `agentStop` | The main agent finishes a turn. | Yes — can block and force continuation. | | `subagentStop` | A subagent completes. | Yes — can block and force continuation. | | `subagentStart` | A subagent is spawned (before it runs). Returns `additionalContext` prepended to the subagent's prompt. Supports `matcher` to filter by agent name. | No — cannot block creation. | | `preCompact` | Context compaction is about to begin (manual or automatic). Supports `matcher` to filter by trigger (`"manual"` or `"auto"`). | No — notification only. | +| `permissionRequest` | Before showing a permission dialog to the user, after rule-based checks find no matching allow or deny rule. Supports `matcher` regex on `toolName`. | Yes — can allow or deny programmatically. | | `errorOccurred` | An error occurs during execution. | No | +| `notification` | Fires asynchronously when the CLI emits a system notification (shell completion, agent completion or idle, permission prompts, elicitation dialogs). Fire-and-forget: never blocks the session. Supports `matcher` regex on `notification_type`. | Optional — can inject `additionalContext` into the session. | ### `preToolUse` decision control @@ -418,6 +432,63 @@ The `preToolUse` hook can control tool execution by writing a JSON object to std | `decision` | `"block"`, `"allow"` | `"block"` forces another agent turn using `reason` as the prompt. | | `reason` | string | Prompt for the next turn when `decision` is `"block"`. | +### `permissionRequest` decision control + +The `permissionRequest` hook fires when a tool-level permission dialog is about to be shown. It fires after rule-based permission checks find no matching allow or deny rule. Use it to approve or deny tool calls programmatically—especially useful in pipe mode (`-p`) and CI environments where no interactive prompt is available. + +**Matcher:** Optional regex tested against `toolName`. When set, the hook fires only for matching tool names. + +Output JSON to stdout to control the permission decision: + +| Field | Values | Description | +|-------|--------|-------------| +| `behavior` | `"allow"`, `"deny"` | Whether to approve or deny the tool call. | +| `message` | string | Reason fed back to the LLM when denying. | +| `interrupt` | boolean | When `true` combined with `"deny"`, stops the agent entirely. | + +Return empty output or `{}` to fall through to the default behavior (show the user dialog, or deny in pipe mode). Exit code `2` is treated as a deny; if the hook also outputs JSON on stdout, those fields are merged with the deny decision. + +### `notification` hook + +The `notification` hook fires asynchronously when the CLI emits a system notification. These hooks are fire-and-forget: they never block the session, and any errors are logged and skipped. + +**Input:** + +```typescript +{ + sessionId: string; + timestamp: number; + cwd: string; + hook_event_name: "Notification"; + message: string; // Human-readable notification text + title?: string; // Short title (e.g., "Permission needed", "Shell completed") + notification_type: string; // One of the types listed below +} +``` + +**Notification types:** + +| Type | When it fires | +|------|---------------| +| `shell_completed` | A background (async) shell command finishes | +| `shell_detached_completed` | A detached shell session completes | +| `agent_completed` | A background sub-agent finishes (completed or failed) | +| `agent_idle` | A background agent finishes a turn and enters idle state (waiting for `write_agent`) | +| `permission_prompt` | The agent requests permission to execute a tool | +| `elicitation_dialog` | The agent requests additional information from the user | + +**Output:** + +```typescript +{ + additionalContext?: string; // Injected into the session as a user message +} +``` + +If `additionalContext` is returned, the text is injected into the session as a prepended user message. This can trigger further agent processing if the session is idle. Return `{}` or empty output to take no action. + +**Matcher:** Optional regex on `notification_type`. The pattern is anchored as `^(?:pattern)$`. Omit `matcher` to receive all notification types. + ### Tool names for hook matching | Tool name | Description | @@ -432,7 +503,7 @@ The `preToolUse` hook can control tool execution by writing a JSON object to std | `web_fetch` | Fetch web pages. | | `task` | Run subagent tasks. | -If multiple hooks of the same type are configured, they execute in order. For `preToolUse`, if any hook returns `"deny"`, the tool is blocked. Hook failures (non-zero exit codes or timeouts) are logged and skipped—they never block agent execution. +If multiple hooks of the same type are configured, they execute in order. For `preToolUse`, if any hook returns `"deny"`, the tool is blocked. For `postToolUseFailure` command hooks, exiting with code `2` causes stderr to be returned as recovery guidance for the assistant. Hook failures (non-zero exit codes or timeouts) are logged and skipped—they never block agent execution. ## MCP server configuration @@ -468,8 +539,13 @@ MCP servers provide additional tools to the CLI agent. Configure persistent serv | `headers` | No | HTTP headers. Supports variable expansion. | | `oauthClientId` | No | Static OAuth client ID (skips dynamic registration). | | `oauthPublicClient` | No | Whether the OAuth client is public. Default: `true`. | +| `oidc` | No | Enable OIDC token injection. When `true`, injects a `GITHUB_COPILOT_OIDC_MCP_TOKEN` environment variable (local servers) or a `Bearer` `Authorization` header (remote servers). | | `timeout` | No | Tool call timeout in milliseconds. | +### OAuth re-authentication + +Remote MCP servers that use OAuth may show a `needs-auth` status when a token expires or when a different account is required. Use `/mcp auth ` to trigger a fresh OAuth flow. This opens a browser authentication prompt, allowing you to sign in or switch accounts. After completing the flow, the server reconnects automatically. + ### Filter mapping Control how MCP tool output is processed using the `filterMapping` field in a server's configuration. @@ -537,6 +613,7 @@ Skills are loaded from these locations in priority order (first found wins for d | `~/.claude/skills/` | Personal | Claude-compatible personal location. | | Plugin directories | Plugin | Skills from installed plugins. | | `COPILOT_SKILLS_DIRS` | Custom | Additional directories (comma-separated). | +| (bundled with CLI) | Built-in | Skills shipped with the CLI. Lowest priority—overridable by any other source. | ### Commands (alternative skill format) @@ -551,6 +628,7 @@ Custom agents are specialized AI agents defined in Markdown files. The filename | Agent | Default model | Description | |-------|--------------|-------------| | `code-review` | claude-sonnet-4.5 | High signal-to-noise code review. Analyzes diffs for bugs, security issues, and logic errors. | +| `critic` | complementary model | Adversarial feedback on proposals, designs, and implementations. Identifies weak points and suggests improvements. Experimental—requires `--experimental`. | | `explore` | claude-haiku-4.5 | Fast codebase exploration. Searches files, reads code, and answers questions. Returns focused answers under 300 words. Safe to run in parallel. | | `general-purpose` | claude-sonnet-4.5 | Full-capability agent for complex multi-step tasks. Runs in a separate context window. | | `research` | claude-sonnet-4.6 | Deep research agent. Generates a report based on information in your codebase, in relevant repositories, and on the web. | @@ -591,16 +669,6 @@ When the CLI prompts for permission to execute an operation, you can respond wit Session approvals reset when you run `/clear` or start a new session. -| Flag | Tier | Description | -|------|------|-------------| -| `AUTOPILOT_MODE` | `experimental` | Autonomous operation mode. | -| `BACKGROUND_AGENTS` | `staff` | Run agents in the background. | -| `QUEUED_COMMANDS` | `staff` | Queue commands while the agent is running. | -| `LSP_TOOLS` | `on` | Language Server Protocol tools. | -| `PLAN_COMMAND` | `on` | Interactive planning mode. | -| `AGENTIC_MEMORY` | `on` | Persistent memory across sessions. | -| `CUSTOM_AGENTS` | `on` | Custom agent definitions. | - ## OpenTelemetry monitoring {% data variables.copilot.copilot_cli_short %} can export traces and metrics via [OpenTelemetry](https://opentelemetry.io/) (OTel), giving you visibility into agent interactions, LLM calls, tool executions, and token usage. All signal names and attributes follow the [OTel GenAI Semantic Conventions](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/gen-ai/). @@ -632,35 +700,36 @@ The runtime emits a hierarchical span tree for each agent interaction. Each tree #### `invoke_agent` span attributes -Wraps the entire agent invocation: all LLM calls and tool executions for one user message. Span kind: `CLIENT`. - -| Attribute | Description | -|-----------|-------------| -| `gen_ai.operation.name` | `invoke_agent` | -| `gen_ai.provider.name` | Provider (for example, `github`, `anthropic`) | -| `gen_ai.agent.id` | Session identifier | -| `gen_ai.agent.name` | Agent name (subagents only) | -| `gen_ai.agent.description` | Agent description (subagents only) | -| `gen_ai.agent.version` | Runtime version | -| `gen_ai.conversation.id` | Session identifier | -| `gen_ai.request.model` | Requested model | -| `gen_ai.response.model` | Resolved model | -| `gen_ai.response.id` | Last response ID | -| `gen_ai.response.finish_reasons` | `["stop"]` or `["error"]` | -| `gen_ai.usage.input_tokens` | Total input tokens (all turns) | -| `gen_ai.usage.output_tokens` | Total output tokens (all turns) | -| `gen_ai.usage.cache_read.input_tokens` | Cached input tokens read | -| `gen_ai.usage.cache_creation.input_tokens` | Cached input tokens created | -| `github.copilot.turn_count` | Number of LLM round-trips | -| `github.copilot.cost` | Monetary cost | -| `github.copilot.aiu` | AI units consumed | -| `server.address` | Server hostname | -| `server.port` | Server port | -| `error.type` | Error class name (on error) | -| `gen_ai.input.messages` | Full input messages as JSON (content capture only) | -| `gen_ai.output.messages` | Full output messages as JSON (content capture only) | -| `gen_ai.system_instructions` | System prompt content as JSON (content capture only) | -| `gen_ai.tool.definitions` | Tool schemas as JSON (content capture only) | +Wraps the entire agent invocation: all LLM calls and tool executions for one user message. + +* **Top-level sessions** use span kind `CLIENT` (remote service invocation) with `server.address` and `server.port`. +* **Subagent invocations** (for example, explore, task) use span kind `INTERNAL` (in-process) without server attributes. + +| Attribute | Description | Span kind | +|-----------|-------------|-----------| +| `gen_ai.operation.name` | `invoke_agent` | Both | +| `gen_ai.provider.name` | Provider (for example, `github`, `anthropic`) | Both | +| `gen_ai.agent.id` | Session identifier | Both | +| `gen_ai.agent.name` | Agent name (when available) | Both | +| `gen_ai.agent.description` | Agent description (when available) | Both | +| `gen_ai.agent.version` | Runtime version | Both | +| `gen_ai.conversation.id` | Session identifier | Both | +| `gen_ai.request.model` | Requested model | Both | +| `gen_ai.response.finish_reasons` | `["stop"]` or `["error"]` | Both | +| `gen_ai.usage.input_tokens` | Total input tokens (all turns) | Both | +| `gen_ai.usage.output_tokens` | Total output tokens (all turns) | Both | +| `gen_ai.usage.cache_read.input_tokens` | Cached input tokens read | Both | +| `gen_ai.usage.cache_creation.input_tokens` | Cached input tokens created | Both | +| `github.copilot.turn_count` | Number of LLM round-trips | Both | +| `github.copilot.cost` | Monetary cost | Both | +| `github.copilot.aiu` | AI units consumed | Both | +| `server.address` | Server hostname | `CLIENT` only | +| `server.port` | Server port | `CLIENT` only | +| `error.type` | Error class name (on error) | Both | +| `gen_ai.input.messages` | Full input messages as JSON (content capture only) | Both | +| `gen_ai.output.messages` | Full output messages as JSON (content capture only) | Both | +| `gen_ai.system_instructions` | System prompt content as JSON (content capture only) | Both | +| `gen_ai.tool.definitions` | Tool schemas as JSON (content capture only) | Both | #### `chat` span attributes @@ -685,6 +754,7 @@ One span per LLM request. Span kind: `CLIENT`. | `github.copilot.initiator` | Request initiator | | `github.copilot.turn_id` | Turn identifier | | `github.copilot.interaction_id` | Interaction identifier | +| `github.copilot.time_to_first_chunk` | Time to first streaming chunk, in seconds (streaming only) | | `server.address` | Server hostname | | `server.port` | Server port | | `error.type` | Error class name (on error) | @@ -736,9 +806,9 @@ Lifecycle events recorded on the active `chat` or `invoke_agent` span. | `github.copilot.hook.start` | A hook began executing | `github.copilot.hook.type`, `github.copilot.hook.invocation_id` | | `github.copilot.hook.end` | A hook completed successfully | `github.copilot.hook.type`, `github.copilot.hook.invocation_id` | | `github.copilot.hook.error` | A hook failed | `github.copilot.hook.type`, `github.copilot.hook.invocation_id`, `github.copilot.hook.error_message` | -| `github.copilot.session.truncation` | Conversation history was truncated | `github.copilot.token_limit`, `github.copilot.pre_tokens`, `github.copilot.post_tokens`, `github.copilot.tokens_removed`, `github.copilot.messages_removed` | +| `github.copilot.session.truncation` | Conversation history was truncated | `github.copilot.token_limit`, `github.copilot.pre_tokens`, `github.copilot.post_tokens`, `github.copilot.pre_messages`, `github.copilot.post_messages`, `github.copilot.tokens_removed`, `github.copilot.messages_removed`, `github.copilot.performed_by` | | `github.copilot.session.compaction_start` | History compaction began | None | -| `github.copilot.session.compaction_complete` | History compaction completed | `github.copilot.success`, `github.copilot.pre_tokens`, `github.copilot.post_tokens`, `github.copilot.tokens_removed`, `github.copilot.messages_removed` | +| `github.copilot.session.compaction_complete` | History compaction completed | `github.copilot.success`, `github.copilot.pre_tokens`, `github.copilot.post_tokens`, `github.copilot.tokens_removed`, `github.copilot.messages_removed`, `github.copilot.message` (content capture only) | | `github.copilot.skill.invoked` | A skill was invoked | `github.copilot.skill.name`, `github.copilot.skill.path`, `github.copilot.skill.plugin_name`, `github.copilot.skill.plugin_version` | | `github.copilot.session.shutdown` | Session is shutting down | `github.copilot.shutdown_type`, `github.copilot.total_premium_requests`, `github.copilot.lines_added`, `github.copilot.lines_removed`, `github.copilot.files_modified_count` | | `github.copilot.session.abort` | User cancelled the current operation | `github.copilot.abort_reason` | @@ -771,6 +841,23 @@ When content capture is enabled, the following attributes are populated. | `gen_ai.tool.call.arguments` | Tool input arguments | | `gen_ai.tool.call.result` | Tool output | +## Feature flag reference + +Feature flags enable functionality that is not yet generally available. Enable flags via the `COPILOT_CLI_ENABLED_FEATURE_FLAGS` environment variable (comma-separated list) or by using the `/experimental` slash command. + +| Flag | Tier | Description | +|------|------|-------------| +| `CRITIC_AGENT` | experimental | Critic subagent for adversarial feedback on code and designs (Claude and GPT models) | +| `BACKGROUND_SESSIONS` | experimental | Multiple concurrent sessions with background management | +| `MULTI_TURN_AGENTS` | experimental | Multi-turn subagent message passing via `write_agent` | +| `EXTENSIONS` | experimental | Programmatic extensions with custom tools and hooks | +| `QUEUED_COMMANDS` | staff-or-experimental | Queue commands with Ctrl+Enter while the agent runs | +| `PERSISTED_PERMISSIONS` | staff-or-experimental | Persist tool permissions across sessions per location | +| `SESSION_STORE` | staff-or-experimental | SQLite-based session store for cross-session history | +| `COMPUTER_USE` | staff | Built-in computer use MCP server (screen capture and mouse/keyboard control) | +| `copilot-feature-agentic-memory` | on | Persistent memory tools across sessions | +| `COPILOT_SWE_AGENT_BACKGROUND_AGENTS` | on | Background agent task execution | + ## Further reading * [AUTOTITLE](/copilot/how-tos/copilot-cli) diff --git a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md index 8d9c985f14b9..de014db5afe8 100644 --- a/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md +++ b/content/copilot/reference/copilot-cli-reference/cli-config-dir-reference.md @@ -53,16 +53,16 @@ Common settings include: | `theme` | string | Color theme: `"auto"`, `"dark"`, or `"light"` | | `mouse` | boolean | Enable mouse support in alt screen mode (default: `true`) | | `banner` | string | Animated banner frequency: `"always"`, `"once"`, or `"never"` (default: `"once"`) | -| `render_markdown` | boolean | Render markdown in responses (default: `true`) | -| `screen_reader` | boolean | Enable screen reader optimizations (default: `false`) | -| `auto_update` | boolean | Automatically download CLI updates (default: `true`) | +| `renderMarkdown` | boolean | Render Markdown in responses (default: `true`) | +| `screenReader` | boolean | Enable screen reader optimizations (default: `false`) | +| `autoUpdate` | boolean | Automatically download CLI updates (default: `true`) | | `stream` | boolean | Stream responses token by token (default: `true`) | | `includeCoAuthoredBy` | boolean | Add Co-authored-by to agent-created commits (default: `true`) | | `respectGitignore` | boolean | Exclude gitignored files from the `@` file picker (default: `true`) | | `trusted_folders` | string[] | Folders where read/execute permission has been granted | | `allowed_urls` | string[] | URLs or domains allowed without prompting | | `denied_urls` | string[] | URLs or domains that are always denied | -| `log_level` | string | Log verbosity: `"none"`, `"error"`, `"warning"`, `"info"`, `"debug"`, `"all"`, or `"default"` (default: `"default"`) | +| `logLevel` | string | Log verbosity: `"none"`, `"error"`, `"warning"`, `"info"`, `"debug"`, `"all"`, or `"default"` (default: `"default"`) | | `disableAllHooks` | boolean | Disable all hooks (default: `false`) | | `hooks` | object | Inline user-level hook definitions | diff --git a/src/content-pipelines/state/copilot-cli.sha b/src/content-pipelines/state/copilot-cli.sha index 741b784371d4..88fc117fd962 100644 --- a/src/content-pipelines/state/copilot-cli.sha +++ b/src/content-pipelines/state/copilot-cli.sha @@ -1 +1 @@ -220f40fa27593ccceb482a0c5546fc151e3976e8 +e566c239b96a15dd2d7e2e32b67668227e21f417 From 60b194a314630c5067f91f3b2a3ed2423f743fda Mon Sep 17 00:00:00 2001 From: Felix Guntrip Date: Tue, 7 Apr 2026 16:08:22 +0100 Subject: [PATCH 07/12] Update the ADO migrations landing page to the `journey-landing` layout (#60613) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> --- content/README.md | 19 +++++++++ ...-follow-up-tasks.md => follow-up-tasks.md} | 4 +- content/migrations/ado/index.md | 41 +++++++++++-------- ...d-configure-github-enterprise-importer.md} | 10 ++--- ...se-2-manage-access.md => manage-access.md} | 7 +--- ...positories-from-azure-devops-to-github.md} | 7 +--- ...-migration-from-azure-devops-to-github.md} | 8 ++-- ...migrations-from-azure-devops-to-github.md} | 14 +++---- data/ui.yml | 1 + src/fixtures/fixtures/data/ui.yml | 1 + src/frame/lib/frontmatter.ts | 6 +++ .../components/journey/JourneyLanding.tsx | 8 +++- .../journey/JourneyLearningTracks.tsx | 6 ++- src/landings/context/LandingContext.tsx | 3 ++ 14 files changed, 84 insertions(+), 51 deletions(-) rename content/migrations/ado/{phase-6-follow-up-tasks.md => follow-up-tasks.md} (97%) rename content/migrations/ado/{phase-3-install-and-configure-github-enterprise-importer.md => install-and-configure-github-enterprise-importer.md} (84%) rename content/migrations/ado/{phase-2-manage-access.md => manage-access.md} (94%) rename content/migrations/ado/{phase-5-migrate-your-repositories-from-azure-devops-to-github.md => migrate-your-repositories-from-azure-devops-to-github.md} (93%) rename content/migrations/ado/{phase-4-prepare-for-your-migration-from-azure-devops-to-github.md => prepare-for-your-migration-from-azure-devops-to-github.md} (94%) rename content/migrations/ado/{phase-1-understand-migrations-from-azure-devops-to-github.md => understand-migrations-from-azure-devops-to-github.md} (92%) diff --git a/content/README.md b/content/README.md index 4c2a3dc2aa1b..7b08a17ac52a 100644 --- a/content/README.md +++ b/content/README.md @@ -26,6 +26,7 @@ See the [contributing docs](https://docs.github.com/en/contributing) for general - [`learningTracks`](#learningtracks) - [`includeGuides`](#includeguides) - [`journeyTracks`](#journeytracks) + - [`journeyArticlesHeading`](#journeyarticlesheading) - [`contentType`](#contenttype) - [`communityRedirect`](#communityRedirect) - [`effectiveDate`](#effectiveDate) @@ -284,6 +285,24 @@ journeyTracks: - href: '/actions/deployment/deploying-with-github-actions' ``` +### `journeyArticlesHeading` +- Purpose: Override the default "Articles" heading shown above the article list on single-track journey landing pages. +- Type: `String` +- Only applicable when used with `layout: journey-landing` and a single journey track. +- Optional. If omitted, the heading defaults to the translated value of `journey_landing.articles_heading` ("Articles"). + +Example: + +```yaml +layout: journey-landing +journeyArticlesHeading: "Guides" +journeyTracks: + - id: ado_migration + title: Run your migration + guides: + - href: /migrations/ado/understand-migrations-from-azure-devops-to-github +``` + ### `contentType` - Purpose: Indicate the type of article. - Type: `String`, one of `get-started`, `concepts`, `how-tos`, `reference`, `tutorials`, `rai`, `landing` (only applies to `content//index.md` files). diff --git a/content/migrations/ado/phase-6-follow-up-tasks.md b/content/migrations/ado/follow-up-tasks.md similarity index 97% rename from content/migrations/ado/phase-6-follow-up-tasks.md rename to content/migrations/ado/follow-up-tasks.md index 48dd4b4fbdd6..6985c7d4a0d6 100644 --- a/content/migrations/ado/phase-6-follow-up-tasks.md +++ b/content/migrations/ado/follow-up-tasks.md @@ -1,5 +1,5 @@ --- -title: "Phase 6. Follow-up tasks" +title: "Follow-up tasks" shortTitle: "6. Follow-up tasks" intro: "After each migration has finished, you'll need to complete some additional tasks before the repository is ready for work." versions: @@ -8,6 +8,8 @@ versions: contentType: other category: - Migrate from Azure DevOps +redirect_from: + - /migrations/ado/phase-6-follow-up-tasks --- ## Checking the migration status diff --git a/content/migrations/ado/index.md b/content/migrations/ado/index.md index fe1378d1e1d8..e3493bc004bf 100644 --- a/content/migrations/ado/index.md +++ b/content/migrations/ado/index.md @@ -1,34 +1,41 @@ --- -title: Migrating from Azure DevOps to GitHub +title: Migrating from Azure DevOps shortTitle: Migrate from Azure DevOps -intro: "Plan and execute a migration from Azure DevOps to {% data variables.product.prodname_ghe_cloud %}. This six-phase guide explains how to configure access, migrate, and the follow-up tasks needed to get your repositories ready for work." +intro: Plan and execute a migration from Azure DevOps to {% data variables.product.prodname_ghe_cloud %}. This six-part guide explains how to configure access, migrate, and the follow-up tasks needed to get your repositories ready for work. versions: fpt: '*' ghec: '*' children: - - /phase-1-understand-migrations-from-azure-devops-to-github - - /phase-2-manage-access - - /phase-3-install-and-configure-github-enterprise-importer - - /phase-4-prepare-for-your-migration-from-azure-devops-to-github - - /phase-5-migrate-your-repositories-from-azure-devops-to-github - - /phase-6-follow-up-tasks + - /understand-migrations-from-azure-devops-to-github + - /manage-access + - /install-and-configure-github-enterprise-importer + - /prepare-for-your-migration-from-azure-devops-to-github + - /migrate-your-repositories-from-azure-devops-to-github + - /follow-up-tasks - /key-differences-between-azure-devops-and-github - /use-graphql-to-migrate-repositories-from-azure-devops-to-github-enterprise-cloud - /granting-the-migrator-role redirect_from: - /migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud +introLinks: + ado_key_differences: /migrations/ado/key-differences-between-azure-devops-and-github contentType: tutorials heroImage: /assets/images/banner-images/hero-3 -layout: bespoke-landing sidebarLink: text: Get started href: /migrations/ado -carousels: - recommended: - - /phase-1-understand-migrations-from-azure-devops-to-github - - /phase-2-manage-access - - /phase-3-install-and-configure-github-enterprise-importer - - /phase-4-prepare-for-your-migration-from-azure-devops-to-github - - /phase-5-migrate-your-repositories-from-azure-devops-to-github - - /phase-6-follow-up-tasks +layout: journey-landing +journeyArticlesHeading: "Steps to completing your migration" +journeyTracks: + - id: ado_migration + title: Run your migration + description: Migrate your repositories from Azure DevOps to GitHub. + guides: + - href: /migrations/ado/understand-migrations-from-azure-devops-to-github + - href: /migrations/ado/manage-access + - href: /migrations/ado/install-and-configure-github-enterprise-importer + - href: /migrations/ado/prepare-for-your-migration-from-azure-devops-to-github + - href: /migrations/ado/migrate-your-repositories-from-azure-devops-to-github + - href: /migrations/ado/follow-up-tasks --- + diff --git a/content/migrations/ado/phase-3-install-and-configure-github-enterprise-importer.md b/content/migrations/ado/install-and-configure-github-enterprise-importer.md similarity index 84% rename from content/migrations/ado/phase-3-install-and-configure-github-enterprise-importer.md rename to content/migrations/ado/install-and-configure-github-enterprise-importer.md index d9361150cb2a..14e2dc30744d 100644 --- a/content/migrations/ado/phase-3-install-and-configure-github-enterprise-importer.md +++ b/content/migrations/ado/install-and-configure-github-enterprise-importer.md @@ -1,5 +1,5 @@ --- -title: "Phase 3. Install and configure GitHub Enterprise Importer" +title: "Install and configure GitHub Enterprise Importer" shortTitle: "3. Configure GitHub Enterprise Importer" intro: "Install the {% data variables.product.prodname_ado2gh_cli %} and configure your environment for the migration." versions: @@ -8,6 +8,8 @@ versions: contentType: other category: - Migrate from Azure DevOps +redirect_from: + - /migrations/ado/phase-3-install-and-configure-github-enterprise-importer --- ## Step 1: Install the {% data variables.product.prodname_ado2gh_cli %} @@ -22,7 +24,7 @@ GitHub Enterprise Importer is a collection of extensions for {% data variables.p Before you can use the {% data variables.product.prodname_ado2gh_cli_short %} to migrate to {% data variables.product.prodname_ghe_cloud %}, you must create {% data variables.product.pat_generic %}s that can access the source and destination organizations, then set the {% data variables.product.pat_generic %}s as environment variables. -1. Make sure you have your {% data variables.product.pat_generic %}s for both {% data variables.product.github %} and Azure DevOps ready. See [AUTOTITLE](/migrations/ado/phase-2-manage-access). +1. Make sure you have your {% data variables.product.pat_generic %}s for both {% data variables.product.github %} and Azure DevOps ready. See [AUTOTITLE](/migrations/ado/phase-2-manage-access?token-backtrack#create-a-personal-access-token-classic-on-github) if you haven't already created a token. 1. Set environment variables for the {% data variables.product.pat_generic %}s, replacing TOKEN in the commands below with the {% data variables.product.pat_generic %}s you previously created. Use `GH_PAT` for the destination organization and `ADO_PAT` for the source organization. * If you're using Terminal, use the `export` command. @@ -40,7 +42,3 @@ Before you can use the {% data variables.product.prodname_ado2gh_cli_short %} to ``` {% data reusables.enterprise-migration-tool.set-target-api-url %} - -## Next steps - -In the next phase, you'll use {% data variables.product.prodname_ghe_cloud %} to prepare for the migration. See [AUTOTITLE](/migrations/ado/phase-4-prepare-for-your-migration-from-azure-devops-to-github). diff --git a/content/migrations/ado/phase-2-manage-access.md b/content/migrations/ado/manage-access.md similarity index 94% rename from content/migrations/ado/phase-2-manage-access.md rename to content/migrations/ado/manage-access.md index d4f636fa9d7d..04f39ab60dff 100644 --- a/content/migrations/ado/phase-2-manage-access.md +++ b/content/migrations/ado/manage-access.md @@ -1,5 +1,5 @@ --- -title: "Phase 2. Manage access" +title: "Manage access" shortTitle: "2. Manage access" intro: "Set up the required access for migrating from Azure DevOps to {% data variables.product.github %}." versions: @@ -9,6 +9,7 @@ contentType: other redirect_from: - /migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/managing-access-for-a-migration-from-azure-devops - /migrations/ado/managing-access-for-a-migration-from-azure-devops + - /migrations/ado/phase-2-manage-access category: - Migrate from Azure DevOps --- @@ -55,7 +56,3 @@ If you use your IdP's IP allow list (such as Azure CAP) to restrict access to yo ## Allow migrations to bypass repository rulesets {% data reusables.enterprise-migration-tool.repository-migrations-bypass %} - -## Next steps - -In the next phase, you'll install and configure {% data variables.product.prodname_importer_proper_name %}. See [AUTOTITLE](/migrations/ado/phase-3-install-and-configure-github-enterprise-importer). diff --git a/content/migrations/ado/phase-5-migrate-your-repositories-from-azure-devops-to-github.md b/content/migrations/ado/migrate-your-repositories-from-azure-devops-to-github.md similarity index 93% rename from content/migrations/ado/phase-5-migrate-your-repositories-from-azure-devops-to-github.md rename to content/migrations/ado/migrate-your-repositories-from-azure-devops-to-github.md index b9410b6f6292..a10c74f2d440 100644 --- a/content/migrations/ado/phase-5-migrate-your-repositories-from-azure-devops-to-github.md +++ b/content/migrations/ado/migrate-your-repositories-from-azure-devops-to-github.md @@ -1,5 +1,5 @@ --- -title: "Phase 5. Migrate your repositories from Azure DevOps to Github" +title: "Migrate your repositories from Azure DevOps to GitHub" shortTitle: "5. Migrate repositories" intro: Perform a trial run and then migrate your repositories from Azure DevOps to {% data variables.product.github %}. versions: @@ -12,6 +12,7 @@ redirect_from: - /migrations/using-github-enterprise-importer/migrating-repositories-with-github-enterprise-importer/migrating-repositories-from-azure-devops-to-github-enterprise-cloud - /migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud - /migrations/ado/migrating-repositories-from-azure-devops-to-github-enterprise-cloud + - /migrations/ado/phase-5-migrate-your-repositories-from-azure-devops-to-github category: - Migrate from Azure DevOps --- @@ -70,7 +71,3 @@ If your trial run was successful, and you were able to complete the follow-up ta >[!WARNING] We recommend halting work in the repositories you are migrating. Any changes made during or after the migration will need to be manually migrated. {% data reusables.enterprise-migration-tool.migrate-multiple-repos %} - -## Next steps - -In the next and final phase, you'll perform follow-up tasks, check logs, and get your repositories ready to use. See [AUTOTITLE](/migrations/ado/phase-6-follow-up-tasks). diff --git a/content/migrations/ado/phase-4-prepare-for-your-migration-from-azure-devops-to-github.md b/content/migrations/ado/prepare-for-your-migration-from-azure-devops-to-github.md similarity index 94% rename from content/migrations/ado/phase-4-prepare-for-your-migration-from-azure-devops-to-github.md rename to content/migrations/ado/prepare-for-your-migration-from-azure-devops-to-github.md index edbe1d62be85..f342b2cf9b12 100644 --- a/content/migrations/ado/phase-4-prepare-for-your-migration-from-azure-devops-to-github.md +++ b/content/migrations/ado/prepare-for-your-migration-from-azure-devops-to-github.md @@ -1,5 +1,5 @@ --- -title: "Phase 4. Prepare for your migration from Azure DevOps to GitHub" +title: "Prepare for your migration from Azure DevOps to GitHub" shortTitle: "4. Prepare to migrate" intro: Plan your migration by understanding your timeline, what data will be migrated, and your organizational structure. versions: @@ -8,6 +8,8 @@ versions: contentType: other category: - Migrate from Azure DevOps +redirect_from: + - /migrations/ado/phase-4-prepare-for-your-migration-from-azure-devops-to-github --- ## Determine how much you have to migrate @@ -59,7 +61,3 @@ TEAM-PROJECT-Maintainers | Maintainer TEAM-PROJECT-Admins | Admin To give access to migrated repositories, you can add people to these teams. You can do this manually on {% data variables.product.prodname_dotcom %}, or if you chose to link the teams to Azure Active Directory (AAD) groups during your migration, by managing group membership in AAD. For more information about manually managing team membership, see [AUTOTITLE](/organizations/organizing-members-into-teams/adding-organization-members-to-a-team). - -## Next steps - -In the next phase, you'll perform a dry run and then migrate your repositories. See [AUTOTITLE](/migrations/ado/phase-5-migrate-your-repositories-from-azure-devops-to-github). diff --git a/content/migrations/ado/phase-1-understand-migrations-from-azure-devops-to-github.md b/content/migrations/ado/understand-migrations-from-azure-devops-to-github.md similarity index 92% rename from content/migrations/ado/phase-1-understand-migrations-from-azure-devops-to-github.md rename to content/migrations/ado/understand-migrations-from-azure-devops-to-github.md index fa277903e0ad..1c8415a4f6e5 100644 --- a/content/migrations/ado/phase-1-understand-migrations-from-azure-devops-to-github.md +++ b/content/migrations/ado/understand-migrations-from-azure-devops-to-github.md @@ -1,7 +1,7 @@ --- -title: "Phase 1. Understand migrations from Azure DevOps to GitHub" -shortTitle: "1. Understand migrations" -intro: "{% data variables.product.prodname_importer_proper_name %} can automate migrating from Azure DevOps." +title: Understand migrations from Azure DevOps to GitHub +shortTitle: 1. Understand migrations +intro: '{% data variables.product.prodname_importer_proper_name %} can automate migrating from Azure DevOps.' versions: fpt: '*' ghec: '*' @@ -14,6 +14,7 @@ redirect_from: - /migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/migrating-from-azure-devops-with-github-enterprise-importer - /migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud - /migrations/ado/overview-of-a-migration-from-azure-devops-to-github-enterprise-cloud + - /migrations/ado/phase-1-understand-migrations-from-azure-devops-to-github category: - Migrate from Azure DevOps --- @@ -26,6 +27,8 @@ You can only use {% data variables.product.prodname_importer_proper_name %} to m Before you create your enterprise account on {% data variables.product.prodname_dotcom %}, decide whether your enterprise will use {% data variables.product.prodname_emus %}. This affects how your members authenticate and how you manage identities and access. See [AUTOTITLE](/enterprise-cloud@latest/enterprise-onboarding/getting-started-with-your-enterprise/choose-an-enterprise-type). +To learn more about the differences between {% data variables.product.prodname_dotcom %} and Azure DevOps, see [AUTOTITLE](/migrations/ado/key-differences-between-azure-devops-and-github). + ## Support for Azure Pipelines and Azure Boards Both Azure Pipelines and Azure Boards can be fully integrated with your {% data variables.product.prodname_dotcom %} experience. You can configure your enterprise account and Azure DevOps so you can keep using these services while also benefitting from having your repositories hosted on {% data variables.product.prodname_dotcom %}. @@ -61,8 +64,3 @@ There are limits to what {% data variables.product.prodname_importer_proper_name * **Delayed code search functionality:** Re-indexing the search index can take a few hours after a repository is migrated, and code searches may return unexpected results until re-indexing is complete. * **Rulesets configured for your organization can cause migrations to fail:** For example, if you configured a rule that requires email addresses for commit authors to end with `@monalisa.cat`, and the repository you're migrating contains commits that don't comply with this rule, your migration will fail. * **Mannequin content might not be searchable:** Mannequins are placeholder users to which imported content (such as issues, pull requests, comments, etc.) is associated. When you search for content associated with a mannequin, such as assigned issues, the issues may not be found. Once a mannequin is reclaimed, the content should be found via the new owner. - - -## Next steps - -In the next article, you'll decide who will perform the migration and prepare access to both Azure DevOps and {% data variables.product.prodname_ghe_cloud %}. See [AUTOTITLE](/migrations/ado/phase-2-manage-access). diff --git a/data/ui.yml b/data/ui.yml index a9412e255088..1599a9cce204 100644 --- a/data/ui.yml +++ b/data/ui.yml @@ -285,6 +285,7 @@ product_landing: try_ghas_for_free: Try GitHub Advanced Security for free generate_secret_risk_assessment_report_for_free: Find out how to run a free secret risk assessment plan_your_migration: Plan your migration + ado_key_differences: Key differences between Azure DevOps and GitHub releases: Releases guides: Guides explore_guides: Explore guides diff --git a/src/fixtures/fixtures/data/ui.yml b/src/fixtures/fixtures/data/ui.yml index a9412e255088..1599a9cce204 100644 --- a/src/fixtures/fixtures/data/ui.yml +++ b/src/fixtures/fixtures/data/ui.yml @@ -285,6 +285,7 @@ product_landing: try_ghas_for_free: Try GitHub Advanced Security for free generate_secret_risk_assessment_report_for_free: Find out how to run a free secret risk assessment plan_your_migration: Plan your migration + ado_key_differences: Key differences between Azure DevOps and GitHub releases: Releases guides: Guides explore_guides: Explore guides diff --git a/src/frame/lib/frontmatter.ts b/src/frame/lib/frontmatter.ts index 5ef5b4af6ddb..dd7dd5cde61e 100644 --- a/src/frame/lib/frontmatter.ts +++ b/src/frame/lib/frontmatter.ts @@ -208,6 +208,12 @@ export const schema: Schema = { learningTracks: { type: 'array', }, + // Optional heading override for the single-track journey landing UI + journeyArticlesHeading: { + type: 'string', + translatable: true, + description: 'Override the default "Articles" heading on single-track journey landing pages', + }, // Journey tracks for journey landing pages journeyTracks: { type: 'array', diff --git a/src/landings/components/journey/JourneyLanding.tsx b/src/landings/components/journey/JourneyLanding.tsx index b234608792f7..dddf36be2163 100644 --- a/src/landings/components/journey/JourneyLanding.tsx +++ b/src/landings/components/journey/JourneyLanding.tsx @@ -5,7 +5,8 @@ import { JourneyLearningTracks } from './JourneyLearningTracks' import { UtmPreserver } from '@/frame/components/UtmPreserver' export const JourneyLanding = () => { - const { title, intro, heroImage, introLinks, journeyTracks } = useLandingContext() + const { title, intro, heroImage, introLinks, journeyTracks, journeyArticlesHeading } = + useLandingContext() return ( @@ -14,7 +15,10 @@ export const JourneyLanding = () => {
- +
diff --git a/src/landings/components/journey/JourneyLearningTracks.tsx b/src/landings/components/journey/JourneyLearningTracks.tsx index dc9e456a9fdd..2808360b491b 100644 --- a/src/landings/components/journey/JourneyLearningTracks.tsx +++ b/src/landings/components/journey/JourneyLearningTracks.tsx @@ -8,9 +8,10 @@ import styles from './JourneyLearningTracks.module.scss' type JourneyLearningTracksProps = { tracks: JourneyTrack[] + articlesHeading?: string | null } -export const JourneyLearningTracks = ({ tracks }: JourneyLearningTracksProps) => { +export const JourneyLearningTracks = ({ tracks, articlesHeading }: JourneyLearningTracksProps) => { const { t } = useTranslation('journey_landing') if (!tracks || tracks.length === 0) { @@ -55,11 +56,12 @@ export const JourneyLearningTracks = ({ tracks }: JourneyLearningTracksProps) => // simple single journey if (tracks.length === 1) { const track = tracks[0] + const headingText = articlesHeading || t('articles_heading') return (
-

{t('articles_heading')}

+

{headingText}

    {(track.guides || []).map((article: { href: string; title: string }) => ( diff --git a/src/landings/context/LandingContext.tsx b/src/landings/context/LandingContext.tsx index 1ca8afb1e845..afb95888e8cc 100644 --- a/src/landings/context/LandingContext.tsx +++ b/src/landings/context/LandingContext.tsx @@ -29,6 +29,7 @@ export type LandingContextT = { introLinks?: Record | null // For journey landing pages journeyTracks?: JourneyTrack[] + journeyArticlesHeading?: string | null // For article grid category filtering includedCategories?: string[] } @@ -42,6 +43,7 @@ type LandingPage = NonNullable & { rawPermissions?: string introLinks?: Record | null resolvedJourneyTracks?: JourneyTrack[] + journeyArticlesHeading?: string } export const LandingContext = createContext(null) @@ -109,6 +111,7 @@ export const getLandingContextFromRequest = async ( introLinks: page.introLinks || null, carousels, journeyTracks, + journeyArticlesHeading: page.journeyArticlesHeading || null, includedCategories: page.includedCategories || [], } } From 5bec0ee5bfcf8d17a2f0892b925f5deaf0d515d6 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Tue, 7 Apr 2026 08:15:50 -0700 Subject: [PATCH 08/12] Remove YouTube video embed infrastructure (#60620) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../set-up-payment/connect-azure-sub.md | 1 + content/codespaces/index.md | 3 +- .../writing-for-github-docs/index.md | 3 +- .../using-videos-in-github-docs.md | 159 ------------------ content/index.md | 3 +- content/issues/index.md | 3 +- content/video-transcripts/index.md | 13 -- ...nsumption-through-an-azure-subscription.md | 94 ----------- ...paces-your-instant-dev-box-in-the-cloud.md | 42 ----- ...ipt-using-projects-for-feature-planning.md | 67 -------- data/llms-txt-config.yml | 1 - .../contributing/content-linter-rules.md | 1 - data/ui.yml | 3 - .../product-landing-transformer.ts | 48 ++---- .../linting-rules/frontmatter-hidden-docs.ts | 7 +- .../frontmatter-video-transcripts.ts | 89 ---------- src/content-linter/lib/linting-rules/index.ts | 2 - src/content-linter/style/github-docs.ts | 6 - .../tests/fixtures/actions/index.md | 2 - .../tests/fixtures/early-access/index.md | 1 - .../tests/fixtures/video-transcripts/index.md | 12 -- ...paces-your-instant-dev-box-in-the-cloud.md | 6 - ...ipt-using-projects-for-feature-planning.md | 5 - .../unit/frontmatter-video-transcripts.ts | 56 ------ src/fixtures/fixtures/article-with-videos.md | 15 -- .../fixtures/content/get-started/index.md | 3 - .../get-started/video-transcripts/index.md | 10 -- .../transcript--my-awesome-video.md | 10 -- src/fixtures/fixtures/content/index.md | 1 - .../content/video-transcripts/index.md | 12 -- .../transcript--my-awesome-video.md | 10 -- src/fixtures/fixtures/data/ui.yml | 3 - src/fixtures/tests/playwright-a11y.spec.ts | 2 - src/fixtures/tests/video-transcripts.ts | 24 --- src/frame/components/article/ArticlePage.tsx | 16 +- .../components/context/ArticleContext.tsx | 2 - src/frame/lib/frontmatter.ts | 26 --- src/frame/middleware/helmet.ts | 3 +- src/frame/tests/page.ts | 33 +--- .../components/LandingHero.module.scss | 3 - src/landings/components/LandingHero.tsx | 47 +----- .../components/ProductLandingContext.tsx | 12 +- src/landings/middleware/featured-links.ts | 55 ++---- src/types/types.ts | 7 - 44 files changed, 46 insertions(+), 875 deletions(-) delete mode 100644 content/contributing/writing-for-github-docs/using-videos-in-github-docs.md delete mode 100644 content/video-transcripts/index.md delete mode 100644 content/video-transcripts/transcript-billing-github-consumption-through-an-azure-subscription.md delete mode 100644 content/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md delete mode 100644 content/video-transcripts/transcript-using-projects-for-feature-planning.md delete mode 100644 src/content-linter/lib/linting-rules/frontmatter-video-transcripts.ts delete mode 100644 src/content-linter/tests/fixtures/video-transcripts/index.md delete mode 100644 src/content-linter/tests/fixtures/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md delete mode 100644 src/content-linter/tests/fixtures/video-transcripts/transcript-using-projects-for-feature-planning.md delete mode 100644 src/content-linter/tests/unit/frontmatter-video-transcripts.ts delete mode 100644 src/fixtures/fixtures/article-with-videos.md delete mode 100644 src/fixtures/fixtures/content/get-started/video-transcripts/index.md delete mode 100644 src/fixtures/fixtures/content/get-started/video-transcripts/transcript--my-awesome-video.md delete mode 100644 src/fixtures/fixtures/content/video-transcripts/index.md delete mode 100644 src/fixtures/fixtures/content/video-transcripts/transcript--my-awesome-video.md delete mode 100644 src/fixtures/tests/video-transcripts.ts delete mode 100644 src/landings/components/LandingHero.module.scss diff --git a/content/billing/how-tos/set-up-payment/connect-azure-sub.md b/content/billing/how-tos/set-up-payment/connect-azure-sub.md index 9bee484be5fd..9f4a282ddb02 100644 --- a/content/billing/how-tos/set-up-payment/connect-azure-sub.md +++ b/content/billing/how-tos/set-up-payment/connect-azure-sub.md @@ -8,6 +8,7 @@ redirect_from: - /billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise - /billing/managing-billing-for-your-github-account/connecting-an-azure-subscription - /billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription + - /video-transcripts/transcript-billing-github-consumption-through-an-azure-subscription versions: fpt: '*' ghec: '*' diff --git a/content/codespaces/index.md b/content/codespaces/index.md index 0ab123a1bce5..698c9987f370 100644 --- a/content/codespaces/index.md +++ b/content/codespaces/index.md @@ -30,8 +30,6 @@ carousels: - /codespaces/reference/security-in-github-codespaces changelog: label: codespaces -product_video: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc' -product_video_transcript: /video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud communityRedirect: name: Provide GitHub Feedback href: 'https://github.com/orgs/community/discussions/categories/codespaces' @@ -42,6 +40,7 @@ redirect_from: /codespaces/developing-in-a-codespace/using-github-codespaces-in-your-jetbrains-ide - /codespaces/reference/using-the-github-codespaces-plugin-for-jetbrains - /codespaces/guides + - /video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud versions: fpt: '*' ghec: '*' diff --git a/content/contributing/writing-for-github-docs/index.md b/content/contributing/writing-for-github-docs/index.md index 235a8f8cc97f..1205a9986a04 100644 --- a/content/contributing/writing-for-github-docs/index.md +++ b/content/contributing/writing-for-github-docs/index.md @@ -14,7 +14,7 @@ children: - /versioning-documentation - /using-markdown-and-liquid-in-github-docs - /using-yaml-frontmatter - - /using-videos-in-github-docs + - /creating-reusable-content - /creating-screenshots - /creating-diagrams-for-github-docs @@ -25,4 +25,5 @@ children: - /templates redirect_from: - /contributing/syntax-and-versioning-for-github-docs + - /contributing/writing-for-github-docs/using-videos-in-github-docs --- diff --git a/content/contributing/writing-for-github-docs/using-videos-in-github-docs.md b/content/contributing/writing-for-github-docs/using-videos-in-github-docs.md deleted file mode 100644 index 386e99bb100e..000000000000 --- a/content/contributing/writing-for-github-docs/using-videos-in-github-docs.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: Using videos in GitHub Docs -shortTitle: Use videos -intro: 'This guide explains how to create videos that support user needs for {% data variables.product.prodname_docs %}.' -versions: - fpt: '*' - ghec: '*' - ghes: '*' -category: - - Write and format content ---- - -## About videos in {% data variables.product.prodname_docs %} - -Videos are used rarely in the {% data variables.product.prodname_docs %}. When videos are necessary to provide the best user experience for an article, they are used together with written text. Videos are not a replacement for written content. Videos should never be the only way information is communicated because they are more difficult to keep up to date and are not accessible to everyone. - -Use these guidelines to determine if a video is appropriate to include in an article or on a landing page in the docs. - -If you add a link to a video or embed a video in the {% data variables.product.prodname_docs %}, add the video's metadata to the [Videos in {% data variables.product.prodname_docs %}](https://github.com/github/docs/blob/main/contributing/videos-in-docs.md) file in the `github/docs` repository. - -The Docs team does not create or maintain video content. Videos are purely supplemental to help communicate significant or complex topics, and should be used sparingly because they are not a content type owned by the Docs team. - -## Video checklist - -Use this checklist to quickly determine if a video might be appropriate to add to an article or landing page. - -* Is the video the only way to communicate the information? -* Does {% data variables.product.prodname_dotcom %} own the video? -* Is the video well produced? (See the [Best practices](#best-practices) section for more information.) -* Is the video accessible to the broadest group of users possible? (See the [Accessibility requirements](#accessibility-requirements) section for more information.) -* Is the video less than five minutes long? -* Does the video have a specific audience and purpose in the docs? If it is only relevant to a particular product or feature, you must version it. See the [Versioning](#versioning) section for more information. - -If you answer "no" to any of these items, the video is not suitable for adding to the {% data variables.product.prodname_docs %}. - -### Maintaining videos - -If a video has a maintenance schedule or a team directly responsible for auditing and updating the content if it becomes out of date, you can include the video without any additional steps. - -If the video does not have a maintenance schedule, create an issue with an appropriate target date to review or remove the video. - -## Best practices - -Use these best practices to help determine if a video is well produced and is of a high enough quality to be included in the {% data variables.product.prodname_docs %}. - -Good videos introduce an instructional agenda that includes steps and goals so that someone watching quickly knows what they will learn. Videos are demonstrative, both showing and explaining the relevant steps that are performed. Videos should be engaging and encouraging. Videos must be well produced to be included in the {% data variables.product.prodname_docs %}. A well produced video contains few barriers for people with disabilities, has professional narration (if it is a narrated video), has clear visuals, and comes from a trusted source such as {% data variables.product.prodname_dotcom %} or Microsoft. - -Videos are broadly grouped into three categories: product overviews, feature videos, and tutorials. These descriptions are generalizations of each video type. Some videos might not fit perfectly in one category, but can still be useful without meeting the exact guidelines. - -### Product overviews - -* **Purpose:** Briefly explain what the product is, showcase the main functionality, and get people interested -* **Length:** Less than a minute -* **Possible audiences:** People who want to know if a feature is useful for their goals, people who are new to {% data variables.product.company_short %} and trying to understand what the products do -* **Possible locations in the docs:** Landing pages and guides - -### Feature videos - -* **Purpose:** Supplement conceptual or procedural content -* **Length:** As short as possible, without exceeding five minutes. Break longer content into multiple shorter, focused videos -* **Possible audiences:** People who are learning about or how to use a feature -* **Possible locations in the docs:** Guides, conceptual articles, procedural articles - -### Tutorials - -* **Purpose:** Help novice users get going with a product, drive adoption, or explain complex functionalities -* **Length:** Individual videos should be five minutes or less. Complex topics can have a series of shorter videos spread across an article. Total length should be a maximum of 15 minutes -* **Possible audiences:** New users of features or products -* **Possible locations:** Guides - -## When to use videos - -We might use videos instead of other visuals such as screenshots or diagrams when it is important to show movement or changes in state, like when someone navigates from one screen to another or demos a feature that involves progressing through multiple menus. However, screenshots or text may be sufficient to explain these procedures. - -Videos can also be helpful to introduce features or products where a 30 second video can supplement information that requires multiple paragraphs to write. - -Use videos that explain the value of the procedure or concept that they are showing. - -## When to not use videos - -Do not use videos for features that change quickly and may make videos out of date. Do not use videos that contradict the written content or violate any parts of the [AUTOTITLE](/contributing/style-guide-and-content-model/style-guide#alt-text). Do not use videos that just show a task without explaining or elaborating on the procedure. Videos must be useful and relevant, which includes staying accurate over time. - -## Accessibility requirements - -These are the minimum requirements for a video to be included in the {% data variables.product.prodname_docs %}. If a video violates any of these requirements, it cannot be added to the docs. - -* No flashing or strobe effects -* Must have closed captions. See [Creating video captions](#creating-video-captions) below for more information -* No graphics overlap with where captions appear -* Typography must be legible -* Any overlays must have sufficient contrast ratios -* Any text must be on the screen long enough to be read (the text should appear onscreen for longer than it takes to read it out loud twice) -* Must have proofread descriptive transcripts for what happens scene-by-scene. See [Creating video transcripts](#creating-video-transcripts) below for more information -* Videos do not autoplay - -### Creating video captions - -Videos must have human-generated captions before being added to the Docs site. You can use auto caption technology to help create the captions, but they must be proofread and edited for accuracy by a person. If the video hosting service has a native caption tool, like YouTube, you can use that tool to prepare captions or create a properly formatted `SRT` or `VTT` transcript file to upload with the video. - -Creating captions is part of the process of producing videos that can be accessed by more people, so the owner of a video being added to {% data variables.product.prodname_docs %} should provide captions. - -#### Guidelines for captions - -Where possible, captions should exactly match the words spoken in the video. Do not paraphrase or truncate captions, unless serious time constraints mean it would be difficult for someone to read the captions in the time given. - -Captions must be synchronized to appear at approximately the same time as the audio. Captions should always be timed to appear on screen at the moment the speaker begins talking. For fast speech, where it would be difficult to read captions timed precisely to the audio, you can extend the captions to stay on screen after the speech has finished. - -If a video has multiple speakers, identify the speakers in the captions. Do this by adding the speaker's name, or a descriptive name such as `Developer`, before the start of the sentence. For example: `Jimmy: Hello.`. You only need to do this when the speaker changes, not for every line of dialogue. If it's obvious from the visuals who is speaking, you do not need to identify the speaker. - -Captions must be one or two lines, and no more than 32 characters per line. Put each new sentence on a new line. If you need to break a line mid-sentence, do so at a logical point, for example after commas or before conjunctions like `and` or `but`. - -#### Adding and editing captions on YouTube - -For videos hosted on YouTube, see [Add subtitles and captions](https://support.google.com/youtube/answer/2734796?hl=en&ref_topic=7296214) and [Edit or remove captions](https://support.google.com/youtube/answer/2734705?hl=en&ref_topic=7296214) in the YouTube docs. - -### Creating video transcripts - -For every video linked or embedded in the docs, we must have a descriptive transcript of the video. Transcript articles are formatted like other articles, with YAML frontmatter and Markdown content. To add a transcript to the Docs site, create an article in [`content/video-transcripts`](https://github.com/github/docs/tree/main/content/video-transcripts), and include the transcript as the article's body text. Give the article a filename like `transcript-VIDEO-NAME.md` and a `title` frontmatter property of `Transcript - VIDEO NAME`. Add the article to the `index.md` file in the `video-transcripts` directory. - -Do not use Liquid variables or reusables to replace things like product names in the transcript. The transcript should be faithful to the audio in the video, and we should not change any text in the transcript as a result of updating a variable or reusable after the video was produced. - -Creating transcripts is part of the process of producing videos that can be accessed by more people, so the owner of a video being added to the docs site should provide the content for a transcript. - -You can use captions as the foundation for a transcript. Edit the captions to remove any timestamps and include the relevant information detailed below. A descriptive transcript includes a text version of both audio and visual information needed to understand the content of a video. - -* If a video has multiple speakers, identify the speakers in the transcript. -* If a speaker's gender is known, you can use their preferred pronouns when describing their actions. For example, `She points to the computer screen.` If the speaker's gender is unknown or irrelevant to the visual being described, you can use the singular they pronoun. -* Format the transcript in logical paragraphs, lists, and sections. If it helps people understand the content, you may add headers to sections. Consider how someone would get information from the transcript if they are not also viewing the video. -* Add any onscreen text, relevant visual elements, or non-speech sounds that are not included in the captions. Place these descriptions after the spoken text that accompanies them in the video. Format visual information in brackets. For example, `[Background music plays. The narrator clicks the Code button and then the "+ New codespace" button.]`. -* Add a `product_video` property to the transcript article's YAML frontmatter. The value of the `product_video` property is the YouTube URL of the video. The video's YouTube URL will display as an external link in the transcript article. -* At the end of the transcript, write `End of transcript.` and link to the landing page for the product the video is about using the pattern `For more information about PRODUCT, see the ["Product" documentation](link/to/landing-page).`. - -See [Text Transcript with Description of Visuals](https://www.w3.org/WAI/perspective-videos/captions/#transcript) in the W3C docs for more examples of audio and visual transcriptions. - -#### Linking to transcripts from externally hosted videos - -Add a link to the article with a video's transcript in the description of the video on the platform where it is hosted. For more information, see [Edit video settings](https://support.google.com/youtube/answer/57404?) in the YouTube documentation. - -#### Linking to transcripts for embedded videos - -In any content with an embedded video, add a `product_video_transcript` property below the `product_video` property in the YAML frontmatter. The value of `product_video_transcript` is a link to the transcript article in the `video-transcripts` directory. - -```yaml -title: Example product landing page -product_video: 'https://www.youtube-nocookie.com/embed/URL' -product_video_transcript: /content/video-transcripts/TRANSCRIPT-TITLE -``` - -## Titles for videos - -Titles should be descriptive and follow the guidelines for titles in the content model. For more information, see [AUTOTITLE](/contributing/style-guide-and-content-model/contents-of-a-github-docs-article#titles). - -## Versioning - -If a video is only relevant for specific {% data variables.product.prodname_dotcom %} products (Free, Pro and Team; {% data variables.product.prodname_ghe_server %}; and {% data variables.product.prodname_ghe_cloud %}), the video must be versioned for those products. Use Liquid conditional statements to version the videos appropriately. The Liquid conditional versioning may need to be added when the content is initially created, or may need to be added when the content is updated for a feature update or {% data variables.product.prodname_enterprise %} release. For more information about liquid conditional statements and versioning, see [AUTOTITLE](/contributing/syntax-and-versioning-for-github-docs/versioning-documentation). - -## Video hosting - -Videos must be hosted somewhere that {% data variables.product.prodname_dotcom %} owns and can grant the Docs team access to. Videos should not track users or use cookies. Currently, {% data variables.product.prodname_dotcom %}'s videos are hosted on YouTube and added to the docs using the [Privacy Enhanced Mode](https://support.google.com/youtube/answer/171780?hl=en#zippy=%2Cturn-on-privacy-enhanced-mode) by changing the domain for the embedded URL from `https://www.youtube.com/VIDEO` to `https://www.youtube-nocookie.com/VIDEO`. diff --git a/content/index.md b/content/index.md index 6b26dcf14c07..b612d0033737 100644 --- a/content/index.md +++ b/content/index.md @@ -17,6 +17,7 @@ redirect_from: - /articles - /common-issues-and-questions - /troubleshooting-common-issues + - /video-transcripts - /early-access/github/enforcing-best-practices-with-github-policies - /github/enforcing-best-practices-with-github-policies/index - /early-access/github/enforcing-best-practices-with-github-policies/about-github-policies @@ -83,7 +84,7 @@ children: - desktop - early-access - support - - video-transcripts + - contributing - github-models - nonprofit diff --git a/content/issues/index.md b/content/issues/index.md index ce3e549e36a9..e33ea1bf0190 100644 --- a/content/issues/index.md +++ b/content/issues/index.md @@ -36,8 +36,6 @@ children: - /organizing-your-work-with-project-boards - /using-labels-and-milestones-to-track-work - /guides -product_video: 'https://www.youtube-nocookie.com/embed/yFQ-p6wMS_Y' -product_video_transcript: /video-transcripts/transcript-using-projects-for-feature-planning redirect_from: - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests - /github/managing-your-work-on-github/managing-your-work-with-issues @@ -63,4 +61,5 @@ redirect_from: - /disabling-issues - /linking-a-pull-request-to-an-issue - /about-duplicate-issues-and-pull-requests + - /video-transcripts/transcript-using-projects-for-feature-planning --- diff --git a/content/video-transcripts/index.md b/content/video-transcripts/index.md deleted file mode 100644 index 0ca2f9e3013e..000000000000 --- a/content/video-transcripts/index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Video transcripts -hidden: true -intro: 'Find audio and visual transcripts for videos linked from this site.' -versions: - fpt: '*' - ghec: '*' - ghes: '*' -children: - - transcript-codespaces-your-instant-dev-box-in-the-cloud - - transcript-using-projects-for-feature-planning - - transcript-billing-github-consumption-through-an-azure-subscription ---- \ No newline at end of file diff --git a/content/video-transcripts/transcript-billing-github-consumption-through-an-azure-subscription.md b/content/video-transcripts/transcript-billing-github-consumption-through-an-azure-subscription.md deleted file mode 100644 index 1229bf5ad5c8..000000000000 --- a/content/video-transcripts/transcript-billing-github-consumption-through-an-azure-subscription.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Transcript - "Billing GitHub consumption through an Azure subscription" -intro: Audio and visual transcript. -shortTitle: Billing through Azure -allowTitleToDifferFromFilename: true -product_video: 'https://www.youtube.com/watch?v=Y-f7JKJ4_8Y' -versions: - fpt: '*' - ghec: '*' ---- - -[Title card: "GitHub consolidated billing on Azure."] - -T.J.: Hello, everyone. Thank you for joining us to learn how you can bill your GitHub consumption through Azure. - -During this video, we will share the benefits of billing through Azure, review eligible GitHub products, demo the process step by step, and share resources to help you move forward. - -Let's start with why so many customers are already billing their GitHub consumption through Azure. The key benefits are consolidation, visibility, and commercials. - -From a consolidation standpoint, joint GitHub and Microsoft customers will be able to see all their GitHub consumption on their Azure invoice, eliminating the need for additional invoices and saving time on the procurement process. - -From a visibility perspective, GitHub customers will be able to leverage all the powerful tools and features of the Azure billing portal to gain enhanced visibility into their GitHub consumption spend. - -And finally, if a Microsoft customer has an Azure discount, it will automatically be applied to all future GitHub consumption billed through Azure. - -If a Microsoft customer also has a Microsoft Azure Consumption Commitment, or MACC, all future GitHub consumption will decrement their MACC as well. - -So what GitHub products are eligible for Azure billing? Any GitHub consumption products are eligible today, meaning products that customers pay for based on actual usage, including things like GitHub Copilot, GitHub-hosted actions, larger hosted runners, GitHub Packages and storage, and GitHub Codespaces. - -Historically, GitHub Enterprise and {% data variables.product.prodname_AS %} were only available through an annual license. However, as of August 1, 2024, they are now also available for metered billing through Azure, for additional flexibility and pay-as-you-go pricing. For existing licensed customers, be sure to connect with your GitHub seller to learn more, as certain restrictions may apply. - -[A table shows eligibility for Azure billing and MACCs for the products mentioned. In the table, all products eligible for Azure billing are also eligible for MACCs.] - -T.J.: Now let's jump into a demo to see how to actually turn this on. - -[He shares his screen. He's on the home page of the Microsoft Azure portal.] - -T.J.: The first step in the process is to set up an admin consent workflow to allow your GitHub enterprise owner the ability to request the installation of a new application. This can be done by logging in to the Azure portal and opening up Microsoft Entra ID. - -From here, you'll need to click on "Enterprise Applications", and then under the "Security" section, "Consent and permissions". Finally, click "Admin consent settings". - -From here, you'll need to actually turn this on if it's not already enabled. So I'm going to go ahead and click "Yes". - -[In the settings, under "Users can request admin consent to apps they are unable to consent to", he switches a toggle to "Yes".] - -T.J.: And you'll need to add who has the ability to approve these requests. This would normally be yourself, the global admin, or potentially a team that you're a member of. - -Once you're happy with the settings, you can go ahead and click "Save". From here, you'll need to wait about an hour for these settings to replicate across Azure before you can proceed with the next step. - -Now I'll hand it over to the GitHub enterprise owner to actually request the application be installed. - -[The enterprise owner, Brian, shares his screen. He's looking at an enterprise account on GitHub.] - -Brian: So to start the process of linking an Azure subscription, I need to go to the settings for my enterprise, and underneath "Settings", you'll see there's an option here for billing. Then, under the various settings here, I'm going to go over to "Payment information", and finally "Add Azure Subscription". So I'm gonna click that link. - -[A Microsoft page: "Approval required".] - -Brian: Now once I sign in, it says approval is required from my Azure administrator, so I'm going to say, "Need to have GitHub paid," and let's select "Request approval". - -Now, at this point it says, "Hey, the request has been sent," so I'm gonna go back to my application and it's going to say, "Hey, we're not ready yet." - -[On the enterprise on GitHub, an error message says: "Authentication with Azure failed."] - -Brian: I'm going to go back into my subscription and I'm going to wait to hear from my administrator who will let me know when this is done. - -So now let's switch over back to T.J., and T.J., can you show us the approval process? - -[Back on the Azure portal.] - -T.J.: Your Entra global administrator should receive an email notification to approve a new request. To do so, they can go back into Entra ID, go to "Enterprise applications", and then look for "Admin consent requests" down under the "Activity" section. - -Here you'll see the pending request to install the GitHub Subscription Permission Validator. I can go ahead and click here and review the permissions and consent on behalf of my organization. - -It'll pop up asking me to reauthenticate, and then I can see the exact permissions that it's requesting. In this case, this application is just going to have access to see the users and be able to understand which subscriptions they're in ownership of to make sure that they have permissions to bill against it. - -So if I'm happy with this, I can go ahead and hit "Accept". And that's all I need to do. I can hand it back over to the GitHub enterprise owner to finish the last step. - -[Back in the enterprise on GitHub.] - -Brian: Okay. Well, I checked my email and my administrator approved from the Azure side that we can set up billing. So I'll go back into "Settings", go to "Billing" again, go to "Payment information", "Add Azure Subscription". - -[A dialog displays, labeled "Select a subscription".] - -Brian: Okay. Now that I've been authenticated, we see what subscription I'm hooking up to. I'm going to click it, click "Connect". - -[On the main "Payment information" page, under "Metered billing settings".] - -Brian: With my billing subscription selected, the last thing I need to do is select "Enable metered billing through Azure", and click "Update metered billing settings". - -At this point, the eligible items within my subscriptions, as we described earlier in the slides, will now be billed to the selected subscription. - -T.J.: Thanks so much for joining us today. For future reference, we are also sharing two helpful resources to help you bill GitHub consumption through Azure in the future. And if you have a dedicated GitHub and/or Microsoft account team, please don't hesitate to reach out to them for additional information. Thanks. - -End of transcript. For more information, see [AUTOTITLE](/enterprise-cloud@latest/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription) and [Get subscription and tenant IDs in the Azure portal](https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id) in the Microsoft documentation. diff --git a/content/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md b/content/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md deleted file mode 100644 index 7c74612b76ec..000000000000 --- a/content/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Transcript - "Codespaces - Your instant dev box in the cloud" -intro: Audio and visual transcript. -shortTitle: Codespaces -allowTitleToDifferFromFilename: true -product_video: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc' -versions: - fpt: '*' - ghec: '*' ---- - -[A developer wearing a blue t-shirt sits at home, behind a mic and a pop shield decorated with GitHub's Octocat logo. The developer shares their screen while still showing on webcam in the upper-right corner. On their screen, they are looking at a GitHub repository called "js-project".] - -Developer: So, today we're gonna run my JavaScript project in GitHub Codespaces. - -[On the repository page, above the list of files, the developer selects the "Code" button to open a dropdown menu. They click "Open with Codespaces", then click "New codespace".] - -Developer: So while we're creating our codespace, you might have the question, "What even is a codespace?" - -[In the browser, the codespace loads. On a white background, the text "Preparing your codespace" is displayed below GitHub's Octocat logo and a VS Code logo.] - -Developer: A codespace is an instant cloud developer environment, where we can run, test, debug, push: everything that we're used to doing in a development environment, but without any of the machine setup we're used to doing locally. - -[The codespace opens in the VS Code web editor in the browser, running with the dark theme. Directories and files from the repository are displayed in the left sidebar. In an integrated terminal, a message says, "Welcome to Codespaces," and lists included runtimes and tools.] - -Developer: So when we create this codespace, you'll see we land in a machine that is already set up, and it has Python, Node, Docker, and even more, so it has tools like Java and Rust and Go and C++. - -But you'll see we landed in the default image. The great thing about Codespaces is you can fully customize your setup, not only for you, but for everyone else who comes along in this repository. So you can have a "config-as-code" setup that allows you to use your own image, or Dockerfile, or Docker Compose. - -So for our app, we're actually just gonna go ahead and start it up. So I'm gonna run `npm start` here, and you'll see that we're told our app is running on port 3000, and we can open it in the browser and connect securely to a forwarded port that has our app fully up and running. - -[A popup is displayed for the forwarded port. On the popup, the developer clicks a button labeled "Open in browser". A new browser tab opens showing a web page titled "Haikus for Mona". On the web page, a cartoon image shows a grinning Mona the Octocat skipping over a puddle with a purple umbrella. Below the image, a haiku: "Rain in Seattle. Don't forget an umbrella, or it will be gloom."] - -Developer: So you'll see here's my Node app, up and running, connected to in a codespace. And this took us about 60 seconds to get set up in Codespaces. - -[The developer scrolls to an image of Mona poking a record player with her tentacle.] - -Developer: So you can imagine this fully customized, to really bring down the setup time for really every repository you have. - -And that's a quick look at GitHub Codespaces. - -End of transcript. For more information about {% data variables.product.prodname_github_codespaces %}, see the [{% data variables.product.prodname_github_codespaces %} documentation](/codespaces). diff --git a/content/video-transcripts/transcript-using-projects-for-feature-planning.md b/content/video-transcripts/transcript-using-projects-for-feature-planning.md deleted file mode 100644 index 4d30bdb86339..000000000000 --- a/content/video-transcripts/transcript-using-projects-for-feature-planning.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Transcript - "Using Projects for feature planning" -intro: Audio and visual transcript. -shortTitle: Projects -allowTitleToDifferFromFilename: true -product_video: 'https://www.youtube-nocookie.com/embed/yFQ-p6wMS_Y' -versions: - fpt: '*' - ghec: '*' - ghes: '*' ---- - -[Fast-paced, techy music plays. On a dark background, GitHub's Octocat logo fades into view. Bright neon lines swirl and branch outwards. Each line leads to something different: a button labeled "Convert to issue"; a pull request merge button marked "Ready"; a comment on a pull request, a project board, and a search field. In a green box, text: "GitHub Issues: Using Projects for feature planning." A pixelated cursor clicks: "Let's go!"] - -[The narrator shares her screen. She's looking at a table layout in a project on GitHub.] - -Narrator: Welcome. Let's take a lap around GitHub Projects and see how it supports you in tracking your feature work from beginning to end. Here we've got our OctoArcade Invaders board, and I'm ready to pick up our next feature. - -[She clicks a tab on the project labeled "Features".] - -Narrator: On our team, we have a simple process where we label the issue as a feature and build a view that focuses on all items with that label. Here we see all issues labeled as a feature. This way I can instantly see that this item is ready to be picked up and go ahead and open it to learn more. - -[She scans her cursor over rows on the table layout and clicks an item called "Player-to-player chat capability." The issue opens as an overlay over the board.] - -Narrator: Given chat is not a small set of work, I've created another product board to track all the various tasks and items that we'll need to do to enable this functionality. - -[She clicks a link in the issue comment, taking her to another project named for the issue. On the "By Area" tab, the project has a table layout, and the rows are separated into groups, like "Design," "Storage," and "Media support," based on labels in the "Area" field.] - -Narrator: In this main view, I've got my work already categorized by this custom field: Area. This is so I can split up my various issues into their appropriate workstreams or buckets. Projects is powerful because you can use these custom fields to add flexible metadata to your issues. You're not just limited by labels or adding a keyword in brackets to your issue title. - -And it's great because I can actually edit this view to group by any of these fields. - -[She clicks a dropdown icon next to the tab name, selects "Group", then scans her cursor over field options like "Status", "Iteration", and "Assignees".] - -Narrator: Now, as we're continuing to flesh out the work for this feature, I can quickly jot down additional items that we need to address by leveraging this "Add" bar. - -[She places her cursor in a text field below the "Design" group, labeled "Add item".] - -Narrator: I'll use this to add several draft issues. For example, our chat client needs a search UI, the ability to edit your friend list, and we definitely need dark mode. - -[She adds a draft issue for each requirement.] - -Narrator: You can see with this "Add" bar, I can write a title, press enter, and keep moving forward to add the next item. It's optimized to help you rapidly take notes on what needs to go into this capability. - -These are draft issues now, but it's as easy as clicking "Convert to issue" to promote them to fully fledged issues in the appropriate repository. - -[She clicks a dropdown icon next to the "Search UI" draft issue, clicks "Convert to issue", and selects from a list of repositories below a search field.] - -Narrator: As development progresses, you'll want to be able to schedule and quickly see status for your work items. This is where our board view shines. - -[She clicks a tab labeled "Iteration plan". Issues, represented as draggable boxes, are arranged into columns for different iterations.] - -Narrator: I've created one here that is grouped by iterations so we can see what's currently planned, what's coming up, and we can quickly drag items to the appropriate iteration to create our plan. - -[She drags items from "No iteration" to "Iteration 3". She clicks a "plus" icon to create a column for "Iteration 4", and drags an item there. Then, she clicks a tab labeled "By Status". Issues are arranged into columns for statuses like "Backlog" and "In Progress".] - -Narrator: Finally, we have our board view grouped by status so we can understand the state of our items at a glance. - -I'm going to add linked pull requests as a visible field here so that my teammates can hop into a PR with just one click to start reviewing and get this issue moved to done. - -[She clicks the dropdown icon next to the tab name, clicks "Title, Assignees, and Status", then selects a checkbox next to a hidden field called "Linked pull requests". In some of the issue boxes, a tag with a pull request icon and number appears.] - -Narrator: We'll be ready to ship the chat feature in no time, with Projects. - -[Blocks cover the screen. The GitHub logo and the word "Issues" appear.] - -End of transcript. For more information about {% data variables.product.prodname_projects_v2 %}, see the [{% data variables.product.prodname_github_issues %} documentation](/issues). diff --git a/data/llms-txt-config.yml b/data/llms-txt-config.yml index 7b7c6eecf015..e2ed119b428e 100644 --- a/data/llms-txt-config.yml +++ b/data/llms-txt-config.yml @@ -62,7 +62,6 @@ excluded_categories: - site-policy - subscriptions-and-notifications - support - - video-transcripts # Slugs to exclude (e.g. index pages) excluded_slugs: diff --git a/data/reusables/contributing/content-linter-rules.md b/data/reusables/contributing/content-linter-rules.md index 1ed859c8cb10..ee8f85863d6f 100644 --- a/data/reusables/contributing/content-linter-rules.md +++ b/data/reusables/contributing/content-linter-rules.md @@ -29,7 +29,6 @@ | GHD008 | early-access-references | Files that are not early access should not reference early-access or early-access files | error | feature, early-access | | GHD009 | frontmatter-early-access-references | Files that are not early access should not have frontmatter that references early-access | error | frontmatter, feature, early-access | | GHD010 | frontmatter-hidden-docs | Articles with frontmatter property `hidden` can only be located in specific products | error | frontmatter, feature, early-access | -| GHD011 | frontmatter-video-transcripts | Video transcript must be configured correctly | error | frontmatter, feature, video-transcripts | | GHD012 | frontmatter-schema | Frontmatter must conform to the schema | error | frontmatter, schema | | GHD013 | github-owned-action-references | GitHub-owned action references should not be hardcoded | error | feature, actions | | GHD014 | liquid-data-references-defined | Liquid data or indented data references were found in content that have no value or do not exist in the data directory | error | liquid | diff --git a/data/ui.yml b/data/ui.yml index 1599a9cce204..e59e8ee8b1a6 100644 --- a/data/ui.yml +++ b/data/ui.yml @@ -90,7 +90,6 @@ toc: popular: Popular startHere: Start here whats_new: What's new - videos: Videos all_changelogs: All changelog posts pages: article_version: 'Article version' @@ -98,7 +97,6 @@ pages: all_enterprise_releases: All Enterprise Server releases about_versions: About versions permissions_callout_title: Who can use this feature? - video_from_transcript: See video for this transcript copy_as_markdown: Copy as Markdown copy_as_markdown_desc: Use with any LLM view_as_markdown: View as Markdown @@ -306,7 +304,6 @@ product_landing: docs: docs explore_release_notes: Explore release notes view: View all - view_transcript: View video transcript all_docs: 'All {{ title }} docs' all_content: 'View all {{ title }} content' product_guides: diff --git a/src/article-api/transformers/product-landing-transformer.ts b/src/article-api/transformers/product-landing-transformer.ts index c5350620c15a..371114670719 100644 --- a/src/article-api/transformers/product-landing-transformer.ts +++ b/src/article-api/transformers/product-landing-transformer.ts @@ -20,7 +20,7 @@ interface PageWithChildren extends Page { /** * Transforms product-landing pages into markdown format. - * Handles featured links (startHere, popular, videos), guide cards, + * Handles featured links (startHere, popular), guide cards, * article grids with category filtering, and children listings. */ export class ProductLandingTransformer implements PageTransformer { @@ -97,13 +97,12 @@ export class ProductLandingTransformer implements PageTransformer { } } - // Featured links (startHere, popular, videos, etc.) + // Featured links (startHere, popular, etc.) const rawFeaturedLinks = productPage.featuredLinks if (rawFeaturedLinks) { - const { default: getLearningTrackLinkData } = - await import('@/learning-track/lib/get-link-data') + const { default: getPageLinkData } = await import('@/learning-track/lib/get-link-data') - const featuredKeys = ['startHere', 'popular', 'videos'] + const featuredKeys = ['startHere', 'popular'] const featuredGroups: LinkGroup[] = [] for (const key of featuredKeys) { @@ -112,33 +111,17 @@ export class ProductLandingTransformer implements PageTransformer { const sectionTitle = this.getSectionTitle(key) - let resolvedLinks: LinkData[] - - if (key === 'videos') { - // Videos are external URLs with title and href properties - const videoLinks = await Promise.all( - links.map(async (link) => { - if (typeof link === 'object' && link.href) { - const title = await renderContent(link.title, context, { textOnly: true }) - return title ? { href: link.href, title, intro: link.intro || '' } : null - } - return null - }), - ) - resolvedLinks = videoLinks.filter((l) => l !== null) as LinkData[] - } else { - // Other featuredLinks are page hrefs that need Liquid evaluation - const stringLinks = links.map((item) => (typeof item === 'string' ? item : item.href)) - const linkData = await getLearningTrackLinkData(stringLinks, context, { - title: true, - intro: true, - }) - resolvedLinks = (linkData || []).map((item) => ({ - href: item.href, - title: item.title || '', - intro: item.intro || '', - })) - } + // featuredLinks are page hrefs that need Liquid evaluation + const stringLinks = links.map((item) => (typeof item === 'string' ? item : item.href)) + const linkData = await getPageLinkData(stringLinks, context, { + title: true, + intro: true, + }) + const resolvedLinks = (linkData || []).map((item) => ({ + href: item.href, + title: item.title || '', + intro: item.intro || '', + })) const validLinks = resolvedLinks.filter((l) => l.href) if (validLinks.length > 0) { @@ -292,7 +275,6 @@ export class ProductLandingTransformer implements PageTransformer { startHere: 'Start here', guideCards: 'Guides', popular: 'Popular', - videos: 'Videos', } return map[key] || key } diff --git a/src/content-linter/lib/linting-rules/frontmatter-hidden-docs.ts b/src/content-linter/lib/linting-rules/frontmatter-hidden-docs.ts index ef00f7cbb5ec..8ffb098d5adc 100644 --- a/src/content-linter/lib/linting-rules/frontmatter-hidden-docs.ts +++ b/src/content-linter/lib/linting-rules/frontmatter-hidden-docs.ts @@ -16,12 +16,7 @@ export const frontmatterHiddenDocs = { if (fm.hasExperimentalAlternative) return // Hidden docs can be located in these content directories: - const allowedProductPaths = [ - 'content/early-access', - 'content/site-policy', - 'content/search', - 'content/video-transcripts', - ] + const allowedProductPaths = ['content/early-access', 'content/site-policy', 'content/search'] if (allowedProductPaths.some((allowedPath) => params.name.includes(allowedPath))) return diff --git a/src/content-linter/lib/linting-rules/frontmatter-video-transcripts.ts b/src/content-linter/lib/linting-rules/frontmatter-video-transcripts.ts deleted file mode 100644 index 2d5d7fe0fc86..000000000000 --- a/src/content-linter/lib/linting-rules/frontmatter-video-transcripts.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { addError } from 'markdownlint-rule-helpers' -import path from 'path' - -import { getFrontmatter } from '../helpers/utils' -import type { RuleParams, RuleErrorCallback, Rule } from '@/content-linter/types' - -interface Frontmatter { - product_video?: string - product_video_transcript?: string - title?: string - layout?: string - [key: string]: unknown -} - -export const frontmatterVideoTranscripts: Rule = { - names: ['GHD011', 'frontmatter-video-transcripts'], - description: 'Video transcript must be configured correctly', - tags: ['frontmatter', 'feature', 'video-transcripts'], - function: (params: RuleParams, onError: RuleErrorCallback) => { - const filepath = params.name - - const fm = getFrontmatter(params.lines) as Frontmatter | null - if (!fm) return - - const isTranscriptContent = - filepath.includes('video-transcripts') && path.basename(filepath) !== 'index.md' - - // Video transcripts must have specific frontmatter properties - if (isTranscriptContent) { - if (!fm.product_video) { - const lineNumber = 1 - addError( - onError, - lineNumber, - 'Video transcripts must contain an reference to the video being transcribed. Ensure the frontmatter property `product_video` is set to the path of the video.', - null, // No context because the property is missing - null, // No range for missing line - null, // No fix possible - ) - } - if (fm.title && !fm.title.startsWith('Transcript - ')) { - const lineNumber = params.lines.findIndex((line) => line.startsWith('title:')) + 1 - const lineContent = params.lines[lineNumber - 1] - addError( - onError, - lineNumber, - 'Video transcript pages must prepend the frontmatter title property with "Transcript - ".', - lineContent, - [1, lineContent.length], - null, // No fix possible - ) - } - } - - // A landing page that defines either a product_video or - // product_video_transcript frontmatter must define both - if (fm.layout === 'product-landing' && (fm.product_video || fm.product_video_transcript)) { - const lineNumber = - params.lines.findIndex( - (line) => - line.startsWith('product_video_transcript:') || line.startsWith('product_video:'), - ) + 1 - const lineContent = params.lines[lineNumber - 1] - if ( - !fm.product_video_transcript || - !fm.product_video_transcript.startsWith('/video-transcripts/') - ) { - addError( - onError, - lineNumber, - 'Videos on product landing pages must contain a video transcript. Ensure the frontmatter property `product_video_transcript` is set to the path of the transcript in the video-transcript directory.', - lineContent, - [1, lineContent.length], - null, // No fix possible - ) - } - if (!fm.product_video) { - addError( - onError, - lineNumber, - 'Video transcripts on product landing pages must have a product video. Ensure the frontmatter property `product_video` is set to the path of the video.', - lineContent, - [1, lineContent.length], - null, // No fix possible - ) - } - } - }, -} diff --git a/src/content-linter/lib/linting-rules/index.ts b/src/content-linter/lib/linting-rules/index.ts index 47c182b64075..d2d94ce7ede6 100644 --- a/src/content-linter/lib/linting-rules/index.ts +++ b/src/content-linter/lib/linting-rules/index.ts @@ -13,7 +13,6 @@ import { frontmatterEarlyAccessReferences, } from '@/content-linter/lib/linting-rules/early-access-references' import { frontmatterHiddenDocs } from '@/content-linter/lib/linting-rules/frontmatter-hidden-docs' -import { frontmatterVideoTranscripts } from '@/content-linter/lib/linting-rules/frontmatter-video-transcripts' import { yamlScheduledJobs } from '@/content-linter/lib/linting-rules/yaml-scheduled-jobs' import { internalLinksOldVersion } from '@/content-linter/lib/linting-rules/internal-links-old-version' import { hardcodedDataVariable } from '@/content-linter/lib/linting-rules/hardcoded-data-variable' @@ -85,7 +84,6 @@ export const gitHubDocsMarkdownlint = { earlyAccessReferences, // GHD008 frontmatterEarlyAccessReferences, // GHD009 frontmatterHiddenDocs, // GHD010 - frontmatterVideoTranscripts, // GHD011 frontmatterSchema, // GHD012 githubOwnedActionReferences, // GHD013 liquidDataReferencesDefined, // GHD014 diff --git a/src/content-linter/style/github-docs.ts b/src/content-linter/style/github-docs.ts index c8f9ce3253e5..a874ee6ff585 100644 --- a/src/content-linter/style/github-docs.ts +++ b/src/content-linter/style/github-docs.ts @@ -209,12 +209,6 @@ export const githubDocsFrontmatterConfig = { 'partial-markdown-files': false, 'yml-files': false, }, - 'frontmatter-video-transcripts': { - // GHD011 - severity: 'error', - 'partial-markdown-files': false, - 'yml-files': false, - }, 'frontmatter-schema': { // GHD012 severity: 'error', diff --git a/src/content-linter/tests/fixtures/actions/index.md b/src/content-linter/tests/fixtures/actions/index.md index 5c907d336ce2..ea4f0a6e1ffd 100644 --- a/src/content-linter/tests/fixtures/actions/index.md +++ b/src/content-linter/tests/fixtures/actions/index.md @@ -1,8 +1,6 @@ --- title: GitHub Actions Documentation layout: product-landing -product_video: 'https://www.yourube.com/abc123' -product_video_transcript: '/video-transcripts/transcript--my-awesome-video' children: - /hidden - /not-hidden diff --git a/src/content-linter/tests/fixtures/early-access/index.md b/src/content-linter/tests/fixtures/early-access/index.md index adcb6a5e66b4..03e5e5488758 100644 --- a/src/content-linter/tests/fixtures/early-access/index.md +++ b/src/content-linter/tests/fixtures/early-access/index.md @@ -1,7 +1,6 @@ --- title: Early Access Documentation layout: product-landing -product_video_transcript: '/video-transcripts/transcript--my-awesome-video' children: - /hidden - /not-hidden diff --git a/src/content-linter/tests/fixtures/video-transcripts/index.md b/src/content-linter/tests/fixtures/video-transcripts/index.md deleted file mode 100644 index 61b3e14787b2..000000000000 --- a/src/content-linter/tests/fixtures/video-transcripts/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Video transcripts -hidden: true -intro: 'Find audio and visual transcripts for videos linked from this site.' -versions: - fpt: '*' - ghec: '*' - ghes: '*' -children: - - transcript-codespaces-your-instant-dev-box-in-the-cloud - - transcript-using-projects-for-feature-planning ---- diff --git a/src/content-linter/tests/fixtures/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md b/src/content-linter/tests/fixtures/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md deleted file mode 100644 index 528d0d95e9b2..000000000000 --- a/src/content-linter/tests/fixtures/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Transcript - "Codespaces - Your instant dev box in the cloud" -product_video: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc' ---- - -Some transcript text... diff --git a/src/content-linter/tests/fixtures/video-transcripts/transcript-using-projects-for-feature-planning.md b/src/content-linter/tests/fixtures/video-transcripts/transcript-using-projects-for-feature-planning.md deleted file mode 100644 index 8fbcb342170d..000000000000 --- a/src/content-linter/tests/fixtures/video-transcripts/transcript-using-projects-for-feature-planning.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Using Projects for feature planning ---- - -Some video transcript text... diff --git a/src/content-linter/tests/unit/frontmatter-video-transcripts.ts b/src/content-linter/tests/unit/frontmatter-video-transcripts.ts deleted file mode 100644 index 914730a3d335..000000000000 --- a/src/content-linter/tests/unit/frontmatter-video-transcripts.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { describe, expect, test } from 'vitest' - -import { runRule } from '../../lib/init-test' -import { frontmatterVideoTranscripts } from '../../lib/linting-rules/frontmatter-video-transcripts' - -const GOOD_FIXTURE_LANDING = 'src/content-linter/tests/fixtures/actions/index.md' -const BAD_FIXTURE_LANDING = 'src/content-linter/tests/fixtures/early-access/index.md' -const GOOD_FIXTURE_TRANSCRIPT = - 'src/content-linter/tests/fixtures/video-transcripts/transcript-codespaces-your-instant-dev-box-in-the-cloud.md' -const BAD_FIXTURE_TRANSCRIPT = - 'src/content-linter/tests/fixtures/video-transcripts/transcript-using-projects-for-feature-planning.md' -const INDEX_VIDEO_TRANSCRIPT = 'src/content-linter/tests/fixtures/video-transcripts/index.md' -const fmOptions = { markdownlintOptions: { frontMatter: null } } - -describe(frontmatterVideoTranscripts.names.join(' - '), () => { - test('a video transcript with correct title and fm passes', async () => { - const result = await runRule(frontmatterVideoTranscripts, { - files: [GOOD_FIXTURE_TRANSCRIPT], - ...fmOptions, - }) - const errors = result[GOOD_FIXTURE_TRANSCRIPT] - expect(errors.length).toBe(0) - }) - test('a video transcript with bad title and fm fails', async () => { - const result = await runRule(frontmatterVideoTranscripts, { - files: [BAD_FIXTURE_TRANSCRIPT], - ...fmOptions, - }) - const errors = result[BAD_FIXTURE_TRANSCRIPT] - expect(errors.length).toBe(2) - }) - test('a product landing page with correct video transcript fm passes', async () => { - const result = await runRule(frontmatterVideoTranscripts, { - files: [GOOD_FIXTURE_LANDING], - ...fmOptions, - }) - const errors = result[GOOD_FIXTURE_LANDING] - expect(errors.length).toBe(0) - }) - test('a product landing page without required video transcript fm fails', async () => { - const result = await runRule(frontmatterVideoTranscripts, { - files: [BAD_FIXTURE_LANDING], - ...fmOptions, - }) - const errors = result[BAD_FIXTURE_LANDING] - expect(errors.length).toBe(1) - }) - test('a video transcript landing page is not checked for title and product_video properties', async () => { - const result = await runRule(frontmatterVideoTranscripts, { - files: [INDEX_VIDEO_TRANSCRIPT], - ...fmOptions, - }) - const errors = result[INDEX_VIDEO_TRANSCRIPT] - expect(errors.length).toBe(0) - }) -}) diff --git a/src/fixtures/fixtures/article-with-videos.md b/src/fixtures/fixtures/article-with-videos.md deleted file mode 100644 index 293a5ff3f33a..000000000000 --- a/src/fixtures/fixtures/article-with-videos.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Article with featuredLinks -versions: - free-pro-team: '*' -featuredLinks: - videos: - - title: codespaces - href: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc' - - title: more codespaces - href: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc' - - title: even more codespaces - href: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc' - videosHeading: Custom Videos heading -layout: product-landing ---- diff --git a/src/fixtures/fixtures/content/get-started/index.md b/src/fixtures/fixtures/content/get-started/index.md index 3dd5930c13cc..6dea171a7489 100644 --- a/src/fixtures/fixtures/content/get-started/index.md +++ b/src/fixtures/fixtures/content/get-started/index.md @@ -33,7 +33,6 @@ children: - /start-your-journey - /foo - /sidebar-test - - /video-transcripts - /minitocs - /liquid - /markdown @@ -51,6 +50,4 @@ children: communityRedirect: name: Provide HubGit Feedback href: 'https://hubgit.com/orgs/community/discussions/categories/get-started' -product_video: 'https://www.yourube.com/abc123' -product_video_transcript: '/video-transcripts/transcript--my-awesome-video' --- diff --git a/src/fixtures/fixtures/content/get-started/video-transcripts/index.md b/src/fixtures/fixtures/content/get-started/video-transcripts/index.md deleted file mode 100644 index ca560d142210..000000000000 --- a/src/fixtures/fixtures/content/get-started/video-transcripts/index.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Transcripts -hidden: true -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /transcript--my-awesome-video ---- diff --git a/src/fixtures/fixtures/content/get-started/video-transcripts/transcript--my-awesome-video.md b/src/fixtures/fixtures/content/get-started/video-transcripts/transcript--my-awesome-video.md deleted file mode 100644 index b48cc73c359d..000000000000 --- a/src/fixtures/fixtures/content/get-started/video-transcripts/transcript--my-awesome-video.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Transcript - My awesome video -product_video: 'https://www.yourube.com/abc123' -versions: - fpt: '*' - ghes: '*' - ghec: '*' ---- - -This is a transcript diff --git a/src/fixtures/fixtures/content/index.md b/src/fixtures/fixtures/content/index.md index ba405bde1d67..c08cc1a82312 100644 --- a/src/fixtures/fixtures/content/index.md +++ b/src/fixtures/fixtures/content/index.md @@ -34,7 +34,6 @@ children: - rest - webhooks - graphql - - video-transcripts # - account-and-profile - authentication # - repositories diff --git a/src/fixtures/fixtures/content/video-transcripts/index.md b/src/fixtures/fixtures/content/video-transcripts/index.md deleted file mode 100644 index c9d340d39799..000000000000 --- a/src/fixtures/fixtures/content/video-transcripts/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Video transcripts -intro: 'Collection of video transcripts for accessibility and reference.' -versions: - fpt: '*' - ghes: '*' - ghec: '*' -children: - - /transcript--my-awesome-video ---- - -This section contains transcripts for videos used throughout the documentation. diff --git a/src/fixtures/fixtures/content/video-transcripts/transcript--my-awesome-video.md b/src/fixtures/fixtures/content/video-transcripts/transcript--my-awesome-video.md deleted file mode 100644 index b48cc73c359d..000000000000 --- a/src/fixtures/fixtures/content/video-transcripts/transcript--my-awesome-video.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Transcript - My awesome video -product_video: 'https://www.yourube.com/abc123' -versions: - fpt: '*' - ghes: '*' - ghec: '*' ---- - -This is a transcript diff --git a/src/fixtures/fixtures/data/ui.yml b/src/fixtures/fixtures/data/ui.yml index 1599a9cce204..e59e8ee8b1a6 100644 --- a/src/fixtures/fixtures/data/ui.yml +++ b/src/fixtures/fixtures/data/ui.yml @@ -90,7 +90,6 @@ toc: popular: Popular startHere: Start here whats_new: What's new - videos: Videos all_changelogs: All changelog posts pages: article_version: 'Article version' @@ -98,7 +97,6 @@ pages: all_enterprise_releases: All Enterprise Server releases about_versions: About versions permissions_callout_title: Who can use this feature? - video_from_transcript: See video for this transcript copy_as_markdown: Copy as Markdown copy_as_markdown_desc: Use with any LLM view_as_markdown: View as Markdown @@ -306,7 +304,6 @@ product_landing: docs: docs explore_release_notes: Explore release notes view: View all - view_transcript: View video transcript all_docs: 'All {{ title }} docs' all_content: 'View all {{ title }} content' product_guides: diff --git a/src/fixtures/tests/playwright-a11y.spec.ts b/src/fixtures/tests/playwright-a11y.spec.ts index 11af57145658..0027f09f630b 100644 --- a/src/fixtures/tests/playwright-a11y.spec.ts +++ b/src/fixtures/tests/playwright-a11y.spec.ts @@ -18,8 +18,6 @@ const pages: { [key: string]: string } = { search: '/search?q=playwright', switchers: '/get-started/liquid/tool-platform-switcher', tableWithHeaders: '/get-started/liquid/table-row-headers', - video: '/get-started', - videoTranscript: '/get-started/video-transcripts/transcript--my-awesome-video', } // create a test for each page, will eventually be separated into finer grain tests diff --git a/src/fixtures/tests/video-transcripts.ts b/src/fixtures/tests/video-transcripts.ts deleted file mode 100644 index 36a4f6adca1c..000000000000 --- a/src/fixtures/tests/video-transcripts.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { describe, expect, test } from 'vitest' -import type { CheerioAPI } from 'cheerio' - -import { getDOM } from '@/tests/helpers/e2etest' - -describe('transcripts', () => { - describe('product landing page', () => { - test('video link from product landing page leads to video', async () => { - const $: CheerioAPI = await getDOM('/en/get-started') - expect($('a#product-video').attr('href')).toBe( - '/en/video-transcripts/transcript--my-awesome-video', - ) - }) - }) - - describe('transcript page', () => { - test('video link from transcript leads to video', async () => { - const $: CheerioAPI = await getDOM( - '/en/get-started/video-transcripts/transcript--my-awesome-video', - ) - expect($('a#product-video').attr('href')).toBe('https://www.yourube.com/abc123') - }) - }) -}) diff --git a/src/frame/components/article/ArticlePage.tsx b/src/frame/components/article/ArticlePage.tsx index a0a39806b2b5..c9cde88d1bc3 100644 --- a/src/frame/components/article/ArticlePage.tsx +++ b/src/frame/components/article/ArticlePage.tsx @@ -1,11 +1,10 @@ import { useRouter } from 'next/router' import dynamic from 'next/dynamic' import cx from 'classnames' -import { LinkExternalIcon } from '@primer/octicons-react' +import { useArticleContext } from '@/frame/components/context/ArticleContext' import { DefaultLayout } from '@/frame/components/DefaultLayout' import { ArticleTitle } from '@/frame/components/article/ArticleTitle' -import { useArticleContext } from '@/frame/components/context/ArticleContext' import { LearningTrackNav } from '@/learning-track/components/article/LearningTrackNav' import { MarkdownContent } from '@/frame/components/ui/MarkdownContent' import { Lead } from '@/frame/components/ui/Lead' @@ -18,8 +17,6 @@ import { MiniTocs } from '@/frame/components/ui/MiniTocs' import { LearningTrackCard } from '@/learning-track/components/article/LearningTrackCard' import { RestRedirect } from '@/rest/components/RestRedirect' import { Breadcrumbs } from '@/frame/components/page-header/Breadcrumbs' -import { Link } from '@/frame/components/Link' -import { useTranslation } from '@/languages/components/useTranslation' import { LinkPreviewPopover } from '@/links/components/LinkPreviewPopover' import { UtmPreserver } from '@/frame/components/UtmPreserver' import { JourneyTrackCard, JourneyTrackNav } from '@/journeys/components' @@ -42,7 +39,6 @@ export const ArticlePage = () => { includesPlatformSpecificContent, includesToolSpecificContent, product, - productVideoUrl, miniTocItems, currentLearningTrack, currentJourneyTrack, @@ -52,7 +48,6 @@ export const ArticlePage = () => { } = useArticleContext() const isLearningPath = !!currentLearningTrack?.trackName const isJourneyTrack = !!currentJourneyTrack?.trackId - const { t } = useTranslation(['pages']) const introProp = ( <> @@ -86,15 +81,6 @@ export const ArticlePage = () => { const articleContents = (
    - {productVideoUrl && ( -
    - - - {t('video_from_transcript')} - -
    - )} - {renderedPage} {effectiveDate && ( diff --git a/src/frame/components/context/ArticleContext.tsx b/src/frame/components/context/ArticleContext.tsx index 22cc1cf223ad..26ffa0a3db79 100644 --- a/src/frame/components/context/ArticleContext.tsx +++ b/src/frame/components/context/ArticleContext.tsx @@ -34,7 +34,6 @@ export type ArticleContextT = { defaultPlatform?: string defaultTool?: string product?: string - productVideoUrl?: string currentLearningTrack?: LearningTrack currentJourneyTrack?: JourneyContext detectedPlatforms: Array @@ -100,7 +99,6 @@ export const getArticleContextFromRequest = (req: any): ArticleContextT => { defaultPlatform: page.defaultPlatform || '', defaultTool: page.defaultTool || '', product: page.product || '', - productVideoUrl: page.product_video || '', currentLearningTrack: req.context.currentLearningTrack, currentJourneyTrack: req.context.currentJourneyTrack, detectedPlatforms: page.detectedPlatforms || [], diff --git a/src/frame/lib/frontmatter.ts b/src/frame/lib/frontmatter.ts index dd7dd5cde61e..1e15d9f3c568 100644 --- a/src/frame/lib/frontmatter.ts +++ b/src/frame/lib/frontmatter.ts @@ -163,24 +163,6 @@ export const schema: Schema = { type: 'string', translatable: true, }, - videos: { - type: 'array', - items: { - type: 'object', - properties: { - title: { - type: 'string', - }, - href: { - type: 'string', - }, - }, - }, - }, - // allows you to use an alternate heading for the videos column - videosHeading: { - type: 'string', - }, }, }, // Shown in `product-landing.html` "What's new" section @@ -264,14 +246,6 @@ export const schema: Schema = { beta_product: { type: 'boolean', }, - // Show in `product-landing.html` - product_video: { - type: 'string', - }, - // Show in `product-landing.html` - product_video_transcript: { - type: 'string', - }, // Hero image for landing pages heroImage: { type: 'string', diff --git a/src/frame/middleware/helmet.ts b/src/frame/middleware/helmet.ts index 302bd0688adf..c5c083ee9a79 100644 --- a/src/frame/middleware/helmet.ts +++ b/src/frame/middleware/helmet.ts @@ -15,7 +15,7 @@ const GITHUB_DOMAINS = [ const DEFAULT_OPTIONS = { crossOriginResourcePolicy: true, - crossOriginEmbedderPolicy: false, // doesn't work with youtube + crossOriginEmbedderPolicy: false, referrerPolicy: { policy: 'no-referrer-when-downgrade' as const, }, @@ -48,7 +48,6 @@ const DEFAULT_OPTIONS = { ? 'https://support.github.com' : // Assume that a developer is not testing the VA iframe locally if this env var is not set process.env.SUPPORT_PORTAL_URL || '', - 'https://www.youtube-nocookie.com', ].filter(Boolean) as string[], frameAncestors: isDev ? ['*'] : [...GITHUB_DOMAINS], styleSrc: [...GITHUB_DOMAINS, "'self'", "'unsafe-inline'", 'data:'], diff --git a/src/frame/tests/page.ts b/src/frame/tests/page.ts index 591c0d8fe247..5467f04c8605 100644 --- a/src/frame/tests/page.ts +++ b/src/frame/tests/page.ts @@ -2,7 +2,7 @@ import { fileURLToPath } from 'url' import path from 'path' import { load } from 'cheerio' -import { beforeAll, beforeEach, describe, expect, test } from 'vitest' +import { beforeAll, describe, expect, test } from 'vitest' import Page, { FrontmatterErrorsError } from '@/frame/lib/page' import { allVersions } from '@/versions/lib/all-versions' @@ -263,37 +263,6 @@ describe('Page class', () => { }) }) - describe('videos', () => { - let page: Page | undefined - - beforeEach(async () => { - page = await Page.init({ - relativePath: 'article-with-videos.md', - basePath: path.join(__dirname, '../../../src/fixtures/fixtures'), - languageCode: 'en', - }) - }) - - test('includes videos specified in the featuredLinks frontmatter', async () => { - expect((page as any)!.featuredLinks.videos).toStrictEqual([ - { - title: 'codespaces', - href: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc', - }, - { - title: 'more codespaces', - href: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc', - }, - { - title: 'even more codespaces', - href: 'https://www.youtube-nocookie.com/embed/_W9B7qc9lVc', - }, - ]) - - expect((page as any)!.featuredLinks.videosHeading).toBe('Custom Videos heading') - }) - }) - describe('introLinks', () => { test('includes the links specified in the introLinks frontmatter', async () => { const page = await Page.init({ diff --git a/src/landings/components/LandingHero.module.scss b/src/landings/components/LandingHero.module.scss deleted file mode 100644 index 89a37ef8ff76..000000000000 --- a/src/landings/components/LandingHero.module.scss +++ /dev/null @@ -1,3 +0,0 @@ -.videoWrapper { - padding-bottom: 56.25%; -} diff --git a/src/landings/components/LandingHero.tsx b/src/landings/components/LandingHero.tsx index 1b0bad722ecf..e727bb51b62c 100644 --- a/src/landings/components/LandingHero.tsx +++ b/src/landings/components/LandingHero.tsx @@ -1,7 +1,7 @@ -import React, { useEffect, useState } from 'react' +import React from 'react' import cx from 'classnames' import { useRouter } from 'next/router' -import { LinkExternalIcon, NoteIcon } from '@primer/octicons-react' +import { LinkExternalIcon } from '@primer/octicons-react' import { Link } from '@/frame/components/Link' import { useProductLandingContext } from '@/landings/components/ProductLandingContext' @@ -9,29 +9,13 @@ import { useTranslation } from '@/languages/components/useTranslation' import { useVersion } from '@/versions/components/useVersion' import { Lead } from '@/frame/components/ui/Lead' -import styles from './LandingHero.module.scss' - export const LandingHero = () => { - const { - productVideo, - productVideoTranscript, - shortTitle, - title, - beta_product, - intro, - introLinks, - } = useProductLandingContext() + const { title, beta_product, intro, introLinks } = useProductLandingContext() const { t } = useTranslation(['product_landing']) - const [renderIFrame, setRenderIFrame] = useState(false) - - // delay iFrame rendering so that dom ready happens sooner - useEffect(() => { - setRenderIFrame(true) - }, []) return (
    -
    +

    {title}{' '} {beta_product && Beta} @@ -62,29 +46,6 @@ export const LandingHero = () => { })}

    - - {productVideo && ( -
    -
    - -
    - {productVideoTranscript && ( -
    - - - {t('view_transcript')} - -
    - )} -
    - )}
    ) } diff --git a/src/landings/components/ProductLandingContext.tsx b/src/landings/components/ProductLandingContext.tsx index edd65a6daa0c..857e01c54190 100644 --- a/src/landings/components/ProductLandingContext.tsx +++ b/src/landings/components/ProductLandingContext.tsx @@ -37,8 +37,6 @@ export type ProductLandingContextT = { beta_product: boolean product: Product introLinks: Record | null - productVideo: string - productVideoTranscript: string heroImage?: string featuredLinks: Record> productUserExamples: Array<{ username: string; description: string }> @@ -95,10 +93,6 @@ export const getProductLandingContextFromRequest = async ( const page = req.context.page const hasGuidesPage = (page.children || []).includes('/guides') - const productVideo = page.product_video - ? await page.renderProp('product_video', req.context, { textOnly: true }) - : '' - const title = await page.renderProp('title', req.context, { textOnly: true }) const shortTitle = (await page.renderProp('shortTitle', req.context, { textOnly: true })) || null @@ -112,8 +106,6 @@ export const getProductLandingContextFromRequest = async ( title, shortTitle, ...pick(page, ['introPlainText', 'beta_product', 'intro']), - productVideo, - productVideoTranscript: page.product_video_transcript || null, heroImage: page.heroImage || null, hasGuidesPage, product: { @@ -139,13 +131,13 @@ export const getProductLandingContextFromRequest = async ( featuredArticles: Object.entries(req.context.featuredLinks || []) .filter(([key]) => { - return key === 'startHere' || key === 'popular' || key === 'videos' + return key === 'startHere' || key === 'popular' }) .map(([key, links]: any) => { return { key, label: - key === 'popular' || key === 'videos' + key === 'popular' ? req.context.page.featuredLinks[`${key}Heading`] || req.context.site.data.ui.toc[key] : req.context.site.data.ui.toc[key], viewAllHref: diff --git a/src/landings/middleware/featured-links.ts b/src/landings/middleware/featured-links.ts index eed889186858..5c921607f764 100644 --- a/src/landings/middleware/featured-links.ts +++ b/src/landings/middleware/featured-links.ts @@ -2,7 +2,6 @@ import type { Response, NextFunction } from 'express' import type { ExtendedRequest, FeaturedLinkExpanded } from '@/types' import getLinkData from '@/learning-track/lib/get-link-data' -import { renderContent } from '@/content-render/index' /** * This is the max. number of featured links, by any category, that we @@ -47,47 +46,21 @@ export default async function featuredLinks( req.context.featuredLinks = {} for (const key in req.context.page.featuredLinks) { - if (key === 'videos') { - // Videos are external URLs so don't run through getLinkData, they're - // objects with title and href properties. - // When the title contains Liquid versioning tags, it will be either - // the provided string title or an empty title. When the title is empty, - // it indicates the video is not versioned for the current version - req.context.featuredLinks[key] = [] - if (!(key in req.context.page.featuredLinks)) - throw new Error('featureLinks key not found in Page') - for (const featuredLink of req.context.page.featuredLinks[key]!) { - const title = await renderContent(featuredLink.title, req.context, { - textOnly: true, - }) - const item = { title, href: featuredLink.href } + const pageFeaturedLink = req.context.page.featuredLinks[key] + // Handle different types of featuredLinks by converting to string array + const stringLinks = Array.isArray(pageFeaturedLink) + ? pageFeaturedLink.map((item) => (typeof item === 'string' ? item : item.href)) + : [] - if (item.title) { - req.context.featuredLinks[key].push(item) - if (req.context.featuredLinks[key].length >= MAX_FEATURED_LINKS) { - break - } - } - } - } else { - if (!(key in req.context.page.featuredLinks)) - throw new Error('featureLinks key not found in Page') - const pageFeaturedLink = req.context.page.featuredLinks[key] - // Handle different types of featuredLinks by converting to string array - const stringLinks = Array.isArray(pageFeaturedLink) - ? pageFeaturedLink.map((item) => (typeof item === 'string' ? item : item.href)) - : [] - - const linkData = await getLinkData( - stringLinks, - req.context, - { title: true, intro: true, fullTitle: true }, - MAX_FEATURED_LINKS, - ) - // We need to use a type assertion here because the Page interfaces are incompatible - // between our local types and the global types, but the actual runtime objects are compatible - req.context.featuredLinks[key] = (linkData || []) as unknown as FeaturedLinkExpanded[] - } + const linkData = await getLinkData( + stringLinks, + req.context, + { title: true, intro: true, fullTitle: true }, + MAX_FEATURED_LINKS, + ) + // We need to use a type assertion here because the Page interfaces are incompatible + // between our local types and the global types, but the actual runtime objects are compatible + req.context.featuredLinks[key] = (linkData || []) as unknown as FeaturedLinkExpanded[] } return next() diff --git a/src/types/types.ts b/src/types/types.ts index 27884bb0b22b..5f9ddb6afc46 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -60,8 +60,6 @@ export type PageFrontmatter = { includeGuides?: string[] learningTracks?: string[] beta_product?: boolean - product_video?: boolean - product_video_transcript?: string interactive?: boolean communityRedirect?: { name: string @@ -80,11 +78,6 @@ type FeaturedLinks = { guideCards?: string[] popular?: string[] popularHeading?: string - videos?: { - title: string - href: string - }[] - videoHeadings?: string } export type ChildGroup = { From 2696e7a4ac53f060c2f4c852a08a26417a8af2dc Mon Sep 17 00:00:00 2001 From: mc <42146119+mchammer01@users.noreply.github.com> Date: Tue, 7 Apr 2026 17:46:52 +0200 Subject: [PATCH 09/12] [SRA + secrets] Improve discoverability with SEO updates to GHSP/ secret scanning docs (#60589) Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com> --- .../secret-security/about-push-protection.md | 6 +- .../secret-security/about-secret-scanning.md | 6 +- .../about-secret-security-with-github.md | 8 +- .../secret-security/secret-leakage-risks.md | 108 +++++++++--------- .../github-security-features.md | 6 +- 5 files changed, 64 insertions(+), 70 deletions(-) diff --git a/content/code-security/concepts/secret-security/about-push-protection.md b/content/code-security/concepts/secret-security/about-push-protection.md index 7134a346b52b..c98d4e02f38c 100644 --- a/content/code-security/concepts/secret-security/about-push-protection.md +++ b/content/code-security/concepts/secret-security/about-push-protection.md @@ -18,7 +18,7 @@ category: ## What is push protection? -Push protection is a {% data variables.product.prodname_secret_scanning %} feature designed to prevent sensitive information, such as secrets or tokens, from ever being pushed to your repository. Unlike {% data variables.product.prodname_secret_scanning %}, which detects secrets after they have been committed, push protection proactively scans your code for secrets during the push process, then blocks the push if any are detected. +Push protection is a {% data variables.product.prodname_secret_scanning %} feature designed to prevent hardcoded credentials, such as secrets or tokens, from ever being pushed to your repository. Rather than alerting you to credential leaks after the fact, push protection blocks pushes that contain secrets _before_ they reach your repository. ## How push protection works @@ -74,9 +74,9 @@ If you want greater control over which contributors can bypass push protection a ## Benefits of push protection -* **Preventative security:** Push protection acts as a frontline defense mechanism by scanning code for secrets at the time of the push. This preventative approach helps to catch potential issues before they are merged into a repository. +* **Preventative security:** Push protection acts as a frontline defense mechanism by scanning code for hardcoded secrets at the time of the push. This preventative approach helps prevent credential leaks before they become ingrained in the repository's history, making it easier to address and remediate threats. * **Immediate feedback:** Developers receive instant feedback if a potential secret is detected during a push attempt. This immediate notification allows for quick remediation, reducing the likelihood of sensitive information being exposed. -* **Reduced risk of data leaks:** By blocking commits that contain sensitive information, push protection significantly reduces the risk of accidental data leaks. This helps in safeguarding against unauthorized access to your infrastructure, services, and data. +* **Reduced risk of credential leaks:** By blocking commits that contain hardcoded credentials, push protection significantly reduces the risk of accidental credential leaks and secret sprawl. This helps in safeguarding against potential breaches and maintaining the integrity of the codebase. * **Efficient secret management:** Instead of retrospectively dealing with exposed secrets, developers can address issues at the source. This makes secret management more efficient and less time-consuming. * **Bypass functionality for flexibility:** For cases where false positives occur or when certain patterns are necessary, you can bypass push protection for users, and designated users can use the delegated bypass feature to bypass push protection for repositories. {% ifversion push-protection-org-enterprise-exemptions %}Additionally, you can exempt trusted actors {% ifversion push-protection-repo-exemptions %}{% else %}at the organization and enterprise levels {% endif %}from push protection entirely. {% endif %}This provides flexibility without compromising overall security. * **Ability to detect custom patterns (for repositories in organizations):** Organizations can define custom patterns for detecting secrets unique to their environment. This customization ensures that push protection can effectively identify and block even non-standard secrets. diff --git a/content/code-security/concepts/secret-security/about-secret-scanning.md b/content/code-security/concepts/secret-security/about-secret-scanning.md index 52a5b9e74df8..06364fa70eb0 100644 --- a/content/code-security/concepts/secret-security/about-secret-scanning.md +++ b/content/code-security/concepts/secret-security/about-secret-scanning.md @@ -19,7 +19,7 @@ category: - Protect your secrets --- -When credentials like API keys and passwords are committed to repositories, they become targets for unauthorized access. {% data variables.product.prodname_secret_scanning_caps %} automatically detects these exposed secrets so you can secure them before they're exploited. +When credentials like API keys and passwords are committed to repositories as hardcoded secrets, they become targets for unauthorized access. {% data variables.product.prodname_secret_scanning_caps %} automatically detects credential leaks so you can secure them before they're exploited. {% ifversion secret-risk-assessment %} @@ -32,7 +32,7 @@ When credentials like API keys and passwords are committed to repositories, they ## How secret scanning protects your code -{% data variables.product.prodname_secret_scanning_caps %} scans your entire Git history on all branches of your repository for API keys, passwords, tokens, and other known secret types. {% data variables.product.github %} also periodically rescans repositories when new secret types are added. +{% data variables.product.prodname_secret_scanning_caps %} scans your entire Git history on all branches of your repository for hardcoded credentials, including API keys, passwords, tokens, and other known secret types. This helps you identify secret sprawl, the uncontrolled proliferation of credentials across repositories, before it becomes a security risk. {% data variables.product.github %} also periodically rescans repositories when new secret types are added. {% data variables.product.github %} also automatically scans: @@ -40,7 +40,7 @@ When credentials like API keys and passwords are committed to repositories, they ### {% data variables.product.prodname_secret_scanning_caps %} alerts and remediation -When {% data variables.product.prodname_secret_scanning %} finds a potential secret, {% data variables.product.github %} generates an alert on your repository's **{% data variables.product.prodname_security_and_quality_tab %}** tab with details about the exposed credential. +When {% data variables.product.prodname_secret_scanning %} detects a credential leak, {% data variables.product.github %} generates an alert on your repository's **{% data variables.product.prodname_security_and_quality_tab %}** tab with details about the exposed credential. When you receive an alert, rotate the affected credential immediately to prevent unauthorized access. While you can also remove secrets from your Git history, this is time-intensive and often unnecessary if you've already revoked the credential. diff --git a/content/code-security/concepts/secret-security/about-secret-security-with-github.md b/content/code-security/concepts/secret-security/about-secret-security-with-github.md index e54c8d8666e2..1f2de595eb1c 100644 --- a/content/code-security/concepts/secret-security/about-secret-security-with-github.md +++ b/content/code-security/concepts/secret-security/about-secret-security-with-github.md @@ -14,7 +14,7 @@ category: - Protect your secrets --- -Exposed secrets in your repositories can lead to unauthorized access, data breaches, and significant costs to your organization. For details about these risks and how to protect against them, see [AUTOTITLE](/code-security/concepts/secret-security/secret-leakage-risks). +Hardcoded credentials in your repositories can lead to credential leaks, unauthorized access, data breaches, and significant costs to your organization. For details about these risks and how to protect against them, see [AUTOTITLE](/code-security/concepts/secret-security/secret-leakage-risks). {% data variables.product.github %} provides tools to help you understand and address your organization's exposure to leaked secrets: @@ -23,7 +23,7 @@ Exposed secrets in your repositories can lead to unauthorized access, data breac ## Secret risk assessment -The secret risk assessment provides organization owners and security managers with a free point-in-time scan of their organization's repositories to identify leaked secrets like API keys, tokens, and passwords. +The secret risk assessment provides organization owners and security managers with a free point-in-time scan of their organization's repositories to identify hardcoded credentials like API keys, tokens, and passwords, and understand the extent of secret sprawl across your organization. {% data variables.secret-scanning.secret-risk-assessment-cta-product %} @@ -52,13 +52,13 @@ Regular assessment helps prevent: While the {% data variables.product.prodname_secret_risk_assessment %} provides a point-in-time view of your organization's current secret exposure, {% data variables.product.prodname_GH_secret_protection %}: * **Implements continuous monitoring** and expands scanned surfaces beyond code to include pull requests, issues, wikis, and discussions -* **Prevents secret leaks** by blocking commits containing secrets before they are saved to {% data variables.product.github %} +* **Prevents credential leaks** by blocking commits containing hardcoded secrets before they are saved to {% data variables.product.github %} * **Creates actionable alerts** that can be grouped into campaigns and assigned to team members for remediation * **Meets your specific needs** by scanning for patterns unique to your organization and unstructured secrets like passwords * **Supports governance at scale** with settings dictating who can bypass protections and dismiss alerts * **Surfaces key analytics** through a view dedicated to your organization's secret security -Through these features, {% data variables.product.prodname_GH_secret_protection %} provides complete coverage for your organization, reducing the risk of costly secret leaks and high-effort remediation processes. +Through these features, {% data variables.product.prodname_GH_secret_protection %} provides complete coverage for your organization, reducing the risk of costly credential leaks, secret sprawl, and high-effort remediation. For more information about the specific features of {% data variables.product.prodname_GH_secret_protection %}, see [AUTOTITLE](/code-security/getting-started/github-security-features#available-with-github-secret-protection). diff --git a/content/code-security/concepts/secret-security/secret-leakage-risks.md b/content/code-security/concepts/secret-security/secret-leakage-risks.md index 281e9faf710d..270b70c58e17 100644 --- a/content/code-security/concepts/secret-security/secret-leakage-risks.md +++ b/content/code-security/concepts/secret-security/secret-leakage-risks.md @@ -9,96 +9,90 @@ versions: contentType: concepts --- -## Secrets and credentials +## What are secrets? -Secrets are credentials that grant access to sensitive systems and data, including API keys, passwords, authentication tokens, certificates, and encryption keys. When secrets are committed to repositories, they become part of your Git history and remain accessible even after being removed from the latest commit. +Secrets are credentials that grant access to sensitive systems and data. Common examples include: -Secrets in code repositories can be discovered by automated scanning tools and unauthorized users. Public repositories are particularly vulnerable, but leaked credentials from private repositories can also spread through forks, CI/CD logs, or third-party integrations. +* API keys and tokens used to authenticate with external services +* Database passwords and connection strings +* Cloud provider credentials and service account tokens +* Certificates and encryption keys -## Security impact of exposed secrets +When secrets are committed to repositories, they become **hardcoded credentials** that are embedded directly in your source code or configuration files. These hardcoded secrets become part of your Git history and remain accessible even after being removed from the latest commit. This means that addressing a credential leak requires more than deleting the file; you must also revoke and replace the credential to prevent unauthorized access. -Exposed secrets can lead to several types of security incidents: +## How secrets get exposed -**Unauthorized access and usage** -* Leaked cloud provider credentials can be used to provision infrastructure or services on your account -* Database credentials allow access to sensitive customer or organizational data -* Service account tokens provide entry points to production systems +**Secret sprawl** occurs when credentials proliferate across repositories, teams, and systems without centralized management or visibility. This makes it difficult to track which secrets exist, where they're used, and whether they've been exposed. Secrets typically enter repositories through several common patterns. -**Operational and compliance issues** -* Infrastructure can be modified or deleted using leaked credentials -* Data breaches from exposed secrets may result in regulatory penalties under GDPR, CCPA, and other frameworks -* Organizations face costs for incident response, credential rotation, and system remediation +### Development workflows -**Organizational risk** -* Public disclosure of leaked secrets affects customer trust and organizational reputation -* Exposed package registry tokens can be used to publish malicious versions of your software -* Proprietary API keys or service credentials may be exploited +* Hardcoded credentials added during local testing and inadvertently committed +* Secrets in configuration files such as `.env` files or infrastructure-as-code templates +* Example credentials containing real API keys or tokens in documentation, wikis, or README files -## Financial impact of exposed secrets +### Repository management -Secret leakage can result in direct and indirect costs to your organization, ranging from immediate expenses to long-term business consequences. +* Legacy repositories containing forgotten but still-active credentials +* Secrets shared in {% data variables.product.github %} issues, pull request comments, discussions, or gists +* Credentials introduced by external contributors or contractors -**Immediate costs** -* Unauthorized cloud resource usage from leaked API keys can generate charges for compute instances, storage, or data transfer -* Cryptocurrency mining operations on compromised accounts can result in substantial infrastructure bills -* Emergency incident response requires resources for forensic investigation, security audits, and credential rotation across systems +### Version control propagation -**Data breach costs** -* Regulatory fines for data protection violations can reach millions of dollars under GDPR, CCPA, and industry-specific regulations -* Legal costs include investigation, notification requirements, and potential litigation -* Credit monitoring and identity protection services for affected customers +* Secrets persist in Git history even after removal from current code. +* Credentials propagate to forked repositories, backup systems, and CI/CD logs. +* Public repositories with exposed secrets are indexed by search engines and specialized scanning services. -**Operational impact** -* Service disruptions from compromised infrastructure result in lost revenue and productivity -* Engineering time spent responding to security incidents diverts resources from product development -* Increased security tooling and monitoring costs following incidents +## Security risks -**Long-term business impact** -* Customer churn following public disclosure of security incidents -* Increased insurance premiums for cyber liability coverage -* Lost business opportunities due to failed security assessments or compliance audits +Exposed secrets can lead to several types of security incidents. -## Common secret leakage scenarios +### Unauthorized access -Secrets typically enter repositories through several common patterns: +Credential leaks give unauthorized users direct access to your systems. Once exposed, hardcoded secrets can be exploited to: -**Development workflows** -* Credentials hardcoded during local testing and inadvertently committed -* Secrets in configuration files like `.env` files or infrastructure-as-code templates -* Example credentials containing real tokens in documentation, wikis, or README files +* Provision infrastructure or services on your account using leaked cloud provider credentials +* Access sensitive customer or organizational data through compromised database credentials +* Gain entry to production systems via exposed service account tokens -**Repository management** -* Legacy repositories containing forgotten but still-active credentials -* Secrets shared in GitHub issues, pull request comments, discussions, or gists -* Credentials introduced by external contributors or contractors +### Data breaches + +Credential leaks give unauthorized users direct access to your systems, leading to data breaches. Once attackers gain access using exposed credentials, they can exfiltrate sensitive data, modify or delete critical information, and compromise customer trust. Data breaches require immediate incident response, including credential revocation, system remediation, and assessment of the breach's scope and impact. -**Version control challenges** -* Secrets persist in Git history even after removal from current code -* Credentials propagate to forked repositories, backup systems, and logs -* Public repositories with exposed secrets are indexed by search engines and specialized scanning services +### Supply chain attacks + +Exposed package registry tokens can be used to publish malicious versions of your software, affecting downstream users and organizations that depend on your packages. + +## Financial impact + +Exposed secrets can cost your organization money in several ways. + +* **Unexpected cloud bills**: Leaked API keys let attackers use your cloud resources. They can run compute instances, store data, or mine cryptocurrency on your account, generating large bills. +* **Incident response**: Investigating breaches, rotating credentials, and auditing systems takes significant engineering time and resources. +* **Legal costs**: Data breaches can result in fines, legal fees, and notification expenses. +* **Long-term damage**: Lost customers, higher insurance costs, and missed business opportunities after security incidents become public. ## Secret security with {% data variables.product.github %} {% data variables.product.github %} provides tools to help you prevent, detect, and remediate secret leakage: -### 1. Prevent new secrets from being leaked +### 1. Prevent new secrets from being committed -Enable **push protection for repositories** to scan code during `git push` operations and block commits containing detected secrets. This prevents credentials from entering your repositories while providing real-time feedback to developers. +Enable **Push protection** to scan code during `git push` operations and block commits containing detected secrets before they enter your repository. This prevents hardcoded credentials from being added to your codebase and provides real-time feedback to developers at the point of risk, covering both provider patterns for known services and non-provider patterns such as private keys and generic API keys. -Encourage your contributors to enable push protection for their personal accounts (the feature is referred to as "push protection for users") to protect all their pushes to their repositories, forks, and any repositories they contribute to across {% data variables.product.github %}. This allows individual developers to prevent secret leakage without waiting for organization-level policies. +Encourage individual developers to enable push protection for their personal accounts to protect all their pushes across {% data variables.product.github %}, regardless of organization policies. This helps prevent secret sprawl by catching leaked credentials before they reach your repositories. ### 2. Detect existing secrets -Use **{% data variables.product.prodname_secret_scanning %}** to continuously monitor repositories for committed secrets and receive alerts when credentials are detected. This enables you to revoke and rotate compromised credentials quickly. +Use **{% data variables.product.prodname_secret_scanning %}** to continuously monitor your repositories for hardcoded secrets and generate alerts when credentials are detected, enabling you to revoke and rotate compromised credentials quickly. Beyond default detection of provider patterns, you can expand scanning to non-provider patterns and define custom patterns for organization-specific secrets. This helps you gain visibility into secret sprawl across your organization. ## Next steps -To protect your organization from secret leakage:{% ifversion secret-risk-assessment %} -1. Run a free secret risk assessment to understand your current exposure. -{% data variables.secret-scanning.secret-risk-assessment-cta-product %} +To protect your organization from secret leakage: +{% ifversion secret-risk-assessment %} +1. Run a free secret risk assessment to understand your current exposure. {% data variables.secret-scanning.secret-risk-assessment-cta-product %} {% endif %} 1. Enable push protection to prevent new secrets from being committed. -1. Enable {% data variables.product.prodname_secret_scanning %} with a click to begin detecting secret leaks. +1. Enable {% data variables.product.prodname_secret_scanning %} to begin detecting existing secret leaks. 1. Establish secure credential management practices for your development teams. {% ifversion secret-risk-assessment %} diff --git a/content/code-security/getting-started/github-security-features.md b/content/code-security/getting-started/github-security-features.md index 6b60897878a6..c60fb05c307f 100644 --- a/content/code-security/getting-started/github-security-features.md +++ b/content/code-security/getting-started/github-security-features.md @@ -130,7 +130,7 @@ Push protection for users automatically protects you from accidentally committin For accounts on {% ifversion fpt or ghec %}{% data variables.product.prodname_team %} and {% data variables.product.prodname_ghe_cloud %}{% endif %}{% ifversion ghes %} {% data variables.product.prodname_ghe_server %}{% endif %}, you can access additional security features when you purchase **{% data variables.product.prodname_GH_secret_protection %}**. -{% data variables.product.prodname_GH_secret_protection %} includes features that help you detect and prevent secret leaks, such as {% data variables.product.prodname_secret_scanning %} and push protection. +{% data variables.product.prodname_GH_secret_protection %} includes features that help you detect and prevent credential leaks and secret sprawl, such as {% data variables.product.prodname_secret_scanning %} for detecting hardcoded credentials and push protection for blocking them before they reach your repository. These features are available for all repository types. {% ifversion fpt or ghec %}Some of these features are available for public repositories free of charge, meaning that you don't need to purchase {% data variables.product.prodname_GH_secret_protection %} to enable the feature on a public repository.{% endif %} @@ -148,7 +148,7 @@ For information about how you can try {% data variables.product.prodname_GH_secr ### {% data variables.secret-scanning.user_alerts_caps %} -Automatically detect tokens or credentials that have been checked into a repository. You can view alerts for any secrets that {% data variables.product.github %} finds in your code, in the **{% data variables.product.prodname_security_and_quality_tab %}** tab of the repository, so that you know which tokens or credentials to treat as compromised. For more information, see [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning/about-alerts#about-user-alerts). +Automatically detect hardcoded credentials that have been checked into a repository. You can view alerts for any secrets that {% data variables.product.github %} finds in your code, in the **{% data variables.product.prodname_security_and_quality_tab %}** tab of your repository, so you can respond to credential leaks quickly. For more information, see [AUTOTITLE](/code-security/secret-scanning/introduction/about-secret-scanning). {% data reusables.advanced-security.available-for-public-repos %} @@ -162,7 +162,7 @@ Automatically detect tokens or credentials that have been checked into a reposit ### Push protection -Push protection proactively scans your code, and any repository contributors' code, for secrets during the push process and blocks the push if any secrets are detected. If a contributor bypasses the block, {% data variables.product.github %} creates an alert. For more information, see [AUTOTITLE](/code-security/secret-scanning/introduction/about-push-protection). +Push protection proactively scans your code, and any repository contributors' code, for hardcoded secrets during the push process and blocks the push if any credential leaks are detected. If a contributor bypasses the block, an alert is generated. For more information, see [AUTOTITLE](/code-security/secret-scanning/introduction/about-push-protection). {% data reusables.advanced-security.available-for-public-repos %} From db9483638b8ca49f69fdfea485314a469f97b429 Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Tue, 7 Apr 2026 08:58:13 -0700 Subject: [PATCH 10/12] Remove product-guides layout and includeGuides infrastructure (#60621) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- content/README.md | 28 ---- .../using-yaml-frontmatter.md | 28 ---- content/issues/guides.md | 36 ----- content/issues/index.md | 2 +- content/sponsors/guides.md | 19 --- content/sponsors/index.md | 2 +- data/ui.yml | 18 --- .../tests/product-guides-transformer.ts | 37 ----- src/article-api/transformers/index.ts | 2 - .../product-guides-transformer.ts | 137 ------------------ .../tests/lint-frontmatter-links.ts | 28 ---- .../fixtures/content/code-security/guides.md | 15 -- .../fixtures/content/code-security/index.md | 1 - .../fixtures/content/codespaces/guides.md | 11 -- .../fixtures/content/codespaces/index.md | 3 +- src/fixtures/fixtures/data/ui.yml | 18 --- src/fixtures/tests/guides.ts | 118 --------------- src/fixtures/tests/playwright-a11y.spec.ts | 1 - src/frame/lib/frontmatter.ts | 4 - src/frame/lib/page.ts | 24 +-- src/landings/README.md | 1 - src/landings/components/ArticleCard.tsx | 21 --- src/landings/components/ArticleCards.tsx | 44 ------ src/landings/components/GuidesHero.tsx | 17 --- src/landings/components/ProductGuides.tsx | 51 ------- .../components/ProductGuidesContext.tsx | 53 ------- src/landings/pages/product.tsx | 17 --- src/links/lib/update-internal-links.ts | 1 - src/types/types.ts | 1 - 29 files changed, 4 insertions(+), 734 deletions(-) delete mode 100644 content/issues/guides.md delete mode 100644 content/sponsors/guides.md delete mode 100644 src/article-api/tests/product-guides-transformer.ts delete mode 100644 src/article-api/transformers/product-guides-transformer.ts delete mode 100644 src/fixtures/fixtures/content/code-security/guides.md delete mode 100644 src/fixtures/fixtures/content/codespaces/guides.md delete mode 100644 src/fixtures/tests/guides.ts delete mode 100644 src/landings/components/ArticleCard.tsx delete mode 100644 src/landings/components/ArticleCards.tsx delete mode 100644 src/landings/components/GuidesHero.tsx delete mode 100644 src/landings/components/ProductGuides.tsx diff --git a/content/README.md b/content/README.md index 7b08a17ac52a..354af1038bd2 100644 --- a/content/README.md +++ b/content/README.md @@ -24,7 +24,6 @@ See the [contributing docs](https://docs.github.com/en/contributing) for general - [`defaultPlatform`](#defaultplatform) - [`defaultTool`](#defaulttool) - [`learningTracks`](#learningtracks) - - [`includeGuides`](#includeguides) - [`journeyTracks`](#journeytracks) - [`journeyArticlesHeading`](#journeyarticlesheading) - [`contentType`](#contenttype) @@ -41,7 +40,6 @@ See the [contributing docs](https://docs.github.com/en/contributing) for general - [Legacy filepaths and redirects for links](#legacy-filepaths-and-redirects-for-links) - [Index pages](#index-pages) - [Home page](#homepage) - - [Creating new product guides pages](#creating-new-product-guides-pages) ## Frontmatter @@ -238,21 +236,6 @@ defaultTool: cli **Note: the featured track is set by a specific property in the learning tracks YAML. See that [README](../data/learning-tracks/README.md) for details.* -### `includeGuides` -- Purpose: Render a list of articles, filterable by `contentType`. Only applicable when used with `layout: product-guides`. -- Type: `Array` -- Optional. - -Example: - -```yaml -includeGuides: - - /actions/guides/about-continuous-integration - - /actions/guides/setting-up-continuous-integration-using-workflow-templates - - /actions/guides/building-and-testing-nodejs - - /actions/guides/building-and-testing-powershell -``` - ### `journeyTracks` - Purpose: Define journeys for journey landing pages. - Type: `Array` of objects with the following properties: @@ -451,14 +434,3 @@ Index pages are the Table of Contents files for the docs site. Every product, ca The homepage is the main Table of Contents file for the docs site. The homepage must have a complete list of `children`, like every [Index page](#index-page) but must also specify the `childGroups` frontmatter property that will be highlighted in the main content area. `childGroups` is an array of mappings containing a `name` for the group, an optional `icon` for the group, and an array of `children`. The `children` in the array must be present in the `children` frontmatter property. - -### Creating new product guides pages - -To create a product guides page (e.g. [Actions' Guide page](https://docs.github.com/en/actions/guides)), create or modify an existing markdown file with these specific frontmatter values: - -1. Use the product guides page template by referencing `layout: product-guides`. -1. (optional) Include the learning tracks in [`learningTracks`](#learningTracks). -1. (optional) Define which articles to include with [`includeGuides`](#includeGuides). - -If using learning tracks, they need to be defined in [`data/learning-tracks/*.yml`](../data/learning-tracks/README.md). -If using `includeGuides`, make sure each of the articles in this list has [`contentType`](#contenttype) in its frontmatter. diff --git a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md index 97f007298c58..1135b52703a2 100644 --- a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md +++ b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md @@ -40,7 +40,6 @@ For more information, see [`lib/frontmatter.ts`](https://github.com/github/docs/ * [`defaultPlatform`](#defaultplatform) * [`defaultTool`](#defaulttool) * [`learningTracks`](#learningtracks) -* [`includeGuides`](#includeguides) * [`journeyTracks`](#journeytracks) * [`type`](#type) * [`communityRedirect`](#communityredirect) @@ -235,22 +234,6 @@ defaultTool: cli > [!NOTE] > The featured track is set by a specific property in the learning tracks YAML. See that [README](https://github.com/github/docs/blob/main/data/learning-tracks/README.md) for details. -### `includeGuides` - -* Purpose: Render a list of articles, filterable by `type`. Only applicable when used with `layout: product-guides`. -* Type: `Array` -* Optional. - -Example: - -```yaml -includeGuides: - - /actions/guides/about-continuous-integration - - /actions/guides/setting-up-continuous-integration-using-workflow-templates - - /actions/guides/building-and-testing-nodejs - - /actions/guides/building-and-testing-powershell -``` - ### `journeyTracks` * Purpose: Define journeys for journey landing pages. @@ -337,14 +320,3 @@ Index pages are the table of contents files for the Docs site. Every product, ca The homepage is the main Table of Contents file for the docs site. The homepage must have a complete list of `children`, like every [Index page](#index-pages) but must also specify the `childGroups` frontmatter property that will be highlighted in the main content area. `childGroups` is an array of mappings containing a `name` for the group, an optional `icon` for the group, and an array of `children`. The `children` in the array must be present in the `children` frontmatter property. - -## Creating new product guides pages - -To create a product guides page (e.g. [{% data variables.product.prodname_actions %} Guide page](/actions/guides)), create or modify an existing markdown file with these specific frontmatter values: - -* Use the product guides page template by referencing `layout: product-guides`. -* Include the learning tracks in [`learningTracks`](#learningtracks). Optional. -* Define which articles to include with [`includeGuides`](#includeguides). Optional. - -If using learning tracks, they need to be defined in [`data/learning-tracks/*.yml`](https://github.com/github/docs/tree/main/data/learning-tracks). -If using `includeGuides`, make sure each of the articles in this list has [`type`](#type) in its frontmatter. diff --git a/content/issues/guides.md b/content/issues/guides.md deleted file mode 100644 index fb21208ad6af..000000000000 --- a/content/issues/guides.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Guides for Issues -shortTitle: Guides -intro: 'Learn how you can use {% data variables.product.prodname_github_issues %} to plan and track your work.' -allowTitleToDifferFromFilename: true -layout: product-guides -versions: - fpt: '*' - ghes: '*' - ghec: '*' -includeGuides: - - /issues/tracking-your-work-with-issues/learning-about-issues/quickstart - - /issues/planning-and-tracking-with-projects/learning-about-projects/quickstart-for-projects - - /issues/tracking-your-work-with-issues/learning-about-issues/planning-and-tracking-work-for-your-team-or-project - - /issues/planning-and-tracking-with-projects/learning-about-projects/best-practices-for-projects - - /issues/tracking-your-work-with-issues/using-issues/creating-an-issue - - /issues/planning-and-tracking-with-projects/creating-projects/creating-a-project - - /issues/tracking-your-work-with-issues/using-issues/managing-issue-types-in-an-organization - - /issues/tracking-your-work-with-issues/using-issues/adding-sub-issues - - /issues/tracking-your-work-with-issues/using-issues/creating-issue-dependencies - - /issues/tracking-your-work-with-issues/using-issues/filtering-and-searching-issues-and-pull-requests - - /issues/tracking-your-work-with-issues/using-issues/viewing-all-of-your-issues-and-pull-requests - - /issues/using-labels-and-milestones-to-track-work/managing-labels - - /issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests - - /issues/planning-and-tracking-with-projects/understanding-fields - - /issues/planning-and-tracking-with-projects/customizing-views-in-your-project - - /issues/planning-and-tracking-with-projects/viewing-insights-from-your-project/creating-charts - - /issues/planning-and-tracking-with-projects/managing-your-project/managing-project-templates-in-your-organization - - /issues/planning-and-tracking-with-projects/automating-your-project/using-the-built-in-automations - - /issues/planning-and-tracking-with-projects/automating-your-project/using-the-api-to-manage-projects - - /issues/planning-and-tracking-with-projects/managing-items-in-your-project/adding-items-to-your-project - - /issues/planning-and-tracking-with-projects/automating-your-project/automating-projects-using-actions - -category: - - Create and work with issues ---- diff --git a/content/issues/index.md b/content/issues/index.md index e33ea1bf0190..b4848a6be389 100644 --- a/content/issues/index.md +++ b/content/issues/index.md @@ -35,7 +35,6 @@ children: - /planning-and-tracking-with-projects - /organizing-your-work-with-project-boards - /using-labels-and-milestones-to-track-work - - /guides redirect_from: - /github/managing-your-work-on-github/managing-your-work-with-issues-and-pull-requests - /github/managing-your-work-on-github/managing-your-work-with-issues @@ -61,5 +60,6 @@ redirect_from: - /disabling-issues - /linking-a-pull-request-to-an-issue - /about-duplicate-issues-and-pull-requests + - /issues/guides - /video-transcripts/transcript-using-projects-for-feature-planning --- diff --git a/content/sponsors/guides.md b/content/sponsors/guides.md deleted file mode 100644 index a58af27cca15..000000000000 --- a/content/sponsors/guides.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Guides for GitHub Sponsors -shortTitle: Guides -intro: 'Learn how to make the most of {% data variables.product.prodname_sponsors %}.' -allowTitleToDifferFromFilename: true -layout: product-guides -versions: - fpt: '*' - ghec: '*' -includeGuides: - - /sponsors/getting-started-with-github-sponsors/quickstart-for-finding-contributors-to-sponsor - - /sponsors/sponsoring-open-source-contributors/attributing-sponsorships-to-your-organization - - /sponsors/sponsoring-open-source-contributors/managing-your-sponsorship - - /sponsors/receiving-sponsorships-through-github-sponsors/managing-your-payouts-from-github-sponsors - - /sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-personal-account - - /sponsors/receiving-sponsorships-through-github-sponsors/setting-up-github-sponsors-for-your-organization - - /sponsors/integrating-with-github-sponsors/configuring-webhooks-for-events-in-your-sponsored-account ---- - diff --git a/content/sponsors/index.md b/content/sponsors/index.md index fae7d5208c38..01ce11604bb6 100644 --- a/content/sponsors/index.md +++ b/content/sponsors/index.md @@ -8,6 +8,7 @@ introLinks: redirect_from: - /categories/supporting-the-open-source-community-with-github-sponsors - /github/supporting-the-open-source-community-with-github-sponsors + - /sponsors/guides changelog: label: sponsors layout: discovery-landing @@ -36,5 +37,4 @@ children: - /sponsoring-open-source-contributors - /receiving-sponsorships-through-github-sponsors - /integrating-with-github-sponsors - - /guides --- diff --git a/data/ui.yml b/data/ui.yml index e59e8ee8b1a6..ea09f35aaaf2 100644 --- a/data/ui.yml +++ b/data/ui.yml @@ -306,24 +306,6 @@ product_landing: view: View all all_docs: 'All {{ title }} docs' all_content: 'View all {{ title }} content' -product_guides: - learning_paths_title: '{{ name }} learning paths' - start_path: Start learning path - learning_paths_desc: Learning paths are a collection of guides that help you master a particular subject. - more_guides: more guides - load_more: Load more guides - all_guides_title: 'All {{ name }} guides' - filter_instructions: Filter the guide list using these controls - guides_found: - multiple: '{n} guides found' - one: 1 guide found - none: No guides found - guide_types: - get-started: Quickstart - concepts: Concepts - how-tos: How-to guide - tutorials: Tutorial - reference: Reference learning_track_nav: prev_guide: Previous next_guide: Next diff --git a/src/article-api/tests/product-guides-transformer.ts b/src/article-api/tests/product-guides-transformer.ts deleted file mode 100644 index d469e9547942..000000000000 --- a/src/article-api/tests/product-guides-transformer.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { describe, expect, test } from 'vitest' - -import { get } from '@/tests/helpers/e2etest' - -const makeURL = (pathname: string): string => - `/api/article/body?${new URLSearchParams({ pathname })}` - -describe('product guides transformer', () => { - test('renders a product guides page with learning tracks', async () => { - // Product guides pages use layout: product-guides - // /en/codespaces/guides is a product guides page - const res = await get(makeURL('/en/codespaces/guides')) - expect(res.statusCode).toBe(200) - expect(res.headers['content-type']).toContain('text/markdown') - - // Should have Links section - expect(res.body).toContain('## Links') - }) - - test('includes guide cards if present', async () => { - const res = await get(makeURL('/en/codespaces/guides')) - expect(res.statusCode).toBe(200) - - // If includeGuides are present, they should appear under Guides - // The rendering depends on what's in the frontmatter - expect(res.body).toMatch(/##|###/) - }) - - test('includes learning tracks if present', async () => { - const res = await get(makeURL('/en/codespaces/guides')) - expect(res.statusCode).toBe(200) - - // Learning tracks should be rendered as sections with their titles - // The actual content depends on frontmatter configuration - expect(res.body).toContain('## Links') - }) -}) diff --git a/src/article-api/transformers/index.ts b/src/article-api/transformers/index.ts index 1c1b90f7b4cb..cc8ba96f44e3 100644 --- a/src/article-api/transformers/index.ts +++ b/src/article-api/transformers/index.ts @@ -14,7 +14,6 @@ import { BespokeLandingTransformer } from './bespoke-landing-transformer' import { JourneyLandingTransformer } from './journey-landing-transformer' import { CategoryLandingTransformer } from './category-landing-transformer' import { DiscoveryLandingTransformer } from './discovery-landing-transformer' -import { ProductGuidesTransformer } from './product-guides-transformer' import { ProductLandingTransformer } from './product-landing-transformer' import { SearchPageTransformer } from './search-page-transformer' import { ArticleTransformer } from './article-transformer' @@ -40,7 +39,6 @@ transformerRegistry.register(new BespokeLandingTransformer()) transformerRegistry.register(new JourneyLandingTransformer()) transformerRegistry.register(new CategoryLandingTransformer()) transformerRegistry.register(new DiscoveryLandingTransformer()) -transformerRegistry.register(new ProductGuidesTransformer()) transformerRegistry.register(new ProductLandingTransformer()) transformerRegistry.register(new SearchPageTransformer()) // ArticleTransformer is the catch-all — must be registered last. diff --git a/src/article-api/transformers/product-guides-transformer.ts b/src/article-api/transformers/product-guides-transformer.ts deleted file mode 100644 index 3b386cba8e86..000000000000 --- a/src/article-api/transformers/product-guides-transformer.ts +++ /dev/null @@ -1,137 +0,0 @@ -import type { Context, Page } from '@/types' -import type { PageTransformer, TemplateData, Section, LinkGroup, LinkData } from './types' -import { renderContent } from '@/content-render/index' -import { loadTemplate } from '@/article-api/lib/load-template' - -interface ProcessedLink { - href: string - title?: string - intro?: string -} - -interface LearningTrack { - title: string - guides: ProcessedLink[] -} - -/** - * ProductGuidesPage extends Page with optional guide and learning track fields. - * - includeGuides/rawIncludeGuides: Curated list of guide articles (processed objects vs raw paths) - * - learningTracks/rawLearningTracks: Grouped tutorials (processed objects vs raw track IDs) - */ -interface ProductGuidesPage extends Page { - includeGuides?: ProcessedLink[] - rawIncludeGuides?: string[] - learningTracks?: LearningTrack[] - rawLearningTracks?: string[] -} - -/** - * Transforms product-guides pages into markdown format. - * Handles includeGuides (curated articles) and learningTracks (grouped tutorials). - */ -export class ProductGuidesTransformer implements PageTransformer { - templateName = 'landing-page.template.md' - - canTransform(page: Page): boolean { - return page.layout === 'product-guides' - } - - async transform(page: Page, pathname: string, context: Context): Promise { - const templateData = await this.prepareTemplateData(page, pathname, context) - const templateContent = loadTemplate(this.templateName) - - return await renderContent(templateContent, { - ...context, - ...templateData, - markdownRequested: true, - }) - } - - private async prepareTemplateData( - page: Page, - pathname: string, - context: Context, - ): Promise { - const guidesPage = page as ProductGuidesPage - const sections: Section[] = [] - const groups: LinkGroup[] = [] - - // Include guides - const includeGuidesData = guidesPage.includeGuides ?? guidesPage.rawIncludeGuides - if (includeGuidesData && includeGuidesData.length > 0) { - const { default: getLinkData } = await import('@/learning-track/lib/get-link-data') - - const isProcessed = typeof includeGuidesData[0] === 'object' - - let processedLinks: ProcessedLink[] - if (isProcessed) { - processedLinks = includeGuidesData as ProcessedLink[] - } else { - processedLinks = - (await getLinkData(includeGuidesData as string[], context, { - title: true, - intro: true, - })) || [] - } - - const links: LinkData[] = (processedLinks || []).map((item) => ({ - href: item.href, - title: item.title || '', - intro: item.intro || '', - })) - - const validLinks = links.filter((l) => l.href) - if (validLinks.length > 0) { - groups.push({ title: 'Guides', links: validLinks }) - } - } - - // Learning tracks - const learningTracksData = guidesPage.learningTracks ?? guidesPage.rawLearningTracks - if (learningTracksData && learningTracksData.length > 0) { - let processedTracks: LearningTrack[] - if (Array.isArray(guidesPage.learningTracks) && guidesPage.learningTracks.length > 0) { - processedTracks = guidesPage.learningTracks - } else { - const { default: processLearningTracks } = - await import('@/learning-track/lib/process-learning-tracks') - const { learningTracks } = await processLearningTracks( - learningTracksData as string[], - context, - ) - processedTracks = learningTracks - } - - for (const track of processedTracks) { - if (!track.guides || !Array.isArray(track.guides)) continue - - const links: LinkData[] = track.guides.map((guide) => ({ - href: guide.href, - title: guide.title || '', - intro: guide.intro || '', - })) - - if (links.length > 0) { - groups.push({ title: track.title, links }) - } - } - } - - if (groups.length > 0) { - sections.push({ - title: 'Links', - groups, - }) - } - - const intro = page.intro ? await page.renderProp('intro', context, { textOnly: true }) : '' - const title = await page.renderTitle(context, { unwrap: true }) - - return { - title, - intro, - sections, - } - } -} diff --git a/src/content-linter/tests/lint-frontmatter-links.ts b/src/content-linter/tests/lint-frontmatter-links.ts index 1b5fa16c7a9d..07b4b1e352af 100644 --- a/src/content-linter/tests/lint-frontmatter-links.ts +++ b/src/content-linter/tests/lint-frontmatter-links.ts @@ -41,34 +41,6 @@ describe('front matter', () => { return customErrorMessage } - // Test content with .includeGuides front matter - - const pagesWithIncludeGuides = pageList.filter((page) => page.includeGuides) - test.each(pagesWithIncludeGuides)( - '$relativePath .includeGuides have pristine links', - async (page) => { - const redirectsContext = { redirects, pages } - - const trouble = page - .includeGuides! // Using any type for uri because includeGuides can contain various URI formats - .map((uri: any, i: number) => checkURL(uri, i, redirectsContext)) - .filter(Boolean) - - const customErrorMessage = makeCustomErrorMessage(page, trouble, 'includeGuides') - expect(trouble.length, customErrorMessage).toEqual(0) - - const counts = new Map() - for (const guide of page.includeGuides!) { - counts.set(guide, (counts.get(guide) || 0) + 1) - } - const countUnique = counts.size - let notDistinctMessage = `In ${page.relativePath} there are duplicate links in .includeGuides` - const dupes = [...counts.entries()].filter(([, count]) => count > 1).map(([entry]) => entry) - notDistinctMessage += `\nTo fix this, remove: ${dupes.join(' and ')}` - expect(page.includeGuides!.length, notDistinctMessage).toEqual(countUnique) - }, - ) - // Test content with .featuredLinks front matter const pagesWithFeaturedLinks = pageList.filter((page) => page.featuredLinks) diff --git a/src/fixtures/fixtures/content/code-security/guides.md b/src/fixtures/fixtures/content/code-security/guides.md deleted file mode 100644 index 824e63aa871c..000000000000 --- a/src/fixtures/fixtures/content/code-security/guides.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Guides for cool security -intro: This page has a deliberately whimsical `title` for testing purposes. -layout: product-guides -versions: - fpt: '*' - ghes: '*' - ghec: '*' -includeGuides: - - /code-security/getting-started/quickstart - - /code-security/getting-started/securing-your-organization -learningTracks: - - foo_bar - - bar_foo ---- diff --git a/src/fixtures/fixtures/content/code-security/index.md b/src/fixtures/fixtures/content/code-security/index.md index c01870c61ff9..3255d78d76c7 100644 --- a/src/fixtures/fixtures/content/code-security/index.md +++ b/src/fixtures/fixtures/content/code-security/index.md @@ -13,7 +13,6 @@ versions: ghec: '*' children: - /getting-started - - /guides - /secret-scanning - /codeql-cli --- diff --git a/src/fixtures/fixtures/content/codespaces/guides.md b/src/fixtures/fixtures/content/codespaces/guides.md deleted file mode 100644 index 8e11ac0bc1a0..000000000000 --- a/src/fixtures/fixtures/content/codespaces/guides.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Guides for GitHub Codespaces -intro: Learn how to make the most of GitHub Codespaces. -layout: product-guides -versions: - fpt: '*' -includeGuides: - - /get-started/start-your-journey/hello-world -learningTracks: - - foo_bar ---- diff --git a/src/fixtures/fixtures/content/codespaces/index.md b/src/fixtures/fixtures/content/codespaces/index.md index 024b1c2aba26..c3879f8d8957 100644 --- a/src/fixtures/fixtures/content/codespaces/index.md +++ b/src/fixtures/fixtures/content/codespaces/index.md @@ -3,6 +3,5 @@ title: GitHub Codespaces documentation intro: Develop in a codespace. versions: fpt: '*' -children: - - /guides +children: [] --- diff --git a/src/fixtures/fixtures/data/ui.yml b/src/fixtures/fixtures/data/ui.yml index e59e8ee8b1a6..ea09f35aaaf2 100644 --- a/src/fixtures/fixtures/data/ui.yml +++ b/src/fixtures/fixtures/data/ui.yml @@ -306,24 +306,6 @@ product_landing: view: View all all_docs: 'All {{ title }} docs' all_content: 'View all {{ title }} content' -product_guides: - learning_paths_title: '{{ name }} learning paths' - start_path: Start learning path - learning_paths_desc: Learning paths are a collection of guides that help you master a particular subject. - more_guides: more guides - load_more: Load more guides - all_guides_title: 'All {{ name }} guides' - filter_instructions: Filter the guide list using these controls - guides_found: - multiple: '{n} guides found' - one: 1 guide found - none: No guides found - guide_types: - get-started: Quickstart - concepts: Concepts - how-tos: How-to guide - tutorials: Tutorial - reference: Reference learning_track_nav: prev_guide: Previous next_guide: Next diff --git a/src/fixtures/tests/guides.ts b/src/fixtures/tests/guides.ts deleted file mode 100644 index ff4adb7d231d..000000000000 --- a/src/fixtures/tests/guides.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { describe, expect, test } from 'vitest' -import type { CheerioAPI } from 'cheerio' - -import { get, getDOMCached as getDOM } from '@/tests/helpers/e2etest' - -describe('guides', () => { - test("page's title should be document title", async () => { - const $: CheerioAPI = await getDOM('/code-security/guides') - // This is what you'd find in src/fixtures/fixtures/content/code-security/guides.md - const title = 'Guides for cool security' - expect($('title').text()).toMatch(title) - expect($('h1').text()).toMatch(title) - const learningPaths = $('h2#learning-paths') - expect(learningPaths.text()).toMatch('HubGit Code security learning paths') - const allGuides = $('h2#all-guides') - expect(allGuides.text()).toMatch('All HubGit Code security guides') - }) -}) - -describe('learning tracks', () => { - test('start the first learning track and come back via the navigation banner', async () => { - const $: CheerioAPI = await getDOM('/code-security/guides') - const links = $('[data-testid=learning-track] a') - const link = links - .filter((_: number, el: any) => $(el).text() === 'Start learning path') - .first() - expect(link.attr('href')).toMatch('learn=foo_bar') - expect(link.attr('href')).toMatch('learnProduct=code-security') - - // Go the first "Start learning path" link - const $2: CheerioAPI = await getDOM(link.attr('href')!) - const card2 = $2('[data-testid=learning-track-card]') - // The card has 2 links. One to go back to the guide page - // whose title is the name of the learning track - const backLink = card2.find('a').first() - expect(backLink.attr('href')).toBe('/en/code-security/guides') - expect(backLink.text()).toBe('Fix the plumbing') - // Underneath it says "1 of in learning path" - const span = card2.find('span').filter((_: number, el: any) => $(el).text().includes('1 of 2')) - expect(span.text()).toBe('1 of 2 in learning path') - const nextWrapper = card2 - .find('span') - .filter((_: number, el: any) => $(el).text().includes('Next')) - expect(nextWrapper.length).toBe(1) - const nextLink = nextWrapper.find('a').first() - expect(nextLink.attr('href')).toMatch( - 'code-security/getting-started/securing-your-organization', - ) - expect(nextLink.attr('href')).toMatch('learn=foo_bar') - expect(nextLink.attr('href')).toMatch('learnProduct=code-security') - expect(nextLink.text()).toBe('Securing your organization') - // There's also a nav at the bottom of the page - const nav2 = $2('[data-testid=learning-track-nav]') - const navNextLink = nav2.find('a').first() - expect(navNextLink.attr('href')).toMatch('learn=foo_bar') - expect(navNextLink.attr('href')).toMatch('learnProduct=code-security') - expect(navNextLink.text()).toBe('Securing your organization') - - // Go to the next (last) page - const $3: CheerioAPI = await getDOM(nextLink.attr('href')!) - const card3 = $3('[data-testid=learning-track-card]') - const span3 = card3.find('span').filter((_: number, el: any) => $(el).text().includes('2 of 2')) - expect(span3.text()).toBe('2 of 2 in learning path') - // No "Next:" link now - const nextWrapper3 = card3 - .find('span') - .filter((_: number, el: any) => $(el).text().includes('Next')) - expect(nextWrapper3.length).toBe(0) - const moreGuidesLink = card3 - .find('a') - .filter((_: number, el: any) => $(el).text().includes('More guides')) - expect(moreGuidesLink.attr('href')).toBe('/en/code-security/guides') - - // On this last page, the nav will link to the previous page - const nav3 = $2('[data-testid=learning-track-nav]') - const navPrevLink = nav3.find('a').first() - expect(navPrevLink.attr('href')).toMatch( - 'code-security/getting-started/securing-your-organization', - ) - }) - - test('with and without a valid ?learn= query string', async () => { - // Valid - { - const $: CheerioAPI = await getDOM('/code-security/getting-started/quickstart?learn=foo_bar') - expect($('[data-testid=learning-track-card]').length).toBe(1) - expect($('[data-testid=learning-track-nav]').length).toBe(1) - } - // Invalid - { - const $: CheerioAPI = await getDOM( - '/code-security/getting-started/quickstart?learn=blablainvalid', - ) - expect($('[data-testid=learning-track-card]').length).toBe(0) - expect($('[data-testid=learning-track-nav]').length).toBe(0) - } - // Empty - { - const $: CheerioAPI = await getDOM('/code-security/getting-started/quickstart?learn=') - expect($('[data-testid=learning-track-card]').length).toBe(0) - expect($('[data-testid=learning-track-nav]').length).toBe(0) - } - // Missing - { - const $: CheerioAPI = await getDOM('/code-security/getting-started/quickstart') - expect($('[data-testid=learning-track-card]').length).toBe(0) - expect($('[data-testid=learning-track-nav]').length).toBe(0) - } - }) - - // Skipping this test due to flakes... does this page actually have a learning track on it? - test.skip('REST category learning track article works', async () => { - const response = await get('/rest/actions?learnProduct=code-security&learn=bar_foo', { - followAllRedirects: true, - }) - expect(response.statusCode).toBe(200) - }) -}) diff --git a/src/fixtures/tests/playwright-a11y.spec.ts b/src/fixtures/tests/playwright-a11y.spec.ts index 0027f09f630b..0f518aaab224 100644 --- a/src/fixtures/tests/playwright-a11y.spec.ts +++ b/src/fixtures/tests/playwright-a11y.spec.ts @@ -5,7 +5,6 @@ import { turnOffExperimentsInPage, turnOnExperimentsInPage } from '../helpers/tu const pages: { [key: string]: string } = { category: '/actions/category', codeAnnotations: '/get-started/markdown/code-annotations', - guides: '/code-security/guides', homepage: '/', learningPath: '/code-security/getting-started/quickstart?learn=foo_bar&learnProduct=code-security', diff --git a/src/frame/lib/frontmatter.ts b/src/frame/lib/frontmatter.ts index 1e15d9f3c568..e390b6421c16 100644 --- a/src/frame/lib/frontmatter.ts +++ b/src/frame/lib/frontmatter.ts @@ -37,7 +37,6 @@ const layoutNames = [ 'default', 'graphql-explorer', 'product-landing', - 'product-guides', 'release-notes', 'inline', 'category-landing', @@ -184,9 +183,6 @@ export const schema: Schema = { type: 'string', enum: contentTypesEnum, }, - includeGuides: { - type: 'array', - }, learningTracks: { type: 'array', }, diff --git a/src/frame/lib/page.ts b/src/frame/lib/page.ts index eae53f6b6343..af366ca8e801 100644 --- a/src/frame/lib/page.ts +++ b/src/frame/lib/page.ts @@ -12,7 +12,7 @@ import processLearningTracks from '@/learning-track/lib/process-learning-tracks' import { productMap } from '@/products/lib/all-products' import slash from 'slash' import readFileContents from './read-file-contents' -import getLinkData from '@/learning-track/lib/get-link-data' + import getDocumentType from '@/events/lib/get-document-type' import { allTools } from '@/tools/lib/all-tools' import { renderContentWithFallback } from '@/languages/lib/render-with-fallback' @@ -58,12 +58,6 @@ type CommunityRedirect = { href: string } -type GuideWithContentType = { - href: string - title: string - contentType?: string -} - export class FrontmatterErrorsError extends Error { public frontmatterErrors: string[] @@ -91,8 +85,6 @@ class Page { public redirect_from?: string[] public learningTracks?: any[] public rawLearningTracks?: string[] - public includeGuides?: GuideWithContentType[] - public rawIncludeGuides?: string[] public introLinks?: Record public rawIntroLinks?: Record public carousels?: Record @@ -222,7 +214,6 @@ class Page { this.rawProduct = this.product this.rawPermissions = this.permissions this.rawLearningTracks = this.learningTracks - this.rawIncludeGuides = this.includeGuides as any this.rawIntroLinks = this.introLinks this.rawCarousels = this.carousels @@ -377,19 +368,6 @@ class Page { this.introLinks = introLinks } - if (this.rawIncludeGuides) { - this.includeGuides = (await getLinkData( - this.rawIncludeGuides, - context, - )) as GuideWithContentType[] - this.includeGuides?.map((guide: any) => { - const { page } = guide - guide.contentType = page.contentType - delete guide.page - return guide - }) - } - // set a flag so layout knows whether to render a mac/windows/linux switcher element // Remember, the values of platform is matched in // the handleInvalidQuerystringValues shielding middleware. diff --git a/src/landings/README.md b/src/landings/README.md index 29e5d4053fe0..48f6a650ec26 100644 --- a/src/landings/README.md +++ b/src/landings/README.md @@ -18,7 +18,6 @@ Landing pages serve as navigational hubs that provide a hierarchical view of the | Landing Page Type | Layout Value | Purpose | |-------------------|--------------|---------| | Product landing | `product-landing` | Product overview pages with featured links and release notes | -| Product guides | `product-guides` | Product guides listing organized by categories | | Category landing | `category-landing` | Category pages with hierarchical navigation | | Table of contents | `toc-landing` | Table of contents pages | | Journey landing | `journey-landing` | Guided learning journey pages with track navigation | diff --git a/src/landings/components/ArticleCard.tsx b/src/landings/components/ArticleCard.tsx deleted file mode 100644 index c8aeb39e82ee..000000000000 --- a/src/landings/components/ArticleCard.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { ArticleGuide } from '@/landings/components/ProductGuidesContext' -import { Link } from '@/frame/components/Link' - -type Props = { - card: ArticleGuide - typeLabel: string -} - -export const ArticleCard = ({ card, typeLabel }: Props) => { - return ( -
  1. - -

    {card.title}

    -
    - {typeLabel} -
    -

    {card.intro}

    - -
  2. - ) -} diff --git a/src/landings/components/ArticleCards.tsx b/src/landings/components/ArticleCards.tsx deleted file mode 100644 index c229f9458ce2..000000000000 --- a/src/landings/components/ArticleCards.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React, { useRef } from 'react' - -import { useProductGuidesContext } from '@/landings/components/ProductGuidesContext' -import { useTranslation } from '@/languages/components/useTranslation' -import { ArticleCard } from './ArticleCard' - -export const ArticleCards = () => { - const { t, tObject } = useTranslation('product_guides') - const guideTypes = tObject('guide_types') - const { includeGuides } = useProductGuidesContext() - const articleCardRef = useRef(null) - - const guides = includeGuides || [] - - return ( -
    -
    -
    - {guides.length === 0 - ? t('guides_found.none') - : guides.length === 1 - ? t('guides_found.one') - : t('guides_found.multiple').replace('{n}', `${guides.length}`)} -
    -
    - -
      - {guides.map((card, i) => { - return ( - - ) - })} -
    -
    - ) -} diff --git a/src/landings/components/GuidesHero.tsx b/src/landings/components/GuidesHero.tsx deleted file mode 100644 index 983375aeb91b..000000000000 --- a/src/landings/components/GuidesHero.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import { useProductGuidesContext } from '@/landings/components/ProductGuidesContext' -import { Lead } from '@/frame/components/ui/Lead' - -export function GuidesHero() { - const { title, intro } = useProductGuidesContext() - - return ( -
    -
    -
    -

    {title}

    - {intro && {intro}} -
    -
    -
    - ) -} diff --git a/src/landings/components/ProductGuides.tsx b/src/landings/components/ProductGuides.tsx deleted file mode 100644 index 21d895ba71b9..000000000000 --- a/src/landings/components/ProductGuides.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import { DefaultLayout } from '@/frame/components/DefaultLayout' -import { useProductGuidesContext } from '@/landings/components/ProductGuidesContext' -import { LandingSection } from '@/landings/components/LandingSection' -import { GuidesHero } from '@/landings/components/GuidesHero' -import { LearningTracks } from '@/learning-track/components/guides/LearningTracks' -import { ArticleCards } from '@/landings/components/ArticleCards' -import { useTranslation } from '@/languages/components/useTranslation' -import { useMainContext } from '@/frame/components/context/MainContext' -import { UtmPreserver } from '@/frame/components/UtmPreserver' - -export const ProductGuides = () => { - const { title, learningTracks, includeGuides } = useProductGuidesContext() - const { t } = useTranslation('product_guides') - - const { currentProductName } = useMainContext() - - const productName = currentProductName || title - const nameRegex = /{{\s*name\s*}}/ - - return ( - - - - - - -
    - {learningTracks && learningTracks.length > 0 && ( - - - - )} - - {includeGuides && ( - - - - )} -
    -
    - ) -} diff --git a/src/landings/components/ProductGuidesContext.tsx b/src/landings/components/ProductGuidesContext.tsx index 9a490a5fb1a7..324641329df0 100644 --- a/src/landings/components/ProductGuidesContext.tsx +++ b/src/landings/components/ProductGuidesContext.tsx @@ -1,6 +1,4 @@ import { createContext, useContext } from 'react' -import pick from 'lodash/pick' -import type { ExtendedRequest } from '@/types' export type LearningTrack = { trackName: string @@ -10,18 +8,10 @@ export type LearningTrack = { guides?: Array<{ href: string; contentType: string | null; title: string; intro: string }> } -export type ArticleGuide = { - href: string - title: string - intro: string - contentType: string -} - export type ProductGuidesContextT = { title: string intro: string learningTracks: Array - includeGuides?: Array } export const ProductGuidesContext = createContext(null) @@ -37,46 +27,3 @@ export const useProductGuidesContext = (): ProductGuidesContextT => { return context } - -export const getProductGuidesContextFromRequest = (req: ExtendedRequest): ProductGuidesContextT => { - if (!req.context || !req.context.page) { - throw new Error('Request context or page is missing') - } - - const page = req.context.page as typeof req.context.page & { - learningTracks?: Array> - includeGuides?: Array> - } - - const learningTracks: LearningTrack[] = (page.learningTracks || []).map( - (track: Record) => ({ - title: (track.title as string) || '', - description: (track.description as string) || '', - trackName: (track.trackName as string) || '', - trackProduct: (track.trackProduct as string) || '', - guides: ((track.guides as Array>) || []).map( - (guide: Record) => ({ - title: (guide.title as string) || '', - intro: (guide.intro as string) || '', - href: (guide.href as string) || '', - contentType: ((guide.page as any)?.contentType as string) || null, - }), - ), - }), - ) - - return { - ...pick(page, ['title', 'intro']), - title: page.title || '', - intro: page.intro || '', - learningTracks, - includeGuides: (page.includeGuides || []).map((guide: Record) => { - return { - href: (guide.href as string) || '', - title: (guide.title as string) || '', - intro: (guide.intro as string) || '', - contentType: (guide.contentType as string) || '', - } - }), - } -} diff --git a/src/landings/pages/product.tsx b/src/landings/pages/product.tsx index 3abba97c46b7..f5559f65463e 100644 --- a/src/landings/pages/product.tsx +++ b/src/landings/pages/product.tsx @@ -20,11 +20,6 @@ import { ProductLandingContextT, ProductLandingContext, } from '@/landings/components/ProductLandingContext' -import { - getProductGuidesContextFromRequest, - ProductGuidesContextT, - ProductGuidesContext, -} from '@/landings/components/ProductGuidesContext' import { getArticleContextFromRequest, @@ -34,7 +29,6 @@ import { import { ArticlePage } from '@/frame/components/article/ArticlePage' import { ProductLanding } from '@/landings/components/ProductLanding' -import { ProductGuides } from '@/landings/components/ProductGuides' import { TocLanding } from '@/landings/components/TocLanding' import { CategoryLanding } from '@/landings/components/CategoryLanding' import { @@ -65,7 +59,6 @@ function initiateArticleScripts() { type Props = { mainContext: MainContextT productLandingContext?: ProductLandingContextT - productGuidesContext?: ProductGuidesContextT tocLandingContext?: TocLandingContextT articleContext?: ArticleContextT categoryLandingContext?: CategoryLandingContextT @@ -76,7 +69,6 @@ type Props = { const GlobalPage = ({ mainContext, productLandingContext, - productGuidesContext, tocLandingContext, articleContext, categoryLandingContext, @@ -120,12 +112,6 @@ const GlobalPage = ({ ) - } else if (productGuidesContext) { - content = ( - - - - ) } else if (categoryLandingContext) { content = ( @@ -191,9 +177,6 @@ export const getServerSideProps: GetServerSideProps = async (context) => } else if (currentLayoutName === 'product-landing') { props.productLandingContext = await getProductLandingContextFromRequest(req) additionalUINamespaces.push('product_landing') - } else if (currentLayoutName === 'product-guides') { - props.productGuidesContext = getProductGuidesContextFromRequest(req) - additionalUINamespaces.push('product_guides', 'product_landing') } else if (relativePath?.endsWith('index.md')) { if (currentLayoutName === 'category-landing') { props.categoryLandingContext = getCategoryLandingContextFromRequest(req) diff --git a/src/links/lib/update-internal-links.ts b/src/links/lib/update-internal-links.ts index 54dd3377402a..79feedd728d7 100644 --- a/src/links/lib/update-internal-links.ts +++ b/src/links/lib/update-internal-links.ts @@ -110,7 +110,6 @@ async function updateFile( const HAS_LINKS: Record = { featuredLinks: ['gettingStarted', 'startHere', 'guideCards', 'popular'], introLinks: ANY, - includeGuides: IS_ARRAY, } if ( diff --git a/src/types/types.ts b/src/types/types.ts index 5f9ddb6afc46..420fb9d146d2 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -57,7 +57,6 @@ export type PageFrontmatter = { featuredLinks?: FeaturedLinks changelog?: ChangeLog contentType?: string - includeGuides?: string[] learningTracks?: string[] beta_product?: boolean interactive?: boolean From d194a6df670aeda195694b7f6b631044a170dba3 Mon Sep 17 00:00:00 2001 From: pararohan Date: Tue, 7 Apr 2026 09:03:19 -0700 Subject: [PATCH 11/12] =?UTF-8?q?Dynatrace=20is=20adding=20integration=20w?= =?UTF-8?q?ith=20virtual=20registry=20and=20we=20wanted=20t=E2=80=A6=20(#6?= =?UTF-8?q?0600)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../upload-linked-artifacts.md | 17 +++++++++++++++-- .../prioritize-alerts-in-production-code.md | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/upload-linked-artifacts.md b/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/upload-linked-artifacts.md index 418f87119fe0..b0c2c2e32d53 100644 --- a/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/upload-linked-artifacts.md +++ b/content/code-security/how-tos/secure-your-supply-chain/establish-provenance-and-integrity/upload-linked-artifacts.md @@ -14,7 +14,7 @@ category: The {% data variables.product.virtual_registry %} includes storage records and deployment records for artifacts that you build in your organization. Metadata for each artifact is provided by your organization using one of the following methods: * A workflow containing one of {% data variables.product.company_short %}'s actions for **artifact attestations** -* An integration with the **JFrog Artifactory** or **Microsoft Defender for Cloud** +* An integration with **Dynatrace**, **JFrog Artifactory**, or **{% data variables.product.prodname_microsoft_defender %}** * A custom script using the **artifact metadata REST API** The available methods depend on whether you are uploading a storage record or a deployment record. For more information about record types, see [AUTOTITLE](/code-security/concepts/supply-chain-security/linked-artifacts#which-metadata-is-included). @@ -47,7 +47,20 @@ For artifacts that do not need to be attested and are not stored on JFrog, you c ## Uploading a deployment record -If you store artifacts in **{% data variables.product.prodname_mdc_definition %}**, you can use an integration to automatically sync data to the {% data variables.product.virtual_registry %}. Otherwise, you must set up a custom integration with the **REST API**. +If you monitor deployed workloads with Dynatrace or {% data variables.product.prodname_mdc_definition %}, you can use an integration to automatically sync deployment data to the {% data variables.product.virtual_registry %}. Otherwise, you must set up a custom integration with the REST API. + +### Using the Dynatrace integration + +You can configure Dynatrace to send deployment records to {% data variables.product.github %} for container images running in your Dynatrace-monitored Kubernetes environments. Dynatrace maps deployed images to your repositories, then reports runtime context. + +In addition, deployment records from Dynatrace can include runtime risk context, such as: + +* Public internet exposure +* Sensitive data access + +You can use this context in organization-level alert filtering and in security campaigns to prioritize remediation for alerts that affect internet-exposed or sensitive-data workloads. + +For setup instructions, see [{% data variables.product.prodname_GHAS %} security integration - Get Started](https://docs.dynatrace.com/docs/secure/threat-observability/security-events-ingest/ingest-github-advanced-security#credentials--github-app-based-authentication) in the Dynatrace documentation. ### Using the Microsoft Defender for Cloud integration diff --git a/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md b/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md index b664b7cae8e1..e3fde868a281 100644 --- a/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md +++ b/content/code-security/tutorials/secure-your-organization/prioritize-alerts-in-production-code.md @@ -1,7 +1,7 @@ --- title: Prioritizing Dependabot and code scanning alerts using production context shortTitle: Prioritize alerts in production code -intro: Focus remediation on real risk by targeting {% data variables.product.prodname_dependabot %} and {% data variables.product.prodname_code_scanning %} alerts in artifacts deployed to production, using metadata from external registries like JFrog Artifactory, your own CI/CD workflows, or from {% data variables.product.prodname_microsoft_defender %}. +intro: Focus remediation on real risk by targeting {% data variables.product.prodname_dependabot %} and {% data variables.product.prodname_code_scanning %} alerts in artifacts deployed to production, using metadata from external systems and integrations like Dynatrace, JFrog Artifactory, {% data variables.product.prodname_microsoft_defender %}, or your own CI/CD workflows. versions: fpt: '*' ghec: '*' From 873ae90175fe15c2c006ce984422821c6615fedd Mon Sep 17 00:00:00 2001 From: Kevin Heis Date: Tue, 7 Apr 2026 09:51:47 -0700 Subject: [PATCH 12/12] Remove learning tracks feature (#60617) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> --- .github/workflows/test.yml | 1 - content/README.md | 9 +- .../using-yaml-frontmatter.md | 11 +- data/README.md | 6 +- data/learning-tracks/README.md | 51 ---- data/learning-tracks/admin.yml | 188 --------------- data/learning-tracks/code-security.yml | 222 ------------------ data/ui.yml | 5 - eslint.config.ts | 1 - package.json | 1 - .../bespoke-landing-transformer.ts | 5 +- .../discovery-landing-transformer.ts | 10 +- .../product-landing-transformer.ts | 7 +- .../tests/learning-track-liquid.ts | 43 ---- src/content-render/scripts/move-content.ts | 56 +---- src/data-directory/README.md | 20 +- src/data-directory/lib/data-schemas/index.ts | 1 - .../lib/data-schemas/learning-tracks.ts | 40 ---- src/data-directory/lib/get-data.ts | 9 - .../data/learning-tracks/code-security.yml | 14 -- .../data/learning-tracks/codespaces.yml | 6 - src/fixtures/fixtures/data/ui.yml | 5 - src/frame/README.md | 1 - src/frame/components/article/ArticlePage.tsx | 15 -- .../components/context/ArticleContext.tsx | 12 - .../context/CategoryLandingContext.tsx | 3 - .../components/context/TocLandingContext.tsx | 3 - src/frame/lib/frontmatter.ts | 3 - .../lib/get-link-data.ts | 27 ++- src/frame/lib/page.ts | 11 +- src/frame/middleware/index.ts | 2 - src/frame/tests/page.ts | 2 +- src/journeys/README.md | 2 +- src/journeys/lib/get-link-data.ts | 3 +- src/journeys/lib/journey-path-resolver.ts | 2 +- src/landings/README.md | 1 - .../components/ProductGuidesContext.tsx | 9 - src/landings/components/TocLanding.tsx | 8 - src/landings/context/LandingContext.tsx | 4 +- src/landings/middleware/featured-links.ts | 2 +- src/landings/pages/product.tsx | 6 - src/learning-track/README.md | 82 ------- .../components/article/LearningTrackCard.tsx | 58 ----- .../components/article/LearningTrackNav.tsx | 48 ---- .../components/guides/LearningTrack.tsx | 49 ---- .../components/guides/LearningTracks.tsx | 14 -- .../lib/process-learning-tracks.ts | 117 --------- src/learning-track/lib/types.ts | 112 --------- .../middleware/learning-track.ts | 201 ---------------- src/learning-track/tests/lint-data.ts | 73 ------ src/links/lib/update-internal-links.ts | 18 +- src/rest/pages/category.tsx | 10 +- src/types/types.ts | 35 --- src/versions/scripts/use-short-versions.ts | 2 +- 54 files changed, 57 insertions(+), 1589 deletions(-) delete mode 100644 data/learning-tracks/README.md delete mode 100644 data/learning-tracks/admin.yml delete mode 100644 data/learning-tracks/code-security.yml delete mode 100644 src/content-linter/tests/learning-track-liquid.ts delete mode 100644 src/data-directory/lib/data-schemas/learning-tracks.ts delete mode 100644 src/fixtures/fixtures/data/learning-tracks/code-security.yml delete mode 100644 src/fixtures/fixtures/data/learning-tracks/codespaces.yml rename src/{learning-track => frame}/lib/get-link-data.ts (87%) delete mode 100644 src/learning-track/README.md delete mode 100644 src/learning-track/components/article/LearningTrackCard.tsx delete mode 100644 src/learning-track/components/article/LearningTrackNav.tsx delete mode 100644 src/learning-track/components/guides/LearningTrack.tsx delete mode 100644 src/learning-track/components/guides/LearningTracks.tsx delete mode 100644 src/learning-track/lib/process-learning-tracks.ts delete mode 100644 src/learning-track/lib/types.ts delete mode 100644 src/learning-track/middleware/learning-track.ts delete mode 100644 src/learning-track/tests/lint-data.ts diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 645d00c4bae1..f337044a2876 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -58,7 +58,6 @@ jobs: - graphql - landings - languages - - learning-track # - links - observability # - open-source diff --git a/content/README.md b/content/README.md index 354af1038bd2..5d8a363af188 100644 --- a/content/README.md +++ b/content/README.md @@ -23,7 +23,7 @@ See the [contributing docs](https://docs.github.com/en/contributing) for general - [`changelog`](#changelog) - [`defaultPlatform`](#defaultplatform) - [`defaultTool`](#defaulttool) - - [`learningTracks`](#learningtracks) + - [`journeyTracks`](#journeytracks) - [`journeyArticlesHeading`](#journeyarticlesheading) - [`contentType`](#contenttype) @@ -229,12 +229,6 @@ defaultPlatform: linux defaultTool: cli ``` -### `learningTracks` -- Purpose: Render a list of learning tracks on a product's sub-landing page. -- type: `String`. This should reference learning tracks' names defined in [`data/learning-tracks/*.yml`](../data/learning-tracks/README.md). -- Optional - -**Note: the featured track is set by a specific property in the learning tracks YAML. See that [README](../data/learning-tracks/README.md) for details.* ### `journeyTracks` - Purpose: Define journeys for journey landing pages. @@ -434,3 +428,4 @@ Index pages are the Table of Contents files for the docs site. Every product, ca The homepage is the main Table of Contents file for the docs site. The homepage must have a complete list of `children`, like every [Index page](#index-page) but must also specify the `childGroups` frontmatter property that will be highlighted in the main content area. `childGroups` is an array of mappings containing a `name` for the group, an optional `icon` for the group, and an array of `children`. The `children` in the array must be present in the `children` frontmatter property. + diff --git a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md index 1135b52703a2..40b060957ad9 100644 --- a/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md +++ b/content/contributing/writing-for-github-docs/using-yaml-frontmatter.md @@ -39,7 +39,7 @@ For more information, see [`lib/frontmatter.ts`](https://github.com/github/docs/ * [`changelog`](#changelog) * [`defaultPlatform`](#defaultplatform) * [`defaultTool`](#defaulttool) -* [`learningTracks`](#learningtracks) + * [`journeyTracks`](#journeytracks) * [`type`](#type) * [`communityRedirect`](#communityredirect) @@ -225,14 +225,6 @@ defaultPlatform: linux defaultTool: cli ``` -### `learningTracks` - -* Purpose: Render a list of learning tracks on a product's sub-landing page. -* Type: `String`. This should reference learning tracks' names defined in [`data/learning-tracks/*.yml`](https://github.com/github/docs/tree/main/data/learning-tracks). -* Optional - -> [!NOTE] -> The featured track is set by a specific property in the learning tracks YAML. See that [README](https://github.com/github/docs/blob/main/data/learning-tracks/README.md) for details. ### `journeyTracks` @@ -320,3 +312,4 @@ Index pages are the table of contents files for the Docs site. Every product, ca The homepage is the main Table of Contents file for the docs site. The homepage must have a complete list of `children`, like every [Index page](#index-pages) but must also specify the `childGroups` frontmatter property that will be highlighted in the main content area. `childGroups` is an array of mappings containing a `name` for the group, an optional `icon` for the group, and an array of `children`. The `children` in the array must be present in the `children` frontmatter property. + diff --git a/data/README.md b/data/README.md index b794ebeefc7d..c782c7121c43 100644 --- a/data/README.md +++ b/data/README.md @@ -32,10 +32,6 @@ Webhook payload JSON files are used in the [`webhook events docs`](../content/de `ui.yml` contains localized strings used in layouts. -## Learning Tracks - -Learning tracks are a collection of articles that help you master a particular subject. See [learning-tracks/README.md](learning-tracks/README.md). - ## Versioning -Many YAML files in this directory's subdirectories, like [features](features), [glossaries](glossaries), [variables](variables), and [learning tracks](learning-tracks), as well as Markdown files within the [reusables](reusables) directory, can include YAML versioning or Liquid versioning within Markdown strings. See the README.md files in the subdirectories for details. +Many YAML files in this directory's subdirectories, like [features](features), [glossaries](glossaries), and [variables](variables), as well as Markdown files within the [reusables](reusables) directory, can include YAML versioning or Liquid versioning within Markdown strings. See the README.md files in the subdirectories for details. diff --git a/data/learning-tracks/README.md b/data/learning-tracks/README.md deleted file mode 100644 index 83b6b2bee1fb..000000000000 --- a/data/learning-tracks/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# Learning Tracks (aka Learning Paths) - -Learning tracks are a collection of articles that help you master a particular subject. Learning tracks are defined on a per-product basis. For example, see https://docs.github.com/en/actions/guides. - -## How it works - -Learning track data for a product is defined in two places: - -1. A simple array of learning track names is defined in the product guides index page frontmatter. - - For example, in `content/actions/guides/index.md`: - ``` - learningTracks: - - getting_started - - continuous_integration - - continuous_deployment - - deploy_to_the_cloud - - hosting_your_own_runners - - create_actions - ``` - -2. Additional data for each track is defined in a YAML file named for the **product** in the `data` directory. - - For example, in `data/learning-tracks/actions.yml`, each of the items from the content file's `learningTracks` array is represented with additional data such as `title`, `description`, and an array of `guides` links. - -## Versioning - -Versioning for learning tracks is processed at page render time. The code lives in [`lib/learning-tracks.ts`](lib/learning-tracks.ts), which is called by `page.render()`. The processed learning tracks are then rendered by `components/guides`. - -Liquid conditionals do **not** have to be used for versioning in the YAML file for guides. Only the learning track guides that apply to the current version will be rendered automatically. If there aren't any tracks with guides that belong to the current version, the learning tracks section will not render at all. - -Explicit versioning within a product's learning tracks YML data is supported as well. The format and allowed values are the same as the [frontmatter versions property](/content#versions). - -For example: - -``` -learning_track_name: - title: 'Learning track title' - description: 'Learning track description' - versions: - ghes: '>=3.0' - guides: - - /path/to/guide1 - - /path/to/guide2 -``` - -If the `versions` property is not included, it's assumed the track is available in all versions. - -## Schema enforcement - -The schema for validating the learning track YAML lives in [`src/content-linter/lib/learning-tracks-schema.ts`](src/content-linter/lib/learning-tracks-schema.ts) and is exercised by [`tests/content/lint-files.ts`](tests/content/lint-files.ts). diff --git a/data/learning-tracks/admin.yml b/data/learning-tracks/admin.yml deleted file mode 100644 index ae1878552846..000000000000 --- a/data/learning-tracks/admin.yml +++ /dev/null @@ -1,188 +0,0 @@ -deploy_an_instance: - title: Deploy an instance - description: >- - Install {% data variables.product.prodname_ghe_server %} on your platform of - choice and configure SAML authentication. - versions: - ghes: '*' - guides: - - /admin/overview/system-overview - - /admin/installing-your-enterprise-server - - >- - /admin/administering-your-instance/administering-your-instance-from-the-web-ui - - >- - /admin/configuring-settings/configuring-network-settings/configuring-the-hostname-for-your-instance - - /admin/managing-iam/using-saml-for-enterprise-iam -upgrade_your_instance: - title: Upgrade your instance - description: >- - Test upgrades in staging, notify users of maintenance, and upgrade your - instance for the latest features and security updates. - versions: - ghes: '*' - guides: - - >- - /admin/upgrading-your-instance/preparing-to-upgrade/overview-of-the-upgrade-process - - /admin/upgrading-your-instance/preparing-to-upgrade/upgrade-requirements - - >- - /admin/upgrading-your-instance/preparing-to-upgrade/enabling-automatic-update-checks - - >- - /admin/installing-your-enterprise-server/setting-up-a-github-enterprise-server-instance/setting-up-a-staging-instance - - >- - /admin/managing-accounts-and-repositories/communicating-information-to-users-in-your-enterprise/customizing-user-messages-for-your-enterprise - - >- - /admin/administering-your-instance/configuring-maintenance-mode/enabling-and-scheduling-maintenance-mode - - /admin/upgrading-your-instance/preparing-to-upgrade/taking-a-snapshot - - /admin/upgrading-your-instance/performing-an-upgrade -adopting_github_actions_for_your_enterprise_ghec: - title: Adopt GitHub Actions for your enterprise - description: >- - Learn how to plan and implement a rollout of {% data - variables.product.prodname_actions %} in your enterprise. - versions: - ghec: '*' - guides: - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises - - /actions/get-started/understand-github-actions - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud - - >- - /actions/reference/security/secure-use - - >- - /billing/concepts/product-billing/github-actions -adopting_github_actions_for_your_enterprise_ghes: - title: Adopt GitHub Actions for your enterprise - description: >- - Learn how to plan and implement a rollout of {% data - variables.product.prodname_actions %} in your enterprise. - versions: - ghes: '*' - guides: - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises - - /actions/get-started/understand-github-actions - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/migrating-your-enterprise-to-github-actions - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-cloud - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-self-hosted-runners-for-your-enterprise - - >- - /actions/reference/security/secure-use - - >- - /billing/concepts/product-billing/github-actions -increase_fault_tolerance: - title: Increase the fault tolerance of your instance - description: >- - Back up your developers' code and configure high availability (HA) to ensure - the reliability of {% data variables.product.prodname_ghe_server %} in your - environment. - versions: - ghes: '*' - guides: - - >- - /admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh - - >- - /admin/backing-up-and-restoring-your-instance/configuring-backups-on-your-instance - - >- - /admin/monitoring-and-managing-your-instance/configuring-high-availability/about-high-availability-configuration - - >- - /admin/monitoring-and-managing-your-instance/configuring-high-availability/creating-a-high-availability-replica - - >- - /admin/configuring-settings/configuring-network-settings/using-github-enterprise-server-with-a-load-balancer -improve_security_of_your_instance: - title: Improve the security of your instance - description: >- - Review network configuration and security features, and harden the instance - running {% data variables.product.prodname_ghe_server %} to protect your - enterprise's data. - versions: - ghes: '*' - guides: - - >- - /admin/configuring-settings/hardening-security-for-your-enterprise/enabling-private-mode - - >- - /admin/configuring-settings/hardening-security-for-your-enterprise/configuring-tls - - >- - /admin/configuring-settings/hardening-security-for-your-enterprise/troubleshooting-tls-errors - - >- - /admin/configuring-settings/hardening-security-for-your-enterprise/enabling-subdomain-isolation - - >- - /admin/administering-your-instance/administering-your-instance-from-the-command-line/accessing-the-administrative-shell-ssh - - /admin/configuring-settings/configuring-network-settings/network-ports - - >- - /admin/configuring-settings/configuring-network-settings/configuring-built-in-firewall-rules - - >- - /admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/best-practices-for-user-security - - >- - /admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/promoting-or-demoting-a-site-administrator -configure_github_actions: - title: Configure {% data variables.product.prodname_actions %} - description: >- - Allow your developers to create, automate, customize, and execute powerful - software development workflows for {% data - variables.location.product_location %} with {% data - variables.product.prodname_actions %}. - versions: - ghes: '*' - guides: - - >- - /admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server - - >- - /admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-github-actions-in-your-enterprise - - >- - /admin/managing-github-actions-for-your-enterprise/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect - - >- - /admin/managing-github-actions-for-your-enterprise/advanced-configuration-and-troubleshooting/high-availability-for-github-actions - - >- - /admin/managing-github-actions-for-your-enterprise/advanced-configuration-and-troubleshooting/backing-up-and-restoring-github-enterprise-server-with-github-actions-enabled - - >- - /admin/managing-github-actions-for-your-enterprise/advanced-configuration-and-troubleshooting/using-a-staging-environment -configure_github_advanced_security: - title: Configure {% data variables.product.prodname_GHAS %} products - description: >- - Improve the quality and security of your developers' code with {% data - variables.product.prodname_GHAS %} products. - versions: - ghes: '*' - guides: - - >- - /billing/concepts/product-billing/github-advanced-security - - >- - /code-security/how-tos/secure-at-scale/configure-enterprise-security/establish-complete-coverage/enabling-github-advanced-security-for-your-enterprise - - >- - /code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/configuring-code-scanning-for-your-appliance - - >- - /code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/configuring-dependency-review-for-your-appliance - - >- - /code-security/how-tos/secure-at-scale/configure-enterprise-security/configure-specific-tools/configuring-secret-scanning-for-your-appliance - - >- - /admin/enforcing-policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-code-security-and-analysis-for-your-enterprise -get_started_with_your_enterprise_account: - title: Get started with your enterprise account - description: >- - Get started with your enterprise account to centrally manage multiple - organizations on {% data variables.product.github %}. - versions: - ghes: '*' - ghec: '*' - guides: - - /admin/concepts/enterprise-fundamentals/enterprise-accounts - - /billing/concepts/enterprise-billing/billing-for-enterprises - - >- - /admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise - - >- - /admin/managing-accounts-and-repositories/managing-organizations-in-your-enterprise/adding-organizations-to-your-enterprise - - >- - /admin/managing-iam/using-saml-for-enterprise-iam/configuring-saml-single-sign-on-for-your-enterprise - - >- - /admin/concepts/security-and-compliance/enterprise-policies diff --git a/data/learning-tracks/code-security.yml b/data/learning-tracks/code-security.yml deleted file mode 100644 index dfc7d982896b..000000000000 --- a/data/learning-tracks/code-security.yml +++ /dev/null @@ -1,222 +0,0 @@ -security_advisories: - title: Fix and disclose a security vulnerability - description: >- - Using repository security advisories to privately fix a reported - vulnerability and get a CVE. - guides: - - >- - /code-security/concepts/vulnerability-reporting-and-management/about-coordinated-disclosure-of-security-vulnerabilities - - >- - /code-security/concepts/vulnerability-reporting-and-management/about-the-github-advisory-database - - >- - /code-security/concepts/vulnerability-reporting-and-management/about-global-security-advisories - - >- - /code-security/concepts/vulnerability-reporting-and-management/about-repository-security-advisories - - >- - /code-security/tutorials/fix-reported-vulnerabilities/write-security-advisories - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/privately-reporting-a-security-vulnerability - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/managing-privately-reported-security-vulnerabilities - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/configure-vulnerability-reporting/configuring-private-vulnerability-reporting-for-a-repository - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/creating-a-repository-security-advisory - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/adding-a-collaborator-to-a-repository-security-advisory - - >- - /code-security/tutorials/fix-reported-vulnerabilities/collaborate-in-a-fork - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/publishing-a-repository-security-advisory - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/editing-a-repository-security-advisory - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/deleting-a-repository-security-advisory - - >- - /code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/removing-a-collaborator-from-a-repository-security-advisory -dependabot_alerts: - title: Get notifications for insecure dependencies - description: >- - Set up Dependabot to alert you to new vulnerabilities or malware in your - dependencies. - guides: - - /code-security/concepts/supply-chain-security/about-dependabot-alerts - - >- - /repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository - - >- - /code-security/how-tos/manage-security-alerts/manage-dependabot-alerts/viewing-and-updating-dependabot-alerts - - >- - /code-security/concepts/supply-chain-security/about-dependabot-auto-triage-rules - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-notifications-for-dependabot-alerts - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/managing-pull-requests-for-dependency-updates - - >- - /code-security/reference/supply-chain-security/troubleshoot-dependabot/vulnerable-dependency-detection - - >- - /code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-errors -dependabot_security_updates: - title: Get pull requests to update your vulnerable dependencies - description: >- - Set up Dependabot to create pull requests when new vulnerabilities are - reported. - guides: - - >- - /code-security/concepts/supply-chain-security/about-dependabot-security-updates - - >- - /code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/configuring-dependabot-security-updates - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-notifications-for-dependabot-alerts - - >- - /repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/managing-pull-requests-for-dependency-updates - - >- - /code-security/reference/supply-chain-security/troubleshoot-dependabot/vulnerable-dependency-detection -dependency_version_updates: - title: Keep your dependencies up-to-date - description: >- - Use Dependabot to check for new releases and create pull requests to update - your dependencies. - guides: - - >- - /code-security/concepts/supply-chain-security/about-dependabot-version-updates - - >- - /code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/configuring-dependabot-version-updates - - >- - /code-security/tutorials/secure-your-dependencies/customizing-dependabot-prs - - >- - /code-security/reference/supply-chain-security/dependabot-options-reference - - >- - /code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/keeping-your-actions-up-to-date-with-dependabot - - >- - /code-security/tutorials/secure-your-dependencies/automating-dependabot-with-github-actions - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/listing-dependencies-configured-for-version-updates - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/guidance-for-the-configuration-of-private-registries-for-dependabot - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/removing-dependabot-access-to-public-registries - - >- - /code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/managing-pull-requests-for-dependency-updates - - >- - /code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-errors -secret_scanning: - title: Scan for secrets - description: >- - Set up secret scanning to guard against accidental check-ins of tokens, - passwords, and other secrets to your repository. - guides: - - /code-security/concepts/secret-security/about-secret-scanning - - /code-security/how-tos/secure-your-secrets/detect-secret-leaks/enabling-secret-scanning-for-your-repository - - /code-security/how-tos/secure-your-secrets/prevent-future-leaks/enabling-push-protection-for-your-repository - - >- - {% ifversion secret-scanning-validity-check-partner-patterns %} - /code-security/how-tos/secure-your-secrets/customize-leak-detection/enabling-validity-checks-for-your-repository{% endif %} - - >- - {% ifversion not fpt - %}/code-security/how-tos/secure-your-secrets/customize-leak-detection/defining-custom-patterns-for-secret-scanning{% - endif %} - - /code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts - - /code-security/reference/secret-security/supported-secret-scanning-patterns - - >- - {% ifversion secret-scanning-push-protection - %}/code-security/concepts/secret-security/about-push-protection{% - endif %} - - >- - {% ifversion secret-scanning-push-protection-for-users - %}/code-security/how-tos/secure-your-secrets/prevent-future-leaks/manage-user-push-protection{% - endif %} - - >- - {% ifversion secret-scanning-push-protection - %}/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/working-with-push-protection-from-the-command-line{% - endif %} - - >- - {% ifversion secret-scanning-push-protection - %}/code-security/how-tos/secure-your-secrets/work-with-leak-prevention/working-with-push-protection-in-the-github-ui{% - endif %} - - >- - /code-security/reference/secret-security/secret-scanning-detection-scope -security_alerts: - title: Explore and manage security alerts - description: Learn where to find and resolve security alerts. - guides: - - >- - {% ifversion ghec or ghes - %}/code-security/concepts/security-at-scale/about-security-overview {% endif %} - - >- - {% ifversion ghec or ghes - %}/code-security/how-tos/view-and-interpret-data/analyze-organization-data/assessing-adoption-code-security{% - endif %} - - >- - {% ifversion ghec or ghes - %}/code-security/how-tos/view-and-interpret-data/analyze-organization-data/assessing-code-security-risk{% endif - %} - - >- - {% ifversion ghec or ghes - %}/code-security/how-tos/manage-security-alerts/manage-secret-scanning-alerts {% - endif %} - - >- - {% ifversion ghec or ghes - %}/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/assessing-code-scanning-alerts-for-your-repository{% - endif %} - - >- - {% ifversion ghec or ghes - %}/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/resolving-code-scanning-alerts{% - endif %} - - >- - {% ifversion ghec or ghes - %}/code-security/how-tos/manage-security-alerts/manage-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests{% - endif %} - - >- - {% ifversion ghec or ghes - %}/code-security/how-tos/manage-security-alerts/manage-dependabot-alerts/viewing-and-updating-dependabot-alerts{% - endif %} - - >- - {% ifversion ghec or ghes - %}/code-security/concepts/security-at-scale/auditing-security-alerts {% endif %} -code_security_actions: - title: Run code scanning with GitHub Actions - description: >- - Check your default branch and every pull request to keep vulnerabilities and - errors out of your repository. - guides: - - >- - /code-security/concepts/code-scanning/about-code-scanning - - >- - /code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configuring-default-setup-for-code-scanning - - >- - /code-security/reference/code-scanning/workflow-configuration-options - - >- - /code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/codeql-code-scanning-for-compiled-languages - - >- - /code-security/tutorials/customize-code-scanning/running-codeql-code-scanning-in-a-container - - /code-security/reference/code-scanning/troubleshoot-analysis-errors - - >- - /code-security/how-tos/find-and-fix-code-vulnerabilities/manage-your-configuration/use-the-tools-status-page-for-code-scanning -code_security_integration: - title: Integrate with code scanning - description: Upload code analysis results from third-party systems to GitHub using SARIF. - guides: - - >- - /code-security/concepts/code-scanning/about-integration-with-code-scanning - - >- - /code-security/how-tos/find-and-fix-code-vulnerabilities/integrate-with-existing-tools/uploading-a-sarif-file-to-github - - >- - /code-security/reference/code-scanning/sarif-files/sarif-support-for-code-scanning - - /rest/code-scanning -end_to_end_supply_chain: - title: End-to-end supply chain - description: >- - How to think about securing your user accounts, your code, and your build - process. - guides: - - >- - /code-security/tutorials/implement-supply-chain-best-practices/end-to-end-supply-chain-overview - - >- - /code-security/tutorials/implement-supply-chain-best-practices/securing-accounts - - /code-security/tutorials/implement-supply-chain-best-practices/securing-code - - >- - /code-security/tutorials/implement-supply-chain-best-practices/securing-builds diff --git a/data/ui.yml b/data/ui.yml index ea09f35aaaf2..a3c072b1cc46 100644 --- a/data/ui.yml +++ b/data/ui.yml @@ -306,11 +306,6 @@ product_landing: view: View all all_docs: 'All {{ title }} docs' all_content: 'View all {{ title }} content' -learning_track_nav: - prev_guide: Previous - next_guide: Next - more_guides: More guides → - current_progress: '{i} of {n} in learning path' journey_track_nav: prev_article: Previous next_article: Next diff --git a/eslint.config.ts b/eslint.config.ts index a5135704d5c3..8d95bc75dcab 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -215,7 +215,6 @@ export default [ 'src/content-linter/scripts/pretty-print-results.ts', 'src/content-linter/style/base.ts', 'src/content-linter/tests/integration/lint-cli.ts', - 'src/content-linter/tests/learning-track-liquid.ts', 'src/content-linter/tests/lint-files.ts', 'src/content-linter/tests/lint-frontmatter-links.ts', 'src/content-linter/tests/unit/table-column-integrity-simple.ts', diff --git a/package.json b/package.json index b24a4c6afd17..b4de47700214 100644 --- a/package.json +++ b/package.json @@ -138,7 +138,6 @@ "data/variables", "data/glossaries", "data/product-examples", - "data/learning-tracks", "rest-api-description", "semmle-code" ] diff --git a/src/article-api/transformers/bespoke-landing-transformer.ts b/src/article-api/transformers/bespoke-landing-transformer.ts index 3cc6ae2edfb9..652b69910ff1 100644 --- a/src/article-api/transformers/bespoke-landing-transformer.ts +++ b/src/article-api/transformers/bespoke-landing-transformer.ts @@ -50,8 +50,7 @@ export class BespokeLandingTransformer implements PageTransformer { // Process carousels (each carousel becomes a section) const carousels = bespokePage.carousels ?? bespokePage.rawCarousels if (carousels && typeof carousels === 'object') { - const { default: getLearningTrackLinkData } = - await import('@/learning-track/lib/get-link-data') + const { default: getPageLinkData } = await import('@/frame/lib/get-link-data') for (const [carouselKey, articles] of Object.entries(carousels)) { if (!Array.isArray(articles) || articles.length === 0) continue @@ -66,7 +65,7 @@ export class BespokeLandingTransformer implements PageTransformer { })) } else { // Raw paths that need resolution - const linkData = await getLearningTrackLinkData(articles as string[], context, { + const linkData = await getPageLinkData(articles as string[], context, { title: true, intro: true, }) diff --git a/src/article-api/transformers/discovery-landing-transformer.ts b/src/article-api/transformers/discovery-landing-transformer.ts index 0d38a628269d..3fdf462a95f4 100644 --- a/src/article-api/transformers/discovery-landing-transformer.ts +++ b/src/article-api/transformers/discovery-landing-transformer.ts @@ -50,8 +50,7 @@ export class DiscoveryLandingTransformer implements PageTransformer { // Process carousels (each carousel becomes a section) const carousels = discoveryPage.carousels ?? discoveryPage.rawCarousels if (carousels && typeof carousels === 'object') { - const { default: getLearningTrackLinkData } = - await import('@/learning-track/lib/get-link-data') + const { default: getPageLinkData } = await import('@/frame/lib/get-link-data') for (const [carouselKey, articles] of Object.entries(carousels)) { if (!Array.isArray(articles) || articles.length === 0) continue @@ -66,7 +65,7 @@ export class DiscoveryLandingTransformer implements PageTransformer { })) } else { // Raw paths that need resolution - const linkData = await getLearningTrackLinkData(articles as string[], context, { + const linkData = await getPageLinkData(articles as string[], context, { title: true, intro: true, }) @@ -94,12 +93,11 @@ export class DiscoveryLandingTransformer implements PageTransformer { // Intro links (getting started) const rawIntroLinks = discoveryPage.introLinks ?? discoveryPage.rawIntroLinks if (rawIntroLinks) { - const { default: getLearningTrackLinkData } = - await import('@/learning-track/lib/get-link-data') + const { default: getPageLinkData } = await import('@/frame/lib/get-link-data') const links = await Promise.all( Object.values(rawIntroLinks).map(async (href): Promise => { if (typeof href === 'string') { - const linkData = await getLearningTrackLinkData(href, context) + const linkData = await getPageLinkData(href, context) if (Array.isArray(linkData) && linkData.length > 0) { const item = linkData[0] return { href: item.href || '', title: item.title || '', intro: item.intro || '' } diff --git a/src/article-api/transformers/product-landing-transformer.ts b/src/article-api/transformers/product-landing-transformer.ts index 371114670719..510491362fa2 100644 --- a/src/article-api/transformers/product-landing-transformer.ts +++ b/src/article-api/transformers/product-landing-transformer.ts @@ -56,8 +56,7 @@ export class ProductLandingTransformer implements PageTransformer { // Process carousels (each carousel becomes a section) const carousels = productPage.carousels ?? productPage.rawCarousels if (carousels && typeof carousels === 'object') { - const { default: getLearningTrackLinkData } = - await import('@/learning-track/lib/get-link-data') + const { default: getPageLinkData } = await import('@/frame/lib/get-link-data') for (const [carouselKey, articles] of Object.entries(carousels)) { if (!Array.isArray(articles) || articles.length === 0) continue @@ -72,7 +71,7 @@ export class ProductLandingTransformer implements PageTransformer { })) } else { // Raw paths that need resolution - const linkData = await getLearningTrackLinkData(articles as string[], context, { + const linkData = await getPageLinkData(articles as string[], context, { title: true, intro: true, }) @@ -100,7 +99,7 @@ export class ProductLandingTransformer implements PageTransformer { // Featured links (startHere, popular, etc.) const rawFeaturedLinks = productPage.featuredLinks if (rawFeaturedLinks) { - const { default: getPageLinkData } = await import('@/learning-track/lib/get-link-data') + const { default: getPageLinkData } = await import('@/frame/lib/get-link-data') const featuredKeys = ['startHere', 'popular'] const featuredGroups: LinkGroup[] = [] diff --git a/src/content-linter/tests/learning-track-liquid.ts b/src/content-linter/tests/learning-track-liquid.ts deleted file mode 100644 index cbb7df025ae9..000000000000 --- a/src/content-linter/tests/learning-track-liquid.ts +++ /dev/null @@ -1,43 +0,0 @@ -import yaml from 'js-yaml' -import { readFile } from 'fs/promises' - -import walk from 'walk-sync' -import { beforeAll, describe, expect, test } from 'vitest' - -import { liquid } from '@/content-render/index' - -const learningTrackRootPath = 'data/learning-tracks' -const yamlWalkOptions = { - globs: ['**/*.yml'], - directories: false, - includeBasePath: true, -} -const yamlFileList = walk(learningTrackRootPath, yamlWalkOptions).sort() - -describe('lint learning tracks', () => { - if (yamlFileList.length < 1) return - - describe.each(yamlFileList)('%s', (yamlAbsPath) => { - // Using any type because YAML content structure is dynamic and varies per file - let yamlContent: any - - beforeAll(async () => { - const fileContents = await readFile(yamlAbsPath, 'utf8') - yamlContent = await yaml.load(fileContents) - }) - - test('contains valid liquid', () => { - // Using any[] for toLint since it contains mixed string content from various YAML properties - const toLint: any[] = [] - // Using any for destructured params as YAML structure varies across different learning track files - for (const { title, description } of Object.values(yamlContent) as any[]) { - toLint.push(title) - toLint.push(description) - } - - for (const element of toLint) { - expect(() => liquid.parse(element), `${element} contains invalid liquid`).not.toThrow() - } - }) - }) -}) diff --git a/src/content-render/scripts/move-content.ts b/src/content-render/scripts/move-content.ts index bdef7859e688..1624d6c7ae2c 100755 --- a/src/content-render/scripts/move-content.ts +++ b/src/content-render/scripts/move-content.ts @@ -28,7 +28,6 @@ import { execFileSync } from 'child_process' import { program } from 'commander' import chalk from 'chalk' import walk from 'walk-sync' -import yaml from 'js-yaml' import escapeStringRegexp from 'escape-string-regexp' import fm from '@/frame/lib/frontmatter' @@ -51,7 +50,6 @@ interface PositionInfo { // This is so you can optionally run it again the test fixtures root. const ROOT = process.env.ROOT || '.' const CONTENT_ROOT = path.resolve(path.join(ROOT, 'content')) -const DATA_ROOT = path.resolve(path.join(ROOT, 'data')) const REDIRECT_FROM_KEY = 'redirect_from' const CHILDREN_KEY = 'children' @@ -501,7 +499,7 @@ function editFiles(files: FileTuple[], updateParent: boolean, opts: MoveOptions) // frontmatter key. // See comment in the first loop above for why we're looping over the files // two times. - for (const [oldPath, newPath, oldHref, newHref] of files) { + for (const [oldPath, newPath, oldHref] of files) { const fileContent = fs.readFileSync(newPath, 'utf-8') const { content, data } = readFrontmatter(fileContent) if (!data) continue @@ -521,14 +519,6 @@ function editFiles(files: FileTuple[], updateParent: boolean, opts: MoveOptions) if (updateParent) { addToChildren(newPath, removeFromChildren(oldPath, opts), opts) } - - // Perhaps this was mentioned in a 'guide' in a learning track - for (const filePath of findInLearningTracks(oldHref)) { - changeLearningTracks(filePath, oldHref, newHref) - if (verbose) { - console.log(`Updated learning tracks in ${filePath}`) - } - } } // Add contentType frontmatter to moved files @@ -563,7 +553,7 @@ function undoFiles(files: FileTuple[], updateParent: boolean, opts: MoveOptions) const { verbose, git: useGit } = opts // First undo any edits to the file - for (const [oldPath, newPath, oldHref, newHref] of files) { + for (const [oldPath, newPath, oldHref] of files) { const fileContent = fs.readFileSync(newPath, 'utf-8') const { content, data } = readFrontmatter(fileContent) if (!data) continue @@ -583,14 +573,6 @@ function undoFiles(files: FileTuple[], updateParent: boolean, opts: MoveOptions) if (updateParent) { addToChildren(newPath, removeFromChildren(oldPath, opts), opts) } - - // Perhaps this was mentioned in a 'guide' in a learning track - for (const filePath of findInLearningTracks(newHref)) { - changeLearningTracks(filePath, newHref, oldHref) - if (verbose) { - console.log(`Updated learning tracks in ${filePath}`) - } - } } if (useGit) { const cmd = ['commit', '-a', '-m', `unset ${REDIRECT_FROM_KEY} on ${files.length} files`] @@ -601,40 +583,6 @@ function undoFiles(files: FileTuple[], updateParent: boolean, opts: MoveOptions) } } -function findInLearningTracks(href: string) { - const allFiles: string[] = walk(path.join(DATA_ROOT, 'learning-tracks'), { - globs: ['*.yml'], - includeBasePath: true, - directories: false, - }) - const found: string[] = [] - for (const filePath of allFiles) { - const tracks = yaml.load(fs.readFileSync(filePath, 'utf-8')) as Record< - string, - { guides?: string[] } - > - - if ( - Object.values(tracks).find((track) => { - const guides = track.guides || [] - return guides.includes(href) - }) - ) { - found.push(filePath) - } - } - return found -} - -function changeLearningTracks(filePath: string, oldHref: string, newHref: string) { - // Can't deserialize and serialize the Yaml because it would lose - // formatting and comments. So regex replace it. - const regex = new RegExp(`- ${oldHref}$`, 'gm') - const oldContent = fs.readFileSync(filePath, 'utf-8') - const newContent = oldContent.replace(regex, `- ${newHref}`) - fs.writeFileSync(filePath, newContent, 'utf-8') -} - function changeHomepageLinks(oldHref: string, newHref: string, verbose: boolean) { // Can't deserialize and serialize the Yaml because it would lose // formatting and comments. So regex replace it. diff --git a/src/data-directory/README.md b/src/data-directory/README.md index 77fc9dd37848..2ce8e3cf6792 100644 --- a/src/data-directory/README.md +++ b/src/data-directory/README.md @@ -3,18 +3,18 @@ Purpose-built utilities, schemas, and workflows that power our Liquid `{% data %}` and `{% indented_data_reference %}` tags, reusable content, UI strings, and feature metadata. This subject focuses on how we read, validate, and serve files in `data/` across languages. ## Purpose & scope -- Provide a consistent API (`getDataByLanguage`, `getDeepDataByLanguage`) to load `data/` files for Liquid rendering and server contexts. -- Enforce schemas for critical data (features, variables, learning tracks, release notes, tables, glossaries, code languages, CTAs). -- Ship CLI and CI helpers that keep `data/` clean (orphaned feature detection, deleted-feature PR guardrails). -- Exclude: content authoring guidance (see `content/`), page routing (see `src/app`/`src/frame`), and general linter rules (see `src/content-linter`). +* Provide a consistent API (`getDataByLanguage`, `getDeepDataByLanguage`) to load `data/` files for Liquid rendering and server contexts. +* Enforce schemas for critical data (features, variables, release notes, tables, glossaries, code languages, CTAs). +* Ship CLI and CI helpers that keep `data/` clean (orphaned feature detection, deleted-feature PR guardrails). +* Exclude: content authoring guidance (see `content/`), page routing (see `src/app`/`src/frame`), and general linter rules (see `src/content-linter`). ## Architecture & key assets -- `lib/get-data.ts`: translation-aware loader with memoized reads, forced-English exceptions, and UI data merging; used by Liquid tags and server contexts. -- `lib/data-directory.ts` + `lib/filename-to-key.ts`: generic walker that turns files into dotted-key objects with optional preprocessing. -- `lib/data-schemas/`: AJV schema registry that auto-discovers `data/tables/*.yml` schemas and registers other critical shapes (features, variables, learning tracks, release notes, glossaries, code languages, CTAs). -- Middleware: `middleware/data-tables.ts` caches table data into `req.context.tables` (English). -- Scripts: `scripts/find-orphaned-features/*` (detect/delete unused `data/features/*.yml`) and `scripts/deleted-features-pr-comment.ts` (warn on feature deletions in PRs). -- Tests: `tests/` cover schema validation, data loading, key normalization, and orphan detection fixtures. +* `lib/get-data.ts`: translation-aware loader with memoized reads, forced-English exceptions, and UI data merging; used by Liquid tags and server contexts. +* `lib/data-directory.ts` + `lib/filename-to-key.ts`: generic walker that turns files into dotted-key objects with optional preprocessing. +* `lib/data-schemas/`: AJV schema registry that auto-discovers `data/tables/*.yml` schemas and registers other critical shapes (features, variables, release notes, glossaries, code languages, CTAs). +* Middleware: `middleware/data-tables.ts` caches table data into `req.context.tables` (English). +* Scripts: `scripts/find-orphaned-features/*` (detect/delete unused `data/features/*.yml`) and `scripts/deleted-features-pr-comment.ts` (warn on feature deletions in PRs). +* Tests: `tests/` cover schema validation, data loading, key normalization, and orphan detection fixtures. ## Data loading contracts - `lib/get-data.ts` diff --git a/src/data-directory/lib/data-schemas/index.ts b/src/data-directory/lib/data-schemas/index.ts index 68753e47265d..262102a123f8 100644 --- a/src/data-directory/lib/data-schemas/index.ts +++ b/src/data-directory/lib/data-schemas/index.ts @@ -50,7 +50,6 @@ function loadTableSchemas(): DataSchemas { const manualSchemas: DataSchemas = { 'data/features': resolveSchemaPath('features.ts'), 'data/variables': resolveSchemaPath('variables.ts'), - 'data/learning-tracks': resolveSchemaPath('learning-tracks.ts'), 'data/release-notes': resolveSchemaPath('release-notes.ts'), 'data/code-languages.yml': resolveSchemaPath('code-languages.ts'), 'data/glossaries/candidates.yml': resolveSchemaPath('glossaries-candidates.ts'), diff --git a/src/data-directory/lib/data-schemas/learning-tracks.ts b/src/data-directory/lib/data-schemas/learning-tracks.ts deleted file mode 100644 index dcab4841cc74..000000000000 --- a/src/data-directory/lib/data-schemas/learning-tracks.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { schema } from '@/frame/lib/frontmatter' - -// Some learning tracks have `versions` blocks that match `versions` frontmatter, -// so we can import that part of the FM schema. -const versionsProps = Object.assign({}, schema.properties.versions) - -// `versions` are not required in learning tracks the way they are in FM. -delete versionsProps.required - -export default { - type: 'object', - additionalProperties: false, - patternProperties: { - '^[a-zA-Z-_]+$': { - type: 'object', - required: ['title', 'description', 'guides'], - additionalProperties: false, - properties: { - title: { - type: 'string', - lintable: true, - }, - description: { - type: 'string', - lintable: true, - }, - guides: { - type: 'array', - items: { - type: 'string', - // matches Liquid tags and URLs with trailing backslash - // if this regex becomes problematic, we can remove it - pattern: '^(\\{%.*%\\})?\\s*(\\/((\\w|-|\\.))+)+\\s*(\\{%.*%\\})?$', - }, - }, - versions: versionsProps, - }, - }, - }, -} diff --git a/src/data-directory/lib/get-data.ts b/src/data-directory/lib/get-data.ts index fffa242f63d2..ba5131e2dc02 100644 --- a/src/data-directory/lib/get-data.ts +++ b/src/data-directory/lib/get-data.ts @@ -247,15 +247,6 @@ function getDataByDir( return getYamlContent(dir, fullPath.join(path.sep), englishRoot) } - if (first === 'learning-tracks') { - const key = split.pop()! - const basename = split.pop()! - fullPath.push(...split) - fullPath.push(`${basename}.yml`) - const allData = getYamlContent(dir, fullPath.join(path.sep), englishRoot) - return key ? allData[key] : undefined - } - throw new Error(`Can't find the key '${dottedPath}' in the scope.`) } diff --git a/src/fixtures/fixtures/data/learning-tracks/code-security.yml b/src/fixtures/fixtures/data/learning-tracks/code-security.yml deleted file mode 100644 index 40d6db9ae6d7..000000000000 --- a/src/fixtures/fixtures/data/learning-tracks/code-security.yml +++ /dev/null @@ -1,14 +0,0 @@ -foo_bar: - title: Fix the plumbing - description: A couple easy ones - guides: - - /code-security/getting-started/quickstart - - /code-security/getting-started/securing-your-organization - -bar_foo: - title: Plumb the fixing - description: The reverse of the one above - guides: - - /code-security/getting-started/securing-your-organization - - /code-security/getting-started/quickstart - - /rest/actions diff --git a/src/fixtures/fixtures/data/learning-tracks/codespaces.yml b/src/fixtures/fixtures/data/learning-tracks/codespaces.yml deleted file mode 100644 index 78343b79c7ba..000000000000 --- a/src/fixtures/fixtures/data/learning-tracks/codespaces.yml +++ /dev/null @@ -1,6 +0,0 @@ -# Codespaces learning tracks -foo_bar: - title: Sample learning track - description: A sample track for testing - guides: - - /get-started/start-your-journey/hello-world diff --git a/src/fixtures/fixtures/data/ui.yml b/src/fixtures/fixtures/data/ui.yml index ea09f35aaaf2..a3c072b1cc46 100644 --- a/src/fixtures/fixtures/data/ui.yml +++ b/src/fixtures/fixtures/data/ui.yml @@ -306,11 +306,6 @@ product_landing: view: View all all_docs: 'All {{ title }} docs' all_content: 'View all {{ title }} content' -learning_track_nav: - prev_guide: Previous - next_guide: Next - more_guides: More guides → - current_progress: '{i} of {n} in learning path' journey_track_nav: prev_article: Previous next_article: Next diff --git a/src/frame/README.md b/src/frame/README.md index 3ba5bce80ee6..4837c54fd181 100644 --- a/src/frame/README.md +++ b/src/frame/README.md @@ -102,7 +102,6 @@ Nearly every subject interacts with frame: - [`src/redirects`](../redirects/README.md) - URL redirect handling - [`src/content-render`](../content-render/README.md) - Markdown rendering - [`src/landings`](../landings/README.md) - Landing page layouts -- [`src/learning-track`](../learning-track/README.md) - Learning track navigation ### Ownership - Team: Docs Engineering diff --git a/src/frame/components/article/ArticlePage.tsx b/src/frame/components/article/ArticlePage.tsx index c9cde88d1bc3..d15cde68d384 100644 --- a/src/frame/components/article/ArticlePage.tsx +++ b/src/frame/components/article/ArticlePage.tsx @@ -5,7 +5,6 @@ import cx from 'classnames' import { useArticleContext } from '@/frame/components/context/ArticleContext' import { DefaultLayout } from '@/frame/components/DefaultLayout' import { ArticleTitle } from '@/frame/components/article/ArticleTitle' -import { LearningTrackNav } from '@/learning-track/components/article/LearningTrackNav' import { MarkdownContent } from '@/frame/components/ui/MarkdownContent' import { Lead } from '@/frame/components/ui/Lead' import { PermissionsStatement } from '@/frame/components/ui/PermissionsStatement' @@ -14,7 +13,6 @@ import { ArticleInlineLayout } from './ArticleInlineLayout' import { PlatformPicker } from '@/tools/components/PlatformPicker' import { ToolPicker } from '@/tools/components/ToolPicker' import { MiniTocs } from '@/frame/components/ui/MiniTocs' -import { LearningTrackCard } from '@/learning-track/components/article/LearningTrackCard' import { RestRedirect } from '@/rest/components/RestRedirect' import { Breadcrumbs } from '@/frame/components/page-header/Breadcrumbs' import { LinkPreviewPopover } from '@/links/components/LinkPreviewPopover' @@ -40,13 +38,11 @@ export const ArticlePage = () => { includesToolSpecificContent, product, miniTocItems, - currentLearningTrack, currentJourneyTrack, supportPortalVaIframeProps, currentLayout, currentPath, } = useArticleContext() - const isLearningPath = !!currentLearningTrack?.trackName const isJourneyTrack = !!currentJourneyTrack?.trackId const introProp = ( @@ -73,7 +69,6 @@ export const ArticlePage = () => { const toc = ( <> - {isLearningPath && } {isJourneyTrack && } {miniTocItems.length > 1 && } @@ -112,11 +107,6 @@ export const ArticlePage = () => { > {articleContents} - {isLearningPath ? ( -
    - -
    - ) : null} {isJourneyTrack ? (
    @@ -143,11 +133,6 @@ export const ArticlePage = () => { {articleContents} - {isLearningPath ? ( -
    - -
    - ) : null} {isJourneyTrack ? (
    diff --git a/src/frame/components/context/ArticleContext.tsx b/src/frame/components/context/ArticleContext.tsx index 26ffa0a3db79..a2cf29c77171 100644 --- a/src/frame/components/context/ArticleContext.tsx +++ b/src/frame/components/context/ArticleContext.tsx @@ -3,16 +3,6 @@ import { createContext, useContext } from 'react' import type { JSX } from 'react' import type { JourneyContext } from '@/journeys/lib/journey-path-resolver' -export type LearningTrack = { - trackTitle: string - trackName: string - trackProduct: string - prevGuide?: { href: string; title: string } - nextGuide?: { href: string; title: string } - numberOfGuides: number - currentGuideIndex: number -} - export type MiniTocItem = { platform?: string contents: { @@ -34,7 +24,6 @@ export type ArticleContextT = { defaultPlatform?: string defaultTool?: string product?: string - currentLearningTrack?: LearningTrack currentJourneyTrack?: JourneyContext detectedPlatforms: Array detectedTools: Array @@ -99,7 +88,6 @@ export const getArticleContextFromRequest = (req: any): ArticleContextT => { defaultPlatform: page.defaultPlatform || '', defaultTool: page.defaultTool || '', product: page.product || '', - currentLearningTrack: req.context.currentLearningTrack, currentJourneyTrack: req.context.currentJourneyTrack, detectedPlatforms: page.detectedPlatforms || [], detectedTools: page.detectedTools || [], diff --git a/src/frame/components/context/CategoryLandingContext.tsx b/src/frame/components/context/CategoryLandingContext.tsx index cb5acc207abd..30837f4eb39b 100644 --- a/src/frame/components/context/CategoryLandingContext.tsx +++ b/src/frame/components/context/CategoryLandingContext.tsx @@ -1,5 +1,4 @@ import { createContext, useContext } from 'react' -import { LearningTrack } from './ArticleContext' import { FeaturedLink, getFeaturedLinksFromReq } from '@/landings/components/ProductLandingContext' import type { TocItem } from '@/landings/types' import { mapRawTocItemToTocItem } from '@/landings/types' @@ -14,7 +13,6 @@ export type CategoryLandingContextT = { variant?: 'compact' | 'expanded' featuredLinks: Record> renderedPage: string - currentLearningTrack?: LearningTrack currentLayout: string spotlight?: SpotlightItem[] } @@ -45,7 +43,6 @@ export const getCategoryLandingContextFromRequest = (req: any): CategoryLandingC variant: req.context.genericTocFlat ? 'expanded' : 'compact', featuredLinks: getFeaturedLinksFromReq(req), renderedPage: req.context.renderedPage, - currentLearningTrack: req.context.currentLearningTrack, currentLayout: req.context.currentLayoutName, spotlight: req.context.page.spotlight, } diff --git a/src/frame/components/context/TocLandingContext.tsx b/src/frame/components/context/TocLandingContext.tsx index 4c536af4fa25..e83ee2e22a5a 100644 --- a/src/frame/components/context/TocLandingContext.tsx +++ b/src/frame/components/context/TocLandingContext.tsx @@ -1,5 +1,4 @@ import { createContext, useContext } from 'react' -import { LearningTrack } from './ArticleContext' import { FeaturedLink, getFeaturedLinksFromReq } from '@/landings/components/ProductLandingContext' import type { SimpleTocItem } from '@/landings/types' import { mapRawTocItemToSimpleTocItem } from '@/landings/types' @@ -13,7 +12,6 @@ export type TocLandingContextT = { variant?: 'compact' | 'expanded' featuredLinks: Record> renderedPage: string - currentLearningTrack?: LearningTrack } export const TocLandingContext = createContext(null) @@ -40,6 +38,5 @@ export const getTocLandingContextFromRequest = (req: any): TocLandingContextT => variant: req.context.genericTocFlat ? 'expanded' : 'compact', featuredLinks: getFeaturedLinksFromReq(req), renderedPage: req.context.renderedPage, - currentLearningTrack: req.context.currentLearningTrack, } } diff --git a/src/frame/lib/frontmatter.ts b/src/frame/lib/frontmatter.ts index e390b6421c16..3f1ec1339fca 100644 --- a/src/frame/lib/frontmatter.ts +++ b/src/frame/lib/frontmatter.ts @@ -183,9 +183,6 @@ export const schema: Schema = { type: 'string', enum: contentTypesEnum, }, - learningTracks: { - type: 'array', - }, // Optional heading override for the single-track journey landing UI journeyArticlesHeading: { type: 'string', diff --git a/src/learning-track/lib/get-link-data.ts b/src/frame/lib/get-link-data.ts similarity index 87% rename from src/learning-track/lib/get-link-data.ts rename to src/frame/lib/get-link-data.ts index 236c138b3589..00920797e9d5 100644 --- a/src/learning-track/lib/get-link-data.ts +++ b/src/frame/lib/get-link-data.ts @@ -4,7 +4,21 @@ import nonEnterpriseDefaultVersion from '@/versions/lib/non-enterprise-default-v import removeFPTFromPath from '@/versions/lib/remove-fpt-from-path' import { renderContent } from '@/content-render/index' import { executeWithFallback } from '@/languages/lib/render-with-fallback' -import { Context, LinkOptions, ProcessedLink } from './types' +import type { Context, Page } from '@/types' + +export interface LinkOptions { + title?: boolean + intro?: boolean + fullTitle?: boolean +} + +export interface ProcessedLink { + href: string + page: Page + title?: string + fullTitle?: string + intro?: string +} // rawLinks is an array of paths: [ '/foo' ] // we need to convert it to an array of localized objects: [ { href: '/en/foo', title: 'Foo', intro: 'Description here' } ] @@ -41,20 +55,19 @@ export default async function getLinkData( } async function processLink( - link: string | { href: string }, + link: string, context: Context, options: LinkOptions, ): Promise { const opts: { textOnly: boolean; preferShort?: boolean } = { textOnly: true } - const linkHref = typeof link === 'string' ? link : link.href // Parse the link in case it includes Liquid conditionals - const linkPath = linkHref.includes('{') + const linkPath = link.includes('{') ? await executeWithFallback( context, - () => renderContent(linkHref, context, opts), - (enContext: Context) => renderContent(linkHref, enContext, opts), + () => renderContent(link, context, opts), + (enContext: Context) => renderContent(link, enContext, opts), ) - : linkHref + : link // If the link was `{% ifversion ghes %}/admin/foo/bar{% endifversion %}` // the `context.currentVersion` was `enterprise-cloud`, the final // output would become '' (empty string). diff --git a/src/frame/lib/page.ts b/src/frame/lib/page.ts index af366ca8e801..f690eadb5468 100644 --- a/src/frame/lib/page.ts +++ b/src/frame/lib/page.ts @@ -8,7 +8,7 @@ import getEnglishHeadings from '@/languages/lib/get-english-headings' import { getAlertTitles } from '@/languages/lib/get-alert-titles' import Permalink from './permalink' import { renderContent } from '@/content-render/index' -import processLearningTracks from '@/learning-track/lib/process-learning-tracks' + import { productMap } from '@/products/lib/all-products' import slash from 'slash' import readFileContents from './read-file-contents' @@ -83,8 +83,6 @@ class Page { public showMiniToc?: boolean public hidden?: boolean public redirect_from?: string[] - public learningTracks?: any[] - public rawLearningTracks?: string[] public introLinks?: Record public rawIntroLinks?: Record public carousels?: Record @@ -213,7 +211,6 @@ class Page { this.rawShortTitle = this.shortTitle this.rawProduct = this.product this.rawPermissions = this.permissions - this.rawLearningTracks = this.learningTracks this.rawIntroLinks = this.introLinks this.rawCarousels = this.carousels @@ -350,12 +347,6 @@ class Page { this.permissions = await renderContentWithFallback(this, 'rawPermissions', context) } - // Learning tracks may contain Liquid and need to have versioning processed. - if (this.rawLearningTracks) { - const { learningTracks } = await processLearningTracks(this.rawLearningTracks, context) - this.learningTracks = learningTracks - } - // introLinks may contain Liquid and need to have versioning processed. if (this.rawIntroLinks) { const introLinks: Record = {} diff --git a/src/frame/middleware/index.ts b/src/frame/middleware/index.ts index 1a19c09751e2..5383edbd4604 100644 --- a/src/frame/middleware/index.ts +++ b/src/frame/middleware/index.ts @@ -52,7 +52,6 @@ import features from '@/versions/middleware/features' import productExamples from './context/product-examples' import productGroups from './context/product-groups' import featuredLinks from '@/landings/middleware/featured-links' -import learningTrack from '@/learning-track/middleware/learning-track' import journeyTrack from '@/journeys/middleware/journey-track' import next from './next' import renderPage from './render-page' @@ -285,7 +284,6 @@ export default function index(app: Express) { app.use(asyncMiddleware(generalSearchMiddleware)) app.use(asyncMiddleware(featuredLinks)) app.use(asyncMiddleware(resolveCarousels)) - app.use(asyncMiddleware(learningTrack)) app.use(asyncMiddleware(journeyTrack)) if (ENABLE_FASTLY_TESTING) { diff --git a/src/frame/tests/page.ts b/src/frame/tests/page.ts index 5467f04c8605..5d757c5e3b87 100644 --- a/src/frame/tests/page.ts +++ b/src/frame/tests/page.ts @@ -433,7 +433,7 @@ describe('catches errors thrown in Page class', () => { }) describe('versioning optional attributes', () => { - test("re-rendering set appropriate 'product', 'permissions', 'learningTracks'", async () => { + test("re-rendering set appropriate 'product', 'permissions'", async () => { const page = await Page.init({ relativePath: 'page-with-optional-attributes.md', basePath: path.join(__dirname, '../../../src/fixtures/fixtures'), diff --git a/src/journeys/README.md b/src/journeys/README.md index 62b78f5bc72d..7b19ccd3d3d0 100644 --- a/src/journeys/README.md +++ b/src/journeys/README.md @@ -5,7 +5,7 @@ The **journeys** subject provides guided learning experiences (called "tracks") ## Purpose & Scope This subject is responsible for: -- Rendering journey landing pages that display multiple learning tracks +- Rendering journey landing pages that display multiple journey tracks - Providing prev/next navigation within journey track articles - Resolving journey context based on the current article path - Rendering Liquid templates in journey metadata (titles, descriptions, guide paths) diff --git a/src/journeys/lib/get-link-data.ts b/src/journeys/lib/get-link-data.ts index b292dd607dc9..5d9a3a01274d 100644 --- a/src/journeys/lib/get-link-data.ts +++ b/src/journeys/lib/get-link-data.ts @@ -1,2 +1 @@ -// Re-export the getLinkData function from learning tracks for journey tracks -export { default } from '@/learning-track/lib/get-link-data' +export { default } from '@/frame/lib/get-link-data' diff --git a/src/journeys/lib/journey-path-resolver.ts b/src/journeys/lib/journey-path-resolver.ts index ec93200dfe8c..b665a16c92d5 100644 --- a/src/journeys/lib/journey-path-resolver.ts +++ b/src/journeys/lib/journey-path-resolver.ts @@ -110,7 +110,7 @@ function normalizeGuidePath(path: string): string { // First ensure we have a leading slash for consistent processing const pathWithSlash = path.startsWith('/') ? path : `/${path}` - // Use the same normalization pattern as learning tracks and other middleware + // Use the same normalization pattern as other middleware const withoutVersion = getPathWithoutVersion(pathWithSlash) const withoutLanguage = getPathWithoutLanguage(withoutVersion) diff --git a/src/landings/README.md b/src/landings/README.md index 48f6a650ec26..f14e1a93e124 100644 --- a/src/landings/README.md +++ b/src/landings/README.md @@ -42,7 +42,6 @@ npm run test -- src/landings/tests ### Dependencies - [`@/frame`](../frame/README.md) - Context object, page data, shared components - [`@/content-render`](../content-render/README.md) - Renders Liquid in featured link titles -- [`@/learning-track`](../learning-track/README.md) - Learning track data resolution - [`@/journeys`](../journeys/README.md) - Journey track components and data - [`@/products`](../products/README.md) - Product metadata and groupings - [`@/versions`](../versions/README.md) - Version-aware content filtering diff --git a/src/landings/components/ProductGuidesContext.tsx b/src/landings/components/ProductGuidesContext.tsx index 324641329df0..0a9df2552a5a 100644 --- a/src/landings/components/ProductGuidesContext.tsx +++ b/src/landings/components/ProductGuidesContext.tsx @@ -1,17 +1,8 @@ import { createContext, useContext } from 'react' -export type LearningTrack = { - trackName: string - trackProduct: string - title: string - description: string - guides?: Array<{ href: string; contentType: string | null; title: string; intro: string }> -} - export type ProductGuidesContextT = { title: string intro: string - learningTracks: Array } export const ProductGuidesContext = createContext(null) diff --git a/src/landings/components/TocLanding.tsx b/src/landings/components/TocLanding.tsx index 0227af5a82fc..67306e8b1a11 100644 --- a/src/landings/components/TocLanding.tsx +++ b/src/landings/components/TocLanding.tsx @@ -11,7 +11,6 @@ import { ArticleList } from '@/landings/components/ArticleList' import { ArticleGridLayout } from '@/frame/components/article/ArticleGridLayout' import { PermissionsStatement } from '@/frame/components/ui/PermissionsStatement' import { Lead } from '@/frame/components/ui/Lead' -import { LearningTrackNav } from '@/learning-track/components/article/LearningTrackNav' import { ClientSideRedirects } from '@/rest/components/ClientSideRedirects' import { RestRedirect } from '@/rest/components/RestRedirect' import { Breadcrumbs } from '@/frame/components/page-header/Breadcrumbs' @@ -27,7 +26,6 @@ export const TocLanding = () => { variant, featuredLinks, renderedPage, - currentLearningTrack, permissions, } = useTocLandingContext() const { t } = useTranslation('toc') @@ -80,12 +78,6 @@ export const TocLanding = () => {
    - - {currentLearningTrack?.trackName ? ( -
    - -
    - ) : null}
    ) diff --git a/src/landings/context/LandingContext.tsx b/src/landings/context/LandingContext.tsx index afb95888e8cc..7f4258c2a910 100644 --- a/src/landings/context/LandingContext.tsx +++ b/src/landings/context/LandingContext.tsx @@ -2,7 +2,7 @@ import { createContext, useContext } from 'react' import { getFeaturedLinksFromReq } from '@/landings/components/ProductLandingContext' import { mapRawTocItemToTocItem } from '@/landings/types' import type { TocItem } from '@/landings/types' -import type { ExtendedRequest, Context, LearningTrack } from '@/types' +import type { ExtendedRequest, Context } from '@/types' import type { JourneyTrack } from '@/journeys/lib/journey-path-resolver' import type { FeaturedLink } from '@/landings/components/ProductLandingContext' @@ -18,7 +18,6 @@ export type LandingContextT = { variant?: 'compact' | 'expanded' featuredLinks: Record> renderedPage: string - currentLearningTrack?: LearningTrack | null currentLayout: string heroImage?: string // For landing pages with carousels @@ -105,7 +104,6 @@ export const getLandingContextFromRequest = async ( variant: context.genericTocFlat ? 'expanded' : 'compact', featuredLinks: getFeaturedLinksFromReq(req), renderedPage: context.renderedPage ?? '', - currentLearningTrack: context.currentLearningTrack ?? null, currentLayout: context.currentLayoutName ?? '', heroImage: page.heroImage || '/assets/images/banner-images/hero-1', introLinks: page.introLinks || null, diff --git a/src/landings/middleware/featured-links.ts b/src/landings/middleware/featured-links.ts index 5c921607f764..5b392600fd1e 100644 --- a/src/landings/middleware/featured-links.ts +++ b/src/landings/middleware/featured-links.ts @@ -1,7 +1,7 @@ import type { Response, NextFunction } from 'express' import type { ExtendedRequest, FeaturedLinkExpanded } from '@/types' -import getLinkData from '@/learning-track/lib/get-link-data' +import getLinkData from '@/frame/lib/get-link-data' /** * This is the max. number of featured links, by any category, that we diff --git a/src/landings/pages/product.tsx b/src/landings/pages/product.tsx index f5559f65463e..038c7b2b8c03 100644 --- a/src/landings/pages/product.tsx +++ b/src/landings/pages/product.tsx @@ -182,18 +182,12 @@ export const getServerSideProps: GetServerSideProps = async (context) => props.categoryLandingContext = getCategoryLandingContextFromRequest(req) } else { props.tocLandingContext = getTocLandingContextFromRequest(req) - if (props.tocLandingContext.currentLearningTrack?.trackName) { - additionalUINamespaces.push('learning_track_nav') - } } } else if (props.mainContext.page) { // All articles that might have hover cards needs this additionalUINamespaces.push('popovers') props.articleContext = getArticleContextFromRequest(req) - if (props.articleContext.currentLearningTrack?.trackName) { - additionalUINamespaces.push('learning_track_nav') - } if (props.articleContext.currentJourneyTrack?.trackId) { additionalUINamespaces.push('journey_track_nav') } diff --git a/src/learning-track/README.md b/src/learning-track/README.md deleted file mode 100644 index 6f444c733f28..000000000000 --- a/src/learning-track/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# Learning Tracks - -This module manages "Learning Tracks"—curated, ordered lists of articles that guide a user through a specific topic or goal. When a user enters a learning track, they see a persistent banner or navigation element that helps them move sequentially through the guides. - -## Purpose & Scope - -The goal of this feature is to: -- **Group Content**: Logically group related articles into a sequence. -- **Guide Users**: Provide "Next" and "Previous" navigation context to keep users on the path. -- **Track Progress**: Visually indicate where the user is within the sequence (e.g., "Step 2 of 5"). - -## Architecture - -### Data Source - -Learning tracks are defined in YAML files located in `data/learning-tracks`. -- **Structure**: `data/learning-tracks/.yml` -- **Schema**: Each file contains multiple tracks, where each track is defined as a top-level key with properties like: - - `title`: Display title of the track. - - `description`: Short summary. - - `guides`: An ordered list of relative paths to the articles. - - `versions`: (Optional) Which versions this track applies to. - -### Middleware - -The core logic for *active* tracking happens in `src/learning-track/middleware/learning-track.ts`. -- **Trigger**: It looks for the `?learn=` query parameter in the URL. -- **Context Injection**: If a valid track is found: - - It calculates the current position (index) based on the current page path. - - It resolves the `prevGuide` and `nextGuide` links. - - It injects a `currentLearningTrack` object into `req.context`, which the UI components use to render the progress banner. - -### Library - -`src/learning-track/lib/process-learning-tracks.ts` is used (often by landing pages) to list available tracks. -- **Rendering**: It handles Liquid rendering for titles and descriptions. -- **Versioning**: It filters out tracks or specific guides that don't exist in the current documentation version. -- **Translation Fallback**: It ensures that if a translated track has broken data, it falls back to the English structure (guides list) while keeping translated titles if possible. - -## Setup & Usage - -### Defining a Track - -Add a track to `data/learning-tracks/YOUR_PRODUCT.yml`: - -```yaml -getting_started: - title: "Getting Started with GitHub" - description: "Learn the basics of repositories and commits." - versions: - fpt: '*' - ghec: '*' - guides: - - /get-started/signing-up-for-github/signing-up-for-a-new-github-account - - /get-started/first-steps-with-git/set-up-git -``` - -### Linking to a Track - -To start a user on a track, link to the first guide with the `learn` parameter (matching the track key defined in the YAML): -`/en/get-started/signing-up-for-github/signing-up-for-a-new-github-account?learn=getting_started` - -### URL Structure - -- **`learn=`**: Identifies the active track. -- **`learnProduct=`**: (Optional) Used when the track belongs to a different product than the current page context. - -## Dependencies - -- **`data/learning-tracks`**: The source of truth for track definitions. -- **`src/content-render`**: Used to render Liquid within track titles and descriptions. -- **`src/versions`**: Used to filter tracks based on the current page version. - -## Ownership - -- **Team**: `@github/docs-engineering` -- **Content Owners**: The Writers and Content Strategists who define the tracks in the `data` directory. - -## Current State & Known Issues - -- **Query Param Persistence**: The feature relies on the `?learn=` parameter persisting as the user clicks links. If a user navigates away via a link that doesn't preserve query params (e.g., a standard markdown link outside the track navigation), they "fall off" the track. -- **Translation Sync**: Translators sometimes translate the `guides` list paths or break the YAML structure. The code has specific logic to force-use English guide lists to prevent 404s in translated versions. \ No newline at end of file diff --git a/src/learning-track/components/article/LearningTrackCard.tsx b/src/learning-track/components/article/LearningTrackCard.tsx deleted file mode 100644 index 3a02d325fe49..000000000000 --- a/src/learning-track/components/article/LearningTrackCard.tsx +++ /dev/null @@ -1,58 +0,0 @@ -import { useRouter } from 'next/router' - -import { Link } from '@/frame/components/Link' -import type { LearningTrack } from '@/frame/components/context/ArticleContext' -import { useTranslation } from '@/languages/components/useTranslation' - -type Props = { - track: LearningTrack -} -export function LearningTrackCard({ track }: Props) { - const { locale } = useRouter() - const { t } = useTranslation('learning_track_nav') - const { trackTitle, trackName, nextGuide, trackProduct, numberOfGuides, currentGuideIndex } = - track - return ( -
    -
    -

    - - {trackTitle} - -

    - - {t('current_progress') - .replace('{n}', `${numberOfGuides}`) - .replace('{i}', `${currentGuideIndex + 1}`)} - -
    - - {nextGuide ? ( - <> - {t('next_guide')}: - - {nextGuide.title} - - - ) : ( - - {t('more_guides')} - - )} - -
    -
    - ) -} diff --git a/src/learning-track/components/article/LearningTrackNav.tsx b/src/learning-track/components/article/LearningTrackNav.tsx deleted file mode 100644 index 6c3a776bb021..000000000000 --- a/src/learning-track/components/article/LearningTrackNav.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { Link } from '@/frame/components/Link' -import type { LearningTrack } from '@/frame/components/context/ArticleContext' -import { useTranslation } from '@/languages/components/useTranslation' - -type Props = { - track: LearningTrack -} -export function LearningTrackNav({ track }: Props) { - const { t } = useTranslation('learning_track_nav') - const { prevGuide, nextGuide, trackName, trackProduct } = track - return ( -
    - - {prevGuide && ( - <> - {t('prev_guide')} - - {prevGuide.title} - - - )} - - - - {nextGuide && ( - <> - {t('next_guide')} - - {nextGuide.title} - - - )} - -
    - ) -} diff --git a/src/learning-track/components/guides/LearningTrack.tsx b/src/learning-track/components/guides/LearningTrack.tsx deleted file mode 100644 index 83422a5d9c3f..000000000000 --- a/src/learning-track/components/guides/LearningTrack.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { useTranslation } from '@/languages/components/useTranslation' -import { ArrowRightIcon } from '@primer/octicons-react' -import { LearningTrack as LearningTrackT } from '@/landings/components/ProductGuidesContext' -import { Link } from '@/frame/components/Link' - -import { HeadingLink } from '@/frame/components/article/HeadingLink' - -type Props = { - track: LearningTrackT -} - -export const LearningTrack = ({ track }: Props) => { - const { t, tObject } = useTranslation('product_guides') - if (!track) return
    - - return ( -
    - {track.title} -

    {track.description}

    - - - {t('start_path')} - - - - {track.guides && ( -
      - {track.guides.map((guide) => ( -
    1. - - {tObject('guide_types')[guide.contentType || ''] as string} - - - {guide.title} - -
    2. - ))} -
    - )} -
    - ) -} diff --git a/src/learning-track/components/guides/LearningTracks.tsx b/src/learning-track/components/guides/LearningTracks.tsx deleted file mode 100644 index c1b8b4d2eda2..000000000000 --- a/src/learning-track/components/guides/LearningTracks.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import { useProductGuidesContext } from '@/landings/components/ProductGuidesContext' -import { LearningTrack } from '@/learning-track/components/guides/LearningTrack' - -export const LearningTracks = () => { - const { learningTracks } = useProductGuidesContext() - - return ( -
    - {learningTracks.map((track) => { - return - })} -
    - ) -} diff --git a/src/learning-track/lib/process-learning-tracks.ts b/src/learning-track/lib/process-learning-tracks.ts deleted file mode 100644 index cd1ff360aa53..000000000000 --- a/src/learning-track/lib/process-learning-tracks.ts +++ /dev/null @@ -1,117 +0,0 @@ -import getLinkData from './get-link-data' -import getApplicableVersions from '@/versions/lib/get-applicable-versions' -import { getDataByLanguage } from '@/data-directory/lib/get-data' -import { renderContent } from '@/content-render/index' -import { executeWithFallback } from '@/languages/lib/render-with-fallback' -import { - Context, - TrackGuide, - LearningTrack, - LearningTrackMetadata, - ProcessedLearningTracks, -} from './types' - -const renderOpts = { textOnly: true } - -// This module returns an object that contains a single featured learning track -// and an array of all the other learning tracks for the current version. -export default async function processLearningTracks( - rawLearningTracks: string[], - context: Context, -): Promise { - const learningTracks: LearningTrack[] = [] - - if (!context.currentProduct) { - throw new Error(`Missing context.currentProduct value.`) - } - - for (const rawTrackName of rawLearningTracks) { - // Track names in frontmatter may include Liquid conditionals. - const renderedTrackName = rawTrackName.includes('{') - ? await executeWithFallback( - context, - () => renderContent(rawTrackName, context, renderOpts), - (enContext: Context) => renderContent(rawTrackName, enContext, renderOpts), - ) - : rawTrackName - if (!renderedTrackName) continue - - // Find the data for the current product and track name. - - if (context.currentProduct.includes('.')) { - throw new Error(`currentProduct cannot contain a . (${context.currentProduct})`) - } - if (renderedTrackName.includes('.')) { - throw new Error(`renderedTrackName cannot contain a . (${renderedTrackName})`) - } - - // Note: this will use the translated learning tracks and automatically - // fall back to English if they don't exist on disk in the translation. - const rawTrack = getDataByLanguage( - `learning-tracks.${context.currentProduct}.${renderedTrackName}`, - context.currentLanguage!, - ) - if (!rawTrack) { - throw new Error(`No learning track called '${renderedTrackName}'.`) - } - - // For translated tracks, always use English `guides` and `versions` - // (translations sometimes break Liquid in those fields). Keep translated - // `title` and `description` so we can render them with a fallback. - let enTrack!: LearningTrackMetadata - let track: LearningTrackMetadata - if (context.currentLanguage !== 'en') { - enTrack = getDataByLanguage( - `learning-tracks.${context.currentProduct}.${renderedTrackName}`, - 'en', - ) - track = { - ...rawTrack, - guides: enTrack.guides, - versions: enTrack.versions, - } - } else { - track = rawTrack - } - - // If there is no `versions` prop in the learning track frontmatter, assume the track should display in all versions. - if (track.versions) { - const trackVersions = getApplicableVersions(track.versions as string) - - // If the current version is not included, do not display the track. - if (!context.currentVersion || !trackVersions.includes(context.currentVersion)) { - continue - } - } - - const title = await executeWithFallback( - context, - () => renderContent(track.title, context, renderOpts), - (enContext: Context) => renderContent(enTrack.title, enContext, renderOpts), - ) - const description = await executeWithFallback( - context, - () => renderContent(track.description, context, renderOpts), - (enContext: Context) => renderContent(enTrack.description, enContext, renderOpts), - ) - - const guides = (await getLinkData(track.guides, context)) || [] - - const learningTrack: LearningTrack = { - trackName: renderedTrackName, - trackProduct: context.currentProduct || null, - title, - description, - // getLinkData respects versioning and only returns guides available in the current version; - // if no guides are available, the learningTrack.guides property will be an empty array. - guides: guides as TrackGuide[], - } - - // Only add the track to the array of tracks if there are guides in this version and it's not the featured track. - if (Array.isArray(learningTrack.guides) && learningTrack.guides.length > 0) { - learningTracks.push(learningTrack) - } - } - - return { learningTracks } -} diff --git a/src/learning-track/lib/types.ts b/src/learning-track/lib/types.ts deleted file mode 100644 index 60ab19d011ee..000000000000 --- a/src/learning-track/lib/types.ts +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Common types used across learning track components - */ - -import type { Context, Page as MainPage } from '@/types' - -// Re-export Context from main types to avoid duplicate definitions -export type { Context } - -/** - * Options for retrieving link data - */ -export interface LinkOptions { - title?: boolean - intro?: boolean - fullTitle?: boolean -} - -/** - * Result of processing a link - */ -export interface ProcessedLink { - href: string - page: Page - title?: string - fullTitle?: string - intro?: string -} - -/** - * Definitions for featured links data - */ -export interface FeaturedLink { - title: string - href: string -} - -export interface PageFeaturedLinks { - [key: string]: string[] | FeaturedLink[] -} - -/** - * Page interface for basic page properties - * Using the main Page type from @/types - */ -export type Page = MainPage - -/** - * Guide in a learning track - */ -export interface TrackGuide { - href: string - page: Page - title: string - intro?: string -} - -/** - * A processed learning track - */ -export interface LearningTrack { - trackName: string - trackProduct: string | null - title: string - description: string - guides: TrackGuide[] -} - -/** - * Learning track metadata with guides - */ -export interface LearningTrackMetadata { - title: string - description: string - guides: string[] - versions?: unknown -} - -/** - * Collection of learning tracks by product and track name - */ -export interface LearningTracks { - [productId: string]: { - [trackName: string]: LearningTrackMetadata - } -} - -/** - * Return type for processLearningTracks function - */ -export interface ProcessedLearningTracks { - learningTracks: LearningTrack[] -} - -/** - * Learning track data for the current guide - */ -export interface CurrentLearningTrack { - trackName: string - trackProduct: string - trackTitle: string - numberOfGuides?: number - currentGuideIndex?: number - nextGuide?: { - href: string - title: string | undefined - } - prevGuide?: { - href: string - title: string | undefined - } -} diff --git a/src/learning-track/middleware/learning-track.ts b/src/learning-track/middleware/learning-track.ts deleted file mode 100644 index 82a54cf89fc8..000000000000 --- a/src/learning-track/middleware/learning-track.ts +++ /dev/null @@ -1,201 +0,0 @@ -import type { Response, NextFunction } from 'express' - -import type { ExtendedRequest, LearningTracks } from '@/types' -import type { Context, CurrentLearningTrack, TrackGuide } from '../lib/types' -import { getPathWithoutLanguage, getPathWithoutVersion } from '@/frame/lib/path-utils' -import getLinkData from '../lib/get-link-data' -import { renderContent } from '@/content-render/index' -import { executeWithFallback } from '@/languages/lib/render-with-fallback' -import { getDeepDataByLanguage } from '@/data-directory/lib/get-data' - -export default async function learningTrack( - req: ExtendedRequest & { context: Context }, - res: Response, - next: NextFunction, -) { - if (!req.context) throw new Error('request is not contextualized') - - const noTrack = () => { - req.context.currentLearningTrack = null - return next() - } - - if (!req.context.page) return next() - - if (!req.query.learn) return noTrack() - if (Array.isArray(req.query.learn)) return noTrack() - const trackName = req.query.learn as string - - let trackProduct = req.context.currentProduct as string - const rawLearningTracks = getDeepDataByLanguage( - 'learning-tracks', - req.language!, - ) as LearningTracks - - let allLearningTracks = rawLearningTracks - - if (req.language !== 'en') { - // Don't trust the `.guides` from the translation. It too often has - // broken Liquid (e.g. `{% ifversion fpt 또는 ghec 또는 ghes %}`) - const allEnglishLearningTracks = getDeepDataByLanguage( - 'learning-tracks', - 'en', - ) as LearningTracks - // Build a filtered copy instead of mutating the cached original - const filtered: LearningTracks = {} - for (const [key, tracks] of Object.entries(rawLearningTracks)) { - if (!(key in allEnglishLearningTracks)) { - console.warn('No English learning track for %s', key) - continue - } - filtered[key] = {} - for (const [name, track] of Object.entries(tracks)) { - if (!(name in allEnglishLearningTracks[key])) continue - filtered[key][name] = { - ...track, - guides: allEnglishLearningTracks[key][name].guides, - } - } - } - allLearningTracks = filtered - } - let tracksPerProduct = allLearningTracks[trackProduct] - - // If there are no learning tracks for the current product, try and fall - // back to the learning track product set as a URL parameter. This handles - // the case where a learning track has guide paths for a different product - // than the current learning track product. - if (!tracksPerProduct) { - if (!req.query.learnProduct) return noTrack() - if (Array.isArray(req.query.learnProduct)) { - trackProduct = req.query.learnProduct[0] as string - } else { - trackProduct = req.query.learnProduct as string - } - tracksPerProduct = allLearningTracks[trackProduct] - } - if (!tracksPerProduct) return noTrack() - - const track = allLearningTracks[trackProduct][trackName] - if (!track) return noTrack() - - // The trackTitle comes from a data .yml file and may use Liquid templating, so we need to render it - const renderOpts = { textOnly: true } - // Some translated titles are known to have broken Liquid, so we need to - // try rendering them in English as a fallback. - const trackTitle = await executeWithFallback( - req.context, - () => renderContent(track.title, req.context, renderOpts), - (enContext: Context) => { - const allEnglishLearningTracks = getDeepDataByLanguage( - 'learning-tracks', - 'en', - ) as LearningTracks - const enTrack = allEnglishLearningTracks[trackProduct]?.[trackName] - if (!enTrack) { - throw new Error(`English learning track not found: ${trackProduct}.${trackName}`) - } - return renderContent(enTrack.title, enContext, renderOpts) - }, - ) - - const currentLearningTrack: CurrentLearningTrack = { trackName, trackProduct, trackTitle } - const guidePath = getPathWithoutLanguage(getPathWithoutVersion(req.pagePath)) - - // The raw track.guides will return all guide paths, need to use getLinkData - // so we only get guides available in the current version - const trackGuides = ((await getLinkData(track.guides, req.context)) || []) as TrackGuide[] - - const trackGuidePaths = trackGuides.map((guide) => { - return getPathWithoutLanguage(getPathWithoutVersion(guide.href)) - }) - - let guideIndex = trackGuidePaths.findIndex((path) => path === guidePath) - - // The learning track path may use Liquid version conditionals, handle the - // case where the requested path is a learning track path but won't match - // because of a Liquid conditional. - if (guideIndex < 0) { - guideIndex = await indexOfLearningTrackGuide(trackGuidePaths, guidePath, req.context) - } - - // Also check if the learning track path is now a redirect to the requested - // page, we still want to render the learning track banner in that case. - // Also handles Liquid conditionals in the track path. - if (guideIndex < 0) { - for (const redirect of req.context.page.redirect_from || []) { - if (guideIndex >= 0) break - - guideIndex = await indexOfLearningTrackGuide(trackGuidePaths, redirect, req.context) - } - } - - if (guideIndex < 0) return noTrack() - - currentLearningTrack.numberOfGuides = trackGuidePaths.length - currentLearningTrack.currentGuideIndex = guideIndex - - if (guideIndex > 0) { - const prevGuidePath = trackGuidePaths[guideIndex - 1] - const resultData = await getLinkData(prevGuidePath, req.context, { - title: true, - intro: false, - fullTitle: false, - }) - if (!resultData || !resultData.length) return noTrack() - const result = resultData[0] - - const href = result.href - const title = result.title - currentLearningTrack.prevGuide = { href, title } - } - - if (guideIndex < trackGuidePaths.length - 1) { - const nextGuidePath = trackGuidePaths[guideIndex + 1] - const resultData = await getLinkData(nextGuidePath, req.context, { - title: true, - intro: false, - fullTitle: false, - }) - if (!resultData || !resultData.length) return noTrack() - const result = resultData[0] - - const href = result.href - const title = result.title - - currentLearningTrack.nextGuide = { href, title } - } - - req.context.currentLearningTrack = currentLearningTrack - - return next() -} - -// Find the index of a learning track guide path in an array of guide paths, -// return -1 if not found. -async function indexOfLearningTrackGuide( - trackGuidePaths: string[], - guidePath: string, - context: Context, -) { - let guideIndex = -1 - - const renderOpts = { textOnly: true } - for (let i = 0; i < trackGuidePaths.length; i++) { - // Learning track URLs may have Liquid conditionals. - const renderedGuidePath = await executeWithFallback( - context, - () => renderContent(trackGuidePaths[i], context, renderOpts), - (enContext: Context) => renderContent(trackGuidePaths[i], enContext, renderOpts), - ) - - if (!renderedGuidePath) continue - - if (renderedGuidePath === guidePath) { - guideIndex = i - break - } - } - - return guideIndex -} diff --git a/src/learning-track/tests/lint-data.ts b/src/learning-track/tests/lint-data.ts deleted file mode 100644 index 88edd926be71..000000000000 --- a/src/learning-track/tests/lint-data.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { describe, expect, test } from 'vitest' - -import type { LearningTracks } from '@/types' -import { loadPages, loadPageMap } from '@/frame/lib/page-data' -import loadRedirects from '@/redirects/lib/precompile' -import { getDeepDataByLanguage } from '@/data-directory/lib/get-data' -import { checkURL } from '@/tests/helpers/check-url' - -const pageList = await loadPages(undefined, ['en']) -const pages = await loadPageMap(pageList) -const redirects = await loadRedirects(pageList) - -describe('learning tracks', () => { - const allLearningTracks = getDeepDataByLanguage('learning-tracks', 'en') as LearningTracks - const topLevels = Object.keys(allLearningTracks) - - test.each(topLevels)('learning-track in data/learning-tracks/%s.yml', (topLevel) => { - const learningTracks = allLearningTracks[topLevel] - const redirectsContext = { redirects, pages } - - for (const learningTrack of Object.values(learningTracks)) { - const length = learningTrack.guides.length - const size = new Set(learningTrack.guides).size - let errorMessage = '' - if (length !== size) { - errorMessage = `In data/learning-tracks/${topLevel}.yml there are duplicate guides.` - const counts = new Map() - for (const guide of learningTrack.guides) { - counts.set(guide, (counts.get(guide) || 0) + 1) - } - const dupes = [...counts.entries()].filter(([, count]) => count > 1).map(([entry]) => entry) - errorMessage += `\nTo fix this, remove: ${dupes.join(' and ')}` - } - expect(length, errorMessage).toEqual(size) - } - - type Trouble = { - uri: string - index: number - redirects: string | undefined - } - type TroubleTuple = [string, Trouble[]] - const troubles = Object.entries(learningTracks) - .map(([learningTrackKey, learningTrack]) => { - return [ - learningTrackKey, - learningTrack.guides - .map((guide, i) => checkURL(guide, i, redirectsContext)) - .filter(Boolean), - ] - }) - .filter(([, trouble]) => trouble.length > 0) as TroubleTuple[] - - let errorMessage = `In data/learning-tracks/${topLevel}.yml there are ${troubles.length} guides that are not correct.\n` - let fixables = 0 - for (const [key, guides] of troubles) { - errorMessage += `Under "${key}"...\n` - for (const { uri, index, redirects: redirectTo } of guides) { - if (redirectTo) { - fixables += 1 - errorMessage += ` guide: #${index + 1} ${uri} redirects to ${redirectTo}\n` - } else { - errorMessage += ` guide: #${index + 1} ${uri} is broken.\n` - } - } - } - if (fixables) { - errorMessage += `\nNOTE! To automatically fix the redirects run this command:\n` - errorMessage += `\n\t./src/links/scripts/update-internal-links.ts data/learning-tracks/${topLevel}.yml\n` - } - expect(troubles.length, errorMessage).toEqual(0) - }) -}) diff --git a/src/links/lib/update-internal-links.ts b/src/links/lib/update-internal-links.ts index 79feedd728d7..123aa6e8f2fb 100644 --- a/src/links/lib/update-internal-links.ts +++ b/src/links/lib/update-internal-links.ts @@ -1,5 +1,4 @@ import fs from 'fs' -import path from 'path' import { visit, Test } from 'unist-util-visit' import { fromMarkdown } from 'mdast-util-from-markdown' @@ -83,8 +82,8 @@ async function updateFile( // Since this function can process both `.md` and `.yml` files, // when treating a `.md` file, the `data` from `frontmatter(rawContent)` - // is easy. But when dealing a file like `data/learning-tracks/foo.yml` - // then the `frontmatter(rawContent).data` always becomes `{}`. + // is easy. But when dealing a `.yml` file, + // the `frontmatter(rawContent).data` always becomes `{}`. // And since the Yaml file might contain arrays of internal linked // pathnames, we have to re-read it fully. if (file.endsWith('.yml')) { @@ -112,19 +111,6 @@ async function updateFile( introLinks: ANY, } - if ( - file.split(path.sep).includes('data') && - file.split(path.sep).includes('learning-tracks') && - file.endsWith('.yml') - ) { - // data/learning-tracks/**/*.yml files are different because the keys - // are arbitrary but what they might all have in common is a key - // there called `guides` - for (const key of Object.keys(data)) { - HAS_LINKS[key] = ['guides'] - } - } - for (const [key, seek] of Object.entries(HAS_LINKS)) { if (!(key in data)) { continue diff --git a/src/rest/pages/category.tsx b/src/rest/pages/category.tsx index 0a88843cb701..2ba89b966ea2 100644 --- a/src/rest/pages/category.tsx +++ b/src/rest/pages/category.tsx @@ -1,12 +1,7 @@ import { GetServerSideProps } from 'next' import { Operation } from '@/rest/components/types' import { RestReferencePage } from '@/rest/components/RestReferencePage' -import { - addUINamespaces, - getMainContext, - MainContext, - MainContextT, -} from '@/frame/components/context/MainContext' +import { getMainContext, MainContext, MainContextT } from '@/frame/components/context/MainContext' import { AutomatedPageContext, AutomatedPageContextT, @@ -209,9 +204,6 @@ export const getServerSideProps: GetServerSideProps = async (context) => tocLandingContext.tocItems = restCategoryTocItems const mainContext = await getMainContext(req, res) - if (tocLandingContext.currentLearningTrack?.trackName) { - addUINamespaces(req, mainContext.data.ui, ['learning_track_nav']) - } return { props: { diff --git a/src/types/types.ts b/src/types/types.ts index 420fb9d146d2..223327096fd2 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -57,7 +57,6 @@ export type PageFrontmatter = { featuredLinks?: FeaturedLinks changelog?: ChangeLog contentType?: string - learningTracks?: string[] beta_product?: boolean interactive?: boolean communityRedirect?: { @@ -178,45 +177,11 @@ export type Context = { productUserExamples?: ProductExample[] productGroups?: ProductGroup[] featuredLinks?: FeaturedLinksExpanded - currentLearningTrack?: LearningTrack | null renderedPage?: string miniTocItems?: MiniTocItem[] markdownRequested?: boolean markdownViaUrl?: boolean } -export type LearningTracks = { - [group: string]: { - [track: string]: { - title: string - description: string - versions?: FrontmatterVersions - guides: string[] - } - } -} -export type LearningTrack = { - trackName: string - trackProduct: string - trackTitle: string - numberOfGuides?: number - currentGuideIndex?: number - nextGuide?: { - href: string - title: string | undefined - } - prevGuide?: { - href: string - title: string | undefined - } -} - -export type TrackGuide = { - href: string - page: Page - title: string - intro: string -} - export type FeaturedLinkExpanded = { href: string title: string diff --git a/src/versions/scripts/use-short-versions.ts b/src/versions/scripts/use-short-versions.ts index d308feaea2ca..2ab266c75b2f 100755 --- a/src/versions/scripts/use-short-versions.ts +++ b/src/versions/scripts/use-short-versions.ts @@ -104,7 +104,7 @@ async function main() { for (const file of yamlFiles) { const yamlContent = fs.readFileSync(file, 'utf8') const yamlReplacements = getLiquidReplacements(yamlContent, file) - // Update any `versions` properties in the YAML as well (learning tracks, etc.) + // Update any `versions` properties in the YAML as well const newYamlContent = makeLiquidReplacements(yamlReplacements, yamlContent) .replace(/("|')?free-pro-team("|')?:/g, 'fpt:') .replace(/("|')?enterprise-server("|')?:/g, 'ghes:')