PGh0bWw+PGhlYWQ+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2RlZmF1bHRfc3R5bGUuY3NzIj4NCjx0aXRsZT5FY2xpcHNlLm9yZyBjb25zb3J0aXVtPC90aXRsZT48L2hlYWQ+DQo8Ym9keSB0ZXh0PSIjMDAwMDAwIiBiZ2NvbG9yPSIjZmZmZmZmIiBsaW5rPSIjMDAwMGVlIiB2bGluaz0iIzU1MWE4YiIgYWxpbms9IiNmZjAwMDAiPg0KPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTUgY2VsbHBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgPg0KICA8dHI+IA0KICAgIDx0ZCBhbGlnbj1sZWZ0IHdpZHRoPSI3MiUiPiA8Zm9udCBjbGFzcz1pbmRleHRvcD4gaHlhZGVzIHByb2plY3Q8L2ZvbnQ+PGJyPg0KICAgICAgPGZvbnQgY2xhc3M9aW5kZXhzdWI+IDwvZm9udD48L3RkPg0KICAgIDx0ZCB3aWR0aD0iMjglIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL0lkZWEuanBnIiBoZWlnaHQ9ODYgd2lkdGg9MTIwPjwvdGQ+DQogIDwvdHI+DQo8L3RhYmxlPg0KPHRhYmxlIGJvcmRlcj0wIGNlbGxzcGFjaW5nPTUgY2VsbHBhZGRpbmc9MiB3aWR0aD0iMTAwJSIgPg0KICA8dHI+IA0KICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMwMDgwQzAiPjxiPjxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPlByZXNzIHJlbGVhc2U8L2ZvbnQ+PC9iPjwvdGQ+DQogIDwvdHI+DQogIDx0cj4gDQogICAgPHRkPiA8YnI+DQogICAgICA8aDEgQUxJR049IkNFTlRFUiI+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxNi4wcHQ7Zm9udC1mYW1pbHk6QXJpYWw7IlRpbWVzIE5ldyBSb21hbiInPjxiPiANCiAgICAgICAgTmV3IEVjbGlwc2UgUHJvamVjdCBBZGRyZXNzZXMgQXV0b21hdGVkIFNvZnR3YXJlIFF1YWxpdHkgPC9iPjwvc3Bhbj48L2I+PC9oMT4NCiAgICAgIDxVTD4NCiAgICAgICAgPExJPk9wZW4tc291cmNlIGZyYW1ld29yayBpcyBiYXNpcyBmb3IgZXh0ZW5kaW5nIGRldmVsb3BtZW50IHBsYXRmb3JtIA0KCQl0byBzdXBwb3J0IGRlcGxveW1lbnQgZXZhbHVhdGlvbjwvTEk+DQogICAgICAgIDxMST4mcXVvdDtQcm9qZWN0IEh5YWRlcyZxdW90OyBCdWlsZHMgdXBvbiBFY2xpcHNlIE1vZGVsaW5nIEZyYW1ld29yazwvTEk+DQogICAgICA8L1VMPg0KCQ0KICAgICAgPFA+RGVjZW1iZXIgMTcsIDIwMDIgLSBFY2xpcHNlIGhhcyBsYXVuY2hlZCBhIG5ldyBvcGVuLXNvdXJjZSBwcm9qZWN0IGZvY3VzZWQgDQogICAgICAgIG9uIGZ1bGwgbGlmZWN5Y2xlIGludGVncmF0aW9uIG9mIGFkdmFuY2VkIHRlc3QgYW5kIHRyYWNlIGZhY2lsaXRpZXMgZm9yIA0KICAgICAgICBBdXRvbWF0ZWQgU29mdHdhcmUgUXVhbGl0eS4gRWNsaXBzZSBtZW1iZXIgY29tcGFuaWVzIElCTSwgUGFyYXNvZnQsIFJhdGlvbmFsIA0KICAgICAgICBTb2Z0d2FyZSwgU2NhcGEgVGVjaG5vbG9naWVzIGFuZCBUZWxlbG9naWMgaGF2ZSBvcmdhbml6ZWQgdGhlIHByb2plY3QuIA0KICAgICAgICBUaGUgSHlhZGVzIHByb2plY3QgZnJhbWV3b3JrIHdpbGwgbWFrZSBpdCBlYXNpZXIgdG8gaW50ZWdyYXRlIGEgYnJvYWQgDQogICAgICAgIHJhbmdlIG9mIGZ1bmN0aW9uYWwgdmVyaWZpY2F0aW9uLCBxdWFsaXR5IGFzc2Vzc21lbnQgYW5kIGxvYWQgdGVzdGluZyANCiAgICAgICAgdG9vbHMgd2l0aCB0aGUgRWNsaXBzZSBQbGF0Zm9ybSdzIHdvcmtiZW5jaCBhbmQgb3RoZXIgdG9vbHMuIFRoZSBFY2xpcHNlIA0KICAgICAgICBQbGF0Zm9ybSBhbmQgaW5mb3JtYXRpb24gb24gUHJvamVjdCBIeWFkZXMsIHRoZSBFY2xpcHNlIEF1dG9tYXRlZCBTb2Z0d2FyZSANCiAgICAgICAgUXVhbGl0eSBldmFsdWF0aW9uIGZyYW1ld29yaywgYXJlIGltbWVkaWF0ZWx5IHZpYSBkb3dubG9hZCBmcm9tIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcuIA0KICAgICAgPC9wPg0KICAgICAgPFA+RWNsaXBzZSBpcyBhIHVuaXZlcnNhbCB0b29scyBwbGF0Zm9ybSwgbm93IGluIGl0cyBzZWNvbmQgbWFqb3IgcmVsZWFzZS4gUmVjZW50IGVuaGFuY2VtZW50cyBpbmNsdWRlIGludGVybmF0aW9uYWxpemF0aW9uIGZlYXR1cmVzIGZvciB3b3JsZHdpZGUgdXNlLCBhbmQgbmV3IHRvb2xzIGludGVncmF0aW9uIHN1cHBvcnQgZm9yIGRldmVsb3BtZW50IHdvcmtzdGF0aW9ucyBydW5uaW5nIFFOWK4gb24gSW50ZWwgWDg2riBiYXNlZCBjb21wdXRlcnMsIFN1biBTb2xhcmlzriBvbiBTUEFSQ64gd29ya3N0YXRpb25zLCBIUC1VWK4gb24gSFA5MDAwriBQQS1SSVNDIHdvcmtzdGF0aW9ucywgSUJNIEFJWK4gb24gUG93ZXJQQ64gd29ya3N0YXRpb25zIGFuZCBzdXBwb3J0IGZvciBXaW5kb3dzriBhbmQgTGludXiuIG9uIEludGVsIFg4Nq4gYmFzZWQgY29tcHV0ZXJzLjwvcD4NCiAgICAgIDxQPkRldmVsb3BlcnMgbmVlZCBtb3JlIGNvbXByZWhlbnNpdmUgdG9vbHMgdG8gaGVscCByZXNvbHZlIGlzc3VlcyBjb21tb25seSBlbmNvdW50ZXJlZCB3aXRoIHRvZGF5J3MgY29tcGxleCBwcm9qZWN0cy4gUHJvamVjdCBIeWFkZXMgaW5jbHVkZXMgc2V2ZXJhbCBleHRlbnNpb25zIHRvIHRoZSBjb3JlIEVjbGlwc2UgUGxhdGZvcm0gdGhhdCBlYXNlIHRoZSBpbnRlZ3JhdGlvbiBvZiB0aGVzZSB0b29scy4gVGhlIGNvcmUgb2YgdGhpcyB3b3JrIHN0YXJ0cyB3aXRoIHRlY2hub2xvZ3kgZG9uYXRlZCB0byBFY2xpcHNlLCBhbmQgaW50byBvcGVuLXNvdXJjZSBieSBJQk0gYW5kIFNjYXBhIFRlY2hub2xvZ2llcy4gUGFyYXNvZnQgYW5kIG90aGVycyBhcmUgcGxhbm5pbmcgdG8gZG9uYXRlIGFkZGl0aW9uYWwgY29kZSBhc3NldHMuIDwvcD4NCiAgICAgIDxQPkh5YWRlcyBpcyB0aGUgZmlyc3Qgb2YgbWFueSBwcm9qZWN0cyB0aGF0IHdpbGwgbGVhZCB0byBlc3RhYmxpc2hpbmcgYW4gIkkqRSIsIG9yIGludGVncmF0ZWQgIkV2ZXJ5dGhpbmciIGVudmlyb25tZW50IHRoYXQgdGFrZSB0b29scyBpbnRlZ3JhdGlvbiBiZXlvbmQgdGhlIGNvbmZpbmVzIG9mIGEgdHJhZGl0aW9uYWwgSURFIHRvIGZ1bGwgbGlmZWN5Y2xlIHN1cHBvcnQgZm9yIHByb2plY3RzLiBIeWFkZXMgYW5kIHRoZSBFY2xpcHNlIHBsYXRmb3JtIGl0IGlzIGJhc2VkIHVwb24gd2lsbCBub3QgcmVwbGljYXRlIG9mZmVyaW5ncyBmcm9tIG90aGVyIHRlc3QgYW5kIHRyYWNlIGRvbWFpbnMuIFNlcGFyYXRlIEh5YWRlcyBiYXNlZCBBU1Egb2ZmZXJpbmdzIHdpbGwgd29yayB3aXRoIG90aGVyIGJlc3Qgb2YgYnJlZWQgZGV2ZWxvcG1lbnQgdG9vbHMgdGhyb3VnaCBFY2xpcHNlLiA8L3A+DQogICAgICA8UD5XaXRoIGEgc2hhcmVkIGZyYW1ld29yayBvZiBvcGVuIGludGVncmF0aW9uIHRlY2hub2xvZ3ksIEh5YWRlcyBzdXBwb3J0cyBiZXR0ZXIgdG9vbCBpbnRlcm9wZXJhYmlsaXR5IGFuZCBoZWxwcyBkZXZlbG9wZXJzIGF2b2lkIHZlbmRvciBsb2NrLWluLCBzdGltdWxhdGluZyBlbmhhbmNlZCBjb21wZXRpdGlvbi4gQXMgYSBiYXNpYyBpbnRlZ3JhdGlvbiBmcmFtZXdvcmssIEh5YWRlcyBkb2VzIG5vdCBzcGVjaWZ5IGEgdGVzdGluZyBtZXRob2RvbG9neSwgbGVhdmluZyB0aGUgZmxleGliaWxpdHkgYW5kIHBsZW50eSBvZiBzY29wZSBmb3Igc2VydmljZXMgY29tcGFuaWVzIHRvIGFkZCB2YWx1ZS4gVGhpcyB3aWxsIGFsbG93IEh5YWRlcyBiYXNlZCB0b29scyB0byBjb3ZlciBhIGZ1bGwgcmFuZ2Ugb2YgQXV0b21hdGVkIFNvZnR3YXJlIFF1YWxpdHkgYXNzdXJhbmNlIHByb2Nlc3NlcyBmcm9tIHN0YXRpYyBjb2RlIGFuYWx5c2lzIHRocm91Z2ggYXV0b21hdGVkIGZ1bmN0aW9uYWwgdGVzdGluZyBhbmQgZGVwbG95bWVudCBwZXJmb3JtYW5jZSB0ZXN0aW5nLiA8L3A+DQogICAgICA8UD5IeWFkZXMgd2lsbCBpbXBsZW1lbnQgYW4gT01HIGRlZmluZWQgVU1MIHRlc3RpbmcgcHJvZmlsZSBpbiB3aGljaCBUZXN0IENhc2UsIFRlc3QgVHJhY2UsIFRlc3QgT2JqZWN0aXZlIGFuZCBWZXJpZmljYXRpb24gYXJ0aWZhY3RzIGFyZSBtYWludGFpbmVkLiBUZXN0IG9iamVjdGl2ZXMgcmVsYXRlZCB0byBwZXJmb3JtYW5jZSBhbmQgc2NhbGFiaWxpdHkgY2FuIGJlIGV2YWx1YXRlZCBmb3IgYSByYW5nZSBvZiByZWFsIHdvcmxkIGRlcGxveW1lbnQgZW52aXJvbm1lbnRzLCBpbmNsdWRpbmcgYWx0ZXJuYXRlIG1peGVzIG9mIHNlcnZlciBhbmQgbmV0d29yayBpbnRlcmNvbm5lY3Rpb24gdGVjaG5vbG9naWVzLiBOZXcgYXBwcm9hY2hlcyB0byBxdWFsaXR5IGFzc2Vzc21lbnQgdGVzdGluZyB0aGF0IGxpbmsgdGhlIGluaXRpYWwgcmVxdWlyZW1lbnRzIGRlZmluaXRpb24sIG9iamVjdCBvcmllbnRlZCBtb2RlbCBvZiB0aGUgYXBwbGljYXRpb24sIGFuZCB0ZXN0IG1hbmFnZW1lbnQgZXZhbHVhdGlvbiB0b29scyB3aWxsIGFsc28gYmUgc3VwcG9ydGVkLiBDb21wYW5pZXMsIHByb2plY3RzIGFuZCBpbmRpdmlkdWFscyBpbnRlcmVzdGVkIGluIGNvbGxhYm9yYXRpbmcgd2l0aCBtZW1iZXJzIG9mIFByb2plY3QgSHlhZGVzIHNob3VsZCBwYXJ0aWNpcGF0ZSB0aHJvdWdoIHRoZSBFY2xpcHNlIG9wZW4tc291cmNlIGNvbW11bml0eSB3ZWJzaXRlLiBEZXRhaWxzIGFyZSBhdDogaHR0cDovL2VjbGlwc2Uub3JnL2h5YWRlcy4gPC9wPg0KCSAgPFA+VGhlIEVjbGlwc2UgY29tbXVuaXR5IGNyZWF0ZXMgb3Blbi1zb3VyY2UgdGVjaG5vbG9neSBhcyBhIHVuaXZlcnNhbCBwbGF0Zm9ybSBmb3IgdG9vbHMgaW50ZWdyYXRpb24uIEVjbGlwc2UgYmFzZWQgdG9vbHMgZ2l2ZSBwcm9qZWN0cyBmcmVlZG9tIG9mIGNob2ljZSBpbiBhIG11bHRpLWxhbmd1YWdlLCBtdWx0aS1wbGF0Zm9ybSwgbXVsdGktdmVuZG9yIHN1cHBvcnRlZCBlbnZpcm9ubWVudC4gRWNsaXBzZSBkZWxpdmVycyBhIHBsdWctaW4gYmFzZWQgZnJhbWV3b3JrIHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRvIGNyZWF0ZSwgaW50ZWdyYXRlIGFuZCB1c2Ugc29mdHdhcmUgdG9vbHMsIHNhdmluZyB0aW1lIGFuZCBtb25leS4gT3ZlciAzNSBuZXcgb2ZmZXJpbmdzIHBvd2VyZWQgYnkgRWNsaXBzZSB0ZWNobm9sb2d5IGFuZCBtb3JlIHRoYW4gMTAwIGluZGVwZW5kZW50IG9wZW4tc291cmNlIHByb2plY3RzIGhhdmUgYmVlbiBpbnRyb2R1Y2VkIGluIHJlY2VudCBtb250aHMuIDwvcD4NCgkgIDxQPjxiPkFib3V0IHRoZSBuYW1lICJIeWFkZXMiPC9iPjwvcD4NCgkgIDxwPkh5YWRlcyBpcyBvbmUgb2YgdGhlIGxhcmdlc3Qgb3BlbiBzdGFyIGNsdXN0ZXJzIHZpc2libGUuIEl0IG91dGxpbmVzIHRoZSBoZWFkIG9mIGNvbnN0ZWxsYXRpb24gVGF1cnVzLiBUaGUgSHlhZGVzIGNsdXN0ZXIncyB1bmlxdWUgcG9zaXRpb24gYW5kIGRpc3RyaWJ1dGlvbiBoYXMgZW5hYmxlZCBhc3Ryb25vbWVycyB0byBtZWFzdXJlIHRoZSB1bml2ZXJzZS4gDQo8L3A+DQoJICA8UD48Yj5XaGF0IHRoZSBQYXJ0aWNpcGFudHMgYXJlIHNheWluZyBhYm91dCBIeWFkZXM6IDwvYj48L3A+DQoJICA8UD4iSW4gdG9kYXkncyBtdWx0aS1wbGF0Zm9ybSwgbXVsdGktdmVuZG9yIHdvcmxkLCB0aGUgY29zdHMgdG8gZGVwbG95IGFuZCBtYWludGFpbiBhbiBhcHBsaWNhdGlvbiBvZnRlbiBzdXJwYXNzIHRoZSBjb3N0IG9mIHRoZSBvcmlnaW5hbCBkZXZlbG9wbWVudCBlZmZvcnRzLCIgc2FpZCBMZWUgTmFja21hbiwgVmljZSBQcmVzaWRlbnQgb2YgQXBwbGljYXRpb24gRGV2ZWxvcG1lbnQgVG9vbHMsIElCTSBTb2Z0d2FyZSBHcm91cCwgIkFzIHRoaXMgbmV3IG9wZW4tc291cmNlIHByb2plY3QgZm9ybXMsIElCTSBpcyBjb250cmlidXRpbmcgb3VyIHRlY2hub2xvZ3kgYW5kIHNraWxsIHRvIGV4dGVuZCBFY2xpcHNlIHRvIHByb3ZpZGUgYSBmcmFtZXdvcmsgdGhhdCBzdXBwb3J0cyBvbmdvaW5nIHRlc3Rpbmcgb2YgZGVwbG95bWVudCBhbmQgbWFpbnRlbmFuY2UgZW52aXJvbm1lbnRzLiI8L3A+DQoJICA8UD4iVGhlIEh5YWRlcyBwcm9qZWN0IGlzIHNpZ25pZmljYW50IGJlY2F1c2UgaXQgYWRkcmVzc2VzIHF1YWxpdHkgYXNzdXJhbmNlIHByYWN0aWNlcyB0aHJvdWdob3V0IGRldmVsb3BtZW50LCBkZXBsb3ltZW50LCB0ZXN0aW5nLCBhbmQgbWFuYWdlbWVudCwgaW5jbHVkaW5nIHN0YXRpYyBjb2RlIGFuYWx5c2lzLCBmdW5jdGlvbmFsIHRlc3RpbmcgYW5kIHBlcmZvcm1hbmNlIHRlc3RpbmcsIiBzYWlkIERyLiBBZGFtIEtvbGF3YSwgUGFyYXNvZnQgQ0VPLiAiUGFyYXNvZnQsIGFsb25nIHdpdGggb3RoZXIgbGVhZGluZyB2ZW5kb3JzLCBpcyBjb250cmlidXRpbmcgdGVjaG5vbG9neSBhbmQgZXhwZXJ0aXNlIHRoYXQgd2lsbCBhbGxvdyBFY2xpcHNlIHVzZXJzIHRvIGVhc2lseSBwbHVnIGluIHRvb2xzIHRoYXQgcHJldmVudCBlcnJvcnMgYW5kIGVuc3VyZSBhcHBsaWNhdGlvbiByZWxpYWJpbGl0eSB0aHJvdWdoIGVhY2ggc3RhZ2Ugb2YgdGhlIHNvZnR3YXJlIGxpZmVjeWNsZS4iPC9wPg0KCSAgPFA+IlRoZSBIeWFkZXMgcHJvamVjdCB3aWxsIGdpdmUgdXNlcnMgYW4gaW50ZWdyYXRlZCBwbGF0Zm9ybSBmb3IgdGVzdGluZywgcnVudGltZSBhbmFseXNpcywgYW5kIGFwcGxpY2F0aW9uIG1vbml0b3JpbmcsIHdpdGggYSBzaGFyZWQgdXNlciBpbnRlcmZhY2UsIGluZm9ybWF0aW9uIG1vZGVsIGFuZCBkYXRhIGNvbGxlY3Rpb24gZnJhbWV3b3JrLCIgc2FpZCBEYXZlIEJlcm5zdGVpbiwgc2VuaW9yIHZpY2UgcHJlc2lkZW50IG9mIHByb2R1Y3RzLCBSYXRpb25hbCBTb2Z0d2FyZS4gIlRoaXMgb3BlbiBwbGF0Zm9ybSB3aWxsIHN1cHBvcnQgaW50ZXJvcGVyYXRpb24gYW1vbmcgdG9vbHMgZGV2ZWxvcGVkIGJ5IHBhcnRpY2lwYXRpbmcgdmVuZG9ycyBhcyB3ZWxsIGFzIGJ5IHVzZXJzIHRoZW1zZWx2ZXMuIjwvcD4NCgkgIDxQPiJUaGUgcHJhY3RpY2FsIGRpZmZpY3VsdGllcyBhbmQgY29zdHMgb2YgdXNpbmcgdGVzdCB0b29scyBhcmUgc2lnbmlmaWNhbnQgDQogICAgICAgIGJhcnJpZXJzIHRvIHRoZSBhZG9wdGlvbiBvZiBnb29kIHByYWN0aWNlIGluIHNvZnR3YXJlIGRldmVsb3BtZW50IGFuZCANCiAgICAgICAgc3lzdGVtcyBpbnRlZ3JhdGlvbiwiIHNhaWQgRHIgTWlrZSBOb3JtYW4sIENFTyBTY2FwYSBUZWNobm9sb2dpZXMsICJCeSANCiAgICAgICAgdXNpbmcgRWNsaXBzZSB0byBwcm92aWRlIGludGVyb3BlcmFiaWxpdHkgYW1vbmdzdCB0ZXN0IHRvb2xzIGFuZCB0byBiaW5kIA0KICAgICAgICB0ZXN0IHRvb2xzIGludG8gdGhlIHdpZGVyIHNvZnR3YXJlIHRvb2xzIGVudmlyb25tZW50LCB0aGUgSHlhZGVzIHByb2plY3QgDQogICAgICAgIHdpbGwgcmVkdWNlIHRoZSBjb3N0cyBvZiB0ZXN0aW5nIGFuZCB0ZXN0IHRvb2xzIGFuZCBhbGxvdyBtb3JlIHBlb3BsZSANCiAgICAgICAgdG8gZGVsaXZlciBzb2Z0d2FyZSB0aGF0IGlzIGJldHRlciB0ZXN0ZWQuIjwvcD4NCgkgIDxQPiJDcmVhdGluZyBhIHRlc3RpbmcgcGxhdGZvcm0gdGhhdCBpbnRlZ3JhdGVzIHRlc3QgbW9kZWxzIGJhc2VkIG9uIFVNTCwgZW5zdXJlcyBpbnRlcm9wZXJhYmlsaXR5IGFuZCBzdXBwb3J0cyByYXBpZCwgYWNjdXJhdGUgdGVzdGluZyBvZiBzeXN0ZW0gYW5kIHNvZnR3YXJlLiBCeSBsZXZlcmFnaW5nIGVtZXJnaW5nIHN0YW5kYXJkcyBpbiB0aGlzIGFyZWEsIHdlIGFkdmFuY2UgdGhlIEVjbGlwc2UgcGxhdGZvcm0gYW5kIHByb3ZpZGUgZnVydGhlciBzdXBwb3J0IGZvciBzdGFuZGFyZHMtYmFzZWQgZGV2ZWxvcG1lbnQgYW5kIHRlc3RpbmcsIiBzYWlkIFRvbnkgQ2hhbmcsIFZpY2UgUHJlc2lkZW50IG9mIFByb2R1Y3QgRGV2ZWxvcG1lbnQgZm9yIFRlbGVsb2dpYyBTeW5lcmd5IGFuZCBUZWxlbG9naWMncyByZXByZXNlbnRhdGl2ZSB0byB0aGUgRWNsaXBzZSBib2FyZC4gICJFY2xpcHNlIHVzZXJzIHdpbGwgYmVuZWZpdCBmcm9tIHRoZSBvcGVubmVzcyBidXQgYWxzbyBmcm9tIHRoZSBzdHJlbmd0aCBvZiB0aGUgcGxhdGZvcm0gYW5kIHRoZSB1bmRlcmx5aW5nIHN0YW5kYXJkcy4iPC9wPg0KCSAgPFA+PGI+SW5kdXN0cnkgQ29tbWVudHM6IDwvYj48L3A+DQoJICA8UD4iVGhlIGludGVyb3BlcmFiaWxpdHkgb2YgdGVzdCBhbmQgdHJhY2UgdG9vbGluZywgd2hpY2ggaXMgYXQgdGhlIGhlYXJ0IG9mIHRoZSBIeWFkZXMgcHJvamVjdCwgd2lsbCBwcm92aWRlIHNpZ25pZmljYW50IGJlbmVmaXRzIHRvIElCTSBhbmQgaXRzIGN1c3RvbWVycyIgc2FpZCBIYXJtIFNsdWltYW4sIFNlbmlvciBUZWNobmljYWwgU3RhZmYgTWVtYmVyLCBJQk0gQ29ycG9yYXRpb24uICJJdCB3aWxsIHN0aW11bGF0ZSBjb21wZXRpdGlvbiBhbW9uZ3N0IHRlc3QgYW5kIHRyYWNlIHRvb2xzIHZlbmRvcnMsIHJlZHVjaW5nIHZlbmRvciBsb2NrLWluIGFuZCBhbGxvd2luZyB2ZW5kb3JzIHRvIGluaXRpYXRlIGEgbmV3IHdhdmUgb2YgaW5ub3ZhdGlvbiBpbiB0aGUgc2VjdG9yIjwvcD4NCgkgIDxQPiJJdCBpcyBleHRyZW1lbHkgc2lnbmlmaWNhbnQgdGhhdCB0aGUgSHlhZGVzIHByb2plY3Qgd29ya3Mgd2l0aCBleGlzdGluZyBhbmQgZW1lcmdpbmcgc3RhbmRhcmRzIiBzYWlkIEluYSBTY2hpZWZlcmRlY2tlciBvZiB0aGUgRnJhdW5ob2ZlciBJbnN0aXR1dGUgZm9yIE9wZW4gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIChGT0tVUykgIkluIGFkZGl0aW9uIHRvIGl0cyB1c2Ugb2YgSmF2YSAoaW5jbHVkaW5nIEpTUnMgMjYsIDQ3IGFuZCAxNjMpICB0aGUga2V5IG1ldGEtbW9kZWwgdGhhdCBwcm92aWRlcyBpbnRlcm9wZXJhYmlsaXR5IGFtb25nIHRlc3QgdG9vbHMgaW4gSHlhZGVzIGlzIGFuIGltcGxlbWVudGF0aW9uIG9mIGEgc3RhbmRhcmQgdGVzdCBwcm9maWxlIHRoYXQgd2UgYXJlIGRldmVsb3BpbmcgdGhyb3VnaCB0aGUgT01HLiI8L3A+DQoJICA8UD4iVGhlIEh5YWRlcyBwcm9qZWN0IGlzIGEgbWFqb3Igc3RlcCBmb3IgRWNsaXBzZSwgYWRkaW5nIGRlcGxveW1lbnQgZXZhbHVhdGlvbiANCiAgICAgICAgZnVuY3Rpb25hbGl0eSB0byB0aGUgb3JpZ2luYWwgSW50ZWdyYXRlZCBEZXZlbG9wbWVudCBFbnZpcm9ubWVudCAoSURFKSwgDQogICAgICAgIGFuZCBpcyB0aGUgZmlyc3QgbWFqb3Igc3RlcCB0byBFY2xpcHNlIGJlY29taW5nIGFuIEludGVncmF0ZWQgRXZlcnl0aGluZyANCiAgICAgICAgRW52aXJvbm1lbnQgb3IgSSpFIiBzYWlkIFNraXAgTWNHYXVnaGV5LCBjaGFpcnBlcnNvbiBvZiB0aGUgRWNsaXBzZSBib2FyZCANCiAgICAgICAgb2Ygc3Rld2FyZHMsICJJbiBhIHJlZmxlY3Rpb24gb2YgdGhlIG9wZW4gY29sbGFib3JhdGlvbiBhbmQgZ2xvYmFsIG5hdHVyZSANCiAgICAgICAgb2YgRWNsaXBzZSwgSHlhZGVzIGludm9sdmVzIGEgd2lkZSByYW5nZSBvZiBFY2xpcHNlIG1lbWJlcnMsIHdpdGggcGFydGljaXBhbnRzIA0KICAgICAgICBmcm9tIGJvdGggRXVyb3BlIGFuZCBOb3J0aCBBbWVyaWNhLiI8L3A+DQoNCgkgIA0KCQk8L3RkPg0KICA8L3RyPg0KICA8L3RhYmxlPg0KJm5ic3A7DQoNCgkJPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTMgYWxpZ249Y2VudGVyPg0KCQk8dHIgYmdjb2xvcj0iIzk5OTk5OSI+DQoJCQ0KICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMwMDgwQzAiPjxiPjxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPkFib3V0IA0KICAgICAgRWNsaXBzZTwvZm9udD48L2I+PC90ZD4NCgkJPC9UUj4NCgkJPFRSPg0KCQk8dGQgYWxpZ249bGVmdD4NCgkJPFRBQkxFICB3aWR0aD0iMTAwJSIgQ0VMTFNQQUNJTkc9MCBDRUxMUEFERElORz0zPg0KCQk8dHI+DQoJCSAgPHRkPg0KCQkgIDxQPkVjbGlwc2UgaXMgYW4gb3Blbi1zb3VyY2UgY29tbXVuaXR5IHRoYXQgY3JlYXRlcyB0ZWNobm9sb2d5IGFuZCBhIHVuaXZlcnNhbCBwbGF0Zm9ybSBmb3IgdG9vbHMgaW50ZWdyYXRpb24uIFRoZSBvcGVuLXNvdXJjZSBFY2xpcHNlIGNvbW11bml0eSBjcmVhdGVzIHJveWFsdHktZnJlZSB0ZWNobm9sb2d5IGFzIGEgcGxhdGZvcm0gZm9yIHRvb2xzIGludGVncmF0aW9uLiBFY2xpcHNlIGJhc2VkIHRvb2xzIGdpdmUgZGV2ZWxvcGVycyBmcmVlZG9tIG9mIGNob2ljZSBpbiBhIG11bHRpLWxhbmd1YWdlLCBtdWx0aS1wbGF0Zm9ybSwgbXVsdGktdmVuZG9yIHN1cHBvcnRlZCBlbnZpcm9ubWVudC4gRWNsaXBzZSBkZWxpdmVycyBhIHBsdWctaW4gYmFzZWQgZnJhbWV3b3JrIHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRvIGNyZWF0ZSwgaW50ZWdyYXRlIGFuZCB1c2Ugc29mdHdhcmUgdG9vbHMsIHNhdmluZyB0aW1lIGFuZCBtb25leS4gQnkgY29sbGFib3JhdGluZyBhbmQgc2hhcmluZyBjb3JlIGludGVncmF0aW9uIHRlY2hub2xvZ3ksIHRvb2wgcHJvZHVjZXJzIGNhbiBjb25jZW50cmF0ZSBvbiB0aGVpciBhcmVhcyBvZiBleHBlcnRpc2UgYW5kIHRoZSBjcmVhdGlvbiBvZiBuZXcgZGV2ZWxvcG1lbnQgdGVjaG5vbG9neS4gIFRoZSBFY2xpcHNlIFBsYXRmb3JtIGlzIHdyaXR0ZW4gaW4gdGhlIEphdmGZIGxhbmd1YWdlLCBhbmQgY29tZXMgd2l0aCBleHRlbnNpdmUgcGx1Zy1pbiBjb25zdHJ1Y3Rpb24gdG9vbGtpdHMgYW5kIGV4YW1wbGVzLiAgSXQgaGFzIGFscmVhZHkgYmVlbiBkZXBsb3llZCBvbiBhIHJhbmdlIG9mIGRldmVsb3BtZW50IHdvcmtzdGF0aW9ucyBpbmNsdWRpbmcgTGludXiuLCBRTliuIGFuZCBXaW5kb3dzriBiYXNlZCBzeXN0ZW1zLiAgRnVsbCBkZXRhaWxzIG9mIHRoZSBFY2xpcHNlIGNvbW11bml0eSBhbmQgd2hpdGUgcGFwZXJzIGRvY3VtZW50aW5nIHRoZSBkZXNpZ24gb2YgdGhlIEVjbGlwc2UgUGxhdGZvcm0gYXJlIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnLjwvcD4NCg0KCQk8L3RkPg0KCQk8L3RyPg0KICAgICAgICA8L3RhYmxlPjwvdGFibGU+Jm5ic3A7DQoNCgkJPHRhYmxlIHdpZHRoPSIxMDAlIiBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5nPTMgYWxpZ249Y2VudGVyPg0KCQk8dHIgYmdjb2xvcj0iIzk5OTk5OSI+DQoJCQ0KICAgIDx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiIGJnY29sb3I9IiMwMDgwQzAiPjxiPjxmb250IGNvbG9yPSIjRkZGRkZGIiBmYWNlPSJBcmlhbCxIZWx2ZXRpY2EiPk1lZGlhIA0KICAgICAgY29udGFjdHM8L2ZvbnQ+PC9iPjwvdGQ+DQoJCTwvVFI+DQoJCTxUUj4NCgkJPHRkIGFsaWduPWxlZnQ+DQoJCTxUQUJMRSAgd2lkdGg9IjEwMCUiIENFTExTUEFDSU5HPTAgQ0VMTFBBRERJTkc9Mz4NCgkJPHRyPg0KCQkgIDx0ZD4gDQogICAgICAgICAgICA8cCBhbGlnbj0iY2VudGVyIj5CYXJiYXJhIFN0ZXdhcnQ8YnI+DQogICAgICAgICAgICAgIFBhdHRlcnNvbiBhbmQgQXNzb2NpYXRlczxicj4NCiAgICAgICAgICAgICAgNDgwLTQ4OC02OTA5PGJyPg0KICAgICAgICAgICAgICBiYXJiYXJhQHBhdHRlcnNvbi5jb208L3A+DQogICAgICAgICAgICA8aHIgd2lkdGg9Ijg1JSI+DQogICAgICAgICAgICAgIA0KICAgICAgICAgICAgICA8UD48U1VQPigxKSA8L3N1cD5Tb21lIGNvbXBvbmVudHMgb2YgRWNsaXBzZSBtYXkgYmUgZ292ZXJuZWQgYnkgbGljZW5zZSB0ZXJtcyBvdGhlciB0aGFuIHRoZSBDUEwuIDwvUD4NCiAgICAgICAgICAgIDxQPiYjOTtCcmFuZCBvciBwcm9kdWN0IG5hbWVzIGFyZSByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb3IgdHJhZGVtYXJrcyBvZiB0aGVpciANCiAgICAgICAgICAgICAgcmVzcGVjdGl2ZSBob2xkZXJzLiBKYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIA0KICAgICAgICAgICAgICBvciByZWdpc3RlcmVkIHRyYWRlbWFya3Mgb2YgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBpbiB0aGUgVW5pdGVkIA0KICAgICAgICAgICAgICBTdGF0ZXMgYW5kIG90aGVyIGNvdW50cmllcy4gTWljcm9zb2Z0LCBXaW5kb3dzIGlzIGEgdHJhZGVtYXJrIG9mIA0KICAgICAgICAgICAgICBNaWNyb3NvZnQgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgDQogICAgICAgICAgICAgIGJvdGguIDwvUD4NCjxociB3aWR0aD0iODUlIj4NCiAgICAgICAgICAgIDxwPjxhIGhyZWY9Ii4uL21haW4uaHRtbCI+UmV0dXJuIHRvIHRoZSBlY2xpcHNlLm9yZyBjb25zb3J0aXVtIG1haW4gcGFnZTwvYT48L3A+DQogICAgICAgIDwvdGQ+DQoJCTwvdHI+DQogICAgICAgIDwvdGFibGU+PC90YWJsZT4mbmJzcDsgICAgICAgIA0KJm5ic3A7DQo8L2JvZHk+PC9odG1sPg0K