ClRoZSBNUEwgcHJvdmlkZXMgYSBicm9hZCByYW5nZSBvZiBmdW5kYW1lbnRhbCBhbGdvcml0aG1zIGFpbWVkIHRvIApzYXRpc2Z5IHRoZSBtYWpvcml0eSBvZiBzZXF1ZW50aWFsIGNvbXBpbGUtdGltZSBkYXRhIHByb2Nlc3NpbmcgCm5lZWRzLiBUaGUgYWxnb3JpdGhtcyBpbmNsdWRlIGNvbXBpbGUtdGltZSBjb3VudGVycGFydHMKb2YgbWFueSBvZiB0aGUgU1RMIGFsZ29yaXRobXMsIGl0ZXJhdGlvbiBhbGdvcml0aG1zIGJvcnJvd2VkIGZyb20gCmZ1bmN0aW9uYWwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzLCBhbmQgbW9yZS4KClVubGlrZSB0aGUgYWxnb3JpdGhtcyBpbiB0aGUgQysrIFN0YW5kYXJkIExpYnJhcnksIHdoaWNoIG9wZXJhdGUgb24KaW1wbGljdCAqaXRlcmF0b3IgcmFuZ2VzKiwgdGhlIG1ham9yaXR5IG9mIE1QTCBjb3VudGVycGFydHMgdGFrZQphbmQgcmV0dXJuICpzZXF1ZW5jZXMqLiBUaGlzIGRlcml2YXRpb24gaXMgbm90IGRpY3RhdGVkIGJ5IHRoZSAKZnVuY3Rpb25hbCBuYXR1cmUgb2YgQysrIGNvbXBpbGUtdGltZSBjb21wdXRhdGlvbnMgcGVyIHNlLCBidXQKcmF0aGVyIGJ5IGEgZGVzaXJlIHRvIGltcHJvdmUgZ2VuZXJhbCB1c2FiaWxpdHkgb2YgdGhlIGxpYnJhcnksCm1ha2luZyBwcm9ncmFtbWluZyB3aXRoIGNvbXBpbGUtdGltZSBkYXRhIHN0cnVjdHVyZXMgYXMgZW5qb3lhYmxlIAphcyBwb3NzaWJsZS4KCi4uIFRoaXMgY2FuIGJlIHNlZW4gYXMgYSBmdXJ0aGVyIGdlbmVyYWxpemF0aW9uIGFuZCBleHRlbnNpb24gb2YgCiAgIHRoZSBTVEwncyBjb25jZXB0dWFsIGZyYW1ld29yay4KCkluIHRoZSBzcGlyaXQgb2YgdGhlIFNUTCwgTVBMIGFsZ29yaXRobXMgYXJlICpnZW5lcmljKiwgbWVhbmluZyAKdGhhdCB0aGV5IGFyZSBub3QgdGllZCB0byBwYXJ0aWN1bGFyIHNlcXVlbmNlIGNsYXNzIAppbXBsZW1lbnRhdGlvbnMsIGFuZCBjYW4gb3BlcmF0ZSBvbiBhIHdpZGUgcmFuZ2Ugb2YgYXJndW1lbnRzIGFzIApsb25nIGFzIHRoZXkgc2F0aXNmeSB0aGUgZG9jdW1lbnRlZCByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMKYXJlIGZvcm11bGF0ZWQgaW4gdGVybXMgb2YgY29uY2VwdHMuIFVuZGVyIHRoZSBob29kLCAKYWxnb3JpdGhtcyBhcmUgZGVjb3VwbGVkIGZyb20gY29uY3JldGUgc2VxdWVuY2UgCmltcGxlbWVudGF0aW9ucyBieSBvcGVyYXRpbmcgb24gfGl0ZXJhdG9yc3wuCgpBbGwgTVBMIGFsZ29yaXRobXMgY2FuIGJlIHNvcnRlZCBpbnRvIHRocmVlIAptYWpvciBjYXRlZ29yaWVzOiBpdGVyYXRpb24gYWxnb3JpdGhtcywgcXVlcnlpbmcgYWxnb3JpdGhtcywgYW5kIAp0cmFuc2Zvcm1hdGlvbiBhbGdvcml0aG1zLiBUaGUgdHJhbnNmb3JtYXRpb24gYWxnb3JpdGhtcyBpbnRyb2R1Y2UgCmFuIGFzc29jaWF0ZWQgfEluc2VydGVyfCBjb25jZXB0LCBhIHJvdWdoIGVxdWl2YWxlbnQgZm9yIHRoZSBub3Rpb24gb2YgCnxPdXRwdXQgSXRlcmF0b3J8IGluIHRoZSBTdGFuZGFyZCBMaWJyYXJ5LiBNb3Jlb3ZlciwgZXZlcnkgCnRyYW5zZm9ybWF0aW9uIGFsZ29yaXRobSBwcm92aWRlcyBhIGBgcmV2ZXJzZV9gYCBjb3VudGVycGFydCwgCmFsbG93aW5nIGZvciBhIHdpZGVyIHJhbmdlIG9mIGVmZmljaWVudCB0cmFuc2Zvcm1hdGlvbnMgfC0tfCBhCmNvbW1vbiBmdW5jdGlvbmFsaXR5IGRvY3VtZW50ZWQgYnkgdGhlIHxSZXZlcnNpYmxlIEFsZ29yaXRobXwgCmNvbmNlcHQuCgoKLi4gfE91dHB1dCBJdGVyYXRvcnwgcmVwbGFjZTo6IGBPdXRwdXQgSXRlcmF0b3IgPGh0dHA6Ly93d3cuc2dpLmNvbS90ZWNoL3N0bC9PdXRwdXRJdGVyYXRvci5odG1sPmBfXwouLiB8c2VxdWVuY2UgYWxnb3JpdGhtc3wgcmVwbGFjZTo6IGBzZXF1ZW5jZSBhbGdvcml0aG1zYF8KLi4gX2BzZXF1ZW5jZSBhbGdvcml0aG1zYDogYEFsZ29yaXRobXNgXwoKCi4uIGNvcHlyaWdodDo6IENvcHlyaWdodCCpICAyMDAxLTIwMDkgQWxla3NleSBHdXJ0b3ZveSBhbmQgRGF2aWQgQWJyYWhhbXMKICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZwogICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkK