----boundary-LibPST-iamunique-896880779_-_-
Content-type: text/plain
Bernhard,
> You are correct (I forgot about that), Module Out
> causes memory leak, I told that OMS about 5 years ago
> and I had hoped that the current release has corrected
> it, but apparently not.
We don't think that there is a "memory leak" in StdLog (or Out for that
matter). Please notice that the log is a text like any other text in
BlackBox (TextModels.Model). So if you write characters into this text,
BlackBox has to store those characters somehow and this consumes memory.
With StdLog.Clear you can delete the log text and give back the
corresponding memory. Or are we missing the point here?
Cheers,
Marc
Oberon microsystems, Inc.
> -----Original Message-----
> From: Treutwein Bernhard
> [mailto:Bernhard.Treutwein{([at]})nowhere.xy
> Sent: Mittwoch, 20. Oktober 2004 13:41
> To: Gérard Meunier; BlackBox mailing list
> Subject: RE: Files & Garbage Collector
>
>
> Dear Gérard,
>
> another hmm, since I would have expected that
> executing it with a "commander" should cause
> a garbage collector run. But I tried it also
> with garbage collection in between:
>
> The numbers given are also not in accordance
> with the numbers given in the "Double status bar"
> (see Edit->Preferences).
>
> You are correct (I forgot about that), Module Out
> causes memory leak, I told that OMS about 5 years ago
> and I had hoped that the current release has corrected
> it, but apparently not.
>
> --
> Bernhard Treutwein, IuK, Ref. III A 3
> Bernhard.Treutwein(at)verwaltung uni-muenchen de
>
> StdCoder.Decode ..,,
> ..nN....3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
>
> hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLL
> CJuyKtYcZRiX
>
> 7.2.s,6y9.0k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuy
> KtQC98P9PP7O
>
> NbXmb.2.oc3k2ETK.,6.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708
> T,U..w.2x2U.
>
> sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.Zj.w,Ix0E.2.Ix.U00.bnUGL
> u8ro8quGrmCL
>
> WKqtE0E.kSU.EGE.U,.5uPffQHPNZ96RONjHA0z.U.2m,.hS.E.6Whh.0pd8U0
> Cy2hgqRcjhhh
>
> BgiZgZJinpZHZCh0E.4TWKKv.Uio8.,cw5.,6.222.o.6.K,u.2.2F.8T5U...
> B.0UJUEE.yza
>
> yIWKJaKIE0JtaKvGpmYivgV7AdB3eDJeI3YDhioZZUQdZJiihggZZUQeZJiqBh
> XhgnZZUQeoJi
>
> dphbRivgVBAVEJeDRc3ZcJJe33Y2xheQbBAV7Ic3xc7pdBAV7AVDhiopZHZimB
> B0GI8mUmKqyq
>
> l4KuKKmeHE8mIin4ak2a.AdiZicQdZJCoZ,Zhg,2ZdYZkAZvgV7.YdihV7gcCZ
> cUYcjRbBg,.k
>
> VyKqmqmCKuemRqk2cJ1eI,NMN9P2Yu2Y7pdIhc5hcGRbBA,30UVZhgxBgbUQdZ
> JC.AAkRq.HsI
>
> 9fQh1umVyKqm4in4A,T0b0UEJiZ3YbBgmJgVxgZ3YXxhg,HvPR9619P.e1,N8r
> N1.a24Kqm4N7
>
> 6VN8r,UH,EE0rrCLu0mn4Kt...kk...H0L0..FFK..N0kVyKqUvM19eH7G,0Jt
> aKvUiYcjhV7A
>
> V02emBBU1xhg,3Qwd05uPR9RZvPN9P9fQbf9bW1ZimZh2hgnRg.AyI,.ELCoru
> Ku.GomCrl0U1
>
> VV,.Z1...bf9.EWE.8T0E.E8E.k22.0..4E,5TeK4ZORNPNZvQRtIIepZBG20k
> sH3.bf9ZORNP
>
> NG20EtD.2.i8S.C80E.QE.sQRtIQeoBjghg2hgn7.X5.u0n9PU.Iy56.2.U6UO
> ,,U00.umUG56
>
> RY6CK.Y.2..EG2.,M.,.,.,tcp00EcCJ,wnjl.k.E.0.3gwP.0..I16.M.EJ2e
> HF.6.VQ.E..Y
>
> VsH4EKithQVs9E3Qw7uPgBkVy4..Z.0..2,2.M00.dPLbHESmF3kwL,,AzJEu1
> Ko2oe2H.lq1.
> ..
> --- end of encoding ---
>
> > -----Original Message-----
> > From: Gérard Meunier [mailto:gemeu{([at]})nowhere.xy> > Sent: Monday, October 18, 2004 11:42 PM
> > To: BlackBox mailing list
> > Subject: Re: Files & Garbage Collector
> >
> >
> > > Hmm,
> > >
> > > strange enough:
> > >
> > > MODULE PrivTest;
> > > IMPORT Out, Kernel;
> > >
> > > PROCEDURE Do*;
> > > BEGIN
> > > Out.String ("Allocated: ");
> > > Out.Int(Kernel.Allocated(),0);
> > > Out.Ln
> > > END Do;
> > >
> > > END PrivTest.Do
> > >
> > > gives with repeated calls also increasing values.
> > > Allocated: 373936
> > > Allocated: 377008
> > > Allocated: 380080
> > > Allocated: 383152
> > > Allocated: 386224
> > > Allocated: 389296
> > > Allocated: 392368
> > > Allocated: 395440
> > > Allocated: 398512
> > > Allocated: 401584
> > > Allocated: 404656
> > > Allocated: 407728
> > > Allocated: 410800
> > > Allocated: 413872
> > > Allocated: 416944
> > > Allocated: 420016
> > > Allocated: 423088
> >
> > Well, in this case it's rather unsurprising for two reasons:
> >
> > - the garbage collector doesn't start running at every
> allocation;
> > - every call to an Out procedure allocates something on
> > the heap (to
> > fill the Log), and increases allocated memory. It's why I used
> > Dialog.ShowStatus in my last example instead of Out or StdLog.
> >
> > But, if you allocate repeatedly the same pointer variable,
> you'll see
> > allocated memory increase, and sometimes decrease when GC starts
> > running, with its mean value remaining stable. For example, you can
> > try:
> >
> > MODULE PrivTest2;
> > IMPORT Dialog, Kernel, Services, Strings;
> >
> > PROCEDURE Do*;
> > CONST
> > delay = ENTIER(0.01 * Services.resolution);
> > VAR
> > s: ARRAY 12 OF CHAR;
> > a:POINTER TO ARRAY 1024 OF BYTE;
> > t: LONGINT;
> > BEGIN
> > LOOP
> > NEW(a);
> > Strings.IntToString(Kernel.Allocated(), s); Dialog.ShowStatus(s);
> > t := Services.Ticks() + delay;
> > REPEAT
> > UNTIL Services.Ticks() > t;
> > END;
> > END Do;
> >
> > END PrivTest2.
> >
> > Cheers.
> > Gérard
> >
> > --------------------------------------------
> >
> > To unsubscribe from this mailing list, send a message
> > containing the word "unsubscribe" to:
> > blackbox-request{([at]})nowhere.xy> >
> > To get a list of valid e-mail commands and instructions on
> > their usage, send a message containing the word "help" to the
> > above address.
> >
> > Send any problem reports or questions related to this email
> > list to the list owner at
> > owner-blackbox{([at]})nowhere.xy> >
> > Current posting policy:
> >
> > a) To post you should use the same address by which you are
> > subscribed to the mailing list. That way, the list server
> > will recognize you as subscriber and forward your posting
> > immediately, without creating any overhead.
> >
> > b) If, for some reason, you cannot post from the address, by
> > which you are subscribed, your message will be moderated to
> > avoid spam. Please understand that moderation will often
> > cause some delay, in particular over weekends or holydays.
> >
>
> --------------------------------------------
>
> To unsubscribe from this mailing list, send a message
> containing the word "unsubscribe" to:
> blackbox-request{([at]})nowhere.xy>
> To get a list of valid e-mail commands and instructions on
> their usage, send a message containing the word "help" to the
> above address.
>
> Send any problem reports or questions related to this email
> list to the list owner at
> owner-blackbox{([at]})nowhere.xy>
> Current posting policy:
>
> a) To post you should use the same address by which you are
> subscribed to the mailing list. That way, the list server
> will recognize you as subscriber and forward your posting
> immediately, without creating any overhead.
>
> b) If, for some reason, you cannot post from the address, by
> which you are subscribed, your message will be moderated to
> avoid spam. Please understand that moderation will often
> cause some delay, in particular over weekends or holydays.
>
----boundary-LibPST-iamunique-896880779_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzc1xmY2hhcnNldDAgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJc
Zm5pbFxmY2hhcnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBO
ZXc7fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7
fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyMCBCZXJuaGFyZCxccGFyDQpccGFy
DQo+IFlvdSBhcmUgY29ycmVjdCAoSSBmb3Jnb3QgYWJvdXQgdGhhdCksIE1vZHVsZSBPdXQgXHBh
cg0KPiBjYXVzZXMgbWVtb3J5IGxlYWssIEkgdG9sZCB0aGF0IE9NUyBhYm91dCA1IHllYXJzIGFn
b1xwYXINCj4gYW5kIEkgaGFkIGhvcGVkIHRoYXQgdGhlIGN1cnJlbnQgcmVsZWFzZSBoYXMgY29y
cmVjdGVkXHBhcg0KPiBpdCwgYnV0IGFwcGFyZW50bHkgbm90LiBccGFyDQpccGFyDQpXZSBkb24n
dCB0aGluayB0aGF0IHRoZXJlIGlzIGEgIm1lbW9yeSBsZWFrIiBpbiBTdGRMb2cgKG9yIE91dCBm
b3IgdGhhdFxwYXINCm1hdHRlcikuIFBsZWFzZSBub3RpY2UgdGhhdCB0aGUgbG9nIGlzIGEgdGV4
dCBsaWtlIGFueSBvdGhlciB0ZXh0IGluXHBhcg0KQmxhY2tCb3ggKFRleHRNb2RlbHMuTW9kZWwp
LiBTbyBpZiB5b3Ugd3JpdGUgY2hhcmFjdGVycyBpbnRvIHRoaXMgdGV4dCxccGFyDQpCbGFja0Jv
eCBoYXMgdG8gc3RvcmUgdGhvc2UgY2hhcmFjdGVycyBzb21laG93IGFuZCB0aGlzIGNvbnN1bWVz
IG1lbW9yeS5ccGFyDQpXaXRoIFN0ZExvZy5DbGVhciB5b3UgY2FuIGRlbGV0ZSB0aGUgbG9nIHRl
eHQgYW5kIGdpdmUgYmFjayB0aGVccGFyDQpjb3JyZXNwb25kaW5nIG1lbW9yeS4gT3IgYXJlIHdl
IG1pc3NpbmcgdGhlIHBvaW50IGhlcmU/XHBhcg0KXHBhcg0KQ2hlZXJzLFxwYXINCk1hcmNccGFy
DQpPYmVyb24gbWljcm9zeXN0ZW1zLCBJbmMuXHBhcg0KXHBhcg0KPiAtLS0tLU9yaWdpbmFsIE1l
c3NhZ2UtLS0tLVxwYXINCj4gRnJvbTogVHJldXR3ZWluIEJlcm5oYXJkIFxwYXINCj4gW21haWx0
bzpCZXJuaGFyZC5UcmV1dHdlaW5AVmVyd2FsdHVuZy5VbmktTXVlbmNoZW4uREVdIFxwYXINCj4g
U2VudDogTWl0dHdvY2gsIDIwLiBPa3RvYmVyIDIwMDQgMTM6NDFccGFyDQo+IFRvOiBHXCdlOXJh
cmQgTWV1bmllcjsgQmxhY2tCb3ggbWFpbGluZyBsaXN0XHBhcg0KPiBTdWJqZWN0OiBSRTogRmls
ZXMgJiBHYXJiYWdlIENvbGxlY3RvclxwYXINCj4gXHBhcg0KPiBccGFyDQo+IERlYXIgR1wnZTly
YXJkLFxwYXINCj4gXHBhcg0KPiBhbm90aGVyIGhtbSwgc2luY2UgSSB3b3VsZCBoYXZlIGV4cGVj
dGVkIHRoYXRccGFyDQo+IGV4ZWN1dGluZyBpdCB3aXRoIGEgImNvbW1hbmRlciIgc2hvdWxkIGNh
dXNlXHBhcg0KPiBhIGdhcmJhZ2UgY29sbGVjdG9yIHJ1bi4gQnV0IEkgdHJpZWQgaXQgYWxzb1xw
YXINCj4gd2l0aCBnYXJiYWdlIGNvbGxlY3Rpb24gaW4gYmV0d2VlbjpccGFyDQo+IFxwYXINCj4g
VGhlIG51bWJlcnMgZ2l2ZW4gYXJlIGFsc28gbm90IGluIGFjY29yZGFuY2UgXHBhcg0KPiB3aXRo
IHRoZSBudW1iZXJzIGdpdmVuIGluIHRoZSAiRG91YmxlIHN0YXR1cyBiYXIiXHBhcg0KPiAoc2Vl
IEVkaXQtPlByZWZlcmVuY2VzKS5ccGFyDQo+IFxwYXINCj4gWW91IGFyZSBjb3JyZWN0IChJIGZv
cmdvdCBhYm91dCB0aGF0KSwgTW9kdWxlIE91dCBccGFyDQo+IGNhdXNlcyBtZW1vcnkgbGVhaywg
SSB0b2xkIHRoYXQgT01TIGFib3V0IDUgeWVhcnMgYWdvXHBhcg0KPiBhbmQgSSBoYWQgaG9wZWQg
dGhhdCB0aGUgY3VycmVudCByZWxlYXNlIGhhcyBjb3JyZWN0ZWRccGFyDQo+IGl0LCBidXQgYXBw
YXJlbnRseSBub3QuIFxwYXINCj4gXHBhcg0KPiAtLVxwYXINCj4gXHRhYiBCZXJuaGFyZCBUcmV1
dHdlaW4sIEl1SywgUmVmLiBJSUkgQSAzXHBhcg0KPiBcdGFiIEJlcm5oYXJkLlRyZXV0d2Vpbihh
dCl2ZXJ3YWx0dW5nIHVuaS1tdWVuY2hlbiBkZVxwYXINCj4gXHBhcg0KPiBTdGRDb2Rlci5EZWNv
ZGUgLi4sLCBccGFyDQo+IC4ubk4uLi4uM1F3N3VQNVBSUFBOUjlSYmY5YjhSNzlGVHZNZjFHb21D
cmxBeTJ4aFgsQ2IyeFxwYXINCj4gIFxwYXINCj4gaFhoQzZGVTF4aGlaaVZCaGloZ21SaWlvZWRo
Z3JaY1pSaVhGZmFxbVNydHVHZmE0NzAwemRHcnI4cm1DTExccGFyDQo+IENKdXlLdFljWlJpWFxw
YXINCj4gIFxwYXINCj4gNy4yLnMsNnk5LjBrLDVUV3lxbC5ibmF5S21LS3FHb21DNVh6RVQxLlB1
UC5NSFQ5TjludHVtYVUyLENKdXlccGFyDQo+IEt0UUM5OFA5UFA3T1xwYXINCj4gIFxwYXINCj4g
TmJYbWIuMi5vYzNrMkVUSy4sNi4sVTA4Sjk5U2RmSkhQTmp2UUNKdUdLZmFxbVk2TXdkT05sMVFD
aDA3MDhccGFyDQo+IFQsVS4udy4yeDJVLlxwYXINCj4gIFxwYXINCj4gc1VHcG1XYkJ4aFloQWJu
ZE1IVDlOWTZNdy5zUXEyWTZjd0IuMC5aai53LEl4MEUuMi5JeC5VMDAuYm5VR0xccGFyDQo+IHU4
cm84cXVHcm1DTFxwYXINCj4gIFxwYXINCj4gV0txdEUwRS5rU1UuRUdFLlUsLjV1UGZmUUhQTlo5
NlJPTmpIQTB6LlUuMm0sLmhTLkUuNldoaC4wcGQ4VTBccGFyDQo+IEN5MmhncVJjamhoaFxwYXIN
Cj4gIFxwYXINCj4gQmdpWmdaSmlucFpIWkNoMEUuNFRXS0t2LlVpbzguLGN3NS4sNi4yMjIuby42
LkssdS4yLjJGLjhUNVUuLi5ccGFyDQo+IEIuMFVKVUVFLnl6YVxwYXINCj4gIFxwYXINCj4geUlX
S0phS0lFMEp0YUt2R3BtWWl2Z1Y3QWRCM2VESmVJM1lEaGlvWlpVUWRaSmlpaGdnWlpVUWVaSmlx
QmhccGFyDQo+IFhoZ25aWlVRZW9KaVxwYXINCj4gIFxwYXINCj4gZHBoYlJpdmdWQkFWRUplRFJj
M1pjSkplMzNZMnhoZVFiQkFWN0ljM3hjN3BkQkFWN0FWRGhpb3BaSFppbUJccGFyDQo+IEIwR0k4
bVVtS3F5cVxwYXINCj4gIFxwYXINCj4gbDRLdUtLbWVIRThtSWluNGFrMmEuQWRpWmljUWRaSkNv
WixaaGcsMlpkWVprQVp2Z1Y3LllkaWhWN2djQ1pccGFyDQo+IGNVWWNqUmJCZywua1xwYXINCj4g
IFxwYXINCj4gVnlLcW1xbUNLdWVtUnFrMmNKMWVJLE5NTjlQMll1Mlk3cGRJaGM1aGNHUmJCQSwz
MFVWWmhneEJnYlVRZFpccGFyDQo+IEpDLkFBa1JxLkhzSVxwYXINCj4gIFxwYXINCj4gOWZRaDF1
bVZ5S3FtNGluNEEsVDBiMFVFSmlaM1liQmdtSmdWeGdaM1lYeGhnLEh2UFI5NjE5UC5lMSxOOHJc
cGFyDQo+IE4xLmEyNEtxbTRON1xwYXINCj4gIFxwYXINCj4gNlZOOHIsVUgsRUUwcnJDTHUwbW40
S3QuLi5ray4uLkgwTDAuLkZGSy4uTjBrVnlLcVV2TTE5ZUg3RywwSnRccGFyDQo+IGFLdlVpWWNq
aFY3QVxwYXINCj4gIFxwYXINCj4gVjAyZW1CQlUxeGhnLDNRd2QwNXVQUjlSWnZQTjlQOWZRYmY5
YlcxWmltWmgyaGduUmcuQXlJLC5FTENvcnVccGFyDQo+IEt1LkdvbUNybDBVMVxwYXINCj4gIFxw
YXINCj4gVlYsLloxLi4uYmY5LkVXRS44VDBFLkU4RS5rMjIuMC4uNEUsNVRlSzRaT1JOUE5adlFS
dElJZXBaQkcyMGtccGFyDQo+IHNIMy5iZjlaT1JOUFxwYXINCj4gIFxwYXINCj4gTkcyMEV0RC4y
Lmk4Uy5DODBFLlFFLnNRUnRJUWVvQmpnaGcyaGduNy5YNS51MG45UFUuSXk1Ni4yLlU2VU9ccGFy
DQo+ICwsVTAwLnVtVUc1NlxwYXINCj4gIFxwYXINCj4gUlk2Q0suWS4yLi5FRzIuLE0uLC4sLix0
Y3AwMEVjQ0osd25qbC5rLkUuMC4zZ3dQLjAuLkkxNi5NLkVKMmVccGFyDQo+IEhGLjYuVlEuRS4u
WVxwYXINCj4gIFxwYXINCj4gVnNINEVLaXRoUVZzOUUzUXc3dVBnQmtWeTQuLlouMC4uMiwyLk0w
MC5kUExiSEVTbUYza3dMLCxBekpFdTFccGFyDQo+IEtvMm9lMkgubHExLlxwYXINCj4gIC4uXHBh
cg0KPiAgLS0tIGVuZCBvZiBlbmNvZGluZyAtLS1ccGFyDQo+IFxwYXINCj4gPiAtLS0tLU9yaWdp
bmFsIE1lc3NhZ2UtLS0tLVxwYXINCj4gPiBGcm9tOiBHXCdlOXJhcmQgTWV1bmllciBbbWFpbHRv
OmdlbWV1QGZyZWUuZnJdXHBhcg0KPiA+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAxOCwgMjAwNCAx
MTo0MiBQTVxwYXINCj4gPiBUbzogQmxhY2tCb3ggbWFpbGluZyBsaXN0XHBhcg0KPiA+IFN1Ympl
Y3Q6IFJlOiBGaWxlcyAmIEdhcmJhZ2UgQ29sbGVjdG9yXHBhcg0KPiA+IFxwYXINCj4gPiBccGFy
DQo+ID4gPiBIbW0sXHBhcg0KPiA+ID5ccGFyDQo+ID4gPiBzdHJhbmdlIGVub3VnaDpccGFyDQo+
ID4gPlxwYXINCj4gPiA+IE1PRFVMRSBQcml2VGVzdDtccGFyDQo+ID4gPiAgIElNUE9SVCBPdXQs
IEtlcm5lbDtccGFyDQo+ID4gPlxwYXINCj4gPiA+ICAgIFBST0NFRFVSRSBEbyo7XHBhcg0KPiA+
ID4gICAgICAgQkVHSU5ccGFyDQo+ID4gPiAgICAgICAgICAgIE91dC5TdHJpbmcgKCJBbGxvY2F0
ZWQ6ICIpO1xwYXINCj4gPiA+ICAgICAgICAgICAgT3V0LkludChLZXJuZWwuQWxsb2NhdGVkKCks
MCk7XHBhcg0KPiA+ID4gICAgICAgICAgICBPdXQuTG5ccGFyDQo+ID4gPiAgICAgRU5EIERvO1xw
YXINCj4gPiA+XHBhcg0KPiA+ID4gRU5EIFByaXZUZXN0LkRvXHBhcg0KPiA+ID5ccGFyDQo+ID4g
PiBnaXZlcyB3aXRoIHJlcGVhdGVkIGNhbGxzIGFsc28gIGluY3JlYXNpbmcgdmFsdWVzLlxwYXIN
Cj4gPiA+IEFsbG9jYXRlZDogMzczOTM2XHBhcg0KPiA+ID4gQWxsb2NhdGVkOiAzNzcwMDhccGFy
DQo+ID4gPiBBbGxvY2F0ZWQ6IDM4MDA4MFxwYXINCj4gPiA+IEFsbG9jYXRlZDogMzgzMTUyXHBh
cg0KPiA+ID4gQWxsb2NhdGVkOiAzODYyMjRccGFyDQo+ID4gPiBBbGxvY2F0ZWQ6IDM4OTI5Nlxw
YXINCj4gPiA+IEFsbG9jYXRlZDogMzkyMzY4XHBhcg0KPiA+ID4gQWxsb2NhdGVkOiAzOTU0NDBc
cGFyDQo+ID4gPiBBbGxvY2F0ZWQ6IDM5ODUxMlxwYXINCj4gPiA+IEFsbG9jYXRlZDogNDAxNTg0
XHBhcg0KPiA+ID4gQWxsb2NhdGVkOiA0MDQ2NTZccGFyDQo+ID4gPiBBbGxvY2F0ZWQ6IDQwNzcy
OFxwYXINCj4gPiA+IEFsbG9jYXRlZDogNDEwODAwXHBhcg0KPiA+ID4gQWxsb2NhdGVkOiA0MTM4
NzJccGFyDQo+ID4gPiBBbGxvY2F0ZWQ6IDQxNjk0NFxwYXINCj4gPiA+IEFsbG9jYXRlZDogNDIw
MDE2XHBhcg0KPiA+ID4gQWxsb2NhdGVkOiA0MjMwODhccGFyDQo+ID4gXHBhcg0KPiA+IFdlbGws
IGluIHRoaXMgY2FzZSBpdCdzIHJhdGhlciB1bnN1cnByaXNpbmcgZm9yIHR3byByZWFzb25zOlxw
YXINCj4gPiBccGFyDQo+ID4gICAgIC0gdGhlIGdhcmJhZ2UgY29sbGVjdG9yIGRvZXNuJ3Qgc3Rh
cnQgcnVubmluZyBhdCBldmVyeSBccGFyDQo+IGFsbG9jYXRpb247XHBhcg0KPiA+ICAgICAtIGV2
ZXJ5IGNhbGwgdG8gYW4gT3V0IHByb2NlZHVyZSBhbGxvY2F0ZXMgc29tZXRoaW5nIG9uXHBhcg0K
PiA+IHRoZSBoZWFwICh0b1xwYXINCj4gPiBmaWxsIHRoZSBMb2cpLCBhbmQgaW5jcmVhc2VzIGFs
bG9jYXRlZCBtZW1vcnkuIEl0J3Mgd2h5IEkgdXNlZFxwYXINCj4gPiBEaWFsb2cuU2hvd1N0YXR1
cyBpbiBteSBsYXN0IGV4YW1wbGUgaW5zdGVhZCBvZiBPdXQgb3IgU3RkTG9nLlxwYXINCj4gPiBc
cGFyDQo+ID4gQnV0LCBpZiB5b3UgYWxsb2NhdGUgcmVwZWF0ZWRseSB0aGUgc2FtZSBwb2ludGVy
IHZhcmlhYmxlLCBccGFyDQo+IHlvdSdsbCBzZWUgXHBhcg0KPiA+IGFsbG9jYXRlZCBtZW1vcnkg
aW5jcmVhc2UsIGFuZCBzb21ldGltZXMgZGVjcmVhc2Ugd2hlbiBHQyBzdGFydHMgXHBhcg0KPiA+
IHJ1bm5pbmcsIHdpdGggaXRzIG1lYW4gdmFsdWUgcmVtYWluaW5nIHN0YWJsZS4gRm9yIGV4YW1w
bGUsIHlvdSBjYW4gXHBhcg0KPiA+IHRyeTpccGFyDQo+ID4gXHBhcg0KPiA+IE1PRFVMRSBQcml2
VGVzdDI7XHBhcg0KPiA+IElNUE9SVCBEaWFsb2csIEtlcm5lbCwgU2VydmljZXMsIFN0cmluZ3M7
XHBhcg0KPiA+IFxwYXINCj4gPiBQUk9DRURVUkUgRG8qO1xwYXINCj4gPiBDT05TVFxwYXINCj4g
PiBkZWxheSA9IEVOVElFUigwLjAxICogU2VydmljZXMucmVzb2x1dGlvbik7XHBhcg0KPiA+IFZB
UlxwYXINCj4gPiBzOiBBUlJBWSAxMiBPRiBDSEFSO1xwYXINCj4gPiBhOlBPSU5URVIgVE8gQVJS
QVkgMTAyNCBPRiBCWVRFO1xwYXINCj4gPiB0OiBMT05HSU5UO1xwYXINCj4gPiBCRUdJTlxwYXIN
Cj4gPiBMT09QXHBhcg0KPiA+IE5FVyhhKTtccGFyDQo+ID4gU3RyaW5ncy5JbnRUb1N0cmluZyhL
ZXJuZWwuQWxsb2NhdGVkKCksIHMpOyBEaWFsb2cuU2hvd1N0YXR1cyhzKTtccGFyDQo+ID4gdCA6
PSBTZXJ2aWNlcy5UaWNrcygpICsgZGVsYXk7XHBhcg0KPiA+IFJFUEVBVFxwYXINCj4gPiBVTlRJ
TCBTZXJ2aWNlcy5UaWNrcygpID4gdDtccGFyDQo+ID4gRU5EO1xwYXINCj4gPiBFTkQgRG87XHBh
cg0KPiA+IFxwYXINCj4gPiBFTkQgUHJpdlRlc3QyLlxwYXINCj4gPiBccGFyDQo+ID4gQ2hlZXJz
LlxwYXINCj4gPiBHXCdlOXJhcmRccGFyDQo+ID4gXHBhcg0KPiA+IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KPiA+IFxwYXINCj4gPiBUbyB1bnN1YnNj
cmliZSBmcm9tIHRoaXMgbWFpbGluZyBsaXN0LCBzZW5kIGEgbWVzc2FnZVxwYXINCj4gPiBjb250
YWluaW5nIHRoZSB3b3JkICJ1bnN1YnNjcmliZSIgdG86XHBhcg0KPiA+ICAgIGJsYWNrYm94LXJl
cXVlc3RAb2Jlcm9uLmNoXHBhcg0KPiA+IFxwYXINCj4gPiBUbyBnZXQgYSBsaXN0IG9mIHZhbGlk
IGUtbWFpbCBjb21tYW5kcyBhbmQgaW5zdHJ1Y3Rpb25zIG9uXHBhcg0KPiA+IHRoZWlyIHVzYWdl
LCBzZW5kIGEgbWVzc2FnZSBjb250YWluaW5nIHRoZSB3b3JkICJoZWxwIiB0byB0aGUgXHBhcg0K
PiA+IGFib3ZlIGFkZHJlc3MuXHBhcg0KPiA+IFxwYXINCj4gPiBTZW5kIGFueSBwcm9ibGVtIHJl
cG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhpcyBlbWFpbFxwYXINCj4gPiBsaXN0IHRv
IHRoZSBsaXN0IG93bmVyIGF0XHBhcg0KPiA+ICAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxw
YXINCj4gPiBccGFyDQo+ID4gQ3VycmVudCBwb3N0aW5nIHBvbGljeTpccGFyDQo+ID4gXHBhcg0K
PiA+IGEpIFRvIHBvc3QgeW91IHNob3VsZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5
b3UgYXJlXHBhcg0KPiA+IHN1YnNjcmliZWQgdG8gdGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3YXks
IHRoZSBsaXN0IHNlcnZlciBccGFyDQo+ID4gd2lsbCByZWNvZ25pemUgeW91IGFzIHN1YnNjcmli
ZXIgYW5kIGZvcndhcmQgeW91ciBwb3N0aW5nIFxwYXINCj4gPiBpbW1lZGlhdGVseSwgd2l0aG91
dCBjcmVhdGluZyBhbnkgb3ZlcmhlYWQuXHBhcg0KPiA+IFxwYXINCj4gPiBiKSBJZiwgZm9yIHNv
bWUgcmVhc29uLCB5b3UgY2Fubm90IHBvc3QgZnJvbSB0aGUgYWRkcmVzcywgYnlccGFyDQo+ID4g
d2hpY2ggeW91IGFyZSBzdWJzY3JpYmVkLCB5b3VyIG1lc3NhZ2Ugd2lsbCBiZSBtb2RlcmF0ZWQg
dG8gXHBhcg0KPiA+IGF2b2lkIHNwYW0uIFBsZWFzZSB1bmRlcnN0YW5kIHRoYXQgbW9kZXJhdGlv
biB3aWxsIG9mdGVuIFxwYXINCj4gPiBjYXVzZSBzb21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92
ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHBhcg0KPiA+IFxwYXINCj4gXHBhcg0KPiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINCj4gXHBhcg0KPiBUbyB1
bnN1YnNjcmliZSBmcm9tIHRoaXMgbWFpbGluZyBsaXN0LCBzZW5kIGEgbWVzc2FnZSBccGFyDQo+
IGNvbnRhaW5pbmcgdGhlIHdvcmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQo+ICAgIGJsYWNrYm94
LXJlcXVlc3RAb2Jlcm9uLmNoXHBhcg0KPiBccGFyDQo+IFRvIGdldCBhIGxpc3Qgb2YgdmFsaWQg
ZS1tYWlsIGNvbW1hbmRzIGFuZCBpbnN0cnVjdGlvbnMgb24gXHBhcg0KPiB0aGVpciB1c2FnZSwg
c2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiaGVscCIgdG8gdGhlIFxwYXINCj4g
YWJvdmUgYWRkcmVzcy5ccGFyDQo+IFxwYXINCj4gU2VuZCBhbnkgcHJvYmxlbSByZXBvcnRzIG9y
IHF1ZXN0aW9ucyByZWxhdGVkIHRvIHRoaXMgZW1haWwgXHBhcg0KPiBsaXN0IHRvIHRoZSBsaXN0
IG93bmVyIGF0XHBhcg0KPiAgICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQo+IFxwYXIN
Cj4gQ3VycmVudCBwb3N0aW5nIHBvbGljeTpccGFyDQo+IFxwYXINCj4gYSkgVG8gcG9zdCB5b3Ug
c2hvdWxkIHVzZSB0aGUgc2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgXHBhcg0KPiBzdWJz
Y3JpYmVkIHRvIHRoZSBtYWlsaW5nIGxpc3QuIFRoYXQgd2F5LCB0aGUgbGlzdCBzZXJ2ZXIgXHBh
cg0KPiB3aWxsIHJlY29nbml6ZSB5b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBv
c3RpbmcgXHBhcg0KPiBpbW1lZGlhdGVseSwgd2l0aG91dCBjcmVhdGluZyBhbnkgb3ZlcmhlYWQu
XHBhcg0KPiBccGFyDQo+IGIpIElmLCBmb3Igc29tZSByZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBm
cm9tIHRoZSBhZGRyZXNzLCBieSBccGFyDQo+IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCwgeW91
ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIFxwYXINCj4gYXZvaWQgc3BhbS4gUGxlYXNl
IHVuZGVyc3RhbmQgdGhhdCBtb2RlcmF0aW9uIHdpbGwgb2Z0ZW4gXHBhcg0KPiBjYXVzZSBzb21l
IGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHBhcg0KPiBc
cGFyDQp9fQBOUjlSAGJmOWI4
----boundary-LibPST-iamunique-896880779_-_---
Received on Wed Oct 20 2004 - 14:16:45 UTC