kX;;by nameby nameBUILDd kHA./AA k <m$ ;;;1<$ ./lpp_namemm4 R I perl.rte { perl.rte 05.05.0003.0075 01 N U en_US Perl Version 5 Runtime Environment [ % /usr/opt/perl5/lib/site_perl 8 /usr/lib/objrepos 176 /usr/opt/perl5/lib/site_perl/5.005 8 /usr/opt/perl5/lib/site_perl/5.005/aix 8 /usr/opt/perl5/lib/5.00503 1776 /usr/opt/perl5/lib/5.00503/site_perl 8 /usr/opt/perl5/lib/5.00503/auto/Getopt 8 /usr/opt/perl5/lib/5.00503/auto/Getopt/Long 80 /usr/opt/perl5/lib/5.00503/auto 8 /usr/opt/perl5/lib/5.00503/B 40 /usr/opt/perl5/bin 2496 /usr/opt/perl5 8 /usr/opt/perl5/lib 8 /usr/lib 8 /usr/bin 8 /usr/opt/perl5/lib/5.00503/CGI 120 /usr/opt/perl5/lib/5.00503/CPAN 48 /usr/opt/perl5/lib/5.00503/Class 40 /usr/opt/perl5/lib/5.00503/Devel 24 /usr/opt/perl5/lib/5.00503/ExtUtils 864 /usr/opt/perl5/lib/5.00503/File 144 /usr/opt/perl5/lib/5.00503/File/Spec 56 /usr/opt/perl5/lib/5.00503/Getopt 104 /usr/opt/perl5/lib/5.00503/I18N 24 /usr/opt/perl5/lib/5.00503/IPC 72 /usr/opt/perl5/lib/5.00503/Math 160 /usr/opt/perl5/lib/5.00503/Net 96 /usr/opt/perl5/lib/5.00503/Pod 152 /usr/opt/perl5/lib/5.00503/Search 16 /usr/opt/perl5/lib/5.00503/Sys 32 /usr/opt/perl5/lib/5.00503/Term 64 /usr/opt/perl5/lib/5.00503/Test 40 /usr/opt/perl5/lib/5.00503/Text 64 /usr/opt/perl5/lib/5.00503/Tie 72 /usr/opt/perl5/lib/5.00503/Time 48 /usr/opt/perl5/lib/5.00503/User 24 /usr/opt/perl5/lib/5.00503/aix 632 /usr/opt/perl5/lib/5.00503/aix/B 536 /usr/opt/perl5/lib/5.00503/aix/auto 8 /usr/opt/perl5/lib/5.00503/aix/auto/POSIX 1616 /usr/opt/perl5/lib/5.00503/aix/auto/DynaLoader 88 /usr/opt/perl5/lib/5.00503/aix/auto/B 232 /usr/opt/perl5/lib/5.00503/aix/auto/Data 8 /usr/opt/perl5/lib/5.00503/aix/auto/Data/Dumper 88 /usr/opt/perl5/lib/5.00503/aix/auto/Fcntl 32 /usr/opt/perl5/lib/5.00503/aix/auto/IO 56 /usr/opt/perl5/lib/5.00503/aix/auto/IPC 8 /usr/opt/perl5/lib/5.00503/aix/auto/IPC/SysV 48 /usr/opt/perl5/lib/5.00503/aix/auto/NDBM_File 48 /usr/opt/perl5/lib/5.00503/aix/auto/ODBM_File 48 /usr/opt/perl5/lib/5.00503/aix/auto/Opcode 72 /usr/opt/perl5/lib/5.00503/aix/auto/SDBM_File 64 /usr/opt/perl5/lib/5.00503/aix/auto/sdbm 16 /usr/opt/perl5/lib/5.00503/aix/auto/Socket 56 /usr/opt/perl5/lib/5.00503/aix/auto/attrs 32 /usr/opt/perl5/lib/5.00503/aix/auto/re 184 /usr/opt/perl5/lib/5.00503/Data 72 /usr/opt/perl5/lib/5.00503/aix/IO 120 /usr/opt/perl5/lib/5.00503/aix/CORE 4184 /usr/lpp/perl.rte 16 INSTWORK 320 304 % % % % ] } kꨛ0.5/A 88 tpo/l/5ll/bianoL./usr3/AA kv0.5/A 88 tpo/l/5ll/bianoL./usr/lppe 72 /AA kf^0.5/A 88 tpo/l/5ll/bianoL./usr/lpp/perl.rte/opt/AA l <mJG;Vn;Vn;1<8F./usr/lpp/perl.rte/liblpp.amm  /e 05=iloprst.34acmnuy",1Ibdx26789:EFLOPSghkvwzCDRXBMTfGNUY_AHKVjW`-q(<>)18F Ɩ X/@RAE YK+)jƃ..&3M|Dfpƛg`)KE>8R`ZO @|Dg>w̛^yD$RS i,h@@A)NNw\nW; Jp 7O:ϞeqN-6vC4@Fr`V3 L^~#\!Ogd1 <ax&ԲTэ"x^"!29/f /f ` 5J[3!"1|Q )%|'Pt揥-E(}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]9dKQU&<.. OP/|zNOZF`0O%-(v>\\sGR&w7a)qB/B9#)B`Zh`Q` \d2r#x7ҚBQu NhY*RU@NxJvq{ІHvr琽2֟0p(2)l̄ƞ'gDd..&3iBӚ>JF!7(}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]9dKQT(}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]i)qB/B9#)BkZF`0O%-(v>\\?! !{5i فG0h'qAȌiv|FBc;Ji F ..]9S>㳋4^6rFS<х@@4 Kfd F4;>o#!qq14Nh)qB/B9#)B`Zha ?3"!s>\\sGqAȌiv|FBc;Ji F ..]i`$S>㳋4^6rFS<ֵ/f80)?kfBDcO2MѠ4FlŨ 4ZSHJ4=р OP/|zNOZ֟0xC@OȈ\tO.0 \d2r#x7ҚBQu C} ?! !{5i م O%-(vEofP)@'D1cAƯ\ZSHJ4=Ѡ OP/|zNOZ֟0xC@OȈ\tO.4)\d2r#x7ҚBQu C}JdxJvq{ІHvr琽ִх'qAȌiv|FBc;OɢX:4JH4Eť4C}JdxJvq{ІHvr琽ִх0 8"fDB糤%|'Pt=ѰAqAȌiv|FBc;Ji F ..]i%?C;8OECg$e;9?s^kZhacKfd F4;>o#!qq1[ٍ4FlŖ ƕJi FyH\\x^"!29/f?4a{0  F ..]i?kfBDcO2SHJ4Nqr{OH(}gil䌧g'y ٭kO^,p`R)l̄ƞ'gDd..&3+{1A٢R@혵WЌZSHJ4=Ј$BS>㳋4^6rFS<ֵ/fP2"=!(:ˡ>A "5J[3!"1|Q )%|'Pt=Ј!(}gil䌧g'y ٭kO^,p`R)l̄ƞ'gDd..&3+{0ADl) vX ť4C}Jvq{ІHvr琽ִх0 8"fDB糤%|'Pt=Ј!'qAȌiv|FBc;Ji F ..]i x^"!29/f?4a{0I\d2r#x7h X"4JHP @ҿJi F OP/|zNOZ֟0xC@OȈ\tO.O%-(v>\\hJvq{ІHvr琽ִх'qAȌiv|FBc;Oɢ(iDl) vY`ť4C}BM OP/|zNOZ֟0xC@OȈ\tO.ƚ5J[3!"1|Q )%|'Pt=.. BS>㳋4^6rFS<ֵ/f80)?kfBDcO2MPp@d6h;f,i@AiM!(P OP/|zNOZ֟0xC@OȈ\tO.j)l̄ƞ'gDd..&3iBPp$ OP/|zNOZ֟0X2Rٙ9\\\d2r#x7ҚBQu C}AfsS>㳋4^6rFS<ֵ/f80)?kfBDcO2M!KO#fIbjiM!(PyA?! !{5i ه`0pD̈gHJ4Nqr{O< r)l̄ƞ'gDd..&3iBPyG;"x^"!29/f?4a{0I\d2r#x7h O#fIb4h{O<# OP/|zNOZ֟0xC@OȈ\tO.82Rٙ9xJvq{ІHvr琽ִх'qAȌiv|FBc;OɢQ@Dl) vYEX' F-)% q(}gil䌧g'y ٭kO^< 'dD.{:BQu C}A02Rٙ93 OP/|zNOZ֟0X2Rٙ9o#!qq1[ٔ P1IDl) vX@q(i N(0?! !{5i ه`0pD̈gHJ4Nqr{OJq@٧qAȌiv|FBc;Ji F ..]i H(}gil䌧g'y ٭kO^,p`R)l̄ƞ'gDd..&3+{1a Dl) vZ5xh{O@%?C;8OECg$e;9?s^kZha ?3"!s>\\@O%-(v>\\Pq<%?C;8OECg$e;9?s^kZhacKfd F4;>o#!qq1[ٍ-KO#fIbZ/i(8ƞx^"!29/f?4a{0  F ..]i(8ƞ5J[3!"1|Q )%|'Pt揥-EP@8[]d?! !{2-?4a{0I\d2r#x7h٢R@혵(oZSHJ4NqrK%JZBo y.$?! !{2-?4a{0I\d2r#x7hԟ4FlŖV-)%|'Pt揥-EP!7͙08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{1 4FlŬ oiM!(:˧4},)j*K<08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{1(6h;f,@4ZSHJ4NqrK%JZ L OP/|zNO,F 5J[3!"1|Q ?&hB6h;f,h@plZSHJ4NqrK%JZ x^"!29/f /f ` 5J[3!"1|Q )%|'Pt揥-EP08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0B4FlŔRiM!(:˧4},)j* u )qB/B9#)BeZhacKfd F4;>o#!qq1[ٍQJR4JH4EJi F ..]9dKQTc6Ɂ)qB/B9#)BeZhacKfd F4;>o#!qq1[ٍO#fIbYkV-)%|'Pt揥-EP%2`pJvq{ІHvr琽e0X2Rٙ9㳋4^6rFS<,х'qAȌiv|FBc;Oɢ4Flō(ť4O.T&(}gil䌧g'y ٖYi م O%-(vEof4@R4FlŖ@OƖZSHJ4NqrK%JZ p@?! !{0e?4a{0(0P d2Rٙ9\\sGR@#ȓS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ6h;f,hť4O.TS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ@٢R@혵_ѸiBӚ>J@G)(}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]9dKQTq(2`pJvq{ІHvr琽e0X2Rٙ9\\sGR(@x^"!29/fYe/f80)?kfBDcO2M@8B٢R@혵ť4O.T؝%?C;8OECg$e;9?s^kO^ 8 @?kfBDcO2SHJ4NqrK%JZ-ۨ>$?! !{2-?4a{0I\d2r#x7hXЄ6h;f,h8(8?ZSHJ4NqrK%JZ+bfAL OP/|zNO,F 5J[3!"1|Q ?&iK)?h%$ًX@*LZSHJ4NqrK%JZ*@L!d?! !{2-?4a{0I\d2r#x7hƭ`S٢R@혵,h.-)%|'Pt揥-EPQlI)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔ 4Flō( jiM!(:˧4},)j*&(}gil䌧g'y ٖYi م O%-(vEof4iDl) vX 1iM!(:˧4},)j*Ęx^"!29/fYe/f80)?kfBDcO2MƍO#fIbԢ?ƗJi F ..]9dKQTF`mtS>㳋4^6rFS<х@@4 Kfd F4;>o#!qq14O.T #0 6Tyy`pJvq{ІHvr琽e0X2Rٙ9\\sGR(,P3 L OP/|zNO,F 5J[3!"1|Q ?&hғ٢R@혲 iM!(:˧4},)j*ͮ4{)S>㳋4^6rFS<,х'qAȌiv|FBc;OɢX9JO#fIbX@\ZSHJ4NqrK%JZ3k@( C )qB/B9#)BeZhacKfd F4;>o#!qq1[ٔ4?h%$ً-`ť4O.T #0 6T$?! !{2-?4a{0I\d2r#x7hƨj٢R@혰@`EbҚBQu NhY*RU]*@P(y08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0e-iDl) vZ_biM!(:˧4},)j*ͮ( L OP/|zNO,F 5J[3!"1|Q ?&jO#fIbƔiBӚ>JADffJS0JL OP/|zNO,F 5J[3!"1|Q ?&@4FlŖUbҚBQu NhY*RU]*L==d?! !{2-?4a{0I\d2r#x7hƍ Z4JHZƄ4n-)%|'Pt揥-EPQYҠH{9N&@x^"!29/fYe/f80)?kfBDcO2MJR4JHY`ҚBQu NhY*RU]*Dl"`pJvq{ІHvr琽e0X2Rٙ9JADffJ4I͔Ɂ)qB/B9#)BeZhacKfd F4;>o#!qq1[ق)?h%$ً _ Ji F ..]9dKQTF`mta)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔX0:4JHY@AiM!(:˧4},)j*ͮN74y08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{5Z4JHEť4O.T #0 6U4ag?! !{2-?4a{0I\d2r#x7hFj4JHX)EิiBӚ>JADffJJvq{ІHvr琽e0X2Rٙ9o#!qq1[ٔ5@Dl) vZPG^-)%|'Pt揥-EP[]t|&(}gil䌧g'y ٖYi م O%-(vEof5@१D1k_ѸiBӚ>JAmunx`pJvq{ІHvr琽e0X2Rٙ9㳋4^6rFS<,х'qAȌiv|FBc;OɢX8@24JHpRҚBQu NhY*RUALDx^"!29/fYe/f80)?kfBDcO2M)`O#fIb-j_ Ji F ..]9dKQT]&(}gil䌧g'y ٖYi م O%-(vEof 4FlŖ 4h'V-)%|'Pt揥-EP[]t 4%?C;8OECg$e;9?s^kO^ 8 @?kfBDcO2SHJ4NqrK%JZ>mL OP/|zNO,F 5J[3!"1|Q ?&̰r٢R@혱/^-)%|'Pt揥-EP[]t 6C )qB/B9#)BeZhacKfd F4;>o#!qq1[ك O#fIb4o7>\\sGR-@&(}gil䌧g'y ٖYi م O%-(vEofQe'D1`A?iM!(:˧4},)j*Y(y08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2D1e Ji F ..]9dKQT]͠y@?! !{2-?4a{0I\d2r#x7hZ4JHP(A`XiBӚ>JAmuԦdɁ)qB/B9#)BeZhacKfd F4;>o#!qq1[قO#fIb4bҚBQu NhY*RU0&(}gil䌧g'y ٖYi م O%-(vEof4j4JH4ubҚBQu NhY*RUfAL OP/|zNO,F 5J[3!"1|Q ?&?h%$ًشiBӚ>JAm<Ɂ)qB/B9#)BeZhacKfd F4;>o#!qq1[ٖQe'D1jX(ť4O.Tw7a)qB/B9#)B`Zh`Q` \d2r#x7ҚBQu NhY*RU;: y?! !{2-?4a{0I\d2r#x7hQED1`ZiM!(:˧4},)j*́08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2R4JH׋Ji F ..]9dKQT8h8 OP/|zNOZF`0O%-(v>\\sGRpp @GNɁ)qB/B9#)BeZhacKfd F4;>o#!qq1[٬!?h%$ً, ิiBӚ>JC)qB/B9#)B`Zh`Q` \d2r#x7ҚBQu NhY*RUPl,B`pJvq{ІHvr琽e0X2Rٙ9JCx^"!29/fYe/f80)?kfBDcO2M QDl) vZ Ji F ..]9dKQT88 @, )qB/B9#)BeZhacKfd F4;>o#!qq1[ٔ 5?h%$ً,/>\\sGRpp "08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{55?h%$ً(EิiBӚ>J@) OP/|zNOZF`0O%-(v>\\sGR2b44@-2d?! !{2-?4a{0I\d2r#x7hT 4FlŔ4 !F-)%|'Pt揥-EP dhhL OP/|zNO,F 5J[3!"1|Q ?&hѥ4FlŨbƍť4O.TLtdI)qB/B9#)BeZhacKfd F4;>o#!qq1[ٖ O#fIb,ՋJi F ..]9dKQT1`pJvq{ІHvr琽e0X2Rٙ9o#!qq1[ق)kO#fIb Ji F ..]9dKQT.t"Nϙ08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{24FlŬť4O.T:>g̘x^"!29/fYe/f80)?kfBDcO2Me'D1k,^-)%|'Pt揥-EP"ϙ08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2T6h;f,h:Jť4O.T:Nϙ08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2X24JHpEҚBQu NhY*RUJA!AhlL OP/|zNO,F 5J[3!"1|Q ?&h :٢R@혲Ԣ4>\\sGR9(s)qB/B9#)BeZhacKfd F4;>o#!qq1[ٖ 4FlŬa Ji F ..]9dKQTYS>㳋4^6rFS<,х'qAȌiv|FBc;OɢRA٢R@혱P!_Kť4O.T"hJvq{ІHvr琽2֟0p(2)l̄ƞ'gDd..&3iBӚ>JAdM+M08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{1D1e Q@&-)%|'Pt揥-EP}͘yw`pJvq{ІHvr琽e0X2Rٙ9o#!qq1[ق4FlŬ oV-)%|'Pt揥-EPz2dS>㳋4^6rFS<,х'qAȌiv|FBc;OɢZS٢R@혲Z|ZSHJ4NqrK%JZpJvq{ІHvr琽2֟0p(2)l̄ƞ'gDd..&3iBӚ>J@5`pJvq{ІHvr琽e0X2Rٙ9\\sGR@G\x^"!29/fYe/f80)?kfBDcO2MKP6h;f,axiBӚ>J@5Y}S>㳋4^6rFS<,х'qAȌiv|FBc;OɢO#fIb 7jiM!(:˧4},)j*kɁ)qB/B9#)BeZhacKfd F4;>o#!qq1[ك 4FlŖ ҚBQu NhY*RU)(}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]9dKQT\@dOHx^"!29/fYe/f80)?kfBDcO2MҁK4FlŔX@ҚBQu NhY*RUFa)qB/B9#)B`Zh`Q` \d2r#x7ҚBQu NhY*RUFtCɁ)qB/B9#)BeZhacKfd F4;>o#!qq1[ٍZ٢R@혵W Ji F ..]9dKQTYq08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0U5?h%$ً4eشiBӚ>J@5Y`pJvq{ІHvr琽e0X2Rٙ9\\sGR3&(}gil䌧g'y ٖYi م O%-(vEof4 j4JH4 ť4O.T(`pJvq{ІHvr琽e0X2Rٙ9J@3n 11`pJvq{ІHvr琽e0X2Rٙ9\\sGRm!`pJvq{ІHvr琽e0X2Rٙ9S!`pJvq{ІHvr琽e0X2Rٙ9o#!qq1[ق'D1kZ++>\\sGRPL OP/|zNO,F 5J[3!"1|Q ?& 'D1cB XGV-)%|'Pt揥-EQɃS>㳋4^6rFS<,х'qAȌiv|FBc;OɢX(6h;f-`Z񸴦iBӚ>JFJW(}gil䌧g'y ٖYi م O%-(vEof4 ?h%$ً,!`1iM!(:˧4},)j*BoBVL OP/|zNO,F 5J[3!"1|Q ?&̵ )?h%$ً-Eť4O.Tdx^"!29/fYe/f80)?kfBDcO2Mu4FlŖX*bҚBQu NhY*RUh2`?! !{2-?4a{0I\d2r#x7hAT4FlłCB?lZSHJ4NqrK%JZi& OP/|zNO,F 5J[3!"1|Q ?& ?h%$ًY`>-)%|'Pt揥-EPDɓ(}gil䌧g'y ٖYi م O%-(vEofX!cS٢R@혲>\\sGR{<x^"!29/fYe/f80)?kfBDcO2M@T6h;f,K1iM!(:˧4},)j*0z& OP/|zNO,F 5J[3!"1|Q ?&jO#fIb n-)%|'Pt揥-EQ&L8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0P٢R@혱J_bҚBQu NhY*RU띓(}gil䌧g'y ٖYi م O%-(vEof46h;f,Ji F ..]9dKQTkϔ>d?! !{2-?4a{0I\d2r#x7hA'D1` W Ji F ..]9dKQTlu(}gil䌧g'y ٖYi م O%-(vEof4@Dl) vX A@iBӚ>JD`l)qB/B9#)BeZhacKfd F4;>o#!qq1[ٍ( iDl) vY`^-)%|'Pt揥-EQB$)qB/B9#)BeZhacKfd F4;>o#!qq1[ق)KO#fIb bҚBQu NhY*RU@ `?! !{2-?4a{0I\d2r#x7hƍ)cS٢R@혲 񠘴iBӚ>JVDۄLx^"!29/fYe/f80)?kfBDcO2MթIDl) vX AcFiBӚ>J@9 S>㳋4^6rFS<,х'qAȌiv|FBc;OɢYiDl) vX*JW7>\\sGRm)qB/B9#)BeZhacKfd F4;>o#!qq1[ٖO#fIbPѠiM!(:˧4},)j*v@8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{1A֟4FlũE+ť4O.Ty (}gil䌧g'y ٖYi م O%-(vEof4iJO#fIbRLZSHJ4NqrK%JZHD8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2A٢R@혵iKҚBQu NhY*RU0pJvq{ІHvr琽e0X2Rٙ9JNy:Ɂ)qB/B9#)BeZhacKfd F4;>o#!qq1[ق4FlōP0/7>\\sGRx0pJvq{ІHvr琽e0X2Rٙ9o#!qq1[ٍ,!?h%$ًP0( / Ji F ..]9dKQTcH @ <"`pJvq{ІHvr琽e0X2Rٙ9 ?! !{2-?4a{0I\d2r#x7h4FlŔ5JҚBQu NhY*RU4Pא`pJvq{ІHvr琽e0X2Rٙ9JF43 xS>㳋4^6rFS<,х'qAȌiv|FBc;OɢX:4JHYJiM!(:˧4},)j*i(Ɂ)qB/B9#)BeZhacKfd F4;>o#!qq1[ل,?h%$ً R?ƫ>\\sGRƑ|Ɂ)qB/B9#)BeZhacKfd F4;>o#!qq1[ل٢R@혵X"ƫ>\\sGRƑ G2fS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)?h%$ًZKWJi F ..]9dKQTcH @)Yq&(}gil䌧g'y ٖYi م O%-(vEof 4Flł4ť4O.T1h+ddguĘx^"!29/fYe/f80)?kfBDcO2ME O#fIb ť4O.T(ddgu(}gil䌧g'y ٖYi م O%-(vEofP@*4JH4h@(77>\\sGR%+8{%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0R٢R@혰QZSHJ4NqrK%JZFJ2`pJvq{ІHvr琽e0X2Rٙ9o#!qq1[ٖ4'D1`7>\\sGRw<?! !{2-?4a{0I\d2r#x7hP"٢R@혲4ZSHJ4NqrK%JZ\\ɃS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)?h%$ًQCF Ji F ..]9dKQUB)qB/B9#)BeZhacKfd F4;>o#!qq1[ٍX*4JH4UiBӚ>JR8Q!"`?! !{2-?4a{0I\d2r#x7hԟ4FlŨƃqiM!(:˧4},)j* S>㳋4^6rFS<,х'qAȌiv|FBc;OɢX9iDl) vX!a iM!(:˧4},)j*3&Lx^"!29/fYe/f80)?kfBDcO2M*٢R@혰PEqiM!(:˧4},)j*8ٓS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)@Dl) vX`QXiBӚ>JR@|)qB/B9#)BeZhacKfd F4;>o#!qq1[كO#fIbQ`qiM!(:˧4},)j*`?! !{2-?4a{0I\d2r#x7hZ٢R@혲ƍ׋Ji F ..]9dKQU3|0pJvq{ІHvr琽e0X2Rٙ9㳋4^6rFS<,х'qAȌiv|FBc;Oɢ(E'D1cAҚBQu NhY*RU S>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ( ?h%$ً,jiM!(:˧4},)j*i<?! !{2-?4a{0I\d2r#x7hƔP@(:4JH X(1(n-)%|'Pt揥-EQ#Q`pJvq{ІHvr琽e0X2Rٙ9JF4A7\I1)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔ4j4JH5AZSHJ4NqrK%JZFBoz5ϕlI1)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔR٢R@혰PBƯJi F ..]9dKQTcHшM8OA$(}gil䌧g'y ٖYi م O%-(vEofP8:4JH 5EҚBQu NhY*RU4b}lLpJvq{ІHvr琽e0X2Rٙ9\\sGRƑ84\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;Oɢ(h*4JHP1AZSHJ4NqrK%JZFBoz5$(}gil䌧g'y ٖYi م O%-(vEof 4FlŨqiM!(:˧4},)j*i1 Cx^"!29/fYe/f80)?kfBDcO2M @24JHqiM!(:˧4},)j*i1 C0|1)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔDl) vXpR񸴦iBӚ>JF4AcS>㳋4^6rFS<,х'qAȌiv|FBc;OɢO#fIb,_n-)%|'Pt揥-EQ#F!7phx=A℘?! !{2-?4a{0I\d2r#x7hQiDl) vZ ť4O.T1h& 4LpJvq{ІHvr琽e0X2Rٙ9\\sGRƑ84o#!qq1[ٔ4j4JHR񸴦iBӚ>JF4A+΁&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2O#fIb-ZSHJ4NqrK%JZFBozDt 1)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔR4JHQe(Ji F ..]9dKQTcHшM8Rh`:?! !{2-?4a{0I\d2r#x7h)?h%$ً,c񸴦iBӚ>JF4A$8x^"!29/fYe/f80)?kfBDcO2MCV4Flō(!EqiM!(:˧4},)j*i1 C&6VI OP/|zNO,F 5J[3!"1|Q ?&̢O#fIb Zť4O.T1h& o#!qq1[ٔd6h;f,`ҚBQu NhY*RU4b}Ѯ#q&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0@D1kҚBQu NhY*RU4b}k+$(}gil䌧g'y ٖYi م O%-(vEof 4FlŖ W7>\\sGRƑ84\\sGRƑ84o#!qq1[ق'D1e`qiM!(:˧4},)j*i1 CkcS>㳋4^6rFS<,х'qAȌiv|FBc;OɢO#fIbƬJi F ..]9dKQTcHшM8@;gcS>㳋4^6rFS<,х'qAȌiv|FBc;OɢR4JHqqiM!(:˧4},)j*i1 CZ|rLpJvq{ІHvr琽e0X2Rٙ9JF4A I OP/|zNO,F 5J[3!"1|Q ?&̥-?h%$ً(n-)%|'Pt揥-EQ#F!7phx=Br$(}gil䌧g'y ٖYi م O%-(vEofR4FlŔ 񸴦iBӚ>JF4A I OP/|zNO,F 5J[3!"1|Q ?&̥4FlŖPR񸴦iBӚ>JF4A <x^"!29/fYe/f80)?kfBDcO2MCA٢R@혰R ť4O.T1h& FxI OP/|zNO,F 5J[3!"1|Q ?&̢4FlŔ _7>\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;Oɢ-?h%$ًYkҚBQu NhY*RU4b}qI OP/|zNO,F 5J[3!"1|Q ?&?h%$ً(uqiM!(:˧4},)j*i1 C܄I1)qB/B9#)BeZhacKfd F4;>o#!qq1[قD1cVn-)%|'Pt揥-EQ#F!7phx=8>D?! !{2-?4a{0I\d2r#x7h٢R@혵 W7>\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;OɢO#fIbA (o7>\\sGRƑ84\\sGRƑ84o#!qq1[ٔ46h;f,`A񸴦iBӚ>JF4A'"LpJvq{ІHvr琽e0X2Rٙ9\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;Oɢ(D6h;f,pr񸴦iBӚ>JF4Ai 1)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔR4JHqiM!(:˧4},)j*i1 CFxI OP/|zNO,F 5J[3!"1|Q ?&̠@T6h;f,@p_n-)%|'Pt揥-EQ#F!7phx=Ji1)qB/B9#)BeZhacKfd F4;>o#!qq1[ٔP6h;f,ҚBQu NhY*RU4b}Ԥi?! !{2-?4a{0I\d2r#x7h)?h%$ًPn-)%|'Pt揥-EQ#F!7phx=LucS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)?h%$ً 񸴦iBӚ>JF4A3I1)qB/B9#)BeZhacKfd F4;>o#!qq1[ق'D1cV ť4O.T1h& 0i1)qB/B9#)BeZhacKfd F4;>o#!qq1[قD1`P n-)%|'Pt揥-EQ#F!7phx= ->`9&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0@٢R@혵ť4O.T1h& 9B->`9&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0@t6h;f-`ZSHJ4NqrK%JZFBoz0|1)qB/B9#)BeZhacKfd F4;>o#!qq1[ق'D1e,!_ZSHJ4NqrK%JZFBoz2vE$(}gil䌧g'y ٖYi م O%-(vEofP'D1k( Ji F ..]9dKQTcHшM8FM9&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0@Dl) vX@rҚBQu NhY*RU4b}ѓ{I1)qB/B9#)BeZhacKfd F4;>o#!qq1[ق O#fIb 4n-)%|'Pt揥-EQ#F!7phx=7x^"!29/fYe/f80)?kfBDcO2M @6h;f,qiM!(:˧4},)j*i1 C|Ț"I OP/|zNO,F 5J[3!"1|Q ?& 6h;f,qiM!(:˧4},)j*i1 CI OP/|zNO,F 5J[3!"1|Q ?& !?h%$ًP8"񸴦iBӚ>JF4AAd?! !{2-?4a{0I\d2r#x7h٢R@혵 #Ji F ..]9dKQTcHшM8VE$(}gil䌧g'y ٖYi م O%-(vEofR٢R@혱J,#Ji F ..]9dKQTcHшM8@o#!qq1[ق O#fIbZWť4O.T1h&  &I OP/|zNO,F 5J[3!"1|Q ?&̥'D1eP@G7>\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;OɢO#fIbFqiM!(:˧4},)j*i1 C&I OP/|zNO,F 5J[3!"1|Q ?&̥-?h%$ً(񸴦iBӚ>JF4Aqs$(}gil䌧g'y ٖYi م O%-(vEof4Flł ť4O.T1h& r|fI OP/|zNO,F 5J[3!"1|Q ?&̥4FlŔXЀOn-)%|'Pt揥-EQ#F!7phx=DcS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)A Dl) vX(@@n-)%|'Pt揥-EQ#F!7phx=Fsi&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2R4JHZ񸴦iBӚ>JF4A(yLpJvq{ІHvr琽e0X2Rٙ9\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)@Dl) vXq񸴦iBӚ>JF4Aul$(}gil䌧g'y ٖYi م O%-(vEofR4Flōť4O.T1h& 'd?! !{2-?4a{0I\d2r#x7hPB4JHҚBQu NhY*RU4b}td?! !{2-?4a{0I\d2r#x7hR٢R@혵_7>\\sGRƑ84o#!qq1[ٔT6h;f-`ť4O.T1h& N&ēx^"!29/fYe/f80)?kfBDcO2MCFD1j-jW7>\\sGRƑ84o#!qq1[ٔT6h;f-AҚBQu NhY*RU4b}ԧ`&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{26h;f,@qiM!(:˧4},)j*i1 CS?! !{2-?4a{0I\d2r#x7hO#fIb  n-)%|'Pt揥-EQ#F!7phx=Jq$(}gil䌧g'y ٖYi م O%-(vEofQED1e qiM!(:˧4},)j*i1 CSLpJvq{ІHvr琽e0X2Rٙ9\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)A Dl) vZ4 n-)%|'Pt揥-EQ#F!7phx=JqcS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)E'D1e ҚBQu NhY*RU4b}ԧ#LpJvq{ІHvr琽e0X2Rٙ9JF4A)P<x^"!29/fYe/f80)?kfBDcO2M @B4JH4Ji F ..]9dKQTcHшM8Re8cS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ(?h%$ًY@ZSHJ4NqrK%JZFBoz7cS>㳋4^6rFS<,х'qAȌiv|FBc;OɢO#fIbƬh('7>\\sGRƑ84o#!qq1[ٔ 4FlŔP77>\\sGRƑ84㳋4^6rFS<,х'qAȌiv|FBc;Oɢ(!?h%$ً-CFqiM!(:˧4},)j*i1 C" &8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2O#fIbZB?񸴦iBӚ>JF4A)2LpJvq{ІHvr琽e0X2Rٙ9o#!qq1[ق4FlũcAJҚBQu NhY*RU4b}ю2'cS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ(iIDl) vXe(n-)%|'Pt揥-EQ#F!7phx="A$(}gil䌧g'y ٖYi م O%-(vEofPէD1`Rť4O.T1h& D^(y&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2O#fIbƔ?񸴦iBӚ>JF4AdlcS>㳋4^6rFS<,х'qAȌiv|FBc;OɢZ4JHYcFqiM!(:˧4},)j*i1 CٮLpJvq{ІHvr琽e0X2Rٙ9JF4Adl@x^"!29/fYe/f80)?kfBDcO2M @B4JHP2񸴦iBӚ>JF4Adl2LpJvq{ІHvr琽e0X2Rٙ9o#!qq1[ق'D1cFqiM!(:˧4},)j*i1 C٢p$(}gil䌧g'y ٖYi م O%-(vEof4FlŬ`ZSHJ4NqrK%JZFBoz"LpJvq{ІHvr琽e0X2Rٙ9\\sGRƑ84o#!qq1[ٔ4?h%$ًXѡ ҚBQu NhY*RU4b}Ѕ&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{24Flł _7>\\sGRƑ84JF4A$I OP/|zNO,F 5J[3!"1|Q ?&̢٢R@혲ť4O.T1h& A$(}gil䌧g'y ٖYi م O%-(vEofPЄ6h;f,Pp񸴦iBӚ>JF4A+rLpJvq{ІHvr琽e0X2Rٙ9JF4A+HcS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ)KO#fIbX8B񸴦iBӚ>JF4A+ I OP/|zNO,F 5J[3!"1|Q ?&̥-?h%$ً,iC񸴦iBӚ>JF4A+rLpJvq{ІHvr琽e0X2Rٙ9JF4A']x^"!29/fYe/f80)?kfBDcO2MCJO#fIb4n-)%|'Pt揥-EQ#F!7phx= {x&8%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2'D1j_7>\\sGRƑ84o#!qq1[ق( 6h;f, "Ji F ..]9dKQTcHшM8A䏐Jvq{ІHvr琽e0X2Rٙ9㳋4^6rFS<,х'qAȌiv|FBc;Oɢ-iDl) vZƖP'Ji F ..]9dKQTb};: yy;DcS>㳋4^6rFS<,х'qAȌiv|FBc;OɢRO#fIbbҚBQu NhY*RU@NxvcS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ(j٢R@혵 ť4O.T1 < E cS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ,6h;f,Uť4O.T1 < 1 PsfKH(}gil䌧g'y ٖYi م O%-(vEof٢R@혲PG7>\\sGRƑ <?! !{0e?4a{0(0P d2Rٙ9o#!qq1[ٍO#fIb(EiBӚ>JF4@TO01pDp0En6I OP/|zNO,F 5J[3!"1|Q ?&̰t6h;f-`ZSHJ4NqrK%JZFBo*'\h&A͙-"x^"!29/fYe/f80)?kfBDcO2M`t6h;f,/Ji F ..]9dKQTcHшMDa Q<ǘBI)qB/B9#)BeZhacKfd F4;>o#!qq1[ٍ(?h%$ً7h>-)%|'Pt揥-EQ#F!7 y.5dg%S>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ4FlũJn-)%|'Pt揥-EQ#F!7x^"!29/f /f ` 5J[3!"1|Q )%|'Pt揥-EQ#F!7 @!2xJvq{ІHvr琽e0X2Rٙ9㳋4^6rFS<х@@4 Kfd F4;>o#!qq14O.T1h&3( иq&O OP/|zNO,F 5J[3!"1|Q ?&̠'D1`VWAiBӚ>JF4@S&eP:t.$Jvq{ІHvr琽e0X2Rٙ9n$|S>㳋4^6rFS<,х'qAȌiv|FBc;O#fIbԥ)_iM!(:˧4},)j*i1 (}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]9dKQTcHшM86'(}gil䌧g'y ٖYi م O%-(vEof4h(6h;f-JAiBӚ>JF4Chpi#x^"!29/fYe/f80)?kfBDcO24JH)JՋJi F ..]9dKQTcHшM88x^"!29/f /f ` 5J[3!"1|Q )%|'Pt揥-EQ#F!7%  OP/|zNOZF`0O%-(v>\\sGRƑppѐz2Rd?! !{2-?4a{0I\d2r#x7hƂ`Dl) vXѣVWlZSHJ4NqrK%JZFBoJF@ AI ?! !{2-?4a{0I\d2r#x7٢R@혵)JWZSHJ4NqrK%JZFBoPXJvq{ІHvr琽2֟0p(2)l̄ƞ'gDd..&3iBӚ>JF4@ -Pmu'(}gil䌧g'y ٖYi م O%-(vEof4h6h;f,PoشiBӚ>JF4@ -Pmu>A)qB/B9#)BeZhacKfd F4;>o#!qq1D1jRXiBӚ>JF4APmu(}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]9dKQTcHшMP]@@Lx^"!29/fYe/f80)?kfBDcO2Mp@@D6h;f,i@AiM!(:˧4},)j*i1 @ (p ?! !{2-?4a{0I\d2r#x7٢R@혵)JWZSHJ4NqrK%JZFBox^"!29/f /f ` 5J[3!"1|Q )%|'Pt揥-EQ#F!7l y Lx^"!29/fYe/f80)?kfBDcO2M@O#fIbƃLZSHJ4NqrK%JZFBoA5, OP/|zNO,F 5J[3!"1|Q ?h%$ًRť4O.T1h&( k%?C;8OECg$e;9?s^kO^ 8 @?kfBDcO2SHJ4NqrK%JZFBo(p< -d?! !{2-?4a{0I\d2r#x7h4FlŬť4O.T1h&( k $|S>㳋4^6rFS<,х'qAȌiv|FBc;O#fIbԥ)_iM!(:˧4},)j*i1 @y)qB/B9#)B`Zh`Q` \d2r#x7ҚBQu NhY*RU4b}H&9K(}gil䌧g'y ٖYi م O%-(vEof5?h%$ًR5_ZSHJ4NqrK%JZFBo%s OP/|zNOZF`0O%-(v>\\sGRƑ=\=\ɓS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ,d6h;f-cV4BiM!(:˧4},)j*i1 h΃h̑ OP/|zNO,F 5J[3!"1|Q ?h%$ًRť4O.T1h&2sS>㳋4^6rFS<х@@4 Kfd F4;>o#!qq14O.T1h&2s2&O OP/|zNO,F 5J[3!"1|Q ?&6h;f,jZSHJ4NqrK%JZFBo'8ʌ"G%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&36h;f-JR>\\sGRƑ6x^"!29/f /f ` 5J[3!"1|Q )%|'Pt揥-EQ#F!7nd)qB/B9#)BeZhacKfd F4;>o#!qq1[كD1kť4O.T1h&l OP/|zNO,F 5J[3!"1|Q ?h%$ًRť4O.T1h <`pJvq{ІHvr琽e0X2Rٙ9JF4?! !{2-?4a{0I\d2r#x7hƖ 4Flł( jiM!(:˧4},)j*i &(}gil䌧g'y ٖYi م O%-(vEof 4FlŨ +>\\sGR d OP/|zNOZF`0O%-(v>\\sGR d̠*BL OP/|zNO,F 5J[3!"1|Q ?& UD1`Ji F ..]9dKQTcHY?! !{2-?4a{0I\d2r#x7hR4JHXBԯZSHJ4NqrK%JZF(}gil䌧g'y ك-i فG0h'qAȌiv|FBc;Ji F ..]9dKQTcH kx^"!29/fYe/f80)?kfBDcO2M@ Dl) vZ?iM!(:˧4},)j*iA6d?! !{2-?4a{0I\d2r#x7hA٢R@혵 ҚBQu NhY*RU486h̘x^"!29/fYe/f80)?kfBDcO2MP٢R@혵h6-)%|'Pt揥-EQ#Ch<x^"!29/fYe/f80)?kfBDcO2MAJO#fIbX'LZSHJ4NqrK%JZF}ؑd?! !{2-?4a{0I\d2r#x7hƖ4?h%$ً4 ť4O.T1hpm6L OP/|zNO,F 5J[3!"1|Q ?&j 4Flł>\\sGRƑ?! !{2-?4a{0I\d2r#x7hO#fIbTť4O.T1h@@L OP/|zNO,F 5J[3!"1|Q ?&̰`t6h;f,h( ѿZSHJ4NqrK%JZF@ &(}gil䌧g'y ٖYi م O%-(vEofZ4Flłn-)%|'Pt揥-EQ#AL OP/|zNO,F 5J[3!"1|Q ?&h((8:4JHE,h6-)%|'Pt揥-EQ#A5,x^"!29/fYe/f80)?kfBDcO2MՍZ4JHX((1_WJi F ..]9dKQTcH"`pJvq{ІHvr琽e0X2Rٙ9\\sGRƑ%s&(}gil䌧g'y ٖYi م O%-(vEof 4FlōF-)%|'Pt揥-EQ#FNq08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{1D1j1iM!(:˧4},)j*i Oy08%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0P@@6h;f-`6-)%|'Pt揥-EQ#@@0PJvq{ІHvr琽2֟0p(2)l̄ƞ'gDd..&3iBӚ>JF4@T?! !{2-?4a{0I\d2r#x7hƖ4FlŬ ť4O.T1h  BDBS>㳋4^6rFS<,х'qAȌiv|FBc;Oɢ4 ?h%$ًPeiBӚ>JF4@T!"!)qB/B9#)BeZhacKfd F4;>o#!qq1[٬?h%$ًX1`.-)%|'Pt揥-EQ#@@0UD OP/|zNO,F 5J[3!"1|Q ?&?h%$ًYKҚBQu NhY*RU4 Qd(}gil䌧g'y ٖYi م O%-(vEof4j4JH5`&-)%|'Pt揥-EQ#@@0UFvkY"!)qB/B9#)BeZhacKfd F4;>o#!qq1[٭AD1`A׋Ji F ..]9dKQTcH4 Cѝ OP/|zNO,F 5J[3!"1|Q ?&̰`D6h;f,jҚBQu NhY*RU4 Qx|u"x^"!29/fYe/f80)?kfBDcO2MbO#fIb X/ Ji F ..]9dKQTcH4 F(}gil䌧g'y ٖYi م O%-(vEof 4?h%$ًP( PlZSHJ4NqrK%JZF`5$D%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{1F'D1jP1K7>\\sGRƑ h*$D%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2D1`//>\\sGRƑ h*>M"!)qB/B9#)BeZhacKfd F4;>o#!qq1[ٖ4T6h;f-e >\\sGRƑ h*@?! !{2-?4a{0I\d2r#x7hX2٢R@혲 P6-)%|'Pt揥-EQ#@@0UY쀙$D%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2Y`Dl) vYK-@Ji F ..]9dKQTcH4 @9W1"x^"!29/fYe/f80)?kfBDcO2MՄ-?h%$ًP@8_>\\sGRƑ h*wDBS>㳋4^6rFS<,х'qAȌiv|FBc;OɢY`Dl) vX!`/Ji F ..]9dKQTcH4 Bd(}gil䌧g'y ٖYi م O%-(vEofX)`Dl) vZX7ZSHJ4NqrK%JZF`0"x^"!29/fYe/f80)?kfBDcO2M4FlŔ 4n-)%|'Pt揥-EQ#@@0U"x^"!29/fYe/f80)?kfBDcO2M@O#fIb//>\\sGRƑ h*|3"HJvq{ІHvr琽e0X2Rٙ9-)%|'Pt揥-EQ#@@0U6I"x^"!29/fYe/f80)?kfBDcO2ME?h%$ًP(@0/EҚBQu NhY*RU4 P("!)qB/B9#)BeZhacKfd F4;>o#!qq1[٬a Dl) vX 1J/ť4O.T1h  OP/|zNO,F 5J[3!"1|Q ?&i@O#fIb iBӚ>JF4@T{2 y"!)qB/B9#)BeZhacKfd F4;>o#!qq1[٭a Dl) vX !@ZSHJ4NqrK%JZF`x(HJvq{ІHvr琽e0X2Rٙ9\\sGRƑ h*duۉ OP/|zNO,F 5J[3!"1|Q ?&h)e'D1e(#ť4O.T1h \\HJvq{ІHvr琽e0X2Rٙ9JF4@U A$D%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0E'D1j_bҚBQu NhY*RU4 T..ג"x^"!29/fYe/f80)?kfBDcO2M"JO#fIbRiM!(:˧4},)j*i "x^"!29/fYe/f80)?kfBDcO2M1a O#fIb (#ť4O.T1h \\"!)qB/B9#)BeZhacKfd F4;>o#!qq1[ٍ5?h%$ً( jLZSHJ4NqrK%JZF`  OP/|zNO,F 5J[3!"1|Q ?&٢R@혰UҚBQu NhY*RU4 T 䈄(}gil䌧g'y ٖYi م O%-(vEofr4FlŨpuิiBӚ>JF4@Uo$D%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{2T46h;f-`ҚBQu NhY*RU4 Tl@םDBS>㳋4^6rFS<,х'qAȌiv|FBc;OɢZS٢R@혵 iM!(:˧4},)j*i6!d`HJvq{ІHvr琽e0X2Rٙ9\\sGRƑ h*bȑ?! !{2-?4a{0I\d2r#x7hA4FlŨiM!(:˧4},)j*iFHJvq{ІHvr琽e0X2Rٙ9-)%|'Pt揥-EQ#@@0ULF6aDBS>㳋4^6rFS<,х'qAȌiv|FBc;OɢZ٢R@혰BFiBӚ>JF4@T""x^"!29/fYe/f80)?kfBDcO2Mj-?h%$ً,jJi F ..]9dKQTcH4 HM$D%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{0AD1kP77>\\sGRƑ h*𸸓S>㳋4^6rFS<,х'qAȌiv|FBc;OɢP(8 1IDl) vZ J(>\\sGRƑ h*qq6F)qB/B9#)BeZhacKfd F4;>o#!qq1[ق( ?h%$ً oAiBӚ>JF4 se0?! !{2-?4a{0I\d2r#x7h(?h%$ً X7 >-)%|'Pt=..Y*RPJvq{ІHvr琽ִх'qAȌiv|FBc;Oɢ,IDl) vYCK)_i S>㳋4^6rFS<ֵ/fP2"=!(:ˡ>qrRKfd F4;>o#!qq14O.)qB/B9#)BkZF(` ΐiBPdKQI\d2r#x7ҚBQB %?C;8OECg$e;9?s^kO^ 8 @?kfBDcO2SHJ4Bqq1((Q0D%?C;8OECg$e;9?s^̲O^,p`R)l̄ƞ'gDd..&3+{5'D1e JA (Ɩ X/P"JW7R𸸘1 $>\\sGԛ;$>\\sGԛ;𸺖JHJ4NqrRlY*RƑI4O.THJ4NqrK%JZ6vqrI%|'Pt揥-EQMoM!(:˧4},)j*Bos|'A\\sGR&HJ4NqrK%JZ$>\\M!(:I4O.&iBFA$>\\HBQu C}JdzI%|'Pt=BHJ4Nqr{OHBQu C}I%|'Pt=..I%|'Pt=..4ԓHJ4Nqr{O\\A椚BQu C}A9$>\\ #3i F ..]iq)&iBPyC=$>\\ ;#4HJ4Nqr{OJq@٤BQu C}H &iBRi&iBӚ>J@z PmuM!(:˧4},)j* 1M!(:˧4},)j* >lɁ&iBӚ>J@%hDHi F ..]9dKQTc&iBӚ>J@@9$>\\sGRP@Dli F ..]9dKQTcd`LI4O.T1{ědHJ4NqrK%JZ AfJdHJ4NqrK%JZ AHDi F ..]9dKQTc\\sGRd`LI4O.T8I$>\\sGR%*P6dHJ4NqrK%JZ `rI%|'Pt揥-EP&iBӚ>J@[P}I&iBӚ>J@V<i F ..]9dKQT@ ,i F ..]9dKQTx!`rI%|'Pt揥-EPQdHJ4NqrK%JZ0|gq&$BQu NhY*RU]$HJ4NqrK%JZ3k@Gq&$BQu NhY*RU]* 8}&$BQu NhY*RU]*|cLI4O.T #0 6T8L:M!(:˧4},)j*ͮ4{)M!(:˧4},)j*ͮ( &$BQu NhY*RU]*@POi`rI%|'Pt揥-EPQYҠ M!(:˧4},)j*ͮ( LI4O.T #0 6T%`)W`rI%|'Pt揥-EPQYҠܦLI4O.T #0 6T{)M!(:˧4},)j*ͮRD6S09$>\\sGR(,Pq909$>\\sGR(,SOM!(:˧4},)j*ͮN74y09$>\\sGR(,TхdM!(:˧4},)j*ͮHJ4NqrK%JZ3k@+Ol..&$BQu NhY*RU3LI4O.T k$>\\sGR- aLI4O.T k6h `rI%|'Pt揥-EP[]ty26LI4O.T k$HJ4NqrK%JZ 7\\sGR- i &iBӚ>JAmuq&$BQu NhY*RUAI&iBӚ>JAmu|,ԓHJ4NqrK%JZ>mLI4O.T kfhx!09$>\\sGR-@&$BQu NhY*RUAh@P`rI%|'Pt揥-EP[]t 6iM!(:˧4},)j*LɓM!(:˧4},)j*hM!(:˧4},)j*3 &$BQu NhY*RU#O&$BQu NhY*RU;4HJ4NqrK%JZs|'A<@i F ..]9dKQTo>d &iBӚ>JCDHJ4NqrK%JZA%;&$BQu NhY*RU$BQu NhY*RUPl,B`rI%|'Pt揥-EP%(i F ..]9dKQT88 AI&iBӚ>JC@i F ..]9dKQT88 Aq|li F ..]9dKQT1HJ4NqrK%JZɈ<ɓM!(:˧4},)j*S&#@#D2`rI%|'Pt揥-EP dh"LI4O.TLh09$>\\sGR\M!(:˧4},)j*%΃x09$>\\sGR\E2`rI%|'Pt揥-EP;>dHJ4NqrK%JZ sE}2`rI%|'Pt揥-EPԮ"v|Ɂ&iBӚ>JA i F ..]9dKQTͯ>DHJ4NqrK%JZ琠&$BQu NhY*RU<FdHJ4NqrK%JZ2&BQu NhY*RUّ4F6dHJ4NqrK%JZu0$HJ4NqrK%JZp\I&iBӚ>JA6M!(:˧4},)j*8{LI4O.TFI&iBӚ>JAʀ dHJ4NqrK%JZeA&$BQu NhY*RUM!(:˧4},)j*k2HJ4NqrK%JZuts`rI%|'Pt揥-EP q:aƟdHJ4NqrK%JZ2`rI%|'Pt揥-EP rI%|'Pt揥-EP r>"`rI%|'Pt揥-EP dfi F ..]9dKQTY&$BQu NhY*RUFtde`>$$LI4O.T=BȓM!(:˧4},)j*k#:"`rI%|'Pt揥-EP dg@DM!(:˧4},)j*fI%|'Pt揥-EP ۠LDi F ..]9dKQT6<i F ..]9dKQT6̐09$>\\sGRmp2B$HJ4NqrK%JZA"LI4O.TtN dI&iBӚ>J@3NHJ4NqrK%JZ]<LI4O.TuЁiLI4O.TuӞiN`rI%|'Pt揥-EP Ӯq09$>\\sGRA  `rI%|'Pt揥-EP$>\\sGRBLI4O.T,M!(:˧4},)j*>6&Li F ..]9dKQTdq0rI%|'Pt揥-EQMJɁ&iBӚ>JC̕M!(:˧4},)j*@s̙0rI%|'Pt揥-EP4$BQu NhY*RUhL0rI%|'Pt揥-EP4y09$>\\sGR 2`HJ4NqrK%JZDL!0rI%|'Pt揥-EQ:0rI%|'Pt揥-EQ>S0M!(:˧4},)j*N`HJ4NqrK%JZ 0@m6DHJ4NqrK%JZIM!(:˧4},)j* t̉0rI%|'Pt揥-EU66$BQu NhY*RUJf&I4O.Tn!"`rI%|'Pt揥-EP$BQu NhY*RU< IM!(:˧4},)j*w!!`HJ4NqrK%JZp&I4O.T(@9$>\\sGRBL9$>\\sGRBND&iBӚ>JB/0&I4O.Ti|gg$BQu NhY*RU4؅Ęi F ..]9dKQT딉&iBӚ>JNh`rI%|'Pt揥-ESi`rI%|'Pt揥-ES"`HJ4NqrK%JZPBL9$>\\sGR M!(:˧4},)j* <`HJ4NqrK%JZE$>\\sGRƑ$>\\sGRƑ#+&$BQu NhY*RU4PLI4O.T1h-@@i F ..]9dKQTcH A/u&$BQu NhY*RUqVsOI%|'Pt揥-EQ#@%D&iBӚ>J@%h2'ܤi F ..]9dKQTcH @"3^BɁ&iBӚ>JF43 xM!(:˧4},)j*i(Ɂ&iBӚ>JF4LI4O.T1h HJ4NqrK%JZFJ)J09$>\\sGRƑ=`rI%|'Pt揥-EP D#%+8{$>\\sGR%+8{$>\\sGRƑki F ..]9dKQTcH @B`rI%|'Pt揥-ES.y &iBӚ>JPd$BQu NhY*RU@P0rI%|'Pt揥-ETm|HH9$>\\sGRML09$>\\sGRS2d&iBӚ>JRZlɁ&iBӚ>JR@|&iBӚ>JRFNx0rI%|'Pt揥-ETi&iBӚ>JSi&I4O.TN<Li F ..]9dKQT&c@0rI%|'Pt揥-EP09$>\\sGRƑ# LI4O.T1j6LI4O.T1h&HJ4NqrK%JZFBotHJ4NqrK%JZFBoz2R̓i F ..]9dKQTcHшM8S{)q$$BQu NhY*RU4b}ބ!q$$BQu NhY*RU4b}Ѯ|bII4O.T1h&  ؒcM!(:˧4},)j*i1 C6a &9$>\\sGRƑ84n$$BQu NhY*RU4b}ЅB" II4O.T1h&  O0LrI%|'Pt揥-EQ#F!7phx=3$$BQu NhY*RU4b}ѯ&9$>\\sGRƑ84JF4A>DHJ4NqrK%JZFBozs 1&iBӚ>JF4AcM!(:˧4},)j*i1 CM<i F ..]9dKQTcHшM8RcM!(:˧4},)j*i1 CBC8i F ..]9dKQTcHшM8B8 HJ4NqrK%JZFBozs$$BQu NhY*RU4b}Ԯ`:HJ4NqrK%JZFBozDt 1&iBӚ>JF4A&J3II4O.T1h& &ĘHJ4NqrK%JZFBozcM!(:˧4},)j*i1 C8+rLrI%|'Pt揥-EQ#F!7phx=27cM!(:˧4},)j*i1 C5ϕcM!(:˧4},)j*i1 C YHJ4NqrK%JZFBoz9&9$>\\sGRƑ84DHJ4NqrK%JZFBozsII4O.T1h& vcM!(:˧4},)j*i1 CgdHJ4NqrK%JZFBozII4O.T1h&  &Di F ..]9dKQTcHшM8B9cM!(:˧4},)j*i1 C$HJ4NqrK%JZFBozZ|rLrI%|'Pt揥-EQ#F!7phx=A II4O.T1h& !3DL&9$>\\sGRƑ84\\sGRƑ84JF4AdcM!(:˧4},)j*i1 CɽHJ4NqrK%JZFBoz2oq&9$>\\sGRƑ84JF4Ad[2LrI%|'Pt揥-EQ#F!7phx=$$BQu NhY*RU4b}Ѕ$$BQu NhY*RU4b}ӌ"LrI%|'Pt揥-EQ#F!7phx=8D1&iBӚ>JF4Aqs$$BQu NhY*RU4b}9>3$$BQu NhY*RU4b}L<&9$>\\sGRƑ84JF4Aul$$BQu NhY*RU4b}qLrI%|'Pt揥-EQ#F!7phx=gJII4O.T1h& N&2LrI%|'Pt揥-EQ#F!7phx=Jq4F$HJ4NqrK%JZFBozi$$BQu NhY*RU4b}ԧ`&9$>\\sGRƑ84\\sGRƑ84JF4AfLi F ..]9dKQTcHшM8G lI1&iBӚ>JF4A)2LrI%|'Pt揥-EQ#F!7phx= q$$BQu NhY*RU4b}С&9$>\\sGRƑ84JF4AcӬi F ..]9dKQTcHшM8SiII4O.T1h& dN$$BQu NhY*RU4b}Ѣ$LrI%|'Pt揥-EQ#F!7phx="C1&iBӚ>JF4AdlcM!(:˧4},)j*i1 CٮLrI%|'Pt揥-EQ#F!7phx=Y5$$BQu NhY*RU4b}ՑD1&iBӚ>JF4Adl;$$BQu NhY*RU4b}ՑDII4O.T1h& $$BQu NhY*RU4b}ЅBHJ4NqrK%JZFBoz؃HcM!(:˧4},)j*i1 CBh4&9$>\\sGRƑ84JF4A!s`II4O.T1h&  @i F ..]9dKQTcHшM8B8A 1&iBӚ>JF4A!sA 1&iBӚ>JF4A9II4O.T1h& 4"LrI%|'Pt揥-EQ#F!7phx=D &9$>\\sGRƑ84\\sGRƑ84JF4AucM!(:˧4},)j*i1 C&A͙-"i F ..]9dKQTcHшM8A&iBӚ>JF4A8H$BQu NhY*RU@Nx;l&ן"LrI%|'Pt揥-EQMo1P[O  cM!(:˧4},)j*Bos|'A\\sGR&w7t( $II4O.T1 < 1 PsfKHBQu NhY*RU4b}Q<ǘBi F ..]9dKQTcHшMDa pyLrI%|'Pt揥-EQ#F!7 y.4AJi&9$>\\sGRƑ < H=1&iBӚ>JF4@TO01шM2ZE$>\\sGRƑ <y0ēM!(:˧4},)j*i1 `c!q#8揑. i F ..]9dKQTcHшM$BQu NhY*RU4b}'BQu NhY*RU4b}>I&iBӚ>JF4@S&bI%|'Pt揥-EQ#F!7ə@T$>\\sGRƑ d̠*B@Tę=$>\\sGRƑ d̠*B@TđI4O.T1h& 4$>\\sGRƑ, 4=$>\\sGRƑ, 4I4O.T1h&i F ..]9dKQTcHшM86'BQu NhY*RU4b} I%|'Pt揥-EQ#F!7"I%|'Pt揥-EQ#F!7% I4O.T1h&d=$>\\sGRƑppѐz2RG$>\\sGRƑ@@֒i F ..]9dKQTcHшM PY2zI%|'Pt揥-EQ#F!7( k @8[]dI%|'Pt揥-EQ#F!7h@8[]i&iBӚ>JF4APmuh@8[]d&iBӚ>JF4APmuh@8[]dI%|'Pt揥-EQ#F!7l y I4O.T1h& !t^BɓM!(:˧4},)j*i1 `k]אG$>\\sGRƑ< -HJ4NqrK%JZFBo(p< -dHJ4NqrK%JZFBo(p< -G$>\\sGRƑDi F ..]9dKQTcHшM"Ϋ#8揑. i F ..]9dKQTcHшMDi&iBӚ>JF4A4JA4JLi F ..]9dKQTcHшMDtDdI%|'Pt揥-EQ#F!7ѓdi F ..]9dKQTcHшMdQdLi F ..]9dKQTcHшMdQdH$BQu NhY*RU4b}FM!(:˧4},)j*i1 u&OI4O.T1h&lI4O.T1h <`rI%|'Pt揥-EQ#@!09$>\\sGRƑ`rI%|'Pt揥-EPɘi F ..]9dKQT2fPq&$BQu NhY*RU4iq09$>\\sGRƑ&iBӚ>JF4 Ɂ&iBӚ>JF4 u2`rI%|'Pt揥-EQ#Ch=\Ɂ&iBӚ>JF4 0`rI%|'Pt揥-EQ#Ch>H`rI%|'Pt揥-EQ#Ch9`rI%|'Pt揥-EQ#CI&iBӚ>JF4@(pɁ&iBӚ>JF4@@LI4O.T1h<Ɂ&iBӚ>JF4א`rI%|'Pt揥-EQ#O&iBӚ>JF4M!(:˧4},)j*i( ki F ..]9dKQTcH{M!(:˧4},)j*i2s&iBӚ>JF4F'i F ..]9dKQTcH4 i F ..]9dKQTcH4 A@p(  I4O.T1h  BDRM!(:˧4},)j*i@BDRM!(:˧4},)j*i$HI%|'Pt揥-EQ#@@0U&HI%|'Pt揥-EQ#@@0UFvkY")&iBӚ>JF4@T=P<HJ4NqrK%JZF`4NDRM!(:˧4},)j*iמ@HJ4NqrK%JZF`5$E$>\\sGRƑ h*$E$>\\sGRƑ h*>M")&iBӚ>JF4@UgBQu NhY*RU4 U> DRM!(:˧4},)j*i0J#DRM!(:˧4},)j*i|N$E$>\\sGRƑ h*I4O.T1h  ")&iBӚ>JF4@T"&HI%|'Pt揥-EQ#@@0U4fDHJ4NqrK%JZF`l..2$E$>\\sGRƑ h*GĄI4O.T1h I4O.T1h )kI4O.T1h <BQu NhY*RU4 Sǀ$E$>\\sGRƑ h*DRM!(:˧4},)j*i5,HJ4NqrK%JZF`4E'n$E$>\\sGRƑ h*qq")&iBӚ>JF4@U DRM!(:˧4},)j*iH^HI%|'Pt揥-EQ#@@0UBy")&iBӚ>JF4@U ̌I4O.T1h \\")&iBӚ>JF4@U"i F ..]9dKQTcH4 P_7"i F ..]9dKQTcH4 PDRM!(:˧4},)j*i6 k΁")&iBӚ>JF4@U0$E$>\\sGRƑ h*bȑHJ4NqrK%JZF`"i F ..]9dKQTcH4 R$E$>\\sGRƑ h*#fDHJ4NqrK%JZF`lBQu NhY*RU4 Rd"HI%|'Pt揥-EQ#@@0U!6HJ4NqrK%JZF`sGLI4O.T1h \\MI%|'Pt揥-EQ#DDM$>\\,)j)$:\\Lgi&iЅBc;0P@Paqq&4A, Ƃ_P"JW7R+qq1&M!(:˧4}I t9M!(:˧4}I dKHJ4NqrRlY*RƑHJ4NqrK%JZƃiBӚ>JRl4O.T1 BQu NhY*RU@Nx>\\sGR&4O.T2ԚBQu C~X@*i F ..^BQu Nh4Nh4C~BQu NhY*RUh"HJ4NqrK%JZ pLt>\\sGR%,&iBӚ>J@[`iBӚ>JADffK-4O.T kYi%|'Pt揥-EP[]t 7X*i F ..]9dKQTo-4O.T4`iBӚ>JC0"i F ..]9dKQT1h*HJ4NqrK%JZ sSHJ4NqrK%JZƬ4O.T"h44O.TFY@%|'Pt揥-EP q;-4O.TSRi F ..]9dKQTY०iBӚ>J@3oM!(:˧4},)j*fy`%|'Pt揥-EP-4O.T1pRHJ4NqrK%JZFMeiBӚ>JF4߃iBӚ>JF4AQ%|'Pt揥-EQ#F!7 y.88:i F ..]9dKQTcHшM`&iBӚ>JF4@S&fBQu NhY*RU4b}L@\ppt>\\sGRƑ,D>\\sGRƑpnT>\\sGRƑppM!(:˧4},)j*i1 (=.X:i F ..]9dKQTcHшM M!(:˧4},)j*i1 @ M!(:˧4},)j*i1 `k^ BQu NhY*RU4b}@@ׂBQu NhY*RU4b}H󱠩%|'Pt揥-EQ#F!7{M!(:˧4},)j*i1 ,D>\\sGRƑ7-4O.T30`D>\\sGRƑE&iBӚ>JF4@YcAM!(ӡ wH4`R_i_Y`A?񠅂(Ɩ X/c;$@F`^AfvKO(\\LgdBc;&M@ k}A./usr/opt/perl5/lib/site_perlAA kꞮA./usr/opt/perl5/lib/site_perl/5.005AA k*A./usr/opt/perl5/lib/site_perl/5.005/aixAA kkA./usr/opt/perl5/lib/5.00503l/5.AA kްA./usr/opt/perl5/lib/5.00503/site_perlxAA k6/A./usr/opt/perl5/lib/5.00503/auto/GetoptAA kA./usr/opt/perl5/lib/5.00503/auto/Getopt/LongAA k6/A./usr/opt/perl5/lib/5.00503/autoGetopt/AA kA./usr/opt/perl5/lib/5.00503/BtoAA kmA./usr/opt/perl5/bin5.00mAmA k mA./usr/opt/perl5mAmA kTA./usr/opt/perl5/lib5.00AA l"Zm2@n;76:19^T&./usr/opt/perl5/bin/a2pmm==)  8HK`(,;@Aabc| !$%)-.Det} "#&*+/049:?BEIMRSUVWYZ\]fgkmvy~126CFGOQ[^qwjJa EFlt,9y̼Fsi]"BTrG<$gD"+&(+:u_tn3wp+ &l9EUUJD,@nt:E~rt[L"n@Nra0dn͵aR"W94CQ4hw!:%l;8d Y.gV|{N!5KECǽ4BWy:֢DZPb!)T<-;!R(jt (IGĭdt:2wC@Wj"Nb }-95:ux$QbN֭_b,=luql E)5:ux$QbVӿiYe3vMȪK& _k!Dtt:wo7;P7dv~Z{Q!6/f+f+ E\O0g Dk!sf0 >[ȷciW3imls(~֤&GB2լWNGK)"+ ؤ" 0:k|זXY6cзŽߴadv$ ñH0K@kmd.lW5C|sYWOˬy,h!`%(` GGfLV6`+,m%o3O TYO ,r+;V$` ?A@FEY 0:hm[MO:k˥n]cd]姼(;PP97d',\~: &@ߠA`=v+lεk=KV)~V8I*@ l'P2pΙZ6`!s918L_~R?sߠBNzv') LWj"q!i 0u͆Afw| q`d\2ZU6Zh.YȼvVL:]=vAJV/&hh̅dåY0+y>4.gd"A^,V ǩ&ǥSeVYw:\gi;;8:Jִ/rʳ_dVRW/rEs/*}x=Z;5i;8;$8-:͊ !9:֫8͘qNp\:;Wj 0E;07!;qoYO lȍWj"q!i 0tv') LWj"q!i 0t5<)2JB"aHD4Yɸ+%9dЬ.+g,2W'C]+Z]zt6q[ tVQA8ËH(YcfaŤQW,1jiu.J¶ m :h!qفqtȸz:!qXjҶpC$"BmZΙWL#E!tYe-GLCΈqdVTzVvE"(. #E!WD8-V I ݑcD泼Nfڮ$[03c iq"Q¶t:0D iq"Qʶt:0D iq"Qmu1oٱ`ӐEv,3mu1oٱ`ӐEv=P5-0qtR$r:A$P# -Wj"q!i 0t1 N,`*TA%ԣdKk_kNCL0Vfd Rb")JUa ufU8VUmu0<իoD\Yl:)~JӫOB' "pL\ubT%N;DAӫOB'8tCL'5{*?J.v?ʠڤc+ ~[T{P7FLVWuOyChߥ1Y_ab+P膘1]jl:>TܸJ?pfԑΕLXaņ{i0~{)(?8ԑ`0sCRG Aa-I [~ҩ (;{Lz؂o{ ==k{گѝ*3=H?tCL گ{by?tC7by ~.k`pAP8 XII~$Bit:{ H?wi98AWE`+g~8{ Fqa%ȗYj0mB^VÆiFL.4^|ECP $iYRA}1dߠ#=CP9({ %2w{+b ޵]v~X;gu"PZѳ;NL(1,$°NRA T2#5((("J-iCyhz0~z^RL$O dQ&hF aM"Rl"IC VV߭@ 5Im/`A5+2E+QLngZrDDdjNZ*S#tLmhZNSԟz$ȡ~Z~OkS~h"$xVe Jus0xe cpF:Y57SRLu L+qU3dQl+,K;QZɋɔ5(c2+!sfS?ҚYf̻"ðsE3FٝRGԳ.ȱ_aDh`=^8"z ߈_{9ٗdOi4LJٝȝzij4-)"M.J>K.Z{fa,jQe;4[3 "a`=`^_`͞0\ԣM3ť.{ABf-tWh5(3{9Қ"a`=i0#f0GٝCR;-=3WթGٝť4D{ ڔ}߽ť"'L4\GJ>D账`װ5(3{ҋ1&iv R;iE 40{ 6fwc#`/abԣeť4Oi1dJ>&wJ]/d #G${c() GٝFtny{!LE`{ fwcť4rLmJ>$ 4;3{ mJ>/Dޚb٘i5gF{)0,e/"R;Z{k^jQg~04E4=R;&ic[@aGٝIJi0CjJ>oMVH "s`_é2Դ+|M頊R.l+l#DXKRЫ)4TC#BBhI@IC%Gٝ-=47Gٝ-)&v hfwgZSDL>@ J>lZSDL>1 J>}3#jQg~p[Jh݃;{ Nڔ}߽F-)&v =R;DI>&/i }߽bҚ]=)-J>bҚ]<{ Qڔ}߽E1 ڔ}߽Z{gaFԣ݃>{ OZ}߽X`Vfw`!Jiv Dz04jQg~@{ @R;v1i=mJ>Kw/o({ %GٝMU|UK- ,LEI420)(9fd=Yiҁ WGG` GٝMU|^ bIeWS%i&F",5x@܈y{";(GٝM頊U|^E %_OԖi"F@ֲJJ30r+ Q~v y (ڔ}ދ$VH " t"^,$Z~%?RYhdaR(PrZ( ({ Q$`$F. GٝhyhVqn$hv>#e!5(3-O- .H&1iM/axԣ\ťba`{ fwbimJ>ʢ҃8 ]=@QGٝظ-( 48{ ƥfwf͙8hO`hDQ4%(+6fwfK3 q$e0 ^u׵_ؕ. }y݃BE Z}߽30f$i{ % p#Eڔ}߽Y]^ȠGٝٺf,ť4.%@ȥfwfZQf&iv OdTfwbZ-( 4{R;hYv k\.${oDE(FԣZ[J,M.OdSfwbť]ZE1=0"-4ѩGٝشOha`8jQg~-En{"b(v (QM/a`,jQg~-OOhT&fwf´ZPfײ*EQ0Qf ^ĖfwfJ>Ӳv rG"/v>DJ>ӣE4DOi0 H$Fe)3;e-O-- zhWshU%HC] bXI,*J~M1$7PPPPإD%GٝM_a"GW "^- ZZSDD]=tFg~̻%&-O4+l43 _[9 2Pt5ж"݃= -J>o[ j"GWS%i&F",5݃ȂR;ƒ`M }߽2= MJ>i`\ڔ}߽,(3{LVv /{"MJ>݃ $jQg~M^1|v -M/d0Rԣ0ҁ;R; 7c{ H  jQg~"x/a8G?{J>E}0;ח2 (3{ZQa$e/-{U)%ji{ t/d+;jQg~$Hf,ēax?/k±1GٝܠēE/I${`V"-4`GٝhAZSK3 A3k9${ Xo< ט=2 R;GfarC@"p=&/j$D<107ap26=2 SR;f,ēap?/a+5(3{iEi4d IG${a;ψ(KR;Ifb*InHA4 k$${& H1{!hl9I_a>]Oj6H+i4^VkڷlwIm!/`WCE'D"A5i w`,&ECda*us=K!92C0$gZsoyX&ʭ$c+]Oj6O{Zvjޞ)>$2A?qҁ` 3.Ɇ'cPkc.q)SkKjY(dFCg]J\PȸC!]>dٝjye4VjSBmA"e @t՚h;&Vǀr:nj6oM{Zvjޞ)>$2@2t:'"IC f3tnI{ r͞'!-0LA3fF B,%0f]̭g7, VPQW҂GJxa\gL+]Yr4솇HPp\ـ,*sG Җ/`2ڇ2*r,'w燥_w~j?rtEJCdGc{  j{0v T͞Ru' L%fq_ka.6Ev:g62fwڒ=$!f):t̒ѳ`ZTv V?v,%K/dNeûjF8W/k?6K{GAK.b0ɚ%=ڒ=$tŏ{F3D;'rԑj =*I۱X%w*zB2=J.7w//4O} # ]LښRG'r,%X 9*+ X_hTWjձްLWjV þ_Wd[X{ۡa3RGJ@ v0S&k<ݩ# d+/{rTl9 W4`:uMD?w~͞Ru' L%f&Yj!-[`W&- o VÒUi(&eR & Z yjǖ^Vŏ3Z yjǖ^ dܵ? aŏ20NJ8j1=(șħV9-rWebJ2&7OhyRwXmXJ袾.,6,%KQ `[~,%~K-ń~(~J.N úCec`HV^}<N2KF`DaXJ [~z݃>O_f):t̒ѳ-ńv>AV^үZPQ*`/{ H+oà*{+ -=WØXe.V9-rWIv[~Ƈŗ XT}]'2+ 4=,`e§%JkڅmtO{^ P[ryl9/XbbSV9-WeX+oCO)+ y+E>^פv[~Ɗ}OXT{]/ah6WøO)+ y+b>]Ln Kaw槾a&,%KH?{Ի Stؓ ?V߭WS'w=*H@?g@S:fIhفa,XJ. [~}f)GK/V$Z}<N3*K a*_aذ\a31.N蝅eү5`k +tٚ,%K?V߮$:XlP RշN3ń~oC,6+ń~p~]bXJ-%Al:߽iڂwa*] L.N|==#hR}]V߭AhT8Bl9CUu,a֊}OXT{]/`aڅmw)%?X?aS%v\hЧ1]V߮qbSV9-WeZ Uu4SJ~§%J~جShyRwXlp~waDXJ ?V߭WS'w=*IT͞Ru' L%fٙf/ [~\aLߐ'S6yI %3dm],'O0~[9T*}X+oà*{hZBl9CUu,a֊}OXT{]/`$Ev[~Ɗ}OXT{]/(4)"Ev[~Ɗ}OXT{]/ah6WøO)+ y+b>]Ln Kaw槾a9XJ /K=K T@P)muq2w~CүjٳNd)3$l::t,%K `[~\aLߐ#&<N2KFhb"TLշaa$h™8zU~K-Tg@S:fIhف bTL0~[> 3F(sj߻Cүg@S:f{CFtȰ/0GЁ uQa*_c?V߮DK ń~`[~!.:XN> RP4m@ń~(At BNtlXJ?V߭I/!"%Lb(؞ bP[Щaڅmsa,Yzl.^+ 4SJ~§%J~AO8Bt;l._mʯ#qbSV9-Wed}(@-{CUø'O}wH?{Ի St)~0շaqVđʿl83 Z7])1)BoCWjbz˒uʶt:< Ev[~B˒uʶL ~%[a>UObx+ z%r*]V߮P\ʶLT7[ޙWÜ;,$YoإȧddWڒ>)>9yr~շaJ3jٳNd)3$l9:t/ߠշaJz?g@S:fIhفPt3bV [~`-NIt/ߠ [~a9I_AX mqbVAt:K 1K+_;@81Ad;)~}?A+J2J QNEv[~S]V߭9hy꼎ŗ1ZO)+ y+v[~Ɗ}OXT{]/(4)X+oCO)+ y+L-ܪ:w)%?X?aS%v\lVGҋ״<^l;|,'+ń~]XNW R!oë)}$f):t̒ѳa9b,%K?V߭WS'w=*IT͞Ru' L%fqrXJ*~]:XN\ RE?V߮.TAPiЃSC,%K0~[5RJ2J Q+ - /Bl9CUu,a֊}OXT{]/ig]V߮qbSV9-We |AWjhؔ`NKgrnUyl;l._+#EkzTy>j{a*_.,'TAHշaD_J %L{2P[ЩdTH+oÜ<^G[abbևŗ XT}]'2Bt;}/XrlO/(4eZcBt;}/XrlO/ah^G[Cb\*r[>䮓asҌ+zTy>j}1a*_ ~wa8FշPNS!Wک`6yI %3d.X/[~S!Wک`y<N2KFn,'T@Al8,%~Z$r͞Ru' L%fXN'ń~$շADÏ]9jڍ$Z}<N2KFgXJcn-J~_wWt$E{AWjaZ= (+oÜ<^G[abhؔ`NKgr&]V߮qbSV9-We |+oCO)+ y+L-ܪ:w)%?X?aS%v\lVGҋ״<^l;|,'qa*_AޥPZ,%K~[~$E{dWjaZ= "P[ryl9/XbbSV9-We&"P]E>ħ*r[=˗{"1]V߮qbSV9-WeZ Uu4SJ~§%J~جShyRwXN bTL]XN bTLoBƇK (/(SI(*`/{G+ - v[~:s ^kE>ħ*r[=˗0+ 4SJ~§%J~AO5Bt;l._mʯ#qbSV9-Wed}(@-{CUø'O}qZ,%K-.,'TR~[> 3FΗ9j_H=*6yI %3gZa83 R2x?V߭E dPsj߻Cүg@S:f{<+XN,E~`[~,'4E~[~KXJ+mA`ħ*r[=˗(v[~Ɗ}OXT{]/(4)B"P]E>ħ*r[=˗0rahؔ`NKgrYJ.7 ^z;Stj,%KNP~w`LXJ [~}aL=*%v R͞Ru' L%f˥T/8 Rշaԇd0`"]V߭AhTv[~:s ^kE>ħ*r[=˗"P]E>ħ*r[=˗{ +oCO)+ y+L-ܪ:w)%?X?aS%v\lVGҋ״<^l;|,/ߢ`"K=KK [~DXK~`k~?V߭QDw`-5F, ^b1toÛGKV)~[~|`3b0a],/ߠl <;PY_{?@z$E{ Bl: B`kڅmsa,Yzl.^ĀIڅmw)%?X?aS%v\hЧ]V߮qbSV9-WeZ Uu4SJ~§%J~جShyRwX5$E~bd]X5$E~b$oë)}$^?g@S:fIhفBCR\XJ薾շaJO'P2pΙZ6`{P>tj%At 6 ], R~[ .%WjaZ= v[~:s X=,`e§%J$E{(+oà*{Rwڅmsa,Yzl.^8Ev[~Ɗ}OXT{]/(4)P]E>ħ*r[=˗0rahؔ`NKgrYJ.7 ^z;Stk)~E8?{Ի Stk)~A<oèw,%`-5+[KI`[~}f)a-Kտv _f):t3$:X5j/ߢH] d_v O'P2pΙZ6`{tjYb$iK)~q],XAo߽BTWj !߱Kcc0""QT^"?څmtO{ WjaZz#0e VSJ~§%J{H+oCO)+ y+E>^€+ 4SJ~§%J~ A*Ɗ}OXT{]/cq=W[㼟5=K3~"K=K3~ mqX&OeSz#l8JgL-0=7KK~U谗c dW,SJ6yI %3dJ,R d_v 5O'P2pΙZ6`{KV)~ p~[0NzU`<N2KFcåPV/ߢC8?V߭E d3Z~-J͞Ru' LbPZ/ߢ@շaQI_D?V߭E dtRo݂EWٳNd)3=gK~շaa&h™;:\ڷ"'P2pΙK͊_Dp?谓4aL"\ڷ"'P2pΙWK~LoC],GDmpB`biKRշ:X69b0~]Htlt/ߠ [~`)~"շΖ 1K0~]_@<ħ*r[=˗{ P]E>ħ*r[=˗0rahؔ`NKgrYJ.7 ^z;StlXJp~w`ذ/0~]/n 1a*_wЂ4XJLoB n Qa*_Al J2J Q P[Щa)WjaZz#0e VSJ~§%J{څmw)%?X?aS%v\hЧڅmw)%?X?aS%v\iە^G[E>ħ*r[=˗Qu1Z-qOb,XJ R(-O},%KF~]Btlń~Ũ?V߮R:X6$E~[~IKb\XJJmE$ "TD`1Ѐ3tl,%KFl 2+?@d̔d0`+ - .Bl9CUu,a֊}OXT{]/`3Bt;l._PhS P]E>ħ*r[=˗0rahؔ`NKgrYJ.7 ^z;StlV R?{Ի StlV Rكm@`@`d0f8+oà*{+ -=WØX+Z)%?X?aS%v\Xڅmw)%?X?aS%v\hЧEv[~Ɗ}OXT{]/ah6WøO)+ y+b>]Ln Kaw槾`د]X6+ń~ S d_v 9jٳNd)3$ll[tlX R@zշP],TAmE/D(*`/{G+oà*{۠~+ -=WØX+Z)%?X?aS%v\+oCO)+ y+E>^@Bt;l._mʯ#qbSV9-Wed}(@-{CUø'O}~,%K~w`ؿG~[gFIS{؊>"Bl: BtWjaZz#0e VSJ~§%J{Fq]V߮qbSV9-We |0eڅmw)%?X?aS%v\iە^G[E>ħ*r[=˗Qu1Z-qOc XJ`R(-O},%K!~e((0쾉څmtO{h]V߭9hy꼎'ŭ}/XrlO/e_څmw^2aS%t_Ph˗HBt;}/XrlO/ah^G[Cb\*r[>䮓asҌ+zT{5>. XʿCUxt:RRQU"ݐ3"Chtb(UZ][{Խ¸?W[it,1=&tAa-7*}t255f^U7úY/W+rнdE_h^eҷ*}l4N{*5=Sx[f,Yyh^_"/r[fQVõ,Yyh^QAhU[~_"Ve{Ft9ң]l:^U7aK)ҷ-, ܺVeY:Tk_.p_"/r[frewh[E pg>ԑΕLR,1="JF$|Xb{EP/1a*]M 0ə#؊͞,M -0LSM_A#t Ыg7, QWAQT{E "P]qjևlO/hF+ Z§+/%J(еhyZ7ŰZ7jdtK"CCBլ U.PEk!k h9UC0/EehkA¯d@-d44-~!jgGևe~[vsr+"CCBլ U.PEk!k h9UL Ek!kZp+Θ"CCB/V$QKhߪÜn^t9@-d44-ZZWOjqt:/Y _VhkAʯV@-d44-~+!j`(u~]GY Vԕګ]r@-d44-~]ӭCMjxk"Ax$r,vS~?CAbw"qjp@ijXPvg ̹,s,IP ;Xubߺ\"AEvCnZr%+riRWr~ 3r(D%fwܐ&GP 8w9|Mgdn*&QwϻܰK?%guνk=LXb{/[ AJA.RȎ:^0ɻ,{ó\$@E"$E]1TE'$N?olVCEujHCE*R+U9+S]DXb{A%1#f$%3lC17jD0@īg7, R ~!=k=LXb{/ZB{=0c˦T#欱d.a{cƜ~O䀒vE/ R(r@*BSU . UE',=P~qP8 +$lC1a5u҅D0@īg7, Q ?ZSz.|]2oN{&RI~7*c%r)E9 :lg$} U+R ,1= 9HA)gP2 -0LM8M_APC#tV}ؕ} #@ Oz&_uHK*&Yk9aѝ1]3|DMrQ*P{PAabI(M/Rc0S]w+bf$%YIhـrb\Ya(UF sr롔Mü^r C2!^X|Q"cʶl4ʅM憇El;{(]څmqK El;{(Gڅmu Jy"lhAV̓Ph{jEw"1}anև[6/B{j-}WCX[V̓3=@=d~g9W򵞂^T[nbVx?b =[90g@Ȃ[:,$lCP@Ȅ8[dn?sr.@&u E_JwnENH WY U&2:*qTuDD-;H"q.p kѳ,=Wjc"҂OjFb~1] z4X&*|Wc@gFߠw+SC+SÏ /$_Ȅ+c<-0=Jg"u /{6y%-uZ6`!sܘ%c&Y7UcP39;ADD!ENl+Ot%ꈈ:w29W؇ 6xgQ]%fZ>:[ )ꈷJ4s L,%m;_чmIѼ_ŏ0Dt֠/`L0Dt֡oÕ  WE S!(l/f ,D];ڐ+a :"k]c{ Sڇ`Q2 j2.Yb"fW!L{܋ O{N ?b⻨K]Etq&& A0E$"e, *QvM҃ '$JgEk9, RT$.`?6 O]tLZ+!RհaYނz$TQť']f$% tRIhف,D06 LEot-+2Go EvX?.wYDQAY'NGN"H*]tLZհaҘF+ P8NI-0LE筇8v!r"[9 2)Ͱt9˰a< eX -l6Q;a; ;f&Ydnw/9 % nsrT2 u1a.g~ JQ.F!ߺ,[SZ'5O'UruOSTS +WٳΠdA,DKFz`M ~'}yXe*sTU@Eb*6y %YIhـrb)27L`, Qk{YpѢZ+fl3%fw?ɏt1T:k9aˡ-8b*ظ>pbUYuZ)JKF8;g(Sq&3D,#t(mV'0d:7 tO!:qh+l: Xf~K'؜n(҅<D!q(M>]U%X&rWOʿCU諡,9+_+WjΚ$3Q]V߭v%_{FU9>ni@On ΠdA,DKF8DkWG!;։6ǒMV&2xY=}` ZjZ$Ki6Xʛ bD^2kc:! E_{"AJ˩\ڈy(2OZ LrZv'֭gh.-lO}k,l3K(ѳ;BBu"yF '5oCbpZlwJ P~͞ԖquZC1##tL)I~ ҁ6'ðr>X@XvY*K:&rU8b*: (@k҆Ĺ jB ŏ ,{CXTWûdyZ4n^1!׺-N`hQ8X&ZtN:)~2]@O9qF/Q@lr#nZx (i!1?"UBCRײaت(tUD<^ `%_**:UZو*rĹ jןV=aSi5?X3j7JWg]@:)$lC1+V߅pE_bYOrVye)z!sFDJ,*LnX@2d;Wuby,3 O8q4@N)'P2!;A d;ӊtO!:qJ}OoCt8 Uz*u JW}c1څmqD^,Wj*wjՠwVīc+0|NO4cD]$Ki6XʛǫcK'Y-]KD]cim&+`SxAk6y %YIhـġO!:qſj1M1CY*C谁D/WS !X!MX ,.*9j&.a`݃W:,l:tВѳ;7&YdnCP~srCZgJ] `0R" bQ"qOT:^uZNY{?s 9b*(?aBy˿O~K'&uCS<DJ,lCcu"L[(EfF 1tsw \èGP8qb*bD8$ :^喫[Cp/́$,gBw 'yʳ*DC);5嶂*v րNs: tf"@E_+/+.Uh^ v[~eU+/ 8@ {W q˕g~I{2;3]@"@㕗*l5hS{Wfc6y"3]@dnف&q&,(CEYLtȪx27L`k9aèJ,28D8WKc:! E_t=?J;Wr4aBxO5RҶ&="&\"vt:)~+ʿCX\_,;}?ȇ@߲Ń6y%,M -0yot1T:k9aa΢0 y h8w"+t:ևҿCUrTWjNȞ'6{ΠkR:iIhـȰ"s~(}9d;fy jPM)-0yp욮DBӲ6`!;s谁DF gyv=P5-0LZdnX@sY[ny{5Q]V߭WHÕ+n:9{5"PR@WjٳuZѳ;V߲7L`, Q9-7v_)1]V߭WHÕ+n:9{5 bPRf+:Ihـrc27L`, Q9<3Wh Dk;Ly!A@H9i%^ӃX3g%fw?ɏfF '5gc9]#ڈ gy$5H i':;kp?ڇ`+ :Ihـrc!caY~FgWj#@H'Yjc E<'%@ @΀#N/Z+P͞Ԗq&??0(~g8GCy~&hֽ `+fl3%fw?ɏ@|"ں?M~(_` |"ں讟AG%o$aw?3B=p.5+r~\޸Y @\WX¸w`{ߴCW\u.0 %Zo?7(O>2CO25I{6y %YIhفAbH'agP2 "Qe%fwFu"L[42o]_TmkaMTl8;h 9,w]+rUzhxfie/]+rrYKV<6һީ,w]+rUzi!;)WV_Vmnf úYKǗJܴR;G.u*ͽl4ᚣml8ߺǖ_,w]+rUzieTRR;G.u*ͽl4!sŪDN>$-;!sfS?ΙÕDBӲ6`!;s;V8͘qNp\:gXjQ N\ـl2 0ӻ2]`d\GA\;lƣ︶,NiT*RIM#Cͼ ҷ!\;+xE@ȈJBJ 6[>N.":DP ë+ pNIC"(IVDˡd7M (d@t4ICZhIC"K$Z Ni7r(- `ǕdſA Ĝ3-]ąd.lCw?8pBv') Lf8͘qNp\:g$]ąd.lCw?8pJv') L櫵8͘qNp\:g+]ąd.lCw?Л41T:L/k9aC.,>z0ti\" _(Ayp_q @t<_VJ*OUUX'";NY[!֝ߥoC҇C8e3;rj${~|{PNp2<ZUat8%\"ҷ.SL!"m[yk<ራxR͞IuKgIhـȇY?LYr17X}cJ 4g7, Q`& tTr@* Sߠ+ }anCӇ_vZ0 SK6`+}t`\A ~Zk!+t8,$ѿWw,K"L+0~?t;E%WtB, _X%/dPR/F~A~,_2Z:Yј%|ńmyȼ/ߠ8&AN/x,0VѿWs)%azC9WraJw~X%e?Y~i'9vbeLzL~/F~]_?Ea,& ~tń7]ue;t6 ` s߫t:)%l? ~N.%Bwe:PS\.K1Wj%a/poC/ߠ6 мO`]3~ ~腦{"HLJ^@3ѿWuL @3- Ŗ ~ %4C`h ~腦{ :-`_A\K0-b~y;.1a*]-dLWj%a/ba!F_:Z B?t B8?t/%A/ߠi LbHMZ,+(?`Zg.`d@q X%V ~D ]-b~$y;ӮU% ;4XJKY%0K*_qa$Ct`X+KB~,.+!ym_Ec?t%VAtB=XI K~Z7]}3x/ߢ, ~腦{!m~=_!iȁ[ X%U~{nA_EP7NuʄtI~چ eKU `,$ѿWuNL*N`Taz ~-bs~- l* 0~k30K `_!i°#Bh߫t8мY`PA ~腦{ ]`d4GKX-`P ,0t *KE?B0v ~X:~~?2(N.9bؙ}?@Ѣz,g +g0 X?a|pjFџW`3%QBŹLZw`剗1]3gh?e;U3lW~a\ś,LZ?@5_4Y?Ap~Ѓ#*S[\v~- ݃AP1=1]3J%;U3h~Ĉ?dDvbeLzLWE~{Z$AW?@j`xџrT IT~dQ=1]3mWc]ߠ.ϥ D9Naz,g-0~'_?_w`D.]1]3hދ=F~y DW?A be=Nś2=k~9= ?9EIN~'O0~FEҭcLߢ~Wg`y)3CS3[*̊-1i݃&_tǭtώ9)گt.?@hALYr5_E~Y3AŜ;,LZA~MW_z3C? O 2ȡb&-;r2Jҩ ś,LZ?~"jFџ+03B?8vX}>~U4WE@S_?@di+ᓰ{X?9)گѝ+HfP~:2({Ncֱ2|2~Ѣy~2O ߠ,*JvgC L[Y11/1X}?@-5_4Y?Ly?J_t?_?E!?2(XDŧvX}>8~0xY-W:VgALYrChދ=f__?EE1g/cֺg_5_E~Y2~J0~aIl?2(X>N2=k| a>Zt$' dś,LZ?~@Ū+F~(AW@ALYðr4@jFџ (W@+[NsS_:V+?dDv]1X}>?A~WgPy(~QOU;2(X "$/cֺg~2Tϥ k]$ؙ}?AUS$/cֺg~4HJå~UxC)"Q*JwC#1oߡ3bߠQoݎ@l EvV [dQmunHbߠ+b߻!~+s%~ 8?V߭V$,} ~y[c/b]{C'1oߡ5munŏAX,b߻!~Aڇ.Rb߿C"շaպ&,} { =],[bQmsC+1cVQoݎA+ -XEv[~}XXv[~zſv8+x+oÝ1銮 Z!dGRS\B֭Nт_E8?`IaT]_EX?{:V ~XbH+>a_@ _2K.0~QOq= psK/5SdZ2(mdĿtǭbeLGWE~{pZ&ARkF~-ւҨtdPnDK݃&_tǭtυ\PS_:ZKӻ2=k~/K-I}~[ԘbF~~pAx+f) oߠ, Ԃџ.%/cֺg3jz+h~x? H?Y(`+]?)گѝF~OhȠzUls3F=)? ~Z"fLRe' [~a DK2 y?{ KPȡbzw`剗1]3A}sS_:VADK݃&_tǭtϐѢy~ `dJ,[/N2=k}1;9)گѝ+HaK݃&_tǭtϐ2jz+h~$%~S{ tdPnDvX}>D~ N~ZL "^n2=k| ?E`Ѣy p0A)GPȡb܉/N2=k| ~0vgJ+?@UtK݃&_tǭtρWE~{PW?@ d,["%݃&_tǭtϑsS_:Va%/cֺgU(_4Y?A8)~(i ::2({NnHtǭvX}>P~0wJ,@P+rdC Ȣ%:Ź!9beL;TP?e;i4?@Pa JŹ!=?9)گѝ+IeGAёDKw`3PX"~*`~0k鋌E_~`؊ߠE_~=y"Jʘ~ѿUèt?Lab*~/ߠ `S)gAPTUt?L#{~Ev+f(>C?b* zN03H? $,Z%{(R,aG` `%;U3aA&tdQ9tǭbeLŪѢy&(?(~~V W)G.5&~RS_~W~SGE1i݃&_tǭtσگѢz,gWP _ś,LZ_0ZjFџAWP?CW?DՃkaȑ1g/cֺg MW_z303(?t?o At?Lh|W?DH?E?");A0U>ȴdQ%?E?"#A2*JxKʣ"FY-Fn2=k~!/E?t?l_DH?`SK1ނ~~b?`SK` Ճka11g/cֺgkGDe[#DV×'8ۄS`툭GBt:CDZa*X~C2 tga:XJ 1]`TA@AAt?l1 v_R P/%0~+ߩ`XI{՚wbTPSچ eK"Aa~?{ [_:D`N ͂_A82[dV ~Fj4C6 ~dŧvX}>@5_0Kџ#~KAC`NQt?n ~~2?{%` jFtj$+f&_{ȧfv~a,S N~dʣ"/cֺg W_z3I3Ⱥ%~n2=k|~b~g?DE_?L`'E~ʾA)2"^Ӻcֻ,Lߠ/(s :2({NZ2~]jFvS*Z=`'NKV߮3⒦l:99W ^YhǗAG.V߭x!T+:njkn``'N3EJҲcJܮ"gpCMtO4 tUW@o1Q˥n^wPoˢ~mˢ~я.]+r[ V 1?9&_~LK*_ANF~K&_~<ڴ`)*JvgC!AT~dQ9beLzLL/~jՃ] atJ?Ͽ@Y շŏC+oCL~/ߡ@S[KCȯњtےɯDoߢj<ں(GmuK 83H&~IbСշa,C+g ~gN̬RAl: q>+g ~D[~ [~!ӂدџ8-$~ſ~œģ,2OckP]=t?N+E~X?7vX}?@T.{պF~ś,LZߠ*~Wg`+`)>~V?V߭u83X? "Du?%~!V4(}v[~ԣ$t?NibTo5Y>~bT@M_12K'J0~nrXHRSo~j_@8~p~:2({N2=k~sU3=p3`_A0/S{TWdDvX}?L@a*"߲5LE9 : RB0K*_Aނ~ju Wj%a/H Cr jFtj=~@ ј}Pxa FE/i1]ؙ}?@"_EJit2$OC"3mu?|JZ] U'ΝOĶ-VߴV{T~dPn/N2=k|^P9)گtjLn2=k~*ZѢz,g$ +g"ALYðru`+F~C?%-]?9)گѝ+_2?S{ߠ 0xtj>~?dDvtǭbeL4Fh^?Z>/]mu?|JZ]t9өW*,gW8?`L9^hEȢ&-;{/cֺg,>~n U_EA<~3S{Bu= X?E?`hJJȡ"n=1]3 ފ,y$(?VEMؙ݃}?AX,WRW[5,E~Yѝ+rtoߢHPe<0YvZ;45j|jXj~}Z-Ȣ ;,LZߠ%9beLzLh0.'1aqsFBFּ{A{:Q5,D2ʖ Nw{N گј=_IhNV̓ ×څm@C{tWj !ǑXaF+ Z䨮+oÛg{UA`<0K,r;]V߭P|j#/} ` I շaL̒|j#ę$AIߢH2=DFw1&{A<ęAę}ҷ/$DOędCQ9$>aǯzCQI$CUu"LCSKI $ϋ=$Ϫu&{O`$t>6NF~҉F ^*~A<c!O~~ `%{71/{o`8+ @D6A`8 1 `(Fڌ=c0Kߦ0c,{~. ~a'=:X%8?+ ua$Cg]_@@ ߒʏ`}X:2(e藴V퉗c˦=k~F7[ Zo  "4o ؅>h߫t8؈q!j+ RDq~NRb,%DDVkyZ,%?s=\@G=چ)~ߢ@zt>6$Bgچ)~ߢAF$$9?Kgd)!"Lf(1K>`At>6)0{Ev_A !ߴo|m ~?h3w^l9 ج/ߢ8" ~,Cf#?f] ߢ8uy_2Aޡخ/ߢ8eh/#~/ߠzgv~NXZB~X}z$@B2ҰO{%;D~CŰ,[_'Ci&+AXI!ߖE"9beLJMW_z3è?#x?{R,-&It?ߦ"I-D,/gO()jFџ{_?DbTYE~Rűԓߦ_?e;ai]`BS{R{$A*Jvť vdQ'N2=k~NگѢz,g8џbCin+sw`&_tǭt԰jFџ(?nՃka<,D8Wr #R.l+l:AD%:: $GgH\&WTSCi} Iؙ}?RW_z3E30~xťȯ~A21]3 Ѣz,gWFl#@-~RS_~-/<GE1i݃&_tǭt x~g?K~hP~~-y#?7vbeLzL2W_z3 +g"~cdTW:A[$AT~dQ9beLzL1 _SjCP] &Ev[~[BDIڅmsOU+yl9]G%r/he+oC`#HPEfD+ @9+9~9Uz u  i}Wè`#HPJNU4c:AlW?@4b݃&_tǭt8HjFџtt?د~0O1f/cֺgQjF+ݏX%{J]dP<C`jWja ~Yџ~ſ~ P#0p2=k~U4WE.p3 Z)E~(?9vbeLzLKMW_z3D3?E?QDLZw`&_tǭt4.jFUc}bbPȤx-: NVXLGEv<Ý1oݎ_ +V5Qa)اXM0~k?@+o"jtꕚwc]?*]rE56՚/)+t9݃ߥ_>~_(?T_~nr!ņh,}&P~]Xڅmq%R~ny/{I]~bDKz vSQ6ߥ_> vSQ63?K}]MpAϽPe;c;AϬ`gFE/i1]&_tt8q=! t9F_aXKVC%'Da^,$ѿWswD`g>h߫t:Cab,%KG1K*_H.,%K1K*_ғb0ʈ>וXKT*=߮g|XJ~{81K*_cz,}@<1C2` "O@ 4kcG;,EG5LE9 : Tńd`TC2`GZ+ R0ʗt;Z_LpHmr l8,$ѿWtJ"B XE`_2 _KL ^`A)7` `%;U·%ZAT~dQ9beLzLFhދ=Zg_?KsI΁7j.Kbؙ݃}?@@_E~Y~.Z'~~cC"rl3>4Y?@9WW܊| `:^.7 T Ibe`a9 :gGkQYRq&~x'j!+>֭h'RGP||/ߢ A=K8?`g A=|cCK%[ߢ dQ>h߫t:gl8S\:j=t:C ~_Ş?`p~|k~KOiј% _Ş `;\ _\`QOp%Ar#~ 0~/!?K'#0Kp. z3Q ~ߥx?t>NKq %Y?KL'$0Kp%[ߢ5VCt>NI` QO.SߢU_BX? ?Y/b3{>sPȡbp~D;r 6hދ=?[~7_i?yr#&hދ=3:Y~QOܶsC ?2(N2=k~U4WE~- [a"t>ЎշŏoC1]1f/cֺgFhދ=++gB+5S{݃ߥ*Ifʣ"q{rk=k~k8 ^E?-OR=HKOŨvX}?@4P{8?ZR=G NIJ5=_~]=#cˡm7 HX|GEtUTzJswXW5_a[W@-P]nfr|V ~jw ׳`j|a_K`nbӻ.Vcֺg#@#%Z`~8?`Ll 9Wqe ~- _O֨~|م_Di[h1g/cֺg" W,g~-?`L- bb]&_tǭtD_0Kџ +gdAbelK~: }Y~/{6]%@@ ~k٨ Tc?t>lG`bK~P@k~.͂WB? DѢߠY=S{N)_ FE/i1]&_tBd~>?l2Bh^Ft9£\![(*]J_K?{Π${pc$bj{UEWrZV̓ ӗ|Ev[~У=+X`Bl:~1]V߭7A*]ٰw[r)~r;E1Ev[~C!ߥm_?@b~+Ԓ/ߥq%/KF~ixTDP7ڈџ_0ʗ\.S{LR)(},.wJ& AϿEK҉js`3 Nf֢)Q vSQ6,ZsaS{?9EIN~~E\tl$ZϿ@xW*̊-DŧvX}>ғJv,?7vX}>4~bKU4WEџYbyp2=k|h+F~@џ]]ߠ|2k,Dx&Ip"ˑa*Y"D Oڈѣ ~J.f/DDWцT@$H- ެC Rn#?D 7ڈѣ ~]z4XJط]nf$~zq ~F=kA6y%-}i-0LM1Dg-gz-(:e֮+`ZICT.8T (֮+q+OQk ;~]R|\D3*Oè@wZJ>TXZJt)+El@֤lCw?ɏL)Ic_d aӰ{Y O[/ᛨ8ĠMDE4=~IRɰLfIVvADJ,ns1q)*pT"nߴ77Vk;/=k.$-;!sfS?Ι) Wj"q!i 0tUڈ|HZvB8s8.3K Wj"q!i 0t/]ąd.lCw?8S5]ąd.lCw?8S]ąd.lCw?6i l謺#fVZ"2K5-1苩dcL`dmd`Tr7d)`t-4-gMGC7~`z"F SQ;RDlʘv,t#<<h:a0bhjwJ ՕnU| y!]@~Uk nrAX.HkwC^J }? }fެ~<7'䆷qt9 y!\rk n B $5,W2W<6`῏h[4[<4 tCQI;ËKxO&1'_1Uڈ|HZvB8s8.33Wj"q!i 0t<( Y)J`~<( Y)O&Z9 xK%0b GbHH&l|'Yp>kE/D̿x@\t<+7}"Nr?CA1_J|.3\h _ /Ŀ@|6%^G/^G3yX89-9[s7[תz^ת៯ xg?^o ^ז|6ya_=  a_a_|66_$bX%  b+l+lK4 |_B ^ ? H3 ?Ŀ^ν7!y ?  H3ߒ 6:`[ ( ( qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq?yءbv(yءbv(y٣ߝv(yءbv(yءbv(yءbv(yءbv(yءbvh62xZzCb4מ4ϔyϔy>Qx!x>+ ^BQYbyׅ-9>jfo͇l'͚y_6>5:׋^iŤxƧ^5:i_ŠŦ_n~n[qo<\i_ď|\gq>/W^H||^[x?:վ'x:߃?)p,x3|`aw/ >1QI10X;"/"ߌ ru.'c&9juS6i"lɣ͚xGѼf6rhf3HO_p( ( qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqss/`E[o&_x}mUP"8@xPJ%,xK%0b<# $u䂁L%$"V,A$HVi@|H#HH$̼Fs/ӝ"\ .!\C|-,\COE]ฆ, H~D\CF\CFȀ\,gB"B")!\CF\CF Y!r/X𰈸, H~"G ȋP / BШ r26A,\X\B"A~tl(TCg T` @) `P,ȁ`R@ Ap[pXIœ-"Q p. (Yi, `[!*"Ÿ𨆌!^B/\`Tœ p+ Hd\ p+]ZaP .C-\+ ’-""!oUP XȿEJ!$b/RF P ȡQ . * ? D * p*!R7PBQ $oAI ^RF"ah Q "p Bh\kQ) \C) +B BWhTC pq - ѿF HAI)1 HHWP ѿ?F @TC Q,tGOGbM 9!€%$1$B( ?DxQ(DŽr@O%c`O%/GWQH\J4<'#a(A0O%g ѴrYAJHG)rY@9^KG&:$r;*jM'D M&PaO 4' IzGxo|6GH%lP( 6HؚM PprJ |LQ0RLHJ&C7%r`lIY46k kiKGY5PpK%zCO0+rG1X\  ȿɤrg4HɬR2qH :'#80HD1@tNGp&p ab蜎L7!9$n*B$!r;3H#THCDwgF/s$@7B( BDE.8N/(<^ 8<`J&  %x(<^ 8<( `x 2xJb@qy<:'᳈DnDw_B($ D"_D_bBy4~A_&& ,\($/bMQ,5a,IW\T#trZ8tx?:8PbO% `BA8q 9HPHERza@ M&84HpQGq @:&$/)8O'IQ [k#JDv7AZ7IE8ㄠyDL%b9DHG'P$kppA$Pq8(פ# 8N'X `l4 *y{I(PEÊ49Gpp,LGq{hr(5pL$drA)- ^/GWPBT"% pJ%,xۃ4 D Ah; P"ǎG. $!`pq<Pqy0:p p.^Op I I(x"הbIGbNi<7pLq !Y(Pp*Cw%$\p')%i9 M&8!;rZ;rCy48I$Q&Ʉr9A_ I0SG$8ĒB9=&.Z;E db;DDBPlL&D_'$N^O&8L&8O DXĚDw"spIp#@+\F#&Q-H%$\%'- I8KGqx'8 I k9=.D Bab;hpN%^RA%ZxlOp Эq_XĚDw"spIp#@+\F#&Q-H%$\%'- I8KGqx'8 I k9=.D BaS`nL&cD8G&$8B$+pJ&#HN^L%1 8Q&h&8CrbC9"Bg %!E!rAr8P(NTrz91;/'!&!C0{$+* 9-:CpzGHz<  Co R&4 .QHp#xt/E.1 j3%XhhGQ!*x;CB?=赹 Vcf0EJ#ЏF1:-nBUv~z5krǃ4#Ѩ`[`F<FctZPtP2*CdC?&>/^/Y(@s$KGqQ&Cp/$_I %"R@^QGX/_Q`GH%D q$BSPBZGCX/qH!% Ťuq*C /(#(5q8,y-R  `p/ $^8GX/IW?~J \UP_/_r9;5_r9J8ɈAh~$xLls?U~~CW7?s+C \d̘7㛃ӟ!9~ߢ"z'CW$A#TLHG'G'ɤ\ $RTC \B(dp*M'#~e8H%#Ea5!q(jO& dA) /& IRQ-B77EV )~C+,K%Љ A db9P'DĀWA=VVp~?K}o IJRBC x1~&#BbA pC[(HG)*nz۟'I2z:ADLsP(s %X%7Wi"UQ'y3??n?(~PR @JB7QU#p ;p<46V[%?lyǟ?~+sLj%?$#b9!tw_HagTD*C /(#C 4_A!]pIdGG`A. ^;(~CO??A\` t` Ǿ~%?(E  DA@4`[_Id҂: b[y4@p B BY4h IrAQrY4DĄry1y-ryO^L$*(y@HU(ؓJ A!8UɁA%VK&ʿD_6OHU(_.8IDHEk@,IDHEn~PWId"BId"BG?%dJ7?K^PH&#%I~IzYE9 db?rG(5qWK(h䲂;I( $\Q-_k<5&U=cDZ8ljM'K&IQ,/%Iɤq" <5&ױ$PqRqA ԚOG^ĒAA8tPq T$_Yy=Z906H$J&8Uq?h%?~PWId"BId"BJ@K%$*&!04+q~?CX/W Y)!R UGV~?J@K%$*\UGV~?#{;r`lIpLpOGaG2JX. ^O'`A5"/V ÇRR9,A Op5'C8JHbIBWp‚:C)HpN^O^M'[+ ppA!iE QHp5%# fJ3& Ç J)Cv$y!‚99y=zA4/` Ǯ V Ç 8p$Hp#O^Lqy@_ĒM Ç Q9z;i% jC!™!H`0R) )8UBp @48j"CPB㠉JQ&M2?5P 5P 6/@^zLQ)  C!_ H`0( P20HaC ޠ0?p\T{g`W;t*ƒ|KıO<@'PO< =HaCRz=Ha0RQF؁E(PT*V3Z6(1%x TmuB@&4PXB#dxOZcw&q xO,'8O|Mja>:lcy;E1xr$ fAa<$dzz5lHGSUVKlBL JޯDytX~KYuXM5zjhy'hzևrxi`kUw3>\ Pe G2ʫdulIEmBVޯD[mmmYml'mmmmmmmаZc^nrP$o#e G2ʫdulIEٙM-y5kmumlVne@%Ps! ̃* mmmmBtmmʛ,65m3)O&mm.m պ4<=rP$omY! ܝ*mmʛ+mmmm4ն"7dFmnN:Fy*mrJ Hmն$G3)O&mm.mmzmmde@l2mvmmmmml̦<ɵȺmmAmmmm%FmʫmUminSɬ[d]mn1mmOse@mmvmGXEm&Yml'밢mm[n;D,.0cV۬mܑmmmmn:vmmnmmmmmʖ\ܽ0`mۂj lwnn$mm-nTImmm0mmmmVŸ[6ntLܩnmmm۬mmmmmMdEo#;'0s#;d4Fu'r6SlI#A)nT֓lJ,${)EolHFRs#;d4Fu'r6SlI#A)m:DYHmme=ȶM|q# NdglFHNFy*m?dq(2#mGV(#ꭷۢ[mmm۬mmSld;'0Fv?*$i!dNm'>mG(R9dum(mĠm[lJ,${mmvmmm-mmmm*[mꭷۢ[mmm۬mmmmܩnmnqݺ%mm2[Yldm[mmە$IJ=mJ HmղQ%G=mmuVێ-ܩ)d[&ȾA8de'23AQ#I$k'Rw#i<6m8BͶ#mIEe=ȶM|q# '23AQ#I$k'Rw#i<6m8BͶ#mIEe=ȶM|q# '23AQ#I$k'Rw#i<6m8BͶ#mIEm"7EČ$clD$ I܍T'mPe G6lQ%G=[n;DmmmYmm-m-{mN$ammmruHO%M}m#A)-GVʹDYHmmܩnm۪wnmmmnmmmmrMmmvmmm-mmmmʖ6mm۪wnmmmmmmmIO"7EČ$clD$ I܍T'mPe G6lQ%G="7EČ$clD$ I܍T'mPe G6lQ%G="7EČ$clD$ I܍TOޯDĠm[lJ,${e>amĠd!VeQdy#ɽFmmdm'>mĠm[lJ,${m-{mIČ1ޯDmdI䩶O'Ġm[lJ,${mnqޯDmmɽ'0{mmdI䩶Odq(2#mGV(#ꭷKmmmm [&lHmmdIIWHPe G6lr(<ۄmݶ"7dFnqޯDNJdmG(R9 ղQ%G=ɽ'0U^mulT'm8BlQ%G=EomČ-UmW[l[#i<6l%Ps#mIEmmm[n;DEomČ-rnղ6Sl[mPe G6lQ%G=mlnN$a-m:Fy*r[mO#A)m:DYHEomČ5Vێ-dI䩶Odq(2#mGV(#"7dF۪v'VO%M}m#A)=eQdy#d[&lHuZdI䩶Odq(2#'[lJ,${"7dF۪v'VO%M}m#A)=eQdy#mmmmEomČ-Uێ-NJdmG(R9{mն$GɬHM8;qݺ%ղ6Sl[mPe G8Om:DYHmlmq# mhvtKmdm'>mĠpdum(<-{mN$amwnmulT'm8BlQ%G=lmq# mhvtKmdm'>mĠpdum(mĠm[lJ,${wnmݶ"7dFmm'VO%M}m#A)m:DYHUmmmemEomČ-mmNJdmG(R9dum(rVnImmۀE kmmmmrmmmmmmۂkmmmX [fkp.Smmm|[mmmmm)mmNdg F[mi[mmn[m۔mRvZMmm-\[mmmmrmmmmmmۂkmmmX [fkp.mR}mm mmmmme5mm#ǏTHB,I־Gu!m 052KydL,ì, 3N Sʙ@+,,,ɘY,2YY,%4|5챮2 cyWc,$1@k2A 0[9 &le'kaxYrACY1y 9{ppW` 09 0 0pEaOgFEü\ama#i>VA2<; NBI *6FOd% %o\90Eì:ì-ȸs 0܋~\-ȸ[p",,,,,s,̵l r.*b+afS,,' 0 0 0 0 1e<,,,s. 4rA9 rlo9C rrA9 9C rO?H4 0 0 0 00 $0g 0 0(aaaaaaQ$L$L$L$$9Ü9.L$L$ 0 &av~aw< ?Itk]q5Ƹ5Ƹ5ƿ2P.}>k>~>ƸQ?c 0 0 0 0 ? ?'&a&a'&a&a&a&a''&a&a'}]]]]]]]]]]]]]]]]]]]\kq5Ƹ_k5Ƹ5ƿq5Ƹ5kq5ƿ>c}>п>}>ߏ>c}~>c Bд- BпB"д- - - XEXEE_cu:u:u:wu;ZhZh_c - Bд/д- Bд- BпB Bб;",",",",","//,","/,",",","//,","/u:Xcucu:X~:Xcu:ucu?;xw;zww;x;xWz^1Wz&h&'&~W~hZh_Z&cq1?qc8cq1?1cq1?h_^Wz^WQj:^W^Wz_W&h&h'~h&&h&h'蟢h&c:hZhZh?hZhZhZ_Z:?AtUVU:VZh:e3i=@mgzU128 @@`O? kg=ϳ e::q?:?::?:-ſuZVUj_V-W/fڭVUVUjZWUj_zzzmhyzzzzhhc4 @44 @4 @?@@4 6,e2X~qc|oec,e2X,e2q[qn-Ÿ濜b[-[qn-ſ[n-Ÿm~qmoͳol6ͳo6ͳoͿ6ͳl677|o77|o7|o8?8338383?838555`j_s\5\5p55s\ 05?iM6 am6Mi6M2@O d  O d Ox{x@ Owan9g?x kgs@1_3i:2@ d ?@? d 2 2 2 '< Ox'? x'OxOxO'< {{w{绹{ww~www{wyyo;F?2oȺEaa?PG2ʯD2/? %geZj?Q6F#j5F#do#j5c8c8c?coQa5c8c?_c??8q? 8? 8//q_8___FQ?~ss_?Gs5_/91_?{~sc\;mg8cq?8q 9s<9t?s?|#ÏO̥G{-'C(?SC#pm3C8˿?g<Ỳ p]Gxqq_8Wɟ)c29ңF~~<;ʹ0 lcI``#9bx=1+Ycl6?2gLɟ2fLə3&d̙3&d̙2fLə3&~Lɟ2fLɟ?fLə3??00000000?00??02OI' %_$J5___+_K/%~yrO䜓rNI9'$I9'$䜓rNI?rNKrNI?NI9'WJ_VJY+%d+%dVJY+%~J_VJ_VJY+   p p p p p p p p qy5\5__5\5_/%Ky/%众_众^Ky/%众/%Ky/%Ky/%g߁c8x=?Yo??$`!$94į kgs@q?F8v8,g?̛ kgs@7,/|77|7|77|7|7|7|7|77|7|77|7|7~q#FNs%c\;mg矩,/Œ4?c8K`O ƹw>4F1Y9g?i_:恜c8 ??{5γ~q?/(x=?Yo??8q`?{5γ/g2‰;?<ƟAs }hc8 $?{5γ/~\1_Q.~y`O ƹw>41ex=?Yo??8qH?{5γ/g2‰~y`O ƹw>41ex=?Yo??8qGy4 kgs@1_Q~9g?1u6ϳa?{~y ƹw>4 1_<ƟAs}hQ~a?{5γiQc 8?{5γag4 (?S24 kgs@1e3i:#1e3i:0cx=?Y?~~F1ߌq<ƟAs}hh6hh777~h7 oѴoѴmFmShUFh6~hN> p38 8?8? g?8p3ŦoLce'1 @ѱ?bTɿ# Dqo +Aw?4L4M@w^hŤOt&Cpt6`l[4E¹0)8@CpCo1 Mc=#Y  Qh-< -ٶks\_yyv}6;|]yoooooooMimtz}?;z}>MپofٶmfٶmoΟ7QƘcL5 kq5Ƹ\kq5Ƹcl:γ:γ?p_gp |bz O]'Ӫź.:9ÏMޯDp'Nr??rRsNrVs%90Ȍ"Kr'əE93Ȯ"Üni:sL2444ιFsLDsLFsMbKbsbhh晫b˚b`BGsL$i4W40-sL)9 .i.msl͵msm͵nm6ќ!9Dslm\'9Rsmqsmew6ڹXslqͳ b3bKbsb{`ͳ3bfw6w6Ň6i4iNycD25o\(9893s/qe7#9ŐMs/-sc&rHsZ99bs1U1{bBsJ2-[1"HrRs!1!bIsZ11%I``1s"! 5s_2 6eJca9les c`V639kPs Ncc;Vs c`f6˘64gl̥w2s<7s<8s<9s 9(JHtG& drQ0: lT[#Zm@n;76:1W^Z./usr/opt/perl5/bin/c2ph03/Btomm    et $ainors '();cdflmpu"#,./=\_bghy{}&+0[]vwx*-124:@ERSTkz%8BGLMNVj6UWYQXZ9J/99jq'r%B.S6rc(|-RS6m, ЈǧK2+*Z#20[_胖)೵r]= \ )'N3m|"`#BcQ/.zӹ.]U3tmyTO'P:-9E\Q`PvSs,Pf{( 0NRuֵIMZqN{6cX- UvRuS֜ePp6W&Pg*r]CX-R7`X 1(3Zw%Ѽs.*']%(J(x0(ۉMR7 P 1胖)Z"rzoR4AR;-o&c?F =*CH eV"OJMZTHҲs"$!3 PFW>):)cȉ=+(<8M['z"${ Go'P:ZR9*M˩xJ-InKg']kTъU&ԼHC|bODC 0Bj1JbOH=ъ.lg1%^TUY{o ->z:NYUl8ėUmN2UÌ7Mr .NFW $d֡.Tg=*$2o>+ 7֌UUΓ|w;%YR7BA@0&!P<l`TiE"$>W,PjQGJ(Bo2EpU’| m|"IAP 5A 0p AV05aC0?nkJ$t\Kc|IݭRQJ${(O:g;ZO8e)եITӝ\,WR$5E Γ]M8Z{H>2ֈY'Q^ vRJ0totFkJJ$F J$gJފ:JKư*RJR2_PI죯1UgRĝ=U)t`GCbt#REj9*#85]+xH*KQr_e+4bRN)X1ELJ+5|W*$2u.vSӌk$7¥*uTUtJ27Ի:}>vݭ*+(^^:w͞eLI/;3.Ot Q,iM7SZҤN$\l¦3vQle+N2U׾'qtuJW|.;TIFn\}ϊ;| Qjc9ܗFf~_ݕdT!j~_ݕdU^L r]#k|88{?toEGl$ g_QFNƢE89|/#' cQ"=eF8HSÁ|/#' cQ"p4{?ܗF/l$ DEj?g;vWvTm1+p8;ׄNGKݕdd Lj$I.V_xMIht_QFNƢD|VÁGKz*>wݕdQt?ÁݕdQt1E#ݕdQt1EW 0|/" D) ݕdQt1EA?8g;vWvTmEƢF"pGr]ʍ(H_8o' KDʍ(H]2(=’(`l.&5$L?r]Q#8g_QF+&5(lWLj$QU; *6{ƢE{?ʍ1^1EA?8g;vWvTm DE7ݕݕdbcQ#k|V{?7%QeF`H]2(@^y8RZ%,vTm D%"~p-?*6iE(?g +[ }CF0EFYJӌuO}91Qu`3)VRҤXҮ2uPiR/U bx^bEt#Rj)*9*IJ:>{4bRGC'P:l@4pd쪕Jc|*R n+[0x`(UJ{1)K'WGN2q`V:CV2 ^wUvJ$ןGH0n[#zq:թOQLkJ"/JR**ݦ˂꒩qOZ3=GcX=WPK}ZN,W}C}y2"C7A-b]g7sFA.K}HC+xZ%65c:R+2=|X+VNNUWkTĊGt.;u'#l}iDj<-]-R(3t$i.^>V{e+9ܗS vRt|: Q֔IʍA=) ebq[+F T]E %(;ҸJvR2weyܗFוbNIRZFebNNW%(o)lw2VDk(H)ܝ 댆bEL($3$Q ģ 27ʜ Ċ=I]*:?iԘV+eU%$SOuQNVs.*JIRJϊzD,u=KMx#o&7oJJӊDI'(1!E(89jg]ٕ.QA5ʁ5*͙YCV(j kU2*W45bKDbxdѳx^Ǡ̬rP:/7`L€X  H3l?4Xur^n'A R gFK೑ ^n'FU*Lm{zp2K.E{zhEb$gH 79\? q:6K^ޭaeZr؉Hm ggoV.Iy%ޭaeZr؉> ? l$NgoV2ޭClDq6 3i>(W8FI`840_#%1 (fͳH1畊vR9Ze+YȅNϲ)\KkʆNJ%=Ҭ;>\D"iE"$܊59Zk|a=Ҧ-(*KN2yh5;فRn TGtB3t=Z(WuITNP( )Z|;)\Kkʆ%K^uGN2M& |.;'ܗFוLfHG͌ay8ΤjWRa`np`PH&D0`'᏷Rr6{ 0pթC_dD\ 02ޭClDXa g: REnw%ѵC8˲JoMΜn5ըXkSt 02Kټ/QL/7dgZG|)Z%4%]zT|ak:s| g"gbYȅV+[N2vUjJ1XaR"RܗFו e*BOebN)RiRU&V+[N2I'}-Ptc7O|)Z&{ &]We{|೑ R[qܢ{{S?;7҉Oto}V-]%ԆM93=50>VHӝ^\{)['el0iRU!8⸓Sλ([ *F* |.=g"ܗFוbO"qse]: a\u೑ ogZ.7rU&,ISU*Or(im>l0¹U(OZG^DTEuܢaZO^pz56-iU]i>>qVa.*ğe"hF=+e{E{y*N2CXa.;N}DzV7‘Vq\5E5;%aO.WW;8+Ʊ Ip?We<>IoՒtދPe0`,SghDSz4o9GIA֪V(}r>qVTE7CJx!JOD-Rğe4AR.^uGqRJX..>zqV+˙Y*3$g75ܢ{{I+z+cXJъUp6WewOj’`3PK\KxWQ,n(VNNW)Pv]$3?U_Q5kn{J+Q4UPԩE.Q-DK\J֔IUWuXND#e*C:Fz&R)8#YJQjKzxm#]I/vR\dSsvR*3tCr(x^ee'JO%V%U RF**[MF\ 8̥JH\kTAe:C|8*ԩk E{cxhCDA84hA#Ѐ<I>wLQ TRO51ŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,[/U]'[7cU+>TEW*^5i'dKH<^PI&:}8JA'IQ);r|&g`t:Q(30 Dь5xMIhtaalFVh 0ٚ1̤e{f0fh&pцhPь5xMIs)^Y 4(h2o' K|,ц4c?|,цa4c?^y8R[f0@F3#f0 Pь5HY 0T4c?^y8RZ3Fa$ь5xMIjFaF3#z’ 4aF37% 4aF3#z3Faj=HY 0Lь5xMIjF#f0MWN`OR0'h ь55"4ajfgErJQ 0R4c?Z/ԍalQCFa1‰ 0@4c?$4aO*IwђDĩJ\ 6M]E .*kr|&fXOKĩJ\ 6 cΰd*F*7lE<~s?Dh 4h&pJ:F0ilFVh 0qlFWh 4h&pцh8ь5xMIs)^Y 4h2o' K|,ц4c?|,цaF37%h 4h`LцaF3#{f0 1 )-H 0yj’Ԍ 0AgF7%h 1Ԍ 0  T Fago' KR0'4ago' KR0' 4agY 0AgErJQ 0@F3բ]HцaF0ÛeV"OJ ڭ*JDIYAbs"$ͳx^=+(~?83 fA9M9ՑM[o ճƤhԍ=1U Ɓf?5MA?4O AB@pAL~i1Zhnc]QcAhP&YjB.S5h4i n$QV,&`xp<G`  yAg9zv*\4 L i( acX`fԨCPcb03mhj lV+aV(FJ3حdag5j8ǧحdD3UҲ6JzVPfئȉ=+(~?8`  av= HHc `0H'Hs)^dDIYA JzVPxSNudD0&aJCH 4VE5lxӝY'e)c/DDcNRuֵIM^rTR" Z=iܗF`1o0Bj1JܺoBԖ胖({&TuRSF)PIS4'z1UZ͌<ģ@+ʑ/uze'oGI*Mꭾ Jq\ Rqcrr5Н"0`1#& r+>)Q%ɓ| ^^d|ɼFbNtt{ܗFוO.cc+_m&Լ9ESc@%IG(JF**]E(i31*LE80 X 34DNRu =7Sğe9ۉLgbTqhHXH(h] ܝ'>2Ym*MxZ`30`z g|/Bc?]#Q'e $*iK󑊋 yĩ1HUIT=+(h'e8JiK9ǚz Jt6):"OJ34IYN)M9龔K9枃?]#DIYCFf=+)>o ֛D9z g|/Bc?]#iάj٣3f ON2UUN2s4&"l)f͚|-=8W_eV8˛i1IQ A Jt5Jf)-7KU ȔS҆|/@B@j gcC(!*{Y7vRXS%Z.:-ҫFN\57[:RQ\@ hm4$,$ge+Mu-''(Ii\ķ8W[:oRT>J;I>T䴟*F+>vRNk0죯}O'*|`7e*ZOzdy8FTwMW2]DUuQ0$EHΰDBH3x5c&-*LE3Hh3j&~?AI@80S ?Bmtt"1DHPͪ̚ .6Tcj ca03,p@hz3(  XL0'JB cCљA 7SMjF Bag)7NTÈ G a0?,pD l~Y:PPV =7[R"T!H0t .& XLxm` c\qqfQr5'fޥ@ ǂ xpY j%|Rړ+z{R|a+;NJ$4 6p @Sh mMP΄x5,&`xp<8Z8l 'YfШ q֪Ñ,PkZ5H0ɕҧ Eׄ@@΄x52THVChm4$,$@΄x5|B(A4*x+qpَA@@P"z .clV3?,,鬣&0@4pͱZ1ԪwIiᡨ3 h)ڕ\ b|f36h zy0` aI(BA0*TzrX,-EIEH!AIY'T xS| *ⱹ,&fb XLXCh0Ɗba] @Ċ=J@1frr5`|yf qF4g|/ @АL'G¡bzvPT"z 0 ޼ ,ۉLG XPa ,ۉLGA=< @A  hgfQh> l#D/ 3'xP*tav7ҏa 98ptH?ڣXp(R 0 1ptfQ~gv'T x![rr4?ׂ[hT;@ gb1Ue'oF{ڵIL03ME1I(BA0*U8"2='#H1ᒩA#eV$WVE%)kn*zVS ڭ*JDIYDՕt~(4Z=+(^x ieiRU""OJՕt~(4Ts"$viάjpxx^=+(]M[.R cIC0_*TUu s)K%[KJ|+ /};( ɔxP*ahH&$>ܗFoOm gE׹Sc*r%6t+Vx;fs_+Xr~<8ѠÐa;ޞحdg` ԪwIkh 1i>hH&6V[rr4bJ3x^ 1x%I*%ITiή)T|z54bJ6Ujh0'S}(M0ƫ+X1UNlcS~̓c ZOⷧj`f(ΐaYXPaISS ޞIL6ԉFt mҫ(NVɣ%Ct:SOj%aN6s`hc`h`q0Ť^(^+z{V)m ![V)(ΐaIQ ޞժJaDjD:A15jg|/ՑT)0Zg ! K <C.B (f)6(fb.)l=0^! @A\slԕ'gEA,5J(IA,5J`kK++EͲRTyr\*a ZYX9Z.mZav93i> HHd%r\ټ/QO,"8ZYX9Z.k Q J|),ZYX9Z.k + ֖VV7)kK++E|15zh0@ $$2kYX9Z.lSNuqO,"8ZYX9Z.k Q J|),ZYX9Z.%Bl0 54W5 P dsfE4] @c ZOH5m,6ʭQO,"8ZYX9Z.k Q J|),ZYX9Z.%Bl0 5U)kK++E|1l $aI B@&-Q(9ZY-,57҉Aav91rntl`h3O@S9̓`fj枃g|/@  ɮKie`hr]3ֽʚ $aIQr\*%IEcpɣ%Ct:S@  kK++E͛fE2̓ AaIQK++E|z5<~pd52Lѩ3z )0^(  r\*%Ir\'S  08QC3Mlԕ&xQg|/@"sfE0VV$jbCaؾ !(fi0xQg|/@"sbsa-,5I1†0 |B,PFa1D!z BaIQK++EͲTS ie`hOF!1` p!bf3U)3BB ) r\J%+S ie`hOF!1` p!bf3Q(9Z1D!z Bc mҫ(+IHSᡨ0z" 589Z. .x?˱I(BA0(oOm gRF* ̓ 6o Sm6V Bgv3i>!H1\H(eze<m4t2c?ӌȔ+Yӌ QY;r|&f~Y-'ZhW:9rxFU*O(fۥVQE+Eb@ g|/B@VRQ3h0,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ2kn%g(NN{Q-^@S B8A$@d@H@4r/8A$~\׃?8Pنa 1†&A!&A!&A! `( p;A 93x^@48/Icvޞ@9/I?ޞt @G?,=GNvGJ|Sr| f oe*ķF0zI/|8P"JEdF0zK Pj1 XPc "l ڲT < aQ i qO<4?,xԕ'su]Ja %HB*$4`bR*ՒT= ]c?ޞp $ 8A$@ (  h < j @(qfQr5T,~r 1ePr|&f3kҨY0UUjNh=*ʭP?kҨZ 1i>hH&>'oGkҨ^p.ʭ[lJ.M ]zy6VmTd&3mZhNgr]0~88RTeZ/Ի+ʭAtlCz{RKAg~eb|-![ڕ\  x)S; ,@r gU=.c gm ܝq 8 W9r3m ܜz 1qdҤT9r3iq3?I͞쓥['ԕ'u=iU^oD,B*$4cHMT""a2z<~i0ƑJP =3?I<8A,  h <@AH5ÏxV=ҭ8&,1ePr|&f3h8cl*B'4 mZeVDC ZO@ O%UmZ=Q%ɠ&8C䔩ΒWe UI W±(ҏe6IR* 'Yf$C/JJm0|+iJNjb .d%UxkòZ}ZU0O 9.)5yR(CD~"?8 qO xG AɮKZw%Ѽ?Ԋ.PujҤ&1:?H"9HfJ%+C6U ):j""9JʭG"9UjhQr5RUjRxX͵ Pq3HlKdQr R(CT"J;(3jҥͪ:wӝXͪ:v@5lQr4cHAE(snYG]"91UNl5juaE(sH$PaBd@h#Ec?Ԋ.PVN+"c? CPc?ӌQ,鬣w%Ѳ(.yf՜?jҥ?A6r+5sS}( eVDfb,fئmRN沏 3jo=0UʭAT" clՏqA 4@@(r 1V?h5b/?h9J%eV~TZA1Hjpr~? Zq\1=<]$FUu1g%lSNux39:wӝ^GNԨ8a==*M𤶨SNuh1<7)IUetYaO9(.~YۥVQE89Z/PKʄVrH0 , mҫ(͜Ə7ڳaa?t:'VB7JmZAJYVQG6Uuƣg̥$FUufVa6UufVGUet .PKJ;(8ޞfuA3SNuc6ڕvP~sbsJ;(z aRuaIyڵIL03hHgH0.Eq֓iՕtь0 ^*ڛD1`*McZDhV7j1^z a\^c <490Z{VU 0?P 9: lSNug0?i'$kbs<P֒}Vx0P'ea4xT L+5s aժJ`)FJ3?ޞsV(~YۥVQX1:JUetslz 0R#t:*b,gv0ժJaaS<~ ?,b̡/QLfYRNƊBMPr(a/2bsc7lSNuc{S}( =bEv&%mҫ(a,RTQQjQ2/joG mZ1N6 / Yy8#eV3kU+eVXx a4a 7҉AУa,MPr1ZDhтAc ZO3sq=U §o1nYG]0 1ZFJ3?֓x<5j( m015jgEJg7’;fVʭE+j1^5RUj/0j 3F+X2h\xYF+ޞb- Ǐၘi%ޢDnYG]L 1#?|-3MrX `r1`VVɾJVw%Ѳ(xY0^e =ͳ.F+Aatl1^کTb-]aN6sl3եILkS}( Aiάc*EyN*M6YUj.?˱F+futl1^*sҤ Kj1^4Hc?t:g+EZn]$FUugS|2VQE89Z.IwVQS0&R[fE2̓bEճdђDͺUetYxP*aIiKi)Q[ڕ\ 3'xP*tgQ(9Z* 3[HɥHp*McZDhPͤFmVئAc zyÁ#$ 8A$@ǺC0JP=]Rzy A P A  8A8A8qf͝V3jvPp͠ :DP@*sڥ@A*B82ʭP=]ޞtGH4s $qOqO@p3+J;(~?h8fz 31gA*ԨPN{T0UUjNh4 RoO:c# h(@  i8xx-1$ 8A$@ A„ @ .NT M8jҤ&5JV*sڥ@A6w%Ѳ̓ q 7҉AͶUjFm2z1gnڥ@?3?ޞt A XÈ$xÈ$zaE(sgn7~sA6A6o S,եIL?lb|/;t{V&=;tg7{fE2ZTːJ.Mۥe7흺V?˳Pav2k*EL?9?P]R̓PgHMAɮKN**O,"9-ƍ.ʭGd(NNzTImP{^ i~*0NyÈ$8 ZO⬪׈mP{^ B*$4g(Nab|/eVCix ޞԨa A @0,Y4s@Uj9񹧜y1 <`*i1 wgf%Mw#4d)!H388E/SwM?4d(EX14 8֑7P'e i )gf%?\ ^)FKQT+z{RKA"6/JF)R Yz' E6rђDbm!4d(EBޞЊ .MrZuh#t:,"9Q"E\M[=\F+ŝp"t.Bׂ9Z gjlՏy8yHÏ0ƣxA3[*c\qX1xJ_ ]g)7&R[nYG]jl\ jj?mҫ(TZ& KlKe[*?,pJ|)-J-8sU+eV˟aᄗzUetsU+eVN{U+eV=r .)I<*,TZ/ WA~Yt|)W]ҫ(8jlBacSVnYG] Zq\VʭG@S4 5g):0'JD[U+eV jj?4 5c?ښF+񹹨05hU"\ Qr4*֪Ñ,PhE P Df(4*G)"|Vm D! A)8*c?֓xP*ag%,td )9N2eVr|&f~YBzxmZPeV<#pPeVx+F* CxsM-'$ H3i>ʺaax^ͲQ1MP`H]ZOHhHAIU DZ/ԅ?Mpq0@T E3t#gh aSgVHf)֪`f0 @V^AG"RDB@ DVAMeg1FA >'oGihx^![ڕ\ 1x^f" kr|&fYCnYG]i3?R3< WQ(|oј?ׂX@P"34u i3i>hH&%Q ޞۓ]乣's#yf\"~?AHx3c4p1&?GЋA:DM"~PgHd%̬3i>hH&H9A+;p]KD*3Hl$Pc?tœwJ-r(Ro%Uuft"9zUeu353Hj:U$H:I\͒Ε@~i{I.#*EyNAZO@ MQgJ9Zlt9A$H:H45-;̓Ǡ^ O DaPeV3mҫ(N+9Z< 1q֓i("z 3 'Yfd8GA1Dg5GkJ0  ֎A10 D5Zg @C#$h4hh0&8 P x'8P$(dd F=*MA' ?ڣx]Tt ]'GNx`f;@!w' .Mr\juUeugR(Ct:f٣'s?H#]DN\#gElgD<!aE(s`W&W!aO9CÄ18!0Z$& h矖a"!m1^Ax4Cj 0JN3CÄ1nYG]b{`W 0 kd$Zm:@n;76:1a^:./usr/opt/perl5/bin/cppstdintommcat >.$$.c; /usr/vac/bin/xlc -E ${1+"$@"} .$$.c; rm .$$.c 4d( k6A%Zmp2@n;76:1b^p2./usr/opt/perl5/bin/find2perltomm#!/usr/opt/perl5/bin/perl eval 'exec /usr/opt/perl5/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; $startperl = "#!/usr/opt/perl5/bin/perl"; $perlpath = "/usr/opt/perl5/bin/perl"; # # Modified September 26, 1993 to provide proper handling of years after 1999 # Tom Link # University of Pittsburgh # # Modified April 7, 1998 with nasty hacks to implement the troublesome -follow # Billy Constantine # University of Adelaide, Adelaide, South Australia # while ($ARGV[0] =~ /^[^-!(]/) { push(@roots, shift); } @roots = ('.') unless @roots; for (@roots) { $_ = "e($_); } $roots = join(',', @roots); $indent = 1; $stat = 'lstat'; $decl = ''; while (@ARGV) { $_ = shift; s/^-// || /^[()!]/ || die "Unrecognized switch: $_\n"; if ($_ eq '(') { $out .= &tab . "(\n"; $indent++; next; } elsif ($_ eq ')') { $indent--; $out .= &tab . ")"; } elsif ($_ eq 'follow') { $stat = 'stat'; $decl = '%already_seen = ();'; $out .= &tab . '(not $already_seen{"$dev,$ino"}) &&'; $out .= "\n" . &tab . '(($already_seen{"$dev,$ino"} = !(-d _)) || 1)'; } elsif ($_ eq '!') { $out .= &tab . "!"; next; } elsif ($_ eq 'name') { $out .= &tab; $pat = &fileglob_to_re(shift); $out .= '/' . $pat . "/"; } elsif ($_ eq 'perm') { $onum = shift; die "Malformed -perm argument: $onum\n" unless $onum =~ /^-?[0-7]+$/; if ($onum =~ s/^-//) { $onum = '0' . sprintf("%o", oct($onum) & 017777); # s/b 07777 ? $out .= &tab . "((\$mode & $onum) == $onum)"; } else { $onum = '0' . $onum unless $onum =~ /^0/; $out .= &tab . "((\$mode & 0777) == $onum)"; } } elsif ($_ eq 'type') { ($filetest = shift) =~ tr/s/S/; $out .= &tab . "-$filetest _"; } elsif ($_ eq 'print') { $out .= &tab . 'print("$name\n")'; } elsif ($_ eq 'print0') { $out .= &tab . 'print("$name\0")'; } elsif ($_ eq 'fstype') { $out .= &tab; $type = shift; if ($type eq 'nfs') { $out .= '($dev < 0)'; } else { $out .= '($dev >= 0)'; } } elsif ($_ eq 'user') { $uname = shift; $out .= &tab . "(\$uid == \$uid{'$uname'})"; $inituser++; } elsif ($_ eq 'group') { $gname = shift; $out .= &tab . "(\$gid == \$gid{'$gname'})"; $initgroup++; } elsif ($_ eq 'nouser') { $out .= &tab . '!defined $uid{$uid}'; $inituser++; } elsif ($_ eq 'nogroup') { $out .= &tab . '!defined $gid{$gid}'; $initgroup++; } elsif ($_ eq 'links') { $out .= &tab . '($nlink ' . &n(shift); } elsif ($_ eq 'inum') { $out .= &tab . '($ino ' . &n(shift); } elsif ($_ eq 'size') { $out .= &tab . '(int(((-s _) + 511) / 512) ' . &n(shift); } elsif ($_ eq 'atime') { $out .= &tab . '(int(-A _) ' . &n(shift); } elsif ($_ eq 'mtime') { $out .= &tab . '(int(-M _) ' . &n(shift); } elsif ($_ eq 'ctime') { $out .= &tab . '(int(-C _) ' . &n(shift); } elsif ($_ eq 'exec') { for (@cmd = (); @ARGV && $ARGV[0] ne ';'; push(@cmd,shift)) { } shift; $_ = "@cmd"; if (m#^(/bin/)?rm -f {}$#) { if (!@ARGV) { $out .= &tab . 'unlink($_)'; } else { $out .= &tab . '(unlink($_) || 1)'; } } elsif (m#^(/bin/)?rm {}$#) { $out .= &tab . '(unlink($_) || warn "$name: $!\n")'; } else { for (@cmd) { s/'/\\'/g; } $" = "','"; $out .= &tab . "&exec(0, '@cmd')"; $" = ' '; $initexec++; } } elsif ($_ eq 'ok') { for (@cmd = (); @ARGV && $ARGV[0] ne ';'; push(@cmd,shift)) { } shift; for (@cmd) { s/'/\\'/g; } $" = "','"; $out .= &tab . "&exec(1, '@cmd')"; $" = ' '; $initexec++; } elsif ($_ eq 'prune') { $out .= &tab . '($prune = 1)'; } elsif ($_ eq 'xdev') { $out .= &tab . '!($prune |= ($dev != $topdev))'; } elsif ($_ eq 'newer') { $out .= &tab; $file = shift; $newername = 'AGE_OF' . $file; $newername =~ s/[^\w]/_/g; $newername = "\$$newername"; $out .= "(-M _ < $newername)"; $initnewer .= "$newername = -M " . "e($file) . ";\n"; } elsif ($_ eq 'eval') { $prog = "e(shift); $out .= &tab . "eval $prog"; } elsif ($_ eq 'depth') { $depth++; next; } elsif ($_ eq 'ls') { $out .= &tab . "&ls"; $initls++; } elsif ($_ eq 'tar') { $out .= &tab; die "-tar must have a filename argument\n" unless @ARGV; $file = shift; $fh = 'FH' . $file; $fh =~ s/[^\w]/_/g; $out .= "&tar($fh)"; $file = '>' . $file; $initfile .= "open($fh, " . "e($file) . qq{) || die "Can't open $fh: \$!\\n";\n}; $inittar++; $flushall = "\n&tflushall;\n"; } elsif (/^n?cpio$/) { $depth++; $out .= &tab; die "-$_ must have a filename argument\n" unless @ARGV; $file = shift; $fh = 'FH' . $file; $fh =~ s/[^\w]/_/g; $out .= "&cpio('" . substr($_,0,1) . "', $fh)"; $file = '>' . $file; $initfile .= "open($fh, " . "e($file) . qq{) || die "Can't open $fh: \$!\\n";\n}; $initcpio++; $flushall = "\n&flushall;\n"; } else { die "Unrecognized switch: -$_\n"; } if (@ARGV) { if ($ARGV[0] eq '-o') { { local($statdone) = 1; $out .= "\n" . &tab . "||\n"; } $statdone = 0 if $indent == 1 && $delayedstat; $saw_or++; shift; } else { $out .= " &&" unless $ARGV[0] eq ')'; $out .= "\n"; shift if $ARGV[0] eq '-a'; } } } print <<"END"; $startperl eval 'exec $perlpath -S \$0 \${1+"\$@"}' if \$running_under_some_shell; END if ($initls) { print <<'END'; @rwx = ('---','--x','-w-','-wx','r--','r-x','rw-','rwx'); @moname = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec); END } if ($inituser || $initls) { print 'while (($name, $pw, $uid) = getpwent) {', "\n"; print ' $uid{$name} = $uid{$uid} = $uid;', "\n" if $inituser; print ' $user{$uid} = $name unless $user{$uid};', "\n" if $initls; print "}\n\n"; } if ($initgroup || $initls) { print 'while (($name, $pw, $gid) = getgrent) {', "\n"; print ' $gid{$name} = $gid{$gid} = $gid;', "\n" if $initgroup; print ' $group{$gid} = $name unless $group{$gid};', "\n" if $initls; print "}\n\n"; } print $initnewer, "\n" if $initnewer; print $initfile, "\n" if $initfile; $find = $depth ? "finddepth" : "find"; print <<"END"; require "$find.pl"; # Traverse desired filesystems $decl &$find($roots); $flushall exit; sub wanted { $out; } END if ($initexec) { print <<'END'; sub exec { local($ok, @cmd) = @_; foreach $word (@cmd) { $word =~ s#{}#$name#g; } if ($ok) { local($old) = select(STDOUT); $| = 1; print "@cmd"; select($old); return 0 unless =~ /^y/; } chdir $cwd; # sigh system @cmd; chdir $dir; return !$?; } END } if ($initls) { print <<"INTERP", <<'END'; sub ls { (\$dev,\$ino,\$mode,\$nlink,\$uid,\$gid,\$rdev,\$sizemm, \$atime,\$mtime,\$ctime,\$blksize,\$blocks) = $stat\(_\); INTERP $pname = $name; if (defined $blocks) { $blocks = int(($blocks + 1) / 2); } else { $blocks = int(($size + 1023) / 1024); } if (-f _) { $perms = '-'; } elsif (-d _) { $perms = 'd'; } elsif (-c _) { $perms = 'c'; $sizemm = &sizemm; } elsif (-b _) { $perms = 'b'; $sizemm = &sizemm; } elsif (-p _) { $perms = 'p'; } elsif (-S _) { $perms = 's'; } else { $perms = 'l'; $pname .= ' -> ' . readlink($_); } $tmpmode = $mode; $tmp = $rwx[$tmpmode & 7]; $tmpmode >>= 3; $tmp = $rwx[$tmpmode & 7] . $tmp; $tmpmode >>= 3; $tmp = $rwx[$tmpmode & 7] . $tmp; substr($tmp,2,1) =~ tr/-x/Ss/ if -u _; substr($tmp,5,1) =~ tr/-x/Ss/ if -g _; substr($tmp,8,1) =~ tr/-x/Tt/ if -k _; $perms .= $tmp; $user = $user{$uid} || $uid; $group = $group{$gid} || $gid; ($sec,$min,$hour,$mday,$mon,$year) = localtime($mtime); $moname = $moname[$mon]; if (-M _ > 365.25 / 2) { $timeyear = $year + 1900; } else { $timeyear = sprintf("%02d:%02d", $hour, $min); } printf "%5lu %4ld %-10s %2d %-8s %-8s %8s %s %2d %5s %s\n", $ino, $blocks, $perms, $nlink, $user, $group, $sizemm, $moname, $mday, $timeyear, $pname; 1; } sub sizemm { sprintf("%3d, %3d", ($rdev >> 8) & 255, $rdev & 255); } END } if ($initcpio) { print <<'START', <<"INTERP", <<'END'; sub cpio { local($nc,$fh) = @_; local($text); if ($name eq 'TRAILER!!!') { $text = ''; $size = 0; } else { START (\$dev,\$ino,\$mode,\$nlink,\$uid,\$gid,\$rdev,\$size, \$atime,\$mtime,\$ctime,\$blksize,\$blocks) = $stat\(_\); INTERP if (-f _) { open(IN, "./$_\0") || do { warn "Couldn't open $name: $!\n"; return; }; } else { $text = readlink($_); $size = 0 unless defined $text; } } ($nm = $name) =~ s#^\./##; $nc{$fh} = $nc; if ($nc eq 'n') { $cpout{$fh} .= sprintf("%06o%06o%06o%06o%06o%06o%06o%06o%011lo%06o%011lo%s\0", 070707, $dev & 0777777, $ino & 0777777, $mode & 0777777, $uid & 0777777, $gid & 0777777, $nlink & 0777777, $rdev & 0177777, $mtime, length($nm)+1, $size, $nm); } else { $cpout{$fh} .= "\0" if length($cpout{$fh}) & 1; $cpout{$fh} .= pack("SSSSSSSSLSLa*", 070707, $dev, $ino, $mode, $uid, $gid, $nlink, $rdev, $mtime, length($nm)+1, $size, $nm . (length($nm) & 1 ? "\0" : "\0\0")); } if ($text ne '') { $cpout{$fh} .= $text; } elsif ($size) { &flush($fh) while ($l = length($cpout{$fh})) >= 5120; while (sysread(IN, $cpout{$fh}, 5120 - $l, $l)) { &flush($fh); $l = length($cpout{$fh}); } } close IN; } sub flush { local($fh) = @_; while (length($cpout{$fh}) >= 5120) { syswrite($fh,$cpout{$fh},5120); ++$blocks{$fh}; substr($cpout{$fh}, 0, 5120) = ''; } } sub flushall { $name = 'TRAILER!!!'; foreach $fh (keys %cpout) { &cpio($nc{$fh},$fh); $cpout{$fh} .= "0" x (5120 - length($cpout{$fh})); &flush($fh); print $blocks{$fh} * 10, " blocks\n"; } } END } if ($inittar) { print <<'START', <<"INTERP", <<'END'; sub tar { local($fh) = @_; local($linkname,$header,$l,$slop); local($linkflag) = "\0"; START (\$dev,\$ino,\$mode,\$nlink,\$uid,\$gid,\$rdev,\$size, \$atime,\$mtime,\$ctime,\$blksize,\$blocks) = $stat\(_\); INTERP $nm = $name; if ($nlink > 1) { if ($linkname = $linkseen{$fh,$dev,$ino}) { $linkflag = 1; } else { $linkseen{$fh,$dev,$ino} = $nm; } } if (-f _) { open(IN, "./$_\0") || do { warn "Couldn't open $name: $!\n"; return; }; $size = 0 if $linkflag ne "\0"; } else { $linkname = readlink($_); $linkflag = 2 if defined $linkname; $nm .= '/' if -d _; $size = 0; } $header = pack("a100a8a8a8a12a12a8a1a100", $nm, sprintf("%6o ", $mode & 0777), sprintf("%6o ", $uid & 0777777), sprintf("%6o ", $gid & 0777777), sprintf("%11o ", $size), sprintf("%11o ", $mtime), " ", $linkflag, $linkname); $l = length($header) % 512; substr($header, 148, 6) = sprintf("%6o", unpack("%16C*", $header)); substr($header, 154, 1) = "\0"; # blech $tarout{$fh} .= $header; $tarout{$fh} .= "\0" x (512 - $l) if $l; if ($size) { &tflush($fh) while ($l = length($tarout{$fh})) >= 10240; while (sysread(IN, $tarout{$fh}, 10240 - $l, $l)) { $slop = length($tarout{$fh}) % 512; $tarout{$fh} .= "\0" x (512 - $slop) if $slop; &tflush($fh); $l = length($tarout{$fh}); } } close IN; } sub tflush { local($fh) = @_; while (length($tarout{$fh}) >= 10240) { syswrite($fh,$tarout{$fh},10240); ++$blocks{$fh}; substr($tarout{$fh}, 0, 10240) = ''; } } sub tflushall { local($len); foreach $fh (keys %tarout) { $len = 10240 - length($tarout{$fh}); $len += 10240 if $len < 1024; $tarout{$fh} .= "\0" x $len; &tflush($fh); } } END } exit; ############################################################################ sub tab { local($tabstring); $tabstring = "\t" x ($indent / 2) . ' ' x ($indent % 2 * 4); if (!$statdone) { if ($_ =~ /^(name|print|prune|exec|ok|\(|\))/) { $delayedstat++; } else { if ($saw_or) { $tabstring .= <<"ENDOFSTAT" . $tabstring; (\$nlink || ((\$dev,\$ino,\$mode,\$nlink,\$uid,\$gid) = $stat\(\$_\))) && ENDOFSTAT } else { $tabstring .= <<"ENDOFSTAT" . $tabstring; ((\$dev,\$ino,\$mode,\$nlink,\$uid,\$gid) = $stat\(\$_\)) && ENDOFSTAT } $statdone = 1; } } $tabstring =~ s/^\s+/ / if $out =~ /!$/; $tabstring; } sub fileglob_to_re { local($tmp) = @_; $tmp =~ s#([./^\$()])#\\$1#g; $tmp =~ s/([?*])/.$1/g; "^$tmp\$"; } sub n { local($n) = @_; $n =~ s/^-/< / || $n =~ s/^\+/> / || $n =~ s/^/== /; $n =~ s/ 0*(\d)/ $1/; $n . ')'; } sub quote { local($string) = @_; $string =~ s/'/\\'/; "'$string'"; } k&&Zm K@n;76:1f^ K./usr/opt/perl5/bin/h2phperltomm#!/usr/opt/perl5/bin/perl eval 'exec /usr/opt/perl5/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; use Config; use File::Path qw(mkpath); use Getopt::Std; getopts('Dd:rlhaQ'); die "-r and -a options are mutually exclusive\n" if ($opt_r and $opt_a); @inc_dirs = inc_dirs() if $opt_a; my $Exit = 0; my $Dest_dir = $opt_d || $Config{installsitearch}; die "Destination directory $Dest_dir doesn't exist or isn't a directory\n" unless -d $Dest_dir; @isatype = split(' ',<-"); } else { ($outfile = $file) =~ s/\.h$/.ph/ || next; print "$file -> $outfile\n" unless $opt_Q; if ($file =~ m|^(.*)/|) { $dir = $1; mkpath "$Dest_dir/$dir"; } if ($opt_a) { # automagic mode: locate header file in @inc_dirs foreach (@inc_dirs) { chdir $_; last if -f $file; } } open(IN,"$file") || (($Exit = 1),(warn "Can't open $file: $!\n"),next); open(OUT,">$Dest_dir/$outfile") || die "Can't create $outfile: $!\n"; } print OUT "require '_h2ph_pre.ph';\n\n"; while () { chop; while (/\\$/) { chop; $_ .= ; chop; } print OUT "# $_\n" if $opt_D; if (s:/\*:\200:g) { s:\*/:\201:g; s/\200[^\201]*\201//g; # delete single line comments if (s/\200.*//) { # begin multi-line comment? $_ .= '/*'; $_ .= ; redo; } } if (s/^\s*\#\s*//) { if (s/^define\s+(\w+)//) { $name = $1; $new = ''; s/\s+$//; if (s/^\(([\w,\s]*)\)//) { $args = $1; my $proto = '() '; if ($args ne '') { $proto = ''; foreach $arg (split(/,\s*/,$args)) { $arg =~ s/^\s*([^\s].*[^\s])\s*$/$1/; $curargs{$arg} = 1; } $args =~ s/\b(\w)/\$$1/g; $args = "local($args) = \@_;\n$t "; } s/^\s+//; expr(); $new =~ s/(["\\])/\\$1/g; #"]); $new = reindent($new); $args = reindent($args); if ($t ne '') { $new =~ s/(['\\])/\\$1/g; #']); if ($opt_h) { print OUT $t, "eval \"\\n#line $eval_index $outfile\\n\" . 'sub $name $proto\{\n$t ${args}eval q($new);\n$t}' unless defined(\&$name);\n"; $eval_index++; } else { print OUT $t, "eval 'sub $name $proto\{\n$t ${args}eval q($new);\n$t}' unless defined(\&$name);\n"; } } else { print OUT "unless(defined(\&$name)) {\n sub $name $proto\{\n\t${args}eval q($new);\n }\n}\n"; } %curargs = (); } else { s/^\s+//; expr(); $new = 1 if $new eq ''; $new = reindent($new); $args = reindent($args); if ($t ne '') { $new =~ s/(['\\])/\\$1/g; #']); if ($opt_h) { print OUT $t,"eval \"\\n#line $eval_index $outfile\\n\" . 'sub $name () {",$new,";}' unless defined(\&$name);\n"; $eval_index++; } else { print OUT $t,"eval 'sub $name () {",$new,";}' unless defined(\&$name);\n"; } } else { # Shunt around such directives as `#define FOO FOO': next if " \&$name" eq $new; print OUT $t,"unless(defined(\&$name)) {\n sub $name () {\t",$new,";}\n}\n"; } } } elsif (/^(include|import)\s*[<"](.*)[>"]/) { ($incl = $2) =~ s/\.h$/.ph/; print OUT $t,"require '$incl';\n"; } elsif(/^include_next\s*[<"](.*)[>"]/) { ($incl = $1) =~ s/\.h$/.ph/; print OUT ($t, "eval {\n"); $tab += 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); print OUT ($t, "my(\%INCD) = map { \$INC{\$_} => 1 } ", "(grep { \$_ eq \"$incl\" } keys(\%INC));\n"); print OUT ($t, "my(\@REM) = map { \"\$_/$incl\" } ", "(grep { not exists(\$INCD{\"\$_/$incl\"})", "and -f \"\$_/$incl\" } \@INC);\n"); print OUT ($t, "require \"\$REM[0]\" if \@REM;\n"); $tab -= 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); print OUT ($t, "};\n"); print OUT ($t, "warn(\$\@) if \$\@;\n"); } elsif (/^ifdef\s+(\w+)/) { print OUT $t,"if(defined(&$1)) {\n"; $tab += 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); } elsif (/^ifndef\s+(\w+)/) { print OUT $t,"unless(defined(&$1)) {\n"; $tab += 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); } elsif (s/^if\s+//) { $new = ''; $inif = 1; expr(); $inif = 0; print OUT $t,"if($new) {\n"; $tab += 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); } elsif (s/^elif\s+//) { $new = ''; $inif = 1; expr(); $inif = 0; $tab -= 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); print OUT $t,"}\n elsif($new) {\n"; $tab += 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); } elsif (/^else/) { $tab -= 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); print OUT $t,"} else {\n"; $tab += 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); } elsif (/^endif/) { $tab -= 4; $t = "\t" x ($tab / 8) . ' ' x ($tab % 8); print OUT $t,"}\n"; } elsif(/^undef\s+(\w+)/) { print OUT $t, "undef(&$1) if defined(&$1);\n"; } elsif(/^error\s+(".*")/) { print OUT $t, "die($1);\n"; } elsif(/^error\s+(.*)/) { print OUT $t, "die(\"", quotemeta($1), "\");\n"; } elsif(/^warning\s+(.*)/) { print OUT $t, "warn(\"", quotemeta($1), "\");\n"; } elsif(/^ident\s+(.*)/) { print OUT $t, "# $1\n"; } } elsif(/^\s*(typedef\s*)?enum\s*(\s+[a-zA-Z_]\w*\s*)?\{/) { until(/\}.*?;/) { chomp($next = ); $_ .= $next; print OUT "# $next\n" if $opt_D; } s@/\*.*?\*/@@g; s/\s+/ /g; /^\s?(typedef\s?)?enum\s?([a-zA-Z_]\w*)?\s?\{(.*)\}\s?([a-zA-Z_]\w*)?\s?;/; ($enum_subs = $3) =~ s/\s//g; @enum_subs = split(/,/, $enum_subs); $enum_val = -1; for $enum (@enum_subs) { ($enum_name, $enum_value) = $enum =~ /^([a-zA-Z_]\w*)(=.+)?$/; $enum_value =~ s/^=//; $enum_val = (length($enum_value) ? $enum_value : $enum_val + 1); if ($opt_h) { print OUT ($t, "eval(\"\\n#line $eval_index $outfile\\n", "sub $enum_name () \{ $enum_val; \}\") ", "unless defined(\&$enum_name);\n"); ++ $eval_index; } else { print OUT ($t, "eval(\"sub $enum_name () \{ $enum_val; \}\") ", "unless defined(\&$enum_name);\n"); } } } } print OUT "1;\n"; $is_converted{$file} = 1; queue_includes_from($file) if ($opt_a); } exit $Exit; sub reindent($) { my($text) = shift; $text =~ s/\n/\n /g; $text =~ s/ /\t/g; $text; } sub expr { if(keys(%curargs)) { my($joined_args) = join('|', keys(%curargs)); } while ($_ ne '') { s/^\&\&// && do { $new .= " &&"; next;}; # handle && operator s/^\&([\(a-z\)]+)/$1/i; # hack for things that take the address of s/^(\s+)// && do {$new .= ' '; next;}; s/^(0X[0-9A-F]+)[UL]*//i && do {$new .= lc($1); next;}; s/^(-?\d+\.\d+E[-+]\d+)F?//i && do {$new .= $1; next;}; s/^(\d+)\s*[LU]*//i && do {$new .= $1; next;}; s/^("(\\"|[^"])*")// && do {$new .= $1; next;}; s/^'((\\"|[^"])*)'// && do { if ($curargs{$1}) { $new .= "ord('\$$1')"; } else { $new .= "ord('$1')"; } next; }; # replace "sizeof(foo)" with "{foo}" # also, remove * (C dereference operator) to avoid perl syntax # problems. Where the %sizeof array comes from is anyone's # guess (c2ph?), but this at least avoids fatal syntax errors. # Behavior is undefined if sizeof() delimiters are unbalanced. # This code was modified to able to handle constructs like this: # sizeof(*(p)), which appear in the HP-UX 10.01 header files. s/^sizeof\s*\(// && do { $new .= '$sizeof'; my $lvl = 1; # already saw one open paren # tack { on the front, and skip it in the loop $_ = "{" . "$_"; my $index = 1; # find balanced closing paren while ($index <= length($_) && $lvl > 0) { $lvl++ if substr($_, $index, 1) eq "("; $lvl-- if substr($_, $index, 1) eq ")"; $index++; } # tack } on the end, replacing ) substr($_, $index - 1, 1) = "}"; # remove pesky * operators within the sizeof argument substr($_, 0, $index - 1) =~ s/\*//g; next; }; # Eliminate typedefs /\(([\w\s]+)[\*\s]*\)\s*[\w\(]/ && do { foreach (split /\s+/, $1) { # Make sure all the words are types, last unless ($isatype{$_} or $_ eq 'struct'); } s/\([\w\s]+[\*\s]*\)// && next; # then eliminate them. }; # struct/union member, including arrays: s/^([_A-Z]\w*(\[[^\]]+\])?((\.|->)[_A-Z]\w*(\[[^\]]+\])?)+)//i && do { $id = $1; $id =~ s/(\.|(->))([^\.\-]*)/->\{$3\}/g; $id =~ s/\b([^\$])($joined_args)/$1\$$2/g if length($joined_args); while($id =~ /\[\s*([^\$\&\d\]]+)\]/) { my($index) = $1; $index =~ s/\s//g; if(exists($curargs{$index})) { $index = "\$$index"; } else { $index = "&$index"; } $id =~ s/\[\s*([^\$\&\d\]]+)\]/[$index]/; } $new .= " (\$$id)"; }; s/^([_a-zA-Z]\w*)// && do { $id = $1; if ($id eq 'struct') { s/^\s+(\w+)//; $id .= ' ' . $1; $isatype{$id} = 1; } elsif ($id =~ /^((un)?signed)|(long)|(short)$/) { while (s/^\s+(\w+)//) { $id .= ' ' . $1; } $isatype{$id} = 1; } if ($curargs{$id}) { $new .= "\$$id"; $new .= '->' if /^[\[\{]/; } elsif ($id eq 'defined') { $new .= 'defined'; } elsif (/^\(/) { s/^\((\w),/("$1",/ if $id =~ /^_IO[WR]*$/i; # cheat $new .= " &$id"; } elsif ($isatype{$id}) { if ($new =~ /{\s*$/) { $new .= "'$id'"; } elsif ($new =~ /\(\s*$/ && /^[\s*]*\)/) { $new =~ s/\(\s*$//; s/^[\s*]*\)//; } else { $new .= q(').$id.q('); } } else { if ($inif && $new !~ /defined\s*\($/) { $new .= '(defined(&' . $id . ') ? &' . $id . ' : 0)'; } elsif (/^\[/) { $new .= " \$$id"; } else { $new .= ' &' . $id; } } next; }; s/^(.)// && do { if ($1 ne '#') { $new .= $1; } next;}; } } # Handle recursive subdirectories without getting a grotesquely big stack. # Could this be implemented using File::Find? sub next_file { my $file; while (@ARGV) { $file = shift @ARGV; if ($file eq '-' or -f $file or -l $file) { return $file; } elsif (-d $file) { if ($opt_r) { expand_glob($file); } else { print STDERR "Skipping directory `$file'\n"; } } elsif ($opt_a) { return $file; } else { print STDERR "Skipping `$file': not a file or directory\n"; } } return undef; } # Put all the files in $directory into @ARGV for processing. sub expand_glob { my ($directory) = @_; $directory =~ s:/$::; opendir DIR, $directory; foreach (readdir DIR) { next if ($_ eq '.' or $_ eq '..'); # expand_glob() is going to be called until $ARGV[0] isn't a # directory; so push directories, and unshift everything else. if (-d "$directory/$_") { push @ARGV, "$directory/$_" } else { unshift @ARGV, "$directory/$_" } } closedir DIR; } # Given $file, a symbolic link to a directory in the C include directory, # make an equivalent symbolic link in $Dest_dir, if we can figure out how. # Otherwise, just duplicate the file or directory. sub link_if_possible { my ($dirlink) = @_; my $target = eval 'readlink($dirlink)'; if ($target =~ m:^\.\./: or $target =~ m:^/:) { # The target of a parent or absolute link could leave the $Dest_dir # hierarchy, so let's put all of the contents of $dirlink (actually, # the contents of $target) into @ARGV; as a side effect down the # line, $dirlink will get created as an _actual_ directory. expand_glob($dirlink); } else { if (-l "$Dest_dir/$dirlink") { unlink "$Dest_dir/$dirlink" or print STDERR "Could not remove link $Dest_dir/$dirlink: $!\n"; } if (eval 'symlink($target, "$Dest_dir/$dirlink")') { print "Linking $target -> $Dest_dir/$dirlink\n"; # Make sure that the link _links_ to something: if (! -e "$Dest_dir/$target") { mkpath("$Dest_dir/$target", 0755) or print STDERR "Could not create $Dest_dir/$target/\n"; } } else { print STDERR "Could not symlink $target -> $Dest_dir/$dirlink: $!\n"; } } } # Push all #included files in $file onto our stack, except for STDIN # and files we've already processed. sub queue_includes_from { my ($file) = @_; my $line; return if ($file eq "-"); open HEADER, $file or return; while (defined($line =
)) { while (/\\$/) { # Handle continuation lines chop $line; $line .=
; } if ($line =~ /^#\s*include\s+<(.*?)>/) { push(@ARGV, $1) unless $is_converted{$1}; } } close HEADER; } # Determine include directories; $Config{usrinc} should be enough for (all # non-GCC?) C compilers, but gcc uses an additional include directory. sub inc_dirs { my $from_gcc = `$Config{cc} -v 2>&1`; $from_gcc =~ s:^Reading specs from (.*?)/specs\b.*:$1/include:s; length($from_gcc) ? ($from_gcc, $Config{usrinc}) : ($Config{usrinc}); } # Create "_h2ph_pre.ph", if it doesn't exist or was built by a different # version of h2ph. sub build_preamble_if_necessary { # Increment $VERSION every time this function is modified: my $VERSION = 1; my $preamble = "$Dest_dir/_h2ph_pre.ph"; # Can we skip building the preamble file? if (-r $preamble) { # Extract version number from first line of preamble: open PREAMBLE, $preamble or die "Cannot open $preamble: $!"; my $line = ; $line =~ /(\b\d+\b)/; close PREAMBLE or die "Cannot close $preamble: $!"; # Don't build preamble if a compatible preamble exists: return if $1 == $VERSION; } my (%define) = _extract_cc_defines(); open PREAMBLE, ">$preamble" or die "Cannot open $preamble: $!"; print PREAMBLE "# This file was created by h2ph version $VERSION\n"; foreach (sort keys %define) { if ($opt_D) { print PREAMBLE "# $_=$define{$_}\n"; } if ($define{$_} =~ /^\d+$/) { print PREAMBLE "unless (defined &$_) { sub $_() { $define{$_} } }\n\n"; } else { print PREAMBLE "unless (defined &$_) { sub $_() { \"", quotemeta($define{$_}), "\" } }\n\n"; } } close PREAMBLE or die "Cannot close $preamble: $!"; } # %Config contains information on macros that are pre-defined by the # system's compiler. We need this information to make the .ph files # function with perl as the .h files do with cc. sub _extract_cc_defines { my %define; my $allsymbols = join " ", @Config{ccsymbols, cppsymbols, cppccsymbols}; # Split compiler pre-definitions into `key=value' pairs: foreach (split /\s+/, $allsymbols) { /(.*?)=(.*)/; $define{$1} = $2; if ($opt_D) { print STDERR "$_: $1 -> $2\n"; } } return %define; } 1; ############################################################################## __END__ =head1 NAME h2ph - convert .h C header files to .ph Perl header files =head1 SYNOPSIS B =head1 DESCRIPTION I converts any C header files specified to the corresponding Perl header file format. It is most easily run while in /usr/include: cd /usr/include; h2ph * sys/* or cd /usr/include; h2ph -r -l . The output files are placed in the hierarchy rooted at Perl's architecture dependent library directory. You can specify a different hierarchy with a B<-d> switch. If run with no arguments, filters standard input to standard output. =head1 OPTIONS =over 4 =item -d destination_dir Put the resulting B<.ph> files beneath B, instead of beneath the default Perl library location (C<$Config{'installsitsearch'}>). =item -r Run recursively; if any of B are directories, then run I on all files in those directories (and their subdirectories, etc.). B<-r> and B<-a> are mutually exclusive. =item -a Run automagically; convert B, as well as any B<.h> files which they include. This option will search for B<.h> files in all directories which your C compiler ordinarily uses. B<-a> and B<-r> are mutually exclusive. =item -l Symbolic links will be replicated in the destination directory. If B<-l> is not specified, then links are skipped over. =item -h Put ``hints'' in the .ph files which will help in locating problems with I. In those cases when you B a B<.ph> file containing syntax errors, instead of the cryptic [ some error condition ] at (eval mmm) line nnn you will see the slightly more helpful [ some error condition ] at filename.ph line nnn However, the B<.ph> files almost double in size when built using B<-h>. =item -D Include the code from the B<.h> file as a comment in the B<.ph> file. This is primarily used for debugging I. =item -Q ``Quiet'' mode; don't print out the names of the files being converted. =back =head1 ENVIRONMENT No environment variables are used. =head1 FILES /usr/include/*.h /usr/include/sys/*.h etc. =head1 AUTHOR Larry Wall =head1 SEE ALSO perl(1) =head1 DIAGNOSTICS The usual warnings if it can't read or write the files involved. =head1 BUGS Doesn't construct the %sizeof array for you. It doesn't handle all C constructs, but it does attempt to isolate definitions inside evals so that you can get at the definitions that it can translate. It's only intended as a rough tool. You may need to dicker with the files produced. Doesn't run with C You have to run this program by hand; it's not run as part of the Perl installation. Doesn't handle complicated expressions built piecemeal, a la: enum { FIRST_VALUE, SECOND_VALUE, #ifdef ABC THIRD_VALUE #endif }; Doesn't necessarily locate all of your C compiler's internally-defined symbols. =cut if l.'ZmtU@n;76:1k^@9./usr/opt/perl5/bin/h2xsperltomm  ent adiloprs"$;_cfhmu #'()-./<=ADENOS\bgwxy,:>@CILMPTXv{}!*12BRUV[]kq|~%&+0FW^?GHY`jz37KZ5468JQ9&hNSsDd քn^X|1X3%ׂ]ko/KBo]onBѯbyW׷>քn5bOf69 ٭*}^9[V_$cjc 9}^9[օ+{shF~;}¹jW)]9]u]8ko$և{o+ gbߗoh Wf/o/{M{o+ gpBքl?u/nB{^{u{:+1C+^&bvd4M{h f/ov>}iQF,r1^PkϫU^aes1ЯpBքl?ŵQUI2yߌC_2ΡŠyY/vWjv<>Y|0u2oZTc&얯t'ݫ6{h1:P,^i&9!0FMd+tkJm (DcZiotc2sVK5_ ^\WT3g{Yz[^lqJXERfvBs/7I1{ZMiXmE!ig c֋Wgjd?eüsT׼Uِ{siQ3%]Gl%%ͯ&bv5QB( 5a"h1-{dm+ma,-];~BC&6ࢄDLC~}^]]d4_K v6ࢄELC~|Pߜ[sחGm'm׭*wv$c|U PZVlpQB*5+@3I1{Wv?*R9cᇽgjхm(X&h@bjI%6:ЍkJm (Eh4,ﳬ= =غǮҰcX1-{ %eVNOb }]׷>V䷭&qɳZ+_dҰc\13~}u3[a,JWzA $֕PpI1aiڰZ^b˝miSVd   .`1+ 8(p򓥭iڰYw-h ׂ&bv- ԓW%tYWa,.^$͔#?[UJBgh{3C|PH`  B~Tv?ؐKZ:ԓfq]WvRvQowVY]vhUwe`&6ࢄjUtևRݷt'i&v}iS;V Br}>ge95VY]vheh[9ZJԾՖ-epz^LwUwS2ۧZT+V_ [a,n{}^K5s1 $֕Pƴ;&Uъz(l :ygYWa,b;a,}^ڽN#d^ܨAǯ 63y3F6\=o­ Ղз}^9[׷>քo>2C hqC%L0 %UվdG{5ev%~`-Haঝgx`*ԿlCvC֕>}]Gl%bjI#|aMim]&/|Xړ4"7^gK+rw8`(XK*OPtm!uׂ{Wv< 9vga^_VO[UJBE꺏ScmU(y =J\ryuo!SoڪP/Uz,*I*\<2hؘxqM{՗Gu2z xoUْKsW#uYDVI*:ְHE 0 6h! ]°A @ʄ3V,@q,A9i=!3"B( 0 6h+@k|^zo^[VNj,чL膨s[% *q^+t%#=ژ,gKZF?>#|h6R0;GRPx=JXCjL͇2"[iotc2sᇺV^ER@g c֋W*p:\%n8ko(o5-!KwyWaY Z*!$"%47묝Fڻ a&O!W(oTK 7ȫ47ՖW]|PZM/L:݋\zIEo*+}Z[%~ma,+yuϺw[+Wg!+׸ϱu[Ղ{9.o*}^YՓ ^>@jd=t^ 꼙$+oRL}^=fq]㘺o:VNL2֕=gjh[V&_ڰYwVόv֕> AfvG.k =Âͪ$Ar:݈|`v.Wv y}oiSN|0ma, H.F,sf/D?e xg_h!$ShZײz%BBe.au  @ vj֛Z\zJz鵰XJSyfHLa3 L͇3=PU6)OTWRY6+ 'y^çźJ8 L(&ҔJ[)M>#|{zNWx-8 q:P&8Jm+I=K 5WSoW7j.uMk5q舳]fsN#~TI99ּxlݫ:Rk[ٻWQ~@YnU~ݫ7j.C7,sA")WQtXJn_ Li)OT@Y3ua%oJ~#1]E"KkқuB|KM6K3ڿ+қuMݫ*&H2~ t=Qm-Ǥぢ&ߍO![ Wl%]E'bY?#]Ϫx]EP A6-Ǥ`4XqsC]bp)WQ~W\pqč eݫ)Fư[Hh:Tbp-қuz%HBh!P?/]EO.џq0d,8(~+_c[7j/1@X 4gIw>kb/@@քo?~ɘ~ˮ:Ѝԃjʏs_%`|kheef6]YeuLsV%tPK󤕺d|Nxp Jn]$Cw)WQp"7ǔ8FAn<4h<Zg*Hx@ӕɐ3z".W9-ҔGџHFZ [$Qu|oX:=WV¹w*s@FkC-)OT,џ=Rc<2Y:S(/෩0-)OT2ig.џƷŚ0aS:*o![JzkAZcIAcmgg9J :mvUmv5YeuLs^WT5*.]jLI^g Ś1,sʄI$DɦѐXK0O ' 4`ı_*569z'KŢF bX-6֏Uwœu]+Ah4 r/MLIP&OhIJWh$^Wq&L)&$cdhĘ1|I>nDMbO9x0xcXmH&vk|Yˮ^&сIu6A6I=lsb^{1.ֶ qJzY4+t?Hl0tğ r7bO9M[_D ![CoWaVRbO99-I>x-6 emF$ğ7jE1iRܪxk|MfARbOtD+`A6|ݫEz)(M0]` PzLI1a\02 U I>x, }`Sh5&$㘰"ZT&5 =%jƩ=%jƪMԭ6 n rߍF_ ^UcooCa]Ę1dU$CKvJjLI1dbO[ŒAP"zRo,—ÂͪL`1}𥫰,")|:X&0` gR j2{I$sMzMC;aA6zJaIhGn<5gڱmZT*aIhF_7j.C7Cs޴\zJS qÓon=%f_ aDqf-9z@6-ӕM.>gDڮ̆-9Jfq]9I^WafvqB7br%1a\rЍ㘵v; -)9zkEǪ; 9Z.=T*D2C/GrAŠx,,:X :&hay}7RWףMԭEjƣ&5\xjϵcP,C^Xqr ],V5x;V5ENxWD1&$Y) w!եoh5&$㘲i1'bM"ZL.v Jz =Q^ ҔB9f?,w ߓ4?0LЁǐ ?c ^ M7JS9-k|pWg#u7Ϻу'Hf!P& E6hyܯaMr$9t8 9B .їسF !ĄyB2]Ӂr"|y63t L.тmƶ,уx ?}w ߓ4?0LЁǐ |vxbHohThC`ݛ2sᇻ eFAa ҔAN@[t8 9@F^(ou{WNB< ʛt$&K`F\kb2to "`tSkN-NTۡ`vh[:C7(%Mx~/h'*oln.rΡﵜt3-|A9SZ7㘺{g3ɝDNTǡ4d`YWa,6/WMYeuٵ$Ӂ^>=UWT1uiq iYFy^9!3"B( 0 6hK3x(QKkҔE|ҔADVN3BMxW 4X{5vQ;,6jIVY]vh PYWa,%zYeuپ-I:ͤ_7V߲3BY&C$bo89yċ,\*&HLmi': 2LIՖW][kC--$bxefMq!WG+q%es8 A6$b!Ś2 qr>L?]<,џq"$,_, 4 ht3Keb$,]6hˍo4`i': Lӊ>T뺿%2bOf7r89E6o^H+u-jM8``E򾬝qnq!WG=-$X&h@b]0d[7JS9n7ΐe- n+ m:C70d)쥵:}&$c|@a挦K]R% q q#E+ mۧ+(%PrmmƷŚ1'-NW*:963x(QKZ7R'>ؽ^O=.5yfvQؽ^O=.rt R%n~}8|#sBmQCKL.֤uyS%)+aЏ+8$yP5ď:.@Ρ%BN>#kXCVY]QW&}%y^8rmxj.ޔ %e%y^PEi*aMefխ4X% +c][} }cjK>Ս{%)OT!śK>Պ(P^G0r eZE"PΉϵcPxZ`vNOyB2]F^ &ѣx*#'|yK:ҧC&iٍؓLto5Jnx#,"aZ5&$c|G %iSbعvhҫ۞1BFʹkFoĞm6\;/˴kF^G.`p,ՊU{s0LkFuyP+l:h֍*lX@٦h"<@FiUY֘2]Jr*&L;9zR$gHf!F^ &֫Vmk`Jz -PWg#uWq}ΈHl0JjLI1dbO[ŒASml (o(%MaŗDYKѰb;I.F/`(赦 lf]EfҥUzSvxlݫ,ь!9^ݫmOhMМ1X&4jm^.PE/Q%`mv (osMl)OTWl (o(%MlnKT^c]zhZIĞl,,oy,+EWں-R z3&v킽dm+㘰  fҙ.W ~xŐ0dZ᥀+pqB JW9fi`xù"\p[K/nL "i\y^9ù"\p sy4p viRܪ(ӏ ,\5$+oQۧ5YeuLsT! WV{Ag1!9 dvVY]S€AaovC4bX/^ he1]H&щ0i.W:Z@,9M,s c3--VY]QY:,VM'HfC|DL.m ?ŅtR1h ѰYI+I4ggI+I&ѷFlKTF> 4v (o(%MM hgHfC|DL.mvҙ.W2 , 8[5{rF 4&vkR-h z"@Hx+ҔI} =Rio3#᪯֤e |+Va}hRMb;a, l (o(%M4\ c1'0Hp9^{1-h kL.֭*[_!hkUeU8to7DWu8(<[Ƌ h,[`LXC(Fkmi'8N[kC-W{1ÕJ"A6|k0LH&kL.vo[,4y8YϺ!y{&vlwVTr4o7jvXP(QKkҔESk_&Nڬ,)WR-aaŠxZt`t\ F M9U`+]~Cҝ%RA\"̶ؽp@`8jcr]z=6qMKr O qfZ nogl:}6P' Z*BD=hFU$>gGUِ-C;a9>`@S!d =XGmC;aB7%gl:cb$Z kȉ Oa#%ZvæC9S8@S!f/-3>#|rZvæ8/9 h56zLIhgl:co^<0"XH0o|M6[& "d?&$x:9?S5y0,0LH&rt[ğ|i:9?S5y0,L ,$rt&$x431oqbOa8M Lq,љh7nL 9P8G'h-jWJ 8{F&y 88lʀzSJRT94gMxW>[he+T-?[ǥzx5!㻱-C;aW_gl:dqf%FSPǥgdhvvlx0"XH;}fKzogl:a} 2)v^ו.Jm3[x ]mY;Taр 5 7{%KQ><:<*Fa%Fj(@ӕMg|[Soj*&dj1'ԙ3Mg|OԘqypG&y6?Rg*&3T'L@tMg|OԘr92i 8t<KPP3sI3ɷ 89Px*p@ZwU+wjظ9zZw#$Hw:Zw# NujE3tZvE-ǥ)qfҧIxԖ}7R[ΐQG >Չ.vXʷ n<3[!śzZv>gD 6{h5&$㘲zvæsMwLD+gl:hSvdwPtЍN~ MiSg|xB׀wU+w8tojWDqr>3 @+&,(CkV21*w!̖c*3>#}iS6@dShZ/,?R)5LTtğ{>~־KuWgMz} kT0dV20(C]svc*JjLI1d뤧"Z}ΈHl0JjLI1d×vSlx,b|J t`kGC7KrB7RY7FGB0q!iSTay?%A&uh'j$  ϭ*u][#[`+}hFPmM&$Y41d`)NQJ{; GySQɷS\$$ ;nCEIOS_kv{}1ABDFMNPRT[\]qx|!&*02?@HLUVYj~+35689GW^%7K`4QXzJ Ԝ❇Rx0Rzeè1GaNANө<tө?&-@ad .RRyOye%sNrXJ H@&OT()P ʁ H@ ZJ9<]0@rI\g"/lBxYi+Fd%'X`{,'X vTԝs8,Cle` cK?*TZ/ҥ@ еA@3teXn$ 7t0Q@Py) H6l˭x=yR=js J*&[ đd ( w!8]bA(p{E L:2ˌ,7EB(( 9Mu]JQi0bfPnNтLKdA!0F,7EB((wGzQmq}a9 cު=a,E@:Lѭ9E${7Vs 9DetXo=3~$t`SqW*csIQ=Xn$ 7t0Q@P;%A w)&!RyόF(,7qIWΟG]7 QU Y'0e"!M PX(% Τ]Ǖ9ȲT,7EB((@+^ƶSH,%&( Xn$ 7t0Q@P0;tar+t(線SLH@@10PXn$ 7t0Q@PÉ`;m|#xq1kw?Mr;|d-т,8'{!-Éa,7EB(බ9<2IV!Qn{%X4 @&R`HXn$ 7t0Q@( `ʼ&]`>f@*xEɁ ( Xn$ 7t0Q@(a*U*D6+MC8:HSwCnL\>C6 *N2 &"!M P dsԕw)9f)4[d@Rq$Y)@ʂ:UX& gY8@-L 2` 1Ph\ {gkRu.ʉWh{\a?=z[ Ն+9J&Bi:st`L˧Dx*-Pn7tTs" Lт֒3Osj%qijXʧ2YԞaD fNʧ2Y%Dl0 QK4E"Y5#ͦ͊{DiJfL\, %%b-Tk ӎ%HL"K6#K-i+t`{ bB<( 4qlyeRK-n? iRN#`m=2Ktu+]qI`P<&DAYlmn? X& `8 7o4Xb"G_lyrb:ԝiԞaD7BL:3OT(~T̲V[3%3 IhLf]g"QbbՏ yebwxO|6*Y}ưj&@ E@eJT D GR5I}a@،lxFJv/%,4]ec_nL2dɓ'UL2dɓ&)1px t f^p:vO'Z=ϬC4Xb2(緌;E_0$~@ҥbĎ4? iRN_,ҥbǠ0CKBܕdSef.]X4Xb/ lsXb8p#p#NGX+]bsnJSef.]Xмqb=:(N#AO08D`~+ #R~3R Qqȭ(ʻE0ϋShxFf7FO:0C 5)NTǽ\!}Ǖ'_hd'KIC'*?ԞaD2pQbbAY%;mcs#ju;ta5R iRNGXƕ+\[Eݱu)'y:V8qJ;1`nfX3[3j8j<#R*N2oq(N0OHV,wTSq,CvΠݙM^5'1+^x -kE5*:Cx@ҥboV8wLxө?4-4,ELn0ÿ*TJ0= 2G#%AyJFf0٨`ye6# ,}>u,wOLAY%8mk_nItLc[*dCR~t`{P:FYyNjLsOoJn)JF\Ṛ_*cޮeST1[q`wW&l>]Yj~'\O̱U/4Xb[M(N;*V)ظr iRN!ҥD܀ru':k *%<^c7C9JF0pȖZpzARJ IŀS AxH  w\+_ AxH8o sDp*Bxpeƴ*2@qÃp{V7A ҥD܀qNjLsÆcORp4Q( 4qJrA.aPRRJF0pyck0)RW_n&Mt3(O0 `4ɲLNNˉ,&(&%(=W2{t[4sbʓCfaDiԞKd4ƶU9K< кiPku;ҩ͈T˛M5'hOC%P{nMόRqfB{.IZu'E>S/t T  B٥LʓC80NQ0JyZ=Yѕiԟӹ8–삼-ф5GNQ0Jdh֝E7e1ж:u'ZՊҬRw1tόi]hԞK+۠q* 34%ΊI{ DO(qO?V*J#=<˭I-:.q (K+۠qΊIt՝S(dɒ(I$ PQbbFQI;ό`U9 %MH>сΝm''n ,LTмx*:,qP%G^!,I\ڔ ,Qs l0 Q׀#,wrt/EPj+,Cx\D)04ÚǂFV P+;mc8bl0 QYk_nRN.UjJTKq*M_}NyOR#,pn *sVNk)Seq)S!&Ba8&!0 4LT8o pS@̎4+ؤ@J>85I!*۞TLs"Yc|~@IŀS85I!&a04T  X:Ɩ8t.X*T J,p[b*T JF31* Dwؤ@4Ü~@IlҥD܀sE*ÆK;ǚؤ@*T*TԨye7X5*s1AP0&:ؤ@XZ8)Sicԃs8Mbrt/.\LTY`TDcNy=ԝ8U7+:0tҘKm|щnެTz~]J}I~ƶU9}2uJQbbXᾟ:Ɩ;6Iмq1PqeGYzSI+:0tsd%d]IjIgԡW4keSJ,LTkX6#栥Ndq ԝn4E,C5*s,}>u,wn3RqNN-ls†NabiX\DS>QH|!9?4E.pqe_(_45*/qq rWoE5x)jkibbOĨA ljaCib c,e9P*Ykj0$8 <4:=ϬCXᾟ76rWcǑƖ;n!P*Yc6&Re39>Mu+{PbUg%DZpwgySʓ>QHU65I}lp#,>Ĩ&19:.&*,/tF1*h{]Ό-bRqk,rrt/s J,rJ.Jc,e9P*Yk.JǏ#,wlyrbG=Ϩ1*@}^TЎa lsg[!]qX9cЍǦ"6R Lڅ]nNY qMbrt/.\LTYbs,—g2ʘE,M\)ةՊN7k'Ѭ>PX0!}ǝA3%JNԶf ot+ds!WaǴk.t:X9cЍ=Ϩ1*,ki}b 6&Re*N2:DOs J,͕'jX ǘQ\ҥbs۞=IP>juNc-м$&˗XMOtfʓSTeyIY)Z .u5OOu'Q B7F5 ږIbX9kqLEƖ99:9"K/o Rt{DquX+:2ǁaqLo*N2>4>X,Qs \"GX^括pΈ_OcK Baq1Pqe2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L']BZR\8jTZְE"![ !h{ ,2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&L2dɓ&LA_5D $K/t@$&"Yk Lnvr+M{Eg2ɇ fQF5:A^t(Z,cfQuaպ{eM(P Ǘ4>Ĩy2Y!0ic@.6et@$&"Ycxo5 `R5 `O_s@dq ,'BG2d°Yм$&DŽtO0O0zt5'IcNJ^)CxDa_ԟt`{  +Nrt`{ ,'BP<'.&*,g]gF$taI2gZu'慊bbJF074Q( 4ql4мT ģ܂*TJ0= xF^iRQ@hP@YkNNxOrJс@blƖ99:< y,x4n,jeGg#S,мT °Ye^*AŖdɬ* -:BV&*_񖒹"8''BP<'5X,9:<څ^pqew%XI\j"ͦ"Y? ldqMbrt/.\LTYa4k-XgY6G:*=M[W% ,M'NNF1*~TMu@^(8}2t)Q׺jTKR2 );ӕNx.QbbNN댰б\yeI\څ\Bg1\DSͨ\,qj%xVn? kF'p{Xn\HE:K.!k$O D mcxo5 bmusP$OƗ ̢֤ 4>Ĩo IDf=Jn'԰@,^<+&@{ `<0 ,j2eK Te{0ZrI|eíтy 4XbicQicd ˗XB&{E4X3YI7ubRqGV*opwuѭ*؅w5AKkدh֕NlBvs:UP%ʉ]{g2S.b5Cd]1SI|̓55SٞqcB6K%E&*_ʮJX^<u0 T t{k`<ì:b42"5.obpdȈ obZU9 XN@$&%.i}AP%8q\ DHZrt/4_X>3!07taxx 5ńj XAZU9 Xмx.U3VCV*fY < OJ6!@XV8wL8"dSz1Պ%Ep9%seI\C{% E%8qu,p&''BAŖEd{3L=Z\fcPnTNlBbMjJTNlBsY.NCL~@˭}X]HLYсLFrIE8p:b• {Xn\LEYp8poMuiT)c @eqXu0<<GrB,YpXLK,wOíц .aq$^\8IRY/: ڔoha']cPh2̓4Vf=I=C=PjLsȑƖ;C4\Nr6? h /F`Pv76u?T7BvǾKqL@:%Qʓbq|Pp5vnрA-Xv]Iqt)Ve?ARZU9 %Y5>Ck=ϬM=Ϩ1*(1PrE:a04 c&ΠԘy2LJMA1v{i\yeΠةeV99: X ĮkT ńx,PNj(`l0 Q ńx,PljW4グӎ,мXL xJzq+|V|eNNah<(c° yeu!0,ysOs J,Qs \$&#iмXL |mc|gDBa%? s: ,&bq8'BDž`͈VS(YRs`4~W:,}>u,wJ I*% o;e<8y,/9,xpV,p ̢֤ 4>Ĩo IDf=Jn'԰@,71jVciKNNˉ-`9E 1.OOBReaD9Rqazu'R[ &9IXڛ7+Rtк )#$;$T.y=1\*M(bUf>&2„ٱNal(N|0 Q„f"pLMCS&⥦_PU(1Nal(Nk2 aBgljNTrbAl(LX- [ D,@  aBrVƶU98aF#g'1P,}N&(HcGѭ9E$eTфʭ~LgR=FTFu-ц[7Ck'Z> c!5Uh*N2:O.z ٧*MT(8p9ϮKMKSQ!?J6!]ĖN~Ab]hK1A :0=I?mls< IWJ`=>p5ls(&w-N}ǝAM^'+%0ms8qĿu7:)v5'Aӹ2"sP%G_qk2GkJ6!E0F*f\+NQI;MuQ4ޯWvgE$t(dZFRqia5dТ\dCf{YZ93jL˞ ȲWq鮾ѭ*؅_#%ʭICc[*a4kNQBLK2d5bqΌt_?V*mA5jTQ~N댻wL&v!WN{h(q۩TQ~MiEkm{Պ|e늖Phzrt.|TX, n6K2F*^A .0F*g2t.rc=BJ2褛k-1JS?00OKԟ]Jk c ,˭'E ԕ]'`hԫ3Rd4='Y8D`F N#/c<8̢"1*N2HMCQovY%tOӌ5Ruqe֎LdLJNΓVe^fyF/E?k'^eT̹VɌS{Mu_F N){IW((eоtiT(&*X5 g%XW5!)1p@-xtՙ:L*rL\,`8&b`p A10xD8mcaŗi}AV!0MYc¡Q,2Gu1H(~T`gH7faD3.vp Mӌ!Wh,ޛ%kXy I];)nH٘t%vw'R-`Nv5nZ!5Gd,H"KjoNv-9Dta,%YZ=ܜaKtavԒt+k:2kM:*N2ˆL$]:(S{b'M 0p=RB2Iz#H(B.{©Ҟ,z% ϋ=ZrI-bMH0R0u'QQp=\'ZSl`z,3 :sQ>Π&9ө<ˆr L-XtX3]gE$:Պf8lzI~80u'Q1:Jx#46`#;ta:=G j$$$tad) W9Yj86f@铭& W5%ZSE5Hvt󑣆UB#5,+XR,f7FOө?V*lrRtְ$]:c";/k:)$7{]=o, 뤰\V*rRt˩*}2tf7FOө< ZceݦT<<ɓ%bResVwIm%P[ НQk?V*lq0< (=7όFRzqg-ITb$*x3 mqԪJ-a9+yڍWkNQ0KR viԟ("[GT*QbX]:F@D 뤰lubkfK2ta4kM-׺}Ǖ'(CV*K0F*z21K=i,'[0Cj2kNQ0Hg2 nF-y̝hzQ?juN0њsq1R\OTgѝASRd2ZQj%$:[iFwYSԃNM- >tɶ'(B -`Ž9;,V{4#2 sYusZu'wG]Cbkk%D -& :jIwSNv/u\5W=׺Ѯv5ou;森-a*J1RǸQ5 aXReS~*Qc5'E$B)U ?tFC(J6!ECb^ʶyˠcDTbhˆ!RYav i]Y{ w&]tz(IVS12}NzRXFO1U 褛M̺FCtD`"KkëtbqW8FQeM:u\Fw(a[0zY@taTpѧKdQ*̧DQI7>bIZ;hˆnTѭ$7kè 뤱&CV*m'ѬˆnbpA ZFdR{u ڔnTqaD viFUwZ̹V{Ҟ Td46 XBnA hӔL>ѧ=^cx85,dْJc՝v-9D.5b3Ʂc{ TezR[]33RuL 뤱&CV*g15Q X)ְ^aD9RqQqj{4g#sb9=gkm:+=iO]Xvt$ĻB˭X-6Y@H\y;A &:BWk!?>/WѬ]<-Ϙa BsTT{sUE-WX }dr7\d(~TjI׳Mr$Fj lRy2I)٘Q#{|d-4SFxOYdѩc08"0]S~W>2Il:ڙrvÉYa0Ct (a XA jIfdLf+NT%M9:wwk0 tCV*K:-\eCU*M콏yO Zu'1ж:)“W>/.q~Ta02~=<wH6;d[*cU!0%4SN0ne֎:?&J,P׺{N2BT^TaD34F˴ibEđd 4ʟLOuvvV*sPNѬˆvi1ж:)]hs1g0𡚖*Ī`1~|*ARYIWѮTdMчOΊU>*^7V*K0ʧPX4ƂPLPT ,DfuAI`"Ty5ʓms8Ry c!5Uh*N2λE8]G0yiʓdU9 (:,\8Ek9xi}\j>wBwLo!{!Ls`|+q=zj4O0aI"Ve֏t BgFсEAI`Z2t.{3uDdhф-bK'%IWCQovY%tOӌ2:2: [ \LSQ42ǩSόars`Vw2ԝf]h]& PFSVN|ӣ{Z809F*g2te֎ .LdGUFU}]mezLIWt5gtϴY ;X]% Zs`Gԝ˞Te|asVwIL 뤰arp+Ԅ8Qh|՝E<SɉtduOdouOf2ǩY .Nb$Fʂ:U=Xzkk'ZbYye SonKf6JʓI)sQ4n0argX=]9E$yUjJTֳFu'YZ80L%060ʭICc[*4ne֎ .NB%<̆]<˭\ȏqЫҌgE$W[Yl)zLIWt;O}N}` [X]% F .N0u'{2翕'_q{j\՝S(:,\VF*KZƶU95(&%s߲cSFInأn?V*mRu.сEAI`ńVjs.bà|e$t`QkuX09b;smf]hiT(1S21ZrI7qSl`kx¸ôk:)$7{E]% 'S(xMBc[*Q>*u'QwS1:-bK&2"@jF#:Όr Ik-5ʓ a -b `xL  -` PZ8-òeb#lIeBeб$btRoW.؜#q5fJRlI\Ye@LE @b8JST.%$;s!: }Ӱ1:ˡb$IaZ,.0 }X|E!2XKE}OLX˾N>@bq1Ct,D,Jw؊@Ċ0eб$lRtv Ry2(E$ԺH2XKTB8!2 d˾QQ`PP`L"D5`!kRN }H pÊ2XX4Ƃa1< iԞ@DI @DIs "KN+ "KN "Imq%9$ %DVi`<-a±D2)Se^ bTe}IdVG lE+Zmf@n; 76:168v:=./usr/opt/perl5/bin/perlccltomm  e ailnoprst$'()-cdfghmu",.;=>_bvxy{}&:@CERT\w !#/011z^m. ZPTM^gb@U!b U F c .CėOt#w9+0 U F IUWQ\~ˬeP`psgdQm/1̌˜qXa,@1\]c?˨ZUtaF#*0Ņ,c?ńè,c?ňPXug;RPX's%Xug@ X, ŶjXIs^3\g9gs;*9|Qk0YXdX3jqE[DC38ڊ gMЩ؂                    '=S17>Ø                    c0)E8fJqRmXŢ6Rg9'eJ3e86i,2S1 n}&0R`89Xeh+Q!"H0c3s8TXXH; Rsm]4by s8y?ܞq9gMЩ"AL@"H0~g`H F~FUtaD5K.sF)^?"VbJ17>fDa7>fD`O8deWF@cT\g24bX,`YMЩر! vV)N3̉ n}H ܞq]QK;c?։;Vq$?ryUх X4`_ᡸ0ʮ(Ѥ.X,hn 22 @4 Uх XٯKᡸ0ʮ(Ѥ.y][?3TXMS8Ȓ &qbn} ,f\˜ъWȣ;mlB)YDa7>f&Ȓ 9  a8j\.mR817>3@ xwU?g24b9#);! bH&0R`83@ xwU?g24b9]*]DJZ+դl,H4nS3,OG3bD`gJt-#ˆ,lK(isgf6g A~(e"ѹN*s#*0 ;R\Y;'F8I5+&ך30<3wUO8q(^hȒ ̤W7)C%iq]Q4?2$EyrT? e#*0 YJp<38kAF8y]}rVigUх XٯK{e A~.W7a0][?3"H1̤W7)CAaYJp<38kAF8y]8dIe%Fv؄Rgs\[H)317>f&5bdsyXdŎc?ܞpyx?nV)ڷ,2Sf D4D.6"n}&ؤp 2wU 8Y D4D.6"n}&ر9N9o ъs6U Z5go Y D4,bn^F+Kb1K͵y)c0f)pSs'u^pAgXdI-Mϼ~b kiE7>3Ȓ Z5"xWA,7(XKd<QEVJj1ZN}32^hܧbDX.6"n}9N,~EUlt?`, X5g"h͟R+Z3gUĐbѨȒ Z5"{?W<'r0>wUW9]3^JY2Z+դg#FSt*p,ZIUх XBf9feWI>#*0 ٨Lh30EdgkDE+afW8?@8?ry^bn}9.K"*pQ\ʕ*9lԡ<(,~/9Xe"ѹN*c*p{fI"x3 ,7(YХZh. =cI'O@(``,R{4U{Eg):xZ3#ܡgBk٢H8@,$",s?˳KgfI ,vRtcFƋgq$W7X[S64>j{Jp+Zs{T?2e}Vr&0B0MzI=7Jó#ܡgڥ gt6Jcf&LǸNcs~!& =Ĩ\Xc?+V҉ ţZc*]BvXbѭ2^hܧEVKYnP(#ܡ`PTQMReW,l):x}l( Z5٩LǺfcFSt+,QEd ,fg(@gav2ȩu AbAFafW8EyrT?Uc3SsXp|g^qb1O87(X Z/)KƟnE%Jc][?3bUiJqP8ʭ)N*c)qPx+Y@)8PP8huV8ʭ)N* *,s?tMϼ~,U2JSI3\\ s l},eVn}? txmxU`H & >'̤W7)AgΓ!ޔ \3)qP)cJ~14bҳt+3St+[!b!`,XK>'W15@p-ϰ5Ip),Γ!ޔ \3SsPR1 QW0€&<) MP(`'eC D  Rₐ;._Y†&xGT0D,\"bi?_Y&2S:0TC2I7> ,fg:0TC2I7>Ō"bb{ ?D&qZIx:=бXcW^C;j*=мCg*ic apMғ0RhW9]9<*VW)IY6YO8J HgMЮp! vcfx$)c4g.}q++̈́lnt`i,JqRW"hFalԠ"9Z)YJ1@F3,cf.x3N*YJ^Ps?Z)YJWAAb)K)\x+XŨ9-|x+XŨ9#)sDHH,$cfx$nn#]V\)[0>qϲQх6Ø8΃6  bjj7u7A&ğx Wi;֌節^Iz G{u^WVuV}];)hV}ո#c1WU]hl07>|E@Y]ryFUtaD6/FUtaD6&i|47Uх Xؚ_ 22 @=%9tXXH;h.+EɕUV+ESz4V}]6e-O34bUntB&n%7)yD3@@Ѣxc?ܞqFUtaD6v4 FUtaD6kd3Uх Xؚ\᡹]QRisY^sgA 5o™NԲBkћ`j7ltm\I栥ѻ?5.iZuJ[kj\.m`UoUVwzIɕ'=ta >kn @Y]ryFUtaD6khndeWF@cVF=%9tXXH;l 5}ӪV+i9& PZ)wA&ğ`H 8΃6  bjNJ4uJv#*0 NJ4KE;U[\WGgs&h9n]ge7Bb ,npH s8<y]2Vgs3ygs{TN17@p?NMSڦ0 9ry&!{Ts#*0 NJ4K{?3bESq>*&FUtaD4̔if? s{TǏ4722 @T{Tc l;gs'j&MS<{TǏaqa]Q's%Y=\Ģ1Q7L722 @dK4Uх XCK9J31;Q7L722 @dK4d3ڦ<~@g1(CpaEPmcVYHYgO8ģ;S J/-W2RF+,%B; M\J7B\L ̭+[)\~#lbnselGe]^s6 `1Ѐ]8` BVyt.t4nKi'yD3Bk Bv#կehNԲ 8Pmq1ZN}huѶR @̔ixG's%^'o 8N/|E]7ksjhnA6j횋p4>e-OuJ ׁgbl4(u^Ը\[+֓tB&n{?УIuFЭkIͭ+%KEzj^{?Кkê\&ոê6V)m! N*;moUoMϺqVYK{{g|&թ_c 9Vhew}cB[h3:av1H@$XRaP$c%sz(i0-8ϕ1ZN}͌ `X g⴫v7F+IϺncKEz5SүQ[nV{X#iX )iWsz(-R^'>Ѳ7t+)h[4k%8*oEeZ+&0nVthe-c9 q?U7c?$_裴l#KEzބ׆f<@٨m9?1ZN}t+Z+s^]Uvv@٨m>aH )iW裴lCe6Z,mƒde,tbV9e,цe,ц6YX )iW裴l4b|TnVt 5wM'=t`n'Ьtb|T8Sz#;1Sү+Ghh>*hi9NJ4 ъsXѝN綮 Vo2V)ϸU05Vy\ފ;F@Cht7RsmnRB5-ޕzi95Vy\ފ;F@){mn!1WU^+7]6wBJAq-Ei cmH!B!q & Xesz(U9%Uo1ZN}n&VNvF+IϺuVb-Ьv`__e-O`\ފ86Kb{b oE[;K ţQ6wUzq"cXs)Il^"Ʊjluon齪Sy\ފ8E][|WU^Q{hi9%86M.Lg[]4bKڵ4=&ĜT*[V)nc6-³(5 a`_cĝ60{kh0fTNXL4;F/q)eH5t!=U'=talummwAIӴk%$5t 9+AAIӴkCzz1ZN{jF+,$5tH60D]Wq;UoV$D1JY\.mUȫci9A^--i9azn}UoF+,%б`VЏZ+դd`կ ܋'tjׄ6R^$#d:ǪKEzUȫc#CqÌW%z' qU`BƱ[[B򹼋 #X `Vt͌/{s7Cѫ^*ҽUmpFW7YklzVn]Vb͂[ VW}wSuZNyt.fF+Iϴm\׆׽^sw(Mx،[[Bv#;V3,0 q;kFwdgjYBE]۾k\]e%;hugmR^$sV c;(;(Ⱦ1ub+FWUmzVNW7uh&):1ZN}bb+* ^ʫy;(+D̔id_d5E]j׊U[^jQ]TU؊NW7M+$: ov"&)۪o%sUr*UoqOa'VX=JO}ַ:sNp*kX;;Uo's%:w;}:GMØ𓫄PW j:uDupZN{j:uDup:tFn\NJD\!.6ц#9t7>AipJ='W"xw!綮13XCMSV :tFn\NJy 48]i4xH"Su5N3iw's%^'oLaΜ7AM{Q6WXUz}6.۾*ix& V'p[UoJjNJ4NߺsaW]6S+Dq^^c!#ƱPvZ/y%N)#seb Ba>(VY/^)5oXj7>m]c[ 먥Ү)wъ$hkꫨĜnEwԨ̒ӌDWuz9i5 \;{Q0y]k}UЭkIͭ1Jm\#]'>{'t] l7-'W PIѤ:xRm>Vc׃YkIͭ5[s~RJ ki ¡a1& 00&q04G`H"ׁ  f&A\ފ$b`hWDq!$H  HG DD!1+B 0Ba|L-8$;@<`8 aP0k=յ%8moUoڵ6תl^)Ij +ޖJ،VimETnQ!ڽbjZҺt/MϺuJJqRmZꭕi;A 3 Fa MVGFummNEUSj^ތVYK{{gzIwm]K%lF+IϴӢ7 esz(\^Yr-{]nk::%{K>]Ve+p $% cj =[jA D*bA`"cҼSⱘ'<$Cu4 ^ތVYK{cp6"N3+[ )}U[^n\*WJsYкbZ).U[]qRmXknNE;2HmZVתJ(`3'3lƒmLck{y\qRmXf$ 1NEJmQqUoit➌t쥢ZIAםU+iwgUnJ(˜=Y͂ZSigUoҜS،tZ+դcv0N:* _UoQх1U\g|&ը3lUr*E%t[e-p_lO1xP\@H&BlD@H60M[p& \*74Z ތ_!KfC7ڍ+ڋe%;Pf%wKK$W:VUW"AF;Ur*}j}1 xP\@H&B~hM N+J\ފ=ces{*F+IϾDfW6ZOЬz}WI>hդ4f$Rp'"AB pX $D@P6W7+֊K5⴪?ѫI6W7W=V}Uh6ZOhnV=UvAF Vm"k uVFUvl))(šq`x' `xP&SnV4f%5ۊ fN:]fzH"٤3+]; 5Nm4vnsK`x'(4PhAMcUr*]jVM;FSъs0$*`hL*gYDnUUmwSt6"AB pX $D@PXe-OUWMJhٵN ZƱնPD.+Dz]6etUeb/(Y2^k{+e+ hi9q5]N6̮{+04n&eq {\މ Fm]U6̯e-Osz&5*2_^ׁ``mz4b)hV}e{)hV}%sz&VڐC `]裢ptbgiq$kN0Kq5]Nw7H+h<XV0s l6,ZmA@n;76:19+./usr/opt/perl5/bin/perldocltomm    e adilnoprst $;cfhmu"(),-.=_gy{}#'/1:<>@ADEIMNPRSTbkwx2BCFGOV[\qv|!+09LWX]^&345?HU`j~*78KQY%6zJ #*J8JI~#*J8Jxh4 xak9`J Z P#&-$d:+I:FvCrYAb`gdZ–\أN (7(S|b;-hTUtaYEQTUnj[[m+Bcʺ0; XV6#^/F0IZ[qUeWF_Du$ꛩoҌ1k)?mgGhX\ s4SszLJ@vg ~b5+**SeuTS*@AU;@0h+8Kp&>=ێZQNdн0 Я|eWF (tcN}cMJIi9)t'вX4k[#t-D@0h(i󰊮v?PNFm VMT0O 2t23mћhDApq X4@"H,֭/ 2t#s*S>2t*|eRό]\ʥYK>2wgU. ό],ʥʥ9$Xʴ"ADBSp- 4"@ ц-Z0K>2tZ3(AnH|eRnK4l'4ɢ8l2QiW4| >Qk?Ճ%( O/@ Afַ$G"ʴmE3*gU.gU.gU.,C %_a"B0y0)e*O(TVMT(T, 9XQ7%R""x[8KrYFopZ :vUӼP~*}t8ͭk]ь*BsKPs|uIe/wUg 7rX|up3s,pYE9(O.IW#bCdd "6(46 K4YI`a<$HP}fg-a ΥY\ rY˒4+Dϒ ;dsG<8Ǘ&bK4P}Ty2C"O$qϓ*t9(""ac˥`YweS.[ ܖy~9REʦ8:JL2ItWkӴk@* ͯ8oȔK/@ \iy8gfP^qG%(\ig2p gmϬ̇jvưqoKPzQV , e$\b$2 Ǔs"z.iL"Y/G=K{ё#K;/8Ay^wb(/;wUg X>LdO=I eȆ7)< ;y@T#;n# XN>!,Ytm8d kֺ*9:]'>KP='>e/dO]BY; ^E'&zN}A}/43&U< ^E'&zN}A8gɕOr[*|TA1XRQiʦI_,ֺ*94SJ3/C$Odϡ1t%Kp00Ϧ[ `$d%,Z U3,Y ь*BHBH/St*46&(23@ƔgMZ!ό\$3; P{_s頿>#yzf.l$TX`Y<$( <,tC=@K4kk@yYOkA>+D89X8~LdOkHX}gи8Xi?ϝ-:]'> } - IgsuhhIϼdBP%tgϝ-:]'>>qўGGRqўG>w\vtL2QidYE ,<|m9=dϡ%K4uVpϝmg,%>v,L3Agg5Ӧ[QL0 'r,x@@<3dkV<3с+,ץhZkEqF\7ֺx ;ƖL$w,~}Ҙ,yY0tj2DH0]3 \<4&# kB[pp ;St+ HG]ǚ!ό\$L]:5ӡ$q_H,֡E(;b)DdBY,\N2fwsl)ˠX'$>ɢQX&L0wW [&n( >ɢQ^g-sG!,ʥH,ȇDDYr)I LQV '\ KdM(̈""@ nAgY4#1Q04 ;?TmgJnq1AղhҌ˄ CrYKYXzһr5Ot1QpVgÓdE `Hl(ϱEZqB{;z`q+wV 4M-YK"|eRYJe&+DO<*Sc Ф'$XPYr}ҙ*PkYK"x fq"{Y 8<`J2Ab`,!TC=@K4L-E6t&}gH,㍬㤭"#KdM j{ -xVR{,}YVhN(}$T'5&U2'8ƂHYD ͬk9C8N}-4SJ3"<1[&mtI)9Lig)ƆFr"t@* ^ig:)3<gGhY4SkLbw" 8`*xa1QpQ$q8nɢQg&#KdM nK>2yrDqK4:St+ Ɩ:QV LE'> gU.AgoK87Bؘ@^;b\*ʺ0Ҋng\ @BY"&2u frQ Ɇ.y0΄K8mB$ \@>꠳%瀀αW AfdO]"Y\ޒG-7%\E(+X ϕ+Iq^@׌%`vxA op&O)d%vN<Bʯ 4S/J1ȟTY`nI5T$XHKXy@4/ό]-hu -U0_ɹpP,{)]aydbOl?J8\߂Ղ5ta@ Gt>*IX#WF C9EX7-(/ 2P_ɹpP,rY2z,+X4dXHllPd@'-V@ uL]zU[w\ J BAg)`ёa!AFQj ;MЮ  1Є EFEI 9,?=Р ig)e^ig~glE=C9aDFL1s,:2dF$<0́.3cAg)8r/,0Pd{)TwoKvTUtaIX#WF >2tc 6,KIf lE(pV* >ޥ_J*l Ag QV . 3-Aky7>!K% 'lh !@ U.$,PYܕxyC pBՃJ*G !G% 'lh 0igg`ܶ6VS=(OZO< _K"#(i'U/RYW hȰؠ2,St+"Ccb9 \@!,St+"Ccb8w)`ёa!Aa":vK"  AodDet.K; 2P_Ҍ툧g>L1sȈɆ.t%Y"0$ ' Ɇ.d q  ;St+ qE ;ƖD`H(2KXPYe*ͯͯ}_אآ 4>W7 lfTD/J*A_>꠳kZQ")EX4ik9C99*,:2&@@@"Y Ev?PEH\ AgK"6,0IokTK8 碣r E G<8QF@ 8QR 'nK<n Ag`,Th Agt'fqFW#bU$@ 87Bذ|9Ɨ 6U.y@I,+h &@@@"YFW"\$qEZqɹ%Yz*-G EZK Y V,㎔ 689ƖDT\ 8_Yh $6k[#LK:2&@<"Yқ\y7>ar/,ذ$oK9(؊zsآ 45;s~M3UmMFGM+d90t)V=(ϪqEOt8%{&Nc``,bOR,g e. Rꛩ9/=s'.u5#;Ì/ ^<;/'W1y9]zzN+Uk,8GV FA‚kX uQNS0(2AB$ \+70q9/VrҌw 왅TV|+D6>l)6vc7]IZ.IpT ` dc<0(2b `A,b m% AC`$C8Kp&>UdFӽn{=Se{Pro(Qc`*{(P|olQZ['w$=+D1={mIrs#d|bt-@0h(0Pd@  5"Yt uݜbN#+AAB@A Z[w%s{b F =head1 DESCRIPTION B is a tool to aid in the conversion of Perl4-style .pl library files to Perl5-style library modules. Usually, your old .pl file will still work fine and you should only use this tool if you plan to update your library to use some of the newer Perl 5 features, such as AutoLoading. =head1 LIMITATIONS It's just a first step, but it's usually a good first step. =head1 AUTHOR Larry Wall =cut while () { chop; $keyword{$_} = 1; } undef $/; $* = 1; while (<>) { $newname = $ARGV; $newname =~ s/\.pl$/.pm/ || next; $newname =~ s#(.*/)?(\w+)#$1\u$2#; if (-f $newname) { warn "Won't overwrite existing $newname\n"; next; } $oldpack = $2; $newpack = "\u$2"; @export = (); print "$oldpack => $newpack\n" if $verbose; s/\bstd(in|out|err)\b/\U$&/g; s/(sub\s+)(\w+)(\s*\{[ \t]*\n)\s*package\s+$oldpack\s*;[ \t]*\n+/${1}main'$2$3/ig; if (/sub\s+main'/) { @export = m/sub\s+main'(\w+)/g; s/(sub\s+)main'(\w+)/$1$2/g; } else { @export = m/sub\s+([A-Za-z]\w*)/g; } @export_ok = grep($keyword{$_}, @export); @export = grep(!$keyword{$_}, @export); @export{@export} = (1) x @export; s/(^\s*);#/$1#/g; s/(#.*)require ['"]$oldpack\.pl['"]/$1use $newpack/; s/(package\s*)($oldpack)\s*;[ \t]*\n+//ig; s/([\$\@%&*])'(\w+)/&xlate($1,"",$2)/eg; s/([\$\@%&*]?)(\w+)'(\w+)/&xlate($1,$2,$3)/eg; if (!/\$\[\s*\)?\s*=\s*[^0\s]/) { s/^\s*(local\s*\()?\s*\$\[\s*\)?\s*=\s*0\s*;[ \t]*\n//g; s/\$\[\s*\+\s*//g; s/\s*\+\s*\$\[//g; s/\$\[/0/g; } s/open\s+(\w+)/open($1)/g; if (s/\bdie\b/croak/g) { $carp = "use Carp;\n"; s/croak "([^"]*)\\n"/croak "$1"/g; } else { $carp = ""; } if (@export_ok) { $export_ok = "\@EXPORT_OK = qw(@export_ok);\n"; } else { $export_ok = ""; } open(PM, ">$newname") || warn "Can't create $newname: $!\n"; print PM <<"END"; package $newpack; require 5.000; require Exporter; $carp \@ISA = qw(Exporter); \@EXPORT = qw(@export); $export_ok $_ END } sub xlate { local($prefix, $pack, $ident) = @_; if ($prefix eq '' && $ident =~ /^(t|s|m|d|ing|ll|ed|ve|re)$/) { "${pack}'$ident"; } elsif ($pack eq "" || $pack eq "main") { if ($export{$ident}) { "$prefix$ident"; } else { "$prefix${pack}::$ident"; } } elsif ($pack eq $oldpack) { "$prefix${newpack}::$ident"; } else { "$prefix${pack}::$ident"; } } __END__ AUTOLOAD BEGIN CORE DESTROY END abs accept alarm and atan2 bind binmode bless caller chdir chmod chop chown chr chroot close closedir cmp connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eq eval exec exit exp fcntl fileno flock for foreach fork format formline ge getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst le length link listen local localtime log lstat lt m mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord pack package pipe pop print printf push q qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir s scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat study sub substr symlink syscall sysread system syswrite tell telldir tie time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn while write x xor y slate P k:.Zm6 @n;76:1_6 ./usr/opt/perl5/bin/pod2htmltomm#!/usr/opt/perl5/bin/perl eval 'exec /usr/opt/perl5/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; =pod =head1 NAME pod2html - convert .pod files to .html files =head1 SYNOPSIS pod2html --help --htmlroot= --infile= --outfile= --podpath=:...: --podroot= --libpods=:...: --recurse --norecurse --verbose --index --noindex --title= =head1 DESCRIPTION Converts files from pod format (see L) to HTML format. =head1 ARGUMENTS pod2html takes the following arguments: =over 4 =item help --help Displays the usage message. =item htmlroot --htmlroot=name Sets the base URL for the HTML files. When cross-references are made, the HTML root is prepended to the URL. =item infile --infile=name Specify the pod file to convert. Input is taken from STDIN if no infile is specified. =item outfile --outfile=name Specify the HTML file to create. Output goes to STDOUT if no outfile is specified. =item podroot --podroot=name Specify the base directory for finding library pods. =item podpath --podpath=name:...:name Specify which subdirectories of the podroot contain pod files whose HTML converted forms can be linked-to in cross-references. =item libpods --libpods=name:...:name List of page names (eg, "perlfunc") which contain linkable C<=item>s. =item netscape --netscape Use Netscape HTML directives when applicable. =item nonetscape --nonetscape Do not use Netscape HTML directives (default). =item index --index Generate an index at the top of the HTML file (default behaviour). =item noindex --noindex Do not generate an index at the top of the HTML file. =item recurse --recurse Recurse into subdirectories specified in podpath (default behaviour). =item norecurse --norecurse Do not recurse into subdirectories specified in podpath. =item title --title=title Specify the title of the resulting HTML file. =item verbose --verbose Display progress messages. =back =head1 AUTHOR Tom Christiansen, Etchrist@perl.comE. =head1 BUGS See L for a list of known bugs in the translator. =head1 SEE ALSO L, L =head1 COPYRIGHT This program is distributed under the Artistic License. =cut use Pod::Html; pod2html @ARGV; i l t/ZmW@n;76:19:./usr/opt/perl5/bin/pod2latextomm   e "\acinorst#$'(),/;=dghlmpu{}.>bfx&*+-01vxxy< )v,)igIT[;|p[dv+sq9 hNe}p=<{LvW=䨶۬23Cزfzc61Xe;LgkI=pP{\}^J^L++\-,~͞W:*܌EǏڦ܌E0{8bJ쓥T3˯*鏛ʸZY+s#ij:UFy\I]`:UC<~Oҹ28d6yһ$U1p$1+ g^UO7pW6y_DJLB\ZÔ*gW̯qe^{2$uJU+lP%e*J3+rW=:*{ތff:iTijoVw=9pJ_Wd*v]yU?L|UΧ\ۙgW쓥T0%L<Wd*v]yU?L|UΧ\ۙgW쓥T0%L]tyuTͶU۝鏛ʸZY+s#L쓥T0{PbDe0v]yU?L|UΧ\mS:=lPe||rW:*3=mmY_o,f:3+Sʼȑ)Vuy_GjI'z1Z̯OS*"GTZOq;ьl+lJRa\y_~o*igSmҪcS*McgI-欯)oɍL{XWd*ΓUO*WZÔ7pKWؗbɼfy_zvTUMcgI-欯)o+NLj~DVYxtH|۵_I(6{tH|۵$t[=tH|I<8~tC1Ҫqe^EiT#欯)o}aiOSʼt3Cݨ?:O y_I/ޕSS*McgI-欯)olG2|Kv/JgI4 DrcN_3zUCW&!'6[}U>3zUO,zcj"Y0R+j:%E(6{Hyz*+Vޮ:ULy_}*o+$0:UC?8斫J쓥Tn4zMvIҪ6bJuvIҪH$q-P'JiTJ쓥TmU`Wk'JӶ3W3bY޸fja$x`8  Ǐy_1*gW쓥T3L+NQҩ6'Jy\Ĕ[œ-,>a1nœy_*r-/Lͼ*-6 isp3-)J-aUO;.=wS#=%J~W{.Em%9 hl-x i~GoPNʘ>lM[gq@Ox`cmSQf;_Z!^B;z5x6[xʼ8xv+<c-򼪟*? ٕws=o+eVįJm1Su>'z19,q9 Rv,)yT{y\-py. q91By!v*ʼHBK@!@!2@!mW57^ \-,Yn39{UO5eyO;ޕSWZĸ(ؗfqęWsz(y㗵T:^Eq^;]?bWmLr+J+y\SE~Ky+y{(fDVtPhYDd` =`"a-,*3/X c0E呔8ZXTgq91"+n]/X pE}'=c,[^ "P>H(>" (=`< @pā  |p8P|4J @>"8@^Tp^7]Y<ؽf{)14!,D,/L'ӦNUϳ^X X8^زi"`;;GdA_f6 dI^UN朋\iU:\=GTf/"hD8@;.isg9T;WIU $/qsg9Tp_KYQK[TOGTf/"ء.iduFk &ZYgݧؽ+&"($+Em/V"[jU05ҹb"B5(+I{\}jWq.7f%y)y0 G{R S&r/ssEbGTZۑhq{ZjԮqZ-s7 G"||rk94o5mT,նeSKqݽ&^ҹb"B1ڦ܌Eۍ`]'_B\%k :8 Cvk:NZYp;sEyf[{E+kfr6WIo[%@a":+@0- {#3^,=ΓaFt=\1A!^YO({q%Lu]ʽ'ƙwXWB^W03wi42:K2wHw^8 A_W0%kJe[lj~"Dy,eJ#5y0iȽWlJf$fibm s@Tut=rT3բ{زq91oJ+^L1W6W}ʿ*Af==qadB& ,<^3Yw ;4XL . 88PWPJ#4_H,<>+' !鸞8jH4 "D pX%QހG".Zv Eg¶ed. Xy}%^g<Y>4ͳަ](;{pm}^LXȿ{v/i14W፝$+Z_=`'ƙwH@+=WB^r#̧WD 9 4SQ{(׫D|޵3igp=W3zUOJ.!(igolJ~ͻQxf)x1VWNLj~XOS 94SQ{i VUSS#Sx( H,  8x/򹁦 0~,4Y\@0EƆhhYŏ.r, Ƀ`PAME Ƀac1. ⽲߅WVU,fE@ "Um}^LXy)WNLo|:ʿ*aϕe9WޝrWDU;OL; Um}^L!r j/ A6,K)Wag?@bQ3S[eq4{q"lJ,f{پ(7o|JSޝ/X( . ,0 @\,ͼbbwh^UO悎b|ImߌޕSppp6+֦v[3l`'ƙwH@qDؗL;'H@~)Yʺye=OҼ @{$ ,0 @\0V"ugÑ+EZ']CCxPW@XD4 wiq\OʩfKR|igpa hp!$a Q  .qcZ/{䨶ʩT[VG}=+-I@@ag* F:,>1A"[r7x6W< CU ,0 @\,VoXyj+@וXhH1E qa( lM8a^Uc,וX Qq0!8ц4db.ra(sޗR*ܹ+]c#{r#$s8@ag@*& b7"Y-X8\fEr/)so]{}Y?;.@a$;9zʩB5C/qtq_ -Lg0Xr/qwg;pqYh 槤]O}N="63S[eq42r/qwg´c `&3]9%.kk6raݧ˛9*KkKg&"6jء.is]?\vIwiuvIҪ|wg;pHw,E/J版 1$q-P-3J7 =itzO˾'t~4F0&( q^"gS +=WS~X%򭱽]xzեTWy+;\%wSWijL.@`#E{`UO(tzO;9.bX\p AWa -c^4kҩ6Smưҩ3{t\vIEmձB\FۘwiprVSTQ^_kg ST9˥S˾<3"kKۘݫbtsa8ѽ[ٜSTQ^_k˥SسiT9%z5^YHa٪یt+TE֦3J5v,թҪMtE/J版 1ڦkST斵1UIȽZf}.aL"b/sov55̦us8*gWJRa_%-ic3]?\ ; qoxvZ*ڍ+w+,b]jc?j7Kګs7QsK]@x wize}쓥T{LfRkmY_o,鈽oء.iwg;\pݧKvIҪ=֦3J5s)^}zCat8B^Wo'JZiU&}.b{ތfoB5z~BLo%kgWq"9^bGTZ-jc4]6X"9pթҪMt-jc4]3{b,fkgW0^$1*gW3˯*)l{t Ò|u~Y_i^.ikSTmY_o,v}zC b Ao}Y_o%$U1zWZ{]]}.];;Q\؂g6a(%[jU4gWWdCvLVK%/wloiqtίm|+h"ow/LSk.ilY>uݧ9|h1Jbɘ9Kf޶Sh|fcٜv,fyU>˰_'OwFWgW!Q9{]Z=Y_i_;pZ"8}^{yQjUO%={2:Hwa. hp Xz "{ !ƙww]*rLt~\p{޶:UN`YwJC #PdpWcÐB{`UO(tzO;p,bqXx,Go}Y_o%ITHw.#Yh { VW#084ͳoS/U#j~#zL{ҩ>BAD\84ͳwJCP5s6kҩ>*PQ9+3l^42 H2wHw 7-+;Q9+3lqWHwj.sWf {2  s6œbLa66 @ӊzv;u3Ya]q_2V |?㖺~Ľ3vIҪ=.OI~4Xaphx[g i\,0xZ* :.C ,0qYƴ<- 4p.tp<-^mJCa N%@at=3ƕOIҥFs3@MoJ3MbxXƕOI]*42 l`ԪzL/sov55bɘwi\WVߕwdt4of9繷jء.is]?\,v^;)Zc~Uœ]jWy#斴Ѯe3‚.Q\Ȗv4ίk‚tίm|wi/J版 RTZ1`ފ+f\^/J版 2zWGzzJ+/\KZci ؽ+&"($+F)(Q#h'Wo*cGN1T[gq@Ox`cmsE|h=%TF+lm{'GoQF6n(U_Q\;mؽ+&"($+F8ܭS*+ҩrAeؽ+&"($+lY1 NLhtK`D-'(ҹb"B6ylY1hؽ+&"($+ҩ6bɍ7_^`{[#7T|+BYE^3zUN1E+hԮ7_7TEdɎkNK^UT͆UzwKZ/*l2ސЈppplC)b@RfZUAeZ' 23[_WޭW|Օ<_J~3}v4Z ؀P.r]3K8|A5>kl3[_W֜4/hK(t~nAA)< E}7/+{ؕS1ZӒƗ\`t_;B ,"d q;v']LGwΝ^jGvN9``&2%ɍE ۵1,NLn,o/n^B5~rcA|J` BP/YyxEdNLn;OzW6͹*WSA5<8 yS<qTVkl( mB$A b801Q/*ig|3zUOJ\SE|sޕSs*Wˍ4_zW>{+Β[Y^SW߸<^G{8+'ĸ4W˯*u_ky\oN3=oRL㖸GҸ{K˯*u_k~#i%//hK({e]>UyG =Ebv+02:_ *ldWLZAƼ\R9߬Kezv/)U-ߕ^M͔{˱^({߀yyYs{ŷ?,oWk˱? jZjf~.jno-\f˃*;\3NOZn1dVq"SbjՎ7բ3p;oNYgo+m[γ-c}5lb5Z7W77~jnMc{6֚_(}c|yNgJs[G={޴Ƕ]kW?6zֿV}[ ~ բ3q-G,՜hn~X-Z-=6󬦬s,G?,OxYc~37cV8 L\yG68׼[svֶv~jnO,oUkcQ/xc^W}C~E|Mͫ췏jkoٍ{Q_T,kوb\nl|qSSk'؞3kX҃vvuc}6I~ px8dWzֻ1~4mv>X[ogqc{W=X׵y>8Ob9cG;ug]||ysk~m>V㶸:c7G}|qҝXxդjcls=<[Tc^{:5{5ھuF^iKn`7&C7Is[L 0Ėo1|٬Oٿ,%ϲ>8I'j~=gfo0"c|yNcq"jֵX޼}8T{:e٭f5E}m1^& 3o^o$&@{m/[g{_:cqg(u{,Zn淕 ?[gL!")=舥޵Y=Xcxq2kL{dc٬ǭWI_v5{,ZʏyyY&<ٞ1:}ƫڡވЋsU\yZ7-a)QaQ p~5~͡}{xWs;W1gUǏS-ŀ 8XHYOq}mMΫ0iVõph3s$o%zO6m':KS-OEVEVEguS}O/xM|SOOftZm'4O MAQ4XVy=YTj&>OffEVu?ˏ{:՘V6\8%D梨; ^yL'|@88a?k귓 =.j*=ȯ2,-t7ݫιo>>ϲݘ׵jun6cQ5A;7x\ݛj+&5{RQ^u]?lqjYe1 %-gUX#ҝ}g|e)viy4|-W {7rlƼ w"W{[zJ9{[z`~(.Z=:M"㛜xrdZX{1;_?W3Sl5\O:~5Gpd:0d9|0NfopldW{]ldW$Ycy{\9;깙Ǖ}4=Sv4}ŨwlO3q\gc/e['j]x҉Of#Tޭ|٫5yƣMr]x,PTYםcNd}27J'7vcLG6^bgkڬ|doqj&?mPϾe07|Qm}Q.y{),o9WRVSWqR,^;?6~Xooھkoֽ5:׫o/#k:_:16\}>mڽڻe[gkvZgƯ#۬ƔzߛvZ]ipDO]5HBЕeޅeހ4X @P{[zrc 5(QpC koD8k((FC(ވ%QBm  ooکr r {[zr{jy(9p(4%!"$a"<絷gj㺅) gn;dmE"p콫5h?]ZME}vM8$dn <dDl{sF֘˄\Q 0(54گ<@F\~  #joY5ЂȞ #j!~[Mam\˗Rm\&\:XW'y @{,Zn淕 ?[gr7 qg9_f7(xH%,kB#a<dX@TH.$(&B y LQaQ pHRcZoy kn A1@pPWj˄Ag,/!HP$  apP<kw,gns;W EJ%ЋsCC@ktŝjCC@kt44q::gŝ -ZA&(G)2y 7齸XWo7;>g}w3bu]D@d@a[TDSs@(`,dH%=+fP$   g{X7"a.@t{=qPh ,.Ea0i`(tZ^fkAE8v78$W[~kڊcEvv\L<gν+-1Snxx §=+v[y~ gB8u#Y{|`hg lFtˉCCAӪ]Vj־0i[.եE ~GgP6DZ\֭k{SqaJI˳|3ڴ']ǭ|@Ti>,Ҟ U7N]׵mcھu燊 PX*wncHեD^:dLqgz! -:lnxx*9A /ނ=IoaԚ=Afw'>X!VXUQG-=I]@mMo^z=IoiԞB*@^w^ө]+sB; z=Io=Er*ԮB^R[zg-7AA?n{mx@$ۯ3{^M_b9T(A?7WZo-Zu|5#ڿ꺏A?JqagY/o=Yx@"'y]k?,G?,hy:z!j㎠;Ʋ MV<[e<Ս=4=͚lsjvԖ84q=Ic8,q3qRXs8㞤tP=IcP=Ic!zC%.A B6 %La I{IcԖ8pAKXRXgpAK\RX8AKUԖ85zC%&=Icz xAM=W^dLy<89"` =H%X#eTJux^t-\{fmֵX޵KΫ:שp[oz9@8Y 6kgj&%e@8 02&R=HEnD۵{+Zo<~EtfwtG NQMo =IoYUa Ё=EoN/~" B"`ιY ;ƫڼAsssWkP "` *j@giwW3N!H:OY*/*JŝTk_}bΧϖTA`(B!-_7VSWpQPH qgy,'ϖST,ι YMo^-Mo^b%  mj6@V A i`.P ʴԖ?ݦ+_v߭jDOjy-xTjxprDHz[ם^<z[x@UMo_9τ<7^<><z=H(I)UT\ 4HZg(x7U]{1疭:3p Kzfm|u[ek/e tȂ[tȁ]@cGKǂ^Dg`sԁ Ԛ>z9_EF*66D*tȁ]@,r"<-:XF<Q"3z!zeos{,e{,Ԛ޾z:wc<QGK?;t|&,pG=GKt=GK" B&ρ`ф* 'H st F*H(T, "DAPC[A:X^ F*HYBI$Ai 5 B mc04a drBA80Jkh=GK'04a dI je$pa!Pz8# PZn !H6p0 P`dဠ08mtB& @ ,r F*H(T, "D`) B mc}:lPZ0PeDmj̡ ad$*ԁ t[Ʋ317h*| 8&!TTlPY8D,)B@$DRB'HA@BI"() B mB" %0 "D$j N" AK߄`ф*"B$Ai!h$HH@$F!`1`.Ё$HHAPC[B"2%704a dPp$XR0$ATB& `63(APC[AKO U[$*6 "D $* mp$( PZa!Pz| "DbP1!a\ M@P$HIcahEA :8D-"hP$F[h(0Jkh@$F^O I R4B&`e,XA@ap$ZRX| uR hPVPX*U (B%< "DbPe`(0L M@ рH6H0 2$F^$`(0J&'l P!hPe @ Hzǎ "dbBC^ l PZHzǶA ,dbBC^7A l PZHz[^gjkw=I%l@0QPu@PY8D-$!al' CAa!Pz[KkahEA (T8D-$ mj̠5h(2@%T5wZo3|tU|k/FԚE@Y5*QA:X^a:X@T!d cWQaePz: L =GK+t,y*^/Q02Aޣ<,z8@A:Xz8~/QǶkt7z!zgFy_"r"jǵYگv{0ѐ`=t5`@{+νZln7[_YODpq ŤO*E=Wq_ ,btމz'~P`<( {G+q^D`H9j2ZDu9NPA"gzӦƲNIo:4{PD9j2AǕ0Qr{ۚs'q<@8Zbx{PX9j2Gkz۞U?aw=q_'W#j^$xa:H8;1Q_N{῝7U_j  Bx#^qyqoonTIpźV7{݂8H@Qr{l85żo٠so}jWqw>))[_YHydȄ0§$SW,!{ktpPhBr E]Yg8g~X{݂NQr{k}3xkXtwy<" PXV1Vrbloa^_*gY[<~Wlo`g/Y>V1Vbkty󬭞` r[,[,+e{ t ?nP%Dh% $ R8$OUE݂ pH8a2ЀPe"Ё$OUO*xa_K?^#3DDɢI@j "LE? A" Q"dA$ANH4A" Q$B&LG7Y\suxSϏQW~Gwk}H)PF HQr$H##(gb9@(+ι!UmIpFZ5cz h%E+k1i!HHY=o)ՋXݨ5<3Sn4|T3mQ;<[)lO;xGNB6y~PA"ib9 Ɣ[흓j{Mǝ~Xߝog]UM?ecDOL$lHx)y ߆vb9j* n󬶹K=^u9AfS?_Lo {rt*qg ^6k9:G\}._F?o=/'l0H0H5>~7,i1"U'PH enwS^A>Z'6rD<,נglZ ƈ&K?nB !ZH^6kb ƈ'Ua'-Kbkd:7 9o.HP@0,,Pryy ߆yyŮ@b&b7ξuif^Dbad02C$O*8Y/~5զuﱐl6\񱀱 N(e N@(Y?7MXy9G n~ " I@j %4#a޵!0bj؉k؜3_}vxߖ7ι37;WN7Iv"o_y-4?!!w.wKɀXFBN{'9C+rie {tO Ipk=~XuF^izs@(7B88qLYq _:d>7 y%B^uޱ/c?ecDOKbkdV4'UYr#YCG)\8 D`hRFH*Bg#gg r RyGD" D HNg#q챼G,Z>_χ瑞u().@}3~~pqγ2`q7'[gg p?>|/#<8,}3~~we[0\: ?^>fBtx&yqr9ytS:|e[gk?ٝcOݧ.;kֳ6_rߢs{x?fk;vgXᨫI}856~ou\n5g73k"rϾg "B| ,\ 3bЋ- GZ5 e0MճcMOqyb5Pqs@ ]XwSc<l&?YTn׿Nqs8>$ɸX<Ɯ=?[/[ΜtaHiOUo;⪻\VwT0CG&?bp4{UvguNqs:0!q)VwUVx/k "eGZcNgm1-U4wԟGi5qsBiOLeU~&r'&0Aqjy8z}{/oNqs8>$97Ҟ){⪻\.an#V-O1Ou]to:sr YGcJx:8?30A4qjy8z3ts:KNqsB0 ƔOtm| H5GZcNiٍEhsr iOOHn88A]sr$Mũ4 vS"9UvS.a+MGcJuSJEqt097әOV*튭Nqs;aHiOwUveYS\Î397әO;+SGUWkڬ.al HhGcJ}O;+SGUWkWM.a Mũ4S&Uv&0$97ҟS&Uvd\sr$ADMũ4r|I]k);r.aB4q),'ĕFqs8 H4GZcNe?)ǵl-?١.al H4GcJ}O{}~4y󄢫yӜ\Î rn#V-O1OV*V88@&?3S?[/󄕝98(@ɸX<ƜI>lMU]_MYS\Î HhGcJy՝m*%zsqP ɸX<ƜI>o|UWk^788@@GcJy׼Mr8IhsqP ӓqjy8~S'k٤[f76١.aN$rn#1XWijV8 rn#V-O1yUsqU.a7@GcJvUr8.aCG&?bpz}YVZ=⪻\mYS\În$4rn#1;igu[ejhr8oNqs8ՋSi{⪻\m{ޜsp ɸ Ɣ׼Mr8498| H4GZcNO{}~4ymsp ӓq)O{}~4y$Uo:sq$ɸX<Ɯ'yUpUo:sq$Mf4OV*١.aNMf4O{}~4yH^@ kS1Zm@n;76:19./usr/opt/perl5/bin/pod2texttomm#!/usr/opt/perl5/bin/perl eval 'exec /usr/opt/perl5/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; use Pod::Text; if(@ARGV) { pod2text($ARGV[0]); } else { pod2text("<&STDIN"); } y lB2Zm@n;76:19Z./usr/opt/perl5/bin/pstructtomm    et $ainors '();cdflmpu"#,./=\_bghy{}&+0[]vwx*-124:@ERSTkz%8BGLMNVj6UWYQXZ9J/99jq'r%B.S6rc(|-RS6m, ЈǧK2+*Z#20[_胖)೵r]= \ )'N3m|"`#BcQ/.zӹ.]U3tmyTO'P:-9E\Q`PvSs,Pf{( 0NRuֵIMZqN{6cX- UvRuS֜ePp6W&Pg*r]CX-R7`X 1(3Zw%Ѽs.*']%(J(x0(ۉMR7 P 1胖)Z"rzoR4AR;-o&c?F =*CH eV"OJMZTHҲs"$!3 PFW>):)cȉ=+(<8M['z"${ Go'P:ZR9*M˩xJ-InKg']kTъU&ԼHC|bODC 0Bj1JbOH=ъ.lg1%^TUY{o ->z:NYUl8ėUmN2UÌ7Mr .NFW $d֡.Tg=*$2o>+ 7֌UUΓ|w;%YR7BA@0&!P<l`TiE"$>W,PjQGJ(Bo2EpU’| m|"IAP 5A 0p AV05aC0?nkJ$t\Kc|IݭRQJ${(O:g;ZO8e)եITӝ\,WR$5E Γ]M8Z{H>2ֈY'Q^ vRJ0totFkJJ$F J$gJފ:JKư*RJR2_PI죯1UgRĝ=U)t`GCbt#REj9*#85]+xH*KQr_e+4bRN)X1ELJ+5|W*$2u.vSӌk$7¥*uTUtJ27Ի:}>vݭ*+(^^:w͞eLI/;3.Ot Q,iM7SZҤN$\l¦3vQle+N2U׾'qtuJW|.;TIFn\}ϊ;| Qjc9ܗFf~_ݕdT!j~_ݕdU^L r]#k|88{?toEGl$ g_QFNƢE89|/#' cQ"=eF8HSÁ|/#' cQ"p4{?ܗF/l$ DEj?g;vWvTm1+p8;ׄNGKݕdd Lj$I.V_xMIht_QFNƢD|VÁGKz*>wݕdQt?ÁݕdQt1E#ݕdQt1EW 0|/" D) ݕdQt1EA?8g;vWvTmEƢF"pGr]ʍ(H_8o' KDʍ(H]2(=’(`l.&5$L?r]Q#8g_QF+&5(lWLj$QU; *6{ƢE{?ʍ1^1EA?8g;vWvTm DE7ݕݕdbcQ#k|V{?7%QeF`H]2(@^y8RZ%,vTm D%"~p-?*6iE(?g +[ }CF0EFYJӌuO}91Qu`3)VRҤXҮ2uPiR/U bx^bEt#Rj)*9*IJ:>{4bRGC'P:l@4pd쪕Jc|*R n+[0x`(UJ{1)K'WGN2q`V:CV2 ^wUvJ$ןGH0n[#zq:թOQLkJ"/JR**ݦ˂꒩qOZ3=GcX=WPK}ZN,W}C}y2"C7A-b]g7sFA.K}HC+xZ%65c:R+2=|X+VNNUWkTĊGt.;u'#l}iDj<-]-R(3t$i.^>V{e+9ܗS vRt|: Q֔IʍA=) ebq[+F T]E %(;ҸJvR2weyܗFוbNIRZFebNNW%(o)lw2VDk(H)ܝ 댆bEL($3$Q ģ 27ʜ Ċ=I]*:?iԘV+eU%$SOuQNVs.*JIRJϊzD,u=KMx#o&7oJJӊDI'(1!E(89jg]ٕ.QA5ʁ5*͙YCV(j kU2*W45bKDbxdѳx^Ǡ̬rP:/7`L€X  H3l?4Xur^n'A R gFK೑ ^n'FU*Lm{zp2K.E{zhEb$gH 79\? q:6K^ޭaeZr؉Hm ggoV.Iy%ޭaeZr؉> ? l$NgoV2ޭClDq6 3i>(W8FI`840_#%1 (fͳH1畊vR9Ze+YȅNϲ)\KkʆNJ%=Ҭ;>\D"iE"$܊59Zk|a=Ҧ-(*KN2yh5;فRn TGtB3t=Z(WuITNP( )Z|;)\Kkʆ%K^uGN2M& |.;'ܗFוLfHG͌ay8ΤjWRa`np`PH&D0`'᏷Rr6{ 0pթC_dD\ 02ޭClDXa g: REnw%ѵC8˲JoMΜn5ըXkSt 02Kټ/QL/7dgZG|)Z%4%]zT|ak:s| g"gbYȅV+[N2vUjJ1XaR"RܗFו e*BOebN)RiRU&V+[N2I'}-Ptc7O|)Z&{ &]We{|೑ R[qܢ{{S?;7҉Oto}V-]%ԆM93=50>VHӝ^\{)['el0iRU!8⸓Sλ([ *F* |.=g"ܗFוbO"qse]: a\u೑ ogZ.7rU&,ISU*Or(im>l0¹U(OZG^DTEuܢaZO^pz56-iU]i>>qVa.*ğe"hF=+e{E{y*N2CXa.;N}DzV7‘Vq\5E5;%aO.WW;8+Ʊ Ip?We<>IoՒtދPe0`,SghDSz4o9GIA֪V(}r>qVTE7CJx!JOD-Rğe4AR.^uGqRJX..>zqV+˙Y*3$g75ܢ{{I+z+cXJъUp6WewOj’`3PK\KxWQ,n(VNNW)Pv]$3?U_Q5kn{J+Q4UPԩE.Q-DK\J֔IUWuXND#e*C:Fz&R)8#YJQjKzxm#]I/vR\dSsvR*3tCr(x^ee'JO%V%U RF**[MF\ 8̥JH\kTAe:C|8*ԩk E{cxhCDA84hA#Ѐ<I>wLQ TRO51ŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,[/U]'[7cU+>TEW*^5i'dKH<^PI&:}8JA'IQ);r|&g`t:Q(30 Dь5xMIhtaalFVh 0ٚ1̤e{f0fh&pцhPь5xMIs)^Y 4(h2o' K|,ц4c?|,цa4c?^y8R[f0@F3#f0 Pь5HY 0T4c?^y8RZ3Fa$ь5xMIjFaF3#z’ 4aF37% 4aF3#z3Faj=HY 0Lь5xMIjF#f0MWN`OR0'h ь55"4ajfgErJQ 0R4c?Z/ԍalQCFa1‰ 0@4c?$4aO*IwђDĩJ\ 6M]E .*kr|&fXOKĩJ\ 6 cΰd*F*7lE<~s?Dh 4h&pJ:F0ilFVh 0qlFWh 4h&pцh8ь5xMIs)^Y 4h2o' K|,ц4c?|,цaF37%h 4h`LцaF3#{f0 1 )-H 0yj’Ԍ 0AgF7%h 1Ԍ 0  T Fago' KR0'4ago' KR0' 4agY 0AgErJQ 0@F3բ]HцaF0ÛeV"OJ ڭ*JDIYAbs"$ͳx^=+(~?83 fA9M9ՑM[o ճƤhԍ=1U Ɓf?5MA?4O AB@pAL~i1Zhnc]QcAhP&YjB.S5h4i n$QV,&`xp<G`  yAg9zv*\4 L i( acX`fԨCPcb03mhj lV+aV(FJ3حdag5j8ǧحdD3UҲ6JzVPfئȉ=+(~?8`  av= HHc `0H'Hs)^dDIYA JzVPxSNudD0&aJCH 4VE5lxӝY'e)c/DDcNRuֵIM^rTR" Z=iܗF`1o0Bj1JܺoBԖ胖({&TuRSF)PIS4'z1UZ͌<ģ@+ʑ/uze'oGI*Mꭾ Jq\ Rqcrr5Н"0`1#& r+>)Q%ɓ| ^^d|ɼFbNtt{ܗFוO.cc+_m&Լ9ESc@%IG(JF**]E(i31*LE80 X 34DNRu =7Sğe9ۉLgbTqhHXH(h] ܝ'>2Ym*MxZ`30`z g|/Bc?]#Q'e $*iK󑊋 yĩ1HUIT=+(h'e8JiK9ǚz Jt6):"OJ34IYN)M9龔K9枃?]#DIYCFf=+)>o ֛D9z g|/Bc?]#iάj٣3f ON2UUN2s4&"l)f͚|-=8W_eV8˛i1IQ A Jt5Jf)-7KU ȔS҆|/@B@j gcC(!*{Y7vRXS%Z.:-ҫFN\57[:RQ\@ hm4$,$ge+Mu-''(Ii\ķ8W[:oRT>J;I>T䴟*F+>vRNk0죯}O'*|`7e*ZOzdy8FTwMW2]DUuQ0$EHΰDBH3x5c&-*LE3Hh3j&~?AI@80S ?Bmtt"1DHPͪ̚ .6Tcj ca03,p@hz3(  XL0'JB cCљA 7SMjF Bag)7NTÈ G a0?,pD l~Y:PPV =7[R"T!H0t .& XLxm` c\qqfQr5'fޥ@ ǂ xpY j%|Rړ+z{R|a+;NJ$4 6p @Sh mMP΄x5,&`xp<8Z8l 'YfШ q֪Ñ,PkZ5H0ɕҧ Eׄ@@΄x52THVChm4$,$@΄x5|B(A4*x+qpَA@@P"z .clV3?,,鬣&0@4pͱZ1ԪwIiᡨ3 h)ڕ\ b|f36h zy0` aI(BA0*TzrX,-EIEH!AIY'T xS| *ⱹ,&fb XLXCh0Ɗba] @Ċ=J@1frr5`|yf qF4g|/ @АL'G¡bzvPT"z 0 ޼ ,ۉLG XPa ,ۉLGA=< @A  hgfQh> l#D/ 3'xP*tav7ҏa 98ptH?ڣXp(R 0 1ptfQ~gv'T x![rr4?ׂ[hT;@ gb1Ue'oF{ڵIL03ME1I(BA0*U8"2='#H1ᒩA#eV$WVE%)kn*zVS ڭ*JDIYDՕt~(4Z=+(^x ieiRU""OJՕt~(4Ts"$viάjpxx^=+(]M[.R cIC0_*TUu s)K%[KJ|+ /};( ɔxP*ahH&$>ܗFoOm gE׹Sc*r%6t+Vx;fs_+Xr~<8ѠÐa;ޞحdg` ԪwIkh 1i>hH&6V[rr4bJ3x^ 1x%I*%ITiή)T|z54bJ6Ujh0'S}(M0ƫ+X1UNlcS~̓c ZOⷧj`f(ΐaYXPaISS ޞIL6ԉFt mҫ(NVɣ%Ct:SOj%aN6s`hc`h`q0Ť^(^+z{V)m ![V)(ΐaIQ ޞժJaDjD:A15jg|/ՑT)0Zg ! K <C.B (f)6(fb.)l=0^! @A\slԕ'gEA,5J(IA,5J`kK++EͲRTyr\*a ZYX9Z.mZav93i> HHd%r\ټ/QO,"8ZYX9Z.k Q J|),ZYX9Z.k + ֖VV7)kK++E|15zh0@ $$2kYX9Z.lSNuqO,"8ZYX9Z.k Q J|),ZYX9Z.%Bl0 54W5 P dsfE4] @c ZOH5m,6ʭQO,"8ZYX9Z.k Q J|),ZYX9Z.%Bl0 5U)kK++E|1l $aI B@&-Q(9ZY-,57҉Aav91rntl`h3O@S9̓`fj枃g|/@  ɮKie`hr]3ֽʚ $aIQr\*%IEcpɣ%Ct:S@  kK++E͛fE2̓ AaIQK++E|z5<~pd52Lѩ3z )0^(  r\*%Ir\'S  08QC3Mlԕ&xQg|/@"sfE0VV$jbCaؾ !(fi0xQg|/@"sbsa-,5I1†0 |B,PFa1D!z BaIQK++EͲTS ie`hOF!1` p!bf3U)3BB ) r\J%+S ie`hOF!1` p!bf3Q(9Z1D!z Bc mҫ(+IHSᡨ0z" 589Z. .x?˱I(BA0(oOm gRF* ̓ 6o Sm6V Bgv3i>!H1\H(eze<m4t2c?ӌȔ+Yӌ QY;r|&f~Y-'ZhW:9rxFU*O(fۥVQE+Eb@ g|/B@VRQ3h0,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ,Xbŋ2kn%g(NN{Q-^@S B8A$@d@H@4r/8A$~\׃?8Pنa 1†&A!&A!&A! `( p;A 93x^@48/Icvޞ@9/I?ޞt @G?,=GNvGJ|Sr| f oe*ķF0zI/|8P"JEdF0zK Pj1 XPc "l ڲT < aQ i qO<4?,xԕ'su]Ja %HB*$4`bR*ՒT= ]c?ޞp $ 8A$@ (  h < j @(qfQr5T,~r 1ePr|&f3kҨY0UUjNh=*ʭP?kҨZ 1i>hH&>'oGkҨ^p.ʭ[lJ.M ]zy6VmTd&3mZhNgr]0~88RTeZ/Ի+ʭAtlCz{RKAg~eb|-![ڕ\  x)S; ,@r gU=.c gm ܝq 8 W9r3m ܜz 1qdҤT9r3iq3?I͞쓥['ԕ'u=iU^oD,B*$4cHMT""a2z<~i0ƑJP =3?I<8A,  h <@AH5ÏxV=ҭ8&,1ePr|&f3h8cl*B'4 mZeVDC ZO@ O%UmZ=Q%ɠ&8C䔩ΒWe UI W±(ҏe6IR* 'Yf$C/JJm0|+iJNjb .d%UxkòZ}ZU0O 9.)5yR(CD~"?8 qO xG AɮKZw%Ѽ?Ԋ.PujҤ&1:?H"9HfJ%+C6U ):j""9JʭG"9UjhQr5RUjRxX͵ Pq3HlKdQr R(CT"J;(3jҥͪ:wӝXͪ:v@5lQr4cHAE(snYG]"91UNl5juaE(sH$PaBd@h#Ec?Ԋ.PVN+"c? CPc?ӌQ,鬣w%Ѳ(.yf՜?jҥ?A6r+5sS}( eVDfb,fئmRN沏 3jo=0UʭAT" clՏqA 4@@(r 1V?h5b/?h9J%eV~TZA1Hjpr~? Zq\1=<]$FUu1g%lSNux39:wӝ^GNԨ8a==*M𤶨SNuh1<7)IUetYaO9(.~YۥVQE89Z/PKʄVrH0 , mҫ(͜Ə7ڳaa?t:'VB7JmZAJYVQG6Uuƣg̥$FUufVa6UufVGUet .PKJ;(8ޞfuA3SNuc6ڕvP~sbsJ;(z aRuaIyڵIL03hHgH0.Eq֓iՕtь0 ^*ڛD1`*McZDhV7j1^z a\^c <490Z{VU 0?P 9: lSNug0?i'$kbs<P֒}Vx0P'ea4xT L+5s aժJ`)FJ3?ޞsV(~YۥVQX1:JUetslz 0R#t:*b,gv0ժJaaS<~ ?,b̡/QLfYRNƊBMPr(a/2bsc7lSNuc{S}( =bEv&%mҫ(a,RTQQjQ2/joG mZ1N6 / Yy8#eV3kU+eVXx a4a 7҉AУa,MPr1ZDhтAc ZO3sq=U §o1nYG]0 1ZFJ3?֓x<5j( m015jgEJg7’;fVʭE+j1^5RUj/0j 3F+X2h\xYF+ޞb- Ǐၘi%ޢDnYG]L 1#?|-3MrX `r1`VVɾJVw%Ѳ(xY0^e =ͳ.F+Aatl1^کTb-]aN6sl3եILkS}( Aiάc*EyN*M6YUj.?˱F+futl1^*sҤ Kj1^4Hc?t:g+EZn]$FUugS|2VQE89Z.IwVQS0&R[fE2̓bEճdђDͺUetYxP*aIiKi)Q[ڕ\ 3'xP*tgQ(9Z* 3[HɥHp*McZDhPͤFmVئAc zyÁ#$ 8A$@ǺC0JP=]Rzy A P A  8A8A8qf͝V3jvPp͠ :DP@*sڥ@A*B82ʭP=]ޞtGH4s $qOqO@p3+J;(~?h8fz 31gA*ԨPN{T0UUjNh4 RoO:c# h(@  i8xx-1$ 8A$@ A„ @ .NT M8jҤ&5JV*sڥ@A6w%Ѳ̓ q 7҉AͶUjFm2z1gnڥ@?3?ޞt A XÈ$xÈ$zaE(sgn7~sA6A6o S,եIL?lb|/;t{V&=;tg7{fE2ZTːJ.Mۥe7흺V?˳Pav2k*EL?9?P]R̓PgHMAɮKN**O,"9-ƍ.ʭGd(NNzTImP{^ i~*0NyÈ$8 ZO⬪׈mP{^ B*$4g(Nab|/eVCix ޞԨa A @0,Y4s@Uj9񹧜y1 <`*i1 wgf%Mw#4d)!H388E/SwM?4d(EX14 8֑7P'e i )gf%?\ ^)FKQT+z{RKA"6/JF)R Yz' E6rђDbm!4d(EBޞЊ .MrZuh#t:,"9Q"E\M[=\F+ŝp"t.Bׂ9Z gjlՏy8yHÏ0ƣxA3[*c\qX1xJ_ ]g)7&R[nYG]jl\ jj?mҫ(TZ& KlKe[*?,pJ|)-J-8sU+eV˟aᄗzUetsU+eVN{U+eV=r .)I<*,TZ/ WA~Yt|)W]ҫ(8jlBacSVnYG] Zq\VʭG@S4 5g):0'JD[U+eV jj?4 5c?ښF+񹹨05hU"\ Qr4*֪Ñ,PhE P Df(4*G)"|Vm D! A)8*c?֓xP*ag%,td )9N2eVr|&f~YBzxmZPeV<#pPeVx+F* CxsM-'$ H3i>ʺaax^ͲQ1MP`H]ZOHhHAIU DZ/ԅ?Mpq0@T E3t#gh aSgVHf)֪`f0 @V^AG"RDB@ DVAMeg1FA >'oGihx^![ڕ\ 1x^f" kr|&fYCnYG]i3?R3< WQ(|oј?ׂX@P"34u i3i>hH&%Q ޞۓ]乣's#yf\"~?AHx3c4p1&?GЋA:DM"~PgHd%̬3i>hH&H9A+;p]KD*3Hl$Pc?tœwJ-r(Ro%Uuft"9zUeu353Hj:U$H:I\͒Ε@~i{I.#*EyNAZO@ MQgJ9Zlt9A$H:H45-;̓Ǡ^ O DaPeV3mҫ(N+9Z< 1q֓i("z 3 'Yfd8GA1Dg5GkJ0  ֎A10 D5Zg @C#$h4hh0&8 P x'8P$(dd F=*MA' ?ڣx]Tt ]'GNx`f;@!w' .Mr\juUeugR(Ct:f٣'s?H#]DN\#gElgD<!aE(s`W&W!aO9CÄ18!0Z$& h矖a"!m1^Ax4Cj 0JN3CÄ1nYG]b{`W 0 kꠐ3Zm8@n;76:19^8./usr/opt/perl5/bin/s2pmm#!/usr/opt/perl5/bin/perl eval 'exec /usr/opt/perl5/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; $startperl = "#!/usr/opt/perl5/bin/perl"; $perlpath = "/usr/opt/perl5/bin/perl"; # $RCSfile: s2p.SH,v $$Revision: 4.1 $$Date: 92/08/07 18:29:23 $ # # $Log: s2p.SH,v $ =head1 NAME s2p - Sed to Perl translator =head1 SYNOPSIS B =head1 DESCRIPTION I takes a sed script specified on the command line (or from standard input) and produces a comparable I script on the standard output. =head2 Options Options include: =over 5 =item B<-DEnumberE> sets debugging flags. =item B<-n> specifies that this sed script was always invoked with a B. Otherwise a switch parser is prepended to the front of the script. =item B<-p> specifies that this sed script was never invoked with a B. Otherwise a switch parser is prepended to the front of the script. =back =head2 Considerations The perl script produced looks very sed-ish, and there may very well be better ways to express what you want to do in perl. For instance, s2p does not make any use of the split operator, but you might want to. The perl script you end up with may be either faster or slower than the original sed script. If you're only interested in speed you'll just have to try it both ways. Of course, if you want to do something sed doesn't do, you have no choice. It's often possible to speed up the perl script by various methods, such as deleting all references to $\ and chop. =head1 ENVIRONMENT S2p uses no environment variables. =head1 AUTHOR Larry Wall EFE =head1 FILES =head1 SEE ALSO perl The perl compiler/interpreter a2p awk to perl translator =head1 DIAGNOSTICS =head1 BUGS =cut $indent = 4; $shiftwidth = 4; $l = '{'; $r = '}'; while ($ARGV[0] =~ /^-/) { $_ = shift; last if /^--/; if (/^-D/) { $debug++; open(BODY,'>-'); next; } if (/^-n/) { $assumen++; next; } if (/^-p/) { $assumep++; next; } die "I don't recognize this switch: $_\n"; } unless ($debug) { open(BODY,"+>/tmp/sperl$$") || &Die("Can't open temp file: $!\n"); } if (!$assumen && !$assumep) { print BODY &q(<<'EOT'); : while ($ARGV[0] =~ /^-/) { : $_ = shift; : last if /^--/; : if (/^-n/) { : $nflag++; : next; : } : die "I don't recognize this switch: $_\\n"; : } : EOT } print BODY &q(<<'EOT'); : #ifdef PRINTIT : #ifdef ASSUMEP : $printit++; : #else : $printit++ unless $nflag; : #endif : #endif : <><> : $\ = "\n"; # automatically add newline on print : <><> : #ifdef TOPLABEL : LINE: : while (chop($_ = <>)) { : #else : LINE: : while (<>) { : chop; : #endif EOT LINE: while (<>) { # Wipe out surrounding whitespace. s/[ \t]*(.*)\n$/$1/; # Perhaps it's a label/comment. if (/^:/) { s/^:[ \t]*//; $label = &make_label($_); if ($. == 1) { $toplabel = $label; if (/^(top|(re)?start|redo|begin(ning)|again|input)$/i) { $_ = <>; redo LINE; # Never referenced, so delete it if not a comment. } } $_ = "$label:"; if ($lastlinewaslabel++) { $indent += 4; print BODY &tab, ";\n"; $indent -= 4; } if ($indent >= 2) { $indent -= 2; $indmod = 2; } next; } else { $lastlinewaslabel = ''; } # Look for one or two address clauses $addr1 = ''; $addr2 = ''; if (s/^([0-9]+)//) { $addr1 = "$1"; $addr1 = "\$. == $addr1" unless /^,/; } elsif (s/^\$//) { $addr1 = 'eof()'; } elsif (s|^/||) { $addr1 = &fetchpat('/'); } if (s/^,//) { if (s/^([0-9]+)//) { $addr2 = "$1"; } elsif (s/^\$//) { $addr2 = "eof()"; } elsif (s|^/||) { $addr2 = &fetchpat('/'); } else { &Die("Invalid second address at line $.\n"); } if ($addr2 =~ /^\d+$/) { $addr1 .= "..$addr2"; } else { $addr1 .= "...$addr2"; } } # Now we check for metacommands {, }, and ! and worry # about indentation. s/^[ \t]+//; # a { to keep vi happy if ($_ eq '}') { $indent -= 4; next; } if (s/^!//) { $if = 'unless'; $else = "$r else $l\n"; } else { $if = 'if'; $else = ''; } if (s/^{//) { # a } to keep vi happy $indmod = 4; $redo = $_; $_ = ''; $rmaybe = ''; } else { $rmaybe = "\n$r"; if ($addr2 || $addr1) { $space = ' ' x $shiftwidth; } else { $space = ''; } $_ = &transmogrify(); } # See if we can optimize to modifier form. if ($addr1) { if ($_ !~ /[\n{}]/ && $rmaybe && !$change && $_ !~ / if / && $_ !~ / unless /) { s/;$/ $if $addr1;/; $_ = substr($_,$shiftwidth,1000); } else { $_ = "$if ($addr1) $l\n$change$_$rmaybe"; } $change = ''; next LINE; } } continue { @lines = split(/\n/,$_); for (@lines) { unless (s/^ *<<--//) { print BODY &tab; } print BODY $_, "\n"; } $indent += $indmod; $indmod = 0; if ($redo) { $_ = $redo; $redo = ''; redo LINE; } } if ($lastlinewaslabel++) { $indent += 4; print BODY &tab, ";\n"; $indent -= 4; } if ($appendseen || $tseen || !$assumen) { $printit++ if $dseen || (!$assumen && !$assumep); print BODY &q(<<'EOT'); : #ifdef SAWNEXT : } : continue { : #endif : #ifdef PRINTIT : #ifdef DSEEN : #ifdef ASSUMEP : print if $printit++; : #else : if ($printit) : { print; } : else : { $printit++ unless $nflag; } : #endif : #else : print if $printit; : #endif : #else : print; : #endif : #ifdef TSEEN : $tflag = 0; : #endif : #ifdef APPENDSEEN : if ($atext) { chop $atext; print $atext; $atext = ''; } : #endif EOT print BODY &q(<<'EOT'); : } EOT } unless ($debug) { print &q(<<"EOT"); : $startperl : eval 'exec $perlpath -S \$0 \${1+"\$@"}' : if \$running_under_some_shell; : EOT print"$opens\n" if $opens; seek(BODY, 0, 0) || die "Can't rewind temp file: $!\n"; while () { /^[ \t]*$/ && next; /^#ifdef (\w+)/ && ((${lc $1} || &skip), next); /^#else/ && (&skip, next); /^#endif/ && next; s/^<><>//; print; } } &Cleanup; exit; sub Cleanup { unlink "/tmp/sperl$$"; } sub Die { &Cleanup; die $_[0]; } sub tab { "\t" x ($indent / 8) . ' ' x ($indent % 8); } sub make_filehandle { local($_) = $_[0]; local($fname) = $_; if (!$seen{$fname}) { $_ = "FH_" . $_ if /^\d/; s/[^a-zA-Z0-9]/_/g; s/^_*//; $_ = "\U$_"; if ($fhseen{$_}) { for ($tmp = "a"; $fhseen{"$_$tmp"}; $a++) {} $_ .= $tmp; } $fhseen{$_} = 1; $opens .= &q(<<"EOT"); : open($_, '>$fname') || die "Can't create $fname: \$!"; EOT $seen{$fname} = $_; } $seen{$fname}; } sub make_label { local($label) = @_; $label =~ s/[^a-zA-Z0-9]/_/g; if ($label =~ /^[0-9_]/) { $label = 'L' . $label; } $label = substr($label,0,8); # Could be a reserved word, so capitalize it. substr($label,0,1) =~ y/a-z/A-Z/ if $label =~ /^[a-z]/; $label; } sub transmogrify { { # case if (/^d/) { $dseen++; chop($_ = &q(<<'EOT')); : <<--#ifdef PRINTIT : $printit = 0; : <<--#endif : next LINE; EOT $sawnext++; next; } if (/^n/) { chop($_ = &q(<<'EOT')); : <<--#ifdef PRINTIT : <<--#ifdef DSEEN : <<--#ifdef ASSUMEP : print if $printit++; : <<--#else : if ($printit) : { print; } : else : { $printit++ unless $nflag; } : <<--#endif : <<--#else : print if $printit; : <<--#endif : <<--#else : print; : <<--#endif : <<--#ifdef APPENDSEEN : if ($atext) {chop $atext; print $atext; $atext = '';} : <<--#endif : $_ = <>; : chop; : <<--#ifdef TSEEN : $tflag = 0; : <<--#endif EOT next; } if (/^a/) { $appendseen++; $command = $space . "\$atext .= <<'End_Of_Text';\n<<--"; $lastline = 0; while (<>) { s/^[ \t]*//; s/^[\\]//; unless (s|\\$||) { $lastline = 1;} s/^([ \t]*\n)/<><>$1/; $command .= $_; $command .= '<<--'; last if $lastline; } $_ = $command . "End_Of_Text"; last; } if (/^[ic]/) { if (/^c/) { $change = 1; } $addr1 = 1 if $addr1 eq ''; $addr1 = '$iter = (' . $addr1 . ')'; $command = $space . " if (\$iter == 1) { print <<'End_Of_Text'; }\n<<--"; $lastline = 0; while (<>) { s/^[ \t]*//; s/^[\\]//; unless (s/\\$//) { $lastline = 1;} s/'/\\'/g; s/^([ \t]*\n)/<><>$1/; $command .= $_; $command .= '<<--'; last if $lastline; } $_ = $command . "End_Of_Text"; if ($change) { $dseen++; $change = "$_\n"; chop($_ = &q(<<"EOT")); : <<--#ifdef PRINTIT : $space\$printit = 0; : <<--#endif : ${space}next LINE; EOT $sawnext++; } last; } if (/^s/) { $delim = substr($_,1,1); $len = length($_); $repl = $end = 0; $inbracket = 0; for ($i = 2; $i < $len; $i++) { $c = substr($_,$i,1); if ($c eq $delim) { if ($inbracket) { substr($_, $i, 0) = '\\'; $i++; $len++; } else { if ($repl) { $end = $i; last; } else { $repl = $i; } } } elsif ($c eq '\\') { $i++; if ($i >= $len) { $_ .= 'n'; $_ .= <>; $len = length($_); $_ = substr($_,0,--$len); } elsif (substr($_,$i,1) =~ /^[n]$/) { ; } elsif (!$repl && substr($_,$i,1) =~ /^[(){}\w]$/) { $i--; $len--; substr($_, $i, 1) = ''; } elsif (!$repl && substr($_,$i,1) =~ /^[<>]$/) { substr($_,$i,1) = 'b'; } elsif ($repl && substr($_,$i,1) =~ /^\d$/) { substr($_,$i-1,1) = '$'; } } elsif ($c eq '&' && $repl) { substr($_, $i, 0) = '$'; $i++; $len++; } elsif ($c eq '$' && $repl) { substr($_, $i, 0) = '\\'; $i++; $len++; } elsif ($c eq '[' && !$repl) { $i++ if substr($_,$i,1) eq '^'; $i++ if substr($_,$i,1) eq ']'; $inbracket = 1; } elsif ($c eq ']') { $inbracket = 0; } elsif ($c eq "\t") { substr($_, $i, 1) = '\\t'; $i++; $len++; } elsif (!$repl && index("()+",$c) >= 0) { substr($_, $i, 0) = '\\'; $i++; $len++; } } &Die("Malformed substitution at line $.\n") unless $end; $pat = substr($_, 0, $repl + 1); $repl = substr($_, $repl+1, $end-$repl-1); $end = substr($_, $end + 1, 1000); &simplify($pat); $subst = "$pat$repl$delim"; $cmd = ''; while ($end) { if ($end =~ s/^g//) { $subst .= 'g'; next; } if ($end =~ s/^p//) { $cmd .= ' && (print)'; next; } if ($end =~ s/^w[ \t]*//) { $fh = &make_filehandle($end); $cmd .= " && (print $fh \$_)"; $end = ''; next; } &Die("Unrecognized substitution command". "($end) at line $.\n"); } chop ($_ = &q(<<"EOT")); : <<--#ifdef TSEEN : $subst && \$tflag++$cmd; : <<--#else : $subst$cmd; : <<--#endif EOT next; } if (/^p/) { $_ = 'print;'; next; } if (/^w/) { s/^w[ \t]*//; $fh = &make_filehandle($_); $_ = "print $fh \$_;"; next; } if (/^r/) { $appendseen++; s/^r[ \t]*//; $file = $_; $_ = "\$atext .= `cat $file 2>/dev/null`;"; next; } if (/^P/) { $_ = 'print $1 if /^(.*)/;'; next; } if (/^D/) { chop($_ = &q(<<'EOT')); : s/^.*\n?//; : redo LINE if $_; : next LINE; EOT $sawnext++; next; } if (/^N/) { chop($_ = &q(<<'EOT')); : $_ .= "\n"; : $len1 = length; : $_ .= <>; : chop if $len1 < length; : <<--#ifdef TSEEN : $tflag = 0; : <<--#endif EOT next; } if (/^h/) { $_ = '$hold = $_;'; next; } if (/^H/) { $_ = '$hold .= "\n", $hold .= $_;'; next; } if (/^g/) { $_ = '$_ = $hold;'; next; } if (/^G/) { $_ = '$_ .= "\n", $_ .= $hold;'; next; } if (/^x/) { $_ = '($_, $hold) = ($hold, $_);'; next; } if (/^b$/) { $_ = 'next LINE;'; $sawnext++; next; } if (/^b/) { s/^b[ \t]*//; $lab = &make_label($_); if ($lab eq $toplabel) { $_ = 'redo LINE;'; } else { $_ = "goto $lab;"; } next; } if (/^t$/) { $_ = 'next LINE if $tflag;'; $sawnext++; $tseen++; next; } if (/^t/) { s/^t[ \t]*//; $lab = &make_label($_); $_ = q/if ($tflag) {$tflag = 0; /; if ($lab eq $toplabel) { $_ .= 'redo LINE;}'; } else { $_ .= "goto $lab;}"; } $tseen++; next; } if (/^y/) { s/abcdefghijklmnopqrstuvwxyz/a-z/g; s/ABCDEFGHIJKLMNOPQRSTUVWXYZ/A-Z/g; s/abcdef/a-f/g; s/ABCDEF/A-F/g; s/0123456789/0-9/g; s/01234567/0-7/g; $_ .= ';'; } if (/^=/) { $_ = 'print $.;'; next; } if (/^q/) { chop($_ = &q(<<'EOT')); : close(ARGV); : @ARGV = (); : next LINE; EOT $sawnext++; next; } } continue { if ($space) { s/^/$space/; s/(\n)(.)/$1$space$2/g; } last; } $_; } sub fetchpat { local($outer) = @_; local($addr) = $outer; local($inbracket); local($prefix,$delim,$ch); # Process pattern one potential delimiter at a time. DELIM: while (s#^([^\]+(|)[\\/]*)([]+(|)[\\/])##) { $prefix = $1; $delim = $2; if ($delim eq '\\') { s/(.)//; $ch = $1; $delim = '' if $ch =~ /^[(){}A-Za-mo-z]$/; $ch = 'b' if $ch =~ /^[<>]$/; $delim .= $ch; } elsif ($delim eq '[') { $inbracket = 1; s/^\^// && ($delim .= '^'); s/^]// && ($delim .= ']'); } elsif ($delim eq ']') { $inbracket = 0; } elsif ($inbracket || $delim ne $outer) { $delim = '\\' . $delim; } $addr .= $prefix; $addr .= $delim; if ($delim eq $outer && !$inbracket) { last DELIM; } } $addr =~ s/\t/\\t/g; &simplify($addr); $addr; } sub q { local($string) = @_; local($*) = 1; $string =~ s/^:\t?//g; $string; } sub simplify { $_[0] =~ s/_a-za-z0-9/\\w/ig; $_[0] =~ s/a-z_a-z0-9/\\w/ig; $_[0] =~ s/a-za-z_0-9/\\w/ig; $_[0] =~ s/a-za-z0-9_/\\w/ig; $_[0] =~ s/_0-9a-za-z/\\w/ig; $_[0] =~ s/0-9_a-za-z/\\w/ig; $_[0] =~ s/0-9a-z_a-z/\\w/ig; $_[0] =~ s/0-9a-za-z_/\\w/ig; $_[0] =~ s/\[\\w\]/\\w/g; $_[0] =~ s/\[^\\w\]/\\W/g; $_[0] =~ s/\[0-9\]/\\d/g; $_[0] =~ s/\[^0-9\]/\\D/g; $_[0] =~ s/\\d\\d\*/\\d+/g; $_[0] =~ s/\\D\\D\*/\\D+/g; $_[0] =~ s/\\w\\w\*/\\w+/g; $_[0] =~ s/\\t\\t\*/\\t+/g; $_[0] =~ s/(\[.[^]]*\])\1\*/$1+/g; $_[0] =~ s/([\w\s!@#%^&-=,:;'"])\1\*/$1+/g; } sub skip { local($level) = 0; while() { /^#ifdef/ && $level++; /^#else/ && !$level && return; /^#endif/ && !$level-- && return; } die "Unterminated `#ifdef' conditional\n"; } ( kE4Zm6@n;76:196./usr/opt/perl5/bin/splaintomm#!/usr/opt/perl5/bin/perl eval 'exec /usr/opt/perl5/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; =head1 NAME diagnostics - Perl compiler pragma to force verbose warning diagnostics splain - standalone program to do the same thing =head1 SYNOPSIS As a pragma: use diagnostics; use diagnostics -verbose; enable diagnostics; disable diagnostics; Aa a program: perl program 2>diag.out splain [-v] [-p] diag.out =head1 DESCRIPTION =head2 The C Pragma This module extends the terse diagnostics normally emitted by both the perl compiler and the perl interpreter, augmenting them with the more explicative and endearing descriptions found in L. Like the other pragmata, it affects the compilation phase of your program rather than merely the execution phase. To use in your program as a pragma, merely invoke use diagnostics; at the start (or near the start) of your program. (Note that this I enable perl's B<-w> flag.) Your whole compilation will then be subject(ed :-) to the enhanced diagnostics. These still go out B. Due to the interaction between runtime and compiletime issues, and because it's probably not a very good idea anyway, you may not use C to turn them off at compiletime. However, you may control there behaviour at runtime using the disable() and enable() methods to turn them off and on respectively. The B<-verbose> flag first prints out the L introduction before any other diagnostics. The $diagnostics::PRETTY variable can generate nicer escape sequences for pagers. =head2 The I Program While apparently a whole nuther program, I is actually nothing more than a link to the (executable) F module, as well as a link to the F documentation. The B<-v> flag is like the C directive. The B<-p> flag is like the $diagnostics::PRETTY variable. Since you're post-processing with I, there's no sense in being able to enable() or disable() processing. Output from I is directed to B, unlike the pragma. =head1 EXAMPLES The following file is certain to trigger a few errors at both runtime and compiletime: use diagnostics; print NOWHERE "nothing\n"; print STDERR "\n\tThis message should be unadorned.\n"; warn "\tThis is a user warning"; print "\nDIAGNOSTIC TESTER: Please enter a here: "; my $a, $b = scalar ; print "\n"; print $x/$y; If you prefer to run your program first and look at its problem afterwards, do this: perl -w test.pl 2>test.out ./splain < test.out Note that this is not in general possible in shells of more dubious heritage, as the theoretical (perl -w test.pl >/dev/tty) >& test.out ./splain < test.out Because you just moved the existing B to somewhere else. If you don't want to modify your source code, but still have on-the-fly warnings, do this: exec 3>&1; perl -w test.pl 2>&1 1>&3 3>&- | splain 1>&2 3>&- Nifty, eh? If you want to control warnings on the fly, do something like this. Make sure you do the C first, or you won't be able to get at the enable() or disable() methods. use diagnostics; # checks entire compilation phase print "\ntime for 1st bogus diags: SQUAWKINGS\n"; print BOGUS1 'nada'; print "done with 1st bogus\n"; disable diagnostics; # only turns off runtime warnings print "\ntime for 2nd bogus: (squelched)\n"; print BOGUS2 'nada'; print "done with 2nd bogus\n"; enable diagnostics; # turns back on runtime warnings print "\ntime for 3rd bogus: SQUAWKINGS\n"; print BOGUS3 'nada'; print "done with 3rd bogus\n"; disable diagnostics; print "\ntime for 4th bogus: (squelched)\n"; print BOGUS4 'nada'; print "done with 4th bogus\n"; =head1 INTERNALS Diagnostic messages derive from the F file when available at runtime. Otherwise, they may be embedded in the file itself when the splain package is built. See the F for details. If an extant $SIG{__WARN__} handler is discovered, it will continue to be honored, but only after the diagnostics::splainthis() function (the module's $SIG{__WARN__} interceptor) has had its way with your warnings. There is a $diagnostics::DEBUG variable you may set if you're desperately curious what sorts of things are being intercepted. BEGIN { $diagnostics::DEBUG = 1 } =head1 BUGS Not being able to say "no diagnostics" is annoying, but may not be insurmountable. The C<-pretty> directive is called too late to affect matters. You have to do this instead, and I you load the module. BEGIN { $diagnostics::PRETTY = 1 } I could start up faster by delaying compilation until it should be needed, but this gets a "panic: top_level" when using the pragma form in Perl 5.001e. While it's true that this documentation is somewhat subserious, if you use a program named I, you should expect a bit of whimsy. =head1 AUTHOR Tom Christiansen >, 25 June 1995. =cut require 5.001; use Carp; use Config; ($privlib, $archlib) = @Config{qw(privlibexp archlibexp)}; if ($^O eq 'VMS') { require VMS::Filespec; $privlib = VMS::Filespec::unixify($privlib); $archlib = VMS::Filespec::unixify($archlib); } @trypod = ("$archlib/pod/perldiag.pod", "$privlib/pod/perldiag-$].pod", "$privlib/pod/perldiag.pod"); # handy for development testing of new warnings etc unshift @trypod, "./pod/perldiag.pod" if -e "pod/perldiag.pod"; ($PODFILE) = ((grep { -e } @trypod), $trypod[$#trypod])[0]; $DEBUG ||= 0; my $WHOAMI = ref bless []; # nobody's business, prolly not even mine $| = 1; local $_; CONFIG: { $opt_p = $opt_d = $opt_v = $opt_f = ''; %HTML_2_Troff = %HTML_2_Latin_1 = %HTML_2_ASCII_7 = (); %exact_duplicate = (); unless (caller) { $standalone++; require Getopt::Std; Getopt::Std::getopts('pdvf:') or die "Usage: $0 [-v] [-p] [-f splainpod]"; $PODFILE = $opt_f if $opt_f; $DEBUG = 2 if $opt_d; $VERBOSE = $opt_v; $PRETTY = $opt_p; } if (open(POD_DIAG, $PODFILE)) { warn "Happy happy podfile from real $PODFILE\n" if $DEBUG; last CONFIG; } if (caller) { INCPATH: { for $file ( (map { "$_/$WHOAMI.pm" } @INC), $0) { warn "Checking $file\n" if $DEBUG; if (open(POD_DIAG, $file)) { while () { next unless /^__END__\s*# wish diag dbase were more accessible/; print STDERR "podfile is $file\n" if $DEBUG; last INCPATH; } } } } } else { print STDERR "podfile is \n" if $DEBUG; *POD_DIAG = *main::DATA; } } if (eof(POD_DIAG)) { die "couldn't find diagnostic data in $PODFILE @INC $0"; } %HTML_2_Troff = ( 'amp' => '&', # ampersand 'lt' => '<', # left chevron, less-than 'gt' => '>', # right chevron, greater-than 'quot' => '"', # double quote "Aacute" => "A\\*'", # capital A, acute accent # etc ); %HTML_2_Latin_1 = ( 'amp' => '&', # ampersand 'lt' => '<', # left chevron, less-than 'gt' => '>', # right chevron, greater-than 'quot' => '"', # double quote "Aacute" => "\xC1" # capital A, acute accent # etc ); %HTML_2_ASCII_7 = ( 'amp' => '&', # ampersand 'lt' => '<', # left chevron, less-than 'gt' => '>', # right chevron, greater-than 'quot' => '"', # double quote "Aacute" => "A" # capital A, acute accent # etc ); *HTML_Escapes = do { if ($standalone) { $PRETTY ? \%HTML_2_Latin_1 : \%HTML_2_ASCII_7; } else { \%HTML_2_Latin_1; } }; *THITHER = $standalone ? *STDOUT : *STDERR; $transmo = <) { #s/(.*)\n//; #$header = $1; unescape(); if ($PRETTY) { sub noop { return $_[0] } # spensive for a noop sub bold { my $str =$_[0]; $str =~ s/(.)/$1\b$1/g; return $str; } sub italic { my $str = $_[0]; $str =~ s/(.)/_\b$1/g; return $str; } s/[BC]<(.*?)>/bold($1)/ges; s/[LIF]<(.*?)>/italic($1)/ges; } else { s/[BC]<(.*?)>/$1/gs; s/[LIF]<(.*?)>/$1/gs; } unless (/^=/) { if (defined $header) { if ( $header eq 'DESCRIPTION' && ( /Optional warnings are enabled/ || /Some of these messages are generic./ ) ) { next; } s/^/ /gm; $msg{$header} .= $_; } next; } unless ( s/=item (.*)\s*\Z//) { if ( s/=head1\sDESCRIPTION//) { $msg{$header = 'DESCRIPTION'} = ''; } next; } # strip formatting directives in =item line ($header = $1) =~ s/[A-Z]<(.*?)>/$1/g; if ($header =~ /%[sd]/) { $rhs = $lhs = $header; #if ($lhs =~ s/(.*?)%d(?!%d)(.*)/\Q$1\E\\d+\Q$2\E\$/g) { if ($lhs =~ s/(.*?)%d(?!%d)(.*)/\Q$1\E\\d+\Q$2\E/g) { $lhs =~ s/\\%s/.*?/g; } else { # if i had lookbehind negations, i wouldn't have to do this \377 noise $lhs =~ s/(.*?)%s/\Q$1\E.*?\377/g; #$lhs =~ s/\377([^\377]*)$/\Q$1\E\$/; $lhs =~ s/\377([^\377]*)$/\Q$1\E/; $lhs =~ s/\377//g; $lhs =~ s/\.\*\?$/.*/; # Allow %s at the end to eat it all } $transmo .= " s{^$lhs}\n {\Q$rhs\E}s\n\t&& return 1;\n"; } else { $transmo .= " m{^\Q$header\E} && return 1;\n"; } print STDERR "$WHOAMI: Duplicate entry: \"$header\"\n" if $msg{$header}; $msg{$header} = ''; } close POD_DIAG unless *main::DATA eq *POD_DIAG; die "No diagnostics?" unless %msg; $transmo .= " return 0;\n}\n"; print STDERR $transmo if $DEBUG; eval $transmo; die $@ if $@; $RS = "\n"; ### } if ($standalone) { if (!@ARGV and -t STDIN) { print STDERR "$0: Reading from STDIN\n" } while (defined ($error = <>)) { splainthis($error) || print THITHER $error; } exit; } else { $old_w = 0; $oldwarn = ''; $olddie = ''; } sub import { shift; $old_w = $^W; $^W = 1; # yup, clobbered the global variable; tough, if you # want diags, you want diags. return if $SIG{__WARN__} eq \&warn_trap; for (@_) { /^-d(ebug)?$/ && do { $DEBUG++; next; }; /^-v(erbose)?$/ && do { $VERBOSE++; next; }; /^-p(retty)?$/ && do { print STDERR "$0: I'm afraid it's too late for prettiness.\n"; $PRETTY++; next; }; warn "Unknown flag: $_"; } $oldwarn = $SIG{__WARN__}; $olddie = $SIG{__DIE__}; $SIG{__WARN__} = \&warn_trap; $SIG{__DIE__} = \&death_trap; } sub enable { &import } sub disable { shift; $^W = $old_w; return unless $SIG{__WARN__} eq \&warn_trap; $SIG{__WARN__} = $oldwarn; $SIG{__DIE__} = $olddie; } sub warn_trap { my $warning = $_[0]; if (caller eq $WHOAMI or !splainthis($warning)) { print STDERR $warning; } &$oldwarn if defined $oldwarn and $oldwarn and $oldwarn ne \&warn_trap; }; sub death_trap { my $exception = $_[0]; # See if we are coming from anywhere within an eval. If so we don't # want to explain the exception because it's going to get caught. my $in_eval = 0; my $i = 0; while (1) { my $caller = (caller($i++))[3] or last; if ($caller eq '(eval)') { $in_eval = 1; last; } } splainthis($exception) unless $in_eval; if (caller eq $WHOAMI) { print STDERR "INTERNAL EXCEPTION: $exception"; } &$olddie if defined $olddie and $olddie and $olddie ne \&death_trap; # We don't want to unset these if we're coming from an eval because # then we've turned off diagnostics. (Actually what does this next # line do? -PSeibel) $SIG{__DIE__} = $SIG{__WARN__} = '' unless $in_eval; local($Carp::CarpLevel) = 1; confess "Uncaught exception from user code:\n\t$exception"; # up we go; where we stop, nobody knows, but i think we die now # but i'm deeply afraid of the &$olddie guy reraising and us getting # into an indirect recursion loop }; sub splainthis { local $_ = shift; local $\; ### &finish_compilation unless %msg; s/\.?\n+$//; my $orig = $_; # return unless defined; if ($exact_duplicate{$_}++) { return 1; } s/, <.*?> (?:line|chunk).*$//; $real = s/(.*?) at .*? (?:line|chunk) \d+.*/$1/; s/^\((.*)\)$/$1/; return 0 unless &transmo; $orig = shorten($orig); if ($old_diag{$_}) { autodescribe(); print THITHER "$orig (#$old_diag{$_})\n"; $wantspace = 1; } else { autodescribe(); $old_diag{$_} = ++$count; print THITHER "\n" if $wantspace; $wantspace = 0; print THITHER "$orig (#$old_diag{$_})\n"; if ($msg{$_}) { print THITHER $msg{$_}; } else { if (0 and $standalone) { print THITHER " **** Error #$old_diag{$_} ", ($real ? "is" : "appears to be"), " an unknown diagnostic message.\n\n"; } return 0; } } return 1; } sub autodescribe { if ($VERBOSE and not $count) { print THITHER &{$PRETTY ? \&bold : \&noop}("DESCRIPTION OF DIAGNOSTICS"), "\n$msg{DESCRIPTION}\n"; } } sub unescape { s { E< ( [A-Za-z]+ ) > } { do { exists $HTML_Escapes{$1} ? do { $HTML_Escapes{$1} } : do { warn "Unknown escape: E<$1> in $_"; "E<$1>"; } } }egx; } sub shorten { my $line = $_[0]; if (length($line) > 79 and index($line, "\n") == -1) { my $space_place = rindex($line, ' ', 79); if ($space_place != -1) { substr($line, $space_place, 1) = "\n\t"; } } return $line; } # have to do this: RS isn't set until run time, but we're executing at compile time $RS = "\n"; 1 unless $standalone; # or it'll complain about itself __END__ # wish diag dbase were more accessible fined ( k $ @n; 76:1< ./usr/opt/perl5/lib/5.00503/AnyDBM_File.pmg$$package AnyDBM_File; use vars qw(@ISA); @ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA; my $mod; for $mod (@ISA) { if (eval "require $mod") { @ISA = ($mod); # if we leave @ISA alone, warnings abound return 1; } } die "No DBM package was successfully found or installed"; #return 0; =head1 NAME AnyDBM_File - provide framework for multiple DBMs NDBM_File, DB_File, GDBM_File, SDBM_File, ODBM_File - various DBM implementations =head1 SYNOPSIS use AnyDBM_File; =head1 DESCRIPTION This module is a "pure virtual base class"--it has nothing of its own. It's just there to inherit from one of the various DBM packages. It prefers ndbm for compatibility reasons with Perl 4, then Berkeley DB (See L), GDBM, SDBM (which is always there--it comes with Perl), and finally ODBM. This way old programs that used to use NDBM via dbmopen() can still do so, but new ones can reorder @ISA: BEGIN { @AnyDBM_File::ISA = qw(DB_File GDBM_File NDBM_File) } use AnyDBM_File; Having multiple DBM implementations makes it trivial to copy database formats: use POSIX; use NDBM_File; use DB_File; tie %newhash, 'DB_File', $new_filename, O_CREAT|O_RDWR; tie %oldhash, 'NDBM_File', $old_filename, 1, 0; %newhash = %oldhash; =head2 DBM Comparisons Here's a partial table of features the different packages offer: odbm ndbm sdbm gdbm bsd-db ---- ---- ---- ---- ------ Linkage comes w/ perl yes yes yes yes yes Src comes w/ perl no no yes no no Comes w/ many unix os yes yes[0] no no no Builds ok on !unix ? ? yes yes ? Code Size ? ? small big big Database Size ? ? small big? ok[1] Speed ? ? slow ok fast FTPable no no yes yes yes Easy to build N/A N/A yes yes ok[2] Size limits 1k 4k 1k[3] none none Byte-order independent no no no no yes Licensing restrictions ? ? no yes no =over 4 =item [0] on mixed universe machines, may be in the bsd compat library, which is often shunned. =item [1] Can be trimmed if you compile for one access method. =item [2] See L. Requires symbolic links. =item [3] By default, but can be redefined. =back =head1 SEE ALSO dbm(3), ndbm(3), DB_File(3) =cut .0+ k$&An; 76:1C&./usr/opt/perl5/lib/5.00503/AutoLoader.pmg$$package AutoLoader; use vars qw(@EXPORT @EXPORT_OK); my $is_dosish; my $is_vms; BEGIN { require Exporter; @EXPORT = (); @EXPORT_OK = qw(AUTOLOAD); $is_dosish = $^O eq 'dos' || $^O eq 'os2' || $^O eq 'MSWin32'; $is_vms = $^O eq 'VMS'; } AUTOLOAD { my $name; # Braces used to preserve $1 et al. { # Try to find the autoloaded file from the package-qualified # name of the sub. e.g., if the sub needed is # Getopt::Long::GetOptions(), then $INC{Getopt/Long.pm} is # something like '/usr/lib/perl5/Getopt/Long.pm', and the # autoload file is '/usr/lib/perl5/auto/Getopt/Long/GetOptions.al'. # # However, if @INC is a relative path, this might not work. If, # for example, @INC = ('lib'), then $INC{Getopt/Long.pm} is # 'lib/Getopt/Long.pm', and we want to require # 'auto/Getopt/Long/GetOptions.al' (without the leading 'lib'). # In this case, we simple prepend the 'auto/' and let the # C take care of the searching for us. my ($pkg,$func) = $AUTOLOAD =~ /(.*)::([^:]+)$/; $pkg =~ s#::#/#g; if (defined($name=$INC{"$pkg.pm"})) { $name =~ s#^(.*)$pkg\.pm$#$1auto/$pkg/$func.al#; # if the file exists, then make sure that it is a # a fully anchored path (i.e either '/usr/lib/auto/foo/bar.al', # or './lib/auto/foo/bar.al'. This avoids C searching # (and failing) to find the 'lib/auto/foo/bar.al' because it # looked for 'lib/lib/auto/foo/bar.al', given @INC = ('lib'). if (-r $name) { unless ($name =~ m|^/|) { if ($is_dosish) { unless ($name =~ m{^([a-z]:)?[\\/]}i) { $name = "./$name"; } } elsif ($is_vms) { # XXX todo by VMSmiths $name = "./$name"; } else { $name = "./$name"; } } } else { $name = undef; } } unless (defined $name) { # let C do the searching $name = "auto/$AUTOLOAD.al"; $name =~ s#::#/#g; } } my $save = $@; eval { local $SIG{__DIE__}; require $name }; if ($@) { if (substr($AUTOLOAD,-9) eq '::DESTROY') { *$AUTOLOAD = sub {}; } else { # The load might just have failed because the filename was too # long for some old SVR3 systems which treat long names as errors. # If we can succesfully truncate a long name then it's worth a go. # There is a slight risk that we could pick up the wrong file here # but autosplit should have warned about that when splitting. if ($name =~ s/(\w{12,})\.al$/substr($1,0,11).".al"/e){ eval {local $SIG{__DIE__};require $name}; } if ($@){ $@ =~ s/ at .*\n//; my $error = $@; require Carp; Carp::croak($error); } } } $@ = $save; goto &$AUTOLOAD; } sub import { my $pkg = shift; my $callpkg = caller; # # Export symbols, but not by accident of inheritance. # Exporter::export $pkg, $callpkg, @_ if $pkg eq 'AutoLoader'; # # Try to find the autosplit index file. Eg., if the call package # is POSIX, then $INC{POSIX.pm} is something like # '/usr/local/lib/perl5/POSIX.pm', and the autosplit index file is in # '/usr/local/lib/perl5/auto/POSIX/autosplit.ix', so we require that. # # However, if @INC is a relative path, this might not work. If, # for example, @INC = ('lib'), then # $INC{POSIX.pm} is 'lib/POSIX.pm', and we want to require # 'auto/POSIX/autosplit.ix' (without the leading 'lib'). # (my $calldir = $callpkg) =~ s#::#/#g; my $path = $INC{$calldir . '.pm'}; if (defined($path)) { # Try absolute path name. $path =~ s#^(.*)$calldir\.pm$#$1auto/$calldir/autosplit.ix#; eval { require $path; }; # If that failed, try relative path with normal @INC searching. if ($@) { $path ="auto/$calldir/autosplit.ix"; eval { require $path; }; } if ($@) { my $error = $@; require Carp; Carp::carp($error); } } } 1; __END__ =head1 NAME AutoLoader - load subroutines only on demand =head1 SYNOPSIS package Foo; use AutoLoader 'AUTOLOAD'; # import the default AUTOLOAD subroutine package Bar; use AutoLoader; # don't import AUTOLOAD, define our own sub AUTOLOAD { ... $AutoLoader::AUTOLOAD = "..."; goto &AutoLoader::AUTOLOAD; } =head1 DESCRIPTION The B module works with the B module and the C<__END__> token to defer the loading of some subroutines until they are used rather than loading them all at once. To use B, the author of a module has to place the definitions of subroutines to be autoloaded after an C<__END__> token. (See L.) The B module can then be run manually to extract the definitions into individual files F. B implements an AUTOLOAD subroutine. When an undefined subroutine in is called in a client module of B, B's AUTOLOAD subroutine attempts to locate the subroutine in a file with a name related to the location of the file from which the client module was read. As an example, if F is located in F, B will look for perl subroutines B in F, where the C<.al> file has the same name as the subroutine, sans package. If such a file exists, AUTOLOAD will read and evaluate it, thus (presumably) defining the needed subroutine. AUTOLOAD will then C the newly defined subroutine. Once this process completes for a given function, it is defined, so future calls to the subroutine will bypass the AUTOLOAD mechanism. =head2 Subroutine Stubs In order for object method lookup and/or prototype checking to operate correctly even when methods have not yet been defined it is necessary to "forward declare" each subroutine (as in C). See L. Such forward declaration creates "subroutine stubs", which are place holders with no code. The AutoSplit and B modules automate the creation of forward declarations. The AutoSplit module creates an 'index' file containing forward declarations of all the AutoSplit subroutines. When the AutoLoader module is 'use'd it loads these declarations into its callers package. Because of this mechanism it is important that B is always Cd and not Cd. =head2 Using B's AUTOLOAD Subroutine In order to use B's AUTOLOAD subroutine you I explicitly import it: use AutoLoader 'AUTOLOAD'; =head2 Overriding B's AUTOLOAD Subroutine Some modules, mainly extensions, provide their own AUTOLOAD subroutines. They typically need to check for some special cases (such as constants) and then fallback to B's AUTOLOAD for the rest. Such modules should I import B's AUTOLOAD subroutine. Instead, they should define their own AUTOLOAD subroutines along these lines: use AutoLoader; use Carp; sub AUTOLOAD { my $constname; ($constname = $AUTOLOAD) =~ s/.*:://; my $val = constant($constname, @_ ? $_[0] : 0); if ($! != 0) { if ($! =~ /Invalid/) { $AutoLoader::AUTOLOAD = $AUTOLOAD; goto &AutoLoader::AUTOLOAD; } else { croak "Your vendor has not defined constant $constname"; } } *$AUTOLOAD = sub { $val }; # same as: eval "sub $AUTOLOAD { $val }"; goto &$AUTOLOAD; } If any module's own AUTOLOAD subroutine has no need to fallback to the AutoLoader's AUTOLOAD subroutine (because it doesn't have any AutoSplit subroutines), then that module should not use B at all. =head2 Package Lexicals Package lexicals declared with C in the main block of a package using B will not be visible to auto-loaded subroutines, due to the fact that the given scope ends at the C<__END__> marker. A module using such variables as package globals will not work properly under the B. The C pragma (see L) may be used in such situations as an alternative to explicitly qualifying all globals with the package namespace. Variables pre-declared with this pragma will be visible to any autoloaded routines (but will not be invisible outside the package, unfortunately). =head2 B vs. B The B is similar in purpose to B: both delay the loading of subroutines. B uses the C<__DATA__> marker rather than C<__END__>. While this avoids the use of a hierarchy of disk files and the associated open/close for each routine loaded, B suffers a startup speed disadvantage in the one-time parsing of the lines after C<__DATA__>, after which routines are cached. B can also handle multiple packages in a file. B only reads code as it is requested, and in many cases should be faster, but requires a mechanism like B be used to create the individual files. L will invoke B automatically if B is used in a module source file. =head1 CAVEATS AutoLoaders prior to Perl 5.002 had a slightly different interface. Any old modules which use B should be changed to the new calling style. Typically this just means changing a require to a use, adding the explicit C<'AUTOLOAD'> import if needed, and removing B from C<@ISA>. On systems with restrictions on file name length, the file corresponding to a subroutine may have a shorter name that the routine itself. This can lead to conflicting file names. The I package warns of these potential conflicts when used to split a module. AutoLoader may fail to find the autosplit files (or even find the wrong ones) in cases where C<@INC> contains relative paths, B the program does C. =head1 SEE ALSO L - an autoloader that doesn't use external files. =cut ecla kL$7An; 76:1I7./usr/opt/perl5/lib/5.00503/AutoSplit.pmg$$package AutoSplit; use Exporter (); use Config qw(%Config); use Carp qw(carp); use File::Basename (); use File::Path qw(mkpath); use strict; use vars qw( $VERSION @ISA @EXPORT @EXPORT_OK $Verbose $Keep $Maxlen $CheckForAutoloader $CheckModTime ); $VERSION = "1.0303"; @ISA = qw(Exporter); @EXPORT = qw(&autosplit &autosplit_lib_modules); @EXPORT_OK = qw($Verbose $Keep $Maxlen $CheckForAutoloader $CheckModTime); =head1 NAME AutoSplit - split a package for autoloading =head1 SYNOPSIS autosplit($file, $dir, $keep, $check, $modtime); autosplit_lib_modules(@modules); =head1 DESCRIPTION This function will split up your program into files that the AutoLoader module can handle. It is used by both the standard perl libraries and by the MakeMaker utility, to automatically configure libraries for autoloading. The C interface splits the specified file into a hierarchy rooted at the directory C<$dir>. It creates directories as needed to reflect class hierarchy, and creates the file F. This file acts as both forward declaration of all package routines, and as timestamp for the last update of the hierarchy. The remaining three arguments to C govern other options to the autosplitter. =over 2 =item $keep If the third argument, I<$keep>, is false, then any pre-existing C<*.al> files in the autoload directory are removed if they are no longer part of the module (obsoleted functions). $keep defaults to 0. =item $check The fourth argument, I<$check>, instructs C to check the module currently being split to ensure that it does include a C specification for the AutoLoader module, and skips the module if AutoLoader is not detected. $check defaults to 1. =item $modtime Lastly, the I<$modtime> argument specifies that C is to check the modification time of the module against that of the C file, and only split the module if it is newer. $modtime defaults to 1. =back Typical use of AutoSplit in the perl MakeMaker utility is via the command-line with: perl -e 'use AutoSplit; autosplit($ARGV[0], $ARGV[1], 0, 1, 1)' Defined as a Make macro, it is invoked with file and directory arguments; C will split the specified file into the specified directory and delete obsolete C<.al> files, after checking first that the module does use the AutoLoader, and ensuring that the module is not already currently split in its current form (the modtime test). The C form is used in the building of perl. It takes as input a list of files (modules) that are assumed to reside in a directory B relative to the current directory. Each file is sent to the autosplitter one at a time, to be split into the directory B. In both usages of the autosplitter, only subroutines defined following the perl I<__END__> token are split out into separate files. Some routines may be placed prior to this marker to force their immediate loading and parsing. =head2 Multiple packages As of version 1.01 of the AutoSplit module it is possible to have multiple packages within a single file. Both of the following cases are supported: package NAME; __END__ sub AAA { ... } package NAME::option1; sub BBB { ... } package NAME::option2; sub BBB { ... } package NAME; __END__ sub AAA { ... } sub NAME::option1::BBB { ... } sub NAME::option2::BBB { ... } =head1 DIAGNOSTICS C will inform the user if it is necessary to create the top-level directory specified in the invocation. It is preferred that the script or installation process that invokes C have created the full directory path ahead of time. This warning may indicate that the module is being split into an incorrect path. C will warn the user of all subroutines whose name causes potential file naming conflicts on machines with drastically limited (8 characters or less) file name length. Since the subroutine name is used as the file name, these warnings can aid in portability to such systems. Warnings are issued and the file skipped if C cannot locate either the I<__END__> marker or a "package Name;"-style specification. C will also emit general diagnostics for inability to create directories or files. =cut # for portability warn about names longer than $maxlen $Maxlen = 8; # 8 for dos, 11 (14-".al") for SYSVR3 $Verbose = 1; # 0=none, 1=minimal, 2=list .al files $Keep = 0; $CheckForAutoloader = 1; $CheckModTime = 1; my $IndexFile = "autosplit.ix"; # file also serves as timestamp my $maxflen = 255; $maxflen = 14 if $Config{'d_flexfnam'} ne 'define'; if (defined (&Dos::UseLFN)) { $maxflen = Dos::UseLFN() ? 255 : 11; } my $Is_VMS = ($^O eq 'VMS'); sub autosplit{ my($file, $autodir, $keep, $ckal, $ckmt) = @_; # $file - the perl source file to be split (after __END__) # $autodir - the ".../auto" dir below which to write split subs # Handle optional flags: $keep = $Keep unless defined $keep; $ckal = $CheckForAutoloader unless defined $ckal; $ckmt = $CheckModTime unless defined $ckmt; autosplit_file($file, $autodir, $keep, $ckal, $ckmt); } # This function is used during perl building/installation # ./miniperl -e 'use AutoSplit; autosplit_lib_modules(@ARGV)' ... sub autosplit_lib_modules{ my(@modules) = @_; # list of Module names while(defined($_ = shift @modules)){ s#::#/#g; # incase specified as ABC::XYZ s|\\|/|g; # bug in ksh OS/2 s#^lib/##; # incase specified as lib/*.pm if ($Is_VMS && /[:>\]]/) { # may need to convert VMS-style filespecs my ($dir,$name) = (/(.*])(.*)/); $dir =~ s/.*lib[\.\]]//; $dir =~ s#[\.\]]#/#g; $_ = $dir . $name; } autosplit_file("lib/$_", "lib/auto", $Keep, $CheckForAutoloader, $CheckModTime); } 0; } # private functions sub autosplit_file { my($filename, $autodir, $keep, $check_for_autoloader, $check_mod_time) = @_; my(@outfiles); local($_); local($/) = "\n"; # where to write output files $autodir ||= "lib/auto"; if ($Is_VMS) { ($autodir = VMS::Filespec::unixpath($autodir)) =~ s|/$||; $filename = VMS::Filespec::unixify($filename); # may have dirs } unless (-d $autodir){ mkpath($autodir,0,0755); # We should never need to create the auto dir # here. installperl (or similar) should have done # it. Expecting it to exist is a valuable sanity check against # autosplitting into some random directory by mistake. print "Warning: AutoSplit had to create top-level " . "$autodir unexpectedly.\n"; } # allow just a package name to be used $filename .= ".pm" unless ($filename =~ m/\.pm$/); open(IN, "<$filename") or die "AutoSplit: Can't open $filename: $!\n"; my($pm_mod_time) = (stat($filename))[9]; my($autoloader_seen) = 0; my($in_pod) = 0; my($def_package,$last_package,$this_package,$fnr); while () { # Skip pod text. $fnr++; $in_pod = 1 if /^=\w/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # record last package name seen $def_package = $1 if (m/^\s*package\s+([\w:]+)\s*;/); ++$autoloader_seen if m/^\s*(use|require)\s+AutoLoader\b/; ++$autoloader_seen if m/\bISA\s*=.*\bAutoLoader\b/; last if /^__END__/; } if ($check_for_autoloader && !$autoloader_seen){ print "AutoSplit skipped $filename: no AutoLoader used\n" if ($Verbose>=2); return 0; } $_ or die "Can't find __END__ in $filename\n"; $def_package or die "Can't find 'package Name;' in $filename\n"; my($modpname) = _modpname($def_package); # this _has_ to match so we have a reasonable timestamp file die "Package $def_package ($modpname.pm) does not ". "match filename $filename" unless ($filename =~ m/\Q$modpname.pm\E$/ or ($^O eq 'dos') or ($^O eq 'MSWin32') or $Is_VMS && $filename =~ m/$modpname.pm/i); my($al_idx_file) = "$autodir/$modpname/$IndexFile"; if ($check_mod_time){ my($al_ts_time) = (stat("$al_idx_file"))[9] || 1; if ($al_ts_time >= $pm_mod_time){ print "AutoSplit skipped ($al_idx_file newer than $filename)\n" if ($Verbose >= 2); return undef; # one undef, not a list } } print "AutoSplitting $filename ($autodir/$modpname)\n" if $Verbose; unless (-d "$autodir/$modpname"){ mkpath("$autodir/$modpname",0,0777); } # We must try to deal with some SVR3 systems with a limit of 14 # characters for file names. Sadly we *cannot* simply truncate all # file names to 14 characters on these systems because we *must* # create filenames which exactly match the names used by AutoLoader.pm. # This is a problem because some systems silently truncate the file # names while others treat long file names as an error. my $Is83 = $maxflen==11; # plain, case INSENSITIVE dos filenames my(@subnames, $subname, %proto, %package); my @cache = (); my $caching = 1; $last_package = ''; while () { $fnr++; $in_pod = 1 if /^=/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # the following (tempting) old coding gives big troubles if a # cut is forgotten at EOF: # next if /^=\w/ .. /^=cut/; if (/^package\s+([\w:]+)\s*;/) { $this_package = $def_package = $1; } if (/^sub\s+([\w:]+)(\s*\(.*?\))?/) { print OUT "# end of $last_package\::$subname\n1;\n" if $last_package; $subname = $1; my $proto = $2 || ''; if ($subname =~ s/(.*):://){ $this_package = $1; } else { $this_package = $def_package; } my $fq_subname = "$this_package\::$subname"; $package{$fq_subname} = $this_package; $proto{$fq_subname} = $proto; push(@subnames, $fq_subname); my($lname, $sname) = ($subname, substr($subname,0,$maxflen-3)); $modpname = _modpname($this_package); mkpath("$autodir/$modpname",0,0777); my($lpath) = "$autodir/$modpname/$lname.al"; my($spath) = "$autodir/$modpname/$sname.al"; my $path; if (!$Is83 and open(OUT, ">$lpath")){ $path=$lpath; print " writing $lpath\n" if ($Verbose>=2); } else { open(OUT, ">$spath") or die "Can't create $spath: $!\n"; $path=$spath; print " writing $spath (with truncated name)\n" if ($Verbose>=1); } push(@outfiles, $path); print OUT < lc($_) } @outfiles; } else { @outfiles{@outfiles} = @outfiles; } my(%outdirs,@outdirs); for (@outfiles) { $outdirs{File::Basename::dirname($_)}||=1; } for my $dir (keys %outdirs) { opendir(OUTDIR,$dir); foreach (sort readdir(OUTDIR)){ next unless /\.al$/; my($file) = "$dir/$_"; $file = lc $file if $Is83 or $Is_VMS; next if $outfiles{$file}; print " deleting $file\n" if ($Verbose>=2); my($deleted,$thistime); # catch all versions on VMS do { $deleted += ($thistime = unlink $file) } while ($thistime); carp "Unable to delete $file: $!" unless $deleted; } closedir(OUTDIR); } } open(TS,">$al_idx_file") or carp "AutoSplit: unable to create timestamp file ($al_idx_file): $!"; print TS "# Index created by AutoSplit for $filename\n"; print TS "# (file acts as timestamp)\n"; $last_package = ''; for my $fqs (@subnames) { my($subname) = $fqs; $subname =~ s/.*:://; print TS "package $package{$fqs};\n" unless $last_package eq $package{$fqs}; print TS "sub $subname $proto{$fqs};\n"; $last_package = $package{$fqs}; } print TS "1;\n"; close(TS); _check_unique($filename, $Maxlen, 1, @outfiles); @outfiles; } sub _modpname ($) { my($package) = @_; my $modpname = $package; if ($^O eq 'MSWin32') { $modpname =~ s#::#\\#g; } else { $modpname =~ s#::#/#g; } $modpname; } sub _check_unique { my($filename, $maxlen, $warn, @outfiles) = @_; my(%notuniq) = (); my(%shorts) = (); my(@toolong) = grep( length(File::Basename::basename($_)) > $maxlen, @outfiles ); foreach (@toolong){ my($dir) = File::Basename::dirname($_); my($file) = File::Basename::basename($_); my($trunc) = substr($file,0,$maxlen); $notuniq{$dir}{$trunc} = 1 if $shorts{$dir}{$trunc}; $shorts{$dir}{$trunc} = $shorts{$dir}{$trunc} ? "$shorts{$dir}{$trunc}, $file" : $file; } if (%notuniq && $warn){ print "$filename: some names are not unique when " . "truncated to $maxlen characters:\n"; foreach my $dir (sort keys %notuniq){ print " directory $dir:\n"; foreach my $trunc (sort keys %{$notuniq{$dir}}) { print " $shorts{$dir}{$trunc} truncate to $trunc\n"; } } } } 1; __END__ # test functions so AutoSplit.pm can be applied to itself: sub test1 ($) { "test 1\n"; } sub test2 ($$) { "test 2\n"; } sub test3 ($$$) { "test 3\n"; } sub testtesttesttest4_1 { "test 4\n"; } sub testtesttesttest4_2 { "duplicate test 4\n"; } sub Just::Another::test5 { "another test 5\n"; } sub test6 { return join ":", __FILE__,__LINE__; } package Yet::Another::AutoSplit; sub testtesttesttest4_1 ($) { "another test 4\n"; } sub testtesttesttest4_2 ($$) { "another duplicate test 4\n"; } >$sp k($P6An;76:1MP6./usr/opt/perl5/lib/5.00503/Benchmark.pmg$$package Benchmark; =head1 NAME Benchmark - benchmark running times of code timethis - run a chunk of code several times timethese - run several chunks of code several times timeit - run a chunk of code and see how long it goes =head1 SYNOPSIS timethis ($count, "code"); # Use Perl code in strings... timethese($count, { 'Name1' => '...code1...', 'Name2' => '...code2...', }); # ... or use subroutine references. timethese($count, { 'Name1' => sub { ...code1... }, 'Name2' => sub { ...code2... }, }); $t = timeit($count, '...other code...') print "$count loops of other code took:",timestr($t),"\n"; =head1 DESCRIPTION The Benchmark module encapsulates a number of routines to help you figure out how long it takes to execute some code. =head2 Methods =over 10 =item new Returns the current time. Example: use Benchmark; $t0 = new Benchmark; # ... your code here ... $t1 = new Benchmark; $td = timediff($t1, $t0); print "the code took:",timestr($td),"\n"; =item debug Enables or disable debugging by setting the C<$Benchmark::Debug> flag: debug Benchmark 1; $t = timeit(10, ' 5 ** $Global '); debug Benchmark 0; =back =head2 Standard Exports The following routines will be exported into your namespace if you use the Benchmark module: =over 10 =item timeit(COUNT, CODE) Arguments: COUNT is the number of times to run the loop, and CODE is the code to run. CODE may be either a code reference or a string to be eval'd; either way it will be run in the caller's package. Returns: a Benchmark object. =item timethis ( COUNT, CODE, [ TITLE, [ STYLE ]] ) Time COUNT iterations of CODE. CODE may be a string to eval or a code reference; either way the CODE will run in the caller's package. Results will be printed to STDOUT as TITLE followed by the times. TITLE defaults to "timethis COUNT" if none is provided. STYLE determines the format of the output, as described for timestr() below. The COUNT can be zero or negative: this means the I to run. A zero signifies the default of 3 seconds. For example to run at least for 10 seconds: timethis(-10, $code) or to run two pieces of code tests for at least 3 seconds: timethese(0, { test1 => '...', test2 => '...'}) CPU seconds is, in UNIX terms, the user time plus the system time of the process itself, as opposed to the real (wallclock) time and the time spent by the child processes. Less than 0.1 seconds is not accepted (-0.01 as the count, for example, will cause a fatal runtime exception). Note that the CPU seconds is the B time: CPU scheduling and other operating system factors may complicate the attempt so that a little bit more time is spent. The benchmark output will, however, also tell the number of C<$code> runs/second, which should be a more interesting number than the actually spent seconds. Returns a Benchmark object. =item timethese ( COUNT, CODEHASHREF, [ STYLE ] ) The CODEHASHREF is a reference to a hash containing names as keys and either a string to eval or a code reference for each value. For each (KEY, VALUE) pair in the CODEHASHREF, this routine will call timethis(COUNT, VALUE, KEY, STYLE) The routines are called in string comparison order of KEY. The COUNT can be zero or negative, see timethis(). =item timediff ( T1, T2 ) Returns the difference between two Benchmark times as a Benchmark object suitable for passing to timestr(). =item timesum ( T1, T2 ) Returns the sum of two Benchmark times as a Benchmark object suitable for passing to timestr(). =item timestr ( TIMEDIFF, [ STYLE, [ FORMAT ] ] ) Returns a string that formats the times in the TIMEDIFF object in the requested STYLE. TIMEDIFF is expected to be a Benchmark object similar to that returned by timediff(). STYLE can be any of 'all', 'noc', 'nop' or 'auto'. 'all' shows each of the 5 times available ('wallclock' time, user time, system time, user time of children, and system time of children). 'noc' shows all except the two children times. 'nop' shows only wallclock and the two children times. 'auto' (the default) will act as 'all' unless the children times are both zero, in which case it acts as 'noc'. FORMAT is the L-style format specifier (without the leading '%') to use to print the times. It defaults to '5.2f'. =back =head2 Optional Exports The following routines will be exported into your namespace if you specifically ask that they be imported: =over 10 =item clearcache ( COUNT ) Clear the cached time for COUNT rounds of the null loop. =item clearallcache ( ) Clear all cached times. =item disablecache ( ) Disable caching of timings for the null loop. This will force Benchmark to recalculate these timings for each new piece of code timed. =item enablecache ( ) Enable caching of timings for the null loop. The time taken for COUNT rounds of the null loop will be calculated only once for each different COUNT used. =back =head1 NOTES The data is stored as a list of values from the time and times functions: ($real, $user, $system, $children_user, $children_system) in seconds for the whole loop (not divided by the number of rounds). The timing is done using time(3) and times(3). Code is executed in the caller's package. The time of the null loop (a loop with the same number of rounds but empty loop body) is subtracted from the time of the real loop. The null loop times are cached, the key being the number of rounds. The caching can be controlled using calls like these: clearcache($key); clearallcache(); disablecache(); enablecache(); =head1 INHERITANCE Benchmark inherits from no other class, except of course for Exporter. =head1 CAVEATS Comparing eval'd strings with code references will give you inaccurate results: a code reference will show a slower execution time than the equivalent eval'd string. The real time timing is done using time(2) and the granularity is therefore only one second. Short tests may produce negative figures because perl can appear to take longer to execute the empty loop than a short test; try: timethis(100,'1'); The system time of the null loop might be slightly more than the system time of the loop with the actual code and therefore the difference might end up being E 0. =head1 AUTHORS Jarkko Hietaniemi >, Tim Bunce > =head1 MODIFICATION HISTORY September 8th, 1994; by Tim Bunce. March 28th, 1997; by Hugo van der Sanden: added support for code references and the already documented 'debug' method; revamped documentation. April 04-07th, 1997: by Jarkko Hietaniemi, added the run-for-some-time functionality. =cut # evaluate something in a clean lexical environment sub _doeval { eval shift } # # put any lexicals at file scope AFTER here # use Carp; use Exporter; @ISA=(Exporter); @EXPORT=qw(timeit timethis timethese timediff timestr); @EXPORT_OK=qw(clearcache clearallcache disablecache enablecache); &init; sub init { $debug = 0; $min_count = 4; $min_cpu = 0.4; $defaultfmt = '5.2f'; $defaultstyle = 'auto'; # The cache can cause a slight loss of sys time accuracy. If a # user does many tests (>10) with *very* large counts (>10000) # or works on a very slow machine the cache may be useful. &disablecache; &clearallcache; } sub debug { $debug = ($_[1] != 0); } sub clearcache { delete $cache{$_[0]}; } sub clearallcache { %cache = (); } sub enablecache { $cache = 1; } sub disablecache { $cache = 0; } # --- Functions to process the 'time' data type sub new { my @t = (time, times, @_ == 2 ? $_[1] : 0); print "new=@t\n" if $debug; bless \@t; } sub cpu_p { my($r,$pu,$ps,$cu,$cs) = @{$_[0]}; $pu+$ps ; } sub cpu_c { my($r,$pu,$ps,$cu,$cs) = @{$_[0]}; $cu+$cs ; } sub cpu_a { my($r,$pu,$ps,$cu,$cs) = @{$_[0]}; $pu+$ps+$cu+$cs ; } sub real { my($r,$pu,$ps,$cu,$cs) = @{$_[0]}; $r ; } sub timediff { my($a, $b) = @_; my @r; for (my $i=0; $i < @$a; ++$i) { push(@r, $a->[$i] - $b->[$i]); } bless \@r; } sub timesum { my($a, $b) = @_; my @r; for (my $i=0; $i < @$a; ++$i) { push(@r, $a->[$i] + $b->[$i]); } bless \@r; } sub timestr { my($tr, $style, $f) = @_; my @t = @$tr; warn "bad time value (@t)" unless @t==6; my($r, $pu, $ps, $cu, $cs, $n) = @t; my($pt, $ct, $t) = ($tr->cpu_p, $tr->cpu_c, $tr->cpu_a); $f = $defaultfmt unless defined $f; # format a time in the required style, other formats may be added here $style ||= $defaultstyle; $style = ($ct>0) ? 'all' : 'noc' if $style eq 'auto'; my $s = "@t $style"; # default for unknown style $s=sprintf("%2d wallclock secs (%$f usr %$f sys + %$f cusr %$f csys = %$f CPU)", @t,$t) if $style eq 'all'; $s=sprintf("%2d wallclock secs (%$f usr + %$f sys = %$f CPU)", $r,$pu,$ps,$pt) if $style eq 'noc'; $s=sprintf("%2d wallclock secs (%$f cusr + %$f csys = %$f CPU)", $r,$cu,$cs,$ct) if $style eq 'nop'; $s .= sprintf(" @ %$f/s (n=$n)", $n / ( $pu + $ps )) if $n; $s; } sub timedebug { my($msg, $t) = @_; print STDERR "$msg",timestr($t),"\n" if $debug; } # --- Functions implementing low-level support for timing loops sub runloop { my($n, $c) = @_; $n+=0; # force numeric now, so garbage won't creep into the eval croak "negative loopcount $n" if $n<0; confess "Usage: runloop(number, [string | coderef])" unless defined $c; my($t0, $t1, $td); # before, after, difference # find package of caller so we can execute code there my($curpack) = caller(0); my($i, $pack)= 0; while (($pack) = caller(++$i)) { last if $pack ne $curpack; } my ($subcode, $subref); if (ref $c eq 'CODE') { $subcode = "sub { for (1 .. $n) { local \$_; package $pack; &\$c; } }"; $subref = eval $subcode; } else { $subcode = "sub { for (1 .. $n) { local \$_; package $pack; $c;} }"; $subref = _doeval($subcode); } croak "runloop unable to compile '$c': $@\ncode: $subcode\n" if $@; print STDERR "runloop $n '$subcode'\n" if $debug; $t0 = Benchmark->new(0); &$subref; $t1 = Benchmark->new($n); $td = &timediff($t1, $t0); timedebug("runloop:",$td); $td; } sub timeit { my($n, $code) = @_; my($wn, $wc, $wd); printf STDERR "timeit $n $code\n" if $debug; if ($cache && exists $cache{$n}) { $wn = $cache{$n}; } else { $wn = &runloop($n, ''); $cache{$n} = $wn; } $wc = &runloop($n, $code); $wd = timediff($wc, $wn); timedebug("timeit: ",$wc); timedebug(" - ",$wn); timedebug(" = ",$wd); $wd; } my $default_for = 3; my $min_for = 0.1; sub runfor { my ($code, $tmax) = @_; if ( not defined $tmax or $tmax == 0 ) { $tmax = $default_for; } elsif ( $tmax < 0 ) { $tmax = -$tmax; } die "runfor(..., $tmax): timelimit cannot be less than $min_for.\n" if $tmax < $min_for; my ($n, $td, $tc, $ntot, $rtot, $utot, $stot, $cutot, $cstot ); # First find the minimum $n that gives a non-zero timing. my $nmin; for ($n = 1, $tc = 0; $tc <= 0; $n *= 2 ) { $td = timeit($n, $code); $tc = $td->[1] + $td->[2]; } $nmin = $n; my $ttot = 0; my $tpra = 0.05 * $tmax; # Target/time practice. # Double $n until we have think we have practiced enough. for ( $n = 1; $ttot < $tpra; $n *= 2 ) { $td = timeit($n, $code); $tc = $td->cpu_p; $ntot += $n; $rtot += $td->[0]; $utot += $td->[1]; $stot += $td->[2]; $ttot = $utot + $stot; $cutot += $td->[3]; $cstot += $td->[4]; } my $r; # Then iterate towards the $tmax. while ( $ttot < $tmax ) { $r = $tmax / $ttot - 1; # Linear approximation. $n = int( $r * $n ); $n = $nmin if $n < $nmin; $td = timeit($n, $code); $ntot += $n; $rtot += $td->[0]; $utot += $td->[1]; $stot += $td->[2]; $ttot = $utot + $stot; $cutot += $td->[3]; $cstot += $td->[4]; } return bless [ $rtot, $utot, $stot, $cutot, $cstot, $ntot ]; } # --- Functions implementing high-level time-then-print utilities sub n_to_for { my $n = shift; return $n == 0 ? $default_for : $n < 0 ? -$n : undef; } sub timethis{ my($n, $code, $title, $style) = @_; my($t, $for, $forn); if ( $n > 0 ) { croak "non-integer loopcount $n, stopped" if int($n)<$n; $t = timeit($n, $code); $title = "timethis $n" unless defined $title; } else { $fort = n_to_for( $n ); $t = runfor($code, $fort); $title = "timethis for $fort" unless defined $title; $forn = $t->[-1]; } local $| = 1; $style = "" unless defined $style; printf("%10s: ", $title); print timestr($t, $style, $defaultfmt),"\n"; $n = $forn if defined $forn; # A conservative warning to spot very silly tests. # Don't assume that your benchmark is ok simply because # you don't get this warning! print " (warning: too few iterations for a reliable count)\n" if $n < $min_count || ($t->real < 1 && $n < 1000) || $t->cpu_a < $min_cpu; $t; } sub timethese{ my($n, $alt, $style) = @_; die "usage: timethese(count, { 'Name1'=>'code1', ... }\n" unless ref $alt eq HASH; my @names = sort keys %$alt; $style = "" unless defined $style; print "Benchmark: "; if ( $n > 0 ) { croak "non-integer loopcount $n, stopped" if int($n)<$n; print "timing $n iterations of"; } else { print "running"; } print " ", join(', ',@names); unless ( $n > 0 ) { my $for = n_to_for( $n ); print ", each for at least $for CPU seconds"; } print "...\n"; # we could save the results in an array and produce a summary here # sum, min, max, avg etc etc foreach my $name (@names) { timethis ($n, $alt -> {$name}, $name, $style); } } 1; lu$An;76:1Qb./usr/opt/perl5/lib/5.00503/CGI.pmrk.pm$$  aert hilnosu#$'cdfmp (),-.;=>EINT_bgvwy"/:<@ACDFLMORSUk{}01BGHPqx&2VWY[\]z|!%+34?j*5JKQX^~689Z7`^Áeɳ,7e$lbVoVW].}X"ָmk_bm>؇sQJ$ICQNpKfqݭ@juYcȩ4ﯗ}u"ָmkun}Xռv~z]r׬~؇?Qq8tW?8 Ȃ@0qA8<t ~q\ڄ/j?ߜOPSN]n{#ӹokӊC:NMm\%Z*9SZu~}sΓHssyn8uuIс~i6t9֊Uֺ0?RICm-i7PS}"e;N}}Ц!nA!2t '&pH!2zCeXCe‚κN9N% X $|0$ H€Hr)b!A@AaARf $ H,DÃL18qX"&̖\@aRLC,`2 .+\Ÿx 31d p2dDͬaAFD NL:cJ*W//_Vq7OYC~Ҁ.rLtGtqV]/ 6wFr=J^u,tuR&!DDC N&9mռS:-M՞8{?-ZҚ2>rgX@4XDɠ!HHIrDBĊa!&V]/ 6$xWgr /LJCqYp.?㡽J^#P${?g)Ck<=GJng::t; g`Ly`P/lgo~  Yxarڌ:@UϿ5R^Tr+us?D"L??WÁe8kl˪܇D8\()|q5!E K2XH \D)Ck>oǽ;~_4LTˠqm:X犼34$" &9O*6]%췟 g\T4"Xа4DL4e%PRLEK,$\8LDL)Co9>_[[~Mޤz9?pR16 Ō2 ,([lKW0a@(44P4H?pRD c?YۆCe͟ECK= &1D$H"D$H"D2(gs D(P4P H"D$H"!֡{ECK=;]Opf>&<. -Ō LW%-.`ŌbV+_m/)s~ ':~]_v6ۇMcmWq>)qȉ )qȉ7,7eW&W q(R֐6XxDJHHg&+tTgxDJHIդa)R&o(! %Ia) .`Ș1"l9^91R.艊!1P"l_g&+tteCkb8~ t+}&*C3 p HUI6-/艊0&@&* &!̵RթzoK&]c+p|N|1V}J\H8]/8>.ZYpV}JD9]ycc|iKSgȓ R)joԥܥԵ] S .=J>"lboZ+^9/^O47I&畬R׸(b0XĘ) 9BC Is`HBbD8hqsDA  *JL%F&!̵|`ri}7~U؇3<9h3NtyK\ :&Z9K  CE $2?7D a!R€AaCBb@B BI@8WjK,(4*& d ,K  CE $2PBK &!!%7SmXq*L&%.T^ru-D a XiHhh%C$30 4 ,(#tK,F2XP@48C<" xHgMjlX3<ȧ3S_ߖk)nFcv7Rc %~~oW)kW)kO-O6 i T/d/i*{/Ռ6Np4H)X*W[`uR=PҮti?L\Adf`ѣͬrZ7R׊\ s݌=ObZIF$/{p-ZYs݌tS:tc?f>;yQ8Cofq[}zL^\s.{ x5ɷoO|o#=t/]KUе 3?˔㑕Rި Mr6d}n8^ˀb 2?0j+.MV?R:#ިbҁϩH gD>թCR6 V9tz+//Iː0x-WB "b`P2<`Ѩj&_Rl,20tI## Rd}`l V]Ͼ0XEzL_klWȕ5+ٮjG7rDS˹CɰePPq#p) gpDM"  pP v嵚h(hx@xI6`lCGh8>.`4d4*0lcI DD 2 Gh0MkPPD,Ca6 JP+1egFzY/̵impp:k=C=@Np)keoTrQ$AJf,g|r)"S^8aleoW$rFVHeM)p<CZ9)g^9!0@‚#IȕNJtoAFzhn!6pR Yީzhn.z ‚%?["UvEv:y6^!ѕRlcM'\L ]kO(moߩ_Ru#r[[y>Ǫ)ݤ)L \c JP+YK1){<|t_^׬o 1]^] ~{<؇k-%/gU-bkX犿[}bK;ȝrzt_O{u)kxR/GiϣoLCWxaɭpu'\CmyZqӸo95/Y~r>ňy^mߊ[}zZA)RaީVMG )jߣ &:2D=旬o%ܥ&XaKYNd#M8sq==wӧ9~)kP=}v{MJ^N^ᤙW _aG# Z"v; mS+zJe@  2@ ,@ ,*MV>80>w!Wpr+`4 $wH\2DfKZo$?0ou-WB|\vZ;O0 |wH4PP4 K0|gtNcW<|0oMr'i 5yɣr -WB7X4ePiwK:-B[pI0kr7ѕR%iE /YK^F&*0)k(`іϷ ZNX &c?/gRZ9R?7FVHFgCk2R%F-c#<++zJ# ZHi6 +zjo08azjDG.Z4 D}A&rZ4G"h Ap< CDB*,H8]!OqYuՎtчNlܧD8\((>թCRp}]KUе"ɰl&]h 6=wz>=JQMծ;~(t96)k Z/1PSo/cw[&!˫;-V3>^*tn^^tvo8R׷!{>z8$Jf FVH";]Opx?ᆉ>9tp+^)pO֐EV {rq$A$$MOHS&^:ڇ ;]Opls[AbM 8lUo)&sctܯEv:c 00pnE;~zZn{WoS^wIޥZ^9[InZ,`H8L 2K$2=nc@Af 0dѐ(Y! M4%XT=nT] Pr.׃7aXMpRSX0p%4d Hgn3(p`A2hl2D](ii\fDg+E8ni7Է2 &gv:]KUе}mҝzZLVLܯZt?0oW0\,(*"P]k$ .aAӼ>j[S;]OpxD:wKq8MԷ2 &oWTr.׃ |G";]Opx?; $?0or6~\";]Opx?0hѕR%W$FP&$D>vBS^*07`-Eɰo,x-WB`EV_I!*?0hlV\-WA@l7& {r 7`JTrL_-)XV8kW {r' 4o胧x|Է\]0AǺ!7_`ѿRtqtpt.Cɰo2[ċ `XRޛj "G]ov-@u=u)Ev:_]ktCDCE&RtrA{l`R$X0Lj[mM>sZ@=+N0ۆ}淕lV+_^ovt^AOu1Z e{cGoomeNqCA 3ԭLts)>sZ9tp] .H%,`H FL0 Hg^ZXhTȡsIoo,d&M˫Ze1S>9Cz֖_7nΥÖвLʹqYj[pڂwAyV9ԭLMoybr^}7mQg0@ȜYk{i&胧x|Է˥ +Xk(BR4X, &XC7ݴv:w(K&{7^}Qʫyp߭tK|qNKe u)kKdIxAӼ>j[ $?0kNn:9@ %G eoTU%f9tpy6 _`FVH4e-{x9!{>z8M["Ta!{>z88*dн=QD;楸`іqU7Su+%l_~zCRթdIxeoTU)aRթdag-^Ql3ᲔSuk߬?ӌ6@jU!K\ީ U!K\86ˤ#+zJYKHgI!+zJ$IW[ԅ-rHdQM pM2gßu3Rթ|mgJN9Wzrk?["UK}HmgjCɳѕR%T&qʺޤM+*;fӹorEv:X8% "|L,((\9[ Sީ-Zpaީ㡣M,b|t7|b3rECK<{%3}|t73+bCGM,bp'K#pN*ZJdo${ 5G"h ɳ?ةiK.Z^=WrO}Ctsky+yۗt==y*Z>K-t==&r;~Vvܯ D ,XP 4  :2D>K|UR׷gMp` CED D FC(*0l d?c㑕RdݣNh?cdK8$ $wGg|r+R;O&V9tx!aG"e,ASwG$Q" &YKrp'KW`N|.I9l+J(izZr+RɰjxeoTQWFH"v;M22S7E /YK^q#+z^P06xeoTQ/YK^I!YK8>.ZR%F^M,doizZ\aMrMqjFVGީ ^C${<?K #+zJ$IzZI g0a["Ta"KR׷HddX:]W>PQ 6VEKGS7ͺ EK 1BAFD G`)斡{5pҳ|a9[ R?ᆉ?VpOr )-|coɮW{b&@`h-Qb&@?74`" .jߡϩH "h  0h3r1@X @@˥=FAaAPJieH/8@X,$ ,#[T >'+#r8 |N_p0X%HXA>3)6Ϸ$S0o|pb3 rkw Q9 Zʁ`88>.&eoSK#p Dp#j4 A@)!p00` DFxW `8@)B P&f^!VpLXL 2&"&㡼TyaAN .,dLDL4?膋  ܯD8\((4XȘhy`Y6* 4V]ϲlgɰeCE KqQ`P 1*f̨^{{–:%}HmʁZʅ1 %̶o^.y\9.e+5 Z4e-{y!׭/gܝS72r?c㑕R e,?ᆉy8r ^&Gtć ^8EzX $>+ p)n8>.9KUе"e,n[^iAH`h<ީ-j^6u~e-{y.lzх? 9;?cr. gS Վ]&81◃MvZ4?;((%W D :+C:.'X5pM2̹M@>؝Mr蠌qK˰~gk|pb0S1kRǓ`E(>A  &W{ "/gG r7"|d .ZEzL\ E4(&,d¡#ɱl) 0 BIp}\pFS6?0oc㑩G D`!1p0( 2&"&X<Р `1z9}1r}j{lQ WMQyNDCeߜ!v9|qR0K|५ݠQ?ȧ,)є͑*0fKX63/h101B;*)K:* -~ ¦EgܯQN*X0蛩_)VpL)kOHi>ࡡ!.&+"XbF Hg`XbF#P> %&(dau+x71`4&̵p`4& X=zHrAM՞7 2hLF7RaqRNp,PP}S~>"%M-Bkhg"R<YG_jyLFz_D4XȘhx8>.qRɳvWSMrr! ''@@$$uC ,Էe3dJ"R2<+~[8B+b`PfKXA6 k.W>&v:|M8y>2Jf^sR>\aMrMqYw>N&V9txC ,XPTЙ~+@ "N6K"MQ0 pCX?{ `Q &4X, X?{ a@( P s8I6 DXThhhREÄD pCܯ ,( =->5<| &E K2XH \D?xHaD@kl˪ܑ &phM pC r$ m@!$5}pC^XQ58h` Ck.Dy`Z?/#<-V$W ,Sؾ4!#"N7`!  2 0%9YR֡)k%ai0hL@Ѐ1C^*yB /YK^IqwÁe.)kSYK^}[:tɈ|m:х?YK^H[~TU[OX<翶^{\=%zZsvqЗ.Zr3-j&[5ܣ;)@=Y@{AkH"m(pD{<h*jxD,eoT&8)X|/֐EW>PQ<XXy1BIJCJV4pԹB,-" 0!.VW"}lPҹ&\73>9[!U:&檤:/Uez?ᆉJ ;p\dC Zp}]KUе"Gg.!DTEG` 4& h@XsK+,`<Иcb lT [mp}o–:k|A)[o3>9[ )ky[54S~ 49)biMr6WeoTU)aaPvG)Ж9?K\4r'k9ND@  Iɰj'k9@ (A$5N G7!R%; D`A6 ;O["UzXr+Rɰhdn/8a|#N| ,ac  cA8bW磊Ip磊K{/\۷Ukϒ:@vC{8lCt^/gG/؇9ݽ>mqۗ?m8~-$A$/gG\^c  H%3|^Ϟ).0XeoTa|CO+zjog˫r_"uZ>_vg+zJ$/gGC%ô܀zj ;Oy6eoRt-Aީ $`2DB|qI$23¸rXXy1B9ܯ_Vw.sq=}s]YpRq%3Bą.J 𰴋4& h@XrD)Jk%|aONl+4Sh >+ 9N=`t B#  tIYɳy$t` 4& h@Xs7 ])x(WXy1B L㡠˥/8?c㑕QSQJZ7Cɳy*ۥ/&0hL@Ѐ1 f1].P HBb$A ՞f+#+zy[54S~ 4.Z@X "UzXr&Hw>ksx} J^\^a12S7u q#+zpD)k |)ѕR%r2rfDbb h@1qv;SjNc |\0a 蝧8y6r5["VPaKXlީ–i&g["UzXr0y6 !į[5O{)k1A)oTaiH%3}K}횧3>9[y[54S~ 4^5׼ԬRmɃW82H)jkwD8(n \ D^τ&g2Ie4 ,`9AW^xKRC^!YK^wCo0a@(ЩBd>YrCmo>^4LTώzX ħ4e,(WXy1B Lߞ<gFVH.?j8iKVhy60k&<५ܥl"X0ŅBE &r`Kd9["Ta"Sǚ^Hdx0ީ w؇^˕mORmluyso<^2v!R@& 1%&rxXZE4 ,`9" &aިSީ-ZpaNd27lC,"T,$XD^p}]["UzX?yɣ27aɳՎ]&ފ*e,?0j# ZǔFVH'K0ȐW`& ˔ߤK 2(&`U)`S"feB`& ˔ߤńJ&.oD>w#+zJYKEzXx0|ީ${|y6 & ˔ߤKD>v<jGeoa"%Bgל83.S~ *@ y6^!\]deo2 0 q+OR5-@bG[ Me ĪFK+,`<ИcdoԍKq92Yq` 4& h@Xs!į[|^3߱s}mQ?Ө1n[u=u͟ڂqo~,kF 1)QK+,`<Иcdoʎg|r2A\mAGSީ-Zpaj >O4m(}y6"e,9lr6N|r2DW 㡽\mAGF/j^(B/c;O @ Y㡽\mAG(@ xӎ(0hL@Ѐ1 JP+ʎ٥)k1OuK8K7{c6с&!ۂw+Svo8'8FDCoA^\^c  H%3~Tv/YK^K3?U\gTvlM*j >"G&0hL@Ѐ1C^*|lr/YK^Ipz˖/)kur+zt$8pRnjsmgчmⴝb ˖, 𰴋4& h@XrD)r^gܧD8\((>թCRà &0hL@Ѐ1C^*uriv){<mH>yimҗX+Mb].ڗwA=ANTm>W? 8@<#T8](^>b8q箌 ĖiAڗ(WXy1B LZo/Yog|r2@1qSQJZ7Cɳ>9q>@2:FVHˬʁŌ@iǓgn3N Vx"D$H򆪪 g+zJ%+^8)" V M^N*XP,(h,*  VMteoTV)x9Hvx$(Wײ 9j_y.o(Ch yK+zJ7뗬W e4 ,`9b lT M4ԶXC6L^¼Kάs&WF Aq* ye8GpP1W)O9P+Վ}k:q]1A-7뗬RK+,`<Иcdo7뗬R FVH.?j8iKVhy6#ײ:2D]fTX, , \y6:}{::}{xKugMteoTV)x9H+ /<{!4CgG[x9>F[[9E8]A9zAF duNީuP9c-# P4D0d&@H8L 2K$`ѣ2dXT&&R@CEe,ⅅH&0]tLA|̨R㐵:ϭ 2$#׎kQ筟ڟcp?|&ˤG[x?38>.ȶK$pdy@0 $P0 "MG"kK@0ĀxJ K>9%'i󰀛&c?><)KugܥԵ] Pr:}{M87}YqYzsݧ~%G߄t?c;SX0*XP,(h(&dL8LDgHd4$H6G6Kا].%#-p@#*C+т&G6K[9te@z2ț?yɣt%R'9z×al:}=[}8].D_Zwgo)+"b.5cEcOSEc |G"b.  + "b.]wY6 V9txwX0XE9rXp hPSC4A Yp]֐&stM`^rh)x@ Vtb. S&,m 9:ۗ{taYsv?n:P.^[}J^qҏmyҼ?9\ML\{?yɣtݗ {F.DnW`ݗ"l& mҗl+r^.CnܯF.\)"l& mҗGNmW+zJI&^rh)x@2:Mۥ/Fp&Oa]>W׿ $M[t)\]ȇ  mҗ"0(" 2pA64 ,(# xGz0] ^m+Ij8D L6KȶK7/g$M2:-RXXy1B q+@&b:0܋޶K=|N"E:M87(vZzI I:M(WXy1B LNm#+z4v;y[54S~ 4iߓnpo9tWF[yKZzZ\fq㕷 oh& 1)mfnB,-" 0JfM7Vg|r2@1qoTpҖM80lG]YAVA'_H#9'_zM)H#+zJ}FZ}<rKUе:2l& ˔ߤR%MIZxwH4PP4 K/+FI.oFI82I  qR"M\d9}?t82U!5yɣ%[ 4FXz2ɰjGJdA'NZE xJ;Bԇ`Sp D9KOE8`dByh)9}rDP +N*_n'G,;ROTSR$x1_x )K !AO$ktr$J0o^qR t_P9:9e$%{DŽ94pf\!$VH"TɳYrXXy1BA%zب n!AOP"B=H5Is8㮧[:ΜV] ~B\ ,$&b (i 𰴋4& h@XrD) 7Vg ,$& *M,,`<ИccAAAAAAAA,d&+ŅK8(Xys &($*AAAAAAAA1C^*wIRC$|t6^3߭: X?$86SO]r%|WF,(#⯒x~N C^! ! tt A9녗.`<G)`B,-" 0Jf)`0XeoTbO+zjog|r40 mS+zJe@C0 \y64088dz '^' >9o2:G #t&8@YqR?FF[xT XXy1B q+@-c1+Ypme-{y !EkNDŸ3k:RtaֽlT9_ ,g84LT!FF_х? 9}pOO|[qQ9>r8XPDcas . 2=Kk5XrxXZE4 ,`9" mf[3>9[ Sީ-ZpaXVlT '#pOOd#v FVHˬʁ2  d&+^*r[8bR&F^N=><0gISI8dz 'tVlTK H48q3$+$RI WI"lF: #]$ѕR%F$e-{y#1 QDJ g E"bGFF P4@n !o &0hL@Ѐ1 JP+k4ұŘF+ ȭzبAO] )7ѕR%r2rbE.&` lteoTYmfXr+^*FFa!a%HG[x9o2:G #t&C]/pSK僧r߱ț}.yޫ~k4U$CM2r$|#Sz0Ky٪?c;O:)2KDEE9\4  $Mpp8$,hd (`4H@aKXGD>vYo ` 4& h@Xs!į[?UuF!䂘Rȕ)kWozCMȕk Rթy|_w+bPRt-BLC_"W5х?rzk):bV{5^&0妷7yMH◳H)|8itzeE P4@~ޣb[`U 𰴋4& h@XrD)`U8?c㑕R<ꚎRթGM*klޠǓ` 4& h@XsA%zبsW[bYK^H)х-|^b~}ҝW[bd:)uNtYIHp9J5х?@-5&zmDBALCNs .`,gm UUϵ]oQ.P HBb$Ajާg|r2@1qSQJZ7CɳѕR%MmW[}@1q2 01C^*uR=Qp%i^#=pUR׷ baK_"W_1*Z7"W)KVi~ܯuCKUе 12p|_Fyk|Uާt:mDo"W)jime'ޝCpP◳H)|8itzeE P4@R=P U^# *zrxXZE4 ,`9" R=PҮ㑕R<ꚎRթGM*klޠ䗩HqD.<XXy1BA%zبYt86S Z-~*m~]oQRթyM}taOZ7;OuN|#CJZIȞ"W5х?kWOKlN/З"W)X犽8kB]`LC^! ! tt A9녙,CE  2X̆ +1%ˤB,-" 0Jf?k.?c㑕R<ꚎRթGMXaKYTjoOH) Nc5["W.*,p`4H,9o2:G #t&880d ,()kGMo .d ,TdXXy1B q+@n{u뀺;ROs݌ 1 o$?–D㢾0)k>0{v;J_]S";Woa6o s)k;ObctWF̓_vS/cppwI&/jbRy 1osm:\,hd (n{A_q HcB,-" 0JfaީVMG )jߣ &"7o |2O )ѕR%r2rfDbCAE@ 4hѣF,Lpp *(\d H.<辍#+zJܓdHDr/v蝧#+zJܓdHDr'i9R?$M)k88(ݼ '^ݼ?);O<辍ɳ>9I"lNN 4DX@Na=Nd9ѻyNd#teoT\̨Y" 4DXQa4 lg7o(+rNa!ȾǓgv;(+rNa!ȝǓc?c㑅-cN0$XA)LЄх-|y"}+Ե] Pr/v蝧NZ;O+v;]ѻy6"v?$M)(| '^Z;O&Xcpo8 2:H?/gpHYsc< ,P"S6!R։z1 &0hL@Ѐ1 JP+p2zv0$86S ZtWF-}X7=◳H)|8itzeE P4@^G IJz(WXy1B L˕g|r2@1qSQJZ7Cɳ>9ѻyo["W.*,p`4H@1q辍#+zJܓdHDr/v|)Ե] Pr/vpp8'"Ŋ"7o ]$>9o2:G #t&88\4X2K˕B'ic*M,,`<ИccA8bWRթd8v]m Z79R׷ baK_"Wž?bRy 1osm:\,hd ()Y(IKVA_q1b;a_Zss݌;j^O]A9?[}v:чx>.XP4TNy tyGky:M&!/VV 1%-ZIrxXZE4 ,`9" -Z\aީVMG )jߣ &"7o mS+zJe@E"ŀ4bɱݼ2D:^DG"7oMݿ辍VA6"v;pp8'"Ŋ"7o &Xcpo8 2:H?/gpHYsc< ,P"S6# ,P M Nh[xT$XXy1B q+@VZCeߨpa!Heȑ*86W-@N+-pԹB,-" 0JfqYk#+zy[54 .80lCR$xb2 0 q+@m1sq[~m㓧{/j}H[}W[ip#moa.m1{PZALC)kJm.n !E6b"Wž?9KVWN؇"Wž?U7y`6j߬Cݿ+E}taOWrJ6v:jxX?~o<'<_M)kBLC^! ! tt A9녗0 3́@m.n W[b M 𰴋4& h@XrD)7g|r2@1qSQJZ7Cɱ–L^ |/v9K mSj2D]fTX,hbXp0p *XDqbCAEHb`AaAB @&gv;:jtN|tN|+$M+Tbv㑕R%F$B$2D0g`ѿRt-N*e,9RKUе:/v/vх-d–S+zJܓdHDr0y6'iS+zJܓdHDr'ilݿީ${>Ǔg|r18dupmG $M+qKR׷-cɳyXy60 3́@m.n `4H@aKXGDED>vmDc*>X{XXy1B q+@m1sq9Ce߮K|U'Oy/tNm1sq܉1 o$?–DFcm1~n v;"Wmg&Ym:ϭ!>w.s&ޛm1sqCorLCM.Dх<{ %˫Co>97ẓ*i?A>w+SzyMCmrxÛ?ԵjoLCKWגtnJSZؽO!>w⯯'@L\A23_~!]{f_+E}taOo~NǮN 7Bbޞ7=Dѻ|tWFCo^.}z\vfQ{ݾ_cC|,coM؇Co[7oH>v@zVѻxA&!O[xyҿD딵9|^jz}ȓ◳H)aE@a:=y^: .`,g&L\Az& 1$i<̌K+,`<ИcdoL\Adfg|r2@1qSQJZ7Cɱ–A-ZD{f\/vG"zDN/Б)y"KF'o1Yaѻ|G[x?`eoT\̨Y" 4DX 4DX@ , ,"dTyaa i 7  )QaR`H,8LDXH1P4 ,XPTp0hyaAR 4oXXPPybbŀCAEE@&"m1{P&\9r/vX m1{P)ѕR%W:Fjo–j߲ NcD] o. `B+602D:^DG# ZǓc?[[~k\6L ô܇c?0>w.S+zJ飴܍T47oNr "7oaKXlg|r18dupmG $Mr6i mNSm1{PaC<tp0pKt&ND6p}\rjF}n"7o0ݿ&ݿ辍D&{Z9ѻ|Z9ѻ|Dl辍N+rNa!ȾǓ`і D)ѕR%nI 2$"9CɰjG[kȀ8\4X2KM9"-a ,P!AL^F:¨>Q7B!#ɳYީg-4e-{x9RĮI 2$"(WXy1B L߹'K0Ȑg|r2A8cNh?8|FV|ZQ{<|jGcpN*XlC'/_eoTn*0ܓ!lg',$ eɄ&GcpN*Y@ H&p?8e&A%B@cL$6;qRLB@g0{9E8kBDȞmҗ q{n}p8alG.S~&㔵] Pr)Z?0j9;>eָlQN/А8>.ZȞl㔵] Pr9?0j)Z;>eָlQȞ8>.ZN/Аl?Y ^mG.S~ ,h(DPlG"x)Zɳ 5St$zj E8J^HnZȞmҗM\p"B;Z80a)y!.o0q{n0oH 2 * ¡,cr9Ȟ G"zDȞ`r7$S*MQ˔߼NdU)y"%@r'а ¡-WBDnlsE8k@ )ZhhH)Z oH 2T#k E8k@Ȟ7a&Cʄ0h+Ե] Pr6ZN/$r'?G"x MFX5Ma&E g˔߼Nd4"XA6^!˔ߤ2 01C^*|G23]po8>Ety$86S Z:+-xRՎz{$?蝧ȕxy>YɾeNsm;O˫Ias#51*Z7"Wž?ߊ[|c<9KV%6.?gkp׌ 1/t,] %x诮)I{f^LCpH7o"Wž= ϱRSuk߬?}zo}m7{}mct_F (#] 7o$?o:Wȝr;O_ORvbRy 1l8hhӌ6@+\UeE P4@W[ԓAR(WXy1B LQ4s#5?c㑕R<ꚎRթGMFD>w"jߤ{f\/vgȞS$A)y"KF'o1Yaѻ|G[x?`eoT\̨Y" 4DX 4DX@+ mNSS~g>82k\6DrMv;)ѕR%MJ|F }r'i}Ȃ0y63M?/%7*PMU--ZmNSv;|jE6biڞH?RQ["V/`"B#-cɱ[x?p8du+6ˤ?0j"m1whSm1{S;kRpD5c7BN 7BtBR]$j"7oQ$l-WB"7oEn!aѻ)4Mѻ)}ȉQM +Ե] Pr/v0 Ե] Pr/v*07}["V/`"B#}&,ީ${5yɣ-d@ .`,ge(sE# Z8",XB&Mo 07oD`] &g+zJtaKXlCmfQeָlWqt% o!)u-WBq|ք<Z9&9o9E8kBDȞmҗ q{n}p&0hL@Ѐ1 JP+湥b;.u\&Ipme-{y !F%yZOZ6!D>w.D ϱM(N0t[lC?|UIpvĘ-Z+E}taOZmo:K/vr%x诮)؇޼] P)E7Ṿ*ѻ|ǯX?~&ޛm1sqV8En0|!1`PvLC[}|)jsܽe/7o&!/gSn::qӠZч^k$A$W斸M.P HBb$AW斸O3>9[ Sީ-ZpaXaKYNr MAѻ|#,duF FVHˬʁ ,@ DE DE&H 2*   &(X H.9o2:G #t&w.S+zJ飴܍T47oNr "7oaKXlg)yN,g ,P!Ru@gMpa|C|r2zu-WBڃ 㑕S;kaKºIq+6 X_FNlݿ辍D&{Z9ѻ|Z9ѻ|Dlȝ["V/`"B#4<7o(+rNa!ȾǓ`r7$SL1ѕoDE;OQ}&c?Ma"K*@ ?/golac  c!į[ȽOtpEtwZIpme-{y !F%|)k>-bNrJ޼] _,Y2 A9?Վ{⾺0t/[}bTjor%x诮)؇I.]_]xy>YɾeW}ta" C<翛9ZcԴܥrmb\0-ZzΕKoUt> x'ȕ㢾0_KI1+M|^:+ x]_+M~VO]H7o"Wž= ϱRSuk߬?}zo}m7{}mct_F (#] 7o$?o:Wȝr;O_ORvbRy 1osm:ϭ;]x<tAȽOt.P HBb$A$/{p- FVH.?j8iKVhy6# Z"v;TjoFN+Md}Ȃ1;yRG[x=JteoT\̨Y" 4DX 4DX@ , ,"dTyaa i 7KXCAEEHb`AaAB @&#)Hw.S+zJ飴܍T47oNr "7oaKXlg'td:'Ov;lg|pP)ѕR%W:Fjo–j߲ Ncii\)Zo.+ąLKt&X[R5'?u8pKFN#t&Xcpo8 2:H–ީ${)kM\88*XDq`4H@aKXB-E4߮]u@gMpa|C|r2zteoD]!R%Kt&ݼ)4MQ}ѻ|DrKUе"7oKUе"7oMQ}FVH'K0Ȑ_Fɰj"v;Q["V/`"B#4<)y" ,Ldx",X| *ݼ A6?Ma"K*@ ?["W,㥷o# ZǓgMM,,`<ИccA8bWkR86S Z-~*mE.W[b-Z+E}taO;O^qQnCe?S~*S|^*]oP bRy 1osm:\,hd ((# ,P"p 4DX@AV 1&E. rxXZE4 ,`9" E.aީVMG )jߣ &ZwKo}'|o/YW"j V(CO{s6C<%7SȧR9Jg|pf\ v;M–jߤr@2:`eoT\̨Y"&H"ň"Ņ@XXPPybbŀ4bɱ5/l+|G"G<nEp,KFVH)kP0iS9-Z\0a-ZgtTjol5/9K&_`cIEKV Nc Mv; -WB4e2rYFriw+vK;zX _,)ѕR%W# ZǓgNYxEHr`/t–ީ${)kMr6iaQ4Q["V/`"B#4<94pf\ 0 3́@sE# Z8",XB& &gCk227 .. )G` 4& h@XsA%zبܵF1 o$?–D1K_[|c!FX"WaA~v?r^ 8Ș4 2&%HxxaC^! ! tt A9녗0 3́@`4H@REODKhAV 1'-G,ѹ rxXZE4 ,`9" -G,ѹaީVMG )jߣ &# Z#,L4 mQQR%r2rfD "\` lg|r4SOq-pG . 0P FZ+6#mSG[yWpD–ީ${)kMpp8$,hd (sE# Z8q@e#Oq#mPlac  c!į[ꚞ=qK%  A9Ӟe|/d:I|Nz̨=KN/ϧPk>ǧ[~!6o!9n؋O{^[[}V8k\ڄ ĥoTrxXZE4 ,`9" [5<g|r2@1qSQJZ7Cɳy+{̎1e,MR# Z(URvBǓg94pbHTTWV@?yɣ$Ez֤P+ִrZMR#`ݗ$F.C=weț?yɣ$FV(UZsܯFVɱxY ./YK&0hL@Ѐ1et6˭zz˗-~V nV!亹s̸o-d/N8r֊Uֺ0W"bJ_:M$Ĭ'OM.P HBb$A`ݖi:z|a떱 4MiGrRHPIHP3Ԋ  *@@8 E @@3}"@  cɳ>k9WoZDg!`ݗ֣ܲmp "ApHV`pȑ΄CpHЎDt8$L8@=g8p֌5g8|#${~~$C ~DgB{rr#(gԌ)UەcH=~)|g->V?>9Gg^8ZLr:wJ9R?ީuP9cE&r`Kd9["TaR2<`eoTZQCKR׷-cɰj2D0gXM2g["TaR2M,,`<Иcb            8aaN\if84PL.X?d[00$X            b lT ִӠXCo?rfΟ׭ot-Zï:-F!]‚bRyOū]u'\9[|XPGr|{A5PmDB,-" 0Jf5PmN0:% CL  0*"dzC$2 01C^*ptqqSܜ_-@W"<ˆe-{y& 1 tq.P HBb$ARtq#+zO+zjog|r+R;O ^Mr6WeoTU)aaV>9^{tEzXy6 V9tz'i9["UzXr+R N|'KNcɰo94pbmzX'i4e28 9aRƁFK 0+WH\+$@1zvHy6 Bb1AW^N!kc=R׷!y z?Eċ}>oȞӵD]})k`.$Y}>C ZmyҼzM;_{+OJi.Cqo_-[˂vC=u_@^.v;O] =AN $WoȞZoz5Zr$9]rEċ}>󏉹tiϒb  M;_R 𰴋4& h@XrD)ᩧkg|r2A]bmy[54 .80l"+AGg>82NvHDR%[4}HxlgMpe&E|G$PpH PbxI6 ^d$ `h6 Kײlja>E|xI6{<|eܥѕ&l.D딵s֣j}?Žuvj^с&o-/9_q7ִPt!5ɵtԜr'ڝ?[V3o>j\s͵}>)tWVChrՐ22M8{[^i(zݼZ6 3Վ]&8^ˀeՐ0~)p0I﮽nCZX4r+C@ @x `$$>'KZmLHN}C{׭0n^!_-Y "hg^6W &` 4& h@XsA%zب+TrCWO};[e-{y"/gߜ=i&!˫ӧ睭)kHܽuvj'R! \$q9^z9pLAbS9pԹB,-" 0Jfxj\73>9[ թyI[54 .80lC+zJuqNWRܥZ6g["UJr5G.PxJ+VЗ` 4& h@XsA%zبN1u){)kWovliyMC^O=GK_}m^b 1#͝)hGV9Գs8q8:+& 1,iai0hL@Ѐ2S7֎٦[{㑕RYK<Ꚏhy6!A@B@iƌ,+tWZ9)a{8Ji<W9K0 #+zJ$IW[ԅ-rHdQaKXZR%W# ZǏ02ڃ2DaKX>'+)jTjo0 M!Tjo I4Z㑕PaC  EKVlo FVOmATjo pܯRt-Aȩj߲M2^!4ڄ2 0%qKR׷rxXZE4 ,`9" ^ FVH"e,?ᆉѕR%F$e-{y#1 QDHEzXdrlac  c9ziW[Ԓ\^c  H%3|]oR\aިS&:2Dp,PS\-i*$9W[ԒD4h"'i$P/g02DDo$f!(AF#-"A#ɰe4 ,`9K.4EcI K+,`<Иcdo҆Ȭi5{|aȺ H)!:wKq8AOkڂwo~mt>])ȭݽZw)V$A](ii\fai0hL@Ѐ2S7CKM73>9[ V 5U϶}8alDV)ѕR%ag M45U V 5U϶}&<&檷tMCɳ?UϸMcwgk|pDV[f)ytMUo˥J^`| JqkS7뗬 2@#Kf)xMȯYK)mҗ Fp!тC%$'–(p`A04l`8*g1{${Fܓta֬t:}R @+|r* Z)x0ta "/;]$2PBz}–(p`A04l`=(ֺ]zZ|gj2D()kȯYK& CW=W>K_uCn[Omz'vjc9SnjxD]( ɰo94p`2D+R#$;O& 6 cGV]W>#.A\mAGlŁ"a\aCWr}mÞY}K9k}u u=[)jucVRYxad>CoV9G@&0oy }Ғ:TmxCˊK k|rjEJ:&檷J҃2[Ł"a70o˪)gYq>ɰoYu\"Vj[l} "Vxr* Z#.Ahp 4cFK D M!AAM6-,r*ڂCe‚vtMMEN AYro/:u cr*Vl7]EW>PQ@@<p,PP}S~>"%M EK}rYp]#Fc tag[~k4smӨs{o 0oީ ՗UϹ$2D* ZJq K_(W.d7t(Wf)x2A&94p`2D+R#$U϶}&e20hL@Ѐ1-Yq>R֗(WXy1B L՗s-|aީUs<ꚎRթGMteoTQj˪ܒ"Ta\-c$JB5["Ta"Z$HEW>KXdZn:7ºI` 4& h@Xs|iBV)rxXZE4 ,`9" ҅x?c㑕R)ky[54S~ 4w#U >(WXy1B L5+Gi(in.0XFVyO&]&X0pDSw_NEAp-QȢ{^ܺm^/VI              1     o"GW>PQAAAA/I &N>4g 0 :3Me 0N+/Yd+OyL]"A$DU@ HB 2&"&p0 2&"&MD4XȘhy`BbK,+t';pD 2&"&X<Р HBbEMTX+~9TwrxXZE4 ,`9" s3?ѕ^SɮWI/~9Oz Z?w)FVG`p$$gP|@0q!(BNgbX\,Ä1e=R`Z;y׭M[[SNW LCAXSm73[[ө?srO$Is-8)xng;j\:ڄ<{p^DDb"[O~Z=p^]XVR 1XFVyO&]&?/g220*"(22Mry`&Y,,`<ИcbIe-.P HBb$AV^?c[º  A6@\r*?^&R{} " &9ܥT+b2 0$XTȠ 𰴋4& h@XrD)L \aMrM+ީ6 Bb1ɰBbE      Jo/YAAAAAb%7뗬TVlOurJz_\ 9[HsU[lRթI1 ."h@yN '$؉EŌ  '3ϮZ=9&"* .`Ј4АhCΫXVbIxvLD8PD@!AA‚"2+=JugуJo/YPPh10S0p,PPh10lbz/9:$L,*dPL ,b                    AAAA9aaR@Xqfxhn,dLDL4<1      AAAAAAAAAAAAAAAAAAAAh10Ō0XW$OCvἉy",dLDL491z9dt6ZN"n3"iUscNh?"" :%2\4DЁqc̓g\6U϶} ȯIt&uct6=:{^ܯra DSm((! ZA@hO]\mAG IUsa?esZS!y)tK&!AAM6-,r%W . $h۠Tl[~r}{9Xn_t6?[}W>|iNgbIשJ 0 +÷t#bL8}j?P9t])Ԭ=}.Z=|S떸I~]_]tt?lsyLg^:^֗wۯm z7_"u:9 VtH?țaa[|Ho%2[|g+ :[/~me'HphFpRq ¹r|aĩ7Cc&\[|g+$|#ܮ"_7ԏ%7Su+}mhj&8)XHn3Z;[|8PDAQ :1z>\9~/Sп+^8c?c[8c …Q}洃  Dg+`ѥ*s4isK (UCo (U$0oc?"" ;57J5kG"n3"" &9zvsoK+z2Ix^M8ҟ[}|X֌7J r‚"+J8?G_ZM7DLW+zJU&^!Ӵlac  c˥J^%ai0hL@Ѐ2S7@eҗaިS&Xn &Xb.?lD(?lg^9Yp1_`$*1e!re!p'Iۂg>@+)"(" ?` `` gx+zJ5Uqc̏&\~xn rR㑕R%FBH"0(" 2p@N&\~z2D(X@@ϰwI"lP~xF"2Dc S jZs/\)ܥ."",`E8ܯ}r2D(X@@TD@IϜ5_D(Mq蛥 ȶKpr2D(X@@An py6n[R%FBH#pPI"l c?᫯pQ qA ф$I p^s82K zC@$モ $imB"$;{)ȁ(  H xgۥ/ LQ$xLN5Nч{rgk|r-RGb/p€qX"(" D?0jUuCP*ޡSDAy>riR)0j*ޡROHlpxxL$xM'N9:{`ryUuCPd*ޡ6?/g/g&0hL@Ѐ1e˥% |B_[|T?^$>vIeҀ}.P HBb$AJ0XeoT) g|r*VlG/g;OQ$5Ͼ9KUе"mr["W.?0j9{<$Smgy^ vM,,`<Иcb].y˥:&<7Jvgo;iubWd7JvpR%߅Ҝ!.N}mq? svqtst ,Q.P HBb$AJq#+z6nCNhu-ZkW?/t?gtMۗqc̓q=k;sU[yM6mq>C^vwypt3ѕR%Us D&ASoa}msU[9֣nǒg-S X.-<४K-~ :M;,>Z;[|8P$DCN[ xpR&㑖o(S0j7gg8m#o7J5΂*0 ,(2@!["T`&,`<4P "D yBa["T`, XPdI`FVH,`d2PM/g󂖩6 c\-hn30ln[R%FBH>sZ9["T`&,`<4P qHpR&c?cgf"㑖o+Jy?[|g+j&E/g:2z&ˀr]mfg|.`ܶ9gf"J:&ˑ蛚kx蛌ao&DҜFVH,`d3ܯFVH,`d3&E.&JyEkV/QځWoȞt=jyK&RNS+zJ0dhqa%rCJV4pީ `ѣF7ީaƒ$4hѣF?#1P4hѽsU[hleoTQPaASrRt-N*0 ,(2M8l=.ey ^m^rt>6n_-{v3mL]9ܯ?vyseԞ:=u\ +xKH-؞gPn{G#8)/n9^G/jT\10i ;|˥$IxMېҜN5G_X+2M29ܥTvZ{>M,,`<ИcbAL IrxXZE4 ,`9" ¦E0XeoT) gt(ީ?rWoXXy1BĪFK+,`<Иc2S7F FVG06^!FVIe4 ,`9M4,dLDL4=^Áeɱp&\b=Y@/I֧;X6Cp8A9;[Ȟ‚K0cʼn?XI60Ѣc 6@O0$Yx]âч?o>&0nP(4T8_w"@HG2 HiI6n\i.A򙵝pPұň3M^9zXpa_ TgH 9zXrP!.Am{>z8ep@pAAzXrGI!ǐ\]9 t⣠sdrD}e>QNKVpO]Sݧ(~*mCN.^*8_|iI"ԓ}6dC^riPSȓ .Iu>QNK',8'pS9΁->lz[vv q :[<c s̸o;y'F*YrK/GiϣoZ~‚BO}Rԭ>Zyu/VNWoiN9%%?[|"[[a*[|8_TvUd/˖/{o 1`Yw9:>MO|q y]7B9΁mⴝ{v˟N_6=k%V/|O:=el_ ߕ-}z9d9_[}Y=t`F8ڝi;$-:G*;'.嗎o+zzLt6>3 ZOy-)XGVpO]HyPS`j}O.p,i&3 %Nm ^WÁe8HTb$wƔڂpY&C{n!too )x-M՞9&z8C嵛DY m=z!ﳶ Rࡦ'c erֺ]H5֧A[~&]cmd+w`O2'ˉD cK;^9 ū]x 1\6Ne,s8\1tÃDDKYr@.(&,d¬`e8\|йzM;_|? (z^֨.х? 9eOk V/9_ Zeaɭpޝ=->^]toDDnGOe 儜r#`ݗ"R!Dc Rm&|)k_-;RTKmN~RV仡MkZK:}{!ș>9 P4O{)4}o_V0y[Mk]/;[TKT.\[Mk[ԥ5LRۗV93rt &0 [Go|[}m{>` _O.9vAs-j^z׭󵬯;O].y{p,%~39_-j1zZ^rqy3:wO =Áeɳ:wȕ)kPGg]oS胧x|\G23\rP"RH5#ܒ(T HZA %R'7Cc&`ѣFS~PBp=![;yOrӊF?ӧ睭.r_95Kbu+WnW3B}:_"u_ߓqMk{ 95KY/t }7~0~#=t.D/tJ}m:~ָotNk\7_ 胈mҗKug<'mrԊsZᶧ7oL`Vr/ Z&e׮ZypNY|)\VړI~&sNשKO~*ÓZᾠ] #6wKoȯL{˾}m)aFz_tj} /׬o>$}箴߮"v;S~ezu+&9|O1AJYK# ZH8HBlVCɳ8U)aaKYBi"v;(U /blR jn" /D^;Mؤ& n_.pYrK==e-^rNRt-N}md9מּry[jzj'OyRR$-_ 2$#=/.D~ucC𥜝=Ȝ^Vڝz9r%0Ȑ9.;|uq&߭q;Ou.yCo[ t lmzO]o{s2tu"C3ɺMO]7=z8n"8\yӌ5чzdHE7=zړ~ZԾo95Cbq6D;=KLܬ;ÓZ%}磂^٭ttT.y[jpa!ȑ"GD$H"D$HH`$?JQZ q6I'ӌ6 JH4Btdy? xhpY% gi9_j6Hy> K*a XH0UG%/rOnZ9}Kso ~ TYLJ˒]oY}ysNlQʫypNpbt:qۆ0V9D|!5ɷ僦쾜LG=nnD=AO=Μ`vᮌ%Վxo"\z 9c\/+o8;[Nx7~%g+PӌpNsǟzdWFz{lsSȗ> ~3aɭp Z{$pH|I1 b`@] <翩(z@眭Yvׅ-jzÓZ[[ݬR7(%-8%s>]CuEI~mAJ80ɐktU%͟NG@ޥKZָlCz %[t:}{_KugA)[Bew&/y$3F'fgm^\qgqYwӡ5+6昽CɱZs{&mbs0S )xLBA$8hW2ܻZ?ᰄO/k?Ywӡ# ݼg:0ۆWKug#N?pRI.^BO=Obkt6,ip/DH^V>Fz\r\7VnT$FeVgs{睭KG鶠q9L}AF mAJ$I(ۥ~(X4sx ( @X81B,LB%1N)gp,60].y^Wrx4LTϨ)e[$?  O}N/P…L0 `'0a@+q (&%LrxqgAӼ?xY .8h%c }|)~}}߅?zبCy=.b亹}*d<96%UϾC2_qiu.I㍺9|OyKΥÎ9Ĭ+\Ud, [ܳCAebzvKsGǒ:0;pu^|ֺ_OlW>˭9[~Tv^*qһ<Nj']/#M;_d̵o. ܾǪmAG܈x糷;\mAG8kotDUUɺQԥj >˜D;2\l`(A{&]󵾸`ʂ‚dMOI1?Y~rt}mgсjwCo,t /嵷ȭmAGzR?ZwKvlr/YK^Hp2Kset)j߼8_ [o 9:SmAG&3Î.`Fܴ?QM-Y)k.`y6o0M>C;]Op[|;&]\ޡRnqGٖ; c?t{ˎ (FUHo2'K1^t{˓g CS_vr+z[4)k/x8\p@@lgmet{ˎM(ۥ~ Xp0_ %L1$LPz8N:wȕ磊I.ߒxw@EORr_PeK,|6b8=R]:7~& SԽCeso$8ZPQJ@asd[ ,+8h2 -EQRȟŅ8ppi3d)k)NRau~/Kb/jsR׷u8KBIC$-`9CBP>vRÇkNy>-r/][lxw@EOR\TWw!KZzZ.^Zo㬑]\i\풷z]EtwZvI(ۥ~*Xɒ|0DE8o0$X?CED,( "UzXrJ)J2A(rHy60]/+}mV9KZzZb?r%]zmv;WU8hŒߒxúb/jx;Xpl#tkYF'o1_^vڜOZR_[[\/+mZ$=^?NAuׅ-ju)k->WO{srOnc֎_R3NRȖRV1H܊Ҩ$A*̣J*A#ܒGcc?t*e,8)k(U%c;O*|!Pichxys% 4DX2'y"($Xa@3:wȕ׸(8)k(U%c;OȡP-#IhA#ܒGc ~9o>w/Ne-{xK-/>oWoYK^w+ݾJtD'<_^O.%moֺ]kO<2Ӊ8}mR֧95ӧ9~@LaF(@1C%h2XPW0dOEAł "U/PCHy60].]mו^*󵎣owCo(-r^_G=edPR(bK磊w["Q  磊Ksu  Z'}vC].b<ԥ5`(`XWF or7]A"ZwKZ\sӞ;O!p @(c ^sta"Zu[9NSܲZ;jtキGb:qr{;[.EI(-/Ҿ+V 1t2\/hhhc%8p4D PS胧x|U-9%cc e{o?}K^%}׮Z+Vo+tu)k}mo?#o^+SO]O@Sta"Lauy_[}Y=taӧx'd<| >{cwB[t6>t^\x.R{~+V 1t2\/hhhc%B "UK}횧pla]7dp,iN+.y_޳7y7Jyl{M/Yh^6}CӡypNǻyN@YKV6Wzة;[K_[|Z0z?ռ'cKZzZD96CPr}mC/d*3=>QOXrk\7O࠲095I(ۥ~*0 A%2 -C L"|7, "VTv, 0"X{e<翞mmp-~žo:-F*j >~F}:˥;͟NG@箫m(foֽlT%moU϶}C]G9 mcVGmN} c , (i"@h`JL`4HP ,i" ",X0iF0o-~;O‚>/jJo;OÁee-|\6/ڞȗW):0iR坶6$}G7 u{=M-8>]) b睭򳷔= *K*3:KyKS+K?9s^Z*YO|O:9zyu;\vܷEC>Njݯ|y$:wyiI˾Uֺ:~wߕN>Zq$+WqbH+-%@GY6N8NdV9txA"HRC?;8\?8U)aaKYB'o D>vP&g+*;cŌ&?2&,dC{V9G@?^0@#nZJ3Ёlk|p8?;8\qsɳ㡽qRÒN3$<@l[}W>ū|jucTvrr rt9Z-vnໄVpĥԭ`P9}Xռ KD )ӨsvŪ^o=AOgnJ7R<^:>z]r%xG.Zq%IEk5(,&:qԼ$Ybά[yԽ>D<7|Zu[:zq 8FDDZi;!smO Zϭt׭࠹Q4e-{y!ʒc 6@ 0 A%.X%C1c+ 1\6+I~3N[佦OrmYr+x3B=/lyAQi{˭tz&]WdZ{˾&b{{^9[|e,8y_PStXbz[pmvZzLgr /^HMR"l)x9-~tM@.TSYKHrKHy60J9}\t9'eӊFWW8'%͟jcqs#5͟𥬗VpO]y^__-;R睭k)=.prϴr]KUе;Dxڂ$//^-Wo8'{-!wÁe.Cmm󵎣o{Ե] PP&.W^9z–wY*YrKCo&a=r{ԽxY 2$#z.E|umS7K*3>+ ߨpa!pZwKXD딾so.|κ80ȐPG`Yw*>''UޜVxyk}xYsO}b2W<&ޝNW/NWKrد<_jstsJ:W=p?bԛ] f_QR0K|.zX =Iч8\3c嵛'@v,y39_!RڂpRhI6Cy̥pePYj$@BR6C#ɱ#\^*sFKݩÁe.R7. tڂqxW6X>)}cq|~eZ6_t>c }/P?ߖt8_:ň^VbzZ76=w˭=AN;]Opj2Zor~rP?ZR_[[v[# nri/̵o. ^< ꮷ8yR fvWpquyNIrmYvD ?WAN8󵎣o D8\((%(tpYrKֽlT~3:yuκSʆ'_d+x$*[PR@lJ^g嵚i$*}TC3HU.ԇg嵚iX%K–mW[)kHy3KkRN+t+] mhFk# ZHqI$AFNr(T J$iIgA֑`ѿ-ZE i]֑  mjRo8']Co'r-ܲ͗%+W8'% u*6R@Z*_QũaJY+x$*[PRNF4laNy t^QŪ].^SR'o8 c ;mnF}[p>\.r /!P?ֽlT߭`.)ߖNAu{/zdHG%^c5׎o߅ ;b^bIIew p_k{.~3#9sYPS6G$+xqDR{˓g|t7"TRh/vB+RԈKk4THBR6C#ɱw'@ MejSv^NW/P?tZS–ly/zGyvY~9Qkr)ec rN=JZkI}7}8jyH3+[yy].y՛$쾶c-N㢧\K!RYECK<)Վ3[_R宅c+$+xq}mAJ8Sug糷39_ÈsS<b;[['@"V]ϾQūZssh[~V{^9ϭV]ϵ:z]mpB/I/˫|C~ǧsv3嗎ksW}ֽlTN:W|ݾ'c ;mnF 2KB. .Iu&RWVV94B,^Vmҗ/>Sz}kr^[͏{}moߒx\4K['F 49}7oLaGmKOO&0V׬ Zt8p,^tKv_Kko>e%PRD{˾˜ -eP8 &;lq|pcmg'TgmӼ?O=G4}ssywZݵ9VMO8)Ӽ>j[Yi٩-]^r 1#Sؾ4er/Sؾ4~gчt9:K3[[/N' :V-O[Rqֺ߳0$-t==.~39_o˒]n0B9_^7,!F睭oYpܝ!mm5\-TzQO(z@{ fǂ[~ۥ/Jl~yCnK}o6Ԍ,Ȟ>^/L=I\;swƔс&: /9}=lsNؿK[]Ism]{;pW{ӌr u? t`KËA#ZDE|q5.Qūsө+\n@^/( wotWZ7j/+k\;v ve:ϭL 1 baF(Pi`<@LPHW r@1C%0Ȑ! ,`8q3`@[}kIs "B?h~.]9_!Rڂp657c ]/`Yw^tugфe SQY-)X.ALaH%($io ۗd4"X8=(K5m8ry[rLKGMM./\,XD8=( % \/+n^XH_p{P&.mҀ ,`i|< 0$\; 0dU^ .IuVpO]Ktyޞ]kseϒ`.yOy~3*M;&AJ^u]X=jsgؤS [%p,%NKVpO]K. 2d)y/yFr}{sV9\/+]dHDΞ]kqQˑ+ $h7&0&~}Y=ta.EIr8|U"B>9Ly6uQiGk{.?.}myҼ"x)u }-@>}crLaF(BK*d4xh2 ũ?vK~9|{p,x]|t7{ 2 RZ}_[|D9>ԊsZcPSqۗ}taOū]m/!у<}Nmm"ָi/̶n=>QT[jucKnW"SMxv97:<ȓ5|t7%[t60o1,`ވ:wȕmҗrrN9Tc#" _ 胧x|V)x9-~VzD'˒!WCz "UJ^#ײRrrN9T0hѿv* F#-H~ \7僦 F#`ݗ"R!D0hѿȧE8]AFD:2҅RD$$<ۥ/{:):=aɭp3cÁe׭s–:~)iZzZ^ #ײ8(,r*C=weȩPSȧʒ6u)ks{rڞ*m;u?K< tU$C΁~3%7*a ۥ/9ϩrvY&B/$r9t6=mALgAӼ>DnD:0ۆ}洡PɱQyҼ<;Ӥ[~3\8_[\vvV0k׬oyEka^KAKsӤ[~Iԥ=^{ s(mO`ݕ:K-^tucK_Nsmlu@0h i K['4A p:ۗW"O0hyȭDܶJ?8 =arZ`}n] l4ACß}r[<| jD0@$Go 9:S떾u+m2࠲)"zZ^Vܽv)ym7=+ϱNKep"9X:w Rz\gIL1{${"v佦V8oA7Kt6宁[sۓ%4^+]}rKi_N1uֽlT]m/qv+tw\1[|F ^!ܯv;!9[}8Zz)y/磂󵾹h3HY+"ۥ/'_I~et^9 fW;[Ӽt<Hoq''U^y X㗄96{vy'_e<a&0n,K(X<`%pa`Œg|t7%rvZz9&(gyd@%huCɱZ\ϩ%C~ǯRi߮S ryޝӡxvD<}K9<^!5ɵ^O۳DM7Vx:}*WoO,$ 7…RW-@|rqHMԬT'i`ѣ(U#FPHVF磊I"R]Zy{֚H7N+nPIs 9R FiB KHTer }I')$2AF XpB|!vZ&AJ^F[Áe/mft23P"B=H5K--M՞8] ܾ~ؽ睭W}taOū]}moN0܋/KuuLa]kOKN S )y }mptpPxW$׿YK^K_žKNe-{yՎ,Cpj1zZ^vr5=lp"nd9ywy>}Bр_v0)ks_"uY)Rf'Kߜ"M  zY~R h/TQŸ׬o%֜E;-NlI2&x(,[\v]/peMkPY9zW?NKԵjoߵ/zK[z{yzW=c=>r~+w^:^ؤS taR.s{N|UT[Zc?(T"#׆: DCָw _/mOK$*3۷+k ta?[}J^smPYh+Mk]/Xrk\7={OeypN=JQMծ;~(6@-a'i;%ZqjF2ە{CNu۷+a!o/`|=ta;[PY(W%s>]Czoeb%)_o6O+O]koDDM7Vx-PQ@\p*,`ѣFEj*wW ǜqDn&. 2P,,lBxly9?ӹk QG٥ֵ?0o;YV_G-V39.}mthiwCoһy8G7>.仡8`ߗ% XM? H?gч˒uBG WH(S-PO8?Y` y6 [>G9rM?AӼ>DM7Vx:}*r>U⫵AF'_JDC L& J(,"*9}+׬o>ǯRV 2$#n; OJ_[[ԏwJ;B:9OJ\o/%Tt!j2*<bIA GN' :go)q/~Xppih: j:8iXh,)E~e[kyr@T?km*9}K~9Áe/}mC:U⫵Ax sIlE4H( _A$ gFXP9A .ԓ/3=$H&"cOvS/@3#,O(} GjIЙu $?d?c}@1'J;BI " 4H$ڒx&z]r\ggr/P9@ GhUDꚞ<ۇP<b/lֺ^IyOvko ta ZwKk'+Vop>zc\_FpSvE9p9:m)cgԌzctkNy p2*mc_kֺ;/Zs{L\ޯ)Njxl:x0PDV?+zm}Jo *MCx@Xo (oU o68XHiPl:x0PDV?+zVJcgT ]^~3֎_N0܋NsͭJ_/gy9AsǎU^*wB[t&0 uO~^m|w)Z;[yRt:5-@)N5-@60n(isan*(\e!^,("*5<S%g–8p,^t84LTͩՎ-"_Wٸz‚<;[y]XS6mNy߭ ,e^*r\7|ky={OI1t'  2\/ 0(DyaE ce.Rt.\D|kIuchHw+ma!=AN 2$#O9"_ 69e/–=+ }pPSGodHGkyϧPۃC|sPr}m?^~Zoc8|U`0ȐN*_Nu }-@*;c!֌e!C|gQ:K˺[|D9AH$kK.lOK'WDz׭ c?胹O =Áeɳ:*mL\8`ѿtPSP 7 %hpr(T!J8p$ d@v^@ 7Fvt#<@ 7 %e! 4o "UM2KowCo'dHG/~xY.;|J)juc.n{3mL\8gJz9}mIMjsz<.zBgӨ1/߭C˜|8_-)XD_ ӎUKoO)A8aj*‚BS%82@ ;/l yqSYЎ–3`pp@ZgGgy60]/`Yw]C~ѷ&^+8)jg:_]H mÊ3z jFy9{FrI 0F(T8%;Oq*dL2A-pg/h" V] RԈ$#8&Ԉ$B 4y-#1Z7$"D:GI3i).CCCܒGg %!?rHGI$g g{?Ǔc 6@ P`c"4.*g0d4LD4q3 `ta')y6W,)oblu9 cA%Hxla}⎅c[~[ϭ>Dy`=!K[υ1Pp0B 8,$^Va 0aa3%#'|}m}p pG)xBX`p,%e^Kw'@? ^/t`Ckotamso_k-rK?rLwmo? !Վ{˾s͸s񟬿}9>x"rrKKRgӨy9eځiz!c [Lga{lӵ+3laxzQGk[YŽָl1amv-S~ܾܩsoZ^`윭O U-+_ߒx];{S<ۇ_t#Ӽ>n:NS7+N;]K_$yzd}mc^sܽevܯY|c |C~Ǧځi}u]oS[e:\>vCh=&ع;S8?O^?zة>WIm1;yR{\^uny}o$À < }m-ZǛ9Z>Yr[}|aLg|t7%v# ZIW[5 Z Fȩjߥ -@;OAFrP$#'P0hѿ+P=҅@M.^u+GMCovxՎ-e-${Sit}7܉~eZ~3<[y9[ÄK/,T#Ծݿv0%2'Gx˞vK-)j߽E;:wk~s̸oxQJTh|4,`<_ bLgAӼ>DU,8׭ b 7zTi=t`AF7P7⣠py6dk˫[f"EY㡽t+pQXcX_ 胧x|YmfXr+^*FF'ɳ $H;X]X[5U*_ 胧x|[&Kk5XÇ{^!녈 G9k~WFbRz⣠sky{Mʟ%Rթe,)Y^*ph'O +ֺ0 T˂?2tp1A"h/]c=>ÓZm7=+؞&/G/otg&*zWo[cpQ9Վ-?[~Wo ~dXv;e'}1"v0࠺]w:F '"qb3V0].}mKϧ׿}8͟yҼ_t ]8kkz8_ G@t7"ӵ9쓥_{7m}cXޜas_U%[Z:ϹP J%e/چ;}swƔlU/d/|$/#?N0;pu;!Áe.._[~'Olt8(, 2\(d!Z_[[+K_pN*:=eG}Ԝa8_/r .Ius#q?Թ8-Fl{j >$7IΜV^i[~[Y?zة+ߋԼU⣠s?Եjo_Wo^ucx G@ Z7~3:tP\M-7뗬JysGUtK~~3[%n9[~S6'F::_W"ֺ]Y=t`K0ZS77Ъx8'%/jt=pPB%XmL_[|dHGKPSfmgo^.|a~*mzK[-M՞8V9Խ>DP…L0 `3 c?|t7%v# ZIW[5 Z F-ZTi0hѿFNP`ѣ}洡P`1,gAӼ>D?UuA*zKZDks `&mW[?sy_l^{uB_"v0࠰me-{y"aGm$-[׬o;vZc[}W[–c ;mnc WF+N0SYK^wKoj߾[Yv;> l*Z7_-х?]u)k}m8~鶲qd:ǒc ;mnI1[~+ V3o^ZZkxMcw*YI侶zIkEjsZ<P&.˞v+^*HU9=A{SveؾYFrpur+{{;v)ֺ0[~IL[p_"Vv;Woz:7lu9kBv;: "UzXrJ)&W˕vr+wlu?+[~Iڗ7w'O}?HGSAӼ>D䕌R ]%лsֺ\>vBc xhAaARf8Ha\gԌz[}W[/~0uκ3d9ϧPNy il[|Nc:"q;)k3Cz "Wlޠ0TuCP" 4oRթJJ[Yv;Hbv* F8@ AF+P=҅@M@ 4T8P4sF}:=|)|F0m@!Adc9 PYRF0bgo ࠲1g+8(,`+oo%?,㥷( _}omAGH[~0m@屵y9O}6go>ym@ome6uB_QNԏ;Or;> /9zOzj|/i͸}mBWïCz;rdg*m~]oP񀭾t9>ym@m5ч[l[[/+}&0np`%o%.XD=AӼ>D?k.-e b 7*Z7BKk59i`ѣ#="A 4oS$Pc1ވ:wȕe䕌R ]>vH c6Yt8t s/iSȞ)Ӌ%ՎzM~F}:_"u[+k59}XUsrm9z8ib~w{r$ h*(\dXW2࠲1sj, #E9ȩ #<+0F0bgo ࠲1g+! pPYVi^e-{y/YlN' :%ꮷ8y&0np`%o"b@a3:NԤz8]oPqRPR" 4h'iRks F#'P0hѣH@kJ y6 #"Cz "UzG4JV^A)mf9|" @lb)(iW[?]\5W[ F-ZTi0hѿFNP`ѣ}洡P`1,gAӼ>D}z)jUϴ%-@;O@MUϵ]oPpy=u\]:ՎsNsyҼ&)y?h^{(vrUK ?-mYŦr G@mV9Վ,K*3:K۵6O{s嵚qa'O~*PZ!ABB&KCE 6O{sou[8(.[YicWۥ2wlDɋuPS9{._,9t l~emf9|zjuc"B>KnUֺ0!v* u)8Ek'y9v᳧_"u_^9Xvc ;mn 1[~+ ֻR׷p~*m]oS MK#'<QkpI2_]Skztr[kWOo%]oSs4}㈭@kGc %qnu)ܥj>C:߸ms=νe,8y&3)k: "UzXrS]-CJlaxsNbls>}–/ey S_[}Y|S\-~0࠼+ĤWIв_Wo9^wI-ԛ] !s{{{A`vᮌ$ ^;m'PBCB@AH)B@~&BCo)kbnAL`0d KX8zTzԛ] !s{{{R}8]H) $rد"/c̷#3 /$m\-/g;򏮫}d>Cҟ[}8n&E_~rtymAJ86W>]( 0jRO_lW>AN:ݾ3 <>Us7:MFXp6V>QZ6[`دpŌ,@ P_'Ly n7I&r˥ e҃UϸRAsU[@G _ bD 蛚`і0 mUϾyҖ7=+9NW%(lt-Zqj{n/̶qjF Oy&rEċt o/''y.(o;qjF[JiԺQʹ:FJ<X\Y;ZwAXծt] XKy zj\eCԥZ2 A9E9pۥ/$I* ZN:wȕ^|iKPҮ}ԭ-.D9_KmANyPS'W+K[\y/'<_?USkyBUϹz2kԞ::}Ғ$ h*(\dXW2࠲1sj, #E9ȩ #<*A1g+;xT9X)Adc[}ze-8PlޠXRc 6@  2\/h4Xċc?㡽t*W斸LrK\&jAF-+: puA%Z@i 7Zc?1,g>q]֑B'i`%HTyi t'i`%ZE ~3ϭv)l\w"@HK]֑ti4h"S~*puAF/v*gѻ|c\ ˭z\&I)c X:nSÓZ\&)k–Ž[-=aɭp8|C(ypNʱ8it}m[Z>d>CRlTPe!^MwCo>]C=|o. ز)kSe!4\ V1$vc WFv)׬o8*Z7}mRRթX}6/˫^r}m]=m-Z |^*mκ3Mrw9NӡjzO#)ptr$vc WFg޽e-{y}tR:|b 9_Qʫypv;V9+']'}ѻt$/myָOOv;{<RSuk߬?Z\'r9^:8ヘKtvR׷> ܹ=%GNljo_>C뾍४Z=P߱I(nc>ŻȧrCoi~*m\'Ө0YSN3Ex5-p)NRÒZ3P! EC L0 yiki\{y9{j >ALP9eHpPYB)EHpPYJ3*CQNzT(PYR_m~zZzë^ӟ/s͸}mڂ=&0np`%o.`Kc?㡽t+$/{p--5 Z Fһ" -wZDYuA%i4hѠZWpuA%i [gF8EAӼ>DȽOtrOt)kH4 J$iIgA֑`ѣFi]֑2 nN F3ݾCɱHވ:wȕy8i# ZI-i`ѣF;OȡP-+: puA%ZDZ6AFEKV(T J$m 44YBAFEi\T'i`ѣF}ȡP0><$/{p-?[rEtwZK0Npv o$U($evK}AO+N0S K|)k–;OɃ<^+~d>8OXrk\7ɱYypN11[~+ ֻ&x*Z7Cnzj\Ǻ[ӌ6@;Oy{jsgMC:un2N;O_W]/Xrk\7]gJN󂖫jfks^VOmNyKzo׺>)kQR׷>CW~A-ZAXֺL^$vc WFgXrk\7_[~N_Kx2pc1$-х?uָoNߕ{{7}NZoڅrz\qrt? zwS嬓Qkp$m)N}aɭpzϱRSuk߬> A9ݾ]X{kK"7oL.w:-B[|>w.y7}GIwPV8tRz{ڝm.y7/g=IoR׷iR֑/̶|^*mVOmNӨswgmNyЦ3 S胧x|U)a=P!†1v0@PB%¼ȽOtpNAuo'5(pPY9T"T9X¤8(,`%YPS VW[?\/<CāKKpP*XPWoD;JL\Adf0TdfR֑ 4i܊һ" -wZDYuA%i4hѤr'P E8kBE ɳi<̌?[ro6b}moQmRKY&0Npv o$U($evK}AO+N0S m1sqR s܈3.KzqR r'i%l׊_p+N0Q&|NnCej\_m|^juc[lҔmF㡶~mr.zR>v;^+Sy?uԽs{ty7~[ϱ9zz86Y&0$e⾺0\ ] P)E7Ṿ}ksoL\A>w/ݾ_[[9a㡶~㈾<'\Co9a_[}KV$v1a!E8k^H)R/d/cu/~;P9~*[~+ ^ȞRN/БR_m䘝NWm.n G23\p{^!j}ofr #<ۥ/$W࠲)REz~ WnW4}׋c(J:%>rL2Q9/Y|[Դ㕮;d2?Ԍߗ9Pp[lt6|taM\ek^N߅-j2pvc %qnu)ܥjiڜA.y7/g=IoR׷dfR֑/̶|^*m"07}˧P:ڜLgZS%W$s#5Bc |6L\AdfΞ2v0eָl~F}:Nm y睭t>ѷ܈w[" wC[y˭q o)N7y8)k(U#j@|E i&+4O.l>81ɱ .`m.n G23\pNAuorbXe-{xK-tܫ^QOr-pbzçOwimOgor+Λܘ`ʁ~9>C:r vdUk971{Srt}mk:1tÅ .`x"f pa` ;㡽t*m1sq# ZI6b5 Z FȦL^(U$iډ`ѣNe &a" 4oݼTK/,l`1,gAӼ>Dm9$i<)kHI $"\8xdcm.n +SzyuҋmNm1sqmot㓧2[j}HR'o8 c ;mn R׷ *vI2%zZ_[,7eK_V9m.n 8)kK{>QVV9+9t}ѻ_ <,ci<Qkpe⾺0ZqzZ"m1{Puk~mK9KV%F֗FVOmOPS 1-х?]u)k8|uoUbm6ݽ ~]__"uZ>"0*R֡&0$e⾺0c<)k8ݼtxG.o7oO7y/˫NKPM)k'+PP&.mߊ[}6b9{LgZS%W$m1sq-i& h*(\dXWMi\(,`&.UR׷7y8V9՞ko:ȓQJ8Pi|7c&DpX5AӼ>DR8)k(U#jAFD>w"@HK]֑ti4hTjo҅RZ0hѿȽгyt.P[0hѿȾPFMF8EAӼ>DR9#j@ J$iIgA֐AF7" nN gѻ|cCāKKpP*XPWoD;J(9–R9KZD4hNr(T J$iIgA֑`ѣȞ@ *&e(9n^|U'Oy9o>R7=L:8OXrk\4ko9:=C#FrGzbz0%˫^r}m]=mKV%|)~# [pn{-d<}KKk7~ys݌%o$vc WFg޽e-{y{f\Nߕ'i}^zǺмpHO.9라'OtQkp$m)W+R׷qѻ|K^.}z\vY徵9ty>w/ݾ_c'+S[}GIw_W;ȝrv;ҷzb&0$D@A6'