----boundary-LibPST-iamunique-1247054858_-_-
Content-type: text/plain
> now, what possible problems could they cause?
Just some hurry thoughts:
*******************************************
Problem 1:
TYPE
Colour* = (red := 3, blue, green);
CarColour* = (blue, yellow, orange);
If I understand the idea right this would be identical to:
CONST
...
blue* = 4;
blue* = 1;
*******************************************
Problem 2:
TYPE
Colour* = (red = 3, blue, green);
(* green = 5 *)
changes to:
TYPE
Colour* = (red = 3, blue, lightBlue, green);
(* green = 6 *)
-> Causes a problem to existing (compiled) modules using 'Colour'
*******************************************
Cheers,
Philipp
-----Original Message-----
From: Douglas G. Danforth [mailto:danforth{([at]})nowhere.xy
Sent: Sunday, 21 November 2004 2:39 p.m.
To: Stan Warford
Cc: info{([at]})nowhere.xy
Subject: Re: Named Integers
Stan,
I like the idea of Named Integers. They would indeed simplify the
documentation (now, what possible problems could they cause?).
-Doug
Stan Warford wrote:
> The benefit of named integers is self-documentation. On the surface,
> they look like enumerated types, but they are fundamentally different
> because they do not have the implementation problems of type
> checking that enumerated types have. Hence, you get 90% of the
> benefits of enumerated types with 10% of the implementation cost.
>
> Here is an example. In the documentation for Module Ports, we have
>
> CONST
> invert = 0; hilite = 1; dim25 = 2; dim50 = 3; dim75 = 4;
>
> Then, later in the documentation we have
>
> (f: Frame) MarkRect (l, t, r, b, s: INTEGER; mode: INTEGER; show:
> BOOLEAN), NEW;
>
> Then, still later in the documentation, we have this explanation
>
> CONST invert, hilite, dim25, dim50, dim75
> These values may be passed as mode-parameter to procedure MarkRect.
>
> The parameter list of MarkRect is _not_ self-documenting. All you know
> by looking at formal parameter mode is that it is an integer. All you know
> by looking at the CONST section is that there are some integer constants,
> but you have no way of knowing which of the integer constants, if any,
> is meant to be used as the mode value in MarkRect. You must search through
> the documentation for the explanation.
>
> Named integers would work like this.
>
> TYPE
> MarkMode = (invert, hilite, dim25, dim50, dim75);
>
> (f: Frame) MarkRect (l, t, r, b, s: INTEGER; mode: MarkMode; show:
> BOOLEAN), NEW;
>
> Although the syntax looks like the syntax of enumerated types, named
> integers are _not_ enumerated types. As I understand it, 90% of the
> difficulty of implementing enumerated types is the type checking that must
> occur across modules. The implementation difficulty was so severe that
> enumerated types were not included in the definition of CP.
>
> Named integers have none of the implementation problems of enumerated
> types. They are simply a syntactic sugar that provide an immense benefit
> of self-documentation for a very small price. They do not introduce a new
> type. Named integers _are_ integers. In general
>
> TYPE Alpha = (beta, gamma, delta);
>
> is _defined_ to be exactly equivalent to
>
> TYPE Alpha = INTEGER;
> CONST beta = 0; gamma = 1; delta = 2;
>
> As far as export is concerned
>
> TYPE Alpha* = (beta, gamma, delta);
>
> is defined to be equivalent to
>
> TYPE Alpha* = INTEGER;
> CONST beta* = 0; gamma* = 1; delta* = 2;
>
> There is no need for complex type-checking rules with enumerated values
> as there is in C++. gamma _is_ an INTEGER and can be used anywhere an
> integer can be used. mode is still an INTEGER. Named integers would change
> _nothing_ in the implementation of the entire BlackBox framework except
for
> making the interfaces much easier to read.
>
> When I was first learning the BB framework I was used to software design
> that emphasized enumerated types for self-documentation. It was a source
> of irritation to see an integer parameter in a formal parameter list and
> not
> know immediately which set of integer constants applied to it. I think one
> reason it has been a hard sell to the folks at Oberon microsystems is that
> they are so familiar with the framework that they forget what it is like
> for
> a novice to be learning BB for the first time.
>
> Stan
>
> J. Stanley Warford
> Professor of Computer Science
> Pepperdine University
> Malibu, CA 90263
> Stan.Warford{([at]})nowhere.xy> 310-506-4332
--------------------------------------------
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-1247054858_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gbm93LCB3aGF0IHBvc3NpYmxlIHByb2JsZW1z
IGNvdWxkIHRoZXkgY2F1c2U/XHBhcg0KXHBhcg0KSnVzdCBzb21lIGh1cnJ5IHRob3VnaHRzOlxw
YXINClxwYXINCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipccGFy
DQpccGFyDQpQcm9ibGVtIDE6XHBhcg0KXHBhcg0KVFlQRVxwYXINCiAgQ29sb3VyKiA9IChyZWQg
Oj0gMywgYmx1ZSwgZ3JlZW4pO1xwYXINCiAgQ2FyQ29sb3VyKiA9IChibHVlLCB5ZWxsb3csIG9y
YW5nZSk7XHBhcg0KXHBhcg0KSWYgSSB1bmRlcnN0YW5kIHRoZSBpZGVhIHJpZ2h0IHRoaXMgd291
bGQgYmUgaWRlbnRpY2FsIHRvOlxwYXINCiBccGFyDQpDT05TVFxwYXINCiAgLi4uXHBhcg0KICBi
bHVlKiA9IDQ7XHBhcg0KICBibHVlKiA9IDE7XHBhcg0KXHBhcg0KKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKlxwYXINClxwYXINClByb2JsZW0gMjpccGFyDQpccGFy
DQpUWVBFXHBhcg0KICBDb2xvdXIqID0gKHJlZCA9IDMsIGJsdWUsIGdyZWVuKTtccGFyDQooKiBn
cmVlbiA9IDUgKilccGFyDQpccGFyDQpjaGFuZ2VzIHRvOlxwYXINCiBccGFyDQpUWVBFXHBhcg0K
ICBDb2xvdXIqID0gKHJlZCA9IDMsIGJsdWUsIGxpZ2h0Qmx1ZSwgZ3JlZW4pO1xwYXINCigqIGdy
ZWVuID0gNiAqKVxwYXINClxwYXINCi0+IENhdXNlcyBhIHByb2JsZW0gdG8gZXhpc3RpbmcgKGNv
bXBpbGVkKSBtb2R1bGVzIHVzaW5nICdDb2xvdXInXHBhcg0KXHBhcg0KKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKlxwYXINClxwYXINCkNoZWVycyxccGFyDQpQaGls
aXBwXHBhcg0KIFxwYXINClxwYXINClxwYXINCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tXHBh
cg0KRnJvbTogRG91Z2xhcyBHLiBEYW5mb3J0aCBbbWFpbHRvOmRhbmZvcnRoQGdyZWVud29vZGZh
cm0uY29tXSBccGFyDQpTZW50OiBTdW5kYXksIDIxIE5vdmVtYmVyIDIwMDQgMjozOSBwLm0uXHBh
cg0KVG86IFN0YW4gV2FyZm9yZFxwYXINCkNjOiBpbmZvQGNmYnNvZnR3YXJlLmNvbTsgYmxhY2ti
b3hAb2Jlcm9uLmNoXHBhcg0KU3ViamVjdDogUmU6IE5hbWVkIEludGVnZXJzXHBhcg0KXHBhcg0K
U3RhbixccGFyDQpJIGxpa2UgdGhlIGlkZWEgb2YgTmFtZWQgSW50ZWdlcnMuICBUaGV5IHdvdWxk
IGluZGVlZCBzaW1wbGlmeSB0aGUgXHBhcg0KZG9jdW1lbnRhdGlvbiAobm93LCB3aGF0IHBvc3Np
YmxlIHByb2JsZW1zIGNvdWxkIHRoZXkgY2F1c2U/KS5ccGFyDQotRG91Z1xwYXINClxwYXINClN0
YW4gV2FyZm9yZCB3cm90ZTpccGFyDQo+IFRoZSBiZW5lZml0IG9mIG5hbWVkIGludGVnZXJzIGlz
IHNlbGYtZG9jdW1lbnRhdGlvbi4gT24gdGhlIHN1cmZhY2UsXHBhcg0KPiB0aGV5IGxvb2sgbGlr
ZSBlbnVtZXJhdGVkIHR5cGVzLCBidXQgdGhleSBhcmUgZnVuZGFtZW50YWxseSBkaWZmZXJlbnRc
cGFyDQo+IGJlY2F1c2UgdGhleSBkbyBub3QgaGF2ZSB0aGUgaW1wbGVtZW50YXRpb24gcHJvYmxl
bXMgb2YgdHlwZVxwYXINCj4gY2hlY2tpbmcgdGhhdCBlbnVtZXJhdGVkIHR5cGVzIGhhdmUuIEhl
bmNlLCB5b3UgZ2V0IDkwJSBvZiB0aGVccGFyDQo+IGJlbmVmaXRzIG9mIGVudW1lcmF0ZWQgdHlw
ZXMgd2l0aCAxMCUgb2YgdGhlIGltcGxlbWVudGF0aW9uIGNvc3QuXHBhcg0KPiBccGFyDQo+IEhl
cmUgaXMgYW4gZXhhbXBsZS4gSW4gdGhlIGRvY3VtZW50YXRpb24gZm9yIE1vZHVsZSBQb3J0cywg
d2UgaGF2ZVxwYXINCj4gXHBhcg0KPiBDT05TVFxwYXINCj4gICAgaW52ZXJ0ID0gMDsgaGlsaXRl
ID0gMTsgZGltMjUgPSAyOyBkaW01MCA9IDM7IGRpbTc1ID0gNDtccGFyDQo+IFxwYXINCj4gVGhl
biwgbGF0ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gd2UgaGF2ZVxwYXINCj4gXHBhcg0KPiAoZjog
RnJhbWUpIE1hcmtSZWN0IChsLCB0LCByLCBiLCBzOiBJTlRFR0VSOyBtb2RlOiBJTlRFR0VSOyBz
aG93OiBccGFyDQo+IEJPT0xFQU4pLCBORVc7XHBhcg0KPiBccGFyDQo+IFRoZW4sIHN0aWxsIGxh
dGVyIGluIHRoZSBkb2N1bWVudGF0aW9uLCB3ZSBoYXZlIHRoaXMgZXhwbGFuYXRpb25ccGFyDQo+
IFxwYXINCj4gQ09OU1QgaW52ZXJ0LCBoaWxpdGUsIGRpbTI1LCBkaW01MCwgZGltNzVccGFyDQo+
IFRoZXNlIHZhbHVlcyBtYXkgYmUgcGFzc2VkIGFzIG1vZGUtcGFyYW1ldGVyIHRvIHByb2NlZHVy
ZSBNYXJrUmVjdC5ccGFyDQo+IFxwYXINCj4gVGhlIHBhcmFtZXRlciBsaXN0IG9mIE1hcmtSZWN0
IGlzIF9ub3RfIHNlbGYtZG9jdW1lbnRpbmcuIEFsbCB5b3Uga25vd1xwYXINCj4gYnkgbG9va2lu
ZyBhdCBmb3JtYWwgcGFyYW1ldGVyIG1vZGUgaXMgdGhhdCBpdCBpcyBhbiBpbnRlZ2VyLiBBbGwg
eW91IGtub3dccGFyDQo+IGJ5IGxvb2tpbmcgYXQgdGhlIENPTlNUIHNlY3Rpb24gaXMgdGhhdCB0
aGVyZSBhcmUgc29tZSBpbnRlZ2VyIGNvbnN0YW50cyxccGFyDQo+IGJ1dCB5b3UgaGF2ZSBubyB3
YXkgb2Yga25vd2luZyB3aGljaCBvZiB0aGUgaW50ZWdlciBjb25zdGFudHMsIGlmIGFueSxccGFy
DQo+IGlzIG1lYW50IHRvIGJlIHVzZWQgYXMgdGhlIG1vZGUgdmFsdWUgaW4gTWFya1JlY3QuIFlv
dSBtdXN0IHNlYXJjaCB0aHJvdWdoXHBhcg0KPiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGV4
cGxhbmF0aW9uLlxwYXINCj4gXHBhcg0KPiBOYW1lZCBpbnRlZ2VycyB3b3VsZCB3b3JrIGxpa2Ug
dGhpcy5ccGFyDQo+IFxwYXINCj4gVFlQRVxwYXINCj4gICAgTWFya01vZGUgPSAoaW52ZXJ0LCBo
aWxpdGUsIGRpbTI1LCBkaW01MCwgZGltNzUpO1xwYXINCj4gXHBhcg0KPiAoZjogRnJhbWUpIE1h
cmtSZWN0IChsLCB0LCByLCBiLCBzOiBJTlRFR0VSOyBtb2RlOiBNYXJrTW9kZTsgc2hvdzogXHBh
cg0KPiBCT09MRUFOKSwgTkVXO1xwYXINCj4gXHBhcg0KPiBBbHRob3VnaCB0aGUgc3ludGF4IGxv
b2tzIGxpa2UgdGhlIHN5bnRheCBvZiBlbnVtZXJhdGVkIHR5cGVzLCBuYW1lZFxwYXINCj4gaW50
ZWdlcnMgYXJlIF9ub3RfIGVudW1lcmF0ZWQgdHlwZXMuIEFzIEkgdW5kZXJzdGFuZCBpdCwgOTAl
IG9mIHRoZVxwYXINCj4gZGlmZmljdWx0eSBvZiBpbXBsZW1lbnRpbmcgZW51bWVyYXRlZCB0eXBl
cyBpcyB0aGUgdHlwZSBjaGVja2luZyB0aGF0IG11c3RccGFyDQo+IG9jY3VyIGFjcm9zcyBtb2R1
bGVzLiBUaGUgaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSB3YXMgc28gc2V2ZXJlIHRoYXRccGFy
DQo+IGVudW1lcmF0ZWQgdHlwZXMgd2VyZSBub3QgaW5jbHVkZWQgaW4gdGhlIGRlZmluaXRpb24g
b2YgQ1AuXHBhcg0KPiBccGFyDQo+IE5hbWVkIGludGVnZXJzIGhhdmUgbm9uZSBvZiB0aGUgaW1w
bGVtZW50YXRpb24gcHJvYmxlbXMgb2YgZW51bWVyYXRlZFxwYXINCj4gdHlwZXMuIFRoZXkgYXJl
IHNpbXBseSBhIHN5bnRhY3RpYyBzdWdhciB0aGF0IHByb3ZpZGUgYW4gaW1tZW5zZSBiZW5lZml0
XHBhcg0KPiBvZiBzZWxmLWRvY3VtZW50YXRpb24gZm9yIGEgdmVyeSBzbWFsbCBwcmljZS4gVGhl
eSBkbyBub3QgaW50cm9kdWNlIGEgbmV3XHBhcg0KPiB0eXBlLiBOYW1lZCBpbnRlZ2VycyBfYXJl
XyBpbnRlZ2Vycy4gSW4gZ2VuZXJhbFxwYXINCj4gXHBhcg0KPiBUWVBFIEFscGhhID0gKGJldGEs
IGdhbW1hLCBkZWx0YSk7XHBhcg0KPiBccGFyDQo+IGlzIF9kZWZpbmVkXyB0byBiZSBleGFjdGx5
IGVxdWl2YWxlbnQgdG9ccGFyDQo+IFxwYXINCj4gVFlQRSBBbHBoYSA9IElOVEVHRVI7XHBhcg0K
PiBDT05TVCBiZXRhID0gMDsgZ2FtbWEgPSAxOyBkZWx0YSA9IDI7XHBhcg0KPiBccGFyDQo+IEFz
IGZhciBhcyBleHBvcnQgaXMgY29uY2VybmVkXHBhcg0KPiBccGFyDQo+IFRZUEUgQWxwaGEqID0g
KGJldGEsIGdhbW1hLCBkZWx0YSk7XHBhcg0KPiBccGFyDQo+IGlzIGRlZmluZWQgdG8gYmUgZXF1
aXZhbGVudCB0b1xwYXINCj4gXHBhcg0KPiBUWVBFIEFscGhhKiA9IElOVEVHRVI7XHBhcg0KPiBD
T05TVCBiZXRhKiA9IDA7IGdhbW1hKiA9IDE7IGRlbHRhKiA9IDI7XHBhcg0KPiBccGFyDQo+IFRo
ZXJlIGlzIG5vIG5lZWQgZm9yIGNvbXBsZXggdHlwZS1jaGVja2luZyBydWxlcyB3aXRoIGVudW1l
cmF0ZWQgdmFsdWVzXHBhcg0KPiBhcyB0aGVyZSBpcyBpbiBDKysuIGdhbW1hIF9pc18gYW4gSU5U
RUdFUiBhbmQgY2FuIGJlIHVzZWQgYW55d2hlcmUgYW5ccGFyDQo+IGludGVnZXIgY2FuIGJlIHVz
ZWQuIG1vZGUgaXMgc3RpbGwgYW4gSU5URUdFUi4gTmFtZWQgaW50ZWdlcnMgd291bGQgY2hhbmdl
XHBhcg0KPiBfbm90aGluZ18gaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBlbnRpcmUgQmxh
Y2tCb3ggZnJhbWV3b3JrIGV4Y2VwdFxwYXINCmZvclxwYXINCj4gbWFraW5nIHRoZSBpbnRlcmZh
Y2VzIG11Y2ggZWFzaWVyIHRvIHJlYWQuXHBhcg0KPiBccGFyDQo+IFdoZW4gSSB3YXMgZmlyc3Qg
bGVhcm5pbmcgdGhlIEJCIGZyYW1ld29yayBJIHdhcyB1c2VkIHRvIHNvZnR3YXJlIGRlc2lnblxw
YXINCj4gdGhhdCBlbXBoYXNpemVkIGVudW1lcmF0ZWQgdHlwZXMgZm9yIHNlbGYtZG9jdW1lbnRh
dGlvbi4gSXQgd2FzIGEgc291cmNlXHBhcg0KPiBvZiBpcnJpdGF0aW9uIHRvIHNlZSBhbiBpbnRl
Z2VyIHBhcmFtZXRlciBpbiBhIGZvcm1hbCBwYXJhbWV0ZXIgbGlzdCBhbmQgXHBhcg0KPiBub3Rc
cGFyDQo+IGtub3cgaW1tZWRpYXRlbHkgd2hpY2ggc2V0IG9mIGludGVnZXIgY29uc3RhbnRzIGFw
cGxpZWQgdG8gaXQuIEkgdGhpbmsgb25lXHBhcg0KPiByZWFzb24gaXQgaGFzIGJlZW4gYSBoYXJk
IHNlbGwgdG8gdGhlIGZvbGtzIGF0IE9iZXJvbiBtaWNyb3N5c3RlbXMgaXMgdGhhdFxwYXINCj4g
dGhleSBhcmUgc28gZmFtaWxpYXIgd2l0aCB0aGUgZnJhbWV3b3JrIHRoYXQgdGhleSBmb3JnZXQg
d2hhdCBpdCBpcyBsaWtlIFxwYXINCj4gZm9yXHBhcg0KPiBhIG5vdmljZSB0byBiZSBsZWFybmlu
ZyBCQiBmb3IgdGhlIGZpcnN0IHRpbWUuXHBhcg0KPiBccGFyDQo+IFN0YW5ccGFyDQo+IFxwYXIN
Cj4gSi4gU3RhbmxleSBXYXJmb3JkXHBhcg0KPiBQcm9mZXNzb3Igb2YgQ29tcHV0ZXIgU2NpZW5j
ZVxwYXINCj4gUGVwcGVyZGluZSBVbml2ZXJzaXR5XHBhcg0KPiBNYWxpYnUsIENBIDkwMjYzXHBh
cg0KPiBTdGFuLldhcmZvcmRAcGVwcGVyZGluZS5lZHVccGFyDQo+IDMxMC01MDYtNDMzMlxwYXIN
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KXHBhcg0K
VG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29u
dGFpbmluZyB0aGUgd29yZFxwYXINCiJ1bnN1YnNjcmliZSIgdG86XHBhcg0KICAgYmxhY2tib3gt
cmVxdWVzdEBvYmVyb24uY2hccGFyDQpccGFyDQpUbyBnZXQgYSBsaXN0IG9mIHZhbGlkIGUtbWFp
bCBjb21tYW5kcyBhbmQgaW5zdHJ1Y3Rpb25zIG9uIHRoZWlyIHVzYWdlLCBzZW5kXHBhcg0KYSBt
ZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxw
YXINClxwYXINClNlbmQgYW55IHByb2JsZW0gcmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0
byB0aGlzIGVtYWlsIGxpc3QgdG8gdGhlIGxpc3RccGFyDQpvd25lciBhdFxwYXINCiAgIG93bmVy
LWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCkN1cnJlbnQgcG9zdGluZyBwb2xpY3k6XHBh
cg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBhZGRyZXNzIGJ5IHdo
aWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0b1xwYXINCnRoZSBtYWlsaW5nIGxpc3QuIFRoYXQgd2F5
LCB0aGUgbGlzdCBzZXJ2ZXIgd2lsbCByZWNvZ25pemUgeW91IGFzIHN1YnNjcmliZXJccGFyDQph
bmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdpdGhvdXQgY3JlYXRpbmcgYW55
IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29tZSByZWFzb24sIHlvdSBjYW5ub3Qg
cG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJlXHBhcg0Kc3Vic2NyaWJlZCwg
eW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNwYW0uIFBsZWFzZSB1bmRl
cnN0YW5kXHBhcg0KdGhhdCBtb2RlcmF0aW9uIHdpbGwgb2Z0ZW4gY2F1c2Ugc29tZSBkZWxheSwg
aW4gcGFydGljdWxhciBvdmVyIHdlZWtlbmRzIG9yXHBhcg0KaG9seWRheXMuXHBhcg0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1ccGFyDQpccGFyDQpUbyB1bnN1
YnNjcmliZSBmcm9tIHRoaXMgbWFpbGluZyBsaXN0LCBzZW5kIGEgbWVzc2FnZSBjb250YWluaW5n
IHRoZSB3b3JkICJ1bnN1YnNjcmliZSIgdG86XHBhcg0KICAgYmxhY2tib3gtcmVxdWVzdEBvYmVy
b24uY2hccGFyDQpccGFyDQpUbyBnZXQgYSBsaXN0IG9mIHZhbGlkIGUtbWFpbCBjb21tYW5kcyBh
bmQgaW5zdHJ1Y3Rpb25zIG9uIHRoZWlyIHVzYWdlLCBzZW5kIGEgbWVzc2FnZSBjb250YWluaW5n
IHRoZSB3b3JkICJoZWxwIiB0byB0aGUgYWJvdmUgYWRkcmVzcy5ccGFyDQpccGFyDQpTZW5kIGFu
eSBwcm9ibGVtIHJlcG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhpcyBlbWFpbCBsaXN0
IHRvIHRoZSBsaXN0IG93bmVyIGF0XHBhcg0KICAgb3duZXItYmxhY2tib3hAb2Jlcm9uLmNoXHBh
cg0KXHBhcg0KQ3VycmVudCBwb3N0aW5nIHBvbGljeTpccGFyDQpccGFyDQphKSBUbyBwb3N0IHlv
dSBzaG91bGQgdXNlIHRoZSBzYW1lIGFkZHJlc3MgYnkgd2hpY2ggeW91IGFyZSBzdWJzY3JpYmVk
IHRvIHRoZSBtYWlsaW5nIGxpc3QuIFRoYXQgd2F5LCB0aGUgbGlzdCBzZXJ2ZXIgd2lsbCByZWNv
Z25pemUgeW91IGFzIHN1YnNjcmliZXIgYW5kIGZvcndhcmQgeW91ciBwb3N0aW5nIGltbWVkaWF0
ZWx5LCB3aXRob3V0IGNyZWF0aW5nIGFueSBvdmVyaGVhZC5ccGFyDQpccGFyDQpiKSBJZiwgZm9y
IHNvbWUgcmVhc29uLCB5b3UgY2Fubm90IHBvc3QgZnJvbSB0aGUgYWRkcmVzcywgYnkgd2hpY2gg
eW91IGFyZSBzdWJzY3JpYmVkLCB5b3VyIG1lc3NhZ2Ugd2lsbCBiZSBtb2RlcmF0ZWQgdG8gYXZv
aWQgc3BhbS4gUGxlYXNlIHVuZGVyc3RhbmQgdGhhdCBtb2RlcmF0aW9uIHdpbGwgb2Z0ZW4gY2F1
c2Ugc29tZSBkZWxheSwgaW4gcGFydGljdWxhciBvdmVyIHdlZWtlbmRzIG9yIGh9fQBvYVdOb0lI
bHZkU0I=
----boundary-LibPST-iamunique-1247054858_-_---
Received on Sun Nov 21 2004 - 21:51:43 UTC