Re: [BLACKBOX] Variant Records vs. Component Pascal

From: Stephen R. Troy <"Stephen>
Date: Sun, 3 Jan 2010 19:59:00 -0700
----boundary-LibPST-iamunique-531067523_-_- Content-type: text/plain Robert, thank you! I have been trying various approaches and coming to this conclusion -- good to have confirmation! Steve Troy -------- Original Message -------- Subject: Re: [BLACKBOX] Variant Records vs. Component Pascal From: Robert > But I apparently I can't use this method in Component Pascal because > variant records are not allowed. I tried defining a basic record as an > ABSTRACT type, then defining each of my three record types as > extensions. However, I can't instantiate a record as a NEW(pointer to > basic type), and I can't use a single sort routine with each of the > three (pointer to extension type) -- I need three separate routines, > which is clumsy at best, and seems contrary to the basic intent of > Component Pascal. The first thing to say is that what you are trying to do will be easy, but only after making the Modula-2 to Oberon changes in thinking and notation. You sound as if you are on the right track, but not quite there yet. I shall image your three "variants" are called A, B, & C; each has a field (of maybe different types) called aVal, bVal, & cVal, and you want to sort using these fields. Some code ... BaseType = POINTER TO ABSTRACT RECORD next, prev : BaseType; END; A = POINTER TO RECORD (BaseType) aVal : Atype END; B = POINTER TO RECORD (BaseType) bVal : Btype END; C = POINTER TO RECORD (BaseType) cVal : Ctype END; Now you can't (and don't want to) do NEW (baseType), but you can do NEW on values of types A, B, & C. First problem solved - I hope? Now for the interesting bit, an extension aware sorting routine. Maybe your sort routine wants to look like: PROCEDURE Sort (base : BaseType) VAR p, q : BaseType BEGIN ... IF p.val < q.val THEN ... END; ... END Sort; But p & q don't have a '.val' field!!! So replace that line by IF p.PriorTo (q) THEN ... END; and write the four routines PROCEDURE (p: BaseType) PriorTo (q: BaseType) : BOOLEAN, NEW, ABSTRACT; PROCEDURE (p: A) PriorTo (q: BaseType) : BOOLEAN; BEGIN RETURN p.aVal < q(A).aVal END PriorTo; PROCEDURE (p: B) PriorTo (q: BaseType) : BOOLEAN; BEGIN RETURN p.bVal < q(B).bVal END PriorTo; PROCEDURE (p: C) PriorTo (q: BaseType) : BOOLEAN; BEGIN RETURN p.cVal < q(C).cVal END PriorTo; You will find a fully worked out library module, with documentation, on the CPC site. Download the 'Lib' subsystem and look at the module Cycles. In summary, you only need 1 Sort routine, but you do need 3 PriorTo routines if they work on different fields that do not belong to the base type. Regards Robert ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ----boundary-LibPST-iamunique-531067523_-_- 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+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7 XGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAgUm9iZXJ0LCB0aGFuayB5b3UhDQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBJIGhhdmUgYmVlbiB0cnlpbmcg dmFyaW91cyBhcHByb2FjaGVzIGFuZCBjb21pbmcgdG8gdGhpcyBjb25jbHVzaW9uIC0tIGdvb2Qg dG8gaGF2ZSBjb25maXJtYXRpb24hXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxo dG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1c aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0 bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxodG1scnRmIHtcaHRtbHJ0ZjAgU3RldmUgVHJv eQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIFxodG1scnRm IH1caHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxo dG1sdGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5NiA8ZGl2 Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFy DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCAN CntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgaWQ9InJlcGx5 QmxvY2txdW90ZSIgd2VibWFpbD0iMSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAycHggc29saWQgYmx1 ZTsgbWFyZ2luLWxlZnQ6IDhweDsgcGFkZGluZy1sZWZ0OiA4cHg7IGZvbnQtc2l6ZTogMTBwdDsg Y29sb3I6IGJsYWNrOyBmb250LWZhbWlseTogdmVyZGFuYTsiPn1caHRtbHJ0ZiBccGFyDQp7XGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2ICAgPn1caHRt bHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfXtcKlxodG1sdGFnNjR9XGh0bWxy dGYge1xodG1scnRmMCBcbGkzNjAgXGh0bWxydGYge1xodG1scnRmMCAtLS0tLS0tLSBPcmlnaW5h bCBNZXNzYWdlIC0tLS0tLS0tDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9U3ViamVjdDogUmU6IFtCTEFDS0JPWF0gVmFy aWFudCBSZWNvcmRzIHZzLiBDb21wb25lbnQgUGFzY2FsDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9RnJvbTogUm9iZXJ0 IA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgcm9iZXJ0LmNhbXBiZWxs X0BUSVNDQUxJLkNPLlVLDQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxodG1scnRmMCAN CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s dGFnNCBccGFyIH1EYXRlOiBTdW4sIEphbnVhcnkgMDMsIDIwMTAgNjoxMSBwbQ0Ke1wqXGh0bWx0 YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg fVRvOiBCTEFDS0JPWEBMSVNUUy5PQkVST04uQ0gNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1PbiAz MS8xMi8yMDA5IDIxOjEyLCBTdGVwaGVuIFIuIFRyb3kgd3JvdGU6DQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9DQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxodG1scnRmMCAgQnV0IEkgYXBw YXJlbnRseSBJIGNhbid0IHVzZSB0aGlzIG1ldGhvZCBpbiBDb21wb25lbnQgUGFzY2FsIGJlY2F1 c2UNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJmd0O31caHRtbHJ0ZiA+XGh0bWxydGYwICB2 YXJpYW50IHJlY29yZHMgYXJlIG5vdCBhbGxvd2VkLiBJIHRyaWVkIGRlZmluaW5nIGEgYmFzaWMg cmVjb3JkIGFzIGFuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZndDt9XGh0bWxydGYgPlxo dG1scnRmMCAgQUJTVFJBQ1QgdHlwZSwgdGhlbiBkZWZpbmluZyBlYWNoIG9mIG15IHRocmVlIHJl Y29yZCB0eXBlcyBhcw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmZ3Q7fVxodG1scnRmID5c aHRtbHJ0ZjAgIGV4dGVuc2lvbnMuIEhvd2V2ZXIsIEkgY2FuJ3QgaW5zdGFudGlhdGUgYSByZWNv cmQgYXMgYSBORVcocG9pbnRlciB0bw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmZ3Q7fVxo dG1scnRmID5caHRtbHJ0ZjAgIGJhc2ljIHR5cGUpLCBhbmQgSSBjYW4ndCB1c2UgYSBzaW5nbGUg c29ydCByb3V0aW5lIHdpdGggZWFjaCBvZiB0aGUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQg Jmd0O31caHRtbHJ0ZiA+XGh0bWxydGYwICB0aHJlZSAocG9pbnRlciB0byBleHRlbnNpb24gdHlw ZSkgLS0gSSBuZWVkIHRocmVlIHNlcGFyYXRlIHJvdXRpbmVzLA0Ke1wqXGh0bWx0YWcxMTYgPGJy Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0 bWx0YWc4NCAmZ3Q7fVxodG1scnRmID5caHRtbHJ0ZjAgIHdoaWNoIGlzIGNsdW1zeSBhdCBiZXN0 LCBhbmQgc2VlbXMgY29udHJhcnkgdG8gdGhlIGJhc2ljIGludGVudCBvZg0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAmZ3Q7fVxodG1scnRmID5caHRtbHJ0ZjAgIENvbXBvbmVudCBQYXNjYWwu DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9VGhlIGZpcnN0IHRoaW5nIHRvIHNheSBpcyB0aGF0IHdo YXQgeW91IGFyZSB0cnlpbmcgdG8gZG8gd2lsbCBiZSBlYXN5LCBidXQNCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1vbmx5 IGFmdGVyIG1ha2luZyB0aGUgTW9kdWxhLTIgdG8gT2Jlcm9uIGNoYW5nZXMgaW4gdGhpbmtpbmcg YW5kIG5vdGF0aW9uLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVlvdSBzb3VuZCBhcyBpZiB5b3Ug YXJlIG9uIHRoZSByaWdodCB0cmFjaywgYnV0IG5vdCBxdWl0ZSB0aGVyZSB5ZXQuDQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9SSBzaGFsbCBpbWFnZSB5b3VyIHRocmVlICJ2YXJpYW50cyIgYXJlIGNh bGxlZCBBLCBCLCANCntcKlxodG1sdGFnODQgJmFtcDt9XGh0bWxydGYgJlxodG1scnRmMCAgQzsg ZWFjaCBoYXMgYSBmaWVsZCAob2YgDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9bWF5YmUgZGlmZmVyZW50IHR5cGVzKSBj YWxsZWQgYVZhbCwgYlZhbCwgDQp7XCpcaHRtbHRhZzg0ICZhbXA7fVxodG1scnRmICZcaHRtbHJ0 ZjAgIGNWYWwsIGFuZCB5b3Ugd2FudCB0byBzb3J0IHVzaW5nIA0Ke1wqXGh0bWx0YWcxMTYgPGJy Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRoZXNlIGZp ZWxkcy4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1Tb21lIGNvZGUgLi4uDQp7XCpcaHRtbHRhZzEx NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9QmFzZVR5cGUNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCA9 DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUE9JTlRFUg0Ke1wqXGh0bWx0 YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRPDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRm ICBcaHRtbHJ0ZjAgQUJTVFJBQ1QNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRm MCBSRUNPUkQNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICAgICAgICAgICAgfW5leHQs IHByZXYgOiBCYXNlVHlwZTsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICAgICAgICAg ICB9RU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUENCntcKlxodG1sdGFnODQgICB9XGh0bWxy dGYgIFxodG1scnRmMCA9DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUE9J TlRFUg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRPDQp7XCpcaHRtbHRh Zzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUkVDT1JEIChCYXNlVHlwZSkgYVZhbCA6IEF0eXBl DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUIN CntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCA9DQp7XCpcaHRtbHRhZzg0ICAg fVxodG1scnRmICBcaHRtbHJ0ZjAgUE9JTlRFUg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAg XGh0bWxydGYwIFRPDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUkVDT1JE IChCYXNlVHlwZSkgYlZhbCA6IEJ0eXBlDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRt bHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfUMNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1s cnRmMCA9DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgUE9JTlRFUg0Ke1wq XGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFRPDQp7XCpcaHRtbHRhZzg0ICAgfVxo dG1scnRmICBcaHRtbHJ0ZjAgUkVDT1JEIChCYXNlVHlwZSkgY1ZhbCA6IEN0eXBlDQp7XCpcaHRt bHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0 YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg fU5vdyB5b3UgY2FuJ3QgKGFuZCBkb24ndCB3YW50IHRvKSBkbyBORVcgKGJhc2VUeXBlKSwgYnV0 IHlvdSBjYW4gZG8gTkVXDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9b24gdmFsdWVzIG9mIHR5cGVzIEEsIEIsIA0Ke1wq XGh0bWx0YWc4NCAmYW1wO31caHRtbHJ0ZiAmXGh0bWxydGYwICBDLg0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfUZpcnN0IHByb2JsZW0gc29sdmVkIC0gSSBob3BlPw0Ke1wqXGh0bWx0YWcxMTYgPGJy Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfU5vdyBmb3IgdGhlIGludGVyZXN0aW5nIGJpdCwgYW4gZXh0ZW5zaW9u IGF3YXJlIHNvcnRpbmcgcm91dGluZS4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1NYXliZSB5b3Vy IHNvcnQgcm91dGluZSB3YW50cyB0byBsb29rIGxpa2U6DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 UFJPQ0VEVVJFDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgU29ydCAoYmFz ZSA6IEJhc2VUeXBlKQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9VkFSDQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9DQp7XCpcaHRtbHRhZzg0ICAgICAgfXAsIHENCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYg IFxodG1scnRmMCA6DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgQmFzZVR5 cGUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgfUJFR0lODQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc aHRtbHRhZzg0ICAgICAgfS4uLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgIH1JRg0K e1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHAudmFsIA0Ke1wqXGh0bWx0YWc4 NCAmbHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgIHEudmFsDQp7XCpcaHRtbHRhZzg0ICAgfVxodG1s cnRmICBcaHRtbHJ0ZjAgVEhFTg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYw IC4uLg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYwIEVORDsNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnODQgICAgICB9Li4uDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAg IH1FTkQNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCBTb3J0Ow0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfUJ1dCBwIA0Ke1wqXGh0bWx0YWc4NCAmYW1wO31caHRtbHJ0ZiAmXGh0 bWxydGYwICBxIGRvbid0IGhhdmUgYSAnLnZhbCcgZmllbGQhISENCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBc cGFyIH1TbyByZXBsYWNlIHRoYXQgbGluZSBieQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wq XGh0bWx0YWc4NCAgICAgIH1JRg0Ke1wqXGh0bWx0YWc4NCAgIH1caHRtbHJ0ZiAgXGh0bWxydGYw IHAuUHJpb3JUbyAocSkNCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgIFxodG1scnRmMCBUSEVO DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgLi4uDQp7XCpcaHRtbHRhZzg0 ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgRU5EOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfWFuZCB3 cml0ZSB0aGUgZm91ciByb3V0aW5lcw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVBST0NFRFVSRSAo cDogQmFzZVR5cGUpIFByaW9yVG8gKHE6IEJhc2VUeXBlKSA6IEJPT0xFQU4sIE5FVywgQUJTVFJB Q1Q7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9UFJPQ0VEVVJFIChwOiBBKSBQcmlvclRvIChxOiBC YXNlVHlwZSkgOiBCT09MRUFOOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9QkVHSU4N CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s dGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICB9UkVUVVJODQp7XCpcaHRtbHRhZzg0ICAg fVxodG1scnRmICBcaHRtbHJ0ZjAgcC5hVmFsIA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxodG1scnRm IDxcaHRtbHJ0ZjAgIHEoQSkuYVZhbA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9RU5E IFByaW9yVG87DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9UFJPQ0VEVVJFIChwOiBCKSBQcmlvclRv IChxOiBCYXNlVHlwZSkgOiBCT09MRUFOOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICB9 QkVHSU4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICB9UkVUVVJODQp7XCpcaHRtbHRh Zzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgcC5iVmFsIA0Ke1wqXGh0bWx0YWc4NCAmbHQ7fVxo dG1scnRmIDxcaHRtbHJ0ZjAgIHEoQikuYlZhbA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAg ICB9RU5EIFByaW9yVG87DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9UFJPQ0VEVVJFIChwOiBDKSBQ cmlvclRvIChxOiBCYXNlVHlwZSkgOiBCT09MRUFOOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4 NCAgICB9QkVHSU4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgICB9UkVUVVJODQp7XCpc aHRtbHRhZzg0ICAgfVxodG1scnRmICBcaHRtbHJ0ZjAgcC5jVmFsIA0Ke1wqXGh0bWx0YWc4NCAm bHQ7fVxodG1scnRmIDxcaHRtbHJ0ZjAgIHEoQykuY1ZhbA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0 YWc4NCAgICB9RU5EIFByaW9yVG87DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxo dG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 WW91IHdpbGwgZmluZCBhIGZ1bGx5IHdvcmtlZCBvdXQgbGlicmFyeSBtb2R1bGUsIHdpdGggZG9j dW1lbnRhdGlvbiwgb24gdGhlIENQQyANCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1zaXRlLg0Ke1wqXGh0bWx0YWcxMTYg PGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfURvd25s b2FkIHRoZSAnTGliJyBzdWJzeXN0ZW0gYW5kIGxvb2sgYXQgdGhlIG1vZHVsZSBDeWNsZXMuDQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9SW4gc3VtbWFyeSwgeW91IG9ubHkgbmVl ZCAxIFNvcnQgcm91dGluZSwgYnV0IHlvdSBkbyBuZWVkIDMgUHJpb3JUbw0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXJv dXRpbmVzIGlmIHRoZXkgd29yayBvbiBkaWZmZXJlbnQgZmllbGRzIHRoYXQgZG8gbm90IGJlbG9u ZyB0byB0aGUgYmFzZSB0eXBlLg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVJl Z2FyZHMNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1Sb2JlcnQNCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0tLS0tDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9VG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNz YWdlIHdpdGggYm9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9O LkNIDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgfVxodG1scnRmMCB7 XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9k aXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRh ZzEwNCA8L2Jsb2NrcXVvdGU+fVxodG1scnRmIH1ccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzI0OCA8L3NwYW4+fQ0Ke1wqXGh0bWx0YWc1OCA8L2JvZHk+fQ0Ke1wqXGh0bWx0YWcyNyA8L2h0 bWw+fQ0Ke1wqXGh0bWx0YWczIFxwYXIgfQ0Ke1wqXGh0bWx0YWc2NCA8cD59XGh0bWxydGYge1xo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0tLS0tDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0 bWxydGYgIFxodG1scnRmMCBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5 ICJTSUdOT0ZGIEJMQUNLQk9YIiB0byBMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0gNCntcKlxodG1s dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIFxodG1scnRmXHBhcn1caHRtbHJ0ZjANCn0 ----boundary-LibPST-iamunique-531067523_-_--- Received on Mon Jan 04 2010 - 03:59:00 UTC

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