SGkgYWxsLAp3ZSBuZWVkIHRvIGZpbmQgYSBjb21tb24gc29sdXRpb24gdG8gYSByZWN1cnJpbmcg aW50ZXJhY3Rpb24gcHJvYmxlbTogClN3aXRjaGluZyBiZXR3ZWVuIGRpZmZlcmVudCBjYXRlZ29y aWVzIChvciBzZXRzIG9mIGl0ZW1zKSBpbiBhIHNjcmVlbiAoZGlhbG9nIApvciBhcHBsaWNhdGlv bikuIFRoZXJlIGFyZSBtYW55IGNhc2VzIGZvciB0aGlzIHByb2JsZW0gYWxyZWFkeS4gVGhlc2Ug YXJlIHRoZSAKb25lcyB0aGF0IGp1bXAgdG8gbXkgbWluZDoKLSBBcHBsaWNhdGlvbiBjYXRlZ29y aWVzIGluIHRoZSBhcHAgbGF1bmNoZXIgKHdlIGhhdmUgdGhlIHRhZyBjbG91ZCBidXQgaXQncyAK aGlkZGVuIGJlY2F1c2UgaXQncyBub3QgZ29vZCBlbm91Z2ggeWV0KQotIEl0ZW0gY2F0ZWdvcmll cyBpbiB0aGUgIkFkZCBJdGVtcyIgZGlhbG9nIChjdXJyZW50bHkgaWNvbnMgb24gdGhlIGZpcnN0 IApzY3JlZW4sIGJhY2sgYXJyb3cgdG8gcmV0dXJuIHRvIHNlbGVjdGlvbiBzY3JlZW4uIE5vdCBn b29kLikKLSBTZXR0aW5ncyBtb2R1bGVzIChjdXJyZW50bHkgbGlzdCBvbiB0aGUgbGVmdC4gV29y a3MgYnV0IHJlcXVpcmVzIHNjcm9sbGluZyAKaWYgbGlzdCBpcyBsb25nZXIgdGhhbiB0aGUgZGlh bG9nKQotIERpZmZlcmVudCBzY3JlZW5zIGluIHRoZSBBYm91dCBBcHAgKHRhYnMgb24gdG9wKQoK QXMgd2UgY2FuIHNlZSwgd2UgY3VycmVudGx5IGhhdmUgdGhyZWUgZGlmZmVyZW50IHNvbHV0aW9u cyBmb3IgdGhlIHNhbWUgCmludGVyYWN0aW9uIHByb2JsZW0uIFRoaXMgaXMgYmFk4oSiIGFuZCBp dCB3b3VsZCBoZWxwIGNvbnNpc3RlbmN5IGEgbG90IGlmIHdlIApjYW1lIHVwIHdpdGggYSBnZW5l cmFsIHNvbHV0aW9uLiAKVGhlIHNvbHV0aW9uIHNob3VsZCBtZWV0IHRoZSBmb2xsb3dpbmcgcmVx dWlyZW1lbnRzOgotIFdvcmsgd2l0aCBhIGxhcmdlciBudW1iZXIgb2YgaXRlbXMgKEknZCBzYXkg dXAgdG8gMjAgb3IgMzApCi0gQWxsb3cgZWFzeSBhbmQgZmFzdCBzd2l0Y2hpbmcgYmV0d2VlbiBz ZXRzIHdpdGhvdXQgaGF2aW5nIHRvIGdvIGJhY2sgdG8gYW4gCm92ZXJ2aWV3IHNjcmVlbgotIFNo b3cgYW4gaWNvbiBhbmQgdGV4dCBmb3IgZWFjaCBzZXQKLSBXb3JrIGJvdGggaW4gZGlhbG9ncyBh bmQgZnVsbHNjcmVlbgoKU28gdGhpcyBpcyBzb21ldGhpbmcgd2UgaGF2ZSB0byB0aGluayBhYm91 dCBwcmV0dHkgc29vbi4gSSB0aGluayBpdCB3b3VsZCBtYWtlIApzZW5zZSB0byB0YWxrIGFib3V0 IHRoaXMgaW4gcmVhbC10aW1lIChpZGVhbGx5IGluIHBlcnNvbiwgdGVsY28gb3IgY2hhdCB3b3Vs ZCAKYmUgYmV0dGVyIHRoYW4gdmlhIG1haWxpbmcgbGlzdCkgZmlyc3QgYW5kIHRoZW4gcHV0IGEg ZHJhZnQgc29tZWh3ZXJlIHRvIGJlIApkaXNjdXNzZWQgb24gdGhlIE1MLgoKUmVnYXJkcywKVGhv bWFzCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFj dGl2ZSBtYWlsaW5nIGxpc3QKQWN0aXZlQGtkZS5vcmcKaHR0cHM6Ly9tYWlsLmtkZS5vcmcvbWFp bG1hbi9saXN0aW5mby9hY3RpdmUK