From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sinclair Yeh" Subject: Re: [PATCH v2] drm/core: Change declaration for gamma_set. Date: Tue, 7 Jun 2016 15:23:13 -0700 Message-ID: <20160607222313.GA10356@vmware.com> References: <1465204689-24489-1-git-send-email-maarten.lankhorst@linux.intel.com> <742944bc-9f41-1acb-df4f-0fd4c8a10168@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <742944bc-9f41-1acb-df4f-0fd4c8a10168@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, Mathieu Larouche , dri-devel@lists.freedesktop.org, VMware Graphics , Ben Skeggs , Alex Deucher , Thierry Reding , Christian =?iso-8859-1?Q?K=F6nig?= List-Id: intel-gfx@lists.freedesktop.org QWNrZWQtYnk6IFNpbmNsYWlyIFllaCA8c3llaEB2bXdhcmUuY29tPgoKT24gVHVlLCBKdW4gMDcs IDIwMTYgYXQgMTI6NDk6MzBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4gQ2hh bmdlIHJldHVybiB2YWx1ZSB0byBpbnQgdG8gcHJvcGFnYXRlIGVycm9ycyBmcm9tIGdhbW1hX3Nl dCwKPiBhbmQgcmVtb3ZlIHN0YXJ0IHBhcmFtZXRlci4gVXBkYXRlcyBhbHdheXMgdXNlIHRoZSBm dWxsIHNpemUsCj4gYW5kIHNvbWUgZHJpdmVycyBldmVuIGlnbm9yZSB0aGUgc3RhcnQgcGFyYW1l dGVyIGFsdG9nZXRoZXIuCj4gCj4gVGhpcyBpcyBuZWVkZWQgZm9yIGF0b21pYyBkcml2ZXJzLCB3 aGVyZSBhbiBhdG9taWMgY29tbWl0IGNhbgo+IGZhaWwgd2l0aCAtRUlOVFIgb3IgLUVOT01FTSBh bmQgc2hvdWxkIGJlIHJlc3RhcnRlZC4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0gRml4IGNv bXBpbGVyIHdhcm5pbmcuIChFbWlsKQo+IC0gRml4IGNvbW1pdCBtZXNzYWdlIChEYW5pZWwpCj4g Cj4gQ2M6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KPiBBY2tlZC1i eTogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgo+IENjOiBDaHJpc3Rp YW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gQ2M6IERhdmlkIEFpcmxpZSA8 YWlybGllZEBsaW51eC5pZT4KPiBDYzogUGF0cmlrIEpha29ic3NvbiA8cGF0cmlrLnIuamFrb2Jz c29uQGdtYWlsLmNvbT4KPiBDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgo+IENj OiBFcmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0Pgo+IENjOiBWTXdhcmUgR3JhcGhpY3MgPGxp bnV4LWdyYXBoaWNzLW1haW50YWluZXJAdm13YXJlLmNvbT4KPiBDYzogTWF0aGlldSBMYXJvdWNo ZSA8bWF0aGlldS5sYXJvdWNoZUBtYXRyb3guY29tPgo+IENjOiBUaGllcnJ5IFJlZGluZyA8dHJl ZGluZ0BudmlkaWEuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFy dGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2RjZV92MTBfMC5jICB8IDEwICsrKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZGNlX3YxMV8wLmMgIHwgMTAgKysrKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jICAgfCAxMCArKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9hc3QvYXN0X21vZGUuYyAgICAgICAgICB8IDEwICsrKysrKy0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jICAgIHwgIDggKysrKystLS0KPiAgZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgIHwgMTMgKysrKysrLS0tLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v Z21hNTAwL2dtYV9kaXNwbGF5LmMgICAgfCAgOSArKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2dtYTUwMC9nbWFfZGlzcGxheS5oICAgIHwgIDQgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWdh ZzIwMC9tZ2FnMjAwX21vZGUuYyAgfCAgOSArKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvZGlzcG52MDQvY3J0Yy5jIHwgMTIgKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9ub3V2ZWF1L252NTBfZGlzcGxheS5jICB8ICA5ICsrKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JhZGVvbl9kaXNwbGF5LmMgfCAxMSArKysrKysrLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vdmM0L3ZjNF9jcnRjLmMgICAgICAgICAgfCAgOCArKysrKy0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuYyAgICAgfCAgOCArKysrKy0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaCAgICAgfCAgNCArKy0tCj4gIGluY2x1ZGUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmggICAgICAgICB8ICA2ICsrKy0tLQo+ICBpbmNsdWRlL2RybS9kcm1f Y3J0Yy5oICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCj4gIDE5IGZpbGVzIGNoYW5nZWQsIDg1 IGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2RjZV92MTBfMC5jCj4gaW5kZXggN2U1NzQ0N2JmNWY0Li4xMTJlMzU4ZjBmOWIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3YxMF8wLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYwo+IEBAIC0yNjY3LDE5ICsyNjY3 LDIxIEBAIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9jdXJzb3JfcmVzZXQoc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkY2VfdjEwXzBfY3J0Y19nYW1t YV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MTYgKnJlZCwgdTE2ICpncmVlbiwKPiAtCQkJ CSAgICB1MTYgKmJsdWUsIHVpbnQzMl90IHN0YXJ0LCB1aW50MzJfdCBzaXplKQo+ICtzdGF0aWMg aW50IGRjZV92MTBfMF9jcnRjX2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUxNiAq cmVkLCB1MTYgKmdyZWVuLAo+ICsJCQkJICAgIHUxNiAqYmx1ZSwgdWludDMyX3Qgc2l6ZSkKPiAg ewo+ICAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRncHVfY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNy dGMpOwo+IC0JaW50IGVuZCA9IChzdGFydCArIHNpemUgPiAyNTYpID8gMjU2IDogc3RhcnQgKyBz aXplLCBpOwo+ICsJaW50IGk7Cj4gIAo+ICAJLyogdXNlcnNwYWNlIHBhbGV0dGVzIGFyZSBhbHdh eXMgY29ycmVjdCBhcyBpcyAqLwo+IC0JZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgewo+ ICsJZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgewo+ICAJCWFtZGdwdV9jcnRjLT5sdXRfcltp XSA9IHJlZFtpXSA+PiA2Owo+ICAJCWFtZGdwdV9jcnRjLT5sdXRfZ1tpXSA9IGdyZWVuW2ldID4+ IDY7Cj4gIAkJYW1kZ3B1X2NydGMtPmx1dF9iW2ldID0gYmx1ZVtpXSA+PiA2Owo+ICAJfQo+ICAJ ZGNlX3YxMF8wX2NydGNfbG9hZF9sdXQoY3J0Yyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAg Cj4gIHN0YXRpYyB2b2lkIGRjZV92MTBfMF9jcnRjX2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjICpj cnRjKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCj4gaW5kZXggZGExMDE1 NTE5NjBiLi5iNTIyZmEyNDM1YTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3YxMV8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf djExXzAuYwo+IEBAIC0yNjc4LDE5ICsyNjc4LDIxIEBAIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9j dXJzb3JfcmVzZXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCBkY2VfdjExXzBfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1 MTYgKnJlZCwgdTE2ICpncmVlbiwKPiAtCQkJCSAgICB1MTYgKmJsdWUsIHVpbnQzMl90IHN0YXJ0 LCB1aW50MzJfdCBzaXplKQo+ICtzdGF0aWMgaW50IGRjZV92MTFfMF9jcnRjX2dhbW1hX3NldChz dHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUxNiAqcmVkLCB1MTYgKmdyZWVuLAo+ICsJCQkJICAgIHUx NiAqYmx1ZSwgdWludDMyX3Qgc2l6ZSkKPiAgewo+ICAJc3RydWN0IGFtZGdwdV9jcnRjICphbWRn cHVfY3J0YyA9IHRvX2FtZGdwdV9jcnRjKGNydGMpOwo+IC0JaW50IGVuZCA9IChzdGFydCArIHNp emUgPiAyNTYpID8gMjU2IDogc3RhcnQgKyBzaXplLCBpOwo+ICsJaW50IGk7Cj4gIAo+ICAJLyog dXNlcnNwYWNlIHBhbGV0dGVzIGFyZSBhbHdheXMgY29ycmVjdCBhcyBpcyAqLwo+IC0JZm9yIChp ID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgewo+ICsJZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykg ewo+ICAJCWFtZGdwdV9jcnRjLT5sdXRfcltpXSA9IHJlZFtpXSA+PiA2Owo+ICAJCWFtZGdwdV9j cnRjLT5sdXRfZ1tpXSA9IGdyZWVuW2ldID4+IDY7Cj4gIAkJYW1kZ3B1X2NydGMtPmx1dF9iW2ld ID0gYmx1ZVtpXSA+PiA2Owo+ICAJfQo+ICAJZGNlX3YxMV8wX2NydGNfbG9hZF9sdXQoY3J0Yyk7 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGRjZV92MTFfMF9jcnRj X2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjICpjcnRjKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv ZGNlX3Y4XzAuYwo+IGluZGV4IDQxZDliYzVmOWMwZS4uYjUwZWQ3MmZlZWRiIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCj4gQEAgLTI1NzQsMTkgKzI1NzQsMjEgQEAg c3RhdGljIHZvaWQgZGNlX3Y4XzBfY3Vyc29yX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZGNlX3Y4XzBfY3J0Y19nYW1tYV9zZXQoc3Ry dWN0IGRybV9jcnRjICpjcnRjLCB1MTYgKnJlZCwgdTE2ICpncmVlbiwKPiAtCQkJCSAgICB1MTYg KmJsdWUsIHVpbnQzMl90IHN0YXJ0LCB1aW50MzJfdCBzaXplKQo+ICtzdGF0aWMgaW50IGRjZV92 OF8wX2NydGNfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTE2ICpyZWQsIHUxNiAq Z3JlZW4sCj4gKwkJCQkgICB1MTYgKmJsdWUsIHVpbnQzMl90IHNpemUpCj4gIHsKPiAgCXN0cnVj dCBhbWRncHVfY3J0YyAqYW1kZ3B1X2NydGMgPSB0b19hbWRncHVfY3J0YyhjcnRjKTsKPiAtCWlu dCBlbmQgPSAoc3RhcnQgKyBzaXplID4gMjU2KSA/IDI1NiA6IHN0YXJ0ICsgc2l6ZSwgaTsKPiAr CWludCBpOwo+ICAKPiAgCS8qIHVzZXJzcGFjZSBwYWxldHRlcyBhcmUgYWx3YXlzIGNvcnJlY3Qg YXMgaXMgKi8KPiAtCWZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsKPiArCWZvciAoaSA9 IDA7IGkgPCBzaXplOyBpKyspIHsKPiAgCQlhbWRncHVfY3J0Yy0+bHV0X3JbaV0gPSByZWRbaV0g Pj4gNjsKPiAgCQlhbWRncHVfY3J0Yy0+bHV0X2dbaV0gPSBncmVlbltpXSA+PiA2Owo+ICAJCWFt ZGdwdV9jcnRjLT5sdXRfYltpXSA9IGJsdWVbaV0gPj4gNjsKPiAgCX0KPiAgCWRjZV92OF8wX2Ny dGNfbG9hZF9sdXQoY3J0Yyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2 b2lkIGRjZV92OF8wX2NydGNfZGVzdHJveShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9h c3QvYXN0X21vZGUuYwo+IGluZGV4IGMzMzc5MjI2MDZlMy4uNTk1N2MzZTY1OWZlIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X21vZGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hc3QvYXN0X21vZGUuYwo+IEBAIC02MjQsMTkgKzYyNCwyMSBAQCBzdGF0aWMgdm9pZCBh c3RfY3J0Y19yZXNldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCBhc3RfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MTYgKnJl ZCwgdTE2ICpncmVlbiwKPiAtCQkJCSB1MTYgKmJsdWUsIHVpbnQzMl90IHN0YXJ0LCB1aW50MzJf dCBzaXplKQo+ICtzdGF0aWMgaW50IGFzdF9jcnRjX2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIHUxNiAqcmVkLCB1MTYgKmdyZWVuLAo+ICsJCQkgICAgICB1MTYgKmJsdWUsIHVpbnQz Ml90IHNpemUpCj4gIHsKPiAgCXN0cnVjdCBhc3RfY3J0YyAqYXN0X2NydGMgPSB0b19hc3RfY3J0 YyhjcnRjKTsKPiAtCWludCBlbmQgPSAoc3RhcnQgKyBzaXplID4gMjU2KSA/IDI1NiA6IHN0YXJ0 ICsgc2l6ZSwgaTsKPiArCWludCBpOwo+ICAKPiAgCS8qIHVzZXJzcGFjZSBwYWxldHRlcyBhcmUg YWx3YXlzIGNvcnJlY3QgYXMgaXMgKi8KPiAtCWZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKysp IHsKPiArCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKPiAgCQlhc3RfY3J0Yy0+bHV0X3Jb aV0gPSByZWRbaV0gPj4gODsKPiAgCQlhc3RfY3J0Yy0+bHV0X2dbaV0gPSBncmVlbltpXSA+PiA4 Owo+ICAJCWFzdF9jcnRjLT5sdXRfYltpXSA9IGJsdWVbaV0gPj4gODsKPiAgCX0KPiAgCWFzdF9j cnRjX2xvYWRfbHV0KGNydGMpOwo+ICsKPiArCXJldHVybiAwOwo+ICB9Cj4gIAo+ICAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jIGIvZHJpdmVycy9n cHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jCj4gaW5kZXggMGIxYTQxMWNiODllLi4xN2M5MTVk OWEwM2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfbW9kZS5jCj4gQEAgLTMyNSwx OCArMzI1LDIwIEBAIHN0YXRpYyB2b2lkIGNpcnJ1c19jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMpCj4gICAqIHVzZSB0aGlzIGZvciA4LWJpdCBtb2RlIHNvIGNhbid0IHBlcmZvcm0g c21vb3RoIGZhZGVzIG9uIGRlZXBlciBtb2RlcywKPiAgICogYnV0IGl0J3MgYSByZXF1aXJlbWVu dCB0aGF0IHdlIHByb3ZpZGUgdGhlIGZ1bmN0aW9uCj4gICAqLwo+IC1zdGF0aWMgdm9pZCBjaXJy dXNfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MTYgKnJlZCwgdTE2ICpn cmVlbiwKPiAtCQkJCSAgdTE2ICpibHVlLCB1aW50MzJfdCBzdGFydCwgdWludDMyX3Qgc2l6ZSkK PiArc3RhdGljIGludCBjaXJydXNfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRj LCB1MTYgKnJlZCwgdTE2ICpncmVlbiwKPiArCQkJCSB1MTYgKmJsdWUsIHVpbnQzMl90IHNpemUp Cj4gIHsKPiAgCXN0cnVjdCBjaXJydXNfY3J0YyAqY2lycnVzX2NydGMgPSB0b19jaXJydXNfY3J0 YyhjcnRjKTsKPiAgCWludCBpOwo+ICAKPiAtCWZvciAoaSA9IDA7IGkgPCBDSVJSVVNfTFVUX1NJ WkU7IGkrKykgewo+ICsJZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgewo+ICAJCWNpcnJ1c19j cnRjLT5sdXRfcltpXSA9IHJlZFtpXTsKPiAgCQljaXJydXNfY3J0Yy0+bHV0X2dbaV0gPSBncmVl bltpXTsKPiAgCQljaXJydXNfY3J0Yy0+bHV0X2JbaV0gPSBibHVlW2ldOwo+ICAJfQo+ICAJY2ly cnVzX2NydGNfbG9hZF9sdXQoY3J0Yyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIC8q IFNpbXBsZSBjbGVhbnVwIGZ1bmN0aW9uICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKPiBpbmRleCA0MzQyZjNkZmMwZTEuLjE5MWQ4NGYxMmU2NyAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTI5MjAsMTYgKzI5MjAsMTUgQEAgRVhQT1JUX1NZTUJP TChkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZGVzdHJveV9zdGF0ZSk7Cj4gICAqIEByZWQ6 IHJlZCBjb3JyZWN0aW9uIHRhYmxlCj4gICAqIEBncmVlbjogZ3JlZW4gY29ycmVjdGlvbiB0YWJs ZQo+ICAgKiBAYmx1ZTogZ3JlZW4gY29ycmVjdGlvbiB0YWJsZQo+IC0gKiBAc3RhcnQ6IGZpcnN0 IGVudHJ5LCBtdXN0IGFsd2F5cyBiZSAwCj4gICAqIEBzaXplOiBzaXplIG9mIHRoZSB0YWJsZXMK PiAgICoKPiAgICogSW1wbGVtZW50cyBzdXBwb3J0IGZvciBsZWdhY3kgZ2FtbWEgY29ycmVjdGlv biB0YWJsZSBmb3IgZHJpdmVycwo+ICAgKiB0aGF0IHN1cHBvcnQgY29sb3IgbWFuYWdlbWVudCB0 aHJvdWdoIHRoZSBERUdBTU1BX0xVVC9HQU1NQV9MVVQKPiAgICogcHJvcGVydGllcy4KPiAgICov Cj4gLXZvaWQgZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldChzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gLQkJCQkJdTE2ICpyZWQsIHUxNiAqZ3JlZW4sIHUxNiAqYmx1ZSwKPiAtCQkJ CQl1aW50MzJfdCBzdGFydCwgdWludDMyX3Qgc2l6ZSkKPiAraW50IGRybV9hdG9taWNfaGVscGVy X2xlZ2FjeV9nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICsJCQkJICAgICAgIHUx NiAqcmVkLCB1MTYgKmdyZWVuLCB1MTYgKmJsdWUsCj4gKwkJCQkgICAgICAgdWludDMyX3Qgc2l6 ZSkKPiAgewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiAgCXN0cnVj dCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+IEBAIC0yOTQx LDcgKzI5NDAsNyBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAo+ICAKPiAgCXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxv YyhjcnRjLT5kZXYpOwo+ICAJaWYgKCFzdGF0ZSkKPiAtCQlyZXR1cm47Cj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gIAo+ICAJYmxvYiA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfYmxvYihkZXYsCj4gIAkJ CQkJc2l6ZW9mKHN0cnVjdCBkcm1fY29sb3JfbHV0KSAqIHNpemUsCj4gQEAgLTI5OTIsNyArMjk5 MSw3IEBAIHJldHJ5Ogo+ICAKPiAgCWRybV9wcm9wZXJ0eV91bnJlZmVyZW5jZV9ibG9iKGJsb2Ip Owo+ICAKPiAtCXJldHVybjsKPiArCXJldHVybiAwOwo+ICBmYWlsOgo+ICAJaWYgKHJldCA9PSAt RURFQURMSykKPiAgCQlnb3RvIGJhY2tvZmY7Cj4gQEAgLTMwMDAsNyArMjk5OSw3IEBAIGZhaWw6 Cj4gIAlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+ICAJZHJtX3Byb3BlcnR5X3VucmVm ZXJlbmNlX2Jsb2IoYmxvYik7Cj4gIAo+IC0JcmV0dXJuOwo+ICsJcmV0dXJuIHJldDsKPiAgYmFj a29mZjoKPiAgCWRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOwo+ICAJZHJtX2F0b21pY19s ZWdhY3lfYmFja29mZihzdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBpbmRleCBhOWNhYmVmOThmNmIu LmRhMmYyOGVhNWZhZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4gQEAgLTUxNzEsNyArNTE3MSw3IEBA IGludCBkcm1fbW9kZV9nYW1tYV9zZXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CQlnb3RvIG91dDsKPiAgCX0KPiAgCj4gLQljcnRjLT5mdW5jcy0+Z2FtbWFfc2V0KGNydGMsIHJf YmFzZSwgZ19iYXNlLCBiX2Jhc2UsIDAsIGNydGMtPmdhbW1hX3NpemUpOwo+ICsJcmV0ID0gY3J0 Yy0+ZnVuY3MtPmdhbW1hX3NldChjcnRjLCByX2Jhc2UsIGdfYmFzZSwgYl9iYXNlLCBjcnRjLT5n YW1tYV9zaXplKTsKPiAgCj4gIG91dDoKPiAgCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBpbmRleCA3NTkwZGY1ZTJlNzIuLjU4ZWQ2ZTZkNGYx MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+IEBAIC0yMjcsNyArMjI3LDcgQEAgc3Rh dGljIHZvaWQgZHJtX2ZiX2hlbHBlcl9yZXN0b3JlX2x1dF9hdG9taWMoc3RydWN0IGRybV9jcnRj ICpjcnRjKQo+ICAJZ19iYXNlID0gcl9iYXNlICsgY3J0Yy0+Z2FtbWFfc2l6ZTsKPiAgCWJfYmFz ZSA9IGdfYmFzZSArIGNydGMtPmdhbW1hX3NpemU7Cj4gIAo+IC0JY3J0Yy0+ZnVuY3MtPmdhbW1h X3NldChjcnRjLCByX2Jhc2UsIGdfYmFzZSwgYl9iYXNlLCAwLCBjcnRjLT5nYW1tYV9zaXplKTsK PiArCWNydGMtPmZ1bmNzLT5nYW1tYV9zZXQoY3J0Yywgcl9iYXNlLCBnX2Jhc2UsIGJfYmFzZSwg Y3J0Yy0+Z2FtbWFfc2l6ZSk7Cj4gIH0KPiAgCj4gIC8qKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL2dtYV9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2dt YV9kaXNwbGF5LmMKPiBpbmRleCBjOTU0MDZlNmY0NGQuLjViNjM2YmYwYjQ2NyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2dtYV9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL2dtYV9kaXNwbGF5LmMKPiBAQCAtMTc1LDIwICsxNzUsMjEgQEAgdm9p ZCBnbWFfY3J0Y19sb2FkX2x1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIAl9Cj4gIH0KPiAg Cj4gLXZvaWQgZ21hX2NydGNfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTE2ICpy ZWQsIHUxNiAqZ3JlZW4sIHUxNiAqYmx1ZSwKPiAtCQkJdTMyIHN0YXJ0LCB1MzIgc2l6ZSkKPiAr aW50IGdtYV9jcnRjX2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUxNiAqcmVkLCB1 MTYgKmdyZWVuLCB1MTYgKmJsdWUsCj4gKwkJICAgICAgIHUzMiBzaXplKQo+ICB7Cj4gIAlzdHJ1 Y3QgZ21hX2NydGMgKmdtYV9jcnRjID0gdG9fZ21hX2NydGMoY3J0Yyk7Cj4gIAlpbnQgaTsKPiAt CWludCBlbmQgPSAoc3RhcnQgKyBzaXplID4gMjU2KSA/IDI1NiA6IHN0YXJ0ICsgc2l6ZTsKPiAg Cj4gLQlmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7Cj4gKwlmb3IgKGkgPSAwOyBpIDwg c2l6ZTsgaSsrKSB7Cj4gIAkJZ21hX2NydGMtPmx1dF9yW2ldID0gcmVkW2ldID4+IDg7Cj4gIAkJ Z21hX2NydGMtPmx1dF9nW2ldID0gZ3JlZW5baV0gPj4gODsKPiAgCQlnbWFfY3J0Yy0+bHV0X2Jb aV0gPSBibHVlW2ldID4+IDg7Cj4gIAl9Cj4gIAo+ICAJZ21hX2NydGNfbG9hZF9sdXQoY3J0Yyk7 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIC8qKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL2dtYV9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2dt YV9kaXNwbGF5LmgKPiBpbmRleCBiMjQ5MWM2NWYwNTMuLmU3MmRkMDhiNzAxYiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZ21hNTAwL2dtYV9kaXNwbGF5LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZ21hNTAwL2dtYV9kaXNwbGF5LmgKPiBAQCAtNzIsOCArNzIsOCBAQCBleHRlcm4g aW50IGdtYV9jcnRjX2N1cnNvcl9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCQkgICAg ICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCk7Cj4gIGV4dGVybiBpbnQgZ21hX2Ny dGNfY3Vyc29yX21vdmUoc3RydWN0IGRybV9jcnRjICpjcnRjLCBpbnQgeCwgaW50IHkpOwo+ICBl eHRlcm4gdm9pZCBnbWFfY3J0Y19sb2FkX2x1dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+IC1l eHRlcm4gdm9pZCBnbWFfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MTYg KnJlZCwgdTE2ICpncmVlbiwKPiAtCQkJICAgICAgIHUxNiAqYmx1ZSwgdTMyIHN0YXJ0LCB1MzIg c2l6ZSk7Cj4gK2V4dGVybiBpbnQgZ21hX2NydGNfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAq Y3J0YywgdTE2ICpyZWQsIHUxNiAqZ3JlZW4sCj4gKwkJCSAgICAgIHUxNiAqYmx1ZSwgdTMyIHNp emUpOwo+ICBleHRlcm4gdm9pZCBnbWFfY3J0Y19kcG1zKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywg aW50IG1vZGUpOwo+ICBleHRlcm4gdm9pZCBnbWFfY3J0Y19wcmVwYXJlKHN0cnVjdCBkcm1fY3J0 YyAqY3J0Yyk7Cj4gIGV4dGVybiB2b2lkIGdtYV9jcnRjX2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMg KmNydGMpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX21v ZGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfbW9kZS5jCj4gaW5kZXggZDM0 N2RjYTE3MjY3Li42YjIxY2IyN2UxY2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21n YWcyMDAvbWdhZzIwMF9tb2RlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2Fn MjAwX21vZGUuYwo+IEBAIC0xMzUyLDE5ICsxMzUyLDIwIEBAIHN0YXRpYyB2b2lkIG1nYV9jcnRj X2NvbW1pdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gICAqIHVzZSB0aGlzIGZvciA4LWJpdCBt b2RlIHNvIGNhbid0IHBlcmZvcm0gc21vb3RoIGZhZGVzIG9uIGRlZXBlciBtb2RlcywKPiAgICog YnV0IGl0J3MgYSByZXF1aXJlbWVudCB0aGF0IHdlIHByb3ZpZGUgdGhlIGZ1bmN0aW9uCj4gICAq Lwo+IC1zdGF0aWMgdm9pZCBtZ2FfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRj LCB1MTYgKnJlZCwgdTE2ICpncmVlbiwKPiAtCQkJCSAgdTE2ICpibHVlLCB1aW50MzJfdCBzdGFy dCwgdWludDMyX3Qgc2l6ZSkKPiArc3RhdGljIGludCBtZ2FfY3J0Y19nYW1tYV9zZXQoc3RydWN0 IGRybV9jcnRjICpjcnRjLCB1MTYgKnJlZCwgdTE2ICpncmVlbiwKPiArCQkJICAgICAgdTE2ICpi bHVlLCB1aW50MzJfdCBzaXplKQo+ICB7Cj4gIAlzdHJ1Y3QgbWdhX2NydGMgKm1nYV9jcnRjID0g dG9fbWdhX2NydGMoY3J0Yyk7Cj4gLQlpbnQgZW5kID0gKHN0YXJ0ICsgc2l6ZSA+IE1HQUcyMDBf TFVUX1NJWkUpID8gTUdBRzIwMF9MVVRfU0laRSA6IHN0YXJ0ICsgc2l6ZTsKPiAgCWludCBpOwo+ ICAKPiAtCWZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsKPiArCWZvciAoaSA9IDA7IGkg PCBzaXplOyBpKyspIHsKPiAgCQltZ2FfY3J0Yy0+bHV0X3JbaV0gPSByZWRbaV0gPj4gODsKPiAg CQltZ2FfY3J0Yy0+bHV0X2dbaV0gPSBncmVlbltpXSA+PiA4Owo+ICAJCW1nYV9jcnRjLT5sdXRf YltpXSA9IGJsdWVbaV0gPj4gODsKPiAgCX0KPiAgCW1nYV9jcnRjX2xvYWRfbHV0KGNydGMpOwo+ ICsKPiArCXJldHVybiAwOwo+ICB9Cj4gIAo+ICAvKiBTaW1wbGUgY2xlYW51cCBmdW5jdGlvbiAq Lwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9jcnRjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYwNC9jcnRjLmMKPiBpbmRleCA2ZjMxOGM1 NGRhMzMuLjBjYjdhMThjZGUyNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9kaXNwbnYwNC9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnYw NC9jcnRjLmMKPiBAQCAtNzg1LDE0ICs3ODUsMTQgQEAgbnZfY3J0Y19kaXNhYmxlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiAgCW5vdXZlYXVfYm9fcmVmKE5VTEwsICZkaXNwLT5pbWFnZVtudl9j cnRjLT5pbmRleF0pOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZAo+IC1udl9jcnRjX2dhbW1hX3Nl dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUxNiAqciwgdTE2ICpnLCB1MTYgKmIsIHVpbnQzMl90 IHN0YXJ0LAo+ICtzdGF0aWMgaW50Cj4gK252X2NydGNfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywgdTE2ICpyLCB1MTYgKmcsIHUxNiAqYiwKPiAgCQkgIHVpbnQzMl90IHNpemUpCj4g IHsKPiAtCWludCBlbmQgPSAoc3RhcnQgKyBzaXplID4gMjU2KSA/IDI1NiA6IHN0YXJ0ICsgc2l6 ZSwgaTsKPiAgCXN0cnVjdCBub3V2ZWF1X2NydGMgKm52X2NydGMgPSBub3V2ZWF1X2NydGMoY3J0 Yyk7Cj4gKwlpbnQgaTsKPiAgCj4gLQlmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7Cj4g Kwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Cj4gIAkJbnZfY3J0Yy0+bHV0LnJbaV0gPSBy W2ldOwo+ICAJCW52X2NydGMtPmx1dC5nW2ldID0gZ1tpXTsKPiAgCQludl9jcnRjLT5sdXQuYltp XSA9IGJbaV07Cj4gQEAgLTgwNSwxMCArODA1LDEyIEBAIG52X2NydGNfZ2FtbWFfc2V0KHN0cnVj dCBkcm1fY3J0YyAqY3J0YywgdTE2ICpyLCB1MTYgKmcsIHUxNiAqYiwgdWludDMyX3Qgc3RhcnQs Cj4gIAkgKi8KPiAgCWlmICghbnZfY3J0Yy0+YmFzZS5wcmltYXJ5LT5mYikgewo+ICAJCW52X2Ny dGMtPmx1dC5kZXB0aCA9IDA7Cj4gLQkJcmV0dXJuOwo+ICsJCXJldHVybiAwOwo+ICAJfQo+ICAK PiAgCW52X2NydGNfZ2FtbWFfbG9hZChjcnRjKTsKPiArCj4gKwlyZXR1cm4gMDsKPiAgfQo+ICAK PiAgc3RhdGljIGludAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUw X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jCj4gaW5k ZXggM2ZmYzJiMDA1N2JmLi43YTc3ODgyMTJkZjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9udjUwX2Rpc3BsYXkuYwo+IEBAIC0xMzQ2LDIxICsxMzQ2LDIyIEBAIG52NTBfY3J0Y19jdXJz b3JfbW92ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGludCB4LCBpbnQgeSkKPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZAo+ICtzdGF0aWMgaW50Cj4gIG52NTBfY3J0Y19nYW1t YV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MTYgKnIsIHUxNiAqZywgdTE2ICpiLAo+IC0J CSAgICB1aW50MzJfdCBzdGFydCwgdWludDMyX3Qgc2l6ZSkKPiArCQkgICAgdWludDMyX3Qgc2l6 ZSkKPiAgewo+ICAJc3RydWN0IG5vdXZlYXVfY3J0YyAqbnZfY3J0YyA9IG5vdXZlYXVfY3J0Yyhj cnRjKTsKPiAtCXUzMiBlbmQgPSBtaW5fdCh1MzIsIHN0YXJ0ICsgc2l6ZSwgMjU2KTsKPiAgCXUz MiBpOwo+ICAKPiAtCWZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsKPiArCWZvciAoaSA9 IDA7IGkgPCBzaXplOyBpKyspIHsKPiAgCQludl9jcnRjLT5sdXQucltpXSA9IHJbaV07Cj4gIAkJ bnZfY3J0Yy0+bHV0LmdbaV0gPSBnW2ldOwo+ICAJCW52X2NydGMtPmx1dC5iW2ldID0gYltpXTsK PiAgCX0KPiAgCj4gIAludjUwX2NydGNfbHV0X2xvYWQoY3J0Yyk7Cj4gKwo+ICsJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rp c3BsYXkuYwo+IGluZGV4IDJmYjE4ZjEzMzk1Yy4uZTg1YzdhMmY1NjViIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwo+IEBAIC0yMzEsMTkgKzIzMSwyMSBAQCB2 b2lkIHJhZGVvbl9jcnRjX2ZiX2dhbW1hX2dldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUxNiAq cmVkLCB1MTYgKmdyZWVuLAo+ICAJKmJsdWUgPSByYWRlb25fY3J0Yy0+bHV0X2JbcmVnbm9dIDw8 IDY7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIHJhZGVvbl9jcnRjX2dhbW1hX3NldChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMsIHUxNiAqcmVkLCB1MTYgKmdyZWVuLAo+IC0JCQkJICB1MTYgKmJsdWUs IHVpbnQzMl90IHN0YXJ0LCB1aW50MzJfdCBzaXplKQo+ICtzdGF0aWMgaW50IHJhZGVvbl9jcnRj X2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHUxNiAqcmVkLCB1MTYgKmdyZWVuLAo+ ICsJCQkJIHUxNiAqYmx1ZSwgdWludDMyX3Qgc2l6ZSkKPiAgewo+ICAJc3RydWN0IHJhZGVvbl9j cnRjICpyYWRlb25fY3J0YyA9IHRvX3JhZGVvbl9jcnRjKGNydGMpOwo+IC0JaW50IGVuZCA9IChz dGFydCArIHNpemUgPiAyNTYpID8gMjU2IDogc3RhcnQgKyBzaXplLCBpOwo+ICsJaW50IGk7Cj4g IAo+ICAJLyogdXNlcnNwYWNlIHBhbGV0dGVzIGFyZSBhbHdheXMgY29ycmVjdCBhcyBpcyAqLwo+ IC0JZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgewo+ICsJZm9yIChpID0gMDsgaSA8IHNp emU7IGkrKykgewo+ICAJCXJhZGVvbl9jcnRjLT5sdXRfcltpXSA9IHJlZFtpXSA+PiA2Owo+ICAJ CXJhZGVvbl9jcnRjLT5sdXRfZ1tpXSA9IGdyZWVuW2ldID4+IDY7Cj4gIAkJcmFkZW9uX2NydGMt Pmx1dF9iW2ldID0gYmx1ZVtpXSA+PiA2Owo+ICAJfQo+ICAJcmFkZW9uX2NydGNfbG9hZF9sdXQo Y3J0Yyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHJhZGVvbl9j cnRjX2Rlc3Ryb3koc3RydWN0IGRybV9jcnRjICpjcnRjKQo+IEBAIC02ODgsNiArNjkwLDcgQEAg cmFkZW9uX2NydGNfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQpCj4gIAlwbV9y dW50aW1lX3B1dF9hdXRvc3VzcGVuZChkZXYtPmRldik7Cj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4g Kwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIHJhZGVvbl9jcnRjX2Z1bmNz ID0gewo+ICAJLmN1cnNvcl9zZXQyID0gcmFkZW9uX2NydGNfY3Vyc29yX3NldDIsCj4gIAkuY3Vy c29yX21vdmUgPSByYWRlb25fY3J0Y19jdXJzb3JfbW92ZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5j Cj4gaW5kZXggYmEyZTM3M2VjOTAxLi40YzBmMjZhNjQ0YTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRf Y3J0Yy5jCj4gQEAgLTE3NSwyMCArMTc1LDIyIEBAIHZjNF9jcnRjX2x1dF9sb2FkKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKPiAgCQlIVlNfV1JJVEUoU0NBTEVSX0dBTURBVEEsIHZjNF9jcnRjLT5s dXRfYltpXSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkCj4gK3N0YXRpYyBpbnQKPiAgdmM0X2Ny dGNfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTE2ICpyLCB1MTYgKmcsIHUxNiAq YiwKPiAtCQkgICB1aW50MzJfdCBzdGFydCwgdWludDMyX3Qgc2l6ZSkKPiArCQkgICB1aW50MzJf dCBzaXplKQo+ICB7Cj4gIAlzdHJ1Y3QgdmM0X2NydGMgKnZjNF9jcnRjID0gdG9fdmM0X2NydGMo Y3J0Yyk7Cj4gIAl1MzIgaTsKPiAgCj4gLQlmb3IgKGkgPSBzdGFydDsgaSA8IHN0YXJ0ICsgc2l6 ZTsgaSsrKSB7Cj4gKwlmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Cj4gIAkJdmM0X2NydGMt Pmx1dF9yW2ldID0gcltpXSA+PiA4Owo+ICAJCXZjNF9jcnRjLT5sdXRfZ1tpXSA9IGdbaV0gPj4g ODsKPiAgCQl2YzRfY3J0Yy0+bHV0X2JbaV0gPSBiW2ldID4+IDg7Cj4gIAl9Cj4gIAo+ICAJdmM0 X2NydGNfbHV0X2xvYWQoY3J0Yyk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRp YyB1MzIgdmM0X2dldF9maWZvX2Z1bGxfbGV2ZWwodTMyIGZvcm1hdCkKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9rbXMuYwo+IGluZGV4IDU1MjMxY2NlNzNhMC4uOGE2OWQ0ZGE0MGI1IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ttcy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmMKPiBAQCAtMTQwNCw5ICsxNDA0LDkgQEAg c3RhdGljIGludCB2bXdfZHVfdXBkYXRlX2xheW91dChzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9w cml2LCB1bnNpZ25lZCBudW0sCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtdm9pZCB2bXdfZHVf Y3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0JCQkgICB1MTYgKnIsIHUx NiAqZywgdTE2ICpiLAo+IC0JCQkgICB1aW50MzJfdCBzdGFydCwgdWludDMyX3Qgc2l6ZSkKPiAr aW50IHZtd19kdV9jcnRjX2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gKwkJCSAg dTE2ICpyLCB1MTYgKmcsIHUxNiAqYiwKPiArCQkJICB1aW50MzJfdCBzaXplKQo+ICB7Cj4gIAlz dHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3ByaXYoY3J0Yy0+ZGV2KTsKPiAgCWlu dCBpOwo+IEBAIC0xNDE4LDYgKzE0MTgsOCBAQCB2b2lkIHZtd19kdV9jcnRjX2dhbW1hX3NldChz dHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJdm13X3dyaXRlKGRldl9wcml2LCBTVkdBX1BBTEVU VEVfQkFTRSArIGkgKiAzICsgMSwgZ1tpXSA+PiA4KTsKPiAgCQl2bXdfd3JpdGUoZGV2X3ByaXYs IFNWR0FfUEFMRVRURV9CQVNFICsgaSAqIDMgKyAyLCBiW2ldID4+IDgpOwo+ICAJfQo+ICsKPiAr CXJldHVybiAwOwo+ICB9Cj4gIAo+ICBpbnQgdm13X2R1X2Nvbm5lY3Rvcl9kcG1zKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCBtb2RlKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2ttcy5oCj4gaW5kZXggNTcyMDMyMTJjNTAxLi5mZjQ4MDNjMTA3YmMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaAo+IEBAIC0xOTUsOSArMTk1LDkgQEAgc3RydWN0IHZt d19kaXNwbGF5X3VuaXQgewo+ICB2b2lkIHZtd19kdV9jbGVhbnVwKHN0cnVjdCB2bXdfZGlzcGxh eV91bml0ICpkdSk7Cj4gIHZvaWQgdm13X2R1X2NydGNfc2F2ZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpOwo+ICB2b2lkIHZtd19kdV9jcnRjX3Jlc3RvcmUoc3RydWN0IGRybV9jcnRjICpjcnRjKTsK PiAtdm9pZCB2bXdfZHVfY3J0Y19nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICtp bnQgdm13X2R1X2NydGNfZ2FtbWFfc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJICAg dTE2ICpyLCB1MTYgKmcsIHUxNiAqYiwKPiAtCQkJICAgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90 IHNpemUpOwo+ICsJCQkgICB1aW50MzJfdCBzaXplKTsKPiAgaW50IHZtd19kdV9jcnRjX2N1cnNv cl9zZXQyKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYs Cj4gIAkJCSAgICB1aW50MzJfdCBoYW5kbGUsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWln aHQsCj4gIAkJCSAgICBpbnQzMl90IGhvdF94LCBpbnQzMl90IGhvdF95KTsKPiBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmgKPiBpbmRleCBiMDNiZDgzNzAzYjQuLjE4NzdhN2MxOGQ4ZSAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oCj4gKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuaAo+IEBAIC0xNDcsOSArMTQ3LDkgQEAgdm9pZAo+ICBfX2RybV9h dG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpzdGF0ZSk7Cj4gIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ry b3lfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkJCQkgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSk7Cj4gLXZvaWQgZHJtX2F0b21pY19oZWxwZXJf bGVnYWN5X2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gLQkJCQkJdTE2ICpyZWQs IHUxNiAqZ3JlZW4sIHUxNiAqYmx1ZSwKPiAtCQkJCQl1aW50MzJfdCBzdGFydCwgdWludDMyX3Qg c2l6ZSk7Cj4gK2ludCBkcm1fYXRvbWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKPiArCQkJCSAgICAgICB1MTYgKnJlZCwgdTE2ICpncmVlbiwgdTE2ICpi bHVlLAo+ICsJCQkJICAgICAgIHVpbnQzMl90IHNpemUpOwo+ICAKPiAgLyoqCj4gICAqIGRybV9h dG9taWNfY3J0Y19mb3JfZWFjaF9wbGFuZSAtIGl0ZXJhdGUgb3ZlciBwbGFuZXMgY3VycmVudGx5 IGF0dGFjaGVkIHRvIENSVEMKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBi L2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCBmNTlkOGEyZDg5MjAuLjQxMWJlNGY0NTUw NiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oCj4gKysrIGIvaW5jbHVkZS9k cm0vZHJtX2NydGMuaAo+IEBAIC00NzksOCArNDc5LDggQEAgc3RydWN0IGRybV9jcnRjX2Z1bmNz IHsKPiAgCSAqIGdvaW5nIG9uLCB3aGljaCBzaG91bGQgZXZlbnR1YWxseSBiZSB1bmlmaWVkIHRv IGp1c3Qgb25lIHNldCBvZgo+ICAJICogaG9va3MuCj4gIAkgKi8KPiAtCXZvaWQgKCpnYW1tYV9z ZXQpKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdTE2ICpyLCB1MTYgKmcsIHUxNiAqYiwKPiAtCQkJ ICB1aW50MzJfdCBzdGFydCwgdWludDMyX3Qgc2l6ZSk7Cj4gKwlpbnQgKCpnYW1tYV9zZXQpKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywgdTE2ICpyLCB1MTYgKmcsIHUxNiAqYiwKPiArCQkJIHVpbnQz Ml90IHNpemUpOwo+ICAKPiAgCS8qKgo+ICAJICogQGRlc3Ryb3k6Cj4gLS0gCj4gMi41LjUKPiAK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g aHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX19saXN0 cy5mcmVlZGVza3RvcC5vcmdfbWFpbG1hbl9saXN0aW5mb19kcmktMkRkZXZlbCZkPUN3SUdhUSZj PVNxY2wwRXo2TTBYOGFlTTY3TEtJaURKQVhWZUF3LVlpaFZNTnRYdC11RXMmcj13OUl1M280ekF5 LTMtczhNRnZyTlNRJm09RTJrMC1oZVp5Wnl1aF9FOUNUT2dvaGxtLS0welc5OWZhMm5DUnJReHRt ayZzPXN0dVEtSTNuZWdPZm1Jck1MQkdWaDlDZ1haR05oVTVUQnhjZmdybFN2VVkmZT0gCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=