PGh0bWw+DQo8aGVhZD4NCiAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSIiPg0KICA8dGl0bGU+QXhpczIgRkFRPC90aXRsZT4NCjwvaGVhZD4NCg0KPGJvZHkgbGFuZz0iZW4iPg0KPGgxPkdlbmVyYWw8L2gxPg0KPG9sPg0KICA8bGk+PHN0cm9uZz5JIHNlZSBPTUVsZW1lbnRzIGluIGFsbCB0aGUgc2lnbmF0dXJlcywgaW4gdGhlIHN0dWJzLCBDbGllbnQNCiAgICBBUEkgYW5kIGluIHNrZWxldG9ucy4gV2hlcmUgaXMgZGF0YSBiaW5kaW5nPzwvc3Ryb25nPjxicj4NCg0KICAgIDxwPkF4aXMyIHN1cHBvcnRzIGRhdGFiaW5kaW5nIHVzaW5nIFhNTC1CZWFucyBmcm9tIDAuOSByZWxlYXNlLiBGb3IgbW9yZQ0KICAgIGluZm9ybWF0aW9uIHBsZWFzZSByZWFkIHRoZSA8YSBocmVmPSIwXzk0L3VzZXJndWlkZS5odG1sIj51c2VyIGd1aWRlPC9hPjwvcD4NCiAgPC9saT4NCiAgPGxpPjxhIG5hbWU9ImEyIj48c3Ryb25nPldoYXQgaXMgT01FbGVtZW50LCBXaGF0IGRvZXMgaXQNCiAgICByZXByZXNlbnRzPzwvc3Ryb25nPjwvYT48YnI+DQoNCiAgICA8cD5PTUVsZW1lbnQgaXMgQXhpczIgcmVwcmVzZW50YXRpb24gb2YgWE1MLCBpdCBwcm92aWRlIGEgdHJlZSBtb2RlbCBsaWtlDQogICAgRE9NLiBJZiB5b3UgYXJlIGZhbWlsaWFyIHdpdGggRE9NIG9yIEpET00geW91IGNhbiBzb29uIGdldCBmYW1pbGlhcml6ZQ0KICAgIHdpdGggT00gcXVpY2tseS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVhZDxhIGhyZWY9IjBfOTQvT01UdXRvcmlhbC5odG1sIj4NCiAgICBBeGlvbSBUdXRvcmlhbDwvYT48L3A+DQogIDwvbGk+DQogIDxsaT48c3Ryb25nPkludGVncmF0aW9uIHNlY3VyaXR5IHRlc3RzIGZhaWwgd2l0aCBKREsgMS41PC9zdHJvbmc+PC9hPjxicj4NCg0KICAgIDxwPllvdSBoYXZlIHRvIGFkZCBCb3VuY3kgQ2FzdGxlIGFzIGEgSkNFIHByb3ZpZGVyLiBBZGQgdGhlIGZvbGxvd2luZw0KZW50cnkgdG8gamF2YS5zZWN1cml0eSBmaWxlIG9mIHRoZSBhcHByb3ByaWF0ZSBKUkUgb24geW91ciBtYWNoaW5lLiBUaGlzIGZpbGUgaXMgDQphdmFpbGFibGUgaW4gdGhlIGxpYlxzZWN1cml0eVwgZGlyZWN0b3J5IHdpdGhpbiB0aGUgSlJFIGRpcmVjdG9yeS48L3A+DQogICAgPHA+c2VjdXJpdHkucHJvdmlkZXIuNz1vcmcuYm91bmN5Y2FzdGxlLmpjZS5wcm92aWRlci5Cb3VuY3lDYXN0bGVQcm92aWRlcjwvcD4NCiAgICA8cD5zZWN1cml0eS5wcm92aWRlci4jIHdpbGwgaGF2ZSB0byBiZSBkZWNpZGVkIGRlcGVuZGluZyBvbiB0aGUgZXhpc3RpbmcgZW50cmllcyANCiAgICBpbiB0aGUgamF2YS5zZWN1cml0eSBmaWxlPC9wPg0KICAgIDxwPk5PVEU6IEZvciBXaW5kb3dzIFhQIHRoZSBjb3JyZWN0IHZlcnNpb24gY2FuIGJlIGZvdW5kIHVzaW5nICdqYXZhIC12ZXJzaW9uJy4gVGhlDQpjb3JyZWN0IGZpbGUgaXMgSlJFICh0eXBpY2FsbHkgYzpcUHJvZ3JhbQ0KRmlsZXNcSmF2YVxqcmUmbHQ7dmVyc2lvbiZndDtcbGliXHNlY3VyaXR5XGphdmEuc2VjdXJpdHkuPC9wPg0KICA8L2xpPg0KPC9vbD4NCg0KPGgxPldlYiBBcmNoaXZlIC8gU2VydmVyIHNpZGU8L2gxPg0KPG9sPg0KICA8bGk+PHN0cm9uZz5JIHNlZSBhbiBpbnRlcm5hbCBzZXJ2ZXIgZXJyb3IgcGFnZSB3aGVuIEkgdHJ5IHRvIHZpZXcgdGhlIFdTREwgZmlsZS48L3N0cm9uZz48YnI+DQogICAgPHA+VGhpcyBoYXBwZW5zIHNwZWNpZmljYWxseSB3aXRoIHRvbWNhdCA0LnggYW5kIDUuMCBpbiBhIEpESyAxLjUgZW52aXJvbm1lbnQuIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgc3lzdGVtIHBpY2tzIHVwIGEgd3JvbmcgdHJhbnNmb3JtZXINCiBmYWN0b3J5IGNsYXNzLiBUaGlzIGNhbiBiZSBzb2x2ZWQgc2ltcGx5IGJ5IHB1dHRpbmcgdGhlIHhhbGFuLTIuNy4wLmphcihmb3VuZCA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGlzdC9qYXZhLXJlcG9zaXRvcnkveGFsYW4vamFycy8iPmhlcmU8L2E+KSBpbnRvIHRoZSBheGlzMi9XRUItSU5GL2xpYiBkaXJlY3Rvcnk8L3A+DQogIDwvbGk+DQogIA0KPC9vbD4NCg0KPGgxPkNsaWVudCBBUEk8L2gxPg0KPG9sPg0KICA8bGk+PHN0cm9uZz5JIHdhbnQgdG8gZG8gcmVxdWVzdCByZXNwb25zZSBNZXNzYWdpbmcsIFdoZXJlIHNob3VsZCBJDQogICAgbG9vaz88L3N0cm9uZz48YnI+DQoNCiAgICA8cD5Mb29rIGF0IHRoZSA8YQ0KICAgIGhyZWY9Imh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL3dlYnNlcnZpY2VzL2F4aXMyL3RydW5rL2phdmEvbW9kdWxlcy9jb3JlL3NyYy9vcmcvYXBhY2hlL2F4aXMyL2NsaWVudC9TZXJ2aWNlQ2xpZW50LmphdmEiPlNlcnZpY2VDbGllbnQ8L2E+DQogICAgY2xhc3MsIGZvciBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSByZWFkIHRoZSA8YSBocmVmPSIwXzk0L3VzZXJndWlkZS5odG1sIj51c2VyDQogICAgZ3VpZGU8L2E+PC9wPg0KICA8L2xpPg0KICA8bGk+PHN0cm9uZz5JIHdhbnQgdG8gZG8gT25lIFdheSBNZXNzYWdpbmcsIFdoZXJlIHNob3VsZCBJDQogICAgbG9vaz88L3N0cm9uZz48YnI+DQoNCiAgICA8cD5Gcm9tIEF4aXMyIDAuOTQgb253YXJkcywgYm90aCByZXF1ZXN0LXJlc3BvbnNlIGFuZCBvbmUgd2F5IG1lc3NhZ2luZyB3aWxsIGJlIGhhbmRsZWQgYnkgPGEgaHJlZj0iaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2Yvd2Vic2VydmljZXMvYXhpczIvdHJ1bmsvamF2YS9tb2R1bGVzL2NvcmUvc3JjL29yZy9hcGFjaGUvYXhpczIvY2xpZW50L1NlcnZpY2VDbGllbnQuamF2YSI+U2VydmljZUNsaWVudDwvYT4uIDwvcD4NCiAgPC9saT4NCiAgPGxpPjxzdHJvbmc+V2hlbiBJIHRyeSB0byBkbyBhIG5vbiBibG9ja2luZyBjYWxsIHdpdGggdXNlIFNlcGFyYXRlIExpc3RlbmVyDQogICAgdHJ1ZSBJIGdldCB0aGUgZXJyb3IgPGk+dG8gZG8gdHdvIFRyYW5zcG9ydCBDaGFubmVscyB0aGUgQWRkcmVzc2luZw0KICAgIE1vZHVsZXMgbXVzdCBiZSBlbmdhZ2VkPC9pPiwgV2h5IGlzIHRoaXM/PC9zdHJvbmc+PGJyPg0KDQogICAgPHA+VG8gZG8gdGhlIHR3byB0cmFuc3BvcnQgQ2hhbm5lbCBpbnZvY2F0aW9uIHlvdSBuZWVkIHRvIGVuZ2FnZSB0aGUNCiAgICBhZGRyZXNzaW5nIG1vZHVsZS4gWW91IGNhbiBlbmFibGUgaXQgYnkgdW4tY29tbWVudGluZyB0aGUgZW50cnkgaW4gdGhlDQogICAgYXhpczIueG1sIGZpbGUgb3IgQ2FsbC5lbmdhZ2VNb2R1bGUoUU5hbWUpLiBCdXQgYWRkcmVzc2luZyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuIDwvcD4NCiAgPC9saT4NCiAgICA8bGk+PHN0cm9uZz5JIGhhdmUgZW5nYWdlZCBhZGRyZXNzaW5nIGFuZCB3aGVuIEkgdHJ5aW5nIHRvIGludm9rZSBhIHNlcnZpY2UgSSBhbSBnZXR0aW5nIGFuIGV4Y2VwdGlvbg0KICAgPC9zdHJvbmc+PGJyPg0KDQogICAgPHA+SWYgeW91IGhhdmUgZW5nYWdlZCBhZGRyZXNzaW5nICwgdGhlbiB5b3UgaGF2ZSB0byBoYXZlIHdzYTphY3Rpb24gLCBzbyB5b3UgaGF2ZSB0byBjYWxsZWQgIDxici8+DQogICAgICAgICAgICAgIG9wdGlvbi5zZXRBY3Rpb24ok3VybjpteWFjdGlvbpQpOyANCiAgICAgICAgICAgICA8YnIvPg0KICAgICAgICAgICAgSXQgc2hvdWxkIGJlIG5vdCB0aGF0IHRoZSBhY3Rpb24gc2hvdWxkIGJlIGEgVVJJLg0KPC9wPg0KICA8L2xpPg0KDQoNCg0KDQoNCg0KDQogIDxsaT48YSBuYW1lPSJiNSI+PHN0cm9uZz5XaGF0IGlzIEF4aXMgUmVwb3NpdG9yeT88L3N0cm9uZz48L2E+PGJyPg0KDQogICAgPHA+UmVwb3NpdG9yeSBzdG9yZXMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgQXhpczIsIHRoZSB1c2VycyBzaG91bGQgc3BlY2lmeQ0KICAgIHRoZSByZXBvc2l0b3J5IGZvbGRlciBzdGFydGluZyB0aGUgQXhpcyBTZXJ2ZXIgKEhUVFAgb3IgVENQKS4gSW4gdGhlIGNhc2UNCiAgICBvZiB0b21jYXQgaXQgaXMgdGhlIHdlYmFwcHMvYXhpczIvV0VCLUlORiBmb2xkZXIuIEZvbGxvd2luZyBwaWN0dXJlIHNob3dzDQogICAgYSBzYW1wbGUgcmVwb3NpdG9yeS48L3A+DQogICAgPGltZyBzcmM9ImltYWdlcy9mYXEvMS5qcGciPg0KICAgIDxwPk1vZHVsZXMgYW5kIHNlcnZpY2VzIGhhdmUgYSBhcmNoaXZlIGZvcm1hdCBkZWZpbmVkIGFuZCB0aGV5IGFyZQ0KICAgIGF1dG9tYXRpY2FsbHkgcGlja2VkIHVwIGJ5IEF4aXMyIHdoZW4gdGhleSBhcmUgY29waWVkIHRvIGNvcnJlc3BvbmRpbmcNCiAgICBmb2xkZXJzLjwvcD4NCjwvb2w+DQogICAgPGgxPk1hdmVuPC9oMT4NCiAgICA8b2w+DQogICAgICA8bGk+PHN0cm9uZz5JIGp1c3QgaW5zdGFsbGVkIG1hdmVuIGFuZCBpdCBnaXZlcyBhbiBlcnJvciB3aGVuIEkgd2FzDQogICAgICAgIHRyeWluZyB0byBydW4gbWF2ZW4gb24gQXhpczIgLi4uLi4uPC9zdHJvbmc+DQogICAgICAgIDxwPkF4aXMyIHJlcXVpcmVzIGl0ZXN0IHBsdWdpbiB0byBydW4gc29tZSBvZiB0aGUgdGVzdHMuIEJldHRlciBnZXQNCiAgICAgICAgaXQgdXNpbmcgZm9sbG93aW5nIGNvbW1hbmQuPC9wPg0KICAgICAgICA8dWw+DQogICAgICAgICAgPGxpPm1hdmVuIHBsdWdpbjpkb3dubG9hZCAtRGdyb3VwSWQ9bWF2ZW4taXRlc3QtcGx1Z2luDQogICAgICAgICAgICAtRGFydGlmYWN0SWQ9bWF2ZW4taXRlc3QtcGx1Z2luIC1EdmVyc2lvbj0xLjANCiAgICAgICAgICAgIC1EbWF2ZW4ucmVwby5yZW1vdGU9aHR0cDovL3d3dy5vcGVuZWpiLm9yZy9tYXZlbixodHRwOi8vd3d3LmliaWJsaW8ub3JnL21hdmVuPC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgIDwvbGk+DQogICAgICA8bGk+PHA+PHN0cm9uZz5JIGhhdmUgcHJvYmxlbXMgYnVpbGRpbmcgd2l0aCBtYXZlbiAxLjE8L3N0cm9uZz4gLi4uLjxicj4NCiAgICAgICAgPC9wPg0KICAgICAgICA8cD5JdCBzZWVtcyB0aGF0IG1hdmVuIDEuMSBkb2Vzbid0IGNvbWUgYnVuZGxlZCB3aXRoIHRoZSByZXF1aXJlZA0KICAgICAgICBhcnRpZmFjdCBwbHVnaW4uIFJ1biBmb2xsb3dpbmcgdG8gZ2V0IGl0IHVwZGF0ZWQ8YnI+DQogICAgICAgIDwvcD4NCiAgICAgICAgPHVsPg0KICAgICAgICAgIDxsaT5tYXZlbiBwbHVnaW46ZG93bmxvYWQgLURncm91cElkPW1hdmVuDQogICAgICAgICAgICAtRGFydGlmYWN0SWQ9bWF2ZW4tYXJ0aWZhY3QtcGx1Z2luIC1EdmVyc2lvbj0xLjY8L2xpPg0KICAgICAgICAgIDxwPllvdSBtYXkgbmVlZCB0byB1cGRhdGUgdGhlIGl0ZXN0IHBsdWdpbiB0b28sIHVzaW5nIHRoZSBhYm92ZQ0KICAgICAgICAgIGNvbW1hbmQgaW4gIzEuPC9wPg0KICAgICAgICA8L3VsPg0KICAgICAgPC9saT4NCiAgICAgIDxsaT48c3Ryb25nPldoYXQgYXJlIHRoZSBmcmVxdWVudGx5IHVzZWQgbWF2ZW4gY29tbWFuZHMgPzwvc3Ryb25nPjwvbGk+DQogICAgICA8cD48L3A+DQoNCiAgICAgIDx0YWJsZSBib3JkZXI9IjEiIGFsaWduPSJjZW50ZXIiPg0KICAgICAgICA8dGJvZHk+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRoIHNjb3BlPSJjb2wiPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgQ29tbWFuZDwvZGl2Pg0KICAgICAgICAgICAgPC90aD4NCiAgICAgICAgICAgIDx0aCBzY29wZT0iY29sIj4NCiAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgIERlc2NyaXB0aW9uPC9kaXY+DQogICAgICAgICAgICA8L3RoPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgbWF2ZW48L2Rpdj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgIDxkaXYgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICBkb3dubG9hZCByZWxldmFudCBqYXJzLCBpZiBub3QgYXZhaWxhYmxlIGFuZCBjb21waWxlIGFuZCBydW4NCiAgICAgICAgICAgICAgdGVzdHMgb2YgdGhlIHN5c3RlbS48L2Rpdj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQ+bWF2ZW4gY2xlYW48L3RkPg0KICAgICAgICAgICAgPHRkPkNsZWFuIGFsbCB0aGUgc3R1ZmYgYnVpbGQgc28gZmFyLCB0aGF0IGFyZSBpbiB0aGUgdGFyZ2V0DQogICAgICAgICAgICAgIGZvbGRlci4gVGhpcyB3aWxsIG5vdCBjbGVhbiB0aGUgamFyIHJlcG9zaXRvcnk8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgbWF2ZW4gdGVzdDwvZGl2Pg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgIHJ1biBvbmx5IHRoZSB0ZXN0cy4gV2lsbCBkbyBhdXRvbWF0aWMgY29tcGlsYXRpb24gb2YgY2hhbmdlZA0KICAgICAgICAgICAgICBzb3VyY2VzIGFzIHdlbGwuIFRoaXMgd2lsbCBub3QgcnVuIHNvYXAgaW50ZXJvcCB0ZXN0czwvZGl2Pg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgIG1hdmVuIGNsZWFuIGFsbC10ZXN0czwvZGl2Pg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgIENsZWFuIHVwIGFuZCBydW4gYWxsIG9mZiBsaW5lIGFuZCBvbiBsaW5lIHRlc3RzPC9kaXY+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgbWF2ZW4gaXRlc3Q8L2Rpdj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgIDxkaXYgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICBUbyBydW4gdGhlIG9ubGluZS1tb2RlIHRlc3RzIGZvciBzYXkgdGhlIG1vZHVsZXMvaW50ZWdyYXRpb24NCiAgICAgICAgICAgICAgUnVuICJtYXZlbiBpdGVzdCIgZnJvbSBtb2R1bGVzL2ludGVncmF0aW9uPC9kaXY+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgbWF2ZW4gdGVzdCBpdGVzdDwvZGl2Pg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgIFRvIHJ1biBhbGwgdGVzdHMgZm9yIHNheSB0aGUgbW9kdWxlcy9pbnRlZ3JhdGlvbiAgICAgUnVuICJtYXZlbg0KICAgICAgICAgICAgICB0ZXN0IGl0ZXN0IiBmcm9tIG1vZHVsZXMvaW50ZWdyYXRpb248L2Rpdj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgICA8dHI+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgIDxkaXYgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICBtYXZlbiAtZzwvZGl2Pg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgIExpc3QgZG93biBhbGwgdGhlIGNvbW1hbmRzIGF2YWlsYWJsZSB3aXRoIG1hdmVuPC9kaXY+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgbWF2ZW4gbXVsdGlwcm9qZWN0PC9kaXY+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgZ2VuZXJhdGUgdGhpcyBzaXRlPC9kaXY+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPg0KICAgICAgICAgICAgICA8ZGl2IGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgbWF2ZW4gaWRlYTptdWx0aXByb2plY3Q8L2Rpdj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+DQogICAgICAgICAgICAgIDxkaXYgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICBnZW5lcmF0ZSBJREVBIC5pcHIsIC5pbWwgYW5kIC5pd3MgcHJvamVjdCBmaWxlczwvZGl2Pg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD4NCiAgICAgICAgICAgICAgPGRpdiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgIG1hdmVuIC1EbWF2ZW4udGVzdC5za2lwPXRydWU8L2Rpdj4NCiAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICA8dGQ+QnVpbGRzIEF4aXMyIGFuZCBza2lwcyBhbGwgdGhlIHRlc3RzPC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD5tYXZlbiBkaXN0LW1pbi1iaW4gPC90ZD4NCiAgICAgICAgICAgIDx0ZD5XaWxsIGdlbmVyYXRlIHRoZSBiaW5hcnkgdmVyc2lvbiBvZiBBeGlzMiBtaW5pbWFsIGRpc3RyaWJ1dGlvbiA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkPm1hdmVuIGRpc3QtbWluLXNyYzwvdGQ+DQogICAgICAgICAgICA8dGQ+V2lsbCBnZW5lcmF0ZSB0aGUgc291cmNlIHZlcnNpb24gb2YgQXhpczIgbWluaW1hbCBkaXN0cmlidXRpb24gPC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD5tYXZlbiBkaXN0LXN0ZC1iaW4gPC90ZD4NCiAgICAgICAgICAgIDx0ZD5XaWxsIGdlbmVyYXRlIHRoZSBiaW5hcnkgdmVyc2lvbiBvZiBBeGlzMiBzdGFuZGFyZCBkaXN0cmlidXRpb24gPC90ZD4NCiAgICAgICAgICA8L3RyPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZD5tYXZlbiBkaXN0LXN0ZC1iaW4gPC90ZD4NCiAgICAgICAgICAgIDx0ZD5XaWxsIGdlbmVyYXRlIHRoZSBzb3VyY2UgdmVyc2lvbiBvZiBBeGlzMiBzdGFuZGFyZCBkaXN0cmlidXRpb24gPC90ZD4NCiAgICAgICAgICA8L3RyPg0KCQkgIDx0cj4NCiAgICAgICAgICAgIDx0ZD5tYXZlbiByZWxlYXNlIDwvdGQ+DQogICAgICAgICAgICA8dGQ+R2VuZXJhdGUgYWxsIHRoZSBkaXN0cmlidXRhbGVzIGZvciBBeGlzMiA8L3RkPg0KICAgICAgICAgIDwvdHI+DQoJCSAgPHRyPg0KICAgICAgICAgICAgPHRkPm1hdmVuIGNsZWFuIGphciAtRG1hdmVuLnRlc3Quc2tpcD10cnVlIC1vIDwvdGQ+DQogICAgICAgICAgICA8dGQ+VGhpcyB3aWxsIGNsZWFuIGFsbCB0aGUgdGFyZ2V0IGZvbGRlciBhbmQgY29tcGlsZSB5b3VyIHNvdXJjZSwgd2l0aG91dCBydW5uaW5nIHRoZSB0ZXN0cyBvciBkb3dubG9hZGluZyBzbmFwc2hvdHMgb2YgZGVwZW5kYW5jaWVzLiBUaGlzIGlzIHRoZSBxdWlja2VzdCB3YXkgb2YgY29tcGlsaW5nIEF4aXMyIHNvdXJjZXMuIEhvd2V2ZXIgaXQgaXMgaGlnaGx5IHJlY29tbWVuZGVkIHRvIHJ1biB0aGUgdGVzdHMgYWxsIHRoZSB0aW1lIDwvdGQ+DQogICAgICAgICAgPC90cj4NCiAgICAgICAgPC90Ym9keT4NCiAgICAgIDwvdGFibGU+DQogICAgICA8YnI+DQogICAgPC9vbD4NCiAgICA8cD48L3A+DQogIDwvbGk+DQo8L29sPg0KPC9ib2R5Pg0KPC9odG1sPg0K