c++.stlsoft - problem between COMSTL and DIA SDK
- Jean-Marie Auville (17/17) Mar 31 2004 Hi,
- Matthew (7/24) Apr 12 2004 Jean-Marie
- Matthew (8/25) Apr 25 2004 Jean-Marie
- Matthew (874/891) May 02 2004 Ok, first thing: there's nothing wrong with COMSTL's collection_sequence
- Jean-Marie Auville (28/100) May 03 2004 Matthew
Hi, I have a problem when I use the DIA SDK interfaces and the comstl::collection_sequence provided by the version 1.7. my usage of the collection_sequence is the following : typedef comst:::collection_sequence<IDiaEnumSymbols,IDiaEnumSymbols, IDiaSymbol*, comstl::interface_policy<IDiaSymbol>, IDiaSymbol> com_dia_symbol_traversal; when I run the programm, I have a problem with iterator begin() const method and the following statement : hr = punkEnum->QueryInterface ... when I remove all lines and I write only return iterator(m_i) that's work correctly. please, could you give an explanation of this problem ? may be I don't use correctly your class comstl::collection_sequence ? -- Jean-Marie Auville Courrier électronique : jauville infonie.fr
Mar 31 2004
Jean-Marie Can you send me a simple VS.NET project demonstrating the problem? Cheers Matthew "Jean-Marie Auville" <jauville infonie.fr> wrote in message news:c4egbt$1kv5$1 digitaldaemon.com...Hi, I have a problem when I use the DIA SDK interfaces and the comstl::collection_sequence provided by the version 1.7. my usage of the collection_sequence is the following : typedef comst:::collection_sequence<IDiaEnumSymbols,IDiaEnumSymbols, IDiaSymbol*, comstl::interface_policy<IDiaSymbol>, IDiaSymbol> com_dia_symbol_traversal; when I run the programm, I have a problem with iterator begin() constmethodand the following statement : hr = punkEnum->QueryInterface ... when I remove all lines and I write only return iterator(m_i) that's work correctly. please, could you give an explanation of this problem ? may be I don't use correctly your class comstl::collection_sequence ? -- Jean-Marie Auville Courrier électronique : jauville infonie.fr
Apr 12 2004
Jean-Marie I'm still hoping you can send me a small exemplifying VS.NET project. Or have you found that the problem was elsewhere? Either way, it'd be good if you could let us know what's the status. Cheers Matthew "Jean-Marie Auville" <jauville infonie.fr> wrote in message news:c4egbt$1kv5$1 digitaldaemon.com...Hi, I have a problem when I use the DIA SDK interfaces and the comstl::collection_sequence provided by the version 1.7. my usage of the collection_sequence is the following : typedef comst:::collection_sequence<IDiaEnumSymbols,IDiaEnumSymbols, IDiaSymbol*, comstl::interface_policy<IDiaSymbol>, IDiaSymbol> com_dia_symbol_traversal; when I run the programm, I have a problem with iterator begin() const method and the following statement : hr = punkEnum->QueryInterface ... when I remove all lines and I write only return iterator(m_i) that's work correctly. please, could you give an explanation of this problem ? may be I don't use correctly your class comstl::collection_sequence ? -- Jean-Marie Auville Courrier électronique : jauville infonie.fr
Apr 25 2004
Ok, first thing: there's nothing wrong with COMSTL's collection_sequence
template. Phew!
The problem is that you've specified IDiaEnumSymbols as the enumerator interface
in your collection typedef, as in:
typedef comstl::collection_sequence< IDiaEnumSymbols
, IDiaEnumSymbols // **** HERE!! ****
, IDiaSymbol*
, comstl::interface_policy<IDiaSymbol>
, IDiaSymbol*
> dia_symbol_traversal_type;
I can see why you've done this, because IDiaEnumSymbols is also a COM Enumerator
interface, with Next(), Skip(), Clone() and Reset(). Clearly MS have done this
as
a "convenience", but it's a trap, as we can see.
The documentation for But IDiaEnumSymbols::get__NewEnum() states that it returns
an IEnumVARIANT, as we would expect from a collection. (See
http://msdn.microsoft.com/library/en-us/diasdk/html/vslrfidiaenumsymbolsget__newenum.asp.).
If you change the typedef accordingly, it all works:
typedef comstl::collection_sequence< IDiaEnumSymbols
, IEnumVARIANT
, VARIANT
, comstl::VARIANT_policy
> dia_symbol_traversal_type;
You then need to adjust the dump_symbol() method, using the COMSTL interface
casts, which I've done in the attached code.
But there's another way to play this. Since IDiaEnumSymbols appears to be both
collection and enumeration, you could get what you want by using the COMSTL
enumerator_sequence template, as in:
typedef comstl::enumerator_sequence<IDiaEnumSymbols
, IDiaSymbol*
, comstl::interface_policy<IDiaSymbol>
> dia_symbol_traversal_type;
This directly uses IDiaEnumSymbols as an enumerator interface (rather than a
collection interface), and also means you can keep your original function.
I've included all three options in the attached code, and also included a
listing
of the results when run with MSDIA71.PDB.
One last thing. You specify "true" as the bAddRef parameter to the collection.
This implies that you will be releasing the enum/coll interface retrieved from
findChildren() yourself, but I don't see that. In production code you'd want to
either release it yourself, or specify "false" for bAddRef to "eat" the
reference.
btw, would it be ok with you if I used your test program as the basis for a
COMSTL sample? I will, of course, use any suitable copyright notice you wish to
provide. :)
Cheers
Matthew
"Jean-Marie Auville" <jauville infonie.fr> wrote in message
news:c4egbt$1kv5$1 digitaldaemon.com...
Hi,
I have a problem when I use the DIA SDK interfaces and the
comstl::collection_sequence provided by the version 1.7.
my usage of the collection_sequence is the following :
typedef comst:::collection_sequence<IDiaEnumSymbols,IDiaEnumSymbols,
IDiaSymbol*, comstl::interface_policy<IDiaSymbol>, IDiaSymbol>
com_dia_symbol_traversal;
when I run the programm, I have a problem with iterator begin() const method
and the following statement :
hr = punkEnum->QueryInterface ...
when I remove all lines and I write only return iterator(m_i) that's work
correctly.
please, could you give an explanation of this problem ?
may be I don't use correctly your class comstl::collection_sequence ?
--
Jean-Marie Auville
Courrier électronique : jauville infonie.fr
begin 666 main.cpp
M(R!I;F-L=61E(#QI;W-T<F5A;3X)+R\ 9F]R('-T9#HZ8V]U= T*(R!I;F-L
M=61E(#QA;&=O<FET:&T^"2\O(&9O<B!S=&0Z.F9O<E]E86-H+" N+BX-" T*
M(R!I;F-L=61E(#QC;VUS=&Q?8V]L;%]S97%U96YC92YH/ DO+R!F;W( 8V]M
M;G5M7W-E<75E;F-E+F ^"2\O(&9O<B!C;VUS=&PZ.F5N=6UE<F%T;W)?<V5Q
M=65N8V4-"B, :6YC;'5D92 \8V]M<W1L7W9A;'5E7W!O;&EC:65S+F ^"2\O
M8V]M7VEN:71I86QI>F5R*"D-" E[( T*"0DZ.D-O26YI=&EA;&EZ92A.54Q,
M4D0 ;&%S=$5R<F]R(#T
M;W( /3T 4U]/2RD-" D ('1H<F]W('-T9#HZ<G5N=&EM95]E<G)O<B B56YK
M($Q05D])1"!L<$US9T)U9CL-"B 1F]R;6%T365S<V%G92A&3U)-051?3453
M4T%'15]!3$Q/0T%415]"549&15( ?" -"B (" (" (" (" ("!&3U)-
M051?34534T%'15]&4D]-7U-94U1%32!\( T*(" (" (" (" (" ($9/
M4DU!5%]-15-304=%7TE'3D]215])3E-%4E13+ T*(" (" (" (" ("
M(" (" ($U!2T5,04Y'240H3$%.1U].15544D%,+"!354),04Y'7T1%1D%5
M*3L-" T*(" O+R!T:')O=R!I="$-"B =&AR;W< <W1D.CIR=6YT:6UE7V5R
M:6YG(&9I;&5N86UE+" -"B (" (" (" (" (" 241I841A=&%3;W5R
M8V4J*B!D:6%$871A4V]U<F-E+"!)1&EA4V5S<VEO;BHJ(&1I85-E<W-I;VXL
M( T*(" (" (" (" (" ("!)1&EA4WEM8F]L*BH 9VQO8F%L4V-O<&4I
M"5]?=75I9&]F*"!)1&EA1&%T85-O=7)C92 I+" H=F]I9" J*BD 9&EA1&%T
M85-O=7)C92DI*2 -" D)('1H<F]W17)R;W(H*3L-" D-"B +R\ 3&]A9"!T
M:&4 4$1"(&9I;&4-"B :68 *$9!24Q%1" H*F1I841A=&%3;W5R8V4I+3YL
M;V%D1&%T849R;VU09&(H9FEL96YA;64N8U]S='(H*2DI*0T*(" ('1H<F]W
M17)R;W(H*3L-" T*(" O+R!/<&5N(&$ <V5S<VEO; T*("!I9B H1D%)3$5$
M*" J9&EA1&%T85-O=7)C92DM/F]P96Y397-S:6]N*&1I85-E<W-I;VXI*2D-
M<&4-"B :68 *$9!24Q%1" H*F1I85-E<W-I;VXI+3YG971?9VQO8F%L4V-O
M("\O(&=E="!T:&4 ;F%M90T*("!"4U12(&YA;65"(#T 3E5,3#L-"B :68
M*$9!24Q%1"AS>6UB;VPM/F=E=%]N86UE*"9N86UE0BDI('Q\("%N86UE0BD-
M86UE0CL-"B 3&]C86Q&<F5E*&YA;65"*3L-" T*(" O+R!I9B!T:&4 ;F%M
M92!I<R B7U]U;FYA;65D(BP ;6%K92!U<"!A(&YA;64-"B :68 *&YA;64N
M9FEN9"A,(E]?=6YN86UE9"(I("$]('-T9#HZ=W-T<FEN9SHZ;G!O<RD >PT*
M1"AS>6UB;VPM/F=E=%]S>6U);F1E>$ED*"9T>7!E260I*2D-"B (" ('1H
M<F]W17)R;W(H*3L-" T*(" ("\O(&UA:V4 =7 ;F%M90T*(" ('=S<')I
M;G1F5RAB=68L($PB)7=S7R5X7R(L(&YA;64N8U]S='(H*2P ='EP94ED*3L-
M"B ("!N86UE(#T
M;VQL96-T:6]N7W-E<75E;F-E/$E$:6%%;G5M4WEM8F]L<RP 241I845N=6U3
M;VQI8WD\241I85-Y;6)O;#XL($E$:6%3>6UB;VPJ/B!D:6%?<WEM8F]L7W1R
M*2YC7W-T<B I(#P\('-T9#HZ96YD;#L-
M" T*+R\C(&1E9FEN92!54T5?0T]-4U1,7T-/3$Q%0U1)3TY?4T51545.0T4-
M9B!C;VUS=&PZ.F-O;&QE8W1I;VY?<V5Q=65N8V4\241I845N=6U3>6UB;VQS
M+"!)16YU;59!4DE!3E0L(%9!4DE!3E0L( T*"0D)8V]M<W1L.CI605))04Y4
M7W!O;&EC>3X 9&EA7W-Y;6)O;%]T<F%V97)S86Q?='EP93L-" T*=F]I9"!D
M=" \/"!?9V5T3F%M92AS=&QS;V9T.CIG971?<'1R*&-O;7-T;#HZ:6YT97)F
M86-E7V-A<W1?;F]A9&1R968\241I85-Y;6)O;"H^*'9A<BYP=6YK5F%L*2DI
M+F-?<W1R*"D /#P <W1D.CIE;F1L.PT*?3L-" T*(R!E;&EF(&1E9FEN960H
M;7-T;#HZ96YU;65R871O<E]S97%U96YC93Q)1&EA16YU;5-Y;6)O;',L($E$
M:6%3>6UB;VPJ+" -" D)"6-O;7-T;#HZ:6YT97)F86-E7W!O;&EC>3Q)1&EA
M9'5M<%]S>6UB;VPH241I85-Y;6)O;" J8V]M7W!T<BD-"GL-" ES=&0Z.G=C
M;W5T(#P\(%]G971.86UE*&-O;5]P='(I+F-?<W1R*"D /#P <W1D.CIE;F1L
M="!T:&4 <&1B(&9I;&4 ;F%M92X-" ES=&0Z.G=S=')I;F< <&1B1FEL96YA
M;64H3")-4T1)03<Q+E!$0B(I.PT*"4E$:6%$871A4V]U<F-E("ID:6%$871A
M4V]U<F-E(#T ,#L-
M4&1B1FEL92AP9&)&:6QE;F%M92P )F1I841A=&%3;W5R8V4L("9D:6%397-S
M:6QD<F5N*%-Y;51A9U5$5"P 3E5,3"P ;G-.;VYE+" F:71E;7-%;G5M*2DI
M('L-" D)<W1D.CIC;W5T(#P\(")C;W5L9&XG="!G970 8VAI;&1R96XB(#P\
M('-T9#HZ96YD;#L-
M('-Y;6)O;%]T<F%V97)S86PH:71E;7-%;G5M+"!T<G5E*3L-" T*"2\O('1H
M97)E(&ES(&$ <')O8FQE;2!I;B!T:&4 :71E<F%T;W( =VAE;B!W92!T<GD
M=&\ 9V5T(&)E9VEN*"D 8F5C875S92!T:&4 475E<GE);G1E<F9A8V4-" DO
M7W1R879E<G-A;"YB96=I;B I+"!S>6UB;VQ?=')A=F5R<V%L+F5N9" I+"!D
`
end
begin 666 Results.zip
MV[:V?L^,_D.?]_2AMM/L[DRG,R )2:AY*PE*=EXPLDPGVI$ECT0GS?GU9UT`
MXM"IU(4LLZH()8SXN+G?/!WV3TW]^+0W\ A.(BEG1J8+&6>YC.!7F$72J'2:
M69%5.;3F119*6.U<BAP&T<7M^_?&/.]VJ\?ZOO/37) ?Z7TYWMMMA<RF;HG7
M\M:(62$E;IO*%?3K+]:$LM &=\J$Q6VN,Y$KM]:IBJ56B73WC-"Z4$&EI=&W
M,)+ =>6*-&4JM"DUO*+4*H0!RL-Z7J_NZT.PA2>[,K\RP[OM'F2%R;.EQ+^Q
M"MV:S]REJ>AL-HLER >5.2H6A=5F6H"4U[P`G& 5QR;7A;F)8:I:!+$LN]-Z
M:[J== ;[, 7!R5 FL!>O>,&OYDPGU/R,A6PNEMTK-&.8:YK S.E7-DUQX^"?
MFU#FN+FH6V""HTW0/U Z$3EN*IA"),E'Y:$1Y6T:TN;"F%$\TS+)X].+N0(C
M'AX;>.C+:FO6^UU3_]TX$_0^</02/%O)FEJ5KJV0BRPD[?>VK&-3E6(F_5OF
M];<J!9T L?Z9W6(DP>TIYV$A80^MF>%X%%_ZKNJT!07X?*P/WL,K!3MQV-4-
M.*EFO]YOR\WN<]FLP'7<;6NGX?!N\'KH^'Q4RRKM)L.+QDW')6-+F( .1F"*
M-UJF):RI]-M$\ZF*V(BB$+?80G&P.+]3&6D]S%QEVSI<K3_5(:C/8;]%LRL7
M$!3A-KY>WI"IANB_PRQ).$)9EPON7,M.J+C1<3:; J27/G3<:!8JMH+4%49[
MOHLV%0KP$ZT S>+"T%)A*7YM<5=W::48!F"3%AS"3YOMH^CP50334U,%*Q<5
MQ(1":90/1%6 "4%603Q029Z!:B-(*!0$++3W/ -IQ6X1V70*L"&,55[,4FJ$
M)\1K*'OOF$I0J5!GP9^NAP5U42&65H]O9($[!A**(#BJN*2EV[>86!0S7+:6
M,Q)0I,IK,Y,9^C;8FJ?[.[,A\UEMW[^?KXZ?PNWJ>/S]6O_\RQ\T0)CEMV 3
M#IT-U
M\E+XD"I2E9 EB#E;>FC0V<-+<B<6TU'T8T"%IO1G%K#TH"F"$(<-!E%1%W[0
M0)$,JMD\RZY[>E:J60JPI42W3 : ,D1 VXDA*H+EZ]7A8]W Q:I997?_K=?-
MR9W.!:Z5%N1&0\6%/QV5M=!KN=DI<&[SIGE2NX<][\ L``7*8P_L64_09G*A
MYR>B),?:1A346!. 7R[+"H$-+ZMG!0 98&,?MO>KICGPWBX"4 YS\:ZAF]LO
M^!8<!FXO+F0(^EID<P7+B.X^%E]6BQ5 O#N2 PA 4;Q4.E<X2)F!LH![`;=J
M4]33$L($[ RI:U]WAT#K-8T,83V<]X[?(P?]Z0")0?EU`]+YT6;<<1' =D."
MH$;^[9A1^]=+45:%1'MSKAH2$\8/C"R<=.((,LX2+%T"+I$I)'I6UWK ^(*G
M!/8!.X=PY.OF4 <>RN-5*::PX,($'30?`M!%I<1YT/ZB`OEDEWRL!PP)PA$?
MO'M^>/A2'YC4>+ WQYKR"0H%&I!8"V2<=[ [=0HX?<N-)660H:D2OZ*K2[<B
M:V WGN$>!5M5-OO#ZF.-,27?$_P(]O??.*[X)KP\D]C\9E[7[S_?Z6=6PYNP
M/:$I`"3HJ)Q7OTC=)'&4)>G^OO87T7[]_%COFBG('/_])S><HU;:3<FZ:90(
MS:+:B./ C74)*!$VPPF&]Z24886)V6D6TH/U9AIG0E]<_ 8_XTA_E]&\,Z_H
MQ9RYCMY0Q$% HO.D?)*7:(/*$07?]C8PSI1AI ! ?1QMD1J<>*4)U-TS>D"
MI[%]*.K5%KG0^75LPXQ=%,\Z7$* T2Z\SU424C0Z2ZM>7;(LV'%THC3B(L:B
M_&)1W; \P4?BP?4 #B-RP"6QQR?"#QD
MR A+*[T8TZHN.L?1059MQH.1N,RF.D(\0/:V?8CJP^8+<OP8(0PH35YI&RSA
MF8_WZQ7?9MF!R4 2!*N/Q]U==TD/YM6/F8M?7M^Y]]S%/WSN\D<F=_5"9W/Q
M]L4>O[[8X]U8CPE"(H"=:02)(8* ?CQ (RATE5O+L)[[YC]O+TT&CKIHHVXH
MPK DZH'T&#QLQS.6^C9NO</Z:0,8H_Z[YR71*6X>Z_7JZ<C(W5IAMHAO.^6K
MI1TL"N(SAFH;%Y%AO]4FTR=N:.[(&9 ,LG3UX??GW7'S<5??_[3=[S[^]*^?
M_?7QT_[0_/2O/WZD)YM]DD60HX/[ %B,!LP%XC+\M-KMZNU\O_\<KK9;ST+E
M(LU*FXUZ+IH224_-75FG" F SD(`T\17V, '^YQ"`FGS$I2&3"M,'/T>9FY;
MMO.D.!HCQP2RA+!77KKI!41.5)2WX6\`AE6L2\L=BOLOFV,]WV_O:ZY[LI)+
MT#RQ-5D]G20+X\D'7T!>#D:,X9WIO4A.!2P9XE*(=GU??]FLZT?H*ISD$6YH
MMM>B? R*JD1(BU 6I*R5Y\):^V=_X0X.M-'. \I9(2(B5C4N<]:2IP6RU ,>
MPK)A(D+N#G=0G]2![8CDBGSI<C2P^G88G%L(0 (<30+P&?0&3C,A9>JOJDH!
MA4-R'L>]!)TU%I3.K:$E'!#B9Y
M&N:<E9 SLA1HOP3+B\1'3THK/H2354$#LU R9NXX253FESA*-,*36 L`42("
MUZ+4/GR'ANL`]A5+#C[ \'$.IN4A75:(]YSWXA1"X1F!ORJ(4;TA)F^^KK[4
MH"EC,9!3XP*CIPJ[=>T^KPBO5L73.GMJ-OO=\7L71 2AG4<79;:S'):(6B^,
M$P,' ]XV9:8$*<RQMJAF[?E)UVYVAH`H<];B&4WO>HB-F,Y` 7"=2946*1A
M7&>:7PEV>(WB['&'C D3<0Q>)*):; " VMA$5Q AV2]J;1\RB5YSCN+UM"/7
M>GSIP40E.!)*H2 G IZ0)URY]7%.CT>>B.\M,I% QL+K1&';V!X\/SQ >*!Z
MCJ\?RR1[.<+%O\>3A"LT\4_[8\/Q"! \<_6;W4=;=.+322-W1II0\T2%651&
MR%&")Y>Q+;+ .R(U4JCJ09FVK8=JC9E)<)4`;A!)M FP-05=!43W]B:.3.S)
M8XX#S(4J7K[=OMV6R*#M!FFAEDH$03"5>/X&UARRT$SQ3%WK=;,D,8Q(^/!!
M>:[Q)0[SY0Y4T"O=K7*TI2](V 7*2X)JNB1*8O-(M3O+21"K0B:%4HQO\[FM
M,[JVMI9I=^JT01:Z]WM043M;,[+AE YK%3BJ7 L_6'YSB5F%$O!\8'^M&Z/
M_1WCOU%0:-%5E7(L:0NP:"48K2&5*LC_43G>E139" 4_Y*":G0+?(V?F!\ `
MEWL?[8JO'D4&H"S7CKW3%VWH[1T">.MA*ZA)I `= : X^: ;[/=Z1U[<8;ME
M*Z 6]F0IB'_1`0IH U0%=Q3/()AT8\C <!J17GSR!_:G*G!'>JC%8C);W!;V
M!XZ(2=< IG)0B7Q-EE6B<PS(PG[1-(?-W7-3OZYE^\!GS!997 %JM?"2"_+0
M'UF>9'4X?EIMOW^U?9 >-O7N?KK>3=Y0X8S4AH+QF#XAXV7D
M<Q=>M51Z;C$;5H#N]U^G^T,`/R!V5>I'&L_.`%:/2H:& L4+>YLE0U9AQP?G
MC6SCW<ZTAA#A&SK]$&_N&/+F920Z^V7=D(.08(DIV%8/2>(YG6C>.1]ME<L3
M52,G(7VV=R;1.SF^??X`(C+ 6%SK5 A/SD!:Z 'YF(>_'BEA,1S^S:9N\RW(
MRGY"- I47DKSEI-Q`KF/I5;G>.8EF1_M!VT ^#E(`$(^P.2H)<CD8%X:`(**
MKPQ?G/2C_*\]S67C>!%>FC 7]?6+F&IR)-:8T5V8<$?5O #Y;0G`FN'Z ,F
MKDYK^KS!R EL&SAMV9?6:^,B_H8L_^J220K,.SRS-L6RQ(</ LL:.,CD3>?4
M1 0IGLWFJY0X`E1!!UC [?CSMEZ76P+J%%$OO=J**E+^2(D_>L&!WW\`8[D8
MO(:]PQ$[)/+3^G$D3??D<<]!OH Y+L9\%L[U;)P[!VZ&<N8]X1B,0SETY'W,
MBS^=$_)I%"(CR)D ;V9T-#F
MS;A,H_G,-W.C "]V'[M/MK^\(<\SG<<^YOL/7?P1E8;(Z[S,93A^X5G3X;7G
M((8`[GS"A.,>UF1*^9=9D-Z0XR/^:/)FY).P[B=GY&GM6FV ].933E=K4-9O
MCE!"C FT^.]>0]D\W_GKTT=.6\:^\)B,%);.=#S33(ET2(*#C$1N:RQC7/:N
MPOUV"UYE\]U.:'#E'&W;P2WDR*LDIX\<QS-R.IQ8T'>/A",AI(+CTU[X[9=_
M?0DW]"5'AJI 29 1%F^,V.L3P%0"Z'QG*<:_L\19T+>"917PIS.OJEJ WUK7
M<+KND&09NL(R$VS$J%A$B <>`"I4/")()(C:RSG$Z*4H.AWLKYZ% >W9+Q[Z
MWPZ (\_KPW%S;,!L-Y]QHZ*[C]T_;C+3&[N'E!F*>,8K846B*C<D)*1$G'9X
M:-/KT,-UWRFF8:K*V2+_5KM\NUK7`BSA2^T^;FCHD U+DVC=3L]*O?CXV1O$
MBK<NBP(M"R.0OL]%QKXHAK?E$69E $#JU2-L90"IML[ACVNA$C\=%R?* 5=1
M2JV7&-Z=JRTLG7-N/Y$>?%9VIC3=?HCK<L)0YEYQ.U<C*0^O5Z4(Y^ TH__,
M."P,H\%^8A2ADT&7+^5UM2G&9*3H3(F _;ZEGQ38QM.(=C.O5T_OWQ?UQ]WP
M?XI=[A22_9:J0.YMF"UZ`I8PJ--'F_;V/A&PQR&RY.QA!+SG3R,T[BO+0!1>
M)_S^L%!Q]?-WOT_\^<M^<__'__AQG-,/O\(MQ!VW)!:Y<]ZR&1SD_?_VWJRI
M_O=;F5GST(,&C-=W'A!=\Y25E965 W'&/'Z?+9Y \L55" M8;!!WU]8%Z O"
M8B > 7GKN)*HC_-YZ H"KU0*<T\U9H4D/I&U5GP'*->SK7"/&"26Z(6M JR%
M<I11HC<Q=3?.<GD]+F&;]V#KH=1*\B_\!V$<`)%]! N4AT6O+&H22ME7?'Z/
M;KG2D!&P)2;5NQI!8/-K-&&7Z&%DJ0W(;=UAHYM&<F=+"R[C41)S-,[&>YVM
M2?8MY;QQ QX"G0A!5 B$E"1XJ=5XM'!7&\_6FPP$T!:S9Y L P$(*MB7Z$9Y
MRB:&K;=7.Q,I`I JNTT;*8&:DC0;HKZ:F^?E33R>/V:=U1,R\:K$:%9+%/.3
M!8E)KDZF:6R9ZAR2KA.&1R+7`E/NU;UW58ES[85-UY&7['*VYN?1T(9]5VY)
M2%SWQ[UF.KD8HI:\Y_W=5%OESPW\WSR_2_^3BV>'M_CV()\DPGG>5ZEG7VT9
MD"J,\%!2**3QV_R*AAUH#T&0,K0OV6DQAB.>Z^CP$%U7B$,&4(.066!&S!2X
MS"V&=&Z8R0 <S)7X`(;E%5&SX+7XQ']RY'00^4ZZ/PW7J!'RWPFW<GJ'HUAE
M4\QVO%E*P3G^,LE9[BDMBJ8I!:/1U"UHZ `+?OY*-K% S>)I/S(N$V ;ZY_&
MW0%NV7&7VR\3<J2: 1J.F/2[(]=)LVRLV >J^X37' %9&*G^R"<D6"]4L"W6
M!YZF_<RNJ3PW)02;3QJ+.Q 6`%*V/A%+YJC84UZ%GSAMCAP*0V7OO)]HFC?8
M*0D^G4XTZ*= MT _4V5J;C1DD9(=Q^AJ.OY]-TP1Z.$YC]<J;MV"N+/*GIMZ
MG\2C5RK]-6P2TQ)?T\499% 7:= T624WR:/,RH]>SL1A8WTK %(RJ1ETR6_0
M2*8$3>202! A`BG_`W!4POEPA!]SDD4CE C*OL Z<\$P+3+1GEBT]YWY:CW/
MP=922*HKJ&!JF+3H ;X1H"4N'7_,B-8FV$K BRE9*08;U<?ZHL8%E%FB`9H$
MCT3*F ZKTO_,-2)OPC7-N0J91TV);VAIMU-A'<.ZXN)NT'U:W C*0HK.<59!
MV*"7?"J:,V)G_IVSIA*PXL8&+.?&L2<21^OU:MU?W6O7=[0HZ=B7%&9$)$Q>
M'A-EX(D51YKW6=2,T,R,B6'J<1%)(5:+\DPB`(1FD0:/=)_<N&"?6 K9+TO
M"YKBM7' &PS:PA:8`<E_0J*I]>-Y4:(SM ^P-R42#Q\H&D5<$595:TRJ4*Q7
M;ZE)YR%[9J1P*\S:&D=)Z/TT0"D9SXDN:XA-[3GOS.*N_?"X^($&,/"57^ \
M$812&IN+?Z^>2>:/'XVFRD\!QC!L\'*2H,_N9TG$T4E(9=/D6%KJ`<93+KL;
M.'D&62!VL\FYJABROZ\&>%6;8-\4M\W02KU2YE!2>M-'$ +(8/6F+;1;A(P<
MQI]8A6#PC (]6!.^4RT;FOI.U8A0E'5US'GJ6^0/RMRY)*U3^<0_'L 1Q^US
M")7ZK)OQ%$$MTX"D_27[+>AMPSKB5=V648,`,5%DO-VVBT_4:]P&Z1J.[K I
M\YMGL&IQ/;OY"[J $T46T7/=[L25!%^?-5H=LE$JUP_72#IJ]TQV$N)57K&.
M2GIP%FD1_1$H^JIP[^L8B$D5L=V$+.XNX?;*T+<$`MV\PE72E,MIV S*M8=6
M8A;G]!*4),#R
MP /F/N<*-$33TRN\Q+MH95C:BS-L_ ?,5A<IG(BK$F=.:$22X"XIJD.I^.H&
MVZ[*>J49RKE2-V8+(]*H^ZGKR(!KBVD*-K;);"'114^2II07Q>F:'V X.UD]
MO 1A,NW*GQO>)YHD!":%/(Q *5IQUR:D&;^X(R5).,J7B\UWX-ZOEG,BA1VI
M1A$/#G/7D76FRY^VO($T^X35CSS.L2P1'H4.(XN'FSG)'6XA+-A\.5L_CV=K
M%& >3MG>4K2A<35!DV]%&3Z49?C#D\%GA1+QVL6PDR J;4ILJ>Q" =*08-B[
M,46M)X?%%RUSX(!Q=QS6LP8,4;.?*45)_.9R3*5M>*B>+Y^RX&?(N)B, .$,
MFL.O0M)9W-#YYL6'*08% [$ETX) CDKMUA4,28K.B<H&&KF"U<6"P]&0["0H
MD&%W[ MC1]A9.5$/HSZI)UA'$FR?$'1P%J-O:^7AQPZ%0FE"8RY:P [)[W,R
M/%<A1DJQ6E;ZXB2_Y08=Z&A -&C2DWXRB*QI_8,1-APWM2_3/L.[BFEK:&PX
MIRE="1$-" 58E&9GW8"-)B\6T]FU)'BXA+?<!S9H&4B9VW\`T?J8F"5T640:
M$%Z4&-EDQ! 3#DYQ()3T(1>U`9:+-#OODIO& !=WY$M$XF?3BMZ8H<BH \<Y
M;X045FGH4 %HH#X
M,\_O0/A/6.1)XB&:?!%B"XXJC&8G ,?HLO8!.RC `V:8W:_R^2S/ /=A<\*$
MHZ&2^+#M6]:1\S; U83+[0LQ#O75G2-E7!#J39N)N(J"O 0W.,!!ZY+=OJ;1
M6!$Y!E]+0I4AUYD3$:F]`, B,GPWXAQT(E8:W)XF.:JCC=X"!R(,1;"-,&=+
M:%>AMP(T(>EMC17+KZ(%I CQ51*"_3;<5,'$NM3DDRQS.AXX<299>HI=0EHM
M27[* ;).CE42NX*KP+C(>$>N.R-Q"$24F\)X!G,VV\%\R8(K$3A]5$:_4.!(
M)'*1!#H2
M!"NVLQM&DA&[OTYL#C=!>,S7S0G:2DWJTJ2T ;'HL,V*ME&P4:<=M3.9 --4
MW\T= 5Q7]X81:'-&JR?9S1.G.4LC<C\_5QKX\IM<%9QDZ/]4O'MJ3 !X;6B:
M3L4>'D#JC[,?85XX`2W0?(&'P7RFFWY6:-2C>Z:#L5
M?H,\D8/T^+H`Z4; ,32XXH,4"XKA4EXM-%FMBM4/89KM!UZ"`;"4S ZA#N%9
MSLH7-J^N`KB6X72V7!--L3!!3"=O (8!;M^6]#A$04H`A3; 60>LL()$LFM2
MYFSSK#DL`X=IIZ<RV$0OG$9J66:UD4,R.V"TMSS7+)0K/;E.+7S!1;5TMW+$
MX?\V6]Z3L.JF:I1V./AT:<!0.G_W-R\3R"_I,(+9?Y\8)^2S%T71N/1,D9/=
M/OMM1B)VW,V>-Q?#AD:/7^DT57E)9O/\$K?#KNI
MG<+[Z3D[O]4!"(\="G>8+J7PTJ,4N&-N5=6?8"AZ3\Y;8!):' 2V3(YC2RK
M_P,2*?G*T!NH+7]0=R]XVHZ1%P<<58534=21;C\-6SI?SG\G25*+M:RI^.6Z
M0J!NQ)C.+O,5TSSCTB%Z-:=?=6 WI(=C;H?=\7?LQK ;&[];-XHNW2';/$(4
M_&8R2IJ=SD0(YNO.Y(1I/;4O/$ZL->M+'H-,!5&Y8!,H-1:*&O?/47G*D)U1
MS*1">3R=:U-)>)6SF>3UA$&3E&3P,[UA',6IJ11Z$E=M4'>[:Z[OX>NBOP(4
MUNDP2+N,`8YBTO?3[A[E$5SXG,SCE8=SR^^=-/*1:U(![/M+-_YR,58<&0N/
MAG5SSN()B;SBNPFZ#A5
MS_ E;2D![M)D'1=$UMV%(V. 9Y<ZV>9$:+)0NB_W +G:0+3#CFZVD;P4IFL5
M"G R#M%K3R _MT4C28$!B*0A;6K"-<(T$%UD7TWW0];4Y$W,F39?6I -J]F.
MPO/>L IH^FZ3DR$VMVM?7:;<KY,YFO>O44:D,&0\ "-CR(T%6((9=%52_O?X
MG14>=CMDL9A[WPQ=4L#H2DF6S)LE/;E+-=^>CNL$;G;O3<-K]#U Z[UZSI!A
MFN_ FJ B=RUP")O"IN2&AV^7SUP_ODUY%+.KJW$T!\-0.:AP3:6-*B2RU5T\
MZ(C>%%_"^:JD&,..L '>*P(;]RVH#Y9F.JF2Z:V>B8",-/GA(&QH*A"*;]6[
M'3'E/,!7E51\-.IR6+'L&I(4[>=V\E%<:41W8LT_:'$(QK_B^N9DX1"F&8ZN
M1XXF2G=YK"Q^%AO/"FW\]B1CQ\,3._1NV?6I/ SR&6UPQPG2Q62[`L9KZS/Y
M69_.<L/QK;T,A;Z%*(Z\MGM<H;:OQAH>:?:GTV9+(/RD*<R&:SR 1DCND:3-
M+8[Y9LM0LO N=ASJ6$H0$5+2AU75)QOG1>*KB(^B"5[W>Y-D0B(&EG4$I4JC
M^QW].9.OMJG<33M+LXW.F[%U40`NE9F(RN1YR/4!]W[NT9W!=P78]\ OQDL?
MWU!#U)(7,-VXY. TZ))8+'PTML;B,>;J7:6<82F/+0R,03F*'N4$H<F ?*RM
MN>8UVI2)EZC=\+?%.2KM$QWB"LQ\4D5"(E?G=$<A!]>"- IS^'.?<Q\?&4\<
MVOEL(>WH58HJL)B.BK?: 6+,*>HYV#GL37:%F\P7YZ),,6V.KB(ZHB2%14G%
M=[BK;B(MJD=ZY!](N!(%&<'. JY9JSHI<7J!SV:4&B9?$L03 W7D+QO&U($&
MB)[8<%A4CC8AGB2ZLY: P5?3E+C[=J")9$E2V;',FR,3GPU-IUGYMA>&A/'E
MBJ4,3(?9FH,LKA_9L8$,H:N #P
M:,.RND)Z 12GJ<$T+*?1VW>(&W&3-I5,J6NYR34S#DT) ,AG`0;S%3Q*`">I
M(<.J?4(GM+?,3MQ*-+3D,UF2DWLN^1Y,2M4)NK9.N9BE\9 !D&XZRH.;]H6P
M92JQOG"XLG[+XQ4C -J#P1
MJRW](JXEN4<4IPPQH5 DOV+>/VODG17G3=]>>S(T3(^,.JEA&FV]$&) ,)7R
MR;3A5S8"">"H.6RXMUMQ6LFGG#QDM
M"YL/'YPW?LE6 !WA;QN_6=HT3H20%I#R]I>NO+VM?0:(C<M^\TI[X% 6"1C'
MV$<U.2M=3%X0)6"*V,#UO?/^J-7L^_D7;\U,58OPAT+CMN!2627B!-7?;W)=
M LCOJ-(7F1>^X.E"H5SE1Y *DD01YTYZ'2_(.Q<G7;3;?<,PT:D^<^?^JR T
MG*&A['GA](4$E3QF39HN10&+YGJBA%COJY:IF9A;W)44-=+,>S5T6+,CET[.
MATIG1+ND84>BP6 :62\Q2,ASDHA3*'S(>.\45KV 4N3UT?RB-!V*P&-M&EW&
M;8D?<H7BXH%4C1=\$OX6!E"05< =PEX)G* S G4GF8+P<&P?Z.9O!T\Y.'VK
MLMP"D<^%=[DXF*T$AWP*])$$XO.V72GS^ MF*,:1UF&O[F'(G8$_VO?6"O<:
MU!*QWK79-N HH-0P+/E&!#DKCAHT3.'J)/BM&]F/=)IR=2A^RB#M/UR.J%!&
M 0);EG9Z:+?RC>I]$0T:,PP[*QH!ST$8JII$<,RC>ACHPRF94&'0P-3!O?)&
ML$IU$OYFE4W[<8O$>/*9J8YL/4P9GH5U%6O(+ 3Z8 HTI2D/1UKZFA-.YN2W
MI(>+KNH[R6TAGUC<B'0X(B4&V#I 4"+$3$:#L30
MFFA"&^5$HG!:)5?^DP`47!^^)RG>$X5G66/RT667YG26*U0<?TB'47,RO*0Y
M3[ZMUKD%=_A>=,.-:_ '-'16B!?HJE&<?G--EYNN 2G"BY007/G00P$JFI/
M6>4^2>B"]T;7? GT7&J;%H7,4\= W"G^`_N"RYX!_#E28.V60"W+C'O.,O 1
M,AT-O58ZA%" % 2>XDEVLUHK$ZFJ8YKS"?W9C)MK4Y* ' ^<T$W5`8U53HOI
M.&9R(F !SCLQD$D1/1(1?YWLL_6 KN;'F6.H71TP\AW$9S?'<;[&AJ!;( ^<
MZ_Q.B-0^ZM4E^2Q_V B:A\YB9 G/?2BX[L%&_*5^CW))<W<F-SG`VX(+"U<
M"1B-``I3/3XW!><>N2&TE-ODZ0V:;/?1-]T&!=&F/$\RHBT:H-M:\<1*"I":
M2 :?^CH7>TTMT,\X_</,Q$-&H*Q\W%[=,MIID[.%<N D 2IHO6DE-R&EX,F
MF%L=$/\A]]P2C$4WQ1J$#G&=6/,UZ\0307=6(8 O=,<:GJ<UV\][4\-ZMALG
M#CQJGX
MWX#OG_W(/P6!FUH]>GOFC7_5??F__7B]:T/0_Z67S1Y/3R?9_9+ET$)5LILY
M?,27+RYYWHSQLETI^G*^SI^$-.?^$CV8AR56I 0JK=I.Q,"OU8)_DD7LYZD?
MFCY/`U )*FO>3?QY> 1IP=ZR]&)RTUMS:1)VM,8HMMRX!ZKF-6'A`Q%T`L)W
M (\]5%% #AE)/7C;(?X5<*;P?5D8DI0R-D.I #EM
M*0I#WHD-S_!1:)E(I >/]%PI&J/!?R&R$'>>'AZ><1KCY<WBB1B6E2,M'Z6Y
M3Z<O-P2VKD*>O[FB3?]\-(FGO8'F-;Q1(.(K%L8G>&6+)4KNF.MV-6"]N[IC
M9 +$974?)C[3^GZ/2?HS!V?U]Q,I*J^+>+<=,WRT*71'(^"RK=/3U2E<WV42
M14>F<IR:5!&"-SX8D.PMY8%U3O*G:]V%NQY&CNNYE(0C[C! )S(?9 AH&0ZV
MKIPA7Z&]! 9(FI*^9;<8'&* C1J&;AO<Z 2)2F)VQ]ZWHR\MWW [0M!D`EK%
M'H_PW V [X,>HC4E?(FMZY +$BFYQ=07;^'2&;5"^HY/3L'QEL957:-]YIN$
M&Q#F&FC^+T;SL+M)#TPJ";_H1J3"R61PP[:1!UUM WZ5<L8>L+T<,B>0DY4<
M+NS'1;R[JW5VOUX]+6^GZ]ER0]NZ<J3KH"M'J_+347O4)\E?998?D1% I!3&
MU36\]%C6Z8U0Y_J^M5A=R^8,`Q[0XN/-`_ GO%NM'V:Y[J)04G<D]ZS$]S0Q
M:BP<I]S("%O=/II2Y/EL`D*(H[OBZ1QJ Y[.I.DDI$\X<9 'C-WH*E!<NAI
M*P!QT_2-T$TD3PGVC4:)V9Q((M;OWZ6:[D :-FYJF>O G3Z"1]5)JS $R$1W
MA->40-$N-,'*;Q%-85I:MWUMQYQ4C>([X=+GCV<!`JPDLJ(;E^P):41!'W.L
MTF<45.LYSS:-BO(34MME$N&IFYZ#VRA$5%+6Q.,-Q]7_DZKI01DPCTT[SM0W
M%FUH%K4)< 8)B9RI^T.5BZ_?1+2P7]5<S&<;K)U,>+.I`DM_NC G3(*0T,N=
MFRX*W.J.XH5C0&4JPA0O6-RUD)?!I\LV9FA)3^GGM&6 *G=<CP^:0V7 HH)L
M)MXJQ B!1-S9]GM IT%B`_>F4R1>5B8PFX2]-KE^T62,E-:/VS-&;:_NP6L<
M7]D*,<I=,KE^G"\SE)HW3<WG8"U86/>AXX'L/39(8 FL;0MA=,B!?K XDT/A
MA,.4.W&2-HO!K[PP#JRY=&UJ_OQLRQE.V/5'Y'=1Q(:%5 EZQ'E$1Q=-702G
MJP1N+[O3\2S_UB PP66)';-B#PO
M =%<8%_>1S $ $8ET3^#Q
M2-V'3AV#E
M%G?]V76&VEQ8+3MV!N#Z['PRNA 3:I*ZE$KM2I.K$SB +,*0YP)3,MPOD)+^
M(B[08BCA*BE3[QJV"S$S_JB1.U3'Q^WJ2-_]6:NKL[+<Z;MK;Q:.0T 1?3Q-
M);B:,QTJ2&[#N
M`0!M(+W!DT6/74\;SJV*+E/VT\$5$K+_? +%&(8UIX,,-)H,HK8]ZG8YLE,V
M3^95?:M4Y45P.F)KW(T[&KDB%8-=-GIN7*";XK R>2?XBL=U<PM,O0)S$%4G
M)U:COUH*5X)Q%Z=0?BH7S ;!)>W4I<W'Q]:,.W-T'2WGFHZDLE4EG ;F'O-6
M>4(.7O"*:W ZIDF)LDB.RN CV(S<"V>/W3<G\AG?])Z'"TE72J&B-9:3 Y2&
M_EA?Y,C,UI8A;,9N.PQ(.**SM=DX*\5U?03ML]NY:5>\G"75J/!FUB/THYE+
M3JE6=$Y.?Y-QA-0(NT/<Y%?K.<O$$6NE*%JB";V[`),<D(-V(<&[A&.W*Q<O
M< A#ISN1CXHUU(JG+>X2VV<F`T$>?69+*MUR:R<A!_1CP=W$A#NK`]J:,X2U
M3S>&)GJ(+*TA<7/I)55N.NL-PM&PY[>$T4"\-7)RCNO+4<CT]64DJ=!%IZGX
M7.8#CC
M>O;XF.G^()T8CND$HI.B+>BJ>6SXYP#CO<IY!>+1W*3D%;\_&<!+C$2Z (8&
MY/2["W).DM8SMD':';79K="THS5_3!_6V?]!V83UZD8N&8.:,9"HZJX%U/&P
M&T.7NQ$V&10)83L%9 DM? (-`GNK][EON,6R3)'I '12%J1*&/*+_Z6XJP1A
MTLI;PS8HZ97<LAC_`5-L*<R5]1 "/4SZHRGA+GRM^]=HZ/A\4/>:/]\KN^)H
M&[[(0GO=K)M)- :J1'GV=-[I;6NU=E ]S) T'QS XX$8(S&QK^3^Q2&(K6M>
MB3XVM=.;OU7I-AD1&X!1%,+;\,"QX2[V\,?_<H\W-K[HZH;O6DR)V3&VT&_Q
ML":(E B?1OQF'_"FXG%1;O!Y=-L6RJL+W< F?7630J8 /) \+6\802O?.KS7
MCC3IX0Z9"+\]BCILLCM\.P8<"(P-AAT!$</P&HHK&7XX=MPE3E:KW!/MC<K%
M,[7PC0;8BSL7ULUO>XC06-%\\DO1OWP%J/MHYLXR/Z$,"\F=RW-/ +G)8%$W
M&5KR'NC^0&<C9PW&#X]$0LX,CJ%%2NH1+3; OO ^-41_:=!U77A:.C8`3 -:
M7Q VE_ERA"QOH,EXA"/NXLAT]HU?_'2(F]S5 DY66P+MZ.E!OFT:_&E\GM-7
M(6!4`DZ0>-J/U(4<J0C )(!KAD C*.L[X"EIS&KB5VGN-PEHQH8KAX:S`(LS
M0G83 J>T=6I8E1#O
MPP(B0P((+7C7)=.D_!+:NQB2WUVD+E$"`O!JL3R6,-8#JP64
M-B(\Z]T]5XE(?SPLTHQL/6DFZ^U-8]!X55UYN;C!C5&&-/B<ZQX+'P$E"P>/
M)/PHV-0H[3+/[^;9XA;8?1')`FBB%^RSO5H\/2PAH)$LVB?Q?[CY62%%4\ ;
MHO?ZRW<")'GXO>1T\ N/,A?4Z43CT6?ZZ _Q'[PQXYL&,($E+SG\= \IA.;/
M!NF*(XQ+R ? .< ,X/=*_Q;]:.6J6H ?*2!WD5M\&X-%KPPY"2474$;AOC=)
ML"T7XGD,!QCI9)N;]?P1?<+GODNG5(1"1]ZC1WBE5D1S2;B01,LMQ1PN7,!0
M'Z)0I)!TDW'\P!E&IGFTH?0NE>M>D6$*XF0L;M;2[*KQF1OFX D3]AAJO&+4
MKRY?"C+ 4E"33U.+(=S/YKL<0DFL;(C;'$P9X#M2WO$\ OCLY)\O\\X<Q!:U
M"T*-6,/.,+)P3&9\ZRMW_Y +SBGI`P)S%$7J^*!Z7Q.R,ZY1LKKA<^'WTQ<G
M&H5VX\)PR\;9&GVA30[8HXC=8U^>&+'6;[;T)39E<Z3H35!85_;,U)AB-7UN
M=6P)=4O["-0\G]F]](?^"%L]4MMK`!(S1B"OZT:SZQ0GII'Z%I(/0(X!%XK=
MAG(K)T\I,8_6VX>Z[JF]15/5%!C&+]ABF1[5/#UKG]2D8>\=#OA)L_T9K5ER
M0C11&"R_NY:R6 U)/2S$=QJ:DZ4'+$[/H;,9GTJ99'\ TSAE6PCOFL"^I[GD
MBD,^&P Q<,85P6V$<G7_S?$-DC/$I!-9S2V%R^>+\2%522R80<3J0!H*8 ;N
MQN'>GGW>$BZ&I/79L&1;XLY\\PCN9XS/ -2AAA0CS?>)9!K"/9A?N=PH==\G
MT<VR\.+N0EC-=^XU/3S0":PUQT^%AL/=UW3KU1ZNNW :JPU1$#I/8OXCMS1K
MY2II<JE2 U_P'G&T]9)68!9!.:?+A7*'CJYT!\5P7]:$U3=I.IFRV_%LD^%N
MNB^:2$)-Z:U4GFO</\<]:!Q3RIT[ 8VE`3;J6BPFE!HR6$SBC9![R> 6#N
MKIY"`NA1V+%:0[NJNZH*\'QRV10,=!9:?)^MTUF>PPU6817'P ;K'5"=.%".
M]*7J% 3=P>$%.#HS(=4DQH%!+X7]:!5&W2XHTTJVEN^%)K<Y 4K.'5:V\9O0
M^YF<O$G-)TYN/\'D2+>C+P-D+ 2TR-Z#I:K23,=Z)J(T+UHLP!=\`^^(>/\"
MICU$IM*=.>:^6]P",.#S
M[EW<5A6(VDP8 8D>, U<P ^LV4*IH56(03J>KQT*SPH5*R/ *+19X<5=^^%Q
M\4.8="N\683%K875I!/C4S!)Q?]>!W=>L?2$'0W2>PWB<&D.'%%#JBV,0>1^
MF[!GX/%]C+B!'6 L`NAYG02V-._IML5.&FA]$G5Q_UA*5T8H1SX1 T[SOL9K
MB)M/^3<VZ_,;.B/YI1EV,D VP9(O4EHP,5X;`(;\>BUL8*C,VT!'6B0XYA.N
MZGPSET?W%OUY\7=%PW<[NW2 \.JXFD4S0X[[HA15FL)49/FBM]C>YRL[G)V
M]\HC5",M".7P%L 1Q1=Q&FF>1L4Y7<4.JE_(!QF[RIT46<-LO].%VL*746-/
MH'.>H'2M(-1I316%K?2F!)T>1M'4G%"-0&S4['1<S[[H_HAV K3ADQNJ)'0V
MV&;=?-;I&" W<WB/>1([LB#H4
M!PIH,FHKB9$``W4\&O4_?3SS?> O!\%W`VD\1[?H)F3K1DKE6Y"H.7+>M$/;
MED*UR,I5O2"9,38TVGT"=D(\19,_]HI4.'>W:)FOG]750<[IZ I%`Q%H.ZLG
M.H]S?%44GL:2K]-8_FKI;.2$"63I09]E 4].+[8?;K74,:,58M8%_:O3BM'Z
M)#STQQN\AA^+5/JUN^X,I0T";0SW?WB3<C1U>AJUJ1DK(1"A_Q;E5O6RJ6%=
M8TM!JS$!S4WJNM>:?=3^_;\8YFCWV+).V2G5[>(,B3*8J_5T]RG7S"2>A>-S
MSPG*A285+00_1LX<\T^]5^+KHC.=9'<;[8,`VZJY-R&8[4W$']\?[7=O" [$
MUXGV2ZMH L3[-^9_.\\4FV=C/L;?\2U>!GQ?ON4>W=TQX(3U_I[3([7[ 9!/
M+[<\-P$-_+4_XE[0\)#ZP
MDDQ%**PHC;H2L[ZPF2WJ+<]2. TJSQ;55G8=M:6/*?!-8;19S9%'>]*VNAKV
M)/[U?8T>9H_'_B^ 1Q"WC! &$;\L>;KZ*UM.YK>X*\K"XLC <QSII6/QGWR6
MC)^N-ZUGD+*HFN[&TUDIGH'%_[B373_=)]S:\(23R^OL`72XUW8ZV840=7%4
M-UK/[XL"1,0\SF$I/02<-X)NP=I'X[=A]A\B'!E]?+>8W6^T*$53:E&>`IR(
MB=/3;M+2(\S$9-RR(B([PZBH]*BLM%4]=D:GEV"6GI8WQ\&O+]WYCZ?' F\V
M] ?S%\H_KHY]'WZ*PQLAT$0 3F$17RK1X> DGE$^67OUX)QM!>A+'"W\-C'.
MUZ)"?[Q^%%N'T CDYHD<[TT8>&VRO#U;L(1AZ_ X[<SO($NW,U^+BRZ%^ W5
MR$0V8O!=F*=XOJ5.$Z/>:7:JQ&"(&-O^3V7>%DP%DAB=B /\E&TVB H9QEK,
M;U N ;;:G?D,*DE63^L;NK0*4-8^V7SQ:F&R.,N)'K?!?!'>FH> #MIF:]E\
MRE=MALGF-[.%-+-^.Y_Q4Y_3GZ+*,]7ITU.:1!J4& KU0C* BH,Q!R$9 2V+
MOQ<DJ66&-0YF/+-;JUZN3 L$X 7=%?7P^?W$62.F"Z$S-Q_;-&I7(3;P9&)(
M(<GN60:X!WO2I7R/)RW 4="2OW3C+Q=C65[;XYK<D-M/?YQWW+2; <XN'AG0
MV:&<_ DM*N&9VL(&Y"06Y3*FLR2C/K&_6U/+BX%TU Z3LH><WA[4G^P#E/#V
MK.:B[C6[?ZHJ <T.N;RMU '#W3*&FK>!N\8^J).5K0CT8'L$NU=$O!6V-L).
MB+E>[ `ZJ]ZY+?#ASBBTQA)71I>U$*N- ZIW*(SK:F+1:CB_5L=J(7<SL[JS
MR8N<_CH DL7=:+QRR'=/%J/>.KFW;L8H:%U?3T\WSP]L)O4:/P7RG%7,M%L3
M8TOC5VT7J_6I<,JITX'HF"%5>,P3FODG% 5,X.A'ULPEOTEH\^N)D\NF2L$&
MVE9UP>AD#G*:%\(BG3?7Z2DRGCOS-0*CP$!VE\_"22=66F!8H5S:^/0L7(3V
MA1I3P.R![W!4A?DIAI,MYF+;6:O8D8))JCV7!4T&IK)*V9<BPFOM\ -EKH\'
M6"&5NS "AT?8Q_ 9JJW6!PV2ULAF3G\S2:EA;;*P1GT]).48;CY-EOK%?YQ
M!H\L8)(GNTW6-ZH#U2.-NHQ H&VSEDH1\A%;GPN0-S92PKD"(=1H`FTF+*FM
M1L4XLR8SQ%; <K:>S]#L
MVV==%)B02) 6=U8G,OHQN\D'I/8>^FZSK1\O-QF#FGS^/=LBM N-1C_R2L%)
M5O!!]5<*7BQOLQMV*.49N0Y85XUJ3]<ST V=+3YI^.-L]P2."W:,-[?B;HF\
MMM/1GP;:X]64A4/-;-E\G63)8#QZ8_2
M%O:T58LJJO769EOXI_SWLMX!=:4L!QMT;P.? HQ$AM:OT: 1^T8Y:3!0O%%A
MP:.JB[+?V5:M%C1)Z48+(BE.LOQG=\Q/CUF[TP[#KN%NT/25Y)#GJ\""$BVG
MOWQAK18Z"$6+.AAB9$D\'K!8055Z/[WEG, *A0JVD[>-TDY4*%T\;!/-^F,]
M*)E?88+9.5$DK95"3JE$RCDC;95/(BPN)> $BLJ>GHI4DG/<)K]L+'8+5^U]
M<9L JLL28"WEU:-6J4JMP&J(5XI]]-J:J>#F+3XGG.WLV_[U9O!E)OQ5K%/=
MW+POGQ25]?M_'?V___O[S6RQ^'^.WOQ_=2;[%55BGH!_JUI2$'C_\.YO5!$K
M_8K*( &B+BT\AI?>'&DLBB/W\#J
M1AO,UT5W-*]B1L314#YI/ZV/5.,]F>L/PQ]FD-2+EKURV>K42SA_S8X65U_O
MW/24JM1*M2.M>J_K3F)%8F*?D_(JYK)N[MU.O-=<2YUCYK64W?I\_ID5A? X
MW^N=_"T+[7)N_LJ5U3O;?OWZ-F ?OS*'Y375YS^BK*>X(^N]_L ]:^2IY11U
M,EA7LP7)856IM>I!65QBBX&4-5+G2 V4J]A2E5.M;N_K3VHEPF/_$_2*9K9^
MH&AFATB&CQ>K^QHQ[-^C7DM)./WR\4/:[TR%O7L,*W<QZ;39ZBNC^],D,>HR
M G6*FLV&O!Z]2ZOF?%^4,WW_P4D6L*;#G0%RGRQ8/--SG9ZV::>PJ?_Q["U/
MDDUN'>':=VK73#D]G63W_,*S4^'"L13(>H5&%YH5WUG C_3A-:S*1LF&0%FH
MP B_4ETUI#Y
MY"FTSS8D:15HI[PG57.437X!1)<N1\6%]62K*?-4GJ-X8?S"7<X44K;=JK-6
M5E59T%II4LD,5EU#SYQ66QLGUPY/QQ6S%:U M1=V:U:M0OMLPUAS3SOE/:F:
MH\I"5(.&\-+46&PGJWFB^-JMG:-HD616EWUOS:B1ME.5QF)7;K(\K60NJZVJ
MN71<7MYRG1-EFR4[5)GMEG.;E3A,F>U7J2(JK9K-?%P+17Q.QE$[;H)K]/,X
MX8[NI\V$_*M'(M=TTARG: BI`<] M]AO0!2?_M?FOT5X?/]P=K#DX2IJC?>;
M_+ 5MFY,+C)/__V_+!,W5K8W>)+MK0XR "/+[;-J0 ]_QWH"4^9&=Z[OM16G
M=.ZGHQ.U+L[33CR)V R5?:V;N4:%O=GR= $<63M<,MP*&<!$+C IW8 MN7J0
M[K1H4\&41S\>5^M<C^'G*CD4W&B.97B;Y.V N5BL;C0V;HL[=C," ^Q!^+CT
M?9Z>7DN/KE:,FL(6.68TTL]*ZBLM79IAG=V#H4'M YU\G?GF45CS;'?[S7/T
MWT+X'$]&;?XY[5T,/_/O5G_4%M]7\;3'/_O-EJRD'7T9\$]VX++*]3K )2([
MRMEI)UC]]"L;:[?QVP6"Q[C99G3.*()Y;8WZ`$(HEH9567!F!<%-IQY>W%U.
MDV^SQPP^VRM&FZ';TO[L.EO !^1/LO5WRLO.0%8?^36EUUXLQ[#B_&Y.6<:K
M5);[55W<L:G _TZPX<5\ANTE?\T?J2?W_3FX76>591""K^X\6]RJZ/7\>W:+
M_9JJ;VH"OH;9)H?YIG&R"9G.KE5M[056/5IFJ 3F&MW=Z:4CK2U<&)RWP6S)
M"" LU/Y&/4^^(>)FJR*_^JLE3LV%^)ADL\7;$_$%L$Y?']^(K^.3C_#YSZ<9
M5GXA/B#M'2:U&<'T RK!3ZH%/ZD:_.3UL%D5Q!D;ZPWUC_\?4\W1;//L`K(=
MT7JB_U-E-2LKBW8"\ZI! [^'=L3/:D5J'!=/AN!CX]Z2&1IC04B$'JX>^]GW
M;%$I:)0T`FQ/:<:=BT*,^*P;`7NP<I"5WB+&-D&L5JN)=B[!BJ<J7!(1K$R1
M /-1*X;=]QY6>7:[GQ2B.=5TEX49C,BRH6_ \)5]TYZL&*3#I&*0[0/H[Z9J
M;V3'\:MFD [PH ,HG1[]&BC%4Q3&>1%RU(5>Q_>?R>LT?/=$=X8.D</Q6KY]
MWRZTV^MY/F=G'W^*:?SVSZ?YS5_):BV?5SF_<]KXK35?SM;/D]GRGA,-;I:?
M6;I"%K:5X8JRR)"UR"9D$$U[HP[,"+T^(2:$[< FMGO1[Z?CZ23]TF].2:47
M1 K:O>;P/)JD43\:1,.I>+4"&&:IG3CYG)Y'(U8Q:-JRM,Y\30]</A.;;DQ[
MD(Y7_\G6*6#F
M?,F?&9.OR31BC8ZNV*#ZT24
M3+!F>-QI`?QV)FD[29/X7U':' TOH\DTG8PNIO!PA&.Z;$YH2/2 CF!M64<Y
M9Q]N]!-XN\1U*PY*S-==S.[Y<JHSQ W;ZP&T';UH0$Z?.\^R%*,Z.XS5?X.-
MQ7 >K6UA-Z+%K1:WR\V]&E>I!YV-VEWFNMJ4JR]L"N6%XSP"? 4)*6WI-/I"
MXTQ2(6BBHWDG)4P8-X=3,YY5"-N6OQT"-7,QB:=?TW]>-/OP?]1E<9/+&!Z"
M>JM%0?7F$,-Q`6_498EM!C=YIK"(V&3R;-D41-KHT Y;BKX%D8GF5E'_AF9M
M6)L0QW^CB! X24=()IY(DS;OGR Y^6&A+0G'^&DZB#O]E/^;YW?I[7QVDKXY
M?O\^??/FS3'P(99_R3-;R&/9%(MQ=U.HG["C '2D::V DOZ*'^[%ZFP3R>X[
M(!:&FZ).++_U3:+^J,UI-T/^D^^T,U%>[CQ';JU>5'?^XXEH'Z,YME/6,V0I
M%$G*F3%<AD"?($^RET#AR( RCJYAZ[?Q9F!T2B5X\XJ+,Y<I,N1=?>W!9=.3
MV-P),N0B&P`F)3P6Z5\6AJ3'G&"T>8S?*HE90Y#UK#Q)\U"J?1*%SF72_;*J
MVR=6B^T7"><"IGY^H,N4SJJ *[%V X")LU;$BI(.[(]/SO"4T,29BD)F.2O$
MLP:^1-[W9QX1*B?"R&X&5-[" ,ZLE_%GNR;P\=2-A<JTU[9J010UVB(NOJT;
MS.XRO$5()/'IY/V'L_H)IZ?$,MRZG!29I).*':B+3^_>?GAW],?985+?'RKU
MXYN#I1X?*O7#VT.E_OGQ4*D?3PZ5^D=ANSNE_GFHU(^%T%XS]3Q;9NO9`I.E
MLL,16^J?DNWC"V53ZA8LWY_O?U*^=P?-9ZS[^W=')P5 L5ORGQ\.F/S^CZ,_
M#Y
MY"ZI'PN/T5U2_RA<A9U2"XF*FJD>C UJ< R'_?'AYV6LW,<M,YJP5P ANZ3^
M],VD%&EA+X6)H'WG,Y1VC]X=GQR_0%9S [\]*J+E=DC]^/'H)+ 8NR4?OSEA
MR4'"9;=D!M4G!411Q527,?$>N8UU$PI8(-N6>_?FST 72U*VKU.4;%^FB^^S
M=3K+P52*KHFN*^$KG7BE8*\;&]#URKDA`5O#WE
M_7U=Z=U2A,=OG\X^*=QK\ 0W:2-L,1H!JKI==W]VK;';U+:;T9ZT/R6.V/=9
M:2.4 0+%WZ65% ZEEK%Y3Z$J;<"+0JGE]\H]KKE6U>SO[W$Z?OXDNIE1YD$]
M-W2,%[,CKJ)PI"0GCF([BTH*J6]U+/F%ZA&R0L-Z,&]9=>KLQ<=RZ&8"2G'B
M-2BD)[W7]! H24$= 8HT45%?N*22RONVN$C-5BNV4VO7!PI6;:O2/JX] BTF
MMQIB/, TO:X)WJ+ 3FY ?K&*ZKDA_:7JLA#V+U99X'Q2\I5'FF "G5,R39U5
M4O7 *2E2L]6*[=0YID(%J[95Y>RH/X(M)K?2:7Z(:7I=$[Q%`1WI$L*MC+Q_
MG7HD]OA[UK4-W?.K553/%=LO55=U'V\O5]Q_BJL*V+$,`7&$JP1YA!MYS2Q%
MZNO9!6Y_5MD:_D=?1U&E,?PKUY">7\2=UU-8Y]1W^(F%.J0J<8\)_G8*S$W5
MJL>7J*OG>SIXB.2B]LN'6K].7Q;.8"--"D_/#Y1>V(?RL6]3JY'',IZJ=WS/
M2:'V" 99NRXCN>F8AM7[>:C4 K8+1KIEC;[I""S(+M&^^LN7K7(?G5?/+9BM
ME;.4-5;1DM]6==N[T^1H:UM[/PG^=HJ12O5Z0F/6;U;5)M.XBU6H51YC(EF_
MV^JH_L 3"3)C^ZJ#C\57;+]-X'2$FBGI1:7DH ;*7;_5K].$K.M[M=+2+AYW
MM*2 \X5S5>A;T5;:3POV#L2I
MWRLPRCT`IXHO__]29O!.3^^SO/NX0MQH[^>?4GZ+<GMH=9 ]^,K(K^U[MLMX
M=EK)8DRZP]KN`[ZJ`WS]1FJCL=?;Q&&J_L7[?N!).31H[GB:[ 2L+[3M/%18
M/KO_THV_7(RIFA/GL-ACUN(L>ZZK8F-5IZ0J_5LT236G/PP4=JFCTDI+D<OK
MHF9PYQ[O8;C[`((Z]/HV8+%'0*VYE;9N<#OT^DLU=_AF_J9C>L&)>TEPW\>)
M?<'V_L>,\F?,Z4_9+37/W\/OGY^),PHIW'?.6;MSKF#J7FHHK[W">.O?&=YM
M0]:V<RVOLD?[&]4>X> `MP$?9.P?<FN=[N^V/]VUMK>A6O\6+;]HB_^C1OIS
M(5:AH[(J2U';ZZAP'Q6]XG[M=7C[!8Z:^'$'<#D(4,M]U5JLKCUEP%/HT1]'
MQPZF.DC^"OFVJS68IW*K+-/D^^QR!CEK]K36'!?CRAJSOLW*VB!6;Y%?I%CU
M["_4QA8=VF::*^&9EUGJ2I#UL28.V#I_A7S;U1K,4[W5.GVK-:O;8PEKGK=9
MRSJ XR[KBQ2KGOV%VMBB0]M,\\Y88G]+[:'8\]D]>J% -NF?SG;_.1FK];.&
M5L5.[03F/53FJ*3"P!YZ3=7M7LTK[=,>![9/<* O'[H= !P`A#U;B'NQ3Z(V
M0ST'Z)5II<);AS=V?R/:Y[SL%:)J6;O8!<8.L0^VV\"[=V"GH^+OT?S+-_L_
M=,P_<:)_YO;:(U6PUPWW"E!.Y1O%<:&IN7T7J9;UP'77[$3=J=SM7FA.[I;+
M-SKFV6=*H*V"G5:S)M_VX3D\V'0O*8&VRK%'U9KL5%Q N9P\G^XBVCXX#E2
M2L;#UVMEJEU
MJF"=`B_?CB?SUI5MMR2U]DVE1=H)-$S(8S??^6KIW0A[2 JU5V'C5*ZK9%XH
M8WNUS-?S:SXW1ES9#GBI"K8I^!/;W:F[NRU6K4U5:_GV`D06H-X_9,O<OUWV
MDQ1JK\HFJUI7V?Q01CXQ&"C=%7LL4BWK >NNV8FZ4UD/Z(LG=\ME-( C7OZ;
M[8#LE X:'Z0>-$=)7\IA?]N:BZ?0RH\S:<:5`/F+5;!-P9_8[D[=W6VQZNR\
M>LNW%R"2'('N>O:0`6_'PY78<UJPS6*.1MW:?#M2YO% BSVF!=LLQRQU:BL&
M!)D304"5*\8`!RA5.?>+M%"_-UO,;YU=7V'&MU]A+"GR8^GB`\[)6EB/G8 )
M[*$68F)7GD9?=H%2O2\)?NYG_1*>[:,Q7:U=5RFEL ]A1LY.)7VC4 5\_:V1
M6K!LZFEN/WXWBV8`7$8.GQZN60+. I[1J!EWD>]QLQ:=1>W7)A:;9)V\\!9
M3M)4.':VR+JKW^?*3TT[N%<N*+&C8^-B5'?0_%OZ]2V>/0/=["5K7'?9:Q>P
M%/BC=UR+^AW<`P#LOU&]-=OWPF$+>X;K=?Y0V,2+-=(.Y7#VCU7!CKGK[!*K
M+ <H7L A4-%,%:3M8QFW[O:^X.A '=!;5N9$=W/>47/ 6O&CHHH/7+4&0QW'
M5INSO]PL`<<`6Y6JLXD\=?H,R[V<8?^R>2Q)K[G$G [^_0R5U]^)NYG2WGJ;
M_51+R > ZQ<U ;L[O/T]37!6A6)I&F9/9B!KSH%5Q5%9`R_41" /&=FJD%X\
M [N:$7MA0V1[JZAHUCY62-]^3O9GCFOGR7C1BBP:>8_&DNH3Z*_-_$W5P0>T
M)%^D#A\;PE]5)=V=GVG HB3CF</Z\E9WB+)U2!1_S:_ 9$&%Z2W/LD>XV'U0
M>P;4PW>HO"?[U,G=R]3\$OJ,X48=$8R]9-U-N:Q\BM3K]?[RFJ(P+Z-YY+[&
MET^_\Z9?NR8Y,U5?S;?(;TU%6!B ]JP65^6=DXK]+I0U*)=5D#E\H Y[3/"W
MAT=-W+/7[/M=8] )MGSSCI%NO<4;L;R\G1 <TN%2"]HN1]?[K;'NM-;M7]W\
MM_/9Z2E$#V
MR*]5[22[GV0;W,&GIRS :C<BRW.<GDY7?V7+TK :-<%Z8<>[LYM\M7ZN&&/P
MHMOJK _+>>Z2*9D_/"ZRYGH]>S9?B$K28 T9A*YN8I:G+#AJ_</ZP,,TX\D,
MV &^>1 :SF[ZL_]^CI=W*UGF]!32,>;Q]CJ=+_-LO9RQ:( D$VQ8VI&91\*0
ME?/-V='WU?SV3.N9[)7;+N\G3SBK$M&?7U-M[ >?`H8H5#CZ4?XM.V $C"G3
M6&W9BK*-KH%^:Z]NLV!!/LUZ/=$/7R?JQ$*EO=OU-M$TD'M[?<NC/--NK5]
M<3RYH'I&6-S.<M5<43 F78Z$T?3+>[R/PNE%<4_7<HK;!=E\<51NDLUNL[75
M"/3 7YAG`T)H8X1:[,CYB\H%\[ 0N]KR27)K5Q-8.ZVDVI)DWD5Y3+LQQL *
MC. '+<*$.5\. S:RE\?I?;44"8'MR[2]6CP]+-,\'*V%PGF\>RD0:T^8H6-=
M5!''+V9IC'2&6QPKH(AX66K;5 W;Y0/A$M1293JJS)6$HZ(( B.W/I[DJTZ,
MCCUUAV+-?MCG5^ L9. $-J>.3/QP![D<$B00X:RL &T';*HD%-56E%9XWA<F
M3)PR_NS&=C<I;A\)KT%S>42P)R5=+-S!5JPB3;=/<!!913I3HD 7[U=,*JZS
M4HMM/4E<+_0K ?XM*6M%8CNH0J<'7 14*[6T\M(,%O[R1+090I[?S!9JG>R(
MMBU7N><,:EKS_))!S*=W;_[\HT)X$G63KX,3^9%.&[^EDW$[O;B(.^EY-(PF
MS6G4^ W/S]'D]'02G<?)=/*U.(I5E4PN980G)<UG]\U.9Q(ER8=W1K D[7.G
M%_7'&$^?_CBWY6'K^$VL=SOI)'JX[>UOE5(,!?7GF_R3>((H")Z>`MT%*^S+
M%RV_S]>PUPN^*]2E)[17#X
M[/$1#D3U%3B"+ 99[;22:NLF>_ ,M5(**RQ,A$EM'[_EQ)T9\M*7&Z>0/X\_
M'L7\E&$U9 ^K]?,`]L\M-"&SL(1M8\?GT(]T'$T2=F!0N!6?L\ZFO<[$ZG_:
M:UG_(8N>O3L>(.)[F%ZS#DL!%G,D9ZH2GL(PS*)"H#V9&F,)AK$;^.-[U$OB
MLVT2Y+#DA
MM3*T^;9:YULTX([I149"2TE551CF:YT]WZ#L2G]6/P*36R&Q= 05LXE;QP'6
M#M1:LA8R0\Y'U8Z$4_P L/NDO/YZH28YD>% O)SG4)G^M; ;K["I]/A#SI;C
MA[::'1:ZG/'A/"S,WHW7&=S^*0ARE&SNWYY0<#P9M;7 )#J?1'TK<1"/$XJX
MFK*KQ+ 5Y3>%FYI%(SQ5P9*05X'?P1LH/.SG0?D\:JP8E;UXI[;O=V%BL+NE
M6&=?,_ K5.QA0IV\>?=QJY0")G'%DA?+Q6IV2W(!^G?,!Q0_W'>RQ>RYDVUN
M& :^Z,?\)^VRS/GH*6?WI*<;ML73?F=TT>I'^-7J'Y\849[<E*?[V%VM'V8Y
M-C!_1/ZC*-7MCYK32EG23;Z^6^3:1[Z>L?D'ALOM+&<#S1]89I8S_\;NN;<P
MS*&+[&:IIWYXPU+GJSE.O?B??FF/IVD3K3V(%A^N;XSF\ODM]<N?;-2 ,FL-
M'[.&UVRIUP^;^XWQF<_N^^TT[HBO9#J
M^N2<G=3QL#NBW*-VLQ]-FRVG*JTC)S __>;D/$*-A_-HPH 0'^+9"G?2]FC8
M8^A+/TJC(3Y &+GP5:+))VS8/T]I%&G[SW V?P+K\F" Z9XFU;C?PKA]ECV
M0H9 ='D,GFT8W9LM;Q?96F:SPU$"G]#YHEH"T=-OZ]5_",FRT,7R/_/E[8";
MS0+_1^/08]AN_C9;4[SOZ['L\V+9 3%0S\(!O?_Z]Z/6K] W?C)*)'_:U(IP
M/GT3EXFE:/RVR1E(7<]NTRWB\" C=*C%:I\,4BS0UH.(>=CYF='645__/U!+
M`0(4`!0````(`$)(HS#ZOG"_DGX``-[E` `+``````````$`( "V 0````!R
97-U;'1S+G1X=%!+!08``````0`!`#D```"[? ``````
`
end
May 02 2004
Matthew I try this solution today and provide you a feedback quickly ! no problem to use this program as a sample ! thank you -- Jean-Marie Auville Téléphone : 06 60 43 17 53 Courrier électronique : jauville infonie.fr "Matthew" <matthew.hat stlsoft.dot.org> wrote in message news:c7408i$2te4$1 digitaldaemon.com...Ok, first thing: there's nothing wrong with COMSTL's collection_sequence template. Phew! The problem is that you've specified IDiaEnumSymbols as the enumeratorinterfacein your collection typedef, as in: typedef comstl::collection_sequence< IDiaEnumSymbols , IDiaEnumSymbols // **** HERE!! **** , IDiaSymbol* , comstl::interface_policy<IDiaSymbol> , IDiaSymbol* > dia_symbol_traversal_type; I can see why you've done this, because IDiaEnumSymbols is also a COMEnumeratorinterface, with Next(), Skip(), Clone() and Reset(). Clearly MS have donethis asa "convenience", but it's a trap, as we can see. The documentation for But IDiaEnumSymbols::get__NewEnum() states that itreturnsan IEnumVARIANT, as we would expect from a collection. (Seehttp://msdn.microsoft.com/library/en-us/diasdk/html/vslrfidiaenumsymbolsget__newenum.asp.).If you change the typedef accordingly, it all works: typedef comstl::collection_sequence< IDiaEnumSymbols , IEnumVARIANT , VARIANT , comstl::VARIANT_policy > dia_symbol_traversal_type; You then need to adjust the dump_symbol() method, using the COMSTLinterfacecasts, which I've done in the attached code. But there's another way to play this. Since IDiaEnumSymbols appears to bebothcollection and enumeration, you could get what you want by using theCOMSTLenumerator_sequence template, as in: typedef comstl::enumerator_sequence<IDiaEnumSymbols , IDiaSymbol* , comstl::interface_policy<IDiaSymbol> >dia_symbol_traversal_type;This directly uses IDiaEnumSymbols as an enumerator interface (rather thanacollection interface), and also means you can keep your original function. I've included all three options in the attached code, and also included alistingof the results when run with MSDIA71.PDB. One last thing. You specify "true" as the bAddRef parameter to thecollection.This implies that you will be releasing the enum/coll interface retrievedfromfindChildren() yourself, but I don't see that. In production code you'dwant toeither release it yourself, or specify "false" for bAddRef to "eat" the reference. btw, would it be ok with you if I used your test program as the basis foraCOMSTL sample? I will, of course, use any suitable copyright notice youwish toprovide. :) Cheers Matthew "Jean-Marie Auville" <jauville infonie.fr> wrote in message news:c4egbt$1kv5$1 digitaldaemon.com...methodHi, I have a problem when I use the DIA SDK interfaces and the comstl::collection_sequence provided by the version 1.7. my usage of the collection_sequence is the following : typedef comst:::collection_sequence<IDiaEnumSymbols,IDiaEnumSymbols, IDiaSymbol*, comstl::interface_policy<IDiaSymbol>, IDiaSymbol> com_dia_symbol_traversal; when I run the programm, I have a problem with iterator begin() constworkand the following statement : hr = punkEnum->QueryInterface ... when I remove all lines and I write only return iterator(m_i) that'scorrectly. please, could you give an explanation of this problem ? may be I don't use correctly your class comstl::collection_sequence ? -- Jean-Marie Auville Courrier électronique : jauville infonie.fr
May 03 2004









"Matthew" <matthew stlsoft.org> 