From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 8/8] drm/amdgpu: move align_mask and nop into ring funcs as well Date: Fri, 28 Oct 2016 12:12:58 +0200 Message-ID: References: <1475676809-3061-1-git-send-email-deathsimple@vodafone.de> <1475676809-3061-8-git-send-email-deathsimple@vodafone.de> <0d8b9683-01c5-0fdc-d52f-bfdf2a0fa67c@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Yu, Xiangliang" , Alex Deucher Cc: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" QW0gMjguMTAuMjAxNiB1bSAwNDowNiBzY2hyaWViIFl1LCBYaWFuZ2xpYW5nOgo+Pj4+PiBOQUss IHdlIGFncmVlZCB1cG9uIG1vdmluZyB0aGUgY29uc3RhbnQgZGF0YSBpbnRvIHRoZSBmdW5jdGlv bnMKPj4+Pj4gc3RydWN0dXJlIGFzIHdlbGwuCj4+Pj4+Cj4+Pj4+IEhvdyBhYm91dCByZW5hbWlu ZyB0aGUgYW1kZ3B1X3JpbmdfZnVuY3Mgc3RydWN0dXJlIHRvIG1ha2UgY2xlYXIKPj4+Pj4gdGhh dCBpdCBpc24ndCBvbmx5IGZ1bmN0aW9ucyBhbnkgbW9yZT8gU29tZXRoaW5nIGFtZGdwdV9yaW5n X3BhcmFtcwo+Pj4+PiBvciBzb21ldGhpbmcgbGlrZSB0aGF0Pwo+Pj4gV2hhdCBiZW5lZml0IHRv IHB1dCB0aGUgY29uc3RhbnQgZGF0YSBpbnRvIHRoZSBzdHJ1Y3R1cmU/Cj4+PiBJZiBubywgSSds bCBjcmVhdGUgYSBuZXcgcGF0Y2ggdGhhdCBjcmVhdGUgbmV3IHN0cnVjdHVyZSBmb3IgdGhlc2Ug Y29uc3RhbnQKPj4gZGF0YS4KPj4KPj4gVGhlIGZ1bmN0aW9ucyBhbmQgdGhlIHBhcmFtZXRlcnMg c2hvdWxkIGJlIGNvbnN0LiAgSSBkb24ndCBjYXJlIGhvdyB3ZQo+PiBhcnJhbmdlIHRoZSBzdHJ1 Y3R1cmUocykuICBGZWVsIGZyZWUgdG8gcmUtYXJyYW5nZS4KPiBZZXMsIEkga25vdy4gSSdsbCBy ZXBsYWNlIHRoZSBwb2ludGVyIGFkZHJlc3Mgb2YgZnVuY3Rpb24gc3RydWN0dXJlIG5vdCB0aGUg bWVtYmVyJ3MgY29udGVudC4KPiBJIHRoaW5rIHRoaXMgaXMgYmVzdCBjaG9pY2UgZm9yIG1ha2lu ZyBTUklPViBjb2RlIGluZGVwZW5kZW50IGFuZCBlYXN5IHRvIG1haW50YWluLgoKSSdtIGFjdHVh bGx5IG5vdCBzdXJlIGlmIGl0IGlzIGEgZ29vZCBpZGVhIHRvIG1ha2UgdGhlIFNSSU9WIGNvZGUg CmluZGVwZW5kZW50LCBidXQgYW55d2F5IEkgY2xlYXJseSBkb24ndCBzZWUgdGhlIGFkdmFudGFn ZSBvZiBwdXR0aW5nIHRoZSAKY29uc3RhbnQgbWVtYmVycyBpbnRvIGEgc2VwYXJhdGUgc3RydWN0 dXJlIGV2ZW4gd2l0aCBTUklPVi4KCk9uIHRoZSBvdGhlciBoYW5kIGFzIEFsZXggc2FpZCBmZWVs IGZyZWUgdG8gcmVhcnJhbmdlIHRoZSBtZW1iZXJzIGluIHRoZSAKc3RydWN0dXJlIG9yIHJlbmFt ZSB0aGUgc3RydWN0dXJlIHRvIGJldHRlciBtYXRjaCBpdCdzIHB1cnBvc2UuCgpSZWdhcmRzLApD aHJpc3RpYW4uCgo+Cj4+Pj4gV2h5IG5vdCBjcmVhdGUgYSBuZXcgc3RydWN0dXJlIGZvciB0aGUg Y29uc3RhbnQgZGF0YT8gSXQgY2FuIG1ha2UKPj4+PiBjb2RlIG1vcmUgZmxleGlibGUuCj4+Pj4g QWN0dWFsbHksIEknbSB3b3JraW5nIG9uIFNSSU9WIHBhdGNoZXMsIEkgbmVlZCB0aGUgYW1kZ3B1 X3JpbmdfZnVuY3MKPj4+PiBzdHJ1Y3R1cmUgc28gVGhhdCBlYXN5IHRvIGluaGVyaW50IGFsbCBv ZiBmdW5jdGlvbi4KPj4+Pgo+Pj4+PiBSZWdhcmRzLAo+Pj4+PiBDaHJpc3RpYW4uCj4+Pj4+Cj4+ Pj4+IEFtIDI2LjEwLjIwMTYgdW0gMDk6MzQgc2NocmllYiBZdSwgWGlhbmdsaWFuZzoKPj4+Pj4+ IEhpIENocmlzdGlhbiwKPj4+Pj4+Cj4+Pj4+PiBDb3VsZCB5b3UgaGVscCBwdXQgIHR5cGUsIGFs aWdhbl9tYXNrLCBub3Agb2YgYW1kZ3B1X3JpbmdfZnVuY3MKPj4+Pj4+IHN0cnVjdAo+Pj4+PiBm aWVsZCBpbnRvIGFtZGdwdV9yaW5nIHN0cnVjdD8KPj4+Pj4+IEkgdGhpbmsgYW1kZ3B1X3Jpbmdf ZnVuY3Mgc2hvdWxkIGluY2x1ZGUgZnVuY3Rpb24gcG9pbnRlciwgbm90Cj4+Pj4+PiBhdHRyaWJ1 dGUuIFlvdXIgcGF0Y2hlcyBpcyBub3QgZm9sbG93IHRoZSBzdHJ1Y3QgZGVzaWduLCAgYW5kIHRo ZQo+Pj4+PiBhbWRncHVfcmluZyB3aWxsIGxvc3QgdGhlIG1lYW5pbmcuCj4+Pj4+Pgo+Pj4+Pj4g VGhhbmtzIQo+Pj4+Pj4gWGlhbmdsaWFuZyBZdQo+Pj4+Pj4KPj4+Pj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQo+Pj4+Pj4+IEZyb206IGFtZC1nZnggW21haWx0bzphbWQtZ2Z4LWJvdW5j ZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnXSBPbgo+Pj4+Pj4+IEJlaGFsZiBPZiBDaHJpc3RpYW4g Sz9uaWcKPj4+Pj4+PiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMDUsIDIwMTYgMTA6MTMgUE0K Pj4+Pj4+PiBUbzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+PiBTdWJqZWN0 OiBbUEFUQ0ggOC84XSBkcm0vYW1kZ3B1OiBtb3ZlIGFsaWduX21hc2sgYW5kIG5vcCBpbnRvCj4+ Pj4+Pj4gcmluZyBmdW5jcyBhcyB3ZWxsCj4+Pj4+Pj4KPj4+Pj4+PiBGcm9tOiBDaHJpc3RpYW4g S8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pj4+Pj4KPj4+Pj4+PiBUaGV5IGFy ZSBjb25zdGFudCBhcyB3ZWxsLgo+Pj4+Pj4+Cj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4+Pj4+IC0tLQo+Pj4+Pj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmMgfCAxOQo+Pj4+Pj4+ ICsrKysrKysrKy0tLS0tLS0tCj4+Pj4gLS0KPj4+Pj4+PiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfcmluZy5oIHwgIDggKysrKy0tLS0KPj4+Pj4+PiAgICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9jaWtfc2RtYS5jICAgIHwgIDcgKysrKy0tLQo+Pj4+Pj4+ICAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92Nl8wLmMgICAgfCAgNiArKysrLS0KPj4+Pj4+PiAg ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jICAgIHwgIDYgKysrKy0tCj4+ Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYyAgICB8IDE0ICsr KysrKysrLS0tLS0tCj4+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92 Ml80LmMgICB8ICA3ICsrKystLS0KPj4+Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9zZG1hX3YzXzAuYyAgIHwgIDcgKysrKy0tLQo+Pj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NpX2RtYS5jICAgICAgfCAgMyArKy0KPj4+Pj4+PiAgICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS91dmRfdjRfMi5jICAgIHwgIDUgKysrLS0KPj4+Pj4+PiAgICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjVfMC5jICAgIHwgIDUgKysrLS0KPj4+Pj4+PiAgICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjZfMC5jICAgIHwgIDUgKysrLS0KPj4+Pj4+ PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjJfMC5jICAgIHwgIDQgKysrLQo+ Pj4+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92M18wLmMgICAgfCAgNSAr KystLQo+Pj4+Pj4+ICAgIDE0IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDQzIGRl bGV0aW9ucygtKQo+Pj4+Pj4+Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmMKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9yaW5nLmMKPj4+Pj4+PiBpbmRleCBiMmRmNzM1Li5hMTQxYjQ2IDEwMDY0NAo+ Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmMKPj4+ Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5jCj4+Pj4+ Pj4gQEAgLTY1LDcgKzY1LDcgQEAgaW50IGFtZGdwdV9yaW5nX2FsbG9jKHN0cnVjdCBhbWRncHVf cmluZwo+Pj4+Pj4+ICpyaW5nLCB1bnNpZ25lZCBuZHcpICB7Cj4+Pj4+Pj4gICAgICAgICAgIC8q IEFsaWduIHJlcXVlc3RlZCBzaXplIHdpdGggcGFkZGluZyBzbyB1bmxvY2tfY29tbWl0IGNhbgo+ Pj4+Pj4+ICAgICAgICAgICAgKiBwYWQgc2FmZWx5ICovCj4+Pj4+Pj4gLSAgICAgICAgbmR3ID0g KG5kdyArIHJpbmctPmFsaWduX21hc2spICYgfnJpbmctPmFsaWduX21hc2s7Cj4+Pj4+Pj4gKyAg ICAgICAgbmR3ID0gKG5kdyArIHJpbmctPmZ1bmNzLT5hbGlnbl9tYXNrKSAmCj4+Pj4+Pj4gKyB+ cmluZy0+ZnVuY3MtPmFsaWduX21hc2s7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgICAgLyogTWFr ZSBzdXJlIHdlIGFyZW4ndCB0cnlpbmcgdG8gYWxsb2NhdGUgbW9yZSBzcGFjZQo+Pj4+Pj4+ICAg ICAgICAgICAgKiB0aGFuIHRoZSBtYXhpbXVtIGZvciBvbmUgc3VibWlzc2lvbiBAQCAtOTQsNyAr OTQsNwo+Pj4+Pj4+IEBAIHZvaWQgYW1kZ3B1X3JpbmdfaW5zZXJ0X25vcChzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsCj4+IHVpbnQzMl90IGNvdW50KQo+Pj4+Pj4+ICAgICAgICAgICBpbnQgaTsK Pj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykKPj4+ Pj4+PiAtICAgICAgICAgICAgICAgIGFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHJpbmctPm5vcCk7 Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBhbWRncHVfcmluZ193cml0ZShyaW5nLCByaW5nLT5m dW5jcy0+bm9wKTsKPj4+Pj4+PiAgICB9Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAvKiogYW1kZ3B1X3Jp bmdfZ2VuZXJpY19wYWRfaWIgLSBwYWQgSUIgd2l0aCBOT1AgcGFja2V0cyBAQAo+Pj4+Pj4+IC0x MDYsOAo+Pj4+Pj4+ICsxMDYsOCBAQCB2b2lkIGFtZGdwdV9yaW5nX2luc2VydF9ub3Aoc3RydWN0 IGFtZGdwdV9yaW5nICpyaW5nLAo+Pj4+Pj4+IHVpbnQzMl90IGNvdW50KQo+Pj4+Pj4+ICAgICAq Lwo+Pj4+Pj4+ICAgIHZvaWQgYW1kZ3B1X3JpbmdfZ2VuZXJpY19wYWRfaWIoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLAo+Pj4+Pj4+IHN0cnVjdCBhbWRncHVfaWIgKmliKSAgewo+Pj4+Pj4+IC0g ICAgICAgIHdoaWxlIChpYi0+bGVuZ3RoX2R3ICYgcmluZy0+YWxpZ25fbWFzaykKPj4+Pj4+PiAt ICAgICAgICAgICAgICAgIGliLT5wdHJbaWItPmxlbmd0aF9kdysrXSA9IHJpbmctPm5vcDsKPj4+ Pj4+PiArICAgICAgICB3aGlsZSAoaWItPmxlbmd0aF9kdyAmIHJpbmctPmZ1bmNzLT5hbGlnbl9t YXNrKQo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgaWItPnB0cltpYi0+bGVuZ3RoX2R3KytdID0g cmluZy0+ZnVuY3MtPm5vcDsKPj4+Pj4+PiAgICB9Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAvKioKPj4+ Pj4+PiBAQCAtMTI1LDggKzEyNSw5IEBAIHZvaWQgYW1kZ3B1X3JpbmdfY29tbWl0KHN0cnVjdAo+ PiBhbWRncHVfcmluZwo+Pj4+PiAqcmluZykKPj4+Pj4+PiAgICAgICAgICAgdWludDMyX3QgY291 bnQ7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgICAgLyogV2UgcGFkIHRvIG1hdGNoIGZldGNoIHNp emUgKi8KPj4+Pj4+PiAtICAgICAgICBjb3VudCA9IHJpbmctPmFsaWduX21hc2sgKyAxIC0gKHJp bmctPndwdHIgJiByaW5nLT5hbGlnbl9tYXNrKTsKPj4+Pj4+PiAtICAgICAgICBjb3VudCAlPSBy aW5nLT5hbGlnbl9tYXNrICsgMTsKPj4+Pj4+PiArICAgICAgICBjb3VudCA9IHJpbmctPmZ1bmNz LT5hbGlnbl9tYXNrICsgMSAtCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAocmluZy0+d3B0ciAm IHJpbmctPmZ1bmNzLT5hbGlnbl9tYXNrKTsKPj4+Pj4+PiArICAgICAgICBjb3VudCAlPSByaW5n LT5mdW5jcy0+YWxpZ25fbWFzayArIDE7Cj4+Pj4+Pj4gICAgICAgICAgIHJpbmctPmZ1bmNzLT5p bnNlcnRfbm9wKHJpbmcsIGNvdW50KTsKPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgICAgICBtYigpOwo+ Pj4+Pj4+IEBAIC0xNjMsOCArMTY0LDggQEAgdm9pZCBhbWRncHVfcmluZ191bmRvKHN0cnVjdCBh bWRncHVfcmluZwo+Pj4+ICpyaW5nKQo+Pj4+Pj4+ICAgICAqIFJldHVybnMgMCBvbiBzdWNjZXNz LCBlcnJvciBvbiBmYWlsdXJlLgo+Pj4+Pj4+ICAgICAqLwo+Pj4+Pj4+ICAgIGludCBhbWRncHVf cmluZ19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QKPj4+Pj4+PiBhbWRn cHVfcmluZyAqcmluZywKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWF4 X2R3LCB1MzIgbm9wLCB1MzIgYWxpZ25fbWFzaywKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICppcnFfc3JjLCB1bnNpZ25lZCBpcnFfdHlwZSkKPj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWF4X2R3LCBzdHJ1Y3QgYW1kZ3B1 X2lycV9zcmMgKmlycV9zcmMsCj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGlycV90eXBlKQo+Pj4+Pj4+ICAgIHsKPj4+Pj4+PiAgICAgICAgICAgaW50IHI7Cj4+Pj4+Pj4K Pj4+Pj4+PiBAQCAtMjE1LDggKzIxNiw2IEBAIGludCBhbWRncHVfcmluZ19pbml0KHN0cnVjdCBh bWRncHVfZGV2aWNlCj4+Pj4+Pj4gKmFkZXYsIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKPj4+ Pj4+Pgo+Pj4+Pj4+ICAgICAgICAgICByaW5nLT5yaW5nX3NpemUgPSByb3VuZHVwX3Bvd19vZl90 d28obWF4X2R3ICogNCAqCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhbWRncHVfc2NoZWRfaHdfc3VibWlzc2lvbik7Cj4+Pj4+Pj4gLSAgICAg ICAgcmluZy0+YWxpZ25fbWFzayA9IGFsaWduX21hc2s7Cj4+Pj4+Pj4gLSAgICAgICAgcmluZy0+ bm9wID0gbm9wOwo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgICAgICAgIC8qIEFsbG9jYXRlIHJpbmcgYnVm ZmVyICovCj4+Pj4+Pj4gICAgICAgICAgIGlmIChyaW5nLT5yaW5nX29iaiA9PSBOVUxMKSB7IGRp ZmYgLS1naXQKPj4+Pj4+PiBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5n LmgKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmgKPj4+ Pj4+PiBpbmRleCA2Y2Y4OWM5Li4xZWUxYjY1IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmgKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5oCj4+Pj4+Pj4gQEAgLTkzLDYgKzkzLDggQEAg dW5zaWduZWQgYW1kZ3B1X2ZlbmNlX2NvdW50X2VtaXR0ZWQoc3RydWN0Cj4+Pj4+Pj4gYW1kZ3B1 X3JpbmcgKnJpbmcpOwo+Pj4+Pj4+ICAgIC8qIHByb3ZpZGVkIGJ5IGh3IGJsb2NrcyB0aGF0IGV4 cG9zZSBhIHJpbmcgYnVmZmVyIGZvcgo+Pj4+Pj4+IGNvbW1hbmRzICovIHN0cnVjdCBhbWRncHVf cmluZ19mdW5jcyB7Cj4+Pj4+Pj4gICAgICAgICAgIGVudW0gYW1kZ3B1X3JpbmdfdHlwZSAgIHR5 cGU7Cj4+Pj4+Pj4gKyAgICAgICAgdWludDMyX3QgICAgICAgICAgICAgICAgYWxpZ25fbWFzazsK Pj4+Pj4+PiArICAgICAgICB1MzIgICAgICAgICAgICAgICAgICAgICBub3A7Cj4+Pj4+Pj4KPj4+ Pj4+PiAgICAgICAgICAgLyogcmluZyByZWFkL3dyaXRlIHB0ciBoYW5kbGluZyAqLwo+Pj4+Pj4+ ICAgICAgICAgICB1MzIgKCpnZXRfcnB0cikoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsgQEAg LTE0OSwxMAo+Pj4+Pj4+ICsxNTEsOCBAQCBzdHJ1Y3QgYW1kZ3B1X3Jpbmcgewo+Pj4+Pj4+ICAg ICAgICAgICB1bnNpZ25lZCAgICAgICAgICAgICAgICBtYXhfZHc7Cj4+Pj4+Pj4gICAgICAgICAg IGludCAgICAgICAgICAgICAgICAgICAgIGNvdW50X2R3Owo+Pj4+Pj4+ICAgICAgICAgICB1aW50 NjRfdCAgICAgICAgICAgICAgICBncHVfYWRkcjsKPj4+Pj4+PiAtICAgICAgICB1aW50MzJfdCAg ICAgICAgICAgICAgICBhbGlnbl9tYXNrOwo+Pj4+Pj4+ICAgICAgICAgICB1aW50MzJfdCAgICAg ICAgICAgICAgICBwdHJfbWFzazsKPj4+Pj4+PiAgICAgICAgICAgYm9vbCAgICAgICAgICAgICAg ICAgICAgcmVhZHk7Cj4+Pj4+Pj4gLSAgICAgICAgdTMyICAgICAgICAgICAgICAgICAgICAgbm9w Owo+Pj4+Pj4+ICAgICAgICAgICB1MzIgICAgICAgICAgICAgICAgICAgICBpZHg7Cj4+Pj4+Pj4g ICAgICAgICAgIHUzMiAgICAgICAgICAgICAgICAgICAgIG1lOwo+Pj4+Pj4+ICAgICAgICAgICB1 MzIgICAgICAgICAgICAgICAgICAgICBwaXBlOwo+Pj4+Pj4+IEBAIC0xNzgsOCArMTc4LDggQEAg dm9pZCBhbWRncHVfcmluZ19nZW5lcmljX3BhZF9pYihzdHJ1Y3QKPj4+Pj4+PiBhbWRncHVfcmlu ZyAqcmluZywgc3RydWN0IGFtZGdwdV9pYiAqaWIpOyAgdm9pZAo+Pj4+Pj4+IGFtZGdwdV9yaW5n X2NvbW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOyAgdm9pZAo+Pj4+Pj4+IGFtZGdwdV9y aW5nX3VuZG8oc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsgIGludAo+Pj4+PiBhbWRncHVfcmlu Z19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3JpbmcKPj4+ Pj4gKnJpbmcsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHJpbmdfc2l6 ZSwgdTMyIG5vcCwgdTMyIGFsaWduX21hc2ssCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqaXJxX3NyYywgdW5zaWduZWQgaXJxX3R5cGUpOwo+Pj4+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCByaW5nX3NpemUsIHN0cnVjdCBhbWRn cHVfaXJxX3NyYyAqaXJxX3NyYywKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaXJxX3R5cGUpOwo+Pj4+Pj4+ICAgIHZvaWQgYW1kZ3B1X3JpbmdfZmluaShzdHJ1Y3QgYW1k Z3B1X3JpbmcgKnJpbmcpOwo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgI2VuZGlmCj4+Pj4+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKPj4+Pj4+PiBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Npa19zZG1hLmMKPj4+Pj4+PiBpbmRleCBmOTFmMDJm Li42NjRmODk0IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2Npa19zZG1hLmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtf c2RtYS5jCj4+Pj4+Pj4gQEAgLTIwNSwxMCArMjA1LDEwIEBAIHN0YXRpYyB2b2lkCj4+Pj4+Pj4g Y2lrX3NkbWFfcmluZ19pbnNlcnRfbm9wKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdWludDMy X3QKPj4+Pj4+PiBjb3VudCkKPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgICAgICBmb3IgKGkgPSAwOyBp IDwgY291bnQ7IGkrKykKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICBpZiAoc2RtYSAmJiBzZG1h LT5idXJzdF9ub3AgJiYgKGkgPT0gMCkpCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAg IGFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHJpbmctPm5vcCB8Cj4+Pj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsCj4+Pj4+Pj4gKyByaW5nLT5mdW5j cy0+bm9wIHwKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNETUFfTk9QX0NPVU5UKGNvdW50IC0gMSkpOwo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAg IGVsc2UKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X3Jpbmdfd3JpdGUo cmluZywgcmluZy0+bm9wKTsKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1 X3Jpbmdfd3JpdGUocmluZywKPj4+Pj4+PiArIHJpbmctPmZ1bmNzLT5ub3ApOwo+Pj4+Pj4+ICAg IH0KPj4+Pj4+Pgo+Pj4+Pj4+ICAgIC8qKgo+Pj4+Pj4+IEBAIC05NDIsNyArOTQyLDYgQEAgc3Rh dGljIGludCBjaWtfc2RtYV9zd19pbml0KHZvaWQgKmhhbmRsZSkKPj4+Pj4+PiAgICAgICAgICAg ICAgICAgICByaW5nLT5yaW5nX29iaiA9IE5VTEw7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAg c3ByaW50ZihyaW5nLT5uYW1lLCAic2RtYSVkIiwgaSk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwKPj4+Pj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNETUFfUEFDS0VUKFNETUFfT1BDT0RFX05P UCwgMCwKPj4+Pj4+PiAwKSwgMHhmLAo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZhZGV2LT5zZG1hLnRyYXBfaXJxLAo+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChpID09IDApID8KPj4+Pj4+PiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBBTURHUFVfU0RNQV9JUlFfVFJBUDAgOgo+Pj4+Pj4+ IEBAIC0xMjA3LDYgKzEyMDYsOCBAQCBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzCj4+Pj4+Pj4g Y2lrX3NkbWFfaXBfZnVuY3MKPj4+PiA9Cj4+Pj4+IHsKPj4+Pj4+PiAgICBzdGF0aWMgY29uc3Qg c3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIGNpa19zZG1hX3JpbmdfZnVuY3MgPSB7Cj4+Pj4+Pj4g ICAgICAgICAgIC50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9TRE1BLAo+Pj4+Pj4+ICsgICAgICAg IC5hbGlnbl9tYXNrID0gMHhmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSBTRE1BX1BBQ0tFVChT RE1BX09QQ09ERV9OT1AsIDAsIDApLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIgPSBjaWtf c2RtYV9yaW5nX2dldF9ycHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBjaWtfc2Rt YV9yaW5nX2dldF93cHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuc2V0X3dwdHIgPSBjaWtfc2RtYV9y aW5nX3NldF93cHRyLCBkaWZmIC0tZ2l0Cj4+Pj4+Pj4gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nZnhfdjZfMC5jCj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhf djZfMC5jCj4+Pj4+Pj4gaW5kZXggMWY4Njg3ZmQuLjM2N2IxNGUgMTAwNjQ0Cj4+Pj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y2XzAuYwo+Pj4+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92Nl8wLmMKPj4+Pj4+PiBAQCAtMjg2OSw3ICsy ODY5LDYgQEAgc3RhdGljIGludCBnZnhfdjZfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPj4+Pj4+ PiAgICAgICAgICAgICAgICAgICByaW5nLT5yaW5nX29iaiA9IE5VTEw7Cj4+Pj4+Pj4gICAgICAg ICAgICAgICAgICAgc3ByaW50ZihyaW5nLT5uYW1lLCAiZ2Z4Iik7Cj4+Pj4+Pj4gICAgICAgICAg ICAgICAgICAgciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwKPj4+Pj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODAwMDAwMDAsIDB4ZmYsCj4+ Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZXYtPmdmeC5l b3BfaXJxLAo+Pj4+Pj4+IEFNREdQVV9DUF9JUlFfR0ZYX0VPUCk7Cj4+Pj4+Pj4gICAgICAgICAg ICAgICAgICAgaWYgKHIpCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g cjsgQEAgLTI4OTIsNyArMjg5MSw2IEBAIHN0YXRpYwo+Pj4+Pj4+IGludCBnZnhfdjZfMF9zd19p bml0KHZvaWQgKmhhbmRsZSkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHJpbmct Pm5hbWUsICJjb21wICVkLiVkLiVkIiwgcmluZy0+bWUsCj4+Pj4+Pj4gcmluZy0+cGlwZSwKPj4+ Pj4+PiByaW5nLT5xdWV1ZSk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgaXJxX3R5cGUgPSBB TURHUFVfQ1BfSVJRX0NPTVBVVEVfTUVDMV9QSVBFMF9FT1AKPj4+Pj4+PiArIHJpbmctPnBpcGU7 Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmlu ZywgMTAyNCwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 ODAwMDAwMDAsIDB4ZmYsCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmFkZXYtPmdmeC5lb3BfaXJxLCBpcnFfdHlwZSk7Cj4+Pj4+Pj4gICAgICAgICAgICAg ICAgICAgaWYgKHIpCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcjsg QEAgLTMyMjcsNiArMzIyNSw4IEBAIGNvbnN0Cj4+Pj4+Pj4gc3RydWN0IGFtZF9pcF9mdW5jcyBn ZnhfdjZfMF9pcF9mdW5jcwo+Pj4+ID0KPj4+Pj4gewo+Pj4+Pj4+ICAgIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgZ2Z4X3Y2XzBfcmluZ19mdW5jc19nZnggPSB7Cj4+Pj4+ Pj4gICAgICAgICAgIC50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9HRlgsCj4+Pj4+Pj4gKyAgICAg ICAgLmFsaWduX21hc2sgPSAweGZmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSAweDgwMDAwMDAw LAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIgPSBnZnhfdjZfMF9yaW5nX2dldF9ycHRyLAo+ Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBnZnhfdjZfMF9yaW5nX2dldF93cHRyLAo+Pj4+ Pj4+ICAgICAgICAgICAuc2V0X3dwdHIgPSBnZnhfdjZfMF9yaW5nX3NldF93cHRyX2dmeCwgQEAg LTMyNTIsNgo+Pj4+Pj4+ICszMjUyLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmlu Z19mdW5jcwo+Pj4+Pj4+IGdmeF92Nl8wX3JpbmdfZnVuY3NfZ2Z4ID0gewo+Pj4+Pj4+Cj4+Pj4+ Pj4gICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcwo+Pj4+Pj4+IGdmeF92 Nl8wX3JpbmdfZnVuY3NfY29tcHV0ZQo+Pj4+ID0gewo+Pj4+Pj4+ICAgICAgICAgICAudHlwZSA9 IEFNREdQVV9SSU5HX1RZUEVfQ09NUFVURSwKPj4+Pj4+PiArICAgICAgICAuYWxpZ25fbWFzayA9 IDB4ZmYsCj4+Pj4+Pj4gKyAgICAgICAgLm5vcCA9IDB4ODAwMDAwMDAsCj4+Pj4+Pj4gICAgICAg ICAgIC5nZXRfcnB0ciA9IGdmeF92Nl8wX3JpbmdfZ2V0X3JwdHIsCj4+Pj4+Pj4gICAgICAgICAg IC5nZXRfd3B0ciA9IGdmeF92Nl8wX3JpbmdfZ2V0X3dwdHIsCj4+Pj4+Pj4gICAgICAgICAgIC5z ZXRfd3B0ciA9IGdmeF92Nl8wX3Jpbmdfc2V0X3dwdHJfY29tcHV0ZSwgZGlmZiAtLWdpdAo+Pj4+ Pj4+IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwo+Pj4+Pj4+IGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y3XzAuYwo+Pj4+Pj4+IGluZGV4IGJlMzg4MWUu LjE1ZjI0YmQgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z2Z4X3Y3XzAuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92 N18wLmMKPj4+Pj4+PiBAQCAtNDYwNSw3ICs0NjA1LDYgQEAgc3RhdGljIGludCBnZnhfdjdfMF9z d19pbml0KHZvaWQgKmhhbmRsZSkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICByaW5nLT5yaW5n X29iaiA9IE5VTEw7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgc3ByaW50ZihyaW5nLT5uYW1l LCAiZ2Z4Iik7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgciA9IGFtZGdwdV9yaW5nX2luaXQo YWRldiwgcmluZywgMTAyNCwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBBQ0tFVDMoUEFDS0VUM19OT1AsIDB4M0ZGRiksIDB4ZmYsCj4+Pj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZXYtPmdmeC5lb3BfaXJxLAo+Pj4+ Pj4+IEFNREdQVV9DUF9JUlFfR0ZYX0VPUCk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgaWYg KHIpCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcjsgQEAgLTQ2MzEs NyArNDYzMCw2IEBAIHN0YXRpYwo+Pj4+Pj4+IGludCBnZnhfdjdfMF9zd19pbml0KHZvaWQgKmhh bmRsZSkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICBpcnFfdHlwZSA9IEFNREdQVV9DUF9JUlFf Q09NUFVURV9NRUMxX1BJUEUwX0VPUAo+Pj4+Pj4+ICsgcmluZy0+cGlwZTsKPj4+Pj4+PiAgICAg ICAgICAgICAgICAgICAvKiB0eXBlLTIgcGFja2V0cyBhcmUgZGVwcmVjYXRlZCBvbiBNRUMsIHVz ZQo+Pj4+Pj4+IHR5cGUtMyBpbnN0ZWFkCj4+Pj4+ICovCj4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwKPj4+Pj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBQ0tFVDMoUEFDS0VUM19OT1AsIDB4M0ZG RiksIDB4ZmYsCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmFkZXYtPmdmeC5lb3BfaXJxLCBpcnFfdHlwZSk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAg aWYgKHIpCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcjsgQEAgLTUx MDIsNiArNTEwMCw4IEBAIGNvbnN0Cj4+Pj4+Pj4gc3RydWN0IGFtZF9pcF9mdW5jcyBnZnhfdjdf MF9pcF9mdW5jcwo+Pj4+ID0KPj4+Pj4gewo+Pj4+Pj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg YW1kZ3B1X3JpbmdfZnVuY3MgZ2Z4X3Y3XzBfcmluZ19mdW5jc19nZnggPSB7Cj4+Pj4+Pj4gICAg ICAgICAgIC50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9HRlgsCj4+Pj4+Pj4gKyAgICAgICAgLmFs aWduX21hc2sgPSAweGZmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSBQQUNLRVQzKFBBQ0tFVDNf Tk9QLCAweDNGRkYpLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIgPSBnZnhfdjdfMF9yaW5n X2dldF9ycHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBnZnhfdjdfMF9yaW5nX2dl dF93cHRyX2dmeCwKPj4+Pj4+PiAgICAgICAgICAgLnNldF93cHRyID0gZ2Z4X3Y3XzBfcmluZ19z ZXRfd3B0cl9nZngsIEBAIC01MTMwLDYKPj4+Pj4+PiArNTEzMCw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MKPj4+Pj4+PiBnZnhfdjdfMF9yaW5nX2Z1bmNzX2dmeCA9 IHsKPj4+Pj4+Pgo+Pj4+Pj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVu Y3MKPj4+Pj4+PiBnZnhfdjdfMF9yaW5nX2Z1bmNzX2NvbXB1dGUKPj4+PiA9IHsKPj4+Pj4+PiAg ICAgICAgICAgLnR5cGUgPSBBTURHUFVfUklOR19UWVBFX0NPTVBVVEUsCj4+Pj4+Pj4gKyAgICAg ICAgLmFsaWduX21hc2sgPSAweGZmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSBQQUNLRVQzKFBB Q0tFVDNfTk9QLCAweDNGRkYpLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIgPSBnZnhfdjdf MF9yaW5nX2dldF9ycHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBnZnhfdjdfMF9y aW5nX2dldF93cHRyX2NvbXB1dGUsCj4+Pj4+Pj4gICAgICAgICAgIC5zZXRfd3B0ciA9IGdmeF92 N18wX3Jpbmdfc2V0X3dwdHJfY29tcHV0ZSwgZGlmZiAtLWdpdAo+Pj4+Pj4+IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwo+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ2Z4X3Y4XzAuYwo+Pj4+Pj4+IGluZGV4IDBkNjZmNDkuLjUxZjExMzkgMTAwNjQ0 Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwo+Pj4+ Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OF8wLmMKPj4+Pj4+PiBA QCAtMjA2MSw5ICsyMDYxLDggQEAgc3RhdGljIGludCBnZnhfdjhfMF9zd19pbml0KHZvaWQgKmhh bmRsZSkKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpbmctPmRvb3JiZWxsX2lu ZGV4ID0KPj4+Pj4+PiBBTURHUFVfRE9PUkJFTExfR0ZYX1JJTkcwOwo+Pj4+Pj4+ICAgICAgICAg ICAgICAgICAgIH0KPj4+Pj4+Pgo+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgciA9IGFtZGdwdV9y aW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwKPj4+Pj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBBQ0tFVDMoUEFDS0VUM19OT1AsIDB4M0ZGRiksIDB4ZmYsCj4+Pj4+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYWRldi0+Z2Z4LmVvcF9p cnEsCj4+Pj4+Pj4gQU1ER1BVX0NQX0lSUV9HRlhfRU9QKTsKPj4+Pj4+PiArICAgICAgICAgICAg ICAgIHIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDEwMjQsICZhZGV2LT5nZnguZW9w X2lycSwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFNREdQ VV9DUF9JUlFfR0ZYX0VPUCk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgaWYgKHIpCj4+Pj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcjsKPj4+Pj4+PiAgICAgICAgICAg fQo+Pj4+Pj4+IEBAIC0yMDg3LDkgKzIwODYsOCBAQCBzdGF0aWMgaW50IGdmeF92OF8wX3N3X2lu aXQodm9pZCAqaGFuZGxlKQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgIHNwcmludGYocmluZy0+ bmFtZSwgImNvbXBfJWQuJWQuJWQiLCByaW5nLT5tZSwKPj4+Pj4+PiByaW5nLQo+Pj4+Pj4+PiBw aXBlLCByaW5nLT5xdWV1ZSk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgaXJxX3R5cGUgPSBB TURHUFVfQ1BfSVJRX0NPTVBVVEVfTUVDMV9QSVBFMF9FT1AKPj4+Pj4+PiArIHJpbmctPnBpcGU7 Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgLyogdHlwZS0yIHBhY2tldHMgYXJlIGRlcHJlY2F0 ZWQgb24gTUVDLCB1c2UKPj4+Pj4+PiB0eXBlLTMgaW5zdGVhZAo+Pj4+PiAqLwo+Pj4+Pj4+IC0g ICAgICAgICAgICAgICAgciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwKPj4+ Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBQ0tFVDMoUEFDS0VU M19OT1AsIDB4M0ZGRiksIDB4ZmYsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmYWRldi0+Z2Z4LmVvcF9pcnEsIGlycV90eXBlKTsKPj4+Pj4+PiArICAgICAg ICAgICAgICAgIHIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDEwMjQsICZhZGV2LT5n ZnguZW9wX2lycSwKPj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlycV90eXBlKTsKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICBpZiAocikKPj4+Pj4+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByOwo+Pj4+Pj4+ICAgICAgICAgICB9Cj4+Pj4+ Pj4gQEAgLTY1MzIsNiArNjUzMCw4IEBAIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MKPj4+Pj4+ PiBnZnhfdjhfMF9pcF9mdW5jcwo+Pj4+ID0KPj4+Pj4gewo+Pj4+Pj4+ICAgIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgZ2Z4X3Y4XzBfcmluZ19mdW5jc19nZnggPSB7Cj4+ Pj4+Pj4gICAgICAgICAgIC50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9HRlgsCj4+Pj4+Pj4gKyAg ICAgICAgLmFsaWduX21hc2sgPSAweGZmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSBQQUNLRVQz KFBBQ0tFVDNfTk9QLCAweDNGRkYpLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIgPSBnZnhf djhfMF9yaW5nX2dldF9ycHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBnZnhfdjhf MF9yaW5nX2dldF93cHRyX2dmeCwKPj4+Pj4+PiAgICAgICAgICAgLnNldF93cHRyID0gZ2Z4X3Y4 XzBfcmluZ19zZXRfd3B0cl9nZngsIEBAIC02NTYyLDYKPj4+Pj4+PiArNjU2Miw4IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MKPj4+Pj4+PiBnZnhfdjhfMF9yaW5nX2Z1 bmNzX2dmeCA9IHsKPj4+Pj4+Pgo+Pj4+Pj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1 X3JpbmdfZnVuY3MKPj4+Pj4+PiBnZnhfdjhfMF9yaW5nX2Z1bmNzX2NvbXB1dGUKPj4+PiA9IHsK Pj4+Pj4+PiAgICAgICAgICAgLnR5cGUgPSBBTURHUFVfUklOR19UWVBFX0NPTVBVVEUsCj4+Pj4+ Pj4gKyAgICAgICAgLmFsaWduX21hc2sgPSAweGZmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSBQ QUNLRVQzKFBBQ0tFVDNfTk9QLCAweDNGRkYpLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIg PSBnZnhfdjhfMF9yaW5nX2dldF9ycHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBn ZnhfdjhfMF9yaW5nX2dldF93cHRyX2NvbXB1dGUsCj4+Pj4+Pj4gICAgICAgICAgIC5zZXRfd3B0 ciA9IGdmeF92OF8wX3Jpbmdfc2V0X3dwdHJfY29tcHV0ZSwgZGlmZiAtLWdpdAo+Pj4+Pj4+IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc2RtYV92Ml80LmMKPj4+Pj4+PiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJfNC5jCj4+Pj4+Pj4gaW5kZXggYjExYTgxZS4uNDlj NDdkNiAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1h X3YyXzQuYwo+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjJf NC5jCj4+Pj4+Pj4gQEAgLTIzNiwxMCArMjM2LDEwIEBAIHN0YXRpYyB2b2lkCj4+Pj4+Pj4gc2Rt YV92Ml80X3JpbmdfaW5zZXJ0X25vcChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90 Cj4+Pj4+Pj4gY291bnQpCj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgaWYgKHNkbWEgJiYgc2RtYS0+ YnVyc3Rfbm9wICYmIChpID09IDApKQo+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICBh bWRncHVfcmluZ193cml0ZShyaW5nLCByaW5nLT5ub3AgfAo+Pj4+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICBhbWRncHVfcmluZ193cml0ZShyaW5nLAo+Pj4+Pj4+ICsgcmluZy0+ZnVuY3Mt Pm5vcCB8Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNETUFfUEtU X05PUF9IRUFERVJfQ09VTlQoY291bnQKPj4+Pj4+PiAtCj4+Pj4+IDEpKTsKPj4+Pj4+PiAgICAg ICAgICAgICAgICAgICBlbHNlCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdw dV9yaW5nX3dyaXRlKHJpbmcsIHJpbmctPm5vcCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgIGFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsCj4+Pj4+Pj4gKyByaW5nLT5mdW5jcy0+bm9w KTsKPj4+Pj4+PiAgICB9Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAvKioKPj4+Pj4+PiBAQCAtOTUzLDcg Kzk1Myw2IEBAIHN0YXRpYyBpbnQgc2RtYV92Ml80X3N3X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4+ Pj4+ICAgICAgICAgICAgICAgICAgIHJpbmctPnVzZV9kb29yYmVsbCA9IGZhbHNlOwo+Pj4+Pj4+ ICAgICAgICAgICAgICAgICAgIHNwcmludGYocmluZy0+bmFtZSwgInNkbWElZCIsIGkpOwo+Pj4+ Pj4+ICAgICAgICAgICAgICAgICAgIHIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDEw MjQsCj4+Pj4+Pj4gLQo+Pj4+Pj4+IFNETUFfUEtUX05PUF9IRUFERVJfT1AoU0RNQV9PUF9OT1Ap LCAweGYsCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFk ZXYtPnNkbWEudHJhcF9pcnEsCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGkgPT0gMCkgPwo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEFNREdQVV9TRE1BX0lSUV9UUkFQMCA6Cj4+Pj4+Pj4gQEAgLTEyMTEsNiArMTIx MCw4IEBAIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3MKPj4+PiBzZG1hX3YyXzRfaXBfZnVuY3MK Pj4+Pj4gPQo+Pj4+Pj4+IHsKPj4+Pj4+Pgo+Pj4+Pj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg YW1kZ3B1X3JpbmdfZnVuY3Mgc2RtYV92Ml80X3JpbmdfZnVuY3MgPSB7Cj4+Pj4+Pj4gICAgICAg ICAgIC50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9TRE1BLAo+Pj4+Pj4+ICsgICAgICAgIC5hbGln bl9tYXNrID0gMHhmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSBTRE1BX1BLVF9OT1BfSEVBREVS X09QKFNETUFfT1BfTk9QKSwKPj4+Pj4+PiAgICAgICAgICAgLmdldF9ycHRyID0gc2RtYV92Ml80 X3JpbmdfZ2V0X3JwdHIsCj4+Pj4+Pj4gICAgICAgICAgIC5nZXRfd3B0ciA9IHNkbWFfdjJfNF9y aW5nX2dldF93cHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuc2V0X3dwdHIgPSBzZG1hX3YyXzRfcmlu Z19zZXRfd3B0ciwgZGlmZiAtLWdpdAo+Pj4+Pj4+IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvc2RtYV92M18wLmMKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFf djNfMC5jCj4+Pj4+Pj4gaW5kZXggYWNjZjRkMS4uZjhlYzM3MCAxMDA2NDQKPj4+Pj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3YzXzAuYwo+Pj4+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjNfMC5jCj4+Pj4+Pj4gQEAgLTM5NiwxMCAr Mzk2LDEwIEBAIHN0YXRpYyB2b2lkCj4+Pj4+Pj4gc2RtYV92M18wX3JpbmdfaW5zZXJ0X25vcChz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90Cj4+Pj4+Pj4gY291bnQpCj4+Pj4+Pj4K Pj4+Pj4+PiAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCj4+Pj4+Pj4gICAg ICAgICAgICAgICAgICAgaWYgKHNkbWEgJiYgc2RtYS0+YnVyc3Rfbm9wICYmIChpID09IDApKQo+ Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfcmluZ193cml0ZShyaW5nLCBy aW5nLT5ub3AgfAo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfcmluZ193 cml0ZShyaW5nLAo+Pj4+Pj4+ICsgcmluZy0+ZnVuY3MtPm5vcCB8Cj4+Pj4+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNETUFfUEtUX05PUF9IRUFERVJfQ09VTlQoY291bnQK Pj4+Pj4+PiAtCj4+Pj4+IDEpKTsKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICBlbHNlCj4+Pj4+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIHJpbmct Pm5vcCk7Cj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGFtZGdwdV9yaW5nX3dyaXRl KHJpbmcsCj4+Pj4+Pj4gKyByaW5nLT5mdW5jcy0+bm9wKTsKPj4+Pj4+PiAgICB9Cj4+Pj4+Pj4K Pj4+Pj4+PiAgICAvKioKPj4+Pj4+PiBAQCAtMTE2NSw3ICsxMTY1LDYgQEAgc3RhdGljIGludCBz ZG1hX3YzXzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgICAg ICAgICAgICBzcHJpbnRmKHJpbmctPm5hbWUsICJzZG1hJWQiLCBpKTsKPj4+Pj4+PiAgICAgICAg ICAgICAgICAgICByID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCAxMDI0LAo+Pj4+Pj4+ IC0KPj4+Pj4+PiBTRE1BX1BLVF9OT1BfSEVBREVSX09QKFNETUFfT1BfTk9QKSwgMHhmLAo+Pj4+ Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGV2LT5zZG1hLnRy YXBfaXJxLAo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChp ID09IDApID8KPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBB TURHUFVfU0RNQV9JUlFfVFJBUDAgOgo+Pj4+Pj4+IEBAIC0xNTU2LDYgKzE1NTUsOCBAQCBjb25z dCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzCj4+Pj4gc2RtYV92M18wX2lwX2Z1bmNzCj4+Pj4+ID0KPj4+ Pj4+PiB7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9yaW5n X2Z1bmNzIHNkbWFfdjNfMF9yaW5nX2Z1bmNzID0gewo+Pj4+Pj4+ICAgICAgICAgICAudHlwZSA9 IEFNREdQVV9SSU5HX1RZUEVfU0RNQSwKPj4+Pj4+PiArICAgICAgICAuYWxpZ25fbWFzayA9IDB4 ZiwKPj4+Pj4+PiArICAgICAgICAubm9wID0gU0RNQV9QS1RfTk9QX0hFQURFUl9PUChTRE1BX09Q X05PUCksCj4+Pj4+Pj4gICAgICAgICAgIC5nZXRfcnB0ciA9IHNkbWFfdjNfMF9yaW5nX2dldF9y cHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBzZG1hX3YzXzBfcmluZ19nZXRfd3B0 ciwKPj4+Pj4+PiAgICAgICAgICAgLnNldF93cHRyID0gc2RtYV92M18wX3Jpbmdfc2V0X3dwdHIs IGRpZmYgLS1naXQKPj4+Pj4+PiBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpX2RtYS5j Cj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9kbWEuYwo+Pj4+Pj4+IGlu ZGV4IDFhZWU0NWIuLjdmZWNlMWYgMTAwNjQ0Cj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvc2lfZG1hLmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9zaV9kbWEuYwo+Pj4+Pj4+IEBAIC01MzEsNyArNTMxLDYgQEAgc3RhdGljIGludCBzaV9k bWFfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgcmluZy0+ dXNlX2Rvb3JiZWxsID0gZmFsc2U7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgc3ByaW50Zihy aW5nLT5uYW1lLCAic2RtYSVkIiwgaSk7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgciA9IGFt ZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgMTAyNCwKPj4+Pj4+PiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERNQV9QQUNLRVQoRE1BX1BBQ0tFVF9OT1AsIDAsIDAsIDAs Cj4+Pj4+Pj4gMCksIDB4ZiwKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmYWRldi0+c2RtYS50cmFwX2lycSwKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoaSA9PSAwKSA/Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQU1ER1BVX1NETUFfSVJRX1RSQVAwIDoKPj4+Pj4+PiBAQCAt NzY1LDYgKzc2NCw4IEBAIGNvbnN0IHN0cnVjdCBhbWRfaXBfZnVuY3Mgc2lfZG1hX2lwX2Z1bmNz ID0KPj4+Pj4+PiB7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdw dV9yaW5nX2Z1bmNzIHNpX2RtYV9yaW5nX2Z1bmNzID0gewo+Pj4+Pj4+ICAgICAgICAgICAudHlw ZSA9IEFNREdQVV9SSU5HX1RZUEVfU0RNQSwKPj4+Pj4+PiArICAgICAgICAuYWxpZ25fbWFzayA9 IDB4ZiwKPj4+Pj4+PiArICAgICAgICAubm9wID0gRE1BX1BBQ0tFVChETUFfUEFDS0VUX05PUCwg MCwgMCwgMCwgMCksCj4+Pj4+Pj4gICAgICAgICAgIC5nZXRfcnB0ciA9IHNpX2RtYV9yaW5nX2dl dF9ycHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSBzaV9kbWFfcmluZ19nZXRfd3B0 ciwKPj4+Pj4+PiAgICAgICAgICAgLnNldF93cHRyID0gc2lfZG1hX3Jpbmdfc2V0X3dwdHIsIGRp ZmYgLS1naXQKPj4+Pj4+PiBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMK Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMKPj4+Pj4+PiBp bmRleCA1NWFmOGFjLi4xYmFiNzVhIDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L3V2ZF92NF8yLmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS91dmRfdjRfMi5jCj4+Pj4+Pj4gQEAgLTExNiw4ICsxMTYsNyBAQCBzdGF0aWMgaW50 IHV2ZF92NF8yX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgICAgICAg IHJpbmcgPSAmYWRldi0+dXZkLnJpbmc7Cj4+Pj4+Pj4gICAgICAgICAgIHNwcmludGYocmluZy0+ bmFtZSwgInV2ZCIpOwo+Pj4+Pj4+IC0gICAgICAgIHIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYs IHJpbmcsIDUxMiwgUEFDS0VUMChtbVVWRF9OT19PUCwKPj4gMCksCj4+Pj4+Pj4gMHhmLAo+Pj4+ Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGV2LT51dmQuaXJxLCAwKTsKPj4+ Pj4+PiArICAgICAgICByID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsICZhZGV2 LT51dmQuaXJxLAo+Pj4+Pj4+ICsgMCk7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAgICAgcmV0dXJu IHI7Cj4+Pj4+Pj4gICAgfQo+Pj4+Pj4+IEBAIC03NDMsNiArNzQyLDggQEAgY29uc3Qgc3RydWN0 IGFtZF9pcF9mdW5jcwo+PiB1dmRfdjRfMl9pcF9mdW5jcwo+Pj4+Pj4+ID0KPj4+PiB7Cj4+Pj4+ Pj4gICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB1dmRfdjRfMl9yaW5n X2Z1bmNzID0gewo+Pj4+Pj4+ICAgICAgICAgICAudHlwZSA9IEFNREdQVV9SSU5HX1RZUEVfVVZE LAo+Pj4+Pj4+ICsgICAgICAgIC5hbGlnbl9tYXNrID0gMHhmLAo+Pj4+Pj4+ICsgICAgICAgIC5u b3AgPSBQQUNLRVQwKG1tVVZEX05PX09QLCAwKSwKPj4+Pj4+PiAgICAgICAgICAgLmdldF9ycHRy ID0gdXZkX3Y0XzJfcmluZ19nZXRfcnB0ciwKPj4+Pj4+PiAgICAgICAgICAgLmdldF93cHRyID0g dXZkX3Y0XzJfcmluZ19nZXRfd3B0ciwKPj4+Pj4+PiAgICAgICAgICAgLnNldF93cHRyID0gdXZk X3Y0XzJfcmluZ19zZXRfd3B0ciwgZGlmZiAtLWdpdAo+Pj4+Pj4+IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdXZkX3Y1XzAuYwo+Pj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvdXZkX3Y1XzAuYwo+Pj4+Pj4+IGluZGV4IDIxZTcyNWIuLmVjODQ4ZmMgMTAwNjQ0Cj4+Pj4+ Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y1XzAuYwo+Pj4+Pj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92NV8wLmMKPj4+Pj4+PiBAQCAtMTEy LDggKzExMiw3IEBAIHN0YXRpYyBpbnQgdXZkX3Y1XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4+ Pj4+Pj4KPj4+Pj4+PiAgICAgICAgICAgcmluZyA9ICZhZGV2LT51dmQucmluZzsKPj4+Pj4+PiAg ICAgICAgICAgc3ByaW50ZihyaW5nLT5uYW1lLCAidXZkIik7Cj4+Pj4+Pj4gLSAgICAgICAgciA9 IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgNTEyLCBQQUNLRVQwKG1tVVZEX05PX09QLAo+ PiAwKSwKPj4+Pj4+PiAweGYsCj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JmFkZXYtPnV2ZC5pcnEsIDApOwo+Pj4+Pj4+ICsgICAgICAgIHIgPSBhbWRncHVfcmluZ19pbml0 KGFkZXYsIHJpbmcsIDUxMiwgJmFkZXYtPnV2ZC5pcnEsCj4+Pj4+Pj4gKyAwKTsKPj4+Pj4+Pgo+ Pj4+Pj4+ICAgICAgICAgICByZXR1cm4gcjsKPj4+Pj4+PiAgICB9Cj4+Pj4+Pj4gQEAgLTc5NCw2 ICs3OTMsOCBAQCBjb25zdCBzdHJ1Y3QgYW1kX2lwX2Z1bmNzCj4+IHV2ZF92NV8wX2lwX2Z1bmNz Cj4+Pj4+Pj4gPQo+Pj4+IHsKPj4+Pj4+PiAgICBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9y aW5nX2Z1bmNzIHV2ZF92NV8wX3JpbmdfZnVuY3MgPSB7Cj4+Pj4+Pj4gICAgICAgICAgIC50eXBl ID0gQU1ER1BVX1JJTkdfVFlQRV9VVkQsCj4+Pj4+Pj4gKyAgICAgICAgLmFsaWduX21hc2sgPSAw eGYsCj4+Pj4+Pj4gKyAgICAgICAgLm5vcCA9IFBBQ0tFVDAobW1VVkRfTk9fT1AsIDApLAo+Pj4+ Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIgPSB1dmRfdjVfMF9yaW5nX2dldF9ycHRyLAo+Pj4+Pj4+ ICAgICAgICAgICAuZ2V0X3dwdHIgPSB1dmRfdjVfMF9yaW5nX2dldF93cHRyLAo+Pj4+Pj4+ICAg ICAgICAgICAuc2V0X3dwdHIgPSB1dmRfdjVfMF9yaW5nX3NldF93cHRyLCBkaWZmIC0tZ2l0Cj4+ Pj4+Pj4gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjZfMC5jCj4+Pj4+Pj4gYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjZfMC5jCj4+Pj4+Pj4gaW5kZXggMmNlMTgx OC4uMTU3MDhmOCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS91dmRfdjZfMC5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZk X3Y2XzAuYwo+Pj4+Pj4+IEBAIC0xMTYsOCArMTE2LDcgQEAgc3RhdGljIGludCB1dmRfdjZfMF9z d19pbml0KHZvaWQgKmhhbmRsZSkKPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgICAgICByaW5nID0gJmFk ZXYtPnV2ZC5yaW5nOwo+Pj4+Pj4+ICAgICAgICAgICBzcHJpbnRmKHJpbmctPm5hbWUsICJ1dmQi KTsKPj4+Pj4+PiAtICAgICAgICByID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIs IFBBQ0tFVDAobW1VVkRfTk9fT1AsCj4+IDApLAo+Pj4+Pj4+IDB4ZiwKPj4+Pj4+PiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmYWRldi0+dXZkLmlycSwgMCk7Cj4+Pj4+Pj4gKyAgICAg ICAgciA9IGFtZGdwdV9yaW5nX2luaXQoYWRldiwgcmluZywgNTEyLCAmYWRldi0+dXZkLmlycSwK Pj4+Pj4+PiArIDApOwo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgICAgICAgIHJldHVybiByOwo+Pj4+Pj4+ ICAgIH0KPj4+Pj4+PiBAQCAtMTA0Nyw2ICsxMDQ2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBh bWRncHVfcmluZ19mdW5jcwo+Pj4+Pj4+IHV2ZF92Nl8wX3JpbmdfcGh5c19mdW5jcyA9IHsKPj4+ Pj4+Pgo+Pj4+Pj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MgdXZk X3Y2XzBfcmluZ192bV9mdW5jcyA9IHsKPj4+Pj4+PiAgICAgICAgICAgLnR5cGUgPSBBTURHUFVf UklOR19UWVBFX1VWRCwKPj4+Pj4+PiArICAgICAgICAuYWxpZ25fbWFzayA9IDB4ZiwKPj4+Pj4+ PiArICAgICAgICAubm9wID0gUEFDS0VUMChtbVVWRF9OT19PUCwgMCksCj4+Pj4+Pj4gICAgICAg ICAgIC5nZXRfcnB0ciA9IHV2ZF92Nl8wX3JpbmdfZ2V0X3JwdHIsCj4+Pj4+Pj4gICAgICAgICAg IC5nZXRfd3B0ciA9IHV2ZF92Nl8wX3JpbmdfZ2V0X3dwdHIsCj4+Pj4+Pj4gICAgICAgICAgIC5z ZXRfd3B0ciA9IHV2ZF92Nl8wX3Jpbmdfc2V0X3dwdHIsIGRpZmYgLS1naXQKPj4+Pj4+PiBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92Ml8wLmMKPj4+Pj4+PiBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3ZjZV92Ml8wLmMKPj4+Pj4+PiBpbmRleCBjZjBjNjhmLi5kNTg1ODM5 IDEwMDY0NAo+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92Ml8w LmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjJfMC5jCj4+ Pj4+Pj4gQEAgLTIyNCw3ICsyMjQsNyBAQCBzdGF0aWMgaW50IHZjZV92Ml8wX3N3X2luaXQodm9p ZCAqaGFuZGxlKQo+Pj4+Pj4+ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYWRldi0+dmNlLm51 bV9yaW5nczsgaSsrKSB7Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgcmluZyA9ICZhZGV2LT52 Y2UucmluZ1tpXTsKPj4+Pj4+PiAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHJpbmctPm5hbWUs ICJ2Y2UlZCIsIGkpOwo+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgciA9IGFtZGdwdV9yaW5nX2lu aXQoYWRldiwgcmluZywgNTEyLCBWQ0VfQ01EX05PX09QLAo+PiAweGYsCj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICByID0gYW1kZ3B1X3JpbmdfaW5pdChhZGV2LCByaW5nLCA1MTIsCj4+Pj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFkZXYtPnZjZS5pcnEsIDAp Owo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgIGlmIChyKQo+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIHI7IEBAIC02MTEsNiArNjExLDggQEAgY29uc3QKPj4+Pj4+PiBz dHJ1Y3QgYW1kX2lwX2Z1bmNzIHZjZV92Ml8wX2lwX2Z1bmNzID0KPj4+PiB7Cj4+Pj4+Pj4gICAg c3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB2Y2VfdjJfMF9yaW5nX2Z1bmNz ID0gewo+Pj4+Pj4+ICAgICAgICAgICAudHlwZSA9IEFNREdQVV9SSU5HX1RZUEVfVkNFLAo+Pj4+ Pj4+ICsgICAgICAgIC5hbGlnbl9tYXNrID0gMHhmLAo+Pj4+Pj4+ICsgICAgICAgIC5ub3AgPSBW Q0VfQ01EX05PX09QLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3JwdHIgPSB2Y2VfdjJfMF9yaW5n X2dldF9ycHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuZ2V0X3dwdHIgPSB2Y2VfdjJfMF9yaW5nX2dl dF93cHRyLAo+Pj4+Pj4+ICAgICAgICAgICAuc2V0X3dwdHIgPSB2Y2VfdjJfMF9yaW5nX3NldF93 cHRyLCBkaWZmIC0tZ2l0Cj4+Pj4+Pj4gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2Vf djNfMC5jCj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjNfMC5jCj4+ Pj4+Pj4gaW5kZXggNTZhM2ZlYi4uZjdkYmQwZCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjNfMC5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdmNlX3YzXzAuYwo+Pj4+Pj4+IEBAIC0zODksOCArMzg5LDcgQEAgc3Rh dGljIGludCB2Y2VfdjNfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPj4+Pj4+PiAgICAgICAgICAg Zm9yIChpID0gMDsgaSA8IGFkZXYtPnZjZS5udW1fcmluZ3M7IGkrKykgewo+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgIHJpbmcgPSAmYWRldi0+dmNlLnJpbmdbaV07Cj4+Pj4+Pj4gICAgICAgICAg ICAgICAgICAgc3ByaW50ZihyaW5nLT5uYW1lLCAidmNlJWQiLCBpKTsKPj4+Pj4+PiAtICAgICAg ICAgICAgICAgIHIgPSBhbWRncHVfcmluZ19pbml0KGFkZXYsIHJpbmcsIDUxMiwgVkNFX0NNRF9O T19PUCwKPj4gMHhmLAo+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmFkZXYtPnZjZS5pcnEsIDApOwo+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgciA9IGFtZGdw dV9yaW5nX2luaXQoYWRldiwgcmluZywgNTEyLAo+Pj4+Pj4+ICsgJmFkZXYtPnZjZS5pcnEsIDAp Owo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgIGlmIChyKQo+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIHI7Cj4+Pj4+Pj4gICAgICAgICAgIH0KPj4+Pj4+PiBAQCAtODUw LDYgKzg0OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3JpbmdfZnVuY3MKPj4+Pj4+ PiB2Y2VfdjNfMF9yaW5nX3BoeXNfZnVuY3MgPSB7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICBzdGF0aWMg Y29uc3Qgc3RydWN0IGFtZGdwdV9yaW5nX2Z1bmNzIHZjZV92M18wX3Jpbmdfdm1fZnVuY3MgPSB7 Cj4+Pj4+Pj4gICAgICAgICAgIC50eXBlID0gQU1ER1BVX1JJTkdfVFlQRV9WQ0UsCj4+Pj4+Pj4g KyAgICAgICAgLmFsaWduX21hc2sgPSAweGYsCj4+Pj4+Pj4gKyAgICAgICAgLm5vcCA9IFZDRV9D TURfTk9fT1AsCj4+Pj4+Pj4gICAgICAgICAgIC5nZXRfcnB0ciA9IHZjZV92M18wX3JpbmdfZ2V0 X3JwdHIsCj4+Pj4+Pj4gICAgICAgICAgIC5nZXRfd3B0ciA9IHZjZV92M18wX3JpbmdfZ2V0X3dw dHIsCj4+Pj4+Pj4gICAgICAgICAgIC5zZXRfd3B0ciA9IHZjZV92M18wX3Jpbmdfc2V0X3dwdHIs Cj4+Pj4+Pj4gLS0KPj4+Pj4+PiAyLjUuMAo+Pj4+Pj4+Cj4+Pj4+Pj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+PiBhbWQtZ2Z4IG1haWxpbmcg bGlzdAo+Pj4+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+Pj4+Pj4gaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4+Pj4+Cj4+ Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+Pj4+ IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1k LWdmeAo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4+Pj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v YW1kLWdmeAo+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K YW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==