From 37458efe18ea6694e000f8616e1dede820d513f4 Mon Sep 17 00:00:00 2001 From: Robert Jeutter Date: Tue, 12 Jan 2021 10:32:59 +0100 Subject: [PATCH] weiter transformiert --- Computergrafik - Cheatsheet.pdf | Bin 298567 -> 302724 bytes Computergrafik - Cheatsheet.tex | 3236 +++++++++++++++---------------- 2 files changed, 1601 insertions(+), 1635 deletions(-) diff --git a/Computergrafik - Cheatsheet.pdf b/Computergrafik - Cheatsheet.pdf index 364f8ab811b21a027e8022491dc4aa40dac10556..0d65ac8e7db4815327963f5f89dae1b9d2a2c3be 100644 GIT binary patch delta 294924 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 @W%T&EAd5{tWbPRTmwe^oWBVbw_A#&~c` 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›UOfn)AJUZVw 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%0AG`H7PStuZOr- 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
#g27r3;! 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 QW^Pti7;F$sol(B4- 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%0D06|POQ$#OK)YWsM+ z{|8n8&}^gVng8SF|5uyYnE!um=HTFB`@g@G8NLno|GfG32Sz^k7!_IED4a6KrPx#I zkaIy({x!S#6PQ_sj221Nq+!SVpFy6E+UqI^n%Ly*bcVmB1ev1S<&6!KZZ+n?;YktF zFCXCZd?JcU?^q}!-1h#(8`&a?bt;H)7Sll^sxR-ZYHW&=_khkJkJW9eDz@!TDl;3P zi?HL#68&*&?(xV;r%);Wy}=*0HY)#>klWlfHdW5+#lXK+9%t=)eUtPSzjm=i^QPiI zP4IhkJqL8u2$x8!RNq~(ClIE_ei&+GyLLOsdQA5vpmG~s^X9$3(|;M(_G`qDP(l9l z(M~1rsljJX2@f?g$5DyH z-M^^zDAiPM75tnFS%=p3?M|4~crJCrYW>NR)l@XSH^zn-M)(~?pQiMLi_Hh9)&H|w zc@-hb(_KU{mhe5wKH`bgR$%jojWKZIj@eV2v9fy(BuoF8+uJuX>_q%BXS`il3Lp&3 zdCzcI{*1hUWVt!N#`p%g3Cg$H_ z`%TQN^^_?5gTO`tj~1-npAXvOP7iFD&;P*u5P-3%7-&gsm#UNw={1Zebp2kswA@>p ztV?`4TU*;@9Rq+O-#^EZ&pfFEvFq01$R1Yq|H`40fmQ@VI6p|xkTwHccdG5EI}Y0y z`pPHlM=s*@CF0|O3x80nQF_suE(^Lyyj^_&i_V#8ETbJpY;}&{x2;$-ko~k&q6rj> z#h>0gea&Als838FBoDV*w~s(bt2^uue^2@c@>G_u^3o9~zL{FV=%hhn8^ydCh|`9N z93x=+FNEm7oATE$gpvSAm*W;@*c*{G-*CLd>MDq+8uO8SJ>y+)byHipaD4^{wJW4n zs(LFU>|;P=a+BE`5iW$aV_H+0@ND6x=GE)~@Y~Iot-?agoWZ7|?u$4Ro=v!w1-mW$ zKfFnEAUz|XK_wuFx8Ktmrd{x^J%OhxGhNC{lxbN)C)FVkAUjL& ze(6gXGSD#cSa~HWN@ckXP4C!rwRKA7>d-Xem0-7VCI9MqI;K0?_56k3>n~rffZSWV zt;HIss9?<_gEj!0ah}IH*YkET!?PYuOVWD$9pCcT$8xJ0oe~2%aRkWdLpW4mQHqWR z13FWC>PGNWBDY5zMwq+Mrn!}3acJ;Y4LkZ-V)mhx8FIk%iYMKi7BwLqU&pokIm3Nc z!)0Lges%O(Erk%ND{%(GRX&j9Wu#rq=0oNy=sVwH&<&uIZQXYbkkQmmhwd@Jg(4ue z(#Ozc-J*b%2kQ_Q5|^X8=Ka~F;O4+%EEwDL=<>WHc|(1tAsB(eJwL|b5KzCePQ!;j zggKEQKk8UkQfBQ93d)_2YEBAJh{VJLC!gkYs1MnO5{wvJ90=ka&DKmiR**^{#l;X% z=_ElUVFbhpQ<{Dzi=8TA6vdyi#dk=w&_uYquOOlmt2K>WdIRM^I#?p!@+@O&AvG)x zJe;)e$j@wM!QkzzD#P`uDyvn$@7UKMv%Hcz%wPTqCYgq=|EXle zi15(7JqDXG1S{vlQtM@M|Nf59UQYqh(G7k*;sZFsE*P&in&atvz-^0=bwn;)7b-3B zA=fy`>;61O`7v4YRh_)>UaOWfjZml*ut!&Sc=F%;>-j7z{#Su-n-q|w zw#a=5p(a7V`-Ysn(Q)B$FY*A(mcefvB9KHVbDS3#cEs&MwqtwJli97^^UQVpr*ou5 z4K3D7aN93TSQQM$LV?zk3LOOJu7as)Gv++G>;>5<3B%O2y?J+5DYVP)>F_?T2V~7sBFzJ8B@zEYDbcyWR3lZq{ww|R+pXx~yQZC}J);+f=AeXue1@Fis9gl5E zetV9v7Wfm|ln8Q{KxQ31MARfXB$K=z39AQ9H)v zrZU;CsOcbFo)=5l`9K9JT89!rfmQH6+)JP6Gg?PPBdopqwBi{sBBpBSlwQ!C6vx zK&YZ>ZNqagR9+?LNZndMvdcijO|6mC@JDd?{bU#Z@l>|*C+gNo3S#Ar&fN?vzwgbY z@=2?YW{OBFJfgDsM-Y0-34PeidDoc4r#38Aln>_;&Z$iOk`8`S#!XXCIXx|I zQN$^dHvh3erBWkw3hn8fPbvTwN`FZfsd-DS`rCETa?Q5 zlo*F7yg8G4m0iEXt(>Yh1InjKnBg!!i6iOmpO>>34slMx^I<5~A94CSZt#br8TmOA z+aRaKu4TjdY4eY?Ckhcj^Bz`X5>7SaMXer$ypdXZ!7H9-LvZbtDM%xN{NMG;eW?1X)_-|T*V6qXnL+%d)A*hdSP>EXcE-ewVvKdWqR^>Q&Y zQWi%I#WcTo7#N_fmy$`=#(1cY!if>s@}k23k{q1k>cBney=HfW#gM_C!8w6?*ShVX zzn0R5!Y;wVc+QxQgJrwg_%B^r`}(YAxV%(GiOC+f#0hr4tl1YUG*dlC?x9{+cqf~GRllMMDE*p$yK|ZAaV|6^ZR;dP3r3N1=OII94 z#3a_sBz281&C29sTinmPWH&DTItg_mk;ywr%>JI~z5nO=?JpE2&D)KIkT=ma<@+(l zsu4=Dxf9_1yszG73_`1JIFiVs;)HDuVQzYZ*6xQ-&2We)V_1J!xiOJ>A>Rd2;aKo0 zaVD7`8CLTH5UiIPOan?4$a3~i!w6F&sGpT&8)gP2aO{K&XbJ?vn1?5@sgzSlcn(jD z8r2cXB6aeZi>XrwS9EYY5a0U(=B}8CqR=u?zXA~0rqh;IBGF}MqnA@uBJEuW%U*l0 z?nO*<=EZJSxbrONXJ`*T)r?`u*Iyz~?31}|-C7R{FUrnecC%6K1WY?EUj^u0;4+^Q zlTkRWI0V6GsRw6je@agjR(pZ8e6~&&b2^LAgqjJwCsc>>Q<*R{KUZCXLK>6O=taJt z(gDy^i$Ck@J?Cdb!uUnfQc?CmFnAf*k*keN{zr#OVG~!sz3$)ULwdc+=5}JOTf38_ zoxRa1q-E}qN2r9%1+l-PX#JuxU29^`ujrc}GBhnwA1rNy0%m9}l$B9q>NK;gPolpH z#zk5+4b-Jng829_$EFb3yak(Kz7?4Dih#Gy)TSqr4r%@0Em9CA&5+^}2SCvq zE*k@=(7AmI!UPgK_?PyXjK7~ks;gF?MFnongtJcc*RadIs%8~-ypzMgK zpk9++NP>j)d^)R)>*g?RW8s@Cq5eBd4w09xm9EM%aFdQSS=xkxur05uUgX)4dK*4c zx1h1KFF_`4S_#R)5E0y`iM=w}Zsm(8MpEa{$osMCR?3idr0ge*FF}~rADv;7B0$Q z#ZR6yeVCLYW&Kly+7h=a)D}#Q(4<{qnj~^l?|-;`Lmy6ElxrsmBxYqd zVl!~}V{gCQ5ssZ`;v(P5YE3f)TZ-kw!Zo7DWPfCxP$*qd;WIi3n~40GNODzK0xlyf zA9SRvssa5gq@LT&;NSuifJMhtKAg9^5{e#hebNvom zS0@7o9;Y&)Os}uKW5!XQI4=&$S)lg?Y!AzXvCa1X=^WRYsPKUS`;~{FD321p)P};4 zW>fQS?-Yzq4EO%TucCb!21QX$rc(g(yY1G^=q7dqGmB@jdIWZx6%Xi3a`dR
22 zAuYDhu@t)`MZ8$X@J~)I?i_D_BBcZe6X-4urUhc6(}kA;X_6k1ThNQtz$g$ec*)6x zgU+0E&^*_o(kJ?vF!t;SCYxpd3rucu9->4PyK_WjE^nT?okP>4p;aw6?jwFP%X*#? zi-)motdnFFuC>WA9LzVX6aemjZwc0K6W>tJ ze2J=SnI1RurN>&F%7w8ux*u}V)b$(Hq4lmT0{4Iw57~C;xJ<)PFv~Yo>rI8xaXT#C z%z%U|FHdIWENuzE@3JOhYTYBFPxQg`gUe24UN^Fh+|#Y&>CmfC4_O$2y*FC!U$usTQDb*3AQF8AfDMI$tquCPBVTHEe&pfIPe5E88 zsx1jKYrJr#w@c}^>W2D+ z)wwNjR;6ENJZ7MO>Uj_&hyE(F$J;h;zFT3hx3^7wR}Xp?Xz1L&X{%ilk<;5fs#{-| zB=4u4baEiuM8_X-!b<%8x?ZgszWiYvmO|MNd|mTB4XB`XuNp48!O3+vlTEY|f7CZ* zrdh^*4a$B)y;z=k-g$-K!fNA}X;-T&VL~W5hBx*rO3-Y7+;($Kts5PiMe)Ii%9`}B zr>1d;LNDT`zgB!4%slyTL}O(jQde_VSF*uQm+R|RS9lzB`HDjB2uq@b=T#>r*-q65 zav(zbVo3~qV25#5xP=c-qcHqfjjgb}42qB)XRDg#pJN3Ag)2}FQ{fC2N~xFqE9S_t z9lwy9AKNK^Wn3Ig*MlfD)i5moFf+rVbu0F@Zp|YeYr+Y*4mqC)_?$8#{jNdPNDT)` z926PbM@$5gvZiHuESXIf8e5Kp%wjf# z!6Docmx+7G+dHm((=``9(qQMxyOm8@#MacRrE1Ot-reodYbkjN7;(rMi4}L;epPJ3 zO#Mr4+l}=&xJff`0$6q&e{}vHFU%VUl)BL*1@$4dE9TEwzzRodf7dPEl;>P&e5fk4 zJ=!gQdG4m&4R$9z@@Q*V^Obx85&e_Gg~!a-yw{zJ5@P?fo9DI&*TomrU+?p%RG!zPLMRIr$C+oCT9C(oon~z(*jpKXm|o!0+mcGX&sJ|k96YG) z&|>yqlpnb335o9qyelNp38F;-K~R|ttK6J#p*_RP3b za~C#NQ1mO>%@2;6V2a@$?$&vrdefQPWjZwxrNG6VEN->=`>N_%-}NDThc?m^a+r{R z5TO`wF$u1-X1(j`VIy<(V^2MCTf%5f0@u!RE#T$azWq~=$Ukpaa@Yae(=d)kUWx(W@3^%(eJ;IDF-op(cJ?gUMppc{AjN@KlQq5 z??lo=2TE$LPgf@7%#EnT`t~#_p|vo7lPhkfg>1SlJx$0z2f9`chu&03L{?_0@A{pe z&R;u4O;wVx3|uofxv7@|98eg3O1}$Pc30CyNPDm{v4RV2@zo<@A~&wagkgaJX}l-bTk_AQ?xXI`iW%3{ZZ36hu*WOpMX@gGsl#S9su* zh=n2>`2sH@8Oli+ipyk(Vr?~lIz7z#z7Ia^xi>)H)1YIEBejOaFD^H5S0_vnOINwn zWY=^@^w{2wIK8V%)4-B&{6k|+eNTNI`gsdomJ7-q!AEZTgE;6%*i{Y-yGc{9Bl&% zevA1V5mg=@ex~MW;k)>%3vm{dg)W>Piw`FiF035H2XT;r5 zeaL9RXDt8wc#FkB7)CCaM`h|2JC+2gse>V*3tDzc=;R^&0zPJONc>K8wjQ9ehG-A# zW#xl<82q9br|}_wwks!W=fEL)I-`exF+G(_K5+$TYIK97UFgINctcMj+43RfTDyKx zjjPEOMq&UZ%G@6GsbTOiH)x9D{{eH)@I=l`Ecyn%7)_pGeeE0^M$WQ?lND~J)E|KiFZ(}Wzpg4ScMtdV$kf{5kNGF3bT;KBKC&JbgXMN`` z!891X{+$xVt@_7@hDcoujL$Qx;n*KCNbz=E_a$RuV8+o^m|Yxd>&9~59g24tAJ`Fa z$%3#bkM9A0rx-_ulda?QYZw35=XUW_Pe&|iFN*|DNTGw^nqmPA{GCl{7-Euy^H2}P zHH)>qIIeY4N85O9Bm;Rru9vIVnO7!aymUI(G$nFi-|Z(R1kIDe%FW70T>%)ri!8dDV$N<$BysuBw>cjoVW)NRp!j z{dD9l>^3^_EqnM%a6|vp3X$anN*+s{2P}^MTvP4s;>lG4sx0j>-q}`Bw6LD}7MMQH zPMCMP82o3grClZM>EVa#_o%{AdE{V zQJ1rSon8vqkR{m96nO*K0!|pqhyQfzZX$o($%t1piP7iduLPSZsb8O;Qny7Igp;el z<)Bn+UHbLho0|Wr1sy6HbglMtD{11?m(W7ie5FTOUtob+Bs!DBmk&MF_gkpq+YPm} z?-7brH3H7#sAU{8vWWO`?sfaceV%{+2bEebAykv(ulz{qjA53cXO z0ee@b-@lNie>n_r>bBE#IaBu>8*xZmi>i9PrU^juET=^!tZ`r;srY?^?C|h- zcQeeJK$oll)G{`?&y~tDYVKjvt#!+PmbmC=i}w$CYky>;&PF|N5Jy4A4tEsvqH_an zg@P`Lf|A9D-G93g0ykfCr*x7er14wlb~`yE zJE-V`8efq*;$|_5C`@(Exg*x%hl4i~E2kUZ7_RDO<^1r%3;4QLzXW05txt`ArnR>3`c4?IpdbvQq26a=vWX7VYLLSK_56>>Ldoj z*fEznb(8o)zv@oG$?hR@CDJ8d>-xCq&y;2Mw8(=Z`U)EPnrtDA`X6?76#%ql?nD0ie%<|jeW4|S z&ZIWAPo^oLkMF)2o~_Tqv+HLe{`>0vvzOn+*;x@(MHrpEzdcLxvn5M4|8N#ZVUWkk*&+;*ypkLLUHm0HGrp=vSciYRP%l(Lny2!w z+ZSCwVg1YR&M(9ow3Rke^w9yKC2UPQ2%LFUs<~?w5RtPcO0xe?B+$*zEAB zW*G61;vAVg$Kf-7yzV6|w(^2S5N6e}`|Z|k^O3*2xsWfz{(R3R9=vDrubsH*i|D*t z(zB)aQH~S@w@&h1*zco6ymC(e~@k^BQC_isH#O#%Puc_On9-3}#Qvw^z1!?sL z2?0Lb*7D4Bn)e)}3;`FFe{qmzu?H^jO`K#VaQ1L3I0!?yt{NsEx!4U6jrUp6EyM=fW*nJG00_J9SFCOcFpq%m zcQtPJS)4)^47!$Z8We= z|MIYx|Jm#|^!?TTRvfA3sK&sru$oGB-eRj%2v$BV-|7UjZ4EILdTkw^|t zgQP44E{h2&3li%GL?3XJ{IK4S^8B0(mjmw2U(8ETRY%ubf7U(QzLd<;4I|#kqH!*x z2{;P`X%Zw^X@OKyr@TuHYB5b_p&7WI1FGTd%dgP#4^jYF?A`A-2DBSj2)qNq&^r2T zMH28&oKCs?;tO>vPTx|Rr$JR#7B(#Hyamn&*1)}PYA#F$qKus(-!5>&U=uveQ6P&4 zIj< zd61;JMS>O$FrswRz(RRK5`YQy+IkKLbZQwmV3ds;(0UEZ36#n<4Zabp@r&RZe{N7u z0NU?>9vlI@svl9{7XLOL(U(3f1fhxB5TVJfP@G!Em5>vQt5(U1L44|Lg}*h#gw3U% zyMi@QfA3w@C=nnbw;LL5#UA!}_YeCuL*RTXZ=c~7E_<+Thi0AU{%abw zn&tUvtDQ(UTxfwRRxzOcEy4K19++^;x=l?y)sR3I{t3WIq7#YbHJ*CiEJ<#|>l3^6 ze`+}Z-bw4)EWlMP*>QsdZ?U4y!hvOMX?-QFS)>gT6-o|G`5s-o;U2EUHMO8o0{wRq z)maI)>U`BD91yXy;gI-kSAv(u`*SpQrP=x%$i79V4NqYjj08?XG^abIS(I1Otzbt< zIZ+&BUMb-5I=YpLK-kW)#}@7y)6|vpe+7FbNnruoG?@95O0_64e?0++rXHdAcKxmx)@GAV;Nw8i$j9oW}wMdoX>8Z6=RW6Pv@!N>~g*a053IYGGiqQBPtN0MJke@gZqWPE@_ux{b? zly2@pHnFZZ9VR%5P2@k{kK6~KcQlpB|AUD}(R=&sAM3z_lQ{HfJFdv8NShQ%?$LHt zP!>wrC11S^51<%|)eH{Q{l~HH_;(-+MNDW>gynghV^Sse?8*IyJU(&H$cFHZ!tzQ+ z#Y+%*GtE;{$1-z9e_{^|+|&-_@mtB&LGvfc94Q2AyAmNXd=CjA5n~3^0F8VV*fFEs zHeI}8Qm?F4+>uA^?cnKwJTDoa0)02fz*Qd0^6)tzRy9oWW!-BJ0oC}HH7g^)FA_i8 zZxI)J{u4JuWnfC4!Aup2_{#k~SXa*_PNz2GJ8;9Aq4AlGf8^GAGj!_deXku1%EEZU zq^?d|N^O6)gBu4-ornTr8z%zq_ZCqm^EP#b9#=ij3da23-p^LlCo>ZDLj#$GGb5 z>tQe`Q&P_qpEBExIT5}s8c3r_*foL%|ArA&&P*zKZd&0oj!5!?CxN+*(Ke<(z3?D< zs$KbQlGK;ffbSC{?31JvUP;i7U=QQIZ@OFVy$!7j%`JHk>dl4L)!e~Ht zUNd49BjE*nyJlk#j%KHMB1S5B!#aJ)}=fiNhfVy zu3Pjw!yungYQs&)OFO2GZyNV_O|>NlkS)#Hf7Fm%=V{{s{BfjlL>b(u$c}j2-JO<8 zl>Y1$K`hiF23<_9nchaS7rZ%IyxfxTAKn*9=5oFS3jI0B_ ze>YW(S8lS+P=-IMZ2n6Sw^HtM&DPmQk7i3%@`B2&vsd-mK3DspWy7Q>=g%bRCW%k8 zE@&i;BhxSf6a5MazsO;i>Jh^|Hw|~R{osyNOGbPMYs5+N2;CbfM{6FVWM*9lp!Je` z)BCztrBUdA_^iEG;CFW`Zxv1Gv8b`^fA8hDz_3!4%19O37o;}pRSk}*)Ek4Ds3f9a zOsWQM*)aN4f=QuPmdHvyD`41(e)HvNkq-i3Rrj~vgeM$mujKx;E(Sc>FwNz|f7mzO z$9?zUix!t)hbG6O#jy}f{vwpjUuy(HI^`NexoRLYqA<1(CTcpn^>DxM?#9QGf8p_i zVeN}pzIH!aD?shHTfgz(?e(MHi30sK9DQ{UYWmRJ>)5507F&?Wpb*)vZ83S}VQ+l4 z23EeU?}+*xo%Omuu>D$5Jcf#sJcyDb6-YZ(o&tJnjp8m1!3>Cxyf|p%3%I;=q~rIN zk((x<4Oja^qZ~#K_LL;NvU3p(f6;j$|19&+DZw`->$(SdhDlw9>%ZBn1KAMNq(L_| z&NdwOs(220Y4CW$iv4($@E(2NcARiz<`Xu)(xNq!CS%tf7^=07jTn$*>$;_a4=umf zOqKW<@!@Zt;@k!LD7Q5?*ljUoBS;lUMoAWgaWOMO>4+w+@75}X8_lqHf2B>M6m41A z8e?h48mvMzTLLP0VJWq)%#%hLNOMm$gEH)2Q&zes@5_i->xhVt$_{(1B8-AEoKYlj zP?Z_N39QcFH|&uw92A~^YX}P1MWPBm{IN4j6{9E*!l*c2r*ez0 z4{W1?e-+pXHuD>L_0A~Nf0PW=TD6!&51S9ES1s`ud)Jj5VsUCrKA7#gDjHa2x7Zf8& z(>cK(;XJD9J!EF97(mG3ezZfvS9apW4fkA{CGk!W~(f9 zJYM%$w=KAs!(+9ajDVr@g5zOCATDJLPmTm4x=T_t&nB)5Wib}m{DTADZfs;w$UIbWXY^^SJ4ch!* zRv%gUQpX#bShg3sY;`cXe0a=g5p*E)uRCEabxu*TkzrD`e{9$6b3?w%MzzpXGn5P! z(yCO7YM!Z_=9y(PDD$ml?@TY-}ZIea78IZpfuXE^Eb@{g@r{ugi0)BW<3P| z`^KC1b)_Y9%j86)LMnD%AW)q~IsnMkG@l~{Qo;SB>?CvTJBf`v$jX_F(6-v|Rt)(H zG|duR=8>2(f6aA_OZl4`o@m=!1T1clf@~>HYpnV#9SLsd5TcZr6E?4m&XUQFq`iQx zqCECzvU;m518fbuLhk2DO^FSS37453cBA4mR)vMF4Gk-I7@O_Z3d`M${r(Qr?p+He zB7KQ*=!J8X2{kJJPE}EeA^{H}V^n;Ju{A=SF0rz`e^5XJKxMOQ{oG;)!zh8*Spm5? z1f0bAsb!v|m*{OXF|t#U03GuJjnJ%B{*QVo$z4O={S70dSOu1DM<=+b+5wYUQCFTP zA^C-Gm{qXb`&*;nQ-@;$Pt2v@=3jJDg`ST3H9ADN#}j1*D4OHG*`_mckytFiHK<>L zrB5k8e_fC6r4Z(~{diuAXwv(7CKjSd?N@rI_SV8>tn6wtEQNrr3rIdsc zAosQ%nTFtS<@4-FBA^^R2s=4@wI8sk$q7H8O+VJdh|R`2>`azy1i~;n?e6uXCaq)9 zhSJJ1aM_uOD(t0Bg6w$0!|h?XT5j#a*q*nZf1!~XX2EgSq2_eOQ$V(CRWWqsGGp$h zazp}<;uJN>M ze`N2gL|F)ng^4F7!K(nc2og0n%q%n&i>ypk$n%rvd4`r(NJaB`a1xIyz= z3PTa(dx34XM1OU!1UDL}<{6mH#%Tt2Trnq0Ght$xy+A)*B&X1(i~?W5)&$u!;2;n3 zGIH8`MYs}MQIi?n0voe^4%LR0+P*XZf0Ca62ZGwk&1e4PpVs(Nlgo4C!3^|Z2b=Pe zcRlr65D~xaMS+Q|vfSEdQb;o$vyCoaM_WmFfo21!$#%M9H>3agq!($ZA@ju6n$%p-;D$&~^r{QI7^?oP3=!ah*y>&&qa4Dp*)Ht@eeCf8NaM zyjN`%9Pn6P#_Ar`XAEp&M=-u?C|auCqNLIPAP%lnJ1Mx5O^fTvJ*RJ{zPIHHp3X;A z+9LTV&VqEVBiD{JWMQ}T6igor00c(&mV`|fIG*)aihtHUZ6Bzhl z+fyYv?Qb=XekQ9giqbjag>}!Te`3@alyO7hNNycq)N(6_a;zw1pxZRGFRMy=(F>O6 zvFeaMn}!1OB`$bRSv>*4)$*28wbcpxNbz-MRO^UaNVnEjc&ci2W&zKYF4Iw34)vtt zbQ{f<4KL%})a}wre_A1JyU_@oF8E8AU* z(vlv+a)Km0%ixJ3=TD?Te~}9lrm9d64j#7;%nYznjfYVA!|@jK(6`DF3};U2S>yd~ z5U`+YWL3fR8aW7|IQ=JFqd|~k6C#}Er)E%5wXzJ7$W9KZdOo6xov4gOp1i?yGF^o^ zLd8ThpOj%BTB_73Z9FXAIUO6;{%>U)B=-8{aMf}~&UX-g+od&~e}_9F)!djQb29UW z3^K#&+Ps~%b&|V~2BFi6#;r8oy|Z^IP=QUJTsOg%{f5^C#e5cbfl7UV<%gx85@ngi-8a>@aPa5MJsW}@M733p?B!OID z^0orA_eenuM#?G_gSMKTU|6_~ zG$ORc<;tcVMxK6HD^>hjO{al9;@oyUy<Hhv!eokRi?Ds^`qPF{-fEFY|X}? zFuFZzXlijje+kH)YBuWpkoC;A3#j9TGj?>2!QCPPL0Fue1;3-IZ`q6ngig7?m|Wn^ zn&o3j8aXP0-#DtyUHvHT3*XDU0e^tqawr^nlY^upg}+L#9zM{NA>2nMg0Ml$H$CT6 zCuo{zz^OBos>Lc99^;?s&JTmiQYjH|*khfZMWTZ=f3L%HlCGqA#PBeLIe!%nVRx9n-Cd7JgH^ee97xiqa#-%OgTCTGU;PQk^ExiwQgM&=?k zF7f7L-L=9V$s%8eaaD=z_$gUG71aTUvq%%CoOo@ph7hk90_TV|qnW%3ky)}dG_n+~ zix;P2_zIq2<#mpd%yy2xc%7p%Gkv4~^lS#Qe<@LyrA10>tEd#E6#PiyDFhl=(&koS z!bc>khkgme(7PS)f;efr(0jA0NX_k3EX;tt5$X9vwbkI8RCfAF&KolObUPBfp_5H= z?vnB9r=w^pEi^s&`^)3_Bs@KM0Vn+B8F-3M#nZg)X5q;IJe=~v zgok3cv*UUX%A%JazFc~cW~-4$B!Z5*e6={pkK#QOjY`Ht|K{1N2=ZJ-vbJ8vNGo&J zgJ+Ed)X*f16j>)Jb-3&iV&@0>4Tv2;f0IQvZ(+8=6&#}8Jp9*1lO@C|V6o_o$0ieN zzx<33oQ)ERh61HFJZcG_*jOnE%95AitA{i`tR1tU&;vIf*)6qp6RSLX{r=hCp7Eld z@GLsZfz?vDW)jJ6(U03_fB9>8wt_$Yz!^WQ&OVDrw`Xw_lm*|gJ-d1K2RR(ye>#v_ z3*=3e6&9hG2Lq_{IQ9%MRHuSr)^2_rhh+lK#zpb}oRj>zHHxa)ob>f4epKL@OGUhp zBIl6KN`pLXx-Gb&2|%1dw|S5ykvpnp{Z9sFMO{HOu{s%9ToHjMiZ^+x3q*u#C>9LPD@N{@#IrDC8kN#Yri zM}n2EQfD;oE7K(vI4h})AL&i7R~?w~+XY5bI|X5;bFQn%4(F;o)w{jXV!`RYqi&5j zIw8-8z?v!Y+Z*lZ(x% zu`SIV^_NDmX(!bq#C#Ddi)pza^6r<3}aRxV-jc3CVMnIOVMJELp_UAw-VcZJvTdhs+cNM zf1*@|$7~mTQs0Hae{efbFT5E_$6)cg(Nda&b&tf>6ZyUdn(^6$Q5Bl~AHQKB(yC-e z7L3GC*I4r$oT@IB;6PZI9YOmo{kqyP8a0{bFEO~c*SvPI7sE(f76PJ{yRv$qVUoMyv18e zr*YP&=|U%hMPm!ov{58>v5d3@coAv#kC_4@r-!AZ6v*VA>atBiu5VQ+eB_Z<&Q}YN zbYw*=;DhK?r-~MwuX5>EhgYxP<4yI>@^|2<#6i^>X{Nq#$AUD>J8x$#^|z{p&t{ZH z8NF)6UUXKoe*o|?^==66P3<;;>!c1-W$>9(y-y7>P8o|cBwyEzDPi#Xz4u6baL-bugq!5#p?dbWXde?&Z;LkeB84s1HB#=?p&3O7a? z%A~90um?{KhxRvw&E>O+Og~8^9oyDp@MQQ~l+(#+kNn=)m7+E3X7#Fb=XWoaIqA%~ z9sA}}Lq9vCYmlhly!L64gar^Qxb_ zWwUIXf8DsDnL@tbq57HTmtX&+O){#>kYr6`-wLUKj@j!}vAC@}Z@)gRW7Zgxv3sZI z9vdK;LIe;0dz0}zggK>4vzR3+!yr%NIW1B;?=OFZ5DkV<{^r8818_ss+jNg2S`FX8 z)M3Y*De9sB8U5a8fGzmobQHyd!Uh(d(^kV%gU(7 zvvq&1Fy%d72eu+0au14&Y~O5orE>pBRyWN%_> z3N|nxFd%PYY6?6&3NK7$ZfA68AU7~LIG5oI0VsdfU0ZV-$CZBfuVCegWQg(H2T;o1 zA|qMST5`0c)~+~7)eeHjpv}R6nTsT1ANH?rpYC(|GSeU+M{(^wi2!E$axUMwb}Kxq z&cd^oUxoPZ&HJyu{w~hWieOQM(b@a;S(2Y+c^-sGarS<7_LuV;wq@=8&{V9sm?c?y zz8`;D^~a09hEcxftl2-i_}lw`7vs$qL7J!Pz2^)cdv_5p&Uf`=wQJV$xpW>Z;^J%; z21&k95C4z+L3|S@*_rkIP}gN$?ONV%wiiiwK6Ef2{FwgVT2tc&{J5X^W_qu1iFB|y$5k9kKrMM$Uh>|!+ z;?!Yjca_t8};iu_(d^J{jwDQi1}((;domnhGtEtK79~_(D#3v z))on*@jL#Bo+xX4i6KYD2F2L-4?}a`Gn{V!5tsD6+HTLxLc~V~%(r-RrX@M=$U$b zhV*ZDI2=hxCTG2FnsT#c_;3eOCI8weI>c!(PZmcf96$prwZAxw#XFh9k#c|N_Jh*% zI0>>7k!jPi=1MFlnV+w;+=&m0M|lzy^V2v4?3El6FB|Cur36B$?`P^CMJMrx0v7=U zHM1UAhzEp7?bMRzMG!@q!%5I17?>FnZ#c2i7Cp6zA`S8=mAfb=n<%_{a9}{n+pa~} zXql46hM_nr^a9ztQqK=tBMyIZ3$y@ReVm*;?t4k}(hp z(2U*^MG#r}h}f5u0wr+*9%o7eI?)18COBnLeu~9ggPOY{Y0%|pfSEJUee*Xs7a(jDyF`u9RS$+IV2(NwpU7A`R`$F(EPsCVCkm9^h z50CzmFFLM%1ia8MiX9Z;{5-l+i}%eGFNEV-{L?f2fHVCKeU2;&q9R8zR*zhd{o9e+ z-;`2=?*%(}gQ0&xj~JjGRX!3}N32mQ{u(9efBpU8!NZP~5Ceb^dI?n2^@-EyoB-ev zxOAnybJYSKD#@0op>XS3R%)*feg&sT4J^D_P9uN9(H=c$K>(~ARhZrKV{tJ-$6(g* z6T^I6QrkowuUO@H0pN3T^~8G#Mic>&^8xe)v!*`1*(rA1i;;(i*?YP2WzCF} z@j;3bOzeMSDhlbJhW=ro_;#ojo+m++Cr`U#W!Le_0#7lyn2Fr4#zC{^Kspe?x*XQ@ z8@TrE$PrJq`>)U&*I`jsF$#zH38n=OS)LVAwBn8MqgL9Q-lM_ZxfFLp0-slh2)W|S z(RQK#9-=C#(f~q=gS=5QBRj!&h|)&Pw~{ssAN_wlNrDm1nZ->ZNNrbI@t%m!PW=ANBRZ3ZNGev|HOo8*t{%W=`%ue30$8HRlMAbUG>C2qj|3A+ zi2oh0YKDVY!gOGntlgLZIXeM|hqa!UfL|hxBO%0+D2jq&@vC^E=QIS(7Q#}brxUaYgGJ^N6z~Y40#<*E z?*9{_pd$vrjel4cUq;vl%~oXnC}QY5bo`M_8J|X-wl|@pOEE>amVl3zO(QnsLm9=6 z%Cvf%>o61$m}~DkOd^jbJ)_5LLg7+dGL>M%DxHQi~rtlZ?DnY#CMQF!^p**$xRqB?2L=j;K|RVuF8nn_a)NgaFqF zba)GOSH=&gBh9L{j*b`M=7hCz?4>)}62A_XMcQd~J)rEFy;1g{klPVelBN;8i_)3#-A zA(OALh*4Ptb-3fQ=81pHOnS{Cl`hqa1#FyEQ0kL*T1%=J?^OG+Xq42l>|(6h;`0&; z$$cvnchChXY5hqa_=W`jK}NO;sI@Gnr2gU?Qhzb8?sTAk&*C%*k~liclF)QH{3wHU z^5k%XvQCPFUw2p(*5&Cvm8;PE>M)!VN|fctEm^Y?f;|#CNJW2RT82~Qio7En)uJBR zIu!3aDI}e-yE=0w9gHiIG68SZy-GgxSFSu?1wmlrj;Dl=p+YE^adeNnMr>(U@2U}O z+_1id2 z!V;b!CC`i*yJdU!0Qf!*a;^uxf6a%64Xvz|c(&=)p|b8x=#>f>Qi4TQ@5~d^-G81>cQ|v&0lunrR#@KYZwn`B~dpC^S2*>~R@aH3MS0jRT1^`tbP`mdKXS6OE zmEM?CuZGYK-)>n=0IsVVx2#g8Ua8qm*9bfda!EGg6(Nd3D#u8=-u1Glm~I{(i!=4R zdY35Sx4Rx${3pPZvZ=_1y=3+BN{4ZB3a68gOjLhVoY=BQ4JdznRLxjq7VC1rKYtV$ z%=#V-Bz8Omi!_0LDcNgbHwrj8Jp_x!sZi-0zLIwd-F&qyTR$12JPG0~IvOuE;}(*c ze$#OiC(?ktuS;W%-0*sDZ3&W!^wh5Hb@Pt0U$x_^>x{$*lv@FbI?|OaRig^k9A)wz zN+5qb4cE%@+_ajt;;leDkLEP`c}iQ0fVYDFHJ@8SN!P9Wqw)M&a{0#40Q#e6pC`#- zmuS@I&vd3lTNt@)<_d;WG4n0PG|YV#);_f+U1bpwT4$PVcgv|Gr+!0un)2Tj zE?=7mBl%i2HtId6W(_tDSZI)5_p2Cdh-rV9>_D788q{iVzOlVSf0{!t-bvn1V)yI1 z*3oUpo=Doef=J0OW#hyzPPvWO3G6gCMeQj>X9@IV%5z{z`lH?RbG_7567zL0-pI~;JA!efwEx&&u zQqgC_Akw^;8hpebFO_=}X9h&Y-yPTd(sMW<>dQD|T;n)@(kjVhTTe8P!}Nshk4u1i z^fGM7hA;=Ud5O?~0z_dAy8cs-<^ytL9xRTR0>FDCPRxaEcH=el%$(@e4-1*KpXQM3 zXV6Vq)`><+VcJ>Pf~mg77uh@kQB!|I4#B_*WZTTDT`>}6IE%2=@U&;O=`uHRcNit~ z!tdonNgibL6Z```$u*S*=?e$bRQr-8Zn7zS5ufgWEGe_G*R}F23$kL=IHC%#!W%mw zldyM9lu@|wcv>yGFzPy5CmnL{bL@moAzSv!3dCnM4(}@ z3rg`ffq-$Uh*|+APo40vlCjhq!f6`*K|a(dIWe&+<3k3jt>(~PHsH^%qPWLI1)SH~ zO7P~}251mQo3B_vSn{fD!RDCkA_COp#k4aIH zs3x8oq35zN96NiPF1b?}vIrePG`xnzp5I$H1Ya8k8k+%>w*JDTw8-R2INQEM#J`q*a_McctX%Vn(_Z8f>pX$M!x$m@B!v@};) zDGNatB9Rgp_cpOA4&^;hgKkogo&nSB!qHM3_bPPslwWhMKp|frkI4?C!Y-;Geg%`M z&!GI{C%6D0{1cgo81!)aNJ`mYDEyoutAuS26X?Ch8!fj}AwYiYj+oCvEZAVijCDkN zp$(K}FbD@-ZRm|F)b4QDL)`qp$~}+M058HH|0LuyAY@`6@E)jY!Hpx$p|Su!HYnCA zkBgDjupWKEWUisP;3G#vm#T6O9rzSvX{hWk)GrLst0-XUWS!lH^M`*|b3X|aIRgFj zr)Wi!`B}|{@nXbKVZFb@4A-4RaW)^L(n4JPJI$t#Z%8P^^cNMsvm1fC)GRYu9W)aN zj!yzY{LNzj;L%$e^P}bp(#6k3dme?k1u9~IZn$I4GQ?w$X1FQDMQ&#ceaY^;uM$r0 z91axV{fHd|6WeQSkih$Rye+m4KmCrOa*Ct+!Ia+koJX}(bw-&`L3Ww95CN5skex1P zzt&Kt-OY(H~sSN!Xf`%$;`g|aFTZw}$ez_W8Grpwh9P=Zj%Cbd^+j@lNa_y`zYP3lM zI;eCD2iKXDWiRI^4J*!xb6vR4{MyycA&%khglLL|hxF?jMR<5fthO1+v!g_TzSR2L zUcI((PJO&o%31;M)t!Q)T^thF&sP)E)c3|rIWP;y0F1sqr+ijCD{)s%oB8tZIK&Y^ zJN{8-AR4LP166R<2F{pnqvPv$A#;Nrph~mG#ODP0B$tDu*~6ARhs0gRQlp3r@mTj( zB~mkYa%r*VXMT~S3(=_;=&2S-n?~`DBE%{*tBHw0$)BgWffFC1Sb{xua%%MgesW_}2ZtLh;CZ1;SV9y;SR3`R(O4Bp!YU^%{++I#jW=>A7 zc$3kIy*Art(=z~26IVe|X1jX2ii%Vy-hj3tm-deaxm%-?qe5yVqcoXmxm^J_%V@Z0 zBQ94ecovP7*T_wwc12hfJYf6!+p)-q|HVg(R4$viZPsesm0zv|Y4D%_ly3;FbK5-LX=GdLG%>nh+a8dgI2aO zO_ezsbL;cu?`d5>@SQH=YrF%324|w4s9l~WR>#Zc?U2uec3Yi#M{BAvCj=*5#*A)U z@7-=qZJ`&>{Qx~)f>f2|OfKX>KVE8zR;5N<36Jo~A=ytLX&;WP3sH6aT!7cL2tl*p z*?lz>lo}Tv1kt+?nEt4PBv@)c+<)z(Zn$FDij_K|iGro1TIs)XL(71~e_jICLKR_> zuIYO2UON?sMMe5}*eqt`IjK0B*oVn8rk6bmty1zKF*HEfoX%O%o>`?yO&yC*jSb&6 zTibls1+JHKTT=MlHTy@wAct~pI6TQ-dXQFhsRqb#ZWZ%oBP4MKh(j7DYf&4d0R-Z^Xn-m_dMryg{*Ci{~CNc4lZh zYlo)oa*RJ#G;(|_ZW#0J+oOyZtMH9W(8s!b2lEfQ?oMDGC1X`uBy}RQ{8wN=G8j}( zw*KcJ$0UO_Q{SXiDd&l~^~=(n)?z-|*D+sbQdH_G5aZ<-x(a~NiH4F1A=H!ccdw(X zTmw6veqwK0WM6Xf$OXcHP8#d8x0N9)*U-F(CvG*K_os1<7fF)Crqv}r5oW=&3Y-V; z?VKvpQu2W2WdrY63#m3uv$78d>5Ju4k~P*}_L#WltT`rYgPJzm2c_3)_ZD+UWe4K7 zxU95{0T3cInM1()Jt_PX)5Txs9)5}bn|plbtJWu5hL%T|-gBPjDF$(X*~;`JCu_9i9_!9P;=C%8*2 z!V}mGq-ECK+=hMFF6OlK0d1W5%RL!S>|TnECMIOFB8mW5PG7zIj03FXgE|gxnj}c4 zriw?jb8)N2F|%&(yl0CbNc`Ny82OEU`-BK6*L#h6#;T2^0-dP!o2(WXb5izE-#Mq} zrq&5-1FA1PY|wSHCG-55Df+9#=5|K-kC*fn zrwVq21$%%Hf;VX9D#jisiKrwZnrD%KyO>nKz}7H|SBM0f^xWZnEg8Gp6;y#Igk*rb zf$bOc;S`G;Hm#CX8f7zX%)GtudLrTU7WY`8o6RHVx1sX_i3#Lck}ouO@#uLHt+jBt z4H=jAC-ASkn>yH|q3^>@f>Ec}`L<5Wzc1LLy*dD5-}x_Zff>zh#={rKQbOTY?yvOO zqi9+#F3R;4=HqEE)uWjr6G8$hw#WV=(f%6X!{`_S%=1QYqNEWS_)xBl|G(uA4GmsZ1nFhTVU z12I6LB}~Me`S&3qX)0E7!48_j_aK6knLB$}@yp8XDR}BIoJZ=XSMzUNS1Fi1{#4;` zs>s*w!ucoi!z&;`Ye&b#>HDhi^(KoJ9;U5;J0QlQqbH`Lrw%X=W9@AJ^BgGIE9812 zyhF{PYcHR-89KBLvX)KTy}WqUO^;1r&IbTYR+q5;VkId;w!czB(;t57d@?$}is-bk zI0-L0S?#1$@;Lax;4F8SE>zysFlGV}UT=k7)u;j;4jve(72($_iq6k`@mS>1EB?FW%ujVkz zWPK#qHvcT9T(w&Gn!}>KTsur`c5jJd@*YiZN5|KtC|K>w9yZ*=Fp3(U2UIKbST3ABmINqB zUd5Z(@>XQ*uZfq^Zp=>CG+lhyu=#7U5teM%L`ArGEx~3X1ZUZVdu= zyXa^-#=uZ9l-;Pc%2N2bk~`VOtzh?0#Y#E0sD;H~_xnprk(74PIT5yv_W+dIebRNR z3`HHOS(zb7rrhd+i0wUMJJgAKMviK)#9FBkmKrST(ZPk%+NIiQIT`VgKu`ajdjdg? zh=NGCE}Ay;BNn44fEw;qLsu)Z%x}j(o~wnuw5pGv_^&ggEiHUArQAL%sE3rFg=I7r zyPXSru$&Z(oICp{KI}x_RsbJ*>MHf0g7ix&iwT42E(Wt&Ronc^u{*lmT^;v1Upmp9 z-HGp17|I%>qPQ$y2%nbmFBKh{+@|YeQV&Cu)T+E3>hk9-bUGGChMsSm%(Cd_NjUfV zje!{5If1pSrQanVrti_XWcUa;m9TNkXouM!B}%I-qsUt+XmzqJLIB(5o1wx)p!@eL zt!D;e6gWM4Sy6p&vS6By4l-$A1-L){?`DMU%aSz=^V8(r?$b?J;8s|iyJbQT=q+!^ zuD+muh+Job?(-)M=(L#{lh(_A9!sjyeD;%Tr>}=UYkx4t|Akloe~yBz|K})(_`j8i zoGhHo|F`F>qZNDDR`0v3HxE1`f*_}b^k4D@9=%`2)U~cv+m#)QFctDy(}u=ovOA%x zaTCh^=cAlhqbs~+IbBxHUe|Q1XLGw$?T&B4#jl>v=QxAF;X#GW1+$6z z?v9?xa57~C>GVXU-KsjEeTU#;tVhtH=F=u{#r_e&^TyC^8>%+nYxlVc)vWfUpH=wgK4F$hmHXQmblTkZ!#cw0 zK}_9v9D5NF#ifo4JsF&>ks&JPZGv@nbMIz$kF4_1p060q9@O2RC zwX(D2L0y-O%=(Co>Rb}Sw=W&nlP;!N!d=7bpv|_Kuos}Hx(X%Jog%J(!mM{kiVe`; zhM!^C+y|}cyn;sz3g8BZFA;*Ar|G_ZrwnTW4i~0nu%tUtO7KA6ZeOy% zm$5-mn8bq|gqDj@x{o(2upeZU1dluU}fC+_IcTKbs-h|nWj(34kKAj@S*D?xZ~W4_yZrn9YgXp3|^&C z^wn`4S7{&W`d4g(`i;p9>%g*O7p2jnoVY>r#{@ir96%0Q2|ianL;p+Ijs-}=etid1 zp3Ggc_A6hWy(?T6YumCVPKmQ7Nx#JK)TLP)?xJ2o5xDgljLyxsA7FVg*4|?!ZTg!R zOJQPaf899dsxGODrTSul%7>Ttn_7_=NvQkVxg`0XmHsuk6n?~qdW2@JG{Z{>6iiff zu5gqgs*C@dVQP()O6b+zCJ)#!U!0hXmVq=vsv}bVJ)!6d0DBeTFkkUaP?|Rnw{|Uz zFRkCUz*pDn=6-n~TFh^C&1B(1lDWxz!B<-q&>$>XFYi3|ZUO511||d+)SP*|z20b^ z$hO+Vk2A>&j+H7es&gXighE|hvMKpn3EVN7e@5`?pR>wx6BY4nu>qK!Q;tWdtJ_|v zl^3@m3EY=nGlZ58J64{h$k^tWZBpYRa-4jU^KrV9{ZE$|?4Z?j;JuCchRuVqw!}3MK)xcVpE+i{q9{L(vp7*-d6BZ#)J{>(G!qi0Ri|Bg~Jj(I~ zOE3rJ+cPaluLRVBs6!d){a|YkdPG0fsRLwLZTNPsjVx~&x7~?{tq{#$XychL>jM5m z<^8MLdEcST?!U_=bK88bS?%5gK9m@z_83^0w5%4tBX$78A(6eHem%Q=Q>4)sG`b7k z+}t7pNC8ltua_)4$(|TjY$^j$Xxu)7NC-2aL^c)c-~l67A1zq+Afr9)o0d;Nm^HBN zBaSUY3!GZ|n(moNXbbARZmUAn$2*PesG!Cg0}&Sk+vqiFs1U#s7#@DgfgC;P!2e#d z6>rG<_DQaOkXoztGB4F4LQEy#45k=`A<0jOUt~Wy&#rm-Ww!l~20Yq~6o(07Tnh^j zQ7njITmc4JOIxT@(;NgM6=x5Y7xQ88&s}j4mZ*GSj5!=Mm87eeGvKV^b9`PfKH=b` z*ss@3d=e2=TEF2T4zh^h!1PP!;58N@pK}Tn-bh0o;PMyT%rVP)Wcib_VbmdL9!g34 zOn4fJj$&hf6V!~u_l^VF#AKG}aaMDhqGR=EG5`YlJmP`QwskaK)sjI>KJ9fKa@33^ zTRK)TuS}*;AhOhO76nEugv_1;3g?V6q0{-|;N}Ch3E7+cH<~d;MfM#}@8@m6$E`P; zR3S;V&B*q3`cX1F(>779mIX9=*IY=1?LqHw7IE1)7N5GuQMBXon0R4qnr+s5jd(d5 zhX4rcn8uj18Y>R|@uv|N%&-miPM*$J5}Op`G3IejJpp25Y;1V3X>@6A^24lwh~$p)vQ)=C-rP zI~sIM%bs5koe6Dp%KNp!T3~hsG{cwKqEixG$?L4_*D#jnmn5HkB=Q@|*do92EX&sV zdE~D1H#%*`ec(oEhhMkZqz6NNdK~rZ{rPMWvnum-!pPr=M58@%W7MVAOkhku6F|n~ z@`4s)cC+jlrgeDRUD|lqR*7mj$X;2;iFDG8YuE@O=ZE=-&JQp4A3AF(X-J}mB}oGi zj(S>1H%^){+U!#I>_1$ZM_sQLbO17^T@C4|aZvbKKmXVU|!i}Zd^G%|_SyL|$TF$AYCX9Y7wLw6o zxGB=Ye`-c$P!miBN}0SU4|sg?N1K_|AsUAMURAhdw?*hzbk1BEJv#EENZII<>i)Wn zD2RV*m2>sIxL?GtHv0TzmP%Gw%j+Tp_H`%(CkAf!=Qiva2nSKQ4$ zFbIb>JDK=kZ+IEPN|@ZPoS7MAytEL69%xz4#sAm|fz)6iRroh05ad;=R9_X3N~7nJ zBLw@ItI_y*%79(}K^KnlS$~dN$yXjm7F-$*)6GG5fi6m=>_O+H9+jcQXOZtLW|Tab z#;XF961$I4vtK9{Jyt=m9>8+ZmICP6VJU*YTpFlOgrR%-y99XWJ#x15CSHjB@Bn&V z+e1EwQl;wip2UBP4CbFASbLORz+q5?zt&;Ka_prQy0 zZZ~4#sX7fymwg323fWDZ_1^WGW@4h`qhd3Wv6H8gMxL{z72$LE%>f91w0$G=U2I(v z`>FH~#C-bo3Y*ThJz0>|h<2Y&au|<_`I-W!RDZkKd~eH9M{yYTXKG}xo_DH+8_4e= zXo-{c%YY~<%+_57Yu16N#F{+coN$l0nf0Lcyg}i6s@hvb(mo6^dhX5XAb(~?@K|erBq!XC` z6xnzkqdg~C&qHgTUlG}Srf6lE_NW@KC>oVS6H1@kk1!!GE2rk^QDby2w1NXDh-Yh< zqvY?L#0+xCiRnNK=X|iEhx!uBe0bL6&rK}4+gkQ)oP)eQ(t{lP?!<}y{ClpZ{|#T} z&l@uR0?}ZivI2~MxXP(P=%OG$ndMbtU7QkHyM)(S-$SJ|3}-deI~!ytt$X;=^`+9_ z4TyDNsuh@M{m=##=l`HU;~ZJ})396zlt=zts!ZeXq>e$f%4X4BQT43~XkjN&V9}t* z+GEIM3=`agjKd72KDkliws_`mtPaeaW zP6x-lQ~+iYh59o1GkslMhrR+CogsO(+S;s2+|)i!ds`SSFJg0TiIN*iaqGu114+7M zJP!btfJjWiAO^9tyJjxEG`E6A-&8Rv%@Why=SX%?IiI<)kf4<`cj0&_!~83*^Nf_J zJfsojwsM^vkOP?QTw;DxO1T?eA74R$DdS9e2mmyST5N}KYt>t`)mV}dJ?0nE$tsJ{`OyJbOiH`bD!HI2CINYEoBD=NH?R{wx6n= z6^lGw@J(EIzug~B9PesS??yrx?dvw#5`b0NV~zb0KB!j$-=5W4%NPWaG+U=KTroGZ zcl=wYT)JB){HkpQ$J6Y@c*}UM!Q#bq?qhK-GukSG3U$1m3R$QwyJY)0S1_0a6!owG z_%6IU*7|RaBF3Ytki}0R{948PP?l_~inHkRe_AZO5G}W*uZ(YImU;>eNHWp?I5WHH ztf@V%*~xUHg^dOl0c{EoT$ipyfKF&Il)N`+1-=T*E_|WnOSbxk&-=FB&SoprCTU*e zZhRG$>wO1KAh?*;CcrkQ==>$;bw?xkf)E@zk;3JY=Mm_B3M5`|SG84Z6l_EVdR5=I@e~}A4b)Y) zd_Pcc)3JhnH;tZIpILHzb`^KPYHBNXOt%npz|0#@> z)b6tl)Z-dm!?jsJT#AeZ8FT{H`eH8q;e!`f5ii6d;JUpP9lAdwC9IG22T;ZeJ`z*B zQDp59^~x@!HE?UrQJ#bqsk|PL0~D)fwCZW2ctKP_`bN&kJ3`MYYHbq-UCv_yW<0sj zwKaCsHM6925z;fKNk>`mr!o#Jg!EsF4A=+dHrnn0Cpftt?ntzo=mztqZ0jPpx$ZwT zaH&e_@rmJU2meBd1~yhLEkIWxjlD2P<=>1;;`8OcL5-74!rN$cA^~GC_l;=Jp?Sle zNjRmMW={}lZy1<>8$a-Z$FRD(L?HiV|E4|=$+s2qMUXi$C`n^iXUyj7x=RXN3Ki|4 zbVtp44X&3de&Q3g3D3cUMbuQ2p}n;H@{Y?8Q<30`hNU>h9TihAX26}5JcBRIqeEjK zRN4sw%FCslr|LbgnYTP`4p5jjnvDUh6IG7SU(LBEqGJs?!++rW_^S7GZFr`x^%N` zRb4<4{62dR(<+{*>;R!iUW0QdPYD5+XjT*H^OOZzNmxLrZ!e!rD82~zb=`SDhiYO` z|K=qx(jDW~7fNG_V7?~EGXj9LC{<(9h`3k9dxW#2Ri^B;Z@N@dp0W6}ux3?As?4iGU7q`unJJAHd)0{l}G_p2^TK=)mTr z)-GC_t-POB)^a9CF~xRsKVWZUhF{xE@p-OBpw`ktlLA*?d7zdRHknwmF}Pg#7%GY$ z#5vRBx&q~RUT%@+>I6&H`LT_E%wD(mLI&4)1*c<|Y%xL8%;)QjVI=n)_Ubh!)7BSTX4WL* zzsYZ)=$pMfx#Xg>^3x8oVWQ|mpHbfyCuqiGhqV(B5tKj9)P!Gp4+JF2$bijyQx9pmlyd2%XlQ4LbTQwY9t?(kR3AU2L{WE_`#HSWVjPRSo^8~Vha6n;^XC=MsfMTe9vpwE0QHzt* z{zEO|5DD*1*7(#!nA+5PlbPNM3|n?+ff>o;9niHl733>Y3n?1VN5YO8qm@qlhSJVN zYf7CMbx&y9;#RTD_+#&#wn^E}bd&K@zJ6nx9@j57F~_faAqF}feLYxb=O%9;lw-^D z9>|bAF)+9J8oYhU06(f@g@RBCWzLHoEI-GrM4$vui_0P9G)w98{$0;9Z!fvGIks*N z1aQR({o^+3vq~T#sfoXYIg!X)DOdLdAD9ENZY&?A?r2^+G&k%}bO$G+pZZVd3fjNx zVKj3LewtpD`*9EK?`Z=l%b7T=cZ>d0kiIK>0d}?g;{kAX3^B6&S9@{T=tTV&-EUjV zh|QBex4m8ZbeEYZ>7^EVa&>dq!?ssJ5kMjtM?lv9o|PfI?*tR#inL(~zw@=Cc#H^5 zY1A}ZUGjweJ2%ZmO~=+1aqUy@()fjdSk*)|IZQ=6ykJ1Ndq(9vtcW&{7_YZHzakMk zPDbC2Xt5eXxl4-TuwhZqo%D4`)%Hq)Y#Q$DGz;J9<6pYy0XK1g)?_^#yi7(UBS13l zVJp?=0@b<;@Rc#7}}VYOZ_e@PI3n8w&>AOoY}ypORp1osMg8!)PtvH$qi zsQw|MLZMIe)Sg_yIN)G+gi?qgjZUAq({;b2ErY`GQk3#W+>I-J1A=ykMr0v^jWAZ$vsh+i|urJ5nrN zORW6fTuq}s1kKt*ZR&kU9q>U0nhX;`#ZZsZz*+iSS!8?_wKAGN2S48LyXVntZ+UEC zP<>>P!1WJus}Y_w!78jqwOc@KzJZ(5-3ALahY}SwzwTT`#J%Hd6p`d*#RencH zW+2U@b>`}}Ab9Wpgem%VRQFx9s|effOQQ?=4eDwn;;5OI{TbS}{H3eME)E6vt%*#D#A(3+K8!isS+;sG8{v9Biuu+YN_DKSFVV=gj z5C}waK9rp1s3FUPg+k>Aa;H;ZbgvV7+Pd3oD_6I*={}#;d1qv=MK@@d7zzjs|IRUq zIps$kFj8Anmx>1zUQqk8niPn2gT8MTre}MV3{h8oG*^B8mqUB0XDc-WD=loBp5iWQ z-3|_k<(mYHEx!XX6VHU<``~Ngq_ETi4aXfd57NvbB+;7mR8?mOS+5EgAfrtT5q`8KrFI3%Bly!KBav`;@F2KSb(QKg@l=9$@uqC zEdY^_s0VaVR;LZ#Nl2MNznR(v`~b%+$)vMx^`5TQ%4qmRhI0jh=q>s8MTV9 zr5xt^=SCbTVF&@|I@U(^ErHhXMc`7hnIF{~=Yi+6t1Vu&^e9)-fUFt0QmOgnSa!z1jdfP*GFq|Tk`vK^vXV&9fDGBW?J?+)|5EDd? ztYJqJz`i3;A!dWoN?Y@jUdXjcBUoJ7r2px*UHW3dCO9aZEeA9kR`qh@kQT;g6~jNG z1!U_Dt(-PHkXs~oUgCtdSt+iBl^*<#`^^&+pb}NPKlz1_JM-rdAf2e%DVe16@fT$;G25d)lkalCuK?v zqRzS+l{ZoFiXz2#FdOV0`(v6-71muc1egq%xC1!c#&Dp>*;7r|CbY>ppRmS*U?)Fl zp^6_Ax}qG?xxH$PKlrWV9jVd}NI14{MZt~-R<}8GHV2E9=#_<_L-fiQ&iy84Il5N*f2gdfI}es6VcxAa!f_vQ|6iG zhyiJu6j*K>d>ZIvOs)6av)CUs^Hy|2(Q}=DBBm#=j%Lswh@pF$+7(^!q0b@>EdIXUjn$uYp*ubX1e+Vn5O*E2)xA7^-X9OPL1^Z zyI@Md7!2$cAk38Ac&BHwkWE8{FN>V7hS%1CvRGcT>R{J9(I%Z#(_?uQeq^9|O=trx z1~Ix+PW#U}(kWiK)kErl7O04q5bTE-C0sb)wNaeTHwb|q;15liZv@4+7~A<~GXQOe zvOddK1lueNF5Ltk)}HpQ@GE`fZ{VW%vc>ce(;f_jl?zZyl97bHKrX^5nng>g^*J6f zrHmm=);42uJSDu~6}|EYkS%@F78+UL9*mTh==g|&u+K}(o+K~LF1?&CTO#_>ArK-u zU8(=>+D#tTXRvEe$+QT;1p7TmwyL`1T#fkn`JcXn-7XXA6DR zA9!pt2qO?6I!>OG|31H_ePErK!+ZUtEVSJylcwpaW@eHi?TtsNR}Pct_)&U>vdMgmvdx@w6rBz-S4$mmo*McFNwB(IA1qaoWLXxjX9uCs;}TizPX(o z=0XmTu*q+%UkG%nI?bu}5l=^a0=WGvuG(J|to&_(oynMJJ>?7xJ@x~R&#Hi>zDXY5 z6Bi#C#+80p(JQ2QC-ghUVtVvph^~-@O zsimaH-G@sVv-_WsdjQ36g9dS-7b|PKr8b_6&{&&aLHeE!MO7=7wKDw_J~`1 zuo593_o7FeP6}@LG$Yw$?&+k&%E{nRMs7?}vxB(V7vwZ-1^{wGb8SlnwqUpb1D5F| zkNB_sl6_;BJxbx?%z6Bc#TKh^K_Od#8z%r5GJ(eI> z{SRw^VV~F<2Gz_VLr*VG>;=ar8qF*iOZ^+y2}vI-S76y&4k;sO|IMi`yNUcC1?A>=U=8`P-(YwJwmXFD*K>4@(78XY`_ujwTKc8c5s2q<;&|KQ7x%~5g9+OUu?#PZ{;2a%cm8k=a$$jki6}$u~R5QgZ((87CLi^s5 zhB{f&yT>Lc;=Mo{J%DKe2N6(fcpJNLL$hoc-JO za-p!i7E4`Qh z)sO@zKw8q#)T{mo85WG5{>E3J2xBwy=^!#z>HBf`mEe2diJJbQXiC}f{`(nxlKyWB z8Pz01&#v~@b%SL~=h1isv~N4l^`+@{7ohql2d02ub05Lsy}+`vRsNr+$0Be3@p1V& zzt=aQa+_T=l*T*BCTqX(Q_Bin~62Od9 z6}0P$vFr0xT@doh&4Vnv(51rQT~i`@1};Al!1%6BOxZ~&DaZV*P=QaKZKnTDJFd)k z&ED|Ai-Z+e4@EUXCD>Rr^?(I);`Uuy&)62gLIE z>b6!+gylY90IF`Gl#(tF^V-cT2?%eq$4}rb-I36-Bo)hou*mV?&qA`r zkDW1Z`k9KA&g2s{mOU(XVN3 z-oDFto6jhY9*tfN#Ej~W8ix#0J%@9n%Af?c%ZFno0*ATqGoSXJgf~)gc*4_GbmHCq zt9Dax{OXfq=EO>p1Su9LfNyy|zsGsa?w*J%V5&rwJ3qHByfNgF^()|8H$eesw}qt2 zm)n}vX|-t|PJi5!@$mrYxFBTNSZ-$Ez2+!gPK5MFu-z$-1W?#oDB$SfW{_&RnG$Qu z=G(XNdL@+6X^-lr7oGoVlbv$k52+NQ4j$&6hvywIX~(h4w(53hfX?MnGqFt`oJxxO z>@Bsqx9u8`lwiH3M)f#-vfG^$G~SbRa81fjf80-xfAF#t zcdT7K!&@EaKGt+{Gd7L3opN+ndn})b`s^fnELfd#TTb$=-pQ5vBF%$7_fRH+CIdon z*e~VmV7yaN2S^|n0M*QoY*{@@0{nwUK@^qBiHeIu=jp-cI(-@yyS6JCwmPaD$v+z( zsn`e)TuGi6Hd58=*deS1;9S6^J7pr0Wk8?AnS9C7>1VTV9iUaRD4J0D$5TCK!#2&G z8`S3t$ecFTQ8(%0uO$MINk`CO&ap=s9U1NZ+ke)Z!9;Zv0V?JG2!Sa2?RU*yo`NcP zFTl}YU4Gj9!*oY?(j(8NUx@1=H*L0P$8>CaG=|Gp>N{S(+(hHgg3UQNlFBSaUTe?P zs}$cp@4Y{F{UF2Tm+Z|XNYvezG0=Lg*PhCSe+and4L|0BGbKb=N;JTRIk(1E9JDc9+QXrI^n@lUCfNjZWCs zvg)?8PM|>-%?G;Z6ROhefj;BSg`N0MMSuV%##zw)YoSd4F-oU+mTzt0M+bWXe3(Zv zm6)(7G1Y)p3zE-aBtb$!=z4z;W&zyG0s=_K#VQ5vU%6N`NNqfmMXUxN`xwhL+*|=r z2%RS`03u}FqtkotiI?VjQL&+NyPTi|N$nLLfiA*RTXIn4(-Ha=(#nn34Nl;4d?St- zLHC8-plvDrf-LR3r2kqGplz}ULsFd173Ky;(=4?=%BmJNklBu9!wP8!H>vyxDkF+W4j#sgKq~7txUU;(2uhWL9?bPY6Eeo|m4B{;-Gd5VE)b zspq~8d*+n;1(8n&+lyvc;rkkfsNLR3h*F>r36bP9Tct z5HaFGmk*`@zdw0!QgK<#l9>@*Jk{F?1swjO+!>WMOQF#%l)i74tsDgV?5)lr#1+*V zg*-*rBc}8Sy&fm3jx!)oL_N)&p({X$X}xjFcY>DM8r_0U>KUuimvdaPeTQ4^4TdE1 z66f)4G7$}B#OP>m)-$J_)P|4~NT~(2fP%3o7R=KYB=zC$pp%V54f~RdcQ)zK!L=2Y#>CY{2mWz2 zyEqOr>J!a0rT+dAHE%3;r6xq>0`S-?_1~~TjFY!)TPWQfTwTX(_VXfOod&<0;>{AG zNGdLb+IRw^y0CwTu9Ya)JyTtwmQnoM8!7>X=A0&X(}@L_bJ9K2*+q~=+Jinfk#3(8!Y+nim@$Q9}5<=jIqxDm+XRYmnOmVdMh2;VFO=KGi z@+652(WkUCgIL$+19q!{*k_8Q)V*bVfKMIndD;2}X~HiFXcXD*Vz?wAQ%vnK*8|fQ z;K65L=m@eYiqYcC^aUMv0kl7h8UPcjm1X@vaEJj(I`nf1t0$o~_yb-=9v)uX{ zqfd-~L9s0zl2qUydu%y;^yfo7k2veUWO8kU6rCy^y?MwSs~QWli#s;brow+RqRcPN zo~>GwPkElfFhi2WN8Hp%u4(H=n&5`2jDk0iEWi?n=epqydYAD3oBzakkomNxMvb8* zOh=^`qm{DFJLT;GDPs{H7nce?x%=8kbt_IXNjy)!%HveOhK))TXwivQ;@tfk(<&-p zmBGIPkHU>?Gt*b_&55E|F3<;@(*S)zd*n0U+NLp{{@ zuxu;4!;vV-ukku((Y%W4#tp>+wNC!&^}Fs{sV*!jEtYV}Q?n?Akxrgx=^zrdJvU63 zoEcHcN}+T@DrTPG%Uf5jpq!5G&jmKn%VzNBv%XCPPCMcn21YiTDVD^w_D-Z8fZrjIjy7R36P^f@CR}(i{~=dZa^G) z)gN0q@kMeV=d#zyy4HoaOHF>t1YJ)zN5#IYH?HjA#T4>wOumOyQV=)|>H@!b#uf~{ znet1ewI54{0Mbav5QX_rxm2;k!+Ogqu#BpqLyUjQN^+_P{gmZ6+VC=ctg=#b)L_OC z;DPr)NIpDDA?>*b`0pePrNFf%wlcq}OEN>a0jUT!2k@jsx?)d@|DJ%o_nE`c;C94L zchx4QQXi8rOc313#xb$P)&reuP{^GwK>Ms@Ok`0(0Te`yp@x^mrGe&RLdXN-9`s){ zP6>ls?nCLbCg@aS`invkndAu=xH->Ie`IL-w$o%CXkH~pnOyE=>Ha_|OC4yq##i(CQKF`biz4H`!#3dN*VDoajy?@ zsyD|huXN@ThsO~Q=o+akSuGZ6By7R}!9m$Z04T#)TxjtE2Lz{e@v`7wJX!-M=uC}k z2uM3{;u#s@(X4Fqf^(K{z8K36B6k6LmxjxCP$eiu{jE5Yr?aW#|GA}A{0B~UizumL zGq~Vc&f;`CP3jMq)`^!pn0MR|pA>fItb0@&A5 znm!MEpt*MJa2OguU;2Ol)8KpmvqE>fMfO~rmv{2&^_aJ1VzXYM(N5ouHb$9er5wS- z(dMdK+i}>jKJ--;MGF3BBBv}YtcN)j;emJGup`u@VKgi$*g621ya|f~JNmO!AKo1g zi#)~T8vZG2X5Y|hAnq47w&V7|44{?C2{L^(tOLu8X_$F4HLGysh2% zh8WAQ;YPYFU2t1kdHZ50)=;jdW0O)ZaT4MI`V>+wFu+lCZ2taz1oEk z$`T!xXyz zzb8(dO<>YeTaB~5h2+fjN8`BL25~7?1~(h-Fk$$c);n1fx^N@eB633CO6sD10WFPM zUEFB7;KC-Ae$i-kV%qXNxgrcg&ArZ~(|&nn)67RNdry?q=)!FQ4B+HAJy~e+;DL9Z zRMlao*q%(TAx1#jOMsa6yd;}$ob@Ri`iSP<8vkkl(VrNcX)a2UnC|g82jx{Uu(8z2 z4{4O_)S*IJRBP>sP96|^Jil=}8Y!jx7AVDM+A>K!25G1_8z5HR;<$Ou9E>5zti6oG+3XS7NBJ$bxruXz!6Ct{0nHQ*>1; zyYD11|GL3sMd9roXtl(D@)5HemWuUb8imrrM$r9-~Pu|1}MsgUTFgnG((i};BSb`$lit0%*LGwqdKY)xYJWD%_i}Z`^awBLc%$?J zp$~F2@MD=OQxOYC3X`+seF1bk1F_~OrP0KvqB3T+Z*3r>7C|Z52C+`iv{J^Y8&CK@ zK-h6cd?in)wA*n_}-RO;))NWBnAzOYW_0gQ12qhS}RQ$~JlA5wrBph^}pBavl2h%xL=MzZ@YUuzP6wMVyWSc1; zB?flm^nUPv2r*XXG1q;1sruZi_GZ0vvb^4DRbhzK52J==U}+DuM8kmrYb?nN4Pvwh zos5}()+L*!WEJzpd6tw^ET6HiPlZEJo`+y#ktjkcdX?n@9Ws;t&~X+f zKuykD?8m!ZUn`&$0*F^Z1}Xd6t1xi^MH*WtJD+HOIUMWl(RXp*NtNeoxxVbF34@?Q zdAEnQt!|@u0xL6<-$Kpg**Oi7BWfn~J8VbvOwLCD)5O^8X7$W}p8@4Ez_z+lyhrmS z&*r1hrzjRv&!dqw7hD25G8l#UYYv+I`zX}!X(WMy!B|)sqiK>BljWvhDl<|{BvW|? zsvw7dIT4pG=sWaqSNKI(|Cj`BrT+8T)^5Jp6(p*c9?$HeeL=zQ`|F zS|og?mS~O*7%kw4!I&wNX4biE;J0X}aL`JZ50;R9R7_-f{y)LbDq%f&?s+IH7Y%JY z=s5|Y>ZIEE_hE074~$g@fOmu51DPCA21TrYn+Mc!%;>Oj6}P3!_Q{OGU^opVtqY@} zB5amAzB{EsCQ3NrY*|#K`Ph@iFI(e`8!xZNxa-5lrZ(k8z1wtE(;ajyvTCovsyytr z$G$Z}ZK0ZwLoC&=-)wd^5KuRP(WBy*J6RHK@a_=FkBcQpTurU_d+YGPyBmzs87z^1 zA()mKK8UNoJ?su`?E#rI17wdJ9PqMOM)i-i0jj^^aQ0tMjqaDTbt`iQz&EkMV)X^(!hlG8mKskKKRn$xAl_H)J7FQXL&G|jwZ z<_LR$Wl4#f&s>>V*Y1|@9N-LA%!MqPO}({lQ;~wc^y9lh`(?=0xr~3$9}n_>!Hktd=oDu(UsNbZab3Dw+;+g5~$d&K1yYbR>f1jtq6b;IFm+? z-=UD@E+SQ^<82Pl9u1^@;)Bha19S(9_Qtk-V4dZ3ePnA3NrRW#?hiRe6fo3Oa73D* z3TYf0u``m+1mn;_8+!CT4BQBR!Gb-E+O*&UWW}7kOa)y$>vI`>Fl)MS*7@A56?la) zGG$(d(&ktl0Y)|4R`qUoq=7J7Uv;Wi++tyd7qfO6AeA!bYzZh!KM>W26U!%%GLzcj8D;4 z=#n1&n5^ympH5IZaay%hOx*^+cAGUgoQ_#-lA#`s%eGQkYfx!_rfpzq6R~@^HOH=5 zpL%$F1JQodx-;CrQ!eH&KDI}2O~T5&-Px#rgYTY>*si%oQ{XlPd~tHy{h`saM^;D< zWr<8~tbx@U_ftawN`#DHP47Msz$EPT<1WO@-kdb!$=+GY7_+{6C;NK5Ll673*ZdC_ zW0?s`m0Y%=bXQjrEFn=(iuouy!-m#(Y1l-5~m!tBaM&Jjv33Nyu;n73cXxBPYuh$;}Ev@>u~#4vR4_h1Wo>COF-z(*Im`8dXivVnF1h`)${_`kHh znppfKi}EmkeMca0p|_REhgV~b(?paKrsgdCIIpADcyxLk z#}@Hg9fAc2J;K++^LxNFV2X*5QPE)Ipm_q3&XLSjj z*_=sTl6$}$e~aBl0_0~NW_HwyMHuh}%bY{ZHUl}UjN)a3_sYG}fPeTp!l<-f{UPIM z;7vFbxj3tI?Z+NHQ{o(`Uw^UIS=eKb@afop4qL(R@QB=c)HUwz1QW6Uc?OJ_?(Zytms|b98~L|#CbM;&E1>o zu71}Z?&_nVR=xln$P}55b%_dj6wYsdT-Bvhvjr#{8xZr`#l1F~TknEf zf5N_Uoo50X`5WZ?qW7g?BlQ0?n8Z#kNM#a#1}X{OhgZya$@Y_JXH(gEtS-==0lnPTI_F3&+tJH? zb<=8yO=^pcRM>zddAhK-E69ND%w4wIs?{%d1roj7f#O`ZNuMg_GR6(2f>FQ*$lY3F zbrYPEK_0}EK(RbqIP0Cy<^83l()YSOYI{%L|5GX;*dd%dJovLw6otHh+g1>gHZc-Z~oglSN~H{X-_Jwcc!G4P@eh#)DBV*cpngH#EPl^sUO`^4kHk@EAO| zNnB?M^(%9NLtFKgsg{bix_Gnh@8-5hzOrTCNf`PHDh7p$_@c$)yK+Zb3G^7lPMfh9 zT|N~S6U5!N+4`J!(TpIvZ4nj;igP&OBVC)LW%3i@uNjUUyzcjZdMM^C4R1`5Lu+8w zNN54qU*L^b7C|$18D-EaK>5g?*roj#9fYUioI$>g5D=`q0(%H}NzREO{upiX$o+ev zmvlfaaoi`mPKJ^-U?WPGRHk`Tn&8?QOdfol`?lXl4+!sz;2zS|oS%I@#ui3nuM1p$ z+5hRj&e&J``WTgeJUOCJWI+|x8T&XOEO|uAPHIrby+$R!1lOw1Z$H)D7Y)W60*Cqa z5HnP37K-4;)HmPm+k6_T?O=xSdrCxnau&SKU&tTP+In}ROIxU{b6fzdq@zGURq87r z4E$V0-R@p%_tm>S)~dN;JuquAF!9uf+Ydt%=%=l|ux^)sENC%~6AGU%O{>gTYlV_s z{}Ufvs}D(8WL|4RFjo_c73LfSrFpNkxwJ*2VXdM3u;5ahQ9!ACclw)g#&-}`)OP{7 zyGOv%ov-w-n!s}!oa?N#sORG0Nk2jSqxLX^B3q*2vuO=q;G^bJ!Z*=2zfxT?05sAy zjS{MIFJb(Dvgj?8U>Ii<)hu3z=@E_ix|ov%7;D)%iKB-p&)-&eK8lEcV6XOlmNuhO zdhI#5qWqD{+k(}loSln9*lgn0nYtlZLQUs_Lf1#2_|zD~20=QilWbpuf0I`g#w~Oi zsFbdhgM<<(Rlb(2+I4S`s(z;eFcG1DcRI+pDMkW+)~yFMZ*Sk@qg9?=511osAPr!S zjsA|>}FFu z=ilCcga==iNhrPG&wM*VZ^yST?t5p$SFAiMETrDJh2C?b0` zt}KJgFB_&ZTN%s4`Lqt3Eyk}3DnX%^=U3H##4ZH#c;j>1$}F>(OIs3jn<14*k}i?= z8vQw)Pm8Gn{~k*@W`v;+krUWtsBc zwed2DekhP*nSbwGIQg7J>S6EI2R36C_Mu3>0`VK^1E^~YqB^X{fAud3G{Rw3pfyK- zBbPSzGV~anHvgUkTP@H2)!%x$WV4H>S2HenaIcc+TDKoo*q2>ZKd+ z4qG1qgWGgKFj6;jxzO`dcLhe0L`Q6+v+Iu4O^;h(AX-x{3$o5=ugBUx{iUD=)y>Gn zdV1adU48ecHr{Nm+if0>mmAT(k$s{YHd4hSrmA?x>NZ{5`%SbMtS_)0lYhm3dGhb4 zxLXVce8dI!lm(R+c+Dz{oKbmg1vqj^4%%h1G>{i;LRr|M!1BrRZ0@p8Co=g{{DN{= zCGRh3x4_OUDN+r!WPJV*ap8O`Ul-CyKo5CrDxE3vP>(eX1z5e5hKoagm*Sbrb@utFNcBR&lB6CMCVS1HN`2x3@{Uj~<)gd&3t-xd%Qapb^%8C^h7N@bzc z1V!}UD}B&qjww|DxqFy>7PLLQx0^ zd+#z&@O%uc-`1dKP$jN*@Dus92N z6}3fj76VQ##_SM(bDBo1jCm@650;B!(#il048Ba148e_ujCuX$pG0$3dB(ljk9U@V zawFcJKaVW6%oCO_T52xu5t~@48H$2VE($NboOvzJ8TK;g=F)i@H4n-RYnE~${u`~J z<=1VES_@<8LJ>>Chd5Zo%fgRdlX-5$+2;~)Mu+FhXOgUc$Uv8o$6yjW)NjlrAN2mS z55*+eqK;@kOs)ecTqc`c^>$}k37((2zTF|b0${U#hZW#rwwIir46^c48-^x&2p>d1gy7S|^-=wz7nNRKA9hu&Mj_A#Bj@{^cp$jlqUUBKbas@e90~ACYAO~_L!|v(a1Eu0 zrM<7MuH8GplIo_J7}f+(mS-+nm4lw_gG2GW9F{WqEL}{*jZ}3nX2R&F;;0dmW z{ngz#_4}`b%WIv_)!nrUme|5zR?{#+p`6Y!JU)5-vZ@6B5ct^6Li9TSWk92t6_FOz zP(S%E?|c7J-}}}3(Do3jil{yz^y?71AHN&BjVn(`kv|4m768DwUDs#94!(>WBrrHZ z%VNQSEanenO6HDanPlk_AQ^&}_)W!tvJ%@Vd?cCs97)f10Q)ti?vY$#KRgg6{vO-y z9fKHf3lROk07G$WRZ-;p$q1$_;dvNGKK>ksD~*S;Ag{{lvaEsP zpe#zyvdnSPz+M$R@#y*6M}K=1!GFi$B3eW#9Cr$*Uc#v_-fbU!_kFln!Jq!P2!jNU z=3YFw<;yNJK3KbW^XO0V?(BV~1$+TUii0YOY0d;rBFQg)C)ZZ-b1I{RKVJoLyjX@o zRps*G9`_iT7Z{{r3}1@kh(-((&++F$6y>zjce~-hO-5;uCy_ppB=?d;n14)8%~@9# zL`ANjQERFWtqCYK_0ARL(XT>&2A>GdSS+KW3eu#4ACe%C@zC$~-R*cI9*BWh@|0gm zl2`Jt|0DhoE{uNca`0*GcCP7)n z#~3jWgRCePSz7Ybuo)4VEPpo`u?*s{f-ivk#Y0*4i!oyS3o&B$4`jsj zGyx{nNlvUHkZ6l#B^d6QrZag9N6981PFEVj98nNv>2H(c(%%5b<*=F}UStWdQ<;4b z!-2(;=b-sw&{kSc{Q?YE35LthVmRNyM?sR5{Mbk@Z#@GQz-{?rX@5L5lPY2_RYYa} zGge#{$%me?mhBCZvhUWzb_ah8FIKE=9hk6ks)To9_JH}E8UZ{OBqv%}H% zos_HnfGcWNO2*dLTxh`&$Uz_On?cS_OKW$xkF)BcZejm8+DbmVZgfc^)Y*pfwl~XL#yV8Jv|&ad4Jd{pP+{c#0BtQrk9Y4 zOHlL6kLvvmkpkWn5Y7W@JDT*%8qT<>;aKFE_COMXuoqF41sT}-C+y4GJo*gwhZ+;V zY@DpP(S0wU!(&!7!;gz`HOX#A=A%f`uRT0~Kks|ouiCvD?r(d3=AAx->A^Y&@iiO( zTRW}dR-{tUU}T2L2K zahibAC_Ll9Coxyi`g2L%w}W|L&3d%<_kuHuN#grCv@Pb#@*pl!>#V)x-r(p@_rrD1 z8hvIz@@Gw=b|g#FbwU(fYbhswc=NzWC@wuG?#hk(rhi{KOZiraIXr9D!V|Y@Ri;oC z-#4bifot0$oYEZEEN|rS^*C}-3eVr~`#I*uPSCiy zB=YiXp(?4Y-s5JwDN`s(e$NE`&2zp7<=YQ; z{ZzlK*j6s_Ik4oqVbVn4#5C07gNGOKbYF8>pMSCUO5d-DFfAp97{w>JEMZVwHuKAr*%s8v6OYlD7C<`b zF({=3^HiChpZGvg(?$K<<1ZvZULZ7wIP7jedS(JuQvih-&;9J_A~=a44bg_JxBOCk zQ-8))Q0DQ%c=q?+DN~L59@(KW%&GwrjiT&A{0A1^;F~=IotV#={mcyyckCUQtG#E= zBnF2$GUr6K7>9X~q_$psD%7H&XrVK_6cmCbm7RAwhc6@nDU(yyoIO?wZTnWmx=Dgd7ENggn`F9!jo)99Y+QY7W+LkKv}i9e2HNnRyzNS$^VP zIWVah@Y|-N!x12eu$3qH$=BprDu1)J1lbTtQC3V2zHp4zZr5+ocg#p|aZwfWkfmh> zHns=in1WzZ-PGKTSKx)^3=U(@ExC=rat2Ezy&+5Pi63k?PI{g~J*M!ZAWN(Ni-IV! zG{WG8SIZ(bHG-ba8jMp%1Y1aQf_i)ie;z6s^!wNoQ;UFK$^uN35YFNx#DAYU!EI}@ zC!vJb(rZ3Xu;;S``(g3Y6CA|_ghCl%HV4&Pqs;I+lpr%U?cg9euQ+xqv;!9< zriOse_fl52?C@ztMGnTuOn-LEEp~J0r;IEM*3uWa=dx5{R0Ae4V#LGPY`2J@k8Al zb0Lt;hm^R-DTl(zYk|9W8|Fv^i-5~GNPslBjE{~A`J*B}je@)av799$681qNK23uR zZ0R@!H!Dfc7V);20lIGFgXTpCn;8`Yf{r&}U#%HfzZf%{cUI zEl_WR>L{QFWYJ37MSlvxD1>2(lL8=`Wrgdsk%O39p@*l zVQq2xL6S2L!MY36MI2W_5@x?K<5(uXB!9<^<4PLG$*+_60)t0c zkO&Xo!27?UxC2@^4O^*z4?DMJgdfjequ%MzHHw0yPNtQ z;}ORv9s^HA;hGhb=K+=y|I56XBZXGMmD%jN^%Bg(FMqjZu@mdl0bPPe#(HePRTwPd zeR?gT(c|7mir)Gx5Q+o5r`f(H;F308GE*O9S#?J(gE_9Y~M0H$bPF6Zl)nd zAO5D!Mt{UH>G*Uifc$*}Hssb=C(k+QksUdHSbccvN4+6SS_RLi2j_A3JP85fX2GgPi@M|zrI=+< zTd{K>lR>zxx7Y9^XL)kEWbzf>{+F7)F6Ex&-GB1bJQ-@o`Hh3SZ`xKS6-0$di=B0A zy_;BII?5B@)6P_Sy1$V;t^5W-IwVC!UJkK1tSL|JL}z}3KT3Iu_X}!ICBA$mzL%9? znbhb>27$yQ)1 zIu>lK4cIt^brrS&Yp#bE#)M#bSCuvaw|~<$af4F?2y+|%b%0{H{|vSW=Ew1Z4_IQs zr;Lw7)9_ppAFaE}GQnLHoPOkHpKtwlR~5eWbK6uGS7|(@Ol)f~u+}Rpmp%0+^}B=3 z%j_r0a2%U5tfpz)7H?Ie>@Nw@0^#nsz)))tp_dDIMze zaU`oA7A5$DNjlH4-)_+vvh2EqyWnSLw^3r{E1}2QpVm9lF8r{!tU+zQjN&pVctM<@ zPp^8`;QlCk5m)r*hLoHH<0i(!D}Q024wkc~zRjn8F15{)fAbZO1avCjm!g`sk@A&c zo`N}t=2~(kzccLkV(uH}O!dkbm%bBUEuS^*%Jm@81(KP4o%GEPq?z7PaxkTN_sx4u z$RC@#7PA9&!acfnA?UaGEZ6QWSHdC^+X>}f>+=+e%FzV{fO%Z6v>k|7{eMoSUBlO= zchtOREjpw2P2qZZ`t+F#miI2`j9B1f_~D9dJn>0ml8$|!;$pah2%Y+9aP9eY=^{%) zT@!t0!uHa%e^-Oo*0JT&cD?JHaU<_#u&jHYv73h%Dvs_;nBQsxl$oazhn2)g=A842lwu=#OlC7`d1(D=dU9Djnq+FSQ{VzRhg>?Nc6AsSWDTED?itERvb- z7P16BhK~(7GZ@u6te1#ew{kARcWN(o`@Y_&OMuC%7$2@FFU#5zPd&|w^mO3Y*wUt+{B6boDSKc}_Qt0z6=Eo* zFj#2$FfsyJjUz;Dk!eBCEovc7`%x4Al*fdLKy^esuaQI$`YmY`WN~y39DV6v#@Yr` zlr4n@zmblBbSd_FRf2{Qp(x1X>NM8hBBgUw4D8-)Vt@2wgoz^(^W#fYvemOYEG6WD zq|=8nU~mY8(T|EA)di~2@>sw==Zt0^P8tVEdHQTfRC4?DiQ!jK?r9Vx;gmbSCaO^( zHI$-6AemeC$3q?C$PPp`V6kaBpNdq$tOFLrsfoD#?ts{;RLunVc0V>$0)_StJbShW zkb^Ik9e;AK_vD14V=YWn&QE{v2;U+XNWwX?7uOw>@p+*|(_+?EpIYrLhN0k3A|l1! zGygVzC+DePq9}4C+J3-NPzPK8$P8OZZvnnv6g=4?PjhPn9D>dGf9ek~?4S#a)rvo3 zLO6;nA{3(o@=_$S0A^PCc9bPllXm5hV_rBBJbw!Ms_4O`Q~Tcxqf@+&!BjRWLL{f0 z7rj+y-J;B7;`(6MGoE)P3x)?<%&zy=L~zzgl$}ZBMUYi?6;^%C14^LaNr;RjwpA|U zq?pvXH6`};!8ZXFO&Z#m0!&EcQ7nndTmP>aXs3ybZk0X6ED>q#+g5tzJT&lGF#1Sm*p$7n7}YB8>R8#1h}{k zZ2N({nYN`h*DCMV?n0q_>y<7}H{4}Hgt#|wdEl;r9P0hBbBGj;txTqFObso|8!>G` zJi^S>W=n@FC;bXQl;GjrkozK4n{#H834bd|{i>HoK}gn?TfEw3QeusK$SoPcF2biw8ea>5 z**KDJxS=}iXy;okdQyEG6=@J9b7)9!t)Y@U{H~cd&6|!ew_Aa6v4g{j%CbrhyR4J2 zlL_9j;PBx+A53|yGu=K?6szoANf{q`%RO>YcxV?pSOMM)j-j*@Z@n3rm498lIm4FE z55an!2gaPPT_h7I2k4b|=}G=Gmaare93?@P+C*RoOoS^~FSw(n97R(iuUQL%unU}O zY2=>IcsRBhPgH%Jb)f~{P5#T=r&VOAq@+RJ$dq6A&ARCnq{U76N%d$Ii!7Yeez9T2 zs$i4qg_`G;bs2y82}B621Ak@kOP(%=KR@FmiHzSYj4#*&2#Y29=)52>jOY638V4XN ziqKZ0*UxpWfLWnR(cPk%jN6prr2tQ`n2*oc^dlSRB!#%?b0KpNZ#_8_ZLz6xnesf2 z@>Hv|p>f4!{@#@!Zai_>lSku}Eg1A@B-ms|#*Dl7h zvcy5=(fW7@8L!sN&VMVM@0`vBXlHe{$Wg|F5ocs7cQSM;0jv&OnNd7g25B)nVQ00SD@OMKB5*r#evTSUJ0Ku5WPo=t9_dl#{_3%nzn>ih0dHfAMVjE!pK- zY=aNKYu7eBm4lB^c&d%H>?~~2sX{ScMk>Kfu)R!W_kzcLqko(_<@@w9dG~fSN(sKO zFE79hdKX_4pp{+mfMYlZ>eaEOO&x6gK;PBwd0-0n)Na-lB%_oOT zaKpJhMgCo``0sMXf0rx%Hp>-L-uDj7#T=#w;rJodifI;#6zyEPlShjc<2l8OvdlaC ze^IPxR!o>Ri+^EM{c3EX+r_)%WxCJEpFJm*i$gGu;w?qS$`a%`xJ$9kQ#P}NWdvU? z!s0|TIo@~pgI!=C5z)6$J><(sPlGDTPEtu;6#r~0k#{EkJ46k<8mTySd+FiZOGO8i zgD-}W*B62CNlsqhQ6fr3vp`eUG4C004zOgM>K|_l4S#-~CvK+*a-aqCcDNlIM;BjF z5{vR4567;9jq=GT>_k*G?TA9@4@Lb8Ss82`p$F-12ojjI5WjcAg2Y65wDOjntYwm#2+l zuwrtWR(~Dy-qv6dSZUQ5KvYPok6Ch%NYO6?Ay|4^Lf5J-w2fTrD2{RicmRao-RQUz zl-H**>kLG9QO;@^sj?t3w$IhJZI+9m*x*nxxM8_t>qs=Et}gDA}AF7R`e%w=W? z=qx+wkYza>^?5n`syJ1ot*181cGQ>hg*oLi3V)Dfd47J@Lfs3@Q=ufiDiRs)gGoih zRdYP#Atn^)whhi$j_ee#GV-B~ifIYZh!O)fy8QO#ei#YA&{ZkkH#E!$&!iXcm)}x7 zrk!KBrA$->k?KAI$=r)?+uE*{z*xLM+*JdCC@K5}>XA?90qMj_*?jWgZO)u20ixjr zyMI>aVfkz?IwRIDQGecrw?c^yKd8?|(g%Fts z3Iu-kDv-dVk(X5ZJ?z`DCgA?1Cpd2k2RprhxV&f0s@Zb6zU%6i{hIB@Bt_$wD$(g1 z(}YLHyK1?q!A=&14e;_$M(+(PrAl$-xl-(j!$X`vHm&z9H!8D71otQ>F9o+NJb#__ zxmKk7q6KDdEg-e06g?WuUx9zGdI3_3_arbSV}#VAM!sKymzqoz(U*8d%V%}BT0X~j zuRPH>JpZ@h`BMi{L!L?H4L0_io@HjzHPLJ@x+{#dWDFP;qD1+0lV2U9awvh&$ftWF z1JY{Bu`J^tSeG;yQML_@#X**~{RE|n+gX4k3sEH@pq*zR`WW6etkz8A-MgMT%>$2$Po z{Q`N+Ezf7>t75iLbnzfwE_FkDtmf)=ZG!Ncl1tq^G;%6zP`0$YUek&qR!6$j*K1~o zpnKK0u!`r#_r7Eq^sw^<-ot`oW=`_lh_l8(JEL*R0=4Lr}H?$bytGh0+iO zGTBR&H}frjL;Q)|Q{1$U>HEMUaHor8UMSPbVxyeEL0vN0FjPB*BO3ze%2ns&PtrTN zlwhIE6H!dmP!5V4Lp|*iYC)|tetn&srkSLaUu~MJXxxK1SvxCn9Di^Xl}z)XOlI~2 z+VrZEtj?F-TFHrRy}!9M5@EyG?-)66QM+rY1c=9%P6^ZTK{vn?X(`}B7YjpoPHP|N z%_rOD>~00B4+g3 z=yqGv6@A`!s+|UnU>pi9OXs>rWu8rJM+E@BK_j^2#R)U(c8p7RA%xEm;xtNM==B3d zSZ;ojwZyw<`As*Nf2F^OEPt4v?#RiLXG5G@$hgZH z9{1Bbo+u1MzHhb$?!$+QoSxW@b;~Flgn6<*e6Wl1r^M?cl}nWwsWFsEcOcgV2?m5n zGUIjQqtT9$k_eEzscZr@5YEo}4ZEf;hIZQ23lq?iR;6k&f*MaQ%J0T^we?O;ku-z) z?KOK~cSg=MPk+cBeZ3kKZDJ|wsI!27YzBJqC-sQ;wXU<@;92YHSfzDa{+=DG-`g;r zsK1)pn%cv4-au*<2(#^-=s~)I(S1cHOWnH;J5+4y8@rxEzwR;vtDfl1!5SswthKHb z>dt9X$D3h;YFhPs#6Ub{H+z%1-@Iwo9FX|v(t*m=ynjxA?R5_%ZFMP?&MS8(eHg&g zYfQQ|IyP#D23h8d`p&c}-ic&*eyT0p)AH;6c(*rn13cZ<@0wbr@_TmqqTUaKdgNnz zlk5xX?MihusukyCmDt&2xT8ExG>|hlsme(dH^_naHmS&DPB`*3fHhz14lC89gq(k* z>ayS$(|=mvzsk-jl}&<;tF2@HvZfgo#iXt2ajO$-dp(damVG2U-L>+-nHP|^T&Yh zKX+c$4IX+7R+&xwz`VDulUNGdkHWLOu?MCqvIeVXur39X6ZP!Uwa+@zO)`DY&Gh9t zkbj6v%*gar=u7T2N7V}vxFdCneOXgT87@gUP6Q2rwQ*^{20INenlzJ9FP2TMo9<{( z#Fo^`>{l?NY-B9_WUVTNj*-K*du5J9p?o3DaZ;ybQY@MjP2nWmGjYUuiCTv?ry&Cn z51G9E1}qZu#n&R*QE&Q=VbDw}luK&7qJLtRyG=`&0yU(d4B4Y{$v~M6vtHKwVN-G( z$v9y`1@;=8)E(|b)1b|6l=>KrZ?NT7T=e=J0r4k-b$iiZ3 zcSNL_BvQwQaCyn*ld_PZubB-ZR9gnS?xNG3Oq#AXN?=e8?5>>`QAqC0Gx_{-N zDO`B(>*i+i9$Y`SCK12D?ZjE_ZS8pNfoP&GQQsz8+p=n0LdciWddY4-F+uZ=cp zWLh_!?+x0hCRHnIIldcXfDyR`zJE8XF*nrg$|=s+iDud+Wp*kl$P1boaO4XPt$4kw ztwt>DHV8J22@uE1nvh6{1;${i03sd=f3_XMjnGDz$WD%vuT!9Xp47bECp5IE$oR6k zPbIvo8{LdU`$3&IhK4Hs-g(=1=x_Fcw8~rC7Uu@`3ArDsaZ+B*eIqA%EH2;uNoXk) zuHQDd%^ihz>+iieV9(z^`d`5`@fZqaZe(+Ga%Ev{3T19&Z(?c+m%;1;69phRF*G=r z;R^vMf3;m(bK6Fie)q4C=V4Z=2oP?Ki?`;%ifm6NapJX{Y?UWdwU7x>h(J&QKwIWK z>|fv0-RJZTO_5Tv4=#%&*w=IY&V|v@@+dlb^DM&u&p$jnd!4YOBCLuiKKgKdl;%e) z&%-D!jy^1o{(1cFX5BA?%bR-9_REtXW!dpRf5m(9@3<=1zh20{1Nq+%ZQs;GBVT;i zpCr}s)C_kg0sOJ<>Zx7#{4;jEIEjzpvG{m6`PYYkzcKf9rKk<)l=$!@q@s2;d?!GS9eIp*Z72n1=YnZbir>5iccDP6}KCH@E ze+84P*u8u{<6!TxAKOWcQKexOB}YLNrg~}*Xz(<{*+^6-(-#vSsMn?>&tH?QZ z#c`OX_7vM{QuqriA7czsgxDQ`9Pv@6`4Akg!sYc_Iq;xb@$<7zF= za?y01eDqqZGiEsqTzIYr-bqqs-q8jR?6+pon1?Bs@IrnoF48cHE9>mvbalV&e_BbS z;(W!~XYn!KxujQk-3&K%2N(NXzT{`0MaSPaz(w+%i*~%_!>l>!ip{m+#x_W8ahb!s z`F?Vf!$~5@_!@u@dfWnyVcg)$tFCGJK_Yvtcl^SWOIuYfL7;7R$}mv&efywnV< zR&cgraoC=w5fm+#Yq}UoPcn?3A|mZQ%2 z6h)2Td!n2XA6vAIhjL#@ejxeMF5n1GXiB8B%q`Uf8(qaYcFO? z$9L9CqUI1uhQ4KzOyAcxs|E>X)!YmXDFR8t;%GmMRo&wU#$Dn&YayM~HfrK)a~vtU z^k^OpG9P#Zf}^cl6vGUPK^geVNm+_F#N@X?1N2RPHCmYnMKZ2EbR-YA2qU(aEcD^R zh|lHVs7=3L4};#pdBg9ye^auTG?)0sFI+~-C3CfBEE$!`q8_9O3~*J(YR5aN6Sggg zOFH_Oy%6F@ECS_{?w2sz=Io;8if|e>x6?+cYp&RSkg72Wqomw>9;2aMMx?ha39B@= zuK0b^0xw;!yJd4XtU+F_Mpunx{2@G`^<6EE0r|n@w&~}WDs=1De>-Jg43ae3(I+e9 zXQLExLTspu6vKAJ*l0!|yCd7Tt2`0hNUJ`Ht0-qm~n zp=z`_vE9hy%d;>|4$u)>d;LllOXbf$kh%xdE1tM@;NqreF5{d&HZ7TJgT6C71ro>B zPD!sA$JZ|PscggZe~?%}3KsF=ro|J$8}B)b;)dqOCb?(m`4&zsu6x-n*F!sjEbGsR z2`Uz{tU81Vq?Ke_wbyb*soMP*f{uV^k!K_DPu*k6+$~ALMep2DU}9a>4(UT2V0Tndx!8 zP$o(q#n!=JG8mRyHx`y03Qrdc*PE{P{{KhX(+ztW39s7o9c4GM4| zK$b5^Y#=u+hkB#EaZSoTc2tMIX!%9c5Cd>S%s>LPXr^hqpU*q+PbJ&MMVPVtP`ewK z5B3^&f1umO-X`N#p{1}V^sd!322K57dUwBXxY=YI9-#n9+UG$KOsEYe_ALLW!9&0AXxz&HZdzNi7?-drvTTmM>C@wGroUPwfjh+&bVugg zijQu`@ZC{Ic%hLsGPebYo5xFdp_xf_cDsMgLM#X*iO4cL6YgicZHMm*%H-5-DEMd{ z0LZKeTzoKuys*m;PHu5GPPWG?$q;uZ^28B+y7%r>OHK`u({9TX;AeIfnld#nwi{i1_G z(b~;S2qKMs+phsM`bCE5*LD)XMW4s#NdekA&jGg{0{6K8a-yI_Nl-P7tU&PzPl!V% z2T3>MQ)B%Zyc@7&a~y@5?{`OV{PzL^gYBVbEpv2xGFNr$|1ROr8eMVVo$b z4$C%xN;FRt;!{?Fpp#)axATV9cY~3ba=O`KPb}uas2>83?k0bA;3vr!N0oMtT+*E< zba7!0xa80Q0Vv8ND@De{tj01TRB;;o>{h(|zPH36n{XOQfk0TrQLS1@fFdTq-x8e~ z&0-Qt6TTt%sSoQfvgJ5r;bQt6@lHWKMm-Hi9*yS=?J;bFW#}Mm?gp-o@ZG35L{S;p z=g04rFBJg7uVj-UU65l4vO8*vuSI=A)ekH6Jpqg6J{XtR&I+fNxx*C~%u%zvEJi~~ zQAXHHv)I5$T-}v@^B_r=lPfHLic`jI_zG?aZm{~h+HCfJcibP@t+R~3k3!mY`{!~3 z;Yt<48}``f{B8?ePdIBsg7LZ*-h_?_lsT&5t}Wu*$4q%u-zYrNq3 zoatCTUH(OQ1gQFFq~;>mvW$Q-){F%(bDR?mJYZ_#Ra624B14qW>TQ6J%wW~8+%vuE zpd}!mx{ak7S^T}+fn9xn^j=~I=*%Uw4`mT!|5KJ+9li1*+hB$I@LtHVf)FBhE#ZXB zDUC9w|98`4xhJaJFezX#EDhNl8TOD{ilO>FFl(wkI$oQ!>jJ~&hwd<8C^X6WG0+6SpI9^lT#?C9-x2WMYX#B zhYAWTqukV;c({?NrGl|c^%dzKAjQ-wV=$J5P%qUhMB-c8C;<}^R`hr_Ak84XxE{@ce^a!o+l0ZmWm3FG?;SFVH;WCPFNdrEuQe z21h1LYkjg1cWw{rh0l#&Or<%YY*!YW*iIHJZx|R0O;yR6MxsY`Ca9>O50u!*XN9Z_ z#Q)|~!nFt;Yod!>VbaSuXEy~_PYZ~7lQ@7wk}XeOEoxzw|Ap9jNp~U0OQID$1pYJ0 z+2S<&nuwM5(4T0`s8WW7YK~|j21T+tghrI9WX1c)>V_TQfaB?haD5WP%j(ri=wOCA zX=1-Mi^EH8dm{UX?|zR)1Zcv;6dD*D&w;17+8qCaH+4=%fXJj2DvQWGNeTdW=p=#q zM;sP`e^iiYN}R_p&$B65b)Z)P4%+}{jV_4riRHtGkJi-H)AA1)+(H7{b~BZ=pP;d%y=n=pf_UV;zdOv*`ke(Jla??q18XSJ~~&}7pdP_oYWBD^X|ebT2as# zXPj*R4d^+N5ag*@f`y@*IcEStREW=|L)%j?n!bQKi318u`dQmwt`0~_p5+jWx=nND zMgI^&5S^`{MoPO2n(xAbzKp<)2&+V&+TtsI6YN-5rs)FPogti7K5PrM49E6r$N_j} ziBr~uhu_B-=5hPa*;8MncfDXmU}*x23!6`uGa5w@)-(&U}XfQH#itHi_O zuf~*tLzQ!}U1QjfD{p6P#u%`%Hbr_w2gG39N#Puigle-XNa z%?CD&$#_!C0ej2QLgIk-b@6@r{y$2oS18|8XYRIjkRX^G z1u6n;;-eMe*dK6yUr9EZ2o8W#kzYsTDMi8~GR=G9Y%;puCSlty+;T3uS*n@)aIiu( zBi&;jQe}X>G%2%SpRISG=oG7!L3`X|iV#S;QfqjGTbi>;7^h!}6zR$lDeZVbUY8oB z@;nQb>EklVR50b~913g>Vq+>1GdKJb*{Od55683y0?j0|j=a6qrH4<#d!BF=?c6K5 zm=v3o6OCF|QI+TQc{2{$*SJD+3War9$kI1CxgMa3)f3s3S}DIgFz~4VP{Oo^qidU! z#6`EmUVG(lAEMeMh_~~91Aa8JEDH~?gZbcA*2&8GX@YdE3bL5+Oz@;@9$LV900>$C zRQvfXs%J1`+sr(hjF{hM7YgJZZ%7c&h1;;Xg%CnrmtxnF@XBaV@6}dC4NpRB5QKh) zR0@EL0mmyRz7WGy_4>fbfSp>#z)TyolQE=BSlX2d9tLNYedxxKUGQ^lHvQ%jbOMoX zt)}Ul$po!g)BPKXK&f#;J1H4u?510k;%OugwKX8mX=S3aw~X|)bI<-N`@dNF@F)V^ z2Z>gN@B$ZCvHN72z{rIJ<3f;!p52hVXEY##2M4{{`?6-v7qZu;(el5M{ z!v6G>3=+F>*u8Bxy1H~mI{heXM5_j;Vw0lEql7w$HS#gU{$n>=SnD`+nu(6m&5&Oa zy|hA>aU}fbb%jM8%RJJ9GP>HBe$fl4a``nOo4s5v2~0u-LM5nrKK0OQZ)279*bm@k z)jiDaC#;`UZz-%-ic>b-+27U<-MF`6JinWgBO}#coEF7Aee^uXs_a^7QUQltlHNWL z+OWn4z9#rXpb4vXf!aGQlc84eHnqDfrww5_rS8Z&r=M-M?#GJ|P~Qfp>8g&qcIr-r zR1T^^!3kDdE*M?Wn=2~q=a5!E_W@|{-Ly{u3R`*chuk5gluKy~F~i()B~jr=Z0UVG z8De`4%h_JTtER(!5iY@W=-F6Lt%g^!I^g$TuFmb+m}Cq5mI_3G10=C2=1SR95zveIrJyOOg!>hO|5*K|@!{Xgqd00K~w+)u`N(R0HSI$R@ZH zMR}%ZUY)M zSAs+dER(Xqw-#^|O9ki@Gyr0vQ?MdyJLZ}Kn=Y+9jP8<_(tu~QM?h~(i{fM^!c#~$ zw%{?UBS+YysL;EQSMpVVuSr3SFdebg+%&qhwJN2(yaSOWjsO zOL(X5H#S%6uW_3irX%eEOPLr=#s50eHY4+G5;o&lH&$R^iX3+h$*$jDQExdd73F{;YFkViEq>&O$6o2N>(B;U*M@=|4ifHY`@|ZJRXsBr-{u%Mo zpIwU*rv8!@f|AHm-au|+ObG_4Lj-?ji1XdohfZUS zJG2Vnvpo)_78i+<3roMX#=yJ3Ro`-<2T%ys$YHY5CZ&lVJ3&YLQ4Xo$X-45;+&P-u zhT33sSR7S-x0-VyKn>|vCuU}L>1~uKJ4i7(sWZ>;2;LBa*#T>+!qe~~rd_imKCzMp zK7?iMyOVLny_m-;7o;x-;A1>VuQSzgPrD+_EE=1|V3krRX#XD3-Jd6bthfVjc4c)) zSUt*K4kh!jfrI)H!FaB9*-{gD#@1Mxl7wKhmB2Crop>1Ign-Ui)FQxm5O90`mOI^2 z?&SOV9n`6QT>{eHy;2gT2bhz7QLn!dBNg}ONS^w4kic*ByExI=du2uM(L2(xFjOyz zs_AlwC>XUL+An7LmLB9KR$X)KO~u@n;`cA-vI~Z>eEH_i&@~y~5c%lg8IWcWTw$U` zzQYG2>Wq7xly9QZe|oJ1VE9&v_L3S?GeeK@uqU3?4FEL-<)%~*yK&w{5Md+%dQ4Y6 zryF&TbA1ypzK8q~p&7@r1F2aDEB#4M(`qI+i4GWeYs&>R}%3M9T=8Qjvy z$;bHpr5YmgLD)$i|lLE2*fIf;sy z{ORZ$bOBUk@z{wmO;x8gy&Zx;!Q^r$LnI*T?>Fl}S0;~In0x&dmL)nJ=Tg7&rr{du z?}I&TBkh&$pz3c_z)y89vTo6|jSgz%_@M?1?yP)$$8 z_%JHM5wnk(hqmgk2#XT#^=4kOv7_zYj)9pjQveJS^VR2>=*MwDQfYhGE7c}$my|`3 z5N5vb`&D+xLS+vdX`w2h)W@BSFAyWv%8P%?*`dQUm@M$htdACjR`#V`6w;Jct7Dj2 zH!V6HxyH>FqO*UQ07GI1mtAF+?s`rAXpj-Xg?K$WU%bkl5jd~KGdqw0A{exOw+AKXtJrT!WllSk*U}518|FPB% zmG4Wmrz;o;n&bI`l85WZb)PAT%hqQ};UqC_g~j}8HWBb4<-sGv8hWX9EM3W%pPZDQ zxiwV@%})L>s^mYKkF`6UE}WLnFj+uXQKyXo`YpV+kCz+Rb4?g=jNl>F)9nsM%h-1{ zGpGL=Tti*tc0$H1?W=a4+JKKhMfhb^9t6z0wtNlgnSLMF2l#cTPNm}%d<_5+OV)<8%Jo{aM7;nyArl4ZCkprz>9M;hinu;8IV;RT zn@qC4v%P+a*PJT={J=>&RVsb7=8>OJU5h`76U?f1&Arc$2cS&$m`R=+becG*4>tvV zJak^{d3|}y#cfrXA<)~LMP-nPsNa&jrnx^Q=ez?ChC@OEjsvMuf&!2uqm|L~jdUP1 zVx~aRpG@t?>0^V5RH9-5=4bP70M@U-U+VF-+Z)TlvvS-l_SE21$J6m;2eHFZ*j7sSX}_?6(x`{!rhEv0>5usDLeQN6;i(zn-TkOFK(`E9e^#Y#;7-FspJzeKZc~)Wf)ql?uG%6CYXi=KDZqn!E z3p)Wqgl;)$h5(QAc~*<@ZJT%HNs_6YCS*_1rv$;@J;X|~-FEj9s(%tC&-y7Dy1KHt zIqy8Jg!*88Wi7}4-0WQnf?dx5y`+L#?eJ+gzq+qZ&UZ0Z#jL-!d<#r6e}#g4Yef~8 z$9aBu@>kJVG}ht@ylcJnYhgz@MeCjGqU6zMYpws+(+G$#pxh?A+-9LTtZp7cCMqdL zrpiY^x#0W&`&);=lpvy9PI=arXZeSL$V@$a$HrkeSS@tJXiWpBaByo>Dc0SZQvI5t zoUAa#%1M)xuA(Cb?LF8YuCfsCB^&mK55sF*aJ783+vzeEnS$Hyr>x66y3}~kOxN8~ zu0SVHaebR zm$!=f>2RksNjGS^N*8tXzt(TktPhf54)w@vFl{lzQPTKm(gc&h29ivRmibUMm zI6pv3GH4qOni=F~M&Q-t>&xp}U+{TVLir$d1w7(&l{dyhk9 z!$C2mUk)Dc&~T_|0jQ!VydWJ+y1(T$f9wSSKJ;&VRbusXW3_6=JkGO!w3D3b!nZ?N z+PV4Hva&WRcyukg?08!O5RP+J<6pgw#ckS}O?jpbB26reGLPe*Fh}m}t3_|hAFToJ zg4K`2k$188HLtwdkJ;zp0rsDxHslYy9}+YWUhq@+zVaX}cUc<@itK-8INg-@Jk2e% z)$;T?#iy>SGk`B1^=LT)`bcFF0ERZ1`n}BFCPOqPY#!s3T2v@jo2TFe*wg)w=QbQQ zTQ-^ki5CtiyDC^!v*y>~<4<`XQ*@xMOE?O=LF5>+x1dNg8O44(&=;8Y41i zkRLG}vrR38%A1!rh5HQpr^Qrk^l?P{VC0mz`~9*>@dxnlph>_VO9Mkp5zWZ;;o#># zM?)ho!eDXxdwuWw)QQ0mrPoIr0w8RN`KX>&5|9i{KM=3=Z)~cu)AZkXXL=Rs)P6DT zcfj6@8wc+y-xYjyFayaqSC4I&lCLJmf4lpkPPQwbRa-5OzW-D}tqd9qC*b_!Ah%9% z|7G(*m2&i}2MH%=oSuFU`}#SYlJqe56nfr?Dkljer=r!+ioK})eLOQm{(GnQhA8WP zYXN5*U02xM4~&cr{hzld)T0t80C?N2=%f67OaF6;?&Vi9TvqmMj6+7>??NLTuf(?* z&dGR>@G?PP>yM3{q5g>=8n_SSXvsxY+}B!%kz@>^475B5gc*z4vcwmaHl#EB(%g3- z9VKj?hRTy^m-o>_#_VBt??57NC3sn7oN??UNeZ1;)#WAz>t0wCvDK*n3@~S zVUsnwdr6Tw@UK6v7RK>SjN?@?43+nFQvQ5?!?E50;RL7I6kd%(ccuC)l>bFBgNtPu z{t_y%T)`vR%7pz^5cn6Aw7iV2$FSj$%J9XY*c=!ggB=n_MDm@G^#;qBuAJ;8@&Qh? zy23=mZa^VwZFJ8W+C8`BCep7_AT@@(Q_AFXoOYV8gm|d{=lF5E2jQh#tEARNrc=L` zpDhEi%_7x_7&>d=W#;>)ph|W)tphw0V%S${&DA4`o=-~GYAK^aTIf$R(6N4%9Cjpg z$7>t)AU4A!uC~5%G8YkHu5!U)2ml5nGS83-OHz%s9#or-$x+P`!lFV#T7QtuTldR$ z)McPGc)=^d$avCG6TSfWa|r}Cx|$@t$v$kV8iATxiWJCIkhVVcY&(H5g&6c1HB!r@ zJbt{DLK|h1y{9r8z|J*~IlV%XJQ4)`LVcHcQM0>YMU+O}4{5sZOx8hz5#T$lPXAEA zUqqwin!rY0vm-C|ID!}Eu$;G4#aX7z^-*~*pawGn0Y|%G|3A$kwZsr%(Ig$q#~N}4 z>T%IgC(y_lq(qT*pUssNPE&=>)zow(7j@6nMi}ieL(sq~h5gE%M0fJ>I|Zt|Klfyf za-eWcbJCqQJHDdb^oBjjGC&w%YdqC13wx3sE|^hPa_fgpmN;HK?k^#Is`QWatpTQ} zSc~Y_Bt?tZ6Lz_mD7;ExS@D7#*n;9_G4@y=_ab;qvk<;hEfa^(-jP+%(gZK`iBzlJ zdAgqjbb6K8!`O^}v-*5AS^@K-Pl+O&#ovmhD4$+50OM<)gmGQ(2H@!?q%NzLyq!@4 zioU3|e{Gzo*#DKUVvNEFihKMw& zOby9Y$~sYD-IAA&>fw2%1%0AeaS>iXIx&zT6e_r`bCmJxunl4W5*Ok1kfz(1F2BfX zBy$_qF65oFxjReN2T;O#gL0M*?x9KDQ-?!5TdGkxlm^+;HFiPaHsMQz&XjGxUSGJo zP&BwUnbd`WLyEkIP_8T4XU5`8q_BnDkscv>8O#YE++3YzBudrfDW9{EeJ%Mleb`$c zqqJlH>c?X55sPXnb>|QoCym%YQg;93pK-(nG!>BI5garz2pFFSgIoM%ZScoDadNPE zhvihzs|TN^fa6~mB4o1Qj(@fA{^bSYo)pBbl%}y}aHS9CjK9d38v!G+YeJ=O0)wM- z%9L28*R&jFlwDM_;jq2D?5ZhX&IqFBmpbX(V#Vpf6o!iWbr6bV+him@0JTSpF3!eG zA;2ux>MLxi2gJP{kkJ4v*ZEvzJB79I=)e_D7a7+sq-FcYRIJI)hAyK#lX1cV?Tx7> zY%ZomrAFU85})r|cwtL-Y$2beMyEI_Wb$VAx0g?~T6#7YfLc=lx=x~R<2#_P{UP@8 z{dxBap4k}a%U!@BzH_bp7s{~UFk=M%ewI@FU|=64|LLqJNx2@X!KrVcwhue;3Bcel z$7^9kDqr0Q|B*#771oiiHjAgNo)Mwc=%Sn~)El%e+NO#5C#|H?3lGjHY2<*4spp1v zu9s}bhWH9T~)MsW(Ty1;^dwF8EB#-Um5GxAyz z4U7Y9FW-^n$^;kR^pxUgI-RJraX=ahp_&$gP2Gcd>0b}2^nmreH8W%SW0Q5^d;&0V;DqfnDkKo~uR z5F?98Qy}zuVD(V+Qv`B^n_xnOwLQoJ_M89oc9;>&NV6+)GfdB+%W-W>n!j^v0Avj% zP$QQ9S$U9P+LpWSDXP;)I!h8vD;%1FW-I6RVUbK)@k_$k2>9Cn+{g}31N1}T+crzOfUQVkfT~nw$hvp#4Q75WS3F#CyU-%Auixm*Ed#M?{$()|mRHJl7fU87g+)b^i zI|A9C-l}*B*2w3amJ*+M`r=T?T2-J(!o%rgCshQ&kQF!{RzpDq=FPM+A*U>sOQhk_ zi~Z>Vl)0X)+i62t5fAyG)B4W2}3=9Z90pH;Zd^I2)%q341N9upa%r)r z?704o?*_g%;UBL9qXOE4%mNq8a|zP~KR`jXk18$9NJ3xn3^DZz0_xt$rL#l<`cVjV z-FPHPuLc({Dh)6q;9dhOkH+Ml$z`h#SrV+LKdiYp^K}e51};oGzH3dEjD_}0mJmK_ z9C%Ec4OCvgcX$Yk_FI|e+?hd>7il%-dvyCjFTu{fnG%*pB0)9{sTYECzoOYUR3KJp z7DBx2^frAOzr-scN4QugUknHa%QW>SJ7H|I%5TL`_r$IRkYlL%Z+EzhI;L=C!0DRa z+3?BI*<(1}Nl?GZ+|5T;m@RBgV1W*98+KH+-ddGhNGV79kp_+u2)LuswN_{x8(x-# z)F9`}_)tml+|lDK(dj)!!d1{E1j`QHXN_RJ+35*5z`dE)u$wpPFWBwRw~!hX`aeJ- z5d=m-ld#@@Ke)z9gj1L`9)Wd_`e2P}CQZ51V#cYPx~*~gx*qD?I!bx1o){fIRg<)p zY$tZ9q?+sB*<)uhw!u*wR=IctFsZJKV!XeY5tlQ+o~m5b5o@Jp|0y=h)p3XNOqRp` zN-CkHSQ#Zw8xgSv24{{~$4GU5>yukhl7!v`(@vqa`ec~ zK1#A&0ePV8wO_Ru!X`SDxjm^$H_Ql+R+$Pblhrx5^rW z)o~G|Db7nDh+NE=Pkl}nq@v<2N*E@;-tHMr0Nkl%!cuT~rTtSa@)ehTH(z=?QPb z)Z}tZv^Wr46;1q!JwtX%FrAcu<-4kv^aRHsFC0Q!cS!;l3)Dr^#ErM?se*({g(lM%dOHc0wE( z$G;i5vG}F$>Yz0P`NB^75K}hW2K=&NEi^EArM1Uc@`)najAVUqL9PYCXUlN92oK7l5d!Ll1XPXhZlIl_nBv${rvvK~_cGOh?kr|q zi*t3r+;OH#N-cX^MtOv@yH7_!V)1@QVa@ija=pjX*Rf8hNS+ecqfiXS0P5XQMA;G> ztguBL=2fByc7ea4<|KKnrJ+nR(l*bS~0?RxM{_*Ci&Yo zya=kXUaX3xU@3VI5j*p-lBj2bJceuf#sbOYy+pU!?d_~2YiihhLtc~=JET<97pI`s z?huDQ6e~G>qu~iVHMsz3BIM^Rzv-Z660=(i9*Yeuko& zdPHN`&y!7^nC+Bp>TkOaG_ju;E1bjF*5Qx?GSS!Qt(o-8a{1lQ0hjodDpu+CL;M`x zz%klMKkcqphpGzaf0hWxeaNf6kIc|3vMi>4K>DeRTpVA={yEB;E8j04x#*ppJb)8; z0&}sU-|48KiCVq#0G#QckjrIFTzaVI$yzF+ZrLm)^3s_baP+93o_|+g z-pfSO7BzQ1emg$jPOZl><@!-^AbRe@Jr5h-^Urrhzqa$g9F;Lc9EqOSmf;@T6}Rwp z=2EjC$Xjk&ue8KdJ+^MPMhp1(c=d@Mq~AjgsH17_T6s8V0dd#fwjHi!O0yn2+NfzF zhP0^byBjaC+mopeL-9{5r9kt%e=az?8ZhmUGzf+FG5L>fOR?SoCoZ@4f285=<#d5j zhD#_kEmgK7BmOxkZlCfg6&t^gvz`W1JXP#kp%Kyb6G%8vO%m&Y9@uQB9Gn{@EK4@9-Go^( z$x}=Jio*RHvI9%2(^FTEcT(_H#&I@2DgSF~k4-PT0)SLXC7fky%@TADkt!SRv!{O~ zsS{$4J_x3g*sny=Vz7o&mqU9LIX+k7Tq1o_W{WvsuAtUhib;?L?v4`n z)BuK4Q1&_T$`%($$W}GDKWH7EhvbiQ+Wz6aO;*sZKP{_!B_>MitHyFa@7_ypF|tAQ z+r_Ljd(D|%<(@csX*sFqvBNCe*%5KL*$y7l6c+NpuS=0G{ctz^JasAtFd z_2%O>ntJ8Ku}X@e+Ee?_y4O-puK4-6FTu5Pq5|RGk01CfGo%WYfj)t(Lto`0mgE}6 z1`wrzC|04Tv*h9zo630_?UF1FgyvDnk>0-`0ZyjAM7i^-O2u&l{N+Ma#g%UdVw}@A zE?B{E+q>1s!^TAOV3*ym(zq0L%4M)#QSQxe2~c~KuG8;v^4`fc%vf{3> z^h)P)ie$5jbGl0zSW`rXVvfnwmXW|VD{0PKOu>eb|vm;S?NeT zGqX}$846)Hb{OvdJPu-ECCYGIJg1j^y=W>=R%bAVH@T+mXS&;t{~ptJvB)sX3t-f4 zilN;kyk{*L9ZBlqcs|&a2otW$T+P5>I4`e03nAv&$Z3s$9Yj5`@>yTzt2#%rl6`Y=aVtr=o`xxioR)iZnNBjqaL7XBb90a?ah4?tIx-B)qomn6nnW>Fm|`#S9G!G5}jD~M|Fatsq) z1(93Jj301SOs`YcaaEgW!Q3iV<#TI17tiD>#qbKvf)=yG=%=26`|nunz$@Cu{ieIJ z@a~+uS+ZObn&&e|{a}R}Hq%r%rdRU$fh|+%Hqv*~6Xjo$8|fF52=G=71Zb)8!Qr&B zZEG^Rb7~xUPHJ*sNCopPuz-Ux+txp|kDuXn-2Y`3fSX-nv$wDO;A9C#C*Fe% z<-%89;VdKP9=l3qC;O^aa)>(+>Ev9dIyoRQwri9x2Y&X8{ zo+-lE(rcI|tk!;TY>#BVDu(T1KbM%J{*I@~!ERUTM?*A>m?h-p704#|ZlyQ;=Z% zyK}TY-g+%GjM+pi*<|SzlgJBL>R>U^Z1l=FO!sPVJa*lx?6qw{vqDcvRjClTf%kPS zx~+!^0;=i0G14W#0!SEAL3fz1w~uv>v8See2!kIQJrdGPmdrgqsj6rt5H7sY{9?#yeg1M{Oaplh1RLcHBhAtP%^|_wVKV_!Bq&Mar+)U!ZoLxF)k2(?uw8bVXbsfx#pm%^X8KvUzP-AnT}BI z0?~56HJb0dFCdt82IEC9%UHNYVQwDGvyamy1vR5=a~iY|ZxR7c5v9 zW5(W$RyibS-B5whtE`qP>^ssZeyQ|K&>0AZpDzX#Ph)*YK6Fi;vD7BlCB`hqt&047sJQ(_hfGvs3D zaR|q>1L3zrd5JobE-GU#U27bjIyLOftOQJI#FxM%)V+JSP;c&X6%zIGowB#mhvu;gy;m=-+U$iYdr9^AO6r*un~IohKkBf00uVYkoEi0>wu3H`MQKJPGYGDQ?USUB z5&j!>&Nf{AqkuTD4P>naj5&g!IpyD9?w$HF7jF5pqRCQ^@c4|T!nl{Q%V#jIzk^pY zY11}IwF#;87!8rBIBA*{GT5N1SfD<;DaMUA`efG)F>PP~g-LMs8qzWk$7bCj6UEbZ zE`V~;tj&EnfT^)x=?{2sec-X|r0lO9KtXK7oTceh9jW~C+zuUQG%J>^&mbF7cCg-J z%mEJKI!QftVB~KmC+q8Hixz%Ub%kf2Q!c=XIc-oZx-_eg$@QYwBh!t2K?J*n*Rh@# zkO}+cb?D&QsH0*p!5^n3snpeZYJZ=L1o*1`&(gbss7zN#gHYl%H08hD#jOH;6F5O~P1AvDz+RJeVhVA7lZ$EczI*Pw^_tCPGnLueCH~{_PIn!uzm@uWeHS)3#h=Nf46Zoj^p<$0>6^}x%sG-Dg2NIcLVoHDn2lrz>?-sUPyjYr>h{C zB9@$bLM_JZrJ^IucZ7DykW@zw=u(E^uhx{CN6|I_!NFv zr@$OVV5n6sU*I~I`UeZb2VcL3^6W ziYS;xk7)Lg@pW6lb7hUn_~nsNyhd)Lj0eU(gE7GdRiY$>7q5{_VmUlOwW{gY4s|bA zL!kE&Xfb(OmnOB6m%yfsXOubYtYO-SLFMPq8JR)5?lgMa=AHJ}PB?k^=yzUCg@wgB zs!d8tw`0h2cQd6|%mH7?1SrvYAigW>|I?iElg@SB2Lk`jbK}2bO;d{GEjPw_#V3I7 zt+|QoDGMXlzidNZZbnv^gAv@OjhVZ6>X(Z$+L7}AU^wg>zvevn6>F%ru-;U649}uU z;}OelbGO$9S{?X;rrC1x)#njo>Zww`*HL-1aljvdI-QjzZ*u4z1stYs_#E-N>D0DD zyl_~&?@j7ahxyx1@}C^Oz%pR3eT|O4;)pykbDhb|8;F0aNf{)hmOR;K_}9v)@oQ?x zAHWQtF5cxWHOn(}PLiuLST8k6&Qn?5<0q&VQ^hkHpB#W#z8l`*k0%iEyFf|A7Ip{T~y0jFy zu5(aVGuNX`Dp)Rh5uc78CJ*Fpe4MSGzPEKl&*K9i9{#2~;QKz&np=1&o*KEno_^9! z%xb2A871ZSXyyHT`6hT75*u86s`dV2q@Qy*HUOl{byd3qU`Sr??;QL&O~eo-Ha3W1 zld4nh{>8r&@v`)8!gkq{?d`eAd>qUnL?3qF)>UQq-qIg?Tw(v5JME^+ZLw$9-X7;` z%n*X>&!?Crm{;H$@M^!vc)z}^YjD`@_>ukU-v6$DESal$3~hx=dHSp9#XsLS;yaEQ zO9IHlebpY$`001=&0bfwN_FTACrY#*@5eED`2Y`&NV#=wc0FNE2Qv*7J}npKm?y~g z9}3yGwYzb?Hg-0%G1(Q_x1C8PLP*Y;06H>Hy;Q?it^W2E!}Z5;AV%) z*Qi+>LXZN{ml^ZnQPb^DD${|x>*<^kC-kh-8B(`Lg+^}1#vOx1^?qfsKxJSeHkC4jm+EXf`l}&yxmS-$gtXu* zAAk9i03@V?5(Cu66{_(3TPm;2R{$$Vp$Ozt;6lu{+1_exJB_7aj+T&N+t$VRQR% z@q8pjsK86BrIl4LD0p7V1u{-70D}C!bRc$|e}5{iAywi~;ZGw@C7UF|gz*yVxXQ%8 zM<|7f$hR76nSLM%y97l8WWX*k!#Qo*^z7a?Vx`Nswu~x<0^qvR&4ngil7=y$3%&1H z=sff<-J^yb3DTf=-QMsAE6HF~uE1^a`^*y|h$8OEUyl|#&pr@%J~7;HC!kqo>W9c6 zf2ICe-2I{yY+cdNwqs@hX#&*2!X(2URN*2?nHKfxk+P5Xk4n+U34n6E;dZRkipyCx zvHg-XR!l0PWI`!pyI<2etM6wN7})1WykE{ zlyryfDB=(rgB7Vd$RMuy25+%!AjWakz@GgGT`)#vEzYkez%BF`jG^caKaW7 zs^!0Br-tv0vAZq@JOCVK4&~!^uqYh43soDNTG4F{L<;c{{m^mPKp@~$xDF^FbHK(% z*~oD7o3qAIJepT-+&uXT@m*1`ADGS**hzgaL%DNMP0D;7(L{WutciUpM&L9obJ;%vA zP2V!eJ;8|(H!FQdvx29M*hlTHt)v?~N5kxSK2J@8dKd7lcs=9dlOY|@S>iQCm@Bm{ zY5cqR3|CY@8^A)s65f`she)R}f-ixc-BB!9wDkB3kG`~&L(bC~KGrgB%Fz|K0ocrY zwBRWHn$jgj(jZxwECu^;sSQC$MCrL2ovauNHwWaWOmC+yqEJI)s1!o3IJ{vv%ZdwJ zRSpgF!jr_kFidwvqX)I8^|2TMrltdP;N3eKnwWpD3&8o;(J{&@_E!rgbK@gf`od;B zsb62kK<%bpNKBv{@&;@mkkZPM(H>Mb@j5lKw{+B|GAQ0-ttj9>Q|VyH{i@HOZa3(N z7Fwvq@!(eBIur2QTiuRtS;yxeXeOagR%Oj6C1OF0B zsC3jx%`$IHkGkH9y}Bo(QUY0PWe~V4M|HMQ27sfL-4;o53fhT2Hkg#&;$WKu;Z(oH z5WArLcD#lplOP5+ts+(_>_H40ofhRqA+p7*|L=Eu7if9D=i}TT0Zt|?b@R$~-B%7`iFVads6X)q&`zO&g#gB$h z0)U3zQX7O#FevE)+;|xX{2Y(mmbJE~5(%QEi!;COJu4}=&g5UES3_3zU{i?H$H>@M!%=++DWan~3QUw_(FTHgj zR1j>%U=#l6f7m*Q@IaerTmNx79kXNGwr$%sJJuK5wr#Ux+qP}9Z=dH3&z)9{ss>fh zUTg1nxsLp86U}%vSZgdVBpZu$;|3;1p*|0vnG2vt1dcq6U^I1)Dv7slJr`;#=Nvew zlN8pc=)K!hzV@Z8rK!*qWDJK zx!AwLibNtVtqF?M+Wjfu3AX9`^P(QowN@Asp5GdULleTQEmtgx>irnaZ~?@)U%W%| zvv;D>bYz;6zfk9*Oz&O{G$V7VZH;vu7m6{MG$h1ooi6?%E6l0g?IUSK?Jo)RUpKmD{|d}DqaCpE5|}qJ|{P}m}4SmFhn8-y=wgrN2uZ5;P8~{X3FpPB-lTt zf%ke+#jvn{%Q#^4hsqND9s%k-cd#Pv_;^cvw(4`Ft6kkjR2t#-4GZN+WHrq7{QQ;9 zr;hE~QD$WfjCZsKtIM&hub-mz9{Q7Taqq2$jGGDf#@AJ82 zl$)X>mP{RyZ;}5!*TKxEMUB{qrk$n|U$6Avt$F9HMKzo}*1RtHURm2oXol1ya;$VE zl~<6;80GAwy2SS+M6nP$a7X@V{4VvioRn zcKv%xZ+FxVaLe0x*#Yz~IoTfULbl|6u}&!1ilkm!_5lTIt54M+?LKcv(X27y;w7RVq)g_K-@2^V?~L1ZWo_sv>fSSq{XCc6#MNcRND zbYmRo)+@DwYup$6qQKzGShqlt(CqT6fPg+;{4AwEAOt312|yA}x5pkDDYRK&tmX+v zFby?G-OyPP=_cF~h2v?zvtSdxI`+Vk4%koS8VuJOFvod|zB4!h&rjA*20ESL!D&^U z(PdOP=4e!W^3RvF&ghmhGr4^7$;PjLO+tc-lVZbm2$ScAFsy{XK)H2=7)@$oVu}W! zJJWDnnh3zcr~!t&wp@A0QiMJgN%d(4>eb zB3eubT(k$DEabUX*M$^qmf~OU8Bff|R)uDI4B@d^!73N1lPcC`uW@*h_28~rx64QO znO!lTVS$sq@-zzbdFjB21PafmQCd3sw*zL|vmc8`1H=BAk0=`wfA*AYY5#OWYqDq@ z$(Z?IJFwLTwf4=G2dNxXe09(Gui!MG9NxDI4+#fXfVHq7OCCD0Wi=q7t=F(FkmxC| zHJK&k1XdQ6;-%WI4YSS2LksJUay~0^P|UWlJg}T_aKDku>BkBEenlX+kcU!d?QoD-cz99}NcJ!Tq5LZQ!8GGW+nhDc?#ug(gG>xiejmv3vqZp# znqDCn9V1XEDuUCv6a>^}#o_BRp^)0gF z0ahV*@#e!269Jp90)G$FlTUzTW-`;|tetl`I00p=P6jF7#$pC-Z|4@4FbzYwQd&jq zGC>_O&*3zW5l|OZ-u_t)S)v0ZbPtubmg-tt+8%E6qYi0M9V zKGYng*1qs(ycB6jqFL`gSw77Hh&ajO2IWjiZ5)*36V5t(A(Ol3Y|8?EIQCmI@CwZo z_sYgWQ1&z3J6xv?V71w1fLs2;KiniVP&N5&=Vi^J28zQ&DL+@`Nk22?7wRybiJz1q z!+~b#0&&X6G_eRo2p~s>=~r=3uz&q*B&PwHMq)2*@XB?#b=>3_1u;MZ7?v3LMJMjV z&xv4qk#m0UI+7$sfkDX`r$gC=Sv|1)uG^J2+!HYlhEU2$!iHkhboEutMuUjc#2bbx z7cQ9MvBa2)bDdL>T&J#lm?^RCe!tXjd2ffkPFhO+Fz8X&`1tSq6hbm#UAm+8%o|Z- za5I=_P#G&VhVlK+cGX2aV1Eu1y*4bN)8uq;bg=w|df^#_ZTUh@$a}!Xrg8I67H(72 z>^hb0D%@<3v5_V&Ke$*a@$0VebRvawqQS><^dVQ`+Ii8-(QDW=sLYO8VjFl^Vh4p6_xs8HPzq5#5j0GiMiM*YmFkgCo2`vYwKVzB17NG= zT4``f*4!>2m7 zh<(!L^6!*N3&ctRcbE&ozO;EfMG&9l5~(~d0Z|B;0F!Y}9j9G62!??uCu1GX2XBa` zKVinDcL7O*kYVZ!`q8ln&KLFOKnZ!8zFCU;QE$t5S{rIy95dagaJ83tDBRZYWy>i_tLV|3fBMq-e?#vJE1 zAD^^zd$6b<8t6HL{eaNm>~(Xp_p-#+d&b50$;z7&uCjSmn`nDzl}qqsX^*WkJ#2aP z?cKOPAEWgDC53|2pE;ZT0(oV}#d&17;xRDf(hfNKklp@aEX>zvKFKp$=$yho;q;^Y zlzT>qkQG-Mm?EwtUf^BLOkb78gq3q*GJr4X05h!X?_ernV3Xizo?sQ06VqE;Li~j=pP=G;oGl3v<{2E72Fi{_)nm6G z+lG@@v&U@+fw&G6e*uS^te47`@>DMW8MBF)w!c#ydo1rs@4qZqb3z1hVvUn1BPgF& ze_cwLfE_xQkR?Fb9?d)8o*EX>MbKqSSDw29f}(zTSt5=bvP;a2Jeov5n8LG+sHJ{& zGc63<4ii}^T*#X1X1!S7q(U|cA?vfPFz5_U z4*`^2rqS4eZ+eI3!`fxEUH96i@y^s&*$3?a{PlA>zo@fAgfxQF;3f)2`fu-hIL3W| zbwV#W9f^IR#SQ|aoNU9*xDZhWi|v3YET8+%dxXX%>2FD4rPODE8P-&Hg>$|ggnZ4< zRkgt;l4x?2SqYx|cGvct;>CcOv291C5EXQ$P}#u*pSQ$7nY^TxcaMY$N@oomlA-YO zGpS1c479V}0-6AdNjb0~ngdN*a8g=;EYT`S)xsGi+}4{%IJ|*yOuzn9nBs#aiZf+by<1`u7?!f zU21FTc+koTx?Gea&%Ew3x22-o>}X=U*QhHx=HKmXFQxl)OUNIriMfrsZ=$hTR+5up zHnh)fUVbarG}e6Fb3^0_>z{rEd?6Q&=QY@0Y7=s;m3-O!*M45b(Nr#Jv8+Vb$-h=ic`UL{|eas!ke8WiK=6j;iMGw4g zcPViEQ2}xAKV}?J4isBj{ICWMqKIiRuYNI|Ms)<<2iRbuRh;own`?b=;(2$QnRSmk zlD|FLUYCspy-X3zzw5+f@!nq24v*p+>jMP!eF420gW;r?x`+3Y1fsBZQk7GI6^y~D z*Y9V1z;g4?O!HqP#|J*(<;Ak?2V&T7LL|&Fv?GOs$qd{NI*2CO!?fIc&nzg+KR;5O zb24_MOFxN1P9`{aMhr%d|G|*jFaDD_B)GYProfq%iAMMqc)5d9@j#&sn8y7ET>FU*ymehJ zxMQtcZn=fGJTIfk`f7OsZ}XJs5*-9652ovYYB~+ANa~2iMF`;jes+_7C;P(po>AC+ z2Ak&jUfZ|pFfqNllf{pY`;4q0I!-QzSbUV;Uu-%U4i9(Ey@?;;93fDIZx`!Cua@_; zkNBg?;a6Sa=R^Pya6%-5boD^~xNn3PWat5mYCt*~y2Yej7~bX+3lJNv}zGOd^h~7c#H>56TJ>Y~P@Ic8wqI3Qj*IdAX?LPGLVcxgGlEl_8(2U+1|U zG)Z#&eMsOQkw<=Kg|r`x9)t(EZtokPjq5F0YkDZ5K}lqB5HI&8#@Lg@rA>|D9y|&T zi6cYuL{0$}yam+EG)%ssn{;PS?wYnEVo)zzR@wzZWs31R&=EVT9wun*O6dgScipX| zA=xTD$2S)e6S`K5vQ=NdGOHHRJ~)ewK*$5Q?dnT*v=7=QaS|$LZMW(-lm`T% zF4{|8RXV>g?$fpj;oEE7EnQTX^~d8x7QOfCA16T(>5HfBGf(k-i`|o}=Fvw8MhY|^ z87N(>U4B;}wu|0s6@Q_-79FWqm>a1M|Eue9xrA;0u^+$wqPr7FC=y-;K(bV=(dkMr4TvNI8+BDXV71~Q zY+UbaOZ~`tgl7^GsVugUza<`3|1kuJcn*u@GQTE(w&wqzSCTLwYCW}lg97$SPGK-^IcglHwB`$ z_$lke%fR&Uoj~^!%G1cGS;gG+A1|9! zLnT=JDnw>DL{lT-p*aWZDJfI#y@bhgS+tvCc8+lLKM*;v{gvqMS$i>Nk>tLJ6w%9Q zY$of^*cIv_O>1-}IpRmkinqKu%#{E)Mn#0S23*$7JGJyVCoQ$Xyy`#9?)-&Hjo5m* zYaG^)Hzq;F_n9sIHsVhO)oMKZw{C+ZgaDNloJ6rgVO&f{~nXMf!S+> zMu&Mrq_BY$_vA9gz@QN~=~n6263z?+FHg7n-=*#)8K*HTaoif;w;{QxGfGG(;r9tL z=z_#q66yKE{rEe!xBKXStN6b|+MAM3_v4lD@V(u)SDY#bP1Ntb^ofVgpIyn>H_jW% ztd}J2&YDnbommKSjHf*G9KM16bC;#%-hbNfY?O&=Pp(-mH)YtUq^>6JF~Q|QV$f4; zW_PU%MzS4qMpVlk*{gqzmR}9ll(P(GD}~)xEB<41QmxP4Zm>7_H+56;m26&k1L$G| zhxB)LEi<)#>1uAl=wLEv)^!{rk+gq- zWdx$|T=_Sd!F%+o2k7VP5A)%lueTAN9GAB%737&-DlgRN=ij+$+vnG+&8sLQqh8+8 zvd_avYfcLh>lULbP~(6TB+8Uce|W*M7Xup9Z}8%?u!_>|fP#)6b=OfT5vtS7adpHE z*Tk(wdI3-0pi?o#ewbJ8&3}qBvv4iM7D?dL&HNnK5!bEIp{0q&j-Ry3kq^`!IJYz> zIEKQ}(jZK6aN}uydS0d>czYFM6__*MIyb6Cs%kd5`9I4^Ua|t6%v|${#KA&jy<$(GxPSyP268 zZk~UX-~B|-psP3O5&yMu&y=j7`;^W=x8CMQ-qd+Z%Kt}x?7tIe}>Pv}2e7VYfi znPtx;kFgenkAKD?W3(ezqD|zo&FRCT;toM$=kDET*c_$9q1A}Q^y5kEy$d8 zFKiL1FtxQ@+6&Bybv=9N(@r%E=vdr6qzuPFAZw4GhnN8?sAL9vmaX+I0Y&`qQ&-8S z>ctt#P1qh+6-&)s)>}*y%9-t1hiUo^qubrJJBO z8-3N0*Uo+_-pWCs&0VY3inX}uPo4E}Rp??=&M2aHIRd@$yRx1U$Ga?NEY&(R+W#$T ztva}@gLMJ>xw-nDo-|HITFvukA@&v?WFWW3q?KVPrJoeA3cSm$SYL7F-2&lV=VuY& z0vs9!@kReYXcZgRk9zB|1VWz_O9x)QW2mHgGRC~y4tDE)_Zj`aMIEuwC>_h~qtK?` z+(lZvU$C7#ZEHrcABBeN+^kL7V_{ikxcC$hZzKQdZ&y!$^ZAQ0t2WH>Y7b&IWg~i0 z#H8;i zsL;q5eFh(?Bf{L6c#NZjZEd%6BVvpYJ{=1sMxRd7Wx{{-QzssA_|U^%Q-Zn8ujv{d zKoI`*2Tqc(BhjZuzL>1v@ zPGUF<2P2ct`f7$)d_Uj%IGwDpmwkS0XfUScr83 zL9{tQ>Bl2aizac_sFH1j4#j0c+{w9!WMd2F%PgDGhHdd~}!Nv)+F@=;rZL7}F zrAh&7s6+7Eia~;urPO_Fss<7a_@oT5jbTt&g`Ap_A-ac;xYyb1f-D6)Ph6IQLbxZs z>|XRtOI~xvVBS7yv-t74O;8&?=QDW6pRBAeWbnbM&B2t~h;QG8ZCbjr6|0`@$H<@f`uNuOEZ)0(`U6ybsljW?hJVrF zdR7j^9x>VTEa_&i+m*Rjq$nZzw%P$oG;ZPmzvz}x5<=32jgoS_$`afxFPD2hs-431 zfR2L;OVZ_vHgf*vp<)iUDF@%uw#um9T9!=?E2;x&r!)o$V!bKyC>mQPSPjevY4r0C z4C^1qQw&a}B7gC_*?y1e5v8kJ`Ax6x1&HhuNgDZhrQcA7Pv;uB9YMO1jgbQ34AaRX zzvhmi^XN$3?lJy6z}dTOf``{@HE5 z=Sr_)fmVT_V^_U6%Y^#-a|Qq0^8eFil6t2Cf&$LQ!O8T$eI;A}lTb07;5$G9)RBXg}hi zpx5^f{x{h1KALaV@MpU28bVR!M}{+)B|V0VD#E3b>xMPgzNdydLuAdTG2S3J`NIfL z`o!GM(o9jG_IC+C$sU5oTg|tK`Oy}e2?TL($F3ngKaeZ_fO&?#Z^;47hsD3{H@Pfq z%J~U`l8G;Z(V0K(_{9+T2S6Owy11!0tdsSn5c^Yi(Vx6ur-FJq zbzPPaQz)6oIquzJZ!L!`yX>2BqHBA8L5!UmBK%3hTLb*jCS#YrFPOP?XUp6TtFFBn z!`_G2nmFR>PCh%Sm2f9V9PC3swrizU%g}sifGuioI$t+oPr2im#TSCOqOM(i6%}N> z)1rN&5bgQJ!|oa!8>rS~Z85s5&Md%fs>n}TptH`T+oeh|^@V+_Mc1aIV{0iBD_M}J z+r-Vqbc4T&yW>x@^d&}7YkD4aYh4SPvCg+{w0ttC6el{Jc6coJ_rB_yKe8p3#!#{` zK<{fDdn#tVRX}v=u<#F&X(i{%=p?#K&E%Xw%O#6~CGC99HVzID^(crH5kI)C$SCkH z$iGItjL%W5!fKTY>Xl(&JnX2iNN_vvF?&%B}aNj-Gfo=advRa18HuD!Y#C4CSSkCWLEdLB2wT3Pffnj4_d+Ha(y<1mCYX`rb>RL}N_%0=zk<7`ifTqYj8?}8Kd zjYPY|E)P&SyG0#?nC3Yuy8EKA`o>EKUl7 z5P>|)Vw4kFh~SY|ZR-V+xvl>SJ)4kB7xVlaPFb;h9uy3u<*LS=UN^k1LVGkdhaQCl z@3EBl?U+V_5wn!&$faJ^z5EDq#j(b9RCca1tAp*ijsH}lkOtcB_}mow>_ZR&AAbe z8^{{C-L+b;Xz`Zh({$_nTPlF-rP3mc)9lv_Wk@c zh&k^?gOdC*!OOP9(B)jon#*Qmr(@Ts^HY@bUEaZ&0mi?GsJbJz{1@LFnG6gA%N|DW z+7|!SjXc+D?M<+YXM4p{#Kx9?k9Dwk({~$naG*0NqrN$%KlXLB1TeqA*08b?0V+npRWu#9$v7w=wcZW9MdRqxXFP9(Gw;>pgtT9gj}Oq3QLOa;7*T z`MHqwfZvH?{PCYI#)YCX;_5EE87y#)mRE0)g44Pkfi<&3GP5Tcjj!&P;YW1l+W!^PsOy+BKp8Y%ci;#p~t%cc1$WtB+QBYZ<3nA zH87v}&s?lL1?M#4uDr^wAZKGhj zoawal*@;85`juj$VvRBT1LP?V@cSXX@gFmpqeE85p3@-uEFpEo2CEQfz3ICzN#o0f zzmLC4+ks?zi1x!z>g}#s zado2GGWsf?d;MT=AxYx!K6O8FyzD3PD|3_k@qS~#{#8p83GubAx$MKdHVZ4VNE(e+>*e(ZUn_x8AX3`(rd<+Kk?u90bm>(vv zktAb4lQz}jM+7}+se~{gY#9{CLA4G1E$q#IgfKspk*N3Po=<5;_$Gl9zgC`0k|N1{ zxm&(y11@jaIbj1v@Hhow+h^ga|Ej3LY>DXW*fw3t9QNXQe-IWE9ftXc_~uAHJuio2 zK@&YJ@>ONm54R)53DmzzzGxxBQ%hmNH8x$z z>^`VMUY!_6=SR4;3Bh`eY%Vc2Rj=+q%}ZHn-f7WZFV8zJqzx@$DIZhnhS+yO!5y%{ zss!K6ZG##FAE3_C)W79*FTA{73py_mZa5b^Qd z>?Ke^qXz+Efd%^v;sKGlp^)O=Wl(#bW62IQ(TzYBwXDn?{0tV$WV~6Q-(LVHBYiLDCUqhkW1Yi^B6j?(ZUX0sMh0x8vS zvFZxSaOZ8Lm+DfXWxD1oV4pEybPB%etw}_D@{uAsoKQ)#49?%beStx(e$c6uomLe3OT8BR^qA#zl?1@<0@K#!i$)nz; z!#7nCjrxjLO~QSQ`3qFP6u6zcBn`CZ2vcVp|6OhV<0~Ux3Wq7^Z0^G=$M|EHD#ysk zWw`WpJxt(!%L6ex-fyto|B6a*x&1NArVCJg&*Mkcru(z#LC!~D=$CaOOlSeze+FT%6nF1RGm7~qT=A`q;A?(d}~z*q5YdL zv0?$R(ag?Pph`{0NIexfvcv`wmV3g`^crnP3S^@hxE~?xZf_dRIe%(tK+w1Astk61 zsI>5ya+GMhY3gooFgmdcF?ls^2PD?r`mNlg9Dy!y{0e#(fD2b6w~0d3xxVbT)2S}o z5*Y{M2TgqZRNdlptpWkvC@R^@b*hG-cmD(+^rFDdK7YH)*_TvCUx=C1ekc}X{!=AD zU6S!jYc}6Zbb;`FD`GY((|*nD(Hw|I31((Q3ED!~|DFc4;3l6sVG}Y5^HyxOs0wHv zhsL4XT8KlzFJ4NxpqhL*FKcFzOst7Nr)q_IAqiTX`QDuOMQAaPC)9BZp%8$0saN0( zNztm){Rz6(N3mcC{*wld9Or3quPm_r_`ZbPS8?6nmA}5N9bM-{VI)~|q zx9^HJk?WJXS}mRZ+3k8~WlF8yu=9l|a))T-553w-a7eNNxog3G_SRM{Fj^ptIIF~p zEPVwOeSB%VhzN^F`1~|QsmlhdIuZK)84O8WaMC9w(BFUl_^^V=?J@n=ll`x?GGjYr zh`I0RoAcVc<)hnSBVga+8Eo~wqyO@}mtS~*lumG9@fR-zw449#g{Z8ywGAiKNP>aN z3Ab*)WAkqbd6=;uL(?5il9WKR4%uO5u&M9WC&^KKu1B0YNmjj>)}&M^Su3;CWJx-- zth=&p#9@=Ek&&>=gIp2r8PE2n&V(s+Wd7rh)XD+fKmFZLfc8J-zz}KXkLW7!h&t75 zH4*D*6W1-96!)BNOADM4sW#cW4}@mFAr%~)I(Gvp0aH|Ij_j~gL`(oy_*T1%;6f3f z@bSy7wDN41?6L#l zy^c_@W|pK92U2E6!bi0Be17BK?#=TU1XGK2IMa=jvFw9t2nvg84muildy^X=&b+B2 z@h(C-e*vt`{_vMEx(A@^s$!8e){1D4lQi4R8(&|66m{sfJZo#2awE;=y;5CSqf`A2 zUEto&8sa6|Fh(#TakJgG_nXm5XGMQa7Gcttyq`Ao9~V+u}G0qX$NJD=GOnHKN4wv!?Dg(F5QBIjU4;7QCFxM<;ly8X%n2 zQQ!mS=$tgbkjmOOX{?=KaVV6j?mrN=E9cWd$IVoE!zeP+i464ycIQXk%C21NQV}LQ zG5)zE>aPd3I9~Yp;RHeRFC3ZbPvdS)d6-aj|WNo}EaiWySV!K5Ak2_1b&9bU&&8BSy32yz;TBVl#*ux^Xgw=}`SWk8+ zGU)P=Y0p5DuB3c5zF`1MFI`MAp(`y*;i;&&wvw$*WWuK$wNQ@aNnZ6Dvpo4!$M0$# zG>tM&>@3@+U}Y}{Fqofnu6boi^+?qZy<-*XK>*u{&}IT93rc*+*%0}Hft=3+xUjED zb=x3r!9Y^;*$Wzy1!w)no8akh%`t`#+s?SsA&$pL2HxkURk;^&6fcdJz*9=ehbehi z-l!H`o)nZ1O%ri?irl*1b{CUbp-?tfMZ@0*DsXC>(|o4+^!JIEWvu)}l@X#p?yF{N z@qsd8;ti{*lVcEd*T@2YK+t=Hhg4AA^rg(@sc^i8ZTgJnz<}!?moY*xwbKfb8T~q!5|~^}s#K+E z6J%{OL+z_Ss1ijOi_4*gQW90O>z-B6F>o6=I|9)>nm1m+6qd*z`^m#Ib+MV&1*Pff zj(pP_5)evK_)Y}NT7JhRB*H*(A=dvVL%&rQH)^yjWsz|8-K79X4LDGl=E=jC#4_=)!!q9wG@~1MFk8Zcc}#zVwz^yBA~~P zA&~3kfrwiu^?V7BI2HEy1lFk}eAS$D6H*98xU6{!Y*5!Sb5&VOi4;@mGEYe%iviVw z`BQaLHd%P1S9wHixLk^-v9zARJB_!c2k-cLjg>c4;~HNSQbd^tXd@*qygJW^=FGjr zklGjnXYr<2LtmImMla@D-5P3G3^4BuRrd)uGF!a?a5=0*{FaTiNEQ?f!C#FNj%)^zZ4C+D0&R&qyuG9|03 z(^*x`$)H**^?5m4M0{OYb>(I?*MuO1o}*S@cy5NWWPdnj<)UX`O#Qvc0j|nS@NlHm z8&{LGTX_tRPu3_orm}D0(tdNKrj48#2Z08~#e*KfL@{|fKT??OTN%H!>6PbHHWd#J z+7a^S;VJruXv5^^buz)KEuOn5M~D;LbZforlP)X{kgtS4!fzZx*5iZU-Pt+~QQjb; z$ZMNZQ&N%LA~f8{YtMSX1KYB@ztT|khdOx#2I7#9dGRiB@@FNVkNkV;o@V+lQu)sM=mGczLVI4%gbE*e`We5A}|kv{jW? z!ikwWpBxSNn}}LfUlT=l%?+Id9I+}^P*jGwS*c=i#OCC+7Q=F9<+Q$?g3z~SXTsEG zzOi>rzCuC6Zri<5fc00M#4#(E3r&uDU>;RO*v1o|z+6by%oCLpEoA%mH$yNv6mzGF z{IV{d>wH@sdayot=@U-ebSv0y9>l(E6&1Z1^(PB6@h91Y(#Ty3n6=1@Yj7ZB{oHh@ z0VL8wpD)lKqv&1RAh#b;uhYq;a`{FH-hP|&5;4NZTwe(Wc*97`4j5Obu33w1SKS@4 z4mi+{zW#GT{&d^KJw$uvS=UvyteMt&cGQQMZLz^wD7o9mmFk{gO=L|nif zqrZvE^E^2~dH=L_mX`07T>xsdefJwwIZ8_dYNEpf?qzwm9$#I4XDLmvh6{#>Qrfl) z;N1^jE>8vli41DoJauCyh1#yihL0$iZ~B;ih(q*g`4=4mAPIN!jy)vw#k2_19fAiL z#maT`>gNM@+;B?sxbx$_UKKVQPVGc;lULn$IH9b(Iyx@aA?{8zp|M|EqcC$%ye>#KH#xHVhH8BYUu@ z418wXeaJAfv`Du2s`sLV`N?{mTC2QUb@z)>LN9f871b*LQViFu&D1|^85(&kg9O^X zZnyq|njxZV{a*`>lllJ+YO^ylu>Y^0Hl(XUFrTElNVp>it)K-rKM3m6Yy1|*ka?Rm7t$2*ObT&ww*r8X-=g)Fao*W_Mq z&jntB2Rg>lJxRvUn)i>dPwWrCOkcIy!-tgX^)^*;T3Jr=bcA>z0m~7jR#y$-whD(! zrlT6F-GI>>yN|!NvIfhsSfsVa-eJ%O?q-+Xg?e|v{-8y>`Mk7VcR)RNY29w4x1fHi zZ3W?saRTzZ1OFWnwK3rV;|Vgy(~rON8>HpXw~T+K z3tfrQ+}||*i{4Nz^L#Hq#D%6z6M0T;SIt|IHhdb|UlSJ<3MgG>~3Le z#|w+*plA#9X!=0&MRoi6EcdE@ATU?G@8$4QHwW8BrSluU~@(UF2O}I)R z$DmX~y#<@mnT3-ZWOc-(J#6AIuYWt-PGD#dW0i`^uz6WTW)estfC#dslWV@hQoO5# zOlI}L?F$jFJ%`M_925>cNIGUt$H%dV4N?5rjnl;F8*k}9MteQiwJmLoRB`tl=}SIy zVCosgTDd|(y5b~#oe_p@YgSR^v-=T2R4Xp2+i>Lal3^2}BU-!?XoX`U4>zC{Ywfsl zQ6GonLcP-F$PCbJ$u5o2;)pE33c>-j*`Q^2KJ>l1{-6Tf+=~q!Nc3iJj-EfNtJ*!> z?P$sDrsQWYiR5Bey(x=_LpFZIO08DjK|~0q3>_6XsQp@*p@D!Qk!o7J3ztZowr+Q% z`OmfXs1`p!dK+T-WyFfO0|xe{r8d-aquXy!pb>7J%npD^)y$ICb}B*&nwGrW4p-As zYtgexnE%OWUUiI4nOm8elr6dBmU6|M_9vVahg*wrQ{=X0^*OVntGZXnMF?v|$h*3= z+L&4P<+c<@SpHgC`>!TCeF{|ca*M5E67d71_T5rz%X*x8qh}))w;dmlLQGR^8dkFi z+u3pSu>oM+L~h@hEiQLA8vPk|!2`Ya+Go;J*SlF7t!ATxsd~w%8WWt*&RXV}WnXRa z239HCv&ZwBz}8_lRk9m{Yej;E6_-`B9=ey5s)}jn@edgkd}d87l>NANQcjbSI4eVS8Z{? zwWU~95}d6L=KF~uy}sucFRj~?ckk~t|Iolo{WB1W^7wQ zY9ab$wqthj`BgwuORUdRSB!M?u_aR`E^{{_NsnmsXj0^vg!p5ug_Nv*7}Pand&F~l zRRd2}8_{3w#<<^*czXTHaidyQsAlsMun2llKI+Vx=3+IOr=uwf6%C>m`u7~^xUTGr zwIAG5Zi1^HW{oV_JFmDR3w@W4OE$u5GUa5>3&r?$Ti44)>x`lg zQc@Ttx9UJ`|7*&juY2+y<1zZ#Ce_UNj?Osh}jgsHfCj)=_v zka8mJxR)pHkOC(Xx1#iXLmL!>_uRrnW5!?4SgZH*XT)>rxP_4#AsaQ3KGfPP4+}qu z`A=Ws0XgkkmDP@mj|)!6`-ly3X~VtxA9+je*h2@0c)Vlf5S6v8Lo*UPynjew7#!Fz zq<&J@Nom=aJ2(1cTiF?{!HgNFPi=gv?G}=u6`pq&>C*b;lS2Aqd zB(CKO&OK@k3KvGUbH}vuK(Wvq*o+ocz+nGUh<~mi$FGp%v``Oq$mwy`E_6XweMST& zgc`nsy*$p7je!vZ(+248q+|8$x}zFD^Qf=c*bx69Utm!dh3T1tRr`ETL;#8=expgY z3-W@GHKu=xNAXj$jm{#5+!lP=em$MHhFNGR4~uEaM3$H{^f8VO>Mm_6;IE#=TJ@bG znAMkT9AX*bK@BWu`oc!H;aWM>B7q1s^PoOtH2VZQx!e?jlFA{a#?XKIdtMRXnu0vs zYn<4QCJfCtg1?srgM&iVX9G^DZI>9d2#-gzxxxsm@U3Qv;xE{&tM}{~_>a+FE^n#l5T48q>dJJQQU^V#a$yANkaJuec!PH$;2@Yl!C;JbS@^d@i6~JnZ^XiX zLXof1hW#itSX@F3zZru+gU4}XX~g15Xop{8-;i&a{W2-W!5Ul|I|E?4p;l=5dv6az zYw3GLZ*Q^ZK|hZKX(67;J{vN)U$D6IlHWn7Vl__u!__Pl-07nZHWbA zkkl~|YrAy2Q5hg$+yJ;8-y>uUCq5sFH2Adk8Ba;?gTMJ&KWEbJL4KoSx%{Ul5HT`^ zdtcbd5lYaOwVIe9w9A^#V)_~uEGi9g^YJ*nyhD+Yo}Pa&|X{8bQyioDFgxm#dZiAPZ(~=K@eOck=tpD~h4N>!lt0 zab7-V+c;{epFrZ2gpikfZZ4W9TiGxrBZDF0QVvAc+*F{M7xTc{Y4y)KA?kNI>n{;0 zE-!-C4MYs|L!L4yx`=?eu#B8VbcJGu!>|4O)ryd|vp6<`RoO_ss8!xbbO$XNGDLo{>$;mI{a{IpaJ^s1&3iJ5LH{L6p8%mW#!`4 zOMijWf>rqt-C-T0y=2Zg691w2gCZ5ie?Z0#y5t`es%1Jc4Q0#pSYqP$%`5ppGd+J; zG-}qOvm5H^g8}066^>j?%Nh5QX=O`+)Qrggr`xkOwjwIQZr+gvD>uH-Pv_Huci7Hr`x-^j+{}xW$C=rWW{mJuH?uPjL4iok39Z z*16+r4V80&Rgo9l+XcLMO+r+G*Yza+uMsuG=j8eOTZP2ks+kwf{|9A2n!oH27*y*X zK_`1S9A;BtgQPAcr-HJimg6DVfs1XC!gM7rw{2~aTPIedf5v&vEU(0ESKSXL>+%vU zD#1Gk#Tyq8^5fH4Pi5*0;Wex8PQF?;#JB5O+!HCRtd$C^4n;{FPjnhzZxf)#^vz}o zB;fM{e!`@mOh(LK9F@!lFUh#YpQrR&I*aG&(M&Q5S_>Ep4OKr>!{7rHa!b(sG^PDY zhT`(k21WK=e?v)4qle(+ns4iEYll0V%Xl(BcD${J62OQ`|5fJ8DA#1V|K!CZ zFii<9i=vzq9i-81$mQ4!b)+p))%SY<6-+VC^2JFK&-22W zU=q&?6^+{;{$}zh65@9-Bsb?p=79=DgdK1+&6^R;f2{&>X^N#L-c?*x^)RwHUAkW0 zN$B=3NFf;wkRxnmG0E`q!gB7N+=<%YdD`|$-k&zspn$#9G;K4CFq8MY9 zt58jAiC)C><#G?`oO94g#%>SIWP=K+L)Mo`xgT#$W;09TtjHc;yKO%h{V%1_PUh3( zpx!i(#Dm>SoG_xCElv}MXBCY_6jbhp-o0*We-+8lJl@u{PM(%b7kB9PzB?88>Gt`% z2V&<(lS&33FZFZNr7V&P=LYObI_bL7yeU5dyi=(_r%p)!rZEowj5e*O{GdjDu=kjY z!*pVRLX^$W#5Ou4v^zvL@1kkeVxu$}6?J?p7d)LR)R(QHdnttTBl7DI?i#@FGDLm7 ze|cztmLsj`t6_I;VpQ};?SvTxLybdlWC)jl({r#zs-LfFs~=<5(3=$oXGh@Z5n@N0 zBG(+)ba{+!UyV$o4Gvvb?T(6ObymfZGhU!*>SGjQ1gqbZe(AY5`y3Dk;GQs{`=oPO3bMgZ9b3ZUX62g z;}|0Y{XH%AQbsgv7^g%b`SQ5xD1yw=GHY`kq=$GR3yz%n@V6{b4dz8X$|9&Wc(4m6u~JT^xBz@#Ia$BsqCVjrbDG)*Tbka zknyTeKy!107;8FFtib9Z_h4m^Hk7A0gr;`o2fpJO6p5HJp6X_hi!_?jR{1y=K>24V zo$P-ZFPF#WsdrQ0evPcDjihfnF$}}B#wAjHmGdN6 z*>I(JHwZ|xG)`tmWV>m{f7d~q)(;h?hD4@QBKm2q)I z$p;iem>AwAt#z8-u9wfG%O2AClbH0&ZQZGcf1jnFQ{`Ote36uKU5HP9Y+l z$63Dg>)#9xm~ikWE2a{ws1+R8c=qgrG`c&(=ufht1yqGi)knbLe<)Q^q@=H6nI>j1 z6cPrT@xmhw(8Rmt*`nD~Q9m^k-?=qpg%+*N1c<=_Ays+y!nIo72^U6DD5wQzOOl1E z-akyW-8F;HeMjb9pTy|I1DXqIw#Hi@d;U~`Iun2G@#F@;SSFQ0-RSA7unU3Yx*f1Esopp;YM$;iI+GRx-F zLyvZC>XLC#?@<=B*O9KrZ27U2c^c<=`h>XaN1`E$Bs*MN=(1F-G_d3P0X1|%#|Hpv zV~+DIi^8knQb){e@=kR7V+r?+B1_yB?lGud?s6Out)$4}r@6kVn^CcosZCxiTsLO@ z1ViN(dn$sl z(d6Yvf6c0>f2EvCINrkYa!z(^a;1aGAaorZr?wigmVOTpFVJBvf10*x;@vANCaw=#&Lp5Mo(7QU=uec+ zWaQ~pGNGK1-D3JtNNiCQN7)3y`4YMQ+5?X6)doAv9S4fg4BzsrPC#Jw1ob~DDbAfO z*L`#kjr1b)YXtvXYB2u*f6%E5wcL3@b#JPcVV)j;k}%g5qcOAr5WN}34g9TVk*h3Z ze}}}8{_}hI^>a-VQ@!SCIq}W!+dvx1aEM5R@oL&@#Aog*O!R}cIK*fM&EcW#?s=fM zhe`J$4=xl}T(D`S*hPNu6ycFbxwhA3p0sL}Z# zP|8Aj#UwcnwcWvO8}63A)3NxoHy@w<>zVS*vy(&yO44wa`AIGfXpziMK5d@;f8(FC zla>7Oud2o6;^d2dbR(T`k*n95lj~>y8@Neno@Q~LKvP+Q&fupv7guktKN@GCU4v6z zUtq;xN5@H`WG3-xnT88|>8cc|4)X&A9|*dKhK}L3t7$wI{lXFxk1f=Ep`)~Xq2i77 zKU%0ViSy-LHYL}-zzb+TyjM$wf9quG9tf~48x7A(86QsLXJx-?YroJC<2pRFKB^ongQ^U3!gXb=9fBh?BK)rK- zug8~~zhPUe3`P~^c041-yG$g|Ocu*0^a;E_M*51CPeQklAZxEnt4j#KQyzo<9lvvgU<4KY1DN^GpWke*(cW?G4o%dW6*F#-l zv*&gaC5P_XrV_EH#j$Hke|MK0l5_xght>&O5U@ z7&Q!4LnVyTPfEjB!F;ITjFGeKusNe%S)IP&e^3M}3gqfRgHF7_e+R90!7ghETx>vB z=S<KjCBV2z z{{v+vd6|-uW5doZP?Ttc&QobsfiNu5iC z6XmCFiQIodpR3 zPiY!aOztW%xdW#B#iR<_#tTj^*R!DdvK?*p=%j^z@YpQ}e-3aPB}U*!2fI}51{TD6 zF*8A*vlhc7(#54Nr_ui#_voBGA538s=1HtO===**O&0Lzdo&BCTm~wlzLask|9s=# za*jzDs&4pz;?fxG@RUA{WM7H98msSjAyTV|(`0FhRyoc6>@wQ9{{|~t23T1M2U(aC zFVnfh%03T`e@GE`)L)3)mCcm7KVsg3jLR}Je`N^M)9o6cTd+Z^tcSjzAx>tf@M&-X z6x?GEQ6ZYoZ|j2{*zGR7k|oQlnT6zQB=L92Sj*WgI6r0Z|9|JV3O1A#r87V8_};=R zE%v-aR!r)ZSjoZk4%pSysq17LoLky|1u(-ERPM2if9Hp@I;z~mkZJVFf1WbQN<4u9 zpP>#`eqd+7;0sM0Wphp($!{b0QrF6Td%)`_uo{kP0VzC7A_b99yOi6%@v4nq!51_4K#u}6NK6FhXp zGHNzne}pdfgeY{#jQJas@iSYSIosbE!vNCrM;NT$?7ko=p>7DnaD?5xV`FM(&+hl! z_*U;BM^s2^=vMT)F)uG@+mO*xdDHv}c3r!zG~^&MX(NpxIuEpz>TDT4kOe(au`rhS zdB}$i(HPyO%Rs<@t_wl=;GKxhn!24XK}7tTEw$?X6`^Tw?Ic^F@nhuduA(a4(P%k z{uZ3e2t@cUCGW#Nw_@GD+PQ5?Lns+d+)*+h}P zY0v@qPI)cg~`=`5k^st%B9R4tMCf7eq% z=?3Lq`3)gc0&dUQG}XkF;G}$S)#2RaosU@^WA>y!i2{d!$$Z$`Zl)((9H$j35b$@I z{*x11$*ta>Ff{0F$P&vSzbKxXB4H%bIT!KTKzgL#u<;Q24)1;Mqyy-SHoz_JwqWo~41baG{3Z3<;>WN%_>3OP6+Fd%PYY6?6&3NK7$ZfA68AT&8OlR<7N zf6ZK5cic9Te$TIv_enY<(!5`^J9CaSz9btv@v)rboZZX=<%YUBO|pAI(wE+c`Rh{v zsz885tL4NwGcT6aB7v$xUB4=HaJD`R&R%{K;Ln?P-#mR0rDwTc=0SM&?*1&!&eAON zgE&8Xw>taZ^B*@IyYS*PIq&!IGdO35f0{K7e)hWhHHgEm+O(`wpWI*k?cIN$g+b;Q zadPGbew>wRrGLo3z$a0ho*AEyT)nxfSx>9HxG0MAs%g}3t$Z^J{4kA`mtN9mp@zx$%-{OEUqZ-Rt$Gmzw;IAE|GNF zK#-oQ)%qO}qn;l)(`0?DnI`Mc*~^YlfM z7@84gxgQh>@F4dS2d|#8^d}7cf2b(wp=WTWrd~v$pJw^v)MCStodalyV!JH;Jg`q} z?E3dYc$(emu>h7*?Rv>1d_)=$ex2cV7xy9f$)}9F>wM+DV18R2)`YVJg^jE#d_<@b<0VUS&q|jGY-{UbOd4_mUd;B6&R+YPTCpSDwl7a27 znEKysJ&e^*?>hCX@B#8af4oL|L3BgC#!pRAMTsAytn!7Za@&yM)it{ZsW9BfVjOg-(l_eB6ZzD`!dC==BjyW7oFsmpJm%~qNfG$2I4Bo}-VfD)t|+{WW6P8DzM>b* z6^+v&UyshPsln}XR5bYHod|Q%QLzqX|1INN452y1yZi+8ZQJ09OiPxuB$CKBNO%Yt;NXwidy!hz9V(D5$i8Oe5W^G~vOW7t4(5lV+^WD&7PS>y z?l@;#$_?UY-VIZcd^G&P2vl_IOP3G5Lpp^Z2jSo@DJ77$e?eRQEYB6}Uaq>Go@2v% zo8IqMj9pnTDWB1;NG)v%97g3NK~;;Od{{ZE;h>d+FSX;+OfDLe+^aAsTAq8Ew>+bysao}ttc0K$*WN;fqr`UHH?#4vNuW0P^z6|8=?rM zC>{|l{wRsQnzmZ%(XH0@PRf+ri_SHX+|G(mnnlWDx`}qBFGxCaN0RNQ6mKaQL(bZ5 z#)+St@;sI0b%dLI#+f_{AVeoAiO2xe_SOk}todqre-lCH{LHQ ztsah;{ZjBt9{_?wC#P4xMHQ`;$){h-a4|1zzFP=J^)3#z->Z5OHzyO zf6x!}O#IM)Aiwt?$K0LeP30PA1D&XeqDjyuBt&7D^@;d z>45eN62#N#A-SGB~!V1Erw@St$`yttepz59eUd&VU#PTBrW(Sgi2NSVzo_ zdLRzX-TXW=v@(bt+hl$iX7miya>4;R_5xE+qs-9o%&}G~!>xWM4J|i-_}h-Me{_Eq z88ERz=NS2UXk#9n^c$O*L^7p1;8d1{$7Qw%j z$}G2zd;u09JXs?hKu?leYVR%@e@^8LAt+D!*nm6*Vt1u*BDe8qw^WAGApN&5yCiUdW!KU0ieV0Q@)y}X8CyHtf2Bg*E_ITn zjt2L@tgs*Iww)qf?_j{hqYzFpssj{>z?7(TV4Hs6)u!oZm4kI^b8{Fu61L>H9vH8N zntD%?fYDHIZA=zn`>_Lpd&|wdsDJMs%OeUM6b=iBC}j@0pGdJFsf}eW7-0Gu zIHOsaCuhb(?%u&{dk^;Ze}km78%FMcTBJrm4V+Oq$%+{#akSth@{2G!&PXcr1kZTt zu^E81OyU=X5s+Q<#(o6B>i5zc`B{-z^b*EB6JZJmo&M`{5-^H^k%POb`za((;3cNN zGBgfNHThrFXZ8w+^NC&lXxp>YUKf9_*#<)J2xSBU!Nb)F!$@L3f5@`0V;He%7*%V+ zx?ti{hgyZ!H8t5_gTyXVr6<^R?jtG7Ik{G;l>51LW~Z^BB_40U<}#Tvs$rD)ZQX2k zBO9g?V66Xk5I2 z(+YA|xv@a&PBhCNf5htMP1h%u(n1nM`JnDY-EJx!MBeb-npY6Kuv%5wO#n7goN9xD z{!=F{hQ~8ke0}!(uh*|8(D?f9P^&yhH0mciMilN^!*EE>ly_5Z9pZ-X1Rjhk$OJ|yjN(PSwUpA^mqhQ;yp@vcX2uxK&VAr#gx6u2!Ak?R|?ER{ugMi8` zR?|ewK3~V{V>YVGpGce?xIn`FD=|VqUdY$ARA(TMe>90?%l7pIV~-M&gOj$ZIupc( zj5LlPQ!`8Gx$9(kr&|~)&D@wJ6g6RIKs4?2Fb?g2R3T|k^YnLzAr#>Y;lPEJ7=2a? zI+^MuT?lF(fRxxqi^%X)_Rxtj1*J=~^54KKXf%sTXm0IhfGIQEdTkfL$&_y29X|RG znXu6ye|XN<_1)m$Z}NtWQ%sW+1WN^5aaONt5K~|8x~ZEb!3SfeWOC!T10T2G6MQRq zT6W*XlVY~T;kI=L$7-NWN=IWF#N`HuR${+6HM2t4&jg{E9sQ-pU(lk*Y&_b}5S9Ur z7!7){%UX2%H5?{IcHH)to$Di=IVlo{01aH@e*wfr!eLVF1pbM=$O9(t#5WpvXN=C= z!IA5XO&}f<{-fQ2Ly@$mR~$HQ8qGy@w+7z;qOr3(H4_K6rgSXa!dl` z)0n-BD{`?aizpKX6hCsn#gGI6#WW9jH!+DBibsnZqLFS&KpSdE&~yvms=i^a5~~wK zf0G2AXg~dZ)iPc=I}aYMY0#mykANEkjiNCDIX-E&QFIc&Q(o55l5w25&^?jqIHruI zw7Z)WOY8IPvV*0mcx5vBf8#VN?wR6H3%bj)x^v_35!B3a6xula>3t7qZ`^hU5Jz~8 z+V^Ua03WbeI9;3?QEXZFq8QSt6m_&Q=_*8_InzarS zLML8PCty;E&f$Kh=R6md7D3LEe`?d%JE7Sqv(DxOlpH^-2gOY2*74f$iRK#m~TW#BJ}J95A__8teu zL!g3*Uj(Rv2WJ}~0!IwqqKq9txTT`071WQX4m7Kkhvls95(bx~$5^Mzt9pdcZOzM)LJA$v?k~avrB0qh z*ex%98`D>cYdMLMEFva+^8e}qbM`zr)^kk~V=_N6Dr|vuCbr9cWu|wI6i(hW!@OSp!$`{t=5s)NPtz#%Ckm5)e{oB=!XZrNhs!B(?7_axHTIMlZBA@%Ve%CaF0Y*XOC!w8W&2NjH?9p%w1+(>uk*_zh1)BL`f7=r$7nFV)7Jraa zN*{7czxQN*gNv5Q`!1P?j{aW13q0G4Siz0JFPH!2Zp9mDOt{NxQeu1mjOw=F> z_i5Y8yXN(5`tz`oGIQ#iTCA1r}U*QS)eb zw{$iF97h<4@JJx+e~w&5b!UrLW_D*qL)=+Tw4e>IbM6OCEQA)VWpw zkYu52WttJ#X{ z9=UlbxG4P~2*2Qd|1{f2uO2ON#chS1-N{c3jKe{Rt^^SU=HKb!S8Vuld-{yUQ}@P8h?fiNoF!hMibPPpIJ zCS!R7`{Q?n3A7NG6vP&liAOKMM*%eSPDBFo;<{N)e?WwL*xrDIZS2Hx7Zn*-a^zaJ ztH!uXL0Y$FyB1}wZqO|Gl}u2HEx9z?S_kYx+~C=YiF&%Qy0<4#O--QWe~i4d3#u@cWV#zajX3D;&I4Vd2|)u2XUaGV**jx}QoL!;j^Wo4h#u1*{13YC z!S$5{)Q+hk3FG$7=#3brBOrZh!Cv3Bu%rINROZTY8~nx-8u_QMPzjcUZ%`BRzM9#( zi__`580>pbuW*Pf_6z5o%Vlst{={|bJw!)Oe{pT{!RPUVRySm|)U_-99U>E4y07&u zbp2%`WJzjNQS3eI7>lyj^?ecIJ10zgUFxVrFcf7qh>BI*+Gkd!r{|y0W@5vp0j~2hAw(n&)(28v+voF*TPlI|CCEGBGeQ3NK7$ZfA68G9WQFIWU*tr2!TMI59Rjmyruzv|waD&~FK zR`*)n>m4Xal+_qS%pFaEl8z1_1{OwUUVxZ_s5T2TfSH+%k(rqlj)Fqn8e|9jj~tFd z6X@bfFG09i)|per1On4^=Ii?yW{=zX34JOZfAXaFocJY4jDy8}e*fiBi&CJq1v z6Oa|q{(VI=6FY#KqnR}jjRv3{W(&2mZS>MmP$9x|Ox-zZ7bY79bB37a-tWU}tRxbZ~uladR*Sx&Yo+ z2dK%&1C*SA4*xQi|Ca$h;NP1AU}0qWZ@7PZ{}ssE;csUXGc!kfCld!RYX?h!g|!_J zpd=~J2=WBc156yu|1vbObANSw_cw7jv9>cYeK+_!brXQ3hzh{uy~2Oj=W6C+?F4dV zbhWnot45~3!n|*@goC-5qrE-Q0ptqzSAOEwE(e;@*n9bh*u>5~+_rG2K|8@CaQT|^W{r_ep>1Jp5x1Rc6 z2LC^L6MJhruYX&-cdi@geF_vD-)F($|C(w6|24Xzj&|n%SAQo1GI^f`5eG}V|8AqT ztE9Cj&|KLXWM=iRcKMfFYq5I2BH{15Q}m?Zv7T+9F_$v?ybV3PVntN&g8gE&!9lA9`Ow>A%GNzJl@}dXK64hu&kV{ULS$llmWeuR-&_#Pc3S_Yb|V zXYz;M>ofgB@2i{rm;O2nCi6eY`tE6N4RiszzTaJcjDOzi2L1!zleGAQ?`c_BSpP%) zp0(va@Lg~9Uu1vZ7%ML)tM?1{kHx#}pZ@Qa+57|FQ?mUBzE@-S4}34j{tv$22u%No z{C)>9IsOCR6LoRJ z6B2Y9O-)YlhRdBu+Heob>W&2Ut?)AOtItVmBY$+n_Y{@3XWtj2B-N?CHn_z}tbvK* z6Oo2~LRbO@b>V&AS7%?%AlnbE;GMD*1a4C^xa7FHID{W=(MG2zeMAq_Ww950%D%*I2rT4rMI{U^hxR4U$!X$}`YYqO zgqAZ1WCzN3qLX*!dzfXr*lC(gC;}*{h#O#h!YIn5EK;h;hRcj{39JJiU&#p7lC{Cj z>3(z*b)BATbkh1JC*bh1#2t*=6Ws}*Z+~~>`g6WKLNQgEOi9T@rdfcklPxPMVNH*z z75Yi24!g!R7W?S+|1Mu7owpC(lN(!k{Ml5w@i67$?6ssb(P~() zsTSiFGh`CQsDmeRXA;Ev#+K5|^(&NKh80^B>8vuBdq_5OgLw|a-jzTDLTggx$$wn? zl!RcaUkGXDHMireLTE+h9PO0-45%6-9S3hP6U~_A6ks$tMj(_Ew99>-$Ln~++oFNz zRxF;Pt7o5O$TVcqG_$%NFwdR=(`0wUK9oF%wFi>t_opP*`V>~>A#cKCiKYzG?QFHB z68LGn0ISQ!y?Tl!?83mc&RLc8b$_yEFpTUa5qRE3*pl}63aKj>pe%ivm4}WutQPKaTJWz9{))_`#md(hhC3PDObvDc-^(MW)$S@+js{HYTV$Qhmw%^NhoB@! z%*6eKOL_@2g;Fjpvdq;nFC<7>nfEyt8+4jJ?7>GnwHIl}0pAHPDTyemwfn>prba~a z)(=t4O51db4>dbxj33L*tDX2g=*mu`5)b-Ys7%p~ke){+1m5@_o&Ego8;IL)A_)(K2@^s63mbMoQWN7`v zG-&1{Sgtc76V(YrRO(MJ^4K=0WIsvlJ=R&<$l4r!x@?jA#{8aAM>~^;PE9eG^r_S? zHU9m?-p?qN=7HW^wY%c0{J<)DY`NO#acyebC0UyX4Ix zN!Vivv7g}cc#BH=xPE??fjb3{POql2i^Te+t?0RmlB&$%E3UqAy@5(hXbA5i()L_C7`6Y|qu{O9%NM>!2ImmH$j`e8Yr!MmMAALiVS|AX$c!bzg8r zLiWoXD z-AVp%E~zJT&%G7dhsq5%J>g})t-~eK`4G5abD1OwT3C93P3OMBe!n|oH^{RU2D2RY zBH31=TgR@b=6{Qyc?2T^P!|56VenQgF%3H4ivV%C+zwWgIHHY1jSQ(5hIRx#!m4<) z?*nCfVPx;Et>B?`ZhOztDGC?{x@T?diD|1_j}ZQs@Tt1wApm{Wg=VX3u6I}3%btiC zVn7?B6wwSq(Ez`hUHQPpL^F}MnwWHp`G-3BxH8U7o<-;gggJYNG* zQuIOBKU?e|11?5`@gt%{j9A+iTRx=U{QCMbC3|%(L2|N6eY5 ziA>%4JAWg}jrD`p0@E++J=zc>YSUS+brOBJTGJo-xbyP?90QtIqlndl3#mHeB#9Z2byrUfbSZLig#n zgmf=kg!i9RF_cBE1+RA}Pf9LMSKK2tCFk@-tbc6l95b7%AvaNSxIYp@L1cZrxS)mV z93YHRl)+PRFXdr}@NWAZ#lCQFAA}5W;HDuI&pqBSH5gpVgZ|BbF{VLnxp%wxxK3Sc zti+lT)B0MBv*K;a2Fbhw|MQjsM_selr@aRD!ASZdF~%@LuLFo~Cpx&jjhGQn_`)8m z_KhS^w)#OKm~4nqT7 za#XM4vc;te5Xbk9x8p8;|A<|N+%xa1r}}BDPLLx=CJsHcBG;wm7Qqw6s@lqnWXD$X zr`k|8SA-1wgSyp_iF(Q{#+u{FaL|2dJb!gHf|j|fhRlP&g~8KI7K(!J4CJRIbJ+)d zoeEW?N-3{ELq?Y9It)N%5InR_kaI$qu8*x5Mp}h7-W9(P7#nNpwYkxSW z_|421nn9O~a)bi^-8Gi$Pw+hp37??(`2x)8YYb;NOZF^s>6N>j#>;#!t8Lp=xxaHY z-4F>{!$(3zHrD|GhMl1eIk}3{MFhfawN_|{xyChmqLL9E>-6#zv-TPUIqiq&jiSK7 zc3SdUVh2ahEjBp-%5BfJCV7Wmk$+xy>}y!2g$5rk`&&$0eIBj~luhe(@>6I-QZ$rh zTLiIX#)jkiDk2F5p#~mCSG!eINqO5U^=vMH_4crJA-|!sE~KcG9Vc&)4D7Y_v*Ul13wA2A5^Kr3BiGHfQkQY@EDZf~D_^(S;y{kMd&RmeX*&4yLlO zkx%m9`f1lQRs6VuHlcxZ`V0$ z@}}^M5Hb@1tRoQh+;wH4b#W8fXsW&Md3;V#ay+IlBicP#C1ThHIe-5R6%Qi$sXCVv zlOoS7@B>-#pnp>$d`9$7rF}@m4?u|NsH6xglO;8lPgfJb2*7@iB)l7Oit_J3aoZ4QUA7(omJ0Z5*Ns2X<7>h)hU@&CeH!@L#6t zH0Q`Q$OWWv;SGXK9)Cw`?#~TdzU0`9?8hmz!ZWTyD{$5ikrPf}ji&wE`Yy0>JV+vy zy_>rHkM498BTzN+V!Lf=<8)<&E8GwX80iF$UNMZGV$(|l`INz(8f9sIOZqZ_*s_-R2)SKby!$KSLO6KkBYg+2#)NaP~Q$mh7ZGTk+W2Tj-A7wt!JjT`B zo0!N6G24C1l4#z?k2~ZYI_-cTpARkwtOFU@?3XWA&W5x%Ql6Blm&dn%|_mA0Mk?3&Os#RcG)M`&_d-^X*g zf0d;M^su4FgMUAx&gr}uE+#RYDK1g_WfJdxVq<5me&& zkLKupV6Ot4pEq47qKpZ8@~tBc!bDxu?*`1& z3A+HP%YTsUBoAo&qjk7mmg1Hdjf>&yoYaIUzFGVJjCln4g6YBBW0~?l;&UkoJmySu zVY?1bIyB)0PogwWRd}$nucIu4b(u4no{RhI(bPObTe6oHvK_vzNl}6^IVpzpP#~uf zF7bVB2c_&If@ko8$Kp609wQuMJofl`D15?1Wq$(mfi0P+3jEB>Xj-1JV?(056EDmk zQ@oEDeD~(QyM`tG?5~)^oP;x}G&Y1vUzSZU0evQjhK^pZafStz)08~u z8yQizFb9K`6h)o<{2tq70=7b_;~!SuY=oVXfNL@ueif= z?-g~@(2W~@3Ihf(S)hTMAl7)H5oZ({n+KccY0s^(U{}3kt+l}FPC$K$A6sEEAC?UQy%%IX4I5oVaMW|o&7YYGpoK#c)(^x?Dti$ zvCh+C(nw(wHkv-T0(fvmu0vU_2I7yiTP$4Vd-HOQ-n0^YI2(^6V>qbBjufs$=)+y8jm+(PEp1LF=xj>M_0Z+$H`5HY9r_V!H6+<#dvyQ5gY`C<( z9Ft`?OeaIlK&LK@G=B^aeizl0q7K-!-o@72l_}K{;TQgPxRWhV%XueMgMMTQh8jzb zs6HZ9eu7pQ#H{El&vCm1Hhz>OPkikb%@7aHId5s?{saLhzwcNgQS)t}$X|x0QI3R7 z``5U~4>Wi%d6oM;G@twKOwc$ml@b5WY(Sp@rc@+fB(s|ejDJl5c^KVyt$t?>SX}OO zQ|F3_ZpbailKJdKYsr*)(O0(2RduWeK;XB=(6bpzHS2rTa+fQC#T{Dt>Zz?gKn5Y> z7{(O?AK!JiiaNIiUnXm|%{xq|M${S721O0XICL^8-S|j)I^=3VnNhQ{ZIEMoeb%Ga zD1YH~x^DDl^MCL&Q+1)4|6&JlHQG7{P6~= zw)b0}{m~Me=fX{twH!&@S68=~$z=1Gh9vtu%>XTPueB8pS>(iq zsYBb<6Xuht2Y9vbZB}Y)a;>{@G~X~G1Bn6`o+|L7(wgkPnQpmW;@7_UfS>Tn_%s?* z0@R$|=4KJaOFszml;2N|0Z>+5#w%r zCf#p|kBvWl<#?ot|2PAnreO#%9+Tkcbc53P+k%usSR@9vX#ba~GsZEv0l{5|);z7I zQUZ~}SJ3i2z1pRv5sZ;RQvq{WboDWV)QI-ngMW9!A)SAHgjCYXhKch^ zPP}DesXgqRL6d^R=ieDH?$ov7^-PU7%krj`r~yYY3+CGwOR8V_R;03pgiK_6HPw-~ z-n0p%}s0!JK*>c_qgy>#F6> zQGa~QSiM44EaBtowRD8Hs>$lj;0&SiOa1HTg;bP<`ODgljin)2 z+MSmG+_zJg`_rXgzSX?EEhw6hiix61-G3V1NW-hrrk5sCHR94pHD~0UV*@d$~K-SID#U?KM?wY2UsAy2R{K2#57>lb>c@-|T zKI_Pi?rw)JpAEkU_@m&6?HIgX@0JA;vrc1^I>3O7mF*Zs?nugVPrddlm0Y3OjrgaS z9pfs5m(tk6igc?~kYx}f(iOA6h14RIKVt$rn#o?`I^DVR9 z=moChMyPl4WQi+KBPh#qaQsWR&v)HI2k2khj?ksBN=<7t6O!#vyyMZ}s}g_QY*6F# zjCES4%&OtzN>D-dZ!EbT)=b?8rsLy!>)!OA&}6{Y60ljl@L12J0WZRx-@E2(^<%Z* z666jD9IAqszC^UUhxZBmTEUdf=o;nLR+cJYZJ-(>SG@UrW)GL#6))%YFo@pn&vNJl z0T)f!ZoC^iv9wjiw|4z(T}FS*z=?`4l9-)b=n%b4Wfwo?2%ojhEgVEmb+u5=^HvVgnOMQWb{kVjoV?I^G!l=}IFUxGAhcZ7ycVn|QnO zC)R~e;h5Yp6<R1z(aEQ$@<@y}`PRwa*= zWaWnxY!TMj4e3$!Yre!$tHmnNLSH@b#*_D^e)-Ptze|IR7!}j7`*E})>8iF*Fy*X3 zn8dFgSM^+`#AJ7gsRmUe$>)hCPrYSZ-#qNBpLCCrFcf~~Vj&Yy!YJP}(;)A)h5pE_ zTZj_4WzhOzhi3~CCZ8D4tzm_*90wS}G+j7bnJoq`EQ!L~*I zt5ZG1u`=t9>2@EXMHkNO+qr8tROoD$4R&op#z~8_o`vd2ZpWL=Q zM-m?^?U^WU4e6PDf2;dymJEtMQU_2aw=xaotp)Dji6)YYeG?!x-XzLLGcqCIYTzUn z?N5M`Y0;^r=6T*|fMTB>$1#L5deQ?0K_V?VmXk1Y)Zo>1A@@@ld#~TNlwN()K4A&yvH4tN9s3FCu8e9 z$i2XMECdnFWHFUH@M2``Rao5D;P{H~7v;91ZKP@ff|H(SCc9!{-8H=qlN-UTyw^H9 z#>VGaD@^?5M>eXOrORTVCFN}LG}$GfH~Mv^y)b_V&pG*J$u+5E4xcaxbP;E?`xD}6 zp?ayBoMAq|Xzm^U2oTE(zP~0)+>7~{y(!h;ab1EVH?xUv#5s1gmdVbe*X3VJ^J9Oa zg1>%+A{&V;BsSzbe!-OEz4^!_>c`}kMJ}Ejk%>IC{O50I_VP2eOsSuVP2(?AouHRX0@UC^# zdOc1*!7(DuZyoRsZP3kbsz`lZ$F-necJOyw@io|Zv|7b z+Z#D#cLj61-^LNyg=6Was}{wfa`P~RuqgJkI@nXkKiTLHT z!3DyvreNROJcgcnZ4Y9$@W9E zEPgb!M?w(EHhhE^w_+Tb;?k~Eyb9W^w>h*DV;^Al`KMk?Rb)|gvFLm{??N!yjVAfgljDOAU+y$4bmAKnW zxr41rL>&{pK8AmDMy-&>*6zzCN4B7=7w~xhUp>a^H{YUr@kIk}HO-V1v89iXI*|+o z{kH*)VB~DYYqM`KUS>Lp(#^@>1642WrsN{F28veeIfSZ&@}xlyVr`$#(;Fqbo|zTD zwSGiNm}uQ|ng=)>^oHBl(0uWSdouZrCmj+@^7%<6ziofecbQYWXXCF3Luj(*EwscX^eI3Vfizq3lOA1QWMXl5)D5}V?vBYTjEtt|y3qjZx(?Nk zqnKpmn&=kjB&U0HDzsVr3OfHUy-NHZ)ut&ow}Po$SU*zJOGT+pMi--EtT22a`bLys zpm?u+j{1K&Iwu7US5;|;7C4ltVcS=TXmi(hp3xjy1&EQe#0^yy=k3qFIe5B?ogRBj zN7Q~M-v8_%suMTAO=JtCBk#efD*4Y#|?*A9@{+AM5n6PvVI=&@M_THoYWEY zKxNNnIqw0>x=q1_fbe@@12f{b)vk1HnU313b7Dy4&EC-srykLv1mN=uiKz0K`n3!2U%)Hz4waUUon!df@*< z1kpLU8{s_5cdRB;0r=XO)qZR{)f~@9;P!vqipO$3vxN^RYoG(~RQ z+yUwqg=wO|XpyvL?{bV<-l+4k!Z?2u&*Q7gN7;14imstdRR1`Z6k%ukiLHx(=CLiI9pdLaH*KkQ2mY*KZ zb5UfOmxDpuQx`6I_hMB&H_oJJv2W2nW3!&g*|Lp(m0louJ^}^_H#f<#94#(>_nxZOL_Xtl>L|QOU1UqBs+BJn^c0`1S+$j$>727S zd49knZ?342#KjuJcYR3KKBwiPTsI?Ffwzi` zUjhx>b7+acw8$fDBxikq;Il0aBVm@NxFcrvE>9A1`y(asuW|F4i)ViuK$>%i5>nU5 z5GJ-B7_}T9DOgrL9o627VtZ!J>s~kt-PeXZDhV>XE&;jx($}#_871?L(eHjG0Ispj z8^!aE^72#l>sl-3X$J)1>AV|7*591b?WKHW$pWn9sZnMrSo5ajAM!U8vNiKGIcDHJ znu8^Q@edjN4J+d{RnmXCHwAL)&c`uFI=9+u6H;$wl7})dkrJE9t1g`S z7@}bY`$w|&d;y0L_}qH)TUco0Dr|BoN*to7YWNix@|l*m=U`u)bQ`NF5%D-TOf}p< zF$72o_pM@*p(C)hCn}#ZJTB0BudzfB-Aq#tjvs$M>>{hSd}@Engy2og#R%rTxrPsF z);dt)G}B)=2!Bv~ywx)pHG?StXO1%sxpL{JhyC_Jt90;eZO2QUBMx5hso4gjp;x`bsM0I=^`aOTWu?gW5iu><|x3W1g4_b>s zeDpPP!%?2w*7@>H#TsoC?IQ#mB;M?BPb<34Dy~t?G0I`0QUqi6UfhmWlW*bf)a7)Z z6GH(N)Eal*%9ckrgqQ}E8tp*Qi9?m@`i|FE}<-r)lLI_DetzX|W!Cx+P&hQ&t zJcRXh3f_OH&%Q0T0fXIS_}yvhuow-<>}*TqMjIbnDW`W8e~oHue92i1v9lWtM(>pU zgkN)M=(N;D#+IznnSUOWW`U3x|F!V)CkvEMWkV&O_^>KcI{^(>D-Q<>1dodJX7w+! zzLy5DuMj6mg5wQZQ5ttuVT`Cur%?};LS3BY6Xbu12Elo(0FHxIxV9_4mMxv>!3Wd{ zR`orPu(5>=DD>a659Ei&)ri268y;og2#ZKysNqgAJvQW7!0czLnpvL8BV&$b)Rs70 zHG47G{*O3}+R&+rV|NN-ACrcMmI5EGY{$-VyU=EdnwTcyi71hV>VUWGCuE1$2cE^S zzpa1vpC%>(%>_Q!z6#E6_bbAtjUaZ4H7{4_bmkb+`*lLK=Pd+8Mm>CK;TFjph&8=r zyO$>-j6s0()H>R7Q4+diUai^;axjTq?!5R#8K*M`|FP`O-Jm8oq?MC2LR0)6E|xI7 zkM}wq23?F(irRzMe%q9=>C9i*N zBV3{AC;l^OZcXX|??`xIZPrDD^?5Nf~gkS~_rdvtq8k-AI0aIzP z)ef0qjTaKr%-eu*KS~9N>70alVINs zd+y6X!0|*fnySJ=t^o+WG zW?Ea48(G;>u2~2!)5iSaje+rF$=c5!*<^=v`9Ii5Xc3ctAirhTH8SF7JV1Z%RfcvM zz3hTAu0)2;%bbOkaq&7Nq5;vQHvSPV(d_2yGb$1~d94wrX)~#HoUXA!RmDE#y8A+1^qg$*tNjd%V{Que<*&QGS<)7)<1y}VDwAh=js2t z<>bGqG$oma+ak=QM8;!Nla7BSz+_nnn+DE!C53NUZH$cgX%%~c#CNZ#v(anG2ZibM z0Rc>rYOPM>b6-aO+)RP>g_{Q$w^R+t7A88&Ju4T?o{2Nc9X$eo^xR{ zN(Ik{>2LN6135>Xuy+~cGPGydtm=N7r{;CYXguZ(`g|qYy7hQ$epi3!n({P+aKn=X z3?fXO-aH*Cr8;5N-(Y61ad4LE$}wwPiMGekL;u9(x}NKfh1Yp^C3Bh z*cSExi@r3nN)hsmLo#=^hx(Au1rG|BxgrN%F<^h8ezL4R5RU#dBc1tMv4%_xzxf$*(USDyM3Iex3Vx}Cbt&B` z@?&nbFe+#q5h%2XX*H|+Jr&7++R5C9zRR~K;;7T&%@dz-GKfIh);04fc$7nO*8P#7 z5)8ngXE5uNZKsaZZx4N;F|Lc}gmBW1FxEJ3DJ`J>@bJoBJk)>cma28R$9<7SsQlH- zb#qS44;=k4WRFp3-xwpfbuONRM^t0sIuE>*lt<#ls@V@u`ptV@r;Z;Vm8y_~s$-1Q0h z1#kU3o2p~_xSwg0qH>*+i5Ui()MmYF+<;9<2M`Jl8RjSk+sg8nxi zeWR%^ofVx=ZasHhdL^?}iyG3^5hqI04%iITfP!-rdi&pT$V$}S5eSk~gCv?Van;C% zehPog_9~Pu9b;-kk`{`>dn$XJW2Ko8wc_Nx;vUA=ABY(!#%nov0AYShATMEa)(&{8 z2iI?VBu^nh;qtrt{ayxJzZnQYzq5yKk7#T+YzxfsvXGqu-x4VK&TEn#lczHiiG^vZ zI_?B@qOnw=z?RiKNR&*bdooSo#A>8iLs@^&Ygde*fqNVQMQ)Dem@sqbaY#Dj>O@bf zo2Q$sp>q533_~u4ELtc-rBJC(vo|Xk8<)D3kOo@7L+(xbFBsovVP`W{(h^) z??2W7x}m5S`q96#6M4jcdn%FHp46Qnq4=eZ@oq0qohX*2LxqeCDr#L`n2+(b`bi9(6Hm7l^ zR;e%~@?e&HkAopYR@X=u^@23p3bucxnjUgo$Tfyv9F{Zkqnp?B8>eEh9duMOy>tWP zNk;lXur?a|wbbpPTC$-pIZModQ{=u~10|a|aN41iM8>tJJDbyl3s7=2PtSc=c>VkP z$+AU}Gu-_GNfo)@9B;kTWhKl9h3j^#A5Z}_A9O^iOHwn$e+#=Bg4Mc9(G!0v1<0b$ zdDGW*U_xZfaG8d(p}_AHT1|N`j!xmd%{SH1qXZ8k3oW zPsh27KfJT_+J81{UJK85*w*$i`oz;ov6D#y7(5=dJF9o)38QNhc32LlAuW4=LtI2( zr1GnmNPxn1YJ|K2(F5gG^+!5=ZR+A-S#0;6VoGBX z)tU{)w+HD9AA~IeIC9rOJP^~I9Z?`CY=1r$MZ;Vp&9@0-b-FN>l5C2D)V|rl&8nVpwjzS8<^(+?83Z*536^PgYr6|h`E$oXn`oN+L@x8vVuA%65_Lp`T_Gx z7gX{kYKRX<*h_!&Sh-6=W4>VZDrmFxGP;n&$Q^cyF>$J`O>S{39`g1TrqWhG(_o*) zz|u7Yksg6E;oY?wUhY8&q$<;{}|Y!;d9xfzUSNL^6nzGO8f;|qr*>XjEY zl6H>>Z`RwMRc^e)AS$b3AMOw)>cP$d>UE(}bOCT3Jg9%|p!o5kCS}-+M)~JOF4bK% zZOf0jgf2)-8i3{|QvsnIL;%cltYVnOSTuRQmx!Hoy?d~hXN&+_B+)nHxvCr%0`X6n z6drY|2b|n(DdZbMJ^Koq_L(`UaC}+j)Ogic4hMptLfsE555y{dmE1GLje7Sp!S!!Z zkBE9Puo!=FWX5WYsRceL9Ru27KVS>=M0I;#>dLAVmdAT7F``3s$iakMRyCygLD$$r zgXVfT;@KITDV&B|eSGmbz(c?HJLMDfD(^uFrXzDrqX=s^kY2LW3$Rmhafqj8#`S|B zFkt(Cc=51unXha|yFjQZH}9udIYS<-PvBGgU(SEXg_`jrZhvnxTD<%8`)ZI+3w!iO znFgnkzYeYHH1mV-6aHw~EnioPsDh6EWB7S^CT19SR|M`z7rmi}>%dlHkXwz*Eia6F z-{U%w)hffFJa_$N3jQmnUn^p|`+6B3tf$%wyDXPm@aO)RN3s}wW?rSN+KYmVS?EoxY%eFN&F+Rw=caHD zHpb{W;_6+)L8nBalhkY`soHXvJKPep0+0_x9H-Z#g7&?#T0a z6P)u8Oq?b2o%wYZvZ*@qWot3qV0F-TN4QJ(y}=%97nGp;DU-PKgl+~+ zd}cWo>|P3wuVYFS$Bz@44;%f5)#$%nwR z7Ak*Q&+;{4|IUsV587)S>u&6fV=*fzC#Db~+dM zB!|&Mr0R8(vzPwpF-P*msMgPw+^VIN5MGfAXC5?TnRc8Q*`q{W?4am(LzVdM2cdd-oMNN>=l@PDv8f7iFgGG9=f)ezEMgs|-xXYFpBLs2Fp?4p;S?h4Jaj#Batk)IVcq)dXOi zkFeAZq)&qM1F|Ld6@6g(7Yw=74!-Ol>7DMVYrzPI#evih=>GaUSN`RQ2ve zQN-#~ABdHq&zCZ>Q5-$-7Fe;#Nk7iH?8vhMXTg zo#cllm$#)QugE_wvy^|DfJzsXni0egCrh5&ov-rQ`b$!(UWD^*34fb{KMOG&J0Nva zrwkE)6g-y{khTOX(vh~w6|wJ|5Ps5$G}^HZZ+&JRExu8;ChD<+4MW~qTPSK;lL>R! zn?hgZ+cK*dpu1PKHs@?XP4MsM_H%#^&v_fU@kZA!!IX)w$H{-(n}))rBhdB`2vKrfqrVxmBdneJy_;_B;J$)BP!hzrjBX;MsB3 ziX${)py(50JeA;Wej}W^L}`t!G8&(<#_9#P{N0e7xCi&K{R|Tb9d(5 zq%TnUbt8fCeDXnlAZ|HurSsUV45RO@biXCinLWnDe)?!tqsP0qG?+R5wgEN?ARB~i z04+4~GA@5f$HqFC70~A<6CiWj^dX6dil7c?&T7`Mhy$X1h3wHC2T-`{K-8@j&($ zCOByV+LbSs1wZ^S!{_?t;LE+w96rTK6)v{E_UUczUUFhA<0H-NWY=|asKD+sl_}a&i zr1ap@oQlLv!vgZACn%qIE2Af;fKDa~j@zxLfZh{ZU^o%*{&ii-eAvOF?!u3|<;)8+ zm9>AbT+;9Q7S(0@xgVMGs8&RxiH#)ZEKi?M$oGe!K+NIWV4CW7#Du{BQ2FP=ctGHer}KpYbc4^UAQcRLAtm**HwpK5){nQA455u_D;894XCTSDBvL=oukI zI|R6VfburQUvh9z5_%og^38N)KQgyT7&2ddG8Zz=gdl^6DVn7Ie*$_1h5GhA$bNqV zZClTm_dGmOr)ttG_yxcWd+}8dn%I~JaEfQ3F}exxh>VSi>P?4qty=ZlW~zc!s#`L` z31@8IT^7lE-$YX9 z&0&dv2z$+?Mj*om&e~KyQQn0pk*~=a*GHR6vOrJOy_#)Xkt?WC{!QMg?A(94ACp&P zXzY(8#ZsMUt??ej3s$?x@D^Z|OmFtYL@UYb94|?l$r`?Bw*^ScwcF*i%aRS?Q_73q z1NyK!cYfsbcRsDCK2ocsbxYb7GrzCX@nhj`SGOT#o1=ckYL(rAyp!4KlFsm0<=GBp zg+V5*CfwduIXQgYJ6;9FdrE)8C%MYOt>pop`%DHrFUE3cu|ky6Er9RHB+{_22sG+c_Ce?0(Iu@h|M7DF#c+UuJn9hdTk}BXV$V;7-Pe zYBrBCB#)k0#40{ypNpagm7T{_YmQmJ_ZtP?9zjZH$hf~Qe*1~C4%dIz$1w(9&9HH| z)Z=bzZzs7nC-4oz^z25OXuAcUJOX2qZUhhWCS(N@C5L!XOROGJI%llJKP(0KM9({FN(@SU`PZRQHeQtODPz(r%drXsbcILT7fflxwLf{N| zpE@rrdK(nXM68|sh7Nx}Aqf@bToco5eY5nWliE0~d|K&hrn`8|bpDibV+$e3HaKG1 zLr%H*5+Ob4*}Ud{Wt|Crny1LjMtxQ)m3TcrFHKNC<#3I#r+d@ELg12(LoaX2)Pmdo z&N2q6(J8(X9A+O*o+gXEGRdc%;_{L5;eWT&C>N>*_R8VqHlBYDQL^n%IQ*+3nlo?1 zF#-G6^5^;524`yTlR!izV}^Z2VHT{ov~{sht}OP~OPG6!1+6$$Mf*guwHDPWyu$rEgqN8{QtyQIW0=3WY z(cK1FIA?`Q6d8XthEO#92A2-3T97L+OI@tY8i!(UH5P)v{t9xa+O3qwdoa00xVzU?!VFvyan%dvmutgoNTW9eSZ678TSK)sQI#b&rH|CA~63K|iTc^xp z5CyczRfn0|WBJ{PrY+~1mH&=vZYQHNF#^83?XKWGS6PTc6vE+{?J7)tkeichc(>cC%C~{!n`rr<;*E}ZPU8tJ&hoVL8 zkBW1AiAR6d$XV|_9m5xL=WbwF^ZzV%f;L#}mLRdpYrLd(W@zed13|~-J_SFf^jGPX z*hE4>=cHKjCDiV_p%xAsn6ksNI>FUBuBHK2?*V=;;$ zCfEe`T0b~K9&qdGPEEm;#(jx32-mBs!gE-r@|Cg3J1#Vms{mCqO623E1zmhn4Jb0u z_9|P5p@Q3oO(df@9Evd<;{X`ym+hNTQs+AKUnAIxAZh>c+jyZ80D2B^98!y6FlcD< zVNL~gMC)Qtmw_7s69O?emoYm76cIHyI0`RJWo~D5Xfhx;G&4Du(NO{w12i@@m*EQm zD1VK#1yoe+8a52ljdaS;%`kKc(jC%`12Y37Fatw_bO}g_Af+IPG)Q*|(k(3@AuZhk z@}cj0&Uw%I|Fynv?X~va*WLI1T=&DytY^S44?)^ORgegGevp8m6hKj1!4xC}5EK*^ z5EK-`XJ{zo$oT*ft>&bNIN*x-RHkTaLG8hySqpMfnHu-0$^u10e>XQ zUY45=;01Sg0O&*ApeRo$1n|3MfDYIh`gdyr`0M~f2e{i`3Iim}-3yF@0`3G(a62f% z?asvm0fC|bci903>RJF@7bxN{W39go_yB(o2LKWP{X5*>-oFFE5r3S)c6LZ-7cjyH zj<5&7;7(A0u8Nj`ySFtFC+>AfIz~M0Do~&L4f~%$I%1B|E@#uKfdY+7!n})SGjj{`d7)Ge{+EA z?*-uo{C6xJmj90Oecz1oc-Es1d3VOFZ|D949 zVTXkL-ZCLkF#s5a0{h?#-cd2_~94!HIr0se!p2%i+{&YVw_~|^30HLs5ANG zzE7m{tIAxbkLH+e{B|0uaUvU&9yeV*yS7QxA6sj}pBbg<9(lhbU-g+0kAdIt(fYF+ z*JsATju;K-Z5r&^t{xJ^dO745UR|o*RiBH#4n|C^Jzg&t(3${ByBY!Rr*?~97#Oc`=vaFF?CXGa1eE%P@!g+q?OG0s%lfDZjhC*)bv~0BI zG>jOhWP@WIehQl@8r0K%1s~!yB4R$k7_F!3WLrqUt|Ar8ZL=~(10%}=G+Q>oibW)= zV-fLok5||g`nH@5vRY}#va7`N$8SJ3x%h66TQ_c~e1Bs~Co)l?a@~&ZyLv*AX`L^f z9)z88$ziu{MsB7|i_OsHbbpo%80V~hc^mjBaYo4Yox4ScAK05{xAmU*#i9Smh$;g2 zt;LC<*{-bNC>lc_E4Uxzz?>zG{bcv8NpE)<*{!22I(=d6*gegsgB9O2+I)#`J9Xaf z*oDf?S%1r{Up^wdw>0f)xaJWy11YkAj>V-vmD1=yU=CAe{+wV7Qmz1b`D{$RXml@J&D!g^ zHc46W2$WSxX&>~aSlA>fw>?T=aP+uMLx4(bx_@kfQ6|-pR=e*9OO0$8iiV4}L?@(& z@@)#?N+@fFY@PYjjx&dxz8cnPNY(5pKyB4~~Cff@J|EKjxBF5MsMd?M+==n~g`rnl0Y z@PARq12x61_0YqiFm5tryjN*>_FZF#-b9RbzCTS}Jrh=Y`vm@X{(@m&Bc7qJ4}?oL z0?t;|^1P@+eb*jK-J9&gX<{OtS{@R3HAZRY-B?7G>q+yvh>j~ggiOXHMP1kt(M15surNzqc%<$n}?b~)%&3PgqP#MO-_gKw~=*0N1*8#45* zh-xw=yRgj7GZ>wp*-<0IA}bPt`$E($og;M6A_5R;ueR5A3D2@=1ubcBU|NJ3D9o8D z%;e@^-LBgJ+_{CJ-MEa>b`o?9Y4k9ze$Kgdrr_5du!>NkYha$8$?H(1)SesK0)Gkg z(EgwL-CUL=1!0ZDWltvugW+m}Q>P_WIuGFCF@FHh+xOPes6(@b%xDJR^^sjqz(VCZq4 zcQB>9Qw5?-EMdM3W(WXhaEOb%4}aajda*S>-u4-X?_neFK#{QuwcWb#XW@?nv^^4z zp9vg(*kJ8qJ2g>m$RltQzJb%%YC`JHblQ7}CfcM9-sM}Qu?=NGq(ZxpYz zg}y%-6h)P3#UD%M(tNLa-}`f^v~?(8>6cwL*|hc(yn>}Da%PyMjjY~wxqm;d%KO5z zQdz8-^;GiY+Eko1T#=+^MhRc&JtJIR4Vqo7OIpYKw1hIUd};w@*2TT(MzZAr_sJFm zxG^QEQ&h9~DQv=cMjl>N}tmv7e zJ8vdnvpPeS^iIao3!aNL(tjtux|ICj`OrbR-Nuxw+b1DH=OPt{OOh^sgBl__C6lvg zDpG{iBudU4e?Vxen1TIK`GLk+Tybk1spZUsmFYVQn#Pm|)nysivratq6NB_pW(+m_ zvJ5VL;%CYAT8&rLJu~KSdlUnzdYn!#PfMc7njmSQ_d`;^;GY0{W`9149{iSh|JZlL zkB4~=a3qC|{Q#}Wk7J#tc2vu1YFCKF(U_%~?xFj*@-D9z9};7rjzjm=3Q*^yJB3c{$j& z1*%;N!0Q(mw!e!0f5P|gKTy7Eb<23~rfNj*V z)@zcS9g>Qmup`dq`k)O9*NnP+T!A-Jih>>tMmgt=DQ#Jv3EN$g}EE|z)vXAF|)p(*Bl!yV^|e&!}W z{rU$?vzzy%6o14VTpF97WPrGQ|9LflH8#-ZK2L-dvBRpkDea#=!TWd{j2yQZHpf8`PH z^U%_59)4&WI25pVZL^?(ccU1hE+->;n1@ARNa*X9Uw^&p@1gZ1MSCWwsFg+ht!C>N z0*t-$ji#gT5epJNx_}tJqoaiP&$2zAa6kAYpcKKtApCB2Jz0}2nU*4V6ECe9z$YA7 znVvGf;MVy@iMna&i~em?Qr;&+qS~NAy9%6Qp&yB%?7`PQN|xHy_YEY~W)2?5Hc!4m z!A?~3t$(jAMMWc%SyyL0DJ{ayMyk0fH>fnf8{}CtR0kj$(n_`IOt1JPIC90oMBNa! zU#}OE39Q|LCS<`gJ|k^`ZCy0^xW^?T^^Z0ExMv>@p@o|$HA7^ZkaW=PIr9vc*)LRTsjlgMhWHo)zI4(RAAPNBM(CT;s&1=hK^2DvW=Wem1?_R2p1*CLik^C zU$$L&RN%LJ@KQKcLr%Yo)NIxJ7TRgKMJ7>Q7;0c!NMV(D4%1zSufLEpiPE`<(Wc~S zB!Bv-g9YE;(}EqtR3?D=as;_(gRhXJ!-F>9A?ECPq7{X0cdJw15X%;{=5$cD7cNN@XxY$~EB2;Efn^>mf_H8`w>WCz;m0clp z&f&$;S2l)ezU5=tto2B`W8{|R>p2#+HzVc56C~My`eLDB1=0eeA#qNP3a;AyCV$4B zjIpCqJCL6GLc;R7fK&G43G}CZD(p|Q3iPV+L3>TUwnBYn6(&K8+Pu!1bzu$NJup6& zd7yAWZdbYV)me&o4p6+K^x*)Ke?y-=D0+Pfk;0&%P|NTLv5tN#CNH@4$)TM>Uq$j` zmf;kkUjkPSN9qCFxA25Oseu!RHh;SF+tYaM+o$atI0adRGxR^$6IAX|8;9M_Jy%`n z^{flQmV06#wX`Fp0d>*u9<1#nxd>d5%qT{Ckv*^=V|H$V=zU#VdeXCaFK!2y;>%L& z@>HnAHrvlORu(Ak=tHteM@9n1L)aoL>|ILyi>v{HGP1&uYC=6PdgU6){D0FCHl3!h zIhmZBg4^dTPff9!Ox-YUv{7_3+sftDKi*7gU9)U5|KNeq@MbWh8_7o{j`ZInu2;w0vT_ zygJEthI-h_JtUU^{6Kdu8Gk2}fh1QjBHiAZ6)zLW7A;(*QK((jR|lk3)*8hAb$&xLQ*dTosR zu--t@Z|{8?*pDD(ckBNakYR}dy^Ol}V#O7=KZh^1b_5n`d@nafK7T*&7oNSgs+u+R z7WYx5RQEfllAoX5!0Qs5v#qL)D4TdT{Q0Wsu&KzxD}6Q`t@pTXgBH7J5L@kksX`&a+ret)Ms} z>m!%0Ytx60)hzOw?0;HnCAq>@c_Z7{DhyORZhUZQ%NNQLsfkn(gxDs4=^B5~-VSCh z!bDW92TL4Za`|m^4oS`99{c2#ZK2i~;y|yRK%YVvSjN!=9_MiD$&?}s! z;*FKET1yqrQ==ayj09~#PJ8(5-dGm))f1$<;ZMZ^^2ihk zCMf4wUcR(;bbnH;-1i}AoM&hF#l$_zj;J-6RLRr@qETp*rumcx_EAi11RR^Yw(J(p zF~QYy!h_j9WGN09X7G527Jat5D%wclK4F4qp`*Ktm}jIIqfJ;juSEqLe?d!})4fUx z4k|ls=C((J|7yTLV&}i7Vbq;%0sClZDn0=epbNK)q<@MD#x=rx&Ufx0zAvGjBQmnh zfakj@DYZISwfyv#Gs^QcL+>Pxl}PqwHm+@u_fgZT&3V&@0j6~~cHG|Svw)dZRMi%9Ifh8nP1ab#Y10dsUM{k3H>gef3$HaN zUn=pQn12oMtBIe(%uwHcA24bxeS7ffMwNm8_^(}!NMC|6w}|M;+V9cJQ%|Y!3KpvZ zd^5ECT;(m%^v508xMQSzbqqAL7JL|suDwP^?z&mVZc7(GB{C4j4M)Az&TSnaV=;SP<6A zlqWW5-riGgBS=K7N<3KYERkx5`PXrc&dE*3)0`Du5ypZRirH4%h1<3F4YBC%0E9q$ zzwcCze2&(u)=m#O_Wh2%9$WC5M{B&yajnPaZCHLpu)pez;QRJe8=(wSCv+w#&{t(F zH^MBfHY0y7m-v)^p%YGBkbC<^lQde2-m2@p0&~%4Y8|;C4a(^K4bEwKfiuT;KN-E= zPp{?H*nqYd#Iu!+39}1Pg0e2&4$m6Cl(EI0vQ0pTvL4jJ!^DS(K-*0vSgSj&>fZ#COVc zGi8&ES+InA3sRunU%eqnJ2m(73yJMKS!5Cjqaoat80g`wHOH&&7_tGg+e3%~ngSDS zS2s0HCW?2AvV9|t(9d#W`gPt!P#3tGN;FSiC?dh3v5a z3JibW@N@q4Y=TxDtV|P1aud5IRQxFUR(KTk3%S5g#(a<1I1s#!${E<%<3z=f7irR&%bd8Cm3EY6`JO=ZFqPM4%LLhzRdXY)3S z_o>lAQxIa}>;7x7vNG|!2us@s8H??{5`TXz@gQ;bnZ~q@AV;8(daYv=XKB6{hONw? zLNeLevmR-)l|+KFHm7zKznLOF%CpS%JV|_VPCnUCryYh|b63|#AD>V~(NHMHeB9$B z7Nebec4S1mS!p5EQ|Nb5Ke)E;cVbh;5Pe5(r#H)tbx#g6@A? z+$DJlq_Bh2$%$j}Wb8PnF+{qy*P5wJCc(2lqPB~7^#_YyG(xOR{Zh{cMw`VJ-%X3C zU4G1)a6}yjsE45`$K^SnOdO_rmPVD^@_n*M_bv(vUhX9|3x8CXx`blTqONP_{K+Id zAoV0qUR*Igz?9c!J+)PzRrR~PahHF)RkYF~gs8Qe8E;B3XoV-(;~Umj-xJ&K)E`4q zKhp0Mqs+#3KUC^Of6S_7KOUpC$3;8pr86?+a2R?nmN28+x^et-X~JY!sKR=V<{|-| z*jKfD_Zk4#$sQjrzPa&%wb&Tkvdqd}3D`e5qf-!5-N3);-BCz>aNP?r-AjL{p*W3e zFje+PtH|694_}9xkTuzCW;r=ME+iMb!GLC4vGkeP6bHEGBfT&aJaY5?~M*a8$8 zg{IiKxgD|x9b2_4ls~Z0nzYU}R%PmT>$f16ucb#!17tu1# zPM{eeGe6*+y5ivj)?qz-Y)36IinwG;v9S3N@~O1(msdoTkwu3#WMg;dackPIMObwd z&S;I7)WQPm05ONvrgo!r22Y(>;_3B@wf3iRpDR^J!>JZSz8HUVCHn)-MVF;SzVuau zO9#~htpF1x-e+$85EE6gvPvHij%_goj;RQirfOa#YuBFm*oN>VKZ=T!G*N^FK{PC% zqH#P+MvtAm%tR?I5P%-9q&bN`Fpmr||1c_@>t*YG+`K~-%6uL6$pq+}{HedKoBp-( zQZvYXpNc|}+S7juUpPj4@_^S`?0jbA+~Mu#R_1DhK=map!}<@@AwPwDLiinU$#IG% z$_1)0pIh0Md7`9SmPMmZDpneO;}hr`w{*W})-*ViHjnNIXSs6m>M{xu6r8*WOPfC7 z-pR0{xQcQkN{JCo#Y89J*0Oa9PS>`!aH6aa8hRPt3I2ah)r!f4o!jLPT>olHjnn6K z>9h)DQHUz@$0Fc*RcqkszMg#a+1gm%xo8u-#$L8>Ro=kQZ>1C7OEI-yn?PhD>0;k$ z<*b#>aZ^&gizjE`H4(OQNxKl^^}4||(VnzNWPkLGa5DFGBrTU5Rr%c_HlV*np?qX^CB4Fus`kj%WL(-9_$VYVGqoJUbF^_dRNE@*} z=GZgTv3O>mvQ2lQx)6fGdOy0a!!yU{@XI}LkLBjW}i&*DG{6H(&l($4Rjl{=TAf`}prd{7(>6wf-C&UY1VDt2t#Uq`u4NZ$Aab^i zx8da$;XVCk1eac;s(yPh7cf?zxSn+?Nk+`^X4zjJ zc0Kh&%APq7tGDzG3fdepSaqxsE6Cxv534?=M)e_x7<0@Y9cvWOU zKcruo82a@yudy5Pq?Y3ed|f1@_T3ia=xKj3!vsJTZ-g(x$FP1(D7Jlee91I!_6VE| zO>+*Cee7sA>uxEejN--gBcY2pNz>qiVnkxZ7QQ&fz4Y)DdN1P)IFNM$lVuuxifDP$bD|IkoF)B_Og6RtQ@ zVMRoV2Osx1Q!rwe(wlU&I?u5~Z*S6f>I=k$=(Wwv2K%U)en)?jYZC3El{U&9!?9=D z?ut+CWh`|-j|mz82QSfBwZzZJ{ak;r?{c@y&8PD={cc8*bp=)COSicWZh9eFxG;CL zeLcONO{)^i zj0)UwsKRr7)^3d+*hSarXcp_vDI_s%Ou|C?E59S@CEbrG+I$U7F_}(MN}zwsp|p*^ zB)1L9>57`vX7U#dlgGbPblsu?(*QHy7Ggw@>22);rX~(V;5bF=SEYmYWNH1kTICxv zlfJv*OV%!NZU$ezs%Y;bYoRPYdj+bvpGZ%KcKeVSvC&IT>#Igd8S{Fs&NKHZq{d3I z8cpj~w<(LUW4x+#H-=}e@Kb+?71mc%S2e~* z9`~c$i-f^giE`1gzmoZ`2XOGnG!C{Y38gNljoPGxQv!jmCcGbu^XFfy+7MmY=oP%# zPvYKO)a9w6SX|-4<&uAL)cmrsC^Rgc3GjB3;?7^pdqizCdp`x^K9SrF5F&Nikacg3 z!usXJuWmZ?Rq45FQxt>7=SDw^UlLt(DP+Kx1Ul0$65p;}0GQK}U&WdZ%FezbCY)LO z5`6@zX7@#6o@h%9GrVUs>&>YLX%N;!Iya2%&H%FRuI-@ROhtbm%lD{iCFOZM7}&ad z)ulm~Ht%3}*=~bU!n))$yZ@q`@jKXgvTQ5&{Ac&aO$=X(D$2cE)E1QF9XjI8YPUfW zgK}o)X{=XY4!`>e3ykv2>P|;rRGVi;B*_)DV?rtExWz2Q9E7S!&ABC|gH0`-*N+y9 z%O9->*?c1PqEde_IBY(LoY$!z4=+VNA;gFiSc^R$YHgkf_<)D^u()hiB=LBKAmfe5 zNbuavk&8s2B)a{tU};*+8w$NwjRN565|N$@8A#U^a((xOJFa(Q%uCy96j7*y!`4ocB(FLShbX!rKL;a-15n%a3zxhUW9Cm-ksmGWZt{%0a&;xNBBg>aw z#$rDBPDr*1xcZe-w=?A|rXBGku*6f*LFd*sO_m}^DJz|-y!9X|gn(_hJ3=j#NAR&; zkX*Un27eW4#P*`lz`j|iR5I^-wP32wd-KgNGeP#02hqcibu~=YC@|=s2_)AYk8!kb zg@o7C?i+uWH90hY&s_*$Cf;6RX?rSm^jLGXnz;b* zniqaad7>Rjnhr5^vBSJ0ZiS<|C0lGy%_dosg%r>=h-A}IM*WH)pC7t8T_HS<7Oh8N zbQV=P6rZ_9HAbwbNyc|K2@U`~OwXkA{dPZMKg)kjN*@0FvsG;pB$tiB80FE(^TemG zy1XEHu-nQ6Cdkra@os_0-WpOj@0IPzB4J%w_63TC^@fx~g=A}RX)n{K-2k~01I@e2 zvhEIjiPAle)%BZONRT*w){->i^@8HXl1xTY`LJ|0K>j2GxeuCZ+dRh`v zWOFnUobHQn^)qqCAY=xA(_pZ0Tn^@VTABQ`p}&Tw;Q0oU3%LK?!_-orYqw%<`{P>! zx@o4JDj@WmxW%N=OlJeJ<$hL1Rw_p`#Q1+ru=pV?vf71@gGoq|Dz$==H|doC+I!`X z7u*%_Q?asfb}g(v(a4>xu2X5w`vOut_tm7oWL{&O-a_e7&bdpP?e0D|FWf8yS4}=^ zzvgC?hVAwhU3;omva4%<_|9auGG=M^)^s=X%HJA%&)ho{zlFu%$45E`|U+*LoZkU65xrZ*v?Y2WN{fPT4@Sx%LJxKd+H%}_AQwKnNzR|DA1uX7x8 z0@phw*)mJ34@M=f6~0f(XH~9Et?oRv%VRBRoD_Y+Z(%RCu#G*`JXkfOi>K`BEMHRU z*8h;4b^S#v+M#1s~{W5CM@{Y{o8i5L`J`8oQjzjur5%b z5ld<+=52i?b695E^BoR{uU!?ok3d|A=+wicPXebypD8@DL{D!~U6WO={f2*~J+Q^t zEb~gI-gGgklu|^qPPXSf6e(m$pzWJ`TM`--Gh%l1W!w2HUxye|e9g(ScHJ`d#_%+YgDwh7+ppI7RJiDyLMffUds_}Oiv!XPQ1qju zmFUJt&~L-Zvt>8VrCjT2Gxgv^r@&7ZSmA>WF+=%;D)E-^$ZwKuEgq3$mrSQ(6#*Di zflTkCQa4p@MkAmHLhV7g9CqZDvG>1m2XQAI7sy`iEk2S+D`m-OArq^byN&!XwO`u% zjl8f1b(3Q1UevKXC3VpdknbLus{4NcsJCP(mw_7s69F-oFgpVk5;rh43NK7$ZfA68 zG9WQ9FgG=q;iUl;1Tir+IhT z4<3?0aCZwD+})kv790Wux#XPly(jPY|5f)ERl~EoSIgSFd(%*;sI!Qh+na)9>>IAljy!nG52?YV2pKX6qK<8(k zqCEs4=VA-s-~w>)zTx0|!_E%iWM>!nAEG_<4L}O$3N{BQvI6AnAs{Cd8cBNx4=C8u z%K5p>|9k@I%@_b20s?%@e}x0Y?Lbhl84v5_GVy^v&Vm>pck@o zc6NBf#^&bc#tO7^Vzq}_iZFjL1KhyQRsc1S6A0=GG6(z?3{V2vf&Ny;ib4a>umU^% zZCAIqaCQSiL4aq2E!YeMae9t$ftZ7!fal@>by)>~vI7Y6H(B9t0yE&BvjK3ha{MRV zKheJvfgyhd1I^6r?Hqs*4=}_MU;(xT0hDDFSe@OSnE^nE`EMf7*2#bVIUeW=1ls~l zp9z0;4g|=Es{(+}0{@ZcWCjI0I6JXAfo*?FWc!`w`IMz0=92byb|8qe6Uy)Yq`**+ z+4He`u>F0rHV}I^h}S>B0t_*?_$|WR#eq!|0(Nu($x8i0c{ZW^YqJD719;fk+4*>R z0U$>J$lc6}?RR<&4+nqHUrvtS=4S;yUJmvS0E=f4ARn*===mRtmlMzx1aOABfPB3E zbo@6$;otz6gUy@)rXWi&1m)lC&t{Ot-}w3Rpc$0s3S?+)-{;Sm6^aPqJNI5@d@0DOPXA3pz`Mg<7|rw#Uh zV`U*0_5gvuyL~>U|LNHEp8=r%XE_)E|D8+8{&{La0Q!H2+<={j-R${?2AKpcN!Y5Si;1Ut!q-9hFmU}rO{zh~udyXNm5vjsyyD)vs`-;WA_g@c{_ zfBBvl%gpBa;c$8$$iG~m=e_ywlF|?}d-LB5#>vAA079Wa50vLCenvb1FOKI;GzYo= zHNpTkR*1dxa|qyBoDaal9*Xk&KKXb6Z1TTNe<6N$0GofxzlamSruHx50oRkJLZ9EOzt-tl_5a|%9!C(!9b|^GFl%on7;Ie~+;USXPVC0AJt{m! zv#p)Rz~Z$4ZFRXrM@(j@_!zhby%tX%=)_#!l%~HDTO@z*I{aFT7}k`i+WgD=-Z(*R zV!Ih-ejKlNEcZ~nriT=nghfMa$NRz2TPwf@?(2Vxb~&0XM;Cr{m28|Fx9+#@H9f^k z!=ba=syh|D@~HR4lPocs(FOqp(==a9Kg|$OA~>^dyvn?ZP=went8kPQeGZz8?EPcXYsxF}9-{q4H}bIrAD+AipG-I15Y^vI&^IZ7 zk*y%{=avcAUk6x+Md3s1&GB zU)+#zW`Ir}G+Ndl)xv08Q?lbhOaf@dzSjmkr&5u(uY)f&PbereeMAR28xwOvE%cpk z#@|0(kBcfMvf_2WgGfSeV z8MO`Ksdw_PWmmMQn?IHkMM|ghNttwRax*+g-z70+s(+B*jtML*gF9czi7{_&ubEAX zP9XW3r(&ANh1I{hI@kw6C$N5K`eA=f|Ly55mJii2o=Xdjj`A+POAW98EJDWvh%*8){76XQ}p@eO3i^O8tv z)KVMyp+9|0{X|*$HumM@u~Ac0HWek~AK7OWS@AoI<<%TQ1bfmuOsrm_mYaY24HAlV zzUS{bs-4qRu0zm+5eA36g#C5@LL;u?Q7zj>s)FzY8*vz)(S)9xDnI?j#EnngLvgy2k7p)7cUe5t@&-bL)o_f0gvOtacWX zprzpdxIQ~9>K4t17);>iFv8n-8wBqT&wJ$gj|MiB&4p?81n1e}7of@LWD zx6=yw8w_V3RW7SyLxU9C_xR$4m*{%!rezmaB8W&)s3-BW3uashIoW3170KFG8!9tb zaEilTo2B;>`#hBaU+xbYLd7?kS*phm>I#>Et^v3u)1gSOnqT$|v!ck^6G~Ig_{Yn$ z&)=X0W51q@i5QR0%wT^jBI@WSTz#+S%I{eH?rE9yEQo*-X^RlVRp4~SU9+u~LZ2}~ zV<>%iTXdf?hz?S4thyl!fBTA%mK+tP0y)bnE1ik452zcivP0uDJ#Y{SZ=^H&y_2e= zOVU^9=g*aZ7ecZ7lw|?&-L~7`ub|FBA$0cR;u=BHCux_Q!3ckZ(^)7~uJ?48kd39j z%TT=Yktk7zbxeE%XRr4@vL8Q&pshLDUo{c$Z?^Q$@3y_JsyJhyB5eU>M4b@r%j=8? zutO&ZfPyC8P#cCDl^xE59`O5vg9WHY7Cy2tq8%`cfUjoJ$wUg(~%M`nfIbuc7-9#`|XMMKat#T-`9?ltu z-Zd;ON{)}^Q}Z|+dn+Ob9ab6kASbo!5bA{q6J#1>ico(lqbS#zJ-P|U5ci`>U=PQ# z=$54_i<{%k5OSfp6I9%E=zSL%6_*U~oQRalU3fLRV4ImlhWh?xW$b3$!QAHHEss%; z;vA@MF(=VtL;{1Wp%+KA(8$GHC_me-=e;&KBXhDrAnk+HK1}Jvy5DdtSicSadw1mi zVdj>G?0$cMAuxc39Yb341QZ3=!~4Togf_aSoWc1~I}JDd9exisy&)>tm!MtGvwU`nnj9^))#bG|wjEW)!_W-c>UYuU&1}!wb|ZR=VS-Vzy(?w$+1p8p_IdGaviM z&$EBNC0x%+%^B4MCL7CxX;)$z0B~I$f|@THQhx6q7!ac!{RnpT0CJ*l~7?u!H#G>(930# z9P($WFDi$A4q7H(MU!C!RNe^sprk&jozZ{!4M%vci!0g!Ge&QVl^|GL{L)XcD$x;D zAI*tgMw;`h(Y)kg40juqOEeP_{;aC#Z>U>X&|Y1!o^Wy$22CH5f23Rp zI>txw*7+82_Tg(Zf5A2J(ktuO5uDv*;h0(2_{)tMj(KgS&1~}F_yhPbeLeHl%)x(a z?$i;&W1{|&<%Q#E1$w(cRWYh7rzC$wH;o8XnC|jq-Ze~u6&4_y`>K$1!oEh`_b!-Z z?U!9tzO()IQendz8(()*+)ysa8gW-`lRCw%*0^^<5eBm69r(!)P2Iq^1_J^%8ow@> z^Lty5u=+klcyn)zqoAVwl4JUumUMqF6Wb9UKhhW@9U7eem3S&%0o{}+hM@%0Uq)@r zin^7;J?4JpyV~)?Ie)OlA~U&`?OR&nePh;>va(dfaqk=o+V>SJ2uD9MSAitAl+~{Y z9+X_<3p@BPDSj#C3LQ?BL#abU%vf+(bulH$W1;q*e5gbf=OKPh8>xb(?sR`=hx=I7 zG3_btR2pgD0MoT>;o=4}S|w+k_|jVdp-A`Cs07wRasMQdS&NC}Yp7BVgL3914hsIe z8IO7{YY)Pgdkg2deBL=ex#eXL@A}0f5=w_9pBcUTma?E5X^%9s)@4<>^*onX(e1U3 zF$4>4Q}q^ty(1PsQs~!PX_D7{LL88dDIhRbDaf5 zNprP-41UsRjoUHPH8 zepqUaPkxFt|8W7^6!Xnuz#(TO#q18rj?1@rqPaWaO^9~1LHh|w9p8Vof_in-Qf#gc z?eKCl6#G-w-SUk#XAz$vQ*SLN0Z;nHy^#Qs%;NZJ$^5j6nip>uw3ySS6sJw2u3qGc zScr#x8KfhGikdyzvT_^5xmuY!BxvmqutWBo^YZ&PSi*Qtby)^nBAN1LOCEg-J4`gG zBSU{OPX5+j|JqEgfU!sDNHMNC|J>GRUuV%T~+WD zM|Zn-Gija=f#>>1i#S=Hp1~I_^7C4yWkST33MWb@R6Sm2b|<`$XQ;5&oh zfn=rJwSftoGH;MFo#^XL;sdzjx(FcHMlwMgiuaG#m#fyk7hphn%Go?sOz$^N#i5)G z-NXx^nh>M%M6`cr1YN&=hZ|Z8E}Cs6ZZjUCpVtRohCb^aG!qp%T>>ClRG98ab^?b* zfOOx@hfi5YhpO^1JjMNRGHp5=;FQZa2WU3V-Bap$aB0{2*Dy-!5XTpHaBH*4t!;VA zkys_>!p%wbF_ViRfm{+*KP~-w6uHbyvxu#kbUwrQCUk!m4LrNRFMG`tOy4YT_1?t6 zdc5N$82yoG9hs28E~mG>+1GO$=ek@b0KnGyI2k5BaOL2FnrHh+bKJe68wMXsM3G0h zk9Z&;DH%rVvKm|c!)(DpiGO!?))B`%x@n0Ak=mCw4FISm4=}bITFY*xbTYE!e}@~ zg7ANXkT{aqAWVa#b(2-#C(>S6`q^-Y+&AGp873HWLa845PSiNydJ;6p5c`1@M(+9G zD#K*It(>lA8%@l{MaN!`_ipwdbWdP|{cYXXc5G9`&J-#o(Q8GETDF`_=oE{+U%Y?M4DjH2@3K@y6%2(UeGt?8XLUcBG#bXP z5UlzmAjWXIte2D*RptD#?* zOY(Dow7T!a;VO~;${UU9ejpW{E1W%;gR4T)vaP1I1za3xy7($@gl&Api?2)7^v-`3 zV@1@F5X~+AzBXan4A*jW$Se37lP6YWXq#jZp`ij1G29b=bYLJlH$`o2tHy>auvn{G zt3&tBNs^PYp39C_3bi{3KaMn<1sb2Hn1wr!%nRq;*@zytJiVfslEQv>7$OB#HJE3q zP)V<3VuI=EP{OB4O(8mP&oaKiup@s7_Qn>od_Mpw45~s~UQtd>5Y(?h`+WYRXnN#0 zJ>T0MJgPbOQ&wqGX3Y%Oyvrm-xp;OxsaH<}?sB>lB??17NO@+#sOI&G8 zgRX_ejhvfq(8cadR-PV+1qD?Qwt9=T9NMvAG*3LJiL9C9GX%eUPM6dg&v?uuPOE?U#QENliS4?fzn+(e#ryKlZ5xfd_d#CmR-d@g(QbP{B3h zdP#Yfp{p}A3XXTSc>n!dBAeV{RQk2myNeJU z>B(t&$pc&~q`K~u^Rr;v3|3626(8G7(j2|E@uFyyQ7vf%rQz@mp{##JiyG)7+O9gE zH55EknJz8%a`@^em;kY|)+}@5`*TZ`bOiaF*b2_4NFa@XtdQ;3JZ?S6E z1M=nb89rWTd8Bg6j}(9RVF6$YI+)_TE7G~zpo1&$T;N!)nFya?lWtj|7d?%_rH&0T zb$-|OS6kB*B1B3h`xjUd`i!55Mfo3#>6idi=YKhOq3llNX+ug8LuZN1&E+I=TH>P1iEu!{@TKBXA*9U`A*J+enLutH~I0zuvlZJph7I5 z(5MBwS$NQG0)_%?BOf3=l*G~s^DB^HV-x>%N9blJ2A;(VGJKryTGjq1<#2SCl_tSp zpcu-#JW^L4_o9Ee*`~Ibm=Xi`N5LV8G+6>-7&rwB$vR{k}!>=D6*8tR@{vj}|llgNaU$j<1iF??k-#&c?7PG7>*1y&Z}DWrBE4 z_IO!yrCNViO5WxFSTrQZ58oQRRO$dMD9>?$h4G_eb zHusggRl#u9VO#KH!2PNj;bX)>f~u}Y{up7N*UxlT*FhoKw~n+jvf^#LTAOyh`(9M@ zwvm6)M@g)hk*6%=ZxJO;6aZ*c<{UCkM@-hHh;d;8jUdl<`zBWjVv7-aH5geAS-pZU zp4GZp;|2T6p?ZzV2{?BvxB;bdmDS@q!F>n(e05nhDon&247wWnA6dpu&YH5CS{Y#4 zgte(0B|Tc??n`DHehuFd<{R=l$bZ2n90-3xn`S!LDsG7*Mz+bZ{MrT+dM_^-CpFDY zaiXOcNY5XW*czTS%by;^>(s^z<1)7Cf9y>liG;WE zt5B=Zf#oMO==(V4#^^MK1W4>odX6sAli&_)8j_`Q;r+vk+K7u-)m>0Mf(sU-)3dpb z>SO!Ne#|*UN}|NL@Mnmk(S#AJqKtnZPk_mR?zy(nisCMpz(6Of!RV?2IaQT)l2};? zJSk?A388Qgu^F}t`&rDH^ZDh649MVFPq}3y=5Mug5fuC>5wZ%{qh0n6sp=DqhCMJ`Jc!I?HF*s+h~6!N|`Ix zkJn-k+_{O()eEz_8nd@2=$ZWdM%SSZgPv;Sf-{b5AKwXJdJ1M`M2xGfnGkwU1V1sJ--_5ZK5qnX&7WLD1aoVM$2_%4X&& z7nEMt1_`bAU3xtHIGq)2WT3W^%=WZGZpSTF9;TV!o}h(onDY!h z>rp2pe&s`Wu&rNMC7^%pSVfs?#a_=E9{RQNVr*8Sq9;3E3_e9@gjMblG3*XTGx?qJCcI981B;YURcCY6)VpyJ!AC^ zjyz>oN+um`<8puPEq_6S4c!e_ZeMMLt2ZT`^KxB-A$+VIYwjBg9^+tNi8TVsX1Yl$ zwvOzEN+8S15c@=B(Ze(xvX``!iuo(BQSHQM)^ zN2FK^(XM~GCv4~_sm*sbT_-kc2Op{S+HOC}PTY8xYFzyK>UM!=Pe|NhrJOvPQaPG) z-NCPS%DyO>L|=}iej4W-UmoD6=d(mSU&o?RRuq2oXz1&oRPmr96DjvrAMu8RP1_qs zy@#4OBLBF8@x{IiEls*&(Pn(raSb}HqlsP`wil-SYlKwhm|Y7Yv^Uy(ji{tK|iyXjqu7TuGt@c1R zc$(acOckZZJrA$@9j%fX=w&|GqX!=2jnhK^F0<-3^|}^ZB&~G89=k!`=Bb+I&#CfC zsIxn!mBho^>D|f1{Rh)CIs%kN)}@%o;0dk3Jn_b#5|?>ev~ow}t%gWqGxJ2zZ6<#d zEK7S`%kwcKvBvFl^DcH4jov{a@9$Hy(s_%Zo*N*N7cJ!H72?FS{6K_P)0X=RIAlnu zaE&q}CDOc^9ur^J}){8O@+<$>Nl zE7M=Zerw9zObtdv9lM*H!Cr^`Rp>7-8Q^kA1XB!G9eNKlSbO~&CvoL8FFk*kZB#{D za)ZdY9pU$9$b;xFBaU*kNY}segAzKX!+&D(DeqUp+ZuWD3?sFXb2GR12Us78eMNj~ zf0QGcJsPkfO?JE zzJKnN3Fe|?y=#Ov_;?}=vmt*AZxA%$>BT!$pPJ@&JyhM2!ZidyX%r@P{f?_z%6~&G z(-|;hsXUHWbK^snOP(;2{JDLLS(;@|l4}k9ZDGogUQVlf&`E0s zee$8%kuP;vg}=<4a%i@=6BEB?jc#~vo}8e!#^a3%TodMqo3hPv2djUf<;=)IBig&X zA&|{FU!8}d;o|Z&E(b|zF4SP$5Az3VZb}dm@s9SBnyK6z+3j{tp-cf4{XILdP)(OU z2}fO-%=-D8SWEb+?0&Ny*4F>^r-cokWnC*8r>6*^k6KTed?bN7fwMnh)xW_98}BOp z`hd%X9~uxi`hvm7qojWXUA}yEvlizC>uN~nLQkjiCAs&pJSt4_5Prq?jZsT;v9k&vOBQPm-9pT(DSt-escRT#?^cuNy<2QFR_2niX@pi zIkcdAJZfMeQ9BU5AxRZAvw5JVk7fj+I{0PPA@eAULm{JlFF>0WX}*4`5s7-&ax>hV z+W9KODTk8v#dtck=v?@8X}kNrX!MPWgkImgUzxs0f16 zQ%+xe?^ifirXT{;ep3HRq@#fk5g>5=0yKMhSpKo_aZJ|@$*_bscNYyaC%hthFYL&t*5fWI zaxeQr03Hoap;1VCvzbUX1R3|Wdx80Bz?FKQO8N!#0rT1}t&^Z--FMDhug$1Fu${Q2 zIeZQb!yEw?s%ybRM387=<%`h8Pto{9DRq|KE<8eXvkzxo0M5&F@3N4B2|yCpO^${D zmS$#OLDPSZYa)U#Cl#7Tg>LikA-(jTmR~4D8fA~^wz)Eg7?3pj@eP`^-eMdc>SbzeY13a6=^33p5A}u$pXSoW;QWd(MzAqX_1dj4?gtc zT~Y}K@l;i@R)%`B32w#}){))3)#6{`78F{owDUdq26%X7iN~Z*@(PPTUZlUMULsT) z@s~JeoLGADTlp!n`C3>8wl%4Jex$1WMXVqEq67GT@^BR{AOeeuSIlmZv4F0^<3&qW zafN^H7fKH`BozndQDi(Sk6IY#=7%h0YO4-n^1cw5Zv!W^;AJAT01T^z7x)fzzE0Kw z+1A$|m~c}(rR$tM(4dvxY{OKqMqokT^%kgy(lT-3?9g1mTg*Q=_VVW#xzG}XIYTQc zR713WTEwp~#=MKO@ZSj~K2A($>9kZWertbsdGa>)A*SmWEwL`$uj2zW8Ka9>l0^Sn zmG?PCPXc(hXFx0Ap}eL%vIT+C+ME$(@%zu#pMFe|F-9!umx+Jod?;oZP-cDKuXH{! z?^U`8OPw8OghJO%CVa)dyYy=`Tuo`Bff0AQ_=Ss>ro{CJQM;kc1bO#yliV$5WS)O9 zZwW@Y!Y$7#1xIJgz}bwsZmb#F`5nb(zD@>hfH#e%&%ff=8~B%jlox=9cmDXnPkD ziZ83YM80ABnG4%J{H?|&&wz>nrHl@IjhMLok7V!t^N4QJUpoSMraz1fl}LZlS+s%D zdq|!`(MwSy4eD^nI;dU06ef1a@v@cn+u+RuH*pZP2QuV1qKuC4QE)?d4;`5dP-h+A z2AWAgR{1l9&Y?$pj%`e~zS}}^3sHPR!a7=F!5{`K$;47){6x1;x|A<<^;Ct+jT3<5 zcuAg(RDozRyvNWvrHh4@3)O!ceAu)xL@X7#`a=JBnW{#GP6-HJVV?jOe1mSvIBVb0G7?$LyRE43#lrNYAqpi=F((XDo(>_Y9Pv=% zdhI2TJg2P!Rm1Zi7ZM zq&~Klo-FP;XaOqn+(*}OHM7l8A(TCosvlk?yLNr9v`(Lq_x;X*Cy}v*hSAa%g%Fyz zqVf8!v6Gx)B(TxAwS<3VashX`Kt-Ok}T?cNNI0G(me$&cF0u>_xWk~tH**^I2J-ktx*H-%4V zltnh`#ZwYRzlifHLBVa8NQ*TcmxRErmV^pR8Pm=nmN%%MQ_Fu#_(NA4MmUV##fB3o zITLbV^O3xMD9>wATR4Lclfw{8ZHPvA(X=e6ILtx3;fwi+MaHvbsr*26+3c|i(UA5& zp~&5KB>_zD%hsh&l{b|a51~L>`>tlyf6^J{d{ihSI1_MEHmcfeIyzkpXYSM6JR#|m zKb2zHzT}2#c7}hI7w>80kCv03g^dNjB4wpR5TAeYeF)h$bS!PmMmD#@cAW|Sfr7{G z;k7g{W*4E!Ki#+>J>=ny9z>jDl(TUR&vmJVB$zKkw^Wd+uUtO@TbFI(UQ~{`F`TIH zNo@vx!2UfKMs|Pj4IG*KU7%$VpyzH2ja-$-TvL05oST1h1Moe^9F7TASwVlwP_U=y z)u@Ly%MbD~hj3@^sd``gKqQ=t$6nKq1TYb$UH!t$vUG2zv|xtrQ||bU0*jkP(hsft zNX&;kY2Uo$+{l*hDq7>SOwDwQ##r)3zN6>%=FC+l>o&9PDJWcFJYo@>*z=E8oF>6I z5J-nTS2lmqKz0`rAS9AiSHs0R+J_)dXfrdwd`f==Ic-cgd>Mhv(;X!7WUJ8jlIg

wcBN1NwLIOZ(fQp`)r6d3d6cGRdg$X%0OkrMd=-)6QhdI;}1w$gF|1ePT ze}sa(ZZK7l*NvSX5&_Ug!vR7f03mT{Aqi<95FiW$O8v(W=_w6R1$o0D06hVKHWC3v z5pt*?-Tgda&MsazY5wyF;0E&mgruY-_Xz2nB+@XlSjCKDq-~;?U z8-S32(0{}I?fokd4Ds6;1O_AB+(8IG7{VFg1cO5X2I{&3UcO#@01yK5%Mb)de<5%D zLEa!39OQUo@VjylKwZfQ0J>@L@Agn&Pnf$GN&p3e|7ub2SD2eAt05pNNH;eq!V5+C zt3FkjClq`$c0a+tPWAx;>4OOP`^5={fH?hX0)loIG(*5V&`>SazfEo+!hbMls24yC zC?zZ*E((Bp0HD5L7r|fQP5s=Vf4@ngU+_%_K>_YacYxDP6VM=-6ZGbXFaQPeh621i z(a@lPKZ$?85ef+bATY2Oz!B;ULlFKG{RW0Q{q=rx_yCbWZoi%|Uw}36Mted4;IGer zpKNdB1wkUqcbWbeNf!2S1j@BscDOCNb7TPT40AC=nx#em?O zFQNZut^aoU|C9KyDE~K=|8GI+XgK^g&HbDI|Ii>e7~Jn~gB#VNy>2!@4|%f(i2pUU zfc~|$dQb=q?e@Q{mKW$|6O<6n@PGe~5r$HS`9dLvFfXvnUvl{iH~Y0_a2Nt=h(y7D z-75foAt3O7xSQPqKe)L&P&b_UjMgNTC<^E3wiNEpRO8m1Xp+AX#6(#jQ%pX;W{fqjetbe8Xv#x&y z`?D~in<;vNAiq@qXLiY(S%0C>Zf?K-ZT>smf1NrQ?RgW>>-S#XNa8>5zpq&+)E5dS z{PY0{mWgn!jcET~t;FcVzd9-`O7iwF_88w{MUCEj-6&i|_WVfXMchZFuIaV7^F@j+ z;gaj72bMIz2Xtad>#j@@3X&Y$Z|GUomIN*;c+!?3lL+DCdA>Z^| zEeE9Lf-G6RHlu2O)PIlc<=(3k>iEF+O!DPTHj(G~{>F^sT`)gFT~<+HXSG**?x8)| zpXFNU1Ng_C zd+QsfpDQcgQGdx@%gV5qZKkX7i6~W1v-anG+SH?@yE?U#a--ihydrr|dz-nqICJ*u z=xXM5s-_Gfd4TSZaBL}HUfiph*lGF4wvCfoM2F)3dsl-OmBi>pD$Rga5qeQ09WkoF zbmYCr21cShixPfrKAx=3qXR1h+U6J|qd)oasd%A2bAK}2qbitNxZz~?shf|LQ`Hz7 zF`pBI+{P2%#Nd-xf|^BHA#VfxTT!ej1d)`qMx*uBNI;!O$?mAo0$tE;5&OOHd(ADc zKe?C?v{BF-me_#G?RS*uK@1(dV{sZ~MNNUqx62bSYUXgYeCM%BmH!&$a(n{Fa^&?v1fBdMK1~|8#TR zmw%o=^IYkXB-e10)PpO_O_Havx+2m|vP#o<(|-+NyTtw&l1&qA24ZP}+071=HLK!j zk!I21_-BEkxwI8;{AV6vr;ZK_86uh>9VO34fmzPX<}mu;R1Umo{~@fOWTB2^%J!Lpo4r(l6%~ z8Gp$wS{r0iQ|Hs`UxADJ0SFj9DgzH5);P-ffK zY>EC%_t=joq$js?+)qC@8?CTx)f4T*D~RI7e4~Me>kVE?6^oIB*9L>FNsArzIkCM) z#2*~r>Tyifq@1HfXY)Y#AK7T49OAl}?tew#v#@p`=5}T#uxYUqj=Gyvu^qBJInP(T z@(C|qi8z_pzAIh5Pkp-k)8u2DY&wn{a*x|-))D;^JBjiLgN{e}Tzc%QIMVf;anHj9 zR$A3Sc_1zNki*NyWN%FDB-BWdE-W#(X5Mr5Fn4Ex#5Cf=r#G>LFnndQ%L8u7@_&JT zlhpk)--wpbq4M<3WI95}L(^v^<|KMOB~2UK(Eht~$EjFCrI)PjIOR6ohWOHNX`h(m z8Fb@D0sYOtXcYFYL|(`e609rO_TI0&;{S-thxI_cW{$mbGNI=YBk4;%$5yj)VaDj4 zC^EBoQKi92huYfH#x_xp9yezAt$#|H{BpEZgA}Pr2y>Qw8}3yAgIJ&;W#UYNKmsRZ zXwxF!X?xibhZis4UWx!xg)39$Qb?7Y53~+ z3H@_L`est|;()z~u&@j4kEBCyUqqS%70q41OUkx@Qkb3Pd;Ae?69WR2vfa$D1h;BXf2CqA`pA3P&xq7GUm=6V9uuLIrLobREaJt&H*_z&MYkt!bZiHiVrj=JDcOHB{ujqn#lDUwH^vv!npZPe( zK!TxgfgT>03Kh0tk&OYKP_D#%MVB=Yd1b!_-v`$A1E$HyfkWeqJ%5z^rSGW^jQ~RQ zeseJcs-FV3H`j~BvX$!siW=e``lRj}?l=*!ml~b%j@X1cvXY~X;{IZ#HrB~ugD01s zad;)VBR*czZUp>2CWv+^W_{uGLAyEE-HRXKDqvP#6L7h)rY(KPS+!KIi@{Y-ZQBvw zzz&lxPV!C&7Rg5Zr+TzR>)Tk%YCC;T zHA@v~Z{!%IW=eaHA$C!?F}>(i$O$-ks0?TIL)xa%hGwGel@wErhAITfWoGSAUW)Adfi4}=7IdAm*Y^U+$a(~xbp>k1GVg--dEwi8W zdlgN-2_cN!KQ6|{cpsNACS_a3)jHdqSbQ#StC?`Jy?woZz?Q9}m)(>|Cr6O_EHwQw zT6|er&ZIOi`G-7@aIA*R9v*@N7w29$h>p2yaBlD1lXd2V7}?{HV{$Lo;I4#iHbGdr zzZ_W|-g{d}-G8achzZt%JNn$+(Q(JA2>Yj;K4k0e3*@p6(T9DFftt}qk6BcfgFmI5 z?^CpJl@?V;Q&}yoJFz4tu1ESx7ht&9cWaENV6u3Jk*~Zw&Zxz0zRyv@s*J47)sKl{ z%5F6B$H@h4?8#OHSG~Z!L;nEKdvj^CFPWZ-?)31|KgC2ZO&#)@HTl~FaOsAHnSLDa2RsQ=C zgHGSnkh9*{t9vXlVVR7JT4=diqi>;notdUo7J;vEL&(KTAJ&(~^d0nkn{S$YF|NAN z(pqf{^iH$Ebwn^&sXi$^O`v|1PgSZ7Wxiu&Eq{R*2Nv&kORdt{ zfE?y|Px}*Bg9|H@{JCNSQpK0E(hA&JWp?O4k|pdiBzj{my=VN4{j9`IuFL;uqXans zrhl>Q(s>DE%fA{N!qvPS=@xj)ZV$0wxh}Dg!&oMIA!krfZ+_;n`jad@Xwu%VoM5pwN#wPSfp^}C6}W3PKzYnnBZ48ZQGYUT&>9$fnj4v=cV((!|2{Ip#=s_>b^4P- zAU>69!jD3les(VLM@x4(`!dLA#O^+M)YBU*(a8P@SSZhRv>Roh)l0tPkt~=q#Ykdd zT>zXIYTzJF85Dc{93ScG{nAlv!R_c2N?wudSerYxMjlZ9asHzlvQm((=Tg5!tAAQt zcBz51Sl|`(M?IN}9Kv@f^p0bzv6WjFItpG8BqV=oxtv-BFH$>u>=~O8!Pw7gWG-I) zwao;qZ(ImSBw%J@Rp5LP95?o~{kT$>c&%SB2Pcco;x=K*oy^R=MGCf%R9ndW*;>_C zlS$05y8BZO-|i1+)?5(!#U^&_Vt?Vt`kEy=c$#-nWn2tHNqCI8!mVH9(#ut@<0VF9 zE)mGp=u)~1&hjtt1*v~3tG0^S9LkV3rb4=H-O@|}~YY7IWK8+^-cT00n&-hUsrCT0}K zyQ8Dyu#m0}v|(~*vjXFj=4l+oi519ylBoUX2kjDw=9v3??ZzC`~ zm1W4M17QL2_vtCq#1c_xf`6wGysdBEJzEXEb;&Kv@|dISCs;+Zj*)@V5|mC8P*4=) zJ^Zaxs`$W!e$lLGyFE(gHeu-eHyex19Jc}&8NSaX4|5lU$G8=9tv+}8i5#e_s&2RF zegCEy$whMZ+JCd)iza0wwAUGkm+U#;{gCvY$ru+U^h(D~*K9TQr+>7l?85tDKi+Td z*Jov?bA#59-CiFo!TgX%*Yq8;Y#;0ITd4Cs5IbuR?WNlyh=nh#)!yO@`u}A$}5T8vvyW;QeS5O zQWkctSx>*X1RUfNV}IkqIS}1=ao}%MwzPX|Ys<6u(lG8ZncM6w>RltuF94E&_rACz z__s5qd>|447fkl6F^btBqJ>r*jMTZPjwXm+&%_tq3;)mn%9+Bid^l2fsz3V=jChuS zrl0X{M`_m`OO~2;d|q8L@|wjl=7&v8$$;VWkf0QjutS3?{(onK0AXW54_13mYhuW= zP$wN8Wx}M$^LQ*^-q-wMET|5pjbEwn}_0vL@xRVa*O3v z!sU+smpH!oad(F^%%Ec5HN(n-t!<6=F|OA#bzjHA6@N$=^~B85=uI|w{2nh#Ep9$+ zrYzt2^0|;bN$tBS+(R-;LJj~tC2ff?-x}btNHin)#3#<@kzQH&xvAK51C6gJOk6pc zVdc^|YRVu@tE)NAw0n>j{tO|KmCh>VLUN!fGx{I!#x-`%)(8-4>=ql)v1!G1QR>Xkdhhe=Cxk=uba@ye!5n&3p&+ zR>QZyTXL`~dT<3CdOpL~%Xmruk*nwBMb`C1&}3CFLq7dXO=OoVebilNt!MOnPZcZ) z`uB8M?Uh2$x=YGe3ZLcR{&3v}l65>yJ(;pU?0-=P)ZUg^8y^iT5C@cD%ce59a~lL8 z#A5T1TAI&$Wra@SvpR*`?(u)0FJvocYgTmf-B>~fuv{UNC2E>usRVW=)4 zz>(y8FAq1E(&gBLtz9U{?!7G*9S53Q2TV98?;)Ub_nlv?!lUMq&CBT1Dn+TPD3kHq ztACk}rd*9NS_3)W1SzP^&xdu_18Kq*%=WbV689LSr*r7QBuYW9c zn8Yp5B#kpTw|F<=9P$om`GIQ$BV~43q<=1ULAt>eb$Kt?xV~8wV9>5q?)xh0F;4#T zS^*_xGEIlYJCZ8f-h6eFV8)CUOr^kcTKDB*$Dmx7XDSQZnv>B_$V#php8rricc8K_ zL$7aOSonzjATtVA>44DKUYMvM+~|!C{6)$IlOKhX`@;$yo;4d{NNJdghG&9)%zqa> zhPs0KtKv@?xkMQT&rV4EwTkL*ebnda8drU^pK9k5#?gDx`pGI2H%iy~Y>#~+(?-|D zaXx4dCt;A=RSkVEI)A`%ui+#LV&LpI9!{Guv@a>5B-T!z2Ef=sXyG-Z1>)HK?33)M zyVuiowf6M~?|+=&=P4Z2;(qpVxw+#*R>^01p#8uq%uCy%*PPS>BW8j) zn4FE@hNE%o1770#orJxlO1rY>v)6J7SVeX59g01KIn}wCOj(Hll8(TtJzah0>?E;R z>@bbxxOfJlVx*B6!~*A_gkxJ>ZBAwG1^i75cTv|l(Y>?7CXI@26Mq{1PjMc0M@F}H zjD^1v#f6RQ?RCQ+@4vB0FP~W-mUxQxyM6)mS!#)Rwc62$_05#{*?p1`A`Yp6`t${^WJ#1F`{d?UZ+zlq(+hG zl0xXX$sn7Q4vRw9i3+(CegJv}KG8V6$Y~Jr`d$xqW-f~)zkj$B{pO9uKvDytB4_u` zbwGYUTjSO#*zBhZ{j+n^y1BZqwP@w3q@GVdf**vrPtfZzLN+CfoL3+7H!%ci>~_;R zrSESjxI35iWxDz^_C60-7-3$HUe;iFLg$?SgCVlzS-8%r5i>*8;>V5`mheJcDv85F z;pr;i1zi_efqzJm1#)WmQ&lt+adze(fs-_eJ$9i<(^ajVhTE1zvHMN9}HD zgH)Kf4`B~NSQXwQ8vS(Il7AeH8gjneiV)PkMhZN}41YhsTtjMqyUGVI!?_bA)+!=T zZpjoGkQAqsQuK9wgnSegqo^!sO7w`G+m!LvI!r8fyUhe^=W@o~4)lsuREqy-KgBi; z5^CYri^h`ox3)f8knE|7mH-mlK*5Nl79)z196dH(Zga@jU~IYrt^ z(N)bxdw;P#JZQ67(MaP-*urTyZP%r|AjlVQiD&b?hW0ka`xVY+IJ#69O*8bmMe^LB z;e9ft6gH6(zrTp(nbk#{DS@96pYs!sbH8Q0;uYZtjPem!_1MQw%I874@F4{h4UqYT3 z6$gKwO^!wmX+tC|n`+71^^@HS5vaT-+)$b6IvkVrSt3Ht2_^a93&23RsrmCA!-yud zdK8%G_~}eFa{t_A2Pl=b_F03l?u&@!a2u<%!zm}+^w26jqkQ?Iw(d1_V06cbc$eNp z?SGLNY;eDBx$~>!Y5bBud9xIK-%6mFcYMV4!yJaFQ`~fctpT5_*_yNm1lAO?+WAa8 zc%Idk`B-;v>CBF7rEnZ0UG_(FZ{c^V29G%#6*Rg#O z6qdnwex&lwdn_xUU+-hgR0+G zT!pX4aS9&*&_tUjh?k8_FJgFx@j4*M!>;bvEgDJn3980Bm%(J)ITUt=VpSNXVnkZ^ z%=}vw9>TqJv<(d{45fI&%WQU@J~cS`RESkckb^7GY|o3^RI4bHS8}SOcsSbYWq;;@ zYmIWKN5*NK5L}wn3~!g1E}ss!eCQt0Z6&FuM`b-Be)HLvyqy*=TUq&Aq&^)FG^N~yvfTKoyC1!Rh)k%_ zq$`cfHg10BGVh$ROvA<#C*@2Ed4J7_vI7h<5>|Lt1!`G_M(GA=qJL8brOJ|^ zk7qT=rWGdaQQ(LW{IPX^L71B>*5|gKQ@y*KFA~Ur{*ToQz5JxL1I40sfthq%%Oo}w zBEF^C3kFnl!h}-5>dYSCrDc?~dI$9}b1j3&;K{{{AZSuWxcwMelDaLTq}cReg@~)IWAaQ+eGTS1*&`OYHjI- ztpVuaS*l~E&8X;5Fn;4o_gVr?s47QeT*^mPXmmegIBpwufhCKz_kY^HYz#|%C?|{u zg}#(#OuKYkx5KkysD6?=e z0yC!R=jJTsAu;)nZkfUv^n_n(Ybj-IKc}qet(j&zOY3ByEi_kyP7N` zHd84l8g*Uxprq$aWh$DvWIBcc-t%&{^h$x3E?Hf3z1N0#CMUf8s_pXnur_{~4~2FH zY^La;*bUUBeV$Hy^YCs9EyFVo;eQCrPRedg80jRaUlE72vPBgZ*1eV`6FPAwsZox` zk*C@F84FVD?tl6ml>d_<2}%30o={l~V>&d=cD=$E@4X85@dPyW<4Mhz`C1QQ5#P79 z^_{(`I1n8#WHUv|a&L9;j>BbHO|TlBi~7)dizowJ65!t@Izaf8rpwSu<8qi*u(Ihe zYUOA}MEJ>(GgkT{XrUmU%)r0)KGCF&wsHQfG-;Gj1b@p|LFICWiF;Ucq&xssxZlpP z4RlX+$w=~hfl=bA@mguTs7+LVV@tj*g05sFLZe>>ySanDdZyqD`_k%p!b`t)1DgCa z%bGTJK`FTxDo^M1VLSIEj*QwB*8B60WQnUh#JQ;^WA0nQBnLwKSYGdIF5kxWc%9efFKaMhS+AUmFx3s3WWN#;dUMQqTWexEnHHI=+=?W!I@7VIwMGBKB4QgWqOF@Yw&Bb1 zAVb{2a%^^9u-PHi3&kf47{H4k)q9hwv99k6T_x_#y2~VvuIJ4*`iiD91WjYTk?Dp$ z&^h;IIw~FoKAI~O;~;^MR4ALC^Hk|8!`6~j&}`gCUlp^=J$yyBr||Qp?|*ubc$Gg| zYNA-O&bB3nFQ05{OYKEW(d&Jm@ML^uIWJ*_h3YP?TQmHmLc$S-$!aC>g)~4J;m|mF z%5h(*quei?sgPvyz+qtca-<=lEWQjqxZm`$b>%aSKBUZ}LduC~^ansW(M{xMFZcaK zkzk6moza24%@D|TOzzHX9Di;aSdfWjKCy-NO`^8;pnt`oGeCi9mBF&R64M44e@PC*MrU<=WA{c*I%I7e=radwY3hU^maw;BK{n zX=Rea-Sg_#o$CiIv*mO97Xv=ceDCIq^A;h&nwF(@OEJ-Xww8xEt~J#W%Uyho)T1nU zb@%IYxV8tUEpx|ib@AdyjCN6DcK_r8@;C8?CpW!|%Vxn_&-*{5dwDCDfg1u70x~m~ zF*^ek5jHh83NK7$ZfA68G9WoQF*ujur2!QJFgceYqXH>^jkX0)8`>5wjC*k_nnKay zZpGc*DFg@*Bv^1Q?(R@rN})i3;?Uv_#ogVd#qH5^&b_zy{{PH-lbK|H%hz7t+7p^r zsv68<=Juu_X?qBinVp4A03e~HB*zV4W8-9DW8*-hq0t0GZ9)Ht(P*?mPR?L^h`=8P z5>6l>^jRi<34}h|DcM5+@-DUjc1{30j{rNb02>>CgN=>_ARnGav+@1cX|F?4C240c`;q z_GVxZ)Z@QG&PF7JDa4VFo6DfEyTU1yBb$gPdGJ=78S~1C)Vw zpuam~L8Ad^T7jMamTTBsK;3{&Ai%T07HkHBI6r&1K+Hi-fal}@4LL=CiUSDpx3S{i z226l|?gqfl!v61Y|9Jln1cv)k2(|^9J{$a1IS?Q%rUn2$H~3F`&Sp+v2dFcPGuZZbi>$xHJm0bu#9YGO z&JF~DI-~urPZI0|GJC#u57xgYYXh-&gLwS|EWi+Ri{DL{yEw3FLBNhKAUVl@OrAw( z|B+dOpa5<*K3+~fHUP*G0CG38V*MRn)58IO^p}$TxA?gOA1?=c2Y|(M6CfY31?c$) z&C40+3Iaf#TtGfve=7bPp|P_A%)w?*fGNll3_<%(^k*^1;&1#sd?&Cwz<}+Ud+Y$V z-=BYcKt^JSHjRMC{tee-w6|JI3%+q(n2IC%lg9NcWrbmig)@ID`Z zeEvI%DiHin6>R@;m4jH=1K8RAuJ-ww{#CK-KLnuvXE_)E{~b)({+YEP0R4YRZpg;X zX7>EW{{Kw%zg+(R82&rT|BdATTadJit?gfG`oHx5A2rYpZ0qrl!82)HpwA1SWdFPd zkpDH+0sXzSN+5Hvi{1Zf<)FalMG%93SU!`PnVpM;jq7hY*jXCv4l-8-L(Q!Irp(`R zt>3F=3x;tf{cS8GrJ!W1u z0IT$G(O-z47r+YqH+m*7E6~=#>JP~?FIhoY$eEDlt+w=B*JS z#FMmZT@L1v!gnapZmDtOwFHe1S@Q~?r02TWrQcb9Qx9tuyS?j@d$xJD| zYe{JuH~n-8JDKQpMMgD^)c}*HlOj$bP~y}Lqe>o${T)@r+_GDP2Fsg&uDWwJ(Tx`W zqcpF4aEo%=_o|OsiiBkR+K21v&_>ff%`NU<#B@39cCmpQQHJ5E${AD<xu_32v3x ztGxq#i#T26?UC>0T?4jGUxz?(qy+oOB)O0)wHNa-?{i9A4>EAQOl9yy56rvERv1#Q ztCi2KHqQ@?UNJg$W!DpbccB~>Das`HX5_^TB!~{jSN)7PoGuTAEaSVgk9-q>3?aN4 z8^7Zc#MxGY^HuXeZ(kUX+TuF7YM*q;yDXbIKNk3;y)?Ou6dn{5Qy-ur^GI(uh!cyP zUh|Q&u(II77bhasF$6JUA{2DExAPgrX})Z7!}e6??S_tZ_uGVj0#PDD5~p>4^L66CL@xN%=voAnd(a3kqqGw6afgR%T=~LEg4txPlkkVskuAyS zOl4n9?4%+W8k&)nt>&fRCCW0Er$xHs#rsOf)yvH=YG5s>}$Q_^gs~X#ln;dF$s`yr9;ZB9L61y8tPBmP6-)U zu{_BGRBNGAMw`{Tp(s#Zu!ZCGaQIC;B0oL#@_8aek?uMa4t=Mpm)ap--@T_t)iPZ+ zl}abN-q;$|jwDtYZQ&p#3?sBo&<&ENIsWy?qUcS3Vz%e0Q-lk`W_X}M^@v1zcQu^` z)kA+fj;Sr;iSt4_Zn(R-15Z-*x-&?sLXoeKqE+#XkY36H@Yy7~i#GwE0H9%Jq$lYl zb5E=&Cc1+NZx+rxLZ&SE0#)}15S3r0t5aFgu85oZ&6(Z=L#D8sZRwqD$lkjw1?Rx1tX-rbo!PzH&U@e8MSEt@O_``Fgdpm-sFSLqZPr?#23i$MC4n z4l$7X6D0x@^I83JmtfNa>Fc66iTUo%+m7RcSr;86M;3X1Sj%D>ZG$zKSFgfg`@Yb8 zAk;Ln7=!_$F_Z*gZ#))_qq9R$N?K;5e*z_cO{# zNuY2{6H0e7P;-dI-p*!Vme#hfz5T|Bk@o5T+e@cC(;X$2mFs zy-LFHp;~rVaqWIL8_Y$$K@W|DzF_$2e(_mDsGC1hFjKCO9b*1x1{Y*Yj{tFv-WSP# zvl%dssR#mxL`N0rD&@bX)%aOVa^h*$21RHi{AttIq^5qnbCqp|=T$M)*RxqB9;oIR ze5Ro!pk8RBK!79XODv$c|6Lp`?5%2Zo<93bf+5HIJ zYSWVQ^jD{jz~<7KC+5eq8L>P_!!8ysy@zfYQTj{7ICA>mCbfg?Ds_PZiK#T%qPm~3heD!?d2gw zp%>+n!`6c4zeS9x!O{-34`-}TdnFp!A8sHMl7ONIbFslDMTJJQZZDsI=~oYbVkaQK zo)j}}#T;C{l4|(O+ZBlFKye0FskIldu<+Kd87t)<=cUVM)zHYB+9N zw!JyR3b-YDe=}o{rl5-Yb;uQ?jln^@Lv+bh4961Pfiuj0`yMmAr?xMDR&C{H{9BCn zI~j+*!TlwL5PlxS?{!^Pfdg7eE|NHP_nZ_LcHYzDGPj#7DWJfP1pbfLrd-hsCSTmr z6l{`xo!{1uyTEG4&*4ine-UCXHA&4+UxxW=e+>c+4YsYi32d622{W- zj%u5S@S0TPQoE3% zTa^ZxAn(RlF0Da5o%7Y)3sWAcg|FS(ihhweJ`lQXLoDHsB->u{o7J#8U3X}K=8qZ| zVkIN7fr?BD9Q3F)8b#ZJO{CshCr4iq>IhR)>=OL{8M<%yb`KsDo zcLLU=Le{JxF(RDwYgQXvvlJ<5VRhYhL>>7-@Xb4+xXeh4bwJ};fIlG_T@LmYs?Z`f zn#Pp)spAlu{x#PkIk9uB(KMr$^KQ`E)A*ZN?0^V=ibB5t;&y$O)WIIq1fPPTH~uVz zxibekrrvn(1d;R*Z(LGmiSxUM>^UOF^~WfSuqafvdDGCL(CKS^b>f6Or?iZ+gH=Xm z%*U|eOV5rRqv(~RPrpE2{AofqL3}w^#S)UHZS_??Z3<1m^2uTht*_rdZP6|Bkv|Tw z*itBA&b&-pXBt~T6Y*qnbnKuw=(R8bs!)ohhgYpDQJsnAFOsuvt0 zgXDCQr@&jnHDFq(Si#FL+R6w`uTWD|a^MPRqslf_$1FOqp-7v(E| zt24R_A^K$ZH;++MH=Wh#QQFe6Q_R=LCOwJzZ>cCMdL5Mo+3*~DmvXBFUK3KszL9B~ z$nS9xu;;OniSw}k-vyGx|7gp@(d`{cb>dNbs0WKO%+2(9&(9v^t+kI1Eu5}m6@jwjo;ahZ==w(`uL(g zu_6-08>Vghj>zaZYA6>MwMahyQsFKfe`aH5a)yxrYx-%HP58rB zsi$KDN<-^;g|t2UHzQAZ$!lD;=Ji_b{8#H&jFEcRj~^!}BVhCm<^*%(Mi<`>jl8i$ zMKHPKpd)kCY3(>Q=z!)-ncmZXTQLHy)yL{wHCNp0g9NfWtbNuG2xCL#5IW)wQZ*Eq zm2#k^Is$IwTsdBSTDwsU0T&&p8v=^oC_d`%he{@tIEycFo&b%1 zit1QUL zA+E2=@|Vs=>a=POIcQhEP^Cil(_=l=#ZFDP_e|IL8a`1!&{}WQZTGAP!@;>{jDp>6m1GAhgD}uGw zu#@8>{3%OOn3eh5>>*Wg6g5hA#nb8ABlDoyPO%V*>$(RagBATgZsx)@0SdMsgO00l zd!vnIOqD-=udq*yAWN-<6<2H4Fi8h?pls!diKBJ8{92DeWqaE2 zSgn!x@QpBGbHIdg07bSOl5dLjZFQM?LTvOjcX|*qWv6Gc`dy$r>Q-x_!0j3k9~0W6 zK_Mm_+k7wnZMV>Wyq@CA>_Dj?=S)jyl}zvP{lwn=x&4hK`CRLEwA*JVweL2~8L!|G zvcu>GPS0&lI4`w}`&I8e<_PHh@)!1h2Ic~70rAdPtx#zZ4~nB<0b*Ekb6!zlCb0V z_!k}UGSZ3u_4gD9p_3yszY2g`k-&bE`?3N<_#5}eJ9V8-LY-q-RYh*Y-NZ*BEe>dp z*g_YKijhHRR`=1wIc12S-Ki$7gXMAvaSpm(UL)3g%gQlOoCkF_?D*kV9*-kK$}8+1 zwK-X`qlGAcLmJnjj3e_sW8WX*6&0+$@5?bnWAxs3z8L7_I@&v?o8xGVMR>6|mOM?M zjl2ZlOU0}YcvY&X-l~FG4m!KX-kL8JBBHhDCIk;`*^Adj*}<;u!&hi2nT@#4!aU54 z&gS^%i|wCW9o>p~DCZmQq_(QkODi!=8fXM6$e%=io;L3E94?n1hWUoZ6?!IKT9u-{ zGtR@Y#%01ZfUZ;7f|S@pdq!vdJ%|DjsON>-mp{Q_9-q@=Nam@d9GS4 z9g{adi%S;6hoKFNa4WmjuEh;nIXNEHrkC=jDBb&Y4qqHZm>j-go^G_UR+S{Yeo`J8 zwyEKZvO@~-#C-R*QHYdPT9JBFiJfC-5(OfEsP|<|MD9SwX?Z1PQN@IVh+3q+tzC%T zJSL-vT;q(gAtf*;wPGoZtEEV&3XWuta(3?>%XMxNs=$SIqgjq>geZY{mDQ`K4{Ie- zj~U$q!|!6SHRAEb?+FGpI9*7-t@jX3#O5t>zIps5zXe`2BTGEgoTeoREKa^CNC@$N z)VaunQrwR(J`Q#pQ52oCyTbOb>>Z8mOPgXpl_Gw;HkgV`ODEmeT^SobGR#D=6Cc{< zn4ib@5R3N;jptt_tXetpRxxmg1bYtO_(Xg7fK^@^82CulZrv&x8OPSaoyC zK_jT1zYkxWkgK^SMXI4_U@06~N>?EP5xSn~k zylIGVlcBWW;yjCxod=WSy1idukm?${!Hxl3B8w$!Z+a~odEBeWL~)`eRr6x zt+*wsE@p=9Lh%UJ(!{vLdZvCi%5%pmMlUwL%dr(yB)(^7{$>9xr}m6m0;Ma8xexLx z5vOcH5g6Wc4r}TS=86Ak_rvePknN%7iu(O(mWls^cYJ^=iz@5}mU=$nYCVM#vofn7 z;Kt}@9_0e_8w2A{7G0*aQ>(py4i;Rg4r&Q~&OtUfqF=rgGp zrKV`s7rd|=n%ZIAtXpE(O#u^Il`M+^J|mUuh-jlUNM`cwkmVj2&Wj{}y$;y-aJIm4 zxF+w5)?6}3;1H3%=3FV!!S>C*WRw|Fz0IqOnd0tTT|?&P$bC1#-#3FUm}c%D(KJl` zDS7Xq@U3Q#wWV<`bhW6#%|{417!4K0k0ksHsf}fv2q^Lc88_BEQF!HSKuD$Fpm<|o$W;rz0^D*#(hERw4H7Gcxa59|Y652*k_tJTXJmQj zvJ?SCTRw@IH1w>i#O8&P6>NnE)4&Ey=DCJd4XO2%jD4%%Q>xy7iL~&=P7HSaH***R z#x~3_yks<#JpbU((ioUmKbBlbrU-WFVo8woc8wxXB;%T^t^wvjpLqBpvGL5`vZryQ zB8SPeR-o+I7kv{JaPFiYL47-fA0q_Uu}neRucR+}7>IIM#d@`baEOhVpSuX1+zLHI z6aFc;OMjU&5pK$ViUFOPuQ{^qzi~h*AAx=kDS}UmJ|U^py^lO}5SlQV0HhUJ_qu** zMUe!k=NF#XhNfK&x5HJE08l|rny!qgI_Riq9>)z*tA%H zg2wfO(;fY?Z%C}4+T;`3ECWj(<@Ru*lCClq=rIjDW2{f_U0X;gCjrSGh_^teD}&w; z&0q}c(YNE0os8Mi#80AKan+9g`Fu`nz0p%ms9|$|OvIT1416nct}H^*tOq z%%RtywM!DBF{yrDq77waQvVu-8gX;tVk;TcLbrLY!2My0Rq{!lXwL(*4& z>vY2hr|I4|y&R`fuqemhxE9*N!LE44fF%ipz(#5I9T2ADP0qYO!jc!Aa(o#wz^^3r zO8Y)?Gv_Pq67Ff8h4cqQf0Dk)hx^q*nrU`gWoHE$+|PH~6^XtEX%2OBdV0 zQ$Lb*TnJV7uGOD3Z8oy18o@JpIjwFx(*YYcC@3IoR2^E+tyP$m*GHQpGWaZjhn??> zR2l*f#SX^dbFF=wiw%WRoU;KhKWii_CfF?ZT7$^|U_hV0@4a__X1f7$Y1J8Li!UvT ze?vR95>qL6PSUw8W^iS1hvG#P-9@ltXXz?eMMSxr|`>txaX{j zmAnlbDK_5Pl7lHbo?ba7PC6ZkoMu~t`2CZjR#$MUe7zm9NwM$ zIhcnj7R108lW`t-^(JUY4+9L5vC-?^%hY2%CyP!h)YGi2gNvOZj+C(7oW##APWf6nq0h%xxi3*1FA2G_4Ks-v@QA} ztbQryr2>L`wXLO&NBf+xso1xlIm&NN6yLu%j*do!Ms%&8NDJf@47)+Ee^O$m%cqr{ z=`OWq=(ORsL?4@1_uGLfKIEC&SpW}y-%7bMAw{+@=%n%-8r6b-N%CwH%`7{dW}SJV zf3s(b$q21r*~1K)W>BpW7sZ^WR^faK*5SZ>$V^LTEhJ zU=2+t*XE<5R#3~hk}e{QU6L`gqxCa~pguV`iOApFgHoWz+_=p#%iW2WOfkuZ3lV*y zxjzgRd&=`F4}>T$xhHSf!>OV$QAuDtoMN*lOf!z2nsPDN+_00IZ63uGO}NYYvptrcI1;- zEd6p1g*=s#5mX^7A`LcX50p_f4W6DvDL06s6WZYWw>?-t5$G|)GVVL!8by3{#NtzI z_i7x0$lxv1s(+tBh25u1mN3vb#;@nUd?7V$AT-oB%N&8mV~ zpTI$%ybZ1T4m$e6syT1zy4H88d2#PeW_arFKlCVCjOS&T7TwFyV*ac_=&zYyT92oECko8RPp5R@Qv=(a)K2=er!Z3z&EX#z`m=c-6u?Hw7)N4YxZ3h$QggH8EtJJ!aTOQk z>@=}l8$8J=omAWm=Ke)q4FI=DR{(udoFe(1b>!7ww|@t;sYauoVJ} z@WwMHFJDh8ZehZuT7f3`n=(@Hhth&>JjKeYRo%P%&s1xUL^ip-j56~GO6FyR zuIkzOwJ^u;Um_C5+^etYH^@GrMwk@tRbqXd=4{<&Cx}??^Q_#|NJc)vRS6Nc&Kmxp zQ6bBlV8_Tb=&PSBP6D#WTwp1ja{h#nW>PxkSIc9nv^ndBsg**HKj+idAkpKOe>3Lp zVO-9R*`yp_9SaP{Dfe-4wfr#y?GS#AQ@e$fHt?8(Uc8?Uaa$+9m%eL~P$)MdKdxMF zV-{~(Xf{g5t^47@`;yd3OX1KNq0)4Gg#?aql~KWhoYw9(Lm@@f8X?@*qMJ)me%)Zg z&os8@cxQ9ui&M$1e`Oef1Lmq;e}F>U>#6tWUvgk~NZHM%&7oJ<23h^F1Un zzp8s8)u)zNK634W#+C<&e?D#6t&U~BsGp(Q6RsKb?ETzfWKL{N`x_z?&&9(EiN>?9a zJ3hRL$ftXZyxL9iF$_BnaZTJ_Sl;db&H_J3yxizOdb1Rgu7&0I9^Pzi9`08QgvICQ zt$XMeJi@+Vp#2IwSD!HV~!squLoz;KN|7Q zCw5OJS5+>n8JBmnu~2a-_Fb&(#^I~2CV9F>6DwCp9D`?*XGl8@N@qf) z*o8(8zEOiRyyb#(ZG?>Dphf{OS_C0L7+pwAG-47Be}9eiSfce(DfWRvT4P89NHmS0 zh2+Wx_k}xZO8>>=m_rUR+K%n2iqpe)=lXSK)A$ZU+CdYnzz|b7x(XcbDeVxaZjKux z6jL3DU`md}s^w-4|GY?t2o}>(NsO}ZM0qH|2#>UZ=xvKa_*bq*uQPiDV-H$+(+-T0 zBhC8}e^avWJlpW8@z5*diA8By7IB*zVvrr(fcP5)@lr)^$kKs?D<)k`T3;E~dy*f} z5sDVH*G-`a-&l}0rU?2E_RH_&hf9t>9xKJDPHAp&F%cFG-c)_8$}S4pKIy*rgu>aL zF3>PCDW-0WBi3wW?2xz3d#QDazeBPt+f)JxJ4sqwmj3vboxF)g@@ON?V%EYz%K= z(sQ7jJK)PU-W_5{p3Te>a7y&a$*A@FVfs)QT~+1ylD5?N1!{FCkp>{YWI~YhWM!nCmOSII4;5 z5Q#5($!!l;vW=g~b${EwqSHQ`@u- zq{xM6YVWAFArvZ$?E}@s#3t()w$cIeLhVR?II-7^tWr1+9Tc3ifBY&i!3 zmOa9fWg0y5_a|;907#fI-CKlm?{^|`EKvQ(%3bZYcmD_BoQ0s5fg1u70x~t1F*^ej zm-nIq5Cb(eG?(F}0Tl!|I5s$!kr4qWe~kA9P+i%!fD7YJaJP-Sy99T42`(FVm*5a2 z5ZoPtyE_Dz;I6?fxI4Vv-RGXpz5ieJUQxAK-4P}0HPm64T+ zg%2R6pdiBqU}0frVqsxJprll{a;bZFwg6Uk04ookt3xJJPY)W&i~yfUJW(&;@}~%)!yi*~-Gw z6%^)wE&(*Av;bCKUT%iJ%>g2IKxZpcV|##tv8yG}4iwSU*cPDXU}^<)_4;2fXap=> zT^;$DnLRu_n2haQm>irf1Zf!ne;!t@mH<_t3((meXa@MJV1S~r9q^yZm=Gud>Xue6 z|H#!G%w0W9cA27GFH#7gM2s1ZFW(|8QCpVys_g)#e_4#w*e-i>LE5OXk)D>U?w6L;A_}4o~3^f0TL5J^bJ`PWp&-rNDe%JNUPpl$k}jNSj!05ty@4qCwfcBbe6>RKRx=HDjQW8q{m1^ux8 ze{S`^P5%FN_+MWB-UMQ2;fqn=5Dl6dXWfVE=zr zwSfN&tpd=@%FXWof3C{78iNKw#NGnb%#5rYOe`G#$gNx?tvrEd%2uwXmjATOKXQ$~ zM$OjB9;oc#V)fU(1!Tp-@_*Jq^JQuSx_`KU`tqM8V;9h{x&D2Oe=!g=PX9X(342oq zv%lt!jgt#t?Cfmpg#bEw5OIP!0W_dyK+nHB8^FwD@8AkDe*u7M_63+bI3xUZ%v_uR zW|6-{{}2~|S@d7x1u#qem$+E~%#!~SD}Y(*Ut$L^%lu0qFY^BqH-K5;Ujq45`Y-W- zd@BD-AfGD#5*vV7^^)K-Nn6>{)yr4DX{}O0Wn2l{6 zE&rA9g0xNke_aP3@myF9O|`{%{C7P-e4#5tOAF(AM=&1yD%f9|($I z{s)4JwDxe-0fj|4o<;l)mF1`GcOO%uatG zs95Je5Txz$2ZD-q{TD&eK(~=UHweBZ>1F88xa8d!HLiaI@H|608E*{vsO@Zz{* zB#}I{ATfzuc)tUmOYpfTBwIjf0n5`$7A58@b{+szCi;r{1766?VnB@&YQ!6nBbi#y@(XWbTT=Cu1AD; zk80G-q0!+rw0@$VuYt1eL3 zs^TIHi{&S_p5yAhki%+QXGT~iARObObmpfY6k0k2q&%{7_6GB$%daoXV0Z=-Y&M=Dp7?W=HW6cU%XXNBv9CD8%R6D;@LoRz`|Wf`lf_OeK(CciRz z4a#TW5*$dH5cU)53?aFvgxwsFGBA^el-K5o0J&S=hE- zfK-VHNR>!_7c~}0-oR~oplOX5e~WU_@ADyam8V??e81dVe2t&^r9f>)uy*pXfG?WK z1Cb)sfc6IsN{V+lEf#%SB4iAl%tQkcc{;R~iZI(q5`h%BF#Zbo3j39b?UhHb?CkMS z^J`WXGnH{?l{e%DT1Rwrw{>oE+jA&mygO}lA^^0j8OPmlw8|G1JIU#SMXqc;4Q3`(@++b8}|?DG*?3Pubz zUoU=MocdtvuQSs?Ha6R zW|1QV%lB|kWe@p0@587sJ#YOKsS`@SU$!8G4T2b#Fse_WoY*w$9&WIvOszda#?SJD zz?DB~3vr%DL6QBAc`=7Dh{#QBp7-JKgy;B{=R#3R-sR}<-trp z0MoCd=dxg!WS0J!f16HoK6Z0rZvowKn!@Y0qe`Yws*>cz!Ht4)63jMID zr`f=EPDAM>Pf(&L!~K0%ut{q{z7J>Lbrk&8dO!8cyVNui?c7c_zAYzGe>xV&@ex;E znT5IXJ5EQ-?XyaTc)UDc&$%qZ18u!J!&I@8=E+N;`GE8xP-E}(+gh2_XmS~Od<0Kp z%-Yv`g7;GA^_9gju2;DVsk1~?S5CfiL|mOKHm)Ak zN574;cy$Y={Jsh*Ry<|K+n$Wy5_{RgK+jm~;fz&C-*3rR-^E^;rXLTsL!QsaLhOLC z2u(ReJ*9?FW?_E~7c47=o*_w-4}8TxZ6$E?Z!l%se|JM)(s(<@%d?TYnrB(BFZK*i z9z!N>-$=vso+v}gXEFBp5;e~$>j2)AggKc(Vfc7+ieI>prd4~T@F~#pnX*nwI6qO| zk6DUsB-7ul&4M!<|5nk>-Y%PE2!j+4+2|$ZSdsN(tKnr9szGL0&Y(>j??v5n+`A-l zD+QbIf3SzmJ6I@`Sty?PC3=nmu*%EyIcN=f4saH*eo{0OPGy!mn|e<5grS|S!zF(zCBc)WM2IyG$KWP;JDvtz!7H`dNc+vG1wr~^6Iy6_}S~HmxUyAU`<#_%_(_HF31m>q-8~Zdzul5h|8h`$&51fUR@3W0UHYwEChE ze~-5RRTo&y=%+bT-*!|?A+)$f;m|{lrFkl5@uY?qqm(LjW2y2P5C1t1O0_nR+YR&V zz%2@?DqeiR>4ecUN`OG^>Pg-1Vo&*s>p|u$qJaKpsed5`yErcbU3yckcZv%4dRoMU zDR3b^jJy&~()jg`OD=p`P%5NMZ4$S!e;hGmyT_`jdh-`ue=TIHNUo0 zG?|;*iQQ7Ida|ABd6NM?bDVN*G=-i)tQ!fz zmxN_S!$4l1%$1d>&qgPg~i@krgW)e<)bU zB1JJl;<4YO#9gUn(!2TuO=Vu@87l5)hDU=p&+xkw_prXFZ(kx&7hZQ(6@|oi0TdH5kWy{v?lg3&g+30>@8fX?g@?!A?YrpYyFHnfVs+% zePMkWk0Wx#(G1)t@iMJlAIgRkf4hzJemtndS;5DjojWaTCJA5`$~L=YeBo${@^;Iv z8>TprACo#~fEI{7r;pGmDVc>^qDfK9xeq*zJT9co zQJ-j$uaeFH^5@`BcQ%L&L>KR$AaYoTg%iVSz}cYq6lOO%F5gKQQ@8T>u$1C7A>Ss1 za63hwMgphNnpSLN6)c_#f3T8om{Vvr z)RO_m`#*fd6dqA7_dK^wf6y*Y`jCHrm{rN>i}j6jntiP3?mBi)^==_ui%2Jr%bpnT z!l590e9P?Y|NT<23?!3RDeoYGeP%dXTuC!+`q={beXMvKBj8mG!{K;& zSdeFvm@^&;rr80!@^4{x&WK3~6U2c>BiM!&w*s?Gt3u)va@0@Iv$?m^*^$&~vJl#j zUujvUG)s+Ce!-Nve=0lnN4~5j3fo$ax-Inq3cy*g{AHm(gAuQmW=DrGG#O^etDCYt zWt{7SE3$M*#KQL*++RI{}%N%V1q5(`N1g)Ds?-4Rj z@acO}47_F2>XZ)=1hE*0W4w1Y)WhO`=wN#1?WTr3ASPIL$jpv5)^%ZK8iH#TgyGw5 z`YE`Y$Ts%*efY9u=o%gE;nF(aMnl7y)@aVFxu{_q!YA!I-oM)w-XyfD;D0hGV5thV zX|%w*fAA}2kE$~J%&=Xkb03U^e~qzUnUsEMH1)*RBVm-BzOw;F0shdT)q0>nX%}+< zC-afe{`~CD4tTcGk7A@6#wu)hM|H_3r}DXPJ6jz+9b5s;0c7!W&W8bV2oon6 zuPDjp8W{`)g3Q=@QMi6E!wADn?tR&!3_lf-gO7;ifShtf7_Ax2)VBuuk(oG)j_G*B1spSi1ENTuHf_G zK`h`$x1dUIS(>jSTnb811NRR3CDVx~iPQta^w?ycJJ1-g55FDjqI#bzxu-t=pHuj8bLT!pkTe=q@_ zyLU>{8;Vur=dXo3xSyuFQurWl9-F+Uh;6d$9l3fn@zoMg_XhYUO~F397Yh2vUEc8__{wYlSijN0kJDk6 z1GYl-{K@JjUxig3-Hs0{_xlUmf3ff`J))PNbbk7CTAiHRho%@UcWgydWr}bd6L4;- zh_O#!1dn4>EK+lrVRWHPfz3FAz1&P$ld}FVgzU8ho?A{ z-4RIEig}@vmMzZT;<&grilxfOhzzk|af!L27lWXNUDn^oNu7A=siYdqf5B5~2(Vl{3%TTBpQuq!+ zxyrn1)-<_l{)&^KW(A7PemeO)-6&Q8Gfq5!eb5 zF43+lOr|&J^xW*loM1^Z-i`%Jv};LtA~hqFN5jj;g9hNDttn4U++zg`JU9UJPsiuDYe`26G;P{zK&Pd z%9K*ab=!3ycIBuzMItvzNLTi&hoV=3W9~+zgMSAZglZ|L(E*YPi|ZxVF`bZ6Y8RtuM#S(Vkx%mC(B1kNCmgz5)rF_taG2=> zs#pHXpWAsXY2A!6o{Ny6thn~nqeZ>9_Onzpks93mE^Z8eNWUbzGxs()KGtnjQbM5* z!?vw-&nkUGe^F1?mDGcG$Nd&B!%6Ahm$8M4M}K}7Y?>AOQjp5|9!INI>>$U^6Yi#C*XQxV10Ui-Njk9=!XR zr21{+fL}mLmL%Y4sX>i}a?YvD81)zFvH7vE>Fv08e~Bk?cPqi_VU7IZM8f*^kgMK8;L_Hb)TpZky(gqmv zMcDk6ws}keUL227ZSHM)t@E2Pel~|2f~=-@f5n7VqMDIu;#B614zK;f$Fv9k{p2`N z<~DFhb=qRGoWk+2A{AmyIDQ^R-MTUPfvW|MiQ#5S)aA@1rx>vM!+67Pna!hjfD6;CC^x8iwK96^=#A2h_`%$JU)YGo*6esi z%VNmySYr^zC3|P|QY1DXF)z8S9~9(19g_u;%jL$5e3TGDxfWFlEMs?88a#o>?;86g zDCwTdv9>kw)7+z9Ks&Tk+sezCDa;w_f7DrYtULYdapC7pA%bQ*4ee@mU=Ee9A$jzU zc*McHps2;l_k!#r5wToFMUD<%);4}PODTS+(I%*g1`#Lp?~sMw?ei9XQB3fr+uw=l zA%a%oW|H6H1dNtRWeWN-evX}>+K=KqmtHaz{ah>+S0|RNl8#ozMejjp__ULFf6dR) zXTQQAd>)B5B*I1$+cy`88#fGh0ZUpYKZjI+RlB06WD#ihBf5IXxDY%A8AIPwoAcC3 z0Ss4Uy){K`0f5BLd<<4qzGS?urzIRagYdl&fguCZ7nVc)?8}2-OK!riM*9x9~Q=``rOAGBRYo(=JpN2U4|Vl-eTxDl#Xhflu_H;&QKEYPE_jLuoIg zT+L6rEzgo%@2!m_!fQNp3sYp*{V2> z*xq$BbA`*3l6@QOf76GbsouzWXf7q{Ja&vGT5s0o^(aFUV zU?JrrmbG?pu!SjI#^F*1EL^yXK*L!4wik-lQ+v+gaERBg5;$_8|y5FEYp zTA;j68Jo95*+Y=U?Xq$YcFPUkxNCjrC2GCbq5s-sDbU1uZjmdjFRce9b0px?Q5lUR zwj7e}g3M!Mm8hOY_f0l|{X$SoGVXT`xKBB*)AbBOf0V+#H1iB3CpO`X77RX;e&Bd@ zv!k~472#RGsbPF9!$Tyuys440?rUe@ zGprqtf8YheaG6~Bj+5wGNj;2in4ycFI6DwG zbXzOq`dByV4ULCDY9be}3{>K`rN!X!XhfFff75R-?Ay=N_J&yQMeJ)_b z=ERXOrF%uh+YOOk6zuNApv^d>!Itl0(&Qi2saa+#XzVa!nPqoF&}g~fXczg|{XT5o zf7rwu;>!U`y5u9bxi?UxdHr-^qojaDI_hu2VF)%mHNi$1SJl}fH7p!_C=4ZbHO>KE zS7)K;FQ^tbbEKO=sI%Oi=N&A+KIUj#)*@4mJ)|EJ=A`scpke;t!GK@T*;32-76=vJ2W^{`#pWz(l7j}en8 zN%q$X(5m&tnOZJFqrV{9(iJ3Yw}#^9kj!#PHU|?4F8L7KH;_SwMxO6)Jc?BMlx&z&iF*)knH>Lfge}->^ zMRVw;XuUDfWbleHH?c+JMu9h_GokkJP3;ur?ef^G-<#e^zKPlvE3{>1m!FEdSK5cC z2uuZj%ZAr}-H=Y>t@+v61fLZG50={3<7LB7@lFV52h(&)Q9F(1+}OI=?5KDO7K^#; z32P@I3b`r&_pje`spsr!9}q)}f3Z3E_)eq{m0|)avVzD73E>ivC{p^i*so*Xlk}k+$xO>QdvAt|H_7F*y7wF+3Do@+q#; zBBkuqOrl+P{}Jfj+BBO}KT1$fEz>iaXoD84By@pjY8BFSX0eM4`t~ic@KbkF&TQE5 z%q6Y>obx(C#|T>!uQD^Vf0B`tazkjJ~@2?T^={ltSMk7K8%V{Gdp?3f4|Mu(_eDhiL|&O zWVo%MA~!uDe&W!ry|E4uU5s1}M#_m}TlqLw7l~DZxVq(v(;u`SU1S^dD92Rypj7deN-_*F zGkIDs4ejTSR#y$Wdchkbnx!zqjv_r2hhnE<$I6~k9|M9{9b|>rix;3o$XGo?a`Q|- z{BU))&MGXQMZr%L>@Xf^+>^rY&Y*_)>fC^Cw@ozM*nHkFe*z|hpxYecA<*HS+rgE$ zmkVhVs>5)y6IUOtK81dm4hK6YA_JJo7FO=3W!ohg^nYM`=8?q^g+MO|{o@$6cIymH9g z0=0(mCJNo#rb?8L^kBPGwwUYvWQ@|UlrPvV6cSZac5#a|SyzO4>h_zSP;KQ8!8TZG zHYPr*?WwOY1I0%1hk9AZM;^qq$k{lqxk(KI%auRpf5{a`=NW=i(YKl=(ps)QCwKX= zMCX-_S&%8C)Q)8PiHk-3+;iG%|NNr0TE3V;U*#b@AhbF-7dK+fb5qwk2cvTxN+=h3 z!d-qW{Oy91V};?Tz-B0+N?vV}n73xr(GD(IF?p5tMj8(r_SF*_^NttFgV~N&Rq~sF z6glG>e@n3p9R#W9>j^!|Uhy#}5ImrsO8E6RB@+6Z_Xgu6y4-_}r zW>0Q?;qSs!fx5yZ92dR}Zygl_Q%-6$gw)cwe_BLI0i6-}r)PxoS<)JJuzSL>@Rm+e zs5>6dw=hGkqbDqYB>vGJ1v!RP4nH8pDxyoEY?w)u@f|>FB5*X z@9q1)8cbo|R}SDIZNRTY$M`;Ob_~oAx67oP8eto0G(KH*h4H1(PU;V29jS%{UTZV# zf9nvM7wt9BNGap``4RTp9!ueS4In6OmipzisTNA#-zub%rZ#`o^h1mqtn?;RV@zDpwXOXFn^ShwsI$;pt*5}Mql+Wp zshH(Q{`g+ynlC&Eh?r?4e?H&pbnEHNh*d7x!FZW#pw;jOZ$BP7R%_!pJ<+y5lPK}j z{20{fjzMQlvJ$6y_AW$PJL9z=p~_RGHJQplGLImd&#%h~vmgB#DqGNDCLKCToeKRX%bD&%6NBPy`M z`RTLg*npe+AHU@zf1eEWVQUGw7xpY24^S&&eL&bu3~vRhgx|2bt}=;fzER$QlmYN|Ppe&bTjHsXn5-Pf1&yfqn4RUkFWI@2clTV z7k=2T&{g=~Jd$bAk zS=B%35M6zf5dIeVvE#xPWB4;O%uO>VTN5tp#o85OOFdJyg^xWl79YH#Vd9haNVPkz zBV;w%Ff^V7e`fB|8@T_srO34JUP1xoZ){U9lzS(1H#x)){?#6Q@JU4+jFnfvYIlJB zTZhN7yKq&iu)iCD!2_B3938jY;CKodc64=njW@kSK<*W)rDGW6&m$yzzf?{9i_rZJ}|e)`y!?x*O_-;w28vI5*L z(RMBhu$Ud$o+k++?U5D_E-D@5T8UZY;RmM;(~|Cd7o?0tWwU}4s(iLAwZ6oyRDES( zk_x?`e=*#^F}G0upzS$qDlaKN@g=r<(&D+kyYC_^Ggfqa=y{KlJR-Aua-{4-gW^oY zn1Tc%L~V9hr|^qXph*upK{e6_0g~)@EoO{Rrc2K;yU!xqQ+J!>btouv@Tpy%--H@- zX{E^vCBwfEhm0tHjKh?H?*AbG6ML|pujjy6e<+Z4>(@D1h|^Qw7}24vZ=9<0`9S1x zgLsvJcGt};PGQzZpr$$nH+FI%AZ%G<$ozmMgf(R$L?U@^Eye78oi*ESL(5sGuW)Iz zUia`9MD*&zw5B2(uZz;)h|-B{AF6tR|0YD~3b*!6>$jmu78bT2taYh}iZ04qr~QzY ze^w>k2Yat41zT;X*~ztet3L-E4p=wbIL<5g!8SjksRb=06$pK|JS0)J?e=O`EL#)b zp4{!Q*wa7*MB>g)e?3F39w#_jEFnOVnDjtl$+iU>=f2ywM@|q| zVtauxp)udBZ zfAN<~{uq#@y8xAq4D|^mZ2yQA6#}~ar8ZhbtcGeJy7#K=jWC#izHXZpZYiv&px+0ynrA9m!r=Tqp1(7s5$I`{A&@ISD5 z*pgP>7hcliX|^gZaGL}72CPrPe<8ErU!i|HJ);%#36lA-Hw$x_NN71KkJ4R3e>1jV zT4omY=w*aUwHp?wY`Eivi?VGoI!$WbJz?Xcpu@0cWb(W_xj+`bgd_H54%v9lce)z8 zC>v4CcXQTTVa_eUhkRGoEB~py$zySm3@-GquEfeL=GPQM` z4dQr=gFy--Q*b+BY&RW>fAvn3Yml#Y2-Z2lESO1_9d`#{J3q%QF@M1s*7X0Lht%w( z(@OfHMz+T!pEf20rn?3AOQC$(4c9c8+`8tOC@d&CNd4*$sq4~)AK?oIt?>6R{dIJl3Va!elM^8Fum(<#Qd@mXYN1JL-+0X;aIbzTM;CZ1ijf9}zF#wM;q%nu0?y6afJ zeCsH_OOomtRgFt)bTGrIN+$|*B@=e^`l#4~JTx_<6swk3PKFgWM_na5Mh7WI8qh3B zd;`2s9gTIA5s9KJDFzq!^9H=*BP+4?F91YF!+nzj3Psaj@BIeNsvOd!dV*1T6UmSr zvEcPNgY~HFe^A3>a4f7RwMpAFP~NV}Z}}C1g~8RX*5J<0f*&pX%g*gM8H5lh>__Iv zLr{HKI1SnCUgn)v_v24z-6hHf_7w9w8Pj^!Mn3crI@P>RD>C`5*K%f1XBS@#ZBETdhS)2$Kqb$7Hw3 zmo#EJaelGVgLNGO-)d;ZwX)@x2p~Q1kgAZj%~M~G6F&Y8`pUMW@$cD}d{?>|0`EV2 z*kFiPAK#5642Fs3bI|HA`>pn2b?3(^@6F$6#y|!luof60}FirG8;-Y0l zz|zfju77sZq(_!?5@y3#%k^pxxIW?eskKP|x<8(fQiS^*ggGuLg{F3(Jvx2=zTP$b z6ptVssA#90aToTQ1U^&N^&TK5xx#oTIh&kX6efJv8(81xl3Jo}_<_>#I~iq21+ioJ zN$Kvj%P*~xg8>ST0eD|5BA_nGPv!-lOb*Jp8h`tPxy6`GYBo_Dq6eH6Th!V(VE^<`@03<~IY(6* zGJkusYJ=8seT9-}nV&nfFNMlBY?z3!r|b6c<@XqD+jb_lUxnR;Q@Zz6Wq}OQ zkYb`O{p8Mt$7RZC-2Ld$e*TXldr6Hl1kauY&VFr*P*x-89bBVKx+T*mX(?MpQFo4* zLx@E|c(>%VBKZY+ON_Nw&IlCDf+|$du78g<1Zu|E33F0e%GN)|9=WV!;_*=T*1)!B z#sZnUPq=Mk6wdXQA3)4Ue-7(M0#pz)5O8$JLLf+Nb0X*KykdPrpJU1Dgzv zEUF7t)k)_p1?PjDL6Pp?J35 zW0(G9Dp^KF+0MiKdHaOJmZl3#sMJ=4Ss2v^c>v%5!ibj34cvN$ZTVYAEho7=s|o`WY}H> zww3HP78@0X-xb(EANlmwWCMEbwL$C?n=P|*1Y$0%(JABrvXVJ8kHW7}s=R({v1#CI zaUm~fz_Rl0x)ayFDWu#j*|0F|XGRG2HdPPty11v=fzSGIL0RDs%YQ7*Q72yL&2s`C z`A;ZJ(HEp6`xn_AxM3V8-k&5>XPKLp5D@NO`XmVQ~$7dKF9+=(3NQB#M0 zLz$^dnYT#fnw5j%rvT>M($!RjhRAuQbYzo)8x@3wSM+GCx#(F8_YpA!`=7s*{W?MS zczk|w=;lMl1N*G2WPj0+8XDp9zH~At6o+xJI2(d2H*qisd1Rte|8{j>0=^UpO-TsF z+&+juW6|LnL-3|}oJzSeU5&^h#*RYLM~{b~ii<)yI^FYjBVrkrdTEPEHwQSf}B_yoeEfc(3%9#*&xE% zkZjy*H0G-kGRb;Ov{dDJPqBuqbvdkxUr#~dtP5UW${p0;Q)wb{C~R)WU(q=tV1>8-qX8VcU1kg8%p_1_Lk0_vn2>|DN0%(odGFqVJwLZM(y50VeP7rEeza zhM|^iB|NlUpMM+~BExj(Wr^4b8#k~mVl2N$F<-+feq4f4Nt?r0iNa2V2R#c_@2vYp z;PQgeS%Ely;iYK?W>Vl69oRM0{t0?n-pHb*XhP)s=Z8J6n_!2H)4U<+#iP|1xY}SLJBIg zAMB5o-ziWbG(st6-rn)zOW{gf&gPrHC&IF2j>;fNtc@iwDT`TWUj!So5+Ue|ZSj|h zRKr5lP-S|G)aq80)Y4#)N=-D>B(hxT{93U$a`1W5NAIvaFCOs2UvT{{_I1OLVK&&6 zPptd>Mt>$PXuL@1lY8YvF?Im;0TK1k7L117l6sf{PRjHmTC8X*H|i?;MYXcisxlP) z!@v!J!O!FF2<{bg$a`nFZ)g^EL`dp=wcnqk{X`nulAf$}j^BUo;5L}Jmtr(dlv7@j zmGJH&VbtbZ@q4Q?9NL=faO@YcuwTpB=1en$3V&wbtP$OKQm41f$-|1jSSn2$GdzNO zW9>`R>XL=!d|O(DFmP9r*{V5bN2}36I5{-!RON-KR&R`)RSHpSNYZLwWbtIv?Hr%5 z#O&1An>pMY;Ix%$XZFstm37ZzFKkY!J(uC${V>jm6E*%6?=;jN_v20QaRPEB*9=$F zj(@bn0J+JV^kP6Bzsq|$N>1PasyulfM$c{HF!Q@@nxey*P}dfNK#dh8fW#xtpTAnm zC$5ttJZa;}SCl`VBA3m`bi(@PnZa6jCp%_kwcj7EIV&b?rAb=3kZiVi_%~+{u|621 z+?RN0OGX+2PPWUG%M-?LGL3?#a$Jc4=70CS{9=X-JS^j$x)g9%d@xuEhjK*_=4iW91AXncr~ z6Z1I$rtz#(?m~tqku?c@5+V|V{G%rE>bwVL;5#c{P8PyMH=oH)n~-zp!^L)Ddw>4- zyc`WtiDyOk``QKD%X&QRq;0<502ARjqYL zBurEp-pK!I;5cp{U0FHY``Q`n2zqBZkwX<={3xC_U&FK>oM00uKkDO?1#5(;AanfnG8&zQm#9JYe zyyT)Cy2#5~7+GD*&L~=HU)C%ZC)Kt>2ho}YC^;ag(ZU)DkL|o^18=U)t#F8|N7uCVrb_wq@m;SDJPJud(tof+$HQs1se)o^cIcO*yp>Rs%l`#lW>>s3UB*KX- zoaV$_#o!aCn)5CRc+Ag}gjk24J0Ic88xqQ~5Fx4C)A&+SQY`ge8Gmg%#jaZ?mh}X5 z`0G{5)yE0#c_BSk#;qg|XPBHxn6lNm_JE;B>uUkKcnw+hWaepXe6JDh{3*C(wer7g z=^&XjMP$IeDh7Mzf4lMNw=Z45b0 zG2JwwyUss(e7|UeOMlWNI0&5@G;kU}eRJF8k-j zC4~i#e4VUY4V`(h;SVs{r|uWgou8xEF5xD>bNbABCu#d2th)Yq1p>|~s55+BTc zF1vEj`wo7Z5@jv!?zqT4X*R}Nfy=n;5rOAq$7y4Nf?nF())}1DifUqdSQFXdRPH+V-VpMzkV@~O!cg3m>BOc(jqZm2lB-qa(|M?uROL!A)7yAqjId8_>}-`Ll8-4cd9O0PNJ&sJ!+L<)mGDD1t-_%7&$S% zKSqhxsJ%Ck7j$?YE6@a!NR>M5^j_VwZqet-R4HXo9GJC<$eY}`tDhN_C{uj5`o z5jSCcO9%t+ckpGE0ADyf)B}#%5*7IrLYdLGj^gJSnK9J)-d6j|SLj-zw$RAPjS8Ni z25DPV58Np4eZl>Y97X)PW`njVnQ2K=q>m7L4f~%MPIq>Ee*U;Qsfb~M&)O(l1*c5p zS$~Zv$PD6o?X}jSbFSr!g%Bcy(XC-c&!kd^!(kwOvpnR*xr33 zVhowj+?-uOV&dMnL4u&xH)z)-(%CRHOn>~^%{DJ{mq+vTa#u+$0?#is3I9(37zpS0 z{s#DyD~?ip+P=ngu{A@;{a<$Tas3hgT~UJ-_){Tum64r>+xQN#?kfq0FT2OLxjT}Z zrIrIw+fIU%zaEKIh3DAMkUW;9y4J7mJ<>^GSP%k#Yd_cZ=%lYY&vBP}eTFAvmVbIu zl&Ej3MuOSutLK_gaJ}bWAN*+Uc<2|*oSg%PTX8Q^0m34ol%wd)qjC2_TBggjumM7A zKqivfLc|6T68UrgS5uu8YwqB)+TC{+lIs!_4ITb*<>)dOERp7oS!f z3I-SS)6#d6*)?C<(OZd$0jn=tlWG7}T`}jjkUOt-?n=i9UVmn*D*F7% z2GgDUOR@uS#}!Z2NDheUz9D3AKaD;@TgRsacp(Sot&Q=`Pk&jv7GL@GT-Hh-^O*oD z5oXa338d|ey2Z~;`on~tJ;TR9+|#sE_q`&@!iph)@+a6}F`zv8Xyi_}rPT1H3dXm? z3T*EAu$pDqrS3I77ME@mP51-jt3)0BC^y(9G;Ub=yja7PxL%E;)-hY3X+|r7jJ%W%> zXZ|g*oj;cf`~WXDYXwjy1?rhr40#f-82m?Rc`zM`5>D8tnEf$w&f(=pHC0ziH}IQM z5vOO`ZP(%4^pVb!IdZ);pbF&8m_~uK`X_| zW6v!oL9O9zN#{#6WPhLQ-a>OUx}Lu7--wj^(o2-A^@CWmpQwcrQD(X};->nChS7?z$ z2g{C@lu2O(6MhSev$?0I>MQtJ)oC1+J)E`AQuVEbZ_vOeR)6z<%2&szZI|q57L`nb z#o(}!CU7S}>B5e!qY{RAhp56UZ3as7n^%qv^>gn|PlfaD-{lk3&2GFzPR*&9=eK#5 zxPr->+*i7yTK%B3B%?)7Xa-(^^!9zpZd$iX2CGKs!CW*5pe6aEx@w7x@eKz=C;!Ke z#4A5LPwCNFn}3OM;Wf9EbAxb+CF(U@uOO%-g)h5mOCtdlJ#qu8Gc4fl$cW_3(yM() z*6Kknx4;v)Y>{j7>^Roy>0{Go!R7hS%ujp4QPR&pJm^2KK-&T`nrgk_A1Ko$lB(Zy z9TaPfmZSktwiK;>fU|*dnow+OJ+YfKpxqWQB_7gBDSwO{OqCG^U}d%Zr8Z6@fsCZT zEUnIMPWfbfp3a-0l9X&j2bsvX12|yl3j;>r_lG;9^UVC5S&la)l({yETf+3Q@a(W4 zre;Nhpgk=R8;199!v^4MGP5)LuYG4=->hAXo5AW_TJpYbV`56b6pP2R-x}u=+YuKD zNs?XvCx6KPDQPxW590tWfi&&SYm9RHsz!2u)xQs%#vt7LWrjpqQ_Wat>KrAqg5AeT z?~}WZpbkh{j|{qM2Y~rEs_?{DEPkD9KcNO;f5~>AFy^l&D+ULcn^JZ;sc@TucfARW z_HrEPa1jVrp=vDl2IBm+ymf8Fv!p`a$_uSsR)0!!aFLK+G@vVezdWX4K8I!T+x55aI!;la}GSs*MBW{LZOYl|V2p06}E`Tqci&4Mm(j_{$X?Bz{fiW6%b zY3|#5HOP|zdo(pc9{?G{iZAvn(x*s$Z?1Unn;yX+^@4HA)j?$@0%hCQU_)SqQe;7? z2!Gb$yE%pZ))x=z!cIiEGdhKCL!3*|xW|PWeCn9f0!iFf}8!|6JUj*DaC0yRx&Xk31Jq=H z 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 {>qhAz@Sam-_j`4$@6Qh&K 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, für uniforme Skalierung gilt zusätzlich $F_X=F_y$. - -Mit $F_x=0$ oder $F_y=0$ kann eine Projektion auf die y-, bzw x-Achse ausgedrückt werden. - -$F_x=-1$ oder $F_y=-1$ entspricht einer Spiegelung an der y- bzw x-Achse. Sind beide Faktoren $F_x=F_y=-1$, wird damit eine Spiegelung am Ursprung ausgedrückt. - -Scherung: -$\begin{pmatrix} 1 & a & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix} x \\ y \\ w \end{pmatrix} = \begin{pmatrix} x+a*y \\ y \\ w \end{pmatrix}$ - -Rotation: -$R_\theta *P= \begin{pmatrix}cos(\theta) & -sin(\theta) & 0 \\ sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix}x & y & 1 \end{pmatrix} = \begin{pmatrix} x cos(\theta) - y sind(\theta)\\ x sin(\theta)+y cos(\theta)\\ 1 \end{pmatrix}$ - - -\paragraph*{2D Transformation mit Fixpunkten} -Operation aus bekannten Operationen zusammengesetzt -\begin{itemize} - \item verschiebe von P in den Ursprung (Translation $T_{-P}$) - \item rotiere um Ursprung ($R_{90}$) - \item Translation zurück ($T_{+P}$) - \item In Matrixform sieht die Operation wie folgt aus: $T_{+P}*R_{90}*T_{+P}*{Objekt}$ -\end{itemize} - -\paragraph*{Invertierung} -\begin{itemize} - \item Transformation $T_{\Delta x, \Delta y}^{-1} = T_{-\Delta x, -\Delta y}$ - \item Skalierung $S_{F_x, F_y}^{-1}=S_{\frac{1}{F_x},\frac{1}{F_y}}=\begin{pmatrix} \frac{1}{F_x} &0&0\\ 0&\frac{1}{F_y}&0\\ 0&0&1 \end{pmatrix}$ - \item Rotation $R_{-\theta} = \begin{pmatrix} cos(\theta) & sin(\theta) & 0 \\ -sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1 \end{pmatrix} = R_{\theta}^{T}$ - \item Verknüpfungen $(A*B*C)^{-1}=C^{-1}*B^{-1}*A^{-1}$ -\end{itemize} - -\paragraph{Affine Abbildung} -$$\begin{pmatrix}a_1 & b_1 & c_1\\a_2 &b_2 & c_2\\ 0&0&1\end{pmatrix}*\begin{pmatrix} x_1\\y_1\\1\end{pmatrix}= \begin{pmatrix}x_1'\\y_1'\\1 \end{pmatrix}$$ -\begin{itemize} - \item die letzte Zeile der affinen Matrix bleibt immer 0,0,1 - \item paralleles bleibt bei affinen Abbildungen stets parallel -\end{itemize} - -\subsection{ Homogene Transformation in 3D} -werden durch eine 4-dimensionale homogeen Vektorraum repräsentiert - -\paragraph{Ebenen} -sinnvoll: (a,b,c,d) wobei (a,b,c)=(nx,ny,nz) und d der Abstand der Ebene zum Ursprung -\begin{itemize} - \item Ebene definiert durch 3 Punkte - $$\begin{pmatrix} - x_1 & x_2 & x_3 & 0\\ - y_1 & y_2 & y_3 & 0\\ - z_1 & z_2 & z_3 & 0\\ - 1 & 1 & 1 & 1 - \end{pmatrix}$$ - \item Translation um Vektor $(\Delta x, \Delta y,\Delta z)$ - $$\begin{pmatrix} - 1 & 0 & 0 & \Delta x\\ - 0 & 1 & 0 & \Delta y\\ - 0 & 0 & 1 & \Delta z\\ - 0 & 0 & 0 & 1 - \end{pmatrix}$$ - \item Skalierung um Faktor $F_x,F_y,F_z$ - $$\begin{pmatrix} - F_y & 0 & 0 & 0\\ - 0 & F_y & 0 & 0\\ - 0 & 0 & F_z & 0\\ - 0 & 0 & 0 & 1 - \end{pmatrix}$$ - \item Rotation um z-Achse - $$\begin{pmatrix} - cos(\theta) & -sin(\theta) & 0 & 0\\ - sin(\theta) & \cos(\theta) & 0 & 0\\ - 0 & 0 & 1 & 0\\ - 0 & 0 & 0 & 1 - \end{pmatrix}$$ - \item Rotation um die x-Achse - $$\begin{pmatrix} - 1 & 0 & 0 & 0\\ - 0 & cos(\theta) & -sin(\theta) & 0\\ - 0 & sin(\theta) & cos(\theta) & 0\\ - 0 & 0 & 0 & 1 - \end{pmatrix}$$ - \item Rotation um die y-Achse - $$\begin{pmatrix} - cos(\theta) & 0 & sin(\theta) & 0\\ - 0 & 1 & 0 & 0\\ - -sin(\theta) & 0 & cos(\theta) & 0\\ - 0 & 0 & 0 & 1 - \end{pmatrix}$$ - \end{itemize} - -\paragraph{Kameratransformation} -Kamera ist definiert durch -\begin{itemize} - \item Lage des Augpunktes E (in Weltkoordinaten) - \item Blickrichtung D - \item Oben-Vektor U ("view up vector", senkrecht zu D) -\end{itemize} - -\subsection{Projektion} -\paragraph{Orthogonale Projektion} -\begin{itemize} - \item Projektionsebene ist parallel zur XY Ebene - \item Projektionsrichtung stets parallel zur z-Achse (rechtwinklig zur Projektionsebene) - \item z Koordinaten werden auf gleichen Wert gesetzten -\end{itemize} - -\paragraph{Schiefwinklige Parallelprojektion} -\begin{itemize} - \item typische Parallelprojektion mit 2 Parametern - \item Projektionsebene ist parallel zur XY Ebene - \item Projektionsrichtung hat zwei Freiheitsgrade und ist typischerweise nicht orthogonal zur Projektionsebene - \item Projektionsrichtung (Schiefe) ist über 2 Winkel parametrisierbar - \item Herleitung $P=\begin{pmatrix} - 1 & 0 & -cos(\alpha)*f & 0 \\ - 0 & 1 & -sin(\alpha)*f & 0 \\ - 0 & 0 & 0 & 0 \\ - 0 & 0 & 0 & 1 - \end{pmatrix}$ - \item es gilt: $x'=x-cos(\alpha)*f*z$ und $y'=y-sin(\alpha)*f*z$ -\end{itemize} - -\paragraph{Zentralperspektive} -\begin{itemize} - \item entspricht einer Lochkamera bzw etwa dem "einäugigen" Sehen - \item Augpunkt im Ursprung des Kamerakoordinatensystems - \item Projektionsfläche ist eine Ebene parallel zu XY Ebene - \item Eigenschaften + \item[Koordinatentransformation] $$P' =T*P = \begin{pmatrix} x_x & x_y\\ y_x & y_y \end{pmatrix} * \binom{P_x}{P_y}$$ + \end{description} + + \paragraph*{Homogene Vektorräume} + kartesischer Vektor $(\frac{x}{w},\frac{y}{w})$ oft $w=1$ gewählt (1=Punkt, 0=Richtung) + + \begin{description} + \item[Skalierung, Projektion, Spiegelung] $\begin{pmatrix} F_x & 0 & 0 \\ 0 & F_y & 0 \\ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} = \begin{pmatrix} F_x*x \\ F_y*y \\ 1 \end{pmatrix}$ + + $F_x,F_y>0$, uniform bei $F_X=F_y$ + + $F_x=0$/$F_y=0$:Projektion auf y/x-Achse + + $F_x=-1$/$F_y=-1$ Spiegelung an y/x-Achse + + $F_x=F_y=-1$Spiegelung am Ursprung + + \item[Scherung] $\begin{pmatrix} 1 & a & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix} x \\ y \\ w \end{pmatrix} = \begin{pmatrix} x+a*y \\ y \\ w \end{pmatrix}$ + \item[Rotation] $R_\theta *P= \begin{pmatrix}cos(\theta) & -sin(\theta) & 0 \\ sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1 \end{pmatrix} * \begin{pmatrix}x & y & 1 \end{pmatrix} = \begin{pmatrix} x cos(\theta) - y sind(\theta)\\ x sin(\theta)+y cos(\theta)\\ 1 \end{pmatrix}$ + \end{description} + + \paragraph*{Invertierung} + \begin{description} + \item[Transformation] $T_{\Delta x, \Delta y}^{-1} = T_{-\Delta x, -\Delta y}$ + \item[Skalierung] $S_{F_x, F_y}^{-1}=S_{\frac{1}{F_x},\frac{1}{F_y}}=\begin{pmatrix} \frac{1}{F_x} &0&0\\ 0&\frac{1}{F_y}&0\\ 0&0&1 \end{pmatrix}$ + \item[Rotation] $R_{-\theta} = \begin{pmatrix} cos(\theta) & sin(\theta) & 0 \\ -sin(\theta) & cos(\theta) & 0 \\ 0 & 0 & 1 \end{pmatrix} = R_{\theta}^{T}$ + \item[Verknüpfungen] $(A*B*C)^{-1}=C^{-1}*B^{-1}*A^{-1}$ + \end{description} + + \paragraph{Affine Abbildung} + $$\begin{pmatrix}a_1 & b_1 & c_1\\a_2 &b_2 & c_2\\ 0&0&1\end{pmatrix}*\begin{pmatrix} x_1\\y_1\\1\end{pmatrix}= \begin{pmatrix}x_1'\\y_1'\\1 \end{pmatrix}$$ \begin{itemize} - \item perspektivische Verkürzung - \item parallele Linien des Objekts fluchten oft in einen Fluchtpunkt + \item die letzte Zeile der affinen Matrix bleibt immer 0,0,1 + \item paralleles bleibt bei affinen Abbildungen stets parallel \end{itemize} -\end{itemize} -$$\begin{pmatrix} d&0&0&0\\ 0&d&0&0 \\ 0&0&0&1 \\ 0&0&1&0 \end{pmatrix} * \begin{pmatrix}x\\y\\z\\1\end{pmatrix} = \begin{pmatrix} d*x\\ d*y\\ 1 \\ z \end{pmatrix} \rightarrow \begin{pmatrix} \frac{d*x}{z} \\ \frac{d*y}{z} \\ \frac{1}{z} \end{pmatrix}$$ - -\paragraph{Fluchtpunkte} -\begin{itemize} + + \subsection{ Homogene Transformation in 3D} + $(a,b,c,d)$ wobei $(a,b,c)=(nx,ny,nz)$ und $d$ der Abstand der Ebene zum Ursprung + \begin{itemize} + \item Ebene definiert durch 3 Punkte + $$\begin{pmatrix} + x_1 & x_2 & x_3 & 0 \\ + y_1 & y_2 & y_3 & 0 \\ + z_1 & z_2 & z_3 & 0 \\ + 1 & 1 & 1 & 1 + \end{pmatrix}$$ + \item Translation um Vektor $(\Delta x, \Delta y,\Delta z)$ + $$\begin{pmatrix} + 1 & 0 & 0 & \Delta x \\ + 0 & 1 & 0 & \Delta y \\ + 0 & 0 & 1 & \Delta z \\ + 0 & 0 & 0 & 1 + \end{pmatrix}$$ + \item Skalierung um Faktor $F_x,F_y,F_z$ + $$\begin{pmatrix} + F_y & 0 & 0 & 0 \\ + 0 & F_y & 0 & 0 \\ + 0 & 0 & F_z & 0 \\ + 0 & 0 & 0 & 1 + \end{pmatrix}$$ + \item Rotation um z-Achse + $$\begin{pmatrix} + cos(\theta) & -sin(\theta) & 0 & 0 \\ + sin(\theta) & \cos(\theta) & 0 & 0 \\ + 0 & 0 & 1 & 0 \\ + 0 & 0 & 0 & 1 + \end{pmatrix}$$ + \item Rotation um die x-Achse + $$\begin{pmatrix} + 1 & 0 & 0 & 0 \\ + 0 & cos(\theta) & -sin(\theta) & 0 \\ + 0 & sin(\theta) & cos(\theta) & 0 \\ + 0 & 0 & 0 & 1 + \end{pmatrix}$$ + \item Rotation um die y-Achse + $$\begin{pmatrix} + cos(\theta) & 0 & sin(\theta) & 0 \\ + 0 & 1 & 0 & 0 \\ + -sin(\theta) & 0 & cos(\theta) & 0 \\ + 0 & 0 & 0 & 1 + \end{pmatrix}$$ + \end{itemize} + + \paragraph{Kameratransformation} + Kamera ist definiert durch + \begin{itemize} + \item Lage des Augpunktes E (in Weltkoordinaten) + \item Blickrichtung D + \item Oben-Vektor U ("view up vector", senkrecht zu D) + \end{itemize} + + \subsection{Projektion} + \paragraph{Orthogonale Projektion} + \begin{itemize} + \item Projektionsebene ist parallel zur XY Ebene + \item Projektionsrichtung stets parallel zur z-Achse (rechtwinklig zur Projektionsebene) + \item z Koordinaten werden auf gleichen Wert gesetzten + \end{itemize} + + \paragraph{Schiefwinklige Parallelprojektion} + \begin{itemize} + \item typische Parallelprojektion mit 2 Parametern + \item Projektionsebene ist parallel zur XY Ebene + \item Projektionsrichtung hat zwei Freiheitsgrade und ist typischerweise nicht orthogonal zur Projektionsebene + \item Projektionsrichtung (Schiefe) ist über 2 Winkel parametrisierbar + \item Herleitung $P=\begin{pmatrix} + 1 & 0 & -cos(\alpha)*f & 0 \\ + 0 & 1 & -sin(\alpha)*f & 0 \\ + 0 & 0 & 0 & 0 \\ + 0 & 0 & 0 & 1 + \end{pmatrix}$ + \item es gilt: $x'=x-cos(\alpha)*f*z$ und $y'=y-sin(\alpha)*f*z$ + \end{itemize} + + \paragraph{Zentralperspektive} + \begin{itemize} + \item entspricht einer Lochkamera bzw etwa dem 'einäugigen' Sehen + \item Augpunkt im Ursprung des Kamerakoordinatensystems + \item Projektionsfläche ist eine Ebene parallel zu XY Ebene + \item Eigenschaften + \begin{itemize} + \item perspektivische Verkürzung + \item parallele Linien des Objekts fluchten oft in einen Fluchtpunkt + \end{itemize} + \end{itemize} + $$\begin{pmatrix} d&0&0&0\\ 0&d&0&0 \\ 0&0&0&1 \\ 0&0&1&0 \end{pmatrix} * \begin{pmatrix}x\\y\\z\\1\end{pmatrix} = \begin{pmatrix} d*x\\ d*y\\ 1 \\ z \end{pmatrix} \rightarrow \begin{pmatrix} \frac{d*x}{z} \\ \frac{d*y}{z} \\ \frac{1}{z} \end{pmatrix}$$ + + \paragraph{Fluchtpunkte} + \begin{itemize} \item hat ein Modell parallele Kanten oder parallele Striche in Texturen, dann ergibt sich für jede solche Richtung r in der Abbildung ein Fluchtpunkt, auf den diese parallelen Kanten/Striche hinzu zu laufen scheinen - \item es gibt jedoch Ausnahmen, bei denen Paralleles in der Abbildung Parallel bleibt (z.B. horizontale Kanten der Schwellen in der Abbildung) + \item es gibt jedoch Ausnahmen, bei denen Paralleles in der Abbildung Parallel bleibt (z.B. horizontale Kanten bei Schwellen) \item Da es beliebig viele Richtungen geben kann, sind auch beliebig viele Fluchtpunkte in einem Bild möglich - \item Rotationen können Fluchtpunkte ändern, Translationen jedoch nichtbrechender + \item Rotationen können Fluchtpunkte ändern, Translationen jedoch nicht \item Ermittlung: aus Richtung r und Augpunkt eine Gerade, dann schneidet diese Gerade die Projektionsfläche im Fliuchtpunkt für die Richtung r. \end{itemize} - -\section{Modellierung} -\subsection{Geometrische Modellierung} -computergestütze Beschreibung der Form geometrischer Objekte - -\paragraph{Boundary Representation (B-Rep)} -\begin{itemize} - \item Beschreibung durch die festlegung begrenzender Oberflächen - \item Darstellungsform eines Flächen- oder Volumenmodells - \item beschreibt Objekt durch begrenzende Oberflächen - \item sind schnell verarbeitbar - \item Definition eines Ojekts erfolgt über einen vef-Graph (vertex, edge, face) + + \section{Modellierung} + \subsection{Geometrische Modellierung} + computergestütze Beschreibung der Form geometrischer Objekte + + \paragraph{Boundary Representation (B-Rep)} \begin{itemize} - \item Knotenliste: beinhaltet Koordinatenpunkt - \item Kantenliste: für jede Kante werden zwei Punkte referenziert - \item Flächenliste: für jede Fläche wird Reihenfolge von Kanten angegeben + \item Beschreibung durch die festlegung begrenzender Oberflächen + \item Darstellungsform eines Flächen- oder Volumenmodells + \item beschreibt Objekt durch begrenzende Oberflächen + \item sind schnell verarbeitbar + \item Definition eines Ojekts erfolgt über einen vef-Graph (vertex, edge, face) + \begin{itemize} + \item Knotenliste: beinhaltet Koordinatenpunkt + \item Kantenliste: für jede Kante werden zwei Punkte referenziert + \item Flächenliste: für jede Fläche wird Reihenfolge von Kanten angegeben + \end{itemize} \end{itemize} -\end{itemize} - -\subsection{Szenengraph} -\begin{itemize} - \item Szene: dreidimensionale Beschreibung von Objekten, Lichtquellen und Materialeigenschaften mit virtuellen Betrachter - \item Szenegraph: hierarchische Gruppierung der Objekte in einer Szene -\end{itemize} - -\subsection{Rendering} -Render-Pipeline: Geometrisches Objekt-> Transformieren-> Vertex Shader-> Raster Konvertierung-> Fragment Shader-> Ausgabebild - -\paragraph{Vertex Shader} -\begin{itemize} - \item verarbeitet alle Eckpunkte (Vertices) mit Shader - \item ermöglicht eine Beeinflussung der Objektform - \item Transformation der 3D Position auf 2D Koordinaten für Bildschirm - \item Input + + \subsection{Szenengraph} \begin{itemize} - \item Vertices relevanter Objekte der Szene - \item gewünschte Transformation + \item Szene: dreidimensionale Beschreibung von Objekten, Lichtquellen und Materialeigenschaften mit virtuellen Betrachter + \item Szenegraph: hierarchische Gruppierung der Objekte in einer Szene \end{itemize} - \item Output + + \subsection{Rendering} + Render-Pipeline: Geometrisches Objekt$\rightarrow$ Transformieren$\rightarrow$ Vertex Shader$\rightarrow$ Raster Konvertierung$\rightarrow$ Fragment Shader$\rightarrow$ Ausgabebild + + \paragraph{Vertex Shader} \begin{itemize} - \item auf Bildschirm projizierte 2D Koordinaten - \item zugehörige Tiefeninformationen + \item verarbeitet alle Eckpunkte (Vertices) mit Shader + \item ermöglicht eine Beeinflussung der Objektform + \item Transformation der 3D Position auf 2D Koordinaten + \item Input + \begin{itemize} + \item Vertices relevanter Objekte der Szene + \item gewünschte Transformation + \end{itemize} + \item Output + \begin{itemize} + \item auf Bildschirm projizierte 2D Koordinaten + \item zugehörige Tiefeninformationen + \end{itemize} \end{itemize} -\end{itemize} - -\paragraph{Model View Projection} -\begin{itemize} - \item Gegeben + + \paragraph{Model View Projection} \begin{itemize} - \item Modell als Vertices mit kartesischen 3D koordinaten und definierten Dreiecken - \item Kamera (3D Position, Ausrichtung) welche das Modell betrachtet + \item Gegeben + \begin{itemize} + \item Modell als Vertices mit kartesischen 3D Koordinaten und definierten Dreiecken + \item betrachtende Kamera (3D Position, Ausrichtung) + \end{itemize} + \item Umsetzung + \begin{enumerate} + \item $M=T*R*S$ Transformation von Modellraum in Weltkoordinaten (Model) + \item $V=T_V^{-1}*R_V^{-1}$ Transformation in Kameraraum, für einfachere Projektion (View) + \item Projektion auf Kamerabildebene und Umrechnung in Bildraum (Projektion) + \end{enumerate} + \item Ergebnis + \begin{itemize} + \item Model-View-Projektion-Matrix $P*V*M=MVP_{Matrix}$ + \item Anwendung der MVP ergibt Bildraumprojektion des Modells $p'_m=P*V*M*p_m$ + \item MVP-Matrix wird nur einmal berechnet + \end{itemize} \end{itemize} - \item Umsetzung + + \subsection{Effiziente geometrische Algorithmen und Datenstrukturen} + \paragraph{Bintree} \begin{itemize} - \item $M=T*R*S$ zuerst Transformation von Modellraum (gegebenen Koordinaten) in Weltkoordinaten (Model) - \item $V=T_V^{-1}*R_V^{-1}$ danach Transformation in Kameraraum, für einfachere Projektion (View) - \item abschließende projektion auf Kamerabildebene und Umrechnung in Bildraum (Projektion) + \item effizientes Suchen und Einfügen in eindimensionale Domänen + \item logarithmische Komplexität pro Zugriff möglich + \item Gefahr: lineare Komplexität, wenn nicht balanciert + \item typisch Teilung in Mitte (bisektion) + \item Bereiche mit homogenem Inhalt (gleiche Farbe) werden nicht weiter unterteilt + \item Komprimierungseffekt \end{itemize} - \item Ergebnis + + \paragraph{Quadtree} \begin{itemize} - \item Model-View-Projektion-Matrix $P*V*M=MVP_{Matrix}$ - \item Anwendung der MVP ergibt Bildraumprojektion des Modells $p'_m=P*V*M*p_m$ - \item MVP-Matrix nur einmal berechnet + \item eine Fläche wird in vier gleichgroße Quadranten unterteilt + \item Fläche wird unterteilt bis homogenität + \item Bsp: Objekte in hierarischische Struktur sortieren + \item Komprimierung, da nur strukturierte Bereiche unterteilt \end{itemize} -\end{itemize} - -\subsection{ Effiziente geometrische Algorithmen und Datenstrukturen} -\paragraph{Bintree} -- effizientes Suchen und Einfügen in eindimensionale Domänen -- logarithmische Komplexität pro Zugriff möglich -- Gefahr: lineare Komplexität, wenn nicht balanciert - -analog zu Quad- und Octrees: -- typisch ost Teilung in Mitte (bisektion) -- Bereiche mit homogenem Inhalt (gleiche Farbe/ keine Elemente) werden nicht weiter unterteilt -- Komprimierungseffekt - -%\paragraph{Quadtree -- eine (meist quadratische) Fläche kann bei Bedarf in vier gleichgroße Quadranten unterteilt werden -- Bedarf entsteht, wenn die Fläche keine homogenen Eigenschaften aufweist (z.B. bei unterschiedlich gefärbten Pixeln). D.h. Flächen (bzw Quadranten) werden solange unterteilt, bis sie homogen sind -- Anwendung - - Geometrische 2D Objekte können in hierarischische Struktur einsortiert werden, wodurch die räumliche Suche nach diesen Objekten beschleunigt wird - - Effiziente Speicherung von Rasterbildern wird möglich (Komprimierung, da nur strukturierte Bereiche unterteilt werden) - - -%\paragraph{Octree -Jeder Knoten hat 0 oder 8 Kindknoten. Damit wird bei Bedarf ein 3D Bereich in 8 Unterbereiche unterteilt. Geometrische Objekte (z.B. 3D Punkte) können in diese hierarchische Strukturen einsortiert werden, wodurch die räumliche Suche nach diesen Punkten beschleunigt wird. - -Beispiel Punktsuche:\\ -Suche einen Punkt mit Koordinaten (x,y,z) im Octree. Rekursive Suche von der Wurzel. In jedem Schritt wird einer von 8 möglichen Pfaden im Teilbaum ausgewählt -> Zeitaufwand Tiefe des Baumes O(log n) - -%\paragraph{KD Tree -- mehrdimensionaler binärer Baum (k-dimensional) -- unterteilt z.B. abwechselnd in x-,y-, und z-Richtung (deshalb binärer Baum) -- Teilung nicht zwangsläufig mittig (wie bei Octre) -> an Daten angepasst -- jeder neue Punkt teilt den Bereich in dem er einsortiert wird; pro Hierarchiestufe stets wechsel der Teilungsrichtung -- ein Octree lässt sich auf einen kd-Baum abbilden, beide Baumarten haben daher vergleichbare Eigenschaften - -KD-Baum mit der Median-Cut Strategie:\\ -Der Median-Cut teilt Daten in zwei gleich großen Hälften. Damit wird der Baum garantiert balanciert und die tiefe wird minimal. Damit wird das O(log n) Verhalten garantiert. Probleme können bei lokalen Häufungen (Cluster) auftreten. Die Mediancut Strategie bewirkt eine degenerierte globale Teilung des Gesamtraumes aufgrund von lokalen Situationen. Dies wirkt sich ungünstig bei der Suche weit weg vom Cluster aus -- vollständig balanciert -- unnötige Unterteilung weit weg vom Cluster (Artefakt) - -Vergleich Middlecut-Strategie: -- nicht balanciert -- keine Unterteilung weit weg vom Cluster - -Praxis: Kompromiss Strategie, Mischung zwischen Median und Mitte. Bei Situations-Analyse: Explizite Abkapselung des Clusters. Außerdem: In (2D, 3D) kann man natürlich das strikt zyklische Abwechseln der Achsen aufgeben und bei fast ebenen/linearen Strukturen lokal nur noch in zwei bzw 1 Richtung(en) unterteilen! - -%\paragraph{BSP Tree -Verallgemeinerung des kd-Baums. Trennebenen sind nicht nur achsenparallel. Unterteilung in beliebigen Richtungen, adaptiv an Modellflächen angepasst. - -Beachte: Trennebenen die an einer Objektebene anliegen können dennoch weiter wegliegende Objekte schneiden. - -BSP-Tree führt bei konvexen Polyedern zu entarteten Bäumen - -%\paragraph{Hüllkörper Hierarchie -%#%\paragraph{AABB (Axia-Aligned-Bounding-Box) -sehr einfache Abfrage (nur ein Vergleich < in jeder Koordinatenrichtung, wie bei kd-Baum) einfach zu erstellen (min, max), dafür nicht optimale Packungsdichte bei schräger Lage der Objekte. - -%#%\paragraph{OBB (Oriented Bounding Boxes) -passen sich besser der räumlichen Ausrichtungen an, lassen sich auch leicht transformieren (Rotation bei Animation). Jedoch schwieriger zu erstellen (Wahl der Richtung), komplexere Überlappungsberechnung (Transformation, Ebenengleichung). -D.h. OBB-trees werden typischerweise weniger tief, weniger räumliche Abfragen dafür wesentlich mehr Berechnungsaufwand pro Rekursionsstufe. - -%#%\paragraph{KDOP (k-dimensional Discretly Oriented Polytopes) -Polyeder mit festen vorgegebenen Richtungen (z.B. 45 Grad). Eigenschaften zwischen AABB und OBB. Bessere Raumausnützung als AABB, weniger Transformationene als OBB. - -%#%\paragraph{BS (Bounding Spheres) -Schnelle 3D Überlappungstest (Abstand der Mittelpunkte < Summe der Radien). Langgezogene Objekte können mit mehreren Hüllkugeln (Bounding Spheres) begrenz werden um besseren Füllgrad zu erreichen. BS sind bis auf die Lage der Kugelmittelpunkte invariant gegenüber Rotation (eignen sich für Kollisionserkennung bewegter Objekte/ Echtzeit-Computer-Animation). - -%#%\paragraph{weitere Anwendungsfälle -- Kollisionserkennung in Computeranmiation (Computerspiele). Reduktion der potenziellen Kollisionspaare durch räumliche Trennung -- Beschleunigung des Echtzeitrenderings großer Datenmengen. Reduktion des Aufwands durch Culling (Weglassen) - -%\paragraph{Ray Picking mit KD Baum -Raytracing/Strahlverfolgung, Ray picking mit KD-Baum: Vorverarbeitun, abspeicherung von Objekten (Dreiecken) im kd-Baum O(n log n) - -Strahl/Objektschnitt: (als rekursive Suche im kd-Baum) - -treeIntersect(p,d): Findet Schnittpunkt des Strahls (Punkt p, Richtung d) mit den im Baum gepseicherten Dreiecken und liefert die Beschreibung des nächsten Schnittpunktes bzw t=unendlich, falls kein Schnittpunkt existiert. - -triangleIntersect(node,p,d): Findet Schnittpunkt des Strahles (Punkt p, Richtung d) mit einer Menge von Dreiecken in node - -subdivide(node, p, d, tmin, tmax): Findet rekursiv den nächstgelegenen Schnittpunkt (kleinstes t) des Strahls (p,d) mit den Dreiecken in oder unterhalb von node im Parameterbereich tmin ...tmax - -%\paragraph{Aufwandsabschätzung bzgl Dreiecksanzahl -Komplexität Strahl Objektschnitt (Extremfälle + typischer Fall) -1. Extremfall (beinahe) kovexes Objekt (max 2 Schnitte möglich) - - hat ca die Komplexität einer räumlichen Punktsuche, also dem Aufwand zur Untersuchung einer Baumzelle (finden + dortige Dreiecke testen) O(log n) -2. Extremfall "Polygonnebel" (viele sehr kleine Dreiecke im Such-Volumen) - - Annahme: alle Zellen enthalten konstante kleine Anzahl von Dreiecken -> Aufwand proportional zur Anzahl durchlaufener Baumzellen - - Anzahl dieser Zellen ist proportional zur Länge des Strahls durchs Volumen, da der 1. Schnitt sehr wahrscheinlich mitten im Volumen oder gar nicht stattfindet -> Anzahl ist proportional zur Seitenlänge des Suchvolumens - - bei n Dreiecken im Suchvolumen ist die Anzahl t der zu untersuchenden Zellen also ca $t=O(\sqrt{n})$ -> Suchaufwand pro Strahl folglich $O(\sqrt{n} log (n))$ - -typische Szene: Suchaufwand fast immer wesentlich besser als O(n). Aufwand oft zwischen beiden extremen, bei mittlerer Dichte sogar eher O(log n). - -%\paragraph{Aufwandsabschätzung in fps -Effektiver Zeitauwand für Raytracing (RT): -- absoluter Gesamtaufwand zum Raytracing einer Szene (z.B. in ms) ist (auch) proportional zur Anzahl der Strahlen -- Annahme: 1 Strahl pro Pixel (keine Rekursion), typische Bildgröße sei 1 Mio Pixel, Szene haben mittlere Komplexität (1 Mio Polygone) -- Performancebeispiel: - - Stand 2006, PC mit 1 CPU ca 1 Mio Strahlen/Sek -> 1 fps - - Stand 2019, PC mit "RTX 2080 Sup23" ca 10 Giga Strahlen/Sek -> 10000 fps -- rekursives RT (Reflexion, Brechung, Schattenstrahlen etc) entsprechend mehr Strahlen, d.h. weniger Performance -- Parallelisierung einfach möglich (z.B. da Pixel voneinander unabhängig berechenbar) -> früher CPU-basiert, heute eher GPU -- 2019 mit entsprechender Hardware: rekursives Echtzeit Raytracing möglich - -%\paragraph{Heurisitk zur Unterteilung -Surface Area Heuristic (SAH): -- Annahme: Strahl i, trifft Zelle j mit Wahrscheinlichkeit P(i,j), zudem sei $n_j$ die Anzahl Dreiecke in Zelle j, -- Aufwand für Raytracing pro Zelle proportional zur Baumtiefe ( O(log n) für balancierte Bäume, wird nicht weiter betrachtet) sowie die Anzahl der dortigen Dreiecke $n_j$; beachte $n_j$ wird hier nicht als konstant angenommen -> Gesamtaufwand für Strahl i sei also $\sum(P(i,j)*n_j)$ - -Heuristik: große Zellen mit wenigen Dreiecken, senken Gesamtaufwand -- Schätzung: P(i,j) ist etwa proportional zur Oberfläche einer Zelle (auf großer Oberfläche treffen mehr Strahlen auf) -- die SAH optimiert auf jeder Teilstufe im Baum das Produkt der Zellgröße mal Anzahl Dreiecke im Teilbaum. Für den kD-Baum gilt bei der Unterteilung des Bereichs D in Richtung k: $D_k = D_{k_links} + D_{k_rechts}$ - -Bei ungleicher Verteilung der Dreiecke (z.B. Cluster) enthalten dann große Zellen wenige oder keine Dreiecke und Baum ist nicht balanciert -> implizite Abtrennung des Clusters vom Rest des Baums (vgl Middle-Cut-Strategie) - -%\paragraph{Behandlung ausgedehnter Objekte -Problematik: Abspeicherung ausgedehnter Objekte - -Punkte haben keine Ausdehnung und können an einem eindeutigen Ort im kD-Baum abgelegt sein. Ausgedehnte Objekte (Kreise, Kugeln, Rechtecke, Dreiecke, Hüllquader, etc) können räumlich mehrere Blatt-Zellen überlappen. Ein solches Objekt müsste dann in mehreren Blattzellen einsortiert sein. - -1. Ansatz: Auftrennung von Objekten, d.h. Objekte müssen an der Zellgrenze aufgeteilt werden. Einsortierung der Teilobjekte in passende Zellen. Geht gut für Dreiecke -2. Ansatz: Keine Unterscheidung zwischen Blattknoten und inneren Knoten. In diesem Ansatz werden Objekte soweit oben im Baum einsortiert, dass sie keine Zellgrenze schneiden. Nachteil: auch relativ kleine Objekte müssen in große Zellen einsortiert werden, wenn sie deren Unterteilungsgrenze schneiden -3. Ansatz: Loose Octree (überlappende Zellen): die Zellen des Octrees werden so vergrößert, dass sie mit ihren direkten Nachbarn in jeder Richtung um 50% überlappen. Objekte, die im einfachen Octree aufgrund ihrer Größe Grenzen schneiden würden, können im Loose Octree in den Zwischenknoten gespeichert werden. Ein Objekt mit Durchmesser bis zu $\frac{D}{2^L}$ kann auf der Ebene L abgelegt werden. Eine Suche im Loose Octree muss daher außer der direkt betroffenen Zelle auch die überlappenden direkten Nachbarn berücksichtigen. Dadurch vergrößert sich der Aufwand einer Suche um einen konstantne Faktor. Beachte: Die asymptotosche Komplexität (O-Notation) ist dadurch nicht beeinflusst. - -%\section{Rastergrafik -%\subsection{ Rasterkonversion grafischer Objekte -Algorithmus zum Zeichnen einer Strecke:\\ -Endpunktkoordinaten sind nach Projektion in die Bildebene passend auf die Fensterkoordinaten skaliert und auf ganzzahlige Werte (Pixelkoordinaten) gerundet. - -%\subsection{ Midpoint Algorithmus -- von J. Bresenham 1965 bei IBM entwickelt -- Grundidee: Effizient durch Verwendung von Ganzzahlen, Vermeiden von Multiplikation/Division sowie Nutzung einer inkrementellen Arbeitsweise - -Die Linie geht zwischen den Endpunkten nicht durch ganzzahlige Gitterpunkte. Da nur ganzzahlige Pixel-Koordinaten gesetzt werden können müssten auch zwischenpunkte zuerst genau berechnet werden und dann auf ganzzahlige Pixelwerte gerundet werden. Dies ist unzuverlässig und ineffizient. Zur Herleitung des effizienten Bresenham-Algorithmus führen wir den Mittelpunkt M als Referenzpunkt ein. Fernser seinen der jeweils aktuellen Punkt P, der rechts von im liegende E (east) und der rechts oben liegende NE north-east) benannt. -- die Linie wird als Funktion $y=f(x)$ repräsentiert: $y=\frac{\delta y}{\delta x}*x+B$ -- in implizierter Form: $d: F(x,y)=\delta y*x-\delta x*y+B*\delta x = 0$ -- für Punkte aud der Linie wird $F(x,y)=0$ -- für Punkte unterhalb der Linie wird $F(x,y)>0$ -- für Punkte oberhalb der Linie wird $F(x,y)<0$ - -Herleitung mit Einschränkung:\\ -Steigung der Linie m ($1 < m < 1$), Mittelpunkt M = Punkt vertikal zwischen zwei möglichen Pixeln E und NE. Ausgehend von bereits gesetzten Pixel P auf der Linie für den nächsten Mittelpunkt M. Für gefundenen Mittelpunkt, berechne die Distanzfunktion d. Daraus Kriterium zur Wahl des nächsten Pixels: Falls $F(x_p + 1, y_p+\frac{1}{2})>0$ wird das nächste Pixel NE, andernfalls E. - -Insgesamt acht verschiedene Fälle: -1. Oktant($\delta y < \delta x$) -2. Oktant($\delta y > \delta x$) -3. Oktant($\frac{\delta y}{\delta x}< 0$) -4. Oktant($\frac{\delta y}{\delta x}< -1$) -5. -8. Oktant($\delta x < 0$) - -%\subsection{ Anti Aliasing -Effekte der Rasterisierung: Aliasing -- Treffenstufeneffekt bei gerasterten Linien -- Regelmäßigkeiten werden verstärkt vom Auge wahrgenommen - -Das Auflösungsvermögen des Auges für Punkte sei e. Strukturen wie Linien (bestehend aus vielen Punkten) werden durch Mittelwertbildung (Fitting) vom auge viel genauer als e lokalisiert. Eine Stufe wird umso eher erkannt, jelänger die angrenzenden Segmente sind. - -%\paragraph{Grundlagen -Grundidee des Anti-Aliasing -1. Original der Linie -2. Statt der Linie wird ein Rechteck mit der Breite von einem Pixel betrachtet -3. Graustufen der darunter liegenden Pixelflächen entsprechen dem jeweiligen Überdekckungsgrad - -Praktische Umsetzung mit vereinfachtem/effizienterem Algorithmus -1. Rasterkonvertierung der Linie bei doppelter örtlicher Auflösung (Supersampling) -2. Replizieren der Linie (vertikal und/oder horizontal) um Linienbreite näherungsweise zu erhalten -3. Bestimmmung des Überdeckungsgrades pro Pixel in der ursprünglichen Auflösung (Downsampling) -4. Bestimmung des Farbwertes entsprechend des Überdeckungsgrades - -Problem: -- Ausgabe von Linien/Polygonen auf Rastergeräten muss auf vorgegebenem Raster erfolgen -- Farbvariation ist zwar möglich, Farbberechnung muss aber effizient erfolgen - -Ohne Antialiasing: -- es erfolgt ein einfacher Test über die Pixelkoordinate -- verwendet Farbe in der Pixelmitte - -Ideales Antialiasing: Hat wegen der beliebig komplexen Geometrie allgemein einen sehr/zu hohen Aufwand! - -Ansatz für eine "reale Lösung" -- eine ideale Berechnung von Farbwerten nach dem Überdeckungsgrad ist allgemein beliebig aufwendig und daher praktisch irrelevant -- Gesucht werden Ansätze mit gut abschätzbarem/konstanten Aufwand -- "reales" Antialiasing beruht in der Regel auf der Verwendung von mehreren Samples pro Pixel, d.h. Berechnung dieser n Samples statt nur einem (typisch: n-facher Aufwand) - -%\paragraph{Supersampling + Downsampling -Beim Supersampling-Ansatz wird die Graphik zunächst in höherer Auflösung gerendert (z.B. 4-fach), und dann aus den Samples ein Farbwert gemittelt (z.B. per arithmetischem Mittel). -Wie wirksam ist das Antialiasing bei 4x-Supersampling -- Ohne Anti-Aliasing kommt pro Pixel genau eine Sampleposition zum Zuge. Das Pixel wird demnach gefärbt oder nicht gefärbt: Das sind zwei mögliche Stufen. -- Bei vier Subpixeln können minimal 0 und maximal 4 Subpixel im (Makro-)Pixel gesetzt sein, d.h. es sind Intensitäten von 0%, 25%, 50%, 75% oder 100% möglich (nur 5 Abstufungen)! -- Der Zusammenhang ist einfach: Es gibt immer eine Abstufung mehr als Subpixel pro Pixel. -- Beim idealen Antialiasing entsprechend Flächenbedeckungsgrad gibt es "beliebig" viele Abstufungen (aus Aufwandsgründen aber praktisch nicht relevant). -- Gibt es eine Formabhängigkeit? Ja, z.B. bei 45° gibt es z.B. nur eine Zwischenstufe, und zwar je nach Phasenlage mit 25% oder 75% → Kante "pumpt" bei Objektbewegung. - -%\paragraph{Supersampling + Rotated Grids -Minderung der Formabhängigkeit → Supersampling mit Rotated Grids -- Kleine Winkel zu den Achsen führen zu langen "Stufen" der digitalen Polygonkante -- Bessere Verhältnisse der Grauabstufung ergeben sich für flache Winkel, wenn statt des "ordered grid" ein "rotated grid" für das Supersampling verwendet wird. -- Rotated grids sind dafür bei anderen Winkeln etwas schlechter als das ordered grid. Dies wird aber kaum wahrgenommen, da dort die Treppen der digitalen Geraden kürzer sind. - -Vorteile: -- Gute Grauabstufung bei sehr flachen Kanten zur Zeilen- oder Spaltenrichtung. -- Optimaler Winkel liegt bei ca. 20 ◦ − 30 ◦ (z.B. arctan(0.5) ≈ 26, 6 ◦ ). -- Sehr dünne Linien (dünner als 1 Pixel) bleiben auch bei Bewegung zusammenhängend bzw. sichtbar (Vermeidung von "Line Popping"). - - -%\paragraph{Supersampling + Multisampling -Realisierung der Subpixelberechnung durch einen Superbackbuffer (Supersampling in entsprechend großem Buffer) oder mehrere Multisamplebuffer (Multisampling in mehrere Buffer der ursprünglichen Größe): -1. Superbackpuffer - - Nachteil (bei rotated grid): Anpassung der Rasterkonvertierung an verschobene Positionen erforderlich - - Vorteil: Verwendung von mehr Texturinformation (Textur wird subpixelgerecht eingetragen) -2. Multisamplebuffer - - Mehrfachrendering in normaler Größe mit leicht versetzter Geometrie (Vertexverschiebung pro Sub-Bild) - - Vorteil: keine Veränderung im Rendering - - Nachteil: nur ein Texturwert pro Makro-/Sub-Pixel - -Gezielter Ressourceneinsatz: -1. Kantenglättung: - - Effizienzsteigerung durch Beschränkung auf reine Kantenglättung möglich! - - Kanten vs. Flächen: Anzahl der Kantenpixel oft wesentlich kleiner als Anzahl der Flächenpixel - - Aliasing bei Kanten/Mustern in Texturen schon beim Auslesen der Werte aus der Pixeltextur unterdrückbar - - Kantenpixel bekannt als: separate Linien oder Berandung von Polygonen/Dreiecken -2. adaptives Samplen: - - statt feste Anzahl von Samples kann die Anzahl nach dem Bedarf gesteuert werden - -%\paragraph{Quincunx Verfahren -Quincunx → Überfilterung - -Ausgangspunkt ist das 2x Multisampling mit rotated grid! Entsprechend dem Grundprinzip des Anti-Aliasings sollen Aliasingartefakte durch Erzeugung höher aufgelöster Information reduziert werden. Bei dem vorausgesetzten Muster ist der Informationszuwachs durch die doppelte Anzahl von Samples gekennzeichnet, egal wie ausgewertet wird! - -Quincunx-Verfahren: -- Information für die Kantenglättung beruht nach wie vor auf 2 Subpixeln -- Entspricht einer zusätzlichen Tiefpass-Überfilterung. Durch die Unschärfe sehen Polygonkanten glatter aus. -- Harte Kanten sind gar nicht mehr möglich, dadurch wird auch "Zappeln" an Polygonrändern reduziert. -- Aber Nachteil: Texturinformation, die nur zu 2 Subpixeln gehört, wird verschmiert ! - -%\paragraph{Pseudozufälliges Supersampling -Kombinationen und Pseudozufälliges Supersampling: -- Grundsätzlich ist die Kombination von Supersampling, Multisampling und Quincunx möglich und einige Graphikkarten unterstützen solche Überlegungen in jeweils festgelegten Grenzen (ordered oder rotated grid, gemischtes Sampling, Downsampling-Ansatz). Der Gewinn hält sich bisher in Grenzen, bei unqualifiziertem Mix ergeben sich eher Nachteile. -- Bei Überwindung der für Füllrate und Bandbreite gegebenen Grenzen überwiegen die Vorteile des Supersamplings. -- Ordered grid und rotated grid weisen bei bestimmten Strukturklassen Vor- und Nachteile auf. Die verbleibenden Artefakte wiederholen sich bei großen Flächen, so dass derartige Muster vom Menschen oft als störend empfunden werden. → aus diesen und ähnlichen Überlegungen → Ansätze für die Weiterentwicklung: - - pseudozufällige Auswahl von Abtastmustern für das Supersampling - - nachträgliche Abminderung regelmäßiger Strukturen durch vorsichtiges Verrauschen (Rauschfilter) - - entfernungsabhängiges Antialiasing - -pseudozufällig: -- Samples können nur an n vordefinierten Positionen stattfinden (Sample-Positionsmuster). -- Je nach Methode werden daraus m Positionen für das Samplen zufällig ausgewählt (beachte: m < n) -- Anzahl der Muster als kombinatorisches Problem: m aus n (ohne Wiederholungen) - -%\paragraph{abschließende Betrachtung zum Downsampling: -Beim Anti-Aliasing zur Glättung von Polygonkanten kommt für das Downsampling die Mittelwertbildung in Frage (lineare Filterung (2x – AA), bilineare Filterung (4x – AA)), gleichgültig ob ordered oder rotated grid. Beim pseudozufälligen Supersampling ist entsprechend der "frei gewählten" Positionen der "Subpixel" zu modifizieren (z.B. Gewichte nach Abstand der Abfragepositionen zur Makropixelposition). - - -%\subsection{ Polygonfüllalgorithmus -Ansatz: -- finde die Pixel innerhalb des Polygons -- weise ihnen Farbe zu -- dabei zeilenweises Vorgehen, pro Rasterlinie: -- für jede Polygonkante: - - schneide die Polygonkante mit der aktuellen Bildzeile (→ $x_s$ ) - - füge Schnittpunkt $x_s$ in eine Liste ein -- sortiere Schnittpunkte der aktuellen Bildzeile in x-Richtung -- Paritätsregel: fülle die Pixel jeweils zwischen ungeradem und nächstem geraden Schnittpunkt (Pixel zwischen geraden und ungeraden Schnittpunkten aber nicht!) - -Beachte: Die Schnittpunkte in floating point zu berechnen und zu runden ist ineffizient. Wir suchen, ähnlich wie beim Bresenham-Algorithmus, einen inkrementellen Ansatz mit Ganzzahl-Arithmetik. - -Allgemeinere Sicht auf die Füll- bzw. Auswahlstrategie: Ein Pixel wird mit der Farbe des Polygons gefüllt, das sich rechts von ihm befindet. Sollte dort eine Kante sein, so wird die Farbe des oberen Polygons verwendet. -Grundsätzlich könnten beliebige Richtungen als Referenzrichtung zur Farbbestimmung gewählt werden. Dann müssten die zuvor besprochenen Regeln oder der gesamte Algorithmus entsprechend angepasst werden. - -Effiziente Ermittlung der Schnittpunkte von Polygonkante und Rasterzeile: -- Vorbetrachtungen: - - Polygonkanten werden stets von unten nach oben bearbeitet - - horizontale Polygonkanten müssen nicht bearbeitet werden (geschieht in Scanline) → im Algorithmus stets m ungleich 0 - - $d_y = y_1 - y_0$ ist stets positiv (auch nie 0) - - $d_x = x_1 - x_0$ kann positiv und negativ sein - - damit können 4 Bereiche unterschieden werden -- Idee - - Berechnung von x bzw y: $y=y_0+m(x-x_0)$,$y=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0)$,$x=x_0+\frac{1}{m}(y-y_0)$, $x=x_0+\frac{x_1-x_0}{y_1-y_0}(y-y_0)$ - - Zwar sind die x- bzw. y-Werte immer noch nicht ganzzahlig, jedoch können sie als rationale Zahlen explizit mit Zähler und Nenner repräsentiert werden. - - Die Rundung (nächstes x oder y erreicht?) kann inkrementell ermittelt werden. - - Die Rundungsregel für Bruchwerte hängt davon ab, ob es eine linke oder rechte Kante ist. Links wird z.B. aufgerundet (Pixel ist auf oder rechts v. der Kante). - - -Edge-Tabelle: -- Verkettete Liste (oder Array, siehe unten) für die nicht horizontalen Kanten. -- Sortierung nach der Scan-Line, wo die Kanten beginnen (unteres Ende, $y_0$ ). -- Innerhalb der Scan-Line wiederum Liste (nach $x_0$-Werten sortiert). Je nach Implementierung werden z.B. $x_0 , y_1$ , sowie Zähler und Nenner gespeichert. - -Active-Edge-Tabelle: -- Die AET speichert alle Kanten, die die gegenwärtige Scan-Linie schneiden. -- Die Liste hat die gleiche Struktur wie eine Zeile der ET. -- Die Kanten werden gelöscht, wenn das obere Ende der Kante erreicht ist. - -Bemerkung zu Scan Convert Polygon: -1. Es existiert immer eine gerade Anzahl Kanten. Bei konvexen Polygonen sind immer null oder zwei Kanten in der AET. Die Sortierung ist dadurch trivial bzw. entfällt bei konvexen Polygonen. Bei vielen Grafikbibliotheken (z.B. OpenGL) beschränkt man sich auf konvexe Polygone. Nichtkonvexe Polygone müssen daher vorher in konvexe Komponenten zerlegt werden. Dafür ist das Füllen dieser Polygone danach effizienter. -2. Dieser Teil entspricht einem Schleifendurchlauf der Prozedur EdgeScan. Die Unterscheidung zwischen linker und rechter Kante wird beim Auffüllen der Pixel gemacht. - -Bemerkungen zur Effizienz:\\ -Der Polygonfüllalgorithmus ist zentraler Bestandteil jeder Grafikbibliothek für Rastergrafik. Für Echtzeitanwendungen ist Effizienz essentiell. Ein Polygon belegt -meistens viel mehr Pixel als es Eckpunkte bzw. Kanten besitzt. Deshalb sind effiziente per-Pixel-Operationen besonders wichtig. Der Rechenaufwand sollte folglich möglichst vermieden werden (mit fallender Priorität): -- pro Pixel (Annahme: sehr häufig auszuführen, deshalb möglichst effizient) -- pro Rasterzeile -- pro Kante (hier sollte möglichst viel vorberechnet werden, um pro Rasterzeile bzw. Pixel Rechenzeit zu sparen) -Neben der reinen Rasterisierung des Polygons existieren Erweiterungen des inkrementellen Ansatzes für effiziente Berechnungen in der 3D-Grafik, z.B.: -- Füllen des Z-Buffers (Tiefenwertberechnung) -- lineare Interpolation beim Gouraud Shading (Farbwertberechnungen) - -%\paragraph{Füllmuster -Füllen eines Polygons mit einem Pattern statt mit einem konstanten Farbwert -- benutze dazu BITMAPs: - - 2-dimensionales Array - - besteht aus M Spalten und N Zeilen - - BITMAP = ARRAY [0 · · · M − 1, 0 · · · N − 1] - -Anwendung des Backsteinmusters bei einem Polygon: -```cpp -drawPoly(Polygon poly, Pattern pat){ - foreach pixelPosition x, y in poly - poly.set(x, y, pat[x mod pat.width, y mod pat.height]); -} -``` - -%\paragraph{Dithering -Grundidee: Ersetzen "genauer" Farbwerte durch grobe Quantisierung -- gegeben sei Tabelle (z.B. Lookup-Table) von im Output zulässigen Farben -- Durchlaufen aller Pixel (mit genauen Werten) beginnend links oben -- pro Pixel P die beste Ersetzung in Tabelle finden + setzen -- verursachten Fehler ∆ jeweils nach Schema auf unbearbeitete Nachbarpixel in der (noch) genauen Repräsentation verteilen - -bei kleinen Bildern mit hoher Auflösung ist Dithering kaum wahrnehmbar - -Dithering vs. Anti-Aliasing:\\ Anti-Aliasing und Dithering sind komplementär zueinander: -- Anti-Aliasing erhöht die empfundene räumlich Auflösung durch Anwendung von Zwischenwerten in der Grau-, bzw. Farbabstufung -- Dithering erhöht die Farbauflösung (verringert die empfundene Farbquantisierung) durch das Verteilen des Quantisierungsfehlers auf mehrere Pixel → Verringerung der räumlichen Auflösung. -- Beispiele zur Anwendung von Dithering: - - verlustbehaftete Bildkompression (z.B. GIF) - - Drucker (Halbtonverfahren) – benötigt eine feine Auflösung des Druckrasters - - -%\section{Farbräume -%\subsection{ Motivation -Wie (und wie gut) lässt sich der visuelle Eindruck der physischen Realität durch eine Bildanzeige technisch reproduzieren? Bzw durch Computergrafik simulieren? - -Ziel realistische Darstellung von Bildern: -- möglichst genaue Reproduktion von Farben und Helligkeitswerten (auf der Bildfläche) -- Ziel existiere schon bevor es Computergrafik gab (Photorealistische Malereien) - -Ziel der Computergrafik: -- die technische Realisierung eines digitalen Bildes mit Hilfe des Computers aufeinem Bildschirm oder Druck, -- dazu Herleitung einer systematischen Repräsentation des Bildes als mathematisches Modell, bzw in einer Datenstruktur sowie ihre physische Reproduktion - -%\subsection{ Farbwahrnehmung -Verschiedene Aspekte zum Verständnis des menschlichen visuellen Systems (Farbe, Helligkeit, Bild,...) -- Phänonmenologische Betrachtung: Hell- und Farbempfinden als Sinneseindruck beschreiben. Einiges kann dadurch bereits qualitativ erschlossen werden -- Phisiologie des menschlichen visuellen Systems: (Rezeptoren des Auges und neuronale Verschaltung) Dies hilft beim Verstehen der Wahrnehmung der physischen Realität und der Herleitung von exakten Farbraummodellen -- Physik: Licht als elektromagnetische Strahlung -- -%\paragraph{Phänomenologisch -- Tageslicht kann als weiß bzw grau mit unterschiedlichen Helligkeiten, jedoch unbunt (farblos) empfunden werden -- Abwesenheit von Licht wird als schwarz empfunden (zB Nachthimmel) -- Regenbogen wird als bunt mit verschiedenen Farbtönen empfunden: Rot, Orange, Gelb, Grün, Cyan, Blau, Violett,... - - -%\paragraph{Farbton -- Zwischen den grob unterscheidbaren Farbtönen des Regenbogens lassen sich zwischenstufen orten, welche eine praktisch stufenlose Farbpalette ergeben -- direkt nebeneinanderliegende Farben im Farbspektrum werden als ähnlich empfunden -- wieder andere Farben werden als sehr unterschiedlich empfunden -- mit dieser Beobachtung lassen sich Farbwerte ordnen (Dimensionen des Farbtons als eine der Dimensionen zur Beschreibung von Farbwerten) -- All diese Farben ist jedoch gemein, dass sie als sehr bunt empfunden werden (voll gesättigte Farben im Gegensatz zu Grautönen) - -%\paragraph{Farbsättigung -- Zwischen bunten Farben und Grau lassen sich Zwischenstufen finden -- Pastelltöne sind zwar weniger bunt aber nicht völlig farblos (Farbwerte sind noch unterscheidbar) -- Grauton (keine Farbwerte unterscheidbar) -- zu jedem einzelnen bunten Farbton können Abstufungen von Pastelltönen bis zum gänzlich unbunten Grau zugeordnet werden - - diese Abstufung nennen wir Sättigung der Farbe - - Links maximal gesättigte Farbe, rechts völlig ungesättigte Farbe (grau) -- In jeder Zeile wird der gesättigte Farbton als nicht prinzipiell anders als die zugehörige Pastellfarbe empfunden (aber weniger bunt) nur weniger gesättigt -- -%\paragraph{Helligkeitsstufen -- Zu jedem Farbton (gesättigt oder nicht) können unterschiedliche Helligkeitsabstufungen bis zum tiefen Schwarz zugeordnet werden - - links maximale Helligkeit, rechts dunkelster Wert (schwarz) - - in jeder Zeile werden die hellen Farbtöne als nicht prinzipiell anders als die zugehörigen dunkleren Farbtöne empfunden - - im schwarzen sind ebenfalls keine Farbtöne mehr unterscheidbar - -%\paragraph{Zusammenfassung -damit haben wir phänomenologisch drei unabhängige Richtungen identifiziert, die wir den Farbeindrücken zuordnen können: -- Farbton (Hue) -- Farbsättigung (Saturation) -- Helligkeit (Lightness) - -%\subsection{ Das Modell der Farben -> Definition DIN 5033: Farbe ist die Empfindung eines dem Auge strukturlos erscheinenden Teils eines Gesichtsfeldes, durch die sich dieser Teil bei einäugiger Beobachtung mit unbewegtem Auge von einem gleichzeitig gesehenem, ebenfalls strukturlos angrenzendem bezirk allein unterscheidet. -> Farbe (in unbunter Umgebung) ist durch Helligkeit, Buntton und Sättigung eindeutig bestimmt. Dieses oder ein ähnliches dreidimensionales (3D) Modell ist für das Verständnis der Farbe erforderlich - - -%\paragraph{HSL Farbraum -bzw HSB, HSV, HSI - -Mit den gewonnen Erkenntnissen wir der HSL Farbraum definiert: -- Farbton: **H**ue -- Sättigung: **S**aturation -- Helligkeit: **L**ightness/**B**rightness/**V**alue/**I**ntensity -Da sich die Dimension des Farbtons periodisch wiederholt wird das System oft als Winkelkoordinate eines Polarkooridnaten-Systems in der HS-Ebene, bzw dreidimensional als Zylinderkoordinaten HSl darstellt. - -Darstellungsformen: Die Darstellungsform des HSL Farbraums ist nicht fest vorgeschrieben. Eine Darstellung als (Doppel)-Kegel oder sechseitige (Doppel-) Pyramide ist ebenso möglich. - -Der HSl Farbraum entspricht zumindest grob unserer Farbwahrnehmung. Daher eignet er sich zur intuitiven und qualitativen Einstellung von Farben in Illustrationsgrafiken -- Relative Skala 0..255 -- Quantisierbarkeit der Farben und Helligkeit z.B. beruhend auf physiologischen Messungen -- Bezug zur Physik des Lichtes (Energie, Spektrum) - -%\paragraph{RGB Farbraum -> Hypothese, dass Farbsehen auf drei Arten von Sinneszellen beruht (rot, grün, blau) ~ T. Young, 1807 - -> ein und diesselbe Farbwahrnehmung kann durch unendlich viele unterschiedliche Farbreize erzeugt werden, Farbwahrnehmungen sind durch drei beliebige, linear unabhängige Größen darstellbar. ~ Graßmann, 1853 - -Im menschlichen Auge befinden sich Zäpfchen, welche mit unterschiedlicher Empfindlichkeit auf die verschiedenen Wellenlängen des Lichtes reagieren. Es gilt: gleicher Reiz heißt gleiche Farbwahrnehmung - -Beispiel für Reizung durch monochromatisches Licht (Laser) einer bestimmten Stärke: -- $r=0,2R(\lambda)4$ -- $y=0,5R(\lambda)+0,3G(\lambda)$ -- $g=0,2R(\lambda)+0,5G(\lambda)$ -- $b=0,02B(\lambda)$ - -Farberzeugung durch Mischung: -$$1,9r + 0,6g = 0,38R(\lambda)+0,12R(\lambda)+0,3G(\lambda)=0,5R(\lambda)+0,3G(\lambda) = y$$ - -geschichtliche/physikalische Aspekte: -- Sonnenlicht ist eine Mischung von einzelnen Farben -- Korpuskular- bzw Emissiontheorie -- Spektralfarben sind objektive Eigenschaften des Lichtes -- Prisma spaltet das weiße (Sonnen-) Licht in Spektralfarben -- durch Sammellinse lässt sich aus dem Spektrum wieder weißes Licht erzeugen -- kammartige Ausblendung führt zu bunten Mischfarben - -Additive Farbmischung in RGB:\\ -Mit den Grundfarben Rot, Grün und Blau können weitere bekannte Farben additiv gemischt werden (Rot+Blau=Magenta). Weitere Zwischenfarbtöne können durch kontinuierliches Variieren der Anteile der Grundfarben gemischt werden (alle Pastellfarben und Graustufen) - -Bestimmen der Anteile der Mischfarben:\\ -- zur Mischung beliebiger Farben verwenden wir die experimentiell bestimmten drei Empfindlichkeitskurven: R,G,B und zugehörige Lichtquellen r,g,b -- alle 3 Lichtquellen zusammen ergeben weiß wahrgenommenes Licht: r=g=b=1~weiß (muss gut abgestimmt werden -> Weißabgleich) -- wir können damit einen dreidimensionalen Farbraum (RGB-Farbraum) aufspannen -- die Lage einer monochromatischen Lichtwuelle $x(\lambda_0)$ in diesem RGB Farbraum lässt sich wie folgt berechnen: $x(\lambda_0)=p*r+\gamma*g+\beta*b$ -- Achtung: die Lösung hängt von den Wellenlängen der verwendeten Grundfarben r,g,b (Primärvalenzen) ab. Nimmt man andere Grundfarben, ergeben sich andere Werte für $p,\gamma,\beta$ -- RGB ist nicht gleich RGB! Man muss "eigentlich" immer die Wellenlängen der verwendeten Grundfarben r,g und b mit angeben! - -Innere Farbmischung: $F=p*r + \gamma*g + \beta*b$ - -Äußere Farbmischung:\\ -die gemischte Farbe Cyan wird zwar als derselbe Buntton wie die Referenzfarbe F wahrgenommen, jedoch weniger gesättigt. Um die beiden Farben gleich aussehen zu lassen wird der Referenzfarbe F etwas Rot beigemischt. Damit sind beide Farben gleich ungesättigt. Das Verfahren wird äußere Farbmischung genannt: $F=p*r + \gamma *g - \beta *b$. -Um die aus Blau und Grün gemischte Farbe Cyan voll gesättigt aussehend zu lassen, müsste Rot aus der Mischfarbe subtrahiert werden. Dies ist allerdings technisch nicht realisierbar. Durch die negative Farbvalenz wird das Modell jedoch theoretisch konsistent und es lassen sich alle Farben durch Mischen von Rot, Grün und Blau darstellen. Daraus wird ein vollstänfiges RGB-Farbmodell abgeleitet. - -Idee: -- es werden drei linear-unabhängige Größen benötigt + + \paragraph{Octree} + Jeder Knoten hat 0 oder 8 Kindknoten (8 Unterbereiche). Geometrische Objekte können in diese hierarchische Strukturen einsortiert werden, wodurch die räumliche Suche nach diesen Punkten beschleunigt wird. + + Bsp Punktsuche: Suche einen Punkt mit Koordinaten (x,y,z) im Octree. Rekursive Suche von der Wurzel. In jedem Schritt wird einer von 8 möglichen Pfaden im Teilbaum ausgewählt $\rightarrow$ Zeitaufwand Tiefe des Baumes $O(log n)$ + + \paragraph{KD Tree} + \begin{itemize} + \item mehrdimensionaler binärer Baum (k-dimensional) + \item unterteilt z.B. abwechselnd in x-,y-, und z-Richtung (deshalb binärer Baum) + \item Teilung nicht zwangsläufig mittig (wie bei Octre) $\rightarrow$ an Daten angepasst + \item jeder neue Punkt teilt den Bereich in dem er einsortiert wird; pro Hierarchiestufe stets wechsel der Teilungsrichtung + \item ein Octree lässt sich auf einen kd-Baum abbilden, beide Baumarten haben daher vergleichbare Eigenschaften + \item mit der Median-Cut Strategie: teilt Daten in zwei gleich großen Hälften + \begin{itemize} + \item Baum garantiert balanciert und Tiefe minimal + \item $O(log n)$ Verhalten garantiert + \item Probleme bei lokalen Häufungen (Cluster) + \item vollständig balanciert + \item unnötige Unterteilung weit weg vom Cluster (Artefakt) + \end{itemize} + \item Middlecut-Strategie: + \begin{itemize} + \item nicht balanciert + \item keine Unterteilung weit weg vom Cluster + \end{itemize} + \item Praxis: Kompromiss Strategie, Mischung zwischen Median und Mitte. + \end{itemize} + + \paragraph{BSP Tree} + \begin{itemize} + \item Verallgemeinerung des kd-Baums + \item Trennebenen nicht nur achsenparallel + \item Unterteilung in beliebigen Richtungen, adaptiv an Modellflächen angepasst + \item Beachte: Trennebenen die an einer Objektebene anliegen können dennoch weiter wegliegende Objekte schneiden. + \item BSP-Tree führt bei konvexen Polyedern zu entarteten Bäumen + \end{itemize} + + \paragraph*{Hüllkörper Hierarchie} + \begin{description} + \item[AABB] (Axia-Aligned-Bounding-Box) sehr einfache Abfrage (nur ein Vergleich < in jeder Koordinatenrichtung, wie bei kd-Baum) einfach zu erstellen (min, max), dafür nicht optimale Packungsdichte bei schräger Lage der Objekte + \item[OBB] (Oriented Bounding Boxes) passen sich besser der räumlichen Ausrichtungen an, lassen sich auch leicht transformieren (Rotation bei Animation). Jedoch schwieriger zu erstellen (Wahl der Richtung), komplexere Überlappungsberechnung (Transformation, Ebenengleichung). D.h. typischerweise weniger tief, weniger räumliche Abfragen dafür wesentlich mehr Berechnungsaufwand pro Rekursionsstufe. + \item[KDOP] (k-dimensional Discretly Oriented Polytopes) Polyeder mit festen vorgegebenen Richtungen (z.B. 45 Grad). Eigenschaften zwischen AABB und OBB. Bessere Raumausnützung als AABB, weniger Transformationene als OBB. + \item[BS] (Bounding Spheres) Schnelle 3D Überlappungstest (Abstand der Mittelpunkte < Summe der Radien). Langgezogene Objekte können mit mehreren Hüllkugeln (Bounding Spheres) begrenz werden um besseren Füllgrad zu erreichen. BS sind bis auf die Lage der Kugelmittelpunkte invariant gegenüber Rotation (eignen sich für Kollisionserkennung bewegter Objekte/ Echtzeit-Computer-Animation). + \item[weitere Anwendungsfälle] Kollisionserkennung in Computeranmiation. Reduktion der potenziellen Kollisionspaare durch räumliche Trennung. Beschleunigung des Echtzeitrenderings großer Datenmengen. Reduktion des Aufwands durch Culling (Weglassen) + \end{description} + + \paragraph{Ray Picking mit KD Baum} + \begin{itemize} + \item Vorverarbeitun/Abspeicherung von Objekten (Dreiecken) im kd-Baum$O(n log n)$ + \item Strahl/Objektschnitt: (als rekursive Suche im kd-Baum) + \item `treeIntersect(p,d)`: Findet Schnittpunkt des Strahls (Punkt p, Richtung d) mit den im Baum gepseicherten Dreiecken und liefert die Beschreibung des nächsten Schnittpunktes bzw t=unendlich, falls kein Schnittpunkt existiert. + \item `triangleIntersect(node,p,d)`: Findet Schnittpunkt des Strahles (Punkt p, Richtung d) mit einer Menge von Dreiecken in node + \item `subdivide(node, p, d, tmin, tmax)`: Findet rekursiv den nächstgelegenen Schnittpunkt (kleinstes t) des Strahls (p,d) mit den Dreiecken in oder unterhalb von node im Parameterbereich tmin ...tmax + \end{itemize} + + \paragraph{Aufwandsabschätzung bzgl Dreiecksanzahl} + \begin{enumerate} + \item (beinahe) konvexes Objekt (max 2 Schnitte möglich): hat die Komplexität einer räumlichen Punktsuche, also dem Aufwand zur Untersuchung einer Baumzelle (finden + dortige Dreiecke testen) $O(log n)$ + \item "Polygonnebel" (viele sehr kleine Dreiecke im Such-Volumen) + \begin{itemize} + \item Annahme: alle Zellen enthalten konstante kleine Anzahl von Dreiecken $\rightarrow$ Aufwand proportional zur Anzahl durchlaufener Baumzellen + \item Anzahl dieser Zellen ist proportional zur Länge des Strahls durchs Volumen, da der 1. Schnitt sehr wahrscheinlich mitten im Volumen oder gar nicht stattfindet $\rightarrow$ Anzahl ist proportional zur Seitenlänge des Suchvolumens + \item bei n Dreiecken im Suchvolumen ist die Anzahl t der zu untersuchenden Zellen also ca $t=O(\sqrt{n})$ $\rightarrow$ Suchaufwand pro Strahl folglich $O(\sqrt{n} log (n))$ + \end{itemize} + \end{enumerate} + + \paragraph{Aufwandsabschätzung in fps} + \begin{itemize} + \item Effektiver Zeitauwand für Raytracing (RT) + \item absoluter Gesamtaufwand zum Raytracing einer Szene ist proportional zur Anzahl der Strahlen + \item Annahme: 1 Strahl pro Pixel (keine Rekursion), typische Bildgröße sei 1 Mio Pixel, Szene haben mittlere Komplexität (1 Mio Polygone) + \item rekursives RT (Reflexion, Brechung, Schattenstrahlen etc) entsprechend mehr Strahlen, d.h. weniger Performance + \item Parallelisierung einfach möglich (z.B. da Pixel voneinander unabhängig berechenbar) $\rightarrow$ früher CPU-basiert, heute eher GPU + \item 2019 mit entsprechender Hardware: rekursives Echtzeit Raytracing möglich + \end{itemize} + + \paragraph*{Heurisitk zur Unterteilung} + \begin{itemize} + \item Surface Area Heuristic (SAH): + \begin{itemize} + \item Annahme: Strahl i, trifft Zelle j mit Wahrscheinlichkeit P(i,j), zudem sei $n_j$ die Anzahl Dreiecke in Zelle j, + \item Aufwand für Raytracing pro Zelle proportional zur Baumtiefe ( O(log n) für balancierte Bäume, wird nicht weiter betrachtet) sowie die Anzahl der dortigen Dreiecke $n_j$; beachte $n_j$ wird hier nicht als konstant angenommen $\rightarrow$ Gesamtaufwand für Strahl i sei also $\sum(P(i,j)*n_j)$ + \end{itemize} + \item Heuristik: große Zellen mit wenigen Dreiecken, senken Gesamtaufwand + \begin{itemize} + \item Schätzung: P(i,j) ist etwa proportional zur Oberfläche einer Zelle (auf großer Oberfläche treffen mehr Strahlen auf) + \item die SAH optimiert auf jeder Teilstufe im Baum das Produkt der Zellgröße mal Anzahl Dreiecke im Teilbaum. Für den kD-Baum gilt bei der Unterteilung des Bereichs D in Richtung k: $D_k = D_{k_links} + D_{k_rechts}$ + \end{itemize} + \item Bei ungleicher Verteilung der Dreiecke (z.B. Cluster) enthalten dann große Zellen wenige oder keine Dreiecke und Baum ist nicht balanciert $\rightarrow$ implizite Abtrennung des Clusters vom Rest des Baums (vgl Middle-Cut-Strategie) + \end{itemize} + + \paragraph*{Behandlung ausgedehnter Objekte} + Punkte haben keine Ausdehnung und können an einem eindeutigen Ort im kD-Baum abgelegt sein. Ausgedehnte Objekte (Kreise, Kugeln, Rechtecke, Dreiecke, Hüllquader, etc) können räumlich mehrere Blatt-Zellen überlappen. Ein solches Objekt müsste dann in mehreren Blattzellen einsortiert sein. + \begin{enumerate} + \item Auftrennung von Objekten, d.h. Objekte müssen an der Zellgrenze aufgeteilt werden. Einsortierung der Teilobjekte in passende Zellen. Geht gut für Dreiecke + \item Keine Unterscheidung zwischen Blattknoten und inneren Knoten. In diesem Ansatz werden Objekte soweit oben im Baum einsortiert, dass sie keine Zellgrenze schneiden. Nachteil: auch relativ kleine Objekte müssen in große Zellen einsortiert werden, wenn sie deren Unterteilungsgrenze schneiden + \item Loose Octree (überlappende Zellen): die Zellen des Octrees werden so vergrößert, dass sie mit ihren direkten Nachbarn in jeder Richtung um 50\% überlappen. Objekte, die im einfachen Octree aufgrund ihrer Größe Grenzen schneiden würden, können im Loose Octree in den Zwischenknoten gespeichert werden. Ein Objekt mit Durchmesser bis zu $\frac{D}{2^L}$ kann auf der Ebene L abgelegt werden. Eine Suche im Loose Octree muss daher außer der direkt betroffenen Zelle auch die überlappenden direkten Nachbarn berücksichtigen. Dadurch vergrößert sich der Aufwand einer Suche um einen konstantne Faktor. Beachte: Die asymptotosche Komplexität (O-Notation) ist dadurch nicht beeinflusst. + \end{enumerate} + + \section{Rastergrafik} + \subsection{ Rasterkonversion grafischer Objekte} + Algorithmus zum Zeichnen einer Strecke: Endpunktkoordinaten sind nach Projektion in die Bildebene passend auf die Fensterkoordinaten skaliert und auf ganzzahlige Werte (Pixelkoordinaten) gerundet. + + \subsection{ Midpoint Algorithmus} + \begin{itemize} + \item Grundidee: Effizient durch Verwendung von Ganzzahlen, Vermeiden von Multiplikation/Division sowie Nutzung einer inkrementellen Arbeitsweise + \item Die Linie geht zwischen den Endpunkten nicht durch ganzzahlige Gitterpunkte. Da nur ganzzahlige Pixel-Koordinaten gesetzt werden können müssten auch zwischenpunkte zuerst genau berechnet werden und dann auf ganzzahlige Pixelwerte gerundet werden. Dies ist unzuverlässig und ineffizient. Zur Herleitung des effizienten Bresenham-Algorithmus führen wir den Mittelpunkt M als Referenzpunkt ein. Ferner seinen der jeweils aktuellen Punkt P, der rechts von im liegende E (east) und der rechts oben liegende NE north-east) benannt. + \item die Linie wird als Funktion $y=f(x)$ repräsentiert: $y=\frac{\delta y}{\delta x}*x+B$ + \item in implizierter Form: $d: F(x,y)=\delta y*x-\delta x*y+B*\delta x = 0$ + \item für Punkte aud der Linie wird $F(x,y)=0$ + \item für Punkte unterhalb der Linie wird $F(x,y)>0$ + \item für Punkte oberhalb der Linie wird $F(x,y)<0$ + \item Herleitung mit Einschränkung: Steigung der Linie m ($1 < m < 1$), Mittelpunkt M = Punkt vertikal zwischen zwei möglichen Pixeln E und NE. Ausgehend von bereits gesetzten Pixel P auf der Linie für den nächsten Mittelpunkt M. Für gefundenen Mittelpunkt, berechne die Distanzfunktion d. Daraus Kriterium zur Wahl des nächsten Pixels: Falls $F(x_p + 1, y_p+\frac{1}{2})>0$ wird das nächste Pixel NE, andernfalls E. + \item Insgesamt acht verschiedene Fälle: + \begin{enumerate} + \item Oktant($\delta y < \delta x$) + \item Oktant($\delta y > \delta x$) + \item Oktant($\frac{\delta y}{\delta x}< 0$) + \item Oktant($\frac{\delta y}{\delta x}< -1$) + \item -8. Oktant($\delta x < 0$) + \end{enumerate} + \end{itemize} + + \subsection{Anti Aliasing} + \begin{itemize} + \item Treffenstufeneffekt bei gerasterten Linien + \item Regelmäßigkeiten werden verstärkt vom Auge wahrgenommen + \item Auflösungsvermögen des Auges für Punkte sei e. Strukturen wie Linien (aus vielen Punkten) werden durch Mittelwertbildung (Fitting) vom Auge viel genauer als e lokalisiert. Eine Stufe wird umso eher erkannt, je länger die angrenzenden Segmente sind. + \end{itemize} + + \paragraph{Grundlagen} + \begin{itemize} + \item Grundidee des Anti-Aliasing + \begin{itemize} + \item Original der Linie + \item Statt der Linie wird ein Rechteck mit der Breite von einem Pixel betrachtet + \item Graustufen der darunter liegenden Pixelflächen entsprechen dem jeweiligen Überdeckungsgrad + \end{itemize} + \item Praktische Umsetzung mit vereinfachtem/effizienterem Algorithmus + \begin{itemize} + \item Rasterkonvertierung der Linie bei doppelter örtlicher Auflösung (Supersampling) + \item Replizieren der Linie (vertikal und/oder horizontal) um Linienbreite näherungsweise zu erhalten + \item Bestimmmung des Überdeckungsgrades pro Pixel in der ursprünglichen Auflösung (Downsampling) + \item Bestimmung des Farbwertes entsprechend des Überdeckungsgrades + \end{itemize} + \item Problem: + \begin{itemize} + \item Ausgabe von Linien/Polygonen auf Rastergeräten muss auf vorgegebenem Raster erfolgen + \item Farbvariation ist zwar möglich, Farbberechnung muss aber effizient erfolgen + \end{itemize} + \item Ohne Antialiasing: + \begin{itemize} + \item es erfolgt ein einfacher Test über die Pixelkoordinate + \item verwendet Farbe in der Pixelmitte + \end{itemize} + \item Ideales Antialiasing: Hat wegen der beliebig komplexen Geometrie allgemein einen sehr/zu hohen Aufwand! + \item Ansatz für eine "reale Lösung" + \begin{itemize} + \item eine ideale Berechnung von Farbwerten nach dem Überdeckungsgrad ist allgemein beliebig aufwendig und daher praktisch irrelevant + \item Gesucht werden Ansätze mit gut abschätzbarem/konstanten Aufwand + \item "reales" Antialiasing beruht in der Regel auf der Verwendung von mehreren Samples pro Pixel, d.h. Berechnung dieser n Samples statt nur einem (typisch: n-facher Aufwand) + \end{itemize} + \end{itemize} + + \paragraph{Supersampling + Downsampling} + \begin{itemize} + \item Graphik zunächst in höherer Auflösung gerendert (z.B. 4-fach) und dann aus den Samples ein Farbwert gemittelt + \item Ohne Anti-Aliasing kommt pro Pixel genau eine Sampleposition zum Zuge. Das Pixel wird demnach gefärbt oder nicht gefärbt: Das sind zwei mögliche Stufen. + \item Bei vier Subpixeln können minimal 0 und maximal 4 Subpixel im (Makro-)Pixel gesetzt sein, d.h. es sind Intensitäten von 0\%, 25\%0, 50\%, 75\% oder 100\% möglich (nur 5 Abstufungen) + \item Es gibt immer eine Abstufung mehr als Subpixel pro Pixel + \item Beim idealen Antialiasing entsprechend Flächenbedeckungsgrad gibt es "beliebig" viele Abstufungen + \item Formabhängigkeit? Ja, z.B. bei 45° gibt es z.B. nur eine Zwischenstufe, und zwar je nach Phasenlage mit 25\% oder 75\% $\rightarrow$ Kante "pumpt" bei Objektbewegung. + \end{itemize} + \paragraph{Supersampling + Rotated Grids} + \begin{itemize} + \item Minderung der Formabhängigkeit + \item Kleine Winkel zu den Achsen führen zu langen "Stufen" der digitalen Polygonkante + \item Bessere Verhältnisse der Grauabstufung ergeben sich für flache Winkel, wenn statt des "ordered grid" ein "rotated grid" für das Supersampling verwendet wird. + \item Rotated grids sind dafür bei anderen Winkeln etwas schlechter als das ordered grid. Dies wird aber kaum wahrgenommen, da dort die Treppen der digitalen Geraden kürzer sind. + \item Gute Grauabstufung bei sehr flachen Kanten zur Zeilen- oder Spaltenrichtung. + \item Optimaler Winkel liegt bei ca. 20°-30° (z.B.$arctan(0.5) \approx 26,6°$). + \item Sehr dünne Linien bleiben auch bei Bewegung zusammenhängend/sichtbar (Vermeidung von "Line Popping") + \end{itemize} + \paragraph{Supersampling + Multisampling} + \begin{itemize} + \item Realisierung der Subpixelberechnung durch einen Superbackbuffer (großem Buffer) oder mehrere Multisamplebuffer (mehrere Buffer) + \item Superbackpuffer + \begin{itemize} + \item Nachteil (bei rotated grid): Anpassung der Rasterkonvertierung an verschobene Positionen erforderlich + \item Vorteil: Verwendung von mehr Texturinformation (Textur wird subpixelgerecht eingetragen) + \end{itemize} + \item Multisamplebuffer + \begin{itemize} + \item Mehrfachrendering in normaler Größe mit leicht versetzter Geometrie (Vertexverschiebung pro Sub-Bild) + \item Vorteil: keine Veränderung im Rendering + \item Nachteil: nur ein Texturwert pro Makro-/Sub-Pixel + \end{itemize} + \item Gezielter Ressourceneinsatz + \begin{itemize} + \item Kantenglättung + \begin{itemize} + \item Effizienzsteigerung durch Beschränkung auf reine Kantenglättung möglich + \item Anzahl der Kantenpixel oft wesentlich kleiner als Anzahl der Flächenpixel + \item Aliasing bei Kanten/Mustern in Texturen schon beim Auslesen der Werte aus der Pixeltextur unterdrückbar + \item Kantenpixel bekannt als separate Linien oder Berandung von Polygonen/Dreiecken + \end{itemize} + \item adaptives Samplen: statt feste Anzahl von Samples kann die Anzahl nach dem Bedarf gesteuert werden + \end{itemize} + \end{itemize} + + \paragraph{Quincunx Verfahren} + \begin{itemize} + \item Überfilterung + \item 2x Multisampling mit rotated grid; der Informationszuwachs ist durch die doppelte Anzahl von Samples gekennzeichnet + \item Information für die Kantenglättung beruht nach wie vor auf 2 Subpixeln + \item Entspricht einer zusätzlichen Tiefpass-Überfilterung. Durch die Unschärfe sehen Polygonkanten glatter aus. + \item Harte Kanten sind gar nicht mehr möglich, dadurch wird auch "Zappeln" an Polygonrändern reduziert + \item Aber Nachteil: Texturinformation, die nur zu 2 Subpixeln gehört, wird verschmiert! + \end{itemize} + + \paragraph{Pseudozufälliges Supersampling} + \begin{itemize} + \item Kombinationen und Pseudozufälliges Supersampling + \begin{itemize} + \item Kombination von Supersampling, Multisampling und Quincunx möglich; Gewinn hält sich in Grenzflächen + \item Bei Überwindung der für Füllrate und Bandbreite gegebenen Grenzen überwiegen die Vorteile des Supersamplings. + \item Ordered grid und rotated grid weisen bei bestimmten Strukturklassen Vor- und Nachteile auf. Die verbleibenden Artefakte wiederholen sich bei großen Flächen, so dass derartige Muster vom Menschen oft als störend empfunden werden. $\rightarrow$ aus diesen und ähnlichen Überlegungen $\rightarrow$ Ansätze für die Weiterentwicklung: + \item pseudozufällige Auswahl von Abtastmustern für das Supersampling + \item nachträgliche Abminderung regelmäßiger Strukturen durch vorsichtiges Verrauschen (Rauschfilter) + \item entfernungsabhängiges Antialiasing + \end{itemize} + \item pseudozufällig + \begin{itemize} + \item Samples können nur an n vordefinierten Positionen stattfinden (Sample-Positionsmuster) + \item Je nach Methode werden daraus m Positionen für das Samplen zufällig ausgewählt (beachte: m < n) + \item Anzahl der Muster als kombinatorisches Problem: m aus n (ohne Wiederholungen) + \end{itemize} + \end{itemize} + + \paragraph{Downsampling} + Beim Anti-Aliasing zur Glättung von Polygonkanten kommt für das Downsampling die Mittelwertbildung in Frage (lineare Filterung (2x - AA), bilineare Filterung (4x - AA)), gleichgültig ob ordered oder rotated grid. Beim pseudozufälligen Supersampling ist entsprechend der "frei gewählten" Positionen der "Subpixel" zu modifizieren (z.B. Gewichte nach Abstand der Abfragepositionen zur Makropixelposition). + + + \subsection{ Polygonfüllalgorithmus} + \begin{itemize} + \item Ansatz + \begin{itemize} + \item finde die Pixel innerhalb des Polygons + \item weise ihnen Farbe zu + \item dabei zeilenweises Vorgehen, pro Rasterlinie: + \item für jede Polygonkante: schneide die Polygonkante mit der aktuellen Bildzeile ($\rightarrow x_s$ ) + \item füge Schnittpunkt $x_s$ in eine Liste ein + \item sortiere Schnittpunkte der aktuellen Bildzeile in x-Richtung + \item Paritätsregel: fülle die Pixel jeweils zwischen ungeradem und nächstem geraden Schnittpunkt (Pixel zwischen geraden und ungeraden Schnittpunkten aber nicht!) + \end{itemize} + \item Schnittpunkte in floating point zu berechnen und zu runden ist ineffizient. Wir suchen, ähnlich wie beim Bresenham-Algorithmus, einen inkrementellen Ansatz mit Ganzzahl-Arithmetik. + \item Allgemeinere Sicht auf die Füll- bzw. Auswahlstrategie: Ein Pixel wird mit der Farbe des Polygons gefüllt, das sich rechts von ihm befindet. Sollte dort eine Kante sein, so wird die Farbe des oberen Polygons verwendet. + \item Grundsätzlich könnten beliebige Richtungen als Referenzrichtung zur Farbbestimmung gewählt werden. Dann müssten die zuvor besprochenen Regeln oder der gesamte Algorithmus entsprechend angepasst werden. + \item Effiziente Ermittlung der Schnittpunkte von Polygonkante und Rasterzeile: + \begin{itemize} + \item Polygonkanten werden stets von unten nach oben bearbeitet + \item horizontale Polygonkanten müssen nicht bearbeitet werden (geschieht in Scanline) $\rightarrow$ im Algorithmus stets m ungleich 0 + \item $d_y = y_1 - y_0$ ist stets positiv (auch nie 0) + \item $d_x = x_1 - x_0$ kann positiv und negativ sein + \item damit können 4 Bereiche unterschieden werden + \item Berechnung von x bzw y: $y=y_0+m(x-x_0)$,$y=y_0+\frac{y_1-y_0}{x_1-x_0}(x-x_0)$,$x=x_0+\frac{1}{m}(y-y_0)$, $x=x_0+\frac{x_1-x_0}{y_1-y_0}(y-y_0)$ + \item Zwar sind die x- bzw. y-Werte immer noch nicht ganzzahlig, jedoch können sie als rationale Zahlen explizit mit Zähler und Nenner repräsentiert werden. + \item Die Rundung (nächstes x oder y erreicht?) kann inkrementell ermittelt werden. + \item Die Rundungsregel für Bruchwerte hängt davon ab, ob es eine linke oder rechte Kante ist. Links wird z.B. aufgerundet (Pixel ist auf oder rechts v. der Kante). + \end{itemize} + \item Edge-Tabelle: + \begin{itemize} + \item Verkettete Liste (oder Array, siehe unten) für die nicht horizontalen Kanten. + \item Sortierung nach der Scan-Line, wo die Kanten beginnen (unteres Ende, $y_0$ ). + \item Innerhalb der Scan-Line wiederum Liste (nach $x_0$-Werten sortiert). Je nach Implementierung werden z.B. $x_0 , y_1$ , sowie Zähler und Nenner gespeichert. + \end{itemize} + \item Active-Edge-Tabelle: + \begin{itemize} + \item Die AET speichert alle Kanten, die die gegenwärtige Scan-Linie schneiden. + \item Die Liste hat die gleiche Struktur wie eine Zeile der ET. + \item Die Kanten werden gelöscht, wenn das obere Ende der Kante erreicht ist. + \end{itemize} + \item Bemerkung zu Scan Convert Polygon: + \begin{itemize} + \item Es existiert immer eine gerade Anzahl Kanten. Bei konvexen Polygonen sind immer null oder zwei Kanten in der AET. Die Sortierung ist dadurch trivial bzw. entfällt bei konvexen Polygonen. Bei vielen Grafikbibliotheken (z.B. OpenGL) beschränkt man sich auf konvexe Polygone. Nichtkonvexe Polygone müssen daher vorher in konvexe Komponenten zerlegt werden. Dafür ist das Füllen dieser Polygone danach effizienter. + \item Dieser Teil entspricht einem Schleifendurchlauf der Prozedur EdgeScan. Die Unterscheidung zwischen linker und rechter Kante wird beim Auffüllen der Pixel gemacht. + \end{itemize} + \item Bemerkungen zur Effizienz + \item \begin{itemize} + \item Der Polygonfüllalgorithmus ist zentraler Bestandteil jeder Grafikbibliothek für Rastergrafik. Für Echtzeitanwendungen ist Effizienz essentiell. Ein Polygon belegt + meistens viel mehr Pixel als es Eckpunkte bzw. Kanten besitzt. Deshalb sind effiziente per-Pixel-Operationen besonders wichtig. Der Rechenaufwand sollte folglich möglichst vermieden werden (mit fallender Priorität): + \item pro Pixel (Annahme: sehr häufig auszuführen, deshalb möglichst effizient) + \item pro Rasterzeile + \item pro Kante (hier sollte möglichst viel vorberechnet werden, um pro Rasterzeile bzw. Pixel Rechenzeit zu sparen) + \item Neben der reinen Rasterisierung des Polygons existieren Erweiterungen des inkrementellen Ansatzes für effiziente Berechnungen in der 3D-Grafik, z.B.: + \item Füllen des Z-Buffers (Tiefenwertberechnung) + \item lineare Interpolation beim Gouraud Shading (Farbwertberechnungen) + \end{itemize} + \end{itemize} + + \paragraph{Füllmuster} + \begin{itemize} + \item Füllen eines Polygons mit einem Pattern statt mit einem konstanten Farbwert + \item benutze dazu BITMAPs + \item 2-dimensionales Array + \item besteht aus M Spalten und N Zeilen + \item BITMAP = ARRAY [0 · · · M - 1, 0 · · · N - 1] + \end{itemize} + \begin{lstlisting} + drawPoly(Polygon poly, Pattern pat){ + foreach pixelPosition x, y in poly + poly.set(x, y, pat[x mod pat.width, y mod pat.height]); + } + \end{lstlisting} + + \paragraph{Dithering} + \begin{itemize} + \item Grundidee: Ersetzen "genauer" Farbwerte durch grobe Quantisierung + \item gegeben sei Tabelle von im Output zulässigen Farben + \item Durchlaufen aller Pixel (mit genauen Werten) beginnend links oben + \item pro Pixel P die beste Ersetzung in Tabelle finden + setzen + \item verursachten Fehler $\delta$ jeweils nach Schema auf unbearbeitete Nachbarpixel in der (noch) genauen Repräsentation verteilen + \item bei kleinen Bildern mit hoher Auflösung ist Dithering kaum wahrnehmbar + \end{itemize} + Dithering vs. Anti-Aliasing: + \begin{itemize} + \item sind komplementär zueinander + \item Anti-Aliasing erhöht die empfundene räumlich Auflösung durch Anwendung von Zwischenwerten in der Grau-, bzw. Farbabstufung + \item Dithering erhöht die Farbauflösung (verringert die empfundene Farbquantisierung) durch das Verteilen des Quantisierungsfehlers auf mehrere Pixel $\rightarrow$ Verringerung der räumlichen Auflösung + \end{itemize} + + \section{Farbräume} + \subsection{ Farbwahrnehmung - Phänonmenologie} + \begin{itemize} + \item Hell- und Farbempfinden als Sinneseindruck beschreiben. Einiges kann dadurch bereits qualitativ erschlossen werden + \item Tageslicht kann als weiß bzw grau mit unterschiedlichen Helligkeiten, jedoch unbunt (farblos) empfunden werden + \item Abwesenheit von Licht wird als schwarz empfunden + \item Regenbogen wird als bunt mit verschiedenen Farbtönen empfunden + \end{itemize} + \begin{description} + \item[Farbton (Hue)] + \begin{itemize} + \item Zwischen den grob unterscheidbaren Farbtönen des Regenbogens lassen sich zwischenstufen orten, welche eine praktisch stufenlose Farbpalette ergeben + \item direkt nebeneinanderliegende Farben im Farbspektrum werden als ähnlich empfunden + \item wieder andere Farben werden als sehr unterschiedlich empfunden + \item mit dieser Beobachtung lassen sich Farbwerte ordnen (Dimensionen des Farbtons als eine der Dimensionen zur Beschreibung von Farbwerten) + \item All diese Farben ist jedoch gemein, dass sie als sehr bunt empfunden werden (voll gesättigte Farben im Gegensatz zu Grautönen) + \end{itemize} + \item[Farbsättigung (Saturation)] + \begin{itemize} + \item Zwischen bunten Farben und Grau lassen sich Zwischenstufen finden + \item Pastelltöne sind zwar weniger bunt aber nicht völlig farblos (Farbwerte sind noch unterscheidbar) + \item Grauton (keine Farbwerte unterscheidbar) + \item zu jedem einzelnen bunten Farbton können Abstufungen von Pastelltönen bis zum gänzlich unbunten Grau zugeordnet werden + \item diese Abstufung nennen wir Sättigung der Farbe + \item Links maximal gesättigte Farbe, rechts völlig ungesättigte Farbe (grau) + \item In jeder Zeile wird der gesättigte Farbton als nicht prinzipiell anders als die zugehörige Pastellfarbe empfunden (aber weniger bunt) nur weniger gesättigt + \end{itemize} + \item[Helligkeitsstufen (Lightness)] + \begin{itemize} + \item Zu jedem Farbton (gesättigt oder nicht) können unterschiedliche Helligkeitsabstufungen bis zum tiefen Schwarz zugeordnet werden + \item links maximale Helligkeit, rechts dunkelster Wert (schwarz) + \item in jeder Zeile werden die hellen Farbtöne als nicht prinzipiell anders als die zugehörigen dunkleren Farbtöne empfunden + \item im schwarzen sind ebenfalls keine Farbtöne mehr unterscheidbar + \end{itemize} + \end{description} + + \subsection{Modell der Farben} + \paragraph{HSL Farbraum (bzw HSB, HSV, HSI)} + \begin{itemize} + \item Farbton: Hue + \item Sättigung: Saturation + \item Helligkeit: Lightness/Brightness/Value/Intensity + \item Da sich die Dimension des Farbtons periodisch wiederholt wird das System oft als Winkelkoordinate eines Polarkooridnaten-Systems in der HS-Ebene, bzw dreidimensional als Zylinderkoordinaten HSl darstellt. + \item Darstellungsformen: Die Darstellungsform des HSL Farbraums ist nicht fest vorgeschrieben. Eine Darstellung als (Doppel)-Kegel oder sechseitige (Doppel-) Pyramide ist ebenso möglich. + \item Der HSl Farbraum entspricht zumindest grob unserer Farbwahrnehmung. Daher eignet er sich zur intuitiven und qualitativen Einstellung von Farben in Illustrationsgrafiken + \item Relative Skala 0-255 + \item Quantisierbarkeit der Farben und Helligkeit z.B. beruhend auf physiologischen Messungen + \item Bezug zur Physik des Lichtes (Energie, Spektrum) + \end{itemize} + \paragraph{RGB Farbraum} + \begin{itemize} + \item Hypothese, dass Farbsehen auf drei Arten von Sinneszellen beruht (rot, grün, blau) (Young) + \item Farbwahrnehmungen durch drei beliebige, linear unabhängige Größen darstellbar (Graßmann) + \item Im Auge sind Zäpfchen, welche mit unterschiedlicher Empfindlichkeit auf die verschiedenen Wellenlängen des Lichtes reagieren. Es gilt: gleicher Reiz heißt gleiche Farbwahrnehmung + \item Mit Grundfarben Rot, Grün und Blau können weitere Farben additiv gemischt werden + \item Bestimmen der Anteile der Mischfarben + \begin{itemize} + \item drei Empfindlichkeitskurven: R,G,B und zugehörige Lichtquellen r,g,b + \item alle 3 Lichtquellen zusammen ergeben weiß wahrgenommenes Licht: $r=g=b=1~$weiß + \item damit dreidimensionalen Farbraum (RGB-Farbraum) aufspannen + \item die Lage einer monochromatischen Lichtwelle: $x(\lambda_0)=p*r+\gamma*g+\beta*b$ + \item Achtung: hängt von Wellenlängen der verwendeten Grundfarben r,g,b (Primärvalenzen) ab. + \end{itemize} + \end{itemize} + + Beispiel für Reizung durch monochromatisches Licht (Laser) einer bestimmten Stärke: + - $r=0,2R(\lambda)4$ + - $y=0,5R(\lambda)+0,3G(\lambda)$ + - $g=0,2R(\lambda)+0,5G(\lambda)$ + - $b=0,02B(\lambda)$ + + Farberzeugung durch Mischung: + $$1,9r + 0,6g = 0,38R(\lambda)+0,12R(\lambda)+0,3G(\lambda)=0,5R(\lambda)+0,3G(\lambda) = y$$ + + + Innere Farbmischung: $F=p*r + \gamma*g + \beta*b$ + + Äußere Farbmischung:\\ + die gemischte Farbe Cyan wird zwar als derselbe Buntton wie die Referenzfarbe F wahrgenommen, jedoch weniger gesättigt. Um die beiden Farben gleich aussehen zu lassen wird der Referenzfarbe F etwas Rot beigemischt. Damit sind beide Farben gleich ungesättigt. Das Verfahren wird äußere Farbmischung genannt: $F=p*r + \gamma *g - \beta *b$. + Um die aus Blau und Grün gemischte Farbe Cyan voll gesättigt aussehend zu lassen, müsste Rot aus der Mischfarbe subtrahiert werden. Dies ist allerdings technisch nicht realisierbar. Durch die negative Farbvalenz wird das Modell jedoch theoretisch konsistent und es lassen sich alle Farben durch Mischen von Rot, Grün und Blau darstellen. Daraus wird ein vollstänfiges RGB-Farbmodell abgeleitet. + + Idee: + - es werden drei linear-unabhängige Größen benötigt - zur beschreibung der Farbempfindung - zur (technischen) Reproduktion der Farbempfindung -- zunächst werden folgende Werte gewertet + - zunächst werden folgende Werte gewertet - die additive Mischung als Reproduktionsmethode - drei Primärfarben Rot, Grün, Blau -- drei linear unabhängige Größen spannen stets einen 3D Raum auf + - drei linear unabhängige Größen spannen stets einen 3D Raum auf - die RGB Werte werden den drei ortogonalen Achsen dieses Raumes zugeordnet - -Darstellung des RGB Farbraums: -- alle mit drei Farblichtquellen technisch (additiv) erzeugbaren Farben liegen innerhalb eines Würfels -- Im Koordinatenursprung befindet sich Schwarz, diagonal gegenüber weiß. -- auf der Raumdiagonalen liegen dazwischen die Graustufen - -Bei entsprechender Normierung liegen die vom RGB Farbsynthesesystem erzeugbare Farben im Einheitswürfel. Zunächst wird der Begriff Intensität eingeführt: $I=\frac{R+G+B}{3}$. Der Ausschnitt aus der Ebene konstanter Intensität, der im Einheitswürfel liegt, wird im Interesse der einfachen Darstellung als Farbebene (Farbtafel) genutzt. Dabei bleibt die Ordnung der Farbvalenzen erhalten. Die Länge |F| der Farbvalenz bzw die Intensität geht verloren. -Die in der Ebene konstanter Intensität liegenden Werte definieren die Chrominanz durch welche die Farbwertanteile erfasst werden (zwei reichen aus da 2D). Es kann auch die Projektion der Ebene auf RG (grau überlagert) als Farbtafel genutzt werden, ohne die Ordnung der Farborte zu stören. Vorteil: orthonoales rg-System - -RGB Farbtafel:\\ -Alle Farben gleicher Buntheit (unterscheiden sich nur in der Länge von F) führen zum gleichen Farbort, der durch die Farbwertantwile r,g,b beschrieben wird: -$$r=\frac{R}{R+G+B}, g=\frac{G}{R+G+B}, b=\frac{B}{R+G+B} \leftrightarrow r+g+b=1$$ - -Aus dem rechten Teil der Gleichung folgt mit $b=1-r-g$, dass sich die Buntheit allein durch r und g darstellen lässt (entspricht $R^2$). -Die Farbwertanteile lassen sich bei bekanntem Farbort in der Farbtafel nach der angegebenen Konstruktionsvorschrift ermitteln oder direkt ablesen. - - -%\paragraph{CIE System -Um eine Relation zwischen der menschlichen Farbwahrnehmung und den physikalischen ursachen des Farbreizes herzustellen, wurde das CIE-Normvalenzsystem von der Internationalen Beleuchtungskommission (CIE) definiert. Es stellt die Gesammtheit der wahrnehmbaren Farben dar. - -Farbkörperunterschiede:\\ -Es finden sich Unterschiede welche Farbbereiche nach dem CIE Normalvalenzsystem von den jeweiligen Systemen dargestellt werden können: -- menschliche Farbwahrnehmung ca 2-6 Mio Farben -- Monitor: ca 1/3 davon. Bei Monitoren wird die additive Farbmischung verwendet, da die einzelnen Lichtquellen aufsummiert werden. -- Druckprozess: meist deutlich weniger Farben. Bei Druckernwerden einzelne Farbschichten auf Papier gedruckt und das resultierende Bild wird über die subtraktive Farbmischung bestimmt. - -Subtraktive Farbmischung:\\ -Je nachdem welche Farbe ein Material hat, werden entsprechende Farbanteile absorbiert oder reflektiert. Eine gelbe Oberfläche sieht gelb aus, das sie das Blau aus weißem Licht absorbiert, aber Rot und Grün reflektiert. - -Achtung: Dies gilt nur für die Bestrahlung mit weißem Licht. Wird beispielsweise ein gelbes Blatt mit blauem Licht bestrahlt, dann wirkt es schwarz, da das blaue Licht vom gelben Blatt absorbiert wird. - -%\section{Licht \& Reflexion -%\subsection{ Strahlung -Grundfrage: Was ist Licht? -- Teil der elektromagnetischen Strahlung -- ist für das menschliche Auge wahrnehmbar -- Lichtspektrum liegen zwischen 380 nm und 780 nm -- Farbe entspricht der Wellenlänge -- längere Wellenlängen = weniger Photonenenergie -- durch Überlagerungen vieler Frequenzen erscheint das Licht weiß - -Radiometrie: -- Wissenschaft von der Messung elektromagnetischer Strahlung -- Größen sind physikalische Einheiten (ohne Berücksichtigung des menschl. Sehens) -Photometrie: -- Messverfahren im Wellenlängenbereich des sichtbaren Lichtes (Messung mithilfe eines Photometers) -- lassen sich aus den radiometrischen Größen, bei bekanntem Spektrum bestimmen -- berücksichtigen die wellenlängenabhängige Empfindlichkeit des Auges - -Photon: -- Elementarteilchen der elektromagnetischen Wechselwirkung -- besitzen keine Masse -- Energie und Impuls sind proportional zur Frequenz -- kürzere Wellenlänge = höhere Frequenz = höhere Energie - -Strahlungsenergie (radiant energy): -- durch Strahlung (elektromagnetische Wellen) übertragene Energie -- entspricht dem Produkt von Photonenanzahl und der Energie der Photonen -- Formelzeichen : Q -- Einheit: J (Joule) -- photometrisches Äquivalent: Lichtmenge (luminous energy) - -Strahlungsleistung (auch Strahlungsfluss, engl. radiant flux, radiant power): -- transportierte Strahlungsenergie in einer bestimmten Zeit -- Formelzeichen : $\phi$ -- Einheit: W (Watt) -- Berechnung: $\phi = \frac{Q}{t}$ -- photometrisches Äquivalent: Lichtstrom (luminous flux, luminous power) - -Zusammenhang zwischen Radiometrie und Photometrie:\\ -In der Radiometrie wird sich mit objektiven Messgrößen beschäftigt, in der Photometrie gibt es jeweils eine entsprechende Messgrößen, bei denen die spektrale Empfindlichkeit des menschlichen Auges mit einfließt. -- Beispiel: + Darstellung des RGB Farbraums: + - alle mit drei Farblichtquellen technisch (additiv) erzeugbaren Farben liegen innerhalb eines Würfels + - Im Koordinatenursprung befindet sich Schwarz, diagonal gegenüber weiß. + - auf der Raumdiagonalen liegen dazwischen die Graustufen + + Bei entsprechender Normierung liegen die vom RGB Farbsynthesesystem erzeugbare Farben im Einheitswürfel. Zunächst wird der Begriff Intensität eingeführt: $I=\frac{R+G+B}{3}$. Der Ausschnitt aus der Ebene konstanter Intensität, der im Einheitswürfel liegt, wird im Interesse der einfachen Darstellung als Farbebene (Farbtafel) genutzt. Dabei bleibt die Ordnung der Farbvalenzen erhalten. Die Länge |F| der Farbvalenz bzw die Intensität geht verloren. + Die in der Ebene konstanter Intensität liegenden Werte definieren die Chrominanz durch welche die Farbwertanteile erfasst werden (zwei reichen aus da 2D). Es kann auch die Projektion der Ebene auf RG (grau überlagert) als Farbtafel genutzt werden, ohne die Ordnung der Farborte zu stören. Vorteil: orthonoales rg-System + + RGB Farbtafel:\\ + Alle Farben gleicher Buntheit (unterscheiden sich nur in der Länge von F) führen zum gleichen Farbort, der durch die Farbwertantwile r,g,b beschrieben wird: + $$r=\frac{R}{R+G+B}, g=\frac{G}{R+G+B}, b=\frac{B}{R+G+B} \leftrightarrow r+g+b=1$$ + + Aus dem rechten Teil der Gleichung folgt mit $b=1-r-g$, dass sich die Buntheit allein durch r und g darstellen lässt (entspricht $R^2$). + Die Farbwertanteile lassen sich bei bekanntem Farbort in der Farbtafel nach der angegebenen Konstruktionsvorschrift ermitteln oder direkt ablesen. + + + \paragraph{CIE System} + Um eine Relation zwischen der menschlichen Farbwahrnehmung und den physikalischen ursachen des Farbreizes herzustellen, wurde das CIE-Normvalenzsystem von der Internationalen Beleuchtungskommission (CIE) definiert. Es stellt die Gesammtheit der wahrnehmbaren Farben dar. + + Farbkörperunterschiede:\\ + Es finden sich Unterschiede welche Farbbereiche nach dem CIE Normalvalenzsystem von den jeweiligen Systemen dargestellt werden können: + - menschliche Farbwahrnehmung ca 2-6 Mio Farben + - Monitor: ca 1/3 davon. Bei Monitoren wird die additive Farbmischung verwendet, da die einzelnen Lichtquellen aufsummiert werden. + - Druckprozess: meist deutlich weniger Farben. Bei Druckernwerden einzelne Farbschichten auf Papier gedruckt und das resultierende Bild wird über die subtraktive Farbmischung bestimmt. + + Subtraktive Farbmischung:\\ + Je nachdem welche Farbe ein Material hat, werden entsprechende Farbanteile absorbiert oder reflektiert. Eine gelbe Oberfläche sieht gelb aus, das sie das Blau aus weißem Licht absorbiert, aber Rot und Grün reflektiert. + + Achtung: Dies gilt nur für die Bestrahlung mit weißem Licht. Wird beispielsweise ein gelbes Blatt mit blauem Licht bestrahlt, dann wirkt es schwarz, da das blaue Licht vom gelben Blatt absorbiert wird. + + %\section{Licht \& Reflexion + %\subsection{ Strahlung + Grundfrage: Was ist Licht? + - Teil der elektromagnetischen Strahlung + - ist für das menschliche Auge wahrnehmbar + - Lichtspektrum liegen zwischen 380 nm und 780 nm + - Farbe entspricht der Wellenlänge + - längere Wellenlängen = weniger Photonenenergie + - durch Überlagerungen vieler Frequenzen erscheint das Licht weiß + + Radiometrie: + - Wissenschaft von der Messung elektromagnetischer Strahlung + - Größen sind physikalische Einheiten (ohne Berücksichtigung des menschl. Sehens) + + Photometrie: + - Messverfahren im Wellenlängenbereich des sichtbaren Lichtes (Messung mithilfe eines Photometers) + - lassen sich aus den radiometrischen Größen, bei bekanntem Spektrum bestimmen + - berücksichtigen die wellenlängenabhängige Empfindlichkeit des Auges + + Photon: + - Elementarteilchen der elektromagnetischen Wechselwirkung + - besitzen keine Masse + - Energie und Impuls sind proportional zur Frequenz + - kürzere Wellenlänge = höhere Frequenz = höhere Energie + + Strahlungsenergie (radiant energy): + - durch Strahlung (elektromagnetische Wellen) übertragene Energie + - entspricht dem Produkt von Photonenanzahl und der Energie der Photonen + - Formelzeichen : Q + - Einheit: J (Joule) + - photometrisches Äquivalent: Lichtmenge (luminous energy) + + Strahlungsleistung (auch Strahlungsfluss, engl. radiant flux, radiant power): + - transportierte Strahlungsenergie in einer bestimmten Zeit + - Formelzeichen : $\phi$ + - Einheit: W (Watt) + - Berechnung: $\phi = \frac{Q}{t}$ + - photometrisches Äquivalent: Lichtstrom (luminous flux, luminous power) + + Zusammenhang zwischen Radiometrie und Photometrie:\\ + In der Radiometrie wird sich mit objektiven Messgrößen beschäftigt, in der Photometrie gibt es jeweils eine entsprechende Messgrößen, bei denen die spektrale Empfindlichkeit des menschlichen Auges mit einfließt. + - Beispiel: - radiometrisch: Strahlungsleistung $\phi_e$ gemessen in Watt W - photometrisch: Lichtstrom $\phi_v$ gemessen in Lumen lm -- Verknüpfung von Radiometrie und Photometrie erfolgt über das photometrische Strahlungsäquivalent: $K =\frac{\phi_v}{\phi_e}$ -- gibt die Empfindlichkeit des menschlichen Auges an -- radiometrische Größe: Index $_e$ für energetisch -- photometrische Größe: Index $_v$ für visuell -Die radiometrischen Größen gewichtet mit dem photometrischen Strahlungsäquivalent K sind somit die photometrischen Größen. - -Ausbreitung eines Strahls: -- geradlinig von einer Quelle zum Ziel, -- Richtung ändert sich durch Brechung -- an Oberflächen tritt Reflexion und Streuung auf -- eine Strahlungsquelle sendet dabei Strahlen in alle Raumrichtungen unter einem gewissen Raumwinkel aus - -%\paragraph{Raumwinkel -Der Steradiant ist eine Maßeinheit für den Raumwinkel, der von der Mitte M einer Kugel mit Radius r aus gesehen eine Fläche von $r^2$ auf der Kugeloberfläche einnimmt. $\Omega=\frac{Flaeche}{Radius^2}=\frac{A}{r^2}sr$ -Eine komplette Kugeloberfläche $A_k$ beträgt allg. $A_k = 4\pi r^2$, entspricht also einem Raumwinkel $\Omega$ von $\frac{A_k}{r^2}= 4\pi r\approx 12,5sr$. Ein Steradiant =1sr entspricht einem Öffnungswinkel $\alpha$ von ca. 65,54° - -%\paragraph{Strahlstärke -- auch Intensität, engl. radiant intensity -- Strahlungsleistung die in eine Raumrichtung mit Raumwinkel $\Omega$ emittiert wird -- Formelzeichen : I -- Berechnung: $I=\frac{\phi}{\Omega}$ -- photometrisches Äquivalent: Lichtstärke (luminous intensity) - -Beispiel: Berechnen Sie die Strahlstärke einer Lampe mit einem Öffnungswinkel von 180° und einer Strahlungsleistung von 20W. -$$\alpha=180°\rightarrow A=2\pi r^2; \phi =20W; \Omega=\frac{A}{r^2}=2\pi ; I_e=\frac{\phi_e}{\Omega}=\frac{20}{2\pi}\approx 3,2 \frac{W}{sr}$$ - -%\paragraph{Räumliche Ausbreitung -Energieübertragung zwischen zwei Flächen: -Eine Fläche $A_r$ strahlt Licht auf eine Fläche $A_i$ ab.\\ -Frage: Wie viel Lichtleistung von einer infinitesimalen abstrahlenden Fläche $A_r$ wird auf einer Fläche $A_i$ empfangen? -- der Abstand zwischen den beiden infinitesimalen Flächen beträgt r -- die Flächen stehen nicht notwendigerweise senkrecht zur Ausbreitungsrichtung des Lichts (gerade Verbindungslinie zwischen den Flächen) -- Wir projizieren daher die abstrahlende und die empfangende Fläche jeweils in Ausbreitungsrichtung. Die projizierten Flächen nennen wir $A'_r$ und $A'_i$. -- Wir betrachten Punktlichtquellen von der abstrahlenden Fläche $A_r$ , welche ihre Strahlungsleistung in den Raumwinkel $\Omega$ abgeben. -- $\Omega$ ist somit die in Abstrahlrichtung reduzierte Fläche $A'_i$ , projiziert auf die Einheitskugel: $\Omega=\frac{A'_i}{r^2}$ + - Verknüpfung von Radiometrie und Photometrie erfolgt über das photometrische Strahlungsäquivalent: $K =\frac{\phi_v}{\phi_e}$ + - gibt die Empfindlichkeit des menschlichen Auges an + - radiometrische Größe: Index $_e$ für energetisch + - photometrische Größe: Index $_v$ für visuell + Die radiometrischen Größen gewichtet mit dem photometrischen Strahlungsäquivalent K sind somit die photometrischen Größen. + + Ausbreitung eines Strahls: + - geradlinig von einer Quelle zum Ziel, + - Richtung ändert sich durch Brechung + - an Oberflächen tritt Reflexion und Streuung auf + - eine Strahlungsquelle sendet dabei Strahlen in alle Raumrichtungen unter einem gewissen Raumwinkel aus + + %\paragraph{Raumwinkel + Der Steradiant ist eine Maßeinheit für den Raumwinkel, der von der Mitte M einer Kugel mit Radius r aus gesehen eine Fläche von $r^2$ auf der Kugeloberfläche einnimmt. $\Omega=\frac{Flaeche}{Radius^2}=\frac{A}{r^2}sr$ + Eine komplette Kugeloberfläche $A_k$ beträgt allg. $A_k = 4\pi r^2$, entspricht also einem Raumwinkel $\Omega$ von $\frac{A_k}{r^2}= 4\pi r\approx 12,5sr$. Ein Steradiant =1sr entspricht einem Öffnungswinkel $\alpha$ von ca. 65,54° + + %\paragraph{Strahlstärke + - auch Intensität, engl. radiant intensity + - Strahlungsleistung die in eine Raumrichtung mit Raumwinkel $\Omega$ emittiert wird + - Formelzeichen : I + - Berechnung: $I=\frac{\phi}{\Omega}$ + - photometrisches Äquivalent: Lichtstärke (luminous intensity) + + Beispiel: Berechnen Sie die Strahlstärke einer Lampe mit einem Öffnungswinkel von 180° und einer Strahlungsleistung von 20W. + $$\alpha=180°\rightarrow A=2\pi r^2; \phi =20W; \Omega=\frac{A}{r^2}=2\pi ; I_e=\frac{\phi_e}{\Omega}=\frac{20}{2\pi}\approx 3,2 \frac{W}{sr}$$ + + %\paragraph{Räumliche Ausbreitung + Energieübertragung zwischen zwei Flächen: + Eine Fläche $A_r$ strahlt Licht auf eine Fläche $A_i$ ab.\\ + Frage: Wie viel Lichtleistung von einer infinitesimalen abstrahlenden Fläche $A_r$ wird auf einer Fläche $A_i$ empfangen? + - der Abstand zwischen den beiden infinitesimalen Flächen beträgt r + - die Flächen stehen nicht notwendigerweise senkrecht zur Ausbreitungsrichtung des Lichts (gerade Verbindungslinie zwischen den Flächen) + - Wir projizieren daher die abstrahlende und die empfangende Fläche jeweils in Ausbreitungsrichtung. Die projizierten Flächen nennen wir $A'_r$ und $A'_i$. + - Wir betrachten Punktlichtquellen von der abstrahlenden Fläche $A_r$ , welche ihre Strahlungsleistung in den Raumwinkel $\Omega$ abgeben. + - $\Omega$ ist somit die in Abstrahlrichtung reduzierte Fläche $A'_i$ , projiziert auf die Einheitskugel: $\Omega=\frac{A'_i}{r^2}$ - Die übertragene Energie nimmt quadratisch zu r ab - -%\paragraph{Strahldichte -- engl. radiance -- Strahlstärke welche von einer Sendefläche $A_r$ in eine bestimmte Richtung abgegeben wird -- Formelzeichen : L -- photometrisches Äquivalent: Leuchtdichte (auch Luminanz, engl. luminance) -- Berechnung: $L = \frac{I}{A'_r}=\frac{I}{\cos(\phi_r)*A_r} = \frac{\phi}{\cos(\phi_r)*A_r*\Omega}$ -- $\phi_r$ ist der Winkel zwischen der Normalen n und der Abstrahlrichtung (von der abstrahlenden Fläche $A_r$ zur empfangenden $A_i$) - -Leuchtdichte (Luminanz) als Vorstufe der Helligkeit: -- Strahlungsleistung bewertet mit der spektralen Empfindlichkeitsfunktion des menschlichen Auges für das Hellempfinden -- Das menschliche Auge hat seine maximale Empfindlichkeit, bei einer Wellenlänge von 555 nm (gelbgrün) -- 1 Lumen ist definiert als der Lichtstrom einer 1,464 mW starken 555-nm-Lichtquelle mit 100% Lichtausbeute. - - -%\paragraph{Bestrahlungsstärke -- auch Strahlungsflussdichte, engl. irradiance -- Strahlungsleistung durch die bestrahlte Fläche $A_i$ bzw. Strahlstärke die auf die Empfängerfläche trifft -- Formelzeichen : E -- Berechnung: $E =\frac{\Phi}{A_i}$ -- photometrisches Äquivalent: Beleuchtungsstärke (auch Lichtstromdichte, engl. illuminance) -- erweitert: $E=\frac{\Phi}{A_i}=\frac{L*\cos(\phi_i)*\cos(\phi_r)*A_r}{r^2}$ - -%\paragraph{Zusammenfassung -Radiometrische (physikalische) und Photometrische (unter Berücksichtigung des menschlichen Auges) Größen - -| Symbol | Radiometrie (energetisch $_e$) | Photometrie (visuell $_v$ ) | -| -- | -- | -- | -| $Q$ | Strahlungsenergie $Joule$ | Lichtmenge $lm*s$ | -| $\Phi$ | Strahlungsleistung Watt $W$ | Lichtstrom Lumen $lm$ | -| $I$ | Strahlstärke $\frac{w}{sr}$ | Lichtstärke Candela $cd$ | -| $E$ | Bestrahlungsstärke $\frac{W}{m^2}$ | Beleuchtungsstärke Lux $\frac{lm}{m^2}$ | -| $L$ | Strahldichte $\frac{w}{sr*m^2}$ | Leuchtdichte $\frac{cd}{m^2}$ | - - - -%\subsection{ Reflexion -Nach dem Auftreffen auf einer opaken Oberfläche wird die Strahlung spektral -unterschiedlich stark und geometrisch auf unterschiedliche Weise reflektiert. Es -können 2 Idealfälle der Reflexion unterschieden werden: -- ideal spiegelnde Reflexion (Einfallswinkel = Ausfallswinkel) -- ideal diffuse Reflexion - -Aus den zwei Idealfällen der reflexion werden weitere (gemischte) Fälle abgeleitet: -- spekuläre Reflexion (diffus und gerichtete Reflexion) -- gemischte Reflexion: ideal diffus, gerichtet diffus und ideal spiegelnd - -Bei der Betrachtung der Reflexion ist offensichtlich die Art der Bestrahlung und -insbesondere auch die Richtung der Einstrahlung zu beachten. - - - -%\paragraph{Diffuse Reflexion -%![Diffuse Reflexion; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Diffuse_Reflexion.png) - -Lichtquelle im Unendlichen; Irradiance $E=\frac{A'_i}{A_i}I_{in}=I_{in}\cos(\phi)$ - -Eingestrahlte Strahlstärke I in durch $A'_i$ verteilt sich durch die Projektion auf die größere Fläche $A_i$ Die Bestrahlungsstärke E (Irradiance) ist dadurch proportional zum Vergrößerungsfaktor der Fläche abgeschwächt. - -In Richtung Betrachter reflektierte Strahlstärke $I_{out}$ Aufgrund von Interferenz phasengleicher Lichtstrahlen → Projektion auf Normalenrichtung $\frac{I_{out}}{E_{refl}}=\cos(\phi)$ -- Senkrecht zur Oberfläche: Maximale Kohärenz (Addition) -- Parallel zur Oberfläche: n Keine Kohärenz (Auslöschung) - -%![Diffuse Reflexion Addition und Auslöschung; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Diffuse_Reflexion_2.png) - -Annahme kohärentes Licht: Parallel zur reflektierenden Oberfläche findet sich zu jeder Punktlichtquelle immer eine gleichphasige Punktlichtquelle im Abstand $\frac{\lambda}{2}$ -- Auslöschung parallel zur Fläche, - -%![Diffuse Reflexion Betrachter; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Diffuse_Reflexion_3.png) - -$$\frac{A_r}{A'_r}=\frac{1}{\cos(\phi)} \rightarrow L=\frac{I_{out}}{\cos(\phi)}=I_{refl}$$ -Ein Betrachter mit flachem Blickwinkel sieht Licht aus größerer Fläche $A_r$ durch Kombination dieser Effekte, kürzt sich der Einfluss des Betrachterwinkels $\cos(\phi)$ weg und es bleibt nur der Einfluss des Lichteinfallswinkels übrig: Strahldichte des reflektierten Lichtes: $L=I_{in}*k_d(\lambda)*\cos(\phi)$ - -%\paragraph{Spekuläre Reflexion -Spekuläre (gestreut spiegelnde) Reflexion: -- Speckles (Fleckchen), bzw. (Micro-) Facetten sind einzeln jeweils "ideal" -- spiegelnd: Einfallswinkel $\phi$ = neg. Ausfallswinkel = $-\phi$. -- Die Ausrichtung der Microfacetten weichen von der Gesamtflächennormalen ab. → Statistische Abweichung von der Flächennormalen (z. B. Gauß-Verteilung) -- dadurch Streuung des Lichts (Keule) um den Winkel $\theta$ der idealen Spiegelung herum -- Je größer der Winkel $\theta$ zwischen idealer Spiegelrichtung und Richtung zum Betrachter, desto schwächer ist die Reflexion -- Modellierung meist per $\cos^k(\theta)$ (Phong-Beleuchtungsmodell) - nicht physikalisch begründet. - -%![Spekuläre Reflexion; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Spekuläre_Reflexion.png) - -Gestreute Spiegelung im Phong Modell mit $L=I*k_s*\cos^k(\theta)$ -- glänzende Oberfläche: großer Exponent k (16,...,128); kleine Streuung $\epsilon$ -- matte Oberfläche: kleiner Exponent k (1,...,2); große Streuung $\epsilon$ - -Energieerhaltung $\rightarrow$ Verhinderung der Abnahme bei großen Exponenten $\rightarrow$ Für die Energieerhaltung wird ein zusätzlicher Normierungsfaktor benötigt: -- physikalisch nicht korrekt: $L=I*k_s*\cos^k(\theta)$ -- gebräuchliche Normierung $\frac{k+2}{2\pi}$ somit: $L=I*k_s*\frac{k+2}{2\pi}*cos^k(\theta)$ - -%\paragraph{Remittierende Flächen -- Wegen der spektralen Unterschiede bei der Reflexion bleiben wir bei den spektralen physikalischen (radiometrischen) Größen! -- Erst im Auge bzw. im Bildsensor erfolgt die Wandlung in die wellenlängenintegralen photometrischen (colorimetrischen) Größe! - -Zunächst ideal diffus remittierende weiße Flächen $(\beta(\lambda) = 1)$: -- Die von den Quellen in die Fläche $dA$ eingetragene Leistung führt zu einer Bestrahlungsstärke $E_{\lambda}$ -- Bei vollständiger Reflexion $\beta(\lambda) = 1$ ist $E_{\lambda} = R_{\lambda}$ (spektrale Radiosity, spezifische spektrale Ausstrahlung). -- Der zugehörige spektrale Strahlungsfluss $d\phi = R_{\lambda} * dA = E_{\lambda} * dA$ wird bei ideal diffusen streuenden Oberflächen gleichmäßig über den Halbraum verteilt, wobei die Strahldichte (Lambertsches Gesetz) konstant ist. - - -%\subsection{ BRDF: Bidirektionale Reflexionsverteilungsfunktion -%\paragraph{Bidirektionale Reflexion -- englisch Bidirectional Reflectance Distribution Function, BRDF -- eine Funktion für das Reflexionsverhalten von Oberflächen eines Materials unter beliebigen Einfallswinkeln -- Ziel: Oberfläche möglichst realistisch und physikalisch korrekt darstellen -- nach gewählter Genauigkeit sehr komplex -- in der Computergrafik wird meist eine vereinfachte Variante gewählt um Rechenzeit zu sparen -- erstmals 1965 definiert (Fred Nicodemus): $f_r(\omega_i, \omega_r)=\frac{dL_r(\omega_r)}{dE_i(\omega_i)}=\frac{dL_r(\omega_r)}{L_i(\omega_i)\cos(\theta_i)d\omega_i}$ -- Eine BRDF beschreibt wie eine gegebene Oberfläche Licht reflektiert. -- Das Verhältnis von reflektierter Strahldichte (radiance) $L_r$ in eine Richtung $\vec{ω}_r$ zur einfallenden Bestrahlungsstärke (irradiance) $E_i$ aus einer Richtung $\vec{ω}_i$ wird "bidirectional reflectance distribution function"(BRDF) genannt. + + %\paragraph{Strahldichte + - engl. radiance + - Strahlstärke welche von einer Sendefläche $A_r$ in eine bestimmte Richtung abgegeben wird + - Formelzeichen : L + - photometrisches Äquivalent: Leuchtdichte (auch Luminanz, engl. luminance) + - Berechnung: $L = \frac{I}{A'_r}=\frac{I}{\cos(\phi_r)*A_r} = \frac{\phi}{\cos(\phi_r)*A_r*\Omega}$ + - $\phi_r$ ist der Winkel zwischen der Normalen n und der Abstrahlrichtung (von der abstrahlenden Fläche $A_r$ zur empfangenden $A_i$) + + Leuchtdichte (Luminanz) als Vorstufe der Helligkeit: + - Strahlungsleistung bewertet mit der spektralen Empfindlichkeitsfunktion des menschlichen Auges für das Hellempfinden + - Das menschliche Auge hat seine maximale Empfindlichkeit, bei einer Wellenlänge von 555 nm (gelbgrün) + - 1 Lumen ist definiert als der Lichtstrom einer 1,464 mW starken 555-nm-Lichtquelle mit 100% Lichtausbeute. + + + %\paragraph{Bestrahlungsstärke + - auch Strahlungsflussdichte, engl. irradiance + - Strahlungsleistung durch die bestrahlte Fläche $A_i$ bzw. Strahlstärke die auf die Empfängerfläche trifft + - Formelzeichen : E + - Berechnung: $E =\frac{\Phi}{A_i}$ + - photometrisches Äquivalent: Beleuchtungsstärke (auch Lichtstromdichte, engl. illuminance) + - erweitert: $E=\frac{\Phi}{A_i}=\frac{L*\cos(\phi_i)*\cos(\phi_r)*A_r}{r^2}$ + + %\paragraph{Zusammenfassung + Radiometrische (physikalische) und Photometrische (unter Berücksichtigung des menschlichen Auges) Größen + + | Symbol | Radiometrie (energetisch $_e$) | Photometrie (visuell $_v$ ) | + | -- | -- | -- | + | $Q$ | Strahlungsenergie $Joule$ | Lichtmenge $lm*s$ | + | $\Phi$ | Strahlungsleistung Watt $W$ | Lichtstrom Lumen $lm$ | + | $I$ | Strahlstärke $\frac{w}{sr}$ | Lichtstärke Candela $cd$ | + | $E$ | Bestrahlungsstärke $\frac{W}{m^2}$ | Beleuchtungsstärke Lux $\frac{lm}{m^2}$ | + | $L$ | Strahldichte $\frac{w}{sr*m^2}$ | Leuchtdichte $\frac{cd}{m^2}$ | + + + + %\subsection{ Reflexion + Nach dem Auftreffen auf einer opaken Oberfläche wird die Strahlung spektral + unterschiedlich stark und geometrisch auf unterschiedliche Weise reflektiert. Es + können 2 Idealfälle der Reflexion unterschieden werden: + - ideal spiegelnde Reflexion (Einfallswinkel = Ausfallswinkel) + - ideal diffuse Reflexion + + Aus den zwei Idealfällen der reflexion werden weitere (gemischte) Fälle abgeleitet: + - spekuläre Reflexion (diffus und gerichtete Reflexion) + - gemischte Reflexion: ideal diffus, gerichtet diffus und ideal spiegelnd + + Bei der Betrachtung der Reflexion ist offensichtlich die Art der Bestrahlung und + insbesondere auch die Richtung der Einstrahlung zu beachten. + + + + %\paragraph{Diffuse Reflexion + %![Diffuse Reflexion; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Diffuse_Reflexion.png) + + Lichtquelle im Unendlichen; Irradiance $E=\frac{A'_i}{A_i}I_{in}=I_{in}\cos(\phi)$ + + Eingestrahlte Strahlstärke I in durch $A'_i$ verteilt sich durch die Projektion auf die größere Fläche $A_i$ Die Bestrahlungsstärke E (Irradiance) ist dadurch proportional zum Vergrößerungsfaktor der Fläche abgeschwächt. + + In Richtung Betrachter reflektierte Strahlstärke $I_{out}$ Aufgrund von Interferenz phasengleicher Lichtstrahlen $\rightarrow$ Projektion auf Normalenrichtung $\frac{I_{out}}{E_{refl}}=\cos(\phi)$ + - Senkrecht zur Oberfläche: Maximale Kohärenz (Addition) + - Parallel zur Oberfläche: n Keine Kohärenz (Auslöschung) + + %![Diffuse Reflexion Addition und Auslöschung; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Diffuse_Reflexion_2.png) + + Annahme kohärentes Licht: Parallel zur reflektierenden Oberfläche findet sich zu jeder Punktlichtquelle immer eine gleichphasige Punktlichtquelle im Abstand $\frac{\lambda}{2}$ + - Auslöschung parallel zur Fläche, + + %![Diffuse Reflexion Betrachter; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Diffuse_Reflexion_3.png) + + $$\frac{A_r}{A'_r}=\frac{1}{\cos(\phi)} \rightarrow L=\frac{I_{out}}{\cos(\phi)}=I_{refl}$$ + Ein Betrachter mit flachem Blickwinkel sieht Licht aus größerer Fläche $A_r$ durch Kombination dieser Effekte, kürzt sich der Einfluss des Betrachterwinkels $\cos(\phi)$ weg und es bleibt nur der Einfluss des Lichteinfallswinkels übrig: Strahldichte des reflektierten Lichtes: $L=I_{in}*k_d(\lambda)*\cos(\phi)$ + + %\paragraph{Spekuläre Reflexion + Spekuläre (gestreut spiegelnde) Reflexion: + - Speckles (Fleckchen), bzw. (Micro-) Facetten sind einzeln jeweils "ideal" + - spiegelnd: Einfallswinkel $\phi$ = neg. Ausfallswinkel = $-\phi$. + - Die Ausrichtung der Microfacetten weichen von der Gesamtflächennormalen ab. $\rightarrow$ Statistische Abweichung von der Flächennormalen (z. B. Gauß-Verteilung) + - dadurch Streuung des Lichts (Keule) um den Winkel $\theta$ der idealen Spiegelung herum + - Je größer der Winkel $\theta$ zwischen idealer Spiegelrichtung und Richtung zum Betrachter, desto schwächer ist die Reflexion + - Modellierung meist per $\cos^k(\theta)$ (Phong-Beleuchtungsmodell) - nicht physikalisch begründet. + + %![Spekuläre Reflexion; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Spekuläre_Reflexion.png) + + Gestreute Spiegelung im Phong Modell mit $L=I*k_s*\cos^k(\theta)$ + - glänzende Oberfläche: großer Exponent k (16,...,128); kleine Streuung $\epsilon$ + - matte Oberfläche: kleiner Exponent k (1,...,2); große Streuung $\epsilon$ + + Energieerhaltung $\rightarrow$ Verhinderung der Abnahme bei großen Exponenten $\rightarrow$ Für die Energieerhaltung wird ein zusätzlicher Normierungsfaktor benötigt: + - physikalisch nicht korrekt: $L=I*k_s*\cos^k(\theta)$ + - gebräuchliche Normierung $\frac{k+2}{2\pi}$ somit: $L=I*k_s*\frac{k+2}{2\pi}*cos^k(\theta)$ + + %\paragraph{Remittierende Flächen + - Wegen der spektralen Unterschiede bei der Reflexion bleiben wir bei den spektralen physikalischen (radiometrischen) Größen! + - Erst im Auge bzw. im Bildsensor erfolgt die Wandlung in die wellenlängenintegralen photometrischen (colorimetrischen) Größe! + + Zunächst ideal diffus remittierende weiße Flächen $(\beta(\lambda) = 1)$: + - Die von den Quellen in die Fläche $dA$ eingetragene Leistung führt zu einer Bestrahlungsstärke $E_{\lambda}$ + - Bei vollständiger Reflexion $\beta(\lambda) = 1$ ist $E_{\lambda} = R_{\lambda}$ (spektrale Radiosity, spezifische spektrale Ausstrahlung). + - Der zugehörige spektrale Strahlungsfluss $d\phi = R_{\lambda} * dA = E_{\lambda} * dA$ wird bei ideal diffusen streuenden Oberflächen gleichmäßig über den Halbraum verteilt, wobei die Strahldichte (Lambertsches Gesetz) konstant ist. + + + %\subsection{ BRDF: Bidirektionale Reflexionsverteilungsfunktion + %\paragraph{Bidirektionale Reflexion + - englisch Bidirectional Reflectance Distribution Function, BRDF + - eine Funktion für das Reflexionsverhalten von Oberflächen eines Materials unter beliebigen Einfallswinkeln + - Ziel: Oberfläche möglichst realistisch und physikalisch korrekt darstellen + - nach gewählter Genauigkeit sehr komplex + - in der Computergrafik wird meist eine vereinfachte Variante gewählt um Rechenzeit zu sparen + - erstmals 1965 definiert (Fred Nicodemus): $f_r(\omega_i, \omega_r)=\frac{dL_r(\omega_r)}{dE_i(\omega_i)}=\frac{dL_r(\omega_r)}{L_i(\omega_i)\cos(\theta_i)d\omega_i}$ + - Eine BRDF beschreibt wie eine gegebene Oberfläche Licht reflektiert. + - Das Verhältnis von reflektierter Strahldichte (radiance) $L_r$ in eine Richtung $\vec{ω}_r$ zur einfallenden Bestrahlungsstärke (irradiance) $E_i$ aus einer Richtung $\vec{ω}_i$ wird "bidirectional reflectance distribution function"(BRDF) genannt. - $p(\lambda)=\frac{L_r}{E_i}=[\frac{1}{sr}]$ -- Die BRDF (für jeden Punkt x) ist eine 5-dimensionale skalare Funktion: $p(\lambda, \phi_e, \theta_e, \phi_i, \theta_i)$ -- Keine Energie-Einheiten, nur Verhältniszahl! -- Kann durch Messung für verschiedene Materialien bestimmt werden (Messkamera/Normbeleuchtung) -- Eigenschaften der BRDF: + - Die BRDF (für jeden Punkt x) ist eine 5-dimensionale skalare Funktion: $p(\lambda, \phi_e, \theta_e, \phi_i, \theta_i)$ + - Keine Energie-Einheiten, nur Verhältniszahl! + - Kann durch Messung für verschiedene Materialien bestimmt werden (Messkamera/Normbeleuchtung) + - Eigenschaften der BRDF: - Reziprozität: $ρ(\lambda)$ ändert sich nicht, wenn Einfalls- und Ausfallsrichtung vertauscht werden (wichtig für Ray-Tracing). - $ρ(\lambda)$ kann anisotrop sein, d.h. der Anteil des reflektierten Lichtes ändert sich, wenn bei gleicher Einfalls- undAusfallsrichtung die Fläche um die Normale gedreht wird (Textilien, gebürstete Metalle, Metalleffektlacke) - Superposition gilt, d.h. mehrere Quellen überlagern sich linear. - -Es ist in der Computergrafik üblich, die bidirektionale Reflektivität als Gemisch von ambienten, diffusen und spekularen Komponenten $ρ_d, ρ_s$ aufzufassen und -einen ambienten Anteil $ρ_a$ zu addieren. Für eine Menge Q von Lichtquellen berechnen wir damit die gesamte reflektierte Strahlstärke: $L_r=p_a*E_a+\sum_{1\leq j \leq Q} E_j * (k_d*p_d + k_s*p_s)$ mit $k_d+k_s=1$ und Q= Anzahl der Lichtquellen - -%\paragraph{Rendering-Equation -Für ambiente und gerichtete Lichtquellen aus der Hemisphäre ergibt sich eine spezielle Form der BRDF, die Render-Gleichung (Jim Kajiya 1986): -- eine BRDF mit Integral über alle Lichtquellen (bzw. Hemisphären) -- $L_r=p_a + \int_{Omega} L*(k_d*p_d+k_s*p_s) \omega_i*n d\Omega$ - -%![Rendering Equation; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Rendering_Equation.png) - -%\paragraph{Strahlungsquellenarten -- Ambiente Strahlung: + + Es ist in der Computergrafik üblich, die bidirektionale Reflektivität als Gemisch von ambienten, diffusen und spekularen Komponenten $ρ_d, ρ_s$ aufzufassen und + einen ambienten Anteil $ρ_a$ zu addieren. Für eine Menge Q von Lichtquellen berechnen wir damit die gesamte reflektierte Strahlstärke: $L_r=p_a*E_a+\sum_{1\leq j \leq Q} E_j * (k_d*p_d + k_s*p_s)$ mit $k_d+k_s=1$ und Q= Anzahl der Lichtquellen + + %\paragraph{Rendering-Equation + Für ambiente und gerichtete Lichtquellen aus der Hemisphäre ergibt sich eine spezielle Form der BRDF, die Render-Gleichung (Jim Kajiya 1986): + - eine BRDF mit Integral über alle Lichtquellen (bzw. Hemisphären) + - $L_r=p_a + \int_{Omega} L*(k_d*p_d+k_s*p_s) \omega_i*n d\Omega$ + + %![Rendering Equation; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Rendering_Equation.png) + + %\paragraph{Strahlungsquellenarten + - Ambiente Strahlung: - es ist keine "eigentliche" Quelle zuordenbar - stark vereinfachtes Modell für die Streuung der Atmosphäre, für viele "durchmischte" Strahlungsquellen, für indirekte Reflexionen - Strahlung kommt von allen Seiten "Die Quelle ist überall und nirgends" - keine Abhängigkeit von Winkeln und Entfernungen - Beschreibung nur indirekt durch konstante Bestrahlungsstärke (Irradiance) von Flächen möglich - $E=\frac{\Phi}{A}=E_a$ -- Parallele Strahlung: + - Parallele Strahlung: - Strahlung ist gerichtet und parallel (kollimiertes Licht, Strahlungsquelle im Unendlichen, Sonnenlicht) - für derartige Quellen lässt sich kein Ort (aber uneigentlicher Ort, Richtung) angeben - Wichtig sind die Richtung und die Strahlungsleistung, bezogen auf die senkrecht zur Ausbreitungsrichtung stehende Fläche (spezifische Ausstrahlung oder Radiosity $R_e$) $R=E_q=\frac{\Phi}{A_q}$ - für die Schattierungsrechnung lässt sich die Bestrahlungsstärke $E_e$ der Oberfläche (Flächenelement dA) berechnen: $E=\frac{\Phi}{A}=\frac{E_q*A_q}{A}=E_q*\cos(\phi) = E_q*V_I^T*n$ -- Ideale Punktlichtquelle: + - Ideale Punktlichtquelle: - für die Punktquelle ist der Ort bekannt und die Strahlstärke in alle Richtungen konstant: $I=\frac{\Phi}{\Omega}=konstant$ - die Bestrahlungsstärke eines physikalischen vorliegenden, beliebig orientierten Flächenelementes A ergibt sich zu: - - $E=\frac{\Phi}{A}=\frac{I*\Omega}{A}, \Omega=\frac{A}{r^2}*\cos(\phi)*\omega_r \rightarrow E=\frac{I}{r^2}*\cos(\phi)*\omega_r$ + - $E=\frac{\Phi}{A}=\frac{I*\Omega}{A}, \Omega=\frac{A}{r^2}*\cos(\phi)*\omega_r \rightarrow E=\frac{I}{r^2}*\cos(\phi)*\omega_r$ - zum Ausgleich der Adaptionsfähigkeit des menschlichen Auges wird in der Computergrafik oft der folgende Ansatz verwendet: - - $E=\frac{I}{c_1+c_2*|r|+c_3*r^2}*\cos(\phi)*\omega_r$ -- Remittierende Flächen (radiometrische Betrachtung): + - $E=\frac{I}{c_1+c_2*|r|+c_3*r^2}*\cos(\phi)*\omega_r$ + - Remittierende Flächen (radiometrische Betrachtung): - Zur Berechnung der von der reflektierenden Fläche weitergegebenen Strahldichte L sind die weiter oben berechneten Bestrahlungsstärken E für die unterschiedlichen Quellen mit dem Faktor $\frac{\beta(\lambda)}{\pi\omega_r}$ zu bewerten - -| Quelle | Reflexion | Spektale Strahldichte $L(\lambda)$ | -| -- | -- | -- | -| ambient | diffus | $L(\lambda)=\frac{E(\lambda)}{\pi\omega_r}*\beta(\lambda)$ | -| gerichtet | diffus | $L(\lambda)=\frac{E(\lambda)}{\pi\omega_r}*\cos(\phi)*\beta(\lambda)$ | -| punktförmig | diffus | $L(\lambda) = \frac{I(\lambda)}{\pi r^2 }*\cos(\phi)*\beta(\lambda)$ | -| gerichtet diffus | diffus | $L(\lambda)=\frac{I(\lambda)}{\pi r^2 }* \cos^m(\theta)*\cos(\phi)*\beta(\lambda)$ | - - -%\subsection{ Beleuchtungsmodelle -Ein Beleuchtungsmodell ist eine Verfahren in der Computergrafik welches das Verhalten von Licht simuliert. Die Simulation unterscheidet dabei zwischen lokaler und globaler Beleuchtung: -- Lokale Beleuchtungsmodelle: + + | Quelle | Reflexion | Spektale Strahldichte $L(\lambda)$ | + | -- | -- | -- | + | ambient | diffus | $L(\lambda)=\frac{E(\lambda)}{\pi\omega_r}*\beta(\lambda)$ | + | gerichtet | diffus | $L(\lambda)=\frac{E(\lambda)}{\pi\omega_r}*\cos(\phi)*\beta(\lambda)$ | + | punktförmig | diffus | $L(\lambda) = \frac{I(\lambda)}{\pi r^2 }*\cos(\phi)*\beta(\lambda)$ | + | gerichtet diffus | diffus | $L(\lambda)=\frac{I(\lambda)}{\pi r^2 }* \cos^m(\theta)*\cos(\phi)*\beta(\lambda)$ | + + + %\subsection{ Beleuchtungsmodelle + Ein Beleuchtungsmodell ist eine Verfahren in der Computergrafik welches das Verhalten von Licht simuliert. Die Simulation unterscheidet dabei zwischen lokaler und globaler Beleuchtung: + - Lokale Beleuchtungsmodelle: - simulieren das Verhalten von Licht auf den einzelnen Materialoberflächen - nur Beleuchtungseffekte welche direkt durch Lichtquellen auf einzelnen Objekt entstehen - indirekte Beleuchtung bleibt zunächst unberücksichtigt -- Globale Beleuchtungsmodelle: + - Globale Beleuchtungsmodelle: - simulieren die Ausbreitung von Licht innerhalb der Szene - dabei wird die Wechselwirkung in der Szene beachtet (Schatttenwurf, Spiegelung, indirekte Beleuchtung) - -%\paragraph{Phong-Modell -- lokales Beleuchtungsmodell (lässt sich durch BRDF beschreiben) -- eignet sich zur Darstellung von glatten, plastikähnlichen Oberflächen -- baut nicht auf physikalischen Grundlagen auf -- widerspricht dem Energieerhaltungssatz -- Reflexion des Lichts = ambienter+ ideal diffuser + ideal spiegelnder Reflexion - -%![Phong Modell; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Phong_Modell.png) - -- Allgemein: $L=I_{out}=I_{ambient}+I_{diffus}+I_{specular}$ -- Ambiente: $I_{ambient}=I_a * k_a$ mit $I_a$ Intensität des Lichtes und $k_a$ Materialkonstante -- Diffus: $I_{diffus}=I_{in}*k_d*\cos(\phi)$ mit $I_{in}$ Lichtstärke der Punktlichtquelle; $k_d$ empirischem Reflexionsfaktor; $\phi$ Winkel zwischen Oberflächennormale und Richtung des einfallenden Lichtstrahls -- Spiegelnd: $I_{specular}=I_{in}*k_s*\frac{n+2}{2\pi}*\cos^n({\theta})$ mit + + %\paragraph{Phong-Modell + - lokales Beleuchtungsmodell (lässt sich durch BRDF beschreiben) + - eignet sich zur Darstellung von glatten, plastikähnlichen Oberflächen + - baut nicht auf physikalischen Grundlagen auf + - widerspricht dem Energieerhaltungssatz + - Reflexion des Lichts = ambienter+ ideal diffuser + ideal spiegelnder Reflexion + + %![Phong Modell; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Phong_Modell.png) + + - Allgemein: $L=I_{out}=I_{ambient}+I_{diffus}+I_{specular}$ + - Ambiente: $I_{ambient}=I_a * k_a$ mit $I_a$ Intensität des Lichtes und $k_a$ Materialkonstante + - Diffus: $I_{diffus}=I_{in}*k_d*\cos(\phi)$ mit $I_{in}$ Lichtstärke der Punktlichtquelle; $k_d$ empirischem Reflexionsfaktor; $\phi$ Winkel zwischen Oberflächennormale und Richtung des einfallenden Lichtstrahls + - Spiegelnd: $I_{specular}=I_{in}*k_s*\frac{n+2}{2\pi}*\cos^n({\theta})$ mit - $I_{in}$ Lichtstärle des eingallendes Lichtstrahls der Punktlichtquelle - $k_s$ empirisch bestimmter Reflexionsfaktor - $\theta$ Winkel zwischen idealer Reflexionsrichtung des Lichtstrahls und Blickrichtung - $n$ konstante Exponent zur Beschreibung der Oberflächenbeschaffenheit - $\frac{n+2}{2\pi}$ Normalisierungsfaktor zur Helligkeitsregulierung -- Vollständige Formel: $I_{out}=I_a*k_a+I_{in}*k_d*\cos(\phi)+I_{in}*k_s*\frac{n+2}{2\pi}*\cos^n(\theta)$ - -Unterschiedliche Definitionen sind möglich, z.B. mit mehrere Lichtquellen: -- jeweiligen Komponenten für jede Lichtquelle separat berechnet -- diese werden anschließend aufsummiert - -%\paragraph{Cook-Torrance -- Physik-basierte spekulare Reflexion: -- Microfacetten: Grundidee ähnlich Phong-Modell -- Statistische Abweichung der Microfacetten von der Flächennormalen (z. B. Beckmann-Verteilung) -- Streuung des Lichts (Keule) um den Winkel der idealen Spiegelung herum -- Berücksichtigt auch die gegenseitigen Abschattung (insbesondere bei flachen Lichtstrahlen) -- Vollständig physikbasiertes Modell, keine willkürlichen Reflexionskonstanten -- Aufwendige Berechnung (verschiedene Näherungsformeln existieren) -- Beckmann-Verteilung: $l_{spec}=\frac{exp(-\frac{tan^2(\alpha)}{m^2})}{\pi m^2 cos^4 (\alpha)}$, $\alpha=arccos(N*H)$ - -%\section{Schattierungsverfahren -%\subsection{ Direkte Schattierung -Bisher: -- Zerlegung gekrümmter Flächen in Polygone (meist Drei- oder Vierecke) -- Positionen der (Eck-)Punkte und Normalen im 3D sowie der Punkte im 2D-Bild sind bekannt (per Matrixmultiplikation für Transformationen und Projektion) -- Pixelpositionen für Polygone/Dreiecke im Bild per Scanline-Algorithmus -- lokale Beleuchtungsmodelle für 3D-Punkte (z.B. per Phong-Beleuchtungsmodell) - -Jetzt: Wie kommt Farbe (effizient) in die Pixel? -- Wie oft muss lokales Beleuchtungsmodell bei n Pixeln im Dreieck angewendet werden? - -| Verfahren | Anz. | Idee | -| -- | -- | -- | -| Flat-Shading | 1 | eine Berechnung, dann gleiche Farbe für alle Pixel des Dreiecks/Polygons verwenden | -| Gouraud-Shading | 3 | pro Eckpunkt eine Farbe berechnen, dann lineare Interpolation (pro Dreieck) für jedes Pixel | -| Phong-Shading | n | eine Berechnung pro Pixel, davor aber jeweils lineare Interpolation der Normalen pro Pixel | - -→ Phong-Beleuchtungsmodell in jedem der obigen Shading-Verfahren nutzbar -→ hier nur direkte Schattierung (nur lokal, wo sind die Lichtquellen), d.h. nicht global (wie bei Radiosity \& Raytracing) - -%\paragraph{Flat-Shading -Arbeitsweise des Flat-Shadings -- stets nur 1 Farbwert pro (ebener) Fläche, -- Stelle der Berechnung frei wählbar (möglichst repräsentativ), -- repräsentativ wäre z.B.: Punkt (Ort mit Normale) in der Mitte der Fläche -- $\rightarrow$ trivial für Drei- und Vierecke? → für Dreiecke und konvexe Vierecke! - -Auswirkungen -- "flaches" Aussehen und Helligkeitssprünge an den Kanten, das ist: + - Vollständige Formel: $I_{out}=I_a*k_a+I_{in}*k_d*\cos(\phi)+I_{in}*k_s*\frac{n+2}{2\pi}*\cos^n(\theta)$ + + Unterschiedliche Definitionen sind möglich, z.B. mit mehrere Lichtquellen: + - jeweiligen Komponenten für jede Lichtquelle separat berechnet + - diese werden anschließend aufsummiert + + %\paragraph{Cook-Torrance + - Physik-basierte spekulare Reflexion: + - Microfacetten: Grundidee ähnlich Phong-Modell + - Statistische Abweichung der Microfacetten von der Flächennormalen (z. B. Beckmann-Verteilung) + - Streuung des Lichts (Keule) um den Winkel der idealen Spiegelung herum + - Berücksichtigt auch die gegenseitigen Abschattung (insbesondere bei flachen Lichtstrahlen) + - Vollständig physikbasiertes Modell, keine willkürlichen Reflexionskonstanten + - Aufwendige Berechnung (verschiedene Näherungsformeln existieren) + - Beckmann-Verteilung: $l_{spec}=\frac{exp(-\frac{tan^2(\alpha)}{m^2})}{\pi m^2 cos^4 (\alpha)}$, $\alpha=arccos(N*H)$ + + %\section{Schattierungsverfahren + %\subsection{ Direkte Schattierung + Bisher: + - Zerlegung gekrümmter Flächen in Polygone (meist Drei- oder Vierecke) + - Positionen der (Eck-)Punkte und Normalen im 3D sowie der Punkte im 2D-Bild sind bekannt (per Matrixmultiplikation für Transformationen und Projektion) + - Pixelpositionen für Polygone/Dreiecke im Bild per Scanline-Algorithmus + - lokale Beleuchtungsmodelle für 3D-Punkte (z.B. per Phong-Beleuchtungsmodell) + + Jetzt: Wie kommt Farbe (effizient) in die Pixel? + - Wie oft muss lokales Beleuchtungsmodell bei n Pixeln im Dreieck angewendet werden? + + | Verfahren | Anz. | Idee | + | -- | -- | -- | + | Flat-Shading | 1 | eine Berechnung, dann gleiche Farbe für alle Pixel des Dreiecks/Polygons verwenden | + | Gouraud-Shading | 3 | pro Eckpunkt eine Farbe berechnen, dann lineare Interpolation (pro Dreieck) für jedes Pixel | + | Phong-Shading | n | eine Berechnung pro Pixel, davor aber jeweils lineare Interpolation der Normalen pro Pixel | + + $\rightarrow$ Phong-Beleuchtungsmodell in jedem der obigen Shading-Verfahren nutzbar + $\rightarrow$ hier nur direkte Schattierung (nur lokal, wo sind die Lichtquellen), d.h. nicht global (wie bei Radiosity \& Raytracing) + + %\paragraph{Flat-Shading + Arbeitsweise des Flat-Shadings + - stets nur 1 Farbwert pro (ebener) Fläche, + - Stelle der Berechnung frei wählbar (möglichst repräsentativ), + - repräsentativ wäre z.B.: Punkt (Ort mit Normale) in der Mitte der Fläche + - $\rightarrow$ trivial für Drei- und Vierecke? $\rightarrow$ für Dreiecke und konvexe Vierecke! + + Auswirkungen + - "flaches" Aussehen und Helligkeitssprünge an den Kanten, das ist: - schlecht für Fotorealismus, - gut für abstraktere technische Darstellungen und - u.U. wichtig für realistische Darstellung kantiger Körper (insbes. wenn pro Eckpunkt nur eine Normale modelliert ist). -- schneller als die anderen Verfahren, -- u.U. genauso gut wie z.B. Phong-Shading, wenn z.B.: + - schneller als die anderen Verfahren, + - u.U. genauso gut wie z.B. Phong-Shading, wenn z.B.: - das Objekt sehr fein modelliert wurde oder - sehr weit entfernt ist -- $\rightarrow$ d.h. nur ca. 1 Pixel pro Polygon/Dreieck gerendert wird (n==1) - -%\paragraph{Gouraud-Shading -- Gouraud-Shading [H. Gouraud 1971] schattiert Dreiecke (bzw. aus Dreiecken zusammengesetzte Polygone) kontinuierlich, -- beseitigt damit die Diskontinuitäten des Flat-Shadings, -- meist gleiche Normalen pro Vertex, d.h. pro Dreieck wirken oft 3 verschiedene Richtungsvektoren statt nur eine Normale (Dreiecksmitte) wie beim Flat-Shading und -- lineare Interpolation der Schattierung (Intensitäten) im Inneren des Dreiecks aus den 3 Farbwerten der Eckpunkte. -- Es werden "Normalenvektoren" $n_i$ für jeden Eckpunkt $P_i$ des Polygons ermittelt bzw. ausgelesen. -- Die Herleitung der "Normalenvektoren" $n_i$ ist aus der Originaloberfläche (z.B. Zylinder, Kegel, Bèzier-Fläche) oder Nachbarpolygonen möglich. -- Für jeden Eckpunkt: Berechnung der Beleuchtungsintensität $I_i$ (z. B. nach dem Phong-Beleuchtungsmodell). -- Normalen $n_i$ der Eckpunkte werden entweder direkt aus den Flächen (z.B. Regelgeometrien, bei Kugel z.B. Richtung des Radiusvektors) oder aus den Flächennormalen der benachbarten Polygone durch flächengewichtete Mittelung berechnet. -- Die Schattierungsrechnung (RGB-Werte) erfolgt für die Eckpunkte und liefert die reflektierte Leuchtdichte $I_i$ . Zur Erinnerung, das Phong-Beleuchtungsmodell: + - $\rightarrow$ d.h. nur ca. 1 Pixel pro Polygon/Dreieck gerendert wird (n==1) + + %\paragraph{Gouraud-Shading + - Gouraud-Shading [H. Gouraud 1971] schattiert Dreiecke (bzw. aus Dreiecken zusammengesetzte Polygone) kontinuierlich, + - beseitigt damit die Diskontinuitäten des Flat-Shadings, + - meist gleiche Normalen pro Vertex, d.h. pro Dreieck wirken oft 3 verschiedene Richtungsvektoren statt nur eine Normale (Dreiecksmitte) wie beim Flat-Shading und + - lineare Interpolation der Schattierung (Intensitäten) im Inneren des Dreiecks aus den 3 Farbwerten der Eckpunkte. + - Es werden "Normalenvektoren" $n_i$ für jeden Eckpunkt $P_i$ des Polygons ermittelt bzw. ausgelesen. + - Die Herleitung der "Normalenvektoren" $n_i$ ist aus der Originaloberfläche (z.B. Zylinder, Kegel, Bèzier-Fläche) oder Nachbarpolygonen möglich. + - Für jeden Eckpunkt: Berechnung der Beleuchtungsintensität $I_i$ (z. B. nach dem Phong-Beleuchtungsmodell). + - Normalen $n_i$ der Eckpunkte werden entweder direkt aus den Flächen (z.B. Regelgeometrien, bei Kugel z.B. Richtung des Radiusvektors) oder aus den Flächennormalen der benachbarten Polygone durch flächengewichtete Mittelung berechnet. + - Die Schattierungsrechnung (RGB-Werte) erfolgt für die Eckpunkte und liefert die reflektierte Leuchtdichte $I_i$ . Zur Erinnerung, das Phong-Beleuchtungsmodell: - $I_{out}=I_a*k_a+I_{in}*k_d*\cos(\phi)+I_{in}*k_s*\frac{n+2}{2\pi}*\cos^n(\theta)$ - $\cos(\phi)=V^T_I*n_i$, $cos^n(\theta)=(V^T_r * V_e)^n$ -- Nach Anwendung des Beleuchtungsmodells an den Eckpunkten (auch Vertex-Shading genannt) -- Bei der Rasterkonvertierung wird zwischen den Eckwerte $I_i$ linear interpoliert und damit die Intensität jedes Pixels der Rasterlinie berechnet (Intensität I steht hier für die Leuchtdichte oder für Farbwerte usw.) -- Die Interpolation erfolgt nach dem gleichen arithmetischen Muster wie die Interpolation der x-Werte beim Polygonfüllalgorithmus, bzw. der $1/z$-Werte im z-Buffer-Verfahren (d. h. inkrementell, mit Ganzzahlarithmetik). -- Für farbige Oberflächen werden die Leuchtdichten an den Polygonecken durch RGB-Werte beschrieben und ebenso zwischen den Ecken linear interpoliert. -- Resultat: Kontinuierlich schattierte dreidimensionale Oberflächen - -%![Gourad Shading; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Gourad-Shading.png) - -Artefakte des Gouraud-Shading, bedingt durch die lineare Interpolation: -- Fehlen von gut ausgeprägten Glanzlichtern (verwischt oder verschwunden) -- Mach-Band-Effekt: ((helle) Bänder) Kontrastverstärkung durch das Auge an den Übergängen zwischen Polygonen -- Diese Artefakte werden im Folgenden genauer untersucht. - -%#%\paragraph{Fehlende Glanzlichter -Auf Grund der linearen Interpolation von Intensitäten können Glanzlichter, die auf spekulare Reflexion zurückzuführen sind, verloren gehen oder abgeschwächt/verschmiert werden. Das wird umso kritischer, je spitzer die spekulare Reflexion ist (großes n im $\cos^n$- Term). - -Feinere Unterteilung der Oberfläche verbessert Resultat - -%![fehlende Glanzlichter; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Gourad_Glanzlichter.png) - -%#%\paragraph{Mach-Band-Effekt -Die lineare Interpolation der Leuchtdichte zwischen den Polygonkanten entlang der Rasterlinie führt zu einem Verlauf, der durch plötzliche Änderungen im Anstieg der Intensität gekennzeichnet ist (nicht stetig differenzierbar). - -Der Mach-Band-Effekt: physiologisches Phänomen (Ernst Mach, 1865) -- Bei Sprüngen in der Helligkeitsänderung (c0-Stetigkeit, c1-Unstetigkeit, typisch für Approximation durch ebene Polygone beim Gouraud-Shading, z.B. Zylinder) stört dieser Effekt u. U. erheblich. -- Gleiche Information benachbarter Rezeptoren wirkt bei der weiteren visuellen Verarbeitung lateral hemmend auf die lokale Lichtempfindung. -- Modellhaft entstehen neben dem eigentlichen Helleindruck auch "Signale", die dem Helligkeitsgradienten (erste Ableitung) und dem Laplacefilter-Output (Laplacian of Gaussian / LoG, zweite Ableitung) entsprechen. -- Die Empfindung wird insgesamt nicht nur durch die Lichtintensität selbst, sondern auch durch die Überlagerung mit ihrer ersten und zweiten räumlichen Ableitung bestimmt. -- Das führt zu einer Verstärkung von Konturen an "Sprungkanten" (c0-Unstetigkeiten, Intensitätssprünge). In der dunklen Fläche zeigt sich eine dunklere, in den hellen Flächen eine hellere Kantenlinie. Dort, wo Konturen vorhanden sind, ist das vorteilhaft (evolutionäre Entwicklung der menschlichen visuellen Wahrnehmung), obwohl Täuschungen damit verbunden sind (photometrischer Eindruck). - -- zunächst Kanten: Liegen eine helle und eine dunkle Fläche nebeneinander, beobachtet man einen dunklen Streifen auf der dunkleren Seite und einen hellen Streifen auf der helleren Seite (Kontrastverstärkung). -- Bei einer Abfolge von Flächen unterschiedlicher Graufärbung, die in sich keine Farbgraduierung haben, beobachten wir entlang der Grenzen machsche Streifen (nach Ernst Mach 1865). Dabei handelt es sich um helle und dunkle Streifen, die den Kontrast zwischen den Flächen verstärken. [Quelle: Wikipedia] - -%\paragraph{Phong-Shading -Phong-Shading [Phong 1975]: -- Lineare Interpolation der Normalenvektoren zwischen den Polygonecken anstelle von Interpolation der Intensitätswerte (bei Grafikkarten/-software als Pixelshader bekannt). -- Exakte Berechnung der $\cos^n$-Funktion im Phong-Beleuchtungsmodell für jedes Pixel : Glanzlichter werden erhalten! -- Keine Diskontinuität der ersten Ableitung: Mach-Band-Effekt wird vermieden! - - -%\subsection{ 3D-Rendering -Soll nur ein konvexes Objekt gerendert werden, dann ist die Entscheidung, welche Flächen zu zeichnen sind, einfach anhand der jeweiligen Normalen möglich.\\ -Annahme: mehrere konvexe Objekte oder auch konkave Objekte sollen gerendert werden. Verdeckungen sind also möglich! -- Korrekte Behandlung von Verdeckungen bedarf spezieller Ansätze/Datenstrukturen (Lösung des Reihenfolgeproblems). -- Rein opake Szenen sind typischerweise wesentlich leichter zu implementieren als (teilweise) transparente (zusätzlich ein Berechnungsproblem). -- Zeichenreihenfolge ist teilweise wichtig (z.B. von hinten nach vorn), -- Algorithmen/Ansätze unterscheiden sich auch in der Granularität/Genauigkeit was auf einmal gezeichnet/sortiert wird: + - Nach Anwendung des Beleuchtungsmodells an den Eckpunkten (auch Vertex-Shading genannt) + - Bei der Rasterkonvertierung wird zwischen den Eckwerte $I_i$ linear interpoliert und damit die Intensität jedes Pixels der Rasterlinie berechnet (Intensität I steht hier für die Leuchtdichte oder für Farbwerte usw.) + - Die Interpolation erfolgt nach dem gleichen arithmetischen Muster wie die Interpolation der x-Werte beim Polygonfüllalgorithmus, bzw. der $1/z$-Werte im z-Buffer-Verfahren (d. h. inkrementell, mit Ganzzahlarithmetik). + - Für farbige Oberflächen werden die Leuchtdichten an den Polygonecken durch RGB-Werte beschrieben und ebenso zwischen den Ecken linear interpoliert. + - Resultat: Kontinuierlich schattierte dreidimensionale Oberflächen + + %![Gourad Shading; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Gourad-Shading.png) + + Artefakte des Gouraud-Shading, bedingt durch die lineare Interpolation: + - Fehlen von gut ausgeprägten Glanzlichtern (verwischt oder verschwunden) + - Mach-Band-Effekt: ((helle) Bänder) Kontrastverstärkung durch das Auge an den Übergängen zwischen Polygonen + - Diese Artefakte werden im Folgenden genauer untersucht. + + %#%\paragraph{Fehlende Glanzlichter + Auf Grund der linearen Interpolation von Intensitäten können Glanzlichter, die auf spekulare Reflexion zurückzuführen sind, verloren gehen oder abgeschwächt/verschmiert werden. Das wird umso kritischer, je spitzer die spekulare Reflexion ist (großes n im $\cos^n$- Term). + + Feinere Unterteilung der Oberfläche verbessert Resultat + + %![fehlende Glanzlichter; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Gourad_Glanzlichter.png) + + %#%\paragraph{Mach-Band-Effekt + Die lineare Interpolation der Leuchtdichte zwischen den Polygonkanten entlang der Rasterlinie führt zu einem Verlauf, der durch plötzliche Änderungen im Anstieg der Intensität gekennzeichnet ist (nicht stetig differenzierbar). + + Der Mach-Band-Effekt: physiologisches Phänomen (Ernst Mach, 1865) + - Bei Sprüngen in der Helligkeitsänderung (c0-Stetigkeit, c1-Unstetigkeit, typisch für Approximation durch ebene Polygone beim Gouraud-Shading, z.B. Zylinder) stört dieser Effekt u. U. erheblich. + - Gleiche Information benachbarter Rezeptoren wirkt bei der weiteren visuellen Verarbeitung lateral hemmend auf die lokale Lichtempfindung. + - Modellhaft entstehen neben dem eigentlichen Helleindruck auch "Signale", die dem Helligkeitsgradienten (erste Ableitung) und dem Laplacefilter-Output (Laplacian of Gaussian / LoG, zweite Ableitung) entsprechen. + - Die Empfindung wird insgesamt nicht nur durch die Lichtintensität selbst, sondern auch durch die Überlagerung mit ihrer ersten und zweiten räumlichen Ableitung bestimmt. + - Das führt zu einer Verstärkung von Konturen an "Sprungkanten" (c0-Unstetigkeiten, Intensitätssprünge). In der dunklen Fläche zeigt sich eine dunklere, in den hellen Flächen eine hellere Kantenlinie. Dort, wo Konturen vorhanden sind, ist das vorteilhaft (evolutionäre Entwicklung der menschlichen visuellen Wahrnehmung), obwohl Täuschungen damit verbunden sind (photometrischer Eindruck). + + - zunächst Kanten: Liegen eine helle und eine dunkle Fläche nebeneinander, beobachtet man einen dunklen Streifen auf der dunkleren Seite und einen hellen Streifen auf der helleren Seite (Kontrastverstärkung). + - Bei einer Abfolge von Flächen unterschiedlicher Graufärbung, die in sich keine Farbgraduierung haben, beobachten wir entlang der Grenzen machsche Streifen (nach Ernst Mach 1865). Dabei handelt es sich um helle und dunkle Streifen, die den Kontrast zwischen den Flächen verstärken. [Quelle: Wikipedia] + + %\paragraph{Phong-Shading + Phong-Shading [Phong 1975]: + - Lineare Interpolation der Normalenvektoren zwischen den Polygonecken anstelle von Interpolation der Intensitätswerte (bei Grafikkarten/-software als Pixelshader bekannt). + - Exakte Berechnung der $\cos^n$-Funktion im Phong-Beleuchtungsmodell für jedes Pixel : Glanzlichter werden erhalten! + - Keine Diskontinuität der ersten Ableitung: Mach-Band-Effekt wird vermieden! + + + %\subsection{ 3D-Rendering + Soll nur ein konvexes Objekt gerendert werden, dann ist die Entscheidung, welche Flächen zu zeichnen sind, einfach anhand der jeweiligen Normalen möglich.\\ + Annahme: mehrere konvexe Objekte oder auch konkave Objekte sollen gerendert werden. Verdeckungen sind also möglich! + - Korrekte Behandlung von Verdeckungen bedarf spezieller Ansätze/Datenstrukturen (Lösung des Reihenfolgeproblems). + - Rein opake Szenen sind typischerweise wesentlich leichter zu implementieren als (teilweise) transparente (zusätzlich ein Berechnungsproblem). + - Zeichenreihenfolge ist teilweise wichtig (z.B. von hinten nach vorn), + - Algorithmen/Ansätze unterscheiden sich auch in der Granularität/Genauigkeit was auf einmal gezeichnet/sortiert wird: - Objekte (ganze Objekte nach z-Position sortieren, dann jeweils zeichnen...) - allg. (d.h. ggfs. überlappende) Polygone: Painters-Algorithmus, - überlappungsfreie Dreiecke/Polygone: Depth-Sort-Algorithmus, - Pixel: Z-Buffer-Verfahren (oft auch in Verbindung mit Obj.-Sort.) -- Beliebte Testszene sind sich zyklisch überlappende Dreicke, z.B. - -%\paragraph{Painter’s-Algorithmus -- Gegeben sei eine 3D-Szene, bestehend aus grauen Polygonen mit diffus reflektierender Oberfläche, sowie eine gerichtete Lichtquelle. -- Für jedes Polygon wird die reflektierte Strahldichte L auf Basis des eingestrahlten Lichts (Richtung \& Stärke) und der Flächennormale berechnet: + - Beliebte Testszene sind sich zyklisch überlappende Dreicke, z.B. + + %\paragraph{Painter’s-Algorithmus + - Gegeben sei eine 3D-Szene, bestehend aus grauen Polygonen mit diffus reflektierender Oberfläche, sowie eine gerichtete Lichtquelle. + - Für jedes Polygon wird die reflektierte Strahldichte L auf Basis des eingestrahlten Lichts (Richtung \& Stärke) und der Flächennormale berechnet: - $I_{out} = L = I_{in}* k_d * \cos(\phi)$ -- Die Polygone werden mittels perspektivischer Kameratransformation (4 x 4 Matrix) in das Kamera-Koordinatensystem (Bildraum) transformiert und nach absteigendem z-Wert (Distanz des Polygonschwerpunkts zum Betrachter) sortiert. -- Die sortierten Polygone werden der Reihe nach (entfernte zuerst) mit dem 2D-Polygonfüllalgorithmus in das Pixelraster der x/y-Bildebene konvertiert. -- Die Pixel für jedes Polygon werden per Overwrite-Modus mit dem Farbwert L (nach obiger Berechnung) im Bildspeicher gespeichert. -- Die Verdeckungsprobleme lösen sich durch die Reihenfolge quasi automatisch. - -Gleichnis: Der Algorithmus arbeitet wie ein Maler, der zuerst den Hintergrund und dann Schritt für Schritt das jeweils weiter vorn liegende Objekt (oder Polygon bzw. Dreieck) zeichnet - und dabei die dahinterliegenden verdeckt. ABER, potentielle Probleme des Painter’s-Algorithmus: selbst bei Dreiecken sind trotzdem falsche Verdeckungen möglich! - -%\paragraph{Depth-Sort-Algorithmus -- Unterteilung in sich nicht überlappende und vollständig überdeckende Teilpolygone -- Ist in der Projektionsebene durch gegenseitigen Schnitt aller Polygone möglich (allerdings blickabhängig – muss in jedem Bild neu berechnet werden!). -- Die sichtbaren Teilpolygone können nun ausgegeben werden: + - Die Polygone werden mittels perspektivischer Kameratransformation (4 x 4 Matrix) in das Kamera-Koordinatensystem (Bildraum) transformiert und nach absteigendem z-Wert (Distanz des Polygonschwerpunkts zum Betrachter) sortiert. + - Die sortierten Polygone werden der Reihe nach (entfernte zuerst) mit dem 2D-Polygonfüllalgorithmus in das Pixelraster der x/y-Bildebene konvertiert. + - Die Pixel für jedes Polygon werden per Overwrite-Modus mit dem Farbwert L (nach obiger Berechnung) im Bildspeicher gespeichert. + - Die Verdeckungsprobleme lösen sich durch die Reihenfolge quasi automatisch. + + Gleichnis: Der Algorithmus arbeitet wie ein Maler, der zuerst den Hintergrund und dann Schritt für Schritt das jeweils weiter vorn liegende Objekt (oder Polygon bzw. Dreieck) zeichnet - und dabei die dahinterliegenden verdeckt. ABER, potentielle Probleme des Painter’s-Algorithmus: selbst bei Dreiecken sind trotzdem falsche Verdeckungen möglich! + + %\paragraph{Depth-Sort-Algorithmus + - Unterteilung in sich nicht überlappende und vollständig überdeckende Teilpolygone + - Ist in der Projektionsebene durch gegenseitigen Schnitt aller Polygone möglich (allerdings blickabhängig - muss in jedem Bild neu berechnet werden!). + - Die sichtbaren Teilpolygone können nun ausgegeben werden: - Zeichnen der nicht überlappenden Teilpolygone - Von den sich vollständig überlappenden Teilpolygonen wird nur das vordere gezeichnet. - -%![Depth Sorth Algorithmus; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Depth-Sort-Algorithmus.png) - -- Eine einfache, nicht blickwinkelabhängige Unterteilung tut es in diesem Falle auch! -- Die Teilpolygone sollten dabei möglichst nicht größer sein als der Tiefenunterschied, damit sie in jeder Situation eindeutig sortiert werden können! -- Die 6 Teilpolygone können mittels Painter‘s Algorithmus korrekt sortiert und dargestellt werden - -Anwendungsbereiche des Painter ́s Algorithmus / Depth-Sort Algorithmus: -- Einfache Szenen, kleine Objekte, die sich in den z-Werten hinreichend unterscheiden. -- Dort, wo keine Hardware-Unterstützung für 3D-Rendering angeboten wird (begrenzter Speicher, keine Z-Buffer Unterstützung). -- Viele 2D-Grafiksystem bieten bereits Polygonfüllverfahren an. -- Ähnliche Vorgehensweise wird auch für das Schattieren von semi-transparenten Flächen notwendig (s. später)! - -Als Sortierverfahren für Echtzeitsysteme eignet sich z.B. "Insertion-Sort": -- Begründung: Von Bild zu Bild ändert sich die Tiefenwerte (und damit die Reihenfolge) der Polygone relativ wenig. Damit sind die Polygone beim nächsten Bild bereits mehr oder weniger vorsortiert (nur wenige Polygone) müssen neu einsortiert werden. Die Komplexität von Insertion-Sort wird bei bereits sortierten Listen linear (O-Notation / best case). -- Folglich tritt beim Painters-Algorithmus der best case sehr häufig ein (außer beim ersten Bild, wo man vom average case ausgehen kann– hier wird die Komplexität quadratisch). - -%\paragraph{Z-Buffer-Verfahren -- Einer der einfachsten "visible surface"-Algorithmen (CATMULL 1974) -- Probleme des Painters-Algorithmus werden überwunden durch zusätzliche Berechnung des z-Wertes für jeden Punkt jedes Polygons und Speicherung des zur Projektionsebene nächstliegenden Farb- und Z-Wertes. -- Dazu ist ein zusätzlicher Speicher (z-Buffer) für jedes Pixel notwendig. -- Es sind weder Vorsortieren von Objekten noch Polygonzerlegung erforderlich (wenn alle Objekte opak sind). - -Initialisierung: Für alle Pixel -- Setze Farbe auf Hintergrundfarbe (z.B. Weiß) -- Setze alle Z -Werte auf $\infty$ (max. ganzzahliger Wert) -- Setze Z min auf Wert der Near-Plane - -Für alle Polygone (im 3D-Kamerakoordinatensystem) -- Rasterumwandlung in der Projektionsebene ($x_p/y_p$ Koordinaten) durch modifizierten 2D-Polygonfüllalgorithmus. Modifiziert heißt: zusätzliche Berechnung des z-Wertes für jedes Pixel -- Anwendung einer Write Pixel ZB-Prozedur: + + %![Depth Sorth Algorithmus; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Depth-Sort-Algorithmus.png) + + - Eine einfache, nicht blickwinkelabhängige Unterteilung tut es in diesem Falle auch! + - Die Teilpolygone sollten dabei möglichst nicht größer sein als der Tiefenunterschied, damit sie in jeder Situation eindeutig sortiert werden können! + - Die 6 Teilpolygone können mittels Painter‘s Algorithmus korrekt sortiert und dargestellt werden + + Anwendungsbereiche des Painter ́s Algorithmus / Depth-Sort Algorithmus: + - Einfache Szenen, kleine Objekte, die sich in den z-Werten hinreichend unterscheiden. + - Dort, wo keine Hardware-Unterstützung für 3D-Rendering angeboten wird (begrenzter Speicher, keine Z-Buffer Unterstützung). + - Viele 2D-Grafiksystem bieten bereits Polygonfüllverfahren an. + - Ähnliche Vorgehensweise wird auch für das Schattieren von semi-transparenten Flächen notwendig (s. später)! + + Als Sortierverfahren für Echtzeitsysteme eignet sich z.B. "Insertion-Sort": + - Begründung: Von Bild zu Bild ändert sich die Tiefenwerte (und damit die Reihenfolge) der Polygone relativ wenig. Damit sind die Polygone beim nächsten Bild bereits mehr oder weniger vorsortiert (nur wenige Polygone) müssen neu einsortiert werden. Die Komplexität von Insertion-Sort wird bei bereits sortierten Listen linear (O-Notation / best case). + - Folglich tritt beim Painters-Algorithmus der best case sehr häufig ein (außer beim ersten Bild, wo man vom average case ausgehen kann- hier wird die Komplexität quadratisch). + + %\paragraph{Z-Buffer-Verfahren + - Einer der einfachsten "visible surface"-Algorithmen (CATMULL 1974) + - Probleme des Painters-Algorithmus werden überwunden durch zusätzliche Berechnung des z-Wertes für jeden Punkt jedes Polygons und Speicherung des zur Projektionsebene nächstliegenden Farb- und Z-Wertes. + - Dazu ist ein zusätzlicher Speicher (z-Buffer) für jedes Pixel notwendig. + - Es sind weder Vorsortieren von Objekten noch Polygonzerlegung erforderlich (wenn alle Objekte opak sind). + + Initialisierung: Für alle Pixel + - Setze Farbe auf Hintergrundfarbe (z.B. Weiß) + - Setze alle Z -Werte auf $\infty$ (max. ganzzahliger Wert) + - Setze Z min auf Wert der Near-Plane + + Für alle Polygone (im 3D-Kamerakoordinatensystem) + - Rasterumwandlung in der Projektionsebene ($x_p/y_p$ Koordinaten) durch modifizierten 2D-Polygonfüllalgorithmus. Modifiziert heißt: zusätzliche Berechnung des z-Wertes für jedes Pixel + - Anwendung einer Write Pixel ZB-Prozedur: - Wenn der z-Wert des aktuellen Pixels (im abzuarbeitenden Polygon) kleiner als der bereits abgespeicherte z-Wert ($z_p$) an dieser Position ist, wird im z-Buffer bei $x_p , y_p$ die Farbe sowie $z_p$ ) überschrieben (mit den neuen Werten). - Sonst: alte Werte im Speicher bleiben erhalten -- Die näher an der Kamera liegen Pixel überschreiben somit die weiter weg liegenden. -- Pixelgenaue Sichtbarkeitsbestimmung und -behandlung der Polygone - -Berechnen der z-Werte durch lineare Interpolation: -- Die Tiefenwerte sind auch nach der Ansichten-Transformation (View-Transformation) zunächst nur für die Eckpunkte gegeben. -- Zunächst erfolgt die lineare Interpolation der z-Werte entlang der Polygonkanten $P_i P_j$ für die y-Position der gerade aktuellen Scanline -- Danach wird mit dem Füllen der Bildzeile (z.B. durch einen konventionellen Polygonfüll-Algorithmus) die Interpolation der z-Werte entsprechend der x-Position in der Scanline (Bildzeile) fortgesetzt (pixelgenaues Befüllen des z-Buffers). - -Berechnung der z-Werte eines Pixels x/y: -- Die y-Koordinate reicht zur Interpolation von $z_A$ und $z_B$ (Strahlensatz). -- Pixel-z-Wert $z_p$ wird äquivalent ermittelt, allerdings die Interpolationskoordinate jetzt x (y = const für die Rasterlinie) -- Die Werte $z_A, z_B, x_A, x_B$, in $z_p$ werden gleichzeitig mit den $x_A$-Werten (Schnitte) von einer Rasterlinie zur nächsten inkrementiert (s. Polygonfüllalgorithmus) -- Die Brüche bleiben in allen Ausdrücken rational. -- Die Ausdrücke für die z-Werte haben identische Form wie die der x-Werte beim Polygonfüllalgorithmus. - -Immer Ganzzahlarithmetik! (ähnlich wie x-Werte im Polygonfüllagorithmus) - -Beispiel: Mögliche Berechnungen eines Tiefenwertes der Pixel\\ -- Als Beispiel dient hier eine Tischplatte (Rechteck, Größe 3m x 1m) in der Perspektive -- Achtung: Eine lineare Interpolation der z-Werte im Bildraum (links) ist nicht wirklich korrekt! (höchstens als Näherung, OK für kleine nahe Flächen) -- $\frac{1}{z}$ kann exakt linear in x- \& y-Richtung interpoliert werden (Abbildung rechts). -- Da $z_1$ abnimmt, wenn z zunimmt, muss aber der z-Test invertiert werden! -- positive Auswirkung: Tiefeninfos naher Obj. werden mit höherer z-Genauigkeit gespeichert als weiter von der Kamera entfernte. Statistisch gesehen gibt es damit weniger "z-Fighting“-Effekte (z.B. bei Bewegungen willkürliche Farbwechsel zwischen den Farben von Objekten mit nahezu der selben Tiefeninfo im z-Buffer). - -%![Z-Buffer-Beispiel; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Z-buffer-verfahren.png) - -- Das Ergebnis des Z-Buffer-Verfahrens ist vergleichbar mit dem Painters-Algorithmus. -- Es ist jedoch bei opaken Objekten keine vorgängige Sortierung der Polygone nötig. Sie können in beliebiger Reihenfolge gezeichnet werden. -- Die Interpolation der 1/z-Werte erfolgt im Polygonfüll-Algorithmus durch wenige Ganzzahl-Operationen (wie bei den x-Werten) -- Das Verfahren ist pixelgenau: Es werden auch zyklisch sich überlappende (und sogar räumlich sich durchdringende) Polygone korrekt dargestellt. -- Kaum Mehraufwand gegenüber dem 2D-Polygonfüllalgorithmus! -- Mögliches Problem: Korrekte Berücksichtigung von Transparenzen! - -%\paragraph{Transparenz -Alpha-Blending-Verfahren: -- Annahme: Verwendung eines Z-Buffers -- Mit dem Alpha-Blending-Verfahren kann die transparente Überlagerung zweier Objekte im Bildspeicher wie folgt gelöst werden + - Die näher an der Kamera liegen Pixel überschreiben somit die weiter weg liegenden. + - Pixelgenaue Sichtbarkeitsbestimmung und -behandlung der Polygone + + Berechnen der z-Werte durch lineare Interpolation: + - Die Tiefenwerte sind auch nach der Ansichten-Transformation (View-Transformation) zunächst nur für die Eckpunkte gegeben. + - Zunächst erfolgt die lineare Interpolation der z-Werte entlang der Polygonkanten $P_i P_j$ für die y-Position der gerade aktuellen Scanline + - Danach wird mit dem Füllen der Bildzeile (z.B. durch einen konventionellen Polygonfüll-Algorithmus) die Interpolation der z-Werte entsprechend der x-Position in der Scanline (Bildzeile) fortgesetzt (pixelgenaues Befüllen des z-Buffers). + + Berechnung der z-Werte eines Pixels x/y: + - Die y-Koordinate reicht zur Interpolation von $z_A$ und $z_B$ (Strahlensatz). + - Pixel-z-Wert $z_p$ wird äquivalent ermittelt, allerdings die Interpolationskoordinate jetzt x (y = const für die Rasterlinie) + - Die Werte $z_A, z_B, x_A, x_B$, in $z_p$ werden gleichzeitig mit den $x_A$-Werten (Schnitte) von einer Rasterlinie zur nächsten inkrementiert (s. Polygonfüllalgorithmus) + - Die Brüche bleiben in allen Ausdrücken rational. + - Die Ausdrücke für die z-Werte haben identische Form wie die der x-Werte beim Polygonfüllalgorithmus. + + Immer Ganzzahlarithmetik! (ähnlich wie x-Werte im Polygonfüllagorithmus) + + Beispiel: Mögliche Berechnungen eines Tiefenwertes der Pixel\\ + - Als Beispiel dient hier eine Tischplatte (Rechteck, Größe 3m x 1m) in der Perspektive + - Achtung: Eine lineare Interpolation der z-Werte im Bildraum (links) ist nicht wirklich korrekt! (höchstens als Näherung, OK für kleine nahe Flächen) + - $\frac{1}{z}$ kann exakt linear in x- \& y-Richtung interpoliert werden (Abbildung rechts). + - Da $z_1$ abnimmt, wenn z zunimmt, muss aber der z-Test invertiert werden! + - positive Auswirkung: Tiefeninfos naher Obj. werden mit höherer z-Genauigkeit gespeichert als weiter von der Kamera entfernte. Statistisch gesehen gibt es damit weniger "z-Fighting“-Effekte (z.B. bei Bewegungen willkürliche Farbwechsel zwischen den Farben von Objekten mit nahezu der selben Tiefeninfo im z-Buffer). + + %![Z-Buffer-Beispiel; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Z-buffer-verfahren.png) + + - Das Ergebnis des Z-Buffer-Verfahrens ist vergleichbar mit dem Painters-Algorithmus. + - Es ist jedoch bei opaken Objekten keine vorgängige Sortierung der Polygone nötig. Sie können in beliebiger Reihenfolge gezeichnet werden. + - Die Interpolation der 1/z-Werte erfolgt im Polygonfüll-Algorithmus durch wenige Ganzzahl-Operationen (wie bei den x-Werten) + - Das Verfahren ist pixelgenau: Es werden auch zyklisch sich überlappende (und sogar räumlich sich durchdringende) Polygone korrekt dargestellt. + - Kaum Mehraufwand gegenüber dem 2D-Polygonfüllalgorithmus! + - Mögliches Problem: Korrekte Berücksichtigung von Transparenzen! + + %\paragraph{Transparenz + Alpha-Blending-Verfahren: + - Annahme: Verwendung eines Z-Buffers + - Mit dem Alpha-Blending-Verfahren kann die transparente Überlagerung zweier Objekte im Bildspeicher wie folgt gelöst werden - $C_f$ Farbe des Objekts im Vordergrund (kleinster z-Wert), - $\alpha$ Opazität der Vordergrundfarbe, Wert zwischen 0 und 1 (bzw. 100%), - $C_b$ Hintergrundfarbe (die im Bildspeicher für das entsprechende Pixel zuletzt eingetragene Farbe) -- Die resultierende Farbe C ergibt sich zu: $C=\alpha*C_f+(1-\alpha)*C_b$ -- Für Alpha-Blending wird der Bildspeicher (mit z-Buffer) um den Opazitätswert $\alpha$ erweitert: + - Die resultierende Farbe C ergibt sich zu: $C=\alpha*C_f+(1-\alpha)*C_b$ + - Für Alpha-Blending wird der Bildspeicher (mit z-Buffer) um den Opazitätswert $\alpha$ erweitert: - Speicherbedarf pro Pixel typischerweise mindestens 48 Bit: R + G + B + Z + $\alpha$. - Bei einer Auflösung des Bildschirms von 1.000.000 Pixel benötigen wir ca. 6MB Speicher. - z-Wert und $\alpha$-Wert des Vordergrund Objektes werden nach dem Alpha-Blending in den Bildspeicher übernommen! - -%![Transparenz Probleme](Assets/Computergrafik_Transparenz-Fehler.png) - -- Reines Z-Buffering (ohne $\alpha$) ignoriert alle Objektepixel, die weiter entfernt sind als vorn liegende Objektpixel (siehe rechts, hier ist die Reihenfolge egal). -- Bei Berücksichtigung von $\alpha$-Werten (Transparenzen) ist die Renderreihenfolge für korrekte Ergebnisse aber sehr wichtig! (siehe Mitte bzw. links) - -- Erläuterung zum Transparenz-Problem: + + %![Transparenz Probleme](Assets/Computergrafik_Transparenz-Fehler.png) + + - Reines Z-Buffering (ohne $\alpha$) ignoriert alle Objektepixel, die weiter entfernt sind als vorn liegende Objektpixel (siehe rechts, hier ist die Reihenfolge egal). + - Bei Berücksichtigung von $\alpha$-Werten (Transparenzen) ist die Renderreihenfolge für korrekte Ergebnisse aber sehr wichtig! (siehe Mitte bzw. links) + + - Erläuterung zum Transparenz-Problem: - Die Formel für $\alpha$-Blending berücksichtigt nur die Überlagerung des aktuellen Objektes mit dem davor existierenden Bildschirminhalt. Wird ein dazwischenliegendes Objekt nachträglich gezeichnet, dann kann die Farbe nicht korrekt bestimmt werden. Dies passiert aber beim Z-Buffering, da die Zeichenreihenfolge der Polygone beliebig ist. -- **Im Beispiel** - - Die opake grüne Kreisscheibe liegt zwischen dem hinteren Objekt (blau) und dem transparenten vorderen Objekt (rot), wird aber als letztes gerendert. → Grün kann Blau nicht mehr verdecken, denn Blau wurde zuvor schon mit Rot verrechnet (ist nun mit "vorderer" z-Koordinate im Z-Buffer hinterlegt). Dort, wo die grüne Kreisscheibe hinter dem transparenten Rot (bzw. dem nun Rot-Blau) liegt wird ein nicht korrekter Blauanteil gezeigt. Auch der weiße Hintergrund kann hinter dem transparenten Rot (insgesamt ein transparentes Rosa) nicht mehr vom Grün verdeckt werden! -- algorithmische Lösung des Problems: + - **Im Beispiel** + - Die opake grüne Kreisscheibe liegt zwischen dem hinteren Objekt (blau) und dem transparenten vorderen Objekt (rot), wird aber als letztes gerendert. $\rightarrow$ Grün kann Blau nicht mehr verdecken, denn Blau wurde zuvor schon mit Rot verrechnet (ist nun mit "vorderer" z-Koordinate im Z-Buffer hinterlegt). Dort, wo die grüne Kreisscheibe hinter dem transparenten Rot (bzw. dem nun Rot-Blau) liegt wird ein nicht korrekter Blauanteil gezeigt. Auch der weiße Hintergrund kann hinter dem transparenten Rot (insgesamt ein transparentes Rosa) nicht mehr vom Grün verdeckt werden! + - algorithmische Lösung des Problems: - Zuerst: Darstellung aller opaken Objekte ($\alpha$ = 1) nach dem Z-Buffering (reihenfolgeunabhängig) - Dann Sortieren aller semitransparenten Polygone nach der Tiefe und Zeichnen nach dem Painters-Algorithmus unter Berücksichtigung des Z-Buffers mittels Alpha-Blending! - - Restfehler: sich zyklisch überlappende oder sich durchdringende semi-transparente Flächen → exakte Behandlung durch die vorn beschriebenen Maßnahmen (Unterteilung der Polygone notwendig!) - -%\section{Globale Beleuchtung -- BRDF: physikbasiertes, lokales Reflektionsmodell (Lichtquelle auf Material) → Funktion von Einfalls-, Betrachterwinkel, Wellenlänge (bzw. -breiche) -- Rendergleichung (Kajiya) = BRDF, Integral über alle Lichtquellen (bzw. Hemisphäre) -- Approximation durch lokales Phong-Beleuchtungsmodell → für "einfache" Materialien und Lichtquellen "korrekt genug" -- direkte (lokale) Schattierungsverfahren (Flat-, Gouraud- und Phong-Shading) -- Was noch fehlt: Interreflektionen zwischen Objekten... + - Restfehler: sich zyklisch überlappende oder sich durchdringende semi-transparente Flächen $\rightarrow$ exakte Behandlung durch die vorn beschriebenen Maßnahmen (Unterteilung der Polygone notwendig!) + + %\section{Globale Beleuchtung + - BRDF: physikbasiertes, lokales Reflektionsmodell (Lichtquelle auf Material) $\rightarrow$ Funktion von Einfalls-, Betrachterwinkel, Wellenlänge (bzw. -breiche) + - Rendergleichung (Kajiya) = BRDF, Integral über alle Lichtquellen (bzw. Hemisphäre) + - Approximation durch lokales Phong-Beleuchtungsmodell $\rightarrow$ für "einfache" Materialien und Lichtquellen "korrekt genug" + - direkte (lokale) Schattierungsverfahren (Flat-, Gouraud- und Phong-Shading) + - Was noch fehlt: Interreflektionen zwischen Objekten... - globale Beleuchtung, d.h. jede Fläche kann als Lichtquelle dienen - -%\subsection{ Ray-Tracing -einfaches Ray-Tracing: Strahlenverfolgung, nicht rekursiv -- Strahlen vom Augpunkt (Ursprung des Kamerakoordinatensystems) durch jedes Pixel des Rasters senden → keine Löcher -- Schnittpunktberechnung mit allen Objekten → Schnittpunkt mit dem größtem z-Wert stammt vom sichtbaren Objekt -- Strahlverfolgung (Anwendung des BRDF-Reziprozitätsprinzips) und Aufsummierung der (Lichtquellen-)Anteile aufgrund von material- und geometrieabhängigen Parametern (ggf. neben Relflektion auch Brechung) → Ergebnis: Helligkeits-/Farbwert pro Pixel -- Bestimmung der diffusen und spekularen Lichtreflexion nach dem Phong-Beleuchtungsmodell -- Bis hier nur einfache, lokale Beleuchtung (keine Spiegelung, Schatten, indirekte Beleuchtung)! → Vorzüge des RT kommen erst bei rekursivem Raytracing zum Tragen! - - -%\paragraph{Rekursiver Ansatz -- Berechnung von Sekundärstrahlen am Auftreffpunkt (Reflexions- und Schattenfühler) -- Annäherung der Interreflektionen (mehrfache Reflexion zwischen den Objekten) durch ideale Spiegelung, d.h. Spiegelung des primären Strahls an $\bar{n}$ im Auftreffpunkt und Erzeugung des sekundären Strahls -- beim Auftreffen des Strahls auf ein weiteres Objekt B Berechnung der diffusen und spekularen Reflexion der jeweiligen Lichtquelle (Schattenfühler, Phong-Modell) sowie Erzeugung eines weiteren Strahls durch ideale Spiegelung -- Addition der Sekundärstrahlen an Objekt B zum Farbwert des Pixel am Objekt A (Anteil bei jeder weiteren Rekursion meistens fallend, da reflektierter Anteil bei jeder Reflexion abgeschwächt wird) → Rekursion kann abgebrochen werden, wenn Beitrag vernachlässigbar! - - -%\paragraph{Brechungseffekte -Transparenz unter Berücksichtigung der Brechung beim Ray-Tracing: Richtung des gebrochenen Strahls berechnet sich aus dem Einfallswinkel zum Normalenvektor sowie den material- und wellenlängenabhängen Brechungsindices. -$$\eta_{e\lambda}*sin(\theta_e) = \eta_{t\lambda}*sin(\theta_t)$$ -Beispiel Luft-Glas: $\eta_{\text{Luft, rot}}*\sin(\theta_{\text{Luft}})=\eta_{\text{Glas,rot}}*sin(\theta_{\text{Glas}}) \Rightarrow 1.0*\sin(30°)=1.5*sin(\theta_{\text{Glas}})\rightarrow \theta_{\text{Glas}} \approx \arcsin(\frac{\sin(30°)}{1.5})\approx 20°$ - -%![Brechungseffekt; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Brechungseffekt.png) -Die Farbe im betrachteten Punkt wird nicht durch die Farbe von Hintergrundobjekt B1 (wie im Fall nichtbrechender Transparenz) sondern durch die Farbe von B2 beeinflusst! - -Berechnung des Einheitsvektors $\vec{V}_t(\vec{V}_e,n,\theta_t)$ in Richtung der Brechung: -- An Grenzflächen mit unterschiedlichen Brechungsindizes tritt neben der Transparenz ($\vec{V}_t$) auch Reflexion (Komponente mit der Richtung $\vec{V}_r$) auf. -- $\vec{M}$ ist ein Einheitsvektor (Länge=1) mit der Richtung von $\vec{n}*\cos(\theta_e)-\vec{V}_e$ und -- es gilt: $\vec{M}*sin(\theta_e)=\vec{n}*\cos(\theta_e)-\vec{V}_e \rightarrow \vec{M}=\frac{\vec{n}*\cos(\theta_e)-\vec{V}_e}{\sin(\theta_e)}$ -- Effekte an transparentem Material: + + %\subsection{ Ray-Tracing + einfaches Ray-Tracing: Strahlenverfolgung, nicht rekursiv + - Strahlen vom Augpunkt (Ursprung des Kamerakoordinatensystems) durch jedes Pixel des Rasters senden $\rightarrow$ keine Löcher + - Schnittpunktberechnung mit allen Objekten $\rightarrow$ Schnittpunkt mit dem größtem z-Wert stammt vom sichtbaren Objekt + - Strahlverfolgung (Anwendung des BRDF-Reziprozitätsprinzips) und Aufsummierung der (Lichtquellen-)Anteile aufgrund von material- und geometrieabhängigen Parametern (ggf. neben Relflektion auch Brechung) $\rightarrow$ Ergebnis: Helligkeits-/Farbwert pro Pixel + - Bestimmung der diffusen und spekularen Lichtreflexion nach dem Phong-Beleuchtungsmodell + - Bis hier nur einfache, lokale Beleuchtung (keine Spiegelung, Schatten, indirekte Beleuchtung)! $\rightarrow$ Vorzüge des RT kommen erst bei rekursivem Raytracing zum Tragen! + + + %\paragraph{Rekursiver Ansatz + - Berechnung von Sekundärstrahlen am Auftreffpunkt (Reflexions- und Schattenfühler) + - Annäherung der Interreflektionen (mehrfache Reflexion zwischen den Objekten) durch ideale Spiegelung, d.h. Spiegelung des primären Strahls an $\bar{n}$ im Auftreffpunkt und Erzeugung des sekundären Strahls + - beim Auftreffen des Strahls auf ein weiteres Objekt B Berechnung der diffusen und spekularen Reflexion der jeweiligen Lichtquelle (Schattenfühler, Phong-Modell) sowie Erzeugung eines weiteren Strahls durch ideale Spiegelung + - Addition der Sekundärstrahlen an Objekt B zum Farbwert des Pixel am Objekt A (Anteil bei jeder weiteren Rekursion meistens fallend, da reflektierter Anteil bei jeder Reflexion abgeschwächt wird) $\rightarrow$ Rekursion kann abgebrochen werden, wenn Beitrag vernachlässigbar! + + + %\paragraph{Brechungseffekte + Transparenz unter Berücksichtigung der Brechung beim Ray-Tracing: Richtung des gebrochenen Strahls berechnet sich aus dem Einfallswinkel zum Normalenvektor sowie den material- und wellenlängenabhängen Brechungsindices. + $$\eta_{e\lambda}*sin(\theta_e) = \eta_{t\lambda}*sin(\theta_t)$$ + Beispiel Luft-Glas: $\eta_{\text{Luft, rot}}*\sin(\theta_{\text{Luft}})=\eta_{\text{Glas,rot}}*sin(\theta_{\text{Glas}}) \Rightarrow 1.0*\sin(30^\circ)=1.5*sin(\theta_{\text{Glas}})\rightarrow \theta_{\text{Glas}} \approx \arcsin(\frac{\sin(30^\circ)}{1.5})\approx 20^\circ$ + + %![Brechungseffekt; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Brechungseffekt.png) + Die Farbe im betrachteten Punkt wird nicht durch die Farbe von Hintergrundobjekt B1 (wie im Fall nichtbrechender Transparenz) sondern durch die Farbe von B2 beeinflusst! + + Berechnung des Einheitsvektors $\vec{V}_t(\vec{V}_e,n,\theta_t)$ in Richtung der Brechung: + - An Grenzflächen mit unterschiedlichen Brechungsindizes tritt neben der Transparenz ($\vec{V}_t$) auch Reflexion (Komponente mit der Richtung $\vec{V}_r$) auf. + - $\vec{M}$ ist ein Einheitsvektor (Länge=1) mit der Richtung von $\vec{n}*\cos(\theta_e)-\vec{V}_e$ und + - es gilt: $\vec{M}*sin(\theta_e)=\vec{n}*\cos(\theta_e)-\vec{V}_e \rightarrow \vec{M}=\frac{\vec{n}*\cos(\theta_e)-\vec{V}_e}{\sin(\theta_e)}$ + - Effekte an transparentem Material: - Simulation brechungsbedingter Verzerrungen wird so möglich (z.B. bei optischen Linsen, Wasser). - Transparentes und reflektierendes Material erzeugt 2 weiter zu verfolgende Sekundärstrahlen. - - - -%\paragraph{Erweiterungen -Unzulänglichkeiten des einfachen rekursiven Ansatzes: -- Reale Objekte sind eher diffus spekular, d.h. ein ganzes Set von Sekundärstrahlen wäre zu verfolgen. -- Die ideale Spiegelung zur Erzeugung von Sekundärstrahlen ist eine sehr starke Vereinfachung -- Aus der Umkehrbarkeit von Licht- und Beleuchtungsrichtung ließe sich eine Menge von Sekundarstrahlen aus dem Phong-Modell $(\cos^n(\theta)$-Term) ermitteln. -- Aus Aufwandsgründen (rein theoretisch wären unendlich viele Sekundärstrahlen zu berücksichtigen) muss vereinfacht werden, z.B. Monte-Carlo-Ray-Tracing - -**Monte Carlo Ray-Tracing**: -- Reflexion ist selten ideal spekular, meist entsteht ein Bündel von Strahlen -- Ansatz: Verfolgung mehrerer "zufälliger" Sekundärstrahlen, deren Beitrag zum Farbwert des Pixel statistisch gewichtet wird. -- Je gestreuter die Reflexion, um so mehr Sekundärstrahlen sind nötig. Sehr breite Remissionskeulen oder gar diffuse Interreflexionen sind wegen des Aufwandes nicht (bzw. nur schwer) behandelbar. - -Beleuchtungsphänomen Kaustik: -- Das Licht der Lichtquelle werde zuerst spekular, dann diffus reflektiert. Beispiel: Lichtstrahlen, die von Wasserwellen reflektiert auf eine diffuse Wand auftreffen. -- Vom Auge bzw. Pixel ausgehendes Ray Tracing versagt wegen des vorzeitigen Abbruchs der Rekursion am diffus remittierenden Objekt. -- Inverses Ray Tracing [Watt/Watt 1992] : Man erzeugt einen von der Lichtquelle ausgehenden Strahl und reflektiert diesen an glänzenden Oberflächen. Auch Photon Mapping kann hier helfen. -- Die reflektierten Lichtstrahlen wirken als zusätzliche Lichtquellen, die dann zu diffusen Reflexionen führen können. - -Optimierungsmöglichkeiten (einfache Hüllgeometrien, Raumzerlegung, ...): -- Berechnung von achsenparallelen Hüllquadern (Bounding Boxes) oder Hüllkugeln (Bounding Spheres) um Objekte aus mehreren Polygonen. + + + + %\paragraph{Erweiterungen + Unzulänglichkeiten des einfachen rekursiven Ansatzes: + - Reale Objekte sind eher diffus spekular, d.h. ein ganzes Set von Sekundärstrahlen wäre zu verfolgen. + - Die ideale Spiegelung zur Erzeugung von Sekundärstrahlen ist eine sehr starke Vereinfachung + - Aus der Umkehrbarkeit von Licht- und Beleuchtungsrichtung ließe sich eine Menge von Sekundarstrahlen aus dem Phong-Modell $(\cos^n(\theta)$-Term) ermitteln. + - Aus Aufwandsgründen (rein theoretisch wären unendlich viele Sekundärstrahlen zu berücksichtigen) muss vereinfacht werden, z.B. Monte-Carlo-Ray-Tracing + + **Monte Carlo Ray-Tracing**: + - Reflexion ist selten ideal spekular, meist entsteht ein Bündel von Strahlen + - Ansatz: Verfolgung mehrerer "zufälliger" Sekundärstrahlen, deren Beitrag zum Farbwert des Pixel statistisch gewichtet wird. + - Je gestreuter die Reflexion, um so mehr Sekundärstrahlen sind nötig. Sehr breite Remissionskeulen oder gar diffuse Interreflexionen sind wegen des Aufwandes nicht (bzw. nur schwer) behandelbar. + + Beleuchtungsphänomen Kaustik: + - Das Licht der Lichtquelle werde zuerst spekular, dann diffus reflektiert. Beispiel: Lichtstrahlen, die von Wasserwellen reflektiert auf eine diffuse Wand auftreffen. + - Vom Auge bzw. Pixel ausgehendes Ray Tracing versagt wegen des vorzeitigen Abbruchs der Rekursion am diffus remittierenden Objekt. + - Inverses Ray Tracing [Watt/Watt 1992] : Man erzeugt einen von der Lichtquelle ausgehenden Strahl und reflektiert diesen an glänzenden Oberflächen. Auch Photon Mapping kann hier helfen. + - Die reflektierten Lichtstrahlen wirken als zusätzliche Lichtquellen, die dann zu diffusen Reflexionen führen können. + + Optimierungsmöglichkeiten (einfache Hüllgeometrien, Raumzerlegung, ...): + - Berechnung von achsenparallelen Hüllquadern (Bounding Boxes) oder Hüllkugeln (Bounding Spheres) um Objekte aus mehreren Polygonen. - Zunächst Test, ob der Strahl die Hülle schneidet und falls ja - - → Schnittpunktberechnung von Strahl mit allen Polygonen in der Hülle - - → zunächst Berechnung des Schnittpunktes mit der jeweiligen Polygonebene - - → danach effizienter Punkt-im-Polygon-Test -- Effiziente Zugriffsstruktur auf die Hüllquader: Bäume für rekursive Zerlegungen des 3D-Raumes (Octrees), Binary-Space-Partition-Trees -- Verwendung von direktem, hardware-unterstützten Rendering (z.B. Gouraud- oder Phong-Shading) anstelle von einfachem, nichtrekursivem Ray-Tracing, nur bei Bedarf Erzeugung von Sekundärstrahlen. -- Verwendung von Hardware mit RTX-Unterstützung - -%\paragraph{Zusammenfassung -Anwendung: -- Erzeugung realistischerer Bilder als bei lokalem Shading, da indirekte (spekuläre) Beleuchtungsphänomene physikalisch (geometr. und radiometr.) viel genauer als bei direkter Schattierung berechnet werden können. -- Ray-Tracing ist aufgrund der hohen Komplexität für interaktive Anwendungen (oft noch) wenig geeignet (hardware- und szenenabhängig), mögliche Lösung: Vorberechnung der Bildsequenzen im Stapel-Betrieb (batch mode) + - $\rightarrow$ Schnittpunktberechnung von Strahl mit allen Polygonen in der Hülle + - $\rightarrow$ zunächst Berechnung des Schnittpunktes mit der jeweiligen Polygonebene + - $\rightarrow$ danach effizienter Punkt-im-Polygon-Test + - Effiziente Zugriffsstruktur auf die Hüllquader: Bäume für rekursive Zerlegungen des 3D-Raumes (Octrees), Binary-Space-Partition-Trees + - Verwendung von direktem, hardware-unterstützten Rendering (z.B. Gouraud- oder Phong-Shading) anstelle von einfachem, nichtrekursivem Ray-Tracing, nur bei Bedarf Erzeugung von Sekundärstrahlen. + - Verwendung von Hardware mit RTX-Unterstützung + + %\paragraph{Zusammenfassung + Anwendung: + - Erzeugung realistischerer Bilder als bei lokalem Shading, da indirekte (spekuläre) Beleuchtungsphänomene physikalisch (geometr. und radiometr.) viel genauer als bei direkter Schattierung berechnet werden können. + - Ray-Tracing ist aufgrund der hohen Komplexität für interaktive Anwendungen (oft noch) wenig geeignet (hardware- und szenenabhängig), mögliche Lösung: Vorberechnung der Bildsequenzen im Stapel-Betrieb (batch mode) - Fotorealistisches Visualisieren (Designstudien usw.) - Computeranimation in Filmen -- Interaktive Programme (CAD, Spiele) verwenden noch eher direktes Rendering mit Texturen (shadow map, environment map) um Schatten, Spiegeleffekte oder Brechung zu simulieren. -- Aufwendige Teiloperation: Geometrischer Schnitt im Raum: + - Interaktive Programme (CAD, Spiele) verwenden noch eher direktes Rendering mit Texturen (shadow map, environment map) um Schatten, Spiegeleffekte oder Brechung zu simulieren. + - Aufwendige Teiloperation: Geometrischer Schnitt im Raum: - für jedes Pixel: Berechnung des Schnittes eines Strahles mit potentiell allen Objekten der Szene (einfaches Ray-Tracing, ohne Rekursion) - z.B. Bildschirm mit 1.000 x 1.000 Pixeln und 1.000 Objekten - - **Rekursives Ray-Tracing** für den ideal spiegelnden Fall: Anzahl der Operationen wächst zusätzlich, d.h. Multiplikation des Aufwandes mit der Anzahl der Reflexionen und Refraktionen und Lichtquellen (Schattenfühler) → für ca. 4 Rekursionsstufen bei 2 Lichtquellen haben wir etwa $4*(2 + 1) = 12$ Millionen Strahlen, was schon bei 1.000 Objekten 12 Milliarden Schnittoperationen bedeutet. - - **Monte-Carlo-Ray-Tracing** für die Approximation diffuser Anteile: Weiteres Anwachsen der Anzahl an erforderlichen Operationen durch zusätzliche Verfolgung sehr vieler Sekundärstrahlen (durchschnittlich 10 pro Reflexion) → Mehrere 100 Millionen bis Milliarden Strahlen (bzw. Billionen Schnittoperationen) - - Durch **effiziente räumliche Suchstrukturen** kann die Anzahl der tatsächlich auszuführenden Schnittoperationen wesentlich reduziert werden. Die Anzahl der Schnitte steigt nicht mehr linear (sondern etwa logarithmisch) mit der Anzahl der Objekte (siehe räumliche Datenstrukturen). Damit ist auch bei großen Szenen nur noch die Anzahl der Strahlen wesentlich → je nach Bildauflösung und Verfahren, mehrere Millionen bis Milliarden Strahlen! -- Eigenschaften des Ray-Tracing-Verfahrens: + - **Rekursives Ray-Tracing** für den ideal spiegelnden Fall: Anzahl der Operationen wächst zusätzlich, d.h. Multiplikation des Aufwandes mit der Anzahl der Reflexionen und Refraktionen und Lichtquellen (Schattenfühler) $\rightarrow$ für ca. 4 Rekursionsstufen bei 2 Lichtquellen haben wir etwa $4*(2 + 1) = 12$ Millionen Strahlen, was schon bei 1.000 Objekten 12 Milliarden Schnittoperationen bedeutet. + - **Monte-Carlo-Ray-Tracing** für die Approximation diffuser Anteile: Weiteres Anwachsen der Anzahl an erforderlichen Operationen durch zusätzliche Verfolgung sehr vieler Sekundärstrahlen (durchschnittlich 10 pro Reflexion) $\rightarrow$ Mehrere 100 Millionen bis Milliarden Strahlen (bzw. Billionen Schnittoperationen) + - Durch **effiziente räumliche Suchstrukturen** kann die Anzahl der tatsächlich auszuführenden Schnittoperationen wesentlich reduziert werden. Die Anzahl der Schnitte steigt nicht mehr linear (sondern etwa logarithmisch) mit der Anzahl der Objekte (siehe räumliche Datenstrukturen). Damit ist auch bei großen Szenen nur noch die Anzahl der Strahlen wesentlich $\rightarrow$ je nach Bildauflösung und Verfahren, mehrere Millionen bis Milliarden Strahlen! + - Eigenschaften des Ray-Tracing-Verfahrens: - Implementierung ist konzeptionell einfach + einfach parallelisierbar. - Hohe Komplexität durch Vielzahl der Strahlen, deshalb meistens Beschränkung auf wenige Rekursionen. - Exponentielle Komplexität bei Monte-Carlo-Ray-Tracing bzw. wenn alle Objekte gleichzeitig transparent (Brechung) und reflektierend sind. -- Resultat: + - Resultat: - RT ist sehr gut geeignet, wenn die spiegelnde Reflexion zwischen Objekten (und/oder die Brechung bei transparenten Objekten) frei von Streuung ist. - Die diffuse Reflexion zwischen Objekten wird beim Ray-Tracing durch ambiente Terme berücksichtigt. Eine bessere Beschreibung dieser Zusammenhänge ist mit Modellen der Thermodynamik möglich. -- Weitere Ansätze: + - Weitere Ansätze: - Cone-Tracing - statt eines Strahles wird ein Kegel verwendet, der die Lichtverteilung annähert [Watt/Watt 1992]. - Radiosity (siehe Abschnitt weiter unten) - Photon Mapping (nächster Abschnitt) - -%\subsection{ Photon Mapping -- Verfahren von Henrik Wann Jensen 1995 veröffentlicht -- angelehnt an Teichencharakter des Lichts -- 2-stufiges Verfahren -- Quelle: Vorlesung von Zack Waters, Worcester Polytechnic Inst. - -%![Photonmapping; Quelle Vorlesung Computergrafik 2020](Assets/Computergrafik_Photonmapping.png) - -1. Phase: Erzeugung der Photon Map - 1. Photonenverteilung in der Szene: Von der Lichtquelle ausgestrahlte Photonen werden zufällig in der Szene gestreut. Wenn ein Photon eine Oberfläche trifft, kann ein Teil der Energie absorbiert, reflektiert oder gebrochen werden. - 2. Speichern der Photonen in der Photon Map Daten enthalten also u.a. Position und Richtung beim Auftreffen sowie Energie für die Farbkanäle R,G,B - - Photon wird in 3D-Suchstruktur (kd-Baum) gespeichert (Irradiance cache) - - Reflektionskoeffizienten als Maß für Reflektionswahrscheinlichkeit (analog Transmissionswahrscheinlichkeit) - - dafür: Energie bleibt nach Reflexion unverändert. Neue Richtung wird statistisch auf Basis der BRDF gewählt. -2. Phase: Aufsammeln der Photonen aus Betrachtersicht (gathering) - - Verwende Ray-Tracing um für den Primärstrahl von der Kamera durch einen Pixel den Schnittpunkt x mit der Szene zu bestimmen. Basierend auf den Informationen aus der Photon Map werden für x folgende Schritte ausgeführt: - 1. Sammle die nächsten N Photonen um x herum auf durch Nächste-Nachbar-Suche in der Photon Map (N = konst., z. B. 10) - 2. S sei die (kleinste) Kugel, welche die N Photonen enthält. - 3. Für alle Photonen: dividiere die Summe der Energie der gesammelten Photonen durch die Fläche von S (→ Irradiance) und multipliziere mit der BRDF angewendet auf das Photon. - 4. Dies ergibt die reflektierte Strahldichte, welche von der Oberfläche (an der Stelle x) in Richtung des Beobachters abgestrahlt wird. - -%\subsection{ Radiosity -Grundprinzip des Radiosity-Verfahrens: -- Ansatz: Erhaltung der Lichtenergie in einer geschlossenen Umgebung -- Die Energierate, die eine Oberfläche verlässt, wird Radiosity (spezifische Ausstrahlung) genannt. -- Die gesamte Energie, die von einer Oberfläche (Patch, Polygon) emittiert oder reflektiert wird, ergibt sich aus Reflexionen oder Absorptionen anderer Oberflächen (Patches, Polygone). -- Es erfolgt keine getrennte Behandlung von Lichtquellen und beleuchteten Flächen, d.h. alle Lichtquellen werden als emittierende Flächen modelliert. -- Da nur diffuse Strahler (Lambertstrahler) betrachtet werden, herrscht Unabhängigkeit der Strahldichte vom Blickwinkel vor. -- Die Lichtinteraktionen werden im 3D-Objektraum (ohne Berücksichtigung der Kamera) berechnet. -- Danach lassen sich beliebig viele Ansichten schnell ermitteln (Ansichtstransformation, perspektivische Projektion, Verdeckungsproblematik, Interpolation). - -Die gesamte von Patch $A_s$ stammende Strahldichte an der Stelle von $dA_r$ ist: $L_r=\beta_r(\lambda)*\int_{A_s}\frac{L_s}{\pi * r^2}*\cos(\theta_s)*\cos(\theta_r)*dA_s$ (s=Sender, r=Reveiver) -%![Radiosity; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Radiosity.png) - -Für das Polygon $A_r$ ist die mittlere Strahldichte zu ermitteln! -$$L_r=\beta_r(\lambda)*\frac{1}{A_r}*\int_{A_r}\int_{A_s}\frac{L_s}{\pi*r^2}*\cos(\theta_s)*\cos(\theta_r)*dA_s*dA_r$$ -Die Geometrieanteile aus dieser Gleichung werden als Formfaktoren bezeichnet (+Sichtbarkeitsfaktor $H_{sr}$). -$$F_{sr}=\frac{1}{A_R}\int_{A_r}\int_{A_s}\frac{\cos(\theta_s)*\cos(\theta_r)}{\pi*r^2}*H_{sr}*dA_s*dA_r, H_{sr}=\begin{cases}1\rightarrow A_s \text{ sichtbar}\\ 0\rightarrow A_s \text{ unsichtbar}\end{cases}$$ -Für Flächen, die klein im Verhältnis zu ihrem Abstand sind, ergibt sich eine Vereinfachung des Formfaktors. In diesem Fall können die Winkel $\theta_s,\theta_r$ und Radius r über den zu integrierenden Flächen als konstant (Mittelwerte) angenommen werden. -$$F_{sr}=A_S \frac{\cos(\theta_s)*cos(\theta_r)}{\pi*r^2}*H_{sr}$$ - -Bei dicht benachbarten Flächen gelten die obigen, vereinfachenden Annahmen u.U. nicht mehr. Es müsste exakt gerechnet oder in diesen Bereichen feiner untergliedert werden. -Wird statt $\beta8\lambdaβ$ vereinfachend ein konstanter Remissionsfaktor R (R diff im monochromatischen Fall oder $R_{diff R}, R_{diffG}, R_{diffB}$ für die drei typischen Farbkanäle) eingeführt, so ergibt sich zwischen der Strahldichte $L_r$ der bestrahlten Fläche und der Strahldichte $L_s$ der bestrahlenden Fläche der folgende Zusammenhang: $L_r=R_r*F_sr*L_s$ - -Jedes Patch wird nun als opaker Lambertscher (d.h. ideal diffuser) Emitter und Reflektor betrachtet (d.h. alle Lichtquellen werden genauso wie einfache remittierende Flächen behandelt, allerdings mit emittierendem Strahldichte-Term $L_{emr}$). $L_r=L_{emr}+R_r*\sum_S F_{sr}*L_s$ - -Es ergibt sich schließlich als Gleichungssystem: -$$ \begin{pmatrix} 1-R_1F_{11} & -R_1F_{12} &...& -R_1F_{1n}\\ 1-R_2F_{21} & -R_2F_{22} &...& -R_2F_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ 1-R_nF_{n1} & -R_nF_{n2} &...& -R_nF_{nn} \end{pmatrix} * \begin{pmatrix} L_1\\L_2\\\vdots\\L_n \end{pmatrix} = \begin{pmatrix} L_{em1}\\L_{em2}\\\vdots\\L_{emn} \end{pmatrix}$$ -Das Gleichungssystem ist für jedes Wellenlängenband, das im Beleuchtungsmodell betrachtet wird, zu lösen ($R_r, R_{rR}, R_{rG}, R_{rB}, L_{emr}$ sind im Allgemeinen wellenlängenabhängig). - -%\paragraph{Adaptives Refinement -Adaptives Radiosity-Verfahren: -- vereinfachte Formfaktor-Berechnung ist ungenau bei eng beieinander liegenden Flächenstücken (z. B. in der Nähe von Raumecken), oder bei kontrastreichen Übergängen) -- deshalb adaptive Unterteilung solcher Flächen in feinere Polygone - -Im adaptiven Radiosity-Verfahren werden deshalb große Flächen (insbesondere dort wo Flächen relativ hell sind im Vergleich zur Nachbarfläche → kontrastreiche Übergänge) unterteilt. Die Notwendigkeit wird durch erste Berechnung mit grober Unterteilung geschätzt. - -%\paragraph{Progressive Refinement -- das Radiosity-Verfahren ist sehr aufwendig (Bestimmung aller Formfaktoren, Anwendung des Gauß-Seidel-Verfahrens zum Lösen des Gleichungssystems) -- jedoch viel weniger Samples als Monte-Carlo-Raytracing (1 mal pro Kachel-Paar mal Anzahl Interationen)! -- beim progressive Refinement ist die inkrementelle Approximation des Ergebnisses des exakten Algorithmus durch ein vereinfachtes Verfahren wünschenswert -- ein entsprechender Algorithmus, der die Patches einzeln behandelt, stammt von Cohen, Chen, Wallace und Greenberg -- akkumuliert mehr Energie in jedem Schritt, verletzt Gleichgewicht der Strahlung → Korrektur notwendig: - $L_r^{k+1}=L_{emr} + R_r*\sum_s F_{sr}* L_s^k$ - - -%\paragraph{Radiosity Eigenschaften -- ausschließlich Berücksichtigung der diffusen Reflexion -- blickwinkelunabhängig, direkt im 3D-Raum arbeitend -- realistische Schattenbilder, insbesondere Halbschatten (viele, bzw. flächig ausgedehnte Lichtquellen) -- sehr rechenintensiv, deshalb meist Vorausberechnung einer Szene in 3D -- → Beleuchtungsphänomene wie z.B. indirektes Licht (besonders augenfällig in Innenräumen, Museen, Kirchen, Theaterbühnen usw.) sind mit Radiosity sehr gut/realistisch darstellbar. -- → die Kombination von Radiosity und Ray Tracing (und ggfs. anderen Verfahren/Filtern etc) ermöglicht computergenerierte Szenen mit sehr hohem Grad an Realismus. - -%\subsection{ Zusammenfassung -- BRDF für physikbasierte, lokale Berechnung der Reflexion von Lichtquellen als Funktion von Einfallswinkel und Betrachterwinkel (evtl. wellenlängenabhängig, oder einfach durch RGB) -- Rendergleichung (Kajiya) = BRDF, Integral über alle Lichtquellen (bzw. Hemisphäre) -- für indirekte Beleuchtung / Global Illumination: (verschiedene algorithmische Verfahren unter Verwendung der lokalen Beleuchtung (BRDF) + + %\subsection{ Photon Mapping + - Verfahren von Henrik Wann Jensen 1995 veröffentlicht + - angelehnt an Teichencharakter des Lichts + - 2-stufiges Verfahren + - Quelle: Vorlesung von Zack Waters, Worcester Polytechnic Inst. + + %![Photonmapping; Quelle Vorlesung Computergrafik 2020](Assets/Computergrafik_Photonmapping.png) + + 1. Phase: Erzeugung der Photon Map + 1. Photonenverteilung in der Szene: Von der Lichtquelle ausgestrahlte Photonen werden zufällig in der Szene gestreut. Wenn ein Photon eine Oberfläche trifft, kann ein Teil der Energie absorbiert, reflektiert oder gebrochen werden. + 2. Speichern der Photonen in der Photon Map Daten enthalten also u.a. Position und Richtung beim Auftreffen sowie Energie für die Farbkanäle R,G,B + - Photon wird in 3D-Suchstruktur (kd-Baum) gespeichert (Irradiance cache) + - Reflektionskoeffizienten als Maß für Reflektionswahrscheinlichkeit (analog Transmissionswahrscheinlichkeit) + - dafür: Energie bleibt nach Reflexion unverändert. Neue Richtung wird statistisch auf Basis der BRDF gewählt. + 2. Phase: Aufsammeln der Photonen aus Betrachtersicht (gathering) + - Verwende Ray-Tracing um für den Primärstrahl von der Kamera durch einen Pixel den Schnittpunkt x mit der Szene zu bestimmen. Basierend auf den Informationen aus der Photon Map werden für x folgende Schritte ausgeführt: + 1. Sammle die nächsten N Photonen um x herum auf durch Nächste-Nachbar-Suche in der Photon Map (N = konst., z. B. 10) + 2. S sei die (kleinste) Kugel, welche die N Photonen enthält. + 3. Für alle Photonen: dividiere die Summe der Energie der gesammelten Photonen durch die Fläche von S ($\rightarrow$ Irradiance) und multipliziere mit der BRDF angewendet auf das Photon. + 4. Dies ergibt die reflektierte Strahldichte, welche von der Oberfläche (an der Stelle x) in Richtung des Beobachters abgestrahlt wird. + + %\subsection{ Radiosity + Grundprinzip des Radiosity-Verfahrens: + - Ansatz: Erhaltung der Lichtenergie in einer geschlossenen Umgebung + - Die Energierate, die eine Oberfläche verlässt, wird Radiosity (spezifische Ausstrahlung) genannt. + - Die gesamte Energie, die von einer Oberfläche (Patch, Polygon) emittiert oder reflektiert wird, ergibt sich aus Reflexionen oder Absorptionen anderer Oberflächen (Patches, Polygone). + - Es erfolgt keine getrennte Behandlung von Lichtquellen und beleuchteten Flächen, d.h. alle Lichtquellen werden als emittierende Flächen modelliert. + - Da nur diffuse Strahler (Lambertstrahler) betrachtet werden, herrscht Unabhängigkeit der Strahldichte vom Blickwinkel vor. + - Die Lichtinteraktionen werden im 3D-Objektraum (ohne Berücksichtigung der Kamera) berechnet. + - Danach lassen sich beliebig viele Ansichten schnell ermitteln (Ansichtstransformation, perspektivische Projektion, Verdeckungsproblematik, Interpolation). + + Die gesamte von Patch $A_s$ stammende Strahldichte an der Stelle von $dA_r$ ist: $L_r=\beta_r(\lambda)*\int_{A_s}\frac{L_s}{\pi * r^2}*\cos(\theta_s)*\cos(\theta_r)*dA_s$ (s=Sender, r=Reveiver) + %![Radiosity; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Radiosity.png) + + Für das Polygon $A_r$ ist die mittlere Strahldichte zu ermitteln! + $$L_r=\beta_r(\lambda)*\frac{1}{A_r}*\int_{A_r}\int_{A_s}\frac{L_s}{\pi*r^2}*\cos(\theta_s)*\cos(\theta_r)*dA_s*dA_r$$ + Die Geometrieanteile aus dieser Gleichung werden als Formfaktoren bezeichnet (+Sichtbarkeitsfaktor $H_{sr}$). + $$F_{sr}=\frac{1}{A_R}\int_{A_r}\int_{A_s}\frac{\cos(\theta_s)*\cos(\theta_r)}{\pi*r^2}*H_{sr}*dA_s*dA_r, H_{sr}=\begin{cases}1\rightarrow A_s \text{ sichtbar}\\ 0\rightarrow A_s \text{ unsichtbar}\end{cases}$$ + Für Flächen, die klein im Verhältnis zu ihrem Abstand sind, ergibt sich eine Vereinfachung des Formfaktors. In diesem Fall können die Winkel $\theta_s,\theta_r$ und Radius r über den zu integrierenden Flächen als konstant (Mittelwerte) angenommen werden. + $$F_{sr}=A_S \frac{\cos(\theta_s)*cos(\theta_r)}{\pi*r^2}*H_{sr}$$ + + Bei dicht benachbarten Flächen gelten die obigen, vereinfachenden Annahmen u.U. nicht mehr. Es müsste exakt gerechnet oder in diesen Bereichen feiner untergliedert werden. + Wird statt $\beta8\lambdaβ$ vereinfachend ein konstanter Remissionsfaktor R (R diff im monochromatischen Fall oder $R_{diff R}, R_{diffG}, R_{diffB}$ für die drei typischen Farbkanäle) eingeführt, so ergibt sich zwischen der Strahldichte $L_r$ der bestrahlten Fläche und der Strahldichte $L_s$ der bestrahlenden Fläche der folgende Zusammenhang: $L_r=R_r*F_sr*L_s$ + + Jedes Patch wird nun als opaker Lambertscher (d.h. ideal diffuser) Emitter und Reflektor betrachtet (d.h. alle Lichtquellen werden genauso wie einfache remittierende Flächen behandelt, allerdings mit emittierendem Strahldichte-Term $L_{emr}$). $L_r=L_{emr}+R_r*\sum_S F_{sr}*L_s$ + + Es ergibt sich schließlich als Gleichungssystem: + $$ \begin{pmatrix} 1-R_1F_{11} & -R_1F_{12} &...& -R_1F_{1n}\\ 1-R_2F_{21} & -R_2F_{22} &...& -R_2F_{2n}\\ \vdots & \vdots & \ddots & \vdots \\ 1-R_nF_{n1} & -R_nF_{n2} &...& -R_nF_{nn} \end{pmatrix} * \begin{pmatrix} L_1\\L_2\\\vdots\\L_n \end{pmatrix} = \begin{pmatrix} L_{em1}\\L_{em2}\\\vdots\\L_{emn} \end{pmatrix}$$ + Das Gleichungssystem ist für jedes Wellenlängenband, das im Beleuchtungsmodell betrachtet wird, zu lösen ($R_r, R_{rR}, R_{rG}, R_{rB}, L_{emr}$ sind im Allgemeinen wellenlängenabhängig). + + %\paragraph{Adaptives Refinement + Adaptives Radiosity-Verfahren: + - vereinfachte Formfaktor-Berechnung ist ungenau bei eng beieinander liegenden Flächenstücken (z. B. in der Nähe von Raumecken), oder bei kontrastreichen Übergängen) + - deshalb adaptive Unterteilung solcher Flächen in feinere Polygone + + Im adaptiven Radiosity-Verfahren werden deshalb große Flächen (insbesondere dort wo Flächen relativ hell sind im Vergleich zur Nachbarfläche $\rightarrow$ kontrastreiche Übergänge) unterteilt. Die Notwendigkeit wird durch erste Berechnung mit grober Unterteilung geschätzt. + + %\paragraph{Progressive Refinement + - das Radiosity-Verfahren ist sehr aufwendig (Bestimmung aller Formfaktoren, Anwendung des Gauß-Seidel-Verfahrens zum Lösen des Gleichungssystems) + - jedoch viel weniger Samples als Monte-Carlo-Raytracing (1 mal pro Kachel-Paar mal Anzahl Interationen)! + - beim progressive Refinement ist die inkrementelle Approximation des Ergebnisses des exakten Algorithmus durch ein vereinfachtes Verfahren wünschenswert + - ein entsprechender Algorithmus, der die Patches einzeln behandelt, stammt von Cohen, Chen, Wallace und Greenberg + - akkumuliert mehr Energie in jedem Schritt, verletzt Gleichgewicht der Strahlung $\rightarrow$ Korrektur notwendig: + $L_r^{k+1}=L_{emr} + R_r*\sum_s F_{sr}* L_s^k$ + + + %\paragraph{Radiosity Eigenschaften + - ausschließlich Berücksichtigung der diffusen Reflexion + - blickwinkelunabhängig, direkt im 3D-Raum arbeitend + - realistische Schattenbilder, insbesondere Halbschatten (viele, bzw. flächig ausgedehnte Lichtquellen) + - sehr rechenintensiv, deshalb meist Vorausberechnung einer Szene in 3D + - $\rightarrow$ Beleuchtungsphänomene wie z.B. indirektes Licht (besonders augenfällig in Innenräumen, Museen, Kirchen, Theaterbühnen usw.) sind mit Radiosity sehr gut/realistisch darstellbar. + - $\rightarrow$ die Kombination von Radiosity und Ray Tracing (und ggfs. anderen Verfahren/Filtern etc) ermöglicht computergenerierte Szenen mit sehr hohem Grad an Realismus. + + %\subsection{ Zusammenfassung + - BRDF für physikbasierte, lokale Berechnung der Reflexion von Lichtquellen als Funktion von Einfallswinkel und Betrachterwinkel (evtl. wellenlängenabhängig, oder einfach durch RGB) + - Rendergleichung (Kajiya) = BRDF, Integral über alle Lichtquellen (bzw. Hemisphäre) + - für indirekte Beleuchtung / Global Illumination: (verschiedene algorithmische Verfahren unter Verwendung der lokalen Beleuchtung (BRDF) - (rekursives) Raytracing (einfache Spiegelung, Brechung, Schatten) - - Monte Carlo RT, (gestreute Spiegelung, diffuse Reflexion), Backward Ray Tracing (Kaustik), Photon Mapping → jedoch extrem rechenaufwendig!) - - Radiosity (indirekte diffuse Reflexion – sichtunabhängige Voraus-berechnung in 3D für statische Szenen) -- verschiedene Verfahren können kombiniert werden um die globale Beleuchtungsphänomene effizienter zu berechnen. – z. B. Radiosity + Ray Tracing: Indirekte diffuse Beleuchtung + Spiegelung und Schatten, etc. - -%\section{Texture Mapping -%\subsection{ Bildbasiertes Rendering -%\paragraph{Überblick -- typische Anwendung: Applizieren von 2D-Rasterbildern auf 3D-Modellen + - Monte Carlo RT, (gestreute Spiegelung, diffuse Reflexion), Backward Ray Tracing (Kaustik), Photon Mapping $\rightarrow$ jedoch extrem rechenaufwendig!) + - Radiosity (indirekte diffuse Reflexion - sichtunabhängige Voraus-berechnung in 3D für statische Szenen) + - verschiedene Verfahren können kombiniert werden um die globale Beleuchtungsphänomene effizienter zu berechnen. - z. B. Radiosity + Ray Tracing: Indirekte diffuse Beleuchtung + Spiegelung und Schatten, etc. + + %\section{Texture Mapping + %\subsection{ Bildbasiertes Rendering + %\paragraph{Überblick + - typische Anwendung: Applizieren von 2D-Rasterbildern auf 3D-Modellen - Beispiele: Hausfassade, Holz-, Marmor-, Steintexturen, Tapeten, Stoffe etc. -- 3D-Objekte mit relativ einfachen Polygonen modelliert. - Details als Texturen, (d.h. als Raster-Bilder) – gelegentlich "Impostor" genannt. -- Texture-Mapping als Erweiterung des einfachen Pattern-Filling (siehe. Polygonfüllalgorithmus) -- als Verallgemeinerung auch Image-based Rendering genannt -- Verwendung unterschiedlicher 3D-Transformationen und Beleuchtungsarten + - 3D-Objekte mit relativ einfachen Polygonen modelliert. - Details als Texturen, (d.h. als Raster-Bilder) - gelegentlich "Impostor" genannt. + - Texture-Mapping als Erweiterung des einfachen Pattern-Filling (siehe. Polygonfüllalgorithmus) + - als Verallgemeinerung auch Image-based Rendering genannt + - Verwendung unterschiedlicher 3D-Transformationen und Beleuchtungsarten - Spezielle Effekte! (Reflexionen, Schatten, ..) - -Erzeugung von Texturen: -- "reale" Texturen aus realen rasterisierten/digitalen Fotografien (aus Pixeln = "Picture-Elementen" werden Texel = "Texturelemente") vs. -- "berechnete" Texturen → synthetische Computergrafik-Bilder: + + Erzeugung von Texturen: + - "reale" Texturen aus realen rasterisierten/digitalen Fotografien (aus Pixeln = "Picture-Elementen" werden Texel = "Texturelemente") vs. + - "berechnete" Texturen $\rightarrow$ synthetische Computergrafik-Bilder: - vorberechnete reguläre Texturen (basieren auf Texeln) vs. - nach Bedarf erzeugte statistische bzw. prozedurale Texturen (Absamplen von mathematischen Beschreibungen, ggf. beliebig genau) - -Anwendung von Texturen - Grundprinzipien: -- Transformation des Texturraums in den Bildraum der Darstellung: Verwendung unterschiedlicher geometrischer Transformationen (je nach Anwendungszweck) -- Resampling: transformiertes Texturraster wird aufs Bildraster "gerundet" -- Filtern: Verhindern/Abmildern von resampling-basierten Aliasing-Effekten -- Beleuchtung: RGB-Werte der Textur dienen als Materialattribute bei der Beleuchtungsrechnung -Unterschiedliche Arten des Texturmappings (Transformationsfunktion): -- Parametrisches Mapping: Ein Rasterbild wird auf ein 3D-Polygon aufgebracht, indem man den Eckpunkten (x,y,z) des Polygons 2D-Texturkoordinaten (u,v) explizit zuordnet. + Anwendung von Texturen - Grundprinzipien: + - Transformation des Texturraums in den Bildraum der Darstellung: Verwendung unterschiedlicher geometrischer Transformationen (je nach Anwendungszweck) + - Resampling: transformiertes Texturraster wird aufs Bildraster "gerundet" + - Filtern: Verhindern/Abmildern von resampling-basierten Aliasing-Effekten + - Beleuchtung: RGB-Werte der Textur dienen als Materialattribute bei der Beleuchtungsrechnung + + Unterschiedliche Arten des Texturmappings (Transformationsfunktion): + - Parametrisches Mapping: Ein Rasterbild wird auf ein 3D-Polygon aufgebracht, indem man den Eckpunkten (x,y,z) des Polygons 2D-Texturkoordinaten (u,v) explizit zuordnet. - affines Texturmapping: direkte affine Abbildung der Textur auf projizierte Polygone im Bildraum - perspektivisches Texturmapping: Zwischenabbildung der Textur in den 3D-Objektraum und perspektivische Projektion in den Bildraum -- Projektives Texturmapping: Verwendung unterschiedlicher Projektionsarten (parallel, perspektivisch, eben, zylindrisch, sphärisch) -- Environment-Mapping: Spiegelung der Textur an der Oberfläche (bzw. Refraktion) mit entsprechender Verzerrung + - Projektives Texturmapping: Verwendung unterschiedlicher Projektionsarten (parallel, perspektivisch, eben, zylindrisch, sphärisch) + - Environment-Mapping: Spiegelung der Textur an der Oberfläche (bzw. Refraktion) mit entsprechender Verzerrung - Transformation abhängig von Kameraposition! - -%\paragraph{Affines Texturemapping -Durch Zuordnung von 3 Punkten im Bildraster zu den entsprechenden 3 Punkten im Texturraster erhält man ein Gleichungssystem mit 6 Gleichungen und 6 Unbekannten $(a_u , b_u , c_u , a_v , b_v , c_v )$: -- $P_1: u_1=a_u*x_1+b_u*y_1+c_u; v_1=a_v*x_1+b_v*y_1+c_v$ -- $P_2: u_2=a_u*x_2+b_u*y_2+c_u; v_2=a_v*x_2+b_v*y_2+c_v$ -- $P_3: u_3=a_u*x_3+b_u*y_3+c_u; v_3=a_v*x_3+b_v*y_3+c_v$ - -Für jedes Pixel(x,y) im Polygon: Resampling der Textur(u,v) bei der Rasterkonvertierung (Polygonfüllalgorithmus) - -Für jedes Pixel(x,y) finde die Texturkoordinaten(u,v), d.h.: -- Rückwärtstransformation vom Ziel zum Original → keine Löcher im Bild! -- ABER: Texturkoordinaten können übersprungen oder wiederholt werden! -- Störsignale (Aliasing) → Filterung notwendig! - -Affines Mapping der Vertices x,y auf u,v → lineare Interpolation der u/v-Texturkoordinaten zwischen den Vertices für jedes Pixel (ähnlich wie RGB- bzw. Z-Werte im Polygonfüllalgorithmus, durch Ganzzahlarithmetik) - -%![Affines Texturmapping; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Affines-Texturmapping.png) - -Problem: Durch affine 2D-Abbildungen können nur Transformationen wie Rotation, Skalierung, Translation, Scherung in der Bild-Ebene abgebildet werden, aber keine Perspektive! → Abbildungsfehler zwischen den Eckpunkten! (kleine Dreiecke → kleiner Fehler!) - -%\paragraph{Perspektivisches Texture-Mapping -Beispiel: affine 3D-Abbildung der Textur per 4x4-Matrix auf 3D-Modell: -Texturraum → Objektraum: Rotation, Translation, Skalierung (...) dann Objektraum → Bildraum: Projektion (selbe wie bei Geometrieprojektion) - -%![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Perskeptivisches-Texture-Mapping.png) - -entspricht affinem Textur-Mapping mit einem zusätzlichen Zwischenschritt, der Bestimmung der Objektraumkoordinaten: -- Matrix $M_{to}$: Koordinatentransformation vom Texturraum in den 3D- Objektraum (affine Abb.: 3D-Translation, -Rotation, -Skalierung) -- Matrix $M_{oi}$ : Koordinatentransformation vom Objektraum in den Bildraum (Kameratransformation, perspektivische Abbildung) -- Matrix $M_{ti}$: gesamte Koordinatentransformation vom Texturraum direkt in den Bildraum: $M_{ti} = M_{to}*M_{oi}$ -- Matrix $M_{ti}^{−1}$: Inverse Koordinatentransformation vom Bildraum zurück in den Texturraum - -→ 4x4-Matrix für homogene Koordinaten. Perspektivische Abbildung im Bildraum durch Division durch z, für jedes Pixel (wesentlich aufwendiger als lineare Interpolation) - -Vergleich: Perspektivisches / Affines Texture Mapping: -- perspektivisches Textur-Mapping liefert auch bei perspektivischer Ansicht geometrisch korrekte Bilder -- etwas höherer Berechnungsaufwand pro Polygon, da für jedes Polygon zwei Transformationsmatrizen und eine inverse 4x4-Matrix bestimmt werden müssen -- wesentlich höherer Berechnungsaufwand pro Pixel: Matrixmultiplikation plus (floating-point) Division! -- bei affinem Textur-Mapping können hingegen einfach die Texturkoordinaten (u/v) zwischen den Polygonecken linear interpoliert werden: + + %\paragraph{Affines Texturemapping + Durch Zuordnung von 3 Punkten im Bildraster zu den entsprechenden 3 Punkten im Texturraster erhält man ein Gleichungssystem mit 6 Gleichungen und 6 Unbekannten $(a_u , b_u , c_u , a_v , b_v , c_v )$: + - $P_1: u_1=a_u*x_1+b_u*y_1+c_u; v_1=a_v*x_1+b_v*y_1+c_v$ + - $P_2: u_2=a_u*x_2+b_u*y_2+c_u; v_2=a_v*x_2+b_v*y_2+c_v$ + - $P_3: u_3=a_u*x_3+b_u*y_3+c_u; v_3=a_v*x_3+b_v*y_3+c_v$ + + Für jedes Pixel(x,y) im Polygon: Resampling der Textur(u,v) bei der Rasterkonvertierung (Polygonfüllalgorithmus) + + Für jedes Pixel(x,y) finde die Texturkoordinaten(u,v), d.h.: + - Rückwärtstransformation vom Ziel zum Original $\rightarrow$ keine Löcher im Bild! + - ABER: Texturkoordinaten können übersprungen oder wiederholt werden! + - Störsignale (Aliasing) $\rightarrow$ Filterung notwendig! + + Affines Mapping der Vertices x,y auf u,v $\rightarrow$ lineare Interpolation der u/v-Texturkoordinaten zwischen den Vertices für jedes Pixel (ähnlich wie RGB- bzw. Z-Werte im Polygonfüllalgorithmus, durch Ganzzahlarithmetik) + + %![Affines Texturmapping; Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Affines-Texturmapping.png) + + Problem: Durch affine 2D-Abbildungen können nur Transformationen wie Rotation, Skalierung, Translation, Scherung in der Bild-Ebene abgebildet werden, aber keine Perspektive! $\rightarrow$ Abbildungsfehler zwischen den Eckpunkten! (kleine Dreiecke $\rightarrow$ kleiner Fehler!) + + %\paragraph{Perspektivisches Texture-Mapping + Beispiel: affine 3D-Abbildung der Textur per 4x4-Matrix auf 3D-Modell: + Texturraum $\rightarrow$ Objektraum: Rotation, Translation, Skalierung (...) dann Objektraum $\rightarrow$ Bildraum: Projektion (selbe wie bei Geometrieprojektion) + + %![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Perskeptivisches-Texture-Mapping.png) + + entspricht affinem Textur-Mapping mit einem zusätzlichen Zwischenschritt, der Bestimmung der Objektraumkoordinaten: + - Matrix $M_{to}$: Koordinatentransformation vom Texturraum in den 3D- Objektraum (affine Abb.: 3D-Translation, -Rotation, -Skalierung) + - Matrix $M_{oi}$ : Koordinatentransformation vom Objektraum in den Bildraum (Kameratransformation, perspektivische Abbildung) + - Matrix $M_{ti}$: gesamte Koordinatentransformation vom Texturraum direkt in den Bildraum: $M_{ti} = M_{to}*M_{oi}$ + - Matrix $M_{ti}^{-1}$: Inverse Koordinatentransformation vom Bildraum zurück in den Texturraum + + $\rightarrow$ 4x4-Matrix für homogene Koordinaten. Perspektivische Abbildung im Bildraum durch Division durch z, für jedes Pixel (wesentlich aufwendiger als lineare Interpolation) + + Vergleich: Perspektivisches / Affines Texture Mapping: + - perspektivisches Textur-Mapping liefert auch bei perspektivischer Ansicht geometrisch korrekte Bilder + - etwas höherer Berechnungsaufwand pro Polygon, da für jedes Polygon zwei Transformationsmatrizen und eine inverse 4x4-Matrix bestimmt werden müssen + - wesentlich höherer Berechnungsaufwand pro Pixel: Matrixmultiplikation plus (floating-point) Division! + - bei affinem Textur-Mapping können hingegen einfach die Texturkoordinaten (u/v) zwischen den Polygonecken linear interpoliert werden: - ähnlich wie bei anderen Attributen (z. B. x-Koordinate (s. Edge-Scan), r/g/b-Werte (s. Gouraud-Shading), Tiefenwerte (1/z) funktioniert dies inkrementell und mit Ganzzahlarithmetik (als Teil des Polygonfüllalgorithmus) - - je kleiner die Polygone im Bild, desto kleiner der Fehler beim affinen Texturemapping (Ansatz: feinere Unterteilung der Polygone in kleinere Dreiecke → dafür jedoch mehr Polygone!) - -%\paragraph{Textur-Mapping mit Polygon-Schattierung -Eingliederung in die Render Pipeline -- Bestimmung der zum Polygon gehörenden sichtbaren Pixel im Bildraum (Polygonfüllalgorithmus) -- Ermittlung der zur jeder Pixelkoordinate gehörenden Texturkoordinate mit Hilfe der inversen Transformationsmatrix $M_{ti}^{−1}$ -- Ermittlung der Farbe des zu setzenden Pixels aus dem Texturraster (und gegebenenfalls weitere Schattierung aus der Beleuchtungsrechnung) -- Beleuchtungsrechnung, z.B.: Multiplikation der Helligkeit einer beleuchteten diffusen weißen Oberfläche mit den r/g/b-Werten der Textur (Lambert Modell) - - -%\paragraph{Weitere Texturarten -- Texturen mit Transparenz: RGBA-Wert zu jedem Pixel gespeichert, d.h. beim Rendern wird Alpha Blending mit der Hintergrundfarbe angewendet -- Video Texture: zeitlich veränderliche Textur, d.h. dynamische Veränderungen wie z.B. Feuer, Rauch (mit Alpha-Blending über Hintergrund / Billboard) oder Fernseher in der Wohnung mit Programm“ (ohne Alpha-Blending) -- Solid Textures: - - Textur als 3D-Array (u/v/w-Koordinaten, bzw. Voxel) → gespeicherte RGB(A)-Werte pro Voxel + - je kleiner die Polygone im Bild, desto kleiner der Fehler beim affinen Texturemapping (Ansatz: feinere Unterteilung der Polygone in kleinere Dreiecke $\rightarrow$ dafür jedoch mehr Polygone!) + + %\paragraph{Textur-Mapping mit Polygon-Schattierung + Eingliederung in die Render Pipeline + - Bestimmung der zum Polygon gehörenden sichtbaren Pixel im Bildraum (Polygonfüllalgorithmus) + - Ermittlung der zur jeder Pixelkoordinate gehörenden Texturkoordinate mit Hilfe der inversen Transformationsmatrix $M_{ti}^{-1}$ + - Ermittlung der Farbe des zu setzenden Pixels aus dem Texturraster (und gegebenenfalls weitere Schattierung aus der Beleuchtungsrechnung) + - Beleuchtungsrechnung, z.B.: Multiplikation der Helligkeit einer beleuchteten diffusen weißen Oberfläche mit den r/g/b-Werten der Textur (Lambert Modell) + + + %\paragraph{Weitere Texturarten + - Texturen mit Transparenz: RGBA-Wert zu jedem Pixel gespeichert, d.h. beim Rendern wird Alpha Blending mit der Hintergrundfarbe angewendet + - Video Texture: zeitlich veränderliche Textur, d.h. dynamische Veränderungen wie z.B. Feuer, Rauch (mit Alpha-Blending über Hintergrund / Billboard) oder Fernseher in der Wohnung mit Programm“ (ohne Alpha-Blending) + - Solid Textures: + - Textur als 3D-Array (u/v/w-Koordinaten, bzw. Voxel) $\rightarrow$ gespeicherte RGB(A)-Werte pro Voxel - Abbildung über affine 3D-Transformation xyz auf uvw - beim Rendern entweder auf Vertices angewendet und dann für Pixel linear interpoliert oder für jedes Pixel einzeln angewendet (Pixelshader) - Anwendungsbsp.: Schnitt durch Material (z.B. Massivholz, Marmor) oder Volume Rendering (Überlagerung von Schichten) mit Alpha Blending, z.B. Computertomoraphie (CT-Daten) - ggfs. auch Videotextur als Spezialfall einer Solid Texture: Zeit als 3. Dim. - -%\paragraph{Projektives Textur-Mapping -Berechnung der Texturkoordinaten aus der aktuellen Position der einzelnen Polygone (Analogie: Projektion eines Diapositivs auf ein räumliches Objekt) - -Beispiel: Parallelprojektion mit fixer Position des Projektors zum Objekt -- 2D-Textur (Bsp. Gitter aus Millimeterskalen) -- Parallelprojektion der Textur auf einen Zylinder mit abgeschrägten Endflächen -- Projektion ist relativ zum Objekt definiert, d.h. die Textur bewegt sich mit dem Körper, sofern man diesen bewegt -- markierte Bereiche (1 bzw. 2) haben auf Zylinder stets identische Positionen -- keine explizite Zuordnung von uv-Koordinaten zu Polygoneckpunkten notwendig, weniger Modellieraufwand! - -Anwendungsbeispiele für projektives Textur-Mapping (Parallel- oder Zentralprojektion): -- Darstellung geometrischer Eigenschaften (geometrische Details, parallel, fixe Position des Projektors zum Objekt, senkrecht zur Fläche) -- einfache Darstellung von Parameterlinien (sofern die Textur senkrecht auf die Projektionsebene projiziert wird, parallel, fixiert bezgl. Objekt) -- Simulation eines Lichtkegels (Repräsentation der Leuchtdichteverteilung der Lichtquelle (Lichtfeld) als Rasterbild in einer Textur, zentral, fix in Weltkoordinaten) - -Zylindrisches Textur-Mapping: -- radiale Projektion der Textur-Koordinaten auf eine Zylinderoberfläche -- visueller Effekt für zylinderähnliche Objekte ähnlich zu parametrischem Textur-Mapping, z.B. Etikett auf Flasche, Dose, etc. - -Sphärisches Textur-Mapping: -- Zentralprojektion der Textur-Koordinaten auf eine Kugeloberfläche -- Vorteil des projektiven Texturmappings: Eine explizite Zuordnung der 3D-Punkte zu Texturkoordinaten mit stetiger Fortsetzung der Parametrisierung an den Polygongrenzen entfällt → weniger Modellieraufwand! - -%\paragraph{Environment Mapping -Spezialfall des projektiven Textur-Mapping: -- Simulation der Reflexion der Umgebung an einer reflektierenden Fläche -- Darstellung abhängig von der Position des Betrachters sowie von den Normalen der reflektierenden Fläche -- Textur entspricht der Lichtquelle für die Beleuchtung durch die Umgebung (Environment Map): Sphere Map bzw. Cube Map - -Mapping der Textur auf die spiegelnde Oberfläche: -- Aussenden eines Strahls vom Auge auf einen Punkt der spiegelnden Oberfläche -- Ermittlung der Reflexionsrichtung entsprechend dem Einfallswinkel des Strahl zur Flächennormale -- damit Bestimmung des zu reflektierenden Punktes in der Umgebung, d. h. des entsprechenden Textur-Pixels aus der Environment Map - -Grundannahme beim Environment Mapping: -- relativ große Entfernung der reflektierten Objekte von der spiegelnden Fläche - -Erzeugung einer Cube Map-Textur: -- Aufteilung der Environment Map in sechs Bereiche, die den sechs Flächen eines Würfels um die spiegelnde Fläche herum entsprechen -- Rendern der Umgebung sechs mal mit einem Kamera-Sichtfeld von jeweils 90 Grad aus dem Mittelpunkt des Würfels -- Alternativ: Digitale Aufnahme und Einpassen der sechs Flächen mittels Image Warping in die jeweiligen Zonen der Environment Map -- Strahlverfolgung: Sehstrahl wird an den Eckpunkten des Objekts (entsprechend den Normalen) gespiegelt und dreidimensional mit den 6 Wänden der Cube Map geschnitten. -- Daraus ergibt sich eine Zuordnung von Objektkoordinaten (x/y/z) und Texturkoordinaten (u/v). -- Die Transformation kann wie beim perspektivischen Texturmapping berechnet werden und beim Rasterisieren für die dazwischen liegenden Pixel angewendet werden. -- Effekt ähnlich wie bei Raytracing, jedoch geometrisch angenähert (gespiegelte Objekte sind nur als 2D-Raster-Bild repräsentiert) -- keine aufwändigen Strahl-Objektschnitte (wie beim Raytracing) notwendig (Sehstrahl wird von den dargestellten Dreiecksecken zurückgerechnet!) -- Näherung wird ungenau, wenn das spiegelnde Objekt weit weg ist von der Kameraposition, welche für die Generierung der Cube-Map verwendet wurde -- nur Einfachreflexion -- Cube Maps können dynamisch (durch Offline-Rendering in Texturbuffer) generiert werden. Dadurch auch bewegte gespiegelte Objekte in Echtzeit darstellbar -- Beachte: gespiegeltes Dreieck kann auf zwei oder mehrere Wände der Cube Map fallen. Dies kann durch mehrfaches Mapping und Clipping gelöst werden. - -Environment Mapping [Haeberli/Segal 1993] für Kugel und Torus: -- Unterschiedliche Ausrichtung der Objektoberfläche sorgt für korrekte Verzerrung der spiegelnden Objekte. Die Darstellung der spiegelnden Objekte (Geometrie und Material) steht beim Environment-Mapping im Vordergrund und nicht die korrekte geom. Darstellung gespiegelter Objekte! -- Alle Raumrichtungen werden auf der Kugeloberfläche abgebildet. Je nach Aufnahmegeometrie mehr oder weniger großer blinder Fleck“ hinter der Kugel. - -%![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Environment-Map-Kugel.png) - -Erstellung einer Spherical-Environment-Map-Textur: -- spiegelnde Kugel in der Mitte einer Szene -- Fotografie der Kugel mit einer Kamera sehr großer (unendlicher) Brennweite aus großem (unendlichem) Abstand (parallele Projektionsstrahlen) -- Entstehung einer kreisförmigen Region in der Textur-Map mit den Tangenten jeweils an den Außenkanten -- Texturwerte außerhalb des Kreises werden nicht benötigt -- Wahl der Blickrichtung(-en) wichtig für spätere Anwendung! - -Anwendung einer Spherical Environment Map: -- Zur Bestimmung der Texturkoordinate eines dargestellten Punktes wird zuerst die Normale n an diesem Punkt bestimmt. -- Die Normale n wird auf die x/y- Ebene projiziert. Die Koordinaten des projizierten Normalenvektors entsprechen den Texturkoordinaten in der Sphere Map, welche die an dieser Stelle reflektierte Umgebung zeigt. -- Merke: Die Reflexion ist nicht von der Lage des reflektierenden Punktes abhängig (nur von der Normalenrichtung). - -Environment Map in latitude-/longitude-Koordinaten: -- Spiegelung wird aus Richtung des gespiegelten Strahls in Winkelkoordinaten (lat/long) berechnet -- entweder pro Pixel (Pixel-Shader) oder pro Vertex mit anschließender (linearer) Interpolation pro Pixel -- keine Berücksichtigung der Position des spiegelnden Objekts -- korrekt nur für unendlich entfernte gespiegelte Objekte → geeignet zur Spiegelung weit entfernter Objekte (Landschaften, große Räume auf relativ kleinen Objekten) - - -High-dynamic Range Imaging (HDRI) Env-Maps: -- enthalten "gesamte Dynamik" des Lichts (als Floating Point Farbwerte) - - Wesentlich realistischere Bilder! -- Tone Mapping: berechnete HDRI-Bilder werden anschließend auf die Dynamik des Monitors reduziert -- Refraktion / Brechung mit Environment Maps: + + %\paragraph{Projektives Textur-Mapping + Berechnung der Texturkoordinaten aus der aktuellen Position der einzelnen Polygone (Analogie: Projektion eines Diapositivs auf ein räumliches Objekt) + + Beispiel: Parallelprojektion mit fixer Position des Projektors zum Objekt + - 2D-Textur (Bsp. Gitter aus Millimeterskalen) + - Parallelprojektion der Textur auf einen Zylinder mit abgeschrägten Endflächen + - Projektion ist relativ zum Objekt definiert, d.h. die Textur bewegt sich mit dem Körper, sofern man diesen bewegt + - markierte Bereiche (1 bzw. 2) haben auf Zylinder stets identische Positionen + - keine explizite Zuordnung von uv-Koordinaten zu Polygoneckpunkten notwendig, weniger Modellieraufwand! + + Anwendungsbeispiele für projektives Textur-Mapping (Parallel- oder Zentralprojektion): + - Darstellung geometrischer Eigenschaften (geometrische Details, parallel, fixe Position des Projektors zum Objekt, senkrecht zur Fläche) + - einfache Darstellung von Parameterlinien (sofern die Textur senkrecht auf die Projektionsebene projiziert wird, parallel, fixiert bezgl. Objekt) + - Simulation eines Lichtkegels (Repräsentation der Leuchtdichteverteilung der Lichtquelle (Lichtfeld) als Rasterbild in einer Textur, zentral, fix in Weltkoordinaten) + + Zylindrisches Textur-Mapping: + - radiale Projektion der Textur-Koordinaten auf eine Zylinderoberfläche + - visueller Effekt für zylinderähnliche Objekte ähnlich zu parametrischem Textur-Mapping, z.B. Etikett auf Flasche, Dose, etc. + + Sphärisches Textur-Mapping: + - Zentralprojektion der Textur-Koordinaten auf eine Kugeloberfläche + - Vorteil des projektiven Texturmappings: Eine explizite Zuordnung der 3D-Punkte zu Texturkoordinaten mit stetiger Fortsetzung der Parametrisierung an den Polygongrenzen entfällt $\rightarrow$ weniger Modellieraufwand! + + %\paragraph{Environment Mapping + Spezialfall des projektiven Textur-Mapping: + - Simulation der Reflexion der Umgebung an einer reflektierenden Fläche + - Darstellung abhängig von der Position des Betrachters sowie von den Normalen der reflektierenden Fläche + - Textur entspricht der Lichtquelle für die Beleuchtung durch die Umgebung (Environment Map): Sphere Map bzw. Cube Map + + Mapping der Textur auf die spiegelnde Oberfläche: + - Aussenden eines Strahls vom Auge auf einen Punkt der spiegelnden Oberfläche + - Ermittlung der Reflexionsrichtung entsprechend dem Einfallswinkel des Strahl zur Flächennormale + - damit Bestimmung des zu reflektierenden Punktes in der Umgebung, d. h. des entsprechenden Textur-Pixels aus der Environment Map + + Grundannahme beim Environment Mapping: + - relativ große Entfernung der reflektierten Objekte von der spiegelnden Fläche + + Erzeugung einer Cube Map-Textur: + - Aufteilung der Environment Map in sechs Bereiche, die den sechs Flächen eines Würfels um die spiegelnde Fläche herum entsprechen + - Rendern der Umgebung sechs mal mit einem Kamera-Sichtfeld von jeweils 90 Grad aus dem Mittelpunkt des Würfels + - Alternativ: Digitale Aufnahme und Einpassen der sechs Flächen mittels Image Warping in die jeweiligen Zonen der Environment Map + - Strahlverfolgung: Sehstrahl wird an den Eckpunkten des Objekts (entsprechend den Normalen) gespiegelt und dreidimensional mit den 6 Wänden der Cube Map geschnitten. + - Daraus ergibt sich eine Zuordnung von Objektkoordinaten (x/y/z) und Texturkoordinaten (u/v). + - Die Transformation kann wie beim perspektivischen Texturmapping berechnet werden und beim Rasterisieren für die dazwischen liegenden Pixel angewendet werden. + - Effekt ähnlich wie bei Raytracing, jedoch geometrisch angenähert (gespiegelte Objekte sind nur als 2D-Raster-Bild repräsentiert) + - keine aufwändigen Strahl-Objektschnitte (wie beim Raytracing) notwendig (Sehstrahl wird von den dargestellten Dreiecksecken zurückgerechnet!) + - Näherung wird ungenau, wenn das spiegelnde Objekt weit weg ist von der Kameraposition, welche für die Generierung der Cube-Map verwendet wurde + - nur Einfachreflexion + - Cube Maps können dynamisch (durch Offline-Rendering in Texturbuffer) generiert werden. Dadurch auch bewegte gespiegelte Objekte in Echtzeit darstellbar + - Beachte: gespiegeltes Dreieck kann auf zwei oder mehrere Wände der Cube Map fallen. Dies kann durch mehrfaches Mapping und Clipping gelöst werden. + + Environment Mapping [Haeberli/Segal 1993] für Kugel und Torus: + - Unterschiedliche Ausrichtung der Objektoberfläche sorgt für korrekte Verzerrung der spiegelnden Objekte. Die Darstellung der spiegelnden Objekte (Geometrie und Material) steht beim Environment-Mapping im Vordergrund und nicht die korrekte geom. Darstellung gespiegelter Objekte! + - Alle Raumrichtungen werden auf der Kugeloberfläche abgebildet. Je nach Aufnahmegeometrie mehr oder weniger großer blinder Fleck“ hinter der Kugel. + + %![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Environment-Map-Kugel.png) + + Erstellung einer Spherical-Environment-Map-Textur: + - spiegelnde Kugel in der Mitte einer Szene + - Fotografie der Kugel mit einer Kamera sehr großer (unendlicher) Brennweite aus großem (unendlichem) Abstand (parallele Projektionsstrahlen) + - Entstehung einer kreisförmigen Region in der Textur-Map mit den Tangenten jeweils an den Außenkanten + - Texturwerte außerhalb des Kreises werden nicht benötigt + - Wahl der Blickrichtung(-en) wichtig für spätere Anwendung! + + Anwendung einer Spherical Environment Map: + - Zur Bestimmung der Texturkoordinate eines dargestellten Punktes wird zuerst die Normale n an diesem Punkt bestimmt. + - Die Normale n wird auf die x/y- Ebene projiziert. Die Koordinaten des projizierten Normalenvektors entsprechen den Texturkoordinaten in der Sphere Map, welche die an dieser Stelle reflektierte Umgebung zeigt. + - Merke: Die Reflexion ist nicht von der Lage des reflektierenden Punktes abhängig (nur von der Normalenrichtung). + + Environment Map in latitude-/longitude-Koordinaten: + - Spiegelung wird aus Richtung des gespiegelten Strahls in Winkelkoordinaten (lat/long) berechnet + - entweder pro Pixel (Pixel-Shader) oder pro Vertex mit anschließender (linearer) Interpolation pro Pixel + - keine Berücksichtigung der Position des spiegelnden Objekts + - korrekt nur für unendlich entfernte gespiegelte Objekte $\rightarrow$ geeignet zur Spiegelung weit entfernter Objekte (Landschaften, große Räume auf relativ kleinen Objekten) + + + High-dynamic Range Imaging (HDRI) Env-Maps: + - enthalten "gesamte Dynamik" des Lichts (als Floating Point Farbwerte) + - Wesentlich realistischere Bilder! + - Tone Mapping: berechnete HDRI-Bilder werden anschließend auf die Dynamik des Monitors reduziert + - Refraktion / Brechung mit Environment Maps: - wie Spiegelung, jedoch Sekundärstrahl aus Sehstrahl über Brechungsindex und Oberflächennormale, statt gespiegelt - Beispiel: Glas als Polygonflächen mit Rückseite + Normalen (2-fache Brechung!) + Spiegelung als Multi-Pass (Überlagerung zweier Effekte) - kann im Zusammenhang mit Cube-Maps, Spherical oder Lat/Long Environment Maps angewendet werden - - -%\subsection{ Mip-Mapping -Was? aus Originaltextur Bildung einer Menge jeweils kleinerer Texturen (halbe Kantenlänge) - -Wozu? Vermeidung/Abmilderung von Aliasing-Effekten durch "Vorfilterung" und Anwendung der passend aufgelösten Textur(-en) (1 Pixel ≈ 1 Texel) per bilinearer Filterung oder trilinearer Filterung - -%\paragraph{Sampling-Artefakte -Aliasing-Effekte durch Koordinatentransformation: -- Pixel der Textur und Pixel des dargestellten Bildes weisen (aufgrund der Bildtransformation) im Allgemeinen unterschiedliche Rastergrößen auf. -- simpler Ansatz: Berechnung der transformierten Texturkoordinaten als Floating-Point-Werte und Rundung auf ganze Zahlen -- bei inverser Transformation vom Zielbild zurück zur Textur dann keine Lücken im Bild, aber die Pixel der Textur können ausgelassen oder mehrfach verwendet werden (Bildpixel werden genau einmal angewendet) -- durch das Resampling der Textur auf das resultierende Bildraster entstehen oft Aliasing-Artefakte -Zwei wesentlich unterschiedliche Situationen: -- Abbildung mehrerer Texturpixel auf ein Bildpixel (Unterabtastung) oder -- Abbildung eines Texturpixels auf mehrere Bildpixel ( Überabtastung) + + %\subsection{ Mip-Mapping + Was? aus Originaltextur Bildung einer Menge jeweils kleinerer Texturen (halbe Kantenlänge) + + Wozu? Vermeidung/Abmilderung von Aliasing-Effekten durch "Vorfilterung" und Anwendung der passend aufgelösten Textur(-en) (1 Pixel $\approx$ 1 Texel) per bilinearer Filterung oder trilinearer Filterung + + %\paragraph{Sampling-Artefakte + Aliasing-Effekte durch Koordinatentransformation: + - Pixel der Textur und Pixel des dargestellten Bildes weisen (aufgrund der Bildtransformation) im Allgemeinen unterschiedliche Rastergrößen auf. + - simpler Ansatz: Berechnung der transformierten Texturkoordinaten als Floating-Point-Werte und Rundung auf ganze Zahlen + - bei inverser Transformation vom Zielbild zurück zur Textur dann keine Lücken im Bild, aber die Pixel der Textur können ausgelassen oder mehrfach verwendet werden (Bildpixel werden genau einmal angewendet) + - durch das Resampling der Textur auf das resultierende Bildraster entstehen oft Aliasing-Artefakte + + Zwei wesentlich unterschiedliche Situationen: + - Abbildung mehrerer Texturpixel auf ein Bildpixel (Unterabtastung) oder + - Abbildung eines Texturpixels auf mehrere Bildpixel ( Überabtastung) - Filteroperationen zur Interpolation der Bildpixel-Färbung in jedem Fall notwendig, insbesondere bei der Unterabtastung wird ein vorheriges Tiefpassfiltern und Resampling notwendig! - Ansonsten Verletzung des Abtasttheorems / Nyquistfrequenz! - -Beispiel perspektivische Verkürzung der Schachbretttextur: -- in Realität eigentlich starke Verkleinerung der Textur bei größerer Entfernung! -- → Moiré Muster - Originaltextur ist an diesen entfernten Stellen im Bild zur Laufzeit nicht mehr erkennbar (Unterabtastung, aus mehreren Texeln, welche "hinter einem Pixel liegen“, wird nur einer ausgwählt) + + Beispiel perspektivische Verkürzung der Schachbretttextur: + - in Realität eigentlich starke Verkleinerung der Textur bei größerer Entfernung! + - $\rightarrow$ Moiré Muster - Originaltextur ist an diesen entfernten Stellen im Bild zur Laufzeit nicht mehr erkennbar (Unterabtastung, aus mehreren Texeln, welche "hinter einem Pixel liegen“, wird nur einer ausgwählt) - Treppenstufen im Nahbereich resultieren aus Überabtastung (mehrere Pixel teilen selben Texel) -- Lösung: Textur muss vorher passend durch Tiefpassfilter in der Auflösung reduziert werden → Aufbau und Anwendung einer Mip-Map -- Ziel der Mip-Map: stets 1 Texel pro Pixel bereitstellen - - -%\paragraph{Aufbau -- In 3D-Szenen können Körper mit der selben Textur vom Betrachter unterschiedlich weit weg sein. → im Bild oft Unterabtastung (Minification) oder Überabtastung (Magnification) und entsprechende Aliasing-Effekte durchs Resampling! -- Ansatz: Vorberechnung derselben Textur für verschiedene Entfernungen + - Lösung: Textur muss vorher passend durch Tiefpassfilter in der Auflösung reduziert werden $\rightarrow$ Aufbau und Anwendung einer Mip-Map + - Ziel der Mip-Map: stets 1 Texel pro Pixel bereitstellen + + + %\paragraph{Aufbau + - In 3D-Szenen können Körper mit der selben Textur vom Betrachter unterschiedlich weit weg sein. $\rightarrow$ im Bild oft Unterabtastung (Minification) oder Überabtastung (Magnification) und entsprechende Aliasing-Effekte durchs Resampling! + - Ansatz: Vorberechnung derselben Textur für verschiedene Entfernungen - Stufe 1: volle Auflösung - Stufe 2: halbe Auflösung in jeder Richtung $(1/2)$ - ... - Stufe k: Auflösung $(1/2)^k$ - Stufe n: niedrigste Auflösung (je 1 Pixel für z.B. R, G und B) -- Speicherbedarf: - - (hypothetische) Annahme: Anordnung im Array (getrennt f. RGB) → Alle niedrigen Auflösungen verbrauchen zusammen nur ein Viertel des Speicherplatzes + - Speicherbedarf: + - (hypothetische) Annahme: Anordnung im Array (getrennt f. RGB) $\rightarrow$ Alle niedrigen Auflösungen verbrauchen zusammen nur ein Viertel des Speicherplatzes - Mip steht für lat. multum in parvo = viel (Information) auf wenig (Speicherplatz) - niedrige Auflösungsstufen werden durch Filterung aus den höheren berechnet: - - einfach: z.B. Mittelwert aus 4 Pixeln (Box-Filter) oder - - aufwendiger: z.B.: Gaußfilter (siehe Kap. Bildverarb.) - -%\paragraph{Anwendung -- Beispiel: OpenGL-Filteroperationen im Bildraum (zur Laufzeit ausgeführt): + - einfach: z.B. Mittelwert aus 4 Pixeln (Box-Filter) oder + - aufwendiger: z.B.: Gaußfilter (siehe Kap. Bildverarb.) + + %\paragraph{Anwendung + - Beispiel: OpenGL-Filteroperationen im Bildraum (zur Laufzeit ausgeführt): - GL\_NEAREST: Annahme des Wertes des nächstliegenden Textur-Pixels - GL\_LINEAR: bilineare Interpolation: gewichteter linearer Durchschnitt aus einem 2x2-Feld der am nächsten liegenden Texturpixel -- Genauere Interpolationsverfahren (z.B. bikubisch) gelten als zu aufwendig für Echtzeitanwendung -- Beispiel für stark vergrößerte Textur: + - Genauere Interpolationsverfahren (z.B. bikubisch) gelten als zu aufwendig für Echtzeitanwendung + - Beispiel für stark vergrößerte Textur: - Aus der Nähe betrachtet, wird das Texturraster auf dem Bildraster entsprechend skaliert (vergrößert). - durch Runden der Texturkoordinaten (d.h. ohne Filterung) - mit bilinearem Filter gewichtete Texturfarbwerte proportional zum Abstand vom gerundeten Koordinatenwert - -%\paragraph{Zusammenfassung -Aufbau der Mip-Map (als Vorverarbeitungsschritt beim Rendering): -- Speicherung der Originaltextur -- rekursive Speicherung der geringer aufgelösten Texturen (je 1/2 Kantenlänge) bis hinunter zu einem einzelnen Pixel - -Vorteile: -- Filter-Operationen können bei Initialisierung der Textur vorausberechnet werden -- nur ein Drittel zusätzlicher Speicherplatzbedarf - -Darstellung mit Mip-Map Texturen (zur Laufzeit) -- Auswahl der passenden Auflösungsstufe k Skalierung berechnet aus der Entfernung zum Betrachter und der perspektivischen Verkürzung (siehe Kameratransf.): $d/z = (1/2)^k \rightarrow k = log_2(z)-log_2(d)$ -- Transformation der Pixel zwischen den Textur-Eckkoordinaten der gewählten Auflösung auf das Polygon im Bildraum -- typ. Verwendung der linearen Filter zur Vermeidung von Aliasing-Effekten durch Trilineare Filterung: zusätzlich zu bilinearem Filteren in einer Mip-Map-Stufe wird linear gewichtet zwischen zwei Mip-Map-Stufen (auf-, bzw. abgerundete Werte von k) interpoliert: z. B. wenn $k = 2.3 \rightarrow 30\% Anteil_{k=3}$ und $70\% Anteil_{k=2}$ - - -%\paragraph{Anti-Aliasing -Anti-Aliasing durch trilineare Filterung: -- Durch die perspektivische Verkürzung wird eine weiter hinten liegende Textur verkleinert und im Vordergrund vergrößert. Bei einer Skalierung kleiner als 1 überspringt die gerundete inverse Texturtransformation Pixel in der Textur (minification). Die im Bildraum gesampelten Texturpixel werden somit "willkürlich" ausgewählt. Dadurch können Treppenstufen und Moiré-Muster entstehen (Aliasing-Effekt: linkes Bild). Durch Mip-Mapping werden an diesen Stellen geringer aufgelöste (gefilterte) Texturen verwendet (Rechtes Bild: Mit Mip-Mapping und tri-linearer Filterung wird ein Anti- Aliasing-Effekt erreicht) -- Vergrößerte Darstellung: Trilinearen Filterung = lineare Filterung zwischen den zwei aufeinander-folgenden (am besten passenden) Mip-Map-Stufen + bilineare Filterung in jeder der beiden Stufen. → Kantenglättung, Tiefpassfilter (Mittelwert / hier Grauwerte) - -%![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Mapping-Anti-Alising.png) - -%\paragraph{Rip-Maps -Anisotrope Filterung: -- z.B. bei flacher Aufsicht ist die Verkleinerung in y-Richtung viel stärker als in x-Richtung! -- Ohne spezielle Maßnahmen für diesen Fall müsste jeweils die Mip-Map-Stufe mit der kleinsten Auflösung verwendet werden, sonst treten wieder Aliasing-Artefakte auf! -- → Dies führt zur unscharfen Texturabbildung. -- Abhilfe: Anisotrope Mip-Maps (= Rip-Maps, Rectangular Mip-Maps) - -Anisotropic Mip-Map (Rip-Map): -- Verschiedene Auflösungsstufen in x- und y-Richtung werden erzeugt, sodass für jede Situation die richtige Auflösung gefunden werden kann ohne beim Resampling das Abtast-theorem zu verletzen. -- Aber: Vierfacher Speicherbedarf gegenüber höchster Auflösung (statt 1,33 - s. MipMap) - - -%\subsection{ Weitere Texturarten -%\paragraph{Bump-Map -- Reliefartige Texturen: Herkömmliche Texturen sehen aus der Distanz zwar akzeptabel aus, von Nahem betrachtet erscheinen sie flach. -- Grund: keine korrekte 3D-Beleuchtung, Abschattung, keine Verdeckung, etc. -- Idee: Verwendung zusätzlicher Texturen, welche Tiefeinformationen beinhalten - -- Bump Map: Offset zur Polygonebene in Richtung der Normale als Grauwert“ der Textur kodiert -- Polygon: als Schnitt mit Normalenrichtung -- Anwendung des Offsets auf Polygonfläche (Drehung): Die Normale wird als Gradient der Bumpmap berechnet. Die Beleuchtung wird daraus wie bei der Normalmap pro Pixel berechnet. -- Ein Offset“ wird nicht berücksichtigt! → Als Konturen nicht erkennbar! - -%![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Bumpmap.png) - -%\paragraph{Normal-Map -- Normal-Map: Normalen Vektor x/y/z als RGB-Wert kodiert -- Polygon: als Schnitt mit Normalenrichtung -- Anwendung der Normal-Map auf Polygonfläche: Die Normale der N-Map modifiziert die Flächennormale (räumliche Drehung). Bei der Beleuchtungsberechnung wird für jedes Pixel die modifizierte Normale verwendet. -- Ein "Offset" wird nicht berücksichtigt! → Als Konturen nicht erkennbar! - -%\paragraph{Parallax-Map -- Parallax Map Tomomichi Kaneko et al. 2001 -- Ausgangsdaten: Bump Map -- Die u/v-Koordinaten der angezeigten Textur werden Entsprechend der Blickrichtung beim Look-up um $\delta u = h * \tan(\phi)$ verschoben. Die daraus resultierende Verzerrung verstärkt den 3D-Effekt, allerding ohne korrekte Berücksichtigung der Verdeckung -- Anwendung des Offsets auf Polygonfläche (Drehung): Anwendung der Bump Map des Offests auf Polygonfläche (räuml. Drehung der Modellkoord.) Die Normale wird als Gradient der Bumpmap berechnet. Die Beleuchtung wird daraus wie bei der Normalmap pro Pixel berechnet. - -%\paragraph{Displacement-Map -- Ausgang: Wiederum Bump Map, jedoch Bestimmen des korrekten Schnitts eines Sehstrahls mit der Bump Map durch iterative Suche des Schnittpunktes -- Finde $u_0$ , sodass $u-u' = h(u') * \tan(\phi)$ mittels Bisektion entlang dem Sehstrahl -- Bei Mehrdeutigkeit: Finde $u_0$ am weitesten weg von $u$ → korrekte Verdeckung -- Silhouetten: Auch u/v-Koordinaten außerhalb der Polygongrenzen müssen berücksichtigt werden! + + %\paragraph{Zusammenfassung + Aufbau der Mip-Map (als Vorverarbeitungsschritt beim Rendering): + - Speicherung der Originaltextur + - rekursive Speicherung der geringer aufgelösten Texturen (je 1/2 Kantenlänge) bis hinunter zu einem einzelnen Pixel + + Vorteile: + - Filter-Operationen können bei Initialisierung der Textur vorausberechnet werden + - nur ein Drittel zusätzlicher Speicherplatzbedarf + + Darstellung mit Mip-Map Texturen (zur Laufzeit) + - Auswahl der passenden Auflösungsstufe k Skalierung berechnet aus der Entfernung zum Betrachter und der perspektivischen Verkürzung (siehe Kameratransf.): $d/z = (1/2)^k \rightarrow k = log_2(z)-log_2(d)$ + - Transformation der Pixel zwischen den Textur-Eckkoordinaten der gewählten Auflösung auf das Polygon im Bildraum + - typ. Verwendung der linearen Filter zur Vermeidung von Aliasing-Effekten durch Trilineare Filterung: zusätzlich zu bilinearem Filteren in einer Mip-Map-Stufe wird linear gewichtet zwischen zwei Mip-Map-Stufen (auf-, bzw. abgerundete Werte von k) interpoliert: z. B. wenn $k = 2.3 \rightarrow 30\% Anteil_{k=3}$ und $70\% Anteil_{k=2}$ + + + %\paragraph{Anti-Aliasing + Anti-Aliasing durch trilineare Filterung: + - Durch die perspektivische Verkürzung wird eine weiter hinten liegende Textur verkleinert und im Vordergrund vergrößert. Bei einer Skalierung kleiner als 1 überspringt die gerundete inverse Texturtransformation Pixel in der Textur (minification). Die im Bildraum gesampelten Texturpixel werden somit "willkürlich" ausgewählt. Dadurch können Treppenstufen und Moiré-Muster entstehen (Aliasing-Effekt: linkes Bild). Durch Mip-Mapping werden an diesen Stellen geringer aufgelöste (gefilterte) Texturen verwendet (Rechtes Bild: Mit Mip-Mapping und tri-linearer Filterung wird ein Anti- Aliasing-Effekt erreicht) + - Vergrößerte Darstellung: Trilinearen Filterung = lineare Filterung zwischen den zwei aufeinander-folgenden (am besten passenden) Mip-Map-Stufen + bilineare Filterung in jeder der beiden Stufen. $\rightarrow$ Kantenglättung, Tiefpassfilter (Mittelwert / hier Grauwerte) + + %![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Mapping-Anti-Alising.png) + + %\paragraph{Rip-Maps + Anisotrope Filterung: + - z.B. bei flacher Aufsicht ist die Verkleinerung in y-Richtung viel stärker als in x-Richtung! + - Ohne spezielle Maßnahmen für diesen Fall müsste jeweils die Mip-Map-Stufe mit der kleinsten Auflösung verwendet werden, sonst treten wieder Aliasing-Artefakte auf! + - $\rightarrow$ Dies führt zur unscharfen Texturabbildung. + - Abhilfe: Anisotrope Mip-Maps (= Rip-Maps, Rectangular Mip-Maps) + + Anisotropic Mip-Map (Rip-Map): + - Verschiedene Auflösungsstufen in x- und y-Richtung werden erzeugt, sodass für jede Situation die richtige Auflösung gefunden werden kann ohne beim Resampling das Abtast-theorem zu verletzen. + - Aber: Vierfacher Speicherbedarf gegenüber höchster Auflösung (statt 1,33 - s. MipMap) + + + %\subsection{ Weitere Texturarten + %\paragraph{Bump-Map + - Reliefartige Texturen: Herkömmliche Texturen sehen aus der Distanz zwar akzeptabel aus, von Nahem betrachtet erscheinen sie flach. + - Grund: keine korrekte 3D-Beleuchtung, Abschattung, keine Verdeckung, etc. + - Idee: Verwendung zusätzlicher Texturen, welche Tiefeinformationen beinhalten + + - Bump Map: Offset zur Polygonebene in Richtung der Normale als Grauwert“ der Textur kodiert + - Polygon: als Schnitt mit Normalenrichtung + - Anwendung des Offsets auf Polygonfläche (Drehung): Die Normale wird als Gradient der Bumpmap berechnet. Die Beleuchtung wird daraus wie bei der Normalmap pro Pixel berechnet. + - Ein Offset“ wird nicht berücksichtigt! $\rightarrow$ Als Konturen nicht erkennbar! + + %![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_Bumpmap.png) + + %\paragraph{Normal-Map + - Normal-Map: Normalen Vektor x/y/z als RGB-Wert kodiert + - Polygon: als Schnitt mit Normalenrichtung + - Anwendung der Normal-Map auf Polygonfläche: Die Normale der N-Map modifiziert die Flächennormale (räumliche Drehung). Bei der Beleuchtungsberechnung wird für jedes Pixel die modifizierte Normale verwendet. + - Ein "Offset" wird nicht berücksichtigt! $\rightarrow$ Als Konturen nicht erkennbar! + + %\paragraph{Parallax-Map + - Parallax Map Tomomichi Kaneko et al. 2001 + - Ausgangsdaten: Bump Map + - Die u/v-Koordinaten der angezeigten Textur werden Entsprechend der Blickrichtung beim Look-up um $\delta u = h * \tan(\phi)$ verschoben. Die daraus resultierende Verzerrung verstärkt den 3D-Effekt, allerding ohne korrekte Berücksichtigung der Verdeckung + - Anwendung des Offsets auf Polygonfläche (Drehung): Anwendung der Bump Map des Offests auf Polygonfläche (räuml. Drehung der Modellkoord.) Die Normale wird als Gradient der Bumpmap berechnet. Die Beleuchtung wird daraus wie bei der Normalmap pro Pixel berechnet. + + %\paragraph{Displacement-Map + - Ausgang: Wiederum Bump Map, jedoch Bestimmen des korrekten Schnitts eines Sehstrahls mit der Bump Map durch iterative Suche des Schnittpunktes + - Finde $u_0$ , sodass $u-u' = h(u') * \tan(\phi)$ mittels Bisektion entlang dem Sehstrahl + - Bei Mehrdeutigkeit: Finde $u_0$ am weitesten weg von $u$ $\rightarrow$ korrekte Verdeckung + - Silhouetten: Auch u/v-Koordinaten außerhalb der Polygongrenzen müssen berücksichtigt werden! - aufwendige Shader Programme nötig - -%\paragraph{Zusammenfassung -- DECAL (Abziehbild) RGBA-Werte ohne Berücksichtigung der Beleuchtung (emmisiv, evtl. mit Alpha Wert (A) für transparente Anteile) -- DIFFUSE: RGB-Werte werden als diffuser Farbanteil mit Beleuchtung verrechnet -- Graustufen: Helligkeitsweit wird mit dem diffusen Materialfarben mutlipliziert. -- Specular Map: Wie bei Diffuse Texture Map, jedoch für spekulären Anteil -- Normal Map: Normalisierte Normalenrichtung (als 2farbiges Rasterbild). Dient zur Modulierung der Flächennormalen und wird bei der Beleuchtung berücksichtigt. Farbwerte kommen aus der Materialkonstante des Polygons, oder aus der Diffuse Map (bzw. Specular Map). Ergibt aus der Ferne eine dreidimensionalen (reliefartige) Struktur. -- Bump Map: Statt der Normalen wird eine Erhöhung (in Richtung der Normalen) kodiert (grauwertiges Rasterbild). Die Normalenrichtung wird daraus als Gradient (Differenz zweier benachbarter Pixel) bei der Darstellung abgeleitet. Danach Beleuchtung wie Normal Map. -- Parallax Map: zusätzlich Pixelverschiebung als Funktion der Höhe und Kamerarichtung - -%\subsection{ Shadow Mapping -1. Durchgang: - - Erzeugen der Shadow Map - - Darstellung (mit z-Werten) aus Sicht der Lichtquelle - - Kamera Koordinaten in der Lichtquelle zentriert (Matrix L) - - z-Puffer als Textur speichern -2. Durchgang: - - Kamera Ansicht: View Matrix: V (ebenfalls mit z-Puffer) - - → Um den Schatten zu erzeugen benötigen wir Shader mit Lookup in der Shadow Map-Textur: - - 4x4-Matrix: $M = V^{-1}*L$ - -%![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_ShadowMap.png) - -Shadow map look-up: -- Transformiere jedes Pixel aus dem Kameraraum in den Lichtraum -- $p'=L*V^{-1}*p$ -- Vergleiche transformierte z-Werte $(p'_z)$ mit den z-Werten der Shadow Map $(z_s)$ - - $(p'_z>z_s)$: im Schatten – keine Beleuchtung von der Lichtquelle + + %\paragraph{Zusammenfassung + - DECAL (Abziehbild) RGBA-Werte ohne Berücksichtigung der Beleuchtung (emmisiv, evtl. mit Alpha Wert (A) für transparente Anteile) + - DIFFUSE: RGB-Werte werden als diffuser Farbanteil mit Beleuchtung verrechnet + - Graustufen: Helligkeitsweit wird mit dem diffusen Materialfarben mutlipliziert. + - Specular Map: Wie bei Diffuse Texture Map, jedoch für spekulären Anteil + - Normal Map: Normalisierte Normalenrichtung (als 2farbiges Rasterbild). Dient zur Modulierung der Flächennormalen und wird bei der Beleuchtung berücksichtigt. Farbwerte kommen aus der Materialkonstante des Polygons, oder aus der Diffuse Map (bzw. Specular Map). Ergibt aus der Ferne eine dreidimensionalen (reliefartige) Struktur. + - Bump Map: Statt der Normalen wird eine Erhöhung (in Richtung der Normalen) kodiert (grauwertiges Rasterbild). Die Normalenrichtung wird daraus als Gradient (Differenz zweier benachbarter Pixel) bei der Darstellung abgeleitet. Danach Beleuchtung wie Normal Map. + - Parallax Map: zusätzlich Pixelverschiebung als Funktion der Höhe und Kamerarichtung + + %\subsection{ Shadow Mapping + 1. Durchgang: + - Erzeugen der Shadow Map + - Darstellung (mit z-Werten) aus Sicht der Lichtquelle + - Kamera Koordinaten in der Lichtquelle zentriert (Matrix L) + - z-Puffer als Textur speichern + 2. Durchgang: + - Kamera Ansicht: View Matrix: V (ebenfalls mit z-Puffer) + - $\rightarrow$ Um den Schatten zu erzeugen benötigen wir Shader mit Lookup in der Shadow Map-Textur: + - 4x4-Matrix: $M = V^{-1}*L$ + + %![Quelle Computergrafik Vorlesung 2020](Assets/Computergrafik_ShadowMap.png) + + Shadow map look-up: + - Transformiere jedes Pixel aus dem Kameraraum in den Lichtraum + - $p'=L*V^{-1}*p$ + - Vergleiche transformierte z-Werte $(p'_z)$ mit den z-Werten der Shadow Map $(z_s)$ + - $(p'_z>z_s)$: im Schatten - keine Beleuchtung von der Lichtquelle - sonst: Punkt ist von der Lichtquelle her sichtbar, wende Beleuchtung in der Schattierung des Pixels an - -%\paragraph{Probleme -Z-fighting beim Schattentest: -- Schattentest $(p_z' <= z_s )$ sollte für beleuchtete Pixel korrekt $(p'_z = z_s)$ ergeben. -- Aufgrund der Rechenungenauigkeit der Fließkomma-Arithmetik wird Gleichheit selten erreicht! -- Beleuchtete Polygone schatten sich teilweise selbst ab. -- Lösung: kleiner Offset im Schattentest: $IF (p'_z <= z_s + Offset...)$ -- durch das Offset wird sichergestellt, dass keine falschen Schatten entstehen - -Uniform Shadow-Map -- Probleme: zu niedrige Auflösung der Shadow Map im Nahbereich, Großteil der Shadow Map ist irrelevant für Kameraansicht - -Perspektive Shadow-Map -- adaptive schiefsymtetrische Projektion; nicht uniforme perspektive Shadow Map - -%\subsection{ Zusammenfassung -- Transformation des Texturraums in den Bildraum der Darstellung: + + %\paragraph{Probleme + Z-fighting beim Schattentest: + - Schattentest $(p_z' <= z_s )$ sollte für beleuchtete Pixel korrekt $(p'_z = z_s)$ ergeben. + - Aufgrund der Rechenungenauigkeit der Fließkomma-Arithmetik wird Gleichheit selten erreicht! + - Beleuchtete Polygone schatten sich teilweise selbst ab. + - Lösung: kleiner Offset im Schattentest: $IF (p'_z <= z_s + Offset...)$ + - durch das Offset wird sichergestellt, dass keine falschen Schatten entstehen + + Uniform Shadow-Map + - Probleme: zu niedrige Auflösung der Shadow Map im Nahbereich, Großteil der Shadow Map ist irrelevant für Kameraansicht + + Perspektive Shadow-Map + - adaptive schiefsymtetrische Projektion; nicht uniforme perspektive Shadow Map + + %\subsection{ Zusammenfassung + - Transformation des Texturraums in den Bildraum der Darstellung: - Verwendung unterschiedlicher geometrische Transformationen (z. B affin, perspektivisch, Env. Maps, etc.) - Anwendung immer als inverse Transformation! -- Resampling + Rekonstruktion: Das transformierte Texturraster wird nach der Transformation durch das Bildraster neu abgetastet. -- Filter: Verhindern bzw. Abmildern von Aliasing-Effekten, verursacht durch Resampling. + - Resampling + Rekonstruktion: Das transformierte Texturraster wird nach der Transformation durch das Bildraster neu abgetastet. + - Filter: Verhindern bzw. Abmildern von Aliasing-Effekten, verursacht durch Resampling. - Lösung: Tiefpass-Filter vor der Transformation: Mipmapping, Anisotrope Filter. - Beim Abtasten (Rekonstruktion):Trilineare Filterung in x, y, und k (Mip-Map-Stufe) -- Texturinhalt als Material, Beleuchtung, Geometrie interpretiert - - - + - Texturinhalt als Material, Beleuchtung, Geometrie interpretiert + + + \end{multicols} \end{document} \ No newline at end of file