PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgiX3Byb2plY3RDb21tb24ucGhwIik7ICAgICMgQWxsIG9uIHRoZSBzYW1lIGxpbmUgdG8gdW5jbHV0dGVyIHRoZSB1c2VyJ3MgZGVza3RvcCcKCgkKCSMKCSMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuIAoJJHBhZ2VUaXRsZSAJCT0gIkVjbGlwc2UgV2ViIFRvb2xzIFBsYXRmb3JtIDEuMCI7CgkkcGFnZUtleXdvcmRzCT0gIlR5cGUsIHBhZ2UsIGtleXdvcmRzLCBoZXJlIjsKCSRwYWdlQXV0aG9yCQk9ICJUeXBlIHlvdXIgbmFtZSBoZXJlIjsKCQoJIyBBZGQgcGFnZS1zcGVjaWZpYyBOYXYgYmFycyBoZXJlCgkjIEZvcm1hdCBpcyBMaW5rIHRleHQsIGxpbmsgVVJMIChjYW4gYmUgaHR0cDovL3d3dy5zb21lb3RoZXJzaXRlLmNvbS8pLCB0YXJnZXQgKF9zZWxmLCBfYmxhbmspCgkjICROYXYtPmFkZEN1c3RvbU5hdigiTXkgTGluayIsICJteXBhZ2UucGhwIiwgIl9zZWxmIik7CgkjICROYXYtPmFkZEN1c3RvbU5hdigiR29vZ2xlIiwgImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iLCAiX2JsYW5rIik7CgoJIyBFbmQ6IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MKCSMKCQoJIyBQYXN0ZSB5b3VyIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBFT0hUTUwgbWFya2VycyEJCgkkaHRtbCA9IDw8PEVPSFRNTAo8ZGl2IGlkPSJtYWluY29udGVudCI+Cgk8ZGl2IGlkPSJtaWRjb2x1bW4iPgoJCTxoMT4kcGFnZVRpdGxlPC9oMT4KCQk8aDI+UHJlc3MgUmVsZWFzZTwvaDI+CjxoMiBBTElHTj0iQ0VOVEVSIj48c3Ryb25nPkVjbGlwc2UgRm91bmRhdGlvbiBBbm5vdW5jZXMgV2ViIFRvb2xzIFBsYXRmb3JtIDEuMDwvc3Ryb25nPjwvaDI+Cgo8dWw+CjxsaT5FY2xpcHNlIFdUUCBQcm9qZWN0IHNoaXBzIHBsYXRmb3JtIEFQSSBmb3IgaW5kZXBlbmRlbnQgZXh0ZW5zaW9uCjwvdWw+Cgo8cD48c3Ryb25nPk9UVEFXQSwgRGVjZW1iZXIgMTksIDIwMDUgPC9zdHJvbmc+lyBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uLCBhbiBvcGVuIHNvdXJjZSBjb21tdW5pdHkgY29tbWl0dGVkIHRvIAppbXBsZW1lbnRhdGlvbiBvZiBhIHVuaXZlcnNhbCBkZXZlbG9wbWVudCBwbGF0Zm9ybSwgd2lsbCBtYWtlIHRoZSBFY2xpcHNlIFdlYiAgVG9vbHMgUGxhdGZvcm0gKFdUUCkgMS4wIHJlbGVhc2UgCmdlbmVyYWxseSBhdmFpbGFibGUgdGhlIHdlZWsgb2YgRGVjIDE5dGgsIDIwMDUuICBFY2xpcHNlIFdUUCAgMS4wIGlzIGFuIGV4dGVuc2libGUsIHN0YW5kYXJkcy1iYXNlZCB0b29sIHBsYXRmb3JtIApmb3IgZGV2ZWxvcGluZyBKMkVFIGFuZCBXZWIgYXBwbGljYXRpb25zLiBXVFAgaGFzIGFscmVhZHkgYmVlbiBhZG9wdGVkIGJ5IHRoZSBsZWFkaW5nIEoyRUUgc3VwcGxpZXJzLCBpbmNsdWRpbmcgQkVBLCAKQm9ybGFuZCwgSUJNLCBKQm9zcyBhbmQgT2JqZWN0V2ViLiBUaGlzIGZ1bGwgdmVyc2lvbiByZWxlYXNlIHNvbGlkaWZpZXMgdGhlIHBsYXRmb3JtIEFQSSBmb3IgM3JkIHBhcnR5IGV4dGVuc2lvbiwgCmFuZCBhY2NvbXBhbnlpbmcgbWFqb3IgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMgbWFrZSBXVFAgcmVhZHkgZm9yIHRoZSBuZXh0LWxldmVsIG9mIHZlbmRvciBhZG9wdGlvbi4gIDwvcD4KCjxwPpNUaGlzIHJlbGVhc2UgcmVhbGx5IHN0YXJ0cyB0byBkZWxpdmVyIG9uIHRoZSB2aXNpb24gb2YgdGhlIFdlYiBUb29scyBQbGF0Zm9ybSyUIHNhaWQgTWlrZSBNaWxpbmtvdmljaCwgCiBkaXJlY3RvciBvZiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLiCTUHJvdmlkaW5nIGEgc3Ryb25nIHBsYXRmb3JtIGZvciBjb21wYW5pZXMgdG8gbGV2ZXJhZ2Ugd2hlbiBidWlsZGluZyBXZWIgYW5kIAogSjJFRSB0b29scyBpcyBhIGNyaXRpY2FsIGNvbXBvbmVudCBvZiBFY2xpcHNlknMgc3RyYXRlZ3kgZm9yIHByb3ZpZGluZyBhIHVuaXZlcnNhbCBkZXZlbG9wbWVudCBwbGF0Zm9ybSBmb3IgdG9vbHMgCiBpbnRlZ3JhdGlvbi6UPC9wPgoKPHA+k1RoZSBuZXcgZmVhdHVyZXMgb2YgV1RQIDEuMCBhcmUgZGVzaWduZWQgdG8gY3JlYXRlIGEgbW9yZSB2ZW5kb3IgcmVhZHkgcGxhdGZvcm0gZm9yIFdlYiBhbmQgSjJFRSBkZXZlbG9wbWVudCyUIApzYWlkIFRpbSBXYWduZXIsIHRoZSBQTUMgTGVhZCBvZiB0aGUgV2ViIFRvb2xzIFByb2plY3QgZnJvbSBCRUEgU3lzdGVtcy4gIJNXb3JraW5nIHRvZ2V0aGVyIHdpdGggdGhlIGRpdmVyc2UgCm1lbWJlciBjb21wYW5pZXMgaW4gdGhlIHByb2plY3QgYW5kIHRoZSBjb21tdW5pdHkgaGFzIGhlbHBlZCBpbW1lbnNlbHkgdG8gcHJvZHVjZSB0aGVzZSBwbGF0Zm9ybSBBUElzLCB3aGljaCBjYW4gCmhlbHAgdG8gYmV0dGVyIGVuYWJsZSBvdGhlciBjb21tZXJjaWFsIHZlbmRvcnMgdG8gbGV2ZXJhZ2UgV1RQIHRvb2xzIGZvciB0aGVpciBwcm9kdWN0cy6UPC9wPgoKPHA+VGhpcyByZWxlYXNlIGZvY3VzZXMgb24gdHdvIG9mIHRoZSB0aHJlZSBtYWpvciBnb2FscyBvdXRsaW5lZCBpbiB0aGUgV1RQIHJvYWRtYXA6IGRlZmluaW5nIHRoZSBXVFAgQVBJLCBhbmQgCmtlZXBpbmcgY3VycmVudCB3aXRoIHRoZSB1bmRlcmx5aW5nIEVjbGlwc2UgcGxhdGZvcm0uICBGdXR1cmUgcmVsZWFzZXMgd2lsbCBmb2N1cyBtb3JlIG9uIHRoZSB0aGlyZCByb2FkbWFwIGdvYWwgCm9mIGN1cnJlbmN5IHdpdGggV2ViIGFuZCBKMkVFIHN0YW5kYXJkcyBsaWtlIEphdmEgNS4wIGFuZCBXU0RMIDIuMC4gIEJ1aWxkaW5nIGF0b3AgdGhlIEVjbGlwc2UgMy4xLjEgbWFpbnRlbmFuY2UgCnJlbGVhc2UsIFdUUCAxLjAgdXBncmFkZXMgdGhlIG9yaWdpbmFsIDAuNyByZWxlYXNlIHRvIGEgc3RhdGUgdGhhdCBpcyBzdWl0YWJsZSBmb3IgYWRvcHRpb24gYnkgdG9vbCB2ZW5kb3JzIGFuZCAKZGVidXRzIHNldmVyYWwgbmV3IGZlYXR1cmVzOiAgCjx1bD4KPGxpPglQcm9tb3RlIHNlbGVjdGVkIHByb3Zpc2lvbmFsIEFQSXMgdG8gcGxhdGZvcm0gc3RhdHVzIGJhc2VkIG9uIHZlbmRvciByZXF1aXJlbWVudHM7IAo8bGk+CUNvbXBvbmVudGl6ZSBXVFAgaW50byBmZWF0dXJlcyB0byBlbmFibGUgYWRvcHRlcnMgdG8gc2VsZWN0IHN1YnNldHMgb2YgZnVuY3Rpb25hbGl0eSBhcHByb3ByaWF0ZSB0byB0aGVpciByZXF1aXJlbWVudHM7CjxsaT4JRW5oYW5jZSBhbmQgZXh0ZW5kIHRoZSB3aWRlIGFycmF5IG9mIG91dC1vZi10aGUtYm94IGRldmVsb3BlciB0b29scyBpbnRyb2R1Y2VkIGluIHRoZSAwLjcgcmVsZWFzZTsgIAo8bGk+CZNGdXR1cmUtcHJvb2aUIFdUUCBieSBhbGlnbmluZyBpdHMgcHJvamVjdCBtb2RlbCB3aXRoIEVjbGlwc2UgcGxhdGZvcm0gY2hhbmdlcyBwbGFubmVkIGZvciB2ZXJzaW9uIDMuMiAodGhlIJNDYWxsaXN0b5QgcmVsZWFzZSk7CjxsaT4JTWFqb3IgZG9jdW1lbnQgYW5kIGhlbHAgc3lzdGVtIGNvbnRyaWJ1dGlvbnMgZnJvbSBJQk0gdGhhdCBpbmNsdWRlIGJvdGggZW5kLXVzZXIgYW5kIGFkb3B0ZXIgZG9jdW1lbnRhdGlvbjsgYW5kCjxsaT4JRml4IGltcG9ydGFudCBidWdzLCB3aXRoIGFuIGVtcGhhc2lzIG9uIHN0YWJpbGl0eSwgYWRvcHRpb24gaXNzdWVzLCBwZXJmb3JtYW5jZSBhbmQgc2NhbGFiaWxpdHkuIAo8L3VsPgo8L3A+Cgo8cD5JbmNsdXNpb24gb2YgZmVlZGJhY2sgZnJvbSB0aGUgY29tbXVuaXR5IHdpbGwgdWx0aW1hdGVseSBoZWxwIGFkZHJlc3MgdGhlIGNoYWxsZW5nZSBvZiBwcm9kdWNpbmcgdGhlIHJpZ2h0IApwbGF0Zm9ybSBBUElzIGZvciBhIGRlbWFuZGluZyB2ZW5kb3IgY29tbXVuaXR5OyBpbnB1dCBmcm9tIG1hbnkgc291cmNlcyBpcyBub3Qgb25seSB3ZWxjb21lIGJ1dCBuZWNlc3NhcnkuICAKVGhlIHByb2plY3QgYWxyZWFkeSBoYXMgYXR0cmFjdGVkIHRoZSBhY3RpdmUgcGFydGljaXBhdGlvbiBvZiBtYWpvciB2ZW5kb3JzIGxpa2UgQkVBLCB3aG8gbGVhZHMgdGhlIHByb2plY3QsIApPYmplY3RXZWIgYW5kIElCTSB3aG8gaGVscGVkIGluaXRpYXRlIHRoZSBwcm9qZWN0LCBKQm9zcyBhbmQgT3JhY2xlLiAgVGhlIGFkb3B0aW9uIGFuZCB1c2Ugb2YgV1RQIDEuMCBpbiBjb21tZXJjaWFsIApwcm9kdWN0cyBsaWtlIEJFQSBXb3Jrc2hvcJkgYW5kIElCTSBSYXRpb25hbK4gQXBwbGljYXRpb24gRGV2ZWxvcGVyIGZvciBXZWJTcGhlcmWuIFNvZnR3YXJlIGNhbiBoZWxwIHRvIGFjY2VsZXJhdGUgCnRoZSBhZG9wdGlvbiBjdXJ2ZSBieSBvdGhlciB2ZW5kb3JzLCBhcyBpbXByb3ZlbWVudHMgZGVyaXZlZCBmcm9tIHRoZWlyIHVzYWdlIGNhbiBoZWxwIHRvIGxvd2VyIHRoZSByaXNrIGZvciBvdGhlciAKdmVuZG9ycyB3aXNoaW5nIHRvIGxldmVyYWdlIFdUUCB0ZWNobm9sb2d5LiAgRG93bmxvYWRzIGFyZSBhdmFpbGFibGUgbm93IGF0IHRoZSBwcm9qZWN0IHdlYnNpdGUsIGxvY2F0ZWQgYXQgCjxhIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy93ZWJ0b29scy9kb3dubG9hZHMiPmh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy93ZWJ0b29scy9kb3dubG9hZHM8L2E+IAo8L3A+Cgo8cD48c3Ryb25nPkFib3V0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb248L3N0cm9uZz48YnI+CkVjbGlwc2UgaXMgYW4gb3BlbiBzb3VyY2UgY29tbXVuaXR5IHdob3NlIHByb2plY3RzIGFyZSBmb2N1c2VkIG9uIHByb3ZpZGluZyBhbiBleHRlbnNpYmxlIGRldmVsb3BtZW50IHBsYXRmb3JtIGFuZCAKYXBwbGljYXRpb24gZnJhbWV3b3JrcyBmb3IgYnVpbGRpbmcgc29mdHdhcmUuIEVjbGlwc2UgcHJvdmlkZXMgZXh0ZW5zaWJsZSB0b29scyBhbmQgZnJhbWV3b3JrcyB0aGF0IHNwYW4gdGhlIApzb2Z0d2FyZSBkZXZlbG9wbWVudCBsaWZlY3ljbGUsIGluY2x1ZGluZyBzdXBwb3J0IGZvciBtb2RlbGluZywgbGFuZ3VhZ2UgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIGZvciBKYXZhLCBDL0MrKyAKYW5kIG90aGVycywgdGVzdGluZyBhbmQgcGVyZm9ybWFuY2UsIGJ1c2luZXNzIGludGVsbGlnZW5jZSwgcmljaCBjbGllbnQgYXBwbGljYXRpb25zIGFuZCBlbWJlZGRlZCBkZXZlbG9wbWVudC4gQSAKbGFyZ2UsIHZpYnJhbnQgZWNvc3lzdGVtIG9mIG1ham9yIHRlY2hub2xvZ3kgdmVuZG9ycywgaW5ub3ZhdGl2ZSBzdGFydC11cHMsIHVuaXZlcnNpdGllcyBhbmQgcmVzZWFyY2ggaW5zdGl0dXRpb25zIAphbmQgaW5kaXZpZHVhbHMgZXh0ZW5kLCBjb21wbGVtZW50IGFuZCBzdXBwb3J0IHRoZSBFY2xpcHNlIFBsYXRmb3JtLjwvcD4KCjxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgYSBub3QtZm9yLXByb2ZpdCwgbWVtYmVyIHN1cHBvcnRlZCBjb3Jwb3JhdGlvbiB0aGF0IGhvc3RzIHRoZSBFY2xpcHNlIHByb2plY3RzLiBGdWxsIApkZXRhaWxzIG9mIEVjbGlwc2UgYW5kIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gYXJlIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnIj53d3cuZWNsaXBzZS5vcmcuPC9hPjwvcD4KPGJyPgoJCgo8L2Rpdj4KCQoJCjwvZGl2PgoKPGRpdiBpZD0icmlnaHRjb2x1bW4iPgoJPGRpdiBjbGFzcz0ic2lkZWl0ZW0iPgoJCTxoNj5SZWxhdGVkIExpbmtzPC9oNj4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3dlYnRvb2xzLyI+V2ViIFRvb2xzIFBsYXRmb3JtIFByb2plY3Q8L2E+PC9saT4KCQk8L3VsPgkKCTwvZGl2Pgo8L2Rpdj4KCkVPSFRNTDsKCgoJIyBHZW5lcmF0ZSB0aGUgd2ViIHBhZ2UKCSRBcHAtPmdlbmVyYXRlUGFnZSgkdGhlbWUsICRNZW51LCAkTmF2LCAkcGFnZUF1dGhvciwgJHBhZ2VLZXl3b3JkcywgJHBhZ2VUaXRsZSwgJGh0bWwpOwo/Pgo=