From fb433f6e383a20d153325f30ed92adb977683214 Mon Sep 17 00:00:00 2001 From: Lotte Verheyden <48100308+Lotte-Verheyden@users.noreply.github.com> Date: Wed, 1 Apr 2026 20:11:57 -0700 Subject: [PATCH 1/5] feat: add Langfuse Academy section --- app/academy/[[...slug]]/not-found.tsx | 15 + app/academy/[[...slug]]/page.tsx | 71 ++++ app/academy/layout.tsx | 10 + components/NavLinks.tsx | 1 + content/academy/building-datasets.mdx | 310 ++++++++++++++++++ content/academy/closing-the-loop.mdx | 8 + content/academy/cost-tracking.mdx | 4 + content/academy/designing-evals.mdx | 110 +++++++ content/academy/evaluation-example-setups.mdx | 12 + content/academy/evaluation-loop.mdx | 132 ++++++++ content/academy/evaluation-overview.mdx | 16 + content/academy/good-traces.mdx | 143 ++++++++ content/academy/index.mdx | 39 +++ .../llm-observability-vs-traditional.mdx | 8 + content/academy/meta.json | 32 ++ content/academy/monitoring-overview.mdx | 14 + .../academy/observability-core-concepts.mdx | 151 +++++++++ content/academy/observability-overview.mdx | 15 + .../observability-use-case-examples.mdx | 12 + content/academy/prompt-composability.mdx | 67 ++++ .../academy/prompt-deployment-strategies.mdx | 8 + .../academy/prompt-management-overview.mdx | 13 + .../prompt-management-when-it-makes-sense.mdx | 8 + content/academy/prompt-version-control.mdx | 187 +++++++++++ content/academy/security-and-guardrails.mdx | 219 +++++++++++++ content/academy/user-feedback.mdx | 135 ++++++++ content/academy/what-to-evaluate.mdx | 171 ++++++++++ content/academy/what-to-monitor.mdx | 4 + .../all/what-does-a-good-trace-look-like.mdx | 2 + lib/source.ts | 13 + .../images/docs/academy/evaluation-loop.png | Bin 0 -> 312728 bytes source.config.ts | 5 + 32 files changed, 1935 insertions(+) create mode 100644 app/academy/[[...slug]]/not-found.tsx create mode 100644 app/academy/[[...slug]]/page.tsx create mode 100644 app/academy/layout.tsx create mode 100644 content/academy/building-datasets.mdx create mode 100644 content/academy/closing-the-loop.mdx create mode 100644 content/academy/cost-tracking.mdx create mode 100644 content/academy/designing-evals.mdx create mode 100644 content/academy/evaluation-example-setups.mdx create mode 100644 content/academy/evaluation-loop.mdx create mode 100644 content/academy/evaluation-overview.mdx create mode 100644 content/academy/good-traces.mdx create mode 100644 content/academy/index.mdx create mode 100644 content/academy/llm-observability-vs-traditional.mdx create mode 100644 content/academy/meta.json create mode 100644 content/academy/monitoring-overview.mdx create mode 100644 content/academy/observability-core-concepts.mdx create mode 100644 content/academy/observability-overview.mdx create mode 100644 content/academy/observability-use-case-examples.mdx create mode 100644 content/academy/prompt-composability.mdx create mode 100644 content/academy/prompt-deployment-strategies.mdx create mode 100644 content/academy/prompt-management-overview.mdx create mode 100644 content/academy/prompt-management-when-it-makes-sense.mdx create mode 100644 content/academy/prompt-version-control.mdx create mode 100644 content/academy/security-and-guardrails.mdx create mode 100644 content/academy/user-feedback.mdx create mode 100644 content/academy/what-to-evaluate.mdx create mode 100644 content/academy/what-to-monitor.mdx create mode 100644 public/images/docs/academy/evaluation-loop.png diff --git a/app/academy/[[...slug]]/not-found.tsx b/app/academy/[[...slug]]/not-found.tsx new file mode 100644 index 000000000..5cd2ecec1 --- /dev/null +++ b/app/academy/[[...slug]]/not-found.tsx @@ -0,0 +1,15 @@ +import Link from "next/link"; + +export default function AcademyNotFound() { + return ( +
+ The academy page you're looking for doesn't exist or has moved. +
+ + Back to Academy + +ic>Y1C*hAOcM)cA~VCDLxUjbsm=Y?pcl8h!OR(xq{!C$$$ z!`hUMRWE6#LdaJrSgW|rPGX5Qa}kmj)MkZniSre@>39C1^6Lx9vM_@F6@Eppl6sLZ zWV*)Y#;ebwKmDI5+5b{z{vYUISsksA9m3gzE$xjPR)N!`&%ctTCV5(6a^U|>JnRc7 zbG<~Rl+FGhpZ&iSwtf8onEn4h@_&uS|1D1c|H)VahwdDp-BGC&QpNissg2+LA6Wn` z0{zYDv<}ndx#4a&w+QSmdwNjx9Rc=7oD2hY#YSI*S@p(HJtrPN?+r%Qgtv zBMt3dOiB li@MeS=l6%IC3L!pD+|ph-l1S}m8TVMDaX_|5e6M7Tc2 z@W1$yRv9+EBwPk?sLS}iGfMh8e(#dFwB_d)r>juwDp7R}$B QNnT?I;6P zF)&>DXjWwBHdTOw%JieNundIgY2D79*P*oa{E7Obou4c_?5FcRPE6k`B>k(iMGec- zeWQyhTa(18%+7VH8!vU*{*3y#sAJCCu;+Ss!!z8%tOfB!v#Z?KYz%uTF jg2dVBT-K@^<5 vlKe^|8v- z*FnJ2ZV}I 0BpWWb$}% zD&tedTG7yo%gtJ6W7oSWS0qn=mex#&n tFH@Hr!nC>EYtN-TbCe>6tTW*GHLK)66Gx%(%nz zBiiodU4 8T~waZ*6m}^HJ%wb7K?wUTrMG2=Y9*Rvh1<- z-NoT2>%)$g$0_>K>ZONYQTk2M4WB?vT2;~86%L%C(;gxoK?+m`bIJEyRhiigoG*#e zs8qFs8J1L*BWAM&@|La};%yE&5K}Be(@Y1_PDl2N0`#wO?>y&3`MBi*T;&!#N)rO( zg#CR_-ge39T&L0hYa8o4!y3?q ssNu~Upb)^%vrKgh$%>P^* zPjSA-LvG-z*JK{^mnoaVb3P6!N8sfzJ<9B-sq$A< qQv%O!WWN0rRGuza{M z*44G7n2j*O*{^Un-x4hL=*KJ3TJ%Po!fxZJ#Z?D?)mhreCY8hM`QkBkV7FpRriEe8 zDo57;OsYK1Z2oEfEn+~H3<<&G=96MI83UPX h`rq%j$c#e&<{TR}a0)|KzuJHP(+WnN+%Zz=}$+jreFu1ENr?Q%#$;p%qY* z6mOvtG*^ec7^gPtQg#e7WHM~7yE^QWA-H>$5gGRC=NI+oeX5Ovd!g;|F!fW2QcQDh zP};ZoE(=AjW7L?>3^vZt*)|uD1jAOBu#ivsn$kU`%Eqsk)lODxqEQ2p!um($+7cdb z;GvrpVmU_B5lZr4d8aNHzB3*%E0{wfSbwTjTXgQd_Yd_UReLQRcTKnQVb}xh8e?gf zHz?OkMW=0 m6&X`K(aTHM_Dr`n$H@fY=AmECO*w|mQ4vy=GkE8Xvk{~~7K zk_bM(tNmfQq*BGv+8+VQ0l6z|(};&ovsGJl_ycdu@6#W-K%3TuGuTkan?65jy~4{S z8van9F)g6V$G+GSf^QlqA#?++DWhSH3N9DjEJU=P5uQH!s{z8By$sc_NnPVwtEfc1 zf8F26--4174+$yLuR&J?2&R3_L7{Wi!nsl%9-rJc;*6)~EBns)&km{X`EX8zHm1Wx z1C`L4pk(YSr*lWm`zRo#&ibW;d$^){=!+wuP`t;H^A|bxM&aW{5QD`TAVMFVN_#=& z>hcKld#7sFiH %CeS0S!tck! zml*ir`d29>gAG%!Rhzbm0=oG5$tBlxVZnm$nscq qy59d94Yy2P@wazBg zG5j4soOURgpuES9oErhr4tG)r9$^OeGXTU@tblGB5MzN`auZ8y594JMmBxJtx2yFl znbW=wC|7+EHp);F-Rea6{B%&II$auBk{%nR`h6Z8?Mzd3_+q2nw=68Xd-n#w0Z4t9 zA4-}ptB8Iz=bWzdC}hU-f!Y>AGR<&0NA|y1y Ysflp} zH}Pi5USSAyE$!1W)-8`k2nHrCxuwULnituL;H@pbsBr|1;kRUsH{?P^TM|GBnff3~ zemwob*?*Zk96t=b+uxLZQy)s2UP>g~&O={P1c-$`e#=VIHSo14<(Os_W$9MYXqz?% z4QETisdf>cpW!qBniUY8v+~)3P1yWB(+8Gv#}1gH`VAG|g)SX~PYyj+B2*$nIRFK+ zZ$8-l=Ij+mhfeRCX@P0LfpXORCVG)W^xH!r-1xl{CdH1p!Q>qT#jNdq-?nU%<@8mq z8Uu^FF=diW4E?WW0h#%OwtLthYA(H9Aa_Oc^F^r21P*0_q+`qtrt>l7f)bYL27wR= zsYm_yUZ$Wu{AaiXv{SC4FY;6_f?Wy$uBxhTzm=va4btRe;KF1qn$a=`_yUT88I)^A zmVu;|!YPR_v>MCr#mW*p&i*GNChCRjJ>I;Ut8+^DsT_HL`ulm_D+qTGlL}9LHvS=b z?;`o-LP37( _d|4?=PY9Pf5KZ>rdU|wl0P{{pzMcv-h>&uCbV2K zEMU+-xkvi;suUc6n;1xv8#Y(KeXgO5uWJq=tw xcG ZxKf3^N17yy15|JL}%gfY(O4nZ&}))~`=phi>tc5b-{} z%BMSH?WH^YQHIm6N(4;)1Ul%iM$}jgX8Ffy^`wnz&W% !Kq`$VgX>Cd0J#_*rxvrKZGIK-U`V8` zTR8U<{ Q? z%@hqi{(x2^*wFkMEUEl9Y2tg2y%-` gYfN-o3HSn(Kov!YCs58L6!(|?rFdgidY zCox~bGaLxFU^Zr7IwYCc-6$v79&5Ga-K=pWh4Y$+Rnnok&xPcgKBFcx{N;c&BQ?24 z3TZU)=ULQJL3Eiu3;FccQTFAjP)y^o)5_J%a30w~hdXM^EdKk=R> zulFn@qH@^wQ?5eh>nf+6@qm3|MB~Bhsfi>Wh14jCATx`Ws9!Bfam|}ITrkk%dKsp` zh*e;#P3D@qKL$|Fv$w371BQUCqoYvv>#G+Q4n@5npYxLq8O7wN=}p7yx7p7vpFLe2 zV2ik&vTtH{`D;xsu-z(L*h5mRRuXWkuP6-2Jf07`Z@t{%bxJ)ND<|-&r8bMDezpO4 zI1S?)@Q4G|IJxuZ(9|nHf>CM*r}@Ji=4=t-ST_s5m?_w`hi@RM^3TGh$w2QvEij?C zVBf9WfzB)9eXu2oCb6n!@nAuhTLNvPCC}kgrcVT7!c6!>2$D=p^Wg&fWr?rucuMdL zIz;8HU5__24|R$59|=w;JSd=$@Ojdy<9nEUbj67HI`Bf*AEem-j-~md<}i-W&um4@ zj#0YYYU2;rpZ$l>cAb@nIW2H>*5S7lJ`?Y-zG51K&!)6C?=tROt@6(_6Rnc)#C{Ie z^2svi0Hm>|<_uDAA?@2i5pr1$!Yz{J<~a*D0nF9)1ER=Yed#)rQ_KArR+FWqpJ{Ar zQ%{xdhWud|r&zBu?VP!rnY-Pfgis;1 X#=E?#zW#8k*eAkV7nQJwh~F?h{Dw&LeLiREr5bRF+T^hRd9g&*4Rt>3 z3m )|J-N=lmb|d~U4eK%~`^)#xLn<6+5>pb_th4w+_Oq#) zyaU1mc6dX|SlC-W&J~IV1=H@_O$sw!$lWlDQRT1-_`-fNmF=Hx8YeLI8a92aUgHt# z=2B8n{_{8ZEzOu#K?XoSQcyRH-)Qh%Qon=fc@mjHdpPw|=^+qg^c4M{BDV9gPlSl0 zLT%NB1w*k-xbi9>3F~0QADYrS^@P@lIPD92T!l%D= X0KnF zrV?Eth7Q)Hmqf5n-LoE=tOiu 3E?^r4)ISN!J5vhSw>ZH}%;F0IO{F!{_7U9av^x=m7KO0R$ zqo;ahgEM}zC*pH vOF=}@6KLx zv 0q!R&=~xr;h!tN`^agdh1E+GDCO*e?cy>`I_G6D za(3L?ca{V_B^|$+*!{Pyx<-SGmF `W~Z9j-CC z_SSpp^FvrKjPERTr<6bQ;2}HZYfsh2y1k4I)>p+fxAWXnrK~%*f*r)B+r@)9^*GY1 zO>r(AKv*cag4%qU!`9yi+QP?hd@H(s=+EL|QaN_Zdt z_ea&ue7o*{m7Q-p9IG;xf@zS2xT#0;mZI=V(Toki_!)SQ#V{_zv1sRaSEqyG0Z{WM z8^ktFYgRr*0A7}=IKipwdHx0x)=RYM542rwxk%PhhN=$nD^#3N0s;>xkiMj%Oc#R? zoirZMo>8`SdO%RCyvlA> kd-8(hZ#AeNb!}lz_J&WTwp}Ja78wCN<;YP zj6#}R@tnqT?UX6`SZ;xdk1p-FeSqa&1xkUbA*?b$H?E}mK6kup5>g(&!Lon5eo9{+ zGSfsA>%r^1f>mekT52iE 7-^f?l=W0w?^R$gLEREkrX!mSyTiGkZ!i53P zfNkXdW=nr3rJCL-FT1vED?eyf{;$b)rq5{@o7J^ga7iq+anW`i@j-q-la>?EsG6v8 zhBRLhb(Or5C;OwMHOhDM=P2n0>pPq2Zt 1`NMVFL(3rTp|CJlYAh}BwtLeQd22oj%&B$q7 zElpEnI0&OPd*G!$BmYLtMeuA?QEjJNE>dyo!JN18B$Q=QU$6UiHDCn)3%lrKA`EeC z-rZ3tKvWdFcFhq2aJ}-
u-6V(0w6~y?QXR= z9}JtjtD3i#lqB3ZtK@yhqRivLTou F^A8r}Q%T680)-l=5_?V#FL z6`?DOJp`}XSD=op)1(4|%|Ten;}aL9H=(1vG&Uoy>dHpAlR}Jl)vj?3ATkxrRS)TZ zUsqDjaZm_-X(%BU*CX4UuS0lEIiWC}81!)3SjpQVcjKC|o(h-WfIV1SY5AHKtJ2>C zcvGzZ8gKQg-^+{{J(bhCXbdV|@-sZ8?Vysgf0=MA+cm`PucwHXNWh_>dT0Oda{fjq zSHUI^zVrwgoXX*eux1mY`sGfQNUn(u(Ivf xIF6OLI(G$7wm!VELlu(jiz&t=Jh+>Zuq#?|HBiu; T^dpZeZZUhha*hn}R0KZn&VL(e+A6t|gV$GVRy$HYG~ zES)1_0~~N@U1VJynS@zXd_d|$o~h#wlaUR?8C26`8Yp+=mCJDMNsXH^O7v9xd_IYL zZbgA>V&Ndh>w}ix%vjZGs@wxN$l+5XNr4FrWmJ*
`7e*;85nGhu( zipnff_NDO!o+JnAla{&9&9F)ZyW1pR391B0{5tDmXp!HOrKTqFKnc1KWMN5Q6;*&Y z2Q1;($75&A3|tGSXL98lnR)9=`(&l>=d%&v0@@8XWez_ngb-uk0)7*N$yM5iOJ*F% zbX29|o}7%jpfKbnXY+Unr-RCdJuEZLJjgG7OiuSv&E3?Fewl`4x(N!d{m;sSV= Kt6iuDB908iemD%K_l sbjtcU&Y>6~k-BfAIISmfpiV;$8pe+b3+x&Dm;@&^tg?l^I z8kbQXpuCGhrq$tqPg3POp2IaUo`(aV*6U|@A`02Wmb|7iU4$A_pJ(-ICNGla7p0H} zB9Tj9UDk^$21j|0!)X=Qco;r)ZUULMt_c)`rK2$|IM+d#+GEHEfmYFPn>=VbRtDeU z;6klH;@H5mP+EaW{WYiRP|(@(ZLGfQbKHu$3GqGd7fa)x6GRyv2W_lny~__iTVc_K z`%V=7#60A)k?T}Uv#By6<4m{%7>?J?t(EN)?O&!^`mYnU{8yNAfUyW5{LA4cZTk1R z&(SU1_w|^Y@q3_REjlGHz?|E6qsDaj^(llScSK~Fp`=ZgWG% 1?;yU%spp6gdr_pN+#lK<5=-9T(M2bK=0+_PibG%2AnlX z4}Vq0zmfm6J48MkLZP`OSr0gUxaG1eLbpZgkIE~FO#JpZ(f!g181pu6!+Ob0-{C%d zTPq>vEPQ)y>>_JXJ(;><{iu9jse}tb-$DBHuiuaKb}Gtdq{}4`%ud{+rkDekxl+y) z=7E_TcOfXe0iV91Xrpi%Qid49TglOraqLsG&KjI`m;g*Yok`y>jOti0tEGd^u5PSK z*sOrk)~hu0hLF%5|L5oG;KLsw_6PnQw{?r>PZy3C=+o@E$%HQWgozA7)5#yL4KpYr zyE$nSEOY)DeDXtcpBdC|{)$wsWvBS(20NWIASLp}#It42=9f@Lnc=8a?vbLk&@!d( z2{0Yxs}=gxcq5s1sp-0-gXCz1D_+K|>?5Tv(!!%iQ*DO2v+n`LLwi0hyr?N=lOaLB z)IG@TZ4-$091Gz~B0ix?BZl=o3v;XT`9W;Hb6w_eHcL(Dn#b)jw3aQr@h}l?R0Im2 z-+H9<+auF~b8SWxdJt)UF$qz6k4-2~ll8lZ_GXjb&Ed0;8xFtwpE}MeEB3)~`FkwV zFGVFcCLMhi)`b7j@H Q{l^sO`pkdD6VKWig~}|*P^1UOkd-^ZlLB< zN&0cJW@TsR)D3}+)taTcKrx&SCRpLWO*LR=po@iD;H7hBmdG#~QRks9 zGHK5XxlU(`2C +grntng+BYt5SnpD@$@yWjnuUmk zBk7}QM&!?^A*_gVMGEO;D6lE~T1O`!v_^Wu{pS0Wh1bUP?fK73kk2gZ<>qKi2(97k z&U0G3{$ptif9L1YYkX&C7bY7HIy@@So2UFm1I{~?dp$L-8mR(ZpDj!$%uVZi4!+Pk zL|~RmgDuK*0t>TF4zeMqRgkpnSRk6)wxbb|;fpT#sMHb@+PR12oWtcu7QzAjcLr+0 z Ao8f((X4eyvsWxfX zkX+^4s|}N=V?>U_SPK?T2EE?gIwe?cPnPh4uqqa3S=+!`Y(nb>;&h9MCME(uB;PkH zSesI^-AyJ$e-= 1;xJxMxj&91J1^55)3e*&nTeP8_&nE#Px NC%Wq!uYdBu%zIz?q!qx&Vb!#jkaac z@RpPfg&LWn*qnI)ejJ|xPSQZgalws~vh(GF%8N8;`z}teIfGeH`*re7Ls3`w{H~Li zz4A5xi9}tG-j&ma?Qi4Z$|W~(Sm=ba4q0s06G3JI9WZGhgd+)eeqIcn{UVvPxaeOV zX(ZE?Rxt@tMWSfvGECkb3IrYsXgX;~f}`t`>T1|djEAfV$GQpqU hKBCvm zu?Zq$LHWchGRo$eAIV`yGhTtmUT`I#7BEr(IDx!7>XTTkHE2lhlm@v^lT&*Gx`Lc0 zHbsPPtNVXRgBK3ZMK_&4`2uQbyfWlUs6J NO(FTL7k<_|?$edN3lt7R294eG z{r^&uA$WiGQK BO}|7*e%7*JK*2mF z^=CB}Qig$wYzX!`M(lLIvDvul?E%I2K)g+$G|}Kk%1d3qA2b6Y;~_GU%EsqQDbi +}-&WY6mMiEL7~-6OWmPU@Qoa5Y3#V`+=#L-4kg6_T=~`N+)P@%?IO0 zd^WtDz+S)6SMr`_j*Dg;+vZ#QDm`$Cf}3?9D1`ybb0fxUUVQ+N3YBWrd2^##&xI?S zql;_ktb$#d7-7!99vGcg6ytU}DPC4 sM$T5LYTi&xZ{ zfpMD;urMCX7Mchy{u!#Wfd%08SJlQQQVbi Y@|e{JsyDEBm! zg#Ac9Tunxmluqv85Jh7u&aeZkk+zd6Xj3Y$+hccH+l8vl1)8~QG;?EAOu-%HBF+|( z)D^olmL$&1Ss^FExNQu|=^V#6xV{|yjh6rDZ0emu!}&CfG+k@y)v=*i=h>5n(=&|4 zZ|kq!vq)sFnU$_K8ES1QoFB7tLm@s^*iYba{~hBkT7D}FGa}i2g8VpQ`D#>}fL{`8 z;sS@J!(L|;A!Yp1$Wg1I*(X86$|svu5kSA=I@873rH&3N{&Dzwu~5i4xhf!iaZ-WB zqi4U*mtedxVsV?fhS#e+XFFxk3K!X&-kD^Dg4{9m-#x-oxLFU*h~GdJGuL7$od9$5 z8i_b%jv 7j?rDt% &{(kz z$RF+W7>~YS4iBh3ekXv|M{b*xw*FV$3GuJ(mV1Cyd-f(fbe$2q4;pH0ms!+@6To>J zhdw)pjo{xNv MPd<+&X`*>(Y;vAkx zZaT^>1PeJpOPbCzZ5Qsc^`v>I9d2KHf!hxSH2_Ct=6j_T#@IjT(7EdYwwqqd-&k~j zRzQv2|7h4{-sD-b>ZW`kntBM`#(nPmkvwH;0U~T310_oR3Ew_(Om+LE9{H~WF`Jv1 zU3mUxuMoV%KL7RX;)tCqqhp)Ps=k|I=7q-0_iSv6MX&E|59Z4rKfv*A!-k z#UAmjHxW8SbuJDYkV`-3MV6Q#_#lFj-}i>r6x(dRGOmCh ?A)lczr znUK)Bx;T}-O(Rlc)&%>)en^B7a7_SmT?$?hqfFc!*}Aw^q!9FN(Ye>hWxp&`shF4w zJ4r>4#6pjxkzytw+7Gz2I};cElrH%kLtZcvHCB6un!Ze}v>lo;lGy!+`$myqX^pwN z!w*i&3DD^H_)XWOkYZw&P7#t=gtS|+Qj#k-L><&Ym*8kPsQ|5o`N-hiOra`1R0~v! zcT57-c)35BXM^`yPo5b4wR-KjQ=13QDu8ZRLyHOp&^g){ ScBCgcy<3&5DhX2wsb=b<%Bz7AK{`|>2M)qCN;s*!U#&hwS+OqIf;_ BE`QUa(aKsEY2Sm)#H0D$LE FiYAZSxu*U+2WnC12i=@> z=5}e(Wpba%xvR%vk3ek9s#|9;-2b0oj>RtL8hHjzGLWq5a=Z9Tk=u}x*Q34f9aJXm zf^?iq+sV+aWM6x;_6cRzvT$+SH7)OFAIY81KL)<9E@Y9cUXDhPD_|rCCO_b3lf@(a z_ArqrzGhhk6;We$ (nHGv!{{4vs72EP-h8T4;Q(Z ohx`^Qd^;sGNBYB4Vqfa61+~oOKq(Mx8@FTAR~JO; z>zBeD%@OBW&6`I6cZ(W-)$@!Cnrp4CurJdU_HbPgd0LOG7vVb20-an>Ub`*c?{Y_v z5SdP>1~y5wBgD^8+nzss*7tG=5!h%3-t}kCUi?P}I~n&5_lA^{H6R%t6V59}-i$r} zliG*oP;!NCctP`1Ezq(D |KLkSKHgr%ju>NbT=h-6=<(fMFvqplK>9 z4BWO~qjAq#=wWDBm(MiOV=|pH6?!{=FKGz45o6tlPyz|C_W=B_1BxQJt*wiY5a4Q! zLMs|nozDH-i4ftVjO~xDaO&^h0$;pRGA&Wse9B-@B#>>7`~B%?E7kXsJ${x15bp>b zP`@
&Z^OLY+Sy%-7{^V ZhJ6+BO>)9$#hwLcBCL(ik zWJeoU*E;RPN_=^0$6|5!Athki>CQ~wk?iG4Ef$C3#i;4^%xyTb>EynM^mi{@@QFdA z?O1!I`_{^(d9)1I9qvg6>PEcR))%ge%1qk#E+h%#rUr4nOQdbwe&vFFI3aS@WU=`| z@vMdWti^zIS9ayn>8vu7j6X(+Jl%{$V6Qzq8kr1bip5?_AZDAgi~O;{wFf+U!xu0A zr|w(KK9PLBNKPY+O*+3t7S!O&lN%jMpiibkf;~CHSe(%^HIo Mw<{vlRekBe{(b&l2kEaUOjxMgFacgxjun4^tYZ$-{q_m%R9%h_UQtu zXqm5*nE)mw1q=H*?zIo<6R4?;71ypRfU^YJti;rPL{67SD?(XQ$+B!+$%AI1ux=89 z`xH@mj3ko=PysDHvU|VXNY0D>N+~i?tI=9dQIKJ$91EC#PmB_AoaXtgSu>x!y2*Tw zeb?6g)2-SVgAYjkzdE8nqs;Tw)yzJ>+Vx#!U!3xvzh0*iA>d%AJ)R*CMixwVKjjiX z$dhR-I0$!Vgw})VxwOG&zgT44YChq ta6jRHyUXBiFA#QHD+(*cNMS78CE+PuQILS%!x0-u-(m2Fd@i> zbE4FRqZ@`^&Y0nL%%$QDjwbu^@`JFcLs9;HmAm}L1g&9Tp6XgHR+Xd8It|#8&cJGF zgg7@STn4xD9p!-gk2Djie3YH%84o$UOnS`GxqX5Oy}%d-uy09u%P* _NMnh@XUtjUB-<}N^97xDU1d(gfpNF~- zPtsAt927-t6uZQ-Kd1(5@+e12JT*T>i$2X++$*XI;`~Y_QTu%(MZuT*^nW#;_zb7v z78A Nk<^yUq$g(UPrW z&%bh)N1=+Vhmfr+Mfmpj#Mtcv>@+S|h{^5T5uzkC*vBno)N5k8-`VWt-{tj~=?^iU zn3EE3d@xfZO7c!A1hq^m-o Rj?D*bycw`%h%e+Vbyn(QohiRpn-MxqX&dPx^x&G0Zwnv%$l2UI;rgVT5+J zE`Kn3OB0@}zstvPfHaThit;*dQ%F _hThy&f48vU^6PaR_DXX#|BF= z#~mbGne1YvZ8QT~Ybe?-!4f_5%4cmrj`_-r;_HQ)Ov3L>ZNIR^SK_rXlui!uq^O?7 z m$WcR85`M@8tW5m}ijpx}+^~<)s&6(XCnxu( z)pbFIosYM^HbqI{1m>$FvC^T&*Tpa^n*BuN4FCFV y{T`Gjv~fa z(oy%T 2U+QvzI5Wg0eLh}tb24L3Y93g^YibNSh6lNR}MWE}W$`9~wTsE@cnj;MvH z$ds9U6m&c&K-shd)qdc?-<@Ez?2a?iCVTDP5&s?HFYJu16awz-I#u=gV_!%7!!q=; zKQJ_^K;+cl;ZW* Y98fs!-) z=PREp2f`<5_$mD#1;5z) mUB;+ji(hhn+LBS{%i)75ru$ z`@@tZ_00Q8(DfH1h)+LXorx=2m~%A!x|(@&|8y2khlxemDETdRHDXS&{+X55dw#oZ z2B_u6Qja S+a+65k|N2&2BvGkGmdn}%O1+Z>a4Y1TZw;rT1j_2-J DI7;1P-8(%&nd`2CP@>YKKl3ScUbD_%RG z`W&iP@4&;#!CsN0E?2W9-S8%mg&s}ZP&&ZI*aePoR8iIGFica --Z@|?Z5r3G?ehFSk z4-aM+e!Q}zQ*Ds?2 k+2f_1WQ)2C8Cg>9YCqH>He!uj&fULgi~JzWBX? zJN{b+bIg?p#bL#PTj~fp_t+Oy?PHMJhisB`vlKhHyA;aW^iB{pyP?1Kvz9JHtdQ$A zgOZUP1_5iIKJjb%Db>}19FVem8(iS _r#bS~v~FrjMT@UD759 zZJzu&gW6{*s77C;5 _So;p}9oIq&r^B6LLo4hJZKUW=9yi|(Se=J)w z;X&`V0hRi@fdj|no=ieWlL%pXs`!9^m@N?ilCc`@%c>0eOOYIN$~C9bVRt!p~&a+zM=TmLJUFPEL#pa5p4$9CLbF)sYQJAms zO}5kVqNn#l7ly@S{1|6!#*}BLSs>m&757?XXs>oP`i}fDV>ONP%b$*CD3SUv6F*e} z1OEfjPIflx?tb%(|Bo#+QEU}zH*F(+*kYS9731eP3rX7<+yy;kNH+uH5>N|1c-N{} zd{y}yWk2l9s_@3)l U++j3XFpzLxwKeMe)b z#qZ@4i1VIfNXt>BQsizAF(F^kN(JfI0{wz-=Hl-|;h7UcHQIt>qls{bkO| NEwqDg#}eX!^SL4n#%W zYb^cY(`*|GTGY0^fIAEeA|-^%h;# |7EKRH2L3&S;}uPQh@}tI$N; z>H r8zR^_Ko)+Mu}f>>Nh4&|uKSy( z{ Ubm#;=t>v 8Umdr;WnPkT0MuME@`YGO6k;bgyOCj~n`sf)oLv znaWoR(qt$agLh`vikw#gWEg@Bv3jOOvQD14A I%_;po^65R8 zVrL6c{jni5Tex#p=Go3u$Fn3;h|!t `$hMWw?F ?7K&D3@DQMpZ}`uK)F23gL^b!2kNAK?PW`=exErcr}P#h540rGFoMP$fn$ zUtUXW99B713H@KB99+@ L1= qaz^LxQ>zX{C_5WhLP7IrYwEkbl(r&xJKEs(5Ng7MCa^0{2e{tC*7Q_AQCY z@;g*dSFhJO+#VhEbi$?GuF{dY54rBZS{&s!RC!Y9zjsn8SQ8pFTJ!O><)K{$>Q|4v zhH`1I+)3!Qf#9~Ra|0i>7_)n4SphzRCS5&(s$&pmJ%L%)RS>NzpxQ=_x`V49JiQWa zq3g`ReV-Fsq+T_R_$5lz %&C-3`>-B;W4Siet-W@7$jG>K+U^!>~i);FM zIzf#6MSX3d`>KZDMgD!aAn3i@ijMyK^xaE+y$O)U0)Jm=FFd;D=( *D r9i_Vg&ur`{y=LzHHBl}$3bhd{(7U7k2Q__@0kgU6?K~HIsI^?R zCRLZBGX5mS&GFqAq~rIz8Bq_7(-axr+!EH-33ij2+W(EF>+nl*eczQQsZ^*eO9iY` zT59Gf_p0M5PtJ-I)6h)KiJ~Y@w4$VPRqlnAEB6M?6`4EtK*51~;y}fL $>jiQPPIxes<;VsV;Utq&W-!_*J2~9&IAiXbQH_cwVq4)H YxwzI~p }zdWpM;XrV;gcZ@^ag2*VJpV3kxe>+-^ )<0MN3L;lsvR_~}jNTgR z_>t73visGTt>*oEIzu9~CB-JSO-$`wG^2KpazIXKc^d+8ZJ)|hc-<}!c0Et_$AEYs zklv$W2mBFA;ZTV|t^2((nSM8NNpXEVnm3 SB`Bk2;eMo!O z{8A m4xvU|f1%^#36iT<~@ i3nMyi-*cA(UEj=bB& zytb|vAmC7R#ln}_H=Q$+M-YW^7L{{jMiy?L$_$2lYDMtae*rZ{kJdC!!bhHdn`{6r z&U3Geu;CNTd{5O_qH=NmD(!9u`Xyp*It~gomSmjlp+VfXU04e`I$ZR^Ev_W(MTUE5 zJ?I{zVT%G@(yNPmhcG+nnNC)>U#@$ E?CTrzAXfO);F#6Rg> z>xF4`zSd^F=zqQ8Xm|S ytC6T4a ziob;))K!jb=jWJIap|wB;ec!CoaMrR*KdjMmAt%MwnLBb qGxz7lmm<^P$s8KY zco2$LdFxD Rv3`7CX7 G)tyT>d=M*xWd%_~z^m{8!bYovbMGnmFVN+UvSYq!?-w&urES`>WKzm6A7IcVOv> z=@|scRNH-|yqa|uPf~I?XIXYFO*fSnvXdK{H Jj!5>0&kZ_jw5p#IjvQCJG zGL_1*E|c$9Gzi|?tQ{L1#h`2FW;M<^Ph9IS#H8^`E2);z6$D_k8R(EL`+iEQ*Y%*; zw~@iu8qUKDOXT-rQb2ytse8yZBbc _Igzp( z8RSt$S1xu93ERxYp}B#O;0z8IBC}KH<}`8#% qI^RopAK;)IxBR~E21GYUvm~Udtt#(YucTNCdQGH`wI&nZ6ii&tLw$A*EXv6@ z2B?M$otNC|(LLhDosy7)QJpc(gGHwSHMdN3u#xCQHRM3aO1pNcH{a*?n5uX6G>WZa zXR$p^{}hnnP!>R6%hKRlhG@OpY@_`99n1cupVH0F-8lHvXzz|OK5Nd`^e7>{U<^o# z=!l)JfM_Z_X`$v_T6bDGql7J9XbRT!EbwZdojobcB?ol)wqx@Ja`|rtX!=>y=oQ4o z9$)K~ibWOpBK?R^(ci{-@QH8VJYfG|Q%Z?Z0)B;)0ZOXbJXfWC@&co$PbOH>xE#Q= z<6L^v+)_5#UqNgKAQ*Vy(&)`DO-KHgyr_a5mFbi8H`QE#qo|`a=&P0I#Rzl$)i}np zk&ntdOjzE@U#9C3_g5;h)*$7^ g#1 zFW)@UNKAo@7@$)mR4HQoq*Iml^0DBxc~2ehEz?HJ(k8qhbf`{QCtrs7nLxB^09UTN zE&D&^@Bkv}S^BAkiile+5TYbdU;!b##(w#GKm8?E$=+^m1^=#S>65I6#o$c4>Zxk^ z$XnMTXEsnW9eQ=u0OOSx*P+A5mf# 5-aG$Ydv2yu+;j zTEhdMM~fNZVRL!8dBE2UNYSgER8+8Rp|a3~ou?-Q*Et`iKFD8%?XLH2gk4ylea @`<2sb4dhubiN{UVmjSV_X$PA*#ZI#UXIj5upXa z^##Qrv;mtGWleI|(&jX*pZM$sl7yu}(t~O gG#Tby|C0BW|w?@jvPTO^-P@%NNXb{NZKp- z-@&>5ebG1&QS71CN1N-s)02jm!aI~jVzzT1wY7-NWw0r @@Ygr8J5%w@fmbr+*ZA+T1{% z%JXroG$$tP&vu?&Nji$%vz(&A6ITSpuGKu}fky4rDWTiPf(q2iQwe6mRDRsXj#eW( zds7i3<-+ig^8DXn4S(AA!;%OYgY`i=bt|*>a?x)mP>fPT)pAujWRQF$XzJ %V9F5{9bgE%~|Mh4h=mTRXHQPe-ZUO$}dpJ?m zZ;4{2;szUH`<$OLtin$o8;-%*Vu$r6E4cTR&oY+M)y_9RuRJ! `fviK%YF`OcYscurdB>?FZwPE_Xu9A>gQFN)@1!e zEqcG#*#z9^tWqu=A?21If+q5mi2Qcu4AQf@JwxF`wcClc+t(Awvd2fW0_qyi KRZ5T{sT%v{XSuc7(6&z(|642Wz|yhFw{r6uCiY)+G~fAn$?Kqdbr3d$ zrc!2zFZ> dH8AJ%@kc2k$}b-b!n} zR~o{@7}fgMyz%ZkZFfWPO);NV9*{aK)2Ea+`@CKbu4wkMF9XHi?PSY8P&`yXJ)sPK z=F!&0zztVt;m@;XlJDltU#lLCBB)y&ziik>VV&Ri>XX ((NrAJZl+R<<(b&RfZveD!=k_`+g!eHJoDu=zP-F+`os1!2p+ZJtvidl9 zX{>dPMwglT*6!31h4id)l>bfh#8AXSUe}+2=MVnO5im_hOLLjcU%J(xW#YgT `&K-!(dHK&;Qg-2((KgGYOhM>Nex;Y37V&9Ut z8CZ5X&JjexWvbz#LLfN!4)em+`;ASOlK4tLuGdpFSZ9GLL8P$AEOD(jj_L6e2pchr z$;E8yNF!n*mag?-`83#d$M5MQ%9RIJDu=2MdtQTcUb<2?S8>EVdWJ){7#sm!svv%s zM7W1bqtVtD-m3R9TfR=KPnWa3pUk{;Ih>K{8u8HgkuYkrN5TlNP9?%~^7^VO!>61n zBB_wf?I8{!pThcUPZKjBPUIr|zAxpWJe^inr{}-9Zp3?FQdeUS*j6 PYGsT>DgBs$s6~)Dg>s?Ztd9 zgM^tjPCnM5bP9EJ6`(uCBRb}prpJJ}=a>`S^hPx@nrB~p3rWB&HoGPjR?g}N OEhtLTe>Ko7%g?gO$%lATjL#I$qA}8MfeAi;Y;Vh-UyX;Ic&3n3KZTkbC8)j( GQ7&`l#6*&>L8Vq2uCzlK2(pPq|y5Sx=WJuIa=^ow9y z-wX%YIp*Eby7xQGH{l$S -k@CsXH2iR>gd)g!iF5NUy(lJZlj$3c-tg} znQ#1Is3J}Y2Sh(9{cO$Dpsczx!2`4GRPYHI`g|6+^B||2+|y&0H9hFXPy7x8nR6tN zjdeNc4+_*R8Pq(Dxe(+OtU@C$+s**wCTN&$NUBirUCCiQmh Tc#9&^~4`5$9GN;vK%MUk5}u}t(t>fCqB3gpBs6%su-MiTbS|n zfqIN5@s~qFZK+$zxHa%Oy=TAkCIX8?khJpJ+1DwsF|dfC*J1jgjP+yG%&T2Kv5GOi zA{eP`b8Dt~raW1_cn*L<4w*s6jpZK?XoIvY178(W^6q!vZ9utqhm<`SNy~Z}w$ +&x`c-pCrn^29k!Nc6VZ$d ~mqa%*hwpHh35p33M|l0<+xlY*^4&$TZaG~pJiu~wKi9j~U< zPi6Jhi45!kmX)m>>fD)vEa&wX#=J#enyH!;Jp*As#*rHIAUdZ2v5O6ZA|UDp(`7}r zw%R@!GUNZ1ywBxDllCuoMub_hKgB+ACNjC9_8K;6`u#E2)k})gdHux}F40RF?Oo5+ zwalZA^CfI8dz^1x2z#6Lv@8z!L^Cb2J%Yte5C3_N+)iosS*%`(7K3oo1zsm>3eB1E zBnAL>AeEXHme-O^(7{ISKFz)F@0xW((W^MiDGwL@7w@ZWrY^FQme{_iT9mM(#TE2B z_xC9^&%+yfy*yD7p^D*)^F+|sB*mmbs{CpNY$)lHr=f**I;~ex$^9Ealy{y_eLT&z z^;>=G-fq+z(2)bC*e;=q{0iyvAvJ>|{ZZIZ18{rLFS6{8sKL8M5SKgh;|vhehpR8X zN!g{}f)uToOl#dm+TnnS#M&*Xz3U|GX5L@u#&G(!3s=b3X&=}j7sU?q8Ojf@H=8JX zt#p#32wgm8p6s>5b5h>n);XFl&_bV^D?Hs=A97-Cv?uTr%J^(? uVP7h!za zM!bF}!^?3upd=l|pWYUqSQ7kPG&Oxc#AZ~h+`P4W6)@1#tfYyZU+fL}co^U>u{W{q zK2DnhAFK+!I*#OutYrB+Qamj{l=TANHs=OTWwdU*ls?+O!A3@NhCL`)72eu3d00XO z;X9pA9gMrCVG%#ghGAi7ZM;Zj+pb-<7F;LD0v=FCnNM4N;9SXIFZmZdn=yOLJkAI` zyqWIhqGskqTsb2>YU2p|WL){#U`(IZJF4RVO^AWbVdt`I;0XsG){7nlXf)j@$XL60 z6Kp8z|15_Zqgj-bc)ER@$@`kO3vpX8RGY24-!yPvDoW?}u(Bp8H177oK<-eNFqHmd zsa5tnvw7ReuFVF%7FTq5@D3rDb@`6MwnW+f-8kcivm1DFNWn7G8wAV^Z%;_Yb}u z8G3qH%XG4odby*~#1i11!iy%*+D4_z+?r+o4~P)Kw-d$r25%Dk4p(a3M7j^+42%U< z#rErhe0F~rRf3f9i!jMyB{kxZj tH&!iAA-C$ zCu1Ba(WB*I#-kgvF2kC11hBYPR+V16(O^z=By?(>KW|oFiIzl>7LVF20=u@K_PWXQ zekEBtM;tZ;U%Wb@YKfo$o@Ul_r#LJ|-_66(*ha~=c29)dN0Z#I2wqYGQH+c%mZKe# zD?Qfc(P-I~X|rw#;!;sjgliFx_U&BFcxhuC{yjn6bI$J2gpR`)Y@e%AjxWqXZ|WW$ z$>B*brEIIjMF@K^9Y)KFBqry>0u|ZNkkLn4H+7JepP{RhZ+8GM`o8ndr^ln8b`q*G z8$1y+D~f~vr3h90qK}x1J#Dyn5eU`EZ_ZqHXbr7<$(pY%3nJ1blA4^R`v1(HX*XR@ z`D2o_xVsC?Sgy~;m351a?mirO*D=SG;7KeN`1yqgGx1FacsJ*d)%|Dn?8s-0C-%si zg|R#la=S3+e=mNePkVp9Xn6clLLEO23wC9RljxUtg4}d_L1>5TQ%p|b1*MKtx2^1s>3#O-6 jNBfE4h36i?U+> z10_a7N#)X@+VhqyN9Tn1`s?n7@z4ckyN>}EWW)M-CS?U7)bMTOe&N#>hz=o7XdpSH zc YCx6SD52w~HAjpRfq`YNh)y9rnOz;j!**F4+j4pViZtGV$B00 >KbKSL}3mM98<{Ua~h+Gs)G{1&si9!8)%MCbSoQ&ksz 9Frn-tjtE8F1H@+ zrW|04!wtKd6v_I=SObmB`McfMPo+YPmHzEewQ4zCB_)8f&2?VY*$|}`XQ)q=cYB0h z*{gc++3=y2Qv$-L%vT2~mQ%CR=okrxd6PXiRgqSud^_&g>u8;%+R67W+)lc(fVzTG zSHV>TxzcUKrpGa|)XsAqTNUj35yI*{=k=x|Qoxz(rf1ehh1K2r{XwxIWq&S3%k-*I z){7LCA2O#>vkog^j#QnMk>J6Gv9mN%2`y 3_7CI`YMj)zQxLPw2bZb? gKj7XE!+)RK|Hxf29xAN5azBT4!m5DKMF8I@mDo}!EzL};Ni=*k* z{o7eO-ECtNJD zw)W&g*TFrzddqMa<_UUX6qPd*Vf7OhkF_^Zix^#vbCJcE5gAe zytNg2G%N6YA?0RrYEJbx3mCQEHq_Nc8DgIyQA534I+vRqIDI2URcp7WG5%j9(WRw0 z%m&B}rx3WZ`}MUdWC%UNlrpPwwxj|$4CsdivG^?cPZI?@*##mL(Feg0jg=n*cYjD~ z4;YNaI8$BQscpD0;y^x!v4v%w9ddcaa_}CE3M|FT f z u8FKP9k53bS&GR*a z8<%@^dzObPZp29ArBO33Xe*F6+nHzOa>33K3vx&dhr%JW%=DfevTd*k`WZL?*y{MR zq?hckolktR49FDHcU@>czvC=n^*2=hYm85%h}mRf+lTZhns+0wKQogu#%?%WT4!T& z+7@ BtsTQY1gv!2?zm5G48`>g8l6Y$lHbw|<)ORS z6n~%df@4_*Wn ~F7u zge!#>6WS{Fzwd9ubt>Bg2M162r_b2q`|ZQ_E0kCdXQDGX$>BaCo7d}Y-h*qhWal$M zZ|SIkk*LB1g6M_ABSpMsIxg&Q59QbWf=>KE6lCS{)=4z0S>$~0&;2oZ$0{}V^n!~? zKFaUMm*ljCb&eP2hC*^ggV`OWdnw)67Am^0{^HbyJh2_3N_n%xkxJZ)#Fu1RwD(xe zLLkOEM?!gJsws;{xY0DhaI89He+VDYcMcZ*{p%M!!ZqW`gcf74QK9MGun}^ALvu(b zQCvh%LmJ}sj!?_XbJu@_T$;>fd0 5|UD^%nOtg#dqMEL^ z>ro23XL_vJbue Psb|USwzU!}bS~P+%2TCscG$JA zEN}N&$}^)X^7WJ+s-Y2t9yK>)tEfVe&jov7N{n%~U&r!@Ss-=9K)TUi>UbmWXKXt) zulkYlx(xhu;;noZ^SLNp5jQy#cd3wJ@tdtc{e~oK>iBDc@Y>>NwLiSxP^j`CPZ*4zO}=^>ro6%p7Z> zw=B1)mw(R)Qtt)Kmh&MMuh|GI_J?2i^28?d_!fC{bUxhJnyHnDoM9-iV@_KZZX`N+ zuUhp`+s2^$uhPwgOO~@!IQwz#f`0RS+?TStE->XEZRM9Y$St>(Xb?cYO%3bZAIqt^ zidcW5-bW2 0(LB}C!9v>(qJmLbxZvtO&&u%T6orRY zvzaW%*6zSjL}|wK2U9QOF|)N9tr7a)`$uuME@$F%`}4_qNU`NS&-qnAg&A3qEa;4G zRNS~R;pdgwo!tmUp*4}4l&P$3*o2|-Zj>YaC~c3vuAf{Yiq*tEM2}rm5R>MC`^5X_ z#1g|B!Bc$NUXLpEJIr-yKa}i(Grwo;xoq%{{vyubjMdsWN={;Unz~);c~WDOPkc`Q z+iyI}CE^Rkn8Xw}wTiNbudpHy25xql;Jex Q9W;Orp=T=Z-eEGQ%OgfI8!)e> z1FHWSp1)PVf6Qn~Tsv^(nXZ~z0HZi*;*wP*O~Ds`$njj*?7J%?Xg@-BI&8?Nvx9lG zA=*B?KG4&mn~D~FIjcsrudYcWFiyOjMFN{9_`$-NL~|-k&8I0<(`odx+y&a KeKKLvU;6l-x|HPWhs+P~JtM*Y*tzm|Kf}f3Cn~EX`i2+~iI;ZNa zO{d*GOi@mvs$R);9cjN_+Z)Z`^CQLCj|QPVH_*)5gUy5e>)QZSi+r<}hH{t+2{q;G zdna90+KeFR*^O#p*q?tmed~l6t06UBeQ_pV9CP_LW!dUDKk(WZHhHXMoN>ZZ>};N$ zpAkTEL2J&A&X!9DcYOi7mOqxUt?hErec+Yy^S9!8hUu^V8>XrFks165;m_=qugo^U zK--;Th?n5JWkBB0{;i$*a45yXsxxcv>eTh$nM;YC0}Wrt9YU1Av9q#PnwCGQFu!LI zQK_KstO+Jqz)N=Hs^@xJh1CYm(3h9d`+x>ivB<+6Y7MSaCBv4Jwa=6IQkY|jQd<-S z743Q|Y9r09P G?>tNpQ2 9pn!j>A}r4 1^*zu8>*ugFeUWX(sr