Re: [BLACKBOX] Pause or single-step a program

From: Douglas G. Danforth <"Douglas>
Date: Fri, 2 Sep 2011 14:56:15 -0700

----boundary-LibPST-iamunique-871902483_-_- Content-type: text/plain Stephen, I don't have a definitive answer (yet) but here is what the BlackBox documentation says about debugging (From Dev/Docu/User-Man) ASSERT(x, n) --- You can use trap codes 0..19 freely in your programs, typically as temporary breakpoints during debugging. By convention, the other trap codes are generated by various assertions, i.e., statements which check a certain condition, and terminate the command if the condition is violated. Conditions which must be fulfilled upon entry of a procedure are called preconditions, conditions which must be fulfilled upon exit of a procedure are called postconditions, and conditions which must be fulfilled in between are called invariants. Most procedures in the BlackBox Component Framework check some preconditions. Typically, trap numbers are kept unique inside of a procedure. Thus, if a trap occurs, consult the documentation (or source, if available) of the trapped procedure. There you should get more information about the cause of the trap. The developer may even provide a plain-text description of the trap's cause, by providing suitable resources in the subsystem's string resource file: module name without subsystem prefix, followed by ".", followed by the procedure name, followed by ".", followed by the trap number. The following are examples: Math.Power.23 Pre: x # 1.0 OR ABS(y) # INF Views.View.CopyFrom.20 Views.CopyFrom and Views.CopyFromModelView must not both be overwritten If such a resource exists, the corresponding text is shown in the trap display. It should be noted that at no time during debugging the normal BlackBox Component Builder environment is left, there is no special "debugging mode" or "debugging environment"; everything is integrated instead! Example: ObxTrap docu The BlackBox debugger is a cross between a "post-mortem" debugger and a "run-time" debugger. It is invoked after a command has trapped (post-mortem), but it doesn't cause a termination of the BlackBox environment (run-time). Some features, such as the Info->View State command, which makes it possible to follow data structures starting from a selected view, are usually associated with run-time debuggers only. It is typical for object-oriented programs that their control flows can become extremely convoluted and hard to follow. Thus following a program statement for statement (single step), by message sends, or by procedure calls in practice turns out to be unpractical for debugging large systems. Instead, BlackBox uses a more effective debugging strategy: Let errors become manifest as soon as possible. Instead of waiting for some error to occur, and then trying to find one's way backward to the cause of the error, it was attempted to flag errors as closely to their cause as possible. This is the only way to truly save debugging time. The language implementation follows the same strategy, by checking index overflows when accessing arrays, by checking NIL accesses when dereferencing a pointer, etc. In addition to these built-in checks, Component Pascal provides the standard procedure ASSERT, which allows to test for an arbitrary condition. If the condition is violated, a trap window is opened. Procedures of the BlackBox Component Framework consequently use assertions e.g. at the beginning of a procedure to check whether its input is valid. This prevents that a procedure with illegal input may perform any damage to the rest of the system. This defensive programming strategy has proven itself again and again during the development of BlackBox, and is strongly recommended for serious development work. On 9/2/2011 2:19 PM, Stephen R. Troy wrote: Dear List, I need to debug a program. I want to be able to pause normal execution so I can examine the values of certain variables, then resume execution. I can see an obvious way to do it, by calling a procedure that will execute a loop until the value of a global Boolean variable changes. But since this requirement must have come up before, I hoped somebody could suggest a more elegant method. Thanks for any suggestions. 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-871902483_-_- Content-type: application/rtf Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rtf-body.rtf" e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbWh0bWwxIFxkZWZmMHtcZm9udHRibA0Ke1xmMFxm c3dpc3NcZmNoYXJzZXQwIEFyaWFsO30NCntcZjFcZm1vZGVybiBDb3VyaWVyIE5ldzt9DQp7XGYy XGZuaWxcZmNoYXJzZXQyIFN5bWJvbDt9DQp7XGYzXGZtb2Rlcm5cZmNoYXJzZXQwIENvdXJpZXIg TmV3O319DQp7XGNvbG9ydGJsXHJlZDBcZ3JlZW4wXGJsdWUwO1xyZWQwXGdyZWVuMFxibHVlMjU1 O30NClx1YzFccGFyZFxwbGFpblxkZWZ0YWIzNjAgXGYwXGZzMjQgDQp7XCpcaHRtbHRhZzE5IDxo dG1sPn0NCntcKlxodG1sdGFnMiBccGFyIH0NCntcKlxodG1sdGFnMjQyICAgfQ0Ke1wqXGh0bWx0 YWczNCA8aGVhZD59DQp7XCpcaHRtbHRhZzEgXHBhciB9DQp7XCpcaHRtbHRhZzI0MSAgICAgfQ0K e1wqXGh0bWx0YWcxIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDEgICB9DQp7XCpcaHRtbHRhZzQxIDwv aGVhZD59DQp7XCpcaHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzI0MiAgIH0NCntcKlxodG1s dGFnNTAgPGJvZHkgYmdjb2xvcj0iI0ZGRkZGRiIgdGV4dD0iIzAwMDAwMCI+fVxodG1scnRmIFx2 aWV3a2luZDUNCntcKlxiYWNrZ3JvdW5kIHtcc2hwe1wqXHNocGluc3R7XHNwe1xzbiBmaWxsQ29s b3J9e1xzdiAxNjc3NzIxNX19e1xzcHtcc24gZkZpbGxlZH17XHN2IDF9fX19fVxodG1scnRmMCAN CntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICB9e1wqXGh0bWx0YWc2NH1c aHRtbHJ0ZiB7XGh0bWxydGYwIFN0ZXBoZW4sDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRm IFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAg ICB9SSBkb24ndCBoYXZlIGEgZGVmaW5pdGl2ZSBhbnN3ZXIgKHlldCkgYnV0IGhlcmUgaXMgd2hh dCB0aGUgQmxhY2tCb3gNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAgICAgfWRvY3VtZW50YXRpb24gc2F5cw0Ke1wqXGh0bWx0YWcxMTYgPGJy Pn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0 bWx0YWc4NCAgICAgfWFib3V0IGRlYnVnZ2luZw0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAg ICAgfQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfShGcm9tIERldi9Eb2N1L1VzZXIt TWFuKQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfUFTU0VSVCh4LCBuKQ0Ke1wqXGh0 bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxw YXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfS0tLQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0 ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAg ICAgfVlvdSBjYW4gdXNlIHRyYXAgY29kZXMgMC4uMTkgZnJlZWx5IGluIHlvdXIgcHJvZ3JhbXMs IHR5cGljYWxseSBhcw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzg0ICAgICB9dGVtcG9yYXJ5IGJyZWFrcG9pbnRzIGR1cmluZyBkZWJ1Z2dpbmcu IEJ5IGNvbnZlbnRpb24sIHRoZSBvdGhlcg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBc aHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9dHJhcCBjb2RlcyBhcmUgZ2VuZXJhdGVkIGJ5 IHZhcmlvdXMgYXNzZXJ0aW9ucywgaS5lLiwgc3RhdGVtZW50cw0Ke1wqXGh0bWx0YWc0IFxwYXIg fVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9d2hpY2ggY2hlY2sgYSBj ZXJ0YWluIGNvbmRpdGlvbiwgYW5kIHRlcm1pbmF0ZSB0aGUgY29tbWFuZCBpZiB0aGUNCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfWNv bmRpdGlvbiBpcyB2aW9sYXRlZC4gQ29uZGl0aW9ucyB3aGljaCBtdXN0IGJlIGZ1bGZpbGxlZCB1 cG9uIGVudHJ5DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxo dG1sdGFnODQgICAgIH1vZiBhIHByb2NlZHVyZSBhcmUgY2FsbGVkIHByZWNvbmRpdGlvbnMsIGNv bmRpdGlvbnMgd2hpY2ggbXVzdCBiZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9ZnVsZmlsbGVkIHVwb24gZXhpdCBvZiBhIHByb2Nl ZHVyZSBhcmUgY2FsbGVkIHBvc3Rjb25kaXRpb25zLCBhbmQNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfWNvbmRpdGlvbnMgd2hpY2gg bXVzdCBiZSBmdWxmaWxsZWQgaW4gYmV0d2VlbiBhcmUgY2FsbGVkIGludmFyaWFudHMuDQp7XCpc aHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1N b3N0IHByb2NlZHVyZXMgaW4gdGhlIEJsYWNrQm94IENvbXBvbmVudCBGcmFtZXdvcmsgY2hlY2sg c29tZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh Zzg0ICAgICB9cHJlY29uZGl0aW9ucy4gVHlwaWNhbGx5LCB0cmFwIG51bWJlcnMgYXJlIGtlcHQg dW5pcXVlIGluc2lkZSBvZiBhDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRm MCANCntcKlxodG1sdGFnODQgICAgIH1wcm9jZWR1cmUuIFRodXMsIGlmIGEgdHJhcCBvY2N1cnMs IGNvbnN1bHQgdGhlIGRvY3VtZW50YXRpb24gKG9yDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxy dGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1zb3VyY2UsIGlmIGF2YWlsYWJsZSkg b2YgdGhlIHRyYXBwZWQgcHJvY2VkdXJlLiBUaGVyZSB5b3Ugc2hvdWxkIGdldA0Ke1wqXGh0bWx0 YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9bW9yZSBp bmZvcm1hdGlvbiBhYm91dCB0aGUgY2F1c2Ugb2YgdGhlIHRyYXAuDQp7XCpcaHRtbHRhZzExNiA8 YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpc aHRtbHRhZzg0ICAgICB9VGhlIGRldmVsb3BlciBtYXkgZXZlbiBwcm92aWRlIGEgcGxhaW4tdGV4 dCBkZXNjcmlwdGlvbiBvZiB0aGUNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXRyYXAncyBjYXVzZSwgYnkgcHJvdmlkaW5nIHN1aXRh YmxlIHJlc291cmNlcyBpbiB0aGUgc3Vic3lzdGVtJ3MNCntcKlxodG1sdGFnNCBccGFyIH1caHRt bHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXN0cmluZyByZXNvdXJjZSBmaWxl OiBtb2R1bGUgbmFtZSB3aXRob3V0IHN1YnN5c3RlbSBwcmVmaXgsIGZvbGxvd2VkDQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1ieSAi LiIsIGZvbGxvd2VkIGJ5IHRoZSBwcm9jZWR1cmUgbmFtZSwgZm9sbG93ZWQgYnkgIi4iLCBmb2xs b3dlZCBieQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzg0ICAgICB9dGhlIHRyYXAgbnVtYmVyLiBUaGUgZm9sbG93aW5nIGFyZSBleGFtcGxlczoN CntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1s dGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0 bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFn ODQgICAgIH1NYXRoLlBvd2VyLjIzXCdhMFwnYTBcJ2EwIFByZTogeCAjIDEuMFwnYTAgT1JcJ2Ew IEFCUyh5KSAjIElORg0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0 YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIg fQ0Ke1wqXGh0bWx0YWc4NCAgICAgfVZpZXdzLlZpZXcuQ29weUZyb20uMjBcJ2EwXCdhMFwnYTAg Vmlld3MuQ29weUZyb20gYW5kIFZpZXdzLkNvcHlGcm9tTW9kZWxWaWV3DQp7XCpcaHRtbHRhZzQg XHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1tdXN0IG5vdCBi b3RoDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9XCdhMFwnYTBcJ2EwIGJlIG92ZXJ3 cml0dGVuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7 XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9SWYgc3VjaCBhIHJlc291cmNl IGV4aXN0cywgdGhlIGNvcnJlc3BvbmRpbmcgdGV4dCBpcyBzaG93biBpbiB0aGUNCntcKlxodG1s dGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXRyYXAg ZGlzcGxheS4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCAN CntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2 IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntc KlxodG1sdGFnODQgICAgIH1JdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBhdCBubyB0aW1lIGR1cmlu ZyBkZWJ1Z2dpbmcgdGhlIG5vcm1hbA0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRt bHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9QmxhY2tCb3ggQ29tcG9uZW50IEJ1aWxkZXIgZW52 aXJvbm1lbnQgaXMgbGVmdCwgdGhlcmUgaXMgbm8gc3BlY2lhbA0Ke1wqXGh0bWx0YWc0IFxwYXIg fVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9ImRlYnVnZ2luZyBtb2Rl IiBvciAiZGVidWdnaW5nIGVudmlyb25tZW50IjsgZXZlcnl0aGluZyBpcw0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9aW50ZWdyYXRl ZCBpbnN0ZWFkIQ0Ke1wqXGh0bWx0YWcxMTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgfQ0Ke1wqXGh0bWx0YWcx MTYgPGJyPn1caHRtbHJ0ZiBcbGluZQ0KXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0K e1wqXGh0bWx0YWc4NCAgICAgfUV4YW1wbGU6IE9ieFRyYXBcJ2EwXCdhMGRvY3UNCntcKlxodG1s dGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFy IH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxp bmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH1U aGUgQmxhY2tCb3ggZGVidWdnZXIgaXMgYSBjcm9zcyBiZXR3ZWVuIGEgInBvc3QtbW9ydGVtIiBk ZWJ1Z2dlcg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRt bHRhZzg0ICAgICB9YW5kIGEgInJ1bi10aW1lIiBkZWJ1Z2dlci4gSXQgaXMgaW52b2tlZCBhZnRl ciBhIGNvbW1hbmQgaGFzIHRyYXBwZWQNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfShwb3N0LW1vcnRlbSksIGJ1dCBpdCBkb2Vzbid0 IGNhdXNlIGEgdGVybWluYXRpb24gb2YgdGhlIEJsYWNrQm94DQp7XCpcaHRtbHRhZzQgXHBhciB9 XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1lbnZpcm9ubWVudCAocnVu LXRpbWUpLiBTb21lIGZlYXR1cmVzLCBzdWNoIGFzIHRoZQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo dG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9SW5mby0NCntcKlxodG1sdGFn ODQgJmd0O31caHRtbHJ0ZiA+XGh0bWxydGYwIFZpZXdcJ2EwU3RhdGUgY29tbWFuZCwgd2hpY2gg bWFrZXMgaXQgcG9zc2libGUgdG8gZm9sbG93IGRhdGENCntcKlxodG1sdGFnNCBccGFyIH1caHRt bHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXN0cnVjdHVyZXMgc3RhcnRpbmcg ZnJvbSBhIHNlbGVjdGVkIHZpZXcsIGFyZSB1c3VhbGx5IGFzc29jaWF0ZWQNCntcKlxodG1sdGFn NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXdpdGggcnVu LXRpbWUgZGVidWdnZXJzIG9ubHkuDQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5l DQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7 XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh ZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9SXQgaXMgdHlwaWNhbCBmb3Igb2JqZWN0LW9y aWVudGVkIHByb2dyYW1zIHRoYXQgdGhlaXIgY29udHJvbCBmbG93cw0Ke1wqXGh0bWx0YWc0IFxw YXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9Y2FuIGJlY29tZSBl eHRyZW1lbHkgY29udm9sdXRlZCBhbmQgaGFyZCB0byBmb2xsb3cuIFRodXMgZm9sbG93aW5nIGEN CntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAg ICAgfXByb2dyYW0gc3RhdGVtZW50IGZvciBzdGF0ZW1lbnQgKHNpbmdsZSBzdGVwKSwgYnkgbWVz c2FnZSBzZW5kcywgb3INCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0K e1wqXGh0bWx0YWc4NCAgICAgfWJ5IHByb2NlZHVyZSBjYWxscyBpbiBwcmFjdGljZSB0dXJucyBv dXQgdG8gYmUgdW5wcmFjdGljYWwgZm9yDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxo dG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1kZWJ1Z2dpbmcgbGFyZ2Ugc3lzdGVtcy4gSW5z dGVhZCwgQmxhY2tCb3ggdXNlcyBhIG1vcmUgZWZmZWN0aXZlDQp7XCpcaHRtbHRhZzQgXHBhciB9 XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1kZWJ1Z2dpbmcgc3RyYXRl Z3k6DQp7XCpcaHRtbHRhZzExNiA8YnI+fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICB9DQp7XCpcaHRtbHRhZzExNiA8YnI+ fVxodG1scnRmIFxsaW5lDQpcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzQgXHBhciB9DQp7XCpcaHRt bHRhZzg0ICAgICB9TGV0IGVycm9ycyBiZWNvbWUgbWFuaWZlc3QgYXMgc29vbiBhcyBwb3NzaWJs ZS4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxo dG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59 XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1s dGFnODQgICAgIH1JbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIHNvbWUgZXJyb3IgdG8gb2NjdXIsIGFu ZCB0aGVuIHRyeWluZyB0byBmaW5kDQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1s cnRmMCANCntcKlxodG1sdGFnODQgICAgIH1vbmUncyB3YXkgYmFja3dhcmQgdG8gdGhlIGNhdXNl IG9mIHRoZSBlcnJvciwgaXQgd2FzIGF0dGVtcHRlZCB0bw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxo dG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9ZmxhZyBlcnJvcnMgYXMgY2xv c2VseSB0byB0aGVpciBjYXVzZSBhcyBwb3NzaWJsZS4gVGhpcyBpcyB0aGUgb25seQ0Ke1wqXGh0 bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9d2F5 IHRvIHRydWx5IHNhdmUgZGVidWdnaW5nIHRpbWUuIFRoZSBsYW5ndWFnZSBpbXBsZW1lbnRhdGlv bg0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0 ICAgICB9Zm9sbG93cyB0aGUgc2FtZSBzdHJhdGVneSwgYnkgY2hlY2tpbmcgaW5kZXggb3ZlcmZs b3dzIHdoZW4NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAgICAgfWFjY2Vzc2luZyBhcnJheXMsIGJ5IGNoZWNraW5nIE5JTCBhY2Nlc3NlcyB3 aGVuIGRlcmVmZXJlbmNpbmcgYQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzg0ICAgICB9cG9pbnRlciwgZXRjLiBJbiBhZGRpdGlvbiB0byB0aGVz ZSBidWlsdC1pbiBjaGVja3MsIENvbXBvbmVudCBQYXNjYWwNCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXByb3ZpZGVzIHRoZSBzdGFu ZGFyZCBwcm9jZWR1cmUgQVNTRVJULCB3aGljaCBhbGxvd3MgdG8gdGVzdCBmb3IgYW4NCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfWFy Yml0cmFyeSBjb25kaXRpb24uIElmIHRoZSBjb25kaXRpb24gaXMgdmlvbGF0ZWQsIGEgdHJhcCB3 aW5kb3cgaXMNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0 bWx0YWc4NCAgICAgfW9wZW5lZC4gUHJvY2VkdXJlcyBvZiB0aGUgQmxhY2tCb3ggQ29tcG9uZW50 IEZyYW1ld29yayBjb25zZXF1ZW50bHkNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0 bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfXVzZSBhc3NlcnRpb25zIGUuZy4gYXQgdGhlIGJl Z2lubmluZyBvZiBhIHByb2NlZHVyZSB0byBjaGVjayB3aGV0aGVyDQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH1pdHMgaW5wdXQgaXMg dmFsaWQuIFRoaXMgcHJldmVudHMgdGhhdCBhIHByb2NlZHVyZSB3aXRoIGlsbGVnYWwNCntcKlxo dG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgfWlu cHV0IG1heSBwZXJmb3JtIGFueSBkYW1hZ2UgdG8gdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbS4NCntc KlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFn NCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxy dGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQg ICAgIH1UaGlzIGRlZmVuc2l2ZSBwcm9ncmFtbWluZyBzdHJhdGVneSBoYXMgcHJvdmVuIGl0c2Vs ZiBhZ2FpbiBhbmQNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc4NCAgICAgfWFnYWluIGR1cmluZyB0aGUgZGV2ZWxvcG1lbnQgb2YgQmxhY2tCb3gs IGFuZCBpcyBzdHJvbmdseQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAg DQp7XCpcaHRtbHRhZzg0ICAgICB9cmVjb21tZW5kZWQgZm9yIHNlcmlvdXMgZGV2ZWxvcG1lbnQg d29yay4NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntc KlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxi cj59XGh0bWxydGYgXGxpbmUNClxodG1scnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxo dG1sdGFnODQgICAgIH0NCntcKlxodG1sdGFnMTE2IDxicj59XGh0bWxydGYgXGxpbmUNClxodG1s cnRmMCANCntcKlxodG1sdGFnNCBccGFyIH0NCntcKlxodG1sdGFnODQgICAgIH1PbiA5LzIvMjAx MSAyOjE5IFBNLCBTdGVwaGVuIFIuIFRyb3kgd3JvdGU6DQp7XCpcaHRtbHRhZzQgXHBhciB9XGh0 bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgIH17XCpcaHRtbHRhZzcyfVxodG1s cnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0bWx0YWc5NiA8YmxvY2txdW90ZVxwYXIgY2l0ZT0i bWlkOjIwMTEwOTAyMTQxOTU5LjViNzYzM2FlYWFkMjY5MmViMTI5NTFjYjU1Mjk1YjVmLmY5NTFi MzgzMjYud2JlQGVtYWlsMTQuc2VjdXJlc2VydmVyLm5ldCJccGFyICAgICAgIHR5cGU9ImNpdGUi Pn1caHRtbHJ0ZiBccGFyDQp7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1s cnRmMCBcbGkzNjAgDQp7XCpcaHRtbHRhZzg0IDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpWZXJk YW5hOyBjb2xvcjojMDAwMDAwO1xwYXIgICAgICAgICBmb250LXNpemU6MTBwdDsiPn1caHRtbHJ0 ZiB7XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfQ0Ke1wqXGh0bWx0YWc4NCAgICAgICAg IH1caHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRm MA0KDQp7XCpcaHRtbHRhZzk2IDxkaXY+fVxodG1scnRmIHtcaHRtbHJ0ZjAge1wqXGh0bWx0YWc2 NH1caHRtbHJ0ZiB7XGh0bWxydGYwIFxsaTM2MCBcaHRtbHJ0ZiB7XGh0bWxydGYwIERlYXIgTGlz dCxcaHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZccGFyfVxodG1scnRm MA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1s dGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICAgICAgfQ0Ke1wqXGh0bWx0YWc5NiA8ZGl2 Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYge1xodG1scnRmMCBc bGkzNjAgXGh0bWxydGYge1xodG1scnRmMCBJIG5lZWQgdG8gZGVidWcgYSBwcm9ncmFtLlwnYTAg SSB3YW50IHRvIGJlIGFibGUgdG8gcGF1c2UNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgICAgICAgfW5vcm1hbCBleGVjdXRpb24gc28g SSBjYW4gZXhhbWluZSB0aGUgdmFsdWVzIG9mIGNlcnRhaW4NCntcKlxodG1sdGFnNCBccGFyIH1c aHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgICAgICAgfXZhcmlhYmxlcywg dGhlbiByZXN1bWUgZXhlY3V0aW9uLlwnYTAgSSBjYW4gc2VlIGFuIG9idmlvdXMgd2F5IHRvDQp7 XCpcaHRtbHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAg ICAgICAgIH1kbyBpdCwgYnkgY2FsbGluZyBhIHByb2NlZHVyZSB0aGF0IHdpbGwgZXhlY3V0ZSBh IGxvb3AgdW50aWwNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wq XGh0bWx0YWc4NCAgICAgICAgICAgfXRoZSB2YWx1ZSBvZiBhIGdsb2JhbCBCb29sZWFuIHZhcmlh YmxlIGNoYW5nZXMuXCdhMCBCdXQgc2luY2UNCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0ZiAg XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgICAgICAgfXRoaXMgcmVxdWlyZW1lbnQgbXVz dCBoYXZlIGNvbWUgdXAgYmVmb3JlLCBJIGhvcGVkIHNvbWVib2R5DQp7XCpcaHRtbHRhZzQgXHBh ciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgICAgICAgIH1jb3VsZCBz dWdnZXN0IGEgbW9yZSBlbGVnYW50IG1ldGhvZC5cJ2EwIFRoYW5rcyBmb3IgYW55DQp7XCpcaHRt bHRhZzQgXHBhciB9XGh0bWxydGYgIFxodG1scnRmMCANCntcKlxodG1sdGFnODQgICAgICAgICAg IH1zdWdnZXN0aW9ucy5caHRtbHJ0ZiB9XGh0bWxydGYwIHtcKlxodG1sdGFnNzJ9XGh0bWxydGZc cGFyfVxodG1scnRmMA0KDQp7XCpcaHRtbHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRm MCANCntcKlxodG1sdGFnMCBccGFyIH0NCntcKlxodG1sdGFnMjQwICAgICAgICAgfQ0Ke1wqXGh0 bWx0YWc5NiA8ZGl2Pn1caHRtbHJ0ZiB7XGh0bWxydGYwIHtcKlxodG1sdGFnNjR9XGh0bWxydGYg e1xodG1scnRmMCBcbGkzNjAgXGh0bWxydGYge1xodG1scnRmMCBTdGV2ZSBUcm95XGh0bWxydGYg fVxodG1scnRmMCB7XCpcaHRtbHRhZzcyfVxodG1scnRmXHBhcn1caHRtbHJ0ZjANCg0Ke1wqXGh0 bWx0YWcxMDQgPC9kaXY+fVxodG1scnRmIH1caHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzAgXHBhciB9 DQp7XCpcaHRtbHRhZzI0MCAgICAgICAgIH0NCntcKlxodG1sdGFnOTYgPGRpdj59XGh0bWxydGYg e1xodG1scnRmMCANCntcKlxodG1sdGFnMTEyIDxicj59XGh0bWxydGYgXHBhcg0KXGh0bWxydGYw IA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICAgICAgICB9DQp7XCpcaHRt bHRhZzEwNCA8L2Rpdj59XGh0bWxydGYgfVxodG1scnRmMCANCntcKlxodG1sdGFnMCBccGFyIH0N CntcKlxodG1sdGFnMjQwICAgICAgIH0NCntcKlxodG1sdGFnMjQ4IDwvc3Bhbj59DQp7XCpcaHRt bHRhZzAgXHBhciB9DQp7XCpcaHRtbHRhZzI0MCAgICAgICB9DQp7XCpcaHRtbHRhZzY0IDxwPn1c aHRtbHJ0ZiBccGFyDQpcaHRtbHJ0ZjAgXGh0bWxydGYge1xodG1scnRmMCBcbGkzNjAgDQp7XCpc aHRtbHRhZzQgXHBhciB9DQp7XCpcaHRtbHRhZzg0ICAgICAgICAgfS0tLS0NCntcKlxodG1sdGFn NCBccGFyIH1caHRtbHJ0ZiAgXGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc4NCAgICAgICAgIH1UbyB1 bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCBib2R5ICJTSUdOT0ZGIEJMQUNLQk9YIiB0 bw0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRhZzg0 ICAgICAgICAgfXt9DQp7XCpcaHRtbHRhZzg0IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2 aWF0ZWQiIGhyZWY9Im1haWx0bzpMSVNUU0VSVkBMSVNUUy5PQkVST04uQ0giPn1caHRtbHJ0ZiB7 XGZpZWxke1wqXGZsZGluc3R7SFlQRVJMSU5LICJtYWlsdG86TElTVFNFUlZATElTVFMuT0JFUk9O LkNIIn19e1xmbGRyc2x0XGNmMVx1bCBcaHRtbHJ0ZjAgTElTVFNFUlZATElTVFMuT0JFUk9OLkNI XGh0bWxydGYgfVxodG1scnRmMCBcaHRtbHJ0ZiB9XGh0bWxydGYwIA0Ke1wqXGh0bWx0YWc5MiA8 L2E+fQ0Ke1wqXGh0bWx0YWc0IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgDQp7XCpcaHRtbHRh Zzg0ICAgICAgIH1caHRtbHJ0ZlxwYXJ9XGh0bWxydGYwDQpcaHRtbHJ0ZiBccGFyDQpcaHRtbHJ0 ZjAgDQp7XCpcaHRtbHRhZzcyIDwvcD59DQp7XCpcaHRtbHRhZzAgXHBhciB9DQp7XCpcaHRtbHRh ZzI0MCAgICAgfQ0Ke1wqXGh0bWx0YWcxMDQgPC9ibG9ja3F1b3RlPn1caHRtbHJ0ZiB9XGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWcwIFxwYXIgfQ0Ke1wqXGh0bWx0YWcyNDAgICB9DQp7XCpcaHRtbHRh ZzU4IDwvYm9keT59DQp7XCpcaHRtbHRhZzIgXHBhciB9DQp7XCpcaHRtbHRhZzI3IDwvaHRtbD59 DQp7XCpcaHRtbHRhZzMgXHBhciB9DQp7XCpcaHRtbHRhZzY0IDxwPn1caHRtbHJ0ZiB7XGh0bWxy dGYwIA0Ke1wqXGh0bWx0YWc0IFxwYXIgfS0tLS0NCntcKlxodG1sdGFnNCBccGFyIH1caHRtbHJ0 ZiAgXGh0bWxydGYwIFRvIHVuc3Vic2NyaWJlLCBzZW5kIGEgbWVzc2FnZSB3aXRoIGJvZHkgIlNJ R05PRkYgQkxBQ0tCT1giIHRvIExJU1RTRVJWQExJU1RTLk9CRVJPTi5DSA0Ke1wqXGh0bWx0YWc0 IFxwYXIgfVxodG1scnRmICBcaHRtbHJ0ZjAgXGh0bWxydGZ9fQAw6G1WVxiRcGDA1fA8EA== ----boundary-LibPST-iamunique-871902483_-_--- Received on Fri Sep 02 2011 - 23:56:15 UTC

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