Thread: [Shellweb-main] =?GB2312?B?Q3Zzyse38dX9s6Ojvw==?=
Status: Alpha
Brought to you by:
alexe_cn
|
From: <ale...@gm...> - 2006-01-05 13:32:58
|
1eLBvczs09DLrWN2cyC5/aO/yse38dX9s6OjvwrO0tXiwO/X3MrHwayyu8nPyKWjrM/rx/PWpNK7 z8KhowoKLS0KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwog fEJ5IEFsZXhlIChodHRwOi8vd3d3LmFsZXhlLmNuKXwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo= |
|
From: Eaun L. <eas...@gm...> - 2006-01-05 15:33:09
|
5oiR5Lmf5LiA5qC377yM6ICB5piv6L+e5o6l6LaF5pe244CCCgrlnKggMDYtMS0177yMYWxleGUu Y25AZ21haWwuY29tPGFsZXhlLmNuQGdtYWlsLmNvbT4g5YaZ6YGT77yaCj4g6L+Z5Lik5aSp5pyJ 6LCBY3ZzIOi/h++8n+aYr+WQpuato+W4uO+8nwo+IOaIkei/memHjOaAu+aYr+i/nuS4jeS4iuWO u++8jOaDs+axguivgeS4gOS4i+OAggo+Cj4gLS0KPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gIHxCeSBBbGV4ZSAoaHR0cDovL3d3dy5hbGV4ZS5jbil8 Cj4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+Cg== |
|
From: fayland <fa...@gm...> - 2006-01-06 02:22:53
|
我都很正常,update 没什么问题。 ale...@gm... wrote: > 这两天有谁cvs 过?是否正常? > 我这里总是连不上去,想求证一下。 > > -- > +--------------------------------------------+ > |By Alexe (http://www.alexe.cn)| > +--------------------------------------------+ > NY薜' > 蕈㈣!kC 濉蘩@^^j!2㈥澧辨,悍a{,H蛟4i(辟堍o'锃Yhr'庄:rX=== -- Fayland Lam /// http://www.fayland.org/ |
|
From: <ale...@gm...> - 2006-01-06 03:17:25
|
5pep5LiK57uI5LqO5oGi5aSN5q2j5bi45LqG44CCCuWPr+iDveaYr3NvdXJjZWZvcmdl5pyA6L+R 5oC75piv5Zyo5Y2H57qn5ZCn44CCCgrlnKggMDYtMS0277yMZmF5bGFuZDxmYXlsYW5kQGdtYWls LmNvbT4g5YaZ6YGT77yaCj4g5oiR6YO95b6I5q2j5bi477yMdXBkYXRlIOayoeS7gOS5iOmXrumi mOOAggo+Cj4gYWxleGUuY25AZ21haWwuY29tIHdyb3RlOgo+ID4g6L+Z5Lik5aSp5pyJ6LCBY3Zz IOi/h++8n+aYr+WQpuato+W4uO+8nwo+ID4g5oiR6L+Z6YeM5oC75piv6L+e5LiN5LiK5Y6777yM 5oOz5rGC6K+B5LiA5LiL44CCCj4gPgo+ID4gLS0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+ICB8QnkgQWxleGUgKGh0dHA6Ly93d3cuYWxleGUu Y24pfAo+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ ID4gThjnkIBZ6Jac6ZeF5aWo7oON77+9fyfnn4jovrXntKXum4HunZXlo74O5bCQ77+9fwo+ID4g 6JWI6LGu44ijIeaehR/lpafnkY3lqYfnlaPpjYVrEuenukPvv71/ICAgICDmv4nunLPlkbTomKkC QF7oj6TuhYFe77+9fwjunYDosZjnp4TumKDvv71/Hmrvv71/IeWmnDLjiKXmvqcH6Yi677+9fxro vqjug6Tvv71/LOaCjemJgwthewfvv71/DOmNlyzvv71/A0jom5804pWp56ib77+9f2nvv71/KOi+ n+WgjW/otpgn6ZSD6bmZWWhyJ+W6hDrpjrZyWOa4kj09PQo+Cj4gLS0KPiBGYXlsYW5kIExhbSAv Ly8gaHR0cDovL3d3dy5mYXlsYW5kLm9yZy8KPgo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUaGlzIFNGLm5ldCBlbWFpbCBp cyBzcG9uc29yZWQgYnk6IFNwbHVuayBJbmMuIERvIHlvdSBncmVwIHRocm91Z2ggbG9nIGZpbGVz Cj4gZm9yIHByb2JsZW1zPyAgU3RvcCEgIERvd25sb2FkIHRoZSBuZXcgQUpBWCBzZWFyY2ggZW5n aW5lIHRoYXQgbWFrZXMKPiBzZWFyY2hpbmcgeW91ciBsb2cgZmlsZXMgYXMgZWFzeSBhcyBzdXJm aW5nIHRoZSAgd2ViLiAgRE9XTkxPQUQgU1BMVU5LIQo+IGh0dHA6Ly9hZHMub3Nkbi5jb20vP2Fk X2lkPTc2MzcmYWxsb2NfaWQ9MTY4NjUmb3A9Y2xpY2sKPgo+CgoKLS0KKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogfEJ5IEFsZXhlIChodHRwOi8vd3d3LmFs ZXhlLmNuKXwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo= |
|
From: fayland <fa...@gm...> - 2006-01-06 04:45:02
|
我觉的 alexa 你应该对大小写注意一下。虽然 win 下没事,但 linux 下会出错 的。比如 lib/Parser/Html.pm 里 use HTML::Parser; 而不能是 use Html::Parser; 另外 alexa 想想怎么拆分工作,然后让大家自己选个熟悉的开始合作。 ale...@gm... wrote: > 早上终于恢复正常了。 > 可能是sourceforge最近总是在升级吧。 > > 在 06-1-6,fayland<fa...@gm...> 写道: > >> 我都很正常,update 没什么问题。 >> >> ale...@gm... wrote: >> >>> 这两天有谁cvs 过?是否正常? >>> 我这里总是连不上去,想求证一下。 >>> >>> -- >>> +--------------------------------------------+ >>> |By Alexe (http://www.alexe.cn)| >>> +--------------------------------------------+ >>> N琀Y薜闅奨�'矈辵紥壾尐� >>> 蕈豮㈣!枅奧瑍婇畣鍅k秺C� 濉呴蘩@^菤^�豘秄�j�!妜2㈥澧鈺�辨�,悍鉃a{�鍗,�H蛟4╩稛�i�(辟堍o趘'锃鹙Yhr'庄:鎶rX渒=== >>> >> -- >> Fayland Lam /// http://www.fayland.org/ >> >> >> >> >> ------------------------------------------------------- >> This SF.net email is sponsored by: Splunk Inc. Do you grep through log files >> for problems? Stop! Download the new AJAX search engine that makes >> searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >> >> >> > > > -- > +--------------------------------------------+ > |By Alexe (http://www.alexe.cn)| > +--------------------------------------------+ > N�HY隊X���'���u���[������� > ަ�k��!���W�~�鮆�zk��C� 塧m����@^ǚ��^��z�Z�f�z�j�!�x2�������ɫ,���a{��,�H��4�m���i�(��ܢo�v'��jYhr'ׯ:�rX�k=== -- Fayland Lam /// http://www.fayland.org/ |
|
From: <ale...@gm...> - 2006-01-06 05:17:04
|
5LiN5aW95oSP5oCd77yM6YKj5Liq5qih5Z2X6L+Y5rKh5rWL6K+V77yM56Gu5a6e5piv5YaZ6ZSZ 5LqG44CCCuWkp+Wwj+WGmeiCr+WumuimgeazqOaEj+eahOOAgnBlcmzph4zlr7nlpKflsI/lhpnm mK/mlY/mhJ/nmoTjgIIKCuaLhuWIhuW3peS9nOeahOmXrumimOi/mOayoeaDs++8jOS4u+imgeaY r+acgOWQjueahOS4gOS4qumDqOWIhi0taHRtbOino+aekOeahE9P6L+Y5rKh5pyJ5YGa5a6M44CC 6L+Z6YeM6Z2i54m15omv5Yiw5LiA5Liq5pWw5o2u55qE6L+U5Zue54S25ZCO5Lqk57uZ5pi+56S6 6YOo5YiG5YGa5pi+56S677yM5Lmf5bCx5piv6Kej5p6Q6YOo5YiG5LiO5pi+56S66YOo5YiG55qE 6YCa6K6v44CCCuaIkeaDs+WfuuacrOeahOaooeWdl+WMlumDveWBmuWujO+8jOWkp+WutuWPr+S7 peiHqueUseeahOaMkeaMkeiHquW3seWWnOasouaIluaThemVv+eahOadpeS9nOOAggrlhbPplK7l nKjkuo7lpKflrrblpJrkuqTmtYHvvIznm7jkupLkuqTmjaLkuIDkuIvmg7Pms5XlupTor6XlsLHl vojlrrnmmJPjgIIKCjIwMDYvMS82LCBmYXlsYW5kIDxmYXlsYW5kQGdtYWlsLmNvbT46Cj4g5oiR 6KeJ55qEIGFsZXhhIOS9oOW6lOivpeWvueWkp+Wwj+WGmeazqOaEj+S4gOS4i+OAguiZveeEtiB3 aW4g5LiL5rKh5LqL77yM5L2GIGxpbnV4IOS4i+S8muWHuumUmQo+IOeahOOAguavlOWmgiBsaWIv UGFyc2VyL0h0bWwucG0g6YeMCj4gdXNlIEhUTUw6OlBhcnNlcjsKPiDogIzkuI3og73mmK8KPiB1 c2UgSHRtbDo6UGFyc2VyOwo+Cj4g5Y+m5aSWIGFsZXhhIOaDs+aDs+aAjuS5iOaLhuWIhuW3peS9 nO+8jOeEtuWQjuiuqeWkp+WutuiHquW3semAieS4queGn+aCieeahOW8gOWni+WQiOS9nOOAggo+ Cj4gYWxleGUuY25AZ21haWwuY29tIHdyb3RlOgo+ID4g5pep5LiK57uI5LqO5oGi5aSN5q2j5bi4 5LqG44CCCj4gPiDlj6/og73mmK9zb3VyY2Vmb3JnZeacgOi/keaAu+aYr+WcqOWNh+e6p+WQp+OA ggo+ID4KPiA+IOWcqCAwNi0xLTbvvIxmYXlsYW5kPGZheWxhbmRAZ21haWwuY29tPiDlhpnpgZPv vJoKPiA+Cj4gPj4g5oiR6YO95b6I5q2j5bi477yMdXBkYXRlIOayoeS7gOS5iOmXrumimOOAggo+ ID4+Cj4gPj4gYWxleGUuY25AZ21haWwuY29tIHdyb3RlOgo+ID4+Cj4gPj4+IOi/meS4pOWkqeac ieiwgWN2cyDov4fvvJ/mmK/lkKbmraPluLjvvJ8KPiA+Pj4g5oiR6L+Z6YeM5oC75piv6L+e5LiN 5LiK5Y6777yM5oOz5rGC6K+B5LiA5LiL44CCCj4gPj4+Cj4gPj4+IC0tCj4gPj4+ICstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+Pj4gIHxCeSBBbGV4ZSAo aHR0cDovL3d3dy5hbGV4ZS5jbil8Cj4gPj4+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKPiA+Pj4gThjnkIBZ6Jac6ZeF5aWo7oON77+9fyfnn4jovrXntKXu m4HunZXlo74O5bCQ77+9fwo+ID4+PiDolYjosa7jiKMh5p6FH+Wlp+eRjeWph+eVo+mNhWsS56e6 Q++/vX8gICAgIOa/ie6cs+WRtOiYqQJAXuiPpO6FgV7vv71/CO6dgOixmOenhO6YoO+/vX8eau+/ vX8h5aacMuOIpea+pwfpiLrvv71/Gui+qO6DpO+/vX8s5oKN6YmDC2F7B++/vX8M6Y2XLO+/vX8D SOibnzTilannqJvvv71/ae+/vX8o6L6f5aCNb+i2mCfplIPpuZlZaHIn5bqEOumOtnJY5riSPT09 Cj4gPj4+Cj4gPj4gLS0KPiA+PiBGYXlsYW5kIExhbSAvLy8gaHR0cDovL3d3dy5mYXlsYW5kLm9y Zy8KPiA+Pgo+ID4+Cj4gPj4KPiA+Pgo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUaGlzIFNGLm5ldCBlbWFpbCBpcyBzcG9u c29yZWQgYnk6IFNwbHVuayBJbmMuIERvIHlvdSBncmVwIHRocm91Z2ggbG9nIGZpbGVzCj4gPj4g Zm9yIHByb2JsZW1zPyAgU3RvcCEgIERvd25sb2FkIHRoZSBuZXcgQUpBWCBzZWFyY2ggZW5naW5l IHRoYXQgbWFrZXMKPiA+PiBzZWFyY2hpbmcgeW91ciBsb2cgZmlsZXMgYXMgZWFzeSBhcyBzdXJm aW5nIHRoZSAgd2ViLiAgRE9XTkxPQUQgU1BMVU5LIQo+ID4+IGh0dHA6Ly9hZHMub3Nkbi5jb20v P2FkX2lkPTc2MzcmYWxsb2NfaWQ9MTY4NjUmb3A9Y2xpY2sKPiA+Pgo+ID4+Cj4gPj4KPiA+Cj4g Pgo+ID4gLS0KPiA+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsKPiA+ICB8QnkgQWxleGUgKGh0dHA6Ly93d3cuYWxleGUuY24pfAo+ID4gKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ID4gThjvv71IWd616ZqKWO+/ve+/ ve+/vSfvv73vv73vv71177+977+977+9W++/ve+/ve+/ve+/vQ7vv73vv73vv70KPiA+IN6m77+9 a++/ve+/vSHvv73vv70f77+9V++/vX7vv73probvv716axLvv73vv71D77+9ICAgICAgIOWhp23v v73vv73vv73vv70CQF7Hmu+/ve+/vV7vv70I77+9eu+/vVrvv71m77+9eu+/vR5q77+9Ie+/vXgy 77+977+977+9B++/ve+/vRrvv73vv73Jqyzvv73vv73vv70LYXsH77+9DO+/vSzvv70DSO+/ve+/ vTTvv71t77+977+977+9ae+/vSjvv73vv73com/vv712J++/ve+/vWpZaHIn168677+9cljvv71r PT09Cj4KPiAtLQo+IEZheWxhbmQgTGFtIC8vLyBodHRwOi8vd3d3LmZheWxhbmQub3JnLwo+Cj4K Pgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+IFRoaXMgU0YubmV0IGVtYWlsIGlzIHNwb25zb3JlZCBieTogU3BsdW5rIEluYy4gRG8g eW91IGdyZXAgdGhyb3VnaCBsb2cgZmlsZXMKPiBmb3IgcHJvYmxlbXM/ICBTdG9wISAgRG93bmxv YWQgdGhlIG5ldyBBSkFYIHNlYXJjaCBlbmdpbmUgdGhhdCBtYWtlcwo+IHNlYXJjaGluZyB5b3Vy IGxvZyBmaWxlcyBhcyBlYXN5IGFzIHN1cmZpbmcgdGhlICB3ZWIuICBET1dOTE9BRCBTUExVTksh Cj4gaHR0cDovL2Fkcy5vc2RuLmNvbS8/YWRfaWQ9NzYzNyZhbGxvY19pZD0xNjg2NSZvcD1jbGlj awo+Cj4KCgotLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r CiB8QnkgQWxleGUgKGh0dHA6Ly93d3cuYWxleGUuY24pfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCg== |
|
From: Anthony WU <ant...@gm...> - 2006-01-06 18:28:24
|
Global symbol "$class" requires explicit package name at
lib/Parser/Html.pm line 16.
Global symbol "$base_url" requires explicit package name at
lib/Parser/Html.pm line 26.
Global symbol "$buffer" requires explicit package name at
lib/Parser/Html.pm line 32.
Global symbol "$iter" requires explicit package name at
lib/Parser/Html.pm line32.
Global symbol "$buffer" requires explicit package name at
lib/Parser/Html.pm line 36.
Global symbol "$iter" requires explicit package name at
lib/Parser/Html.pm line36.
Global symbol "$buffer" requires explicit package name at
lib/Parser/Html.pm line 38.
Global symbol "$iter" requires explicit package name at
lib/Parser/Html.pm line38.
Global symbol "$buffer" requires explicit package name at
lib/Parser/Html.pm line 70.
Global symbol "$iter" requires explicit package name at
lib/Parser/Html.pm line70.
Global symbol "$window" requires explicit package name at
lib/Parser/Html.pm line 78.
Global symbol "$buffer" requires explicit package name at
lib/Parser/Html.pm line 80.
Global symbol "$iter" requires explicit package name at
lib/Parser/Html.pm line80.
Global symbol "$buffer" requires explicit package name at
lib/Parser/Html.pm line 87.
Global symbol "$iter" requires explicit package name at
lib/Parser/Html.pm line87.
Global symbol "$buffer" requires explicit package name at
lib/Parser/Html.pm line 89.
Global symbol "$iter" requires explicit package name at
lib/Parser/Html.pm line89.
Compilation failed in require at lib/Parser.pm line 4.
BEGIN failed--compilation aborted at lib/Parser.pm line 4.
汗.....
而且有些oo還是未定義的...........
另外建議使用
package Parser::Html;
use strict;
use Html::Parser;
use vars qw (@ISA);
@ISA= ('Parser');
之後再增加一個 mapping file 存放 Parser::xxx 支援什麼 .xxx,這樣每次增加
支援時,就不需每次修改原身的代碼,也可以增加第三方代碼的支援
另外又可以解決些 oo 的指向 (或者變量區域)問題,減少變量所佔的內存空間
最後,package 最好改成 ShellWeb::Parser::Html; 減少與其他 lib 相沖的可能
ale...@gm... 提到:
>不好意思,那个模块还没测试,确实是写错了。
>大小写肯定要注意的。perl里对大小写是敏感的。
>
>拆分工作的问题还没想,主要是最后的一个部分--html解析的OO还没有做完。这里面牵扯到一个数据的返回然后交给显示部分做显示,也就是解析部分与显示部分的通讯。
>我想基本的模块化都做完,大家可以自由的挑挑自己喜欢或擅长的来作。
>关键在于大家多交流,相互交换一下想法应该就很容易。
>
>2006/1/6, fayland <fa...@gm...>:
>
>
>>我觉的 alexa 你应该对大小写注意一下。虽然 win 下没事,但 linux 下会出错
>>的。比如 lib/Parser/Html.pm 里
>>use HTML::Parser;
>>而不能是
>>use Html::Parser;
>>
>>另外 alexa 想想怎么拆分工作,然后让大家自己选个熟悉的开始合作。
>>
>>ale...@gm... wrote:
>>
>>
>>>早上终于恢复正常了。
>>>可能是sourceforge最近总是在升级吧。
>>>
>>>在 06-1-6,fayland<fa...@gm...> 写道:
>>>
>>>
>>>
>>>>我都很正常,update 没什么问题。
>>>>
>>>>ale...@gm... wrote:
>>>>
>>>>
>>>>
>>>>>这两天有谁cvs 过?是否正常?
>>>>>我这里总是连不上去,想求证一下。
>>>>>
>>>>>--
>>>>>+--------------------------------------------+
>>>>> |By Alexe (http://www.alexe.cn)|
>>>>>+--------------------------------------------+
>>>>>
>>>>>
>>>>>
>>>>>
>>>>--
>>>>Fayland Lam /// http://www.fayland.org/
>>>>
>>>>
>>>>
>>>>
>>>>-------------------------------------------------------
>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>>>for problems? Stop! Download the new AJAX search engine that makes
>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>>>
>>>>
>>>>
>>>>
>>>>
>>>--
>>>+--------------------------------------------+
>>> |By Alexe (http://www.alexe.cn)|
>>>+--------------------------------------------+
>>>
>>>
>>>
>>--
>>Fayland Lam /// http://www.fayland.org/
>>
>>
>>
>>
>>-------------------------------------------------------
>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>for problems? Stop! Download the new AJAX search engine that makes
>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>
>>
>>
>>
>
>
>--
>+--------------------------------------------+
> |By Alexe (http://www.alexe.cn)|
>+--------------------------------------------+
>
>
>
--
Best Regards,
Anthony WU
|
|
From: <ale...@gm...> - 2006-01-07 06:04:46
|
z9bU2mN2c8nPtcTKx87StcTSu7j2uaTX97ixsb6jrNPJ09rO0tTawb212Lmk1/ejrMv50tTEw9Xi wO+1scHL0ru49tbQ16qho9LytMtjdnPJz7XEtPrC67u5srvKx7/J0tTV/bOjuaTX97XEtPrC66Gj Cgq9qNLputy6w6O6CnBhY2thZ2Ug1+66w7jEs8kgU2hlbGxXZWI6OlBhcnNlcjo6SHRtbKOs1eK4 9rvh1Nq9/Mba0N7V/aGjCgpASVNB0+ttYXBwaW5nIGZpbGW1xMGqus/KudPDxNyyu8TcuPiz9rj8 vNPP6s+4tcTA/dfTo78KztKyzr+80rvPwqGjCgoyMDA2LzEvNywgQW50aG9ueSBXVSA8YW50aG9u eXd1eTJrQGdtYWlsLmNvbT46Cj4gR2xvYmFsIHN5bWJvbCAiJGNsYXNzIiByZXF1aXJlcyBleHBs aWNpdCBwYWNrYWdlIG5hbWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZSAxNi4KPiBHbG9i YWwgc3ltYm9sICIkYmFzZV91cmwiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+ IGxpYi9QYXJzZXIvSHRtbC5wbSBsaW5lIDI2Lgo+IEdsb2JhbCBzeW1ib2wgIiRidWZmZXIiIHJl cXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+IGxpYi9QYXJzZXIvSHRtbC5wbSBsaW5l IDMyLgo+IEdsb2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5h bWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZTMyLgo+IEdsb2JhbCBzeW1ib2wgIiRidWZm ZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+IGxpYi9QYXJzZXIvSHRtbC5w bSBsaW5lIDM2Lgo+IEdsb2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBleHBsaWNpdCBwYWNr YWdlIG5hbWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZTM2Lgo+IEdsb2JhbCBzeW1ib2wg IiRidWZmZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+IGxpYi9QYXJzZXIv SHRtbC5wbSBsaW5lIDM4Lgo+IEdsb2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBleHBsaWNp dCBwYWNrYWdlIG5hbWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZTM4Lgo+IEdsb2JhbCBz eW1ib2wgIiRidWZmZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+IGxpYi9Q YXJzZXIvSHRtbC5wbSBsaW5lIDcwLgo+IEdsb2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBl eHBsaWNpdCBwYWNrYWdlIG5hbWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZTcwLgo+IEds b2JhbCBzeW1ib2wgIiR3aW5kb3ciIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+ IGxpYi9QYXJzZXIvSHRtbC5wbSBsaW5lIDc4Lgo+IEdsb2JhbCBzeW1ib2wgIiRidWZmZXIiIHJl cXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+IGxpYi9QYXJzZXIvSHRtbC5wbSBsaW5l IDgwLgo+IEdsb2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5h bWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZTgwLgo+IEdsb2JhbCBzeW1ib2wgIiRidWZm ZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+IGxpYi9QYXJzZXIvSHRtbC5w bSBsaW5lIDg3Lgo+IEdsb2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBleHBsaWNpdCBwYWNr YWdlIG5hbWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZTg3Lgo+IEdsb2JhbCBzeW1ib2wg IiRidWZmZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+IGxpYi9QYXJzZXIv SHRtbC5wbSBsaW5lIDg5Lgo+IEdsb2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBleHBsaWNp dCBwYWNrYWdlIG5hbWUgYXQKPiBsaWIvUGFyc2VyL0h0bWwucG0gbGluZTg5Lgo+IENvbXBpbGF0 aW9uIGZhaWxlZCBpbiByZXF1aXJlIGF0IGxpYi9QYXJzZXIucG0gbGluZSA0Lgo+IEJFR0lOIGZh aWxlZC0tY29tcGlsYXRpb24gYWJvcnRlZCBhdCBsaWIvUGFyc2VyLnBtIGxpbmUgNC4KPgo+ILq5 Li4uLi4KPiC2+MfS09DQqW9v34DKx860tqjBeLXELi4uLi4uLi4uLi4KPiDB7c3ivajXaMq508MK PiBwYWNrYWdlIFBhcnNlcjo6SHRtbDsKPiB1c2Ugc3RyaWN0Owo+IHVzZSBIdG1sOjpQYXJzZXI7 Cj4gdXNlIHZhcnMgcXcgKEBJU0EpOwo+IEBJU0E9ICgnUGFyc2VyJyk7Cj4KPiDWruHh1NnU9rzT 0ruCgCBtYXBwaW5nIGZpbGUgtOa3xSBQYXJzZXI6Onh4eCDWp9SuyrL8TiAueHh4o6zfQJjTw7+0 ztT2vNMKPiDWp9SulXKjrL7NsrvQ6MO/tM7Q3rjE1K3J7bXEtPq0YaOs0rK/ydLU1Pa807XayP23 vbT6tGG1xNan1K4KPiDB7c3i09a/ydLUveKbUdCpIG9vILXE1rjP8iAou/LV39eDwb+FXtPyKYaW 7n2jrJxwydnXg8G/y/mB17XEg8i05r/V6WcKPiDX7uHho6xwYWNrYWdlINfuusO4xLPJIFNoZWxs V2ViOjpQYXJzZXI6Okh0bWw7IJxwydnFY8bky/sgbGliIM/gm1+1xL/JxNwKPgo+Cj4gYWxleGUu Y25AZ21haWwuY29tIMzhtb06Cj4KPiA+sru6w9Liy7yjrMTHuPbEo7/pu7nDu7LiytSjrMi3yrXK x9C0tO3By6GjCj4gPrTz0KHQtL/PtqjSqtei0uK1xKGjcGVybMDvttS089Ch0LTKx8P0uNC1xKGj Cj4gPgo+ID6y8LfWuaTX97XEzsrM4ru5w7vP66Os1vfSqsrH1+6687XE0ru49rK/t9YtLWh0bWy9 4s72tcRPT7u5w7vT0Nf2zeqho9XiwO/D5sejs7a1vdK7uPbK/b7dtcS3tbvYyLu68727uPjP1Mq+ sr+31tf2z9TKvqOs0rK+zcrHveLO9rK/t9bT68/Uyr6yv7fWtcTNqNG2oaMKPiA+ztLP67v5sb61 xMSjv+m7r7a81/bN6qOstPO80r/J0tTX1NPJtcTM9Mz019S8us+yu7a78snDs6S1xMC01/ehowo+ ID652Lz81NrT2rTzvNK24L27wfejrM/gu6W9u7u70rvPws/rt6jTprjDvs263Mjd0tehowo+ID4K PiA+MjAwNi8xLzYsIGZheWxhbmQgPGZheWxhbmRAZ21haWwuY29tPjoKPiA+Cj4gPgo+ID4+ztK+ 9bXEIGFsZXhhIMTj06a4w7bUtPPQodC016LS4tK7z8Kho8vkyLsgd2luIM/Cw7vKwqOstasgbGlu dXggz8K74bP2tO0KPiA+PrXEoaOxyMjnIGxpYi9QYXJzZXIvSHRtbC5wbSDA7wo+ID4+dXNlIEhU TUw6OlBhcnNlcjsKPiA+Prb4srvE3MrHCj4gPj51c2UgSHRtbDo6UGFyc2VyOwo+ID4+Cj4gPj7B 7c3iIGFsZXhhIM/rz+vU9cO0svC31rmk1/ejrMi7uvPIw7TzvNLX1Ly60aG49srsz6S1xL+qyry6 z9f3oaMKPiA+Pgo+ID4+YWxleGUuY25AZ21haWwuY29tIHdyb3RlOgo+ID4+Cj4gPj4KPiA+Pj7U 58nP1tXT2rvWuLTV/bOjwcuhowo+ID4+Pr/JxNzKx3NvdXJjZWZvcmdl1+69/NfcysfU2sn9vLaw yaGjCj4gPj4+Cj4gPj4+1NogMDYtMS02o6xmYXlsYW5kPGZheWxhbmRAZ21haWwuY29tPiDQtLXA o7oKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pj4+ztK2vLrc1f2zo6OsdXBkYXRlIMO7yrLDtM7KzOKh owo+ID4+Pj4KPiA+Pj4+YWxleGUuY25AZ21haWwuY29tIHdyb3RlOgo+ID4+Pj4KPiA+Pj4+Cj4g Pj4+Pgo+ID4+Pj4+1eLBvczs09DLrWN2cyC5/aO/yse38dX9s6Ojvwo+ID4+Pj4+ztLV4sDv19zK x8GssrvJz8ilo6zP68fz1qTSu8/CoaMKPiA+Pj4+Pgo+ID4+Pj4+LS0KPiA+Pj4+PistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+Pj4+PiB8QnkgQWxleGUg KGh0dHA6Ly93d3cuYWxleGUuY24pfAo+ID4+Pj4+Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKwo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+Cj4gPj4+ Pi0tCj4gPj4+PkZheWxhbmQgTGFtIC8vLyBodHRwOi8vd3d3LmZheWxhbmQub3JnLwo+ID4+Pj4K PiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj5UaGlzIFNGLm5ldCBlbWFpbCBpcyBzcG9u c29yZWQgYnk6IFNwbHVuayBJbmMuIERvIHlvdSBncmVwIHRocm91Z2ggbG9nIGZpbGVzCj4gPj4+ PmZvciBwcm9ibGVtcz8gIFN0b3AhICBEb3dubG9hZCB0aGUgbmV3IEFKQVggc2VhcmNoIGVuZ2lu ZSB0aGF0IG1ha2VzCj4gPj4+PnNlYXJjaGluZyB5b3VyIGxvZyBmaWxlcyBhcyBlYXN5IGFzIHN1 cmZpbmcgdGhlICB3ZWIuICBET1dOTE9BRCBTUExVTkshCj4gPj4+Pmh0dHA6Ly9hZHMub3Nkbi5j b20vP2FkX2lkPTc2MzcmYWxsb2NfaWQ9MTY4NjUmb3A9Y2xpY2sKPiA+Pj4+Cj4gPj4+Pgo+ID4+ Pj4KPiA+Pj4+Cj4gPj4+Pgo+ID4+Pi0tCj4gPj4+Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKwo+ID4+PiB8QnkgQWxleGUgKGh0dHA6Ly93d3cuYWxleGUuY24p fAo+ID4+PistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKPiA+ Pj4KPiA+Pj4KPiA+Pj4KPiA+Pi0tCj4gPj5GYXlsYW5kIExhbSAvLy8gaHR0cDovL3d3dy5mYXls YW5kLm9yZy8KPiA+Pgo+ID4+Cj4gPj4KPiA+Pgo+ID4+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+VGhpcyBTRi5uZXQgZW1haWwgaXMg c3BvbnNvcmVkIGJ5OiBTcGx1bmsgSW5jLiBEbyB5b3UgZ3JlcCB0aHJvdWdoIGxvZyBmaWxlcwo+ ID4+Zm9yIHByb2JsZW1zPyAgU3RvcCEgIERvd25sb2FkIHRoZSBuZXcgQUpBWCBzZWFyY2ggZW5n aW5lIHRoYXQgbWFrZXMKPiA+PnNlYXJjaGluZyB5b3VyIGxvZyBmaWxlcyBhcyBlYXN5IGFzIHN1 cmZpbmcgdGhlICB3ZWIuICBET1dOTE9BRCBTUExVTkshCj4gPj5odHRwOi8vYWRzLm9zZG4uY29t Lz9hZF9pZD03NjM3JmFsbG9jX2lkPTE2ODY1Jm9wPWNsaWNrCj4gPj4KPiA+Pgo+ID4+Cj4gPj4K PiA+Cj4gPgo+ID4tLQo+ID4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rCj4gPiB8QnkgQWxleGUgKGh0dHA6Ly93d3cuYWxleGUuY24pfAo+ID4rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPgo+ID4KPiA+Cj4KPiAtLQo+ IEJlc3QgUmVnYXJkcywKPiAgICAgICAgQW50aG9ueSBXVQo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUaGlzIFNGLm5ldCBl bWFpbCBpcyBzcG9uc29yZWQgYnk6IFNwbHVuayBJbmMuIERvIHlvdSBncmVwIHRocm91Z2ggbG9n IGZpbGVzCj4gZm9yIHByb2JsZW1zPyAgU3RvcCEgIERvd25sb2FkIHRoZSBuZXcgQUpBWCBzZWFy Y2ggZW5naW5lIHRoYXQgbWFrZXMKPiBzZWFyY2hpbmcgeW91ciBsb2cgZmlsZXMgYXMgZWFzeSBh cyBzdXJmaW5nIHRoZSAgd2ViLiAgRE9XTkxPQUQgU1BMVU5LIQo+IGh0dHA6Ly9hZHMub3Nkbi5j b20vP2FkX2lkPTc2MzcmYWxsb2NfaWQ9MTY4NjUmb3A9Y2xpY2sKPgo+CgoKLS0KKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogfEJ5IEFsZXhlIChodHRwOi8v d3d3LmFsZXhlLmNuKXwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKwo= |
|
From: Anthony WU <ant...@gm...> - 2006-01-07 09:28:53
Attachments:
main.pl.txt
MIME.pl.txt
|
辛苦你了 =)
MIME.pl (MIME.pl.txt) 主要是定一些 Content-Type、後(副名) 的 解
模(Parser)名
而 main.pl (main.pl.txt) 可成是在的 Parser.pm,用於用 解模(Parser)
於部份,我思所有 file://, http://, ftp:// 等等的都一使用
net.pl 回到 html_view.pl
http:// 的,就直接回 HTTP Header 中的Content-type 到
html_view.pl 用 Parser
ftp:// 或 file:// 的,就在 net.pl 中增加Content-type 回到
html_view.pl 用 Parser
可以少很多 思上的 代兼容
在的 @ISA 例子因代未完善而明,主要想法是直接 ISA 於用
$buffer 的模,我再想想代的再一次提出
ale...@gm... 提到:
>现在cvs上的是我的一个工作副本,由于我在两地工作,所以拿这里当了一个中转。因此cvs上的代码还不是可以正常工作的代码。
>
>建议很好:
>package 最好改成 ShellWeb::Parser::Html,这个会在近期修正。
>
>@ISA与mapping file的联合使用能不能给出更加详细的例子?
>我参考一下。
>
>2006/1/7, Anthony WU <ant...@gm...>:
>
>
>>Global symbol "$class" requires explicit package name at
>>lib/Parser/Html.pm line 16.
>>Global symbol "$base_url" requires explicit package name at
>>lib/Parser/Html.pm line 26.
>>Global symbol "$buffer" requires explicit package name at
>>lib/Parser/Html.pm line 32.
>>Global symbol "$iter" requires explicit package name at
>>lib/Parser/Html.pm line32.
>>Global symbol "$buffer" requires explicit package name at
>>lib/Parser/Html.pm line 36.
>>Global symbol "$iter" requires explicit package name at
>>lib/Parser/Html.pm line36.
>>Global symbol "$buffer" requires explicit package name at
>>lib/Parser/Html.pm line 38.
>>Global symbol "$iter" requires explicit package name at
>>lib/Parser/Html.pm line38.
>>Global symbol "$buffer" requires explicit package name at
>>lib/Parser/Html.pm line 70.
>>Global symbol "$iter" requires explicit package name at
>>lib/Parser/Html.pm line70.
>>Global symbol "$window" requires explicit package name at
>>lib/Parser/Html.pm line 78.
>>Global symbol "$buffer" requires explicit package name at
>>lib/Parser/Html.pm line 80.
>>Global symbol "$iter" requires explicit package name at
>>lib/Parser/Html.pm line80.
>>Global symbol "$buffer" requires explicit package name at
>>lib/Parser/Html.pm line 87.
>>Global symbol "$iter" requires explicit package name at
>>lib/Parser/Html.pm line87.
>>Global symbol "$buffer" requires explicit package name at
>>lib/Parser/Html.pm line 89.
>>Global symbol "$iter" requires explicit package name at
>>lib/Parser/Html.pm line89.
>>Compilation failed in require at lib/Parser.pm line 4.
>>BEGIN failed--compilation aborted at lib/Parser.pm line 4.
>>
>>汗.....
>>而且有些oo是未定的...........
>>另外建使用
>>package Parser::Html;
>>use strict;
>>use Html::Parser;
>>use vars qw (@ISA);
>>@ISA= ('Parser');
>>
>>之後再增加一 mapping file 存放 Parser::xxx 支援什 .xxx,每次增加
>>支援,就不需每次修改原身的代,也可以增加第三方代的支援
>>另外又可以解些 oo 的指向 (或者量域),少量所的存空
>>最後,package 最好改成 ShellWeb::Parser::Html; 少其他 lib 相的可能
>>
>>
>>ale...@gm... 提到:
>>
>>
>>
>>>不好意思,那个模块还没测试,确实是写错了。
>>>大小写肯定要注意的。perl里对大小写是敏感的。
>>>
>>>拆分工作的问题还没想,主要是最后的一个部分--html解析的OO还没有做完。这里面牵扯到一个数据的返回然后交给显示部分做显示,也就是解析部分与显示部分的通讯。
>>>我想基本的模块化都做完,大家可以自由的挑挑自己喜欢或擅长的来作。
>>>关键在于大家多交流,相互交换一下想法应该就很容易。
>>>
>>>2006/1/6, fayland <fa...@gm...>:
>>>
>>>
>>>
>>>
>>>>我觉的 alexa 你应该对大小写注意一下。虽然 win 下没事,但 linux 下会出错
>>>>的。比如 lib/Parser/Html.pm 里
>>>>use HTML::Parser;
>>>>而不能是
>>>>use Html::Parser;
>>>>
>>>>另外 alexa 想想怎么拆分工作,然后让大家自己选个熟悉的开始合作。
>>>>
>>>>ale...@gm... wrote:
>>>>
>>>>
>>>>
>>>>
>>>>>早上终于恢复正常了。
>>>>>可能是sourceforge最近总是在升级吧。
>>>>>
>>>>>在 06-1-6,fayland<fa...@gm...> 写道:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>我都很正常,update 没什么问题。
>>>>>>
>>>>>>ale...@gm... wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>这两天有谁cvs 过?是否正常?
>>>>>>>我这里总是连不上去,想求证一下。
>>>>>>>
>>>>>>>--
>>>>>>>+--------------------------------------------+
>>>>>>>|By Alexe (http://www.alexe.cn)|
>>>>>>>+--------------------------------------------+
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>--
>>>>>>Fayland Lam /// http://www.fayland.org/
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>-------------------------------------------------------
>>>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>>>>>for problems? Stop! Download the new AJAX search engine that makes
>>>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>--
>>>>>+--------------------------------------------+
>>>>>|By Alexe (http://www.alexe.cn)|
>>>>>+--------------------------------------------+
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>--
>>>>Fayland Lam /// http://www.fayland.org/
>>>>
>>>>
>>>>
>>>>
>>>>-------------------------------------------------------
>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>>>for problems? Stop! Download the new AJAX search engine that makes
>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>--
>>>+--------------------------------------------+
>>>|By Alexe (http://www.alexe.cn)|
>>>+--------------------------------------------+
>>>
>>>
>>>
>>>
>>>
>>--
>>Best Regards,
>> Anthony WU
>>
>>
>>
>>-------------------------------------------------------
>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>for problems? Stop! Download the new AJAX search engine that makes
>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>
>>
>>
>>
>
>
>--
>+--------------------------------------------+
> |By Alexe (http://www.alexe.cn)|
>+--------------------------------------------+
>NY薜'
>蕈㈣!kC 濉蘩@^^j!2㈥澧辨,悍a{,H蛟4i(辟堍o'锃Yhr'庄:rX===
>
--
Best Regards,
Anthony WU
|
|
From: <ale...@gm...> - 2006-01-15 03:05:42
|
QW50aG9ueSBXVe+8jArlrprkuYnkuIDkuKpNSU1FLnR4dO+8jOaIkeaDs+aciei/meS4quW/heim geOAggrlkITkuKrkuI3lkIzmlofku7bnmoTliIbnsbvop6PmnpDlupTor6XmmK/lnKhQYXJzZXIu cG3mqKHlnZfkuK3lrozmiJDjgIIKQ29udGVudC1UeXBl55qE5a6a5LmJ5q+U6L6D5Zuw6Zq+77yM 5q+V56uf6Zmk5LqGaHR0cOS7peWklu+8jOWFtuS7lueahOS+i+Wmgu+8mkZ0cOOAgWxvY2FsZmls ZemDveayoeaciei/meagt+eahOWktO+8jOaJgOS7pemDveW/hemhu+a3u+WKoOOAguiAjOebuOWv ueiAjOiogO+8jOWIhuaekOaWh+S7tueahOWQjue8gOW6lOivpeavlOi+g+eugOWNleOAggpDb250 ZW50LVR5cGXlgLznmoTkvb/nlKjvvIzmiJHmg7Plj6/og73lnKhuZXTpgqPovrnlsLHnm7TmjqXl iIbmnpDkuobvvIzlm6DkuLpDb250ZW50LVR5cGXnmoTlgLzkuIDoiKzlnKjkvKDovpPpnZ7mlofm nKzmlbDmja7ml7bmiY3mr5TovoPmnInnlKjvvIzov5nml7ZuZXTkvJrnm7TmjqXlsIbkvKDovpPn moTlhoXlrrnmjInnhadDb250ZW50LVR5cGXlgLzmnaXlrZjlgqjmiJDkuI3lkIznmoTmlofku7bv vIzmnIDlkI7lsIbov5nkuKrmnInmraPnoa7lkI7nvIDnmoTmlofku7blkI3kvKDpgJLnu5lQYXJz ZXIucG3mnaXliIbmnpDjgIIK6L+Z5qC35a+55LqOUGFyc2VyLnBt5p2l6K+077yM5a6D5YiG5p6Q 55qE6YO95piv5pys5Zyw5paH5Lu244CCCgpsb2NhbGZpbGXnmoTpl67popjvvIzmmK/lkKbpgJro v4duZXTmnaXlrZjlgqjkuIDkuKrkuLTml7bmlofku7bvvIzmiJbogIXnm7TmjqXljrvmnKzlnLDm n6Xmib7mlofku7bvvJ8KCuWcqCAwNi0xLTfvvIxBbnRob255IFdVPGFudGhvbnl3dXkya0BnbWFp bC5jb20+IOWGmemBk++8mgo+IOi+m+iLpuS9oOS6hiA9KQo+IE1JTUUucGwgKE1JTUUucGwudHh0 KSDkuLvopoHmmK/lrprnvqnkuIDkupsgQ29udGVudC1UeXBl44CB5b6M57a0KOWJr+aqlOWQjSkg 55qEIOino+mHiwo+IOaooee1hChQYXJzZXIp5ZCN56ixCj4g6ICMIG1haW4ucGwgKG1haW4ucGwu dHh0KSDlj6/nlbbmiJDmmK/nj77lnKjnmoQgUGFyc2VyLnBt77yM55So5pa86Kq/55SoIOino+mH i+aooee1hChQYXJzZXIpCj4g6Zec5pa86YCZ5YCL6YOo5Lu977yM5oiR5qeL5oCd5omA5pyJIGZp bGU6Ly8sIGh0dHA6Ly8sIGZ0cDovLyDnrYnnrYnnmoTpg73ntbHkuIDkvb/nlKgKPiBuZXQucGwg 5Zue5YKz5YiwIGh0bWxfdmlldy5wbAo+IOeVtumAo+e1kOeCuiBodHRwOi8vIOeahOipse+8jOWw seebtOaOpeWbnuWCsyBIVFRQIEhlYWRlciDkuK3nmoRDb250ZW50LXR5cGUg5YiwCj4gaHRtbF92 aWV3LnBsIOiqv+eUqCBQYXJzZXIKPiDnlbbpgKPntZDngrogZnRwOi8vIOaIliBmaWxlOi8vIOea hOipse+8jOWwseWcqCBuZXQucGwg5Lit5aKe5YqgQ29udGVudC10eXBlIOWbnuWCs+WIsAo+IGh0 bWxfdmlldy5wbCDoqr/nlKggUGFyc2VyCj4g6YCZ5qij5oeJ6Kmy5Y+v5Lul5rib5bCR5b6I5aSa IOmCj+i8r+aAnee2reS4iueahCDku6PnorzlhbzlrrnllY/poYwKPiDnj77lnKjnmoQgQElTQSDk vovlrZDlm6Dngrrku6PnorzntZDmp4vmnKrlrozlloTogIzovIPpm6PoqqrmmI7vvIzkuLvopoHm g7Pms5XmmK/nm7TmjqUgSVNBIOaWvOiqv+eUqAo+ICRidWZmZXIg55qE5qih57WE77yM5oiR5YaN 5oOz5oOz5Luj56K855qE57WQ5qeL5YaN5LiA5qyh5o+Q5Ye6Cj4KPgo+IGFsZXhlLmNuQGdtYWls LmNvbSDmj5DliLA6Cj4KPiA+546w5ZyoY3Zz5LiK55qE5piv5oiR55qE5LiA5Liq5bel5L2c5Ymv 5pys77yM55Sx5LqO5oiR5Zyo5Lik5Zyw5bel5L2c77yM5omA5Lul5ou/6L+Z6YeM5b2T5LqG5LiA 5Liq5Lit6L2s44CC5Zug5q2kY3Zz5LiK55qE5Luj56CB6L+Y5LiN5piv5Y+v5Lul5q2j5bi45bel 5L2c55qE5Luj56CB44CCCj4gPgo+ID7lu7rorq7lvojlpb3vvJoKPiA+cGFja2FnZSDmnIDlpb3m lLnmiJAgU2hlbGxXZWI6OlBhcnNlcjo6SHRtbO+8jOi/meS4quS8muWcqOi/keacn+S/ruato+OA ggo+ID4KPiA+QElTQeS4jm1hcHBpbmcgZmlsZeeahOiBlOWQiOS9v+eUqOiDveS4jeiDvee7meWH uuabtOWKoOivpue7hueahOS+i+WtkO+8nwo+ID7miJHlj4LogIPkuIDkuIvjgIIKPiA+Cj4gPjIw MDYvMS83LCBBbnRob255IFdVIDxhbnRob255d3V5MmtAZ21haWwuY29tPjoKPiA+Cj4gPgo+ID4+ R2xvYmFsIHN5bWJvbCAiJGNsYXNzIiByZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5hbWUgYXQK PiA+PmxpYi9QYXJzZXIvSHRtbC5wbSBsaW5lIDE2Lgo+ID4+R2xvYmFsIHN5bWJvbCAiJGJhc2Vf dXJsIiByZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5hbWUgYXQKPiA+PmxpYi9QYXJzZXIvSHRt bC5wbSBsaW5lIDI2Lgo+ID4+R2xvYmFsIHN5bWJvbCAiJGJ1ZmZlciIgcmVxdWlyZXMgZXhwbGlj aXQgcGFja2FnZSBuYW1lIGF0Cj4gPj5saWIvUGFyc2VyL0h0bWwucG0gbGluZSAzMi4KPiA+Pkds b2JhbCBzeW1ib2wgIiRpdGVyIiByZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5hbWUgYXQKPiA+ PmxpYi9QYXJzZXIvSHRtbC5wbSBsaW5lMzIuCj4gPj5HbG9iYWwgc3ltYm9sICIkYnVmZmVyIiBy ZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5hbWUgYXQKPiA+PmxpYi9QYXJzZXIvSHRtbC5wbSBs aW5lIDM2Lgo+ID4+R2xvYmFsIHN5bWJvbCAiJGl0ZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2th Z2UgbmFtZSBhdAo+ID4+bGliL1BhcnNlci9IdG1sLnBtIGxpbmUzNi4KPiA+Pkdsb2JhbCBzeW1i b2wgIiRidWZmZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+ID4+bGliL1Bh cnNlci9IdG1sLnBtIGxpbmUgMzguCj4gPj5HbG9iYWwgc3ltYm9sICIkaXRlciIgcmVxdWlyZXMg ZXhwbGljaXQgcGFja2FnZSBuYW1lIGF0Cj4gPj5saWIvUGFyc2VyL0h0bWwucG0gbGluZTM4Lgo+ ID4+R2xvYmFsIHN5bWJvbCAiJGJ1ZmZlciIgcmVxdWlyZXMgZXhwbGljaXQgcGFja2FnZSBuYW1l IGF0Cj4gPj5saWIvUGFyc2VyL0h0bWwucG0gbGluZSA3MC4KPiA+Pkdsb2JhbCBzeW1ib2wgIiRp dGVyIiByZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5hbWUgYXQKPiA+PmxpYi9QYXJzZXIvSHRt bC5wbSBsaW5lNzAuCj4gPj5HbG9iYWwgc3ltYm9sICIkd2luZG93IiByZXF1aXJlcyBleHBsaWNp dCBwYWNrYWdlIG5hbWUgYXQKPiA+PmxpYi9QYXJzZXIvSHRtbC5wbSBsaW5lIDc4Lgo+ID4+R2xv YmFsIHN5bWJvbCAiJGJ1ZmZlciIgcmVxdWlyZXMgZXhwbGljaXQgcGFja2FnZSBuYW1lIGF0Cj4g Pj5saWIvUGFyc2VyL0h0bWwucG0gbGluZSA4MC4KPiA+Pkdsb2JhbCBzeW1ib2wgIiRpdGVyIiBy ZXF1aXJlcyBleHBsaWNpdCBwYWNrYWdlIG5hbWUgYXQKPiA+PmxpYi9QYXJzZXIvSHRtbC5wbSBs aW5lODAuCj4gPj5HbG9iYWwgc3ltYm9sICIkYnVmZmVyIiByZXF1aXJlcyBleHBsaWNpdCBwYWNr YWdlIG5hbWUgYXQKPiA+PmxpYi9QYXJzZXIvSHRtbC5wbSBsaW5lIDg3Lgo+ID4+R2xvYmFsIHN5 bWJvbCAiJGl0ZXIiIHJlcXVpcmVzIGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+ID4+bGliL1Bh cnNlci9IdG1sLnBtIGxpbmU4Ny4KPiA+Pkdsb2JhbCBzeW1ib2wgIiRidWZmZXIiIHJlcXVpcmVz IGV4cGxpY2l0IHBhY2thZ2UgbmFtZSBhdAo+ID4+bGliL1BhcnNlci9IdG1sLnBtIGxpbmUgODku Cj4gPj5HbG9iYWwgc3ltYm9sICIkaXRlciIgcmVxdWlyZXMgZXhwbGljaXQgcGFja2FnZSBuYW1l IGF0Cj4gPj5saWIvUGFyc2VyL0h0bWwucG0gbGluZTg5Lgo+ID4+Q29tcGlsYXRpb24gZmFpbGVk IGluIHJlcXVpcmUgYXQgbGliL1BhcnNlci5wbSBsaW5lIDQuCj4gPj5CRUdJTiBmYWlsZWQtLWNv bXBpbGF0aW9uIGFib3J0ZWQgYXQgbGliL1BhcnNlci5wbSBsaW5lIDQuCj4gPj4KPiA+Puaxly4u Li4uCj4gPj7ogIzkuJTmnInkuptvb+mChOaYr+acquWumue+qeeahC4uLi4uLi4uLi4uCj4gPj7l j6blpJblu7rorbDkvb/nlKgKPiA+PnBhY2thZ2UgUGFyc2VyOjpIdG1sOwo+ID4+dXNlIHN0cmlj dDsKPiA+PnVzZSBIdG1sOjpQYXJzZXI7Cj4gPj51c2UgdmFycyBxdyAoQElTQSk7Cj4gPj5ASVNB PSAoJ1BhcnNlcicpOwo+ID4+Cj4gPj7kuYvlvozlho3lop7liqDkuIDlgIsgbWFwcGluZyBmaWxl IOWtmOaUviBQYXJzZXI6Onh4eCDmlK/mj7Tku4DpurwgLnh4eO+8jOmAmeaoo+avj+asoeWinuWK oAo+ID4+5pSv5o+05pmC77yM5bCx5LiN6ZyA5q+P5qyh5L+u5pS55Y6f6Lqr55qE5Luj56K877yM 5Lmf5Y+v5Lul5aKe5Yqg56ys5LiJ5pa55Luj56K855qE5pSv5o+0Cj4gPj7lj6blpJblj4jlj6/k u6Xop6Pmsbrkupsgb28g55qE5oyH5ZCRICjmiJbogIXororph4/ljYDln58p5ZWP6aGM77yM5rib 5bCR6K6K6YeP5omA5L2U55qE5YWn5a2Y56m66ZaTCj4gPj7mnIDlvozvvIxwYWNrYWdlIOacgOWl veaUueaIkCBTaGVsbFdlYjo6UGFyc2VyOjpIdG1sOyDmuJvlsJHoiIflhbbku5YgbGliIOebuOay lueahOWPr+iDvQo+ID4+Cj4gPj4KPiA+PmFsZXhlLmNuQGdtYWlsLmNvbSDmj5DliLA6Cj4gPj4K PiA+Pgo+ID4+Cj4gPj4+5LiN5aW95oSP5oCd77yM6YKj5Liq5qih5Z2X6L+Y5rKh5rWL6K+V77yM 56Gu5a6e5piv5YaZ6ZSZ5LqG44CCCj4gPj4+5aSn5bCP5YaZ6IKv5a6a6KaB5rOo5oSP55qE44CC cGVybOmHjOWvueWkp+Wwj+WGmeaYr+aVj+aEn+eahOOAggo+ID4+Pgo+ID4+PuaLhuWIhuW3peS9 nOeahOmXrumimOi/mOayoeaDs++8jOS4u+imgeaYr+acgOWQjueahOS4gOS4qumDqOWIhi0taHRt bOino+aekOeahE9P6L+Y5rKh5pyJ5YGa5a6M44CC6L+Z6YeM6Z2i54m15omv5Yiw5LiA5Liq5pWw 5o2u55qE6L+U5Zue54S25ZCO5Lqk57uZ5pi+56S66YOo5YiG5YGa5pi+56S677yM5Lmf5bCx5piv 6Kej5p6Q6YOo5YiG5LiO5pi+56S66YOo5YiG55qE6YCa6K6v44CCCj4gPj4+5oiR5oOz5Z+65pys 55qE5qih5Z2X5YyW6YO95YGa5a6M77yM5aSn5a625Y+v5Lul6Ieq55Sx55qE5oyR5oyR6Ieq5bex 5Zac5qyi5oiW5pOF6ZW/55qE5p2l5L2c44CCCj4gPj4+5YWz6ZSu5Zyo5LqO5aSn5a625aSa5Lqk 5rWB77yM55u45LqS5Lqk5o2i5LiA5LiL5oOz5rOV5bqU6K+l5bCx5b6I5a655piT44CCCj4gPj4+ Cj4gPj4+MjAwNi8xLzYsIGZheWxhbmQgPGZheWxhbmRAZ21haWwuY29tPjoKPiA+Pj4KPiA+Pj4K PiA+Pj4KPiA+Pj4KPiA+Pj4+5oiR6KeJ55qEIGFsZXhhIOS9oOW6lOivpeWvueWkp+Wwj+WGmeaz qOaEj+S4gOS4i+OAguiZveeEtiB3aW4g5LiL5rKh5LqL77yM5L2GIGxpbnV4IOS4i+S8muWHuumU mQo+ID4+Pj7nmoTjgILmr5TlpoIgbGliL1BhcnNlci9IdG1sLnBtIOmHjAo+ID4+Pj51c2UgSFRN TDo6UGFyc2VyOwo+ID4+Pj7ogIzkuI3og73mmK8KPiA+Pj4+dXNlIEh0bWw6OlBhcnNlcjsKPiA+ Pj4+Cj4gPj4+PuWPpuWkliBhbGV4YSDmg7Pmg7PmgI7kuYjmi4bliIblt6XkvZzvvIznhLblkI7o rqnlpKflrrboh6rlt7HpgInkuKrnhp/mgonnmoTlvIDlp4vlkIjkvZzjgIIKPiA+Pj4+Cj4gPj4+ PmFsZXhlLmNuQGdtYWlsLmNvbSB3cm90ZToKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+Cj4g Pj4+Pj7ml6nkuIrnu4jkuo7mgaLlpI3mraPluLjkuobjgIIKPiA+Pj4+PuWPr+iDveaYr3NvdXJj ZWZvcmdl5pyA6L+R5oC75piv5Zyo5Y2H57qn5ZCn44CCCj4gPj4+Pj4KPiA+Pj4+PuWcqCAwNi0x LTbvvIxmYXlsYW5kPGZheWxhbmRAZ21haWwuY29tPiDlhpnpgZPvvJoKPiA+Pj4+Pgo+ID4+Pj4+ Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+Cj4gPj4+Pj4+5oiR6YO95b6I5q2j5bi477yMdXBkYXRl IOayoeS7gOS5iOmXrumimOOAggo+ID4+Pj4+Pgo+ID4+Pj4+PmFsZXhlLmNuQGdtYWlsLmNvbSB3 cm90ZToKPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+ Pj4+6L+Z5Lik5aSp5pyJ6LCBY3ZzIOi/h++8n+aYr+WQpuato+W4uO+8nwo+ID4+Pj4+Pj7miJHo v5nph4zmgLvmmK/ov57kuI3kuIrljrvvvIzmg7PmsYLor4HkuIDkuIvjgIIKPiA+Pj4+Pj4+Cj4g Pj4+Pj4+Pi0tCj4gPj4+Pj4+PistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsKPiA+Pj4+Pj4+fEJ5IEFsZXhlIChodHRwOi8vd3d3LmFsZXhlLmNuKXwKPiA+Pj4+ Pj4+Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ID4+Pj4+ Pj4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pgo+ID4+ Pj4+Pi0tCj4gPj4+Pj4+RmF5bGFuZCBMYW0gLy8vIGh0dHA6Ly93d3cuZmF5bGFuZC5vcmcvCj4g Pj4+Pj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+LS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4+PlRoaXMgU0Yu bmV0IGVtYWlsIGlzIHNwb25zb3JlZCBieTogU3BsdW5rIEluYy4gRG8geW91IGdyZXAgdGhyb3Vn aCBsb2cgZmlsZXMKPiA+Pj4+Pj5mb3IgcHJvYmxlbXM/ICBTdG9wISAgRG93bmxvYWQgdGhlIG5l dyBBSkFYIHNlYXJjaCBlbmdpbmUgdGhhdCBtYWtlcwo+ID4+Pj4+PnNlYXJjaGluZyB5b3VyIGxv ZyBmaWxlcyBhcyBlYXN5IGFzIHN1cmZpbmcgdGhlICB3ZWIuICBET1dOTE9BRCBTUExVTkshCj4g Pj4+Pj4+aHR0cDovL2Fkcy5vc2RuLmNvbS8/YWRfaWQ9NzYzNyZhbGxvY19pZD0xNjg2NSZvcD1j bGljawo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+ Pgo+ID4+Pj4+Pgo+ID4+Pj4+LS0KPiA+Pj4+PistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKPiA+Pj4+PnxCeSBBbGV4ZSAoaHR0cDovL3d3dy5hbGV4ZS5jbil8 Cj4gPj4+Pj4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4g Pj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+Cj4gPj4+Pj4KPiA+Pj4+Pgo+ID4+Pj4tLQo+ID4+Pj5GYXls YW5kIExhbSAvLy8gaHR0cDovL3d3dy5mYXlsYW5kLm9yZy8KPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4K PiA+Pj4+Cj4gPj4+Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiA+Pj4+VGhpcyBTRi5uZXQgZW1haWwgaXMgc3BvbnNvcmVkIGJ5OiBTcGx1 bmsgSW5jLiBEbyB5b3UgZ3JlcCB0aHJvdWdoIGxvZyBmaWxlcwo+ID4+Pj5mb3IgcHJvYmxlbXM/ ICBTdG9wISAgRG93bmxvYWQgdGhlIG5ldyBBSkFYIHNlYXJjaCBlbmdpbmUgdGhhdCBtYWtlcwo+ ID4+Pj5zZWFyY2hpbmcgeW91ciBsb2cgZmlsZXMgYXMgZWFzeSBhcyBzdXJmaW5nIHRoZSAgd2Vi LiAgRE9XTkxPQUQgU1BMVU5LIQo+ID4+Pj5odHRwOi8vYWRzLm9zZG4uY29tLz9hZF9pZD03NjM3 JmFsbG9jX2lkPTE2ODY1Jm9wPWNsaWNrCj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+Cj4gPj4+Pgo+ID4+ Pj4KPiA+Pj4+Cj4gPj4+LS0KPiA+Pj4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCj4gPj4+fEJ5IEFsZXhlIChodHRwOi8vd3d3LmFsZXhlLmNuKXwKPiA+Pj4r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gPj4+Cj4gPj4+ Cj4gPj4+Cj4gPj4+Cj4gPj4+Cj4gPj4tLQo+ID4+QmVzdCBSZWdhcmRzLAo+ID4+ICAgICAgIEFu dGhvbnkgV1UKPiA+Pgo+ID4+Cj4gPj4KPiA+Pi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PlRoaXMgU0YubmV0IGVtYWlsIGlzIHNwb25z b3JlZCBieTogU3BsdW5rIEluYy4gRG8geW91IGdyZXAgdGhyb3VnaCBsb2cgZmlsZXMKPiA+PmZv ciBwcm9ibGVtcz8gIFN0b3AhICBEb3dubG9hZCB0aGUgbmV3IEFKQVggc2VhcmNoIGVuZ2luZSB0 aGF0IG1ha2VzCj4gPj5zZWFyY2hpbmcgeW91ciBsb2cgZmlsZXMgYXMgZWFzeSBhcyBzdXJmaW5n IHRoZSAgd2ViLiAgRE9XTkxPQUQgU1BMVU5LIQo+ID4+aHR0cDovL2Fkcy5vc2RuLmNvbS8/YWRf aWQ9NzYzNyZhbGxvY19pZD0xNjg2NSZvcD1jbGljawo+ID4+Cj4gPj4KPiA+Pgo+ID4+Cj4gPgo+ ID4KPiA+LS0KPiA+Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kwo+ID4gfEJ5IEFsZXhlIChodHRwOi8vd3d3LmFsZXhlLmNuKXwKPiA+Ky0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+ID5OGOeQgFnolpzpl4Xlpajug43vv71/ J+efiOi+tee0pe6bge6dleWjvg7lsJDvv71/Cj4gPuiViOixruOIoyHmnoUf5aWn55GN5amH55Wj 6Y2FaxLnp7pD77+9fyAgICAgIOa/ie6cs+WRtOiYqQJAXuiPpO6FgV7vv71/CO6dgOixmOenhO6Y oO+/vX8eau+/vX8h5aacMuOIpea+pwfpiLrvv71/Gui+qO6DpO+/vX8s5oKN6YmDC2F7B++/vX8M 6Y2XLO+/vX8DSOibnzTilannqJvvv71/ae+/vX8o6L6f5aCNb+i2mCfplIPpuZlZaHIn5bqEOumO tnJY5riSPT09Cj4gPgo+Cj4gLS0KPiBCZXN0IFJlZ2FyZHMsCj4gICAgICAgICBBbnRob255IFdV Cj4KPgo+Cj4gdXNlIHN0cmljdDsKPiB1c2Ugd2FybmluZ3M7Cj4gcmVxdWlyZSAnTUlNRS5wbCc7 Cj4gbXkgJGZpbGUgPSAkQVJHVlswXTsKPiAkQVJHVlswXSA9fiAvKFwuLio/KSQvOwo+IG15ICRF WFRFTlNJT04gPSAkMTsKPiBpZiAoZXhpc3RzICgkU2hlbGxXZWI6Ok1JTUU6OkVYVEVOU0lPTnsk RVhURU5TSU9OfSkgJiYgZXhpc3RzICgkU2hlbGxXZWI6Ok1JTUU6Ok1JTUV7JFNoZWxsV2ViOjpN SU1FOjpFWFRFTlNJT057JEVYVEVOU0lPTn19KSkKPiB7Cj4gICAgICAgICBteSAkbW9kID0gJFNo ZWxsV2ViOjpNSU1FOjpNSU1FeyRTaGVsbFdlYjo6TUlNRTo6RVhURU5TSU9OeyRFWFRFTlNJT059 fTsKPiAgICAgICAgICZpbmNsdWRlX29uY2UgKCRtb2QpOwo+ICAgICAgICAgbXkgJFBhcnNlciA9 IG5ldyB7JG1vZH07Cj4gfQo+Cj4gc3ViIGluY2x1ZGVfb25jZQo+IHsKPiAgICAgICAgIG15ICRt b2RuYW1lID0gc2hpZnQgKEBfKTsKPiAgICAgICAgIG15ICRtb2RwYXRoID0gc3ByaW50ZiAoJyVz LnBtJywgJG1vZG5hbWUpOwo+ICAgICAgICAgJG1vZHBhdGggPX4gcy9cOlw6L1wvL2c7Cj4gICAg ICAgICBpZiAoIWdyZXAgKC9eXFEkbW9kcGF0aFxFJC8sIGtleXMgKCVJTkMpKSkKPiAgICAgICAg IHsKPiAgICAgICAgICAgICAgICAgZXZhbCAoInVzZSAkbW9kbmFtZSIpOwo+ICAgICAgICAgfQo+ IH0KPiBwYWNrYWdlIFNoZWxsV2ViOjpNSU1FOwo+ICRTaGVsbFdlYjo6TUlNRTo6RVhURU5TSU9O eycudHh0J30gPSAndGV4dC9wbGFpbic7Cj4gJFNoZWxsV2ViOjpNSU1FOjpFWFRFTlNJT057Jy5o dG1sJ30gPSAndGV4dC9odG1sJzsKPiAkU2hlbGxXZWI6Ok1JTUU6OkVYVEVOU0lPTnsnLmh0bSd9 ID0gJ3RleHQvaHRtbCc7Cj4gJFNoZWxsV2ViOjpNSU1FOjpFWFRFTlNJT057Jy54aHRtbCd9ID0g J3RleHQvaHRtbCc7Cj4gJFNoZWxsV2ViOjpNSU1FOjpFWFRFTlNJT057Jy54bWwnfSA9ICd0ZXh0 L3htbCc7Cj4gJFNoZWxsV2ViOjpNSU1FOjpFWFRFTlNJT057Jy5qcGUnfSA9ICdpbWFnZS9qcGVn JzsKPiAkU2hlbGxXZWI6Ok1JTUU6OkVYVEVOU0lPTnsnLmpwZWcnfSA9ICdpbWFnZS9qcGVnJzsK PiAkU2hlbGxXZWI6Ok1JTUU6OkVYVEVOU0lPTnsnLmpwZyd9ID0gJ2ltYWdlL2pwZWcnOwo+ICRT aGVsbFdlYjo6TUlNRTo6RVhURU5TSU9OeycuZ2lmJ30gPSAnaW1hZ2UvZ2lmJzsKPiAkU2hlbGxX ZWI6Ok1JTUU6OkVYVEVOU0lPTnsnLnBuZyd9ID0gJ2ltYWdlL3BuZyc7Cj4gJFNoZWxsV2ViOjpN SU1FOjpFWFRFTlNJT057Jy50aWYnfSA9ICdpbWFnZS90aWZmJzsKPiAkU2hlbGxXZWI6Ok1JTUU6 OkVYVEVOU0lPTnsnLnRpZmYnfSA9ICdpbWFnZS90aWZmJzsKPiAkU2hlbGxXZWI6Ok1JTUU6OkVY VEVOU0lPTnsnLnhibSd9ID0gJ2ltYWdlL3gteGJpdG1hcCc7Cj4gJFNoZWxsV2ViOjpNSU1FOjpF WFRFTlNJT057Jy54bXAnfSA9ICdpbWFnZS94cG0nOwo+ICRTaGVsbFdlYjo6TUlNRTo6TUlNRXsn dGV4dC9wbGFpbid9ID0gJ1NoZWxsV2ViOjpQYXJzZXI6OlRYVCc7Cj4gJFNoZWxsV2ViOjpNSU1F OjpNSU1Feyd0ZXh0L2h0bWwnfSA9ICdTaGVsbFdlYjo6UGFyc2VyOjpIVE1MJzsKPiAkU2hlbGxX ZWI6Ok1JTUU6Ok1JTUV7J3RleHQveG1sJ30gPSAnU2hlbGxXZWI6OlBhcnNlcjo6WE1MJzsKPiAk U2hlbGxXZWI6Ok1JTUU6Ok1JTUV7J2ltYWdlL2pwZWcnfSA9ICdTaGVsbFdlYjo6UGFyc2VyOjpJ TUFHRSc7Cj4gJFNoZWxsV2ViOjpNSU1FOjpNSU1FeydpbWFnZS9naWYnfSA9ICdTaGVsbFdlYjo6 UGFyc2VyOjpJTUFHRSc7Cj4gJFNoZWxsV2ViOjpNSU1FOjpNSU1FeydpbWFnZS9wbmcnfSA9ICdT aGVsbFdlYjo6UGFyc2VyOjpJTUFHRSc7Cj4gJFNoZWxsV2ViOjpNSU1FOjpNSU1FeydpbWFnZS90 aWZmJ30gPSAnU2hlbGxXZWI6OlBhcnNlcjo6SU1BR0UnOwo+ICRTaGVsbFdlYjo6TUlNRTo6TUlN RXsnaW1hZ2UveC14Yml0bWFwJ30gPSAnU2hlbGxXZWI6OlBhcnNlcjo6SU1BR0UnOwo+ICRTaGVs bFdlYjo6TUlNRTo6TUlNRXsnaW1hZ2UveHBtJ30gPSAnU2hlbGxXZWI6OlBhcnNlcjo6SU1BR0Un Owo+IDE7Cj4KPgoKCi0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsKIHxCeSBBbGV4ZSAoaHR0cDovL3d3dy5hbGV4ZS5jbil8CistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK |
|
From: Anthony WU <ant...@gm...> - 2006-01-15 09:09:16
|
Hi Alexe
關於 MIME.txt,我覺得於 net.pl 中解釋回傳的原因
前提方面
一:所有 URI 的連接使用 net.pl 取得,例如 file://, http://, ftp://,
udp:// (?) 等等的由 net.pl 取得,再交由 view.pl 做顯示。
二:以通用的調用方式取得 Parser 方法。
使用 net.pl 增加 HTTP HEADER 之原因
一:方便以後 HTML 方式的功能,例如 cookie 設定、charset 、轉向參照頁
等等的,這些部份而言 與 javascript 及 view.pl 有關。
二:關於 HTTP 的方式的功能,例如 Expires: ,Date: , Pragma: cache,
Content-Disposition 等等的獨特 Header
1:遇到 Content-Disposition 或 不知道後綴時,需要彈出popup向用戶
詢問是否下載
2:Date: 這個可以與 ftp 的檔案最後修改日期看齊
3:Pragma: cache 、 Expires 時不可能使用 後綴如
http://test.com/test.pl?get=login 存成 test.html 記錄,否則可能與 其他如
http://test.com/test.pl?get=download 等等的相沖,當然可以說使用 random
名稱,不過這樣做就比較難兼容 Pragma: cache 、 Expires 的功能
ale...@gm... 提到:
>Anthony WU,
>定义一个MIME.txt,我想有这个必要。
>各个不同文件的分类解析应该是在Parser.pm模块中完成。
>Content-Type的定义比较困难,毕竟除了http以外,其他的例如:Ftp、localfile都没有这样的头,所以都必须添加。而相对而言,分析文件的后缀应该比较简单。
>Content-Type值的使用,我想可能在net那边就直接分析了,因为Content-Type的值一般在传输非文本数据时才比较有用,这时net会直接将传输的内容按照Content-Type值来存储成不同的文件,最后将这个有正确后缀的文件名传递给Parser.pm来分析。
>这样对于Parser.pm来说,它分析的都是本地文件。
>
>localfile的问题,是否通过net来存储一个临时文件,或者直接去本地查找文件?
>
>在 06-1-7,Anthony WU<ant...@gm...> 写道:
>
>
>>辛苦你了 =)
>>MIME.pl (MIME.pl.txt) 主要是定義一些 Content-Type、後綴(副檔名) 的 解釋
>>模組(Parser)名稱
>>而 main.pl (main.pl.txt) 可當成是現在的 Parser.pm,用於調用 解釋模組(Parser)
>>關於這個部份,我構思所有 file://, http://, ftp:// 等等的都統一使用
>>net.pl 回傳到 html_view.pl
>>當連結為 http:// 的話,就直接回傳 HTTP Header 中的Content-type 到
>>html_view.pl 調用 Parser
>>當連結為 ftp:// 或 file:// 的話,就在 net.pl 中增加Content-type 回傳到
>>html_view.pl 調用 Parser
>>這樣應該可以減少很多 邏輯思維上的 代碼兼容問題
>>現在的 @ISA 例子因為代碼結構未完善而較難說明,主要想法是直接 ISA 於調用
>>$buffer 的模組,我再想想代碼的結構再一次提出
>>
>>
>>ale...@gm... 提到:
>>
>>
>>
>>>现在cvs上的是我的一个工作副本,由于我在两地工作,所以拿这里当了一个中转。因此cvs上的代码还不是可以正常工作的代码。
>>>
>>>建议很好:
>>>package 最好改成 ShellWeb::Parser::Html,这个会在近期修正。
>>>
>>>@ISA与mapping file的联合使用能不能给出更加详细的例子?
>>>我参考一下。
>>>
>>>2006/1/7, Anthony WU <ant...@gm...>:
>>>
>>>
>>>
>>>
>>>>Global symbol "$class" requires explicit package name at
>>>>lib/Parser/Html.pm line 16.
>>>>Global symbol "$base_url" requires explicit package name at
>>>>lib/Parser/Html.pm line 26.
>>>>Global symbol "$buffer" requires explicit package name at
>>>>lib/Parser/Html.pm line 32.
>>>>Global symbol "$iter" requires explicit package name at
>>>>lib/Parser/Html.pm line32.
>>>>Global symbol "$buffer" requires explicit package name at
>>>>lib/Parser/Html.pm line 36.
>>>>Global symbol "$iter" requires explicit package name at
>>>>lib/Parser/Html.pm line36.
>>>>Global symbol "$buffer" requires explicit package name at
>>>>lib/Parser/Html.pm line 38.
>>>>Global symbol "$iter" requires explicit package name at
>>>>lib/Parser/Html.pm line38.
>>>>Global symbol "$buffer" requires explicit package name at
>>>>lib/Parser/Html.pm line 70.
>>>>Global symbol "$iter" requires explicit package name at
>>>>lib/Parser/Html.pm line70.
>>>>Global symbol "$window" requires explicit package name at
>>>>lib/Parser/Html.pm line 78.
>>>>Global symbol "$buffer" requires explicit package name at
>>>>lib/Parser/Html.pm line 80.
>>>>Global symbol "$iter" requires explicit package name at
>>>>lib/Parser/Html.pm line80.
>>>>Global symbol "$buffer" requires explicit package name at
>>>>lib/Parser/Html.pm line 87.
>>>>Global symbol "$iter" requires explicit package name at
>>>>lib/Parser/Html.pm line87.
>>>>Global symbol "$buffer" requires explicit package name at
>>>>lib/Parser/Html.pm line 89.
>>>>Global symbol "$iter" requires explicit package name at
>>>>lib/Parser/Html.pm line89.
>>>>Compilation failed in require at lib/Parser.pm line 4.
>>>>BEGIN failed--compilation aborted at lib/Parser.pm line 4.
>>>>
>>>>汗.....
>>>>而且有些oo還是未定義的...........
>>>>另外建議使用
>>>>package Parser::Html;
>>>>use strict;
>>>>use Html::Parser;
>>>>use vars qw (@ISA);
>>>>@ISA= ('Parser');
>>>>
>>>>之後再增加一個 mapping file 存放 Parser::xxx 支援什麼 .xxx,這樣每次增加
>>>>支援時,就不需每次修改原身的代碼,也可以增加第三方代碼的支援
>>>>另外又可以解決些 oo 的指向 (或者變量區域)問題,減少變量所佔的內存空間
>>>>最後,package 最好改成 ShellWeb::Parser::Html; 減少與其他 lib 相沖的可能
>>>>
>>>>
>>>>ale...@gm... 提到:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>不好意思,那个模块还没测试,确实是写错了。
>>>>>大小写肯定要注意的。perl里对大小写是敏感的。
>>>>>
>>>>>拆分工作的问题还没想,主要是最后的一个部分--html解析的OO还没有做完。这里面牵扯到一个数据的返回然后交给显示部分做显示,也就是解析部分与显示部分的通讯。
>>>>>我想基本的模块化都做完,大家可以自由的挑挑自己喜欢或擅长的来作。
>>>>>关键在于大家多交流,相互交换一下想法应该就很容易。
>>>>>
>>>>>2006/1/6, fayland <fa...@gm...>:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>我觉的 alexa 你应该对大小写注意一下。虽然 win 下没事,但 linux 下会出错
>>>>>>的。比如 lib/Parser/Html.pm 里
>>>>>>use HTML::Parser;
>>>>>>而不能是
>>>>>>use Html::Parser;
>>>>>>
>>>>>>另外 alexa 想想怎么拆分工作,然后让大家自己选个熟悉的开始合作。
>>>>>>
>>>>>>ale...@gm... wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>>早上终于恢复正常了。
>>>>>>>可能是sourceforge最近总是在升级吧。
>>>>>>>
>>>>>>>在 06-1-6,fayland<fa...@gm...> 写道:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>我都很正常,update 没什么问题。
>>>>>>>>
>>>>>>>>ale...@gm... wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>>这两天有谁cvs 过?是否正常?
>>>>>>>>>我这里总是连不上去,想求证一下。
>>>>>>>>>
>>>>>>>>>--
>>>>>>>>>+--------------------------------------------+
>>>>>>>>>|By Alexe (http://www.alexe.cn)|
>>>>>>>>>+--------------------------------------------+
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>--
>>>>>>>>Fayland Lam /// http://www.fayland.org/
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>-------------------------------------------------------
>>>>>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>>>>>>>for problems? Stop! Download the new AJAX search engine that makes
>>>>>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>>>>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>--
>>>>>>>+--------------------------------------------+
>>>>>>>|By Alexe (http://www.alexe.cn)|
>>>>>>>+--------------------------------------------+
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>--
>>>>>>Fayland Lam /// http://www.fayland.org/
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>-------------------------------------------------------
>>>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>>>>>for problems? Stop! Download the new AJAX search engine that makes
>>>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>--
>>>>>+--------------------------------------------+
>>>>>|By Alexe (http://www.alexe.cn)|
>>>>>+--------------------------------------------+
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>--
>>>>Best Regards,
>>>> Anthony WU
>>>>
>>>>
>>>>
>>>>-------------------------------------------------------
>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
>>>>for problems? Stop! Download the new AJAX search engine that makes
>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>--
>>Best Regards,
>> Anthony WU
>>
>>
>>
>>use strict;
>>use warnings;
>>require 'MIME.pl';
>>my $file = $ARGV[0];
>>$ARGV[0] =~ /(\..*?)$/;
>>my $EXTENSION = $1;
>>if (exists ($ShellWeb::MIME::EXTENSION{$EXTENSION}) && exists ($ShellWeb::MIME::MIME{$ShellWeb::MIME::EXTENSION{$EXTENSION}}))
>>{
>> my $mod = $ShellWeb::MIME::MIME{$ShellWeb::MIME::EXTENSION{$EXTENSION}};
>> &include_once ($mod);
>> my $Parser = new {$mod};
>>}
>>
>>sub include_once
>>{
>> my $modname = shift (@_);
>> my $modpath = sprintf ('%s.pm', $modname);
>> $modpath =~ s/\:\:/\//g;
>> if (!grep (/^\Q$modpath\E$/, keys (%INC)))
>> {
>> eval ("use $modname");
>> }
>>}
>>package ShellWeb::MIME;
>>$ShellWeb::MIME::EXTENSION{'.txt'} = 'text/plain';
>>$ShellWeb::MIME::EXTENSION{'.html'} = 'text/html';
>>$ShellWeb::MIME::EXTENSION{'.htm'} = 'text/html';
>>$ShellWeb::MIME::EXTENSION{'.xhtml'} = 'text/html';
>>$ShellWeb::MIME::EXTENSION{'.xml'} = 'text/xml';
>>$ShellWeb::MIME::EXTENSION{'.jpe'} = 'image/jpeg';
>>$ShellWeb::MIME::EXTENSION{'.jpeg'} = 'image/jpeg';
>>$ShellWeb::MIME::EXTENSION{'.jpg'} = 'image/jpeg';
>>$ShellWeb::MIME::EXTENSION{'.gif'} = 'image/gif';
>>$ShellWeb::MIME::EXTENSION{'.png'} = 'image/png';
>>$ShellWeb::MIME::EXTENSION{'.tif'} = 'image/tiff';
>>$ShellWeb::MIME::EXTENSION{'.tiff'} = 'image/tiff';
>>$ShellWeb::MIME::EXTENSION{'.xbm'} = 'image/x-xbitmap';
>>$ShellWeb::MIME::EXTENSION{'.xmp'} = 'image/xpm';
>>$ShellWeb::MIME::MIME{'text/plain'} = 'ShellWeb::Parser::TXT';
>>$ShellWeb::MIME::MIME{'text/html'} = 'ShellWeb::Parser::HTML';
>>$ShellWeb::MIME::MIME{'text/xml'} = 'ShellWeb::Parser::XML';
>>$ShellWeb::MIME::MIME{'image/jpeg'} = 'ShellWeb::Parser::IMAGE';
>>$ShellWeb::MIME::MIME{'image/gif'} = 'ShellWeb::Parser::IMAGE';
>>$ShellWeb::MIME::MIME{'image/png'} = 'ShellWeb::Parser::IMAGE';
>>$ShellWeb::MIME::MIME{'image/tiff'} = 'ShellWeb::Parser::IMAGE';
>>$ShellWeb::MIME::MIME{'image/x-xbitmap'} = 'ShellWeb::Parser::IMAGE';
>>$ShellWeb::MIME::MIME{'image/xpm'} = 'ShellWeb::Parser::IMAGE';
>>1;
>>
>>
>>
>>
>
>
>--
>+--------------------------------------------+
> |By Alexe (http://www.alexe.cn)|
>+--------------------------------------------+
>
>
--
Best Regards,
Anthony WU
|
6Kej6YeK5LiA5LiL5oiR6L+H5Y6755qE5oOz5rOV77yaCgo+IOS4gO+8muaWueS+v+S7peW+jCBI VE1MIOaWueW8j+eahOWKn+iDve+8jOS+i+WmgiBjb29raWUg6Kit5a6a44CBY2hhcnNldCDjgIHo vYnlkJHlj4PnhafpoIEKPuetieetieeahO+8jOmAmeS6m+mDqOS7veiAjOiogCDoiIcgamF2YXNj cmlwdCDlj4ogdmlldy5wbCDmnInpl5zjgIIKCiBjb29raWUg6Kit5a6a5pys5p2l5piv5oOz5Zyo bmV0LnBs56uv54us56uL5a6M5oiQ77yM5Zug5Li6THdw5pSv5oyBY29va2ll77yM6L+Z6YeM5bm2 5LiN54m15omv5pi+56S655qE6Zeu6aKY44CCCmNoYXJzZXTlupTor6XmmK9QYXJzZXI6Okh0bWzo tJ/otKPnmoTpg6jliIbvvIzlm6DkuLrop6PmnpDlh7rmnaXnmoTmlbDmja7lv4XpobvmmK9VdGY4 5qC85byP44CCCui9ieWQkeWPg+eFp+mgge+8jOWmguaenOaYr+ebtOaOpei9rOWQkemCo+S5iGx3 cOWwseWkhOeQhuS6hu+8jOWmguaenOaYr+aYvuekuuWQjui9rOWQke+8jOehruWunuaciU5ldOS4 jnZpZXfkuqTkupLkv6Hlj7fnmoTpl67popjjgIIK6L+Y5pyJ5aS055eb55qEamF2YXNjcmlwdO+8 jOi/memHjOehruWunuS8muiuqW5ldOaooeWdl+S4jnZpZXfkuqTlj4notbfmnaXvvIzlhbfkvZPn moTpl67popjvvIzmiJHov5jopoHlho3mn6XkuIDkuItqYXZhc2NyaXB055qE6K+m57uG6LWE5paZ 44CCCgoKPuS6jO+8mumXnOaWvCBIVFRQIOeahOaWueW8j+eahOWKn+iDve+8jOS+i+WmgiBFeHBp cmVzOiDvvIxEYXRlOiDvvIwgUHJhZ21hOiBjYWNoZe+8jAo+Q29udGVudC1EaXNwb3NpdGlvbiDn rYnnrYnnmoTnjajnibkgSGVhZGVyCgogPiAx77ya6YGH5YiwIENvbnRlbnQtRGlzcG9zaXRpb24g 5oiWIOS4jeefpemBk+W+jOe2tOaZgu+8jOmcgOimgeW9iOWHunBvcHVw5ZCR55So5oi2Cj7oqaLl lY/mmK/lkKbkuIvovIkKCui/memHjOehruWunuaYr+S4qumXrumimO+8jOi/h+WOu+ayoeacieiA g+iZkeWIsOOAguWmguaenOS4jeWFiOino+aekGh0bWzlpLTnmoTor53vvIzkvLzkuY7kuI3lrrnm mJPop6PlhrPjgIIKCj4gMu+8mkRhdGU6IOmAmeWAi+WPr+S7peiIhyBmdHAg55qE5qqU5qGI5pyA 5b6M5L+u5pS55pel5pyf55yL6b2KCgrlj6/ku6XjgIIKCj4z77yaUHJhZ21hOiBjYWNoZSDjgIEg RXhwaXJlcyDmmYLkuI3lj6/og73kvb/nlKgg5b6M57a05aaCCj5odHRwOi8vdGVzdC5jb20vdGVz dC5wbD9nZXQ9bG9naW4g5a2Y5oiQIHRlc3QuaHRtbCDoqJjpjITvvIzlkKbliYflj6/og73oiIcg 5YW25LuW5aaCCj5odHRwOi8vdGVzdC5jb20vdGVzdC5wbD9nZXQ9ZG93bmxvYWQg562J562J55qE 55u45rKW77yM55W254S25Y+v5Lul6Kqq5L2/55SoIHJhbmRvbQo+5ZCN56ix77yM5LiN6YGO6YCZ 5qij5YGa5bCx5q+U6LyD6Zuj5YW85a65IFByYWdtYTogY2FjaGUg44CBIEV4cGlyZXMg55qE5Yqf 6IO9Cgrov5nkuKrpl67popjvvIzmiJHmg7PopoHlu7rnq4vkuIDkuKpoYXNoe3VybD0+cmFuZG9t X2ZpbGVuYW1lfe+8jOavj+S4qnVybOmDveacieWUr+S4gOWvueW6lOeahOS4tOaXtuaWh+S7tuOA ggrvvIjlnKjmlbTkuKpzaGVsbHdlYuS4re+8jHVybOW6lOivpeaYr+aIkeS7rOeahOe7neWvueWU r+S4gOeahGtlee+8jOW+iOWkmuaXtuWAmemDveimgeeUqHVybOWAvOadpeS8oOmAkuaVsOaNruOA gu+8iQpjYWNoZeS4jmV4cGlyZeW6lOivpeaKm+W8gGx3cOWBmuWIhuaekO+8jOWmguS9leW1jOWF peaIkeS7rOeahGhhc2jooajjgIIK5pys5p2l55qE6ICD6JmR5bCx5piv77yMbmV05LiL6L295Zue 5paH5Lu277yM54S25ZCO5a2Y5YKo5oiQ5LiA5Liq5Li05pe25paH5Lu277yM5bm25Zyo5LiA5Liq 5Li05pe25paH5Lu26KGo5Lit5o+S5YWl5LiA5LiqdXJs5Li66ZSu5YC855qE6aG544CCCgrmgLvk uYvvvIzlho3orrrorqjorrrvvIzmg7PkuIDmg7PmnKrnn6XmiJbogIXov7fmg5HnmoTpl67popjo r6XlpoLkvZXop6PlhrPjgIIK5oiR55qE5Y6f5YiZ5piv5oOz5bC96YeP56Gu56uLbmV05LiOdmll d+eahOeLrOeri+aAp++8jOi/meagt+S+v+S6juS7peWQjuaIkeS7rOe9kee7nOerr+eahOabtOaN ouOAguW9k+eEtuWmguaenE5ldOeUseS6jkh0dHDljY/orq7nmoTpnIDopoHlv4XpobvlgZrkupvo p6PmnpDnsbvnmoTlt6XkvZznmoTor53vvIzpgqPkuZ/lvpflsIbov5nnp43ni6znq4vmgKfpmY3k vY7jgIIK5Lul5LiK44CCCgoKMjAwNi8xLzE1LCBBbnRob255IFdVIDxhbnRob255d3V5MmtAZ21h aWwuY29tPjoKPiBIaSBBbGV4ZQo+IOmXnOaWvCBNSU1FLnR4dO+8jOaIkeimuuW+l+aWvCBuZXQu cGwg5Lit6Kej6YeL5Zue5YKz55qE5Y6f5ZugCj4KPiDliY3mj5DmlrnpnaIKPiAgICAg5LiA77ya 5omA5pyJIFVSSSDnmoTpgKPmjqXkvb/nlKggbmV0LnBsIOWPluW+l++8jOS+i+WmgiBmaWxlOi8v LCBodHRwOi8vLCBmdHA6Ly8sCj4gdWRwOi8vICg/KSDnrYnnrYnnmoTnlLEgbmV0LnBsIOWPluW+ l++8jOWGjeS6pOeUsSB2aWV3LnBsICDlgZrpoa/npLrjgIIKPiAgICAg5LqM77ya5Lul6YCa55So 55qE6Kq/55So5pa55byP5Y+W5b6XIFBhcnNlciDmlrnms5XjgIIKPgo+IOS9v+eUqCBuZXQucGwg 5aKe5YqgIEhUVFAgSEVBREVSIOS5i+WOn+WboAo+ICAgICDkuIDvvJrmlrnkvr/ku6XlvowgSFRN TCDmlrnlvI/nmoTlip/og73vvIzkvovlpoIgY29va2llIOioreWumuOAgWNoYXJzZXQg44CB6L2J 5ZCR5Y+D54Wn6aCBCj4g562J562J55qE77yM6YCZ5Lqb6YOo5Lu96ICM6KiAIOiIhyBqYXZhc2Ny aXB0IOWPiiB2aWV3LnBsIOaciemXnOOAggo+ICAgICDkuozvvJrpl5zmlrwgSFRUUCDnmoTmlrnl vI/nmoTlip/og73vvIzkvovlpoIgRXhwaXJlczog77yMRGF0ZTog77yMIFByYWdtYTogY2FjaGXv vIwKPiBDb250ZW50LURpc3Bvc2l0aW9uIOetieetieeahOeNqOeJuSBIZWFkZXIKPiAgICAgICAg Me+8mumBh+WIsCBDb250ZW50LURpc3Bvc2l0aW9uIOaIliDkuI3nn6XpgZPlvozntrTmmYLvvIzp nIDopoHlvYjlh7pwb3B1cOWQkeeUqOaItgo+IOipouWVj+aYr+WQpuS4i+i8iQo+ICAgICAgICAy 77yaRGF0ZTog6YCZ5YCL5Y+v5Lul6IiHIGZ0cCDnmoTmqpTmoYjmnIDlvozkv67mlLnml6XmnJ/n nIvpvYoKPiAgICAgICAgM++8mlByYWdtYTogY2FjaGUg44CBIEV4cGlyZXMg5pmC5LiN5Y+v6IO9 5L2/55SoIOW+jOe2tOWmggo+IGh0dHA6Ly90ZXN0LmNvbS90ZXN0LnBsP2dldD1sb2dpbiDlrZjm iJAgdGVzdC5odG1sIOiomOmMhO+8jOWQpuWJh+WPr+iDveiIhyDlhbbku5blpoIKPiBodHRwOi8v dGVzdC5jb20vdGVzdC5wbD9nZXQ9ZG93bmxvYWQg562J562J55qE55u45rKW77yM55W254S25Y+v 5Lul6Kqq5L2/55SoIHJhbmRvbQo+IOWQjeeose+8jOS4jemBjumAmeaoo+WBmuWwseavlOi8g+mb o+WFvOWuuSBQcmFnbWE6IGNhY2hlIOOAgSBFeHBpcmVzIOeahOWKn+iDvQo+Cj4KPiBhbGV4ZS5j bkBnbWFpbC5jb20g5o+Q5YiwOgo+Cj4gPkFudGhvbnkgV1XvvIwKPiA+5a6a5LmJ5LiA5LiqTUlN RS50eHTvvIzmiJHmg7PmnInov5nkuKrlv4XopoHjgIIKPiA+5ZCE5Liq5LiN5ZCM5paH5Lu255qE 5YiG57G76Kej5p6Q5bqU6K+l5piv5ZyoUGFyc2VyLnBt5qih5Z2X5Lit5a6M5oiQ44CCCj4gPkNv bnRlbnQtVHlwZeeahOWumuS5ieavlOi+g+WbsOmavu+8jOavleern+mZpOS6hmh0dHDku6XlpJbv vIzlhbbku5bnmoTkvovlpoLvvJpGdHDjgIFsb2NhbGZpbGXpg73msqHmnInov5nmoLfnmoTlpLTv vIzmiYDku6Xpg73lv4Xpobvmt7vliqDjgILogIznm7jlr7nogIzoqIDvvIzliIbmnpDmlofku7bn moTlkI7nvIDlupTor6Xmr5TovoPnroDljZXjgIIKPiA+Q29udGVudC1UeXBl5YC855qE5L2/55So 77yM5oiR5oOz5Y+v6IO95ZyobmV06YKj6L655bCx55u05o6l5YiG5p6Q5LqG77yM5Zug5Li6Q29u dGVudC1UeXBl55qE5YC85LiA6Iis5Zyo5Lyg6L6T6Z2e5paH5pys5pWw5o2u5pe25omN5q+U6L6D 5pyJ55So77yM6L+Z5pe2bmV05Lya55u05o6l5bCG5Lyg6L6T55qE5YaF5a655oyJ54WnQ29udGVu dC1UeXBl5YC85p2l5a2Y5YKo5oiQ5LiN5ZCM55qE5paH5Lu277yM5pyA5ZCO5bCG6L+Z5Liq5pyJ 5q2j56Gu5ZCO57yA55qE5paH5Lu25ZCN5Lyg6YCS57uZUGFyc2VyLnBt5p2l5YiG5p6Q44CCCj4g Pui/meagt+WvueS6jlBhcnNlci5wbeadpeivtO+8jOWug+WIhuaekOeahOmDveaYr+acrOWcsOaW h+S7tuOAggo+ID4KPiA+bG9jYWxmaWxl55qE6Zeu6aKY77yM5piv5ZCm6YCa6L+HbmV05p2l5a2Y 5YKo5LiA5Liq5Li05pe25paH5Lu277yM5oiW6ICF55u05o6l5Y675pys5Zyw5p+l5om+5paH5Lu2 77yfCj4gPgo+ID7lnKggMDYtMS0377yMQW50aG9ueSBXVTxhbnRob255d3V5MmtAZ21haWwuY29t PiDlhpnpgZPvvJoKPiA+Cj4gPgo+ID4+6L6b6Ium5L2g5LqGID0pCj4gPj5NSU1FLnBsIChNSU1F LnBsLnR4dCkg5Li76KaB5piv5a6a576p5LiA5LqbIENvbnRlbnQtVHlwZeOAgeW+jOe2tCjlia/m qpTlkI0pIOeahCDop6Pph4sKPiA+Puaooee1hChQYXJzZXIp5ZCN56ixCj4gPj7ogIwgbWFpbi5w bCAobWFpbi5wbC50eHQpIOWPr+eVtuaIkOaYr+ePvuWcqOeahCBQYXJzZXIucG3vvIznlKjmlrzo qr/nlKgg6Kej6YeL5qih57WEKFBhcnNlcikKPiA+PumXnOaWvOmAmeWAi+mDqOS7ve+8jOaIkean i+aAneaJgOaciSBmaWxlOi8vLCBodHRwOi8vLCBmdHA6Ly8g562J562J55qE6YO957Wx5LiA5L2/ 55SoCj4gPj5uZXQucGwg5Zue5YKz5YiwIGh0bWxfdmlldy5wbAo+ID4+55W26YCj57WQ54K6IGh0 dHA6Ly8g55qE6Kmx77yM5bCx55u05o6l5Zue5YKzIEhUVFAgSGVhZGVyIOS4reeahENvbnRlbnQt dHlwZSDliLAKPiA+Pmh0bWxfdmlldy5wbCDoqr/nlKggUGFyc2VyCj4gPj7nlbbpgKPntZDngrog ZnRwOi8vIOaIliBmaWxlOi8vIOeahOipse+8jOWwseWcqCBuZXQucGwg5Lit5aKe5YqgQ29udGVu dC10eXBlIOWbnuWCs+WIsAo+ID4+aHRtbF92aWV3LnBsIOiqv+eUqCBQYXJzZXIKPiA+PumAmeao o+aHieipsuWPr+S7pea4m+WwkeW+iOWkmiDpgo/ovK/mgJ3ntq3kuIrnmoQg5Luj56K85YW85a65 5ZWP6aGMCj4gPj7nj77lnKjnmoQgQElTQSDkvovlrZDlm6Dngrrku6PnorzntZDmp4vmnKrlrozl loTogIzovIPpm6PoqqrmmI7vvIzkuLvopoHmg7Pms5XmmK/nm7TmjqUgSVNBIOaWvOiqv+eUqAo+ ID4+JGJ1ZmZlciDnmoTmqKHntYTvvIzmiJHlho3mg7Pmg7Pku6PnorznmoTntZDmp4vlho3kuIDm rKHmj5Dlh7oKPiA+Pgo+ID4+CgoKCi0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSsKIHxCeSBBbGV4ZSAoaHR0cDovL3d3dy5hbGV4ZS5jbil8CistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK |