(unknown charset) RE: Named Integers: What possible problems could they cause?

From: (unknown charset) John Stout <"John>
Date: Tue, 23 Nov 2004 21:43:13 -0000

----boundary-LibPST-iamunique-1179202287_-_-
Content-type: text/plain

Well, what would happen in 'normal' Component Pascal?

In case 1 you'd get a duplicate identifier which is what I'd expect and hope
to get
from something like

CONST
        blue* = 4;
        blue* = 1;

so I don't think that's a problem and would need no change to the compiler,
apart from
the syntactic sugar change.

In the second case when you recompile green is redefined and you get a
'object Test1.blue inconsistently imported from Test2'
error when you try to load the module. Again, no change to the compiler once
the sugar is refined.

John Stout

-----Original Message-----
From: Hof, Philipp [mailto:p.hof{([at]})nowhere.xy
Sent: 21 November 2004 20:52
To: 'blackbox{([at]})nowhere.xy
Subject: RE: Named Integers

> 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.

---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.799 / Virus Database: 543 - Release Date: 19/11/2004
 
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.799 / Virus Database: 543 - Release Date: 19/11/2004
 
---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.799 / Virus Database: 543 - Release Date: 19/11/2004
 
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.799 / Virus Database: 543 - Release Date: 19/11/2004
 
--------------------------------------------
To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xyTo 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.xyCurrent 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-1179202287_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIFdlbGwsIHdoYXQgd291bGQgaGFwcGVuIGluICdu
b3JtYWwnIENvbXBvbmVudCBQYXNjYWw/XHBhcg0KXHBhcg0KSW4gY2FzZSAxIHlvdSdkIGdldCBh
IGR1cGxpY2F0ZSBpZGVudGlmaWVyIHdoaWNoIGlzIHdoYXQgSSdkIGV4cGVjdCBhbmQgaG9wZVxw
YXINCnRvIGdldFxwYXINCmZyb20gc29tZXRoaW5nIGxpa2VccGFyDQpccGFyDQpDT05TVFxwYXIN
Clx0YWIgYmx1ZSogPSA0O1xwYXINClx0YWIgYmx1ZSogPSAxO1xwYXINClxwYXINCnNvIEkgZG9u
J3QgdGhpbmsgdGhhdCdzIGEgcHJvYmxlbSBhbmQgd291bGQgbmVlZCBubyBjaGFuZ2UgdG8gdGhl
IGNvbXBpbGVyLFxwYXINCmFwYXJ0IGZyb20gXHBhcg0KdGhlIHN5bnRhY3RpYyBzdWdhciBjaGFu
Z2UuXHBhcg0KXHBhcg0KSW4gdGhlIHNlY29uZCBjYXNlIHdoZW4geW91IHJlY29tcGlsZSBncmVl
biBpcyByZWRlZmluZWQgYW5kIHlvdSBnZXQgYVxwYXINCidvYmplY3QgVGVzdDEuYmx1ZSBpbmNv
bnNpc3RlbnRseSBpbXBvcnRlZCBmcm9tIFRlc3QyJ1xwYXINCmVycm9yIHdoZW4geW91IHRyeSB0
byBsb2FkIHRoZSBtb2R1bGUuIEFnYWluLCBubyBjaGFuZ2UgdG8gdGhlIGNvbXBpbGVyIG9uY2Vc
cGFyDQp0aGUgc3VnYXIgaXMgcmVmaW5lZC5ccGFyDQpccGFyDQpKb2huIFN0b3V0XHBhcg0KXHBh
cg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1ccGFyDQpGcm9tOiBIb2YsIFBoaWxpcHAgW21h
aWx0bzpwLmhvZkBlbGVjLmNhbnRlcmJ1cnkuYWMubnpdIFxwYXINClNlbnQ6IDIxIE5vdmVtYmVy
IDIwMDQgMjA6NTJccGFyDQpUbzogJ2JsYWNrYm94QG9iZXJvbi5jaCdccGFyDQpTdWJqZWN0OiBS
RTogTmFtZWQgSW50ZWdlcnNccGFyDQpccGFyDQo+IG5vdywgd2hhdCBwb3NzaWJsZSBwcm9ibGVt
cyBjb3VsZCB0aGV5IGNhdXNlP1xwYXINClxwYXINCkp1c3Qgc29tZSBodXJyeSB0aG91Z2h0czpc
cGFyDQpccGFyDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHBh
cg0KXHBhcg0KUHJvYmxlbSAxOlxwYXINClxwYXINClRZUEVccGFyDQogIENvbG91ciogPSAocmVk
IDo9IDMsIGJsdWUsIGdyZWVuKTtccGFyDQogIENhckNvbG91ciogPSAoYmx1ZSwgeWVsbG93LCBv
cmFuZ2UpO1xwYXINClxwYXINCklmIEkgdW5kZXJzdGFuZCB0aGUgaWRlYSByaWdodCB0aGlzIHdv
dWxkIGJlIGlkZW50aWNhbCB0bzpccGFyDQogXHBhcg0KQ09OU1RccGFyDQogIC4uLlxwYXINCiAg
Ymx1ZSogPSA0O1xwYXINCiAgYmx1ZSogPSAxO1xwYXINClxwYXINCioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKipccGFyDQpccGFyDQpQcm9ibGVtIDI6XHBhcg0KXHBh
cg0KVFlQRVxwYXINCiAgQ29sb3VyKiA9IChyZWQgPSAzLCBibHVlLCBncmVlbik7XHBhcg0KKCog
Z3JlZW4gPSA1ICopXHBhcg0KXHBhcg0KY2hhbmdlcyB0bzpccGFyDQogXHBhcg0KVFlQRVxwYXIN
CiAgQ29sb3VyKiA9IChyZWQgPSAzLCBibHVlLCBsaWdodEJsdWUsIGdyZWVuKTtccGFyDQooKiBn
cmVlbiA9IDYgKilccGFyDQpccGFyDQotPiBDYXVzZXMgYSBwcm9ibGVtIHRvIGV4aXN0aW5nIChj
b21waWxlZCkgbW9kdWxlcyB1c2luZyAnQ29sb3VyJ1xwYXINClxwYXINCioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKipccGFyDQpccGFyDQpDaGVlcnMsXHBhcg0KUGhp
bGlwcFxwYXINCiBccGFyDQpccGFyDQpccGFyDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLVxw
YXINCkZyb206IERvdWdsYXMgRy4gRGFuZm9ydGggW21haWx0bzpkYW5mb3J0aEBncmVlbndvb2Rm
YXJtLmNvbV1ccGFyDQpTZW50OiBTdW5kYXksIDIxIE5vdmVtYmVyIDIwMDQgMjozOSBwLm0uXHBh
cg0KVG86IFN0YW4gV2FyZm9yZFxwYXINCkNjOiBpbmZvQGNmYnNvZnR3YXJlLmNvbTsgYmxhY2ti
b3hAb2Jlcm9uLmNoXHBhcg0KU3ViamVjdDogUmU6IE5hbWVkIEludGVnZXJzXHBhcg0KXHBhcg0K
U3RhbixccGFyDQpJIGxpa2UgdGhlIGlkZWEgb2YgTmFtZWQgSW50ZWdlcnMuICBUaGV5IHdvdWxk
IGluZGVlZCBzaW1wbGlmeSB0aGVccGFyDQpkb2N1bWVudGF0aW9uIChub3csIHdoYXQgcG9zc2li
bGUgcHJvYmxlbXMgY291bGQgdGhleSBjYXVzZT8pLlxwYXINCi1Eb3VnXHBhcg0KXHBhcg0KU3Rh
biBXYXJmb3JkIHdyb3RlOlxwYXINCj4gVGhlIGJlbmVmaXQgb2YgbmFtZWQgaW50ZWdlcnMgaXMg
c2VsZi1kb2N1bWVudGF0aW9uLiBPbiB0aGUgc3VyZmFjZSwgXHBhcg0KPiB0aGV5IGxvb2sgbGlr
ZSBlbnVtZXJhdGVkIHR5cGVzLCBidXQgdGhleSBhcmUgZnVuZGFtZW50YWxseSBkaWZmZXJlbnQg
XHBhcg0KPiBiZWNhdXNlIHRoZXkgZG8gbm90IGhhdmUgdGhlIGltcGxlbWVudGF0aW9uIHByb2Js
ZW1zIG9mIHR5cGUgY2hlY2tpbmcgXHBhcg0KPiB0aGF0IGVudW1lcmF0ZWQgdHlwZXMgaGF2ZS4g
SGVuY2UsIHlvdSBnZXQgOTAlIG9mIHRoZSBiZW5lZml0cyBvZiBccGFyDQo+IGVudW1lcmF0ZWQg
dHlwZXMgd2l0aCAxMCUgb2YgdGhlIGltcGxlbWVudGF0aW9uIGNvc3QuXHBhcg0KPiBccGFyDQo+
IEhlcmUgaXMgYW4gZXhhbXBsZS4gSW4gdGhlIGRvY3VtZW50YXRpb24gZm9yIE1vZHVsZSBQb3J0
cywgd2UgaGF2ZVxwYXINCj4gXHBhcg0KPiBDT05TVFxwYXINCj4gICAgaW52ZXJ0ID0gMDsgaGls
aXRlID0gMTsgZGltMjUgPSAyOyBkaW01MCA9IDM7IGRpbTc1ID0gNDtccGFyDQo+IFxwYXINCj4g
VGhlbiwgbGF0ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gd2UgaGF2ZVxwYXINCj4gXHBhcg0KPiAo
ZjogRnJhbWUpIE1hcmtSZWN0IChsLCB0LCByLCBiLCBzOiBJTlRFR0VSOyBtb2RlOiBJTlRFR0VS
OyBzaG93OiBccGFyDQo+IEJPT0xFQU4pLCBORVc7XHBhcg0KPiBccGFyDQo+IFRoZW4sIHN0aWxs
IGxhdGVyIGluIHRoZSBkb2N1bWVudGF0aW9uLCB3ZSBoYXZlIHRoaXMgZXhwbGFuYXRpb25ccGFy
DQo+IFxwYXINCj4gQ09OU1QgaW52ZXJ0LCBoaWxpdGUsIGRpbTI1LCBkaW01MCwgZGltNzUgVGhl
c2UgdmFsdWVzIG1heSBiZSBwYXNzZWQgXHBhcg0KPiBhcyBtb2RlLXBhcmFtZXRlciB0byBwcm9j
ZWR1cmUgTWFya1JlY3QuXHBhcg0KPiBccGFyDQo+IFRoZSBwYXJhbWV0ZXIgbGlzdCBvZiBNYXJr
UmVjdCBpcyBfbm90XyBzZWxmLWRvY3VtZW50aW5nLiBBbGwgeW91IGtub3cgXHBhcg0KPiBieSBs
b29raW5nIGF0IGZvcm1hbCBwYXJhbWV0ZXIgbW9kZSBpcyB0aGF0IGl0IGlzIGFuIGludGVnZXIu
IEFsbCB5b3UgXHBhcg0KPiBrbm93IGJ5IGxvb2tpbmcgYXQgdGhlIENPTlNUIHNlY3Rpb24gaXMg
dGhhdCB0aGVyZSBhcmUgc29tZSBpbnRlZ2VyIFxwYXINCj4gY29uc3RhbnRzLCBidXQgeW91IGhh
dmUgbm8gd2F5IG9mIGtub3dpbmcgd2hpY2ggb2YgdGhlIGludGVnZXIgXHBhcg0KPiBjb25zdGFu
dHMsIGlmIGFueSwgaXMgbWVhbnQgdG8gYmUgdXNlZCBhcyB0aGUgbW9kZSB2YWx1ZSBpbiBNYXJr
UmVjdC4gXHBhcg0KPiBZb3UgbXVzdCBzZWFyY2ggdGhyb3VnaCB0aGUgZG9jdW1lbnRhdGlvbiBm
b3IgdGhlIGV4cGxhbmF0aW9uLlxwYXINCj4gXHBhcg0KPiBOYW1lZCBpbnRlZ2VycyB3b3VsZCB3
b3JrIGxpa2UgdGhpcy5ccGFyDQo+IFxwYXINCj4gVFlQRVxwYXINCj4gICAgTWFya01vZGUgPSAo
aW52ZXJ0LCBoaWxpdGUsIGRpbTI1LCBkaW01MCwgZGltNzUpO1xwYXINCj4gXHBhcg0KPiAoZjog
RnJhbWUpIE1hcmtSZWN0IChsLCB0LCByLCBiLCBzOiBJTlRFR0VSOyBtb2RlOiBNYXJrTW9kZTsg
c2hvdzogXHBhcg0KPiBCT09MRUFOKSwgTkVXO1xwYXINCj4gXHBhcg0KPiBBbHRob3VnaCB0aGUg
c3ludGF4IGxvb2tzIGxpa2UgdGhlIHN5bnRheCBvZiBlbnVtZXJhdGVkIHR5cGVzLCBuYW1lZCBc
cGFyDQo+IGludGVnZXJzIGFyZSBfbm90XyBlbnVtZXJhdGVkIHR5cGVzLiBBcyBJIHVuZGVyc3Rh
bmQgaXQsIDkwJSBvZiB0aGUgXHBhcg0KPiBkaWZmaWN1bHR5IG9mIGltcGxlbWVudGluZyBlbnVt
ZXJhdGVkIHR5cGVzIGlzIHRoZSB0eXBlIGNoZWNraW5nIHRoYXQgXHBhcg0KPiBtdXN0IG9jY3Vy
IGFjcm9zcyBtb2R1bGVzLiBUaGUgaW1wbGVtZW50YXRpb24gZGlmZmljdWx0eSB3YXMgc28gc2V2
ZXJlIFxwYXINCj4gdGhhdCBlbnVtZXJhdGVkIHR5cGVzIHdlcmUgbm90IGluY2x1ZGVkIGluIHRo
ZSBkZWZpbml0aW9uIG9mIENQLlxwYXINCj4gXHBhcg0KPiBOYW1lZCBpbnRlZ2VycyBoYXZlIG5v
bmUgb2YgdGhlIGltcGxlbWVudGF0aW9uIHByb2JsZW1zIG9mIGVudW1lcmF0ZWQgXHBhcg0KPiB0
eXBlcy4gVGhleSBhcmUgc2ltcGx5IGEgc3ludGFjdGljIHN1Z2FyIHRoYXQgcHJvdmlkZSBhbiBp
bW1lbnNlIFxwYXINCj4gYmVuZWZpdCBvZiBzZWxmLWRvY3VtZW50YXRpb24gZm9yIGEgdmVyeSBz
bWFsbCBwcmljZS4gVGhleSBkbyBub3QgXHBhcg0KPiBpbnRyb2R1Y2UgYSBuZXcgdHlwZS4gTmFt
ZWQgaW50ZWdlcnMgX2FyZV8gaW50ZWdlcnMuIEluIGdlbmVyYWxccGFyDQo+IFxwYXINCj4gVFlQ
RSBBbHBoYSA9IChiZXRhLCBnYW1tYSwgZGVsdGEpO1xwYXINCj4gXHBhcg0KPiBpcyBfZGVmaW5l
ZF8gdG8gYmUgZXhhY3RseSBlcXVpdmFsZW50IHRvXHBhcg0KPiBccGFyDQo+IFRZUEUgQWxwaGEg
PSBJTlRFR0VSO1xwYXINCj4gQ09OU1QgYmV0YSA9IDA7IGdhbW1hID0gMTsgZGVsdGEgPSAyO1xw
YXINCj4gXHBhcg0KPiBBcyBmYXIgYXMgZXhwb3J0IGlzIGNvbmNlcm5lZFxwYXINCj4gXHBhcg0K
PiBUWVBFIEFscGhhKiA9IChiZXRhLCBnYW1tYSwgZGVsdGEpO1xwYXINCj4gXHBhcg0KPiBpcyBk
ZWZpbmVkIHRvIGJlIGVxdWl2YWxlbnQgdG9ccGFyDQo+IFxwYXINCj4gVFlQRSBBbHBoYSogPSBJ
TlRFR0VSO1xwYXINCj4gQ09OU1QgYmV0YSogPSAwOyBnYW1tYSogPSAxOyBkZWx0YSogPSAyO1xw
YXINCj4gXHBhcg0KPiBUaGVyZSBpcyBubyBuZWVkIGZvciBjb21wbGV4IHR5cGUtY2hlY2tpbmcg
cnVsZXMgd2l0aCBlbnVtZXJhdGVkIFxwYXINCj4gdmFsdWVzIGFzIHRoZXJlIGlzIGluIEMrKy4g
Z2FtbWEgX2lzXyBhbiBJTlRFR0VSIGFuZCBjYW4gYmUgdXNlZCBccGFyDQo+IGFueXdoZXJlIGFu
IGludGVnZXIgY2FuIGJlIHVzZWQuIG1vZGUgaXMgc3RpbGwgYW4gSU5URUdFUi4gTmFtZWQgXHBh
cg0KPiBpbnRlZ2VycyB3b3VsZCBjaGFuZ2UgX25vdGhpbmdfIGluIHRoZSBpbXBsZW1lbnRhdGlv
biBvZiB0aGUgZW50aXJlIFxwYXINCj4gQmxhY2tCb3ggZnJhbWV3b3JrIGV4Y2VwdFxwYXINCmZv
clxwYXINCj4gbWFraW5nIHRoZSBpbnRlcmZhY2VzIG11Y2ggZWFzaWVyIHRvIHJlYWQuXHBhcg0K
PiBccGFyDQo+IFdoZW4gSSB3YXMgZmlyc3QgbGVhcm5pbmcgdGhlIEJCIGZyYW1ld29yayBJIHdh
cyB1c2VkIHRvIHNvZnR3YXJlIFxwYXINCj4gZGVzaWduIHRoYXQgZW1waGFzaXplZCBlbnVtZXJh
dGVkIHR5cGVzIGZvciBzZWxmLWRvY3VtZW50YXRpb24uIEl0IHdhcyBccGFyDQo+IGEgc291cmNl
IG9mIGlycml0YXRpb24gdG8gc2VlIGFuIGludGVnZXIgcGFyYW1ldGVyIGluIGEgZm9ybWFsIFxw
YXINCj4gcGFyYW1ldGVyIGxpc3QgYW5kIG5vdCBrbm93IGltbWVkaWF0ZWx5IHdoaWNoIHNldCBv
ZiBpbnRlZ2VyIGNvbnN0YW50cyBccGFyDQo+IGFwcGxpZWQgdG8gaXQuIEkgdGhpbmsgb25lIHJl
YXNvbiBpdCBoYXMgYmVlbiBhIGhhcmQgc2VsbCB0byB0aGUgZm9sa3MgXHBhcg0KPiBhdCBPYmVy
b24gbWljcm9zeXN0ZW1zIGlzIHRoYXQgdGhleSBhcmUgc28gZmFtaWxpYXIgd2l0aCB0aGUgZnJh
bWV3b3JrIFxwYXINCj4gdGhhdCB0aGV5IGZvcmdldCB3aGF0IGl0IGlzIGxpa2UgZm9yIGEgbm92
aWNlIHRvIGJlIGxlYXJuaW5nIEJCIGZvciBccGFyDQo+IHRoZSBmaXJzdCB0aW1lLlxwYXINCj4g
XHBhcg0KPiBTdGFuXHBhcg0KPiBccGFyDQo+IEouIFN0YW5sZXkgV2FyZm9yZFxwYXINCj4gUHJv
ZmVzc29yIG9mIENvbXB1dGVyIFNjaWVuY2VccGFyDQo+IFBlcHBlcmRpbmUgVW5pdmVyc2l0eVxw
YXINCj4gTWFsaWJ1LCBDQSA5MDI2M1xwYXINCj4gU3Rhbi5XYXJmb3JkQHBlcHBlcmRpbmUuZWR1
XHBhcg0KPiAzMTAtNTA2LTQzMzJccGFyDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBtYWlsaW5n
IGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmRccGFyDQoidW5zdWJzY3Jp
YmUiIHRvOlxwYXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNoXHBhcg0KXHBhcg0KVG8g
Z2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3RydWN0aW9ucyBvbiB0
aGVpciB1c2FnZSwgc2VuZFxwYXINCmEgbWVzc2FnZSBjb250YWluaW5nIHRoZSB3b3JkICJoZWxw
IiB0byB0aGUgYWJvdmUgYWRkcmVzcy5ccGFyDQpccGFyDQpTZW5kIGFueSBwcm9ibGVtIHJlcG9y
dHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhpcyBlbWFpbCBsaXN0IHRvIHRoZSBsaXN0XHBh
cg0Kb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFyDQpccGFyDQpD
dXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91IHNob3VsZCB1
c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQgdG9ccGFyDQp0
aGUgbWFpbGluZyBsaXN0LiBUaGF0IHdheSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXpl
IHlvdSBhcyBzdWJzY3JpYmVyXHBhcg0KYW5kIGZvcndhcmQgeW91ciBwb3N0aW5nIGltbWVkaWF0
ZWx5LCB3aXRob3V0IGNyZWF0aW5nIGFueSBvdmVyaGVhZC5ccGFyDQpccGFyDQpiKSBJZiwgZm9y
IHNvbWUgcmVhc29uLCB5b3UgY2Fubm90IHBvc3QgZnJvbSB0aGUgYWRkcmVzcywgYnkgd2hpY2gg
eW91IGFyZVxwYXINCnN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0
byBhdm9pZCBzcGFtLiBQbGVhc2UgdW5kZXJzdGFuZFxwYXINCnRoYXQgbW9kZXJhdGlvbiB3aWxs
IG9mdGVuIGNhdXNlIHNvbWUgZGVsYXksIGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvclxw
YXINCmhvbHlkYXlzLlxwYXINCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIG1haWxpbmcgbGlzdCwg
c2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZFxwYXINCiJ1bnN1YnNjcmliZSIgdG86
XHBhcg0KICAgYmxhY2tib3gtcmVxdWVzdEBvYmVyb24uY2hccGFyDQpccGFyDQpUbyBnZXQgYSBs
aXN0IG9mIHZhbGlkIGUtbWFpbCBjb21tYW5kcyBhbmQgaW5zdHJ1Y3Rpb25zIG9uIHRoZWlyIHVz
YWdlLCBzZW5kXHBhcg0KYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIHdvcmQgImhlbHAiIHRvIHRo
ZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55IHByb2JsZW0gcmVwb3J0cyBvciBx
dWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3QgdG8gdGhlIGxpc3RccGFyDQpvd25l
ciBhdFxwYXINCiAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCkN1cnJlbnQg
cG9zdGluZyBwb2xpY3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0aGUg
c2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0b1xwYXINCnRoZSBtYWls
aW5nIGxpc3QuIFRoYXQgd2F5LCB0aGUgbGlzdCBzZXJ2ZXIgd2lsbCByZWNvZ25pemUgeW91IGFz
IHN1YnNjcmliZXJccGFyDQphbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRlbHksIHdp
dGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Igc29tZSBy
ZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5b3UgYXJl
XHBhcg0Kc3Vic2NyaWJlZCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lk
IHNwYW0uIFBsZWFzZSB1bmRlcnN0YW5kXHBhcg0KdGhhdCBtb2RlcmF0aW9uIHdpbGwgb2Z0ZW4g
Y2F1c2Ugc29tZSBkZWxheSwgaW4gcGFydGljdWxhciBvdmVyIHdlZWtlbmRzIG9yXHBhcg0KaG9s
eWRheXMuXHBhcg0KXHBhcg0KLS0tXHBhcg0KSW5jb21pbmcgbWFpbCBpcyBjZXJ0aWZpZWQgVmly
dXMgRnJlZS5ccGFyDQpDaGVja2VkIGJ5IEFWRyBhbnRpLXZpcnVzIHN5c3RlbSAoaHR0cDovL3d3
dy5ncmlzb2Z0LmNvbSkuXHBhcg0KVmVyc2lvbjogNi4wLjc5OSAvIFZpcnVzIERhdGFiYXNlOiA1
NDMgLSBSZWxlYXNlIERhdGU6IDE5LzExLzIwMDRccGFyDQogXHBhcg0KXHBhcg0KLS0tXHBhcg0K
T3V0Z29pbmcgbWFpbCBpcyBjZXJ0aWZpZWQgVmlydXMgRnJlZS5ccGFyDQpDaGVja2VkIGJ5IEFW
RyBhbnRpLXZpcnVzIHN5c3RlbSAoaHR0cDovL3d3dy5ncmlzb2Z0LmNvbSkuXHBhcg0KVmVyc2lv
bjogNi4wLjc5OSAvIFZpcnVzIERhdGFiYXNlOiA1NDMgLSBSZWxlYXNlIERhdGU6IDE5LzExLzIw
MDRccGFyDQogXHBhcg0KXHBhcg0KXHBhcg0KLS0tXHBhcg0KSW5jb21pbmcgbWFpbCBpcyBjZXJ0
aWZpZWQgVmlydXMgRnJlZS5ccGFyDQpDaGVja2VkIGJ5IEFWRyBhbnRpLXZpcnVzIHN5c3RlbSAo
aHR0cDovL3d3dy5ncmlzb2Z0LmNvbSkuXHBhcg0KVmVyc2lvbjogNi4wLjc5OSAvIFZpcnVzIERh
dGFiYXNlOiA1NDMgLSBSZWxlYXNlIERhdGU6IDE5LzExLzIwMDRccGFyDQogXHBhcg0KXHBhcg0K
LS0tXHBhcg0KT3V0Z29pbmcgbWFpbCBpcyBjZXJ0aWZpZWQgVmlydXMgRnJlZS5ccGFyDQpDaGVj
a2VkIGJ5IEFWRyBhbnRpLXZpcnVzIHN5c3RlbSAoaHR0cDovL3d3dy5ncmlzb2Z0LmNvbSkuXHBh
cg0KVmVyc2lvbjogNi4wLjc5OSAvIFZpcnVzIERhdGFiYXNlOiA1NDMgLSBSZWxlYXNlIERhdGU6
IDE5LzExLzIwMDRccGFyDQogXHBhcg0KXHBhcg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS1ccGFyDQpccGFyDQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbWFp
bGluZyBsaXN0LCBzZW5kIGEgbWVzc2FnZSBjb250YWluaW5nIHRoZSB3b3JkICJ1bnN1YnNjcmli
ZSIgdG86XHBhcg0KICAgYmxhY2tib3gtcmVxdWVzdEBvYmVyb24uY2hccGFyDQpccGFyDQpUbyBn
ZXQgYSBsaXN0IG9mIHZhbGlkIGUtbWFpbCBjb21tYW5kcyBhbmQgaW5zdHJ1Y3Rpb25zIG9uIHRo
ZWlyIHVzYWdlLCBzZW5kIGEgbWVzc2FnZSBjb250YWluaW5nIHRoZSB3b3JkICJoZWxwIiB0byB0
aGUgYWJvdmUgYWRkcmVzcy5ccGFyDQpccGFyDQpTZW5kIGFueSBwcm9ibGVtIHJlcG9ydHMgb3Ig
cXVlc3Rpb25zIHJlbGF0ZWQgdG8gdGhpcyBlbWFpbCBsaXN0IHRvIHRoZSBsaXN0IG93bmVyIGF0
XHBhcg0KICAgb3duZXItYmxhY2tib3hAb2Jlcm9uLmNoXHBhcg0KXHBhcg0KQ3VycmVudCBwb3N0
aW5nIHBvbGljeTpccGFyDQpccGFyDQphKSBUbyBwb3N0IHlvdSBzaG91bGQgdXNlIHRoZSBzYW1l
IGFkZHJlc3MgYnkgd2hpY2ggeW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoZSBtYWlsaW5nIGxpc3Qu
IFRoYXQgd2F5LCB0aGUgbGlzdCBzZXJ2ZXIgd2lsbCByZWNvZ25pemUgeW91IGFzIHN1YnNjcmli
ZXIgYW5kIGZvcndhcmQgeW91ciBwb3N0aW5nIGltbWVkaWF0ZWx5LCB3aXRob3V0IGNyZWF0aW5n
IGFueSBvdmVyaGVhZC5ccGFyDQpccGFyDQpiKSBJZiwgZm9yIHNvbWUgcmVhc29uLCB5b3UgY2Fu
bm90IHBvc3QgZnJvbSB0aGUgYWRkcmVzcywgYnkgd2hpY2ggeW91IGFyZSBzdWJzY3JpYmVkLCB5
b3VyIG1lc3NhZ2Ugd2lsbCBiZSBtb2RlcmF0ZWQgdG8gYXZvaWQgc3BhbS4gUGxlYXNlIHVuZGVy
c3RhbmQgdGhhdCBtb2RlcmF0aW9uIHdpbGwgb2Z0ZW4gY2F1c2Ugc29tZSBkZWxheSwgaW4gcGFy
dGljdWxhciBvdmVyIHdlZWtlbmRzIG9yIGhvbHlkYXlzLlxwYXINCn0=
----boundary-LibPST-iamunique-1179202287_-_---
Received on Tue Nov 23 2004 - 22:43:13 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:30 UTC