From 98b9bcf0e10bc02cf679d03fa269613e140ba878 Mon Sep 17 00:00:00 2001 From: hgn Date: Sat, 4 Mar 2023 02:51:28 +0000 Subject: [PATCH] grid based --- blender_export.py | 8 +- maps_src/mp_gridmap.mdl | Bin 667344 -> 667376 bytes maps_src/mp_home.mdl | Bin 131232 -> 133216 bytes maps_src/mp_mtzero.mdl | Bin 12910176 -> 12909792 bytes model.h | 2 +- shaders/common_scene.glsl | 148 +++++++++++-------- shaders/common_world.glsl | 18 ++- shaders/model_character_view.h | 18 ++- shaders/model_sky.h | 18 ++- shaders/scene_depth.h | 172 +++++++++++++--------- shaders/scene_position.h | 172 +++++++++++++--------- shaders/scene_route.h | 172 +++++++++++++--------- shaders/scene_standard.h | 172 +++++++++++++--------- shaders/scene_standard_alphatest.h | 172 +++++++++++++--------- shaders/scene_terrain.h | 172 +++++++++++++--------- shaders/scene_vertex_blend.h | 172 +++++++++++++--------- shaders/scene_water.h | 172 +++++++++++++--------- shaders/scene_water_fast.h | 172 +++++++++++++--------- skaterift.c | 5 +- world.h | 12 +- world_gen.h | 219 +++++++++++++++++++++++++++-- world_render.h | 17 +++ world_routes.h | 5 + world_water.h | 5 + 24 files changed, 1294 insertions(+), 729 deletions(-) diff --git a/blender_export.py b/blender_export.py index 6117ff8..a12850b 100644 --- a/blender_export.py +++ b/blender_export.py @@ -814,7 +814,8 @@ class classtype_world_light( Structure ): _pack_ = 1 _fields_ = [("type",c_uint32), ("colour",c_float*4), - ("angle",c_float)] + ("angle",c_float), + ("range",c_float)] def encode_obj(_, node, node_def): #{ @@ -826,6 +827,9 @@ class classtype_world_light( Structure ): _.colour[1] = data.color[1] _.colour[2] = data.color[2] _.colour[3] = data.energy + _.range = data.cutoff_distance # this has to be manually set + # TODO: At some point, automate a min + # threshold value if obj.data.type == 'POINT': #{ @@ -835,7 +839,7 @@ class classtype_world_light( Structure ): elif obj.data.type == 'SPOT': #{ _.type = 1 - _.angle = math.cos(data.spot_size*0.5) + _.angle = data.spot_size*0.5 #} if data.cv_data.bp0: diff --git a/maps_src/mp_gridmap.mdl b/maps_src/mp_gridmap.mdl index b2cc013a18d3c4f01a85e2e8222448ae0a92d7cc..83930f58abfe4e01409e9308751878d5e2da1005 100644 GIT binary patch delta 17350 zcmZX530zHE^nd4aa1o-*GlX!>Nh(v_b5!CP;)Tqak~!qP%*k}kNpgKnA=cZ@h!UvdYCAe(Rxe*m$dWf@`JPDT}_B z5tbz^EE^!~O332>rxTpY1qhE5Ldpeb9E5~5<@^(BI+aLxT+UZ$nc(UaAoSQD?)1Eb zrlx;F=PFgI*YsDE#4MfQ6Da&?aB!F@4?DQGt%7rKAj$N9NtCW;mWNWAZL57fA07H1 zl3o9YB=~7h-**wG{x8X$DpeGHKb!sKs`_3NuU!5vEl&u}Z=`i_xhIW{>MG|Y81w51 zM-r0r-L<>dJ(a{_UUL70-27hRtFn8gko|sdI|-OR8&shNB`!Stb?U`nulunYAQ zqCdK8y&7IlPx?Gj?wXMLv7XlVGJJn5o+PhM$o*&$`t48rG)^OIOmO__E_m%XeC;LB z!KQDG#Bp1PQhnw(i}uavTj_P0hsopi8w-nTgoz2UKUxS?5;A|(6W%4{{czVV>D0)s z|JY3KZqf?_1uv6Pa2JM|QiXcLTT>37&%#j<+_in57;U#VPn2sTP!M`)OPYSST`rs` zw}Dv@>S$2ouJ@BvPonslL>s)O5KB3PkF!3729N)(=5!v}4-B*XLb~{0+up)OfZN zeESfbX-O?c!NNsLYzd);pbeWo->~xdMA?E=tv zg)l2k5oDL6h`#3*+LC5Zl($24BK9V{ov3aWVx7ow(vs(-2r^s?^}R!T(_pT^p*Av% z^^GH#0nwQvD!gj%+v$Cb+!x-?LL=cI20K&ISHu(2mfo|inUdMXkxAO(UIR9J{`e7t zch15>?Wt9|^f_dVhfzm4m(RCN|BYflB9&mPKb>RJJHCmL!&*;IpRw?h-<#mXfFJz# zbL#y3|8gIVe~D+ak1n2m*YD2`Thf1d5hEXmt|Es}&k|8lD60{J-NvSG!mM9tl0Q;@ z5z@rU`3)2tFEN2Hac(yY~9L zi1guEljLJ4a3Mq5-Ph^2>rR&chQ2yI(x7FC_0f#UjEk|l&`)S*c~D*WT_eZ{aTQ*Q zNtqMnQ3$L>zSsUo(`<%G@)ktZBHxPK$!U?jCvo0q*Airn;0m2yunXmot!Mnd#}1Is zL#!*z*FJyN$98@GXxRW$U5=y!GL@#drJ$~oKg*C+pEg!VFJXJ%Z>XFAQvrK^TX`7S!BpLYCC}N|-zn*)7QV z=kz1e?VK?AcZ=9k_^8o_6rUrl+#euLni1+l`xaVaedspr)1@JD+dC!YX~;GR z^Tn|25cvQGOQdLzc%^BE3`yvx^}Mf_+q=thKJ+rZ|EQCr>|4-H9tNWVcB}VX@_i8| zzecVCc3kjCT7Ef9E@ugBqr@f_Mt@GOE-(a8;s!)0&3PmS2rUEw*$O0E#J0jtK^TgZ zK!PptAdt=ohOQlLHX@=O=hQ-Ewc~iN9l2xE&uqhTA-1Qo@RLVur*%E#dI)dN1e%Ww zr5Oa5Ur9TE*nZoW&>nIPg#1e1jDLOEmh*QTdeHc*FiFrJy8j{l{-GH8FvN~jPzvE4 z8Q&Xl?Ia`!y)3Dngy9+?7cO0dfm-eOmDbQkW#pSMc43uzZAtE;6rPW+YperW4v^E4 z-IW@qj&renz1UygX%T-D>J`ye-Zjtmm4`bvXZWz{6Xd*B*dUEWGEqOhKM}qh+v93G`*}bV_?zHXJmig6K zb;UlE`Lidy4~=So*gnE*ZRfiqY&|c8%JpIFOZr2zXWMKmhR9AxRltWuhuTV-N6Dp- zOHgQLaqOp5s`2dtdLI4H9|%Ti-iJv{w6$jGV9D$@iIIsSR+|)7OqwT5mlI(gMf+Z^oFNAyn~y>ji!fR!rP21~Ct{6GklKs0gM^Y)eC*?J@EKmVj6Y}nkT6}ofPzWnE(e#%g1gx8WCLpn1W%?P#twXM zO%9*VG%`*mff>n@h2g>q=%x_r3d0mafSHiivsa3>?UWgEU1TfZ(OccE)&GcLc@(D- zjNcOMso41i-U?`2ccdBLO!8EO6QqH$Q)%}0z8}=rmoqYnExsUdg%^47ZmQ5gcngYom%Q1LHJ`TcDffJJ1><+mSkrspdLnhwqMkF?^ltrc-)44AW`nZJ4JE zy~J`8;?mzkh-N(Q!7ZA?TE;#~pRp%Ko`vvey6I%QAL->0PXeu5_i_6bt3M!s&JXXa+HLS8Ju;!kvxNQzT@PND$8c*V#w0w%q?+pss6nAZTNEshIXL9IW5jvA*dcP@V^-EDkWtz#-*whj< zi`AsK`;YJY6w=>k3k|fZn*^xZjWExqh55*uO`DE4AF4=`r^9;=v9So9LsedgRhlZW z&JjKe0Z5%o*J0i6eM(@yL1$!+8WClr**9y(sshfztStJ*BHKvXZzXpd-erxIE5Li6 zP|rK7Vizg>#Sppd@7Yq5kb8d7BTfHVLO2MO{8ttkcJ$iK%l02`wWN)RpGSf1kui_% zzEg9iRNtYi+y?~|s699u}RgrFF?Hbrv6toh`#yjqhs zsmWN@p;U$N#ZmY4JGBPOjgZS;uCkmKFsr+Tb>^!yaDlK`oL$pX-ivHvh4By$pV0P|9+Xbv%sGOxicj?U$PkYyB7714yma(+Vk zXQV6>;<(Q7i>K4Pe9PKyMYWQbBPyPBIwZzZ$hH<0ZM}C7mt|xt*dr)Zu$~)^q_2%1 z!ousloWt5)usdx$#>qVpu7KB%en{{0bu3qorsY)J7@5QhpOCklS-z%9MB0p{UFBB@ zN#J_PD`c(p;HCj`6Xf#6EcSZ-Exi}~R`6wg7lkXR>W>X&Z8sXW;S$Z;MA=ENy4a?4 z=q+DHI6?8%nbx)}#G6ml9cNazyDnux$e z+B^x7Y{YqMp7`8F5+5u4%QmgPUFy=$f2h4aViEHq-{%O~K%15zdIQI_6geAIM#qh8Hp8GawB zBK)>+fCmt@g@Ne2vbsE{X+3!b%nG=C#3SkTjWGELvbU%i?y;4nv{sPBGLW&A5`GHH z=OYV=%QnXQe2g>H)7LI1^X|88?Y zhVrPAp@5IVG3a-4U+044ovbshAFY*qmX70W((Phre+2HL@NWfwf;J;>cnnqzR>LmE8-_fWu$%AIX% zi%gJt2C;`mbbY$Z_UiW#ISAQG@A49fw$6Ko$wr8KY5xv*??Hn6N-Ybg8PN45?ISK@=hF6Jd;PhtDMW zH<(j7Ggl-0AhFx(MA-WH`tb#BA}IU{>p_m~tLrsecjO;r@`pliq2$3ZTG*e7WD5h7 zGq{6oe<4?E#^1z99l-gIoVar3YG&f6Hn0^ps_ zK&025E>}l*I(1gu*Vgy&_8IaNnApSBb%xR`Kwdf>c^P^u4H=IhD}_A1(ac)3(+sZ0 zj8Z&ef@3se$-45ad-~%-J?Fg*`pD0!WJ`C~ zY?WN=tvudV-_;NIGlXjYOTO_q?R|!nDB+)z7}M%07WDEBu^Raa5}}(dve8lX%&)A(HkFs zYa%a&c$ynnPsE=V;=}=~FG|CpKf@t;Bj}7UutL*@_2uQipO+d`t}TDB{~}|-l@Qc8 zA-I-RZMs`izTfb9#&7zrupj5!UV_tE+VKp2Kby$2RP)ceS;3Tp_!pZe@cxTlF7P^Q ztBb+Ji1+I}k;=fNU~frxZBLN#7YBQI!Z2F_T+eZo{uQd&w<7o)ol*|Qb2P9Dk_nYn zImfxlwSr9njSu~bduIhbNpx9^()rGOy6H6X&ePhq(P8$t2)@A3->`PGe=2a4zruKd)^z+mOX`T+3lw~y@?d+Jb}uBB zkc%7-SIHN-cIW?oGuArVwJJyrOGf}VimrR{7W3Hb;oh0i2gFe zJr2Q_1@`wM>=gAoD6+IKJ03`4I|8r|od!wzYM| z87zqUY+4~BIGZxdW0ukwkfI>xA%~FmbfeGdx2l|y(xAJ>L@^`j8fnVllG1pBhYJ1v zS-cOvPM_)WuBEl;|5hpu({&mY0PA%MNvU4Odg|2*sWA!^>=U@$;A~|fyFp{-cWYz& zJZH0X9YzK89=p-@W#R=YOufOkhS$`^w%TyI$pQR)t@!cre{T+MGUKz~S5B)w?v2D< zfkN2vx)V=f#apy@C*p50XNDm27G*a#>(Yh~DKC#j0YUMldG3)haJ|iG@pGY{a+`yC zfd{uKq|U>@v^H?M!^fgC>KsXf-yI%IUp;a-eHnxtI_NIka`=vM20vre)28H?v)YOk zm0KWF>AZpb9O~6Wf0rUpAmlFfO=??^?u%J>DYC`t{Ime1@R0|~IiwMX->Jb3lhZwt zZ-<}KtU}~Hz9Lq^<33lev$Z#l*sdLyx-1xD@1n2oKc2a=VHI=b=L$ZaG}?P8wBFpD zA)P=bL17*8*@)wRDQVNe^#L($5%hq%I#gS1-GW&U7`s<32U*wS0kHztbPw6wh2KNU z`Y!de9UWH~jq?7%8tESH2@+0*zqn1)T%lC7{4Ea8ExvXb8m~$EM&L>Jr5`-sY zcd6Ikcirs!(kXa9VcKXA`h>u5%;+fYU>2yIqS#wRT%J`<%G68r^Xr0ZHCM8RG#Z)KBu%% z{@g2+nkvUZ|AMo4BObgU(d+)dN#7$Qp*k@1RxGA0$1uXRt7ilX2ZXMAOZq=jJ~EOA+u46}q@}m`NvRG~Wp2q{6MWIhU5YI- zl`l$f1*}zWqvSg%lFNYb*VN>P%-1y4|5~)HMZs&z-UFP4x~nUfc(|%5cgH$ThdqG>nrDWzb9RU z_gl*T1K~>31E#k$-vb$Jw73%{UrbJtTB3lUI4>`ftjqL8NW_(cDOU43rbiVQw#-B*X(7JQB58A`}!j@Gif zoUL2nRJj$5pGn^usY-JNxu2<}D4f19E{$LAwl;Vb&0S337pCx0M0{aFO!{q~wO?Me z+!1DCwRfs_v(^8utk<&@aN)(>*1z6Hvj&J?3HHkS)7pW=Jj)`;v=05sS)fJySIQ3< z`zn3*wrTP`WPauQ^&4EiQGOM#4e8r&Oyia~; zbCIj`Zb)ost9C9zZVz3dqJ83p^quY#2foZPE$|2*ZG6*h=ViagQh@2`DJ$ae&(vXj46sxyUatr=l9K! zcbm)_ccG3cn>hE^ZGD3_#K_Gc3Pc9NThKHT+ZVi+P9t2gcsHH z6T_3=NDYx$l#*W}uP9Z%go~)*miFJ>q*2t=6D_t=wqKDV(wHrOm9XpZfREaIe6dB8 zuEG_Ht{7Q85Lk?Y+8~0EHdU%_A3EZbR2Al8)V&CoifQ_3pZ48p+g8GdLGmt6>_-e% znk9%Wt_c(OdTo-*qoBBEzEBd;CH{|))DoJ06yl`Sc$PffT4O&_m>6*5B&usQbxSMo z*_4NV>BM1gF-=VpCTTT|od4C<{}=m+F<<-wTs8#Yji{;izf2cP((hl~8`*0;)3I24 zm*hyEA-p8b8jW~1+Lz~B*;Bf{QygBBUcLi;Db4)<#gbZz5@yBw+e4P0EomnBhMO0}LeS}$Q{zkUa*daP<8kHN?*jcVJ<%Dfi z;@W_{kNy2H=m578|Fg{vcccwPk?BY;MI)$;riG9JV;P#e0x3#!1UY5sx*_@Ft%viY z<(<%#CAK5{*k}(PcwiKNSSRIv@`?BoiFAU8D8P9(jHWG7965CXsQ%)Z-gZ%O%x zDo+dcBT2#Z8}~^vAiF%xABfNj#AF;e!BtIs1=_Ry;Unn*GAd|ZYWo)VkVb91AvH&; zGkaRy`5;Y0t}_)qhoeq2@Sm@Lkvew%{3e*BV@9iYX&_XjB{Shsk<-Bu;T1_UUgNCVcYSHZ6jmCi5wT@5kWUH2Uw!YdHOke59jNm1Y2PYjecieh-j4 z{hcJ;KwuqBFR@|OHnJy@>X2YBF4dv$M%U{pZ#}6HhT!Ga~JT_0k%+HlV}Wi52CF$CIR^FgBoXDYl^|tkkcaE6F{MhaW2eFAQ|! z@uF-}I`1t>z!Tez9G9+W8%&31idtc%BrB%qFyC z9P-(S&!z_2=fKsSod+(Im$xCrorbx6?_}TGy__5lqdSQ#<4;Q~km^pa=;7Ct+&PG7 zsu^C|t5Z8$SeaD;%Pa>l|_aZ8M%!lrexyrQ-+r#-b)T~sOzn% zD}E1tW@v$6ZzkZGJBtjS3*Pc5!syM37Nt!!v_y)xCXKuLh~~8D->ZKxH)oQmHv{>( zh{EIGp)~t3xCJBS2vZAYeCb{q`TpD+QalO>iXE;x$vqL=lA8XA`zGzNe~=!-*ph5I zq!KIIg3n6(kjuxijzQ<7C+(ZdIUc2sDd$A?mKxW8`U6{0^!qX|CEqtYD+^3&M0!%wHEM9$Fp zleHTH{mI(6?{($VzkCf*{*21{srOXNh9ldbTD{;MKx{Farz-F)OaWw_hfJmUf&!(p ztiu*n?gfOjrNGIvJXCNlj0E|iFu5)54p`saOBwMzTQs0|ZIjC<=e2z)-k#pm=`1>AFTM7+IyOCYoyh+MhE5#Y)|ozDiV2kw)rqupozl4mh3w?1 zi(6+pf8XklDh==1b*7-^7m`(X9D+WG%bM3n4${2V#>e@n)|Q013t2xSTWPqm?@D>q z;nr0%+~aW%%l@$|8v5_$Z1~UTt}(U!UhuURdvt@}gchGwS=W$BZs$rz3)C<#xHMqD z=1e_*;Tk8?-d{A;_yyMGH){C_(RFDCkCa%|l3crukb{lI9? zw*GU^(-q~sIK(HFWYtM)VJ5w^yI0ABiuuQOnh$o~^_%~RA4*ATOv3WLs~%MHa{$EN zl)o3=N^=Y0y{V?gp)Vc^TR)fxa#w8a&7F!ueggVFq`QQWKI{+>-G{!qk5mPEh8*^3 zSM2VhUfFsJU0=%bI_IH+$p|FKtE~}znWB?X*jMB3{QYq)^|n{Ux0)@h+z9bEucLi4 z-89u&eSOsUu%b}RK7IIYLVy1RkND;)PC+$%;LD_dk6qwBfCG0x z=m1vxqljmR_D9Tk$8p2jv^JA;(X#2P!nP2HGjKByJDdu65qUU;B%xq9 z^`?Iw*jy1Z0QwQsPy#_CNV5q>LfZ2uzo|v}52Pw!|Kk(Y>GKzIM^Hjl=tdHo;Wb0W znh`jX*aAe2M)IB8SYm%+f(rjFJF(Qh-F>-sgt%hQWem; zZl+o$cn~|9c2_~f7?z33$Qnb_UO|kYK+n1B)ynbh4*-3 zr(Hd+Vh6%RklOObQ*hLx{i>uM&_~kj6Bn-SRV2Mc2tlsrq9Zv^>c-tvM}8Z*k(A_G z@{=lQ7Xl|RXmhfc?VIk}+uys~rU2A@##is~RObd%|krrN41*b?T+6sQfjtb)UkO_0mT!pXFcw*aTmJ}2E~ zwUfK#DH==3k0%bP;E&npIaSkBJK+2?6@G)%sZ?~!?}Q4LLDV!#ZdPTS`UXjYSpiRU z{JA{QAzJ~%cI;4zZ4jqZ?`XJ9r_bB(U%F3maxlWDQ-6!gzMcxmYi$ZqI`XE|xCPKh z6WWcSXibaKDQmkOIA7S>zp>lK0F3{{laYoCZ>pks)i0Vtp4@t(g8QJGL9g)6#|-M9 z(BXwDx);P4g5Glus6-p#9Ydbae~GFc0Wc9PKDq8KWxaxTF`5S2MF+d9q!Xc^Ni*sr zXeML#2a?%nhji?(CU+2Yvxp5r)GSKB)3SjoE*@qDdmZ9zR;k-CDNPXcb10`Cg67Zz zt;?5E<9!uIg3OoHISg9k=>e*>Q3#w%+Wv@`OWI?x!_;^mfSFkBS)rc_@(u@kOOJ9e z9#B3VHLF0!+`q@Tt z>!~%SIid)PUvBrX=OJkk_il2PV+IM?d=%m#E@o%RCY|lK;jx&nmJK<*?8e|qQWu1? zM>}QS0Q)nyE{57LE#?N`1o9U%KI;*@gxu#aYYAC`rgXJWd;Q)p6sb$N6?yfov%LwN zVoCP_k+BTm3kXZOi7vPQu=O$qFV(yjo9sJgc#M!ZYM8FQo_?TY9m8c935x#CyKLK# z5=Xg9$BEV{mp!D9$c^K^^%x?Tac9!XtF(3Iv@gDIkiCp5?!h~r0UwRfcm{m?fFrh3 zM`s!Kz(kP07|LX)c5c7khCE(RpM(MhT=eRsA#e2zI!eEspy#5VhN7#KH*Lsr3hanf z1^f5M;|8ZSGk8HMcR63hP9&HOT>?|>K)d=KjGRz5#RuT#m82%OTUO~3X*W-QH z^A|z$5w3vKcCGN8L(l@#3ff~vrh@GoF<6cFSrjPXlnbZSY?uVSiK>(s4n&BFp^h^C ztW5bxHIZ<0QmC4LJCSRmA)EVVsC@2-T1nwUVO~k1(LGA3aesvDm3(^)K`1nF&Kp-H zswxAL7wtb+|E=GGo~8f{I>TacFL;x(#N_Wd^s6}hC>U4KpSzH}iZU(8VWVxR->fd) z+d#LPDtzMRso($vt|m(i%nJ5=@s=v~3$j=9P*y2RyKP$!ocm?3Ux|&>wl|B~+U?0u ziKfDP4S7zU{i=fA2v@+GUEiu8%jp^p-!kuk3hqY18jg2p$+jx!3FBIV&v!ej7s+YV zI`V33RrFTIQ44_z*eSlW+RL9Ut)o*FYd*ldj$<+*TOs%>#z`fZ12K_n-NKqhRPfL% z*8^T_H~FRH(d3PnSQPpoG?Alx4r?Np-FE2Lt1so`^>mDXl@F>(JRe)nJ-oA2Mzx{c z=->kzpY8PfotGF^UgofUF1V=Dc`I-O2X^3jn95cK*&Aq4Ux*tu^@^visjFb&xl!XG z{6IKy+)Kr7q@KctJJjvcdt@qDAdgt*O1bI6UVs>=1qJV@LtiMoRy#D zU+vux|0kEAeAWEPN-zbkn|bWmB>jrSg~evN_zh3tTOxHc$5%AAmAzMeXI>lAnbkUO zHq&P};I@U5kHfTuMlASrUD`H2j6e0u+(MeE2-!+S&$n&k8S|{IJQ58@E-~8Yjm=Wh zo^i4RblbQl?+L$c?973An`W`N_)Nak2Hx9Aw`^)3dG^ICJn#)yz@9I<$~Q*lOLt*X zz%Pk@a`Sgi@)=}qr}aJIx`UN)>bonF2SRo*ynIFP(DW-edFmNyQ~7feHmy>=k@Cvf zR!tq661bBzyjZ%E{)$1?PC6_KOmVr%h&_o-I}J_nDQy=EUt;D-PGr{^1H3Odk?t|%)9Bd zlDM>+XRyV;591chw1;Cbz`BPEqM6>KZNGMzB>w^9Ue+=_a`v*8-G(lO^}5a8sq!L3 zrEsiEVOAP$B9x{g#C?>ihX)(&*P4&5jlM;5&lA3ns!uzYu}#fU?zEW{FnIhUYv_+? zxj!=Zk@Wxy6xMBU-B16&GsVcE2-#1%+Ml~xn-YwJQ303K?5)1!sv}hapEZW+KPz&{ z$3sHh0j62utDmPnS%^BoNW4e(0n(n^8mE@UBM?(b^w4pI%F4}YDhK`$v8fzlEo3U4 z=TF3|Gob+bgY0aBpo7fN;z&KHnO{7#@hQcp2(W0Lb1~(1h+#f=#i9xiLHHpu^s>Yr z($o;RDo;Mlg~N!`#ndDSgYF0|@vPNBRb3Z>1UYLXj!?w&^9|G(hrp~5y)iFSiOwNg zA-ajeBN|V2&Ec7*8LZ5fG*aE2(@d4T37Kge>R#y6+0=$HoreVph_F&{=Zei$n%Xd1 zxykrab&8sTJz=tuwk-;5EHW$p$Whdxww)&m-4ShP7JM}fQW-S}JW3NJL>$$`iD7XE z4Rs-8FvQ39pEWdGHjS4#yff&vVdYE74sGJ3QZQw3&VIb{f>)U`NGR5Re@9x1{0zo+ z`{fA|e`0owD}qIbUQ4qu>lg$74avvo{)fm_I*Kfr$d8?V$C;a>{>ta!q-Q{N|wx;_PPYO5`)9*iL^tbKn{R|m7@>4YO@15mi=a+eMi*p7w=4v8S5mX%o zr#O|oJ~!ljl91C>smFHnShNyE4_G%=a(}3yiokg16mcdzy?nRh&UbFard0BUX zro2Ps1-=2A!hAt9UmWwQiM<6pE|RS@LNC(#w1O&jUZuZC(&NY@ro#G%RqeXA@rKQ9 zI@-Sv{@ZVSrvbQ7oaf+s)$i6JmuUDS7%$NfE0Ql!cwIcW#P`ldBweQ8e(DgekZcn? zl*So@uW*?6SM2m{fq3QdP=&t?{Ix6}`Hs#bjduCBhK50R2Be>d{wn8=S?@26vc*b^ z5ptFEJ#K7HOS2fSYAOl;@FrzbmH&rO=>UXlr1(;MtaJ$;*Qo9@247=RJ#4VUHv#$A zII_J6y3VoQJKvt41ZQ0*x&NL3X&_SgsP*!1F6oDlTYlf zCL!tuml{R;2TCpn#>mG!x7j{-IO(@IkjE(Jd5p3TSqfPg+-|bjj@X-2^nLhYE?zTk z(lJQx>=X-q!^$2KV~sw(sDFOcmbEf5_7J@4YC5JR-qAmo^?z u{LfE4PLDM&|EX$1F4rAR=ZEKN_*aB~MfoT4uNeP|^RI*@JXbrq!~X**qJe$@ delta 17360 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

({Tl6b2(dg+$mlFotfxZ6ghkhQN(PGP%gb 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 InsHtJAMdblMF0Q* diff --git a/maps_src/mp_home.mdl b/maps_src/mp_home.mdl index d68b2d56cea744d7304d1c619f00c99247ec777b..365dce4c839b99081bd2e15eb6615f512fc54223 100644 GIT binary patch delta 1716 zcmcIlYe>6P zf-V|egd`|6i^#c6MY}H&`j-|_8A7fo#0+}h^L^I0b@|s}?|Ghcp7(an*;w-t`EaAW zn2^V<5<-YgE`^zpSzy&*5nx;-Au>Qk6u&0ZU;!f&@FWBw>Hq_BeqRwyhyy6%B;ar& zA&svkB#`8GNi{c}hb6Hkm2EzAM>RV?VT<48)wr5v>H+Z7@(IWpKxcQW30)NRSHv!B z1eeQz=iW(;d=^IRViR0$0A8JJGY#%26%|UuLI(wxdw^XJ?-}dlHr9ITx*wJte7aH2 z|Cph31>&JM8iGCH!0@!PFSPw*ebakj$^9jy12i0iU}fXyh2sSORV6?J;LZTowe->| z-sdAGSaQEtNyTPH!EhiZPmA_$a-3lA@88be+Pu*7eo4^qRo!E#t24WvD&Z(JLJp6G zV;n5M|EzKEr+Rkl9Iwe!ecj^^Cg|_KI%wFovV@PIht~)ZGDK&asj%cYJ9M_sq|d&n zuP-WRI{O<81@n#@`1_)7X%s>ffI-^_pFYORa%OKA|J<~XLcv817?thx$(nlE)bcC- zve*ZP3euwQIJL3sz*s5Y$9g<#tq`FV5VlAyPB7AW@OSp)v4qUThXJ&LaV)x{A6mM5 zt#sk^F<`M^_Vya-A&G-y`bN&{ts0Agko{|6A4anY=cZ@7V2@+AXHDqCwTj`-tILw& zs2;9eurFf{yiq_5$4qHY9?5A=+zY9PKbQYikiRO9Nz96YMqn7v<*6s`7+ze`(|f@! zsLwIQLq)4ld>b?~Vll8U4Fcg5ziAwE=-SJbm;f}h*0TX_Vn9gxXN~%bCd=-k%3T>c z_qT`!ho!2ta!*EPPA=$Ee3^(Z7x5LpxGqz~vqU^w#B)SkC*n(g@wqxtVV$V3Zn>*Q z*?wAfH_E*rGFmx`zh4;mtc25&Q4`_H-9s`}m|`K;p9=jp{*1{-h3s_4MXHpcN-|~x zrAi*2EuQ4ESO=BRm|3U@**ZgdOQG59G$vG0(il7KI#em3z1iED7@xwSftHiNlEIK8 zE&|gE>nV=77;H8e{$r#F95Gce!fb;?&4dPD#5kPPNNNYgp z89@32RD1$ZaT$;gqHh4{4N^e%BSr=Rxyg)dDjU1%7;S-~a1a7zsX*vM+YY-qF)%b7 z0&;bfavDfo1rV!D-pZ=Xc?QVh0pfzq4_Rv&C!gb(wV8wK1l#5Yp$!7f2b8xT JP-a~41OWA@C%pgw diff --git a/maps_src/mp_mtzero.mdl b/maps_src/mp_mtzero.mdl index d20a0e8af04343db0096f7881958faff155e5232..0c6120ef8807cc5a153a31c74ffb54fdc2d2e3ee 100644 GIT binary patch delta 316869 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�`Io3cuYxhP32+Kzm+o6iI_?_GcDijU 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

3+Nm`Sv@Co8T8jRkFM1-GF_@s88&Ma%0@s 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 ZK2Q!SKqc4@4uHRa5B!BkKHT5&{{S)}Mg;%> delta 311825 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

#pFLD9g_x!BL$9*6PiiC zEy1$P_$BDVr9*$a_?OrYcx)+O({`S`$T1TUI07B|wVC0f?=Skp_*{I8L5Uos<2t$g;E{TA`TzzM1 z1dd7sRQur4L>RpQ^OA%X!O8P`$`bCxAm`zcoS$CoY$12eiY3L)G3){Bp^URm99mWU zkdp@*a*X6xN)yS@GmF`=&Fh>>aT;_b&{*Wie0#AHHaI0oK+o;ibQJ&#B-bh!rxLI3 zcv^>ZR)M8SfNNKQ44jN*t3fGRQ8}{%U8}(WE+WG@yLEawTrOQ`L~dv4urJTMQ4UvE zc7!Eb0~@1PAJ%csZad7*p;DKO+VGng-x^Vr1IHG0H|to)^HdTd&(vaPGsl zZF((3^4CW=>+dR)%8kB>$d9jT@}5p`wX7i%dWXQJzsz;8U)7i$j1mfN zQO%g23|Q92(quq=8cy#h`qQn+LNhJFxF;THf5IKg6`O8?N{6uz6y_raE}^)3TYPhr zyy3_y^5ohm`3^c~lQ4-VxL?zvtp2?nd?ck?p!tD)shrIsas@rM6KKqr)&Xs zP+|2JpuaJ=5uU6)VaI7XXCY@?zIl25s+mF4r!pKkI)my<@VXeLI zUvU4so0@gjM7}|17wNu4%|Ed+ zLoja}{ICOCZv&|QxqXkiA3hyfur}NGZVT_MCEyUoT|%YPl|OB_bKvaixF$uwFL(H|U~2CCNT zrc~;zb~MDTZ%qSL|MP&($fVi_xh*kbxU`|pdwR?J$MqyvZ&|Pt%I#6sF$*+|XUtiD z-Ra(PhcCUzt|uedUke6+mva6NP^zCVHAZQ;b_Y=ZDeSgWm>P6#61S0aP#+^XzlS~< zz4bTQHR&?5G<*))aA!B?oaY4?%7?A*PR6YKN`n1|GxbLnz&$PLF4#Uoz_nd~kz=zX zkj;B;u`@ZStNanTJ_YkzNb~(T2hX_{sKT7$#9~dJp?r|)ncDbLCE5RYF}1BM1{qk? zT;^b0J&k3wiM(=lgF5>515$^L(*Y)*_Z3icu~)j##(ZMNB!=s_`_2Gsxki4SdS>or zG79HFb?{oNh9W7#WH={CmX#aH?+0B{KRddg%+iq}4Pz^GwtY0kF+h!%7tH1BS9B*| zboPW|eDr<*zj{wmvc|1*4iCvC>xQoRRM_>`x zT+)w|%=?rNl-ooeCu7&FXL-03K46`;N2YpiX-3Vj9L(9wDXy3Nz58(z+kXwK#Fj_l zFz(p8JZiNKx98x5`fl|%@a~tFA7Y4UP(~m-rM<(s&+#)&ibmhJoiKH@S z8T&4Hwz7R)0$kE=Jqj>_qzA_Uy*!+7OgNWc%uWVlN9{2o{XbHW&dL%(2=R@$o_7C5VUUWIp!eF%!We`N%}Kc#kTp# zt$=%L9%|iBKH&_bK65aWtaXD#3(uyZfw^lr>1u1RM6N&Xy!vSGU1UO>88S1LqAxEu z{)@A)$4Ox%kTegRxcZYNQ~GK6?zXx zBm28@iiD!!e_YNb+*5DgH=MNeb4O~nHwu5r89NK#J0+9}_PO^&>M$KNj5ateyw2yZ zUwfHiadjS?pnb+=`LJ;a={}L_c1wu7loJq_#LENHS${`Gwn2QEfL|Vz3s zyNrGQ^c540MKriTRpAU8z0yGQ*9c(1Pw;6Zv!bVZvJ-Ut;>Fs)9NPWAaeYL zKT4Yahtev#$$56R;Wl3`KY4>yCyvn~cVfpPpGIR8U;mnOK!@3%E;m-O>cHH3wX0$x z(toB0C%Uyo;CB&0M<|6f4@9M@3Q8SZr2_pW7e^FBF&ei+AsBP859%>p1m?GNH8gR< z#spyU1N#sliPt!p22|q3tDU?ZfD^>#kCUyne>8C zaF`Ch3R}I^0~t{Ry_gXTA*9OG*AR!hLO6)OXPE;MV3%vaxkFms zb8({Ti8L*y{#}aBG}!1J3G(suAUuF%AV~a(ft8@E*7% zwDuvME$-}z)3*yhN5vsO8)wd0T#>0=VsETbX(I70n1r_$<;9El4ez#e)YZJsSm_2HqYWN;Ur{m9;{U6Kc|I3CMcZ9a{ zI=Gyx`jcnXE(?DgP>)`Hh$IVMEBDOkhh%>LoucLce7^Y*5Jqi^`f~pRB=`Pi*@VwN zs5Ysa3J=-e&q#mIq6GD;-YF#g!8=OEK(Oof5XX*R1_}B)7Fx>A4Mfd1xlPS^CeaM?hzog6u?NR99{ZHR`rtXv6t%stp-#qer$ZAa-ggmK_9BOmmb&c5Rb@hz zKqtGB`W4#^ZN^y-fQZIm-b3)Xn1GK_PA%4`9;ZJ9I&H!w4~6w`MKb4+&~}Ee2e<$8 zqpo{g?liw9O`p2E8aEAddT6^G?U!ujlu3!t++FHtw2<}J2D&<8SveeoWUGp=G=kA- ztJ~{KTpQr^=hQBZ2Xe{a&jsv|NLu=n$WokA2_pZ$*@|w3 zM=jo0+UJ$fR+E2l-WDner@e+1b;^$QR59K1TKG_tH=Zu375ZxNhG64&KzIq*=N*X1 zP+a{E8;|3ZBal%(wO%P>eS=_zovB%PKOJpAN?%XPW;5 zyoq=PIN}#5I{L;pn2hh!Ahrtmc{dVC4V}_1 ze8~eJ%!oh2KYYQ5)H3Ggq6KgdE1ECbz}ru^^F?q~wSQd?RVf+-i8~Fth^(xc7;ba9 zhVFQmJ$-Y@_WMcfb%S?INTMrbi;M0e^6QB053OO#$Pn1^n%146r%B>A94D~rz>{NO)5oOY~{X{=C`Fq@yR6AWeKy*Tzf8iU;?8RwjA`8C9Jb@~a zR-1_od0@M%8Y0>W?&4AA@XIIji%cw?X)c1xKhLqJg-9i7_<4~j{~n1})_g4bPoBa7 z!$k&o)G(2q&j0=uPaiHaqIV4wz2)(@Io&JL!mEb^lE&kL;UZuAt8a2-f37B=634ro zpmEMy?tK5--s0jE^Wv4~CMYBJCqaBEH!G2qd2{;&PMN0>w#<34E-u!%R*sZ(hLtEu zTX6C1Ip(VO0yxw*9VIdo^mt;Vyc~@4 zeMEkO?6%KT>-#|1)fh|zo*s;&pb)gi^q`)N>o_hhp9U@8VZN`(S8C<7iCR@U9y#9B zMO;F;xaDdw{m-~Zjf10nz0?bQFUm#8c>@^)&_IqeN^{#z6Dy5UB1IvO{ zG-Cz;e4LjpQritdSFm)Z2!iM}e&z&p;6A!|^P>;ydDCskKGhKPj!v5ia1nSM*};sj znFaUD%V&vvA$FIgzbL>u_~aL5hA0t@I$O;tMvD*C6kocsOdUuabmx;S_t zNV3o;+|K=nf3U^(+kUGjDNd08p@sxYfp{j)2Os}Iz0fq8zevMoteZXM#;hkTLUnSpk zP72!1DE}-3Q>9xJ0E@S=WCu)*9yh&%QAW`AlIW?T( zF7T4Sde`W#r2bwjxgUg?0GuB$vI;6(IR|~tJM?#0|MEBMeT=RVww52~wQvGwvUeYK^V5myRh@E*pFWdB@%X36uH3jk8 z%$T2J#-r7Ac^;?$eBLli#L~&~A>d`KaN(ql>_zX?zYbkdQ)Sv@|FJzvxz#wdd|_YCZHk+@2I>AQ zU!9e!QeT^!#|%o2KzG)Q|Ev4|z30Z^YSB};-RnjG+-5q%Rfaf|h;~{U;vR?#wM7=~ z>NET8Nuo)GOQ_pZ#uW##qEvqA!JZJSqm>1OX5;Q1cRR1b`qW2vmyGK}&iWNI%BLH4Rk`EL z5)evlxU@vn#EYbr*E*D=Z==6DS#L{3H)yxpuxJSOcU{5E*#rKiIQ@>uSD;WIVEn`p zD3Wfy1F{kfrtNn{O@i2xUrh8DxSNez?*TuJ$Da3r5+ZQ&eQ5I`_BeAjc^1m0YwvfE z%RQX(Kom0L?pAKKP4PgJ_@*2q*Uo3c0oX96Vc{5bpw5sJ%#&z6!t6auzJ1S@ufd)V zMb|CSW=l>`j3_fEm)ZA35YXTC$vwlOAK2v)sJM4_EV;4;M?C_;aEs1*)WH?7wpNH# z0>y+X<^B_)D4edX5dG0KzaJg;FADj49^ugyj_Y}A$cU_&Y$4WtCbF^@{QwC3nT5O@ zxv!ee*kMRgN5zs&@$M|U?KIQs6%Ia`(a@ZCjm~-|+M)%6vVI{N$OBICc?od!d%BT% zJ2o0M;DVQ;fT7zI)|?Zrj1ZG2R#();-UY=P{xtPUq^HS$Ctc&H#$K;Qta*E{J)CVP z{_01f(kjS^DIeqz$nA~jI{0$&YhVBZn+J@SQ->lQTq9Ch#wPtY*Zyy|`3n^P-%=7E zdY4q~JjtHewSh^%UbV2Fvg^K|ng3!b(w_E?bJhM9X+qx19}%WG6X2Os3qnewoX!kR z90O5gYHLMi*6E*4EB)#cQB9BjoO0pXqk*LJpI5|W{yr9FQ3v|Vh@%5!YcdVc?-i3c z#e*WaFG<~5LcA92VsGM%I-u$ly1Wj^*#0+9sJd7Nmg^l`IB6kog$X(I6aqn$qu+sQ^=x_{DqCY&M*!*fpxGV5jqgRa=I(zKoM_1$ z(1*C6A4NuP6R?i7X9H}*c|Np%qi7NjjLSJ6fo>vkRY%c`b(;WaHX2=-Fg*qAbKIIl zaXj7{tZo*~_3wIQHD@0)*%4&i!%Wik$pQJp^-heVZWPM#-OgD*{@MUyoRv$uDYNAR zZ9ge*ZFEH*LqQ(RFcZSbjMq*LkO&myodyrtb*J7(|^`+SAX z#=^??%o3Za=mR$RCNi_nZ+*?=-}gfAo?qq!^~MATvaVMEX<0prU7od-30fD1*3r@5 zIu@^Av3%z4v;=e$NB;!GKiYedlTJcMTa$SIHnq213Nh%@%uF8;h}`J%pRkSN7wnsY zCej7%u>M(|h$U1`&J<3G^hP$49Nd~l_>;8dUvbJG=(h9F&Z<+Eb||51JtqX4m-ZkV zzC$$8PNU?5=*B+)8^N`d7^Z623fPF1^TdYQJUFN0i>>&H6?4FnXxd3^Cdixkm09mP z7Hy?{I*B)Qf*MsiVjIfs+L@stpBX;X~@^`=aMfP{>(d6FT!LKyVAw0LY_$Gh$@NG;BZQV!w zoF^!CmowTau`pl*Bk?3{IGPCVFAlJt8F!5n-51KHl7-I{Zbc&tW zRTGXS%N)cO{Ly2+F^-t$D7Fxoq~$1c%B|5|TIwj?ugSYdm&wGRwX8dJ8p#RVB?Zak zXSywMc-xOH4c4W)NvCw20lJ83-f%icE(ZQfz$prGs$l3fzN)D2cw~u9-C)xF^DCUR zs*;dCo$Lma=7&8r0?pZEoVWoDp}OP60a}7L%Dz;*A{M34(Gxo0vJ>l05{H0cFnW^s z1Wzz-OfltG5QZ|bsh2o_*G4CMi6NE6%@5{`Yep=x{M3V!p?hd!vSeo;!nZp{=His8 zVwUGkdwGk)H3b8@onnIIBhWs&WSV%awzSH$KsmxD0`;&e7Y(2@{lpep0(%FM>aa+GzR~5g#VdIH#0_aq#@H)RY{6SYCj^R< zy7DW^cQXj{!o_oWlj-1aac51z<)vZDvfs189U?kH4A+-Ju{u)Rk+z^E5*i}fco8s* z;Jb-2v(kJSa-!W9i%)1n{D{V7VjKS8NE3u<(`a!B9~@9qR*J2HGMoyFUVltN+LHq9 zxU@l`VJ?w(yG%~bi)E4fOsDb}N$A;;4@F${m)l<^<$Es?$aBbgV&ga%pBDCv6GQeC zdUagKsCVMhc%b$+$VMnmwO;h>Ij4wvF*l2RS~Zt^S@(-bY)i--z^Ov@GVM8(Xh((#FDjhsoK4LLywVp6Fo9R2aD(9h@pgns9+7D-Aek z0#4Z>R`IRYKV(`V&lPY^^wYPDZs1__fll5jKBUQeM4RpwZ_t7?6FGauR@S=@NmYu? zC#f$k-2Pb8x?dtQM_nSO#`D#g)`#ja0s!jnOB%^_aMyHZPqvI4RzuW$Cp~7bTy_=fwK@$Crs$ z&kH2IK9DuTrDwze{B0Q`l_qVSBQDeuth5%Y7DP>j6m6|}VqdUZd*+MhcA1njgR0j3 z%;1g1Vk7)0Uo6yqd(QJe9%=1!Vk1q^lT0p%w?ORJoC^SmXslZRG+aw(K%v!je#}&v zT9$zRc+jISi#uuB|9tOtwe=WeKH#D)ByW3s6s*oPGtb`Fgzq$~m&@Yt(jW8F^2_Y;ll zDwoM_cB*9B<*Haq0G2MdQefrQuZvW^_UEV%H$6Dj``Ko<$*#7;Wcj{ftQIaU7270T zZT?CX|CVuHuUX)JlNfBxChpq(*iUn&s}@pxw4&%MC&jP7bd!ubo=t9lGGOygxv9jT z`Xlc^C6`iwlkSQ|kd`v-F2JHMR(BM?aLZkBfKl;XWV!wKUTg(c)eaX5+E&`btt zo2t4Ub_L^e@;xzx*Bc+t34_U%H^}e8H6$dsnFx!+RU4PCqxQL{Gc!5D61mR1M?UpD zO~h^Ow?g5_c5H^C0;5f&$}!n`lmj^%H4inY$Hvmh(p~4 zxBsH(Uxv$%Wh|L|Xc5UWuO@ItAxE5L?;*lzd=LE}etc9Zluz z`Gw#%`Ez3t@$Y$zeDg_APMMg5PGW~7> zR2PZn#&EVTPI)F)3BHbg&9t=oph?*0xtO*NNSmfA+R+V7d62}Z3Dli0BcHCGC7GKL zI|Iuq#kNUt?tYx0xEOkyR6RIE92SgV`xu3(Y;^BYvsQX@Qu2%PM`TfOE>Uk7!G63n zO*N%Y7i9jpnG<0b^&g4JvvZ)$To}f-dibh5Nf&Sd=2w9tJzuJ6s>c>0I&+C39J!Rb|EGyeR|!&I7B4Lx=- z6-bfA-T6wqrwY~z{TJc`V13PhAx;hI_iZTpRB@0KPByd3$mPq+h((tNN^de3% z`->NMoEyCn-_zu+z$JBJEA#w39ZqUF=v_%HK3*Z;qr%zq*ti~alOa=&JNX$TAU^h~ zhmS|nIrSZ?e<@CRC!Wi%(a}Usxb+<@2i>FmRHs9iQY!589u$vAoc|s)jdOI>duRsd zOwtc9s2y)l;0=vpW4h*pSf`V&6Mn3e76=q#>TzpSnl3<96sm zaBTN0=GCt0$d#71b|`^QaPT+K8LDyXH&{4ZXrJ%mZe6U0=$oO*lDC`#sd!pPG|ev& zpNe_xMaLd0JDkRoSV$d`9w{GvO+ag7(>UqppkEEycA|h7u9(Tb>vLEs$1Ttl@_ra= zNx$BnSnyvS4N#56nH~R5x*h~Z>@xTlu3@x8 zoutkiKNODq2Pi*l|wqS)8w1U^OJ{EzVlO=Z_B5kUsu~HE?(8kY#~;=Hj`Dy zuc*AXmn#k7;Iww^x_`|LpVpQ{2`-$mmuU}K35Ug|e8~p>P5XDscXU2q@cgq*a#f_EG5TmRgA*#FcYP&P_&u_} zbp|_4!(BB)2ASn?Ne@W?aK33z=rg;AmuiK3ImD+;?g_Bkj|)29#!mgtuqLz6X4;^a z#Fj6x{54NiP?$~Kgpjk60PVy{#SHFsuJ0gRX)M{rTZ^OmN-XRx`%G6I998e=)rXXBV^rn+^ut?tE>=Nr80_evyja56HVs?ySvtbJc}< zgg)Wq!4f~IP4;mr{7^F|_zb81A%0_&ByI*`cS^ie&yv4WcWDDN3E1PCaOO~npTOjm zROL}O0@Y%^g(Ma7;G|nf>IK8Y^i`IfC!k9>d6;AaB(~JGl=S22B*i(a>V3^n+SOdy zf530naLE^N*7C9f05Ev9m1GOwp|(i20*gjSAgu6#PO6+ucOWgG+X$$zkd7W9fvxk= zDQ_?T0mr>Ky4*$r0>~8eZ2_aUIM^0yVTfM{g*#nhD*?B$cC2=g%(Wc$_A=)*mxs5J z4*@A;qjok?Y+9;n!CsCaihAu`tfGd@qK19kz}a+n(^s-Sa2xqnmPwuj#H*qp^q^!5 z_z20IBy-__DANgs(vHiZ;ID4`DNDzE86Y_X2gxK&Qf1#P+3Z3!CtqztZDjha6f(Uf zki3kHSN)21aVn&fDIf&?ic~dIOb0njo@)ylm-S-~{fI*!X*V~?b-v)4);v|9tcI$^ z1|HDcP#onUnX5fxQ5J)(yk}4n{B4slLQOE!ncy@4d(f}o1908%73?>3*LU8m% zc>7!^l6C2k(2?fdB>+P)3C@}GB;^Lv6vIkyB)i; z0kfM3|KWM|TQ|gvUmb_~-wfaknk7gUvh4a#Wc{6EY!LfWXH;oZ#G~i@9jQt!?2zWy)45)vn5-k%-$1BUF{-t*6N## zYw?Ra-Ia}Py-th*GUfO6J}aMMlK|ijInD`y5B0`X0TQgWF>MDv5hyVhOnva4Ol7PMpjdK8Jvo4H~-P8Jr82MVU3s4Och10;HgMY2$B?Sp5gW(H7 zwu?BI`FRa`ti~ROIQT(Ij{<+yF#iS$I5rq0_Dnyb{4qWOY13KrCG=>)Zn1^K8~`V{ z>tz5{`e9{;#7gI@!Cr^A@b;3&fh)MnQ4l5i2PJk%r|J(mbR=uOn0Ly7ix!l=D;4)w zw~@kz!LEg;k6&qm`f8OWXZq6np^uj`6Hd18sDA{; zR6paA%6!72E8n30mg(vC{|ID*4G&8)AtI~tu*6E>d(`sEFR1$gx5A@#QuW6Fgq|W( zB7_^&KA9jSf6xV)lAb)+ag-jB*nnl0cNDlX3&R zdG*bRx0ip>yyKGRJZt~f@kpE!O>KI@9pZ3nOQ!tH46HspSo5k9E}g<`7x#%Q+}Ht0 z?3N9qyu3?->Tp>$Xh`HyS7aodh}Q00&Pm}nUU|7b*fEMU9{$6A?l?jym<;)?q$hz0 zZE(s-iIx4*Nhg$s$EPEstK0zqt>!&)owmP$>{MTq?|yR7Y16Q1P(@pzx%tH}V<;|2 zjH-F;+I`}C(nZb4e_+p3k^t$<5-VBY?*z1aS~I7dt1+#14IlfFlqKJgZ(cNB_7Yd0 z0^B{qZl?ih7C8E}B*5A!l;-@v`k?~FZrfMn^GrtGGkzNL$$cfdf%#`Zg3W$@Sh?(4 z$IdYLjD!|!w+K}Zyq$>l(xy3*Bp$#d>#W4r`n`@{q2aG(NO$`#&dD|Rw^uCeQA%>Q z+>!6ZmbnrP%4SKfBp@l;P|exuvv`c+i`#V)bwDkjYLhGr+&Uj^(W~UFKcUT2QFEYz z@FE|}qvnNCzXpdOnbVcOkX|l#}_-ugF&fZK6Kl{5*-D{g7L+)WLBJ zk^X#c?~K>0rz(mS&&jjqLV01~6w0w@G-9z^K4_7xV^)G?s5~FY<`A|#2mGZCmurDK zGro>;xcM^)t%1w6fSkU#^&IfeSL}5j6i(d#Mp37(Nk|hXpO?_!1TMP(`@&I``-?_q z1)^i#t(?>TCbv}dzzyWbkWQ|BIuVB@!g=W8j<W=`VC#roDbMx8 zkLp6lSbsEXjt2V2MU)dEOLnywe0TyspryaM3(vshXH;}6Ga1)x&h z#L5DY4+C&(0n9iQ`&^Wm30~@4b(*FV1O7?L7bU()?3OMvE4O9ns53WUOg zosVQ?QnJN<#*`*zlEoZ!;HCyAd+NH26)LA4#Aai6_TYevj6+EnoD!ESCBF6} zatU*@E)d!3ax-3GvqUjv@HR5qNsrB_%w+7RPY1(nFeCBhA6cBuJiuxOc2Yk=t}_qh zGPuNSs)9j-qpu3U@U%cd^*rnc5zY%#pyeE_|IDnII|e<)ZpHAcXLdTn*3U;~bXKwC z1dq?p?nc>RF9JKU?YNr2EInu$E9tBSUifa;B!2u*qZJ+Q4c9>Tw7&FH1I>Fo3)wpN z`x`y+Ul!f>8@v?He;p=H`kmQaoO44GV6Q3FK#m4JXxMa9a{ELyX!OE;$}}DoF8jPZ3%FuoLURABaZBSs^>+ z1O_IobTQsdTdz=3$dG4lidv*R4TEtbm-fev-_svU`6TA5~7@-$IhOz98yuKOMzhXa3g#~ zp#Hj*3atWH6l{7|QV%)%bngLkKgALEB&qxZuU}KUFz>#^X2BdSDJMdrN|z{XioTGA z-$m@0q}^2a;AKd$-I;SPGkV4-?r&-%DOiYhKob~YErRSnPAitU$`%^ zs_xK+#^j9Eo9!@Hm55UNf0%N{}AYXpkg=k^v_a=j1UZuAfJ^FB`Rs7 z^DZW(cs|moJjMxtPpi8tLVM3c9lTlAxUJg7i zZ~n}9VCxErP128(7dc0GUALFwoB|V7pEi=|uC2OtNsjsrzsXtuT8g3KSi~msn%6*5 zF282V4tpb~w`Vx(hm0~3D}GGeN+j;j$r-^6CUSTP+{lQIa|sU1MRLWSp}}O5WffWR>M|8x90msiSua2sEyL26z<0WI`b!DiFuaP}t0e(^ z>FE)$H&@vW_-b<{c3v1e`K70S;nD1XI+ZQ%a5i;rwi4SQacbhAaew2wN%Irpzlk&0=P-;(ERn#jZLU#Xpfzz!AQBcOH>R(=Fjm}BE6=*S8CG(ktJ zaB`Ex!g6X>96G6Q_g9bl*YZ4t5-NswYa=MHm#c`bY64seR1K>f8Y&XeYRqqe>AS8Q zc4hdBM6eVGw}4n)W%cQ@M^yq!!ls`j8H;^OB+Z@61!+6o)i;{icnOv!Hr?Ro*OZ3P&9 zb$rU$jq`&onOhr(pV{MoGP`C@1>P)glQbl~J2VY-3!lbGn*}cY6@zXQ;`**pWqhK7 z`R)~pzMGbFT4@FiG*ReWD<)P3Ey%Si!@TPsiVjtC-WR~=n8BfjmQ=BSoBd0aX@xr~KAzt|1}xp{EO1)K3>X%S@;-B?QWqR{R6Nkz zMBVY}pP1{&nth=J18SkXtCd9W14bvB_^(PNqM6%UDz4)Ek`q8)W&|d*2vST>Ts1 z{U)M~8o5lt*+q?dyyC!0Q?hDGqw|ZcHOzYK@&~Zi<|S7Rp7D%g=;%LSbLx7id9-pb zlY|@{(|7An9`)SnAhCNG|TD(?uc=IPt`NA~K;*-NPBRK;N1F+{_eQQ=XR$S-9D zmD!!!C-+BJABEw^Ao6a_4fOuZW7!WJrKxWr*tnxuR+$+NwxHS z1@*ptkzH9IbO)!yBR|Rf4WvMB(bC@{h;}Nb^xina`jf1!zd>+wa1J#`ItNk~8SwRK zflI=nqIGal98?&-eyaJ88_k?rXD}t432Ck?h1~{iPd~92xSjCRa)8V4tq~zV<7YU#BJphoe>3d^i`Ld4;1C4(G0^E4qFl{GbNPX+!{AS*eBQ5HeZT zP2VahX?QI)ao#*Mzb!_|r4~InXRG+;)~0T;{6G$$B-9?Sg(${4oU{Iq2z!O6dnfXv z`5m$HyG~X73Pm@~MgM}A`(NvZ>oo^OuDOJa&Ur&9EiE+gnji9e)9LTD{>8UaUrOJ!%woxIb7v)TKh{)%9m6jC$x z75P44H>HnxVi?X%Y$?{afonWLVqk~vxI_%dxr}BpT-}d}o2U5VeTBTSt|aA8Z!(j& zPKPl1rV@QRNP51FdYL&B&3icRUzGTl5Y1ad6nx$T(r0o7NxA=vq7$Yg^RP+W^_4M- zbL-oPef@0`ie>u1$Pmy&AK1$emv%h)V7`IAZ&05BpxkVMBLJT0FH!$Xo9iB+saVqX zo-`S5mf!T6tJH`|LeUJLQyHor#aFDXdP_`y_{mMN(f}Z{GQ>^kkd}nrb>VY%6FIzx zf--qVn#Zq~|H8&S0K9J4s|QH9aGc)*VBQl~^?+|}t!P%ZOiVxvBF}JASpCAjitx$` za(S$qyc)}T>Id+5>1<<)aAr>s=)blUF$G2uu#T7a1d8p4`MsbR4?#x&K09zq$CEo& zLLsO~?NhXIaV(hoTH!G%zvo&`knd@9&mZP~|?ws|f#tz3vd+UodHTd{qZ&(iBVckA3F+J_UPRk$^3Je-T z_xI7akebCDlc5(eC^<2R^J`K0&Wcf1XUXqR)8*I4caz=5JVTJ^leg;>U8EBs?o_a$ zzFAVwKcfn52PGm?MH?sHPBCr@)APBc^;WRFEOWTi``AQuPUi(@{d3F5D0(kHOCk^X z$lrd@Eb=%Kj}j)D{%fTFA%v~!JQSVn^U1d@v*l>XFv_Dc7WJ0v{;R=XUg2zgrK^ z`a1S=6l*8nCztv_vP|sRPd_9nBl+^bP7?o4D|&F4!cYo(j2|=P8^W$oR=Hs)&u<9l z=hwxDDR!NzB~}d{@}E~rD4D@RQraFA)(xV6j3==PPMiyF%WAOZx-o{2Ztud+{;}E-CX(0IK5+FBZ0g zwGOhQ!(#_~nSd1X#jPDr7qI65K+A(cTV!j`CV*9~03IRToxwnTKdI;Lc+}~}Z_a&5 z54}!`g~tiC~Z2{Ppe*Xl8j zGvd+I+iFhIy{9l!L_WPvCRhD`bbWbTP0#zd2TM*YA(duk+V*ZfEAqJkK-FHqSf{ zaTrAE^(3k0&sUA)GAm+{k%gWhCT>hI!P_e?&~1+U9GZ+CtDlim`XIHe7hW!Mn;3(Z zT>Foyv}Uw^7n|bS^9rf+-wh76M0+Suq6?8jWBzc(0{P5OQRsQ&TEP!@i!{UAUZ0~u zyH`4xjOrz?C7DBk|9R`Xou3#R2T}0VLxKG5iJt+C`-p64Zaj(F05D@p8k(OV?~EZJ zD3K%@!qY>N3ypZF-4t8>7g5dG%MB$eQEIm|$Tgd3B-sMVu*`=6=2A)eFp0Nv$n7w8 z=BLGIfS#G)6wmGm!K0uE>wW9(4$l9!vgRlZxwr_s@H?0WW3AC|sC)1chrAQcY&g3Z zT}%sZZT$a^bS#bL;A`JM(1%rN4lA8KS*tVAD4rx6ON!h5(YpTM(Y(&t#o$x!blhS2 z^jGJbBL={2G#rTbtD!MFqT_7Ti&PJn7>M0neAtbvo3(h62>|6d@iPISV6wqPVrC*b zJs*ja^En{}z;w<#1vb7%AA0WLV@Z8;Plo7@fF_DKj{u-qkz9BZcm8f7f9SawEZ5o* zfE-;CW(x0EkPK+V@n?1AHL>wfQKuRnjb?OA75rXbg%%$B<{8yqoy8{-labIniMgt_ zv5$Z)88T90V7==2FtzinC}buVjW8wBG9rm_QBI@h( zA7^TfyZpG=6Cd1MMYSen@o!cPW)}oSz@_Zk=FzsLGhFZO;gI}}83kanCXS;d1{x+L ztoi9F$rvTEG+7YWUl2+zyZT_=DOYL7`v>@i-?nfGM8ix12_TMC*u{`Q_)~m%-3qy; z$zlj0D}_h%r$=ItcH=Bo2+bGU48&1c*XjC?nf%x*0BD$#A?IU1CQvHFZ)x8=_V z;`;|~(AWL8+N zE|H70u@cmIM{}U=6&^W-<$V+2JRsW~pf#UV!>@22ZDIlDwGUBS0LgrxG^{9S{9IH* z8Z3ZD-xE(uiMP3dwq}u0N)%Kf5vCk`+8Br2zDbu>9pHz3ac3bPr6nkF*+kn4KGv4V zn;V{lSxGKy3?b&$U?n5}vGRLQo!|y_DLg7C{JBsRnQM21fd0}t~L7jFLh zmnDy!2Vv;Mkp&DM_#JD9yDE_f$%aSeLs7Grk|-$B`y`5SVtcv$*S>Bhh@jrGni$ z$b50CPXWE{vY(foAH)qIfes)rC%^c`ddp`3&q{Xy^0)n{gK8#BLHboo1+|hZ(ZLwa zD5FWh2U0{fEZnV7fXp}N{;?Cfj6-Z>u^@4`{9dX*XnrSTK<4{_G=$>#qWyOhkh#ipk_1BKcB{giC2*_Yu(uMWkOmi+pC9pbg$?V~RBp5W zXHs)zbXV91Axq8(640Yw`gp5f1-({~#_xTLxP{l_z%9*8hE+z9$jLxUw_}&7OTv_B z`o9x`qcrIn;?q|y({CTscvDg_SrTlXb=v`1d8`ox%)D=gIBV!-`Z;MUKlx<}w`%uT zxcwF42Ge)b=u-Ugn-zq4l)6dk#MxU8v#YKcK<%OYDS(Pcq;`s=5TYY8-6iYHzm4n6 zhV+|@`X0J0_^Ed8qrlC5m0nqt%D*mM2q%Ss9>7k|K@LNSnR%X_9JN;(3-bOK31+x0 zQ$hcZNaO9=rO5}ZNkl_Qg9q%64t{;vk68&Q$0<;d6P^jQz*gsP()%{4aO*D76Iev? zk0Q=(Lm29-?H8&-2KvEa40)^0Xn@&CN$!T&hO=~?dHR|uE-l;?eQi^Zg?>cEhHh{5|!+-Yl@n7 zO+pD>ZwpS%Bo^Ugn=jLdcboaG#Ca;xqfT8P4vVGu5L`P&mKS$As9*l~&*zW~>sxFkw3&A;7+j=+BS7uV1%*P&+0CbuaK!_jejby`uZo<;*^yJeu=LNQ#uotbjOa`U zzhdc{mvThxr%Qrm6E)HWznvH1g}cDcY8a8uXHP4T=Sm>;BqXE+wfuD7BEbzwAA94R zt7Y_Z-4;F^5?4z6t*_0|;zsO`Lm>}^&7_VGeem*2SE)hvX8vKtV799|0S;xyf9IO~u-fYiJ=-UZPtW?r6F&uTnH!M za{Muuagk0o*}}W6SIf(uC!tG~qXYpsuGk;9KYx)%3`^soj-x+F$MWEKIFX6+2e-5P zjGnDU_q8Zp-4e*?TWI2jvwwfwHEr^!Mls_x*v^np*o!pjyEov`$vf^ z!gsbrQvZ*zBJYAEy+>UFNi2kb{T{JccV#1O?7ofHzEDv31-vx7e2GP{#7lfM2eBTb zg21#$4~7FS6C5v(CZB^PzSdq#W^u*m0#S_9Z9(dQT*iuWn;Wz%Gm_VY+tfZG{&23H zJX7K?J5-u4*zL@YcZxSPS7~D22>w~nT(!~SSm1(8h@=?OP*;b5p>X={TW+;(0P06V zW&yq+XZ|dZv4k|t0_h#Q@Emsn63-l;Un59#_8OgWg?zhz(v^;0KpnkBPABbhLp7f!S zDgR>bacTmTqauDO`&2*swik?IAKROQXJ!l$$jd&gq?<>~bG@R7Xu_Fyi0vJJX$ zc^DF+SDZE$+tD=op+Uw!zhJKp@9&JRoa!a`{^I3MteQV>i@p#$&J@iBG(R>=ojexVB(?ll{2;&~Hj|9TFO)?@S#o}t~ z(ejWnp^%X{WFf5nPE?ut+`WZRa%gUYAMx5xpphmDo6c z80)-p0fZ%lM8Q){jR^BDhQ2jrhd4;`xScoojE^jZTq4I^8{4tVJi5(YUB+3dT2R~4;jg; zQ(f5xVjlxrD~3eHfGu0v!``lcT@tvHvSWap;z?5sKys<1Jqm3%6{2ZNV_|JjmJu3R z=z~cuU-=*A*1~%`w~fT7Pt?-Vfg^aDISC~lVbDtA83+8z|95j?_)~EJofkwW9+WH_ zE@BaQk(UIPX;FL^GfW3dg$WZVrSs&Zsz7KEHB^S5y`$$a! z*yS&lKIA;Qg`lOxF%iIGPO=jL%u7ghb5le_NnrH#CF&%g*Y>2L`N@LhDxu@YPY>;) z2P@Hj!Yq||hqQT`roO)?38gsg6y&lVHiPk^lB@L0%PoB2^G3U8kCiB6pT3}IpYU-Y z-n_Je-gMi}=VT02myyb)5;G;raS`m|tsa8U-?&B-r*7qqE~FQEy;q`rsmXTD8@e@O zsa~pw-;AlCzQ?!mFP~gf>)we+gY{*C5PTgnl&n}L(E&v|eHl>cIa0q2bgn;}JF{(r zW}sK6gtM2s+Zo`Ep*QIE`fa@XrHO3$!l_6rPdKUgIRiuNzV#|i|C7#ZyKRO++i<^xl7A5L_}$UkNYl z>u)T-*D$JOFI&Xa-qi{P}mJANA?nHYP zIJo}sJy;>exqql7Uft~m9b&nSA5OwnNr;i9XNVw}!&SC;*|ZA!dG|Knmzbo$0u~cL zXv8WrTlwCf;ph}ePk}{rGG8e->=+3dt{PH+hh+CTR^)v&78wxz)xajyZU19ltzkas z*jW5x$Td3pYoU(l-6m`Iv!bZ0^rEv`Lk`4m1(*ai>x?ed2T|V3EBZU>-@T*TdY#cI}1snf{mP zv9%F%0%zefFCJ0%+^u|jhqr9^lIaMOkPVU)nc35N_6sCLU#6!kxGb$Pm5Q~YFX^rC z8|^KK?nW?y{@K~8dpRi4^=@&3-QHP6S~#WNwwbgKA8*btciW9#JKIh`D8(=WP~X8pJmZsk_kVF``GL+ zs-zI`NvczU@SEBJlhX`_|{<+=oL-dk{)o-=mc+*ea zE?tR$fouXIYqM3mWs0ql=#=Zd@TJjD=w!&;_4{3+{2%1c^(76^&1l{M;UfpvOTDqq z+$S`maKF8hIHyTWt&1YYait&PQT?c|f|HzB(g*)r{DhXB*l%CB%Y|EfI1)`D`OqCg zuxkHnn9TryzN<^P1ZE!ENuoA`%9BDWH$&LL-PzN?A7#D;UbiM8&?rq8{1SwI&Lkt; zxhaSCY+G&rI<$<-%?d#~x=(2#+SUYKeWS0s9Dog;|yHsw}i#WsmGT*+5&0}1a#8nyvOorxQf7>6`erLgL8bI{l?2L+*W z+Y8}{h5MaRvC2CzTNh(7G9AbCC`Y&%xL06;WB;7 zXb3-jx`#TyJZgW4$hQN;p={E2FdA0}+*2PM=7DKREDDwk60{>W?wf?oo~)sU z(Yx)3lN#tLT5n|}Cq!o#P}onFus^>{hKz!ayCep(>IH4MPyfQvOPMe%H+6EweaCO1 zpPyf~zeX~4!Bl>eisoh(Y1#z>HnpUW;A~Ecr{EthsdRzuIs07Vw;KquZZ1)Kbs3M; zp1OkF-WPb_A9b7Q+27CYGl_aP=nrZ#Ca$13a~mgReL89kNw$&8b#ct_42UR`IR}1MIdh3G8*FBOQ;_0tBR;@K3&YjZt0!$nhv=i*pw{b4s z|Fw>ClZ)+jUae;zUx`9;(y$lA*plh<+3Ah3C~WW_!6`nRABo!(G|<^UJK7(B3K4)e zxDM3ZY$w{8(7@$)Xhi1X;p(0wG7}UhH&s)n1WI#ly=KaFeZ2%hf}t!hQ`Ubm;4(>M z7U<(ENM#mu&4GFll0s4Wj^i9$y2}RiJR|xCLE%}Pa-R#=cLWc-=Rr{KEW$>D)2j9$ z*qn2m1{FUF9|MYg)FBuFDtRY4ToD)kdni&8FGm3k(M`|p%HI* z(~Vo??A2^m9D%7WB|1letfe-`xm}zG+^%vw3hp&WPbx?m!Bs=BcE^5npKK66%jN|a zL^7L42$^%4TSliN2U2|$jG{N`4lN_JrdJg7H^4)eeJM#9K8Sxv{Ek7aWgclb24Lw) zJafR1&LN38E%QH>BQaJw4MS|j311Xf^Nkati#_8;;zzxP(4Sid@^8PUvd0XkqXex7 zg6~`SjlyFiCDiOzFaDEng1q3TA8OyLsWtBk@y(S~gFzrW4zO$_8;%36yRDgml1a&N znDPfQ=mgAl2Jt)rDkdS!NkHhxuzARyRG$P~K-A4CU`1z0=_%-+LW7) zNKQdxVi>B|n)csf_1-+-h{YN!>B_La{3u@yP>AjGz`mV3@G`ro;uhS!%+8a1^mDn? zOK^lAV<+H_rrT-1<+^-&)mhfN&2VJeU$}z#IFkwZrp6w6eaZmd{aY^UNIsu|LvJNX z&IbkM+L3R9n}79FXYA>eO}|YT#7B}EcpY3|+Gm02(oR^gD@ZiDNF2`saaecv6eO?B z>)o*Dv!nE6=YBjQ6=xx^W7i2J`1&1}Dfn%9F130zkbnAH&fXw06;R`unZ|PS{D|fQ zEfvgKEMWy_z4)~|UNP`EZOaYdA-xs69_TdSp4_#1A$oUnyC4N!eByy4CY_+KO$PA$ z78W|0itg?Q525~+IG_#p3J0~&j{HRZNSoC!W9_C@gFdnBw#k}7I)H-ch?8fy6eE)uAQ z7560RYG5yl0yjZ~cK#TNU4Pfp`k4dxD0UdcJbYHekRqbXfi`;0EJdA5mT};oEFwC^ zFz-7gtQekLNK-LrI%kOa1(5i@WWxmsFB9as~6!Z zI4Bzu=5UHb!DyyR#5enib~dT@iMWvA=#** zO-gS7!&HM&SPCU;0C&qs%}wAOy@+-t_z8dhzQumenGKiYsw=@s6$JHbz)AIKh98%F zG7ci^8*ah7kcO@bmTf?itKinn{$Nk}L1QS!NgQv35pZi`Jv(cwC(4Ny-puQU&Bbos zcj@sW51x>U+u){a%&!*2d_Z9so*ed;vhQ8_v<;9XX15diL(HosP~+JB5<9_T7V`V% zEZBXdcQ|gJ{gsaI>&fT(Z(y^07D4QU{v9B5$ewUVQmB04u}2*qwh)axx>sz5_k`!aQ2jI+=22rsGm%@I9P6cdu(y3oPPM;mH*(*a~O8VXYwxQ%-IvHT;C8kA0q~KXB=P}3YZ}RT0Me!M z*B4F|F&?O)`T=+eu6CKlZHNm%`!nvdLi)l!eh}VyGoIF8Xv=p=u;KDZ;6sq>?RQLo z%gyQVr%_n1|E`9&robG^9gN+^1<@7bJMi(O{vlB0;Kpvnz2hy=1LFAzDAI-`LnE_& zcvWx;^F9v4vqosrWlkb~*I=#UTQy@)fvWbA1kx@$5|hVp;Q7+m9|%9>F>Is#=J(~7 z2EpwcRq11ifu?wStQNx50*zBOJd;38(b$_(2wiM=2_LN(_(jk%Ec2a-haM`Wf3-Dv z(~T>+A*Z9!Y~oo9-4swVNeEn%Y(jATw-UO4peDaCT8H}+8-*s5eCP&l$=X_QR@rm} zhb(b?1ye1)pwF7X=9H1_SHPg36OB4(eh|Mp_{v1TSazLFENYznS5V`gIqHGJ$m%J* za47V`1EQ{jt(`)2UxQ_M?ASBAPT-U==`m1Ho)_-?qWMm@>+2#Tk@O5>9R(i(yT=rcg~vdZxbke%4OE{Gi=i-hB?^sm53 zv-@apn%@$^^6>oDY}Jrw-(ckB8~Si?sT0yDIyS&dr=yKgubtNDtxD9`EX;-y-S416 z-8TKr-YlMh&YfxX=5@=|=kN8#OH91!cJr)~?%PFd-&y`B>+>g0hzhqI_r^Uo_|to# z#U&z=3!j02ml|k96IR&T_9r?&0FU70{Q<1OoJ2w+jt$K#qKY`UI-UIkUiTo?@T=&w zuOGTaL_a}2w^42Q333JWcgNpAyHlV3U`LsZfxO7szrobKdrdeqRo0MsxUOq8H7%&S za7gPt`(WvKwEk+PAQhy%o{!($D5uD)qGUPO2KD0IQG=IojG{a+b-~7{ufY%zw zO-k*A$FHlVWrvmY3enbJEd9v8=dJCa7Rt(A-Wh*iUqx+)r_jU;q4KJ-C}d$E97ftP zLL0{{zeghrmr|F6*>)BrQ-d*adQ{D3+MFWxTE9dMUZ}Q)1A!+_i#8t2OF@x2?HCZEVwMiSZup-k*i&B`IyosKj+9 zJvc2U9^yiiH5q@X)KaU-q=1A7YsWNa+{61lj=_)?_NiyxuTl7BdmV}(G|lJq{nM+Oh}>_rnifn5;O12ubAa? z_Sap|Ter`G_+qn>XZN?Y$-wbW$D+F<-bz#h8R^wa* zciGYFlQ4cehvq1^QJsX}oL_1;WJVggFzZCAt7H&BklYoP8btED0^-wD@@~ut4e=_? zYg~IxcQ~SM&|%iW)zoF(0nuub+Z_;ni7-7FZ}Hfp?UBBb54gjldcX*4Np=r-bqJA3 z7*mn|W(~;R5+Z@cUMHpSi%~!?bHO<#{h5JnIxnV6mn2hLqRYSlQLC58Er}ZgpS356 z3`5{D5hG<%!Jf&M!skF8lQIV4Gab9LrJ%WRMAQ@JG~joP{8N$=#i&AhG9WMNNn$U? zUwreLhq`mB60DJ0c+?0Wj=dRgh*`|&4dX((m_D%dHbmVAhVMt5`!fErg9oG8r{CtG zvB!1^B70Y+7v3EIl)7%X=l~V@`ogTzh;~0_w$Y~p@q&Bce9~O3+3_3geY3(LlVtRR zUaLq&KcL_SBGQFvr4T<|c!HbIy6``5QmV@oieBD{Zbnsq*e3e&Q=Aid)}PtZTw`zm ztXkVFm9?9`0OFgf2fz;ObN;;GoTEk##CujUy^LrKVT?s*bR#%zA{)ZI)3{7@ z^%yhJ->9i5jCkrXDdOBo{fqA&83(S)T0L0wx|7{GA<@3p+7Wm8)s4=%kWoUJ zVz18_i!;+2xif12=Hh|+j4IGJ`=$EWq9v#}s*m7EZSG9L7u}zi3^cn`QseQSjXNBK z+MWy)ME3PkcRcfL8@N_@sbmq^FqAPLsjcEg%}D!28_07|MIr5Z`}-lcZ}PqBe>kR zQPZ&5!a(|I`PC9LdWLh7IYBb?d;%R+(tvNT^JI=x`UyjklfhS80h=~zn zX|(=jvf%K0e8MsF`w<=6CaM ze@k(2>LZ#iz04;jyyG6jWewlGIf7q(*zvZaQ~yVF(A$fAh_z<1Q>-_dao?o1_sQ>J zj3b-`+8YBI=2;CY)-N(ZZY0VW2zi*}yOu7kDJseNj}#RqjVHl(8v_S;<8`b<%zD1hK-%Kz5d!d*WvgM@H~g74dXex~TGI8ANN zUF4yj$Z!ycb4kf?W}WQhtrYnddmrTNEu5(~%JYpv{YynR=TLCBCYpfy(r|7Vn{;_B z+@;Pp0oGNkGk{%cqky9bW&|)2KN2>AF*AS2^+Y!Zxd_gxYt&E03$dE!@4U#5?vbZn zbKej`w5msdOv@dn36}&zOc_%@Mlnrr1Ts$p?=>i=j~aQtOTV^geAGo&C(u#w{T=ZB zxwt#@N_WcVbp6iGC!gUHaQHW9Bp_e_aUKaz86!E1fnB@|BWSb89W^% z88TpqH?(ENA2ypK*X&N55WCv?y(=buFX@2fi~LQ}B!eM`sAQvLQci zgf&(4m^J0|66Kt($2|1;)v4C#uSJbrS}wt%>I!Q4lIKVF)GbaA1*`=05q#f!JwvL@ z7;BkM@;lBXAqdS~y;Ci;hQ(%5e16p>`sE1E-y-tSOz;S^t$t|CSz!b0ahslan5>i@ zzgEIqULn^l1?u|kTk;_=q8uwTEIV& zi8D0jc>}tjc5Cer^FlaCeY>MBzUO_5O8)Y^i?#&Z3#TlA8)ly^69j;+{y==F_%-#I z!}AW8dZC0p)=+SRv4ro##VAYQGMS+>xuDJSn!~3oL6?BMQC2|Xqx&A`+C7BS9HbN; zp_q-XHEaYLd4SuXw-Cxmcv{0^PR1^Vlz#cvj6q03FvIP76pI|%*a_0erXC7BVN4}0 zO25dT$TrYBm6h;?L0h@w#LW(-nLrZl0KH8l*ADbgTf)d01M`s(nQ`jZV&q{j z95M1^>=b-oew`i|SjrFIH-bAuBITf5`fyR`63K=?W#$@c!P$6uxZ_ghGSzgs$Pe2; zu=vZ(4&Vk9v7n*sCV?zWOpk0}VSBD7CCxuRBf1Dg(>~Y#;!InUWR+LF@yYJbsYTcY z{s>7#jH$JDX#~6Z!F=>7LD+>%^QYoXUtiLq+dRK;z+ZWp&LYScRSVrsw!A76#QJmI z2aADXT|+PO=ZfyLa$-LQX8n_djbT#7*Y2)nZ@roaiI+t7K&GtEWw|@#nkyn9@MvwC za8kbABnT;r{*yIp7AyLdUggH*6)vCslSuw zUn(qio~A3aC-N2~(Sa#$cE2hZOIgjQ#+IxwtqDMJ)(-`>ze%m8Tl4*UB(v=dqu~%J zTLHu|g;Yah@;j`zAcySUK@+c`*J(({F?^gM$8{qz4AfBW6p7xbLNEi_mG@Ts;KEN$ zM;%G6BU1-vR>fFmw#@Y;E6C|8+ez`kMd9>JJQzOJ zhdEidnev?-|IH4)8TMHa(`_#d$2}&x(Y#zIe%{xw?72_`d0+J>G6rC*J5PjBSDmkB zLv!7b9!Z`Ez#gu0oW#s-D}HVLMJ?`|g!Ynr7cfaD$M0h6Kl`GnC$|K@wW-M#YvwPf zUZxKGke59mud%%=aNTPgx+8aI!(t(kpjByy>#b7grceid`^G$$&-6qCRoSj!r^!rT z-{M5n9^I|g5EQ{}!^hylerxFIRrdT9RsCe01<|c#HMc66hQsX2 zXm02jzRM92iu0TXW~aV4Y@G_T47Oe7B2YY%y%`lCTRs&i@*N3-M*OB`fVvZ8N6I4E zQ<*~W1qS+nom@-meL!bZhhAj|beM*EHXRo{TiLgEKAuP`Y5PG6KC|c=o8QJ6ZFPRx zf}hq5tFt~~xXsvUUGU+|N7h}(Nou-erJTgOG zgz*KCye*4rnOST5e^|FjY#H&D<`p{d`;XpXz078!RV2z6X!!xD@CAbZVl_l{1uia4 zC+5=uGH*%!bb!oGqU#6p(S_vtF|(CTL%jvh2HxfM#o9L-X=&YXg@0ySoAHp(Q|q;) zNQlTrgy`b>#70_VGDh*j{A59MwTQj-cP)k9cf6`gw#;C3WZF}&3r=G6oq;$6N@E;; z>8Kca$o~8n7_^R5&j9}enc`t>4v&|K$RC^>F&BdbN9lCh5l@SN6d`%micQ4NALPbN zlI9Pz=()}7{8zXz1*{VWk;UBUR3zluENbhG|0x?Od&@$Rm*;4+9l9+fo&f;yl_WQS zF;({9sC5&}Xoh5^U{MToB^Z|_G}871trV6M?W`DhKS-3@GWFIdY98Z{&DJ&2XL**2 z74Ht%6v9`X4qPs5-gE!MrvFQL;Im~OPJ`=UX8~e!Nmw9bseIaRxFFU#8_dP$)nL*M+ETadWk~U|_^&Nn$V{T|`a=gZp>vBVBcrT|62V?jbnX;dvr_ z#Q7zSKbFJm5$&1GWhj48Jrj0N5D|rdkba&z-)i*GB(%7)K~O-sf6&G=N?y=i^A7Q) z7dxvvXvL#qk`CRWdPjW-aH#!}Rz(XTv6>~(p9Q>d52>96|FkFa*`OPSk&M|)u&6w3 z3Oc6}&0!#;@*ko<7ldP9q8-Zki=Ng*az{vHDAQaMtU46fVd2n;takSpxLayI4<4ue z=*Pah8VZ5(>F{WtTb;#zJ!Xt%^c2389dvF8{##c?KO8;8<5Qum4;eHcB=zwdGa=~4 zb3W)=y~rtOMBR(q%DWJqFxW*;Dxb(3%g4bXX;c_^CH6j?B!5FH!# zn0%YS;y+WK(yG}ZD~2ffd~{FC~!cLR?)6okMhq+%|g%@DmQt^vvcFn!75+DDL3|*h)hbk3-~Z~}!hB-Ch%vVQ z$CcSFiAhAJN!o&4@9%NJbNW@%C3g<-&rYu_3Mo&5;PdQ73`E}_spJfv&PGEPJrUeB zUW?uEyD3-b(K$!>kqM<-kwF0Zs1hw^-~fFTagJhmI7iiq2D%e96uTHuOLgI{T}?(D>3e+fK~Gb`cG9*wVxN(T;!Q&o?C?Q{uS<*y^td z!dU~_zWbnPkG@mhu&-i#?@>0tfr*b$A6*p~0M>*J>cr*?7@lOob=`eJ*Q=qSPeFfDpy zkqoX!A5=LiL0uK;-P+2YCxJ_ucVcO@6^HM~qc$qfWlT&vF=J%Jjhf?*9;&L78K-s{ zDwXb926Yr)IC|9P_y#4aRE2D2EZb@*RT*0uh~iD_(FR=^JsllTF;R% znlbU)1xFolyK@(iSvGOr4eFOMso4!G+Md-Z>h@WSAick12JriLBs&9ucK(oBaBtXN z>WV$iK7)*R`TXNAC0zKj`4CAW+QXz+TYnqPrP@WIVKK7>S;+1aI`|uNpH7K9#~+Qj z%DGOO3-PX{d*I_^i2hzUi^RsoK4;DCebj*v;j$;l57wKERLk zs3p6c1ZFbp#8ZM#$xGfx!m)cpCR1#*C+)qUIe;NyN6D!#^g=~Gq_e5n4?6hl!b0_! z>?Abpk6duc%VVu@#F9_6CsFZ-3*W0VM<$_JV`>CXw0b?X!87tc&^n_tkTNCg0PNkt zB;x>_>%@}k0|5La5|RZgO(OMKAYJ$T(S}szp4ot$V3L~+Sb4UilD%{(q?x@Rg!d{) z#zE)|$wm(XQ_=enX}f8E6j*rahd`@dNt_P@cDIw-!^}s&w^4lrrB=`N)9^zu4Q?$_ z@ja)mP;ZHLL6@SX#X`oDu`^sA>wTGKWS-%*M~;Ea46>uZ`R0;_qab`^OxwY|K+j{a z`3O063^rd3k>|itHWZjL`Iq|<8$X=BfVGJ3V{Jbj|dJr0gj z(YTCh=mV)f0l@P$Ude455&-G>(oX`R&-o&3a{e^#gV*oePp9`*(Q|9Rax0!sgkX<` zlK^wbVt9)ADBe2Rx!Ap?9fY=Lp9X{edra@*Gxu~MWrcYjfFqBT+>e_}(3z9p1j+uE64E)_Y@>gk9;40+#GEIIECkqI^mftMsEcqq4#3{nF;RueZhV;q>h z(uMncaUhx$I!17Kn;(<#sRzsG;cus@>PY)yZeCjy?Kwj5{a4+casIU^I$Yxz{YYxy zYoe(Y54l%FhXaMerSS>pk^lzqR} zT(H~Du*vu_8BdpP%b~@p3Jw%#@tQ<&@y`wu!E@4342ZENo)-Wn2d5>X!=$$P&nbQ} z;FgOj0dn0i%MMvx)q>pW<`k&n`x*|`%QVvjz|fHC|S=-pyT{_ zFb56q>MTgqx-k)W$KQ{%GhKH9PX zZHZgml8B`h%dtzFBbB!lJ3MdE8+syMhsZC3vj1Ss8+q`w1*kaklpw(U#@8sa^X}1* zdzyT&kiB+0Y8JvFZT4j*CD3a@rMf0`3F`M}P)qmLRGEG$KNMqwtLVh-o%q4yHp*kX zApeU25foA3ft~QL=XrE!MO$7$Hk85syFk=sAV`{sXE|f)W6)3V6uC`YFoT27?V_fK z+wvbL`EY-VoY7SGE=Y(czcw|-!)BM3h&%P*O-M~S5R%Lap_PqJtWX!dg(L93)kqwB>~P7?iY6L0za4ig9WKvZJ=AjXrZtdtY%jyH zrH4u^>YHd+QgH> z6}VevIBi$dMEhUdp)M!Ou7O>)^W2*jM6^OLZ5E_CVNbsRN-zJQ3P{HuvMC;-BAE&> z#bZcy1z1)-$EAXh{j_;9?#CXaS!@1M58`(npoO#{jyFLk z5tE9Wz(%8=>Z*f@MkUz)J|v_PL~2!uuz}$M)$3+#P|o_Ln+-{>E(&@P}AY&s%_;t0eyx_`mwM>1`{7oZDp! zaj&#*^w-Qcbb{*))&feph29~8ext2t7U2c28tCDi_cYa}BikA77W7_rNAUd{n-;P7 zn?)m?xm}B2|L>bTz$ghBnq;elCS-MQF*ZC7X_H)D(i6P~LMETgDlpdaRMk~r9B6o{ zYO9%;ZgAk~_X?=+u4=<8rdU(FiCHI)3Q;21r*A>bzw|z-UeH;I0!e=J#WioA1` zP?L~(2lAtGz#8?-AS}1x;`Mr;3!m z2YeVhKjqd<@JI3!GX(K5@4Y_eK67-c+}2@(*=o)#W)}KLJnKPW^C7wQKn!%jI_}@2 z#mLn~_+sZaQ&Y_SJxRCR9_+A|Xnz0|<{-)Z07q59q~ZgxPp#?sa{W__(9)sX1gFxe z)E?(UqybAuIQ$--An$uT0sMUCA3>vXCTSl*uLw-sC-+;HfD)V~f}>pU7?0%#kI}`; zj2w>iy(XWexdiFBw;ILK;wHTH#0fv-j?gEzgB-pS-A|y*51SSRA5Q)R@U`4FSACJ3 z`o!=?mA%>t?qRD79(eSb6Ld(AF_8H@<1_5Bwxs$q%p4Qh7m#p!mzS}-{>%g=Amj^( z!ZFH+?6Zm>$Pv@<1@M(a^uNNp60+fHr77`OTR|3f|5`X6JhPE*xjWs#H$cKJHiD8`KiUbt-?%CqOHCT+xv_&B)+^1~ zH&>USt;0LD_Wpm~;SC$B6o>ca(i5s=Fpf+b7=Pum#U9+E53y+X^#_8coA!*mii1aT z==s0Pd5NyA`s-39^3pR=3vDj({6~uH%_nGD$~vBPAI4fdSb{SCtZwan(y5WLH-9v5 zC|lY;4z<@d;DiPpz5az_lGQ1?V)1JJ=ZMbiC$g*&fF4Wo8$rua*z6PRiK|~J)*Q*F zhW*y?alxnA-9+a*Q22Tx{|@+GN20znshamKSC9@L`|GQQ|6tm67S#-P15 zH4E5x6I`2ZzIIZ74VkK;owQC1w{lucr(DHxk3TF}fUep=G6qRaOaz}4c}NqSd9<0diD zmO?z`o^Gth#02C-(zT^2;x1ly)DcsXP?bu*ixm9BF2u1b^p}&UuJGTkPlgvw1?P#F zh`LD)MAlCY3)6|Lo3vO1?89!-Uo};4)1VKl&Q&E21(=EB z;V4-48q&LwYy+vk^3e2gg5%Fi?}lTvZ_y)#fwYri8MpsOG#Z<=UGV+dMLM`cStZS= z!E}wydah&UVzl7%W5M@VN9m9ihEg4{anlU}&=I86P^uEwEV{-n4fKVxgJdHqB#_aY z4|(`%jo<~2FvFy#vT1b}1;-pGQ$H+z`W0K%mz zhDj|=Mvk^r3+=smgAMSpzsKl^)Bvit(WJPN$c&}N8iRB-y^|qdiO(kxtu<|6?2$_X{~f?T7! zwE};d@};EXZ7=G2BZ({f5QE;un+O^!ol`MBWYval+CP(8-5tSxW!zD$R7=ogd!Ob= zs!Rddg{oRpsZs+DZbM|SBqLHPlh%nJ89n7jjt)WRRr#Z&^V*tkUgUs6V{Qo=6?RX& za8%E>bmTS{`kU87sQW0?iFlez*U648G(_!AEf$2((0K4QY5P;pdoDEjmNWRobu6T2 zveCbVMSg6i4>qtigX>8X>4bI;XnEg0P;4a10x(lcvMqo+=+2Abu0L6XqKU{7e$64~ zmasT4k`9f@-7cF1X>BzZfVaO0r8m#{(PWW1+Nm03CGD#rGO5;svcLA$Fv=8?360+q zJr@-F$X^hH9nM5xr}rOd&9zYa5MqW8bPq%p8easzoX5uDNlO~(5vOPfhWE3P@(>v_ z$X2>e;}prYm71Cl-TKH@w|yKsJS9xVDq6CyS=q-KKL!hIq#m(o05~fE>SC_v%#gR zj{#o${`?l?Y!17|;<%Mp=+LZF{6CTiuLG6kVgOr@T8u^!#!>2RUfO*>+w)I2GMpt5 z1pGJocH}>jOltJt#N`0-jr5w{AjQQf8`}^_I9T=fk|0-|e%^reaF*)G(yI$vV&hsP-z=3e zUi`6O5iqTA4X)hp2Ox)R0(h+STsV{`DG63x4RwPi)ELBO?(3!e11 zk@}<#R_K=N6_%4s7pbwb&~Ehkt~E+@;f!#Jx4JFvc-fyuT6lDjV%D#X=c55tlVg_( zQqj{YFC13gNHebWSFG0^UAXFv5_Owe-5Rj}EB13w0HK2P?Ej?Y5}|vMV7W zuCSZVpB!Tw4fA_SN?l<$6_W;6P*r37qY78UET)p=$?zEWdzc;0NrIFEj2mp4^Qthn zX2A+sAE!W{Xrk*5JMgeSC%^e&K1yvYY}tveZRnm6&ipa|;Z zU#(D{$f4VRB=Xur+HwKw5>VQbs@C3@wrI%)EkvYb{2o+bn=?o$4P#T@SAoEW%El|2nKV+&F-4H##l zqFhb>C4l)O@&%E}5w$M}6KdEnEp(aru+MR?ZnQm(h`7OBbYcv=)#qXuc zOH28$&*Rw3WihC*K1z^T4t+TodwK7nos;AEE5vUGd~w+Joop^in*p+a11X&W!lEbn zJVUxpeCN@8dAk+L=DfoGu)N-+)*poV&9nzlBX|@#>D)umrLxs{7=AH@P|2!z-kgL5 z09)Ir8N{Wehay|8V}fW~q-l&F?b=4ieT?Vp!yULhwX|Q+kTP_EAPSP|<=9M;IEn*72VyC zh&(Dg3(f(Z7=vvS)%4$^CH$=9D@CQJW6>66WNYvLS3NOih&^7Md4a~rmhz28^VR*g zN5N6XhSoA#wa`R+QwRL2grhfaD)}6z1L|&{Vjd2Z$K0PB5cZ|g`ZyF%To-{_ zSov^*Wx zntyyAQYTtV#1>}7HNx@aTg_Wse2(0whJJSZlNwj3QC6 z-omY3N;vhzJ<2(cnM_Uis@^^MWbo@dzmVrV)zq&}BF^%630j9pT>h4nrdz3Rioz zz2%5?yqC~vkL~%s6)V}OfKYHot&4zRrpUA+#Wug#DSg1^bcsyD^Cnoh?jzGFk=PCDpO@zsN#}@s)={3I8eDY znOuw&`zT3ds&Qc0u$G0NU>^=xiq7VDs5`XNwsF)leEdWsHUHwkD?6=Wp>9Sz7zG1K zX*^&*(tL@aR?}zC6Bo*YuQ&I_Img4op)b)(0CoRm&Q1BNtVFaR{*JWGfw&{o#GiWa zV%Fscz4g7uxpV90!iAcNXcx&(fPEDbO(%kh^XM37atd>?U_~6_m(`G~71fc`tUJLeb?mrc;+WU%rX{~YY<60)2l^%gsPu(Ke z|I)!pJ#g#6SM=Z8x6XZt?rL$7Xo8%V?k2UX#k`r@76U=aUW^{Ngz!)tGp2}Fns9~l zAr))Hrj}o$|8f<>{7_k>Fr(yGK6Y^~zekPiiugXnECqCuE}q?rcoGEvgai=jDIl$O z6T`JYlGk4fmzB8rsMTd1OyN9V#LsNxSZ$KL7Fd3iXf8`cgHc0;W4prA(TQk*W+(h^ zSS_uoQ}8-HIriS!QRpJ6TMNW8Gygt20GvQ46W4X17LOxk>p&kKKgLuLiVdB*V4sq2 zw7bh?zOH&8doLs&?YlrccOqsRP63pR7k$9 z7k>nGw0Z;V&F2=mvlUP!ciE_|g2Qfz>Whb8e@sP(IDQFT%!X;iAdOE)1^Xv0>x&1w zJ*3l9iuu_jY-1a_UlGoYaiUcVU%UV@iTgO-XyBxxlGV@IPm8V!LZ#rS7H$o^O+Q5z z^I^|$Q7@vj37F5D1Z@JY>%r%7M#26dATu_JWp<qmX@2n&5m(CTU~sd)H}< zl;Z2Y~S6c$et zAddg#k_s@kW_%A2ef8RV-6C?RcTDX_v*Ccl0X1s|&cEm6Zgk>N} zP6M_49C6wT*fUrE!Fjm_LHe!8t>Qw{2E-a z?8y*Zl{mu_YjwLv3(bKo@@8<&yCOi_$=?PTKWXA9_}ZG46S2~)+jM_w5pUaSBApf$ zk2Vi85bWPDd!Vq)AcT{!jA|UwlOZZ`z836$sB+D z>FWzBb>;YXBqsxQ;sH<0+k|Tdi1U^n&jjBLvkJgfFW=FG_X?i-ww--WoOXiB?54Sj zrDgNLK$yJ~n6{{50Q>e-EM%$@5qQi#eMKta+Y+0F5b+ndhxgtEa&#L>*#)FA<8>r@ zI_$KdrhnSB*~Q-HD!ug~mNy&5!GbwbosyQD39s%tj9l2D1&s`T)>olsHFl?6uuS;4@7ZY17cfeAf|sp_I2bQj>oa zglvPa6{K`8q?>z(@l9{)4|5K}=J$YVD1_Ge^Xq8r zJy1^9t&ic=o`)&sO-@Are%=u5e{q5{ez~%cj#G-^~ymXW+;AVX3~^)Y}_6;VCj*2tvC z+Z+o{$O2A?A!uS)y&l(ZGUQPtk*DC#8M5qC;GJN(sO1p%Dq$JoHj()v4k9H=;NPgaws2&Vh-1+P}N(FxPn~ zYwsOF+9}Tr#<_p*)0nHv_}u9)*cBxCJU|BG1I~+!RO~Z96^;kP^ivXf0YI>nWM2@= ztlclamHO#H!H)%|f+SLG(FvCgy-)3$4EV2ZD;3TpJs%ESknJ`f#IT*Qo#2~BGrHn5 zdXqLSlki3v$(*xoG`RPAUj(b@7;=GINStJFwjWC>WPnINA}SECvv$g6i*hxL(Xsj~ zf-7x2tcF+EpQK4c^!fG9CPh)CqyV;be{bWW?cNBYwi*k7{)~wCC7`kj^Z%lGI?{=L zp3%ZFdlTr7xnkHKaxTGJ!9?}4_?lV&s-J?gYhJT94p{F_WzO1s?SM<%cA``$Htiv~ zxPjYC$D>wvGOAEKBxr``DDG|4H01WUQ@ax1(FEQG55$wzoM^A7Vt!m?H+E32FKWmY z3HC3E9E68zj-{{ei@_|TCS7e4U-#tdF!?jRocHl|CL& z=5h}mS*Q(3Xv40;78~qsCfI$Zi6_>$pG8-k(T3#gWmm;tk_?sA(IM$%q|^LQkf0Kq zym8=xTxxJxoA=q?8Rhy-M+%)n!Tv$!UU-Pw2|D+m7Vpq}oRvKYL(jEMJ7Pd`Dq5mK z@O7~*06Au5)1}MB_%Avgq}c-84D0Eo1x*0PfAfr#c#<-8|7_n;(Aiw}=h` zKtR&H8=yRF@eBYpv+4$1QJ?L+7}=7Lo8mxY-y7p7k{{Yjm}pU^U0(hx~mul zi0maF+PpNqZ-LUFul`B;z$Xrpo8`kJ1VX6Z23BezS+@b3airolh@5?48ffXZ38?cS zLqS?zaVruxT?5~}onn4CQIx@#rpnHb&ZmU>q_5h_EuujF>lT!uVl zbrs^C$`B>=?LLUG1fpBnE+HmYicLlPqSc^=MKb);&aHGTVrMhR*J+X|pF8h>5FLTyU3xl>R)kj(;Fomam5;#}p!y~wdt3CpNTOL{{ zHQ1cgR$TlM{JM&i!LQ1l6vX_ocqZ_5>SJ-R**C~E*V7v=1p z`=o8d?EaK3s+@}=i8nkdxyw?Xh#?wPLdu?ktAYiweg;!Yd7#C1TkeF;l8k3yEBHZl ztHni0!(VgKLk{E7%fUK=vS`)eCYSXC-qH7C3wX!CPOM$LH?r8NBG|uH=bwxHsgLyG zqyoM;z=+kd2t%PB9jb`L|GC%|HqnF6f%$?8Haa^0i$gi2>N#i`ubnq347{Sz5+Zs5 z7RB#JzjG$tgTR@&^ab1t98xmpW}C*hg&5ZWLqMXG8W8G_h-)o~n5uwGK{9#rcqmqD z{Z3P@3iwm6t``1HjzV^ljentT6F{oevXull`1Io+AccZ{UtMyha z6J}S^sH`0TM^*ivH*>&?1*E?n=N|qVE2a-{-dF93yE}w$5WRV|0 zaZ(9!FJ*l%LAo&F{Ykt|ROay!jykoUU?A_eLDC5DW;jk<>j52BT07gv^^jH7!$6`a zjm?D|(fb0T@Xsk5$5SNl3t%|%%N?mb+^1BNx-W20&mc};L3xVQf5oPd$gg0aH`)IN zLi($|0=`qNy0V8d?a(_}#y4@al2R*C{Q<(dcWM8k>*U}MSm-cP@dLz!*YF`lmx)pX zPywXPXn@^qnXIt^EaBjX(()62{Y6rL0Uz`vjlbZnDq`3q_6<4{*O{AB6Nk8q{{$Ia z?Yb-eJhYTP8NG?WwAhAqco>cJSSvx)JH8o%^|Y_j0Wq8SC{o=7Ys;{^clkTf_zfR6 zCQiQr26eXw7UpzL0K$#@4L020B&+R@VWbQimG>H371c8m;m|Mo1HY~!)_(x8h-9=i z2T0=|5F3k$=U)(#J|y`s+@ueAaE>+GumriY9)cp{VALYKYE1(@Y_gU&3|h&K&Wwhf z3z5xm2u+iPw1Bn0Ep2QoeBvl+X@zNgG)h%$4^BdBGOQVYYummFXub9?!QnOb4Z{73 zDyeysj`IoSYEHI%4w{`&%4`ztzvqhv5N{>M7ZS1OC^0s0+O2~pmEP}sxhDA%a8+=M~K_ zgCK=cMrXz%;7#N%!Pm5WY%$m40IeRW>b&`;t+Y>42s(SVRMmU-qrbb^&_cH zpJ<3A(h@O4Rg`kB6xvv|RgH8NF}|WzC9mW*A0zFe@sCK`*^_B>AG9*LZHfAduYL#|d8d*Kw-C%2AK!+(xt)8N&go#q>N z=Wdhqu1s4XZ%J3iRCMN`JN)tu{%O6Vsw=np!BkXvS=cVy(Cm&&|7Ov9s-2wo`dwBu zk;&a)6w_WC6i-QV+dsF&*2|qpUN>eFRF#r;2cnoWe4})B>_pT+BD=${lZcWEV``T~ zOIZV*MJT~(j-bip03;KgAO3)z|EBM}<^Flrf87$Or5mEc_*#G3DrY@sFG9y(R||6g z>b?tbtJiz#d7`s(LH#+FCErvSUP&y=@4*1al#u#ffNiJpInsgBSTt#(ux9ej;FrtN zhR1a3=DlFO_EcqTlGt)#f4`z3-SND4kEpUFlb?`YsBm4d5S_^61@F`&AqJr5&PVj# zqD($);vf#~oQ}AJuk0D&aN-l_)XD79>rA`?&vE9eJZ{8@)BHdyiOa!mp0sFUbGBOM+xn8Je&-74l7!u`*t$ z_E6A3@m*nv2N;ym-M#mLJB()^#=_3>-G0Zx-@%h_YGp^)_U*@mZ~KPeP5tiBF|eqE zd*0iJzfM5sNq!%IcR!-qmkAWfnM#EX3GWNQ4VbQ~s0oiiU3wEi&K-Bo6t5U}lkVzy zfbZ}2N3rPkViZ8C`Z909;H}VtC4$Xa3&hcy^KR1dV-nFp;w@$ZEtjntDTpwdIucK- zzD*mL1N?lwmF)HYZB-cR#Efs!`KTSzi~D0x{EB&kubbYs#&>e>&_&0y_@Dq)g~8n< zbbi8GK~T;-XoFL4-=QY}CW#}g3&*aGMi%l8bHk8AhHuk9x<;ajsyhU6)9=`5{A1c}YI<}(-?uZ#)n-N+Km0dRu)l}7 zGu{_@ix#UN;H!yhKR{j#kwT-=rI&_cI27(xC6WCA3$H5N*a;6~k@sKWD64SrGk#-p zm%0qt$FH2E$)5F#M}L3h3$k1Bf$_LxY&i||JHV^_u~PK=kcj%GWOvk`xa%+)D)Rp8 zV3raZb6O8pLc{*450H2{`p-6^m(r-!jAlUz25=%W$J&uw9J%&Kjs0Ye| zQq2+e6Pc_J+i(y6(X5#$4pr&R7aYF(+NF41_g_@w!EQcw?sq>vZyuD%byUm^=)Mj z4GjTF)AF+f$7%}H$9=5N)7!0CwAXsfo*>Ea3hd)~h5*p+q}mXKr`{#iq7|`Lz<;ho z;E(DgvaNv(jYF8BO1h+M2=tjauSd~dD|hh1v>pmr{!P+{0_|KQr9+vacC9Z_(Vyla zD1XBnLE?TqdKeB5iKaEBnbe{`F8Z7}2rVFnM$9_9iIqA<%11_{S>T2LHO5LMxx|pjQ?SEb2!r%>d^8Nst+gHG#ArzncnQzN`6R{r4txXZLM1Z^#n1+Aap1oJCfQ zzi8C=Igp?w#EOxr3~QN<^2D&v(4H?&ZAnCSXL2zEu34^pf zuW5}-27OuB${vgHM|K{q?Sd=zdJJlX|Jn!c)QR-8VZv3Gj-M=_+mM7_kQ5u3us+F$ z#!vonj^KU%tnwb%eP|7pkKE;KG*ZGHZ;3<4`%^*LI3lzs_A05RDjKVubBWXz_T;>u z`rNZkap)Y0v<0|Sgbe3wR>gtSO;y`t(f#q<+V`<=ZnL&yEP|^0{1H5m1gab2p;|ZT zAM0(-6C(z2%iqVNlT(H3pE31AaGA?BTI#*lc}mc1?%0nQxD+e315xBf>g@nk|A?MF zoSNi`dXO|{vOV)r^ytE8#R1~v0FJ~zA7q6X|MXWWK0Kp<2KC(FEb#B%o}Gz52S27` zx1>AUkSrEd@LLl$v061V(Xr|Z!O!%$7l0GZE2v5BD(6i1nXK%^EO4t6Awb$jw^a6d zzJFUvYXr~?CaDMzJ&})LS6hX`iM$jZ!T!()eXSQ@c{B9vJ?xct~~cqSJ58Q5Law zh82efbSc{X$_wsnGn`>MV~-qPpUAeMz$o?6(F^Bbt>l!Nxoc2sVnR-3B+&=DB8a6!Y)>a4BT)R&E}F$ zxp#`z+U``Sm#u(Euaq(HiKx(>@=3cOEQr*Nfj#Ux2^-5;SQp-f%!%dd(&AQCK}+*Y z3oooW!Htfd%oYDyG#c5BBSdJb zjt8-sJLD~UmN<y^D&8J$Mk<&Qu(WZJ|*>&0rEa{YFm<~DS#nm zk}?H&We%yG!la3|uYJjOA(2x7U=E~gD$ttMAIP23RRp#|kryE9+|+4^CmCL#O8>EQ zW((nNOli1@pv;X89f#Q;d#F*}WolP=p1p8k3FH(s^k&k`Qd0W}DhLyLd*J;i4^gA- zmnlDN1&2wkHxRl7aqAR!diu%lX&gMkh3l3d5 zaw@hRKb4--xDD_d6ggIZyD0u6KS-p64W#+4d&v%4~nTVzD#XxWy@sLrSN^I-u%TTjM|s{XyCAUNwWAr@kB|kUD?(^*qs<0gUfO%4UGveU5rlSW*;z;+tojvQaN2#&C3wgqnK zZ9-r5H|Bqw&_sV?ZPDcVYl8ht-&x=)qsg>*+bDjRT0Oh%uq!J3_PnG1|HZf!cDBS# z&&SeDt;2bX8z!t4aS8<7820(g^8XwW9#r4ayY2f%|9!Ujfqx3U*~OZVCS`#@2ZxB+ zEKr_zkdj$oZ7d-vL4cF{S6dv9P5_S};yRnLNK)5q5HviE{NjOsC0(GiD{c5gXZ5+N zWwFSxPj|s7sPCPCt@mG`V|Ll{skWD-8#1Gij$g81|EOaV7hvwy1v=ra4KM#-D%}pw z@MA}(3ciq;HVI#>KM!>fpnutV>7OHU=%TfSVE>iTlX1<@e9Hc?;fqN?Fk|63L%dnK zB03(Tr27fJ)@8v|aJjum?_aRy7p`B=jx!8L_BSSRWLGr!X4QA*=)6BRd}f_KCsqkV z2Sd*Yj&xPc2fq)yNX5H{^Fc&+4$!Ru@r0<4sw|dHW!zo7c(1)r>AVGKX0ty8k%| ziiT)~0Ac@$n!zRXTLBp*vqP9b<2$W?1i9pXbTl~K{iK^lnepDlY%UXOX)R3?oYdSE zYPgqI9X&JS6klktQBmra1e$s2Tu^@vEtd!ifEyPy@WgkosFCax-(c01t2K^C$_MHM zorhPKYvN&EFX^mHr+BCj5eo8m@3}Yf)boi*pQMDsPO2BIt*C@hOkYwL3g=zXNF^?K zPb|8&!a#8DyY}?MkAJ+WT6O$G~T#)NL0PIQ6 z<$QRuAVKp%*bXA8ZBMR5F`o%d`f{K{PHg8Uk7Prv)$)MaPdmnMI@^oAziu)LzN=Ow z;N#XQ_x&)ubzmKRuX~Cg*Xf1yp<)q|=3W+D$DDq{HSuVl_jKaAQ@pIWKdUC614(D| z7cfxS)e+KN7w;2%cV>TE9BTKO+IyYiyVS)gnoh@{^121>{X0@Av?^GQJ=1zx6_5{N`IXFFNaS3cZ%P+s595_J`UAHHVd-mDx&~0cnPCn zd@KK{V5hG`X5!(Wb7{}cr}=v%UuIw3P$%D^T1%>p;hZE-ZP zt7sYQ3%0}K(ekx}S)m=T;qqsfilcXE&Lw?*?btDjCHr9Axl|B1Z>kx zcK4!8qiN`OZ>gZ9GT_8GFn%^oS~Y~%AK9a5cbqT!bmxhn18mw%2G1^^LH}x*@amb6 zTD`|iw6J+hNBAOfk&L#bdY2$U(mkl?kHfASQ5UZv{KVDsxs+cq;6Pa#34HU6)JKBi z^LAqZ=g_biElu6l(Q@1A%vpB;UNUeX^)P`c9ec$MM#o6uIO?7v$Fxn9!v)`e)szAJ)n|LHOWAJY0=GG&Vq zzg_0dZ5$8_uAbI0AgG^{AZRR4tiB{)adS2@w-wfVVh$SN=u6EdJx>_(zC;lN2Z(A`Rzn^1?)=4z9`tkO`dJZvEi{zl&pZw>HeNf>9QDmltJp? zQ53YZl6^{?VxdD632$q_#08D@)?ho<`mnI8+w+sQ_`}~I%CiQ%)5AIFJyRr=$wYB& zD)_h?zEahLiD(VUkB9R}_X#!Z1>%|j0O(G_p%D$3u!|i?4kj>#DkgXLE7SreqR}KI zkqHbiXb{fWe0i1|?pM8+_Ihl@@AccM7#87&oURF<_$K?g;oR(9)FjW8PdsA>hbFxw zI7UG=#U!u*KO^}`%sSB#y=+!aoL0ih`;hRJOt7(@WrHAY$E})#H|{@1*Om!@4DmEVB1jMkpv{eN4}HPwx)(Cpi$8xM--zR0-z#wV=~C92mXWQ zCl&r^IWb%Xot_czRm@Pw^UKDt$-SZw8{{T9F=a5j?nydJFHAM&!?txsD!rzmZK1ks zyKdL_Qe-|o3&j7cDxH085s5zB(NmD)H~RGNo9U5HuRby2y>jNV$05XQcX0WCe{n*0 z{(Gn2yF?ZxMkA}m!a?-q*L?Bmg9Wr`v>~6jyf-@9#S2-I$kiZ)hmk61j89GxPAa^8 zZ~(rle}zt1Vakst0c+qb$fmo7vFTFmoTeZ~DNKJ2KJQlh3Owt^v3IVt*%A#?07B}- z8=9nNogzAtYVDj692SP1W?iLm|Az3}pDkj2x~xDw!_ow0jji)yyi0z)9V&Z_x}qDM zrX#K2GX?vPv0p+uuVpkW2lK-OC*h$QjwNodsrSYqy!L4iWKXrByqW7-V93s^w>nOV zjz;%M_F7m`FsWJ#YVtdg9$Oi|4CRrKbs!vX&3rGoEqHiBoY&dgRP1+xmImGB8e-;y z6G!7ZFgLv#e@WiK&eIN;*Hio8@1pB;#QS5k=b;arS*KvMk9e;KfgV8;)`PHH;`dka z_Gu_OTrBJ@Gi!8z{F3C-UU(nf^w7{z?eko8i`2pEU=!8a0LCh1lC=SB7-xynMzEP& zKOkJ0{EnItwy@hxxBoawQ%C@GhpZLp8=38v$D4(Ht0HwxaChZ2`V(i<(6>X1hG?2W zu_5nG0NQCL4N|3z^WcskA0CwoiRxx1O+`zziX9jj4d$=x%^;mlJ4m6vm~|=>Xy&0Q ze7g92$r*1P>qKMn57MKbyP_BaNv5Xv<9x1zFRpmn$A-w}Tpt$);)(DZ3zU zR+}H{7MP&!RR=Em(o(P&=Wl7hs?bPdioh4QqOGYS>024oknzEG+?g2|*>Beslry`2 zd*JDlX46hphw1iQrJ~7Wf3shVM+x@d^THGNdgx7??i{9WbFOm*L@ynT9^HCx;mptd zVRc9fJc93gZ8}KkE}8qddrga=m_YV6MkbniIZFXIPusz;U1-Cg+!#+V-!;Oc<=xM% z?C-&5f`FKA6^P3|Z=oy4Wl{FD0b~No+X0keOtdn9<&#Kc1|Z3qlw|;t<`+I@A8wn4 zx{{EcptUjPozN&!3jb^~=o6UhgQJiZtZ*5W3rK-SC5F@zAe8j0+XeX~d(~qXkCtb2 z^tMrSQjLvtI9%ALknCOX(e0#V7iSs+0WrXhnaohj zit^E%^?10uey$|=)uB52__xnBdSw1k8bds@fEYHByev@V_2nu>Pi9Pkd9S54d>pr+|=s!-s=+|zHG6M<~LU3F6(GZ7JougA+&FMI&K1H`k#XdM%j9RK! z^uE9qeR#T8@YMj_VK`y>TDn_ZpB^Ux`{8QgM(@r=cenbZf45x(SL4`k7#_BEEnPZV zlU@{E<;M12h>A($ekKi8m2!Yt7t#}c0QQ&NQn>sO9b(cf9Tvn1zIO0|Bj)B$rqW_{s`2+P7o;kMT>GVmfD7jly~B)^ zW$wQ!!MFJ}E?C}Aoxa#)NYAR=>0yl|ba#0-!TxtW-N}z5j8y3lvCIZNH=hJ#gL*gL_L2O?#Ww$s zjBL;~FWEM-bBNwikajL4`6wvD+dTEa5|#)5?Df5`E;pOWs`<_a|MBG3s!| zrgaQ9nDrx13xZUBY8vkK*MY8NG-<@Qk?3XgCw35tgxA0cHM^}@Nve(k8@W~3NF56j zA$zR#aiGePr1Ur(0i+49SZ|_t0;cUtJWnv8eoOiapQZGl1mZz|lW9~RJ-XY?38}JL z$osgkKd*h)**Jeg8VwIIrMHRdNsve0#PuYoI8LpttW0YC}P1SV}8^FeV*9X$4a3up2eJiI4_1plCon^aw# z>NYAS{)~a!h&k;P@PBUo+jTk91!{QU+;8+nb5EBb_fW-`nNjG1dWTs>|1-${Y|_Q6 zo`0p~YN{>~69?L*5T~<%|E(nKERf4Xk_C#s`Ct>bwG9;PzAHk6=kB;m_eZ7kV^_XXY^@GQ!(>_) zfgbHvT)iOgJU1SlJ7L@oypC+FrYkk^#(!mW!{@F1i}5FcIqVbSC%br zV>}2ORKRGRi7p3DPuUlp(Ww7TJ=IYh>L0U_c-H%ybnf6SZAoc4K(u6=j58s%9H4eJ zQ7r;iKU+A5EtM>SiqNj`nB+d>tKbsNzj1Zr>%V54qNHGM+s=`_9j8WVz$Q# z+d<^B+Ji0p{qP~2UV1!=j9xByj;oQlkRL^ihTomem)rCIcZA0ake~OK%N08C=oY?g z@?>d`4+-c-^Jl?HGnZZQn@iW|&Kc?8EE-S@Cmk)4Ud(Jtx_Ek%V?VP*v~A5d!6noW zb;oN(rL^Ju7QQC5+41+(L^MLFRxfjutc+EMoYyKvAcv?x59E$uD6aX2146(T9n zfHBF2#<=XaNju4Rg#Sf%0&#*qz~3Z||3q5a-a1Rnc%X5e3&YrK62t>V6t52j2l-MS zWI{F3y#gAd?bvlAfw25LK#C3Oe$aZYD*cvqnPrkZUQ-qnKos0%d-Yc@@5cdfI(S zRVi4MLiP=2n=}@HKY-{eNUoD4<0@>ue@C6=&KL%Q0oU*v+)!;DG@p~tpNDohUl0U~ z^r}7He|sg}xJ^fvCXq-&fzgbm+BMrI9Q2uC&>wot~9nqNmT3_7hhX*a_x~{}|-dJu% z)&kVfcur8dz4VxdT`!NPTL-Txnb4g|ZS0n#Sr*`h1j)=|u9L)D%nL+lqsx*kYsd8ai?2Z|B&b$&R~7P&v?P7gAadTiQ8dco*crHsTG9pZCiD z${u#4scIbZz)9!c(K6c>=eUFuQu(5JXnU~m8O)<%0(M02=pa#(GkC$@1@##6Syce5 zLNU<_rpQ?FL@bDjqpp8kbas_egPqa*dy;w&*nhL`7mmH+fxeMacvNbYHQr;+D1m;G zT?sNmCTpo=7-hI8)p`hjy+&Lg0+{ZSaA;J*yZWOkk(q1^$%a1$)Mg0RnEpI?1g;ry zhJKZY@qdGdA+7qA3h#7BL3>kXy%p}oK=jQ@^(HQ361}h{02x7F=Fd=+G#}u->_o@`;S;Y1*kVE zraGR|OG0eaQNemaLu04ms-ZXNYnv!uL{gtZkm(1f6v3%|I2(kK^&NU-e*~X@$eW#W zaRqXhH9ln+C6$Hic1lYZtN`<&RyAx$y@QVzcB&19RLri`K#}iARyB}q^vAdIou?C! zA*q5#IEIOygFn9gBH?@`$EIoH-ma9cx}Z&?zJxj~ei@IB*bi*ClXN6<_v&inJDZE> z_Fxx!j3}PNS00f1wgw6^ynreEwmQn*nHL1n|K9M}c3t)Yrdz1_g-aVd9ZF;5zhHbV zU&U|ZKD?ZV?)BXxD2zO!EHTf;Q()krwMe2ytE3g;KJ7sc-8x|rRQuPX?s*G5_2D{|_hoc0Q+gmBKalftGXz3su zS~6D`O`YTh`cCO<(BWh?odn}IS6^R_BgBn#93DYW6Wux>U)`fAf^gUutcKTX)zcXc zA{W`x7{yKBWk`vn)G`|DTC!vJW`*NXtsykh7#lK%UpR;9G zpjqDs2-+%|#)+_GTN&NM^xy9|X)8zJtr4am4c-1e5f*{FCe15ZIRO={-RI{+GY);OvNu zZ5sOE8(lY2JF`Cg5EAwtBF!?c2ycONb;S7LsW_^7yD#riT+fXqN*@5mzQpVU02NYd zegFr?|CM6$$C91DK5u{LuPC8f~Jcl-2R_Dj`S8y|k-bXl>E0g?>FzErmg&ApI zizz;ySz7X1+?$8gS)bt3>O}epKHaELVYSJ@Pq0OP^ZP4pati^^uBuOPOkGPX>w%8f z$kOW>2W6E%Qe$?Iegs+|tNOw$Q3gL9*YC_*$NRHu**}pX=$eY3pa4D4$s0dCltax2 zsqwU{ISTN%Me<>4|9gGA*8d`%V5-S0+`qBAYG)x?-ogJaX;o}ao~Ltz)%dSO@dNHl z-IycXf40NE4UBr1J8tR!J!<@jEodL%v@DTTXO@F+nRf%s{5#2S0K4S1KO4Ed#HkUM zq(rhBfwG-PUt(p~7Ql8^)d(~&l(fLF)}eWaSq-Cb~y|_ejldBJCI!I%gRK^bW-{g4lD`d?AWzi z;?QB@{fk*=sdcbFa@Vv&l|DxVNg+3K5gz#KX8W?w5Y;A-j1uD11eA4;gf+oxj*qOB zU!JfWjz+@nJPt!DT^{@7QZ&|`|0M}^0RQ(U2)SBH0)B(0)=V;f16j?>ohT^4E)MO5 z``p}14;=91ok;y}&}&^t${&DzIjQ>tD^nYn!X8idN3Ug(e_^|XaHZ5{P&{qPw`Q2? zUYTwSvtJof_bFNdEpcOHQqLEO5GLISj{(}zi5;Cho1Z3t8a>EU&&a0yo0jTB_mm4p>!%EPhtxHua=}GF>)8_&ox`P8J zIT;6c!Wqhvp>}n&QBlzxkN&V!aMN(w))zk>_X5h!=J58%rxg0!Xp8@CRF?Q!>dxa8 zp%Bb_;Mf^Kj@Lb*gGXt;pjSSg=FLe$XGxk}zhMWYCcQ$?DT7+UNi(;su-@XY)M3_H zzTdVG=^4_N@z%AAWL*e1E=AED>^h&_Y6SJV@WG?8Irwv)n|7A}x?m;O^JXNfVOkW^ z+YgfePdHgSjJ&To;(E;w)OTSHzih*FjwO~NAP83yAd*;EZ@$`#yYCQz(tOtoPS~i> z6-NzxMjsu`;m<4>0C{Li;8n}3p<(E&O{^ezPJD91B`Q_a1S&dZ?NM_KAbMRTR!X0U zcUOroxEADemDrf2X_gBPFz2riV7Ht$>!0Df`iv@qYUSNv%J-I)u>Rc^u|jNcQEM9R z`?i3N*U9Bu<;F#oBS(Q}ek8n_G;Yp*!ByTVnvSK_XXuVmIsCK%U%8Kar=f_W!Y<-T zOZ{=uygYhmz!_d=oF1n?WHLId{GT6gM+W{87BkfF_<&q`b9)Y7z9mwjM=ZMoB6^U3 z?l3i-6GrHu#sJjV{h8nthu#dvtEat(vSw%b*hw#0%R@fst;=D-{_zD5T}-N8(OcJh zIu~0=6n6KL&}weALkE!i@3>JlT#S1&HT25kGN*6mmlPUAPerl`Ht-x3kR)A5wTh%I zC!baiiA)rF=7BVdRP+Fp9wwrmumsC=KS888S6gB3^I`f-(bIX2!2wQ7whXC>76`KD zqO4%_8OBv`~vT-FB5h03X!`y8{c#-bg>yO*R0;*PXbCF?BDOy11ukBCD1MQI(urJaRVZ@cHx+MG+D z99qRgIT}@fMFDA11>w|d@MN+X_MXtev&Mf%|E*kaU?_yX4Hcy)Zp#6 zC)5Q2rnjy;mJPZ|?`>Yqmm2AC4MuU0YtOK^q|H$x85)uO`GG|PNo{XHkUt4ihZQQ) ze7HIu{JcmuJSOesYXsrzTCIht{}DQ7$0|N){8Vmt4@h=A_Mu>ZkvfBSL>{JoeWChn za&K;WWE^rG(JI)#b&7;c)sWa(t_if@0FgP8 zMh%Itis!v}_U-IQ)Jx{ADFL^{34Ym}`G|0c!4~xeENBz!zLKGk=rN$}=@3b6Yi<)o zUrDg&y`?iMAck5JUuz}Z0cezm8&b@T6V%Cn>RRE`+*z9Hu$sT9s2zR)CDOy}0?600(+80l~ znMmvE-T67k?kT37T8g}8AMI#-=XSt3mh{KzEpzB^Cl9`l-xjWAVjvpwxvZlX+WVVL z9fWr$deXjE#)Ct=rw%~Mt?v-_o@fd>B1_ScK$^#^BwbfxYS$}oJv#`GMg1d%olE5n z4*2%VwN$^{jc@rok}ZLHOU1HAT_AP4rus7WTDTw5Xvh_u&HXoHu{c{!D_Y(8XWcrn z6^W7HO;t4zM2sgf8w3a_CqaW?GW~B@Ndv-GpizTn3l4T=%Vcc&;xZk!b389uGL;?V zw;W>EN(TYrtcal=2$b>4UnLxi^v9y51iJrM(ec;mf(* z@c1u}Xb|1Yr;&icfcoWb4xC%JnNavDV=#!}%|y=t##Zk4OIlo$0O5=I2Eb4@q}l+~ z7F8;f#&1tR^KVxQF7oCb2_A92j2=9>ho2H{z@8yahA`mq{+k^gwkCncY?UEkBa>JU zky!ZUyY3NG;wy+5&fQW@-#pIb?{Cmi4AxFUNA!0KezAeD3Y_b#twVKg*Twq;Br$%S;!$_HtBou7v*2W-#7yRnShEH07 zhD;GAEng^B<=MH6CIS>ywFVVd?1=XYT1-J5o?Lof+TSz*EqmG^ z23WnH9WG0rzmF^ zednX$8p0iRAl^+~Ku)5uKTIrO@ zKOte}u*S0_%UnVN)>;ZzNSN|76zde#(p;BJ{?SKs^l+OE^1Ulu((PC4Jgm;XrDZ#J z^G|j)u^}YgLgKG7=Uy3G9J~NhGBsL&HeonEv!Jb5B!tTkhez)7mdpC!Ns>NmbqGjTU=#-L!7_kC;jO^(uFyD!(NGKSi*PIbJ8#8!ASE+q$SAS{-n%O z5^Q}2ewlWqT#!j;oV3ES)SvXar?pGBsW%HOpuZ{!83Ae1MRP7};ey1CS zFB~pq>f^li59r~RYUgJfM-)#sE;5w4(0Frf` zyNx3M?-GbzEp>n`zUrnndt?`Q4IH^EDBV9APQWhz9@C14)y^{F=?GIcAPJ73M-`Dg zM~SJWzxONY^t2dMHBk7dtEw{{?^bzB3r9Y7UP@G@K*pDds}v;6{^4JwK86cWu<6x~ zNTOZAe3LZ>cTa|j6p9@Fz*EN}S8`Aa5++M+V9}W!;~@R2hy@PtS{N)i!na33xCH8r zzva*H#YJkU$E@Lyi#Vk1HT$7|oXh+@%)D};Yj{u;1NgV=R zX*CHSEiqNm_O({@eX#=ESh7chNOpE(IKzm!;GiaQg1-7PYbOb$MgAYY-aIa*=zSbF zWn>UZF?R?dNkS!+ntQ6bWvd94B$XsusHmipP}xGrv1QL5LWXMY=-kSZHe^c?vL{<* zi|;eNzn|~x_j`Z4-@i_GI``ajp7ZSIInSesvmM0d7BR=X5v{P~{rETq!+ckYNqzr^ zg=*?um2YcjtLkpbfcCZJVKVVEf%O{MM7qH_7HO{f%u5k{d(VVRYVQgUN!5sR`nUYP zOJm_eOtPccF!Axg?x?EP1s%lEyt8=JHj|lE|FJN9mKw2tu$kV?MWHuc-FcZt-sf4& z{u%!YFRWH0pB2W)NH`WfvgwdQu(6Yvf>IEUP5?m;S2+Qv^uTRS0IF7OGEp4l6=2(o zHxy^qaW7`%N znhZMxg%c)&Y5`ucDX^+P*k=l8eNMP|irCjQWYTKhaB|0;OPK_ynzmKgRycF+aAdaG z0o*L^Q(-3ZX@hv7{zE^KS>3CVym%%cZBi3t)iwdrPUTL8Z?D1iQ^f%$7eiL_zI}H1 z1KC@%T9UplkL$91M8Pf`;S6t1#F@@w-$ct!gV~dV{7|nU?|FfHaA%FIXy{Xt-8-La z42aL0*>@^RsNv5~U*l6FyY=7!X}w>-dF&LS$P*LLtd>U|jj!F#NJ?~`$!aD&B(`=1 za052Y1x%0#e{aS4pTp7mZT5(-Ao}pz?_?U^pOCxdd0hAIT@`)s7kJg*#dQKoW=Hel z)-sUyN9R_NkADidD_LRE5BtWTFWJ_-{ZsdTm-VFY68T*P*QHpS9)*)!0l((p99Q59 z7L6YCEJ#7I0XM*}reT^oyaQFF|kL*k`&J1G+V$Vad=K9hHWLtItC-`-co)1a12fuJ*`T7T3*U@GQ zo9`2k+&r$JPMRNO5e~OW9cRG2Y8GtceQ)0xUB<=j9=Uujk1N}Ekxi8PBF`KA2|x~N z^kw#~ttNsC1>D?4`P>29Lv+%x2$WF4ACqf!a|H7{u$h?T<#EGs_AIfl z#o4=^C;WjpSiL*ncvs!)lm%nF>^r&ZoX6d@(PAO(jXQ|rL0%)--QIDapJ%xPf9g^a z!K+iO*@u|7_g<04vOKQs=xVm)Lj=@MvG4$iSb#G;0KK=|Z{mgC$geVnGQLkr)blxS zrG*mp>;>U1&G5ESi)Ihr*LFW-m;o!x$oEbP(C!mFfoBVGt|vfvIBrli>#*)@*tpGJ zsk~#{&TwTCD=J9*GXr;1;FR4CVZo4y$qV-QH`bd2!eeM>Yj*6QSP0f|p96##w{Ix&5{^geICl=b233%~ zq1lO}yutDP0atm8jT6_bU488e7-}v*y7C%o6CVs^%-**UyEVgQ-7Rcwc7ZW9W==O= zv*G+BcP6Qg*5)Nl6{LjnsQvA55!A1e^8?a7N}t6mu}JqjqQTTe%$DjG?<{faB3;bfe{@^$0bK?8!3 zAUcotGn49^m_9!*khr1I4h=YL9$--%&YA}X*&IDxI!q7=*-ESD0XDf~p)cS>zpNBq zGWb>E$~ zr-<-S!vf!MB?;7 zKpIC}90(4n33X=*USz>#3vOupv0O)>9I;~})A+TV+)drhZO3{G0THLan8aSdZVLek z#^VI|1=wS@s=0$}Rm~Et83f8`4vq?fr%gC3NNgy){r(|)4Oa!hOKP|+2xuc1TPy-9 zc-3s&9?;qmnAGg%Gp%q*ci@uUoD)u41XK6Kg^OSzC0K7UOeOC6XIc%rEe3Gk9K%nU zD*xF2fiFlApxi+KbVUrNhJ6o6MDjrtG zp?>QI^UhEwq6>5FNhLW_ltYvd$F>Kjhk(I-=^a+QUI{yD)sOep5%OM4kM*~R%dm@N zE^Z6~%^__*|0V8UEk;c6#|o1F5o1rsG{=}?%T*fjBhe5)df9FXoP6&lP z%fmUL!0acLJ!kPA7f96G5GwXIy&PeOTyNauwN!2nwPbeP)g-;Ao*)M6x+rhqh%gvs z`pK2-)tA8#PMZ}bmW%Eb<+7s;EFf+xa0z&qx8vp|zz!$*3TRc@{?*uEsd!Uj_L49Z zzibjONVL{B%8CwFlEahrIJd77c5oFOES28imDtBmX)uZBi^xIoP;T}jU-tgfaMU|z z9pCtPOt@Irw7S;@z7CzHJQp!rg07Mbi7{uos)YT#%o8fPMume+e2J^WLF?(a{TQ!2 zB+n$wj~FvD_TUh1xJDYj{t}C(%v5IH(UsRiXNCAV1Ex^ zhSYE~bn-WlShG#HmmtTJ{P7;yNoLIS!(+%4GK_N?UnO1qWG?EJ(Z=%W<%hajF(V(0 zBdKeLa%*sQB%r}hTptNUA;-O!!Bc;^<1%qSflyh$p4OH7FBiuNMB;fKHWZW@Nx}_L zV1k^)VbQ=Sd~sHEyT#iU4X@wBCNXf@>qZ@;1HB?3F?L3b*t5qDMKb;VX%wQ8OBDFg zt-b?vewLPyr`iVGnd~guK6eqiv?7JYkJk1ZfSDEIa8)9L6<{K?PUOE+dtAehSzJ~^ z9_8q9J=PQ2>9!9t`pTbZ?R~8;WB2Gz`&W&=&ZY~4qtN_h2VM|yS$;SmR@~bsqJZB{ z5xnzb)ZuJL{CF4_ds^Ri{oi<`qd$Om&`zuUnQ6hLWJ$$fZg9GjbOEl41;((i(|N_B z{*W_t%LQIE8tOEk30qtWJY_JKh)q@ku;*f*m11Avj--XaW(!w>nQvzh)c);`e6QW< zZp`1Ndn6)$A6FaV$vR=TIN0f6oE!(bYM}EGsbG8zlH&$=^j{Faui$M{BHFvy##R-K z75)Fu?cHt+*<2aUlpB|mw6wjPMO&s#7r3BcQaym?L%J20MlfcR%1QacJ={~A84nv= z(l9eW^i3kNRMxdi*N*1>G01`GGp~Z!>hI$|(|@F~YOBy9_wBsW_{|_0lef8&j0)Pz zc@8$DZ*7i8kId1IH8*3kj2H=bY@WGZp zPPN@@o`@XP5Abf9^M*-GRZ|7IVY;7NhxJwgy!Ei#D$vY!H{Fy{x5mAY-d8cQUvpw?`qT{$aQ7nfXZfUDQ zQr$X#Px@ufe57gfj(1O9eXwE#i!zB;Y^(jy+smYH@R!w~1Ps7>N#Y=*nuGtjS=5pA zpZV8=xwLRUx${ZgVH?hd=uFe4FOEpVCr(1$4F>YMIIhp1&1kZRiAGr`hjmzU4H%qm z$IsD~yTZ}#E+=?5b<5gFCVOiu5!h|EKZ-NqHIdP#TIom0a;O|ETnoei`D#_oS{%3* zBuyo5Rz3Z|2J6IzfpgyOW+&$@LnE?Nd3XBaNnPf^$zo#f>_fJg9bvs3BT+$95^w*@ z);RM*MZ0YTbL`*&;x^u$M5&u91)r@{(L^bLScZc{ z%A)=r$ok%=_9b*gS-m4In60g|pt`md>5bD;#5H85ipZSpqv`NDabP4TZ-hO8GxJSwKz(Lv zU(~2E3GystZGtU2gR9|J>jAG@=)h}Us9}&NFO+1uk&M>1uO$7@baG|Hb-LCr1QPOO zY=#M2;xC)Qnzq%~vB|ubfNb=IygKtWX)oqh;Y%{q{{qLktzi8Z#-NzcbG#cJZP1I! z==YNN54yxj$Qjm79D!cf z^LhK<843bz3s@chwrfj&3;~k{XKjHEc#EsIsGJqr#_U_k3WzSX*b0x^wuefyuZE)8 zIAbex+JuW$zn)z+nw>Mv9i?G|ZLp&R=Wc^vyImcmJo{|0>Ubg@`kup%>EIJl$6=}` zNQSR!KI5`<(3gU-$#!w8AYN{;Lk!g`H>7EztHv>#~B$w1;N`I*{^z^>AnGW zN&$&(xVZB`t<)ogPnFhTJWHY>8Pj98);G8|+ zmpf81hW_I;9jaL9?ga|5^6HL63*6AgYc%gjxuPWuRsV*x#62QLYf9+_&x4T(uHGw_ zn~tAWVfzoN6d#YU~7raB1J;{Y}ANz4}wk9U84`J z=NN`g;f8~tPM2ZnA?UAt@;veH1k>TAJdl#{_wRKm;9N2yKfK; z+>iU{^H(}DBN__J3J-&^doXYz6=P-!oBQYQH^}qv|JfurU z{H}f58(sd%T6OM`hS>LHJ8nD-{)3>pOs(CFBJOMTi6mm;A39Km)*PaBP zHW7!N0u8G&dy3Q$!uY!3tW#jAty`k5>@OFbhDpF7rQR8M{SS75M)+@Ad_e_HQvEUp z=bV9^ZE?<^H3rT=8d&!%yxM)H06Y#6XMs_fuMGqRyXq|1dxugI=v`Ql4LH&R`(%s1 zK~f~QbD$Xh#JT6ho`HkZo-0C+tVDJn$F$qv9fbqB29Jewp6AHxjTR2c!+hDBCNaqE z0>7uVX`3lCCN-O6*IGIZDllY)IO05DR@{yww$I{%AgnCwJZzJ5r_qY&S;3G#MR)42+`Nttgk=ZMEHZ->rX8x(`W!%)+nE4=+XYdACW+|H9jU2GhB;WQZD zlrvu}4Sel|y6xn@48K_}VuB7nB3niTlTzGx0o+%i*gXg4x^bx!n_ChIl_qj?;GWE& z*>X1GV;BYf1KqV{9!O4hb1`FTzqwHh$ur`Z-Sn=AOEO zj2Ih1deqERo>?YB0ab>){iTz}GC`;O$(agQ@*Zbi1WOtGP4E?nmls|FblZsoFTu@& zjo%K^zvcRuRp_}3JLW=%rShm;5RQRewoaq{ItQc8#g|w<;kD(B2Xk~|ClcZsO8yyZ zp}mKkA@Z-oOW5tJ56ksp?vFPlHj9@K_MQm@*y_uHz2hrg5aq=mnDWBehjBU_LspLp zBQGC5qDy-EBefg8ysHl#JdY_1i6Muee-FQFEIG6U*{7f269sgqBVXq+HMc^E*0d#1 zYOaS;JH-`U-@_jlaxTl4*}W`?eC`rX)Uf7NpxDwL-KjpS`f047vkFs`!UXeWrT{(<9w#;(AlMaC~M_AUjJQ!55;7zFC$jt3b+wCEFbXh zAkNGO#LU2L@Fc1_J5>6pBoXOhivpn2f~bWw->s~hXQwdv{qB)-$CO;s#~X?_PhwFI zoKXPk51W#wn9;NfP4k<`xA~nc%iS3*-wN{ntCG8uI0gN|`U+r6vQ9%$@R8A=kh&{? zw)<+C&{2P)(Jx=uc53)9Dcp|TF}eZFtP!8dJj;Ae!1>cD+0m-NWd*QaC*>-TL%J-; z)+8Lp!UEUV53$`iHx`0bv*1^eyq_gIxO7ugl^bfq{%P4u=- zi>+!kfjpr?0)pa>JcEb_2~6J2ImWvyV!=q}OiemjbuNkPcXK>zkLx*D+NsHi)%_U- z_w#g%KvT}e(jt(WtFT2e`2B5+CP}4z63}loZC)Ejqlb(Mt7i$*H;K!_X~iH9xvz<+ zuJItRn0~N*BC};7Bq+F%#BsP0UJ)+Hg8)%%Pyz=3AnaBGc)xxfw&7zn8*jQYGe;`P zLXyN;jeDoi$xlEFM{MRrWYa&hm>n$~$w*womEqbFFxeT)EV_7H1f)52ydm~Xyme_5 zn+}E8rZrUaj&cDC-yK<3K_=uTaj})J6w^n>BHQUM?I_TZNSf>K&vYuOBBM5~<^FuQ zDt+gYfI`l^>1cf1|0V<={lpeGVZZm`z?*>l&A1qzd}g+3@~XL`2M=ayEh@;(Q|BBI zQ>)lMdlkCk*;A^5TSvM~_wJLJAzTrO8FS5Hdyi_V3wFB&Qr`k+-vTV$X3&ccmqo($ zu7+EHg?Ij?D#|Cus?t&17Jm?WM=Sw#$)Z#hpWJ38wfYX_E*4$qUHqS+?`3t@D@dZ{ zKhlcRN?~2Yu>u;4Q%{Q6?`xszruP2!iFO3KD)$~tr%e~g&&a>T;nWLO1MA;`>lXK= zm)U7hb>o9eytV#Go_j{1U$Zw$>js?Q z1@#ag)RQUt=|OSvl|@|zs`uY%h?h?k zXgMun7SKWJHXjojiD=h~@qX9eK1N_*4qg0KrJnNoVLrs*} zIvI^})k7O`ZZ)9eb^jsKS*eK#>W)8vUT)a&0WkHT@sDW7kRX(8yMY&(tnV#iqC@YH zG|^|0kr7Qh;Hn3p8w0&-Y9gaK#az=yE9jj2D_9=Px!?CHy=U3g)x{$9d_ zj2KTAxeVu|5iRVKbWikoLTr2gjvUl~;)XE#+C53dyD=Q0jwpI9jYIXvNAr%K88IrD zso0=Fw6HNJFQ}*I9Ck+98dbb695ymxl85&qC+`_^kJf0RjW=zP{JDa+e{1tt=GxTJ zWcpqME*;lC0*4!iBOU`c$iZcgfml{ylP9qE`q=*oFl9J@S3N0k;S>1ZZmeG;4)7Vf zv4j`sf2Yr2f_z%Y*WqGWqjFKc{_I4wY}$6-{xjzUGqbc>$)r<*Wd|?rw!Vq$;S;8R z-tgxxJMmAM{+4NVc}=pX zxY_09=UUgUgfejWUH6gBQGb_w%QLTy#l|h5IZ&i$GCLLrK8EU^GcUt zeoXw^_vCqgK9q9EYykNC;5K;6dQZl4>jwZj+1JjzGHi958)Hxf5k>Dt%BD`ru&x9f zKNAPO21SqcYRu=$4Rhf_wXCG-F3GyRopjn$BOUJ+i*DlL*YI(5Z14seNK^C%R4iv) z`vxqY9&+8cVo3J|7na_EH=)3T-^)6!yeAX2h9x~W-y?57mnyn2ArO$~{vHOqfV1BN zP!e#&2Ox?iIP(KQS#$XfHtwr4`i!eTh&Nf>@Qy@d{tQs?p%~G$W@=7Yah_HniJ5@aou@^X6xkuCT#U3 zl9qIfIPcxa_Bd*bzGn>N?VmSy0rPD{4ta!c5uLuT6)`yJ8|k+8h~xggCt!SYFMxP+q8X+wR3Intz>iTdT*N%`K#tJ`F)KJ2@{R?CL9KEKfZk zgKG~uteTmu=z-l@K&To&I$WR+RpHWFrt-pV+%!#Ql2#oVJnCKHwHyIEtT+xe;RbkJ zXq)d1cyV+Y#TqK+pv zViAoD?^^NhQGl9+Srb!7p7vjFHy>;Mg12?C^cV2E;W*+Kpx#ci9!i163<#>o`X%=D zvFV3-FZ8iZ0~q_ul|*!MkKL8oEURk}hI(qPXy5OSnEt<|dQ9r4N@8=%z+RDbg#C;C ze*+iM!fC%@8s=E>8xnVfgzzUB+gUuANwX;;=P#7njo5OE{et!XfL44i=`6clHwYd1 z-*F=yY5qe}hA_SgmKa~TY4>(g4!dRa0x+kO{{WV(zVw#8*E9$8poTvXfA!<4SZR%W zx51R+v3(m5vCZ-;(xoFp5Mxlx%VO588O4YzkC8k3KiawDGS%Btaa$W4VB9y$VQbEW zpzb*1FSuH@ayIi0vRgEcafmxW{-s6P?LTprjmKZ$6=CnxrI2LK;2-c`C=T%tf-;B1 z8q(V*J0f&euU#B=v|^2NTjtQ=jl{&K*>3LKOVYpVAfI|Pe>l?RnKaWncssdtZ5L~b)R5~)VKvh=QFCoa`>jNWh3>p72p;FmtmvvidXz7-AAvR1VU+N` z18BdA6u4j=)hTab(n|+4L!PBhL7M4BU%p6fS1m-2p$~XR?2_ui(4$unzb$U|n+Bbv zYx~(kG`)e4@)TXxlAw8C`a?p?WFe)Brppylse&(9+6A6Ua2Pa+(oqHU<|l6G_Uq^E zpXdlLjW>rfBX_(fGu?FTM{JCu#W{ZHcG!L1DaEc{%Cu>JC2>+s`|-C^>3ONk(Yqa8 zI_m$QG~?bCk&K^PD_L%G*KWs)2I=%q322d9Brhw8_tauSonDd9{DJmCH(V6|K%1J3 z12te-5b&TuZH0gzgRTI9lpZE*pCDu4cgbBTU%_vALs#md08BGQH-LQStf7iH(9ub#)Ed<3PYAuL8C= z??5S)As?5p);G-VA1PPf8BHsmxvg zaUERNiwY7zXuTFJ_Fu*m+y1*IqXjra^{CZga&4i3BNXFqhDVD|i^|zg&pM;d-}uis z|8;U?KF_^L-oHG?#T~L{hv1~%lrdB=&hAZF`Yf__;+<>Vw&~3IvlT>5e4M*!c!ceA zHxfPi?au4WJFwD?nfmq?+28Xx*Dbe_RbqQ>%2@c`atiw#M`%;t)_EoC*ovJC(1xf2 znhzy<4tHlRZQ)4ghgn>6++MamI}%Y?*atx4ge_D}0uEF)={Q5xB;jIJvkEu&0i?Up z>78v=^#Y`!)xi6O5t6w~#^D^YX4r8EUQN)U0t72@y$)q=YM9G^<}PoX$Gi)_N(SvZ z$|?6m(uWem;e6Fm7pS8OSL;$^jG6}gx;Br;6Lhz{H#6t#OVZC|m3;y>=?mzxHkeV= zIfLCIUDz(dI`YdrDWsTJhn|y3MN0c+-?mAWkjbPE&gctB*9R+L6i~h!`@#aMuv ztNb}<5_*aaBryAC>>`2LKgJ2FCKqQzBb<3?BfA6FODJFAmI0^edbwkNYM+|mFs|2w z|6cgo9X-Li1Az=qS)F7x>&Bt=@~DAScQp&~zA30vL>%t|lh0c++w`uJww`I+?tfDi zdBftMI&h!tD(m9YizF%w0#Um=~L}>&EX%`MJ zhFNz#87jnC!>Bi+H$gvaV&mhHH_kAiJgvV^cvx^)EfJMvpJ`W$Iug4Xb0;%sP6Zia zaDW?jVxuB{I$S8h2E!?(k=OT;ymQs86f*<3a&qY0PVNfUG^99-WiJLIyHAK$gV(z_ zk~!FLgR}{Dan zSLr$JQ&2LGu}}~P8-h{)bAr#uln1&<1}Mn4O6h*D3~(1 zHb%kIDqK5?vJ}+GbxkN6HNijZHU_{p11FE6JQK}KIO(S|cId^e;q6LRNBlsR?ZJ>f z8_7$J1NOD=UefmkGZU z#sXDr!I@)WqQh|YSlG~FY+?!!al3CM?SCx@!WJ@2sW)(FonQvrtZOo#eK=wX5Oyv+ zCceAD?*nt3J(w}tI-5M)J{>Nh^z^!R9WOJ; zwU3w=L!bJNl?Rwpl$vSOp#WNIXDqrcu;L|wPuFdkl=2Ov;H3*(EX}rnwe$@OWZQa% zqZ)aG1r;L@t>1XFV2~^h(i#R@Qof0Lb(OqI!t54zW>(d8(&?}(clNR=r9|MKaegFon^iSUik<|SOZI|z?tx-=+pLaoAGcd4LpF>l()rlbw6;AeC1ts zR^cdS{y?^H^W~mg+otWd7LX;f83#_Fd^;D)-EG@zgyL5dsBqJY(>Hhp%iO^3Op`_~ z$zBk}ZGN$h#V?ma4UA+P>Wy&nzMz5v9AQfZnB4w7qkV*q*yij_U70?JCBqWbx#MSU zu{W?l3UJVZtK_@K@fWx}R4{RiZjN2Sw zW(JZT%5af8+{Cbu0c(1Si)HWy3OCDuS-(o1O8>F&LBpiik<3VqV7M!Z3!!JU`MJx0X z7pwl+1vfiUO0N$KqInT(c3~*ToI z&<|@)0vu2rt5OWa5tAr$qaKEbdEcDhAY;ZpPa~)QIM~0$Ws@jn;I&J$=~G@|Xzla^ z?PvEL;qB|mVT{iDM)GsMjlH37Abr~)3SCIB=KV~sBbBloMJaibev~^@dQDo2zf6Wr zDq7|T9=jN{AG=QhLyp6_Q$PYe9nnMDv}p>8m_C4)#}4W(Wgav?AuAoSxH*w!`GW5Y z(BQ5OEFa%Wtwao0@RaztoZyMyN4BCtAs&k_8q`$j}14U#4LkqW8kfpC1@_3@DuvO{q$*| zu-(P_(ZeS*b)bJlB7p?jzd%FG{*&I;9x#2Q+%R=Ly zz2cpt4jSSyy`39$L=~IXbz;^_FA~4!#hkB?3GIUYXHdr7H(0%GH~JQ4Da$y85(V&?7ffGC^%S11` zL%eHy8!&(w^0SP*I#|q&+6Pg1$79f*l>WT^Kf35KYO+dl@kuc^Bl8nI>a9QO)5z~u zHybw)n|o4wz&qR|5Wk`k%0qZpZbD_LF0ac0NQ6|}iN;CAYdH?Z$!L_^d@AUwi7`wVZ;IV89do~&0X zh+=Wsa`fj&8qFs#l1rvC4NaxwxcCNl(NKpq3t9oScirbwsix-k!St8=(dd4tsQvZ- zqKNh>wM=tksP&~}E1)%`>GA=-CNJlIi`<#zk1EI<^P8N! zcmYZrT|@7~)v8ejV2gQ_vB^CNL}l(=&x;R#s%JBI2EQZpm=bO}PMZhp@}&K1Ueb7y zGKcYOX(U^I6mwarjda=W`EdKEc^;@gCoDGczLsM;mx&+$l}M(Sa0wG8&^NK0FBk*w z?}bXcxvoOdGfNeG2e||L%x6M8zmb%kgxhnjRLb6oL&dlOUN`jt0rB{$F|T>P$7%%= z4~hP+X%eoj*du>Cj_?Dq^i5xpzZxHgKTU1^8MmjXNSVwpmKtY_V+H^|esmckOTuk_ z03qKc<9Kn*DD%GTLs}_O`W)e8!!_vcO9J6^IMAOm6zw?{&W^h=16kt?fAGX7W4-y{ zIn~F>^I@ar@?T7*9Z^P{@MFSHD9P#mhq(Kn{ptR=cL4YrdSsrVwcam< zls%3Cpr|`lh4XHL_)}LVS@@dlPMzXVK2^w8RYK$*7A^qY<5kN#c2!dpWI7F80Jvj^ zix&VfK*o>-Fzs!5P12{2g29<(5C}}n`4_*_arO%rruTR`DcBb3aK!KyZE%-gC6uq} zv`-W-Ed@VplAYALL3Tdf#2vL-PqX(!kiNWO36&@ih~$CcU{DFqOpR1r#Pty%8-8Hj zNZ=B$h?epvqYMP6$0Tri7B8a=O*hs*rVSOo zsC+7a;ELH%M}`hrM(!)CNCMVd4)#?hPFfBY$3qMuXE=8`cu)5)I!522mcq4Z$0$Gp zKb#c>rq(dIMKpCnAPB>?F_fiAp%#A@JvAs{Vx7H_{4lH{k^0@C5W4*eYLoSTtNGHN zVRKPTuz*)lUyu;M3_y8gfoT=_F!UaKPH6|>wZd4yxNfJO^1{5xC6H0t%gO$dM?_ui z7+r3=5Hf%S#=`XTaB(bG@$$hpYrAuLLwHD70da zvr*_UZdeJRdF-r#D#|_JBqJ)0l3SO_AYu941T@w{$h&D#%^J*w)pexYXDrF+JyiPr zS|Zvb4~&PSJ+NT169AvxFaK63pbD=SZb+b-j2uq{@TRcH*gusK#kUZRRaUYaxNQ|> zX>>gO7H@Y^_l3;#tu5qtF_NvsK8fHRGsGE*RH{YDqXp6#I1yQG5b@?o>H1!W@h+$! ztE~yA9ynat3%jibH6{TktOh#q#o5pZYXYsL5Qe4t2Zc4008@72%p^eUd|Z`8eGuiZ zeaWWxY-Sh8i`P&=YCv8l$?*0&>;sMUxhE^>!P*Q;8ZB)d-5@ z*#g>gi#^0@6(_^?Tn(DSZdkhjPvh@LSxu$Al*!IBue@?SiAD@49?m%rpb=x`e3}Z5cE8+8^luamsk!@UAsy z7BZh#wGbyW^`cqN*5&=*n9XZGFz73SUu>NRYZs zF5E=ri@r28O5gQxhZxG_%>bDST)!FiD-&y`0o1Z_W*X?1RHTHLzFLbX$_@yJ5HDq? zqSH<<=%%rLXmN`Z%a>ti%QBg4v~Uo~dnzc}F1$vk)JuZGbc zyfQU^0*nWzz09#jGZ9Q8n9jlJk{a^XoP)Rhbyn* z`V6qm@%N`vyOl=hbe*)F5<3FT6T7~$x1KuWV5(ZtoM#kWsyPBeo*Z{kn@o(*PFn8I ze~td4xxrIc$7Zkn3ZM%RI-NF_a++HyTlT;>tU&*kpcQv>+J#L=8x&b~Q+9vCdGay%A$Rh^Cq+HhKL9d* zsXX}r1*IgD)dtX?F2+Mb!>ohg)2Q6be|6mkMk>`hK*CBIxSzP~APAbMmCd{a{DiqK zn^BiVj_G~mzG0t3fLr;ptx%`5@DOOV^FHp9PLU;`Gtc--4r<3KWtBVS2r(lP_V#O(Vrwr?zZhvw)4Ns-=?9(dsE)1KTg-^}FfoB1+*YpX7D%!19H6@?_CF7HOiOSJ4Pl4yCmeh!&Qn;RC3nA|T2Cl0%Yiut;5KMPGRNqG>DvO( zF>G-Wel^5_7vX@g#O1KUzxPU1dUI-f^0T)LvbOh2?i6l>w=Gu9pJ%J6 zNJJq5{+bcp=HHY(mmMcJqTX?3?*`LnvD+nJOV`_m(cf!kKvLx7OTfD_&Ii$>U1oy$ z*l-EfXI)dP?EB)KqGrFTxi*;haj*FGpvw&c%6Ve%-s3Z>OUbd{g5 zF&Ze(xT<>o(t3=wwTy(?^|{w54K>rn$FE8&?W3_pai579sRZ3mi-n6g%T|a z0l^?wrK&lMn+qvV;rn^61)A86zyw&V%Yg`oKnD(_g`GUDh?*$?UtfJOfclT)QTk#| zI2fL~C7@S&z8s25=Z&>pG9%{y3gvA5+C%2ox`te&TDZ;F|3>H5+M{@*hx)yPRS_W?Kl^o&T7VrG1B6?QZu$B#y_m_o*gP z*(N*swtgrolvh{7AsCQQ^8@$}gWVs(BI;izu`_)ZLs&zu>Tz(%1GX~58^}%f5zv1+ zu6_i4qp`(fK!us|^v4twQXid2NxhFoq0u<^2?*vh|5Bvh?%q%u#jysI?7t&cNNr@! z$Zb7;ar!#p9+_xVAu)gWh+91Dq7(`oKBbH;?$p;w4{x+)v)T!s_U(Lk?{*JIS|MPq?4`AJEqh zI)K&H@EqWC0^8RE3mh@ah2D)1*MkZ=``&tbhqfQ20|dNvazQ}YXWJqNqJgm?5krm(K-R-$)U_Z8*sZ(a$0X-J)IOtoCQFD{gFn4e-bMuc@uVjGCUXh}_qp zfL+4UH(-vG%Cp{3mTK11re0y4X8NHm7RPzl)l|}7He8Y;N4r@{)1({^~t1e-Vd%M<{z7()f?@rG5nwYIMI5X zE@ql2E0J;CVRq(zOOPnZP1FrF(G49|k+>`X%3ZjBg(=wJdZZXg#j}N%@*Q^vh=XEQ7YZtA$yNl3e)k zg7ep*l-scXFL?72PX7hiw`sh!k}5YuiNvRUgpSl^t;FSp+`yaUk?m)$JhrRS4eS2~ z(3D{J-ym)y(sY#Pa1Q+9(~J%N2ZR1E5&FI)y|5S`Bab%z;@n)?*p)gGbS;jb`y{?9 zDeN_AH~CckkMrzT#7>mk|Dj6NL<6l>(`G3#AVYNjfs$^qhd-I7-=aO_iR=M+X>y;t zhQpw{McQ4;_QhSeCk8hT`3@`Y+h-8lBQ<32zZy1Ag4{6modQYa-nBhO@F0vwhQ-qTsBf9lg-r|Hg(LL~8kh)Z4w{ zbk9~Pb`>o}e=^SS_AkxrM{?FzlJyIlINKRt6e61$$mUZ|*kPO}kPL?i>3V_07y{lj z)g)t7A@iyx4TnKvsxWV5`)rwqe%1V^Y-2}gJxpfA(AQeXY|q==7I~SPWT~1cqsM4l zmx4qTg&l9&Mm}wQ4QnrpQ zz;4~(?TF2VtTwLi25UWvHM_&GMOfNhVkvOIQK~05oTX~6YiA#Zv{4@s)%fLAOWjxA8dS8BqT_1IlgqDncRpnCd@ zv!OA)I$X^5GFpaqyx_kD(*Kd0?C!nYB)9Wj$SAMbQ?kP(KEMM>)%ls9^Rel&xu??z zTmFQL!DT(+gPU<1G@|7Zk6GtB4|ES(^a2vtgVTCREKQDdT0`@ZP|=%dvVMmWh}OW@ zT3)8n4Uvs;PbYgc$~kpx(qG~$I`Qr_T~fCg^_OS#mpl~szc$%VtAFuFz9w>BAjDdR z%CxiRkoayNxIXn8Xzvw%Xjo$@Z~sp2VX`qRJ;?BLI0?#}YUffAXT z+CL}UMPG77v|vn6^iszd0@aK4fjI6>AAr7fn~dzR`w)q@aF6FCxM7w%L}Dn)o2QEg z1zVvL@`fS628?#EdCL3wJJS+mQ)Wkzk&^e^QEW0y;%jQPAfKidhaj(c+AJSRj}DHO zJ(|9lI6Hsj%CTaYM6en|_a6Sk=fKKOtdXBiD9Rb7nq-tvDS3H;NlnqeNp}Gl{2lfp;z|dK!whjqT1mN}}UOV*cnG z>Bqd_BD+^BPT8!2NUJO}!2JujO4W45ZDs(XfiKS~j&@E&E9DmEl2$cg!O0=)S8O_7 z;w?JF$`wA_x}#S(W4y%kfB)wT{6}yFyI4vry+XtG@#4tH*G96guQB-)T*Y~wImF)d z3PoK70lfWRhK!KC=(dHJeyHJg;#y0|m_8xi-Pvd0OMfH$KWQQ`IzC8Gw97VHVfZuw zjw>9kB;FRO&*IT>q{r)Tzt?-1Or*VmY&3h#&9ooHw)e-?R+4-Wx#`vtbJL%*_(KJ+ z-W@6{>9LWl8TggkzHOLtWS|U!S(~k4KPs@n1Q3Yn*Ix53>;BiFGS{E$$alJht5cdP z%W%>Ji8(m=awh;Bb#QMR$qxUnQafH|9{Av*%xlSGQX6rfds=ihZZ z6tE&1XG?*ceQTo>N75Y8j=n>9XZGy)1zDNXdUC=14af;84P%|fVKmUjoa)cTSce;()5=DRdglJ zaDcunZgc=jbQ^hyKD~Y^dSu8Sb(UFI>);Txk=zWg=jM;~psf!thYO(YGWh;>oGeo@ z&EH8v0UvQzL#JEpq>2MU<&xAf%A^ktDu!AWB^&kbGo)h2;WXN#>2`0)X^dp?4`qRQ? zJDn-dagtQ1fiz2+3}b=Qc{2Rx!g3#Q!01i^$`B2jkB+80@`AmeL2=`gd zEfg*t>tR5%QS$A1Sd@cCEy~Cm<~_+@~r6+Lv`VwdSBKCSIq?e<+^({`+VMV zxRGu#3%+{McRf4kdN@!+#w^KJBOlirybkF}YC+^*#w(Ja{+=_#F75ybaMrs^phUS& z#2I=^Y&ewDw(tZ*XvKl5<_FI3lo%$q+^(jFZCHe6+`7(t<~{f6CoUfDlToy zBYNl3g(zoMHLoo-e%)Y)p;ntn^~wia9pB(RPW)R1I^mzn4xr<-Fvy zUGiz0zhS8Ordda`Y45*)wsPQhrjy+%FS+QR1+3V67V-+>SE!aR9*#LLiM6o*KTYKm zESLj4X$&@*13M6m1Lpu@cEO4{5_94I;_J)fVv63zg;7xmg_)vIBuS{W%srZWBTHE- zds;}gP^3g<%N7!H?1b#u6Kd}0oKmTzC@Mu8k)%@D;`fyI{r-NR_t$;>;Wjhpp5-~u zcAoPrJG!yR88^-Y9 zeHXN9NW+4d`A%yD+3DkCW7(RxF65{3PwM_~JJS^_xdJsGnPb-QckqXSu;|j#$YZ;5ZE%yNkVn zcSgAb)fM@m>``5Sw0^ff-rLkx+q z&tlU>Fz$%>$VKA8ogryhoHwY>>#)yK7#J+G@GvwL|72Q~!uAOJuJaz2E6XC6YO*MY zTb7DV%-+tXOg~pAwB?y_@b~hXz3iklPst}m4pju7gex77WkB+KW+yT|Ub}-iDPotJLI9;;!UqvNAii{Vnmd-zhO_xL%WX;rQf4>b#{>d(CS z=7cUy>)N*M?XACX=NWdVLmXkJzo9m}3Z$d4tuO4=AME1`V6DVizG4L&jQ9D0U^(W0 zgfBpY;4(YK4_2oN*We@Lva#(lY+kI`Lg4V{c{|I@w>d4LjQ7RlZH@WqLnO6Z=LL!5MU#p$-*ow89JZ}w!%Vd+U*1GG5RR*>{hF5WEL zU7M5Slh{IaKA)3Lz_&L6R)xh^ZW5<<6z!=fkWR$6Lt##-hr1?z!lj`w2}7*08NRuG zY%a3{+rpowR|{71eT=f1{18vUp_<=Cv)y}R@_E90x(=V(3?O{Db1%QOrwv;0O4zxA zQ8~{Zp}Wb`l8?0ik#PP(-fHj-5p97ZrANYgxqcrX^a)3`e(YoSQ=X!-5iqNz{H<->6FZgGO;3BT3yxGU?CSzMSP z9W?j9K+2g4lG>?~nnC5Fm_8fPhWMyG;vSHoC_ZMd*rKDVR|?11EO7-~s@xBXo1Z;+ zD|aszlxNmcmXKO;G0{zZMu#>RB@TZZ3Ovt00z|_EoD%``;f-4&080X}@c}@kXzXzS ze(Mx3KhSF6IEGIh1c?gicMpm`coqE6Q$W5H^uouyO(SZL5Pu{y~d06i-oVOn0;=?c<1=fJdL7?JGqr~2( z=b}#t!tVJ;k?kYh?POj^13i%EuHc@1WYXjFqQsDyFL;HC^p{B}D#w)=m}EyBa}-wm zJ3j9y*fUk{F0^30bAr$U+;|LlzxTQrriZRytGVMi(C+TbfsCJKAS9pBJOTV@C6=B5 z;nr>P7yhBMCpcWioPb8DKB|geKW8KG5IEU7;ECh6rFHsCppdNQX+Q@h>~k9AsTs~Y z4dWJJ(HU_yL^ju*5gVCJEFPrztIeXq-HmOV*q&8GD<$c1p5iJo>H3LU9GRkchG(3G zj*Rh^v#=Z{-Zom?yQ5*g&P_pN=55!pqaH?+tvk|aM11ghAUH!;Y$vFbd$(lSI>#&{ z8X*<57Q4m(iZ}ikfp$L{i>BeI7!Ww)aAS-(+_?DxgLJQH2om3A+c&ljXGf6>=No7R zj=czP^6~1I#IHJnb7tig;D!O0KPM*R=&NEQ%b#bInOEaxA?Lr!f*o4wKazb3KTR$; z7Sa9LM;P4@Zvlw1FGKa>0xx}acT@K{KlBoNZj?gpjsM!zb~sv_K@w`W%NJo zao9~@1@Ca_O^|i71efn$?TI; z{X_9~QMm1{M9=t~hvJP&;AY~G0JjxWUUgI?V2wne29N}aAc1c!9ILqIXoj-l&E&1e zu+%gU#kb?nm|pRfJd7wRxvZv$!b*>U$IQm^$AH*Xs}dQlpG%|=-uhVlLG{&Nb95x_ zHPeDClfc}eiT#QAgW3IiE1A*^YgBuDu;7|c`)+2vBzwun;pMa_`;l}Fj->^ zeC0w}Ei*2_6#-5r153-tx03<7f8y0sfYGXIuI!z7b?zo8g5CH87V`z`rvjw{g>p~=?FTVT|v(wLoT~T#(^rR1c{($WU~AR4%BsrcbU^K}rP<4HJJ9 z#8d+nJ9bpv7V_t3Db>U3FJTAnDAh87*I6_L+r1RWTOO<0Eq|K16qOm}3id*d+Orad zBY$igsLI5YgoSo10J3IzVEuXfcr`dHMdbnD&SRZ?u*{Z@tCC*k15v`_f8i|c$)O)v z-^m-bFXTsUHa(7u^Fi@d)r;hP-}|BRJ>7XB}^I`&jQfz_txd`WK z=(~sGlGaxe<*`-tV1yMvufQ2CbnBvM4O?n&eV2(0vjyUGI4P(X0$x|fpDJv<#ZxS5 zWY|vAAv1SM5y&@$Yl>jk5!QJFyWSnE7lS6PiG7QK1!Q7T32ge`8xr(>;$7w$jw*pS zz}2rryvQ^I>WRNudRlP9o+NBx%??~6TaOmdd$O*eSI>A0i0OgD-okilIPR@@zNv$k zHM((Zgdl~f+Jv!3?(8JbS}JJ1;|WF&+rEQi<2~L=aNKS`wz5f}Uu+&2ny{gYt@AGYSA#44ZJ9jnHpIr|HwKU6tm1txC za`^WC)jEFUSXT(M$}0zc&^`7o136YJ#BPQg#?%Rdv{$v9oj9(Pba|rVYfK?gsl03TjlBPNb@hkA{O7VQJl-OB(!fZ!$ z=8n2xU3xU~5u2tB6>v@SX@mV)UPU$@S-tEdSdFI8DuLaxnG!9Z*L3xiA~>k|z6bUj zj8DA>VD-jX@8Nz`ofmeF82vVZRWZLq4(uqT-rgtqN7(cOFjjXg{~*SuF9!&((pU8X zo3>>?DT5=_ouau+wf%aiK_6BHeDrO}4W^{n8?B6wt7^SdKY_D8ipLoDoMeq|YTgtS z)13l#C3V^@Cx5nO(Lvbw6Y$Pp-cq67XaXtayx^nK8XWZr)ST4sj;MxF6WoAXsymX7 zUyLO_*(J1Z)(AyKi4{`IFKQdOJq@({iEC22?`7h2@h$!4V4=vEV}v4D;ti#5U zkx4tV?~;+TO6kG4VT!NrqfyQG141u!_*8F~M4nwIJq;`9DHU^tI^I$(9uq2#`{!)a z9!GnAOD(DD!+o-;s*YB^vQ&)Rtc7+a2v<U&T)d# zn&U0`?vF2YzDZ7AsiS(ICMue-?PpMZcA9DmGN>!fnn^qFo*@hLo2hTMSTQi70~CXa z`7E9tx_QxC`LmH5QQ(llZQIfwn5S>%ILW3b%k^B9 zLMH!uMJJqBRW#(xMxSP{Xjk*xSR=MI8%i}3?;T!;LIz{Ot++B*n~opUMDF%|LD|V} zi92vz4VV!3EMD5GrhS2XEbmFe#a#_#n`w3bdEI#&+t~~<{=;3Ji$wcX0aW2V{szU zJ)H;MBl{Y}W6a$1T+ktQv>>8rpX9hN*At0G(JN~0K2WiEm>qb5Ha39DHyF?O2CLA= z!Qa3jH4mKcR^r?6joIp(8T`8$x~SlSk)k!asy&1qvcitL=aWzNM^?}&zQ=hVtkEc* zZ)v`4GOu6FqR-ET^9sn)InHHkEg8<$(3((F`Sk-U-~uM55l(Nfa7!aV^!K;H{2hm( zQ1;2J3GQLW{Av^|qry&;v!PCh$hm73kdCdU2^8Wc?9vQ7%DTuYEw zM8#yY8C9`l(~DPh^oh5LZ>@vTn9aQf^Zsy~Ua$j(UMKcF3aOpOxWuW->ri9#alvEw z@~}KBcG$oxggswG&#qLGyWg6FWW7}cCv-9`m;Kvvo+J$~hKp(WZ#cKxZqnp;oeMy( zCI}xpmQ8%lruRNcwicDrOa1%t+MhN-47`2|=%*&Lgz5Q|B9#qznn+|O9g;)cl2b6l1XEp`0#E~GbBbz&!U1QZmMNne(<9{ znWL^zl@b%U1lLrO%vLhOK1vc3uXj<0<-1owF@dD*Rzmvoy zw072RK~x=yGuW!NDdeW8L-M8tP0W!nH}qY6R*)TSp44L7Cv89RzmZBcxpmS_+XB&+ zfvW`PJ?COsFWb_v2%-~|N*|9I!FxF@gOtvdoh0)i9h+@uiIHm8kw2Mvk7uDO?B7|k z({$Y7o+$k9O!O$_vD>7ud(z9U;=Rd=vE4%~EjS=N+4E4GfjZYw-`dAw(kodVUOC@>h0|%r?`kE92Sj zrfAe}VTxWkN61LKP5aqMF$8VEn z>*ut7|4#k{)>8#23=FE0SAxs+$6wP0v0~4j0(NiObs`OVMJ>c#6Z_r{fh5aes*;_e z>|0KWR#>AefE5xqbd|)b_L4qeik2(^Fp0Xs?mA(!Zjzl4S|jf!Sp*jldTKz=H?f17 z-qV(uDirY^yacrLOIs!0e|8TD!c}s0e>nnIJgJ2yEacI z55~7!zsZd+?jf0`Wclvk8OD3}Jd|}YPmoQm3e9BW&t#DASDWdM^EVjN7%#}(;H4pn zFb-~#2m+GHd6?8i%##=R1?_LqMR6SK^#T~J!ZUgS0F`i9FIfL{TnZ1>D!sSNA-~oj zaJ$};`NpTASlo_nV+6al8R{>yJ9vs*-I7i7aaM2W))=?6KE7h(KJeIvUE!fR81H22 z%~znFII0iu9{b^{JaGFun3`HJ$y98o zC2>=Fk7HUty})@|l5n^f^5_cynTfTSWrLTZLpY_cWGEO)Yx+V{YwXZZVqz8%d!84& z`k|wT1_)A2;*_njx^N@X?|KVec;KSc7~h6hl}d1FKZ#K&m;9QE^&gfH^x0c*N#jE| z%APsbByHw?(*-p~OmopjW{>AO!S-)EhsiR}W+w%S{?PIV{g^EVI;h^S-Rnyn-d_@} zWP^>x01>aF4*YuT(fa3>&I`b#7$pYC-NH#?$r!^U(>@6<@nZBD_WI*JM6KsHx)bY2 zV0k*&K_am*Ojt8oaGGxn9JmGjkC9V$d2|Dgg||eivAK}7x>N#O_E+)&K5&aaO5=~W zci3$6=*hL6%x#RuWWu*1YKx`X(8G{hXQVx`uQp8F37^uISj^qDUR@!iFlxC^;YLqt zAhGx>J=jY}+KBwnLAMKn1UR5(3U|P%i5N_6q|Vq_N8%m&V#Z@Z>geuSz#jf`gWM|5 zrmwvQ^J_*1pq?9M3bx-CTF8#NA4_JM=TMukF7o2)5H#EMxF835=~jq)50F@bz0qNS z1Va{*$^jBL!?T971&2`akCp8=cubybcuGC7&p?p;d#}gwjZP)Zn?@&;lQ7NN0-RR< z!oM~U|JQ#H)OgvXe4dQFnF~i>AAakF*~tF)cSflFp>kgKboCXYQkX~6qipyWFU*l~ zX}f0Ee`VQ|SzdNBI*z#OzNG(|5H`~V5nc4EL~uFV{widTBch4g;{y84iIsCWQWtpp z`eSCykQzTU6Q}4(W{XPjO#T|y(}Q26NQ1xVeT6Z>E_xtNC*}WU_CX|A%Q{tF2uV!T zQe=(0gUMZuFLbJb78C<0)dLJ)g*65Ne^@Yh26Jw(JBq~qgCw&x54h z-4_AY1tyYnrO)VT-O9wd@z&_;Cu2cE8Mk#Z_r)`jT&Q|RH9CBjAG$UPX@3y6*B(z9 zEU|+amdL>%Wb;x#Fvq8Ap`KYrf)wy>$P`X{$t{xD@RqjV%Z%NcZ;TIa91N^(Hr5#e zNM()Vh5*a%o1V_s)XhRUSW_Pu;7{xi55t`S(*)sGQIX4j`B^|d-v3RVaEm_ZU!Ni2 z)^luTAek?!zd8g0iK7f)dx}Q%M$d4a0fFumCLa_ z_EegJJe}}`CJ%LB3T%Pd=Z)e4wOx$iA3a*SP zh9Lj!@QmTGBN@kLg1_<>_!CwZI~)`S9bDS_L(=GL^8Q%E2x#DaX%E!&XguUK@HdiF zi!Nl%Z0&l4Bm#JF;|M?{U94jayz-`nz96^oB8CZd~U5YnADQlc=t+4Gj*+x?Qe z$`a29l1$$k3aNQafaP*T!52&)3OCTh+O8G;$L6&m$Kj#fWtWD}An(fR=pqwu{{E!t z=>1UD_NczC{kTvy+50ONWN8<0kSlq>q$CYO?_)-`*B-AJCCM|^1}n2ujc@|zOr>tJ z5pFc;d&qBk0{fW4VZr60vEoggH44Oera;5-x5uK@*le_9w#WMS9r>9XHlcHk!k(|U zu_ITwHH{2RdrF6vs`HO(gOF!jPeH($`Z#ir8&V*RW)=;@HKPIdx?#OBKwL?hdCZCw zZ?vJ{x}Z|h)CaN<-@8Tjl@`+J4gJtOm3K_8@(4j*a*K1|+}GbBnTOxd-thy_owWr_ zzlve)wZ|D_B$EtZT;|)btv#)^SMgNten=MCez_dti=<;=>c_AzJY3yI7`E4C+ZNtc zICA2^Z$$FGmPR~#Z1vJR0NvmF52xE3ro$dVH@0x@$cBQx3Q$Ua|X4*u4WPoh>?gggL7d$t}%n@PR4rXAmxhj40xDMRe(4C zh!28WRVE+H_URKrI&99N9qBQCExv6IJme*oT7VX~=8lixn?v2LSVK=|lI++(F+ODh zI-EuPAGk!zu>dCX<4RXWFjg8TS!DXN>8W5RU#mmd=SJ7b)>TjG0B3DZy#^LKkd?A%Yvn0T=hjE|&1dJA{+Tpr$u;@2Z>3z1<6u)$;p-?VTq%a+#+H>8bXXF2X)mu;5{eB)$|!!=Fld zILAt2T$e$r!sH6EA`I2v*sMpqyf&E-VsVRl|IbyrkM^Ef8 zmCQC>)TGQSG?$|;&nP3LKBZTiuo2e|l6k#z;YP7V3b>_@O&K^+d7)A z_D`o>ghZ9nwRj%`XUKkL_xM%$%h4d5!bl=I?}|Mq#lw(fgmLR%LirZ*>1g)Umi44* z)F=As_*cFYzKwwE$E7v%udPO)Bv}t6H1Pl++tz@XG`7lF9JzyP*z$vzp2*a25#|2>+;b_Z_P1#PqN4}+II9LV)51KYcy4GhM z#Gl5=K!@sOIDxOk8mwf@-0?$i30m?trXzOnQyB@G`HhlWlpmPB5XDQ*2o79ckJvej z5t!@0_ zeEL#y&bb%@L9-?RL;Hb66G2MNT;2&B)x0JGzG~Or;=isKhVrKhYsCJQ(>cfKMIdd&%s5dX=soPfvuT@)$(d!@)c*RN#4?{C8b-l~Z8LoUn8%z+@lxp9;r1(c#PNLF*kiWx3%;s$-VWSHu%O%6D6bIu14Qc zVq!QoN%%G9$~10c^+(ci>1R3)2SamHX8A2%#mX2Z9WoFcZ9@KZ&U$zwaKt)Vj*H>7 z)@)4E;Bf^@r@?vU;4}xc1p7||OW5cq*2v+c@S!dZ9h7~#b&YhaOQi<51v>HC`fx2% zl(+^dWd;gTjK%XkvhbR#Bvv_%{=e;o4%U_V`(@U_SIOZ!=`_Hol+nSF(_y|kIH~oK zhwG*T=#5));1H)b14PUD#n+kc*kuNAtjG8^+-jIv?|#LE9`;0YrcV)^)#36;S;t!! z$#dgedRKoV+?s041Uu?t>^~E<`D^&pOfY`^Cx_BxVTZ-+`f%AakMqR+;47N-I7*&_ zm7D;-0#pUioE2stpmj7rLyrKc^X zp{f0Z^AC)(-Y@&)??*W03c7#ZodnmFL(mv=u05WQS2#;@y!_Yo;nzLegudP0D5zPE z8^2o?e!_?hc=wy8mYMU$svFS}%b5QbpZ}ln1efoUxi0HNM(q4UkKEG$Q)09WY|Ynx z_rSp_&jqOHoF>cPaNG!?@n*9CJnwMSEC5d#PMHNiu56fqI?oyaWv=vRgE^#h=|Wye zWYtfZ&Y2s=lU_?-(S$3e5F)x|wj^A2K}@YQVqgHefi>pinD#c!N!Qk=yN&j(maHF~^^^Ra>UcH$g z*~wAYNm_LQ?UlGn>NX|>)i>q}0_;HJ2lkrPRdW8=8)`A5UP>!BqR&TF+C$d~ZHlvq z{lsdr*NE}YV%j{$fl=06i*ED^;DuZji_Oc~rH-$mwon~aib2e8yk#CB;wl_F4>o3X z;VNbYE`@JQeM3(&CrbU$x~UfgXFK-!Tb9iHNOF-s>1QgRRd;n z4{dlN?e&zZByQs$xcQ^CCw>VIQDr}qo0%^s4-}bn%H;=q*9$AqoI&FD0MZJN?j8Pk z&Ey)lD#*LZ&*>)IG9Q%i$OdP@T_4LjaidnHlW@qbGZVWmfNfqpqdWS2%o%Q6QWn7G zuf{sAfSHeRu&czvSUY67lLx+ zJbWv&GtvP;pu|E@h3;Knz$`WNhP35*3qed@j2g^8Ub+s=4cRQT#12}koH)(U1X7Zi zNsnPyHxNlyILZwK#Rc2Hf(u=^$cg(tnUdFIpHn+r<0e@oV!n=sO1v)apeg)J)I-`h z&K+p44p+Lv#5P?Rj4FE!Lw~TQ2P|KX{XJk2y>X6*#HdTa=c&w}I^5AyGS770Py?wZ zWV@cQ=#ikX*Kw<6FMqg3IxT)fGx0u85D_gi#xlX0>k*?nx9vi>y;Dku{pDNi*P|L=!Bq^?nZ;d~ml1E<*K~BP5enKa1?9nIiDYP~eu4q|`FuQ@r74#SF@-N0 zE}U*c3DNpnOqbdkB8Oarcn`7QaJ3sz9UX+?3g5I1pi}Q5(N;WU}Og)$UWv2PhK+6^$6l~9Za^aL`)RU6*FLchG zyI`vG^@cM*+`z|e%&)yNp%i&@9ty?~SV$c$Fw@@TF>kp;*B(}DmSgCxZ zRc0c-66!L9UTYJ`-!4nvTbVi)jOBd< zk!gCP3s>>7oQ!KJrmt7^MBe>oLMn%_m7vLHm`xLWtsjiI?c{s1+2sSh;wwg;3Oh6a zSFVKlLgiZ@c>7WAaKZDy)!|>+uf1=Oc}yCutlKB;&HJIRIHvVAG~>Qh2<`*?KC=#o zUXy@3pJ{^kMdsu*M?|q`73gs3ojVB%hQar%S$Sj~37p$ZwPJQM11%S!XI~!kLIrta z_kLto4){v0`TU{xzK9sboM5yj&rc8*L)DV;-BoZKHXhfk0&(yc>#qic0_}G-Y{1?j zq3BPbqabrG`^uA>@o$LvnKJ6OwBF`NSt#U)h+8d*FumvbFC9>O9In65Bl32^NAfuL zFGZTlir1=hz-P&S4Q#*#oVNyqnQnjqdbhjM4DpEUq!6nyflsPKS2?1wjpUzF=e` zL$uIew<*XoQcn=2b&_Xuhe{dolL1Ol-R4-&#VqjJcJu!!RLr7ml{0ejmN3DZH&oL~A&b%T6!V`wx_C$)38b+v>ZKW(bLNSh%nKeSq3nuuyr=j7SD8Xx|F!-f}*3j_*N!FX$n%y|NEp5^2$7$lOn~g3? ze~UJu*Q*B#6H4qHZo~OnF!g8C7-<1>bn-l8pmMUk_Skx(#Mbh?X(JPBwGfRj5f;OV z=jU+6gT4`~!TD6TQv-vXJX(X2H-h53-KHbjGHyQlfGamjcB;-hds-UxAq3@O|4ncj zh{Rc&fK+v7%cS|MLm+Zl6bwRFC!Y!;iM?tg8>W7PH0*p$U9l@PSIx0Xl4@tHLRlF6 zEKLlD6ln>Hj^zH|*!!z8i236-=WA#VE)O~((8=kms*KLOwWvRK2>}g$W5*Dvj}jLG z$Z-&BhDvst{U=XW+;%}D@vX3dZ1&oDt+x?gK!kQ1va#l&64@9_gvSbf}_Gw0ppV9a-X(; zBlSZ{X}P(anexsDHUAteD7u&Kn!_z#1zx2yN~kps-U1^%!m+K7>$n&mp|+}961%(! zLb`hdV`w^LYd5pSg*V9+@E7$`4o@t{A*e^>3qfS>TG`ApJ@1eYzYA&0oe|8BKp9$+ zuG`+W;qa}JNe~p8w-uPw_cg-TCk8$1*oWdKU zyKB3|S=4X&ZQcl%ZU*Mts3}!v>!U zg9%O?vy1tY=8M*Dw-bD=^WS;gtqDy;gXB=Fkm%nL&1J73C$B+*UYklo$)JV_msO8=8W&)uax zHy>QILlOhW-Yq*}F3qXF{Kdp!s3grC3HAMbzz?=rdW$Sqc}}k;Y0Ar1fYr?3KoA1f z7k;n}F}Fy?=Nx*@`KjFXXb9T%Tdln<{pS*-BKg4{*S z+wI=y2lmy1xp-zbYKA5K+c7ccC$lnS^Xy<3l@nVa&*b#%-wG@`M518FdTnTTP#u+RW#6_bm zi`j>G0vQqAKznr2LQ2v}NEzGhhcWB1|9)8gN}LCu4AZ@LwGlvjP7#~tx3Jb)SBP;{ zI;3Vaj)3!KYQ-1%{0<>#LEKouv5CfCc6a9+WZL}m~Y zA;kSVO8^;0c5S5Ry2abfRSQ8cabBcksOd}>ENxP(M1{SD_f@_yiY@DjiPOjrbSySL z2{J_>OiNe5xM8Mp>URQ1@dX5$ORm-l1+LlU=8%LzGx%iZhN!rEuuAo<{c z)l>Nfa|hDh@tZdYwjV$CFRSplMXrC$rXH@j(%R{MXzKoxg4^%z(1JT1me?wt!FGp% zSRL3dimB0akrc-qh8P4{M-3)@(jt^R>|NWC?cuAmp@m(%shS-4Rs$);T%%w=cjA5U zQ2nghL2joXfG|#pl0>-LTLiVG>1$7qzZcrXemvVqM&1ECN53yN%~M0swcg=^01k5W z;9eCqk%+VPblI*_>mT^`5wK%8V08@Rf5B1=#Ab<4!9(<~>W#zrW z`mf?Ukw+!fp)DIn@JeS_qCL(x1z{V#tpnG1@CF(1K7-y~ZO%_>nUAb}8wJ}tn*U|5 z&4HTLpR#D`lJU&TyBkn1$>;Vc_@9ZtClrt#TzHE-s?Mfr(f#?itCyjU=Y-u3(B=*t zTY80b{g6ZdOzaP#l(xrVb*r%daq#=>>TS+kTCf~(j~)n4Q8vE=rwb9u&yK#L{<4!y z6;?U{TH(nf;mqBR{h@lj*$Fsk1}-|5Xoi#E7f5YUa{>UYgmq2=!TLK|+AJIrjP?%c zCpd)Z_l2B#coVU?`HT82`fK$L&NjPn+)40>A0F}3Qpi%NSK-RVZ*3ySr*}@?&zL^= z3$JC)Yp@hz*v>1IIMKz+WNk?*UElEtlZkCl!AkPal<_@|PXGnn{}jv{GFHK3?(n`! zg7Xc7j_xRRpPs7zg(9)-Zi0eIH zi7VQ2k$lU`qlHg9qIw*88sG|19H%7_qFuff($#pz8Q4W#9Cikr&SD+SitnLt zu<$<%Y@p|-%kuRTHlaN@4}KMGzi>sq5L-q|BzQ=)Wc=8x-R=s)LmS|y*b+m2m8R1J z<)irQ?wio8&qaxNT(m?R-;0)vQ=5{ti|_Ht9~oXgDR29FS#a!S;s^jAyKO4p{qTC! zecU*~0Zuq}y`B zWPa$6^u_3Xw>NEXw#SrusdeU(2Y(?OAAY85&Xh~bLRX@w{Rx62-EdOkh7PDF{YTbO zgX|sBvatbZ!d=0c_3EIitHfeb(FI97B&C#JfGzDib~Q8VRUq=ijTc}`A9UZ(ELh=&Zeo`h ziAm>(5v4q~zX)4$Ax6@(^Kgq^sO@7P#nF3&hrPR4GXsU`pJf6TH!}ZzIp=(p$SN~v zmsD#s%D@19yXE-r7Y#+rWs+8vMVl=`-*P&>jk-dJubo3WY-xw=yRAZTBt3|WnT~L#2wR1A;T&Pz`Q2E1Z?T^ z6E~^(oyExBP54Y^^Sm<`UD!y@PHCha@2|7jb}kfM!7i79Nu0%Dm%#uq4i{gBX+Qjo z1nVMr4(QA!uFfapfaydZumcYh+bcjWr{A1olCl345J;18PU|iNGFL zf#8GjzN;XjM&g>Q0I5bCd=2n&6^^?GBWq*z>oAY4Sb80NNnCawYfogf=^0b)l-NMo zWpa90E}b^#sZ_~gCUU?r*I~bHBAuB zD8I1Y4VdAihqEBTx62J^`U=Ov!!TNVSX=&(_GJG0x}EGImt*Ahvv<@8OK$?4+*5^X zVr~1gi@kU62+7@3MrUnQhQyB1H^Ha6Fj0)|LMfTaSab`l$O~37%tDg@^mVG0Ac^_( z-OcVWJ3}sx|46UleYXJ52W}+tCr5+86)6RJQ7a3WD_!$z9qOiekjJ}jOSF5(`<1rs z(2qCfXvBtoNIEzX@4PM1(OCGXs14OSADn`wxHdwyg0S1*b+_;Kmc+I0Kb&$($_{;=Kd~8>9=)K4p`L(|cP> zo_4FDt6ybGXI$}x3II`eB~ZKU29CQ2+fk1z@4@a3EK*gRnlu~amR%ftI}-cH!S3D1 zIdLG=q%w6h`jQiBz@q!`qailC53i`NW6>JO;R2o&_a#Qk&$g+e6{)(|;=V*j-N!k< zZ6Q-kr=n4~?mhs2LT7zcVZx%l*d<<~F#X-jmk|k^CI4cG+T+V1M44N)q=IZ6lLtzC%|nSr=*1Hq1x0S-oi3bP z!5fmX;|(3XSd4z&pNwXHO%^07|1cG9XxV#0Clt|_PO4~dw>fCz-W0*Z0iLdc&p(1o zna8;J5gbmRKA$Ft0gv2Oxat|7iN=ce)B{Ts0F@TwQwad8{WvQD#Qu4#ln7h=zEKG+ zo;MFtBbp_`-R>;U?r6dsC-lTgxC+oER+TgHt0tYDN@>ciZ07gTr6{;-rr?XWBEgs zGqwCiCKPATnt?$KS`&aqV|_UsqUrDVg4@-+OO=Zl@|mO>7tqS88b(p$0a?<+T3_?S zodlH{TjQ?WYum3x%d?Vx>3M(|I)5z~H!9&Zqn=#f`H==UPh!%r zEf4T_F`>-j0V~mP?9T%)Y~nrJ;Mg8Eu5Ied^?%wx-Z+1vkOq{8O}vCn6+mL6Hk{>O z*ZZM39Hjtzb8uKFV|RN!T8dLzKhDBM*aWl0x9$*y~!z`?cnG02;K*e40b{Dw~@ zfqO_}coLJ1MFa>~xqFGc@bOG=T8SdC?okTiS_{J*S8;Kw&1B*JQd)#{DD(%_jVWL> zltHH;5ezehD;GUDqs9&7zL6^z%ISs#1Ev&fB*P76anTMNPe^6qx%ot!S-3rTPqSC$ zI_QE0z_4SoO+cItl!Z+Ov-p(Hs~8UFBuh-xs~R0prn07@&A|`{UlkAhul$&%DX_JT zqxztW@5e!%4X+fK^AjAE0&e^_u-+56FD&f#N$xw{3+?$P9MWXSsB!PtG=j#HOY4ukou=ZrZYpP542Pe2fXT?~Q2EF`L{By}|PkcKs zYa+{(8%dOPB`saKR&E>^+M3oU4d#%8_oYb`s?TKCr53AgAZv_EIsoYe4ojEBoBe2T zVoaW`MWrrYg3P?&b&TxL%0=YB@K1Eiv~Xq`_I(OHIN<1~5`~!y+Q?|_wHCCvY7X|{ zriC>T<%NG~`ny|?uEK&Gaa0CiRVUn-0T>$OV1W8N+aNg(%LH910T*Y2=A^)yS@5YB z_Q?WoUZ`x91t3tI%hcm1{$18tDTWF6ZAi*T<{F86&(5<5!Cork9W5{ zv2zWHI#EPDwIEH)6${iM;Gd6wd&WrjPV;QjnmviRc^Q?5jZ%Ed?2Fb`2`5_b;JB!l zZOe%Hjh2kl*PSnDGT$HBvR&a@?hq$ZX)vM<9zpPd@BPBjJUyc|ICrfkBKzagcN9RqgK~uP-;)iL|pLWZk9HYT;Bqk`qU`V z6MGa&Og#ELu|)$=y&zsDo$bv{Jl{-eX1}8Gy@TZ9pkOpaL)hFD0`0dYH?a|QqSTtiF#H zLC|y_yb1L*M8$w;P%fYtymbTIUhpkD7C{o&|%*}HGx%%yZ?zEWG-ZUTARPzxxED!PvhN44wnSmhs-JT#ysrK@jQI zRBLjVoj#ME!}92lO^^9A$R3r<{nO@N+#Z@~XKQgIv>Hg1WdT?XjNijz24Ro)z|$tB z_(L@kUqFkf_h33R#||F=gQu!YPW<|_)lMDu0SpsvMQ#aa0Q%O?j<@aI{~(sO!%^g% z0M2tm6UiIULjACM74$OiBrlDym<+KHc2#i2+8t-Xw_w$2sRCdP!e$@g?&oNqj)JS4 zY0;1S11Fm1mj!e~za4zE#zK^F@PF|{{?(Tg9cUmfdyA;q*@gU6D=4@%OE_Do-p9VZ zxDIz3$@%Za^z>aRpE=*R)kXCa%+dn8z+>*bMB&%hS0$3h^b#`S=m(0IJMy_`C3u5g z7ToiXKOU0O+)A?C|1;Ic#n8Q|#4ms!fHkUNKcMh@wZx<&RKQwaEg7ja5XV$Qz~Bik zqz&KOgZMhPbsU15K=xWQoIhMY!%feBRWJJts`dY^3Z`EJR}IQm0|o0{Y(VjTa`;m%ZIrBmw1Br^2$4^Bf9XwJSp#(8iKSn_ z9evGbKjiKbEeMfKPsN;KNeR&|%c1ifQl&~*sTM*2H~0zPK}{PY;jT{nNCKx8v_>)1 z0w!tWs9JCWnm5yo|MYhW>N7^z{-muc<{Za2kO3vdR5!L0uZCxQ1qSmT2Y&^PGBkS( zs*fClV&a+wS;O7_{b*idBMBS&j27bJuMja+fNkp}38J_WBKdHvR1dn1%J;?mD{KmX znnm=T_OR8P?M&GZLAE#FTAOn@-b9YA?vT9U=N`)z99a)LC`vlR&rlwZyyF||B@>mr z4t;av=jpm5q0Q(R)%FuHT$-lSG zc;p4`e@@%eUi*Lc8S`E{+07@L$jv|Y$P1jdds?mK6KKEkrjg((?i?D$ zUf$6}452;gmi{mS+Doi0+iQbiXQdVjw+abaKUh%@GT43>IIIjhcI<+fREIV}AjJjj5KVV)Q z>}vVw1B`zuC_@li(!-XqnbA#T;fN{88u|f`%AviH@oT~M^Ty64PjxA0(>EPkNlv@g$K3`##yy;S}ae!mk zNu)iuwGy~U+d^p%t`upT%>ALKB?!T>m%DNGxQU!Q-z9lVd_x;uRGk*)VhOd~x!i~* zBJx*F9*2FpXh%R|irt!9zXh8q!|ti$C}jZnGn}HVJybMrgyX|zT&E1E zRgvQSs1e$wV0{(sp{A(^)>*ZF{AvB~;;%i0@)uU+HUcqb4Yo_>aIlJYYmM34D%$fQ z?}NIkwuz;NbCKLt-5d%*m2eWNyN;}E zn|(vlx`}$pH*}s!EkE`|zWy@=RnLRR#>gT!G$qw}>m?`S7By`X(E$HUX)`ue2S`H5 zn!2`0XxCvm%&1F?1v{am?PYV8Zzsbp>n9srG-9N?5lK{6KYA#qa-lFh}A%>KX68A-#UwmjSIp>xPDXW4oC*Tg`@ zBstoljJfYKvGr!5JJ6r**>}w1r}hwn7uQ{TwraO~ADPZMbDad~ zJpk}fs}&xiyA7R~AK0{~wvlD5*S7@K8Znelo2{&@f9{&jm!_ul7yo_n@?&bjBr;cPu_D5oa-mG>Cj0yC*! z#XNnkhg0b4L?(f#^J^fLyp|n~jM9yb2r$x78 z#aR%(6C3D7Pu83&RY=;{S<}iC%F+KUOQ@7p%MR*_)poX#gDoC(_4EVEQ@mSiF7pLb zFLf7Z19!KH4Wy8!&=B^;8;2XhW=+8oc+zb6O_aR;0B(gx*E#&P%(+%+`HIdxizX&+ zCNy$EPZZiP5^B$c7{Q!EoN5F+pNtz6PX$=V78spOfn?q+xU3%ClN({DpYV=3tn(RPQPut@L|!t}GiDJ&D}we{kLy6^tf;i-^1vh6FG+tICMo>%~8n*xtOn*LMh^%H0H0#JX()xEg= zJ^y5uC`F^kkvq&8uK(#Q{s~9JIWg9hd&jN365hBG+w=y?{$4iNOQA*ju~+f?*f{8I_J|3ObBcDf15ME&hPlklrrwBmBP|8T4>!$o;fHpCTE(;g|!{Rv%K?_lHK}rP^}Icsv828w5wqz%{$dq zfjh`(l74&6EO0~xtUxkzBcgWp?`_PQ)biq{IXblv#6C3vh zRp_vMgaE3t^o6hSz_EQndwFfuUyzy84YkLPXU=({xGPuqfCo` zIgC^x(ZS6fLeEv_$gZ3H=zC%wd5VGk9?~laE{a~`i_%t+}sZQlSYj9&ft^;Sn z#bW+htlyvO7Ctx4m$|r^t6GGwIIoH4OGkRwyG#;rDj4nN=rjBK)cp|FdcG%%4F=G~ z9iGx&IJZC7!L`QcoMh?s87OH~Ba<`4>b)0spVva#)17Gs?&!~raG&>$=d)ko1Fwx@ zqQ{j#?}dZXTS?#1BAO8UU%3;`vgJCsFYVIR`v_Rxr--eXOuZjz5_Yj}Biet5(&Eso z<&L<;mYbgP+9SeCk>jM(nRF(p{OA`a7S9D$+sT01FVFC7gZ}#Zo6A%j>6Bb^c#Dzv zU``up{o+A8QnQN{N`|=QlPc!%&w}y6bdlH#YQb&Q)uDT0AC)S!_ff$fUM$A2HFlAB z_m(!YZLBMeD7RD^_&*3ZwAQB^7?Vy~mRnhdpHjdDY#vzKv45vE6i9xXNmc;SXa`d>FeFZ0M zok`UWIHue^>`Sw8gJQHJ)^UO+9rG1U5RP@?W=2XszmjBkj6-X3yEE~v^<;slF7Q4X z6W4{NA0H(-D4T$CDz%vX2kkf~Y6n+o^XzW44TleaGsI?`J%F2*;+$Y92-I1Dw)?R! zZtn^@E#mI`O87HP=pz>gLG6cSXl*sSO2*)=XGG50ZDi8$UR3V0o&V^+m8c2FsgiR4 zw1(r=r$iYJt;BdkFFNmiGhf^%8DeCLoB=33aFa6-^i#}t;kpe_;HT5dLMDFRz*QpG z>^6daI@7-%c)tsGs%K)r9nW?cXE=5ibDYQLMdHbDl9pTZ>BGhMl*(#7c6Wt055pO* zz(dk^q)9`u+?DH)Qm=nXI=4Lz%^IV|M5RTqt_g=6sFCY0=}N!${wO8A!_eZ3vzYyt zuayfc-#wAP4$`1S_q7F1wxLKQ=!#UJ>OYX}>2^(cp;{sr-O!*>x=*F^Qb)sWlGK6R zG|qjQ1DcBU-GG~iV!j*fwFypi8*I`*Bp5H-mSp=ObpyfsXlPQ@K= zfd5h0br3MKb|-D=fRZS5X8bee=q;Xig%h*ZSAJTpLrZbSAdribAV{L( z@wZ=q!2H)-$Ol~ykFFoCZ5D)Te-M2A9m*uNsk3W^pKYB;MzR^*hr>O%5gb$9RDLCv zdvMd$C*YtVup!@Y>JU&b#$z2%u3O|4z8A_!c4AKX{qqIkDV^DN@BaK6VUvV64@eS4`vVvch?L8hihE%kY5y$Bhq9bx8-I zzgAzX2o$Y^fLD$e7c!LJu3*N}nB)}*yZvkS<$?BrCRZaC75>*lJy>N!(IJ2pN+ z>;mV*&*`T0_Gk;GO8x~`dvQZk0;eA;RY-~_Tbhbln=TvQQ+yUE7MzWAbLm8-^Z!Cr zgHq#ErS?8urY|l9qta+C4LVzMq*5e&JkC)HmjB5glcK~btMB^aG&qB-yLCd;{T$xti@tuv{`N1a&i@>om7j1- zP)PKeTZ!V7Eejxczuuo4G0D$m8*?Z34K}NaSlmLcFEOV*w?{}TUoJvdYv(W% zrFAdtRdwvdXL4x2Iqiir0>C5?fO$hdCM_o#`(9V?JZC-!MR_5W$QJ%j9s> z6wD6T*thDK=>F-4E1R+1>L z23ObpvBRkUl~&K+IBO(mvy*Z4NI;tbm=^?0^Dzzy;%3_2cg$vPzxf(>k-^P@r1z3; zv>VnL#dUVqnej^yIeQH1T(h4!OxxR5w8B%H?9$bs+y@r~)9}JkV4L>Fb)!Hu{J|Zg zxU-z7J6pz74(ca*v(|)kd1^oxZMZ1-jI&0=$eUO)n(N`Z?Ai?`C+eYNEn05egACec zM8i^tq9bj+p-#BX7@(nTIAjc%3yX2`7+A~#+yD*dh1xX%)=8p%qaLxOe_h5*k9Dx(Zb3;9Cp3PS(T8YcQGBwM9z{TQ8 zfH$E+EvnYn%Tr-%e1kb5++x?Y19w8kkOXAjdpe6g)ZX0ZR6RzYNYpMZYKNOcU=dAo zw@6#ZB*LXPn+X6$7aTGHfG@*E6S&2Z&%*Ph9RZ6_;z$E!-fdOzxDaJnWn%P(Y%l9W z7p%&YCjDN3=9%AN!h7~W-Ky3JP2|f1E;Yrqp|FN7uL^ux`IFE*%$W$sF_%GM%JPZrK{*z(T4_fLgeaLfjT$sCd&Mi@_23GMuX|{Av`U%g! zFdXB07!DV+ox)(!yty-!K4J|V9R?@E%|`m=*P)XTSHq*L!>4qm%XrSIdZy4F<=tD{ z1`s(NuSuJ5&=e5a$Id{KE4+FN=%xHOj|F?U;~{T;(G>6qdCnCux8hEksmNgEbNQ4w z4Vr`b;eb=_I9AbYz&YVuH;%hjAb1w*!@234{XyOkFB?4-{@ER8PX)Z2j$7f$DZqq% zV}Ih*-lF`&PvqlFjA%%a78;F%BVdWw?%ovO)M1b;E;RyX*cPhGbhPTd(G~5V{z`87 zttU%D;R>uUazur}phG zn#vnRKCa+Vy9?2RySQ!|SSu#S+Y0V#cq7ZB>`Em3Glrt~<|oOEt>8VzPLaUbMN5uK zg6;j$`%mmQF0|Jb%`du00%iT_++n{ZdvF#E1uaY-$qjRVbtp%AN?nNjg@(#CtD=oV zpSz31H!4Z^3tM_}dW`fl4xSEcZrHzE>LwPWoQEb%z>e!>AeslMQ=9j=(mwd~bU-3w zi`CNaxDjUH_@pFBhGYFGZbXXEIvM>u$=>6%VN1oAK;eD7wJS}je5Iu4rbADd*gIfR zk~jr){28vsG;sY`B`w%r9ahHB(($J#uCeQJQ?`?jH*Tp|2mH5}4c)2t?+T?ON*BA& z;6{X-gnwYJ<7AgU;;2(?qj zfc2uQ=Rc6SHLpqKR1S^CwKKt~_~77T)KT_=uNb0AQ=A;%PArzcB_)%)(x2QkDIY3k zgIYTaTr!qlbENZde>q zu%+(CU8Lhj&4co%MYF+Gnl(IAlB*q#oG9B`0)WKZ`GBx$z=Eq5`N8pO^-S3PetSy*mmD~T6Cwimu7 zZQ65Bq8<^09Bn1a{;D7~fZK|#=W_k*QYI8JCp~ZclH7%3>#+S+)BtD91@P1d?<@BM z4Ec_$=K^@DUshM-Y=%;&=!!SPvSn)ob15cdG z-rFkr;<^}cN?i$TR$_}PEg-_jq-sDBWW3pHM5kmPk!ZB8M4~n3%>KyKv?_CE8wu## zlh&SoFA2kuv0OJN=Ordg93B>^Q?>Q=J96ia2_=&2QV%ST1*>g&Q-Rbka{&sC-@;Tn zzrHZ6s`&GkL`~q*HQu|VgEbRSSbZ2%N11PCQl&QcJy|oCODFE%AiWG(OYQ1js5%be zd2!rckeod=4y@a+c8h)BuIPM#t+Sr5bn%LKGzt69hX|g7JB$Sm0aFk}WXuPVyyMj~ zpVZKm=<*A87V#B9dR4IyuCTf=kcQ)q`LH#;vC{%z4Bv3%0{C*l`?9jnfIrD2doel8 zy#YyLSCH%RhXU#T>KRG}bL(MyCI?G58iu&N>18%a7{pY@nNo^=hmg-=?QIQd#)KhfltHqnu4M0 zmHxjF+_VrF&hX%fBmI>zc=6ah9&8nRaCJQB4z1p77le&#xp2mh^YZ9ZUFnyq z5V!$vnE+H`|D`}M0*533?>mbN;g`r53l3Vi>>(4I>(wp_k9oMr*PPOziw7E`w5Lue zW&SH>f8+lughTQ?$rO34LB=28~#DG{EH(~x(q)S=Jn zkMjLTuSAt`?26SD$7I4Wrtd3_i$N;BE|i*|n2GK;uVc z-jhD%^hXEQTOyW#n?JBpXwluZa_TZ&YV_--w8+yN{QX5RoHM#UQn~=^CjsH`v40Y< z)=9JeFf9TbW6uj`{+THC_A;Vd6Atoo%aAs z22ukYyo?*hk;WAAcjLlkFnt_uQ2f&;f3KGz)?W_n8j`0k2R};olI#4;;KeADu4Y~< z=rz4s_`|!6eCQ^odYcDUoP?um4X#(r(ha+>0QMC3^p3kCCJw!dS5mbqsdxVBQn3xF zNPoAP(g#?wg6rJc&R-dJZPc<7Gd#FY?6BH0+MJoemt^0Jh*6Cd6>TrLVC9J zwU(tU@j<3Ie;p9^hCD-=bkrzhfjOz%*Y5ejpQKU7PzUzXHYQd&>aO&A5|J-Y+~14- zwCF6$#g^*>{S zfH<~iTo2|Nyh_gb*?w*zS&kmGCvJxBibSIu!P|0C@P5c_=L9rMwwnp*qED56FX7^W z^s^^Dwm7+L6QJ-tT(l9WXx3TebEhcQyO{vg%2qoB!=5GmLsri-*kuS8TZ%zW*Z*-VE&W1Wtvgl-s{_nJ?_^G)i=A>jo0m z!-($mvw)b+W1 zGktwE9xK}Sgpf+W$M3##1v_vg428=P8C!rZ`^?ru$0i8Dj^7H8cGc@UF_+Y4H(s>= z-3QWClrGVIprJ4uyv=;-?j6Pm#+XXxBpg9 zEi!QKR$v-&Z@Ve)2K~YHieJBC*DQ$ceRYeAnk()LSnRQ+@}r;LyTNiVYYjSNb{E++ z+>!{LOpb33Kl01@+g$0`Uy~k;Y?A&B4n;Ngdzm%z-Yt3J+bQ!z<~<`bELoLc_HT~ zTqZx@dN=x=jffyi`q|K{S7%A;aTW~a2#dN2G_YJTOLX=NzIu0OWS=*LIg7#dI=@jB zi%FJ4Kbq|rF6fFavw^bGaBw!@LQAG4Brz?@2JZgIs#dVeZX}!njdwx^8TQ`^lHd-` zfhWz-cT}lQzuhpngcUhg(04FN z4L(kOrF5lt)4Ixb;oRNuQSnZbPzdJi0e&0mu#Aa_2?>E@T-iZ#bfFg2#^HNFD2~OF zJz$d9II}lezVtDZG}ir{Ktfg=CwXbz=>Z?UELLa+UQC<43X9=`zszAn-iyfPxIA)h zLl644Vz}%+UcDELVH!_-Wc%hgq8+CMd=}C8iieZY5&0xlTc2{SsmnaD{ysp!x0t^V z0I#9dN49IGKU#|u_W{Q?#OgWRC_C9ycE0zKo<>@;FIe(Gy(b89A^|O(uoQE6s!_}%|4R*-Cu7L@H1rx)G(eWEZ z-rbq{%=4E0jk8DOh#`}FOqRru>75^wh0|T>`OLwxzqg&xvb@^CJRIxJv=pBLt@ZN6F7%{rFE2%C4(E`R=>ZxaWi7S=eWSiu ziy8!E~JZUeP@Cf(`6t>*=~wIZ}UM2l%` zzA!6Lq#d!29QW6ukvRMacROd!wlHLbTaN($9EF39!s+*#ekU|=#xNxMUaUj{RWB}j z?ju^N@60(UY;QS}be^XW+4<=4hhpExX9XFi@!0g7x1<(w@{?MdwhVz+I zXMW2e^~RsbK9_#6qb;9L+58<>6pDRD?>P{2dzwrNTo(na2+|R*!`iA$F%KME%+B^g1 z@G&!Vg$Hvx%gbYR=$9Fpf}re0=p4>I2gtn~x156y7vkXafTEwWZ%K6V>hqwOt)4T1 zIiF}8M>tT&fmFs@(@mBuC8@YkF?ywcAU_=IUjUdL#eNrn6ZXQf7r1UIzUk&@cBKV# zzGiNd-_+Uz{+7cM(`lC)2;r-wCO3+yyqP;3q}Vkbpy zHE#5)usKSOIXlozLoW+nxeY;cy#IN@RFOl!9d>>~T?EgUETpxfs`+WL89LM{Mxc$IXT3rP8s9{~!z>&oAB0%R54!Q{J zX4q$KX~R8)#^ThA&>_VmTLSBa4xG6?6=ntfVh}9^`xgUT$K%9e*tHm3r)cuAQwjW7 zhQk$2C!A3N9@bMmmP4A|YQ-;!xU~dg1KO>Z@&~O=KxgOeU`E&O+OSdhJldu5O^7Ky zi5p6Rdj@S#m-c^>gydesnP+b^vn=7k^gWdoa4+Es=9j@s!6Z@!78kIDl>r)!UF^q% zn*XwOLSeuyx%z5zYWOQj@CCb;gITN3w7&uu99_rOJ{5Hps57Q4uBH&d|2di51Q21B`?ffY5zvCv)9;df54!Z$w@=Sv`PVdfxPj$}_D~o=snnF3l z-53YLjod~IhicQMI7kL6tBbIa**#~H2JyYIjvUO?rXgbtWCl_fg~dz;Fa3p^6wPLA zTnWfE9!Z&c*6<~Eq^fB%aq8KFe%(1tHYk~g{BU9=VEj8=R|!Y3hlaysR*vRqe9tk= zSpC#s6SBZEjkupOr0V;I%1&WdIS`UIj+O(%6X0q&tfmaN%E6;>z*Ha$z?KC5&&MGI ztgY_9Y*7X-BB1izU+pbx%&NupNe;0`kU|OZJNb;Yvj-bcDONHq{`u;&5^`P~NVWkg9(FAm&D=$b=#xH7*bFYR9>kKn}LgFhe~t=Q2QiZzd1IVxljDEAl(exC{rvOBt4^ zZqaP!7cB2ONi?`)AE{2zrFtvfP`^NT$d%O!GiVxi2vJ@i8%6cc8rZWvU(1*pllhpb zqPF70WM^kCwbe9-3l*zt0MkITuK}q~u<;dujN4ImakR?j5Ru*)DOsCqO;7PI@v9CE zLo0CN6CT3eidojX(=lI=Fv!fX>U?*^dS5$_Ixqa7cr6o%a3Ms!l!i7(#Z4uD(h zO*cR?S)AP{c!d3Kg6J~Gu{WXrq3rX@WI8E0|0XE97TEn3AmA39af_SjUiPX%s%0?| zeT>g#ZlQ(1LAYw&smhOAP3ZCCOQhL2xK2r=sdcbzy8_QKM|QH-6$T92Do?%1qlv?| zOJi|k9f(Yg>mw>4Yu9b~rVZHdHvHmiT_Ko<7s8(kr#AdUvv7E?^3umCkkqaIHusaA zWz}h>spR@aTk$RkElF@5K|kW=J0PC=USBUgfGzLB8-C#6yFi8=jm6UN@AJ?EoO&1d z#gY9-C2y=!P$F)+3%35AIJchbHtBJ=gOcH?I)hw4zg*Po;924t)Rjv9eB?ivy&Q$@ zH(`GJ_sV6WKGo-lJJFyUu+u%jQz(^n4_34lXWs){nak~hK7R;>q6;?nfu8Q*p!>k{ z^zmtEI7h!&pl(?I0qEgo9mCLCou5o>G+eq!v^1)kY}s!~Tbz5N0dxeqUXaAZw7GX; zMBO&z0-Xzm0g$qQzcLdLQOT)yV*D-{CC!zf53!g&bT1L@Kp!UsXpyN5tQ ztM^?Jq#l4U5nTNcWb(&potWyxrm=~l=M|4h-d;Pp0P`NfPP^$Z=a;-54pWCb0#{Od>kTEoD!rz&Q5`PcukLheDC7e$1v&V{>Wz&QlL-% zV@QY7b>=ls#a&SS_jb%l_->F`eg7fXvOwsxS67r9%zxKHUu7i-Yv3-;@fbbR_PC_#HaE=DCq#Y`n}%d#sZ=Id1wRBs9hs`C!aB$q2{B;?_A z#C!9a2`mqPN}PMOkiRpn=+G^lrTNq6Alt{6nf;44UL*E!sipUMYx)=GyaQDCz)tUB zx%+YWdk}cvah9Sn#?|lPCb+Kc9wrfYB^p(>=o?uuMVD5;-zU9+gFgU0&3bf5>braq z1i%)309FMi>SjP>-&@PQ6rTJToCuGQOEJG0E-_lK+$kL~Yys-~eFzh}p9fwb!vgDw ze-}-9)99FV<+u50+Q?6Q)^6-fmXRkDE|Gg2Q@U!#e>HkCL|(4-oky<|1doKe8{+sqdfTmqZ^={WNIjuzF$9iKt2Kv9ks*y?XMx&?S4 z;X25gu)GCiM(<8TWZ(5%Ak4nC1@LbVPW=Mrqc^Ju%O)B-A;WZbQ1`f7hQup-KN)|< zo^I|kKz94mKuAm8^aT_R`(dA?6JJ*Fc>Zkl;%1cr{-Hk%E%x~~{vx{w7x#sHO z@BJSr(MFZji4jc_#gycb4_)-=qaZ&t_FjK-@304lzk$*cm$&z&Ut&~%+79k-#@*UKw5%pQ%dv=}oP^Z2$9QC83mGV`kqt@-6F z$Q(KXeeh%UH&9FHH%T=5)?Kpwdp|1lcJSfi$aVm-70ze}Ug3k~@Wd(jWrM763;dZ9 zoe?8=ksgAw2C*-@Es=zY(i1-uy#@zrzrH6*Ef|i>^6Z$f)Y6F%6~ufc+vYh?Ztfg` zUh51rrIX4`Qh4uot}!S4$#l4RQ1l%XVYRdzfu3_b9EOa4fGRgqx0c_Kv=TCJ`u_j~ zT!HJMaeZ>zTp8%9O5J!7<0w7>xp-#1x25j0jg*JXbvXMc49l)=W>SUZ%6wsS`l`xQ z&#u%Z%UF`7IUlNih5Q18(rhCuX{pN!s9NCvTcN5yJtR@1i{Z?d{~M0hTBD!(B;vZ? zz=99-tq`0&z|8Na_8>Y?7#o~VeERgKLLA-!aW#2@kEM$Er(I{**&HG#x{7_^GKa>u zF4PYo;%WGjuM%cs`Guw7>!+IcuyTV_v>g`P=p@BVpHYLs{;Oj3GO|}#a+8eLxV0o`DeUr zVYWIi$~8OS4^uYPW{OCksfWqNEPWdM)L2$rI0~g@XY(L;PIfgfEWGP`@YrfwDbGQw z2v)B#)MMBdY5lA5$Y?+t6FJ9hnN5yVwh)8OgF)j@R_A#@a6pkdFBB|X zI-PhC(Yd$#^22(Cq7AWHh$XqUf4(amRdiaOq@zKvW>V?5!4r`D zT*!=Q_O40#8`pK>DX6le6MX1&?9>^WC>#z=%6pvYGrQAt^l8Lr=6vVd?+N8w>SeRj zdeCKGe@RBi&qT*x)GPa|5{fMYp9zn5tU<0?dNlUXV!of_a^$A(qiTMv-G%3`UW0?X z@WMEqvTlM|wGjT)ocsKkAhBP6pi^TG&)F&O;Up&0nlZ0lc&q(58Cutu&NrLQ&&LZn zJO}rQVK)427hI66g&hNtxa6_W{zM^}BekIodwWZKa2*Wg9Qb}mvIDDkK^*!Z}|XFIlH*$sZu$Wwv^Oy`-J!B zN6B|i>rBmTjtc%@OATH+XXT7(6=!gv2JgM5pd(fA{2dSN#rfTMY3kM3Nt5RWQHPP5 zJO|C3jT;2-PS`^g%xp~_RDssEWg`Bv13AK5mTiQm$*0Y@87AQ}&2_OqIxj4N-$(cO8Wkvon5-ItLVwU)9XNX`a0iv!>&u&pbf zz7qEG`U$}Cz0ipXoE>#8;zS5oS^QB*UtpdN&)GBo{t;zJXwJwSVC~D;I{M zkrhd*$V~~M9_QDS_j}|-w7DyFTV^E-$`zv!^8zLtFS)vs(ErLwO-@&Ov!RnrBXc}5 z9v-D?{(tAF=JTsat6l}ko1#IlJnAc35GsOdD)q2Fs2$GH<%MdFo8~CHCg4L%QM4}4 z+4b|jMXF{~uC~waRb+-v1<9P#ot}F5Ra$dwGSn@p*5#!|=7+RP8-mB88qQwk@Wq?f zlkdVpl9^#h>xZ0?W~44aTXF-K41WK{RN_4797zZCF>tQ>w92w(K=$i6+8FrH z4;uqz8ikczbC^gU@WMr04zzM+PcM34LXMK6*Br}dD!&&k2a0EbYPL6pM+17_DE*5q zd-9?n;b&@30DJ0}qskk@s^nK-Ws>NOW&z1}?Mlnyw9vvoW8fBNQ%_!|-DHjXOb4Yw z_(GBIm-FP-6fNqFb4+-%)FUv*6!>|&btJOH*`}~F-niP7R~((XNFqHo&IWP6LlG

QA}<}^p@rIja@;l^Gd z&1(McmBL+=-tgxVe+_9K_UjEuSc4OL^FldgBQAU0!gcUZaNKtE=3%gOWcLBoSsmo9 zWC*I@bGWXH;KY>yWK54P;FoEJ?&`NNkIQq84qiG)*3Dxens!%c$Uw8*pe z!NrmSZy7mliQJvoTH)}&VZIlOP05NY-RPZQBpZthxjZ+glVODUilukI_{Idc%b&Pt zQk^@4WsuN|2VXcC^Lel-U2r~+m+9mc!46Lk*IDK}{@ZPNpCVJ*?H!iB#gS$}zzJAl z#*5J38I}n$>+<~)H0qgICc!7^WWK5g#CMb^u2#p zOfH%Ar5(l|f_^yH0#NkB`V8+q*wqsD@*R$}gpW1C5=&kt=hFcsID&(%0Dd=dvK6qN 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 diff --git a/model.h b/model.h index 7c4e0d9..dff23af 100644 --- a/model.h +++ b/model.h @@ -283,7 +283,7 @@ struct classtype_world_light type; v4f colour; /* RGB, Energy */ - float angle; + float angle, range; }; #pragma pack(pop) diff --git a/shaders/common_scene.glsl b/shaders/common_scene.glsl index 91dc6a1..8be69c1 100644 --- a/shaders/common_scene.glsl +++ b/shaders/common_scene.glsl @@ -7,6 +7,7 @@ in vec3 aWorldCo; flat in ivec4 light_indices; uniform samplerBuffer uLightsArray; +uniform usampler3D uLightsIndex; #include "common_world.glsl" #include "light_clearskies.glsl" @@ -36,6 +37,69 @@ vec3 scene_apply_fog( vec3 vfrag, vec3 colour, float fdist ) return mix( vfrag, colour, min( 1.0, dist ) ); } +vec3 rand33(vec3 p3) +{ + p3 = fract(p3 * vec3(.1031, .1030, .0973)); + p3 += dot(p3, p3.yxz+33.33); + return fract((p3.xxy + p3.yxx)*p3.zyx); +} + +vec3 scene_calculate_light( int light_index, + vec3 halfview, vec3 co, vec3 normal ) +{ + vec4 light_colour = texelFetch( uLightsArray, light_index+0 ); + vec4 light_co = texelFetch( uLightsArray, light_index+1 ); + vec4 light_dir = texelFetch( uLightsArray, light_index+2 ); + + vec3 light_delta = light_co.xyz-co; + float dist2 = dot(light_delta,light_delta); + + light_delta = normalize( light_delta ); + + float quadratic = dist2*100.0; + float attenuation = 1.0f/( 1.0f + quadratic ); + attenuation *= max( dot( light_delta, normal ), 0.0 ); + + float falloff = max( 0.0, 1.0-(dist2*light_co.w) ); + + if( light_dir.w < 0.999999 ) + { + float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) ); + falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) ); + } + + return light_colour.rgb * attenuation * falloff; +} + +vec3 scene_calculate_packed_light_patch( uint packed_index, + vec3 halfview, vec3 co, vec3 normal ) +{ + uint light_count = packed_index & 0x3u; + + vec3 l = vec3(0.0); + + if( light_count >= 1u ) + { + int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u ); + int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u ); + int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u ); + + l += scene_calculate_light( index_0, halfview, co, normal ); + + if( light_count >= 2u ) + { + l += scene_calculate_light( index_1, halfview, co, normal ); + + if( light_count >= 3u ) + { + l += scene_calculate_light( index_2, halfview, co, normal ); + } + } + } + + return l; +} + vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal ) { world_info world; @@ -47,84 +111,44 @@ vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal ) halfview /= fdist; vec3 total_light = vec3(0.0); - - float world_shadow = newlight_compute_sun_shadow( world.sun_dir - * (1.0/(max(world.sun_dir.y,0.0)+0.2)) ); + * (1.0/(max(world.sun_dir.y,0.0)+0.2)) ); float board_shadow = compute_board_shadow(); total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), halfview, world ); - //total_light += scene_lighting_old( wnormal, world ); - - // Compute the other lights that exist in the map, not effected by the sun - // shadow - - // read lights - vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 ); - vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 ); - vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 ); - vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 ); - vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 ); - vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 ); - vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 ); - vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 ); - vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 ); + vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz; + cube_coord = floor( cube_coord ); if( g_debug_indices == 1 ) { - float rings = min( fract(distance(light_co_0.xyz,aWorldCo)), - min( fract(distance(light_co_1.xyz,aWorldCo)), - fract(distance(light_co_2.xyz,aWorldCo)) ) - ); - - return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125), - fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25; + return rand33(cube_coord); } if( g_debug_complexity == 1 ) { - return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 ); - } + ivec3 coord = ivec3( cube_coord ); + uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 ); - if( light_indices.w >= 1 ) - { - total_light += newlight_compute_spot - ( - wnormal, halfview, - light_colour_0.rgb, - light_co_0.xyz, - light_dir_0 - ) * board_shadow - * step( world.day_phase, light_colour_0.w ); - - if( light_indices.w >= 2 ) - { - total_light += newlight_compute_spot - ( - wnormal, halfview, - light_colour_1.rgb, - light_co_1.xyz, - light_dir_1 - ) * board_shadow - * step( world.day_phase, light_colour_1.w ); - - if( light_indices.w >= 3 ) - { - total_light += newlight_compute_spot - ( - wnormal, halfview, - light_colour_2.rgb, - light_co_2.xyz, - light_dir_2 - ) * board_shadow - * step( world.day_phase, light_colour_2.w ); - } - } + uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u); + return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 ); } - vec3 fog_colour = scene_sky( -halfview, world ); + // FIXME: this should absolutely must be clamped! + ivec3 coord = ivec3( cube_coord ); + uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 ); + + total_light += + scene_calculate_packed_light_patch( index_sample.x, + halfview, aWorldCo, wnormal ) + * board_shadow; + total_light += + scene_calculate_packed_light_patch( index_sample.y, + halfview, aWorldCo, wnormal ) + * board_shadow; + + vec3 fog_colour = scene_sky( -halfview, world ); return scene_apply_fog( diffuse * total_light, fog_colour, fdist ); } diff --git a/shaders/common_world.glsl b/shaders/common_world.glsl index ccf416e..a3b5ae3 100644 --- a/shaders/common_world.glsl +++ b/shaders/common_world.glsl @@ -2,6 +2,9 @@ layout (location = 0) out vec4 oColour; layout (std140) uniform ub_world_lighting { + vec4 g_cube_min; + vec4 g_cube_inv_range; + vec4 g_light_colours[3]; vec4 g_light_directions[3]; vec4 g_ambient_colour; @@ -117,16 +120,19 @@ float newlight_specular( vec3 wnormal, vec3 dir, vec3 halfview, float exponent ) return pow(max(dot( halfview, specdir ), 0.0), exponent); } -vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, +vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist, vec3 light_colour, vec3 light_pos ) { - vec3 light_delta = (light_pos-aWorldCo) * 10.0; + vec3 light_delta = light_pos-aWorldCo; - float quadratic = dot(light_delta,light_delta); - float attenuation = 1.0f/( 1.0f + quadratic ); - attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) ); + float dist2 = dot(light_delta,light_delta); + + float quadratic = dist2*100.0; + float attenuation = 1.0f/( 1.0f + quadratic ); + attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 ); - return light_colour*attenuation; + float falloff = max( 0.0, 1.0-(dist2*max_dist) ); + return light_colour * attenuation * falloff; } vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, diff --git a/shaders/model_character_view.h b/shaders/model_character_view.h index 2017f7d..b5073c1 100644 --- a/shaders/model_character_view.h +++ b/shaders/model_character_view.h @@ -88,6 +88,9 @@ static struct vg_shader _shader_model_character_view = { "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -203,16 +206,19 @@ static struct vg_shader _shader_model_character_view = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" "\n" -" return light_colour*attenuation;\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" diff --git a/shaders/model_sky.h b/shaders/model_sky.h index 2fb62ff..8fe64c4 100644 --- a/shaders/model_sky.h +++ b/shaders/model_sky.h @@ -79,6 +79,9 @@ static struct vg_shader _shader_model_sky = { "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -194,16 +197,19 @@ static struct vg_shader _shader_model_sky = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" "\n" -" return light_colour*attenuation;\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" diff --git a/shaders/scene_depth.h b/shaders/scene_depth.h index f40c461..7a8db43 100644 --- a/shaders/scene_depth.h +++ b/shaders/scene_depth.h @@ -83,12 +83,16 @@ static struct vg_shader _shader_scene_depth = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -204,16 +208,19 @@ static struct vg_shader _shader_scene_depth = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -234,7 +241,7 @@ static struct vg_shader _shader_scene_depth = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -381,7 +388,7 @@ static struct vg_shader _shader_scene_depth = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -408,6 +415,69 @@ static struct vg_shader _shader_scene_depth = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -419,85 +489,45 @@ static struct vg_shader _shader_scene_depth = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -532,6 +562,7 @@ static GLuint _uniform_scene_depth_uCamera; static GLuint _uniform_scene_depth_uBoard0; static GLuint _uniform_scene_depth_uBoard1; static GLuint _uniform_scene_depth_uLightsArray; +static GLuint _uniform_scene_depth_uLightsIndex; static GLuint _uniform_scene_depth_g_world_depth; static void shader_scene_depth_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_depth_uMdl,1,GL_FALSE,(float*)m); @@ -566,6 +597,7 @@ static void shader_scene_depth_link(void){ _uniform_scene_depth_uBoard0 = glGetUniformLocation( _shader_scene_depth.id, "uBoard0" ); _uniform_scene_depth_uBoard1 = glGetUniformLocation( _shader_scene_depth.id, "uBoard1" ); _uniform_scene_depth_uLightsArray = glGetUniformLocation( _shader_scene_depth.id, "uLightsArray" ); + _uniform_scene_depth_uLightsIndex = glGetUniformLocation( _shader_scene_depth.id, "uLightsIndex" ); _uniform_scene_depth_g_world_depth = glGetUniformLocation( _shader_scene_depth.id, "g_world_depth" ); } #endif /* SHADER_scene_depth_H */ diff --git a/shaders/scene_position.h b/shaders/scene_position.h index 8966955..b6d51eb 100644 --- a/shaders/scene_position.h +++ b/shaders/scene_position.h @@ -83,12 +83,16 @@ static struct vg_shader _shader_scene_position = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -204,16 +208,19 @@ static struct vg_shader _shader_scene_position = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -234,7 +241,7 @@ static struct vg_shader _shader_scene_position = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -381,7 +388,7 @@ static struct vg_shader _shader_scene_position = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -408,6 +415,69 @@ static struct vg_shader _shader_scene_position = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -419,85 +489,45 @@ static struct vg_shader _shader_scene_position = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -523,6 +553,7 @@ static GLuint _uniform_scene_position_uCamera; static GLuint _uniform_scene_position_uBoard0; static GLuint _uniform_scene_position_uBoard1; static GLuint _uniform_scene_position_uLightsArray; +static GLuint _uniform_scene_position_uLightsIndex; static GLuint _uniform_scene_position_g_world_depth; static void shader_scene_position_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_position_uMdl,1,GL_FALSE,(float*)m); @@ -557,6 +588,7 @@ static void shader_scene_position_link(void){ _uniform_scene_position_uBoard0 = glGetUniformLocation( _shader_scene_position.id, "uBoard0" ); _uniform_scene_position_uBoard1 = glGetUniformLocation( _shader_scene_position.id, "uBoard1" ); _uniform_scene_position_uLightsArray = glGetUniformLocation( _shader_scene_position.id, "uLightsArray" ); + _uniform_scene_position_uLightsIndex = glGetUniformLocation( _shader_scene_position.id, "uLightsIndex" ); _uniform_scene_position_g_world_depth = glGetUniformLocation( _shader_scene_position.id, "g_world_depth" ); } #endif /* SHADER_scene_position_H */ diff --git a/shaders/scene_route.h b/shaders/scene_route.h index 61c14e6..99b275f 100644 --- a/shaders/scene_route.h +++ b/shaders/scene_route.h @@ -84,12 +84,16 @@ static struct vg_shader _shader_scene_route = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -205,16 +209,19 @@ static struct vg_shader _shader_scene_route = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -235,7 +242,7 @@ static struct vg_shader _shader_scene_route = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -382,7 +389,7 @@ static struct vg_shader _shader_scene_route = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -409,6 +416,69 @@ static struct vg_shader _shader_scene_route = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -420,85 +490,45 @@ static struct vg_shader _shader_scene_route = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -574,6 +604,7 @@ static GLuint _uniform_scene_route_uColour; static GLuint _uniform_scene_route_uBoard0; static GLuint _uniform_scene_route_uBoard1; static GLuint _uniform_scene_route_uLightsArray; +static GLuint _uniform_scene_route_uLightsIndex; static GLuint _uniform_scene_route_g_world_depth; static void shader_scene_route_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_route_uMdl,1,GL_FALSE,(float*)m); @@ -620,6 +651,7 @@ static void shader_scene_route_link(void){ _uniform_scene_route_uBoard0 = glGetUniformLocation( _shader_scene_route.id, "uBoard0" ); _uniform_scene_route_uBoard1 = glGetUniformLocation( _shader_scene_route.id, "uBoard1" ); _uniform_scene_route_uLightsArray = glGetUniformLocation( _shader_scene_route.id, "uLightsArray" ); + _uniform_scene_route_uLightsIndex = glGetUniformLocation( _shader_scene_route.id, "uLightsIndex" ); _uniform_scene_route_g_world_depth = glGetUniformLocation( _shader_scene_route.id, "g_world_depth" ); } #endif /* SHADER_scene_route_H */ diff --git a/shaders/scene_standard.h b/shaders/scene_standard.h index a385437..4948da5 100644 --- a/shaders/scene_standard.h +++ b/shaders/scene_standard.h @@ -84,12 +84,16 @@ static struct vg_shader _shader_scene_standard = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -205,16 +209,19 @@ static struct vg_shader _shader_scene_standard = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -235,7 +242,7 @@ static struct vg_shader _shader_scene_standard = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -382,7 +389,7 @@ static struct vg_shader _shader_scene_standard = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -409,6 +416,69 @@ static struct vg_shader _shader_scene_standard = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -420,85 +490,45 @@ static struct vg_shader _shader_scene_standard = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -555,6 +585,7 @@ static GLuint _uniform_scene_standard_uPlane; static GLuint _uniform_scene_standard_uBoard0; static GLuint _uniform_scene_standard_uBoard1; static GLuint _uniform_scene_standard_uLightsArray; +static GLuint _uniform_scene_standard_uLightsIndex; static GLuint _uniform_scene_standard_g_world_depth; static void shader_scene_standard_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_standard_uMdl,1,GL_FALSE,(float*)m); @@ -601,6 +632,7 @@ static void shader_scene_standard_link(void){ _uniform_scene_standard_uBoard0 = glGetUniformLocation( _shader_scene_standard.id, "uBoard0" ); _uniform_scene_standard_uBoard1 = glGetUniformLocation( _shader_scene_standard.id, "uBoard1" ); _uniform_scene_standard_uLightsArray = glGetUniformLocation( _shader_scene_standard.id, "uLightsArray" ); + _uniform_scene_standard_uLightsIndex = glGetUniformLocation( _shader_scene_standard.id, "uLightsIndex" ); _uniform_scene_standard_g_world_depth = glGetUniformLocation( _shader_scene_standard.id, "g_world_depth" ); } #endif /* SHADER_scene_standard_H */ diff --git a/shaders/scene_standard_alphatest.h b/shaders/scene_standard_alphatest.h index 46c1976..5cab9a8 100644 --- a/shaders/scene_standard_alphatest.h +++ b/shaders/scene_standard_alphatest.h @@ -84,12 +84,16 @@ static struct vg_shader _shader_scene_standard_alphatest = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -205,16 +209,19 @@ static struct vg_shader _shader_scene_standard_alphatest = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -235,7 +242,7 @@ static struct vg_shader _shader_scene_standard_alphatest = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -382,7 +389,7 @@ static struct vg_shader _shader_scene_standard_alphatest = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -409,6 +416,69 @@ static struct vg_shader _shader_scene_standard_alphatest = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -420,85 +490,45 @@ static struct vg_shader _shader_scene_standard_alphatest = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -558,6 +588,7 @@ static GLuint _uniform_scene_standard_alphatest_uBoard1; static GLuint _uniform_scene_standard_alphatest_uCamera; static GLuint _uniform_scene_standard_alphatest_uPlane; static GLuint _uniform_scene_standard_alphatest_uLightsArray; +static GLuint _uniform_scene_standard_alphatest_uLightsIndex; static GLuint _uniform_scene_standard_alphatest_g_world_depth; static void shader_scene_standard_alphatest_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_standard_alphatest_uMdl,1,GL_FALSE,(float*)m); @@ -604,6 +635,7 @@ static void shader_scene_standard_alphatest_link(void){ _uniform_scene_standard_alphatest_uCamera = glGetUniformLocation( _shader_scene_standard_alphatest.id, "uCamera" ); _uniform_scene_standard_alphatest_uPlane = glGetUniformLocation( _shader_scene_standard_alphatest.id, "uPlane" ); _uniform_scene_standard_alphatest_uLightsArray = glGetUniformLocation( _shader_scene_standard_alphatest.id, "uLightsArray" ); + _uniform_scene_standard_alphatest_uLightsIndex = glGetUniformLocation( _shader_scene_standard_alphatest.id, "uLightsIndex" ); _uniform_scene_standard_alphatest_g_world_depth = glGetUniformLocation( _shader_scene_standard_alphatest.id, "g_world_depth" ); } #endif /* SHADER_scene_standard_alphatest_H */ diff --git a/shaders/scene_terrain.h b/shaders/scene_terrain.h index da84797..871d0d6 100644 --- a/shaders/scene_terrain.h +++ b/shaders/scene_terrain.h @@ -85,12 +85,16 @@ static struct vg_shader _shader_scene_terrain = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -206,16 +210,19 @@ static struct vg_shader _shader_scene_terrain = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -236,7 +243,7 @@ static struct vg_shader _shader_scene_terrain = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -383,7 +390,7 @@ static struct vg_shader _shader_scene_terrain = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -410,6 +417,69 @@ static struct vg_shader _shader_scene_terrain = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -421,85 +491,45 @@ static struct vg_shader _shader_scene_terrain = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -579,6 +609,7 @@ static GLuint _uniform_scene_terrain_uBlendOffset; static GLuint _uniform_scene_terrain_uBoard0; static GLuint _uniform_scene_terrain_uBoard1; static GLuint _uniform_scene_terrain_uLightsArray; +static GLuint _uniform_scene_terrain_uLightsIndex; static GLuint _uniform_scene_terrain_g_world_depth; static void shader_scene_terrain_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_terrain_uMdl,1,GL_FALSE,(float*)m); @@ -629,6 +660,7 @@ static void shader_scene_terrain_link(void){ _uniform_scene_terrain_uBoard0 = glGetUniformLocation( _shader_scene_terrain.id, "uBoard0" ); _uniform_scene_terrain_uBoard1 = glGetUniformLocation( _shader_scene_terrain.id, "uBoard1" ); _uniform_scene_terrain_uLightsArray = glGetUniformLocation( _shader_scene_terrain.id, "uLightsArray" ); + _uniform_scene_terrain_uLightsIndex = glGetUniformLocation( _shader_scene_terrain.id, "uLightsIndex" ); _uniform_scene_terrain_g_world_depth = glGetUniformLocation( _shader_scene_terrain.id, "g_world_depth" ); } #endif /* SHADER_scene_terrain_H */ diff --git a/shaders/scene_vertex_blend.h b/shaders/scene_vertex_blend.h index 097046f..60945cd 100644 --- a/shaders/scene_vertex_blend.h +++ b/shaders/scene_vertex_blend.h @@ -83,12 +83,16 @@ static struct vg_shader _shader_scene_vertex_blend = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -204,16 +208,19 @@ static struct vg_shader _shader_scene_vertex_blend = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -234,7 +241,7 @@ static struct vg_shader _shader_scene_vertex_blend = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -381,7 +388,7 @@ static struct vg_shader _shader_scene_vertex_blend = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -408,6 +415,69 @@ static struct vg_shader _shader_scene_vertex_blend = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -419,85 +489,45 @@ static struct vg_shader _shader_scene_vertex_blend = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -571,6 +601,7 @@ static GLuint _uniform_scene_vertex_blend_uCamera; static GLuint _uniform_scene_vertex_blend_uBoard0; static GLuint _uniform_scene_vertex_blend_uBoard1; static GLuint _uniform_scene_vertex_blend_uLightsArray; +static GLuint _uniform_scene_vertex_blend_uLightsIndex; static GLuint _uniform_scene_vertex_blend_g_world_depth; static void shader_scene_vertex_blend_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_vertex_blend_uMdl,1,GL_FALSE,(float*)m); @@ -613,6 +644,7 @@ static void shader_scene_vertex_blend_link(void){ _uniform_scene_vertex_blend_uBoard0 = glGetUniformLocation( _shader_scene_vertex_blend.id, "uBoard0" ); _uniform_scene_vertex_blend_uBoard1 = glGetUniformLocation( _shader_scene_vertex_blend.id, "uBoard1" ); _uniform_scene_vertex_blend_uLightsArray = glGetUniformLocation( _shader_scene_vertex_blend.id, "uLightsArray" ); + _uniform_scene_vertex_blend_uLightsIndex = glGetUniformLocation( _shader_scene_vertex_blend.id, "uLightsIndex" ); _uniform_scene_vertex_blend_g_world_depth = glGetUniformLocation( _shader_scene_vertex_blend.id, "g_world_depth" ); } #endif /* SHADER_scene_vertex_blend_H */ diff --git a/shaders/scene_water.h b/shaders/scene_water.h index e9e052b..3eceda0 100644 --- a/shaders/scene_water.h +++ b/shaders/scene_water.h @@ -91,12 +91,16 @@ static struct vg_shader _shader_scene_water = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -212,16 +216,19 @@ static struct vg_shader _shader_scene_water = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -242,7 +249,7 @@ static struct vg_shader _shader_scene_water = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -389,7 +396,7 @@ static struct vg_shader _shader_scene_water = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -416,6 +423,69 @@ static struct vg_shader _shader_scene_water = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -427,85 +497,45 @@ static struct vg_shader _shader_scene_water = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -608,6 +638,7 @@ static GLuint _uniform_scene_water_uBoard1; static GLuint _uniform_scene_water_uShoreColour; static GLuint _uniform_scene_water_uOceanColour; static GLuint _uniform_scene_water_uLightsArray; +static GLuint _uniform_scene_water_uLightsIndex; static GLuint _uniform_scene_water_g_world_depth; static void shader_scene_water_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_water_uMdl,1,GL_FALSE,(float*)m); @@ -674,6 +705,7 @@ static void shader_scene_water_link(void){ _uniform_scene_water_uShoreColour = glGetUniformLocation( _shader_scene_water.id, "uShoreColour" ); _uniform_scene_water_uOceanColour = glGetUniformLocation( _shader_scene_water.id, "uOceanColour" ); _uniform_scene_water_uLightsArray = glGetUniformLocation( _shader_scene_water.id, "uLightsArray" ); + _uniform_scene_water_uLightsIndex = glGetUniformLocation( _shader_scene_water.id, "uLightsIndex" ); _uniform_scene_water_g_world_depth = glGetUniformLocation( _shader_scene_water.id, "g_world_depth" ); } #endif /* SHADER_scene_water_H */ diff --git a/shaders/scene_water_fast.h b/shaders/scene_water_fast.h index bab38cd..1bd4ed6 100644 --- a/shaders/scene_water_fast.h +++ b/shaders/scene_water_fast.h @@ -88,12 +88,16 @@ static struct vg_shader _shader_scene_water_fast = { "flat in ivec4 light_indices;\n" "\n" "uniform samplerBuffer uLightsArray;\n" +"uniform usampler3D uLightsIndex;\n" "\n" "#line 1 1 \n" "layout (location = 0) out vec4 oColour;\n" "\n" "layout (std140) uniform ub_world_lighting\n" "{\n" +" vec4 g_cube_min;\n" +" vec4 g_cube_inv_range;\n" +"\n" " vec4 g_light_colours[3];\n" " vec4 g_light_directions[3];\n" " vec4 g_ambient_colour;\n" @@ -209,16 +213,19 @@ static struct vg_shader _shader_scene_water_fast = { " return pow(max(dot( halfview, specdir ), 0.0), exponent);\n" "}\n" "\n" -"vec3 newlight_compute_quadratic( vec3 wnormal, vec3 halfview, \n" +"vec3 newlight_compute_quadratic( vec3 wnormal, float max_dist,\n" " vec3 light_colour, vec3 light_pos )\n" "{\n" -" vec3 light_delta = (light_pos-aWorldCo) * 10.0;\n" +" vec3 light_delta = light_pos-aWorldCo;\n" "\n" -" float quadratic = dot(light_delta,light_delta);\n" -" float attenuation = 1.0f/( 1.0f + quadratic );\n" -" attenuation *= max( 0.0, dot( normalize(light_delta), wnormal ) );\n" +" float dist2 = dot(light_delta,light_delta);\n" "\n" -" return light_colour*attenuation;\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( normalize(light_delta), wnormal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*max_dist) );\n" +" return light_colour * attenuation * falloff;\n" "}\n" "\n" "vec3 newlight_compute_spot( vec3 wnormal, vec3 halfview, \n" @@ -239,7 +246,7 @@ static struct vg_shader _shader_scene_water_fast = { " return light_colour*attenuation*falloff;\n" "}\n" "\n" -"#line 12 0 \n" +"#line 13 0 \n" "#line 1 2 \n" "const vec3 DAYSKY_COLOUR = vec3( 0.37, 0.54, 0.97 );\n" "const vec3 NIGHTSKY_COLOUR = vec3( 0.03, 0.05, 0.20 );\n" @@ -386,7 +393,7 @@ static struct vg_shader _shader_scene_water_fast = { "}\n" "\n" "\n" -"#line 13 0 \n" +"#line 14 0 \n" "\n" "float sdLine( vec3 p, vec3 a, vec3 b )\n" "{\n" @@ -413,6 +420,69 @@ static struct vg_shader _shader_scene_water_fast = { " return mix( vfrag, colour, min( 1.0, dist ) );\n" "}\n" "\n" +"vec3 rand33(vec3 p3)\n" +"{\n" +" p3 = fract(p3 * vec3(.1031, .1030, .0973));\n" +" p3 += dot(p3, p3.yxz+33.33);\n" +" return fract((p3.xxy + p3.yxx)*p3.zyx);\n" +"}\n" +"\n" +"vec3 scene_calculate_light( int light_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" vec4 light_colour = texelFetch( uLightsArray, light_index+0 );\n" +" vec4 light_co = texelFetch( uLightsArray, light_index+1 );\n" +" vec4 light_dir = texelFetch( uLightsArray, light_index+2 );\n" +"\n" +" vec3 light_delta = light_co.xyz-co;\n" +" float dist2 = dot(light_delta,light_delta);\n" +"\n" +" light_delta = normalize( light_delta );\n" +"\n" +" float quadratic = dist2*100.0;\n" +" float attenuation = 1.0f/( 1.0f + quadratic );\n" +" attenuation *= max( dot( light_delta, normal ), 0.0 );\n" +"\n" +" float falloff = max( 0.0, 1.0-(dist2*light_co.w) );\n" +"\n" +" if( light_dir.w < 0.999999 )\n" +" {\n" +" float spot_theta = max( 0.0, dot( light_delta, -light_dir.xyz ) );\n" +" falloff *= max( 0.0, (spot_theta - light_dir.w) / (1.0-light_dir.w) );\n" +" }\n" +"\n" +" return light_colour.rgb * attenuation * falloff;\n" +"}\n" +"\n" +"vec3 scene_calculate_packed_light_patch( uint packed_index, \n" +" vec3 halfview, vec3 co, vec3 normal )\n" +"{\n" +" uint light_count = packed_index & 0x3u;\n" +"\n" +" vec3 l = vec3(0.0);\n" +"\n" +" if( light_count >= 1u )\n" +" {\n" +" int index_0 = int( ((packed_index >> 2u) & 0x3ffu) * 3u );\n" +" int index_1 = int( ((packed_index >> 12u) & 0x3ffu) * 3u );\n" +" int index_2 = int( ((packed_index >> 22u) & 0x3ffu) * 3u );\n" +"\n" +" l += scene_calculate_light( index_0, halfview, co, normal );\n" +"\n" +" if( light_count >= 2u )\n" +" {\n" +" l += scene_calculate_light( index_1, halfview, co, normal );\n" +"\n" +" if( light_count >= 3u )\n" +" {\n" +" l += scene_calculate_light( index_2, halfview, co, normal );\n" +" }\n" +" }\n" +" }\n" +"\n" +" return l;\n" +"}\n" +"\n" "vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal )\n" "{\n" " world_info world;\n" @@ -424,85 +494,45 @@ static struct vg_shader _shader_scene_water_fast = { " halfview /= fdist;\n" "\n" " vec3 total_light = vec3(0.0);\n" -"\n" -"\n" " float world_shadow = newlight_compute_sun_shadow( world.sun_dir \n" -" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" +" * (1.0/(max(world.sun_dir.y,0.0)+0.2)) );\n" " float board_shadow = compute_board_shadow();\n" "\n" " total_light += scene_lighting( wnormal, min( board_shadow, world_shadow ), \n" " halfview, world );\n" "\n" -" //total_light += scene_lighting_old( wnormal, world );\n" -"\n" -" // Compute the other lights that exist in the map, not effected by the sun\n" -" // shadow\n" -"\n" -" // read lights\n" -" vec4 light_colour_0 = texelFetch( uLightsArray, light_indices.x*3+0 );\n" -" vec4 light_colour_1 = texelFetch( uLightsArray, light_indices.y*3+0 );\n" -" vec4 light_colour_2 = texelFetch( uLightsArray, light_indices.z*3+0 );\n" -" vec4 light_co_0 = texelFetch( uLightsArray, light_indices.x*3+1 );\n" -" vec4 light_co_1 = texelFetch( uLightsArray, light_indices.y*3+1 );\n" -" vec4 light_co_2 = texelFetch( uLightsArray, light_indices.z*3+1 );\n" -" vec4 light_dir_0 = texelFetch( uLightsArray, light_indices.x*3+2 );\n" -" vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" -" vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" +" vec3 cube_coord = (aWorldCo - g_cube_min.xyz) * g_cube_inv_range.xyz;\n" +" cube_coord = floor( cube_coord );\n" "\n" " if( g_debug_indices == 1 )\n" " {\n" -" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" -" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" -" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" -" );\n" -" \n" -" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" return rand33(cube_coord);\n" " }\n" "\n" " if( g_debug_complexity == 1 )\n" " {\n" -" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" -" }\n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" "\n" -" if( light_indices.w >= 1 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow \n" -" * step( world.day_phase, light_colour_0.w );\n" -"\n" -" if( light_indices.w >= 2 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_1.w );\n" -"\n" -" if( light_indices.w >= 3 )\n" -" {\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow\n" -" * step( world.day_phase, light_colour_2.w );\n" -" }\n" -" }\n" +" uint light_count = (index_sample.x & 0x3u) + (index_sample.y & 0x3u);\n" +" return vec3( float(light_count)*(1.0/6.0), 0.0, 0.5 );\n" " }\n" "\n" -" vec3 fog_colour = scene_sky( -halfview, world );\n" +" // FIXME: this should absolutely must be clamped!\n" " \n" +" ivec3 coord = ivec3( cube_coord );\n" +" uvec4 index_sample = texelFetch( uLightsIndex, coord, 0 );\n" +"\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.x,\n" +" halfview, aWorldCo, wnormal ) \n" +" * board_shadow;\n" +" total_light += \n" +" scene_calculate_packed_light_patch( index_sample.y,\n" +" halfview, aWorldCo, wnormal )\n" +" * board_shadow;\n" +"\n" +" vec3 fog_colour = scene_sky( -halfview, world );\n" " return scene_apply_fog( diffuse * total_light, fog_colour, fdist );\n" "}\n" "\n" @@ -586,6 +616,7 @@ static GLuint _uniform_scene_water_fast_uBoard1; static GLuint _uniform_scene_water_fast_uShoreColour; static GLuint _uniform_scene_water_fast_uOceanColour; static GLuint _uniform_scene_water_fast_uLightsArray; +static GLuint _uniform_scene_water_fast_uLightsIndex; static GLuint _uniform_scene_water_fast_g_world_depth; static void shader_scene_water_fast_uMdl(m4x3f m){ glUniformMatrix4x3fv(_uniform_scene_water_fast_uMdl,1,GL_FALSE,(float*)m); @@ -640,6 +671,7 @@ static void shader_scene_water_fast_link(void){ _uniform_scene_water_fast_uShoreColour = glGetUniformLocation( _shader_scene_water_fast.id, "uShoreColour" ); _uniform_scene_water_fast_uOceanColour = glGetUniformLocation( _shader_scene_water_fast.id, "uOceanColour" ); _uniform_scene_water_fast_uLightsArray = glGetUniformLocation( _shader_scene_water_fast.id, "uLightsArray" ); + _uniform_scene_water_fast_uLightsIndex = glGetUniformLocation( _shader_scene_water_fast.id, "uLightsIndex" ); _uniform_scene_water_fast_g_world_depth = glGetUniformLocation( _shader_scene_water_fast.id, "g_world_depth" ); } #endif /* SHADER_scene_water_fast_H */ diff --git a/skaterift.c b/skaterift.c index b0324cc..a410301 100644 --- a/skaterift.c +++ b/skaterift.c @@ -257,13 +257,10 @@ VG_STATIC void vg_load(void) world_audio_init(); /* 'systems' are completely loaded now */ -#if 0 - strcpy( world.world_name, "maps/mp_mtzero.mdl" ); - strcpy( world.world_name, "maps/mp_gridmap.mdl" ); -#endif /* load home world */ world_load( &world_global.worlds[0], "maps/mp_home.mdl" ); + world_load( &world_global.worlds[1], "maps/mp_gridmap.mdl" ); world_load( &world_global.worlds[2], "maps/mp_mtzero.mdl" ); world_link_nonlocal_gates( 0, 1 ); diff --git a/world.h b/world.h index ef93596..cfa809c 100644 --- a/world.h +++ b/world.h @@ -53,6 +53,8 @@ enum geo_type k_geo_type_water = 2 }; +static const float k_light_cube_size = 8.0f; + struct world_instance { /* This is a small flag we use to changelevel. @@ -79,6 +81,9 @@ struct world_instance /* STD140 */ struct ub_world_lighting { + v4f g_cube_min, + g_cube_inv_range; + /* v3f (padded) */ v4f g_light_colours[3], g_light_directions[3], @@ -106,7 +111,10 @@ struct world_instance int ubo_bind_point; GLuint tbo_light_entities, - tex_light_entities; + tex_light_entities, + tex_light_cubes; + + v3i light_cubes; struct framebuffer heightmap; @@ -216,6 +224,8 @@ struct world_instance { mdl_node *node; struct classtype_world_light *inf; + m4x3f inverse_world; + v2f angle_sin_cos; /* enabled.. etc? * TODO: we should order entities in the binary by their type */ diff --git a/world_gen.h b/world_gen.h index 026701a..fea44fc 100644 --- a/world_gen.h +++ b/world_gen.h @@ -340,6 +340,13 @@ VG_STATIC void world_pct_world_light( world_instance *world, mdl_node *pnode ) struct world_light *light = &world->lights[ world->light_count ++ ]; light->node = pnode; light->inf = mdl_get_entdata( world->meta, pnode ); + + q_m3x3( pnode->q, light->inverse_world ); + v3_copy( pnode->co, light->inverse_world[3] ); + m4x3_invert_affine( light->inverse_world, light->inverse_world ); + + light->angle_sin_cos[0] = sinf( light->inf->angle * 0.5f ); + light->angle_sin_cos[1] = cosf( light->inf->angle * 0.5f ); } VG_STATIC void world_pct_nonlocal_gate( world_instance *world, mdl_node *pnode ) @@ -615,6 +622,19 @@ VG_STATIC void world_generate( world_instance *world ) world->scene_no_collide = NULL; } +float fsd_cone_infinite( v3f p, v2f c ) +{ + v2f q = { v2_length( (v2f){ p[0], p[2] } ), -p[1] }; + float s = vg_maxf( 0.0f, v2_dot( q, c ) ); + + v2f v0; + v2_muls( c, s, v0 ); + v2_sub( q, v0, v0 ); + + float d = v2_length( v0 ); + return d * ((q[0]*c[1]-q[1]*c[0]<0.0f)?-1.0f:1.0f); +} + VG_STATIC int reset_player( int argc, char const *argv[] ); VG_STATIC void world_post_process( world_instance *world ) { @@ -651,9 +671,9 @@ VG_STATIC void world_post_process( world_instance *world ) /* buffer layout * - * colour position direction (spots) - * | . . . . | . . . . | . . . . | - * | Re Ge Be Night | Xco Yco Zco | Dx Dy Dz Da | + * colour position direction (spots) + * | . . . . | . . . . | . . . . | + * | Re Ge Be Night | Xco Yco Zco Range | Dx Dy Dz Da | * */ @@ -666,7 +686,7 @@ VG_STATIC void world_post_process( world_instance *world ) /* colour + night */ v3_muls( inf->colour, inf->colour[3] * 2.0f, light_dst[i*3+0] ); - light_dst[i*3+0][3] = 0.0f; + light_dst[i*3+0][3] = -1.0f; if( (inf->type == k_light_type_spot_nighttime_only) || (inf->type == k_light_type_point_nighttime_only ) ) @@ -678,12 +698,13 @@ VG_STATIC void world_post_process( world_instance *world ) light_dst[i*3+0][3] = 0.44f + switch_on * 0.015f; } - /* position + nothing */ + /* position + 1/range^2 */ v3_copy( light->node->co, light_dst[i*3+1] ); + light_dst[i*3+1][3] = 1.0f/(inf->range*inf->range); /* direction + angle */ q_mulv( light->node->q, (v3f){0.0f,-1.0f,0.0f}, light_dst[i*3+2]); - light_dst[i*3+2][3] = inf->angle; + light_dst[i*3+2][3] = cosf( inf->angle ); } glUnmapBuffer( GL_TEXTURE_BUFFER ); @@ -706,11 +727,6 @@ VG_STATIC void world_post_process( world_instance *world ) info_vec[3] = 1.0f/ (bounds[1][2]-bounds[0][2]); v4_copy( info_vec, world->ub_lighting.g_depth_bounds ); - /* upload full buffer */ - glBindBuffer( GL_UNIFORM_BUFFER, world->ubo_lighting ); - glBufferSubData( GL_UNIFORM_BUFFER, 0, - sizeof(struct ub_world_lighting), &world->ub_lighting ); - /* * Rendering the depth map @@ -755,6 +771,187 @@ VG_STATIC void world_post_process( world_instance *world ) glEnable(GL_DEPTH_TEST); glBindFramebuffer( GL_FRAMEBUFFER, 0 ); + + + + /* light cubes */ + + v3f cubes_min, cubes_max; + v3_muls( world->scene_geo->bbx[0], 1.0f/k_light_cube_size, cubes_min ); + v3_muls( world->scene_geo->bbx[1], 1.0f/k_light_cube_size, cubes_max ); + + v3_sub( cubes_min, (v3f){ 0.5f, 0.5f, 0.5f }, cubes_min ); + v3_add( cubes_max, (v3f){ 0.5f, 0.5f, 0.5f }, cubes_max ); + + v3_floor( cubes_min, cubes_min ); + v3_floor( cubes_max, cubes_max ); + + v3i icubes_min, icubes_max; + + for( int i=0; i<3; i++ ) + { + icubes_min[i] = cubes_min[i]; + icubes_max[i] = cubes_max[i]; + } + + v3i icubes_count; + v3i_sub( icubes_max, icubes_min, icubes_count ); + + for( int i=0; i<3; i++ ) + { + icubes_count[i] = VG_MIN( 128, icubes_count[i]+1 ); + cubes_max[i] = icubes_min[i] + icubes_count[i]; + } + + v3_muls( cubes_min, k_light_cube_size, cubes_min ); + v3_muls( cubes_max, k_light_cube_size, cubes_max ); + + for( int i=0; i<3; i++ ) + { + float range = cubes_max[i]-cubes_min[i]; + world->ub_lighting.g_cube_inv_range[i] = 1.0f / range; + world->ub_lighting.g_cube_inv_range[i] *= (float)icubes_count[i]; + + vg_info( "cubes[%d]: %d\n", i, icubes_count[i] ); + } + + int total_cubes = icubes_count[0]*icubes_count[1]*icubes_count[2]; + + u32 *cubes_index = vg_linear_alloc( world_global.generic_heap, + total_cubes * sizeof(u32) * 2.0f ); + + vg_info( "Computing light cubes (%d) [%f %f %f] -> [%f %f %f]\n", + total_cubes, cubes_min[0], -cubes_min[2], cubes_min[1], + cubes_max[0], -cubes_max[2], cubes_max[1] ); + + v3_copy( cubes_min, world->ub_lighting.g_cube_min ); + + vg_info( "g_cube_min[%f %f %f]\n", + world->ub_lighting.g_cube_min[0], + world->ub_lighting.g_cube_min[1], + world->ub_lighting.g_cube_min[2] ); + vg_info( "g_cube_inv_range[%f %f %f]\n", + world->ub_lighting.g_cube_inv_range[0], + world->ub_lighting.g_cube_inv_range[1], + world->ub_lighting.g_cube_inv_range[2] ); + + v3f cube_size; + v3_div( (v3f){1.0f,1.0f,1.0f}, world->ub_lighting.g_cube_inv_range, + cube_size ); + float bound_radius = v3_length( cube_size ); + + for( int iz = 0; izub_lighting.g_cube_inv_range, + bbx[0] ); + v3_div( (v3f){ ix+1, iy+1, iz+1 }, + world->ub_lighting.g_cube_inv_range, + bbx[1] ); + + v3_add( bbx[0], world->ub_lighting.g_cube_min, bbx[0] ); + v3_add( bbx[1], world->ub_lighting.g_cube_min, bbx[1] ); + + v3f center; + v3_add( bbx[0], bbx[1], center ); + v3_muls( center, 0.5f, center ); + + u32 indices[6] = { 0, 0, 0, 0, 0, 0 }; + u32 count = 0; + + float influences[6] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; + const int N = vg_list_size( influences ); + + for( int j=0; jlight_count; j ++ ) + { + struct world_light *light = &world->lights[j]; + v3f closest; + closest_point_aabb( light->node->co, bbx, closest ); + + float dist = v3_dist( closest, light->node->co ), + influence = 1.0f/(dist+1.0f); + + if( dist > light->inf->range ) + continue; + + if( (light->inf->type == k_light_type_spot) || + (light->inf->type == k_light_type_spot_nighttime_only) ) + { + v3f local; + m4x3_mulv( light->inverse_world, center, local ); + + float r = fsd_cone_infinite( local, light->angle_sin_cos ); + + if( r > bound_radius ) + continue; + } + + int best_pos = N; + for( int k=best_pos-1; k>=0; k -- ) + if( influence > influences[k] ) + best_pos = k; + + if( best_pos < N ) + { + for( int k=N-1; k>best_pos; k -- ) + { + influences[k] = influences[k-1]; + indices[k] = indices[k-1]; + } + + influences[best_pos] = influence; + indices[best_pos] = j; + } + } + + for( int j=0; j 0.0f ) + count ++; + + int base_index = iz * (icubes_count[0]*icubes_count[1]) + + iy * (icubes_count[0]) + + ix; + + int lower_count = VG_MIN( 3, count ); + u32 packed_index_lower = lower_count; + packed_index_lower |= indices[0]<<2; + packed_index_lower |= indices[1]<<12; + packed_index_lower |= indices[2]<<22; + + int upper_count = VG_MAX( 0, count - lower_count ); + u32 packed_index_upper = upper_count; + packed_index_upper |= indices[3]<<2; + packed_index_upper |= indices[4]<<12; + packed_index_upper |= indices[5]<<22; + + cubes_index[ base_index * 2 + 0 ] = packed_index_lower; + cubes_index[ base_index * 2 + 1 ] = packed_index_upper; + } + } + } + + glGenTextures( 1, &world->tex_light_cubes ); /* FIXME: glDeleteTextures */ + glBindTexture( GL_TEXTURE_3D, world->tex_light_cubes ); + glTexImage3D( GL_TEXTURE_3D, 0, GL_RG32UI, + icubes_count[0], icubes_count[1], icubes_count[2], + 0, GL_RG_INTEGER, GL_UNSIGNED_INT, cubes_index ); + glTexParameteri( GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_NEAREST ); + glTexParameteri( GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST ); + + vg_linear_del( world_global.generic_heap, cubes_index ); + + + + + + /* upload full buffer */ + glBindBuffer( GL_UNIFORM_BUFFER, world->ubo_lighting ); + glBufferSubData( GL_UNIFORM_BUFFER, 0, + sizeof(struct ub_world_lighting), &world->ub_lighting ); } vg_release_thread_sync(); diff --git a/world_render.h b/world_render.h index f66ae04..7eccc6e 100644 --- a/world_render.h +++ b/world_render.h @@ -92,6 +92,15 @@ VG_STATIC void world_bind_light_array( world_instance *world, glUniform1i( location, slot ); } +VG_STATIC void world_bind_light_index( world_instance *world, + GLuint shader, GLuint location, + int slot ) +{ + glActiveTexture( GL_TEXTURE0 + slot ); + glBindTexture( GL_TEXTURE_3D, world->tex_light_cubes ); + glUniform1i( location, slot ); +} + VG_STATIC void render_world_depth( world_instance *world, camera *cam ); /* @@ -168,6 +177,8 @@ VG_STATIC void render_world_vb( world_instance *world, camera *cam ) _uniform_scene_vertex_blend_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_vertex_blend.id, _uniform_scene_vertex_blend_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_vertex_blend.id, + _uniform_scene_vertex_blend_uLightsIndex, 4 ); vg_tex2d_bind( &tex_terrain_noise, 0 ); @@ -198,6 +209,8 @@ VG_STATIC void render_world_standard( world_instance *world, camera *cam ) _uniform_scene_standard_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_standard.id, _uniform_scene_standard_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_standard.id, + _uniform_scene_standard_uLightsIndex, 4 ); bind_terrain_noise(); @@ -226,6 +239,8 @@ VG_STATIC void render_world_alphatest( world_instance *world, camera *cam ) _uniform_scene_standard_alphatest_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_standard_alphatest.id, _uniform_scene_standard_alphatest_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_standard_alphatest.id, + _uniform_scene_standard_alphatest_uLightsIndex, 4 ); bind_terrain_noise(); @@ -267,6 +282,8 @@ VG_STATIC void render_terrain( world_instance *world, camera *cam ) _uniform_scene_terrain_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_terrain.id, _uniform_scene_terrain_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_terrain.id, + _uniform_scene_terrain_uLightsIndex, 4 ); vg_tex2d_bind( &tex_terrain_noise, 0 ); diff --git a/world_routes.h b/world_routes.h index bd4ce0c..34ba50b 100644 --- a/world_routes.h +++ b/world_routes.h @@ -1145,6 +1145,9 @@ VG_STATIC void bind_terrain_noise(void); VG_STATIC void world_bind_light_array( world_instance *world, GLuint shader, GLuint location, int slot ); +VG_STATIC void world_bind_light_index( world_instance *world, + GLuint shader, GLuint location, + int slot ); VG_STATIC void render_world_routes( world_instance *world, camera *cam ) { @@ -1158,6 +1161,8 @@ VG_STATIC void render_world_routes( world_instance *world, camera *cam ) _uniform_scene_route_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_route.id, _uniform_scene_route_uLightsArray, 3 ); + world_bind_light_index( world, _shader_scene_route.id, + _uniform_scene_route_uLightsIndex, 4 ); bind_terrain_noise(); shader_scene_route_uPv( cam->mtx.pv ); diff --git a/world_water.h b/world_water.h index 6d77a98..9e282be 100644 --- a/world_water.h +++ b/world_water.h @@ -41,6 +41,9 @@ VG_STATIC void world_bind_position_texture( world_instance *world, VG_STATIC void world_bind_light_array( world_instance *world, GLuint shader, GLuint location, int slot ); +VG_STATIC void world_bind_light_index( world_instance *world, + GLuint shader, GLuint location, + int slot ); /* * Does not write motion vectors @@ -140,6 +143,8 @@ VG_STATIC void render_water_surface( world_instance *world, camera *cam ) _uniform_scene_water_g_world_depth, 2 ); world_bind_light_array( world, _shader_scene_water.id, _uniform_scene_water_uLightsArray, 4 ); + world_bind_light_index( world, _shader_scene_water.id, + _uniform_scene_water_uLightsIndex, 5 ); render_fb_bind_texture( gpipeline.fb_water_beneath, 0, 3 ); shader_scene_water_uTexBack( 3 ); -- 2.25.1