[BLACKBOX] Sorting Extended Records

From: Stephen R. Troy <"Stephen>
Date: Mon, 28 Mar 2011 09:49:19 -0700
----boundary-LibPST-iamunique-1971002845_-_- Content-type: text/plain OK, I'm back again with the same question I had almost two years ago. In addition to the BlackBox Component Pascal documentation, at the recommendation of this list I have gone away and read "Object-Oriented Programming in Oberon-2" by Hanspeter Mössenböck. I also read "Computing Fundamentals: The Theory and Practice of Software Design with BlackBox Component Pascal" by J. Stanley Warford, which I found especially helpful because it covers operational detail that I could not find in the BlackBox documentation. I have a database which is a single large flat ASCII file, built using a schema which is not under my control. I want to read and parse this file (which is no problem), and from it generate records that I can manipulate to generate reports. I want to store the records in binary trees for efficiency in searching and sorting. There are three types of records, and so three binary trees. The three record types have several fields in common, one of which is a unique alphanumeric label, and then each type has several unique fields. When I wrote an earlier version of this program in Modula-2, I was able to use variant records. This let me write single routines to build the binary trees, level them, and sort them, which would work for all three types of records. But variant records are not allowed in Component Pascal. In Component Pascal I wrote the common part of the records as an Extensible (base) record type, and then each of the three record types as extensions of that base type. I refer to each of the three binary trees by a root variable which is a pointer to the corresponding extended record type. I can write a single routine using pointers to the base Type to sort each tree, and to balance each tree, because Component Pascal allows assigning the value of a pointer to an extended record, to the pointer to a base record. HOWEVER, in general sorting and balancing a binary tree causes the root to change, and Component Pascal will not allow assigning the value of a pointer to a base record, back to a pointer to an extended record. Apparently this means I have to include three separate but nearly-identical versions of the sorting routine, one for each extended record type, which seems incredibly ugly, inefficient, and error-prone. I am having trouble seeing how this "feature" of BlackBox Component Pascal is an improvement. Has anybody found a way to handle this issue? Any suggestions would be much appreciated. Steve Troy ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ----boundary-LibPST-iamunique-1971002845_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1 O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzE5IDxo dG1sPn0NCntcKlxodG1sdGFnNTAgPGJvZHk+fXtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1s cnRmMCANCntcKlxodG1sdGFnODQgPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OlZlcmRhbmE7IGNv bG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxMHB0OyI+fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGh0bWxy dGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmfVxodG1scnRmMA0KDQp7XCpcaHRt bHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7 XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCBc dGFiIH0NCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwIFx0YWIgfQ0Ke1wqXGh0 bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgXHRhYiB9DQp7XCpcaHRtbHRhZzAgXHBhciB9 DQp7XCpcaHRtbHRhZzI0MCBcdGFiIH0NCntcKlxodG1sdGFnMjQwIDxzdHlsZSB0eXBlPSJ0ZXh0 L2NzcyI+fQ0Ke1wqXGh0bWx0YWcyNDAgXHBhciBcdGFiIDwhLS1ccGFyIFx0YWIgXHRhYiBAcGFn ZSBceyBtYXJnaW46IDAuNzlpbiBcfVxwYXIgXHRhYiBcdGFiIFAgXHsgbWFyZ2luLWJvdHRvbTog MC4wOGluIFx9XHBhciBcdGFiIC0tPn0NCntcKlxodG1sdGFnMjQ4IDwvc3R5bGU+fXtcKlxodG1s dGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIE9LLCBJJ20gYmFj ayBhZ2FpbiB3aXRoIHRoZSBzYW1lDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1s cnRmMCBxdWVzdGlvbiBJIGhhZCBhbG1vc3QgdHdvIHllYXJzIGFnby4NCntcKlxodG1sdGFnODQg ICB9XGh0bWxydGYgIFxodG1scnRmMCBJbiBhZGRpdGlvbiB0byB0aGUgQmxhY2tCb3gNCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIENvbXBvbmVudCBQYXNjYWwgZG9jdW1l bnRhdGlvbiwgYXQgdGhlIHJlY29tbWVuZGF0aW9uIG9mIHRoaXMgbGlzdCBJDQp7XCpcaHRtbHRh ZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBoYXZlIGdvbmUgYXdheSBhbmQgcmVhZCAiT2Jq ZWN0LU9yaWVudGVkIFByb2dyYW1taW5nIGluDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg IFxodG1scnRmMCBPYmVyb24tMiIgYnkgSGFuc3BldGVyIE1cJ2Y2c3NlbmJcJ2Y2Y2suDQp7XCpc aHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgSSBhbHNvIHJlYWQgIkNvbXB1dGluZw0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgRnVuZGFtZW50YWxzOiBUaGUg VGhlb3J5IGFuZCBQcmFjdGljZSBvZiBTb2Z0d2FyZSBEZXNpZ24gd2l0aA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgQmxhY2tCb3ggQ29tcG9uZW50IFBhc2NhbCIgYnkg Si4gU3RhbmxleSBXYXJmb3JkLCB3aGljaCBJIGZvdW5kDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0 bWxydGYgIFxodG1scnRmMCBlc3BlY2lhbGx5IGhlbHBmdWwgYmVjYXVzZSBpdCBjb3ZlcnMgb3Bl cmF0aW9uYWwgZGV0YWlsIHRoYXQgSSBjb3VsZA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRm ICBcaHRtbHJ0ZjAgbm90IGZpbmQgaW4gdGhlIEJsYWNrQm94IGRvY3VtZW50YXRpb24uDQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIHtc KlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzY0IDxwIHN0 eWxlPSJtYXJnaW4tYm90dG9tOiAwaW4iPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgXGh0bWxy dGYge1xodG1scnRmMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmIH1c aHRtbHJ0ZjAgXGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59 XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnOTYg PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMGluIj59XGh0bWxydGYge1xodG1scnRmMCB7XCpc aHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBJIGhhdmUg YSBkYXRhYmFzZSB3aGljaCBpcyBhIHNpbmdsZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRm ICBcaHRtbHJ0ZjAgbGFyZ2UgZmxhdCBBU0NJSSBmaWxlLCBidWlsdCB1c2luZyBhIHNjaGVtYSB3 aGljaCBpcyBub3QgdW5kZXIgbXkNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxy dGYwIGNvbnRyb2wuDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgSSB3YW50 IHRvIHJlYWQgYW5kIHBhcnNlIHRoaXMgZmlsZSAod2hpY2ggaXMgbm8gcHJvYmxlbSksDQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBhbmQgZnJvbSBpdCBnZW5lcmF0ZSBy ZWNvcmRzIHRoYXQgSSBjYW4gbWFuaXB1bGF0ZSB0byBnZW5lcmF0ZQ0Ke1wqXGh0bWx0YWc0IFxw YXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgcmVwb3J0cy4NCntcKlxodG1sdGFnODQgICB9XGh0bWxy dGYgIFxodG1scnRmMCBJIHdhbnQgdG8gc3RvcmUgdGhlIHJlY29yZHMgaW4gYmluYXJ5IHRyZWVz IGZvciBlZmZpY2llbmN5DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBp biBzZWFyY2hpbmcgYW5kIHNvcnRpbmcuDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRt bHJ0ZjAgVGhlcmUgYXJlIHRocmVlIHR5cGVzIG9mIHJlY29yZHMsIGFuZCBzbw0Ke1wqXGh0bWx0 YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhyZWUgYmluYXJ5IHRyZWVzLg0Ke1wqXGh0 bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRoZSB0aHJlZSByZWNvcmQgdHlwZXMgaGF2 ZSBzZXZlcmFsIGZpZWxkcyBpbg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0 ZjAgY29tbW9uLCBvbmUgb2Ygd2hpY2ggaXMgYSB1bmlxdWUgYWxwaGFudW1lcmljIGxhYmVsLCBh bmQgdGhlbiBlYWNoDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0eXBl IGhhcyBzZXZlcmFsIHVuaXF1ZSBmaWVsZHMuDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBc aHRtbHJ0ZjAgV2hlbiBJIHdyb3RlIGFuIGVhcmxpZXIgdmVyc2lvbiBvZg0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhpcyBwcm9ncmFtIGluIE1vZHVsYS0yLCBJIHdh cyBhYmxlIHRvIHVzZSB2YXJpYW50IHJlY29yZHMuDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRm ICBcaHRtbHJ0ZjAgVGhpcw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg bGV0IG1lIHdyaXRlIHNpbmdsZSByb3V0aW5lcyB0byBidWlsZCB0aGUgYmluYXJ5IHRyZWVzLCBs ZXZlbCB0aGVtLA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYW5kIHNv cnQgdGhlbSwgd2hpY2ggd291bGQgd29yayBmb3IgYWxsIHRocmVlIHR5cGVzIG9mIHJlY29yZHMu IEJ1dA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdmFyaWFudCByZWNv cmRzIGFyZSBub3QgYWxsb3dlZCBpbiBDb21wb25lbnQgUGFzY2FsLg0Ke1wqXGh0bWx0YWc4NCAg IH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmIH1caHRt bHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFn MTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wq XGh0bWx0YWc5NiA8ZGl2IHN0eWxlPSJtYXJnaW4tYm90dG9tOiAwaW4iPn1caHRtbHJ0ZiB7XGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1s cnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnOTYgPGRpdiBzdHlsZT0ibWFy Z2luLWJvdHRvbTogMGluOyI+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRt bHJ0ZiB7XGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAgSW4gQ29tcG9uZW50IFBhc2NhbCBJ IHdyb3RlIHRoZSBjb21tb24NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYw IHBhcnQgb2YgdGhlIHJlY29yZHMgYXMgYW4gRXh0ZW5zaWJsZSAoYmFzZSkgcmVjb3JkIHR5cGUs IGFuZCB0aGVuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBlYWNoIG9m IHRoZSB0aHJlZSByZWNvcmQgdHlwZXMgYXMgZXh0ZW5zaW9ucyBvZiB0aGF0IGJhc2UgdHlwZS4N CntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCBJDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCByZWZlciB0byBlYWNoIG9mIHRoZSB0aHJlZSBiaW5hcnkg dHJlZXMgYnkgYSByb290IHZhcmlhYmxlIHdoaWNoIGlzIGENCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIHBvaW50ZXIgdG8gdGhlIGNvcnJlc3BvbmRpbmcgZXh0ZW5kZWQg cmVjb3JkIHR5cGUuDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgSSBjYW4g d3JpdGUgYQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgc2luZ2xlIHJv dXRpbmUgdXNpbmcgcG9pbnRlcnMgdG8gdGhlIGJhc2UgVHlwZSB0byBzb3J0IGVhY2ggdHJlZSwg YW5kDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0byBiYWxhbmNlIGVh Y2ggdHJlZSwgYmVjYXVzZSBDb21wb25lbnQgUGFzY2FsIGFsbG93cyBhc3NpZ25pbmcgdGhlDQp7 XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB2YWx1ZSBvZiBhIHBvaW50ZXIg dG8gYW4gZXh0ZW5kZWQgcmVjb3JkLCB0byB0aGUgcG9pbnRlciB0byBhIGJhc2UNCntcKlxodG1s dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHJlY29yZC4NCntcKlxodG1sdGFnODQgICB9 XGh0bWxydGYgIFxodG1scnRmMCBIT1dFVkVSLCBpbiBnZW5lcmFsIHNvcnRpbmcgYW5kIGJhbGFu Y2luZyBhIGJpbmFyeSB0cmVlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm MCBjYXVzZXMgdGhlIHJvb3QgdG8gY2hhbmdlLCBhbmQgQ29tcG9uZW50IFBhc2NhbCB3aWxsIG5v dCBhbGxvdw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYXNzaWduaW5n IHRoZSB2YWx1ZSBvZiBhIHBvaW50ZXIgdG8gYSBiYXNlIHJlY29yZCwgYmFjayB0byBhIHBvaW50 ZXINCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHRvIGFuIGV4dGVuZGVk IHJlY29yZC4NCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCBBcHBhcmVudGx5 IHRoaXMgbWVhbnMgSSBoYXZlIHRvIGluY2x1ZGUgdGhyZWUNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIHNlcGFyYXRlIGJ1dCBuZWFybHktaWRlbnRpY2FsIHZlcnNpb25z IG9mIHRoZSBzb3J0aW5nIHJvdXRpbmUsIG9uZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRm ICBcaHRtbHJ0ZjAgZm9yIGVhY2ggZXh0ZW5kZWQgcmVjb3JkIHR5cGUsIHdoaWNoIHNlZW1zIGlu Y3JlZGlibHkgdWdseSwNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGlu ZWZmaWNpZW50LCBhbmQgZXJyb3ItcHJvbmUuDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBc aHRtbHJ0ZjAgSSBhbSBoYXZpbmcgdHJvdWJsZSBzZWVpbmcgaG93IHRoaXMNCntcKlxodG1sdGFn NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwICJmZWF0dXJlIiBvZiBCbGFja0JveCBDb21wb25l bnQgUGFzY2FsIGlzIGFuIGltcHJvdmVtZW50LiANCntcKlxodG1sdGFnNCBccGFyIH1IYXMgYW55 Ym9keSBmb3VuZCBhIHdheSB0byBoYW5kbGUgdGhpcyBpc3N1ZT8NCntcKlxodG1sdGFnODQgICB9 XGh0bWxydGYgIFxodG1scnRmMCBBbnkgc3VnZ2VzdGlvbnMgd291bGQNCntcKlxodG1sdGFnNCBc cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGJlIG11Y2ggYXBwcmVjaWF0ZWQuXGh0bWxydGYgfVxo dG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0 YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzk2IDxkaXYgc3R5 bGU9Im1hcmdpbi1ib3R0b206IDBpbjsiPn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFn NjR9XGh0bWxydGYge1xodG1scnRmMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIFN0ZXZlIFRyb3lcaHRt bHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7 XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnOTYg PGRpdiBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMGluOyI+fVxodG1scnRmIHtcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzExMiA8YnI+fVxodG1scnRmIFxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFn MTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfVxodG1s cnRmIFxwYXINClxodG1scnRmMCANCntcKlxodG1sdGFnNzIgPC9wPn0NCntcKlxodG1sdGFnMjQ4 IDwvc3Bhbj59DQp7XCpcaHRtbHRhZzU4IDwvYm9keT59DQp7XCpcaHRtbHRhZzI3IDwvaHRtbD59 DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzY0IDxwPn1caHRtbHJ0ZiB7XGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfS0tLS0NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0 ZiAgXGh0bWxydGYwIFRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJ R05PRkYgQkxBQ0tCT1giIHRvIExJU1RTRVJWQExJU1RTLk9CRVJPTi5DSA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgXGh0bWxydGZ9fQAKY2cwS1hHaDBiV3h5ZA= ----boundary-LibPST-iamunique-1971002845_-_--- Received on Mon Mar 28 2011 - 18:49:19 UTC

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