PGh0bWw+CiAgIDxoZWFkPgogICAgICAgPHRpdGxlPk5leHQgR2VuZXJhdGlvbiBKYXZhIFRlc3Rpbmc8L3RpdGxlPgoKICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idGVzdG5nLmNzcyIgdHlwZT0idGV4dC9jc3MiIC8+CiAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vYmV1c3QuY29tL2JldXN0LmNzcyIgIC8+CiAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vYmV1c3QuY29tL3ByZXR0aWZ5LmpzIj48L3NjcmlwdD4KICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly90ZXN0bmcub3JnL2RvYy9iYW5uZXIuanMiPjwvc2NyaXB0PgogICAgIDwvaGVhZD4KCjxib2R5IG9ubG9hZD0icHJldHR5UHJpbnQoKSI+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgIGRpc3BsYXlNZW51KCJib29rLmh0bWwiKTsKPC9zY3JpcHQ+CgoKPHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYW1hem9uLmNvbS9OZXh0LUdlbmVyYXRpb24tSmF2YS1UZXN0aW5nLUFkdmFuY2VkL2RwLzAzMjE1MDMxMDQvcmVmPXBkX2Jic19zcl8xLzEwNC03MTA1ODk3LTExODc5MjM/aWU9VVRGOCZzPWJvb2tzJnFpZD0xMTkzNDE3MTEwJnNyPTgtMSI+CjxpbWcgYm9yZGVyPSIwIiBzcmM9Imh0dHA6Ly9iZXVzdC5jb20vcGljcy9ib29rLWNvdmVyLmpwZyIgLz4KPC9hPgo8L3A+CgpPdXIgYm9vayBpcyBub3cgPGEgaHJlZj0iaHR0cDovL3d3dy5hbWF6b24uY29tL05leHQtR2VuZXJhdGlvbi1KYXZhLVRlc3RpbmctQWR2YW5jZWQvZHAvMDMyMTUwMzEwNC9yZWY9cGRfYmJzX3NyXzEvMTA0LTcxMDU4OTctMTE4NzkyMz9pZT1VVEY4JnM9Ym9va3MmcWlkPTExOTM0MTcxMTAmc3I9OC0xIj5hdmFpbGFibGUgZnJvbSBBbWF6b248L2E+IGFuZCB2YXJpb3VzIG90aGVyIHJldGFpbCBzdG9yZXMgKGNoZWNrIG91dCA8YSBocmVmPSJib29rLXRvYy5odG1sIj50aGUgdGFibGUgb2YgY29udGVudHM8L2E+KS4KCjxQPgoKPGI+Qm9vayBEZXNjcmlwdGlvbjwvYj48YnI+CiA8cD5FbnRlcnByaXNlIEphdmEgZGV2ZWxvcGVycyBtdXN0IGFjaGlldmUgYnJvYWRlciwgZGVlcGVyIHRlc3QgY292ZXJhZ2UsIGdvaW5nIGJleW9uZCB1bml0IHRlc3RpbmcgdG8gaW1wbGVtZW50IGZ1bmN0aW9uYWwgYW5kIGludGVncmF0aW9uIHRlc3Rpbmcgd2l0aCBzeXN0ZW1hdGljIGFjY2VwdGFuY2UuIDxiPjxpPk5leHQgR2VuZXJhdGlvbiBKYXZhIFRlc3Rpbmc8L2k+PC9iPiBpbnRyb2R1Y2VzIGJyZWFrdGhyb3VnaCBKYXZhIHRlc3RpbmcgdGVjaG5pcXVlcyBhbmQgVGVzdE5HLCBhIHBvd2VyZnVsIG9wZW4gc291cmNlIEphdmEgdGVzdGluZyBwbGF0Zm9ybS48L3A+PHA+Q+lkcmljIEJldXN0LCBUZXN0TkcncyBjcmVhdG9yLCBhbmQgbGVhZGluZyBKYXZhIGRldmVsb3BlciBIYW5pIFN1bGVpbWFuLCBwcmVzZW50IHBvd2VyZnVsLCBmbGV4aWJsZSB0ZXN0aW5nIHBhdHRlcm5zIHRoYXQgd2lsbCB3b3JrIHdpdGggdmlydHVhbGx5IGFueSB0ZXN0aW5nIHRvb2wsIGZyYW1ld29yaywgb3IgbGFuZ3VhZ2UuIFRoZXkgc2hvdyBob3cgdG8gbGV2ZXJhZ2Uga2V5IEphdmEgcGxhdGZvcm0gaW1wcm92ZW1lbnRzIGRlc2lnbmVkIHRvIGZhY2lsaXRhdGUgZWZmZWN0aXZlIHRlc3RpbmcsIHN1Y2ggYXMgZGVwZW5kZW5jeSBpbmplY3Rpb24gYW5kIG1vY2sgb2JqZWN0cy4gVGhleSBhbHNvIHRob3JvdWdobHkgaW50cm9kdWNlIFRlc3RORywgZGVtb25zdHJhdGluZyBob3cgaXQgb3ZlcmNvbWVzIHRoZSBsaW1pdGF0aW9ucyBvZiBvbGRlciBmcmFtZXdvcmtzIGFuZCBlbmFibGVzIG5ldyB0ZWNobmlxdWVzLCBtYWtpbmcgaXQgZmFyIGVhc2llciB0byB0ZXN0IHRvZGF5J3MgY29tcGxleCBzb2Z0d2FyZSBzeXN0ZW1zLjwvcD48cD5QcmFnbWF0aWMgYW5kIHJlc3VsdHMtZm9jdXNlZCwgPGI+PGk+TmV4dCBHZW5lcmF0aW9uIEphdmEgVGVzdGluZzwvaT48L2I+IHdpbGwgaGVscCBKYXZhIGRldmVsb3BlcnMgYnVpbGQgbW9yZSByb2J1c3QhCiBjb2RlIGZvciB0b2RheSdzIG1pc3Npb24tY3JpdGljYWwgZW52aXJvbm1lbnRzLjwvcD48cD5UaGlzIGJvb2s8L3A+PHVsPjxsaT5JbGx1bWluYXRlcyB0aGUgdHJhZGVvZmZzIGFzc29jaWF0ZWQgd2l0aCB0ZXN0aW5nLCBzbyB5b3UgY2FuIG1ha2UgYmV0dGVyIGRlY2lzaW9ucyBhYm91dCB3aGF0IGFuZCBob3cgdG8gdGVzdDwvbGk+PGxpPkludHJvZHVjZXMgVGVzdE5HLCBleHBsYWlucyBpdHMgZ29hbHMgYW5kIGZlYXR1cmVzLCBhbmQgc2hvd3MgaG93IHRvIGFwcGx5IHRoZW0gaW4gcmVhbC13b3JsZCBlbnZpcm9ubWVudHM8L2xpPjxsaT5TaG93cyBob3cgdG8gaW50ZWdyYXRlIFRlc3RORyB3aXRoIHlvdXIgZXhpc3RpbmcgY29kZSwgZGV2ZWxvcG1lbnQgZnJhbWV3b3JrcywgYW5kIHNvZnR3YXJlIGxpYnJhcmllcyA8L2xpPjxsaT5EZW1vbnN0cmF0ZXMgaG93IHRvIHRlc3QgY3J1Y2lhbCBjb2RlIGZlYXR1cmVzLCBzdWNoIGFzIGVuY2Fwc3VsYXRpb24sIHN0YXRlIHNoYXJpbmcsIHNjb3BlcywgYW5kIHRocmVhZCBzYWZldHk8L2xpPjxsaT5TaG93cyBob3cgdG8gdGVzdCBhcHBsaWNhdGlvbiBlbGVtZW50cywgaW5jbHVkaW5nIEphdmFFRSBBUElzLCBkYXRhYmFzZXMsIFdlYiBwYWdlcywgYW5kIFhNTCBmaWxlcyA8L2xpPjxsaT5QcmVzZW50cyBhZHZhbmNlZCB0ZWNobmlxdWVzOiB0ZXN0aW5nIHBhcnRpYWwgZmFpbHVyZXMsIGZhY3RvcmllcywgZGVwZW5kZW50IHRlc3RpbmcsIHJlbW90ZSBpbnZvY2F0aW9uLCBjbHVzdGVyLWJhc2VkIHRlc3QgZmFybXMsIGFuZCBtb3JlPC9saT48bGk+V2Fsa3MgdGhyb3VnaCBpbnN0YWxsaW5nIGFuZCB1c2luZyBUZXN0TkcgcGx1Zy1pbnMgZm9yIEVjbGlwc2UsIGFuZCBJREVBPC9saT48bGk+Q29udGFpbnMgZXh0ZW5zaXZlIGNvZGUgZXhhbXBsZXM8L2xpPjwvdWw+PHA+V2hldGhlciB5b3UgdXNlIFRlc3RORywgSlVuaXQsIG9yIGFub3RoZXIgdGVzdGluZyBmcmFtZXdvcmssIHRoZSAhCiB0ZXN0aW5nIGRlc2lnbiBwYXR0ZXJucyBwcmVzZW50ZWQgaW4gdGhpcyBib29rIHdpbGwgc2hvdyB5b3UgaG93IHRvIGltCnByb3ZlIHlvdXIgdGVzdHMgYnkgZ2l2aW5nIHlvdSBjb25jcmV0ZSBhZHZpY2Ugb24gaG93IHRvIG1ha2UgeW91ciBjb2RlIGFuZCB5b3VyIGRlc2lnbiBtb3JlIHRlc3RhYmxlLjwvcD4KCgo8YnI+PGJyPgogICAgIDxiPkFib3V0IHRoZSBBdXRob3I8L2I+PGJyPgogPHA+PGI+Q+lkcmljIEJldXN0LDwvYj4gYSBzZW5pb3Igc29mdHdhcmUgZW5naW5lZXIgYXQgR29vZ2xlLCBpcyBhbiBhY3RpdmUgbWVtYmVyIG9mIHRoZSBKYXZhIENvbW11bml0eSBQcm9jZXNzIHdobyBoYXMgYmVlbiBleHRlbnNpdmVseSBpbnZvbHZlZCBpbiB0aGUgZGV2ZWxvcG1lbnQgb2YgdGhlIGxhdGVzdCBKYXZhIHJlbGVhc2UuIEhlIGlzIHRoZSBjcmVhdG9yIGFuZCBtYWluIGNvbnRyaWJ1dG9yIHRvIHRoZSBUZXN0TkcgcHJvamVjdC48L3A+PHA+PGI+SGFuaSBTdWxlaW1hbjwvYj4gaXMgQ1RPIG9mIEZvcm1pY2FyeSwgYSBjb25zdWx0aW5nIGFuZCBwb3J0YWwgY29tcGFueSBzcGVjaWFsaXppbmcgaW4gZmluYW5jaWFsIGFwcGxpY2F0aW9ucy4gSGUgaXMgb25lIG9mIHR3byBpbmRpdmlkdWFsIG1lbWJlcnMgd2hvIGhhcyBiZWVuIGVsZWN0ZWQgdG8gdGhlIEV4ZWN1dGl2ZSBDb21taXR0ZWUgb2YgdGhlIEphdmEgQ29tbXVuaXR5IFByb2Nlc3MuPC9wPgoKCgo8c2NyaXB0IHNyYz0iaHR0cDovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS91cmNoaW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cl91YWNjdCA9ICJVQS0yMzgyMTUtMiI7CnVyY2hpblRyYWNrZXIoKTsKPC9zY3JpcHQ+CgoKPC9ib2R5PgoKPC9odG1sPgog