T24gVHVlLCAyMDE1LTA1LTEyIGF0IDE1OjA5IC0wNjAwLCBQZXRlIFRyYXZpcyB3cm90ZToKPiAK PiBPbiBNYXkgMTIsIDIwMTUgMTozOSBQTSwgIlNoYXVuIE1jQ2FuY2UiIDxzaGF1bm1AZ25vbWUu b3JnPiB3cm90ZToKPiA+Cj4gPiBIaSBhbGwsCj4gPgo+ID4gSSB3YW50ZWQgdG8gbGV0IHlvdSBr bm93IHRoYXQgdGhlIE9wZW4gSGVscCBDb25mZXJlbmNlIGlzIGhhcHBlbmluZwo+ID4gYWdhaW4g dGhpcyB5ZWFyLCBTZXB0IDI2LTI3Lgo+ID4KPiA+IGh0dHA6Ly9jb25mLm9wZW5oZWxwLmNjLwo+ ID4KPiA+IFRoaXMgd2lsbCBiZSB5ZWFyIDUuIEl0IHdvdWxkIGJlIGdyZWF0IHRvIHNlZSBzb21l IGZyaWVuZGx5IEZlZG9yYQo+IGZhY2VzCj4gPiBhZ2Fpbi4gQWZ0ZXIgdGhlIGNvbmZlcmVuY2Us IHdlIGFsc28gaG9zdCB0aHJlZSBkYXlzIG9mIHRlYW0KPiBzcHJpbnRzLgo+ID4gQW55IHRlYW0g aXMgd2VsY29tZSB0byBqb2luIGZvciBhIHNwcmludC4gV2Ugc3VwcGx5IHRoZSByb29tcyBhbmQK PiB0aGUKPiA+IHN1cHBsaWVzLiBZb3Ugc3VwcGx5IHRoZSBwZW9wbGUuCj4gPgo+ID4gTGV0IG1l IGtub3cgaWYgeW91IGhhdmUgYW55IHF1ZXN0aW9ucy4KPiA+Cj4gPiBUaGFua3MsCj4gPiBTaGF1 bgo+ID4KPiA+Cj4gPiAtLQo+ID4gCj4gCj4gVGhhbmtzIGZvciB0aGUgaGVhZHMgdXAsIFNoYXVu LiAgSSBjYW4gcHJvYmFibHkgbWFrZSByb29tIGluIG15Cj4gc2NoZWR1bGUgdGhpcyB5ZWFyLiAg SWYgaXQgbG9va3MgbGlrZSBJJ2xsIGJlIGFibGUgdG8gYWZmb3JkIHRoZSB0cmlwLAo+IEknbSBn YW1lLgo+IAo+IEl0IGRvZXMgbG9vayBsaWtlIGFuIGV2ZW50IHRvIGJyaW5nIGEgKnRlYW0qIHRv LCB0aG91Z2guICBNYXliZSB3ZQo+IGNvdWxkIG9yZ2FuaXplIGEgY29pbmNpZGluZyBGQUQ/ICBJ IHRoaW5rIGl0IHdvdWxkIGJlIGVtYmFycmFzc2luZyB0bwo+IGJlIGEgb25lLW1hbiB0ZWFtIDpQ CgpJbmRpdmlkdWFscyBhcmUgY2VydGFpbmx5IHdlbGNvbWUgdG8gYXR0ZW5kLiBUaGUgY29uZmVy ZW5jZSBwb3J0aW9uIGlzCnN0YW5kLWFsb25lLCBhbmQgZG9lc24ndCBkZXBlbmQgb24gdGhlIHNw cmludHMuIEJ1dCB3ZSBkbyBsaWtlIGhhdmluZwp0ZWFtcyBqb2luIGZvciB0aGUgc3ByaW50cy4K CkknbSBhIGh1Z2UgZmFuIG9mIGRvYyBzcHJpbnRzLiBJIGNyZWRpdCBtb3N0IG9mIHRoZSBzdWNj ZXNzIEkgaGFkIGluIHRoZQpHTk9NRSBkb2NzIHRlYW0gdG8gb3VyIHJlZ3VsYXIgc3ByaW50cy4g Tm90IG9ubHkgZG8geW91IGdldCBhIGxvdCBkb25lCmR1cmluZyBhIHNwcmludCwgYnV0IHRoZXkn cmUgYWxzbyBncmVhdCBmb3IgYnVpbGRpbmcgY29tbXVuaXR5LiBIYXZpbmcKdGhlbSBpbiBhIHNo YXJlZCBlbnZpcm9ubWVudCBsaWtlIE9wZW4gSGVscCBtZWFucyB5b3UgY2FuIHRhcCBpbnRvIHRo ZQpjb2xsZWN0aXZlIHdpc2RvbSBvZiBvdGhlciBzcHJpbnRlcnMuIFBsdXMsIGl0J3MgYSBsb3Qg b2YgZnVuLgoKV2UgaGF2ZSByb29tIGZvciBzaXggdGVhbXMgdGhpcyB5ZWFyLCBtb3JlIHRoYW4g YW55IHByZXZpb3VzIHllYXIuIElmCnlvdSdkIGxpa2UgdG8gaG9zdCBvbmUsIEkndmUgZm91bmQg aXQncyB1c2VmdWwgdG8gZW1haWwgcGVvcGxlIHRvIGdldAppbnRlcmVzdCBhbmQgc2V0IHVwIGEg d2lraSBwYWdlIGZvciBwbGFubmluZy4gSSBjYW4gaGVscCB3aXRoIGFueQpsb2dpc3RpY3MuCgot LQpTaGF1bgoKCgoKLS0gCmRvY3MgbWFpbGluZyBsaXN0CmRvY3NAbGlzdHMuZmVkb3JhcHJvamVj dC5vcmcKVG8gdW5zdWJzY3JpYmU6Cmh0dHBzOi8vYWRtaW4uZmVkb3JhcHJvamVjdC5vcmcvbWFp bG1hbi9saXN0aW5mby9kb2Nz