DQpGcmVlUlRPUytUcmFjZSBUcmFjZSBSZWNvcmRlciBMaWJyYXJ5DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpQZXJjZXBpbyBBQg0Kd3d3LnBlcmNlcGlvLmNvbQ0KDQpUaGlzIGRpcmVjdG9yeSBjb250YWlucyB0aGUgY29yZSB0cmFjZSByZWNvcmRlciBsaWJyYXJ5IHVzZWQgYnkgRnJlZVJUT1MrVHJhY2UgdjIuMy4gDQoNClJlYWR5LXRvLXJ1biBkZW1vbnN0cmF0aW9ucyBwcm9qZWN0cyBhcmUgZm91bmQgYXQgd3d3LnBlcmNlcGlvLmNvbS4NCg0KRm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byBpbnRlZ3JhdGUgdGhlIHJlY29yZGVyIGxpYnJhcnkgaW4geW91ciBGcmVlUlRPUyBidWlsZCwgc2VlDQp0aGUgRnJlZVJUT1MrVHJhY2UgVXNlciBNYW51YWwsIHNlY3Rpb24gMi4NCg0KRm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1cGxvYWQgdGhlIHRyYWNlIGRhdGEgZnJvbSB5b3VyIHRhcmdldCBzeXN0ZW0gUkFNIHRvIA0KRnJlZVJUT1MrVHJhY2UsIHNlZSAiZGVidWdnZXIgdHJhY2UgdXBsb2FkLnR4dCINCg0KTk9URTogVGhpcyB0cmFjZSByZWNvcmRlciBsaWJyYXJ5IHJlcXVpcmVzIEZyZWVSVE9TIHY3LjMuMCBvciBsYXRlci4NCg0KRmlsZXMgaW5jbHVkZWQNCi0tLS0tLS0tLS0tLS0tDQotIHRyY0NvbmZpZy5oICAgICAgICAgICAgICAgLSBUaGUgcmVjb3JkZXIncyBjb25maWd1cmF0aW9uIGZpbGUsIGNoZWNrIHRoaXMhDQotIHRyY1VzZXIuYyAvIHRyY1VzZXIuaCAgICAgLSBUaGUgbWFpbiBBUEkgdG93YXJkcyB0aGUgYXBwbGljYXRpb24gKHRyY1VzZXIuaCBpbiB0aGUgb25seSBpbmNsdWRlIG5lY2Vzc2FyeSkuDQotIHRyY0tlcm5lbC5jIC8gdHJjS2VybmVsLmggLSBJbnRlcm5hbCByb3V0aW5lcyBmb3Igc3RvcmluZyBrZXJuZWwgZXZlbnRzLg0KLSB0cmNCYXNlLmMgLyB0cmNCYXNlLmggICAgIC0gSW50ZXJuYWwgcm91dGluZXMgZm9yIG1hbmlwdWxhdGluZyB0aGUgZGF0YSBzdHJ1Y3R1cmVzIGFuZCBjYWxjdWxhdGluZyB0aW1lc3RhbXBzLg0KLSB0cmNQb3J0LmMgLyB0cmNQb3J0LmggICAgIC0gVGhlIHBvcnQgbGF5ZXIsIGFic3RyYWN0aW5nIHRoZSBoYXJkd2FyZSAobWFpbmx5IHRoZSB0aW1lciB1c2VkIGZvciB0aW1lc3RhbXBpbmcpLg0KLSB0cmNIb29rcy5oCQkJCS0gVGhlIGludGVyZmFjZSBiZXR3ZWVuIEZyZWVSVE9TIGFuZCB0aGUgcmVjb3JkZXIsIGNvbnRhaW5pbmcgdHJhY2UgbWFjcm8gZGVmaW50aW9ucy4NCi0gdHJjVHlwZXMuaAkJCQktIFR5cGUgZGVmaW5pdGlvbnMgdXNlZC4NCg0KSGFyZHdhcmUgVGltZXIgUG9ydHMNCi0tLS0tLS0tLS0tLS0tLS0tLS0tDQpUaGlzIHJlbGVhc2UgY29udGFpbnMgaGFyZHdhcmUgdGltZXIgcG9ydHMgZm9yIHRoZSBmb2xsb3dpbmcgaGFyZHdhcmUgYXJjaGl0ZWN0dXJlczoNCg0KLSBBUk0gQ29ydGV4IE0zL000IChhbGwgYnJhbmRzLCBzdWNoIGFzIEF0bWVsIFNBTTMvU0FNNCwgTlhQIDE3eHgsIDE4eHgsIDQzeHgsIFNUTTMyLCBGcmVlc2NhbGUgS2luZXRpcywgLi4uKQ0KLSBBdG1lbCBBVDkxU0FNN3gNCi0gQXRtZWwgQVQzMlVDMyAoQVZSMzIpDQotIFJlbmVzYXMgUlg2MDAgKGUuZy4sIFJYNjJOKQ0KLSBNaWNyb2NoaXAgZHNQSUMvUElDMjQNCg0KVGhlc2UgYXJlIGRlZmluZWQgaW4gdHJjUG9ydC5oLiBUaGlzIGFsc28gY29udGFpbnMgc2V2ZXJhbCAidW5vZmZpY2lhbCIgcG9ydHMsIHByb3ZpZGVkIGJ5IGV4dGVybmFsIGNvbnRyaWJ1dG9ycy4NCkJ5IHVub2ZmaWNpYWwsIGl0IG1lYW5zIHRoYXQgdGhleSBhcmUgbm90IHlldCB2ZXJpZmllZCBieSBQZXJjZXBpbyBBQi4gUGxlYXNlIHJlZmVyIHRvIHRyY1BvcnQuaCBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24uIA0KSWYgeW91IHVzZSBhbiB1bm9mZmljaWFsIHBvcnQgYW5kIGJlbGVpdmUgaXQgaXMgaW5jb3JyZWN0LCBwbGVhc2UgbGV0IHVzIGtub3chDQoNCkluIGNhc2UgeW91ciBNQ1UgaXMgbm90IHlldCBzdXBwb3J0ZWQgZGlyZWN0bHksIGRldmVsb3BpbmcgYSBuZXcgcG9ydCBpcyBxdWl0ZSBlYXN5LCBqdXN0IGEgbWF0dGVyIG9mIGRlZmluaW5nIGEgZmV3IG1hY3Jvcw0KYWNjb3JkaW5nIHRvIHlvdXIgc3BlY2lmaWMgTUNVLiBTZWUgdHJjUG9ydC5oIGZvciBmdXJ0aGVyIGluZm9ybWF0aW9uLg0KDQpJbiBjYXNlIHlvdSBoYXZlIGFueSBxdWVzdGlvbnMsIGRvIG5vdCBoZXNpdGF0ZSB0byBjb250YWN0IHN1cHBvcnRAcGVyY2VwaW8uY29tDQoNClBlcmNlcGlvIEFCDQpL9nBtYW5nYXRhbiAxQQ0KNzIyMTUgVuRzdGVy5XMNClN3ZWRlbg0KDQp3d3cucGVyY2VwaW8uY29t