From 8fc1a3ae09b22bdfd48b1956142c9f7537968dc9 Mon Sep 17 00:00:00 2001 From: Joost de Valk Date: Tue, 11 Aug 2026 08:09:58 +0200 Subject: [PATCH] =?UTF-8?q?change(llms-txt):=20cover=20the=20v2=20revision?= =?UTF-8?q?=20=E2=80=94=20link-relation=20discovery,=20path=20scoping?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit llms.txt published v2 after two years of deployment. The page described v1: it told readers to put the file at the root and said nothing about how an agent is meant to find it, which is the one thing v2 changed. - Advertise the file with rel="describedby" (link element, Link header, or both) rather than relying on an agent guessing /llms.txt. - Coverage is scoped by path, most specific file wins, so a large site can participate one section at a time. - Either markdown URL shape is accepted (page.md or page.html.md). - ## Optional lost its mechanical semantics along with llms_txt2ctx. - Adoption paragraph corrected: publishing is mainstream (OpenAI, Anthropic, Google, Mintlify, GitBook) and Lighthouse audits for the file; whether any model consumes it is still undisclosed. Dropped the now-redundant "assume nobody uses it" bullet. - Added link-headers to relatedSlugs; added the v2 changes page and RFC 8288 to sources; added the worked-example callout — the site already emits the describedby relation on every response. Co-Authored-By: Claude Opus 5 (1M context) --- public/og/spec/agent-readiness/llms-txt.png | Bin 19695 -> 22593 bytes .../changelog/2026-08-11-llms-txt-v2.md | 8 +++++ src/content/spec/agent-readiness/llms-txt.md | 34 ++++++++++++++---- 3 files changed, 35 insertions(+), 7 deletions(-) create mode 100644 src/content/changelog/2026-08-11-llms-txt-v2.md diff --git a/public/og/spec/agent-readiness/llms-txt.png b/public/og/spec/agent-readiness/llms-txt.png index 2550f32b38bbcee45bbe5e8db8303e3b1ee8e865..539365d2f07824895c66c76def938e7b2ed5ebfd 100644 GIT binary patch literal 22593 zcmdSBcTiNp_a{n_90kb?2nb3Rl$?|x859XaWI}T)xN6t$E#wBsndN=pFZ7v!sqmzsMlJ`WW) zSXlP}EG(RSLR<_*(h2_%^H1WnhOW}Z?UmdM6$*+6GrPb4-kjXt-O+@|9N(T@-`$+u zUKkl!)ifc(p)mtv!w!xfIe7)zIZh0=qMw>F|E7$qV3-iOsu+4;VUbY(`(R^bWYJ?` zJ;YK~e5va@yO$kfng4`7A}Mr2@dYCA4r;njCm3aylwNm1-ZY-}WF=x4NwKqBmZ(UW z=K{xVmnX#L3#Y^Z6S9Ti0hIDsBy8bWwDN=&Y~hrcHnxz6|Fqr1H2tIfYxS`|a`1TeeE>D>E9alZ@zCNB&v{g8zKM&9q=1TLKQ(TQOZxefpwk){BeI#*Lu##|I|ns1?oGw)lVq-ZSFUP^XW*l@&6XLj4_J6*Ef1Rb7cbecmNF27(p^+6aM_BfoE|6VxW`d%Mx zMp=Q?_dD%N*UmQ+78(m~k8D?VVqC#XKOrYNbx9S~!5UUhl5;d`8#>m8&+Y^q+%FtM zwHue>vqOy}rJzhQED8CdnN1!G!ISf#;@fM6xVw6hM1!pL+}H2R+a58ae7wNDa@mX) zPTSfq6E|P7jWn==xrSQ1=J~?D2FN6+4r~F(PZ%YgRSQ2dbIeh8LIU4Hz2tyqw>Rme z!R~ME7k3f(e0B->??dY=VFmf~q^|tZ8Fyc;_JaoClscemknrr$Rh()t+2R3s9{2F_UOY2o`T%Qjm?A?C&DV!aiUi*8gxu&s zt+l=<%}{#^l73+TztY2s^6u2Mp}I$1&_sM-LjwX7$E_YG3um@dm7wROZ0=={b2)jt z>%&v#ZOeWJDQK8l%-Cl+dGwk6Zc!13Z%XhDmr7KgVypX^b)gcUSGtKtk#k9;(eNNt z9D$A!kQ26kruMba8uf;lQ>t@rgT}Br2^$tbvfGzF)g~P2{{`tUr_{1^5A_rmrYQn0^!11TvP8|Qw>?^%F-)7+ zUbA*$N^-y83(>=|L&WW78mbJ4&ZJj;5-fP~c9jb#@>b~Yzri7~n2~eZ2r8;n9B+_J zas_Lqi;0uUm=aSZYDI^6Y@+ z*6x-`V(yu^Cg&sA6;6#|Ob3BcB#x$4Ml>$H4z&nQ=>|&-OC4IA>y=21ak_0b6`+xI zlJ@oD`wWLP_WflbXBDXGn8k)SA`d5Zm1s4JVY7@^EQ*y%YS8s~Y@(TnZX-EPhe;xy2h&`aJ*PMhx}kX1_jBz;h?4Jn@`UyQsPzT26Z#7dk52t@s|fein%Ge0U-@9>1aKR;^t=8>S@0pa9n**gBNM? zP?*>tXd#{uv-@l@=X!x$-TFb=YgHuWdCyI_pES<58_LAjp`H-b=NVnb*LkzOwCVAI zm@y*GlT)3UOp8Q$oTOaYUvPGvwp^cC?nb_bWD8l_ureXsyttMD zmIENV!~bpqh@3Z_PT+Bxb>OPQ2l2|+<|?HZ*)Z$FPkVa=he9UfOluczK3SRl1?#hJ zP0$P+<4zcaiVS@`Kb+E_KH;uHOy^zG9N+cu8*UYo&4@EJq)sEQUzgE9>Zz!==i#~k6)!j%~6}UN5AdS0X zI`5qRn4Hcy21K%vIk=|LTmKTl;uZL-+% z`PmMvFc^3&an8Dm&^7t3P2ab#|9~K*(J!;QLCfNN(PT7hBL$0@M_d_yq!3d=x`rSkheeQZZ zO$mt(6Iw6GO7+8phzdZ2=95^s`ElJ` zAL~ME{S$^ZNl^>r4nJ@+vpzn`Ii}VLC{N`Fo&>|)6O7(`yV5D= z|1B43+f2Gp^=%Mxn6Sqztff+UJt{}Lm=UcsV@-ER?X_pqx-&_}U42e4=^634%Cv8o z=TcLN5L(L{>D4f7X(|LZw&wNH+0b^^Dmb@(cJ9*H~v(|zLjC?BC z#qJ@&+W}OuxhL5TII$pPI&0Izk%&q4A9ehwtE(#+eDq#){TBwqJt!?@Rc;e*4quFC z-{%3xciII(9h`h)Vnkq%{XU6T8PZczwI)l9%}sm#F?=deN^*y8h?5cAr*S2}oB>|H zjOfmo97@m4;IQt1u>`jW&Nzpjwh27(MMBCL;k6oK{F6LQsm7j3o{y-=(HY(Ttf+R+ zA&Zv1A4TruU$gPm1&m_d!5I}abJc%T6y_A;mS*fS*4W?IIRUUbr?c8`OB;=7c|xey z0K^H*R~=bdijmx3rUmEg9A*=iiS{{ZSJ${9v%)T#CSkutppzBua`rZJ(!CN>Hkbj6 zkVf@jJWZSWj@eZJ=6jLcvEx>w^plfU>~|&KDt}BZP3o)_P{+?9FAmQncbK%a4x5DR zB06TNkwzT@0AcZg2>8%`LZw_Wu6)EQ+i{K>Exw3ZRp^;2#_z+BM%5VZpq_Fjc>ORv z9KFAa=s-X!^)J_DttwgefpX{j7{*K(omoZ^!=o#i{+XfK_gt8%G)9T}ja!ycd_l}v zF2w5X*$kDzxc|xQ07V)Z!Fw!3=;!>&QKmxhI5j>f#Gr6bqG}lOvndQ*?{TRixNN^0 z{56$w8QAv#lf+Ci!Vm4UjPcP<2Gx$GvQSc$lV=os%^_747vO*l* z*nPR>ngRCe>;d2(Bk~OVJ!#$=SS&}OAg3Q9$VxpDx{1fx z26#Qxtzh2$8Kt!9X__^QGljsj@CYPECjrd*wv|;KjJj5p&P;H>8T>q_AGga1$H9Z| z+jf8rtT*`x$$I*e6?GA<7+digB>3csw-kI~`Ox7so*v`myb_T1{3zva-B(lA2^~hs znp$})r9wAR?M8iCHs>`+MjW909)caPA+fKIP2UAN2C(3T^|SQc-Y$gbBN=jxBcr87 z>o9#xH?^%rTJZNmW_|}9r`@J`S!|#G8M-RjHG_)4#o?|;UrqScap6t-6xZ)|$)HM@ z;H@8`7sEOGI-m{=WeS_08raZGIWm0v0=dQ-C2It!rTLqlYs7nYt|=9_&6L0jlIwj~ zQ>EV+{Olia&) zcY|WpErWOc(Yk{VX;-O*;Gj4KOavSN(ys(BSVSsao3`xvfXQi-?s{cfIVC{P?4cDS zik@UjXFpqtXKti4xA9EIw}M3*mp5!HSv)a5!_4fL?Z$H@x>V96LXv<;hTPKJp)!Lj z2B$%@D~S(=HRcs35=|Flm!Ln_a7nCzI^Jl%i}VHe9co&K;dA`*A}5OLylWDoUT(`SU(XA@ z=mz#>kI!s^Oi$>eg?=vck~@rhv0*md9$-VO4xcaZSg>d*YZmH-$ZP+)`SIt?D|(to z-JksM^uNtd^wcrCzKdF%V`Joz(BiImX^YGUP1ht5Xbg&nsKyRe)kQg^PneM<{83l> zC zea+{n9R@)0+i?H|-89&y=RH>%~T?{I4 zmCM=SvoWJUmyJynyzA-^F zrBQFE{s{H6&DL;2OKLCnwQs)SZhW%a`A2$mRnYlIlGi`ytqi48)K+=i_sap%6V;vM zR8PO|JnEqP>E_jlgSwtTZMBVA4UE2)0mhh<*3+6bjCCz^jDI~!u)Xz;2Vjm%j#jvr zwW-?dN+z*x?6gOZ%hc-(vS{4s*SUq)mW6zat-t&9Im2r41qW+f9nLyvT}obp{Z$%DoDFkW>DLK8D- zSbTOQ8+KB68nVh=H>7iBOzmk9WRjxh8ud(7?yH3`M!V)(tYNA>z40}KK3wru%wn7} zBf6k%mMdKAT^dq3Egtw_)AKesDH|W}Ta$s5cBV4!P3eO9$J991-{8Um-&ffGHq9?L z95vp*%1Ivlk3a8)SjUJ|>+GC9JTtY~Sx2lv_5TGr7=OT$jCimXuZ{IeFR@LCY+pNCCAs@1Q2*uC^#Is(*8lhIDB zjhD|`*uuYXamG4JtzXg+i{?gpa}M~7xwLzn?t0I(7Ca3!8A79ywknwTqL7%(lw}22 zTwDN32YOpw&LsF|WV)2fk2fo1D#SlfGg{<{xt)}iA}!nflIF@b%Z3-15PvDfBA0gv?WOf?N6<#X_kHF*=#pLL6dnv~@s3mz;ihavYJPInga7MKeaNI}<>w+X= zK!z#Eo-3Pi-k)0FCZhwf0bVnU5t-MFYZBeB>&B@4WR)4lT*r*6>p-CHLy_#5M<_hO z9+_;Z=J0skhRztK`U|qVSqPap-!UUO8cnydd?V59e-}Wm?%Xzo4OL>l5%`CW$UF+K zJykLV^awvJPXT2%yAl$F3IXn^@|uKPcrX2w)%XuK52!Etgpn&q4~t zb^f6;Xa-uesk5xX#=&-ga`}2r#iP4F!`io-4DF0v)EwZ7i3QGJ>{s_M_sIujOm0S- zg%ipz4-=~okbO&7G1v8_%3F_d(91Fr8=));vI#^>)gap;*^wIU;b~hbI`Fs$17B_Ibtaq%%A;>?kk`@s zh~>g7!TXm)?cZQk#{YlD_4e+eA{5yZTb()~|A4GVR8iqbc}x`Y?<)}$gFRyG^nXZf z%(PL8n6vcXDT@EPQ}I~D}Nl3ueOw3)K1oog;kny}=k))fc;qm(hKl)`@06AyJrK zV@=aF28X>wNfDSn>Ge}d;LVil#OSUSe=UCusu105#0I-AZs6&X-@;?Y0DfU$xl99W zLtnlzUU9yQ+i&guxxI7i!}ze@?(sowNJiO3Gd+8h+>>C*%7(8=K{qNs7pI6XnDdHf z=_aGxwg_2p0p@-GN`BquND$NH_=)^}t$Bms8`ByLHvILsE*rv#YZTekI`wUrHNH00 zpwl;M!y`wS)p_?rj%Esx*jv+yVH-uMg|$T62SM@^u{VN#McyZ3j1eYds%=t{UOxBG zH=h0F8rj-f5Xw|ZrQ-Vfac=pMhPDgz^+G@v;i_(?Qs?~lv+It5aPI9k>F*IKcf9sN z2g@Fc&Vz#=B%{4R;GMP~6laFthYxbNUDnaUZ_|A54%(9QuHF@Vstzc*K3mF6W)(?j zuDR8QrX#1YE$wpdbaQU@aAP9O<{*LJV*ae^j=Fp2$Y)6(PjE|qq@aKg1mL5fS86%U z3M#NI&o^pO?U^=-V%mlB0%A?#S-)6mz|b>%@Tg1k6>E2|^1W)F-!Bg0reg zHg^@T6XNB^5@I2yt?-u%a*V$V*o|bVlw*4pFMkbWmXpFyUGBkRw-OiFWuJM`&(3J} z$zb!^q=lTkp;cXClp6>*b~$5sm2!rRBZT4VyQ{N+@tEQT*>8EX}mvG*Ezh!U}NIA9*|wKT4FDXu4a- z<6G$oCT#atmuTh>rQu?WTH`?n|edFJqp&ztmJ*ElxCUMamLA<=* z`|IPSh5FWK-S2~0vE?q?67T?BdpmuLZZAG&7(r17B+tMb>|@}O@Hqtb`-@IRHdOV) z*h^0-)*SV@cK6Xki~e_JUG;>ZG;$f>9Ue;AQ32ngyHLm1tcNm9VQrglf1m5aF#js1 zZ>cBS=@}(5I&;$UdllC#aCSG*^2VfHXuxF1 zx^Md?& zSmPPNFr2bgr|MKm776JNl6(_Dq(=d-mjHC%qgsC64YWvLM#=xKG z0EgDVGaR|oInipnZ{_+<<-W6+7kRsVW;h#8Ejc_4jWd|&GwHgE^f`|zFx3qP>mduxmC;ZDAc@O@k5CK0HJ3srQc zrhNHU!O|WeyYGBI=kU|x^iek>Y#3A9!@7*{gG%iR!vfMNdwFxVBJtEH;PtYRh4!f&E#X^* zAQ+-aiTosjf7 z+{!J^M>qCRuY>kCNe?+z(s1cEf(+~){BYrkY_ig6(s0Bbi0Erl$^w;cd5o4&$T5q+ zi?Q|lM;IzoL^zRb0()`YpB<3ZG`1T?O_CoWmYeI4LpM*s5E3JRKC3<&fCq^tv z-tMm*R;i22M;)Zr?oZjD=GP>OZw?ts=aaS6EOaKKsp(8KeRDwRg3#-N1{qqgU74Av0%ac{Pj zgQ-V)ZF}Pun=dX_Ic|h>3UPj%Yc_Xq_0-h(_;Hu4yI7MSg(pD#sN1dy>oqo|o5P}g z-teX$YVmh87qSnPckOKsJUku%q15Hfikz74KK2f%kkW1k6heCeSvQYg6{E^ctU=wl z*OZrgo7HtNU7~{(5?EDhOB%#S8#^!=+)!45|&^ke{858`@v43?}?Bj+4Y@Y zAF&b(e);;AHM9Pw-yfQz2i$RG>bF7YI|}O63YCg=fW0yN()Vu9eYLy7I~}0{ySA(8 zG|Nl%09SbZa@mW00sljr&HC*%_?l*$288+}*)V%6dn>35<;ikCqt0 zZ^Jk-71v8td%uv+e@M*WDsm<~Ori0BjBnDr4pSQ)@xj-B=6K8l=;}07zMdVeeUy-& zGFd$HGuUh5NQxpN`+9Ky`_E_^=;pIp>ux(vKc^DYZ$ao3Itc+=MZy~$i#V_8EfEW{ zGJ^ik16dx^cCC_ieZs4``pUI-Xe}h7LG8kIK_*{M5-^grZ~+=j9!r~m|L|Iv`C)?=gcvk zGp2G|LBuzw)O04!SF70F&<>s6&~wNT4V|pHn{YgjxVmq_cAU|kfw*iX0Fw~M*+(T5 z4+V_!FgxRx3S@2QYf_T^r-ME8pEO!OMOA`oUeSw`cUqHxYttFnEeqp(ld(wh= z97$Fqp5Vh&jQSPRiCE}SY< zhZk~ONn{D4qx>SNx{nQeKbwk(*?2Yv%1gb6nx?j;00!A_C#Q4jCVl4b!dp&^J)+sh z-GyE#xT*fvU4Tv!%&h#|?Jd`&LcN;#{OL18>P@gw@xJGhz>Wpn4NvReoN!@jZ{8CC zJ=OtLAn@d%KJqZ1CKqur11CSgRL3#O-;Jeiavn0oQHNU=AcroqhwF1tPtnme(q-6r zboi*}4mEqt7k;dOzyMnjYMuaoo0IF@&fPA*H5uZSb$>ID+~MReu`=(09}8@@xsU)O zlV$stqZgM}Abl}i^iJCG9>IBB^;{rk6$OdmVHr~wy^`?B-T`>L$27ivQpXz{zHqZ? z$hP0ps}Ayke3gm@zN<#AJba9BPk|mk*R4@#N6@F^;L+imv)6x~)O^B7B!m z1AmzE5m*heKKVp>In*vZHw0G}hwo%?NwDf#BYN%P_TJ7Wm(Sc%F1q_E zZ*AHn+*1f8ZV*&yaK=X%5;5X}4{P;m8c=wJ$dnab^xD{N#d?+S^BHJzmcx3GO6!|p zc+$N*b5i)~5~GhDJg3LaQzqglkAVD5{{EC;M1v1_@-gj8!W%w|pJnw=IWRT~7q+|z z2_MnMhAsF%5t1hi6tjpsF2}3~F`yqA#~waXe-HNC4wI_4;lh!rZ!re#1tt-s&`9tB z`=jHGF==26v%Z*PG8#Kd@p6%TAVKDA#VCaG@>B>e>OzH~p~y=+XfS+Tpp)YK^o(S!)ck-Y0J=5GJ?i z%g2mjk&uivZ+Kpgjea=mA6#FvnX(^Ji)MGyZ`Qy;Eyl>3d^b1xFe&Vq{A%7-znU4C zXtCa+*qz=ZGWhbwTTV;6?)6mG{-52+eDf9HBSSRZfkS9PN>EclDLLBciT$dwxtpo! zp@_kIe*MteoR{V@Ub8>&!AB7&HL5AUN_FXZ;!1w(ag7-xMz^?|xn!}Vg(amg{T{gB zA+8JyyC!&rWZT}}(v$3Ftw+qX<@>0GJ(`Fq`a+Nr68MJJ2_P5qL<2D>P zzkuvCM1*krd(QoxdAxrRCW9fpDcYe{XR{)*R#5N?gd#WV<0W-8cv!*jPXj*OdBxYd z6XNBB8(HR9j^ohseB)ViszH%6c4_-t7GsNrMHz?8pcYRV03S0r`iNY$I6XJb1nVc_ zXs$j!`AVu}>%;NZumg?plO!rh0S5&^)N{@KOK?7laDI&SQlUo9?OFwc!U zp3&m$%;Re7`B@t>u|_v|{-sqhf1jPLe^b_Id-WKiWJe=#kQPPQE-b6@UCG%v&X1#C zc0?jm0sLK4JyU)Dq1e^yCiEC=?%4PzxTK*>VH)*1Ls!`$hy|Rd&c^>hlm}Mi>|>TR zJe<-WzVP*Ce=;aWz}l9@5*zM#Bz$EBURSdq0WxrCkfoa!MF%S#pBwxBhRuccxa6r_ zae%TbnX^5am4^B>e`By4DG;n;#NFG@$5vZB!t@EZ$tMos!N1_g(%-LD-%|r!^eb9C zzl6A|ANJIIVRGz=L_k%3PL%5)p*8vDg>_Y(6Z+Bjru-}aXot|b(5EYtIc`xtFM zp0Sbp+4_dLIts19w5N%|5R&SpT^xCIxW8uVofZ~f_;pRCOx`>r;}nzPMLjtCv*z|T z*8EyPP}s|Frlq}#b61uHBv!N^;h%{~0NZNw~(_`~`zn-&xaNf%=WCca+3VDPKBNV^Nz7J9=rn z{BIrBeuM)M?QpN2r4%OO4cq#GnHw0d`OLhAB(`s~1a!ZyBXtA(ie}>4rjW=SYCWNp zyjT93a3+BU%+8cJQge*=DI!zH?9~r%f(0yC-?;}vIw2qCENi9~NW+i<84vRXjihPR zx+<}FbLbHgl90JqZBDm*W1Lb9eBk+4{|<%nJzjYTic2H)ZDK`DlAMs$KtW5xlxkv$ zDogjfl`lMCsQTqh7bllCQhg;=E!D^nJ(JhvjzJfWv)}*P9Z`!O_*J@@7YB)G)Hs*$ zdEuWNZTR8m@zhb61K%_O-4MgyE683d&4AQNsIpk3<*TWTQJ*R}^ zR4#f(28}=>b{P*J(FKZMC=S;mNM6Pae)BawdFMCdSZ1Se~KT z6pdsAinwem=keY6x18MrLH4x{I9G@T1Pj<&;EkULN)R=;WUf{M>V^+j z7z(oY4zcgImel#=>DIupweO)G=Rp(7dDUTvUU;&oR`{U|#Y?U}480&bA!W*Z)x_7= z0{*90O!mF`CL#30={vRO_!`7Xp?VHMr>v8=UFrQ%*-Sb4ch<>}Q`yW@oK}3kgV>K7 zxa98$EzR*@KbThA;w~oqX=cqX;?ptUjCM|7#t8)VaT>gwU~Sy%&@Sw;ueNkA6Ss7R zO_LP;Up#5WyRBtM*puRZaOJ>K{jsZ~X9GK_w5_+BO0 zdVzl7UD5!|awUnzI-7v$uBQ6?pn{i7m!ZZ?)Q-;7e!uSRP$^LRd}ZXrYd?}6=d($w zWSSzY`=Y($oP(pZ0zDPVWdfWDK?$*b+G{xHe6O~HM{Zf$@nti$Z zQt4+5E=JDOo>8S+HlFulHON8}vi3qZB5X7woWz3P#vF^6@0kf63IYO$2{d_P!>hu^ z%T;^jFJd*$heRWet_-JzPIUJ1^~Kq_lKFAa4>!|4?E}Nn-elmR(d`hufq5)64uFLs zkJ|rOj|aD4>ooQLmX%tDWNg{1-)m$-n|Xn@J-t%hx2rvmR6(tc8^DTveg{}8FYrls zpIT@(xjNiPllqmxCr+Tt@)t4RWLjP&7y!r1kgG>5YeF_800A%g`gX=0X}TNOLEK8@sJ!=G*lqB8xu2tNvvcg-;(f+3O82%#<9SLgAQ#|Np+m84ZXm! zuie2oyc6d4{pc*~BvwZTRVJTJ%I*=+bk8o&vYY}-kd$xFd6d#laRJ1L(`VwVm-3Txmt zDU4xicvEa8X+e|a-Oku^!p@Dkt?T_H>#3|XE%=#<7Z?-iE(4CS@1h*>Ejh;-jQ5{s zugsvex1WZ|a^>uLfuU6I-WtWo_H(F_qQyOFbofI#-K}~T*0SCdEF=}F1!02w5z2;N zX3VJ1ZjSCDT33!A=8gFOSUA`*T3GiLRzz_MzXyTL z=)8F(&uYM|FD?fn>O3zM_a7a8piC4gWhEc0zH#0lS#;!6k0eIwM;w>t?l`u-f~G|2 zLSo-jF88?gGXU3X@7_Jhd(S9y_%yB3j;f@lrmQ+M9T|N@nD?bgW3GgHRo+fx72g9R z{mfI91)mT2vRy(Mjo_+SlLP*Zv@_Gbng;^AWE2%P%9jyI^2sIH(e1>ET!DS93Y$Uzgi6fW_)Lxz;=@Yd6#IWyjWeYfNf4~M~p<$lmD|WNt zXmVbkKR-mEG#bg}G6vlBW84n{?kfyRC8@LSyMc@EN^JB3NQ)G)=e$6lCIZB9^&24t z&VGcv34tS~ML!nZPgel)_4v#+o-3S^l(94hKsd=!`1#wPgSLWJDvLi@z^4snAq^MR zU#}|Dt>AAFSn6xPtsSXg8vSOXG?}J!Hhbc`n|#os0nf7Z*UNKMS#}<1%7=Iv zE6k~U?iH>Sg0q<@WPb;Hf%94~iCJBehdL&G1-~_6pN@prWxVQkhNe_Y?l9sdh!_nh zhPt+S%j^x+;KPxWO&vvCX4&pJ8q~GK>Y2%QVgb~WI)B9`t&@o9X_>Fa21C6l|DOJy z$04bIAmN3jh_3U0(}e)1yg$(27VAV1xL!#nS~U`tj0Ab%UV&h?8{S*}ZB0-pMm z1;qQd!&+9dNQzTupVR>hto`|Ej6mJMdXI)PxPZR3YHT0{KHtzK@Zf;OcI<}F;MsA) zT~=Peg`T0mXh2)XjZ16D9^Adbka0WFGq8vkgqMf)Ewkan$-@C9t^s6D&g{}JA-;q; z)ac))Z5?4F2~7P^{_aI;#o(8GN6UHo=)VWVfxV7|m~)-_xr8DN*d@CMjGWckid4mA zzQiI4^da)0TcUSyQ~ZCr?2m;35B_&p)`%E3Y;2>yVk2qz=*OglP6S$MZFxt# zkg`{TED8R%*HK+bJXrd7sI2_?YrUX-i8)J2?}WSC#~I}^`sd2(#T$PQ)nvBc81Bcx z$KMS>mYVp7AQzI|`Zwqva-Zf1=K>Tie53!2)WXk9Gx&}noz68%ukP?LLb=`rb`2jR;jNLz;yaGZ2p^|mJ(RGBIy~KMD{ZZjceubx<;peq zUL>P!Z=SwAy}ML_g`OQ)*7Wr=YB)66zlYl4#={(AbLDo>&|vT(q5H)jI;B8ki&{a6 zmJgE0H7#wC$FtMN8+BJ9wOkkzl`~R=FnQSy1S}i3Bj(?Buk9YVudut|psO+l9CMcO zfi?dQ)J}3U?60e#)o6Koh7VZ@C$JV6aGZg(Uvert!%;Vrn79viP;T92X>{2nFKr^i zAa_MSvp>__RU{ZSi21V|UP&wS3*+G5xeo~)KP~}6;XHTiwW(rW>&d1oq30y&QtN{x;k))YxiSL>bK`X{U-w{ z+FijnymHDk<{pxf-rvmMW>H(d6K&^4`tQ?ql1OTSg7sZJiSud07&uAIN<* zO3{@PdC?EYB_0b-s*|1jy+l79~5qRD8XMP@^-0NN1`q{L~qK2+hy-`E-k8L z=x++!k>1KD7x@ObsI;XJTT8j&_Y1oIwdZRU_B}lfkw3gz<3?bGad)NaQvnjI$jq50 z34@Szfix5huQy-s_Bn-hjCJEg73RkF`|!IV6*)Ax>6!%S;VyS&wsPj-qdjCl+&7h!mpb`@OOSiR)$f>P{G}KPlTd{ z2-HZ?AT2)3{t$DkoHcf1x#{?*REfT*e2w5mS5h{ga2Mnh2n}{rM?Gi zAPS=1KXN>L<}I|Q+RboDkJ{poZjy|I_egGHtZ>num3<(I$IsVFx*5v&{u}5PLb6EN zNWBn|!f26bs-*NUbf4drFN;2NCp6Ax6yT0bnR_|;C_^XQFs+*ly&8-1-4=$iS$TaL zsTGmt%+Q?8vLok9H^T>o79IulT|G(RUHht@HXueW=w=Wfvyl_eU?$(egqB8g)<9DG z9KU?`WLAEopBpmCY|j*ulAZ315l^q-L*EBS8*5UjDO#u`3Y5YRiQ@e_g#&}fw>2}! zFa|GZM1xa41Tw=q=DhSIm^c=1Ox5CePQZ?u+X5XIfDT-&cIvOV-EP?xmgTJb8uF%CxGxoA>@|T32d3FV}8# z)h2qh#ka4(eKuLi(?^tnrDZG~z=A~^kAtME>2AfoF%(&vuWX>%LaE9q1rdgLcc zXhJ@TgeYsl)Y0+O$KR$8OpGDl?cYqcv1Z2JT9cNdE{y&vRVn2Y>TrITR3cY9=g8KP z0lttBZ&vY;;bdB|$^ZhqAiYL>D6?A4lLv=X8S<93sQ{MxpnIkfvG1Mj<%{?&e6qgT z@h2MiFsD*q5_lfEb*Ufh$#)q1aWEwvrf|>mG&;4Yi_6sYqb7>ou&(vZ;|MS=jOpjo zlo*}3-gN6;w?74_M~)fzjgqXrrv+Q&D}@BG_or6E%bE-vfNp%iwvF=k#C(y+`D{D! zriRQN2TgpOx|w0HD$fcEnezCQmd=K-^x^Vc6z zJSY3H8Tf4N{hN23xDNd~jfDUvtl$CURl3($6vqcIyezsQxW&VN1fX8UDH~jXWp7G= z?KO+VHZuC;!BnW8_W_8USClxlJ^H1x+us2RjYSEr*5l3I< zufwW(Wb5OA??@^d)xy?Xv5auZxTjylLMNY%*J#!{Xm+N!;ns)JSV{#ZJ(ZL&C#ErS z?7w-Y7w+Gc4&jJg*95eBxnskY=-2jP!aTJSf`w3SH1E@(;qK-v5ofnPK&)njuQ888Cf~nYVoyARn!mg^^4mUu-K?~kfxXyVcKIw zewkXXKC@Vlf96IFhE}2HtsWHcG0X|9<|rW)#z5@|jpAk905ZpYqY2T(QZfh)5bMxR z3}hS{xTA}heZ0XS0*hE1l+y@SY1Gn%5NlKDBuofzLBVIm8cqK2d4_k=ghZT6nA7G0JUy+z8mFl2O? zkJ_5i+?!){mI7jQ99cG#_A@TB-hE$RG5&b1bwql)1A(mt z5mGKM@m&M@3Jo#nshf0B?(t>}I-gDyt3$J~U!ZrRpEXjAC^1r2AVehmM;B+pgic=5UwQ(q zl#|_i`cGmKZ?)pLspcsD=46WZkJ#1^LoVFYo|lXk2z|1y`R@FRn8AZcvs1nK;vEqm z>kQAZo$6J8m+RE4p6xKQMv9ykzq9_hbOF5mg}5#rZ1t{_w91yZFN^jQi(A}dH`oXE z?)5(1tqbOR-IckS!X(AyMfBZqu^eT??qrxZ#!*S)Fbq=CzivrlR?H#O-?tZb*&Oh^R%M;Cl!eVj1UXd$wG zz#07kp08klDKYtgOB$7aaNiZ;>hFd#Yb;<6LDfQ;#JWI^YF&N87KDf|X&=GeB(|Ue zNG8elU^m<(QFtP5UU@mhA!T3-92ezu*_}3*zF9t01*(&$q!fV;8XJwe)mN}~Nl&Q1 z7!X+$iwDNG`nFh0?cAF-me-4kja_p~+Q!yJjioPi!hm^ut4!sGAhc;QiAB22w0`q8 z-x4E;=jzcumOgikW0ks3Kl#PRXUviP;xZ^k*&Xyk29Lk`y4{!yo|cZKO5u$JoDD` z7E?H@S&a$weSVysQ56aIlY{MaKg_;ydmoTNPt&SVCe+ac0Ee6)&5pdtwO!6_#3q&~;7EryTHE33H}@~e4mc;4{v;}4 zpD*Rpx`QNvgajRO|J9HG0QTJ(yf4_1{*Oi%j|NrFm-T%DpTdHCj;Nkp%^!tdu z>=AcpH8jwyj)lW7af)Stfpz}DhAW<#Y=FlBl3Uw=^|si%^*z{#Kc_y1Jd@(|!A6Dj zPg^gFB}rl26FLh}>vci?j5@)l;LyYoL8L5;VYO}hcW8R9?a!O<&a&rK(z+jna~Y zc#e0z19AO+OyEm&yJQ76I_q?pBh-5TslrqUjTz&+HeR6091oLRvyr}8F5|Lnk?i$n zuYpl`kiSGcSmaCEd?O!BU9IWkE7SLL?&w>*08Qwnf1iwn8LdfJni_6&`TM|ravl>8j zhEwWebVHI~mk%(-J!v#rN2HMFx`Q1Y8j0XKw_Fr{WME{^hNH`Su~FR80mp`UX-Y4b zGpTj9c1CB~px(&bD|Hnd6tLR-0?Wa8ykNmtT!Fd3&$ZsIVw$-&_C!&$67;}qTcVo< zSxs0`IT&cu+4jYQwCtgbCVPvm?-)1lndlIGUmDk)|Bw*>=fzJ9A?wd_Cknm5x22U% zA1@FL=CBe=8{vxgI~G<7_vhP|Q~v(ND`Wr%Z6vS%Cf=&{Sb~-@tX6MgF7IzdIw3S5 z1K+v%bi7}iwIAf3vs~@44XzDr-I2NQYL>EAHu*roqqw<4Y=Lu>A^a;9kvgS|9WO<05^ksSR7f)8tqswz*c=3Z;_z$=Db$$!gZFN)ivyUw<=!i>;Qhp!@_Kr~DbT5ZRG51qc zb9=6BcGZLG1I=E_JpqtOXcI z3u7!w$f~YeeV9&lev0pP>Cm@b?te}_6UfXW#KNM3{rg>juB)h8853CT+ikxbHRo!- z0dK7@Mr6SLJ=kkh+o5s#ES6iU-kEGiB{uAkP8;HRt`=FEUs+k-mm6htaYlh)P&%{s zyBo80_!y`LGRm(*2|CABViQ1e8d_i5Q33LavG!N_x@kh?Dqg(8=ypbBv>1P~_@K=5 zX5tDX!S2zXg0si4p_9@nh!9P5o-RIY_?few(L?xqcwDmwHp(})Emq-2>nvezY9bH3 z-Il>%ahHTC#@&$llVr`e-M!cHVw^lcKcn@`v#Q{i&Af2lt7#lGb0}w1rzdp2CyINp zz7C2+AWM32;6MUgaM96B?-$9U`8{AC4<#L0IBxeYo(wp&9v4IRGqX2`%f5ZF&MjvJ zpR+>Lr2fSp%`K!=gQGU4;o2MJKcAPvZG!>YnbF3}EPYP~wDFNmdo(XeA+Z%P7eBP-Q4%O;d-I*Ev}lRTh2qSTfc|Ba{1dtRU_w9#iE>iWOMY>8*Qp@yoKK z$QpugPq|aQc_N&HNUamG`52Tnvjz$nJ_ZdLHK+rxEsPF-!}DrYbiNod1MjnkLwb^I|&(xlO6o5PD+qt z5~=Tr1Y^uP?|qDhA||UAg#1V4gsqt-a0f)IM-d3=d<2&QKBOk zg@q;lhPkf+9?xfwJ{qv#z$>sz@ilaj-Esu?3M|WqHLeVf;oX+OK<9ohjG$5+RB)&w41t8^00RO8C}0d|0s-kA5|Ca5kuFjqT|_`2Kq#R~ z4Ml2b2}tjuD-cjZ@jEzk@15_ib?+Z@*ZnW+?6c1MygO%|oSpqVzdniQyfUI3g$^}m zaQDRmvqx3Jub|llc^?KmK!i^)z{E{iadKYQFi{Uo$q6al@Uv&&fBDV z$#nsbT2Z|hJBkVkwTU^3jUuAgR*s|^q5iiEL935lp3t3N)hd zLNhhQa1x@gUz#F>Diif}mc+q!bX3YLrGZsPsSO9+q!nckyWgc$1jRv=wgmJ-^bnbL z-c|EHkPRD-@SR5$cN>Hc>)z~VSBF$)MSliy5N~UQN9jKkX3ce@V2HU|Qs%!g!Hyo8 z!7;x1O4n3y40hFTZ7g>y0%by)$3lq7=YlFbes&L}vB3qM`Q)zxflM=O+r7eecN3bf zhz6(@blZG5zR;9ijErlsLg{!P7+O|9bHG_e*nqAo%AM7kEwkeFQGN-H_DQD1ntdDg zCD~ukTs1A}#P~gSmkG0kKdVg{c2Atl8I)}s&@s?dag+3unP=0uz?A{g#v+?bm2Oue z)K`UG@sYL<`hu&j$uwY{IpHY#EaPz`T;v_a(@mO5&4DBQgjj5)*3O-V8T?k_4a4lT z2VN(9LhUAPFLy!Y&$nJ);5pe=n&S>v^@9dQ`QIGl9do;6BRKwsb_w6b7mJmu&*#dK zpWk4}Uzve@bxtWuZD;i|?O6QqMY%xk^<>K<=7X!_XV_N5iO}HK)VF-emo(%kEX&lF z62|;R^m-|2`aZ|mmK71SVc}a-6)71*o3JpKXA@Dfgvs%>kK4f< z+0U%A%CC~j2(OlQg;G!A%9gieHyxv2Hgq>au_{1=tes6TL6vm;m8r^Ju}( z)?XUzY1u=jS83X$%%*dDc5K`kvU)A!?fpsn{fh5G$2ooqe?Im+$D+H?FEK8|Iu{H& zW(6dBHcgmez10|aYz(VubsBlCX^2Djk+6E3Y-+xk54SmvT$d%^dDqo z`flDFwMQe`q{HOO?e4^SoDy=P=jrm?aLmicKUtrDYf}B88$8Xqp6F*XkC-gJwYKB{KbH+5DZH&aYPR9F9ienX~5+**tLt8=nYpAIDt^sr$HOHAM-&I=AhoFpE$obDy4^TIjQn6!hNF#0U zTb5q~^fBI%dwWG&NjcwLj3+o(t(xhyy?{%hm>$c*^vwbo?$E3*C-tEz1{pHr>6_yh zMYWjtDg#!?d&5dfcapS-?eN^c(EDhtVPtZf1qb`OL6=aNx)fdhV2Ef;Ii%8FhxMAK z4N6}`JN%I`e2b;lB_Rgg2>~-c1b_Zeqe?nVx_|S_&0~-OB@yyTA%kScW_PBDPV!us z6LF-o_&Lt*S@t&ne#)9_3Js^8bLXWzl{a5<48=@3TMR2w_wetgpPSoP&ZdSs_h!gF zfSy$+EC!KSIm88g(@lJPcXkvlOb<|gce&)h1prPI#bH#Mw{}Ul6&ba|-8~8GQF7e0 zB%^?()~xaMIsQ-#Qifrem*QD3?+(EwSR`Wh6N#h0I#C@%Ypn;~V@b4MHz04~U|W(@ zOOuLirhG6jWyWX2wSFBBtM~~pPtePOu4A2M@vxMK4I`+Y2q3fRkl-i&xfp`m-pxCf za4PMB$`X$qlbFIyz%JMJrvWbZFLxX;4txa6YCvG?Z-%+QB3ys@<^E}cD;Nm<{m69v zDDuONcYNeWIY9g02LZPQ;MM!D(f>$;{kyz>*RHhw7wqc)K%DxqWc>@J^*7$s-+5LH zTz>;v0jBK#ToD5sZ^xDY-_cutQosHur6!CNAXWFz;&*+YUE#>bdUxMdsK;yd>x?J0 z_wcSbRZ>b0_xChqE&*0aFHGo8UPvUEV9ISlfO)EnZ7b!=a;i4;VZj=!JrQwnsTbL0 z?|2#VT+gs$PWrV<`VkD#`}K9fGfDMC=%P>y#~FdIG{}5LeI0H~wUa0USL>w9%8SY8 zLo?f5lI@|!uBna^zEJJ#(Pc%}b+Q~1;Zi1)bp!hw%_6N^?s>ty#T5+?t?G_ncvjj* z{@C!iX}cA%^n!y^NJ!emrQ4Uq?bB^U-omfR1pQH$o&A@UT*^cgf$3eraIT-(jG^Hi zzC}*vqW@_&DthjG#0QT-rCnBs;vFA1P;%mdj49+-+lc^*7%Uj^^8_MHAybXMnjh3R zYC=>kAQBYI(+|{Mk0XTn5IBA4HFe0_Z(*l4(I20(+_)l@Yj09%D}y+dxG6eN!lL}N z!DsLiMRNkPycCG>^6><$gzi=6b{Q0#QOkX^eS`CX3wkTP3nSikFA59{z9^^!cXCL_ ziL!MS@0zNXHAM~z^wwEo+4${6sr&O~a!dQGUzDBU)!AZ+J)caSC)6BhHJ4kxShWZ} zM5EZ0kav&zvuBY`;@9^nUcxQU^YYIfX){tXdzzi5QOtO)j|`+cHNz+yr||`A5WY91 zvF1XTxCvj5VXp3`0wD!EE}0S;8E(LXHq0^tB@)L38SH8l4u<@n6K#3gi;h-CQx!+@ zY{0ofgoKWw=*#*w4sX0`Vr1^db6+_)3KuO6b>90Z6%oQ#VN+N;cV6p;?1iK?#7AF! zo6HfBtFx`QiXNs>?UG$Dqop(Irn&p9coSVeN@i8D;06_cEAbLyn}caj8wLux+2^qL z4GBfDN)B0qCsS>DE_cTgDNv87VYSTtJ>q6pk0D4XW0hP)-+Yhm*5RuGS`(Q@@Ee2gANHvfcH z#s(~eyypV)+pbwQk0ZWt;TKu?pU9(8zJYP0Ybwf~F*CE42KIa3;*cR_{(|L2y#-k4iU*!+)R*_N08L}sJD*`TBTW0j>j4-a!&hw#P1gA*OtT=sJwf*3ftfRRy zpWAyF#0Fm|vsKDa@SbIkRX!Q=rlR4>Yg(34p?G}P8`bn8@e#jI^I+qz4Wh;WQ1s@90=|gH8tH5~ zMBvwA7!!*R!LV6F%c&c*?`JV=Q#U@0p*q|J5_XpyO!F-3FXPAW3QN!LNyJHQWGt`g zMf1Z;Q`PQsKZq!06Jy2qaR(;IVE`sicOSVaXE%wbQ6ymO1nfR;w&+@z*``osKC!$y z`ZKfG@G_UXo|;3cP+fu1S}4G}=xXM=lpNA;!>ttxQy&}xiAH|s5Nx>r@izZ^Hd$(U z_{I(4yJODqeCkaV_LIk)sclsPfrMnH>^&!P+?Ozjl~^=SC$+3xJ5f=ujDL%|@CmhN z>l8~hxe_rU}&l>cEY485D9 zaMsQlqORV0qRWPiB5zxNq+-t-D$_`Ousr#u(_z8fC`up(-1-dR@F_t`rV$z{f~I(2 zzf3WRvQrHqTfEHC>CHm#rgVD@0|H7s@$X;Do`n^t}#{(g@iDa|P0V~c(J6V@)j23zI(mN z)kKkolRO5FJ;HUtZHvA_#585gl6&VImBt3cDsXl3GmTPn-Kr1?msX0XW2~ z1KLYY=ZXaQP_`Y!^~Ux1mt(ZaUtAF%{S`h7_nW%+j$BkL*XC0buR^cZt$l3NxYioj z8OmR@O-)=8NtIOh@tUBDTF8Ya@5QhC8TTEQpMB*96QC97t~K}vfyA6c`Vdwad-nA2 z9cS3^N6k&YFL|Vs{lA~|2jk-}7Te<+FVe|4=y!1F&X&0EA6#_IM_av>2A?1h&dMYl z7>wG@4=(AI!(eZUrEc_b8t0Ki9N^yZ6ovwLnfD=n z_h~B!F?1p$WiV7Kwdo=q(O-}wzkGnza}L;1^M1g`CB%A|zC`wn#x*G3^)}46NV7qjkHors`TRR&5amYoahrk>c;-^QmUB(|#fPT^;x)zZ0 zthSjZ=j&`6F&jKDNJ_`jjOptynQB=3KZha3FOW~HM-u6I9!4^35gRJBh&E)}zD9Sd zUTyT(@*>72B?zdCt>!8IM!)1_kuVYne#l5Vdzk3MKm-`DWx-xeq(x~U< zLAa}E>;rGfM^F0^FZ^t2wo2is=z?vNuqTYT+;ZCfO;q88{%Jy=9yAwNE7-K66y;w5 zQ{#pubKJKA6p<8jxhqpJab*J8ddIUE*Oo^+ci3yl*`cERIaSH2VRqHW7&Pp5+;DI$ zj>3e(fRh2$b8Se%Zv}4t*KVmdDU*O=H^(h7NVaC(1t9GBtvc`M^7XjwcO=u^y);watDL-wzIT>_AZ+jgP)g?9KVck4FpUVEVL{`_fR^%*KUrVAGoW2oMC+SDuStONkUE8Y>muP zS|o=f1gwLAuNcTe-u}V9{qz0%zrkt$_c!E!&Zb2ozk@QfF4z9dsc8n_d>J%<*HtT0 HF%9|`YpiU{ literal 19695 zcmcG$2Q-{t`!+ghjNW??1i>KDy9Ciji9ULUAbRvp$_x=f2qSt#XE0iHk`cW{8=a_w z(R+6$zxV&X|8v$l=R52B*7vPv&6>TRvhREE{p`K(``*{}L_X6|BO_)e1^@tL8tN+g z0Kjb&0B|!Kcng0<#+6_X|0n%S%kb&N^(EbF`NxmdDJW?7FOSZy&UY^l53f#6uFkHm zug5q4n3~yqZ))fr{+(Hr=iuo6F(Dx^xJR#)-r+{fE~E> zJrLkA1ONb%04V9vHvzCafY*41p*H~d3x9L?3;&h-uiO6S@HhVFA;5p-{ys)Y|4;6} z3c=_8Q^_1(yQs}jH}cndqNqo;|ncR zOfZT=*s$ODVGie3)G&Es8sBsquuX%wIxKu9eEW3`5$HA!0H4C?65&C z6|EsAzO;ZwWyty%%hxhWz$^z6CkuP}{tm#M68|XuOFzQb0}P0OSQKdkF+jl*GIk7% zlHmXxpqUlk_z^h+Ub7G6linJ<P68RxAf1X+_;DI1A?vP&TgUgXBi58b8MGg;?lJ|X?&yx?L6NRWlav! zLfeATK~USfl075cIbar}(~81aBlx&uipr<#mr>jXG>LBJjWNc*rWuU9229(Aa_Qo{ zE++f#X^x7PnOb2#1^h1hVjIM$CUXxdNrVfGw6LZ}XgHuWH`jK(F|Mw6%TFV#L;$gk*=2;whhIK#iD9jM(#LFU0gD1cDX;;e7nU#KkLYCifGz7syt+e zb7B0ov{9|n1F`ruXnMUO2^6iG{oX@KG7?jA~j%mc5wO}E9x z#G@g4H$s6ggR7Tn1@)1h zo~A=|x5c?pSGw`zVBB6}Od|qM*&4H~SAB0khOiT(jAvlFMBqfs@vC?*%WJReyOroZ1en!jTLC(i2#6Uui3ww0nb@)WQ^ zM12`3!wE(xtIC!B!;>5TrTuV3xOl=AI@Hk7z35&`%my%nUye%1WfvUkIUmtei z64+?8Wp#=EMgq%Gz6gQ*c%cA7!IxofgVLb0}O|bmfYUv7XStLJl?wEOoivAvw0aoo5-KSO$v}Q0SN(j!s zn!fX>iwevppAsQ{-|MiIc^Z{` zf7&uqXCU2(*nxQG&bS4T7Kd=WZz_t+0!CRWJ%&)gtNo(;I&LD9;JJ%G2J6_x`9hO| zdJE=G<=hBj*xCaBtllMz30M5abhXq#KKx_wA$H{UOSc{SyG?b|%u+JEH7<8u!FT-Iefg$@V3s~=R&!&?)QX$CtgLk=g=SpnS%t9|`>rSMJR~ffk)7+0u zghFS5#lq=YT-g0S4Wo~Zo_^V8))yb~JtZ#y3JQ4itDg0FNP)|ivB1ErnOz8B@=@r+ z`A{L7Aj08P>ofBT7R%}f5;aMBm$HHx!s#Q$g>cB6Rd|pn0DY#;f;lmJ@5B4!?0f8K zN^QWSACgpvdR80DvN4mJAiPPi&4zg;@T>kqy41SWYy9&3$NgjLBvE-OR{qfp397jS zwIMeEB>5Bc(R+@f{2-%!ivS{5#0HoZLe5YY7icK5KIZ@d{I9EFK^(^9D4FOPiod2r zqcud9!&uLN!RBB23;0xzi!#U*ZX|wm?}riuu!Dblh{{s{#e?G|=YNYhiIUtgkAS$o z_Ng1k{-ar#GNhQY$G5qgIf(Y3I|ORfx0FGHBmxRThtPj?Edv&ll=pUKEx#l zi3Xop60_OyRn3OlZz9VG_7>7-qJJnnbz8%Ek6k`_U{=Pd zUYK24P$8ovUFec1}4wNhMc!KWhj#cT~T?}gQmtP{&*#U zZ;@1mmEv#+){LrmOQwMLCem7#x0(1lPw^}qm8VFFIQfK9GV-YSdn0i%3{v6hG{Av5 zdH(4hwycVx|b$EtabQ6`1C&Nm-+WJC7C)y%)Kv#Ca z0mGC5hm|kdv5-wb~^ z5=(k!4s%*Y+Dm3Ge7Swn0?##es^22zXc~K4Z6YDeBJQ|&oAR4rJ{9-0oFnY5#{9QfN)L=7n4&86 z^dKThbcMtbrBAAgsz58e=EqGq_ z1)qs?Dvt4%5UCW0T)y3+2Q*|5tcoFkd#W9`ou-iUZ;Y-8Mg61lmlmyfrrwt@K3ZTY}QUXJ1U zW}iOw!X5F+J8Xc9c{CFai0HB-v zxU-A=?dHV-7K@^_=v$8=+pjJE@jd_TlmbcqdXV_({2zDkl4I=nWWBreAAeQR1hOKJ zUbwmgK+$7PDLyw8oyeo(!>lBzBM)YV=ZCl7zsgkw0_N_cnMY({xj>Zq{UHZ62=*8T zxs6{Q5J2Zo?v6hf#^5TP=s;x{w?fm5<$mi;z;+}`p(+0vjdh%Qj^tB_kjZJ}Cd9;z zgc#ud5fyAb&&!7^B3KZ>OKArRya%V^*fnv1WE9F<8NRmwDv(T8Xu6__=tadR^&B6V z4*}o=jfBBlHSQ0MX{$g0k6}+a z?{nf^a!wF6{u_deN&F+^KP5-v-Q#~m{44QqX+MIv{^jcb zwXS})_@A8D><>WD(w0yH6EEyt_9e*|e;QwBawC6U zoN0V9&-edm+DxNon#Q>E8OB}K5=w6pP$}}DnbnYV-hl{weHPFeVjbyD)c%(JJ~DH) zxTKt5*U|@G{)d+ce02sdR|@8Ce#A%;8jcFbQP5$0P9lQ2Uj{^Ea)9=6`QMB$-`%vm z5$pktv{qyojBcS`Xkdxjh3pKF;0^&j(G2bc&`Iah1Ll@GgzkEW9pb3(EOnE%rJgjb znkla>X};9N{KMYGE2PAadfd&;xIWy44vTX)vYXL}r>OF*tIB0gGGK`)H;l`<{VG*X zufbmlbTWtzth<8?tXnG3Vik&c_#SM@xjt6b(-!W2*p?70%<$Ra2sk`Io!4x!PZCSM z4ZGg?WN&;`rsZX-_@%o=YRa0slHpvoY=8j5&(h!YJ-~iD;biDL4P3HxgirZclZ1)) z*mzffTdR+2AmlKtvhv+8&Aw_aH#VlI{aaTa(5Bg^FNKT*2^kDJqmnY}f4%?V4~-rJ zffg008Q3{;KCOBhYj*u9lLL$W$V%za7Sc_6SAv$YWP!H%w}yyVzUKina{#D!_ zuPaekeAi_19+Gk)c~t;sE9cJTPUk$F>U{KRu36?%V90QO&fm`VxBf{x543Ih%LC-Y zIGxYe{Fv-)%FrUz2rm1E5Pwk{PwdOG$b;k#LQ7M~=G+4i)hJiJX(Pd?zZ>t^lOPSq zqt^Q%b9;?UC&e!DcK0y~@rGCmGgLy2)=s1(cu@62wjqm308PiULLfh}0HMAfggX|c z;S5{OkAF1xNw5F@G4wol&*hDnY z)XWTY6)cxgq{w#B7ZM;y^D=Um0}^=IM^~W-;?OqvT~BL zl{F1w9d2h9X0hKfKa3Op%v_hI{0`;vJND8}0{!8QfdI1hV+qPz;{IPhV(A$mpL}tY z`diLO?}8n*doOi1>td6)Ii$4O!msj#Ig4hvFkMb71#V}{DgqRk{d!M)AZq;f3T=RN zXVUhk{kN!TPM`Pi3Sl2}X=G_6bo?;MtMGsZcOS&W<6BuBy~Q8=ZQ*V->TOmxeVILy zT=}oJQA9<2Jph5x1!7B^M`g#%F3jgjtA&y8NuQV|w~YZWVMhp*Qn&^LtDjgAc+gMW zXQDaM+?fRDW+M?8wJ1gz3L}S_6X3ZQgl=TX<+b0m%N7o~_*QoM6|77XQ^6LlcS zM~t91XIbB(Ci$}@qh}Z}tMve{o(3m5`{0PoMk8)gZL?y2D08H^#fv(J-s0#jVHHSL zfEKYwgXYWB_3Wv8R>oFlrjTy!KRLOQMreqwg%MHMrV$ahkuYD^t%VOM zDH4sMK_IGPco6!7>uxkEbh8G^#60r`N+yf}DrYCUi%B{H9D#5QnwY$PG(1;7@tM&e ztf7mLE4NFVc%%Y_J}J|I$Y7Acmj}$}^WP%rmyU>8^HO+HYd_`X6=K@DTTi z*Q)t(L+h9pz0INUKzlj_8M_-Sm!0C*!tEObF%qlynV356s$-exRMTY%O?6pq?z!XR zf`yrFa9g90((3N|9?J!(Ayo*UGJ}6^-G-gmPfrf&VH4|w;VFWc4|i=$!=8L9`_Z2A zZO8-klJQy5eyTI`$6RLUn)TY8)VJ>J3e=GLaPfdFg~DYb{r%ykI-TwxdVhw}c$o~i z^q%z?VT#?9a<^W+Pg=1s=$OfVlN~^xs9Ioc8x(TSY6%~CigxWxTDeOe;asTR{i^uO zj_1X58ca5&0GTt&1ESm{)-m$^B+xRt7cJ6di679RL#bddZ`Q!XDEDLGzB zp3)w|&TA4MmHB3>=T%Vhev4-ilN0O**+uOecFCPvf9Sic*Xg?!PtQrBDsP3pMyawX z{ZxJcXznxc3N0vK>bE5d=w;&l^i<18xMIDGjkOIU=!l6}P|N zJRv~8EkN#{o*M$sJ#XDZvgZqQlf6bs9nP6pB-{bw9M+vKR10Yt08lFYfsa#`;T`s# zYXBuimmJkDd@bC!^&0gam13MFeBsW=BZXR~TL#{&>%_Fv+qGe&p^9EmUw| zzyKzG^T(KtAX3*m%h6(x7&lFX6MhQm8ID?qwdpcP9wZL2a3Sjkhx|UGctZODp;|EU z6$!u7r<_PHv*pw~G1k<09TXp;sRPDW)miY-1}^m3F95h2d)WuXO(!f*H=93I2+Gpy z2>s=)3y~C=1V&klQ?Jd%qPkIo=TsO|Zf{^u?~+q|N7sAi!sLlCZ;Jz&K#{1-@epyA zI-2=YEp5|RX6jZcPS}FXz&%jMCJe9>s|qn-lL(YVGe>++?7F&|Ax+yO?NjS8HVr(R z@ifGmSN}v*tbW(9yl#%*Z0C%-It3PgY>~qYWrjxfKdGdsSStS_;44#pT64SfVor}?s)htxF2=Q`sPMjEFrLmPID%%zr770+LyxTn~)a#s&tY}g_(Aoj|4i;LSE{dhk!Oe zjcAwbTtFbXqW5%5QjmYUCX)$T-Kv`T0hOUr6}_aEohvcyCgu%>RHrcI3HkiWW{gAu zLhWJPXNYgSoFK(=pG9)x`C+7Y@qI{!JW>st0yw1&GP^!Ng97hI9JF$R%H7njr-8*RMLvF7 zXPYc1;^Xe8@nFX)oI`=dwONar?D5rY*rJ|yu{Hu|F#+f);gazCvh&G#BJ}CqiTcj8i zC&c4tga~}K?bCjmb0N!P&Nb1@36IXEiJd2#PE1$Rw`=wm{i0RQBDj!?edgbTRbk@W zA5~Y~z!^nl0|~; z`!Z-dJdIf`v)bXpdqz273h1GlV$)12=x71oT$%3SB27%+P)f#+iJ3pTrS2ar&PkH` zW@;@6qAbN)oB-E5Qpiozpsri1Q(2MeM_1KPY$m#yj2H^y;mh>uNfy_{pAZt=K90E1 zXE1SBc9*llCfMEzm(PJy?_1=&Ve)e;qHg5-bO@*fl*P%$`YcIFJY!0kk{By*d4 z-Jr1|XCyGdhq$4H=5JG7`@^{X+EqgKq(Fz~v)Stn`Gd!{D%ImLjrur}pff^z7u>k$ zX@WU9AXmUt7@AvZ%SRkXpQq&xz^*)_J^kZHj$Y71ExhA-`3dMeL8Pq^mea5`)!xuA zH^uOHimy#et=bRF)D$_WI?;?0^KBK**vY{{p?iPJ1kb0fj<0wt4V8kNZ4AP z&#Jej7rl+2Ps>yx%Azg@jja5$Q%;AY_Gjs_ZZQfi(&r_-h8qcP$D)7}hajTE+0md9 z*8V1e{&Ta2%f_E)&DXx!Kli)Mv4`LM2rA~%@viu#GnKKZi}xIPCIj?vt~6I2_IF7t zAab51XSvMeLbBXxVu9|O?@}1)C?Iw7r3dD_V=90J|l%@EJ z_bred+VtTd3x2gmg^BOyrYUk5ATCyvPiNjBge@Zq7eXOdE?&NY5B@&vEjL?8Ewo1i zU#l8){xC~`zYv=F z$gej7CO$pe70Zd_AIPP{=$O;@nFDdEBp>u=JeGAXCt@ZgU74ungd9WzG=RrgsWzPw zsCZ(J)9&0#2KRDor*sH|L$9?4Znkb+m5WVuK;%VUutMnM!^P(-wg%)ZJ#i~EJ#x5& z8UX`(W02~Xw*E@>x(E@0>#>sl0`&c-v6a@{aswW@MJOfXN|_q@1n|Ud-y>nmpNnUC zemp?%iP1+ApP!#y$C^(cyzq))@g#nV3fTAle9oErXQYa7Z_7y{KuFudzJK60v~8%s zz5^BzUNvi!5HJ86IM}e)^U4?q7vDV2Nl8t=P+>usM`YbjFrYRDeR7Am<_AzLRqpgn%8V&>K*kF{HZ>T#|#b}bDQ-dKof z`w+yV@dlWyG#<7T zwga!N_-J&mIdl{IgTp>R=t2eU{3ZDcZPkV;?MDjD)nTjceUgXhl$D3aV!2vI8~OT^ z#hnt%@6j@9)^M89GbQaOkWdaD`}-FY_Mbnk7+ywCfXcrXd82d{ej7HSE@Zw`9DI{F zjw53Y;tx(dU&+1pK2laux=;0ic7aGSb~MyLD}d{q%qGW>qaBD3ujkZVu9#|X!Of3; zY)HJIepS;|eeFCf_12(IH-D(NTy*G!l_oE}!^?ELiZ%GCoi4Zty=R8Vb>gd+FAS#S z3wi94>C)i{Z@O*eOqY&c%nBbxk{h|7&QToH{@28mtth3>at$DW$5Sdu} zBB*9WQ5SJSA)Ch$`-FF|F!Zg6wE&1+KN>8fo0xf!<|M#L{42@!fh$CUtzYI+EaLgb z2Cp^=c@Js0XR`MEi$o}5y5sp&bNC2im>8Us7E$-Ty1;N*b8|{^3We_Abc>&+pRH=c z@+s%y?j|KqrKNPa8q}i*wNmo7-q?Shb896wI30bKiwM>c7_EjTSG}HTK==N`W!1CZ@@QxMuLMSmdV+Gr~?OchdO88lHnqia0o zdH?6CujdR&af(6Cy~>%TSb~^5hAb}B5`LGMl}JJytzRdtcMznHRfyvaB2s2CHcY%$ zx(}^Z>mK(FZFi%53<>!iV&O+u?XYJE7k7hKPtzN(Bgs3eNoO{R1gB2ffCAq4w1?$3 ziHb+!&7h;N1?W3vyKAp4<8t5M33>v_9m!REl&1cfoqXplYJIZD?c%k2f~-5dI$e&) zxtg#j&6*NXlFlBY$l;(o6Gb8HC!N= zc&VC+dsx3;5zOoQ7U-NmYrK#;ygnwz(%`Zna-aWL7QKg!(9zx%fS&50e#^`m5lzv@ zaT`hT9P_8~hBm^2pFn&a?tN!S4E`PNGigZVyc5Vg<@_eecKyyO+|G~SSZ9V!YMDRF zO)_B4rb-w@^>%tSUYiB;s78F<7?Q>DkU&*7dzUahNVx_rv#A16Fe&u1dpP#NXX{rl zn4%$_p94KP0*nS$h3Mxd%8Rq-)0|txV24(PoQH$^p1bKD-1`*Dcv|Fm9D~wQIK$$R zN#n;eRhWqNZb*GOI@d{gBU;lTLcE-DfVc-4KK%VdNER7*x^78Ta!Ru6@dnxA0L!cH zpvOMZTZ`{hk5wVLE-;49BH*s}cy&-#l=T#c+`^mZ&4Xl|n!<|8&EjIJ2kW+`QP zyDfwq!qG0|dT}Ag%kBoD_xTcJSAHePjwW3gkM7=nqWrG9FF?;MqHiG(>nb`I0$t`Z zVfTY^=UKExwvr^>10_cYClA%p4Ulj0i|$^88bd^)s~DH#)esJ;Y0inyN)9XOjiqS@ ze7jnR_-7n7kI*R%G&MR_a)aA%d_N1@a^cE1Z_h9wkgkw#F$>33na+h~G3lt_J8nYC zPu4SNXLLd<$OMc|4CyfesTvJa(wkJ6BU0xMx+RHkPr-^po=$;SG*F#M#(je^LIYda z@2K+a;GMJ0)Zn0{g=m3PsOZPfw2rU7BKPGf5yVDHSusIq&08P)p&&cPCPs3176Q?3 z&+T|_vIdzX-!lg|T_v@nze95G`$`?3Ix%8{k&~Wi{zPZ!+A|WGz(NJR@(DGeO$wzH zSuLTbl6OT(iYIRM)Xpw>0PXqu>Q?Y8F81p*Px_FYf=-Fwmo6@>wlK)Rj1>K20#eKE z8eRK2l|PH+5A*vHCvc#Nnm61RsK<%iQs;}SQ6N#ymPIpO-XzS?xoIVh=sK<9}~{%$?hSCcaV+x!Gft_%P$^wkTx@8JgaGN37?!SbnC!u+TgHzndjL1g) zp!{Y<7kyXtrQnknYQy679UqU0pZR&tSy=^oXbr2FMSNWW6MjRz@XPt=_}+PTGwldi z{5|RW;hU_wZM&C>dmYaj+4beiZST^QF|!#PMDJ=hFPOA{c3hin6G&<09=;O6Ml`|D z?R5xCXs$i-OHG${l`=@Rc@xzu=>9ZTm&94l&)INb)zpCmCSGV6)+`yyg%mULD);G< z4oxUq?oU#xHV+VAI;c7;75KvkQX88x)yB8iTNV1`DMIDX0aM{@HdP8}X56So9l%3( zB^}gZ0!vhD$d^D~sYjYrN65?E!%q|nAuWZKBRH_GF0W#mZbnC-+p&SqapT?fhT-vE zM)!!*rSwnJuvSr;>Ka=QyLg*2>n)%DOG~*$nIm@KpbML1!NCMeaZh?s3AWCCHlk_j z)|B=vBCoH^`h7yNIHRxIx_@@|J-V-~vwYUIN&#W+q^TtrBW{Fv$zirl^Vv0X=PPN= z5QWA3*`7h~=yN>Kwz=p-2)5G(9nH$)ws8}muR`f8hdYQK3x#iUA?3tYgs}N}Z{6X~ zdgS_y%eh|@7T)|f5;v0*Ndx%7K=A(yv$cl%m-Sxg2(I^6^}&QWs^hQsoiv^AbS#F9 ze479QaXo5~D}_I&RY!i2E%LbyYeQ-l^X}%&7Xt!yBZ(JdVg{$8b8_RSuTfX}97{8u z59HRqO4~0xkO;`J^j=;5)^nbrThN93yka7!$X`dCX@14I$6viFN{`Gt`~Chj7Nd)w zqz}0{K|a?nTw9v0xi5b6QDuBS3qyW4cQg2~JWvelu}n1yYkYK^9;u)W;q~&v;v=fm zXeTaY1o0QegH~7F>jsoUq1mZ8oLe-_V}~0qE+-l{PKVj48fc%7L9r!%?Z4=ZxN2V# zE<1S@jtJlo5cPs@fme>}Ow@@KoYL zCh<|Mr+Wiq3}fOAPcF#@xEYr9_`fUo%%pWI_vF8t&J$k2Z&2w)o<9s>a!JSpm1U!T z>3bbeFdE~+i}qZ+4d~;Y;Svl|#N{0QDq2J2o&yLOSwc(&RMwy07siWe6nEds^q z88@tzm1y#6_;gLGs`Q&j@Ik?NhY-r>Nayb-cZ5%s^}ee?_{z?u%YI3_|0#_SbLsR- zEuRwPur=T78txi??ye)280n@833X`iqJK16*n`kuk=dY6tjVc{7S&d#q=!vz1wV!e zfBzU>sVz8fF-6=1zuA7KJnFO=YvD80%^DN6y^pcO1bkHc7W8dq!G3~Rptt-KaQC*C_J)TU$@obdtxL;ohdcJW3qdX7Sp*bbTQdrq(3|pxkcnmEL&VU zOx+WQ0JR>GMMQpwo;Q5cO-FT8`%E)>Rqo$_Ho-cfkKY^l!nh4C3mv!nIYy@Y&1B9- zJ#--w+AmvoSr?NSQLD5Ap^=87lm@AQ+QLuM?oj_37_2l(=W%c(UA~u zGxu~&oFFrd^#c#ODAHRecXWFaRfJNpD5vxJ)tmWB5Dwf%U^hx+ZaCB58l2kL$Q8yYw$XKN`SCCOBUcG)=0{HZ#ErE~=@x$(Q>7s#Ax z?HaJVmbWeBolr-|gT2WJ>-W;GVu~#f&O`#5p0Yy|(_2p15w$<`IPf#u4Ht#zj`c!g zNcH!J#D%iZQ^oS*snHunr|Ta0h;0#CHi<@&xINwXQPTQPTO5MfwT%d`vois1w7v2b z!VNCIK^pT#-w_@Dz;#dg!Hbt?h=wMZ1PRzrJ_(w#9uVfsaI4L(TSl{``ss8%_;cbU zm9Zl2hH87oh=bi3O|9ghCd5E#>}6o5=$S2AaaY!!xiMYR+j2YCy|r5*1N=MCDbx}G zO;?aI!y-_siBs=cpvkta5c|z`Xrk(|OiWgWgY8LUU)z##wHe3VsBrzemCP8_Z3=Bm z)`y5!0!RY}s4H9?^Z9{4r-YMk6tk{mG3*>o?Sn&bM~giDhBq*JFs?A4abjoMO$`O( z&&N#1LMf?z4RU*db-58fB5>Z&UEy-wcuu zLdJvLik%|DeVN?hxs9SPzO3AVZmL0AH6b43kGDjFpF)&p>czJjIFR-@h4&~KXnF>{ z@kHa%KFsL2@#+ieHXbJwrq8`WK2Xkp*uCY@?zuC{pEb!OBvW*b<~LTq(OShE%M>&K z&LS6YXyVUO+$j*8KA;Ac7wNIM!u;sv((0nlMJ(c zc$8FAjAHr%2TP0=YlI>E0Uqa6ZZ0gDk-(Pu`=@`(IyA@{B5{a|8n3i8!-Wi(h-gf? zS=S%G*!XRZM}PiI<)>30yFqy>X~C8mgECzAW^WD1Eg98*?&V^eNJwRTSCb`ZZ(o{! zfAyUzM26W$-2lHw_|0-XUe`}gBqrU{nPEc2jmt{*YtqwgA^}UX=Sw7L{_+GY^&dwm@mc+P6iBzkax3 z9FrKpgQlLJq{&L66gcVBjOC4Mmxb@9?@2>XJy)eDz2?GLycg6YM1j{BDR%3iRIUuQ+zOG;Zyai z_joh%kSg5HM;fe<#tiMcx)=4~;o+aC8z$W^1Am7b34hg4_UN`_Qvj9QS&Rm|O-8M^ zaZg2My87kncrELsxCb_q63o|GBO=eEI8-Ze)_Z%<2vj=AK2&=AR709Mtn04AH)@ia169w=wsa`!im9H z7-FukEp6vhXRY!YwwLbtx$~|oY`RT}ygvezFhx3Sch3s`5=%xJhmlNH&3-d2jrSw9x8;?v`x5*qy0M{bV@$l)^j9RP8 z!t$oKdsok5P_!ogZJVuIDoahjbgD724qYvI(<3NxuxTE#yp`awM$m@GuQRdSpKgLu z191Wyq;vA?TbNH<-5&d0v|AZ$SsAjgE;x~y;hVy8Dv)d5Z@3>5`Q9wO)32GJmvX&g zQ)RwOEY4w0J6|{D`l9M;)L^F5V#cv|8~^9Xa~K_uzCF9G3z6|)6T-s8u$9&(S^k%o zM1HSpr<(>G_{Q=Kg)fufd^8#JJB|3&Fm+et4S7^}9m! zyTXfGq_LUzk?$^^-xv8+k+w$@)>vl0$gZ(V1$8XJ?-VNXAP*j-?9vp&*5CQL4N%D9 z`C5s*atL09!?q6;z~ZoOJb&RN0(Kbrk)0Nk6(-X&U+6+fj|Z(|USVgBF8kcW@jLM{ z!&_1N{=8`B4Abn<#hj6&(8a}5{7$kwG`jWOf*6{a63^clcyiwHO{XwitZ2NGhFwo_ zVE)O0+T71PtTa<=?^R*(JC8Z7@_uZy!F)ja70IIr&`MiNMIWb4o|_vJTWj5ct3Dx} z2;YGBA%!^E9g>0P8J9f)#)tiX%G0VNd;3Z+-#zsKC7-(i?~vG)XT8^!@L&yAuw!zJ z9OjgT=1xzy+C)^?6uRur=RmtWqP=Ir-NNr9zx;ghw#q{9;+844R(sl54G)yCDs*1% zXwa<>+0yXOi&VVq`8*Xdv@Cg=kM67sc>IAPY~{juiS)AAt`d0t@a$lTw$3p(B_*P? zV1)|gdnkt3^FLpn{v`?}x6J6j?mx&;muXj#64`8F*sN!Evz#$2+IZYqQr*APBdI9-NK?MaP?9jxbv(>3UPN9&l9pk5$OMSNd5~^Gv%#SGpZQm| z<Ngyr8Tv!UU$X{8cyM83eOwsU8Q*@w#CuS-mTUD$C9es*Xd5k7` z+<6k9ME(Sxgu$E=dJ}JTk1<9g*`qe;JiA(L=Z-2o(*$oo9=yDf%J#PI%gYjj-Dd%5 zwX(Vq!(YV2&H*pG=wxu#1)vyzf@5^IF%Y`}$pp0^*I~I2vS=&RZOMl>{kFwR&h0~1 z2A&9=qh(Z}+I0xobGkIoH(FfCtGc0LEA;BCVPstC6z5a}y#pzFZ-T51Lyrfv$u#XO zEnVeMFZbRp)?cXnsO`^U9ywDebnA&;8_(KPUSuwavmhTdSQ>Z<<_SS)yp=^$>mQ@_ zH~sc9Pz&fwKM%o1-=~8KF0f^R3e^}{v z)=!h%dt2WvI<`o{q~l8`vk*hJ(u^v))5;XA3n^+Yz&3S9xx#Z1g;lT12&q;tX0n0c z8t1HHm2g!^p=qcd*7sKA?>T=td+3@Otln&G-z<$ES;QAebOU->heBfopwfr1zy;dW z=9Q0UI5e}e+O$|-5V~TyL6!=kfllc*!w>E$C>iHrSh#&r)thf^c>$qH5N(gY175e3 znmi;CMT3Z>~qQZ;3-k9_T4J-)<^=l%%+XI*@ODq}K}O^V<-wS^Cu<>ZWqvqomJ%f}l0o!|c$a z$$AU?cDZcy7MAh_-pUNr6b@K|P5go{>cEUD(koCa=2V#RD97$%e3WXXlkr}gTu*Qi znm>eaapaDL0Sh!z%G9EB>bXFy#V|*ypKdUtY>vv>p9FQSIwKwsLe~G9T2!i=AIERx3!xB{uM@D z(+kNCx*L{=uD)<&Uu#-{v57^{x1o+E7yo&`2|M^Gy=)F?8XFeH@ zwzRAZ?U{7lu5~WKlS)vfn;!yANBfL-1plnGNFnh+SGT+A$)YvKlv6l}z`qFgXMjDi z(m-O7!d-rgJY+*urjM9Ty_8%jWTd)b9N%{NukO^Oa-0e@vmmS>`HY=w<2&2+^1NFK zq(B^>osT5DB3LlOq1%&rI-$n>0e^camHu>X>qxo;cGPl^aPVk)#_Bsu-o%WEJ*^)` zX{1`}?lg7HEM>hpLaO82Or7=l?~n!|9ZT5>mwP|w$$+>zm+KaB>Zx;s%d$JN7j3S- ze_j*74x5bC%SvAp;K{jmdYOB{%y`^E7!*E&954Ad(H|9n@z4iiA{?F1=tRy(Lj^VLfVuk1dIIGf3~ zo4&f*$rJs8@4e7K*kM+3!f3Tcwg{%^qCKV6%h-LE^inIVN(M7~;oC5|B3qmY1`5lgAUL3(<*=a`mm51-*au=3q}_iHv*L+K<1}&f~4ewUjc` zu|snH#I;@oR##KD&p4TzUsd{;&#tDuQpXr$x6R8^k>C5mZ?VA91Tu+j(yBZ;u)Qw+ z4z(NsE3!7Bgfgu&8qj8&Zra{}uuy{9%#CM@J6n{yU$?&9Jzr;9=r5H1CD&ZBqJw~B zQsI}n0e`Wqx8L&YJ{oMp!MyH+>5K9S7cZ<8Bd#NW0%Hlw-(^_LvZp1hho(#l&9{I( zefRgZl$_;_XM}53n9e5ad*QWIhNDC2QK)tal8KUbS7_oPm;JpaW@w#MM~4&-5ckRe zLNV#tqn0l%UT3keakQfA)(KHj<96Q4jBy$YLJtkg1*XCk=f08&7(UN8&ENMc9G&=_ z+#`89^CCju%h**=1~c|bO4%61PCDbxrSxESW)EJk?7dOmpe5g;V z5j#(LHBmU!dxYWz(dk%-Yi}302D`x$`BAETGy@JMt{EZP(uNL~ve}xlmj2l0D378? zV0y$}8H26X7oA!LBS-*GW~PskXU$jC8@n&vm$pmxJd&~eQR$Y-uQR*ciWZk?7W2ij zkZUGgYmR#Tu@d5s&zAGTi%~iELB~TO*ej!4o=gYMm-m{y*`%RFemiv!aBV>6ni(<7 zR=siFuq8C|?%UHE@DwXXYps7>9tyt;bG9L=3^@b}_#LHJe0wngiLjy%U-`ra4rmrVTmLRU4N`)Zqq_*HF9H3@OoK z8pmC70nLljXhe5hdmhD9%&8PNG9|$k=JuuLDbd1ZP;)^l&?J=1eVs4-aG&`D?yv7T z?{s>(5f)&=dW&xSiuMhVEHIz*Znq*OM0x*bg37{$8Ftr=^*PAeR9#0i zEgCHV>> z4_*zJCt{xbi`a1E16z*yp!%L_ch%-=tQ zNNi)~exaF>G(*p+bo;IYb9*ETvgq;l zk;Sfe_P#J%Bgxi%Cr4)4^AlSau^2*(d#d1fkM zc^RT!aAeae*5WDYZ(qu_!wIQ!Zy$%DXQ4x;TX`?{EBO}qPx%&jn%$?|zehu=wr<^C zR1W;;u+SO6;AdMCNB~{rQK#!GoP@6f+%CUwSe z+(eH1R*?V)ooNMJTZ}Qr<#=FWOc)=9n2EgereJn?z)lk}$claOY2sFMh*h@1<||;q zz>geamd1#j--A0%AfXNFA_CT^f27B9* zC~nvzt0WH6D|pTj_uH#;>ELKmqCuAN)jPQ@-5uuD?;(xy4>c5LEb+m znv{zNB$H}j_lm{i>U zCC{^^s_>%grov1S{%^y3SuZf?^IqUj-PL%CsH#aE9pxBzmI2G^(H_Q;>WmkZT7MHs_vUxSm?H&xs zMp@#8!d@ohd=P5%P-X5UnVl@0V*2H`FvEb(>M;q?S^mJ}81W#nBDJ~+_GPI-+x)w$ zap%Ulxx;0f60sZ12y`LZr-xV@tj!@`E}o7`)>;&>XeSycVf?n-mNq{+4Qub2Lv z#gWTqvM#ip+UYg8k@A;q#ewq2TQuS8aLmi@nQVU<%x2-u04(t9`qWE1wH{$6a z8f+qzP`c-Ho#ZFlS?zF+j_XmL5SbckVdG5q(66MXQ$|h`=#(ih;PdN#it`Dg&iEr- z$t7c*2=9AbXAY8h@vQZB1P)9%T=#35t$0NBSx(bikXAw=><(ovcMTlf3Dr{y8?u>! zaU1s<(tT?hF->lJ73Liy_EJ@a#5Vhu%PUP6b&@DngIW+ Ung~h;M1& diff --git a/src/content/changelog/2026-08-11-llms-txt-v2.md b/src/content/changelog/2026-08-11-llms-txt-v2.md new file mode 100644 index 00000000..505af39f --- /dev/null +++ b/src/content/changelog/2026-08-11-llms-txt-v2.md @@ -0,0 +1,8 @@ +--- +title: llms.txt reaches v2, and the file finally announces itself +date: "2026-08-11" +type: changed +relatedSlugs: [llms-txt, link-headers, markdown-source-endpoints] +--- + +The llms.txt proposal published v2 after two years of deployment, and [/llms.txt](/spec/agent-readiness/llms-txt/) now covers it: advertise the file with `rel="describedby"` instead of expecting agents to guess the root path, scope coverage by path so `/docs/llms.txt` can describe only the docs, and treat `## Optional` as a convention rather than something tooling acts on. The page's adoption paragraph was also out of date — publishing is now mainstream and Chrome's Lighthouse audits for the file, while whether any model actually reads it remains undisclosed. diff --git a/src/content/spec/agent-readiness/llms-txt.md b/src/content/spec/agent-readiness/llms-txt.md index 05f039df..9a4986f8 100644 --- a/src/content/spec/agent-readiness/llms-txt.md +++ b/src/content/spec/agent-readiness/llms-txt.md @@ -2,16 +2,22 @@ title: "/llms.txt" slug: llms-txt category: agent-readiness -summary: "A proposed markdown file at the site root that gives LLMs a curated index of your most important content. Emerging convention, not a ratified standard." +summary: "A markdown file at the site root that gives LLMs a curated index of your most important content. Now at v2, which makes it discoverable by link relation instead of by guessing the path. Still a convention, not a ratified standard." status: recommended order: 20 appliesTo: [all] -relatedSlugs: [llms-full-txt, markdown-source-endpoints, agent-readiness-overview, robots-for-ai-crawlers, content-signals, agent-skills-discovery, schemamap] -updated: "2026-07-09T00:00:00.000Z" +relatedSlugs: [llms-full-txt, markdown-source-endpoints, link-headers, agent-readiness-overview, robots-for-ai-crawlers, content-signals, agent-skills-discovery, schemamap] +updated: "2026-08-11T00:00:00.000Z" sources: - - title: "The /llms.txt proposal" + - title: "The /llms.txt proposal (v2)" url: "https://llmstxt.org/" publisher: "llmstxt.org" + - title: "llms.txt — changes from v1 to v2" + url: "https://llmstxt.org/changes.html" + publisher: "llmstxt.org" + - title: "RFC 8288 — Web Linking" + url: "https://www.rfc-editor.org/rfc/rfc8288" + publisher: "IETF" - title: "Is It Agent Ready?" url: "https://isitagentready.com/" publisher: "Is It Agent Ready?" @@ -23,7 +29,7 @@ sources: The name invites a comparison with `robots.txt`, and it is the wrong one. `robots.txt` is a control file: it grants and withholds access, crawler by crawler. `llms.txt` controls nothing. Listing a page in it does not open that page, and leaving one out does not protect it; the file is an index and an invitation, not a permission. Access and usage policy live elsewhere, in [robots.txt for AI crawlers](/spec/agent-readiness/robots-for-ai-crawlers/) and [Content Signals](/spec/agent-readiness/content-signals/), which actually allow, disallow, and set training preferences. -It is not a ratified standard. No major model vendor has committed to consuming it. Treat it as a low-cost bet that may pay off as agents look for cheap, authoritative summaries of a site. +It is still not a ratified standard, and no model vendor discloses whether its crawlers read the file. Everything around that has moved, though. The proposal reached v2 in 2026, revised after two years of deployment; OpenAI, Anthropic and Google each publish one for their own developer docs; platforms from Mintlify to GitBook generate one by default; and Chrome's Lighthouse now audits for one under its agentic-browsing checks. Publishing is mainstream, consumption is undisclosed, and that asymmetry is the honest case for shipping it: the cost is one file, and the tooling that demonstrably looks for it is no longer hypothetical. The file is plain markdown with a defined structure: a top-level heading with the site name, a short blockquote summary, optional context paragraphs, and one or more `##` sections containing markdown links. @@ -44,6 +50,8 @@ We publish documentation, a blog, and reference specifications. - [Changelog](https://example.com/changelog.md): Release notes. ``` +v2 left that format alone and fixed the part that never worked. v1 expected an agent to guess `/llms.txt` at the root, which meant a single file had to speak for a whole origin or go unfound. v2 replaces the guess with a link relation you publish, and scopes coverage by path, so `/docs/llms.txt` can describe the documentation and nothing else. + ## Why it matters - It is short. A model can read it in one fetch and learn what your site is about without crawling everything. @@ -56,21 +64,33 @@ The cost is low: one file, updated when your information architecture changes. ## How to implement - Place the file at `https://example.com/llms.txt`. Serve as `text/markdown` or `text/plain`. +- **Advertise it with `rel="describedby"`.** This is v2's one hard addition, and skipping it leaves you on the v1 guess-the-path behaviour. Emit it as a `` in the head, as an HTTP [`Link` header](/spec/agent-readiness/link-headers/), or both — the header reaches agents that never parse your HTML. + + ``` + Link: ; rel="describedby"; type="text/markdown" + ``` + - Start with `# Site name` on the first line. Follow with a `> blockquote` summary. - Use `##` headings to group links. Links should point to canonical pages. -- Prefer markdown versions of pages where you have them — many sites publish `page.md` alongside `page.html`. +- **Scope by path when one root file cannot speak for the whole origin.** A file covers the pages beneath its path and the most specific file wins, so a large site can participate one section at a time instead of waiting for a document nobody owns. +- Point at markdown source where you publish it. v2 accepts either URL shape — `page.md` or `page.html.md` — so use whichever your routing already produces, and advertise it with `rel="alternate"; type="text/markdown"`. See [per-page markdown source endpoints](/spec/agent-readiness/markdown-source-endpoints/). - Keep it under a few hundred lines. If you want full content, see [/llms-full.txt](/spec/agent-readiness/llms-full-txt/). - Link to it from your homepage or footer so humans can find it too. +**This site ships it.** [`/llms.txt`](/llms.txt) is generated from the same content collection as every other page, and each response carries `Link: ; rel="describedby"; type="text/markdown"` so an agent never has to guess. + ## Common mistakes - Treating it like a sitemap and listing every URL. The point is curation. - Writing marketing copy in the summary. Models will quote it; write plainly. - Letting it drift. A stale `llms.txt` is worse than none — it teaches models wrong things. -- Assuming any specific model uses it today. Adoption is uneven and not always disclosed. +- Publishing the file and never linking to it. An unadvertised `llms.txt` is only found by an agent that already assumed the path, which is the failure v2 set out to fix. +- Reading meaning into `## Optional`. v1 gave that heading mechanical semantics for context-expansion tooling; v2 dropped the tooling and the semantics with it. It is a useful convention for secondary links and nothing more. ## Verification - Fetch `https://example.com/llms.txt` and confirm a `200` with markdown content. +- Confirm the relation is actually advertised: `curl -sI https://example.com/ | grep -i '^link:'` should show `rel="describedby"`, or the same relation should appear in the HTML head. - Validate the structure against the example on [llmstxt.org](https://llmstxt.org/). +- Run Chrome's Lighthouse over the site — its agentic-browsing checks report on the file, which confirms from outside that it is both present and findable. - Re-check after every information-architecture change.