Re: [BLACKBOX] [Fwd: Re: [BLACKBOX] Another trap during compile]

From: Oleg N. Cher <"Oleg>
Date: Mon, 25 Oct 2010 11:58:37 +0300

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

Dear Chris,

Chris Burrows wrote:

>> PROCEDURE [ccall] MapRGB* ["SDL_MapRGB"] (format: PPixelFormat; r:
>> UInt8; g: UInt8; b: UInt8): UInt32;
>>
> OK. I'm not 100% sure but I think you can equivalently map this definition
> as:
>
> PROCEDURE [ccall] MapRGB* ["SDL_MapRGB"] (format: PPixelFormat; r, g, b:
> SHORTCHAR): INTEGER;

OK, ant what do you think about compatiblity with other versions of
Oberon? In XDS and AOS size of INTEGER type is 2 bytes. Well OK, we can
do autoreplace 'INTEGER' to 'LONGINT', but do you saw ported code of
ZLib? _Not every LONGINT was changed to INTEGER.

I very good understand what INTEGER is base type for different using,
but while you porting system low-level code from C or Delphi there is a
good method to show and mark what type is base integer, what must be
ONLY 32 or 64 bits, and what is unsigned. Because afterwards easier to
use these types correctly without that to be momently checked with
manual. And, after all, this UInt32, SInt32 can be autochanged to
INTEGER in every moment, but if you will want to restore information,
which carry these types, all the information will be lost, because it
was hidden under type INTEGER.

Well, I planned to adapt SDL to other Oberon compilers, and all what I
will do with types will be modify at start all type sizes to a new, all
well-understand signed as 'UInt8' stay the same, as in BlackBox. Btw,
now I while coding in Oberon, I use type Integer, what defined in
BlackBox as INTEGER, and in ETH Oberon and AOS is defined as LONGINT,
because base integer type of 32 bit systems as Windows is 32 bit. This
is simply style, habit and comfort, and since language Oberon gives a
chance obviously indicate, emphasize and mark the different types as a
matter of convenience, that why not to use this possibility for
improvement result?

>
> and then avoid the UInt8 typecasts.
>
> As long as you aren't using the result in arithmetic expressions I don't see
> that it really matters whether it is defined as signed or unsigned as long
> as it is a 32-bit value.
>
> That is where SYSTEM.VAL is not going to work. If you are *converting* the
> 32-bit return value to a smaller (16-, or 8-bit) type you can't do that with
> typecasting, you should use the SHORT function instead.
>
> However, don't take my word for it - I might well be missing the point
> altogether.
>
>> that defines screen color depth OPTIONALLY defined in other module.
>> UInt32, SInt32 are not my idea, it is adaptation of Delphi's JEDI SDL.

>>
>> And you can understant what is OPTIONALLY SETTINGS before
>> critique my way?
>>
>
> No sorry - I do not understand exactly how you have set it up to OPTIONALLY
> using different result types.

OK. I explain step by step.
Every software has set of options (settings) for work. Remember
conditional defines in Delphi? It used for ($IFDEF}/{$ENDIF} and help to
change program code logic in broad scale, more broad than IF/THEN.
Now, for example, I place settings of graphic program to other module
named Settings. There I define color depth as size of color type:

TYPE
   ScreenDepthBits8 = BYTE;
   ScreenDepthBits16 = SHORTINT;
   ScreenDepthBits32 = INTEGER;
   Color* = ScreenDepthBits32;

In other module we import Settings and work with type Color without
knowlwdge its exact size. We consider it is an abstract type, and we
must to find way to work with type Color without evident casting
SHORT(SHORT(s)). Why? Because it is not be compiled, because compiler
knows exactly size of type Color during compile, and it is abstract only
for people who want to use it as optional abstract type. But if Color is
INTEGER, as defined in Settings, this code compiles and works:

PROCEDURE RGB* (r, g, b: SHORTCHAR (*+ETH CHAR*) ): Color;
BEGIN
   RETURN Sdl.MapRGB(screen.format, SYSTEM.VAL(UInt8, r),
     SYSTEM.VAL(UInt8, g), SYSTEM.VAL(UInt8, b)))
END RGB;

Because result of Sdl.MapRGB is UInt32 (in fact INTEGER) too.

Now, at one of the moments I like to lower screen color depth to economy
of RAM. I modify Settings (I want set type Color ONLY once in module
Settings, but not every module that uses graphic):

TYPE
   ScreenDepthBits8 = BYTE;
   ScreenDepthBits16 = SHORTINT;
   ScreenDepthBits32 = INTEGER;
   Color* = ScreenDepthBits16;

What is this signifies? The code:

PROCEDURE RGB* (r, g, b: SHORTCHAR (*+ETH CHAR*) ): Color;
BEGIN
   RETURN Sdl.MapRGB(screen.format, SYSTEM.VAL(UInt8, r),
     SYSTEM.VAL(UInt8, g), SYSTEM.VAL(UInt8, b)))
END RGB;

not works already, because type Color now SHORTINT. And all code in all
modules that works with type Color as 32 bit INTEGER stay not works.
Ehehe, we change:

PROCEDURE RGB* (r, g, b: SHORTCHAR (*+ETH CHAR*) ): Color;
BEGIN
   RETURN SHORT(Sdl.MapRGB(screen.format, SYSTEM.VAL(UInt8, r),
     SYSTEM.VAL(UInt8, g), SYSTEM.VAL(UInt8, b))))
END RGB;

Very good, it works for 16 bit Color type. But if we change the type to
32 or 8 bit, it will not work once again. I do not continue.

Now you understand why I use the casting of the type Color by such way?
If used 8 bit Color, we interest only lower byte of Sdl.MapRGB result,
but all other bytes can be ignored. And this already question, are
possible type castings with SYSTEM.VAL as:

   BYTE to BYTE, BYTE to SHORTINT,
     BYTE to INTEGER, BYTE to LONGINT
   SHORTINT to BYTE, SHORTINT to SHORTINT,
     SHORTINT to INTEGER, SHORTINT to LONGINT
   INTEGER to BYTE, INTEGER to SHORTINT,
     INTEGER to INTEGER, INTEGER to LONGINT
   LONGINT to BYTE, LONGINT to SHORTINT,
     LONGINT to INTEGER, LONGINT to LONGINT

As I know, Oberon's SYSTEM.VAL does a type casting of this all methods.
And Component Pascal does a type casting of this all methods. But there
is a problem with trap if cast procedure result, and not simple
variable. And I've reported about it, without having desires to lead
dialogue about get prettier style, habit and comfort of the programming
of the name of the types and type castings ;-) Sorry.


Respectfully yours,
Oleg N. Cher, Vedanta software


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-337536635_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIERlYXIgQ2hyaXMsXHBhcg0KXHBhcg0KQ2hyaXMg
QnVycm93cyB3cm90ZTpccGFyDQpccGFyDQo+PiBQUk9DRURVUkUgW2NjYWxsXSBNYXBSR0IqIFsi
U0RMX01hcFJHQiJdIChmb3JtYXQ6IFBQaXhlbEZvcm1hdDsgcjogXHBhcg0KPj4gVUludDg7IGc6
IFVJbnQ4OyBiOiBVSW50OCk6IFVJbnQzMjtccGFyDQo+PlxwYXINCj4gT0suIEknbSBub3QgMTAw
JSBzdXJlIGJ1dCBJIHRoaW5rIHlvdSBjYW4gZXF1aXZhbGVudGx5IG1hcCB0aGlzIGRlZmluaXRp
b25ccGFyDQo+IGFzOlxwYXINCj4gXHBhcg0KPiBQUk9DRURVUkUgW2NjYWxsXSBNYXBSR0IqIFsi
U0RMX01hcFJHQiJdIChmb3JtYXQ6IFBQaXhlbEZvcm1hdDsgciwgZywgYjpccGFyDQo+IFNIT1JU
Q0hBUik6IElOVEVHRVI7XHBhcg0KXHBhcg0KT0ssIGFudCB3aGF0IGRvIHlvdSB0aGluayBhYm91
dCBjb21wYXRpYmxpdHkgd2l0aCBvdGhlciB2ZXJzaW9ucyBvZiBccGFyDQpPYmVyb24/IEluIFhE
UyBhbmQgQU9TIHNpemUgb2YgSU5URUdFUiB0eXBlIGlzIDIgYnl0ZXMuIFdlbGwgT0ssIHdlIGNh
biBccGFyDQpkbyBhdXRvcmVwbGFjZSAnSU5URUdFUicgdG8gJ0xPTkdJTlQnLCBidXQgZG8geW91
IHNhdyBwb3J0ZWQgY29kZSBvZiBccGFyDQpaTGliPyBfTm90IGV2ZXJ5IExPTkdJTlQgd2FzIGNo
YW5nZWQgdG8gSU5URUdFUi5ccGFyDQpccGFyDQpJIHZlcnkgZ29vZCB1bmRlcnN0YW5kIHdoYXQg
SU5URUdFUiBpcyBiYXNlIHR5cGUgZm9yIGRpZmZlcmVudCB1c2luZywgXHBhcg0KYnV0IHdoaWxl
IHlvdSBwb3J0aW5nIHN5c3RlbSBsb3ctbGV2ZWwgY29kZSBmcm9tIEMgb3IgRGVscGhpIHRoZXJl
IGlzIGEgXHBhcg0KZ29vZCBtZXRob2QgdG8gc2hvdyBhbmQgbWFyayB3aGF0IHR5cGUgaXMgYmFz
ZSBpbnRlZ2VyLCB3aGF0IG11c3QgYmUgXHBhcg0KT05MWSAzMiBvciA2NCBiaXRzLCBhbmQgd2hh
dCBpcyB1bnNpZ25lZC4gQmVjYXVzZSBhZnRlcndhcmRzIGVhc2llciB0byBccGFyDQp1c2UgdGhl
c2UgdHlwZXMgY29ycmVjdGx5IHdpdGhvdXQgdGhhdCB0byBiZSBtb21lbnRseSBjaGVja2VkIHdp
dGggXHBhcg0KbWFudWFsLiBBbmQsIGFmdGVyIGFsbCwgdGhpcyBVSW50MzIsIFNJbnQzMiBjYW4g
YmUgYXV0b2NoYW5nZWQgdG8gXHBhcg0KSU5URUdFUiBpbiBldmVyeSBtb21lbnQsIGJ1dCBpZiB5
b3Ugd2lsbCB3YW50IHRvIHJlc3RvcmUgaW5mb3JtYXRpb24sIFxwYXINCndoaWNoIGNhcnJ5IHRo
ZXNlIHR5cGVzLCBhbGwgdGhlIGluZm9ybWF0aW9uIHdpbGwgYmUgbG9zdCwgYmVjYXVzZSBpdCBc
cGFyDQp3YXMgaGlkZGVuIHVuZGVyIHR5cGUgSU5URUdFUi5ccGFyDQpccGFyDQpXZWxsLCBJIHBs
YW5uZWQgdG8gYWRhcHQgU0RMIHRvIG90aGVyIE9iZXJvbiBjb21waWxlcnMsIGFuZCBhbGwgd2hh
dCBJIFxwYXINCndpbGwgZG8gd2l0aCB0eXBlcyB3aWxsIGJlIG1vZGlmeSBhdCBzdGFydCBhbGwg
dHlwZSBzaXplcyB0byBhIG5ldywgYWxsIFxwYXINCndlbGwtdW5kZXJzdGFuZCBzaWduZWQgYXMg
J1VJbnQ4JyBzdGF5IHRoZSBzYW1lLCBhcyBpbiBCbGFja0JveC4gQnR3LCBccGFyDQpub3cgSSB3
aGlsZSBjb2RpbmcgaW4gT2Jlcm9uLCBJIHVzZSB0eXBlIEludGVnZXIsIHdoYXQgZGVmaW5lZCBp
biBccGFyDQpCbGFja0JveCBhcyBJTlRFR0VSLCBhbmQgaW4gRVRIIE9iZXJvbiBhbmQgQU9TIGlz
IGRlZmluZWQgYXMgTE9OR0lOVCwgXHBhcg0KYmVjYXVzZSBiYXNlIGludGVnZXIgdHlwZSBvZiAz
MiBiaXQgc3lzdGVtcyBhcyBXaW5kb3dzIGlzIDMyIGJpdC4gVGhpcyBccGFyDQppcyBzaW1wbHkg
c3R5bGUsIGhhYml0IGFuZCBjb21mb3J0LCBhbmQgc2luY2UgbGFuZ3VhZ2UgT2Jlcm9uIGdpdmVz
IGEgXHBhcg0KY2hhbmNlIG9idmlvdXNseSBpbmRpY2F0ZSwgZW1waGFzaXplIGFuZCBtYXJrIHRo
ZSBkaWZmZXJlbnQgdHlwZXMgYXMgYSBccGFyDQptYXR0ZXIgb2YgY29udmVuaWVuY2UsIHRoYXQg
d2h5IG5vdCB0byB1c2UgdGhpcyBwb3NzaWJpbGl0eSBmb3IgXHBhcg0KaW1wcm92ZW1lbnQgcmVz
dWx0P1xwYXINClxwYXINCj4gXHBhcg0KPiBhbmQgdGhlbiBhdm9pZCB0aGUgVUludDggdHlwZWNh
c3RzLiBccGFyDQo+IFxwYXINCj4gQXMgbG9uZyBhcyB5b3UgYXJlbid0IHVzaW5nIHRoZSByZXN1
bHQgaW4gYXJpdGhtZXRpYyBleHByZXNzaW9ucyBJIGRvbid0IHNlZVxwYXINCj4gdGhhdCBpdCBy
ZWFsbHkgbWF0dGVycyB3aGV0aGVyIGl0IGlzIGRlZmluZWQgYXMgc2lnbmVkIG9yIHVuc2lnbmVk
IGFzIGxvbmdccGFyDQo+IGFzIGl0IGlzIGEgMzItYml0IHZhbHVlLlxwYXINCj4gXHBhcg0KPiBU
aGF0IGlzIHdoZXJlIFNZU1RFTS5WQUwgaXMgbm90IGdvaW5nIHRvIHdvcmsuIElmIHlvdSBhcmUg
KmNvbnZlcnRpbmcqIHRoZVxwYXINCj4gMzItYml0IHJldHVybiB2YWx1ZSB0byBhIHNtYWxsZXIg
KDE2LSwgb3IgOC1iaXQpIHR5cGUgeW91IGNhbid0IGRvIHRoYXQgd2l0aFxwYXINCj4gdHlwZWNh
c3RpbmcsIHlvdSBzaG91bGQgdXNlIHRoZSBTSE9SVCBmdW5jdGlvbiBpbnN0ZWFkLlxwYXINCj4g
XHBhcg0KPiBIb3dldmVyLCBkb24ndCB0YWtlIG15IHdvcmQgZm9yIGl0IC0gSSBtaWdodCB3ZWxs
IGJlIG1pc3NpbmcgdGhlIHBvaW50XHBhcg0KPiBhbHRvZ2V0aGVyLlxwYXINCj4gXHBhcg0KPj4g
dGhhdCBkZWZpbmVzIHNjcmVlbiBjb2xvciBkZXB0aCBPUFRJT05BTExZIGRlZmluZWQgaW4gb3Ro
ZXIgbW9kdWxlLlxwYXINCj4+IFVJbnQzMiwgU0ludDMyIGFyZSBub3QgbXkgaWRlYSwgaXQgaXMg
YWRhcHRhdGlvbiBvZiBEZWxwaGkncyBKRURJIFNETC5ccGFyDQo+PlxwYXINCj4+IEFuZCB5b3Ug
Y2FuIHVuZGVyc3RhbnQgd2hhdCBpcyBPUFRJT05BTExZIFNFVFRJTkdTIGJlZm9yZSBccGFyDQo+
PiBjcml0aXF1ZSBteSB3YXk/XHBhcg0KPj5ccGFyDQo+IFxwYXINCj4gTm8gc29ycnkgLSBJIGRv
IG5vdCB1bmRlcnN0YW5kIGV4YWN0bHkgaG93IHlvdSBoYXZlIHNldCBpdCB1cCB0byBPUFRJT05B
TExZXHBhcg0KPiB1c2luZyBkaWZmZXJlbnQgcmVzdWx0IHR5cGVzLlxwYXINClxwYXINCk9LLiBJ
IGV4cGxhaW4gc3RlcCBieSBzdGVwLlxwYXINCkV2ZXJ5IHNvZnR3YXJlIGhhcyBzZXQgb2Ygb3B0
aW9ucyAoc2V0dGluZ3MpIGZvciB3b3JrLiBSZW1lbWJlciBccGFyDQpjb25kaXRpb25hbCBkZWZp
bmVzIGluIERlbHBoaT8gSXQgdXNlZCBmb3IgKCRJRkRFRlx9L1x7JEVORElGXH0gYW5kIGhlbHAg
dG8gXHBhcg0KY2hhbmdlIHByb2dyYW0gY29kZSBsb2dpYyBpbiBicm9hZCBzY2FsZSwgbW9yZSBi
cm9hZCB0aGFuIElGL1RIRU4uXHBhcg0KTm93LCBmb3IgZXhhbXBsZSwgSSBwbGFjZSBzZXR0aW5n
cyBvZiBncmFwaGljIHByb2dyYW0gdG8gb3RoZXIgbW9kdWxlIFxwYXINCm5hbWVkIFNldHRpbmdz
LiBUaGVyZSBJIGRlZmluZSBjb2xvciBkZXB0aCBhcyBzaXplIG9mIGNvbG9yIHR5cGU6XHBhcg0K
XHBhcg0KVFlQRVxwYXINCiAgIFNjcmVlbkRlcHRoQml0czggID0gQllURTtccGFyDQogICBTY3Jl
ZW5EZXB0aEJpdHMxNiA9IFNIT1JUSU5UO1xwYXINCiAgIFNjcmVlbkRlcHRoQml0czMyID0gSU5U
RUdFUjtccGFyDQogICBDb2xvciogPSBTY3JlZW5EZXB0aEJpdHMzMjtccGFyDQpccGFyDQpJbiBv
dGhlciBtb2R1bGUgd2UgaW1wb3J0IFNldHRpbmdzIGFuZCB3b3JrIHdpdGggdHlwZSBDb2xvciB3
aXRob3V0IFxwYXINCmtub3dsd2RnZSBpdHMgZXhhY3Qgc2l6ZS4gV2UgY29uc2lkZXIgaXQgaXMg
YW4gYWJzdHJhY3QgdHlwZSwgYW5kIHdlIFxwYXINCm11c3QgdG8gZmluZCB3YXkgdG8gd29yayB3
aXRoIHR5cGUgQ29sb3Igd2l0aG91dCBldmlkZW50IGNhc3RpbmcgXHBhcg0KU0hPUlQoU0hPUlQo
cykpLiBXaHk/IEJlY2F1c2UgaXQgaXMgbm90IGJlIGNvbXBpbGVkLCBiZWNhdXNlIGNvbXBpbGVy
IFxwYXINCmtub3dzIGV4YWN0bHkgc2l6ZSBvZiB0eXBlIENvbG9yIGR1cmluZyBjb21waWxlLCBh
bmQgaXQgaXMgYWJzdHJhY3Qgb25seSBccGFyDQpmb3IgcGVvcGxlIHdobyB3YW50IHRvIHVzZSBp
dCBhcyBvcHRpb25hbCBhYnN0cmFjdCB0eXBlLiBCdXQgaWYgQ29sb3IgaXMgXHBhcg0KSU5URUdF
UiwgYXMgZGVmaW5lZCBpbiBTZXR0aW5ncywgdGhpcyBjb2RlIGNvbXBpbGVzIGFuZCB3b3Jrczpc
cGFyDQpccGFyDQpQUk9DRURVUkUgUkdCKiAociwgZywgYjogU0hPUlRDSEFSICgqK0VUSCBDSEFS
KikgKTogQ29sb3I7XHBhcg0KQkVHSU5ccGFyDQogICBSRVRVUk4gU2RsLk1hcFJHQihzY3JlZW4u
Zm9ybWF0LCBTWVNURU0uVkFMKFVJbnQ4LCByKSxccGFyDQogICAgIFNZU1RFTS5WQUwoVUludDgs
IGcpLCBTWVNURU0uVkFMKFVJbnQ4LCBiKSkpXHBhcg0KRU5EIFJHQjtccGFyDQpccGFyDQpCZWNh
dXNlIHJlc3VsdCBvZiBTZGwuTWFwUkdCIGlzIFVJbnQzMiAoaW4gZmFjdCBJTlRFR0VSKSB0b28u
XHBhcg0KXHBhcg0KTm93LCBhdCBvbmUgb2YgdGhlIG1vbWVudHMgSSBsaWtlIHRvIGxvd2VyIHNj
cmVlbiBjb2xvciBkZXB0aCB0byBlY29ub215IFxwYXINCm9mIFJBTS4gSSBtb2RpZnkgU2V0dGlu
Z3MgKEkgd2FudCBzZXQgdHlwZSBDb2xvciBPTkxZIG9uY2UgaW4gbW9kdWxlIFxwYXINClNldHRp
bmdzLCBidXQgbm90IGV2ZXJ5IG1vZHVsZSB0aGF0IHVzZXMgZ3JhcGhpYyk6XHBhcg0KXHBhcg0K
VFlQRVxwYXINCiAgIFNjcmVlbkRlcHRoQml0czggID0gQllURTtccGFyDQogICBTY3JlZW5EZXB0
aEJpdHMxNiA9IFNIT1JUSU5UO1xwYXINCiAgIFNjcmVlbkRlcHRoQml0czMyID0gSU5URUdFUjtc
cGFyDQogICBDb2xvciogPSBTY3JlZW5EZXB0aEJpdHMxNjtccGFyDQpccGFyDQpXaGF0IGlzIHRo
aXMgc2lnbmlmaWVzPyBUaGUgY29kZTpccGFyDQpccGFyDQpQUk9DRURVUkUgUkdCKiAociwgZywg
YjogU0hPUlRDSEFSICgqK0VUSCBDSEFSKikgKTogQ29sb3I7XHBhcg0KQkVHSU5ccGFyDQogICBS
RVRVUk4gU2RsLk1hcFJHQihzY3JlZW4uZm9ybWF0LCBTWVNURU0uVkFMKFVJbnQ4LCByKSxccGFy
DQogICAgIFNZU1RFTS5WQUwoVUludDgsIGcpLCBTWVNURU0uVkFMKFVJbnQ4LCBiKSkpXHBhcg0K
RU5EIFJHQjtccGFyDQpccGFyDQpub3Qgd29ya3MgYWxyZWFkeSwgYmVjYXVzZSB0eXBlIENvbG9y
IG5vdyBTSE9SVElOVC4gQW5kIGFsbCBjb2RlIGluIGFsbCBccGFyDQptb2R1bGVzIHRoYXQgd29y
a3Mgd2l0aCB0eXBlIENvbG9yIGFzIDMyIGJpdCBJTlRFR0VSIHN0YXkgbm90IHdvcmtzLlxwYXIN
CkVoZWhlLCB3ZSBjaGFuZ2U6XHBhcg0KXHBhcg0KUFJPQ0VEVVJFIFJHQiogKHIsIGcsIGI6IFNI
T1JUQ0hBUiAoKitFVEggQ0hBUiopICk6IENvbG9yO1xwYXINCkJFR0lOXHBhcg0KICAgUkVUVVJO
IFNIT1JUKFNkbC5NYXBSR0Ioc2NyZWVuLmZvcm1hdCwgU1lTVEVNLlZBTChVSW50OCwgciksXHBh
cg0KICAgICBTWVNURU0uVkFMKFVJbnQ4LCBnKSwgU1lTVEVNLlZBTChVSW50OCwgYikpKSlccGFy
DQpFTkQgUkdCO1xwYXINClxwYXINClZlcnkgZ29vZCwgaXQgd29ya3MgZm9yIDE2IGJpdCBDb2xv
ciB0eXBlLiBCdXQgaWYgd2UgY2hhbmdlIHRoZSB0eXBlIHRvIFxwYXINCjMyIG9yIDggYml0LCBp
dCB3aWxsIG5vdCB3b3JrIG9uY2UgYWdhaW4uIEkgZG8gbm90IGNvbnRpbnVlLlxwYXINClxwYXIN
Ck5vdyB5b3UgdW5kZXJzdGFuZCB3aHkgSSB1c2UgdGhlIGNhc3Rpbmcgb2YgdGhlIHR5cGUgQ29s
b3IgYnkgc3VjaCB3YXk/XHBhcg0KSWYgdXNlZCA4IGJpdCBDb2xvciwgd2UgaW50ZXJlc3Qgb25s
eSBsb3dlciBieXRlIG9mIFNkbC5NYXBSR0IgcmVzdWx0LCBccGFyDQpidXQgYWxsIG90aGVyIGJ5
dGVzIGNhbiBiZSBpZ25vcmVkLiBBbmQgdGhpcyBhbHJlYWR5IHF1ZXN0aW9uLCBhcmUgXHBhcg0K
cG9zc2libGUgdHlwZSBjYXN0aW5ncyB3aXRoIFNZU1RFTS5WQUwgYXM6XHBhcg0KXHBhcg0KICAg
QllURSB0byBCWVRFLCBCWVRFIHRvIFNIT1JUSU5ULFxwYXINCiAgICAgQllURSB0byBJTlRFR0VS
LCBCWVRFIHRvIExPTkdJTlRccGFyDQogICBTSE9SVElOVCB0byBCWVRFLCBTSE9SVElOVCB0byBT
SE9SVElOVCxccGFyDQogICAgIFNIT1JUSU5UIHRvIElOVEVHRVIsIFNIT1JUSU5UIHRvIExPTkdJ
TlRccGFyDQogICBJTlRFR0VSIHRvIEJZVEUsIElOVEVHRVIgdG8gU0hPUlRJTlQsXHBhcg0KICAg
ICBJTlRFR0VSIHRvIElOVEVHRVIsIElOVEVHRVIgdG8gTE9OR0lOVFxwYXINCiAgIExPTkdJTlQg
dG8gQllURSwgTE9OR0lOVCB0byBTSE9SVElOVCxccGFyDQogICAgIExPTkdJTlQgdG8gSU5URUdF
UiwgTE9OR0lOVCB0byBMT05HSU5UXHBhcg0KXHBhcg0KQXMgSSBrbm93LCBPYmVyb24ncyBTWVNU
RU0uVkFMIGRvZXMgYSB0eXBlIGNhc3Rpbmcgb2YgdGhpcyBhbGwgbWV0aG9kcy5ccGFyDQpBbmQg
Q29tcG9uZW50IFBhc2NhbCBkb2VzIGEgdHlwZSBjYXN0aW5nIG9mIHRoaXMgYWxsIG1ldGhvZHMu
IEJ1dCB0aGVyZSBccGFyDQppcyBhIHByb2JsZW0gd2l0aCB0cmFwIGlmIGNhc3QgcHJvY2VkdXJl
IHJlc3VsdCwgYW5kIG5vdCBzaW1wbGUgXHBhcg0KdmFyaWFibGUuIEFuZCBJJ3ZlIHJlcG9ydGVk
IGFib3V0IGl0LCB3aXRob3V0IGhhdmluZyBkZXNpcmVzIHRvIGxlYWQgXHBhcg0KZGlhbG9ndWUg
YWJvdXQgZ2V0IHByZXR0aWVyIHN0eWxlLCBoYWJpdCBhbmQgY29tZm9ydCBvZiB0aGUgcHJvZ3Jh
bW1pbmcgXHBhcg0Kb2YgdGhlIG5hbWUgb2YgdGhlIHR5cGVzIGFuZCB0eXBlIGNhc3RpbmdzIDst
KSBTb3JyeS5ccGFyDQpccGFyDQpccGFyDQpSZXNwZWN0ZnVsbHkgeW91cnMsXHBhcg0KT2xlZyBO
LiBDaGVyLCBWZWRhbnRhIHNvZnR3YXJlXHBhcg0KXHBhcg0KXHBhcg0KLS0tLVxwYXINClRvIHVu
c3Vic2NyaWJlLCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJR05PRkYgQkxBQ0tCT1giIHRv
IExJU1RTRVJWQExJU1RTLk9CRVJPTi5DSH19AFxwbGE=
----boundary-LibPST-iamunique-337536635_-_---
Received on Mon Oct 25 2010 - 10:58:37 UTC

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