- Hiding abstract methods

From: Douglas G. Danforth <"Douglas>
Date: Thu, 14 Jun 2007 14:24:31 -0700

----boundary-LibPST-iamunique-310155147_-_- Content-type: text/plain Chris, Here is what I would like the interface to module M to appear DEFINITION M; TYPE A = POINTER TO ABSTRACT RECORD END; Bits = POINTER TO RECORD (A) x: POINTER TO ARRAY OF SET END; Ints = POINTER TO RECORD (A) x: POINTER TO ARRAY OF INTEGER END; Reader = PROCEDURE (VAR a: A): BOOLEAN; Writer = PROCEDURE (a: A); PROCEDURE InstallReader (rd: Reader); PROCEDURE InstallWriter (wr: Writer); END M. One just installs a specific reader that generates a Bits or an Ints. Internally to M there are many procedures that take the abstract quantity 'a' when a read operation is done and operate on it with procedures that are methods of type either Bits or Ints whose definitions are given internally and are abstractions of the of type A. But the user of M need not know anything about this and BlackBox should not force the user to see these methods. How can this be accomplished? -Doug Danforth CFB Software wrote: Hi Doug, I don't know if I can help but as nobody else has responded yet I'm willing to give it a try. I'm interested in learning more about the finer details of issues like this. However, I'm not sure from your desription that I understand exactly what you are trying to do. Would it be possible for you to show complete minimal examples of: a) What you would like the code to look like b) How you think it needs to be written to make it acceptable to Blackbox Regards, Chris Burrows CFB Software http://www.cfbsoftware.com/gpcp -----Original Message----- From: blackbox{([at]})nowhere.xy Behalf Of Douglas G. Danforth Sent: Wednesday, 13 June 2007 10:22 AM To: BlackBox Mailing List Subject: [BlackBox] - Hiding abstract methods Folks, I have a conceptual problem on which I would like your advice. I have an ABSTRACT type A and two concrete types C1 and C2 which are extensions of A. TYPE A* = POINTER TO ABSTRACT RECORD END; C1* = POINTER TO RECORD(A) END; C2* = POINTER TO RECORD(A) END; I would like to export A (as shown with the '*'') but within the module M where A is defined I *do not want* to export its methods. I want them to be completely hidden so that the user of M only needs to create the instance Ci (and fill its fields (not shown)) and pass Ci to the module M in which the specific methods appropriate to Ci are specified (but also not exported). Within M, procedures take 'a' (an instance of A which is either C1 or C2) and operates on it without knowledge of its concrete form. The methods of A are simply called and the concrete forms of those methods as C1 or C2 are actually run. Unfortunately, it seems that this scheme of things is not possible in BlackBox. I am forced to export the methods of A and also the methods of C1 and the methods of C2, greatly cluttering the interface to M when none of that information will be used by the person operating with M. Only the existence of A and the extensions C1 and C2 are needed. Is there a clean way to hide all of these methods? -Doug Danforth --- BlackBox --- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy --- BlackBox --- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy ----boundary-LibPST-iamunique-310155147_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1 O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzI0MyA8 IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv L0VOIj59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzE5IDxodG1sPn0NCntcKlxo dG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMzQgPGhlYWQ+fQ0Ke1wqXGh0bWx0YWcxIFxwYXIg fQ0Ke1wqXGh0bWx0YWcyNDEgICB9DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzI0 MSAgIH0NCntcKlxodG1sdGFnMTc3IDx0aXRsZT59DQp7XCpcaHRtbHRhZzI0MSB9DQp7XCpcaHRt bHRhZzE4NSA8L3RpdGxlPn0NCntcKlxodG1sdGFnMSBccGFyIH0NCntcKlxodG1sdGFnNDEgPC9o ZWFkPn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnNTAgPGJvZHkgYmdjb2xvcj0i I2ZmZmZmZiIgdGV4dD0iIzAwMDAwMCI+fVxodG1scnRmIFx2aWV3a2luZDUNCntcKlxiYWNrZ3Jv dW5kIHtcc2hwe1wqXHNocGluc3R7XHNwe1xzbiBmaWxsQ29sb3J9e1xzdiAxNjc3NzIxNX19e1xz cHtcc24gZkZpbGxlZH17XHN2IDF9fX19fVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH17 XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgQ2hyaXMsDQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9SGVyZSBpcyB3aGF0IEkgd291bGQgbGlrZSB0aGUgaW50ZXJmYWNlIHRvIG1vZHVsZSBN IHRvIGFwcGVhcg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfURFRklOSVRJT04gTTsNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgVFlQRQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFn ODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31c aHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwn YTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgQSA9IFBPSU5U RVIgVE8gQUJTVFJBQ1QgUkVDT1JEDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2Ew XGh0bWxydGYwICBFTkQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZu YnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxy dGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRt bHJ0ZjAgIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntc KlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0 ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICBCaXRzID0gUE9JTlRFUiBUTyBSRUNPUkQg KEEpDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxo dG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIA0Ke1wqXGh0bWx0YWc4NCAm bmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1s cnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0 bWxydGYwICANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4 NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgeDogUE9JTlRFUiBUTyBBUlJBWSBPRiBT RVQNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgDQp7XCpcaHRtbHRhZzg0ICZu YnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxy dGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRt bHJ0ZjAgIEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7 fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc J2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5i c3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIEludHMgPSBQT0lOVEVSIFRPIFJFQ09SRCAoQSkN CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s dGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0 YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgDQp7XCpcaHRtbHRhZzg0ICZuYnNw O31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYg XCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0 ZjAgIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxo dG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZu YnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwICB4OiBQT0lOVEVSIFRPIEFSUkFZIE9GIElOVEVH RVINCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgDQp7XCpcaHRtbHRhZzg0ICZu YnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxy dGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRt bHJ0ZjAgIEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7 fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBc J2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRm MCAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5i c3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIFJlYWRlciA9IFBST0NFRFVSRSAoVkFSIGE6IEEp OiBCT09MRUFOOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJzcDt9 XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwn YTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYw ICANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAmbmJz cDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgV3JpdGVyID0gUFJPQ0VEVVJFIChhOiBBKTsNCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRmIFwnYTBc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAmbmJzcDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCAgUFJPQ0VEVVJFIElu c3RhbGxSZWFkZXIgKHJkOiBSZWFkZXIpOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAmbmJz cDt9XGh0bWxydGYgXCdhMFxodG1scnRmMCANCntcKlxodG1sdGFnODQgJm5ic3A7fVxodG1scnRm IFwnYTBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICZuYnNwO31caHRtbHJ0ZiBcJ2EwXGh0bWxy dGYwICBQUk9DRURVUkUgSW5zdGFsbFdyaXRlciAod3I6IFdyaXRlcik7DQp7XCpcaHRtbHRhZzEx NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9RU5EIE0uDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9T25lIGp1c3QgaW5zdGFsbHMg YSBzcGVjaWZpYyByZWFkZXIgdGhhdCBnZW5lcmF0ZXMgYSBCaXRzIG9yIGFuIEludHMuDQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9SW50ZXJuYWxseSB0byBNIHRoZXJlIGFyZSBtYW55IHByb2NlZHVyZXMgdGhhdCB0YWtl IHRoZSBhYnN0cmFjdA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXF1YW50aXR5ICdhJyB3aGVuIGEgcmVhZCBvcGVyYXRp b24gaXMgZG9uZSBhbmQgb3BlcmF0ZSBvbiBpdCB3aXRoDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0 bWxydGYgIFxodG1scnRmMCBwcm9jZWR1cmVzDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9dGhhdCBhcmUgbWV0aG9kcyBv ZiB0eXBlIGVpdGhlciBCaXRzIG9yIEludHMgd2hvc2UgZGVmaW5pdGlvbnMgYXJlDQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBnaXZlbiBpbnRlcm5hbGx5DQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9YW5kIGFyZSBhYnN0cmFjdGlvbnMgb2YgdGhlIG9mIHR5cGUgQS4NCntcKlxodG1sdGFnODQg Jm5ic3A7fVxodG1scnRmIFwnYTBcaHRtbHJ0ZjAgIEJ1dCB0aGUgdXNlciBvZiBNIG5lZWQgbm90 IGtub3cNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGFueXRoaW5nDQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9YWJvdXQgdGhpcyBhbmQgQmxhY2tCb3ggc2hvdWxkIG5vdCBmb3JjZSB0aGUgdXNl ciB0byBzZWUgdGhlc2UgbWV0aG9kcy4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1Ib3cgY2FuIHRo aXMgYmUgYWNjb21wbGlzaGVkPw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0K XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfS1Eb3VnIERhbmZvcnRo DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxs aW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9Q0ZCIFNvZnR3YXJlIHdyb3RlOg0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRt bHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgY2l0ZT0ibWlk OkFNRVRIWVNUMnFmNjlhWmJMQVgwMDAwMDE3YkBhbWV0aHlzdDIub2Jlcm9uLmNoIlxwYXIgIHR5 cGU9ImNpdGUiPn1caHRtbHJ0ZiBccGFyDQp7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIg fQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzEyOCA8cHJlIHdyYXA9IiI+fVxodG1s cnRmIHtccGFyZFxwbGFpblxmMVxmczIwIFxodG1scnRmMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIFxs aTM2MCBIaSBEb3VnLFxsaW5lDQpcbGluZQ0KSSBkb24ndCBrbm93IGlmIEkgY2FuIGhlbHAgYnV0 IGFzIG5vYm9keSBlbHNlIGhhcyByZXNwb25kZWQgeWV0IEknbVxsaW5lDQp3aWxsaW5nIHRvIGdp dmUgaXQgYSB0cnkuIEknbSBpbnRlcmVzdGVkIGluIGxlYXJuaW5nIG1vcmUgYWJvdXQgdGhlXGxp bmUNCmZpbmVyIGRldGFpbHMgb2YgaXNzdWVzIGxpa2UgdGhpcy4gSG93ZXZlciwgSSdtIG5vdCBz dXJlIGZyb20geW91clxsaW5lDQpkZXNyaXB0aW9uIHRoYXQgSSB1bmRlcnN0YW5kIGV4YWN0bHkg d2hhdCB5b3UgYXJlIHRyeWluZyB0byBkby4gV291bGQgaXRcbGluZQ0KYmUgcG9zc2libGUgZm9y IHlvdSB0byBzaG93IGNvbXBsZXRlIG1pbmltYWwgZXhhbXBsZXMgb2Y6IFxsaW5lDQpcbGluZQ0K YSkgV2hhdCB5b3Ugd291bGQgbGlrZSB0aGUgY29kZSB0byBsb29rIGxpa2UgXGxpbmUNClxsaW5l DQpiKSBIb3cgeW91IHRoaW5rIGl0IG5lZWRzIHRvIGJlIHdyaXR0ZW4gdG8gbWFrZSBpdCBhY2Nl cHRhYmxlIHRvXGxpbmUNCkJsYWNrYm94XGxpbmUNClxsaW5lDQpSZWdhcmRzLFxsaW5lDQpDaHJp cyBCdXJyb3dzXGxpbmUNCkNGQiBTb2Z0d2FyZVxsaW5lDQp7fQ0Ke1wqXGh0bWx0YWc4NCA8YSBj bGFzcz0ibW96LXR4dC1saW5rLWZyZWV0ZXh0IiBocmVmPSJodHRwOi8vd3d3LmNmYnNvZnR3YXJl LmNvbS9ncGNwIj59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAiaHR0cDov L3d3dy5jZmJzb2Z0d2FyZS5jb20vZ3BjcCJ9fXtcZmxkcnNsdFxjZjFcdWwgXGh0bWxydGYwIGh0 dHA6Ly93d3cuY2Zic29mdHdhcmUuY29tL2dwY3BcaHRtbHJ0ZiB9XGh0bWxydGYwIFxodG1scnRm IH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59XGxpbmUNClxsaW5lDQogIFxodG1scnRm XHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMzYgPC9wcmU+fVxodG1scnRmIH1caHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFn OTYgPGJsb2NrcXVvdGUgdHlwZT0iY2l0ZSI+fVxodG1scnRmIFxwYXINCntcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWcxMjgg PHByZSB3cmFwPSIiPn1caHRtbHJ0ZiB7XHBhcmRccGxhaW5cZjFcZnMyMCBcaHRtbHJ0ZjAgXGh0 bWxydGYge1xodG1scnRmMCBcbGk3MjAgLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1cbGluZQ0K RnJvbToge30NCntcKlxodG1sdGFnODQgPGEgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRl ZCIgaHJlZj0ibWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaCI+fVxodG1scnRmIHtcZmllbGR7XCpc ZmxkaW5zdHtIWVBFUkxJTksgIm1haWx0bzpibGFja2JveEBvYmVyb24uY2gifX17XGZsZHJzbHRc Y2YxXHVsIFxodG1scnRmMCBibGFja2JveEBvYmVyb24uY2hcaHRtbHJ0ZiB9XGh0bWxydGYwIFxo dG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59IFt7fQ0Ke1wqXGh0bWx0YWc4 NCA8YSBjbGFzcz0ibW96LXR4dC1saW5rLWZyZWV0ZXh0IiBocmVmPSJtYWlsdG86YmxhY2tib3hA b2Jlcm9uLmNoIj59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElOSyAibWFpbHRv OmJsYWNrYm94QG9iZXJvbi5jaCJ9fXtcZmxkcnNsdFxjZjFcdWwgXGh0bWxydGYwIG1haWx0bzpi bGFja2JveEBvYmVyb24uY2hcaHRtbHJ0ZiB9XGh0bWxydGYwIFxodG1scnRmIH1caHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzkyIDwvYT59XSBPbiBcbGluZQ0KQmVoYWxmIE9mIERvdWdsYXMgRy4gRGFu Zm9ydGhcbGluZQ0KU2VudDogV2VkbmVzZGF5LCAxMyBKdW5lIDIwMDcgMTA6MjIgQU1cbGluZQ0K VG86IEJsYWNrQm94IE1haWxpbmcgTGlzdFxsaW5lDQpTdWJqZWN0OiBbQmxhY2tCb3hdIC0gSGlk aW5nIGFic3RyYWN0IG1ldGhvZHNcbGluZQ0KXGxpbmUNClxsaW5lDQpGb2xrcyxcbGluZQ0KXGxp bmUNCkkgaGF2ZSBhIGNvbmNlcHR1YWwgcHJvYmxlbSBvbiB3aGljaCBJIHdvdWxkIGxpa2UgeW91 ciBhZHZpY2UuXGxpbmUNClxsaW5lDQpJIGhhdmUgYW4gQUJTVFJBQ1QgdHlwZSBBIGFuZCB0d28g Y29uY3JldGUgdHlwZXMgQzEgYW5kXGxpbmUNCkMyIHdoaWNoIGFyZSBleHRlbnNpb25zIG9mIEEu XGxpbmUNClxsaW5lDQogICAgVFlQRVxsaW5lDQogICAgICAgQSogPSBQT0lOVEVSIFRPIEFCU1RS QUNUIFJFQ09SRCBFTkQ7XGxpbmUNCiAgICAgICBDMSogPSBQT0lOVEVSIFRPIFJFQ09SRChBKSBF TkQ7XGxpbmUNCiAgICAgICBDMiogPSBQT0lOVEVSIFRPIFJFQ09SRChBKSBFTkQ7XGxpbmUNClxs aW5lDQpJIHdvdWxkIGxpa2UgdG8gZXhwb3J0IEEgKGFzIHNob3duIHdpdGggdGhlICcqJycpIGJ1 dCB3aXRoaW4gdGhlXGxpbmUNCm1vZHVsZSBNIHdoZXJlIEEgaXMgZGVmaW5lZCBJICpkbyBub3Qg d2FudCogdG8gZXhwb3J0IGl0c1xsaW5lDQptZXRob2RzLiAgSSB3YW50IHRoZW0gdG8gYmUgY29t cGxldGVseSBoaWRkZW4gc28gdGhhdCB0aGUgdXNlclxsaW5lDQpvZiBNIG9ubHkgbmVlZHMgdG8g Y3JlYXRlIHRoZSBpbnN0YW5jZSBDaSAoYW5kIGZpbGwgaXRzIFxsaW5lDQpmaWVsZHMgKG5vdCBz aG93bikpXGxpbmUNCmFuZCBwYXNzIENpIHRvIHRoZSBtb2R1bGUgTSBpbiB3aGljaCB0aGUgc3Bl Y2lmaWMgbWV0aG9kcyBcbGluZQ0KYXBwcm9wcmlhdGUgdG8gQ2lcbGluZQ0KYXJlIHNwZWNpZmll ZCAoYnV0IGFsc28gbm90IGV4cG9ydGVkKS4gIFdpdGhpbiBNLCBwcm9jZWR1cmVzIHRha2UgJ2En XGxpbmUNCihhbiBpbnN0YW5jZSBvZiBBIHdoaWNoIGlzIGVpdGhlciBDMSBvciBDMikgYW5kIG9w ZXJhdGVzIG9uIGl0IHdpdGhvdXRcbGluZQ0Ka25vd2xlZGdlIG9mIGl0cyBjb25jcmV0ZSBmb3Jt LiAgVGhlIG1ldGhvZHMgb2YgQSBhcmUgc2ltcGx5IGNhbGxlZFxsaW5lDQphbmQgdGhlIGNvbmNy ZXRlIGZvcm1zIG9mIHRob3NlIG1ldGhvZHMgYXMgQzEgb3IgQzIgYXJlIGFjdHVhbGx5XGxpbmUN CnJ1bi5cbGluZQ0KXGxpbmUNClVuZm9ydHVuYXRlbHksIGl0IHNlZW1zIHRoYXQgdGhpcyBzY2hl bWUgb2YgdGhpbmdzIGlzIG5vdCBwb3NzaWJsZSBpbiBcbGluZQ0KQmxhY2tCb3guXGxpbmUNCkkg YW0gZm9yY2VkIHRvIGV4cG9ydCB0aGUgbWV0aG9kcyBvZiBBIGFuZCBhbHNvIHRoZSBtZXRob2Rz IG9mIEMxIGFuZFxsaW5lDQp0aGUgbWV0aG9kcyBvZiBDMiwgZ3JlYXRseSBjbHV0dGVyaW5nIHRo ZSBpbnRlcmZhY2UgdG8gTSB3aGVuIFxsaW5lDQpub25lIG9mIHRoYXRcbGluZQ0KaW5mb3JtYXRp b24gd2lsbCBiZSB1c2VkIGJ5IHRoZSBwZXJzb24gb3BlcmF0aW5nIHdpdGggTS4gIFxsaW5lDQpP bmx5IHRoZSBleGlzdGVuY2VcbGluZQ0Kb2YgQSBhbmQgdGhlIGV4dGVuc2lvbnMgQzEgYW5kIEMy IGFyZSBuZWVkZWQuXGxpbmUNClxsaW5lDQpJcyB0aGVyZSBhIGNsZWFuIHdheSB0byBoaWRlIGFs bCBvZiB0aGVzZSBtZXRob2RzP1xsaW5lDQpcbGluZQ0KLURvdWcgRGFuZm9ydGhcbGluZQ0KXGxp bmUNCi0tLSBCbGFja0JveFxsaW5lDQotLS0gc2VuZCBzdWJqZWN0IEhFTFAgb3IgVU5TVUJTQ1JJ QkUgdG8ge30NCntcKlxodG1sdGFnODQgPGEgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRl ZCIgaHJlZj0ibWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaCI+fVxodG1scnRmIHtcZmllbGR7XCpc ZmxkaW5zdHtIWVBFUkxJTksgIm1haWx0bzpibGFja2JveEBvYmVyb24uY2gifX17XGZsZHJzbHRc Y2YxXHVsIFxodG1scnRmMCBibGFja2JveEBvYmVyb24uY2hcaHRtbHJ0ZiB9XGh0bWxydGYwIFxo dG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzkyIDwvYT59XGxpbmUNCiAgICBcaHRtbHJ0 ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTM2IDwvcHJlPn1caHRtbHJ0ZiB9XGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRh ZzEwNCA8L2Jsb2NrcXVvdGU+fVxodG1scnRmIH1ccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnMTI4IDxwcmUgd3JhcD0i Ij59XGh0bWxydGYge1xwYXJkXHBsYWluXGYxXGZzMjAgXGh0bWxydGYwIFxodG1scnRmIHtcaHRt bHJ0ZjAgXGxpMzYwIA0Ke1wqXGh0bWx0YWcyNDQgPCEtLS0tPn1cbGluZQ0KLS0tIEJsYWNrQm94 XGxpbmUNCi0tLSBzZW5kIHN1YmplY3QgSEVMUCBvciBVTlNVQlNDUklCRSB0byB7fQ0Ke1wqXGh0 bWx0YWc4NCA8YSBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86 YmxhY2tib3hAb2Jlcm9uLmNoIj59XGh0bWxydGYge1xmaWVsZHtcKlxmbGRpbnN0e0hZUEVSTElO SyAibWFpbHRvOmJsYWNrYm94QG9iZXJvbi5jaCJ9fXtcZmxkcnNsdFxjZjFcdWwgXGh0bWxydGYw IGJsYWNrYm94QG9iZXJvbi5jaFxodG1scnRmIH1caHRtbHJ0ZjAgXGh0bWxydGYgfVxodG1scnRm MCANCntcKlxodG1sdGFnOTIgPC9hPn1cbGluZQ0KXGxpbmUNClxsaW5lDQogIFxodG1scnRmXHBh cn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMzYgPC9wcmU+fVxodG1scnRmIH1caHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzEwNCA8L2Jsb2NrcXVvdGU+fVxodG1s cnRmIH1ccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzU4 IDwvYm9keT59DQp7XCpcaHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzI3IDwvaHRtbD59DQp7 XCpcaHRtbHRhZzMgfX0AMTYgPA== ----boundary-LibPST-iamunique-310155147_-_--- Received on Thu Jun 14 2007 - 23:24:31 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:31:32 UTC