From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/3] drm/radeon: fix indentation. Date: Wed, 16 Mar 2016 13:11:58 +0100 Message-ID: <56E94D8E.5000008@vodafone.de> References: <1458129407-4940-1-git-send-email-jglisse@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id C10F46E2AB for ; Wed, 16 Mar 2016 12:12:19 +0000 (UTC) In-Reply-To: <1458129407-4940-1-git-send-email-jglisse@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: jglisse@redhat.com, dri-devel@lists.freedesktop.org Cc: Alex Deucher List-Id: dri-devel@lists.freedesktop.org QW0gMTYuMDMuMjAxNiB1bSAxMjo1NiBzY2hyaWViIGpnbGlzc2VAcmVkaGF0LmNvbToKPiBGcm9t OiBKw6lyb21lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgo+Cj4gSSBoYXRlIGRvaW5nIHRo aXMgYnV0IGl0IGh1cnRzIG15IGV5ZXMgdG8gZ28gb3ZlciBjb2RlIHRoYXQgZG9lcyBub3QKPiBj b21wbHkgd2l0aCBpbmRlbnRhdGlvbiBydWxlcy4gT25seSB0aGluZyB0aGF0IGlzIG5vdCBvbmx5 IHNwYWNlIGNoYW5nZQo+IGlzIGluIGF0b20uYyBhbGwgb3RoZXIgZmlsZXMgYXJlIHNwYWNlIGlu ZGVudGF0aW9uIGlzc3Vlcy4KPgo+IFNpZ25lZC1vZmYtYnk6IErDqXLDtG1lIEdsaXNzZSA8amds aXNzZUByZWRoYXQuY29tPgo+IENjOiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFt ZC5jb20+CgpPaCwgeWVzIHBsZWFzZS4gUGF0Y2ggaXMgQWNrZWQtYnk6IENocmlzdGlhbiBLw7Zu aWcgCjxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+LgoKPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vYXRvbS5jICAgICAgICAgICAgICAgICAgIHwgICA3ICstCj4gICBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyAgICAgICAgICB8ICAgNiArLQo+ICAgZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19kcC5jICAgICAgICAgICAgfCAgIDQgKy0KPiAgIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vYnRjX2RwbS5jICAgICAgICAgICAgICAgIHwgIDQxICsrKy0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaV9kcG0uYyAgICAgICAgICAgICAgICAgfCAg NDIgKysrLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2NpX3NtYy5jICAgICAgICAgICAg ICAgICB8ICAgOCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYyAgICAgICAgICAg ICAgICAgICAgfCAgIDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vY3lwcmVzc19kcG0u YyAgICAgICAgICAgIHwgICA4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVl bi5jICAgICAgICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVy Z3JlZW5fY3MuYyAgICAgICAgICAgfCAgMzIgKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRl b24vZXZlcmdyZWVuX2hkbWkuYyAgICAgICAgIHwgICAyICstCj4gICBkcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2t2X2RwbS5jICAgICAgICAgICAgICAgICB8ICAgNCArLQo+ICAgZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9uaS5jICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vbmlfZHBtLmMgICAgICAgICAgICAgICAgIHwgMTcwICsrKysrKysrKysr Ky0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwLmMgICAgICAgICAg ICAgICAgICAgfCAgIDggKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9jcy5jICAg ICAgICAgICAgICAgIHwgIDIwICstLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2Rw bS5jICAgICAgICAgICAgICAgfCAgIDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYw MF9oZG1pLmMgICAgICAgICAgICAgIHwgICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl9hdG9tYmlvcy5jICAgICAgICB8ICAgNiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fZGV2aWNlLmMgICAgICAgICAgfCAgIDggKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYyAgICAgICAgIHwgICA2ICstCj4gICBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9mYi5jICAgICAgICAgICAgICB8ICAgNiArLQo+ICAgZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faWIuYyAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgIGRy aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9lbmNvZGVycy5jIHwgIDkyICsrKysr Ky0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jICAgICAg ICAgIHwgICA2ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wbS5jICAgICAg ICAgICAgICB8ICAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBo b3JlLmMgICAgICAgfCAgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2 ZC5jICAgICAgICAgICAgIHwgICA4ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVv bl92Y2UuYyAgICAgICAgICAgICB8ICAyMiArLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3ZtLmMgICAgICAgICAgICAgIHwgIDE5ICstLQo+ICAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yczc4MF9kcG0uYyAgICAgICAgICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcnY2eHhfZHBtLmMgICAgICAgICAgICAgIHwgIDE4ICstLQo+ICAgZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9ydjc0MF9kcG0uYyAgICAgICAgICAgICAgfCAgMTYgKy0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzcwX2RwbS5jICAgICAgICAgICAgICB8ICA0NiArKystLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMgICAgICAgICAgICAgICAgICAgICB8ICA0 NCArKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vc2lfZHBtLmMgICAgICAgICAgICAg ICAgIHwgIDk4ICsrKysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3N1bW9f ZHBtLmMgICAgICAgICAgICAgICB8ICAgNiArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi90 cmluaXR5X2RwbS5jICAgICAgICAgICAgfCAgMjQgKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi92Y2VfdjJfMC5jICAgICAgICAgICAgICAgfCAgIDIgKy0KPiAgIDM5IGZpbGVzIGNoYW5n ZWQsIDQwNyBpbnNlcnRpb25zKCspLCA0MDYgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0 b20uYwo+IGluZGV4IGVjMTU5M2EuLmY2NmMzM2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9hdG9tLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b20uYwo+ IEBAIC02Niw5ICs2NiwxMCBAQCBpbnQgYXRvbV9kZWJ1ZyA9IDA7Cj4gICBzdGF0aWMgaW50IGF0 b21fZXhlY3V0ZV90YWJsZV9sb2NrZWQoc3RydWN0IGF0b21fY29udGV4dCAqY3R4LCBpbnQgaW5k ZXgsIHVpbnQzMl90ICogcGFyYW1zKTsKPiAgIGludCBhdG9tX2V4ZWN1dGVfdGFibGUoc3RydWN0 IGF0b21fY29udGV4dCAqY3R4LCBpbnQgaW5kZXgsIHVpbnQzMl90ICogcGFyYW1zKTsKPiAgIAo+ IC1zdGF0aWMgdWludDMyX3QgYXRvbV9hcmdfbWFza1s4XSA9Cj4gLSAgICB7IDB4RkZGRkZGRkYs IDB4RkZGRiwgMHhGRkZGMDAsIDB4RkZGRjAwMDAsIDB4RkYsIDB4RkYwMCwgMHhGRjAwMDAsCj4g LTB4RkYwMDAwMDAgfTsKPiArc3RhdGljIHVpbnQzMl90IGF0b21fYXJnX21hc2tbOF0gPSB7Cj4g KwkweEZGRkZGRkZGLCAweDAwMDBGRkZGLCAweDAwRkZGRjAwLCAweEZGRkYwMDAwLAo+ICsJMHgw MDAwMDBGRiwgMHgwMDAwRkYwMCwgMHgwMEZGMDAwMCwgMHhGRjAwMDAwMAo+ICt9Owo+ICAgc3Rh dGljIGludCBhdG9tX2FyZ19zaGlmdFs4XSA9IHsgMCwgMCwgOCwgMTYsIDAsIDgsIDE2LCAyNCB9 Owo+ICAgCj4gICBzdGF0aWMgaW50IGF0b21fZHN0X3RvX3NyY1s4XVs0XSA9IHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwo+IGluZGV4IGUxODdiZWMuLmNmNjFlMDggMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYwo+IEBAIC0xNjY1LDExICsx NjY1LDExIEBAIGludCBhdG9tYmlvc19jcnRjX3NldF9iYXNlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywgaW50IHgsIGludCB5LAo+ICAgfQo+ICAgCj4gICBpbnQgYXRvbWJpb3NfY3J0Y19zZXRfYmFz ZV9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gKwkJCQkgIHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLAo+ICAgCQkJCSAgaW50IHgsIGludCB5LCBlbnVtIG1vZGVfc2V0 X2F0b21pYyBzdGF0ZSkKPiAgIHsKPiAtICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5kZXY7Cj4gLSAgICAgICBzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ICsJc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCj4gICAJaWYg KEFTSUNfSVNfRENFNChyZGV2KSkKPiAgIAkJcmV0dXJuIGRjZTRfY3J0Y19kb19zZXRfYmFzZShj cnRjLCBmYiwgeCwgeSwgMSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v YXRvbWJpb3NfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRvbWJpb3NfZHAuYwo+IGlu ZGV4IDQ0ZWU3MmUuLmFlMWFiNGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9hdG9tYmlvc19kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19k cC5jCj4gQEAgLTM3LDEwICszNywxMCBAQAo+ICAgI2RlZmluZSBEUF9EUENEX1NJWkUgRFBfUkVD RUlWRVJfQ0FQX1NJWkUKPiAgIAo+ICAgc3RhdGljIGNoYXIgKnZvbHRhZ2VfbmFtZXNbXSA9IHsK PiAtICAgICAgICAiMC40ViIsICIwLjZWIiwgIjAuOFYiLCAiMS4yViIKPiArCSIwLjRWIiwgIjAu NlYiLCAiMC44ViIsICIxLjJWIgo+ICAgfTsKPiAgIHN0YXRpYyBjaGFyICpwcmVfZW1waF9uYW1l c1tdID0gewo+IC0gICAgICAgICIwZEIiLCAiMy41ZEIiLCAiNmRCIiwgIjkuNWRCIgo+ICsJIjBk QiIsICIzLjVkQiIsICI2ZEIiLCAiOS41ZEIiCj4gICB9Owo+ICAgCj4gICAvKioqKiogcmFkZW9u IEFVWCBmdW5jdGlvbnMgKioqKiovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vYnRjX2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9idGNfZHBtLmMKPiBpbmRleCA2 OTU1NmY1Li4zOGU1MTIzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vYnRj X2RwbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9idGNfZHBtLmMKPiBAQCAtMTE2 MywxMiArMTE2MywxMSBAQCB1MzIgYnRjX3ZhbGlkX3NjbGtbNDBdID0KPiAgIAkxNTUwMDAsIDE2 MDAwMCwgMTY1MDAwLCAxNzAwMDAsIDE3NTAwMCwgMTgwMDAwLCAxODUwMDAsIDE5MDAwMCwgMTk1 MDAwLCAyMDAwMDAKPiAgIH07Cj4gICAKPiAtc3RhdGljIGNvbnN0IHN0cnVjdCByYWRlb25fYmxh Y2tsaXN0X2Nsb2NrcyBidGNfYmxhY2tsaXN0X2Nsb2Nrc1tdID0KPiAtewo+IC0gICAgICAgIHsg MTAwMDAsIDMwMDAwLCBSQURFT05fU0NMS19VUCB9LAo+IC0gICAgICAgIHsgMTUwMDAsIDMwMDAw LCBSQURFT05fU0NMS19VUCB9LAo+IC0gICAgICAgIHsgMjAwMDAsIDMwMDAwLCBSQURFT05fU0NM S19VUCB9LAo+IC0gICAgICAgIHsgMjUwMDAsIDMwMDAwLCBSQURFT05fU0NMS19VUCB9Cj4gK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgcmFkZW9uX2JsYWNrbGlzdF9jbG9ja3MgYnRjX2JsYWNrbGlzdF9j bG9ja3NbXSA9IHsKPiArCXsgMTAwMDAsIDMwMDAwLCBSQURFT05fU0NMS19VUCB9LAo+ICsJeyAx NTAwMCwgMzAwMDAsIFJBREVPTl9TQ0xLX1VQIH0sCj4gKwl7IDIwMDAwLCAzMDAwMCwgUkFERU9O X1NDTEtfVVAgfSwKPiArCXsgMjUwMDAsIDMwMDAwLCBSQURFT05fU0NMS19VUCB9Cj4gICB9Owo+ ICAgCj4gICB2b2lkIGJ0Y19nZXRfbWF4X2Nsb2NrX2Zyb21fdm9sdGFnZV9kZXBlbmRlbmN5X3Rh YmxlKHN0cnVjdCByYWRlb25fY2xvY2tfdm9sdGFnZV9kZXBlbmRlbmN5X3RhYmxlICp0YWJsZSwK PiBAQCAtMTYzNywxNCArMTYzNiwxNCBAQCBzdGF0aWMgaW50IGJ0Y19pbml0X3NtY190YWJsZShz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAljeXByZXNzX3BvcHVsYXRlX3NtY192b2x0 YWdlX3RhYmxlcyhyZGV2LCB0YWJsZSk7Cj4gICAKPiAgIAlzd2l0Y2ggKHJkZXYtPnBtLmludF90 aGVybWFsX3R5cGUpIHsKPiAtICAgICAgICBjYXNlIFRIRVJNQUxfVFlQRV9FVkVSR1JFRU46Cj4g LSAgICAgICAgY2FzZSBUSEVSTUFMX1RZUEVfRU1DMjEwM19XSVRIX0lOVEVSTkFMOgo+ICsJY2Fz ZSBUSEVSTUFMX1RZUEVfRVZFUkdSRUVOOgo+ICsJY2FzZSBUSEVSTUFMX1RZUEVfRU1DMjEwM19X SVRIX0lOVEVSTkFMOgo+ICAgCQl0YWJsZS0+dGhlcm1hbFByb3RlY3RUeXBlID0gUFBTTUNfVEhF Uk1BTF9QUk9URUNUX1RZUEVfSU5URVJOQUw7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2Ug VEhFUk1BTF9UWVBFX05PTkU6Cj4gKwljYXNlIFRIRVJNQUxfVFlQRV9OT05FOgo+ICAgCQl0YWJs ZS0+dGhlcm1hbFByb3RlY3RUeXBlID0gUFBTTUNfVEhFUk1BTF9QUk9URUNUX1RZUEVfTk9ORTsK PiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgZGVmYXVsdDoKPiArCWRlZmF1bHQ6Cj4gICAJCXRhYmxl LT50aGVybWFsUHJvdGVjdFR5cGUgPSBQUFNNQ19USEVSTUFMX1BST1RFQ1RfVFlQRV9FWFRFUk5B TDsKPiAgIAkJYnJlYWs7Cj4gICAJfQo+IEBAIC0xODYwLDM3ICsxODU5LDM3IEBAIHN0YXRpYyBi b29sIGJ0Y19jaGVja19zMF9tY19yZWdfaW5kZXgodTE2IGluX3JlZywgdTE2ICpvdXRfcmVnKQo+ ICAgCWNhc2UgTUNfU0VRX1JBU19USU1JTkcgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBNQ19TRVFf UkFTX1RJTUlOR19MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1NFUV9D QVNfVElNSU5HID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9DQVNfVElNSU5HID4+IDI6Cj4gICAJCSpv dXRfcmVnID0gTUNfU0VRX0NBU19USU1JTkdfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAg ICAgY2FzZSBNQ19TRVFfTUlTQ19USU1JTkcgPj4gMjoKPiArCWNhc2UgTUNfU0VRX01JU0NfVElN SU5HID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX01JU0NfVElNSU5HX0xQID4+IDI7Cj4g ICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2UgTUNfU0VRX01JU0NfVElNSU5HMiA+PiAyOgo+ICsJ Y2FzZSBNQ19TRVFfTUlTQ19USU1JTkcyID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX01J U0NfVElNSU5HMl9MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1NFUV9S RF9DVExfRDAgPj4gMjoKPiArCWNhc2UgTUNfU0VRX1JEX0NUTF9EMCA+PiAyOgo+ICAgCQkqb3V0 X3JlZyA9IE1DX1NFUV9SRF9DVExfRDBfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAg Y2FzZSBNQ19TRVFfUkRfQ1RMX0QxID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9SRF9DVExfRDEgPj4g MjoKPiAgIAkJKm91dF9yZWcgPSBNQ19TRVFfUkRfQ1RMX0QxX0xQID4+IDI7Cj4gICAJCWJyZWFr Owo+IC0gICAgICAgIGNhc2UgTUNfU0VRX1dSX0NUTF9EMCA+PiAyOgo+ICsJY2FzZSBNQ19TRVFf V1JfQ1RMX0QwID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX1dSX0NUTF9EMF9MUCA+PiAy Owo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1NFUV9XUl9DVExfRDEgPj4gMjoKPiAr CWNhc2UgTUNfU0VRX1dSX0NUTF9EMSA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9XUl9D VExfRDFfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgY2FzZSBNQ19QTUdfQ01EX0VN UlMgPj4gMjoKPiArCWNhc2UgTUNfUE1HX0NNRF9FTVJTID4+IDI6Cj4gICAJCSpvdXRfcmVnID0g TUNfU0VRX1BNR19DTURfRU1SU19MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNl IE1DX1BNR19DTURfTVJTID4+IDI6Cj4gKwljYXNlIE1DX1BNR19DTURfTVJTID4+IDI6Cj4gICAJ CSpvdXRfcmVnID0gTUNfU0VRX1BNR19DTURfTVJTX0xQID4+IDI7Cj4gICAJCWJyZWFrOwo+IC0g ICAgICAgIGNhc2UgTUNfUE1HX0NNRF9NUlMxID4+IDI6Cj4gKwljYXNlIE1DX1BNR19DTURfTVJT MSA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9QTUdfQ01EX01SUzFfTFAgPj4gMjsKPiAg IAkJYnJlYWs7Cj4gLSAgICAgICAgZGVmYXVsdDoKPiArCWRlZmF1bHQ6Cj4gICAJCXJlc3VsdCA9 IGZhbHNlOwo+ICAgCQlicmVhazsKPiAgIAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vY2lfZHBtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2NpX2RwbS5jCj4gaW5k ZXggNGEwOTk0Ny4uMzVlMGZjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L2NpX2RwbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaV9kcG0uYwo+IEBAIC0x OTIsOSArMTkyLDkgQEAgc3RhdGljIHZvaWQgY2lfZmFuX2N0cmxfc2V0X2RlZmF1bHRfbW9kZShz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4gICAKPiAgIHN0YXRpYyBzdHJ1Y3QgY2lfcG93 ZXJfaW5mbyAqY2lfZ2V0X3BpKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgewo+IC0g ICAgICAgIHN0cnVjdCBjaV9wb3dlcl9pbmZvICpwaSA9IHJkZXYtPnBtLmRwbS5wcml2Owo+ICsJ c3RydWN0IGNpX3Bvd2VyX2luZm8gKnBpID0gcmRldi0+cG0uZHBtLnByaXY7Cj4gICAKPiAtICAg ICAgICByZXR1cm4gcGk7Cj4gKwlyZXR1cm4gcGk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBzdHJ1 Y3QgY2lfcHMgKmNpX2dldF9wcyhzdHJ1Y3QgcmFkZW9uX3BzICpycHMpCj4gQEAgLTE2MzIsNyAr MTYzMiw3IEBAIHN0YXRpYyBpbnQgY2lfbm90aWZ5X2h3X29mX3Bvd2VyX3NvdXJjZShzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAllbHNlCj4gICAJCXBvd2VyX2xpbWl0ID0gKHUzMiko Y2FjX3RkcF90YWJsZS0+YmF0dGVyeV9wb3dlcl9saW1pdCAqIDI1Nik7Cj4gICAKPiAtICAgICAg ICBjaV9zZXRfcG93ZXJfbGltaXQocmRldiwgcG93ZXJfbGltaXQpOwo+ICsJY2lfc2V0X3Bvd2Vy X2xpbWl0KHJkZXYsIHBvd2VyX2xpbWl0KTsKPiAgIAo+ICAgCWlmIChwaS0+Y2Fwc19hdXRvbWF0 aWNfZGNfdHJhbnNpdGlvbikgewo+ICAgCQlpZiAoYWNfcG93ZXIpCj4gQEAgLTIwMTcsOSArMjAx Nyw5IEBAIHN0YXRpYyB2b2lkIGNpX2VuYWJsZV9kaXNwbGF5X2dhcChzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldikKPiAgIHsKPiAgIAl1MzIgdG1wID0gUlJFRzMyX1NNQyhDR19ESVNQTEFZX0dB UF9DTlRMKTsKPiAgIAo+IC0gICAgICAgIHRtcCAmPSB+KERJU1BfR0FQX01BU0sgfCBESVNQX0dB UF9NQ0hHX01BU0spOwo+IC0gICAgICAgIHRtcCB8PSAoRElTUF9HQVAoUjYwMF9QTV9ESVNQTEFZ X0dBUF9JR05PUkUpIHwKPiAtICAgICAgICAgICAgICAgIERJU1BfR0FQX01DSEcoUjYwMF9QTV9E SVNQTEFZX0dBUF9WQkxBTkspKTsKPiArCXRtcCAmPSB+KERJU1BfR0FQX01BU0sgfCBESVNQX0dB UF9NQ0hHX01BU0spOwo+ICsJdG1wIHw9IChESVNQX0dBUChSNjAwX1BNX0RJU1BMQVlfR0FQX0lH Tk9SRSkgfAo+ICsJCURJU1BfR0FQX01DSEcoUjYwMF9QTV9ESVNQTEFZX0dBUF9WQkxBTkspKTsK PiAgIAo+ICAgCVdSRUczMl9TTUMoQ0dfRElTUExBWV9HQVBfQ05UTCwgdG1wKTsKPiAgIH0KPiBA QCAtMjkzOCw4ICsyOTM4LDggQEAgc3RhdGljIGludCBjaV9wb3B1bGF0ZV9zaW5nbGVfbWVtb3J5 X2xldmVsKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCj4gICAJbWVtb3J5X2xldmVs LT5NaW5WZGRjID0gY3B1X3RvX2JlMzIobWVtb3J5X2xldmVsLT5NaW5WZGRjICogVk9MVEFHRV9T Q0FMRSk7Cj4gICAJbWVtb3J5X2xldmVsLT5NaW5WZGRjUGhhc2VzID0gY3B1X3RvX2JlMzIobWVt b3J5X2xldmVsLT5NaW5WZGRjUGhhc2VzKTsKPiAtICAgICAgICBtZW1vcnlfbGV2ZWwtPk1pblZk ZGNpID0gY3B1X3RvX2JlMzIobWVtb3J5X2xldmVsLT5NaW5WZGRjaSAqIFZPTFRBR0VfU0NBTEUp Owo+IC0gICAgICAgIG1lbW9yeV9sZXZlbC0+TWluTXZkZCA9IGNwdV90b19iZTMyKG1lbW9yeV9s ZXZlbC0+TWluTXZkZCAqIFZPTFRBR0VfU0NBTEUpOwo+ICsJbWVtb3J5X2xldmVsLT5NaW5WZGRj aSA9IGNwdV90b19iZTMyKG1lbW9yeV9sZXZlbC0+TWluVmRkY2kgKiBWT0xUQUdFX1NDQUxFKTsK PiArCW1lbW9yeV9sZXZlbC0+TWluTXZkZCA9IGNwdV90b19iZTMyKG1lbW9yeV9sZXZlbC0+TWlu TXZkZCAqIFZPTFRBR0VfU0NBTEUpOwo+ICAgCj4gICAJbWVtb3J5X2xldmVsLT5NY2xrRnJlcXVl bmN5ID0gY3B1X3RvX2JlMzIobWVtb3J5X2xldmVsLT5NY2xrRnJlcXVlbmN5KTsKPiAgIAltZW1v cnlfbGV2ZWwtPkFjdGl2aXR5TGV2ZWwgPSBjcHVfdG9fYmUxNihtZW1vcnlfbGV2ZWwtPkFjdGl2 aXR5TGV2ZWwpOwo+IEBAIC0zMTUyLDcgKzMxNTIsNyBAQCBzdGF0aWMgaW50IGNpX2NhbGN1bGF0 ZV9zY2xrX3BhcmFtcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAo+ICAgCXNwbGxf ZnVuY19jbnRsXzMgJj0gflNQTExfRkJfRElWX01BU0s7Cj4gICAJc3BsbF9mdW5jX2NudGxfMyB8 PSBTUExMX0ZCX0RJVihmYmRpdik7Cj4gLSAgICAgICAgc3BsbF9mdW5jX2NudGxfMyB8PSBTUExM X0RJVEhFTjsKPiArCXNwbGxfZnVuY19jbnRsXzMgfD0gU1BMTF9ESVRIRU47Cj4gICAKPiAgIAlp ZiAocGktPmNhcHNfc2Nsa19zc19zdXBwb3J0KSB7Cj4gICAJCXN0cnVjdCByYWRlb25fYXRvbV9z cyBzczsKPiBAQCAtMzIyOSw3ICszMjI5LDcgQEAgc3RhdGljIGludCBjaV9wb3B1bGF0ZV9zaW5n bGVfZ3JhcGhpY19sZXZlbChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAlncmFwaGlj X2xldmVsLT5EaXNwbGF5V2F0ZXJtYXJrID0gUFBTTUNfRElTUExBWV9XQVRFUk1BUktfTE9XOwo+ ICAgCj4gICAJZ3JhcGhpY19sZXZlbC0+RmxhZ3MgPSBjcHVfdG9fYmUzMihncmFwaGljX2xldmVs LT5GbGFncyk7Cj4gLSAgICAgICAgZ3JhcGhpY19sZXZlbC0+TWluVmRkYyA9IGNwdV90b19iZTMy KGdyYXBoaWNfbGV2ZWwtPk1pblZkZGMgKiBWT0xUQUdFX1NDQUxFKTsKPiArCWdyYXBoaWNfbGV2 ZWwtPk1pblZkZGMgPSBjcHVfdG9fYmUzMihncmFwaGljX2xldmVsLT5NaW5WZGRjICogVk9MVEFH RV9TQ0FMRSk7Cj4gICAJZ3JhcGhpY19sZXZlbC0+TWluVmRkY1BoYXNlcyA9IGNwdV90b19iZTMy KGdyYXBoaWNfbGV2ZWwtPk1pblZkZGNQaGFzZXMpOwo+ICAgCWdyYXBoaWNfbGV2ZWwtPlNjbGtG cmVxdWVuY3kgPSBjcHVfdG9fYmUzMihncmFwaGljX2xldmVsLT5TY2xrRnJlcXVlbmN5KTsKPiAg IAlncmFwaGljX2xldmVsLT5BY3Rpdml0eUxldmVsID0gY3B1X3RvX2JlMTYoZ3JhcGhpY19sZXZl bC0+QWN0aXZpdHlMZXZlbCk7Cj4gQEAgLTQzOTMsNyArNDM5Myw3IEBAIHN0YXRpYyBib29sIGNp X2NoZWNrX3MwX21jX3JlZ19pbmRleCh1MTYgaW5fcmVnLCB1MTYgKm91dF9yZWcpCj4gICAJCWJy ZWFrOwo+ICAgCWNhc2UgTUNfU0VRX0NBU19USU1JTkcgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBN Q19TRVFfQ0FTX1RJTUlOR19MUCA+PiAyOwo+IC0gICAgICAgICAgICBicmVhazsKPiArCQlicmVh azsKPiAgIAljYXNlIE1DX1NFUV9NSVNDX1RJTUlORyA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1D X1NFUV9NSVNDX1RJTUlOR19MUCA+PiAyOwo+ICAgCQlicmVhazsKPiBAQCAtNDYyNSw3ICs0NjI1 LDcgQEAgc3RhdGljIGludCBjaV9pbml0aWFsaXplX21jX3JlZ190YWJsZShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldikKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3RvIGluaXRfbWNfZG9uZTsKPiAg IAo+IC0gICAgICAgIHJldCA9IGNpX2NvcHlfdmJpb3NfbWNfcmVnX3RhYmxlKHRhYmxlLCBjaV90 YWJsZSk7Cj4gKwlyZXQgPSBjaV9jb3B5X3ZiaW9zX21jX3JlZ190YWJsZSh0YWJsZSwgY2lfdGFi bGUpOwo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8gaW5pdF9tY19kb25lOwo+ICAgCj4gQEAgLTQ5 MTYsNyArNDkxNiw3IEBAIHN0YXRpYyBpbnQgY2lfc2V0X3ByaXZhdGVfZGF0YV92YXJpYWJsZXNf YmFzZWRfb25fcHB0YWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqCj4gICAJCWFsbG93ZWRfbWNs a192ZGRjX3RhYmxlLT5lbnRyaWVzW2FsbG93ZWRfc2Nsa192ZGRjX3RhYmxlLT5jb3VudCAtIDFd LmNsazsKPiAgIAlyZGV2LT5wbS5kcG0uZHluX3N0YXRlLm1heF9jbG9ja192b2x0YWdlX29uX2Fj LnZkZGMgPQo+ICAgCQlhbGxvd2VkX3NjbGtfdmRkY190YWJsZS0+ZW50cmllc1thbGxvd2VkX3Nj bGtfdmRkY190YWJsZS0+Y291bnQgLSAxXS52Owo+IC0gICAgICAgIHJkZXYtPnBtLmRwbS5keW5f c3RhdGUubWF4X2Nsb2NrX3ZvbHRhZ2Vfb25fYWMudmRkY2kgPQo+ICsJcmRldi0+cG0uZHBtLmR5 bl9zdGF0ZS5tYXhfY2xvY2tfdm9sdGFnZV9vbl9hYy52ZGRjaSA9Cj4gICAJCWFsbG93ZWRfbWNs a192ZGRjaV90YWJsZS0+ZW50cmllc1thbGxvd2VkX21jbGtfdmRkY2lfdGFibGUtPmNvdW50IC0g MV0udjsKPiAgIAo+ICAgCXJldHVybiAwOwo+IEBAIC01NTE3LDcgKzU1MTcsNyBAQCBzdGF0aWMg aW50IGNpX3BhcnNlX3Bvd2VyX3RhYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAg CXN0cnVjdCBfTm9uQ2xvY2tJbmZvQXJyYXkgKm5vbl9jbG9ja19pbmZvX2FycmF5Owo+ICAgCXVu aW9uIHBvd2VyX2luZm8gKnBvd2VyX2luZm87Cj4gICAJaW50IGluZGV4ID0gR2V0SW5kZXhJbnRv TWFzdGVyVGFibGUoREFUQSwgUG93ZXJQbGF5SW5mbyk7Cj4gLSAgICAgICAgdTE2IGRhdGFfb2Zm c2V0Owo+ICsJdTE2IGRhdGFfb2Zmc2V0Owo+ICAgCXU4IGZyZXYsIGNyZXY7Cj4gICAJdTggKnBv d2VyX3N0YXRlX29mZnNldDsKPiAgIAlzdHJ1Y3QgY2lfcHMgKnBzOwo+IEBAIC01NjkzLDggKzU2 OTMsOCBAQCBpbnQgY2lfZHBtX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJ CXJldHVybiByZXQ7Cj4gICAJfQo+ICAgCj4gLSAgICAgICAgcGktPmRsbF9kZWZhdWx0X29uID0g ZmFsc2U7Cj4gLSAgICAgICAgcGktPnNyYW1fZW5kID0gU01DX1JBTV9FTkQ7Cj4gKwlwaS0+ZGxs X2RlZmF1bHRfb24gPSBmYWxzZTsKPiArCXBpLT5zcmFtX2VuZCA9IFNNQ19SQU1fRU5EOwo+ICAg Cj4gICAJcGktPmFjdGl2aXR5X3RhcmdldFswXSA9IENJU0xBTkRfVEFSR0VUQUNUSVZJVFlfREZM VDsKPiAgIAlwaS0+YWN0aXZpdHlfdGFyZ2V0WzFdID0gQ0lTTEFORF9UQVJHRVRBQ1RJVklUWV9E RkxUOwo+IEBAIC01NzM0LDkgKzU3MzQsOSBAQCBpbnQgY2lfZHBtX2luaXQoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYpCj4gICAJcGktPmNhcHNfdXZkX2RwbSA9IHRydWU7Cj4gICAJcGktPmNh cHNfdmNlX2RwbSA9IHRydWU7Cj4gICAKPiAtICAgICAgICBjaV9nZXRfbGVha2FnZV92b2x0YWdl cyhyZGV2KTsKPiAtICAgICAgICBjaV9wYXRjaF9kZXBlbmRlbmN5X3RhYmxlc193aXRoX2xlYWth Z2UocmRldik7Cj4gLSAgICAgICAgY2lfc2V0X3ByaXZhdGVfZGF0YV92YXJpYWJsZXNfYmFzZWRf b25fcHB0YWJsZShyZGV2KTsKPiArCWNpX2dldF9sZWFrYWdlX3ZvbHRhZ2VzKHJkZXYpOwo+ICsJ Y2lfcGF0Y2hfZGVwZW5kZW5jeV90YWJsZXNfd2l0aF9sZWFrYWdlKHJkZXYpOwo+ICsJY2lfc2V0 X3ByaXZhdGVfZGF0YV92YXJpYWJsZXNfYmFzZWRfb25fcHB0YWJsZShyZGV2KTsKPiAgIAo+ICAg CXJkZXYtPnBtLmRwbS5keW5fc3RhdGUudmRkY19kZXBlbmRlbmN5X29uX2Rpc3BjbGsuZW50cmll cyA9Cj4gICAJCWt6YWxsb2MoNCAqIHNpemVvZihzdHJ1Y3QgcmFkZW9uX2Nsb2NrX3ZvbHRhZ2Vf ZGVwZW5kZW5jeV9lbnRyeSksIEdGUF9LRVJORUwpOwo+IEBAIC01ODM5LDcgKzU4MzksNyBAQCBp bnQgY2lfZHBtX2luaXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJCQlwaS0+dmRk Y2lfY29udHJvbCA9IENJU0xBTkRTX1ZPTFRBR0VfQ09OVFJPTF9CWV9TVklEMjsKPiAgIAkJZWxz ZQo+ICAgCQkJcmRldi0+cG0uZHBtLnBsYXRmb3JtX2NhcHMgJj0gfkFUT01fUFBfUExBVEZPUk1f Q0FQX1ZERENJX0NPTlRST0w7Cj4gLSAgICAgICAgfQo+ICsJfQo+ICAgCj4gICAJaWYgKHJkZXYt PnBtLmRwbS5wbGF0Zm9ybV9jYXBzICYgQVRPTV9QUF9QTEFURk9STV9DQVBfTVZERENPTlRST0wp IHsKPiAgIAkJaWYgKHJhZGVvbl9hdG9tX2lzX3ZvbHRhZ2VfZ3BpbyhyZGV2LCBWT0xUQUdFX1RZ UEVfTVZEREMsIFZPTFRBR0VfT0JKX0dQSU9fTFVUKSkKPiBAQCAtNTg2MCw3ICs1ODYwLDcgQEAg aW50IGNpX2RwbV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgI2VuZGlmCj4g ICAKPiAgIAlpZiAoYXRvbV9wYXJzZV9kYXRhX2hlYWRlcihyZGV2LT5tb2RlX2luZm8uYXRvbV9j b250ZXh0LCBpbmRleCwgJnNpemUsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmZyZXYsICZjcmV2LCAmZGF0YV9vZmZzZXQpKSB7Cj4gKwkJCQkgICAmZnJldiwgJmNyZXYs ICZkYXRhX29mZnNldCkpIHsKPiAgIAkJcGktPmNhcHNfc2Nsa19zc19zdXBwb3J0ID0gdHJ1ZTsK PiAgIAkJcGktPmNhcHNfbWNsa19zc19zdXBwb3J0ID0gdHJ1ZTsKPiAgIAkJcGktPmR5bmFtaWNf c3MgPSB0cnVlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2NpX3NtYy5j IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaV9zbWMuYwo+IGluZGV4IDM1YzZmNjQuLjI0NzYw ZWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaV9zbWMuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lfc21jLmMKPiBAQCAtMTk0LDExICsxOTQsMTEgQEAg UFBTTUNfUmVzdWx0IGNpX3dhaXRfZm9yX3NtY19pbmFjdGl2ZShzdHJ1Y3QgcmFkZW9uX2Rldmlj ZSAqcmRldikKPiAgIAkJcmV0dXJuIFBQU01DX1Jlc3VsdF9PSzsKPiAgIAo+ICAgCWZvciAoaSA9 IDA7IGkgPCByZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewo+IC0gICAgICAgICAgICAgICAgdG1w ID0gUlJFRzMyX1NNQyhTTUNfU1lTQ09OX0NMT0NLX0NOVExfMCk7Cj4gLSAgICAgICAgICAgICAg ICBpZiAoKHRtcCAmIENLRU4pID09IDApCj4gKwkJdG1wID0gUlJFRzMyX1NNQyhTTUNfU1lTQ09O X0NMT0NLX0NOVExfMCk7Cj4gKwkJaWYgKCh0bXAgJiBDS0VOKSA9PSAwKQo+ICAgCQkJYnJlYWs7 Cj4gLSAgICAgICAgICAgICAgICB1ZGVsYXkoMSk7Cj4gLSAgICAgICAgfQo+ICsJCXVkZWxheSgx KTsKPiArCX0KPiAgIAo+ICAgCXJldHVybiBQUFNNQ19SZXN1bHRfT0s7Cj4gICB9Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vY2lrLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL2Npay5jCj4gaW5kZXggMDYwMDE0MC4uZjJhNGMwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2Npay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsu Ywo+IEBAIC0xNzEyLDcgKzE3MTIsNyBAQCBzdGF0aWMgdm9pZCBjaWtfaW5pdF9nb2xkZW5fcmVn aXN0ZXJzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgICovCj4gICB1MzIgY2lrX2dl dF94Y2xrKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgewo+IC0gICAgICAgIHUzMiBy ZWZlcmVuY2VfY2xvY2sgPSByZGV2LT5jbG9jay5zcGxsLnJlZmVyZW5jZV9mcmVxOwo+ICsJdTMy IHJlZmVyZW5jZV9jbG9jayA9IHJkZXYtPmNsb2NrLnNwbGwucmVmZXJlbmNlX2ZyZXE7Cj4gICAK PiAgIAlpZiAocmRldi0+ZmxhZ3MgJiBSQURFT05fSVNfSUdQKSB7Cj4gICAJCWlmIChSUkVHMzJf U01DKEdFTkVSQUxfUFdSTUdUKSAmIEdQVV9DT1VOVEVSX0NMSykKPiBAQCAtOTcwOSwxMyArOTcw OSwxMyBAQCB1aW50NjRfdCBjaWtfZ2V0X2dwdV9jbG9ja19jb3VudGVyKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2KQo+ICAgCW11dGV4X2xvY2soJnJkZXYtPmdwdV9jbG9ja19tdXRleCk7Cj4g ICAJV1JFRzMyKFJMQ19DQVBUVVJFX0dQVV9DTE9DS19DT1VOVCwgMSk7Cj4gICAJY2xvY2sgPSAo dWludDY0X3QpUlJFRzMyKFJMQ19HUFVfQ0xPQ0tfQ09VTlRfTFNCKSB8Cj4gLQkgICAgICAgICgo dWludDY0X3QpUlJFRzMyKFJMQ19HUFVfQ0xPQ0tfQ09VTlRfTVNCKSA8PCAzMlVMTCk7Cj4gKwkJ KCh1aW50NjRfdClSUkVHMzIoUkxDX0dQVV9DTE9DS19DT1VOVF9NU0IpIDw8IDMyVUxMKTsKPiAg IAltdXRleF91bmxvY2soJnJkZXYtPmdwdV9jbG9ja19tdXRleCk7Cj4gICAJcmV0dXJuIGNsb2Nr Owo+ICAgfQo+ICAgCj4gICBzdGF0aWMgaW50IGNpa19zZXRfdXZkX2Nsb2NrKHN0cnVjdCByYWRl b25fZGV2aWNlICpyZGV2LCB1MzIgY2xvY2ssCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHUzMiBjbnRsX3JlZywgdTMyIHN0YXR1c19yZWcpCj4gKwkJCSAgICAgdTMyIGNudGxfcmVn LCB1MzIgc3RhdHVzX3JlZykKPiAgIHsKPiAgIAlpbnQgciwgaTsKPiAgIAlzdHJ1Y3QgYXRvbV9j bG9ja19kaXZpZGVycyBkaXZpZGVyczsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9jeXByZXNzX2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jeXByZXNzX2RwbS5j Cj4gaW5kZXggY2EwNTg1OC4uYTRlZGQwNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL2N5cHJlc3NfZHBtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2N5cHJl c3NfZHBtLmMKPiBAQCAtMTYyMCwxNCArMTYyMCwxNCBAQCBzdGF0aWMgaW50IGN5cHJlc3NfaW5p dF9zbWNfdGFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJY3lwcmVzc19wb3B1 bGF0ZV9zbWNfdm9sdGFnZV90YWJsZXMocmRldiwgdGFibGUpOwo+ICAgCj4gICAJc3dpdGNoIChy ZGV2LT5wbS5pbnRfdGhlcm1hbF90eXBlKSB7Cj4gLSAgICAgICAgY2FzZSBUSEVSTUFMX1RZUEVf RVZFUkdSRUVOOgo+IC0gICAgICAgIGNhc2UgVEhFUk1BTF9UWVBFX0VNQzIxMDNfV0lUSF9JTlRF Uk5BTDoKPiArCWNhc2UgVEhFUk1BTF9UWVBFX0VWRVJHUkVFTjoKPiArCWNhc2UgVEhFUk1BTF9U WVBFX0VNQzIxMDNfV0lUSF9JTlRFUk5BTDoKPiAgIAkJdGFibGUtPnRoZXJtYWxQcm90ZWN0VHlw ZSA9IFBQU01DX1RIRVJNQUxfUFJPVEVDVF9UWVBFX0lOVEVSTkFMOwo+ICAgCQlicmVhazsKPiAt ICAgICAgICBjYXNlIFRIRVJNQUxfVFlQRV9OT05FOgo+ICsJY2FzZSBUSEVSTUFMX1RZUEVfTk9O RToKPiAgIAkJdGFibGUtPnRoZXJtYWxQcm90ZWN0VHlwZSA9IFBQU01DX1RIRVJNQUxfUFJPVEVD VF9UWVBFX05PTkU7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGRlZmF1bHQ6Cj4gKwlkZWZhdWx0 Ogo+ICAgCQl0YWJsZS0+dGhlcm1hbFByb3RlY3RUeXBlID0gUFBTTUNfVEhFUk1BTF9QUk9URUNU X1RZUEVfRVhURVJOQUw7Cj4gICAJCWJyZWFrOwo+ICAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZl cmdyZWVuLmMKPiBpbmRleCAyYWQ0NjI4Li43NmM0YmRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L2V2ZXJncmVlbi5jCj4gQEAgLTExNDAsNyArMTE0MCw3IEBAIHN0YXRpYyBpbnQgc3Vtb19zZXRf dXZkX2Nsb2NrKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCB1MzIgY2xvY2ssCj4gICAJaW50 IHIsIGk7Cj4gICAJc3RydWN0IGF0b21fY2xvY2tfZGl2aWRlcnMgZGl2aWRlcnM7Cj4gICAKPiAt ICAgICAgICByID0gcmFkZW9uX2F0b21fZ2V0X2Nsb2NrX2RpdmlkZXJzKHJkZXYsIENPTVBVVEVf RU5HSU5FX1BMTF9QQVJBTSwKPiArCXIgPSByYWRlb25fYXRvbV9nZXRfY2xvY2tfZGl2aWRlcnMo cmRldiwgQ09NUFVURV9FTkdJTkVfUExMX1BBUkFNLAo+ICAgCQkJCQkgICBjbG9jaywgZmFsc2Us ICZkaXZpZGVycyk7Cj4gICAJaWYgKHIpCj4gICAJCXJldHVybiByOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbl9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9ldmVyZ3JlZW5fY3MuYwo+IGluZGV4IDQ2Zjg3ZDQuLjllOTMyMDUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ldmVyZ3JlZW5fY3MuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2NzLmMKPiBAQCAtMTgxNiw4ICsxODE2LDggQEAgc3Rh dGljIGludCBldmVyZ3JlZW5fcGFja2V0M19jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAq cCwKPiAgIAkJfQo+ICAgCj4gICAJCW9mZnNldCA9IHJlbG9jLT5ncHVfb2Zmc2V0ICsKPiAtCQkg ICAgICAgICAoaWR4X3ZhbHVlICYgMHhmZmZmZmZmMCkgKwo+IC0JCSAgICAgICAgICgodTY0KSh0 bXAgJiAweGZmKSA8PCAzMik7Cj4gKwkJCSAoaWR4X3ZhbHVlICYgMHhmZmZmZmZmMCkgKwo+ICsJ CQkgKCh1NjQpKHRtcCAmIDB4ZmYpIDw8IDMyKTsKPiAgIAo+ICAgCQlpYltpZHggKyAwXSA9IG9m ZnNldDsKPiAgIAkJaWJbaWR4ICsgMV0gPSAodG1wICYgMHhmZmZmZmYwMCkgfCAodXBwZXJfMzJf Yml0cyhvZmZzZXQpICYgMHhmZik7Cj4gQEAgLTE4NjIsOCArMTg2Miw4IEBAIHN0YXRpYyBpbnQg ZXZlcmdyZWVuX3BhY2tldDNfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCj4gICAJ CX0KPiAgIAo+ICAgCQlvZmZzZXQgPSByZWxvYy0+Z3B1X29mZnNldCArCj4gLQkJICAgICAgICAg aWR4X3ZhbHVlICsKPiAtCQkgICAgICAgICAoKHU2NCkocmFkZW9uX2dldF9pYl92YWx1ZShwLCBp ZHgrMSkgJiAweGZmKSA8PCAzMik7Cj4gKwkJCSBpZHhfdmFsdWUgKwo+ICsJCQkgKCh1NjQpKHJh ZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KzEpICYgMHhmZikgPDwgMzIpOwo+ICAgCj4gICAJCWli W2lkeCswXSA9IG9mZnNldDsKPiAgIAkJaWJbaWR4KzFdID0gdXBwZXJfMzJfYml0cyhvZmZzZXQp ICYgMHhmZjsKPiBAQCAtMTg5Nyw4ICsxODk3LDggQEAgc3RhdGljIGludCBldmVyZ3JlZW5fcGFj a2V0M19jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKPiAgIAkJfQo+ICAgCj4gICAJ CW9mZnNldCA9IHJlbG9jLT5ncHVfb2Zmc2V0ICsKPiAtCQkgICAgICAgICBpZHhfdmFsdWUgKwo+ IC0JCSAgICAgICAgICgodTY0KShyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsxKSAmIDB4ZmYp IDw8IDMyKTsKPiArCQkJIGlkeF92YWx1ZSArCj4gKwkJCSAoKHU2NCkocmFkZW9uX2dldF9pYl92 YWx1ZShwLCBpZHgrMSkgJiAweGZmKSA8PCAzMik7Cj4gICAKPiAgIAkJaWJbaWR4KzBdID0gb2Zm c2V0Owo+ICAgCQlpYltpZHgrMV0gPSB1cHBlcl8zMl9iaXRzKG9mZnNldCkgJiAweGZmOwo+IEBA IC0xOTI1LDggKzE5MjUsOCBAQCBzdGF0aWMgaW50IGV2ZXJncmVlbl9wYWNrZXQzX2NoZWNrKHN0 cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAo+ICAgCQl9Cj4gICAKPiAgIAkJb2Zmc2V0ID0gcmVs b2MtPmdwdV9vZmZzZXQgKwo+IC0JCSAgICAgICAgIHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4 KzEpICsKPiAtCQkgICAgICAgICAoKHU2NCkocmFkZW9uX2dldF9pYl92YWx1ZShwLCBpZHgrMikg JiAweGZmKSA8PCAzMik7Cj4gKwkJCSByYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsxKSArCj4g KwkJCSAoKHU2NCkocmFkZW9uX2dldF9pYl92YWx1ZShwLCBpZHgrMikgJiAweGZmKSA8PCAzMik7 Cj4gICAKPiAgIAkJaWJbaWR4KzFdID0gb2Zmc2V0Owo+ICAgCQlpYltpZHgrMl0gPSB1cHBlcl8z Ml9iaXRzKG9mZnNldCkgJiAweGZmOwo+IEBAIC0yMDk4LDggKzIwOTgsOCBAQCBzdGF0aWMgaW50 IGV2ZXJncmVlbl9wYWNrZXQzX2NoZWNrKHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAo+ICAg CQkJfQo+ICAgCj4gICAJCQlvZmZzZXQgPSByZWxvYy0+Z3B1X29mZnNldCArCj4gLQkJCSAgICAg ICAgIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsxKSAmIDB4ZmZmZmZmZmMpICsKPiAtCQkJ ICAgICAgICAgKCh1NjQpKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KzIpICYgMHhmZikgPDwg MzIpOwo+ICsJCQkJIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsxKSAmIDB4ZmZmZmZmZmMp ICsKPiArCQkJCSAoKHU2NCkocmFkZW9uX2dldF9pYl92YWx1ZShwLCBpZHgrMikgJiAweGZmKSA8 PCAzMik7Cj4gICAKPiAgIAkJCWliW2lkeCsxXSA9IChpYltpZHgrMV0gJiAweDMpIHwgKG9mZnNl dCAmIDB4ZmZmZmZmZmMpOwo+ICAgCQkJaWJbaWR4KzJdID0gdXBwZXJfMzJfYml0cyhvZmZzZXQp ICYgMHhmZjsKPiBAQCAtMjIzOSw4ICsyMjM5LDggQEAgc3RhdGljIGludCBldmVyZ3JlZW5fcGFj a2V0M19jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKPiAgIAkJCQlyZXR1cm4gLUVJ TlZBTDsKPiAgIAkJCX0KPiAgIAkJCW9mZnNldCA9IHJlbG9jLT5ncHVfb2Zmc2V0ICsKPiAtCQkJ ICAgICAgICAgKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KzEpICYgMHhmZmZmZmZmOCkgKwo+ IC0JCQkgICAgICAgICAoKHU2NCkocmFkZW9uX2dldF9pYl92YWx1ZShwLCBpZHgrMikgJiAweGZm KSA8PCAzMik7Cj4gKwkJCQkgKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KzEpICYgMHhmZmZm ZmZmOCkgKwo+ICsJCQkJICgodTY0KShyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsyKSAmIDB4 ZmYpIDw8IDMyKTsKPiAgIAo+ICAgCQkJaWJbaWR4KzFdID0gb2Zmc2V0ICYgMHhmZmZmZmZmODsK PiAgIAkJCWliW2lkeCsyXSA9IHVwcGVyXzMyX2JpdHMob2Zmc2V0KSAmIDB4ZmY7Cj4gQEAgLTIy NjEsOCArMjI2MSw4IEBAIHN0YXRpYyBpbnQgZXZlcmdyZWVuX3BhY2tldDNfY2hlY2soc3RydWN0 IHJhZGVvbl9jc19wYXJzZXIgKnAsCj4gICAJCX0KPiAgIAo+ICAgCQlvZmZzZXQgPSByZWxvYy0+ Z3B1X29mZnNldCArCj4gLQkJICAgICAgICAgKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KzEp ICYgMHhmZmZmZmZmYykgKwo+IC0JCSAgICAgICAgICgodTY0KShyYWRlb25fZ2V0X2liX3ZhbHVl KHAsIGlkeCsyKSAmIDB4ZmYpIDw8IDMyKTsKPiArCQkJIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAs IGlkeCsxKSAmIDB4ZmZmZmZmZmMpICsKPiArCQkJICgodTY0KShyYWRlb25fZ2V0X2liX3ZhbHVl KHAsIGlkeCsyKSAmIDB4ZmYpIDw8IDMyKTsKPiAgIAo+ICAgCQlpYltpZHgrMV0gPSBvZmZzZXQg JiAweGZmZmZmZmZjOwo+ICAgCQlpYltpZHgrMl0gPSAoaWJbaWR4KzJdICYgMHhmZmZmZmYwMCkg fCAodXBwZXJfMzJfYml0cyhvZmZzZXQpICYgMHhmZik7Cj4gQEAgLTIyODMsOCArMjI4Myw4IEBA IHN0YXRpYyBpbnQgZXZlcmdyZWVuX3BhY2tldDNfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJz ZXIgKnAsCj4gICAJCX0KPiAgIAo+ICAgCQlvZmZzZXQgPSByZWxvYy0+Z3B1X29mZnNldCArCj4g LQkJICAgICAgICAgKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KzEpICYgMHhmZmZmZmZmYykg Kwo+IC0JCSAgICAgICAgICgodTY0KShyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsyKSAmIDB4 ZmYpIDw8IDMyKTsKPiArCQkJIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsxKSAmIDB4ZmZm ZmZmZmMpICsKPiArCQkJICgodTY0KShyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsyKSAmIDB4 ZmYpIDw8IDMyKTsKPiAgIAo+ICAgCQlpYltpZHgrMV0gPSBvZmZzZXQgJiAweGZmZmZmZmZjOwo+ ICAgCQlpYltpZHgrMl0gPSAoaWJbaWR4KzJdICYgMHhmZmZmZmYwMCkgfCAodXBwZXJfMzJfYml0 cyhvZmZzZXQpICYgMHhmZik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v ZXZlcmdyZWVuX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuX2hkbWku Ywo+IGluZGV4IDNjZjA0YTIuLmY3NjZjOTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9ldmVyZ3JlZW5faGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9l dmVyZ3JlZW5faGRtaS5jCj4gQEAgLTIwNiw3ICsyMDYsNyBAQCB2b2lkIGV2ZXJncmVlbl9oZG1p X3dyaXRlX3NhZF9yZWdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgICAqIGJ1aWxk IGEgQVZJIEluZm8gRnJhbWUKPiAgICAqLwo+ICAgdm9pZCBldmVyZ3JlZW5fc2V0X2F2aV9wYWNr ZXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHUzMiBvZmZzZXQsCj4gLSAgICB1bnNpZ25l ZCBjaGFyICpidWZmZXIsIHNpemVfdCBzaXplKQo+ICsJCQkgICAgICB1bnNpZ25lZCBjaGFyICpi dWZmZXIsIHNpemVfdCBzaXplKQo+ICAgewo+ICAgCXVpbnQ4X3QgKmZyYW1lID0gYnVmZmVyICsg MzsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2t2X2RwbS5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9rdl9kcG0uYwo+IGluZGV4IDJkNzFkYTQuLmQwMjQwNzQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9rdl9kcG0uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24va3ZfZHBtLmMKPiBAQCAtMjY0MCw3ICsyNjQwLDcgQEAgc3Rh dGljIGludCBrdl9wYXJzZV9wb3dlcl90YWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikK PiAgIAlzdHJ1Y3QgX05vbkNsb2NrSW5mb0FycmF5ICpub25fY2xvY2tfaW5mb19hcnJheTsKPiAg IAl1bmlvbiBwb3dlcl9pbmZvICpwb3dlcl9pbmZvOwo+ICAgCWludCBpbmRleCA9IEdldEluZGV4 SW50b01hc3RlclRhYmxlKERBVEEsIFBvd2VyUGxheUluZm8pOwo+IC0gICAgICAgIHUxNiBkYXRh X29mZnNldDsKPiArCXUxNiBkYXRhX29mZnNldDsKPiAgIAl1OCBmcmV2LCBjcmV2Owo+ICAgCXU4 ICpwb3dlcl9zdGF0ZV9vZmZzZXQ7Cj4gICAJc3RydWN0IGt2X3BzICpwczsKPiBAQCAtMjczOCw3 ICsyNzM4LDcgQEAgaW50IGt2X2RwbV9pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ ICAgCWZvciAoaSA9IDA7IGkgPCBTVU1PX01BWF9IQVJEV0FSRV9QT1dFUkxFVkVMUzsgaSsrKQo+ ICAgCQlwaS0+YXRbaV0gPSBUUklOSVRZX0FUX0RGTFQ7Cj4gICAKPiAtICAgICAgICBwaS0+c3Jh bV9lbmQgPSBTTUNfUkFNX0VORDsKPiArCXBpLT5zcmFtX2VuZCA9IFNNQ19SQU1fRU5EOwo+ICAg Cj4gICAJLyogRW5hYmxpbmcgbmIgZHBtIG9uIGFuIGFzcm9jayBzeXN0ZW0gcHJldmVudHMgZHBt IGZyb20gd29ya2luZyAqLwo+ICAgCWlmIChyZGV2LT5wZGV2LT5zdWJzeXN0ZW1fdmVuZG9yID09 IDB4MTg0OSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCj4gaW5kZXggMTU4ODcyZS4uYjg4ZDYzYzkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9uaS5jCj4gQEAgLTEyNTcsNyArMTI1Nyw3IEBAIHN0YXRpYyB2b2lkIGNheW1h bl9ncHVfaW5pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAkJdG1wID0gUlJFRzMy X0NHKENHX0NHVFRfTE9DQUxfMCk7Cj4gICAJCXRtcCAmPSB+MHgwMDM4MDAwMDsKPiAgIAkJV1JF RzMyX0NHKENHX0NHVFRfTE9DQUxfMCwgdG1wKTsKPiAtICAgICAgICAgICAgICAgIHRtcCA9IFJS RUczMl9DRyhDR19DR1RUX0xPQ0FMXzEpOwo+ICsJCXRtcCA9IFJSRUczMl9DRyhDR19DR1RUX0xP Q0FMXzEpOwo+ICAgCQl0bXAgJj0gfjB4MGUwMDAwMDA7Cj4gICAJCVdSRUczMl9DRyhDR19DR1RU X0xPQ0FMXzEsIHRtcCk7Cj4gICAJfQo+IEBAIC0yNjM0LDcgKzI2MzQsNyBAQCBpbnQgdG5fc2V0 X3ZjZV9jbG9ja3Moc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHUzMiBldmNsaywgdTMyIGVj Y2xrKQo+ICAgCXN0cnVjdCBhdG9tX2Nsb2NrX2RpdmlkZXJzIGRpdmlkZXJzOwo+ICAgCWludCBy LCBpOwo+ICAgCj4gLSAgICAgICAgciA9IHJhZGVvbl9hdG9tX2dldF9jbG9ja19kaXZpZGVycyhy ZGV2LCBDT01QVVRFX0VOR0lORV9QTExfUEFSQU0sCj4gKwlyID0gcmFkZW9uX2F0b21fZ2V0X2Ns b2NrX2RpdmlkZXJzKHJkZXYsIENPTVBVVEVfRU5HSU5FX1BMTF9QQVJBTSwKPiAgIAkJCQkJICAg ZWNjbGssIGZhbHNlLCAmZGl2aWRlcnMpOwo+ICAgCWlmIChyKQo+ICAgCQlyZXR1cm4gcjsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9uaV9kcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vbmlfZHBtLmMKPiBpbmRleCBjM2Q1MzFhLi40YTYwMWY5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vbmlfZHBtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL25pX2RwbS5jCj4gQEAgLTcyNSw5ICs3MjUsOSBAQCBleHRlcm4gaW50IG5pX21j X2xvYWRfbWljcm9jb2RlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKPiAgIAo+ICAgc3Ry dWN0IG5pX3Bvd2VyX2luZm8gKm5pX2dldF9waShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikK PiAgIHsKPiAtICAgICAgICBzdHJ1Y3QgbmlfcG93ZXJfaW5mbyAqcGkgPSByZGV2LT5wbS5kcG0u cHJpdjsKPiArCXN0cnVjdCBuaV9wb3dlcl9pbmZvICpwaSA9IHJkZXYtPnBtLmRwbS5wcml2Owo+ ICAgCj4gLSAgICAgICAgcmV0dXJuIHBpOwo+ICsJcmV0dXJuIHBpOwo+ICAgfQo+ICAgCj4gICBz dHJ1Y3QgbmlfcHMgKm5pX2dldF9wcyhzdHJ1Y3QgcmFkZW9uX3BzICpycHMpCj4gQEAgLTEwOTYs OSArMTA5Niw5IEBAIHN0YXRpYyB2b2lkIG5pX3N0b3Bfc21jKHN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2KQo+ICAgCj4gICBzdGF0aWMgaW50IG5pX3Byb2Nlc3NfZmlybXdhcmVfaGVhZGVyKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgewo+IC0gICAgICAgIHN0cnVjdCBydjd4eF9w b3dlcl9pbmZvICpwaSA9IHJ2NzcwX2dldF9waShyZGV2KTsKPiAtICAgICAgICBzdHJ1Y3QgZXZl cmdyZWVuX3Bvd2VyX2luZm8gKmVnX3BpID0gZXZlcmdyZWVuX2dldF9waShyZGV2KTsKPiAtICAg ICAgICBzdHJ1Y3QgbmlfcG93ZXJfaW5mbyAqbmlfcGkgPSBuaV9nZXRfcGkocmRldik7Cj4gKwlz dHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3MF9nZXRfcGkocmRldik7Cj4gKwlzdHJ1 Y3QgZXZlcmdyZWVuX3Bvd2VyX2luZm8gKmVnX3BpID0gZXZlcmdyZWVuX2dldF9waShyZGV2KTsK PiArCXN0cnVjdCBuaV9wb3dlcl9pbmZvICpuaV9waSA9IG5pX2dldF9waShyZGV2KTsKPiAgIAl1 MzIgdG1wOwo+ICAgCWludCByZXQ7Cj4gICAKPiBAQCAtMTIwMiwxNCArMTIwMiwxNCBAQCBzdGF0 aWMgaW50IG5pX2VudGVyX3VscF9zdGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAg IAlzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3MF9nZXRfcGkocmRldik7Cj4gICAK PiAgIAlpZiAocGktPmdmeF9jbG9ja19nYXRpbmcpIHsKPiAtICAgICAgICAgICAgICAgIFdSRUcz Ml9QKFNDTEtfUFdSTUdUX0NOVEwsIDAsIH5EWU5fR0ZYX0NMS19PRkZfRU4pOwo+ICsJCVdSRUcz Ml9QKFNDTEtfUFdSTUdUX0NOVEwsIDAsIH5EWU5fR0ZYX0NMS19PRkZfRU4pOwo+ICAgCQlXUkVH MzJfUChTQ0xLX1BXUk1HVF9DTlRMLCBHRlhfQ0xLX0ZPUkNFX09OLCB+R0ZYX0NMS19GT1JDRV9P Tik7Cj4gLSAgICAgICAgICAgICAgICBXUkVHMzJfUChTQ0xLX1BXUk1HVF9DTlRMLCAwLCB+R0ZY X0NMS19GT1JDRV9PTik7Cj4gKwkJV1JFRzMyX1AoU0NMS19QV1JNR1RfQ05UTCwgMCwgfkdGWF9D TEtfRk9SQ0VfT04pOwo+ICAgCQlSUkVHMzIoR0JfQUREUl9DT05GSUcpOwo+IC0gICAgICAgIH0K PiArCX0KPiAgIAo+ICAgCVdSRUczMl9QKFNNQ19NU0csIEhPU1RfU01DX01TRyhQUFNNQ19NU0df U3dpdGNoVG9NaW5pbXVtUG93ZXIpLAo+IC0gICAgICAgICAgICAgICAgIH5IT1NUX1NNQ19NU0df TUFTSyk7Cj4gKwkJIH5IT1NUX1NNQ19NU0dfTUFTSyk7Cj4gICAKPiAgIAl1ZGVsYXkoMjUwMDAp Owo+ICAgCj4gQEAgLTEzMjEsMTIgKzEzMjEsMTIgQEAgc3RhdGljIHZvaWQgbmlfcG9wdWxhdGVf bXZkZF92YWx1ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAkJCQkgICB1MzIgbWNs aywKPiAgIAkJCQkgICBOSVNMQU5EU19TTUNfVk9MVEFHRV9WQUxVRSAqdm9sdGFnZSkKPiAgIHsK PiAtICAgICAgICBzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3MF9nZXRfcGkocmRl dik7Cj4gKwlzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3MF9nZXRfcGkocmRldik7 Cj4gICAJc3RydWN0IGV2ZXJncmVlbl9wb3dlcl9pbmZvICplZ19waSA9IGV2ZXJncmVlbl9nZXRf cGkocmRldik7Cj4gICAKPiAgIAlpZiAoIXBpLT5tdmRkX2NvbnRyb2wpIHsKPiAgIAkJdm9sdGFn ZS0+aW5kZXggPSBlZ19waS0+bXZkZF9oaWdoX2luZGV4Owo+IC0gICAgICAgICAgICAgICAgdm9s dGFnZS0+dmFsdWUgPSBjcHVfdG9fYmUxNihNVkREX0hJR0hfVkFMVUUpOwo+ICsJCXZvbHRhZ2Ut PnZhbHVlID0gY3B1X3RvX2JlMTYoTVZERF9ISUdIX1ZBTFVFKTsKPiAgIAkJcmV0dXJuOwo+ICAg CX0KPiAgIAo+IEBAIC0xNTEwLDQ3ICsxNTEwLDQ3IEBAIGludCBuaV9jb3B5X2FuZF9zd2l0Y2hf YXJiX3NldHMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJdTMyIG1jX2NnX2NvbmZp ZzsKPiAgIAo+ICAgCXN3aXRjaCAoYXJiX2ZyZXFfc3JjKSB7Cj4gLSAgICAgICAgY2FzZSBNQ19D R19BUkJfRlJFUV9GMDoKPiArCWNhc2UgTUNfQ0dfQVJCX0ZSRVFfRjA6Cj4gICAJCW1jX2FyYl9k cmFtX3RpbWluZyAgPSBSUkVHMzIoTUNfQVJCX0RSQU1fVElNSU5HKTsKPiAgIAkJbWNfYXJiX2Ry YW1fdGltaW5nMiA9IFJSRUczMihNQ19BUkJfRFJBTV9USU1JTkcyKTsKPiAgIAkJYnVyc3RfdGlt ZSA9IChSUkVHMzIoTUNfQVJCX0JVUlNUX1RJTUUpICYgU1RBVEUwX01BU0spID4+IFNUQVRFMF9T SElGVDsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgY2FzZSBNQ19DR19BUkJfRlJFUV9GMToKPiAr CWNhc2UgTUNfQ0dfQVJCX0ZSRVFfRjE6Cj4gICAJCW1jX2FyYl9kcmFtX3RpbWluZyAgPSBSUkVH MzIoTUNfQVJCX0RSQU1fVElNSU5HXzEpOwo+ICAgCQltY19hcmJfZHJhbV90aW1pbmcyID0gUlJF RzMyKE1DX0FSQl9EUkFNX1RJTUlORzJfMSk7Cj4gICAJCWJ1cnN0X3RpbWUgPSAoUlJFRzMyKE1D X0FSQl9CVVJTVF9USU1FKSAmIFNUQVRFMV9NQVNLKSA+PiBTVEFURTFfU0hJRlQ7Cj4gICAJCWJy ZWFrOwo+IC0gICAgICAgIGNhc2UgTUNfQ0dfQVJCX0ZSRVFfRjI6Cj4gKwljYXNlIE1DX0NHX0FS Ql9GUkVRX0YyOgo+ICAgCQltY19hcmJfZHJhbV90aW1pbmcgID0gUlJFRzMyKE1DX0FSQl9EUkFN X1RJTUlOR18yKTsKPiAgIAkJbWNfYXJiX2RyYW1fdGltaW5nMiA9IFJSRUczMihNQ19BUkJfRFJB TV9USU1JTkcyXzIpOwo+ICAgCQlidXJzdF90aW1lID0gKFJSRUczMihNQ19BUkJfQlVSU1RfVElN RSkgJiBTVEFURTJfTUFTSykgPj4gU1RBVEUyX1NISUZUOwo+ICAgCQlicmVhazsKPiAtICAgICAg ICBjYXNlIE1DX0NHX0FSQl9GUkVRX0YzOgo+ICsJY2FzZSBNQ19DR19BUkJfRlJFUV9GMzoKPiAg IAkJbWNfYXJiX2RyYW1fdGltaW5nICA9IFJSRUczMihNQ19BUkJfRFJBTV9USU1JTkdfMyk7Cj4g ICAJCW1jX2FyYl9kcmFtX3RpbWluZzIgPSBSUkVHMzIoTUNfQVJCX0RSQU1fVElNSU5HMl8zKTsK PiAgIAkJYnVyc3RfdGltZSA9IChSUkVHMzIoTUNfQVJCX0JVUlNUX1RJTUUpICYgU1RBVEUzX01B U0spID4+IFNUQVRFM19TSElGVDsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgZGVmYXVsdDoKPiAr CWRlZmF1bHQ6Cj4gICAJCXJldHVybiAtRUlOVkFMOwo+ICAgCX0KPiAgIAo+ICAgCXN3aXRjaCAo YXJiX2ZyZXFfZGVzdCkgewo+IC0gICAgICAgIGNhc2UgTUNfQ0dfQVJCX0ZSRVFfRjA6Cj4gKwlj YXNlIE1DX0NHX0FSQl9GUkVRX0YwOgo+ICAgCQlXUkVHMzIoTUNfQVJCX0RSQU1fVElNSU5HLCBt Y19hcmJfZHJhbV90aW1pbmcpOwo+ICAgCQlXUkVHMzIoTUNfQVJCX0RSQU1fVElNSU5HMiwgbWNf YXJiX2RyYW1fdGltaW5nMik7Cj4gICAJCVdSRUczMl9QKE1DX0FSQl9CVVJTVF9USU1FLCBTVEFU RTAoYnVyc3RfdGltZSksIH5TVEFURTBfTUFTSyk7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNh c2UgTUNfQ0dfQVJCX0ZSRVFfRjE6Cj4gKwljYXNlIE1DX0NHX0FSQl9GUkVRX0YxOgo+ICAgCQlX UkVHMzIoTUNfQVJCX0RSQU1fVElNSU5HXzEsIG1jX2FyYl9kcmFtX3RpbWluZyk7Cj4gICAJCVdS RUczMihNQ19BUkJfRFJBTV9USU1JTkcyXzEsIG1jX2FyYl9kcmFtX3RpbWluZzIpOwo+ICAgCQlX UkVHMzJfUChNQ19BUkJfQlVSU1RfVElNRSwgU1RBVEUxKGJ1cnN0X3RpbWUpLCB+U1RBVEUxX01B U0spOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX0NHX0FSQl9GUkVRX0YyOgo+ICsJ Y2FzZSBNQ19DR19BUkJfRlJFUV9GMjoKPiAgIAkJV1JFRzMyKE1DX0FSQl9EUkFNX1RJTUlOR18y LCBtY19hcmJfZHJhbV90aW1pbmcpOwo+ICAgCQlXUkVHMzIoTUNfQVJCX0RSQU1fVElNSU5HMl8y LCBtY19hcmJfZHJhbV90aW1pbmcyKTsKPiAgIAkJV1JFRzMyX1AoTUNfQVJCX0JVUlNUX1RJTUUs IFNUQVRFMihidXJzdF90aW1lKSwgflNUQVRFMl9NQVNLKTsKPiAgIAkJYnJlYWs7Cj4gLSAgICAg ICAgY2FzZSBNQ19DR19BUkJfRlJFUV9GMzoKPiArCWNhc2UgTUNfQ0dfQVJCX0ZSRVFfRjM6Cj4g ICAJCVdSRUczMihNQ19BUkJfRFJBTV9USU1JTkdfMywgbWNfYXJiX2RyYW1fdGltaW5nKTsKPiAg IAkJV1JFRzMyKE1DX0FSQl9EUkFNX1RJTUlORzJfMywgbWNfYXJiX2RyYW1fdGltaW5nMik7Cj4g ICAJCVdSRUczMl9QKE1DX0FSQl9CVVJTVF9USU1FLCBTVEFURTMoYnVyc3RfdGltZSksIH5TVEFU RTNfTUFTSyk7Cj4gQEAgLTE2MjEsOSArMTYyMSw3IEBAIHN0YXRpYyBpbnQgbmlfcG9wdWxhdGVf bWVtb3J5X3RpbWluZ19wYXJhbWV0ZXJzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAg CQkodTgpcnY3NzBfY2FsY3VsYXRlX21lbW9yeV9yZWZyZXNoX3JhdGUocmRldiwgcGwtPnNjbGsp Owo+ICAgCj4gICAKPiAtCXJhZGVvbl9hdG9tX3NldF9lbmdpbmVfZHJhbV90aW1pbmdzKHJkZXYs Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGwtPnNjbGss Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGwtPm1jbGsp Owo+ICsJcmFkZW9uX2F0b21fc2V0X2VuZ2luZV9kcmFtX3RpbWluZ3MocmRldiwgcGwtPnNjbGss IHBsLT5tY2xrKTsKPiAgIAo+ICAgCWRyYW1fdGltaW5nID0gUlJFRzMyKE1DX0FSQl9EUkFNX1RJ TUlORyk7Cj4gICAJZHJhbV90aW1pbmcyID0gUlJFRzMyKE1DX0FSQl9EUkFNX1RJTUlORzIpOwo+ IEBAIC0xODY3LDkgKzE4NjUsOSBAQCBzdGF0aWMgaW50IG5pX3BvcHVsYXRlX3NtY19hY3BpX3N0 YXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCj4gICAJbXBsbF9hZF9mdW5jX2Nu dGxfMiB8PSBCSUFTX0dFTl9QRE5CIHwgUkVTRVRfRU47Cj4gICAKPiAtICAgICAgICBpZiAocGkt Pm1lbV9nZGRyNSkKPiAtICAgICAgICAgICAgICAgIG1wbGxfZHFfZnVuY19jbnRsICY9IH5QRE5C Owo+IC0gICAgICAgIG1wbGxfZHFfZnVuY19jbnRsXzIgfD0gQklBU19HRU5fUEROQiB8IFJFU0VU X0VOIHwgQllQQVNTOwo+ICsJaWYgKHBpLT5tZW1fZ2RkcjUpCj4gKwkJbXBsbF9kcV9mdW5jX2Nu dGwgJj0gflBETkI7Cj4gKwltcGxsX2RxX2Z1bmNfY250bF8yIHw9IEJJQVNfR0VOX1BETkIgfCBS RVNFVF9FTiB8IEJZUEFTUzsKPiAgIAo+ICAgCj4gICAJbWNsa19wd3JtZ3RfY250bCB8PSAoTVJE Q0tBMF9SRVNFVCB8Cj4gQEAgLTE4OTEsMTUgKzE4ODksMTUgQEAgc3RhdGljIGludCBuaV9wb3B1 bGF0ZV9zbWNfYWNwaV9zdGF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAkJCSAg ICAgIE1SRENLRDFfUEROQik7Cj4gICAKPiAgIAlkbGxfY250bCB8PSAoTVJEQ0tBMF9CWVBBU1Mg fAo+IC0gICAgICAgICAgICAgICAgICAgICBNUkRDS0ExX0JZUEFTUyB8Cj4gLSAgICAgICAgICAg ICAgICAgICAgIE1SRENLQjBfQllQQVNTIHwKPiAtICAgICAgICAgICAgICAgICAgICAgTVJEQ0tC MV9CWVBBU1MgfAo+IC0gICAgICAgICAgICAgICAgICAgICBNUkRDS0MwX0JZUEFTUyB8Cj4gLSAg ICAgICAgICAgICAgICAgICAgIE1SRENLQzFfQllQQVNTIHwKPiAtICAgICAgICAgICAgICAgICAg ICAgTVJEQ0tEMF9CWVBBU1MgfAo+IC0gICAgICAgICAgICAgICAgICAgICBNUkRDS0QxX0JZUEFT Uyk7Cj4gLQo+IC0gICAgICAgIHNwbGxfZnVuY19jbnRsXzIgJj0gflNDTEtfTVVYX1NFTF9NQVNL Owo+ICsJCSAgICAgTVJEQ0tBMV9CWVBBU1MgfAo+ICsJCSAgICAgTVJEQ0tCMF9CWVBBU1MgfAo+ ICsJCSAgICAgTVJEQ0tCMV9CWVBBU1MgfAo+ICsJCSAgICAgTVJEQ0tDMF9CWVBBU1MgfAo+ICsJ CSAgICAgTVJEQ0tDMV9CWVBBU1MgfAo+ICsJCSAgICAgTVJEQ0tEMF9CWVBBU1MgfAo+ICsJCSAg ICAgTVJEQ0tEMV9CWVBBU1MpOwo+ICsKPiArCXNwbGxfZnVuY19jbnRsXzIgJj0gflNDTEtfTVVY X1NFTF9NQVNLOwo+ICAgCXNwbGxfZnVuY19jbnRsXzIgfD0gU0NMS19NVVhfU0VMKDQpOwo+ICAg Cj4gICAJdGFibGUtPkFDUElTdGF0ZS5sZXZlbHNbMF0ubWNsay52TVBMTF9BRF9GVU5DX0NOVEwg PSBjcHVfdG9fYmUzMihtcGxsX2FkX2Z1bmNfY250bCk7Cj4gQEAgLTIwODksNyArMjA4Nyw3IEBA IHN0YXRpYyBpbnQgbmlfcG9wdWxhdGVfc2Nsa192YWx1ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwKPiAgIAo+ICAgc3RhdGljIGludCBuaV9pbml0X3NtY19zcGxsX3RhYmxlKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2KQo+ICAgewo+IC0gICAgICAgIHN0cnVjdCBydjd4eF9wb3dlcl9p bmZvICpwaSA9IHJ2NzcwX2dldF9waShyZGV2KTsKPiArCXN0cnVjdCBydjd4eF9wb3dlcl9pbmZv ICpwaSA9IHJ2NzcwX2dldF9waShyZGV2KTsKPiAgIAlzdHJ1Y3QgbmlfcG93ZXJfaW5mbyAqbmlf cGkgPSBuaV9nZXRfcGkocmRldik7Cj4gICAJU01DX05JU0xBTkRTX1NQTExfRElWX1RBQkxFICpz cGxsX3RhYmxlOwo+ICAgCU5JU0xBTkRTX1NNQ19TQ0xLX1ZBTFVFIHNjbGtfcGFyYW1zOwo+IEBA IC0yMzExLDggKzIzMDksOCBAQCBzdGF0aWMgaW50IG5pX2NvbnZlcnRfcG93ZXJfbGV2ZWxfdG9f c21jKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJCQkgTklTTEFORFNfU01DX0hX X1BFUkZPUk1BTkNFX0xFVkVMICpsZXZlbCkKPiAgIHsKPiAgIAlzdHJ1Y3QgcnY3eHhfcG93ZXJf aW5mbyAqcGkgPSBydjc3MF9nZXRfcGkocmRldik7Cj4gLSAgICAgICAgc3RydWN0IGV2ZXJncmVl bl9wb3dlcl9pbmZvICplZ19waSA9IGV2ZXJncmVlbl9nZXRfcGkocmRldik7Cj4gLSAgICAgICAg c3RydWN0IG5pX3Bvd2VyX2luZm8gKm5pX3BpID0gbmlfZ2V0X3BpKHJkZXYpOwo+ICsJc3RydWN0 IGV2ZXJncmVlbl9wb3dlcl9pbmZvICplZ19waSA9IGV2ZXJncmVlbl9nZXRfcGkocmRldik7Cj4g KwlzdHJ1Y3QgbmlfcG93ZXJfaW5mbyAqbmlfcGkgPSBuaV9nZXRfcGkocmRldik7Cj4gICAJaW50 IHJldDsKPiAgIAlib29sIGRsbF9zdGF0ZV9vbjsKPiAgIAl1MTYgc3RkX3ZkZGM7Cj4gQEAgLTIz OTEsOCArMjM4OSw4IEBAIHN0YXRpYyBpbnQgbmlfcG9wdWxhdGVfc21jX3Qoc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYsCj4gICAJCQkgICAgIHN0cnVjdCByYWRlb25fcHMgKnJhZGVvbl9zdGF0 ZSwKPiAgIAkJCSAgICAgTklTTEFORFNfU01DX1NXU1RBVEUgKnNtY19zdGF0ZSkKPiAgIHsKPiAt ICAgICAgICBzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3MF9nZXRfcGkocmRldik7 Cj4gLSAgICAgICAgc3RydWN0IGV2ZXJncmVlbl9wb3dlcl9pbmZvICplZ19waSA9IGV2ZXJncmVl bl9nZXRfcGkocmRldik7Cj4gKwlzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3MF9n ZXRfcGkocmRldik7Cj4gKwlzdHJ1Y3QgZXZlcmdyZWVuX3Bvd2VyX2luZm8gKmVnX3BpID0gZXZl cmdyZWVuX2dldF9waShyZGV2KTsKPiAgIAlzdHJ1Y3QgbmlfcHMgKnN0YXRlID0gbmlfZ2V0X3Bz KHJhZGVvbl9zdGF0ZSk7Cj4gICAJdTMyIGFfdDsKPiAgIAl1MzIgdF9sLCB0X2g7Cj4gQEAgLTI0 NTEsOCArMjQ0OSw4IEBAIHN0YXRpYyBpbnQgbmlfcG9wdWxhdGVfcG93ZXJfY29udGFpbm1lbnRf dmFsdWVzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJCQkJc3RydWN0IHJhZGVv bl9wcyAqcmFkZW9uX3N0YXRlLAo+ICAgCQkJCQkJTklTTEFORFNfU01DX1NXU1RBVEUgKnNtY19z dGF0ZSkKPiAgIHsKPiAtICAgICAgICBzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3 MF9nZXRfcGkocmRldik7Cj4gLSAgICAgICAgc3RydWN0IGV2ZXJncmVlbl9wb3dlcl9pbmZvICpl Z19waSA9IGV2ZXJncmVlbl9nZXRfcGkocmRldik7Cj4gKwlzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5m byAqcGkgPSBydjc3MF9nZXRfcGkocmRldik7Cj4gKwlzdHJ1Y3QgZXZlcmdyZWVuX3Bvd2VyX2lu Zm8gKmVnX3BpID0gZXZlcmdyZWVuX2dldF9waShyZGV2KTsKPiAgIAlzdHJ1Y3QgbmlfcG93ZXJf aW5mbyAqbmlfcGkgPSBuaV9nZXRfcGkocmRldik7Cj4gICAJc3RydWN0IG5pX3BzICpzdGF0ZSA9 IG5pX2dldF9wcyhyYWRlb25fc3RhdGUpOwo+ICAgCXUzMiBwcmV2X3NjbGs7Cj4gQEAgLTI1OTUs NyArMjU5Myw3IEBAIHN0YXRpYyBpbnQgbmlfZW5hYmxlX3Bvd2VyX2NvbnRhaW5tZW50KHN0cnVj dCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJCSAgICAgICBzdHJ1Y3QgcmFkZW9uX3BzICpy YWRlb25fbmV3X3N0YXRlLAo+ICAgCQkJCSAgICAgICBib29sIGVuYWJsZSkKPiAgIHsKPiAtICAg ICAgICBzdHJ1Y3QgbmlfcG93ZXJfaW5mbyAqbmlfcGkgPSBuaV9nZXRfcGkocmRldik7Cj4gKwlz dHJ1Y3QgbmlfcG93ZXJfaW5mbyAqbmlfcGkgPSBuaV9nZXRfcGkocmRldik7Cj4gICAJUFBTTUNf UmVzdWx0IHNtY19yZXN1bHQ7Cj4gICAJaW50IHJldCA9IDA7Cj4gICAKPiBAQCAtMjYyNSw3ICsy NjIzLDcgQEAgc3RhdGljIGludCBuaV9jb252ZXJ0X3Bvd2VyX3N0YXRlX3RvX3NtYyhzdHJ1Y3Qg cmFkZW9uX2RldmljZSAqcmRldiwKPiAgIAkJCQkJIHN0cnVjdCByYWRlb25fcHMgKnJhZGVvbl9z dGF0ZSwKPiAgIAkJCQkJIE5JU0xBTkRTX1NNQ19TV1NUQVRFICpzbWNfc3RhdGUpCj4gICB7Cj4g LSAgICAgICAgc3RydWN0IGV2ZXJncmVlbl9wb3dlcl9pbmZvICplZ19waSA9IGV2ZXJncmVlbl9n ZXRfcGkocmRldik7Cj4gKwlzdHJ1Y3QgZXZlcmdyZWVuX3Bvd2VyX2luZm8gKmVnX3BpID0gZXZl cmdyZWVuX2dldF9waShyZGV2KTsKPiAgIAlzdHJ1Y3QgbmlfcG93ZXJfaW5mbyAqbmlfcGkgPSBu aV9nZXRfcGkocmRldik7Cj4gICAJc3RydWN0IG5pX3BzICpzdGF0ZSA9IG5pX2dldF9wcyhyYWRl b25fc3RhdGUpOwo+ICAgCWludCBpLCByZXQ7Cj4gQEAgLTI3NzAsNDYgKzI3NjgsNDYgQEAgc3Rh dGljIGJvb2wgbmlfY2hlY2tfczBfbWNfcmVnX2luZGV4KHUxNiBpbl9yZWcsIHUxNiAqb3V0X3Jl ZykKPiAgIAlib29sIHJlc3VsdCA9IHRydWU7Cj4gICAKPiAgIAlzd2l0Y2ggKGluX3JlZykgewo+ IC0gICAgICAgIGNhc2UgIE1DX1NFUV9SQVNfVElNSU5HID4+IDI6Cj4gKwljYXNlICBNQ19TRVFf UkFTX1RJTUlORyA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9SQVNfVElNSU5HX0xQID4+ IDI7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2UgTUNfU0VRX0NBU19USU1JTkcgPj4gMjoK PiArCWNhc2UgTUNfU0VRX0NBU19USU1JTkcgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBNQ19TRVFf Q0FTX1RJTUlOR19MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1NFUV9N SVNDX1RJTUlORyA+PiAyOgo+ICsJY2FzZSBNQ19TRVFfTUlTQ19USU1JTkcgPj4gMjoKPiAgIAkJ Km91dF9yZWcgPSBNQ19TRVFfTUlTQ19USU1JTkdfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAg ICAgICAgY2FzZSBNQ19TRVFfTUlTQ19USU1JTkcyID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9NSVND X1RJTUlORzIgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBNQ19TRVFfTUlTQ19USU1JTkcyX0xQID4+ IDI7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2UgTUNfU0VRX1JEX0NUTF9EMCA+PiAyOgo+ ICsJY2FzZSBNQ19TRVFfUkRfQ1RMX0QwID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX1JE X0NUTF9EMF9MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1NFUV9SRF9D VExfRDEgPj4gMjoKPiArCWNhc2UgTUNfU0VRX1JEX0NUTF9EMSA+PiAyOgo+ICAgCQkqb3V0X3Jl ZyA9IE1DX1NFUV9SRF9DVExfRDFfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgY2Fz ZSBNQ19TRVFfV1JfQ1RMX0QwID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9XUl9DVExfRDAgPj4gMjoK PiAgIAkJKm91dF9yZWcgPSBNQ19TRVFfV1JfQ1RMX0QwX0xQID4+IDI7Cj4gICAJCWJyZWFrOwo+ IC0gICAgICAgIGNhc2UgTUNfU0VRX1dSX0NUTF9EMSA+PiAyOgo+ICsJY2FzZSBNQ19TRVFfV1Jf Q1RMX0QxID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX1dSX0NUTF9EMV9MUCA+PiAyOwo+ ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1BNR19DTURfRU1SUyA+PiAyOgo+ICsJY2Fz ZSBNQ19QTUdfQ01EX0VNUlMgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBNQ19TRVFfUE1HX0NNRF9F TVJTX0xQID4+IDI7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2UgTUNfUE1HX0NNRF9NUlMg Pj4gMjoKPiArCWNhc2UgTUNfUE1HX0NNRF9NUlMgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBNQ19T RVFfUE1HX0NNRF9NUlNfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgY2FzZSBNQ19Q TUdfQ01EX01SUzEgPj4gMjoKPiArCWNhc2UgTUNfUE1HX0NNRF9NUlMxID4+IDI6Cj4gICAJCSpv dXRfcmVnID0gTUNfU0VRX1BNR19DTURfTVJTMV9MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAg ICAgICBjYXNlIE1DX1NFUV9QTUdfVElNSU5HID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9QTUdfVElN SU5HID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX1BNR19USU1JTkdfTFAgPj4gMjsKPiAg IAkJYnJlYWs7Cj4gLSAgICAgICAgY2FzZSBNQ19QTUdfQ01EX01SUzIgPj4gMjoKPiArCWNhc2Ug TUNfUE1HX0NNRF9NUlMyID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX1BNR19DTURfTVJT Ml9MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBkZWZhdWx0Ogo+ICsJZGVmYXVsdDoK PiAgIAkJcmVzdWx0ID0gZmFsc2U7Cj4gICAJCWJyZWFrOwo+ICAgCX0KPiBAQCAtMjg3Niw5ICsy ODc0LDkgQEAgc3RhdGljIGludCBuaV9pbml0aWFsaXplX21jX3JlZ190YWJsZShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldikKPiAgIAlzdHJ1Y3QgbmlfbWNfcmVnX3RhYmxlICpuaV90YWJsZSA9 ICZuaV9waS0+bWNfcmVnX3RhYmxlOwo+ICAgCXU4IG1vZHVsZV9pbmRleCA9IHJ2NzcwX2dldF9t ZW1vcnlfbW9kdWxlX2luZGV4KHJkZXYpOwo+ICAgCj4gLSAgICAgICAgdGFibGUgPSBremFsbG9j KHNpemVvZihzdHJ1Y3QgYXRvbV9tY19yZWdfdGFibGUpLCBHRlBfS0VSTkVMKTsKPiAtICAgICAg ICBpZiAoIXRhYmxlKQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKwl0YWJs ZSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBhdG9tX21jX3JlZ190YWJsZSksIEdGUF9LRVJORUwp Owo+ICsJaWYgKCF0YWJsZSkKPiArCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ICAgCVdSRUczMihN Q19TRVFfUkFTX1RJTUlOR19MUCwgUlJFRzMyKE1DX1NFUV9SQVNfVElNSU5HKSk7Cj4gICAJV1JF RzMyKE1DX1NFUV9DQVNfVElNSU5HX0xQLCBSUkVHMzIoTUNfU0VRX0NBU19USU1JTkcpKTsKPiBA QCAtMjg5NiwyNSArMjg5NCwyNSBAQCBzdGF0aWMgaW50IG5pX2luaXRpYWxpemVfbWNfcmVnX3Rh YmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCj4gICAJcmV0ID0gcmFkZW9uX2F0 b21faW5pdF9tY19yZWdfdGFibGUocmRldiwgbW9kdWxlX2luZGV4LCB0YWJsZSk7Cj4gICAKPiAt ICAgICAgICBpZiAocmV0KQo+IC0gICAgICAgICAgICAgICAgZ290byBpbml0X21jX2RvbmU7Cj4g KwlpZiAocmV0KQo+ICsJCWdvdG8gaW5pdF9tY19kb25lOwo+ICAgCj4gICAJcmV0ID0gbmlfY29w eV92Ymlvc19tY19yZWdfdGFibGUodGFibGUsIG5pX3RhYmxlKTsKPiAgIAo+IC0gICAgICAgIGlm IChyZXQpCj4gLSAgICAgICAgICAgICAgICBnb3RvIGluaXRfbWNfZG9uZTsKPiArCWlmIChyZXQp Cj4gKwkJZ290byBpbml0X21jX2RvbmU7Cj4gICAKPiAgIAluaV9zZXRfczBfbWNfcmVnX2luZGV4 KG5pX3RhYmxlKTsKPiAgIAo+ICAgCXJldCA9IG5pX3NldF9tY19zcGVjaWFsX3JlZ2lzdGVycyhy ZGV2LCBuaV90YWJsZSk7Cj4gICAKPiAtICAgICAgICBpZiAocmV0KQo+IC0gICAgICAgICAgICAg ICAgZ290byBpbml0X21jX2RvbmU7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gaW5pdF9tY19kb25l Owo+ICAgCj4gICAJbmlfc2V0X3ZhbGlkX2ZsYWcobmlfdGFibGUpOwo+ICAgCj4gICBpbml0X21j X2RvbmU6Cj4gLSAgICAgICAga2ZyZWUodGFibGUpOwo+ICsJa2ZyZWUodGFibGUpOwo+ICAgCj4g ICAJcmV0dXJuIHJldDsKPiAgIH0KPiBAQCAtMjk5NCw3ICsyOTkyLDcgQEAgc3RhdGljIGludCBu aV9wb3B1bGF0ZV9tY19yZWdfdGFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICB7 Cj4gICAJc3RydWN0IHJ2N3h4X3Bvd2VyX2luZm8gKnBpID0gcnY3NzBfZ2V0X3BpKHJkZXYpOwo+ ICAgCXN0cnVjdCBldmVyZ3JlZW5fcG93ZXJfaW5mbyAqZWdfcGkgPSBldmVyZ3JlZW5fZ2V0X3Bp KHJkZXYpOwo+IC0gICAgICAgIHN0cnVjdCBuaV9wb3dlcl9pbmZvICpuaV9waSA9IG5pX2dldF9w aShyZGV2KTsKPiArCXN0cnVjdCBuaV9wb3dlcl9pbmZvICpuaV9waSA9IG5pX2dldF9waShyZGV2 KTsKPiAgIAlzdHJ1Y3QgbmlfcHMgKmJvb3Rfc3RhdGUgPSBuaV9nZXRfcHMocmFkZW9uX2Jvb3Rf c3RhdGUpOwo+ICAgCVNNQ19OSXNsYW5kc19NQ1JlZ2lzdGVycyAqbWNfcmVnX3RhYmxlID0gJm5p X3BpLT5zbWNfbWNfcmVnX3RhYmxlOwo+ICAgCj4gQEAgLTMwMjUsNyArMzAyMyw3IEBAIHN0YXRp YyBpbnQgbmlfdXBsb2FkX21jX3JlZ190YWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwK PiAgIHsKPiAgIAlzdHJ1Y3QgcnY3eHhfcG93ZXJfaW5mbyAqcGkgPSBydjc3MF9nZXRfcGkocmRl dik7Cj4gICAJc3RydWN0IGV2ZXJncmVlbl9wb3dlcl9pbmZvICplZ19waSA9IGV2ZXJncmVlbl9n ZXRfcGkocmRldik7Cj4gLSAgICAgICAgc3RydWN0IG5pX3Bvd2VyX2luZm8gKm5pX3BpID0gbmlf Z2V0X3BpKHJkZXYpOwo+ICsJc3RydWN0IG5pX3Bvd2VyX2luZm8gKm5pX3BpID0gbmlfZ2V0X3Bp KHJkZXYpOwo+ICAgCXN0cnVjdCBuaV9wcyAqbmlfbmV3X3N0YXRlID0gbmlfZ2V0X3BzKHJhZGVv bl9uZXdfc3RhdGUpOwo+ICAgCVNNQ19OSXNsYW5kc19NQ1JlZ2lzdGVycyAqbWNfcmVnX3RhYmxl ID0gJm5pX3BpLT5zbWNfbWNfcmVnX3RhYmxlOwo+ICAgCXUxNiBhZGRyZXNzOwo+IEBAIC0zMTQy LDcgKzMxNDAsNyBAQCBzdGF0aWMgaW50IG5pX2luaXRpYWxpemVfc21jX2NhY190YWJsZXMoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJc3RydWN0IG5pX3Bvd2VyX2luZm8gKm5pX3Bp ID0gbmlfZ2V0X3BpKHJkZXYpOwo+ICAgCVBQX05Jc2xhbmRzX0NBQ1RBQkxFUyAqY2FjX3RhYmxl cyA9IE5VTEw7Cj4gICAJaW50IGksIHJldDsKPiAtICAgICAgICB1MzIgcmVnOwo+ICsJdTMyIHJl ZzsKPiAgIAo+ICAgCWlmIChuaV9waS0+ZW5hYmxlX2NhYyA9PSBmYWxzZSkKPiAgIAkJcmV0dXJu IDA7Cj4gQEAgLTM0MjIsMTMgKzM0MjAsMTMgQEAgc3RhdGljIGludCBuaV9wY2llX3BlcmZvcm1h bmNlX3JlcXVlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJc3RydWN0IGV2ZXJn cmVlbl9wb3dlcl9pbmZvICplZ19waSA9IGV2ZXJncmVlbl9nZXRfcGkocmRldik7Cj4gICAKPiAg IAlpZiAoKHBlcmZfcmVxID09IFBDSUVfUEVSRl9SRVFfUEVDSV9HRU4xKSB8fAo+IC0gICAgICAg ICAgICAocGVyZl9yZXEgPT0gUENJRV9QRVJGX1JFUV9QRUNJX0dFTjIpKSB7Cj4gKwkgICAgKHBl cmZfcmVxID09IFBDSUVfUEVSRl9SRVFfUEVDSV9HRU4yKSkgewo+ICAgCQlpZiAoZWdfcGktPnBj aWVfcGVyZm9ybWFuY2VfcmVxdWVzdF9yZWdpc3RlcmVkID09IGZhbHNlKQo+ICAgCQkJcmFkZW9u X2FjcGlfcGNpZV9ub3RpZnlfZGV2aWNlX3JlYWR5KHJkZXYpOwo+ICAgCQllZ19waS0+cGNpZV9w ZXJmb3JtYW5jZV9yZXF1ZXN0X3JlZ2lzdGVyZWQgPSB0cnVlOwo+ICAgCQlyZXR1cm4gcmFkZW9u X2FjcGlfcGNpZV9wZXJmb3JtYW5jZV9yZXF1ZXN0KHJkZXYsIHBlcmZfcmVxLCBhZHZlcnRpc2Up Owo+ICAgCX0gZWxzZSBpZiAoKHBlcmZfcmVxID09IFBDSUVfUEVSRl9SRVFfUkVNT1ZFX1JFR0lT VFJZKSAmJgo+IC0gICAgICAgICAgICAgICAgICAgZWdfcGktPnBjaWVfcGVyZm9ybWFuY2VfcmVx dWVzdF9yZWdpc3RlcmVkKSB7Cj4gKwkJICAgIGVnX3BpLT5wY2llX3BlcmZvcm1hbmNlX3JlcXVl c3RfcmVnaXN0ZXJlZCkgewo+ICAgCQllZ19waS0+cGNpZV9wZXJmb3JtYW5jZV9yZXF1ZXN0X3Jl Z2lzdGVyZWQgPSBmYWxzZTsKPiAgIAkJcmV0dXJuIHJhZGVvbl9hY3BpX3BjaWVfcGVyZm9ybWFu Y2VfcmVxdWVzdChyZGV2LCBwZXJmX3JlcSwgYWR2ZXJ0aXNlKTsKPiAgIAl9Cj4gQEAgLTM0NDEs MTIgKzM0MzksMTIgQEAgc3RhdGljIGludCBuaV9hZHZlcnRpc2VfZ2VuMl9jYXBhYmlsaXR5KHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCXN0cnVjdCBydjd4eF9wb3dlcl9pbmZvICpw aSA9IHJ2NzcwX2dldF9waShyZGV2KTsKPiAgIAl1MzIgdG1wOwo+ICAgCj4gLSAgICAgICAgdG1w ID0gUlJFRzMyX1BDSUVfUE9SVChQQ0lFX0xDX1NQRUVEX0NOVEwpOwo+ICsJdG1wID0gUlJFRzMy X1BDSUVfUE9SVChQQ0lFX0xDX1NQRUVEX0NOVEwpOwo+ICAgCj4gLSAgICAgICAgaWYgKCh0bXAg JiBMQ19PVEhFUl9TSURFX0VWRVJfU0VOVF9HRU4yKSAmJgo+IC0gICAgICAgICAgICAodG1wICYg TENfT1RIRVJfU0lERV9TVVBQT1JUU19HRU4yKSkKPiAtICAgICAgICAgICAgICAgIHBpLT5wY2ll X2dlbjIgPSB0cnVlOwo+IC0gICAgICAgIGVsc2UKPiArCWlmICgodG1wICYgTENfT1RIRVJfU0lE RV9FVkVSX1NFTlRfR0VOMikgJiYKPiArCSAgICAodG1wICYgTENfT1RIRVJfU0lERV9TVVBQT1JU U19HRU4yKSkKPiArCQlwaS0+cGNpZV9nZW4yID0gdHJ1ZTsKPiArCWVsc2UKPiAgIAkJcGktPnBj aWVfZ2VuMiA9IGZhbHNlOwo+ICAgCj4gICAJaWYgKCFwaS0+cGNpZV9nZW4yKQo+IEBAIC0zNDU4 LDggKzM0NTYsOCBAQCBzdGF0aWMgaW50IG5pX2FkdmVydGlzZV9nZW4yX2NhcGFiaWxpdHkoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICBzdGF0aWMgdm9pZCBuaV9lbmFibGVfYmlmX2R5 bmFtaWNfcGNpZV9nZW4yKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJCQkgICAg Ym9vbCBlbmFibGUpCj4gICB7Cj4gLSAgICAgICAgc3RydWN0IHJ2N3h4X3Bvd2VyX2luZm8gKnBp ID0gcnY3NzBfZ2V0X3BpKHJkZXYpOwo+IC0gICAgICAgIHUzMiB0bXAsIGJpZjsKPiArCXN0cnVj dCBydjd4eF9wb3dlcl9pbmZvICpwaSA9IHJ2NzcwX2dldF9waShyZGV2KTsKPiArCXUzMiB0bXAs IGJpZjsKPiAgIAo+ICAgCXRtcCA9IFJSRUczMl9QQ0lFX1BPUlQoUENJRV9MQ19TUEVFRF9DTlRM KTsKPiAgIAo+IEBAIC0zNTAyLDcgKzM1MDAsNyBAQCBzdGF0aWMgdm9pZCBuaV9lbmFibGVfZHlu YW1pY19wY2llX2dlbjIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJaWYgKGVuYWJs ZSkKPiAgIAkJV1JFRzMyX1AoR0VORVJBTF9QV1JNR1QsIEVOQUJMRV9HRU4yUENJRSwgfkVOQUJM RV9HRU4yUENJRSk7Cj4gICAJZWxzZQo+IC0gICAgICAgICAgICAgICAgV1JFRzMyX1AoR0VORVJB TF9QV1JNR1QsIDAsIH5FTkFCTEVfR0VOMlBDSUUpOwo+ICsJCVdSRUczMl9QKEdFTkVSQUxfUFdS TUdULCAwLCB+RU5BQkxFX0dFTjJQQ0lFKTsKPiAgIH0KPiAgIAo+ICAgdm9pZCBuaV9zZXRfdXZk X2Nsb2NrX2JlZm9yZV9zZXRfZW5nX2Nsb2NrKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ IEBAIC0zNTYzLDcgKzM1NjEsNyBAQCB2b2lkIG5pX3VwZGF0ZV9jdXJyZW50X3BzKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LAo+ICAgewo+ICAgCXN0cnVjdCBuaV9wcyAqbmV3X3BzID0gbmlf Z2V0X3BzKHJwcyk7Cj4gICAJc3RydWN0IGV2ZXJncmVlbl9wb3dlcl9pbmZvICplZ19waSA9IGV2 ZXJncmVlbl9nZXRfcGkocmRldik7Cj4gLSAgICAgICAgc3RydWN0IG5pX3Bvd2VyX2luZm8gKm5p X3BpID0gbmlfZ2V0X3BpKHJkZXYpOwo+ICsJc3RydWN0IG5pX3Bvd2VyX2luZm8gKm5pX3BpID0g bmlfZ2V0X3BpKHJkZXYpOwo+ICAgCj4gICAJZWdfcGktPmN1cnJlbnRfcnBzID0gKnJwczsKPiAg IAluaV9waS0+Y3VycmVudF9wcyA9ICpuZXdfcHM7Cj4gQEAgLTM1NzUsNyArMzU3Myw3IEBAIHZv aWQgbmlfdXBkYXRlX3JlcXVlc3RlZF9wcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKPiAg IHsKPiAgIAlzdHJ1Y3QgbmlfcHMgKm5ld19wcyA9IG5pX2dldF9wcyhycHMpOwo+ICAgCXN0cnVj dCBldmVyZ3JlZW5fcG93ZXJfaW5mbyAqZWdfcGkgPSBldmVyZ3JlZW5fZ2V0X3BpKHJkZXYpOwo+ IC0gICAgICAgIHN0cnVjdCBuaV9wb3dlcl9pbmZvICpuaV9waSA9IG5pX2dldF9waShyZGV2KTsK PiArCXN0cnVjdCBuaV9wb3dlcl9pbmZvICpuaV9waSA9IG5pX2dldF9waShyZGV2KTsKPiAgIAo+ ICAgCWVnX3BpLT5yZXF1ZXN0ZWRfcnBzID0gKnJwczsKPiAgIAluaV9waS0+cmVxdWVzdGVkX3Bz ID0gKm5ld19wczsKPiBAQCAtMzU5MSw4ICszNTg5LDggQEAgaW50IG5pX2RwbV9lbmFibGUoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAKPiAgIAlpZiAocGktPmdmeF9jbG9ja19nYXRp bmcpCj4gICAJCW5pX2NnX2Nsb2NrZ2F0aW5nX2RlZmF1bHQocmRldik7Cj4gLSAgICAgICAgaWYg KGJ0Y19kcG1fZW5hYmxlZChyZGV2KSkKPiAtICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFM Owo+ICsJaWYgKGJ0Y19kcG1fZW5hYmxlZChyZGV2KSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiAg IAlpZiAocGktPm1nX2Nsb2NrX2dhdGluZykKPiAgIAkJbmlfbWdfY2xvY2tnYXRpbmdfZGVmYXVs dChyZGV2KTsKPiAgIAlpZiAoZWdfcGktPmxzX2Nsb2NrX2dhdGluZykKPiBAQCAtMzk5MSw3ICsz OTg5LDcgQEAgc3RhdGljIGludCBuaV9wYXJzZV9wb3dlcl90YWJsZShzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldikKPiAgIAl1bmlvbiBwcGxpYl9jbG9ja19pbmZvICpjbG9ja19pbmZvOwo+ICAg CXVuaW9uIHBvd2VyX2luZm8gKnBvd2VyX2luZm87Cj4gICAJaW50IGluZGV4ID0gR2V0SW5kZXhJ bnRvTWFzdGVyVGFibGUoREFUQSwgUG93ZXJQbGF5SW5mbyk7Cj4gLSAgICAgICAgdTE2IGRhdGFf b2Zmc2V0Owo+ICsJdTE2IGRhdGFfb2Zmc2V0Owo+ICAgCXU4IGZyZXYsIGNyZXY7Cj4gICAJc3Ry dWN0IG5pX3BzICpwczsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3I2MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCj4gaW5kZXggZWQxMjEwNC4u Zjg2YWI2OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDAuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCj4gQEAgLTIzNSw4ICsyMzUsOCBAQCBp bnQgcjYwMF9zZXRfdXZkX2Nsb2NrcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgdTMyIHZj bGssIHUzMiBkY2xrKQo+ICAgCQlmYl9kaXYgfD0gMTsKPiAgIAo+ICAgCXIgPSByYWRlb25fdXZk X3NlbmRfdXBsbF9jdGxyZXEocmRldiwgQ0dfVVBMTF9GVU5DX0NOVEwpOwo+IC0gICAgICAgIGlm IChyKQo+IC0gICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4gKwlpZiAocikKPiArCQlyZXR1cm4g cjsKPiAgIAo+ICAgCS8qIGFzc2VydCBQTExfUkVTRVQgKi8KPiAgIAlXUkVHMzJfUChDR19VUExM X0ZVTkNfQ05UTCwgVVBMTF9SRVNFVF9NQVNLLCB+VVBMTF9SRVNFVF9NQVNLKTsKPiBAQCAtMTQ5 MCw3ICsxNDkwLDcgQEAgc3RhdGljIGludCByNjAwX21jX2luaXQoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYpCj4gICAJCQkJCXJkZXYtPmZhc3RmYl93b3JraW5nID0gdHJ1ZTsKPiAgIAkJCQl9 Cj4gICAJCQl9Cj4gLSAgCQl9Cj4gKwkJfQo+ICAgCX0KPiAgIAo+ICAgCXJhZGVvbl91cGRhdGVf YmFuZHdpZHRoX2luZm8ocmRldik7Cj4gQEAgLTQ1NzQsNyArNDU3NCw3IEBAIHVpbnQ2NF90IHI2 MDBfZ2V0X2dwdV9jbG9ja19jb3VudGVyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAg CW11dGV4X2xvY2soJnJkZXYtPmdwdV9jbG9ja19tdXRleCk7Cj4gICAJV1JFRzMyKFJMQ19DQVBU VVJFX0dQVV9DTE9DS19DT1VOVCwgMSk7Cj4gICAJY2xvY2sgPSAodWludDY0X3QpUlJFRzMyKFJM Q19HUFVfQ0xPQ0tfQ09VTlRfTFNCKSB8Cj4gLQkgICAgICAgICgodWludDY0X3QpUlJFRzMyKFJM Q19HUFVfQ0xPQ0tfQ09VTlRfTVNCKSA8PCAzMlVMTCk7Cj4gKwkJKCh1aW50NjRfdClSUkVHMzIo UkxDX0dQVV9DTE9DS19DT1VOVF9NU0IpIDw8IDMyVUxMKTsKPiAgIAltdXRleF91bmxvY2soJnJk ZXYtPmdwdV9jbG9ja19tdXRleCk7Cj4gICAJcmV0dXJuIGNsb2NrOwo+ICAgfQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcjYwMF9jcy5jCj4gaW5kZXggMmYzNmZhMTUuLmI2OWM4ZGUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2NzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3I2MDBfY3MuYwo+IEBAIC0xNjcxLDggKzE2NzEsOCBAQCBzdGF0aWMgaW50IHI2MDBf cGFja2V0M19jaGVjayhzdHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKPiAgIAkJfQo+ICAgCj4g ICAJCW9mZnNldCA9IHJlbG9jLT5ncHVfb2Zmc2V0ICsKPiAtCQkgICAgICAgICAoaWR4X3ZhbHVl ICYgMHhmZmZmZmZmMCkgKwo+IC0JCSAgICAgICAgICgodTY0KSh0bXAgJiAweGZmKSA8PCAzMik7 Cj4gKwkJCSAoaWR4X3ZhbHVlICYgMHhmZmZmZmZmMCkgKwo+ICsJCQkgKCh1NjQpKHRtcCAmIDB4 ZmYpIDw8IDMyKTsKPiAgIAo+ICAgCQlpYltpZHggKyAwXSA9IG9mZnNldDsKPiAgIAkJaWJbaWR4 ICsgMV0gPSAodG1wICYgMHhmZmZmZmYwMCkgfCAodXBwZXJfMzJfYml0cyhvZmZzZXQpICYgMHhm Zik7Cj4gQEAgLTE3MTIsOCArMTcxMiw4IEBAIHN0YXRpYyBpbnQgcjYwMF9wYWNrZXQzX2NoZWNr KHN0cnVjdCByYWRlb25fY3NfcGFyc2VyICpwLAo+ICAgCQl9Cj4gICAKPiAgIAkJb2Zmc2V0ID0g cmVsb2MtPmdwdV9vZmZzZXQgKwo+IC0JCSAgICAgICAgIGlkeF92YWx1ZSArCj4gLQkJICAgICAg ICAgKCh1NjQpKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4KzEpICYgMHhmZikgPDwgMzIpOwo+ ICsJCQkgaWR4X3ZhbHVlICsKPiArCQkJICgodTY0KShyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlk eCsxKSAmIDB4ZmYpIDw8IDMyKTsKPiAgIAo+ICAgCQlpYltpZHgrMF0gPSBvZmZzZXQ7Cj4gICAJ CWliW2lkeCsxXSA9IHVwcGVyXzMyX2JpdHMob2Zmc2V0KSAmIDB4ZmY7Cj4gQEAgLTE3NjQsOCAr MTc2NCw4IEBAIHN0YXRpYyBpbnQgcjYwMF9wYWNrZXQzX2NoZWNrKHN0cnVjdCByYWRlb25fY3Nf cGFyc2VyICpwLAo+ICAgCQkJfQo+ICAgCj4gICAJCQlvZmZzZXQgPSByZWxvYy0+Z3B1X29mZnNl dCArCj4gLQkJCSAgICAgICAgIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsxKSAmIDB4ZmZm ZmZmZjApICsKPiAtCQkJICAgICAgICAgKCh1NjQpKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4 KzIpICYgMHhmZikgPDwgMzIpOwo+ICsJCQkJIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsx KSAmIDB4ZmZmZmZmZjApICsKPiArCQkJCSAoKHU2NCkocmFkZW9uX2dldF9pYl92YWx1ZShwLCBp ZHgrMikgJiAweGZmKSA8PCAzMik7Cj4gICAKPiAgIAkJCWliW2lkeCsxXSA9IChpYltpZHgrMV0g JiAweDMpIHwgKG9mZnNldCAmIDB4ZmZmZmZmZjApOwo+ICAgCQkJaWJbaWR4KzJdID0gdXBwZXJf MzJfYml0cyhvZmZzZXQpICYgMHhmZjsKPiBAQCAtMTg3Niw4ICsxODc2LDggQEAgc3RhdGljIGlu dCByNjAwX3BhY2tldDNfY2hlY2soc3RydWN0IHJhZGVvbl9jc19wYXJzZXIgKnAsCj4gICAJCQkJ cmV0dXJuIC1FSU5WQUw7Cj4gICAJCQl9Cj4gICAJCQlvZmZzZXQgPSByZWxvYy0+Z3B1X29mZnNl dCArCj4gLQkJCSAgICAgICAgIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsxKSAmIDB4ZmZm ZmZmZjgpICsKPiAtCQkJICAgICAgICAgKCh1NjQpKHJhZGVvbl9nZXRfaWJfdmFsdWUocCwgaWR4 KzIpICYgMHhmZikgPDwgMzIpOwo+ICsJCQkJIChyYWRlb25fZ2V0X2liX3ZhbHVlKHAsIGlkeCsx KSAmIDB4ZmZmZmZmZjgpICsKPiArCQkJCSAoKHU2NCkocmFkZW9uX2dldF9pYl92YWx1ZShwLCBp ZHgrMikgJiAweGZmKSA8PCAzMik7Cj4gICAKPiAgIAkJCWliW2lkeCsxXSA9IG9mZnNldCAmIDB4 ZmZmZmZmZjg7Cj4gICAJCQlpYltpZHgrMl0gPSB1cHBlcl8zMl9iaXRzKG9mZnNldCkgJiAweGZm Owo+IEBAIC0xODk4LDggKzE4OTgsOCBAQCBzdGF0aWMgaW50IHI2MDBfcGFja2V0M19jaGVjayhz dHJ1Y3QgcmFkZW9uX2NzX3BhcnNlciAqcCwKPiAgIAkJfQo+ICAgCj4gICAJCW9mZnNldCA9IHJl bG9jLT5ncHVfb2Zmc2V0ICsKPiAtCQkgICAgICAgICAocmFkZW9uX2dldF9pYl92YWx1ZShwLCBp ZHgrMSkgJiAweGZmZmZmZmZjKSArCj4gLQkJICAgICAgICAgKCh1NjQpKHJhZGVvbl9nZXRfaWJf dmFsdWUocCwgaWR4KzIpICYgMHhmZikgPDwgMzIpOwo+ICsJCQkgKHJhZGVvbl9nZXRfaWJfdmFs dWUocCwgaWR4KzEpICYgMHhmZmZmZmZmYykgKwo+ICsJCQkgKCh1NjQpKHJhZGVvbl9nZXRfaWJf dmFsdWUocCwgaWR4KzIpICYgMHhmZikgPDwgMzIpOwo+ICAgCj4gICAJCWliW2lkeCsxXSA9IG9m ZnNldCAmIDB4ZmZmZmZmZmM7Cj4gICAJCWliW2lkeCsyXSA9IChpYltpZHgrMl0gJiAweGZmZmZm ZjAwKSB8ICh1cHBlcl8zMl9iaXRzKG9mZnNldCkgJiAweGZmKTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y NjAwX2RwbS5jCj4gaW5kZXggZmEyMTU0NC4uNmE0YjAyMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3I2MDBfZHBtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3I2MDBfZHBtLmMKPiBAQCAtODQ0LDcgKzg0NCw3IEBAIGludCByNjAwX2dldF9wbGF0Zm9ybV9j YXBzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCXN0cnVjdCByYWRlb25fbW9kZV9p bmZvICptb2RlX2luZm8gPSAmcmRldi0+bW9kZV9pbmZvOwo+ICAgCXVuaW9uIHBvd2VyX2luZm8g KnBvd2VyX2luZm87Cj4gICAJaW50IGluZGV4ID0gR2V0SW5kZXhJbnRvTWFzdGVyVGFibGUoREFU QSwgUG93ZXJQbGF5SW5mbyk7Cj4gLSAgICAgICAgdTE2IGRhdGFfb2Zmc2V0Owo+ICsJdTE2IGRh dGFfb2Zmc2V0Owo+ICAgCXU4IGZyZXYsIGNyZXY7Cj4gICAKPiAgIAlpZiAoIWF0b21fcGFyc2Vf ZGF0YV9oZWFkZXIobW9kZV9pbmZvLT5hdG9tX2NvbnRleHQsIGluZGV4LCBOVUxMLAo+IEBAIC04 NzQsNyArODc0LDcgQEAgaW50IHI2MDBfcGFyc2VfZXh0ZW5kZWRfcG93ZXJfdGFibGUoc3RydWN0 IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJdW5pb24gZmFuX2luZm8gKmZhbl9pbmZvOwo+ICAg CUFUT01fUFBMSUJfQ2xvY2tfVm9sdGFnZV9EZXBlbmRlbmN5X1RhYmxlICpkZXBfdGFibGU7Cj4g ICAJaW50IGluZGV4ID0gR2V0SW5kZXhJbnRvTWFzdGVyVGFibGUoREFUQSwgUG93ZXJQbGF5SW5m byk7Cj4gLSAgICAgICAgdTE2IGRhdGFfb2Zmc2V0Owo+ICsJdTE2IGRhdGFfb2Zmc2V0Owo+ICAg CXU4IGZyZXYsIGNyZXY7Cj4gICAJaW50IHJldCwgaTsKPiAgIAo+IEBAIC0xMDcwLDcgKzEwNzAs NyBAQCBpbnQgcjYwMF9wYXJzZV9leHRlbmRlZF9wb3dlcl90YWJsZShzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldikKPiAgIAkJCWV4dF9oZHItPnVzVkNFVGFibGVPZmZzZXQpIHsKPiAgIAkJCVZD RUNsb2NrSW5mb0FycmF5ICphcnJheSA9IChWQ0VDbG9ja0luZm9BcnJheSAqKQo+ICAgCQkJCSht b2RlX2luZm8tPmF0b21fY29udGV4dC0+YmlvcyArIGRhdGFfb2Zmc2V0ICsKPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGUxNl90b19jcHUoZXh0X2hkci0+dXNWQ0VUYWJsZU9m ZnNldCkgKyAxKTsKPiArCQkJCSBsZTE2X3RvX2NwdShleHRfaGRyLT51c1ZDRVRhYmxlT2Zmc2V0 KSArIDEpOwo+ICAgCQkJQVRPTV9QUExJQl9WQ0VfQ2xvY2tfVm9sdGFnZV9MaW1pdF9UYWJsZSAq bGltaXRzID0KPiAgIAkJCQkoQVRPTV9QUExJQl9WQ0VfQ2xvY2tfVm9sdGFnZV9MaW1pdF9UYWJs ZSAqKQo+ICAgCQkJCShtb2RlX2luZm8tPmF0b21fY29udGV4dC0+YmlvcyArIGRhdGFfb2Zmc2V0 ICsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMKPiBpbmRleCBlODU4OTRhLi5lODJhOTlj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMF9oZG1pLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jCj4gQEAgLTIxNSw3ICsyMTUsNyBA QCB2b2lkIHI2MDBfaGRtaV91cGRhdGVfYWNyKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwg bG9uZyBvZmZzZXQsCj4gICAgKiBidWlsZCBhIEhETUkgVmlkZW8gSW5mbyBGcmFtZQo+ICAgICov Cj4gICB2b2lkIHI2MDBfc2V0X2F2aV9wYWNrZXQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs IHUzMiBvZmZzZXQsCj4gLSAgICB1bnNpZ25lZCBjaGFyICpidWZmZXIsIHNpemVfdCBzaXplKQo+ ICsJCQkgdW5zaWduZWQgY2hhciAqYnVmZmVyLCBzaXplX3Qgc2l6ZSkKPiAgIHsKPiAgIAl1aW50 OF90ICpmcmFtZSA9IGJ1ZmZlciArIDM7Cj4gICAKPiBAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQg cjYwMF9oZG1pX2F1ZGlvX3dvcmthcm91bmQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ ICAgfQo+ICAgCj4gICB2b2lkIHI2MDBfaGRtaV9hdWRpb19zZXRfZHRvKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAo+IC0gICAgc3RydWN0IHJhZGVvbl9jcnRjICpjcnRjLCB1bnNpZ25lZCBp bnQgY2xvY2spCj4gKwkJCSAgICAgc3RydWN0IHJhZGVvbl9jcnRjICpjcnRjLCB1bnNpZ25lZCBp bnQgY2xvY2spCj4gICB7Cj4gICAJc3RydWN0IHJhZGVvbl9lbmNvZGVyICpyYWRlb25fZW5jb2Rl cjsKPiAgIAlzdHJ1Y3QgcmFkZW9uX2VuY29kZXJfYXRvbV9kaWcgKmRpZzsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXRvbWJpb3MuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2F0b21iaW9zLmMKPiBpbmRleCBkZTlhMmZmLi5mODA5N2EwIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F0b21iaW9zLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdG9tYmlvcy5jCj4gQEAgLTIwOTUs NyArMjA5NSw3IEBAIHN0YXRpYyBpbnQgcmFkZW9uX2F0b21iaW9zX3BhcnNlX3Bvd2VyX3RhYmxl XzFfMyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAlzdHJ1Y3QgcmFkZW9uX2kyY19i dXNfcmVjIGkyY19idXM7Cj4gICAJdW5pb24gcG93ZXJfaW5mbyAqcG93ZXJfaW5mbzsKPiAgIAlp bnQgaW5kZXggPSBHZXRJbmRleEludG9NYXN0ZXJUYWJsZShEQVRBLCBQb3dlclBsYXlJbmZvKTsK PiAtICAgICAgICB1MTYgZGF0YV9vZmZzZXQ7Cj4gKwl1MTYgZGF0YV9vZmZzZXQ7Cj4gICAJdTgg ZnJldiwgY3JldjsKPiAgIAo+ICAgCWlmICghYXRvbV9wYXJzZV9kYXRhX2hlYWRlcihtb2RlX2lu Zm8tPmF0b21fY29udGV4dCwgaW5kZXgsIE5VTEwsCj4gQEAgLTI1NzUsNyArMjU3NSw3IEBAIHN0 YXRpYyBpbnQgcmFkZW9uX2F0b21iaW9zX3BhcnNlX3Bvd2VyX3RhYmxlXzRfNShzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldikKPiAgIAlib29sIHZhbGlkOwo+ICAgCXVuaW9uIHBvd2VyX2luZm8g KnBvd2VyX2luZm87Cj4gICAJaW50IGluZGV4ID0gR2V0SW5kZXhJbnRvTWFzdGVyVGFibGUoREFU QSwgUG93ZXJQbGF5SW5mbyk7Cj4gLSAgICAgICAgdTE2IGRhdGFfb2Zmc2V0Owo+ICsJdTE2IGRh dGFfb2Zmc2V0Owo+ICAgCXU4IGZyZXYsIGNyZXY7Cj4gICAKPiAgIAlpZiAoIWF0b21fcGFyc2Vf ZGF0YV9oZWFkZXIobW9kZV9pbmZvLT5hdG9tX2NvbnRleHQsIGluZGV4LCBOVUxMLAo+IEBAIC0y NjY2LDcgKzI2NjYsNyBAQCBzdGF0aWMgaW50IHJhZGVvbl9hdG9tYmlvc19wYXJzZV9wb3dlcl90 YWJsZV82KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCWJvb2wgdmFsaWQ7Cj4gICAJ dW5pb24gcG93ZXJfaW5mbyAqcG93ZXJfaW5mbzsKPiAgIAlpbnQgaW5kZXggPSBHZXRJbmRleElu dG9NYXN0ZXJUYWJsZShEQVRBLCBQb3dlclBsYXlJbmZvKTsKPiAtICAgICAgICB1MTYgZGF0YV9v ZmZzZXQ7Cj4gKwl1MTYgZGF0YV9vZmZzZXQ7Cj4gICAJdTggZnJldiwgY3JldjsKPiAgIAl1OCAq cG93ZXJfc3RhdGVfb2Zmc2V0Owo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcmFkZW9uX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGV2 aWNlLmMKPiBpbmRleCA0ZGUyM2FlLi5lYzhkZTFhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2RldmljZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fZGV2aWNlLmMKPiBAQCAtMTE2MSw5ICsxMTYxLDkgQEAgc3RhdGljIHZvaWQgcmFk ZW9uX2NoZWNrX2FyZ3VtZW50cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAkJcmFk ZW9uX3ZtX3NpemUgPSA0Owo+ICAgCX0KPiAgIAo+IC0gICAgICAgLyoKPiAtICAgICAgICAqIE1h eCBHUFVWTSBzaXplIGZvciBDYXltYW4sIFNJIGFuZCBDSSBhcmUgNDAgYml0cy4KPiAtICAgICAg ICAqLwo+ICsJLyoKPiArCSAqIE1heCBHUFVWTSBzaXplIGZvciBDYXltYW4sIFNJIGFuZCBDSSBh cmUgNDAgYml0cy4KPiArCSAqLwo+ICAgCWlmIChyYWRlb25fdm1fc2l6ZSA+IDEwMjQpIHsKPiAg IAkJZGV2X3dhcm4ocmRldi0+ZGV2LCAiVk0gc2l6ZSAoJWQpIHRvbyBsYXJnZSwgbWF4IGlzIDFU QlxuIiwKPiAgIAkJCSByYWRlb25fdm1fc2l6ZSk7Cj4gQEAgLTE5MDIsNyArMTkwMiw3IEBAIGlu dCByYWRlb25fZGVidWdmc19hZGRfZmlsZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4g ICAJaWYgKGkgPiBSQURFT05fREVCVUdGU19NQVhfQ09NUE9ORU5UUykgewo+ICAgCQlEUk1fRVJS T1IoIlJlYWNoZWQgbWF4aW11bSBudW1iZXIgb2YgZGVidWdmcyBjb21wb25lbnRzLlxuIik7Cj4g ICAJCURSTV9FUlJPUigiUmVwb3J0IHNvIHdlIGluY3JlYXNlICIKPiAtCQkgICAgICAgICAgIlJB REVPTl9ERUJVR0ZTX01BWF9DT01QT05FTlRTLlxuIik7Cj4gKwkJCSAgIlJBREVPTl9ERUJVR0ZT X01BWF9DT01QT05FTlRTLlxuIik7Cj4gICAJCXJldHVybiAtRUlOVkFMOwo+ICAgCX0KPiAgIAly ZGV2LT5kZWJ1Z2ZzW3JkZXYtPmRlYnVnZnNfY291bnRdLmZpbGVzID0gZmlsZXM7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYwo+IGluZGV4IGE0Njc0YmYuLjE1MGIyMjAg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jCj4gQEAgLTQwNiw3 ICs0MDYsNyBAQCBzdGF0aWMgdm9pZCByYWRlb25fZmxpcF93b3JrX2Z1bmMoc3RydWN0IHdvcmtf c3RydWN0ICpfX3dvcmspCj4gICAJaW50IHZwb3MsIGhwb3MsIHN0YXQsIG1pbl91ZGVsYXk7Cj4g ICAJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmNydGMtPmRldi0+dmJsYW5rW3dv cmstPmNydGNfaWRdOwo+ICAgCj4gLSAgICAgICAgZG93bl9yZWFkKCZyZGV2LT5leGNsdXNpdmVf bG9jayk7Cj4gKwlkb3duX3JlYWQoJnJkZXYtPmV4Y2x1c2l2ZV9sb2NrKTsKPiAgIAlpZiAod29y ay0+ZmVuY2UpIHsKPiAgIAkJc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2U7Cj4gICAKPiBAQCAt OTA2LDcgKzkwNiw3IEBAIHN0YXRpYyB2b2lkIGF2aXZvX3JlZHVjZV9yYXRpbyh1bnNpZ25lZCAq bm9tLCB1bnNpZ25lZCAqZGVuLAo+ICAgCSpkZW4gLz0gdG1wOwo+ICAgCj4gICAJLyogbWFrZSBz dXJlIG5vbWluYXRvciBpcyBsYXJnZSBlbm91Z2ggKi8KPiAtICAgICAgICBpZiAoKm5vbSA8IG5v bV9taW4pIHsKPiArCWlmICgqbm9tIDwgbm9tX21pbikgewo+ICAgCQl0bXAgPSBESVZfUk9VTkRf VVAobm9tX21pbiwgKm5vbSk7Cj4gICAJCSpub20gKj0gdG1wOwo+ICAgCQkqZGVuICo9IHRtcDsK PiBAQCAtOTQ2LDcgKzk0Niw3IEBAIHN0YXRpYyB2b2lkIGF2aXZvX2dldF9mYl9yZWZfZGl2KHVu c2lnbmVkIG5vbSwgdW5zaWduZWQgZGVuLCB1bnNpZ25lZCBwb3N0X2RpdiwKPiAgIAkqZmJfZGl2 ID0gRElWX1JPVU5EX0NMT1NFU1Qobm9tICogKnJlZl9kaXYgKiBwb3N0X2RpdiwgZGVuKTsKPiAg IAo+ICAgCS8qIGxpbWl0IGZiIGRpdmlkZXIgdG8gaXRzIG1heGltdW0gKi8KPiAtICAgICAgICBp ZiAoKmZiX2RpdiA+IGZiX2Rpdl9tYXgpIHsKPiArCWlmICgqZmJfZGl2ID4gZmJfZGl2X21heCkg ewo+ICAgCQkqcmVmX2RpdiA9IERJVl9ST1VORF9DTE9TRVNUKCpyZWZfZGl2ICogZmJfZGl2X21h eCwgKmZiX2Rpdik7Cj4gICAJCSpmYl9kaXYgPSBmYl9kaXZfbWF4Owo+ICAgCX0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2ZiLmMKPiBpbmRleCBkMmU2MjhlLi40YjJjNzJkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZiLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9mYi5jCj4gQEAgLTM4LDkgKzM4LDkgQEAKPiAgICNpbmNsdWRl IDxsaW51eC92Z2Ffc3dpdGNoZXJvby5oPgo+ICAgCj4gICAvKiBvYmplY3QgaGllcmFyY2h5IC0K PiAtICAgdGhpcyBjb250YWlucyBhIGhlbHBlciArIGEgcmFkZW9uIGZiCj4gLSAgIHRoZSBoZWxw ZXIgY29udGFpbnMgYSBwb2ludGVyIHRvIHJhZGVvbiBmcmFtZWJ1ZmZlciBiYXNlY2xhc3MuCj4g LSovCj4gKyAqIHRoaXMgY29udGFpbnMgYSBoZWxwZXIgKyBhIHJhZGVvbiBmYgo+ICsgKiB0aGUg aGVscGVyIGNvbnRhaW5zIGEgcG9pbnRlciB0byByYWRlb24gZnJhbWVidWZmZXIgYmFzZWNsYXNz Lgo+ICsgKi8KPiAgIHN0cnVjdCByYWRlb25fZmJkZXYgewo+ICAgCXN0cnVjdCBkcm1fZmJfaGVs cGVyIGhlbHBlcjsKPiAgIAlzdHJ1Y3QgcmFkZW9uX2ZyYW1lYnVmZmVyIHJmYjsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25faWIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2liLmMKPiBpbmRleCBjMzljZTFmLi45MmNlMGU1IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2liLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9pYi5jCj4gQEAgLTI3NCw3ICsyNzQsNyBAQCBpbnQgcmFkZW9u X2liX3JpbmdfdGVzdHMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJCQlpZiAoaSA9 PSBSQURFT05fUklOR19UWVBFX0dGWF9JTkRFWCkgewo+ICAgCQkJCS8qIG9oLCBvaCwgdGhhdCdz IHJlYWxseSBiYWQgKi8KPiAgIAkJCQlEUk1fRVJST1IoInJhZGVvbjogZmFpbGVkIHRlc3Rpbmcg SUIgb24gR0ZYIHJpbmcgKCVkKS5cbiIsIHIpOwo+IC0JCSAgICAgICAgICAgICAgICByZGV2LT5h Y2NlbF93b3JraW5nID0gZmFsc2U7Cj4gKwkJCQlyZGV2LT5hY2NlbF93b3JraW5nID0gZmFsc2U7 Cj4gICAJCQkJcmV0dXJuIHI7Cj4gICAKPiAgIAkJCX0gZWxzZSB7Cj4gQEAgLTMwNCw3ICszMDQs NyBAQCBzdGF0aWMgaW50IHJhZGVvbl9kZWJ1Z2ZzX3NhX2luZm8oc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICpkYXRhKQo+ICAgfQo+ICAgCj4gICBzdGF0aWMgc3RydWN0IGRybV9pbmZvX2xpc3Qg cmFkZW9uX2RlYnVnZnNfc2FfbGlzdFtdID0gewo+IC0gICAgICAgIHsicmFkZW9uX3NhX2luZm8i LCAmcmFkZW9uX2RlYnVnZnNfc2FfaW5mbywgMCwgTlVMTH0sCj4gKwl7InJhZGVvbl9zYV9pbmZv IiwgJnJhZGVvbl9kZWJ1Z2ZzX3NhX2luZm8sIDAsIE5VTEx9LAo+ICAgfTsKPiAgIAo+ICAgI2Vu ZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9l bmNvZGVycy5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fbGVnYWN5X2VuY29kZXJz LmMKPiBpbmRleCA4OGRjOTczLi44NjhjM2JhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX2xlZ2FjeV9lbmNvZGVycy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fbGVnYWN5X2VuY29kZXJzLmMKPiBAQCAtODE4LDUyICs4MTgsNTIgQEAg c3RhdGljIHZvaWQgcmFkZW9uX2xlZ2FjeV90bWRzX2ludF9tb2RlX3NldChzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsCj4gICAJdG1kc190cmFuc21pdHRlcl9jbnRsID0gUlJFRzMyKFJBREVP Tl9UTURTX1RSQU5TTUlUVEVSX0NOVEwpICYKPiAgIAkJfihSQURFT05fVE1EU19UUkFOU01JVFRF Ul9QTExSU1QpOwo+ICAgCj4gLSAgICBpZiAocmRldi0+ZmFtaWx5ID09IENISVBfUjIwMCB8fAo+ IC0JcmRldi0+ZmFtaWx5ID09IENISVBfUjEwMCB8fAo+IC0JQVNJQ19JU19SMzAwKHJkZXYpKQo+ IC0JICAgIHRtZHNfdHJhbnNtaXR0ZXJfY250bCAmPSB+KFJBREVPTl9UTURTX1RSQU5TTUlUVEVS X1BMTEVOKTsKPiAtICAgIGVsc2UgLyogUlYgY2hpcHMgZ290IHRoaXMgYml0IHJldmVyc2VkICov Cj4gLQkgICAgdG1kc190cmFuc21pdHRlcl9jbnRsIHw9IFJBREVPTl9UTURTX1RSQU5TTUlUVEVS X1BMTEVOOwo+IC0KPiAtICAgIGZwX2dlbl9jbnRsID0gKFJSRUczMihSQURFT05fRlBfR0VOX0NO VEwpIHwKPiAtCQkgICAoUkFERU9OX0ZQX0NSVENfRE9OVF9TSEFET1dfVlBBUiB8Cj4gLQkJICAg IFJBREVPTl9GUF9DUlRDX0RPTlRfU0hBRE9XX0hFTkQpKTsKPiAtCj4gLSAgICBmcF9nZW5fY250 bCAmPSB+KFJBREVPTl9GUF9GUE9OIHwgUkFERU9OX0ZQX1RNRFNfRU4pOwo+IC0KPiAtICAgIGZw X2dlbl9jbnRsICY9IH4oUkFERU9OX0ZQX1JNWF9IVlNZTkNfQ09OVFJPTF9FTiB8Cj4gLQkJICAg ICBSQURFT05fRlBfREZQX1NZTkNfU0VMIHwKPiAtCQkgICAgIFJBREVPTl9GUF9DUlRfU1lOQ19T RUwgfAo+IC0JCSAgICAgUkFERU9OX0ZQX0NSVENfTE9DS184RE9UIHwKPiAtCQkgICAgIFJBREVP Tl9GUF9VU0VfU0hBRE9XX0VOIHwKPiAtCQkgICAgIFJBREVPTl9GUF9DUlRDX1VTRV9TSEFET1df VkVORCB8Cj4gLQkJICAgICBSQURFT05fRlBfQ1JUX1NZTkNfQUxUKTsKPiAtCj4gLSAgICBpZiAo MSkgLyogIEZJWE1FIHJnYkJpdHMgPT0gOCAqLwo+IC0JICAgIGZwX2dlbl9jbnRsIHw9IFJBREVP Tl9GUF9QQU5FTF9GT1JNQVQ7ICAvKiAyNCBiaXQgZm9ybWF0ICovCj4gLSAgICBlbHNlCj4gLQkg ICAgZnBfZ2VuX2NudGwgJj0gflJBREVPTl9GUF9QQU5FTF9GT1JNQVQ7LyogMTggYml0IGZvcm1h dCAqLwo+IC0KPiAtICAgIGlmIChyYWRlb25fY3J0Yy0+Y3J0Y19pZCA9PSAwKSB7Cj4gLQkgICAg aWYgKEFTSUNfSVNfUjMwMChyZGV2KSB8fCByZGV2LT5mYW1pbHkgPT0gQ0hJUF9SMjAwKSB7Cj4g LQkJICAgIGZwX2dlbl9jbnRsICY9IH5SMjAwX0ZQX1NPVVJDRV9TRUxfTUFTSzsKPiAtCQkgICAg aWYgKHJhZGVvbl9lbmNvZGVyLT5ybXhfdHlwZSAhPSBSTVhfT0ZGKQo+IC0JCQkgICAgZnBfZ2Vu X2NudGwgfD0gUjIwMF9GUF9TT1VSQ0VfU0VMX1JNWDsKPiAtCQkgICAgZWxzZQo+IC0JCQkgICAg ZnBfZ2VuX2NudGwgfD0gUjIwMF9GUF9TT1VSQ0VfU0VMX0NSVEMxOwo+IC0JICAgIH0gZWxzZQo+ IC0JCSAgICBmcF9nZW5fY250bCAmPSB+UkFERU9OX0ZQX1NFTF9DUlRDMjsKPiAtICAgIH0gZWxz ZSB7Cj4gLQkgICAgaWYgKEFTSUNfSVNfUjMwMChyZGV2KSB8fCByZGV2LT5mYW1pbHkgPT0gQ0hJ UF9SMjAwKSB7Cj4gLQkJICAgIGZwX2dlbl9jbnRsICY9IH5SMjAwX0ZQX1NPVVJDRV9TRUxfTUFT SzsKPiAtCQkgICAgZnBfZ2VuX2NudGwgfD0gUjIwMF9GUF9TT1VSQ0VfU0VMX0NSVEMyOwo+IC0J ICAgIH0gZWxzZQo+IC0JCSAgICBmcF9nZW5fY250bCB8PSBSQURFT05fRlBfU0VMX0NSVEMyOwo+ IC0gICAgfQo+IC0KPiAtICAgIFdSRUczMihSQURFT05fVE1EU19QTExfQ05UTCwgdG1kc19wbGxf Y250bCk7Cj4gLSAgICBXUkVHMzIoUkFERU9OX1RNRFNfVFJBTlNNSVRURVJfQ05UTCwgdG1kc190 cmFuc21pdHRlcl9jbnRsKTsKPiAtICAgIFdSRUczMihSQURFT05fRlBfR0VOX0NOVEwsIGZwX2dl bl9jbnRsKTsKPiArCWlmIChyZGV2LT5mYW1pbHkgPT0gQ0hJUF9SMjAwIHx8Cj4gKwkgICAgcmRl di0+ZmFtaWx5ID09IENISVBfUjEwMCB8fAo+ICsJICAgIEFTSUNfSVNfUjMwMChyZGV2KSkKPiAr CQl0bWRzX3RyYW5zbWl0dGVyX2NudGwgJj0gfihSQURFT05fVE1EU19UUkFOU01JVFRFUl9QTExF Tik7Cj4gKwllbHNlIC8qIFJWIGNoaXBzIGdvdCB0aGlzIGJpdCByZXZlcnNlZCAqLwo+ICsJCXRt ZHNfdHJhbnNtaXR0ZXJfY250bCB8PSBSQURFT05fVE1EU19UUkFOU01JVFRFUl9QTExFTjsKPiAr Cj4gKwlmcF9nZW5fY250bCA9IChSUkVHMzIoUkFERU9OX0ZQX0dFTl9DTlRMKSB8Cj4gKwkJICAg ICAgKFJBREVPTl9GUF9DUlRDX0RPTlRfU0hBRE9XX1ZQQVIgfAo+ICsJCSAgICAgICBSQURFT05f RlBfQ1JUQ19ET05UX1NIQURPV19IRU5EKSk7Cj4gKwo+ICsJZnBfZ2VuX2NudGwgJj0gfihSQURF T05fRlBfRlBPTiB8IFJBREVPTl9GUF9UTURTX0VOKTsKPiArCj4gKwlmcF9nZW5fY250bCAmPSB+ KFJBREVPTl9GUF9STVhfSFZTWU5DX0NPTlRST0xfRU4gfAo+ICsJCQkgUkFERU9OX0ZQX0RGUF9T WU5DX1NFTCB8Cj4gKwkJCSBSQURFT05fRlBfQ1JUX1NZTkNfU0VMIHwKPiArCQkJIFJBREVPTl9G UF9DUlRDX0xPQ0tfOERPVCB8Cj4gKwkJCSBSQURFT05fRlBfVVNFX1NIQURPV19FTiB8Cj4gKwkJ CSBSQURFT05fRlBfQ1JUQ19VU0VfU0hBRE9XX1ZFTkQgfAo+ICsJCQkgUkFERU9OX0ZQX0NSVF9T WU5DX0FMVCk7Cj4gKwo+ICsJaWYgKDEpIC8qICBGSVhNRSByZ2JCaXRzID09IDggKi8KPiArCQlm cF9nZW5fY250bCB8PSBSQURFT05fRlBfUEFORUxfRk9STUFUOyAgLyogMjQgYml0IGZvcm1hdCAq Lwo+ICsJZWxzZQo+ICsJCWZwX2dlbl9jbnRsICY9IH5SQURFT05fRlBfUEFORUxfRk9STUFUOy8q IDE4IGJpdCBmb3JtYXQgKi8KPiArCj4gKwlpZiAocmFkZW9uX2NydGMtPmNydGNfaWQgPT0gMCkg ewo+ICsJCWlmIChBU0lDX0lTX1IzMDAocmRldikgfHwgcmRldi0+ZmFtaWx5ID09IENISVBfUjIw MCkgewo+ICsJCQlmcF9nZW5fY250bCAmPSB+UjIwMF9GUF9TT1VSQ0VfU0VMX01BU0s7Cj4gKwkJ CWlmIChyYWRlb25fZW5jb2Rlci0+cm14X3R5cGUgIT0gUk1YX09GRikKPiArCQkJCWZwX2dlbl9j bnRsIHw9IFIyMDBfRlBfU09VUkNFX1NFTF9STVg7Cj4gKwkJCWVsc2UKPiArCQkJCWZwX2dlbl9j bnRsIHw9IFIyMDBfRlBfU09VUkNFX1NFTF9DUlRDMTsKPiArCQl9IGVsc2UKPiArCQkJZnBfZ2Vu X2NudGwgJj0gflJBREVPTl9GUF9TRUxfQ1JUQzI7Cj4gKwl9IGVsc2Ugewo+ICsJCWlmIChBU0lD X0lTX1IzMDAocmRldikgfHwgcmRldi0+ZmFtaWx5ID09IENISVBfUjIwMCkgewo+ICsJCQlmcF9n ZW5fY250bCAmPSB+UjIwMF9GUF9TT1VSQ0VfU0VMX01BU0s7Cj4gKwkJCWZwX2dlbl9jbnRsIHw9 IFIyMDBfRlBfU09VUkNFX1NFTF9DUlRDMjsKPiArCQl9IGVsc2UKPiArCQkJZnBfZ2VuX2NudGwg fD0gUkFERU9OX0ZQX1NFTF9DUlRDMjsKPiArCX0KPiArCj4gKwlXUkVHMzIoUkFERU9OX1RNRFNf UExMX0NOVEwsIHRtZHNfcGxsX2NudGwpOwo+ICsJV1JFRzMyKFJBREVPTl9UTURTX1RSQU5TTUlU VEVSX0NOVEwsIHRtZHNfdHJhbnNtaXR0ZXJfY250bCk7Cj4gKwlXUkVHMzIoUkFERU9OX0ZQX0dF Tl9DTlRMLCBmcF9nZW5fY250bCk7Cj4gICAKPiAgIAlpZiAocmRldi0+aXNfYXRvbV9iaW9zKQo+ ICAgCQlyYWRlb25fYXRvbWJpb3NfZW5jb2Rlcl9jcnRjX3NjcmF0Y2hfcmVncyhlbmNvZGVyLCBy YWRlb25fY3J0Yy0+Y3J0Y19pZCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcmFkZW9uX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0 LmMKPiBpbmRleCBmYjZhZDE0Li5kZDQ2YzM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcmFkZW9uX29iamVjdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb25fb2JqZWN0LmMKPiBAQCAtMjE0LDggKzIxNCw4IEBAIGludCByYWRlb25fYm9fY3JlYXRl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCUlOSVRfTElTVF9IRUFEKCZiby0+bGlz dCk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJmJvLT52YSk7Cj4gICAJYm8tPmluaXRpYWxfZG9tYWlu ID0gZG9tYWluICYgKFJBREVPTl9HRU1fRE9NQUlOX1ZSQU0gfAo+IC0JICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJBREVPTl9HRU1fRE9NQUlOX0dUVCB8Cj4gLQkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUkFERU9OX0dFTV9ET01BSU5fQ1BVKTsKPiArCQkJCSAgICAgICBS QURFT05fR0VNX0RPTUFJTl9HVFQgfAo+ICsJCQkJICAgICAgIFJBREVPTl9HRU1fRE9NQUlOX0NQ VSk7Cj4gICAKPiAgIAliby0+ZmxhZ3MgPSBmbGFnczsKPiAgIAkvKiBQQ0kgR0FSVCBpcyBhbHdh eXMgc25vb3BlZCAqLwo+IEBAIC04NDgsNyArODQ4LDcgQEAgaW50IHJhZGVvbl9ib193YWl0KHN0 cnVjdCByYWRlb25fYm8gKmJvLCB1MzIgKm1lbV90eXBlLCBib29sIG5vX3dhaXQpCj4gICAgKgo+ ICAgICovCj4gICB2b2lkIHJhZGVvbl9ib19mZW5jZShzdHJ1Y3QgcmFkZW9uX2JvICpibywgc3Ry dWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UsCj4gLSAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hh cmVkKQo+ICsJCSAgICAgYm9vbCBzaGFyZWQpCj4gICB7Cj4gICAJc3RydWN0IHJlc2VydmF0aW9u X29iamVjdCAqcmVzdiA9IGJvLT50Ym8ucmVzdjsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fcG0uYwo+IGluZGV4IDQ2MGM4ZjIuLjM3NDhhNjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3BtLmMKPiBAQCAtNzksNyArNzksNyBAQCB2b2lkIHJhZGVvbl9wbV9hY3BpX2V2ZW50 X2hhbmRsZXIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJCQkJcmFkZW9uX2RwbV9l bmFibGVfYmFwbShyZGV2LCByZGV2LT5wbS5kcG0uYWNfcG93ZXIpOwo+ICAgCQl9Cj4gICAJCW11 dGV4X3VubG9jaygmcmRldi0+cG0ubXV0ZXgpOwo+IC0gICAgICAgIH0gZWxzZSBpZiAocmRldi0+ cG0ucG1fbWV0aG9kID09IFBNX01FVEhPRF9QUk9GSUxFKSB7Cj4gKwl9IGVsc2UgaWYgKHJkZXYt PnBtLnBtX21ldGhvZCA9PSBQTV9NRVRIT0RfUFJPRklMRSkgewo+ICAgCQlpZiAocmRldi0+cG0u cHJvZmlsZSA9PSBQTV9QUk9GSUxFX0FVVE8pIHsKPiAgIAkJCW11dGV4X2xvY2soJnJkZXYtPnBt Lm11dGV4KTsKPiAgIAkJCXJhZGVvbl9wbV91cGRhdGVfcHJvZmlsZShyZGV2KTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBob3JlLmMgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUuYwo+IGluZGV4IGU2YWQ1NGMuLmIwZWIy OGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fc2VtYXBob3Jl LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9zZW1hcGhvcmUuYwo+IEBA IC01Niw3ICs1Niw3IEBAIGludCByYWRlb25fc2VtYXBob3JlX2NyZWF0ZShzdHJ1Y3QgcmFkZW9u X2RldmljZSAqcmRldiwKPiAgIH0KPiAgIAo+ICAgYm9vbCByYWRlb25fc2VtYXBob3JlX2VtaXRf c2lnbmFsKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmlkeCwKPiAtCQkJICAgICAg ICAgIHN0cnVjdCByYWRlb25fc2VtYXBob3JlICpzZW1hcGhvcmUpCj4gKwkJCQkgIHN0cnVjdCBy YWRlb25fc2VtYXBob3JlICpzZW1hcGhvcmUpCj4gICB7Cj4gICAJc3RydWN0IHJhZGVvbl9yaW5n ICpyaW5nID0gJnJkZXYtPnJpbmdbcmlkeF07Cj4gICAKPiBAQCAtNzMsNyArNzMsNyBAQCBib29s IHJhZGVvbl9zZW1hcGhvcmVfZW1pdF9zaWduYWwoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs IGludCByaWR4LAo+ICAgfQo+ICAgCj4gICBib29sIHJhZGVvbl9zZW1hcGhvcmVfZW1pdF93YWl0 KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmlkeCwKPiAtCQkJICAgICAgICBzdHJ1 Y3QgcmFkZW9uX3NlbWFwaG9yZSAqc2VtYXBob3JlKQo+ICsJCQkJc3RydWN0IHJhZGVvbl9zZW1h cGhvcmUgKnNlbWFwaG9yZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcgPSAm cmRldi0+cmluZ1tyaWR4XTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl91dmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2ZC5jCj4g aW5kZXggNmVkY2I1NC4uNmZlOWU0ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3JhZGVvbl91dmQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3V2 ZC5jCj4gQEAgLTcyMiw5ICs3MjIsMTEgQEAgc3RhdGljIGludCByYWRlb25fdXZkX3NlbmRfbXNn KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCXJldHVybiByOwo+ICAgfQo+ICAgCj4g LS8qIG11bHRpcGxlIGZlbmNlIGNvbW1hbmRzIHdpdGhvdXQgYW55IHN0cmVhbSBjb21tYW5kcyBp biBiZXR3ZWVuIGNhbgo+IC0gICBjcmFzaCB0aGUgdmNwdSBzbyBqdXN0IHRyeSB0byBlbW1pdCBh IGR1bW15IGNyZWF0ZS9kZXN0cm95IG1zZyB0bwo+IC0gICBhdm9pZCB0aGlzICovCj4gKy8qCj4g KyAqIG11bHRpcGxlIGZlbmNlIGNvbW1hbmRzIHdpdGhvdXQgYW55IHN0cmVhbSBjb21tYW5kcyBp biBiZXR3ZWVuIGNhbgo+ICsgKiBjcmFzaCB0aGUgdmNwdSBzbyBqdXN0IHRyeSB0byBlbW1pdCBh IGR1bW15IGNyZWF0ZS9kZXN0cm95IG1zZyB0bwo+ICsgKiBhdm9pZCB0aGlzCj4gKyAqLwo+ICAg aW50IHJhZGVvbl91dmRfZ2V0X2NyZWF0ZV9tc2coc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYs IGludCByaW5nLAo+ICAgCQkJICAgICAgdWludDMyX3QgaGFuZGxlLCBzdHJ1Y3QgcmFkZW9uX2Zl bmNlICoqZmVuY2UpCj4gICB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3ZjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdmNlLmMKPiBpbmRl eCA1NjZhMWEwLi5jMWM2MTlmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX3ZjZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdmNlLmMK PiBAQCAtMTY2LDcgKzE2Niw3IEBAIGludCByYWRlb25fdmNlX2luaXQoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpCj4gICAJZm9yIChpID0gMDsgaSA8IFJBREVPTl9NQVhfVkNFX0hBTkRMRVM7 ICsraSkgewo+ICAgCQlhdG9taWNfc2V0KCZyZGV2LT52Y2UuaGFuZGxlc1tpXSwgMCk7Cj4gICAJ CXJkZXYtPnZjZS5maWxwW2ldID0gTlVMTDsKPiAtICAgICAgICB9Cj4gKwl9Cj4gICAKPiAgIAly ZXR1cm4gMDsKPiAgIH0KPiBAQCAtMzg5LDcgKzM4OSw3IEBAIGludCByYWRlb25fdmNlX2dldF9j cmVhdGVfbXNnKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZywKPiAgIAo+ICAg CXIgPSByYWRlb25faWJfc2NoZWR1bGUocmRldiwgJmliLCBOVUxMLCBmYWxzZSk7Cj4gICAJaWYg KHIpIHsKPiAtCSAgICAgICAgRFJNX0VSUk9SKCJyYWRlb246IGZhaWxlZCB0byBzY2hlZHVsZSBp YiAoJWQpLlxuIiwgcik7Cj4gKwkJRFJNX0VSUk9SKCJyYWRlb246IGZhaWxlZCB0byBzY2hlZHVs ZSBpYiAoJWQpLlxuIiwgcik7Cj4gICAJfQo+ICAgCj4gICAJaWYgKGZlbmNlKQo+IEBAIC00NDYs NyArNDQ2LDcgQEAgaW50IHJhZGVvbl92Y2VfZ2V0X2Rlc3Ryb3lfbXNnKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCBpbnQgcmluZywKPiAgIAo+ICAgCXIgPSByYWRlb25faWJfc2NoZWR1bGUo cmRldiwgJmliLCBOVUxMLCBmYWxzZSk7Cj4gICAJaWYgKHIpIHsKPiAtCSAgICAgICAgRFJNX0VS Uk9SKCJyYWRlb246IGZhaWxlZCB0byBzY2hlZHVsZSBpYiAoJWQpLlxuIiwgcik7Cj4gKwkJRFJN X0VSUk9SKCJyYWRlb246IGZhaWxlZCB0byBzY2hlZHVsZSBpYiAoJWQpLlxuIiwgcik7Cj4gICAJ fQo+ICAgCj4gICAJaWYgKGZlbmNlKQo+IEBAIC03NjksMTggKzc2OSwxOCBAQCBpbnQgcmFkZW9u X3ZjZV9yaW5nX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRlb25f cmluZyAqcmluZykKPiAgIAlyYWRlb25fcmluZ191bmxvY2tfY29tbWl0KHJkZXYsIHJpbmcsIGZh bHNlKTsKPiAgIAo+ICAgCWZvciAoaSA9IDA7IGkgPCByZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykg ewo+IC0JICAgICAgICBpZiAodmNlX3YxXzBfZ2V0X3JwdHIocmRldiwgcmluZykgIT0gcnB0cikK PiAtCSAgICAgICAgICAgICAgICBicmVhazsKPiAtCSAgICAgICAgRFJNX1VERUxBWSgxKTsKPiAr CQlpZiAodmNlX3YxXzBfZ2V0X3JwdHIocmRldiwgcmluZykgIT0gcnB0cikKPiArCQkJYnJlYWs7 Cj4gKwkJRFJNX1VERUxBWSgxKTsKPiAgIAl9Cj4gICAKPiAgIAlpZiAoaSA8IHJkZXYtPnVzZWNf dGltZW91dCkgewo+IC0JICAgICAgICBEUk1fSU5GTygicmluZyB0ZXN0IG9uICVkIHN1Y2NlZWRl ZCBpbiAlZCB1c2Vjc1xuIiwKPiAtCSAgICAgICAgICAgICAgICAgcmluZy0+aWR4LCBpKTsKPiAr CQlEUk1fSU5GTygicmluZyB0ZXN0IG9uICVkIHN1Y2NlZWRlZCBpbiAlZCB1c2Vjc1xuIiwKPiAr CQkJIHJpbmctPmlkeCwgaSk7Cj4gICAJfSBlbHNlIHsKPiAtCSAgICAgICAgRFJNX0VSUk9SKCJy YWRlb246IHJpbmcgJWQgdGVzdCBmYWlsZWRcbiIsCj4gLQkgICAgICAgICAgICAgICAgICByaW5n LT5pZHgpOwo+IC0JICAgICAgICByID0gLUVUSU1FRE9VVDsKPiArCQlEUk1fRVJST1IoInJhZGVv bjogcmluZyAlZCB0ZXN0IGZhaWxlZFxuIiwKPiArCQkJIHJpbmctPmlkeCk7Cj4gKwkJciA9IC1F VElNRURPVVQ7Cj4gICAJfQo+ICAgCj4gICAJcmV0dXJuIHI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl92bS5jCj4gaW5kZXggMzk3OTYzMi4uYTEzNTg3NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl92bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb25fdm0uYwo+IEBAIC02MTEsMTUgKzYxMSwxNiBAQCB1aW50NjRfdCByYWRlb25fdm1f bWFwX2dhcnQoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHVpbnQ2NF90IGFkZHIpCj4gICAg Ki8KPiAgIHN0YXRpYyB1aW50MzJfdCByYWRlb25fdm1fcGFnZV9mbGFncyh1aW50MzJfdCBmbGFn cykKPiAgIHsKPiAtICAgICAgICB1aW50MzJfdCBod19mbGFncyA9IDA7Cj4gLSAgICAgICAgaHdf ZmxhZ3MgfD0gKGZsYWdzICYgUkFERU9OX1ZNX1BBR0VfVkFMSUQpID8gUjYwMF9QVEVfVkFMSUQg OiAwOwo+IC0gICAgICAgIGh3X2ZsYWdzIHw9IChmbGFncyAmIFJBREVPTl9WTV9QQUdFX1JFQURB QkxFKSA/IFI2MDBfUFRFX1JFQURBQkxFIDogMDsKPiAtICAgICAgICBod19mbGFncyB8PSAoZmxh Z3MgJiBSQURFT05fVk1fUEFHRV9XUklURUFCTEUpID8gUjYwMF9QVEVfV1JJVEVBQkxFIDogMDsK PiAtICAgICAgICBpZiAoZmxhZ3MgJiBSQURFT05fVk1fUEFHRV9TWVNURU0pIHsKPiAtICAgICAg ICAgICAgICAgIGh3X2ZsYWdzIHw9IFI2MDBfUFRFX1NZU1RFTTsKPiAtICAgICAgICAgICAgICAg IGh3X2ZsYWdzIHw9IChmbGFncyAmIFJBREVPTl9WTV9QQUdFX1NOT09QRUQpID8gUjYwMF9QVEVf U05PT1BFRCA6IDA7Cj4gLSAgICAgICAgfQo+IC0gICAgICAgIHJldHVybiBod19mbGFnczsKPiAr CXVpbnQzMl90IGh3X2ZsYWdzID0gMDsKPiArCj4gKwlod19mbGFncyB8PSAoZmxhZ3MgJiBSQURF T05fVk1fUEFHRV9WQUxJRCkgPyBSNjAwX1BURV9WQUxJRCA6IDA7Cj4gKwlod19mbGFncyB8PSAo ZmxhZ3MgJiBSQURFT05fVk1fUEFHRV9SRUFEQUJMRSkgPyBSNjAwX1BURV9SRUFEQUJMRSA6IDA7 Cj4gKwlod19mbGFncyB8PSAoZmxhZ3MgJiBSQURFT05fVk1fUEFHRV9XUklURUFCTEUpID8gUjYw MF9QVEVfV1JJVEVBQkxFIDogMDsKPiArCWlmIChmbGFncyAmIFJBREVPTl9WTV9QQUdFX1NZU1RF TSkgewo+ICsJCWh3X2ZsYWdzIHw9IFI2MDBfUFRFX1NZU1RFTTsKPiArCQlod19mbGFncyB8PSAo ZmxhZ3MgJiBSQURFT05fVk1fUEFHRV9TTk9PUEVEKSA/IFI2MDBfUFRFX1NOT09QRUQgOiAwOwo+ ICsJfQo+ICsJcmV0dXJuIGh3X2ZsYWdzOwo+ICAgfQo+ICAgCj4gICAvKioKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yczc4MF9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vcnM3ODBfZHBtLmMKPiBpbmRleCBjYjBhZmU3Li45NGI0OGZjIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnM3ODBfZHBtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3JzNzgwX2RwbS5jCj4gQEAgLTc5NSw3ICs3OTUsNyBAQCBzdGF0aWMgaW50IHJz NzgwX3BhcnNlX3Bvd2VyX3RhYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCXVu aW9uIHBwbGliX2Nsb2NrX2luZm8gKmNsb2NrX2luZm87Cj4gICAJdW5pb24gcG93ZXJfaW5mbyAq cG93ZXJfaW5mbzsKPiAgIAlpbnQgaW5kZXggPSBHZXRJbmRleEludG9NYXN0ZXJUYWJsZShEQVRB LCBQb3dlclBsYXlJbmZvKTsKPiAtICAgICAgICB1MTYgZGF0YV9vZmZzZXQ7Cj4gKwl1MTYgZGF0 YV9vZmZzZXQ7Cj4gICAJdTggZnJldiwgY3JldjsKPiAgIAlzdHJ1Y3QgaWdwX3BzICpwczsKPiAg IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2Nnh4X2RwbS5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9ydjZ4eF9kcG0uYwo+IGluZGV4IDk3ZTVhNmYuLjI1ZTI5MzAg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjZ4eF9kcG0uYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY2eHhfZHBtLmMKPiBAQCAtMjA5LDcgKzIwOSw3IEBA IHN0YXRpYyBzdHJ1Y3QgcnY2eHhfc2Nsa19zdGVwcGluZyBydjZ4eF9uZXh0X3Zjb19zdGVwKHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2Cj4gICAKPiAgIHN0YXRpYyBib29sIHJ2Nnh4X2Nhbl9z dGVwX3Bvc3RfZGl2KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJCSAgICBzdHJ1 Y3QgcnY2eHhfc2Nsa19zdGVwcGluZyAqY3VyLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgcnY2eHhfc2Nsa19zdGVwcGluZyAqdGFyZ2V0KQo+ICsJCQkJICAg IHN0cnVjdCBydjZ4eF9zY2xrX3N0ZXBwaW5nICp0YXJnZXQpCj4gICB7Cj4gICAJcmV0dXJuIChj dXItPnBvc3RfZGl2aWRlciA+IHRhcmdldC0+cG9zdF9kaXZpZGVyKSAmJgo+ICAgCQkoKGN1ci0+ dmNvX2ZyZXF1ZW5jeSAqIHRhcmdldC0+cG9zdF9kaXZpZGVyKSA8PQo+IEBAIC0yMzksNyArMjM5 LDcgQEAgc3RhdGljIGJvb2wgcnY2eHhfcmVhY2hlZF9zdGVwcGluZ190YXJnZXQoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAKPiAgIHN0YXRpYyB2b2lkIHJ2Nnh4X2dlbmVyYXRlX3N0 ZXBzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJCSB1MzIgbG93LCB1MzIgaGln aCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIHN0YXJ0X2luZGV4LCB1 OCAqZW5kX2luZGV4KQo+ICsJCQkJIHUzMiBzdGFydF9pbmRleCwgdTggKmVuZF9pbmRleCkKPiAg IHsKPiAgIAlzdHJ1Y3QgcnY2eHhfc2Nsa19zdGVwcGluZyBjdXI7Cj4gICAJc3RydWN0IHJ2Nnh4 X3NjbGtfc3RlcHBpbmcgdGFyZ2V0Owo+IEBAIC0xMzU2LDIzICsxMzU2LDIzIEBAIHN0YXRpYyB2 b2lkIHJ2Nnh4X3NldF9kcG1fZXZlbnRfc291cmNlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl diwgdTMyIHNvdXJjZXMpCj4gICAJZW51bSByYWRlb25fZHBtX2V2ZW50X3NyYyBkcG1fZXZlbnRf c3JjOwo+ICAgCj4gICAJc3dpdGNoIChzb3VyY2VzKSB7Cj4gLSAgICAgICAgY2FzZSAwOgo+IC0g ICAgICAgIGRlZmF1bHQ6Cj4gKwljYXNlIDA6Cj4gKwlkZWZhdWx0Ogo+ICAgCQl3YW50X3RoZXJt YWxfcHJvdGVjdGlvbiA9IGZhbHNlOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlICgxIDw8 IFJBREVPTl9EUE1fQVVUT19USFJPVFRMRV9TUkNfVEhFUk1BTCk6Cj4gKwljYXNlICgxIDw8IFJB REVPTl9EUE1fQVVUT19USFJPVFRMRV9TUkNfVEhFUk1BTCk6Cj4gICAJCXdhbnRfdGhlcm1hbF9w cm90ZWN0aW9uID0gdHJ1ZTsKPiAgIAkJZHBtX2V2ZW50X3NyYyA9IFJBREVPTl9EUE1fRVZFTlRf U1JDX0RJR0lUQUw7Cj4gICAJCWJyZWFrOwo+ICAgCj4gLSAgICAgICAgY2FzZSAoMSA8PCBSQURF T05fRFBNX0FVVE9fVEhST1RUTEVfU1JDX0VYVEVSTkFMKToKPiArCWNhc2UgKDEgPDwgUkFERU9O X0RQTV9BVVRPX1RIUk9UVExFX1NSQ19FWFRFUk5BTCk6Cj4gICAJCXdhbnRfdGhlcm1hbF9wcm90 ZWN0aW9uID0gdHJ1ZTsKPiAgIAkJZHBtX2V2ZW50X3NyYyA9IFJBREVPTl9EUE1fRVZFTlRfU1JD X0VYVEVSTkFMOwo+ICAgCQlicmVhazsKPiAgIAo+IC0gICAgICAgIGNhc2UgKCgxIDw8IFJBREVP Tl9EUE1fQVVUT19USFJPVFRMRV9TUkNfRVhURVJOQUwpIHwKPiArCWNhc2UgKCgxIDw8IFJBREVP Tl9EUE1fQVVUT19USFJPVFRMRV9TUkNfRVhURVJOQUwpIHwKPiAgIAkgICAgICAoMSA8PCBSQURF T05fRFBNX0FVVE9fVEhST1RUTEVfU1JDX1RIRVJNQUwpKToKPiAtCQl3YW50X3RoZXJtYWxfcHJv dGVjdGlvbiA9IHRydWU7Cj4gKwkJCXdhbnRfdGhlcm1hbF9wcm90ZWN0aW9uID0gdHJ1ZTsKPiAg IAkJZHBtX2V2ZW50X3NyYyA9IFJBREVPTl9EUE1fRVZFTlRfU1JDX0RJR0lBTF9PUl9FWFRFUk5B TDsKPiAgIAkJYnJlYWs7Cj4gICAJfQo+IEBAIC0xODc5LDcgKzE4NzksNyBAQCBzdGF0aWMgaW50 IHJ2Nnh4X3BhcnNlX3Bvd2VyX3RhYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAg CXVuaW9uIHBwbGliX2Nsb2NrX2luZm8gKmNsb2NrX2luZm87Cj4gICAJdW5pb24gcG93ZXJfaW5m byAqcG93ZXJfaW5mbzsKPiAgIAlpbnQgaW5kZXggPSBHZXRJbmRleEludG9NYXN0ZXJUYWJsZShE QVRBLCBQb3dlclBsYXlJbmZvKTsKPiAtICAgICAgICB1MTYgZGF0YV9vZmZzZXQ7Cj4gKwl1MTYg ZGF0YV9vZmZzZXQ7Cj4gICAJdTggZnJldiwgY3JldjsKPiAgIAlzdHJ1Y3QgcnY2eHhfcHMgKnBz Owo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NDBfZHBtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzQwX2RwbS5jCj4gaW5kZXggYzRjOGRhNS4uNGI4 NTA4MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3J2NzQwX2RwbS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc0MF9kcG0uYwo+IEBAIC0zNiwyOCArMzYs MjggQEAgdTMyIHJ2NzQwX2dldF9kZWNvZGVkX3JlZmVyZW5jZV9kaXZpZGVyKHUzMiBlbmNvZGVk X3JlZikKPiAgIAl1MzIgcmVmID0gMDsKPiAgIAo+ICAgCXN3aXRjaCAoZW5jb2RlZF9yZWYpIHsK PiAtICAgICAgICBjYXNlIDA6Cj4gKwljYXNlIDA6Cj4gICAJCXJlZiA9IDE7Cj4gICAJCWJyZWFr Owo+IC0gICAgICAgIGNhc2UgMTY6Cj4gKwljYXNlIDE2Ogo+ICAgCQlyZWYgPSAyOwo+ICAgCQli cmVhazsKPiAtICAgICAgICBjYXNlIDE3Ogo+ICsJY2FzZSAxNzoKPiAgIAkJcmVmID0gMzsKPiAg IAkJYnJlYWs7Cj4gLSAgICAgICAgY2FzZSAxODoKPiArCWNhc2UgMTg6Cj4gICAJCXJlZiA9IDI7 Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2UgMTk6Cj4gKwljYXNlIDE5Ogo+ICAgCQlyZWYg PSAzOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIDIwOgo+ICsJY2FzZSAyMDoKPiAgIAkJ cmVmID0gNDsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgY2FzZSAyMToKPiArCWNhc2UgMjE6Cj4g ICAJCXJlZiA9IDU7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGRlZmF1bHQ6Cj4gKwlkZWZhdWx0 Ogo+ICAgCQlEUk1fRVJST1IoIkludmFsaWQgZW5jb2RlZCBSZWZlcmVuY2UgRGl2aWRlclxuIik7 Cj4gICAJCXJlZiA9IDA7Cj4gICAJCWJyZWFrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3J2NzcwX2RwbS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9ydjc3MF9kcG0u Ywo+IGluZGV4IGU4MzBjODkuLmEwMTBkZWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9ydjc3MF9kcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcnY3NzBf ZHBtLmMKPiBAQCAtMzQ1LDI3ICszNDUsMjcgQEAgc3RhdGljIGludCBydjc3MF9lbmNvZGVfeWNs a19wb3N0X2Rpdih1MzIgcG9zdGRpdiwgdTMyICplbmNvZGVkX3Bvc3RkaXYpCj4gICAJaW50IHJl dCA9IDA7Cj4gICAKPiAgIAlzd2l0Y2ggKHBvc3RkaXYpIHsKPiAtICAgICAgICBjYXNlIDE6Cj4g KwljYXNlIDE6Cj4gICAJCSplbmNvZGVkX3Bvc3RkaXYgPSAwOwo+ICAgCQlicmVhazsKPiAtICAg ICAgICBjYXNlIDI6Cj4gKwljYXNlIDI6Cj4gICAJCSplbmNvZGVkX3Bvc3RkaXYgPSAxOwo+ICAg CQlicmVhazsKPiAtICAgICAgICBjYXNlIDQ6Cj4gKwljYXNlIDQ6Cj4gICAJCSplbmNvZGVkX3Bv c3RkaXYgPSAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIDg6Cj4gKwljYXNlIDg6Cj4g ICAJCSplbmNvZGVkX3Bvc3RkaXYgPSAzOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIDE2 Ogo+ICsJY2FzZSAxNjoKPiAgIAkJKmVuY29kZWRfcG9zdGRpdiA9IDQ7Cj4gICAJCWJyZWFrOwo+ IC0gICAgICAgIGRlZmF1bHQ6Cj4gKwlkZWZhdWx0Ogo+ICAgCQlyZXQgPSAtRUlOVkFMOwo+ICAg CQlicmVhazsKPiAgIAl9Cj4gICAKPiAtICAgIHJldHVybiByZXQ7Cj4gKwlyZXR1cm4gcmV0Owo+ ICAgfQo+ICAgCj4gICB1MzIgcnY3NzBfbWFwX2Nsa2ZfdG9faWJpYXMoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsIHUzMiBjbGtmKQo+IEBAIC0xMTc1LDE1ICsxMTc1LDE1IEBAIHN0YXRpYyBp bnQgcnY3NzBfaW5pdF9zbWNfdGFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAJ cnY3NzBfcG9wdWxhdGVfc21jX212ZGRfdGFibGUocmRldiwgdGFibGUpOwo+ICAgCj4gICAJc3dp dGNoIChyZGV2LT5wbS5pbnRfdGhlcm1hbF90eXBlKSB7Cj4gLSAgICAgICAgY2FzZSBUSEVSTUFM X1RZUEVfUlY3NzA6Cj4gLSAgICAgICAgY2FzZSBUSEVSTUFMX1RZUEVfQURUNzQ3M19XSVRIX0lO VEVSTkFMOgo+ICsJY2FzZSBUSEVSTUFMX1RZUEVfUlY3NzA6Cj4gKwljYXNlIFRIRVJNQUxfVFlQ RV9BRFQ3NDczX1dJVEhfSU5URVJOQUw6Cj4gICAJCXRhYmxlLT50aGVybWFsUHJvdGVjdFR5cGUg PSBQUFNNQ19USEVSTUFMX1BST1RFQ1RfVFlQRV9JTlRFUk5BTDsKPiAgIAkJYnJlYWs7Cj4gLSAg ICAgICAgY2FzZSBUSEVSTUFMX1RZUEVfTk9ORToKPiArCWNhc2UgVEhFUk1BTF9UWVBFX05PTkU6 Cj4gICAJCXRhYmxlLT50aGVybWFsUHJvdGVjdFR5cGUgPSBQUFNNQ19USEVSTUFMX1BST1RFQ1Rf VFlQRV9OT05FOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIFRIRVJNQUxfVFlQRV9FWFRF Uk5BTF9HUElPOgo+IC0gICAgICAgIGRlZmF1bHQ6Cj4gKwljYXNlIFRIRVJNQUxfVFlQRV9FWFRF Uk5BTF9HUElPOgo+ICsJZGVmYXVsdDoKPiAgIAkJdGFibGUtPnRoZXJtYWxQcm90ZWN0VHlwZSA9 IFBQU01DX1RIRVJNQUxfUFJPVEVDVF9UWVBFX0VYVEVSTkFMOwo+ICAgCQlicmVhazsKPiAgIAl9 Cj4gQEAgLTE1NjcsMTggKzE1NjcsMTggQEAgdm9pZCBydjc3MF9yZXNldF9zbWlvX3N0YXR1cyhz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAlzd19zbWlvX2luZGV4ID0KPiAgIAkJKFJS RUczMihHRU5FUkFMX1BXUk1HVCkgJiBTV19TTUlPX0lOREVYX01BU0spID4+IFNXX1NNSU9fSU5E RVhfU0hJRlQ7Cj4gICAJc3dpdGNoIChzd19zbWlvX2luZGV4KSB7Cj4gLSAgICAgICAgY2FzZSAz Ogo+ICsJY2FzZSAzOgo+ICAgCQl2aWRfc21pb19jbnRsID0gUlJFRzMyKFMzX1ZJRF9MT1dFUl9T TUlPX0NOVEwpOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIDI6Cj4gKwljYXNlIDI6Cj4g ICAJCXZpZF9zbWlvX2NudGwgPSBSUkVHMzIoUzJfVklEX0xPV0VSX1NNSU9fQ05UTCk7Cj4gICAJ CWJyZWFrOwo+IC0gICAgICAgIGNhc2UgMToKPiArCWNhc2UgMToKPiAgIAkJdmlkX3NtaW9fY250 bCA9IFJSRUczMihTMV9WSURfTE9XRVJfU01JT19DTlRMKTsKPiAgIAkJYnJlYWs7Cj4gLSAgICAg ICAgY2FzZSAwOgo+ICsJY2FzZSAwOgo+ICAgCQlyZXR1cm47Cj4gLSAgICAgICAgZGVmYXVsdDoK PiArCWRlZmF1bHQ6Cj4gICAJCXZpZF9zbWlvX2NudGwgPSBwaS0+czBfdmlkX2xvd2VyX3NtaW9f Y250bDsKPiAgIAkJYnJlYWs7Cj4gICAJfQo+IEBAIC0xODE3LDIxICsxODE3LDIxIEBAIHN0YXRp YyB2b2lkIHJ2NzcwX3NldF9kcG1fZXZlbnRfc291cmNlcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAq cmRldiwgdTMyIHNvdXJjZXMpCj4gICAJZW51bSByYWRlb25fZHBtX2V2ZW50X3NyYyBkcG1fZXZl bnRfc3JjOwo+ICAgCj4gICAJc3dpdGNoIChzb3VyY2VzKSB7Cj4gLSAgICAgICAgY2FzZSAwOgo+ IC0gICAgICAgIGRlZmF1bHQ6Cj4gKwljYXNlIDA6Cj4gKwlkZWZhdWx0Ogo+ICAgCQl3YW50X3Ro ZXJtYWxfcHJvdGVjdGlvbiA9IGZhbHNlOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlICgx IDw8IFJBREVPTl9EUE1fQVVUT19USFJPVFRMRV9TUkNfVEhFUk1BTCk6Cj4gKwljYXNlICgxIDw8 IFJBREVPTl9EUE1fQVVUT19USFJPVFRMRV9TUkNfVEhFUk1BTCk6Cj4gICAJCXdhbnRfdGhlcm1h bF9wcm90ZWN0aW9uID0gdHJ1ZTsKPiAgIAkJZHBtX2V2ZW50X3NyYyA9IFJBREVPTl9EUE1fRVZF TlRfU1JDX0RJR0lUQUw7Cj4gICAJCWJyZWFrOwo+ICAgCj4gLSAgICAgICAgY2FzZSAoMSA8PCBS QURFT05fRFBNX0FVVE9fVEhST1RUTEVfU1JDX0VYVEVSTkFMKToKPiArCWNhc2UgKDEgPDwgUkFE RU9OX0RQTV9BVVRPX1RIUk9UVExFX1NSQ19FWFRFUk5BTCk6Cj4gICAJCXdhbnRfdGhlcm1hbF9w cm90ZWN0aW9uID0gdHJ1ZTsKPiAgIAkJZHBtX2V2ZW50X3NyYyA9IFJBREVPTl9EUE1fRVZFTlRf U1JDX0VYVEVSTkFMOwo+ICAgCQlicmVhazsKPiAgIAo+IC0gICAgICAgIGNhc2UgKCgxIDw8IFJB REVPTl9EUE1fQVVUT19USFJPVFRMRV9TUkNfRVhURVJOQUwpIHwKPiArCWNhc2UgKCgxIDw8IFJB REVPTl9EUE1fQVVUT19USFJPVFRMRV9TUkNfRVhURVJOQUwpIHwKPiAgIAkgICAgICAoMSA8PCBS QURFT05fRFBNX0FVVE9fVEhST1RUTEVfU1JDX1RIRVJNQUwpKToKPiAgIAkJd2FudF90aGVybWFs X3Byb3RlY3Rpb24gPSB0cnVlOwo+ICAgCQlkcG1fZXZlbnRfc3JjID0gUkFERU9OX0RQTV9FVkVO VF9TUkNfRElHSUFMX09SX0VYVEVSTkFMOwo+IEBAIC0yMjczLDcgKzIyNzMsNyBAQCBpbnQgcnY3 eHhfcGFyc2VfcG93ZXJfdGFibGUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJdW5p b24gcHBsaWJfY2xvY2tfaW5mbyAqY2xvY2tfaW5mbzsKPiAgIAl1bmlvbiBwb3dlcl9pbmZvICpw b3dlcl9pbmZvOwo+ICAgCWludCBpbmRleCA9IEdldEluZGV4SW50b01hc3RlclRhYmxlKERBVEEs IFBvd2VyUGxheUluZm8pOwo+IC0gICAgICAgIHUxNiBkYXRhX29mZnNldDsKPiArCXUxNiBkYXRh X29mZnNldDsKPiAgIAl1OCBmcmV2LCBjcmV2Owo+ICAgCXN0cnVjdCBydjd4eF9wcyAqcHM7Cj4g ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaS5jIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9zaS5jCj4gaW5kZXggZjg3OGQ2OS4uZTg5NGJlMiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3NpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL3NpLmMKPiBAQCAtMTMwNyw3ICsxMzA3LDcgQEAgaW50IHNpX2dldF9hbGxvd2VkX2luZm9f cmVnaXN0ZXIoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCj4gICAgKi8KPiAgIHUzMiBzaV9n ZXRfeGNsayhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIHsKPiAtICAgICAgICB1MzIg cmVmZXJlbmNlX2Nsb2NrID0gcmRldi0+Y2xvY2suc3BsbC5yZWZlcmVuY2VfZnJlcTsKPiArCXUz MiByZWZlcmVuY2VfY2xvY2sgPSByZGV2LT5jbG9jay5zcGxsLnJlZmVyZW5jZV9mcmVxOwo+ICAg CXUzMiB0bXA7Cj4gICAKPiAgIAl0bXAgPSBSUkVHMzIoQ0dfQ0xLUElOX0NOVExfMik7Cj4gQEAg LTczMTQsNyArNzMxNCw3IEBAIHVpbnQ2NF90IHNpX2dldF9ncHVfY2xvY2tfY291bnRlcihzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAltdXRleF9sb2NrKCZyZGV2LT5ncHVfY2xvY2tf bXV0ZXgpOwo+ICAgCVdSRUczMihSTENfQ0FQVFVSRV9HUFVfQ0xPQ0tfQ09VTlQsIDEpOwo+ICAg CWNsb2NrID0gKHVpbnQ2NF90KVJSRUczMihSTENfR1BVX0NMT0NLX0NPVU5UX0xTQikgfAo+IC0J ICAgICAgICAoKHVpbnQ2NF90KVJSRUczMihSTENfR1BVX0NMT0NLX0NPVU5UX01TQikgPDwgMzJV TEwpOwo+ICsJCSgodWludDY0X3QpUlJFRzMyKFJMQ19HUFVfQ0xPQ0tfQ09VTlRfTVNCKSA8PCAz MlVMTCk7Cj4gICAJbXV0ZXhfdW5sb2NrKCZyZGV2LT5ncHVfY2xvY2tfbXV0ZXgpOwo+ICAgCXJl dHVybiBjbG9jazsKPiAgIH0KPiBAQCAtNzc3NSwzMyArNzc3NSwzMyBAQCBzdGF0aWMgdm9pZCBz aV9wcm9ncmFtX2FzcG0oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAKPiAgIGludCBz aV92Y2Vfc2VuZF92Y2VwbGxfY3RscmVxKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAg ewo+IC0gICAgICAgIHVuc2lnbmVkIGk7Cj4gKwl1bnNpZ25lZCBpOwo+ICAgCj4gLSAgICAgICAg LyogbWFrZSBzdXJlIFZDRVBMTF9DVExSRVEgaXMgZGVhc3NlcnRlZCAqLwo+IC0gICAgICAgIFdS RUczMl9TTUNfUChDR19WQ0VQTExfRlVOQ19DTlRMLCAwLCB+VVBMTF9DVExSRVFfTUFTSyk7Cj4g KwkvKiBtYWtlIHN1cmUgVkNFUExMX0NUTFJFUSBpcyBkZWFzc2VydGVkICovCj4gKwlXUkVHMzJf U01DX1AoQ0dfVkNFUExMX0ZVTkNfQ05UTCwgMCwgflVQTExfQ1RMUkVRX01BU0spOwo+ICAgCj4g LSAgICAgICAgbWRlbGF5KDEwKTsKPiArCW1kZWxheSgxMCk7Cj4gICAKPiAtICAgICAgICAvKiBh c3NlcnQgVVBMTF9DVExSRVEgKi8KPiAtICAgICAgICBXUkVHMzJfU01DX1AoQ0dfVkNFUExMX0ZV TkNfQ05UTCwgVVBMTF9DVExSRVFfTUFTSywgflVQTExfQ1RMUkVRX01BU0spOwo+ICsJLyogYXNz ZXJ0IFVQTExfQ1RMUkVRICovCj4gKwlXUkVHMzJfU01DX1AoQ0dfVkNFUExMX0ZVTkNfQ05UTCwg VVBMTF9DVExSRVFfTUFTSywgflVQTExfQ1RMUkVRX01BU0spOwo+ICAgCj4gLSAgICAgICAgLyog d2FpdCBmb3IgQ1RMQUNLIGFuZCBDVExBQ0syIHRvIGdldCBhc3NlcnRlZCAqLwo+IC0gICAgICAg IGZvciAoaSA9IDA7IGkgPCAxMDA7ICsraSkgewo+IC0gICAgICAgICAgICAgICAgdWludDMyX3Qg bWFzayA9IFVQTExfQ1RMQUNLX01BU0sgfCBVUExMX0NUTEFDSzJfTUFTSzsKPiAtICAgICAgICAg ICAgICAgIGlmICgoUlJFRzMyX1NNQyhDR19WQ0VQTExfRlVOQ19DTlRMKSAmIG1hc2spID09IG1h c2spCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+IC0gICAgICAgICAgICAgICAg bWRlbGF5KDEwKTsKPiAtICAgICAgICB9Cj4gKwkvKiB3YWl0IGZvciBDVExBQ0sgYW5kIENUTEFD SzIgdG8gZ2V0IGFzc2VydGVkICovCj4gKwlmb3IgKGkgPSAwOyBpIDwgMTAwOyArK2kpIHsKPiAr CQl1aW50MzJfdCBtYXNrID0gVVBMTF9DVExBQ0tfTUFTSyB8IFVQTExfQ1RMQUNLMl9NQVNLOwo+ ICsJCWlmICgoUlJFRzMyX1NNQyhDR19WQ0VQTExfRlVOQ19DTlRMKSAmIG1hc2spID09IG1hc2sp Cj4gKwkJCWJyZWFrOwo+ICsJCW1kZWxheSgxMCk7Cj4gKwl9Cj4gICAKPiAtICAgICAgICAvKiBk ZWFzc2VydCBVUExMX0NUTFJFUSAqLwo+IC0gICAgICAgIFdSRUczMl9TTUNfUChDR19WQ0VQTExf RlVOQ19DTlRMLCAwLCB+VVBMTF9DVExSRVFfTUFTSyk7Cj4gKwkvKiBkZWFzc2VydCBVUExMX0NU TFJFUSAqLwo+ICsJV1JFRzMyX1NNQ19QKENHX1ZDRVBMTF9GVU5DX0NOVEwsIDAsIH5VUExMX0NU TFJFUV9NQVNLKTsKPiAgIAo+IC0gICAgICAgIGlmIChpID09IDEwMCkgewo+IC0gICAgICAgICAg ICAgICAgRFJNX0VSUk9SKCJUaW1lb3V0IHNldHRpbmcgVVZEIGNsb2NrcyFcbiIpOwo+IC0gICAg ICAgICAgICAgICAgcmV0dXJuIC1FVElNRURPVVQ7Cj4gLSAgICAgICAgfQo+ICsJaWYgKGkgPT0g MTAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJUaW1lb3V0IHNldHRpbmcgVVZEIGNsb2NrcyFcbiIpOwo+ ICsJCXJldHVybiAtRVRJTUVET1VUOwo+ICsJfQo+ICAgCj4gLSAgICAgICAgcmV0dXJuIDA7Cj4g KwlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+ICAgaW50IHNpX3NldF92Y2VfY2xvY2tzKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LCB1MzIgZXZjbGssIHUzMiBlY2NsaykKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9zaV9kcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v c2lfZHBtLmMKPiBpbmRleCBhODJiODkxLi5jYjc1YWI3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vc2lfZHBtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Np X2RwbS5jCj4gQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNpX2NhY19j b25maWdfcmVnIGxjYWNfcGl0Y2Fpcm5bXSA9Cj4gICAKPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg c2lfY2FjX2NvbmZpZ19yZWcgY2FjX292ZXJyaWRlX3BpdGNhaXJuW10gPQo+ICAgewo+IC0gICAg eyAweEZGRkZGRkZGIH0KPiArCXsgMHhGRkZGRkZGRiB9Cj4gICB9Owo+ICAgCj4gICBzdGF0aWMg Y29uc3Qgc3RydWN0IHNpX3Bvd2VydHVuZV9kYXRhIHBvd2VydHVuZV9kYXRhX3BpdGNhaXJuID0K PiBAQCAtOTkxLDcgKzk5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2lfY2FjX2NvbmZpZ19y ZWcgbGNhY19jYXBlX3ZlcmRlW10gPQo+ICAgCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHNpX2Nh Y19jb25maWdfcmVnIGNhY19vdmVycmlkZV9jYXBlX3ZlcmRlW10gPQo+ICAgewo+IC0gICAgeyAw eEZGRkZGRkZGIH0KPiArCXsgMHhGRkZGRkZGRiB9Cj4gICB9Owo+ICAgCj4gICBzdGF0aWMgY29u c3Qgc3RydWN0IHNpX3Bvd2VydHVuZV9kYXRhIHBvd2VydHVuZV9kYXRhX2NhcGVfdmVyZGUgPQo+ IEBAIC0xNzYyLDkgKzE3NjIsOSBAQCBzdGF0aWMgdm9pZCBzaV9mYW5fY3RybF9zZXRfZGVmYXVs dF9tb2RlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKPiAgIAo+ICAgc3RhdGljIHN0cnVj dCBzaV9wb3dlcl9pbmZvICpzaV9nZXRfcGkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4g ICB7Cj4gLSAgICAgICAgc3RydWN0IHNpX3Bvd2VyX2luZm8gKnBpID0gcmRldi0+cG0uZHBtLnBy aXY7Cj4gKwlzdHJ1Y3Qgc2lfcG93ZXJfaW5mbyAqcGkgPSByZGV2LT5wbS5kcG0ucHJpdjsKPiAg IAo+IC0gICAgICAgIHJldHVybiBwaTsKPiArCXJldHVybiBwaTsKPiAgIH0KPiAgIAo+ICAgc3Rh dGljIHZvaWQgc2lfY2FsY3VsYXRlX2xlYWthZ2VfZm9yX3ZfYW5kX3RfZm9ybXVsYShjb25zdCBz dHJ1Y3QgbmlfbGVha2FnZV9jb2VmZmllbnRzICpjb2VmZiwKPiBAQCAtMzE1MCw5ICszMTUwLDkg QEAgc3RhdGljIHZvaWQgc2lfYXBwbHlfc3RhdGVfYWRqdXN0X3J1bGVzKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAo+ICAgCQl9Cj4gICAJfQo+ICAgCj4gLSAgICAgICAgZm9yIChpID0gMDsg aSA8IHBzLT5wZXJmb3JtYW5jZV9sZXZlbF9jb3VudDsgaSsrKQo+IC0gICAgICAgICAgICAgICAg YnRjX2FkanVzdF9jbG9ja19jb21iaW5hdGlvbnMocmRldiwgbWF4X2xpbWl0cywKPiAtICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcy0+cGVyZm9ybWFuY2Vf bGV2ZWxzW2ldKTsKPiArCWZvciAoaSA9IDA7IGkgPCBwcy0+cGVyZm9ybWFuY2VfbGV2ZWxfY291 bnQ7IGkrKykKPiArCQlidGNfYWRqdXN0X2Nsb2NrX2NvbWJpbmF0aW9ucyhyZGV2LCBtYXhfbGlt aXRzLAo+ICsJCQkJCSAgICAgICZwcy0+cGVyZm9ybWFuY2VfbGV2ZWxzW2ldKTsKPiAgIAo+ICAg CWZvciAoaSA9IDA7IGkgPCBwcy0+cGVyZm9ybWFuY2VfbGV2ZWxfY291bnQ7IGkrKykgewo+ICAg CQlpZiAocHMtPnBlcmZvcm1hbmNlX2xldmVsc1tpXS52ZGRjIDwgbWluX3ZjZV92b2x0YWdlKQo+ IEBAIC0zMjkxLDcgKzMyOTEsNyBAQCBzdGF0aWMgdm9pZCBzaV9zZXRfZHBtX2V2ZW50X3NvdXJj ZXMoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHUzMiBzb3VyY2VzKQo+ICAgCWNhc2UgMDoK PiAgIAlkZWZhdWx0Ogo+ICAgCQl3YW50X3RoZXJtYWxfcHJvdGVjdGlvbiA9IGZhbHNlOwo+IC0g ICAgICAgICAgICAgICAgYnJlYWs7Cj4gKwkJYnJlYWs7Cj4gICAJY2FzZSAoMSA8PCBSQURFT05f RFBNX0FVVE9fVEhST1RUTEVfU1JDX1RIRVJNQUwpOgo+ICAgCQl3YW50X3RoZXJtYWxfcHJvdGVj dGlvbiA9IHRydWU7Cj4gICAJCWRwbV9ldmVudF9zcmMgPSBSQURFT05fRFBNX0VWRU5UX1NSQ19E SUdJVEFMOwo+IEBAIC0zNDkzLDcgKzM0OTMsNyBAQCBzdGF0aWMgaW50IHNpX3Byb2Nlc3NfZmly bXdhcmVfaGVhZGVyKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCWlmIChyZXQpCj4g ICAJCXJldHVybiByZXQ7Cj4gICAKPiAtICAgICAgICBzaV9waS0+c3RhdGVfdGFibGVfc3RhcnQg PSB0bXA7Cj4gKwlzaV9waS0+c3RhdGVfdGFibGVfc3RhcnQgPSB0bXA7Cj4gICAKPiAgIAlyZXQg PSBzaV9yZWFkX3NtY19zcmFtX2R3b3JkKHJkZXYsCj4gICAJCQkJICAgICBTSVNMQU5EU19TTUNf RklSTVdBUkVfSEVBREVSX0xPQ0FUSU9OICsKPiBAQCAtMzY1Miw3ICszNjUyLDcgQEAgc3RhdGlj IHZvaWQgc2lfcHJvZ3JhbV9yZXNwb25zZV90aW1lcyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRl dikKPiAgIAlzaV93cml0ZV9zbWNfc29mdF9yZWdpc3RlcihyZGV2LCBTSV9TTUNfU09GVF9SRUdJ U1RFUl9tdmRkX2NoZ190aW1lLCAxKTsKPiAgIAo+ICAgCXZvbHRhZ2VfcmVzcG9uc2VfdGltZSA9 ICh1MzIpcmRldi0+cG0uZHBtLnZvbHRhZ2VfcmVzcG9uc2VfdGltZTsKPiAtICAgICAgICBiYWNr Ymlhc19yZXNwb25zZV90aW1lID0gKHUzMilyZGV2LT5wbS5kcG0uYmFja2JpYXNfcmVzcG9uc2Vf dGltZTsKPiArCWJhY2tiaWFzX3Jlc3BvbnNlX3RpbWUgPSAodTMyKXJkZXYtPnBtLmRwbS5iYWNr Ymlhc19yZXNwb25zZV90aW1lOwo+ICAgCj4gICAJaWYgKHZvbHRhZ2VfcmVzcG9uc2VfdGltZSA9 PSAwKQo+ICAgCQl2b2x0YWdlX3Jlc3BvbnNlX3RpbWUgPSAxMDAwOwo+IEBAIC0zNzYwLDcgKzM3 NjAsNyBAQCBzdGF0aWMgdm9pZCBzaV9zZXR1cF9ic3Aoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYpCj4gICAJCQkgICAgICAgJnBpLT5wYnN1KTsKPiAgIAo+ICAgCj4gLSAgICAgICAgcGktPmRz cCA9IEJTUChwaS0+YnNwKSB8IEJTVShwaS0+YnN1KTsKPiArCXBpLT5kc3AgPSBCU1AocGktPmJz cCkgfCBCU1UocGktPmJzdSk7Cj4gICAJcGktPnBzcCA9IEJTUChwaS0+cGJzcCkgfCBCU1UocGkt PnBic3UpOwo+ICAgCj4gICAJV1JFRzMyKENHX0JTUCwgcGktPmRzcCk7Cj4gQEAgLTQzMDgsNyAr NDMwOCw3IEBAIHN0YXRpYyBpbnQgc2lfcG9wdWxhdGVfbWVtb3J5X3RpbWluZ19wYXJhbWV0ZXJz KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCj4gICAJcmFkZW9uX2F0b21fc2V0X2Vu Z2luZV9kcmFtX3RpbWluZ3MocmRldiwKPiAgIAkJCQkJICAgIHBsLT5zY2xrLAo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsLT5tY2xrKTsKPiArCQkJCQkg ICAgcGwtPm1jbGspOwo+ICAgCj4gICAJZHJhbV90aW1pbmcgID0gUlJFRzMyKE1DX0FSQl9EUkFN X1RJTUlORyk7Cj4gICAJZHJhbV90aW1pbmcyID0gUlJFRzMyKE1DX0FSQl9EUkFNX1RJTUlORzIp Owo+IEBAIC00MzQzLDcgKzQzNDMsNyBAQCBzdGF0aWMgaW50IHNpX2RvX3Byb2dyYW1fbWVtb3J5 X3RpbWluZ19wYXJhbWV0ZXJzKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ICAgCQkJCQkg ICBzaV9waS0+c3JhbV9lbmQpOwo+ICAgCQlpZiAocmV0KQo+ICAgCQkJYnJlYWs7Cj4gLSAgICAg ICAgfQo+ICsJfQo+ICAgCj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiBAQCAtNDgyMSw5ICs0ODIx LDkgQEAgc3RhdGljIGludCBzaV9jYWxjdWxhdGVfc2Nsa19wYXJhbXMoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYsCj4gICAJc3BsbF9mdW5jX2NudGxfMiAmPSB+U0NMS19NVVhfU0VMX01BU0s7 Cj4gICAJc3BsbF9mdW5jX2NudGxfMiB8PSBTQ0xLX01VWF9TRUwoMik7Cj4gICAKPiAtICAgICAg ICBzcGxsX2Z1bmNfY250bF8zICY9IH5TUExMX0ZCX0RJVl9NQVNLOwo+IC0gICAgICAgIHNwbGxf ZnVuY19jbnRsXzMgfD0gU1BMTF9GQl9ESVYoZmJkaXYpOwo+IC0gICAgICAgIHNwbGxfZnVuY19j bnRsXzMgfD0gU1BMTF9ESVRIRU47Cj4gKwlzcGxsX2Z1bmNfY250bF8zICY9IH5TUExMX0ZCX0RJ Vl9NQVNLOwo+ICsJc3BsbF9mdW5jX2NudGxfMyB8PSBTUExMX0ZCX0RJVihmYmRpdik7Cj4gKwlz cGxsX2Z1bmNfY250bF8zIHw9IFNQTExfRElUSEVOOwo+ICAgCj4gICAJaWYgKHBpLT5zY2xrX3Nz KSB7Cj4gICAJCXN0cnVjdCByYWRlb25fYXRvbV9zcyBzczsKPiBAQCAtNDkzMCwxNSArNDkzMCwx NSBAQCBzdGF0aWMgaW50IHNpX3BvcHVsYXRlX21jbGtfdmFsdWUoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsCj4gICAJCXRtcCA9IGZyZXFfbm9tIC8gcmVmZXJlbmNlX2Nsb2NrOwo+ICAgCQl0 bXAgPSB0bXAgKiB0bXA7Cj4gICAJCWlmIChyYWRlb25fYXRvbWJpb3NfZ2V0X2FzaWNfc3NfaW5m byhyZGV2LCAmc3MsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQVNJQ19JTlRFUk5BTF9NRU1PUllfU1MsIGZyZXFfbm9tKSkgewo+ICsJCQkJ CQkgICAgIEFTSUNfSU5URVJOQUxfTUVNT1JZX1NTLCBmcmVxX25vbSkpIHsKPiAgIAkJCXUzMiBj bGtzID0gcmVmZXJlbmNlX2Nsb2NrICogNSAvIHNzLnJhdGU7Cj4gICAJCQl1MzIgY2xrdiA9ICh1 MzIpKCgoKDEzMSAqIHNzLnBlcmNlbnRhZ2UgKiBzcy5yYXRlKSAvIDEwMCkgKiB0bXApIC8gZnJl cV9ub20pOwo+ICAgCj4gLSAgICAgICAgICAgICAgICAgICAgICAgIG1wbGxfc3MxICY9IH5DTEtW X01BU0s7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgIG1wbGxfc3MxIHw9IENMS1YoY2xrdik7 Cj4gKwkJCW1wbGxfc3MxICY9IH5DTEtWX01BU0s7Cj4gKwkJCW1wbGxfc3MxIHw9IENMS1YoY2xr dik7Cj4gICAKPiAtICAgICAgICAgICAgICAgICAgICAgICAgbXBsbF9zczIgJj0gfkNMS1NfTUFT SzsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgbXBsbF9zczIgfD0gQ0xLUyhjbGtzKTsKPiAr CQkJbXBsbF9zczIgJj0gfkNMS1NfTUFTSzsKPiArCQkJbXBsbF9zczIgfD0gQ0xLUyhjbGtzKTsK PiAgIAkJfQo+ICAgCX0KPiAgIAo+IEBAIC01MjY1LDcgKzUyNjUsNyBAQCBzdGF0aWMgaW50IHNp X2NvbnZlcnRfcG93ZXJfc3RhdGVfdG9fc21jKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAo+ ICAgCQluaV9waS0+ZW5hYmxlX3Bvd2VyX2NvbnRhaW5tZW50ID0gZmFsc2U7Cj4gICAKPiAgIAly ZXQgPSBzaV9wb3B1bGF0ZV9zcV9yYW1waW5nX3ZhbHVlcyhyZGV2LCByYWRlb25fc3RhdGUsIHNt Y19zdGF0ZSk7Cj4gLSAgICAgICAgaWYgKHJldCkKPiArCWlmIChyZXQpCj4gICAJCW5pX3BpLT5l bmFibGVfc3FfcmFtcGluZyA9IGZhbHNlOwo+ICAgCj4gICAJcmV0dXJuIHNpX3BvcHVsYXRlX3Nt Y190KHJkZXYsIHJhZGVvbl9zdGF0ZSwgc21jX3N0YXRlKTsKPiBAQCAtNTQzNiw0NiArNTQzNiw0 NiBAQCBzdGF0aWMgYm9vbCBzaV9jaGVja19zMF9tY19yZWdfaW5kZXgodTE2IGluX3JlZywgdTE2 ICpvdXRfcmVnKQo+ICAgCWNhc2UgIE1DX1NFUV9SQVNfVElNSU5HID4+IDI6Cj4gICAJCSpvdXRf cmVnID0gTUNfU0VRX1JBU19USU1JTkdfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAg Y2FzZSBNQ19TRVFfQ0FTX1RJTUlORyA+PiAyOgo+ICsJY2FzZSBNQ19TRVFfQ0FTX1RJTUlORyA+ PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9DQVNfVElNSU5HX0xQID4+IDI7Cj4gICAJCWJy ZWFrOwo+IC0gICAgICAgIGNhc2UgTUNfU0VRX01JU0NfVElNSU5HID4+IDI6Cj4gKwljYXNlIE1D X1NFUV9NSVNDX1RJTUlORyA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9NSVNDX1RJTUlO R19MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1NFUV9NSVNDX1RJTUlO RzIgPj4gMjoKPiArCWNhc2UgTUNfU0VRX01JU0NfVElNSU5HMiA+PiAyOgo+ICAgCQkqb3V0X3Jl ZyA9IE1DX1NFUV9NSVNDX1RJTUlORzJfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAg Y2FzZSBNQ19TRVFfUkRfQ1RMX0QwID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9SRF9DVExfRDAgPj4g MjoKPiAgIAkJKm91dF9yZWcgPSBNQ19TRVFfUkRfQ1RMX0QwX0xQID4+IDI7Cj4gICAJCWJyZWFr Owo+IC0gICAgICAgIGNhc2UgTUNfU0VRX1JEX0NUTF9EMSA+PiAyOgo+ICsJY2FzZSBNQ19TRVFf UkRfQ1RMX0QxID4+IDI6Cj4gICAJCSpvdXRfcmVnID0gTUNfU0VRX1JEX0NUTF9EMV9MUCA+PiAy Owo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1NFUV9XUl9DVExfRDAgPj4gMjoKPiAr CWNhc2UgTUNfU0VRX1dSX0NUTF9EMCA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9XUl9D VExfRDBfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4gLSAgICAgICAgY2FzZSBNQ19TRVFfV1JfQ1RM X0QxID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9XUl9DVExfRDEgPj4gMjoKPiAgIAkJKm91dF9yZWcg PSBNQ19TRVFfV1JfQ1RMX0QxX0xQID4+IDI7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2Ug TUNfUE1HX0NNRF9FTVJTID4+IDI6Cj4gKwljYXNlIE1DX1BNR19DTURfRU1SUyA+PiAyOgo+ICAg CQkqb3V0X3JlZyA9IE1DX1NFUV9QTUdfQ01EX0VNUlNfTFAgPj4gMjsKPiAgIAkJYnJlYWs7Cj4g LSAgICAgICAgY2FzZSBNQ19QTUdfQ01EX01SUyA+PiAyOgo+ICsJY2FzZSBNQ19QTUdfQ01EX01S UyA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9QTUdfQ01EX01SU19MUCA+PiAyOwo+ICAg CQlicmVhazsKPiAtICAgICAgICBjYXNlIE1DX1BNR19DTURfTVJTMSA+PiAyOgo+ICsJY2FzZSBN Q19QTUdfQ01EX01SUzEgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBNQ19TRVFfUE1HX0NNRF9NUlMx X0xQID4+IDI7Cj4gICAJCWJyZWFrOwo+IC0gICAgICAgIGNhc2UgTUNfU0VRX1BNR19USU1JTkcg Pj4gMjoKPiArCWNhc2UgTUNfU0VRX1BNR19USU1JTkcgPj4gMjoKPiAgIAkJKm91dF9yZWcgPSBN Q19TRVFfUE1HX1RJTUlOR19MUCA+PiAyOwo+ICAgCQlicmVhazsKPiAtICAgICAgICBjYXNlIE1D X1BNR19DTURfTVJTMiA+PiAyOgo+ICsJY2FzZSBNQ19QTUdfQ01EX01SUzIgPj4gMjoKPiAgIAkJ Km91dF9yZWcgPSBNQ19TRVFfUE1HX0NNRF9NUlMyX0xQID4+IDI7Cj4gICAJCWJyZWFrOwo+IC0g ICAgICAgIGNhc2UgTUNfU0VRX1dSX0NUTF8yID4+IDI6Cj4gKwljYXNlIE1DX1NFUV9XUl9DVExf MiA+PiAyOgo+ICAgCQkqb3V0X3JlZyA9IE1DX1NFUV9XUl9DVExfMl9MUCA+PiAyOwo+ICAgCQli cmVhazsKPiAtICAgICAgICBkZWZhdWx0Ogo+ICsJZGVmYXVsdDoKPiAgIAkJcmVzdWx0ID0gZmFs c2U7Cj4gICAJCWJyZWFrOwo+ICAgCX0KPiBAQCAtNTU2MiwxOSArNTU2MiwxOSBAQCBzdGF0aWMg aW50IHNpX2luaXRpYWxpemVfbWNfcmVnX3RhYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 KQo+ICAgCVdSRUczMihNQ19TRVFfUE1HX0NNRF9NUlMyX0xQLCBSUkVHMzIoTUNfUE1HX0NNRF9N UlMyKSk7Cj4gICAJV1JFRzMyKE1DX1NFUV9XUl9DVExfMl9MUCwgUlJFRzMyKE1DX1NFUV9XUl9D VExfMikpOwo+ICAgCj4gLSAgICAgICAgcmV0ID0gcmFkZW9uX2F0b21faW5pdF9tY19yZWdfdGFi bGUocmRldiwgbW9kdWxlX2luZGV4LCB0YWJsZSk7Cj4gLSAgICAgICAgaWYgKHJldCkKPiAtICAg ICAgICAgICAgICAgIGdvdG8gaW5pdF9tY19kb25lOwo+ICsJcmV0ID0gcmFkZW9uX2F0b21faW5p dF9tY19yZWdfdGFibGUocmRldiwgbW9kdWxlX2luZGV4LCB0YWJsZSk7Cj4gKwlpZiAocmV0KQo+ ICsJCWdvdG8gaW5pdF9tY19kb25lOwo+ICAgCj4gLSAgICAgICAgcmV0ID0gc2lfY29weV92Ymlv c19tY19yZWdfdGFibGUodGFibGUsIHNpX3RhYmxlKTsKPiAtICAgICAgICBpZiAocmV0KQo+IC0g ICAgICAgICAgICAgICAgZ290byBpbml0X21jX2RvbmU7Cj4gKwlyZXQgPSBzaV9jb3B5X3ZiaW9z X21jX3JlZ190YWJsZSh0YWJsZSwgc2lfdGFibGUpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGlu aXRfbWNfZG9uZTsKPiAgIAo+ICAgCXNpX3NldF9zMF9tY19yZWdfaW5kZXgoc2lfdGFibGUpOwo+ ICAgCj4gICAJcmV0ID0gc2lfc2V0X21jX3NwZWNpYWxfcmVnaXN0ZXJzKHJkZXYsIHNpX3RhYmxl KTsKPiAtICAgICAgICBpZiAocmV0KQo+IC0gICAgICAgICAgICAgICAgZ290byBpbml0X21jX2Rv bmU7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gaW5pdF9tY19kb25lOwo+ICAgCj4gICAJc2lfc2V0 X3ZhbGlkX2ZsYWcoc2lfdGFibGUpOwo+ICAgCj4gQEAgLTU3MTUsMTAgKzU3MTUsMTAgQEAgc3Rh dGljIGludCBzaV91cGxvYWRfbWNfcmVnX3RhYmxlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LAo+ICAgCj4gICBzdGF0aWMgdm9pZCBzaV9lbmFibGVfdm9sdGFnZV9jb250cm9sKHN0cnVjdCBy YWRlb25fZGV2aWNlICpyZGV2LCBib29sIGVuYWJsZSkKPiAgIHsKPiAtICAgICAgICBpZiAoZW5h YmxlKQo+IC0gICAgICAgICAgICAgICAgV1JFRzMyX1AoR0VORVJBTF9QV1JNR1QsIFZPTFRfUFdS TUdUX0VOLCB+Vk9MVF9QV1JNR1RfRU4pOwo+IC0gICAgICAgIGVsc2UKPiAtICAgICAgICAgICAg ICAgIFdSRUczMl9QKEdFTkVSQUxfUFdSTUdULCAwLCB+Vk9MVF9QV1JNR1RfRU4pOwo+ICsJaWYg KGVuYWJsZSkKPiArCQlXUkVHMzJfUChHRU5FUkFMX1BXUk1HVCwgVk9MVF9QV1JNR1RfRU4sIH5W T0xUX1BXUk1HVF9FTik7Cj4gKwllbHNlCj4gKwkJV1JFRzMyX1AoR0VORVJBTF9QV1JNR1QsIDAs IH5WT0xUX1BXUk1HVF9FTik7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBlbnVtIHJhZGVvbl9wY2ll X2dlbiBzaV9nZXRfbWF4aW11bV9saW5rX3NwZWVkKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2 LAo+IEBAIC02ODIwLDcgKzY4MjAsNyBAQCBzdGF0aWMgaW50IHNpX3BhcnNlX3Bvd2VyX3RhYmxl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQo+ICAgCXN0cnVjdCBfTm9uQ2xvY2tJbmZvQXJy YXkgKm5vbl9jbG9ja19pbmZvX2FycmF5Owo+ICAgCXVuaW9uIHBvd2VyX2luZm8gKnBvd2VyX2lu Zm87Cj4gICAJaW50IGluZGV4ID0gR2V0SW5kZXhJbnRvTWFzdGVyVGFibGUoREFUQSwgUG93ZXJQ bGF5SW5mbyk7Cj4gLSAgICAgICAgdTE2IGRhdGFfb2Zmc2V0Owo+ICsJdTE2IGRhdGFfb2Zmc2V0 Owo+ICAgCXU4IGZyZXYsIGNyZXY7Cj4gICAJdTggKnBvd2VyX3N0YXRlX29mZnNldDsKPiAgIAlz dHJ1Y3QgbmlfcHMgKnBzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3N1 bW9fZHBtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3N1bW9fZHBtLmMKPiBpbmRleCBjZDA4 NjI4Li5mMGQ1YzE3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc3Vtb19k cG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vc3Vtb19kcG0uYwo+IEBAIC03ODcs OCArNzg3LDggQEAgc3RhdGljIHZvaWQgc3Vtb19wcm9ncmFtX2FjcGlfcG93ZXJfbGV2ZWwoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJc3RydWN0IGF0b21fY2xvY2tfZGl2aWRlcnMg ZGl2aWRlcnM7Cj4gICAJaW50IHJldDsKPiAgIAo+IC0gICAgICAgIHJldCA9IHJhZGVvbl9hdG9t X2dldF9jbG9ja19kaXZpZGVycyhyZGV2LCBDT01QVVRFX0VOR0lORV9QTExfUEFSQU0sCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpLT5hY3BpX3BsLnNj bGssCj4gKwlyZXQgPSByYWRlb25fYXRvbV9nZXRfY2xvY2tfZGl2aWRlcnMocmRldiwgQ09NUFVU RV9FTkdJTkVfUExMX1BBUkFNLAo+ICsJCQkJCSAgICAgcGktPmFjcGlfcGwuc2NsaywKPiAgIAkJ CQkJICAgICBmYWxzZSwgJmRpdmlkZXJzKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm47Cj4g QEAgLTE0NjIsNyArMTQ2Miw3IEBAIHN0YXRpYyBpbnQgc3Vtb19wYXJzZV9wb3dlcl90YWJsZShz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAlzdHJ1Y3QgX05vbkNsb2NrSW5mb0FycmF5 ICpub25fY2xvY2tfaW5mb19hcnJheTsKPiAgIAl1bmlvbiBwb3dlcl9pbmZvICpwb3dlcl9pbmZv Owo+ICAgCWludCBpbmRleCA9IEdldEluZGV4SW50b01hc3RlclRhYmxlKERBVEEsIFBvd2VyUGxh eUluZm8pOwo+IC0gICAgICAgIHUxNiBkYXRhX29mZnNldDsKPiArCXUxNiBkYXRhX29mZnNldDsK PiAgIAl1OCBmcmV2LCBjcmV2Owo+ICAgCXU4ICpwb3dlcl9zdGF0ZV9vZmZzZXQ7Cj4gICAJc3Ry dWN0IHN1bW9fcHMgKnBzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Ry aW5pdHlfZHBtLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3RyaW5pdHlfZHBtLmMKPiBpbmRl eCBkMzRiZmNkYS4uNjczMDM2NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3RyaW5pdHlfZHBtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3RyaW5pdHlfZHBt LmMKPiBAQCAtMzY5LDggKzM2OSw4IEBAIHN0YXRpYyB2b2lkIHRyaW5pdHlfZ2Z4X3Bvd2VyZ2F0 aW5nX2luaXRpYWxpemUoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYpCj4gICAJaW50IHJldDsK PiAgIAl1MzIgaHdfcmV2ID0gKFJSRUczMihIV19SRVYpICYgQVRJX1JFVl9JRF9NQVNLKSA+PiBB VElfUkVWX0lEX1NISUZUOwo+ICAgCj4gLSAgICAgICAgcmV0ID0gcmFkZW9uX2F0b21fZ2V0X2Ns b2NrX2RpdmlkZXJzKHJkZXYsIENPTVBVVEVfRU5HSU5FX1BMTF9QQVJBTSwKPiAtICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjUwMDAsIGZhbHNlLCAmZGl2aWRl cnMpOwo+ICsJcmV0ID0gcmFkZW9uX2F0b21fZ2V0X2Nsb2NrX2RpdmlkZXJzKHJkZXYsIENPTVBV VEVfRU5HSU5FX1BMTF9QQVJBTSwKPiArCQkJCQkgICAgIDI1MDAwLCBmYWxzZSwgJmRpdmlkZXJz KTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm47Cj4gICAKPiBAQCAtNTg3LDggKzU4Nyw4IEBA IHN0YXRpYyB2b2lkIHRyaW5pdHlfc2V0X2RpdmlkZXJfdmFsdWUoc3RydWN0IHJhZGVvbl9kZXZp Y2UgKnJkZXYsCj4gICAJdTMyIHZhbHVlOwo+ICAgCXUzMiBpeCA9IGluZGV4ICogVFJJTklUWV9T SVpFT0ZfRFBNX1NUQVRFX1RBQkxFOwo+ICAgCj4gLSAgICAgICAgcmV0ID0gcmFkZW9uX2F0b21f Z2V0X2Nsb2NrX2RpdmlkZXJzKHJkZXYsIENPTVBVVEVfRU5HSU5FX1BMTF9QQVJBTSwKPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NsaywgZmFsc2UsICZk aXZpZGVycyk7Cj4gKwlyZXQgPSByYWRlb25fYXRvbV9nZXRfY2xvY2tfZGl2aWRlcnMocmRldiwg Q09NUFVURV9FTkdJTkVfUExMX1BBUkFNLAo+ICsJCQkJCSAgICAgc2NsaywgZmFsc2UsICZkaXZp ZGVycyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuOwo+ICAgCj4gQEAgLTU5Nyw4ICs1OTcs OCBAQCBzdGF0aWMgdm9pZCB0cmluaXR5X3NldF9kaXZpZGVyX3ZhbHVlKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAo+ICAgCXZhbHVlIHw9IENMS19ESVZJREVSKGRpdmlkZXJzLnBvc3RfZGl2 KTsKPiAgIAlXUkVHMzJfU01DKFNNVV9TQ0xLX0RQTV9TVEFURV8wX0NOVExfMCArIGl4LCB2YWx1 ZSk7Cj4gICAKPiAtICAgICAgICByZXQgPSByYWRlb25fYXRvbV9nZXRfY2xvY2tfZGl2aWRlcnMo cmRldiwgQ09NUFVURV9FTkdJTkVfUExMX1BBUkFNLAo+IC0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzY2xrLzIsIGZhbHNlLCAmZGl2aWRlcnMpOwo+ICsJcmV0 ID0gcmFkZW9uX2F0b21fZ2V0X2Nsb2NrX2RpdmlkZXJzKHJkZXYsIENPTVBVVEVfRU5HSU5FX1BM TF9QQVJBTSwKPiArCQkJCQkgICAgIHNjbGsvMiwgZmFsc2UsICZkaXZpZGVycyk7Cj4gICAJaWYg KHJldCkKPiAgIAkJcmV0dXJuOwo+ICAgCj4gQEAgLTEwNDUsMTQgKzEwNDUsMTQgQEAgc3RhdGlj IGludCB0cmluaXR5X3NldF90aGVybWFsX3RlbXBlcmF0dXJlX3JhbmdlKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAo+ICAgCWludCBsb3dfdGVtcCA9IDAgKiAxMDAwOwo+ICAgCWludCBoaWdo X3RlbXAgPSAyNTUgKiAxMDAwOwo+ICAgCj4gLSAgICAgICAgaWYgKGxvd190ZW1wIDwgbWluX3Rl bXApCj4gKwlpZiAobG93X3RlbXAgPCBtaW5fdGVtcCkKPiAgIAkJbG93X3RlbXAgPSBtaW5fdGVt cDsKPiAtICAgICAgICBpZiAoaGlnaF90ZW1wID4gbWF4X3RlbXApCj4gKwlpZiAoaGlnaF90ZW1w ID4gbWF4X3RlbXApCj4gICAJCWhpZ2hfdGVtcCA9IG1heF90ZW1wOwo+IC0gICAgICAgIGlmICho aWdoX3RlbXAgPCBsb3dfdGVtcCkgewo+ICsJaWYgKGhpZ2hfdGVtcCA8IGxvd190ZW1wKSB7Cj4g ICAJCURSTV9FUlJPUigiaW52YWxpZCB0aGVybWFsIHJhbmdlOiAlZCAtICVkXG4iLCBsb3dfdGVt cCwgaGlnaF90ZW1wKTsKPiAtICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+IC0gICAg ICAgIH0KPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiAgIAo+ICAgCVdSRUczMl9QKENHX1RI RVJNQUxfSU5UX0NUUkwsIERJR19USEVSTV9JTlRIKDQ5ICsgKGhpZ2hfdGVtcCAvIDEwMDApKSwg fkRJR19USEVSTV9JTlRIX01BU0spOwo+ICAgCVdSRUczMl9QKENHX1RIRVJNQUxfSU5UX0NUUkws IERJR19USEVSTV9JTlRMKDQ5ICsgKGxvd190ZW1wIC8gMTAwMCkpLCB+RElHX1RIRVJNX0lOVExf TUFTSyk7Cj4gQEAgLTE3MzcsNyArMTczNyw3IEBAIHN0YXRpYyBpbnQgdHJpbml0eV9wYXJzZV9w b3dlcl90YWJsZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldikKPiAgIAlzdHJ1Y3QgX05vbkNs b2NrSW5mb0FycmF5ICpub25fY2xvY2tfaW5mb19hcnJheTsKPiAgIAl1bmlvbiBwb3dlcl9pbmZv ICpwb3dlcl9pbmZvOwo+ICAgCWludCBpbmRleCA9IEdldEluZGV4SW50b01hc3RlclRhYmxlKERB VEEsIFBvd2VyUGxheUluZm8pOwo+IC0gICAgICAgIHUxNiBkYXRhX29mZnNldDsKPiArCXUxNiBk YXRhX29mZnNldDsKPiAgIAl1OCBmcmV2LCBjcmV2Owo+ICAgCXU4ICpwb3dlcl9zdGF0ZV9vZmZz ZXQ7Cj4gICAJc3RydWN0IHN1bW9fcHMgKnBzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3ZjZV92Ml8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3ZjZV92Ml8wLmMK PiBpbmRleCBjZGVhYWI3Li5mY2UyMTQ0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y YWRlb24vdmNlX3YyXzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vdmNlX3YyXzAu Ywo+IEBAIC01Myw3ICs1Myw3IEBAIHN0YXRpYyB2b2lkIHZjZV92Ml8wX3NldF9zd19jZyhzdHJ1 Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgYm9vbCBnYXRlZCkKPiAgIAkJV1JFRzMyKFZDRV9VRU5D X1JFR19DTE9DS19HQVRJTkcsIHRtcCk7Cj4gICAKPiAgIAkJV1JFRzMyKFZDRV9DR1RUX0NMS19P VkVSUklERSwgMCk7Cj4gLSAgICB9IGVsc2Ugewo+ICsJfSBlbHNlIHsKPiAgIAkJdG1wID0gUlJF RzMyKFZDRV9DTE9DS19HQVRJTkdfQik7Cj4gICAJCXRtcCB8PSAweGU3Owo+ICAgCQl0bXAgJj0g fjB4ZTcwMDAwOwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==