Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751394Ab3CRFAr (ORCPT ); Mon, 18 Mar 2013 01:00:47 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:33976 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750958Ab3CRFAo (ORCPT ); Mon, 18 Mar 2013 01:00:44 -0400 Message-ID: <1363582824.3937.321.camel@deadeye.wl.decadent.org.uk> Subject: Re: [ 00/82] 3.2.41-stable review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org Date: Mon, 18 Mar 2013 05:00:24 +0000 In-Reply-To: <20130318042144.234468645@decadent.org.uk> References: <20130318042144.234468645@decadent.org.uk> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-fwBOI+Wco9wrv6Kx4eCo" X-Mailer: Evolution 3.4.4-2 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2001:470:1f08:1539:d98f:da4e:f620:7bea X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 180355 Lines: 2374 --=-fwBOI+Wco9wrv6Kx4eCo Content-Type: multipart/mixed; boundary="=-9C3HdjvWp/pIbuF3Q1jP" --=-9C3HdjvWp/pIbuF3Q1jP Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.41-rc1 relative to 3.2.40. Ben. --=20 Ben Hutchings Never attribute to conspiracy what can adequately be explained by stupidity= . --=-9C3HdjvWp/pIbuF3Q1jP Content-Disposition: attachment; filename="linux-3.2.41-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.41-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy90dHkvc2VyaWFs L29mLXNlcmlhbC50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdHR5L3Nl cmlhbC9vZi1zZXJpYWwudHh0DQppbmRleCBiOGIyN2IwLi4zZjg5Y2JkIDEwMDY0NA0KLS0tIGEv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3R0eS9zZXJpYWwvb2Ytc2VyaWFsLnR4 dA0KKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3R0eS9zZXJpYWwvb2Yt c2VyaWFsLnR4dA0KQEAgLTEwLDYgKzEwLDkgQEAgUmVxdWlyZWQgcHJvcGVydGllczoNCiAJLSAi bnMxNjg1MCINCiAJLSAibnZpZGlhLHRlZ3JhMjAtdWFydCINCiAJLSAiaWJtLHFwYWNlLW53cC1z ZXJpYWwiDQorCS0gImFsdHIsMTY1NTAtRklGTzMyIg0KKwktICJhbHRyLDE2NTUwLUZJRk82NCIN CisJLSAiYWx0ciwxNjU1MC1GSUZPMTI4Ig0KIAktICJzZXJpYWwiIGlmIHRoZSBwb3J0IHR5cGUg aXMgdW5rbm93bi4NCiAtIHJlZyA6IG9mZnNldCBhbmQgbGVuZ3RoIG9mIHRoZSByZWdpc3RlciBz ZXQgZm9yIHRoZSBkZXZpY2UuDQogLSBpbnRlcnJ1cHRzIDogc2hvdWxkIGNvbnRhaW4gdWFydCBp bnRlcnJ1cHQuDQpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtlZmlsZQ0KaW5kZXggNDdhZjFl OS4uYWYxNmIxMyAxMDA2NDQNCi0tLSBhL01ha2VmaWxlDQorKysgYi9NYWtlZmlsZQ0KQEAgLTEs NyArMSw3IEBADQogVkVSU0lPTiA9IDMNCiBQQVRDSExFVkVMID0gMg0KLVNVQkxFVkVMID0gNDAN Ci1FWFRSQVZFUlNJT04gPQ0KK1NVQkxFVkVMID0gNDENCitFWFRSQVZFUlNJT04gPSAtcmMxDQog TkFNRSA9IFNhYmVyLXRvb3RoZWQgU3F1aXJyZWwNCiANCiAjICpET0NVTUVOVEFUSU9OKg0KZGlm ZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9wZXJmX2V2ZW50X3Y3LmMgYi9hcmNoL2FybS9rZXJu ZWwvcGVyZl9ldmVudF92Ny5jDQppbmRleCAxMDQ5MzE5Li41MTA0NTZkIDEwMDY0NA0KLS0tIGEv YXJjaC9hcm0va2VybmVsL3BlcmZfZXZlbnRfdjcuYw0KKysrIGIvYXJjaC9hcm0va2VybmVsL3Bl cmZfZXZlbnRfdjcuYw0KQEAgLTcyMCw3ICs3MjAsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQg YXJtdjdfYTE1X3BlcmZfY2FjaGVfbWFwW1BFUkZfQ09VTlRfSFdfQ0FDSEVfTUFYXQ0KIC8qDQog ICogUE1YRVZUWVBFUjogRXZlbnQgc2VsZWN0aW9uIHJlZw0KICAqLw0KLSNkZWZpbmUJQVJNVjdf RVZUWVBFX01BU0sJMHhjMDAwMDBmZgkvKiBNYXNrIGZvciB3cml0YWJsZSBiaXRzICovDQorI2Rl ZmluZQlBUk1WN19FVlRZUEVfTUFTSwkweGM4MDAwMGZmCS8qIE1hc2sgZm9yIHdyaXRhYmxlIGJp dHMgKi8NCiAjZGVmaW5lCUFSTVY3X0VWVFlQRV9FVkVOVAkweGZmCQkvKiBNYXNrIGZvciBFVkVO VCBiaXRzICovDQogDQogLyoNCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tbS9hbGlnbm1lbnQuYyBi L2FyY2gvYXJtL21tL2FsaWdubWVudC5jDQppbmRleCBjMzM1Yzc2Li5hMTI1YzRiIDEwMDY0NA0K LS0tIGEvYXJjaC9hcm0vbW0vYWxpZ25tZW50LmMNCisrKyBiL2FyY2gvYXJtL21tL2FsaWdubWVu dC5jDQpAQCAtNzQ5LDcgKzc0OSw2IEBAIGRvX2FsaWdubWVudCh1bnNpZ25lZCBsb25nIGFkZHIs IHVuc2lnbmVkIGludCBmc3IsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KIAl1bnNpZ25lZCBsb25n IGluc3RyID0gMCwgaW5zdHJwdHI7DQogCWludCAoKmhhbmRsZXIpKHVuc2lnbmVkIGxvbmcgYWRk ciwgdW5zaWduZWQgbG9uZyBpbnN0ciwgc3RydWN0IHB0X3JlZ3MgKnJlZ3MpOw0KIAl1bnNpZ25l ZCBpbnQgdHlwZTsNCi0JbW1fc2VnbWVudF90IGZzOw0KIAl1bnNpZ25lZCBpbnQgZmF1bHQ7DQog CXUxNiB0aW5zdHIgPSAwOw0KIAlpbnQgaXNpemUgPSA0Ow0KQEAgLTc2MCwxNiArNzU5LDE1IEBA IGRvX2FsaWdubWVudCh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGludCBmc3IsIHN0cnVj dCBwdF9yZWdzICpyZWdzKQ0KIA0KIAlpbnN0cnB0ciA9IGluc3RydWN0aW9uX3BvaW50ZXIocmVn cyk7DQogDQotCWZzID0gZ2V0X2ZzKCk7DQotCXNldF9mcyhLRVJORUxfRFMpOw0KIAlpZiAodGh1 bWJfbW9kZShyZWdzKSkgew0KLQkJZmF1bHQgPSBfX2dldF91c2VyKHRpbnN0ciwgKHUxNiAqKShp bnN0cnB0ciAmIH4xKSk7DQorCQl1MTYgKnB0ciA9ICh1MTYgKikoaW5zdHJwdHIgJiB+MSk7DQor CQlmYXVsdCA9IHByb2JlX2tlcm5lbF9hZGRyZXNzKHB0ciwgdGluc3RyKTsNCiAJCWlmICghZmF1 bHQpIHsNCiAJCQlpZiAoY3B1X2FyY2hpdGVjdHVyZSgpID49IENQVV9BUkNIX0FSTXY3ICYmDQog CQkJICAgIElTX1QzMih0aW5zdHIpKSB7DQogCQkJCS8qIFRodW1iLTIgMzItYml0ICovDQogCQkJ CXUxNiB0aW5zdDIgPSAwOw0KLQkJCQlmYXVsdCA9IF9fZ2V0X3VzZXIodGluc3QyLCAodTE2ICop KGluc3RycHRyKzIpKTsNCisJCQkJZmF1bHQgPSBwcm9iZV9rZXJuZWxfYWRkcmVzcyhwdHIgKyAx LCB0aW5zdDIpOw0KIAkJCQlpbnN0ciA9ICh0aW5zdHIgPDwgMTYpIHwgdGluc3QyOw0KIAkJCQl0 aHVtYjJfMzJiID0gMTsNCiAJCQl9IGVsc2Ugew0KQEAgLTc3OCw4ICs3NzYsNyBAQCBkb19hbGln bm1lbnQodW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBpbnQgZnNyLCBzdHJ1Y3QgcHRfcmVn cyAqcmVncykNCiAJCQl9DQogCQl9DQogCX0gZWxzZQ0KLQkJZmF1bHQgPSBfX2dldF91c2VyKGlu c3RyLCAodTMyICopaW5zdHJwdHIpOw0KLQlzZXRfZnMoZnMpOw0KKwkJZmF1bHQgPSBwcm9iZV9r ZXJuZWxfYWRkcmVzcyhpbnN0cnB0ciwgaW5zdHIpOw0KIA0KIAlpZiAoZmF1bHQpIHsNCiAJCXR5 cGUgPSBUWVBFX0ZBVUxUOw0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL3ZmcC92ZnBtb2R1bGUuYyBi L2FyY2gvYXJtL3ZmcC92ZnBtb2R1bGUuYw0KaW5kZXggN2M4MTViMi4uMTExNjkxYyAxMDA2NDQN Ci0tLSBhL2FyY2gvYXJtL3ZmcC92ZnBtb2R1bGUuYw0KKysrIGIvYXJjaC9hcm0vdmZwL3ZmcG1v ZHVsZS5jDQpAQCAtNDA5LDcgKzQwOSw3IEBAIHZvaWQgVkZQX2JvdW5jZSh1MzIgdHJpZ2dlciwg dTMyIGZwZXhjLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykNCiAJICogSWYgdGhlcmUgaXNuJ3QgYSBz ZWNvbmQgRlAgaW5zdHJ1Y3Rpb24sIGV4aXQgbm93LiBOb3RlIHRoYXQNCiAJICogdGhlIEZQRVhD LkZQMlYgYml0IGlzIHZhbGlkIG9ubHkgaWYgRlBFWEMuRVggaXMgMS4NCiAJICovDQotCWlmIChm cGV4YyBeIChGUEVYQ19FWCB8IEZQRVhDX0ZQMlYpKQ0KKwlpZiAoKGZwZXhjICYgKEZQRVhDX0VY IHwgRlBFWENfRlAyVikpICE9IChGUEVYQ19FWCB8IEZQRVhDX0ZQMlYpKQ0KIAkJZ290byBleGl0 Ow0KIA0KIAkvKg0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lZWguaCBi L2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lZWguaA0KaW5kZXggMjExNjVhNC4uNjZlYTliOCAx MDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9pbmNsdWRlL2FzbS9lZWguaA0KKysrIGIvYXJjaC9w b3dlcnBjL2luY2x1ZGUvYXNtL2VlaC5oDQpAQCAtNjEsNyArNjEsNiBAQCB2b2lkIF9faW5pdCBw Y2lfYWRkcl9jYWNoZV9idWlsZCh2b2lkKTsNCiAgKi8NCiB2b2lkIGVlaF9hZGRfZGV2aWNlX3Ry ZWVfZWFybHkoc3RydWN0IGRldmljZV9ub2RlICopOw0KIHZvaWQgZWVoX2FkZF9kZXZpY2VfdHJl ZV9sYXRlKHN0cnVjdCBwY2lfYnVzICopOw0KLXZvaWQgZWVoX2FkZF9zeXNmc19maWxlcyhzdHJ1 Y3QgcGNpX2J1cyAqKTsNCiANCiAvKioNCiAgKiBlZWhfcmVtb3ZlX2RldmljZV9yZWN1cnNpdmUg LSB1bmRvIEVFSCBmb3IgZGV2aWNlICYgY2hpbGRyZW4uDQpAQCAtMTA2LDggKzEwNSw2IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBlZWhfYWRkX2RldmljZV90cmVlX2Vhcmx5KHN0cnVjdCBkZXZpY2Vf bm9kZSAqZG4pIHsgfQ0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBlZWhfYWRkX2RldmljZV90cmVl X2xhdGUoc3RydWN0IHBjaV9idXMgKmJ1cykgeyB9DQogDQotc3RhdGljIGlubGluZSB2b2lkIGVl aF9hZGRfc3lzZnNfZmlsZXMoc3RydWN0IHBjaV9idXMgKmJ1cykgeyB9DQotDQogc3RhdGljIGlu bGluZSB2b2lkIGVlaF9yZW1vdmVfYnVzX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2KSB7IH0N CiAjZGVmaW5lIEVFSF9QT1NTSUJMRV9FUlJPUih2YWwsIHR5cGUpICgwKQ0KICNkZWZpbmUgRUVI X0lPX0VSUk9SX1ZBTFVFKHNpemUpICgtMVVMKQ0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9r ZXJuZWwvb2ZfcGxhdGZvcm0uYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvb2ZfcGxhdGZvcm0uYw0K aW5kZXggYjEwYmVlZi4uZTE2MTJkZiAxMDA2NDQNCi0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwv b2ZfcGxhdGZvcm0uYw0KKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9vZl9wbGF0Zm9ybS5jDQpA QCAtOTEsOSArOTEsNiBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBvZl9wY2lfcGhiX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikNCiAJLyogQWRkIHByb2JlZCBQQ0kgZGV2aWNlcyB0 byB0aGUgZGV2aWNlIG1vZGVsICovDQogCXBjaV9idXNfYWRkX2RldmljZXMocGhiLT5idXMpOw0K IA0KLQkvKiBzeXNmcyBmaWxlcyBzaG91bGQgb25seSBiZSBhZGRlZCBhZnRlciBkZXZpY2VzIGFy ZSBhZGRlZCAqLw0KLQllZWhfYWRkX3N5c2ZzX2ZpbGVzKHBoYi0+YnVzKTsNCi0NCiAJcmV0dXJu IDA7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5j IGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMNCmluZGV4IGEzY2Q5NDkuLjQ1OGVk M2IgMTAwNjQ0DQotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYw0KKysrIGIv YXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMNCkBAIC0xNTM2LDE0ICsxNTM2LDExIEBA IHZvaWQgcGNpYmlvc19maW5pc2hfYWRkaW5nX3RvX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKQ0K IAlwY2liaW9zX2FsbG9jYXRlX2J1c19yZXNvdXJjZXMoYnVzKTsNCiAJcGNpYmlvc19jbGFpbV9v bmVfYnVzKGJ1cyk7DQogDQotCS8qIEZpeHVwIEVFSCAqLw0KLQllZWhfYWRkX2RldmljZV90cmVl X2xhdGUoYnVzKTsNCi0NCiAJLyogQWRkIG5ldyBkZXZpY2VzIHRvIGdsb2JhbCBsaXN0cy4gIFJl Z2lzdGVyIGluIHByb2MsIHN5c2ZzLiAqLw0KIAlwY2lfYnVzX2FkZF9kZXZpY2VzKGJ1cyk7DQog DQotCS8qIHN5c2ZzIGZpbGVzIHNob3VsZCBvbmx5IGJlIGFkZGVkIGFmdGVyIGRldmljZXMgYXJl IGFkZGVkICovDQotCWVlaF9hZGRfc3lzZnNfZmlsZXMoYnVzKTsNCisJLyogRml4dXAgRUVIICov DQorCWVlaF9hZGRfZGV2aWNlX3RyZWVfbGF0ZShidXMpOw0KIH0NCiBFWFBPUlRfU1lNQk9MX0dQ TChwY2liaW9zX2ZpbmlzaF9hZGRpbmdfdG9fYnVzKTsNCiANCmRpZmYgLS1naXQgYS9hcmNoL3Bv d2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvZWVoLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bz ZXJpZXMvZWVoLmMNCmluZGV4IDM4OWUwNmIuLjU2NTg2OTAgMTAwNjQ0DQotLS0gYS9hcmNoL3Bv d2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvZWVoLmMNCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvcHNlcmllcy9lZWguYw0KQEAgLTEyMzgsNiArMTIzOCw3IEBAIHN0YXRpYyB2b2lkIGVlaF9h ZGRfZGV2aWNlX2xhdGUoc3RydWN0IHBjaV9kZXYgKmRldikNCiAJcGRuLT5wY2lkZXYgPSBkZXY7 DQogDQogCXBjaV9hZGRyX2NhY2hlX2luc2VydF9kZXZpY2UoZGV2KTsNCisJZWVoX3N5c2ZzX2Fk ZF9kZXZpY2UoZGV2KTsNCiB9DQogDQogdm9pZCBlZWhfYWRkX2RldmljZV90cmVlX2xhdGUoc3Ry dWN0IHBjaV9idXMgKmJ1cykNCkBAIC0xMjU2LDI5ICsxMjU3LDYgQEAgdm9pZCBlZWhfYWRkX2Rl dmljZV90cmVlX2xhdGUoc3RydWN0IHBjaV9idXMgKmJ1cykNCiBFWFBPUlRfU1lNQk9MX0dQTChl ZWhfYWRkX2RldmljZV90cmVlX2xhdGUpOw0KIA0KIC8qKg0KLSAqIGVlaF9hZGRfc3lzZnNfZmls ZXMgLSBBZGQgRUVIIHN5c2ZzIGZpbGVzIGZvciB0aGUgaW5kaWNhdGVkIFBDSSBidXMNCi0gKiBA YnVzOiBQQ0kgYnVzDQotICoNCi0gKiBUaGlzIHJvdXRpbmUgbXVzdCBiZSB1c2VkIHRvIGFkZCBF RUggc3lzZnMgZmlsZXMgZm9yIFBDSQ0KLSAqIGRldmljZXMgd2hpY2ggYXJlIGF0dGFjaGVkIHRv IHRoZSBpbmRpY2F0ZWQgUENJIGJ1cy4gVGhlIFBDSSBidXMNCi0gKiBpcyBhZGRlZCBhZnRlciBz eXN0ZW0gYm9vdCB0aHJvdWdoIGhvdHBsdWcgb3IgZGxwYXIuDQotICovDQotdm9pZCBlZWhfYWRk X3N5c2ZzX2ZpbGVzKHN0cnVjdCBwY2lfYnVzICpidXMpDQotew0KLQlzdHJ1Y3QgcGNpX2RldiAq ZGV2Ow0KLQ0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZGV2aWNlcywgYnVzX2xp c3QpIHsNCi0JCWVlaF9zeXNmc19hZGRfZGV2aWNlKGRldik7DQotCQlpZiAoZGV2LT5oZHJfdHlw ZSA9PSBQQ0lfSEVBREVSX1RZUEVfQlJJREdFKSB7DQotCQkJc3RydWN0IHBjaV9idXMgKnN1YmJ1 cyA9IGRldi0+c3Vib3JkaW5hdGU7DQotCQkJaWYgKHN1YmJ1cykNCi0JCQkJZWVoX2FkZF9zeXNm c19maWxlcyhzdWJidXMpOw0KLQkJfQ0KLQl9DQotfQ0KLUVYUE9SVF9TWU1CT0xfR1BMKGVlaF9h ZGRfc3lzZnNfZmlsZXMpOw0KLQ0KLS8qKg0KICAqIGVlaF9yZW1vdmVfZGV2aWNlIC0gdW5kbyBF RUggc2V0dXAgZm9yIHRoZSBpbmRpY2F0ZWQgcGNpIGRldmljZQ0KICAqIEBkZXY6IHBjaSBkZXZp Y2UgdG8gYmUgcmVtb3ZlZA0KICAqDQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGNpL3hlbi5jIGIv YXJjaC94ODYvcGNpL3hlbi5jDQppbmRleCA0YzI2MmY2Li4xZTFjYWY1NiAxMDA2NDQNCi0tLSBh L2FyY2gveDg2L3BjaS94ZW4uYw0KKysrIGIvYXJjaC94ODYvcGNpL3hlbi5jDQpAQCAtMTYyLDYg KzE2Miw5IEBAIHN0YXRpYyBpbnQgeGVuX3NldHVwX21zaV9pcnFzKHN0cnVjdCBwY2lfZGV2ICpk ZXYsIGludCBudmVjLCBpbnQgdHlwZSkNCiAJc3RydWN0IG1zaV9kZXNjICptc2lkZXNjOw0KIAlp bnQgKnY7DQogDQorCWlmICh0eXBlID09IFBDSV9DQVBfSURfTVNJICYmIG52ZWMgPiAxKQ0KKwkJ cmV0dXJuIDE7DQorDQogCXYgPSBremFsbG9jKHNpemVvZihpbnQpICogbWF4KDEsIG52ZWMpLCBH RlBfS0VSTkVMKTsNCiAJaWYgKCF2KQ0KIAkJcmV0dXJuIC1FTk9NRU07DQpAQCAtMjIwLDYgKzIy Myw5IEBAIHN0YXRpYyBpbnQgeGVuX2h2bV9zZXR1cF9tc2lfaXJxcyhzdHJ1Y3QgcGNpX2RldiAq ZGV2LCBpbnQgbnZlYywgaW50IHR5cGUpDQogCXN0cnVjdCBtc2lfZGVzYyAqbXNpZGVzYzsNCiAJ c3RydWN0IG1zaV9tc2cgbXNnOw0KIA0KKwlpZiAodHlwZSA9PSBQQ0lfQ0FQX0lEX01TSSAmJiBu dmVjID4gMSkNCisJCXJldHVybiAxOw0KKw0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1zaWRlc2Ms ICZkZXYtPm1zaV9saXN0LCBsaXN0KSB7DQogCQlfX3JlYWRfbXNpX21zZyhtc2lkZXNjLCAmbXNn KTsNCiAJCXBpcnEgPSBNU0lfQUREUl9FWFRfREVTVF9JRChtc2cuYWRkcmVzc19oaSkgfA0KQEAg LTI2Myw2ICsyNjksOSBAQCBzdGF0aWMgaW50IHhlbl9pbml0ZG9tX3NldHVwX21zaV9pcnFzKHN0 cnVjdCBwY2lfZGV2ICpkZXYsIGludCBudmVjLCBpbnQgdHlwZSkNCiAJaW50IHJldCA9IDA7DQog CXN0cnVjdCBtc2lfZGVzYyAqbXNpZGVzYzsNCiANCisJaWYgKHR5cGUgPT0gUENJX0NBUF9JRF9N U0kgJiYgbnZlYyA+IDEpDQorCQlyZXR1cm4gMTsNCisNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSht c2lkZXNjLCAmZGV2LT5tc2lfbGlzdCwgbGlzdCkgew0KIAkJc3RydWN0IHBoeXNkZXZfbWFwX3Bp cnEgbWFwX2lycTsNCiAJCWRvbWlkX3QgZG9taWQ7DQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FibGtj aXBoZXIuYyBiL2NyeXB0by9hYmxrY2lwaGVyLmMNCmluZGV4IGEwZjc2OGMuLjlmNzMwMzcgMTAw NjQ0DQotLS0gYS9jcnlwdG8vYWJsa2NpcGhlci5jDQorKysgYi9jcnlwdG8vYWJsa2NpcGhlci5j DQpAQCAtMzg4LDkgKzM4OCw5IEBAIHN0YXRpYyBpbnQgY3J5cHRvX2FibGtjaXBoZXJfcmVwb3J0 KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjcnlwdG9fYWxnICphbGcpDQogew0KIAlzdHJ1 Y3QgY3J5cHRvX3JlcG9ydF9ibGtjaXBoZXIgcmJsa2NpcGhlcjsNCiANCi0Jc25wcmludGYocmJs a2NpcGhlci50eXBlLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLCAiYWJsa2NpcGhlciIpOw0K LQlzbnByaW50ZihyYmxrY2lwaGVyLmdlbml2LCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLA0K LQkJIGFsZy0+Y3JhX2FibGtjaXBoZXIuZ2VuaXYgPzogIjxkZWZhdWx0PiIpOw0KKwlzdHJuY3B5 KHJibGtjaXBoZXIudHlwZSwgImFibGtjaXBoZXIiLCBzaXplb2YocmJsa2NpcGhlci50eXBlKSk7 DQorCXN0cm5jcHkocmJsa2NpcGhlci5nZW5pdiwgYWxnLT5jcmFfYWJsa2NpcGhlci5nZW5pdiA/ OiAiPGRlZmF1bHQ+IiwNCisJCXNpemVvZihyYmxrY2lwaGVyLmdlbml2KSk7DQogDQogCXJibGtj aXBoZXIuYmxvY2tzaXplID0gYWxnLT5jcmFfYmxvY2tzaXplOw0KIAlyYmxrY2lwaGVyLm1pbl9r ZXlzaXplID0gYWxnLT5jcmFfYWJsa2NpcGhlci5taW5fa2V5c2l6ZTsNCkBAIC00NjksOSArNDY5 LDkgQEAgc3RhdGljIGludCBjcnlwdG9fZ2l2Y2lwaGVyX3JlcG9ydChzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQ0KIHsNCiAJc3RydWN0IGNyeXB0b19yZXBvcnRf YmxrY2lwaGVyIHJibGtjaXBoZXI7DQogDQotCXNucHJpbnRmKHJibGtjaXBoZXIudHlwZSwgQ1JZ UFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgImdpdmNpcGhlciIpOw0KLQlzbnByaW50ZihyYmxrY2lw aGVyLmdlbml2LCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLA0KLQkJIGFsZy0+Y3JhX2FibGtj aXBoZXIuZ2VuaXYgPzogIjxidWlsdC1pbj4iKTsNCisJc3RybmNweShyYmxrY2lwaGVyLnR5cGUs ICJnaXZjaXBoZXIiLCBzaXplb2YocmJsa2NpcGhlci50eXBlKSk7DQorCXN0cm5jcHkocmJsa2Np cGhlci5nZW5pdiwgYWxnLT5jcmFfYWJsa2NpcGhlci5nZW5pdiA/OiAiPGJ1aWx0LWluPiIsDQor CQlzaXplb2YocmJsa2NpcGhlci5nZW5pdikpOw0KIA0KIAlyYmxrY2lwaGVyLmJsb2Nrc2l6ZSA9 IGFsZy0+Y3JhX2Jsb2Nrc2l6ZTsNCiAJcmJsa2NpcGhlci5taW5fa2V5c2l6ZSA9IGFsZy0+Y3Jh X2FibGtjaXBoZXIubWluX2tleXNpemU7DQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2FlYWQuYyBiL2Ny eXB0by9hZWFkLmMNCmluZGV4IDA0YWRkM2RjLi40NzliN2QxIDEwMDY0NA0KLS0tIGEvY3J5cHRv L2FlYWQuYw0KKysrIGIvY3J5cHRvL2FlYWQuYw0KQEAgLTExNyw5ICsxMTcsOCBAQCBzdGF0aWMg aW50IGNyeXB0b19hZWFkX3JlcG9ydChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY3J5cHRv X2FsZyAqYWxnKQ0KIAlzdHJ1Y3QgY3J5cHRvX3JlcG9ydF9hZWFkIHJhZWFkOw0KIAlzdHJ1Y3Qg YWVhZF9hbGcgKmFlYWQgPSAmYWxnLT5jcmFfYWVhZDsNCiANCi0Jc25wcmludGYocmFlYWQudHlw ZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgImFlYWQiKTsNCi0Jc25wcmludGYocmFlYWQu Z2VuaXYsIENSWVBUT19NQVhfQUxHX05BTUUsICIlcyIsDQotCQkgYWVhZC0+Z2VuaXYgPzogIjxi dWlsdC1pbj4iKTsNCisJc3RybmNweShyYWVhZC50eXBlLCAiYWVhZCIsIHNpemVvZihyYWVhZC50 eXBlKSk7DQorCXN0cm5jcHkocmFlYWQuZ2VuaXYsIGFlYWQtPmdlbml2ID86ICI8YnVpbHQtaW4+ Iiwgc2l6ZW9mKHJhZWFkLmdlbml2KSk7DQogDQogCXJhZWFkLmJsb2Nrc2l6ZSA9IGFsZy0+Y3Jh X2Jsb2Nrc2l6ZTsNCiAJcmFlYWQubWF4YXV0aHNpemUgPSBhZWFkLT5tYXhhdXRoc2l6ZTsNCkBA IC0yMDMsOCArMjAyLDggQEAgc3RhdGljIGludCBjcnlwdG9fbml2YWVhZF9yZXBvcnQoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykNCiAJc3RydWN0IGNyeXB0b19y ZXBvcnRfYWVhZCByYWVhZDsNCiAJc3RydWN0IGFlYWRfYWxnICphZWFkID0gJmFsZy0+Y3JhX2Fl YWQ7DQogDQotCXNucHJpbnRmKHJhZWFkLnR5cGUsIENSWVBUT19NQVhfQUxHX05BTUUsICIlcyIs ICJuaXZhZWFkIik7DQotCXNucHJpbnRmKHJhZWFkLmdlbml2LCBDUllQVE9fTUFYX0FMR19OQU1F LCAiJXMiLCBhZWFkLT5nZW5pdik7DQorCXN0cm5jcHkocmFlYWQudHlwZSwgIm5pdmFlYWQiLCBz aXplb2YocmFlYWQudHlwZSkpOw0KKwlzdHJuY3B5KHJhZWFkLmdlbml2LCBhZWFkLT5nZW5pdiwg c2l6ZW9mKHJhZWFkLmdlbml2KSk7DQogDQogCXJhZWFkLmJsb2Nrc2l6ZSA9IGFsZy0+Y3JhX2Js b2Nrc2l6ZTsNCiAJcmFlYWQubWF4YXV0aHNpemUgPSBhZWFkLT5tYXhhdXRoc2l6ZTsNCmRpZmYg LS1naXQgYS9jcnlwdG8vYWhhc2guYyBiL2NyeXB0by9haGFzaC5jDQppbmRleCBhYzkzYzk5Li43 ZmUxNzUyIDEwMDY0NA0KLS0tIGEvY3J5cHRvL2FoYXNoLmMNCisrKyBiL2NyeXB0by9haGFzaC5j DQpAQCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyBpbnQgY3J5cHRvX2FoYXNoX3JlcG9ydChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQ0KIHsNCiAJc3RydWN0IGNy eXB0b19yZXBvcnRfaGFzaCByaGFzaDsNCiANCi0Jc25wcmludGYocmhhc2gudHlwZSwgQ1JZUFRP X01BWF9BTEdfTkFNRSwgIiVzIiwgImFoYXNoIik7DQorCXN0cm5jcHkocmhhc2gudHlwZSwgImFo YXNoIiwgc2l6ZW9mKHJoYXNoLnR5cGUpKTsNCiANCiAJcmhhc2guYmxvY2tzaXplID0gYWxnLT5j cmFfYmxvY2tzaXplOw0KIAlyaGFzaC5kaWdlc3RzaXplID0gX19jcnlwdG9faGFzaF9hbGdfY29t bW9uKGFsZyktPmRpZ2VzdHNpemU7DQpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Jsa2NpcGhlci5jIGIv Y3J5cHRvL2Jsa2NpcGhlci5jDQppbmRleCAxZTYxZDFhLi4wNGYwZjM4IDEwMDY0NA0KLS0tIGEv Y3J5cHRvL2Jsa2NpcGhlci5jDQorKysgYi9jcnlwdG8vYmxrY2lwaGVyLmMNCkBAIC00OTksOSAr NDk5LDkgQEAgc3RhdGljIGludCBjcnlwdG9fYmxrY2lwaGVyX3JlcG9ydChzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQ0KIHsNCiAJc3RydWN0IGNyeXB0b19yZXBv cnRfYmxrY2lwaGVyIHJibGtjaXBoZXI7DQogDQotCXNucHJpbnRmKHJibGtjaXBoZXIudHlwZSwg Q1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgImJsa2NpcGhlciIpOw0KLQlzbnByaW50ZihyYmxr Y2lwaGVyLmdlbml2LCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLA0KLQkJIGFsZy0+Y3JhX2Js a2NpcGhlci5nZW5pdiA/OiAiPGRlZmF1bHQ+Iik7DQorCXN0cm5jcHkocmJsa2NpcGhlci50eXBl LCAiYmxrY2lwaGVyIiwgc2l6ZW9mKHJibGtjaXBoZXIudHlwZSkpOw0KKwlzdHJuY3B5KHJibGtj aXBoZXIuZ2VuaXYsIGFsZy0+Y3JhX2Jsa2NpcGhlci5nZW5pdiA/OiAiPGRlZmF1bHQ+IiwNCisJ CXNpemVvZihyYmxrY2lwaGVyLmdlbml2KSk7DQogDQogCXJibGtjaXBoZXIuYmxvY2tzaXplID0g YWxnLT5jcmFfYmxvY2tzaXplOw0KIAlyYmxrY2lwaGVyLm1pbl9rZXlzaXplID0gYWxnLT5jcmFf YmxrY2lwaGVyLm1pbl9rZXlzaXplOw0KZGlmZiAtLWdpdCBhL2NyeXB0by9jcnlwdG9fdXNlci5j IGIvY3J5cHRvL2NyeXB0b191c2VyLmMNCmluZGV4IDA2MDVhMmIuLjViNjNiOGQgMTAwNjQ0DQot LS0gYS9jcnlwdG8vY3J5cHRvX3VzZXIuYw0KKysrIGIvY3J5cHRvL2NyeXB0b191c2VyLmMNCkBA IC03MSw3ICs3MSw3IEBAIHN0YXRpYyBpbnQgY3J5cHRvX3JlcG9ydF9jaXBoZXIoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykNCiB7DQogCXN0cnVjdCBjcnlwdG9f cmVwb3J0X2NpcGhlciByY2lwaGVyOw0KIA0KLQlzbnByaW50ZihyY2lwaGVyLnR5cGUsIENSWVBU T19NQVhfQUxHX05BTUUsICIlcyIsICJjaXBoZXIiKTsNCisJc3RybmNweShyY2lwaGVyLnR5cGUs ICJjaXBoZXIiLCBzaXplb2YocmNpcGhlci50eXBlKSk7DQogDQogCXJjaXBoZXIuYmxvY2tzaXpl ID0gYWxnLT5jcmFfYmxvY2tzaXplOw0KIAlyY2lwaGVyLm1pbl9rZXlzaXplID0gYWxnLT5jcmFf Y2lwaGVyLmNpYV9taW5fa2V5c2l6ZTsNCkBAIC05MCw4ICs5MCw3IEBAIHN0YXRpYyBpbnQgY3J5 cHRvX3JlcG9ydF9jb21wKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBjcnlwdG9fYWxnICph bGcpDQogew0KIAlzdHJ1Y3QgY3J5cHRvX3JlcG9ydF9jb21wIHJjb21wOw0KIA0KLQlzbnByaW50 ZihyY29tcC50eXBlLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLCAiY29tcHJlc3Npb24iKTsN Ci0NCisJc3RybmNweShyY29tcC50eXBlLCAiY29tcHJlc3Npb24iLCBzaXplb2YocmNvbXAudHlw ZSkpOw0KIAlOTEFfUFVUKHNrYiwgQ1JZUFRPQ0ZHQV9SRVBPUlRfQ09NUFJFU1MsDQogCQlzaXpl b2Yoc3RydWN0IGNyeXB0b19yZXBvcnRfY29tcCksICZyY29tcCk7DQogDQpAQCAtMTA0LDEyICsx MDMsMTQgQEAgbmxhX3B1dF9mYWlsdXJlOg0KIHN0YXRpYyBpbnQgY3J5cHRvX3JlcG9ydF9vbmUo c3RydWN0IGNyeXB0b19hbGcgKmFsZywNCiAJCQkgICAgIHN0cnVjdCBjcnlwdG9fdXNlcl9hbGcg KnVhbGcsIHN0cnVjdCBza19idWZmICpza2IpDQogew0KLQltZW1jcHkoJnVhbGctPmNydV9uYW1l LCAmYWxnLT5jcmFfbmFtZSwgc2l6ZW9mKHVhbGctPmNydV9uYW1lKSk7DQotCW1lbWNweSgmdWFs Zy0+Y3J1X2RyaXZlcl9uYW1lLCAmYWxnLT5jcmFfZHJpdmVyX25hbWUsDQotCSAgICAgICBzaXpl b2YodWFsZy0+Y3J1X2RyaXZlcl9uYW1lKSk7DQotCW1lbWNweSgmdWFsZy0+Y3J1X21vZHVsZV9u YW1lLCBtb2R1bGVfbmFtZShhbGctPmNyYV9tb2R1bGUpLA0KLQkgICAgICAgQ1JZUFRPX01BWF9B TEdfTkFNRSk7DQotDQorCXN0cm5jcHkodWFsZy0+Y3J1X25hbWUsIGFsZy0+Y3JhX25hbWUsIHNp emVvZih1YWxnLT5jcnVfbmFtZSkpOw0KKwlzdHJuY3B5KHVhbGctPmNydV9kcml2ZXJfbmFtZSwg YWxnLT5jcmFfZHJpdmVyX25hbWUsDQorCQlzaXplb2YodWFsZy0+Y3J1X2RyaXZlcl9uYW1lKSk7 DQorCXN0cm5jcHkodWFsZy0+Y3J1X21vZHVsZV9uYW1lLCBtb2R1bGVfbmFtZShhbGctPmNyYV9t b2R1bGUpLA0KKwkJc2l6ZW9mKHVhbGctPmNydV9tb2R1bGVfbmFtZSkpOw0KKw0KKwl1YWxnLT5j cnVfdHlwZSA9IDA7DQorCXVhbGctPmNydV9tYXNrID0gMDsNCiAJdWFsZy0+Y3J1X2ZsYWdzID0g YWxnLT5jcmFfZmxhZ3M7DQogCXVhbGctPmNydV9yZWZjbnQgPSBhdG9taWNfcmVhZCgmYWxnLT5j cmFfcmVmY250KTsNCiANCkBAIC0xMTgsOCArMTE5LDcgQEAgc3RhdGljIGludCBjcnlwdG9fcmVw b3J0X29uZShzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnLA0KIAlpZiAoYWxnLT5jcmFfZmxhZ3MgJiBD UllQVE9fQUxHX0xBUlZBTCkgew0KIAkJc3RydWN0IGNyeXB0b19yZXBvcnRfbGFydmFsIHJsOw0K IA0KLQkJc25wcmludGYocmwudHlwZSwgQ1JZUFRPX01BWF9BTEdfTkFNRSwgIiVzIiwgImxhcnZh bCIpOw0KLQ0KKwkJc3RybmNweShybC50eXBlLCAibGFydmFsIiwgc2l6ZW9mKHJsLnR5cGUpKTsN CiAJCU5MQV9QVVQoc2tiLCBDUllQVE9DRkdBX1JFUE9SVF9MQVJWQUwsDQogCQkJc2l6ZW9mKHN0 cnVjdCBjcnlwdG9fcmVwb3J0X2xhcnZhbCksICZybCk7DQogDQpkaWZmIC0tZ2l0IGEvY3J5cHRv L3Bjb21wcmVzcy5jIGIvY3J5cHRvL3Bjb21wcmVzcy5jDQppbmRleCAyZTQ1OGU1Li42ZjJhMzYx IDEwMDY0NA0KLS0tIGEvY3J5cHRvL3Bjb21wcmVzcy5jDQorKysgYi9jcnlwdG8vcGNvbXByZXNz LmMNCkBAIC01Myw4ICs1Myw3IEBAIHN0YXRpYyBpbnQgY3J5cHRvX3Bjb21wX3JlcG9ydChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgY3J5cHRvX2FsZyAqYWxnKQ0KIHsNCiAJc3RydWN0IGNy eXB0b19yZXBvcnRfY29tcCBycGNvbXA7DQogDQotCXNucHJpbnRmKHJwY29tcC50eXBlLCBDUllQ VE9fTUFYX0FMR19OQU1FLCAiJXMiLCAicGNvbXAiKTsNCi0NCisJc3RybmNweShycGNvbXAudHlw ZSwgInBjb21wIiwgc2l6ZW9mKHJwY29tcC50eXBlKSk7DQogCU5MQV9QVVQoc2tiLCBDUllQVE9D RkdBX1JFUE9SVF9DT01QUkVTUywNCiAJCXNpemVvZihzdHJ1Y3QgY3J5cHRvX3JlcG9ydF9jb21w KSwgJnJwY29tcCk7DQogDQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JuZy5jIGIvY3J5cHRvL3JuZy5j DQppbmRleCA2NGY4NjRmLi4xOTY2YzFkIDEwMDY0NA0KLS0tIGEvY3J5cHRvL3JuZy5jDQorKysg Yi9jcnlwdG8vcm5nLmMNCkBAIC02NSw3ICs2NSw3IEBAIHN0YXRpYyBpbnQgY3J5cHRvX3JuZ19y ZXBvcnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGNyeXB0b19hbGcgKmFsZykNCiB7DQog CXN0cnVjdCBjcnlwdG9fcmVwb3J0X3JuZyBycm5nOw0KIA0KLQlzbnByaW50Zihycm5nLnR5cGUs IENSWVBUT19NQVhfQUxHX05BTUUsICIlcyIsICJybmciKTsNCisJc3RybmNweShycm5nLnR5cGUs ICJybmciLCBzaXplb2YocnJuZy50eXBlKSk7DQogDQogCXJybmcuc2VlZHNpemUgPSBhbGctPmNy YV9ybmcuc2VlZHNpemU7DQogDQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3NoYXNoLmMgYi9jcnlwdG8v c2hhc2guYw0KaW5kZXggOTEwMDkxMi4uZjUwNzI5NCAxMDA2NDQNCi0tLSBhL2NyeXB0by9zaGFz aC5jDQorKysgYi9jcnlwdG8vc2hhc2guYw0KQEAgLTUzMCw3ICs1MzAsOCBAQCBzdGF0aWMgaW50 IGNyeXB0b19zaGFzaF9yZXBvcnQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGNyeXB0b19h bGcgKmFsZykNCiAJc3RydWN0IGNyeXB0b19yZXBvcnRfaGFzaCByaGFzaDsNCiAJc3RydWN0IHNo YXNoX2FsZyAqc2FsZyA9IF9fY3J5cHRvX3NoYXNoX2FsZyhhbGcpOw0KIA0KLQlzbnByaW50Zihy aGFzaC50eXBlLCBDUllQVE9fTUFYX0FMR19OQU1FLCAiJXMiLCAic2hhc2giKTsNCisJc3RybmNw eShyaGFzaC50eXBlLCAic2hhc2giLCBzaXplb2Yocmhhc2gudHlwZSkpOw0KKw0KIAlyaGFzaC5i bG9ja3NpemUgPSBhbGctPmNyYV9ibG9ja3NpemU7DQogCXJoYXNoLmRpZ2VzdHNpemUgPSBzYWxn LT5kaWdlc3RzaXplOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL2FoY2kuYyBiL2RyaXZl cnMvYXRhL2FoY2kuYw0KaW5kZXggNjJjMTMyNS4uODdhY2MyMyAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvYXRhL2FoY2kuYw0KKysrIGIvZHJpdmVycy9hdGEvYWhjaS5jDQpAQCAtMjYyLDYgKzI2Miw0 NiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgYWhjaV9wY2lfdGJsW10gPSB7 DQogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWUwNiksIGJvYXJkX2FoY2kgfSwgLyogUGFudGhl ciBQb2ludCBSQUlEICovDQogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWUwNyksIGJvYXJkX2Fo Y2kgfSwgLyogUGFudGhlciBQb2ludCBSQUlEICovDQogCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4 MWUwZSksIGJvYXJkX2FoY2kgfSwgLyogUGFudGhlciBQb2ludCBSQUlEICovDQorCXsgUENJX1ZE RVZJQ0UoSU5URUwsIDB4OGMwMiksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludCBBSENJICov DQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGMwMyksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQ b2ludCBBSENJICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGMwNCksIGJvYXJkX2FoY2kg fSwgLyogTHlueCBQb2ludCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGMwNSks IGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5U RUwsIDB4OGMwNiksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludCBSQUlEICovDQorCXsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4OGMwNyksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludCBSQUlE ICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGMwZSksIGJvYXJkX2FoY2kgfSwgLyogTHlu eCBQb2ludCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGMwZiksIGJvYXJkX2Fo Y2kgfSwgLyogTHlueCBQb2ludCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWMw MiksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludC1MUCBBSENJICovDQorCXsgUENJX1ZERVZJ Q0UoSU5URUwsIDB4OWMwMyksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludC1MUCBBSENJICov DQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWMwNCksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQ b2ludC1MUCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWMwNSksIGJvYXJkX2Fo Y2kgfSwgLyogTHlueCBQb2ludC1MUCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4 OWMwNiksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludC1MUCBSQUlEICovDQorCXsgUENJX1ZE RVZJQ0UoSU5URUwsIDB4OWMwNyksIGJvYXJkX2FoY2kgfSwgLyogTHlueCBQb2ludC1MUCBSQUlE ICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWMwZSksIGJvYXJkX2FoY2kgfSwgLyogTHlu eCBQb2ludC1MUCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OWMwZiksIGJvYXJk X2FoY2kgfSwgLyogTHlueCBQb2ludC1MUCBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUws IDB4MWYyMiksIGJvYXJkX2FoY2kgfSwgLyogQXZvdG9uIEFIQ0kgKi8NCisJeyBQQ0lfVkRFVklD RShJTlRFTCwgMHgxZjIzKSwgYm9hcmRfYWhjaSB9LCAvKiBBdm90b24gQUhDSSAqLw0KKwl7IFBD SV9WREVWSUNFKElOVEVMLCAweDFmMjQpLCBib2FyZF9haGNpIH0sIC8qIEF2b3RvbiBSQUlEICov DQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYyNSksIGJvYXJkX2FoY2kgfSwgLyogQXZvdG9u IFJBSUQgKi8NCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjI2KSwgYm9hcmRfYWhjaSB9LCAv KiBBdm90b24gUkFJRCAqLw0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMjcpLCBib2FyZF9h aGNpIH0sIC8qIEF2b3RvbiBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYyZSks IGJvYXJkX2FoY2kgfSwgLyogQXZvdG9uIFJBSUQgKi8NCisJeyBQQ0lfVkRFVklDRShJTlRFTCwg MHgxZjJmKSwgYm9hcmRfYWhjaSB9LCAvKiBBdm90b24gUkFJRCAqLw0KKwl7IFBDSV9WREVWSUNF KElOVEVMLCAweDFmMzIpLCBib2FyZF9haGNpIH0sIC8qIEF2b3RvbiBBSENJICovDQorCXsgUENJ X1ZERVZJQ0UoSU5URUwsIDB4MWYzMyksIGJvYXJkX2FoY2kgfSwgLyogQXZvdG9uIEFIQ0kgKi8N CisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjM0KSwgYm9hcmRfYWhjaSB9LCAvKiBBdm90b24g UkFJRCAqLw0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDFmMzUpLCBib2FyZF9haGNpIH0sIC8q IEF2b3RvbiBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4MWYzNiksIGJvYXJkX2Fo Y2kgfSwgLyogQXZvdG9uIFJBSUQgKi8NCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHgxZjM3KSwg Ym9hcmRfYWhjaSB9LCAvKiBBdm90b24gUkFJRCAqLw0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAw eDFmM2UpLCBib2FyZF9haGNpIH0sIC8qIEF2b3RvbiBSQUlEICovDQorCXsgUENJX1ZERVZJQ0Uo SU5URUwsIDB4MWYzZiksIGJvYXJkX2FoY2kgfSwgLyogQXZvdG9uIFJBSUQgKi8NCisJeyBQQ0lf VkRFVklDRShJTlRFTCwgMHg4ZDAyKSwgYm9hcmRfYWhjaSB9LCAvKiBXZWxsc2J1cmcgQUhDSSAq Lw0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhkMDQpLCBib2FyZF9haGNpIH0sIC8qIFdlbGxz YnVyZyBSQUlEICovDQorCXsgUENJX1ZERVZJQ0UoSU5URUwsIDB4OGQwNiksIGJvYXJkX2FoY2kg fSwgLyogV2VsbHNidXJnIFJBSUQgKi8NCisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4ZDBlKSwg Ym9hcmRfYWhjaSB9LCAvKiBXZWxsc2J1cmcgUkFJRCAqLw0KKwl7IFBDSV9WREVWSUNFKElOVEVM LCAweDhkNjIpLCBib2FyZF9haGNpIH0sIC8qIFdlbGxzYnVyZyBBSENJICovDQorCXsgUENJX1ZE RVZJQ0UoSU5URUwsIDB4OGQ2NCksIGJvYXJkX2FoY2kgfSwgLyogV2VsbHNidXJnIFJBSUQgKi8N CisJeyBQQ0lfVkRFVklDRShJTlRFTCwgMHg4ZDY2KSwgYm9hcmRfYWhjaSB9LCAvKiBXZWxsc2J1 cmcgUkFJRCAqLw0KKwl7IFBDSV9WREVWSUNFKElOVEVMLCAweDhkNmUpLCBib2FyZF9haGNpIH0s IC8qIFdlbGxzYnVyZyBSQUlEICovDQogDQogCS8qIEpNaWNyb24gMzYwLzEvMy81LzYsIG1hdGNo IGNsYXNzIHRvIGF2b2lkIElERSBmdW5jdGlvbiAqLw0KIAl7IFBDSV9WRU5ET1JfSURfSk1JQ1JP TiwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwgUENJX0FOWV9JRCwNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2Jsb2NrL2xvb3AuYyBiL2RyaXZlcnMvYmxvY2svbG9vcC5jDQppbmRleCAxZTg4OGM5Li44 YzY3ODdhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ibG9jay9sb29wLmMNCisrKyBiL2RyaXZlcnMv YmxvY2svbG9vcC5jDQpAQCAtMTI2MiwxMSArMTI2Miw5IEBAIHN0YXRpYyBpbnQgbG9vcF9zZXRf Y2FwYWNpdHkoc3RydWN0IGxvb3BfZGV2aWNlICpsbywgc3RydWN0IGJsb2NrX2RldmljZSAqYmRl dikNCiAJLyogdGhlIHdpZHRoIG9mIHNlY3Rvcl90IG1heSBiZSBuYXJyb3cgZm9yIGJpdC1zaGlm dCAqLw0KIAlzeiA9IHNlYzsNCiAJc3ogPDw9IDk7DQotCW11dGV4X2xvY2soJmJkZXYtPmJkX211 dGV4KTsNCiAJYmRfc2V0X3NpemUoYmRldiwgc3opOw0KIAkvKiBsZXQgdXNlci1zcGFjZSBrbm93 IGFib3V0IHRoZSBuZXcgc2l6ZSAqLw0KIAlrb2JqZWN0X3VldmVudCgmZGlza190b19kZXYoYmRl di0+YmRfZGlzayktPmtvYmosIEtPQkpfQ0hBTkdFKTsNCi0JbXV0ZXhfdW5sb2NrKCZiZGV2LT5i ZF9tdXRleCk7DQogDQogIG91dDoNCiAJcmV0dXJuIGVycjsNCkBAIC0xODM2LDExICsxODM0LDE1 IEBAIHN0YXRpYyBpbnQgX19pbml0IGxvb3BfaW5pdCh2b2lkKQ0KIAkJbWF4X3BhcnQgPSAoMVVM IDw8IHBhcnRfc2hpZnQpIC0gMTsNCiAJfQ0KIA0KLQlpZiAoKDFVTCA8PCBwYXJ0X3NoaWZ0KSA+ IERJU0tfTUFYX1BBUlRTKQ0KLQkJcmV0dXJuIC1FSU5WQUw7DQorCWlmICgoMVVMIDw8IHBhcnRf c2hpZnQpID4gRElTS19NQVhfUEFSVFMpIHsNCisJCWVyciA9IC1FSU5WQUw7DQorCQlnb3RvIG1p c2Nfb3V0Ow0KKwl9DQogDQotCWlmIChtYXhfbG9vcCA+IDFVTCA8PCAoTUlOT1JCSVRTIC0gcGFy dF9zaGlmdCkpDQotCQlyZXR1cm4gLUVJTlZBTDsNCisJaWYgKG1heF9sb29wID4gMVVMIDw8IChN SU5PUkJJVFMgLSBwYXJ0X3NoaWZ0KSkgew0KKwkJZXJyID0gLUVJTlZBTDsNCisJCWdvdG8gbWlz Y19vdXQ7DQorCX0NCiANCiAJLyoNCiAJICogSWYgbWF4X2xvb3AgaXMgc3BlY2lmaWVkLCBjcmVh dGUgdGhhdCBtYW55IGRldmljZXMgdXBmcm9udC4NCkBAIC0xODU4LDggKzE4NjAsMTAgQEAgc3Rh dGljIGludCBfX2luaXQgbG9vcF9pbml0KHZvaWQpDQogCQlyYW5nZSA9IDFVTCA8PCBNSU5PUkJJ VFM7DQogCX0NCiANCi0JaWYgKHJlZ2lzdGVyX2Jsa2RldihMT09QX01BSk9SLCAibG9vcCIpKQ0K LQkJcmV0dXJuIC1FSU87DQorCWlmIChyZWdpc3Rlcl9ibGtkZXYoTE9PUF9NQUpPUiwgImxvb3Ai KSkgew0KKwkJZXJyID0gLUVJTzsNCisJCWdvdG8gbWlzY19vdXQ7DQorCX0NCiANCiAJYmxrX3Jl Z2lzdGVyX3JlZ2lvbihNS0RFVihMT09QX01BSk9SLCAwKSwgcmFuZ2UsDQogCQkJCSAgVEhJU19N T0RVTEUsIGxvb3BfcHJvYmUsIE5VTEwsIE5VTEwpOw0KQEAgLTE4NzIsNiArMTg3NiwxMCBAQCBz dGF0aWMgaW50IF9faW5pdCBsb29wX2luaXQodm9pZCkNCiANCiAJcHJpbnRrKEtFUk5fSU5GTyAi bG9vcDogbW9kdWxlIGxvYWRlZFxuIik7DQogCXJldHVybiAwOw0KKw0KK21pc2Nfb3V0Og0KKwlt aXNjX2RlcmVnaXN0ZXIoJmxvb3BfbWlzYyk7DQorCXJldHVybiBlcnI7DQogfQ0KIA0KIHN0YXRp YyBpbnQgbG9vcF9leGl0X2NiKGludCBpZCwgdm9pZCAqcHRyLCB2b2lkICpkYXRhKQ0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vY29yZS5jIGIvZHJpdmVycy9jaGFyL2h3X3Jh bmRvbS9jb3JlLmMNCmluZGV4IDFiYWZiNDAuLjY5YWU1OTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L2NoYXIvaHdfcmFuZG9tL2NvcmUuYw0KKysrIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS9jb3Jl LmMNCkBAIC00MCw2ICs0MCw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCiAjaW5jbHVk ZSA8bGludXgvbWlzY2RldmljZS5oPg0KICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KKyNpbmNs dWRlIDxsaW51eC9zbGFiLmg+DQogI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+DQogDQogDQpAQCAt NTIsOCArNTMsMTIgQEAgc3RhdGljIHN0cnVjdCBod3JuZyAqY3VycmVudF9ybmc7DQogc3RhdGlj IExJU1RfSEVBRChybmdfbGlzdCk7DQogc3RhdGljIERFRklORV9NVVRFWChybmdfbXV0ZXgpOw0K IHN0YXRpYyBpbnQgZGF0YV9hdmFpbDsNCi1zdGF0aWMgdTggcm5nX2J1ZmZlcltTTVBfQ0FDSEVf QllURVMgPCAzMiA/IDMyIDogU01QX0NBQ0hFX0JZVEVTXQ0KLQlfX2NhY2hlbGluZV9hbGlnbmVk Ow0KK3N0YXRpYyB1OCAqcm5nX2J1ZmZlcjsNCisNCitzdGF0aWMgc2l6ZV90IHJuZ19idWZmZXJf c2l6ZSh2b2lkKQ0KK3sNCisJcmV0dXJuIFNNUF9DQUNIRV9CWVRFUyA8IDMyID8gMzIgOiBTTVBf Q0FDSEVfQllURVM7DQorfQ0KIA0KIHN0YXRpYyBpbmxpbmUgaW50IGh3cm5nX2luaXQoc3RydWN0 IGh3cm5nICpybmcpDQogew0KQEAgLTExNiw3ICsxMjEsNyBAQCBzdGF0aWMgc3NpemVfdCBybmdf ZGV2X3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWYsDQogDQogCQlpZiAo IWRhdGFfYXZhaWwpIHsNCiAJCQlieXRlc19yZWFkID0gcm5nX2dldF9kYXRhKGN1cnJlbnRfcm5n LCBybmdfYnVmZmVyLA0KLQkJCQlzaXplb2Yocm5nX2J1ZmZlciksDQorCQkJCXJuZ19idWZmZXJf c2l6ZSgpLA0KIAkJCQkhKGZpbHAtPmZfZmxhZ3MgJiBPX05PTkJMT0NLKSk7DQogCQkJaWYgKGJ5 dGVzX3JlYWQgPCAwKSB7DQogCQkJCWVyciA9IGJ5dGVzX3JlYWQ7DQpAQCAtMzA3LDYgKzMxMiwx NCBAQCBpbnQgaHdybmdfcmVnaXN0ZXIoc3RydWN0IGh3cm5nICpybmcpDQogDQogCW11dGV4X2xv Y2soJnJuZ19tdXRleCk7DQogDQorCS8qIGttYWxsb2MgbWFrZXMgdGhpcyBzYWZlIGZvciB2aXJ0 X3RvX3BhZ2UoKSBpbiB2aXJ0aW9fcm5nLmMgKi8NCisJZXJyID0gLUVOT01FTTsNCisJaWYgKCFy bmdfYnVmZmVyKSB7DQorCQlybmdfYnVmZmVyID0ga21hbGxvYyhybmdfYnVmZmVyX3NpemUoKSwg R0ZQX0tFUk5FTCk7DQorCQlpZiAoIXJuZ19idWZmZXIpDQorCQkJZ290byBvdXRfdW5sb2NrOw0K Kwl9DQorDQogCS8qIE11c3Qgbm90IHJlZ2lzdGVyIHR3byBSTkdzIHdpdGggdGhlIHNhbWUgbmFt ZS4gKi8NCiAJZXJyID0gLUVFWElTVDsNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh0bXAsICZybmdf bGlzdCwgbGlzdCkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY2hhci9od19yYW5kb20vdmlydGlv LXJuZy5jIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS92aXJ0aW8tcm5nLmMNCmluZGV4IGZkNjk5 Y2MuLjg2ZWQ1OTEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2NoYXIvaHdfcmFuZG9tL3ZpcnRpby1y bmcuYw0KKysrIGIvZHJpdmVycy9jaGFyL2h3X3JhbmRvbS92aXJ0aW8tcm5nLmMNCkBAIC04OSwx NCArODksMjIgQEAgc3RhdGljIGludCB2aXJ0cm5nX3Byb2JlKHN0cnVjdCB2aXJ0aW9fZGV2aWNl ICp2ZGV2KQ0KIHsNCiAJaW50IGVycjsNCiANCisJaWYgKHZxKSB7DQorCQkvKiBXZSBvbmx5IHN1 cHBvcnQgb25lIGRldmljZSBmb3Igbm93ICovDQorCQlyZXR1cm4gLUVCVVNZOw0KKwl9DQogCS8q IFdlIGV4cGVjdCBhIHNpbmdsZSB2aXJ0cXVldWUuICovDQogCXZxID0gdmlydGlvX2ZpbmRfc2lu Z2xlX3ZxKHZkZXYsIHJhbmRvbV9yZWN2X2RvbmUsICJpbnB1dCIpOw0KLQlpZiAoSVNfRVJSKHZx KSkNCi0JCXJldHVybiBQVFJfRVJSKHZxKTsNCisJaWYgKElTX0VSUih2cSkpIHsNCisJCWVyciA9 IFBUUl9FUlIodnEpOw0KKwkJdnEgPSBOVUxMOw0KKwkJcmV0dXJuIGVycjsNCisJfQ0KIA0KIAll cnIgPSBod3JuZ19yZWdpc3RlcigmdmlydGlvX2h3cm5nKTsNCiAJaWYgKGVycikgew0KIAkJdmRl di0+Y29uZmlnLT5kZWxfdnFzKHZkZXYpOw0KKwkJdnEgPSBOVUxMOw0KIAkJcmV0dXJuIGVycjsN CiAJfQ0KIA0KQEAgLTEwOCw2ICsxMTYsNyBAQCBzdGF0aWMgdm9pZCBfX2RldmV4aXQgdmlydHJu Z19yZW1vdmUoc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpDQogCXZkZXYtPmNvbmZpZy0+cmVz ZXQodmRldik7DQogCWh3cm5nX3VucmVnaXN0ZXIoJnZpcnRpb19od3JuZyk7DQogCXZkZXYtPmNv bmZpZy0+ZGVsX3Zxcyh2ZGV2KTsNCisJdnEgPSBOVUxMOw0KIH0NCiANCiBzdGF0aWMgc3RydWN0 IHZpcnRpb19kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nv bm5lY3Rvci9jbl9wcm9jLmMgYi9kcml2ZXJzL2Nvbm5lY3Rvci9jbl9wcm9jLmMNCmluZGV4IDc3 ZTFlNmMuLjQ2YmJmNDMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Nvbm5lY3Rvci9jbl9wcm9jLmMN CisrKyBiL2RyaXZlcnMvY29ubmVjdG9yL2NuX3Byb2MuYw0KQEAgLTMwMyw2ICszMDMsMTIgQEAg c3RhdGljIHZvaWQgY25fcHJvY19tY2FzdF9jdGwoc3RydWN0IGNuX21zZyAqbXNnLA0KIAlpZiAo bXNnLT5sZW4gIT0gc2l6ZW9mKCptY19vcCkpDQogCQlyZXR1cm47DQogDQorCS8qIENhbiBvbmx5 IGNoYW5nZSBpZiBwcml2aWxlZ2VkLiAqLw0KKwlpZiAoIWNhcGFibGUoQ0FQX05FVF9BRE1JTikp IHsNCisJCWVyciA9IEVQRVJNOw0KKwkJZ290byBvdXQ7DQorCX0NCisNCiAJbWNfb3AgPSAoZW51 bSBwcm9jX2NuX21jYXN0X29wKiltc2ctPmRhdGE7DQogCXN3aXRjaCAoKm1jX29wKSB7DQogCWNh c2UgUFJPQ19DTl9NQ0FTVF9MSVNURU46DQpAQCAtMzE1LDYgKzMyMSw4IEBAIHN0YXRpYyB2b2lk IGNuX3Byb2NfbWNhc3RfY3RsKHN0cnVjdCBjbl9tc2cgKm1zZywNCiAJCWVyciA9IEVJTlZBTDsN CiAJCWJyZWFrOw0KIAl9DQorDQorb3V0Og0KIAljbl9wcm9jX2FjayhlcnIsIG1zZy0+c2VxLCBt c2ctPmFjayk7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3B1ZnJlcS9jcHVmcmVxX3N0 YXRzLmMgYi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcV9zdGF0cy5jDQppbmRleCBjNTA3MmE5Li40 YmYzNzRkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jcHVmcmVxL2NwdWZyZXFfc3RhdHMuYw0KKysr IGIvZHJpdmVycy9jcHVmcmVxL2NwdWZyZXFfc3RhdHMuYw0KQEAgLTMzMCw2ICszMzAsNyBAQCBz dGF0aWMgaW50IF9fY3B1aW5pdCBjcHVmcmVxX3N0YXRfY3B1X2NhbGxiYWNrKHN0cnVjdCBub3Rp Zmllcl9ibG9jayAqbmZiLA0KIAkJY3B1ZnJlcV91cGRhdGVfcG9saWN5KGNwdSk7DQogCQlicmVh azsNCiAJY2FzZSBDUFVfRE9XTl9QUkVQQVJFOg0KKwljYXNlIENQVV9ET1dOX1BSRVBBUkVfRlJP WkVOOg0KIAkJY3B1ZnJlcV9zdGF0c19mcmVlX3N5c2ZzKGNwdSk7DQogCQlicmVhazsNCiAJY2Fz ZSBDUFVfREVBRDoNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMgYi9k cml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMNCmluZGV4IDk4MmYxZjUuLjRjZDM5MmQgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2Zpcm13YXJlL2RtaV9zY2FuLmMNCisrKyBiL2RyaXZlcnMvZmlybXdh cmUvZG1pX3NjYW4uYw0KQEAgLTQ0Miw3ICs0NDIsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBkbWlf cHJlc2VudChjb25zdCBjaGFyIF9faW9tZW0gKnApDQogc3RhdGljIGludCBfX2luaXQgc21iaW9z X3ByZXNlbnQoY29uc3QgY2hhciBfX2lvbWVtICpwKQ0KIHsNCiAJdTggYnVmWzMyXTsNCi0JaW50 IG9mZnNldCA9IDA7DQogDQogCW1lbWNweV9mcm9taW8oYnVmLCBwLCAzMik7DQogCWlmICgoYnVm WzVdIDwgMzIpICYmIGRtaV9jaGVja3N1bShidWYsIGJ1Zls1XSkpIHsNCkBAIC00NjEsOSArNDYw LDkgQEAgc3RhdGljIGludCBfX2luaXQgc21iaW9zX3ByZXNlbnQoY29uc3QgY2hhciBfX2lvbWVt ICpwKQ0KIAkJCWRtaV92ZXIgPSAweDAyMDY7DQogCQkJYnJlYWs7DQogCQl9DQotCQlvZmZzZXQg PSAxNjsNCisJCXJldHVybiBtZW1jbXAocCArIDE2LCAiX0RNSV8iLCA1KSB8fCBkbWlfcHJlc2Vu dChwICsgMTYpOw0KIAl9DQotCXJldHVybiBkbWlfcHJlc2VudChidWYgKyBvZmZzZXQpOw0KKwly ZXR1cm4gMTsNCiB9DQogDQogdm9pZCBfX2luaXQgZG1pX3NjYW5fbWFjaGluZSh2b2lkKQ0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZmlybXdhcmUvZWZpdmFycy5jIGIvZHJpdmVycy9maXJtd2FyZS9l Zml2YXJzLmMNCmluZGV4IDVkNWE4NjguLjgxMzQ2YWUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Zp cm13YXJlL2VmaXZhcnMuYw0KKysrIGIvZHJpdmVycy9maXJtd2FyZS9lZml2YXJzLmMNCkBAIC0z OTMsMTAgKzM5MywxMSBAQCBzdGF0aWMgZWZpX3N0YXR1c190DQogZ2V0X3Zhcl9kYXRhKHN0cnVj dCBlZml2YXJzICplZml2YXJzLCBzdHJ1Y3QgZWZpX3ZhcmlhYmxlICp2YXIpDQogew0KIAllZmlf c3RhdHVzX3Qgc3RhdHVzOw0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIA0KLQlzcGluX2xvY2so JmVmaXZhcnMtPmxvY2spOw0KKwlzcGluX2xvY2tfaXJxc2F2ZSgmZWZpdmFycy0+bG9jaywgZmxh Z3MpOw0KIAlzdGF0dXMgPSBnZXRfdmFyX2RhdGFfbG9ja2VkKGVmaXZhcnMsIHZhcik7DQotCXNw aW5fdW5sb2NrKCZlZml2YXJzLT5sb2NrKTsNCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZWZp dmFycy0+bG9jaywgZmxhZ3MpOw0KIA0KIAlpZiAoc3RhdHVzICE9IEVGSV9TVUNDRVNTKSB7DQog CQlwcmludGsoS0VSTl9XQVJOSU5HICJlZml2YXJzOiBnZXRfdmFyaWFibGUoKSBmYWlsZWQgMHgl bHghXG4iLA0KQEAgLTQwNSw2ICs0MDYsMzAgQEAgZ2V0X3Zhcl9kYXRhKHN0cnVjdCBlZml2YXJz ICplZml2YXJzLCBzdHJ1Y3QgZWZpX3ZhcmlhYmxlICp2YXIpDQogCXJldHVybiBzdGF0dXM7DQog fQ0KIA0KK3N0YXRpYyBlZmlfc3RhdHVzX3QNCitjaGVja192YXJfc2l6ZV9sb2NrZWQoc3RydWN0 IGVmaXZhcnMgKmVmaXZhcnMsIHUzMiBhdHRyaWJ1dGVzLA0KKwkJCXVuc2lnbmVkIGxvbmcgc2l6 ZSkNCit7DQorCXU2NCBzdG9yYWdlX3NpemUsIHJlbWFpbmluZ19zaXplLCBtYXhfc2l6ZTsNCisJ ZWZpX3N0YXR1c190IHN0YXR1czsNCisJY29uc3Qgc3RydWN0IGVmaXZhcl9vcGVyYXRpb25zICpm b3BzID0gZWZpdmFycy0+b3BzOw0KKw0KKwlpZiAoIWVmaXZhcnMtPm9wcy0+cXVlcnlfdmFyaWFi bGVfaW5mbykNCisJCXJldHVybiBFRklfVU5TVVBQT1JURUQ7DQorDQorCXN0YXR1cyA9IGZvcHMt PnF1ZXJ5X3ZhcmlhYmxlX2luZm8oYXR0cmlidXRlcywgJnN0b3JhZ2Vfc2l6ZSwNCisJCQkJCSAg ICZyZW1haW5pbmdfc2l6ZSwgJm1heF9zaXplKTsNCisNCisJaWYgKHN0YXR1cyAhPSBFRklfU1VD Q0VTUykNCisJCXJldHVybiBzdGF0dXM7DQorDQorCWlmICghc3RvcmFnZV9zaXplIHx8IHNpemUg PiByZW1haW5pbmdfc2l6ZSB8fCBzaXplID4gbWF4X3NpemUgfHwNCisJICAgIChyZW1haW5pbmdf c2l6ZSAtIHNpemUpIDwgKHN0b3JhZ2Vfc2l6ZSAvIDIpKQ0KKwkJcmV0dXJuIEVGSV9PVVRfT0Zf UkVTT1VSQ0VTOw0KKw0KKwlyZXR1cm4gc3RhdHVzOw0KK30NCisNCiBzdGF0aWMgc3NpemVfdA0K IGVmaXZhcl9ndWlkX3JlYWQoc3RydWN0IGVmaXZhcl9lbnRyeSAqZW50cnksIGNoYXIgKmJ1ZikN CiB7DQpAQCAtNTI1LDE0ICs1NTAsMTkgQEAgZWZpdmFyX3N0b3JlX3JhdyhzdHJ1Y3QgZWZpdmFy X2VudHJ5ICplbnRyeSwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpDQogCQlyZXR1cm4g LUVJTlZBTDsNCiAJfQ0KIA0KLQlzcGluX2xvY2soJmVmaXZhcnMtPmxvY2spOw0KLQlzdGF0dXMg PSBlZml2YXJzLT5vcHMtPnNldF92YXJpYWJsZShuZXdfdmFyLT5WYXJpYWJsZU5hbWUsDQotCQkJ CQkgICAgJm5ld192YXItPlZlbmRvckd1aWQsDQotCQkJCQkgICAgbmV3X3Zhci0+QXR0cmlidXRl cywNCi0JCQkJCSAgICBuZXdfdmFyLT5EYXRhU2l6ZSwNCi0JCQkJCSAgICBuZXdfdmFyLT5EYXRh KTsNCisJc3Bpbl9sb2NrX2lycSgmZWZpdmFycy0+bG9jayk7DQorDQorCXN0YXR1cyA9IGNoZWNr X3Zhcl9zaXplX2xvY2tlZChlZml2YXJzLCBuZXdfdmFyLT5BdHRyaWJ1dGVzLA0KKwkgICAgICAg bmV3X3Zhci0+RGF0YVNpemUgKyB1dGYxNl9zdHJzaXplKG5ld192YXItPlZhcmlhYmxlTmFtZSwg MTAyNCkpOw0KIA0KLQlzcGluX3VubG9jaygmZWZpdmFycy0+bG9jayk7DQorCWlmIChzdGF0dXMg PT0gRUZJX1NVQ0NFU1MgfHwgc3RhdHVzID09IEVGSV9VTlNVUFBPUlRFRCkNCisJCXN0YXR1cyA9 IGVmaXZhcnMtPm9wcy0+c2V0X3ZhcmlhYmxlKG5ld192YXItPlZhcmlhYmxlTmFtZSwNCisJCQkJ CQkgICAgJm5ld192YXItPlZlbmRvckd1aWQsDQorCQkJCQkJICAgIG5ld192YXItPkF0dHJpYnV0 ZXMsDQorCQkJCQkJICAgIG5ld192YXItPkRhdGFTaXplLA0KKwkJCQkJCSAgICBuZXdfdmFyLT5E YXRhKTsNCisNCisJc3Bpbl91bmxvY2tfaXJxKCZlZml2YXJzLT5sb2NrKTsNCiANCiAJaWYgKHN0 YXR1cyAhPSBFRklfU1VDQ0VTUykgew0KIAkJcHJpbnRrKEtFUk5fV0FSTklORyAiZWZpdmFyczog c2V0X3ZhcmlhYmxlKCkgZmFpbGVkOiBzdGF0dXM9JWx4XG4iLA0KQEAgLTYzNywxMyArNjY3LDQz IEBAIGVmaXZhcl91bnJlZ2lzdGVyKHN0cnVjdCBlZml2YXJfZW50cnkgKnZhcikNCiAJa29iamVj dF9wdXQoJnZhci0+a29iaik7DQogfQ0KIA0KK3N0YXRpYyBpbnQgZWZpX3N0YXR1c190b19lcnIo ZWZpX3N0YXR1c190IHN0YXR1cykNCit7DQorCWludCBlcnI7DQorDQorCXN3aXRjaCAoc3RhdHVz KSB7DQorCWNhc2UgRUZJX0lOVkFMSURfUEFSQU1FVEVSOg0KKwkJZXJyID0gLUVJTlZBTDsNCisJ CWJyZWFrOw0KKwljYXNlIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOg0KKwkJZXJyID0gLUVOT1NQQzsN CisJCWJyZWFrOw0KKwljYXNlIEVGSV9ERVZJQ0VfRVJST1I6DQorCQllcnIgPSAtRUlPOw0KKwkJ YnJlYWs7DQorCWNhc2UgRUZJX1dSSVRFX1BST1RFQ1RFRDoNCisJCWVyciA9IC1FUk9GUzsNCisJ CWJyZWFrOw0KKwljYXNlIEVGSV9TRUNVUklUWV9WSU9MQVRJT046DQorCQllcnIgPSAtRUFDQ0VT Ow0KKwkJYnJlYWs7DQorCWNhc2UgRUZJX05PVF9GT1VORDoNCisJCWVyciA9IC1FTk9FTlQ7DQor CQlicmVhazsNCisJZGVmYXVsdDoNCisJCWVyciA9IC1FSU5WQUw7DQorCX0NCisNCisJcmV0dXJu IGVycjsNCit9DQorDQogI2lmZGVmIENPTkZJR19QU1RPUkUNCiANCiBzdGF0aWMgaW50IGVmaV9w c3RvcmVfb3BlbihzdHJ1Y3QgcHN0b3JlX2luZm8gKnBzaSkNCiB7DQogCXN0cnVjdCBlZml2YXJz ICplZml2YXJzID0gcHNpLT5kYXRhOw0KIA0KLQlzcGluX2xvY2soJmVmaXZhcnMtPmxvY2spOw0K KwlzcGluX2xvY2tfaXJxKCZlZml2YXJzLT5sb2NrKTsNCiAJZWZpdmFycy0+d2Fsa19lbnRyeSA9 IGxpc3RfZmlyc3RfZW50cnkoJmVmaXZhcnMtPmxpc3QsDQogCQkJCQkgICAgICAgc3RydWN0IGVm aXZhcl9lbnRyeSwgbGlzdCk7DQogCXJldHVybiAwOw0KQEAgLTY1Myw3ICs3MTMsNyBAQCBzdGF0 aWMgaW50IGVmaV9wc3RvcmVfY2xvc2Uoc3RydWN0IHBzdG9yZV9pbmZvICpwc2kpDQogew0KIAlz dHJ1Y3QgZWZpdmFycyAqZWZpdmFycyA9IHBzaS0+ZGF0YTsNCiANCi0Jc3Bpbl91bmxvY2soJmVm aXZhcnMtPmxvY2spOw0KKwlzcGluX3VubG9ja19pcnEoJmVmaXZhcnMtPmxvY2spOw0KIAlyZXR1 cm4gMDsNCiB9DQogDQpAQCAtNzA2LDExICs3NjYsMjggQEAgc3RhdGljIGludCBlZmlfcHN0b3Jl X3dyaXRlKGVudW0gcHN0b3JlX3R5cGVfaWQgdHlwZSwgdTY0ICppZCwNCiAJc3RydWN0IGVmaXZh cnMgKmVmaXZhcnMgPSBwc2ktPmRhdGE7DQogCXN0cnVjdCBlZml2YXJfZW50cnkgKmVudHJ5LCAq Zm91bmQgPSBOVUxMOw0KIAlpbnQgaSwgcmV0ID0gMDsNCisJZWZpX3N0YXR1c190IHN0YXR1cyA9 IEVGSV9OT1RfRk9VTkQ7DQorCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogDQogCXNwcmludGYoc3R1 Yl9uYW1lLCAiZHVtcC10eXBlJXUtJXUtIiwgdHlwZSwgcGFydCk7DQogCXNwcmludGYobmFtZSwg IiVzJWx1Iiwgc3R1Yl9uYW1lLCBnZXRfc2Vjb25kcygpKTsNCiANCi0Jc3Bpbl9sb2NrKCZlZml2 YXJzLT5sb2NrKTsNCisJc3Bpbl9sb2NrX2lycXNhdmUoJmVmaXZhcnMtPmxvY2ssIGZsYWdzKTsN CisNCisJLyoNCisJICogQ2hlY2sgaWYgdGhlcmUgaXMgYSBzcGFjZSBlbm91Z2ggdG8gbG9nLg0K KwkgKiBzaXplOiBhIHNpemUgb2YgbG9nZ2luZyBkYXRhDQorCSAqIERVTVBfTkFNRV9MRU4gKiAy OiBhIG1heGltdW0gc2l6ZSBvZiB2YXJpYWJsZSBuYW1lDQorCSAqLw0KKw0KKwlzdGF0dXMgPSBj aGVja192YXJfc2l6ZV9sb2NrZWQoZWZpdmFycywgUFNUT1JFX0VGSV9BVFRSSUJVVEVTLA0KKwkJ CQkJIHNpemUgKyBEVU1QX05BTUVfTEVOICogMik7DQorDQorCWlmIChzdGF0dXMpIHsNCisJCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmVmaXZhcnMtPmxvY2ssIGZsYWdzKTsNCisJCSppZCA9IHBh cnQ7DQorCQlyZXR1cm4gLUVOT1NQQzsNCisJfQ0KIA0KIAlmb3IgKGkgPSAwOyBpIDwgRFVNUF9O QU1FX0xFTjsgaSsrKQ0KIAkJZWZpX25hbWVbaV0gPSBzdHViX25hbWVbaV07DQpAQCAtNzQ4LDcg KzgyNSw3IEBAIHN0YXRpYyBpbnQgZWZpX3BzdG9yZV93cml0ZShlbnVtIHBzdG9yZV90eXBlX2lk IHR5cGUsIHU2NCAqaWQsDQogCWVmaXZhcnMtPm9wcy0+c2V0X3ZhcmlhYmxlKGVmaV9uYW1lLCAm dmVuZG9yLCBQU1RPUkVfRUZJX0FUVFJJQlVURVMsDQogCQkJCSAgIHNpemUsIHBzaS0+YnVmKTsN CiANCi0Jc3Bpbl91bmxvY2soJmVmaXZhcnMtPmxvY2spOw0KKwlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZlZml2YXJzLT5sb2NrLCBmbGFncyk7DQogDQogCWlmIChmb3VuZCkNCiAJCWVmaXZhcl91 bnJlZ2lzdGVyKGZvdW5kKTsNCkBAIC04MzEsNyArOTA4LDcgQEAgc3RhdGljIHNzaXplX3QgZWZp dmFyX2NyZWF0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosDQogCQly ZXR1cm4gLUVJTlZBTDsNCiAJfQ0KIA0KLQlzcGluX2xvY2soJmVmaXZhcnMtPmxvY2spOw0KKwlz cGluX2xvY2tfaXJxKCZlZml2YXJzLT5sb2NrKTsNCiANCiAJLyoNCiAJICogRG9lcyB0aGlzIHZh cmlhYmxlIGFscmVhZHkgZXhpc3Q/DQpAQCAtODQ5LDEwICs5MjYsMTggQEAgc3RhdGljIHNzaXpl X3QgZWZpdmFyX2NyZWF0ZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmos DQogCQl9DQogCX0NCiAJaWYgKGZvdW5kKSB7DQotCQlzcGluX3VubG9jaygmZWZpdmFycy0+bG9j ayk7DQorCQlzcGluX3VubG9ja19pcnEoJmVmaXZhcnMtPmxvY2spOw0KIAkJcmV0dXJuIC1FSU5W QUw7DQogCX0NCiANCisJc3RhdHVzID0gY2hlY2tfdmFyX3NpemVfbG9ja2VkKGVmaXZhcnMsIG5l d192YXItPkF0dHJpYnV0ZXMsDQorCSAgICAgICBuZXdfdmFyLT5EYXRhU2l6ZSArIHV0ZjE2X3N0 cnNpemUobmV3X3Zhci0+VmFyaWFibGVOYW1lLCAxMDI0KSk7DQorDQorCWlmIChzdGF0dXMgJiYg c3RhdHVzICE9IEVGSV9VTlNVUFBPUlRFRCkgew0KKwkJc3Bpbl91bmxvY2tfaXJxKCZlZml2YXJz LT5sb2NrKTsNCisJCXJldHVybiBlZmlfc3RhdHVzX3RvX2VycihzdGF0dXMpOw0KKwl9DQorDQog CS8qIG5vdyAqcmVhbGx5KiBjcmVhdGUgdGhlIHZhcmlhYmxlIHZpYSBFRkkgKi8NCiAJc3RhdHVz ID0gZWZpdmFycy0+b3BzLT5zZXRfdmFyaWFibGUobmV3X3Zhci0+VmFyaWFibGVOYW1lLA0KIAkJ CQkJICAgICZuZXdfdmFyLT5WZW5kb3JHdWlkLA0KQEAgLTg2MywxMCArOTQ4LDEwIEBAIHN0YXRp YyBzc2l6ZV90IGVmaXZhcl9jcmVhdGUoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2JqZWN0 ICprb2JqLA0KIAlpZiAoc3RhdHVzICE9IEVGSV9TVUNDRVNTKSB7DQogCQlwcmludGsoS0VSTl9X QVJOSU5HICJlZml2YXJzOiBzZXRfdmFyaWFibGUoKSBmYWlsZWQ6IHN0YXR1cz0lbHhcbiIsDQog CQkJc3RhdHVzKTsNCi0JCXNwaW5fdW5sb2NrKCZlZml2YXJzLT5sb2NrKTsNCisJCXNwaW5fdW5s b2NrX2lycSgmZWZpdmFycy0+bG9jayk7DQogCQlyZXR1cm4gLUVJTzsNCiAJfQ0KLQlzcGluX3Vu bG9jaygmZWZpdmFycy0+bG9jayk7DQorCXNwaW5fdW5sb2NrX2lycSgmZWZpdmFycy0+bG9jayk7 DQogDQogCS8qIENyZWF0ZSB0aGUgZW50cnkgaW4gc3lzZnMuICBMb2NraW5nIGlzIG5vdCByZXF1 aXJlZCBoZXJlICovDQogCXN0YXR1cyA9IGVmaXZhcl9jcmVhdGVfc3lzZnNfZW50cnkoZWZpdmFy cywNCkBAIC04OTQsNyArOTc5LDcgQEAgc3RhdGljIHNzaXplX3QgZWZpdmFyX2RlbGV0ZShzdHJ1 Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtvYmplY3QgKmtvYmosDQogCWlmICghY2FwYWJsZShDQVBf U1lTX0FETUlOKSkNCiAJCXJldHVybiAtRUFDQ0VTOw0KIA0KLQlzcGluX2xvY2soJmVmaXZhcnMt PmxvY2spOw0KKwlzcGluX2xvY2tfaXJxKCZlZml2YXJzLT5sb2NrKTsNCiANCiAJLyoNCiAJICog RG9lcyB0aGlzIHZhcmlhYmxlIGFscmVhZHkgZXhpc3Q/DQpAQCAtOTEyLDcgKzk5Nyw3IEBAIHN0 YXRpYyBzc2l6ZV90IGVmaXZhcl9kZWxldGUoc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBrb2Jq ZWN0ICprb2JqLA0KIAkJfQ0KIAl9DQogCWlmICghZm91bmQpIHsNCi0JCXNwaW5fdW5sb2NrKCZl Zml2YXJzLT5sb2NrKTsNCisJCXNwaW5fdW5sb2NrX2lycSgmZWZpdmFycy0+bG9jayk7DQogCQly ZXR1cm4gLUVJTlZBTDsNCiAJfQ0KIAkvKiBmb3JjZSB0aGUgQXR0cmlidXRlcy9EYXRhU2l6ZSB0 byAwIHRvIGVuc3VyZSBkZWxldGlvbiAqLw0KQEAgLTkyOCwxMiArMTAxMywxMiBAQCBzdGF0aWMg c3NpemVfdCBlZml2YXJfZGVsZXRlKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga29iamVjdCAq a29iaiwNCiAJaWYgKHN0YXR1cyAhPSBFRklfU1VDQ0VTUykgew0KIAkJcHJpbnRrKEtFUk5fV0FS TklORyAiZWZpdmFyczogc2V0X3ZhcmlhYmxlKCkgZmFpbGVkOiBzdGF0dXM9JWx4XG4iLA0KIAkJ CXN0YXR1cyk7DQotCQlzcGluX3VubG9jaygmZWZpdmFycy0+bG9jayk7DQorCQlzcGluX3VubG9j a19pcnEoJmVmaXZhcnMtPmxvY2spOw0KIAkJcmV0dXJuIC1FSU87DQogCX0NCiAJbGlzdF9kZWwo JnNlYXJjaF9lZml2YXItPmxpc3QpOw0KIAkvKiBXZSBuZWVkIHRvIHJlbGVhc2UgdGhpcyBsb2Nr IGJlZm9yZSB1bnJlZ2lzdGVyaW5nLiAqLw0KLQlzcGluX3VubG9jaygmZWZpdmFycy0+bG9jayk7 DQorCXNwaW5fdW5sb2NrX2lycSgmZWZpdmFycy0+bG9jayk7DQogCWVmaXZhcl91bnJlZ2lzdGVy KHNlYXJjaF9lZml2YXIpOw0KIA0KIAkvKiBJdCdzIGRlYWQgSmltLi4uLiAqLw0KQEAgLTEwNDEs OSArMTEyNiw5IEBAIGVmaXZhcl9jcmVhdGVfc3lzZnNfZW50cnkoc3RydWN0IGVmaXZhcnMgKmVm aXZhcnMsDQogCWtmcmVlKHNob3J0X25hbWUpOw0KIAlzaG9ydF9uYW1lID0gTlVMTDsNCiANCi0J c3Bpbl9sb2NrKCZlZml2YXJzLT5sb2NrKTsNCisJc3Bpbl9sb2NrX2lycSgmZWZpdmFycy0+bG9j ayk7DQogCWxpc3RfYWRkKCZuZXdfZWZpdmFyLT5saXN0LCAmZWZpdmFycy0+bGlzdCk7DQotCXNw aW5fdW5sb2NrKCZlZml2YXJzLT5sb2NrKTsNCisJc3Bpbl91bmxvY2tfaXJxKCZlZml2YXJzLT5s b2NrKTsNCiANCiAJcmV0dXJuIDA7DQogfQ0KQEAgLTExMTIsOSArMTE5Nyw5IEBAIHZvaWQgdW5y ZWdpc3Rlcl9lZml2YXJzKHN0cnVjdCBlZml2YXJzICplZml2YXJzKQ0KIAlzdHJ1Y3QgZWZpdmFy X2VudHJ5ICplbnRyeSwgKm47DQogDQogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlbnRyeSwg biwgJmVmaXZhcnMtPmxpc3QsIGxpc3QpIHsNCi0JCXNwaW5fbG9jaygmZWZpdmFycy0+bG9jayk7 DQorCQlzcGluX2xvY2tfaXJxKCZlZml2YXJzLT5sb2NrKTsNCiAJCWxpc3RfZGVsKCZlbnRyeS0+ bGlzdCk7DQotCQlzcGluX3VubG9jaygmZWZpdmFycy0+bG9jayk7DQorCQlzcGluX3VubG9ja19p cnEoJmVmaXZhcnMtPmxvY2spOw0KIAkJZWZpdmFyX3VucmVnaXN0ZXIoZW50cnkpOw0KIAl9DQog CWlmIChlZml2YXJzLT5uZXdfdmFyKQ0KQEAgLTEyMzUsNiArMTMyMCw3IEBAIGVmaXZhcnNfaW5p dCh2b2lkKQ0KIAlvcHMuZ2V0X3ZhcmlhYmxlID0gZWZpLmdldF92YXJpYWJsZTsNCiAJb3BzLnNl dF92YXJpYWJsZSA9IGVmaS5zZXRfdmFyaWFibGU7DQogCW9wcy5nZXRfbmV4dF92YXJpYWJsZSA9 IGVmaS5nZXRfbmV4dF92YXJpYWJsZTsNCisJb3BzLnF1ZXJ5X3ZhcmlhYmxlX2luZm8gPSBlZmku cXVlcnlfdmFyaWFibGVfaW5mbzsNCiAJZXJyb3IgPSByZWdpc3Rlcl9lZml2YXJzKCZfX2VmaXZh cnMsICZvcHMsIGVmaV9rb2JqKTsNCiAJaWYgKGVycm9yKQ0KIAkJZ290byBlcnJfcHV0Ow0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KaW5kZXggMjMwM2MyYi4uNDU5MTU4MiAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQpAQCAtNzI4MCw4ICs3MjgwLDggQEAg c3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQog ew0KIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Ow0KIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOw0KLQlzdHJ1Y3QgaW50ZWxf ZnJhbWVidWZmZXIgKmludGVsX2ZiOw0KLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq Ow0KKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpvbGRfZmIgPSBjcnRjLT5mYjsNCisJc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0+b2Jq Ow0KIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 DQogCXN0cnVjdCBpbnRlbF91bnBpbl93b3JrICp3b3JrOw0KIAl1bnNpZ25lZCBsb25nIGZsYWdz Ow0KQEAgLTcyOTMsOCArNzI5Myw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAo c3RydWN0IGRybV9jcnRjICpjcnRjLA0KIA0KIAl3b3JrLT5ldmVudCA9IGV2ZW50Ow0KIAl3b3Jr LT5kZXYgPSBjcnRjLT5kZXY7DQotCWludGVsX2ZiID0gdG9faW50ZWxfZnJhbWVidWZmZXIoY3J0 Yy0+ZmIpOw0KLQl3b3JrLT5vbGRfZmJfb2JqID0gaW50ZWxfZmItPm9iajsNCisJd29yay0+b2xk X2ZiX29iaiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKG9sZF9mYiktPm9iajsNCiAJSU5JVF9XT1JL KCZ3b3JrLT53b3JrLCBpbnRlbF91bnBpbl93b3JrX2ZuKTsNCiANCiAJcmV0ID0gZHJtX3ZibGFu a19nZXQoZGV2LCBpbnRlbF9jcnRjLT5waXBlKTsNCkBAIC03MzE0LDkgKzczMTMsNiBAQCBzdGF0 aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCiAJaW50 ZWxfY3J0Yy0+dW5waW5fd29yayA9IHdvcms7DQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRl di0+ZXZlbnRfbG9jaywgZmxhZ3MpOw0KIA0KLQlpbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVm ZmVyKGZiKTsNCi0Jb2JqID0gaW50ZWxfZmItPm9iajsNCi0NCiAJbXV0ZXhfbG9jaygmZGV2LT5z dHJ1Y3RfbXV0ZXgpOw0KIA0KIAkvKiBSZWZlcmVuY2UgdGhlIG9iamVjdHMgZm9yIHRoZSBzY2hl ZHVsZWQgd29yay4gKi8NCkBAIC03MzQ3LDYgKzczNDMsNyBAQCBzdGF0aWMgaW50IGludGVsX2Ny dGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywNCiANCiBjbGVhbnVwX3BlbmRpbmc6 DQogCWF0b21pY19zdWIoMSA8PCBpbnRlbF9jcnRjLT5wbGFuZSwgJndvcmstPm9sZF9mYl9vYmot PnBlbmRpbmdfZmxpcCk7DQorCWNydGMtPmZiID0gb2xkX2ZiOw0KIAlkcm1fZ2VtX29iamVjdF91 bnJlZmVyZW5jZSgmd29yay0+b2xkX2ZiX29iai0+YmFzZSk7DQogCWRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlKCZvYmotPmJhc2UpOw0KIAltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4 KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb21iaW9zLmMg Yi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb21iaW9zLmMNCmluZGV4IGVjMzZkZDku LmMzMmZkOTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9jb21i aW9zLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2NvbWJpb3MuYw0KQEAg LTk1OCw2ICs5NTgsMTUgQEAgc3RydWN0IHJhZGVvbl9lbmNvZGVyX3ByaW1hcnlfZGFjICpyYWRl b25fY29tYmlvc19nZXRfcHJpbWFyeV9kYWNfaW5mbyhzdHJ1Y3QNCiAJCQlmb3VuZCA9IDE7DQog CX0NCiANCisJLyogcXVpcmtzICovDQorCS8qIFJhZGVvbiA5MTAwIChSMjAwKSAqLw0KKwlpZiAo KGRldi0+cGRldi0+ZGV2aWNlID09IDB4NTE0RCkgJiYNCisJICAgIChkZXYtPnBkZXYtPnN1YnN5 c3RlbV92ZW5kb3IgPT0gMHgxNzRCKSAmJg0KKwkgICAgKGRldi0+cGRldi0+c3Vic3lzdGVtX2Rl dmljZSA9PSAweDcxNDkpKSB7DQorCQkvKiB2YmlvcyB2YWx1ZSBpcyBiYWQsIHVzZSB0aGUgZGVm YXVsdCAqLw0KKwkJZm91bmQgPSAwOw0KKwl9DQorDQogCWlmICghZm91bmQpIC8qIGZhbGxiYWNr IHRvIGRlZmF1bHRzICovDQogCQlyYWRlb25fbGVnYWN5X2dldF9wcmltYXJ5X2RhY19pbmZvX2Zy b21fdGFibGUocmRldiwgcF9kYWMpOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1j b3JlLmMgYi9kcml2ZXJzL2hpZC9oaWQtY29yZS5jDQppbmRleCBhMjNiNjNhLi42MTFhYWZjIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9oaWQvaGlkLWNvcmUuYw0KKysrIGIvZHJpdmVycy9oaWQvaGlk LWNvcmUuYw0KQEAgLTE1MzMsNiArMTUzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGlkX2Rl dmljZV9pZCBoaWRfaGF2ZV9zcGVjaWFsX2RyaXZlcltdID0gew0KIAl7IEhJRF9VU0JfREVWSUNF KFVTQl9WRU5ET1JfSURfU09OWSwgVVNCX0RFVklDRV9JRF9TT05ZX05BVklHQVRJT05fQ09OVFJP TExFUikgfSwNCiAJeyBISURfQkxVRVRPT1RIX0RFVklDRShVU0JfVkVORE9SX0lEX1NPTlksIFVT Ql9ERVZJQ0VfSURfU09OWV9QUzNfQ09OVFJPTExFUikgfSwNCiAJeyBISURfVVNCX0RFVklDRShV U0JfVkVORE9SX0lEX1NPTlksIFVTQl9ERVZJQ0VfSURfU09OWV9WQUlPX1ZHWF9NT1VTRSkgfSwN CisJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX1NPTlksIFVTQl9ERVZJQ0VfSURfU09O WV9WQUlPX1ZHUF9NT1VTRSkgfSwNCiAJeyBISURfVVNCX0RFVklDRShVU0JfVkVORE9SX0lEX1NU QU5UVU0sIFVTQl9ERVZJQ0VfSURfTVRQKSB9LA0KIAl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5E T1JfSURfU1RBTlRVTV9TVE0sIFVTQl9ERVZJQ0VfSURfTVRQX1NUTSkgfSwNCiAJeyBISURfVVNC X0RFVklDRShVU0JfVkVORE9SX0lEX1NUQU5UVU1fU0lUUk9OSVgsIFVTQl9ERVZJQ0VfSURfTVRQ X1NJVFJPTklYKSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaGlkL2hpZC1pZHMuaCBiL2RyaXZl cnMvaGlkL2hpZC1pZHMuaA0KaW5kZXggMjVmMzI5MC4uZTY2NWJkZiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvaGlkL2hpZC1pZHMuaA0KKysrIGIvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQpAQCAtNjQ0 LDYgKzY0NCw3IEBADQogDQogI2RlZmluZSBVU0JfVkVORE9SX0lEX1NPTlkJCQkweDA1NGMNCiAj ZGVmaW5lIFVTQl9ERVZJQ0VfSURfU09OWV9WQUlPX1ZHWF9NT1VTRQkweDAyNGINCisjZGVmaW5l IFVTQl9ERVZJQ0VfSURfU09OWV9WQUlPX1ZHUF9NT1VTRQkweDAzNzQNCiAjZGVmaW5lIFVTQl9E RVZJQ0VfSURfU09OWV9QUzNfQ09OVFJPTExFUgkweDAyNjgNCiAjZGVmaW5lIFVTQl9ERVZJQ0Vf SURfU09OWV9OQVZJR0FUSU9OX0NPTlRST0xMRVIJMHgwNDJmDQogDQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9oaWQvaGlkLXNvbnkuYyBiL2RyaXZlcnMvaGlkL2hpZC1zb255LmMNCmluZGV4IDVjZDI1 YmQuLjQxNDJjMjEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2hpZC9oaWQtc29ueS5jDQorKysgYi9k cml2ZXJzL2hpZC9oaWQtc29ueS5jDQpAQCAtNDQsOSArNDQsMTkgQEAgc3RhdGljIF9fdTggKnNv bnlfcmVwb3J0X2ZpeHVwKHN0cnVjdCBoaWRfZGV2aWNlICpoZGV2LCBfX3U4ICpyZGVzYywNCiB7 DQogCXN0cnVjdCBzb255X3NjICpzYyA9IGhpZF9nZXRfZHJ2ZGF0YShoZGV2KTsNCiANCi0JaWYg KChzYy0+cXVpcmtzICYgVkFJT19SREVTQ19DT05TVEFOVCkgJiYNCi0JCQkqcnNpemUgPj0gNTYg JiYgcmRlc2NbNTRdID09IDB4ODEgJiYgcmRlc2NbNTVdID09IDB4MDcpIHsNCi0JCWhpZF9pbmZv KGhkZXYsICJGaXhpbmcgdXAgU29ueSBWYWlvIFZHWCByZXBvcnQgZGVzY3JpcHRvclxuIik7DQor CS8qDQorCSAqIFNvbWUgU29ueSBSRiByZWNlaXZlcnMgd3JvbmdseSBkZWNsYXJlIHRoZSBtb3Vz ZSBwb2ludGVyIGFzIGENCisJICogYSBjb25zdGFudCBub24tZGF0YSB2YXJpYWJsZS4NCisJICov DQorCWlmICgoc2MtPnF1aXJrcyAmIFZBSU9fUkRFU0NfQ09OU1RBTlQpICYmICpyc2l6ZSA+PSA1 NiAmJg0KKwkgICAgLyogdXNhZ2UgcGFnZTogZ2VuZXJpYyBkZXNrdG9wIGNvbnRyb2xzICovDQor CSAgICAvKiByZGVzY1swXSA9PSAweDA1ICYmIHJkZXNjWzFdID09IDB4MDEgJiYgKi8NCisJICAg IC8qIHVzYWdlOiBtb3VzZSAqLw0KKwkgICAgcmRlc2NbMl0gPT0gMHgwOSAmJiByZGVzY1szXSA9 PSAweDAyICYmDQorCSAgICAvKiBpbnB1dCAodXNhZ2UgcGFnZSBmb3IgeCx5IGF4ZXMpOiBjb25z dGFudCwgdmFyaWFibGUsIHJlbGF0aXZlICovDQorCSAgICByZGVzY1s1NF0gPT0gMHg4MSAmJiBy ZGVzY1s1NV0gPT0gMHgwNykgew0KKwkJaGlkX2luZm8oaGRldiwgIkZpeGluZyB1cCBTb255IFJG IFJlY2VpdmVyIHJlcG9ydCBkZXNjcmlwdG9yXG4iKTsNCisJCS8qIGlucHV0OiBkYXRhLCB2YXJp YWJsZSwgcmVsYXRpdmUgKi8NCiAJCXJkZXNjWzU1XSA9IDB4MDY7DQogCX0NCiANCkBAIC0yMTgs NiArMjI4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIHNvbnlfZGV2aWNl c1tdID0gew0KIAkJLmRyaXZlcl9kYXRhID0gU0lYQVhJU19DT05UUk9MTEVSX0JUIH0sDQogCXsg SElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9TT05ZLCBVU0JfREVWSUNFX0lEX1NPTllfVkFJ T19WR1hfTU9VU0UpLA0KIAkJLmRyaXZlcl9kYXRhID0gVkFJT19SREVTQ19DT05TVEFOVCB9LA0K Kwl7IEhJRF9VU0JfREVWSUNFKFVTQl9WRU5ET1JfSURfU09OWSwgVVNCX0RFVklDRV9JRF9TT05Z X1ZBSU9fVkdQX01PVVNFKSwNCisJCS5kcml2ZXJfZGF0YSA9IFZBSU9fUkRFU0NfQ09OU1RBTlQg fSwNCiAJeyB9DQogfTsNCiBNT0RVTEVfREVWSUNFX1RBQkxFKGhpZCwgc29ueV9kZXZpY2VzKTsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL2h2L2h2X2t2cC5jIGIvZHJpdmVycy9odi9odl9rdnAuYw0K aW5kZXggODlmNTI0NC4uMGU4MzQzZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaHYvaHZfa3ZwLmMN CisrKyBiL2RyaXZlcnMvaHYvaHZfa3ZwLmMNCkBAIC0yMTIsMTEgKzIxMiwxMyBAQCBrdnBfcmVz cG9uZF90b19ob3N0KGNoYXIgKmtleSwgY2hhciAqdmFsdWUsIGludCBlcnJvcikNCiAJICogVGhl IHdpbmRvd3MgaG9zdCBleHBlY3RzIHRoZSBrZXkvdmFsdWUgcGFpciB0byBiZSBlbmNvZGVkDQog CSAqIGluIHV0ZjE2Lg0KIAkgKi8NCi0Ja2V5bGVuID0gdXRmOHNfdG9fdXRmMTZzKGtleV9uYW1l LCBzdHJsZW4oa2V5X25hbWUpLA0KLQkJCQkod2NoYXJfdCAqKWt2cF9kYXRhLT5kYXRhLmtleSk7 DQorCWtleWxlbiA9IHV0ZjhzX3RvX3V0ZjE2cyhrZXlfbmFtZSwgc3RybGVuKGtleV9uYW1lKSwg VVRGMTZfSE9TVF9FTkRJQU4sDQorCQkJCSh3Y2hhcl90ICopIGt2cF9kYXRhLT5kYXRhLmtleSwN CisJCQkJSFZfS1ZQX0VYQ0hBTkdFX01BWF9LRVlfU0laRSAvIDIpOw0KIAlrdnBfZGF0YS0+ZGF0 YS5rZXlfc2l6ZSA9IDIqKGtleWxlbiArIDEpOyAvKiB1dGYxNiBlbmNvZGluZyAqLw0KLQl2YWx1 ZWxlbiA9IHV0ZjhzX3RvX3V0ZjE2cyh2YWx1ZSwgc3RybGVuKHZhbHVlKSwNCi0JCQkJKHdjaGFy X3QgKilrdnBfZGF0YS0+ZGF0YS52YWx1ZSk7DQorCXZhbHVlbGVuID0gdXRmOHNfdG9fdXRmMTZz KHZhbHVlLCBzdHJsZW4odmFsdWUpLCBVVEYxNl9IT1NUX0VORElBTiwNCisJCQkJKHdjaGFyX3Qg Kikga3ZwX2RhdGEtPmRhdGEudmFsdWUsDQorCQkJCUhWX0tWUF9FWENIQU5HRV9NQVhfVkFMVUVf U0laRSAvIDIpOw0KIAlrdnBfZGF0YS0+ZGF0YS52YWx1ZV9zaXplID0gMioodmFsdWVsZW4gKyAx KTsgLyogdXRmMTYgZW5jb2RpbmcgKi8NCiANCiAJa3ZwX2RhdGEtPmRhdGEudmFsdWVfdHlwZSA9 IFJFR19TWjsgLyogYWxsIG91ciB2YWx1ZXMgYXJlIHN0cmluZ3MgKi8NCmRpZmYgLS1naXQgYS9k cml2ZXJzL2h3bW9uL2xpbmVhZ2UtcGVtLmMgYi9kcml2ZXJzL2h3bW9uL2xpbmVhZ2UtcGVtLmMN CmluZGV4IDU4ZWRlZDIuLmM5OTEwZjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2h3bW9uL2xpbmVh Z2UtcGVtLmMNCisrKyBiL2RyaXZlcnMvaHdtb24vbGluZWFnZS1wZW0uYw0KQEAgLTQyMSw2ICs0 MjEsNyBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqcGVtX2lucHV0X2F0dHJpYnV0ZXNbXSA9 IHsNCiAJJnNlbnNvcl9kZXZfYXR0cl9pbjJfaW5wdXQuZGV2X2F0dHIuYXR0ciwNCiAJJnNlbnNv cl9kZXZfYXR0cl9jdXJyMV9pbnB1dC5kZXZfYXR0ci5hdHRyLA0KIAkmc2Vuc29yX2Rldl9hdHRy X3Bvd2VyMV9pbnB1dC5kZXZfYXR0ci5hdHRyLA0KKwlOVUxMDQogfTsNCiANCiBzdGF0aWMgY29u c3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBwZW1faW5wdXRfZ3JvdXAgPSB7DQpAQCAtNDMxLDYg KzQzMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpwZW1fZmFuX2F0dHJpYnV0ZXNbXSA9 IHsNCiAJJnNlbnNvcl9kZXZfYXR0cl9mYW4xX2lucHV0LmRldl9hdHRyLmF0dHIsDQogCSZzZW5z b3JfZGV2X2F0dHJfZmFuMl9pbnB1dC5kZXZfYXR0ci5hdHRyLA0KIAkmc2Vuc29yX2Rldl9hdHRy X2ZhbjNfaW5wdXQuZGV2X2F0dHIuYXR0ciwNCisJTlVMTA0KIH07DQogDQogc3RhdGljIGNvbnN0 IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgcGVtX2Zhbl9ncm91cCA9IHsNCmRpZmYgLS1naXQgYS9k cml2ZXJzL2h3bW9uL3BtYnVzL2x0YzI5NzguYyBiL2RyaXZlcnMvaHdtb24vcG1idXMvbHRjMjk3 OC5jDQppbmRleCA4MjBmZmY0Li40M2M3NDE0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9od21vbi9w bWJ1cy9sdGMyOTc4LmMNCisrKyBiL2RyaXZlcnMvaHdtb24vcG1idXMvbHRjMjk3OC5jDQpAQCAt NTksMTAgKzU5LDEwIEBAIGVudW0gY2hpcHMgeyBsdGMyOTc4LCBsdGMzODgwIH07DQogc3RydWN0 IGx0YzI5NzhfZGF0YSB7DQogCWVudW0gY2hpcHMgaWQ7DQogCWludCB2aW5fbWluLCB2aW5fbWF4 Ow0KLQlpbnQgdGVtcF9taW4sIHRlbXBfbWF4Ow0KKwlpbnQgdGVtcF9taW4sIHRlbXBfbWF4WzJd Ow0KIAlpbnQgdm91dF9taW5bOF0sIHZvdXRfbWF4WzhdOw0KIAlpbnQgaW91dF9tYXhbMl07DQot CWludCB0ZW1wMl9tYXhbMl07DQorCWludCB0ZW1wMl9tYXg7DQogCXN0cnVjdCBwbWJ1c19kcml2 ZXJfaW5mbyBpbmZvOw0KIH07DQogDQpAQCAtMTEzLDkgKzExMywxMCBAQCBzdGF0aWMgaW50IGx0 YzI5NzhfcmVhZF93b3JkX2RhdGFfY29tbW9uKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGlu dCBwYWdlLA0KIAkJcmV0ID0gcG1idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCBwYWdlLA0KIAkJ CQkJICAgTFRDMjk3OF9NRlJfVEVNUEVSQVRVUkVfUEVBSyk7DQogCQlpZiAocmV0ID49IDApIHsN Ci0JCQlpZiAobGluMTFfdG9fdmFsKHJldCkgPiBsaW4xMV90b192YWwoZGF0YS0+dGVtcF9tYXgp KQ0KLQkJCQlkYXRhLT50ZW1wX21heCA9IHJldDsNCi0JCQlyZXQgPSBkYXRhLT50ZW1wX21heDsN CisJCQlpZiAobGluMTFfdG9fdmFsKHJldCkNCisJCQkgICAgPiBsaW4xMV90b192YWwoZGF0YS0+ dGVtcF9tYXhbcGFnZV0pKQ0KKwkJCQlkYXRhLT50ZW1wX21heFtwYWdlXSA9IHJldDsNCisJCQly ZXQgPSBkYXRhLT50ZW1wX21heFtwYWdlXTsNCiAJCX0NCiAJCWJyZWFrOw0KIAljYXNlIFBNQlVT X1ZJUlRfUkVTRVRfVk9VVF9ISVNUT1JZOg0KQEAgLTIwNCwxMCArMjA1LDkgQEAgc3RhdGljIGlu dCBsdGMzODgwX3JlYWRfd29yZF9kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsIGludCBw YWdlLCBpbnQgcmVnKQ0KIAkJcmV0ID0gcG1idXNfcmVhZF93b3JkX2RhdGEoY2xpZW50LCBwYWdl LA0KIAkJCQkJICAgTFRDMzg4MF9NRlJfVEVNUEVSQVRVUkUyX1BFQUspOw0KIAkJaWYgKHJldCA+ PSAwKSB7DQotCQkJaWYgKGxpbjExX3RvX3ZhbChyZXQpDQotCQkJICAgID4gbGluMTFfdG9fdmFs KGRhdGEtPnRlbXAyX21heFtwYWdlXSkpDQotCQkJCWRhdGEtPnRlbXAyX21heFtwYWdlXSA9IHJl dDsNCi0JCQlyZXQgPSBkYXRhLT50ZW1wMl9tYXhbcGFnZV07DQorCQkJaWYgKGxpbjExX3RvX3Zh bChyZXQpID4gbGluMTFfdG9fdmFsKGRhdGEtPnRlbXAyX21heCkpDQorCQkJCWRhdGEtPnRlbXAy X21heCA9IHJldDsNCisJCQlyZXQgPSBkYXRhLT50ZW1wMl9tYXg7DQogCQl9DQogCQlicmVhazsN CiAJY2FzZSBQTUJVU19WSVJUX1JFQURfVklOX01JTjoNCkBAIC0yNDgsMTEgKzI0OCwxMSBAQCBz dGF0aWMgaW50IGx0YzI5Nzhfd3JpdGVfd29yZF9kYXRhKHN0cnVjdCBpMmNfY2xpZW50ICpjbGll bnQsIGludCBwYWdlLA0KIA0KIAlzd2l0Y2ggKHJlZykgew0KIAljYXNlIFBNQlVTX1ZJUlRfUkVT RVRfSU9VVF9ISVNUT1JZOg0KLQkJZGF0YS0+aW91dF9tYXhbcGFnZV0gPSAweDdmZmY7DQorCQlk YXRhLT5pb3V0X21heFtwYWdlXSA9IDB4N2MwMDsNCiAJCXJldCA9IGx0YzI5NzhfY2xlYXJfcGVh a3MoY2xpZW50LCBwYWdlLCBkYXRhLT5pZCk7DQogCQlicmVhazsNCiAJY2FzZSBQTUJVU19WSVJU X1JFU0VUX1RFTVAyX0hJU1RPUlk6DQotCQlkYXRhLT50ZW1wMl9tYXhbcGFnZV0gPSAweDdmZmY7 DQorCQlkYXRhLT50ZW1wMl9tYXggPSAweDdjMDA7DQogCQlyZXQgPSBsdGMyOTc4X2NsZWFyX3Bl YWtzKGNsaWVudCwgcGFnZSwgZGF0YS0+aWQpOw0KIAkJYnJlYWs7DQogCWNhc2UgUE1CVVNfVklS VF9SRVNFVF9WT1VUX0hJU1RPUlk6DQpAQCAtMjYyLDEyICsyNjIsMTIgQEAgc3RhdGljIGludCBs dGMyOTc4X3dyaXRlX3dvcmRfZGF0YShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LCBpbnQgcGFn ZSwNCiAJCWJyZWFrOw0KIAljYXNlIFBNQlVTX1ZJUlRfUkVTRVRfVklOX0hJU1RPUlk6DQogCQlk YXRhLT52aW5fbWluID0gMHg3YmZmOw0KLQkJZGF0YS0+dmluX21heCA9IDA7DQorCQlkYXRhLT52 aW5fbWF4ID0gMHg3YzAwOw0KIAkJcmV0ID0gbHRjMjk3OF9jbGVhcl9wZWFrcyhjbGllbnQsIHBh Z2UsIGRhdGEtPmlkKTsNCiAJCWJyZWFrOw0KIAljYXNlIFBNQlVTX1ZJUlRfUkVTRVRfVEVNUF9I SVNUT1JZOg0KIAkJZGF0YS0+dGVtcF9taW4gPSAweDdiZmY7DQotCQlkYXRhLT50ZW1wX21heCA9 IDB4N2ZmZjsNCisJCWRhdGEtPnRlbXBfbWF4W3BhZ2VdID0gMHg3YzAwOw0KIAkJcmV0ID0gbHRj Mjk3OF9jbGVhcl9wZWFrcyhjbGllbnQsIHBhZ2UsIGRhdGEtPmlkKTsNCiAJCWJyZWFrOw0KIAlk ZWZhdWx0Og0KQEAgLTMyMywxMiArMzIzLDE0IEBAIHN0YXRpYyBpbnQgbHRjMjk3OF9wcm9iZShz dHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LA0KIAlpbmZvID0gJmRhdGEtPmluZm87DQogCWluZm8t PndyaXRlX3dvcmRfZGF0YSA9IGx0YzI5Nzhfd3JpdGVfd29yZF9kYXRhOw0KIA0KLQlkYXRhLT52 b3V0X21pblswXSA9IDB4ZmZmZjsNCiAJZGF0YS0+dmluX21pbiA9IDB4N2JmZjsNCisJZGF0YS0+ dmluX21heCA9IDB4N2MwMDsNCiAJZGF0YS0+dGVtcF9taW4gPSAweDdiZmY7DQotCWRhdGEtPnRl bXBfbWF4ID0gMHg3ZmZmOw0KKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShkYXRhLT50ZW1w X21heCk7IGkrKykNCisJCWRhdGEtPnRlbXBfbWF4W2ldID0gMHg3YzAwOw0KKwlkYXRhLT50ZW1w Ml9tYXggPSAweDdjMDA7DQogDQotCXN3aXRjaCAoaWQtPmRyaXZlcl9kYXRhKSB7DQorCXN3aXRj aCAoZGF0YS0+aWQpIHsNCiAJY2FzZSBsdGMyOTc4Og0KIAkJaW5mby0+cmVhZF93b3JkX2RhdGEg PSBsdGMyOTc4X3JlYWRfd29yZF9kYXRhOw0KIAkJaW5mby0+cGFnZXMgPSA4Ow0KQEAgLTMzOCw3 ICszNDAsNiBAQCBzdGF0aWMgaW50IGx0YzI5NzhfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNs aWVudCwNCiAJCWZvciAoaSA9IDE7IGkgPCA4OyBpKyspIHsNCiAJCQlpbmZvLT5mdW5jW2ldID0g UE1CVVNfSEFWRV9WT1VUDQogCQkJICB8IFBNQlVTX0hBVkVfU1RBVFVTX1ZPVVQ7DQotCQkJZGF0 YS0+dm91dF9taW5baV0gPSAweGZmZmY7DQogCQl9DQogCQlicmVhazsNCiAJY2FzZSBsdGMzODgw Og0KQEAgLTM1NCwxMiArMzU1LDE1IEBAIHN0YXRpYyBpbnQgbHRjMjk3OF9wcm9iZShzdHJ1Y3Qg aTJjX2NsaWVudCAqY2xpZW50LA0KIAkJICB8IFBNQlVTX0hBVkVfSU9VVCB8IFBNQlVTX0hBVkVf U1RBVFVTX0lPVVQNCiAJCSAgfCBQTUJVU19IQVZFX1BPVVQNCiAJCSAgfCBQTUJVU19IQVZFX1RF TVAgfCBQTUJVU19IQVZFX1NUQVRVU19URU1QOw0KLQkJZGF0YS0+dm91dF9taW5bMV0gPSAweGZm ZmY7DQorCQlkYXRhLT5pb3V0X21heFswXSA9IDB4N2MwMDsNCisJCWRhdGEtPmlvdXRfbWF4WzFd ID0gMHg3YzAwOw0KIAkJYnJlYWs7DQogCWRlZmF1bHQ6DQogCQlyZXQgPSAtRU5PREVWOw0KIAkJ Z290byBlcnJfbWVtOw0KIAl9DQorCWZvciAoaSA9IDA7IGkgPCBpbmZvLT5wYWdlczsgaSsrKQ0K KwkJZGF0YS0+dm91dF9taW5baV0gPSAweGZmZmY7DQogDQogCXJldCA9IHBtYnVzX2RvX3Byb2Jl KGNsaWVudCwgaWQsIGluZm8pOw0KIAlpZiAocmV0KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdt b24vc2h0MTUuYyBiL2RyaXZlcnMvaHdtb24vc2h0MTUuYw0KaW5kZXggNTM1NzkyNS4uM2UzMTUz ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaHdtb24vc2h0MTUuYw0KKysrIGIvZHJpdmVycy9od21v bi9zaHQxNS5jDQpAQCAtOTI2LDcgKzkyNiwxMyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBzaHQx NV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAkJaWYgKHZvbHRhZ2UpDQog CQkJZGF0YS0+c3VwcGx5X3VWID0gdm9sdGFnZTsNCiANCi0JCXJlZ3VsYXRvcl9lbmFibGUoZGF0 YS0+cmVnKTsNCisJCXJldCA9IHJlZ3VsYXRvcl9lbmFibGUoZGF0YS0+cmVnKTsNCisJCWlmIChy ZXQgIT0gMCkgew0KKwkJCWRldl9lcnIoJnBkZXYtPmRldiwNCisJCQkJImZhaWxlZCB0byBlbmFi bGUgcmVndWxhdG9yOiAlZFxuIiwgcmV0KTsNCisJCQlnb3RvIGVycl9mcmVlX2RhdGE7DQorCQl9 DQorDQogCQkvKg0KIAkJICogU2V0dXAgYSBub3RpZmllciBibG9jayB0byB1cGRhdGUgdGhpcyBp ZiBhbm90aGVyIGRldmljZQ0KIAkJICogY2F1c2VzIHRoZSB2b2x0YWdlIHRvIGNoYW5nZQ0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaW9tbXUvYW1kX2lvbW11X2luaXQuYyBiL2RyaXZlcnMvaW9tbXUv YW1kX2lvbW11X2luaXQuYw0KaW5kZXggNjJhNGQ1Yy4uYjdkMWNkZCAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvaW9tbXUvYW1kX2lvbW11X2luaXQuYw0KKysrIGIvZHJpdmVycy9pb21tdS9hbWRfaW9t bXVfaW5pdC5jDQpAQCAtMTM5Niw2ICsxMzk2LDcgQEAgc3RhdGljIHN0cnVjdCBzeXNjb3JlX29w cyBhbWRfaW9tbXVfc3lzY29yZV9vcHMgPSB7DQogICovDQogc3RhdGljIGludCBfX2luaXQgYW1k X2lvbW11X2luaXQodm9pZCkNCiB7DQorCXN0cnVjdCBhbWRfaW9tbXUgKmlvbW11Ow0KIAlpbnQg aSwgcmV0ID0gMDsNCiANCiAJLyoNCkBAIC0xNDQ0LDkgKzE0NDUsNiBAQCBzdGF0aWMgaW50IF9f aW5pdCBhbWRfaW9tbXVfaW5pdCh2b2lkKQ0KIAlpZiAoYW1kX2lvbW11X3BkX2FsbG9jX2JpdG1h cCA9PSBOVUxMKQ0KIAkJZ290byBmcmVlOw0KIA0KLQkvKiBpbml0IHRoZSBkZXZpY2UgdGFibGUg Ki8NCi0JaW5pdF9kZXZpY2VfdGFibGUoKTsNCi0NCiAJLyoNCiAJICogbGV0IGFsbCBhbGlhcyBl bnRyaWVzIHBvaW50IHRvIGl0c2VsZg0KIAkgKi8NCkBAIC0xNDk2LDYgKzE0OTQsMTIgQEAgc3Rh dGljIGludCBfX2luaXQgYW1kX2lvbW11X2luaXQodm9pZCkNCiAJaWYgKHJldCkNCiAJCWdvdG8g ZnJlZV9kaXNhYmxlOw0KIA0KKwkvKiBpbml0IHRoZSBkZXZpY2UgdGFibGUgKi8NCisJaW5pdF9k ZXZpY2VfdGFibGUoKTsNCisNCisJZm9yX2VhY2hfaW9tbXUoaW9tbXUpDQorCQlpb21tdV9mbHVz aF9hbGxfY2FjaGVzKGlvbW11KTsNCisNCiAJYW1kX2lvbW11X2luaXRfYXBpKCk7DQogDQogCWFt ZF9pb21tdV9pbml0X25vdGlmaWVyKCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1jcnlw dC5jIGIvZHJpdmVycy9tZC9kbS1jcnlwdC5jDQppbmRleCA1OGQ4YzZkLi5hYTE0MmY5IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1jcnlwdC5jDQorKysgYi9kcml2ZXJzL21kL2RtLWNyeXB0 LmMNCkBAIC0xMjYyLDIwICsxMjYyLDYgQEAgc3RhdGljIGludCBjcnlwdF9kZWNvZGVfa2V5KHU4 ICprZXksIGNoYXIgKmhleCwgdW5zaWduZWQgaW50IHNpemUpDQogCXJldHVybiAwOw0KIH0NCiAN Ci0vKg0KLSAqIEVuY29kZSBrZXkgaW50byBpdHMgaGV4IHJlcHJlc2VudGF0aW9uDQotICovDQot c3RhdGljIHZvaWQgY3J5cHRfZW5jb2RlX2tleShjaGFyICpoZXgsIHU4ICprZXksIHVuc2lnbmVk IGludCBzaXplKQ0KLXsNCi0JdW5zaWduZWQgaW50IGk7DQotDQotCWZvciAoaSA9IDA7IGkgPCBz aXplOyBpKyspIHsNCi0JCXNwcmludGYoaGV4LCAiJTAyeCIsICprZXkpOw0KLQkJaGV4ICs9IDI7 DQotCQlrZXkrKzsNCi0JfQ0KLX0NCi0NCiBzdGF0aWMgdm9pZCBjcnlwdF9mcmVlX3RmbXMoc3Ry dWN0IGNyeXB0X2NvbmZpZyAqY2MsIGludCBjcHUpDQogew0KIAlzdHJ1Y3QgY3J5cHRfY3B1ICpj cHVfY2MgPSBwZXJfY3B1X3B0cihjYy0+Y3B1LCBjcHUpOw0KQEAgLTE3MzksMTEgKzE3MjUsMTEg QEAgc3RhdGljIGludCBjcnlwdF9tYXAoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0cnVjdCBiaW8g KmJpbywNCiAJcmV0dXJuIERNX01BUElPX1NVQk1JVFRFRDsNCiB9DQogDQotc3RhdGljIGludCBj cnlwdF9zdGF0dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCi0J CQljaGFyICpyZXN1bHQsIHVuc2lnbmVkIGludCBtYXhsZW4pDQorc3RhdGljIHZvaWQgY3J5cHRf c3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlwZV90IHR5cGUsDQorCQkJIGNo YXIgKnJlc3VsdCwgdW5zaWduZWQgbWF4bGVuKQ0KIHsNCiAJc3RydWN0IGNyeXB0X2NvbmZpZyAq Y2MgPSB0aS0+cHJpdmF0ZTsNCi0JdW5zaWduZWQgaW50IHN6ID0gMDsNCisJdW5zaWduZWQgaSwg c3ogPSAwOw0KIA0KIAlzd2l0Y2ggKHR5cGUpIHsNCiAJY2FzZSBTVEFUVVNUWVBFX0lORk86DQpA QCAtMTc1MywxNyArMTczOSwxMSBAQCBzdGF0aWMgaW50IGNyeXB0X3N0YXR1cyhzdHJ1Y3QgZG1f dGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KIAljYXNlIFNUQVRVU1RZUEVfVEFCTEU6 DQogCQlETUVNSVQoIiVzICIsIGNjLT5jaXBoZXJfc3RyaW5nKTsNCiANCi0JCWlmIChjYy0+a2V5 X3NpemUgPiAwKSB7DQotCQkJaWYgKChtYXhsZW4gLSBzeikgPCAoKGNjLT5rZXlfc2l6ZSA8PCAx KSArIDEpKQ0KLQkJCQlyZXR1cm4gLUVOT01FTTsNCi0NCi0JCQljcnlwdF9lbmNvZGVfa2V5KHJl c3VsdCArIHN6LCBjYy0+a2V5LCBjYy0+a2V5X3NpemUpOw0KLQkJCXN6ICs9IGNjLT5rZXlfc2l6 ZSA8PCAxOw0KLQkJfSBlbHNlIHsNCi0JCQlpZiAoc3ogPj0gbWF4bGVuKQ0KLQkJCQlyZXR1cm4g LUVOT01FTTsNCi0JCQlyZXN1bHRbc3orK10gPSAnLSc7DQotCQl9DQorCQlpZiAoY2MtPmtleV9z aXplID4gMCkNCisJCQlmb3IgKGkgPSAwOyBpIDwgY2MtPmtleV9zaXplOyBpKyspDQorCQkJCURN RU1JVCgiJTAyeCIsIGNjLT5rZXlbaV0pOw0KKwkJZWxzZQ0KKwkJCURNRU1JVCgiLSIpOw0KIA0K IAkJRE1FTUlUKCIgJWxsdSAlcyAlbGx1IiwgKHVuc2lnbmVkIGxvbmcgbG9uZyljYy0+aXZfb2Zm c2V0LA0KIAkJCQljYy0+ZGV2LT5uYW1lLCAodW5zaWduZWQgbG9uZyBsb25nKWNjLT5zdGFydCk7 DQpAQCAtMTc3Myw3ICsxNzUzLDYgQEAgc3RhdGljIGludCBjcnlwdF9zdGF0dXMoc3RydWN0IGRt X3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCiANCiAJCWJyZWFrOw0KIAl9DQotCXJl dHVybiAwOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBjcnlwdF9wb3N0c3VzcGVuZChzdHJ1Y3QgZG1f dGFyZ2V0ICp0aSkNCkBAIC0xODY3LDcgKzE4NDYsNyBAQCBzdGF0aWMgaW50IGNyeXB0X2l0ZXJh dGVfZGV2aWNlcyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwNCiANCiBzdGF0aWMgc3RydWN0IHRhcmdl dF90eXBlIGNyeXB0X3RhcmdldCA9IHsNCiAJLm5hbWUgICA9ICJjcnlwdCIsDQotCS52ZXJzaW9u ID0gezEsIDExLCAwfSwNCisJLnZlcnNpb24gPSB7MSwgMTEsIDF9LA0KIAkubW9kdWxlID0gVEhJ U19NT0RVTEUsDQogCS5jdHIgICAgPSBjcnlwdF9jdHIsDQogCS5kdHIgICAgPSBjcnlwdF9kdHIs DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1kZWxheS5jIGIvZHJpdmVycy9tZC9kbS1kZWxh eS5jDQppbmRleCBmMTgzNzVkLi4xMTQzMWFjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1k ZWxheS5jDQorKysgYi9kcml2ZXJzL21kL2RtLWRlbGF5LmMNCkBAIC0yOTMsOCArMjkzLDggQEAg c3RhdGljIGludCBkZWxheV9tYXAoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0cnVjdCBiaW8gKmJp bywNCiAJcmV0dXJuIGRlbGF5X2JpbyhkYywgZGMtPnJlYWRfZGVsYXksIGJpbyk7DQogfQ0KIA0K LXN0YXRpYyBpbnQgZGVsYXlfc3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlw ZV90IHR5cGUsDQotCQkJY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBtYXhsZW4pDQorc3RhdGljIHZv aWQgZGVsYXlfc3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlwZV90IHR5cGUs DQorCQkJIGNoYXIgKnJlc3VsdCwgdW5zaWduZWQgbWF4bGVuKQ0KIHsNCiAJc3RydWN0IGRlbGF5 X2MgKmRjID0gdGktPnByaXZhdGU7DQogCWludCBzeiA9IDA7DQpAQCAtMzE0LDggKzMxNCw2IEBA IHN0YXRpYyBpbnQgZGVsYXlfc3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlw ZV90IHR5cGUsDQogCQkJICAgICAgIGRjLT53cml0ZV9kZWxheSk7DQogCQlicmVhazsNCiAJfQ0K LQ0KLQlyZXR1cm4gMDsNCiB9DQogDQogc3RhdGljIGludCBkZWxheV9pdGVyYXRlX2RldmljZXMo c3RydWN0IGRtX3RhcmdldCAqdGksDQpAQCAtMzM3LDcgKzMzNSw3IEBAIG91dDoNCiANCiBzdGF0 aWMgc3RydWN0IHRhcmdldF90eXBlIGRlbGF5X3RhcmdldCA9IHsNCiAJLm5hbWUJICAgICA9ICJk ZWxheSIsDQotCS52ZXJzaW9uICAgICA9IHsxLCAxLCAwfSwNCisJLnZlcnNpb24gICAgID0gezEs IDEsIDF9LA0KIAkubW9kdWxlICAgICAgPSBUSElTX01PRFVMRSwNCiAJLmN0cgkgICAgID0gZGVs YXlfY3RyLA0KIAkuZHRyCSAgICAgPSBkZWxheV9kdHIsDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9t ZC9kbS1mbGFrZXkuYyBiL2RyaXZlcnMvbWQvZG0tZmxha2V5LmMNCmluZGV4IGIyODBjNDMuLjc0 NmI1ZTggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2RtLWZsYWtleS5jDQorKysgYi9kcml2ZXJz L21kL2RtLWZsYWtleS5jDQpAQCAtMzMxLDggKzMzMSw4IEBAIHN0YXRpYyBpbnQgZmxha2V5X2Vu ZF9pbyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RydWN0IGJpbyAqYmlvLA0KIAlyZXR1cm4gZXJy b3I7DQogfQ0KIA0KLXN0YXRpYyBpbnQgZmxha2V5X3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0 aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KLQkJCSBjaGFyICpyZXN1bHQsIHVuc2lnbmVkIGludCBt YXhsZW4pDQorc3RhdGljIHZvaWQgZmxha2V5X3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwg c3RhdHVzX3R5cGVfdCB0eXBlLA0KKwkJCSAgY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBtYXhsZW4p DQogew0KIAl1bnNpZ25lZCBzeiA9IDA7DQogCXN0cnVjdCBmbGFrZXlfYyAqZmMgPSB0aS0+cHJp dmF0ZTsNCkBAIC0zNjIsNyArMzYyLDYgQEAgc3RhdGljIGludCBmbGFrZXlfc3RhdHVzKHN0cnVj dCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlwZV90IHR5cGUsDQogDQogCQlicmVhazsNCiAJfQ0K LQlyZXR1cm4gMDsNCiB9DQogDQogc3RhdGljIGludCBmbGFrZXlfaW9jdGwoc3RydWN0IGRtX3Rh cmdldCAqdGksIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKQ0KQEAgLTQwNSw3 ICs0MDQsNyBAQCBzdGF0aWMgaW50IGZsYWtleV9pdGVyYXRlX2RldmljZXMoc3RydWN0IGRtX3Rh cmdldCAqdGksIGl0ZXJhdGVfZGV2aWNlc19jYWxsb3V0Xw0KIA0KIHN0YXRpYyBzdHJ1Y3QgdGFy Z2V0X3R5cGUgZmxha2V5X3RhcmdldCA9IHsNCiAJLm5hbWUgICA9ICJmbGFrZXkiLA0KLQkudmVy c2lvbiA9IHsxLCAyLCAwfSwNCisJLnZlcnNpb24gPSB7MSwgMiwgMX0sDQogCS5tb2R1bGUgPSBU SElTX01PRFVMRSwNCiAJLmN0ciAgICA9IGZsYWtleV9jdHIsDQogCS5kdHIgICAgPSBmbGFrZXlf ZHRyLA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0taW9jdGwuYyBiL2RyaXZlcnMvbWQvZG0t aW9jdGwuYw0KaW5kZXggNDJjODczZi4uZTZhMzAwYyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWQv ZG0taW9jdGwuYw0KKysrIGIvZHJpdmVycy9tZC9kbS1pb2N0bC5jDQpAQCAtMTA2NSw2ICsxMDY1 LDcgQEAgc3RhdGljIHZvaWQgcmV0cmlldmVfc3RhdHVzKHN0cnVjdCBkbV90YWJsZSAqdGFibGUs DQogCW51bV90YXJnZXRzID0gZG1fdGFibGVfZ2V0X251bV90YXJnZXRzKHRhYmxlKTsNCiAJZm9y IChpID0gMDsgaSA8IG51bV90YXJnZXRzOyBpKyspIHsNCiAJCXN0cnVjdCBkbV90YXJnZXQgKnRp ID0gZG1fdGFibGVfZ2V0X3RhcmdldCh0YWJsZSwgaSk7DQorCQlzaXplX3QgbDsNCiANCiAJCXJl bWFpbmluZyA9IGxlbiAtIChvdXRwdHIgLSBvdXRidWYpOw0KIAkJaWYgKHJlbWFpbmluZyA8PSBz aXplb2Yoc3RydWN0IGRtX3RhcmdldF9zcGVjKSkgew0KQEAgLTEwODksMTQgKzEwOTAsMTcgQEAg c3RhdGljIHZvaWQgcmV0cmlldmVfc3RhdHVzKHN0cnVjdCBkbV90YWJsZSAqdGFibGUsDQogDQog CQkvKiBHZXQgdGhlIHN0YXR1cy90YWJsZSBzdHJpbmcgZnJvbSB0aGUgdGFyZ2V0IGRyaXZlciAq Lw0KIAkJaWYgKHRpLT50eXBlLT5zdGF0dXMpIHsNCi0JCQlpZiAodGktPnR5cGUtPnN0YXR1cyh0 aSwgdHlwZSwgb3V0cHRyLCByZW1haW5pbmcpKSB7DQotCQkJCXBhcmFtLT5mbGFncyB8PSBETV9C VUZGRVJfRlVMTF9GTEFHOw0KLQkJCQlicmVhazsNCi0JCQl9DQorCQkJdGktPnR5cGUtPnN0YXR1 cyh0aSwgdHlwZSwgb3V0cHRyLCByZW1haW5pbmcpOw0KIAkJfSBlbHNlDQogCQkJb3V0cHRyWzBd ID0gJ1wwJzsNCiANCi0JCW91dHB0ciArPSBzdHJsZW4ob3V0cHRyKSArIDE7DQorCQlsID0gc3Ry bGVuKG91dHB0cikgKyAxOw0KKwkJaWYgKGwgPT0gcmVtYWluaW5nKSB7DQorCQkJcGFyYW0tPmZs YWdzIHw9IERNX0JVRkZFUl9GVUxMX0ZMQUc7DQorCQkJYnJlYWs7DQorCQl9DQorDQorCQlvdXRw dHIgKz0gbDsNCiAJCXVzZWQgPSBwYXJhbS0+ZGF0YV9zdGFydCArIChvdXRwdHIgLSBvdXRidWYp Ow0KIA0KIAkJb3V0cHRyID0gYWxpZ25fcHRyKG91dHB0cik7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZC9kbS1saW5lYXIuYyBiL2RyaXZlcnMvbWQvZG0tbGluZWFyLmMNCmluZGV4IDk3Mjg4Mzku LmM1NWQ4ZTQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2RtLWxpbmVhci5jDQorKysgYi9kcml2 ZXJzL21kL2RtLWxpbmVhci5jDQpAQCAtOTQsOCArOTQsOCBAQCBzdGF0aWMgaW50IGxpbmVhcl9t YXAoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0cnVjdCBiaW8gKmJpbywNCiAJcmV0dXJuIERNX01B UElPX1JFTUFQUEVEOw0KIH0NCiANCi1zdGF0aWMgaW50IGxpbmVhcl9zdGF0dXMoc3RydWN0IGRt X3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCi0JCQkgY2hhciAqcmVzdWx0LCB1bnNp Z25lZCBpbnQgbWF4bGVuKQ0KK3N0YXRpYyB2b2lkIGxpbmVhcl9zdGF0dXMoc3RydWN0IGRtX3Rh cmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCisJCQkgIGNoYXIgKnJlc3VsdCwgdW5zaWdu ZWQgbWF4bGVuKQ0KIHsNCiAJc3RydWN0IGxpbmVhcl9jICpsYyA9IChzdHJ1Y3QgbGluZWFyX2Mg KikgdGktPnByaXZhdGU7DQogDQpAQCAtMTA5LDcgKzEwOSw2IEBAIHN0YXRpYyBpbnQgbGluZWFy X3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KIAkJCQko dW5zaWduZWQgbG9uZyBsb25nKWxjLT5zdGFydCk7DQogCQlicmVhazsNCiAJfQ0KLQlyZXR1cm4g MDsNCiB9DQogDQogc3RhdGljIGludCBsaW5lYXJfaW9jdGwoc3RydWN0IGRtX3RhcmdldCAqdGks IHVuc2lnbmVkIGludCBjbWQsDQpAQCAtMTU0LDcgKzE1Myw3IEBAIHN0YXRpYyBpbnQgbGluZWFy X2l0ZXJhdGVfZGV2aWNlcyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwNCiANCiBzdGF0aWMgc3RydWN0 IHRhcmdldF90eXBlIGxpbmVhcl90YXJnZXQgPSB7DQogCS5uYW1lICAgPSAibGluZWFyIiwNCi0J LnZlcnNpb24gPSB7MSwgMSwgMH0sDQorCS52ZXJzaW9uID0gezEsIDEsIDF9LA0KIAkubW9kdWxl ID0gVEhJU19NT0RVTEUsDQogCS5jdHIgICAgPSBsaW5lYXJfY3RyLA0KIAkuZHRyICAgID0gbGlu ZWFyX2R0ciwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLW1wYXRoLmMgYi9kcml2ZXJzL21k L2RtLW1wYXRoLmMNCmluZGV4IGE0MTdmOTQuLjdlNzY2ZjkgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L21kL2RtLW1wYXRoLmMNCisrKyBiL2RyaXZlcnMvbWQvZG0tbXBhdGguYw0KQEAgLTEzMjMsOCAr MTMyMyw4IEBAIHN0YXRpYyB2b2lkIG11bHRpcGF0aF9yZXN1bWUoc3RydWN0IGRtX3RhcmdldCAq dGkpDQogICogICAgIFtwcmlvcml0eSBzZWxlY3Rvci1uYW1lIG51bV9wc19hcmdzIFtwc19hcmdz XSoNCiAgKiAgICAgIG51bV9wYXRocyBudW1fc2VsZWN0b3JfYXJncyBbcGF0aF9kZXYgW3NlbGVj dG9yX2FyZ3NdKiBdKyBdKw0KICAqLw0KLXN0YXRpYyBpbnQgbXVsdGlwYXRoX3N0YXR1cyhzdHJ1 Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KLQkJCSAgICBjaGFyICpyZXN1 bHQsIHVuc2lnbmVkIGludCBtYXhsZW4pDQorc3RhdGljIHZvaWQgbXVsdGlwYXRoX3N0YXR1cyhz dHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KKwkJCSAgICAgY2hhciAq cmVzdWx0LCB1bnNpZ25lZCBtYXhsZW4pDQogew0KIAlpbnQgc3ogPSAwOw0KIAl1bnNpZ25lZCBs b25nIGZsYWdzOw0KQEAgLTE0MjcsOCArMTQyNyw2IEBAIHN0YXRpYyBpbnQgbXVsdGlwYXRoX3N0 YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KIAl9DQogDQog CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm0tPmxvY2ssIGZsYWdzKTsNCi0NCi0JcmV0dXJuIDA7 DQogfQ0KIA0KIHN0YXRpYyBpbnQgbXVsdGlwYXRoX21lc3NhZ2Uoc3RydWN0IGRtX3RhcmdldCAq dGksIHVuc2lnbmVkIGFyZ2MsIGNoYXIgKiphcmd2KQ0KQEAgLTE2MjMsNyArMTYyMSw3IEBAIG91 dDoNCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSovDQogc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSBtdWx0aXBhdGhfdGFy Z2V0ID0gew0KIAkubmFtZSA9ICJtdWx0aXBhdGgiLA0KLQkudmVyc2lvbiA9IHsxLCAzLCAwfSwN CisJLnZlcnNpb24gPSB7MSwgMywgMX0sDQogCS5tb2R1bGUgPSBUSElTX01PRFVMRSwNCiAJLmN0 ciA9IG11bHRpcGF0aF9jdHIsDQogCS5kdHIgPSBtdWx0aXBhdGhfZHRyLA0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbWQvZG0tcmFpZC5jIGIvZHJpdmVycy9tZC9kbS1yYWlkLmMNCmluZGV4IGQyYTMy MjMuLjg2ODYyZWEgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2RtLXJhaWQuYw0KKysrIGIvZHJp dmVycy9tZC9kbS1yYWlkLmMNCkBAIC0xMDE3LDggKzEwMTcsOCBAQCBzdGF0aWMgaW50IHJhaWRf bWFwKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdHJ1Y3QgYmlvICpiaW8sIHVuaW9uIG1hcF9pbmZv ICptYXBfYw0KIAlyZXR1cm4gRE1fTUFQSU9fU1VCTUlUVEVEOw0KIH0NCiANCi1zdGF0aWMgaW50 IHJhaWRfc3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlwZV90IHR5cGUsDQot CQkgICAgICAgY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBtYXhsZW4pDQorc3RhdGljIHZvaWQgcmFp ZF9zdGF0dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCisJCQlj aGFyICpyZXN1bHQsIHVuc2lnbmVkIG1heGxlbikNCiB7DQogCXN0cnVjdCByYWlkX3NldCAqcnMg PSB0aS0+cHJpdmF0ZTsNCiAJdW5zaWduZWQgcmFpZF9wYXJhbV9jbnQgPSAxOyAvKiBhdCBsZWFz dCAxIGZvciBjaHVua3NpemUgKi8NCkBAIC0xMTUzLDggKzExNTMsNiBAQCBzdGF0aWMgaW50IHJh aWRfc3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlwZV90IHR5cGUsDQogCQkJ CURNRU1JVCgiIC0iKTsNCiAJCX0NCiAJfQ0KLQ0KLQlyZXR1cm4gMDsNCiB9DQogDQogc3RhdGlj IGludCByYWlkX2l0ZXJhdGVfZGV2aWNlcyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgaXRlcmF0ZV9k ZXZpY2VzX2NhbGxvdXRfZm4gZm4sIHZvaWQgKmRhdGEpDQpAQCAtMTIwOCw3ICsxMjA2LDcgQEAg c3RhdGljIHZvaWQgcmFpZF9yZXN1bWUoc3RydWN0IGRtX3RhcmdldCAqdGkpDQogDQogc3RhdGlj IHN0cnVjdCB0YXJnZXRfdHlwZSByYWlkX3RhcmdldCA9IHsNCiAJLm5hbWUgPSAicmFpZCIsDQot CS52ZXJzaW9uID0gezEsIDEsIDB9LA0KKwkudmVyc2lvbiA9IHsxLCAxLCAxfSwNCiAJLm1vZHVs ZSA9IFRISVNfTU9EVUxFLA0KIAkuY3RyID0gcmFpZF9jdHIsDQogCS5kdHIgPSByYWlkX2R0ciwN CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXJhaWQxLmMgYi9kcml2ZXJzL21kL2RtLXJhaWQx LmMNCmluZGV4IGRhZTJiN2EuLmI3YjY0OWQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2RtLXJh aWQxLmMNCisrKyBiL2RyaXZlcnMvbWQvZG0tcmFpZDEuYw0KQEAgLTEzNTgsOCArMTM1OCw4IEBA IHN0YXRpYyBjaGFyIGRldmljZV9zdGF0dXNfY2hhcihzdHJ1Y3QgbWlycm9yICptKQ0KIH0NCiAN CiANCi1zdGF0aWMgaW50IG1pcnJvcl9zdGF0dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1 c190eXBlX3QgdHlwZSwNCi0JCQkgY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBpbnQgbWF4bGVuKQ0K K3N0YXRpYyB2b2lkIG1pcnJvcl9zdGF0dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190 eXBlX3QgdHlwZSwNCisJCQkgIGNoYXIgKnJlc3VsdCwgdW5zaWduZWQgbWF4bGVuKQ0KIHsNCiAJ dW5zaWduZWQgaW50IG0sIHN6ID0gMDsNCiAJc3RydWN0IG1pcnJvcl9zZXQgKm1zID0gKHN0cnVj dCBtaXJyb3Jfc2V0ICopIHRpLT5wcml2YXRlOw0KQEAgLTEzOTQsOCArMTM5NCw2IEBAIHN0YXRp YyBpbnQgbWlycm9yX3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0 eXBlLA0KIAkJaWYgKG1zLT5mZWF0dXJlcyAmIERNX1JBSUQxX0hBTkRMRV9FUlJPUlMpDQogCQkJ RE1FTUlUKCIgMSBoYW5kbGVfZXJyb3JzIik7DQogCX0NCi0NCi0JcmV0dXJuIDA7DQogfQ0KIA0K IHN0YXRpYyBpbnQgbWlycm9yX2l0ZXJhdGVfZGV2aWNlcyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwN CkBAIC0xNDE0LDcgKzE0MTIsNyBAQCBzdGF0aWMgaW50IG1pcnJvcl9pdGVyYXRlX2RldmljZXMo c3RydWN0IGRtX3RhcmdldCAqdGksDQogDQogc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSBtaXJy b3JfdGFyZ2V0ID0gew0KIAkubmFtZQkgPSAibWlycm9yIiwNCi0JLnZlcnNpb24gPSB7MSwgMTIs IDF9LA0KKwkudmVyc2lvbiA9IHsxLCAxMiwgMn0sDQogCS5tb2R1bGUJID0gVEhJU19NT0RVTEUs DQogCS5jdHIJID0gbWlycm9yX2N0ciwNCiAJLmR0cgkgPSBtaXJyb3JfZHRyLA0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWQvZG0tc25hcC5jIGIvZHJpdmVycy9tZC9kbS1zbmFwLmMNCmluZGV4IDZm NzU4ODcuLjM0ZWMyYjUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21kL2RtLXNuYXAuYw0KKysrIGIv ZHJpdmVycy9tZC9kbS1zbmFwLmMNCkBAIC0xODQ1LDggKzE4NDUsOCBAQCBzdGF0aWMgdm9pZCBz bmFwc2hvdF9tZXJnZV9yZXN1bWUoc3RydWN0IGRtX3RhcmdldCAqdGkpDQogCXN0YXJ0X21lcmdl KHMpOw0KIH0NCiANCi1zdGF0aWMgaW50IHNuYXBzaG90X3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0 ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KLQkJCSAgIGNoYXIgKnJlc3VsdCwgdW5zaWduZWQg aW50IG1heGxlbikNCitzdGF0aWMgdm9pZCBzbmFwc2hvdF9zdGF0dXMoc3RydWN0IGRtX3Rhcmdl dCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCisJCQkgICAgY2hhciAqcmVzdWx0LCB1bnNpZ25l ZCBtYXhsZW4pDQogew0KIAl1bnNpZ25lZCBzeiA9IDA7DQogCXN0cnVjdCBkbV9zbmFwc2hvdCAq c25hcCA9IHRpLT5wcml2YXRlOw0KQEAgLTE4OTIsOCArMTg5Miw2IEBAIHN0YXRpYyBpbnQgc25h cHNob3Rfc3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLCBzdGF0dXNfdHlwZV90IHR5cGUsDQog CQkJCQkgIG1heGxlbiAtIHN6KTsNCiAJCWJyZWFrOw0KIAl9DQotDQotCXJldHVybiAwOw0KIH0N CiANCiBzdGF0aWMgaW50IHNuYXBzaG90X2l0ZXJhdGVfZGV2aWNlcyhzdHJ1Y3QgZG1fdGFyZ2V0 ICp0aSwNCkBAIC0yMTQ4LDggKzIxNDYsOCBAQCBzdGF0aWMgdm9pZCBvcmlnaW5fcmVzdW1lKHN0 cnVjdCBkbV90YXJnZXQgKnRpKQ0KIAl0aS0+c3BsaXRfaW8gPSBnZXRfb3JpZ2luX21pbmltdW1f Y2h1bmtzaXplKGRldi0+YmRldik7DQogfQ0KIA0KLXN0YXRpYyBpbnQgb3JpZ2luX3N0YXR1cyhz dHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLCBjaGFyICpyZXN1bHQsDQot CQkJIHVuc2lnbmVkIGludCBtYXhsZW4pDQorc3RhdGljIHZvaWQgb3JpZ2luX3N0YXR1cyhzdHJ1 Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KKwkJCSAgY2hhciAqcmVzdWx0 LCB1bnNpZ25lZCBtYXhsZW4pDQogew0KIAlzdHJ1Y3QgZG1fZGV2ICpkZXYgPSB0aS0+cHJpdmF0 ZTsNCiANCkBAIC0yMTYyLDggKzIxNjAsNiBAQCBzdGF0aWMgaW50IG9yaWdpbl9zdGF0dXMoc3Ry dWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwgY2hhciAqcmVzdWx0LA0KIAkJ c25wcmludGYocmVzdWx0LCBtYXhsZW4sICIlcyIsIGRldi0+bmFtZSk7DQogCQlicmVhazsNCiAJ fQ0KLQ0KLQlyZXR1cm4gMDsNCiB9DQogDQogc3RhdGljIGludCBvcmlnaW5fbWVyZ2Uoc3RydWN0 IGRtX3RhcmdldCAqdGksIHN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2bSwNCkBAIC0yMTkxLDcg KzIxODcsNyBAQCBzdGF0aWMgaW50IG9yaWdpbl9pdGVyYXRlX2RldmljZXMoc3RydWN0IGRtX3Rh cmdldCAqdGksDQogDQogc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSBvcmlnaW5fdGFyZ2V0ID0g ew0KIAkubmFtZSAgICA9ICJzbmFwc2hvdC1vcmlnaW4iLA0KLQkudmVyc2lvbiA9IHsxLCA3LCAx fSwNCisJLnZlcnNpb24gPSB7MSwgNywgMn0sDQogCS5tb2R1bGUgID0gVEhJU19NT0RVTEUsDQog CS5jdHIgICAgID0gb3JpZ2luX2N0ciwNCiAJLmR0ciAgICAgPSBvcmlnaW5fZHRyLA0KQEAgLTIy MDQsNyArMjIwMCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X3R5cGUgb3JpZ2luX3RhcmdldCA9 IHsNCiANCiBzdGF0aWMgc3RydWN0IHRhcmdldF90eXBlIHNuYXBzaG90X3RhcmdldCA9IHsNCiAJ Lm5hbWUgICAgPSAic25hcHNob3QiLA0KLQkudmVyc2lvbiA9IHsxLCAxMCwgMH0sDQorCS52ZXJz aW9uID0gezEsIDEwLCAxfSwNCiAJLm1vZHVsZSAgPSBUSElTX01PRFVMRSwNCiAJLmN0ciAgICAg PSBzbmFwc2hvdF9jdHIsDQogCS5kdHIgICAgID0gc25hcHNob3RfZHRyLA0KQEAgLTIzMjcsMyAr MjMyMyw1IEBAIG1vZHVsZV9leGl0KGRtX3NuYXBzaG90X2V4aXQpOw0KIE1PRFVMRV9ERVNDUklQ VElPTihETV9OQU1FICIgc25hcHNob3QgdGFyZ2V0Iik7DQogTU9EVUxFX0FVVEhPUigiSm9lIFRo b3JuYmVyIik7DQogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0KK01PRFVMRV9BTElBUygiZG0tc25h cHNob3Qtb3JpZ2luIik7DQorTU9EVUxFX0FMSUFTKCJkbS1zbmFwc2hvdC1tZXJnZSIpOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWQvZG0tc3RyaXBlLmMgYi9kcml2ZXJzL21kL2RtLXN0cmlwZS5j DQppbmRleCAzZDgwY2YwLi5jYmQ0MWQyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1zdHJp cGUuYw0KKysrIGIvZHJpdmVycy9tZC9kbS1zdHJpcGUuYw0KQEAgLTMwMSw4ICszMDEsOCBAQCBz dGF0aWMgaW50IHN0cmlwZV9tYXAoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0cnVjdCBiaW8gKmJp bywNCiAgKg0KICAqLw0KIA0KLXN0YXRpYyBpbnQgc3RyaXBlX3N0YXR1cyhzdHJ1Y3QgZG1fdGFy Z2V0ICp0aSwNCi0JCQkgc3RhdHVzX3R5cGVfdCB0eXBlLCBjaGFyICpyZXN1bHQsIHVuc2lnbmVk IGludCBtYXhsZW4pDQorc3RhdGljIHZvaWQgc3RyaXBlX3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0 ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KKwkJCSAgY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBt YXhsZW4pDQogew0KIAlzdHJ1Y3Qgc3RyaXBlX2MgKnNjID0gKHN0cnVjdCBzdHJpcGVfYyAqKSB0 aS0+cHJpdmF0ZTsNCiAJY2hhciBidWZmZXJbc2MtPnN0cmlwZXMgKyAxXTsNCkBAIC0zMjksNyAr MzI5LDYgQEAgc3RhdGljIGludCBzdHJpcGVfc3RhdHVzKHN0cnVjdCBkbV90YXJnZXQgKnRpLA0K IAkJCSAgICAodW5zaWduZWQgbG9uZyBsb25nKXNjLT5zdHJpcGVbaV0ucGh5c2ljYWxfc3RhcnQp Ow0KIAkJYnJlYWs7DQogCX0NCi0JcmV0dXJuIDA7DQogfQ0KIA0KIHN0YXRpYyBpbnQgc3RyaXBl X2VuZF9pbyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RydWN0IGJpbyAqYmlvLA0KQEAgLTQxOCw3 ICs0MTcsNyBAQCBzdGF0aWMgaW50IHN0cmlwZV9tZXJnZShzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwg c3RydWN0IGJ2ZWNfbWVyZ2VfZGF0YSAqYnZtLA0KIA0KIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X3R5 cGUgc3RyaXBlX3RhcmdldCA9IHsNCiAJLm5hbWUgICA9ICJzdHJpcGVkIiwNCi0JLnZlcnNpb24g PSB7MSwgNCwgMH0sDQorCS52ZXJzaW9uID0gezEsIDQsIDF9LA0KIAkubW9kdWxlID0gVEhJU19N T0RVTEUsDQogCS5jdHIgICAgPSBzdHJpcGVfY3RyLA0KIAkuZHRyICAgID0gc3RyaXBlX2R0ciwN CmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL2RtLXRoaW4uYyBiL2RyaXZlcnMvbWQvZG0tdGhpbi5j DQppbmRleCBkNDMyMDMyLi5kYTRkMjk5IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS10aGlu LmMNCisrKyBiL2RyaXZlcnMvbWQvZG0tdGhpbi5jDQpAQCAtMjA5MCw4ICsyMDkwLDggQEAgc3Rh dGljIGludCBwb29sX21lc3NhZ2Uoc3RydWN0IGRtX3RhcmdldCAqdGksIHVuc2lnbmVkIGFyZ2Ms IGNoYXIgKiphcmd2KQ0KICAqICAgIDx0cmFuc2FjdGlvbiBpZD4gPHVzZWQgbWV0YWRhdGEgc2Vj dG9ycz4vPHRvdGFsIG1ldGFkYXRhIHNlY3RvcnM+DQogICogICAgPHVzZWQgZGF0YSBzZWN0b3Jz Pi88dG90YWwgZGF0YSBzZWN0b3JzPiA8aGVsZCBtZXRhZGF0YSByb290Pg0KICAqLw0KLXN0YXRp YyBpbnQgcG9vbF9zdGF0dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlw ZSwNCi0JCSAgICAgICBjaGFyICpyZXN1bHQsIHVuc2lnbmVkIG1heGxlbikNCitzdGF0aWMgdm9p ZCBwb29sX3N0YXR1cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0K KwkJCWNoYXIgKnJlc3VsdCwgdW5zaWduZWQgbWF4bGVuKQ0KIHsNCiAJaW50IHI7DQogCXVuc2ln bmVkIHN6ID0gMDsNCkBAIC0yMTA4LDMyICsyMTA4LDQxIEBAIHN0YXRpYyBpbnQgcG9vbF9zdGF0 dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCiANCiAJc3dpdGNo ICh0eXBlKSB7DQogCWNhc2UgU1RBVFVTVFlQRV9JTkZPOg0KLQkJciA9IGRtX3Bvb2xfZ2V0X21l dGFkYXRhX3RyYW5zYWN0aW9uX2lkKHBvb2wtPnBtZCwNCi0JCQkJCQkJJnRyYW5zYWN0aW9uX2lk KTsNCi0JCWlmIChyKQ0KLQkJCXJldHVybiByOw0KKwkJciA9IGRtX3Bvb2xfZ2V0X21ldGFkYXRh X3RyYW5zYWN0aW9uX2lkKHBvb2wtPnBtZCwgJnRyYW5zYWN0aW9uX2lkKTsNCisJCWlmIChyKSB7 DQorCQkJRE1FUlIoImRtX3Bvb2xfZ2V0X21ldGFkYXRhX3RyYW5zYWN0aW9uX2lkIHJldHVybmVk ICVkIiwgcik7DQorCQkJZ290byBlcnI7DQorCQl9DQogDQotCQlyID0gZG1fcG9vbF9nZXRfZnJl ZV9tZXRhZGF0YV9ibG9ja19jb3VudChwb29sLT5wbWQsDQotCQkJCQkJCSAgJm5yX2ZyZWVfYmxv Y2tzX21ldGFkYXRhKTsNCi0JCWlmIChyKQ0KLQkJCXJldHVybiByOw0KKwkJciA9IGRtX3Bvb2xf Z2V0X2ZyZWVfbWV0YWRhdGFfYmxvY2tfY291bnQocG9vbC0+cG1kLCAmbnJfZnJlZV9ibG9ja3Nf bWV0YWRhdGEpOw0KKwkJaWYgKHIpIHsNCisJCQlETUVSUigiZG1fcG9vbF9nZXRfZnJlZV9tZXRh ZGF0YV9ibG9ja19jb3VudCByZXR1cm5lZCAlZCIsIHIpOw0KKwkJCWdvdG8gZXJyOw0KKwkJfQ0K IA0KIAkJciA9IGRtX3Bvb2xfZ2V0X21ldGFkYXRhX2Rldl9zaXplKHBvb2wtPnBtZCwgJm5yX2Js b2Nrc19tZXRhZGF0YSk7DQotCQlpZiAocikNCi0JCQlyZXR1cm4gcjsNCisJCWlmIChyKSB7DQor CQkJRE1FUlIoImRtX3Bvb2xfZ2V0X21ldGFkYXRhX2Rldl9zaXplIHJldHVybmVkICVkIiwgcik7 DQorCQkJZ290byBlcnI7DQorCQl9DQogDQotCQlyID0gZG1fcG9vbF9nZXRfZnJlZV9ibG9ja19j b3VudChwb29sLT5wbWQsDQotCQkJCQkJICZucl9mcmVlX2Jsb2Nrc19kYXRhKTsNCi0JCWlmIChy KQ0KLQkJCXJldHVybiByOw0KKwkJciA9IGRtX3Bvb2xfZ2V0X2ZyZWVfYmxvY2tfY291bnQocG9v bC0+cG1kLCAmbnJfZnJlZV9ibG9ja3NfZGF0YSk7DQorCQlpZiAocikgew0KKwkJCURNRVJSKCJk bV9wb29sX2dldF9mcmVlX2Jsb2NrX2NvdW50IHJldHVybmVkICVkIiwgcik7DQorCQkJZ290byBl cnI7DQorCQl9DQogDQogCQlyID0gZG1fcG9vbF9nZXRfZGF0YV9kZXZfc2l6ZShwb29sLT5wbWQs ICZucl9ibG9ja3NfZGF0YSk7DQotCQlpZiAocikNCi0JCQlyZXR1cm4gcjsNCisJCWlmIChyKSB7 DQorCQkJRE1FUlIoImRtX3Bvb2xfZ2V0X2RhdGFfZGV2X3NpemUgcmV0dXJuZWQgJWQiLCByKTsN CisJCQlnb3RvIGVycjsNCisJCX0NCiANCiAJCXIgPSBkbV9wb29sX2dldF9oZWxkX21ldGFkYXRh X3Jvb3QocG9vbC0+cG1kLCAmaGVsZF9yb290KTsNCi0JCWlmIChyKQ0KLQkJCXJldHVybiByOw0K KwkJaWYgKHIpIHsNCisJCQlETUVSUigiZG1fcG9vbF9nZXRfaGVsZF9tZXRhZGF0YV9yb290IHJl dHVybmVkICVkIiwgcik7DQorCQkJZ290byBlcnI7DQorCQl9DQogDQogCQlETUVNSVQoIiVsbHUg JWxsdS8lbGx1ICVsbHUvJWxsdSAiLA0KIAkJICAgICAgICh1bnNpZ25lZCBsb25nIGxvbmcpdHJh bnNhY3Rpb25faWQsDQpAQCAtMjE2Miw4ICsyMTcxLDEwIEBAIHN0YXRpYyBpbnQgcG9vbF9zdGF0 dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCiAJCQlETUVNSVQo InNraXBfYmxvY2tfemVyb2luZyAiKTsNCiAJCWJyZWFrOw0KIAl9DQorCXJldHVybjsNCiANCi0J cmV0dXJuIDA7DQorZXJyOg0KKwlETUVNSVQoIkVycm9yIik7DQogfQ0KIA0KIHN0YXRpYyBpbnQg cG9vbF9pdGVyYXRlX2RldmljZXMoc3RydWN0IGRtX3RhcmdldCAqdGksDQpAQCAtMjIwMSw3ICsy MjEyLDcgQEAgc3RhdGljIHN0cnVjdCB0YXJnZXRfdHlwZSBwb29sX3RhcmdldCA9IHsNCiAJLm5h bWUgPSAidGhpbi1wb29sIiwNCiAJLmZlYXR1cmVzID0gRE1fVEFSR0VUX1NJTkdMRVRPTiB8IERN X1RBUkdFVF9BTFdBWVNfV1JJVEVBQkxFIHwNCiAJCSAgICBETV9UQVJHRVRfSU1NVVRBQkxFLA0K LQkudmVyc2lvbiA9IHsxLCAwLCAwfSwNCisJLnZlcnNpb24gPSB7MSwgMCwgMX0sDQogCS5tb2R1 bGUgPSBUSElTX01PRFVMRSwNCiAJLmN0ciA9IHBvb2xfY3RyLA0KIAkuZHRyID0gcG9vbF9kdHIs DQpAQCAtMjMzOSw4ICsyMzUwLDggQEAgc3RhdGljIHZvaWQgdGhpbl9wb3N0c3VzcGVuZChzdHJ1 Y3QgZG1fdGFyZ2V0ICp0aSkNCiAvKg0KICAqIDxuciBtYXBwZWQgc2VjdG9ycz4gPGhpZ2hlc3Qg bWFwcGVkIHNlY3Rvcj4NCiAgKi8NCi1zdGF0aWMgaW50IHRoaW5fc3RhdHVzKHN0cnVjdCBkbV90 YXJnZXQgKnRpLCBzdGF0dXNfdHlwZV90IHR5cGUsDQotCQkgICAgICAgY2hhciAqcmVzdWx0LCB1 bnNpZ25lZCBtYXhsZW4pDQorc3RhdGljIHZvaWQgdGhpbl9zdGF0dXMoc3RydWN0IGRtX3Rhcmdl dCAqdGksIHN0YXR1c190eXBlX3QgdHlwZSwNCisJCQljaGFyICpyZXN1bHQsIHVuc2lnbmVkIG1h eGxlbikNCiB7DQogCWludCByOw0KIAlzc2l6ZV90IHN6ID0gMDsNCkBAIC0yMzU0LDEyICsyMzY1 LDE2IEBAIHN0YXRpYyBpbnQgdGhpbl9zdGF0dXMoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1 c190eXBlX3QgdHlwZSwNCiAJCXN3aXRjaCAodHlwZSkgew0KIAkJY2FzZSBTVEFUVVNUWVBFX0lO Rk86DQogCQkJciA9IGRtX3RoaW5fZ2V0X21hcHBlZF9jb3VudCh0Yy0+dGQsICZtYXBwZWQpOw0K LQkJCWlmIChyKQ0KLQkJCQlyZXR1cm4gcjsNCisJCQlpZiAocikgew0KKwkJCQlETUVSUigiZG1f dGhpbl9nZXRfbWFwcGVkX2NvdW50IHJldHVybmVkICVkIiwgcik7DQorCQkJCWdvdG8gZXJyOw0K KwkJCX0NCiANCiAJCQlyID0gZG1fdGhpbl9nZXRfaGlnaGVzdF9tYXBwZWRfYmxvY2sodGMtPnRk LCAmaGlnaGVzdCk7DQotCQkJaWYgKHIgPCAwKQ0KLQkJCQlyZXR1cm4gcjsNCisJCQlpZiAociA8 IDApIHsNCisJCQkJRE1FUlIoImRtX3RoaW5fZ2V0X2hpZ2hlc3RfbWFwcGVkX2Jsb2NrIHJldHVy bmVkICVkIiwgcik7DQorCQkJCWdvdG8gZXJyOw0KKwkJCX0NCiANCiAJCQlETUVNSVQoIiVsbHUg IiwgbWFwcGVkICogdGMtPnBvb2wtPnNlY3RvcnNfcGVyX2Jsb2NrKTsNCiAJCQlpZiAocikNCkBA IC0yMzc3LDcgKzIzOTIsMTAgQEAgc3RhdGljIGludCB0aGluX3N0YXR1cyhzdHJ1Y3QgZG1fdGFy Z2V0ICp0aSwgc3RhdHVzX3R5cGVfdCB0eXBlLA0KIAkJfQ0KIAl9DQogDQotCXJldHVybiAwOw0K KwlyZXR1cm47DQorDQorZXJyOg0KKwlETUVNSVQoIkVycm9yIik7DQogfQ0KIA0KIHN0YXRpYyBp bnQgdGhpbl9pdGVyYXRlX2RldmljZXMoc3RydWN0IGRtX3RhcmdldCAqdGksDQpAQCAtMjQxMCw3 ICsyNDI4LDcgQEAgc3RhdGljIHZvaWQgdGhpbl9pb19oaW50cyhzdHJ1Y3QgZG1fdGFyZ2V0ICp0 aSwgc3RydWN0IHF1ZXVlX2xpbWl0cyAqbGltaXRzKQ0KIA0KIHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0 X3R5cGUgdGhpbl90YXJnZXQgPSB7DQogCS5uYW1lID0gInRoaW4iLA0KLQkudmVyc2lvbiA9IHsx LCAwLCAwfSwNCisJLnZlcnNpb24gPSB7MSwgMCwgMX0sDQogCS5tb2R1bGUJPSBUSElTX01PRFVM RSwNCiAJLmN0ciA9IHRoaW5fY3RyLA0KIAkuZHRyID0gdGhpbl9kdHIsDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tZC9tZC5jIGIvZHJpdmVycy9tZC9tZC5jDQppbmRleCAxNDVlMzc4ZS4uMTcwMjEz MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWQvbWQuYw0KKysrIGIvZHJpdmVycy9tZC9tZC5jDQpA QCAtMzQ1LDYgKzM0NSwxMCBAQCBzdGF0aWMgdm9pZCBtZF9tYWtlX3JlcXVlc3Qoc3RydWN0IHJl cXVlc3RfcXVldWUgKnEsIHN0cnVjdCBiaW8gKmJpbykNCiAJCWJpb19pb19lcnJvcihiaW8pOw0K IAkJcmV0dXJuOw0KIAl9DQorCWlmIChtZGRldi0+cm8gPT0gMSAmJiB1bmxpa2VseShydyA9PSBX UklURSkpIHsNCisJCWJpb19lbmRpbyhiaW8sIGJpb19zZWN0b3JzKGJpbykgPT0gMCA/IDAgOiAt RVJPRlMpOw0KKwkJcmV0dXJuOw0KKwl9DQogCXNtcF9ybWIoKTsgLyogRW5zdXJlIGltcGxpY2F0 aW9ucyBvZiAgJ2FjdGl2ZScgYXJlIHZpc2libGUgKi8NCiAJcmN1X3JlYWRfbG9jaygpOw0KIAlp ZiAobWRkZXYtPnN1c3BlbmRlZCkgew0KQEAgLTI4MzgsNiArMjg0Miw5IEBAIHJkZXZfc2l6ZV9z dG9yZShzdHJ1Y3QgbWRfcmRldiAqcmRldiwgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgbGVuKQ0K IAkJfSBlbHNlIGlmICghc2VjdG9ycykNCiAJCQlzZWN0b3JzID0gKGlfc2l6ZV9yZWFkKHJkZXYt PmJkZXYtPmJkX2lub2RlKSA+PiA5KSAtDQogCQkJCXJkZXYtPmRhdGFfb2Zmc2V0Ow0KKwkJaWYg KCFteV9tZGRldi0+cGVycy0+cmVzaXplKQ0KKwkJCS8qIENhbm5vdCBjaGFuZ2Ugc2l6ZSBmb3Ig UkFJRDAgb3IgTGluZWFyIGV0YyAqLw0KKwkJCXJldHVybiAtRUlOVkFMOw0KIAl9DQogCWlmIChz ZWN0b3JzIDwgbXlfbWRkZXYtPmRldl9zZWN0b3JzKQ0KIAkJcmV0dXJuIC1FSU5WQUw7IC8qIGNv bXBvbmVudCBtdXN0IGZpdCBkZXZpY2UgKi8NCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL3JhaWQw LmMgYi9kcml2ZXJzL21kL3JhaWQwLmMNCmluZGV4IDcyOTRiZDEuLmQzZTZmMzUgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL21kL3JhaWQwLmMNCisrKyBiL2RyaXZlcnMvbWQvcmFpZDAuYw0KQEAgLTI4 Niw3ICsyODYsNyBAQCBhYm9ydDoNCiAJa2ZyZWUoY29uZi0+c3RyaXBfem9uZSk7DQogCWtmcmVl KGNvbmYtPmRldmxpc3QpOw0KIAlrZnJlZShjb25mKTsNCi0JKnByaXZhdGVfY29uZiA9IE5VTEw7 DQorCSpwcml2YXRlX2NvbmYgPSBFUlJfUFRSKGVycik7DQogCXJldHVybiBlcnI7DQogfQ0KIA0K QEAgLTMzMCw3ICszMzAsOCBAQCBzdGF0aWMgc2VjdG9yX3QgcmFpZDBfc2l6ZShzdHJ1Y3QgbWRk ZXYgKm1kZGV2LCBzZWN0b3JfdCBzZWN0b3JzLCBpbnQgcmFpZF9kaXNrcw0KIAkJICAiJXMgZG9l cyBub3Qgc3VwcG9ydCBnZW5lcmljIHJlc2hhcGVcbiIsIF9fZnVuY19fKTsNCiANCiAJbGlzdF9m b3JfZWFjaF9lbnRyeShyZGV2LCAmbWRkZXYtPmRpc2tzLCBzYW1lX3NldCkNCi0JCWFycmF5X3Nl Y3RvcnMgKz0gcmRldi0+c2VjdG9yczsNCisJCWFycmF5X3NlY3RvcnMgKz0gKHJkZXYtPnNlY3Rv cnMgJg0KKwkJCQkgIH4oc2VjdG9yX3QpKG1kZGV2LT5jaHVua19zZWN0b3JzLTEpKTsNCiANCiAJ cmV0dXJuIGFycmF5X3NlY3RvcnM7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L2ludGVsL2UxMDAwZS9uZXRkZXYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2Ux MDAwZS9uZXRkZXYuYw0KaW5kZXggMDE4MjY0OS4uYTc4MzUzMCAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ludGVsL2UxMDAwZS9uZXRkZXYuYw0KKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvaW50ZWwvZTEwMDBlL25ldGRldi5jDQpAQCAtNTQwMiw3ICs1NDAyLDcgQEAgc3Rh dGljIGludCBfX2UxMDAwX3NodXRkb3duKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBib29sICplbmFi bGVfd2FrZSwNCiAJICovDQogCWUxMDAwZV9yZWxlYXNlX2h3X2NvbnRyb2woYWRhcHRlcik7DQog DQotCXBjaV9kaXNhYmxlX2RldmljZShwZGV2KTsNCisJcGNpX2NsZWFyX21hc3RlcihwZGV2KTsN CiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0 aC9hdGg5ay9jb21tb24uaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9jb21tb24u aA0KaW5kZXggYWQxNGZlYy4uZjFjMzJhNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL2F0aC9hdGg5ay9jb21tb24uaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0 aDlrL2NvbW1vbi5oDQpAQCAtMzUsNyArMzUsNyBAQA0KICNkZWZpbmUgV01FX0FDX0JLICAgMw0K ICNkZWZpbmUgV01FX05VTV9BQyAgNA0KIA0KLSNkZWZpbmUgQVRIX1JTU0lfRFVNTVlfTUFSS0VS ICAgMHgxMjcNCisjZGVmaW5lIEFUSF9SU1NJX0RVTU1ZX01BUktFUiAgIDEyNw0KICNkZWZpbmUg QVRIX1JTU0lfTFBGX0xFTiAJCTEwDQogI2RlZmluZSBSU1NJX0xQRl9USFJFU0hPTEQJCS0yMA0K ICNkZWZpbmUgQVRIX1JTU0lfRVBfTVVMVElQTElFUiAgICAgKDE8PDcpDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Yy5oIGIvZHJpdmVycy9uZXQvd2lyZWxl c3MvYXRoL2F0aDlrL2h0Yy5oDQppbmRleCBkYTU1OTY3Li4wOWJlNDA3IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h0Yy5oDQorKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoOWsvaHRjLmgNCkBAIC0yMiw2ICsyMiw3IEBADQogI2luY2x1ZGUgPGxp bnV4L2Zpcm13YXJlLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NrYnVmZi5oPg0KICNpbmNsdWRlIDxs aW51eC9uZXRkZXZpY2UuaD4NCisjaW5jbHVkZSA8bGludXgvZXRoZXJkZXZpY2UuaD4NCiAjaW5j bHVkZSA8bGludXgvbGVkcy5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQogI2luY2x1ZGUg PG5ldC9tYWM4MDIxMS5oPg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGg5ay9odGNfZHJ2X3R4cnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNf ZHJ2X3R4cnguYw0KaW5kZXggMmQ4MWM3MC4uYTQ4YmI4MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9odGNfZHJ2X3R4cnguYw0KKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvYXRoL2F0aDlrL2h0Y19kcnZfdHhyeC5jDQpAQCAtMTA2OSwxNSArMTA2OSwxOSBA QCBzdGF0aWMgYm9vbCBhdGg5a19yeF9wcmVwYXJlKHN0cnVjdCBhdGg5a19odGNfcHJpdiAqcHJp diwNCiANCiAJbGFzdF9yc3NpID0gcHJpdi0+cngubGFzdF9yc3NpOw0KIA0KLQlpZiAobGlrZWx5 KGxhc3RfcnNzaSAhPSBBVEhfUlNTSV9EVU1NWV9NQVJLRVIpKQ0KLQkJcnhidWYtPnJ4c3RhdHVz LnJzX3Jzc2kgPSBBVEhfRVBfUk5EKGxhc3RfcnNzaSwNCi0JCQkJCQkgICAgIEFUSF9SU1NJX0VQ X01VTFRJUExJRVIpOw0KKwlpZiAoaWVlZTgwMjExX2lzX2JlYWNvbihoZHItPmZyYW1lX2NvbnRy b2wpICYmDQorCSAgICAhaXNfemVyb19ldGhlcl9hZGRyKGNvbW1vbi0+Y3VyYnNzaWQpICYmDQor CSAgICBjb21wYXJlX2V0aGVyX2FkZHIoaGRyLT5hZGRyMywgY29tbW9uLT5jdXJic3NpZCkgPT0g MCkgew0KKwkJczggcnNzaSA9IHJ4YnVmLT5yeHN0YXR1cy5yc19yc3NpOw0KIA0KLQlpZiAocnhi dWYtPnJ4c3RhdHVzLnJzX3Jzc2kgPCAwKQ0KLQkJcnhidWYtPnJ4c3RhdHVzLnJzX3Jzc2kgPSAw Ow0KKwkJaWYgKGxpa2VseShsYXN0X3Jzc2kgIT0gQVRIX1JTU0lfRFVNTVlfTUFSS0VSKSkNCisJ CQlyc3NpID0gQVRIX0VQX1JORChsYXN0X3Jzc2ksIEFUSF9SU1NJX0VQX01VTFRJUExJRVIpOw0K IA0KLQlpZiAoaWVlZTgwMjExX2lzX2JlYWNvbihmYykpDQotCQlwcml2LT5haC0+c3RhdHMuYXZn YnJzc2kgPSByeGJ1Zi0+cnhzdGF0dXMucnNfcnNzaTsNCisJCWlmIChyc3NpIDwgMCkNCisJCQly c3NpID0gMDsNCisNCisJCXByaXYtPmFoLT5zdGF0cy5hdmdicnNzaSA9IHJzc2k7DQorCX0NCiAN CiAJcnhfc3RhdHVzLT5tYWN0aW1lID0gYmU2NF90b19jcHUocnhidWYtPnJ4c3RhdHVzLnJzX3Rz dGFtcCk7DQogCXJ4X3N0YXR1cy0+YmFuZCA9IGh3LT5jb25mLmNoYW5uZWwtPmJhbmQ7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtdHJhbnMtcGNpZS1pbnQu aCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLXRyYW5zLXBjaWUtaW50LmgNCmlu ZGV4IDg1MzNiYTIuLmYwODFkNTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9p d2x3aWZpL2l3bC10cmFucy1wY2llLWludC5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9p d2x3aWZpL2l3bC10cmFucy1wY2llLWludC5oDQpAQCAtMTgwLDYgKzE4MCwxNSBAQCBzdHJ1Y3Qg aXdsX3F1ZXVlIHsNCiAjZGVmaW5lIFRGRF9UWF9DTURfU0xPVFMgMjU2DQogI2RlZmluZSBURkRf Q01EX1NMT1RTIDMyDQogDQorLyoNCisgKiBUaGUgRkggd2lsbCB3cml0ZSBiYWNrIHRvIHRoZSBm aXJzdCBUQiBvbmx5LCBzbyB3ZSBuZWVkDQorICogdG8gY29weSBzb21lIGRhdGEgaW50byB0aGUg YnVmZmVyIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlcg0KKyAqIGl0IHNob3VsZCBiZSBtYXBwZWQgb3Ig bm90LiBUaGlzIGluZGljYXRlcyBob3cgbXVjaCB0bw0KKyAqIGNvcHksIGV2ZW4gZm9yIEhDTURz IGl0IG11c3QgYmUgYmlnIGVub3VnaCB0byBmaXQgdGhlDQorICogRFJBTSBzY3JhdGNoIGZyb20g dGhlIFRYIGNtZCwgYXQgbGVhc3QgMTYgYnl0ZXMuDQorICovDQorI2RlZmluZSBJV0xfSENNRF9N SU5fQ09QWV9TSVpFCTE2DQorDQogc3RydWN0IGl3bF90eF9xdWV1ZSB7DQogCXN0cnVjdCBpd2xf cXVldWUgcTsNCiAJc3RydWN0IGl3bF90ZmQgKnRmZHM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtdHJhbnMtcGNpZS10eC5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvaXdsd2lmaS9pd2wtdHJhbnMtcGNpZS10eC5jDQppbmRleCA0YTBjOTUzLi5lNmIzODUz IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtdHJhbnMtcGNp ZS10eC5jDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pd2x3aWZpL2l3bC10cmFucy1wY2ll LXR4LmMNCkBAIC02ODgsMTEgKzY4OCwxMyBAQCBzdGF0aWMgaW50IGl3bF9lbnF1ZXVlX2hjbWQo c3RydWN0IGl3bF90cmFucyAqdHJhbnMsIHN0cnVjdCBpd2xfaG9zdF9jbWQgKmNtZCkNCiAJZG1h X2FkZHJfdCBwaHlzX2FkZHI7DQogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQogCXUzMiBpZHg7DQot CXUxNiBjb3B5X3NpemUsIGNtZF9zaXplOw0KKwl1MTYgY29weV9zaXplLCBjbWRfc2l6ZSwgZG1h X3NpemU7DQogCWJvb2wgaXNfY3Rfa2lsbCA9IGZhbHNlOw0KIAlib29sIGhhZF9ub2NvcHkgPSBm YWxzZTsNCiAJaW50IGk7DQogCXU4ICpjbWRfZGVzdDsNCisJY29uc3QgdTggKmNtZGRhdGFbSVdM X01BWF9DTURfVEZEU107DQorCXUxNiBjbWRsZW5bSVdMX01BWF9DTURfVEZEU107DQogI2lmZGVm IENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HDQogCWNvbnN0IHZvaWQgKnRyYWNlX2J1ZnNb SVdMX01BWF9DTURfVEZEUyArIDFdID0ge307DQogCWludCB0cmFjZV9sZW5zW0lXTF9NQVhfQ01E X1RGRFMgKyAxXSA9IHt9Ow0KQEAgLTcxNywxNSArNzE5LDMwIEBAIHN0YXRpYyBpbnQgaXdsX2Vu cXVldWVfaGNtZChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucywgc3RydWN0IGl3bF9ob3N0X2NtZCAq Y21kKQ0KIAlCVUlMRF9CVUdfT04oSVdMX01BWF9DTURfVEZEUyA+IElXTF9OVU1fT0ZfVEJTIC0g MSk7DQogDQogCWZvciAoaSA9IDA7IGkgPCBJV0xfTUFYX0NNRF9URkRTOyBpKyspIHsNCisJCWNt ZGRhdGFbaV0gPSBjbWQtPmRhdGFbaV07DQorCQljbWRsZW5baV0gPSBjbWQtPmxlbltpXTsNCisN CiAJCWlmICghY21kLT5sZW5baV0pDQogCQkJY29udGludWU7DQorDQorCQkvKiBuZWVkIGF0IGxl YXN0IElXTF9IQ01EX01JTl9DT1BZX1NJWkUgY29waWVkICovDQorCQlpZiAoY29weV9zaXplIDwg SVdMX0hDTURfTUlOX0NPUFlfU0laRSkgew0KKwkJCWludCBjb3B5ID0gSVdMX0hDTURfTUlOX0NP UFlfU0laRSAtIGNvcHlfc2l6ZTsNCisNCisJCQlpZiAoY29weSA+IGNtZGxlbltpXSkNCisJCQkJ Y29weSA9IGNtZGxlbltpXTsNCisJCQljbWRsZW5baV0gLT0gY29weTsNCisJCQljbWRkYXRhW2ld ICs9IGNvcHk7DQorCQkJY29weV9zaXplICs9IGNvcHk7DQorCQl9DQorDQogCQlpZiAoY21kLT5k YXRhZmxhZ3NbaV0gJiBJV0xfSENNRF9ERkxfTk9DT1BZKSB7DQogCQkJaGFkX25vY29weSA9IHRy dWU7DQogCQl9IGVsc2Ugew0KIAkJCS8qIE5PQ09QWSBtdXN0IG5vdCBiZSBmb2xsb3dlZCBieSBu b3JtYWwhICovDQogCQkJaWYgKFdBUk5fT04oaGFkX25vY29weSkpDQogCQkJCXJldHVybiAtRUlO VkFMOw0KLQkJCWNvcHlfc2l6ZSArPSBjbWQtPmxlbltpXTsNCisJCQljb3B5X3NpemUgKz0gY21k bGVuW2ldOw0KIAkJfQ0KIAkJY21kX3NpemUgKz0gY21kLT5sZW5baV07DQogCX0NCkBAIC03Nzgs MTMgKzc5NSwzMCBAQCBzdGF0aWMgaW50IGl3bF9lbnF1ZXVlX2hjbWQoc3RydWN0IGl3bF90cmFu cyAqdHJhbnMsIHN0cnVjdCBpd2xfaG9zdF9jbWQgKmNtZCkNCiAJLyogYW5kIGNvcHkgdGhlIGRh dGEgdGhhdCBuZWVkcyB0byBiZSBjb3BpZWQgKi8NCiANCiAJY21kX2Rlc3QgPSBvdXRfY21kLT5w YXlsb2FkOw0KKwljb3B5X3NpemUgPSBzaXplb2Yob3V0X2NtZC0+aGRyKTsNCiAJZm9yIChpID0g MDsgaSA8IElXTF9NQVhfQ01EX1RGRFM7IGkrKykgew0KLQkJaWYgKCFjbWQtPmxlbltpXSkNCisJ CWludCBjb3B5ID0gMDsNCisNCisJCWlmICghY21kLT5sZW4pDQogCQkJY29udGludWU7DQotCQlp ZiAoY21kLT5kYXRhZmxhZ3NbaV0gJiBJV0xfSENNRF9ERkxfTk9DT1BZKQ0KLQkJCWJyZWFrOw0K LQkJbWVtY3B5KGNtZF9kZXN0LCBjbWQtPmRhdGFbaV0sIGNtZC0+bGVuW2ldKTsNCi0JCWNtZF9k ZXN0ICs9IGNtZC0+bGVuW2ldOw0KKw0KKwkJLyogbmVlZCBhdCBsZWFzdCBJV0xfSENNRF9NSU5f Q09QWV9TSVpFIGNvcGllZCAqLw0KKwkJaWYgKGNvcHlfc2l6ZSA8IElXTF9IQ01EX01JTl9DT1BZ X1NJWkUpIHsNCisJCQljb3B5ID0gSVdMX0hDTURfTUlOX0NPUFlfU0laRSAtIGNvcHlfc2l6ZTsN CisNCisJCQlpZiAoY29weSA+IGNtZC0+bGVuW2ldKQ0KKwkJCQljb3B5ID0gY21kLT5sZW5baV07 DQorCQl9DQorDQorCQkvKiBjb3B5IGV2ZXJ5dGhpbmcgaWYgbm90IG5vY29weS9kdXAgKi8NCisJ CWlmICghKGNtZC0+ZGF0YWZsYWdzW2ldICYgSVdMX0hDTURfREZMX05PQ09QWSkpDQorCQkJY29w eSA9IGNtZC0+bGVuW2ldOw0KKw0KKwkJaWYgKGNvcHkpIHsNCisJCQltZW1jcHkoY21kX2Rlc3Qs IGNtZC0+ZGF0YVtpXSwgY29weSk7DQorCQkJY21kX2Rlc3QgKz0gY29weTsNCisJCQljb3B5X3Np emUgKz0gY29weTsNCisJCX0NCiAJfQ0KIA0KIAlJV0xfREVCVUdfSEModHJhbnMsICJTZW5kaW5n IGNvbW1hbmQgJXMgKCMleCksIHNlcTogMHglMDRYLCAiDQpAQCAtNzk0LDcgKzgyOCwxNCBAQCBz dGF0aWMgaW50IGl3bF9lbnF1ZXVlX2hjbWQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIHN0cnVj dCBpd2xfaG9zdF9jbWQgKmNtZCkNCiAJCQlsZTE2X3RvX2NwdShvdXRfY21kLT5oZHIuc2VxdWVu Y2UpLCBjbWRfc2l6ZSwNCiAJCQlxLT53cml0ZV9wdHIsIGlkeCwgdHJhbnMtPnNocmQtPmNtZF9x dWV1ZSk7DQogDQotCXBoeXNfYWRkciA9IGRtYV9tYXBfc2luZ2xlKGJ1cyh0cmFucyktPmRldiwg Jm91dF9jbWQtPmhkciwgY29weV9zaXplLA0KKwkvKg0KKwkgKiBJZiB0aGUgZW50aXJlIGNvbW1h bmQgaXMgc21hbGxlciB0aGFuIElXTF9IQ01EX01JTl9DT1BZX1NJWkUsIHdlIG11c3QNCisJICog c3RpbGwgbWFwIGF0IGxlYXN0IHRoYXQgbWFueSBieXRlcyBmb3IgdGhlIGhhcmR3YXJlIHRvIHdy aXRlIGJhY2sgdG8uDQorCSAqIFdlIGhhdmUgZW5vdWdoIHNwYWNlLCBzbyB0aGF0J3Mgbm90IGEg cHJvYmxlbS4NCisJICovDQorCWRtYV9zaXplID0gbWF4X3QodTE2LCBjb3B5X3NpemUsIElXTF9I Q01EX01JTl9DT1BZX1NJWkUpOw0KKw0KKwlwaHlzX2FkZHIgPSBkbWFfbWFwX3NpbmdsZShidXMo dHJhbnMpLT5kZXYsICZvdXRfY21kLT5oZHIsIGRtYV9zaXplLA0KIAkJCQlETUFfQklESVJFQ1RJ T05BTCk7DQogCWlmICh1bmxpa2VseShkbWFfbWFwcGluZ19lcnJvcihidXModHJhbnMpLT5kZXYs IHBoeXNfYWRkcikpKSB7DQogCQlpZHggPSAtRU5PTUVNOw0KQEAgLTgwMiw3ICs4NDMsNyBAQCBz dGF0aWMgaW50IGl3bF9lbnF1ZXVlX2hjbWQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIHN0cnVj dCBpd2xfaG9zdF9jbWQgKmNtZCkNCiAJfQ0KIA0KIAlkbWFfdW5tYXBfYWRkcl9zZXQob3V0X21l dGEsIG1hcHBpbmcsIHBoeXNfYWRkcik7DQotCWRtYV91bm1hcF9sZW5fc2V0KG91dF9tZXRhLCBs ZW4sIGNvcHlfc2l6ZSk7DQorCWRtYV91bm1hcF9sZW5fc2V0KG91dF9tZXRhLCBsZW4sIGRtYV9z aXplKTsNCiANCiAJaXdsYWduX3R4cV9hdHRhY2hfYnVmX3RvX3RmZCh0cmFucywgdHhxLA0KIAkJ CQkJcGh5c19hZGRyLCBjb3B5X3NpemUsIDEpOw0KQEAgLTgxMiwxNCArODUzLDE1IEBAIHN0YXRp YyBpbnQgaXdsX2VucXVldWVfaGNtZChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucywgc3RydWN0IGl3 bF9ob3N0X2NtZCAqY21kKQ0KIAl0cmFjZV9pZHggPSAxOw0KICNlbmRpZg0KIA0KKwkvKiBtYXAg dGhlIHJlbWFpbmluZyAoYWRqdXN0ZWQpIG5vY29weS9kdXAgZnJhZ21lbnRzICovDQogCWZvciAo aSA9IDA7IGkgPCBJV0xfTUFYX0NNRF9URkRTOyBpKyspIHsNCi0JCWlmICghY21kLT5sZW5baV0p DQorCQlpZiAoIWNtZGxlbltpXSkNCiAJCQljb250aW51ZTsNCiAJCWlmICghKGNtZC0+ZGF0YWZs YWdzW2ldICYgSVdMX0hDTURfREZMX05PQ09QWSkpDQogCQkJY29udGludWU7DQogCQlwaHlzX2Fk ZHIgPSBkbWFfbWFwX3NpbmdsZShidXModHJhbnMpLT5kZXYsDQotCQkJCQkgICAodm9pZCAqKWNt ZC0+ZGF0YVtpXSwNCi0JCQkJCSAgIGNtZC0+bGVuW2ldLCBETUFfQklESVJFQ1RJT05BTCk7DQor CQkJCQkgICAodm9pZCAqKWNtZGRhdGFbaV0sDQorCQkJCQkgICBjbWRsZW5baV0sIERNQV9CSURJ UkVDVElPTkFMKTsNCiAJCWlmIChkbWFfbWFwcGluZ19lcnJvcihidXModHJhbnMpLT5kZXYsIHBo eXNfYWRkcikpIHsNCiAJCQlpd2xhZ25fdW5tYXBfdGZkKHRyYW5zLCBvdXRfbWV0YSwNCiAJCQkJ CSAmdHhxLT50ZmRzW3EtPndyaXRlX3B0cl0sDQpAQCAtODI5LDEwICs4NzEsMTAgQEAgc3RhdGlj IGludCBpd2xfZW5xdWV1ZV9oY21kKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLCBzdHJ1Y3QgaXds X2hvc3RfY21kICpjbWQpDQogCQl9DQogDQogCQlpd2xhZ25fdHhxX2F0dGFjaF9idWZfdG9fdGZk KHRyYW5zLCB0eHEsIHBoeXNfYWRkciwNCi0JCQkJCSAgICAgY21kLT5sZW5baV0sIDApOw0KKwkJ CQkJICAgICBjbWRsZW5baV0sIDApOw0KICNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJB Q0lORw0KLQkJdHJhY2VfYnVmc1t0cmFjZV9pZHhdID0gY21kLT5kYXRhW2ldOw0KLQkJdHJhY2Vf bGVuc1t0cmFjZV9pZHhdID0gY21kLT5sZW5baV07DQorCQl0cmFjZV9idWZzW3RyYWNlX2lkeF0g PSBjbWRkYXRhW2ldOw0KKwkJdHJhY2VfbGVuc1t0cmFjZV9pZHhdID0gY21kbGVuW2ldOw0KIAkJ dHJhY2VfaWR4Kys7DQogI2VuZGlmDQogCX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9td2lmaWV4L3BjaWUuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvcGNpZS5j DQppbmRleCBkZTk0MjQ0Li4zY2Y0ZWNjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvbXdpZmlleC9wY2llLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL213aWZpZXgvcGNp ZS5jDQpAQCAtMjkwLDcgKzI5MCw3IEBAIHN0YXRpYyBpbnQgbXdpZmlleF9wbV93YWtldXBfY2Fy ZChzdHJ1Y3QgbXdpZmlleF9hZGFwdGVyICphZGFwdGVyKQ0KIAkJaSsrOw0KIAkJdWRlbGF5KDEw KTsNCiAJCS8qIDUwbXMgbWF4IHdhaXQgKi8NCi0JCWlmIChpID09IDUwMDAwKQ0KKwkJaWYgKGkg PT0gNTAwMCkNCiAJCQlicmVhazsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hl bi1uZXRmcm9udC5jIGIvZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMNCmluZGV4IGZjMzUzMDgu LjliOTg0M2UgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0ZnJvbnQuYw0KKysrIGIv ZHJpdmVycy9uZXQveGVuLW5ldGZyb250LmMNCkBAIC0xNzA3LDcgKzE3MDcsNiBAQCBzdGF0aWMg dm9pZCBuZXRiYWNrX2NoYW5nZWQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwNCiAJY2FzZSBY ZW5idXNTdGF0ZUluaXRpYWxpc2VkOg0KIAljYXNlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZzoN CiAJY2FzZSBYZW5idXNTdGF0ZVJlY29uZmlndXJlZDoNCi0JY2FzZSBYZW5idXNTdGF0ZUNvbm5l Y3RlZDoNCiAJY2FzZSBYZW5idXNTdGF0ZVVua25vd246DQogCWNhc2UgWGVuYnVzU3RhdGVDbG9z ZWQ6DQogCQlicmVhazsNCkBAIC0xNzE4LDYgKzE3MTcsOSBAQCBzdGF0aWMgdm9pZCBuZXRiYWNr X2NoYW5nZWQoc3RydWN0IHhlbmJ1c19kZXZpY2UgKmRldiwNCiAJCWlmICh4ZW5uZXRfY29ubmVj dChuZXRkZXYpICE9IDApDQogCQkJYnJlYWs7DQogCQl4ZW5idXNfc3dpdGNoX3N0YXRlKGRldiwg WGVuYnVzU3RhdGVDb25uZWN0ZWQpOw0KKwkJYnJlYWs7DQorDQorCWNhc2UgWGVuYnVzU3RhdGVD b25uZWN0ZWQ6DQogCQluZXRpZl9ub3RpZnlfcGVlcnMobmV0ZGV2KTsNCiAJCWJyZWFrOw0KIA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9kYzM5NXguYyBiL2RyaXZlcnMvc2NzaS9kYzM5NXgu Yw0KaW5kZXggZjViNzE4ZC4uYWVkNzc1NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9kYzM5 NXguYw0KKysrIGIvZHJpdmVycy9zY3NpL2RjMzk1eC5jDQpAQCAtMzc0NywxMyArMzc0NywxMyBA QCBzdGF0aWMgc3RydWN0IERldmljZUN0bEJsayAqZGV2aWNlX2FsbG9jKHN0cnVjdCBBZGFwdGVy Q3RsQmxrICphY2IsDQogCWRjYi0+bWF4X2NvbW1hbmQgPSAxOw0KIAlkY2ItPnRhcmdldF9pZCA9 IHRhcmdldDsNCiAJZGNiLT50YXJnZXRfbHVuID0gbHVuOw0KKwlkY2ItPmRldl9tb2RlID0gZWVw cm9tLT50YXJnZXRbdGFyZ2V0XS5jZmcwOw0KICNpZm5kZWYgREMzOTV4X05PX0RJU0NPTk5FQ1QN CiAJZGNiLT5pZGVudGlmeV9tc2cgPQ0KIAkgICAgSURFTlRJRlkoZGNiLT5kZXZfbW9kZSAmIE5U Q19ET19ESVNDT05ORUNULCBsdW4pOw0KICNlbHNlDQogCWRjYi0+aWRlbnRpZnlfbXNnID0gSURF TlRJRlkoMCwgbHVuKTsNCiAjZW5kaWYNCi0JZGNiLT5kZXZfbW9kZSA9IGVlcHJvbS0+dGFyZ2V0 W3RhcmdldF0uY2ZnMDsNCiAJZGNiLT5pbnF1aXJ5NyA9IDA7DQogCWRjYi0+c3luY19tb2RlID0g MDsNCiAJZGNiLT5taW5fbmVnb19wZXJpb2QgPSBjbG9ja19wZXJpb2RbcGVyaW9kX2luZGV4XTsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvaHYvc3RvcnZzY19kcnYuYyBiL2RyaXZlcnMv c3RhZ2luZy9odi9zdG9ydnNjX2Rydi5jDQppbmRleCBhYmM1YWM1Li44OTYwZjFhIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9zdGFnaW5nL2h2L3N0b3J2c2NfZHJ2LmMNCisrKyBiL2RyaXZlcnMvc3Rh Z2luZy9odi9zdG9ydnNjX2Rydi5jDQpAQCAtODE1LDYgKzgxNSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg c2NhdHRlcmxpc3QgKmNyZWF0ZV9ib3VuY2VfYnVmZmVyKHN0cnVjdCBzY2F0dGVybGlzdCAqc2ds LA0KIAlpZiAoIWJvdW5jZV9zZ2wpDQogCQlyZXR1cm4gTlVMTDsNCiANCisJc2dfaW5pdF90YWJs ZShib3VuY2Vfc2dsLCBudW1fcGFnZXMpOw0KIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3BhZ2VzOyBp KyspIHsNCiAJCXBhZ2VfYnVmID0gYWxsb2NfcGFnZShHRlBfQVRPTUlDKTsNCiAJCWlmICghcGFn ZV9idWYpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9tYWluX3VzYi5jIGIv ZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9tYWluX3VzYi5jDQppbmRleCBhZTYyZDU3Li43NTRkNTRl IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9tYWluX3VzYi5jDQorKysgYi9k cml2ZXJzL3N0YWdpbmcvdnQ2NjU2L21haW5fdXNiLmMNCkBAIC03MTgsOCArNzE4LDYgQEAgc3Rh dGljIGludCB2dDY2NTZfc3VzcGVuZChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwgcG1fbWVz c2FnZV90IG1lc3NhZ2UpDQogCWlmIChkZXZpY2UtPmZsYWdzICYgREVWSUNFX0ZMQUdTX09QRU5F RCkNCiAJCWRldmljZV9jbG9zZShkZXZpY2UtPmRldik7DQogDQotCXVzYl9wdXRfZGV2KGludGVy ZmFjZV90b191c2JkZXYoaW50ZikpOw0KLQ0KIAlyZXR1cm4gMDsNCiB9DQogDQpAQCAtNzMwLDgg KzcyOCw2IEBAIHN0YXRpYyBpbnQgdnQ2NjU2X3Jlc3VtZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAq aW50ZikNCiAJaWYgKCFkZXZpY2UgfHwgIWRldmljZS0+ZGV2KQ0KIAkJcmV0dXJuIC1FTk9ERVY7 DQogDQotCXVzYl9nZXRfZGV2KGludGVyZmFjZV90b191c2JkZXYoaW50ZikpOw0KLQ0KIAlpZiAo IShkZXZpY2UtPmZsYWdzICYgREVWSUNFX0ZMQUdTX09QRU5FRCkpDQogCQlkZXZpY2Vfb3Blbihk ZXZpY2UtPmRldik7DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsLzgyNTAuYyBi L2RyaXZlcnMvdHR5L3NlcmlhbC84MjUwLmMNCmluZGV4IDY3NDg1NjguLmNmZjAzZTUgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MC5jDQorKysgYi9kcml2ZXJzL3R0eS9zZXJp YWwvODI1MC5jDQpAQCAtMzIyLDYgKzMyMiwyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNlcmlh bDgyNTBfY29uZmlnIHVhcnRfY29uZmlnW10gPSB7DQogCQkudHhfbG9hZHN6CT0gMTAyNCwNCiAJ CS5mbGFncwkJPSBVQVJUX0NBUF9IRklGTywNCiAJfSwNCisJW1BPUlRfQUxUUl8xNjU1MF9GMzJd ID0gew0KKwkJLm5hbWUJCT0gIkFsdGVyYSAxNjU1MCBGSUZPMzIiLA0KKwkJLmZpZm9fc2l6ZQk9 IDMyLA0KKwkJLnR4X2xvYWRzegk9IDMyLA0KKwkJLmZjcgkJPSBVQVJUX0ZDUl9FTkFCTEVfRklG TyB8IFVBUlRfRkNSX1JfVFJJR18xMCwNCisJCS5mbGFncwkJPSBVQVJUX0NBUF9GSUZPIHwgVUFS VF9DQVBfQUZFLA0KKwl9LA0KKwlbUE9SVF9BTFRSXzE2NTUwX0Y2NF0gPSB7DQorCQkubmFtZQkJ PSAiQWx0ZXJhIDE2NTUwIEZJRk82NCIsDQorCQkuZmlmb19zaXplCT0gNjQsDQorCQkudHhfbG9h ZHN6CT0gNjQsDQorCQkuZmNyCQk9IFVBUlRfRkNSX0VOQUJMRV9GSUZPIHwgVUFSVF9GQ1JfUl9U UklHXzEwLA0KKwkJLmZsYWdzCQk9IFVBUlRfQ0FQX0ZJRk8gfCBVQVJUX0NBUF9BRkUsDQorCX0s DQorCVtQT1JUX0FMVFJfMTY1NTBfRjEyOF0gPSB7DQorCQkubmFtZQkJPSAiQWx0ZXJhIDE2NTUw IEZJRk8xMjgiLA0KKwkJLmZpZm9fc2l6ZQk9IDEyOCwNCisJCS50eF9sb2Fkc3oJPSAxMjgsDQor CQkuZmNyCQk9IFVBUlRfRkNSX0VOQUJMRV9GSUZPIHwgVUFSVF9GQ1JfUl9UUklHXzEwLA0KKwkJ LmZsYWdzCQk9IFVBUlRfQ0FQX0ZJRk8gfCBVQVJUX0NBUF9BRkUsDQorCX0sDQogfTsNCiANCiAj aWYgZGVmaW5lZChDT05GSUdfTUlQU19BTENIRU1ZKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5 L3NlcmlhbC84MjUwX3BjaS5jIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBfcGNpLmMNCmluZGV4 IGE3NTM5NTYuLjY5ODYyNTYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvODI1MF9w Y2kuYw0KKysrIGIvZHJpdmVycy90dHkvc2VyaWFsLzgyNTBfcGNpLmMNCkBAIC0xMTU0LDYgKzEx NTQsNyBAQCBwY2lfeHIxN2MxNTRfc2V0dXAoc3RydWN0IHNlcmlhbF9wcml2YXRlICpwcml2LA0K IA0KIC8qIFVua25vd24gdmVuZG9ycy9jYXJkcyAtIHRoaXMgc2hvdWxkIG5vdCBiZSBpbiBsaW51 eC9wY2lfaWRzLmggKi8NCiAjZGVmaW5lIFBDSV9TVUJERVZJQ0VfSURfVU5LTk9XTl8weDE1ODQJ MHgxNTg0DQorI2RlZmluZSBQQ0lfU1VCREVWSUNFX0lEX1VOS05PV05fMHgxNTg4CTB4MTU4OA0K IA0KIC8qDQogICogTWFzdGVyIGxpc3Qgb2Ygc2VyaWFsIHBvcnQgaW5pdC9zZXR1cC9leGl0IHF1 aXJrcy4NCkBAIC0xNDE4LDE1ICsxNDE5LDYgQEAgc3RhdGljIHN0cnVjdCBwY2lfc2VyaWFsX3F1 aXJrIHBjaV9zZXJpYWxfcXVpcmtzW10gX19yZWZkYXRhID0gew0KIAl9LA0KIAl7DQogCQkudmVu ZG9yCQk9IFBDSV9WRU5ET1JfSURfUExYLA0KLQkJLmRldmljZQkJPSBQQ0lfREVWSUNFX0lEX1BM WF85MDUwLA0KLQkJLnN1YnZlbmRvcgk9IFBDSV9WRU5ET1JfSURfUExYLA0KLQkJLnN1YmRldmlj ZQk9IFBDSV9TVUJERVZJQ0VfSURfVU5LTk9XTl8weDE1ODQsDQotCQkuaW5pdAkJPSBwY2lfcGx4 OTA1MF9pbml0LA0KLQkJLnNldHVwCQk9IHBjaV9kZWZhdWx0X3NldHVwLA0KLQkJLmV4aXQJCT0g X19kZXZleGl0X3AocGNpX3BseDkwNTBfZXhpdCksDQotCX0sDQotCXsNCi0JCS52ZW5kb3IJCT0g UENJX1ZFTkRPUl9JRF9QTFgsDQogCQkuZGV2aWNlCQk9IFBDSV9ERVZJQ0VfSURfUExYX1JPTVVM VVMsDQogCQkuc3VidmVuZG9yCT0gUENJX1ZFTkRPUl9JRF9QTFgsDQogCQkuc3ViZGV2aWNlCT0g UENJX0RFVklDRV9JRF9QTFhfUk9NVUxVUywNCkBAIC0zMTIwLDcgKzMxMTIsMTIgQEAgc3RhdGlj IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHNlcmlhbF9wY2lfdGJsW10gPSB7DQogCXsJUENJX1ZFTkRP Ul9JRF9QTFgsIFBDSV9ERVZJQ0VfSURfUExYXzkwNTAsDQogCQlQQ0lfVkVORE9SX0lEX1BMWCwN CiAJCVBDSV9TVUJERVZJQ0VfSURfVU5LTk9XTl8weDE1ODQsIDAsIDAsDQotCQlwYm5fYjBfNF8x MTUyMDAgfSwNCisJCXBibl9iMl80XzExNTIwMCB9LA0KKwkvKiBVbmtub3duIGNhcmQgLSBzdWJk ZXZpY2UgMHgxNTg4ICovDQorCXsJUENJX1ZFTkRPUl9JRF9QTFgsIFBDSV9ERVZJQ0VfSURfUExY XzkwNTAsDQorCQlQQ0lfVkVORE9SX0lEX1BMWCwNCisJCVBDSV9TVUJERVZJQ0VfSURfVU5LTk9X Tl8weDE1ODgsIDAsIDAsDQorCQlwYm5fYjJfOF8xMTUyMDAgfSwNCiAJewlQQ0lfVkVORE9SX0lE X1BMWCwgUENJX0RFVklDRV9JRF9QTFhfOTA1MCwNCiAJCVBDSV9TVUJWRU5ET1JfSURfS0VZU1BB TiwNCiAJCVBDSV9TVUJERVZJQ0VfSURfS0VZU1BBTl9TWDIsIDAsIDAsDQpAQCAtNDA4Niw2ICs0 MDgzLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzZXJpYWxfcGNpX3RibFtdID0g ew0KIAkJUENJX1ZFTkRPUl9JRF9JQk0sIDB4MDI5OSwNCiAJCTAsIDAsIHBibl9iMF9idF8yXzEx NTIwMCB9LA0KIA0KKwl7CVBDSV9WRU5ET1JfSURfTkVUTU9TLCBQQ0lfREVWSUNFX0lEX05FVE1P U185ODM1LA0KKwkJMHgxMDAwLCAweDAwMTIsDQorCQkwLCAwLCBwYm5fYjBfYnRfMl8xMTUyMDAg fSwNCisNCiAJewlQQ0lfVkVORE9SX0lEX05FVE1PUywgUENJX0RFVklDRV9JRF9ORVRNT1NfOTkw MSwNCiAJCTB4QTAwMCwgMHgxMDAwLA0KIAkJMCwgMCwgcGJuX2IwXzFfMTE1MjAwIH0sDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL0tjb25maWcgYi9kcml2ZXJzL3R0eS9zZXJpYWwv S2NvbmZpZw0KaW5kZXggOTI1YTFlNS4uMzc3MTI3NyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdHR5 L3NlcmlhbC9LY29uZmlnDQorKysgYi9kcml2ZXJzL3R0eS9zZXJpYWwvS2NvbmZpZw0KQEAgLTQ2 NCw3ICs0NjQsNyBAQCBjb25maWcgU0VSSUFMX1NBTVNVTkdfVUFSVFNfNA0KIGNvbmZpZyBTRVJJ QUxfU0FNU1VOR19VQVJUUw0KIAlpbnQNCiAJZGVwZW5kcyBvbiBBUk0gJiYgUExBVF9TQU1TVU5H DQotCWRlZmF1bHQgNiBpZiBBUkNIX1M1UDY0NTANCisJZGVmYXVsdCA2IGlmIENQVV9TNVA2NDUw DQogCWRlZmF1bHQgNCBpZiBTRVJJQUxfU0FNU1VOR19VQVJUU180DQogCWRlZmF1bHQgMw0KIAlo ZWxwDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL29mX3NlcmlhbC5jIGIvZHJpdmVy cy90dHkvc2VyaWFsL29mX3NlcmlhbC5jDQppbmRleCBlOGM5Y2VlLi42NTYzY2FkIDEwMDY0NA0K LS0tIGEvZHJpdmVycy90dHkvc2VyaWFsL29mX3NlcmlhbC5jDQorKysgYi9kcml2ZXJzL3R0eS9z ZXJpYWwvb2Zfc2VyaWFsLmMNCkBAIC0xODIsNiArMTgyLDEyIEBAIHN0YXRpYyBzdHJ1Y3Qgb2Zf ZGV2aWNlX2lkIF9fZGV2aW5pdGRhdGEgb2ZfcGxhdGZvcm1fc2VyaWFsX3RhYmxlW10gPSB7DQog CXsgLmNvbXBhdGlibGUgPSAibnMxNjc1MCIsICAuZGF0YSA9ICh2b2lkICopUE9SVF8xNjc1MCwg fSwNCiAJeyAuY29tcGF0aWJsZSA9ICJuczE2ODUwIiwgIC5kYXRhID0gKHZvaWQgKilQT1JUXzE2 ODUwLCB9LA0KIAl7IC5jb21wYXRpYmxlID0gIm52aWRpYSx0ZWdyYTIwLXVhcnQiLCAuZGF0YSA9 ICh2b2lkICopUE9SVF9URUdSQSwgfSwNCisJeyAuY29tcGF0aWJsZSA9ICJhbHRyLDE2NTUwLUZJ Rk8zMiIsDQorCQkuZGF0YSA9ICh2b2lkICopUE9SVF9BTFRSXzE2NTUwX0YzMiwgfSwNCisJeyAu Y29tcGF0aWJsZSA9ICJhbHRyLDE2NTUwLUZJRk82NCIsDQorCQkuZGF0YSA9ICh2b2lkICopUE9S VF9BTFRSXzE2NTUwX0Y2NCwgfSwNCisJeyAuY29tcGF0aWJsZSA9ICJhbHRyLDE2NTUwLUZJRk8x MjgiLA0KKwkJLmRhdGEgPSAodm9pZCAqKVBPUlRfQUxUUl8xNjU1MF9GMTI4LCB9LA0KICNpZmRl ZiBDT05GSUdfU0VSSUFMX09GX1BMQVRGT1JNX05XUFNFUklBTA0KIAl7IC5jb21wYXRpYmxlID0g ImlibSxxcGFjZS1ud3Atc2VyaWFsIiwNCiAJCS5kYXRhID0gKHZvaWQgKilQT1JUX05XUFNFUklB TCwgfSwNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3R0eS90dHlfYnVmZmVyLmMgYi9kcml2ZXJzL3R0 eS90dHlfYnVmZmVyLmMNCmluZGV4IDZjOWI3Y2QuLjRmMDJmOWMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL3R0eS90dHlfYnVmZmVyLmMNCisrKyBiL2RyaXZlcnMvdHR5L3R0eV9idWZmZXIuYw0KQEAg LTExNCwxMSArMTE0LDE0IEBAIHN0YXRpYyB2b2lkIF9fdHR5X2J1ZmZlcl9mbHVzaChzdHJ1Y3Qg dHR5X3N0cnVjdCAqdHR5KQ0KIHsNCiAJc3RydWN0IHR0eV9idWZmZXIgKnRoZWFkOw0KIA0KLQl3 aGlsZSAoKHRoZWFkID0gdHR5LT5idWYuaGVhZCkgIT0gTlVMTCkgew0KLQkJdHR5LT5idWYuaGVh ZCA9IHRoZWFkLT5uZXh0Ow0KLQkJdHR5X2J1ZmZlcl9mcmVlKHR0eSwgdGhlYWQpOw0KKwlpZiAo dHR5LT5idWYuaGVhZCA9PSBOVUxMKQ0KKwkJcmV0dXJuOw0KKwl3aGlsZSAoKHRoZWFkID0gdHR5 LT5idWYuaGVhZC0+bmV4dCkgIT0gTlVMTCkgew0KKwkJdHR5X2J1ZmZlcl9mcmVlKHR0eSwgdHR5 LT5idWYuaGVhZCk7DQorCQl0dHktPmJ1Zi5oZWFkID0gdGhlYWQ7DQogCX0NCi0JdHR5LT5idWYu dGFpbCA9IE5VTEw7DQorCVdBUk5fT04odHR5LT5idWYuaGVhZCAhPSB0dHktPmJ1Zi50YWlsKTsN CisJdHR5LT5idWYuaGVhZC0+cmVhZCA9IHR0eS0+YnVmLmhlYWQtPmNvbW1pdDsNCiB9DQogDQog LyoqDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLXdkbS5jIGIvZHJpdmVycy91 c2IvY2xhc3MvY2RjLXdkbS5jDQppbmRleCA5N2IyYzU1Li5mZThjMDRiIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy91c2IvY2xhc3MvY2RjLXdkbS5jDQorKysgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMt d2RtLmMNCkBAIC03MCw2ICs3MCw3IEBAIE1PRFVMRV9ERVZJQ0VfVEFCTEUgKHVzYiwgd2RtX2lk cyk7DQogI2RlZmluZSBXRE1fUE9MTF9SVU5OSU5HCTYNCiAjZGVmaW5lIFdETV9SRVNQT05ESU5H CQk3DQogI2RlZmluZSBXRE1fU1VTUEVORElORwkJOA0KKyNkZWZpbmUgV0RNX09WRVJGTE9XCQkx MA0KIA0KICNkZWZpbmUgV0RNX01BWAkJCTE2DQogDQpAQCAtMTM0LDYgKzEzNSw3IEBAIHN0YXRp YyB2b2lkIHdkbV9pbl9jYWxsYmFjayhzdHJ1Y3QgdXJiICp1cmIpDQogew0KIAlzdHJ1Y3Qgd2Rt X2RldmljZSAqZGVzYyA9IHVyYi0+Y29udGV4dDsNCiAJaW50IHN0YXR1cyA9IHVyYi0+c3RhdHVz Ow0KKwlpbnQgbGVuZ3RoID0gdXJiLT5hY3R1YWxfbGVuZ3RoOw0KIA0KIAlzcGluX2xvY2soJmRl c2MtPml1c3Bpbik7DQogCWNsZWFyX2JpdChXRE1fUkVTUE9ORElORywgJmRlc2MtPmZsYWdzKTsN CkBAIC0xNjQsOSArMTY2LDE3IEBAIHN0YXRpYyB2b2lkIHdkbV9pbl9jYWxsYmFjayhzdHJ1Y3Qg dXJiICp1cmIpDQogCX0NCiANCiAJZGVzYy0+cmVyciA9IHN0YXR1czsNCi0JZGVzYy0+cmVzbGVu Z3RoID0gdXJiLT5hY3R1YWxfbGVuZ3RoOw0KLQltZW1tb3ZlKGRlc2MtPnVidWYgKyBkZXNjLT5s ZW5ndGgsIGRlc2MtPmluYnVmLCBkZXNjLT5yZXNsZW5ndGgpOw0KLQlkZXNjLT5sZW5ndGggKz0g ZGVzYy0+cmVzbGVuZ3RoOw0KKwlpZiAobGVuZ3RoICsgZGVzYy0+bGVuZ3RoID4gZGVzYy0+d01h eENvbW1hbmQpIHsNCisJCS8qIFRoZSBidWZmZXIgd291bGQgb3ZlcmZsb3cgKi8NCisJCXNldF9i aXQoV0RNX09WRVJGTE9XLCAmZGVzYy0+ZmxhZ3MpOw0KKwl9IGVsc2Ugew0KKwkJLyogd2UgbWF5 IGFscmVhZHkgYmUgaW4gb3ZlcmZsb3cgKi8NCisJCWlmICghdGVzdF9iaXQoV0RNX09WRVJGTE9X LCAmZGVzYy0+ZmxhZ3MpKSB7DQorCQkJbWVtbW92ZShkZXNjLT51YnVmICsgZGVzYy0+bGVuZ3Ro LCBkZXNjLT5pbmJ1ZiwgbGVuZ3RoKTsNCisJCQlkZXNjLT5sZW5ndGggKz0gbGVuZ3RoOw0KKwkJ CWRlc2MtPnJlc2xlbmd0aCA9IGxlbmd0aDsNCisJCX0NCisJfQ0KIHNraXBfZXJyb3I6DQogCXdh a2VfdXAoJmRlc2MtPndhaXQpOw0KIA0KQEAgLTQzMyw2ICs0NDMsMTEgQEAgcmV0cnk6DQogCQkJ cnYgPSAtRU5PREVWOw0KIAkJCWdvdG8gZXJyOw0KIAkJfQ0KKwkJaWYgKHRlc3RfYml0KFdETV9P VkVSRkxPVywgJmRlc2MtPmZsYWdzKSkgew0KKwkJCWNsZWFyX2JpdChXRE1fT1ZFUkZMT1csICZk ZXNjLT5mbGFncyk7DQorCQkJcnYgPSAtRU5PQlVGUzsNCisJCQlnb3RvIGVycjsNCisJCX0NCiAJ CWkrKzsNCiAJCWlmIChmaWxlLT5mX2ZsYWdzICYgT19OT05CTE9DSykgew0KIAkJCWlmICghdGVz dF9iaXQoV0RNX1JFQUQsICZkZXNjLT5mbGFncykpIHsNCkBAIC00NzIsNiArNDg3LDcgQEAgcmV0 cnk6DQogCQkJc3Bpbl91bmxvY2tfaXJxKCZkZXNjLT5pdXNwaW4pOw0KIAkJCWdvdG8gcmV0cnk7 DQogCQl9DQorDQogCQlpZiAoIWRlc2MtPnJlc2xlbmd0aCkgeyAvKiB6ZXJvIGxlbmd0aCByZWFk ICovDQogCQkJZGV2X2RiZygmZGVzYy0+aW50Zi0+ZGV2LCAiJXM6IHplcm8gbGVuZ3RoIC0gY2xl YXJpbmcgV0RNX1JFQURcbiIsIF9fZnVuY19fKTsNCiAJCQljbGVhcl9iaXQoV0RNX1JFQUQsICZk ZXNjLT5mbGFncyk7DQpAQCAtOTI2LDYgKzk0Miw3IEBAIHN0YXRpYyBpbnQgd2RtX3Bvc3RfcmVz ZXQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpDQogCXN0cnVjdCB3ZG1fZGV2aWNlICpkZXNj ID0gdXNiX2dldF9pbnRmZGF0YShpbnRmKTsNCiAJaW50IHJ2Ow0KIA0KKwljbGVhcl9iaXQoV0RN X09WRVJGTE9XLCAmZGVzYy0+ZmxhZ3MpOw0KIAlydiA9IHJlY292ZXJfZnJvbV91cmJfbG9zcyhk ZXNjKTsNCiAJbXV0ZXhfdW5sb2NrKCZkZXNjLT53bG9jayk7DQogCW11dGV4X3VubG9jaygmZGVz Yy0+cmxvY2spOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2NvcmUvaHViLmMgYi9kcml2ZXJz L3VzYi9jb3JlL2h1Yi5jDQppbmRleCAyNTY0ZDhkLi4yMmNiZTA2IDEwMDY0NA0KLS0tIGEvZHJp dmVycy91c2IvY29yZS9odWIuYw0KKysrIGIvZHJpdmVycy91c2IvY29yZS9odWIuYw0KQEAgLTIx NDgsNzAgKzIxNDgsMzUgQEAgc3RhdGljIGludCBodWJfcG9ydF93YWl0X3Jlc2V0KHN0cnVjdCB1 c2JfaHViICpodWIsIGludCBwb3J0MSwNCiAJCWlmICgocG9ydHN0YXR1cyAmIFVTQl9QT1JUX1NU QVRfUkVTRVQpKQ0KIAkJCWdvdG8gZGVsYXk7DQogDQotCQkvKg0KLQkJICogU29tZSBidWdneSBk ZXZpY2VzIHJlcXVpcmUgYSB3YXJtIHJlc2V0IHRvIGJlIGlzc3VlZCBldmVuDQotCQkgKiB3aGVu IHRoZSBwb3J0IGFwcGVhcnMgbm90IHRvIGJlIGNvbm5lY3RlZC4NCisJCWlmIChodWJfcG9ydF93 YXJtX3Jlc2V0X3JlcXVpcmVkKGh1YiwgcG9ydHN0YXR1cykpDQorCQkJcmV0dXJuIC1FTk9UQ09O TjsNCisNCisJCS8qIERldmljZSB3ZW50IGF3YXk/ICovDQorCQlpZiAoIShwb3J0c3RhdHVzICYg VVNCX1BPUlRfU1RBVF9DT05ORUNUSU9OKSkNCisJCQlyZXR1cm4gLUVOT1RDT05OOw0KKw0KKwkJ LyogYm9tYiBvdXQgY29tcGxldGVseSBpZiB0aGUgY29ubmVjdGlvbiBib3VuY2VkLiAgQSBVU0Ig My4wDQorCQkgKiBjb25uZWN0aW9uIG1heSBib3VuY2UgaWYgbXVsdGlwbGUgd2FybSByZXNldHMg d2VyZSBpc3N1ZWQsDQorCQkgKiBidXQgdGhlIGRldmljZSBtYXkgaGF2ZSBzdWNjZXNzZnVsbHkg cmUtY29ubmVjdGVkLiBJZ25vcmUgaXQuDQogCQkgKi8NCi0JCWlmICghd2FybSkgew0KLQkJCS8q DQotCQkJICogU29tZSBidWdneSBkZXZpY2VzIGNhbiBjYXVzZSBhbiBORUMgaG9zdCBjb250cm9s bGVyDQotCQkJICogdG8gdHJhbnNpdGlvbiB0byB0aGUgIkVycm9yIiBzdGF0ZSBhZnRlciBhIGhv dCBwb3J0DQotCQkJICogcmVzZXQuICBUaGlzIHdpbGwgc2hvdyB1cCBhcyB0aGUgcG9ydCBzdGF0 ZSBpbg0KLQkJCSAqICJJbmFjdGl2ZSIsIGFuZCB0aGUgcG9ydCBtYXkgYWxzbyByZXBvcnQgYQ0K LQkJCSAqIGRpc2Nvbm5lY3QuICBGb3JjaW5nIGEgd2FybSBwb3J0IHJlc2V0IHNlZW1zIHRvIG1h a2UNCi0JCQkgKiB0aGUgZGV2aWNlIHdvcmsuDQotCQkJICoNCi0JCQkgKiBTZWUgaHR0cHM6Ly9i dWd6aWxsYS5rZXJuZWwub3JnL3Nob3dfYnVnLmNnaT9pZD00MTc1Mg0KLQkJCSAqLw0KLQkJCWlm IChodWJfcG9ydF93YXJtX3Jlc2V0X3JlcXVpcmVkKGh1YiwgcG9ydHN0YXR1cykpIHsNCi0JCQkJ aW50IHJldDsNCi0NCi0JCQkJaWYgKChwb3J0Y2hhbmdlICYgVVNCX1BPUlRfU1RBVF9DX0NPTk5F Q1RJT04pKQ0KLQkJCQkJY2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+aGRldiwgcG9ydDEsDQotCQkJ CQkJCVVTQl9QT1JUX0ZFQVRfQ19DT05ORUNUSU9OKTsNCi0JCQkJaWYgKHBvcnRjaGFuZ2UgJiBV U0JfUE9SVF9TVEFUX0NfTElOS19TVEFURSkNCi0JCQkJCWNsZWFyX3BvcnRfZmVhdHVyZShodWIt PmhkZXYsIHBvcnQxLA0KLQkJCQkJCQlVU0JfUE9SVF9GRUFUX0NfUE9SVF9MSU5LX1NUQVRFKTsN Ci0JCQkJaWYgKHBvcnRjaGFuZ2UgJiBVU0JfUE9SVF9TVEFUX0NfUkVTRVQpDQotCQkJCQljbGVh cl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LCBwb3J0MSwNCi0JCQkJCQkJVVNCX1BPUlRfRkVBVF9D X1JFU0VUKTsNCi0JCQkJZGV2X2RiZyhodWItPmludGZkZXYsICJob3QgcmVzZXQgZmFpbGVkLCB3 YXJtIHJlc2V0IHBvcnQgJWRcbiIsDQotCQkJCQkJcG9ydDEpOw0KLQkJCQlyZXQgPSBodWJfcG9y dF9yZXNldChodWIsIHBvcnQxLA0KLQkJCQkJCXVkZXYsIEhVQl9CSF9SRVNFVF9USU1FLA0KLQkJ CQkJCXRydWUpOw0KLQkJCQlpZiAoKHBvcnRjaGFuZ2UgJiBVU0JfUE9SVF9TVEFUX0NfQ09OTkVD VElPTikpDQotCQkJCQljbGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LCBwb3J0MSwNCi0JCQkJ CQkJVVNCX1BPUlRfRkVBVF9DX0NPTk5FQ1RJT04pOw0KLQkJCQlyZXR1cm4gcmV0Ow0KLQkJCX0N Ci0JCQkvKiBEZXZpY2Ugd2VudCBhd2F5PyAqLw0KLQkJCWlmICghKHBvcnRzdGF0dXMgJiBVU0Jf UE9SVF9TVEFUX0NPTk5FQ1RJT04pKQ0KLQkJCQlyZXR1cm4gLUVOT1RDT05OOw0KLQ0KLQkJCS8q IGJvbWIgb3V0IGNvbXBsZXRlbHkgaWYgdGhlIGNvbm5lY3Rpb24gYm91bmNlZCAqLw0KLQkJCWlm ICgocG9ydGNoYW5nZSAmIFVTQl9QT1JUX1NUQVRfQ19DT05ORUNUSU9OKSkNCi0JCQkJcmV0dXJu IC1FTk9UQ09OTjsNCi0NCi0JCQlpZiAoKHBvcnRzdGF0dXMgJiBVU0JfUE9SVF9TVEFUX0VOQUJM RSkpIHsNCi0JCQkJaWYgKGh1Yl9pc193dXNiKGh1YikpDQotCQkJCQl1ZGV2LT5zcGVlZCA9IFVT Ql9TUEVFRF9XSVJFTEVTUzsNCi0JCQkJZWxzZSBpZiAoaHViX2lzX3N1cGVyc3BlZWQoaHViLT5o ZGV2KSkNCi0JCQkJCXVkZXYtPnNwZWVkID0gVVNCX1NQRUVEX1NVUEVSOw0KLQkJCQllbHNlIGlm IChwb3J0c3RhdHVzICYgVVNCX1BPUlRfU1RBVF9ISUdIX1NQRUVEKQ0KLQkJCQkJdWRldi0+c3Bl ZWQgPSBVU0JfU1BFRURfSElHSDsNCi0JCQkJZWxzZSBpZiAocG9ydHN0YXR1cyAmIFVTQl9QT1JU X1NUQVRfTE9XX1NQRUVEKQ0KLQkJCQkJdWRldi0+c3BlZWQgPSBVU0JfU1BFRURfTE9XOw0KLQkJ CQllbHNlDQotCQkJCQl1ZGV2LT5zcGVlZCA9IFVTQl9TUEVFRF9GVUxMOw0KKwkJaWYgKCFodWJf aXNfc3VwZXJzcGVlZChodWItPmhkZXYpICYmDQorCQkJCShwb3J0Y2hhbmdlICYgVVNCX1BPUlRf U1RBVF9DX0NPTk5FQ1RJT04pKQ0KKwkJCXJldHVybiAtRU5PVENPTk47DQorDQorCQlpZiAoKHBv cnRzdGF0dXMgJiBVU0JfUE9SVF9TVEFUX0VOQUJMRSkpIHsNCisJCQlpZiAoIXVkZXYpDQogCQkJ CXJldHVybiAwOw0KLQkJCX0NCi0JCX0gZWxzZSB7DQotCQkJaWYgKCEocG9ydHN0YXR1cyAmIFVT Ql9QT1JUX1NUQVRfQ09OTkVDVElPTikgfHwNCi0JCQkJCWh1Yl9wb3J0X3dhcm1fcmVzZXRfcmVx dWlyZWQoaHViLA0KLQkJCQkJCXBvcnRzdGF0dXMpKQ0KLQkJCQlyZXR1cm4gLUVOT1RDT05OOw0K IA0KKwkJCWlmIChodWJfaXNfd3VzYihodWIpKQ0KKwkJCQl1ZGV2LT5zcGVlZCA9IFVTQl9TUEVF RF9XSVJFTEVTUzsNCisJCQllbHNlIGlmIChodWJfaXNfc3VwZXJzcGVlZChodWItPmhkZXYpKQ0K KwkJCQl1ZGV2LT5zcGVlZCA9IFVTQl9TUEVFRF9TVVBFUjsNCisJCQllbHNlIGlmIChwb3J0c3Rh dHVzICYgVVNCX1BPUlRfU1RBVF9ISUdIX1NQRUVEKQ0KKwkJCQl1ZGV2LT5zcGVlZCA9IFVTQl9T UEVFRF9ISUdIOw0KKwkJCWVsc2UgaWYgKHBvcnRzdGF0dXMgJiBVU0JfUE9SVF9TVEFUX0xPV19T UEVFRCkNCisJCQkJdWRldi0+c3BlZWQgPSBVU0JfU1BFRURfTE9XOw0KKwkJCWVsc2UNCisJCQkJ dWRldi0+c3BlZWQgPSBVU0JfU1BFRURfRlVMTDsNCiAJCQlyZXR1cm4gMDsNCiAJCX0NCiANCkBA IC0yMjI5LDE2ICsyMTk0LDE2IEBAIGRlbGF5Og0KIH0NCiANCiBzdGF0aWMgdm9pZCBodWJfcG9y dF9maW5pc2hfcmVzZXQoc3RydWN0IHVzYl9odWIgKmh1YiwgaW50IHBvcnQxLA0KLQkJCXN0cnVj dCB1c2JfZGV2aWNlICp1ZGV2LCBpbnQgKnN0YXR1cywgYm9vbCB3YXJtKQ0KKwkJCXN0cnVjdCB1 c2JfZGV2aWNlICp1ZGV2LCBpbnQgKnN0YXR1cykNCiB7DQogCXN3aXRjaCAoKnN0YXR1cykgew0K IAljYXNlIDA6DQotCQlpZiAoIXdhcm0pIHsNCi0JCQlzdHJ1Y3QgdXNiX2hjZCAqaGNkOw0KLQkJ CS8qIFRSU1RSQ1kgPSAxMCBtczsgcGx1cyBzb21lIGV4dHJhICovDQotCQkJbXNsZWVwKDEwICsg NDApOw0KKwkJLyogVFJTVFJDWSA9IDEwIG1zOyBwbHVzIHNvbWUgZXh0cmEgKi8NCisJCW1zbGVl cCgxMCArIDQwKTsNCisJCWlmICh1ZGV2KSB7DQorCQkJc3RydWN0IHVzYl9oY2QgKmhjZCA9IGJ1 c190b19oY2QodWRldi0+YnVzKTsNCisNCiAJCQl1cGRhdGVfZGV2bnVtKHVkZXYsIDApOw0KLQkJ CWhjZCA9IGJ1c190b19oY2QodWRldi0+YnVzKTsNCiAJCQkvKiBUaGUgeEhDIG1heSB0aGluayB0 aGUgZGV2aWNlIGlzIGFscmVhZHkgcmVzZXQsDQogCQkJICogc28gaWdub3JlIHRoZSBzdGF0dXMu DQogCQkJICovDQpAQCAtMjI1MCwxNCArMjIxNSwxNSBAQCBzdGF0aWMgdm9pZCBodWJfcG9ydF9m aW5pc2hfcmVzZXQoc3RydWN0IHVzYl9odWIgKmh1YiwgaW50IHBvcnQxLA0KIAljYXNlIC1FTk9E RVY6DQogCQljbGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LA0KIAkJCQlwb3J0MSwgVVNCX1BP UlRfRkVBVF9DX1JFU0VUKTsNCi0JCS8qIEZJWE1FIG5lZWQgZGlzY29ubmVjdCgpIGZvciBOT1RB VFRBQ0hFRCBkZXZpY2UgKi8NCiAJCWlmIChodWJfaXNfc3VwZXJzcGVlZChodWItPmhkZXYpKSB7 DQogCQkJY2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+aGRldiwgcG9ydDEsDQogCQkJCQlVU0JfUE9S VF9GRUFUX0NfQkhfUE9SVF9SRVNFVCk7DQogCQkJY2xlYXJfcG9ydF9mZWF0dXJlKGh1Yi0+aGRl diwgcG9ydDEsDQogCQkJCQlVU0JfUE9SVF9GRUFUX0NfUE9SVF9MSU5LX1NUQVRFKTsNCisJCQlj bGVhcl9wb3J0X2ZlYXR1cmUoaHViLT5oZGV2LCBwb3J0MSwNCisJCQkJCVVTQl9QT1JUX0ZFQVRf Q19DT05ORUNUSU9OKTsNCiAJCX0NCi0JCWlmICghd2FybSkNCisJCWlmICh1ZGV2KQ0KIAkJCXVz Yl9zZXRfZGV2aWNlX3N0YXRlKHVkZXYsICpzdGF0dXMNCiAJCQkJCT8gVVNCX1NUQVRFX05PVEFU VEFDSEVEDQogCQkJCQk6IFVTQl9TVEFURV9ERUZBVUxUKTsNCkBAIC0yMjcwLDE4ICsyMjM2LDMw IEBAIHN0YXRpYyBpbnQgaHViX3BvcnRfcmVzZXQoc3RydWN0IHVzYl9odWIgKmh1YiwgaW50IHBv cnQxLA0KIAkJCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2LCB1bnNpZ25lZCBpbnQgZGVsYXksIGJv b2wgd2FybSkNCiB7DQogCWludCBpLCBzdGF0dXM7DQorCXUxNiBwb3J0Y2hhbmdlLCBwb3J0c3Rh dHVzOw0KIA0KLQlpZiAoIXdhcm0pIHsNCi0JCS8qIEJsb2NrIEVIQ0kgQ0YgaW5pdGlhbGl6YXRp b24gZHVyaW5nIHRoZSBwb3J0IHJlc2V0Lg0KLQkJICogU29tZSBjb21wYW5pb24gY29udHJvbGxl cnMgZG9uJ3QgbGlrZSBpdCB3aGVuIHRoZXkgbWl4Lg0KLQkJICovDQotCQlkb3duX3JlYWQoJmVo Y2lfY2ZfcG9ydF9yZXNldF9yd3NlbSk7DQotCX0gZWxzZSB7DQotCQlpZiAoIWh1Yl9pc19zdXBl cnNwZWVkKGh1Yi0+aGRldikpIHsNCisJaWYgKCFodWJfaXNfc3VwZXJzcGVlZChodWItPmhkZXYp KSB7DQorCQlpZiAod2FybSkgew0KIAkJCWRldl9lcnIoaHViLT5pbnRmZGV2LCAib25seSBVU0Iz IGh1YiBzdXBwb3J0ICINCiAJCQkJCQkid2FybSByZXNldFxuIik7DQogCQkJcmV0dXJuIC1FSU5W QUw7DQogCQl9DQorCQkvKiBCbG9jayBFSENJIENGIGluaXRpYWxpemF0aW9uIGR1cmluZyB0aGUg cG9ydCByZXNldC4NCisJCSAqIFNvbWUgY29tcGFuaW9uIGNvbnRyb2xsZXJzIGRvbid0IGxpa2Ug aXQgd2hlbiB0aGV5IG1peC4NCisJCSAqLw0KKwkJZG93bl9yZWFkKCZlaGNpX2NmX3BvcnRfcmVz ZXRfcndzZW0pOw0KKwl9IGVsc2UgaWYgKCF3YXJtKSB7DQorCQkvKg0KKwkJICogSWYgdGhlIGNh bGxlciBoYXNuJ3QgZXhwbGljaXRseSByZXF1ZXN0ZWQgYSB3YXJtIHJlc2V0LA0KKwkJICogZG91 YmxlIGNoZWNrIGFuZCBzZWUgaWYgb25lIGlzIG5lZWRlZC4NCisJCSAqLw0KKwkJc3RhdHVzID0g aHViX3BvcnRfc3RhdHVzKGh1YiwgcG9ydDEsDQorCQkJCQkmcG9ydHN0YXR1cywgJnBvcnRjaGFu Z2UpOw0KKwkJaWYgKHN0YXR1cyA8IDApDQorCQkJZ290byBkb25lOw0KKw0KKwkJaWYgKGh1Yl9w b3J0X3dhcm1fcmVzZXRfcmVxdWlyZWQoaHViLCBwb3J0c3RhdHVzKSkNCisJCQl3YXJtID0gdHJ1 ZTsNCiAJfQ0KIA0KIAkvKiBSZXNldCB0aGUgcG9ydCAqLw0KQEAgLTIzMDIsMTAgKzIyODAsMzMg QEAgc3RhdGljIGludCBodWJfcG9ydF9yZXNldChzdHJ1Y3QgdXNiX2h1YiAqaHViLCBpbnQgcG9y dDEsDQogCQkJCQkJc3RhdHVzKTsNCiAJCX0NCiANCi0JCS8qIHJldHVybiBvbiBkaXNjb25uZWN0 IG9yIHJlc2V0ICovDQorCQkvKiBDaGVjayBmb3IgZGlzY29ubmVjdCBvciByZXNldCAqLw0KIAkJ aWYgKHN0YXR1cyA9PSAwIHx8IHN0YXR1cyA9PSAtRU5PVENPTk4gfHwgc3RhdHVzID09IC1FTk9E RVYpIHsNCi0JCQlodWJfcG9ydF9maW5pc2hfcmVzZXQoaHViLCBwb3J0MSwgdWRldiwgJnN0YXR1 cywgd2FybSk7DQotCQkJZ290byBkb25lOw0KKwkJCWh1Yl9wb3J0X2ZpbmlzaF9yZXNldChodWIs IHBvcnQxLCB1ZGV2LCAmc3RhdHVzKTsNCisNCisJCQlpZiAoIWh1Yl9pc19zdXBlcnNwZWVkKGh1 Yi0+aGRldikpDQorCQkJCWdvdG8gZG9uZTsNCisNCisJCQkvKg0KKwkJCSAqIElmIGEgVVNCIDMu MCBkZXZpY2UgbWlncmF0ZXMgZnJvbSByZXNldCB0byBhbiBlcnJvcg0KKwkJCSAqIHN0YXRlLCBy ZS1pc3N1ZSB0aGUgd2FybSByZXNldC4NCisJCQkgKi8NCisJCQlpZiAoaHViX3BvcnRfc3RhdHVz KGh1YiwgcG9ydDEsDQorCQkJCQkmcG9ydHN0YXR1cywgJnBvcnRjaGFuZ2UpIDwgMCkNCisJCQkJ Z290byBkb25lOw0KKw0KKwkJCWlmICghaHViX3BvcnRfd2FybV9yZXNldF9yZXF1aXJlZChodWIs IHBvcnRzdGF0dXMpKQ0KKwkJCQlnb3RvIGRvbmU7DQorDQorCQkJLyoNCisJCQkgKiBJZiB0aGUg cG9ydCBpcyBpbiBTUy5JbmFjdGl2ZSBvciBDb21wbGlhbmNlIE1vZGUsIHRoZQ0KKwkJCSAqIGhv dCBvciB3YXJtIHJlc2V0IGZhaWxlZC4gIFRyeSBhbm90aGVyIHdhcm0gcmVzZXQuDQorCQkJICov DQorCQkJaWYgKCF3YXJtKSB7DQorCQkJCWRldl9kYmcoaHViLT5pbnRmZGV2LCAiaG90IHJlc2V0 IGZhaWxlZCwgd2FybSByZXNldCBwb3J0ICVkXG4iLA0KKwkJCQkJCXBvcnQxKTsNCisJCQkJd2Fy bSA9IHRydWU7DQorCQkJfQ0KIAkJfQ0KIA0KIAkJZGV2X2RiZyAoaHViLT5pbnRmZGV2LA0KQEAg LTIzMTksNyArMjMyMCw3IEBAIHN0YXRpYyBpbnQgaHViX3BvcnRfcmVzZXQoc3RydWN0IHVzYl9o dWIgKmh1YiwgaW50IHBvcnQxLA0KIAkJcG9ydDEpOw0KIA0KIGRvbmU6DQotCWlmICghd2FybSkN CisJaWYgKCFodWJfaXNfc3VwZXJzcGVlZChodWItPmhkZXYpKQ0KIAkJdXBfcmVhZCgmZWhjaV9j Zl9wb3J0X3Jlc2V0X3J3c2VtKTsNCiANCiAJcmV0dXJuIHN0YXR1czsNCkBAIC0zNzM1LDEyICsz NzM2LDIxIEBAIHN0YXRpYyB2b2lkIGh1Yl9ldmVudHModm9pZCkNCiAJCQkgKi8NCiAJCQlpZiAo aHViX3BvcnRfd2FybV9yZXNldF9yZXF1aXJlZChodWIsIHBvcnRzdGF0dXMpKSB7DQogCQkJCWlu dCBzdGF0dXM7DQorCQkJCXN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2ID0NCisJCQkJCWh1Yi0+aGRl di0+Y2hpbGRyZW5baSAtIDFdOw0KIA0KIAkJCQlkZXZfZGJnKGh1Yl9kZXYsICJ3YXJtIHJlc2V0 IHBvcnQgJWRcbiIsIGkpOw0KLQkJCQlzdGF0dXMgPSBodWJfcG9ydF9yZXNldChodWIsIGksIE5V TEwsDQotCQkJCQkJSFVCX0JIX1JFU0VUX1RJTUUsIHRydWUpOw0KLQkJCQlpZiAoc3RhdHVzIDwg MCkNCi0JCQkJCWh1Yl9wb3J0X2Rpc2FibGUoaHViLCBpLCAxKTsNCisJCQkJaWYgKCF1ZGV2KSB7 DQorCQkJCQlzdGF0dXMgPSBodWJfcG9ydF9yZXNldChodWIsIGksDQorCQkJCQkJCU5VTEwsIEhV Ql9CSF9SRVNFVF9USU1FLA0KKwkJCQkJCQl0cnVlKTsNCisJCQkJCWlmIChzdGF0dXMgPCAwKQ0K KwkJCQkJCWh1Yl9wb3J0X2Rpc2FibGUoaHViLCBpLCAxKTsNCisJCQkJfSBlbHNlIHsNCisJCQkJ CXVzYl9sb2NrX2RldmljZSh1ZGV2KTsNCisJCQkJCXN0YXR1cyA9IHVzYl9yZXNldF9kZXZpY2Uo dWRldik7DQorCQkJCQl1c2JfdW5sb2NrX2RldmljZSh1ZGV2KTsNCisJCQkJfQ0KIAkJCQljb25u ZWN0X2NoYW5nZSA9IDA7DQogCQkJfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qv ZWhjaS1xLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcS5jDQppbmRleCA1YmIyZGNiLi41MWQx NWQxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXEuYw0KKysrIGIvZHJpdmVy cy91c2IvaG9zdC9laGNpLXEuYw0KQEAgLTEzNSw3ICsxMzUsNyBAQCBxaF9yZWZyZXNoIChzdHJ1 Y3QgZWhjaV9oY2QgKmVoY2ksIHN0cnVjdCBlaGNpX3FoICpxaCkNCiAJCSAqIHF0ZCBpcyB1cGRh dGVkIGluIHFoX2NvbXBsZXRpb25zKCkuIFVwZGF0ZSB0aGUgUUgNCiAJCSAqIG92ZXJsYXkgaGVy ZS4NCiAJCSAqLw0KLQkJaWYgKGNwdV90b19oYzMyKGVoY2ksIHF0ZC0+cXRkX2RtYSkgPT0gcWgt Pmh3LT5od19jdXJyZW50KSB7DQorCQlpZiAocWgtPmh3LT5od190b2tlbiAmIEFDVElWRV9CSVQo ZWhjaSkpIHsNCiAJCQlxaC0+aHctPmh3X3F0ZF9uZXh0ID0gcXRkLT5od19uZXh0Ow0KIAkJCXF0 ZCA9IE5VTEw7DQogCQl9DQpAQCAtNDQ0LDExICs0NDQsMTkgQEAgcWhfY29tcGxldGlvbnMgKHN0 cnVjdCBlaGNpX2hjZCAqZWhjaSwgc3RydWN0IGVoY2lfcWggKnFoKQ0KIAkJCWVsc2UgaWYgKGxh c3Rfc3RhdHVzID09IC1FSU5QUk9HUkVTUyAmJiAhdXJiLT51bmxpbmtlZCkNCiAJCQkJY29udGlu dWU7DQogDQotCQkJLyogcWggdW5saW5rZWQ7IHRva2VuIGluIG92ZXJsYXkgbWF5IGJlIG1vc3Qg Y3VycmVudCAqLw0KLQkJCWlmIChzdGF0ZSA9PSBRSF9TVEFURV9JRExFDQotCQkJCQkmJiBjcHVf dG9faGMzMihlaGNpLCBxdGQtPnF0ZF9kbWEpDQotCQkJCQkJPT0gaHctPmh3X2N1cnJlbnQpIHsN CisJCQkvKg0KKwkJCSAqIElmIHRoaXMgd2FzIHRoZSBhY3RpdmUgcXRkIHdoZW4gdGhlIHFoIHdh cyB1bmxpbmtlZA0KKwkJCSAqIGFuZCB0aGUgb3ZlcmxheSdzIHRva2VuIGlzIGFjdGl2ZSwgdGhl biB0aGUgb3ZlcmxheQ0KKwkJCSAqIGhhc24ndCBiZWVuIHdyaXR0ZW4gYmFjayB0byB0aGUgcXRk IHlldCBzbyB1c2UgaXRzDQorCQkJICogdG9rZW4gaW5zdGVhZCBvZiB0aGUgcXRkJ3MuICBBZnRl ciB0aGUgcXRkIGlzDQorCQkJICogcHJvY2Vzc2VkIGFuZCByZW1vdmVkLCB0aGUgb3ZlcmxheSB3 b24ndCBiZSB2YWxpZA0KKwkJCSAqIGFueSBtb3JlLg0KKwkJCSAqLw0KKwkJCWlmIChzdGF0ZSA9 PSBRSF9TVEFURV9JRExFICYmDQorCQkJCQlxaC0+cXRkX2xpc3QubmV4dCA9PSAmcXRkLT5xdGRf bGlzdCAmJg0KKwkJCQkJKGh3LT5od190b2tlbiAmIEFDVElWRV9CSVQoZWhjaSkpKSB7DQogCQkJ CXRva2VuID0gaGMzMl90b19jcHUoZWhjaSwgaHctPmh3X3Rva2VuKTsNCisJCQkJaHctPmh3X3Rv a2VuICY9IH5BQ1RJVkVfQklUKGVoY2kpOw0KIA0KIAkJCQkvKiBBbiB1bmxpbmsgbWF5IGxlYXZl IGFuIGluY29tcGxldGUNCiAJCQkJICogYXN5bmMgdHJhbnNhY3Rpb24gaW4gdGhlIFRUIGJ1ZmZl ci4NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMgYi9kcml2ZXJzL3Vz Yi9zZXJpYWwvY3AyMTB4LmMNCmluZGV4IDM4MWQwMGQuLjkxM2ExNzggMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMNCisrKyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9jcDIx MHguYw0KQEAgLTkxLDYgKzkxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lk IGlkX3RhYmxlW10gPSB7DQogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODEzRikgfSwgLyogVGFt cyBNYXN0ZXIgRWFzeSBDb250cm9sICovDQogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODE0QSkg fSwgLyogV2VzdCBNb3VudGFpbiBSYWRpbyBSSUdibGFzdGVyIFAmUCAqLw0KIAl7IFVTQl9ERVZJ Q0UoMHgxMEM0LCAweDgxNEIpIH0sIC8qIFdlc3QgTW91bnRhaW4gUmFkaW8gUklHdGFsayAqLw0K Kwl7IFVTQl9ERVZJQ0UoMHgyNDA1LCAweDAwMDMpIH0sIC8qIFdlc3QgTW91bnRhaW4gUmFkaW8g UklHYmxhc3RlciBBZHZhbnRhZ2UgKi8NCiAJeyBVU0JfREVWSUNFKDB4MTBDNCwgMHg4MTU2KSB9 LCAvKiBCJkcgSDMwMDAgbGluayBjYWJsZSAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDgx NUUpIH0sIC8qIEhlbGljb21tIElQLUxpbmsgMTIyMC1EVk0gKi8NCiAJeyBVU0JfREVWSUNFKDB4 MTBDNCwgMHg4MTVGKSB9LCAvKiBUaW1ld2F2ZSBIYW1MaW5rVVNCICovDQpAQCAtMTU2LDYgKzE1 NywyNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsN CiAJeyBVU0JfREVWSUNFKDB4MUJFMywgMHgwN0E2KSB9LCAvKiBXQUdPIDc1MC05MjMgVVNCIFNl cnZpY2UgQ2FibGUgKi8NCiAJeyBVU0JfREVWSUNFKDB4MUUyOSwgMHgwMTAyKSB9LCAvKiBGZXN0 byBDUFgtVVNCICovDQogCXsgVVNCX0RFVklDRSgweDFFMjksIDB4MDUwMSkgfSwgLyogRmVzdG8g Q01TUCAqLw0KKwl7IFVTQl9ERVZJQ0UoMHgxRkI5LCAweDAxMDApIH0sIC8qIExha2UgU2hvcmUg TW9kZWwgMTIxIEN1cnJlbnQgU291cmNlICovDQorCXsgVVNCX0RFVklDRSgweDFGQjksIDB4MDIw MCkgfSwgLyogTGFrZSBTaG9yZSBNb2RlbCAyMThBIFRlbXBlcmF0dXJlIE1vbml0b3IgKi8NCisJ eyBVU0JfREVWSUNFKDB4MUZCOSwgMHgwMjAxKSB9LCAvKiBMYWtlIFNob3JlIE1vZGVsIDIxOSBU ZW1wZXJhdHVyZSBNb25pdG9yICovDQorCXsgVVNCX0RFVklDRSgweDFGQjksIDB4MDIwMikgfSwg LyogTGFrZSBTaG9yZSBNb2RlbCAyMzMgVGVtcGVyYXR1cmUgVHJhbnNtaXR0ZXIgKi8NCisJeyBV U0JfREVWSUNFKDB4MUZCOSwgMHgwMjAzKSB9LCAvKiBMYWtlIFNob3JlIE1vZGVsIDIzNSBUZW1w ZXJhdHVyZSBUcmFuc21pdHRlciAqLw0KKwl7IFVTQl9ERVZJQ0UoMHgxRkI5LCAweDAzMDApIH0s IC8qIExha2UgU2hvcmUgTW9kZWwgMzM1IFRlbXBlcmF0dXJlIENvbnRyb2xsZXIgKi8NCisJeyBV U0JfREVWSUNFKDB4MUZCOSwgMHgwMzAxKSB9LCAvKiBMYWtlIFNob3JlIE1vZGVsIDMzNiBUZW1w ZXJhdHVyZSBDb250cm9sbGVyICovDQorCXsgVVNCX0RFVklDRSgweDFGQjksIDB4MDMwMikgfSwg LyogTGFrZSBTaG9yZSBNb2RlbCAzNTAgVGVtcGVyYXR1cmUgQ29udHJvbGxlciAqLw0KKwl7IFVT Ql9ERVZJQ0UoMHgxRkI5LCAweDAzMDMpIH0sIC8qIExha2UgU2hvcmUgTW9kZWwgMzcxIEFDIEJy aWRnZSAqLw0KKwl7IFVTQl9ERVZJQ0UoMHgxRkI5LCAweDA0MDApIH0sIC8qIExha2UgU2hvcmUg TW9kZWwgNDExIEhhbmRoZWxkIEdhdXNzbWV0ZXIgKi8NCisJeyBVU0JfREVWSUNFKDB4MUZCOSwg MHgwNDAxKSB9LCAvKiBMYWtlIFNob3JlIE1vZGVsIDQyNSBHYXVzc21ldGVyICovDQorCXsgVVNC X0RFVklDRSgweDFGQjksIDB4MDQwMikgfSwgLyogTGFrZSBTaG9yZSBNb2RlbCA0NTVBIEdhdXNz bWV0ZXIgKi8NCisJeyBVU0JfREVWSUNFKDB4MUZCOSwgMHgwNDAzKSB9LCAvKiBMYWtlIFNob3Jl IE1vZGVsIDQ3NUEgR2F1c3NtZXRlciAqLw0KKwl7IFVTQl9ERVZJQ0UoMHgxRkI5LCAweDA0MDQp IH0sIC8qIExha2UgU2hvcmUgTW9kZWwgNDY1IFRocmVlIEF4aXMgR2F1c3NtZXRlciAqLw0KKwl7 IFVTQl9ERVZJQ0UoMHgxRkI5LCAweDA2MDApIH0sIC8qIExha2UgU2hvcmUgTW9kZWwgNjI1QSBT dXBlcmNvbmR1Y3RpbmcgTVBTICovDQorCXsgVVNCX0RFVklDRSgweDFGQjksIDB4MDYwMSkgfSwg LyogTGFrZSBTaG9yZSBNb2RlbCA2NDJBIE1hZ25ldCBQb3dlciBTdXBwbHkgKi8NCisJeyBVU0Jf REVWSUNFKDB4MUZCOSwgMHgwNjAyKSB9LCAvKiBMYWtlIFNob3JlIE1vZGVsIDY0OCBNYWduZXQg UG93ZXIgU3VwcGx5ICovDQorCXsgVVNCX0RFVklDRSgweDFGQjksIDB4MDcwMCkgfSwgLyogTGFr ZSBTaG9yZSBNb2RlbCA3MzcgVlNNIENvbnRyb2xsZXIgKi8NCisJeyBVU0JfREVWSUNFKDB4MUZC OSwgMHgwNzAxKSB9LCAvKiBMYWtlIFNob3JlIE1vZGVsIDc3NiBIYWxsIE1hdHJpeCAqLw0KIAl7 IFVTQl9ERVZJQ0UoMHgzMTk1LCAweEYxOTApIH0sIC8qIExpbmsgSW5zdHJ1bWVudHMgTVNPLTE5 ICovDQogCXsgVVNCX0RFVklDRSgweDMxOTUsIDB4RjI4MCkgfSwgLyogTGluayBJbnN0cnVtZW50 cyBNU08tMjggKi8NCiAJeyBVU0JfREVWSUNFKDB4MzE5NSwgMHhGMjgxKSB9LCAvKiBMaW5rIElu c3RydW1lbnRzIE1TTy0yOCAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRp b24uYyBiL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KaW5kZXggMjRhM2VhNi4uNDQxODUz OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9vcHRpb24uYw0KKysrIGIvZHJpdmVy cy91c2Ivc2VyaWFsL29wdGlvbi5jDQpAQCAtMzQxLDYgKzM0MSw4IEBAIHN0YXRpYyB2b2lkIG9w dGlvbl9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAqdXJiKTsNCiAjZGVmaW5lIENJTlRFUklP Tl9QUk9EVUNUX0VVM19FCQkJMHgwMDUxDQogI2RlZmluZSBDSU5URVJJT05fUFJPRFVDVF9FVTNf UAkJCTB4MDA1Mg0KICNkZWZpbmUgQ0lOVEVSSU9OX1BST0RVQ1RfUEg4CQkJMHgwMDUzDQorI2Rl ZmluZSBDSU5URVJJT05fUFJPRFVDVF9BSDYJCQkweDAwNTUNCisjZGVmaW5lIENJTlRFUklPTl9Q Uk9EVUNUX1BMUzgJCQkweDAwNjANCiANCiAvKiBPbGl2ZXR0aSBwcm9kdWN0cyAqLw0KICNkZWZp bmUgT0xJVkVUVElfVkVORE9SX0lECQkJMHgwYjNjDQpAQCAtNTc5LDYgKzU4MSw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RF VklDRShRVUFOVEFfVkVORE9SX0lELCAweGVhNDIpLA0KIAkJLmRyaXZlcl9pbmZvID0gKGtlcm5l bF91bG9uZ190KSZuZXRfaW50ZjRfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5U RVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgMHgxYzA1LCBVU0JfQ0xBU1NfQ09NTSwgMHgw MiwgMHhmZikgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhIVUFXRUlfVkVO RE9SX0lELCAweDFjMWYsIFVTQl9DTEFTU19DT01NLCAweDAyLCAweGZmKSB9LA0KIAl7IFVTQl9E RVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQsIDB4MWMyMywgVVNCX0NM QVNTX0NPTU0sIDB4MDIsIDB4ZmYpIH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lO Rk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE3MywgMHhmZiwgMHhmZiwgMHhm ZiksDQogCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpICZuZXRfaW50ZjFfYmxhY2ts aXN0IH0sDQpAQCAtMTI2MCw2ICsxMjYzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2 aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfREVWSUNFKENJTlRFUklPTl9WRU5ET1Jf SUQsIENJTlRFUklPTl9QUk9EVUNUX0VVM19FKSB9LA0KIAl7IFVTQl9ERVZJQ0UoQ0lOVEVSSU9O X1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfRVUzX1ApIH0sDQogCXsgVVNCX0RFVklDRShD SU5URVJJT05fVkVORE9SX0lELCBDSU5URVJJT05fUFJPRFVDVF9QSDgpIH0sDQorCXsgVVNCX0RF VklDRShDSU5URVJJT05fVkVORE9SX0lELCBDSU5URVJJT05fUFJPRFVDVF9BSDYpIH0sDQorCXsg VVNCX0RFVklDRShDSU5URVJJT05fVkVORE9SX0lELCBDSU5URVJJT05fUFJPRFVDVF9QTFM4KSB9 LA0KIAl7IFVTQl9ERVZJQ0UoQ0lOVEVSSU9OX1ZFTkRPUl9JRCwgQ0lOVEVSSU9OX1BST0RVQ1Rf SEMyOF9NRE0pIH0sIA0KIAl7IFVTQl9ERVZJQ0UoQ0lOVEVSSU9OX1ZFTkRPUl9JRCwgQ0lOVEVS SU9OX1BST0RVQ1RfSEMyOF9NRE1ORVQpIH0sDQogCXsgVVNCX0RFVklDRShTSUVNRU5TX1ZFTkRP Ul9JRCwgQ0lOVEVSSU9OX1BST0RVQ1RfSEMyNV9NRE0pIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2Ivc2VyaWFsL3FjYXV4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvcWNhdXguYw0KaW5kZXgg ODcyNzFlMy4uMTUzZDcxOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9xY2F1eC5j DQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvcWNhdXguYw0KQEAgLTY5LDYgKzY5LDcgQEAgc3Rh dGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlkX3RhYmxlW10gPSB7DQogCXsgVVNCX1ZFTkRPUl9B TkRfSU5URVJGQUNFX0lORk8oVVRTVEFSQ09NX1ZFTkRPUl9JRCwgMHhmZiwgMHhmZCwgMHhmZikg fSwgIC8qIE5NRUEgKi8NCiAJeyBVU0JfVkVORE9SX0FORF9JTlRFUkZBQ0VfSU5GTyhVVFNUQVJD T01fVkVORE9SX0lELCAweGZmLCAweGZlLCAweGZmKSB9LCAgLyogV01DICovDQogCXsgVVNCX1ZF TkRPUl9BTkRfSU5URVJGQUNFX0lORk8oVVRTVEFSQ09NX1ZFTkRPUl9JRCwgMHhmZiwgMHhmZiwg MHhmZikgfSwgIC8qIERJQUcgKi8NCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygw eDFmYWMsIDB4MDE1MSwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCiAJeyB9LA0KIH07DQogTU9EVUxF X0RFVklDRV9UQUJMRSh1c2IsIGlkX3RhYmxlKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9z dG9yYWdlL2luaXRpYWxpemVycy5jIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9pbml0aWFsaXplcnMu Yw0KaW5kZXggN2FiOTA0Ni4uMTA1ZDkwMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3N0b3Jh Z2UvaW5pdGlhbGl6ZXJzLmMNCisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvaW5pdGlhbGl6ZXJz LmMNCkBAIC05Miw4ICs5Miw4IEBAIGludCB1c2Jfc3Rvcl91Y3I2MXMyYl9pbml0KHN0cnVjdCB1 c19kYXRhICp1cykNCiAJcmV0dXJuIDA7DQogfQ0KIA0KLS8qIFRoaXMgcGxhY2VzIHRoZSBIVUFX RUkgdXNiIGRvbmdsZXMgaW4gbXVsdGktcG9ydCBtb2RlICovDQotc3RhdGljIGludCB1c2Jfc3Rv cl9odWF3ZWlfZmVhdHVyZV9pbml0KHN0cnVjdCB1c19kYXRhICp1cykNCisvKiBUaGlzIHBsYWNl cyB0aGUgSFVBV0VJIEUyMjAgZGV2aWNlcyBpbiBtdWx0aS1wb3J0IG1vZGUgKi8NCitpbnQgdXNi X3N0b3JfaHVhd2VpX2UyMjBfaW5pdChzdHJ1Y3QgdXNfZGF0YSAqdXMpDQogew0KIAlpbnQgcmVz dWx0Ow0KIA0KQEAgLTEwNCw3NSArMTA0LDMgQEAgc3RhdGljIGludCB1c2Jfc3Rvcl9odWF3ZWlf ZmVhdHVyZV9pbml0KHN0cnVjdCB1c19kYXRhICp1cykNCiAJVVNfREVCVUdQKCJIdWF3ZWkgbW9k ZSBzZXQgcmVzdWx0IGlzICVkXG4iLCByZXN1bHQpOw0KIAlyZXR1cm4gMDsNCiB9DQotDQotLyoN Ci0gKiBJdCB3aWxsIHNlbmQgYSBzY3NpIHN3aXRjaCBjb21tYW5kIGNhbGxlZCByZXdpbmQnIHRv IGh1YXdlaSBkb25nbGUuDQotICogV2hlbiB0aGUgZG9uZ2xlIHJlY2VpdmVzIHRoaXMgY29tbWFu ZCBhdCB0aGUgZmlyc3QgdGltZSwNCi0gKiBpdCB3aWxsIHJlYm9vdCBpbW1lZGlhdGVseS4gQWZ0 ZXIgcmVib290ZWQsIGl0IHdpbGwgaWdub3JlIHRoaXMgY29tbWFuZC4NCi0gKiBTbyBpdCBpcyAg dW5uZWNlc3NhcnkgdG8gcmVhZCBpdHMgcmVzcG9uc2UuDQotICovDQotc3RhdGljIGludCB1c2Jf c3Rvcl9odWF3ZWlfc2NzaV9pbml0KHN0cnVjdCB1c19kYXRhICp1cykNCi17DQotCWludCByZXN1 bHQgPSAwOw0KLQlpbnQgYWN0X2xlbiA9IDA7DQotCXN0cnVjdCBidWxrX2NiX3dyYXAgKmJjYncg PSAoc3RydWN0IGJ1bGtfY2Jfd3JhcCAqKSB1cy0+aW9idWY7DQotCWNoYXIgcmV3aW5kX2NtZFtd ID0gezB4MTEsIDB4MDYsIDB4MjAsIDB4MDAsIDB4MDAsIDB4MDEsIDB4MDEsIDB4MDAsDQotCQkJ MHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH07DQotDQotCWJj YnctPlNpZ25hdHVyZSA9IGNwdV90b19sZTMyKFVTX0JVTEtfQ0JfU0lHTik7DQotCWJjYnctPlRh ZyA9IDA7DQotCWJjYnctPkRhdGFUcmFuc2Zlckxlbmd0aCA9IDA7DQotCWJjYnctPkZsYWdzID0g YmNidy0+THVuID0gMDsNCi0JYmNidy0+TGVuZ3RoID0gc2l6ZW9mKHJld2luZF9jbWQpOw0KLQlt ZW1zZXQoYmNidy0+Q0RCLCAwLCBzaXplb2YoYmNidy0+Q0RCKSk7DQotCW1lbWNweShiY2J3LT5D REIsIHJld2luZF9jbWQsIHNpemVvZihyZXdpbmRfY21kKSk7DQotDQotCXJlc3VsdCA9IHVzYl9z dG9yX2J1bGtfdHJhbnNmZXJfYnVmKHVzLCB1cy0+c2VuZF9idWxrX3BpcGUsIGJjYncsDQotCQkJ CQlVU19CVUxLX0NCX1dSQVBfTEVOLCAmYWN0X2xlbik7DQotCVVTX0RFQlVHUCgidHJhbnNmZXIg YWN0dWFsIGxlbmd0aD0lZCwgcmVzdWx0PSVkXG4iLCBhY3RfbGVuLCByZXN1bHQpOw0KLQlyZXR1 cm4gcmVzdWx0Ow0KLX0NCi0NCi0vKg0KLSAqIEl0IHRyaWVzIHRvIGZpbmQgdGhlIHN1cHBvcnRl ZCBIdWF3ZWkgVVNCIGRvbmdsZXMuDQotICogSW4gSHVhd2VpLCB0aGV5IGFzc2lnbiB0aGUgZm9s bG93aW5nIHByb2R1Y3QgSURzDQotICogZm9yIGFsbCBvZiB0aGVpciBtb2JpbGUgYnJvYWRiYW5k IGRvbmdsZXMsDQotICogaW5jbHVkaW5nIHRoZSBuZXcgZG9uZ2xlcyBpbiB0aGUgZnV0dXJlLg0K LSAqIFNvIGlmIHRoZSBwcm9kdWN0IElEIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGlzIGxpc3QsDQot ICogaXQgbWVhbnMgaXQgaXMgbm90IEh1YXdlaSdzIG1vYmlsZSBicm9hZGJhbmQgZG9uZ2xlcy4N Ci0gKi8NCi1zdGF0aWMgaW50IHVzYl9zdG9yX2h1YXdlaV9kb25nbGVzX3BpZChzdHJ1Y3QgdXNf ZGF0YSAqdXMpDQotew0KLQlzdHJ1Y3QgdXNiX2ludGVyZmFjZV9kZXNjcmlwdG9yICppZGVzYzsN Ci0JaW50IGlkUHJvZHVjdDsNCi0NCi0JaWRlc2MgPSAmdXMtPnB1c2JfaW50Zi0+Y3VyX2FsdHNl dHRpbmctPmRlc2M7DQotCWlkUHJvZHVjdCA9IGxlMTZfdG9fY3B1KHVzLT5wdXNiX2Rldi0+ZGVz Y3JpcHRvci5pZFByb2R1Y3QpOw0KLQkvKiBUaGUgZmlyc3QgcG9ydCBpcyBDRFJPTSwNCi0JICog bWVhbnMgdGhlIGRvbmdsZSBpbiB0aGUgc2luZ2xlIHBvcnQgbW9kZSwNCi0JICogYW5kIGEgc3dp dGNoIGNvbW1hbmQgaXMgcmVxdWlyZWQgdG8gYmUgc2VudC4gKi8NCi0JaWYgKGlkZXNjICYmIGlk ZXNjLT5iSW50ZXJmYWNlTnVtYmVyID09IDApIHsNCi0JCWlmICgoaWRQcm9kdWN0ID09IDB4MTAw MSkNCi0JCQl8fCAoaWRQcm9kdWN0ID09IDB4MTAwMykNCi0JCQl8fCAoaWRQcm9kdWN0ID09IDB4 MTAwNCkNCi0JCQl8fCAoaWRQcm9kdWN0ID49IDB4MTQwMSAmJiBpZFByb2R1Y3QgPD0gMHgxNTAw KQ0KLQkJCXx8IChpZFByb2R1Y3QgPj0gMHgxNTA1ICYmIGlkUHJvZHVjdCA8PSAweDE2MDApDQot CQkJfHwgKGlkUHJvZHVjdCA+PSAweDFjMDIgJiYgaWRQcm9kdWN0IDw9IDB4MjIwMikpIHsNCi0J CQlyZXR1cm4gMTsNCi0JCX0NCi0JfQ0KLQlyZXR1cm4gMDsNCi19DQotDQotaW50IHVzYl9zdG9y X2h1YXdlaV9pbml0KHN0cnVjdCB1c19kYXRhICp1cykNCi17DQotCWludCByZXN1bHQgPSAwOw0K LQ0KLQlpZiAodXNiX3N0b3JfaHVhd2VpX2RvbmdsZXNfcGlkKHVzKSkgew0KLQkJaWYgKGxlMTZf dG9fY3B1KHVzLT5wdXNiX2Rldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpID49IDB4MTQ0NikNCi0J CQlyZXN1bHQgPSB1c2Jfc3Rvcl9odWF3ZWlfc2NzaV9pbml0KHVzKTsNCi0JCWVsc2UNCi0JCQly ZXN1bHQgPSB1c2Jfc3Rvcl9odWF3ZWlfZmVhdHVyZV9pbml0KHVzKTsNCi0JfQ0KLQlyZXR1cm4g cmVzdWx0Ow0KLX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zdG9yYWdlL2luaXRpYWxpemVy cy5oIGIvZHJpdmVycy91c2Ivc3RvcmFnZS9pbml0aWFsaXplcnMuaA0KaW5kZXggNTM3NmQ0Zi4u NTI5MzI3ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvaW5pdGlhbGl6ZXJzLmgN CisrKyBiL2RyaXZlcnMvdXNiL3N0b3JhZ2UvaW5pdGlhbGl6ZXJzLmgNCkBAIC00Niw1ICs0Niw1 IEBAIGludCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdChzdHJ1Y3QgdXNfZGF0YSAqdXMpOw0KICAqIGZs YXNoIHJlYWRlciAqLw0KIGludCB1c2Jfc3Rvcl91Y3I2MXMyYl9pbml0KHN0cnVjdCB1c19kYXRh ICp1cyk7DQogDQotLyogVGhpcyBwbGFjZXMgdGhlIEhVQVdFSSB1c2IgZG9uZ2xlcyBpbiBtdWx0 aS1wb3J0IG1vZGUgKi8NCi1pbnQgdXNiX3N0b3JfaHVhd2VpX2luaXQoc3RydWN0IHVzX2RhdGEg KnVzKTsNCisvKiBUaGlzIHBsYWNlcyB0aGUgSFVBV0VJIEUyMjAgZGV2aWNlcyBpbiBtdWx0aS1w b3J0IG1vZGUgKi8NCitpbnQgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdChzdHJ1Y3QgdXNfZGF0 YSAqdXMpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgg Yi9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1YWxfZGV2cy5oDQppbmRleCAxMjY0MGVmLi5mYThh MWIyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaA0KKysr IGIvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFsX2RldnMuaA0KQEAgLTE1MTUsMTAgKzE1MTUs MzM1IEBAIFVOVVNVQUxfREVWKCAgMHgxMjEwLCAweDAwMDMsIDB4MDEwMCwgMHgwMTAwLA0KIC8q IFJlcG9ydGVkIGJ5IGZhbmd4aWFvemhpIDxodWFuYW5odUBodWF3ZWkuY29tPg0KICAqIFRoaXMg YnJpbmdzIHRoZSBIVUFXRUkgZGF0YSBjYXJkIGRldmljZXMgaW50byBtdWx0aS1wb3J0IG1vZGUN CiAgKi8NCi1VTlVTVUFMX1ZFTkRPUl9JTlRGKDB4MTJkMSwgMHgwOCwgMHgwNiwgMHg1MCwNCitV TlVTVUFMX0RFViggIDB4MTJkMSwgMHgxMDAxLCAweDAwMDAsIDB4MDAwMCwNCiAJCSJIVUFXRUkg TU9CSUxFIiwNCiAJCSJNYXNzIFN0b3JhZ2UiLA0KLQkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RF VklDRSwgdXNiX3N0b3JfaHVhd2VpX2luaXQsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVW SUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAw eDEyZDEsIDB4MTAwMywgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQki TWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9y X2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxMDA0 LCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2Ui LA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBf aW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MDEsIDB4MDAwMCwgMHgw MDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0Nf REVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCks DQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQwMiwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVB V0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9Q Ul9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RF ViggIDB4MTJkMSwgMHgxNDAzLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwN CisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNi X3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAw eDE0MDQsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3Rv cmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlf ZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQwNSwgMHgwMDAw LCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVT Ql9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQor CQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDA2LCAweDAwMDAsIDB4MDAwMCwNCisJ CSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwg VVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNV QUxfREVWKCAgMHgxMmQxLCAweDE0MDcsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJ TEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNF LCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEy ZDEsIDB4MTQwOCwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFz cyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1 YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDA5LCAw eDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0K KwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5p dCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MEEsIDB4MDAwMCwgMHgwMDAw LA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVW SUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQor VU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQwQiwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJ IE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9E RVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFVigg IDB4MTJkMSwgMHgxNDBDLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJ CSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0 b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0 MEQsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFn ZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIy MF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQwRSwgMHgwMDAwLCAw eDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9T Q19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkw KSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDBGLCAweDAwMDAsIDB4MDAwMCwNCisJCSJI VUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNC X1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxf REVWKCAgMHgxMmQxLCAweDE0MTAsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUi LA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1 c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEs IDB4MTQxMSwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBT dG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdl aV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDEyLCAweDAw MDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJ VVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwN CisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MTMsIDB4MDAwMCwgMHgwMDAwLA0K KwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNF LCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5V U1VBTF9ERVYoICAweDEyZDEsIDB4MTQxNCwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1P QklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJ Q0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4 MTJkMSwgMHgxNDE1LCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJN YXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3Jf aHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MTYs IDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIs DQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9p bml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQxNywgMHgwMDAwLCAweDAw MDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19E RVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwN CitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDE4LCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFX RUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BS X0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVW KCAgMHgxMmQxLCAweDE0MTksIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0K KwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jf c3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4 MTQxQSwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9y YWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9l MjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDFCLCAweDAwMDAs IDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNC X1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJ CTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MUMsIDB4MDAwMCwgMHgwMDAwLA0KKwkJ IkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBV U0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VB TF9ERVYoICAweDEyZDEsIDB4MTQxRCwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklM RSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0Us IHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJk MSwgMHgxNDFFLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNz IFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVh d2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MUYsIDB4 MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQor CQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0 LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQyMCwgMHgwMDAwLCAweDAwMDAs DQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJ Q0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitV TlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDIxLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkg TU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RF VklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAg MHgxMmQxLCAweDE0MjIsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJ Ik1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rv cl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQy MywgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdl IiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIw X2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDI0LCAweDAwMDAsIDB4 MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1ND X0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTAp LA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MjUsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhV QVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0Jf UFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9E RVYoICAweDEyZDEsIDB4MTQyNiwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIs DQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVz Yl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwg MHgxNDI3LCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0 b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2Vp X2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MjgsIDB4MDAw MCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlV U0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0K KwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQyOSwgMHgwMDAwLCAweDAwMDAsDQor CQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0Us IFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVT VUFMX0RFViggIDB4MTJkMSwgMHgxNDJBLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9C SUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklD RSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgx MmQxLCAweDE0MkIsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1h c3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9o dWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQyQywg MHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwN CisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2lu aXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDJELCAweDAwMDAsIDB4MDAw MCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RF VklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0K K1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MkUsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdF SSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJf REVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYo ICAweDEyZDEsIDB4MTQyRiwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQor CQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9z dG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgx NDMwLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3Jh Z2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2Uy MjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MzEsIDB4MDAwMCwg MHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0Jf U0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJ MCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQzMiwgMHgwMDAwLCAweDAwMDAsDQorCQki SFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVT Ql9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFM X0RFViggIDB4MTJkMSwgMHgxNDMzLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxF IiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwg dXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQx LCAweDE0MzQsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3Mg U3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3 ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQzNSwgMHgw MDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJ CVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQs DQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDM2LCAweDAwMDAsIDB4MDAwMCwN CisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklD RSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VO VVNVQUxfREVWKCAgMHgxMmQxLCAweDE0MzcsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBN T0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVW SUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAw eDEyZDEsIDB4MTQzOCwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQki TWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9y X2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDM5 LCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2Ui LA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBf aW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAweDE0M0EsIDB4MDAwMCwgMHgw MDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3RvcmFnZSIsDQorCQlVU0JfU0Nf REVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlfZTIyMF9pbml0LA0KKwkJMCks DQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQzQiwgMHgwMDAwLCAweDAwMDAsDQorCQkiSFVB V0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVTQl9TQ19ERVZJQ0UsIFVTQl9Q Ul9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQorCQkwKSwNCitVTlVTVUFMX0RF ViggIDB4MTJkMSwgMHgxNDNDLCAweDAwMDAsIDB4MDAwMCwNCisJCSJIVUFXRUkgTU9CSUxFIiwN CisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwgVVNCX1BSX0RFVklDRSwgdXNi X3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCisJCTApLA0KK1VOVVNVQUxfREVWKCAgMHgxMmQxLCAw eDE0M0QsIDB4MDAwMCwgMHgwMDAwLA0KKwkJIkhVQVdFSSBNT0JJTEUiLA0KKwkJIk1hc3MgU3Rv cmFnZSIsDQorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCB1c2Jfc3Rvcl9odWF3ZWlf ZTIyMF9pbml0LA0KKwkJMCksDQorVU5VU1VBTF9ERVYoICAweDEyZDEsIDB4MTQzRSwgMHgwMDAw LCAweDAwMDAsDQorCQkiSFVBV0VJIE1PQklMRSIsDQorCQkiTWFzcyBTdG9yYWdlIiwNCisJCVVT Ql9TQ19ERVZJQ0UsIFVTQl9QUl9ERVZJQ0UsIHVzYl9zdG9yX2h1YXdlaV9lMjIwX2luaXQsDQor CQkwKSwNCitVTlVTVUFMX0RFViggIDB4MTJkMSwgMHgxNDNGLCAweDAwMDAsIDB4MDAwMCwNCisJ CSJIVUFXRUkgTU9CSUxFIiwNCisJCSJNYXNzIFN0b3JhZ2UiLA0KKwkJVVNCX1NDX0RFVklDRSwg VVNCX1BSX0RFVklDRSwgdXNiX3N0b3JfaHVhd2VpX2UyMjBfaW5pdCwNCiAJCTApLA0KIA0KIC8q IFJlcG9ydGVkIGJ5IFZpbGl1cyBCaWxpbmtldmljaXVzIDx2aWxpc2FzIEFUIHh4eCBET1QgbHQp ICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy93MS93MS5jIGIvZHJpdmVycy93MS93MS5jDQppbmRl eCBjMzc0OTc4Li41MTQ5ZDRlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy93MS93MS5jDQorKysgYi9k cml2ZXJzL3cxL3cxLmMNCkBAIC05MTgsNyArOTE4LDggQEAgdm9pZCB3MV9zZWFyY2goc3RydWN0 IHcxX21hc3RlciAqZGV2LCB1OCBzZWFyY2hfdHlwZSwgdzFfc2xhdmVfZm91bmRfY2FsbGJhY2sg Y2INCiAJCQl0bXA2NCA9ICh0cmlwbGV0X3JldCA+PiAyKTsNCiAJCQlybiB8PSAodG1wNjQgPDwg aSk7DQogDQotCQkJaWYgKGt0aHJlYWRfc2hvdWxkX3N0b3AoKSkgew0KKwkJCS8qIGVuc3VyZSB3 ZSdyZSBjYWxsZWQgZnJvbSBrdGhyZWFkIGFuZCBub3QgYnkgbmV0bGluayBjYWxsYmFjayAqLw0K KwkJCWlmICghZGV2LT5wcml2ICYmIGt0aHJlYWRfc2hvdWxkX3N0b3AoKSkgew0KIAkJCQlkZXZf ZGJnKCZkZXYtPmRldiwgIkFib3J0IHcxX3NlYXJjaFxuIik7DQogCQkJCXJldHVybjsNCiAJCQl9 DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpYmFja19vcHMuYyBiL2Ry aXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaWJhY2tfb3BzLmMNCmluZGV4IGQwN2M0Y2QuLmU5NDdl NzggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jDQor KysgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2liYWNrX29wcy5jDQpAQCAtMTE0LDcgKzEx NCw4IEBAIHZvaWQgeGVuX3BjaWJrX3Jlc2V0X2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQ0K IAkJaWYgKGRldi0+bXNpX2VuYWJsZWQpDQogCQkJcGNpX2Rpc2FibGVfbXNpKGRldik7DQogI2Vu ZGlmDQotCQlwY2lfZGlzYWJsZV9kZXZpY2UoZGV2KTsNCisJCWlmIChwY2lfaXNfZW5hYmxlZChk ZXYpKQ0KKwkJCXBjaV9kaXNhYmxlX2RldmljZShkZXYpOw0KIA0KIAkJcGNpX3dyaXRlX2NvbmZp Z193b3JkKGRldiwgUENJX0NPTU1BTkQsIDApOw0KIA0KZGlmZiAtLWdpdCBhL2ZzL2Jsb2NrX2Rl di5jIGIvZnMvYmxvY2tfZGV2LmMNCmluZGV4IDYxM2VkZDguLjgzM2RkZGIgMTAwNjQ0DQotLS0g YS9mcy9ibG9ja19kZXYuYw0KKysrIGIvZnMvYmxvY2tfZGV2LmMNCkBAIC0xMDY0LDcgKzEwNjQs OSBAQCB2b2lkIGJkX3NldF9zaXplKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGxvZmZfdCBz aXplKQ0KIHsNCiAJdW5zaWduZWQgYnNpemUgPSBiZGV2X2xvZ2ljYWxfYmxvY2tfc2l6ZShiZGV2 KTsNCiANCi0JYmRldi0+YmRfaW5vZGUtPmlfc2l6ZSA9IHNpemU7DQorCW11dGV4X2xvY2soJmJk ZXYtPmJkX2lub2RlLT5pX211dGV4KTsNCisJaV9zaXplX3dyaXRlKGJkZXYtPmJkX2lub2RlLCBz aXplKTsNCisJbXV0ZXhfdW5sb2NrKCZiZGV2LT5iZF9pbm9kZS0+aV9tdXRleCk7DQogCXdoaWxl IChic2l6ZSA8IFBBR0VfQ0FDSEVfU0laRSkgew0KIAkJaWYgKHNpemUgJiBic2l6ZSkNCiAJCQli cmVhazsNCmRpZmYgLS1naXQgYS9mcy9idHJmcy92b2x1bWVzLmMgYi9mcy9idHJmcy92b2x1bWVz LmMNCmluZGV4IGY0YjgzOWYuLjk4OTkyMDUgMTAwNjQ0DQotLS0gYS9mcy9idHJmcy92b2x1bWVz LmMNCisrKyBiL2ZzL2J0cmZzL3ZvbHVtZXMuYw0KQEAgLTU0Myw2ICs1NDMsNyBAQCBzdGF0aWMg aW50IF9fYnRyZnNfY2xvc2VfZGV2aWNlcyhzdHJ1Y3QgYnRyZnNfZnNfZGV2aWNlcyAqZnNfZGV2 aWNlcykNCiAJCW5ld19kZXZpY2UtPndyaXRlYWJsZSA9IDA7DQogCQluZXdfZGV2aWNlLT5pbl9m c19tZXRhZGF0YSA9IDA7DQogCQluZXdfZGV2aWNlLT5jYW5fZGlzY2FyZCA9IDA7DQorCQlzcGlu X2xvY2tfaW5pdCgmbmV3X2RldmljZS0+aW9fbG9jayk7DQogCQlsaXN0X3JlcGxhY2VfcmN1KCZk ZXZpY2UtPmRldl9saXN0LCAmbmV3X2RldmljZS0+ZGV2X2xpc3QpOw0KIA0KIAkJY2FsbF9yY3Uo JmRldmljZS0+cmN1LCBmcmVlX2RldmljZSk7DQpAQCAtNTc2LDYgKzU3NywxMiBAQCBpbnQgYnRy ZnNfY2xvc2VfZGV2aWNlcyhzdHJ1Y3QgYnRyZnNfZnNfZGV2aWNlcyAqZnNfZGV2aWNlcykNCiAJ CV9fYnRyZnNfY2xvc2VfZGV2aWNlcyhmc19kZXZpY2VzKTsNCiAJCWZyZWVfZnNfZGV2aWNlcyhm c19kZXZpY2VzKTsNCiAJfQ0KKwkvKg0KKwkgKiBXYWl0IGZvciByY3Uga3dvcmtlcnMgdW5kZXIg X19idHJmc19jbG9zZV9kZXZpY2VzDQorCSAqIHRvIGZpbmlzaCBhbGwgYmxrZGV2X3B1dHMgc28g ZGV2aWNlIGlzIHJlYWxseQ0KKwkgKiBmcmVlIHdoZW4gdW1vdW50IGlzIGRvbmUuDQorCSAqLw0K KwlyY3VfYmFycmllcigpOw0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCmRpZmYgLS1naXQgYS9mcy9j aWZzL2NpZnNmcy5jIGIvZnMvY2lmcy9jaWZzZnMuYw0KaW5kZXggYjE0NTFhZi4uYjNhMmE0MCAx MDA2NDQNCi0tLSBhL2ZzL2NpZnMvY2lmc2ZzLmMNCisrKyBiL2ZzL2NpZnMvY2lmc2ZzLmMNCkBA IC01NjEsNiArNTYxLDExIEBAIGNpZnNfZ2V0X3Jvb3Qoc3RydWN0IHNtYl92b2wgKnZvbCwgc3Ry dWN0IHN1cGVyX2Jsb2NrICpzYikNCiAJCQlkZW50cnkgPSBFUlJfUFRSKC1FTk9FTlQpOw0KIAkJ CWJyZWFrOw0KIAkJfQ0KKwkJaWYgKCFTX0lTRElSKGRpci0+aV9tb2RlKSkgew0KKwkJCWRwdXQo ZGVudHJ5KTsNCisJCQlkZW50cnkgPSBFUlJfUFRSKC1FTk9URElSKTsNCisJCQlicmVhazsNCisJ CX0NCiANCiAJCS8qIHNraXAgc2VwYXJhdG9ycyAqLw0KIAkJd2hpbGUgKCpzID09IHNlcCkNCmRp ZmYgLS1naXQgYS9mcy9jb21wYXQuYyBiL2ZzL2NvbXBhdC5jDQppbmRleCBlMDdhM2QzLi40YmYw ODJkIDEwMDY0NA0KLS0tIGEvZnMvY29tcGF0LmMNCisrKyBiL2ZzL2NvbXBhdC5jDQpAQCAtNTcy LDYgKzU3MiwxMCBAQCBzc2l6ZV90IGNvbXBhdF9yd19jb3B5X2NoZWNrX3V2ZWN0b3IoaW50IHR5 cGUsDQogCX0NCiAJKnJldF9wb2ludGVyID0gaW92Ow0KIA0KKwlyZXQgPSAtRUZBVUxUOw0KKwlp ZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgdXZlY3RvciwgbnJfc2VncypzaXplb2YoKnV2ZWN0 b3IpKSkNCisJCWdvdG8gb3V0Ow0KKw0KIAkvKg0KIAkgKiBTaW5nbGUgdW5peCBzcGVjaWZpY2F0 aW9uOg0KIAkgKiBXZSBzaG91bGQgLUVJTlZBTCBpZiBhbiBlbGVtZW50IGxlbmd0aCBpcyBub3Qg Pj0gMCBhbmQgZml0dGluZyBhbg0KQEAgLTExMDMsMTcgKzExMDcsMTIgQEAgc3RhdGljIHNzaXpl X3QgY29tcGF0X2RvX3JlYWR2X3dyaXRldihpbnQgdHlwZSwgc3RydWN0IGZpbGUgKmZpbGUsDQog CWlmICghZmlsZS0+Zl9vcCkNCiAJCWdvdG8gb3V0Ow0KIA0KLQlyZXQgPSAtRUZBVUxUOw0KLQlp ZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgdXZlY3RvciwgbnJfc2VncypzaXplb2YoKnV2ZWN0 b3IpKSkNCi0JCWdvdG8gb3V0Ow0KLQ0KLQl0b3RfbGVuID0gY29tcGF0X3J3X2NvcHlfY2hlY2tf dXZlY3Rvcih0eXBlLCB1dmVjdG9yLCBucl9zZWdzLA0KKwlyZXQgPSBjb21wYXRfcndfY29weV9j aGVja191dmVjdG9yKHR5cGUsIHV2ZWN0b3IsIG5yX3NlZ3MsDQogCQkJCQkgICAgICAgVUlPX0ZB U1RJT1YsIGlvdnN0YWNrLCAmaW92LCAxKTsNCi0JaWYgKHRvdF9sZW4gPT0gMCkgew0KLQkJcmV0 ID0gMDsNCisJaWYgKHJldCA8PSAwKQ0KIAkJZ290byBvdXQ7DQotCX0NCiANCisJdG90X2xlbiA9 IHJldDsNCiAJcmV0ID0gcndfdmVyaWZ5X2FyZWEodHlwZSwgZmlsZSwgcG9zLCB0b3RfbGVuKTsN CiAJaWYgKHJldCA8IDApDQogCQlnb3RvIG91dDsNCmRpZmYgLS1naXQgYS9mcy9leHQzL3N1cGVy LmMgYi9mcy9leHQzL3N1cGVyLmMNCmluZGV4IDkyMmQyODkuLmI3ZjMxNGYgMTAwNjQ0DQotLS0g YS9mcy9leHQzL3N1cGVyLmMNCisrKyBiL2ZzL2V4dDMvc3VwZXIuYw0KQEAgLTM3NCw3ICszNzQs NyBAQCBzdGF0aWMgc3RydWN0IGJsb2NrX2RldmljZSAqZXh0M19ibGtkZXZfZ2V0KGRldl90IGRl diwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikNCiAJcmV0dXJuIGJkZXY7DQogDQogZmFpbDoNCi0J ZXh0M19tc2coc2IsICJlcnJvcjogZmFpbGVkIHRvIG9wZW4gam91cm5hbCBkZXZpY2UgJXM6ICVs ZCIsDQorCWV4dDNfbXNnKHNiLCBLRVJOX0VSUiwgImVycm9yOiBmYWlsZWQgdG8gb3BlbiBqb3Vy bmFsIGRldmljZSAlczogJWxkIiwNCiAJCV9fYmRldm5hbWUoZGV2LCBiKSwgUFRSX0VSUihiZGV2 KSk7DQogDQogCXJldHVybiBOVUxMOw0KQEAgLTkwMiw3ICs5MDIsNyBAQCBzdGF0aWMgZXh0M19m c2Jsa190IGdldF9zYl9ibG9jayh2b2lkICoqZGF0YSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYikN CiAJLyp0b2RvOiB1c2Ugc2ltcGxlX3N0cnRvbGwgd2l0aCA+MzJiaXQgZXh0MyAqLw0KIAlzYl9i bG9jayA9IHNpbXBsZV9zdHJ0b3VsKG9wdGlvbnMsICZvcHRpb25zLCAwKTsNCiAJaWYgKCpvcHRp b25zICYmICpvcHRpb25zICE9ICcsJykgew0KLQkJZXh0M19tc2coc2IsICJlcnJvcjogaW52YWxp ZCBzYiBzcGVjaWZpY2F0aW9uOiAlcyIsDQorCQlleHQzX21zZyhzYiwgS0VSTl9FUlIsICJlcnJv cjogaW52YWxpZCBzYiBzcGVjaWZpY2F0aW9uOiAlcyIsDQogCQkgICAgICAgKGNoYXIgKikgKmRh dGEpOw0KIAkJcmV0dXJuIDE7DQogCX0NCmRpZmYgLS1naXQgYS9mcy9mYXQvbmFtZWlfdmZhdC5j IGIvZnMvZmF0L25hbWVpX3ZmYXQuYw0KaW5kZXggYTg3YTY1Ni4uYzI1Y2YxNSAxMDA2NDQNCi0t LSBhL2ZzL2ZhdC9uYW1laV92ZmF0LmMNCisrKyBiL2ZzL2ZhdC9uYW1laV92ZmF0LmMNCkBAIC01 MTIsNyArNTEyLDggQEAgeGxhdGVfdG9fdW5pKGNvbnN0IHVuc2lnbmVkIGNoYXIgKm5hbWUsIGlu dCBsZW4sIHVuc2lnbmVkIGNoYXIgKm91dG5hbWUsDQogCWludCBjaGFybGVuOw0KIA0KIAlpZiAo dXRmOCkgew0KLQkJKm91dGxlbiA9IHV0ZjhzX3RvX3V0ZjE2cyhuYW1lLCBsZW4sICh3Y2hhcl90 ICopb3V0bmFtZSk7DQorCQkqb3V0bGVuID0gdXRmOHNfdG9fdXRmMTZzKG5hbWUsIGxlbiwgVVRG MTZfSE9TVF9FTkRJQU4sDQorCQkJCSh3Y2hhcl90ICopIG91dG5hbWUsIEZBVF9MRk5fTEVOICsg Mik7DQogCQlpZiAoKm91dGxlbiA8IDApDQogCQkJcmV0dXJuICpvdXRsZW47DQogCQllbHNlIGlm ICgqb3V0bGVuID4gRkFUX0xGTl9MRU4pDQpkaWZmIC0tZ2l0IGEvZnMvbmZzL3VubGluay5jIGIv ZnMvbmZzL3VubGluay5jDQppbmRleCA0ZjkzMTlhLi45OGYxMjYxIDEwMDY0NA0KLS0tIGEvZnMv bmZzL3VubGluay5jDQorKysgYi9mcy9uZnMvdW5saW5rLmMNCkBAIC0zNjYsMjAgKzM2NiwxNCBA QCBzdGF0aWMgdm9pZCBuZnNfYXN5bmNfcmVuYW1lX2RvbmUoc3RydWN0IHJwY190YXNrICp0YXNr LCB2b2lkICpjYWxsZGF0YSkNCiAJc3RydWN0IGlub2RlICpvbGRfZGlyID0gZGF0YS0+b2xkX2Rp cjsNCiAJc3RydWN0IGlub2RlICpuZXdfZGlyID0gZGF0YS0+bmV3X2RpcjsNCiAJc3RydWN0IGRl bnRyeSAqb2xkX2RlbnRyeSA9IGRhdGEtPm9sZF9kZW50cnk7DQotCXN0cnVjdCBkZW50cnkgKm5l d19kZW50cnkgPSBkYXRhLT5uZXdfZGVudHJ5Ow0KIA0KIAlpZiAoIU5GU19QUk9UTyhvbGRfZGly KS0+cmVuYW1lX2RvbmUodGFzaywgb2xkX2RpciwgbmV3X2RpcikpIHsNCiAJCXJwY19yZXN0YXJ0 X2NhbGxfcHJlcGFyZSh0YXNrKTsNCiAJCXJldHVybjsNCiAJfQ0KIA0KLQlpZiAodGFzay0+dGtf c3RhdHVzICE9IDApIHsNCisJaWYgKHRhc2stPnRrX3N0YXR1cyAhPSAwKQ0KIAkJbmZzX2NhbmNl bF9hc3luY191bmxpbmsob2xkX2RlbnRyeSk7DQotCQlyZXR1cm47DQotCX0NCi0NCi0JZF9kcm9w KG9sZF9kZW50cnkpOw0KLQlkX2Ryb3AobmV3X2RlbnRyeSk7DQogfQ0KIA0KIC8qKg0KQEAgLTU4 OSw2ICs1ODMsMTggQEAgbmZzX3NpbGx5cmVuYW1lKHN0cnVjdCBpbm9kZSAqZGlyLCBzdHJ1Y3Qg ZGVudHJ5ICpkZW50cnkpDQogCWVycm9yID0gcnBjX3dhaXRfZm9yX2NvbXBsZXRpb25fdGFzayh0 YXNrKTsNCiAJaWYgKGVycm9yID09IDApDQogCQllcnJvciA9IHRhc2stPnRrX3N0YXR1czsNCisJ c3dpdGNoIChlcnJvcikgew0KKwljYXNlIDA6DQorCQkvKiBUaGUgcmVuYW1lIHN1Y2NlZWRlZCAq Lw0KKwkJbmZzX3NldF92ZXJpZmllcihkZW50cnksIG5mc19zYXZlX2NoYW5nZV9hdHRyaWJ1dGUo ZGlyKSk7DQorCQlkX21vdmUoZGVudHJ5LCBzZGVudHJ5KTsNCisJCWJyZWFrOw0KKwljYXNlIC1F UkVTVEFSVFNZUzoNCisJCS8qIFRoZSByZXN1bHQgb2YgdGhlIHJlbmFtZSBpcyB1bmtub3duLiBQ bGF5IGl0IHNhZmUgYnkNCisJCSAqIGZvcmNpbmcgYSBuZXcgbG9va3VwICovDQorCQlkX2Ryb3Ao ZGVudHJ5KTsNCisJCWRfZHJvcChzZGVudHJ5KTsNCisJfQ0KIAlycGNfcHV0X3Rhc2sodGFzayk7 DQogb3V0X2RwdXQ6DQogCWRwdXQoc2RlbnRyeSk7DQpkaWZmIC0tZ2l0IGEvZnMvbmxzL25sc19i YXNlLmMgYi9mcy9ubHMvbmxzX2Jhc2UuYw0KaW5kZXggNDRhODhhOS4uMGViMDU5ZWMgMTAwNjQ0 DQotLS0gYS9mcy9ubHMvbmxzX2Jhc2UuYw0KKysrIGIvZnMvbmxzL25sc19iYXNlLmMNCkBAIC0x MTQsMzQgKzExNCw1NyBAQCBpbnQgdXRmMzJfdG9fdXRmOCh1bmljb2RlX3QgdSwgdTggKnMsIGlu dCBtYXhsZW4pDQogfQ0KIEVYUE9SVF9TWU1CT0wodXRmMzJfdG9fdXRmOCk7DQogDQotaW50IHV0 ZjhzX3RvX3V0ZjE2cyhjb25zdCB1OCAqcywgaW50IGxlbiwgd2NoYXJfdCAqcHdjcykNCitzdGF0 aWMgaW5saW5lIHZvaWQgcHV0X3V0ZjE2KHdjaGFyX3QgKnMsIHVuc2lnbmVkIGMsIGVudW0gdXRm MTZfZW5kaWFuIGVuZGlhbikNCit7DQorCXN3aXRjaCAoZW5kaWFuKSB7DQorCWRlZmF1bHQ6DQor CQkqcyA9ICh3Y2hhcl90KSBjOw0KKwkJYnJlYWs7DQorCWNhc2UgVVRGMTZfTElUVExFX0VORElB TjoNCisJCSpzID0gX19jcHVfdG9fbGUxNihjKTsNCisJCWJyZWFrOw0KKwljYXNlIFVURjE2X0JJ R19FTkRJQU46DQorCQkqcyA9IF9fY3B1X3RvX2JlMTYoYyk7DQorCQlicmVhazsNCisJfQ0KK30N CisNCitpbnQgdXRmOHNfdG9fdXRmMTZzKGNvbnN0IHU4ICpzLCBpbnQgbGVuLCBlbnVtIHV0ZjE2 X2VuZGlhbiBlbmRpYW4sDQorCQl3Y2hhcl90ICpwd2NzLCBpbnQgbWF4bGVuKQ0KIHsNCiAJdTE2 ICpvcDsNCiAJaW50IHNpemU7DQogCXVuaWNvZGVfdCB1Ow0KIA0KIAlvcCA9IHB3Y3M7DQotCXdo aWxlICgqcyAmJiBsZW4gPiAwKSB7DQorCXdoaWxlIChsZW4gPiAwICYmIG1heGxlbiA+IDAgJiYg KnMpIHsNCiAJCWlmICgqcyAmIDB4ODApIHsNCiAJCQlzaXplID0gdXRmOF90b191dGYzMihzLCBs ZW4sICZ1KTsNCiAJCQlpZiAoc2l6ZSA8IDApDQogCQkJCXJldHVybiAtRUlOVkFMOw0KKwkJCXMg Kz0gc2l6ZTsNCisJCQlsZW4gLT0gc2l6ZTsNCiANCiAJCQlpZiAodSA+PSBQTEFORV9TSVpFKSB7 DQorCQkJCWlmIChtYXhsZW4gPCAyKQ0KKwkJCQkJYnJlYWs7DQogCQkJCXUgLT0gUExBTkVfU0la RTsNCi0JCQkJKm9wKysgPSAod2NoYXJfdCkgKFNVUlJPR0FURV9QQUlSIHwNCi0JCQkJCQkoKHUg Pj4gMTApICYgU1VSUk9HQVRFX0JJVFMpKTsNCi0JCQkJKm9wKysgPSAod2NoYXJfdCkgKFNVUlJP R0FURV9QQUlSIHwNCisJCQkJcHV0X3V0ZjE2KG9wKyssIFNVUlJPR0FURV9QQUlSIHwNCisJCQkJ CQkoKHUgPj4gMTApICYgU1VSUk9HQVRFX0JJVFMpLA0KKwkJCQkJCWVuZGlhbik7DQorCQkJCXB1 dF91dGYxNihvcCsrLCBTVVJST0dBVEVfUEFJUiB8DQogCQkJCQkJU1VSUk9HQVRFX0xPVyB8DQot CQkJCQkJKHUgJiBTVVJST0dBVEVfQklUUykpOw0KKwkJCQkJCSh1ICYgU1VSUk9HQVRFX0JJVFMp LA0KKwkJCQkJCWVuZGlhbik7DQorCQkJCW1heGxlbiAtPSAyOw0KIAkJCX0gZWxzZSB7DQotCQkJ CSpvcCsrID0gKHdjaGFyX3QpIHU7DQorCQkJCXB1dF91dGYxNihvcCsrLCB1LCBlbmRpYW4pOw0K KwkJCQltYXhsZW4tLTsNCiAJCQl9DQotCQkJcyArPSBzaXplOw0KLQkJCWxlbiAtPSBzaXplOw0K IAkJfSBlbHNlIHsNCi0JCQkqb3ArKyA9ICpzKys7DQorCQkJcHV0X3V0ZjE2KG9wKyssICpzKyss IGVuZGlhbik7DQogCQkJbGVuLS07DQorCQkJbWF4bGVuLS07DQogCQl9DQogCX0NCiAJcmV0dXJu IG9wIC0gcHdjczsNCmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmMNCmluZGV4IDA1 ZWQ1Y2EuLjhjYTg4ZmMgMTAwNjQ0DQotLS0gYS9mcy9waXBlLmMNCisrKyBiL2ZzL3BpcGUuYw0K QEAgLTg1OSw2ICs4NTksOSBAQCBwaXBlX3Jkd3Jfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz dHJ1Y3QgZmlsZSAqZmlscCkNCiB7DQogCWludCByZXQgPSAtRU5PRU5UOw0KIA0KKwlpZiAoIShm aWxwLT5mX21vZGUgJiAoRk1PREVfUkVBRHxGTU9ERV9XUklURSkpKQ0KKwkJcmV0dXJuIC1FSU5W QUw7DQorDQogCW11dGV4X2xvY2soJmlub2RlLT5pX211dGV4KTsNCiANCiAJaWYgKGlub2RlLT5p X3BpcGUpIHsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RldmljZS1tYXBwZXIuaCBiL2lu Y2x1ZGUvbGludXgvZGV2aWNlLW1hcHBlci5oDQppbmRleCA5OGYzNGI4Li42NzEyYWI2IDEwMDY0 NA0KLS0tIGEvaW5jbHVkZS9saW51eC9kZXZpY2UtbWFwcGVyLmgNCisrKyBiL2luY2x1ZGUvbGlu dXgvZGV2aWNlLW1hcHBlci5oDQpAQCAtNzIsOCArNzIsOCBAQCB0eXBlZGVmIHZvaWQgKCpkbV9w b3N0c3VzcGVuZF9mbikgKHN0cnVjdCBkbV90YXJnZXQgKnRpKTsNCiB0eXBlZGVmIGludCAoKmRt X3ByZXJlc3VtZV9mbikgKHN0cnVjdCBkbV90YXJnZXQgKnRpKTsNCiB0eXBlZGVmIHZvaWQgKCpk bV9yZXN1bWVfZm4pIChzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSk7DQogDQotdHlwZWRlZiBpbnQgKCpk bV9zdGF0dXNfZm4pIChzdHJ1Y3QgZG1fdGFyZ2V0ICp0aSwgc3RhdHVzX3R5cGVfdCBzdGF0dXNf dHlwZSwNCi0JCQkgICAgIGNoYXIgKnJlc3VsdCwgdW5zaWduZWQgaW50IG1heGxlbik7DQordHlw ZWRlZiB2b2lkICgqZG1fc3RhdHVzX2ZuKSAoc3RydWN0IGRtX3RhcmdldCAqdGksIHN0YXR1c190 eXBlX3Qgc3RhdHVzX3R5cGUsDQorCQkJICAgICAgY2hhciAqcmVzdWx0LCB1bnNpZ25lZCBtYXhs ZW4pOw0KIA0KIHR5cGVkZWYgaW50ICgqZG1fbWVzc2FnZV9mbikgKHN0cnVjdCBkbV90YXJnZXQg KnRpLCB1bnNpZ25lZCBhcmdjLCBjaGFyICoqYXJndik7DQogDQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9lZmkuaCBiL2luY2x1ZGUvbGludXgvZWZpLmgNCmluZGV4IDE3MjFjNDEuLmNlOTVh NGIgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L2VmaS5oDQorKysgYi9pbmNsdWRlL2xpbnV4 L2VmaS5oDQpAQCAtMzAsNyArMzAsMTIgQEANCiAjZGVmaW5lIEVGSV9VTlNVUFBPUlRFRAkJKCAz IHwgKDFVTCA8PCAoQklUU19QRVJfTE9ORy0xKSkpDQogI2RlZmluZSBFRklfQkFEX0JVRkZFUl9T SVpFICAgICAoIDQgfCAoMVVMIDw8IChCSVRTX1BFUl9MT05HLTEpKSkNCiAjZGVmaW5lIEVGSV9C VUZGRVJfVE9PX1NNQUxMCSggNSB8ICgxVUwgPDwgKEJJVFNfUEVSX0xPTkctMSkpKQ0KKyNkZWZp bmUgRUZJX05PVF9SRUFEWQkJKCA2IHwgKDFVTCA8PCAoQklUU19QRVJfTE9ORy0xKSkpDQorI2Rl ZmluZSBFRklfREVWSUNFX0VSUk9SCSggNyB8ICgxVUwgPDwgKEJJVFNfUEVSX0xPTkctMSkpKQ0K KyNkZWZpbmUgRUZJX1dSSVRFX1BST1RFQ1RFRAkoIDggfCAoMVVMIDw8IChCSVRTX1BFUl9MT05H LTEpKSkNCisjZGVmaW5lIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTCSggOSB8ICgxVUwgPDwgKEJJVFNf UEVSX0xPTkctMSkpKQ0KICNkZWZpbmUgRUZJX05PVF9GT1VORAkJKDE0IHwgKDFVTCA8PCAoQklU U19QRVJfTE9ORy0xKSkpDQorI2RlZmluZSBFRklfU0VDVVJJVFlfVklPTEFUSU9OCSgyNiB8ICgx VUwgPDwgKEJJVFNfUEVSX0xPTkctMSkpKQ0KIA0KIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBlZmlf c3RhdHVzX3Q7DQogdHlwZWRlZiB1OCBlZmlfYm9vbF90Ow0KQEAgLTQ3MCw2ICs0NzUsNyBAQCBz dHJ1Y3QgZWZpdmFyX29wZXJhdGlvbnMgew0KIAllZmlfZ2V0X3ZhcmlhYmxlX3QgKmdldF92YXJp YWJsZTsNCiAJZWZpX2dldF9uZXh0X3ZhcmlhYmxlX3QgKmdldF9uZXh0X3ZhcmlhYmxlOw0KIAll Zmlfc2V0X3ZhcmlhYmxlX3QgKnNldF92YXJpYWJsZTsNCisJZWZpX3F1ZXJ5X3ZhcmlhYmxlX2lu Zm9fdCAqcXVlcnlfdmFyaWFibGVfaW5mbzsNCiB9Ow0KIA0KIHN0cnVjdCBlZml2YXJzIHsNCmRp ZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25scy5oIGIvaW5jbHVkZS9saW51eC9ubHMuaA0KaW5k ZXggZDQ3YmVlZi4uNWRjNjM1ZiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvbmxzLmgNCisr KyBiL2luY2x1ZGUvbGludXgvbmxzLmgNCkBAIC00Myw3ICs0Myw3IEBAIGVudW0gdXRmMTZfZW5k aWFuIHsNCiAJVVRGMTZfQklHX0VORElBTg0KIH07DQogDQotLyogbmxzLmMgKi8NCisvKiBubHNf YmFzZS5jICovDQogZXh0ZXJuIGludCByZWdpc3Rlcl9ubHMoc3RydWN0IG5sc190YWJsZSAqKTsN CiBleHRlcm4gaW50IHVucmVnaXN0ZXJfbmxzKHN0cnVjdCBubHNfdGFibGUgKik7DQogZXh0ZXJu IHN0cnVjdCBubHNfdGFibGUgKmxvYWRfbmxzKGNoYXIgKik7DQpAQCAtNTIsNyArNTIsOCBAQCBl eHRlcm4gc3RydWN0IG5sc190YWJsZSAqbG9hZF9ubHNfZGVmYXVsdCh2b2lkKTsNCiANCiBleHRl cm4gaW50IHV0ZjhfdG9fdXRmMzIoY29uc3QgdTggKnMsIGludCBsZW4sIHVuaWNvZGVfdCAqcHUp Ow0KIGV4dGVybiBpbnQgdXRmMzJfdG9fdXRmOCh1bmljb2RlX3QgdSwgdTggKnMsIGludCBtYXhs ZW4pOw0KLWV4dGVybiBpbnQgdXRmOHNfdG9fdXRmMTZzKGNvbnN0IHU4ICpzLCBpbnQgbGVuLCB3 Y2hhcl90ICpwd2NzKTsNCitleHRlcm4gaW50IHV0ZjhzX3RvX3V0ZjE2cyhjb25zdCB1OCAqcywg aW50IGxlbiwNCisJCWVudW0gdXRmMTZfZW5kaWFuIGVuZGlhbiwgd2NoYXJfdCAqcHdjcywgaW50 IG1heGxlbik7DQogZXh0ZXJuIGludCB1dGYxNnNfdG9fdXRmOHMoY29uc3Qgd2NoYXJfdCAqcHdj cywgaW50IGxlbiwNCiAJCWVudW0gdXRmMTZfZW5kaWFuIGVuZGlhbiwgdTggKnMsIGludCBtYXhs ZW4pOw0KIA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2VyaWFsX2NvcmUuaCBiL2luY2x1 ZGUvbGludXgvc2VyaWFsX2NvcmUuaA0KaW5kZXggYmFlNTE2ZS4uNDJlMzVjMyAxMDA2NDQNCi0t LSBhL2luY2x1ZGUvbGludXgvc2VyaWFsX2NvcmUuaA0KKysrIGIvaW5jbHVkZS9saW51eC9zZXJp YWxfY29yZS5oDQpAQCAtNDgsNyArNDgsMTAgQEANCiAjZGVmaW5lIFBPUlRfVEVHUkEJMjAJLyog TlZJRElBIFRlZ3JhIGludGVybmFsIFVBUlQgKi8NCiAjZGVmaW5lIFBPUlRfWFIxN0QxNVgJMjEJ LyogRXhhciBYUjE3RDE1eCBVQVJUICovDQogI2RlZmluZSBQT1JUX0JSQ01fVFJVTUFOQUdFCTI1 DQotI2RlZmluZSBQT1JUX01BWF84MjUwCTI1CS8qIG1heCBwb3J0IElEICovDQorI2RlZmluZSBQ T1JUX0FMVFJfMTY1NTBfRjMyIDI2CS8qIEFsdGVyYSAxNjU1MCBVQVJUIHdpdGggMzIgRklGT3Mg Ki8NCisjZGVmaW5lIFBPUlRfQUxUUl8xNjU1MF9GNjQgMjcJLyogQWx0ZXJhIDE2NTUwIFVBUlQg d2l0aCA2NCBGSUZPcyAqLw0KKyNkZWZpbmUgUE9SVF9BTFRSXzE2NTUwX0YxMjggMjggLyogQWx0 ZXJhIDE2NTUwIFVBUlQgd2l0aCAxMjggRklGT3MgKi8NCisjZGVmaW5lIFBPUlRfTUFYXzgyNTAJ MjgJLyogbWF4IHBvcnQgSUQgKi8NCiANCiAvKg0KICAqIEFSTSBzcGVjaWZpYyB0eXBlIG51bWJl cnMuICBUaGVzZSBhcmUgbm90IGN1cnJlbnRseSBndWFyYW50ZWVkDQpkaWZmIC0tZ2l0IGEva2Vy bmVsL3NpZ25hbC5jIGIva2VybmVsL3NpZ25hbC5jDQppbmRleCBkMmY1NWVhLi43MWUxODE2IDEw MDY0NA0KLS0tIGEva2VybmVsL3NpZ25hbC5jDQorKysgYi9rZXJuZWwvc2lnbmFsLmMNCkBAIC00 ODEsNiArNDgxLDkgQEAgZmx1c2hfc2lnbmFsX2hhbmRsZXJzKHN0cnVjdCB0YXNrX3N0cnVjdCAq dCwgaW50IGZvcmNlX2RlZmF1bHQpDQogCQlpZiAoZm9yY2VfZGVmYXVsdCB8fCBrYS0+c2Euc2Ff aGFuZGxlciAhPSBTSUdfSUdOKQ0KIAkJCWthLT5zYS5zYV9oYW5kbGVyID0gU0lHX0RGTDsNCiAJ CWthLT5zYS5zYV9mbGFncyA9IDA7DQorI2lmZGVmIFNBX1JFU1RPUkVSDQorCQlrYS0+c2Euc2Ff cmVzdG9yZXIgPSBOVUxMOw0KKyNlbmRpZg0KIAkJc2lnZW1wdHlzZXQoJmthLT5zYS5zYV9tYXNr KTsNCiAJCWthKys7DQogCX0NCmRpZmYgLS1naXQgYS9rZXJuZWwvdHJhY2UvS2NvbmZpZyBiL2tl cm5lbC90cmFjZS9LY29uZmlnDQppbmRleCBjZDMxMzQ1Li43NjIyNjRkIDEwMDY0NA0KLS0tIGEv a2VybmVsL3RyYWNlL0tjb25maWcNCisrKyBiL2tlcm5lbC90cmFjZS9LY29uZmlnDQpAQCAtMzg2 LDI0ICszODYsMjggQEAgY29uZmlnIEtQUk9CRV9FVkVOVA0KIAkgIElmIHlvdSB3YW50IHRvIHVz ZSBwZXJmIHRvb2xzLCB0aGlzIG9wdGlvbiBpcyBzdHJvbmdseSByZWNvbW1lbmRlZC4NCiANCiBj b25maWcgRFlOQU1JQ19GVFJBQ0UNCi0JYm9vbCAiZW5hYmxlL2Rpc2FibGUgZnRyYWNlIHRyYWNl cG9pbnRzIGR5bmFtaWNhbGx5Ig0KKwlib29sICJlbmFibGUvZGlzYWJsZSBmdW5jdGlvbiB0cmFj aW5nIGR5bmFtaWNhbGx5Ig0KIAlkZXBlbmRzIG9uIEZVTkNUSU9OX1RSQUNFUg0KIAlkZXBlbmRz IG9uIEhBVkVfRFlOQU1JQ19GVFJBQ0UNCiAJZGVmYXVsdCB5DQogCWhlbHANCi0gICAgICAgICAg VGhpcyBvcHRpb24gd2lsbCBtb2RpZnkgYWxsIHRoZSBjYWxscyB0byBmdHJhY2UgZHluYW1pY2Fs bHkNCi0JICAod2lsbCBwYXRjaCB0aGVtIG91dCBvZiB0aGUgYmluYXJ5IGltYWdlIGFuZCByZXBs YWNlIHRoZW0NCi0JICB3aXRoIGEgTm8tT3AgaW5zdHJ1Y3Rpb24pIGFzIHRoZXkgYXJlIGNhbGxl ZC4gQSB0YWJsZSBpcw0KLQkgIGNyZWF0ZWQgdG8gZHluYW1pY2FsbHkgZW5hYmxlIHRoZW0gYWdh aW4uDQorCSAgVGhpcyBvcHRpb24gd2lsbCBtb2RpZnkgYWxsIHRoZSBjYWxscyB0byBmdW5jdGlv biB0cmFjaW5nDQorCSAgZHluYW1pY2FsbHkgKHdpbGwgcGF0Y2ggdGhlbSBvdXQgb2YgdGhlIGJp bmFyeSBpbWFnZSBhbmQNCisJICByZXBsYWNlIHRoZW0gd2l0aCBhIE5vLU9wIGluc3RydWN0aW9u KSBvbiBib290IHVwLiBEdXJpbmcNCisJICBjb21waWxlIHRpbWUsIGEgdGFibGUgaXMgbWFkZSBv ZiBhbGwgdGhlIGxvY2F0aW9ucyB0aGF0IGZ0cmFjZQ0KKwkgIGNhbiBmdW5jdGlvbiB0cmFjZSwg YW5kIHRoaXMgdGFibGUgaXMgbGlua2VkIGludG8gdGhlIGtlcm5lbA0KKwkgIGltYWdlLiBXaGVu IHRoaXMgaXMgZW5hYmxlZCwgZnVuY3Rpb25zIGNhbiBiZSBpbmRpdmlkdWFsbHkNCisJICBlbmFi bGVkLCBhbmQgdGhlIGZ1bmN0aW9ucyBub3QgZW5hYmxlZCB3aWxsIG5vdCBhZmZlY3QNCisJICBw ZXJmb3JtYW5jZSBvZiB0aGUgc3lzdGVtLg0KKw0KKwkgIFNlZSB0aGUgZmlsZXMgaW4gL3N5cy9r ZXJuZWwvZGVidWcvdHJhY2luZzoNCisJICAgIGF2YWlsYWJsZV9maWx0ZXJfZnVuY3Rpb25zDQor CSAgICBzZXRfZnRyYWNlX2ZpbHRlcg0KKwkgICAgc2V0X2Z0cmFjZV9ub3RyYWNlDQogDQogCSAg VGhpcyB3YXkgYSBDT05GSUdfRlVOQ1RJT05fVFJBQ0VSIGtlcm5lbCBpcyBzbGlnaHRseSBsYXJn ZXIsIGJ1dA0KIAkgIG90aGVyd2lzZSBoYXMgbmF0aXZlIHBlcmZvcm1hbmNlIGFzIGxvbmcgYXMg bm8gdHJhY2luZyBpcyBhY3RpdmUuDQogDQotCSAgVGhlIGNoYW5nZXMgdG8gdGhlIGNvZGUgYXJl IGRvbmUgYnkgYSBrZXJuZWwgdGhyZWFkIHRoYXQNCi0JICB3YWtlcyB1cCBvbmNlIGEgc2Vjb25k IGFuZCBjaGVja3MgdG8gc2VlIGlmIGFueSBmdHJhY2UgY2FsbHMNCi0JICB3ZXJlIG1hZGUuIElm IHNvLCBpdCBydW5zIHN0b3BfbWFjaGluZSAoc3RvcHMgYWxsIENQVVMpDQotCSAgYW5kIG1vZGlm aWVzIHRoZSBjb2RlIHRvIGp1bXAgb3ZlciB0aGUgY2FsbCB0byBmdHJhY2UuDQotDQogY29uZmln IEZVTkNUSU9OX1BST0ZJTEVSDQogCWJvb2wgIktlcm5lbCBmdW5jdGlvbiBwcm9maWxlciINCiAJ ZGVwZW5kcyBvbiBGVU5DVElPTl9UUkFDRVINCmRpZmYgLS1naXQgYS9tbS9tZW1vcnlfaG90cGx1 Zy5jIGIvbW0vbWVtb3J5X2hvdHBsdWcuYw0KaW5kZXggOWFkN2QxZS4uMDlkODdiNyAxMDA2NDQN Ci0tLSBhL21tL21lbW9yeV9ob3RwbHVnLmMNCisrKyBiL21tL21lbW9yeV9ob3RwbHVnLmMNCkBA IC01MTUsMTkgKzUxNSwyMCBAQCBpbnQgX19yZWYgb25saW5lX3BhZ2VzKHVuc2lnbmVkIGxvbmcg cGZuLCB1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQ0KIA0KIAl6b25lLT5wcmVzZW50X3BhZ2VzICs9 IG9ubGluZWRfcGFnZXM7DQogCXpvbmUtPnpvbmVfcGdkYXQtPm5vZGVfcHJlc2VudF9wYWdlcyAr PSBvbmxpbmVkX3BhZ2VzOw0KLQlpZiAobmVlZF96b25lbGlzdHNfcmVidWlsZCkNCi0JCWJ1aWxk X2FsbF96b25lbGlzdHMoem9uZSk7DQotCWVsc2UNCi0JCXpvbmVfcGNwX3VwZGF0ZSh6b25lKTsN CisJaWYgKG9ubGluZWRfcGFnZXMpIHsNCisJCW5vZGVfc2V0X3N0YXRlKHpvbmVfdG9fbmlkKHpv bmUpLCBOX0hJR0hfTUVNT1JZKTsNCisJCWlmIChuZWVkX3pvbmVsaXN0c19yZWJ1aWxkKQ0KKwkJ CWJ1aWxkX2FsbF96b25lbGlzdHMoem9uZSk7DQorCQllbHNlDQorCQkJem9uZV9wY3BfdXBkYXRl KHpvbmUpOw0KKwl9DQogDQogCW11dGV4X3VubG9jaygmem9uZWxpc3RzX211dGV4KTsNCiANCiAJ aW5pdF9wZXJfem9uZV93bWFya19taW4oKTsNCiANCi0JaWYgKG9ubGluZWRfcGFnZXMpIHsNCisJ aWYgKG9ubGluZWRfcGFnZXMpDQogCQlrc3dhcGRfcnVuKHpvbmVfdG9fbmlkKHpvbmUpKTsNCi0J CW5vZGVfc2V0X3N0YXRlKHpvbmVfdG9fbmlkKHpvbmUpLCBOX0hJR0hfTUVNT1JZKTsNCi0JfQ0K IA0KIAl2bV90b3RhbF9wYWdlcyA9IG5yX2ZyZWVfcGFnZWNhY2hlX3BhZ2VzKCk7DQogDQpkaWZm IC0tZ2l0IGEvbW0vcHJvY2Vzc192bV9hY2Nlc3MuYyBiL21tL3Byb2Nlc3Nfdm1fYWNjZXNzLmMN CmluZGV4IGU5MjBhYTMuLjcwZTgxNGEgMTAwNjQ0DQotLS0gYS9tbS9wcm9jZXNzX3ZtX2FjY2Vz cy5jDQorKysgYi9tbS9wcm9jZXNzX3ZtX2FjY2Vzcy5jDQpAQCAtNDM0LDEyICs0MzQsNiBAQCBj b21wYXRfcHJvY2Vzc192bV9ydyhjb21wYXRfcGlkX3QgcGlkLA0KIAlpZiAoZmxhZ3MgIT0gMCkN CiAJCXJldHVybiAtRUlOVkFMOw0KIA0KLQlpZiAoIWFjY2Vzc19vayhWRVJJRllfUkVBRCwgbHZl YywgbGlvdmNudCAqIHNpemVvZigqbHZlYykpKQ0KLQkJZ290byBvdXQ7DQotDQotCWlmICghYWNj ZXNzX29rKFZFUklGWV9SRUFELCBydmVjLCByaW92Y250ICogc2l6ZW9mKCpydmVjKSkpDQotCQln b3RvIG91dDsNCi0NCiAJaWYgKHZtX3dyaXRlKQ0KIAkJcmMgPSBjb21wYXRfcndfY29weV9jaGVj a191dmVjdG9yKFdSSVRFLCBsdmVjLCBsaW92Y250LA0KIAkJCQkJCSAgVUlPX0ZBU1RJT1YsIGlv dnN0YWNrX2wsDQpAQCAtNDY0LDggKzQ1OCw2IEBAIGZyZWVfaW92ZWNzOg0KIAkJa2ZyZWUoaW92 X3IpOw0KIAlpZiAoaW92X2wgIT0gaW92c3RhY2tfbCkNCiAJCWtmcmVlKGlvdl9sKTsNCi0NCi1v dXQ6DQogCXJldHVybiByYzsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvbmV0L2JhdG1hbi1hZHYvaWNt cF9zb2NrZXQuYyBiL25ldC9iYXRtYW4tYWR2L2ljbXBfc29ja2V0LmMNCmluZGV4IGFjMzUyMGUw Li4wYzgyY2UzIDEwMDY0NA0KLS0tIGEvbmV0L2JhdG1hbi1hZHYvaWNtcF9zb2NrZXQuYw0KKysr IGIvbmV0L2JhdG1hbi1hZHYvaWNtcF9zb2NrZXQuYw0KQEAgLTEzNiwxMCArMTM2LDkgQEAgc3Rh dGljIHNzaXplX3QgYmF0X3NvY2tldF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNl ciAqYnVmLA0KIA0KIAlzcGluX3VubG9ja19iaCgmc29ja2V0X2NsaWVudC0+bG9jayk7DQogDQot CWVycm9yID0gX19jb3B5X3RvX3VzZXIoYnVmLCAmc29ja2V0X3BhY2tldC0+aWNtcF9wYWNrZXQs DQotCQkJICAgICAgIHNvY2tldF9wYWNrZXQtPmljbXBfbGVuKTsNCisJcGFja2V0X2xlbiA9IG1p bihjb3VudCwgc29ja2V0X3BhY2tldC0+aWNtcF9sZW4pOw0KKwllcnJvciA9IGNvcHlfdG9fdXNl cihidWYsICZzb2NrZXRfcGFja2V0LT5pY21wX3BhY2tldCwgcGFja2V0X2xlbik7DQogDQotCXBh Y2tldF9sZW4gPSBzb2NrZXRfcGFja2V0LT5pY21wX2xlbjsNCiAJa2ZyZWUoc29ja2V0X3BhY2tl dCk7DQogDQogCWlmIChlcnJvcikNCmRpZmYgLS1naXQgYS9uZXQvZGVjbmV0L2FmX2RlY25ldC5j IGIvbmV0L2RlY25ldC9hZl9kZWNuZXQuYw0KaW5kZXggMTlhY2QwMC4uMTZmYmY4YyAxMDA2NDQN Ci0tLSBhL25ldC9kZWNuZXQvYWZfZGVjbmV0LmMNCisrKyBiL25ldC9kZWNuZXQvYWZfZGVjbmV0 LmMNCkBAIC0yMzU0LDYgKzIzNTQsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHByb3RvX29wcyBk bl9wcm90b19vcHMgPSB7DQogCS5zZW5kcGFnZSA9CXNvY2tfbm9fc2VuZHBhZ2UsDQogfTsNCiAN Cit2b2lkIGRuX3JlZ2lzdGVyX3N5c2N0bF9za2VsZXRvbih2b2lkKTsNCit2b2lkIGRuX3VucmVn aXN0ZXJfc3lzY3RsX3NrZWxldG9uKHZvaWQpOw0KIHZvaWQgZG5fcmVnaXN0ZXJfc3lzY3RsKHZv aWQpOw0KIHZvaWQgZG5fdW5yZWdpc3Rlcl9zeXNjdGwodm9pZCk7DQogDQpAQCAtMjM3NCw2ICsy Mzc2LDcgQEAgc3RhdGljIGludCBfX2luaXQgZGVjbmV0X2luaXQodm9pZCkNCiAJaWYgKHJjICE9 IDApDQogCQlnb3RvIG91dDsNCiANCisJZG5fcmVnaXN0ZXJfc3lzY3RsX3NrZWxldG9uKCk7DQog CWRuX25laWdoX2luaXQoKTsNCiAJZG5fZGV2X2luaXQoKTsNCiAJZG5fcm91dGVfaW5pdCgpOw0K QEAgLTI0MTMsNiArMjQxNiw3IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBkZWNuZXRfZXhpdCh2b2lk KQ0KIAlkbl9maWJfY2xlYW51cCgpOw0KIA0KIAlwcm9jX25ldF9yZW1vdmUoJmluaXRfbmV0LCAi ZGVjbmV0Iik7DQorCWRuX3VucmVnaXN0ZXJfc3lzY3RsX3NrZWxldG9uKCk7DQogDQogCXByb3Rv X3VucmVnaXN0ZXIoJmRuX3Byb3RvKTsNCiANCmRpZmYgLS1naXQgYS9uZXQvZGVjbmV0L3N5c2N0 bF9uZXRfZGVjbmV0LmMgYi9uZXQvZGVjbmV0L3N5c2N0bF9uZXRfZGVjbmV0LmMNCmluZGV4IDAy ZTc1ZDEuLmQ1MGExM2MgMTAwNjQ0DQotLS0gYS9uZXQvZGVjbmV0L3N5c2N0bF9uZXRfZGVjbmV0 LmMNCisrKyBiL25ldC9kZWNuZXQvc3lzY3RsX25ldF9kZWNuZXQuYw0KQEAgLTU1LDYgKzU1LDcg QEAgc3RhdGljIGludCBtYXhfZGVjbmV0X25vX2ZjX21heF9jd25kW10gPSB7IE5TUF9NQVhfV0lO RE9XIH07DQogc3RhdGljIGNoYXIgbm9kZV9uYW1lWzddID0gIj8/PyI7DQogDQogc3RhdGljIHN0 cnVjdCBjdGxfdGFibGVfaGVhZGVyICpkbl90YWJsZV9oZWFkZXIgPSBOVUxMOw0KK3N0YXRpYyBz dHJ1Y3QgY3RsX3RhYmxlX2hlYWRlciAqZG5fc2tlbGV0b25fdGFibGVfaGVhZGVyID0gTlVMTDsN CiANCiAvKg0KICAqIGN0eXBlLmggOi0pDQpAQCAtMzU3LDYgKzM1OCwyNyBAQCBzdGF0aWMgc3Ry dWN0IGN0bF9wYXRoIGRuX3BhdGhbXSA9IHsNCiAJeyB9DQogfTsNCiANCitzdGF0aWMgc3RydWN0 IGN0bF90YWJsZSBlbXB0eVsxXTsNCisNCitzdGF0aWMgc3RydWN0IGN0bF90YWJsZSBkbl9za2Vs ZXRvbltdID0gew0KKwl7DQorCQkucHJvY25hbWUgPSAiY29uZiIsDQorCQkubW9kZSA9IDA1NTUs DQorCQkuY2hpbGQgPSBlbXB0eSwNCisJfSwNCisJeyB9DQorfTsNCisNCit2b2lkIGRuX3JlZ2lz dGVyX3N5c2N0bF9za2VsZXRvbih2b2lkKQ0KK3sNCisJZG5fc2tlbGV0b25fdGFibGVfaGVhZGVy ID0gcmVnaXN0ZXJfc3lzY3RsX3BhdGhzKGRuX3BhdGgsIGRuX3NrZWxldG9uKTsNCit9DQorDQor dm9pZCBkbl91bnJlZ2lzdGVyX3N5c2N0bF9za2VsZXRvbih2b2lkKQ0KK3sNCisJdW5yZWdpc3Rl cl9zeXNjdGxfdGFibGUoZG5fc2tlbGV0b25fdGFibGVfaGVhZGVyKTsNCit9DQorDQogdm9pZCBk bl9yZWdpc3Rlcl9zeXNjdGwodm9pZCkNCiB7DQogCWRuX3RhYmxlX2hlYWRlciA9IHJlZ2lzdGVy X3N5c2N0bF9wYXRocyhkbl9wYXRoLCBkbl90YWJsZSk7DQpAQCAtMzY4LDYgKzM5MCwxMiBAQCB2 b2lkIGRuX3VucmVnaXN0ZXJfc3lzY3RsKHZvaWQpDQogfQ0KIA0KICNlbHNlICAvKiBDT05GSUdf U1lTQ1RMICovDQordm9pZCBkbl9yZWdpc3Rlcl9zeXNjdGxfc2tlbGV0b24odm9pZCkNCit7DQor fQ0KK3ZvaWQgZG5fdW5yZWdpc3Rlcl9zeXNjdGxfc2tlbGV0b24odm9pZCkNCit7DQorfQ0KIHZv aWQgZG5fdW5yZWdpc3Rlcl9zeXNjdGwodm9pZCkNCiB7DQogfQ0KZGlmZiAtLWdpdCBhL25ldC9z dW5ycGMveHBydC5jIGIvbmV0L3N1bnJwYy94cHJ0LmMNCmluZGV4IDZjOTEyMDguLjNjNWQzMjkg MTAwNjQ0DQotLS0gYS9uZXQvc3VucnBjL3hwcnQuYw0KKysrIGIvbmV0L3N1bnJwYy94cHJ0LmMN CkBAIC00ODEsMTMgKzQ4MSwxNyBAQCBFWFBPUlRfU1lNQk9MX0dQTCh4cHJ0X3dha2VfcGVuZGlu Z190YXNrcyk7DQogICogeHBydF93YWl0X2Zvcl9idWZmZXJfc3BhY2UgLSB3YWl0IGZvciB0cmFu c3BvcnQgb3V0cHV0IGJ1ZmZlciB0byBjbGVhcg0KICAqIEB0YXNrOiB0YXNrIHRvIGJlIHB1dCB0 byBzbGVlcA0KICAqIEBhY3Rpb246IGZ1bmN0aW9uIHBvaW50ZXIgdG8gYmUgZXhlY3V0ZWQgYWZ0 ZXIgd2FpdA0KKyAqDQorICogTm90ZSB0aGF0IHdlIG9ubHkgc2V0IHRoZSB0aW1lciBmb3IgdGhl IGNhc2Ugb2YgUlBDX0lTX1NPRlQoKSwgc2luY2UNCisgKiB3ZSBkb24ndCBpbiBnZW5lcmFsIHdh bnQgdG8gZm9yY2UgYSBzb2NrZXQgZGlzY29ubmVjdGlvbiBkdWUgdG8NCisgKiBhbiBpbmNvbXBs ZXRlIFJQQyBjYWxsIHRyYW5zbWlzc2lvbi4NCiAgKi8NCiB2b2lkIHhwcnRfd2FpdF9mb3JfYnVm ZmVyX3NwYWNlKHN0cnVjdCBycGNfdGFzayAqdGFzaywgcnBjX2FjdGlvbiBhY3Rpb24pDQogew0K IAlzdHJ1Y3QgcnBjX3Jxc3QgKnJlcSA9IHRhc2stPnRrX3Jxc3RwOw0KIAlzdHJ1Y3QgcnBjX3hw cnQgKnhwcnQgPSByZXEtPnJxX3hwcnQ7DQogDQotCXRhc2stPnRrX3RpbWVvdXQgPSByZXEtPnJx X3RpbWVvdXQ7DQorCXRhc2stPnRrX3RpbWVvdXQgPSBSUENfSVNfU09GVCh0YXNrKSA/IHJlcS0+ cnFfdGltZW91dCA6IDA7DQogCXJwY19zbGVlcF9vbigmeHBydC0+cGVuZGluZywgdGFzaywgYWN0 aW9uKTsNCiB9DQogRVhQT1JUX1NZTUJPTF9HUEwoeHBydF93YWl0X2Zvcl9idWZmZXJfc3BhY2Up Ow0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2tleXMvY29tcGF0LmMgYi9zZWN1cml0eS9rZXlzL2Nv bXBhdC5jDQppbmRleCA0YzQ4ZTEzLi4xYjBiN2JmIDEwMDY0NA0KLS0tIGEvc2VjdXJpdHkva2V5 cy9jb21wYXQuYw0KKysrIGIvc2VjdXJpdHkva2V5cy9jb21wYXQuYw0KQEAgLTQwLDEyICs0MCwx MiBAQCBsb25nIGNvbXBhdF9rZXljdGxfaW5zdGFudGlhdGVfa2V5X2lvdigNCiAJCQkJCSAgIEFS UkFZX1NJWkUoaW92c3RhY2spLA0KIAkJCQkJICAgaW92c3RhY2ssICZpb3YsIDEpOw0KIAlpZiAo cmV0IDwgMCkNCi0JCXJldHVybiByZXQ7DQorCQlnb3RvIGVycjsNCiAJaWYgKHJldCA9PSAwKQ0K IAkJZ290byBub19wYXlsb2FkX2ZyZWU7DQogDQogCXJldCA9IGtleWN0bF9pbnN0YW50aWF0ZV9r ZXlfY29tbW9uKGlkLCBpb3YsIGlvYywgcmV0LCByaW5naWQpOw0KLQ0KK2VycjoNCiAJaWYgKGlv diAhPSBpb3ZzdGFjaykNCiAJCWtmcmVlKGlvdik7DQogCXJldHVybiByZXQ7DQpkaWZmIC0tZ2l0 IGEvc2VjdXJpdHkva2V5cy9wcm9jZXNzX2tleXMuYyBiL3NlY3VyaXR5L2tleXMvcHJvY2Vzc19r ZXlzLmMNCmluZGV4IDEwNjhjYjEuLjYwZDBkZjcgMTAwNjQ0DQotLS0gYS9zZWN1cml0eS9rZXlz L3Byb2Nlc3Nfa2V5cy5jDQorKysgYi9zZWN1cml0eS9rZXlzL3Byb2Nlc3Nfa2V5cy5jDQpAQCAt NTQsNyArNTQsNyBAQCBpbnQgaW5zdGFsbF91c2VyX2tleXJpbmdzKHZvaWQpDQogDQogCWtlbnRl cigiJXB7JXV9IiwgdXNlciwgdXNlci0+dWlkKTsNCiANCi0JaWYgKHVzZXItPnVpZF9rZXlyaW5n KSB7DQorCWlmICh1c2VyLT51aWRfa2V5cmluZyAmJiB1c2VyLT5zZXNzaW9uX2tleXJpbmcpIHsN CiAJCWtsZWF2ZSgiID0gMCBbZXhpc3RdIik7DQogCQlyZXR1cm4gMDsNCiAJfQ0KZGlmZiAtLWdp dCBhL3NvdW5kL2NvcmUvc2VxL3NlcV90aW1lci5jIGIvc291bmQvY29yZS9zZXEvc2VxX3RpbWVy LmMNCmluZGV4IDE2MGIxYmQuLjI0ZDQ0YjIgMTAwNjQ0DQotLS0gYS9zb3VuZC9jb3JlL3NlcS9z ZXFfdGltZXIuYw0KKysrIGIvc291bmQvY29yZS9zZXEvc2VxX3RpbWVyLmMNCkBAIC0yOTAsMTAg KzI5MCwxMCBAQCBpbnQgc25kX3NlcV90aW1lcl9vcGVuKHN0cnVjdCBzbmRfc2VxX3F1ZXVlICpx KQ0KIAkJCXRpZC5kZXZpY2UgPSBTTkRSVl9USU1FUl9HTE9CQUxfU1lTVEVNOw0KIAkJCWVyciA9 IHNuZF90aW1lcl9vcGVuKCZ0LCBzdHIsICZ0aWQsIHEtPnF1ZXVlKTsNCiAJCX0NCi0JCWlmIChl cnIgPCAwKSB7DQotCQkJc25kX3ByaW50ayhLRVJOX0VSUiAic2VxIGZhdGFsIGVycm9yOiBjYW5u b3QgY3JlYXRlIHRpbWVyICglaSlcbiIsIGVycik7DQotCQkJcmV0dXJuIGVycjsNCi0JCX0NCisJ fQ0KKwlpZiAoZXJyIDwgMCkgew0KKwkJc25kX3ByaW50ayhLRVJOX0VSUiAic2VxIGZhdGFsIGVy cm9yOiBjYW5ub3QgY3JlYXRlIHRpbWVyICglaSlcbiIsIGVycik7DQorCQlyZXR1cm4gZXJyOw0K IAl9DQogCXQtPmNhbGxiYWNrID0gc25kX3NlcV90aW1lcl9pbnRlcnJ1cHQ7DQogCXQtPmNhbGxi YWNrX2RhdGEgPSBxOw0KZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvdm1hc3Rlci5jIGIvc291bmQv Y29yZS92bWFzdGVyLmMNCmluZGV4IDEzMGNmZTYuLmFjMGFmMDMgMTAwNjQ0DQotLS0gYS9zb3Vu ZC9jb3JlL3ZtYXN0ZXIuYw0KKysrIGIvc291bmQvY29yZS92bWFzdGVyLmMNCkBAIC0yMDksNyAr MjA5LDEwIEBAIHN0YXRpYyBpbnQgc2xhdmVfcHV0KHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250 cm9sLA0KIAl9DQogCWlmICghY2hhbmdlZCkNCiAJCXJldHVybiAwOw0KLQlyZXR1cm4gc2xhdmVf cHV0X3ZhbChzbGF2ZSwgdWNvbnRyb2wpOw0KKwllcnIgPSBzbGF2ZV9wdXRfdmFsKHNsYXZlLCB1 Y29udHJvbCk7DQorCWlmIChlcnIgPCAwKQ0KKwkJcmV0dXJuIGVycjsNCisJcmV0dXJuIDE7DQog fQ0KIA0KIHN0YXRpYyBpbnQgc2xhdmVfdGx2X2NtZChzdHJ1Y3Qgc25kX2tjb250cm9sICprY29u dHJvbCwNCm== --=-9C3HdjvWp/pIbuF3Q1jP-- --=-fwBOI+Wco9wrv6Kx4eCo Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIVAwUAUUafaOe/yOyVhhEJAQqNdA//XIKyz9nRlpL5pQ5TPYgeGW8HHtOTWFEO tP3GZr4oRfR+IVhLwirDdr1f6b5dUBTpDtjA2LDcBagBd1ROrp6rDj8Xdrhqq7+o kN5r5XaHJj7+Y1aANLYd9wSxll9O7/u927SZvsK3w0HCyMyaB5GUTcvXiMYdy0Vb dyS2iWTHIJfvHl0zyEqav0m5jW/LdxGX3cUh3Ed4IkoH4VaX+XVwsie1x4YW6FcU lH1vN0xuzfxRrFxco1s0M4pvodIMPQ2UNEn2QPJ+3Dxb/iyMRfcnFM9a7jHY/Axb DnRYeZSGqnzEqg4XErLeP/EDqAirA5hFlkGsGTi0uRfOCxCddRd0iSRav9UelF6A 7+ajasAQN1yiEiczA33nbHD2Rt7AcFBUCn99vK2P8emsXMrnN38icGo/gm6keePH 5SEPDJenU1daMc+mtSnWsQ11oYdSr/+fhCNNOO4/tkiVtDNiZfyEB/ol7Vz4fOde UDNK9Qi/RTNPOhPYqAH7CMvAhGKi/y+LyTq/Nx3YOAETztbYg6Q/7SLOS/y1kIQY ZQiukhO9aL/++TyYNS8b4dWBxWfS0X9tBqOKpnvPMcO1MIX5Lrg7titYSLCy7KDc y9KlY2DgVgXECw4b253GHv5GK80q8hni6oXeBR5FReoRRHJ75nGLPs3DJdCaU0Bz b8H4lzOQVeg= =MStQ -----END PGP SIGNATURE----- --=-fwBOI+Wco9wrv6Kx4eCo-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/