Re: [BLACKBOX] Variant Records vs. Component Pascal

From: Douglas G. Danforth <"Douglas>
Date: Thu, 31 Dec 2009 16:26:31 -0800

----boundary-LibPST-iamunique-1246949549_-_- Content-type: text/plain Stephen, Did your original sort routine operated on a common variable of each variant? If so then by using a pointer to an EXTENSIBLE record for your base type and by grouping all variables that are common in the variants into the base record then you can write a single sort routine for the base record pointer which will sort all variants. MODULE PrivVariant; TYPE Base = POINTER TO EXTENSIBLE RECORD; (* ... variables comment to all variants ... *) END; Variant = POINTER TO RECORD(Base) (* ... specific variables of variant ... *) END; PROCEDURE (base: Base) Sort, NEW; BEGIN (* sorting routine on common variables *) END Sort; PROCEDURE (v: Variant) Init, NEW; BEGIN (* initialization of variant variables *) END Init; PROCEDURE Do*; VAR v: Variant; BEGIN NEW(v); v.Init; v.Sort; END Do; END PrivVariant. Try that and tell us whether I am way off base or whether that is what you want to do. Best regards, Doug Danforth Stephen R. Troy wrote: Hello List, This is my first post to this list. To help you reply, I started programming digital computers, in machine language, in 1957. Since then I have done scientific and engineering programming in FORTRAN, BASIC, Pascal, and then Modula-2 for many years. I have only limited familiarity with C. Now retired, recently I have moved to Oberon and now Component Pascal, writing programs to support hobbies. I have a program I have been evolving for several years, which reads in a database which is in a structured ASCII text file using a third-party database schema. The program develops several index files, performs various sorting and filtering operations on these indexes, and the uses the modified indexes to write out reports using the same database schema. There are three main types of records, and I was able to write very efficient sorting and filtering procedures in Modula-2 by writing the records as variant records of a basic type, then instantiating the records by pointers. My indexes were linked lists of the pointers, both linear and binary trees, and so I could find, sort, and filter each of the three types of records using the same very efficient code, because I manipulated only the pointers' "next-record" pointer in the linked lists, not moving any records in memory. 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. I tried defining the basic record type as EXTENSIBLE, but that made no difference. I found an obscure section in the Component Pascal documentation that said that using a RECORD [union] system flag, which allowed a "C-type" union data structure, it was possible to simulate Pascal- and Modula-style variant records, but the example in the documentation will not compile -- it gives an "invalid system flag" error message on the [union] flag. Any suggestions would be welcome at this point. Thanks, Steve Troy ---- 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-1246949549_-_- 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 XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgU3RlcGhlbiwNCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH1EaWQgeW91ciBvcmlnaW5hbCBzb3J0IHJvdXRpbmUgb3BlcmF0ZWQgb24gYSBjb21t b24gdmFyaWFibGUgb2YgZWFjaA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0 ZjAgdmFyaWFudD8NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH1JZiBzbyB0aGVuIGJ5IHVzaW5nIGEgcG9pbnRlciB0byBh biBFWFRFTlNJQkxFIHJlY29yZCBmb3IgeW91ciBiYXNlIHR5cGUNCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1hbmQgYnkg Z3JvdXBpbmcgYWxsIHZhcmlhYmxlcyB0aGF0IGFyZSBjb21tb24gaW4gdGhlIHZhcmlhbnRzIGlu dG8gdGhlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBiYXNlIHJlY29y ZA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc0IFxwYXIgfXRoZW4geW91IGNhbiB3cml0ZSBhIHNpbmdsZSBzb3J0IHJvdXRpbmUgZm9y IHRoZSBiYXNlIHJlY29yZCBwb2ludGVyDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxo dG1scnRmMCB3aGljaCB3aWxsIHNvcnQNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1hbGwgdmFyaWFudHMuDQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9TU9EVUxFIFByaXZWYXJpYW50Ow0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1c aHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdh MCBUWVBFDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCBCYXNlID0gUE9JTlRF UiBUTyBFWFRFTlNJQkxFIFJFQ09SRDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBc J2EwIFwnYTBcJ2EwXCdhMCAoKiAuLi4gdmFyaWFibGVzIGNvbW1lbnQgdG8gYWxsIHZhcmlhbnRz IC4uLiAqKQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgRU5EOw0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfVwnYTBcJ2EwXCdhMCBWYXJpYW50ID0gUE9JTlRFUiBUTyBSRUNPUkQoQmFzZSkgKCogLi4u XCdhMCBzcGVjaWZpYyB2YXJpYWJsZXMgb2YNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg XGh0bWxydGYwIHZhcmlhbnQgLi4uICopIEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2Ew XCdhMFwnYTAgUFJPQ0VEVVJFIChiYXNlOiBCYXNlKSBTb3J0LCBORVc7DQp7XCpcaHRtbHRhZzEx NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdh MFwnYTBcJ2EwIEJFR0lODQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCAoKlwn YTAgc29ydGluZyByb3V0aW5lIG9uIGNvbW1vbiB2YXJpYWJsZXMgKikNCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2Ew XCdhMFwnYTAgRU5EIFNvcnQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFBS T0NFRFVSRSAodjogVmFyaWFudCkgSW5pdCwgTkVXOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBC RUdJTg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgKCogaW5pdGlhbGl6YXRp b24gb2YgdmFyaWFudCB2YXJpYWJsZXMgKikNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYg XGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgRU5EIElu aXQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBQUk9D RURVUkUgRG8qOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgVkFSIHY6IFZh cmlhbnQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIEJFR0lODQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBc J2EwIFwnYTBcJ2EwXCdhMCBORVcodik7IHYuSW5pdDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAg XCdhMFwnYTBcJ2EwIHYuU29ydDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgRU5EIERvOw0Ke1wq XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc0IFxwYXIgfUVORCBQcml2VmFyaWFudC4NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1UcnkgdGhhdCBhbmQgdGVsbCB1cyB3aGV0aGVyIEkgYW0gd2F5IG9mZiBiYXNlIG9yIHdoZXRo ZXIgdGhhdCBpcyB3aGF0DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9eW91IHdhbnQgdG8gZG8uDQp7XCpcaHRtbHRhZzEx NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9QmVzdCByZWdhcmRzLA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfURvdWcgRGFuZm9ydGgNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1TdGVwaGVuIFIuIFRyb3kgd3JvdGU6DQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBh cn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5NiA8YmxvY2txdW90ZVxwYXIgIGNpdGU9Im1pZDoy MDA5MTIzMTE0MTIwNC41Yjc2MzNhZWFhZDI2OTJlYjEyOTUxY2I1NTI5NWI1Zi4zZGZhODYyOGZl LndiZUBlbWFpbC5zZWN1cmVzZXJ2ZXIubmV0IlxwYXIgIHR5cGU9ImNpdGUiPn1caHRtbHJ0ZiBc cGFyDQp7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAg DQp7XCpcaHRtbHRhZzg0IDxzcGFuXHBhciAgc3R5bGU9ImZvbnQtZmFtaWx5OiBWZXJkYW5hOyBj b2xvcjogcmdiKDAsIDAsIDApOyBmb250LXNpemU6IDEwcHQ7Ij59XGh0bWxydGYge1xodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9XGh0bWxydGYgfVxodG1s cnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5 NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1s cnRmMCBcbGkzNjAgXGh0bWxydGYge1xodG1scnRmMCBIZWxsbyBMaXN0LFxodG1scnRmIH1caHRt bHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFn MTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wq XGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAg e1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBcaHRtbHJ0ZiB7XGh0bWxy dGYwIFRoaXMgaXMgbXkgZmlyc3QgcG9zdCB0byB0aGlzIGxpc3QuXCdhMCBUbyBoZWxwIHlvdSBy ZXBseSwgSQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgc3RhcnRlZCBw cm9ncmFtbWluZyBkaWdpdGFsIGNvbXB1dGVycywgaW4gbWFjaGluZSBsYW5ndWFnZSwgaW4gMTk1 Ny5cJ2EwDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBTaW5jZSB0aGVu IEkgaGF2ZSBkb25lIHNjaWVudGlmaWMgYW5kIGVuZ2luZWVyaW5nIHByb2dyYW1taW5nIGluDQp7 XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBGT1JUUkFOLCBCQVNJQywgUGFz Y2FsLCBhbmQgdGhlbiBNb2R1bGEtMiBmb3IgbWFueSB5ZWFycy4gSSBoYXZlIG9ubHkNCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGxpbWl0ZWQgZmFtaWxpYXJpdHkgd2l0 aCBDLlwnYTAgTm93IHJldGlyZWQsIHJlY2VudGx5IEkgaGF2ZSBtb3ZlZCB0bw0Ke1wqXGh0bWx0 YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgT2Jlcm9uIGFuZCBub3cgQ29tcG9uZW50IFBh c2NhbCwgd3JpdGluZyBwcm9ncmFtcyB0byBzdXBwb3J0IGhvYmJpZXMuXCdhMCBcaHRtbHJ0ZiB9 XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRt bHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N CntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnMTA0IDwvZGl2 Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcy NDAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0 YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBcaHRtbHJ0ZiB7XGh0bWxydGYwIEkgaGF2 ZSBhIHByb2dyYW0gSSBoYXZlIGJlZW4gZXZvbHZpbmcgZm9yIHNldmVyYWwgeWVhcnMsIHdoaWNo DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCByZWFkcyBpbiBhIGRhdGFi YXNlIHdoaWNoIGlzIGluIGEgc3RydWN0dXJlZCBBU0NJSSB0ZXh0IGZpbGUgdXNpbmcgYQ0Ke1wq XGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhpcmQtcGFydHkgZGF0YWJhc2Ug c2NoZW1hLlwnYTAgVGhlIHByb2dyYW0gZGV2ZWxvcHMgc2V2ZXJhbCBpbmRleCBmaWxlcywNCntc KlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHBlcmZvcm1zIHZhcmlvdXMgc29y dGluZyBhbmQgZmlsdGVyaW5nIG9wZXJhdGlvbnMgb24gdGhlc2UgaW5kZXhlcywgYW5kDQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0aGUgdXNlcyB0aGUgbW9kaWZpZWQg aW5kZXhlcyB0byB3cml0ZSBvdXQgcmVwb3J0cyB1c2luZyB0aGUgc2FtZQ0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgZGF0YWJhc2Ugc2NoZW1hLlwnYTAgVGhlcmUgYXJl IHRocmVlIG1haW4gdHlwZXMgb2YgcmVjb3JkcywgYW5kIEkgd2FzIGFibGUNCntcKlxodG1sdGFn NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHRvIHdyaXRlIHZlcnkgZWZmaWNpZW50IHNvcnRp bmcgYW5kIGZpbHRlcmluZyBwcm9jZWR1cmVzIGluIE1vZHVsYS0yIGJ5DQp7XCpcaHRtbHRhZzQg XHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB3cml0aW5nIHRoZSByZWNvcmRzIGFzIHZhcmlhbnQg cmVjb3JkcyBvZiBhIGJhc2ljIHR5cGUsIHRoZW4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0 ZiAgXGh0bWxydGYwIGluc3RhbnRpYXRpbmcgdGhlIHJlY29yZHMgYnkgcG9pbnRlcnMuXCdhMCBN eSBpbmRleGVzIHdlcmUgbGlua2VkIGxpc3RzIG9mDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy dGYgIFxodG1scnRmMCB0aGUgcG9pbnRlcnMsIGJvdGggbGluZWFyIGFuZCBiaW5hcnkgdHJlZXMs IGFuZCBzbyBJIGNvdWxkIGZpbmQsIHNvcnQsDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg IFxodG1scnRmMCBhbmQgZmlsdGVyIGVhY2ggb2YgdGhlIHRocmVlIHR5cGVzIG9mIHJlY29yZHMg dXNpbmcgdGhlIHNhbWUgdmVyeQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0 ZjAgZWZmaWNpZW50IGNvZGUsIGJlY2F1c2UgSSBtYW5pcHVsYXRlZCBvbmx5IHRoZSBwb2ludGVy cycgIm5leHQtcmVjb3JkIg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg cG9pbnRlciBpbiB0aGUgbGlua2VkIGxpc3RzLCBub3QgbW92aW5nIGFueSByZWNvcmRzIGluIG1l bW9yeS5cJ2EwIFxodG1scnRmIH1caHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9 XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0K e1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzk2IDxk aXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzExMiA8YnI+fVxodG1scnRmIFxw YXINClxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgfQ0K e1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAg XHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYg e1xodG1scnRmMCB7XCpcaHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpMzYwIFxodG1s cnRmIHtcaHRtbHJ0ZjAgQnV0IEkgYXBwYXJlbnRseSBJIGNhbid0IHVzZSB0aGlzIG1ldGhvZCBp biBDb21wb25lbnQgUGFzY2FsDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm MCBiZWNhdXNlIHZhcmlhbnQgcmVjb3JkcyBhcmUgbm90IGFsbG93ZWQuXCdhMCBJIHRyaWVkIGRl ZmluaW5nIGEgYmFzaWMNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHJl Y29yZCBhcyBhbiBBQlNUUkFDVCB0eXBlLCB0aGVuIGRlZmluaW5nIGVhY2ggb2YgbXkgdGhyZWUg cmVjb3JkIHR5cGVzDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBhcyBl eHRlbnNpb25zLlwnYTAgSG93ZXZlciwgSSBjYW4ndCBpbnN0YW50aWF0ZSBhIHJlY29yZCBhcyBh IE5FVyhwb2ludGVyDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0byBi YXNpYyB0eXBlKSwgYW5kIEkgY2FuJ3QgdXNlIGEgc2luZ2xlIHNvcnQgcm91dGluZSB3aXRoIGVh Y2ggb2YgdGhlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0aHJlZSAo cG9pbnRlciB0byBleHRlbnNpb24gdHlwZSkgLS0gSSBuZWVkIHRocmVlIHNlcGFyYXRlIHJvdXRp bmVzLA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgd2hpY2ggaXMgY2x1 bXN5IGF0IGJlc3QsIGFuZCBzZWVtcyBjb250cmFyeSB0byB0aGUgYmFzaWMgaW50ZW50IG9mDQp7 XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBDb21wb25lbnQgUGFzY2FsLlwn YTAgSSB0cmllZCBkZWZpbmluZyB0aGUgYmFzaWMgcmVjb3JkIHR5cGUgYXMNCntcKlxodG1sdGFn NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIEVYVEVOU0lCTEUsIGJ1dCB0aGF0IG1hZGUgbm8g ZGlmZmVyZW5jZS5cJ2EwIEkgZm91bmQgYW4gb2JzY3VyZSBzZWN0aW9uIGluDQp7XCpcaHRtbHRh ZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB0aGUgQ29tcG9uZW50IFBhc2NhbCBkb2N1bWVu dGF0aW9uIHRoYXQgc2FpZCB0aGF0IHVzaW5nIGEgUkVDT1JEDQp7XCpcaHRtbHRhZzQgXHBhciB9 XGh0bWxydGYgIFxodG1scnRmMCBbdW5pb25dIHN5c3RlbSBmbGFnLCB3aGljaCBhbGxvd2VkIGEg IkMtdHlwZSIgdW5pb24gZGF0YSBzdHJ1Y3R1cmUsIGl0DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0 bWxydGYgIFxodG1scnRmMCB3YXMgcG9zc2libGUgdG8gc2ltdWxhdGUgUGFzY2FsLSBhbmQgTW9k dWxhLXN0eWxlIHZhcmlhbnQgcmVjb3JkcywgYnV0DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy dGYgIFxodG1scnRmMCB0aGUgZXhhbXBsZSBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3aWxsIG5vdCBj b21waWxlIC0tIGl0IGdpdmVzIGFuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1s cnRmMCAiaW52YWxpZCBzeXN0ZW0gZmxhZyIgZXJyb3IgbWVzc2FnZSBvbiB0aGUgW3VuaW9uXSBm bGFnLlwnYTAgXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1c aHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnOTYgPGRp dj59XGh0bWxydGYge1xodG1scnRmMCANCntcKlxodG1sdGFnMTEyIDxicj59XGh0bWxydGYgXHBh cg0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7 XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBc cGFyIH0NCntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7 XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgXGh0bWxy dGYge1xodG1scnRmMCBBbnkgc3VnZ2VzdGlvbnMgd291bGQgYmUgd2VsY29tZSBhdCB0aGlzIHBv aW50LlxodG1scnRmIH1caHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxy dGYwDQoNCntcKlxodG1sdGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxo dG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2 MCBcaHRtbHJ0ZiB7XGh0bWxydGYwIFRoYW5rcyxcaHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1s dGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0 bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAg fQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9 XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgXGh0bWxydGYge1xodG1scnRmMCBTdGV2ZSBUcm95 DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfVxodG1scnRmIH1caHRtbHJ0ZjAge1wqXGh0 bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnMTA0IDwvZGl2Pn1c aHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAg ICB9DQp7XCpcaHRtbHRhZzI0OCA8L3NwYW4+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0 bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzY0IDxwPn1caHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAg XGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgLS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s cnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9keSAi U0lHTk9GRiBCTEFDS0JPWCIgdG8NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxy dGYwIHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQi IGhyZWY9Im1haWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7XGZpZWxk e1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNIIn19 e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXGh0bWxy dGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+fQ0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAg fVxodG1scnRmXHBhcn1caHRtbHJ0ZjANClxodG1scnRmIFxwYXINClxodG1scnRmMCANCntcKlxo dG1sdGFnNzIgPC9wPn0NCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMTA0IDwvYmxv Y2txdW90ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxo dG1sdGFnNTggPC9ib2R5Pn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMjcgPC9o dG1sPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFnNjQgPHA+fVxodG1scnRmIHtc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo dG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9k eSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9OLkNIDQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBcaHRtbHJ0Zn19AFpSaVhGZmFxbVNydHVH ----boundary-LibPST-iamunique-1246949549_-_--- Received on Fri Jan 01 2010 - 01:26:31 UTC

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