package.xml release generation
| From: | Greg Beaver | Date: | Sun, 01 Dec 2002 21:13:13 +0000 |
| Subject: | package.xml release generation | ||
| Groups: | php.pear.dev | ||
| Request: | Send a blank email to pear-dev+get-11282@lists.php.net to get a copy of this message | ||
Hi,
Just finished an automatic <release> section generator of package.xml. It
uses the Io class from phpDocumentor to retrieve a listing of all files in a
package directory and subdirectories, ignoring files/directories based on
wildcards * and ? (the same way phpDocumentor does), and then formats them
into a filelist with roles and spits out text that can be cut and pasted
into the current package.xml.
I'm foggy on the purpose of the <changelog> tag. Is this a requirement from
release to release? Is this for small changes to tell the pear installer
not to download the whole package when upgrading? If so, I think this can
be automatically generated as well by comparing the date of the last release
to the date on the installed files to get a list of those that have changed.
Unfortunately, doing a complete list of those that have been added requires
parsing package.xml, something this small generator doesn't do (yet?)
I wrote this specifically for phpDocumentor, so if it is not useful, feel
free to modify it and send me back the changes. I have not tested this on
unix. I'm attaching the source. To use it, simply put it in the
phpDocumentor root directory (or change the include statement at the top of
the file) and modify the stuff at the top, then run it
Take care,
Greg
begin 666 create_package.xml.php
M/#]P:' -"B\J*@T**B!014%2(%!A8VMA9V4N>&UL(&9I;&4@9V5N97)A=&]R
M#0HJ#0HJ($!N;W1E(%1H:7,@=7-E<R!P:'!$;V-U;65N=&]R(#$N,BXP(&1O
M8V)L;V-K('1E;7!L871E<RP@86YD('=I;&P@;F]T('!A<G-E#0HJ('!R;W!E
M<FQY('=I=&@@<&AP1&]C=6UE;G1O<B Q+C$N, T**B! <&%C:V%G92!014%2
M#0HJ($!A=71H;W(@1W)E9R!"96%V97(@/&-E;&QO9T!U<V5R<RYS;W5R8V5F
M;W)G92YN970^#0HJ($!C;W!Y<FEG:'0@0V]P>7)I9VAT(#(P,#(L($=R96<@
M0F5A=F5R#0HJ($!V97)S:6]N(# N,0T**B\-"B\J*B- *PT**B!P:'!$;V-U
M;65N=&]R(&EN8VQU9&4@9FEL97,N("!)9B!Y;W4@9&]N)W0@:&%V92!P:'!$
M;V-U;65N=&]R+"!G;R!G970@:70A#0HJ(%EO=7(@<&AP(&QI9F4@=VEL;"!B
M92!C:&%N9V5D(&9O<F5V97(-"BHO#0II;F-L=61E7V]N8V4H(F-O;6UO;BYI
M;F,N<&AP(BD[#0II;F-L=61E7V]N8V4H(DEO+FEN8R(I.PT*+RHJ(T M*B\-
M"@T*+RHJ#0HJ($!G;&]B86P@<W1R:6YG("1V97)S:6]N#0HJ+PT*)'9E<G-I
M;VX@/2 B,2XR+C B.PT*+RHJ#0HJ($!G;&]B86P@<W1R:6YG("1S=&%T90T*
M*B\-"B1S=&%T92 ](")S=&%B;&4B.PT*+RHJ#0HJ($!G;&]B86P@<W1R:6YG
M("1D871E#0HJ+PT*)&1A=&4@/2!D871E*"=M+60M62<I.PT*+RHJ#0HJ($!G
M;&]B86P@<W1R:6YG("1N;W1E<PT**B\-"B1N;W1E<R ](#P\/"!%3T8-"E1H
M97-E(&%R92!T:&4@<F5L96%S92!N;W1E<PT*9F]R('!H<$1O8W5M96YT;W(@
M,2XR+C -"D5/1CL-"@T*+RHJ#0HJ(%!H>7-I8V%L(&QO8V%T:6]N(&]N('1H
M:7,@8V]M<'5T97(@;V8@=&AE('!A8VMA9V4@=&\@<&%R<V4-"BH@0&=L;V)A
M;"!S=')I;F<@)'!A8VMA9V5?9&ER96-T;W)Y#0HJ+PT*)'!A8VMA9V5?9&ER
M96-T;W)Y(#T@)T,Z+U=E8B!086=E<R]C:&EA<F$O<&AP9&]C+3$N,2XP)SL-
M"B\J*@T**B!014%2+7)E;&%T:79E(&EN<W1A;&P@9&ER+"!U<V5D(&%S(&%T
M=')I8G5T92!F;W(@/&1I<B!N86UE/2(O(CX-"BH@0&=L;V)A;"!S=')I;F<@
M)&)A<V5I;G-T86QL9&ER#0HJ+PT*)&)A<V5I;G-T86QL9&ER(#T@)W!H<$1O
M8W5M96YT;W(G.PT*+RHJ#0HJ($-O;6UA+7-E<&%R871E9"!L:7-T(&]F(&9I
M;&5S(&%N9"!D:7)E8W1O<FEE<R!T;R!I9VYO<F4-"BH-"BH@5&AI<R!U<V5S
M('=I;&1C87)D<R J(&%N9"
_('1O(')E;6]V92!E>'1R82!F:6QE<R]D:7)E
M8W1O<FEE<R!T:&%T(&%R90T**B!N;W0@<&%R="!O9B!T:&4@<&%C:V%G92!O
M<B!R96QE87-E#0HJ($!G;&]B86P@<W1R:6YG("1I9VYO<F4-"BHO#0HD:6=N
M;W)E(#T@87)R87DH)T-64R\G+"=P86-K86=E+GAM;"<L)RHN=&=Z)RD[#0HO
M*BH-"BH@36%P<&EN9R!O9B!F:6QE(&5X=&5N<VEO;G,@=&\@=&AE(')O;&4@
M871T<FEB=71E(&]F('1H92 \9FEL93X@=&%G#0HJ#0HJ("<J)R!I<R!T:&4@
M9&5F875L="!R;VQE(&9O<B!F:6QE<R!W:71H(&YO(&5X=&5N<VEO;B!O<B!E
M>'1E;G-I;VYS(&YO="!S:&]W;@T**B! 9VQO8F%L(&%R<F%Y("1R;VQE<PT*
M*B\-"B1R;VQE<R
](&%R<F%Y#0H)"0DH#0H)"0D))W!H<"<@/3X@)W!H<"<L
M#0H)"0D))VEN8R<@/3X@)W!H<"<L#0H)"0D))VAT;6PG(#T^("=D;V,G+ T*
M"0D)"2<J)R ]/B
G9&%T82<L#0H)"0DI.PT*"0D)#0HO*BH-"BH@36%P<&EN
M9R!O9B!S=6)D:7)E8W1O<GD@;F%M97,@=&\@=&AE(')O;&4@871T<FEB=71E
M(&]F('1H92 \9&ER/B!T86<-"BH@0&=L;V)A;"!A<G)A>2
D9&ER7W)O;&5S
M#0HJ+PT*)&1I<E]R;VQE<R ](&%R<F%Y#0H)"0D)* T*"0D)"0DG<W!E8R<@
M/3X@)V1O8R<L#0H)"0D)"2=T97-T<R<@/3X@)W1E<W0G+ T*"0D)"0DG4F5L
M96%S92UO;&0G(#T^("=D;V,G+ T*"0D)"0DG=7-E<B<@/3X@)V1A=&$G+ T*
M"0D)"0DG=&5M<&QA=&5S)R ]/B
G9&%T82<L#0H)"0D)*3L-"@D)"0T*+RHJ
M#0HJ($UA<'!I;F<@;V8@9FEL96YA;65S('1O(')O;&5S(&9O<B!F:6QE<R!T
M:&%T(&1O;B=T(&9I="!T:&4@;F]R;6%L#0HJ('M ;&EN:R D<F]L97-]#0HJ
M($!G;&]B86P@87)R87D@)&5X8V5P=&EO;G,-"BHO#0HD97AC97!T:6]N<R ]
M(&%R<F%Y#0H)"0D)* T*"0D)"0DG4D5!1$U%)R ]/B G9&]C)RP-"@D)"0D)
M)T-H86YG94QO9R<@/3X@)V1O8R<L#0H)"0D)"2=M86ME9&]C+G-H)R ]/B G
M<V-R:7!T)RP-"@D)"0D))W!H<&1O8R<@/3X@)W-C<FEP="<L#0H)"0D)"2=2
M96QE87-E+3$N,BXP)R ]/B G9&]C)RP-"@D)"0D))U)E;&5A<V4M,2XQ+C G
M(#T^("=D;V,G+ T*"0D)"0DG4F5L96%S92TQ+C$N,')C,2<@/3X@)V1O8R<L
M#0H)"0D)"2=296QE87-E+3$N,2XP<F,R)R ]/B G9&]C)RP-"@D)"0DI.PT*
M#0HO*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ#0HJ(" @(" @
M($1O;B=T(&-H86YG92!A;GET:&EN9R!B96QO=R!H97)E('5N;&5S<R!Y;W4G
M<F4@861V96YT=7)E<V]M92 @(" @(" @(" J#0HJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ
M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ+PT*#0HO*BH-"BH@1&5T97)M:6YE<R!W:&5T
M:&5R(&]U='!U="!I<R!M861E(&AT;6PM9G)I96YD;'D@;W(@;F]T#0HJ($!G
M;&]B86P@8F]O;&5A;B D=V5B:6YT97)F86-E#0HJ+PT*)'=E8FEN=&5R9F%C
M92 ](&ES<V5T*"1?4T525D526R=0051(7U1204Y33$%4140G72D[#0HO*BH-
M"BH@0&=L;V)A;"!);R D9FEL97,-"BHO#0HD9FEL97,@/2!N97<@26\[#0H-
M"B1A;&QF:6QE<R
]("1F:6QE<RT^9&ER3&ES="@D<&%C:V%G95]D:7)E8W1O
M<GDI.PT*+RHJ(T K#0HJ(%-O<G1I;F<@9G5N8W1I;VYS(&9O<B!T:&4@9FEL
M92!L:7-T#0HJ($!P87)A;2!S=')I;F<-"BH@0'!A<F%M('-T<FEN9PT**B\-
M"F9U;F-T:6]N('-O<G1?9&ER96-T;W)Y*"1A+"
D8BD-"GL-"@EG;&]B86P@
M)'!A8VMA9V5?9&ER96-T;W)Y.PT*"6EF("AD:7)N86UE*"1A*2 ]/2!D:7)N
M86UE*"1B*2D@<F5T=7)N('-T<FYA=&-A<V5C;7 H)&$L("1B*3L-"@EI9B H
M<W1R<&]S*&1I<FYA;64H)&$I+&1I<FYA;64H)&(I*2
]/3T@,"D@<F5T=7)N
M("TQ.PT*"6EF("AS=')P;W,H9&ER;F%M92@D8BDL9&ER;F%M92@D82DI(#T]
M/2 P*2!R971U<FX@,3L-"@ER971U<FX@<W1R;F%T8V%S96-M<"@D82P@)&(I
M.PT*?0T*#0IF=6YC=&EO;B!S;W)T9FEL97,H)&$L("1B*0T*>PT*"7)E='5R
M;B!S=')N871C87-E8VUP*"1A6R=F:6QE)UTL)&);)V9I;&4G72D[#0I]#0H-
M"F9U;F-T:6]N(&UY<W1R=6-S;W)T*"1A+" D8BD-"GL-"@EI9B H:7-?;G5M
M97)I8R@D82D@)B8@:7-?<W1R:6YG*"1B*2D@<F5T=7)N(#$[#0H):68@*&ES
M7VYU;65R:6,H)&(I("8F(&ES7W-T<FEN9R@D82DI(')E='5R;B M,3L-"@EI
M9B H:7-?;G5M97)I8R@D82D@)B8@:7-?;G5M97)I8R@D8BDI#0H)>PT*"0EI
M9B H)&$@/B D8BD@<F5T=7)N(#$[#0H)"6EF("@D82 \("1B*2!R971U<FX@
M+3$[#0H)"6EF("@D82 ]/2 D8BD@<F5T=7)N(# [#0H)?0T*"7)E='5R;B!S
M=')N871C87-E8VUP*"1A+"1B*3L-"GT-"B\J*B- +2HO#0H-"B1S=')U8R ]
M(&%R<F%Y*"D[#0IF;W)E86-H*"1A;&QF:6QE<R!A<R D9FEL92D-"GL-"@EI
M9B H)&9I;&5S+3YC:&5C:TEG;F]R92AB87-E;F%M92@D9FEL92DL9&ER;F%M
M92@D9FEL92DL)&EG;F]R92DI(&-O;G1I;G5E.PT*"21P871H(#T@<W5B<W1R
M*&1I<FYA;64H)&9I;&4I+'-T<FQE;BAS=')?<F5P;&%C92@G7%PG+"<O)RQR
M96%L<&%T:"@D<&%C:V%G95]D:7)E8W1O<GDI*2DK,2D[#0H):68@*"$D<&%T
M:"D@)'!A=&@@/2 G+R<[#0H))&9I;&4@/2!B87-E;F%M92@D9FEL92D[#0H)
M)&5X="
](&%R<F%Y7W!O<"AE>'!L;V1E*"<N)RPD9FEL92DI.PT*"6EF("AS
M=')L96XH)&5X="D@/3T@<W1R;&5N*"1F:6QE*2D@)&5X="
]("<G.PT*"21S
M=')U8ULD<&%T:%U;72 ](&%R<F%Y*"=F:6QE)R ]/B D9FEL92PG97AT)R ]
M/B D97AT*3L-"GT-"G5K<V]R="@D<W1R=6,L)W-T<FYA=&-A<V5C;7 G*3L-
M"F9O<F5A8V@H)'-T<G5C(&%S("1K97D@/3X@)&EN9"D-"GL-"@EU<V]R="@D
M:6YD+"=S;W)T9FEL97,G*3L-"@DD<W1R=6-;)&ME>5T@/2 D:6YD.PT*"21S
M879E(#T@)&ME>3L-"@EI9B H)&ME>2 A/2 G+R<I#0H)>PT*"0DD:V5Y(#T@
M97AP;&]D92@G+R<L)&ME>2D[#0H)"7=H:6QE("AC;W5N="@D:V5Y*2D-"@D)
M>PT*"0D)87)R87E?<&]P*"1K97DI.PT*"0D):68@*&ES<V5T*"1S=')U8UMJ
M;VEN*"<O)RPD:V5Y*5TI*0T*"0D)>PT*"0D)"21S=')U8UMJ;VEN*"<O)RPD
M:V5Y*5U;<W5B<W1R*"1S879E+'-T<FQE;BAJ;VEN*"<O)RPD:V5Y*2D@*R Q
M*5T@/2 D:6YD.PT*"0D)"75N<V5T*"1S=')U8ULD<V%V95TI.PT*"0D)?0T*
M"0E]#0H)?0T*?0T*9F]R96%C:"@D<W1R=6,@87,@)&ME>2 ]/B D:6YD*0T*
M>PT*"6EF("@D:V5Y("$]("<O)RD-"@E[#0H)"6EF("AC;W5N="AE>'!L;V1E
M*"<O)RPD:V5Y*2D@/3T@,2D-"@D)>PT*"0D))'-T<G5C6R<O)UU;)&ME>5T@
M/2 D<W1R=6-;)&ME>5T[#0H)"0EU;G-E="@D<W1R=6-;)&ME>5TI.PT*"0E]
M#0H)?0T*?0T*)'1E;7!S=')U8R ]("1S=')U8SL-"G5N<V5T*"1T96UP<W1R
M=6-;)R\G72D[#0HD;&5F=&]V97)?9&ER<R ](&%R<F%Y7VME>7,H)'1E;7!S
M=')U8RD[#0IF;W)E86-H*"1L969T;W9E<E]D:7)S(&%S("1D:7(I#0I[#0H)
M)'-P;&ET9&ER<UM=(#T@97AP;&]D92@G+R<L)&1I<BD[#0I]#0HD;&5F=&]V
M97)?9&ER<R ](&%R<F%Y*"D[#0HO*BH-"BH@4F5C=7)S:79E;'D@861D(&%L
M;"!T:&4@<W5B9&ER96-T;W)I97,@;V8@)&-O;G1E;G1S('1O("1D:7(@=VET
M:&]U="!E<F%S:6YG(&%N>71H:6YG(&EN#0HJ("1D:7(-"BH@0'!A<F%M(&%R
M<F%Y#0HJ($!P87)A;2!A<G)A>0T**B! <F5T=7)N(&%R<F%Y('!R;V-E<W-E
M9" D9&ER#0HJ+PT*9G5N8W1I;VX@<V5T7V1I<B@D9&ER+"1C;VYT96YT<RD-
M"GL-"@EW:&EL92AL:7-T*"1O;F4L)'1W;RD@/2!E86-H*"1C;VYT96YT<RDI
M#0H)>PT*"0EI9B H:7-S970H)&1I<ELD;VYE72DI#0H)"7L-"@D)"21D:7);
M)&]N95T@/2!S971?9&ER*"1D:7);)&]N95TL)&-O;G1E;G1S6R1O;F5=*3L-
M"@D)?2!E;'-E("1D:7);)&]N95T@/2
D='=O.PT*"7T-"@ER971U<FX@)&1I
M<CL-"GT-"@T*+RHJ#0HJ(%)E8W5R<VEV96QY(&UO=F4@8V]N=&5N=',@;V8@
M)'-T<G5C(&EN=&\@87-S;V-I871I=F4@87)R87D-"BH-"BH@5&AE(&-O;G1E
M;G1S(&]F("1S=')U8R!H879E(&UA;GD@:6YD97AE<R!L:6ME("=D:7(O<W5B
M9&ER+W-U8F1I<C(G+@T**B!4:&ES(&9U;F-T:6]N(&-O;G9E<G1S('1H96T@
M=&\-"BH@87)R87DH)V1I<B<@/3X@87)R87DH)W-U8F1I<B<@/3X@87)R87DH
M)W-U8F1I<C(G*2DI#0HJ($!P87)A;2!A<G)A>2 -"BH@0'!A<F%M(&%R<F%Y
M#0HJ($!R971U<FX@87)R87D-"BHO#0IF=6YC=&EO;B!S971U<%]D:7)S*"1S
M=')U8RPD9&ER+"1C;VYT96YT<RD-"GL-"@EI9B H(6-O=6YT*"1D:7(I*0T*
M"7L-"@D)9F]R96%C:"@D8V]N=&5N=',@87,@)&1I<B ]/B D9FEL97,I#0H)
M"7L-"@D)"6EF("AI<U]S=')I;F<H)&1I<BDI#0H)"0E[#0H)"0D):68@*'-T
M<G!O<R@D9&ER+"<O)RDI#0H)"0D)>PT*"0D)"0DD=&5S="
]('1R=64[#0H)
M"0D)"21A(#T@)&-O;G1E;G1S6R1D:7)=.PT*"0D)"0EU;G-E="@D8V]N=&5N
M='-;)&1I<ETI.PT*"0D)"0DD8B
](&5X<&QO9&4H)R\G+"1D:7(I.PT*"0D)
M"0DD8R ](&%R<F%Y7W-H:69T*"1B*3L-"@D)"0D):68@*&ES<V5T*"1C;VYT
M96YT<ULD8UTI*0T*"0D)"0E[#0H)"0D)"0DD8V]N=&5N='-;)&-=(#T@<V5T
M7V1I<B@D8V]N=&5N='-;)&-=+'-E='5P7V1I<G,H87)R87DH*2PD8BPD82DI
M.PT*"0D)"0E](&5L<V4@)&-O;G1E;G1S6R1C72 ]('-E='5P7V1I<G,H87)R
M87DH*2PD8BPD82D[#0H)"0D)?0T*"0D)?0T*"0E]#0H)"7)E='5R;B D8V]N
M=&5N=',[#0H)?0T*"21M92 ](&%R<F%Y7W-H:69T*"1D:7(I.PT*"6EF("@A
M:7-S970H)'-T<G5C6R1M95TI*2 D<W1R=6-;)&UE72 ](&%R<F%Y*"D[#0H)
M)'-T<G5C6R1M95T@/2!S971U<%]D:7)S*"1S=')U8ULD;65=+"1D:7(L)&-O
M;G1E;G1S*3L-"@ER971U<FX@)'-T<G5C.PT*?0T*#0IF;W)E86-H*"1S<&QI
M=&1I<G,@87,@)&1I<BD-"GL-"@DD<V%V92
](&IO:6XH)&1I<BPG+R<I.PT*
M"21S=')U8ULG+R==(#T@<V5T=7!?9&ER<R@D<W1R=6-;)R\G72P@)&1I<BP@
M)'1E;7!S=')U8ULD<V%V95TI.PT*"75N<V5T*"1S=')U8ULD<V%V95TI.PT*
M?0T*=6MS;W)T*"1S=')U8ULG+R==+"=M>7-T<G5C<V]R="<I.PT*+RHJ#0HJ
M(%)E8W5R<VEV96QY(&=E;F5R871E('1H92 \9FEL96QI<W0^('-E8W1I;VXG
M<R
\9&ER/B!A;F0@/&9I;&4^('1A9W,-"BH@0'!A<F%M(&%R<F%Y('1H92!S
M;W)T960@9&ER96-T;W)Y('-T<G5C='5R90T**B! <&%R86T@9F%L<V5\<W1R
M:6YG('=H971H97(@=&AE('!A<F5N="!D:7)E8W1O<GD@:&%S(&$@<F]L92!T
M:&ES('-H;W5L9 T**B!I;FAE<FET#0HJ($!P87)A;2!I;G1E9V5R(&EN9&5N
M=&%T:6]N(&QE=F5L#0HJ($!G;&]B86P@87)R87D-"BH@0&=L;V)A;"!A<G)A
M>0T**B! 9VQO8F%L(&%R<F%Y#0HJ($!G;&]B86P@<W1R:6YG#0HJ+PT*9G5N
M8W1I;VX@9V5T1&ER5&%G*"1S=')U8RP@)')O;&4]9F%L<V4L("1L979E;"
]
M(# I#0I[#0H)9VQO8F%L("1D:7)?<F]L97,L("1E>&-E<'1I;VYS+" D<F]L
M97,L("1B87-E:6YS=&%L;&1I<CL-"@DD<F5S(#T@)'-P86-E<R
]("<G.PT*
M"69O<B@D:3T@+30[("1I(#P@)&QE=F5L.R D:2LK*0T*"7L-"@D))'-P86-E
M<R N/2
G("<[#0H)?0T*"69O<F5A8V@H)'-T<G5C(&%S("1D:7(@/3X@)&9I
M;&5S*0T*"7L-"@D):68@*"1D:7(@/3T]("<O)RD-"@D)>PT*"0D))&UY(#T@
M)R @(#QD:7(@;F%M93TB+R(@8F%S96EN<W1A;&QD:7(](B<N)&)A<V5I;G-T
M86QL9&ER+B<B/B<N(EQN(CL-"@D)"21M>2 N/2!G971$:7)486<H)'-T<G5C
M6R1D:7)=+" D<F]L92P@)&QE=F5L("L@,2D[#0H)"0DD;7D@+CT@)R @(#PO
M9&ER/B<[#0H)"0ER971U<FX@)&UY.PT*"0E](&5L<V4-"@D)>PT*"0D):68@
M*"%I<W-E="@D9FEL97-;)V9I;&4G72DI#0H)"0E[#0H)"0D))&UY<F]L92 ]
M("<G.PT*"0D)"6EF("@D<F]L92D@)&UY<F]L92
]("1R;VQE.PT*"0D)"65L
M<V5I9B H:7-S970H)&1I<E]R;VQE<ULD9&ER72DI("1M>7)O;&4@/2 G(')O
M;&4](B<N)&1I<E]R;VQE<ULD9&ER72XG(B<[#0H)"0D))')E<R N/2
D<W!A
M8V5S+B<\9&ER(&YA;64](B<N)&1I<BXG(B<N)&UY<F]L92XB/EQN(CL-"@D)
M"0DD<F5S("X](&=E=$1I<E1A9R@D9FEL97,L)&UY<F]L92PD;&5V96P@*R Q
M*3L-"@D)"0DD<F5S("X]("1S<&%C97,N)SPO9&ER/B<N(EQN(CL-"@D)"7T@
M96QS90T*"0D)>PT*"0D)"21M>7)O;&4@/2 G)SL-"@D)"0EI9B H(21R;VQE
M*0T*"0D)"7L-"@D)"0D))&UY<F]L92
](&9A;'-E.PT*"0D)"0EI9B H:7-S
M970H)&5X8V5P=&EO;G-;)&9I;&5S6R=F:6QE)UU=*2D-"@D)"0D)>PT*"0D)
M"0D))&UY<F]L92
]("1E>&-E<'1I;VYS6R1F:6QE<ULG9FEL92==73L-"@D)
M"0D)?2!E;'-E:68@*&ES<V5T*"1R;VQE<ULD9FEL97-;)V5X="==72DI#0H)
M"0D)"7L-"@D)"0D)"21M>7)O;&4@/2
D<F]L97-;)&9I;&5S6R=E>'0G75T[
M#0H)"0D)"7T@96QS92 D;7ER;VQE(#T@)')O;&5S6R<J)UT[#0H)"0D)"21M
M>7)O;&4@/2
M>G(')O;&4](B<N)&UY<F]L92XG(B<[#0H)"0D)?0T*"0D)"0T*
M"0D)"21R97,@+CT@)'-P86-E<RXG/&9I;&4G+B1M>7)O;&4N)SXG+B1F:6QE
M<ULG9FEL92==+B<\+V9I;&4^)RXB7&XB.PT*"0D)?0T*"0E]#0H)?0T*"7)E
M='5R;B D<F5S.PT*?0T*)&YO=&5S(#T@<W5B<W1R*"(@(" B+FIO:6XH97AP
M;&]D92@B7&XB+"1N;W1E<RDL(EQN(" @(BDL,"QS=')L96XH:F]I;BAE>'!L
M;V1E*")<;B(L)&YO=&5S*2PB7&X@(" B*2D@+2 S*3L-"B1R97,@/2!G971$
M:7)486<H)'-T<G5C*3L-"B1R97,@/2 -"B(@/')E;&5A<V4^#0H@(#QV97)S
M:6]N/B1V97)S:6]N/"]V97)S:6]N/@T*(" \<W1A=&4^)'-T871E/"]S=&%T
M93X-"B @/&1A=&4^)&1A=&4\+V1A=&4^#0H@(#QN;W1E<SX-"B1N;W1E<PT*
M(" \+VYO=&5S/@T*(" \9FEL96QI<W0^#0HD<F5S#0H@(#PO9FEL96QI<W0^
M#0H@/"]R96QE87-E/@T*(CL-"FEF("@D=V5B:6YT97)F86-E*0T*<')I;G0@
M;FPR8G(H<W1R7W)E<&QA8V4H)R G+"<F;F)S<#LG+&AT;6QE;G1I=&EE<R@D
><F5S*2DI.PT*96QS90T*<')I;G0@)')E<SL-"C\^
`
end