From f85394be5618c80f487fa4b7bd4fd8d70dd2d973 Mon Sep 17 00:00:00 2001 From: Michael Herzog Date: Wed, 12 Aug 2026 05:38:46 +0200 Subject: [PATCH] CSMShadowNode: Fix frame-late bug. (#34213) --- examples/jsm/csm/CSMShadowNode.js | 13 +++++++++++++ examples/screenshots/webgpu_shadowmap_csm.jpg | Bin 21934 -> 21226 bytes 2 files changed, 13 insertions(+) diff --git a/examples/jsm/csm/CSMShadowNode.js b/examples/jsm/csm/CSMShadowNode.js index 84984a8f708029..96f3884baaf76c 100644 --- a/examples/jsm/csm/CSMShadowNode.js +++ b/examples/jsm/csm/CSMShadowNode.js @@ -491,6 +491,16 @@ class CSMShadowNode extends ShadowBaseNode { } + build( builder ) { + + // register before the shadow nodes so `updateBefore()` runs first + + builder.addSequentialNode( this ); + + return super.build( builder ); + + } + setup( builder ) { if ( this.camera === null ) this._init( builder ); @@ -562,6 +572,9 @@ class CSMShadowNode extends ShadowBaseNode { lwLight.target.position.copy( _center ); lwLight.target.position.add( _lightDirection ); + lwLight.updateMatrixWorld(); + lwLight.target.updateMatrixWorld(); + } } diff --git a/examples/screenshots/webgpu_shadowmap_csm.jpg b/examples/screenshots/webgpu_shadowmap_csm.jpg index 09113409da95aeeddac5664f1168f699f2e11be6..e0da0971b90bfdfd9ca71c23f892036279029845 100644 GIT binary patch delta 18396 zcmcG#XHZj7`!5pvO5)crP9rj; zNr_KY7i*+cPdU*qXfA;l^c2FPKF(J?J}G)E`T0pfKt69r@6`e1-Ic0YB4Ab_=6hXV zqZ?~3PrW{IN?xw*Z+^;1(5CMm#A1iiDj-IXV1r&v8Ax%_HIO?@N^zWOtobZGr|13` z^+y@+i>!fFho7bB?>(;F%kKBPel_UiChy9v#>#9RN&L6Z`n&a|lzy2e{{`xE+{5jk zl2vCC0qm;UPWymqY-_O|hi|OVUyhu9>A~8YN9nHOJmkd*kdK8Bu{C zben^&bB^!|YSuiTj1Bhum}uY1ZeYBw$L*d6`(agWw+~V2CSs!H5#qh|-ZqE9Gw|C7 zqOGP`&3>j)1{xzpysg|tDm}*L2ALRjq(mJcMXrP^Qxu-1O ze_B8xqA@3I&Z`lM#dM0U)U`xUyHt`N8CaGKwGX4u#;#cwV6Rk9S(}A6IZ2fkqF*`? zg?B7EP~e)YH2I(0jbYt|9sKD~kNPJyj)!8c68t`bB0Ma~uaoUNhEtMKhJU2h%{Bp2 z$>AobKG{d{T&(740s-HOZhczq94b0vne0<$;75GCDc}R^8H#khmAtkEIBzFhSReAZ z(w#rkyrc1b#(oXb^f;mBt*!QNjh8E5e=p~pJjf2vkkk^7sc%V;SZi5n)N>15X`4Cr zk$}+B`1q`)OpWKGqgu6>mE{bqN7h>z@T{I*Oi5}vGM-SJpLAJZjaKkV2(lc9YrMDD zYk3GY(BHU>SWnUig=HSdHWwKb)L^Aj^$sMPc?bq#bt%AD)#r$t?7I1f7;uQYf}3Vu{4=8yed8U7ET`ee{-j9(D1R@(j0F>nza%}!x2GYN?MmcP);DkbPOH|>+yMdxu@IHDb|o~QB_1TsLSe^9&V zA7Bm!h!c$SrJb;3fPPspK-U?dw>(4|19YcMnE^Tl(iH1G)!y?~!^L^_sPd<(bI|q%9e(WbnXh9uaj=e> zK(xDCEu}^dQ&Wv5pP6QW=9idL-J7Y2b?Srs-@a4Ln~`jz*c&iFpK>rXI+TzHWNNnl ze-8Tpag5&oaYz5}7weKPV3sYkRj)da>amP`Ud3OR=G*G1i%1l0WRqWMOx9w{1?uq7 zh!&OLAah#2)lOqb{ zzZlE_bxQO0smSx1yp@+&@CLhg^X|d@TFS53Amv6W&*=S_3gs-WdZO>nMz==k<%{S) zY=(mT;-cr%oS%dElZRX0<_bmtYon%-#Y(eDjbl}WZxe5{KK{94Z-2Y*#mrQ~S+kTC z)nPPG=S5@ll&plLSfjcjL9CV_Rei_36~ncrrq>2N2@6%MPPU_Obq?yr50o@Kt{-4u zAWpRTZLyw@?liS@&g&2O!T@oQQ2$UHV+8JZvNK#AAG3#>376U=6(8&Y-F4`3W-U+M zg$#3c031u-M-`{N67F*kzl3$4VTV(@`TVdwa&ruj0cj(Mef%fBbTIY)tf<%zfs$3* z@Rb9ZQ#5Hg@C6l@X!(s>Hr6>BE4(%`@vbU+=Gm~u?A^-hFQa^wRTKUrw^A)k)5eEk zPbpWLc*9;gD_7QxMuh`=weqX)H6`Y|Y*1Ra&YGk)G(im;lgFo_z760G4c_;ET_SNa z-VU0Ij;5_`(=T+eX}R`kof0U#nbBBfOZFZtY=8l}3H*Xy>*|m>W8bAjw78Q}Jax*U zF9?i?BiW=!FRq|u{O7u8u)p8uW^KQU9yBhQ87bC`qDh*GD1d%C!uRF;MR<77soBy` zQ|;}w>`pck$PSN=h7zZ3N3GpmzF>ntkye45SB)ej!YUI;)jmB^O%fp+;R*O0MROx( zT7+Kk@}Y!So7~4MVg9n(NZrT&@ziD)mGXGKZPhiY5V88QKqE`zxpFMoeQ3wpMUt)e zMNhGAt_=8XJ78Ui&nmV~fH!FO*MyZg>;w({aa88Xbtgc6rkf}=EqsQzIPlfiDN$5a zA7lmkGeAb54u68c@q%Y=GT@hae9dX&o6}qW5Ucyf1RII&dimE>`7{Cl4(AsEiB=ZK zswhQsv!$dLE6Xon5<2LHEC^3Enhmb;ruCZgPdlSlz==fYJ^Z~S^z6^i>6@s971d2g zszti1s^U3`wn2xHxED=Xe{|m}d{>&>gJyzA2?OK4MV!mW}6HhSZpg=|w~NORU;S zCJpFuIl#6tLs!7}+s*yyM}B2PI? zv`9i%eDja+=Q5`Z5^M=|{J1BCr$w5WC{`y(tR3jM^DIh(7@HTiUhR@F)M`tvVmpcs}7iWbjli=`+m`{)j6bqNwjD>{p=nC zR9opwK2yX1z3!r7hah-X;ur&Tf8YrN6!{26w?-HuhUYkmsSD64&dxcJnjQ8U4Q>D- z`a`MeUVdM<&`q~Tlh=x_f3o=SYZIE{_Gm*2-dd((rm(nKGDSwPk`r*-QPhy+om;jM zxfZeUpYJ9my%aAj_??~XkQvs$it&$TfTFAj_vkS#7zXG~2m?gSTp$mCNfUF(3I@ou zeuW@Y$kD=CfszE@yAHY9?V~q+B5Pf_EMk)H1u}+b9bJ{s}uuL zK(Jo(*HOc5KRF+%a&O_=j?>M?YWeRhkw3>{iY4+^)=kTzi@U9*uST2KAl^n33&i8L^BeAMWF7;t$bCuidjVe*>>+QGb{^R7<8`J&%8bL89Q z4@p-1XvyKLIB}f)?qar0=RjGAy0H-zdr%~Z(>nhP2b<`9LB6~ol%EaL)-;FBO3cmr z_&$rMW@CWhvA@X}SN7j%v}a>y2G08)K;gE?9UC9E6;#?yX^T|R2>NSbpUs=g!J%=@ zc2`80+x_WWOeJPRb-^gek~kLRjhDGFHX(*a&4WqO+%26*Z^{bL`#Sir$7QFy`EY)6vLUEbKYYmD zcc^BUNclOsO)%ah{VCe>Ew(?*`C*@-;1MJ6*sJ)O-s3rI$Udh%F+N3B z#X~9ux{Q=KG@&?{ocD86^BgD_X0k3 zKf?k%dYGA<)||3H)B!L0zOxi30ExUc{E8_RAqfFjH*y>vj{177hDfZ@-N6jd`SUy5 z^l(Kq^*FPCAZgEV9CDOySl(BQf>^O6-1>VOq3SAnH)wMC2| znj#mR-kCmC%>p}D(b#cGA~EYtyZjqKuL1o9m;F*+^4deoo5MN!n%;|z;O=hyUb6waT#@K59e@C|IR#rtI;c%<06YWEOO39WHv zfObT?mWTGn00{U1bQxrN?9Rm*JG;3XiCa^umhoI4SUASxs$J|k?p+kH`)=--X|ku~ zO>5kQ%YU{d0(wJm$P+Kkz7ecO?f8ehRMXf`si42F)s;mGHl}v<25PpzUCGC+1kF#OqcqqSe6KOF zlp9f`m9MbEFZaoaq)<-u=yjDcm}!}lLp6Spnu?W|AE<<r(S7UFL0~cs8;}V;8)3AU?6<8cziXiFd z*ih9Z4$~Q+&vn0`MEOPrXwhz+0kZUmEJrhMgT%QE!F$4086Xr7ipp)m0Hw43pFe<% z@ncD!k1+K6|IfkThaO-6M7_5|`5CH}v492#yG?Cj4c}bNo-+>m{h_2ndvWRY_1x4w zm0Xqq7i;t7sI0&v6bU?^%}p_+p3ZA~#Lop6a1kFZwuqd0zV8r{cam3uURmw!=+vpW zcx8NdqiXbTGqU<{4QEm}Py!g^TP);zWmT;OC&z0x!v04cy} z1hw6(_F+;k!5633)Api$K&B+DRwpK#pg-8RCS8$@IfW%B{T61wLDpK_LpGQGy^S?) zCVG&Ab~R-VYpc&|eHKT{;BXO%4A3e+;tj@ta1B6gMeIR(eE+z-#{6YvvfnK@iY{{tFd2ZdDq+;~xE~ zfXc4;3EgOx0{fMpv+-@df8IZfNFXdBSm0a}Ew>DY;{H^VxQ&jTVStQNFWmp+{}UDj z?EO)n_z)kLl|&~qK*K)a#)f<<4^N)aQSV|E71}H#SQHkZWfXtpEasubQ&WdXw|Be! zG>ugra#r2_==zY zC33@EwA0TosnLC7Wn+P&+d{-@P7pSoD|N?#UiIJQc4F-6r^NZ$d#_(! zHG31`xWDhP;}lLtxum%T$EYdF1esh^ot>XcKMa%(3^H3b{8R3JO(sn9yf3$&zfANK zSiyA+GF}e-@U>*mv92fI5msY4Dp=7nuEUCCAOc#v7JO3sFV(BZtJ@Yw~#=sV3VkYdX8#s;cgdi!QL>V!#WV>>Ct2_3Ce9bolKhWQk)lU zgymf+V!%A_-tIRB2$!rOhq(y(7cUC>bo|v>5Q*(@eqx}Q@IfKibl(&NZQ9_+-y(VBl$xT(G^l zA#bi&f8^Z554F6|C%;a-RQ*~ExNT0Z|D-4;6fT!Hq>gO*FL}kq#WiH&*MidYR6~TE zJCMa9WpIjjQ`O1n&u2~Cb8!W<{T3R;f*7{yn5GBb568!=+bp$?q3CC6E4Xg|b=1_A`2pgSfLo9; zhr3KxK!nmVG4Re(922;z&PZuF;Mp3zb};|oBZNrdu2&+d$AIGswQK5cV!cT7DiKB5 z6DFiZ`XO_)DdMDyU`9Bf%8N>Xor42R<>oSCwjz;o`e+2jKs)3reGOo5`g<;7?*e4s z6%o@_n`;tXJXTMa{Xn-x^xH@_b@|-vJw%Sln$>0d@r1#AVzj0!GGE^&Ru1q4ZZzzy zeT&z-f#?UG{iOT7&Rpz6X{j2LzWXvj`o8y8HKYo^&+$8pp-E8-4hl7^^r6#Ej_JAS z?j4vNOKg0F=bZ2m;`FNW!<$2RqkHCTDpPK0b2l!%=ZF9Pj1_z>dYuU!^}Hp=vE4<+ zS7;{rXkpQNX$5K@oaWf4267B+6J2<9T4Fk%!y5s0+aHqfB#w{u_h&97SD*h0rYs)p zV;5}sam(*W=Pt9$Vt52T3S%TqS^t1{9zYY#h{|1|U9I7PWKjj0^OSn2n9wx$U{VH@cy_UAfsdy0XA`Q?E_uLI&tE61{VD zQ4;d5VSlVF>TmO9sZs{$WANxv&3w2*V;xpv!NCn0L*~jKb`z8Os~&cKg1uXZFF@91GIl1jJ-tx@uUD zMA{^zAPO;t_?Q_yyoKv z*X*s*L_c28et=CYLLQphh)(>)ZR~tUrmqy!&4P=w7$BeEgiPn{m+Qu2M+wRs_Vp7KBC|M}|-} z^iu>)bV4&%9&w-}rLA-|@TlVQvxLgd^4noMV-#zF67*dz?kRoR+6s}D<60y4Y=!ex zF~O`@1@cJ0gRWcV8S?th>3@|s65ifBck#{$Y!)o+sRSfE`D*f*_BbOCV)}rdx|ifo z=|O8r)v-=-Ys{zbcBZx4^))~K9X+3C^UH5c0{72yV~R4&01496X&E7yiUptRJ=;_V zO>qoSJTIEQd<)%=JrvqSoyW3AQ|_$>O*rWI;wdl`5=Sw>_V*a3sDc zH={LkrCkOV`%AmY|H)I#ZnCC;KnL*Txr~6d*$NqT<%vk|wR!2sV=aM|dk}F1AWWRM zBW5l1+u%>tXfEz~D!XYbw%(NM1U(wWP-IJF25lmOqnnTQumbEjQz>x;kefRy}#iT@HDMNW^!7nUa*&m}JN zG`K-b+bw>MzbqLou+Gd}-GudIkyN@18w-cXw9iD85h49`ivaxY$WSC--8*aYWufqH zpZw=q^&Kzw!r;=-lhp)HfTUrwhKNfav{mK`{%mWAT7yfyDGJ`$Oan&K=Sb4ELu--5 zj4B)A?59=#&Op|x*Hu*QBIi&5qsJXaePRqb*hGjF>rH&y#+>bxny>2}M8*?ncxUAjE|U(&kR43+?EkU7%6+n5i~A}Z z!0YU`|K}d-yR;uQfWF9V-by3&1OrrLv08R%PQvKQ!0^dd9WTD?owtv_QbDi6bF+(G zd4e@ZuebcmqwBz*_2F`Y``a5LuZ=xx<2BP-3yw`PS$Q!QDzYq+LLUx_+NzE_-}^2v z_aV#g8B_nwT|kW*)}C3stRQw6ML(SQ2Q&he?zd7o&J&SJz^XmBK|1|R9u`CEBEhk; z=mCy{l>dSrQDVAnTw5;xsKz}lrALo?pOaK@7b@shrg7P$HWqyYRpKE^MloHZM30di zz17nVkl)mu`dqK#xiws`zF=CQX1D6CmNB8!4|GlIGK-6LR-WoTMzxf>Qr?Gs{~J|_ zf|93>^8qv_;e8WM91Na6)Y}Q4#bvx+9VufN|Ro^-anPM zuL}$WF+dw*fAQQ>Au{rZ{Fy~HJzsk%#o@pd;;q||> z>9!(7MKWq0T!mGl_ml7GaWKs;m4`Zzra$8(rUY~#X|u#isSVyn`k>kvATHstCrH1# zrZ+flm6^MFE)X;O;pBwOe+a`4B46-~t^^z8ZN39E|Fb&@6-0elOVMlF^x+5G`JVN6 zQAADl(W@n8mTk4Qo-5RxrTw)h@{KQ7^79nA*TdwOFnq85cj&uPkjG}elWuJ9|*t8J(a#j(+J>r`W=IkvmMMw94h+k~8IJ{F|# zZHs<6QX&3@ZM;(cVs23cc>cpVX@M~NC#yW?=0A3`uIYeuckT4A%PDsB=59=f(DZ4d$35_v=t~8u zKS~Z^qyF1_i-(&JIR<5j!sxCJ0_ttG$*UJXcV~#c7P)l$oq547=>lcwI&5GEy zL}BaBrTUjGXX_|StN>Yl1UDd1niA}dF9*b9y0}wxb8@!1jT3L?(k#pqn(S+kUo~8K zMzyq7Z|jL!znX5izI&EaWS`4+Vp~Hy5=x~OknT{Bc?bGSkSY#^_AWgQ_U9uuKV~W{ zM;tS~ihNeg2<7V=Ot~t6Cs1~;Pwc%Kf^=1cPNI2j5XlZev!?Kz8FiZsW=?PwltmIc zoX27%LE+aD_wCuwQQs`Asx#U|AX~k?3z{1ehmWPF-Fc^}ufj#NWq|Zj*DczHQtc9l zV!g@2f#EuW62Avxs;>yieA-8^87PeLnH4q)wJgw;_8j1Q4g)Ppo&(>OlVASXAHaVCA=x5$pa>#LYJ)XzTQ2 zRKfl79w%_@j%uv6)z|vaMt^VWrn$tB;QADKk7UX0Jsi0VkVn`>7(ovI9I~)H#S0K- zQ550e$uZB(BZwK!E_XyEmTo<<0E_~Q3fbY+$D>{+?6OkwBZ&Oq))xDiRfvqjpf7p95lVNS5Q;wPk*6O_BA#J} zYuR;6a}$~D__l-&+yG!lPyT5#y<}NL1qS0NcqGYq zq3?LNhH3w8L!EoPPGI865WRgZ*9pBT>eV2QwC9o{NXVS}BW8bNdaDa6FWkkBVu3j5 zXF8FNmGqrJAbF?|yGMQZwTz?A(EWj!nGd(}C|beC@h{FGji3Hrh>F~#U9cH*yL6Z< zFyd8hGpm5PN5r;%)Dr_}g_B>Q_;x&)e*TvgKnWpbP>kWG#3+Iw-eKxiRp~VYY%8w% z$5o~7+TmFq`UbztjY?&3)@$tX7Pq%Ie>}S;IvQk_ke&pwTWCh!?9tF0SYH|)b%ftv zF)MBH%+xiS{gLU}({lv##H!?;fhO2I(ngZp%AX4E@N@K8p#UYF71(W{q&mrkwuT!Na8ab-2$QBEfAK&bHhPXOJMPNLi4p-)CCs-2m=3p^4&M`VF@k?Ke9Z z&0nqo4%QOq0kwcj`g`|6L|$%u%bBXGIe-`+T!jhI3dSW&kM$V`g|aES(d2b+P=JeE z3{WnFBxyqe*Y4ElyhrrJCbG{=@|!a=6vV0SZEsp0P1+Y8-st5Uy`)j8)3I-Mg}&Mb zq5t+;ZPrb)l~OtSirLQqcLSA8$0Tir1;OuXQ!0U}0s4#fC(h~pN_4#s!E)n<+dMEO z)9#Ap(N8+g@^7A+va3%l^6+_S`(vjqX!a%(Btt zIcg|A2`5oP&>@%6nBp8T^> z=56ZtiN-wRNgsm_UY;($3`_d)AMjjmv{)cCgIcuzy}t$BT7Rxa)63dFbie3SnNP_9 z=fMM#b4w(hgL$U^(Omv}NX8!L2FMfiGbb0gh7l^nh+oMjHHt{~3>Wj@kjJT~!H!7} z02ZiiD_4W;UJ-SO$`lW8VVAZGtj!4y+>u=!jzeYcOMD-gYkzm%Wkk%xzv!JiOmrY1 zK{0K+udKx zUP|NA#p2Hc_jeX)K>5A5zzh?B(>O?hWP`s>7W)zSPwHWf zY7t9jD#UNxCW8}vr+S`pczcQWzMWs`zw~-5aDN{=4z!e>RD1E)4n98zC24#E*n-QV zx|Zfm_=j-z<~~vP7xMIRqN?ge0bVssY9_yD{Q!QijMM++o?1n(zB&%kOn{2G95onN zB&Xy|^E`W53MEoUsh!tcY8)7#g)ZcZi8kwDK@Elvk#Px3T2FI$um-lKhzC#+(xQVIj6-GDqVkFJKc3} z|FgR0NzqQT{|K(DHdIda&PG%sTot$JV%nItYah@QYrFKZi2*7OAZ0YDxOI(iX{evE zTHtfQ+SeUvV+LtmU40X55wzTp>gTJXod8d$zSO1VF4OqbvXM;VS#uKV9(~A0GMA&O z>a^dj!gBlX68sTh;?XM92LCYWmnkv?@(cI{NrgNeKW?S*5HIOn{gypjhOX8FMOFcR zE8ufdn_GzMFxeT}P+++lZK+qrP4#ul&43X`1zpXuMi#rH&)Ai4v9boneg z9bdc&;D=LXx^gF08}=0eJ=AXe;Ahvx|~J0_c6e}6paxuX8#;p*;j%DwPH<=5KGn1R}R z%{yr5&9V)7PxGzKqg660mG~!x0eVKX&lob;x=j1Bd&nf0xGO)dLTq=#jS!VU+R>Bb zH4nB5ITMRJ0#7I=lOeg+Mie!G;vXJWbh0}G^tAlkudo;r3id0&8;C14X||xCsGOZQ zQ~##A#eDz$D`nv`*P?-Jwu4h2?N(H1y&a)Uf65G2^rz@0ea{+qNg_rtKB;6;O!GlM z02z?x^b5?pVK< znp1KN&?PFe7~^VWpj`v`bJS+@FyFf-?FNeMuJM7nJl9ZGPGM2eq9Oh=)J*7Srm=!C z>T9$O8V-XbRA+xR3faSXbTjRb38-MVBG1${J=5>9kCSZ`r2tBUjic`(0zn@^U8di( zBPP&!fmZ0(+9=P8{!_`q`$+H07+LA>X}e>UeJ{9Gox>(l)A16`#|!#MKC|ee*^1eP zK%L}4g2}~?ZRd@gg^e>)bxu=sQ_QP!8ZxV`6Q;UD1n%yxspU60F6B^Uq{uefqzssb zrh!_Ua__40H z0PGt0&Tx&C?lm!dy|Uf&oXAT)cM5t=-T3(Qf*&fyrVeO}P4WL|xn!fi?j2aShA>&6 zyXIK$1o0-1w2wXtO)e5KGB(IcaVyMHQ9XfrsOy?L7QW&R)F8?Gh)z!iFbKsam8uWiK1r%*f+I(udQ zi{=#O6Ot5jap}!T`I(A~pJs2c2#KzftyN-M+BnouJz11gtV{HZjFlPf$le=a6Q#zP zwMW^bR_F&8*7{M zbU(_(t@%fal`^pdWBp=m3SpgGVJQS016o_IH}9m!?9X$-<_UyCXj>4g3Tff_I@ae- znV4m&ctv)Q5u_g9_g%sNVPh>jy3P7h#D0<=5CQS3E;GQ|4R6*Ys67$>G23W#B7*oK zMGo~lmR52p{%?M*JCP9EX7$Ut_pZ{z$!?v4=R1RlfI z4-4ZTXjV6d2Fzku=pU)a`sc#`MxS4>Z!UP#CI;EoO>tqCoFuMA-F|zgqYN9o{fc^4 znRpiec4f-%sm$xhCd0jl$H^?ot16;EAjAV-@_#(VUb%;X@fP1XIdQWxTW?!Z zf*_KQ86fC*0tg+3_Eaui0(kG6y}Wo|sa&-F^6Ie}_(_5^W(R}MjUp)ZjHV3NoXGU} zxGCQ@{Ge0&*Hg)3T_;v*0v@mTvc*QZ4$-dxEGtCx^}G&#^_ZSD^{__@sNLS+-hpBL z>9TJKWH4}8{he02uQ>h^ebT{W(BtUEz1rnXSGlHd&mK(WflfjP8UPina-w%^{(^v$ zC3!v&FhdNWPFHAMd7c=$?rh~AgEq9{zWgIc73R)FQxKVO4qaNVcRs3%vnLT0{qVz# z_kb>OLSW`Q_3K}8Pq+>@wIZ1+Mb1TU%J&PW)3{3qp?eqO+AIJOaZHX-m=0nM7Bb0^Gb0dtPo$(3jb7|^G!D*&071eMy`}sc?#^AgE4Nw(vM*oHn`D3l zq6E36Z6jc+4~ZBpc1EHM$+p^OIDqEY|9Wbj}wuna7R^<=+y~q-1q^Pe|*= zhu>Hoj~grp)-!)}JFXa!@fXI=5n!@JHNwtCG zLU^NeHg6ZT4wZbs!T^owOxzK5@>HIR*lucY-#@VfIcxv=BnUd9q59SH@dM7@cT5tc zuTEnPg*mX%gQ7Jc^a8}hb4Z*Zh!)B*Ix+;>CK>~4yv*DqhCJ$j?0~sqR&_Q8HvIMW zzjMr`Il`K9PY1vVbq?u%Zpkp0SlN3?Ylfz;VYfNHARuhgoL!GoFd=-@&48s;6&*;6 zB*pOXd0kXZzrhA-uHeg;J*p%LQc@P~9({Sbe+^sBM_B^zLOueXhwdA2uI}4stq&XC zoimpsY3g^XCl@@oARMou$#A#qelu5}>g8ZP> z&={8;)Gv-p>vCA8RnT7c*Jk!jp~L;tS`DGAzuHh-Cs#c@w}N^ZmDQOE!mn-?3t4Nr+5bFXn%N=Ez>5} z_Z!rEq?(ZYJFu7Ib72-sVFjjU^f5&z|8x511J=Q@qUX1g{f^%RSoWjoXJi%x(TD-% zIj&5H?$5!o9t#im-&*Qh(xr##R%FN->%)wf#h5CQBX!8Y3Tbb@phv3!f0F;1b?U#4 zI@&)~Cf;2vVI2)P5ZQZRdcx+gINU`s1r_L#arK|Bm|}p7fyK*`POm(ZEiI!YuQ$9_IA%sp7&-DOC7-{e37Eu~hUfikOhLRq#njOrDet3`knKQ#`}>t1PqYNB zUp}5_L-AY%SH6w#FZ86dG>zLlYT7f~L|cP}zP!?&DN@DaVkui30}Cl7Ln*2a4Niws z4A3%=3^B%@^h1ccypZ%hXXz2fgTKDbEwQI&Zm;NN=SX)%c+zSi9{m8@VHUAo>xKiY zYPHt%QP=tM#G~W7HfLFW8@%rIh8kbCar4UnJe_}(eJk_wK?vfQidY+hKjh_FNsX|G zn2}!E`bMeJzTLrWRcE<|Iic&&TVO~k@8B#Oc$K=|jd9r@k%leTzh}0MjnFFo%sWc2 zq*q(OqX8NkX3v<<4d~TZ0Y{f9l%GPTH+;?aBQ15E4nTYO& z_@PK{*(?VK`LjPiKREtM)8f#Mm|6noB>W+y4rEDnM2;i5Ix_n!3WVVCavb;8*SylX zBgtb5XgB02T!bKi;Pbm&v75g(oXzigQraFwz;zF6LPxsi^-rND5b79#-SN%QL_{gq4Hevn&x*yexsrK!h0mqO4c2^=?@+*bc z+0!u7z@{;eXR2FfSqq6C#_kT{5s(=g3P;CE*<(j<#wGXcY%{3>+=YO~QgzF^lPwBc zMki)~6pTH16}f@_J^p0>b=UGGgUM$trH-R()@{G+>zc6TG^J+*J}Q$@e|r8ukrf7r zepV45FpM~3OAJ)?yH!@!{_Sv#feVV*bm%pzo!tn-8FY5#iBz~vbSP%X2VY;aE)z%*0VT8MPM z|0qUF*lUjfx8M=$?<{Or@@|_P1!W^XqEX)(Ji9|sHLj`QwT`;s3*g^z#%+(3##HrN zT&9=#fq%C!3JWEH=)2*g=`#}~6jN*7=;|MPSQPW3cD_MF(Xug&P{!>GnJrzNEXIG; z8p9>%&Vv!1rdmzs;Q-$Z17s$DI_%-eM@R9PTX1`dO;){zVBws-@$XZgT*8|<8eBbP5{$lqGO!B@God6*vC8;m4Dy7r@|K2yN~NaE09dKbN$KLIO? z@57rBpG4+y)0N+4PxK~nkJy(!!wR8$kcavI!#^~b;!#F$)~1&14mM)gM{@s9`Qn|h z{_A&4aA&$k$rBAJcL!5i^mgWlu}X(B4a@dvB2+d1uM;$QQY?nf7I+Yj{a88)`Ox}G zO@q<0R(|#TbLcAZSJ~Aj2HTR=dO3ORpN>XYFSVn7pT2W zX-AfYWvkjxF7H#+(LaD3WJk+;Tl0Rnc$WfN+#!{l)}+9cDw9;f#Rufibhncrrfh=l zQU`yh8jpUzT@~^Iy}-9}&>#G<=Gi@n9j>HhLbzZl;7FOwf0&~E)}wP1_+$N34*$BV^$eg+1U2KG!czY14*vQ);Nus<><0ptPE_w_d>obdCbw-U|` zG!CSl1~qvAaGtqQ#Yx6DnzcRWw*ady_I0UAlohU)J1NO$>982_a{xF?Vi)<< z>}HA2`8L7~*HL8t#o+I2$PiE*8Ke1Ytp$9e1(!$d&5>$jMTf;`MR_yXV-wg%!jrs(g#2<)P#$)J1LAd`<4Aw+#J!kvdd5M z+rJMA$6p4S_+z;?O!N3Ir>KK}YdE$m)}v!&Rm*gIy>1Q9r%62MTDqJZ?o=dSOl(vY^J>hE`u|5aXJd+tS0$H1kh!0 zYz*EV*3(7`wGw_TGx9%P!3F|EbsEz;0e2dti>;bzbQw0E_xDWlrrbYw*6_;nJ2UY= zFR`<8cy9c3UU}Wo+KlL>OjsR(#k%+<-Yz(CbvzxLavE2P&%{WMe^0F@K24r=bPUky zV1S~#h%)qd2xgckf{A;Hvp{$>dC8C&>cB9K#tf#~m&}~1!ErEA97@d?eMI%IqkY*o zg5XngBeXJ3&Nk_sPwn`bns>4HX6_x96L0*sp=ktTS6Xqlab-ekQY}T0h9PqVd&{uV zk@Xst0jaiQW$((wM0X39%znWF>3m*6#76<}RazkPJwGllF6J8a7{n`-n{uXxD-huT z*Ct31v0a%HaXG!$Oswh~Ppstq?qk(_b=_vtJi4lY=TMKt(oU+v)+h63CH{$+U!09RnDY~nGv$8;?H zJRz*d$sWsYmzDNxPpt8WW%hECJFDTzrAtkk;t?E@peT#u&QO zpsL3J343g=*Au^g;t-*I-3YS#M@~Y|Bzb(K-TgpK2>J77SdvnHwiGsAMCWD(Dl)bF zh$Psxm0!M`-+;d3I(hx-m*ijbkx&#VINenMeo|)%XtFrs;P8W3F2GyD*E%6Ya1$AY znnJ}d!aEAOz5`eremYAH0=@`@@FW{4w!gJqa(5Z~xH$T13M6`LNJnV+^ym00*`HRt zw_Yh%BU$%R){qBGZXi$RGPv%m$N&6OtkBt#+g!Q;sN~q_f3{vQ*Ngugz`+PCIp`4j z%jBFr5T^ImmqOIQ(lT4_@k&3loX>)cA7p3uBzMm`k0R&OAGvYc!bV}49M42RK@!flY{S{wt!PT{^ zN%=p`KhXX&`dZ~J!z;|+MFTo5Bf>CS;(bdJKWN9@A75IefZ6~k3ZnpY z0;mFj3IHeopaOsj04M-|paOsvH)x$?L&}gwMtPyDs}%{#oYbSb)cpYXU*l_Uh`s>Q zyk%@xH@1q?BA>Y^`D9#{t9j4T)%}p9~6Uub9p**pWsN(r)fXWUuP(WvzMYYKa4(>*|xb}Sr`8R zKPpLo;4z1n^Zx+A>+`>abf2?Z{{U!CpFE@F&t?Ar>({!G{A6s^lkrq4e*yGg{1V&7 z2g5(Lg_e-h1xA3#@kBcc|{{X&_kLyuUb5m=`>A}_Z zILdW9Nk6%tmVfY3Z;4_nWL+QOKA%6$D}QKeAQ8fhq)L18cd;JJ*1tF6EKZT2ya^r_O=>DGE| zUQMJSM|0f$OU6=)}>9vGcEe|q+h{{T*Z zRyaTcfT}P6;0pB*zy*_W0xN$Gr{IUgclbl`d&8d-1QJS`F0T#E#4!=NSVIpn7d&N< zuo>efy0BQEs$$_=`C5N2zk%~yW5e;{t`)}R4W#SSloNX?HSV|MrDpvPxWD1>e+2&k z=$Lq`^0xl~xK{hearCw05kZ@{v|t${{ZMdhyGOm0OSMy9|wQ%PyUIAioYvw z{yRtd;e-DGpK|;^%s=8&xWE2`=zrx;{y;zB@P7pV0O*)_tMa!00OPcOt{6Z0_b&9ysCm{Wv-F{e;1B`?NC)X#v zd@eG-*0EBn-RbGj{?8ua9D*D#!G<2~?e3{4e?qT$^84guoI{13(0Oy-(x zQkT6I_Ms%>IQF}XcD{;MeGj64;k~{cf6$w){!sq_@pa;VW8y!Vem~@YVt>TgaBuwp z;y?1A{{SW*@ZR4JzvxZY{{Sd|_^aF_h0Lp*-ne$hVd_dvOkP?(}+LTt}Mpp=`^d^;WBvWi&c?>dwwHbH-ao$_`}ghT*w3+d z@4f^3_H+JzK<~H?aB}_r<8NQv!_Lae&dITto zurNQfyoJWd{%2^=K>zk&*~7}lzLx_U!hyrkuvuB5!Lmamg<6I|$6#zn*pHr4)ZNQ- z?Iy=*A6}(Lud?=uUMy?oGwUabDc|yayq}X_;FzG0xP+vXw2X@CIW={S^Oye8(>J(m zXk>0-X=Q!g#@6Y!^BtGFu5Nz*0rvxgf`LOH>gnn6%u(6*~+FTwx6tYD8sW4ZaW`seUVCv*MzZ=K7{f76Bf#8HrNt-Jo|Yr=}BEcp07 z6SlJpw8h@tIdB&IHh}*n>CJ=z$@IH(n0w{i|J~%jc3qTnNCpqL5YPF`e^P*JWzya! z4YfLYef5EGp~<#8*F$;ZQoR@@pvxi}9;DlBEp)o+{&E zAG#$p5jjgOJQ^2eIdiQH+q8OmR1Zj0g)FM#Zv!#=-2(yn_}f+6AI`sseS>WpYenn9 z6+76t9wPHk*Sp>H;Ux_#3Ri~yt)g7X<4F)a?xKCe9g#MUh*E;^~I z!9H=&`fD}GU@|!pL=YB*0v{@D&c&NNllIbUZMj!UYXNsZ3_aA%2E!}ee+ zLFnelt*>(NhPAHG{`jwW3ZRu~*OvWm8T=pBu(0+B*tt~5%BUdqRtULB`msx*|6vcG9&r$+WN7UP7i-2eCvsxU)Z6wi~r+*3*{75WQ zudDV6cm1>-*^sklJ{4K-{XuJpu0kGr+}@&g@=!i2-F+TWL4t3P;X`Z97~Z#~>#2BO zCQO-M);%TLCaXHo;A&@Q_+##i+#ze%yt8)yDhs;Y(Pnu%b>kwEZM$D(=WN5>>@%x5 zEL#%KQmt8WZ+JC7a>c&4eX}{X!6(=yK4*pPE1WU_e(XWK3R|N00K{8#8K@O>qRB!m{l#pPYQMY=oRYWG+$2$7 z5y^xhle_9-WYLSlTz-^$Rf>8-Kj1b z+kJ+p8oRDheds(c^}?0t=xB24Qp==bO=XD6k7WM}+P03h&U7sIRAgqKYWqO8CMwC? zetWHhY*$`33bf#vFb@UlX`u*k?>ImnTY>H;6E@#PM|AHhP+~>+fUg5^%0VP}VHxj& z{a#LVdD5gF^uUaf4IVDRher>_TyYEhdhB~x<^`;bac$YDOHcRKD=jDU8K2;Y%B3}W zKe&$$>w7uPgdMAKIXn5oS?5?cE~X+3E9TNeZll)NIBIp7uawiyfuAQltfr^%E#+eC z#aH$5x8=@6-+TAwoXv}mFkhq*RVXNyyXe}*qdDXEjh3wX+BO{bQJrqvczU!bcKNxf zNb8%Y&l@#39n;e=GV?lTBz=zX7euvs!P4+2$?Z2u`^_8PD-T^ENs7ui$(iWcw=R$EAV^oKsfX`Whenhh@W2d(niMnJZlZM#$iN$>Ki z7y4AF?)!4}B!IK6&{rQ3WZ>;9E9{gkp8bspd$mTw4ol5lZM}u&43I`(&sR@o)}bXw z&ll=UkJbE1HiIa4@kdWAcQ=jHBSdrTcO3SWn4WFgcv;`f zP0@bfnyFQ^<@g8VOSX;5>w{frwj68dTWEPooZwDzrhIuB=b?)XtZ@Yw2c1*@%T`bD z^#jJoUto9QXm9b|49!?^8DY_u*M@TMw;uFLYdCN`am21biW#uMf z2+2*CCLfTT^eAW7O5+o}_*7hsv=whQV?Sb_s^h-!mB@rmU8UPFVQ*1H1^Q7W6ZY8} z{_Q=Xw`nsBpkL}mFkxBxvP{_iMJ8;WO@MF^E$aGW&dm|_ZDoWuxL|&gVU_y%YSJJo zL_^V@ukE_j#x12Ee+dL%D}eV(wP#KcznLE#;yxZ*aQdaeq`SqSwLza%wjH;QQJGIz zYB}w7=N;V(>@Z%~RhIwz7uIY)-l&t7n%9NTenDKDcvc!2UMrF7KHgL`hxrQUq#U2B zO1bI%j^fgMUhi$s(JtYnF@LwuO3}hkJBUq6xwZrM)6;gbOOBU5HNYQ#8vN{B!>N)G z7k4jrU!z%hUCj2P*YcB!158+G5 zS{ALT??v}%&!XIpqT(6c>m%Dyvp#J>tjMEpaR$dPdX8J9%bF9uxr+4Bt~J-Uj5&<# zDA)iheP9==WbVL^C`4=TAuP=jLaG2XH@KgedA2dKuXW>hXckxeSFEk; zUtI01;@>$^G|zD(e)9_-mHRmfJ;JR(Mr+|`fY*o*izQn64y~^R5wS4>URBXW5+nHt zqAT6t*){Tk)>NNk2BebDaX#@iNLNhD93uA&#F^$HYu3_+tmZD_Yx}Py!S;`MZb`A- zcVuMw{e`|~h1kM+TkuX>3Tp?^!R^7jOue}6;I|$;4@Ep~h)`sy)`xV4d8he`GMaWI zshRWa)BGj|vaKWUen{V_P4_OmdR<+mbfxmRzm=f}<{@J84PIzuntO%&-I%Mjr~Ip_ zII2~u@ofzQClze;(}&u_M;jVWsF^;-J3!oy!ZG0ED3ht6nf91sabvTpEYggY8y2!Q zG|GfMb_flCv*F$4gvQNkrE`NyOkcd)6Le5o*L zJ1pu=2ufsQ^(J_}lx`=6qxni7ILF_bB?yS`=w&ANH(8Nsk6e3yR0Jt-o71%@$x!^f zGU1@LYQ@O+j+=835@CH-mzW^(sG%76B~eWl^u2Xpjo_6}>Y7@`-J?}8US>)8?0i2-S87pRr@L5xC;hx%eIFGX z2R!Xt!o7KB$Y|WeO%=*(_2-+FSkErs+bYzf=N}vIZSPa1gTNr^4{qrNI6H?Oc}5+O zei_Z1boL`AD=!UsiId`SPUaBbn;fiuJjze!7Gzux$Ai2tRFLLgO)(Cbl-Jdz5+A%+ zA;#|KJgIl}y8LDF@6+m?4B4?x2g6R2YR~i7Rwm3S`kY?k&Gl}1?gOS7MsWoiMu)?l zyZCtHT_x|#{KUDp*BSJPc&^bI229u^CXC^>-8cPa!yA}iM9{gJu%)Xka}&@F7y>A8 zChXfA)}BTt4EqjpHW0FxT;NE1z=R>LLE#F(gxNmiKDPs+vzf4uOc+=R`-juQw8ja$ zR16cw%7jseV8PY+jV(CH!GvwSgZ+JXdwZ__6P~jaO(FLLjkhNgMl<)3&;`Zzx4A{H zypOvNzxt3^nR~G^*mp20e%+dmQC9B#5E>Uz)vd_;tEFN7m_n0@NZ+IaMFP9xJRNSc z+92Ti=Hs;NxyE;A49KzC>)fq+57f~@Jw=OCo%n_oiY)#kJxYsuiQ*7fee725^SA~5 zL#SPq+8dymizO3wD3X!Og#Gd)S%X}w_+9=wCTv)^Z#QcP5B{}_rKDmH0rPE;9kLHH zVYAKu+#a)KpbXv(TZ1Sb_kU>JJ}AWT5pkG~AcKUF?F8toJadNMQ#;ru1qx9DR(Jqn4Y?ZbFU0LFY);h19{IX4huW28 zAUC2G`jdgXVaLjA=uJfTK1a3Xl$MkL8D zT)ZpQFffYVzp>VOVCjLTv5718h@JcWo#W57q(bLUgjjE6N}m_Z(EFyGJPELm|5~ z;G851DtU>v5JE)(%0VN5{^~*dp5P{lproK#je63!n33J9r1!TFB7kj+x=)g))e_V& zjd6&;;%3o8QEVZZxn7<2IFHv8l)2|BKh`K`;At$M~o5S)ZWB>ZNj)xtbC9xDEVWm+>H`#sddqf{Mj_GM^Y`BIN#+dAD`>u zDW6fLhvO6PAZL+ zid~IKPY_=a`*+pj7x-ST)4F(4r##VxdGg06#t9`&2HlqQN#L8$Cif>Pu_}stPV*Vv z>z71<1|jQvfCL|Hgw@=F;ua6OK&w1nl?va`rd{$wt{`&r!q_X1O}UmlxGB{^wKa2_ zuwL{J*lH*1wuc5Z@?#IJo>Ep~6cVK#vPNiDPm z>B#ulg|fF8=c_Q>_nZ67F=s53Ux8O|l?4?C1lsYKnWs&dd6`hF@7sLbwHGtyTzUXO5%7TverY9rtQKOfRQ$NJ*+%Bqq8c5oBdO_@t9 zOK`Ibs@%~8^JzRZrHw$lC+bgR=Rp3`F?RR2D`pSS8JI~!6c>;$nU3xq=*R{KY&qK{ zldP}D9rei+bl5jPB#c(wv{y49ov(2P!W8hxArMZro{c(7MfjMWC|aK??1MZKdV@5h zQ^UxT`%K`HpJ}HSJx4KNa41?Sw_bZa9IA#5S$(sc)W-Sg?|zyt3s#3Ikf;@f@-*@#0{$f@QjNSk^*(|sgY2Ym*`s@U^K2@eS5Hjv~|83-ll};f{zx?CI_v3wh3Sm3U6h5s}s*|5BxkD zR_zqPIvZ5ld8{h2hD0n5kG;=G9eqTfW>xJ-(Fyf;rhivs!g8v@;7`9^M;$Cv*lG2G3!+hqdE8NAFb@ zYtP;psFtg*S{xW$HDSypxS1YJR5!~okRlcujeSa&auzK2b6>7CDi%fKUU|DSB8WMj z1}4=5GwkR=vWVV`hqO+Y^rPCr9%#NiMc`A|@vveG!nD&$gVyH<+($OXlB_+xlF*3Wl!b~J>77B)TmU|+$ z4fs^jbuGM1tH#7-OGgS!>U_vK$^8>ME?Y9r8|P{E?Fz>#o)=%>2m#I zj;VC(O#{wB3(5noH!C24a)58Bn7C?uEhLUB1@}~`6RAyjKSK-cFQ?I@yD5_(7IJEp#C5Io% z?ny-Xr{-XE2zFK=G6laq|9mu0e#f+ehz%M<_bM=9ERh=AN{HR&}K(1LM+Lzbl3gTVV)0^^J^>Zc}Hzfsjg(}PD*kPhF zbqP0L>hF8Q%A#CoeBGJ8BE-Wv;T0H@hL{nD&bCD4!9mB_q;MC zsQDE)ULW^(y3o4iYr$ycPA+Ib4TK;MaBBOZn@FJ4gjfP3O9O63w+Si@yKFe?D42BO z_;%z#>FVVp&C>^5vD(QiQtg{KbD4tWa!#HVb$o61ZgM+U<(%UQvOJ3{&0a!@f2~jd zZ8b5hfLzF3L01@_Zu8+(V{DwR-o*XtHfs_wpyTgt)+(ne^nlXYbBGsNUJWcE*GzRf zM3m02$YO_0039D;?aT)@!TCGToiPVfnqE-8%%SvzV_gYJ8P_3`Z}_dDtl$e4Q9@N+ z5LrHC%=;j2sYRUS#Ix^qSTDeq)~mqS;hb^{)@4AN+hZUNubW~ZL%mIwK)E~2@ebhE zM|_uX^!hC+x4M<4jC@xe^^D^;DWUQ|g`;1l1}C!;W>udC(d?}_57MvODA4ozE=7>B z-?jF)C)Ngo`K_-F$26Pln~Op;Z9H-28wNy<=t|Uc5tX4(r{ak&AMLFUKokwH>q5185>1Cv^G!=^D|xMv?q-(op4xNtQOuPYPS`Jy zo37hHxkg5|5RRUSuHSTUJWzevROoVlvp;-IVwUc1q!ccD(a+j2-`l`1UNQEjwM^?x zlBI)8<=t;Nd37=sv!)K4K50mkG=zme;jj$__elpvo^9}Y<(4TfP;lhr%MU-lO#1v% zoT%^~pE`RO<$XjAMttiqhHC8CP08Q3yIf?KatY$ZjM5Z=&poO5 zwiOQJOy&35=?AgIgPJ^p461rPVVcti;_vQcZFrW#IrB}oiE# z^p1oWA!)}dqq(_qopR#mWA5RnVbJ`)FvP+Ss<&SCvq62Rgvg<+)m=zG$BC1d1vRj%t!6CM(!83*zM}_Um!5WX z=2~iV6ze{@T6E`F=ZhWl&lZVb;F*!P=-a`_74e|8z#P}vL62)aC$H^1y7e%AWt}VR zAX=NKXE$fzdjBc7J@N~v!+&rW^Vd=#o*{t1t%U(5tXTyTcXtp#J?{0$JO{Py53KQO zS(c7dP@kyDFG@%MvJD6yF-uZsak@Bu+NwFxuN>Yt5vqBKV+)q$`= z?TkZ!r_I%}65>r~*Z>4?P~|SmcB2}IF2=7xIYS{8*grHCf`#EsAjB(Dpshgo7X#B7 z$%AlhIGM2xp`89hxceZaE_8u3fSi4SyK(^%0-Tw!Fg&II4ae9fBocgJ!kP&5yI)!V zzQ?^Q*Z)};ph5x%8;zV#hr)>uYEM>Y(zV9I(o_ArGR>FQ8}4#5%CGl*jbzwG6g>!i z8^2gV%fQRR=isrm2HS|p;OL_jZbqus*ow#mEVy^3$)Mc20<8~SU5;*m&jToL5_LaE z^GVxz$-M&tjMN6c~=L}mm-{-Bba?ux`p zB6n|NCr1{6P_XaHI8AfmpfG~LHl@f5t{M>#Q|R1C`Wq(fejl9tv*W9dtWM!O=C!-xT1z^OoU#C$xI{LN$VW?eus3p7Zu`=O@c=1DV4VN&ZXm zI%%tKp(}^K1inN+srf$L6s2w}3)&C0USh&zjq-uD-H-ruBC&rP`$Pv;pK2B8&G||2 z`%L*UPs0vv_~Xmq0jj*d25N=7?_QCfmX)(}KC0N_!=^)>g84jx zA_d1J>r*628_oOOPo`OsVxk|w5Y(Rf~#>U>Qs7#JJUp7ZodPz5mxAE8v*GlS~LP{Xx?oLpYjk{8Qq9 zeQrouf=X7Be@5wTJ=S;QUp7A;D@~5HB-h>%l=Zdn{DRYpvI_GV8z5Jo{Ex3kMm^RJ!0zyo)_ zjOq~N5l2ui?E|w@3-arjdEhI^%}AvP62Zh{LIn=jT8Md@qvuUC=#{C~gAW4Arp_e| zI{wsi@v4n;w1#%bTFuzkNiDnWXEhsiA2vr@jHF47Qhw6z zj0YA-gI|y(HEEZu1Vvs0ueYLw2@spp2g;R2!49fIf2)l`36ZQ?vD7(z$#HFmf74J{ zJk$n!{PcI?g(DsOrgJL31q*A?)vg@4q&l?U^?=6Y?gyE(&^kVVwj6yJp(C$j%V?i* z)V#9fz|@9aPb&6VyJ&-eo3i4FfiYSvB@;z|@uyo5#zc6CkLY z?mt-3&|BSl1PzKaaQclO|92hzXWq5vA>txL2{33yq2%T@9*U50#=5J{N#mT0KXL*O zKZI=_f8)0$f!Cd+{`hW`P;bP9g+ROz*vF9lfGr|haVQ#fmIxf!@t+&t9m}!K#o*kR z`ev^})eAbIjJIdd?PR53GN#hDMPa5Mv28>yE33Ru!@eVxpj;F55uIanZ)!RkBBk&* z9%s0`UtzZm`=&-nxMZRmdPKCiA)c1%vW16uyIQd1fN_L76Q=5F204@=H#7R29j=X= zdPXa1+Cu~x!-n1X)_V?u_gwdbnBJPV!nGN+Rzwdv;^%(lB|O*DmZt57uYvr+UJ8f& zs3V)1d(Z@#T*O>BiogqWdW+oPHzYoDeQbBN%{l^PalFRhPEl>8xjZSIJTe*fEa=07 zxME=YCMuGguA!U&owyYT4Js6HNm5(F8>FKliNCA(&S|*x)htA>H(4`IYzXht2eUWT zRa|IQQlGl13H-&kWfR_*A5k&3!nb3h@D)@c=qTxk4L4PV`wWGF=kU`ueX3YCjRZ_^# z_u?(jTgOdwugi}nes~xD(kJN#%Q3AHw7F^YhTGA1RdLlg}r`L0^+N#Czb)GhUZpABM$o_-+V}=OVfXG1@xX`<%d#9L?=dN{W8$2xwX)3__ zb=*4Q-jr+mDMlinF!~z@Z#{I&PgrWNe9Q03?ODSl1I`q5f5I(!g-438&uyehY2eJO z?UYJQ|AWz!DZF>^CqE8a`c%9bUX#K#W;2G!2<3vfAlHmJm7lo=`(M1nx^ODTg)Drf z>f`eW_ zYmZN@y~Q86neN#a5r8L!*(MGy)xE>+diZW_v~Q{Z$%}+;K*GgQvMDByuKl$^w(vF+ zcGs=v-eH%y>rN*(S5lHUaduLV19Bz%(Jt%x1Nd{-(L5h#J4T0#=NAi_^Vb_M<1H{R z!O=5cqsDSKUW}A2f_Uu z)9__%ECd*j=Mv6@v`28gI}o<}CWSLPa91n=+}l(h?(XX}kKE0sE(}M|H9?n&sq*U>@ znkNU1uL30G2Q;UnK@pvYRA01eMVieqHSD#yY2g8$9N9!3LXOR-yD&aC&3Z#Xk?fsQ z#XgI;tRwk05kKzUI}RMpe%A!LV-d#3n`brW$ExilgGdDm2dO%eVvj~`uJ?%WRZ9G_FqQAooBXArnV*Xj|4HxbYY%+Y z9jAE5De0E4Aubv5AR$*n!|-RB)Zsr?e8$(1E9#7yQr&x*PDnf4ry_aNNHN|1c4-P# z4kBStR;@Ht?@f^L^)P+o1*gH)qpQL5@>7qE1%DWJoP4SCdc}scEN&iM;I|V`doxNS z42UXzoP~5d{MqaB7L7?FiEoP&axvM0MRKVPSYvvh7vpVdiq;9&+oEEI1x3l5cd1RK^k@3^VE}kZn~hY5{l}X=|gIo7@H^VO*}F3 zQ{ZOXep=@N1?2WaTyITCT0!Pi92kVJ&8NZ_+Xrw;vF4lZ#Ko1dU9?Q*2q-6QMh{*= zr)}yy!~NO-uR(IzJ@W9t1ZBj!&SV^Amj1>sPM}*|n99Zd37?`YgTLPGZV9?}FjmUJ zhEU-S#4v6j<$?6n@`&b{Ngm8tUS#_82}{c|BJGVzJS_?Bac zlu0}(=`LzxNs>W@Pdirj(`(>=_W`7B)5TK-=+q7-3?1=X)P^co?mUHf{Re=M^;^sa zKG|deeZ|{Qly97^jd=ruB&3YX zJ9`>KBdg!{6d2c66Y>|)*3);)%CQH^&!4M*in!a*n2=~d(aWD1rS``!x^KnPtLwS2 z<`*1Z#4la2-++&yKXyzts+qM@)4pLq+C^a7XtG;ib#Ozc@A2ZefE6|jnDfYvqXpu*IYXuZi)j7Y zAk{@ThHyl55jARl)f2fLMj9TJKJMxK+yzYO69Z^+=-uY>`KeA3dkFd@l79g`3WI*~ zNe-Ktebb(jGCYo<6k8==S9Rpex{3a|2(zIxT=sU0O3yrY#G;)*nERwUH8u8hbp3`x zEp7ubur?a-n&y%H;vOb{C=b6vA@VR`1J(}SGohN~>9$ODp?bPb4LPZhD&Ev_x*v5d zVa!0X+jw7~$HBPvlP+hFAsb3#TN5m1zM<724&$reSIPKO9q)n)P>Qiash>MDR2F>= z##G*ByJ-5U-pzF%>ktWWFqpgfuXRgsV~Ci^h3XPTX(r!;d_wg?>h2EUoITYYY90}~ z7M*$rLPRneizcQbRdO>fddlW(Emh*p$(S6>VV8tZ{?D`bJ`Y`Y9nK9g^4<2_C~){h zFPV`3Su*h8I}NiPR~M(PVEADjG%OVl+g**!hVLHD|J)%v!>`jfYp$j=m) zllC6yT@#Spu|))T&<{SdrX)HkU241)c|RUo$0h#;^pKqiI*+X+UOB(vy&45%LG=yP z9)9ypW1`_!`n}D8M%;>`|7q}7t!6+a=05J1D0u6$>zitG?f#ob4-W7No-(jU^TnRV zy>IEwU(W+){YIy{^Ps@_@Z|azZ^x4JZsQXmFYb z^)9>OLa_h0->~?;{u8|ZeW@A?@M+>?0}1XT{ztw_ta9t(3Taz z9{ZZ%5biHj9lnC)jn@iuf6_o$*;a(5YA&D{K5@h8v}~DU%E_aMJwB+Xb3=?+S4aLa zUs@?tJGBKT zdvzJIEz=%sWnO8fKRzT+d#@whse35+a1vf1g%+w(RBXZt=SuKc(2(=WSXjEd1$ z+_C-?V7qdV33Fqx2gJxWtDRRlul?gCagKaPsl3?3r&9kcFFIhJoarq*&Ij$AX(-rg zS_TUl89GO9(a%hsp<0&7RDW|HD8J@YU7jze8jmMyHHB#(-wvvb1CIYNii4dT6uZyn za&JS_{(PwA(@iP|wbEA*g!yGWRcU zaGlA(L(=+C@{|A|I#&n!AeOlP#9ODE8lISbNV{6+p~q$-7SV5U8+@E#}Vyvs~ul}D}SoGPpUM6LQa`p zx|5RV;fabYo>g0tfDDV@oCymTLQ?lDFrYNy(y(v(DJY$#g55ldqCwfkk?aIk@USc5 zml%F$36dTRq&Vm&2Y|1Jz}g5C<`{dGo1&Wo?bnEd;w>E5DEtOadIIHrbj6{a6evcB z#s$RG-gxjaWTa}DUWgvEoB+F$hwF%mYrKh)++K)MwU|KyuA~zB_}qmATH61$bb~sLRMC3 z5x>1yi!-Wv*JPD}F~wb_|BzzkCOTubF)fT+LtNP9-4h0NF)dqsF#$dL#$Ptq-J04} zvlZ6FcNVBv#gWJ8PB&RWxvZ2F-+q>-C(gxXlRwRqacwnkQ*$%F8JA!Qyo6~#FdQ9j z(@+j%>*&u6CMtLvj?-R8HsEy(;N7!Lip}#uM~TSYSrtzxSYQV$r!El@IYCLnqgSwZ zu+!c{TL49pvFS^f9QI$?je{TlGUM{L;_xGC5xSBl8DV+6OZHO5+DhMYSpPU z*mRIP03Nn1G}znd!i3dwXCfvGxSd@z21Nn{c!FL?M4nmi*uEoAxNsXu`(^dRiWrA+ z^d1B`5lU3Wi;eaUMja0#pG1YF6^K}FTuc5D>Vx73ocGfH?E{WtcCCBo_cLxO2Vp#9bsLhSCbuAZT|GitzCZE2o5I`_qK3M$ zeXsgaWuwt@{9Nwa(|+_bqh30Nm0Ov@=H6;WI$zz_5`ZtD9iwP8Eqk)m@S$0CWjF82 zPxF=$)RT7=o68}y=x*S#qz2iGysRUNum<_6BaoCo2P(`FzGn)~)g&zcl-AYGSR6~O z&X~_4anL0~4CotJkOH4ZIdo&zixE@G1BiJjC%E$wN)u?j{QDLLO26&D?=n;;;s>oB zR%l};M5j|0;2XUFZ4%no^Mw`U(G~@R`yio+o1C2jQE!(Vpicu*2_He5lumL}u54m< z=MfANqAm9JZ=#+FrBAiyp|GBV(%=2?f3!T(s9@;fMJoP?rps?&Ic2`Q!c3%hs9$w@(I}own!RYPVs0G8qqs-J$)Bkb`qU$lCJxu@%>4`X-LsLaI;Kf#&-5d8pIM!X zsKKQp{7noUg!og!bR@sS%sSGyPOkQWS{zfT1ahvEFDw&U36LFQ9qBtnFU!}-DzLz7PP zYqNDU#d6QF^IJd5yJR~NrhmU>{m{;K7-dwUS%KHVoyT=xVsyf0SB?KwCy(D=cDR^` zLAOq{JLY&e^`}aFxxtdik)Sm57UAtGdH)Ps)tg;X6501teGs0D`DGcwV-Rk;U!%WU5nHW3tR-W<*y@nYd1jaB3=OT z>)0Q!sHFgMvV@=}hjGtt)vXiEzMcNr<|pjd8??6JfkVpV_r37`fJj9r)P86V0u0!& zjgA$T_0!0@KK6U~jm2hk6*Di8n269sXbw7p%4eD<$4?@p3uOTOf z_!lSkf56d0&;ApYOp0|GM-jzEv*%+%ohK#zKx~d3p)I#Y*=d@4%g)5v%vC zd$jd$U{}|~(64dW;##+kU~HvxVpx@fe%Lhp%M;VxV!M54L-d`#od{Ma@=)E)KVe?! z#-~~EC!QQ3jAGIsT*1BY%>(yO72;@U)hs!!#&qw+$R?>LD~>`#a%DTq&etG#6QZcr zg4s?}eUFMn$jLK(uXGR}?OL|g9O6j0xo}82t6Z5y?hH5@kU0hf4$Z#20dWyIYdD?r zAXJBtpD8o00OI{cq3 zl7sDjYe7>Axk<9vNME|zdcQBEB;<{N-^0RCHvlOSciQD2`!+LVhFZZYqP30k;H`I} zkn{{sMB5M@JkJirgLj}E8WwnS#w$jghG-@t$}iYpD)vwUijsNS4<&y&j2fVogqJ~# z-TOm`cY$r%2-r`|U~M@dNe}sM?7PSvY%kTvpdzr14|cWW_V+bm1L+!cwaxOL#?s)V z*%wfKMf##D6NVCdi-WNEXCumQp1O^k`P&KqEQr4cg@0C3cTg0Gov1$OI=bTywyk?c zSjNsHv2n^x9JfW7u!hUjk=mBT##nD;c^z$J_dDHgfj#le$fsgIqxIa5YruH95o%ZT z6%~srgwNf8JSAK+G@y*e{dwiDM^9ht$$*Nbz*YCptwpy4sUuv&+qH5CSzId^p_zO5 zX3E~>Sv%Iey}FWQ(G6T*&0GdarSN`Y(mDA zW?_A>ebU{eAV+~;ix%K%yfR{Rx7Ac$p@589VJVezM;?$+6FvT-eFrI%z2!a7^h73y zv4|C=gH+vllJBRPmp>8i2uYV?3bh^hS96ui@b2b+)foPT%E0dd&2UhD{NjWJMF8E2 zlZ|mV*$wuqJe6U%y=M;xZN4%Lzt8Dtz*!t5zySF~KqyR>VwN-ghOH_ferT3lV-_Irg5m6n0q3-K~3Kp*2XJOPA17Gz~w8g0R|D_)8 zSKj!?W%}nYsGy9q!I8iXN>T#bjZYz$!+gJOMb59b%hU=7uX=p62xgZlmCxnw#|J9v_Q2{YyLxDtNcB-c13sjN+8 zOmGkXK^b{p-ANb3)6fW>DG_BE9|s{Ie-VH-tAy(3Phnz?g%0FOn(;|nK{8%8`mUdx zE#S7Fnh6Q*2N_dqREZrth*AY`#=dRBe<>H8n?i1nol~J*=#nL*g z6VNhE7huBvLO|6x&D{XqtEq+In+s{fC<0V21VVn~g<%i=mpeC|PXWBL=mDy?(Ej?B z3bY<~*fVYXY<2YQv(CB6%l*Z^UuwUwKGyYa!=E8WchSt%Gn|jhihFLO<{&Dk3tcZ?C@#=h9@PE%(f;A0b$I`bLEA@)^bz}jUl zAG6to6QnHJko{9%N}3PL%QxNa+hZvBaOu0S^{83y@`AqhEAWDkj^`QLb8@_!!sDpqsygQ6_BjFp{a!}<@ zAPW_=@PG^~`EMcezkm5p5DZy>E*r!jTT;D)2i`Fu^H-nK( zGH>B;p;QDxo)#Z92P_Y-AM5bDl}8^1i-QcGP%+PfO>{P;Aw*)eXToSc->ns?zXLj9 zLL2-r1kq6C$Y-JTj@>#eMgjmWf8XSvW2m$+2)B% zSa53_VprMVW5Bk-?wS7tto}Y4{s$qG>H{USD#@?N2FqD4*$u^OZ`{@Ha|B*JaNrT; zRw#F#ru9ODoZZ;05mdIo0L5L z#IcPjqgl5M*RrO$Q)c?gxc)~sR~ppR6-I+PptwX76s+({McfTYQ8sxfA_4{%S`ezl z1q><{A}XjP0TH5rfGnW~H7X++iV&eH21_F(z{nzthJYZDU;xEH61F6~JbLLkTB*O= znf`stoq6}&?|kQ;?|hdzZc*THs&uxB=~ZrEYvlv=BusX~-g0ndQG+8uopeVPLiY8* z!ctR0zrS(NP-FUq97<`%Vah$mZa&ql8&~3n(w-TpIB5J-!u0V|DOVy0cspF&X{m8x zmWSaXn+Z(dG*DPoUaw)C9D`dDlV>Q}(`H|yDh4K{qNoa7L+Rf0lPdH%oHSRgm5t~z zJ+W~D>zV7K2BUU@m~o*z>XU@_RIpk%sVS_Xu_nSM-|#pCi!q^|_f42n0!R%W-RNk` zX2CCp4wD%x6Wjda9ni3sp zDbMHfcVUkCTNSsVH-p$4SliMgi*Q{cnuuWJpO)>nn~WXdMJpM}hB7+Vh85De#ddiS zV~hxPzsEh^hIqRQz#rC9FcE!rW#(C{2%mDhGp$>_dlV9(Q-(sJ}#;DG{nQOhgt4D~UN|k+lhvWgLRLd812qW^jm7Mh8z+x4Y3$*4qIA)z zsu;9MPjj4T5@g-pS0)&>DLG^B26LDUs8}cYVpUG$rXnUCKFQU6!`TNCe0Q%&4IxXe zy+U-ml+Z`L?Kn*)?O0})2dTrcWp!*MgCKzHg|*D4LsQu4M}&dgDP^7Wo!j1X=dh1T zux1bU&vRj^5r@Y;FOV28LT!pS&ig#l~Qt*S`-6JET_O3Gbo_7S3Jd_trmL+^v%O6 zAgs~KkcHq(hC^a@HE{1HHKI=rg8qbdE_Mj3Odr631g3^mUf{SQ?3d$0{c%{7TqB#n zSWFpox+o;U(IHJt>o4PEu_R2k`NlRB+sEx$Wg91iq(ir7J~ zmo8875+xb)0t=6oklgX)+|7Zw8(GB}NoP69cfUH3zLX1Aapv*-J)r|+nieULGE@A)JPf}v*P|o8V>jhPcLAf~DS=3A z>TQH&9i8*IefZ`H%u1@VL=G3qp;|7afD2)9u+1hkiUg?uM@hpfLqceTVe@`!I*c5E zT9nB>gk+Ttf~RQ%jxrDIbytD?Eg(a4rLunX(wh(kZ32^!Jr3z1HS!4z5C^Y3=;~B! z@u?CR-KlaGKlnp=O}=8kyy4~%yq6a};&7&Y_T|DB*3y9W4WxJe0^Rjj4S7XyVnqFA zxVd0$WzW0s^IoOjz4dIzfd2hpwj>P9yHPV ECr3&pDF6Tf