### (TODO: Your README)
Include screenshots, analysis, etc. (Remember, this is public, so don't put
anything here that you don't want to share with the world.)
+## Other contributions
+On Optimus machines, you may get the error `Cuda error: Kernel failed!: all CUDA-capable devices are busy or unavailable.` It looks like Windows is starting to manage automatic GPU switching rather than the NVIDIA driver, so if this issue comes up, you might be able to fix it by going to the Windows Settings app > System > Display > Graphics and manually adding the path to the compiled executable that was built in VS code. Then, you can set the GPU to NVIDIA.
+
+
+
\ No newline at end of file
diff --git a/cuda-getting-started/src/main.cpp b/cuda-getting-started/src/main.cpp
index 886fd4c..a4677c2 100644
--- a/cuda-getting-started/src/main.cpp
+++ b/cuda-getting-started/src/main.cpp
@@ -10,8 +10,7 @@
* C main function.
*/
int main(int argc, char* argv[]) {
- // TODO: Change this line to use your name!
- m_yourName = "TODO: YOUR NAME HERE";
+ m_yourName = "Aditya Hota";
if (init(argc, argv)) {
mainLoop();
diff --git a/images/cuda_3_1_1_name.png b/images/cuda_3_1_1_name.png
new file mode 100644
index 0000000000000000000000000000000000000000..5988a27ad5f48469e2dce1015a207722730c1f4d
GIT binary patch
literal 12236
zcmeHtX;hO}w|`ozwj$DM1py&iMFkZq^NbahnJCC)fT&DDfG~t9B%xS=DixH$2oa((
zM8?Q0Q=(7}gAgH-Kp+GJ62cTEgqVbo8{79oKm6DKzVEv04(r~2cvjAn^Xzl>*=L{M
z`R%jMtqZPpiaXSH0000*2m7;b0KgV4`Q!QZHu*nOKOFiX|M?=;&F&1Kc5pve{_<7G
zPcA+rL0odtiu9z&J$FyTHsHE#ZSYus+O+#zr*`iz6IUKg{;r3|~+P##_^&wiy z;LGgY?{=aklR3~{*86I+o71q@LnkhKQ?u&UnvN2~_{ms?O{)>(2zuXw=jF6@@JT0= zTkwO1Ny{K`=(vyr%QsMCO8qxHl`YkKjxX&xOoVXwNKQ-*f|c@+p4Uu+ev~z%==!#b z`kxql8QNWXq~}8O91L+E?NBevHPIKcnr@HX(^&iRzG`d{CbWEdnyt0&tShV{_>YJl zq_ElNXg+ACr`YLy$!y+hSZ4A>|1)*mYAcuz_h8ya8=QZL?P@|lkc#7}QxR=*-Jiv7 zojiCgY{urAoV$9XgGmH0eO{hZnz@XCPa3<6Ww4g5?=yy+@AVWPQMgY_$ih>oEcQ++ zq=pn6XY5)y7^mbgPK_+qQfeOQA=^eQQ$qY^n zK@}NPv^`hM8|cm`D);{o#rwp?u9+6@TVonr`U_E*&fP) CQ-l?mP0@O>ng^ zeA?MK?^23)FH3nmU40XUjXML(DaIM>BjLVe2PX_s@w1f)1r6S=Dqbesf2>XY{v EZ4YP8dwy^ z)>K18H=2mWLm)HS Fc(N^_V7>F=&L2^@UpQMW8DF=Fw)}q>21lscdrpWBt-|- z)m*{aUN4h#@TRP&i~+CfWf!NckPX$WjT%MLgaJW69 yF5(tadkoLK*;LPSxni9WW_gIm5$SDj;u9nN;|n0JrG G=KZoj&S*1|h}Nfw;9=Xh=61JXCqvK(%WXFgOIyx1Rbup$uhb o+FN;wyBxebWNUHBFUCE7t3L9O)A)Yg@`_Se#7W=U<37s4s%S#|oo<9= zMwG1-k?hnh$)iEH=B*UVRk$23=Y@aRx53*p86m$CchZ#h?CYi8Kq=tQ8C3ixq^_PY ze{zm!G{8UW)}3r59=L8xt{-n%u4WNB^L{ww5)DeF$N3A=sx42_(OA*Nw0vjE*?K3o zhUOt`@y>m}mms*Dkb?1C4z`=gBv=DDO5AR^^=P|wJDUVIri9Zqp+f9g$-&nd4^Q?y z`lzzXw!rvr5x#n8|M*H8e*f;!Qqq?evJUo5O9Ed!b%s*yD2q$JcViON__=Q`y+;?w zderD5&yVho?b_&C3eCam@$jYa? {oDF&ZQTZGcQE{MTjAR3&shA|j3yGF^VSQz z!>mF}BQTVesUeH$D7RnQhl>;Xi1WWU-+W(aP?1-VL88a0dIOWb(UhRczmLaFaM^Fv zhN$g(c>9|^!2s*K!w-FphR0+tLz3JWJ-f&wlMa%f(IR}AuX)kn{%V5u9f5b@b+@G1 zmpLj-d*n~NqvTDy?r0orly{@o)?#kQF#5OeB+bAcUE1|EJDy%)V@mOT!hr-)$%FFd z`P1mwxmfFW2nK%9B!15kZp*yJG@-0WnT~6NsX7nFOGxfgUGjWxWEqqSc?tQ-o9II~ zppfGOneR>=GN#m+A^#RtANnY+XOqdzO*zu$asPrSs}ik_DfLS(K8SWgpRb68XKwY@ z<_?`(s*@y2ciHidOT5U>!RP81ow;E=bS1D z+8?ZLH_e+3Jh2){WqV*x5;w{98-VC0P)=ZxE8xs3560`{^7+7TH>v)`VijZS{xbDd zUdR8QP4}4ZGEp7E)+=WU e{wdSC>jwC zpE);AWDNUACG4=wrI*2Pb0K2kq(_`~A&NAmeMFJ&uyXjO`0URUMLY^eWK60R?9thP zy=>w|r`-9I({hD?a#h+JP|Ot}e=w?L z-!S_^?Lpkf-*Pu_7y$v;{F5K6Ik~F^Hqq#+!jVdzSE~j_7Ijx{hgu=0dh1ksQxS --%VzyBm=kZ}wu%q1MZY6Zf8Rd2Fw(?w_vlagN;&r*SQ@Jb5 zuwMJyW;1$#(@Lxi5cJFBuf15*5( pcBpiE#{&f92}B=8E=LYvqOFIewQoKy#srW&JKS{A7(<+3uhe zWxhTT$~A0wDQX>j%B413>Kf_!O^AGk9DSpl1f_bq4;_yb#9;1U4v{@Uwv|oqU_>LA zMJDo1XuG|eciMtZGrjmy4AifDk6CS`Mb(<^rsmH{6fvSdhUIEAC^vV`FF%$^3J`jo z|E^0M?vj8^@fX1>pU}Hw4r6V(+K1D^9WkFN;*SOzTwpF*H4nTYy&62I0dGvLP4H<2 zeOXmb_d$s%zm0SfLm9@$_R>X 8gY+q$z?U~^wMotyF~Q>&4=r-JPdv(s%$ zy@<+?iw(yXtZa6XO@;o8xSmj2Q_nG7?naE+x3uB3gak{jX7&btQE$s1KJgZk&BcTB zoXIvB9zrB8Mvv#{3mk13kn<;>->$4Ru&2;%XdN#zT{Q~%dd0Vut0fyxfaefFjmTVG z;BBQgoE4~&qpnm{A8xF8dsxhbGErA+s$S-7vo-r8B0IV=Db)rKVM6n{u`Y~spX`ZS z_@fF_5vLTr@7g2J?&sQdZ#i?sj2Iijm{vw@n9s=fpf$D5cFesn3)8rI@Gyof$hms9 zd3P_D-tE;YH!6^aNv@jRTcC*dt!n?1W(0#_Y*~9Ep((jBP{fTQ+u;4SG}#oI-lxG< zT}_m+nRXkuQR f{q^{ zy7%`{qnnLfpY36f*0TL9Z8sbA8IG%@i-vimj#+MEGBFPmt=gMB3r9jvB)a?O=tX !EqX65i|AtA1SU8lzTX@MM#^V?_M-3Jh8DMI4N6=ta*v|u>F5Fb;Z zVqr?z9{Ee%Y v@I*?s;O7@v1OZ?_^zpk+3v)uK#)U{BSJ zl6?oCPLFR1G_^F YlObNF!L=JmL1)Pnw-{F=ccu7 z8b|x&vudExLm|Ds6sZi3T`g$pAz#W#_9Kg$<*?7lJ^e1(wdN&R{E)TD`}M`h%OWfG z_RFnR1%$E*ZMl!_Qd~c`YTrc{G(K%B>m={CuBo{MLu1llwiS z?$wHZ#giZQ69Gako8Rx4(r^m!=Rl~Eekh|Cx=$b|^8TJ@W*ZZcJE&4bAy=-ZLAw8V zH**n>RQT-~?K=KFXcZg(s+oSn#UAuB3p>pujyxHBA`|U%7jKP=OKZVWyePd$UMLQz zC{P%GG_YG8;Jb9feT&Rs&0js03S%-}6;HKcp5@+bvv6nEpwJAz6oZyav6ANaCpedE z(M)B{uGdL@ffriZ^KQkEp-hP3tc;g| (iI9Al2o(g~T^ z9hyp~*^?YhGL-48m{%fIv4$uk2*Ev3__2;;zHM+a|2@ZVUmzHa^|qaDXP&kLT|<`% zuzc6`kVQNu VnfcCOPGB6(4WpGQseD*0)~SS3!7zW z?!3k7 p!26Xxy^dgl`7e)}*+`x7rzM|pts@qKc3MlU)__E< zexbbc(O7ew4rS2W_1N1 1IfC`FXi~;kHGZHtRwi)@A zzsTlRyFNh!?bu{lK#TX@vV uakd^3rlqov?GoTcS?SLB_R&<+9p51TB4x5=Mlt%VY+q6d2KL)Sy`Zh^Z}z~}h3 zG}U&W=xraVBb`(Tc?=F`Zl9uEe;W_nA5U&6)DZ8u!|6!a0YBeGExmg6hOHD+!0-4s zmgRkZp60a=VwhmOc`h(-gGLW=wH;p{C%O8WF as@g?IY0(c$Z&g%f9M5>qN42(I#~a)oK6J zYs$@%@jK%TWize~7R#gGZTx4;YhR^advq({e%x{#)%KEkX%q6ZR8CIte&3kVZ|<|5 z_KKrxcWLbspe@**EmUx~t5{V&hHSDq SsQmao)1;9+ v*So_x>u}wkUwBzX5sSa zo-|o%^|IK4Yx~7fG^mJi-)a~J_gjBS8-7*PS*!+zMZvP*XNy_Ur`B@1OBoa8W-!bO zovpy_5HudAZo~R%-lL41NK*E&wWZ24&tI!g*Kn0pJkGiLAFJ{8pTpbF)tXK`?%O;% zx1plqVC)m)c|%)qGG67|#rnse6t00UeyiZ@F=MgeLj$opgf;xLUp(nWH YMC~^e8z`^r<3QC= 1!3LopmxRnV2@_ZG#@*V)^)I(~F8PyVasg&UstL3vO+<=5%dOMP6T0{5h2E@D z_vf@V^zl2+oHXcRnUyPPe3RDX^}(#S 3ai>Y9_a0`t<^4;qQ& +t9P{P6GEt3lb6J`wQGob Tc{ 3T +z1-HK`AXJGi*0(hEwk14e#w-J zK(ozGE~txviRE`;i7OSVQ%vun&xUH?T8KjB-EiTBjoKf}Kj`)+2@pxPQKDN(P10|m z ?v8|oE7ryxPFx0fvnnH@3gs8OnM}h<}h}$ zd~lk&ShW_eBG)C@)TYkGS0;d`X|bTddeh!`WF%V5oF;ZBy`BP^ZXS}E27yP338CIA z=bzWAQ;qJ6UsPM|IVrgCSkweOWj(HHF^-__IZE1spZj)uN5L23Q@p#y)XTbH`5IGG zmrG58EiM*IXLf1sFxl>aV*RDTy!t-3e!Z|(7uiRc} z@Xv|)gq=XI2C`{2Vr4S_0pI@mkpSAcUi}mjU>Idp=r*_BX3uaU8)Duq*kr6Fo0t>d z){W^tF({pQ<;}fa6WsK>*WPM%GI}|@9X;w5Owrx;p-lC ;23 z`P}SzYd*QPsdv_5NDMa5mVA4=OE;&S6?jI;p3C+4<58SFh*_ArwCjcO%zSU-XEgJ? zd#7{XQ97wt3pO7xSY&I0@&3TW=xordRpY~V7sHQ|Z(19zK<+X0Pt-jaEJd(XCSSl$ zYcqGc{SDS9Dz?vpCBuz}B~t#N#XD`!m(HmbjS7*0Nep)l&TxODs~AW2#5>Cb-RoJ0 zbV|&g{*(^S!~BS#6x|RxEYPSP=ip72Rm1DH)huN_fb6pF9|bl0XZ^56wvi|v{k4Wa ztlLT3Y&S0!yL~cyVw@1m#JHw6_d#HaZiH%$&5^5B!pltz^ZPngEY-D#O VkJf zt2NT-TshM{0_f*N (W vy|>>#_&G=GDY6Cl7kZ62
6?YAma5m# zwT`2@KWArVG7k?9o}<@>cXncdct$W#R$i^Tu9YFmohb}aJ+%Y}RQud5=D N0vo<#Q)f*`E^RwSxdOdQRu^Mg9T1C2;Jjt89D4dZ^P1Q%oNuYm3OOi!A`j z3<*LB@q_6i#n@m_LdrdhIca>Kcw#%^G-4NG4{pb8Hr2B99S~p1o(ovZb~LH|_V Q zjLU6%6MK=f4`HEm>7;s|CU*njHpur3-jdq Su19 z7PcFX7>X1Qp5u%Alr(pP2~W)SUwRkazK+cq{bh(n9Uhx_y9v*esblSMzV>}+f`jZr zdN}kqE0YS84>mgtYLbc(;h=teo-Ep_tRkhNs)siEL+2}m?z*;~&FSezrFeLZ8 =&@DbDQ(Ofn>&>Qp3T$oj_z@+iaWN}Yf-v8C1ct4+bj7bhAAeV zO=Vrtf=+aFldfY!`Rz(IV`Le~kMSIa>_u7?z{uIR#&{O&GF?xZI#S2sF?(OYO)h8y ziKGTpe_p_Jtz!vnPnD-)j9R#bLn9*zmXLW!O^jchiy5#-L b*H7sTEcr2H~``;#~UPx=G8-(*T{^N4Oi>hq%vS5;L8?-M-k=nub}( zVz)?}ean<4qQvDQ(#8bih%r|;(!Mc#3_%aJ)Ay}?#7cB1Da(4&;FthJm3a>je}kq_ zYky3naJ(DFXVDAB0N<5C(T)BDI%rc9l||&teE*A%^Yx)?DhZM$Ab8itwC=xEH(9;6 z+*|z3hi%vS<#JE7+J?|95tr=22eQID)^4;!iYPt%bR03u*?bMhHu&{2tf(rYLsrL2 z9pgmTLj4sWs^VdC 8hT((bKuj>VVZz=Btm--zEfES`&2a3H8z^TJjDG9B VU6-w~#Q&(E-YL5nR38ED6g|M4(Jh=P+77Iy z`MCrQygIO_M(Gxgdp%Alh>^Vd&U9ecyO7ybQaOm)BDBx;F?3%bs6LJspQo *SDqbnRBTbq@=k5>c_KFw^R#XN74Y2PSmsykRgju zw ;_kg$nq5|n%5Hybs{e@GF(w=886dQmFVeMaI`>08}ry?`vAc?I+?``b6 z#OCV2o`ljJyZeX0SKcYMdOVO{8+WInEsy=7&?K?WM^zQ;wo>^4xdj$nxMG`k@*TN} z2q#9Uyr!*#^NESKs+?mV>z9^Sw 6N?mq#dgNQf|`}s;jN4foVH=@w`BzU;|_la!>W2{cz{ZuZ@GB3IW55wlYxN=$PnwO{z^r&tcr<2OHM;A?EG;I+3@`-ZV< z?2W|2ME@^=D`YuZyhzq2^SwARekImf3fWDmv<>pgFICmI|8V0b5%YDu!o~MIpOr6+ zhglE>E=*6G4C+46_tJ=8|CQQ)4p|ph+mI}vL3LFb`0z6MFTRY{a;JHRU7A0W cme;S(37dCBIk?0Y8PoYUCqS2pM!Dvj?bn;!OSWJa5 zq;Qkf=azE9YhXEHJmVjEtrnz)D}KkS2)MozwvFW8 #=S?aC` zw(hi7#X%RA32ESu&6V Xa=d3{4GUtQMTlx^(8aMDU+eo&?y$X{BSI8WRxkbIi_ zshzIFqsr2avEv3cXX%5dw~>SWsxTx+Js;vtOrCgYz- kI7NJwhr2T?+u#G|?nV{!g>S(Fy zqd#nxT#*mh#>j@Qdj<20v8PfEmg=N7rWL8f&si4vWcN86qnm!^deusVF(nZy|LowO^r7PHsYS#LXnA~rx@!ay;-B*Z*(klH;wy@YX4(SrM~8V z!-2g}f(#)Yll!qF2M=Tf^d|`i@vm)EG*~t*%3hu a+NDR>S9FRg5O2>EJ%;)HSbxK239rw3nHJneH!PZM7@ zB$&+ZIn}vNjUQv?_7xJ+w3|+)$U60a O_#TIi8@lHg^O}) zcD}$Aw%HXP{i+?+R1+tFpcnnGR>j+q)Lzf C#9o1ZhiuT-p`{DIANETZa z-1r8N{NzF{&GN^&ys$iu-y2($3W*-f)U^EgdM(PST2yXDQ*MX?6Le@&j DPsbHMehS0r&&JzF-=Kzr^~u@YvcJ`OrQE%o{38 zWp)q!n;#BuVPX8dW!59{%;5c3b7nGlNk_U(UAEqg@uM7W#cEmH&+OV-aFq3oc;TTS zE8^IP0K&FIU`$g1eod_GslyGA0A9JNR6NYMTt=-e4F5O&n!cJbNW{|FDucJHj2y~~ zq*%c)W5JX@(cF%!H({l&+N!f|QbSQ%3^st|hzclaUk>@TiHzHWlnNrjzKSSAesMs} z0lxvx*I*u4^;Xv=%t|$i7=}S@2;=t)w4c9lVps;b1C7x+kmq*HY5Acb==KeCfz zptTwsefGhU%_C4!gg`ib<}^YE#1fEzXw&I|8>!+>1Ev<*emqLHlXjUFh~Pjv-Az%= zZJq ItXclU|W(Zs=Ax%PHByMZ*9m1LtKLla2ySgxp} zt{9|0>7W%$O3nWxLDntsKg<3f77j)=T%K;&Z+vcct3O>YE6y{;3J5vf!VWNiXsUrH zBNqg8o|?6sApT70fEV>ZrH6q1%<0B!R6njYu4|Zc6Nuz|ZGWBNC_e3w?*d}!gDIAQ zsGcb-Ki7Twvt?>b&L7ZyJ%$yz3zSw#tv@K0L%txF;u68&`$KHjqf`IzV`*2Ku05_Z z?r%V}g)|z*4b2Jz=7Cg>1f^x(iUowR3fPBj$VKnYVud2^#zOCa;%r~lj{OYh&q&|a z=RL);BBLTqVXl_+Y}Dc&*tI9@1O2I xIU>?0p~@m4aIB8%;r%vesf);9c+@=ejAWO!_xBA zB_eB(b05^dY8+)BP)L$+2d-&}rN~Rk!dcU5Y)}S??NqYxMM9$Q|9#@? 5#|Gy_q9*4C*Y8;C|oAX=m{cnt{s z=aJC4SLbVE3%)b1*DnxOWe#QOh}ExNYeh|C*-!5VfH|@ciNGrR$OyphHbJgmJ;eEW z>kf2B?V^)RPWq4?d%2t&-~FaPvB*PL!5!i=vyFa8`y}Fe;kU65u>C&Hnn|mWRw3`* zw*BPF=U6r#; a|5 zn|bq=AQ>fmnX}#=6abiy2N$-#XhQ(fhQ%9JU`cgWf*f-Ol+~YsxXOIO_S0Sh>nAlH zusq^NlI8!3WEV@xhNdM#&;2!kD0aanz9FPrq?MbK4KA@H$8`?=N`GrH$WoFQ4cfY7 zpjz#3S9a&X3Yey@#u?Y+BCz-8ZC~$J2=CrcXM#Vopqc28jHxP5<47@>cuz3X@7L`a z34eF!X1MhRMa`M=BoHlr(Q>{!B_I?s@yf^EpJFvP W z3;eGw1-*VkSJbJ8{nv-CGk9ySWBqE43zk)Y7kU|k3SbPdq3j0_H&cx-K@1PkRMXy% z$O+BZvR>$d=M`{w_Pg1DCH~`2e_lG(wNwB>daPJqt>{$-e7XQpEoEpJ_icaZx?ZlT z#x^ C)C>Z4(8nMdU)!YuuZ@uRH$*o6h1h04_ zA=R7M)aVK1qRDb1)68jyz?)2I_=Wc8`6NBsLdwRgLW*6TJyd=@!hOCv~|#69B5q z;c%{JeqChEkR;FHzZh5MQdI?RNDPjsY6^MbPy8|Rtls?+H*F3}^A;=tZ0DMmbfcJwHN^c M zhaZ6-#QSOo{n8gS9TrP;?Q?&PNgdl~@QEn 7nJ(90}d zs{<+m>d~)3PLP{mvs|fIyEvI?=xxj$i?BA|R|DEdqf6a^gCh$7m+Ix}YT-5$mFACq z-BgeOVEk|A1lH@H&?H*rcC?@4PG|Qox F9e!BnZGkhL;dHx|G^HfX2%EatUr+mXJFYWj;r=qN#I|P~=6k25Zf6)+aNEEN zRP;yQ(uKzc|7IFAJ_GYXduuZ*o^%^L^jp0Th;nIl32m); {^Ve#-=WU7J~ zox7^{fiQ-|4y41TCU-mrr@GwqpCrT`HeJ5^s;2VV{m1y@pz}|Oma=g4e%PkN4fldz z0Jz x8>dIi1KI)xdC|^r1lY<_PYZl5SGrnqFAs{N!Sn4{019pt z7e%4v_J1 dAXS;B zkuF>) Xy9J1{0t4Py1}+ojKnbzUW@TiDG`Dq8lW= zcV}MNWd3~e#y7(@+cBE0KK5`;@z>eH70gy0q;e6!d|;IFb#c0zmRr*XAZvArUa?pk z4K1)n%pX9CoPHe5xaS@oM42OWR8{o6@ssd_l9Ul6k_4S6 l~*~{Lx7fDIly0I$6fYeKI2FL3(`5 z36FgUe;|=lOLOZ{Wz%{oN 8dw(&L}ALum} z8vjo|r f-D3vq2)&=xfEbuXm^=x)1DWnzjWA*HR}?K&+TidU07H$h0$uVi zLnQ#M%wpx*-rCZ*Ceq<^K>VIq^FKL?Q$zq;W-@4jNBl6`e6`wQQe#*6Ej{ni<*I^Q zsW~s!52fx9wm8SOT=41q{h|TU+mQ-V*l#I7c>Evlqj(SunkY51Mens8R=5`~Z~Tg2 zawByd1nKtVA}GMFbWgxO`0PK{rmuR4x{PC@OC7OV;V`WUmiqaERcxmvz4!EJDN;Zz z+zz>#>7G*o5DOCccX8NnA^=}QqEFyoR#9(S57r$7Y|HLqj);Pup9GCKSDW^7YUqpE zHQ7mOQ~sWdpAoW2fCaKWwooODso;n3}FCzdyi6+cQrU@cFR$p?V+y*+no0I?z%& z>W6PZC!6P!dxp;{uTCpBfnNj%39Lq!{Ae*JQdf&|d!A7vSG~FVRq`)$0H8 -5yvx||_!&LD9zdW!S>SO6n*U*Un nj-}AF~!I z&?dpKfIo#d{?4nw%(JB`o0*y6ro@`E^FDPK%zDAx|JNJTENQSTh>{^Zzro&L5EjX; zB `sLw1N)N%*yCuY(DL5n%Sm3dT z!M1p~Oq83HB(1(>jrk$FA0PW1xKv*2zJL&I0-GeH9`tlS$J*`nqnc6=i_8~+LiXQS zd+(^G!fowW5fueRM5Px+1ZkluNJmAacMy;wRg@}Snt-6Rp!5#X2_Qn~C4dM)L+CBi zi4dv?A@p+J<=K0meeT%f+&jMU{pV0ASy@@{ob!2}-_$sa)sU$RV66As!g2Y4S<1la zd8n=-=3AYOmfCo{1%v`ls0(MTNv8J%wJ?ij*z=^j4n`i}&sCLO`iC>r0i95)(F*j~ zlUc+3u>M$4SpC+|mpXO~oLzh(4;h=bo7Voy$RS%N7auMD1RRIdpv)&dF8GeT7_Fet zjEsyGmNhR$#!1AJ9>9{g0|jaN2|RjZgZ9P|j;P)FE97*E234zWU7kRm#&$$9#Ab*J zPJ)+`;sC1Bs3K#LQCBO`B4xD1#|)i(zRnuOeqgLhb!7dnF-o1e^Nnk7`;`14&?Ops zcl&^!;Sls;YEuDFCvixhDa8Z7(48pdSmD3jFqJ2_%WJl)%$Ny3^aaVF+(q%`pGt~K zFNR9)5s@OF18_0(eL?+KmAn6Z*YFoM(L}KF6X}Vk*mmUbWv|JflY7Q>U$VcnVmHl= zI{-f=U0}K$aSeOvX273dHr32?8^j&>;e&H_C@V*ouj^edo$D7IFaPuw7K|gj|B3dN zQxdNA#sLsOKSAzJghkc4jT?wK&8CQ+z@GJQp-f@EcCKko;v1bDbSdydRd=EBR~Y^x zn9_sxEbqA5h3p7z@B!I&;=T0pEJ ILp~&4|1e~Mv0>ulC6OM|=#54*i@iT>#^|jy)odA^(;z^zk;qi*6=GhE W-IXO$mD#fd=~}{HJ%U%7?X!u-UZmC7V)a!1w^3q8vH$pty`VHtCD; zHi5 fvG*-sJX;ogIx}W^pLWPdGz-;i02c#509<bg8MT%xIWxl^3uitFIO ejL>(FHiKh?}(U4@*)gKOlhQ5&Oiij^)iOXLCzjjA0gQG oazrae1oV3I=k>wN2^nN=tYr{@(dlig=W+C*eQZm%rrfJVmFZY 1 z{*52nDNWP)IJs*1Wwxvt;(9N?sq~SD&zFWTD-}sP9R_FRT;w-1XLnlExv%creOLGN zEf=cZubq#%CA-5-3dr`rgzNKqk$bv?BBJ{gJQ|7#M^v_at))5Wh|-~%N@Ou>Y&-*R zt?0MufT^Q5Y8e!G1KH*I0tM06md$)qzD<>@{WYq)1}B@{%Jh~mi|5kP%2shdA7q^| z{o!t!B{`maP3ks6`4}Xz;?iBX)YFm -3yi#cPY`$E#q3vu$UbnI_tgN#=Y zWW~O{EvLh_l5bnjWp|&hV$vOojqG1p94IL8=bi2I*K4SD5rU(!*scs|NfPih%ng>^ zFY@=7)l`gMIzfKrcvIteP}^Mi@((!Df=<5cdH?Tw{UuR&U-o20&36c%6Cm;63EcCe zBU(39-1D;$OobHWIdM(Ng=c%PHbZ;w3Sp{6yXMO$T)Uk`GGNICY@BmaLOcyxoolfC zvnRy^4B~%@iF{xZRC-}x2JB-yg&*~=QfTkB!KxJK=%#sGgu*E=<6UX+LJkwB-75=U zQ?U)*Km>gfrg3vV8I4A_e;# D5B#+g-m!+&Q?pwjO4zMV>{#wYGUU5f!K5rRf(-(4d9ah+d&(b^PU8RJ}2EBwU zEjj6EcU32xt|=9VP)0Zp R{gc`bJ3Pd`{EE>>}4UnuZ$n&vRLC*t!85RTk` zyfR)0(PW9f47^^cqlg?b4`7dOdUu}Gbvvryq9ZTt!^M$%UopNb9H#g4$VCy%m#j7@ z6HeXvpiTPp$PPB9C~ff*Wn-oZtB XtF+WS-NEpQ|INkwVi(!>I4eI-{hss`G~&XYfJY+%CH`HPzIJ}i}D+t z&JwU2%9#%oO};v2VBc2HZ92Vd6}Be_MoP`fe*Ui-;&~plxxhd8lW)X%XcwR+5UN-N zH5I9jmUG=5EysX(*?azi`)c2h=(mCw t{8 0EH5KB^5UVKAhv_t@ zE;b|gC2A9?ira0gqm|XvmhzM+`b}>uy Wk6;f+85U zMMs=;IIUAA=zKj=!jGKHW#-nxv`YZ$7mrck^c>Q|g$4@~BcoV4|LXb~603J)D!N_B z-!MvS+SuDClagz-q9W2ldbZwyU32z^QW1x|F8hgTg zPY?U*c _GaZKv-%fE_b!ixil5z)gx{{tsdci< zpz3i7I2ygNV3|rp^b6^xa{;eA)l;`Vg+n`*#mjb=m(yi!Ez=HUvh&i#ot7?D_VZi_ zAH%Mz#YZ2kCuo?VqW4yI5A~&}Tm1<(>=_ Mo&>o?3lqaQPZm= z{8mz&8olid@iBv#@bvpp`pV|`(p3VCci)8xm5Emdy zM12dSJb}h>(BV|H(=oua<+@|fQn_58n^p0%tPWh`7&Uwra<#wWiJ3t6$Iqic>KX`n z4JtadfOiP@Pesv`o@I6hVI<{Wb2ViJ z1qA`eeKc-bJe@Kn2qLb#+?9wGE7*mshm &Rz;(@GDv;h>(8F z)}$z1ud`>lq?Bq^toDS*&ooWd&s}|MqzGB@uAuw(vCmd2vEm#i5_?PSsl OiGHQfsmYxD~)bWnK&NrT3K9lvLU|qL1qXU-fb3JUW;ZC zxn*n{Z(V^MN%^o^JGp_o=65)8*GPy-tlEhjn*Eet8_V)`G`r%fV)o&n*eBmQagwCH z^$k;ItFnE%*{|H?uBWNf)=wtlwa6so0bqodKkW6JC#f}0A}}@qH4`szN2z5ot6zR^ z+^+p=f#3?7Z%3#Td65Jg!qE|Kg?LPK-g0X8 MFo9>l~ zrS{Q1)Oj_2Q90)vim*vq^YgIr_}asUJql>{mhkcDNd1SX48@Si=F1K?)>lfVq+=1b z2dgA+hqD-ku6LK82d$Nvk*v1L{D=WZPG`Eo4Wg3$nL6e6RhcGO;o%GxmfLLGbWfHf zX>9{Abs=IhnaXLU2w*b@R(&8=_nR*Xnt9<}87`PK3e_mJjE|*S6Zgp`cU_V8lc`aT z-9gO^8KzhHw)fI@7p=d#1{|xN&p2!N9#Yl?28QH`QPe%1-8)zvToNikH>Yrr?n+tJ zLDGs}Du1S*f6sT^xiv#x$!Alj-_kE_(7%Q5NtzGLA@AJcqc1yu@*c2P8pwQ{IQmu` z^$GmuMwi_jdQ~O63d~5l2+ya6U%_t^wVIx~S~atC 12lfUlNHWzB!0e9?8K;U>VBrNg; z%1@wqe{O}E8vFd 6w@0UXd!YYoK!If@WtcNtSRsDlJ~r5vj};7|vg80S(;> z($%Yhj%fR`r2G-y7+h??_v$?;eVO@v9^1pSOc#xvx5=Eeu3Gta>Tc)Or2VV&AADZ_ z5c33XD;#*4u}!uSLr7S&Q}D|1O5=;W`JU?dv5-EVvz*;ibw{|44<7;3qzOi%mOc10 zXwU@uj=x;dJzt=t+Cmb%2O!H?EteqG8E+}Y#Ek$isl% U1Ei&la!F; ztLQ3Zm412>f0gdb=2x9w%b%-#JqAskFdk+B_Xi}pn-4LY_CHJNqM9EK+sY7=SAelt zJum+S_5rnY++G}rG~sL(kq}rE$g5@h%e+N)b^VN2{7#Leh~JWQoT{;YSt9(Y!maK+ zo>pAsFn68Lye~wv9$Q8=d9X0W2n%VjC^hv^ejuUvT8&G~j2`Whu zNseo3T-Iye=<{kSsi~jef&YGu2?%_$e-29QyOKKC6o>>HHrz9Lmig8v9?34a>tkx* z7crDt7Gl(GVyAzu$6+d-n{&~vvXZ7P<&*ox{O=l5j=Z$HbgV@hPwlIMcy4V^1q4{G zC`j-Aip7D5Yi*~f_3}pz>U_(_q|o)nfQ1Ka%J>a3YhMF<{+q)h&8v{ {wySm;{CA}{df#P;%-}yH4~FK z5_s8~=XG$$7^W2Ss2KdNncj0z6-Kn*h5d{x=i ?U&ZDD$65{~){52 yV##)#{063-I0Ra`RcOGT38&0=z6ha;gDQ zXe-D~^rAg@uH1~iTX@t-wP(BJ?0$Cb)BZ^BbqhSe+)jdP(hLc`Q9^X2k>;a2c@8CK z7cURckkipD2&duSxxKgK*+Pq<)}uO-D0Nu^x-#)CfYUj6r(5z^_B9f}rZzD+GQa5& zJSXGh=d`srmFN*GyPZ0TdXp @N4u^_K4Th~4R6t_62$rRR^h+f5)~ z<7)Z13Unr1Q7W=!FLofVq^K_vd)L_NXx+rkJCbSOYC$@fs;-?p%lrXlJ7IivtPVVI zau@f>kR4)_^WMO&zX^+NK9$MP;aLLQ_*bXq2y}}ym>)f`Z+8 +EH%TIrT9L+Z>PP((bJ2sE|& z4n88~T^w-n8zhV`Kt8MaZK)(f_ezw;+$hX?u|*=-yk %{+F{KP$Bvt^Of6y%RyWeMi3Fqo^lLjwU&3++hy&2S6FrQjci&| zy*MY+#AF+Y>vp)bdvmht{XF^2q`t)cAVT v!-YKL!fXgi7>o!N@j5;h$^S)2y1o#h zJyTIX0m^O%!2YCAj NZx0+e0K^yJ_pw cRB``UF$OPkSdOTHlJFGP2z+#Qje6k zkYkzHigFdPP=UyHBr78;`69OdK*jeNd!VhP*T-^Y6D51Dc8vG PwJ^Jy= za&HNK4ye J@Faux0h4b&IbH9U%1@KagG6Gf}eNpNJZycirjLZhtP< *u$>Q9|%;-&T9R zn~RGLow?+`p6Y(8=spJ!9hVIq58gue8=-?2n72rAHACYfcYThqa}`kOwDm^^X5~t# z-qsn>#duAx6DnNGd~T)Q_4G}MGTb!zo`IVCEahKhPq?7}oQlB@_#|5EC;q}q@)6jn zPlJ4dKuAf|k!4%BQ%okLYmtoYf7d@zSg+~({grq*YaE}>aT PeoiaxrxTCXhZ2TMI!=`c_n`msP_z*sk_nhN z7Dh9zQWM5R=hvnEfn1V% DM&(Zilk6vJ=a3O=X~};0jk6WJ zPClY0zovlJeTA6-0@7v~ccmK+5)_eTW=A6{0l(AJNn2`W`2|ja7`~xcmL{}O)b$+N z=*Dy6MPq8TcI0`1mD71&KYGzXmNMVo_WHi?Q_IRNDFIIdpfSQ_b+W2iw=DAd-y_RE z-G6;l%(qS`<@LhBwM{yn9X`68H(qi!Z*rGSnjzdzRfWFtcWXsB`pPKXNBuZ2qNT9- zuMZEdd26?Lt%#j^0rGtdyRwSD_3Pygjkd^m c*QQeN zn&-5Bu}wp>Uu(`%U!+IMxx(icf)c+KnkmyYKimd`gJz-mKi5CxNSs{0#4q*5v4rC! zg99Cb##iCZ4>u?vaP091*;AR(x}8pi@(PQtE-g;@j`8qSOl^N)$dawsr+>$ >Yr)^Z*_yJ>pCq~6b_cT!NgZ~b ztzfRUz jFPN bhQ!UM 87-yMt`Dv$%~(kS&!+qX!m)82nVRnngT59mx8SSueYR6Z&O^7 zLz@{uK8_riL*j+Zc9%w8H%sgX|6@cpOn1d2qK@c;bb3nC-5TO$)o^G5jUIxfUgn@; zYFvzNlR)sFi#|~YtL^T9^ZG5qE(y|dWp1@zsIc75h>`J>WG&M%di>?iAPg`<9=AO7 z8RXcVO#=n8 )eKBqjuWp6jLX z=0u}vyOze4era49>a?#-*=;|Jk!3kW(mI$R7WgB#LV+tj&RQC2LtVm;@3Y98OZWkw zast4@wZ_+bsrd^Mx91hV90W`uJ?^?BZy=Z^xQ*WJbSlck?14^=XN1_-cH{{X)J9Ne zUWN*20!{KuWiShPhAYR7%3nJxl355l%tK`znC;IucbvyFPI;U);^Th#GU)}wU~pbN zxt_?GJ=X!KVGYj!DVW}j7d0HtGBZufR%VjV5AE?oXj^;-{JZ{B$D- R+Sa5V5Hnh!4L=Kz!tm+ns8wq5wim27n2%0&!o^IQV?E&9=qL8ae zz9xx%G!ITR3~1KcYWHmBH};vcu9!>st<*eOqitrOR|PC8r~=D_8q(=$vn9%w<3kQ6 z>&%}H*w3Xg^0BU!o0s_Y9%4@S8MV(PnoX|jb3vViq9w}pD5ObIw%&CwXUwSQ`8=tP zh-6~T_&7oA>RK5_n_+(kINEG&Zi*qjo0=9CP`iHH=lj?sZB%)RCVflK;o!^snaW9? zW6#@ljs7~-4JtDrTa34kS$gcD`%=luOc8SbIOA}>(f+HjB~pntQN69OzkL1I+}<&m zQ^X_`W uC#k1 ze?26X_A)hi TxiW5y;~nYW 6-FuaVi{=U^v_#xH4La7>9 zS70$2-sQ3u>8ZP4=};fAAki@f6nrGL@ARptPr+>=Tj1wwp!+~;lrSGX8VYF=EOglF zPgh-@ii(U{<}+2jz9=R+i8vT*2JkunRLk2PW)X2&K~CM<;!;iO-N|Q_9|M anCezDG2p5As zPGBDln$rXvbIy&4d~p8>QbIb%kfrBP0!l;aWKud5*NR^mxLhJ4e`8Tev(NFiCJi0B zGYLmXmrHrYY~s7#Zs&K-+=6MROAsXqS_DQNDptC9U!%DOJ$=JGq2bxG30E)Rwl?7| zg|L;uZYym8JMRJ>;{{=4W5Rs<&By!A0|cmhn|qUN8RNh{Re1jkgpSX5ncX1^5OEli z`1GP-;c>K7bs!UYwMc)AWmF~S1;Y`2=N#>)*OpKAH|&^zEB81OEe^& ^hhBeFKX+3zs0o;IX2Y2gw2DRxJ{V9$Jh*WDi@^0znN2+wHT{qN3yX0d8u#o zV+(=?sAdxJ!||d9dFL?s Tdql@#v- o~Fh(56w*c-vw z$SmQ<5R vMi=cTc&GPf=HCx}K1$BDO}!ze81fS~rA zrJ{i5s?=A4#n<-G*tAIApuCTdt_D8g63+JckgQ (k+M?P*Q8_a)||0og;H zdUIO#%7&vrb`CNdRy+LfhBfuWz-cXS^2^5?u;Z9vqlA9!Ch2xE^q z5hlkI&7SmzVZ3+H8z4;v2HsIn6z=JUa7m@rkXO(M2IIq-9>Zmai=O;^N^&bXKlaU6 zTz2E6$cDF(32RpOb?kRyINF$DOKd;-#Rc#V-xhl|oisnrj}f~!tO4lkZc-H{99sQl zAFX?(lp(#SNaMTi(Tzc+!M1kL-6rkjoTQTx_(J}=)at7@XkU$&M)dl!92qSR)UUHk z0O`8lcDR|Iz4C^mIXCV-B_;7jk|P}ka54fiWY_@wF#cp}XoquJo5Isk4)&wJJhJOS zCs0mvPo@{oEO!skEB6A!bZLiJ#9kZQ(T6>2F%$Cc^22tfO<+xtCPB%I!7^8n;LDX+ zvyAhGtbKc0hsqCN{Zd c3*?#K_xIkvHIL5NB~wM1$#Uj6tyv0}zSH zBgX4!rBDRvH9M-+i{vjFzv&yiD?d-?#~S>}tFMe!{+69V)e86bcFj1CKMTmA%WJ|k ze`rNx83xdD^9pY+GaQ>EJl|Nxyx>?dX2tY#Q80DNeAa$?W&*@^Qk0#32t1^+W!@_} zJJ8{#AoU0vpn;yEf-QZkhX1 RolGXdMcpwRsKvF5X>S5GyuSr->4?Vp 5kG4!hSPPrM2?y)gjkAm^AEO`1D 8Ws`IiSl%a&d%dxD46 X2gMpjDMdIcRgi3H&X&6_>I#rOtQ9f@2%_pl&xmbLfyQM^bcp?wr%zW*5vO44S z8elL}WyFe?=%)0fIZqHSETi|nlvx_@sLFgWLm#-9>az$aM_`t2h|!8Y-Sw@#TAm59 zo(D%_T7jMEeSeaN`l!dpKs3it4cJRkGw7;f(!q3ICtuYLQ0tz`5$UcfzpuM=msh&%t0;XJ(@`9P#<}8R ?dV2N3#|dezmgwWwr|mmR+)VcCw5Y%B4eP*cqg4o z^Sw+QjNI0m;7M) dp5Y9Ax>@(8 z8ew?#!jX-5@|vbDmIBKveU~ 569a%NHP` E>?T}| Zhr9pW&o@T=y@UgDV6UllS=rqrVZ>U&;^yN#;K*n1Ua}@=M32f+vPOs(da|KU`7# z(6QV6&RB2HRpfGBSl{|L_NAEq*NT#2x0Ar|8$YmcN!~?BcJ{PAyoUQ6R(6 8<*_o}M1Z4Y?A8>tuLm!4E`?0x8T!Pvrj4RtF}#ok!+ZqAv9eeSvvkR{FAWF|1KJ zxKAX1U7o{fZ*vih({gZvKdU1@fBwZ8paqXiLYqmYEL(+++m#p(8sf_>;%*FvNi?>{ z;C32t_-^&WpHA3sV@K97JDP7UE)F$uBD&H7H|4&wDJnoCt|jESmz(KI_Bo{R)5;BE zkLPu=UYlrpnrIn}(d(kuFD{*w $cl4N}(6WK3(cFotEwY@tG`j95QwY~4s2gw; zzuqVZG5Y)?^QE*{4VP0Gk9n1$UFMN=i$J-n{b2=E>!Oi~WcVF^%9VSjj~^i3{IQDZ zvG%@A D+zyk7iXBzv%iN+%cm0 GL%l0wbbawV-;k)nImO}f9wa*4?dMVQNWM-|S>pBN6;KUFz% zY3y>V^CrINjF`W@LGH6(*Y(8S=IB*kiFNW9KuEKIT~kF Tx?k^h>dy4|RyXNbb -n z3K2|8sb6Mz+7}0*LsfP9YThfYfU41yM_dXlM>d=-<;OqISw%z-6XiAa-mtcvt9TSk z0q3BfpHGzH-+1q}7vEDh8rpYdrzXfXm~<=C!mRgWfKUnIrw;3oc&$>l@>SSU2j)#9 z7cD_I9#qNs>qYfd*N3CE7b^rFvTPivsq)Uwe~w=roNa@S0mUJ5&EN}OKd(lMeqUG; z`24Z8hW0r%IUU?9ER0Ud$h%KK;J&D2+#0oeud0&JNrAi@r8XH_4sSCt0y0-SJ*D;@ z76(4j)v@F1?Z&WCKHyY#Pr0KP!rflf;5@Hj=ftaLB+*pL;e8Pu0k#7w^eQ-a2z@WV z*K1Z>avAN7WakKK2XV -mi zeTu^FyLqqFdClz0(Gg&oOImfR5hImwBzImIRT)(>IRkC-H|KFfVuk8p;!DmiVG&mt z80fh7>_;?F^j}|b&sf&&qW!R6oH$sPg~z-$aq4&CDdJM9T%U3V@KJ4&>2i_1vuU+{ zs;XtMeGj%2tWBm{vzk6R{88c^hnKl=xVwa<-(!sW*^TvV8yuF}uBWb5Xi{Ae6U+Ha zWefl4%M#tOg;!(T-IOn@AK6^g=a+e18=XI2)|K5`$gz7;lklX&MRECFnosHPZLc!+ zMFmJ(mqX>rtA-{VU?k={e~vLII+)_rxjSwMDre4hDiD=L8x*s#f?BPcF^e+tMY zT?+meZhtsw5MNKFEA@l(1RqAQcKXpRE&Gme_gwX#no?)FYbM6SYd_Qw=eOiO*mY1p z|6myFQq7o#=4jGq-6fpr(ubV^`xL*4LSmGJY51syp6m@;G#QB!13x`)aJNVQYB0t^ z5bbgKk1OjRizkwK8o9R#mjcfdx$_w?KiG1>^_Y l^O$0t+3_1a zorx>Rrt;(GGwjXkxk4mT#D1Ec*GWFI&j;R2(Z_W{=4nzJ%%QZt@QybkLBBeq!vk+> zXgx0AE}?%M#;IrZ171G!P3G3xTw@O2RgXOlEn^vgj#4o9v6xDjk?iM3+~`wy$+$k4 zXOhO-=YMDS W^EIB5>B*&?Ft= zG#rBUOG+$s6F~Xr+6R{IG-!p$q5*25Cs~Bc 1OFZZ{a{EJ=l>N`XS94H!{k^Lk0#tkqXY#}tG<&Ti~ zRceIEhXhECb1;fx5))_|L{}t0WFsgCf=_*64~zCT1L2qzuuiK7;v|G@aZN;nHK<3T zoYU<1Xg3~K%0Z?`QS-6nDG=+A-(p%mn-XH_pZkEfl@brB%61I7BE(yN_Q0?vG3X0} zh)u4;G@8+Z;korasjc}Zxt0_7gPHM9-{L9lRV6<-l!63_c;zd&^FT*=t4xUmY;vo* zChxKw*@@~;@rSf2rKivs#+M}@``;(FSTNxN_#)n9dj K3A&Z=!S&hjlT)xc+o#}WKQ;&x4EN#TEhH|N21#BWVsz1x@ z9~{xo)&hoQsg7(joG;in$WrFmEgGNVaI1%d+C0T$J%|^*39!~*9v`(fa%fDCTkq0X zz5Fitvio2qa@h>TFV#AC&P96NR0_p>|NdQNUQv-KA7^^WndZ_pkv5xTBbEde!3_{2 z%b$zc{h}H~6~yBo_yQu$MIK&5aXIJ17aFDxe=7)MgjcObpKg9Hym85~+JPKr