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 11:07:01 +0200 Message-ID: <57EB8835.8020706@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> <57EB07B8.2000207@samsung.com> <57EB0AFE.9010005@math.uni-bielefeld.de> <57EB1CAC.9040800@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57EB1CAC.9040800@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae , Andrzej Hajda , linux-samsung-soc@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, m.szyprowski@samsung.com List-Id: linux-samsung-soc@vger.kernel.org SGVsbG8gSW5raSwKCgpJbmtpIERhZSB3cm90ZToKPiAKPiAKPiAyMDE264WEIDA57JuUIDI47J28 IDA5OjEy7JeQIFRvYmlhcyBKYWtvYmkg7J20KOqwgCkg7JO0IOq4gDoKPj4gSGVsbG8gSW5raSwK Pj4KPj4KPj4gSW5raSBEYWUgd3JvdGU6Cj4+Pgo+Pj4KPj4+IDIwMTbrhYQgMDnsm5QgMjjsnbwg MDg6MzHsl5AgSW5raSBEYWUg7J20KOqwgCkg7JO0IOq4gDoKPj4+Pgo+Pj4+Cj4+Pj4gMjAxNuuF hCAwOeyblCAyOOydvCAwMTo1MuyXkCBUb2JpYXMgSmFrb2JpIOydtCjqsIApIOyTtCDquIA6Cj4+ Pj4+IEhlbGxvIEFuZHJ6ZWosCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IEFuZHJ6ZWogSGFqZGEgd3JvdGU6 Cj4+Pj4+PiBPbiAyNy4wOS4yMDE2IDEzOjIyLCBUb2JpYXMgSmFrb2JpIHdyb3RlOgo+Pj4+Pj4+ IEhlbGxvIElua2ksCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IElua2kgRGFlIHdyb3RlOgo+Pj4+ Pj4+PiAyMDE264WEIDA57JuUIDI27J28IDIwOjM27JeQIFRvYmlhcyBKYWtvYmkg7J20KOqwgCkg 7JO0IOq4gDoKPj4+Pj4+Pj4+IE9ubHkgbWFuaXB1bGF0ZSB0aGUgTVhSX0NGRyBhbmQgTVhSX0xB WUVSX0NGRyByZWdpc3RlcnMgb25jZQo+Pj4+Pj4+Pj4gaW4gbWl4ZXJfY2ZnX2xheWVyKCkuCj4+ Pj4+Pj4+PiBUcmlnZ2VyIHRoaXMgdmlhIGF0b21pYyBmbHVzaC4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+ PiBDaGFuZ2VzIGluIHYyOgo+Pj4+Pj4+Pj4gLSBpc3N1ZSBtaXhlcl9jZmdfbGF5ZXIoKSBpbiBt aXhlcl9kaXNhYmxlKCkKPj4+Pj4+Pj4+IC0gcmVuYW1lIGZpZWxkcyBhcyBzdWdnZXN0ZWQgYnkg QW5kcnplago+Pj4+Pj4+Pj4gLSBhZGRlZCBkb2N1IHRvIG1peGVyIGNvbnRleHQgc3RydWN0Cj4+ Pj4+Pj4+PiAtIHNpbXBsaWZ5IG1peGVyX3dpbl9yZXNldCgpIGFzIHdlbGwKPj4+Pj4+Pj4+Cj4+ Pj4+Pj4+PiBDaGFuZ2VzIGluIHYzOgo+Pj4+Pj4+Pj4gLSBzaW1wbGlmeSBzb21lIGNvbmRpdGlv bnMgYXMgc3VnZ2VzdGVkIGJ5IElua2kKPj4+Pj4+Pj4+IC0gYWRkIGRvY3UgdG8gbWl4ZXJfY2Zn X2xheWVyKCkKPj4+Pj4+Pj4+IC0gZm9sZCBzd2l0Y2ggc3RhdGVtZW50cyBpbnRvIGEgc2luZ2xl IG9uZQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IFRvYmlhcyBKYWtvYmkgPHRq YWtvYmlAbWF0aC51bmktYmllbGVmZWxkLmRlPgo+Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+PiAgZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyB8IDEzNSArKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tCj4+Pj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9yZWdz LW1peGVyLmggICB8ICAgMiArCj4+Pj4+Pj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA5MiBpbnNlcnRp b25zKCspLCA0NSBkZWxldGlvbnMoLSkKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX21peGVyLmMKPj4+Pj4+Pj4+IGluZGV4IDFlNzhkNTcuLjRmMDZmNGQgMTAw NjQ0Cj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5j Cj4+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4+ Pj4+Pj4+PiBAQCAtOTMsMTIgKzkzLDI1IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCB2cF9mb3Jt YXRzW10gPSB7Cj4+Pj4+Pj4+PiAgCURSTV9GT1JNQVRfTlYyMSwKPj4+Pj4+Pj4+ICB9Owo+Pj4+ Pj4+Pj4gIAo+Pj4+Pj4+Pj4gKy8qCj4+Pj4+Pj4+PiArICogTWl4ZXIgY29udGV4dCBzdHJ1Y3R1 cmUuCj4+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4+ICsgKiBAY3J0YzogVGhlIEhETUkgQ1JUQyBhdHRh Y2hlZCB0byB0aGUgbWl4ZXIuCj4+Pj4+Pj4+PiArICogQHBsYW5lczogQXJyYXkgb2YgcGxhbmUg b2JqZWN0cyBmb3IgZWFjaCBvZiB0aGUgbWl4ZXIgd2luZG93cy4KPj4+Pj4+Pj4+ICsgKiBAYWN0 aXZlX3dpbmRvd3M6IENhY2hlIG9mIHRoZSBtaXhlcidzIGhhcmR3YXJlIHN0YXRlLgo+Pj4+Pj4+ Pj4gKyAqICAgICAgIFRyYWNrcyB3aGljaCBtaXhlciB3aW5kb3dzIGFyZSBhY3RpdmUvaW5hY3Rp dmUuCj4+Pj4+Pj4+PiArICogQHBpcGU6IFRoZSBDUlRDIGluZGV4Lgo+Pj4+Pj4+Pj4gKyAqIEBm bGFnczogQml0ZmllbGQgYnVpbGQgZnJvbSB0aGUgbWl4ZXJfZmxhZ19iaXRzIGVudW1lcmF0b3Iu Cj4+Pj4+Pj4+PiArICogQG1peGVyX3Jlc291cmNlczogQSBzdHJ1Y3QgY29udGFpbmluZyByZWdp c3RlcnMsIGNsb2NrcywgZXRjLgo+Pj4+Pj4+Pj4gKyAqIEBteHJfdmVyOiBUaGUgaGFyZHdhcmUg cmV2aXNpb24vdmVyc2lvbiBvZiB0aGUgbWl4ZXIuCj4+Pj4+Pj4+PiArICovCj4+Pj4+Pj4+PiAg c3RydWN0IG1peGVyX2NvbnRleHQgewo+Pj4+Pj4+Pj4gIAlzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2Owo+Pj4+Pj4+Pj4gIAlzdHJ1Y3QgZGV2aWNlCQkqZGV2Owo+Pj4+Pj4+Pj4gIAlzdHJ1 Y3QgZHJtX2RldmljZQkqZHJtX2RldjsKPj4+Pj4+Pj4+ICAJc3RydWN0IGV4eW5vc19kcm1fY3J0 YwkqY3J0YzsKPj4+Pj4+Pj4+ICAJc3RydWN0IGV4eW5vc19kcm1fcGxhbmUJcGxhbmVzW01JWEVS X1dJTl9OUl07Cj4+Pj4+Pj4+PiArCXVuc2lnbmVkIGxvbmcJCWFjdGl2ZV93aW5kb3dzOwo+Pj4+ Pj4+Pj4gIAlpbnQJCQlwaXBlOwo+Pj4+Pj4+Pj4gIAl1bnNpZ25lZCBsb25nCQlmbGFnczsKPj4+ Pj4+Pj4+ICAKPj4+Pj4+Pj4+IEBAIC00MTgsMzcgKzQzMSw3MCBAQCBzdGF0aWMgdm9pZCBtaXhl cl9jZmdfcmdiX2ZtdChzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LCB1bnNpZ25lZCBpbnQgaGVp Z2h0KQo+Pj4+Pj4+Pj4gIAltaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0NGRywgdmFsLCBN WFJfQ0ZHX1JHQl9GTVRfTUFTSyk7Cj4+Pj4+Pj4+PiAgfQo+Pj4+Pj4+Pj4gIAo+Pj4+Pj4+Pj4g LXN0YXRpYyB2b2lkIG1peGVyX2NmZ19sYXllcihzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4LCB1 bnNpZ25lZCBpbnQgd2luLAo+Pj4+Pj4+Pj4gLQkJCSAgICB1bnNpZ25lZCBpbnQgcHJpb3JpdHks IGJvb2wgZW5hYmxlKQo+Pj4+Pj4+Pj4gKy8qKgo+Pj4+Pj4+Pj4gKyAqIG1peGVyX2NmZ19sYXll ciAtIGFwcGx5IGxheWVyIGNvbmZpZ3VyYXRpb24gdG8gaGFyZHdhcmUKPj4+Pj4+Pj4+ICsgKiBA Y3R4OiBtaXhlciBjb250ZXh0Cj4+Pj4+Pj4+PiArICoKPj4+Pj4+Pj4+ICsgKiBUaGlzIGNvbmZp Z3VyZXMgdGhlIE1YUl9DRkcgYW5kIE1YUl9MQVlFUl9DRkcgaGFyZHdhcmUgcmVnaXN0ZXJzCj4+ Pj4+Pj4+PiArICogdXNpbmcgdGhlICdhY3RpdmVfd2luZG93cycgZmllbGQgb2YgdGhlIHRoZSBt aXhlciBjb250ZW50LCBhbmQKPj4+Pj4+Pj4+ICsgKiB0aGUgcGl4ZWwgZm9ybWF0IG9mIHRoZSBm cmFtZWJ1ZmZlcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBlbmFibGVkCj4+Pj4+Pj4+PiArICogd2lu ZG93cy4KPj4+Pj4+Pj4+ICsgKgo+Pj4+Pj4+Pj4gKyAqIEhhcyB0byBiZSBjYWxsZWQgdW5kZXIg bWl4ZXIgbG9jay4KPj4+Pj4+Pj4+ICsgKi8KPj4+Pj4+Pj4+ICtzdGF0aWMgdm9pZCBtaXhlcl9j ZmdfbGF5ZXIoc3RydWN0IG1peGVyX2NvbnRleHQgKmN0eCkKPj4+Pj4+Pj4+ICB7Cj4+Pj4+Pj4+ PiAgCXN0cnVjdCBtaXhlcl9yZXNvdXJjZXMgKnJlcyA9ICZjdHgtPm1peGVyX3JlczsKPj4+Pj4+ Pj4+IC0JdTMyIHZhbCA9IGVuYWJsZSA/IH4wIDogMDsKPj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4+IC0J c3dpdGNoICh3aW4pIHsKPj4+Pj4+Pj4+IC0JY2FzZSAwOgo+Pj4+Pj4+Pj4gLQkJbWl4ZXJfcmVn X3dyaXRlbWFzayhyZXMsIE1YUl9DRkcsIHZhbCwgTVhSX0NGR19HUlAwX0VOQUJMRSk7Cj4+Pj4+ Pj4+PiAtCQltaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0xBWUVSX0NGRywKPj4+Pj4+Pj4+ IC0JCQkJICAgIE1YUl9MQVlFUl9DRkdfR1JQMF9WQUwocHJpb3JpdHkpLAo+Pj4+Pj4+Pj4gLQkJ CQkgICAgTVhSX0xBWUVSX0NGR19HUlAwX01BU0spOwo+Pj4+Pj4+Pj4gLQkJYnJlYWs7Cj4+Pj4+ Pj4+PiAtCWNhc2UgMToKPj4+Pj4+Pj4+IC0JCW1peGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJf Q0ZHLCB2YWwsIE1YUl9DRkdfR1JQMV9FTkFCTEUpOwo+Pj4+Pj4+Pj4gLQkJbWl4ZXJfcmVnX3dy aXRlbWFzayhyZXMsIE1YUl9MQVlFUl9DRkcsCj4+Pj4+Pj4+PiAtCQkJCSAgICBNWFJfTEFZRVJf Q0ZHX0dSUDFfVkFMKHByaW9yaXR5KSwKPj4+Pj4+Pj4+IC0JCQkJICAgIE1YUl9MQVlFUl9DRkdf R1JQMV9NQVNLKTsKPj4+Pj4+Pj4+ICsJdW5zaWduZWQgaW50IHdpbjsKPj4+Pj4+Pj4+ICAKPj4+ Pj4+Pj4+IC0JCWJyZWFrOwo+Pj4+Pj4+Pj4gLQljYXNlIFZQX0RFRkFVTFRfV0lOOgo+Pj4+Pj4+ Pj4gLQkJaWYgKHRlc3RfYml0KE1YUl9CSVRfVlBfRU5BQkxFRCwgJmN0eC0+ZmxhZ3MpKSB7Cj4+ Pj4+Pj4+PiAtCQkJdnBfcmVnX3dyaXRlbWFzayhyZXMsIFZQX0VOQUJMRSwgdmFsLCBWUF9FTkFC TEVfT04pOwo+Pj4+Pj4+Pj4gLQkJCW1peGVyX3JlZ193cml0ZW1hc2socmVzLCBNWFJfQ0ZHLCB2 YWwsCj4+Pj4+Pj4+PiAtCQkJCU1YUl9DRkdfVlBfRU5BQkxFKTsKPj4+Pj4+Pj4+IC0JCQltaXhl cl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0xBWUVSX0NGRywKPj4+Pj4+Pj4+IC0JCQkJCSAgICBN WFJfTEFZRVJfQ0ZHX1ZQX1ZBTChwcmlvcml0eSksCj4+Pj4+Pj4+PiAtCQkJCQkgICAgTVhSX0xB WUVSX0NGR19WUF9NQVNLKTsKPj4+Pj4+Pj4+ICsJc3RydWN0IGV4eW5vc19kcm1fcGxhbmVfc3Rh dGUgKnN0YXRlOwo+Pj4+Pj4+Pj4gKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPj4+Pj4+ Pj4+ICsJdW5zaWduZWQgaW50IHByaW9yaXR5Owo+Pj4+Pj4+Pj4gKwl1MzIgbXhyX2NmZyA9IDAs IG14cl9sYXllcl9jZmcgPSAwLCB2cF9lbmFibGUgPSAwOwo+Pj4+Pj4+Pj4gKwlib29sIGVuYWJs ZTsKPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsJZm9yICh3aW4gPSAwOyB3aW4gPCBNSVhFUl9XSU5f TlI7ICsrd2luKSB7Cj4+Pj4+Pj4+PiArCQlzdGF0ZSA9IHRvX2V4eW5vc19wbGFuZV9zdGF0ZShj dHgtPnBsYW5lc1t3aW5dLmJhc2Uuc3RhdGUpOwo+Pj4+Pj4+Pj4gKwkJZmIgPSBzdGF0ZS0+ZmI7 Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+PiArCQlwcmlvcml0eSA9IHN0YXRlLT5iYXNlLm5vcm1hbGl6 ZWRfenBvcyArIDE7Cj4+Pj4+Pj4+PiArCQllbmFibGUgPSB0ZXN0X2JpdCh3aW4sICZjdHgtPmFj dGl2ZV93aW5kb3dzKTsKPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsJCWlmICghZW5hYmxlKQo+Pj4+ Pj4+Pj4gKwkJCWNvbnRpbnVlOwo+Pj4+Pj4+Pj4gKwo+Pj4+Pj4+Pj4gKwkJQlVHX09OKCFmYik7 Cj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+PiArCQkvKgo+Pj4+Pj4+Pj4gKwkJICogVE9ETzogRG9uJ3Qg ZW5hYmxlIGFscGhhIGJsZW5kaW5nIGZvciB0aGUgYm90dG9tIHdpbmRvdy4KPj4+Pj4+Pj4+ICsJ CSAqLwo+Pj4+Pj4+Pj4gKwkJc3dpdGNoICh3aW4pIHsKPj4+Pj4+Pj4+ICsJCWNhc2UgMDoKPj4+ Pj4+Pj4+ICsJCQlteHJfY2ZnIHw9ICBNWFJfQ0ZHX0dSUDBfRU5BQkxFOwo+Pj4+Pj4+Pj4gKwkJ CW14cl9sYXllcl9jZmcgfD0gTVhSX0xBWUVSX0NGR19HUlAwX1ZBTChwcmlvcml0eSk7Cj4+Pj4+ Pj4+PiArCQkJbWl4ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwgaXNfYWxwaGFfZm9ybWF0KGZi LT5waXhlbF9mb3JtYXQpKTsKPj4+Pj4+Pj4+ICsJCQlicmVhazsKPj4+Pj4+Pj4+ICsKPj4+Pj4+ Pj4+ICsJCWNhc2UgMToKPj4+Pj4+Pj4+ICsJCQlteHJfY2ZnIHw9ICBNWFJfQ0ZHX0dSUDFfRU5B QkxFOwo+Pj4+Pj4+Pj4gKwkJCW14cl9sYXllcl9jZmcgfD0gTVhSX0xBWUVSX0NGR19HUlAxX1ZB TChwcmlvcml0eSk7Cj4+Pj4+Pj4+PiArCQkJbWl4ZXJfY2ZnX2dmeF9ibGVuZChjdHgsIHdpbiwg aXNfYWxwaGFfZm9ybWF0KGZiLT5waXhlbF9mb3JtYXQpKTsKPj4+Pj4+Pj4+ICsJCQlicmVhazsK Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsJCWNhc2UgVlBfREVGQVVMVF9XSU46Cj4+Pj4+Pj4+PiAr CQkJdnBfZW5hYmxlID0gVlBfRU5BQkxFX09OOwo+Pj4+Pj4+Pj4gKwkJCW14cl9jZmcgfD0gIE1Y Ul9DRkdfVlBfRU5BQkxFOwo+Pj4+Pj4+Pj4gKwkJCW14cl9sYXllcl9jZmcgfD0gTVhSX0xBWUVS X0NGR19WUF9WQUwocHJpb3JpdHkpOwo+Pj4+Pj4+Pj4gKwkJCW1peGVyX2NmZ192cF9ibGVuZChj dHgpOwo+Pj4+Pj4+Pj4gKwkJCWJyZWFrOwo+Pj4+Pj4+Pj4gIAkJfQo+Pj4+Pj4+Pj4gLQkJYnJl YWs7Cj4+Pj4+Pj4+PiAgCX0KPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsJaWYgKHRlc3RfYml0KE1Y Ul9CSVRfVlBfRU5BQkxFRCwgJmN0eC0+ZmxhZ3MpKQo+Pj4+Pj4+Pj4gKwkJdnBfcmVnX3dyaXRl bWFzayhyZXMsIFZQX0VOQUJMRSwgdnBfZW5hYmxlLCBWUF9FTkFCTEVfT04pOwo+Pj4+Pj4+Pj4g Kwo+Pj4+Pj4+Pj4gKwltaXhlcl9yZWdfd3JpdGVtYXNrKHJlcywgTVhSX0NGRywgbXhyX2NmZywg TVhSX0NGR19FTkFCTEVfTUFTSyk7Cj4+Pj4+Pj4+PiArCW1peGVyX3JlZ193cml0ZW1hc2socmVz LCBNWFJfTEFZRVJfQ0ZHLCBteHJfbGF5ZXJfY2ZnLCBNWFJfTEFZRVJfQ0ZHX01BU0spOwo+Pj4+ Pj4+Pj4gIH0KPj4+Pj4+Pj4+ICAKPj4+Pj4+Pj4+ICBzdGF0aWMgdm9pZCBtaXhlcl9ydW4oc3Ry dWN0IG1peGVyX2NvbnRleHQgKmN0eCkKPj4+Pj4+Pj4+IEBAIC00NzgsNyArNTI0LDYgQEAgc3Rh dGljIHZvaWQgdnBfdmlkZW9fYnVmZmVyKHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgsCj4+Pj4+ Pj4+PiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJnN0YXRlLT5iYXNlLmNydGMt PnN0YXRlLT5hZGp1c3RlZF9tb2RlOwo+Pj4+Pj4+Pj4gIAlzdHJ1Y3QgbWl4ZXJfcmVzb3VyY2Vz ICpyZXMgPSAmY3R4LT5taXhlcl9yZXM7Cj4+Pj4+Pj4+PiAgCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gc3RhdGUtPmZiOwo+Pj4+Pj4+Pj4gLQl1bnNpZ25lZCBpbnQgcHJpb3JpdHkgPSBz dGF0ZS0+YmFzZS5ub3JtYWxpemVkX3pwb3MgKyAxOwo+Pj4+Pj4+Pj4gIAl1bnNpZ25lZCBsb25n IGZsYWdzOwo+Pj4+Pj4+Pj4gIAlkbWFfYWRkcl90IGx1bWFfYWRkclsyXSwgY2hyb21hX2FkZHJb Ml07Cj4+Pj4+Pj4+PiAgCWJvb2wgdGlsZWRfbW9kZSA9IGZhbHNlOwo+Pj4+Pj4+Pj4gQEAgLTU2 Myw4ICs2MDgsNiBAQCBzdGF0aWMgdm9pZCB2cF92aWRlb19idWZmZXIoc3RydWN0IG1peGVyX2Nv bnRleHQgKmN0eCwKPj4+Pj4+Pj4+ICAKPj4+Pj4+Pj4+ICAJbWl4ZXJfY2ZnX3NjYW4oY3R4LCBt b2RlLT52ZGlzcGxheSk7Cj4+Pj4+Pj4+PiAgCW1peGVyX2NmZ19yZ2JfZm10KGN0eCwgbW9kZS0+ dmRpc3BsYXkpOwo+Pj4+Pj4+Pj4gLQltaXhlcl9jZmdfbGF5ZXIoY3R4LCBwbGFuZS0+aW5kZXgs IHByaW9yaXR5LCB0cnVlKTsKPj4+Pj4+Pj4+IC0JbWl4ZXJfY2ZnX3ZwX2JsZW5kKGN0eCk7Cj4+ Pj4+Pj4+IFlvdSByZW1vdmVkIHRoZSBmdW5jdGlvbiBjYWxsIHRvIHNldCBNWFJfQ0ZHIGFuZCBN WFJfTEFZRVJfQ0ZHIHJlZ2lzdGVycyBzbyB3aGF0IGlmIGxhZ2FjeSBzZXQgcGxhbmUgaW9jdGwg aXMgY2FsbGVkIGJ5IHVzZXIgdXNlciBzcGFjZT8gV2hlcmUgdGhlc2UgcmVnaXN0ZXIgYXJlIHVw ZGF0ZWQ/Cj4+Pj4+Pj4geWVzLCB5b3UncmUgcmlnaHQuIEkgY29tcGxldGx5IGZvcmdvdCBhYm91 dCB0aGUgbGVnYWN5IGNvZGVwYXRocy4gU29ycnkKPj4+Pj4+PiBhYm91dCB0aGF0IQo+Pj4+Pj4K Pj4+Pj4+IEFyZSB5b3UgdGFsa2luZyBhYm91dCBEUk1fSU9DVExfTU9ERV9TRVRQTEFORT8KPj4+ Pj4+IEl0IGRvZXMgbm90IHNlZW0gdG8gYmUgbGVnYWN5LCBvciB0byBiZSBtb3JlIHByZWNpc2Ug aXQgY2FsbHMKPj4+Pj4+IC51cGRhdGVfcGxhbmUgYW5kIC5kaXNhYmxlX3BsYW5lCj4+Pj4+PiBj YWxsYmFja3Mgd2hpY2ggaW4gZXh5bm9zIGFyZSBzZXQgYXMgZm9sbG93Ogo+Pj4+Pj4gICAgIC51 cGRhdGVfcGxhbmUgICAgPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCj4+Pj4+PiAg ICAgLmRpc2FibGVfcGxhbmUgICAgPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAo+ Pj4+Pj4KPj4+Pj4+IFNvIERSTV9JT0NUTF9NT0RFX1NFVFBMQU5FIGNhbGxzIGF0b21pYyBjb2Rl cGF0aCBhbnl3YXkuCj4+Pj4+IHRoYW5rcyBhIGxvdCBmb3IgdGhlIGhlYWRzLXVwLiBJIGNhbiBj b25maXJtIHRoYXQgZHJtX21vZGVfc2V0cGxhbmUoKQo+Pj4+PiBhbHNvIGdvZXMgdGhyb3VnaCB0 aGUgYXRvbWljIHBhdGguCj4+Pj4+Cj4+Pj4+IFRoZSBzaW1wbGlmaWVkIGNhbGxzdGFjazoKPj4+ Pj4gLSBkcm1fbW9kZV9zZXRwbGFuZSgpCj4+Pj4+ICAgLSBfX3NldHBsYW5lX2ludGVybmFsKCkK Pj4+Pj4gICAgIC0gZGlzYWJsZV9wbGFuZSgpIChzZXQgaW4gcGxhbmVfaGVscGVyX2Z1bmNzIGlu IGV4eW5vc19kcm1fcGxhbmUuYykKPj4+Pj4gICAgIC0gdXBkYXRlX3BsYW5lKCkgKHNhbWUgaGVy ZSkKPj4+Pgo+Pj4+IFNvcnJ5IGZvciBwcmV2aW91cyBjb21tZW50cyBub3QgZW5vdWdoLgo+Pj4+ Cj4+Pj4gdXBkYXRlX3BsYW5lCj4+Pj4gCS4uLgo+Pj4+IAktIG1peGVyX3VwZGF0ZV9wbGFuZQo+ Pj4+IAkJLSB2cF92aWRlb19idWZmZXIgb3IgbWl4ZXJfZ3JhcGhfYnVmZmVyCj4+Pj4KPj4+PiBI b3dldmVyLCB5b3UgcmVtb3ZlZCBtaXhlcl9jZmdfbGF5ZXIgY2FsbCBmcm9tIGFib3ZlIGZ1bmN0 aW9ucy4KPj4+Pgo+Pj4+IFNvIG15IGludGVudGlvbiB3YXMgdG8ga2VlcCB0aGUgbW9kaWZlZCBt aXhlcl9jZmdfbGF5ZXIgY2FsbCBvbiB2cF92aWRlb19idWZmZXIgYW5kIG1peGVyX2dycGFoX2J1 ZmZlciBmdW5jdGlvbnMuCj4+Pj4gbWl4ZXJfYXRvbWljX2ZsdXNoIGZ1bmN0aW9uIGlzIG5vdCBy ZWFsbHkgcHJvcGVyIHBsYWNlIHRvIGNhbGwgbWl4ZXJfY2ZnX2xheWVyIGZ1bmN0aW9uIGV2ZW4g bWl4ZXJfd2luX3Jlc2V0Lgo+Pj4+IEZvciB0aGlzIEkgbWVudGlvbmVkIGFscmVhZHkgYXQgcHJl dmlvdXMgbXkgY29tbWVudCwKPj4+PiAiYXRvbWljX2ZsdXNoIGNhbGxiYWNrIHdpbGwgYmUgdXNl ZCB0byBtYWtlIHN1cmUgcmVnaXN0ZXJzIHRvIGJlIHVwZGF0ZWQgdG8gdGhlIHJlYWwgaGFyZHdh cmUuIFNvIGNhbGxpbmcgbWl4ZXJfY2ZnX2xheWVyIGZ1bmN0aW9uIGhlcmUgd291bGRuJ3QgYmUg cmVhc29uYWJsZS4iCj4+Pj4KPj4+PiBBbHNvIGl0IHdvdWxkIGJlIHJlYXNvbmFibGUgdG8gcmVt b3ZlIG1peGVyX2NmZ19sYXllciBmdW5jdGlvbiBjYWxsIGZyb20gbWl4ZXJfd2luX3Jlc2V0IGZ1 bmN0aW9uLgo+Pj4+Cj4+Pgo+Pj4gSG93IGFib3V0IGNhbGxpbmcgbWl4ZXJfY2ZnX2xheWVyIGZ1 bmN0aW9uIGp1c3QgaW4gbWl4ZXJfdXBkYXRlX3BsYW5lPyBTZWVtcyBtb3JlIHJlYXNvbmFibGUg YmVjYXN1ZSBub3cgbWl4ZXJfY2ZnX2xheWVyIGhhbmRsZXMgYm90aCBvZiB0aGVtIC0gdmlkZW8g YW5kIGdycGhpcyBsYXllcnMuCj4+IEFuIGV4YW1wbGUgb2YgYSBhdG9taWMgb3BlcmF0aW9uOgo+ PiBtaXhlcl9hdG9taWNfY2hlY2soKQo+PiBtaXhlcl9hdG9taWNfYmVnaW4oKQo+PiBtaXhlcl91 cGRhdGVfcGxhbmUoKQo+PiBtaXhlcl9kaXNhYmxlX3BsYW5lKCkKPj4gbWl4ZXJfdXBkYXRlX3Bs YW5lKCkKPj4gbWl4ZXJfYXRvbWljX2ZsdXNoKCkKPj4KPj4gRmx1c2hpbmcgdG8gaGFyZHdhcmUg cmVnaXN0ZXJzLCBpLmUuIHdyaXRpbmcgTVhSX0NGRyBhbmQgTVhSX0xBWUVSX0NGRwo+PiBzaG91 bGQgaGFwcGVuIF9vbmNlXyBpbiBtaXhlcl9hdG9taWNfZmx1c2goKS4KPiAKPiBQbGVhc2UgY2hl Y2sgbXkgY29tbWVudHMgb2YgcHJldmlvdXMgZW1haWwuIHlvdSBuZWVkIHRvIGNoZWNrIHJlbGV2 YW50IGNhbGxiYWNrIGZ1bmN0aW9ucyBvZiBleHlub3NfZHJtX2ZpbWQuYy4KdGhpcyBwYXRjaCBv bmx5IGNoYW5nZXMgbWl4ZXIgY29kZSwgaXQgZG9lc24ndCBpbnRyb2R1Y2UgY2hhbmdlcyB0byB0 aGUKRklNRC4gSGVuY2UgSSBkb24ndCBzZWUgaG93IHRoaXMgY29tbWVudCBpcyBoZWxwZnVsIHRv IG1lLgoKCldpdGggYmVzdCB3aXNoZXMsClRvYmlhcwoKCj4+IFdpdGggYmVzdCB3aXNoZXMsCj4+ IFRvYmlhcwo+Pgo+PiBQLlMuOiBXaGlsZSB0aGlzIGlzIG9ubHkgdGhlIGZpcnN0IHN0ZXAsIEkg YWxzbyBwbGFuIHRvIG1vdmUKPj4gbWl4ZXJfY2ZnX3NjYW4oKSBhbmQgbWl4ZXJfY2ZnX3JnYl9m bXQoKSB0byBtaXhlcl9hdG9taWNfZmx1c2goKS4KPj4KPj4KPj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+ IEZvciBjb21wbGV0ZW5lc3MgSSd2ZSBhbHNvIGNoZWNrZWQgZHJtX21vZGVfc2V0Y3J0YygpLCB0 aGUgb3RoZXIgbGVnYWN5Cj4+Pj4+IERSTSBjYWxsIHRoYXQgbWFuaXB1bGF0ZXMgdGhlIHByaW1h cnkgcGxhbmUuCj4+Pj4+Cj4+Pj4+IEl0IGdvZXMgdGhlIGZvbGxvd2luZyByb3V0ZToKPj4+Pj4g LSBkcm1fbW9kZV9zZXRjcnRjCj4+Pj4+ICAgLSBkcm1fbW9kZV9zZXRfY29uZmlnX2ludGVybmFs KCkKPj4+Pj4gICAgIC0gc2V0X2NvbmZpZygpIChzZXQgaW4gZXh5bm9zX2NydGNfZnVuY3MgaW4g ZXh5bm9zX2RybV9jcnRjLmMpCj4+Pj4+Cj4+Pj4+IEFsc28gaGVyZTogLnNldF9jb25maWcgPSBk cm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnCj4+Pj4+Cj4+Pj4+IEJvdGggRFJNX0lPQ1RMX01P REVfU0VUUExBTkUgYW5kIERSTV9JT0NUTF9NT0RFX0NSVEMgZ28gdGhlIGF0b21pYwo+Pj4+PiBy b3V0ZSwgc28gdGhlIHBhdGNoIGlzIGZpbmUgdGhpcyB3YXkuCj4+Pj4+Cj4+Pj4+IEBJbmtpOiBD YW4geW91IHN0aWxsIHF1ZXVlIHRoaXMgdXAgZm9yIDQuOS55Pwo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBX aXRoIGJlc3Qgd2lzaGVzLAo+Pj4+PiBUb2JpYXMKPj4+Pj4KPj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBS ZWdhcmRzCj4+Pj4+PiBBbmRyemVqCj4+Pj4+Pgo+Pj4+Pgo+Pj4+PiAtLQo+Pj4+PiBUbyB1bnN1 YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgt c2Ftc3VuZy1zb2MiIGluCj4+Pj4+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9A dmdlci5rZXJuZWwub3JnCj4+Pj4+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2Vy Lmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4gLS0K Pj4+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNj cmliZSBsaW51eC1zYW1zdW5nLXNvYyIgaW4KPj4+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBt YWpvcmRvbW9Admdlci5rZXJuZWwub3JnCj4+PiBNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRw Oi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKPj4+Cj4+Cj4+IC0tCj4+IFRv IHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBs aW51eC1zYW1zdW5nLXNvYyIgaW4KPj4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9t b0B2Z2VyLmtlcm5lbC5vcmcKPj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIu a2VybmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sCj4+Cj4+Cj4+CgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK