From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [PATCH v7 04/11] drm: revocation check at drm subsystem Date: Thu, 12 Sep 2019 00:15:32 +0000 Message-ID: References: <20190507162745.25600-1-ramalingam.c@intel.com> <20190507162745.25600-5-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190507162745.25600-5-ramalingam.c@intel.com> Content-Language: en-US Content-ID: <7C28644151B8764492CEB0FF473220F8@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ramalingam C , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "daniel.vetter@intel.com" Cc: "Deucher, Alexander" , "Kumar, Ranjeet" , "Lakha, Bhawanpreet" , "gwan-gyeong.mun@intel.com" List-Id: intel-gfx@lists.freedesktop.org QWRkaW5nIGEgY291cGxlIEFNRCBndXlzLg0KDQpJIGtub3cgdGhpcyBpcyBhbHJlYWR5IG1lcmdl ZCBidXQgSSBoYXZlIGEgZmV3IHF1ZXN0aW9ucyBhZnRlciBzb21lDQppbnRlcm5hbCBkaXNjdXNz aW9ucy4NCg0KT24gMjAxOS0wNS0wNyAxMjoyNyBwLm0uLCBSYW1hbGluZ2FtIEMgd3JvdGU6DQo+ IE9uIGV2ZXJ5IGhkY3AgcmV2b2NhdGlvbiBjaGVjayByZXF1ZXN0IFNSTSBpcyByZWFkIGZyb20g ZncgZmlsZQ0KPiAvbGliL2Zpcm13YXJlL2Rpc3BsYXlfaGRjcF9zcm0uYmluDQo+IA0KDQpBY2Nv cmRpbmcgdG8gc2VjdGlvbiA1IG9mIHRoZSBIRENQIDIuMyBzcGVjIFsxXSBhIGRldmljZSBjb21w bGlhbnQgd2l0aA0KSERDUCAyLjAgYW5kIGhpZ2hlciBtdXN0IGJlIGNhcGFibGUgb2Ygc3Rvcmlu ZyBhbmQgdXBkYXRpbmcgdGhlIFNSTSBpbg0Kbm9uLXZvbGF0aWxlIG1lbW9yeS4gU2VjdGlvbiA1 LjIgZGVzY3JpYmVzIGhvdyB0aGlzIFNSTSBuZWVkcyB0byBiZQ0KdXBkYXRlZCB3aGVuIGEgbmV3 IHZlcnNpb24gaXMgc2VydmVkIGFsb25nc2lkZSBwcm90ZWN0ZWQgY29udGVudC4NCg0KSXNuJ3Qg L2xpYi9maXJtd2FyZSBpbnRlbmRlZCBmb3Igc3RhdGljIGZpcm13YXJlIG1ha2luZyB1cGRhdGVz IHRvIHRoZQ0KZm9sZGVyIHByb2JsZW1hdGljIGZvciBhbnlvbmUgYnV0IHRoZSBzeXN0ZW0ncyBw YWNrYWdlIG1haW50YWluZXI/IEkndmUNCmhlYXJkIC9saWIgbWlnaHQgZXZlbiBiZSB0cmVhdGVk IGFzIHJlYWQtb25seSBpbiBjZXJ0YWluIGVudmlyb25tZW50cy4NClRoaXMgd291bGQgbWVhbiBp dCdkIGJlIGltcG9zc2libGUgdG8gc3VwcG9ydCBIRENQIDIueCBvbiB0aG9zZSBzeXN0ZW1zLg0K DQpXb3VsZG4ndCBpdCBiZSBlYXNpZXIgdG8gcHJvdmlkZSBhIHN5c2ZzIGVudHJ5IGZvciBTUk0g dGhhdCBhbGxvd3MNCnVzZXJzcGFjZSAoZS5nLiBzeXN0ZW0gc3RhcnR1cC9zaHV0ZG93biBzY3Jp cHRzKSB0byAoYSkgcmV0cmlldmUgdGhlIFNSTQ0KZnJvbSB0aGUgSERDUCBpbXBsZW1lbnRhdGlv biBmb3Igbm9uLXZvbGF0aWxlIHN0b3JhZ2UgYW5kIChiKSB0byBwYXNzDQp0aGUgU1JNIHRvIHRo ZSBIRENQIGltcGxlbWVudGF0aW9uIGZvciByZXZvY2F0aW9uIGNoZWNraW5nPw0KDQpbMV0NCmh0 dHBzOi8vd3d3LmRpZ2l0YWwtY3AuY29tL3NpdGVzL2RlZmF1bHQvZmlsZXMvSERDUCUyMG9uJTIw SERNSSUyMFNwZWNpZmljYXRpb24lMjBSZXYyXzMucGRmDQoNClRoYW5rcywNCkhhcnJ5DQoNCj4g U1JNIHRhYmxlIGlzIHBhcnNlZCBhbmQgc3RvcmVkIGF0IGRybV9oZGNwLmMsIHdpdGggZnVuY3Rp b25zIGV4cG9ydGVkDQo+IGZvciB0aGUgc2VydmljZXMgZm9yIHJldm9jYXRpb24gY2hlY2sgZnJv bSBkcml2ZXJzICh3aGljaA0KPiBpbXBsZW1lbnRzIHRoZSBIRENQIGF1dGhlbnRpY2F0aW9uKQ0K PiANCj4gVGhpcyBwYXRjaCBoYW5kbGVzIHRoZSBIRENQMS40IGFuZCAyLjIgdmVyc2lvbnMgb2Yg U1JNIHRhYmxlLg0KPiANCj4gdjI6DQo+ICAgbW92ZWQgdGhlIHVBUEkgdG8gcmVxdWVzdF9maXJt d2FyZV9kaXJlY3QoKSBbRGFuaWVsXQ0KPiB2MzoNCj4gICBrZG9jIGFkZGVkLiBbRGFuaWVsXQ0K PiAgIHNybV9oZWFkZXIgdW5pZmllZCBhbmQgYml0IGZpZWxkIGRlZmluaXRpb25zIGFyZSByZW1v dmVkLiBbRGFuaWVsXQ0KPiAgIGxvY2tpbmcgaW1wcm92ZWQuIFtEYW5pZWxdDQo+ICAgdnJsIGxl bmd0aCB2aW9sYXRpb24gaXMgZml4ZWQuIFtEYW5pZWxdDQo+IHY0Og0KPiAgIHMvX19zd2FiMTYv YmUxNl90b19jcHUgW0RhbmllbF0NCj4gICBiZTI0X3RvX2NwdSBpcyBkb25lIHRocm91Z2ggYSBn bG9iYWwgZnVuYyBbRGFuaWVsXQ0KPiAgIFVudXNlZCB2YXJpYWJsZXMgYXJlIHJlbW92ZWQuIFtE YW5pZWxdDQo+ICAgdW5jaGVja2VkIHJldHVybiB2YWx1ZXMgYXJlIGRyb3BwZWQgZnJvbSBzdGF0 aWMgZnVuY3MgW0RhbmllbF0NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFt YWxpbmdhbS5jQGludGVsLmNvbT4NCj4gQWNrZWQtYnk6IFNhdHllc2h3YXIgU2luZ2ggPHNhdHll c2h3YXIuc2luZ2hAaW50ZWwuY29tPg0KPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsQGZmd2xsLmNoPg0KPiAtLS0NCj4gIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVy cy5yc3QgfCAgIDYgKw0KPiAgZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlICAgICAgICAgICAgICB8 ICAgMiArLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9oZGNwLmMgICAgICAgICAgICB8IDMzMyAr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5h bC5oICAgICAgICB8ICAgNCArDQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMgICAgICAg ICAgIHwgICAyICsNCj4gIGluY2x1ZGUvZHJtL2RybV9oZGNwLmggICAgICAgICAgICAgICAgfCAg MjQgKysNCj4gIDYgZmlsZXMgY2hhbmdlZCwgMzcwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX2hkY3AuYw0KPiAN Cj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgYi9E b2N1bWVudGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0DQo+IGluZGV4IDE0MTAyYWUwMzVk Yy4uMGZlNzI2YTZlZTY3IDEwMDY0NA0KPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2dwdS9kcm0ta21z LWhlbHBlcnMucnN0DQo+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5y c3QNCj4gQEAgLTE4MSw2ICsxODEsMTIgQEAgUGFuZWwgSGVscGVyIFJlZmVyZW5jZQ0KPiAgLi4g a2VybmVsLWRvYzo6IGRyaXZlcnMvZ3B1L2RybS9kcm1fcGFuZWxfb3JpZW50YXRpb25fcXVpcmtz LmMNCj4gICAgIDpleHBvcnQ6DQo+IA0KPiArSERDUCBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5j ZQ0KPiArPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiArDQo+ICsuLiBrZXJuZWwt ZG9jOjogZHJpdmVycy9ncHUvZHJtL2RybV9oZGNwLmMNCj4gKyAgIDpleHBvcnQ6DQo+ICsNCj4g IERpc3BsYXkgUG9ydCBIZWxwZXIgRnVuY3Rpb25zIFJlZmVyZW5jZQ0KPiAgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlDQo+IGluZGV4IDcyZjUw MzZkOWJmYS4uZGQwMmU5ZGVjODEwIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vTWFr ZWZpbGUNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL01ha2VmaWxlDQo+IEBAIC0xNyw3ICsxNyw3 IEBAIGRybS15ICAgICAgIDo9ICAgICAgICBkcm1fYXV0aC5vIGRybV9jYWNoZS5vIFwNCj4gICAg ICAgICAgICAgICAgIGRybV9wbGFuZS5vIGRybV9jb2xvcl9tZ210Lm8gZHJtX3ByaW50Lm8gXA0K PiAgICAgICAgICAgICAgICAgZHJtX2R1bWJfYnVmZmVycy5vIGRybV9tb2RlX2NvbmZpZy5vIGRy bV92YmxhbmsubyBcDQo+ICAgICAgICAgICAgICAgICBkcm1fc3luY29iai5vIGRybV9sZWFzZS5v IGRybV93cml0ZWJhY2subyBkcm1fY2xpZW50Lm8gXA0KPiAtICAgICAgICAgICAgICAgZHJtX2F0 b21pY191YXBpLm8NCj4gKyAgICAgICAgICAgICAgIGRybV9hdG9taWNfdWFwaS5vIGRybV9oZGNw Lm8NCj4gDQo+ICBkcm0tJChDT05GSUdfRFJNX0xFR0FDWSkgKz0gZHJtX2xlZ2FjeV9taXNjLm8g ZHJtX2J1ZnMubyBkcm1fY29udGV4dC5vIGRybV9kbWEubyBkcm1fc2NhdHRlci5vIGRybV9sb2Nr Lm8NCj4gIGRybS0kKENPTkZJR19EUk1fTElCX1JBTkRPTSkgKz0gbGliL2RybV9yYW5kb20ubw0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9oZGNwLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2hkY3AuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAw MDAuLjVlNTQwOTUwNWMzMQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1faGRjcC5jDQo+IEBAIC0wLDAgKzEsMzMzIEBADQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMA0KPiArLyoNCj4gKyAqIENvcHlyaWdodCAoQykgMjAxOSBJbnRlbCBD b3Jwb3JhdGlvbi4NCj4gKyAqDQo+ICsgKiBBdXRob3JzOg0KPiArICogUmFtYWxpbmdhbSBDIDxy YW1hbGluZ2FtLmNAaW50ZWwuY29tPg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlIDxsaW51eC9k ZXZpY2UuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9lcnIuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9n ZnAuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9z bGFiLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4NCj4gKw0KPiArI2luY2x1ZGUg PGRybS9kcm1faGRjcC5oPg0KPiArI2luY2x1ZGUgPGRybS9kcm1fc3lzZnMuaD4NCj4gKyNpbmNs dWRlIDxkcm0vZHJtX3ByaW50Lmg+DQo+ICsjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4NCj4g Kw0KPiArc3RydWN0IGhkY3Bfc3JtIHsNCj4gKyAgICAgICB1MzIgcmV2b2tlZF9rc3ZfY250Ow0K PiArICAgICAgIHU4ICpyZXZva2VkX2tzdl9saXN0Ow0KPiArDQo+ICsgICAgICAgLyogTXV0ZXgg dG8gcHJvdGVjdCBhYm92ZSBzdHJ1Y3QgbWVtYmVyICovDQo+ICsgICAgICAgc3RydWN0IG11dGV4 IG11dGV4Ow0KPiArfSAqc3JtX2RhdGE7DQo+ICsNCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBkcm1f aGRjcF9wcmludF9rc3YoY29uc3QgdTggKmtzdikNCj4gK3sNCj4gKyAgICAgICBEUk1fREVCVUco Ilx0JSMwMngsICUjMDJ4LCAlIzAyeCwgJSMwMngsICUjMDJ4XG4iLA0KPiArICAgICAgICAgICAg ICAgICBrc3ZbMF0sIGtzdlsxXSwga3N2WzJdLCBrc3ZbM10sIGtzdls0XSk7DQo+ICt9DQo+ICsN Cj4gK3N0YXRpYyB1MzIgZHJtX2hkY3BfZ2V0X3Jldm9rZWRfa3N2X2NvdW50KGNvbnN0IHU4ICpi dWYsIHUzMiB2cmxzX2xlbmd0aCkNCj4gK3sNCj4gKyAgICAgICB1MzIgcGFyc2VkX2J5dGVzID0g MCwga3N2X2NvdW50ID0gMCwgdnJsX2tzdl9jbnQsIHZybF9zejsNCj4gKw0KPiArICAgICAgIHdo aWxlIChwYXJzZWRfYnl0ZXMgPCB2cmxzX2xlbmd0aCkgew0KPiArICAgICAgICAgICAgICAgdnJs X2tzdl9jbnQgPSAqYnVmOw0KPiArICAgICAgICAgICAgICAga3N2X2NvdW50ICs9IHZybF9rc3Zf Y250Ow0KPiArDQo+ICsgICAgICAgICAgICAgICB2cmxfc3ogPSAodnJsX2tzdl9jbnQgKiBEUk1f SERDUF9LU1ZfTEVOKSArIDE7DQo+ICsgICAgICAgICAgICAgICBidWYgKz0gdnJsX3N6Ow0KPiAr ICAgICAgICAgICAgICAgcGFyc2VkX2J5dGVzICs9IHZybF9zejsNCj4gKyAgICAgICB9DQo+ICsN Cj4gKyAgICAgICAvKg0KPiArICAgICAgICAqIFdoZW4gdnJscyBhcmUgbm90IHZhbGlkLCBrc3Zz IGFyZSBub3QgY29uc2lkZXJlZC4NCj4gKyAgICAgICAgKiBIZW5jZSBTUk0gd2lsbCBiZSBkaXNj YXJkZWQuDQo+ICsgICAgICAgICovDQo+ICsgICAgICAgaWYgKHBhcnNlZF9ieXRlcyAhPSB2cmxz X2xlbmd0aCkNCj4gKyAgICAgICAgICAgICAgIGtzdl9jb3VudCA9IDA7DQo+ICsNCj4gKyAgICAg ICByZXR1cm4ga3N2X2NvdW50Ow0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdTMyIGRybV9oZGNwX2dl dF9yZXZva2VkX2tzdnMoY29uc3QgdTggKmJ1ZiwgdTggKnJldm9rZWRfa3N2X2xpc3QsDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgdnJsc19sZW5ndGgpDQo+ICt7 DQo+ICsgICAgICAgdTMyIHBhcnNlZF9ieXRlcyA9IDAsIGtzdl9jb3VudCA9IDA7DQo+ICsgICAg ICAgdTMyIHZybF9rc3ZfY250LCB2cmxfa3N2X3N6LCB2cmxfaWR4ID0gMDsNCj4gKw0KPiArICAg ICAgIGRvIHsNCj4gKyAgICAgICAgICAgICAgIHZybF9rc3ZfY250ID0gKmJ1ZjsNCj4gKyAgICAg ICAgICAgICAgIHZybF9rc3Zfc3ogPSB2cmxfa3N2X2NudCAqIERSTV9IRENQX0tTVl9MRU47DQo+ ICsNCj4gKyAgICAgICAgICAgICAgIGJ1ZisrOw0KPiArDQo+ICsgICAgICAgICAgICAgICBEUk1f REVCVUcoInZybDogJWQsIFJldm9rZWQgS1NWczogJWRcbiIsIHZybF9pZHgrKywNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICB2cmxfa3N2X2NudCk7DQo+ICsgICAgICAgICAgICAgICBtZW1j cHkocmV2b2tlZF9rc3ZfbGlzdCwgYnVmLCB2cmxfa3N2X3N6KTsNCj4gKw0KPiArICAgICAgICAg ICAgICAga3N2X2NvdW50ICs9IHZybF9rc3ZfY250Ow0KPiArICAgICAgICAgICAgICAgcmV2b2tl ZF9rc3ZfbGlzdCArPSB2cmxfa3N2X3N6Ow0KPiArICAgICAgICAgICAgICAgYnVmICs9IHZybF9r c3Zfc3o7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIHBhcnNlZF9ieXRlcyArPSAodnJsX2tzdl9z eiArIDEpOw0KPiArICAgICAgIH0gd2hpbGUgKHBhcnNlZF9ieXRlcyA8IHZybHNfbGVuZ3RoKTsN Cj4gKw0KPiArICAgICAgIHJldHVybiBrc3ZfY291bnQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBp bmxpbmUgdTMyIGdldF92cmxfbGVuZ3RoKGNvbnN0IHU4ICpidWYpDQo+ICt7DQo+ICsgICAgICAg cmV0dXJuIGRybV9oZGNwX2JlMjRfdG9fY3B1KGJ1Zik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBp bnQgZHJtX2hkY3BfcGFyc2VfaGRjcDFfc3JtKGNvbnN0IHU4ICpidWYsIHNpemVfdCBjb3VudCkN Cj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgaGRjcF9zcm1faGVhZGVyICpoZWFkZXI7DQo+ICsgICAg ICAgdTMyIHZybF9sZW5ndGgsIGtzdl9jb3VudDsNCj4gKw0KPiArICAgICAgIGlmIChjb3VudCA8 IChzaXplb2Yoc3RydWN0IGhkY3Bfc3JtX2hlYWRlcikgKw0KPiArICAgICAgICAgICBEUk1fSERD UF8xXzRfVlJMX0xFTkdUSF9TSVpFICsgRFJNX0hEQ1BfMV80X0RDUF9TSUdfU0laRSkpIHsNCj4g KyAgICAgICAgICAgICAgIERSTV9FUlJPUigiSW52YWxpZCBibG9iIGxlbmd0aFxuIik7DQo+ICsg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAg ICBoZWFkZXIgPSAoc3RydWN0IGhkY3Bfc3JtX2hlYWRlciAqKWJ1ZjsNCj4gKyAgICAgICBEUk1f REVCVUcoIlNSTSBJRDogMHgleCwgU1JNIFZlcjogMHgleCwgU1JNIEdlbiBObzogMHgleFxuIiwN Cj4gKyAgICAgICAgICAgICAgICAgaGVhZGVyLT5zcm1faWQsDQo+ICsgICAgICAgICAgICAgICAg IGJlMTZfdG9fY3B1KGhlYWRlci0+c3JtX3ZlcnNpb24pLCBoZWFkZXItPnNybV9nZW5fbm8pOw0K PiArDQo+ICsgICAgICAgV0FSTl9PTihoZWFkZXItPnJlc2VydmVkKTsNCj4gKw0KPiArICAgICAg IGJ1ZiA9IGJ1ZiArIHNpemVvZigqaGVhZGVyKTsNCj4gKyAgICAgICB2cmxfbGVuZ3RoID0gZ2V0 X3ZybF9sZW5ndGgoYnVmKTsNCj4gKyAgICAgICBpZiAoY291bnQgPCAoc2l6ZW9mKHN0cnVjdCBo ZGNwX3NybV9oZWFkZXIpICsgdnJsX2xlbmd0aCkgfHwNCj4gKyAgICAgICAgICAgdnJsX2xlbmd0 aCA8IChEUk1fSERDUF8xXzRfVlJMX0xFTkdUSF9TSVpFICsNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICBEUk1fSERDUF8xXzRfRENQX1NJR19TSVpFKSkgew0KPiArICAgICAgICAgICAgICAg RFJNX0VSUk9SKCJJbnZhbGlkIGJsb2IgbGVuZ3RoIG9yIHZybCBsZW5ndGhcbiIpOw0KPiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAg LyogTGVuZ3RoIG9mIHRoZSBhbGwgdnJscyBjb21iaW5lZCAqLw0KPiArICAgICAgIHZybF9sZW5n dGggLT0gKERSTV9IRENQXzFfNF9WUkxfTEVOR1RIX1NJWkUgKw0KPiArICAgICAgICAgICAgICAg ICAgICAgIERSTV9IRENQXzFfNF9EQ1BfU0lHX1NJWkUpOw0KPiArDQo+ICsgICAgICAgaWYgKCF2 cmxfbGVuZ3RoKSB7DQo+ICsgICAgICAgICAgICAgICBEUk1fRVJST1IoIk5vIHZybCBmb3VuZFxu Iik7DQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICAgICB9DQo+ICsN Cj4gKyAgICAgICBidWYgKz0gRFJNX0hEQ1BfMV80X1ZSTF9MRU5HVEhfU0laRTsNCj4gKyAgICAg ICBrc3ZfY291bnQgPSBkcm1faGRjcF9nZXRfcmV2b2tlZF9rc3ZfY291bnQoYnVmLCB2cmxfbGVu Z3RoKTsNCj4gKyAgICAgICBpZiAoIWtzdl9jb3VudCkgew0KPiArICAgICAgICAgICAgICAgRFJN X0RFQlVHKCJSZXZva2VkIEtTViBjb3VudCBpcyAwXG4iKTsNCj4gKyAgICAgICAgICAgICAgIHJl dHVybiBjb3VudDsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBrZnJlZShzcm1fZGF0YS0+ cmV2b2tlZF9rc3ZfbGlzdCk7DQo+ICsgICAgICAgc3JtX2RhdGEtPnJldm9rZWRfa3N2X2xpc3Qg PSBrY2FsbG9jKGtzdl9jb3VudCwgRFJNX0hEQ1BfS1NWX0xFTiwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7DQo+ICsgICAgICAgaWYg KCFzcm1fZGF0YS0+cmV2b2tlZF9rc3ZfbGlzdCkgew0KPiArICAgICAgICAgICAgICAgRFJNX0VS Uk9SKCJPdXQgb2YgTWVtb3J5XG4iKTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVN Ow0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGlmIChkcm1faGRjcF9nZXRfcmV2b2tlZF9r c3ZzKGJ1Ziwgc3JtX2RhdGEtPnJldm9rZWRfa3N2X2xpc3QsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdnJsX2xlbmd0aCkgIT0ga3N2X2NvdW50KSB7DQo+ICsgICAg ICAgICAgICAgICBzcm1fZGF0YS0+cmV2b2tlZF9rc3ZfY250ID0gMDsNCj4gKyAgICAgICAgICAg ICAgIGtmcmVlKHNybV9kYXRhLT5yZXZva2VkX2tzdl9saXN0KTsNCj4gKyAgICAgICAgICAgICAg IHJldHVybiAtRUlOVkFMOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIHNybV9kYXRhLT5y ZXZva2VkX2tzdl9jbnQgPSBrc3ZfY291bnQ7DQo+ICsgICAgICAgcmV0dXJuIGNvdW50Ow0KPiAr fQ0KPiArDQo+ICtzdGF0aWMgaW50IGRybV9oZGNwX3BhcnNlX2hkY3AyX3NybShjb25zdCB1OCAq YnVmLCBzaXplX3QgY291bnQpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IGhkY3Bfc3JtX2hlYWRl ciAqaGVhZGVyOw0KPiArICAgICAgIHUzMiB2cmxfbGVuZ3RoLCBrc3ZfY291bnQsIGtzdl9zejsN Cj4gKw0KPiArICAgICAgIGlmIChjb3VudCA8IChzaXplb2Yoc3RydWN0IGhkY3Bfc3JtX2hlYWRl cikgKw0KPiArICAgICAgICAgICBEUk1fSERDUF8yX1ZSTF9MRU5HVEhfU0laRSArIERSTV9IRENQ XzJfRENQX1NJR19TSVpFKSkgew0KPiArICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJJbnZhbGlk IGJsb2IgbGVuZ3RoXG4iKTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiAr ICAgICAgIH0NCj4gKw0KPiArICAgICAgIGhlYWRlciA9IChzdHJ1Y3QgaGRjcF9zcm1faGVhZGVy ICopYnVmOw0KPiArICAgICAgIERSTV9ERUJVRygiU1JNIElEOiAweCV4LCBTUk0gVmVyOiAweCV4 LCBTUk0gR2VuIE5vOiAweCV4XG4iLA0KPiArICAgICAgICAgICAgICAgICBoZWFkZXItPnNybV9p ZCAmIERSTV9IRENQX1NSTV9JRF9NQVNLLA0KPiArICAgICAgICAgICAgICAgICBiZTE2X3RvX2Nw dShoZWFkZXItPnNybV92ZXJzaW9uKSwgaGVhZGVyLT5zcm1fZ2VuX25vKTsNCj4gKw0KPiArICAg ICAgIGlmIChoZWFkZXItPnJlc2VydmVkKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7DQo+ICsNCj4gKyAgICAgICBidWYgPSBidWYgKyBzaXplb2YoKmhlYWRlcik7DQo+ICsgICAg ICAgdnJsX2xlbmd0aCA9IGdldF92cmxfbGVuZ3RoKGJ1Zik7DQo+ICsNCj4gKyAgICAgICBpZiAo Y291bnQgPCAoc2l6ZW9mKHN0cnVjdCBoZGNwX3NybV9oZWFkZXIpICsgdnJsX2xlbmd0aCkgfHwN Cj4gKyAgICAgICAgICAgdnJsX2xlbmd0aCA8IChEUk1fSERDUF8yX1ZSTF9MRU5HVEhfU0laRSAr DQo+ICsgICAgICAgICAgIERSTV9IRENQXzJfRENQX1NJR19TSVpFKSkgew0KPiArICAgICAgICAg ICAgICAgRFJNX0VSUk9SKCJJbnZhbGlkIGJsb2IgbGVuZ3RoIG9yIHZybCBsZW5ndGhcbiIpOw0K PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsg ICAgICAgLyogTGVuZ3RoIG9mIHRoZSBhbGwgdnJscyBjb21iaW5lZCAqLw0KPiArICAgICAgIHZy bF9sZW5ndGggLT0gKERSTV9IRENQXzJfVlJMX0xFTkdUSF9TSVpFICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgICBEUk1fSERDUF8yX0RDUF9TSUdfU0laRSk7DQo+ICsNCj4gKyAgICAgICBpZiAo IXZybF9sZW5ndGgpIHsNCj4gKyAgICAgICAgICAgICAgIERSTV9FUlJPUigiTm8gdnJsIGZvdW5k XG4iKTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArICAgICAgIH0NCj4g Kw0KPiArICAgICAgIGJ1ZiArPSBEUk1fSERDUF8yX1ZSTF9MRU5HVEhfU0laRTsNCj4gKyAgICAg ICBrc3ZfY291bnQgPSAoKmJ1ZiA8PCAyKSB8IERSTV9IRENQXzJfS1NWX0NPVU5UXzJfTFNCSVRT KCooYnVmICsgMSkpOw0KPiArICAgICAgIGlmICgha3N2X2NvdW50KSB7DQo+ICsgICAgICAgICAg ICAgICBEUk1fREVCVUcoIlJldm9rZWQgS1NWIGNvdW50IGlzIDBcbiIpOw0KPiArICAgICAgICAg ICAgICAgcmV0dXJuIGNvdW50Ow0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGtmcmVlKHNy bV9kYXRhLT5yZXZva2VkX2tzdl9saXN0KTsNCj4gKyAgICAgICBzcm1fZGF0YS0+cmV2b2tlZF9r c3ZfbGlzdCA9IGtjYWxsb2Moa3N2X2NvdW50LCBEUk1fSERDUF9LU1ZfTEVOLA0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVMKTsNCj4gKyAg ICAgICBpZiAoIXNybV9kYXRhLT5yZXZva2VkX2tzdl9saXN0KSB7DQo+ICsgICAgICAgICAgICAg ICBEUk1fRVJST1IoIk91dCBvZiBNZW1vcnlcbiIpOw0KPiArICAgICAgICAgICAgICAgcmV0dXJu IC1FTk9NRU07DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAga3N2X3N6ID0ga3N2X2NvdW50 ICogRFJNX0hEQ1BfS1NWX0xFTjsNCj4gKyAgICAgICBidWYgKz0gRFJNX0hEQ1BfMl9OT19PRl9E RVZfUExVU19SRVNFUlZFRF9TWjsNCj4gKw0KPiArICAgICAgIERSTV9ERUJVRygiUmV2b2tlZCBL U1ZzOiAlZFxuIiwga3N2X2NvdW50KTsNCj4gKyAgICAgICBtZW1jcHkoc3JtX2RhdGEtPnJldm9r ZWRfa3N2X2xpc3QsIGJ1Ziwga3N2X3N6KTsNCj4gKw0KPiArICAgICAgIHNybV9kYXRhLT5yZXZv a2VkX2tzdl9jbnQgPSBrc3ZfY291bnQ7DQo+ICsgICAgICAgcmV0dXJuIGNvdW50Ow0KPiArfQ0K PiArDQo+ICtzdGF0aWMgaW5saW5lIGJvb2wgaXNfc3JtX3ZlcnNpb25faGRjcDEoY29uc3QgdTgg KmJ1ZikNCj4gK3sNCj4gKyAgICAgICByZXR1cm4gKmJ1ZiA9PSAodTgpKERSTV9IRENQXzFfNF9T Uk1fSUQgPDwgNCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbmxpbmUgYm9vbCBpc19zcm1fdmVy c2lvbl9oZGNwMihjb25zdCB1OCAqYnVmKQ0KPiArew0KPiArICAgICAgIHJldHVybiAqYnVmID09 ICh1OCkoRFJNX0hEQ1BfMl9TUk1fSUQgPDwgNCB8IERSTV9IRENQXzJfSU5ESUNBVE9SKTsNCj4g K30NCj4gKw0KPiArc3RhdGljIHZvaWQgZHJtX2hkY3Bfc3JtX3VwZGF0ZShjb25zdCB1OCAqYnVm LCBzaXplX3QgY291bnQpDQo+ICt7DQo+ICsgICAgICAgaWYgKGNvdW50IDwgc2l6ZW9mKHN0cnVj dCBoZGNwX3NybV9oZWFkZXIpKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsg ICAgICAgaWYgKGlzX3NybV92ZXJzaW9uX2hkY3AxKGJ1ZikpDQo+ICsgICAgICAgICAgICAgICBk cm1faGRjcF9wYXJzZV9oZGNwMV9zcm0oYnVmLCBjb3VudCk7DQo+ICsgICAgICAgZWxzZSBpZiAo aXNfc3JtX3ZlcnNpb25faGRjcDIoYnVmKSkNCj4gKyAgICAgICAgICAgICAgIGRybV9oZGNwX3Bh cnNlX2hkY3AyX3NybShidWYsIGNvdW50KTsNCj4gK30NCj4gKw0KPiArdm9pZCBkcm1faGRjcF9y ZXF1ZXN0X3NybShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldikNCj4gK3sNCj4gKyAgICAgICBj aGFyIGZ3X25hbWVbMzZdID0gImRpc3BsYXlfaGRjcF9zcm0uYmluIjsNCj4gKyAgICAgICBjb25z dCBzdHJ1Y3QgZmlybXdhcmUgKmZ3Ow0KPiArDQo+ICsgICAgICAgaW50IHJldDsNCj4gKw0KPiAr ICAgICAgIHJldCA9IHJlcXVlc3RfZmlybXdhcmVfZGlyZWN0KCZmdywgKGNvbnN0IGNoYXIgKilm d19uYW1lLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybV9kZXYt PmRldik7DQo+ICsgICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICAgICBnb3RvIGV4 aXQ7DQo+ICsNCj4gKyAgICAgICBpZiAoZnctPnNpemUgJiYgZnctPmRhdGEpDQo+ICsgICAgICAg ICAgICAgICBkcm1faGRjcF9zcm1fdXBkYXRlKGZ3LT5kYXRhLCBmdy0+c2l6ZSk7DQo+ICsNCj4g K2V4aXQ6DQo+ICsgICAgICAgcmVsZWFzZV9maXJtd2FyZShmdyk7DQo+ICt9DQo+ICsNCj4gKy8q Kg0KPiArICogZHJtX2hkY3BfY2hlY2tfa3N2c19yZXZva2VkIC0gQ2hlY2sgdGhlIHJldm9rZWQg c3RhdHVzIG9mIHRoZSBJRHMNCj4gKyAqDQo+ICsgKiBAZHJtX2RldjogZHJtX2RldmljZSBmb3Ig d2hpY2ggSERDUCByZXZvY2F0aW9uIGNoZWNrIGlzIHJlcXVlc3RlZA0KPiArICogQGtzdnM6IExp c3Qgb2YgS1NWcyAoSERDUCByZWNlaXZlciBJRHMpDQo+ICsgKiBAa3N2X2NvdW50OiBLU1YgY291 bnQgcGFzc2VkIGluIHRocm91Z2ggQGtzdnMNCj4gKyAqDQo+ICsgKiBUaGlzIGZ1bmN0aW9uIHJl YWRzIHRoZSBIRENQIFN5c3RlbSByZW5ld2FiaWxpdHkgTWVzc2FnZShTUk0gVGFibGUpDQo+ICsg KiBmcm9tIHVzZXJzcGFjZSBhcyBhIGZpcm13YXJlIGFuZCBwYXJzZXMgaXQgZm9yIHRoZSByZXZv a2VkIEhEQ1ANCj4gKyAqIEtTVnMoUmVjZWl2ZXIgSURzKSBkZXRlY3RlZCBieSBEQ1AgTExDLiBP bmNlIHRoZSByZXZva2VkIEtTVnMgYXJlIGtub3duLA0KPiArICogcmV2b2tlZCBzdGF0ZSBvZiB0 aGUgS1NWcyBpbiB0aGUgbGlzdCBwYXNzZWQgaW4gYnkgZGlzcGxheSBkcml2ZXJzIGFyZQ0KPiAr ICogZGVjaWRlZCBhbmQgcmVzcG9uc2UgaXMgc2VudC4NCj4gKyAqDQo+ICsgKiBTUk0gc2hvdWxk IGJlIHByZXNlbnRlZCBpbiB0aGUgbmFtZSBvZiAiZGlzcGxheV9oZGNwX3NybS5iaW4iLg0KPiAr ICoNCj4gKyAqIFJldHVybnM6DQo+ICsgKiBUUlVFIG9uIGFueSBvZiB0aGUgS1NWIGlzIHJldm9r ZWQsIGVsc2UgRkFMU0UuDQo+ICsgKi8NCj4gK2Jvb2wgZHJtX2hkY3BfY2hlY2tfa3N2c19yZXZv a2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LCB1OCAqa3N2cywNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdTMyIGtzdl9jb3VudCkNCj4gK3sNCj4gKyAgICAgICB1MzIg cmV2X2tzdl9jbnQsIGNudCwgaSwgajsNCj4gKyAgICAgICB1OCAqcmV2X2tzdl9saXN0Ow0KPiAr DQo+ICsgICAgICAgaWYgKCFzcm1fZGF0YSkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiBmYWxz ZTsNCj4gKw0KPiArICAgICAgIG11dGV4X2xvY2soJnNybV9kYXRhLT5tdXRleCk7DQo+ICsgICAg ICAgZHJtX2hkY3BfcmVxdWVzdF9zcm0oZHJtX2Rldik7DQo+ICsNCj4gKyAgICAgICByZXZfa3N2 X2NudCA9IHNybV9kYXRhLT5yZXZva2VkX2tzdl9jbnQ7DQo+ICsgICAgICAgcmV2X2tzdl9saXN0 ID0gc3JtX2RhdGEtPnJldm9rZWRfa3N2X2xpc3Q7DQo+ICsNCj4gKyAgICAgICAvKiBJZiB0aGUg UmV2b2tlZCBrc3YgbGlzdCBpcyBlbXB0eSAqLw0KPiArICAgICAgIGlmICghcmV2X2tzdl9jbnQg fHwgIXJldl9rc3ZfbGlzdCkgew0KPiArICAgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZzcm1f ZGF0YS0+bXV0ZXgpOw0KPiArICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiArICAgICAg IH0NCj4gKw0KPiArICAgICAgIGZvciAgKGNudCA9IDA7IGNudCA8IGtzdl9jb3VudDsgY250Kysp IHsNCj4gKyAgICAgICAgICAgICAgIHJldl9rc3ZfbGlzdCA9IHNybV9kYXRhLT5yZXZva2VkX2tz dl9saXN0Ow0KPiArICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHJldl9rc3ZfY250OyBp KyspIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IERSTV9IRENQ X0tTVl9MRU47IGorKykNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa3N2 c1tqXSAhPSByZXZfa3N2X2xpc3Rbal0pIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0g ZWxzZSBpZiAoaiA9PSAoRFJNX0hEQ1BfS1NWX0xFTiAtIDEpKSB7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fREVCVUcoIlJldm9rZWQgS1NWIGlzICIpOw0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJtX2hkY3BfcHJpbnRf a3N2KGtzdnMpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0 ZXhfdW5sb2NrKCZzcm1fZGF0YS0+bXV0ZXgpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAvKiBNb3ZlIHRoZSBvZmZzZXQgdG8g bmV4dCBLU1YgaW4gdGhlIHJldm9rZWQgbGlzdCAqLw0KPiArICAgICAgICAgICAgICAgICAgICAg ICByZXZfa3N2X2xpc3QgKz0gRFJNX0hEQ1BfS1NWX0xFTjsNCj4gKyAgICAgICAgICAgICAgIH0N Cj4gKw0KPiArICAgICAgICAgICAgICAgLyogSXRlcmF0ZSB0byBuZXh0IGtzdl9vZmZzZXQgKi8N Cj4gKyAgICAgICAgICAgICAgIGtzdnMgKz0gRFJNX0hEQ1BfS1NWX0xFTjsNCj4gKyAgICAgICB9 DQo+ICsgICAgICAgbXV0ZXhfdW5sb2NrKCZzcm1fZGF0YS0+bXV0ZXgpOw0KPiArICAgICAgIHJl dHVybiBmYWxzZTsNCj4gK30NCj4gK0VYUE9SVF9TWU1CT0xfR1BMKGRybV9oZGNwX2NoZWNrX2tz dnNfcmV2b2tlZCk7DQo+ICsNCj4gK2ludCBkcm1fc2V0dXBfaGRjcF9zcm0oc3RydWN0IGNsYXNz ICpkcm1fY2xhc3MpDQo+ICt7DQo+ICsgICAgICAgc3JtX2RhdGEgPSBremFsbG9jKHNpemVvZigq c3JtX2RhdGEpLCBHRlBfS0VSTkVMKTsNCj4gKyAgICAgICBpZiAoIXNybV9kYXRhKQ0KPiArICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQo+ICsgICAgICAgbXV0ZXhfaW5pdCgmc3JtX2Rh dGEtPm11dGV4KTsNCj4gKw0KPiArICAgICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICt2b2lk IGRybV90ZWFyZG93bl9oZGNwX3NybShzdHJ1Y3QgY2xhc3MgKmRybV9jbGFzcykNCj4gK3sNCj4g KyAgICAgICBpZiAoc3JtX2RhdGEpIHsNCj4gKyAgICAgICAgICAgICAgIGtmcmVlKHNybV9kYXRh LT5yZXZva2VkX2tzdl9saXN0KTsNCj4gKyAgICAgICAgICAgICAgIGtmcmVlKHNybV9kYXRhKTsN Cj4gKyAgICAgICB9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lu dGVybmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgNCj4gaW5kZXggZTE5YWM3 Y2E2MDJkLi40NzZhNDIyNDE0ZjYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f aW50ZXJuYWwuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgNCj4gQEAg LTIwMSwzICsyMDEsNyBAQCBpbnQgZHJtX3N5bmNvYmpfcXVlcnlfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4gIHZvaWQgZHJtX2ZyYW1lYnVmZmVyX3ByaW50X2lu Zm8oc3RydWN0IGRybV9wcmludGVyICpwLCB1bnNpZ25lZCBpbnQgaW5kZW50LA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi KTsNCj4gIGludCBkcm1fZnJhbWVidWZmZXJfZGVidWdmc19pbml0KHN0cnVjdCBkcm1fbWlub3Ig Km1pbm9yKTsNCj4gKw0KPiArLyogZHJtX2hkY3AuYyAqLw0KPiAraW50IGRybV9zZXR1cF9oZGNw X3NybShzdHJ1Y3QgY2xhc3MgKmRybV9jbGFzcyk7DQo+ICt2b2lkIGRybV90ZWFyZG93bl9oZGNw X3NybShzdHJ1Y3QgY2xhc3MgKmRybV9jbGFzcyk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX3N5c2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMNCj4gaW5kZXgg ZWNiN2IzMzAwMmJiLi4xOGIxYWM0NDI5OTcgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fc3lzZnMuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5c2ZzLmMNCj4gQEAg LTc4LDYgKzc4LDcgQEAgaW50IGRybV9zeXNmc19pbml0KHZvaWQpDQo+ICAgICAgICAgfQ0KPiAN Cj4gICAgICAgICBkcm1fY2xhc3MtPmRldm5vZGUgPSBkcm1fZGV2bm9kZTsNCj4gKyAgICAgICBk cm1fc2V0dXBfaGRjcF9zcm0oZHJtX2NsYXNzKTsNCj4gICAgICAgICByZXR1cm4gMDsNCj4gIH0N Cj4gDQo+IEBAIC05MCw2ICs5MSw3IEBAIHZvaWQgZHJtX3N5c2ZzX2Rlc3Ryb3kodm9pZCkNCj4g IHsNCj4gICAgICAgICBpZiAoSVNfRVJSX09SX05VTEwoZHJtX2NsYXNzKSkNCj4gICAgICAgICAg ICAgICAgIHJldHVybjsNCj4gKyAgICAgICBkcm1fdGVhcmRvd25faGRjcF9zcm0oZHJtX2NsYXNz KTsNCj4gICAgICAgICBjbGFzc19yZW1vdmVfZmlsZShkcm1fY2xhc3MsICZjbGFzc19hdHRyX3Zl cnNpb24uYXR0cik7DQo+ICAgICAgICAgY2xhc3NfZGVzdHJveShkcm1fY2xhc3MpOw0KPiAgICAg ICAgIGRybV9jbGFzcyA9IE5VTEw7DQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1faGRj cC5oIGIvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaA0KPiBpbmRleCAxY2M2NmRmMDVhNDMuLjJmMDMz NWQwYTUwZiAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaA0KPiArKysgYi9p bmNsdWRlL2RybS9kcm1faGRjcC5oDQo+IEBAIC0yNjUsNCArMjY1LDI4IEBAIHZvaWQgZHJtX2hk Y3BfY3B1X3RvX2JlMjQodTggc2VxX251bVtIRENQXzJfMl9TRVFfTlVNX0xFTl0sIHUzMiB2YWwp DQo+ICAgICAgICAgc2VxX251bVsyXSA9IHZhbDsNCj4gIH0NCj4gDQo+ICsjZGVmaW5lIERSTV9I RENQX1NSTV9HRU4xX01BWF9CWVRFUyAgICAgICAgICAgICg1ICogMTAyNCkNCj4gKyNkZWZpbmUg RFJNX0hEQ1BfMV80X1NSTV9JRCAgICAgICAgICAgICAgICAgICAgMHg4DQo+ICsjZGVmaW5lIERS TV9IRENQX1NSTV9JRF9NQVNLICAgICAgICAgICAgICAgICAgICgweEYgPDwgNCkNCj4gKyNkZWZp bmUgRFJNX0hEQ1BfMV80X1ZSTF9MRU5HVEhfU0laRSAgICAgICAgICAgMw0KPiArI2RlZmluZSBE Uk1fSERDUF8xXzRfRENQX1NJR19TSVpFICAgICAgICAgICAgICA0MA0KPiArI2RlZmluZSBEUk1f SERDUF8yX1NSTV9JRCAgICAgICAgICAgICAgICAgICAgICAweDkNCj4gKyNkZWZpbmUgRFJNX0hE Q1BfMl9JTkRJQ0FUT1IgICAgICAgICAgICAgICAgICAgMHgxDQo+ICsjZGVmaW5lIERSTV9IRENQ XzJfSU5ESUNBVE9SX01BU0sgICAgICAgICAgICAgIDB4Rg0KPiArI2RlZmluZSBEUk1fSERDUF8y X1ZSTF9MRU5HVEhfU0laRSAgICAgICAgICAgICAzDQo+ICsjZGVmaW5lIERSTV9IRENQXzJfRENQ X1NJR19TSVpFICAgICAgICAgICAgICAgICAgICAgICAgMzg0DQo+ICsjZGVmaW5lIERSTV9IRENQ XzJfTk9fT0ZfREVWX1BMVVNfUkVTRVJWRURfU1ogIDQNCj4gKyNkZWZpbmUgRFJNX0hEQ1BfMl9L U1ZfQ09VTlRfMl9MU0JJVFMoYnl0ZSkgICAgKCgoYnl0ZSkgJiAweEMpID4+IDYpDQo+ICsNCj4g K3N0cnVjdCBoZGNwX3NybV9oZWFkZXIgew0KPiArICAgICAgIHU4IHNybV9pZDsNCj4gKyAgICAg ICB1OCByZXNlcnZlZDsNCj4gKyAgICAgICBfX2JlMTYgc3JtX3ZlcnNpb247DQo+ICsgICAgICAg dTggc3JtX2dlbl9ubzsNCj4gK30gX19wYWNrZWQ7DQo+ICsNCj4gK3N0cnVjdCBkcm1fZGV2aWNl Ow0KPiArDQo+ICtib29sIGRybV9oZGNwX2NoZWNrX2tzdnNfcmV2b2tlZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCAqa3N2cywg dTMyIGtzdl9jb3VudCk7DQo+ICAjZW5kaWYNCj4gLS0NCj4gMi4xOS4xDQo+IA0KPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBkcmktZGV2ZWwgbWFp bGluZyBsaXN0DQo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwNCj4gDQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=