PD9waHAgIAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCXJlcXVpcmVfb25jZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gIi9lY2xpcHNlLm9yZy1jb21tb24vc3lzdGVtL2FwcC5jbGFzcy5waHAiKTsJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbmF2LmNsYXNzLnBocCIpOyAJcmVxdWlyZV9vbmNlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10gLiAiL2VjbGlwc2Uub3JnLWNvbW1vbi9zeXN0ZW0vbWVudS5jbGFzcy5waHAiKTsgCSRBcHAgCT0gbmV3IEFwcCgpOwkkTmF2CT0gbmV3IE5hdigpOwkkTWVudSAJPSBuZXcgTWVudSgpOwkJaW5jbHVkZSgiX3Byb2plY3RDb21tb24ucGhwIik7ICAgICMgQWxsIG9uIHRoZSBzYW1lIGxpbmUgdG8gdW5jbHV0dGVyIHRoZSB1c2VyJ3MgZGVza3RvcCcKCgkKCSMKCSMgQmVnaW46IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MuICBDaGFuZ2UgdGhlc2UuIAoJJHBhZ2VUaXRsZSAJCT0gIkVjbGlwc2VDb24gR29sZCBTcG9uc29ycyI7CgkkcGFnZUtleXdvcmRzCT0gIlR5cGUsIHBhZ2UsIGtleXdvcmRzLCBoZXJlIjsKCSRwYWdlQXV0aG9yCQk9ICJUeXBlIHlvdXIgbmFtZSBoZXJlIjsKCQoJIyBBZGQgcGFnZS1zcGVjaWZpYyBOYXYgYmFycyBoZXJlCgkjIEZvcm1hdCBpcyBMaW5rIHRleHQsIGxpbmsgVVJMIChjYW4gYmUgaHR0cDovL3d3dy5zb21lb3RoZXJzaXRlLmNvbS8pLCB0YXJnZXQgKF9zZWxmLCBfYmxhbmspCgkjICROYXYtPmFkZEN1c3RvbU5hdigiTXkgTGluayIsICJteXBhZ2UucGhwIiwgIl9zZWxmIik7CgkjICROYXYtPmFkZEN1c3RvbU5hdigiR29vZ2xlIiwgImh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iLCAiX2JsYW5rIik7CgoJIyBFbmQ6IHBhZ2Utc3BlY2lmaWMgc2V0dGluZ3MKCSMKCQoJIyBQYXN0ZSB5b3VyIEhUTUwgY29udGVudCBiZXR3ZWVuIHRoZSBFT0hUTUwgbWFya2VycyEJCgkkaHRtbCA9IDw8PEVPSFRNTAo8ZGl2IGlkPSJtYWluY29udGVudCI+Cgk8ZGl2IGlkPSJtaWRjb2x1bW4iPgoJCTxoMT4kcGFnZVRpdGxlPC9oMT4KCQk8aDI+UHJlc3MgUmVsZWFzZTwvaDI+CjxoMiBBTElHTj0iQ0VOVEVSIj48c3Ryb25nPkdvbGQgU3BvbnNvcnMgQW5ub3VuY2VkIGZvciBFY2xpcHNlQ29uIDIwMDYgPC9zdHJvbmc+PC9oMj4KCjx1bD4KPGxpPkFjY2VsZXJhdGVkIFRlY2hub2xvZ3ksIEFjdHVhdGUsIEJFQSBTeXN0ZW1zLCBCdXNpbmVzcyBPYmplY3RzLCBDb21wdXdhcmUsIEhQLCBJQk0sIFNlcmVuYSBhbmQgU3liYXNlIHRvClByb3ZpZGUgSGlnaGVzdCBMZXZlbCBTdXBwb3J0IHRvIEVjbGlwc2UgQ29tbXVuaXR5IEV2ZW50IDwvbGk+CjwvdWw+Cgo8cD48c3Ryb25nPk9UVEFXQSwgSmFudWFyeSAxNywgMjAwNiA8L3N0cm9uZz4gl1RoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG9kYXkgYW5ub3VuY2VkIHRoYXQgQWNjZWxlcmF0ZWQgVGVjaG5vbG9neSwgQWN0dWF0ZSwgQkVBIFN5c3RlbXMsIEJ1c2luZXNzIE9iamVjdHMsIApDb21wdXdhcmUsIEhQLCBJQk0sIFNlcmVuYSBhbmQgU3liYXNlIGhhdmUgc2lnbmVkIG9uIGFzIEdvbGQgU3BvbnNvcnMgZm9yIEVjbGlwc2VDb24gMjAwNiwgdGhlIGFubnVhbCBjb25mZXJlbmNlIAp0aGF0IGJyaW5ncyB0b2dldGhlciB0aGUgRWNsaXBzZSBjb21tdW5pdHkuIEdvbGQgU3BvbnNvcnNoaXAgaXMgdGhlIGhpZ2hlc3QgbGV2ZWwgb2Ygc3BvbnNvcnNoaXAgZm9yIHRoZSBjb25mZXJlbmNlLgogVGhlIHRoaXJkIGFubnVhbCBFY2xpcHNlQ29uIHdpbGwgYmUgaGVsZCBhdCB0aGUgU2FudGEgQ2xhcmEgQ29udmVudGlvbiBDZW50ZXIsIFNhbnRhIENsYXJhLCBDYWxpZi4sIE1hcmNoIDIwLTIzLCAKIDIwMDYuPC9wPgoKPHA+k0luIDIwMDUsIHRoZSBFY2xpcHNlIGNvbW11bml0eSBlbmpveWVkIHRyZW1lbmRvdXMgZ3Jvd3RoIGFuZCB3ZSB3aWxsIGNvbnRpbnVlIHRoaXMgbW9tZW50dW0gaW50byAyMDA2IHdpdGggb3VyIAp0aGlyZCBhbm51YWwgRWNsaXBzZUNvbiyUIGV4cGxhaW5lZCBNaWtlIE1pbGlua292aWNoLCBleGVjdXRpdmUgZGlyZWN0b3IsIEVjbGlwc2UgRm91bmRhdGlvbi4gk1RoZSBHb2xkIFNwb25zb3JzIAphcmUgdGVjaG5vbG9neSBsZWFkZXJzIGluIGEgbnVtYmVyIG9mIGRpZmZlcmVudCBtYXJrZXRzIGFuZCByZWZsZWN0aXZlIG9mIHRoZSBkaXZlcnNlIG5hdHVyZSBvZiB0aGUgRWNsaXBzZSAKY29tbXVuaXR5LiAgVGhlaXIgcGFydGljaXBhdGlvbiBhbmQgc3BvbnNvcnNoaXAgaW4gRWNsaXBzZUNvbiBpcyBpbXBvcnRhbnQgdG8gdGhlIG92ZXJhbGwgc3VjY2VzcyBvZiB0aGUgCmNvbmZlcmVuY2UulDwvcD4KCjxwPgpUaGUgRWNsaXBzZUNvbiB0ZWNobmljYWwgcHJvZ3JhbSB3aWxsIGFwcGVhbCB0byBiZWdpbm5lcnMgdGhyb3VnaCBhZHZhbmNlZCB1c2VycywgZGV2ZWxvcGVycyBvZiBFY2xpcHNlLWJhc2VkIAphcHBsaWNhdGlvbnMsIGVudGVycHJpc2UgYXJjaGl0ZWN0cyBhbmQgb3RoZXIgdGVjaG5vbG9neSBkZWNpc2lvbiBtYWtlcnMuIFRoZSBwcm9ncmFtIGNvbnNpc3RzIG9mIG1vcmUgdGhhbiAzMCAKdHV0b3JpYWxzIGFuZCB0aHJlZSBkYXlzIG9mIHNlc3Npb25zLiBQbGVhc2UgdmlzaXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlY29uLm9yZyI+d3d3LmVjbGlwc2Vjb24ub3JnPC9hPiBmb3IgCmFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2dyYW0uIDwvcD4KCjxwPjxzdHJvbmc+UmVnaXN0cmF0aW9uIEluZm9ybWF0aW9uPC9zdHJvbmc+PGJyPgpSZWdpc3RyYXRpb24gZm9yIEVjbGlwc2VDb24gMjAwNiBpcyBub3cgb3Blbi4gTWVtYmVycyBvZiB0aGUgcHJlc3MgYW5kIGFuYWx5c3QgY29tbXVuaXR5IGFyZSBlbmNvdXJhZ2VkIHRvIGF0dGVuZCAKRWNsaXBzZUNvbiAyMDA2LiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb25mZXJlbmNlLCBpbmNsdWRpbmcgcmVnaXN0cmF0aW9uLCB0cmF2ZWwgYW5kIGhvdGVsIGRldGFpbHMsIGNhbiBiZSAKZm91bmQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlY29uLm9yZyI+d3d3LmVjbGlwc2Vjb24ub3JnLjwvYT48L3A+Cgo8cD48c3Ryb25nPkFib3V0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb248L3N0cm9uZz48YnI+CkVjbGlwc2UgaXMgYW4gb3BlbiBzb3VyY2UgY29tbXVuaXR5IHdob3NlIHByb2plY3RzIGFyZSBmb2N1c2VkIG9uIHByb3ZpZGluZyBhbiBleHRlbnNpYmxlIGRldmVsb3BtZW50IHBsYXRmb3JtIGFuZCAKYXBwbGljYXRpb24gZnJhbWV3b3JrcyBmb3IgYnVpbGRpbmcgc29mdHdhcmUuIEVjbGlwc2UgcHJvdmlkZXMgZXh0ZW5zaWJsZSB0b29scyBhbmQgZnJhbWV3b3JrcyB0aGF0IHNwYW4gdGhlIApzb2Z0d2FyZSBkZXZlbG9wbWVudCBsaWZlY3ljbGUsIGluY2x1ZGluZyBzdXBwb3J0IGZvciBtb2RlbGluZywgbGFuZ3VhZ2UgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIGZvciBKYXZhLCBDL0MrKyAKYW5kIG90aGVycywgdGVzdGluZyBhbmQgcGVyZm9ybWFuY2UsIGJ1c2luZXNzIGludGVsbGlnZW5jZSwgcmljaCBjbGllbnQgYXBwbGljYXRpb25zIGFuZCBlbWJlZGRlZCBkZXZlbG9wbWVudC4gQSAKbGFyZ2UsIHZpYnJhbnQgZWNvc3lzdGVtIG9mIG1ham9yIHRlY2hub2xvZ3kgdmVuZG9ycywgaW5ub3ZhdGl2ZSBzdGFydC11cHMsIHVuaXZlcnNpdGllcyBhbmQgcmVzZWFyY2ggaW5zdGl0dXRpb25zIAphbmQgaW5kaXZpZHVhbHMgZXh0ZW5kLCBjb21wbGVtZW50IGFuZCBzdXBwb3J0IHRoZSBFY2xpcHNlIFBsYXRmb3JtLjwvcD4KCjxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgYSBub3QtZm9yLXByb2ZpdCwgbWVtYmVyIHN1cHBvcnRlZCBjb3Jwb3JhdGlvbiB0aGF0IGhvc3RzIHRoZSBFY2xpcHNlIHByb2plY3RzLiBGdWxsIApkZXRhaWxzIG9mIEVjbGlwc2UgYW5kIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gYXJlIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnIj53d3cuZWNsaXBzZS5vcmcuPC9hPjwvcD4KPGJyPgoKPHN0cm9uZz5QcmVzcyBDb250YWN0PC9zdHJvbmc+PGJyPgkKQ2hhbnRhbCBZYW5nL0xhdXJhIEFja2VybWFuPGJyPgpTY2h3YXJ0eiBDb21tdW5pY2F0aW9uczxicj4KNzgxLTY4NC0wNzcwPGJyPgplY2xpcHNlQHNjaHdhcnR6LXByLmNvbSA8YnI+Cjxicj4KPC9kaXY+CgoJCgkKPC9kaXY+CgoKCgoKCQkKPGRpdiBpZD0icmlnaHRjb2x1bW4iPgoJPGRpdiBjbGFzcz0ic2lkZWl0ZW0iPgoJCTxoNj5SZWxhdGVkIExpbmtzPC9oNj4KCQk8dWw+CgkJCTxsaT48YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Vjb24ub3JnIj5FY2xpcHNlQ29uPC9hPjwvbGk+CgkJPC91bD4JCgk8L2Rpdj4KCQoJCQo8L2Rpdj4KCkVPSFRNTDsKCgoJIyBHZW5lcmF0ZSB0aGUgd2ViIHBhZ2UKCSRBcHAtPmdlbmVyYXRlUGFnZSgkdGhlbWUsICRNZW51LCAkTmF2LCAkcGFnZUF1dGhvciwgJHBhZ2VLZXl3b3JkcywgJHBhZ2VUaXRsZSwgJGh0bWwpOwo/Pgo=