----boundary-LibPST-iamunique-381747377_-_-
Content-type: text/plain
Dear Helmut:
I was trying to avoid using SYSTEM. It is not just cosmetic.
I think the compiler is somehow treating the SYSTEM import
in some special way, though I never heard any convincing
argument from anybody why we should not just import SYSTEM
everywhere. SYSTEM imports are greeted with "nonportable (i386)"
in the module definition. On the other hand, since BlacBox now
runs on nothing but Windows, I am not sure if one should care.
I will test Robert prescription later today. From just looking at it
it is hard to say what the result will be. It looks to me the compiler
either will convert to INTEGERS, and thus create the extension bits,
or maybe not. Just knowing the language at my level does not yield
a clue.
I would welcome an application note from Oberon Microsystems
with some well-tested and efficient recipes and prescriptions
for dealing with these "low-level" issues. Seems like many
home-brew solutions are floating around. How about the "expert"
solutions from those who know what the compiler is really doing?
Cheers,
Wojtek Skulski skulski{([at]})nowhere.xy
On Wed, 26 Jun 2002, Zinn, Helmut wrote:
> Dear Robert, dear Wojtek,
>
> you find some other solution at subsystem Opal in the module Util
> at CPC http://home.t-online.de/home/a.h.zinn#Opal
>
> Here are one example:
>
> TYPE
> CastRecT = RECORD [noalign]
> lbyte: BYTE;
> hbyte: BYTE;
> END;
>
> PROCEDURE MakeWord* (hi, lo: BYTE): SHORTINT;
> (* The one-byte values <hi> and <lo> are combined to a two-byte
> value by
> concatenation and returned as result of the
> function. <hi> becomes the
> most significant and <lo> the least significant part
> of the result. *)
> VAR
> h: CastRecT;
> BEGIN
> h.hbyte := hi;
> h.lbyte := lo;
> RETURN(SYSTEM.VAL(SHORTINT, h));
> END MakeWord;
>
> PROCEDURE [code] MakeWord* (hi, lo: BYTE): SHORTINT
> (* The one-byte values <hi> and <lo> are combined to a two-byte
> value by
> concatenation and returned as result of the
> function. <hi> becomes the
> most significant and <lo> the least significant part
> of the result. *)
> 059H, (* POP ECX *)
> 08AH, 0E0H, (* MOV AH, AL *)
> 08AH, 0C1H, (* MOV AL, CL *)
> 025H, 0FFH, 0FFH, 000H, 000H; (* AND EAX, 0000FFFFH *)
>
> There are also examples for word to integer and reverse examples for
> splitting shortint to bytes and integer to words.
>
> Regards
>
> Helmut Zinn
>
> \|||/
> (o o)
> ---ooO-(_)-Ooo------
>
> ---
> Have a look at http://home.t-online.de/home/a.h.zinn
> Send your answer and comments to mailto:a.h.zinn{([at]})nowhere.xy>
>
> -----Ursprüngliche Nachricht-----
> Von: robert.d.campbell{([at]})nowhere.xy> [mailto:robert.d.campbell{([at]})nowhere.xy> Gesendet: Mittwoch, 26. Juni 2002 11:22
> An: skulski{([at]})nowhere.xy> Cc: blackbox{([at]})nowhere.xy> Betreff: Re: Unsigned in Component Pascal
>
> > I have advanced a little bit concerning bit manipulation and
> >unsigned assignments. As a practical example, today I accomplished
> >a mundane task of packing two bytes from a byte buffer into
> >a 32-bit integer. Something, which in C is perhaps as simple as
> >
> > intVar = bhi<<8 + blo;
> >
> >The following code fragment is a bit more complex because the sign
> >bits get in the way and have to be cut. I wonder if such manipulations
> >are the most efficient way of packing/unpacking data. In any case,
> >I did not have to use SYSTEM to accomplish this.
> >
> > VAR setHi,setLo: SET; (*bit field variables (hi,lo byte)*)
> >
> > FOR i := 0 TO len-1 DO
> > (*Pack two consequtive bytes into an integer. MSB is first.*)
> > (*Cutting with bit masks avoids sign extension*)
> > setHi := BITS(ASH(buffer[2*i],8)) * {8..15};
> > setLo := BITS( buffer[2*i+1]) * {0..7};
> > histogram.bin [i] := ORD(setHi + setLo);
> > END;
>
> Maybe the following (untested) arithmetical approach
> seems more familiar:
>
> PROCEDURE BytePack (b0, b1 : BYTE) : INTEGER;
> VAR
> a, b : INTEGER;
> BEGIN
> a := b0 MOD 256;
> b := b1 MOD 256;
> RETURN ASH (b, 8) + a
> END BytePack;
>
>
> Would the 'inlined' version
>
> ROCEDURE BytePack (b0, b1 : BYTE) : INTEGER;
> BEGIN
> RETURN ASH (b1 MOD 256, 8) + (b0 MOD 256)
> END BytePack;
>
> use INTEGERS internally, and work the same?
>
>
> Robert Campbell
>
> --------------------------------------------
>
> 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
>
>
> -------------
>
> Diese E-Mail wurde auf Viren ueberprueft.
>
> Postmaster IG Metall
>
>
--------------------------------------------
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-381747377_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzc1xmY2hhcnNldDAgQXJpYWw7fQ0Ke1xmMVxmbW9kZXJuIENvdXJpZXIgTmV3O30NCntcZjJc
Zm5pbFxmY2hhcnNldDIgU3ltYm9sO30NCntcZjNcZm1vZGVyblxmY2hhcnNldDAgQ291cmllciBO
ZXc7fX0NCntcY29sb3J0YmxccmVkMFxncmVlbjBcYmx1ZTA7XHJlZDBcZ3JlZW4wXGJsdWUyNTU7
fQ0KXHVjMVxwYXJkXHBsYWluXGRlZnRhYjM2MCBcZjBcZnMyMCBEZWFyIEhlbG11dDpccGFyDQpc
cGFyDQogIEkgd2FzIHRyeWluZyB0byBhdm9pZCB1c2luZyBTWVNURU0uIEl0IGlzIG5vdCBqdXN0
IGNvc21ldGljLlxwYXINCkkgdGhpbmsgdGhlIGNvbXBpbGVyIGlzIHNvbWVob3cgdHJlYXRpbmcg
dGhlIFNZU1RFTSBpbXBvcnRccGFyDQppbiBzb21lIHNwZWNpYWwgd2F5LCB0aG91Z2ggSSBuZXZl
ciBoZWFyZCBhbnkgY29udmluY2luZ1xwYXINCmFyZ3VtZW50IGZyb20gYW55Ym9keSB3aHkgd2Ug
c2hvdWxkIG5vdCBqdXN0IGltcG9ydCBTWVNURU1ccGFyDQpldmVyeXdoZXJlLiBTWVNURU0gaW1w
b3J0cyBhcmUgZ3JlZXRlZCB3aXRoICJub25wb3J0YWJsZSAoaTM4NikiXHBhcg0KaW4gdGhlIG1v
ZHVsZSBkZWZpbml0aW9uLiBPbiB0aGUgb3RoZXIgaGFuZCwgc2luY2UgQmxhY0JveCBub3dccGFy
DQpydW5zIG9uIG5vdGhpbmcgYnV0IFdpbmRvd3MsIEkgYW0gbm90IHN1cmUgaWYgb25lIHNob3Vs
ZCBjYXJlLlxwYXINClxwYXINCkkgd2lsbCB0ZXN0IFJvYmVydCBwcmVzY3JpcHRpb24gbGF0ZXIg
dG9kYXkuIEZyb20ganVzdCBsb29raW5nIGF0IGl0XHBhcg0KaXQgaXMgaGFyZCB0byBzYXkgd2hh
dCB0aGUgcmVzdWx0IHdpbGwgYmUuIEl0IGxvb2tzIHRvIG1lIHRoZSBjb21waWxlclxwYXINCmVp
dGhlciB3aWxsIGNvbnZlcnQgdG8gSU5URUdFUlMsIGFuZCB0aHVzIGNyZWF0ZSB0aGUgZXh0ZW5z
aW9uIGJpdHMsXHBhcg0Kb3IgbWF5YmUgbm90LiBKdXN0IGtub3dpbmcgdGhlIGxhbmd1YWdlIGF0
IG15IGxldmVsIGRvZXMgbm90IHlpZWxkXHBhcg0KYSBjbHVlLlxwYXINClxwYXINCkkgd291bGQg
d2VsY29tZSBhbiBhcHBsaWNhdGlvbiBub3RlIGZyb20gT2Jlcm9uIE1pY3Jvc3lzdGVtc1xwYXIN
CndpdGggc29tZSB3ZWxsLXRlc3RlZCBhbmQgZWZmaWNpZW50IHJlY2lwZXMgYW5kIHByZXNjcmlw
dGlvbnNccGFyDQpmb3IgZGVhbGluZyB3aXRoIHRoZXNlICJsb3ctbGV2ZWwiIGlzc3Vlcy4gU2Vl
bXMgbGlrZSBtYW55XHBhcg0KaG9tZS1icmV3IHNvbHV0aW9ucyBhcmUgZmxvYXRpbmcgYXJvdW5k
LiBIb3cgYWJvdXQgdGhlICJleHBlcnQiXHBhcg0Kc29sdXRpb25zIGZyb20gdGhvc2Ugd2hvIGtu
b3cgd2hhdCB0aGUgY29tcGlsZXIgaXMgcmVhbGx5IGRvaW5nP1xwYXINClxwYXINCkNoZWVycyxc
cGFyDQpccGFyDQpccGFyDQpXb2p0ZWsgU2t1bHNraSBza3Vsc2tpQHBhcy5yb2NoZXN0ZXIuZWR1
XHBhcg0KXHBhcg0KT24gV2VkLCAyNiBKdW4gMjAwMiwgWmlubiwgSGVsbXV0IHdyb3RlOlxwYXIN
ClxwYXINCj4gRGVhciBSb2JlcnQsIGRlYXIgV29qdGVrLFxwYXINCj5ccGFyDQo+IHlvdSBmaW5k
IHNvbWUgb3RoZXIgc29sdXRpb24gYXQgc3Vic3lzdGVtIE9wYWwgaW4gdGhlIG1vZHVsZSBVdGls
XHBhcg0KPiBhdCBDUEMgaHR0cDovL2hvbWUudC1vbmxpbmUuZGUvaG9tZS9hLmguemlubiNPcGFs
XHBhcg0KPlxwYXINCj4gSGVyZSBhcmUgb25lIGV4YW1wbGU6XHBhcg0KPlxwYXINCj4gXHRhYiBU
WVBFXHBhcg0KPiBcdGFiIFx0YWIgQ2FzdFJlY1QgPSBSRUNPUkQgW25vYWxpZ25dXHBhcg0KPiBc
dGFiIFx0YWIgXHRhYiBsYnl0ZTogQllURTtccGFyDQo+IFx0YWIgXHRhYiBcdGFiIGhieXRlOiBC
WVRFO1xwYXINCj4gXHRhYiBcdGFiIEVORDtccGFyDQo+XHBhcg0KPiBQUk9DRURVUkUgTWFrZVdv
cmQqIChoaSwgbG86IEJZVEUpOiBTSE9SVElOVDtccGFyDQo+IFx0YWIgKCogVGhlIG9uZS1ieXRl
IHZhbHVlcyA8aGk+IGFuZCA8bG8+IGFyZSBjb21iaW5lZCB0byBhIHR3by1ieXRlXHBhcg0KPiB2
YWx1ZSBieVxwYXINCj4gXHRhYiBcdGFiIFx0YWIgY29uY2F0ZW5hdGlvbiBhbmQgcmV0dXJuZWQg
YXMgcmVzdWx0IG9mIHRoZVxwYXINCj4gZnVuY3Rpb24uIDxoaT4gYmVjb21lcyB0aGVccGFyDQo+
IFx0YWIgXHRhYiBcdGFiIG1vc3Qgc2lnbmlmaWNhbnQgYW5kIDxsbz4gdGhlIGxlYXN0IHNpZ25p
ZmljYW50IHBhcnRccGFyDQo+IG9mIHRoZSByZXN1bHQuICopXHBhcg0KPiBcdGFiIFZBUlxwYXIN
Cj4gXHRhYiBcdGFiIGg6IENhc3RSZWNUO1xwYXINCj4gXHRhYiBCRUdJTlxwYXINCj4gXHRhYiBc
dGFiIGguaGJ5dGUgOj0gaGk7XHBhcg0KPiBcdGFiIFx0YWIgaC5sYnl0ZSA6PSBsbztccGFyDQo+
IFx0YWIgXHRhYiBSRVRVUk4oU1lTVEVNLlZBTChTSE9SVElOVCwgaCkpO1xwYXINCj4gXHRhYiBF
TkQgTWFrZVdvcmQ7XHBhcg0KPlxwYXINCj4gUFJPQ0VEVVJFIFtjb2RlXSBNYWtlV29yZCogKGhp
LCBsbzogQllURSk6IFNIT1JUSU5UXHBhcg0KPiBcdGFiICgqIFRoZSBvbmUtYnl0ZSB2YWx1ZXMg
PGhpPiBhbmQgPGxvPiBhcmUgY29tYmluZWQgdG8gYSB0d28tYnl0ZVxwYXINCj4gdmFsdWUgYnlc
cGFyDQo+IFx0YWIgXHRhYiBcdGFiIGNvbmNhdGVuYXRpb24gYW5kIHJldHVybmVkIGFzIHJlc3Vs
dCBvZiB0aGVccGFyDQo+IGZ1bmN0aW9uLiA8aGk+IGJlY29tZXMgdGhlXHBhcg0KPiBcdGFiIFx0
YWIgXHRhYiBtb3N0IHNpZ25pZmljYW50IGFuZCA8bG8+IHRoZSBsZWFzdCBzaWduaWZpY2FudCBw
YXJ0XHBhcg0KPiBvZiB0aGUgcmVzdWx0LiAqKVxwYXINCj4gXHRhYiBcdGFiIDA1OUgsXHRhYiAo
KiBQT1AgRUNYICopXHBhcg0KPiBcdGFiIFx0YWIgMDhBSCwgMEUwSCxcdGFiICgqIE1PViBBSCwg
QUwgKilccGFyDQo+IFx0YWIgXHRhYiAwOEFILCAwQzFILFx0YWIgKCogTU9WIEFMLCBDTCAqKVxw
YXINCj4gXHRhYiBcdGFiIDAyNUgsIDBGRkgsIDBGRkgsIDAwMEgsIDAwMEg7XHRhYiAoKiBBTkQg
RUFYLCAwMDAwRkZGRkggKilccGFyDQo+XHBhcg0KPiBUaGVyZSBhcmUgYWxzbyBleGFtcGxlcyBm
b3Igd29yZCB0byBpbnRlZ2VyIGFuZCByZXZlcnNlIGV4YW1wbGVzIGZvclxwYXINCj4gc3BsaXR0
aW5nIHNob3J0aW50IHRvIGJ5dGVzIGFuZCBpbnRlZ2VyIHRvIHdvcmRzLlxwYXINCj5ccGFyDQo+
IFJlZ2FyZHNccGFyDQo+XHBhcg0KPiBIZWxtdXQgWmlublxwYXINCj5ccGFyDQo+ICAgICAgIFxc
fHx8L1xwYXINCj4gICAgICAgKG8gbylccGFyDQo+IC0tLW9vTy0oXyktT29vLS0tLS0tXHBhcg0K
PlxwYXINCj4gLS0tXHBhcg0KPiBIYXZlIGEgbG9vayBhdCBodHRwOi8vaG9tZS50LW9ubGluZS5k
ZS9ob21lL2EuaC56aW5uXHBhcg0KPiBTZW5kIHlvdXIgYW5zd2VyIGFuZCBjb21tZW50cyB0byBt
YWlsdG86YS5oLnppbm5AdC1vbmxpbmUuZGVccGFyDQo+XHBhcg0KPlxwYXINCj4gLS0tLS1VcnNw
clwnZmNuZ2xpY2hlIE5hY2hyaWNodC0tLS0tXHBhcg0KPiBWb246IHJvYmVydC5kLmNhbXBiZWxs
QGJhZXN5c3RlbXMuY29tXHBhcg0KPiBbbWFpbHRvOnJvYmVydC5kLmNhbXBiZWxsQGJhZXN5c3Rl
bXMuY29tXVxwYXINCj4gR2VzZW5kZXQ6IE1pdHR3b2NoLCAyNi4gSnVuaSAyMDAyIDExOjIyXHBh
cg0KPiBBbjogc2t1bHNraUBwaG9idG9mLnBhcy5yb2NoZXN0ZXIuZWR1XHBhcg0KPiBDYzogYmxh
Y2tib3hAb2Jlcm9uLmNoXHBhcg0KPiBCZXRyZWZmOiBSZTogVW5zaWduZWQgaW4gQ29tcG9uZW50
IFBhc2NhbFxwYXINCj5ccGFyDQo+ID4gIEkgaGF2ZSBhZHZhbmNlZCBhIGxpdHRsZSBiaXQgY29u
Y2VybmluZyBiaXQgbWFuaXB1bGF0aW9uIGFuZFxwYXINCj4gPnVuc2lnbmVkIGFzc2lnbm1lbnRz
LiBBcyBhIHByYWN0aWNhbCBleGFtcGxlLCB0b2RheSBJIGFjY29tcGxpc2hlZFxwYXINCj4gPmEg
bXVuZGFuZSB0YXNrIG9mIHBhY2tpbmcgdHdvIGJ5dGVzIGZyb20gYSBieXRlIGJ1ZmZlciBpbnRv
XHBhcg0KPiA+YSAzMi1iaXQgaW50ZWdlci4gU29tZXRoaW5nLCB3aGljaCBpbiBDIGlzIHBlcmhh
cHMgYXMgc2ltcGxlIGFzXHBhcg0KPiA+XHBhcg0KPiA+ICAgICBpbnRWYXIgPSBiaGk8PDggKyBi
bG87XHBhcg0KPiA+XHBhcg0KPiA+VGhlIGZvbGxvd2luZyBjb2RlIGZyYWdtZW50IGlzIGEgYml0
IG1vcmUgY29tcGxleCBiZWNhdXNlIHRoZSBzaWduXHBhcg0KPiA+Yml0cyBnZXQgaW4gdGhlIHdh
eSBhbmQgaGF2ZSB0byBiZSBjdXQuIEkgd29uZGVyIGlmIHN1Y2ggbWFuaXB1bGF0aW9uc1xwYXIN
Cj4gPmFyZSB0aGUgbW9zdCBlZmZpY2llbnQgd2F5IG9mIHBhY2tpbmcvdW5wYWNraW5nIGRhdGEu
IEluIGFueSBjYXNlLFxwYXINCj4gPkkgZGlkIG5vdCBoYXZlIHRvIHVzZSBTWVNURU0gdG8gYWNj
b21wbGlzaCB0aGlzLlxwYXINCj4gPlxwYXINCj4gPiAgICBWQVIgc2V0SGksc2V0TG86IFNFVDsg
ICAoKmJpdCBmaWVsZCB2YXJpYWJsZXMgKGhpLGxvIGJ5dGUpKilccGFyDQo+ID5ccGFyDQo+ID4g
IEZPUiBpIDo9IDAgVE8gbGVuLTEgRE9ccGFyDQo+ID4gICAgICAgKCpQYWNrIHR3byBjb25zZXF1
dGl2ZSBieXRlcyBpbnRvIGFuIGludGVnZXIuIE1TQiBpcyBmaXJzdC4qKVxwYXINCj4gPiAgICAg
ICAoKkN1dHRpbmcgd2l0aCBiaXQgbWFza3MgYXZvaWRzIHNpZ24gZXh0ZW5zaW9uKilccGFyDQo+
ID4gICAgc2V0SGkgOj0gQklUUyhBU0goYnVmZmVyWzIqaV0sOCkpICogXHs4Li4xNVx9O1xwYXIN
Cj4gPiAgICBzZXRMbyA6PSBCSVRTKCAgICBidWZmZXJbMippKzFdKSAgKiBcezAuLjdcfTtccGFy
DQo+ID4gICAgaGlzdG9ncmFtLmJpbiBbaV0gOj0gT1JEKHNldEhpICsgc2V0TG8pO1xwYXINCj4g
PiAgRU5EO1xwYXINCj5ccGFyDQo+IE1heWJlIHRoZSBmb2xsb3dpbmcgKHVudGVzdGVkKSBhcml0
aG1ldGljYWwgYXBwcm9hY2hccGFyDQo+IHNlZW1zIG1vcmUgZmFtaWxpYXI6XHBhcg0KPlxwYXIN
Cj4gUFJPQ0VEVVJFICBCeXRlUGFjayAoYjAsIGIxIDogQllURSkgOiBJTlRFR0VSO1xwYXINCj4g
ICBWQVJccGFyDQo+ICAgICBhLCBiIDogSU5URUdFUjtccGFyDQo+ICAgQkVHSU5ccGFyDQo+ICAg
ICBhICA6PSAgYjAgIE1PRCAgMjU2O1xwYXINCj4gICAgIGIgIDo9ICBiMSAgTU9EICAyNTY7XHBh
cg0KPiAgICAgUkVUVVJOICBBU0ggKGIsIDgpICsgYVxwYXINCj4gICBFTkQgIEJ5dGVQYWNrO1xw
YXINCj5ccGFyDQo+XHBhcg0KPiBXb3VsZCB0aGUgJ2lubGluZWQnIHZlcnNpb25ccGFyDQo+XHBh
cg0KPiBST0NFRFVSRSAgQnl0ZVBhY2sgKGIwLCBiMSA6IEJZVEUpIDogSU5URUdFUjtccGFyDQo+
ICAgQkVHSU5ccGFyDQo+ICAgICBSRVRVUk4gIEFTSCAoYjEgIE1PRCAgMjU2LCA4KSArIChiMCAg
TU9EICAyNTYpXHBhcg0KPiAgIEVORCAgQnl0ZVBhY2s7XHBhcg0KPlxwYXINCj4gdXNlIElOVEVH
RVJTIGludGVybmFsbHksIGFuZCB3b3JrIHRoZSBzYW1lP1xwYXINCj5ccGFyDQo+XHBhcg0KPiBS
b2JlcnQgQ2FtcGJlbGxccGFyDQo+XHBhcg0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLVxwYXINCj5ccGFyDQo+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBt
YWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmRccGFyDQo+ICJ1
bnN1YnNjcmliZSIgdG86XHBhcg0KPiAgICBibGFja2JveC1yZXF1ZXN0QG9iZXJvbi5jaFxwYXIN
Cj5ccGFyDQo+IFRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFuZCBpbnN0
cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmRccGFyDQo+IGEgbWVzc2FnZSBjb250YWluaW5n
IHRoZSB3b3JkICJoZWxwIiB0byB0aGUgYWJvdmUgYWRkcmVzcy5ccGFyDQo+XHBhcg0KPiBTZW5k
IGFueSBwcm9ibGVtIHJlcG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhpcyBlbWFpbCBs
aXN0IHRvIHRoZSBsaXN0XHBhcg0KPiBvd25lciBhdFxwYXINCj4gICAgb3duZXItYmxhY2tib3hA
b2Jlcm9uLmNoXHBhcg0KPlxwYXINCj4gQ3VycmVudCBwb3N0aW5nIHBvbGljeTpccGFyDQo+XHBh
cg0KPiBhKSBUbyBwb3N0IHlvdSBzaG91bGQgdXNlIHRoZSBzYW1lIGFkZHJlc3MgYnkgd2hpY2gg
eW91IGFyZSBzdWJzY3JpYmVkIHRvXHBhcg0KPiB0aGUgbWFpbGluZyBsaXN0LiBUaGF0IHdheSwg
dGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlvdSBhcyBzdWJzY3JpYmVyXHBhcg0KPiBh
bmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdpdGhvdXQgY3JlYXRpbmcgYW55
IG92ZXJoZWFkLlxwYXINCj5ccGFyDQo+IGIpIElmLCBmb3Igc29tZSByZWFzb24sIHlvdSBjYW5u
b3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJlXHBhcg0KPiBzdWJzY3Jp
YmVkLCB5b3VyIG1lc3NhZ2Ugd2lsbCBiZSBtb2RlcmF0ZWQgdG8gYXZvaWQgc3BhbS4gUGxlYXNl
IHVuZGVyc3RhbmRccGFyDQo+IHRoYXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNvbWUg
ZGVsYXksIGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvclxwYXINCj4gaG9seWRheXNccGFy
DQo+XHBhcg0KPlxwYXINCj4gLS0tLS0tLS0tLS0tLVxwYXINCj5ccGFyDQo+IERpZXNlIEUtTWFp
bCB3dXJkZSBhdWYgVmlyZW4gdWViZXJwcnVlZnQuXHBhcg0KPlxwYXINCj4gUG9zdG1hc3RlciBJ
RyBNZXRhbGxccGFyDQo+XHBhcg0KPlxwYXINClxwYXINCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlz
IG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAidW5zdWJz
Y3JpYmUiIHRvOlxwYXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNoXHBhcg0KXHBhcg0K
VG8gZ2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3RydWN0aW9ucyBv
biB0aGVpciB1c2FnZSwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiaGVscCIg
dG8gdGhlIGFib3ZlIGFkZHJlc3MuXHBhcg0KXHBhcg0KU2VuZCBhbnkgcHJvYmxlbSByZXBvcnRz
IG9yIHF1ZXN0aW9ucyByZWxhdGVkIHRvIHRoaXMgZW1haWwgbGlzdCB0byB0aGUgbGlzdCBvd25l
ciBhdFxwYXINCiAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCkN1cnJlbnQg
cG9zdGluZyBwb2xpY3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0aGUg
c2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgbWFpbGluZyBs
aXN0LiBUaGF0IHdheSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlvdSBhcyBzdWJz
Y3JpYmVyIGFuZCBmb3J3YXJkIHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwgd2l0aG91dCBjcmVh
dGluZyBhbnkgb3ZlcmhlYWQuXHBhcg0KXHBhcg0KYikgSWYsIGZvciBzb21lIHJlYXNvbiwgeW91
IGNhbm5vdCBwb3N0IGZyb20gdGhlIGFkZHJlc3MsIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJl
ZCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNwYW0uIFBsZWFzZSB1
bmRlcnN0YW5kIHRoYXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNvbWUgZGVsYXksIGlu
IHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvciBob2x5ZGF5c319AGduXXuf
----boundary-LibPST-iamunique-381747377_-_---
Received on Wed Jun 26 2002 - 18:26:49 UTC