Re: [BLACKBOX] Variant Records vs. Component Pascal

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

----boundary-LibPST-iamunique-1921769794_-_- Content-type: text/plain Stephen, What I wrote is not quite right since you probably want a list of pointers but the idea is the same TYPE List = POINTER TO RECORD p: Base; next: List END; Sort(list); The list can now contain a mixture of variant pointers. -Doug Danforth Douglas G. Danforth wrote: 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 ---- To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy ----boundary-LibPST-iamunique-1921769794_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1 O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzI0MyA8 IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwv L0VOIj59DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzE5IDxodG1sPn0NCntcKlxo dG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMzQgPGhlYWQ+fQ0Ke1wqXGh0bWx0YWcxIFxwYXIg fQ0Ke1wqXGh0bWx0YWcyNDEgICB9DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzQx IDwvaGVhZD59DQp7XCpcaHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzUwIDxib2R5IGJnY29s b3I9IiNmZmZmZmYiIHRleHQ9IiMwMDAwMDAiPn1caHRtbHJ0ZiBcdmlld2tpbmQ1DQp7XCpcYmFj a2dyb3VuZCB7XHNocHtcKlxzaHBpbnN0e1xzcHtcc24gZmlsbENvbG9yfXtcc3YgMTY3NzcyMTV9 fXtcc3B7XHNuIGZGaWxsZWR9e1xzdiAxfX19fX1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBh ciB9e1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFN0ZXBoZW4sDQp7XCpcaHRtbHRh ZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9 V2hhdCBJIHdyb3RlIGlzIG5vdCBxdWl0ZSByaWdodCBzaW5jZSB5b3UgcHJvYmFibHkgd2FudCBh IGxpc3Qgb2YNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHBvaW50ZXJz DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9YnV0IHRoZSBpZGVhIGlzIHRoZSBzYW1lDQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9XCdhMFRZUEUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwIExpc3QgPSBQT0lOVEVSIFRPIFJFQ09SRCBwOiBC YXNlOyBuZXh0OiBMaXN0IEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwIFNvcnQobGlzdCk7DQp7XCpcaHRt bHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBh ciB9XCdhMCANCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH1UaGUgbGlzdCBjYW4gbm93IGNvbnRhaW4gYSBtaXh0dXJlIG9m IHZhcmlhbnQgcG9pbnRlcnMuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1s cnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LURvdWcgRGFuZm9ydGgN CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s dGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1Eb3VnbGFzIEcuIERhbmZvcnRoIHdy b3RlOg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAge1wqXGh0bWx0YWc3 Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1sdGFnOTYgPGJsb2NrcXVvdGUgY2l0 ZT0ibWlkOjRCM0Q0MTM3LjMwMDA2QGdyZWVud29vZGZhcm0uY29tIiB0eXBlPSJjaXRlIj59XGh0 bWxydGYgXHBhcg0Ke1xodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFn MjQwICAgfQ0Ke1wqXGh0bWx0YWcxNjAgPG1ldGEgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9 VVRGLTgiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0K e1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRhZzE3NiA8dGl0bGU+fQ0Ke1wqXGh0bWx0YWcy NDAgfQ0Ke1wqXGh0bWx0YWcxODQgPC90aXRsZT59DQp7XCpcaHRtbHRhZzAgXHBhciB9e1wqXGh0 bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBTdGVwaGVuLA0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1EaWQgeW91ciBvcmlnaW5hbCBzb3J0IHJvdXRp bmUgb3BlcmF0ZWQgb24gYSBjb21tb24gdmFyaWFibGUgb2YgZWFjaA0Ke1wqXGh0bWx0YWc0IFxw YXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdmFyaWFudD8NCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1JZiBzbyB0aGVuIGJ5 IHVzaW5nIGEgcG9pbnRlciB0byBhbiBFWFRFTlNJQkxFIHJlY29yZCBmb3IgeW91ciBiYXNlIHR5 cGUNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH1hbmQgYnkgZ3JvdXBpbmcgYWxsIHZhcmlhYmxlcyB0aGF0IGFyZSBjb21t b24gaW4gdGhlIHZhcmlhbnRzIGludG8gdGhlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg IFxodG1scnRmMCBiYXNlIHJlY29yZA0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGlu ZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfXRoZW4geW91IGNhbiB3cml0ZSBhIHNp bmdsZSBzb3J0IHJvdXRpbmUgZm9yIHRoZSBiYXNlIHJlY29yZCBwb2ludGVyDQp7XCpcaHRtbHRh ZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB3aGljaCB3aWxsIHNvcnQNCntcKlxodG1sdGFn MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1h bGwgdmFyaWFudHMuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfU1P RFVMRSBQcml2VmFyaWFudDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgVFlQRQ0Ke1wqXGh0bWx0 YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg fVwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAgQmFzZSA9IFBPSU5URVIgVE8gRVhURU5TSUJMRSBS RUNPUkQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCBcJ2EwXCdhMFwnYTAg KCogLi4uIHZhcmlhYmxlcyBjb21tZW50IHRvIGFsbCB2YXJpYW50cyAuLi4gKikNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBcJ2EwIEVORDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAg VmFyaWFudCA9IFBPSU5URVIgVE8gUkVDT1JEKEJhc2UpICgqIC4uLlwnYTAgc3BlY2lmaWMgdmFy aWFibGVzIG9mDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCB2YXJpYW50 IC4uLiAqKSBFTkQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwn YTBcJ2EwXCdhMCBQUk9DRURVUkUgKGJhc2U6IEJhc2UpIFNvcnQsIE5FVzsNCntcKlxodG1sdGFn MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1c J2EwXCdhMFwnYTAgQkVHSU4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBcJ2EwICgq XCdhMCBzb3J0aW5nIHJvdXRpbmUgb24gY29tbW9uIHZhcmlhYmxlcyAqKQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwn YTBcJ2EwXCdhMCBFTkQgU29ydDsNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUN ClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpc aHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQg XHBhciB9XCdhMFwnYTBcJ2EwIFBST0NFRFVSRSAodjogVmFyaWFudCkgSW5pdCwgTkVXOw0Ke1wq XGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVwnYTBcJ2EwXCdhMCBCRUdJTg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBc bGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBcJ2EwXCdh MFwnYTAgKCogaW5pdGlhbGl6YXRpb24gb2YgdmFyaWFudCB2YXJpYWJsZXMgKikNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1cJ2EwXCdhMFwnYTAgRU5EIEluaXQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxs aW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIA0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfVwnYTBcJ2EwXCdhMCBQUk9DRURVUkUgRG8qOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRt bHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVwnYTBcJ2EwXCdhMCBc J2EwXCdhMFwnYTAgVkFSIHY6IFZhcmlhbnQ7DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIEJFR0lO DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzQgXHBhciB9XCdhMFwnYTBcJ2EwIFwnYTBcJ2EwXCdhMCBORVcodik7IHYuSW5pdDsNCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH1cJ2EwXCdhMFwnYTAgXCdhMFwnYTBcJ2EwIHYuU29ydDsNCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH1cJ2Ew XCdhMFwnYTAgRU5EIERvOw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgIH0NCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH1FTkQgUHJpdlZhcmlhbnQuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfVRyeSB0aGF0IGFuZCB0ZWxsIHVzIHdoZXRoZXIgSSBhbSB3YXkgb2ZmIGJhc2Ugb3Igd2hl dGhlciB0aGF0IGlzIHdoYXQNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxo dG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH15b3Ugd2FudCB0byBkby4NCntcKlxodG1sdGFn MTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0N CntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9QmVzdCByZWdhcmRzLA0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfURv dWcgRGFuZm9ydGgNCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRm MCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICB9DQp7XCpcaHRtbHRhZzEx NiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7 XCpcaHRtbHRhZzg0ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVN0ZXBoZW4gUi4gVHJveSB3cm90ZToNCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgIH17XCpc aHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5NiA8YmxvY2tx dW90ZVxwYXIgIGNpdGU9Im1pZDoyMDA5MTIzMTE0MTIwNC41Yjc2MzNhZWFhZDI2OTJlYjEyOTUx Y2I1NTI5NWI1Zi4zZGZhODYyOGZlLndiZUBlbWFpbC5zZWN1cmVzZXJ2ZXIubmV0IlxwYXIgIHR5 cGU9ImNpdGUiPn1caHRtbHJ0ZiBccGFyDQp7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxy dGYge1xodG1scnRmMCBcbGk3MjAgDQp7XCpcaHRtbHRhZzg0IDxzcGFuXHBhciAgc3R5bGU9ImZv bnQtZmFtaWx5OiBWZXJkYW5hOyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LXNpemU6IDEwcHQ7 Ij59XGh0bWxydGYge1xodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFn ODQgICAgIH1caHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxo dG1scnRmMA0KDQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0 bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIEhl bGxvIExpc3QsXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1c aHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWc5NiA8 ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRm MCBcbGk3MjAgXGh0bWxydGYge1xodG1scnRmMCBUaGlzIGlzIG15IGZpcnN0IHBvc3QgdG8gdGhp cyBsaXN0LlwnYTAgVG8gaGVscCB5b3UgcmVwbHksIEkNCntcKlxodG1sdGFnNCBccGFyIH1caHRt bHJ0ZiAgXGh0bWxydGYwIHN0YXJ0ZWQgcHJvZ3JhbW1pbmcgZGlnaXRhbCBjb21wdXRlcnMsIGlu IG1hY2hpbmUgbGFuZ3VhZ2UsIGluIDE5NTcuXCdhMA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s cnRmICBcaHRtbHJ0ZjAgU2luY2UgdGhlbiBJIGhhdmUgZG9uZSBzY2llbnRpZmljIGFuZCBlbmdp bmVlcmluZyBwcm9ncmFtbWluZyBpbg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRt bHJ0ZjAgRk9SVFJBTiwgQkFTSUMsIFBhc2NhbCwgYW5kIHRoZW4gTW9kdWxhLTIgZm9yIG1hbnkg eWVhcnMuIEkgaGF2ZSBvbmx5DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm MCBsaW1pdGVkIGZhbWlsaWFyaXR5IHdpdGggQy5cJ2EwIE5vdyByZXRpcmVkLCByZWNlbnRseSBJ IGhhdmUgbW92ZWQgdG8NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIE9i ZXJvbiBhbmQgbm93IENvbXBvbmVudCBQYXNjYWwsIHdyaXRpbmcgcHJvZ3JhbXMgdG8gc3VwcG9y dCBob2JiaWVzLlwnYTAgXGh0bWxydGYgfVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRm XHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0 YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcxMTIgPGJyPn1caHRt bHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0 MCAgICAgfQ0Ke1wqXGh0bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2 Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBc bGk3MjAgXGh0bWxydGYge1xodG1scnRmMCBJIGhhdmUgYSBwcm9ncmFtIEkgaGF2ZSBiZWVuIGV2 b2x2aW5nIGZvciBzZXZlcmFsIHllYXJzLCB3aGljaA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1s cnRmICBcaHRtbHJ0ZjAgcmVhZHMgaW4gYSBkYXRhYmFzZSB3aGljaCBpcyBpbiBhIHN0cnVjdHVy ZWQgQVNDSUkgdGV4dCBmaWxlIHVzaW5nIGENCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg XGh0bWxydGYwIHRoaXJkLXBhcnR5IGRhdGFiYXNlIHNjaGVtYS5cJ2EwIFRoZSBwcm9ncmFtIGRl dmVsb3BzIHNldmVyYWwgaW5kZXggZmlsZXMsDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg IFxodG1scnRmMCBwZXJmb3JtcyB2YXJpb3VzIHNvcnRpbmcgYW5kIGZpbHRlcmluZyBvcGVyYXRp b25zIG9uIHRoZXNlIGluZGV4ZXMsIGFuZA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBc aHRtbHJ0ZjAgdGhlIHVzZXMgdGhlIG1vZGlmaWVkIGluZGV4ZXMgdG8gd3JpdGUgb3V0IHJlcG9y dHMgdXNpbmcgdGhlIHNhbWUNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYw IGRhdGFiYXNlIHNjaGVtYS5cJ2EwIFRoZXJlIGFyZSB0aHJlZSBtYWluIHR5cGVzIG9mIHJlY29y ZHMsIGFuZCBJIHdhcyBhYmxlDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm MCB0byB3cml0ZSB2ZXJ5IGVmZmljaWVudCBzb3J0aW5nIGFuZCBmaWx0ZXJpbmcgcHJvY2VkdXJl cyBpbiBNb2R1bGEtMiBieQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg d3JpdGluZyB0aGUgcmVjb3JkcyBhcyB2YXJpYW50IHJlY29yZHMgb2YgYSBiYXNpYyB0eXBlLCB0 aGVuDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBpbnN0YW50aWF0aW5n IHRoZSByZWNvcmRzIGJ5IHBvaW50ZXJzLlwnYTAgTXkgaW5kZXhlcyB3ZXJlIGxpbmtlZCBsaXN0 cyBvZg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhlIHBvaW50ZXJz LCBib3RoIGxpbmVhciBhbmQgYmluYXJ5IHRyZWVzLCBhbmQgc28gSSBjb3VsZCBmaW5kLCBzb3J0 LA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYW5kIGZpbHRlciBlYWNo IG9mIHRoZSB0aHJlZSB0eXBlcyBvZiByZWNvcmRzIHVzaW5nIHRoZSBzYW1lIHZlcnkNCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIGVmZmljaWVudCBjb2RlLCBiZWNhdXNl IEkgbWFuaXB1bGF0ZWQgb25seSB0aGUgcG9pbnRlcnMnICJuZXh0LXJlY29yZCINCntcKlxodG1s dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHBvaW50ZXIgaW4gdGhlIGxpbmtlZCBsaXN0 cywgbm90IG1vdmluZyBhbnkgcmVjb3JkcyBpbiBtZW1vcnkuXCdhMCBcaHRtbHJ0ZiB9XGh0bWxy dGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEw NCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxo dG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzExMiA8YnI+fVxodG1scnRmIFxwYXINClxodG1scnRmMCANCntcKlxodG1s dGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59 XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQw ICAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0 YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIEJ1dCBJ IGFwcGFyZW50bHkgSSBjYW4ndCB1c2UgdGhpcyBtZXRob2QgaW4gQ29tcG9uZW50IFBhc2NhbA0K e1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYmVjYXVzZSB2YXJpYW50IHJl Y29yZHMgYXJlIG5vdCBhbGxvd2VkLlwnYTAgSSB0cmllZCBkZWZpbmluZyBhIGJhc2ljDQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCByZWNvcmQgYXMgYW4gQUJTVFJBQ1Qg dHlwZSwgdGhlbiBkZWZpbmluZyBlYWNoIG9mIG15IHRocmVlIHJlY29yZCB0eXBlcw0Ke1wqXGh0 bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgYXMgZXh0ZW5zaW9ucy5cJ2EwIEhvd2V2 ZXIsIEkgY2FuJ3QgaW5zdGFudGlhdGUgYSByZWNvcmQgYXMgYSBORVcocG9pbnRlcg0Ke1wqXGh0 bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdG8gYmFzaWMgdHlwZSksIGFuZCBJIGNh bid0IHVzZSBhIHNpbmdsZSBzb3J0IHJvdXRpbmUgd2l0aCBlYWNoIG9mIHRoZQ0Ke1wqXGh0bWx0 YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhyZWUgKHBvaW50ZXIgdG8gZXh0ZW5zaW9u IHR5cGUpIC0tIEkgbmVlZCB0aHJlZSBzZXBhcmF0ZSByb3V0aW5lcywNCntcKlxodG1sdGFnNCBc cGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIHdoaWNoIGlzIGNsdW1zeSBhdCBiZXN0LCBhbmQgc2Vl bXMgY29udHJhcnkgdG8gdGhlIGJhc2ljIGludGVudCBvZg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo dG1scnRmICBcaHRtbHJ0ZjAgQ29tcG9uZW50IFBhc2NhbC5cJ2EwIEkgdHJpZWQgZGVmaW5pbmcg dGhlIGJhc2ljIHJlY29yZCB0eXBlIGFzDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxo dG1scnRmMCBFWFRFTlNJQkxFLCBidXQgdGhhdCBtYWRlIG5vIGRpZmZlcmVuY2UuXCdhMCBJIGZv dW5kIGFuIG9ic2N1cmUgc2VjdGlvbiBpbg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBc aHRtbHJ0ZjAgdGhlIENvbXBvbmVudCBQYXNjYWwgZG9jdW1lbnRhdGlvbiB0aGF0IHNhaWQgdGhh dCB1c2luZyBhIFJFQ09SRA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg W3VuaW9uXSBzeXN0ZW0gZmxhZywgd2hpY2ggYWxsb3dlZCBhICJDLXR5cGUiIHVuaW9uIGRhdGEg c3RydWN0dXJlLCBpdA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgd2Fz IHBvc3NpYmxlIHRvIHNpbXVsYXRlIFBhc2NhbC0gYW5kIE1vZHVsYS1zdHlsZSB2YXJpYW50IHJl Y29yZHMsIGJ1dA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgdGhlIGV4 YW1wbGUgaW4gdGhlIGRvY3VtZW50YXRpb24gd2lsbCBub3QgY29tcGlsZSAtLSBpdCBnaXZlcyBh bg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgImludmFsaWQgc3lzdGVt IGZsYWciIGVycm9yIG1lc3NhZ2Ugb24gdGhlIFt1bmlvbl0gZmxhZy5cJ2EwIFxodG1scnRmIH1c aHRtbHJ0ZjAge1wqXGh0bWx0YWc3Mn1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQoNCntcKlxodG1s dGFnMTA0IDwvZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0K e1wqXGh0bWx0YWcyNDAgICAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYge1xodG1s cnRmMCANCntcKlxodG1sdGFnMTEyIDxicj59XGh0bWxydGYgXHBhcg0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgIH0NCntcKlxodG1sdGFnMTA0IDwv ZGl2Pn1caHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0 YWcyNDAgICAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYge1xodG1scnRmMCB7XCpc aHRtbHRhZzY0fVxodG1scnRmIHtcaHRtbHJ0ZjAgXGxpNzIwIFxodG1scnRmIHtcaHRtbHJ0ZjAg QW55IHN1Z2dlc3Rpb25zIHdvdWxkIGJlIHdlbGNvbWUgYXQgdGhpcyBwb2ludC5caHRtbHJ0ZiB9 XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRt bHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N CntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRt bHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7 XGh0bWxydGYwIFRoYW5rcyxcaHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxy dGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1s cnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9DQp7XCpcaHRt bHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2NH1caHRtbHJ0ZiB7 XGh0bWxydGYwIFxsaTcyMCBcaHRtbHJ0ZiB7XGh0bWxydGYwIFN0ZXZlIFRyb3kNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnODQgICAgIH1caHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9 XGh0bWxydGZccGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYg fVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9DQp7 XCpcaHRtbHRhZzI0OCA8L3NwYW4+fQ0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcy NDAgICAgIH0NCntcKlxodG1sdGFnNjQgPHA+fVxodG1scnRmIFxwYXINClxodG1scnRmMCBcaHRt bHJ0ZiB7XGh0bWxydGYwIFxsaTcyMCAtLS0tDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYg IFxodG1scnRmMCBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdO T0ZGIEJMQUNLQk9YIiB0bw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzg0ICAgICB9e30NCntcKlxodG1sdGFnODQgPGEgbW96LWRvLW5vdC1zZW5k PSJ0cnVlIiBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIlxwYXIgIGhyZWY9Im1haWx0 bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7XGZpZWxke1wqXGZsZGluc3R7 SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNIIn19e1xmbGRyc2x0XGNm MVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXGh0bWxydGYgfVxodG1scnRm MCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+fSBcaHRtbHJ0ZlxwYXJ9 XGh0bWxydGYwDQpcaHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzcyIDwvcD59 DQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgIH0NCntcKlxodG1sdGFnMTA0 IDwvYmxvY2txdW90ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N CntcKlxodG1sdGFnMjQwICAgfQ0Ke1wqXGh0bWx0YWc2NCA8cD59XGh0bWxydGYge1xodG1scnRm MCBcbGkzNjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo dG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9k eSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0 bWxydGYwIHt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0 ZWQiIGhyZWY9Im1haWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7XGZp ZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9OLkNI In19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNIXGh0 bWxydGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8L2E+ fQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0 ICAgfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANClxodG1scnRmIFxwYXINClxodG1scnRmMCANCntc KlxodG1sdGFnNzIgPC9wPn0NCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMTA0IDwv YmxvY2txdW90ZT59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0NCntc KlxodG1sdGFnNTggPC9ib2R5Pn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMjcg PC9odG1sPn0NCntcKlxodG1sdGFnMyBccGFyIH0NCntcKlxodG1sdGFnNjQgPHA+fVxodG1scnRm IHtcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9LS0tLQ0Ke1wqXGh0bWx0YWc0IFxwYXIg fVxodG1scnRmICBcaHRtbHJ0ZjAgVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGgg Ym9keSAiU0lHTk9GRiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9OLkNIDQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCBcaHRtbHJ0Zn19AGh0bWx0YWc5MiA8 L3Nw ----boundary-LibPST-iamunique-1921769794_-_--- Received on Fri Jan 01 2010 - 01:40:18 UTC

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