- Making use of (Static) Libraries in BB

From: Treutwein Bernhard <"Treutwein>
Date: Tue, 11 Jul 2006 09:51:46 +0200

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

Sorry, I forgot to include Stewart's quick start for H2O,
which follows below ...
--
	Bernhard Treutwein, IuK, Ref. III A 3
	Bernhard.Treutwein(at)verwaltung uni-muenchen de
------------------------------------------------------- cut here ---
Date: Fri, 05 Aug 2005 10:08:23 +0800
From: Stewart Greenhill <sgreenhill{([at]})nowhere.xyTo: Treutwein Bernhard <Bernhard.Treutwein{([at]})nowhere.xyHi Bernhard,
There are a couple of modes in which it can work.
With arguments "--preprocess" it just preprocesses source, outputting
tokenised symbols (not very useful).
With arguments "--preprocess --text" it preprocesses source, outputting
text.
Without arguments, it translates "C" definitions, producing Oberon-2  output.
For example, if you unpack the first attached archive  "misc.tar.gz", you
should be able to do:
   TestH2O misc/test.c
It should produce something like this:
TestH2O.exe misc/test.c
NEW MODULE test for misc/test.c
AddImports
<Processing misc/test.c>
NEW MODULE mod for misc/mod.h
AddImports
<Processing misc/mod.h>
MODULE test IMPORTS mod
Processing: mod
Processing: test
Processed 51 lines in 2 files
...and will output two files (one for each source file): test.Mod, and
mod.Mod. Check the definitions in these files, and you'll get a feel for  how
the C types are translated.
Also attached are some more complex examples ("interfaces.tar.gz"). For
example, the opengl interface is translated as a set of modules (look  under
"src" directory for the generated files). There is a configuration  file
"opengl.h2o" which contains various directives about how the  translation is
to be done. On the other hand, "opencv.h2o" merges  multiple include files
into compound modules (using the "Merge"  directive). Take a look at the
files, and you should get a feel for how  it works.
There is an outer "H2O" directive. Otherwise, all text is processed as  "C"
source code.
The "OPTIONS" directive is global to the translation, and includes  things
like:
   OutputDirectory - where to put the generated module files
   Include - list of paths to get include files
   Exclude - list of files to not include (#include ignored)
   AutoPrefix - prefix for auto-generated type names (default "Auto")
   TagSuffix - suffix to be added to structure tags (default "_tag")
   RenameProcedures - when set to "1" (the default) renames procedures  using
module "StripPrefix" specification.
   RenameVariables - when set to "1" (default is "0", since this is
unsupported in OOC V2) renames variables using module "StripPrefix"
specification.
   ModuleSuffix - suffix for module file names (default "Mod").
In this section, you can also specify the type mappings for scalar types:
   OPTION symbol          C type                Default output type
   ----------------------------------------------------------------
   MapChar                "char"                "CHAR"
   MapUnsignedChar        "unsigned char"       "CHAR"
   MapShort               "short"               "INTEGER"
   MapUnsignedShort       "unsigned short"      "INTEGER"
   MapLong                "long"                "LONGINT"
   MapUnsignedLong        "unsigned long"       "LONGINT"
   MapLongLong            "long long"           "HUGEINT"
   MapUnsignedLongLong    "unsigned long long"  "HUGEINT"
   MapFloat               "float"               "REAL"
   MapDouble              "double"              "LONGREAL"
   MapLongDouble          "long double"         "LONGDOUBLE"
   MapPointer             "void *"              "SYSTEM.PTR"
   MapEnum                "enum ..."            "LONGINT"
   MapVoid                "void"                "C_VOID"
Each "MODULE" directive controls how to treat the named module. The base
module name comes from the name of the corresponding ".h" file. Options  per
module include:
   OutputName - Output name for this module (defaults to header name)
   StripPrefix - list of prefixes to be removed from symbol names
   LinkLib, LinkFile, LinkFramework - specifies libraries, files and 
frameworks to link to this module (OOC-specific directive)
   Prolog - "C" definitions to be processed at the start of this module
   Epilog - "C" definitions to be processed at the end of this module
   Merge - when set to "1", causes all files included by this module to 
be declared within this module, rather than in separate modules.
Each "VARIANT" directive specifies how to translate particular symbols. 
As you would know, there are many ways of interpreting C declarations, 
and the default rules don't always work. For example:
   f(char * arg);
could be:
   PROCEDURE f (arg : POINTER TO ARRAY OF CHAR);
   PROCEDURE f (arg : ARRAY OF CHAR);
   PROCEDURE f (VAR arg : ARRAY OF CHAR);
   PROCEDURE f (VAR arg : CHAR);
So VARIANT directives allow you to place particular interpretations on  the
"C" declarations. Normally, you can see some specific patterns, but  it
varies from API to API.
The format of variants is a form of designator. The designators are  composed
of:
   strings  - which match the names of globally declared objects
   [n] - which matches item <n> in a compound type or parameter list
   ^ - which matches the item referenced by a pointer type
   .symbol - which matches a named item in a type or paramter list
Strings or symbols use OOC's regexp string format. Basically, ".*"  matches
an string of characters, "$" matches the end of a string, and  "[]" matches
one of a set of characters.
Examples:
   "gl.*v$".params : ARRAY;
This means any symbol (here, procedure) starting with "gl" and ending  with
"v" has its "params" parameter interpreted as an array.
   "gl.*Matrix[fd]$"[0] : ARRAY;
This means any symbol starting with "gl" and ending with "Matrixf" or
"Matrixd" has its first parameter interpreted as an array.
   "String$" : CSTRING POINTER;
This means that the type "String" is to be interpreted as a POINTER to a  C
string (in OOC, it assigns the "CSTRING" attribute to the pointer,  which
means that you can use a string literal or CHAR array for this type).
   "glutInit$".argcp : VAR;
This means that the "argcp" parameter of function "glutInit" is to be
treated as a VAR parameter.
   "cvRelease[^D].*$"[0] : VAR;
This means that symbols starting "cvRelease" followed by any character
EXCEPT "D" has its first parameter interpreted as a VAR parameter.  
Hope this helps you get started. The new H2O is much more flexible, but 
not as well tested as the old version. If you hit a snag, I am happy to 
try to help you out. Error reporting is patchy in some places, so it 
might not be clear exactly what is happening if something goes wrong.
Cheers,
   Stewart
--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy----boundary-LibPST-iamunique-1444887337_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIFNvcnJ5LCBJIGZvcmdvdCB0byBpbmNsdWRlIFN0
ZXdhcnQncyBxdWljayBzdGFydCBmb3IgSDJPLCBccGFyDQp3aGljaCBmb2xsb3dzIGJlbG93IC4u
LlxwYXINCi0tXHBhcg0KXHRhYiBCZXJuaGFyZCBUcmV1dHdlaW4sIEl1SywgUmVmLiBJSUkgQSAz
XHBhcg0KXHRhYiBCZXJuaGFyZC5UcmV1dHdlaW4oYXQpdmVyd2FsdHVuZyB1bmktbXVlbmNoZW4g
ZGVccGFyDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tIGN1dCBoZXJlIC0tLVxwYXINCkRhdGU6IEZyaSwgMDUgQXVnIDIwMDUgMTA6MDg6MjMg
KzA4MDBccGFyDQpGcm9tOiBTdGV3YXJ0IEdyZWVuaGlsbCA8c2dyZWVuaGlsbEBpaW5ldC5uZXQu
YXU+XHBhcg0KVG86IFRyZXV0d2VpbiBCZXJuaGFyZCA8QmVybmhhcmQuVHJldXR3ZWluQFZlcndh
bHR1bmcuVW5pLU11ZW5jaGVuLkRFPlxwYXINClxwYXINCkhpIEJlcm5oYXJkLFxwYXINClxwYXIN
ClRoZXJlIGFyZSBhIGNvdXBsZSBvZiBtb2RlcyBpbiB3aGljaCBpdCBjYW4gd29yay5ccGFyDQpc
cGFyDQpXaXRoIGFyZ3VtZW50cyAiLS1wcmVwcm9jZXNzIiBpdCBqdXN0IHByZXByb2Nlc3NlcyBz
b3VyY2UsIG91dHB1dHRpbmdccGFyDQp0b2tlbmlzZWQgc3ltYm9scyAobm90IHZlcnkgdXNlZnVs
KS5ccGFyDQpccGFyDQpXaXRoIGFyZ3VtZW50cyAiLS1wcmVwcm9jZXNzIC0tdGV4dCIgaXQgcHJl
cHJvY2Vzc2VzIHNvdXJjZSwgb3V0cHV0dGluZ1xwYXINCnRleHQuXHBhcg0KXHBhcg0KV2l0aG91
dCBhcmd1bWVudHMsIGl0IHRyYW5zbGF0ZXMgIkMiIGRlZmluaXRpb25zLCBwcm9kdWNpbmcgT2Jl
cm9uLTIgIG91dHB1dC5ccGFyDQpGb3IgZXhhbXBsZSwgaWYgeW91IHVucGFjayB0aGUgZmlyc3Qg
YXR0YWNoZWQgYXJjaGl2ZSAgIm1pc2MudGFyLmd6IiwgeW91XHBhcg0Kc2hvdWxkIGJlIGFibGUg
dG8gZG86XHBhcg0KICAgVGVzdEgyTyBtaXNjL3Rlc3QuY1xwYXINClxwYXINCkl0IHNob3VsZCBw
cm9kdWNlIHNvbWV0aGluZyBsaWtlIHRoaXM6XHBhcg0KVGVzdEgyTy5leGUgbWlzYy90ZXN0LmNc
cGFyDQpORVcgTU9EVUxFIHRlc3QgZm9yIG1pc2MvdGVzdC5jXHBhcg0KQWRkSW1wb3J0c1xwYXIN
CjxQcm9jZXNzaW5nIG1pc2MvdGVzdC5jPlxwYXINCk5FVyBNT0RVTEUgbW9kIGZvciBtaXNjL21v
ZC5oXHBhcg0KQWRkSW1wb3J0c1xwYXINCjxQcm9jZXNzaW5nIG1pc2MvbW9kLmg+XHBhcg0KTU9E
VUxFIHRlc3QgSU1QT1JUUyBtb2RccGFyDQpQcm9jZXNzaW5nOiBtb2RccGFyDQpQcm9jZXNzaW5n
OiB0ZXN0XHBhcg0KUHJvY2Vzc2VkIDUxIGxpbmVzIGluIDIgZmlsZXNccGFyDQpccGFyDQouLi5h
bmQgd2lsbCBvdXRwdXQgdHdvIGZpbGVzIChvbmUgZm9yIGVhY2ggc291cmNlIGZpbGUpOiB0ZXN0
Lk1vZCwgYW5kXHBhcg0KbW9kLk1vZC4gQ2hlY2sgdGhlIGRlZmluaXRpb25zIGluIHRoZXNlIGZp
bGVzLCBhbmQgeW91J2xsIGdldCBhIGZlZWwgZm9yICBob3dccGFyDQp0aGUgQyB0eXBlcyBhcmUg
dHJhbnNsYXRlZC5ccGFyDQpccGFyDQpBbHNvIGF0dGFjaGVkIGFyZSBzb21lIG1vcmUgY29tcGxl
eCBleGFtcGxlcyAoImludGVyZmFjZXMudGFyLmd6IikuIEZvclxwYXINCmV4YW1wbGUsIHRoZSBv
cGVuZ2wgaW50ZXJmYWNlIGlzIHRyYW5zbGF0ZWQgYXMgYSBzZXQgb2YgbW9kdWxlcyAobG9vayAg
dW5kZXJccGFyDQoic3JjIiBkaXJlY3RvcnkgZm9yIHRoZSBnZW5lcmF0ZWQgZmlsZXMpLiBUaGVy
ZSBpcyBhIGNvbmZpZ3VyYXRpb24gIGZpbGVccGFyDQoib3BlbmdsLmgybyIgd2hpY2ggY29udGFp
bnMgdmFyaW91cyBkaXJlY3RpdmVzIGFib3V0IGhvdyB0aGUgIHRyYW5zbGF0aW9uIGlzXHBhcg0K
dG8gYmUgZG9uZS4gT24gdGhlIG90aGVyIGhhbmQsICJvcGVuY3YuaDJvIiBtZXJnZXMgIG11bHRp
cGxlIGluY2x1ZGUgZmlsZXNccGFyDQppbnRvIGNvbXBvdW5kIG1vZHVsZXMgKHVzaW5nIHRoZSAi
TWVyZ2UiICBkaXJlY3RpdmUpLiBUYWtlIGEgbG9vayBhdCB0aGVccGFyDQpmaWxlcywgYW5kIHlv
dSBzaG91bGQgZ2V0IGEgZmVlbCBmb3IgaG93ICBpdCB3b3Jrcy5ccGFyDQpccGFyDQpUaGVyZSBp
cyBhbiBvdXRlciAiSDJPIiBkaXJlY3RpdmUuIE90aGVyd2lzZSwgYWxsIHRleHQgaXMgcHJvY2Vz
c2VkIGFzICAiQyJccGFyDQpzb3VyY2UgY29kZS5ccGFyDQpccGFyDQpUaGUgIk9QVElPTlMiIGRp
cmVjdGl2ZSBpcyBnbG9iYWwgdG8gdGhlIHRyYW5zbGF0aW9uLCBhbmQgaW5jbHVkZXMgIHRoaW5n
c1xwYXINCmxpa2U6XHBhcg0KICAgT3V0cHV0RGlyZWN0b3J5IC0gd2hlcmUgdG8gcHV0IHRoZSBn
ZW5lcmF0ZWQgbW9kdWxlIGZpbGVzXHBhcg0KICAgSW5jbHVkZSAtIGxpc3Qgb2YgcGF0aHMgdG8g
Z2V0IGluY2x1ZGUgZmlsZXNccGFyDQogICBFeGNsdWRlIC0gbGlzdCBvZiBmaWxlcyB0byBub3Qg
aW5jbHVkZSAoI2luY2x1ZGUgaWdub3JlZClccGFyDQogICBBdXRvUHJlZml4IC0gcHJlZml4IGZv
ciBhdXRvLWdlbmVyYXRlZCB0eXBlIG5hbWVzIChkZWZhdWx0ICJBdXRvIilccGFyDQogICBUYWdT
dWZmaXggLSBzdWZmaXggdG8gYmUgYWRkZWQgdG8gc3RydWN0dXJlIHRhZ3MgKGRlZmF1bHQgIl90
YWciKVxwYXINCiAgIFJlbmFtZVByb2NlZHVyZXMgLSB3aGVuIHNldCB0byAiMSIgKHRoZSBkZWZh
dWx0KSByZW5hbWVzIHByb2NlZHVyZXMgIHVzaW5nXHBhcg0KbW9kdWxlICJTdHJpcFByZWZpeCIg
c3BlY2lmaWNhdGlvbi5ccGFyDQogICBSZW5hbWVWYXJpYWJsZXMgLSB3aGVuIHNldCB0byAiMSIg
KGRlZmF1bHQgaXMgIjAiLCBzaW5jZSB0aGlzIGlzXHBhcg0KdW5zdXBwb3J0ZWQgaW4gT09DIFYy
KSByZW5hbWVzIHZhcmlhYmxlcyB1c2luZyBtb2R1bGUgIlN0cmlwUHJlZml4IlxwYXINCnNwZWNp
ZmljYXRpb24uXHBhcg0KICAgTW9kdWxlU3VmZml4IC0gc3VmZml4IGZvciBtb2R1bGUgZmlsZSBu
YW1lcyAoZGVmYXVsdCAiTW9kIikuXHBhcg0KXHBhcg0KSW4gdGhpcyBzZWN0aW9uLCB5b3UgY2Fu
IGFsc28gc3BlY2lmeSB0aGUgdHlwZSBtYXBwaW5ncyBmb3Igc2NhbGFyIHR5cGVzOlxwYXINClxw
YXINCiAgIE9QVElPTiBzeW1ib2wgICAgICAgICAgQyB0eXBlICAgICAgICAgICAgICAgIERlZmF1
bHQgb3V0cHV0IHR5cGVccGFyDQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KICAgTWFwQ2hhciAgICAgICAgICAg
ICAgICAiY2hhciIgICAgICAgICAgICAgICAgIkNIQVIiXHBhcg0KICAgTWFwVW5zaWduZWRDaGFy
ICAgICAgICAidW5zaWduZWQgY2hhciIgICAgICAgIkNIQVIiXHBhcg0KICAgTWFwU2hvcnQgICAg
ICAgICAgICAgICAic2hvcnQiICAgICAgICAgICAgICAgIklOVEVHRVIiXHBhcg0KICAgTWFwVW5z
aWduZWRTaG9ydCAgICAgICAidW5zaWduZWQgc2hvcnQiICAgICAgIklOVEVHRVIiXHBhcg0KICAg
TWFwTG9uZyAgICAgICAgICAgICAgICAibG9uZyIgICAgICAgICAgICAgICAgIkxPTkdJTlQiXHBh
cg0KICAgTWFwVW5zaWduZWRMb25nICAgICAgICAidW5zaWduZWQgbG9uZyIgICAgICAgIkxPTkdJ
TlQiXHBhcg0KICAgTWFwTG9uZ0xvbmcgICAgICAgICAgICAibG9uZyBsb25nIiAgICAgICAgICAg
IkhVR0VJTlQiXHBhcg0KICAgTWFwVW5zaWduZWRMb25nTG9uZyAgICAidW5zaWduZWQgbG9uZyBs
b25nIiAgIkhVR0VJTlQiXHBhcg0KICAgTWFwRmxvYXQgICAgICAgICAgICAgICAiZmxvYXQiICAg
ICAgICAgICAgICAgIlJFQUwiXHBhcg0KICAgTWFwRG91YmxlICAgICAgICAgICAgICAiZG91Ymxl
IiAgICAgICAgICAgICAgIkxPTkdSRUFMIlxwYXINCiAgIE1hcExvbmdEb3VibGUgICAgICAgICAg
ImxvbmcgZG91YmxlIiAgICAgICAgICJMT05HRE9VQkxFIlxwYXINCiAgIE1hcFBvaW50ZXIgICAg
ICAgICAgICAgInZvaWQgKiIgICAgICAgICAgICAgICJTWVNURU0uUFRSIlxwYXINCiAgIE1hcEVu
dW0gICAgICAgICAgICAgICAgImVudW0gLi4uIiAgICAgICAgICAgICJMT05HSU5UIlxwYXINCiAg
IE1hcFZvaWQgICAgICAgICAgICAgICAgInZvaWQiICAgICAgICAgICAgICAgICJDX1ZPSUQiXHBh
cg0KXHBhcg0KRWFjaCAiTU9EVUxFIiBkaXJlY3RpdmUgY29udHJvbHMgaG93IHRvIHRyZWF0IHRo
ZSBuYW1lZCBtb2R1bGUuIFRoZSBiYXNlXHBhcg0KbW9kdWxlIG5hbWUgY29tZXMgZnJvbSB0aGUg
bmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyAiLmgiIGZpbGUuIE9wdGlvbnMgIHBlclxwYXINCm1v
ZHVsZSBpbmNsdWRlOlxwYXINCiAgIE91dHB1dE5hbWUgLSBPdXRwdXQgbmFtZSBmb3IgdGhpcyBt
b2R1bGUgKGRlZmF1bHRzIHRvIGhlYWRlciBuYW1lKVxwYXINCiAgIFN0cmlwUHJlZml4IC0gbGlz
dCBvZiBwcmVmaXhlcyB0byBiZSByZW1vdmVkIGZyb20gc3ltYm9sIG5hbWVzXHBhcg0KICAgTGlu
a0xpYiwgTGlua0ZpbGUsIExpbmtGcmFtZXdvcmsgLSBzcGVjaWZpZXMgbGlicmFyaWVzLCBmaWxl
cyBhbmQgXHBhcg0KZnJhbWV3b3JrcyB0byBsaW5rIHRvIHRoaXMgbW9kdWxlIChPT0Mtc3BlY2lm
aWMgZGlyZWN0aXZlKVxwYXINCiAgIFByb2xvZyAtICJDIiBkZWZpbml0aW9ucyB0byBiZSBwcm9j
ZXNzZWQgYXQgdGhlIHN0YXJ0IG9mIHRoaXMgbW9kdWxlXHBhcg0KICAgRXBpbG9nIC0gIkMiIGRl
ZmluaXRpb25zIHRvIGJlIHByb2Nlc3NlZCBhdCB0aGUgZW5kIG9mIHRoaXMgbW9kdWxlXHBhcg0K
ICAgTWVyZ2UgLSB3aGVuIHNldCB0byAiMSIsIGNhdXNlcyBhbGwgZmlsZXMgaW5jbHVkZWQgYnkg
dGhpcyBtb2R1bGUgdG8gXHBhcg0KYmUgZGVjbGFyZWQgd2l0aGluIHRoaXMgbW9kdWxlLCByYXRo
ZXIgdGhhbiBpbiBzZXBhcmF0ZSBtb2R1bGVzLlxwYXINClxwYXINCkVhY2ggIlZBUklBTlQiIGRp
cmVjdGl2ZSBzcGVjaWZpZXMgaG93IHRvIHRyYW5zbGF0ZSBwYXJ0aWN1bGFyIHN5bWJvbHMuIFxw
YXINCkFzIHlvdSB3b3VsZCBrbm93LCB0aGVyZSBhcmUgbWFueSB3YXlzIG9mIGludGVycHJldGlu
ZyBDIGRlY2xhcmF0aW9ucywgXHBhcg0KYW5kIHRoZSBkZWZhdWx0IHJ1bGVzIGRvbid0IGFsd2F5
cyB3b3JrLiBGb3IgZXhhbXBsZTpccGFyDQogICBmKGNoYXIgKiBhcmcpO1xwYXINCmNvdWxkIGJl
OlxwYXINCiAgIFBST0NFRFVSRSBmIChhcmcgOiBQT0lOVEVSIFRPIEFSUkFZIE9GIENIQVIpO1xw
YXINCiAgIFBST0NFRFVSRSBmIChhcmcgOiBBUlJBWSBPRiBDSEFSKTtccGFyDQogICBQUk9DRURV
UkUgZiAoVkFSIGFyZyA6IEFSUkFZIE9GIENIQVIpO1xwYXINCiAgIFBST0NFRFVSRSBmIChWQVIg
YXJnIDogQ0hBUik7XHBhcg0KXHBhcg0KU28gVkFSSUFOVCBkaXJlY3RpdmVzIGFsbG93IHlvdSB0
byBwbGFjZSBwYXJ0aWN1bGFyIGludGVycHJldGF0aW9ucyBvbiAgdGhlXHBhcg0KIkMiIGRlY2xh
cmF0aW9ucy4gTm9ybWFsbHksIHlvdSBjYW4gc2VlIHNvbWUgc3BlY2lmaWMgcGF0dGVybnMsIGJ1
dCAgaXRccGFyDQp2YXJpZXMgZnJvbSBBUEkgdG8gQVBJLlxwYXINClxwYXINClRoZSBmb3JtYXQg
b2YgdmFyaWFudHMgaXMgYSBmb3JtIG9mIGRlc2lnbmF0b3IuIFRoZSBkZXNpZ25hdG9ycyBhcmUg
IGNvbXBvc2VkXHBhcg0Kb2Y6XHBhcg0KICAgc3RyaW5ncyAgLSB3aGljaCBtYXRjaCB0aGUgbmFt
ZXMgb2YgZ2xvYmFsbHkgZGVjbGFyZWQgb2JqZWN0c1xwYXINCiAgIFtuXSAtIHdoaWNoIG1hdGNo
ZXMgaXRlbSA8bj4gaW4gYSBjb21wb3VuZCB0eXBlIG9yIHBhcmFtZXRlciBsaXN0XHBhcg0KICAg
XiAtIHdoaWNoIG1hdGNoZXMgdGhlIGl0ZW0gcmVmZXJlbmNlZCBieSBhIHBvaW50ZXIgdHlwZVxw
YXINCiAgIC5zeW1ib2wgLSB3aGljaCBtYXRjaGVzIGEgbmFtZWQgaXRlbSBpbiBhIHR5cGUgb3Ig
cGFyYW10ZXIgbGlzdFxwYXINClxwYXINClN0cmluZ3Mgb3Igc3ltYm9scyB1c2UgT09DJ3MgcmVn
ZXhwIHN0cmluZyBmb3JtYXQuIEJhc2ljYWxseSwgIi4qIiAgbWF0Y2hlc1xwYXINCmFuIHN0cmlu
ZyBvZiBjaGFyYWN0ZXJzLCAiJCIgbWF0Y2hlcyB0aGUgZW5kIG9mIGEgc3RyaW5nLCBhbmQgICJb
XSIgbWF0Y2hlc1xwYXINCm9uZSBvZiBhIHNldCBvZiBjaGFyYWN0ZXJzLlxwYXINClxwYXINCkV4
YW1wbGVzOlxwYXINClxwYXINCiAgICJnbC4qdiQiLnBhcmFtcyA6IEFSUkFZO1xwYXINClRoaXMg
bWVhbnMgYW55IHN5bWJvbCAoaGVyZSwgcHJvY2VkdXJlKSBzdGFydGluZyB3aXRoICJnbCIgYW5k
IGVuZGluZyAgd2l0aFxwYXINCiJ2IiBoYXMgaXRzICJwYXJhbXMiIHBhcmFtZXRlciBpbnRlcnBy
ZXRlZCBhcyBhbiBhcnJheS5ccGFyDQpccGFyDQogICAiZ2wuKk1hdHJpeFtmZF0kIlswXSA6IEFS
UkFZO1xwYXINClRoaXMgbWVhbnMgYW55IHN5bWJvbCBzdGFydGluZyB3aXRoICJnbCIgYW5kIGVu
ZGluZyB3aXRoICJNYXRyaXhmIiBvclxwYXINCiJNYXRyaXhkIiBoYXMgaXRzIGZpcnN0IHBhcmFt
ZXRlciBpbnRlcnByZXRlZCBhcyBhbiBhcnJheS5ccGFyDQpccGFyDQogICAiU3RyaW5nJCIgOiBD
U1RSSU5HIFBPSU5URVI7XHBhcg0KVGhpcyBtZWFucyB0aGF0IHRoZSB0eXBlICJTdHJpbmciIGlz
IHRvIGJlIGludGVycHJldGVkIGFzIGEgUE9JTlRFUiB0byBhICBDXHBhcg0Kc3RyaW5nIChpbiBP
T0MsIGl0IGFzc2lnbnMgdGhlICJDU1RSSU5HIiBhdHRyaWJ1dGUgdG8gdGhlIHBvaW50ZXIsICB3
aGljaFxwYXINCm1lYW5zIHRoYXQgeW91IGNhbiB1c2UgYSBzdHJpbmcgbGl0ZXJhbCBvciBDSEFS
IGFycmF5IGZvciB0aGlzIHR5cGUpLlxwYXINClxwYXINCiAgICJnbHV0SW5pdCQiLmFyZ2NwIDog
VkFSO1xwYXINClRoaXMgbWVhbnMgdGhhdCB0aGUgImFyZ2NwIiBwYXJhbWV0ZXIgb2YgZnVuY3Rp
b24gImdsdXRJbml0IiBpcyB0byBiZVxwYXINCnRyZWF0ZWQgYXMgYSBWQVIgcGFyYW1ldGVyLlxw
YXINClxwYXINCiAgICJjdlJlbGVhc2VbXkRdLiokIlswXSA6IFZBUjtccGFyDQpUaGlzIG1lYW5z
IHRoYXQgc3ltYm9scyBzdGFydGluZyAiY3ZSZWxlYXNlIiBmb2xsb3dlZCBieSBhbnkgY2hhcmFj
dGVyXHBhcg0KRVhDRVBUICJEIiBoYXMgaXRzIGZpcnN0IHBhcmFtZXRlciBpbnRlcnByZXRlZCBh
cyBhIFZBUiBwYXJhbWV0ZXIuICBccGFyDQpccGFyDQpIb3BlIHRoaXMgaGVscHMgeW91IGdldCBz
dGFydGVkLiBUaGUgbmV3IEgyTyBpcyBtdWNoIG1vcmUgZmxleGlibGUsIGJ1dCBccGFyDQpub3Qg
YXMgd2VsbCB0ZXN0ZWQgYXMgdGhlIG9sZCB2ZXJzaW9uLiBJZiB5b3UgaGl0IGEgc25hZywgSSBh
bSBoYXBweSB0byBccGFyDQp0cnkgdG8gaGVscCB5b3Ugb3V0LiBFcnJvciByZXBvcnRpbmcgaXMg
cGF0Y2h5IGluIHNvbWUgcGxhY2VzLCBzbyBpdCBccGFyDQptaWdodCBub3QgYmUgY2xlYXIgZXhh
Y3RseSB3aGF0IGlzIGhhcHBlbmluZyBpZiBzb21ldGhpbmcgZ29lcyB3cm9uZy5ccGFyDQpccGFy
DQpDaGVlcnMsXHBhcg0KICAgU3Rld2FydFxwYXINClxwYXINCi0tLSBCbGFja0JveFxwYXINCi0t
LSBzZW5kIHN1YmplY3QgSEVMUCBvciBVTlNVQlNDUklCRSB0byBibGFja2JveEBvYmVyb24uY2hc
cGFyDQpccGFyDQp9
----boundary-LibPST-iamunique-1444887337_-_---
Received on Tue Jul 11 2006 - 09:51:46 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:27:49 UTC