ClRoZSBtZXRhZnVuY3Rpb25zIHRoYXQgZm9ybSB0aGUgZXNzZW50aWFsIGludGVyZmFjZSBvZiBzZXF1ZW5jZSBgY2xhc3Nlc2BfXwpkb2N1bWVudGVkIGluIHRoZSBjb3JyZXNwb25kaW5nIHxzZXF1ZW5jZSBjb25jZXB0c3wgYXJlIGtub3duIGFzIAoqaW50cmluc2ljIHNlcXVlbmNlIG9wZXJhdGlvbnMqLiBUaGV5IGRpZmZlciBmcm9tIGdlbmVyaWMgCnxzZXF1ZW5jZSBhbGdvcml0aG1zfCBpbiB0aGF0LCBpbiBnZW5lcmFsLCB0aGV5IG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQgCmZyb20gc2NyYXRjaCBmb3IgZWFjaCBuZXcgc2VxdWVuY2UgY2xhc3MgWyNpbnRyaW5zaWNdXy4gCgpfXyBgbGFiZWwtU2VxdWVuY2VzLUNsYXNzZXNgXwoKSXQncyB3b3J0aCBub3RpbmcgdGhhdCBTVEwgY291bnRlcnBhcnRzIG9mIHRoZXNlIG1ldGFmdW5jdGlvbnMgYXJlIAp1c3VhbGx5IGltcGxlbWVudGVkIGFzIG1lbWJlciBmdW5jdGlvbnMuCgouLiBbI2ludHJpbnNpY10gSW4gcHJhY3RpY2UsIG1hbnkgb2YgaW50cmluc2ljIG1ldGFmdW5jdGlvbnMgb2ZmZXIgYSAKICAgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB0aGF0IHdpbGwgd29yayBpbiBtYWpvcml0eSBvZiBjYXNlcywgZ2l2ZW4gCiAgIHRoYXQgeW91J3ZlIGltcGxlbWVudGVkIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgdGhleSByZWx5IG9uIChzdWNoIAogICBhcyB8YmVnaW58IC8gfGVuZHwpLgoKCi4uIGNvcHlyaWdodDo6IENvcHlyaWdodCCpICAyMDAxLTIwMDkgQWxla3NleSBHdXJ0b3ZveSBhbmQgRGF2aWQgQWJyYWhhbXMKICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZwogICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkK