Li4gU2VxdWVuY2VzL0NvbmNlcHRzLy9CaWRpcmVjdGlvbmFsIFNlcXVlbmNlIHwyMAoKQmlkaXJlY3Rpb25hbCBTZXF1ZW5jZQo9PT09PT09PT09PT09PT09PT09PT09CgpEZXNjcmlwdGlvbgotLS0tLS0tLS0tLQoKQSB8QmlkaXJlY3Rpb25hbCBTZXF1ZW5jZXwgaXMgYSB8Rm9yd2FyZCBTZXF1ZW5jZXwgd2hvc2UgaXRlcmF0b3JzIG1vZGVsCnxCaWRpcmVjdGlvbmFsIEl0ZXJhdG9yfC4gCgpSZWZpbmVtZW50IG9mCi0tLS0tLS0tLS0tLS0KCnxGb3J3YXJkIFNlcXVlbmNlfAoKCkV4cHJlc3Npb24gcmVxdWlyZW1lbnRzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpJbiBhZGRpdGlvbiB0byB0aGUgcmVxdWlyZW1lbnRzIGRlZmluZWQgaW4gfEZvcndhcmQgU2VxdWVuY2V8LCAKZm9yIGFueSB8QmlkaXJlY3Rpb25hbCBTZXF1ZW5jZXwgYGBzYGAgdGhlIGZvbGxvd2luZyBtdXN0IGJlIG1ldDoKCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IEV4cHJlc3Npb24gICAgICAgICAgICAgICAgfCBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb21wbGV4aXR5ICAgICAgICAgICAgICAgIHwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT0rCnwgYGBiZWdpbjxzPjo6dHlwZWBgICAgICAgICB8IHxCaWRpcmVjdGlvbmFsIEl0ZXJhdG9yfCAgICAgICAgICB8IEFtb3J0aXplZCBjb25zdGFudCB0aW1lICAgfAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBgYGVuZDxzPjo6dHlwZWBgICAgICAgICAgIHwgfEJpZGlyZWN0aW9uYWwgSXRlcmF0b3J8ICAgICAgICAgIHwgQW1vcnRpemVkIGNvbnN0YW50IHRpbWUgICB8CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwp8IGBgYmFjazxzPjo6dHlwZWBgICAgICAgICAgfCBBbnkgdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCBBbW9ydGl6ZWQgY29uc3RhbnQgdGltZSAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCgoKRXhwcmVzc2lvbiBzZW1hbnRpY3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0KCnxTZW1hbnRpY3MgZGlzY2xhaW1lci4uLnwgfEZvcndhcmQgU2VxdWVuY2V8LgoKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBFeHByZXNzaW9uICAgICAgICAgICAgICAgIHwgU2VtYW50aWNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKz09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKfCBgYGJhY2s8cz46OnR5cGVgYCAgICAgICAgIHwgVGhlIGxhc3QgZWxlbWVudCBpbiB0aGUgc2VxdWVuY2U7IHNlZSB8YmFja3wuICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCgpNb2RlbHMKLS0tLS0tCgoqIHx2ZWN0b3J8CiogfHJhbmdlX2N8CgoKU2VlIGFsc28KLS0tLS0tLS0KCnxTZXF1ZW5jZXN8LCB8Rm9yd2FyZCBTZXF1ZW5jZXwsIHxSYW5kb20gQWNjZXNzIFNlcXVlbmNlfCwgfEJpZGlyZWN0aW9uYWwgSXRlcmF0b3J8LCB8YmVnaW58IC8gfGVuZHwsIHxiYWNrfAoKCi4uIGNvcHlyaWdodDo6IENvcHlyaWdodCCpICAyMDAxLTIwMDkgQWxla3NleSBHdXJ0b3ZveSBhbmQgRGF2aWQgQWJyYWhhbXMKICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLiAoU2VlIGFjY29tcGFueWluZwogICBmaWxlIExJQ0VOU0VfMV8wLnR4dCBvciBjb3B5IGF0IGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dCkK