www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - DirectX, COM and Access Violation

reply Henrik Eneroth <zodiachus gmail.com> writes:
Hello there,

I've been trying to get Direct3D to work with D (or vice versa if you will) and
keep running into some problems.
I checked around for translations of the DX headers and I found that existing
efforts can vary a lot in implementation. So I tried to translate them myself
and reduce dependencies to the standard library only. However, in the world of
COM, nothing is what it seems... :)

At the present moment I've translated d3d9, d3d9types and d3d9caps, the minimum
to get DX running it seems. I get some errors however.

Whenever I to call a DX function, I get an error saying "Access Violation".
someone suggested that CoInitialize has to be called first, but that does not
solve it. I looked around ( codesearch.google.com, lang:d ) and found a few
different implementations. One of them differed from mine in a significant way.


This is what mine looks like (truncated to be readable):


Main file:
//-------------------//

IDirect3D9 * d3d;    // the pointer to our Direct3D interface
IDirect3DDevice9 * d3ddev;    // the pointer to the device class


bit initD3D(HWND hWnd)
{
    D3DDISPLAYMODE d3ddm;

    d3d = Direct3DCreate9(D3D_SDK_VERSION);
    assert(d3d);

    d3d.GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm); // Access Violation

    D3DPRESENT_PARAMETERS d3dpp;

    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT.D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFORMAT.D3DFMT_UNKNOWN;
    d3dpp.EnableAutoDepthStencil = TRUE;
    d3dpp.AutoDepthStencilFormat = D3DFORMAT.D3DFMT_D16;


    d3d.CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3ddev ); // Access violation if
GetAdapterDisplayMode is commented out

    return true;
}

D3D9.d file:
//-------------------//
extern (Windows)
{
    export IDirect3D9 * Direct3DCreate9(UINT SDKVersion);

    interface IDirect3D9 : public IUnknown
    {

        /* ... */

        HRESULT CreateDevice(   UINT Adapter,D3DDEVTYPE DeviceType, HWND
hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS*
pPresentationParameters,IDirect3DDevice9** ppReturnedDeviceInterface    );
    }

    /* ... */
}



This is essentially the other implementation:


Main file:
//-------------------//

IDirect3D9 d3d;    // Notice that this is not a pointer anymore
IDirect3DDevice9 d3ddev;    // Neither is this


bit initD3D(HWND hWnd)
{
    D3DDISPLAYMODE d3ddm;

    d3d = Direct3DCreate9(D3D_SDK_VERSION);
    assert(d3d);

    d3d.GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm); // No Access
Violation anymore

    D3DPRESENT_PARAMETERS d3dpp;

    d3dpp.Windowed = TRUE;
    d3dpp.SwapEffect = D3DSWAPEFFECT.D3DSWAPEFFECT_DISCARD;
    d3dpp.BackBufferFormat = D3DFORMAT.D3DFMT_UNKNOWN;
    d3dpp.EnableAutoDepthStencil = TRUE;
    d3dpp.AutoDepthStencilFormat = D3DFORMAT.D3DFMT_D16;


    d3d.CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3ddev ); // Neither here

    return true;
}

D3D9.d file:
//-------------------//
extern (Windows)
{
    export IDirect3D9 Direct3DCreate9(UINT SDKVersion);

    interface IDirect3D9 : public IUnknown
    {

        /* ... */

        HRESULT CreateDevice(   UINT Adapter,D3DDEVTYPE DeviceType, HWND
hFocusWindow,DWORD BehaviorFlags,D3DPRESENT_PARAMETERS*
pPresentationParameters, IDirect3DDevice9* ppReturnedDeviceInterface    ); //
Notice that ppReturnedDeviceInterface is a simple pointer here
    } 

    /* ... */
}



Now the interesting thing is that if I try the other implementation, I do not
get an access violation. However, I also get a blank window with nothing in it.
D3D fails to even try to initialize it seems. I tried using the reference
device instead of HAL, but the access violations remain even then suggesting
there is some holy COM law I am continously violating or something.
I'm lost as to how to troubleshoot this. Any ideas?

By the way, I include these libs:
pragma (lib, "devrun\\x86\\d3d9d.lib"); // implib'd from d3d9d.dll
pragma (lib, "\\dm\\lib\\gdi32.lib");
pragma (lib, "\\dm\\lib\\uuid.lib");;
Feb 05 2007
next sibling parent Don Clugston <dac nospam.com.au> writes:
Henrik Eneroth wrote:
 Hello there,
 
 I've been trying to get Direct3D to work with D (or vice versa if you will)
and keep running into some problems.
[snip]
 By the way, I include these libs:
 pragma (lib, "devrun\\x86\\d3d9d.lib"); // implib'd from d3d9d.dll
 pragma (lib, "\\dm\\lib\\gdi32.lib");
 pragma (lib, "\\dm\\lib\\uuid.lib");;
FYI: This _could_ be a problem. The libs that come with DMD are *ancient*. You should run coffimplib on the latest Microsoft libs to create up-to-date ones.
Feb 05 2007
prev sibling parent reply "Lionello Lunesu" <lionello lunesu.remove.com> writes:
 IDirect3D9 * d3d;    // the pointer to our Direct3D interface
 IDirect3DDevice9 * d3ddev;    // the pointer to the device class
Try without the "*", interfaces are always pointers (like classes). L.
Feb 05 2007
parent reply "Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
"Lionello Lunesu" <lionello lunesu.remove.com> wrote in message 
news:eq7tnr$1rkn$1 digitaldaemon.com...
 IDirect3D9 * d3d;    // the pointer to our Direct3D interface
 IDirect3DDevice9 * d3ddev;    // the pointer to the device class
Try without the "*", interfaces are always pointers (like classes).
That's right. Additionally, you might want to check out the JEDI DirectX libs at http://www.clootie.ru/. They're the ones I've always used and they work pretty well. In fact, I'll attach my (not necessarily complete) D3D9/D3DX9 D header file. It includes a fair amount of the D3D interfaces and D3DX interfaces/functions. And I'll put the .def file that I use with the Clootie libs as well. Keep in mind that this header is for the April 2006 DX9 SDK so it's a little out of date.. but you can get those libs from Clootie at http://www.clootie.ru/delphi/DX92/d3dx9_29_dll.zip . begin 666 DX9Stuff.zip M[Y%X!YZ 6 F;RL6D4/YL2 4RDE'H3>4%IUAS[,QQ&/3IYR1FX/ 8>H$4<K[? M9_L<VR?C]3C:!././&JWPI^/X2:,QK/.\W0^6CR'[5:[-9T%BV6D'E]'1.!8 MN-B)X.F$4#P MWSO25H<;1%UT5Z:A D/%=N3B1J$C+HK<N>&JJ-:7M#Y!5O[.,2W^AN4(QW2% M25FC&7&#F154DHP>G=!)8% +(7=\D21#S"063]^!Y,-"PR50L\G4S47VZESM M;T ,NKW<FL2+ 84Q4E? FW-<'3>82""6)URDE5]WY*Q]4VB[T"KB'/U"H]F M!E0.DFF'D*09)<FQO+4`\C*LB16.N_\WP9!SL05N&5MTIKTADFE!Z9*GP$)- M3/7U%^(4,4GB'%BS0]GT4:TL+\^D-8&FPC[-5<>Z=A>4 G]02P,$% ```` ` M<I]%-J8S0N>1> ``Z4 "``<```!D,V0Y9"YDU%Q;<^)(EGZNCNC_D/U4=H^[ M" F,\7K\($! ;0&B)('MZND 9)!MS0B)D(0OM3O_?4^F+N1-$M43$S%+=+N$ M\CM?GLQSR9O$-MKL`P^%4> ^1>&G37MSN;GZ^:>??_*WNRA.49)N/JT_O?KA M)GI-BG^O*HK7T9;(?OZ,ANTA<MYW7H+<<(,&49BD;I FZ+=_SP?7FGK;7>"F MP=;&Q-&M!L+>,4T&1W5,:ZE-%GJCAI?':&CI,[B%0Z.1L*<<H^$/-+E7[=AB M'\ZUB>X<E)035EMY:!E+W3)FH-0,F"S+M!#SD1-66WEF.B-S,1ORWE)+J)RW M* FGI 4N[6 _2%AME*&^- ;ZQ+3Y+%-/6&V4C! :#K=U&:F<L#K;`)6VU(R) MUI_H$KHJPNIL8RX<<[0TAKHYU:$_[X\A;/>J;6+,(-2,8=;PXQ6LSEXYX4"; M3'[$)LU^74DK)ZSVZUO-MAUC,AE:VBU$WU$:GG?D76A^`1-K8).Q/A.)!+YL M ";ZR7/7'4D-V S\9FH.C=&]`<GKKK\8C1I2S65+KN =99.I;M\<;9++ECSN M=W0?5N8O.:$\3 CAQ-2&.K&)9L],D5=.*(\30CA<S&% 6%NIDUA'+6T\52? M.4V$\CBAK&Q!GEGJ$PUBQM&GS1K*1_F[$6;L:T.S_]_ZH")?2P K_;K XV<* M0Z$/I7PR_Z/Y8(9J#GY /YG_E7SU`XB43^9_-%_-`"+ED_E?R5<_ $CY:OVO M? "1\LGR<\FWL"8_-K[UI!-SVKXU`Y*,K]L4'S4#DI2O*3YJ!B0I7U-\U Q( M4KZF^,"7`W,ZAS*L(]UT*5]M?-0/<%*^VOBH'^"D?+7Q`<ZG3^<3=N^IGJ\I M/]<,F%*^VOBH'S"E?+7Q4;/]5,%W41L?]0.PE*\I/D!%RYC9QN!(OMKXR/2C MAQ"[B:\V/NHG"%*^IOBHF2!(^1K&C\S"QX\?V;XT<] RU>[RG;:5,80EJC$R M=&ME8[., >-<48F$&_A/X4GG%"5IO%^G>-8#WC^'ZBFQ2W(> BM?/[LQK<PP M]E^\^/>ZROZXJA#UDG7L[U(_"O^D_(N_]F;NUON]K?YQ5=[__&M>A$(H0X]1 M?J645VIYU6:.SW)G+"B*0T1\^_0$"%OD[!"8\-EA+_^B' X2X5L;?U,[I^61 M&CBMFV3,X*_9$1B4>>%^B_Z+W"\=%I=/G=5B]F5FWG)C]35"K;.R1S* U1OW M^CW$`U4,I&!:3P($F,+"[BI * NSSL?=_KE8:9MC4P!XS $!UN%TJX"=<[". MU1EW^AT>UN5T:X_;?574[8+O$"1^`-83^DWD`] EUU*Y;FW>"FI?:8V5EJ6T M&)C"5]H'*UB\%=HJ;RPYC+/"6.E:2E=H:9NW FH1W?J<;KP5E&Y?Z7*<`.OR MCJGUYF(77Z,.UR42$($I/-]$#CP7'%T"Q,,'[TR3C RF\M4N>PL97Y>K=M)= MGB_$B. *\37I"8P`XRS[M7<KA7&672K=A<2R7<&RMTIKJ;06K&6[%WQ;%_?+ M1UO"(7/X.HZ.A(-W\2:.<\+!LBC=U<0<?&%./Z_1!1=1P[;8;QC&1=10.;<% M(]E(.1)QG&WI<75$X]IT<PQ=UU&BMKW>0=6VVJ0J>)=456Z<&+=5$8IQ_!2 M&?1"VKLD-]G:=#Z!=M;V,(V<F3->:2K9<LBI9A\&!=84-%)=91?V 5.5(]LB MLBU'=D1D1XX\%Y'G<F171';ER L1>2%']D1D3XZ\%)&7<J328J$0Q!4V4A0! M66$C1160%392V *RPD9*1T!6V$ Y%Y 5-E*Z`K);G:Z7]HTVU*V!-K?55:OT M><)+]FP&[BZY.MS$"7GX'KI;?PUC\^L "M,X"H;>KDSH!6JVWSK>5A"V4QC0 M^3A0;)KA!_8EHYZV<7>I%YOQQ _=H-Q/`UK<=/081ULTO+M P]A]/;#GNVU4 M[]"W5,F]-G=O#N.L%^*>B4(C! U>W"!AJM_'211G6 CUDK*\]E*B/2RZ0BH$ M*QB?W8TGN>]X;^D^KBD9^4&A.BH_V0L<<R=[%!E[$]D$-HJ'^G/9RX\)W^D/ M]67))W[H<>;B-)X8,QWS\I)3]RVG)9/?,^H&,^.E\)DR^EL*<2A$Q4'<\G:> M>TRO*LJ<:%=59%&M%0K[49KF+S+1Y5DG)-KF[_N$;ZH-16L_D.:.T7)4'7VF M+)8/'4<2`8P-3YX$8_O;?9"ZH1?MDQPOUI[UX#R.UN"#L(B55Z>M<7*;X%Z1 ME"X2"+? W\T#J MO_[&8V(RUR A)23&;2_-T=$^7GMR6Y%,7A[(52B9 <AK=5>'Z Z-?R$HE! 8 M6N>OWZ'8>_+Q2"4DE;G_Y 6RF N[4 #E MJB/V2#XIGPJ5Z&V3&R_VD O_I\\>S",N$<X6_J._1A&XFW2 5F5^,]NYZ?K9 M`3_W H!,&HK3/9K! CE%_.)MSDN*8JHS)8,X-]DY=&Z4W<%-V1(D<C$4S(I- MZV9BZ"F.]CN6EV4TPC&&7 F\?IA /\&=4$,V(R8V'W/2A*9C/"#G2+ =TF<_ M84G1210&[\ OVG+*=_,Z(&]O2 89/,:XJ8M27'Z&DOT.OPGJ;7!%N=MM0-R- M/%+K D1_\]9[:/15'I30U]O*M.!3 N CT.EK-\3=[^4L8O;]X1IW.&_\^0KI M;-=N259 O(*'-"6%4SLP+Y&_^17=3,V9X9C6E; U8]]J<WTTT <UY^P'S&IH MG[Z[_D=___CHQ76;H2R2G2AR&Y\LM-P&;6;-!G-J Y+?%D-3R!F^[6YW`;U* MY1_IP!\*^74/G92^T\2'SLWA]JN[TT&'=:'IS:WX2.=SMFB\)>^YY[B^:0IO MC&4`;U,#T4,\.FK[-")+_'SF6-.A/)3I5ED'C +WB5GTCO9!8*]CSPM7U.:U M$=Y\1UN8R^(`_.[%$<E!10O0-H+!J% ?RZQ7S5IC<MF2G U+_#C/K\C21_CB MHS%KM" *_IW!2720.$M35BIS454/XN-0?;BR(-K+#I3PP.06) =Y1=FPP'YV M?;]VNRU_C&] Z>0U^&/RK["GEO=MN2-'OO.[<GQN>AY%ZWW"I"6^U_O>L_OB MWC1H5.K":(C%-X7!^&<DLQ'E=^4/^0%<7QM\R<YG&LY;.. *) IF60F3-GCD M1!\Y%%*I1EK&^,8Y(-5J%[,TVR&/A^+W?$LU^0'&")=]6*3_HR)H;)ANX>VC M&E<>:],I]MYY68<DBF%AMT'H=_6\6SRH* ,]X;&A"?2 UXP%2&(NYC<1Z T& MT)'D9*QUAO^%R>DCF9SC _R-G^!!>(-.8/CQLP=<M_XN1R"\-#IE:><FVY78 MJCEMZ,':-4E9/-Z"TRP:KQ;XP,<2,!>&JG91ME!EA;6989N.9<Z-02[<+H3= M8K/,7W,*WH/1C*$V^;K0AD2F6\AT?DM(PD5X_XJ5&FL+VS:T62Z$GS_AA9[< M?9+X;ECM,GWSKG::2>W1R8H/VW2R4JOF)!Y_RLVZ*L HCL*F26CS$$*W43:" M6-$K/8C(('8`N?Q?'6FR\^W_L"G!OS1V5P'X(SDJ)^"3^ZDVQS\]I-O5^8"& M=^;;F\J4J15CK*7-;-P_Y+>,& 99>[4T=.;)(LKOH71NF?B=JOPE0<;9H30? MSEN%K-*5%2ME\86L6"V+>[+B=EE\*2ONE'JW9,7G9;$B*^Z6Q:JL^*(L9ML- M_C,Y.!!^,:%X'D+:_[04>*UEW&4_U.;CLXG\59/82_=QF-U"?\&,5T=0YGJ> MU&RZME+:Q44'7UQ5BJI*#E35G M#A95 MO\\(DRL4P/Q+>-(!?^ QFKZ?C\T2NJ&_]<*$;-\6A'373/WP&^DZ6A>X^1D? M#T6/:!W )#L[4I;+NV_?\JZO\3K=,K3))3/2XXQ9_!S T']\W">'HSC\]$MV M"ZVC`&;ZUKBOT0_!,-+:]L'WJ(-%D,YO':0KA>V=M]X';DQU77$+?4R>_1"F M-C.AJWR.J-2N[.ZLUOBZQ1P0/G'?'[CO;OD]^YN0YYVX#HAV`S<(3O(:S KJ MXN*AN'!/\U3S 95?X\#ZL/Z$.R'.KY_ ^BF_?H#KA_S:A6N77.>Y;]T0E1.\ M85 FV0["#W M_,RAN<SYE ]PASOOPIWOU!T^7^91PN3*MR(SOA<7W^D4F8N\D'3W\ EK\)9? M(-$XUD+_/-(FMDXVZ +OR5V_G](9`\A'QF2"W_.0D?<H\A+'BI,C?JG\-;JD ME8L?"$7 E?)L^&?UYL:=+OY6)EET46RD;]TD_2T[JH<L '<H>3[;&H!2\M_B M42[/RH[*0*PL+,4=N3!9A-7*#A;5]E75 RS&\;89+6;RWTLBR[.#Z'1.D!)S MST=>9Y=R94[U )_4$PE'^ =)I>%,7GR7$CY&3U5T]EP'RVF2UI(7Y*5TY1Q6 MT(S,9&0&:U,&RT""K(,5$#V-O+U^,+8YEB0!N N94/YSI>W"8"/H!,CBL( Z MP1'W$*7/Q>,X^!?RL^"#GA MW^"57?K.RUO:;*Q+K7Z-.H5\]E!#DLVG MO6MS(SN.(/KY=$3_A]SY<-?EL5UZ/[JF-T)/EZ8M2RW)Y:I3<<*1DE*VIF1) MK4>Y?';[OR\!D$P^4RF7W=.S=Q3GE*5,$ 1!$ 1!$,13\X0*M[2HI]_S?1K& M-XQ\<( /86S7.J:>8QB5(<[A>GT0H^D*5T*$$Y5G, OG"TOC49E?;>0,=R$] M[G6XW?)K$'X]6%N_-K03RA:+B;6A*(DJXVJV6+.'8;9N8M64;,TT6U[(Z.9 MP]!%/+Q4A,9I+';BA6-O-EXAL5U&V=$H<;+7\3*40DW=PJR.30["]7HQ9UA9 MH72<V2>4^8R!,K])B=).?2!09 V4!3:64J&T,R$(E#D MTJ)TG.#G* L&RG):E&4ORJ*!LI(&9>.JT^][LJ5G\^KY6F;4PA+,"UO68&O= M(9P-"Z><$WTX&TZ<2 AC[7K$Q+=34XXJXZ3PGGAYCCJ+C*WVL%8+GMA2B^9; MZ'MZB& I&.!AF"":WH/Q`<<JP)%,3-KNGC$:*#XHHZ_6ZS>7/"I^U/N+<OT$ MK[_55%2+&!: LFSK;*>G!F KU"3H!Y[[A!PTO#LTZ M]Q0QKLS"B<$+I+5G' "0.+(<AW"',$ F?Y!^1N<G1(KT6)LO!RU3',HYCN.Z MCS*PCEWO2L 9ZRP(T+L`C(1&!*VQF3M^UKBI=QK!R32:A4SDW]DSEDT"$9'7 MB5A"M,4B+0FR/IT8"%.#FZ8:V 378!,1W.MA><Z C((^&;*%4PM52;/5'WVL MRU&/L/K$*?5""P_4*K !5I\XV<S!ZA^VKJXP`!CR)%_%>/7)D(V !%C=,,&T MI&R2A0)WVL"!X(>,'_:+"9OUP_YJPN;\L+<FK&Z8$)/4$J*9"*QWQNB627&S M)9:TBNT%L$5U0C/\`;D`CLI-_7Z!1N/6XQL`U,HZU[&<GDR>#CL'E H,!P%4 M4#ZN M'R>4D5SQ#P\0E-,(RO[G$Y37",K]XPG"Z<LW5U95_[ONR CCX\KDQZ I-)CN M)RQ8G+L2G!)LQ98`7*C#SB+O^^_;N_Q=YE_!?-[,Q_L=6HY,<> $W+ B IFU MU>B!Y6I[!JK>RJL6H5FG+PKV S(VK-/)!+!9&];I/0+8G WK= L!;-Z&=?I[ M=6_D8:46 66JE 'I \^-F:TUED9;8*\/4?.F,'6.+?#L"%I4`!'<&<DFLC<E M MO7-B.0B"I9'X+'*[8\"!.8?"05CBUUW$ROPWF#Y!WU87UTIU]6B%&+S-2> MUE [$ 77(&?HD[TZDR#J62 %)*> C)1EDP)24$#JO=&HU[5 * I(>]"[MBO* ML:^KI ( 8G\.M-[[/R09QD?KO200WGM)(+SWDD!X[R5BH=Y+`N&]=Q D>Q D M=Q D?QBD<!BDZ#L3`"Y3.AAHA Q#UIZ M`&Z#QF,4<TUR(X]C8R^YQPN2&L53&'=YDAU"<89<LVI+$UE);7 I!Q9J,JJD M=G<:G AG*K/2WOD*RR$'1^O2%N:W<"O-*[RD>=[96=:AM:YX)(%:ZTKI"]=O MNLRD_]2MC3(9*EP^B[UR)^/]XYJMT=9K:,\C9G!*0I$E%)67H\AR*JH_ 8*H MR&:.12&,7'0R( H2Y+FX503\K//)`_J&5S/=?S]?HD5-!S,P]8YX[2;T"AU2 MASSF29-U`T**N&CL;A,NM[#V\8U!.7GF="EE+-M,043)U-K,PRGD EI;FD"( MWL+M$HBL".^7D(Q,#Y"6B#O7.N)2>L3S1+Q]'6\Y%=YQ1+L.C_,U&^1;X3,Y M5%6WUK_J-<G-0&&S4G=T$5/ 7 =C$$F;LY\9`NG$IJA9(!0MC<S%Q<GR//L. MRY-"A.,#X M?4N%WJ1]!C") Q-2Z8\1TUO!9?CX& ;9"^&-./!9KIB\;L3IA$WTM_U\$TTO MUZ>"$X%/[_8'G2Z>R$Y6NGU^M."J,]3C3?2402/<W;* `CU=$$'!-7!]`RJO M03& VO7EE8%/.S.N0.GX_JSF5E> VK5KK<:2QA4\,<I] 3I#X(U^AP%!W.'U MGEE"AHDXWK\/LDVN6J(?ZW Y)9D\P4WZ,R8W]'_VXIT'6XYCXWOTN21L"E(_ MPCQ'R+?E\RD0\C]^G 6.DV_,%SA.&UK.6'PUP:'7X>0;JWF_Y*,6&+Q%HY7H M>5/_,FJ)5A8EW1K!=JGAQ]Y =F!)=B OLWT`O_U+^A'Q"FK*DAH5+X Q>SIZ M ,EWL5 ]P;R(*2PQ]2BI",R)B2YO/?-B\+] %V>T&W(,5EP'8KT#E;="IB39 M3%? /<>X3AO N#LP?F;J[/L<5X:LE;EB$7"[F<7Q5MW,4I">?/^:^>U]/E<N ME=FD]?UK-OZ1.<MZF4;XLQDGTU+B__XUI_[(RQ\NP9'-HCF8MTH*CJ?>4K&8 M+XIZQ0]WNVYDPVAN-$7SF!JP9?&/O/SAJI=]RW/%F<U+92+K9>M9^H^/N13Z MQ5$+5'(M:BG(6CQU**V$'5^]2FAU,0LF3H"-EM]S\KN+`M+II3L\<<^'_NB) M:2.\[H 477Q;$H4_GR4.Z^1Z\$0]5Q;MU7Z36)&C6ZYOABV>W"C+=0/:2F!A M ) )G2TP #P MYE$TJIIG%I8D,^Y0WAIN[5:M;&241_N#J(Q^DCVJ`Y)Y*0%C:Q/Z?RN*D9ZF MH43SO#GB6HT1 M^=NL\;91&W5OKJ[N!KTN&/ET7AI>5\ MB"$//'Q E,%;L/L]O-C=LRJ)V^FE M78^FL\ SP^D"91$2OZ;0/U$Z;Y=FM,H,=0D9J&#I\4*I3)".Z_WC)[Y>?",1 MP=",Y)6?!+G[A+>AFT22:XK\-AVFK%MWQ G7&(%(/T7I9P<Q F)*!/%.[5"G M)5F(+\)(PF10&'"+[T48,?S 0LAMNQ=AK->NF[>=YNBCU>KR"S'B&+X9=:XZ MO]9&L1Q#S&,JA/Y=U%[?HT38],YO_(IW$'I]2";O3"G K356BL?"; /<4= * M#YG5U!C%FXB\<"XN3%%^Z*QSE\QI);7[0[NKZ7ZAAHE P6ZO>7/%0TN4 H6X M5[G"/0)8?!N$X]5W.(:RHU1?#KX,;^JC0:UA>2?%B87:YCX;G,,?)B1(S!+\ MQ+O]QDA/RPGJ]GJCCP:NK-*>'/8R7 XRWFU"9 :L-TQJQ.4;:3Z"J']%HHBV M["E\/PK'GP66D^PY?'O'4< .%[ETXJC2/U%5)WC9VCM.P"F4QP<:+S"$C)_& M)[::>AV6:GR$P/'E$' W![_AG]3>2&*&VJ9^5\X8!]O$MU157I2PW/B9DPGY MX_:;C4Q$I31')KGBV_H:>K8T=6DG[ T !(]<IW'99Z1*>L?1;+7!0^).38,$ MH->GHW/]R6))CGL7^1B\J+VS*'D3GC!:++;DLCHMX/=^=;Y(P:PKL2:ZS(L8 M^818S?DLN'Q)OR_%;RZ?]7<2VQ.C)PHB<*9/5H_KU1(&_P/XXF"3&P-DR+') M(US86OHQ_!8QQ<L=HA=*0R,1OL%:O(F8 IN ;F;&V HC9F? 6SR9+R>+_50> MO%ZQFDE70'4[ T'/R)!O0S6N]-6?GD]80%$\B I5\-;8NQ;WD\=."U?0<OM3 M2PZ;!_P1)*>"< O,`"FH("(- Z"1RAC( S[N[D>:9TYRZAX),CP8P>#HL$] M!*E8()6,SG[(65=OC6KQ[C)GC8I)`C7STL! 5#HN,71S)MT9VG*$R0#O >0K M0(?BX\F^_!J/`5CWC8BJSC2HUF?'>6]-+W(H^_22IA<!RKQ:A$/EW;GDZ7QF M+78%J>^-[$IAS>_"I4-"6)T&5;NZK7VQ$W!5W%L(='[(SUL.8#L1]#N!.)2U M1M=X*Z &K4\ZH,9;`65F,M%Y*Z&,7 RZ&U^[<.,JX7XU>.L<!\;=&0RJ<6O" MF"*$4 XPGX!C6PYTP=VOK4'/PF=VP9VS!687P/DY,\V W05W;.EA`MI=`+C, MTV>:>*NX-$!-O E*GC93<94=N$Q FL L7$8CP8GOQJ4"HDO)T\AA33D!EK6X MR[&+>QN(F>++'81E\:L:PK. OFS$EWOQ9:S?XG 2!O_V;VR1\2[X/\')!KYG M2_C]'KY7\.OXW0=OI9_C2 _6I5/*C*79&11BX'$-+NN:S=_D:U;SXRCG]6:T M`)TH+=M815G0FZZGDW<2V++WZR2VHM%:MJC?A)OGF($*7I.-QJD*'7')R4;] MM(6""5,S*=VMG ,E3#MP)&0O,L%Y\(.W\W$UA;,_FY DGB2X?]5IR'.U\6E1 MH_K5`!^N?+(J_^4M>!N\1GS^.^O"[<-JO\! ,^B*['E3KVSKP)E3<>8.XLRE MP:FY7/('<>;3X"RH. L'<18.X.1W)<FM(;P72'0/%>#Q(1 O2J&C2,A.QN G MG;N^8 N%.]C.:VD[/Z9B.PT:"] .X'DMMOO-3%RJ$*/AV=G=:'(.-+^K"4YC M/#RMC!M/04$C,L.L%Z%(1^XXJ8RYAO"Z+PRSPVM&-&X$DAWB=FS<+?]4T^\$ MX>,3(=85&(FVE5U(*4 H^;\F5PYV$"PF,-'[W,$*#OOENM;M:#G^U /OM+X7 M ;$6Y[\)IJMHN_R?<4:9< _[NTL]#T2XX MA M3/)%>F$87%Q=8\?"FT6BUFDP? %,;\DJUX'339+/:$G9,Y,=-+\R2!'"S M$,X8;2*8FW?S[Q&S/XFV.=5XH?)89XC.X] WQ/M#WYY080M\F!!9>E3]GF3& MCH(FI4&O]I!>)3<7+ >]F_Z=Q2-CMDE3WQWE!] UJ-"*3 '/%N%], G9VI/V M1!G*8+-?[N:/$4X$N/F()WA1AT[V4M/#G>YX*F'Y'#R%SQ=L4/+X!(8.9J!S MR"'\9RH4)F1R0%%"I5^YPE-W[UFAFV'+[<?$LR5J&=>N`K^(*&%; 4%8%XX+ M-QAM ]JP7VNTK*T^LWPVN;S8:?66SR679YRZHJN[M(OFXO)Y1_EA'Z[BL>T M5_V%)%NZ25>)WX$^UZ=*ET)&4*9S&K5!TU$3-E4%O>[UF%K2S! !FK5 AU^& M[G;L3O-4"H?[P(_:PDR'6:; F; -SM_F U+U ]6R/+G%*7.+QYAAO=:AZR+S MS6H OC4V$9O"JB=XH&38_ LS;N$VVW=(\UP0JY;\4]"Y67Y;KIZ6-(Z-NOXD M`GD^4 Z98, =F</5;/?$ED"TR#GYOII/3X-U9SG?S?% 9IO'1KU3C[A<1KO: M"WMJ[[*IFBC0D<M;U&G19I+78J-;P;!-+GV&;P$07C%EU[^J?8&9D5$(3_V- M;Y*Q`4!6%8?Q*&M/..%G8VA]HONRH^_P7J&;`W'RX^?U</*MCI,^?X4YJ\<D M*A\$&P!*N1CA#I$8E5%S6,?]=<]&R>[YBIFLBZV'V/7N 6>;[D**^9_BHGP^ MH(C$QR]_T!0"7NF (;6:CKJ5Z[L4M7^\O6X&#VU8I)"(<%FN1P_A]_EJ(Y68 MDPZ]STNGUO[O3T]/[=)T`' ;L)?O=5Y!=O3&BN>4_1ZAF)^\"TQM_#V<+^"0 M^E K4Q/FPZ=PW7 (YTN/9G9 02G2^O2$K M8JM_ANA&B+6-9"$[7,:R%<< P MW[%Q`O'$P><S^/>+.AO+<J 3AP^K)RIX0 _&\,2BGH94G+%;\A-Y\J)Q(5% M0\ -2TY," ^0\UH4OFUG$Y5[T#W'(<,G[LM\[1QA:]8/A16EB&3RW &B5- MO )]-GQ QO[T8[B<+FR]1N1]6BWVC^F(1$/C9^G5ZD.JM2='T=[8CPW*6]-[ M-F\M[W^>3 4W4JG\/HZ_N%.AC49.H$84B>:GMH]K"A9BFO+ *'IPR^0 .>EX MI.!"HI3?1]&DFK=>$731E&2Y\P9UXSO1N/E."X"KU>0;Z!&WGN/?CVJ%:H?S M\O^HQC K9Q)NIJ_1EIOUE+5%TN_"2+.70.N8TUR%FG% FBR)[F3^K _YDCS4 M;\VDPPFYAMAZ$_C_RKUF%I&62M-(^XI"V\;4K_80 > R]F[A(<ZH0^ GKR&& MIGE&':1DF6RB:-E?,+:]9-PY%-O+A\]0%Z 3G Q6?89:TJY+EZE#DGD$8EIM M&W0^P]J2)W6WN9826PID79Y'XA!&E3)7^S[-HR?P5I^ LQWN"N[W!B/H./'& M4NMUC\Z)43H5CU+C$:AY7XFE,7JNXOM1P)LCW_JZ2Y0]LJBTG812`_O>9R&M M?7;1\!A$ 1=-3 \6%R* ((QM"OV*ET!SQ+ME8O :V/UB2Y;X1D?+LY8W[>L0 M4E+\<JP>2C]!=&/L\PX$!=?[QS[>?.FBHA\NHAW<N<BF%>F,Y _)3\:L]=I5 M:P0W$HX&7U K(:R+4RFPI41&KDQ(K\)[EF-QX70.G(3"I\FEH6\F\^UVM2&; M6C5-G>*A`B?!`F*^#TNK M4-,98 )50YAITJ(=V_G2>J8D8Z0'6R!*`5BSFOSD2#IN MF0R-3H/EI_*3T!/A7G<9E.%^*0.F&4T6(<7.5V4SX*%SF\3EVE,P<'-9RQ$L M.GK <&EAYE93E\?4\M)*/$WIN)LR7R;6,3^J(>XZ7E:%IQEU=S/XTLNN)*BO M5HNC&N&NP5N!'S\8#JA&R6DGT<(C;E:Y-2"3<P2**Z%$QIUE'1*,BQG;J9<O M]T.9+%TD)!>66R?.XJ0B^Y!X+86&5. .J"<-H[-\DGH\7#IU[6^G&U-7\A.J MO_-5&A;N+&<K)_K19IX6NY97GKT31=VX([8"C6S4'B7P5SBIB':_S YM.+D0 M`H<>?D,\OG"R.$SFA1%E" )_4-E;QKYP&WWZY+;27=ML+]BJLZ-I_A'1,\=& MRYBQ;JECVX2?R!6D2%^=`YJZU0B(.S9(RB>:(F3PI9(9E_<+YLN:#LIR,_\. M_C64IT&K?7G3:0:;:':_GT_E>IB6S>3-F_\>]6;*`Z^T)F*V$,-8DJ M=,S2 MB9+PR0*<2*Q]M9GOGL6:3OR^CIX,X$L%6 ^:8GU]M0JG\5,S^AL\P!"_G=C] MNO'Z)T>_RG,ZATX^7*&G7K%Y1RMXQ(U&QC[^&[D+_3X^V%$W2_?N``K4=G(2 M^P"X5FBVAHW %-3,)+'9FD'Y7['5>/WGD8V6>\O>!A\\W0)^7J;FV40$*AJB M3M(:)\'')A#S,+5I&3#S(=Q&`DB ^%BM[=&\2+ZDKKCJ-86:8%^=& ) '$\A M((^?(W+HUMI^M[J,EA1$ HI"R3)D19D` *II;+A+%TI=95U2\HRH.U\/]V,* M+/N$L. BA!ZS8BFZQ4#N[16$BY&+9XF]H ;1_C.,%J"G&ZYE:!+LI=_4X23U MD"G_Z 91"E4G]9.FE(+7T$K)=F,<<_-RT5*1I!&O!.DR'3;A&J-ES.>U]7KQ M?))TRL^QE_?RH6/C>MUF8IEX)]&U^\GW/86+_7K_*'9"#W-!.*)_D $"S:NW M7?C?Z22]W$6(AW)""S5/^XL;J&'YIVH?N2)?WC)>_K6TON8TU;P0VOH$6 7M M"LJ<(0.#D0 MB2;Y$"=*LHBC7#TY M33% ^D6%_?X!GGR_`,0_^'? _HS?>;I%!/J[EM()=3"F:HFQY;ULIO<%7TO. M M_ISU-"NPJ^=HDOOXLO3XZ6% ZT]/L%D/ [_PYT/"5QP&KA7V\ //RZT[M. MG>O6X!3+K+O1]D':;1JTFFWK=-T&'_MP/E[,E_<?$H':\\UVUWB8+Z9)K=9H M2=MZO2FP=Z,"05- \^F /([_-(:3\?S*=<F?6^TVI,S"O-N-%D*O6[,9G.[0 M!K.#MOVCA= ->KJN3?^#J8[EY%G2V('*A]_F2]C+4V 4CY(Z<'W-9CVS`Q,Y M#BQ3TU')AW*32=;') QQ">$CJR*8PJ7P<DHFF/U27M+&<<HF`5EZZU'4/AA M?0MNW7?"82"I"KN6CSCLWYU)Z+06?O#FY4(PO!D7OE -X HLC3S&EFL88 NE M]L-E 1B<'JSA5">F"P^#Y7ZQ")A,/F)B]VE0&S8Z'6 ;I&K4D;:O>G!A.%XP ME8AT&82;3? ,B291KS,#B M5B4V!0$3>DECX &-28E"C#G#Z 4:\+H$[= C:"9FAX8ACR12^NGQ,Z<[2<L) MKGR(<0)W(+_G&+F5#OE5_U//2N7((6*2X79HP$-9H.5-SZ*."!7X09X*K9_( M5#X M0EF A7Y)8!W"03R*FQR*'0?EPV<5#M%L70Y:M&W;C)CR4U[5:\/.$-_4P^U< M,D99`%RUR6U(IG\^Y[5 VVR21 ]3/-O%!W9YC?%I7NV!!=*=KVD#AS_$8Q.= M_JJV9=:9^Q4X*GWO,-/6,EQ<1>$TMH]UF-:/PS"U[Q'P4>T5': ;_D &N/6W M[UM;)N6K&S ;RE8NT=3Y> B2\XV)J_.M4S!UD%CX#XCD M)/6WADCJ+VV1U-__5Q7)V"+!>4*Q?!I ^F!HZ&JCVH;Q!RX!I_?<T%9FBS 6 MSUD65D_2DEY+6 7!*)H\+.=_VT<I$.PDK() N)?=Y74$\MIN-HHVSV2,:^;8 MA''Q%)E%F3J\!H<,3G2R$PUQ)SD!7[9Q3 1 6FI%A]%CN-PQ(3I8=,LA56-, M,3I$^:%5U> .EI]GVA.P?/4GC+OZ`_0QZ(_(EZ$_XS%ESH?9IO-QSOTX[WX, M018&&73FW_G0K)(_-JODC\TJ^6.[2N7.'_T%;>>ZWF"1]J!V"1N]KD+B7<*T M-FHU/EYW_GK3>I$JEO./HHKYS 9Y#I**JC,;P+Z&=DE8? ^'+YQKMENS;2\F M3U54IVMU8UQ,PQ^ -+T(MOA&SKIZ8673.2Z+!,,+NZQ_\7MSC7=?O( [HNI7 MH$13\%/K>N2B"C^*!X>.9>F?T2:<?-,IT3ZX(SJ":X LBK5/<\_OFXO!B C< MV,*6\<?N?0?B3?RQF.<"0E8J[TW"!$\5$.2I\I'LA1]_3V+S7UI?^.27EWPF M SV*+NLE)'E$%9C0S(1<0R;#C>;P:_ /%(R9NZPQ4W;,1,(OA/GQ=SIPDT; MF /1)5S8D::7RO&Q?5N.#Z:2.P!C^KN:,DV%_J%<%3&0=B)%?$04O.X#Y6UO MSGC;OU;+YHVWS>90>5LPR_:[RMNB6;935]["U3)>&9+Q''1/SM"04(<^I!?U MU7XYA<N8S1=\:\]\W.1W:COT,-T1;;X8\4MMOU9^L]^%RWM8/EE$S9=J[?Z9 M=MQ &$,73&C''88Q=,6$=MQB**#Y34X MY'15H GMN"^2H LN:,>ML 1=<=+MOE^RXFAEQ]_*K!/:U\J<$]K7RH(3VM?* M</ D&_S;OP69=V<N6%S/BA("-NN&53+PQ; Y%99!WC6N>M<M[5[[&&_VG5^Y M#SO=_ $%#R!\32WDX<P!`=MML>1ZV3:Z&_4\%P=:5R:.[ICQXC2]7+ -MC!) MP7C5NNI<NU26= $M7+X*=QJ/:G77S*9=.LOZ D$Y^\.Z^W?$Q,R>MG78;":F M_#SL MC&$5M. &A0-,)JU%-VBW,QCT!G<W*BA)5LD'^\EJEQ_V5H4M),+JY)8]L,W. MZ&/+ "5ZJQY8]J?=OAG2]:><7AL6+IQG`][&F\NZ87LW(Q4VEP!K=D6>P]I! M1UB2QVWIA2;AEFXT?!><RT,'YES<ZR<MTCG$7:/79>HA' 6X_!#SH D,RUX8 M10IPS M,<WRCQA9%`KC !8;-"J:+V1P&_<G7'C[ SN5U;] "_,, -K,1&#VB M%-^N%_.=1 ,^XDT$-W#OGJ MY[B]%H% \0H36CT=](^YQ58]V)57HM]3Y^5YCYZ7^>P9HSR?'N:*,(%L1(S= MP7BU9+_FR]EB'RU977#F:?P</*R> D<F?81*.;=;9_ =`7U"GF? <<:]T*R/ MY.LM?W JJSTC+\YI\(2.2#R'^(N!723-M>NXWC^*:B3!^(P?<4&<XBR=/%<& M<,NTU(JIHH"IHG!YOXCHB,73?/> I;8HW7,&-0?\P1CS][CX`Z&1"G=\>23K MA[$"GL[OERNFF:TAUYTO=;DDAV87]<%"="BCX])#A^H_O73 $R D(B0<]O:( M,#KO MR#EK[VK\'QAS[M NX#OA(E;'H<<]*&MX\0YW2O$K'"Z8K-9S"HQGC)SS8#YQ ML$&5!X[CTED%(:WQ./M-(CJH5?#C M2IFHZ*R;QEIR8.$AN=,U/)*GXSBCM6=^CJNLCG&>"GY[ZC_ =V38C^,8WE ` MQYEQP7 )0V#E9 M"G6C3*N;HX=^UP4WWH!EC"E'S(X1 ]B.>*)*3:SC#YHCN M<6Z&X_E";^ > S7)U*9R9SS,GTMZ74$,_1RM(WDR>\(]VQ)1:^F3-=.J,7\ MX BG;Q$^K_8[]>%<:KNG.3/B6$.A/Y8.W09IRN,\YA^L]XDI#C QAGQOS6R M)'Z!.CB)]]35H:4/S>U9`E1G^1T! 1IG":8=:5M:",IP,SD+XO=]_6USN].% M)OR&%CU.SV! TGB%1\OH29FUUTR,A5 O( ;(K2<L%-(8FZP>Q_RJ0%G!CHLA MFKS7R^K]"_FEAR $(KF(R&YA9R<12P)'XA)E G6\Q5G(F>E)N0;DZ'G(101& M\L,U.[BK&0ZO0Y"\ D(DK$ZX0=J^I8YN*G 4MFXKL,M"MB^]:O6B31%R=KI> M.U.<4=(OK;RS!HV\XRM0B[M:7Q,.1]0/)^Y>-%+3 )+$8J13I.)2'H)RQ>J< MFAUO/AY$Z^UH)=6I<L=#G[U2L H(6Q8)FP08K21B!9M\?:95X& &9455***E M88'UN)_=0&XSL^/BL&ZPV8I-GW"5&1"&A7N:U3Z:DF&D.E6,:$)GN5Z$DY]H MBOH_-2#Z]HC .:;_-A-K/^7,VO_'3:TI2!HJ]I>27,QY::5JC2FIQ>8JN.Q> MOEYRV6W=^=+[B QCC\''[_W3WTH"0[A<$;-?G_([FL[DBIVG8(HS+_%79M8E MR7%[SPT,7/7.'Q^CZ1Q^_0O*TFZU^1?<?<7=0;XTQRWA^8Y<L8^K[]P3'7S' MQAVY.X+;0_/'_:.27D Z&><$L;87[\*,HOH^SJ%E"I.TQ][9)DZH]8()1TDJ M)5\,*'7>!)H(;'*?9J7U')9/O^)\N[4E)$[;K!:B2K;$I'N37F>%B0L'_VTW MX :G$SV?SFF W^T4[P`0L=SU-(&;3?_9%VJSMUZH'5-!XD(MP5B?_:RQ'FL) MF7! > UW(BR$N^IVK%.CQ0)SF6$_W\^_1[A3+%Y Z04<4+J(T8;;[1ZV-/?+ M.>YFJ< 7<%(I"*<A$^#OD8X':JR)-W+ HNJ2R&&+(X*(G6 TN&FAHW*DX,"S M4LJ^C]CTUDB(*<5=DTVTA21=<ZD#J:G(AV4$< UG<V8^LB\LN06"T)+EZ\D9 M/.!9\,G[Q?'(Z8?IF1'?>]^>Q<\T>TI0;2U; VE$*>>D,W9-" WWQ$("VW$W M\&;U?3[%Z6G!L"Q%ZD38$E-VVMC\ ]N 8HMP\8Q3AHB 4IN?<DT]$O5I;9&6 M*+_]3?BML0&^((0I7%V,/3\A?\!6W213=TC?O^<[08 3BET$_!9VT=OB!6<< M[ &S1Q [0&*6N0 Z-!C4_),"/^P5AK&_0:#DI MS\PY\W1MF'80$L8[BY 3,Q1-CMEL/IECT QM:,8* 0G --K.[^56(FP.K6 7 M9CFN(5,U[93B5KU>*2<)A'6KR/*4H67_+.5V:3C9H>5C*2Z4]% G-*B7&3EH M`.-06.H '<4N`DF90-* :'HF>2ZM+;[M'-Z'<V. F&N$F<R/+:K!H!V0<MP[ M5/'Y^NCBM2:<NAT&MQO_DBPNQM.CLP57?1ZZ5I&7*;E\FI;-GJ:>IN>T%T-J M9OMI2,MO%\=/4[%<[OBYN Z9'4B3D,)TV2YQV(%F&[E,(*E(<1(0:I.MTJ)8 M<;N)"!\AN3V;ZV%E'4WO,8)--66Y5<!FY4UX+XU=27N,GBK.*<O '1 =2XBS M6_$MQY/.6N3:IJNR(*J1S51PI]%90(>;3M<-)E:=Y<0QM_4WT6(53B$K(+/+ M\&I=RI8'J1'/^,5GX=:^")L71+J.+00$,^Z**-<A1IN>!93QS77KME+N%LO= M)A2DHO ,;].FNBCR<0V*A97#OV=^`N 5,I,N0A-^6%R580AIHW?5&T!ZNE5\ MNPC9.]'C=>-87<<VB%(HJ915[G:U64P_S:.GP4>S)+XZ,QX"J*M^B>?J2#PZ MMIRUEM.3MQ).,+5I%^A(`04];SM$Y;5S:KI3NI_=.8O(5(AQ04K]&3S(5V?< M8:NF_$Q *5/*V2CEJS-'ZKI$*K=;%X';K:"-9X=+P"%2G=EX* O;F9U-3<4F M^?Z1+9D7X"/ &R3*<3Z.4&6KEZ4XF]!Q&N5Z+1>*^C.><O AT Y5'$0EXD . MHA. AU#R MQLGZ=!I[>& B12-C!*ZF"C06)7)(,!3OX>A4WW ;*;,(9EY+$CH*3,=KWI0T MKL[ O .H4F+"$S6KA1<1FL!C%P$'BS&]81?D]=4 (Z^WM"S.27?;C9=I4*7" MLOKMHJ+.`VR0" XQ( 6R=+A C*++Q$^4LE3'?7> =D?/)N))A4:2<X!1+F2' M>/OTW3T3Q!F\#R/6+\*&$$D%LS"&P0X>P'8MI<8.4&YP:QL2D;._4W0("/"; M;33;+]!UOXV6<"T-;:J&<*AMH^"AFQRFD&*%[RZHB-3(;0!$"I+79'O,4RU^ MATS+%:5SR>99!?&-^;BT)3%LY3&'PQBI*Y!^)<87N+P4$1PJ?:8^!C>[B96N M)-O*#H5PT$3-Y"90<O &-W)$](G!5\A]`*Z[(/YL07"V$/! &TU.>,R[3Y\Q ML4$4$V%^`!<X&/L;V"L#PJ$<#LA MVQ9TM<)9HB]4\O DOH[!#O!76>AT6R*&0_Y,W&%<AO< !4Q< J9#L;SL8.'1 M&?'*L=.YU Z&$!C("7WS.L/CN>!(9_ UFU_WX\5\(C)>).'7^O:X>B Z;+:" M&'D03I%=`V.TN!:B'%TM<3R=PNV?0G[M[6/X+8I/P6-0P(JI769HTMROB#O3 MZR'<+H"I33%:" 6$E ]R6RMQ:84G=4Y$`7Z1]*D\_N,J=079$<1^&#IGJ<(K M2.H+A1' CMN&IW0#AU M.GJ1$./!\H(F%6-3AF Q"B];,9EPL\1!*H?AXWH1-Y80TS-$K::C3H_UFN)A M^MDR^1.R122?K 6<XB 7H F>0;N>CJ<>'IKQ2K74/;6 M+^L&FTQZ5XU)K!< M]Z1L%S&K)1+$B(?\4,R9L+9I]\>TG!? 4].VG>2I8)$<5-ZL^7:Y00U+ ]* MRLRE8)]BY["!`3=*G\ ;."G)":-$/3+3(Q1I/$23;URY#J*_[9EPHWHZ87!B MJXHU#SW2 MF8MEPG 0?19[!+T]T-B/WZX7,)W3_PN,5;B$S%VOE2?(7%$D2<PAF26HX-:/ M#N M05X36.1JU5HI#NVVZ M.( C1S?:?XHF.>GY:<!MA2=*E$>.L0T3*NF//AF9E;L!;[P6'\+1YXWX[OA8 MBX$Y[\7\BX8Z[T!M49Y_.?Z8]$):T L'48M]??SN"F*0Y23JU)BZ^\5NOEX\ M'T:4-1_D#J#NP ME+A/%V*)5Z+]_0"M`QX*^MF/M(8Y_-.A^?(Z:'Y]'31_W8-+=NEA&3Q1; L^ M7?\U91O#I_Y MO?R8A%28=%F%>&N64N1,4;)>6OML&*TCW YMK[[#H1$?E;/5=RF5-2PC970I MO\T.L*:WV3VLDFJ13']X*?;>;$8<2ZIF(;[(N-&Q^*(V2_+/( !3B:$$2AD= MK6H_YEN4[Q.'<)HJ'X!C;14/"]ZZN/"I48_H>37R4*O*H6!5OODQTP7#E(; M`Y[+*F8$,NM0-FO-.FQ7A+(+[*")[PM;143N:5>1QNIQ/2>UA#V[=5F GEGS M !+5]1]7IE)I4 7B A_^UJ<\A286Q1(5LJF(W84,?2S:"_^JT L7D<A+2&K* M54LL'2:W:*SW5XOG>V8;)+1;'=8"B%2N_KF*EO<[-8>\RP,PG$\CN_FTUA*? MM9F,WC$R%'Y[%V?UU8\#NDL MUQ!UDLS7=&PE;AUPG:5C0AH>I&%!* Z,5IO]H6VVE(+562ZCC<T'%RB;KB3H M09% 97,`:, FJW^<V(RB<+W:'<^UUR)* #J) ]P>M:2I0"'L%^1EK//HMU24 M_*?Q6O/\_D)1O3MF+DR4*SH \4PVBE/6)>O][L^(V6^)2-!O&%F]V*^>U:> MX#JSMIRVP\?Y EZPV7]$TS_P`:9_>!HG06&S)?Q%]OC&.B1%.':.5/(IQ+U! M\1OMJM4N:TEIM&M5^&UV:;0[X)WM4(QVK8C?9O<9[<E=CD<%O,V0.;1QKSY1 MCF0X16?)!E!\H8(<+DIH!8TAD-A6MW8]ZD J`%E"CF#VD*)>C,$2A_A20T0& M(!;0'7WP^S18K!=K( T?^(MK2YC5S)0"* RC+UC_6,T2;VQZ$4]>N)A)O99Y MLZ7,:CEA6)9<\"*2< 4)[^?8&, ^ALJUIR8+?Q%"+1;+P?HR8AW3YG?0.=[S M]G(-%]%F?6+"N!Q<[.E?LZZ'.;'XWR5N`S7"W>-^L1BL'D]TWY]K!RAC/<E: M9 ]"Y Y"Y%,Y4I$M)U9IO1DIJ'2#U Y"U ]"-$P(0^K4<4,.,S8:V*0-NW>6 MU/&_AQK-MURJU$D6M(\ZRWIS-(N >;AZ!)WF?X<C$U9(Z1__X':$=B!Y,5LN MV [0X)T,TX6?%X]?,[]]S?X6_%GYF=-_YME/K43V-_8X!LGJ);*.$CF]1$ZO M,N<HD==+Y/42>5YEYB(SDT9F3+%!G5%73D<$50=90 1H^'$3`!!1P]3'0D^3 M,V?X-W7,G ;?>80O+W[R_>('F[_8O^^"?X5?S_CKF?_Z'7_]+N.2=]'C&K)H M!LU6NW/=NKN\Z30Q)#B8,KV^WSZL-NQK+O[*-/E^_,P*3 OR6U%^*\EO9?FM M+MJF(!QUFG>,:X,N1'4PE$H%_^,D\R,WKA;+V0Q#D/E1C:HA_,UF)S/X&X[A MWWP5_D6 '/X;XLMR%OZ-" B"ZMQ5*=H45J7Y:247C M8MI2;OG:EE%[$5VTQ M>J-JT;2&"'U?Q;.WJI ;N5Y&3]^X8CJ4;]=>G,T*A0A1E2;EB5I[I0W_%G.R M]D*&ZL)_BRB.6'OHK;T-1RR];2Z]49NQ5KGK1;K?)F)6FN7RLP)B+)<J):WI MLY]N.HB:8/[5G+WV$9![0P+X: 0CJ+9>"C)O2 %M7_OKSK]1W=3DW-1;<>&M M.TQ$<SZ;[;=1,A'9-R9BN(XF^T6X2:8B]\94M![GV^W\NX\7TWR4+445ZI * MH7Y=[8-4]%=/D9\'^3?B`;9Y<%FO>0T-4 *FH?%Z-7L9GGTCAE_NYXXY)BSD MRM5,Q'LYFWGE2L7A#Q[.XJT_^[;U#Z)9M(F6+G.:$Y![(P+PC&XT]8RQ;"F? MP?C<>%8L$>.9G3%[90)P*2>2V7MKS[YE[9^BQ6HRWSEL2UY[[BUK%TY<;^WY MH=G9-ZR\! F5]IY1%5;":F7,9[%BI)F+8Q0QHNUE$TEGN9 O([>HY<-</HI" M/F6-LU0S36&O(.(W&Y?SD>K,OE&=_<WJ?A/A<LCM9:[42OE&GFR5:K7<5.OG MTW;#X'8#N9W!Q^T:TE+WU=_"G:%P\6F^W;M\K]5*-ENJU1!OO5FO\>II.D'Y M;^ [\KT37 ,94J)E/=FW65_]E(26<6'-S$7'!%*>96:Y+"T3QK,H:]=/$RLQ M/H]:W?Y5;=0:?L6MLZ]__,,O8)=A6?)^E6)1SJN3(GU'S*4<1I:*ZDJ1583^ M151Y$E- CE^H*):C1_Q% 8A A5*B>:P GA"56'?(P8NB6#X>B\2:/&G!4-!( M_.**TABX_F&+9:GIN4I,NUHW_U6:BIJ(ZC!F)I&<+8B:=$18R,:EL]5$))B7 M\"E\+ GF4H?EY4/'&"!>8.&9&)LS["YR895+)HL5`Q QR)%.<J]9P"DY5DS! M,95AI=0,J^H,HS&2%1(H&5;5.IOTCOK=8EM1L(T8AEB.9INB*&RVY3WLH%&C M-:N4T"QJ!\D]!\\+?!D-BSJ*DUBK\%7I$TT6)Z9$TG*I %JD(,2,K#V3M9$B ME[-9S!OP:RIZ*95$JGS%LAZ)S&N,*,LYBA16(5DZBR8KN+*D+B J_T86(B&F M`E=![]=<S,UR42/J$#G MX F92%.EQVCPN3M9-,R_\+890T/-ZF9_'YL]8\R11A>KXF+WLJ.+57$Q>MGJ MXJ2>F> ](V=_(J 08RNK-E)![T:[#VFPZ$WGD^F8U")148J[6*J9HT<F]1B6 M=UH^Q-I*L6"<`\+B%!8P)GS)+!^GB(G(K"0[B:S6$.$JHH=IW4&.Z22%9<B^ MQT[R=[?:T8G=[3<Q=0::5<G!<9!=>DWJP! H_;:9J5(-W648,8I*5:T9=38K MJEJ8"HHA*NJ2_9?1^\_7>=2B8W679G+ZAJO-4G7IY^ _N_-,#B97I<[.!T0E MUI%IC&O\.S/'=='2QGRDJWTHATY)Z5*5Q$ A=!H_#V,"I:%(ZHFF)I2$D%15 M.#LRZ1;2-'$X?)2J6"CZESKZ!?,M8',OX+0Y0ID:"GG7=.ATI#A64[J1P6UD M*EQ69-IRI!PRCY5Y++G1`M%48)&Z)*]0I+I/BDHSLS'J]'S0:?^YA9Q%ODJO MXI8J"^KXK$X/%=_086-),$:L9;,Y[Q=EQO$J,=ES< 94QBJGDLPXC^ YIIJB MLG.6--*4J2:56U&ZK*JV!(I&"]9'.LTD$ K9JD..6V*6]G8O)JHF!PRG8.RV M<)&I3VSF:%:F_.,(S,0N+Q^!4F!TCJGK,(-IR1PC.3Y(DX\ <AL)6I(G6W)X M:IP[+*9VEWN,)2JNS!BBTWC$!TU;M$RG::02OS47"B33W+!+OU 05<X2I5AM MFEI(W+6K)GI>J2V=E6,H`[=(4S^GM"QMC[C*S()3VJEN$H,W]8*;ZV(I$=)/ MAYUS7%NME:'=5J>4'[V?X-E.<,_\90[_DAY3W:]**TSUK8XGQ>!^B:18]IE: MKT>BW8X:PZ$>2[1J]%245X9-[S/H205-XE?E?%S0DN6<D.4WVYJP9#E>G9UI MBB9E*Y6%JB&S5DT33TV^=8'31+ <HDDVC*FVQEH?NS4Y=9C3->BJ6!%N.?GJ MM1R:"=/7I0JT94R?&5:Q%&/%4W%87.-*QLJ$9 Z6L:<2VZ:Q-K/5_:Y8;)P^ M:QKFL6:WA\+K^ZP-)T'$&V'K&6<S;#G4Q. MRE4*%U/?%* S+I9;I:,<JZE$?X!WT-/I '_L1I7A^XA$*RTW]G&M5$:+?[DB M>E\Z,5+,!L8>H.HK=B .7;[*K]HN4Y9M3M(B((U'P%FC*F+'+U/T+?F$58H[ MM";)#V1 M:!,]1+[9*&'Z=<]&EAWC'[FV]_4H_Z-&FN[%3C!,W</.;IFZ46--(1Z>J2Z( M?*48-I=%0CPI69Q3^)JROL,;AD55T&.9]M7KV/&C`H<]Z\J.WU&>]2BN,IWP M2FBSK4:7T1C2]X)4CA;&<;O+R K?X96E0^^$<8JMI_U.. 1/^U6F84-,3"=W M%%?L['B59>ZNIYF"Z*)F",N<9)=Z?NSJ^9_R4$H%+.5 G9E=F]J*^+N&> (7 M/6K2<%DLQK"PR"P6=+9G'/WJ"LMSKLN3.X($SQ06:SP%RN3R %U2)1TNZ+D M+V J&-7 4GS.OD8?I53,=7-6JT(;<LEB.!.=J!KB%IA;QTRDO"*/QUB $ W MW4 60UG=\YN8!;73'UCV0 R](D]NY7.HRUW&Z1N'(+R>E6]KWQ>)?=%8X3AW M1BA-TIN>]S)5AF$'OK1YRK3EE28U+MG>$U#DE M-+Q1FL DD9O_:D3 L>Z,Y"4ICP\3,P/Y,&G(4%12L6I(G<(H;4K,:WB+ZE8& M#Y MFLQ!UW[2(2T]2(&&:5F-N)!1"=;ZPAM)EMY/1Z'!E.R!IID*A:D BFK5(=A: M3'QBG(M3KGWRI_1I-F^4T8\=R%'PDN&=+C1.2(IT*I=CB>$U.;5L)"0G;63N M*U 1MCGJ:3 ."6UV/G1"5U>*&BXCL-2!*"51?ALY-TV C 3 AQ2_FT?^*H:Y MD%M0W6QECRJDD'HGIXG-I F/Y71&.7MMM,LG4VKK7B!3RF M)U %DA"5-OZB M1I"UF^J>_D)>$^4N*&+GT2 BBY%2[/B&$(W*Q.YTQ$ 8TTSNM=JFS0I__,-O M'XSDZLW/[<Y5JU?_][O/PV_S)>2A^1C!G4B.;#B36;94G=!J9D8Y* L%LI&K MS5>4H]XOE&E 5&AQ2A->D7H7R*2U#M:.]%0FWMJA)^AN.$?;2[/,-)LCC_$X MG%+=69(/GC,FHU! [V<Q-638CLTD3''M_7 W<20C"O/1N#CEA_HG'&^.DDY1 MIG7:E!0=J4GBEIGXRE%WU2%LU6A2Y4G Q]60AZ%0LC4BA:HE\Y;$CS858ZWP M(PK]=7LN-AB7)OFH1$(534BL"N-J+FXT/W9.FW<(1^MG4APY&A;EA(IKN]UF M/M[O(D^NLVJV'&4*9/]/2G2"H!"B3OE1G2 :E&P,( &_5Q&6)L%"(8&$3T,V MW?G&QJ6HG DS=-HTFA$OHTH^[NEP2CV#S%&4"W4XG4VM^KE/VJZUB!ZCI2O] M?;F8*Y0H+6<V(H=%H4(;U)1I;88U$$5D3M&I6)JI>!B-MWJX,L;3\EDN%Q6+ M?)F6(SU?IEP/5>IHQ0=)M TM &F837F/>*OF%ZA#VDY7SL[L9!;EJ*NG$;4[ MRE5B,2-'3I8B!FB5+G>;:0G'A.) Y91ZS*%HBL5QIEJ.J&5C&NL3&D]\ZB"O M!!D,V;CO21&2N/FG.*J]>>L4]E(N-\E$/+U;4<1?T^Q%*W'R:N1(VU9CS9XG MS4AZUJ]A^<6(X29\]'$_G\DR'</-V=RLR#M_$BL=BHX SU<XB85"=>95_+.+ M0H.O$[+3\83-KURI4OK20HD\=U5E-4:B23U.XLGI)$5L)E]STN#IBBB;KY;R M8S+W(^IG) ?36 ZPS3S#IF M2JO2`G82JR ^`: ,T"11\8]^R%P[FD^^;?O19LAT[]+! VI4R!9#G U]S.>] MD"S]"IT>Q>_C<CPN:#U">IBVFLI^<82[/R'_831-OB&A/*N.,USYS[)DQ10J M?$2071S%W."9.<G\5'JC #KACW MM>M.MS;J]*Z'K9&\]8I?O2OIK2]6DV]P&Q>__HGN>E(8^D$MUU^$S^-P\FWT MO(ZT%W05)%T-I5]\-'D(-U]_"SX/_\(8\;E_)Q/WB1NOX/,O/U:S()//Y'<_ M=D$FD\_%K^354(95'T/\[_ K?/XMWV SZ[[1.F^WRXUSL.O/J_E&YKQ=KK1+ MN6:VG&OE_I=>!MNP[(8_%'N5-9\FM ^I8,'.=D+65\MHJ[SYNZ-MOO6"OY'U M:31;F4*^6FD<T["?(5GI83_!I7:FR58Q]?-ZK<D(9NN7\UJFF3FO9'*Y0CM7 M;-?J=8/ X6C0N;X,=N+FHNO5-+H.'TWYX>WB%"2TZSN*3T>TCA?XS5F"+D5\ M(A O;'RYS2-^Z\UFVVAW %VX]$CHV7RK7FP6"N?M1HXQ*E=MGE=K[?IY/I?+ M-NK5<K9:*[E[MK%:[C:KQ>$.GFB 7XV"A[I;+IW\;6AF<HUJL=$X;S7KM7-8 MN)U76:/.LY5<IEDN9PKU>MO=AL01Q6])^\YAODIHLU\X,J34 XL6O6N"^"I M(N*\UJYES[/%8JU<S-28JFRZQ8XP)V "`OC*`0\-$77-D3!*BL4Z6WNTSNO- M.I,)MNHX9S-2\[R4*68;E6HSTRJ8,S!7B9_"Q3Y*10.:NPE:.0>2Q]0P6WZT MSF'M<5[-5&KGN5J[6FCG&ZURUJUL+ J2^DU9 "38(VPAP 9'YKR4:Q?/80G" M=$:E=-XJU!K5=J%5R%8\$P2B]T\,/].W!UMUJ(^SS7J#S=0PT!O9<UC4, :7 MK)8;K>)+F)^>2K$T2J"1+9':Y5;A/,,62.>P.CJOM*K5\VRCU<B6BN5JKF). M*IQ&KCWX]4 O5$'V"LI/:I5):[%6R)^7ZZ#MV1KJO%)F/^OE?+-0;E4JA;)[ M6-F5'&">>TGEIZS<KK*.92JRS=95Y["H8I2QH9]M%'+U=HEU=,&M(OUK(?'Q MK8ET/(ZUD0Y K)%4`-6&B>D!I]97M90Q C_8JZS6YU'K> AKOI<OM+ C,6'* M#G9HEM(<D FS*CDF&^?95H[-JI59B1DQ[<IY)5_,5(J9=CY?<AMSWB[N1KN' MU=3YZF8;WKL+X1N\Z.I LX2C,Z%GVKE<JUC,G^>JN09,-=GS:KM58S-/G<W) MA7JS6?6L"CFS?.:3ZN 5H%]E(8\5]:I]:KKX$W14MMP"5_]YHY1E4W^8+9Q7 M&Z4"LYA:I6*[VJJRY:63"7-8HEHK':5!\'[;G2^3WH:FOX#C)AXF81<VJ;<" M"1 >DA1],\+/JF*YT& T&(/:H#EA.^*\DLNQ=5F^5:E5:IE*J^!>;".K&E>W MGK8N- D-G3?8<O= `V G*4D%-?*L-YD1Q53..>PE,9NJE#LO5=B$62WF<M6" MYFB[4MOX.RR"J*"G&;*=W?F634AL!9WH P =X%^=2%RS&%P3%/PI "O?Z1IV MN%R^?0<.S79OT*V-[NJ=Z]K 2USWGRE P8(;L2E0I?'/0=8)%_M)!5P._9;A M-._: UXWF00)9A+A`6-LZMT,&BT"R_G NJUN#WL(P?()38(B:I.X_UH'$+5* MU_7';J]YP^A]Z*ZF^T7T(7C_GDV)VPF]O>HWF%$<+-9HL >>ESAS*R__[JV> M6B,K9Q ^]3I-AJ(;/:XVST;M6V8UWNV"8(KF([)>KT/9-NATFG<=K(S9[?8> MP22:92H3VA,K\ZN<"P7:`J_2;E$AWCNC?8%,2!N5N'V!NP:9;&#L5FC5#L/O M46_\'VSQX"4 ?',"W)NVO/KQFU;?8H/H0/LG;TI 8MNGKU+U'__ 1EVTF;&9 M.HCE[4]!YV;Y;;EZ6L8#BPVUFZM1T-A$;.Z-67/"A?[,/73/` <[3]]]<"&- M4X]XTO0" P7URWB/E!/)+JC.E%KI> 4JVOWRC;C$T<I+CD\TE$$2_Q0U\E/] M% ```` `S*NQ-"'K-L*A` ``) L```<``````````0` `("!`````&1X.2YD M96902P$"% `4````" !RGT4VIC-"YY%Z``#I2 (`!P`````````!`" ` ('& ` end
Feb 05 2007
parent "Jarrett Billingsley" <kb3ctd2 yahoo.com> writes:
"Jarrett Billingsley" <kb3ctd2 yahoo.com> wrote in message 
news:eq8knd$30ah$1 digitaldaemon.com...

 Clootie at http://www.clootie.ru/delphi/DX92/d3dx9_29_dll.zip .
Oops, that link is only for the d3dx9_29.dll file. I guess you can't get the old SDK libs anymore. Well, you can give the October 2006 ones a shot..!
Feb 05 2007