PGh0bWwgZGlyPSJMVFIiPg0KICA8aGVhZD4NCiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1XaW5kb3dzLTEyNTIiIC8+DQogICAgPG1ldGEgbmFtZT0idnNfdGFyZ2V0U2NoZW1hIiBjb250ZW50PSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2ludGVsbGlzZW5zZS9pZTUiIC8+DQogICAgPHRpdGxlPlNjb3JlRG9jQ29tcGFyYXRvci5Tb3J0VHlwZSBNZXRob2Q8L3RpdGxlPg0KICAgIDx4bWw+DQogICAgPC94bWw+DQogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iTVNETi5jc3MiIC8+DQogIDwvaGVhZD4NCiAgPGJvZHkgaWQ9ImJvZHlJRCIgY2xhc3M9ImR0Qk9EWSI+DQogICAgPGRpdiBpZD0ibnNiYW5uZXIiPg0KICAgICAgPGRpdiBpZD0iYmFubmVycm93MSI+DQogICAgICAgIDx0YWJsZSBjbGFzcz0iYmFubmVycGFydGhlYWQiIGNlbGxzcGFjaW5nPSIwIj4NCiAgICAgICAgICA8dHIgaWQ9ImhkciI+DQogICAgICAgICAgICA8dGQgY2xhc3M9InJ1bm5pbmdoZWFkIj5BcGFjaGUgTHVjZW5lLk5ldCAyLjQuMCBDbGFzcyBMaWJyYXJ5IEFQSTwvdGQ+DQogICAgICAgICAgICA8dGQgY2xhc3M9InByb2R1Y3QiPg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICA8L3RhYmxlPg0KICAgICAgPC9kaXY+DQogICAgICA8ZGl2IGlkPSJUaXRsZVJvdyI+DQogICAgICAgIDxoMSBjbGFzcz0iZHRIMSI+U2NvcmVEb2NDb21wYXJhdG9yLlNvcnRUeXBloE1ldGhvZKA8L2gxPg0KICAgICAgPC9kaXY+DQogICAgPC9kaXY+DQogICAgPGRpdiBpZD0ibnN0ZXh0Ij4NCiAgICAgIDxwPiBSZXR1cm5zIHRoZSB0eXBlIG9mIHNvcnQuIFNob3VsZCByZXR1cm4gPHByZSBjbGFzcz0iY29kZSI+U29ydEZpZWxkLlNDT1JFPC9wcmU+LCA8cHJlIGNsYXNzPSJjb2RlIj5Tb3J0RmllbGQuRE9DPC9wcmU+LCA8cHJlIGNsYXNzPSJjb2RlIj5Tb3J0RmllbGQuU1RSSU5HPC9wcmU+LCA8cHJlIGNsYXNzPSJjb2RlIj5Tb3J0RmllbGQuSU5URUdFUjwvcHJlPiwgPHByZSBjbGFzcz0iY29kZSI+U29ydEZpZWxkLkZMT0FUPC9wcmU+IG9yIDxwcmUgY2xhc3M9ImNvZGUiPlNvcnRGaWVsZC5DVVNUT008L3ByZT4uIEl0IGlzIG5vdCB2YWxpZCB0byByZXR1cm4gPHByZSBjbGFzcz0iY29kZSI+U29ydEZpZWxkLkFVVE88L3ByZT4uIFRoaXMgaXMgdXNlZCBieSBtdWx0aXNlYXJjaGVycyB0byBkZXRlcm1pbmUgaG93IHRvIGNvbGxhdGUgcmVzdWx0cyBmcm9tIHRoZWlyIHNlYXJjaGVycy4gPC9wPg0KICAgICAgPGRpdiBjbGFzcz0ic3ludGF4Ij4NCiAgICAgICAgPGEgaHJlZj0ibXMtaGVscDovL01TLk5FVEZyYW1ld29ya1NES3YxLjEvY3ByZWYvaHRtbC9mcmxyZlN5c3RlbUludDMyQ2xhc3NUb3BpYy5odG0iPmludDwvYT6gU29ydFR5cGUoKTs8L2Rpdj4NCiAgICAgIDxoNCBjbGFzcz0iZHRINCI+UmV0dXJuIFZhbHVlPC9oND4NCiAgICAgIDxwPiBPbmUgb2YgdGhlIGNvbnN0YW50cyBpbiBTb3J0RmllbGQuIDwvcD4NCiAgICAgIDxoNCBjbGFzcz0iZHRINCI+U2VlIEFsc288L2g0Pg0KICAgICAgPHA+DQogICAgICAgIDxhIGhyZWY9Ikx1Y2VuZS5OZXQuU2VhcmNoLlNjb3JlRG9jQ29tcGFyYXRvci5odG1sIj5TY29yZURvY0NvbXBhcmF0b3IgSW50ZXJmYWNlPC9hPiB8IDxhIGhyZWY9Ikx1Y2VuZS5OZXQuU2VhcmNoLmh0bWwiPkx1Y2VuZS5OZXQuU2VhcmNoIE5hbWVzcGFjZTwvYT4gfCA8YSBocmVmPSJMdWNlbmUuTmV0LlNlYXJjaC5Tb3J0RmllbGQuaHRtbCI+DQogICAgICAgICAgICA8L2E+PC9wPg0KICAgICAgPG9iamVjdCB0eXBlPSJhcHBsaWNhdGlvbi94LW9sZW9iamVjdCIgY2xhc3NpZD0iY2xzaWQ6MWUyYTdiZDAtZGFiOS0xMWQwLWI5M2EtMDBjMDRmYzk5ZjllIiB2aWV3YXN0ZXh0PSJ0cnVlIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPg0KICAgICAgICA8cGFyYW0gbmFtZT0iS2V5d29yZCIgdmFsdWU9IlNvcnRUeXBlIG1ldGhvZCI+DQogICAgICAgIDwvcGFyYW0+DQogICAgICAgIDxwYXJhbSBuYW1lPSJLZXl3b3JkIiB2YWx1ZT0iU29ydFR5cGUgbWV0aG9kLCBTY29yZURvY0NvbXBhcmF0b3IgaW50ZXJmYWNlIj4NCiAgICAgICAgPC9wYXJhbT4NCiAgICAgICAgPHBhcmFtIG5hbWU9IktleXdvcmQiIHZhbHVlPSJTY29yZURvY0NvbXBhcmF0b3IuU29ydFR5cGUgbWV0aG9kIj4NCiAgICAgICAgPC9wYXJhbT4NCiAgICAgIDwvb2JqZWN0Pg0KICAgICAgPGhyIC8+DQogICAgICA8ZGl2IGlkPSJmb290ZXIiPg0KICAgICAgICA8cD4NCiAgICAgICAgPC9wPg0KICAgICAgICA8cD5HZW5lcmF0ZWQgZnJvbSBhc3NlbWJseSBMdWNlbmUuTmV0IFsyLjQuMC4yXTwvcD4NCiAgICAgIDwvZGl2Pg0KICAgIDwvZGl2Pg0KICA8L2JvZHk+DQo8L2h0bWw+