From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tobias Jakobi Subject: Re: [PATCH v3] drm/exynos: mixer: configure layers once in mixer_atomic_flush() Date: Wed, 28 Sep 2016 18:28:30 +0200 Message-ID: <57EBEFAE.6000001@math.uni-bielefeld.de> References: <1474889789-26721-1-git-send-email-tjakobi@math.uni-bielefeld.de> <57EA0D68.401@samsung.com> <57EA5664.3040106@math.uni-bielefeld.de> <130cf67d-4082-1e29-8f14-7c952c8a8012@samsung.com> <57EAA3C2.5000409@math.uni-bielefeld.de> <57EB014D.6010908@samsung.com> <57EB08B4.4070201@math.uni-bielefeld.de> <57EB1C37.9020905@samsung.com> <57EB8831.2000508@math.uni-bielefeld.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.math.uni-bielefeld.de (smtp.math.uni-bielefeld.de [129.70.45.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id CE9806E7DD for ; Wed, 28 Sep 2016 16:28:38 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae Cc: "linux-samsung-soc@vger.kernel.org" , DRI mailing list , Marek Szyprowski List-Id: dri-devel@lists.freedesktop.org SW5raSBEYWUgd3JvdGU6Cj4gMjAxNi0wOS0yOCAxODowNiBHTVQrMDk6MDAgVG9iaWFzIEpha29i aSA8dGpha29iaUBtYXRoLnVuaS1iaWVsZWZlbGQuZGU+Ogo+PiBIZWxsbyBJbmtpLAo+Pgo+Pgo+ PiBJbmtpIERhZSB3cm90ZToKPj4+Cj4+Pgo+Pj4gMjAxNuuFhCAwOeyblCAyOOydvCAwOTowM+yX kCBUb2JpYXMgSmFrb2JpIOydtCjqsIApIOyTtCDquIA6Cj4+Pj4gSGV5IElua2ksCj4+Pj4KPj4+ Pgo+Pj4+IElua2kgRGFlIHdyb3RlOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiAyMDE264WEIDA57JuUIDI4 7J28IDAxOjUy7JeQIFRvYmlhcyBKYWtvYmkg7J20KOqwgCkg7JO0IOq4gDoKPj4+Pj4+IEhlbGxv IEFuZHJ6ZWosCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IEFuZHJ6ZWogSGFqZGEgd3JvdGU6Cj4+Pj4+ Pj4gT24gMjcuMDkuMjAxNiAxMzoyMiwgVG9iaWFzIEpha29iaSB3cm90ZToKPj4+Pj4+Pj4gSGVs bG8gSW5raSwKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gSW5raSBEYWUgd3JvdGU6Cj4+Pj4+ Pj4+PiAyMDE264WEIDA57JuUIDI27J28IDIwOjM27JeQIFRvYmlhcyBKYWtvYmkg7J20KOqwgCkg 7JO0IOq4gDoKPj4+Pj4+Pj4+PiBPbmx5IG1hbmlwdWxhdGUgdGhlIE1YUl9DRkcgYW5kIE1YUl9M QVlFUl9DRkcgcmVnaXN0ZXJzIG9uY2UKPj4+Pj4+Pj4+PiBpbiBtaXhlcl9jZmdfbGF5ZXIoKS4K Pj4+Pj4+Pj4+PiBUcmlnZ2VyIHRoaXMgdmlhIGF0b21pYyBmbHVzaC4KPj4+Pj4+Pj4+Pgo+Pj4+ Pj4+Pj4+IENoYW5nZXMgaW4gdjI6Cj4+Pj4+Pj4+Pj4gLSBpc3N1ZSBtaXhlcl9jZmdfbGF5ZXIo KSBpbiBtaXhlcl9kaXNhYmxlKCkKPj4+Pj4+Pj4+PiAtIHJlbmFtZSBmaWVsZHMgYXMgc3VnZ2Vz dGVkIGJ5IEFuZHJ6ZWoKPj4+Pj4+Pj4+PiAtIGFkZGVkIGRvY3UgdG8gbWl4ZXIgY29udGV4dCBz dHJ1Y3QKPj4+Pj4+Pj4+PiAtIHNpbXBsaWZ5IG1peGVyX3dpbl9yZXNldCgpIGFzIHdlbGwKPj4+ Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IENoYW5nZXMgaW4gdjM6Cj4+Pj4+Pj4+Pj4gLSBzaW1wbGlmeSBz b21lIGNvbmRpdGlvbnMgYXMgc3VnZ2VzdGVkIGJ5IElua2kKPj4+Pj4+Pj4+PiAtIGFkZCBkb2N1 IHRvIG1peGVyX2NmZ19sYXllcigpCj4+Pj4+Pj4+Pj4gLSBmb2xkIHN3aXRjaCBzdGF0ZW1lbnRz IGludG8gYSBzaW5nbGUgb25lCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBU b2JpYXMgSmFrb2JpIDx0amFrb2JpQG1hdGgudW5pLWJpZWxlZmVsZC5kZT4KPj4+Pj4+Pj4+PiAt LS0KPj4+Pj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyB8IDEz NSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCj4+Pj4+Pj4+Pj4gIGRyaXZlcnMv Z3B1L2RybS9leHlub3MvcmVncy1taXhlci5oICAgfCAgIDIgKwo+Pj4+Pj4+Pj4+ICAyIGZpbGVz IGNoYW5nZWQsIDkyIGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQo+Pj4+Pj4+Pj4+Cj4+ Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4+Pj4+Pj4+Pj4gaW5k ZXggMWU3OGQ1Ny4uNGYwNmY0ZCAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4+Pj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfbWl4ZXIuYwo+Pj4+Pj4+Pj4+IEBAIC05MywxMiArOTMsMjUgQEAgc3Rh dGljIGNvbnN0IHVpbnQzMl90IHZwX2Zvcm1hdHNbXSA9IHsKPj4+Pj4+Pj4+PiAgICAgICAgRFJN X0ZPUk1BVF9OVjIxLAo+Pj4+Pj4+Pj4+ICB9Owo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gKy8qCj4+ Pj4+Pj4+Pj4gKyAqIE1peGVyIGNvbnRleHQgc3RydWN0dXJlLgo+Pj4+Pj4+Pj4+ICsgKgo+Pj4+ Pj4+Pj4+ICsgKiBAY3J0YzogVGhlIEhETUkgQ1JUQyBhdHRhY2hlZCB0byB0aGUgbWl4ZXIuCj4+ Pj4+Pj4+Pj4gKyAqIEBwbGFuZXM6IEFycmF5IG9mIHBsYW5lIG9iamVjdHMgZm9yIGVhY2ggb2Yg dGhlIG1peGVyIHdpbmRvd3MuCj4+Pj4+Pj4+Pj4gKyAqIEBhY3RpdmVfd2luZG93czogQ2FjaGUg b2YgdGhlIG1peGVyJ3MgaGFyZHdhcmUgc3RhdGUuCj4+Pj4+Pj4+Pj4gKyAqICAgICAgIFRyYWNr cyB3aGljaCBtaXhlciB3aW5kb3dzIGFyZSBhY3RpdmUvaW5hY3RpdmUuCj4+Pj4+Pj4+Pj4gKyAq IEBwaXBlOiBUaGUgQ1JUQyBpbmRleC4KPj4+Pj4+Pj4+PiArICogQGZsYWdzOiBCaXRmaWVsZCBi dWlsZCBmcm9tIHRoZSBtaXhlcl9mbGFnX2JpdHMgZW51bWVyYXRvci4KPj4+Pj4+Pj4+PiArICog QG1peGVyX3Jlc291cmNlczogQSBzdHJ1Y3QgY29udGFpbmluZyByZWdpc3RlcnMsIGNsb2Nrcywg ZXRjLgo+Pj4+Pj4+Pj4+ICsgKiBAbXhyX3ZlcjogVGhlIGhhcmR3YXJlIHJldmlzaW9uL3ZlcnNp b24gb2YgdGhlIG1peGVyLgo+Pj4+Pj4+Pj4+ICsgKi8KPj4+Pj4+Pj4+PiAgc3RydWN0IG1peGVy X2NvbnRleHQgewo+Pj4+Pj4+Pj4+ICAgICAgICBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 Owo+Pj4+Pj4+Pj4+ICAgICAgICBzdHJ1Y3QgZGV2aWNlICAgICAgICAgICAqZGV2Owo+Pj4+Pj4+ Pj4+ICAgICAgICBzdHJ1Y3QgZHJtX2RldmljZSAgICAgICAqZHJtX2RldjsKPj4+Pj4+Pj4+PiAg ICAgICAgc3RydWN0IGV4eW5vc19kcm1fY3J0YyAgKmNydGM7Cj4+Pj4+Pj4+Pj4gICAgICAgIHN0 cnVjdCBleHlub3NfZHJtX3BsYW5lIHBsYW5lc1tNSVhFUl9XSU5fTlJdOwo+Pj4+Pj4+Pj4+ICsg ICAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICBhY3RpdmVfd2luZG93czsKPj4+Pj4+Pj4+PiAg ICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgcGlwZTsKPj4+Pj4+Pj4+PiAgICAgICAgdW5z aWduZWQgbG9uZyAgICAgICAgICAgZmxhZ3M7Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBAQCAtNDE4 LDM3ICs0MzEsNzAgQEAgc3RhdGljIHZvaWQgbWl4ZXJfY2ZnX3JnYl9mbXQoc3RydWN0IG1peGVy X2NvbnRleHQgKmN0eCwgdW5zaWduZWQgaW50IGhlaWdodCkKPj4+Pj4+Pj4+PiAgICAgICAgbWl4 ZXJfcmVnX3dyaXRlbWFzayhyZXMsIE1YUl9DRkcsIHZhbCwgTVhSX0NGR19SR0JfRk1UX01BU0sp Owo+Pj4+Pj4+Pj4+ICB9Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAtc3RhdGljIHZvaWQgbWl4ZXJf Y2ZnX2xheWVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCB3aW4sCj4+ Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHByaW9yaXR5 LCBib29sIGVuYWJsZSkKPj4+Pj4+Pj4+PiArLyoqCj4+Pj4+Pj4+Pj4gKyAqIG1peGVyX2NmZ19s YXllciAtIGFwcGx5IGxheWVyIGNvbmZpZ3VyYXRpb24gdG8gaGFyZHdhcmUKPj4+Pj4+Pj4+PiAr ICogQGN0eDogbWl4ZXIgY29udGV4dAo+Pj4+Pj4+Pj4+ICsgKgo+Pj4+Pj4+Pj4+ICsgKiBUaGlz IGNvbmZpZ3VyZXMgdGhlIE1YUl9DRkcgYW5kIE1YUl9MQVlFUl9DRkcgaGFyZHdhcmUgcmVnaXN0 ZXJzCj4+Pj4+Pj4+Pj4gKyAqIHVzaW5nIHRoZSAnYWN0aXZlX3dpbmRvd3MnIGZpZWxkIG9mIHRo ZSB0aGUgbWl4ZXIgY29udGVudCwgYW5kCj4+Pj4+Pj4+Pj4gKyAqIHRoZSBwaXhlbCBmb3JtYXQg b2YgdGhlIGZyYW1lYnVmZmVycyBhc3NvY2lhdGVkIHdpdGggdGhlIGVuYWJsZWQKPj4+Pj4+Pj4+ PiArICogd2luZG93cy4KPj4+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4+PiArICogSGFzIHRvIGJlIGNh bGxlZCB1bmRlciBtaXhlciBsb2NrLgo+Pj4+Pj4+Pj4+ICsgKi8KPj4+Pj4+Pj4+PiArc3RhdGlj IHZvaWQgbWl4ZXJfY2ZnX2xheWVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgpCj4+Pj4+Pj4+ Pj4gIHsKPj4+Pj4+Pj4+PiAgICAgICAgc3RydWN0IG1peGVyX3Jlc291cmNlcyAqcmVzID0gJmN0 eC0+bWl4ZXJfcmVzOwo+Pj4+Pj4+Pj4+IC0gICAgICB1MzIgdmFsID0gZW5hYmxlID8gfjAgOiAw Owo+Pj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4+PiAtICAgICAgc3dpdGNoICh3aW4pIHsKPj4+Pj4+Pj4+ PiAtICAgICAgY2FzZSAwOgo+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgIG1peGVyX3JlZ193cml0 ZW1hc2socmVzLCBNWFJfQ0ZHLCB2YWwsIE1YUl9DRkdfR1JQMF9FTkFCTEUpOwo+Pj4+Pj4+Pj4+ IC0gICAgICAgICAgICAgIG1peGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJfTEFZRVJfQ0ZHLAo+ Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVhSX0xBWUVSX0NG R19HUlAwX1ZBTChwcmlvcml0eSksCj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBNWFJfTEFZRVJfQ0ZHX0dSUDBfTUFTSyk7Cj4+Pj4+Pj4+Pj4gLSAgICAgICAg ICAgICAgYnJlYWs7Cj4+Pj4+Pj4+Pj4gLSAgICAgIGNhc2UgMToKPj4+Pj4+Pj4+PiAtICAgICAg ICAgICAgICBtaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0NGRywgdmFsLCBNWFJfQ0ZHX0dS UDFfRU5BQkxFKTsKPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICBtaXhlcl9yZWdfd3JpdGVtYXNr KHJlcywgTVhSX0xBWUVSX0NGRywKPj4+Pj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1YUl9MQVlFUl9DRkdfR1JQMV9WQUwocHJpb3JpdHkpLAo+Pj4+Pj4+Pj4+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVhSX0xBWUVSX0NGR19HUlAxX01BU0sp Owo+Pj4+Pj4+Pj4+ICsgICAgICB1bnNpZ25lZCBpbnQgd2luOwo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+ Pj4gLSAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4+Pj4+Pj4gLSAgICAgIGNhc2UgVlBfREVGQVVM VF9XSU46Cj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgaWYgKHRlc3RfYml0KE1YUl9CSVRfVlBf RU5BQkxFRCwgJmN0eC0+ZmxhZ3MpKSB7Cj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAg ICB2cF9yZWdfd3JpdGVtYXNrKHJlcywgVlBfRU5BQkxFLCB2YWwsIFZQX0VOQUJMRV9PTik7Cj4+ Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBtaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywg TVhSX0NGRywgdmFsLAo+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN WFJfQ0ZHX1ZQX0VOQUJMRSk7Cj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICBtaXhl cl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0xBWUVSX0NGRywKPj4+Pj4+Pj4+PiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVhSX0xBWUVSX0NGR19WUF9WQUwocHJp b3JpdHkpLAo+Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNWFJfTEFZRVJfQ0ZHX1ZQX01BU0spOwo+Pj4+Pj4+Pj4+ICsgICAgICBzdHJ1Y3QgZXh5 bm9zX2RybV9wbGFuZV9zdGF0ZSAqc3RhdGU7Cj4+Pj4+Pj4+Pj4gKyAgICAgIHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiOwo+Pj4+Pj4+Pj4+ICsgICAgICB1bnNpZ25lZCBpbnQgcHJpb3JpdHk7 Cj4+Pj4+Pj4+Pj4gKyAgICAgIHUzMiBteHJfY2ZnID0gMCwgbXhyX2xheWVyX2NmZyA9IDAsIHZw X2VuYWJsZSA9IDA7Cj4+Pj4+Pj4+Pj4gKyAgICAgIGJvb2wgZW5hYmxlOwo+Pj4+Pj4+Pj4+ICsK Pj4+Pj4+Pj4+PiArICAgICAgZm9yICh3aW4gPSAwOyB3aW4gPCBNSVhFUl9XSU5fTlI7ICsrd2lu KSB7Cj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgc3RhdGUgPSB0b19leHlub3NfcGxhbmVfc3Rh dGUoY3R4LT5wbGFuZXNbd2luXS5iYXNlLnN0YXRlKTsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAg ICBmYiA9IHN0YXRlLT5mYjsKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAg cHJpb3JpdHkgPSBzdGF0ZS0+YmFzZS5ub3JtYWxpemVkX3pwb3MgKyAxOwo+Pj4+Pj4+Pj4+ICsg ICAgICAgICAgICAgIGVuYWJsZSA9IHRlc3RfYml0KHdpbiwgJmN0eC0+YWN0aXZlX3dpbmRvd3Mp Owo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICBpZiAoIWVuYWJsZSkKPj4+ Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+Pj4+Pj4+Pj4+ICsKPj4+ Pj4+Pj4+PiArICAgICAgICAgICAgICBCVUdfT04oIWZiKTsKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgLyoKPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgKiBUT0RPOiBE b24ndCBlbmFibGUgYWxwaGEgYmxlbmRpbmcgZm9yIHRoZSBib3R0b20gd2luZG93Lgo+Pj4+Pj4+ Pj4+ICsgICAgICAgICAgICAgICAqLwo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgIHN3aXRjaCAo d2luKSB7Cj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgY2FzZSAwOgo+Pj4+Pj4+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAgbXhyX2NmZyB8PSAgTVhSX0NGR19HUlAwX0VOQUJMRTsKPj4+Pj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIG14cl9sYXllcl9jZmcgfD0gTVhSX0xBWUVSX0NG R19HUlAwX1ZBTChwcmlvcml0eSk7Cj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICBt aXhlcl9jZmdfZ2Z4X2JsZW5kKGN0eCwgd2luLCBpc19hbHBoYV9mb3JtYXQoZmItPnBpeGVsX2Zv cm1hdCkpOwo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4+Pj4+Pj4+ Pj4gKwo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgIGNhc2UgMToKPj4+Pj4+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgIG14cl9jZmcgfD0gIE1YUl9DRkdfR1JQMV9FTkFCTEU7Cj4+Pj4+Pj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICBteHJfbGF5ZXJfY2ZnIHw9IE1YUl9MQVlFUl9DRkdf R1JQMV9WQUwocHJpb3JpdHkpOwo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgbWl4 ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwgaXNfYWxwaGFfZm9ybWF0KGZiLT5waXhlbF9mb3Jt YXQpKTsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+Pj4+Pj4+Pj4+ ICsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICBjYXNlIFZQX0RFRkFVTFRfV0lOOgo+Pj4+Pj4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgdnBfZW5hYmxlID0gVlBfRU5BQkxFX09OOwo+Pj4+ Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgbXhyX2NmZyB8PSAgTVhSX0NGR19WUF9FTkFC TEU7Cj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICBteHJfbGF5ZXJfY2ZnIHw9IE1Y Ul9MQVlFUl9DRkdfVlBfVkFMKHByaW9yaXR5KTsKPj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgIG1peGVyX2NmZ192cF9ibGVuZChjdHgpOwo+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgYnJlYWs7Cj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgfQo+Pj4+Pj4+Pj4+IC0g ICAgICAgICAgICAgIGJyZWFrOwo+Pj4+Pj4+Pj4+ICAgICAgICB9Cj4+Pj4+Pj4+Pj4gKwo+Pj4+ Pj4+Pj4+ICsgICAgICBpZiAodGVzdF9iaXQoTVhSX0JJVF9WUF9FTkFCTEVELCAmY3R4LT5mbGFn cykpCj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgdnBfcmVnX3dyaXRlbWFzayhyZXMsIFZQX0VO QUJMRSwgdnBfZW5hYmxlLCBWUF9FTkFCTEVfT04pOwo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiAr ICAgICAgbWl4ZXJfcmVnX3dyaXRlbWFzayhyZXMsIE1YUl9DRkcsIG14cl9jZmcsIE1YUl9DRkdf RU5BQkxFX01BU0spOwo+Pj4+Pj4+Pj4+ICsgICAgICBtaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywg TVhSX0xBWUVSX0NGRywgbXhyX2xheWVyX2NmZywgTVhSX0xBWUVSX0NGR19NQVNLKTsKPj4+Pj4+ Pj4+PiAgfQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gIHN0YXRpYyB2b2lkIG1peGVyX3J1bihzdHJ1 Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQo+Pj4+Pj4+Pj4+IEBAIC00NzgsNyArNTI0LDYgQEAgc3Rh dGljIHZvaWQgdnBfdmlkZW9fYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsCj4+Pj4+ Pj4+Pj4gICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJnN0YXRlLT5iYXNl LmNydGMtPnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+Pj4+Pj4+Pj4+ICAgICAgICBzdHJ1Y3QgbWl4 ZXJfcmVzb3VyY2VzICpyZXMgPSAmY3R4LT5taXhlcl9yZXM7Cj4+Pj4+Pj4+Pj4gICAgICAgIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gc3RhdGUtPmZiOwo+Pj4+Pj4+Pj4+IC0gICAgICB1 bnNpZ25lZCBpbnQgcHJpb3JpdHkgPSBzdGF0ZS0+YmFzZS5ub3JtYWxpemVkX3pwb3MgKyAxOwo+ Pj4+Pj4+Pj4+ICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+Pj4+Pj4+Pj4+ICAgICAgICBk bWFfYWRkcl90IGx1bWFfYWRkclsyXSwgY2hyb21hX2FkZHJbMl07Cj4+Pj4+Pj4+Pj4gICAgICAg IGJvb2wgdGlsZWRfbW9kZSA9IGZhbHNlOwo+Pj4+Pj4+Pj4+IEBAIC01NjMsOCArNjA4LDYgQEAg c3RhdGljIHZvaWQgdnBfdmlkZW9fYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsCj4+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAgICAgICAgbWl4ZXJfY2ZnX3NjYW4oY3R4LCBtb2RlLT52ZGlz cGxheSk7Cj4+Pj4+Pj4+Pj4gICAgICAgIG1peGVyX2NmZ19yZ2JfZm10KGN0eCwgbW9kZS0+dmRp c3BsYXkpOwo+Pj4+Pj4+Pj4+IC0gICAgICBtaXhlcl9jZmdfbGF5ZXIoY3R4LCBwbGFuZS0+aW5k ZXgsIHByaW9yaXR5LCB0cnVlKTsKPj4+Pj4+Pj4+PiAtICAgICAgbWl4ZXJfY2ZnX3ZwX2JsZW5k KGN0eCk7Cj4+Pj4+Pj4+PiBZb3UgcmVtb3ZlZCB0aGUgZnVuY3Rpb24gY2FsbCB0byBzZXQgTVhS X0NGRyBhbmQgTVhSX0xBWUVSX0NGRyByZWdpc3RlcnMgc28gd2hhdCBpZiBsYWdhY3kgc2V0IHBs YW5lIGlvY3RsIGlzIGNhbGxlZCBieSB1c2VyIHVzZXIgc3BhY2U/IFdoZXJlIHRoZXNlIHJlZ2lz dGVyIGFyZSB1cGRhdGVkPwo+Pj4+Pj4+PiB5ZXMsIHlvdSdyZSByaWdodC4gSSBjb21wbGV0bHkg Zm9yZ290IGFib3V0IHRoZSBsZWdhY3kgY29kZXBhdGhzLiBTb3JyeQo+Pj4+Pj4+PiBhYm91dCB0 aGF0IQo+Pj4+Pj4+Cj4+Pj4+Pj4gQXJlIHlvdSB0YWxraW5nIGFib3V0IERSTV9JT0NUTF9NT0RF X1NFVFBMQU5FPwo+Pj4+Pj4+IEl0IGRvZXMgbm90IHNlZW0gdG8gYmUgbGVnYWN5LCBvciB0byBi ZSBtb3JlIHByZWNpc2UgaXQgY2FsbHMKPj4+Pj4+PiAudXBkYXRlX3BsYW5lIGFuZCAuZGlzYWJs ZV9wbGFuZQo+Pj4+Pj4+IGNhbGxiYWNrcyB3aGljaCBpbiBleHlub3MgYXJlIHNldCBhcyBmb2xs b3c6Cj4+Pj4+Pj4gICAgIC51cGRhdGVfcGxhbmUgICAgPSBkcm1fYXRvbWljX2hlbHBlcl91cGRh dGVfcGxhbmUsCj4+Pj4+Pj4gICAgIC5kaXNhYmxlX3BsYW5lICAgID0gZHJtX2F0b21pY19oZWxw ZXJfZGlzYWJsZV9wbGFuZSwKPj4+Pj4+Pgo+Pj4+Pj4+IFNvIERSTV9JT0NUTF9NT0RFX1NFVFBM QU5FIGNhbGxzIGF0b21pYyBjb2RlcGF0aCBhbnl3YXkuCj4+Pj4+PiB0aGFua3MgYSBsb3QgZm9y IHRoZSBoZWFkcy11cC4gSSBjYW4gY29uZmlybSB0aGF0IGRybV9tb2RlX3NldHBsYW5lKCkKPj4+ Pj4+IGFsc28gZ29lcyB0aHJvdWdoIHRoZSBhdG9taWMgcGF0aC4KPj4+Pj4+Cj4+Pj4+PiBUaGUg c2ltcGxpZmllZCBjYWxsc3RhY2s6Cj4+Pj4+PiAtIGRybV9tb2RlX3NldHBsYW5lKCkKPj4+Pj4+ ICAgLSBfX3NldHBsYW5lX2ludGVybmFsKCkKPj4+Pj4+ICAgICAtIGRpc2FibGVfcGxhbmUoKSAo c2V0IGluIHBsYW5lX2hlbHBlcl9mdW5jcyBpbiBleHlub3NfZHJtX3BsYW5lLmMpCj4+Pj4+PiAg ICAgLSB1cGRhdGVfcGxhbmUoKSAoc2FtZSBoZXJlKQo+Pj4+Pgo+Pj4+PiBTb3JyeSBmb3IgcHJl dmlvdXMgY29tbWVudHMgbm90IGVub3VnaC4KPj4+Pj4KPj4+Pj4gdXBkYXRlX3BsYW5lCj4+Pj4+ ICAgICAuLi4KPj4+Pj4gICAgIC0gbWl4ZXJfdXBkYXRlX3BsYW5lCj4+Pj4+ICAgICAgICAgICAg IC0gdnBfdmlkZW9fYnVmZmVyIG9yIG1peGVyX2dyYXBoX2J1ZmZlcgo+Pj4+Pgo+Pj4+PiBIb3dl dmVyLCB5b3UgcmVtb3ZlZCBtaXhlcl9jZmdfbGF5ZXIgY2FsbCBmcm9tIGFib3ZlIGZ1bmN0aW9u cy4KPj4+PiBleGFjdGx5LCBiZWNhdXNlIHRoYXQgaXMgdGhlIHZlcnkgcHVycG9zZSBvZiB0aGlz IHBhdGNoLgo+Pj4+Cj4+Pj4KPj4+Pj4gU28gbXkgaW50ZW50aW9uIHdhcyB0byBrZWVwIHRoZSBt b2RpZmVkIG1peGVyX2NmZ19sYXllciBjYWxsIG9uIHZwX3ZpZGVvX2J1ZmZlciBhbmQgbWl4ZXJf Z3JwYWhfYnVmZmVyIGZ1bmN0aW9ucy4KPj4+PiBUaGF0IGlzIG5vdCBteSBpbnRlbnRpb24uIEkg d2FudCB0byBtb3ZlIHJlZ2lzdGVyIG1hbmlwdWxhdGlvbiB0byB0aGUKPj4+PiBhdG9taWMgZmx1 c2ggc3RlcC4KPj4+Pgo+Pj4+Cj4+Pj4+IG1peGVyX2F0b21pY19mbHVzaCBmdW5jdGlvbiBpcyBu b3QgcmVhbGx5IHByb3BlciBwbGFjZSB0byBjYWxsIG1peGVyX2NmZ19sYXllciBmdW5jdGlvbiBl dmVuIG1peGVyX3dpbl9yZXNldC4KPj4+PiBXaHkgZG8geW91IHRoaW5rIHNvPyBJIHRoaW5rIGl0 IG1ha2VzIHBlcmZlY3Qgc2Vuc2UgdG8gcHV0IGl0IHRoZXJlLiBXZQo+Pj4+IGZsdXNoIHRoZSBu ZXcgY29uZmlndXJhdGlvbiB0byB0aGUgaGFyZHdhcmUgcmVnaXN0ZXJzIHRoZXJlLgo+Pj4+Cj4+ Pj4KPj4+Pj4gRm9yIHRoaXMgSSBtZW50aW9uZWQgYWxyZWFkeSBhdCBwcmV2aW91cyBteSBjb21t ZW50LAo+Pj4+PiAiYXRvbWljX2ZsdXNoIGNhbGxiYWNrIHdpbGwgYmUgdXNlZCB0byBtYWtlIHN1 cmUgcmVnaXN0ZXJzIHRvIGJlIHVwZGF0ZWQgdG8gdGhlIHJlYWwgaGFyZHdhcmUuIFNvIGNhbGxp bmcgbWl4ZXJfY2ZnX2xheWVyIGZ1bmN0aW9uIGhlcmUgd291bGRuJ3QgYmUgcmVhc29uYWJsZS4i Cj4+Pj4gWW91J3JlIGNvbmZ1c2luZyBtZS4gVGhhdCBpcyBleGFjdGx5IHdoYXQgbXkgcGF0Y2gg aXMgZG9pbmcuIEl0IG1vdmVzCj4+Pj4gbW9yZSBvZiB0aGUgYWN0dWFsIGhhcmR3YXJlIHJlZ2lz dGVyIHVwZGF0aW5nIHRvIHRoZSBhdG9taWMgZmx1c2ggc3RlcC4KPj4+Cj4+PiBPaywgZm9yIHlv dXIgdW5kZXJzdGFuZGluZywgeW91IGNhbiBjaGVjayBhdG9taWNfYmVnaW4sIGF0b21pY19mbHVz aCBhbmQgdXBkYXRlX3BsYW5lIGNhbGxiYWNrIGZ1bmN0aW9ucyBvZiBleHlub3NfZHJtX2ZpbWQu Yy4KPj4+IEFmdGVyIHRoYXQgSSB0aGluayB3ZSBjb3VsZCBjb250aW51ZSB0byBkaXNjdXNzIHRo aXMuIEkgZG9lc24ndCByZWFsbHkgd2FudCB0byB0YWNrbGUgeW91Lgo+PiBJJ20gYXdhcmUgb2Yg dGhhdCBjb2RlLCBidXQgaXQncyBmb3IgdGhlIEZJTUQgYW5kIG5vdCB0aGUgbWl4ZXIuIFNvIEkK Pj4gZG9uJ3Qgc2VlIGhvdyBpdCBpcyByZWxldmFudCB0byB0aGUgZGlzY3Vzc2lvbi4gT25lIGNv dWxkIHByb2JhYmx5IGRvCj4+IHRoZSBzYW1lIHRoaW5nIGZvciB0aGUgRklNRCwgaS5lLiBtb3Zp bmcgbW9yZSBjb2RlIHRvIHRoZSBmbHVzaCBzdGVwLgo+PiBIb3dldmVyIEkgbGFjayB0aGUgaGFy ZHdhcmUgdG8gcHJvcGVybHkgdGVzdCB0aGlzLCBzbyB0aGlzIHdvdWxkIGJlIGEKPj4gYml0IGRp ZmZpY3VsdCB0byB3b3JrIG9uLgo+IAo+IEZpcnN0LCBjaGVjayBiZWxvdyBkZXNjcmlwdGlvbnMg Zm9yIGF0b21pY19iZWdpbiBhbmQgYXRvbWljX2ZsdXNoIGNhbGxiYWNrcywKPiAKPiAiQGF0b21p Y19iZWdpbjoKPiAuLi4KPiBEZXBlbmRpbmcgdXBvbiBoYXJkd2FyZSB0aGlzIG1pZ2h0IGJlIHZi bGFuawo+IGV2YXNpb24sIGJsb2NraW5nIHVwZGF0ZXMgYnkgc2V0dGluZyBiaXRzIG9yIGRvaW5n IHByZXBhcmF0b3J5IHdvcmsKPiBmb3IgZS5nLiBtYW51YWwgdXBkYXRlIGRpc3BsYXkuCj4gCj4g Cj4gQGF0b21pY19mbHVzaDoKPiAgLi4uCj4gRGVwZW5kaW5nIHVwb24gaGFyZHdhcmUgdGhpcyBt aWdodCBpbmNsdWRlCj4gY2hlY2tpbmcgdGhhdCB2YmxhbmsgZXZhc2lvbiB3YXMgc3VjY2Vzc2Z1 bCwgdW5ibG9ja2luZyB1cGRhdGVzIGJ5Cj4gc2V0dGluZyBiaXRzIG9yIHNldHRpbmcgdGhlIEdP IGJpdCB0byBmbHVzaCBvdXQgYWxsIHVwZGF0ZXMuIgo+IAo+IEFuZCBmb3IgdGhpcyBNaXhlciBk ZXZpY2UgaGFzIHNpbWlsYXIgcmVnaXN0ZXJzIHRvIEZJTUQgb25lcy4gU2VlIHRoZQo+IGJlbG93 IGNvZGVzLAo+IAo+IHN0YXRpYyB2b2lkIG1peGVyX3ZzeW5jX3NldF91cGRhdGUoc3RydWN0IG1p eGVyX2NvbnRleHQgKmN0eCwgYm9vbCBlbmFibGUpCj4gewo+ICBzdHJ1Y3QgbWl4ZXJfcmVzb3Vy Y2VzICpyZXMgPSAmY3R4LT5taXhlcl9yZXM7Cj4gIC8qIGJsb2NrIHVwZGF0ZSBvbiB2c3luYyAq Lwo+ICBtaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX1NUQVRVUywgZW5hYmxlID8KPiAgICBN WFJfU1RBVFVTX1NZTkNfRU5BQkxFIDogMCwgTVhSX1NUQVRVU19TWU5DX0VOQUJMRSk7Cj4gIGlm IChjdHgtPnZwX2VuYWJsZWQpCj4gICB2cF9yZWdfd3JpdGUocmVzLCBWUF9TSEFET1dfVVBEQVRF LCBlbmFibGUgPwo+ICAgIFZQX1NIQURPV19VUERBVEVfRU5BQkxFIDogMCk7Cj4gfQo+IAo+IEFj Y29yZGluZyB0byB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIGFib3ZlIGZ1bmN0aW9uIC0gZW5hYmxl IHZhbHVlIC0sCj4gdGhpcyBmdW5jdGlvbiB3aWxsIGRvIHNvbWV0aGluZyByZXF1aXJlZCBieSBh dG9taWNfYmVnaW4gb3IKPiBhdG9taWNfZmx1c2ggY2FsbGJhY2suCj4gQW5kIHRoaXMgZnVuY3Rp b24gaXMgYWxyZWFkeSBjYWxsZWQgYnkgbWl4ZXJfYXRvbWljX2JlZ2luIGFuZAo+IG1peGVyX2F0 b21pY19mbHVzaCBmdW5jdGlvbnMgcHJvcGVybHkuCkknbSBhd2FyZSBob3cgdGhlIG1peGVyIG9w ZXJhdGVzLiBIb3dldmVyIG15IGNvZGUgZG9lc24ndCBtb2RpZnkKbWFuaXB1bGF0aW9uIG9mIHRo ZSBNWFJfU1RBVFVTIHJlZ2lzdGVyLCB1cGRhdGUgYmxvY2tpbmcgc3RpbGwgd29ya3MgdGhlCnNh bWUgYXMgYmVmb3JlLgoKCj4gWW91IGFyZSB0cnlpbmcgdG8gcmVhbGx5IHNwcmVhZCBvdXQgcmVn aXN0ZXIgc2V0dGluZyBjb2RlcyBoZXJlIGFuZAo+IHRoZXJlIHdpdGggdGhpcyBwYXRjaC4KPiAK VWhtLCBubz8gVGhlIGNvbnRyYXJ5IGlzIHRydWUsIEkgY29uc29saWRhdGUgcmVnaXN0ZXIgbWFu aXB1bGF0aW9uLiBBcmUKeW91IHN1cmUgeW91J3JlIHJlYWRpbmcgbXkgcGF0Y2ggY29ycmVjdGx5 PwoKQEFuZHJ6ZWo6IE1heWJlIHlvdSBjYW4gY29tbWVudCBvbiB0aGlzPwoKCj4gUHMuIG1vc3Qg Y3J0YyBkZXZpY2VzIGhhdmUgc3BlY2lhbCByZWdpc3RlcnMgd2hpY2ggYmxvY2sgc2V0dGluZwo+ IHZhbHVlcyB0byBiZSB1cGRhdGVkIHRvIHJlYWwgaGFyZHdhcmUgYWZ0ZXIgdnN5bmMgY29tcGxl dGlvbiB0byBtYWtlCj4gc3VyZSBmb3IgYWxsIHJlZ2lzdGVyIHNldHRpbmcgdmFsdWVzIHRvIGJl IHVwZGF0ZWQgdG8gcmVhbCBoYXJkd2FyZQo+IHdoZW4gdGhleSBhcmUgcmVhbGx5IHJlYWR5LiBT byBhdG9taWNfYmVnaW4gYW5kIGF0b21pY19mbHVzaCBjYWxsYmFja3MKPiBhcmUgdXNlZCBmb3Ig c3VjaCBwdXJwb3NlLgpJJ20gYWxzbyBhd2FyZSBvZiB0aGlzLiBCdXQgdGhpcyBpcyBvcnRob2dv bmFsIHRvIHdoYXQgbXkgcGF0Y2ggd2FudCB0bwphY2hpZXZlLgoKCldpdGggYmVzdCB3aXNoZXMs ClRvYmlhcwoKCgo+IAo+IFRoYW5rcywKPiBJbmtpIERhZQo+IAo+Pgo+Pgo+PiBXaXRoIGJlc3Qg d2lzaGVzLAo+PiBUb2JpYXMKPj4KPj4KPj4+Pj4gQWxzbyBpdCB3b3VsZCBiZSByZWFzb25hYmxl IHRvIHJlbW92ZSBtaXhlcl9jZmdfbGF5ZXIgZnVuY3Rpb24gY2FsbCBmcm9tIG1peGVyX3dpbl9y ZXNldCBmdW5jdGlvbi4KPj4+PiBXaHkgaXMgdGhhdD8gSW4gbWl4ZXJfd2luX3Jlc2V0KCkgd2Ug d2FudCB0byBhcHBseSBhIGRlZmF1bHQKPj4+PiBjb25maWd1cmF0aW9uIHRvIHRoZSB2YXJpb3Vz IHJlZ2lzdGVycy4gSGVuY2Ugd2Ugc2V0IGFjdGl2ZV93aW5kb3dzIHRvCj4+Pj4gemVybyBhbmQg Y2FsbCBtaXhlcl9jZmdfbGF5ZXIoKS4KPj4+Pgo+Pj4+Cj4+Pj4gV2l0aCBiZXN0IHdpc2hlcywK Pj4+PiBUb2JpYXMKPj4+Pgo+Pj4+Cj4+Pj4KPj4+Pj4+IEZvciBjb21wbGV0ZW5lc3MgSSd2ZSBh bHNvIGNoZWNrZWQgZHJtX21vZGVfc2V0Y3J0YygpLCB0aGUgb3RoZXIgbGVnYWN5Cj4+Pj4+PiBE Uk0gY2FsbCB0aGF0IG1hbmlwdWxhdGVzIHRoZSBwcmltYXJ5IHBsYW5lLgo+Pj4+Pj4KPj4+Pj4+ IEl0IGdvZXMgdGhlIGZvbGxvd2luZyByb3V0ZToKPj4+Pj4+IC0gZHJtX21vZGVfc2V0Y3J0Ywo+ Pj4+Pj4gICAtIGRybV9tb2RlX3NldF9jb25maWdfaW50ZXJuYWwoKQo+Pj4+Pj4gICAgIC0gc2V0 X2NvbmZpZygpIChzZXQgaW4gZXh5bm9zX2NydGNfZnVuY3MgaW4gZXh5bm9zX2RybV9jcnRjLmMp Cj4+Pj4+Pgo+Pj4+Pj4gQWxzbyBoZXJlOiAuc2V0X2NvbmZpZyA9IGRybV9hdG9taWNfaGVscGVy X3NldF9jb25maWcKPj4+Pj4+Cj4+Pj4+PiBCb3RoIERSTV9JT0NUTF9NT0RFX1NFVFBMQU5FIGFu ZCBEUk1fSU9DVExfTU9ERV9DUlRDIGdvIHRoZSBhdG9taWMKPj4+Pj4+IHJvdXRlLCBzbyB0aGUg cGF0Y2ggaXMgZmluZSB0aGlzIHdheS4KPj4+Pj4+Cj4+Pj4+PiBASW5raTogQ2FuIHlvdSBzdGls bCBxdWV1ZSB0aGlzIHVwIGZvciA0LjkueT8KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gV2l0aCBiZXN0 IHdpc2hlcywKPj4+Pj4+IFRvYmlhcwo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBSZWdh cmRzCj4+Pj4+Pj4gQW5kcnplago+Pj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gLS0KPj4+Pj4+IFRvIHVu c3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51 eC1zYW1zdW5nLXNvYyIgaW4KPj4+Pj4+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRv bW9Admdlci5rZXJuZWwub3JnCj4+Pj4+PiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8v dmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4K Pj4+Pj4gLS0KPj4+Pj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGxpc3Q6IHNlbmQgdGhlIGxp bmUgInVuc3Vic2NyaWJlIGxpbnV4LXNhbXN1bmctc29jIiBpbgo+Pj4+PiB0aGUgYm9keSBvZiBh IG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwo+Pj4+PiBNb3JlIG1ham9yZG9t byBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKPj4+ Pj4KPj4+Pgo+Pj4+Cj4+Pj4KPj4+Pgo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4+IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=