PGh0bWw+PGhlYWQ+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2RlZmF1bHRfc3R5bGUuY3NzIj4NCjx0aXRsZT5FY2xpcHNlIEZvdW5kYXRpb248L3RpdGxlPg0KPC9oZWFkPg0KPGJvZHkgdGV4dD0iIzAwMDAwMCIgYmdjb2xvcj0iI2ZmZmZmZiIgbGluaz0iIzAwMDBlZSIgdmxpbms9IiM1NTFhOGIiIGFsaW5rPSIjZmYwMDAwIj4NCjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz01IGNlbGxwYWRkaW5nPTIgd2lkdGg9IjEwMCUiID4NCiAgPHRyPiANCiAgICA8dGQgYWxpZ249bGVmdCB3aWR0aD0iNzIlIj4gPGZvbnQgY2xhc3M9aW5kZXh0b3A+IEJJUlQgUmVsZWFzZSAxLjAgPC9mb250Pjxicj4NCiAgICA8Zm9udCBjbGFzcz1pbmRleHN1Yj4mbmJzcDsgPC9mb250PjwvdGQ+DQogICAgPHRkIHdpZHRoPSIyOCUiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvSWRlYS5qcGciIGhlaWdodD04NiB3aWR0aD0xMjA+PC90ZD4NCiAgPC90cj4NCjwvdGFibGU+DQo8dGFibGUgYm9yZGVyPTAgY2VsbHNwYWNpbmc9NSBjZWxscGFkZGluZz0yIHdpZHRoPSIxMDAlIiA+DQogIDx0cj4gDQogICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzAwODBDMCI+PGI+PGZvbnQgY29sb3I9IiNGRkZGRkYiIGZhY2U9IkFyaWFsLEhlbHZldGljYSI+UHJlc3MgcmVsZWFzZTwvZm9udD48L2I+PC90ZD4NCiAgPC90cj4NCiAgPHRyPiANCiAgICA8dGQ+IDxicj4NCiAgICAgIDxoMSBBTElHTj0iQ0VOVEVSIj48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjE2LjBwdDtmb250LWZhbWlseTpBcmlhbDsiVGltZXMgTmV3IFJvbWFuIic+PGI+IA0KICAgICAgICBFY2xpcHNlIEJyaW5ncyBPcGVuIFNvdXJjZSB0byBCdXNpbmVzcyBJbnRlbGxpZ2VuY2UgTWFya2V0PC9iPjwvc3Bhbj48L2I+PC9oMT4NCiAgICAgIDx1bD4NCiAgICAgICAgPGxpPkVjbGlwc2UgQklSVCAxLjAgTGV2ZXJhZ2VzIExlYWRlcnNoaXAgd2l0aCBKYXZhIERldmVsb3BlcnMgdG8gSW50ZWdyYXRlIEFwcGxpY2F0aW9uIERldmVsb3BtZW50IGFuZCBCdXNpbmVzcyBJbnRlbGxpZ2VuY2U8L2xpPg0KICAgICAgPC91bD4gICAgICANCiAgICAgIDxQPk9UVEFXQSwgT05UQVJJTywgQ0FOQURBICZuZGFzaDsgSnVuZSA2LCAyMDA1ICZuZGFzaDsgVGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgYW4gb3BlbiBzb3VyY2UgY29tbXVuaXR5IGNvbW1pdHRlZCB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgYSB1bml2ZXJzYWwgZGV2ZWxvcG1lbnQgcGxhdGZvcm0sIHRvZGF5IGFubm91bmNlZCB0aGF0IHRoZSBCdXNpbmVzcyBJbnRlbGxpZ2VuY2UgYW5kIFJlcG9ydGluZyBUb29scyAoQklSVCkgcHJvamVjdCB2ZXJzaW9uIDEuMCBpcyBub3cgDQoJICBnZW5lcmFsbHkgYXZhaWxhYmxlLiBCSVJUIDEuMCBtYXJrcyB0aGUgY3VsbWluYXRpb24gb2YgRWNsaXBzZSBjb21tdW5pdHkgcGFydGljaXBhdGlvbiBkdXJpbmcgd2hpY2ggDQoJICBodW5kcmVkcyBvZiBtZW1iZXJzIG9mIHRoZSBjb21tdW5pdHkgcHJvdmlkZWQgdGhlaXIgZmVlZGJhY2sgdG8gc2hhcGUgdGhlIGZ1dHVyZSBvZiB0aGUgcHJvamVjdC4gQklSVCANCgkgIGhhcyBiZWVuIGRvd25sb2FkZWQgOSwwMDAgdGltZXMgc2luY2UgYSBwcmV2aWV3IHZlcnNpb24gd2FzIG1hZGUgYXZhaWxhYmxlIGluIGxhdGUgRmVicnVhcnkuPC9wPg0KICAgICAgPFA+DQogICAgICBUaGUgZ29hbCBvZiBCSVJUIGlzIHRvIGFsbG93IEphdmEgZGV2ZWxvcGVycyB0byBlYXNpbHkgaW50ZWdyYXRlIGJ1c2luZXNzIGludGVsbGlnZW5jZSBhbmQgcmVwb3J0aW5nIGNhcGFiaWxpdHkgaW50byBlbnRlcnByaXNlIEphdmEgYXBwbGljYXRpb25zIGFuZCANCgkgIGNvbW1lcmNpYWwgcHJvZHVjdHMuIEJJUlQgd2FzIGNyZWF0ZWQgYXMgYSB0b3AgbGV2ZWwgRWNsaXBzZSBwcm9qZWN0IGluIFNlcHRlbWJlciAyMDA0LiBUaGUgcHJvamVjdCANCgkgIGlzIHBhcnQgb2YgdGhlIEVjbGlwc2Ugc3RyYXRlZ3kgdG8gcHJvdmlkZSBvcGVuIHNvdXJjZSB0b29scyBhbmQgZnJhbWV3b3JrcyB0aGF0IHNwYW4gdGhlIHNvZnR3YXJlIA0KCSAgZGV2ZWxvcG1lbnQgbGlmZWN5Y2xlLjwvcD4NCiAgICAgIDxQPg0KJmxkcXVvO0VjbGlwc2UmcnNxdW87cyBCSVJUIHByb2plY3QgZXhwbG9pdHMgdGhlIGNvbnZlcmdlbmNlIG9mIGFuYWx5dGljcyBhbmQgb3BlcmF0aW9ucyBpbiBhcHBsaWNhdGlvbiANCmRldmVsb3BtZW50LCB3aXRoIGl0cyB0cmVuZCB0b3dhcmQgZW1iZWRkaW5nIEJJIGZ1bmN0aW9uYWxpdHkgd2l0aGluIEphdmEgYXBwbGljYXRpb25zLiBJdCdzIHNhZmUgdG8gDQpzYXkgdGhhdCBhIHBvcnRpb24gb2YgSmF2YSBkZXZlbG9wZXJzIGFuZCB0aGVpciBvcmdhbml6YXRpb25zIHdpbGwgcHJlZmVyIGEgZnJlZSwgc3RhbmRhcmRzLWJhc2VkIA0KZXZlbG9wbWVudCB0b29sIHRvIGNvbW1lcmNpYWwtYmFzZWQgb3B0aW9ucy4mcmRxdW87DQo8YnI+PGVtPldheW5lIEVja2Vyc29uLCBkaXJlY3RvciBvZiByZXNlYXJjaCwgVERXSTwvZW0+PC9wPg0KICAgICAgPFA+JmxkcXVvO1RoZXJlJ3Mgbm8gZG91YnQgaW4gbXkgbWluZCB0aGF0IGFzIGZhciBhcyB0aGUgbWFqb3JpdHkgb2YgZW50ZXJwcmlzZSBkZXZlbG9wZXJzIGFyZSANCgkgIGNvbmNlcm5lZCwgRWNsaXBzZSBoYXMgd29uIC0gYXQgbGVhc3QsIG91dHNpZGUgb2YgTWljcm9zb2Z0J3Mgc3BoZXJlIG9mIGluZmx1ZW5jZS4gV2l0aCBtYWpvciANCgkgIHRvb2xzIHZlbmRvcnMgc3VjaCBhcyBBY3R1YXRlLCBCb3JsYW5kLCBCRUEgYW5kIFN5YmFzZSBsaW5pbmcgdXAgdG8gam9pbiBJQk0vUmF0aW9uYWwgaW4gcG9ydGluZyANCgkgIHRoZWlyIHRvb2xzIHRvIEVjbGlwc2UsIGEgdmlicmFudCBlY29sb2d5IG9mIHBsdWctaW5zLCBhbmQgYW4gYXJjaGl0ZWN0dXJlIGRlc2lnbmVkIGV4cGxpY2l0bHkgdG8gDQoJICBzdXBwb3J0IGV4dGVuc2liaWxpdHkgYW5kIGludGVncmF0aW9uLCBFY2xpcHNlIGlzIG1vcmUgdGhhbiBqdXN0IGEgZGV2ZWxvcG1lbnQgcGxhdGZvcm0sIGl0IGlzIGEgDQoJICBmdWxsIGxpZmUtY3ljbGUgcGxhdGZvcm0uJnJkcXVvOyA8YnI+DQogICAgICA8ZW0+Q2FybCBaZXRpZSZyc3F1bztzIEJsb2csIEZvcnJlc3RlciBSZXNlYXJjaCwgSW5jLiwgQXByaWwgMjAwNTwvZW0+PC9wPg0KICAgICAgPFA+QklSVCBiZW5lZml0cyBKYXZhIGRldmVsb3BlcnMgYnkgbWluaW1pemluZyB0aGUgdGltZSBhbmQgZWZmb3J0IGFzc29jaWF0ZWQgd2l0aCBoYW5kIGNvZGluZyBjb3JlIGFwcGxpY2F0aW9uIGZ1bmN0aW9ucyBzdWNoIGFzIHJlcG9ydGluZyBhbmQgYW5hbHlzaXMuIEJJUlQgZW5hYmxlcyBIVE1MIGFuZCBQREYgcmVwb3J0cyB0byBiZSBjcmVhdGVkIGluIGEgbWF0dGVyIG9mIGhvdXJzLCBhIGdyZWF0IGFsdGVybmF0aXZlIHRvIGNvZGluZyB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5IGZyb20gc2NyYXRjaCwgdXNpbmcgSmF2YVNlcnZlciBQYWdlcyAoSlNQKSBhbmQgSmF2YS4gVXNpbmcgQklSVCwgZGV2ZWxvcGVycyBhcmUgYWJsZSB0byBxdWlja2x5IHJlc3BvbmQgdG8gY2hhbmdlcyBpbiB1c2VyIHJlcXVpcmVtZW50cywgd2hpbGUgZGVsaXZlcmluZyBhbmQgbWFpbnRhaW5pbmcgZnVuY3Rpb25hbGx5IHJpY2gsIHBlcmZlY3RseSBmb3JtYXR0ZWQgcmVwb3J0cyB0byB0aGVpciBlbmQgdXNlcnMgaW4gZWl0aGVyIFBERiBvciBIVE1MIGZvcm1hdC48L3A+DQogICAgICA8UD5GdXJ0aGVybW9yZSwgQklSVCAxLjAgcHJvdmlkZXMgZXhjZWxsZW50IHN1cHBvcnQgZm9yIGludGVybmF0aW9uYWxpemF0aW9uIGFuZCBsb2NhbGl6YXRpb24gdG8gc2F2ZSB0aGUgZGV2ZWxvcGVyIHRpbWUgaW4gY3VzdG9taXppbmcgcmVwb3J0cyBmb3IgcGFydGljdWxhciBsYW5ndWFnZXMgYW5kIGxvY2FsZXMuIEZvciBpbnN0YW5jZSwgYSBzaW5nbGUgcmVwb3J0IGNhbiBiZSBjcmVhdGVkIHRoYXQgZGlzcGxheXMgc3RyaW5ncyBpbiB0aGUgZW5kIHVzZXIncyBsYW5ndWFnZS4gQklSVCBhbHNvIHByb3ZpZGVzIGxvY2FsZS1hd2FyZSBkYXRhIGZvcm1hdHRpbmcsIG1lYW5pbmcgdGhhdCBhIGRhdGUsIGN1cnJlbmN5IG9yIG51bWVyaWMgZm9ybWF0IGNhbiBiZSBhcHBsaWVkIHRvIGEgcmVwb3J0IGJhc2VkIG9uIHRoZSBlbmQgdXNlciZyc3F1bztzIGxvY2FsZSB3aXRoIGR5bmFtaWMgZm9ybWF0dGluZyBjb21wZW5zYXRpbmcgZm9yIHRoZSB0eXBpY2FsIGxlbmd0aHMgb2YgbGFuZ3VhZ2UgZGVzY3JpcHRvcnMgYnkgYXV0b21hdGljYWxseSBhZGp1c3RpbmcgdGhlIHNpemUgb2YgcmVwb3J0IGl0ZW1zIHRvIGZpdCB0aGVpciBjb250ZW50LiBUaGlzIGF2b2lkcyB0aGUgbmVlZCB0byB0ZXN0IGEgcmVwb3J0IHdpdGggZXZlcnkgcG9zc2libGUgdHJhbnNsYXRpb24uIFRoZSBSZXBvcnQgZGVzaWduZXIgaXMgYXZhaWxhYmxlIGluIENoaW5lc2UsIEVuZ2xpc2gsIEZyZW5jaCwgR2VybWFuLCBKYXBhbmVzZSwgS29yZWFuIGFuZCBTcGFuaXNoIGludGVyZmFjZXMuPC9wPg0KICAgICAgPFA+JmxkcXVvO0JJUlQgMS4wIGV4dGVuZHMgdGhlIEVjbGlwc2UgcGxhdGZvcm0gdG8gcHJvdmlkZSBpbmZyYXN0cnVjdHVyZSBhbmQgdG9vbHMgdGhhdCBhbGxvdyBhcHBsaWNhdGlvbiBkZXZlbG9wZXJzIHRvIGVhc2lseSBkZXNpZ24sIGdlbmVyYXRlIGFuZCBpbnRlZ3JhdGUgcmVwb3J0cyB3aXRoaW4gdGhlaXIgYXBwbGljYXRpb25zLCZyZHF1bzsgc2FpZCBNaWtlIE1pbGlua292aWNoLCBleGVjdXRpdmUgZGlyZWN0b3Igb2YgdGhlIEVjbGlwc2UgRm91bmRhdGlvbi4gJmxkcXVvO0JJUlQgaXMgYSBuYXR1cmFsIGV4dGVuc2lvbiBmb3IgRWNsaXBzZSBhbmQgaXQgc3VwcG9ydHMga2V5IHRoZW1lcyB3aXRoaW4gdGhlIG92ZXJhbGwgRWNsaXBzZSBjb21tdW5pdHkgd2hpY2ggaW5jbHVkZSBkZXNpZ25pbmcgZXh0ZW5zaWJsZSBmdW5jdGlvbmFsaXR5IGZvciBicm9hZCBjb21tdW5pdHkgYXBwZWFsIGFuZCBwcm92aWRpbmcgYSB0b29sIHRoYXQgaXMgZW50ZXJwcmlzZSByZWFkeSwgd2hpbGUgcmVtYWluaW5nIHNpbXBsZSB0byB1c2UuJnJkcXVvOzwvcD4NCiAgICAgIDxwPiBCSVJUIDEuMCBpbmNsdWRlczo8L3A+DQogICAgICA8dWw+DQogICAgICAgIDxsaT4gPHN0cm9uZz5FY2xpcHNlIFJlcG9ydCBEZXNpZ25lcjwvc3Ryb25nPjogYW4gRWNsaXBzZS1iYXNlZCBkZXNrdG9wIGF1dGhvcmluZyBlbnZpcm9ubWVudCB0aGF0IGdlbmVyYXRlcyByZXBvcnRzIGJhc2VkIG9uIGEgY29tcHJlaGVuc2l2ZSBYTUwtYmFzZWQgcmVwb3J0IGRlc2lnbi4gSW4gYWRkaXRpb24sIGl0IHByb3ZpZGVzIGEgcmljaCBidXNpbmVzcyBjaGFydCBnZW5lcmF0aW9uIGNhcGFiaWxpdHkuPC9saT4NCiAgICAgICAgPGxpPjxzdHJvbmc+IEVjbGlwc2UgUmVwb3J0IEVuZ2luZTo8L3N0cm9uZz4gZW5hYmxlcyByZXBvcnRzIHRvIGJlIGdlbmVyYXRlZCB3aXRoaW4gYW55IEphdmEgYXBwbGljYXRpb24gdXNpbmcgcmVwb3J0IGRlc2lnbnMgY3JlYXRlZCBieSB0aGUgRGVzaWduZXI8L2xpPg0KICAgICAgICA8bGk+IDxzdHJvbmc+Q29tcGxldGUgc2V0IG9mIEFQSXM8L3N0cm9uZz46IHByb3ZpZGUgdGhlIGFiaWxpdHkgdG8gaW50ZWdyYXRlIGFuZCBleHRlbmQgQklSVC4gPC9saT4NCiAgICAgIDwvdWw+ICAgICAgDQogICAgICA8cD5Nb3JlIGZlYXR1cmUgZGV0YWlsIGNhbiBiZSBmb3VuZCBieSB2aXNpdGluZyA8YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvYmlydC9pbnRyby8iIHRhcmdldD0iX3RvcCI+aHR0cDovL2VjbGlwc2Uub3JnL2JpcnQvaW50cm8vPC9hPi4gPC9wPg0KICAgICAgPHA+JmxkcXVvO0JJUlQgMS4wIGRlbGl2ZXJzIGFsbCBvZiB0aGUgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCBmb3IgdGhlIGRldmVsb3BlciB0byByYXBpZGx5IGRlc2lnbiwgdGVzdCBhbmQgZGVwbG95IHJlcG9ydHMgYW5kIGNoYXJ0cyB0aGF0IHNhdGlzZnkgY29tcGxleCBlbmQgdXNlciByZXF1aXJlbWVudHMsJnJkcXVvOyBzYWlkIE1hcmsgQ29nZ2lucywgbWVtYmVyIG9mIEVjbGlwc2UgRm91bmRhdGlvbiBCb2FyZC4gJmxkcXVvO1doaWxlIHRoZSBCSVJUIFByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUgaGFzIGxlYWQgdGhlIGVmZm9ydCB0byBkZWxpdmVyIEJJUlQgMS4wLCB0aGUgRWNsaXBzZSBjb21tdW5pdHkgaGFzIHJlZmluZWQgYW5kIHNoYXBlZCB0aGUgZmVhdHVyZSBzZXQgdG8gYmUgbW9yZSBjb21wcmVoZW5zaXZlIGFuZCBtb3JlIGV4dGVuc2libGUuJnJkcXVvOyA8L3A+DQogICAgICA8cD5Db21wYW5pZXMgYXJlIGFscmVhZHkgc3VwcG9ydGluZyBCSVJUOiA8L3A+DQogICAgICA8cD4mbGRxdW87QklSVCB3aWxsIGRlbW9uc3RyYXRlIHRoZSB2YWx1ZSBvZiBlbWJlZGRpbmcgQnVzaW5lc3MgSW50ZWxsaWdlbmNlIGFuZCByZXBvcnRpbmcgZnVuY3Rpb25hbGl0eSBpbnRvIGN1c3RvbSBhcHBsaWNhdGlvbnMgYW5kIGNvbW1lcmNpYWwgdG9vbHMgdG8gdGhlIE9wZW4gU291cmNlIGNvbW11bml0eSwmcmRxdW87IHNhaWQgUGV0ZSBDaXR0YWRpbmksIHByZXNpZGVudCBhbmQgQ0VPIG9mIEFjdHVhdGUgQ29ycG9yYXRpb24uICZsZHF1bztBY3R1YXRlIGlzIGxhdW5jaGluZyBBY3R1YXRlIEJJUlQgc2ltdWx0YW5lb3VzbHkgd2l0aCBFY2xpcHNlJnJzcXVvO3MgcmVsZWFzZSBvZiBCSVJUIDEuMCB0byBwcm92aWRlIHN1cHBvcnQsIG1haW50ZW5hbmNlIGFuZCBpbmRlbW5pZmljYXRpb24gc2VydmljZXMsIHdoaWNoIHdlIGhvcGUgd2lsbCBzcHVyIHRoZSBhZG9wdGlvbiBvZiBCSVJUIGJ5IGFkZHJlc3NpbmcgdGhlIGNvbW1vbiBjb25jZXJucyByZWxhdGVkIHRvIGFkb3B0aW5nIE9wZW4gU291cmNlIHRlY2hub2xvZ3kuJnJkcXVvOzwvcD4NCiAgICAgIDxwPiZxdW90O0JJUlQgMS4wIGlzIGZ1bmN0aW9uYWxseSBlcXVpdmFsZW50IHRvIG90aGVyIEJJIGFuZCByZXBvcnRpbmcgdGVjaG5vbG9neSB0aGF0IGlzIGF2YWlsYWJsZSB0b2RheSwgYW5kIHdpbGwgYmUgaW5jb3Jwb3JhdGVkIGludG8gdGhlIGZvcnRoY29taW5nIHJlbGVhc2Ugb2YgU2NhcGEgVGVzdCBhbmQgUGVyZm9ybWFuY2UgUGxhdGZvcm0gMy4yLCZxdW90OyBzYWlkIE1pa2UgTm9ybWFuLCBjaGllZiBleGVjdXRpdmUgYW5kIHByZXNpZGVudCBvZiBTY2FwYSBUZWNobm9sb2dpZXMuICZxdW90O0JJUlQgcmVwb3J0cyB3aWxsIGVuaGFuY2UgdGhlIHBvd2VyIG9mIG91ciB0ZXN0aW5nLCBkaWFnbm9zaXMgYW5kIG1vbml0b3JpbmcgY2FwYWJpbGl0aWVzIGFjcm9zcyBtdWx0aXBsZSBwb2ludHMgaW4gdGhlIGFwcGxpY2F0aW9uIGxpZmVjeWNsZSBieSBnaXZpbmcgdXNlcnMgaW5jcmVhc2VkIHZpc2liaWxpdHkgaW50byBhcHBsaWNhdGlvbiBwZXJmb3JtYW5jZS4mcXVvdDs8L3A+DQogICAgICA8cD4mcXVvdDtCSVJUIHdpbGwgYmUgbGV2ZXJhZ2VkIGluIG91ciBEb29yS2VlcGVyIHByb2R1Y3QgdG8gbWVyZ2UgZGF0YSBmcm9tIFRlbGVsb2dpYyBET09SUyZyZWc7IGFuZCB0aGUgUmF0aW9uYWwgU29mdHdhcmUgRGV2ZWxvcG1lbnQgUGxhdGZvcm0gaW4gb3JkZXIgdG8gcHJvdmlkZSBpbnRlZ3JhdGVkIHJlcG9ydHMgd2hpY2ggZW5hYmxlIHRlYW1zIHRvIGVuc3VyZSBkZXNpZ25zIG1lZXQgcmVxdWlyZW1lbnRzLCZxdW90OyBzYWlkIENvcnkgQmlhbG93YXMsIGRpcmVjdG9yIG9mIFByb2R1Y3QgRGV2ZWxvcG1lbnQgYXQgRW1iZWRkZWRQbHVzLiAmcXVvdDtFbmQgdXNlcnMgd2lsbCBiZSBwcmVzZW50ZWQgd2l0aCByaWNobHkgZm9ybWF0dGVkIEhUTUwgcmVwb3J0cyB0aGF0IHNlYW1sZXNzbHkgcHJlc2VudCBpbmZvcm1hdGlvbiBmcm9tIGJvdGggc291cmNlcy4gVGhlIHByb2Nlc3Mgb2YgaW52ZXN0aWdhdGlvbiBvZiBCSVJUIHRvIGEgd29ya2luZyBwcm90b3R5cGUgaW4gRG9vcktlZXBlciB0b29rIGp1c3Qgc2l4IHdlZWtzLiZxdW90OzwvcD4NCiAgICAgIDxwPiZxdW90O1dlIGhhdmUgYWxyZWFkeSBpbmNvcnBvcmF0ZWQgYSBwcmV2aWV3IGJ1aWxkIG9mIEJJUlQgaW50byBJbm5vb3ByYWN0J3MgWW94b3MgRWNsaXBzZSBEaXN0cmlidXRpb24sIGFuZCBhcmUgYWxyZWFkeSBwbGFubmluZyB0byBpbmNsdWRlIEJJUlQgMS4wIG5vdyB0aGF0IGl0IGlzIGF2YWlsYWJsZSZxdW90Oywgc2FpZCBFcmljIHZvbiBkZXIgSGV5ZGVuLCBtYW5hZ2luZyBkaXJlY3RvciBvZiBJbm5vb3ByYWN0LiAmcXVvdDtCSVJUIHdpbGwgYmUgZXZlbiBtb3JlIHdpZGVseSBhZG9wdGVkIG9uY2UgZGlzdHJpYnV0ZWQgaW4gWW94b3MsIGVuYWJsaW5nIEJ1c2luZXNzIEludGVsbGlnZW5jZSBhbmQgcmVwb3J0aW5nIGZ1bmN0aW9uYWxpdHkgdG8gYmUgcmFwaWRseSBkZXZlbG9wZWQgdG8gYWRkIHZhbHVlIHRvIG1hbnkgdHlwZXMgb2YgYXBwbGljYXRpb25zIGFuZCB0aGVpciBlbmQgdXNlcnMuJnF1b3Q7PC9wPg0KICAgICAgPHA+PHN0cm9uZz5UbyBGaW5kIE91dCBNb3JlPC9zdHJvbmc+CQ0KCSAgPGJyPiAgVGhvc2Ugd2hvIHdpc2ggdG8gZG93bmxvYWQgQklSVCAxLjAsIGJlY29tZSBpbnZvbHZlZCBpbiB0aGUgZnV0dXJlIGRldmVsb3BtZW50IG9mIEJJUlQgb3Igd2lzaCB0byBwcm92aWRlIGZlZWRiYWNrIHZpYSB0aGUgQklSVCBuZXdzZ3JvdXAgY2FuIGRvIHNvIGJ5IHZpc2l0aW5nIDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYmlydCIgdGFyZ2V0PSJfdG9wIj53d3cuZWNsaXBzZS5vcmcvYmlydDwvYT4uIDxicj4NCiAgICAgIDwvcD4NCiAgICAgIDwvcD48L3RkPg0KICA8L3RyPg0KPC90YWJsZT4NCg0KoA0KDQoNCjx0YWJsZSB3aWR0aD0iMTAwJSIgY2VsbHNwYWNpbmc9MCBjZWxscGFkZGluZz0zIGFsaWduPWNlbnRlcj4NCgkJPHRyIGJnY29sb3I9IiM5OTk5OTkiPg0KCQkNCiAgICA8dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIiBiZ2NvbG9yPSIjMDA4MEMwIj48Yj48Zm9udCBjb2xvcj0iI0ZGRkZGRiIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhIj5BYm91dCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uPC9mb250PjwvYj48L3RkPg0KCQk8L1RSPg0KCQk8VFI+DQoJCTx0ZCBhbGlnbj1sZWZ0Pg0KCQk8VEFCTEUgIHdpZHRoPSIxMDAlIiBDRUxMU1BBQ0lORz0wIENFTExQQURESU5HPTM+DQoJCTx0cj4NCgkJICA8dGQ+IA0KICAgICAgICAgICAgPFA+IEVjbGlwc2UgaXMgYW4gb3BlbiBzb3VyY2UgY29tbXVuaXR5IHdob3NlIHByb2plY3RzIGFyZSBmb2N1c2VkIG9uIHByb3ZpZGluZyBhbiANCgkJCWV4dGVuc2libGUgZGV2ZWxvcG1lbnQgcGxhdGZvcm0gYW5kIGFwcGxpY2F0aW9uIGZyYW1ld29ya3MgZm9yIGJ1aWxkaW5nIHNvZnR3YXJlLiAgDQoJCQlFY2xpcHNlIHByb3ZpZGVzIGV4dGVuc2libGUgdG9vbHMgYW5kIGZyYW1ld29ya3MgdGhhdCBzcGFuIHRoZSBzb2Z0d2FyZSBkZXZlbG9wbWVudA0KCQkJIGxpZmVjeWNsZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIG1vZGVsaW5nLCBsYW5ndWFnZSBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgZm9yIA0KCQkJIEphdmEsIEMvQysrIGFuZCBvdGhlcnMsIHRlc3RpbmcgYW5kIHBlcmZvcm1hbmNlLCBidXNpbmVzcyBpbnRlbGxpZ2VuY2UsIHJpY2ggY2xpZW50IA0KCQkJIGFwcGxpY2F0aW9ucyBhbmQgZW1iZWRkZWQgZGV2ZWxvcG1lbnQuIEEgbGFyZ2UsIHZpYnJhbnQgZWNvc3lzdGVtIG9mIG1ham9yIHRlY2hub2xvZ3kgDQoJCQkgdmVuZG9ycywgaW5ub3ZhdGl2ZSBzdGFydC11cHMsIHVuaXZlcnNpdGllcyBhbmQgcmVzZWFyY2ggaW5zdGl0dXRpb25zIGFuZCBpbmRpdmlkdWFscyANCgkJCSBleHRlbmQsIGNvbXBsZW1lbnQgYW5kIHN1cHBvcnQgdGhlIEVjbGlwc2UgUGxhdGZvcm0uPC9wPg0KICAgICAgICAgICAgPFA+IFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgYSBub3QtZm9yLXByb2ZpdCwgbWVtYmVyIHN1cHBvcnRlZCBjb3Jwb3JhdGlvbiB0aGF0IGhvc3RzIHRoZSBFY2xpcHNlIHByb2plY3RzLiBGdWxsIGRldGFpbHMgb2YgRWNsaXBzZSBhbmQgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBhcmUgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIiB0YXJnZXQ9Il90b3AiPnd3dy5lY2xpcHNlLm9yZzwvYT4gPC9wPjwvdGQ+DQoJCTwvdHI+DQogICAgICAgIDwvdGFibGU+PC90YWJsZT6gDQoJPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTMgYWxpZ249Y2VudGVyPg0KCQk8dHIgYmdjb2xvcj0iIzk5OTk5OSI+DQogICAgPHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCIgYmdjb2xvcj0iIzAwODBDMCI+PGI+PGZvbnQgY29sb3I9IiNGRkZGRkYiIGZhY2U9IkFyaWFsLEhlbHZldGljYSI+TWVkaWEgDQogICAgICBjb250YWN0PC9mb250PjwvYj48L3RkPg0KCQk8L1RSPg0KPC90YWJsZT4NCgkJDQo8dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMCIgY2VsbHNwYWNpbmc9IjUiPg0KICA8dHI+DQogICAgPHRkID4gDQogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPg0KICAgICAgICA8cD5UYW5pYSBUcmVqbzxicj4NCiAgICAgICAgU2Nod2FydHogQ29tbXVuaWNhdGlvbnM8YnI+DQogICAgICAgIDc4MS02ODQtMDc3MDxicj4NCiAgICAgICAgPGEgaHJlZj0ibWFpbHRvOmVjbGlwc2VAc2Nod2FydHotcHIuY29tIj5lY2xpcHNlQHNjaHdhcnR6LXByLmNvbTwvYT48L3A+DQogICAgICA8L2Rpdj4NCiAgICA8L3RkPg0KICA8L3RyPg0KPC90YWJsZT4NCgkJPFRBQkxFICB3aWR0aD0iMTAwJSIgQ0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0zPg0KCQk8dHI+DQoJCSAgPHRkPiANCiAgICAgICAgICAgIDxociB3aWR0aD0iODUlIj4NCiAgICAgIDxQPkJyYW5kIG9yIHByb2R1Y3QgbmFtZXMgYXJlIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvciB0cmFkZW1hcmtzIG9mIHRoZWlyIA0KICAgICAgICByZXNwZWN0aXZlIGhvbGRlcnMuIEVjbGlwc2UgaXMgYSB0cmFkZW1hcmsgb2YgRWNsaXBzZSBGb3VuZGF0aW9uIEluYy4gSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyANCiAgICAgICAgb3IgcmVnaXN0ZXJlZCB0cmFkZW1hcmtzIG9mIFN1biBNaWNyb3N5c3RlbXMsIEluYy4gaW4gdGhlIFVuaXRlZCBTdGF0ZXMgDQogICAgICAgIGFuZCBvdGhlciBjb3VudHJpZXMuPGJyPg0KICAgICAgPC9QPg0KPGhyIHdpZHRoPSI4NSUiPg0KICAgIDwvdGQ+DQoJCTwvdHI+DQogICAgICAgIDwvdGFibGU+oCAgICAgICAgDQqgDQo8L2JvZHk+PC9odG1sPg0K