From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754130Ab2L1UWq (ORCPT ); Fri, 28 Dec 2012 15:22:46 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:56462 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752194Ab2L1UWk (ORCPT ); Fri, 28 Dec 2012 15:22:40 -0500 Message-ID: <1356726108.4446.1.camel@deadeye.wl.decadent.org.uk> Subject: Re: [ 000/173] 3.2.36-stable review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk Date: Fri, 28 Dec 2012 21:21:48 +0100 In-Reply-To: <20121228190330.025298996@decadent.org.uk> References: <20121228190330.025298996@decadent.org.uk> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-9h0pkPC6gbhOsfCv26st" X-Mailer: Evolution 3.4.4-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 151.217.219.220 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); Message bigger than SAmaxbody (256000) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-9h0pkPC6gbhOsfCv26st Content-Type: multipart/mixed; boundary="=-mEqOrlwXCeCx23V6m6Oz" --=-mEqOrlwXCeCx23V6m6Oz Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.36-rc1 relative to 3.2.35. Ben. --=20 Ben Hutchings The world is coming to an end. Please log off. --=-mEqOrlwXCeCx23V6m6Oz Content-Disposition: attachment; filename="linux-3.2.36-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.36-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaHdtb24vY29yZXRlbXAgYi9Eb2N1bWVudGF0aW9u L2h3bW9uL2NvcmV0ZW1wDQppbmRleCA4NGQ0NmMwLi5lYjU1MDJlIDEwMDY0NA0KLS0tIGEvRG9j dW1lbnRhdGlvbi9od21vbi9jb3JldGVtcA0KKysrIGIvRG9jdW1lbnRhdGlvbi9od21vbi9jb3Jl dGVtcA0KQEAgLTYsNyArNiw5IEBAIFN1cHBvcnRlZCBjaGlwczoNCiAgICAgUHJlZml4OiAnY29y ZXRlbXAnDQogICAgIENQVUlEOiBmYW1pbHkgMHg2LCBtb2RlbHMgMHhlIChQZW50aXVtIE0gREMp LCAweGYgKENvcmUgMiBEQyA2NW5tKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDE2IChDb3JlIDIgU0MgNjVubSksIDB4MTcgKFBlbnJ5biA0NW5tKSwNCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDFhIChOZWhhbGVtKSwgMHgxYyAoQXRvbSksIDB4MWUgKEx5bm5m aWVsZCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFhIChOZWhhbGVtKSwgMHgx YyAoQXRvbSksIDB4MWUgKEx5bm5maWVsZCksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgyNiAoVHVubmVsIENyZWVrIEF0b20pLCAweDI3IChNZWRmaWVsZCBBdG9tKSwNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDM2IChDZWRhciBUcmFpbCBBdG9tKQ0KICAgICBE YXRhc2hlZXQ6IEludGVsIDY0IGFuZCBJQS0zMiBBcmNoaXRlY3R1cmVzIFNvZnR3YXJlIERldmVs b3BlcidzIE1hbnVhbA0KICAgICAgICAgICAgICAgIFZvbHVtZSAzQTogU3lzdGVtIFByb2dyYW1t aW5nIEd1aWRlDQogICAgICAgICAgICAgICAgaHR0cDovL3NvZnR3YXJlY29tbXVuaXR5LmludGVs LmNvbS9XaWtpL01vYmlsaXR5LzcyMC5odG0NCkBAIC02NSw2ICs2NywxMSBAQCBQcm9jZXNzCQlQ cm9jZXNzb3IJCQkJCVRqTWF4KEMpDQogCQlVMzQwMAkJCQkJCTEwNQ0KIAkJUDQ1MDUvUDQ1MDAg CQkJCQk5MA0KIA0KKzMybm0JCUF0b20gUHJvY2Vzc29ycw0KKwkJWjI0NjAJCQkJCQk5MA0KKwkJ RDI3MDAvMjU1MC8yNTAwCQkJCQkxMDANCisJCU4yODUwLzI4MDAvMjY1MC8yNjAwCQkJCTEwMA0K Kw0KIDQ1bm0JCVhlb24gUHJvY2Vzc29ycyA1NDAwIFF1YWQtQ29yZQ0KIAkJWDU0OTIsIFg1NDgy LCBYNTQ3MiwgWDU0NzAsIFg1NDYwLCBYNTQ1MAk4NQ0KIAkJRTU0NzIsIEU1NDYyLCBFNTQ1MC80 MC8zMC8yMC8xMC8wNQkJODUNCkBAIC04NSw2ICs5Miw5IEBAIFByb2Nlc3MJCVByb2Nlc3NvcgkJ CQkJVGpNYXgoQykNCiAJCU40NzUvNDcwLzQ1NS80NTAJCQkJMTAwDQogCQlOMjgwLzI3MAkJCQkJ OTANCiAJCTMzMC8yMzAJCQkJCQkxMjUNCisJCUU2ODAvNjYwLzY0MC82MjAJCQkJOTANCisJCUU2 ODBULzY2MFQvNjQwVC82MjBUCQkJCTExMA0KKwkJQ0U0MTcwLzQxNTAvNDExMAkJCQkxMTANCiAN CiA0NW5tCQlDb3JlMiBQcm9jZXNzb3JzDQogCQlTb2xvIFVMViBTVTM1MDAvMzMwMAkJCQkxMDAN CmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxlDQppbmRleCBkOTg1YWYwLi4zZTFjYTJj IDEwMDY0NA0KLS0tIGEvTWFrZWZpbGUNCisrKyBiL01ha2VmaWxlDQpAQCAtMSw3ICsxLDcgQEAN CiBWRVJTSU9OID0gMw0KIFBBVENITEVWRUwgPSAyDQotU1VCTEVWRUwgPSAzNQ0KLUVYVFJBVkVS U0lPTiA9DQorU1VCTEVWRUwgPSAzNg0KK0VYVFJBVkVSU0lPTiA9IC1yYzENCiBOQU1FID0gU2Fi ZXItdG9vdGhlZCBTcXVpcnJlbA0KIA0KICMgKkRPQ1VNRU5UQVRJT04qDQpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vaW5jbHVkZS9hc20vaHdjYXAuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2h3Y2Fw LmgNCmluZGV4IGM5M2EyMmEuLjNhOTI1ZmIgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9pbmNsdWRl L2FzbS9od2NhcC5oDQorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9od2NhcC5oDQpAQCAtMTgs MTEgKzE4LDEyIEBADQogI2RlZmluZSBIV0NBUF9USFVNQkVFCSgxIDw8IDExKQ0KICNkZWZpbmUg SFdDQVBfTkVPTgkoMSA8PCAxMikNCiAjZGVmaW5lIEhXQ0FQX1ZGUHYzCSgxIDw8IDEzKQ0KLSNk ZWZpbmUgSFdDQVBfVkZQdjNEMTYJKDEgPDwgMTQpDQorI2RlZmluZSBIV0NBUF9WRlB2M0QxNgko MSA8PCAxNCkJLyogYWxzbyBzZXQgZm9yIFZGUHY0LUQxNiAqLw0KICNkZWZpbmUgSFdDQVBfVExT CSgxIDw8IDE1KQ0KICNkZWZpbmUgSFdDQVBfVkZQdjQJKDEgPDwgMTYpDQogI2RlZmluZSBIV0NB UF9JRElWQQkoMSA8PCAxNykNCiAjZGVmaW5lIEhXQ0FQX0lESVZUCSgxIDw8IDE4KQ0KKyNkZWZp bmUgSFdDQVBfVkZQRDMyCSgxIDw8IDE5KQkvKiBzZXQgaWYgVkZQIGhhcyAzMiByZWdzIChub3Qg MTYpICovDQogI2RlZmluZSBIV0NBUF9JRElWCShIV0NBUF9JRElWQSB8IEhXQ0FQX0lESVZUKQ0K IA0KICNpZiBkZWZpbmVkKF9fS0VSTkVMX18pICYmICFkZWZpbmVkKF9fQVNTRU1CTFlfXykNCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS92ZnBtYWNyb3MuaCBiL2FyY2gvYXJtL2lu Y2x1ZGUvYXNtL3ZmcG1hY3Jvcy5oDQppbmRleCBiZjUzMDQ3Li5jNDljOGY3IDEwMDY0NA0KLS0t IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vdmZwbWFjcm9zLmgNCisrKyBiL2FyY2gvYXJtL2luY2x1 ZGUvYXNtL3ZmcG1hY3Jvcy5oDQpAQCAtMjcsOSArMjcsOSBAQA0KICNpZiBfX0xJTlVYX0FSTV9B UkNIX18gPD0gNg0KIAlsZHIJXHRtcCwgPWVsZl9od2NhcAkJICAgIEAgbWF5IG5vdCBoYXZlIE1W RlIgcmVncw0KIAlsZHIJXHRtcCwgW1x0bXAsICMwXQ0KLQl0c3QJXHRtcCwgI0hXQ0FQX1ZGUHYz RDE2DQotCWxkY2VxbAlwMTEsIGNyMCwgW1xiYXNlXSwjMzIqNAkJICAgIEAgRkxETUlBRCBcYmFz ZSEsIHtkMTYtZDMxfQ0KLQlhZGRuZQlcYmFzZSwgXGJhc2UsICMzMio0CQkgICAgQCBzdGVwIG92 ZXIgdW51c2VkIHJlZ2lzdGVyIHNwYWNlDQorCXRzdAlcdG1wLCAjSFdDQVBfVkZQRDMyDQorCWxk Y25lbAlwMTEsIGNyMCwgW1xiYXNlXSwjMzIqNAkJICAgIEAgRkxETUlBRCBcYmFzZSEsIHtkMTYt ZDMxfQ0KKwlhZGRlcQlcYmFzZSwgXGJhc2UsICMzMio0CQkgICAgQCBzdGVwIG92ZXIgdW51c2Vk IHJlZ2lzdGVyIHNwYWNlDQogI2Vsc2UNCiAJVkZQRk1SWAlcdG1wLCBNVkZSMAkJCSAgICBAIE1l ZGlhIGFuZCBWRlAgRmVhdHVyZSBSZWdpc3RlciAwDQogCWFuZAlcdG1wLCBcdG1wLCAjTVZGUjBf QV9TSU1EX01BU0sJICAgIEAgQV9TSU1EIGZpZWxkDQpAQCAtNTEsOSArNTEsOSBAQA0KICNpZiBf X0xJTlVYX0FSTV9BUkNIX18gPD0gNg0KIAlsZHIJXHRtcCwgPWVsZl9od2NhcAkJICAgIEAgbWF5 IG5vdCBoYXZlIE1WRlIgcmVncw0KIAlsZHIJXHRtcCwgW1x0bXAsICMwXQ0KLQl0c3QJXHRtcCwg I0hXQ0FQX1ZGUHYzRDE2DQotCXN0Y2VxbAlwMTEsIGNyMCwgW1xiYXNlXSwjMzIqNAkJICAgIEAg RlNUTUlBRCBcYmFzZSEsIHtkMTYtZDMxfQ0KLQlhZGRuZQlcYmFzZSwgXGJhc2UsICMzMio0CQkg ICAgQCBzdGVwIG92ZXIgdW51c2VkIHJlZ2lzdGVyIHNwYWNlDQorCXRzdAlcdG1wLCAjSFdDQVBf VkZQRDMyDQorCXN0Y25lbAlwMTEsIGNyMCwgW1xiYXNlXSwjMzIqNAkJICAgIEAgRlNUTUlBRCBc YmFzZSEsIHtkMTYtZDMxfQ0KKwlhZGRlcQlcYmFzZSwgXGJhc2UsICMzMio0CQkgICAgQCBzdGVw IG92ZXIgdW51c2VkIHJlZ2lzdGVyIHNwYWNlDQogI2Vsc2UNCiAJVkZQRk1SWAlcdG1wLCBNVkZS MAkJCSAgICBAIE1lZGlhIGFuZCBWRlAgRmVhdHVyZSBSZWdpc3RlciAwDQogCWFuZAlcdG1wLCBc dG1wLCAjTVZGUjBfQV9TSU1EX01BU0sJICAgIEAgQV9TSU1EIGZpZWxkDQpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0va2VybmVsL3N3cF9lbXVsYXRlLmMgYi9hcmNoL2FybS9rZXJuZWwvc3dwX2VtdWxh dGUuYw0KaW5kZXggNWY0NTJmOC4uNWQ5YjFlZSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL2tlcm5l bC9zd3BfZW11bGF0ZS5jDQorKysgYi9hcmNoL2FybS9rZXJuZWwvc3dwX2VtdWxhdGUuYw0KQEAg LTEwOCwxMCArMTA4LDEyIEBAIHN0YXRpYyB2b2lkIHNldF9zZWdmYXVsdChzdHJ1Y3QgcHRfcmVn cyAqcmVncywgdW5zaWduZWQgbG9uZyBhZGRyKQ0KIHsNCiAJc2lnaW5mb190IGluZm87DQogDQor CWRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsNCiAJaWYgKGZpbmRfdm1hKGN1cnJl bnQtPm1tLCBhZGRyKSA9PSBOVUxMKQ0KIAkJaW5mby5zaV9jb2RlID0gU0VHVl9NQVBFUlI7DQog CWVsc2UNCiAJCWluZm8uc2lfY29kZSA9IFNFR1ZfQUNDRVJSOw0KKwl1cF9yZWFkKCZjdXJyZW50 LT5tbS0+bW1hcF9zZW0pOw0KIA0KIAlpbmZvLnNpX3NpZ25vID0gU0lHU0VHVjsNCiAJaW5mby5z aV9lcnJubyA9IDA7DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vbW11LmMgYi9hcmNoL2FybS9t bS9tbXUuYw0KaW5kZXggZGM4YzU1MC4uOWUyOGZkYiAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21t L21tdS5jDQorKysgYi9hcmNoL2FybS9tbS9tbXUuYw0KQEAgLTQ3NSw3ICs0NzUsNyBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgYnVpbGRfbWVtX3R5cGVfdGFibGUodm9pZCkNCiAJfQ0KIA0KIAlmb3Ig KGkgPSAwOyBpIDwgMTY7IGkrKykgew0KLQkJdW5zaWduZWQgbG9uZyB2ID0gcGdwcm90X3ZhbChw cm90ZWN0aW9uX21hcFtpXSk7DQorCQlwdGV2YWxfdCB2ID0gcGdwcm90X3ZhbChwcm90ZWN0aW9u X21hcFtpXSk7DQogCQlwcm90ZWN0aW9uX21hcFtpXSA9IF9fcGdwcm90KHYgfCB1c2VyX3BncHJv dCk7DQogCX0NCiANCmRpZmYgLS1naXQgYS9hcmNoL2FybS92ZnAvdmZwbW9kdWxlLmMgYi9hcmNo L2FybS92ZnAvdmZwbW9kdWxlLmMNCmluZGV4IGYwNzAyZjMuLjdjODE1YjIgMTAwNjQ0DQotLS0g YS9hcmNoL2FybS92ZnAvdmZwbW9kdWxlLmMNCisrKyBiL2FyY2gvYXJtL3ZmcC92ZnBtb2R1bGUu Yw0KQEAgLTYxMCwxMSArNjEwLDE0IEBAIHN0YXRpYyBpbnQgX19pbml0IHZmcF9pbml0KHZvaWQp DQogCQkJZWxmX2h3Y2FwIHw9IEhXQ0FQX1ZGUHYzOw0KIA0KIAkJCS8qDQotCQkJICogQ2hlY2sg Zm9yIFZGUHYzIEQxNi4gQ1BVcyBpbiB0aGlzIGNvbmZpZ3VyYXRpb24NCi0JCQkgKiBvbmx5IGhh dmUgMTYgeCA2NGJpdCByZWdpc3RlcnMuDQorCQkJICogQ2hlY2sgZm9yIFZGUHYzIEQxNiBhbmQg VkZQdjQgRDE2LiAgQ1BVcyBpbg0KKwkJCSAqIHRoaXMgY29uZmlndXJhdGlvbiBvbmx5IGhhdmUg MTYgeCA2NGJpdA0KKwkJCSAqIHJlZ2lzdGVycy4NCiAJCQkgKi8NCiAJCQlpZiAoKChmbXJ4KE1W RlIwKSAmIE1WRlIwX0FfU0lNRF9NQVNLKSkgPT0gMSkNCi0JCQkJZWxmX2h3Y2FwIHw9IEhXQ0FQ X1ZGUHYzRDE2Ow0KKwkJCQllbGZfaHdjYXAgfD0gSFdDQVBfVkZQdjNEMTY7IC8qIGFsc28gdjQt RDE2ICovDQorCQkJZWxzZQ0KKwkJCQllbGZfaHdjYXAgfD0gSFdDQVBfVkZQRDMyOw0KIAkJfQ0K ICNlbmRpZg0KIAkJLyoNCmRpZmYgLS1naXQgYS9hcmNoL2NyaXMvaW5jbHVkZS9hc20vaW8uaCBi L2FyY2gvY3Jpcy9pbmNsdWRlL2FzbS9pby5oDQppbmRleCAzMjU2N2JjLi5hYzEyYWUyIDEwMDY0 NA0KLS0tIGEvYXJjaC9jcmlzL2luY2x1ZGUvYXNtL2lvLmgNCisrKyBiL2FyY2gvY3Jpcy9pbmNs dWRlL2FzbS9pby5oDQpAQCAtMTMzLDEyICsxMzMsMzkgQEAgc3RhdGljIGlubGluZSB2b2lkIHdy aXRlbCh1bnNpZ25lZCBpbnQgYiwgdm9sYXRpbGUgdm9pZCBfX2lvbWVtICphZGRyKQ0KICNkZWZp bmUgaW5zYihwb3J0LGFkZHIsY291bnQpIChjcmlzX2lvcHMgPyBjcmlzX2lvcHMtPnJlYWRfaW8o cG9ydCxhZGRyLDEsY291bnQpIDogMCkNCiAjZGVmaW5lIGluc3cocG9ydCxhZGRyLGNvdW50KSAo Y3Jpc19pb3BzID8gY3Jpc19pb3BzLT5yZWFkX2lvKHBvcnQsYWRkciwyLGNvdW50KSA6IDApDQog I2RlZmluZSBpbnNsKHBvcnQsYWRkcixjb3VudCkgKGNyaXNfaW9wcyA/IGNyaXNfaW9wcy0+cmVh ZF9pbyhwb3J0LGFkZHIsNCxjb3VudCkgOiAwKQ0KLSNkZWZpbmUgb3V0YihkYXRhLHBvcnQpIGlm IChjcmlzX2lvcHMpIGNyaXNfaW9wcy0+d3JpdGVfaW8ocG9ydCwodm9pZCopKHVuc2lnbmVkKWRh dGEsMSwxKQ0KLSNkZWZpbmUgb3V0dyhkYXRhLHBvcnQpIGlmIChjcmlzX2lvcHMpIGNyaXNfaW9w cy0+d3JpdGVfaW8ocG9ydCwodm9pZCopKHVuc2lnbmVkKWRhdGEsMiwxKQ0KLSNkZWZpbmUgb3V0 bChkYXRhLHBvcnQpIGlmIChjcmlzX2lvcHMpIGNyaXNfaW9wcy0+d3JpdGVfaW8ocG9ydCwodm9p ZCopKHVuc2lnbmVkKWRhdGEsNCwxKQ0KLSNkZWZpbmUgb3V0c2IocG9ydCxhZGRyLGNvdW50KSBp ZihjcmlzX2lvcHMpIGNyaXNfaW9wcy0+d3JpdGVfaW8ocG9ydCwodm9pZCopYWRkciwxLGNvdW50 KQ0KLSNkZWZpbmUgb3V0c3cocG9ydCxhZGRyLGNvdW50KSBpZihjcmlzX2lvcHMpIGNyaXNfaW9w cy0+d3JpdGVfaW8ocG9ydCwodm9pZCopYWRkciwyLGNvdW50KQ0KLSNkZWZpbmUgb3V0c2wocG9y dCxhZGRyLGNvdW50KSBpZihjcmlzX2lvcHMpIGNyaXNfaW9wcy0+d3JpdGVfaW8ocG9ydCwodm9p ZCopYWRkciwzLGNvdW50KQ0KK3N0YXRpYyBpbmxpbmUgdm9pZCBvdXRiKHVuc2lnbmVkIGNoYXIg ZGF0YSwgdW5zaWduZWQgaW50IHBvcnQpDQorew0KKwlpZiAoY3Jpc19pb3BzKQ0KKwkJY3Jpc19p b3BzLT53cml0ZV9pbyhwb3J0LCAodm9pZCAqKSAmZGF0YSwgMSwgMSk7DQorfQ0KK3N0YXRpYyBp bmxpbmUgdm9pZCBvdXR3KHVuc2lnbmVkIHNob3J0IGRhdGEsIHVuc2lnbmVkIGludCBwb3J0KQ0K K3sNCisJaWYgKGNyaXNfaW9wcykNCisJCWNyaXNfaW9wcy0+d3JpdGVfaW8ocG9ydCwgKHZvaWQg KikgJmRhdGEsIDIsIDEpOw0KK30NCitzdGF0aWMgaW5saW5lIHZvaWQgb3V0bCh1bnNpZ25lZCBp bnQgZGF0YSwgdW5zaWduZWQgaW50IHBvcnQpDQorew0KKwlpZiAoY3Jpc19pb3BzKQ0KKwkJY3Jp c19pb3BzLT53cml0ZV9pbyhwb3J0LCAodm9pZCAqKSAmZGF0YSwgNCwgMSk7DQorfQ0KK3N0YXRp YyBpbmxpbmUgdm9pZCBvdXRzYih1bnNpZ25lZCBpbnQgcG9ydCwgY29uc3Qgdm9pZCAqYWRkciwN CisJCQkgdW5zaWduZWQgbG9uZyBjb3VudCkNCit7DQorCWlmIChjcmlzX2lvcHMpDQorCQljcmlz X2lvcHMtPndyaXRlX2lvKHBvcnQsICh2b2lkICopYWRkciwgMSwgY291bnQpOw0KK30NCitzdGF0 aWMgaW5saW5lIHZvaWQgb3V0c3codW5zaWduZWQgaW50IHBvcnQsIGNvbnN0IHZvaWQgKmFkZHIs DQorCQkJIHVuc2lnbmVkIGxvbmcgY291bnQpDQorew0KKwlpZiAoY3Jpc19pb3BzKQ0KKwkJY3Jp c19pb3BzLT53cml0ZV9pbyhwb3J0LCAodm9pZCAqKWFkZHIsIDIsIGNvdW50KTsNCit9DQorc3Rh dGljIGlubGluZSB2b2lkIG91dHNsKHVuc2lnbmVkIGludCBwb3J0LCBjb25zdCB2b2lkICphZGRy LA0KKwkJCSB1bnNpZ25lZCBsb25nIGNvdW50KQ0KK3sNCisJaWYgKGNyaXNfaW9wcykNCisJCWNy aXNfaW9wcy0+d3JpdGVfaW8ocG9ydCwgKHZvaWQgKilhZGRyLCA0LCBjb3VudCk7DQorfQ0KIA0K IC8qDQogICogQ29udmVydCBhIHBoeXNpY2FsIHBvaW50ZXIgdG8gYSB2aXJ0dWFsIGtlcm5lbCBw b2ludGVyIGZvciAvZGV2L21lbQ0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvcHJvY2Vz cy5jIGIvYXJjaC9taXBzL2tlcm5lbC9wcm9jZXNzLmMNCmluZGV4IGM0N2Y5NmUuLmJmMTI4ZDcg MTAwNjQ0DQotLS0gYS9hcmNoL21pcHMva2VybmVsL3Byb2Nlc3MuYw0KKysrIGIvYXJjaC9taXBz L2tlcm5lbC9wcm9jZXNzLmMNCkBAIC03Miw5ICs3Miw3IEBAIHZvaWQgX19ub3JldHVybiBjcHVf aWRsZSh2b2lkKQ0KIAkJCX0NCiAJCX0NCiAjaWZkZWYgQ09ORklHX0hPVFBMVUdfQ1BVDQotCQlp ZiAoIWNwdV9vbmxpbmUoY3B1KSAmJiAhY3B1X2lzc2V0KGNwdSwgY3B1X2NhbGxpbl9tYXApICYm DQotCQkgICAgKHN5c3RlbV9zdGF0ZSA9PSBTWVNURU1fUlVOTklORyB8fA0KLQkJICAgICBzeXN0 ZW1fc3RhdGUgPT0gU1lTVEVNX0JPT1RJTkcpKQ0KKwkJaWYgKCFjcHVfb25saW5lKGNwdSkgJiYg IWNwdV9pc3NldChjcHUsIGNwdV9jYWxsaW5fbWFwKSkNCiAJCQlwbGF5X2RlYWQoKTsNCiAjZW5k aWYNCiAJCXRpY2tfbm9oel9yZXN0YXJ0X3NjaGVkX3RpY2soKTsNCmRpZmYgLS1naXQgYS9hcmNo L3Bvd2VycGMva2VybmVsL2hlYWRfNjQuUyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF82NC5T DQppbmRleCAwNmM3MjUxLi5jZGY2YjNmIDEwMDY0NA0KLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5l bC9oZWFkXzY0LlMNCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvaGVhZF82NC5TDQpAQCAtNDM1 LDcgKzQzNSw3IEBAIF9TVEFUSUMoX19hZnRlcl9wcm9tX3N0YXJ0KQ0KIAl0b3ZpcnQocjYscjYp CQkJLyogb24gYm9va2UsIHdlIGFscmVhZHkgcnVuIGF0IFBBR0VfT0ZGU0VUICovDQogI2VuZGlm DQogDQotI2lmZGVmIENPTkZJR19DUkFTSF9EVU1QDQorI2lmZGVmIENPTkZJR19SRUxPQ0FUQUJM RQ0KIC8qDQogICogQ2hlY2sgaWYgdGhlIGtlcm5lbCBoYXMgdG8gYmUgcnVubmluZyBhcyByZWxv Y2F0YWJsZSBrZXJuZWwgYmFzZWQgb24gdGhlDQogICogdmFyaWFibGUgX19ydW5fYXRfbG9hZCwg aWYgaXQgaXMgc2V0IHRoZSBrZXJuZWwgaXMgdHJlYXRlZCBhcyByZWxvY2F0YWJsZQ0KZGlmZiAt LWdpdCBhL2FyY2gvcG93ZXJwYy9rdm0vNDR4X2VtdWxhdGUuYyBiL2FyY2gvcG93ZXJwYy9rdm0v NDR4X2VtdWxhdGUuYw0KaW5kZXggNTQ5YmIyYy4uZGVkOGExYSAxMDA2NDQNCi0tLSBhL2FyY2gv cG93ZXJwYy9rdm0vNDR4X2VtdWxhdGUuYw0KKysrIGIvYXJjaC9wb3dlcnBjL2t2bS80NHhfZW11 bGF0ZS5jDQpAQCAtNzksNiArNzksNyBAQCBpbnQga3ZtcHBjX2NvcmVfZW11bGF0ZV9vcChzdHJ1 Y3Qga3ZtX3J1biAqcnVuLCBzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsDQogCQkJCXJ1bi0+ZGNyLmRj cm4gPSBkY3JuOw0KIAkJCQlydW4tPmRjci5kYXRhID0gIDA7DQogCQkJCXJ1bi0+ZGNyLmlzX3dy aXRlID0gMDsNCisJCQkJdmNwdS0+YXJjaC5kY3JfaXNfd3JpdGUgPSAwOw0KIAkJCQl2Y3B1LT5h cmNoLmlvX2dwciA9IHJ0Ow0KIAkJCQl2Y3B1LT5hcmNoLmRjcl9uZWVkZWQgPSAxOw0KIAkJCQlr dm1wcGNfYWNjb3VudF9leGl0KHZjcHUsIERDUl9FWElUUyk7DQpAQCAtMTAwLDYgKzEwMSw3IEBA IGludCBrdm1wcGNfY29yZV9lbXVsYXRlX29wKHN0cnVjdCBrdm1fcnVuICpydW4sIHN0cnVjdCBr dm1fdmNwdSAqdmNwdSwNCiAJCQkJcnVuLT5kY3IuZGNybiA9IGRjcm47DQogCQkJCXJ1bi0+ZGNy LmRhdGEgPSBrdm1wcGNfZ2V0X2dwcih2Y3B1LCBycyk7DQogCQkJCXJ1bi0+ZGNyLmlzX3dyaXRl ID0gMTsNCisJCQkJdmNwdS0+YXJjaC5kY3JfaXNfd3JpdGUgPSAxOw0KIAkJCQl2Y3B1LT5hcmNo LmRjcl9uZWVkZWQgPSAxOw0KIAkJCQlrdm1wcGNfYWNjb3VudF9leGl0KHZjcHUsIERDUl9FWElU Uyk7DQogCQkJCWVtdWxhdGVkID0gRU1VTEFURV9ET19EQ1I7DQpkaWZmIC0tZ2l0IGEvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9lbWJlZGRlZDZ4eC93aWkuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvZW1iZWRkZWQ2eHgvd2lpLmMNCmluZGV4IDFiNWRjMWEuLmRhZjc5M2IgMTAwNjQ0DQotLS0g YS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL2VtYmVkZGVkNnh4L3dpaS5jDQorKysgYi9hcmNoL3Bv d2VycGMvcGxhdGZvcm1zL2VtYmVkZGVkNnh4L3dpaS5jDQpAQCAtODUsOSArODUsMTEgQEAgdm9p ZCBfX2luaXQgd2lpX21lbW9yeV9maXh1cHModm9pZCkNCiAJd2lpX2hvbGVfc3RhcnQgPSBwWzBd LmJhc2UgKyBwWzBdLnNpemU7DQogCXdpaV9ob2xlX3NpemUgPSBwWzFdLmJhc2UgLSB3aWlfaG9s ZV9zdGFydDsNCiANCi0JcHJfaW5mbygiTUVNMTogPCUwOGxseCAlMDhsbHg+XG4iLCBwWzBdLmJh c2UsIHBbMF0uc2l6ZSk7DQorCXByX2luZm8oIk1FTTE6IDwlMDhsbHggJTA4bGx4PlxuIiwNCisJ CSh1bnNpZ25lZCBsb25nIGxvbmcpIHBbMF0uYmFzZSwgKHVuc2lnbmVkIGxvbmcgbG9uZykgcFsw XS5zaXplKTsNCiAJcHJfaW5mbygiSE9MRTogPCUwOGx4ICUwOGx4PlxuIiwgd2lpX2hvbGVfc3Rh cnQsIHdpaV9ob2xlX3NpemUpOw0KLQlwcl9pbmZvKCJNRU0yOiA8JTA4bGx4ICUwOGxseD5cbiIs IHBbMV0uYmFzZSwgcFsxXS5zaXplKTsNCisJcHJfaW5mbygiTUVNMjogPCUwOGxseCAlMDhsbHg+ XG4iLA0KKwkJKHVuc2lnbmVkIGxvbmcgbG9uZykgcFsxXS5iYXNlLCAodW5zaWduZWQgbG9uZyBs b25nKSBwWzFdLnNpemUpOw0KIA0KIAlwWzBdLnNpemUgKz0gd2lpX2hvbGVfc2l6ZSArIHBbMV0u c2l6ZTsNCiANCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMgYi9hcmNoL3Mz OTAva3ZtL2t2bS1zMzkwLmMNCmluZGV4IGQzY2I4NmMuLmRmZmNhYTQgMTAwNjQ0DQotLS0gYS9h cmNoL3MzOTAva3ZtL2t2bS1zMzkwLmMNCisrKyBiL2FyY2gvczM5MC9rdm0va3ZtLXMzOTAuYw0K QEAgLTc0OSw3ICs3NDksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBrdm1fczM5MF9pbml0KHZvaWQp DQogCX0NCiAJbWVtY3B5KGZhY2lsaXRpZXMsIFMzOTBfbG93Y29yZS5zdGZsZV9mYWNfbGlzdCwg MTYpOw0KIAlmYWNpbGl0aWVzWzBdICY9IDB4ZmYwMGZmZjNmNDdjMDAwMFVMTDsNCi0JZmFjaWxp dGllc1sxXSAmPSAweDIwMWMwMDAwMDAwMDAwMDBVTEw7DQorCWZhY2lsaXRpZXNbMV0gJj0gMHgw MDFjMDAwMDAwMDAwMDAwVUxMOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvYXJj aC94ODYva2VybmVsL2hwZXQuYyBiL2FyY2gveDg2L2tlcm5lbC9ocGV0LmMNCmluZGV4IDFiYjBi ZjQuLjQ5NzBlZjAgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvaHBldC5jDQorKysgYi9h cmNoL3g4Ni9rZXJuZWwvaHBldC5jDQpAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQgaHBldF9tc2lf dW5tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZGF0YSkNCiANCiAJLyogdW5tYXNrIGl0ICovDQogCWNm ZyA9IGhwZXRfcmVhZGwoSFBFVF9Ubl9DRkcoaGRldi0+bnVtKSk7DQotCWNmZyB8PSBIUEVUX1RO X0ZTQjsNCisJY2ZnIHw9IEhQRVRfVE5fRU5BQkxFIHwgSFBFVF9UTl9GU0I7DQogCWhwZXRfd3Jp dGVsKGNmZywgSFBFVF9Ubl9DRkcoaGRldi0+bnVtKSk7DQogfQ0KIA0KQEAgLTQ0MCw3ICs0NDAs NyBAQCB2b2lkIGhwZXRfbXNpX21hc2soc3RydWN0IGlycV9kYXRhICpkYXRhKQ0KIA0KIAkvKiBt YXNrIGl0ICovDQogCWNmZyA9IGhwZXRfcmVhZGwoSFBFVF9Ubl9DRkcoaGRldi0+bnVtKSk7DQot CWNmZyAmPSB+SFBFVF9UTl9GU0I7DQorCWNmZyAmPSB+KEhQRVRfVE5fRU5BQkxFIHwgSFBFVF9U Tl9GU0IpOw0KIAlocGV0X3dyaXRlbChjZmcsIEhQRVRfVG5fQ0ZHKGhkZXYtPm51bSkpOw0KIH0N CiANCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rdm0veDg2LmMgYi9hcmNoL3g4Ni9rdm0veDg2LmMN CmluZGV4IDRmYzUzMjMuLmY0MDYzZmQgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMN CisrKyBiL2FyY2gveDg2L2t2bS94ODYuYw0KQEAgLTU3OCw2ICs1NzgsOSBAQCBzdGF0aWMgYm9v bCBndWVzdF9jcHVpZF9oYXNfeHNhdmUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQ0KIHsNCiAJc3Ry dWN0IGt2bV9jcHVpZF9lbnRyeTIgKmJlc3Q7DQogDQorCWlmICghc3RhdGljX2NwdV9oYXMoWDg2 X0ZFQVRVUkVfWFNBVkUpKQ0KKwkJcmV0dXJuIDA7DQorDQogCWJlc3QgPSBrdm1fZmluZF9jcHVp ZF9lbnRyeSh2Y3B1LCAxLCAwKTsNCiAJcmV0dXJuIGJlc3QgJiYgKGJlc3QtPmVjeCAmIGJpdChY ODZfRkVBVFVSRV9YU0FWRSkpOw0KIH0NCkBAIC02MTQ5LDYgKzYxNTIsOSBAQCBpbnQga3ZtX2Fy Y2hfdmNwdV9pb2N0bF9zZXRfc3JlZ3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1LA0KIAlpbnQgcGVu ZGluZ192ZWMsIG1heF9iaXRzLCBpZHg7DQogCXN0cnVjdCBkZXNjX3B0ciBkdDsNCiANCisJaWYg KCFndWVzdF9jcHVpZF9oYXNfeHNhdmUodmNwdSkgJiYgKHNyZWdzLT5jcjQgJiBYODZfQ1I0X09T WFNBVkUpKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQogCWR0LnNpemUgPSBzcmVncy0+aWR0Lmxp bWl0Ow0KIAlkdC5hZGRyZXNzID0gc3JlZ3MtPmlkdC5iYXNlOw0KIAlrdm1feDg2X29wcy0+c2V0 X2lkdCh2Y3B1LCAmZHQpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9iYXR0ZXJ5LmMgYi9k cml2ZXJzL2FjcGkvYmF0dGVyeS5jDQppbmRleCA1NTM1NDc3Li5hMWE0YjhlIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9hY3BpL2JhdHRlcnkuYw0KKysrIGIvZHJpdmVycy9hY3BpL2JhdHRlcnkuYw0K QEAgLTM0LDYgKzM0LDcgQEANCiAjaW5jbHVkZSA8bGludXgvZG1pLmg+DQogI2luY2x1ZGUgPGxp bnV4L3NsYWIuaD4NCiAjaW5jbHVkZSA8bGludXgvc3VzcGVuZC5oPg0KKyNpbmNsdWRlIDxhc20v dW5hbGlnbmVkLmg+DQogDQogI2lmZGVmIENPTkZJR19BQ1BJX1BST0NGU19QT1dFUg0KICNpbmNs dWRlIDxsaW51eC9wcm9jX2ZzLmg+DQpAQCAtOTUsNiArOTYsMTggQEAgZW51bSB7DQogCUFDUElf QkFUVEVSWV9BTEFSTV9QUkVTRU5ULA0KIAlBQ1BJX0JBVFRFUllfWElORk9fUFJFU0VOVCwNCiAJ QUNQSV9CQVRURVJZX1FVSVJLX1BFUkNFTlRBR0VfQ0FQQUNJVFksDQorCS8qIE9uIExlbm92byBU aGlua3BhZCBtb2RlbHMgZnJvbSAyMDEwIGFuZCAyMDExLCB0aGUgcG93ZXIgdW5pdA0KKwkgICBz d2l0Y2hlcyBiZXR3ZWVuIG1XaCBhbmQgbUFoIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBzeXN0 ZW0NCisJICAgaXMgcnVubmluZyBvbiBiYXR0ZXJ5IG9yIG5vdC4gIFdoZW4gbUFoIGlzIHRoZSB1 bml0LCBtb3N0DQorCSAgIHJlcG9ydGVkIHZhbHVlcyBhcmUgaW5jb3JyZWN0IGFuZCBuZWVkIHRv IGJlIGFkanVzdGVkIGJ5DQorCSAgIDEwMDAwL2Rlc2lnbl92b2x0YWdlLiAgVmVyaWZpZWQgb24g eDIwMSwgdDQxMCwgdDQxMHMsIGFuZCB4MjIwLg0KKwkgICBQcmUtMjAxMCBhbmQgMjAxMiBtb2Rl bHMgYXBwZWFyIHRvIGFsd2F5cyByZXBvcnQgaW4gbVdoIGFuZA0KKwkgICBhcmUgdGh1cyB1bmFm ZmVjdGVkICh0ZXN0ZWQgd2l0aCB0NDIsIHQ2MSwgdDUwMCwgeDIwMCwgeDMwMCwNCisJICAgYW5k IHgyMzApLiAgQWxzbywgaW4gbWlkLTIwMTIgTGVub3ZvIGlzc3VlZCBhIEJJT1MgdXBkYXRlIGZv cg0KKwkgICB0aGUgMjAxMSBtb2RlbHMgdGhhdCBmaXhlcyB0aGUgaXNzdWUgKHRlc3RlZCBvbiB4 MjIwIHdpdGggYQ0KKwkgICBwb3N0LTEuMjkgQklPUyksIGJ1dCBhcyBvZiBOb3YuIDIwMTIsIG5v IHN1Y2ggdXBkYXRlIGlzDQorCSAgIGF2YWlsYWJsZSBmb3IgdGhlIDIwMTAgbW9kZWxzLiAgKi8N CisJQUNQSV9CQVRURVJZX1FVSVJLX1RISU5LUEFEX01BSCwNCiB9Ow0KIA0KIHN0cnVjdCBhY3Bp X2JhdHRlcnkgew0KQEAgLTQyOSw2ICs0NDIsMjEgQEAgc3RhdGljIGludCBhY3BpX2JhdHRlcnlf Z2V0X2luZm8oc3RydWN0IGFjcGlfYmF0dGVyeSAqYmF0dGVyeSkNCiAJa2ZyZWUoYnVmZmVyLnBv aW50ZXIpOw0KIAlpZiAodGVzdF9iaXQoQUNQSV9CQVRURVJZX1FVSVJLX1BFUkNFTlRBR0VfQ0FQ QUNJVFksICZiYXR0ZXJ5LT5mbGFncykpDQogCQliYXR0ZXJ5LT5mdWxsX2NoYXJnZV9jYXBhY2l0 eSA9IGJhdHRlcnktPmRlc2lnbl9jYXBhY2l0eTsNCisJaWYgKHRlc3RfYml0KEFDUElfQkFUVEVS WV9RVUlSS19USElOS1BBRF9NQUgsICZiYXR0ZXJ5LT5mbGFncykgJiYNCisJICAgIGJhdHRlcnkt PnBvd2VyX3VuaXQgJiYgYmF0dGVyeS0+ZGVzaWduX3ZvbHRhZ2UpIHsNCisJCWJhdHRlcnktPmRl c2lnbl9jYXBhY2l0eSA9IGJhdHRlcnktPmRlc2lnbl9jYXBhY2l0eSAqDQorCQkgICAgMTAwMDAg LyBiYXR0ZXJ5LT5kZXNpZ25fdm9sdGFnZTsNCisJCWJhdHRlcnktPmZ1bGxfY2hhcmdlX2NhcGFj aXR5ID0gYmF0dGVyeS0+ZnVsbF9jaGFyZ2VfY2FwYWNpdHkgKg0KKwkJICAgIDEwMDAwIC8gYmF0 dGVyeS0+ZGVzaWduX3ZvbHRhZ2U7DQorCQliYXR0ZXJ5LT5kZXNpZ25fY2FwYWNpdHlfd2Fybmlu ZyA9DQorCQkgICAgYmF0dGVyeS0+ZGVzaWduX2NhcGFjaXR5X3dhcm5pbmcgKg0KKwkJICAgIDEw MDAwIC8gYmF0dGVyeS0+ZGVzaWduX3ZvbHRhZ2U7DQorCQkvKiBDdXJpb3VzbHksIGRlc2lnbl9j YXBhY2l0eV9sb3csIHVubGlrZSB0aGUgcmVzdCBvZiB0aGVtLA0KKwkJICAgaXMgY29ycmVjdC4g ICovDQorCQkvKiBjYXBhY2l0eV9ncmFudWxhcml0eV8qIGVxdWFsIDEgb24gdGhlIHN5c3RlbXMg dGVzdGVkLCBzbw0KKwkJICAgaXQncyBpbXBvc3NpYmxlIHRvIHRlbGwgaWYgdGhleSB3b3VsZCBu ZWVkIGFuIGFkanVzdG1lbnQNCisJCSAgIG9yIG5vdCBpZiB0aGVpciB2YWx1ZXMgd2VyZSBoaWdo ZXIuICAqLw0KKwl9DQogCXJldHVybiByZXN1bHQ7DQogfQ0KIA0KQEAgLTQ3Nyw2ICs1MDUsMTEg QEAgc3RhdGljIGludCBhY3BpX2JhdHRlcnlfZ2V0X3N0YXRlKHN0cnVjdCBhY3BpX2JhdHRlcnkg KmJhdHRlcnkpDQogCSAgICAmJiBiYXR0ZXJ5LT5jYXBhY2l0eV9ub3cgPj0gMCAmJiBiYXR0ZXJ5 LT5jYXBhY2l0eV9ub3cgPD0gMTAwKQ0KIAkJYmF0dGVyeS0+Y2FwYWNpdHlfbm93ID0gKGJhdHRl cnktPmNhcGFjaXR5X25vdyAqDQogCQkJCWJhdHRlcnktPmZ1bGxfY2hhcmdlX2NhcGFjaXR5KSAv IDEwMDsNCisJaWYgKHRlc3RfYml0KEFDUElfQkFUVEVSWV9RVUlSS19USElOS1BBRF9NQUgsICZi YXR0ZXJ5LT5mbGFncykgJiYNCisJICAgIGJhdHRlcnktPnBvd2VyX3VuaXQgJiYgYmF0dGVyeS0+ ZGVzaWduX3ZvbHRhZ2UpIHsNCisJCWJhdHRlcnktPmNhcGFjaXR5X25vdyA9IGJhdHRlcnktPmNh cGFjaXR5X25vdyAqDQorCQkgICAgMTAwMDAgLyBiYXR0ZXJ5LT5kZXNpZ25fdm9sdGFnZTsNCisJ fQ0KIAlyZXR1cm4gcmVzdWx0Ow0KIH0NCiANCkBAIC01ODYsNiArNjE5LDI0IEBAIHN0YXRpYyB2 b2lkIHN5c2ZzX3JlbW92ZV9iYXR0ZXJ5KHN0cnVjdCBhY3BpX2JhdHRlcnkgKmJhdHRlcnkpDQog CW11dGV4X3VubG9jaygmYmF0dGVyeS0+c3lzZnNfbG9jayk7DQogfQ0KIA0KK3N0YXRpYyB2b2lk IGZpbmRfYmF0dGVyeShjb25zdCBzdHJ1Y3QgZG1pX2hlYWRlciAqZG0sIHZvaWQgKnByaXZhdGUp DQorew0KKwlzdHJ1Y3QgYWNwaV9iYXR0ZXJ5ICpiYXR0ZXJ5ID0gKHN0cnVjdCBhY3BpX2JhdHRl cnkgKilwcml2YXRlOw0KKwkvKiBOb3RlOiB0aGUgaGFyZGNvZGVkIG9mZnNldHMgYmVsb3cgaGF2 ZSBiZWVuIGV4dHJhY3RlZCBmcm9tDQorCSAgIHRoZSBzb3VyY2UgY29kZSBvZiBkbWlkZWNvZGUu ICAqLw0KKwlpZiAoZG0tPnR5cGUgPT0gRE1JX0VOVFJZX1BPUlRBQkxFX0JBVFRFUlkgJiYgZG0t Pmxlbmd0aCA+PSA4KSB7DQorCQljb25zdCB1OCAqZG1pX2RhdGEgPSAoY29uc3QgdTggKikoZG0g KyAxKTsNCisJCWludCBkbWlfY2FwYWNpdHkgPSBnZXRfdW5hbGlnbmVkKChjb25zdCB1MTYgKiko ZG1pX2RhdGEgKyA2KSk7DQorCQlpZiAoZG0tPmxlbmd0aCA+PSAxOCkNCisJCQlkbWlfY2FwYWNp dHkgKj0gZG1pX2RhdGFbMTddOw0KKwkJaWYgKGJhdHRlcnktPmRlc2lnbl9jYXBhY2l0eSAqIGJh dHRlcnktPmRlc2lnbl92b2x0YWdlIC8gMTAwMA0KKwkJICAgICE9IGRtaV9jYXBhY2l0eSAmJg0K KwkJICAgIGJhdHRlcnktPmRlc2lnbl9jYXBhY2l0eSAqIDEwID09IGRtaV9jYXBhY2l0eSkNCisJ CQlzZXRfYml0KEFDUElfQkFUVEVSWV9RVUlSS19USElOS1BBRF9NQUgsDQorCQkJCSZiYXR0ZXJ5 LT5mbGFncyk7DQorCX0NCit9DQorDQogLyoNCiAgKiBBY2NvcmRpbmcgdG8gdGhlIEFDUEkgc3Bl Yywgc29tZSBraW5kcyBvZiBwcmltYXJ5IGJhdHRlcmllcyBjYW4NCiAgKiByZXBvcnQgcGVyY2Vu dGFnZSBiYXR0ZXJ5IHJlbWFpbmluZyBjYXBhY2l0eSBkaXJlY3RseSB0byBPUy4NCkBAIC02MTEs NiArNjYyLDMyIEBAIHN0YXRpYyB2b2lkIGFjcGlfYmF0dGVyeV9xdWlya3Moc3RydWN0IGFjcGlf YmF0dGVyeSAqYmF0dGVyeSkNCiAJCWJhdHRlcnktPmNhcGFjaXR5X25vdyA9IChiYXR0ZXJ5LT5j YXBhY2l0eV9ub3cgKg0KIAkJCQliYXR0ZXJ5LT5mdWxsX2NoYXJnZV9jYXBhY2l0eSkgLyAxMDA7 DQogCX0NCisNCisJaWYgKHRlc3RfYml0KEFDUElfQkFUVEVSWV9RVUlSS19USElOS1BBRF9NQUgs ICZiYXR0ZXJ5LT5mbGFncykpDQorCQlyZXR1cm4gOw0KKw0KKwlpZiAoYmF0dGVyeS0+cG93ZXJf dW5pdCAmJiBkbWlfbmFtZV9pbl92ZW5kb3JzKCJMRU5PVk8iKSkgew0KKwkJY29uc3QgY2hhciAq czsNCisJCXMgPSBkbWlfZ2V0X3N5c3RlbV9pbmZvKERNSV9QUk9EVUNUX1ZFUlNJT04pOw0KKwkJ aWYgKHMgJiYgIXN0cm5pY21wKHMsICJUaGlua1BhZCIsIDgpKSB7DQorCQkJZG1pX3dhbGsoZmlu ZF9iYXR0ZXJ5LCBiYXR0ZXJ5KTsNCisJCQlpZiAodGVzdF9iaXQoQUNQSV9CQVRURVJZX1FVSVJL X1RISU5LUEFEX01BSCwNCisJCQkJICAgICAmYmF0dGVyeS0+ZmxhZ3MpICYmDQorCQkJICAgIGJh dHRlcnktPmRlc2lnbl92b2x0YWdlKSB7DQorCQkJCWJhdHRlcnktPmRlc2lnbl9jYXBhY2l0eSA9 DQorCQkJCSAgICBiYXR0ZXJ5LT5kZXNpZ25fY2FwYWNpdHkgKg0KKwkJCQkgICAgMTAwMDAgLyBi YXR0ZXJ5LT5kZXNpZ25fdm9sdGFnZTsNCisJCQkJYmF0dGVyeS0+ZnVsbF9jaGFyZ2VfY2FwYWNp dHkgPQ0KKwkJCQkgICAgYmF0dGVyeS0+ZnVsbF9jaGFyZ2VfY2FwYWNpdHkgKg0KKwkJCQkgICAg MTAwMDAgLyBiYXR0ZXJ5LT5kZXNpZ25fdm9sdGFnZTsNCisJCQkJYmF0dGVyeS0+ZGVzaWduX2Nh cGFjaXR5X3dhcm5pbmcgPQ0KKwkJCQkgICAgYmF0dGVyeS0+ZGVzaWduX2NhcGFjaXR5X3dhcm5p bmcgKg0KKwkJCQkgICAgMTAwMDAgLyBiYXR0ZXJ5LT5kZXNpZ25fdm9sdGFnZTsNCisJCQkJYmF0 dGVyeS0+Y2FwYWNpdHlfbm93ID0gYmF0dGVyeS0+Y2FwYWNpdHlfbm93ICoNCisJCQkJICAgIDEw MDAwIC8gYmF0dGVyeS0+ZGVzaWduX3ZvbHRhZ2U7DQorCQkJfQ0KKwkJfQ0KKwl9DQogfQ0KIA0K IHN0YXRpYyBpbnQgYWNwaV9iYXR0ZXJ5X3VwZGF0ZShzdHJ1Y3QgYWNwaV9iYXR0ZXJ5ICpiYXR0 ZXJ5KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9wcm9jZXNzb3JfZHJpdmVyLmMgYi9kcml2 ZXJzL2FjcGkvcHJvY2Vzc29yX2RyaXZlci5jDQppbmRleCA5ZDdiYzlmLi5hYzI4ZGIzIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9hY3BpL3Byb2Nlc3Nvcl9kcml2ZXIuYw0KKysrIGIvZHJpdmVycy9h Y3BpL3Byb2Nlc3Nvcl9kcml2ZXIuYw0KQEAgLTQwOSw2ICs0MDksNyBAQCBzdGF0aWMgdm9pZCBh Y3BpX3Byb2Nlc3Nvcl9ub3RpZnkoc3RydWN0IGFjcGlfZGV2aWNlICpkZXZpY2UsIHUzMiBldmVu dCkNCiAJCWFjcGlfYnVzX2dlbmVyYXRlX3Byb2NfZXZlbnQoZGV2aWNlLCBldmVudCwgMCk7DQog CQlhY3BpX2J1c19nZW5lcmF0ZV9uZXRsaW5rX2V2ZW50KGRldmljZS0+cG5wLmRldmljZV9jbGFz cywNCiAJCQkJCQkgIGRldl9uYW1lKCZkZXZpY2UtPmRldiksIGV2ZW50LCAwKTsNCisJCWJyZWFr Ow0KIAlkZWZhdWx0Og0KIAkJQUNQSV9ERUJVR19QUklOVCgoQUNQSV9EQl9JTkZPLA0KIAkJCQkg ICJVbnN1cHBvcnRlZCBldmVudCBbMHgleF1cbiIsIGV2ZW50KSk7DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9hY3BpL3NsZWVwLmMgYi9kcml2ZXJzL2FjcGkvc2xlZXAuYw0KaW5kZXggZWQ2YmM1Mi4u ZDc5MDc5MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYWNwaS9zbGVlcC5jDQorKysgYi9kcml2ZXJz L2FjcGkvc2xlZXAuYw0KQEAgLTEwOCw2ICsxMDgsMTgwIEBAIHZvaWQgX19pbml0IGFjcGlfb2xk X3N1c3BlbmRfb3JkZXJpbmcodm9pZCkNCiAJb2xkX3N1c3BlbmRfb3JkZXJpbmcgPSB0cnVlOw0K IH0NCiANCitzdGF0aWMgaW50IF9faW5pdCBpbml0X29sZF9zdXNwZW5kX29yZGVyaW5nKGNvbnN0 IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQ0KK3sNCisJYWNwaV9vbGRfc3VzcGVuZF9vcmRlcmlu ZygpOw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGludCBfX2luaXQgaW5pdF9udnNfbm9z YXZlKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQ0KK3sNCisJYWNwaV9udnNfbm9zYXZl KCk7DQorCXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1faWQgX19p bml0ZGF0YSBhY3Bpc2xlZXBfZG1pX3RhYmxlW10gPSB7DQorCXsNCisJLmNhbGxiYWNrID0gaW5p dF9vbGRfc3VzcGVuZF9vcmRlcmluZywNCisJLmlkZW50ID0gIkFiaXQgS045IChuRm9yY2U0IHZh cmlhbnQpIiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwg Imh0dHA6Ly93d3cuYWJpdC5jb20udHcvIiksDQorCQlETUlfTUFUQ0goRE1JX0JPQVJEX05BTUUs ICJLTjkgU2VyaWVzKE5GLUNLODA0KSIpLA0KKwkJfSwNCisJfSwNCisJew0KKwkuY2FsbGJhY2sg PSBpbml0X29sZF9zdXNwZW5kX29yZGVyaW5nLA0KKwkuaWRlbnQgPSAiSFAgeHc0NjAwIFdvcmtz dGF0aW9uIiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJI ZXdsZXR0LVBhY2thcmQiKSwNCisJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiSFAgeHc0 NjAwIFdvcmtzdGF0aW9uIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCS5jYWxsYmFjayA9IGluaXRf b2xkX3N1c3BlbmRfb3JkZXJpbmcsDQorCS5pZGVudCA9ICJBc3VzIFB1bmRpdCBQMS1BSDIgKE0y TjhMIG1vdGhlcmJvYXJkKSIsDQorCS5tYXRjaGVzID0gew0KKwkJRE1JX01BVENIKERNSV9CT0FS RF9WRU5ET1IsICJBU1VTVGVrIENvbXB1dGVyIElOQy4iKSwNCisJCURNSV9NQVRDSChETUlfQk9B UkRfTkFNRSwgIk0yTjhMIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCS5jYWxsYmFjayA9IGluaXRf b2xkX3N1c3BlbmRfb3JkZXJpbmcsDQorCS5pZGVudCA9ICJQYW5hc29uaWMgQ0Y1MS0yTCIsDQor CS5tYXRjaGVzID0gew0KKwkJRE1JX01BVENIKERNSV9CT0FSRF9WRU5ET1IsDQorCQkJCSJNYXRz dXNoaXRhIEVsZWN0cmljIEluZHVzdHJpYWwgQ28uLEx0ZC4iKSwNCisJCURNSV9NQVRDSChETUlf Qk9BUkRfTkFNRSwgIkNGNTEtMkwiKSwNCisJCX0sDQorCX0sDQorCXsNCisJLmNhbGxiYWNrID0g aW5pdF9udnNfbm9zYXZlLA0KKwkuaWRlbnQgPSAiU29ueSBWYWlvIFZHTi1GVzIxRSIsDQorCS5t YXRjaGVzID0gew0KKwkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU29ueSBDb3Jwb3JhdGlv biIpLA0KKwkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJWR04tRlcyMUUiKSwNCisJCX0s DQorCX0sDQorCXsNCisJLmNhbGxiYWNrID0gaW5pdF9udnNfbm9zYXZlLA0KKwkuaWRlbnQgPSAi U29ueSBWYWlvIFZQQ0VCMTdGWCIsDQorCS5tYXRjaGVzID0gew0KKwkJRE1JX01BVENIKERNSV9T WVNfVkVORE9SLCAiU29ueSBDb3Jwb3JhdGlvbiIpLA0KKwkJRE1JX01BVENIKERNSV9QUk9EVUNU X05BTUUsICJWUENFQjE3RlgiKSwNCisJCX0sDQorCX0sDQorCXsNCisJLmNhbGxiYWNrID0gaW5p dF9udnNfbm9zYXZlLA0KKwkuaWRlbnQgPSAiU29ueSBWYWlvIFZHTi1TUjExTSIsDQorCS5tYXRj aGVzID0gew0KKwkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU29ueSBDb3Jwb3JhdGlvbiIp LA0KKwkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJWR04tU1IxMU0iKSwNCisJCX0sDQor CX0sDQorCXsNCisJLmNhbGxiYWNrID0gaW5pdF9udnNfbm9zYXZlLA0KKwkuaWRlbnQgPSAiRXZl cmV4IFN0ZXBOb3RlIFNlcmllcyIsDQorCS5tYXRjaGVzID0gew0KKwkJRE1JX01BVENIKERNSV9T WVNfVkVORE9SLCAiRXZlcmV4IFN5c3RlbXMsIEluYy4iKSwNCisJCURNSV9NQVRDSChETUlfUFJP RFVDVF9OQU1FLCAiRXZlcmV4IFN0ZXBOb3RlIFNlcmllcyIpLA0KKwkJfSwNCisJfSwNCisJew0K KwkuY2FsbGJhY2sgPSBpbml0X252c19ub3NhdmUsDQorCS5pZGVudCA9ICJTb255IFZhaW8gVlBD RUIxWjFFIiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJT b255IENvcnBvcmF0aW9uIiksDQorCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlZQQ0VC MVoxRSIpLA0KKwkJfSwNCisJfSwNCisJew0KKwkuY2FsbGJhY2sgPSBpbml0X252c19ub3NhdmUs DQorCS5pZGVudCA9ICJTb255IFZhaW8gVkdOLU5XMTMwRCIsDQorCS5tYXRjaGVzID0gew0KKwkJ RE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU29ueSBDb3Jwb3JhdGlvbiIpLA0KKwkJRE1JX01B VENIKERNSV9QUk9EVUNUX05BTUUsICJWR04tTlcxMzBEIiksDQorCQl9LA0KKwl9LA0KKwl7DQor CS5jYWxsYmFjayA9IGluaXRfbnZzX25vc2F2ZSwNCisJLmlkZW50ID0gIlNvbnkgVmFpbyBWUEND VzI5RlgiLA0KKwkubWF0Y2hlcyA9IHsNCisJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlNv bnkgQ29ycG9yYXRpb24iKSwNCisJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVlBDQ1cy OUZYIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCS5jYWxsYmFjayA9IGluaXRfbnZzX25vc2F2ZSwN CisJLmlkZW50ID0gIkF2ZXJhdGVjIEFWMTAyMC1FRDIiLA0KKwkubWF0Y2hlcyA9IHsNCisJCURN SV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkFWRVJBVEVDIiksDQorCQlETUlfTUFUQ0goRE1JX1BS T0RVQ1RfTkFNRSwgIjEwMDAgU2VyaWVzIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCS5jYWxsYmFj ayA9IGluaXRfb2xkX3N1c3BlbmRfb3JkZXJpbmcsDQorCS5pZGVudCA9ICJBc3VzIEE4Ti1TTEkg REVMVVhFIiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwg IkFTVVNUZUsgQ29tcHV0ZXIgSU5DLiIpLA0KKwkJRE1JX01BVENIKERNSV9CT0FSRF9OQU1FLCAi QThOLVNMSSBERUxVWEUiKSwNCisJCX0sDQorCX0sDQorCXsNCisJLmNhbGxiYWNrID0gaW5pdF9v bGRfc3VzcGVuZF9vcmRlcmluZywNCisJLmlkZW50ID0gIkFzdXMgQThOLVNMSSBQcmVtaXVtIiwN CisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIkFTVVNUZUsg Q29tcHV0ZXIgSU5DLiIpLA0KKwkJRE1JX01BVENIKERNSV9CT0FSRF9OQU1FLCAiQThOLVNMSSBQ cmVtaXVtIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCS5jYWxsYmFjayA9IGluaXRfbnZzX25vc2F2 ZSwNCisJLmlkZW50ID0gIlNvbnkgVmFpbyBWR04tU1IyNkdOX1AiLA0KKwkubWF0Y2hlcyA9IHsN CisJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlNvbnkgQ29ycG9yYXRpb24iKSwNCisJCURN SV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVkdOLVNSMjZHTl9QIiksDQorCQl9LA0KKwl9LA0K Kwl7DQorCS5jYWxsYmFjayA9IGluaXRfbnZzX25vc2F2ZSwNCisJLmlkZW50ID0gIlNvbnkgVmFp byBWUENFQjFTMUUiLA0KKwkubWF0Y2hlcyA9IHsNCisJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRP UiwgIlNvbnkgQ29ycG9yYXRpb24iKSwNCisJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAi VlBDRUIxUzFFIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCS5jYWxsYmFjayA9IGluaXRfbnZzX25v c2F2ZSwNCisJLmlkZW50ID0gIlNvbnkgVmFpbyBWR04tRlc1MjBGIiwNCisJLm1hdGNoZXMgPSB7 DQorCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJTb255IENvcnBvcmF0aW9uIiksDQorCQlE TUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlZHTi1GVzUyMEYiKSwNCisJCX0sDQorCX0sDQor CXsNCisJLmNhbGxiYWNrID0gaW5pdF9udnNfbm9zYXZlLA0KKwkuaWRlbnQgPSAiQXN1cyBLNTRD IiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJBU1VTVGVL IENvbXB1dGVyIEluYy4iKSwNCisJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiSzU0QyIp LA0KKwkJfSwNCisJfSwNCisJew0KKwkuY2FsbGJhY2sgPSBpbml0X252c19ub3NhdmUsDQorCS5p ZGVudCA9ICJBc3VzIEs1NEhSIiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX1NZ U19WRU5ET1IsICJBU1VTVGVLIENvbXB1dGVyIEluYy4iKSwNCisJCURNSV9NQVRDSChETUlfUFJP RFVDVF9OQU1FLCAiSzU0SFIiKSwNCisJCX0sDQorCX0sDQorCXt9LA0KK307DQorDQorc3RhdGlj IHZvaWQgYWNwaV9zbGVlcF9kbWlfY2hlY2sodm9pZCkNCit7DQorCWRtaV9jaGVja19zeXN0ZW0o YWNwaXNsZWVwX2RtaV90YWJsZSk7DQorfQ0KKw0KIC8qKg0KICAqIGFjcGlfcG1fZnJlZXplIC0g RGlzYWJsZSB0aGUgR1BFcyBhbmQgc3VzcGVuZCBFQyB0cmFuc2FjdGlvbnMuDQogICovDQpAQCAt MTk3LDYgKzM3MSw3IEBAIHN0YXRpYyB2b2lkIGFjcGlfcG1fZW5kKHZvaWQpDQogfQ0KICNlbHNl IC8qICFDT05GSUdfQUNQSV9TTEVFUCAqLw0KICNkZWZpbmUgYWNwaV90YXJnZXRfc2xlZXBfc3Rh dGUJQUNQSV9TVEFURV9TMA0KK3N0YXRpYyBpbmxpbmUgdm9pZCBhY3BpX3NsZWVwX2RtaV9jaGVj ayh2b2lkKSB7fQ0KICNlbmRpZiAvKiBDT05GSUdfQUNQSV9TTEVFUCAqLw0KIA0KICNpZmRlZiBD T05GSUdfU1VTUEVORA0KQEAgLTM0MSwxNjcgKzUxNiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cGxhdGZvcm1fc3VzcGVuZF9vcHMgYWNwaV9zdXNwZW5kX29wc19vbGQgPSB7DQogCS5lbmQgPSBh Y3BpX3BtX2VuZCwNCiAJLnJlY292ZXIgPSBhY3BpX3BtX2ZpbmlzaCwNCiB9Ow0KLQ0KLXN0YXRp YyBpbnQgX19pbml0IGluaXRfb2xkX3N1c3BlbmRfb3JkZXJpbmcoY29uc3Qgc3RydWN0IGRtaV9z eXN0ZW1faWQgKmQpDQotew0KLQlvbGRfc3VzcGVuZF9vcmRlcmluZyA9IHRydWU7DQotCXJldHVy biAwOw0KLX0NCi0NCi1zdGF0aWMgaW50IF9faW5pdCBpbml0X252c19ub3NhdmUoY29uc3Qgc3Ry dWN0IGRtaV9zeXN0ZW1faWQgKmQpDQotew0KLQlhY3BpX252c19ub3NhdmUoKTsNCi0JcmV0dXJu IDA7DQotfQ0KLQ0KLXN0YXRpYyBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBfX2luaXRkYXRhIGFjcGlz bGVlcF9kbWlfdGFibGVbXSA9IHsNCi0Jew0KLQkuY2FsbGJhY2sgPSBpbml0X29sZF9zdXNwZW5k X29yZGVyaW5nLA0KLQkuaWRlbnQgPSAiQWJpdCBLTjkgKG5Gb3JjZTQgdmFyaWFudCkiLA0KLQku bWF0Y2hlcyA9IHsNCi0JCURNSV9NQVRDSChETUlfQk9BUkRfVkVORE9SLCAiaHR0cDovL3d3dy5h Yml0LmNvbS50dy8iKSwNCi0JCURNSV9NQVRDSChETUlfQk9BUkRfTkFNRSwgIktOOSBTZXJpZXMo TkYtQ0s4MDQpIiksDQotCQl9LA0KLQl9LA0KLQl7DQotCS5jYWxsYmFjayA9IGluaXRfb2xkX3N1 c3BlbmRfb3JkZXJpbmcsDQotCS5pZGVudCA9ICJIUCB4dzQ2MDAgV29ya3N0YXRpb24iLA0KLQku bWF0Y2hlcyA9IHsNCi0JCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkhld2xldHQtUGFja2Fy ZCIpLA0KLQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJIUCB4dzQ2MDAgV29ya3N0YXRp b24iKSwNCi0JCX0sDQotCX0sDQotCXsNCi0JLmNhbGxiYWNrID0gaW5pdF9vbGRfc3VzcGVuZF9v cmRlcmluZywNCi0JLmlkZW50ID0gIkFzdXMgUHVuZGl0IFAxLUFIMiAoTTJOOEwgbW90aGVyYm9h cmQpIiwNCi0JLm1hdGNoZXMgPSB7DQotCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwgIkFT VVNUZWsgQ29tcHV0ZXIgSU5DLiIpLA0KLQkJRE1JX01BVENIKERNSV9CT0FSRF9OQU1FLCAiTTJO OEwiKSwNCi0JCX0sDQotCX0sDQotCXsNCi0JLmNhbGxiYWNrID0gaW5pdF9vbGRfc3VzcGVuZF9v cmRlcmluZywNCi0JLmlkZW50ID0gIlBhbmFzb25pYyBDRjUxLTJMIiwNCi0JLm1hdGNoZXMgPSB7 DQotCQlETUlfTUFUQ0goRE1JX0JPQVJEX1ZFTkRPUiwNCi0JCQkJIk1hdHN1c2hpdGEgRWxlY3Ry aWMgSW5kdXN0cmlhbCBDby4sTHRkLiIpLA0KLQkJRE1JX01BVENIKERNSV9CT0FSRF9OQU1FLCAi Q0Y1MS0yTCIpLA0KLQkJfSwNCi0JfSwNCi0Jew0KLQkuY2FsbGJhY2sgPSBpbml0X252c19ub3Nh dmUsDQotCS5pZGVudCA9ICJTb255IFZhaW8gVkdOLUZXMjFFIiwNCi0JLm1hdGNoZXMgPSB7DQot CQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJTb255IENvcnBvcmF0aW9uIiksDQotCQlETUlf TUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlZHTi1GVzIxRSIpLA0KLQkJfSwNCi0JfSwNCi0Jew0K LQkuY2FsbGJhY2sgPSBpbml0X252c19ub3NhdmUsDQotCS5pZGVudCA9ICJTb255IFZhaW8gVlBD RUIxN0ZYIiwNCi0JLm1hdGNoZXMgPSB7DQotCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJT b255IENvcnBvcmF0aW9uIiksDQotCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlZQQ0VC MTdGWCIpLA0KLQkJfSwNCi0JfSwNCi0Jew0KLQkuY2FsbGJhY2sgPSBpbml0X252c19ub3NhdmUs DQotCS5pZGVudCA9ICJTb255IFZhaW8gVkdOLVNSMTFNIiwNCi0JLm1hdGNoZXMgPSB7DQotCQlE TUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJTb255IENvcnBvcmF0aW9uIiksDQotCQlETUlfTUFU Q0goRE1JX1BST0RVQ1RfTkFNRSwgIlZHTi1TUjExTSIpLA0KLQkJfSwNCi0JfSwNCi0Jew0KLQku Y2FsbGJhY2sgPSBpbml0X252c19ub3NhdmUsDQotCS5pZGVudCA9ICJFdmVyZXggU3RlcE5vdGUg U2VyaWVzIiwNCi0JLm1hdGNoZXMgPSB7DQotCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJF dmVyZXggU3lzdGVtcywgSW5jLiIpLA0KLQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJF dmVyZXggU3RlcE5vdGUgU2VyaWVzIiksDQotCQl9LA0KLQl9LA0KLQl7DQotCS5jYWxsYmFjayA9 IGluaXRfbnZzX25vc2F2ZSwNCi0JLmlkZW50ID0gIlNvbnkgVmFpbyBWUENFQjFaMUUiLA0KLQku bWF0Y2hlcyA9IHsNCi0JCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlNvbnkgQ29ycG9yYXRp b24iKSwNCi0JCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVlBDRUIxWjFFIiksDQotCQl9 LA0KLQl9LA0KLQl7DQotCS5jYWxsYmFjayA9IGluaXRfbnZzX25vc2F2ZSwNCi0JLmlkZW50ID0g IlNvbnkgVmFpbyBWR04tTlcxMzBEIiwNCi0JLm1hdGNoZXMgPSB7DQotCQlETUlfTUFUQ0goRE1J X1NZU19WRU5ET1IsICJTb255IENvcnBvcmF0aW9uIiksDQotCQlETUlfTUFUQ0goRE1JX1BST0RV Q1RfTkFNRSwgIlZHTi1OVzEzMEQiKSwNCi0JCX0sDQotCX0sDQotCXsNCi0JLmNhbGxiYWNrID0g aW5pdF9udnNfbm9zYXZlLA0KLQkuaWRlbnQgPSAiU29ueSBWYWlvIFZQQ0NXMjlGWCIsDQotCS5t YXRjaGVzID0gew0KLQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU29ueSBDb3Jwb3JhdGlv biIpLA0KLQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJWUENDVzI5RlgiKSwNCi0JCX0s DQotCX0sDQotCXsNCi0JLmNhbGxiYWNrID0gaW5pdF9udnNfbm9zYXZlLA0KLQkuaWRlbnQgPSAi QXZlcmF0ZWMgQVYxMDIwLUVEMiIsDQotCS5tYXRjaGVzID0gew0KLQkJRE1JX01BVENIKERNSV9T WVNfVkVORE9SLCAiQVZFUkFURUMiKSwNCi0JCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAi MTAwMCBTZXJpZXMiKSwNCi0JCX0sDQotCX0sDQotCXsNCi0JLmNhbGxiYWNrID0gaW5pdF9vbGRf c3VzcGVuZF9vcmRlcmluZywNCi0JLmlkZW50ID0gIkFzdXMgQThOLVNMSSBERUxVWEUiLA0KLQku bWF0Y2hlcyA9IHsNCi0JCURNSV9NQVRDSChETUlfQk9BUkRfVkVORE9SLCAiQVNVU1RlSyBDb21w dXRlciBJTkMuIiksDQotCQlETUlfTUFUQ0goRE1JX0JPQVJEX05BTUUsICJBOE4tU0xJIERFTFVY RSIpLA0KLQkJfSwNCi0JfSwNCi0Jew0KLQkuY2FsbGJhY2sgPSBpbml0X29sZF9zdXNwZW5kX29y ZGVyaW5nLA0KLQkuaWRlbnQgPSAiQXN1cyBBOE4tU0xJIFByZW1pdW0iLA0KLQkubWF0Y2hlcyA9 IHsNCi0JCURNSV9NQVRDSChETUlfQk9BUkRfVkVORE9SLCAiQVNVU1RlSyBDb21wdXRlciBJTkMu IiksDQotCQlETUlfTUFUQ0goRE1JX0JPQVJEX05BTUUsICJBOE4tU0xJIFByZW1pdW0iKSwNCi0J CX0sDQotCX0sDQotCXsNCi0JLmNhbGxiYWNrID0gaW5pdF9udnNfbm9zYXZlLA0KLQkuaWRlbnQg PSAiU29ueSBWYWlvIFZHTi1TUjI2R05fUCIsDQotCS5tYXRjaGVzID0gew0KLQkJRE1JX01BVENI KERNSV9TWVNfVkVORE9SLCAiU29ueSBDb3Jwb3JhdGlvbiIpLA0KLQkJRE1JX01BVENIKERNSV9Q Uk9EVUNUX05BTUUsICJWR04tU1IyNkdOX1AiKSwNCi0JCX0sDQotCX0sDQotCXsNCi0JLmNhbGxi YWNrID0gaW5pdF9udnNfbm9zYXZlLA0KLQkuaWRlbnQgPSAiU29ueSBWYWlvIFZHTi1GVzUyMEYi LA0KLQkubWF0Y2hlcyA9IHsNCi0JCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlNvbnkgQ29y cG9yYXRpb24iKSwNCi0JCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVkdOLUZXNTIwRiIp LA0KLQkJfSwNCi0JfSwNCi0Jew0KLQkuY2FsbGJhY2sgPSBpbml0X252c19ub3NhdmUsDQotCS5p ZGVudCA9ICJBc3VzIEs1NEMiLA0KLQkubWF0Y2hlcyA9IHsNCi0JCURNSV9NQVRDSChETUlfU1lT X1ZFTkRPUiwgIkFTVVNUZUsgQ29tcHV0ZXIgSW5jLiIpLA0KLQkJRE1JX01BVENIKERNSV9QUk9E VUNUX05BTUUsICJLNTRDIiksDQotCQl9LA0KLQl9LA0KLQl7DQotCS5jYWxsYmFjayA9IGluaXRf bnZzX25vc2F2ZSwNCi0JLmlkZW50ID0gIkFzdXMgSzU0SFIiLA0KLQkubWF0Y2hlcyA9IHsNCi0J CURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIkFTVVNUZUsgQ29tcHV0ZXIgSW5jLiIpLA0KLQkJ RE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJLNTRIUiIpLA0KLQkJfSwNCi0JfSwNCi0Je30s DQotfTsNCiAjZW5kaWYgLyogQ09ORklHX1NVU1BFTkQgKi8NCiANCiAjaWZkZWYgQ09ORklHX0hJ QkVSTkFUSU9ODQpAQCAtODA4LDEzICs4MjIsMTMgQEAgaW50IF9faW5pdCBhY3BpX3NsZWVwX2lu aXQodm9pZCkNCiAJdTggdHlwZV9hLCB0eXBlX2I7DQogI2lmZGVmIENPTkZJR19TVVNQRU5EDQog CWludCBpID0gMDsNCi0NCi0JZG1pX2NoZWNrX3N5c3RlbShhY3Bpc2xlZXBfZG1pX3RhYmxlKTsN CiAjZW5kaWYNCiANCiAJaWYgKGFjcGlfZGlzYWJsZWQpDQogCQlyZXR1cm4gMDsNCiANCisJYWNw aV9zbGVlcF9kbWlfY2hlY2soKTsNCisNCiAJc2xlZXBfc3RhdGVzW0FDUElfU1RBVEVfUzBdID0g MTsNCiAJcHJpbnRrKEtFUk5fSU5GTyBQUkVGSVggIihzdXBwb3J0cyBTMCIpOw0KIA0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvYWNwaS92aWRlby5jIGIvZHJpdmVycy9hY3BpL3ZpZGVvLmMNCmluZGV4 IDA4YTQ0YjUuLjBlNDc5NDkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2FjcGkvdmlkZW8uYw0KKysr IGIvZHJpdmVycy9hY3BpL3ZpZGVvLmMNCkBAIC0zODksNiArMzg5LDEyIEBAIHN0YXRpYyBpbnQg X19pbml0IHZpZGVvX3NldF9icWNfb2Zmc2V0KGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpk KQ0KIAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIGludCB2aWRlb19pZ25vcmVfaW5pdGlhbF9i YWNrbGlnaHQoY29uc3Qgc3RydWN0IGRtaV9zeXN0ZW1faWQgKmQpDQorew0KKwl1c2VfYmlvc19p bml0aWFsX2JhY2tsaWdodCA9IDA7DQorCXJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgc3RydWN0 IGRtaV9zeXN0ZW1faWQgdmlkZW9fZG1pX3RhYmxlW10gX19pbml0ZGF0YSA9IHsNCiAJLyoNCiAJ ICogQnJva2VuIF9CUUMgd29ya2Fyb3VuZCBodHRwOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MTMxMjENCkBAIC00MzMsNiArNDM5LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgZG1p X3N5c3RlbV9pZCB2aWRlb19kbWlfdGFibGVbXSBfX2luaXRkYXRhID0gew0KIAkJRE1JX01BVENI KERNSV9QUk9EVUNUX05BTUUsICJBc3BpcmUgNzcyMCIpLA0KIAkJfSwNCiAJfSwNCisJew0KKwkg LmNhbGxiYWNrID0gdmlkZW9faWdub3JlX2luaXRpYWxfYmFja2xpZ2h0LA0KKwkgLmlkZW50ID0g IkhQIEZvbGlvIDEzLTIwMDAiLA0KKwkgLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX0JP QVJEX1ZFTkRPUiwgIkhld2xldHQtUGFja2FyZCIpLA0KKwkJRE1JX01BVENIKERNSV9QUk9EVUNU X05BTUUsICJIUCBGb2xpbyAxMyAtIDIwMDAgTm90ZWJvb2sgUEMiKSwNCisJCX0sDQorCX0sDQog CXt9DQogfTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvdmlkZW9fZGV0ZWN0LmMgYi9k cml2ZXJzL2FjcGkvdmlkZW9fZGV0ZWN0LmMNCmluZGV4IGYzZjBmZTcuLmQ5YzAxOTkgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2FjcGkvdmlkZW9fZGV0ZWN0LmMNCisrKyBiL2RyaXZlcnMvYWNwaS92 aWRlb19kZXRlY3QuYw0KQEAgLTEzMiw2ICsxMzIsNDEgQEAgZmluZF92aWRlbyhhY3BpX2hhbmRs ZSBoYW5kbGUsIHUzMiBsdmwsIHZvaWQgKmNvbnRleHQsIHZvaWQgKipydikNCiAJcmV0dXJuIEFF X09LOw0KIH0NCiANCisvKiBGb3JjZSB0byB1c2UgdmVuZG9yIGRyaXZlciB3aGVuIHRoZSBBQ1BJ IGRldmljZSBpcyBrbm93biB0byBiZQ0KKyAqIGJ1Z2d5ICovDQorc3RhdGljIGludCB2aWRlb19k ZXRlY3RfZm9yY2VfdmVuZG9yKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICpkKQ0KK3sNCisJ YWNwaV92aWRlb19zdXBwb3J0IHw9IEFDUElfVklERU9fQkFDS0xJR0hUX0RNSV9WRU5ET1I7DQor CXJldHVybiAwOw0KK30NCisNCitzdGF0aWMgc3RydWN0IGRtaV9zeXN0ZW1faWQgdmlkZW9fZGV0 ZWN0X2RtaV90YWJsZVtdID0gew0KKwkvKiBPbiBTYW1zdW5nIFgzNjAsIHRoZSBCSU9TIHdpbGwg c2V0IGEgZmxhZyAoVkRSVikgaWYgZ2VuZXJpYw0KKwkgKiBBQ1BJIGJhY2tsaWdodCBkZXZpY2Ug aXMgdXNlZC4gVGhpcyBmbGFnIHdpbGwgZGVmaW5pdGl2ZWx5IGJyZWFrDQorCSAqIHRoZSBiYWNr bGlnaHQgaW50ZXJmYWNlIChldmVuIHRoZSB2ZW5kb3IgaW50ZXJmYWNlKSB1bnRpbGwgbmV4dA0K KwkgKiByZWJvb3QuIEl0J3Mgd2h5IHdlIHNob3VsZCBwcmV2ZW50IHZpZGVvLmtvIGZyb20gYmVp bmcgdXNlZCBoZXJlDQorCSAqIGFuZCB3ZSBjYW4ndCByZWx5IG9uIGEgbGF0ZXIgY2FsbCB0byBh Y3BpX3ZpZGVvX3VucmVnaXN0ZXIoKS4NCisJICovDQorCXsNCisJIC5jYWxsYmFjayA9IHZpZGVv X2RldGVjdF9mb3JjZV92ZW5kb3IsDQorCSAuaWRlbnQgPSAiWDM2MCIsDQorCSAubWF0Y2hlcyA9 IHsNCisJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRPUiwgIlNBTVNVTkcgRUxFQ1RST05JQ1MgQ08u LCBMVEQuIiksDQorCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlgzNjAiKSwNCisJCURN SV9NQVRDSChETUlfQk9BUkRfTkFNRSwgIlgzNjAiKSwNCisJCX0sDQorCX0sDQorCXsNCisJLmNh bGxiYWNrID0gdmlkZW9fZGV0ZWN0X2ZvcmNlX3ZlbmRvciwNCisJLmlkZW50ID0gIkFzdXMgVUwz MFZUIiwNCisJLm1hdGNoZXMgPSB7DQorCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJBU1VT VGVLIENvbXB1dGVyIEluYy4iKSwNCisJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiVUwz MFZUIiksDQorCQl9LA0KKwl9LA0KKwl7IH0sDQorfTsNCisNCiAvKg0KICAqIFJldHVybnMgdGhl IHZpZGVvIGNhcGFiaWxpdGllcyBvZiBhIHNwZWNpZmljIEFDUEkgZ3JhcGhpY3MgZGV2aWNlDQog ICoNCkBAIC0xNjQsNiArMTk5LDggQEAgbG9uZyBhY3BpX3ZpZGVvX2dldF9jYXBhYmlsaXRpZXMo YWNwaV9oYW5kbGUgZ3JhcGhpY3NfaGFuZGxlKQ0KIAkJICoJCUFDUElfVklERU9fQkFDS0xJR0hU X0RNSV9WRU5ET1I7DQogCQkgKn0NCiAJCSAqLw0KKw0KKwkJZG1pX2NoZWNrX3N5c3RlbSh2aWRl b19kZXRlY3RfZG1pX3RhYmxlKTsNCiAJfSBlbHNlIHsNCiAJCXN0YXR1cyA9IGFjcGlfYnVzX2dl dF9kZXZpY2UoZ3JhcGhpY3NfaGFuZGxlLCAmdG1wX2Rldik7DQogCQlpZiAoQUNQSV9GQUlMVVJF KHN0YXR1cykpIHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jIGIvZHJp dmVycy9hdGEvbGliYXRhLWNvcmUuYw0KaW5kZXggMzIxZTIzZS4uYzk1NDBjMCAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3JlLmMNCisrKyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1j b3JlLmMNCkBAIC0yNTI5LDYgKzI1MjksNyBAQCBpbnQgYXRhX2J1c19wcm9iZShzdHJ1Y3QgYXRh X3BvcnQgKmFwKQ0KIAkJICogYnVzIGFzIHdlIG1heSBiZSB0YWxraW5nIHRvbyBmYXN0Lg0KIAkJ ICovDQogCQlkZXYtPnBpb19tb2RlID0gWEZFUl9QSU9fMDsNCisJCWRldi0+ZG1hX21vZGUgPSAw eGZmOw0KIA0KIAkJLyogSWYgdGhlIGNvbnRyb2xsZXIgaGFzIGEgcGlvIG1vZGUgc2V0dXAgZnVu Y3Rpb24NCiAJCSAqIHRoZW4gdXNlIGl0IHRvIHNldCB0aGUgY2hpcHNldCB0byByaWdodHMuIERv bid0DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLWVoLmMgYi9kcml2ZXJzL2F0YS9s aWJhdGEtZWguYw0KaW5kZXggNThkYjgzNC4uYWVhNjI3ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv YXRhL2xpYmF0YS1laC5jDQorKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtZWguYw0KQEAgLTI1OTks NiArMjU5OSw3IEBAIGludCBhdGFfZWhfcmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCBpbnQg Y2xhc3NpZnksDQogCQkgKiBidXMgYXMgd2UgbWF5IGJlIHRhbGtpbmcgdG9vIGZhc3QuDQogCQkg Ki8NCiAJCWRldi0+cGlvX21vZGUgPSBYRkVSX1BJT18wOw0KKwkJZGV2LT5kbWFfbW9kZSA9IDB4 ZmY7DQogDQogCQkvKiBJZiB0aGUgY29udHJvbGxlciBoYXMgYSBwaW8gbW9kZSBzZXR1cCBmdW5j dGlvbg0KIAkJICogdGhlbiB1c2UgaXQgdG8gc2V0IHRoZSBjaGlwc2V0IHRvIHJpZ2h0cy4gRG9u J3QNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9saWJhdGEtc2NzaS5jIGIvZHJpdmVycy9hdGEv bGliYXRhLXNjc2kuYw0KaW5kZXggMmE1NDEyZS4uZGQzMzJlNSAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvYXRhL2xpYmF0YS1zY3NpLmMNCisrKyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1zY3NpLmMNCkBA IC0zMDksNyArMzA5LDggQEAgYXRhX3Njc2lfYWN0aXZpdHlfc2hvdyhzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KIAlzdHJ1Y3QgYXRhX3BvcnQgKmFw ID0gYXRhX3Nob3N0X3RvX3BvcnQoc2Rldi0+aG9zdCk7DQogCXN0cnVjdCBhdGFfZGV2aWNlICph dGFkZXYgPSBhdGFfc2NzaV9maW5kX2RldihhcCwgc2Rldik7DQogDQotCWlmIChhcC0+b3BzLT5z d19hY3Rpdml0eV9zaG93ICYmIChhcC0+ZmxhZ3MgJiBBVEFfRkxBR19TV19BQ1RJVklUWSkpDQor CWlmIChhdGFkZXYgJiYgYXAtPm9wcy0+c3dfYWN0aXZpdHlfc2hvdyAmJg0KKwkgICAgKGFwLT5m bGFncyAmIEFUQV9GTEFHX1NXX0FDVElWSVRZKSkNCiAJCXJldHVybiBhcC0+b3BzLT5zd19hY3Rp dml0eV9zaG93KGF0YWRldiwgYnVmKTsNCiAJcmV0dXJuIC1FSU5WQUw7DQogfQ0KQEAgLTMyNCw3 ICszMjUsOCBAQCBhdGFfc2NzaV9hY3Rpdml0eV9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KIAllbnVtIHN3X2FjdGl2aXR5IHZhbDsNCiAJ aW50IHJjOw0KIA0KLQlpZiAoYXAtPm9wcy0+c3dfYWN0aXZpdHlfc3RvcmUgJiYgKGFwLT5mbGFn cyAmIEFUQV9GTEFHX1NXX0FDVElWSVRZKSkgew0KKwlpZiAoYXRhZGV2ICYmIGFwLT5vcHMtPnN3 X2FjdGl2aXR5X3N0b3JlICYmDQorCSAgICAoYXAtPmZsYWdzICYgQVRBX0ZMQUdfU1dfQUNUSVZJ VFkpKSB7DQogCQl2YWwgPSBzaW1wbGVfc3RydG91bChidWYsIE5VTEwsIDApOw0KIAkJc3dpdGNo ICh2YWwpIHsNCiAJCWNhc2UgT0ZGOiBjYXNlIEJMSU5LX09OOiBjYXNlIEJMSU5LX09GRjoNCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRhX3Byb21pc2UuYyBiL2RyaXZlcnMvYXRhL3NhdGFf cHJvbWlzZS5jDQppbmRleCAwMDBmY2M5Li5lZjZlMzI4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9h dGEvc2F0YV9wcm9taXNlLmMNCisrKyBiL2RyaXZlcnMvYXRhL3NhdGFfcHJvbWlzZS5jDQpAQCAt MTQ3LDYgKzE0NywxMCBAQCBzdHJ1Y3QgcGRjX3BvcnRfcHJpdiB7DQogCWRtYV9hZGRyX3QJCXBr dF9kbWE7DQogfTsNCiANCitzdHJ1Y3QgcGRjX2hvc3RfcHJpdiB7DQorCXNwaW5sb2NrX3QgaGFy ZF9yZXNldF9sb2NrOw0KK307DQorDQogc3RhdGljIGludCBwZGNfc2F0YV9zY3JfcmVhZChzdHJ1 Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVkIGludCBzY19yZWcsIHUzMiAqdmFsKTsNCiBzdGF0 aWMgaW50IHBkY19zYXRhX3Njcl93cml0ZShzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssIHVuc2lnbmVk IGludCBzY19yZWcsIHUzMiB2YWwpOw0KIHN0YXRpYyBpbnQgcGRjX2F0YV9pbml0X29uZShzdHJ1 Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCk7DQpAQCAt ODAxLDkgKzgwNSwxMCBAQCBzdGF0aWMgdm9pZCBwZGNfaGFyZF9yZXNldF9wb3J0KHN0cnVjdCBh dGFfcG9ydCAqYXApDQogCXZvaWQgX19pb21lbSAqaG9zdF9tbWlvID0gYXAtPmhvc3QtPmlvbWFw W1BEQ19NTUlPX0JBUl07DQogCXZvaWQgX19pb21lbSAqcGNpY3RsX2IxX21taW8gPSBob3N0X21t aW8gKyBQRENfUENJX0NUTCArIDE7DQogCXVuc2lnbmVkIGludCBhdGFfbm8gPSBwZGNfYXRhX3Bv cnRfdG9fYXRhX25vKGFwKTsNCisJc3RydWN0IHBkY19ob3N0X3ByaXYgKmhwcml2ID0gYXAtPmhv c3QtPnByaXZhdGVfZGF0YTsNCiAJdTggdG1wOw0KIA0KLQlzcGluX2xvY2soJmFwLT5ob3N0LT5s b2NrKTsNCisJc3Bpbl9sb2NrKCZocHJpdi0+aGFyZF9yZXNldF9sb2NrKTsNCiANCiAJdG1wID0g cmVhZGIocGNpY3RsX2IxX21taW8pOw0KIAl0bXAgJj0gfigweDEwIDw8IGF0YV9ubyk7DQpAQCAt ODE0LDcgKzgxOSw3IEBAIHN0YXRpYyB2b2lkIHBkY19oYXJkX3Jlc2V0X3BvcnQoc3RydWN0IGF0 YV9wb3J0ICphcCkNCiAJd3JpdGViKHRtcCwgcGNpY3RsX2IxX21taW8pOw0KIAlyZWFkYihwY2lj dGxfYjFfbW1pbyk7IC8qIGZsdXNoICovDQogDQotCXNwaW5fdW5sb2NrKCZhcC0+aG9zdC0+bG9j ayk7DQorCXNwaW5fdW5sb2NrKCZocHJpdi0+aGFyZF9yZXNldF9sb2NrKTsNCiB9DQogDQogc3Rh dGljIGludCBwZGNfc2F0YV9oYXJkcmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25l ZCBpbnQgKmNsYXNzLA0KQEAgLTExODIsNiArMTE4Nyw3IEBAIHN0YXRpYyBpbnQgcGRjX2F0YV9p bml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwNCiAJY29uc3Qgc3RydWN0IGF0YV9wb3J0X2lu Zm8gKnBpID0gJnBkY19wb3J0X2luZm9bZW50LT5kcml2ZXJfZGF0YV07DQogCWNvbnN0IHN0cnVj dCBhdGFfcG9ydF9pbmZvICpwcGlbUERDX01BWF9QT1JUU107DQogCXN0cnVjdCBhdGFfaG9zdCAq aG9zdDsNCisJc3RydWN0IHBkY19ob3N0X3ByaXYgKmhwcml2Ow0KIAl2b2lkIF9faW9tZW0gKmhv c3RfbW1pbzsNCiAJaW50IG5fcG9ydHMsIGksIHJjOw0KIAlpbnQgaXNfc2F0YWlpX3R4NDsNCkBA IC0xMjE4LDYgKzEyMjQsMTEgQEAgc3RhdGljIGludCBwZGNfYXRhX2luaXRfb25lKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LA0KIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRl IGhvc3RcbiIpOw0KIAkJcmV0dXJuIC1FTk9NRU07DQogCX0NCisJaHByaXYgPSBkZXZtX2t6YWxs b2MoJnBkZXYtPmRldiwgc2l6ZW9mICpocHJpdiwgR0ZQX0tFUk5FTCk7DQorCWlmICghaHByaXYp DQorCQlyZXR1cm4gLUVOT01FTTsNCisJc3Bpbl9sb2NrX2luaXQoJmhwcml2LT5oYXJkX3Jlc2V0 X2xvY2spOw0KKwlob3N0LT5wcml2YXRlX2RhdGEgPSBocHJpdjsNCiAJaG9zdC0+aW9tYXAgPSBw Y2ltX2lvbWFwX3RhYmxlKHBkZXYpOw0KIA0KIAlpc19zYXRhaWlfdHg0ID0gcGRjX2lzX3NhdGFp aV90eDQocGktPmZsYWdzKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRhX3N2dy5jIGIv ZHJpdmVycy9hdGEvc2F0YV9zdncuYw0KaW5kZXggYzY0NjExOC4uODMzNjA3ZiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvYXRhL3NhdGFfc3Z3LmMNCisrKyBiL2RyaXZlcnMvYXRhL3NhdGFfc3Z3LmMN CkBAIC0xNDIsNiArMTQyLDM5IEBAIHN0YXRpYyBpbnQgazJfc2F0YV9zY3Jfd3JpdGUoc3RydWN0 IGF0YV9saW5rICpsaW5rLA0KIAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGljIGludCBrMl9zYXRh X3NvZnRyZXNldChzdHJ1Y3QgYXRhX2xpbmsgKmxpbmssDQorCQkJICAgICB1bnNpZ25lZCBpbnQg KmNsYXNzLCB1bnNpZ25lZCBsb25nIGRlYWRsaW5lKQ0KK3sNCisJdTggZG1hY3RsOw0KKwl2b2lk IF9faW9tZW0gKm1taW8gPSBsaW5rLT5hcC0+aW9hZGRyLmJtZG1hX2FkZHI7DQorDQorCWRtYWN0 bCA9IHJlYWRiKG1taW8gKyBBVEFfRE1BX0NNRCk7DQorDQorCS8qIENsZWFyIHRoZSBzdGFydCBi aXQgKi8NCisJaWYgKGRtYWN0bCAmIEFUQV9ETUFfU1RBUlQpIHsNCisJCWRtYWN0bCAmPSB+QVRB X0RNQV9TVEFSVDsNCisJCXdyaXRlYihkbWFjdGwsIG1taW8gKyBBVEFfRE1BX0NNRCk7DQorCX0N CisNCisJcmV0dXJuIGF0YV9zZmZfc29mdHJlc2V0KGxpbmssIGNsYXNzLCBkZWFkbGluZSk7DQor fQ0KKw0KK3N0YXRpYyBpbnQgazJfc2F0YV9oYXJkcmVzZXQoc3RydWN0IGF0YV9saW5rICpsaW5r LA0KKwkJCSAgICAgdW5zaWduZWQgaW50ICpjbGFzcywgdW5zaWduZWQgbG9uZyBkZWFkbGluZSkN Cit7DQorCXU4IGRtYWN0bDsNCisJdm9pZCBfX2lvbWVtICptbWlvID0gbGluay0+YXAtPmlvYWRk ci5ibWRtYV9hZGRyOw0KKw0KKwlkbWFjdGwgPSByZWFkYihtbWlvICsgQVRBX0RNQV9DTUQpOw0K Kw0KKwkvKiBDbGVhciB0aGUgc3RhcnQgYml0ICovDQorCWlmIChkbWFjdGwgJiBBVEFfRE1BX1NU QVJUKSB7DQorCQlkbWFjdGwgJj0gfkFUQV9ETUFfU1RBUlQ7DQorCQl3cml0ZWIoZG1hY3RsLCBt bWlvICsgQVRBX0RNQV9DTUQpOw0KKwl9DQorDQorCXJldHVybiBzYXRhX3NmZl9oYXJkcmVzZXQo bGluaywgY2xhc3MsIGRlYWRsaW5lKTsNCit9DQogDQogc3RhdGljIHZvaWQgazJfc2F0YV90Zl9s b2FkKHN0cnVjdCBhdGFfcG9ydCAqYXAsIGNvbnN0IHN0cnVjdCBhdGFfdGFza2ZpbGUgKnRmKQ0K IHsNCkBAIC0zNDYsNiArMzc5LDggQEAgc3RhdGljIHN0cnVjdCBzY3NpX2hvc3RfdGVtcGxhdGUg azJfc2F0YV9zaHQgPSB7DQogDQogc3RhdGljIHN0cnVjdCBhdGFfcG9ydF9vcGVyYXRpb25zIGsy X3NhdGFfb3BzID0gew0KIAkuaW5oZXJpdHMJCT0gJmF0YV9ibWRtYV9wb3J0X29wcywNCisJLnNv ZnRyZXNldCAgICAgICAgICAgICAgPSBrMl9zYXRhX3NvZnRyZXNldCwNCisJLmhhcmRyZXNldCAg ICAgICAgICAgICAgPSBrMl9zYXRhX2hhcmRyZXNldCwNCiAJLnNmZl90Zl9sb2FkCQk9IGsyX3Nh dGFfdGZfbG9hZCwNCiAJLnNmZl90Zl9yZWFkCQk9IGsyX3NhdGFfdGZfcmVhZCwNCiAJLnNmZl9j aGVja19zdGF0dXMJPSBrMl9zdGF0X2NoZWNrX3N0YXR1cywNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2F0bS9zb2xvcy1wY2kuYyBiL2RyaXZlcnMvYXRtL3NvbG9zLXBjaS5jDQppbmRleCBkNDUyNTky Li5hZGZjZTlmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9hdG0vc29sb3MtcGNpLmMNCisrKyBiL2Ry aXZlcnMvYXRtL3NvbG9zLXBjaS5jDQpAQCAtOTY3LDEwICs5NjcsMTEgQEAgc3RhdGljIHVpbnQz Ml90IGZwZ2FfdHgoc3RydWN0IHNvbG9zX2NhcmQgKmNhcmQpDQogCWZvciAocG9ydCA9IDA7IHR4 X3BlbmRpbmc7IHR4X3BlbmRpbmcgPj49IDEsIHBvcnQrKykgew0KIAkJaWYgKHR4X3BlbmRpbmcg JiAxKSB7DQogCQkJc3RydWN0IHNrX2J1ZmYgKm9sZHNrYiA9IGNhcmQtPnR4X3NrYltwb3J0XTsN Ci0JCQlpZiAob2xkc2tiKQ0KKwkJCWlmIChvbGRza2IpIHsNCiAJCQkJcGNpX3VubWFwX3Npbmds ZShjYXJkLT5kZXYsIFNLQl9DQihvbGRza2IpLT5kbWFfYWRkciwNCiAJCQkJCQkgb2xkc2tiLT5s ZW4sIFBDSV9ETUFfVE9ERVZJQ0UpOw0KLQ0KKwkJCQljYXJkLT50eF9za2JbcG9ydF0gPSBOVUxM Ow0KKwkJCX0NCiAJCQlzcGluX2xvY2soJmNhcmQtPnR4X3F1ZXVlX2xvY2spOw0KIAkJCXNrYiA9 IHNrYl9kZXF1ZXVlKCZjYXJkLT50eF9xdWV1ZVtwb3J0XSk7DQogCQkJaWYgKCFza2IpDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9iYXNlL3JlZ21hcC9yZWdtYXAtZGVidWdmcy5jIGIvZHJpdmVycy9i YXNlL3JlZ21hcC9yZWdtYXAtZGVidWdmcy5jDQppbmRleCA2ZjM5NzQ3Li5jZDI1MmUwIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9iYXNlL3JlZ21hcC9yZWdtYXAtZGVidWdmcy5jDQorKysgYi9kcml2 ZXJzL2Jhc2UvcmVnbWFwL3JlZ21hcC1kZWJ1Z2ZzLmMNCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRp YyBzc2l6ZV90IHJlZ21hcF9tYXBfcmVhZF9maWxlKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9f dXNlciAqdXNlcl9idWYsDQogCQkvKiBJZiB3ZSdyZSBpbiB0aGUgcmVnaW9uIHRoZSB1c2VyIGlz IHRyeWluZyB0byByZWFkICovDQogCQlpZiAocCA+PSAqcHBvcykgew0KIAkJCS8qIC4uLmJ1dCBu b3QgYmV5b25kIGl0ICovDQotCQkJaWYgKGJ1Zl9wb3MgPj0gY291bnQgLSAxIC0gdG90X2xlbikN CisJCQlpZiAoYnVmX3BvcyArIDEgKyB0b3RfbGVuID49IGNvdW50KQ0KIAkJCQlicmVhazsNCiAN CiAJCQkvKiBGb3JtYXQgdGhlIHJlZ2lzdGVyICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iY21h L2RyaXZlcl9taXBzLmMgYi9kcml2ZXJzL2JjbWEvZHJpdmVyX21pcHMuYw0KaW5kZXggYzNlOWRm Zi4uMDQxZmRkZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmNtYS9kcml2ZXJfbWlwcy5jDQorKysg Yi9kcml2ZXJzL2JjbWEvZHJpdmVyX21pcHMuYw0KQEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMg dm9pZCBiY21hX2NvcmVfbWlwc19zZXRfaXJxKHN0cnVjdCBiY21hX2RldmljZSAqZGV2LCB1bnNp Z25lZCBpbnQgaXJxKQ0KIAkJCSAgICBiY21hX3JlYWQzMihtZGV2LCBCQ01BX01JUFNfTUlQUzc0 S19JTlRNQVNLKDApKSAmDQogCQkJICAgIH4oMSA8PCBpcnFmbGFnKSk7DQogCWVsc2UNCi0JCWJj bWFfd3JpdGUzMihtZGV2LCBCQ01BX01JUFNfTUlQUzc0S19JTlRNQVNLKGlycSksIDApOw0KKwkJ YmNtYV93cml0ZTMyKG1kZXYsIEJDTUFfTUlQU19NSVBTNzRLX0lOVE1BU0sob2xkaXJxKSwgMCk7 DQogDQogCS8qIGFzc2lnbiB0aGUgbmV3IG9uZSAqLw0KIAlpZiAoaXJxID09IDApIHsNCmRpZmYg LS1naXQgYS9kcml2ZXJzL2JsdWV0b290aC9hdGgzay5jIGIvZHJpdmVycy9ibHVldG9vdGgvYXRo M2suYw0KaW5kZXggNWM2NzA5ZC4uNTc0Y2U3MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvYmx1ZXRv b3RoL2F0aDNrLmMNCisrKyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMNCkBAIC02Niw2ICs2 Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGgza190YWJsZVtdID0gew0KIAl7 IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzMDQpIH0sDQogCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4 MDIxNSkgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhFMDNEKSB9LA0KKwl7IFVTQl9ERVZJ Q0UoMHgwNDg5LCAweEUwMjcpIH0sDQogDQogCS8qIEF0aGVyb3MgQVI5Mjg1IE1hbGJlYyB3aXRo IHNmbGFzaCBmaXJtd2FyZSAqLw0KIAl7IFVTQl9ERVZJQ0UoMHgwM0YwLCAweDMxMUQpIH0sDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYyBiL2RyaXZlcnMvYmx1ZXRvb3Ro L2J0dXNiLmMNCmluZGV4IDFmOTBkYWIuLmM1ZTQ0YTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2Js dWV0b290aC9idHVzYi5jDQorKysgYi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jDQpAQCAtMTA0 LDYgKzEwNCw4IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBidHVzYl90YWJsZVtdID0g ew0KIAl7IFVTQl9ERVZJQ0UoMHgwYzEwLCAweDAwMDApIH0sDQogDQogCS8qIEJyb2FkY29tIEJD TTIwNzAyQTAgKi8NCisJeyBVU0JfREVWSUNFKDB4MGIwNSwgMHgxN2I1KSB9LA0KKwl7IFVTQl9E RVZJQ0UoMHgwNGNhLCAweDIwMDMpIH0sDQogCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA0Mikg fSwNCiAJeyBVU0JfREVWSUNFKDB4NDEzYywgMHg4MTk3KSB9LA0KIA0KQEAgLTEzMSw2ICsxMzMs NyBAQCBzdGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYmxhY2tsaXN0X3RhYmxlW10gPSB7DQog CXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzMwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9S RSB9LA0KIAl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDAyMTUpLCAuZHJpdmVyX2luZm8gPSBCVFVT Ql9JR05PUkUgfSwNCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDNkKSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfSUdOT1JFIH0sDQorCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTAyNyksIC5kcml2 ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LA0KIA0KIAkvKiBBdGhlcm9zIEFSOTI4NSBNYWxiZWMg d2l0aCBzZmxhc2ggZmlybXdhcmUgKi8NCiAJeyBVU0JfREVWSUNFKDB4MDNmMCwgMHgzMTFkKSwg LmRyaXZlcl9pbmZvID0gQlRVU0JfSUdOT1JFIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFy L2FncC9pbnRlbC1hZ3AuaCBiL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtYWdwLmgNCmluZGV4IDZm MjQ2MDQuLjQzOWQ3ZTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWFncC5o DQorKysgYi9kcml2ZXJzL2NoYXIvYWdwL2ludGVsLWFncC5oDQpAQCAtMjM1LDYgKzIzNSw3IEBA DQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lWWUJSSURHRV9NX0dUMl9JRwkJMHgwMTY2 DQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0lOVEVMX0lWWUJSSURHRV9TX0hCCQkweDAxNTggIC8q IFNlcnZlciAqLw0KICNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9JVllCUklER0VfU19HVDFf SUcJCTB4MDE1QQ0KKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9JVllCUklER0VfU19HVDJf SUcJCTB4MDE2QQ0KIA0KIGludCBpbnRlbF9nbWNoX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2 LA0KIAkJCSAgICAgICBzdHJ1Y3QgYWdwX2JyaWRnZV9kYXRhICpicmlkZ2UpOw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvY2hhci9hZ3AvaW50ZWwtZ3R0LmMgYi9kcml2ZXJzL2NoYXIvYWdwL2ludGVs LWd0dC5jDQppbmRleCBjOTI0MjRjLi40M2M0ZWMzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9jaGFy L2FncC9pbnRlbC1ndHQuYw0KKysrIGIvZHJpdmVycy9jaGFyL2FncC9pbnRlbC1ndHQuYw0KQEAg LTE0NTksNiArMTQ1OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZ3R0X2RyaXZlcl9k ZXNjcmlwdGlvbiB7DQogCSAgICAiSXZ5YnJpZGdlIiwgJnNhbmR5YnJpZGdlX2d0dF9kcml2ZXIg fSwNCiAJeyBQQ0lfREVWSUNFX0lEX0lOVEVMX0lWWUJSSURHRV9TX0dUMV9JRywNCiAJICAgICJJ dnlicmlkZ2UiLCAmc2FuZHlicmlkZ2VfZ3R0X2RyaXZlciB9LA0KKwl7IFBDSV9ERVZJQ0VfSURf SU5URUxfSVZZQlJJREdFX1NfR1QyX0lHLA0KKwkgICAgIkl2eWJyaWRnZSIsICZzYW5keWJyaWRn ZV9ndHRfZHJpdmVyIH0sDQogCXsgMCwgTlVMTCwgTlVMTCB9DQogfTsNCiANCmRpZmYgLS1naXQg YS9kcml2ZXJzL2NoYXIvcmFtb29wcy5jIGIvZHJpdmVycy9jaGFyL3JhbW9vcHMuYw0KaW5kZXgg N2M3ZjQyYTFmOC4uOTY1ODExNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvY2hhci9yYW1vb3BzLmMN CisrKyBiL2RyaXZlcnMvY2hhci9yYW1vb3BzLmMNCkBAIC0xMjYsOCArMTI2LDggQEAgc3RhdGlj IGludCBfX2luaXQgcmFtb29wc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0K IAkJZ290byBmYWlsMzsNCiAJfQ0KIA0KLQlyb3VuZGRvd25fcG93X29mX3R3byhwZGF0YS0+bWVt X3NpemUpOw0KLQlyb3VuZGRvd25fcG93X29mX3R3byhwZGF0YS0+cmVjb3JkX3NpemUpOw0KKwlw ZGF0YS0+bWVtX3NpemUgPSByb3VuZGRvd25fcG93X29mX3R3byhwZGF0YS0+bWVtX3NpemUpOw0K KwlwZGF0YS0+cmVjb3JkX3NpemUgPSByb3VuZGRvd25fcG93X29mX3R3byhwZGF0YS0+cmVjb3Jk X3NpemUpOw0KIA0KIAkvKiBDaGVjayBmb3IgdGhlIG1pbmltdW0gbWVtb3J5IHNpemUgKi8NCiAJ aWYgKHBkYXRhLT5tZW1fc2l6ZSA8IE1JTl9NRU1fU0laRSAmJg0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZWRhYy9pNzMwMF9lZGFjLmMgYi9kcml2ZXJzL2VkYWMvaTczMDBfZWRhYy5jDQppbmRleCA2 MTA0ZGJhLi4yMjQ0ZGYwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9lZGFjL2k3MzAwX2VkYWMuYw0K KysrIGIvZHJpdmVycy9lZGFjL2k3MzAwX2VkYWMuYw0KQEAgLTIxNSw4ICsyMTUsOCBAQCBzdGF0 aWMgY29uc3QgY2hhciAqZmVycl9mYXRfZmJkX25hbWVbXSA9IHsNCiAJWzBdICA9ICJNZW1vcnkg V3JpdGUgZXJyb3Igb24gbm9uLXJlZHVuZGFudCByZXRyeSBvciAiDQogCSAgICAgICAiRkJEIGNv bmZpZ3VyYXRpb24gV3JpdGUgZXJyb3Igb24gcmV0cnkiLA0KIH07DQotI2RlZmluZSBHRVRfRkJE X0ZBVF9JRFgoZmJkZXJyKQkoZmJkZXJyICYgKDMgPDwgMjgpKQ0KLSNkZWZpbmUgRkVSUl9GQVRf RkJEX0VSUl9NQVNLICgoMSA8PCAwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMikgfCAoMSA8PCAzKSkN CisjZGVmaW5lIEdFVF9GQkRfRkFUX0lEWChmYmRlcnIpCSgoKGZiZGVycikgPj4gMjgpICYgMykN CisjZGVmaW5lIEZFUlJfRkFUX0ZCRF9FUlJfTUFTSyAoKDEgPDwgMCkgfCAoMSA8PCAxKSB8ICgx IDw8IDIpIHwgKDEgPDwgMjIpKQ0KIA0KICNkZWZpbmUgRkVSUl9ORl9GQkQJMHhhMA0KIHN0YXRp YyBjb25zdCBjaGFyICpmZXJyX25mX2ZiZF9uYW1lW10gPSB7DQpAQCAtMjQzLDcgKzI0Myw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICpmZXJyX25mX2ZiZF9uYW1lW10gPSB7DQogCVsxXSAgPSAiQWxp YXNlZCBVbmNvcnJlY3RhYmxlIE5vbi1NaXJyb3JlZCBEZW1hbmQgRGF0YSBFQ0MiLA0KIAlbMF0g ID0gIlVuY29ycmVjdGFibGUgRGF0YSBFQ0Mgb24gUmVwbGF5IiwNCiB9Ow0KLSNkZWZpbmUgR0VU X0ZCRF9ORl9JRFgoZmJkZXJyKQkoZmJkZXJyICYgKDMgPDwgMjgpKQ0KKyNkZWZpbmUgR0VUX0ZC RF9ORl9JRFgoZmJkZXJyKQkoKChmYmRlcnIpID4+IDI4KSAmIDMpDQogI2RlZmluZSBGRVJSX05G X0ZCRF9FUlJfTUFTSyAoKDEgPDwgMjQpIHwgKDEgPDwgMjMpIHwgKDEgPDwgMjIpIHwgKDEgPDwg MjEpIHxcDQogCQkJICAgICAgKDEgPDwgMTgpIHwgKDEgPDwgMTcpIHwgKDEgPDwgMTYpIHwgKDEg PDwgMTUpIHxcDQogCQkJICAgICAgKDEgPDwgMTQpIHwgKDEgPDwgMTMpIHwgKDEgPDwgMTEpIHwg KDEgPDwgMTApIHxcDQpAQCAtNDg1LDcgKzQ4NSw3IEBAIHN0YXRpYyB2b2lkIGk3MzAwX3Byb2Nl c3NfZmJkX2Vycm9yKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSkNCiAJCWVycm51bSA9IGZpbmRf Zmlyc3RfYml0KCZlcnJvcnMsDQogCQkJCQlBUlJBWV9TSVpFKGZlcnJfbmZfZmJkX25hbWUpKTsN CiAJCXNwZWNpZmljID0gR0VUX0VSUl9GUk9NX1RBQkxFKGZlcnJfbmZfZmJkX25hbWUsIGVycm51 bSk7DQotCQlicmFuY2ggPSAoR0VUX0ZCRF9GQVRfSURYKGVycm9yX3JlZykgPT0gMikgPyAxIDog MDsNCisJCWJyYW5jaCA9IChHRVRfRkJEX05GX0lEWChlcnJvcl9yZWcpID09IDIpID8gMSA6IDA7 DQogDQogCQlwY2lfcmVhZF9jb25maWdfZHdvcmQocHZ0LT5wY2lfZGV2XzE2XzFfZnNiX2FkZHJf bWFwLA0KIAkJCVJFRE1FTUEsICZzeW5kcm9tZSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9lZGFj L2k4Mjk3NXhfZWRhYy5jIGIvZHJpdmVycy9lZGFjL2k4Mjk3NXhfZWRhYy5jDQppbmRleCBhNWRh NzMyLi4wMTY1OGNhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9lZGFjL2k4Mjk3NXhfZWRhYy5jDQor KysgYi9kcml2ZXJzL2VkYWMvaTgyOTc1eF9lZGFjLmMNCkBAIC0zNTUsMTAgKzM1NSw2IEBAIHN0 YXRpYyBlbnVtIGRldl90eXBlIGk4Mjk3NXhfZHJhbV90eXBlKHZvaWQgX19pb21lbSAqbWNoX3dp bmRvdywgaW50IHJhbmspDQogc3RhdGljIHZvaWQgaTgyOTc1eF9pbml0X2Nzcm93cyhzdHJ1Y3Qg bWVtX2N0bF9pbmZvICptY2ksDQogCQlzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdm9pZCBfX2lvbWVt ICptY2hfd2luZG93KQ0KIHsNCi0Jc3RhdGljIGNvbnN0IGNoYXIgKmxhYmVsc1s0XSA9IHsNCi0J CQkJCQkJIkRJTU0gQTEiLCAiRElNTSBBMiIsDQotCQkJCQkJCSJESU1NIEIxIiwgIkRJTU0gQjIi DQotCQkJCQkJfTsNCiAJc3RydWN0IGNzcm93X2luZm8gKmNzcm93Ow0KIAl1bnNpZ25lZCBsb25n IGxhc3RfY3VtdWxfc2l6ZTsNCiAJdTggdmFsdWU7DQpAQCAtMzk5LDkgKzM5NSwxMCBAQCBzdGF0 aWMgdm9pZCBpODI5NzV4X2luaXRfY3Nyb3dzKHN0cnVjdCBtZW1fY3RsX2luZm8gKm1jaSwNCiAJ CSAqICAgWzAtM10gZm9yIGR1YWwtY2hhbm5lbDsgaS5lLiBjc3Jvdy0+bnJfY2hhbm5lbHMgPSAy DQogCQkgKi8NCiAJCWZvciAoY2hhbiA9IDA7IGNoYW4gPCBjc3Jvdy0+bnJfY2hhbm5lbHM7IGNo YW4rKykNCi0JCQlzdHJuY3B5KGNzcm93LT5jaGFubmVsc1tjaGFuXS5sYWJlbCwNCi0JCQkJCWxh YmVsc1soaW5kZXggPj4gMSkgKyAoY2hhbiAqIDIpXSwNCi0JCQkJCUVEQUNfTUNfTEFCRUxfTEVO KTsNCisNCisJCQlzbnByaW50Zihjc3Jvdy0+Y2hhbm5lbHNbY2hhbl0ubGFiZWwsIEVEQUNfTUNf TEFCRUxfTEVOLCAiRElNTSAlYyVkIiwNCisJCQkJIChjaGFuID09IDApID8gJ0EnIDogJ0InLA0K KwkJCQkgaW5kZXgpOw0KIA0KIAkJaWYgKGN1bXVsX3NpemUgPT0gbGFzdF9jdW11bF9zaXplKQ0K IAkJCWNvbnRpbnVlOwkvKiBub3QgcG9wdWxhdGVkICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9m aXJld2lyZS9uZXQuYyBiL2RyaXZlcnMvZmlyZXdpcmUvbmV0LmMNCmluZGV4IGEyMGY0NWIuLjdj ODY5YjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2ZpcmV3aXJlL25ldC5jDQorKysgYi9kcml2ZXJz L2ZpcmV3aXJlL25ldC5jDQpAQCAtODYwLDggKzg2MCw4IEBAIHN0YXRpYyB2b2lkIGZ3bmV0X3Jl Y2VpdmVfYnJvYWRjYXN0KHN0cnVjdCBmd19pc29fY29udGV4dCAqY29udGV4dCwNCiAJaWYgKHNw ZWNpZmllcl9pZCA9PSBJQU5BX1NQRUNJRklFUl9JRCAmJiB2ZXIgPT0gUkZDMjczNF9TV19WRVJT SU9OKSB7DQogCQlidWZfcHRyICs9IDI7DQogCQlsZW5ndGggLT0gSUVFRTEzOTRfR0FTUF9IRFJf U0laRTsNCi0JCWZ3bmV0X2luY29taW5nX3BhY2tldChkZXYsIGJ1Zl9wdHIsIGxlbmd0aCwNCi0J CQkJICAgICAgc291cmNlX25vZGVfaWQsIC0xLCB0cnVlKTsNCisJCWZ3bmV0X2luY29taW5nX3Bh Y2tldChkZXYsIGJ1Zl9wdHIsIGxlbmd0aCwgc291cmNlX25vZGVfaWQsDQorCQkJCSAgICAgIGNv bnRleHQtPmNhcmQtPmdlbmVyYXRpb24sIHRydWUpOw0KIAl9DQogDQogCXBhY2tldC5wYXlsb2Fk X2xlbmd0aCA9IGRldi0+cmN2X2J1ZmZlcl9zaXplOw0KQEAgLTk1Niw3ICs5NTYsMTIgQEAgc3Rh dGljIHZvaWQgZnduZXRfdHJhbnNtaXRfcGFja2V0X2RvbmUoc3RydWN0IGZ3bmV0X3BhY2tldF90 YXNrICpwdGFzaykNCiAJCQlicmVhazsNCiAJCX0NCiANCi0JCXNrYl9wdWxsKHNrYiwgcHRhc2st Pm1heF9wYXlsb2FkKTsNCisJCWlmIChwdGFzay0+ZGVzdF9ub2RlID09IElFRUUxMzk0X0FMTF9O T0RFUykgew0KKwkJCXNrYl9wdWxsKHNrYiwNCisJCQkJIHB0YXNrLT5tYXhfcGF5bG9hZCArIElF RUUxMzk0X0dBU1BfSERSX1NJWkUpOw0KKwkJfSBlbHNlIHsNCisJCQlza2JfcHVsbChza2IsIHB0 YXNrLT5tYXhfcGF5bG9hZCk7DQorCQl9DQogCQlpZiAocHRhc2stPm91dHN0YW5kaW5nX3BrdHMg PiAxKSB7DQogCQkJZnduZXRfbWFrZV9zZl9oZHIoJnB0YXNrLT5oZHIsIFJGQzIzNzRfSERSX0lO VEZSQUcsDQogCQkJCQkgIGRnX3NpemUsIGZnX29mZiwgZGF0YWdyYW1fbGFiZWwpOw0KQEAgLTEw NTksNyArMTA2NCw3IEBAIHN0YXRpYyBpbnQgZnduZXRfc2VuZF9wYWNrZXQoc3RydWN0IGZ3bmV0 X3BhY2tldF90YXNrICpwdGFzaykNCiAJCXNtcF9ybWIoKTsNCiAJCW5vZGVfaWQgPSBkZXYtPmNh cmQtPm5vZGVfaWQ7DQogDQotCQlwID0gc2tiX3B1c2gocHRhc2stPnNrYiwgOCk7DQorCQlwID0g c2tiX3B1c2gocHRhc2stPnNrYiwgSUVFRTEzOTRfR0FTUF9IRFJfU0laRSk7DQogCQlwdXRfdW5h bGlnbmVkX2JlMzIobm9kZV9pZCA8PCAxNiB8IElBTkFfU1BFQ0lGSUVSX0lEID4+IDgsIHApOw0K IAkJcHV0X3VuYWxpZ25lZF9iZTMyKChJQU5BX1NQRUNJRklFUl9JRCAmIDB4ZmYpIDw8IDI0DQog CQkJCQkJfCBSRkMyNzM0X1NXX1ZFUlNJT04sICZwWzRdKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVs cGVyLmMNCmluZGV4IGQyNjE5ZDcuLjExNzg4ZjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGNfaGVscGVyLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19oZWxw ZXIuYw0KQEAgLTMyMSw4ICszMjEsOCBAQCBkcm1fY3J0Y19wcmVwYXJlX2VuY29kZXJzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpDQogICogZHJtX2NydGNfc2V0X21vZGUgLSBzZXQgYSBtb2RlDQog ICogQGNydGM6IENSVEMgdG8gcHJvZ3JhbQ0KICAqIEBtb2RlOiBtb2RlIHRvIHVzZQ0KLSAqIEB4 OiB3aWR0aCBvZiBtb2RlDQotICogQHk6IGhlaWdodCBvZiBtb2RlDQorICogQHg6IGhvcml6b250 YWwgb2Zmc2V0IGludG8gdGhlIHN1cmZhY2UNCisgKiBAeTogdmVydGljYWwgb2Zmc2V0IGludG8g dGhlIHN1cmZhY2UNCiAgKg0KICAqIExPQ0tJTkc6DQogICogQ2FsbGVyIG11c3QgaG9sZCBtb2Rl IGNvbmZpZyBsb2NrLg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMNCmluZGV4IDBjMWE5OWIuLmJiOTVkNTkgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMNCkBAIC0yNzQsNiArMjc0LDExIEBAIGRybV9kb19wcm9iZV9kZGNfZWRpZChz dHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwNCiAJCQl9DQog CQl9Ow0KIAkJcmV0ID0gaTJjX3RyYW5zZmVyKGFkYXB0ZXIsIG1zZ3MsIDIpOw0KKwkJaWYgKHJl dCA9PSAtRU5YSU8pIHsNCisJCQlEUk1fREVCVUdfS01TKCJkcm06IHNraXBwaW5nIG5vbi1leGlz dGVudCBhZGFwdGVyICVzXG4iLA0KKwkJCQkJYWRhcHRlci0+bmFtZSk7DQorCQkJYnJlYWs7DQor CQl9DQogCX0gd2hpbGUgKHJldCAhPSAyICYmIC0tcmV0cmllcyk7DQogDQogCXJldHVybiByZXQg PT0gMiA/IDAgOiAtMTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQppbmRleCBiMmUz Yzk3Li5kMDBmOTA1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jDQpAQCAtMzM5 LDcgKzMzOSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKmRhdGEpDQogCQkJc2VxX3ByaW50ZihtLCAiTm8gZmxpcCBkdWUgb24g cGlwZSAlYyAocGxhbmUgJWMpXG4iLA0KIAkJCQkgICBwaXBlLCBwbGFuZSk7DQogCQl9IGVsc2Ug ew0KLQkJCWlmICghd29yay0+cGVuZGluZykgew0KKwkJCWlmIChhdG9taWNfcmVhZCgmd29yay0+ cGVuZGluZykgPCBJTlRFTF9GTElQX0NPTVBMRVRFKSB7DQogCQkJCXNlcV9wcmludGYobSwgIkZs aXAgcXVldWVkIG9uIHBpcGUgJWMgKHBsYW5lICVjKVxuIiwNCiAJCQkJCSAgIHBpcGUsIHBsYW5l KTsNCiAJCQl9IGVsc2Ugew0KQEAgLTM1MCw3ICszNTAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2Vt X3BhZ2VmbGlwX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQ0KIAkJCQlzZXFf cHJpbnRmKG0sICJTdGFsbCBjaGVjayBlbmFibGVkLCAiKTsNCiAJCQllbHNlDQogCQkJCXNlcV9w cmludGYobSwgIlN0YWxsIGNoZWNrIHdhaXRpbmcgZm9yIHBhZ2UgZmxpcCBpb2N0bCwgIik7DQot CQkJc2VxX3ByaW50ZihtLCAiJWQgcHJlcGFyZXNcbiIsIHdvcmstPnBlbmRpbmcpOw0KKwkJCXNl cV9wcmludGYobSwgIiVkIHByZXBhcmVzXG4iLCBhdG9taWNfcmVhZCgmd29yay0+cGVuZGluZykp Ow0KIA0KIAkJCWlmICh3b3JrLT5vbGRfZmJfb2JqKSB7DQogCQkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmogPSB3b3JrLT5vbGRfZmJfb2JqOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j DQppbmRleCAzYTFiZmQ3Li40NTJiYzUxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYw0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYw0KQEAg LTI4Nyw2ICsyODcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgcGNpaWRs aXN0W10gPSB7CQkvKiBha2EgKi8NCiAJSU5URUxfVkdBX0RFVklDRSgweDAxNTIsICZpbnRlbF9p dnlicmlkZ2VfZF9pbmZvKSwgLyogR1QxIGRlc2t0b3AgKi8NCiAJSU5URUxfVkdBX0RFVklDRSgw eDAxNjIsICZpbnRlbF9pdnlicmlkZ2VfZF9pbmZvKSwgLyogR1QyIGRlc2t0b3AgKi8NCiAJSU5U RUxfVkdBX0RFVklDRSgweDAxNWEsICZpbnRlbF9pdnlicmlkZ2VfZF9pbmZvKSwgLyogR1QxIHNl cnZlciAqLw0KKwlJTlRFTF9WR0FfREVWSUNFKDB4MDE2YSwgJmludGVsX2l2eWJyaWRnZV9kX2lu Zm8pLCAvKiBHVDIgc2VydmVyICovDQogCXswLCAwLCAwfQ0KIH07DQogDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMNCmluZGV4IGRiZTRkYmUuLjU5NTBiYTMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jDQpAQCAtMTI1OSw2ICsxMjU5LDExIEBAIG91dDoNCiAJY2FzZSAwOg0KIAljYXNlIC1FUkVT VEFSVFNZUzoNCiAJY2FzZSAtRUlOVFI6DQorCWNhc2UgLUVCVVNZOg0KKwkJLyoNCisJCSAqIEVC VVNZIGlzIG9rOiB0aGlzIGp1c3QgbWVhbnMgdGhhdCBhbm90aGVyIHRocmVhZA0KKwkJICogYWxy ZWFkeSBkaWQgdGhlIGpvYi4NCisJCSAqLw0KIAkJcmV0dXJuIFZNX0ZBVUxUX05PUEFHRTsNCiAJ Y2FzZSAtRU5PTUVNOg0KIAkJcmV0dXJuIFZNX0ZBVUxUX09PTTsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYw0KaW5kZXggMjgxMmQ3Yi4uOTNlNzRmYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMN CkBAIC0xMTg3LDcgKzExODcsOSBAQCBzdGF0aWMgdm9pZCBpOTE1X3BhZ2VmbGlwX3N0YWxsX2No ZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQ0KIAlzcGluX2xvY2tfaXJxc2F2 ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7DQogCXdvcmsgPSBpbnRlbF9jcnRjLT51bnBpbl93 b3JrOw0KIA0KLQlpZiAod29yayA9PSBOVUxMIHx8IHdvcmstPnBlbmRpbmcgfHwgIXdvcmstPmVu YWJsZV9zdGFsbF9jaGVjaykgew0KKwlpZiAod29yayA9PSBOVUxMIHx8DQorCSAgICBhdG9taWNf cmVhZCgmd29yay0+cGVuZGluZykgPj0gSU5URUxfRkxJUF9DT01QTEVURSB8fA0KKwkgICAgIXdv cmstPmVuYWJsZV9zdGFsbF9jaGVjaykgew0KIAkJLyogRWl0aGVyIHRoZSBwZW5kaW5nIGZsaXAg SVJRIGFycml2ZWQsIG9yIHdlJ3JlIHRvbyBlYXJseS4gRG9uJ3QgY2hlY2sgKi8NCiAJCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOw0KIAkJcmV0dXJuOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oDQppbmRleCBhMjk0YTMyLi43YTEwZjVmIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaA0KQEAgLTI4MTYsNiArMjgxNiw4IEBADQogI2RlZmluZSBfUEZBX0NU TF8xICAgICAgICAgICAgICAgMHg2ODA4MA0KICNkZWZpbmUgX1BGQl9DVExfMSAgICAgICAgICAg ICAgIDB4Njg4ODANCiAjZGVmaW5lICBQRl9FTkFCTEUgICAgICAgICAgICAgICgxPDwzMSkNCisj ZGVmaW5lICBQRl9QSVBFX1NFTF9NQVNLX0lWQgkoMzw8MjkpDQorI2RlZmluZSAgUEZfUElQRV9T RUxfSVZCKHBpcGUpCSgocGlwZSk8PDI5KQ0KICNkZWZpbmUgIFBGX0ZJTFRFUl9NQVNLCQkoMzw8 MjMpDQogI2RlZmluZSAgUEZfRklMVEVSX1BST0dSQU1NRUQJKDA8PDIzKQ0KICNkZWZpbmUgIFBG X0ZJTFRFUl9NRURfM3gzCSgxPDwyMykNCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMNCmluZGV4 IDg3YmI4N2IuLjAwMTZmZWUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9iaW9zLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYw0KQEAgLTQ5 NSwxMiArNDk1LDggQEAgcGFyc2VfZWRwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgc3RydWN0IGJkYl9oZWFkZXIgKmJkYikNCiANCiAJZWRwID0gZmluZF9zZWN0aW9uKGJkYiwg QkRCX0VEUCk7DQogCWlmICghZWRwKSB7DQotCQlpZiAoU1VQUE9SVFNfRURQKGRldl9wcml2LT5k ZXYpICYmIGRldl9wcml2LT5lZHAuc3VwcG9ydCkgew0KLQkJCURSTV9ERUJVR19LTVMoIk5vIGVE UCBCREIgZm91bmQgYnV0IGVEUCBwYW5lbCAiDQotCQkJCSAgICAgICJzdXBwb3J0ZWQsIGFzc3Vt ZSAlZGJwcCBwYW5lbCBjb2xvciAiDQotCQkJCSAgICAgICJkZXB0aC5cbiIsDQotCQkJCSAgICAg IGRldl9wcml2LT5lZHAuYnBwKTsNCi0JCX0NCisJCWlmIChTVVBQT1JUU19FRFAoZGV2X3ByaXYt PmRldikgJiYgZGV2X3ByaXYtPmVkcC5zdXBwb3J0KQ0KKwkJCURSTV9ERUJVR19LTVMoIk5vIGVE UCBCREIgZm91bmQgYnV0IGVEUCBwYW5lbCBzdXBwb3J0ZWQuXG4iKTsNCiAJCXJldHVybjsNCiAJ fQ0KIA0KQEAgLTY1Myw5ICs2NDksNiBAQCBpbml0X3ZidF9kZWZhdWx0cyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQogCWRldl9wcml2LT5sdmRzX3VzZV9zc2MgPSAxOw0KIAlk ZXZfcHJpdi0+bHZkc19zc2NfZnJlcSA9IGludGVsX2Jpb3Nfc3NjX2ZyZXF1ZW5jeShkZXYsIDEp Ow0KIAlEUk1fREVCVUdfS01TKCJTZXQgZGVmYXVsdCB0byBTU0MgYXQgJWRNSHpcbiIsIGRldl9w cml2LT5sdmRzX3NzY19mcmVxKTsNCi0NCi0JLyogZURQIGRhdGEgKi8NCi0JZGV2X3ByaXYtPmVk cC5icHAgPSAxODsNCiB9DQogDQogc3RhdGljIGludCBfX2luaXQgaW50ZWxfbm9fb3ByZWdpb25f dmJ0X2NhbGxiYWNrKGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkICppZCkNCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMNCmluZGV4IGZkYWU2MWYuLjU0YWNhZDMgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMNCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KQEAgLTIzODQsMTggKzIzODQsNiBAQCBzdGF0aWMg dm9pZCBpbnRlbF9mZGlfbm9ybWFsX3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiAJCQkg ICBGRElfRkVfRVJSQ19FTkFCTEUpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBjcHRfcGhhc2VfcG9p bnRlcl9lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUpDQotew0KLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOw0KLQl1MzIg ZmxhZ3MgPSBJOTE1X1JFQUQoU09VVEhfQ0hJQ0tFTjEpOw0KLQ0KLQlmbGFncyB8PSBGRElfUEhB U0VfU1lOQ19PVlIocGlwZSk7DQotCUk5MTVfV1JJVEUoU09VVEhfQ0hJQ0tFTjEsIGZsYWdzKTsg Lyogb25jZSB0byB1bmxvY2suLi4gKi8NCi0JZmxhZ3MgfD0gRkRJX1BIQVNFX1NZTkNfRU4ocGlw ZSk7DQotCUk5MTVfV1JJVEUoU09VVEhfQ0hJQ0tFTjEsIGZsYWdzKTsgLyogdGhlbiBhZ2FpbiB0 byBlbmFibGUgKi8NCi0JUE9TVElOR19SRUFEKFNPVVRIX0NISUNLRU4xKTsNCi19DQotDQogLyog VGhlIEZESSBsaW5rIHRyYWluaW5nIGZ1bmN0aW9ucyBmb3IgSUxLL0liZXhwZWFrLiAqLw0KIHN0 YXRpYyB2b2lkIGlyb25sYWtlX2ZkaV9saW5rX3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykN CiB7DQpAQCAtMjQzOSwxMSArMjQyNyw5IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2ZkaV9saW5r X3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCiAJdWRlbGF5KDE1MCk7DQogDQogCS8qIEly b25sYWtlIHdvcmthcm91bmQsIGVuYWJsZSBjbG9jayBwb2ludGVyIGFmdGVyIEZESSBlbmFibGUq Lw0KLQlpZiAoSEFTX1BDSF9JQlgoZGV2KSkgew0KLQkJSTkxNV9XUklURShGRElfUlhfQ0hJQ0tF TihwaXBlKSwgRkRJX1JYX1BIQVNFX1NZTkNfUE9JTlRFUl9PVlIpOw0KLQkJSTkxNV9XUklURShG RElfUlhfQ0hJQ0tFTihwaXBlKSwgRkRJX1JYX1BIQVNFX1NZTkNfUE9JTlRFUl9PVlIgfA0KLQkJ CSAgIEZESV9SWF9QSEFTRV9TWU5DX1BPSU5URVJfRU4pOw0KLQl9DQorCUk5MTVfV1JJVEUoRkRJ X1JYX0NISUNLRU4ocGlwZSksIEZESV9SWF9QSEFTRV9TWU5DX1BPSU5URVJfT1ZSKTsNCisJSTkx NV9XUklURShGRElfUlhfQ0hJQ0tFTihwaXBlKSwgRkRJX1JYX1BIQVNFX1NZTkNfUE9JTlRFUl9P VlIgfA0KKwkJICAgRkRJX1JYX1BIQVNFX1NZTkNfUE9JTlRFUl9FTik7DQogDQogCXJlZyA9IEZE SV9SWF9JSVIocGlwZSk7DQogCWZvciAodHJpZXMgPSAwOyB0cmllcyA8IDU7IHRyaWVzKyspIHsN CkBAIC0yNTQ2LDkgKzI1MzIsNiBAQCBzdGF0aWMgdm9pZCBnZW42X2ZkaV9saW5rX3RyYWluKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykNCiAJUE9TVElOR19SRUFEKHJlZyk7DQogCXVkZWxheSgxNTAp Ow0KIA0KLQlpZiAoSEFTX1BDSF9DUFQoZGV2KSkNCi0JCWNwdF9waGFzZV9wb2ludGVyX2VuYWJs ZShkZXYsIHBpcGUpOw0KLQ0KIAlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7DQogCQlyZWcgPSBG RElfVFhfQ1RMKHBpcGUpOw0KIAkJdGVtcCA9IEk5MTVfUkVBRChyZWcpOw0KQEAgLTI2NjcsOSAr MjY1MCw2IEBAIHN0YXRpYyB2b2lkIGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGRy bV9jcnRjICpjcnRjKQ0KIAlQT1NUSU5HX1JFQUQocmVnKTsNCiAJdWRlbGF5KDE1MCk7DQogDQot CWlmIChIQVNfUENIX0NQVChkZXYpKQ0KLQkJY3B0X3BoYXNlX3BvaW50ZXJfZW5hYmxlKGRldiwg cGlwZSk7DQotDQogCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsNCiAJCXJlZyA9IEZESV9UWF9D VEwocGlwZSk7DQogCQl0ZW1wID0gSTkxNV9SRUFEKHJlZyk7DQpAQCAtMjc3OSwxNyArMjc1OSw2 IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2ZkaV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykNCiAJfQ0KIH0NCiANCi1zdGF0aWMgdm9pZCBjcHRfcGhhc2VfcG9pbnRlcl9kaXNhYmxl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQ0KLXsNCi0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCi0JdTMyIGZsYWdzID0gSTkx NV9SRUFEKFNPVVRIX0NISUNLRU4xKTsNCi0NCi0JZmxhZ3MgJj0gfihGRElfUEhBU0VfU1lOQ19F TihwaXBlKSk7DQotCUk5MTVfV1JJVEUoU09VVEhfQ0hJQ0tFTjEsIGZsYWdzKTsgLyogb25jZSB0 byBkaXNhYmxlLi4uICovDQotCWZsYWdzICY9IH4oRkRJX1BIQVNFX1NZTkNfT1ZSKHBpcGUpKTsN Ci0JSTkxNV9XUklURShTT1VUSF9DSElDS0VOMSwgZmxhZ3MpOyAvKiB0aGVuIGFnYWluIHRvIGxv Y2sgKi8NCi0JUE9TVElOR19SRUFEKFNPVVRIX0NISUNLRU4xKTsNCi19DQogc3RhdGljIHZvaWQg aXJvbmxha2VfZmRpX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQ0KIHsNCiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsNCkBAIC0yODE5LDggKzI3ODgsNiBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9mZGlfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQogCQlJ OTE1X1dSSVRFKEZESV9SWF9DSElDS0VOKHBpcGUpLA0KIAkJCSAgIEk5MTVfUkVBRChGRElfUlhf Q0hJQ0tFTihwaXBlKSAmDQogCQkJCSAgICAgfkZESV9SWF9QSEFTRV9TWU5DX1BPSU5URVJfRU4p KTsNCi0JfSBlbHNlIGlmIChIQVNfUENIX0NQVChkZXYpKSB7DQotCQljcHRfcGhhc2VfcG9pbnRl cl9kaXNhYmxlKGRldiwgcGlwZSk7DQogCX0NCiANCiAJLyogc3RpbGwgc2V0IHRyYWluIHBhdHRl cm4gMSAqLw0KQEAgLTMwNzMsNyArMzA0MCwxMSBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRj X2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpDQogCQkgKiBhcyBzb21lIHByZS1wcm9ncmFt bWVkIHZhbHVlcyBhcmUgYnJva2VuLA0KIAkJICogZS5nLiB4MjAxLg0KIAkJICovDQotCQlJOTE1 X1dSSVRFKFBGX0NUTChwaXBlKSwgUEZfRU5BQkxFIHwgUEZfRklMVEVSX01FRF8zeDMpOw0KKwkJ aWYgKElTX0lWWUJSSURHRShkZXYpKQ0KKwkJCUk5MTVfV1JJVEUoUEZfQ1RMKHBpcGUpLCBQRl9F TkFCTEUgfCBQRl9GSUxURVJfTUVEXzN4MyB8DQorCQkJCQkJIFBGX1BJUEVfU0VMX0lWQihwaXBl KSk7DQorCQllbHNlDQorCQkJSTkxNV9XUklURShQRl9DVEwocGlwZSksIFBGX0VOQUJMRSB8IFBG X0ZJTFRFUl9NRURfM3gzKTsNCiAJCUk5MTVfV1JJVEUoUEZfV0lOX1BPUyhwaXBlKSwgZGV2X3By aXYtPnBjaF9wZl9wb3MpOw0KIAkJSTkxNV9XUklURShQRl9XSU5fU1oocGlwZSksIGRldl9wcml2 LT5wY2hfcGZfc2l6ZSk7DQogCX0NCkBAIC00NzgyLDYgKzQ3NTMsMTcgQEAgc3RhdGljIGJvb2wg aW50ZWxfY2hvb3NlX3BpcGVfYnBwX2RpdGhlcihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQogCQkJ fQ0KIAkJfQ0KIA0KKwkJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0VE UCkgew0KKwkJCS8qIFVzZSBWQlQgc2V0dGluZ3MgaWYgd2UgaGF2ZSBhbiBlRFAgcGFuZWwgKi8N CisJCQl1bnNpZ25lZCBpbnQgZWRwX2JwYyA9IGRldl9wcml2LT5lZHAuYnBwIC8gMzsNCisNCisJ CQlpZiAoZWRwX2JwYyAmJiBlZHBfYnBjIDwgZGlzcGxheV9icGMpIHsNCisJCQkJRFJNX0RFQlVH X0tNUygiY2xhbXBpbmcgZGlzcGxheSBicGMgKHdhcyAlZCkgdG8gZURQICglZClcbiIsIGRpc3Bs YXlfYnBjLCBlZHBfYnBjKTsNCisJCQkJZGlzcGxheV9icGMgPSBlZHBfYnBjOw0KKwkJCX0NCisJ CQljb250aW51ZTsNCisJCX0NCisNCiAJCS8qDQogCQkgKiBIRE1JIGlzIGVpdGhlciAxMiBvciA4 LCBzbyBpZiB0aGUgZGlzcGxheSBsZXRzIDEwYnBjIHNuZWFrDQogCQkgKiB0aHJvdWdoLCBjbGFt cCBpdCBkb3duLiAgKE5vdGU6ID4xMmJwYyB3aWxsIGJlIGNhdWdodCBiZWxvdy4pDQpAQCAtNjk0 NSwxMSArNjkyNywxOCBAQCBzdGF0aWMgdm9pZCBkb19pbnRlbF9maW5pc2hfcGFnZV9mbGlwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsDQogDQogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmV2ZW50 X2xvY2ssIGZsYWdzKTsNCiAJd29yayA9IGludGVsX2NydGMtPnVucGluX3dvcms7DQotCWlmICh3 b3JrID09IE5VTEwgfHwgIXdvcmstPnBlbmRpbmcpIHsNCisNCisJLyogRW5zdXJlIHdlIGRvbid0 IG1pc3MgYSB3b3JrLT5wZW5kaW5nIHVwZGF0ZSAuLi4gKi8NCisJc21wX3JtYigpOw0KKw0KKwlp ZiAod29yayA9PSBOVUxMIHx8IGF0b21pY19yZWFkKCZ3b3JrLT5wZW5kaW5nKSA8IElOVEVMX0ZM SVBfQ09NUExFVEUpIHsNCiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldi0+ZXZlbnRfbG9j aywgZmxhZ3MpOw0KIAkJcmV0dXJuOw0KIAl9DQogDQorCS8qIGFuZCB0aGF0IHRoZSB1bnBpbiB3 b3JrIGlzIGNvbnNpc3RlbnQgd3J0IC0+cGVuZGluZy4gKi8NCisJc21wX3JtYigpOw0KKw0KIAlp bnRlbF9jcnRjLT51bnBpbl93b3JrID0gTlVMTDsNCiANCiAJaWYgKHdvcmstPmV2ZW50KSB7DQpA QCAtNzAyMSwxNiArNzAxMCwyNSBAQCB2b2lkIGludGVsX3ByZXBhcmVfcGFnZV9mbGlwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIGludCBwbGFuZSkNCiAJCXRvX2ludGVsX2NydGMoZGV2X3ByaXYt PnBsYW5lX3RvX2NydGNfbWFwcGluZ1twbGFuZV0pOw0KIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0K IA0KKwkvKiBOQjogQW4gTU1JTyB1cGRhdGUgb2YgdGhlIHBsYW5lIGJhc2UgcG9pbnRlciB3aWxs IGFsc28NCisJICogZ2VuZXJhdGUgYSBwYWdlLWZsaXAgY29tcGxldGlvbiBpcnEsIGkuZS4gZXZl cnkgbW9kZXNldA0KKwkgKiBpcyBhbHNvIGFjY29tcGFuaWVkIGJ5IGEgc3B1cmlvdXMgaW50ZWxf cHJlcGFyZV9wYWdlX2ZsaXAoKS4NCisJICovDQogCXNwaW5fbG9ja19pcnFzYXZlKCZkZXYtPmV2 ZW50X2xvY2ssIGZsYWdzKTsNCi0JaWYgKGludGVsX2NydGMtPnVucGluX3dvcmspIHsNCi0JCWlm ICgoKytpbnRlbF9jcnRjLT51bnBpbl93b3JrLT5wZW5kaW5nKSA+IDEpDQotCQkJRFJNX0VSUk9S KCJQcmVwYXJlZCBmbGlwIG11bHRpcGxlIHRpbWVzXG4iKTsNCi0JfSBlbHNlIHsNCi0JCURSTV9E RUJVR19EUklWRVIoInByZXBhcmluZyBmbGlwIHdpdGggbm8gdW5waW4gd29yaz9cbiIpOw0KLQl9 DQorCWlmIChpbnRlbF9jcnRjLT51bnBpbl93b3JrKQ0KKwkJYXRvbWljX2luY19ub3RfemVybygm aW50ZWxfY3J0Yy0+dW5waW5fd29yay0+cGVuZGluZyk7DQogCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmRldi0+ZXZlbnRfbG9jaywgZmxhZ3MpOw0KIH0NCiANCitpbmxpbmUgc3RhdGljIHZvaWQg aW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj KQ0KK3sNCisJLyogRW5zdXJlIHRoYXQgdGhlIHdvcmsgaXRlbSBpcyBjb25zaXN0ZW50IHdoZW4g YWN0aXZhdGluZyBpdCAuLi4gKi8NCisJc21wX3dtYigpOw0KKwlhdG9taWNfc2V0KCZpbnRlbF9j cnRjLT51bnBpbl93b3JrLT5wZW5kaW5nLCBJTlRFTF9GTElQX1BFTkRJTkcpOw0KKwkvKiBhbmQg dGhhdCBpdCBpcyBtYXJrZWQgYWN0aXZlIGFzIHNvb24gYXMgdGhlIGlycSBjb3VsZCBmaXJlLiAq Lw0KKwlzbXBfd21iKCk7DQorfQ0KKw0KIHN0YXRpYyBpbnQgaW50ZWxfZ2VuMl9xdWV1ZV9mbGlw KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQogCQkJCSBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsDQog CQkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwNCkBAIC03MDY3LDYgKzcwNjUsOCBAQCBz dGF0aWMgaW50IGludGVsX2dlbjJfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0K IAlPVVRfUklORyhmYi0+cGl0Y2gpOw0KIAlPVVRfUklORyhvYmotPmd0dF9vZmZzZXQgKyBvZmZz ZXQpOw0KIAlPVVRfUklORyhNSV9OT09QKTsNCisNCisJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0 aXZlKGludGVsX2NydGMpOw0KIAlBRFZBTkNFX0xQX1JJTkcoKTsNCiAJcmV0dXJuIDA7DQogDQpA QCAtNzExMCw2ICs3MTEwLDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW4zX3F1ZXVlX2ZsaXAoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwNCiAJT1VUX1JJTkcob2JqLT5ndHRfb2Zmc2V0ICsgb2Zmc2V0 KTsNCiAJT1VUX1JJTkcoTUlfTk9PUCk7DQogDQorCWludGVsX21hcmtfcGFnZV9mbGlwX2FjdGl2 ZShpbnRlbF9jcnRjKTsNCiAJQURWQU5DRV9MUF9SSU5HKCk7DQogCXJldHVybiAwOw0KIA0KQEAg LTcxNTMsNiArNzE1NCwxMCBAQCBzdGF0aWMgaW50IGludGVsX2dlbjRfcXVldWVfZmxpcChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LA0KIAlwZiA9IDA7DQogCXBpcGVzcmMgPSBJOTE1X1JFQUQoUElQ RVNSQyhpbnRlbF9jcnRjLT5waXBlKSkgJiAweDBmZmYwZmZmOw0KIAlPVVRfUklORyhwZiB8IHBp cGVzcmMpOw0KKw0KKwlpbnRlbF9tYXJrX3BhZ2VfZmxpcF9hY3RpdmUoaW50ZWxfY3J0Yyk7DQor DQorCWludGVsX21hcmtfcGFnZV9mbGlwX2FjdGl2ZShpbnRlbF9jcnRjKTsNCiAJQURWQU5DRV9M UF9SSU5HKCk7DQogCXJldHVybiAwOw0KIA0KQEAgLTcyNDIsNiArNzI0Nyw4IEBAIHN0YXRpYyBp bnQgaW50ZWxfZ2VuN19xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsDQogCWludGVs X3JpbmdfZW1pdChyaW5nLCAoZmItPnBpdGNoIHwgb2JqLT50aWxpbmdfbW9kZSkpOw0KIAlpbnRl bF9yaW5nX2VtaXQocmluZywgKG9iai0+Z3R0X29mZnNldCkpOw0KIAlpbnRlbF9yaW5nX2VtaXQo cmluZywgKE1JX05PT1ApKTsNCisNCisJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVs X2NydGMpOw0KIAlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7DQogCXJldHVybiAwOw0KIA0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgNCmluZGV4IGJjYWRmNzQuLjUyMTIyODQgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgNCkBAIC0yNTcsNyArMjU3LDEwIEBAIHN0cnVjdCBpbnRlbF91bnBp bl93b3JrIHsNCiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9sZF9mYl9vYmo7DQogCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpwZW5kaW5nX2ZsaXBfb2JqOw0KIAlzdHJ1Y3QgZHJt X3BlbmRpbmdfdmJsYW5rX2V2ZW50ICpldmVudDsNCi0JaW50IHBlbmRpbmc7DQorCWF0b21pY190 IHBlbmRpbmc7DQorI2RlZmluZSBJTlRFTF9GTElQX0lOQUNUSVZFCTANCisjZGVmaW5lIElOVEVM X0ZMSVBfUEVORElORwkxDQorI2RlZmluZSBJTlRFTF9GTElQX0NPTVBMRVRFCTINCiAJYm9vbCBl bmFibGVfc3RhbGxfY2hlY2s7DQogfTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMNCmlu ZGV4IDU3MTUyYTcuLmNmNWVhM2QgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9sdmRzLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYw0KQEAg LTc3OSw2ICs3NzksMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkIGludGVs X25vX2x2ZHNbXSA9IHsNCiAJCQlETUlfTUFUQ0goRE1JX0JPQVJEX05BTUUsICJaQk9YU0QtSUQx Mi9JRDEzIiksDQogCQl9LA0KIAl9LA0KKwl7DQorCQkuY2FsbGJhY2sgPSBpbnRlbF9ub19sdmRz X2RtaV9jYWxsYmFjaywNCisJCS5pZGVudCA9ICJHaWdhYnl0ZSBHQS1ENTI1VFVEIiwNCisJCS5t YXRjaGVzID0gew0KKwkJCURNSV9NQVRDSChETUlfQk9BUkRfVkVORE9SLCAiR2lnYWJ5dGUgVGVj aG5vbG9neSBDby4sIEx0ZC4iKSwNCisJCQlETUlfTUFUQ0goRE1JX0JPQVJEX05BTUUsICJENTI1 VFVEIiksDQorCQl9LA0KKwl9LA0KKwl7DQorCQkuY2FsbGJhY2sgPSBpbnRlbF9ub19sdmRzX2Rt aV9jYWxsYmFjaywNCisJCS5pZGVudCA9ICJTdXBlcm1pY3JvIFg3U1BBLUgiLA0KKwkJLm1hdGNo ZXMgPSB7DQorCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiU3VwZXJtaWNybyIpLA0KKwkJ CURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiWDdTUEEtSCIpLA0KKwkJfSwNCisJfSwNCiAN CiAJeyB9CS8qIHRlcm1pbmF0aW5nIGVudHJ5ICovDQogfTsNCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v YXRvbWJpb3NfY3J0Yy5jDQppbmRleCBhNDAxMWIwLi5hMjVkMDhhIDEwMDY0NA0KLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19jcnRjLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vYXRvbWJpb3NfY3J0Yy5jDQpAQCAtNTQxLDYgKzU0MSwxMSBAQCBzdGF0aWMgdTMy IGF0b21iaW9zX2FkanVzdF9wbGwoc3RydWN0IGRybV9jcnRjICpjcnRjLA0KIA0KIAkJaWYgKHJk ZXYtPmZhbWlseSA8IENISVBfUlY3NzApDQogCQkJcGxsLT5mbGFncyB8PSBSQURFT05fUExMX1BS RUZFUl9NSU5NX09WRVJfTUFYUDsNCisJCS8qIHVzZSBmcmFjIGZiIGRpdiBvbiBBUFVzICovDQor CQlpZiAoQVNJQ19JU19EQ0U0MShyZGV2KSkNCisJCQlwbGwtPmZsYWdzIHw9IFJBREVPTl9QTExf VVNFX0ZSQUNfRkJfRElWOw0KKwkJaWYgKEFTSUNfSVNfRENFMzIocmRldikgJiYgbW9kZS0+Y2xv Y2sgPiAxNjUwMDApDQorCQkJcGxsLT5mbGFncyB8PSBSQURFT05fUExMX1VTRV9GUkFDX0ZCX0RJ VjsNCiAJfSBlbHNlIHsNCiAJCXBsbC0+ZmxhZ3MgfD0gUkFERU9OX1BMTF9MRUdBQ1k7DQogDQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19lbmNvZGVycy5jDQppbmRleCBhY2E0NzU1 Li5mMGRjMDRiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9hdG9tYmlvc19l bmNvZGVycy5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2F0b21iaW9zX2VuY29kZXJz LmMNCkBAIC0xMTEsNyArMTExLDcgQEAgc3RhdGljIGJvb2wgcmFkZW9uX2F0b21fbW9kZV9maXh1 cChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsDQogCSAgICAoKHJhZGVvbl9lbmNvZGVyLT5h Y3RpdmVfZGV2aWNlICYgKEFUT01fREVWSUNFX0RGUF9TVVBQT1JUIHwgQVRPTV9ERVZJQ0VfTENE X1NVUFBPUlQpKSB8fA0KIAkgICAgIChyYWRlb25fZW5jb2Rlcl9nZXRfZHBfYnJpZGdlX2VuY29k ZXJfaWQoZW5jb2RlcikgIT0gRU5DT0RFUl9PQkpFQ1RfSURfTk9ORSkpKSB7DQogCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gcmFkZW9uX2dldF9jb25uZWN0b3JfZm9yX2VuY29k ZXIoZW5jb2Rlcik7DQotCQlyYWRlb25fZHBfc2V0X2xpbmtfY29uZmlnKGNvbm5lY3RvciwgbW9k ZSk7DQorCQlyYWRlb25fZHBfc2V0X2xpbmtfY29uZmlnKGNvbm5lY3RvciwgYWRqdXN0ZWRfbW9k ZSk7DQogCX0NCiANCiAJcmV0dXJuIHRydWU7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9ldmVyZ3JlZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZXZlcmdyZWVuLmMN CmluZGV4IGI5MTliMTEuLjA5Nzc4NDkgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFk ZW9uL2V2ZXJncmVlbi5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2V2ZXJncmVlbi5j DQpAQCAtMTczMCw3ICsxNzMwLDcgQEAgc3RhdGljIHZvaWQgZXZlcmdyZWVuX2dwdV9pbml0KHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQ0KIAljYXNlIENISVBfU1VNTzoNCiAJCXJkZXYtPmNv bmZpZy5ldmVyZ3JlZW4ubnVtX3NlcyA9IDE7DQogCQlyZGV2LT5jb25maWcuZXZlcmdyZWVuLm1h eF9waXBlcyA9IDQ7DQotCQlyZGV2LT5jb25maWcuZXZlcmdyZWVuLm1heF90aWxlX3BpcGVzID0g MjsNCisJCXJkZXYtPmNvbmZpZy5ldmVyZ3JlZW4ubWF4X3RpbGVfcGlwZXMgPSA0Ow0KIAkJaWYg KHJkZXYtPnBkZXYtPmRldmljZSA9PSAweDk2NDgpDQogCQkJcmRldi0+Y29uZmlnLmV2ZXJncmVl bi5tYXhfc2ltZHMgPSAzOw0KIAkJZWxzZSBpZiAoKHJkZXYtPnBkZXYtPmRldmljZSA9PSAweDk2 NDcpIHx8DQpAQCAtMTgxOSw3ICsxODE5LDcgQEAgc3RhdGljIHZvaWQgZXZlcmdyZWVuX2dwdV9p bml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KQ0KIAkJYnJlYWs7DQogCWNhc2UgQ0hJUF9D QUlDT1M6DQogCQlyZGV2LT5jb25maWcuZXZlcmdyZWVuLm51bV9zZXMgPSAxOw0KLQkJcmRldi0+ Y29uZmlnLmV2ZXJncmVlbi5tYXhfcGlwZXMgPSA0Ow0KKwkJcmRldi0+Y29uZmlnLmV2ZXJncmVl bi5tYXhfcGlwZXMgPSAyOw0KIAkJcmRldi0+Y29uZmlnLmV2ZXJncmVlbi5tYXhfdGlsZV9waXBl cyA9IDI7DQogCQlyZGV2LT5jb25maWcuZXZlcmdyZWVuLm1heF9zaW1kcyA9IDI7DQogCQlyZGV2 LT5jb25maWcuZXZlcmdyZWVuLm1heF9iYWNrZW5kcyA9IDEgKiByZGV2LT5jb25maWcuZXZlcmdy ZWVuLm51bV9zZXM7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWFwcGxlLmMgYi9kcml2 ZXJzL2hpZC9oaWQtYXBwbGUuYw0KaW5kZXggODk5YzcxMi4uMmRhNzMzNSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvaGlkL2hpZC1hcHBsZS5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtYXBwbGUuYw0K QEAgLTQ1OCw2ICs0NTgsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhpZF9kZXZpY2VfaWQgYXBw bGVfZGV2aWNlc1tdID0gew0KIAl7IEhJRF9CTFVFVE9PVEhfREVWSUNFKFVTQl9WRU5ET1JfSURf QVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfQUxVX1dJUkVMRVNTXzIwMTFfSVNPKSwNCiAJCS5k cml2ZXJfZGF0YSA9IEFQUExFX05VTUxPQ0tfRU1VTEFUSU9OIHwgQVBQTEVfSEFTX0ZOIHwNCiAJ CQlBUFBMRV9JU09fS0VZQk9BUkQgfSwNCisJeyBISURfQkxVRVRPT1RIX0RFVklDRShVU0JfVkVO RE9SX0lEX0FQUExFLA0KKwkJCQlVU0JfREVWSUNFX0lEX0FQUExFX0FMVV9XSVJFTEVTU18yMDEx X0FOU0kpLA0KKwkJLmRyaXZlcl9kYXRhID0gQVBQTEVfTlVNTE9DS19FTVVMQVRJT04gfCBBUFBM RV9IQVNfRk4gfSwNCiAJeyBISURfQkxVRVRPT1RIX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExF LCBVU0JfREVWSUNFX0lEX0FQUExFX0FMVV9XSVJFTEVTU19KSVMpLA0KIAkJLmRyaXZlcl9kYXRh ID0gQVBQTEVfTlVNTE9DS19FTVVMQVRJT04gfCBBUFBMRV9IQVNfRk4gfSwNCiAJeyBISURfVVNC X0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX1dFTExTUFJJ TkdfQU5TSSksDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWNvcmUuYyBiL2RyaXZlcnMv aGlkL2hpZC1jb3JlLmMNCmluZGV4IGEyMWU3NjMuLjI3OWI4NjMgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL2hpZC9oaWQtY29yZS5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtY29yZS5jDQpAQCAtMTM4 Niw2ICsxMzg2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoaWRfZGV2aWNlX2lkIGhpZF9oYXZl X3NwZWNpYWxfZHJpdmVyW10gPSB7DQogCXsgSElEX0JMVUVUT09USF9ERVZJQ0UoVVNCX1ZFTkRP Ul9JRF9BUFBMRSwgVVNCX0RFVklDRV9JRF9BUFBMRV9BTFVfV0lSRUxFU1NfMjAwOV9BTlNJKSB9 LA0KIAl7IEhJRF9CTFVFVE9PVEhfREVWSUNFKFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJ Q0VfSURfQVBQTEVfQUxVX1dJUkVMRVNTXzIwMDlfSVNPKSB9LA0KIAl7IEhJRF9CTFVFVE9PVEhf REVWSUNFKFVTQl9WRU5ET1JfSURfQVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfQUxVX1dJUkVM RVNTXzIwMDlfSklTKSB9LA0KKwl7IEhJRF9CTFVFVE9PVEhfREVWSUNFKFVTQl9WRU5ET1JfSURf QVBQTEUsIFVTQl9ERVZJQ0VfSURfQVBQTEVfQUxVX1dJUkVMRVNTXzIwMTFfQU5TSSkgfSwNCiAJ eyBISURfQkxVRVRPT1RIX0RFVklDRShVU0JfVkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lE X0FQUExFX0FMVV9XSVJFTEVTU18yMDExX0lTTykgfSwNCiAJeyBISURfVVNCX0RFVklDRShVU0Jf VkVORE9SX0lEX0FQUExFLCBVU0JfREVWSUNFX0lEX0FQUExFX0ZPVU5UQUlOX1RQX09OTFkpIH0s DQogCXsgSElEX1VTQl9ERVZJQ0UoVVNCX1ZFTkRPUl9JRF9BUFBMRSwgVVNCX0RFVklDRV9JRF9B UFBMRV9HRVlTRVIxX1RQX09OTFkpIH0sDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWlk cy5oIGIvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQppbmRleCA2NTJmMjMwLi4yZDQxMzM2IDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9oaWQvaGlkLWlkcy5oDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtaWRz LmgNCkBAIC0xMzEsNiArMTMxLDcgQEANCiAjZGVmaW5lIFVTQl9ERVZJQ0VfSURfQVBQTEVfQUxV X1dJUkVMRVNTXzIwMDlfQU5TSSAgMHgwMjM5DQogI2RlZmluZSBVU0JfREVWSUNFX0lEX0FQUExF X0FMVV9XSVJFTEVTU18yMDA5X0lTTyAgIDB4MDIzYQ0KICNkZWZpbmUgVVNCX0RFVklDRV9JRF9B UFBMRV9BTFVfV0lSRUxFU1NfMjAwOV9KSVMgICAweDAyM2INCisjZGVmaW5lIFVTQl9ERVZJQ0Vf SURfQVBQTEVfQUxVX1dJUkVMRVNTXzIwMTFfQU5TSSAgMHgwMjU1DQogI2RlZmluZSBVU0JfREVW SUNFX0lEX0FQUExFX0FMVV9XSVJFTEVTU18yMDExX0lTTyAgIDB4MDI1Ng0KICNkZWZpbmUgVVNC X0RFVklDRV9JRF9BUFBMRV9GT1VOVEFJTl9UUF9PTkxZCTB4MDMwYQ0KICNkZWZpbmUgVVNCX0RF VklDRV9JRF9BUFBMRV9HRVlTRVIxX1RQX09OTFkJMHgwMzBiDQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9oaWQvaGlkLW1hZ2ljbW91c2UuYyBiL2RyaXZlcnMvaGlkL2hpZC1tYWdpY21vdXNlLmMNCmlu ZGV4IDJhYjcxNzUuLjdjZjNmZmUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2hpZC9oaWQtbWFnaWNt b3VzZS5jDQorKysgYi9kcml2ZXJzL2hpZC9oaWQtbWFnaWNtb3VzZS5jDQpAQCAtNDE4LDYgKzQx OCw4IEBAIHN0YXRpYyB2b2lkIG1hZ2ljbW91c2Vfc2V0dXBfaW5wdXQoc3RydWN0IGlucHV0X2Rl diAqaW5wdXQsIHN0cnVjdCBoaWRfZGV2aWNlICpoDQogCQlfX3NldF9iaXQoQlROX1RPT0xfVFJJ UExFVEFQLCBpbnB1dC0+a2V5Yml0KTsNCiAJCV9fc2V0X2JpdChCVE5fVE9PTF9RVUFEVEFQLCBp bnB1dC0+a2V5Yml0KTsNCiAJCV9fc2V0X2JpdChCVE5fVE9VQ0gsIGlucHV0LT5rZXliaXQpOw0K KwkJX19zZXRfYml0KElOUFVUX1BST1BfUE9JTlRFUiwgaW5wdXQtPnByb3BiaXQpOw0KKwkJX19z ZXRfYml0KElOUFVUX1BST1BfQlVUVE9OUEFELCBpbnB1dC0+cHJvcGJpdCk7DQogCX0NCiANCiAJ aWYgKHJlcG9ydF90b3VjaGVzKSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9jb3JldGVt cC5jIGIvZHJpdmVycy9od21vbi9jb3JldGVtcC5jDQppbmRleCAxOWI0NDEyLi4zZDYzMGJiIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9od21vbi9jb3JldGVtcC5jDQorKysgYi9kcml2ZXJzL2h3bW9u L2NvcmV0ZW1wLmMNCkBAIC0xOTAsNiArMTkwLDI3IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfdGVt cChzdHJ1Y3QgZGV2aWNlICpkZXYsDQogCXJldHVybiB0ZGF0YS0+dmFsaWQgPyBzcHJpbnRmKGJ1 ZiwgIiVkXG4iLCB0ZGF0YS0+dGVtcCkgOiAtRUFHQUlOOw0KIH0NCiANCitzdHJ1Y3QgdGptYXgg ew0KKwljaGFyIGNvbnN0ICppZDsNCisJaW50IHRqbWF4Ow0KK307DQorDQorc3RhdGljIHN0cnVj dCB0am1heCBfX2NwdWluaXRjb25zdCB0am1heF90YWJsZVtdID0gew0KKwl7ICJDUFUgRDQxMCIs IDEwMDAwMCB9LA0KKwl7ICJDUFUgRDQyNSIsIDEwMDAwMCB9LA0KKwl7ICJDUFUgRDUxMCIsIDEw MDAwMCB9LA0KKwl7ICJDUFUgRDUyNSIsIDEwMDAwMCB9LA0KKwl7ICJDUFUgTjQ1MCIsIDEwMDAw MCB9LA0KKwl7ICJDUFUgTjQ1NSIsIDEwMDAwMCB9LA0KKwl7ICJDUFUgTjQ3MCIsIDEwMDAwMCB9 LA0KKwl7ICJDUFUgTjQ3NSIsIDEwMDAwMCB9LA0KKwl7ICJDUFUgIDIzMCIsIDEwMDAwMCB9LAkJ LyogTW9kZWwgMHgxYywgc3RlcHBpbmcgMgkqLw0KKwl7ICJDUFUgIDMzMCIsIDEyNTAwMCB9LAkJ LyogTW9kZWwgMHgxYywgc3RlcHBpbmcgMgkqLw0KKwl7ICJDUFUgQ0U0MTEwIiwgMTEwMDAwIH0s CS8qIE1vZGVsIDB4MWMsIHN0ZXBwaW5nIDEwCSovDQorCXsgIkNQVSBDRTQxNTAiLCAxMTAwMDAg fSwJLyogTW9kZWwgMHgxYywgc3RlcHBpbmcgMTAJKi8NCisJeyAiQ1BVIENFNDE3MCIsIDExMDAw MCB9LAkvKiBNb2RlbCAweDFjLCBzdGVwcGluZyAxMAkqLw0KK307DQorDQogc3RhdGljIGludCBh ZGp1c3RfdGptYXgoc3RydWN0IGNwdWluZm9feDg2ICpjLCB1MzIgaWQsIHN0cnVjdCBkZXZpY2Ug KmRldikNCiB7DQogCS8qIFRoZSAxMDBDIGlzIGRlZmF1bHQgZm9yIGJvdGggbW9iaWxlIGFuZCBu b24gbW9iaWxlIENQVXMgKi8NCkBAIC0yMDAsNiArMjIxLDEzIEBAIHN0YXRpYyBpbnQgYWRqdXN0 X3RqbWF4KHN0cnVjdCBjcHVpbmZvX3g4NiAqYywgdTMyIGlkLCBzdHJ1Y3QgZGV2aWNlICpkZXYp DQogCWludCBlcnI7DQogCXUzMiBlYXgsIGVkeDsNCiAJc3RydWN0IHBjaV9kZXYgKmhvc3RfYnJp ZGdlOw0KKwlpbnQgaTsNCisNCisJLyogZXhwbGljaXQgdGptYXggdGFibGUgZW50cmllcyBvdmVy cmlkZSBoZXVyaXN0aWNzICovDQorCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHRqbWF4X3Rh YmxlKTsgaSsrKSB7DQorCQlpZiAoc3Ryc3RyKGMtPng4Nl9tb2RlbF9pZCwgdGptYXhfdGFibGVb aV0uaWQpKQ0KKwkJCXJldHVybiB0am1heF90YWJsZVtpXS50am1heDsNCisJfQ0KIA0KIAkvKiBF YXJseSBjaGlwcyBoYXZlIG5vIE1TUiBmb3IgVGpNYXggKi8NCiANCkBAIC0yMDgsNyArMjM2LDgg QEAgc3RhdGljIGludCBhZGp1c3RfdGptYXgoc3RydWN0IGNwdWluZm9feDg2ICpjLCB1MzIgaWQs IHN0cnVjdCBkZXZpY2UgKmRldikNCiANCiAJLyogQXRvbSBDUFVzICovDQogDQotCWlmIChjLT54 ODZfbW9kZWwgPT0gMHgxYykgew0KKwlpZiAoYy0+eDg2X21vZGVsID09IDB4MWMgfHwgYy0+eDg2 X21vZGVsID09IDB4MjYNCisJICAgIHx8IGMtPng4Nl9tb2RlbCA9PSAweDI3KSB7DQogCQl1c2Vt c3JfZWUgPSAwOw0KIA0KIAkJaG9zdF9icmlkZ2UgPSBwY2lfZ2V0X2J1c19hbmRfc2xvdCgwLCBQ Q0lfREVWRk4oMCwgMCkpOw0KQEAgLTIyMSw2ICsyNTAsOSBAQCBzdGF0aWMgaW50IGFkanVzdF90 am1heChzdHJ1Y3QgY3B1aW5mb194ODYgKmMsIHUzMiBpZCwgc3RydWN0IGRldmljZSAqZGV2KQ0K IAkJCXRqbWF4ID0gOTAwMDA7DQogDQogCQlwY2lfZGV2X3B1dChob3N0X2JyaWRnZSk7DQorCX0g ZWxzZSBpZiAoYy0+eDg2X21vZGVsID09IDB4MzYpIHsNCisJCXVzZW1zcl9lZSA9IDA7DQorCQl0 am1heCA9IDEwMDAwMDsNCiAJfQ0KIA0KIAlpZiAoYy0+eDg2X21vZGVsID4gMHhlICYmIHVzZW1z cl9lZSkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vZmFtMTVoX3Bvd2VyLmMgYi9kcml2 ZXJzL2h3bW9uL2ZhbTE1aF9wb3dlci5jDQppbmRleCBhYzJkNmNiLi43NzBlOTU5IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9od21vbi9mYW0xNWhfcG93ZXIuYw0KKysrIGIvZHJpdmVycy9od21vbi9m YW0xNWhfcG93ZXIuYw0KQEAgLTMxLDYgKzMxLDkgQEAgTU9EVUxFX0RFU0NSSVBUSU9OKCJBTUQg RmFtaWx5IDE1aCBDUFUgcHJvY2Vzc29yIHBvd2VyIG1vbml0b3IiKTsNCiBNT0RVTEVfQVVUSE9S KCJBbmRyZWFzIEhlcnJtYW5uIDxhbmRyZWFzLmhlcnJtYW5uM0BhbWQuY29tPiIpOw0KIE1PRFVM RV9MSUNFTlNFKCJHUEwiKTsNCiANCisvKiBGYW1pbHkgMTZoIE5vcnRoYnJpZGdlJ3MgZnVuY3Rp b24gNCBQQ0kgSUQgKi8NCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQU1EXzE2SF9OQl9GNAkweDE1 MzQNCisNCiAvKiBEMThGMyAqLw0KICNkZWZpbmUgUkVHX05PUlRIQlJJREdFX0NBUAkJMHhlOA0K IA0KQEAgLTI1Niw2ICsyNTksNyBAQCBzdGF0aWMgdm9pZCBfX2RldmV4aXQgZmFtMTVoX3Bvd2Vy X3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiANCiBzdGF0aWMgREVGSU5FX1BDSV9ERVZJ Q0VfVEFCTEUoZmFtMTVoX3Bvd2VyX2lkX3RhYmxlKSA9IHsNCiAJeyBQQ0lfVkRFVklDRShBTUQs IFBDSV9ERVZJQ0VfSURfQU1EXzE1SF9OQl9GNCkgfSwNCisJeyBQQ0lfVkRFVklDRShBTUQsIFBD SV9ERVZJQ0VfSURfQU1EXzE2SF9OQl9GNCkgfSwNCiAJe30NCiB9Ow0KIE1PRFVMRV9ERVZJQ0Vf VEFCTEUocGNpLCBmYW0xNWhfcG93ZXJfaWRfdGFibGUpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv aW5wdXQvam95c3RpY2svd2Fsa2VyYTA3MDEuYyBiL2RyaXZlcnMvaW5wdXQvam95c3RpY2svd2Fs a2VyYTA3MDEuYw0KaW5kZXggNGRmYTFlZS4uZjhmODkyYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv aW5wdXQvam95c3RpY2svd2Fsa2VyYTA3MDEuYw0KKysrIGIvZHJpdmVycy9pbnB1dC9qb3lzdGlj ay93YWxrZXJhMDcwMS5jDQpAQCAtMTk2LDYgKzE5Niw3IEBAIHN0YXRpYyB2b2lkIHdhbGtlcmEw NzAxX2Nsb3NlKHN0cnVjdCBpbnB1dF9kZXYgKmRldikNCiAJc3RydWN0IHdhbGtlcmFfZGV2ICp3 ID0gaW5wdXRfZ2V0X2RydmRhdGEoZGV2KTsNCiANCiAJcGFycG9ydF9kaXNhYmxlX2lycSh3LT5w YXJwb3J0KTsNCisJaHJ0aW1lcl9jYW5jZWwoJnctPnRpbWVyKTsNCiB9DQogDQogc3RhdGljIGlu dCB3YWxrZXJhMDcwMV9jb25uZWN0KHN0cnVjdCB3YWxrZXJhX2RldiAqdywgaW50IHBhcnBvcnQp DQpAQCAtMjI0LDYgKzIyNSw5IEBAIHN0YXRpYyBpbnQgd2Fsa2VyYTA3MDFfY29ubmVjdChzdHJ1 Y3Qgd2Fsa2VyYV9kZXYgKncsIGludCBwYXJwb3J0KQ0KIAlpZiAocGFycG9ydF9jbGFpbSh3LT5w YXJkZXZpY2UpKQ0KIAkJZ290byBpbml0X2VycjE7DQogDQorCWhydGltZXJfaW5pdCgmdy0+dGlt ZXIsIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9NT0RFX1JFTCk7DQorCXctPnRpbWVyLmZ1bmN0 aW9uID0gdGltZXJfaGFuZGxlcjsNCisNCiAJdy0+aW5wdXRfZGV2ID0gaW5wdXRfYWxsb2NhdGVf ZGV2aWNlKCk7DQogCWlmICghdy0+aW5wdXRfZGV2KQ0KIAkJZ290byBpbml0X2VycjI7DQpAQCAt MjU0LDggKzI1OCw2IEBAIHN0YXRpYyBpbnQgd2Fsa2VyYTA3MDFfY29ubmVjdChzdHJ1Y3Qgd2Fs a2VyYV9kZXYgKncsIGludCBwYXJwb3J0KQ0KIAlpZiAoZXJyKQ0KIAkJZ290byBpbml0X2VycjM7 DQogDQotCWhydGltZXJfaW5pdCgmdy0+dGltZXIsIENMT0NLX01PTk9UT05JQywgSFJUSU1FUl9N T0RFX1JFTCk7DQotCXctPnRpbWVyLmZ1bmN0aW9uID0gdGltZXJfaGFuZGxlcjsNCiAJcmV0dXJu IDA7DQogDQogIGluaXRfZXJyMzoNCkBAIC0yNzEsNyArMjczLDYgQEAgc3RhdGljIGludCB3YWxr ZXJhMDcwMV9jb25uZWN0KHN0cnVjdCB3YWxrZXJhX2RldiAqdywgaW50IHBhcnBvcnQpDQogDQog c3RhdGljIHZvaWQgd2Fsa2VyYTA3MDFfZGlzY29ubmVjdChzdHJ1Y3Qgd2Fsa2VyYV9kZXYgKncp DQogew0KLQlocnRpbWVyX2NhbmNlbCgmdy0+dGltZXIpOw0KIAlpbnB1dF91bnJlZ2lzdGVyX2Rl dmljZSh3LT5pbnB1dF9kZXYpOw0KIAlwYXJwb3J0X3JlbGVhc2Uody0+cGFyZGV2aWNlKTsNCiAJ cGFycG9ydF91bnJlZ2lzdGVyX2RldmljZSh3LT5wYXJkZXZpY2UpOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIteDg2aWE2NGlvLmggYi9kcml2ZXJzL2lucHV0L3Nlcmlv L2k4MDQyLXg4NmlhNjRpby5oDQppbmRleCBjZDFhODQzLi4wMzEyNzBjIDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaA0KKysrIGIvZHJpdmVycy9pbnB1 dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaA0KQEAgLTkxNCw2ICs5MTQsNyBAQCBzdGF0aWMgaW50 IF9faW5pdCBpODA0Ml9wbGF0Zm9ybV9pbml0KHZvaWQpDQogCWludCByZXR2YWw7DQogDQogI2lm ZGVmIENPTkZJR19YODYNCisJdTggYTIwX29uID0gMHhkZjsNCiAJLyogSnVzdCByZXR1cm4gaWYg cHJlLWRldGVjdGlvbiBzaG93cyBubyBpODA0MiBjb250cm9sbGVyIGV4aXN0ICovDQogCWlmICgh eDg2X3BsYXRmb3JtLmk4MDQyX2RldGVjdCgpKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQpAQCAtOTUz LDYgKzk1NCwxNCBAQCBzdGF0aWMgaW50IF9faW5pdCBpODA0Ml9wbGF0Zm9ybV9pbml0KHZvaWQp DQogDQogCWlmIChkbWlfY2hlY2tfc3lzdGVtKGk4MDQyX2RtaV9kcml0ZWtfdGFibGUpKQ0KIAkJ aTgwNDJfZHJpdGVrID0gdHJ1ZTsNCisNCisJLyoNCisJICogQTIwIHdhcyBhbHJlYWR5IGVuYWJs ZWQgZHVyaW5nIGVhcmx5IGtlcm5lbCBpbml0LiBCdXQgc29tZSBidWdneQ0KKwkgKiBCSU9TZXMg KGluIE1TSSBMYXB0b3BzKSByZXF1aXJlIEEyMCB0byBiZSBlbmFibGVkIHVzaW5nIDgwNDIgdG8N CisJICogcmVzdW1lIGZyb20gUzMuIFNvIHdlIGRvIGl0IGhlcmUgYW5kIGhvcGUgdGhhdCBub3Ro aW5nIGJyZWFrcy4NCisJICovDQorCWk4MDQyX2NvbW1hbmQoJmEyMF9vbiwgMHgxMGQxKTsNCisJ aTgwNDJfY29tbWFuZChOVUxMLCAweDAwZmYpOwkvKiBOdWxsIGNvbW1hbmQgZm9yIFNNTSBmaXJt d2FyZSAqLw0KICNlbmRpZiAvKiBDT05GSUdfWDg2ICovDQogDQogCXJldHVybiByZXR2YWw7DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jIGIvZHJpdmVycy9pb21tdS9p bnRlbC1pb21tdS5jDQppbmRleCBiOTA2MmMwLi45YTZjYzkyIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9pb21tdS9pbnRlbC1pb21tdS5jDQorKysgYi9kcml2ZXJzL2lvbW11L2ludGVsLWlvbW11LmMN CkBAIC0xODAxLDEwICsxODAxLDE3IEBAIHN0YXRpYyBpbnQgX19kb21haW5fbWFwcGluZyhzdHJ1 Y3QgZG1hcl9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgbG9uZyBpb3ZfcGZuLA0KIAkJCWlmICgh cHRlKQ0KIAkJCQlyZXR1cm4gLUVOT01FTTsNCiAJCQkvKiBJdCBpcyBsYXJnZSBwYWdlKi8NCi0J CQlpZiAobGFyZ2VwYWdlX2x2bCA+IDEpDQorCQkJaWYgKGxhcmdlcGFnZV9sdmwgPiAxKSB7DQog CQkJCXB0ZXZhbCB8PSBETUFfUFRFX0xBUkdFX1BBR0U7DQotCQkJZWxzZQ0KKwkJCQkvKiBFbnN1 cmUgdGhhdCBvbGQgc21hbGwgcGFnZSB0YWJsZXMgYXJlIHJlbW92ZWQgdG8gbWFrZSByb29tDQor CQkJCSAgIGZvciBzdXBlcnBhZ2UsIGlmIHRoZXkgZXhpc3QuICovDQorCQkJCWRtYV9wdGVfY2xl YXJfcmFuZ2UoZG9tYWluLCBpb3ZfcGZuLA0KKwkJCQkJCSAgICBpb3ZfcGZuICsgbHZsX3RvX25y X3BhZ2VzKGxhcmdlcGFnZV9sdmwpIC0gMSk7DQorCQkJCWRtYV9wdGVfZnJlZV9wYWdldGFibGUo ZG9tYWluLCBpb3ZfcGZuLA0KKwkJCQkJCSAgICAgICBpb3ZfcGZuICsgbHZsX3RvX25yX3BhZ2Vz KGxhcmdlcGFnZV9sdmwpIC0gMSk7DQorCQkJfSBlbHNlIHsNCiAJCQkJcHRldmFsICY9IH4odWlu dDY0X3QpRE1BX1BURV9MQVJHRV9QQUdFOw0KKwkJCX0NCiANCiAJCX0NCiAJCS8qIFdlIGRvbid0 IG5lZWQgbG9jayBoZXJlLCBub2JvZHkgZWxzZQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbGVkcy9s ZWRzLWxwNTUyMS5jIGIvZHJpdmVycy9sZWRzL2xlZHMtbHA1NTIxLmMNCmluZGV4IGNiNjQxZjEu LmJmNWNmZDcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2xlZHMvbGVkcy1scDU1MjEuYw0KKysrIGIv ZHJpdmVycy9sZWRzL2xlZHMtbHA1NTIxLmMNCkBAIC0xOTgsOSArMTk4LDE0IEBAIHN0YXRpYyBp bnQgbHA1NTIxX2xvYWRfcHJvZ3JhbShzdHJ1Y3QgbHA1NTIxX2VuZ2luZSAqZW5nLCBjb25zdCB1 OCAqcGF0dGVybikNCiANCiAJLyogbW92ZSBjdXJyZW50IGVuZ2luZSB0byBkaXJlY3QgbW9kZSBh bmQgcmVtZW1iZXIgdGhlIHN0YXRlICovDQogCXJldCA9IGxwNTUyMV9zZXRfZW5naW5lX21vZGUo ZW5nLCBMUDU1MjFfQ01EX0RJUkVDVCk7DQorCWlmIChyZXQpDQorCQlyZXR1cm4gcmV0Ow0KKw0K IAkvKiBNb2RlIGNoYW5nZSByZXF1aXJlcyBtaW4gNTAwIHVzIGRlbGF5LiAxIC0gMiBtcyAgd2l0 aCBtYXJnaW4gKi8NCiAJdXNsZWVwX3JhbmdlKDEwMDAsIDIwMDApOw0KLQlyZXQgfD0gbHA1NTIx X3JlYWQoY2xpZW50LCBMUDU1MjFfUkVHX09QX01PREUsICZtb2RlKTsNCisJcmV0ID0gbHA1NTIx X3JlYWQoY2xpZW50LCBMUDU1MjFfUkVHX09QX01PREUsICZtb2RlKTsNCisJaWYgKHJldCkNCisJ CXJldHVybiByZXQ7DQogDQogCS8qIEZvciBsb2FkaW5nLCBhbGwgdGhlIGVuZ2luZXMgdG8gbG9h ZCBtb2RlICovDQogCWxwNTUyMV93cml0ZShjbGllbnQsIExQNTUyMV9SRUdfT1BfTU9ERSwgTFA1 NTIxX0NNRF9ESVJFQ1QpOw0KQEAgLTIxNiw4ICsyMjEsNyBAQCBzdGF0aWMgaW50IGxwNTUyMV9s b2FkX3Byb2dyYW0oc3RydWN0IGxwNTUyMV9lbmdpbmUgKmVuZywgY29uc3QgdTggKnBhdHRlcm4p DQogCQkJCUxQNTUyMV9QUk9HX01FTV9TSVpFLA0KIAkJCQlwYXR0ZXJuKTsNCiANCi0JcmV0IHw9 IGxwNTUyMV93cml0ZShjbGllbnQsIExQNTUyMV9SRUdfT1BfTU9ERSwgbW9kZSk7DQotCXJldHVy biByZXQ7DQorCXJldHVybiBscDU1MjFfd3JpdGUoY2xpZW50LCBMUDU1MjFfUkVHX09QX01PREUs IG1vZGUpOw0KIH0NCiANCiBzdGF0aWMgaW50IGxwNTUyMV9zZXRfbGVkX2N1cnJlbnQoc3RydWN0 IGxwNTUyMV9jaGlwICpjaGlwLCBpbnQgbGVkLCB1OCBjdXJyKQ0KQEAgLTY5Miw5ICs2OTYsOSBA QCBzdGF0aWMgaW50IF9fZGV2aW5pdCBscDU1MjFfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNs aWVudCwNCiAJICogb3RoZXJ3aXNlIGZ1cnRoZXIgYWNjZXNzIHRvIHRoZSBSIEcgQiBjaGFubmVs cyBpbiB0aGUNCiAJICogTFA1NTIxX1JFR19FTkFCTEUgcmVnaXN0ZXIgd2lsbCBub3QgaGF2ZSBh bnkgZWZmZWN0IC0gc3RyYW5nZSENCiAJICovDQotCWxwNTUyMV9yZWFkKGNsaWVudCwgTFA1NTIx X1JFR19SX0NVUlJFTlQsICZidWYpOw0KLQlpZiAoYnVmICE9IExQNTUyMV9SRUdfUl9DVVJSX0RF RkFVTFQpIHsNCi0JCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAiZXJyb3IgaW4gcmVzZXRpbmcgY2hp cFxuIik7DQorCXJldCA9IGxwNTUyMV9yZWFkKGNsaWVudCwgTFA1NTIxX1JFR19SX0NVUlJFTlQs ICZidWYpOw0KKwlpZiAocmV0IHx8IGJ1ZiAhPSBMUDU1MjFfUkVHX1JfQ1VSUl9ERUZBVUxUKSB7 DQorCQlkZXZfZXJyKCZjbGllbnQtPmRldiwgImVycm9yIGluIHJlc2V0dGluZyBjaGlwXG4iKTsN CiAJCWdvdG8gZmFpbDI7DQogCX0NCiAJdXNsZWVwX3JhbmdlKDEwMDAwLCAyMDAwMCk7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZC9kbS1pb2N0bC5jIGIvZHJpdmVycy9tZC9kbS1pb2N0bC5jDQpp bmRleCAxY2U4NGVkLi40MmM4NzNmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS1pb2N0bC5j DQorKysgYi9kcml2ZXJzL21kL2RtLWlvY3RsLmMNCkBAIC0xNTYyLDYgKzE1NjIsMTQgQEAgc3Rh dGljIGludCBjb3B5X3BhcmFtcyhzdHJ1Y3QgZG1faW9jdGwgX191c2VyICp1c2VyLCBzdHJ1Y3Qg ZG1faW9jdGwgKipwYXJhbSkNCiAJaWYgKGNvcHlfZnJvbV91c2VyKGRtaSwgdXNlciwgdG1wLmRh dGFfc2l6ZSkpDQogCQlnb3RvIGJhZDsNCiANCisJLyoNCisJICogQWJvcnQgaWYgc29tZXRoaW5n IGNoYW5nZWQgdGhlIGlvY3RsIGRhdGEgd2hpbGUgaXQgd2FzIGJlaW5nIGNvcGllZC4NCisJICov DQorCWlmIChkbWktPmRhdGFfc2l6ZSAhPSB0bXAuZGF0YV9zaXplKSB7DQorCQlETUVSUigicmVq ZWN0aW5nIGlvY3RsOiBkYXRhIHNpemUgbW9kaWZpZWQgd2hpbGUgcHJvY2Vzc2luZyBwYXJhbWV0 ZXJzIik7DQorCQlnb3RvIGJhZDsNCisJfQ0KKw0KIAkvKiBXaXBlIHRoZSB1c2VyIGJ1ZmZlciBz byB3ZSBkbyBub3QgcmV0dXJuIGl0IHRvIHVzZXJzcGFjZSAqLw0KIAlpZiAoc2VjdXJlX2RhdGEg JiYgY2xlYXJfdXNlcih1c2VyLCB0bXAuZGF0YV9zaXplKSkNCiAJCWdvdG8gYmFkOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLWludGVybmFsLmggYi9k cml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS1pbnRlcm5hbC5oDQppbmRleCBkMjc5 Yzc2Li5hY2JhNTRlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0t YnRyZWUtaW50ZXJuYWwuaA0KKysrIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRy ZWUtaW50ZXJuYWwuaA0KQEAgLTM2LDEzICszNiwxMyBAQCBzdHJ1Y3Qgbm9kZV9oZWFkZXIgew0K IAlfX2xlMzIgcGFkZGluZzsNCiB9IF9fcGFja2VkOw0KIA0KLXN0cnVjdCBub2RlIHsNCitzdHJ1 Y3QgYnRyZWVfbm9kZSB7DQogCXN0cnVjdCBub2RlX2hlYWRlciBoZWFkZXI7DQogCV9fbGU2NCBr ZXlzWzBdOw0KIH0gX19wYWNrZWQ7DQogDQogDQotdm9pZCBpbmNfY2hpbGRyZW4oc3RydWN0IGRt X3RyYW5zYWN0aW9uX21hbmFnZXIgKnRtLCBzdHJ1Y3Qgbm9kZSAqbiwNCit2b2lkIGluY19jaGls ZHJlbihzdHJ1Y3QgZG1fdHJhbnNhY3Rpb25fbWFuYWdlciAqdG0sIHN0cnVjdCBidHJlZV9ub2Rl ICpuLA0KIAkJICBzdHJ1Y3QgZG1fYnRyZWVfdmFsdWVfdHlwZSAqdnQpOw0KIA0KIGludCBuZXdf YmxvY2soc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBkbV9ibG9jayAqKnJlc3Vs dCk7DQpAQCAtNjQsNyArNjQsNyBAQCBzdHJ1Y3Qgcm9fc3BpbmUgew0KIHZvaWQgaW5pdF9yb19z cGluZShzdHJ1Y3Qgcm9fc3BpbmUgKnMsIHN0cnVjdCBkbV9idHJlZV9pbmZvICppbmZvKTsNCiBp bnQgZXhpdF9yb19zcGluZShzdHJ1Y3Qgcm9fc3BpbmUgKnMpOw0KIGludCByb19zdGVwKHN0cnVj dCByb19zcGluZSAqcywgZG1fYmxvY2tfdCBuZXdfY2hpbGQpOw0KLXN0cnVjdCBub2RlICpyb19u b2RlKHN0cnVjdCByb19zcGluZSAqcyk7DQorc3RydWN0IGJ0cmVlX25vZGUgKnJvX25vZGUoc3Ry dWN0IHJvX3NwaW5lICpzKTsNCiANCiBzdHJ1Y3Qgc2hhZG93X3NwaW5lIHsNCiAJc3RydWN0IGRt X2J0cmVlX2luZm8gKmluZm87DQpAQCAtOTgsMTIgKzk4LDEyIEBAIGludCBzaGFkb3dfcm9vdChz dHJ1Y3Qgc2hhZG93X3NwaW5lICpzKTsNCiAvKg0KICAqIFNvbWUgaW5saW5lcy4NCiAgKi8NCi1z dGF0aWMgaW5saW5lIF9fbGU2NCAqa2V5X3B0cihzdHJ1Y3Qgbm9kZSAqbiwgdWludDMyX3QgaW5k ZXgpDQorc3RhdGljIGlubGluZSBfX2xlNjQgKmtleV9wdHIoc3RydWN0IGJ0cmVlX25vZGUgKm4s IHVpbnQzMl90IGluZGV4KQ0KIHsNCiAJcmV0dXJuIG4tPmtleXMgKyBpbmRleDsNCiB9DQogDQot c3RhdGljIGlubGluZSB2b2lkICp2YWx1ZV9iYXNlKHN0cnVjdCBub2RlICpuKQ0KK3N0YXRpYyBp bmxpbmUgdm9pZCAqdmFsdWVfYmFzZShzdHJ1Y3QgYnRyZWVfbm9kZSAqbikNCiB7DQogCXJldHVy biAmbi0+a2V5c1tsZTMyX3RvX2NwdShuLT5oZWFkZXIubWF4X2VudHJpZXMpXTsNCiB9DQpAQCAt MTExLDcgKzExMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqdmFsdWVfYmFzZShzdHJ1Y3Qgbm9k ZSAqbikNCiAvKg0KICAqIEZJWE1FOiBOb3cgdGhhdCB2YWx1ZSBzaXplIGlzIHN0b3JlZCBpbiBu b2RlIHdlIGRvbid0IG5lZWQgdGhlIHRoaXJkIHBhcm0uDQogICovDQotc3RhdGljIGlubGluZSB2 b2lkICp2YWx1ZV9wdHIoc3RydWN0IG5vZGUgKm4sIHVpbnQzMl90IGluZGV4LCBzaXplX3QgdmFs dWVfc2l6ZSkNCitzdGF0aWMgaW5saW5lIHZvaWQgKnZhbHVlX3B0cihzdHJ1Y3QgYnRyZWVfbm9k ZSAqbiwgdWludDMyX3QgaW5kZXgsIHNpemVfdCB2YWx1ZV9zaXplKQ0KIHsNCiAJQlVHX09OKHZh bHVlX3NpemUgIT0gbGUzMl90b19jcHUobi0+aGVhZGVyLnZhbHVlX3NpemUpKTsNCiAJcmV0dXJu IHZhbHVlX2Jhc2UobikgKyAodmFsdWVfc2l6ZSAqIGluZGV4KTsNCkBAIC0xMjAsNyArMTIwLDcg QEAgc3RhdGljIGlubGluZSB2b2lkICp2YWx1ZV9wdHIoc3RydWN0IG5vZGUgKm4sIHVpbnQzMl90 IGluZGV4LCBzaXplX3QgdmFsdWVfc2l6ZSkNCiAvKg0KICAqIEFzc3VtZXMgdGhlIHZhbHVlcyBh cmUgc3VpdGFibHktYWxpZ25lZCBhbmQgY29udmVydHMgdG8gY29yZSBmb3JtYXQuDQogICovDQot c3RhdGljIGlubGluZSB1aW50NjRfdCB2YWx1ZTY0KHN0cnVjdCBub2RlICpuLCB1aW50MzJfdCBp bmRleCkNCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90IHZhbHVlNjQoc3RydWN0IGJ0cmVlX25vZGUg Km4sIHVpbnQzMl90IGluZGV4KQ0KIHsNCiAJX19sZTY0ICp2YWx1ZXNfbGUgPSB2YWx1ZV9iYXNl KG4pOw0KIA0KQEAgLTEzMCw3ICsxMzAsNyBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IHZhbHVl NjQoc3RydWN0IG5vZGUgKm4sIHVpbnQzMl90IGluZGV4KQ0KIC8qDQogICogU2VhcmNoaW5nIGZv ciBhIGtleSB3aXRoaW4gYSBzaW5nbGUgbm9kZS4NCiAgKi8NCi1pbnQgbG93ZXJfYm91bmQoc3Ry dWN0IG5vZGUgKm4sIHVpbnQ2NF90IGtleSk7DQoraW50IGxvd2VyX2JvdW5kKHN0cnVjdCBidHJl ZV9ub2RlICpuLCB1aW50NjRfdCBrZXkpOw0KIA0KIGV4dGVybiBzdHJ1Y3QgZG1fYmxvY2tfdmFs aWRhdG9yIGJ0cmVlX25vZGVfdmFsaWRhdG9yOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQv cGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLXJlbW92ZS5jIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50 LWRhdGEvZG0tYnRyZWUtcmVtb3ZlLmMNCmluZGV4IDFhMzVjYWYuLmU2Y2RmZGUgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS1yZW1vdmUuYw0KKysrIGIv ZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUtcmVtb3ZlLmMNCkBAIC01Myw3ICs1 Myw3IEBADQogLyoNCiAgKiBTb21lIGxpdHRsZSB1dGlsaXRpZXMgZm9yIG1vdmluZyBub2RlIGRh dGEgYXJvdW5kLg0KICAqLw0KLXN0YXRpYyB2b2lkIG5vZGVfc2hpZnQoc3RydWN0IG5vZGUgKm4s IGludCBzaGlmdCkNCitzdGF0aWMgdm9pZCBub2RlX3NoaWZ0KHN0cnVjdCBidHJlZV9ub2RlICpu LCBpbnQgc2hpZnQpDQogew0KIAl1aW50MzJfdCBucl9lbnRyaWVzID0gbGUzMl90b19jcHUobi0+ aGVhZGVyLm5yX2VudHJpZXMpOw0KIAl1aW50MzJfdCB2YWx1ZV9zaXplID0gbGUzMl90b19jcHUo bi0+aGVhZGVyLnZhbHVlX3NpemUpOw0KQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgbm9k ZV9zaGlmdChzdHJ1Y3Qgbm9kZSAqbiwgaW50IHNoaWZ0KQ0KIAl9DQogfQ0KIA0KLXN0YXRpYyB2 b2lkIG5vZGVfY29weShzdHJ1Y3Qgbm9kZSAqbGVmdCwgc3RydWN0IG5vZGUgKnJpZ2h0LCBpbnQg c2hpZnQpDQorc3RhdGljIHZvaWQgbm9kZV9jb3B5KHN0cnVjdCBidHJlZV9ub2RlICpsZWZ0LCBz dHJ1Y3QgYnRyZWVfbm9kZSAqcmlnaHQsIGludCBzaGlmdCkNCiB7DQogCXVpbnQzMl90IG5yX2xl ZnQgPSBsZTMyX3RvX2NwdShsZWZ0LT5oZWFkZXIubnJfZW50cmllcyk7DQogCXVpbnQzMl90IHZh bHVlX3NpemUgPSBsZTMyX3RvX2NwdShsZWZ0LT5oZWFkZXIudmFsdWVfc2l6ZSk7DQpAQCAtMTA4 LDcgKzEwOCw3IEBAIHN0YXRpYyB2b2lkIG5vZGVfY29weShzdHJ1Y3Qgbm9kZSAqbGVmdCwgc3Ry dWN0IG5vZGUgKnJpZ2h0LCBpbnQgc2hpZnQpDQogLyoNCiAgKiBEZWxldGUgYSBzcGVjaWZpYyBl bnRyeSBmcm9tIGEgbGVhZiBub2RlLg0KICAqLw0KLXN0YXRpYyB2b2lkIGRlbGV0ZV9hdChzdHJ1 Y3Qgbm9kZSAqbiwgdW5zaWduZWQgaW5kZXgpDQorc3RhdGljIHZvaWQgZGVsZXRlX2F0KHN0cnVj dCBidHJlZV9ub2RlICpuLCB1bnNpZ25lZCBpbmRleCkNCiB7DQogCXVuc2lnbmVkIG5yX2VudHJp ZXMgPSBsZTMyX3RvX2NwdShuLT5oZWFkZXIubnJfZW50cmllcyk7DQogCXVuc2lnbmVkIG5yX3Rv X2NvcHkgPSBucl9lbnRyaWVzIC0gKGluZGV4ICsgMSk7DQpAQCAtMTI4LDcgKzEyOCw3IEBAIHN0 YXRpYyB2b2lkIGRlbGV0ZV9hdChzdHJ1Y3Qgbm9kZSAqbiwgdW5zaWduZWQgaW5kZXgpDQogCW4t PmhlYWRlci5ucl9lbnRyaWVzID0gY3B1X3RvX2xlMzIobnJfZW50cmllcyAtIDEpOw0KIH0NCiAN Ci1zdGF0aWMgdW5zaWduZWQgbWVyZ2VfdGhyZXNob2xkKHN0cnVjdCBub2RlICpuKQ0KK3N0YXRp YyB1bnNpZ25lZCBtZXJnZV90aHJlc2hvbGQoc3RydWN0IGJ0cmVlX25vZGUgKm4pDQogew0KIAly ZXR1cm4gbGUzMl90b19jcHUobi0+aGVhZGVyLm1heF9lbnRyaWVzKSAvIDM7DQogfQ0KQEAgLTEz Niw3ICsxMzYsNyBAQCBzdGF0aWMgdW5zaWduZWQgbWVyZ2VfdGhyZXNob2xkKHN0cnVjdCBub2Rl ICpuKQ0KIHN0cnVjdCBjaGlsZCB7DQogCXVuc2lnbmVkIGluZGV4Ow0KIAlzdHJ1Y3QgZG1fYmxv Y2sgKmJsb2NrOw0KLQlzdHJ1Y3Qgbm9kZSAqbjsNCisJc3RydWN0IGJ0cmVlX25vZGUgKm47DQog fTsNCiANCiBzdGF0aWMgc3RydWN0IGRtX2J0cmVlX3ZhbHVlX3R5cGUgbGU2NF90eXBlID0gew0K QEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgc3RydWN0IGRtX2J0cmVlX3ZhbHVlX3R5cGUgbGU2 NF90eXBlID0gew0KIAkuZXF1YWwgPSBOVUxMDQogfTsNCiANCi1zdGF0aWMgaW50IGluaXRfY2hp bGQoc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBub2RlICpwYXJlbnQsDQorc3Rh dGljIGludCBpbml0X2NoaWxkKHN0cnVjdCBkbV9idHJlZV9pbmZvICppbmZvLCBzdHJ1Y3QgYnRy ZWVfbm9kZSAqcGFyZW50LA0KIAkJICAgICAgdW5zaWduZWQgaW5kZXgsIHN0cnVjdCBjaGlsZCAq cmVzdWx0KQ0KIHsNCiAJaW50IHIsIGluYzsNCkBAIC0xNzcsNyArMTc3LDcgQEAgc3RhdGljIGlu dCBleGl0X2NoaWxkKHN0cnVjdCBkbV9idHJlZV9pbmZvICppbmZvLCBzdHJ1Y3QgY2hpbGQgKmMp DQogCXJldHVybiBkbV90bV91bmxvY2soaW5mby0+dG0sIGMtPmJsb2NrKTsNCiB9DQogDQotc3Rh dGljIHZvaWQgc2hpZnQoc3RydWN0IG5vZGUgKmxlZnQsIHN0cnVjdCBub2RlICpyaWdodCwgaW50 IGNvdW50KQ0KK3N0YXRpYyB2b2lkIHNoaWZ0KHN0cnVjdCBidHJlZV9ub2RlICpsZWZ0LCBzdHJ1 Y3QgYnRyZWVfbm9kZSAqcmlnaHQsIGludCBjb3VudCkNCiB7DQogCXVpbnQzMl90IG5yX2xlZnQg PSBsZTMyX3RvX2NwdShsZWZ0LT5oZWFkZXIubnJfZW50cmllcyk7DQogCXVpbnQzMl90IG5yX3Jp Z2h0ID0gbGUzMl90b19jcHUocmlnaHQtPmhlYWRlci5ucl9lbnRyaWVzKTsNCkBAIC0yMDMsMTEg KzIwMywxMSBAQCBzdGF0aWMgdm9pZCBzaGlmdChzdHJ1Y3Qgbm9kZSAqbGVmdCwgc3RydWN0IG5v ZGUgKnJpZ2h0LCBpbnQgY291bnQpDQogCXJpZ2h0LT5oZWFkZXIubnJfZW50cmllcyA9IGNwdV90 b19sZTMyKG5yX3JpZ2h0ICsgY291bnQpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBfX3JlYmFsYW5j ZTIoc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBub2RlICpwYXJlbnQsDQorc3Rh dGljIHZvaWQgX19yZWJhbGFuY2UyKHN0cnVjdCBkbV9idHJlZV9pbmZvICppbmZvLCBzdHJ1Y3Qg YnRyZWVfbm9kZSAqcGFyZW50LA0KIAkJCSBzdHJ1Y3QgY2hpbGQgKmwsIHN0cnVjdCBjaGlsZCAq cikNCiB7DQotCXN0cnVjdCBub2RlICpsZWZ0ID0gbC0+bjsNCi0Jc3RydWN0IG5vZGUgKnJpZ2h0 ID0gci0+bjsNCisJc3RydWN0IGJ0cmVlX25vZGUgKmxlZnQgPSBsLT5uOw0KKwlzdHJ1Y3QgYnRy ZWVfbm9kZSAqcmlnaHQgPSByLT5uOw0KIAl1aW50MzJfdCBucl9sZWZ0ID0gbGUzMl90b19jcHUo bGVmdC0+aGVhZGVyLm5yX2VudHJpZXMpOw0KIAl1aW50MzJfdCBucl9yaWdodCA9IGxlMzJfdG9f Y3B1KHJpZ2h0LT5oZWFkZXIubnJfZW50cmllcyk7DQogCXVuc2lnbmVkIHRocmVzaG9sZCA9IDIg KiBtZXJnZV90aHJlc2hvbGQobGVmdCkgKyAxOw0KQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMg aW50IHJlYmFsYW5jZTIoc3RydWN0IHNoYWRvd19zcGluZSAqcywgc3RydWN0IGRtX2J0cmVlX2lu Zm8gKmluZm8sDQogCQkgICAgICB1bnNpZ25lZCBsZWZ0X2luZGV4KQ0KIHsNCiAJaW50IHI7DQot CXN0cnVjdCBub2RlICpwYXJlbnQ7DQorCXN0cnVjdCBidHJlZV9ub2RlICpwYXJlbnQ7DQogCXN0 cnVjdCBjaGlsZCBsZWZ0LCByaWdodDsNCiANCiAJcGFyZW50ID0gZG1fYmxvY2tfZGF0YShzaGFk b3dfY3VycmVudChzKSk7DQpAQCAtMjcwLDkgKzI3MCw5IEBAIHN0YXRpYyBpbnQgcmViYWxhbmNl MihzdHJ1Y3Qgc2hhZG93X3NwaW5lICpzLCBzdHJ1Y3QgZG1fYnRyZWVfaW5mbyAqaW5mbywNCiAg KiBpbiByaWdodCwgdGhlbiByZWJhbGFuY2UyLiAgVGhpcyB3YXN0ZXMgc29tZSBjcHUsIGJ1dCBJ IHdhbnQgc29tZXRoaW5nDQogICogc2ltcGxlIGF0bS4NCiAgKi8NCi1zdGF0aWMgdm9pZCBkZWxl dGVfY2VudGVyX25vZGUoc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBub2RlICpw YXJlbnQsDQorc3RhdGljIHZvaWQgZGVsZXRlX2NlbnRlcl9ub2RlKHN0cnVjdCBkbV9idHJlZV9p bmZvICppbmZvLCBzdHJ1Y3QgYnRyZWVfbm9kZSAqcGFyZW50LA0KIAkJCSAgICAgICBzdHJ1Y3Qg Y2hpbGQgKmwsIHN0cnVjdCBjaGlsZCAqYywgc3RydWN0IGNoaWxkICpyLA0KLQkJCSAgICAgICBz dHJ1Y3Qgbm9kZSAqbGVmdCwgc3RydWN0IG5vZGUgKmNlbnRlciwgc3RydWN0IG5vZGUgKnJpZ2h0 LA0KKwkJCSAgICAgICBzdHJ1Y3QgYnRyZWVfbm9kZSAqbGVmdCwgc3RydWN0IGJ0cmVlX25vZGUg KmNlbnRlciwgc3RydWN0IGJ0cmVlX25vZGUgKnJpZ2h0LA0KIAkJCSAgICAgICB1aW50MzJfdCBu cl9sZWZ0LCB1aW50MzJfdCBucl9jZW50ZXIsIHVpbnQzMl90IG5yX3JpZ2h0KQ0KIHsNCiAJdWlu dDMyX3QgbWF4X2VudHJpZXMgPSBsZTMyX3RvX2NwdShsZWZ0LT5oZWFkZXIubWF4X2VudHJpZXMp Ow0KQEAgLTMwMSw5ICszMDEsOSBAQCBzdGF0aWMgdm9pZCBkZWxldGVfY2VudGVyX25vZGUoc3Ry dWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBub2RlICpwYXJlbnQsDQogLyoNCiAgKiBS ZWRpc3RyaWJ1dGVzIGVudHJpZXMgYW1vbmcgMyBzaWJsaW5nIG5vZGVzLg0KICAqLw0KLXN0YXRp YyB2b2lkIHJlZGlzdHJpYnV0ZTMoc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBu b2RlICpwYXJlbnQsDQorc3RhdGljIHZvaWQgcmVkaXN0cmlidXRlMyhzdHJ1Y3QgZG1fYnRyZWVf aW5mbyAqaW5mbywgc3RydWN0IGJ0cmVlX25vZGUgKnBhcmVudCwNCiAJCQkgIHN0cnVjdCBjaGls ZCAqbCwgc3RydWN0IGNoaWxkICpjLCBzdHJ1Y3QgY2hpbGQgKnIsDQotCQkJICBzdHJ1Y3Qgbm9k ZSAqbGVmdCwgc3RydWN0IG5vZGUgKmNlbnRlciwgc3RydWN0IG5vZGUgKnJpZ2h0LA0KKwkJCSAg c3RydWN0IGJ0cmVlX25vZGUgKmxlZnQsIHN0cnVjdCBidHJlZV9ub2RlICpjZW50ZXIsIHN0cnVj dCBidHJlZV9ub2RlICpyaWdodCwNCiAJCQkgIHVpbnQzMl90IG5yX2xlZnQsIHVpbnQzMl90IG5y X2NlbnRlciwgdWludDMyX3QgbnJfcmlnaHQpDQogew0KIAlpbnQgczsNCkBAIC0zNDMsMTIgKzM0 MywxMiBAQCBzdGF0aWMgdm9pZCByZWRpc3RyaWJ1dGUzKHN0cnVjdCBkbV9idHJlZV9pbmZvICpp bmZvLCBzdHJ1Y3Qgbm9kZSAqcGFyZW50LA0KIAkqa2V5X3B0cihwYXJlbnQsIHItPmluZGV4KSA9 IHJpZ2h0LT5rZXlzWzBdOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBfX3JlYmFsYW5jZTMoc3RydWN0 IGRtX2J0cmVlX2luZm8gKmluZm8sIHN0cnVjdCBub2RlICpwYXJlbnQsDQorc3RhdGljIHZvaWQg X19yZWJhbGFuY2UzKHN0cnVjdCBkbV9idHJlZV9pbmZvICppbmZvLCBzdHJ1Y3QgYnRyZWVfbm9k ZSAqcGFyZW50LA0KIAkJCSBzdHJ1Y3QgY2hpbGQgKmwsIHN0cnVjdCBjaGlsZCAqYywgc3RydWN0 IGNoaWxkICpyKQ0KIHsNCi0Jc3RydWN0IG5vZGUgKmxlZnQgPSBsLT5uOw0KLQlzdHJ1Y3Qgbm9k ZSAqY2VudGVyID0gYy0+bjsNCi0Jc3RydWN0IG5vZGUgKnJpZ2h0ID0gci0+bjsNCisJc3RydWN0 IGJ0cmVlX25vZGUgKmxlZnQgPSBsLT5uOw0KKwlzdHJ1Y3QgYnRyZWVfbm9kZSAqY2VudGVyID0g Yy0+bjsNCisJc3RydWN0IGJ0cmVlX25vZGUgKnJpZ2h0ID0gci0+bjsNCiANCiAJdWludDMyX3Qg bnJfbGVmdCA9IGxlMzJfdG9fY3B1KGxlZnQtPmhlYWRlci5ucl9lbnRyaWVzKTsNCiAJdWludDMy X3QgbnJfY2VudGVyID0gbGUzMl90b19jcHUoY2VudGVyLT5oZWFkZXIubnJfZW50cmllcyk7DQpA QCAtMzcxLDcgKzM3MSw3IEBAIHN0YXRpYyBpbnQgcmViYWxhbmNlMyhzdHJ1Y3Qgc2hhZG93X3Nw aW5lICpzLCBzdHJ1Y3QgZG1fYnRyZWVfaW5mbyAqaW5mbywNCiAJCSAgICAgIHVuc2lnbmVkIGxl ZnRfaW5kZXgpDQogew0KIAlpbnQgcjsNCi0Jc3RydWN0IG5vZGUgKnBhcmVudCA9IGRtX2Jsb2Nr X2RhdGEoc2hhZG93X2N1cnJlbnQocykpOw0KKwlzdHJ1Y3QgYnRyZWVfbm9kZSAqcGFyZW50ID0g ZG1fYmxvY2tfZGF0YShzaGFkb3dfY3VycmVudChzKSk7DQogCXN0cnVjdCBjaGlsZCBsZWZ0LCBj ZW50ZXIsIHJpZ2h0Ow0KIA0KIAkvKg0KQEAgLTQyMSw3ICs0MjEsNyBAQCBzdGF0aWMgaW50IGdl dF9ucl9lbnRyaWVzKHN0cnVjdCBkbV90cmFuc2FjdGlvbl9tYW5hZ2VyICp0bSwNCiB7DQogCWlu dCByOw0KIAlzdHJ1Y3QgZG1fYmxvY2sgKmJsb2NrOw0KLQlzdHJ1Y3Qgbm9kZSAqbjsNCisJc3Ry dWN0IGJ0cmVlX25vZGUgKm47DQogDQogCXIgPSBkbV90bV9yZWFkX2xvY2sodG0sIGIsICZidHJl ZV9ub2RlX3ZhbGlkYXRvciwgJmJsb2NrKTsNCiAJaWYgKHIpDQpAQCAtNDM4LDcgKzQzOCw3IEBA IHN0YXRpYyBpbnQgcmViYWxhbmNlX2NoaWxkcmVuKHN0cnVjdCBzaGFkb3dfc3BpbmUgKnMsDQog ew0KIAlpbnQgaSwgciwgaGFzX2xlZnRfc2libGluZywgaGFzX3JpZ2h0X3NpYmxpbmc7DQogCXVp bnQzMl90IGNoaWxkX2VudHJpZXM7DQotCXN0cnVjdCBub2RlICpuOw0KKwlzdHJ1Y3QgYnRyZWVf bm9kZSAqbjsNCiANCiAJbiA9IGRtX2Jsb2NrX2RhdGEoc2hhZG93X2N1cnJlbnQocykpOw0KIA0K QEAgLTQ4Myw3ICs0ODMsNyBAQCBzdGF0aWMgaW50IHJlYmFsYW5jZV9jaGlsZHJlbihzdHJ1Y3Qg c2hhZG93X3NwaW5lICpzLA0KIAlyZXR1cm4gcjsNCiB9DQogDQotc3RhdGljIGludCBkb19sZWFm KHN0cnVjdCBub2RlICpuLCB1aW50NjRfdCBrZXksIHVuc2lnbmVkICppbmRleCkNCitzdGF0aWMg aW50IGRvX2xlYWYoc3RydWN0IGJ0cmVlX25vZGUgKm4sIHVpbnQ2NF90IGtleSwgdW5zaWduZWQg KmluZGV4KQ0KIHsNCiAJaW50IGkgPSBsb3dlcl9ib3VuZChuLCBrZXkpOw0KIA0KQEAgLTUwNiw3 ICs1MDYsNyBAQCBzdGF0aWMgaW50IHJlbW92ZV9yYXcoc3RydWN0IHNoYWRvd19zcGluZSAqcywg c3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sDQogCQkgICAgICB1aW50NjRfdCBrZXksIHVuc2ln bmVkICppbmRleCkNCiB7DQogCWludCBpID0gKmluZGV4LCByOw0KLQlzdHJ1Y3Qgbm9kZSAqbjsN CisJc3RydWN0IGJ0cmVlX25vZGUgKm47DQogDQogCWZvciAoOzspIHsNCiAJCXIgPSBzaGFkb3df c3RlcChzLCByb290LCB2dCk7DQpAQCAtNTU2LDcgKzU1Niw3IEBAIGludCBkbV9idHJlZV9yZW1v dmUoc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIGRtX2Jsb2NrX3Qgcm9vdCwNCiAJdW5zaWdu ZWQgbGV2ZWwsIGxhc3RfbGV2ZWwgPSBpbmZvLT5sZXZlbHMgLSAxOw0KIAlpbnQgaW5kZXggPSAw LCByID0gMDsNCiAJc3RydWN0IHNoYWRvd19zcGluZSBzcGluZTsNCi0Jc3RydWN0IG5vZGUgKm47 DQorCXN0cnVjdCBidHJlZV9ub2RlICpuOw0KIA0KIAlpbml0X3NoYWRvd19zcGluZSgmc3BpbmUs IGluZm8pOw0KIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPCBpbmZvLT5sZXZlbHM7IGxldmVsKysp IHsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS1zcGlu ZS5jIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUtc3BpbmUuYw0KaW5kZXgg ZDlhNzkxMi4uMmYwODA1YyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRh L2RtLWJ0cmVlLXNwaW5lLmMNCisrKyBiL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0 cmVlLXNwaW5lLmMNCkBAIC0yMyw3ICsyMyw3IEBAIHN0YXRpYyB2b2lkIG5vZGVfcHJlcGFyZV9m b3Jfd3JpdGUoc3RydWN0IGRtX2Jsb2NrX3ZhbGlkYXRvciAqdiwNCiAJCQkJICAgc3RydWN0IGRt X2Jsb2NrICpiLA0KIAkJCQkgICBzaXplX3QgYmxvY2tfc2l6ZSkNCiB7DQotCXN0cnVjdCBub2Rl ICpuID0gZG1fYmxvY2tfZGF0YShiKTsNCisJc3RydWN0IGJ0cmVlX25vZGUgKm4gPSBkbV9ibG9j a19kYXRhKGIpOw0KIAlzdHJ1Y3Qgbm9kZV9oZWFkZXIgKmggPSAmbi0+aGVhZGVyOw0KIA0KIAlo LT5ibG9ja25yID0gY3B1X3RvX2xlNjQoZG1fYmxvY2tfbG9jYXRpb24oYikpOw0KQEAgLTM4LDcg KzM4LDcgQEAgc3RhdGljIGludCBub2RlX2NoZWNrKHN0cnVjdCBkbV9ibG9ja192YWxpZGF0b3Ig KnYsDQogCQkgICAgICBzdHJ1Y3QgZG1fYmxvY2sgKmIsDQogCQkgICAgICBzaXplX3QgYmxvY2tf c2l6ZSkNCiB7DQotCXN0cnVjdCBub2RlICpuID0gZG1fYmxvY2tfZGF0YShiKTsNCisJc3RydWN0 IGJ0cmVlX25vZGUgKm4gPSBkbV9ibG9ja19kYXRhKGIpOw0KIAlzdHJ1Y3Qgbm9kZV9oZWFkZXIg KmggPSAmbi0+aGVhZGVyOw0KIAlzaXplX3QgdmFsdWVfc2l6ZTsNCiAJX19sZTMyIGNzdW1fZGlz azsNCkBAIC0xNjQsNyArMTY0LDcgQEAgaW50IHJvX3N0ZXAoc3RydWN0IHJvX3NwaW5lICpzLCBk bV9ibG9ja190IG5ld19jaGlsZCkNCiAJcmV0dXJuIHI7DQogfQ0KIA0KLXN0cnVjdCBub2RlICpy b19ub2RlKHN0cnVjdCByb19zcGluZSAqcykNCitzdHJ1Y3QgYnRyZWVfbm9kZSAqcm9fbm9kZShz dHJ1Y3Qgcm9fc3BpbmUgKnMpDQogew0KIAlzdHJ1Y3QgZG1fYmxvY2sgKmJsb2NrOw0KIA0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLWJ0cmVlLmMgYi9kcml2ZXJz L21kL3BlcnNpc3RlbnQtZGF0YS9kbS1idHJlZS5jDQppbmRleCBiZDFlN2ZmLi5iYmIyZWM1IDEw MDY0NA0KLS0tIGEvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUuYw0KKysrIGIv ZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tYnRyZWUuYw0KQEAgLTM4LDcgKzM4LDcgQEAg c3RhdGljIHZvaWQgYXJyYXlfaW5zZXJ0KHZvaWQgKmJhc2UsIHNpemVfdCBlbHRfc2l6ZSwgdW5z aWduZWQgbnJfZWx0cywNCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KIA0KIC8qIG1ha2VzIHRoZSBhc3N1bXB0aW9u IHRoYXQgbm8gdHdvIGtleXMgYXJlIHRoZSBzYW1lLiAqLw0KLXN0YXRpYyBpbnQgYnNlYXJjaChz dHJ1Y3Qgbm9kZSAqbiwgdWludDY0X3Qga2V5LCBpbnQgd2FudF9oaSkNCitzdGF0aWMgaW50IGJz ZWFyY2goc3RydWN0IGJ0cmVlX25vZGUgKm4sIHVpbnQ2NF90IGtleSwgaW50IHdhbnRfaGkpDQog ew0KIAlpbnQgbG8gPSAtMSwgaGkgPSBsZTMyX3RvX2NwdShuLT5oZWFkZXIubnJfZW50cmllcyk7 DQogDQpAQCAtNTgsMTIgKzU4LDEyIEBAIHN0YXRpYyBpbnQgYnNlYXJjaChzdHJ1Y3Qgbm9kZSAq biwgdWludDY0X3Qga2V5LCBpbnQgd2FudF9oaSkNCiAJcmV0dXJuIHdhbnRfaGkgPyBoaSA6IGxv Ow0KIH0NCiANCi1pbnQgbG93ZXJfYm91bmQoc3RydWN0IG5vZGUgKm4sIHVpbnQ2NF90IGtleSkN CitpbnQgbG93ZXJfYm91bmQoc3RydWN0IGJ0cmVlX25vZGUgKm4sIHVpbnQ2NF90IGtleSkNCiB7 DQogCXJldHVybiBic2VhcmNoKG4sIGtleSwgMCk7DQogfQ0KIA0KLXZvaWQgaW5jX2NoaWxkcmVu KHN0cnVjdCBkbV90cmFuc2FjdGlvbl9tYW5hZ2VyICp0bSwgc3RydWN0IG5vZGUgKm4sDQordm9p ZCBpbmNfY2hpbGRyZW4oc3RydWN0IGRtX3RyYW5zYWN0aW9uX21hbmFnZXIgKnRtLCBzdHJ1Y3Qg YnRyZWVfbm9kZSAqbiwNCiAJCSAgc3RydWN0IGRtX2J0cmVlX3ZhbHVlX3R5cGUgKnZ0KQ0KIHsN CiAJdW5zaWduZWQgaTsNCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgaW5jX2NoaWxkcmVuKHN0cnVj dCBkbV90cmFuc2FjdGlvbl9tYW5hZ2VyICp0bSwgc3RydWN0IG5vZGUgKm4sDQogCQkJCXZhbHVl X3B0cihuLCBpLCB2dC0+c2l6ZSkpOw0KIH0NCiANCi1zdGF0aWMgaW50IGluc2VydF9hdChzaXpl X3QgdmFsdWVfc2l6ZSwgc3RydWN0IG5vZGUgKm5vZGUsIHVuc2lnbmVkIGluZGV4LA0KK3N0YXRp YyBpbnQgaW5zZXJ0X2F0KHNpemVfdCB2YWx1ZV9zaXplLCBzdHJ1Y3QgYnRyZWVfbm9kZSAqbm9k ZSwgdW5zaWduZWQgaW5kZXgsDQogCQkgICAgICB1aW50NjRfdCBrZXksIHZvaWQgKnZhbHVlKQ0K IAkJICAgICAgX19kbV93cml0dGVuX3RvX2Rpc2sodmFsdWUpDQogew0KQEAgLTEyMyw3ICsxMjMs NyBAQCBpbnQgZG1fYnRyZWVfZW1wdHkoc3RydWN0IGRtX2J0cmVlX2luZm8gKmluZm8sIGRtX2Js b2NrX3QgKnJvb3QpDQogew0KIAlpbnQgcjsNCiAJc3RydWN0IGRtX2Jsb2NrICpiOw0KLQlzdHJ1 Y3Qgbm9kZSAqbjsNCisJc3RydWN0IGJ0cmVlX25vZGUgKm47DQogCXNpemVfdCBibG9ja19zaXpl Ow0KIAl1aW50MzJfdCBtYXhfZW50cmllczsNCiANCkBAIC0xNTUsNyArMTU1LDcgQEAgRVhQT1JU X1NZTUJPTF9HUEwoZG1fYnRyZWVfZW1wdHkpOw0KICNkZWZpbmUgTUFYX1NQSU5FX0RFUFRIIDY0 DQogc3RydWN0IGZyYW1lIHsNCiAJc3RydWN0IGRtX2Jsb2NrICpiOw0KLQlzdHJ1Y3Qgbm9kZSAq bjsNCisJc3RydWN0IGJ0cmVlX25vZGUgKm47DQogCXVuc2lnbmVkIGxldmVsOw0KIAl1bnNpZ25l ZCBucl9jaGlsZHJlbjsNCiAJdW5zaWduZWQgY3VycmVudF9jaGlsZDsNCkBAIC0yOTYsNyArMjk2 LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoZG1fYnRyZWVfZGVsKTsNCiAvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLw0KIA0K IHN0YXRpYyBpbnQgYnRyZWVfbG9va3VwX3JhdyhzdHJ1Y3Qgcm9fc3BpbmUgKnMsIGRtX2Jsb2Nr X3QgYmxvY2ssIHVpbnQ2NF90IGtleSwNCi0JCQkgICAgaW50ICgqc2VhcmNoX2ZuKShzdHJ1Y3Qg bm9kZSAqLCB1aW50NjRfdCksDQorCQkJICAgIGludCAoKnNlYXJjaF9mbikoc3RydWN0IGJ0cmVl X25vZGUgKiwgdWludDY0X3QpLA0KIAkJCSAgICB1aW50NjRfdCAqcmVzdWx0X2tleSwgdm9pZCAq diwgc2l6ZV90IHZhbHVlX3NpemUpDQogew0KIAlpbnQgaSwgcjsNCkBAIC00MDcsNyArNDA3LDcg QEAgc3RhdGljIGludCBidHJlZV9zcGxpdF9zaWJsaW5nKHN0cnVjdCBzaGFkb3dfc3BpbmUgKnMs IGRtX2Jsb2NrX3Qgcm9vdCwNCiAJc2l6ZV90IHNpemU7DQogCXVuc2lnbmVkIG5yX2xlZnQsIG5y X3JpZ2h0Ow0KIAlzdHJ1Y3QgZG1fYmxvY2sgKmxlZnQsICpyaWdodCwgKnBhcmVudDsNCi0Jc3Ry dWN0IG5vZGUgKmxuLCAqcm4sICpwbjsNCisJc3RydWN0IGJ0cmVlX25vZGUgKmxuLCAqcm4sICpw bjsNCiAJX19sZTY0IGxvY2F0aW9uOw0KIA0KIAlsZWZ0ID0gc2hhZG93X2N1cnJlbnQocyk7DQpA QCAtNDkyLDcgKzQ5Miw3IEBAIHN0YXRpYyBpbnQgYnRyZWVfc3BsaXRfYmVuZWF0aChzdHJ1Y3Qg c2hhZG93X3NwaW5lICpzLCB1aW50NjRfdCBrZXkpDQogCXNpemVfdCBzaXplOw0KIAl1bnNpZ25l ZCBucl9sZWZ0LCBucl9yaWdodDsNCiAJc3RydWN0IGRtX2Jsb2NrICpsZWZ0LCAqcmlnaHQsICpu ZXdfcGFyZW50Ow0KLQlzdHJ1Y3Qgbm9kZSAqcG4sICpsbiwgKnJuOw0KKwlzdHJ1Y3QgYnRyZWVf bm9kZSAqcG4sICpsbiwgKnJuOw0KIAlfX2xlNjQgdmFsOw0KIA0KIAluZXdfcGFyZW50ID0gc2hh ZG93X2N1cnJlbnQocyk7DQpAQCAtNTc3LDcgKzU3Nyw3IEBAIHN0YXRpYyBpbnQgYnRyZWVfaW5z ZXJ0X3JhdyhzdHJ1Y3Qgc2hhZG93X3NwaW5lICpzLCBkbV9ibG9ja190IHJvb3QsDQogCQkJICAg IHVpbnQ2NF90IGtleSwgdW5zaWduZWQgKmluZGV4KQ0KIHsNCiAJaW50IHIsIGkgPSAqaW5kZXgs IHRvcCA9IDE7DQotCXN0cnVjdCBub2RlICpub2RlOw0KKwlzdHJ1Y3QgYnRyZWVfbm9kZSAqbm9k ZTsNCiANCiAJZm9yICg7Oykgew0KIAkJciA9IHNoYWRvd19zdGVwKHMsIHJvb3QsIHZ0KTsNCkBA IC02NDQsNyArNjQ0LDcgQEAgc3RhdGljIGludCBpbnNlcnQoc3RydWN0IGRtX2J0cmVlX2luZm8g KmluZm8sIGRtX2Jsb2NrX3Qgcm9vdCwNCiAJdW5zaWduZWQgbGV2ZWwsIGluZGV4ID0gLTEsIGxh c3RfbGV2ZWwgPSBpbmZvLT5sZXZlbHMgLSAxOw0KIAlkbV9ibG9ja190IGJsb2NrID0gcm9vdDsN CiAJc3RydWN0IHNoYWRvd19zcGluZSBzcGluZTsNCi0Jc3RydWN0IG5vZGUgKm47DQorCXN0cnVj dCBidHJlZV9ub2RlICpuOw0KIAlzdHJ1Y3QgZG1fYnRyZWVfdmFsdWVfdHlwZSBsZTY0X3R5cGU7 DQogDQogCWxlNjRfdHlwZS5jb250ZXh0ID0gTlVMTDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21m ZC9tZmQtY29yZS5jIGIvZHJpdmVycy9tZmQvbWZkLWNvcmUuYw0KaW5kZXggNDExZjUyMy4uNmRh ZDJlZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWZkL21mZC1jb3JlLmMNCisrKyBiL2RyaXZlcnMv bWZkL21mZC1jb3JlLmMNCkBAIC0xOSw2ICsxOSwxMCBAQA0KICNpbmNsdWRlIDxsaW51eC9zbGFi Lmg+DQogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KIA0KK3N0YXRpYyBzdHJ1Y3QgZGV2aWNl X3R5cGUgbWZkX2Rldl90eXBlID0gew0KKwkubmFtZQk9ICJtZmRfZGV2aWNlIiwNCit9Ow0KKw0K IGludCBtZmRfY2VsbF9lbmFibGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiB7DQog CWNvbnN0IHN0cnVjdCBtZmRfY2VsbCAqY2VsbCA9IG1mZF9nZXRfY2VsbChwZGV2KTsNCkBAIC04 OCw2ICs5Miw3IEBAIHN0YXRpYyBpbnQgbWZkX2FkZF9kZXZpY2Uoc3RydWN0IGRldmljZSAqcGFy ZW50LCBpbnQgaWQsDQogCQlnb3RvIGZhaWxfZGV2aWNlOw0KIA0KIAlwZGV2LT5kZXYucGFyZW50 ID0gcGFyZW50Ow0KKwlwZGV2LT5kZXYudHlwZSA9ICZtZmRfZGV2X3R5cGU7DQogDQogCWlmIChj ZWxsLT5wZGF0YV9zaXplKSB7DQogCQlyZXQgPSBwbGF0Zm9ybV9kZXZpY2VfYWRkX2RhdGEocGRl diwNCkBAIC0xODMsMTAgKzE4OCwxNiBAQCBFWFBPUlRfU1lNQk9MKG1mZF9hZGRfZGV2aWNlcyk7 DQogDQogc3RhdGljIGludCBtZmRfcmVtb3ZlX2RldmljZXNfZm4oc3RydWN0IGRldmljZSAqZGV2 LCB2b2lkICpjKQ0KIHsNCi0Jc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRm b3JtX2RldmljZShkZXYpOw0KLQljb25zdCBzdHJ1Y3QgbWZkX2NlbGwgKmNlbGwgPSBtZmRfZ2V0 X2NlbGwocGRldik7DQorCXN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXY7DQorCWNvbnN0IHN0 cnVjdCBtZmRfY2VsbCAqY2VsbDsNCiAJYXRvbWljX3QgKip1c2FnZV9jb3VudCA9IGM7DQogDQor CWlmIChkZXYtPnR5cGUgIT0gJm1mZF9kZXZfdHlwZSkNCisJCXJldHVybiAwOw0KKw0KKwlwZGV2 ID0gdG9fcGxhdGZvcm1fZGV2aWNlKGRldik7DQorCWNlbGwgPSBtZmRfZ2V0X2NlbGwocGRldik7 DQorDQogCS8qIGZpbmQgdGhlIGJhc2UgYWRkcmVzcyBvZiB1c2FnZV9jb3VudCBwb2ludGVycyAo Zm9yIGZyZWVpbmcpICovDQogCWlmICghKnVzYWdlX2NvdW50IHx8IChjZWxsLT51c2FnZV9jb3Vu dCA8ICp1c2FnZV9jb3VudCkpDQogCQkqdXNhZ2VfY291bnQgPSBjZWxsLT51c2FnZV9jb3VudDsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaHBpbG8uYyBiL2RyaXZlcnMvbWlzYy9ocGlsby5j DQppbmRleCBmZmZjMjI3Li45Yzk5NjgwIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9taXNjL2hwaWxv LmMNCisrKyBiL2RyaXZlcnMvbWlzYy9ocGlsby5jDQpAQCAtNzM1LDcgKzczNSwxNCBAQCBzdGF0 aWMgdm9pZCBpbG9fcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQ0KIAlmcmVlX2lycShwZGV2 LT5pcnEsIGlsb19odyk7DQogCWlsb191bm1hcF9kZXZpY2UocGRldiwgaWxvX2h3KTsNCiAJcGNp X3JlbGVhc2VfcmVnaW9ucyhwZGV2KTsNCi0JcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOw0KKwkv Kg0KKwkgKiBwY2lfZGlzYWJsZV9kZXZpY2UocGRldikgdXNlZCB0byBiZSBoZXJlLiBCdXQgdGhp cyBQQ0kgZGV2aWNlIGhhcw0KKwkgKiB0d28gZnVuY3Rpb25zIHdpdGggaW50ZXJydXB0IGxpbmVz IGNvbm5lY3RlZCB0byBhIHNpbmdsZSBwaW4uIFRoZQ0KKwkgKiBvdGhlciBvbmUgaXMgYSBVU0Ig aG9zdCBjb250cm9sbGVyLiBTbyB3aGVuIHdlIGRpc2FibGUgdGhlIFBJTiBoZXJlDQorCSAqIGUu Zy4gYnkgcm1tb2QgaHBpbG8sIHRoZSBjb250cm9sbGVyIHN0b3BzIHdvcmtpbmcuIEl0IGlzIGJl Y2F1c2UNCisJICogdGhlIGludGVycnVwdCBsaW5rIGlzIGRpc2FibGVkIGluIEFDUEkgc2luY2Ug aXQgaXMgbm90IHJlZmNvdW50ZWQNCisJICogeWV0LiBTZWUgYWNwaV9wY2lfbGlua19mcmVlX2ly cSBjYWxsZWQgZnJvbSBhY3BpX3BjaV9pcnFfZGlzYWJsZS4NCisJICovDQogCWtmcmVlKGlsb19o dyk7DQogCWlsb19od2RldlsobWlub3IgLyBNQVhfQ0NCKV0gPSAwOw0KIH0NCkBAIC04MjAsNyAr ODI3LDcgQEAgdW5tYXA6DQogZnJlZV9yZWdpb25zOg0KIAlwY2lfcmVsZWFzZV9yZWdpb25zKHBk ZXYpOw0KIGRpc2FibGU6DQotCXBjaV9kaXNhYmxlX2RldmljZShwZGV2KTsNCisvKglwY2lfZGlz YWJsZV9kZXZpY2UocGRldik7ICBzZWUgY29tbWVudCBpbiBpbG9fcmVtb3ZlICovDQogZnJlZToN CiAJa2ZyZWUoaWxvX2h3KTsNCiBvdXQ6DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9taXNjL3NnaS14 cC94cGNfbWFpbi5jIGIvZHJpdmVycy9taXNjL3NnaS14cC94cGNfbWFpbi5jDQppbmRleCA4ZDA4 MmI0Li5kOTcxODE3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9taXNjL3NnaS14cC94cGNfbWFpbi5j DQorKysgYi9kcml2ZXJzL21pc2Mvc2dpLXhwL3hwY19tYWluLmMNCkBAIC01Myw2ICs1MywxMCBA QA0KICNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+DQogI2luY2x1ZGUgInhwYy5oIg0KIA0KKyNp ZmRlZiBDT05GSUdfWDg2XzY0DQorI2luY2x1ZGUgPGFzbS90cmFwcy5oPg0KKyNlbmRpZg0KKw0K IC8qIGRlZmluZSB0d28gWFBDIGRlYnVnIGRldmljZSBzdHJ1Y3R1cmVzIHRvIGJlIHVzZWQgd2l0 aCBkZXZfZGJnKCkgZXQgYWwgKi8NCiANCiBzdHJ1Y3QgZGV2aWNlX2RyaXZlciB4cGNfZGJnX25h bWUgPSB7DQpAQCAtMTA3OSw2ICsxMDgzLDkgQEAgeHBjX3N5c3RlbV9yZWJvb3Qoc3RydWN0IG5v dGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqdW51c2VkKQ0KIAly ZXR1cm4gTk9USUZZX0RPTkU7DQogfQ0KIA0KKy8qIFVzZWQgdG8gb25seSBhbGxvdyBvbmUgY3B1 IHRvIGNvbXBsZXRlIGRpc2Nvbm5lY3QgKi8NCitzdGF0aWMgdW5zaWduZWQgaW50IHhwY19kaWVf ZGlzY29ubmVjdGluZzsNCisNCiAvKg0KICAqIE5vdGlmeSBvdGhlciBwYXJ0aXRpb25zIHRvIGRl YWN0aXZhdGUgZnJvbSB1cyBieSBmaXJzdCBkaXNlbmdhZ2luZyBmcm9tIGFsbA0KICAqIHJlZmVy ZW5jZXMgdG8gb3VyIG1lbW9yeS4NCkBAIC0xMDkyLDYgKzEwOTksOSBAQCB4cGNfZGllX2RlYWN0 aXZhdGUodm9pZCkNCiAJbG9uZyBrZWVwX3dhaXRpbmc7DQogCWxvbmcgd2FpdF90b19wcmludDsN CiANCisJaWYgKGNtcHhjaGcoJnhwY19kaWVfZGlzY29ubmVjdGluZywgMCwgMSkpDQorCQlyZXR1 cm47DQorDQogCS8qIGtlZXAgeHBjX2hiX2NoZWNrZXIgdGhyZWFkIGZyb20gZG9pbmcgYW55dGhp bmcgKGp1c3QgaW4gY2FzZSkgKi8NCiAJeHBjX2V4aXRpbmcgPSAxOw0KIA0KQEAgLTExNTksNyAr MTE2OSw3IEBAIHhwY19kaWVfZGVhY3RpdmF0ZSh2b2lkKQ0KICAqIGFib3V0IHRoZSBsYWNrIG9m IGEgaGVhcnRiZWF0Lg0KICAqLw0KIHN0YXRpYyBpbnQNCi14cGNfc3lzdGVtX2RpZShzdHJ1Y3Qg bm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICp1bnVzZWQpDQor eHBjX3N5c3RlbV9kaWUoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBl dmVudCwgdm9pZCAqX2RpZV9hcmdzKQ0KIHsNCiAjaWZkZWYgQ09ORklHX0lBNjQJCS8qICEhISB0 ZW1wb3Jhcnkga2x1ZGdlICovDQogCXN3aXRjaCAoZXZlbnQpIHsNCkBAIC0xMTkxLDcgKzEyMDEs MjcgQEAgeHBjX3N5c3RlbV9kaWUoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQg bG9uZyBldmVudCwgdm9pZCAqdW51c2VkKQ0KIAkJYnJlYWs7DQogCX0NCiAjZWxzZQ0KLQl4cGNf ZGllX2RlYWN0aXZhdGUoKTsNCisJc3RydWN0IGRpZV9hcmdzICpkaWVfYXJncyA9IF9kaWVfYXJn czsNCisNCisJc3dpdGNoIChldmVudCkgew0KKwljYXNlIERJRV9UUkFQOg0KKwkJaWYgKGRpZV9h cmdzLT50cmFwbnIgPT0gWDg2X1RSQVBfREYpDQorCQkJeHBjX2RpZV9kZWFjdGl2YXRlKCk7DQor DQorCQlpZiAoKChkaWVfYXJncy0+dHJhcG5yID09IFg4Nl9UUkFQX01GKSB8fA0KKwkJICAgICAo ZGllX2FyZ3MtPnRyYXBuciA9PSBYODZfVFJBUF9YRikpICYmDQorCQkgICAgIXVzZXJfbW9kZV92 bShkaWVfYXJncy0+cmVncykpDQorCQkJeHBjX2RpZV9kZWFjdGl2YXRlKCk7DQorDQorCQlicmVh azsNCisJY2FzZSBESUVfSU5UMzoNCisJY2FzZSBESUVfREVCVUc6DQorCQlicmVhazsNCisJY2Fz ZSBESUVfT09QUzoNCisJY2FzZSBESUVfR1BGOg0KKwlkZWZhdWx0Og0KKwkJeHBjX2RpZV9kZWFj dGl2YXRlKCk7DQorCX0NCiAjZW5kaWYNCiANCiAJcmV0dXJuIE5PVElGWV9ET05FOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvc2hfbW1jaWYuYyBiL2RyaXZlcnMvbW1jL2hvc3Qvc2hf bW1jaWYuYw0KaW5kZXggNTU5ZDMwZC4uZDU1MDVmMyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbW1j L2hvc3Qvc2hfbW1jaWYuYw0KKysrIGIvZHJpdmVycy9tbWMvaG9zdC9zaF9tbWNpZi5jDQpAQCAt MTAwMywxMCArMTAwMyw2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBzaF9tbWNpZl9pbnRyKGludCBp cnEsIHZvaWQgKmRldl9pZCkNCiAJCWhvc3QtPnNkX2Vycm9yID0gdHJ1ZTsNCiAJCWRldl9kYmco Jmhvc3QtPnBkLT5kZXYsICJpbnQgZXJyIHN0YXRlID0gJTA4eFxuIiwgc3RhdGUpOw0KIAl9DQot CWlmIChob3N0LT5zdGF0ZSA9PSBTVEFURV9JRExFKSB7DQotCQlkZXZfaW5mbygmaG9zdC0+cGQt PmRldiwgIlNwdXJpb3VzIElSUSBzdGF0dXMgMHgleCIsIHN0YXRlKTsNCi0JCXJldHVybiBJUlFf SEFORExFRDsNCi0JfQ0KIAlpZiAoc3RhdGUgJiB+KElOVF9DTUQxMlJCRSB8IElOVF9DTUQxMkNS RSkpDQogCQljb21wbGV0ZSgmaG9zdC0+aW50cl93YWl0KTsNCiAJZWxzZQ0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbXRkL25hbmQvZ3BtaS1uYW5kL2dwbWktbGliLmMgYi9kcml2ZXJzL210ZC9uYW5k L2dwbWktbmFuZC9ncG1pLWxpYi5jDQppbmRleCBiYjJmZTYwLi4xZDAyZWM5IDEwMDY0NA0KLS0t IGEvZHJpdmVycy9tdGQvbmFuZC9ncG1pLW5hbmQvZ3BtaS1saWIuYw0KKysrIGIvZHJpdmVycy9t dGQvbmFuZC9ncG1pLW5hbmQvZ3BtaS1saWIuYw0KQEAgLTEzNSw2ICsxMzUsMTUgQEAgaW50IGdw bWlfaW5pdChzdHJ1Y3QgZ3BtaV9uYW5kX2RhdGEgKnRoaXMpDQogCWlmIChyZXQpDQogCQlnb3Rv IGVycl9vdXQ7DQogDQorCS8qDQorCSAqIFJlc2V0IEJDSCBoZXJlLCB0b28uIFdlIGdvdCBmYWls dXJlcyBvdGhlcndpc2UgOigNCisJICogU2VlIGxhdGVyIEJDSCByZXNldCBmb3IgZXhwbGFuYXRp b24gb2YgTVgyMyBoYW5kbGluZw0KKwkgKi8NCisJcmV0ID0gZ3BtaV9yZXNldF9ibG9jayhyLT5i Y2hfcmVncywgR1BNSV9JU19NWDIzKHRoaXMpKTsNCisJaWYgKHJldCkNCisJCWdvdG8gZXJyX291 dDsNCisNCisNCiAJLyogQ2hvb3NlIE5BTkQgbW9kZS4gKi8NCiAJd3JpdGVsKEJNX0dQTUlfQ1RS TDFfR1BNSV9NT0RFLCByLT5ncG1pX3JlZ3MgKyBIV19HUE1JX0NUUkwxX0NMUik7DQogDQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYyBiL2RyaXZlcnMvbmV0L2Jv bmRpbmcvYm9uZF9tYWluLmMNCmluZGV4IDZjMjg0ZDEuLjIwMmFlMzQgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jDQorKysgYi9kcml2ZXJzL25ldC9ib25kaW5n L2JvbmRfbWFpbi5jDQpAQCAtMTM2Niw2ICsxMzY2LDggQEAgc3RhdGljIHZvaWQgYm9uZF9jb21w dXRlX2ZlYXR1cmVzKHN0cnVjdCBib25kaW5nICpib25kKQ0KIAlzdHJ1Y3QgbmV0X2RldmljZSAq Ym9uZF9kZXYgPSBib25kLT5kZXY7DQogCXUzMiB2bGFuX2ZlYXR1cmVzID0gQk9ORF9WTEFOX0ZF QVRVUkVTOw0KIAl1bnNpZ25lZCBzaG9ydCBtYXhfaGFyZF9oZWFkZXJfbGVuID0gRVRIX0hMRU47 DQorCXVuc2lnbmVkIGludCBnc29fbWF4X3NpemUgPSBHU09fTUFYX1NJWkU7DQorCXUxNiBnc29f bWF4X3NlZ3MgPSBHU09fTUFYX1NFR1M7DQogCWludCBpOw0KIA0KIAlyZWFkX2xvY2soJmJvbmQt PmxvY2spOw0KQEAgLTEzNzksMTEgKzEzODEsMTYgQEAgc3RhdGljIHZvaWQgYm9uZF9jb21wdXRl X2ZlYXR1cmVzKHN0cnVjdCBib25kaW5nICpib25kKQ0KIA0KIAkJaWYgKHNsYXZlLT5kZXYtPmhh cmRfaGVhZGVyX2xlbiA+IG1heF9oYXJkX2hlYWRlcl9sZW4pDQogCQkJbWF4X2hhcmRfaGVhZGVy X2xlbiA9IHNsYXZlLT5kZXYtPmhhcmRfaGVhZGVyX2xlbjsNCisNCisJCWdzb19tYXhfc2l6ZSA9 IG1pbihnc29fbWF4X3NpemUsIHNsYXZlLT5kZXYtPmdzb19tYXhfc2l6ZSk7DQorCQlnc29fbWF4 X3NlZ3MgPSBtaW4oZ3NvX21heF9zZWdzLCBzbGF2ZS0+ZGV2LT5nc29fbWF4X3NlZ3MpOw0KIAl9 DQogDQogZG9uZToNCiAJYm9uZF9kZXYtPnZsYW5fZmVhdHVyZXMgPSB2bGFuX2ZlYXR1cmVzOw0K IAlib25kX2Rldi0+aGFyZF9oZWFkZXJfbGVuID0gbWF4X2hhcmRfaGVhZGVyX2xlbjsNCisJYm9u ZF9kZXYtPmdzb19tYXhfc2VncyA9IGdzb19tYXhfc2VnczsNCisJbmV0aWZfc2V0X2dzb19tYXhf c2l6ZShib25kX2RldiwgZ3NvX21heF9zaXplKTsNCiANCiAJcmVhZF91bmxvY2soJmJvbmQtPmxv Y2spOw0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9zeXNmcy5jIGIv ZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX3N5c2ZzLmMNCmluZGV4IDRlZjdlMmYuLmEwM2ZkZTkg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfc3lzZnMuYw0KKysrIGIvZHJp dmVycy9uZXQvYm9uZGluZy9ib25kX3N5c2ZzLmMNCkBAIC0xNTc5LDYgKzE1NzksNyBAQCBzdGF0 aWMgc3NpemVfdCBib25kaW5nX3N0b3JlX3NsYXZlc19hY3RpdmUoc3RydWN0IGRldmljZSAqZCwN CiAJCWdvdG8gb3V0Ow0KIAl9DQogDQorCXJlYWRfbG9jaygmYm9uZC0+bG9jayk7DQogCWJvbmRf Zm9yX2VhY2hfc2xhdmUoYm9uZCwgc2xhdmUsIGkpIHsNCiAJCWlmICghYm9uZF9pc19hY3RpdmVf c2xhdmUoc2xhdmUpKSB7DQogCQkJaWYgKG5ld192YWx1ZSkNCkBAIC0xNTg3LDYgKzE1ODgsNyBA QCBzdGF0aWMgc3NpemVfdCBib25kaW5nX3N0b3JlX3NsYXZlc19hY3RpdmUoc3RydWN0IGRldmlj ZSAqZCwNCiAJCQkJc2xhdmUtPmluYWN0aXZlID0gMTsNCiAJCX0NCiAJfQ0KKwlyZWFkX3VubG9j aygmYm9uZC0+bG9jayk7DQogb3V0Og0KIAlyZXR1cm4gcmV0Ow0KIH0NCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9jYW4vZGV2LmMgYi9kcml2ZXJzL25ldC9jYW4vZGV2LmMNCmluZGV4IDI1Njk1 YmQuLmEzMTkwNTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9jYW4vZGV2LmMNCisrKyBiL2Ry aXZlcnMvbmV0L2Nhbi9kZXYuYw0KQEAgLTU2OSw4ICs1NjksNyBAQCB2b2lkIGNsb3NlX2NhbmRl dihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQ0KIHsNCiAJc3RydWN0IGNhbl9wcml2ICpwcml2ID0g bmV0ZGV2X3ByaXYoZGV2KTsNCiANCi0JaWYgKGRlbF90aW1lcl9zeW5jKCZwcml2LT5yZXN0YXJ0 X3RpbWVyKSkNCi0JCWRldl9wdXQoZGV2KTsNCisJZGVsX3RpbWVyX3N5bmMoJnByaXYtPnJlc3Rh cnRfdGltZXIpOw0KIAljYW5fZmx1c2hfZWNob19za2IoZGV2KTsNCiB9DQogRVhQT1JUX1NZTUJP TF9HUEwoY2xvc2VfY2FuZGV2KTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC84 MzkwL25lLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL25lLmMNCmluZGV4IDEwNjMwOTMu LmU4ZWUyYmMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC84MzkwL25lLmMNCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0LzgzOTAvbmUuYw0KQEAgLTgxNCw2ICs4MTQsNyBAQCBz dGF0aWMgaW50IF9faW5pdCBuZV9kcnZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikNCiAJCWRldi0+aXJxID0gaXJxW3RoaXNfZGV2XTsNCiAJCWRldi0+bWVtX2VuZCA9IGJhZFt0 aGlzX2Rldl07DQogCX0NCisJU0VUX05FVERFVl9ERVYoZGV2LCAmcGRldi0+ZGV2KTsNCiAJZXJy ID0gZG9fbmVfcHJvYmUoZGV2KTsNCiAJaWYgKGVycikgew0KIAkJZnJlZV9uZXRkZXYoZGV2KTsN CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcmRhL3Npcl9kZXYuYyBiL2RyaXZlcnMvbmV0L2ly ZGEvc2lyX2Rldi5jDQppbmRleCA1MDM5ZjA4Li40M2U5YWI0IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvaXJkYS9zaXJfZGV2LmMNCisrKyBiL2RyaXZlcnMvbmV0L2lyZGEvc2lyX2Rldi5jDQpA QCAtMjIyLDcgKzIyMiw3IEBAIHN0YXRpYyB2b2lkIHNpcmRldl9jb25maWdfZnNtKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykNCiAJCQlicmVhazsNCiANCiAJCWNhc2UgU0lSREVWX1NUQVRFX0RP TkdMRV9TUEVFRDoNCi0JCQlpZiAoZGV2LT5kb25nbGVfZHJ2LT5yZXNldCkgew0KKwkJCWlmIChk ZXYtPmRvbmdsZV9kcnYtPnNldF9zcGVlZCkgew0KIAkJCQlyZXQgPSBkZXYtPmRvbmdsZV9kcnYt PnNldF9zcGVlZChkZXYsIGZzbS0+cGFyYW0pOw0KIAkJCQlpZiAocmV0IDwgMCkgew0KIAkJCQkJ ZnNtLT5yZXN1bHQgPSByZXQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL2lwaGV0aC5j IGIvZHJpdmVycy9uZXQvdXNiL2lwaGV0aC5jDQppbmRleCAwMGVkOWMxLi5hYzUzOTUyIDEwMDY0 NA0KLS0tIGEvZHJpdmVycy9uZXQvdXNiL2lwaGV0aC5jDQorKysgYi9kcml2ZXJzL25ldC91c2Iv aXBoZXRoLmMNCkBAIC02Miw2ICs2Miw3IEBADQogI2RlZmluZSBVU0JfUFJPRFVDVF9JUEFEIDB4 MTI5YQ0KICNkZWZpbmUgVVNCX1BST0RVQ1RfSVBIT05FXzRfVlpXIDB4MTI5Yw0KICNkZWZpbmUg VVNCX1BST0RVQ1RfSVBIT05FXzRTCTB4MTJhMA0KKyNkZWZpbmUgVVNCX1BST0RVQ1RfSVBIT05F XzUJMHgxMmE4DQogDQogI2RlZmluZSBJUEhFVEhfVVNCSU5URl9DTEFTUyAgICAyNTUNCiAjZGVm aW5lIElQSEVUSF9VU0JJTlRGX1NVQkNMQVNTIDI1Mw0KQEAgLTExMyw2ICsxMTQsMTAgQEAgc3Rh dGljIHN0cnVjdCB1c2JfZGV2aWNlX2lkIGlwaGV0aF90YWJsZVtdID0gew0KIAkJVVNCX1ZFTkRP Ul9BUFBMRSwgVVNCX1BST0RVQ1RfSVBIT05FXzRTLA0KIAkJSVBIRVRIX1VTQklOVEZfQ0xBU1Ms IElQSEVUSF9VU0JJTlRGX1NVQkNMQVNTLA0KIAkJSVBIRVRIX1VTQklOVEZfUFJPVE8pIH0sDQor CXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oDQorCQlVU0JfVkVORE9SX0FQUExFLCBV U0JfUFJPRFVDVF9JUEhPTkVfNSwNCisJCUlQSEVUSF9VU0JJTlRGX0NMQVNTLCBJUEhFVEhfVVNC SU5URl9TVUJDTEFTUywNCisJCUlQSEVUSF9VU0JJTlRGX1BST1RPKSB9LA0KIAl7IH0NCiB9Ow0K IE1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBpcGhldGhfdGFibGUpOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L3dpbWF4L2kyNDAwbS9pMjQwMG0tdXNiLmggYi9kcml2ZXJzL25ldC93aW1heC9p MjQwMG0vaTI0MDBtLXVzYi5oDQppbmRleCA2NjUwZmRlLi45ZjFlOTQ3IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9uZXQvd2ltYXgvaTI0MDBtL2kyNDAwbS11c2IuaA0KKysrIGIvZHJpdmVycy9uZXQv d2ltYXgvaTI0MDBtL2kyNDAwbS11c2IuaA0KQEAgLTE1Miw2ICsxNTIsOSBAQCBlbnVtIHsNCiAJ LyogRGV2aWNlIElEcyAqLw0KIAlVU0JfREVWSUNFX0lEX0k2MDUwID0gMHgwMTg2LA0KIAlVU0Jf REVWSUNFX0lEX0k2MDUwXzIgPSAweDAxODgsDQorCVVTQl9ERVZJQ0VfSURfSTYxNTAgPSAweDA3 ZDYsDQorCVVTQl9ERVZJQ0VfSURfSTYxNTBfMiA9IDB4MDdkNywNCisJVVNCX0RFVklDRV9JRF9J NjE1MF8zID0gMHgwN2Q5LA0KIAlVU0JfREVWSUNFX0lEX0k2MjUwID0gMHgwMTg3LA0KIH07DQog DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2ltYXgvaTI0MDBtL3VzYi5jIGIvZHJpdmVycy9u ZXQvd2ltYXgvaTI0MDBtL3VzYi5jDQppbmRleCAyYzFiOGI2Li42YmI3ZjNjIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9uZXQvd2ltYXgvaTI0MDBtL3VzYi5jDQorKysgYi9kcml2ZXJzL25ldC93aW1h eC9pMjQwMG0vdXNiLmMNCkBAIC00OTIsNiArNDkyLDkgQEAgaW50IGkyNDAwbXVfcHJvYmUoc3Ry dWN0IHVzYl9pbnRlcmZhY2UgKmlmYWNlLA0KIAlzd2l0Y2ggKGlkLT5pZFByb2R1Y3QpIHsNCiAJ Y2FzZSBVU0JfREVWSUNFX0lEX0k2MDUwOg0KIAljYXNlIFVTQl9ERVZJQ0VfSURfSTYwNTBfMjoN CisJY2FzZSBVU0JfREVWSUNFX0lEX0k2MTUwOg0KKwljYXNlIFVTQl9ERVZJQ0VfSURfSTYxNTBf MjoNCisJY2FzZSBVU0JfREVWSUNFX0lEX0k2MTUwXzM6DQogCWNhc2UgVVNCX0RFVklDRV9JRF9J NjI1MDoNCiAJCWkyNDAwbXUtPmk2MDUwID0gMTsNCiAJCWJyZWFrOw0KQEAgLTc0MSw2ICs3NDQs OSBAQCBzdGF0aWMNCiBzdHJ1Y3QgdXNiX2RldmljZV9pZCBpMjQwMG11X2lkX3RhYmxlW10gPSB7 DQogCXsgVVNCX0RFVklDRSgweDgwODYsIFVTQl9ERVZJQ0VfSURfSTYwNTApIH0sDQogCXsgVVNC X0RFVklDRSgweDgwODYsIFVTQl9ERVZJQ0VfSURfSTYwNTBfMikgfSwNCisJeyBVU0JfREVWSUNF KDB4ODA4NywgVVNCX0RFVklDRV9JRF9JNjE1MCkgfSwNCisJeyBVU0JfREVWSUNFKDB4ODA4Nywg VVNCX0RFVklDRV9JRF9JNjE1MF8yKSB9LA0KKwl7IFVTQl9ERVZJQ0UoMHg4MDg3LCBVU0JfREVW SUNFX0lEX0k2MTUwXzMpIH0sDQogCXsgVVNCX0RFVklDRSgweDgwODYsIFVTQl9ERVZJQ0VfSURf STYyNTApIH0sDQogCXsgVVNCX0RFVklDRSgweDgwODYsIDB4MDE4MSkgfSwNCiAJeyBVU0JfREVW SUNFKDB4ODA4NiwgMHgxNDAzKSB9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L2F0aC9hdGg5ay9hcjkwMDNfMnAyX2luaXR2YWxzLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9h dGgvYXRoOWsvYXI5MDAzXzJwMl9pbml0dmFscy5oDQppbmRleCBjYzU0MTUzLi40OThhM2MxIDEw MDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM18ycDJfaW5p dHZhbHMuaA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM18ycDJf aW5pdHZhbHMuaA0KQEAgLTgzNSw5OCArODM1LDk4IEBAIHN0YXRpYyBjb25zdCB1MzIgYXI5MzAw XzJwMl9iYXNlYmFuZF9jb3JlW11bMl0gPSB7DQogDQogc3RhdGljIGNvbnN0IHUzMiBhcjkzMDBN b2Rlc19oaWdoX3Bvd2VyX3R4X2dhaW5fdGFibGVfMnAyW11bNV0gPSB7DQogCS8qIEFkZHIgICAg ICA1R19IVDIwICAgICA1R19IVDQwICAgICAyR19IVDQwICAgICAyR19IVDIwICAgKi8NCi0JezB4 MDAwMGEyZGMsIDB4MDAwMzM4MDAsIDB4MDAwMzM4MDAsIDB4MDNhYWEzNTIsIDB4MDNhYWEzNTJ9 LA0KLQl7MHgwMDAwYTJlMCwgMHgwMDAzYzAwMCwgMHgwMDAzYzAwMCwgMHgwM2NjYzU4NCwgMHgw M2NjYzU4NH0sDQotCXsweDAwMDBhMmU0LCAweDAzZmMwMDAwLCAweDAzZmMwMDAwLCAweDAzZjBm ODAwLCAweDAzZjBmODAwfSwNCisJezB4MDAwMGEyZGMsIDB4MDM4MGM3ZmMsIDB4MDM4MGM3ZmMs IDB4MDNhYWEzNTIsIDB4MDNhYWEzNTJ9LA0KKwl7MHgwMDAwYTJlMCwgMHgwMDAwZjgwMCwgMHgw MDAwZjgwMCwgMHgwM2NjYzU4NCwgMHgwM2NjYzU4NH0sDQorCXsweDAwMDBhMmU0LCAweDAzZmYw MDAwLCAweDAzZmYwMDAwLCAweDAzZjBmODAwLCAweDAzZjBmODAwfSwNCiAJezB4MDAwMGEyZTgs IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDNmZjAwMDAsIDB4MDNmZjAwMDB9LA0KLQl7MHgw MDAwYTQxMCwgMHgwMDAwNTBkOSwgMHgwMDAwNTBkOSwgMHgwMDAwNTBkOSwgMHgwMDAwNTBkOX0s DQotCXsweDAwMDBhNTAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAw MDAwMDAwfSwNCi0JezB4MDAwMGE1MDQsIDB4MDYwMDAwMDMsIDB4MDYwMDAwMDMsIDB4MDQwMDAw MDIsIDB4MDQwMDAwMDJ9LA0KLQl7MHgwMDAwYTUwOCwgMHgwYTAwMDAyMCwgMHgwYTAwMDAyMCwg MHgwODAwMDAwNCwgMHgwODAwMDAwNH0sDQotCXsweDAwMDBhNTBjLCAweDEwMDAwMDIzLCAweDEw MDAwMDIzLCAweDBiMDAwMjAwLCAweDBiMDAwMjAwfSwNCi0JezB4MDAwMGE1MTAsIDB4MTYwMDAy MjAsIDB4MTYwMDAyMjAsIDB4MGYwMDAyMDIsIDB4MGYwMDAyMDJ9LA0KLQl7MHgwMDAwYTUxNCwg MHgxYzAwMDIyMywgMHgxYzAwMDIyMywgMHgxMjAwMDQwMCwgMHgxMjAwMDQwMH0sDQotCXsweDAw MDBhNTE4LCAweDIxMDAyMjIwLCAweDIxMDAyMjIwLCAweDE2MDAwNDAyLCAweDE2MDAwNDAyfSwN Ci0JezB4MDAwMGE1MWMsIDB4MjcwMDIyMjMsIDB4MjcwMDIyMjMsIDB4MTkwMDA0MDQsIDB4MTkw MDA0MDR9LA0KLQl7MHgwMDAwYTUyMCwgMHgyYjAyMjIyMCwgMHgyYjAyMjIyMCwgMHgxYzAwMDYw MywgMHgxYzAwMDYwM30sDQotCXsweDAwMDBhNTI0LCAweDJmMDIyMjIyLCAweDJmMDIyMjIyLCAw eDIxMDAwYTAyLCAweDIxMDAwYTAyfSwNCi0JezB4MDAwMGE1MjgsIDB4MzQwMjIyMjUsIDB4MzQw MjIyMjUsIDB4MjUwMDBhMDQsIDB4MjUwMDBhMDR9LA0KLQl7MHgwMDAwYTUyYywgMHgzYTAyMjIy YSwgMHgzYTAyMjIyYSwgMHgyODAwMGEyMCwgMHgyODAwMGEyMH0sDQotCXsweDAwMDBhNTMwLCAw eDNlMDIyMjJjLCAweDNlMDIyMjJjLCAweDJjMDAwZTIwLCAweDJjMDAwZTIwfSwNCi0JezB4MDAw MGE1MzQsIDB4NDIwMjI0MmEsIDB4NDIwMjI0MmEsIDB4MzAwMDBlMjIsIDB4MzAwMDBlMjJ9LA0K LQl7MHgwMDAwYTUzOCwgMHg0NzAyMjQ0YSwgMHg0NzAyMjQ0YSwgMHgzNDAwMGUyNCwgMHgzNDAw MGUyNH0sDQotCXsweDAwMDBhNTNjLCAweDRiMDIyNDRjLCAweDRiMDIyNDRjLCAweDM4MDAxNjQw LCAweDM4MDAxNjQwfSwNCi0JezB4MDAwMGE1NDAsIDB4NGUwMjI0NmMsIDB4NGUwMjI0NmMsIDB4 M2MwMDE2NjAsIDB4M2MwMDE2NjB9LA0KLQl7MHgwMDAwYTU0NCwgMHg1MjAyMjQ3MCwgMHg1MjAy MjQ3MCwgMHgzZjAwMTg2MSwgMHgzZjAwMTg2MX0sDQotCXsweDAwMDBhNTQ4LCAweDU1MDIyNDkw LCAweDU1MDIyNDkwLCAweDQzMDAxYTgxLCAweDQzMDAxYTgxfSwNCi0JezB4MDAwMGE1NGMsIDB4 NTkwMjI0OTIsIDB4NTkwMjI0OTIsIDB4NDcwMDFhODMsIDB4NDcwMDFhODN9LA0KLQl7MHgwMDAw YTU1MCwgMHg1ZDAyMjY5MiwgMHg1ZDAyMjY5MiwgMHg0YTAwMWM4NCwgMHg0YTAwMWM4NH0sDQot CXsweDAwMDBhNTU0LCAweDYxMDIyODkyLCAweDYxMDIyODkyLCAweDRlMDAxY2UzLCAweDRlMDAx Y2UzfSwNCi0JezB4MDAwMGE1NTgsIDB4NjUwMjQ4OTAsIDB4NjUwMjQ4OTAsIDB4NTIwMDFjZTUs IDB4NTIwMDFjZTV9LA0KLQl7MHgwMDAwYTU1YywgMHg2OTAyNDg5MiwgMHg2OTAyNDg5MiwgMHg1 NjAwMWNlOSwgMHg1NjAwMWNlOX0sDQotCXsweDAwMDBhNTYwLCAweDZlMDI0YzkyLCAweDZlMDI0 YzkyLCAweDVhMDAxY2ViLCAweDVhMDAxY2VifSwNCi0JezB4MDAwMGE1NjQsIDB4NzQwMjZlOTIs IDB4NzQwMjZlOTIsIDB4NWQwMDFlZWMsIDB4NWQwMDFlZWN9LA0KLQl7MHgwMDAwYTU2OCwgMHg3 NDAyNmU5MiwgMHg3NDAyNmU5MiwgMHg1ZDAwMWVlYywgMHg1ZDAwMWVlY30sDQotCXsweDAwMDBh NTZjLCAweDc0MDI2ZTkyLCAweDc0MDI2ZTkyLCAweDVkMDAxZWVjLCAweDVkMDAxZWVjfSwNCi0J ezB4MDAwMGE1NzAsIDB4NzQwMjZlOTIsIDB4NzQwMjZlOTIsIDB4NWQwMDFlZWMsIDB4NWQwMDFl ZWN9LA0KLQl7MHgwMDAwYTU3NCwgMHg3NDAyNmU5MiwgMHg3NDAyNmU5MiwgMHg1ZDAwMWVlYywg MHg1ZDAwMWVlY30sDQotCXsweDAwMDBhNTc4LCAweDc0MDI2ZTkyLCAweDc0MDI2ZTkyLCAweDVk MDAxZWVjLCAweDVkMDAxZWVjfSwNCi0JezB4MDAwMGE1N2MsIDB4NzQwMjZlOTIsIDB4NzQwMjZl OTIsIDB4NWQwMDFlZWMsIDB4NWQwMDFlZWN9LA0KLQl7MHgwMDAwYTU4MCwgMHgwMDgwMDAwMCwg MHgwMDgwMDAwMCwgMHgwMDgwMDAwMCwgMHgwMDgwMDAwMH0sDQotCXsweDAwMDBhNTg0LCAweDA2 ODAwMDAzLCAweDA2ODAwMDAzLCAweDA0ODAwMDAyLCAweDA0ODAwMDAyfSwNCi0JezB4MDAwMGE1 ODgsIDB4MGE4MDAwMjAsIDB4MGE4MDAwMjAsIDB4MDg4MDAwMDQsIDB4MDg4MDAwMDR9LA0KLQl7 MHgwMDAwYTU4YywgMHgxMDgwMDAyMywgMHgxMDgwMDAyMywgMHgwYjgwMDIwMCwgMHgwYjgwMDIw MH0sDQotCXsweDAwMDBhNTkwLCAweDE2ODAwMjIwLCAweDE2ODAwMjIwLCAweDBmODAwMjAyLCAw eDBmODAwMjAyfSwNCi0JezB4MDAwMGE1OTQsIDB4MWM4MDAyMjMsIDB4MWM4MDAyMjMsIDB4MTI4 MDA0MDAsIDB4MTI4MDA0MDB9LA0KLQl7MHgwMDAwYTU5OCwgMHgyMTgwMjIyMCwgMHgyMTgwMjIy MCwgMHgxNjgwMDQwMiwgMHgxNjgwMDQwMn0sDQotCXsweDAwMDBhNTljLCAweDI3ODAyMjIzLCAw eDI3ODAyMjIzLCAweDE5ODAwNDA0LCAweDE5ODAwNDA0fSwNCi0JezB4MDAwMGE1YTAsIDB4MmI4 MjIyMjAsIDB4MmI4MjIyMjAsIDB4MWM4MDA2MDMsIDB4MWM4MDA2MDN9LA0KLQl7MHgwMDAwYTVh NCwgMHgyZjgyMjIyMiwgMHgyZjgyMjIyMiwgMHgyMTgwMGEwMiwgMHgyMTgwMGEwMn0sDQotCXsw eDAwMDBhNWE4LCAweDM0ODIyMjI1LCAweDM0ODIyMjI1LCAweDI1ODAwYTA0LCAweDI1ODAwYTA0 fSwNCi0JezB4MDAwMGE1YWMsIDB4M2E4MjIyMmEsIDB4M2E4MjIyMmEsIDB4Mjg4MDBhMjAsIDB4 Mjg4MDBhMjB9LA0KLQl7MHgwMDAwYTViMCwgMHgzZTgyMjIyYywgMHgzZTgyMjIyYywgMHgyYzgw MGUyMCwgMHgyYzgwMGUyMH0sDQotCXsweDAwMDBhNWI0LCAweDQyODIyNDJhLCAweDQyODIyNDJh LCAweDMwODAwZTIyLCAweDMwODAwZTIyfSwNCi0JezB4MDAwMGE1YjgsIDB4NDc4MjI0NGEsIDB4 NDc4MjI0NGEsIDB4MzQ4MDBlMjQsIDB4MzQ4MDBlMjR9LA0KLQl7MHgwMDAwYTViYywgMHg0Yjgy MjQ0YywgMHg0YjgyMjQ0YywgMHgzODgwMTY0MCwgMHgzODgwMTY0MH0sDQotCXsweDAwMDBhNWMw LCAweDRlODIyNDZjLCAweDRlODIyNDZjLCAweDNjODAxNjYwLCAweDNjODAxNjYwfSwNCi0JezB4 MDAwMGE1YzQsIDB4NTI4MjI0NzAsIDB4NTI4MjI0NzAsIDB4M2Y4MDE4NjEsIDB4M2Y4MDE4NjF9 LA0KLQl7MHgwMDAwYTVjOCwgMHg1NTgyMjQ5MCwgMHg1NTgyMjQ5MCwgMHg0MzgwMWE4MSwgMHg0 MzgwMWE4MX0sDQotCXsweDAwMDBhNWNjLCAweDU5ODIyNDkyLCAweDU5ODIyNDkyLCAweDQ3ODAx YTgzLCAweDQ3ODAxYTgzfSwNCi0JezB4MDAwMGE1ZDAsIDB4NWQ4MjI2OTIsIDB4NWQ4MjI2OTIs IDB4NGE4MDFjODQsIDB4NGE4MDFjODR9LA0KLQl7MHgwMDAwYTVkNCwgMHg2MTgyMjg5MiwgMHg2 MTgyMjg5MiwgMHg0ZTgwMWNlMywgMHg0ZTgwMWNlM30sDQotCXsweDAwMDBhNWQ4LCAweDY1ODI0 ODkwLCAweDY1ODI0ODkwLCAweDUyODAxY2U1LCAweDUyODAxY2U1fSwNCi0JezB4MDAwMGE1ZGMs IDB4Njk4MjQ4OTIsIDB4Njk4MjQ4OTIsIDB4NTY4MDFjZTksIDB4NTY4MDFjZTl9LA0KLQl7MHgw MDAwYTVlMCwgMHg2ZTgyNGM5MiwgMHg2ZTgyNGM5MiwgMHg1YTgwMWNlYiwgMHg1YTgwMWNlYn0s DQotCXsweDAwMDBhNWU0LCAweDc0ODI2ZTkyLCAweDc0ODI2ZTkyLCAweDVkODAxZWVjLCAweDVk ODAxZWVjfSwNCi0JezB4MDAwMGE1ZTgsIDB4NzQ4MjZlOTIsIDB4NzQ4MjZlOTIsIDB4NWQ4MDFl ZWMsIDB4NWQ4MDFlZWN9LA0KLQl7MHgwMDAwYTVlYywgMHg3NDgyNmU5MiwgMHg3NDgyNmU5Miwg MHg1ZDgwMWVlYywgMHg1ZDgwMWVlY30sDQotCXsweDAwMDBhNWYwLCAweDc0ODI2ZTkyLCAweDc0 ODI2ZTkyLCAweDVkODAxZWVjLCAweDVkODAxZWVjfSwNCi0JezB4MDAwMGE1ZjQsIDB4NzQ4MjZl OTIsIDB4NzQ4MjZlOTIsIDB4NWQ4MDFlZWMsIDB4NWQ4MDFlZWN9LA0KLQl7MHgwMDAwYTVmOCwg MHg3NDgyNmU5MiwgMHg3NDgyNmU5MiwgMHg1ZDgwMWVlYywgMHg1ZDgwMWVlY30sDQotCXsweDAw MDBhNWZjLCAweDc0ODI2ZTkyLCAweDc0ODI2ZTkyLCAweDVkODAxZWVjLCAweDVkODAxZWVjfSwN CisJezB4MDAwMGE0MTAsIDB4MDAwMDUwZDgsIDB4MDAwMDUwZDgsIDB4MDAwMDUwZDksIDB4MDAw MDUwZDl9LA0KKwl7MHgwMDAwYTUwMCwgMHgwMDAwMjIyMCwgMHgwMDAwMjIyMCwgMHgwMDAwMDAw MCwgMHgwMDAwMDAwMH0sDQorCXsweDAwMDBhNTA0LCAweDA0MDAyMjIyLCAweDA0MDAyMjIyLCAw eDA0MDAwMDAyLCAweDA0MDAwMDAyfSwNCisJezB4MDAwMGE1MDgsIDB4MDkwMDI0MjEsIDB4MDkw MDI0MjEsIDB4MDgwMDAwMDQsIDB4MDgwMDAwMDR9LA0KKwl7MHgwMDAwYTUwYywgMHgwZDAwMjYy MSwgMHgwZDAwMjYyMSwgMHgwYjAwMDIwMCwgMHgwYjAwMDIwMH0sDQorCXsweDAwMDBhNTEwLCAw eDEzMDA0NjIwLCAweDEzMDA0NjIwLCAweDBmMDAwMjAyLCAweDBmMDAwMjAyfSwNCisJezB4MDAw MGE1MTQsIDB4MTkwMDRhMjAsIDB4MTkwMDRhMjAsIDB4MTEwMDA0MDAsIDB4MTEwMDA0MDB9LA0K Kwl7MHgwMDAwYTUxOCwgMHgxZDAwNGUyMCwgMHgxZDAwNGUyMCwgMHgxNTAwMDQwMiwgMHgxNTAw MDQwMn0sDQorCXsweDAwMDBhNTFjLCAweDIxMDA1NDIwLCAweDIxMDA1NDIwLCAweDE5MDAwNDA0 LCAweDE5MDAwNDA0fSwNCisJezB4MDAwMGE1MjAsIDB4MjYwMDVlMjAsIDB4MjYwMDVlMjAsIDB4 MWIwMDA2MDMsIDB4MWIwMDA2MDN9LA0KKwl7MHgwMDAwYTUyNCwgMHgyYjAwNWU0MCwgMHgyYjAw NWU0MCwgMHgxZjAwMGEwMiwgMHgxZjAwMGEwMn0sDQorCXsweDAwMDBhNTI4LCAweDJmMDA1ZTQy LCAweDJmMDA1ZTQyLCAweDIzMDAwYTA0LCAweDIzMDAwYTA0fSwNCisJezB4MDAwMGE1MmMsIDB4 MzMwMDVlNDQsIDB4MzMwMDVlNDQsIDB4MjYwMDBhMjAsIDB4MjYwMDBhMjB9LA0KKwl7MHgwMDAw YTUzMCwgMHgzODAwNWU2NSwgMHgzODAwNWU2NSwgMHgyYTAwMGUyMCwgMHgyYTAwMGUyMH0sDQor CXsweDAwMDBhNTM0LCAweDNjMDA1ZTY5LCAweDNjMDA1ZTY5LCAweDJlMDAwZTIyLCAweDJlMDAw ZTIyfSwNCisJezB4MDAwMGE1MzgsIDB4NDAwMDVlNmIsIDB4NDAwMDVlNmIsIDB4MzEwMDBlMjQs IDB4MzEwMDBlMjR9LA0KKwl7MHgwMDAwYTUzYywgMHg0NDAwNWU2ZCwgMHg0NDAwNWU2ZCwgMHgz NDAwMTY0MCwgMHgzNDAwMTY0MH0sDQorCXsweDAwMDBhNTQwLCAweDQ5MDA1ZTcyLCAweDQ5MDA1 ZTcyLCAweDM4MDAxNjYwLCAweDM4MDAxNjYwfSwNCisJezB4MDAwMGE1NDQsIDB4NGUwMDVlYjIs IDB4NGUwMDVlYjIsIDB4M2IwMDE4NjEsIDB4M2IwMDE4NjF9LA0KKwl7MHgwMDAwYTU0OCwgMHg1 MzAwNWYxMiwgMHg1MzAwNWYxMiwgMHgzZTAwMWE4MSwgMHgzZTAwMWE4MX0sDQorCXsweDAwMDBh NTRjLCAweDU5MDI1ZWIyLCAweDU5MDI1ZWIyLCAweDQyMDAxYTgzLCAweDQyMDAxYTgzfSwNCisJ ezB4MDAwMGE1NTAsIDB4NWUwMjVmMTIsIDB4NWUwMjVmMTIsIDB4NDQwMDFjODQsIDB4NDQwMDFj ODR9LA0KKwl7MHgwMDAwYTU1NCwgMHg2MTAyN2YxMiwgMHg2MTAyN2YxMiwgMHg0ODAwMWNlMywg MHg0ODAwMWNlM30sDQorCXsweDAwMDBhNTU4LCAweDY3MDJiZjEyLCAweDY3MDJiZjEyLCAweDRj MDAxY2U1LCAweDRjMDAxY2U1fSwNCisJezB4MDAwMGE1NWMsIDB4NmIwMmJmMTQsIDB4NmIwMmJm MTQsIDB4NTAwMDFjZTksIDB4NTAwMDFjZTl9LA0KKwl7MHgwMDAwYTU2MCwgMHg2ZjAyYmYxNiwg MHg2ZjAyYmYxNiwgMHg1NDAwMWNlYiwgMHg1NDAwMWNlYn0sDQorCXsweDAwMDBhNTY0LCAweDZm MDJiZjE2LCAweDZmMDJiZjE2LCAweDU2MDAxZWVjLCAweDU2MDAxZWVjfSwNCisJezB4MDAwMGE1 NjgsIDB4NmYwMmJmMTYsIDB4NmYwMmJmMTYsIDB4NTYwMDFlZWMsIDB4NTYwMDFlZWN9LA0KKwl7 MHgwMDAwYTU2YywgMHg2ZjAyYmYxNiwgMHg2ZjAyYmYxNiwgMHg1NjAwMWVlYywgMHg1NjAwMWVl Y30sDQorCXsweDAwMDBhNTcwLCAweDZmMDJiZjE2LCAweDZmMDJiZjE2LCAweDU2MDAxZWVjLCAw eDU2MDAxZWVjfSwNCisJezB4MDAwMGE1NzQsIDB4NmYwMmJmMTYsIDB4NmYwMmJmMTYsIDB4NTYw MDFlZWMsIDB4NTYwMDFlZWN9LA0KKwl7MHgwMDAwYTU3OCwgMHg2ZjAyYmYxNiwgMHg2ZjAyYmYx NiwgMHg1NjAwMWVlYywgMHg1NjAwMWVlY30sDQorCXsweDAwMDBhNTdjLCAweDZmMDJiZjE2LCAw eDZmMDJiZjE2LCAweDU2MDAxZWVjLCAweDU2MDAxZWVjfSwNCisJezB4MDAwMGE1ODAsIDB4MDA4 MDIyMjAsIDB4MDA4MDIyMjAsIDB4MDA4MDAwMDAsIDB4MDA4MDAwMDB9LA0KKwl7MHgwMDAwYTU4 NCwgMHgwNDgwMjIyMiwgMHgwNDgwMjIyMiwgMHgwNDgwMDAwMiwgMHgwNDgwMDAwMn0sDQorCXsw eDAwMDBhNTg4LCAweDA5ODAyNDIxLCAweDA5ODAyNDIxLCAweDA4ODAwMDA0LCAweDA4ODAwMDA0 fSwNCisJezB4MDAwMGE1OGMsIDB4MGQ4MDI2MjEsIDB4MGQ4MDI2MjEsIDB4MGI4MDAyMDAsIDB4 MGI4MDAyMDB9LA0KKwl7MHgwMDAwYTU5MCwgMHgxMzgwNDYyMCwgMHgxMzgwNDYyMCwgMHgwZjgw MDIwMiwgMHgwZjgwMDIwMn0sDQorCXsweDAwMDBhNTk0LCAweDE5ODA0YTIwLCAweDE5ODA0YTIw LCAweDExODAwNDAwLCAweDExODAwNDAwfSwNCisJezB4MDAwMGE1OTgsIDB4MWQ4MDRlMjAsIDB4 MWQ4MDRlMjAsIDB4MTU4MDA0MDIsIDB4MTU4MDA0MDJ9LA0KKwl7MHgwMDAwYTU5YywgMHgyMTgw NTQyMCwgMHgyMTgwNTQyMCwgMHgxOTgwMDQwNCwgMHgxOTgwMDQwNH0sDQorCXsweDAwMDBhNWEw LCAweDI2ODA1ZTIwLCAweDI2ODA1ZTIwLCAweDFiODAwNjAzLCAweDFiODAwNjAzfSwNCisJezB4 MDAwMGE1YTQsIDB4MmI4MDVlNDAsIDB4MmI4MDVlNDAsIDB4MWY4MDBhMDIsIDB4MWY4MDBhMDJ9 LA0KKwl7MHgwMDAwYTVhOCwgMHgyZjgwNWU0MiwgMHgyZjgwNWU0MiwgMHgyMzgwMGEwNCwgMHgy MzgwMGEwNH0sDQorCXsweDAwMDBhNWFjLCAweDMzODA1ZTQ0LCAweDMzODA1ZTQ0LCAweDI2ODAw YTIwLCAweDI2ODAwYTIwfSwNCisJezB4MDAwMGE1YjAsIDB4Mzg4MDVlNjUsIDB4Mzg4MDVlNjUs IDB4MmE4MDBlMjAsIDB4MmE4MDBlMjB9LA0KKwl7MHgwMDAwYTViNCwgMHgzYzgwNWU2OSwgMHgz YzgwNWU2OSwgMHgyZTgwMGUyMiwgMHgyZTgwMGUyMn0sDQorCXsweDAwMDBhNWI4LCAweDQwODA1 ZTZiLCAweDQwODA1ZTZiLCAweDMxODAwZTI0LCAweDMxODAwZTI0fSwNCisJezB4MDAwMGE1YmMs IDB4NDQ4MDVlNmQsIDB4NDQ4MDVlNmQsIDB4MzQ4MDE2NDAsIDB4MzQ4MDE2NDB9LA0KKwl7MHgw MDAwYTVjMCwgMHg0OTgwNWU3MiwgMHg0OTgwNWU3MiwgMHgzODgwMTY2MCwgMHgzODgwMTY2MH0s DQorCXsweDAwMDBhNWM0LCAweDRlODA1ZWIyLCAweDRlODA1ZWIyLCAweDNiODAxODYxLCAweDNi ODAxODYxfSwNCisJezB4MDAwMGE1YzgsIDB4NTM4MDVmMTIsIDB4NTM4MDVmMTIsIDB4M2U4MDFh ODEsIDB4M2U4MDFhODF9LA0KKwl7MHgwMDAwYTVjYywgMHg1OTgyNWViMiwgMHg1OTgyNWViMiwg MHg0MjgwMWE4MywgMHg0MjgwMWE4M30sDQorCXsweDAwMDBhNWQwLCAweDVlODI1ZjEyLCAweDVl ODI1ZjEyLCAweDQ0ODAxYzg0LCAweDQ0ODAxYzg0fSwNCisJezB4MDAwMGE1ZDQsIDB4NjE4Mjdm MTIsIDB4NjE4MjdmMTIsIDB4NDg4MDFjZTMsIDB4NDg4MDFjZTN9LA0KKwl7MHgwMDAwYTVkOCwg MHg2NzgyYmYxMiwgMHg2NzgyYmYxMiwgMHg0YzgwMWNlNSwgMHg0YzgwMWNlNX0sDQorCXsweDAw MDBhNWRjLCAweDZiODJiZjE0LCAweDZiODJiZjE0LCAweDUwODAxY2U5LCAweDUwODAxY2U5fSwN CisJezB4MDAwMGE1ZTAsIDB4NmY4MmJmMTYsIDB4NmY4MmJmMTYsIDB4NTQ4MDFjZWIsIDB4NTQ4 MDFjZWJ9LA0KKwl7MHgwMDAwYTVlNCwgMHg2ZjgyYmYxNiwgMHg2ZjgyYmYxNiwgMHg1NjgwMWVl YywgMHg1NjgwMWVlY30sDQorCXsweDAwMDBhNWU4LCAweDZmODJiZjE2LCAweDZmODJiZjE2LCAw eDU2ODAxZWVjLCAweDU2ODAxZWVjfSwNCisJezB4MDAwMGE1ZWMsIDB4NmY4MmJmMTYsIDB4NmY4 MmJmMTYsIDB4NTY4MDFlZWMsIDB4NTY4MDFlZWN9LA0KKwl7MHgwMDAwYTVmMCwgMHg2ZjgyYmYx NiwgMHg2ZjgyYmYxNiwgMHg1NjgwMWVlYywgMHg1NjgwMWVlY30sDQorCXsweDAwMDBhNWY0LCAw eDZmODJiZjE2LCAweDZmODJiZjE2LCAweDU2ODAxZWVjLCAweDU2ODAxZWVjfSwNCisJezB4MDAw MGE1ZjgsIDB4NmY4MmJmMTYsIDB4NmY4MmJmMTYsIDB4NTY4MDFlZWMsIDB4NTY4MDFlZWN9LA0K Kwl7MHgwMDAwYTVmYywgMHg2ZjgyYmYxNiwgMHg2ZjgyYmYxNiwgMHg1NjgwMWVlYywgMHg1Njgw MWVlY30sDQogCXsweDAwMDBhNjAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwfSwNCiAJezB4MDAwMGE2MDQsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDB9LA0KIAl7MHgwMDAwYTYwOCwgMHgwMDAwMDAwMCwgMHgwMDAw MDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMH0sDQogCXsweDAwMDBhNjBjLCAweDAwMDAwMDAw LCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwfSwNCi0JezB4MDAwMGE2MTAsIDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDB9LA0KLQl7MHgwMDAw YTYxNCwgMHgwMjAwNDAwMCwgMHgwMjAwNDAwMCwgMHgwMTQwNDAwMCwgMHgwMTQwNDAwMH0sDQot CXsweDAwMDBhNjE4LCAweDAyMDA0ODAxLCAweDAyMDA0ODAxLCAweDAxNDA0NTAxLCAweDAxNDA0 NTAxfSwNCi0JezB4MDAwMGE2MWMsIDB4MDI4MDhhMDIsIDB4MDI4MDhhMDIsIDB4MDIwMDg1MDEs IDB4MDIwMDg1MDF9LA0KLQl7MHgwMDAwYTYyMCwgMHgwMzgwY2UwMywgMHgwMzgwY2UwMywgMHgw MjgwY2EwMywgMHgwMjgwY2EwM30sDQotCXsweDAwMDBhNjI0LCAweDA0NDExMTA0LCAweDA0NDEx MTA0LCAweDAzMDEwYzA0LCAweDAzMDEwYzA0fSwNCi0JezB4MDAwMGE2MjgsIDB4MDQ0MTExMDQs IDB4MDQ0MTExMDQsIDB4MDQwMTRjMDQsIDB4MDQwMTRjMDR9LA0KLQl7MHgwMDAwYTYyYywgMHgw NDQxMTEwNCwgMHgwNDQxMTEwNCwgMHgwNDAxNTAwNSwgMHgwNDAxNTAwNX0sDQotCXsweDAwMDBh NjMwLCAweDA0NDExMTA0LCAweDA0NDExMTA0LCAweDA0MDE1MDA1LCAweDA0MDE1MDA1fSwNCi0J ezB4MDAwMGE2MzQsIDB4MDQ0MTExMDQsIDB4MDQ0MTExMDQsIDB4MDQwMTUwMDUsIDB4MDQwMTUw MDV9LA0KLQl7MHgwMDAwYTYzOCwgMHgwNDQxMTEwNCwgMHgwNDQxMTEwNCwgMHgwNDAxNTAwNSwg MHgwNDAxNTAwNX0sDQotCXsweDAwMDBhNjNjLCAweDA0NDExMTA0LCAweDA0NDExMTA0LCAweDA0 MDE1MDA1LCAweDA0MDE1MDA1fSwNCi0JezB4MDAwMGIyZGMsIDB4MDAwMzM4MDAsIDB4MDAwMzM4 MDAsIDB4MDNhYWEzNTIsIDB4MDNhYWEzNTJ9LA0KLQl7MHgwMDAwYjJlMCwgMHgwMDAzYzAwMCwg MHgwMDAzYzAwMCwgMHgwM2NjYzU4NCwgMHgwM2NjYzU4NH0sDQotCXsweDAwMDBiMmU0LCAweDAz ZmMwMDAwLCAweDAzZmMwMDAwLCAweDAzZjBmODAwLCAweDAzZjBmODAwfSwNCisJezB4MDAwMGE2 MTAsIDB4MDA4MDQwMDAsIDB4MDA4MDQwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDB9LA0KKwl7 MHgwMDAwYTYxNCwgMHgwMDgwNDIwMSwgMHgwMDgwNDIwMSwgMHgwMTQwNDAwMCwgMHgwMTQwNDAw MH0sDQorCXsweDAwMDBhNjE4LCAweDAyODBjODAyLCAweDAyODBjODAyLCAweDAxNDA0NTAxLCAw eDAxNDA0NTAxfSwNCisJezB4MDAwMGE2MWMsIDB4MDI4MGNhMDMsIDB4MDI4MGNhMDMsIDB4MDIw MDg1MDEsIDB4MDIwMDg1MDF9LA0KKwl7MHgwMDAwYTYyMCwgMHgwNGMxNTEwNCwgMHgwNGMxNTEw NCwgMHgwMjgwY2EwMywgMHgwMjgwY2EwM30sDQorCXsweDAwMDBhNjI0LCAweDA0YzE1MzA1LCAw eDA0YzE1MzA1LCAweDAzMDEwYzA0LCAweDAzMDEwYzA0fSwNCisJezB4MDAwMGE2MjgsIDB4MDRj MTUzMDUsIDB4MDRjMTUzMDUsIDB4MDQwMTRjMDQsIDB4MDQwMTRjMDR9LA0KKwl7MHgwMDAwYTYy YywgMHgwNGMxNTMwNSwgMHgwNGMxNTMwNSwgMHgwNDAxNTAwNSwgMHgwNDAxNTAwNX0sDQorCXsw eDAwMDBhNjMwLCAweDA0YzE1MzA1LCAweDA0YzE1MzA1LCAweDA0MDE1MDA1LCAweDA0MDE1MDA1 fSwNCisJezB4MDAwMGE2MzQsIDB4MDRjMTUzMDUsIDB4MDRjMTUzMDUsIDB4MDQwMTUwMDUsIDB4 MDQwMTUwMDV9LA0KKwl7MHgwMDAwYTYzOCwgMHgwNGMxNTMwNSwgMHgwNGMxNTMwNSwgMHgwNDAx NTAwNSwgMHgwNDAxNTAwNX0sDQorCXsweDAwMDBhNjNjLCAweDA0YzE1MzA1LCAweDA0YzE1MzA1 LCAweDA0MDE1MDA1LCAweDA0MDE1MDA1fSwNCisJezB4MDAwMGIyZGMsIDB4MDM4MGM3ZmMsIDB4 MDM4MGM3ZmMsIDB4MDNhYWEzNTIsIDB4MDNhYWEzNTJ9LA0KKwl7MHgwMDAwYjJlMCwgMHgwMDAw ZjgwMCwgMHgwMDAwZjgwMCwgMHgwM2NjYzU4NCwgMHgwM2NjYzU4NH0sDQorCXsweDAwMDBiMmU0 LCAweDAzZmYwMDAwLCAweDAzZmYwMDAwLCAweDAzZjBmODAwLCAweDAzZjBmODAwfSwNCiAJezB4 MDAwMGIyZTgsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDNmZjAwMDAsIDB4MDNmZjAwMDB9 LA0KLQl7MHgwMDAwYzJkYywgMHgwMDAzMzgwMCwgMHgwMDAzMzgwMCwgMHgwM2FhYTM1MiwgMHgw M2FhYTM1Mn0sDQotCXsweDAwMDBjMmUwLCAweDAwMDNjMDAwLCAweDAwMDNjMDAwLCAweDAzY2Nj NTg0LCAweDAzY2NjNTg0fSwNCi0JezB4MDAwMGMyZTQsIDB4MDNmYzAwMDAsIDB4MDNmYzAwMDAs IDB4MDNmMGY4MDAsIDB4MDNmMGY4MDB9LA0KKwl7MHgwMDAwYzJkYywgMHgwMzgwYzdmYywgMHgw MzgwYzdmYywgMHgwM2FhYTM1MiwgMHgwM2FhYTM1Mn0sDQorCXsweDAwMDBjMmUwLCAweDAwMDBm ODAwLCAweDAwMDBmODAwLCAweDAzY2NjNTg0LCAweDAzY2NjNTg0fSwNCisJezB4MDAwMGMyZTQs IDB4MDNmZjAwMDAsIDB4MDNmZjAwMDAsIDB4MDNmMGY4MDAsIDB4MDNmMGY4MDB9LA0KIAl7MHgw MDAwYzJlOCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwM2ZmMDAwMCwgMHgwM2ZmMDAwMH0s DQogCXsweDAwMDE2MDQ0LCAweDAxMjQ5MmQ0LCAweDAxMjQ5MmQ0LCAweDAxMjQ5MmQ0LCAweDAx MjQ5MmQ0fSwNCiAJezB4MDAwMTYwNDgsIDB4NjY0ODAwMDEsIDB4NjY0ODAwMDEsIDB4NjY0ODAw MDEsIDB4NjY0ODAwMDF9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGg5ay9hcjkwMDNfZWVwcm9tLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5 MDAzX2VlcHJvbS5oDQppbmRleCA2MzM1YTg2Li42OWJjZGI2IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19lZXByb20uaA0KKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2FyOTAwM19lZXByb20uaA0KQEAgLTY5LDEzICs2OSwxMyBA QA0KICNkZWZpbmUgQVI5MzAwX0JBU0VfQUREUiAweDNmZg0KICNkZWZpbmUgQVI5MzAwX0JBU0Vf QUREUl81MTIgMHgxZmYNCiANCi0jZGVmaW5lIEFSOTMwMF9PVFBfQkFTRQkJCTB4MTQwMDANCi0j ZGVmaW5lIEFSOTMwMF9PVFBfU1RBVFVTCQkweDE1ZjE4DQorI2RlZmluZSBBUjkzMDBfT1RQX0JB U0UJCQkoQVJfU1JFVl85MzQwKGFoKSA/IDB4MzAwMDAgOiAweDE0MDAwKQ0KKyNkZWZpbmUgQVI5 MzAwX09UUF9TVEFUVVMJCShBUl9TUkVWXzkzNDAoYWgpID8gMHgzMDAxOCA6IDB4MTVmMTgpDQog I2RlZmluZSBBUjkzMDBfT1RQX1NUQVRVU19UWVBFCQkweDcNCiAjZGVmaW5lIEFSOTMwMF9PVFBf U1RBVFVTX1ZBTElECQkweDQNCiAjZGVmaW5lIEFSOTMwMF9PVFBfU1RBVFVTX0FDQ0VTU19CVVNZ CTB4Mg0KICNkZWZpbmUgQVI5MzAwX09UUF9TVEFUVVNfU01fQlVTWQkweDENCi0jZGVmaW5lIEFS OTMwMF9PVFBfUkVBRF9EQVRBCQkweDE1ZjFjDQorI2RlZmluZSBBUjkzMDBfT1RQX1JFQURfREFU QQkJKEFSX1NSRVZfOTM0MChhaCkgPyAweDMwMDFjIDogMHgxNWYxYykNCiANCiBlbnVtIHRhcmdl dFBvd2VySFRSYXRlcyB7DQogCUhUX1RBUkdFVF9SQVRFXzBfOF8xNiwNCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAzX2h3LmMgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAzX2h3LmMNCmluZGV4IGZiOTM3YmEuLmU5ZDczZTcgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvYXI5MDAzX2h3LmMNCisr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9hcjkwMDNfaHcuYw0KQEAgLTM0LDkg KzM0LDYgQEANCiAgKi8NCiBzdGF0aWMgdm9pZCBhcjkwMDNfaHdfaW5pdF9tb2RlX3JlZ3Moc3Ry dWN0IGF0aF9odyAqYWgpDQogew0KLSNkZWZpbmUgUENJRV9QTExfT05fQ1JFUV9ESVNfTDFfMlAw IFwNCi0JCWFyOTQ2Ml9wY2llcGh5X3BsbF9vbl9jbGtyZXFfZGlzYWJsZV9MMV8ycDANCi0NCiAj ZGVmaW5lIEFSOTQ2Ml9CQl9DVFhfQ09FRkooeCkJXA0KIAkJYXI5NDYyXyMjeCMjX2Jhc2ViYW5k X2NvcmVfdHhmaXJfY29lZmZfamFwYW5fMjQ4NA0KIA0KQEAgLTM2OSwxMyArMzY2LDEzIEBAIHN0 YXRpYyB2b2lkIGFyOTAwM19od19pbml0X21vZGVfcmVncyhzdHJ1Y3QgYXRoX2h3ICphaCkNCiAN CiAJCS8qIEF3YWtlIC0+IFNsZWVwIFNldHRpbmcgKi8NCiAJCUlOSVRfSU5JX0FSUkFZKCZhaC0+ aW5pUGNpZVNlcmRlcywNCi0JCQkJUENJRV9QTExfT05fQ1JFUV9ESVNfTDFfMlAwLA0KLQkJCQlB UlJBWV9TSVpFKFBDSUVfUExMX09OX0NSRVFfRElTX0wxXzJQMCksDQorCQkJCWFyOTQ2Ml9wY2ll cGh5X2Nsa3JlcV9kaXNhYmxlX0wxXzJwMCwNCisJCQkJQVJSQVlfU0laRShhcjk0NjJfcGNpZXBo eV9jbGtyZXFfZGlzYWJsZV9MMV8ycDApLA0KIAkJCQkyKTsNCiAJCS8qIFNsZWVwIC0+IEF3YWtl IFNldHRpbmcgKi8NCiAJCUlOSVRfSU5JX0FSUkFZKCZhaC0+aW5pUGNpZVNlcmRlc0xvd1Bvd2Vy LA0KLQkJCQlQQ0lFX1BMTF9PTl9DUkVRX0RJU19MMV8yUDAsDQotCQkJCUFSUkFZX1NJWkUoUENJ RV9QTExfT05fQ1JFUV9ESVNfTDFfMlAwKSwNCisJCQkJYXI5NDYyX3BjaWVwaHlfY2xrcmVxX2Rp c2FibGVfTDFfMnAwLA0KKwkJCQlBUlJBWV9TSVpFKGFyOTQ2Ml9wY2llcGh5X2Nsa3JlcV9kaXNh YmxlX0wxXzJwMCksDQogCQkJCTIpOw0KIA0KIAkJLyogRmFzdCBjbG9jayBtb2RhbCBzZXR0aW5n cyAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9jYWxpYi5j IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2NhbGliLmMNCmluZGV4IGQ3NzFkZTUu LmJjYWJmYmYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvY2Fs aWIuYw0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2NhbGliLmMNCkBAIC02 OSw2ICs2OSw3IEBAIHMxNiBhdGg5a19od19nZXRjaGFuX25vaXNlKHN0cnVjdCBhdGhfaHcgKmFo LCBzdHJ1Y3QgYXRoOWtfY2hhbm5lbCAqY2hhbikNCiANCiAJaWYgKGNoYW4gJiYgY2hhbi0+bm9p c2VmbG9vcikgew0KIAkJczggZGVsdGEgPSBjaGFuLT5ub2lzZWZsb29yIC0NCisJCQkgICBBVEg5 S19ORl9DQUxfTk9JU0VfVEhSRVNIIC0NCiAJCQkgICBhdGg5a19od19nZXRfZGVmYXVsdF9uZihh aCwgY2hhbik7DQogCQlpZiAoZGVsdGEgPiAwKQ0KIAkJCW5vaXNlICs9IGRlbHRhOw0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9jYWxpYi5oIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2NhbGliLmgNCmluZGV4IDA1YjlkYmYuLmUzMDBhNzMgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvY2FsaWIuaA0KKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2NhbGliLmgNCkBAIC0yMiw2ICsyMiw5IEBA DQogI2RlZmluZSBBUl9QSFlfQ0NBX0ZJTFRFUldJTkRPV19MRU5HVEhfSU5JVCAgICAgMw0KICNk ZWZpbmUgQVJfUEhZX0NDQV9GSUxURVJXSU5ET1dfTEVOR1RIICAgICAgICAgIDUNCiANCisvKiBJ bnRlcm5hbCBub2lzZSBmbG9vciBjYW4gdmFyeSBieSBhYm91dCA2ZGIgZGVwZW5kaW5nIG9uIHRo ZSBmcmVxdWVuY3kgKi8NCisjZGVmaW5lIEFUSDlLX05GX0NBTF9OT0lTRV9USFJFU0gJCTYNCisN CiAjZGVmaW5lIE5VTV9ORl9SRUFESU5HUyAgICAgICA2DQogI2RlZmluZSBBVEg5S19ORl9DQUxf SElTVF9NQVggNQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkv aXdsLXRyYW5zLXBjaWUtcnguYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLXRy YW5zLXBjaWUtcnguYw0KaW5kZXggMTdmYjI1ZC4uOWZlZmI1NiAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXdsLXRyYW5zLXBjaWUtcnguYw0KKysrIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvaXdsd2lmaS9pd2wtdHJhbnMtcGNpZS1yeC5jDQpAQCAtMzExLDYgKzMx MSwxNCBAQCBzdGF0aWMgdm9pZCBpd2xhZ25fcnhfYWxsb2NhdGUoc3RydWN0IGl3bF90cmFucyAq dHJhbnMsIGdmcF90IHByaW9yaXR5KQ0KIAkJcnhiLT5wYWdlX2RtYSA9IGRtYV9tYXBfcGFnZShi dXModHJhbnMpLT5kZXYsIHBhZ2UsIDAsDQogCQkJCVBBR0VfU0laRSA8PCBod19wYXJhbXModHJh bnMpLnJ4X3BhZ2Vfb3JkZXIsDQogCQkJCURNQV9GUk9NX0RFVklDRSk7DQorCQlpZiAoZG1hX21h cHBpbmdfZXJyb3IoYnVzKHRyYW5zKS0+ZGV2LCByeGItPnBhZ2VfZG1hKSkgew0KKwkJCXJ4Yi0+ cGFnZSA9IE5VTEw7DQorCQkJc3Bpbl9sb2NrX2lycXNhdmUoJnJ4cS0+bG9jaywgZmxhZ3MpOw0K KwkJCWxpc3RfYWRkKCZyeGItPmxpc3QsICZyeHEtPnJ4X3VzZWQpOw0KKwkJCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnJ4cS0+bG9jaywgZmxhZ3MpOw0KKwkJCV9fZnJlZV9wYWdlcyhwYWdlLCBo d19wYXJhbXModHJhbnMpLnJ4X3BhZ2Vfb3JkZXIpOw0KKwkJCXJldHVybjsNCisJCX0NCiAJCS8q IGRtYSBhZGRyZXNzIG11c3QgYmUgbm8gbW9yZSB0aGFuIDM2IGJpdHMgKi8NCiAJCUJVR19PTihy eGItPnBhZ2VfZG1hICYgfkRNQV9CSVRfTUFTSygzNikpOw0KIAkJLyogYW5kIGFsc28gMjU2IGJ5 dGUgYWxpZ25lZCEgKi8NCkBAIC00ODksOCArNDk3LDE5IEBAIHN0YXRpYyB2b2lkIGl3bF9yeF9o YW5kbGUoc3RydWN0IGl3bF90cmFucyAqdHJhbnMpDQogCQkJCTAsIFBBR0VfU0laRSA8PA0KIAkJ CQkgICAgaHdfcGFyYW1zKHRyYW5zKS5yeF9wYWdlX29yZGVyLA0KIAkJCQlETUFfRlJPTV9ERVZJ Q0UpOw0KLQkJCWxpc3RfYWRkX3RhaWwoJnJ4Yi0+bGlzdCwgJnJ4cS0+cnhfZnJlZSk7DQotCQkJ cnhxLT5mcmVlX2NvdW50Kys7DQorCQkJaWYgKGRtYV9tYXBwaW5nX2Vycm9yKGJ1cyh0cmFucykt PmRldiwgcnhiLT5wYWdlX2RtYSkpIHsNCisJCQkJLyoNCisJCQkJICogZnJlZSB0aGUgcGFnZShz KSBhcyB3ZWxsIHRvIG5vdCBicmVhaw0KKwkJCQkgKiB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGl0 ZW1zIG9uIHRoZSB1c2VkDQorCQkJCSAqIGxpc3QgaGF2ZSBubyBwYWdlKHMpDQorCQkJCSAqLw0K KwkJCQlfX2ZyZWVfcGFnZXMocnhiLT5wYWdlLCBod19wYXJhbXModHJhbnMpLnJ4X3BhZ2Vfb3Jk ZXIpOw0KKwkJCQlyeGItPnBhZ2UgPSBOVUxMOw0KKwkJCQlsaXN0X2FkZF90YWlsKCZyeGItPmxp c3QsICZyeHEtPnJ4X3VzZWQpOw0KKwkJCX0gZWxzZSB7DQorCQkJCWxpc3RfYWRkX3RhaWwoJnJ4 Yi0+bGlzdCwgJnJ4cS0+cnhfZnJlZSk7DQorCQkJCXJ4cS0+ZnJlZV9jb3VudCsrOw0KKwkJCX0N CiAJCX0gZWxzZQ0KIAkJCWxpc3RfYWRkX3RhaWwoJnJ4Yi0+bGlzdCwgJnJ4cS0+cnhfdXNlZCk7 DQogDQpAQCAtMTI2MywxMiArMTI4MiwyMCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaXdsX2lzcihp bnQgaXJxLCB2b2lkICpkYXRhKQ0KIAkgKiAgICBiYWNrLXRvLWJhY2sgSVNScyBhbmQgc3BvcmFk aWMgaW50ZXJydXB0cyBmcm9tIG91ciBOSUMuDQogCSAqIElmIHdlIGhhdmUgc29tZXRoaW5nIHRv IHNlcnZpY2UsIHRoZSB0YXNrbGV0IHdpbGwgcmUtZW5hYmxlIGludHMuDQogCSAqIElmIHdlICpk b24ndCogaGF2ZSBzb21ldGhpbmcsIHdlJ2xsIHJlLWVuYWJsZSBiZWZvcmUgbGVhdmluZyBoZXJl LiAqLw0KLQlpbnRhX21hc2sgPSBpd2xfcmVhZDMyKGJ1cyh0cmFucyksIENTUl9JTlRfTUFTSyk7 ICAvKiBqdXN0IGZvciBkZWJ1ZyAqLw0KKwlpbnRhX21hc2sgPSBpd2xfcmVhZDMyKGJ1cyh0cmFu cyksIENTUl9JTlRfTUFTSyk7DQogCWl3bF93cml0ZTMyKGJ1cyh0cmFucyksIENTUl9JTlRfTUFT SywgMHgwMDAwMDAwMCk7DQogDQogCS8qIERpc2NvdmVyIHdoaWNoIGludGVycnVwdHMgYXJlIGFj dGl2ZS9wZW5kaW5nICovDQogCWludGEgPSBpd2xfcmVhZDMyKGJ1cyh0cmFucyksIENTUl9JTlQp Ow0KIA0KKwlpZiAoaW50YSAmICh+aW50YV9tYXNrKSkgew0KKwkJSVdMX0RFQlVHX0lTUih0cmFu cywNCisJCQkgICAgICAiV2UgZ290IGEgbWFza2VkIGludGVycnVwdCAoMHglMDh4KS4uLkFjayBh bmQgaWdub3JlXG4iLA0KKwkJCSAgICAgIGludGEgJiAofmludGFfbWFzaykpOw0KKwkJaXdsX3dy aXRlMzIoYnVzKHRyYW5zKSwgQ1NSX0lOVCwgaW50YSAmICh+aW50YV9tYXNrKSk7DQorCQlpbnRh ICY9IGludGFfbWFzazsNCisJfQ0KKw0KIAkvKiBJZ25vcmUgaW50ZXJydXB0IGlmIHRoZXJlJ3Mg bm90aGluZyBpbiBOSUMgdG8gc2VydmljZS4NCiAJICogVGhpcyBtYXkgYmUgZHVlIHRvIElSUSBz aGFyZWQgd2l0aCBhbm90aGVyIGRldmljZSwNCiAJICogb3IgZHVlIHRvIHNwb3JhZGljIGludGVy cnVwdHMgdGhyb3duIGZyb20gb3VyIE5JQy4gKi8NCkBAIC0xMzQ5LDcgKzEzNzYsNyBAQCBpcnFy ZXR1cm5fdCBpd2xfaXNyX2ljdChpbnQgaXJxLCB2b2lkICpkYXRhKQ0KIAkgKiBJZiB3ZSBoYXZl IHNvbWV0aGluZyB0byBzZXJ2aWNlLCB0aGUgdGFza2xldCB3aWxsIHJlLWVuYWJsZSBpbnRzLg0K IAkgKiBJZiB3ZSAqZG9uJ3QqIGhhdmUgc29tZXRoaW5nLCB3ZSdsbCByZS1lbmFibGUgYmVmb3Jl IGxlYXZpbmcgaGVyZS4NCiAJICovDQotCWludGFfbWFzayA9IGl3bF9yZWFkMzIoYnVzKHRyYW5z KSwgQ1NSX0lOVF9NQVNLKTsgIC8qIGp1c3QgZm9yIGRlYnVnICovDQorCWludGFfbWFzayA9IGl3 bF9yZWFkMzIoYnVzKHRyYW5zKSwgQ1NSX0lOVF9NQVNLKTsNCiAJaXdsX3dyaXRlMzIoYnVzKHRy YW5zKSwgQ1NSX0lOVF9NQVNLLCAweDAwMDAwMDAwKTsNCiANCiANCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwbGliLmMgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9ydDJ4MDAvcnQyODAwbGliLmMNCmluZGV4IGZiMTk0NDcuLjY3Y2JlNWEgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwbGliLmMNCisrKyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDBsaWIuYw0KQEAgLTQyMDgsNyArNDIwOCw4IEBAIGlu dCBydDI4MDBfcHJvYmVfaHdfbW9kZShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KQ0KIAkg ICAgSUVFRTgwMjExX0hXX1NJR05BTF9EQk0gfA0KIAkgICAgSUVFRTgwMjExX0hXX1NVUFBPUlRT X1BTIHwNCiAJICAgIElFRUU4MDIxMV9IV19QU19OVUxMRlVOQ19TVEFDSyB8DQotCSAgICBJRUVF ODAyMTFfSFdfQU1QRFVfQUdHUkVHQVRJT047DQorCSAgICBJRUVFODAyMTFfSFdfQU1QRFVfQUdH UkVHQVRJT04gfA0KKwkgICAgSUVFRTgwMjExX0hXX1RFQVJET1dOX0FHR1JfT05fQkFSX0ZBSUw7 DQogCS8qDQogCSAqIERvbid0IHNldCBJRUVFODAyMTFfSFdfSE9TVF9CUk9BRENBU1RfUFNfQlVG RkVSSU5HIGZvciBVU0IgZGV2aWNlcw0KIAkgKiB1bmxlc3Mgd2UgYXJlIGNhcGFibGUgb2Ygc2Vu ZGluZyB0aGUgYnVmZmVyZWQgZnJhbWVzIG91dCBhZnRlciB0aGUNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3BucC9wbnBhY3BpL2NvcmUuYyBiL2RyaXZlcnMvcG5wL3BucGFjcGkvY29yZS5jDQppbmRl eCBkMjFlOGY1Li4yOTE5MDZlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9wbnAvcG5wYWNwaS9jb3Jl LmMNCisrKyBiL2RyaXZlcnMvcG5wL3BucGFjcGkvY29yZS5jDQpAQCAtNTgsNyArNTgsNyBAQCBz dGF0aWMgaW5saW5lIGludCBfX2luaXQgaXNfZXhjbHVzaXZlX2RldmljZShzdHJ1Y3QgYWNwaV9k ZXZpY2UgKmRldikNCiAJaWYgKCEoKCcwJyA8PSAoYykgJiYgKGMpIDw9ICc5JykgfHwgKCdBJyA8 PSAoYykgJiYgKGMpIDw9ICdGJykpKSBcDQogCQlyZXR1cm4gMA0KICNkZWZpbmUgVEVTVF9BTFBI QShjKSBcDQotCWlmICghKCdAJyA8PSAoYykgfHwgKGMpIDw9ICdaJykpIFwNCisJaWYgKCEoJ0En IDw9IChjKSAmJiAoYykgPD0gJ1onKSkgXA0KIAkJcmV0dXJuIDANCiBzdGF0aWMgaW50IF9faW5p dCBpc3BucGlkYWNwaShjb25zdCBjaGFyICppZCkNCiB7DQpAQCAtOTUsNiArOTUsOSBAQCBzdGF0 aWMgaW50IHBucGFjcGlfc2V0X3Jlc291cmNlcyhzdHJ1Y3QgcG5wX2RldiAqZGV2KQ0KIAkJcmV0 dXJuIC1FTk9ERVY7DQogCX0NCiANCisJaWYgKFdBUk5fT05fT05DRShhY3BpX2RldiAhPSBkZXYt PmRhdGEpKQ0KKwkJZGV2LT5kYXRhID0gYWNwaV9kZXY7DQorDQogCXJldCA9IHBucGFjcGlfYnVp bGRfcmVzb3VyY2VfdGVtcGxhdGUoZGV2LCAmYnVmZmVyKTsNCiAJaWYgKHJldCkNCiAJCXJldHVy biByZXQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZWd1bGF0b3Ivd204MzF4LWRjZGMuYyBiL2Ry aXZlcnMvcmVndWxhdG9yL3dtODMxeC1kY2RjLmMNCmluZGV4IGJkMzUzMWQuLjc3YTZmYWYgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3JlZ3VsYXRvci93bTgzMXgtZGNkYy5jDQorKysgYi9kcml2ZXJz L3JlZ3VsYXRvci93bTgzMXgtZGNkYy5jDQpAQCAtMzMwLDcgKzMzMCw3IEBAIHN0YXRpYyBpbnQg d204MzF4X2J1Y2t2X3NldF92b2x0YWdlKHN0cnVjdCByZWd1bGF0b3JfZGV2ICpyZGV2LA0KIAlp ZiAodnNlbCA+IGRjZGMtPmR2c192c2VsKSB7DQogCQlyZXQgPSB3bTgzMXhfc2V0X2JpdHMod204 MzF4LCBkdnNfcmVnLA0KIAkJCQkgICAgICBXTTgzMVhfREMxX0RWU19WU0VMX01BU0ssDQotCQkJ CSAgICAgIGRjZGMtPmR2c192c2VsKTsNCisJCQkJICAgICAgdnNlbCk7DQogCQlpZiAocmV0ID09 IDApDQogCQkJZGNkYy0+ZHZzX3ZzZWwgPSB2c2VsOw0KIAkJZWxzZQ0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvczM5MC9jaW8vZGV2aWNlX3BnaWQuYyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlX3Bn aWQuYw0KaW5kZXggMDdhNGZkMi4uZGFhNmI5MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvczM5MC9j aW8vZGV2aWNlX3BnaWQuYw0KKysrIGIvZHJpdmVycy9zMzkwL2Npby9kZXZpY2VfcGdpZC5jDQpA QCAtMjM0LDcgKzIzNCw3IEBAIHN0YXRpYyBpbnQgcGdpZF9jbXAoc3RydWN0IHBnaWQgKnAxLCBz dHJ1Y3QgcGdpZCAqcDIpDQogICogRGV0ZXJtaW5lIHBhdGhncm91cCBzdGF0ZSBmcm9tIFBHSUQg ZGF0YS4NCiAgKi8NCiBzdGF0aWMgdm9pZCBwZ2lkX2FuYWx5emUoc3RydWN0IGNjd19kZXZpY2Ug KmNkZXYsIHN0cnVjdCBwZ2lkICoqcCwNCi0JCQkgaW50ICptaXNtYXRjaCwgaW50ICpyZXNlcnZl ZCwgdTggKnJlc2V0KQ0KKwkJCSBpbnQgKm1pc21hdGNoLCB1OCAqcmVzZXJ2ZWQsIHU4ICpyZXNl dCkNCiB7DQogCXN0cnVjdCBwZ2lkICpwZ2lkID0gJmNkZXYtPnByaXZhdGUtPnBnaWRbMF07DQog CXN0cnVjdCBwZ2lkICpmaXJzdCA9IE5VTEw7DQpAQCAtMjQ4LDcgKzI0OCw3IEBAIHN0YXRpYyB2 b2lkIHBnaWRfYW5hbHl6ZShzdHJ1Y3QgY2N3X2RldmljZSAqY2Rldiwgc3RydWN0IHBnaWQgKipw LA0KIAkJaWYgKChjZGV2LT5wcml2YXRlLT5wZ2lkX3ZhbGlkX21hc2sgJiBscG0pID09IDApDQog CQkJY29udGludWU7DQogCQlpZiAocGdpZC0+aW5mLnBzLnN0YXRlMiA9PSBTTklEX1NUQVRFMl9S RVNWRF9FTFNFKQ0KLQkJCSpyZXNlcnZlZCA9IDE7DQorCQkJKnJlc2VydmVkIHw9IGxwbTsNCiAJ CWlmIChwZ2lkX2lzX3Jlc2V0KHBnaWQpKSB7DQogCQkJKnJlc2V0IHw9IGxwbTsNCiAJCQljb250 aW51ZTsNCkBAIC0zMTYsMTQgKzMxNiwxNCBAQCBzdGF0aWMgdm9pZCBzbmlkX2RvbmUoc3RydWN0 IGNjd19kZXZpY2UgKmNkZXYsIGludCByYykNCiAJc3RydWN0IHN1YmNoYW5uZWwgKnNjaCA9IHRv X3N1YmNoYW5uZWwoY2Rldi0+ZGV2LnBhcmVudCk7DQogCXN0cnVjdCBwZ2lkICpwZ2lkOw0KIAlp bnQgbWlzbWF0Y2ggPSAwOw0KLQlpbnQgcmVzZXJ2ZWQgPSAwOw0KKwl1OCByZXNlcnZlZCA9IDA7 DQogCXU4IHJlc2V0ID0gMDsNCiAJdTggZG9uZXBtOw0KIA0KIAlpZiAocmMpDQogCQlnb3RvIG91 dDsNCiAJcGdpZF9hbmFseXplKGNkZXYsICZwZ2lkLCAmbWlzbWF0Y2gsICZyZXNlcnZlZCwgJnJl c2V0KTsNCi0JaWYgKHJlc2VydmVkKQ0KKwlpZiAocmVzZXJ2ZWQgPT0gY2Rldi0+cHJpdmF0ZS0+ cGdpZF92YWxpZF9tYXNrKQ0KIAkJcmMgPSAtRVVTRVJTOw0KIAllbHNlIGlmIChtaXNtYXRjaCkN CiAJCXJjID0gLUVPUE5PVFNVUFA7DQpAQCAtMzM2LDcgKzMzNiw3IEBAIHN0YXRpYyB2b2lkIHNu aWRfZG9uZShzdHJ1Y3QgY2N3X2RldmljZSAqY2RldiwgaW50IHJjKQ0KIAl9DQogb3V0Og0KIAlD SU9fTVNHX0VWRU5UKDIsICJzbmlkOiBkZXZpY2UgMC4leC4lMDR4OiByYz0lZCBwdm09JTAyeCB2 cG09JTAyeCAiDQotCQkgICAgICAidG9kbz0lMDJ4IG1pc209JWQgcnN2ZD0lZCByZXNldD0lMDJ4 XG4iLCBpZC0+c3NpZCwNCisJCSAgICAgICJ0b2RvPSUwMnggbWlzbT0lZCByc3ZkPSUwMnggcmVz ZXQ9JTAyeFxuIiwgaWQtPnNzaWQsDQogCQkgICAgICBpZC0+ZGV2bm8sIHJjLCBjZGV2LT5wcml2 YXRlLT5wZ2lkX3ZhbGlkX21hc2ssIHNjaC0+dnBtLA0KIAkJICAgICAgY2Rldi0+cHJpdmF0ZS0+ cGdpZF90b2RvX21hc2ssIG1pc21hdGNoLCByZXNlcnZlZCwgcmVzZXQpOw0KIAlzd2l0Y2ggKHJj KSB7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2FoYTE1MnguYyBiL2RyaXZlcnMvc2NzaS9h aGExNTJ4LmMNCmluZGV4IGYxN2M5MmMuLjBmZDVlYTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Nj c2kvYWhhMTUyeC5jDQorKysgYi9kcml2ZXJzL3Njc2kvYWhhMTUyeC5jDQpAQCAtMjk4NSw4ICsy OTg1LDggQEAgc3RhdGljIGludCBnZXRfY29tbWFuZChjaGFyICpwb3MsIFNjc2lfQ21uZCAqIHB0 cikNCiAJY2hhciAqc3RhcnQgPSBwb3M7DQogCWludCBpOw0KIA0KLQlTUFJJTlRGKCIweCUwOHg6 IHRhcmdldD0lZDsgbHVuPSVkOyBjbW5kPSggIiwNCi0JCSh1bnNpZ25lZCBpbnQpIHB0ciwgcHRy LT5kZXZpY2UtPmlkLCBwdHItPmRldmljZS0+bHVuKTsNCisJU1BSSU5URigiJXA6IHRhcmdldD0l ZDsgbHVuPSVkOyBjbW5kPSggIiwNCisJCXB0ciwgcHRyLT5kZXZpY2UtPmlkLCBwdHItPmRldmlj ZS0+bHVuKTsNCiANCiAJZm9yIChpID0gMDsgaSA8IENPTU1BTkRfU0laRShwdHItPmNtbmRbMF0p OyBpKyspDQogCQlTUFJJTlRGKCIweCUwMnggIiwgcHRyLT5jbW5kW2ldKTsNCmRpZmYgLS1naXQg YS9kcml2ZXJzL3Njc2kvaHBzYS5jIGIvZHJpdmVycy9zY3NpL2hwc2EuYw0KaW5kZXggMjI1MjNh YS4uMGY0ODU1MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc2NzaS9ocHNhLmMNCisrKyBiL2RyaXZl cnMvc2NzaS9ocHNhLmMNCkBAIC05OCw2ICs5OCwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBj aV9kZXZpY2VfaWQgaHBzYV9wY2lfZGV2aWNlX2lkW10gPSB7DQogCXtQQ0lfVkVORE9SX0lEX0hQ LCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTRiwgICAgIDB4MTAzQywgMHgzMzU0fSwNCiAJe1BD SV9WRU5ET1JfSURfSFAsICAgICBQQ0lfREVWSUNFX0lEX0hQX0NJU1NGLCAgICAgMHgxMDNDLCAw eDMzNTV9LA0KIAl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0Ys ICAgICAweDEwM0MsIDB4MzM1Nn0sDQorCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklD RV9JRF9IUF9DSVNTSCwgICAgIDB4MTAzQywgMHgxOTIwfSwNCisJe1BDSV9WRU5ET1JfSURfSFAs ICAgICBQQ0lfREVWSUNFX0lEX0hQX0NJU1NILCAgICAgMHgxMDNDLCAweDE5MjF9LA0KKwl7UENJ X1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0gsICAgICAweDEwM0MsIDB4 MTkyMn0sDQorCXtQQ0lfVkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTSCwg ICAgIDB4MTAzQywgMHgxOTIzfSwNCisJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfREVWSUNF X0lEX0hQX0NJU1NILCAgICAgMHgxMDNDLCAweDE5MjR9LA0KKwl7UENJX1ZFTkRPUl9JRF9IUCwg ICAgIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0gsICAgICAweDEwM0MsIDB4MTkyNX0sDQorCXtQQ0lf VkVORE9SX0lEX0hQLCAgICAgUENJX0RFVklDRV9JRF9IUF9DSVNTSCwgICAgIDB4MTAzQywgMHgx OTI2fSwNCisJe1BDSV9WRU5ET1JfSURfSFAsICAgICBQQ0lfREVWSUNFX0lEX0hQX0NJU1NILCAg ICAgMHgxMDNDLCAweDE5Mjh9LA0KKwl7UENJX1ZFTkRPUl9JRF9IUCwgICAgIFBDSV9ERVZJQ0Vf SURfSFBfQ0lTU0YsICAgICAweDEwM0MsIDB4MzM0ZH0sDQogCXtQQ0lfVkVORE9SX0lEX0hQLCAg ICAgUENJX0FOWV9JRCwJUENJX0FOWV9JRCwgUENJX0FOWV9JRCwNCiAJCVBDSV9DTEFTU19TVE9S QUdFX1JBSUQgPDwgOCwgMHhmZmZmIDw8IDgsIDB9LA0KIAl7MCx9DQpAQCAtMTE3LDEzICsxMjYs MjIgQEAgc3RhdGljIHN0cnVjdCBib2FyZF90eXBlIHByb2R1Y3RzW10gPSB7DQogCXsweDMyNDkx MDNDLCAiU21hcnQgQXJyYXkgUDgxMiIsICZTQTVfYWNjZXNzfSwNCiAJezB4MzI0YTEwM0MsICJT bWFydCBBcnJheSBQNzEybSIsICZTQTVfYWNjZXNzfSwNCiAJezB4MzI0YjEwM0MsICJTbWFydCBB cnJheSBQNzExbSIsICZTQTVfYWNjZXNzfSwNCi0JezB4MzM1MDEwM0MsICJTbWFydCBBcnJheSIs ICZTQTVfYWNjZXNzfSwNCi0JezB4MzM1MTEwM0MsICJTbWFydCBBcnJheSIsICZTQTVfYWNjZXNz fSwNCi0JezB4MzM1MjEwM0MsICJTbWFydCBBcnJheSIsICZTQTVfYWNjZXNzfSwNCi0JezB4MzM1 MzEwM0MsICJTbWFydCBBcnJheSIsICZTQTVfYWNjZXNzfSwNCi0JezB4MzM1NDEwM0MsICJTbWFy dCBBcnJheSIsICZTQTVfYWNjZXNzfSwNCi0JezB4MzM1NTEwM0MsICJTbWFydCBBcnJheSIsICZT QTVfYWNjZXNzfSwNCi0JezB4MzM1NjEwM0MsICJTbWFydCBBcnJheSIsICZTQTVfYWNjZXNzfSwN CisJezB4MzM1MDEwM0MsICJTbWFydCBBcnJheSBQMjIyIiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgz MzUxMTAzQywgIlNtYXJ0IEFycmF5IFA0MjAiLCAmU0E1X2FjY2Vzc30sDQorCXsweDMzNTIxMDND LCAiU21hcnQgQXJyYXkgUDQyMSIsICZTQTVfYWNjZXNzfSwNCisJezB4MzM1MzEwM0MsICJTbWFy dCBBcnJheSBQODIyIiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgzMzU0MTAzQywgIlNtYXJ0IEFycmF5 IFA0MjBpIiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgzMzU1MTAzQywgIlNtYXJ0IEFycmF5IFAyMjBp IiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgzMzU2MTAzQywgIlNtYXJ0IEFycmF5IFA3MjFtIiwgJlNB NV9hY2Nlc3N9LA0KKwl7MHgxOTIwMTAzQywgIlNtYXJ0IEFycmF5IiwgJlNBNV9hY2Nlc3N9LA0K Kwl7MHgxOTIxMTAzQywgIlNtYXJ0IEFycmF5IiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgxOTIyMTAz QywgIlNtYXJ0IEFycmF5IiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgxOTIzMTAzQywgIlNtYXJ0IEFy cmF5IiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgxOTI0MTAzQywgIlNtYXJ0IEFycmF5IiwgJlNBNV9h Y2Nlc3N9LA0KKwl7MHgxOTI1MTAzQywgIlNtYXJ0IEFycmF5IiwgJlNBNV9hY2Nlc3N9LA0KKwl7 MHgxOTI2MTAzQywgIlNtYXJ0IEFycmF5IiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgxOTI4MTAzQywg IlNtYXJ0IEFycmF5IiwgJlNBNV9hY2Nlc3N9LA0KKwl7MHgzMzRkMTAzQywgIlNtYXJ0IEFycmF5 IFA4MjJzZSIsICZTQTVfYWNjZXNzfSwNCiAJezB4RkZGRjEwM0MsICJVbmtub3duIFNtYXJ0IEFy cmF5IiwgJlNBNV9hY2Nlc3N9LA0KIH07DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL212 c2FzL212Xzk0eHguaCBiL2RyaXZlcnMvc2NzaS9tdnNhcy9tdl85NHh4LmgNCmluZGV4IDhmN2Vi NGYuLjQ4N2FhNmYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3Njc2kvbXZzYXMvbXZfOTR4eC5oDQor KysgYi9kcml2ZXJzL3Njc2kvbXZzYXMvbXZfOTR4eC5oDQpAQCAtMjU4LDIxICsyNTgsMTEgQEAg ZW51bSBzYXNfc2F0YV9waHlfcmVncyB7DQogI2RlZmluZSBTUElfQUREUl9WTERfOTRYWCAgICAg ICAgIAkoMVUgPDwgMSkNCiAjZGVmaW5lIFNQSV9DVFJMX1NwaVN0YXJ0Xzk0WFggICAgIAkoMVUg PDwgMCkNCiANCi0jZGVmaW5lIG12X2ZmYyh4KSAgIGZmeih4KQ0KLQ0KIHN0YXRpYyBpbmxpbmUg aW50DQogbXZfZmZjNjQodTY0IHYpDQogew0KLQlpbnQgaTsNCi0JaSA9IG12X2ZmYygodTMyKXYp Ow0KLQlpZiAoaSA+PSAwKQ0KLQkJcmV0dXJuIGk7DQotCWkgPSBtdl9mZmMoKHUzMikodj4+MzIp KTsNCi0NCi0JaWYgKGkgIT0gMCkNCi0JCXJldHVybiAzMiArIGk7DQotDQotCXJldHVybiAtMTsN CisJdTY0IHggPSB+djsNCisJcmV0dXJuIHggPyBfX2ZmczY0KHgpIDogLTE7DQogfQ0KIA0KICNk ZWZpbmUgcl9yZWdfc2V0X2VuYWJsZShpKSBcDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL212 c2FzL212X3Nhcy5oIGIvZHJpdmVycy9zY3NpL212c2FzL212X3Nhcy5oDQppbmRleCBjMDRhNGY1 Li5kYTI0OTU1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL212c2FzL212X3Nhcy5oDQorKysg Yi9kcml2ZXJzL3Njc2kvbXZzYXMvbXZfc2FzLmgNCkBAIC02OSw3ICs2OSw3IEBAIGV4dGVybiBz dHJ1Y3Qga21lbV9jYWNoZSAqbXZzX3Rhc2tfbGlzdF9jYWNoZTsNCiAjZGVmaW5lIERFVl9JU19F WFBBTkRFUih0eXBlKQlcDQogCSgodHlwZSA9PSBFREdFX0RFVikgfHwgKHR5cGUgPT0gRkFOT1VU X0RFVikpDQogDQotI2RlZmluZSBiaXQobikgKCh1MzIpMSA8PCBuKQ0KKyNkZWZpbmUgYml0KG4p ICgodTY0KTEgPDwgbikNCiANCiAjZGVmaW5lIGZvcl9lYWNoX3BoeShfX2xzZXFfbWFzaywgX19t YywgX19sc2VxKQkJCVwNCiAJZm9yICgoX19tYykgPSAoX19sc2VxX21hc2spLCAoX19sc2VxKSA9 IDA7CQlcDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3FsYTJ4eHgvcWxhX29zLmMgYi9kcml2 ZXJzL3Njc2kvcWxhMnh4eC9xbGFfb3MuYw0KaW5kZXggZjllNWI4NS4uODJhNWNhNiAxMDA2NDQN Ci0tLSBhL2RyaXZlcnMvc2NzaS9xbGEyeHh4L3FsYV9vcy5jDQorKysgYi9kcml2ZXJzL3Njc2kv cWxhMnh4eC9xbGFfb3MuYw0KQEAgLTM1NDEsOSArMzU0MSw5IEBAIHFsYTJ4MDBfZG9fZHBjKHZv aWQgKmRhdGEpDQogCQkJICAgICJJU1AgYWJvcnQgZW5kLlxuIik7DQogCQl9DQogDQotCQlpZiAo dGVzdF9iaXQoRkNQT1JUX1VQREFURV9ORUVERUQsICZiYXNlX3ZoYS0+ZHBjX2ZsYWdzKSkgew0K KwkJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdChGQ1BPUlRfVVBEQVRFX05FRURFRCwNCisJCSAgICAm YmFzZV92aGEtPmRwY19mbGFncykpIHsNCiAJCQlxbGEyeDAwX3VwZGF0ZV9mY3BvcnRzKGJhc2Vf dmhhKTsNCi0JCQljbGVhcl9iaXQoRkNQT1JUX1VQREFURV9ORUVERUQsICZiYXNlX3ZoYS0+ZHBj X2ZsYWdzKTsNCiAJCX0NCiANCiAJCWlmICh0ZXN0X2JpdChJU1BfUVVJRVNDRV9ORUVERUQsICZi YXNlX3ZoYS0+ZHBjX2ZsYWdzKSkgew0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zY3NpX3N5 c2ZzLmMgYi9kcml2ZXJzL3Njc2kvc2NzaV9zeXNmcy5jDQppbmRleCAwOGQ0OGEzLi43MmNhNTE1 IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zY3NpL3Njc2lfc3lzZnMuYw0KKysrIGIvZHJpdmVycy9z Y3NpL3Njc2lfc3lzZnMuYw0KQEAgLTI0NiwxMSArMjQ2LDExIEBAIHNob3dfc2hvc3RfYWN0aXZl X21vZGUoc3RydWN0IGRldmljZSAqZGV2LA0KIA0KIHN0YXRpYyBERVZJQ0VfQVRUUihhY3RpdmVf bW9kZSwgU19JUlVHTyB8IFNfSVdVU1IsIHNob3dfc2hvc3RfYWN0aXZlX21vZGUsIE5VTEwpOw0K IA0KLXN0YXRpYyBpbnQgY2hlY2tfcmVzZXRfdHlwZShjaGFyICpzdHIpDQorc3RhdGljIGludCBj aGVja19yZXNldF90eXBlKGNvbnN0IGNoYXIgKnN0cikNCiB7DQotCWlmIChzdHJuY21wKHN0ciwg ImFkYXB0ZXIiLCAxMCkgPT0gMCkNCisJaWYgKHN5c2ZzX3N0cmVxKHN0ciwgImFkYXB0ZXIiKSkN CiAJCXJldHVybiBTQ1NJX0FEQVBURVJfUkVTRVQ7DQotCWVsc2UgaWYgKHN0cm5jbXAoc3RyLCAi ZmlybXdhcmUiLCAxMCkgPT0gMCkNCisJZWxzZSBpZiAoc3lzZnNfc3RyZXEoc3RyLCAiZmlybXdh cmUiKSkNCiAJCXJldHVybiBTQ1NJX0ZJUk1XQVJFX1JFU0VUOw0KIAllbHNlDQogCQlyZXR1cm4g MDsNCkBAIC0yNjMsMTIgKzI2Myw5IEBAIHN0b3JlX2hvc3RfcmVzZXQoc3RydWN0IGRldmljZSAq ZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCiAJc3RydWN0IFNjc2lfSG9zdCAq c2hvc3QgPSBjbGFzc190b19zaG9zdChkZXYpOw0KIAlzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRl ICpzaHQgPSBzaG9zdC0+aG9zdHQ7DQogCWludCByZXQgPSAtRUlOVkFMOw0KLQljaGFyIHN0clsx MF07DQogCWludCB0eXBlOw0KIA0KLQlzc2NhbmYoYnVmLCAiJXMiLCBzdHIpOw0KLQl0eXBlID0g Y2hlY2tfcmVzZXRfdHlwZShzdHIpOw0KLQ0KKwl0eXBlID0gY2hlY2tfcmVzZXRfdHlwZShidWYp Ow0KIAlpZiAoIXR5cGUpDQogCQlnb3RvIGV4aXRfc3RvcmVfaG9zdF9yZXNldDsNCiANCmRpZmYg LS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvYmNtL0ludGVyZmFjZUluaXQuYyBiL2RyaXZlcnMvc3Rh Z2luZy9iY20vSW50ZXJmYWNlSW5pdC5jDQppbmRleCBhMDlkMzUxLi4zNTgyNTM1IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9zdGFnaW5nL2JjbS9JbnRlcmZhY2VJbml0LmMNCisrKyBiL2RyaXZlcnMv c3RhZ2luZy9iY20vSW50ZXJmYWNlSW5pdC5jDQpAQCAtNCwxMCArNCwxMiBAQCBzdGF0aWMgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgSW50ZXJmYWNlVXNidGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNF KEJDTV9VU0JfVkVORE9SX0lEX1QzLCBCQ01fVVNCX1BST0RVQ1RfSURfVDMpIH0sDQogCXsgVVNC X0RFVklDRShCQ01fVVNCX1ZFTkRPUl9JRF9UMywgQkNNX1VTQl9QUk9EVUNUX0lEX1QzQikgfSwN CiAJeyBVU0JfREVWSUNFKEJDTV9VU0JfVkVORE9SX0lEX1QzLCBCQ01fVVNCX1BST0RVQ1RfSURf VDNMKSB9LA0KLQl7IFVTQl9ERVZJQ0UoQkNNX1VTQl9WRU5ET1JfSURfVDMsIEJDTV9VU0JfUFJP RFVDVF9JRF9TTTI1MCkgfSwNCisJeyBVU0JfREVWSUNFKEJDTV9VU0JfVkVORE9SX0lEX1QzLCBC Q01fVVNCX1BST0RVQ1RfSURfU1lNKSB9LA0KIAl7IFVTQl9ERVZJQ0UoQkNNX1VTQl9WRU5ET1Jf SURfWlRFLCBCQ01fVVNCX1BST0RVQ1RfSURfMjI2KSB9LA0KIAl7IFVTQl9ERVZJQ0UoQkNNX1VT Ql9WRU5ET1JfSURfRk9YQ09OTiwgQkNNX1VTQl9QUk9EVUNUX0lEXzE5MDEpIH0sDQogCXsgVVNC X0RFVklDRShCQ01fVVNCX1ZFTkRPUl9JRF9aVEUsIEJDTV9VU0JfUFJPRFVDVF9JRF9aVEVfVFUy NSkgfSwNCisJeyBVU0JfREVWSUNFKEJDTV9VU0JfVkVORE9SX0lEX1pURSwgQkNNX1VTQl9QUk9E VUNUX0lEX1pURV8yMjYpIH0sDQorCXsgVVNCX0RFVklDRShCQ01fVVNCX1ZFTkRPUl9JRF9aVEUs IEJDTV9VU0JfUFJPRFVDVF9JRF9aVEVfMzI2KSB9LA0KIAl7IH0NCiB9Ow0KIE1PRFVMRV9ERVZJ Q0VfVEFCTEUodXNiLCBJbnRlcmZhY2VVc2J0YWJsZSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z dGFnaW5nL2JjbS9JbnRlcmZhY2VJbml0LmggYi9kcml2ZXJzL3N0YWdpbmcvYmNtL0ludGVyZmFj ZUluaXQuaA0KaW5kZXggMDU4MzE1YS4uNmZhNGYwOSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3Rh Z2luZy9iY20vSW50ZXJmYWNlSW5pdC5oDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvYmNtL0ludGVy ZmFjZUluaXQuaA0KQEAgLTgsMTAgKzgsMTEgQEANCiAjZGVmaW5lIEJDTV9VU0JfUFJPRFVDVF9J RF9UMyAJMHgwMzAwDQogI2RlZmluZSBCQ01fVVNCX1BST0RVQ1RfSURfVDNCIAkweDAyMTANCiAj ZGVmaW5lIEJDTV9VU0JfUFJPRFVDVF9JRF9UM0wgCTB4MDIyMA0KLSNkZWZpbmUgQkNNX1VTQl9Q Uk9EVUNUX0lEX1NNMjUwIAkweGJjY2QNCiAjZGVmaW5lIEJDTV9VU0JfUFJPRFVDVF9JRF9TWU0g IDB4MTVFDQogI2RlZmluZSBCQ01fVVNCX1BST0RVQ1RfSURfMTkwMSAweGUwMTcNCi0jZGVmaW5l IEJDTV9VU0JfUFJPRFVDVF9JRF8yMjYgIDB4MDEzMg0KKyNkZWZpbmUgQkNNX1VTQl9QUk9EVUNU X0lEXzIyNgkweDAxMzIgLyogbm90IHN1cmUgaWYgdGhpcyBpcyB2YWxpZCAqLw0KKyNkZWZpbmUg QkNNX1VTQl9QUk9EVUNUX0lEX1pURV8yMjYgMHgxNzINCisjZGVmaW5lIEJDTV9VU0JfUFJPRFVD VF9JRF9aVEVfMzI2IDB4MTczIC8qIFpURSBBWDMyNiAqLw0KICNkZWZpbmUgQkNNX1VTQl9QUk9E VUNUX0lEX1pURV9UVTI1IDB4MDAwNw0KIA0KICNkZWZpbmUgQkNNX1VTQl9NSU5PUl9CQVNFIAkJ MTkyDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9kcGMuYyBiL2RyaXZlcnMv c3RhZ2luZy92dDY2NTYvZHBjLmMNCmluZGV4IDA4MDIxZjQuLjQ2NjRlOWQgMTAwNjQ0DQotLS0g YS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L2RwYy5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvdnQ2 NjU2L2RwYy5jDQpAQCAtMTIzOCw3ICsxMjM4LDcgQEAgc3RhdGljIEJPT0wgc19iSGFuZGxlUnhF bmNyeXB0aW9uICgNCiANCiAgICAgICAgIFBheWxvYWRMZW4gLT0gKFdMQU5fSERSX0FERFIzX0xF TiArIDggKyA0KTsgLy8gMjQgaXMgODAyLjExIGhlYWRlciwgOCBpcyBJViZFeHRJViwgNCBpcyBj cmMNCiAgICAgICAgICpwZHdSeFRTQzQ3XzE2ID0gY3B1X3RvX2xlMzIoKihQRFdPUkQpKHBieUlW ICsgNCkpOw0KLSAgICAgICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyJFeHRJ VjogJWx4XG4iLCpwZHdSeFRTQzQ3XzE2KTsNCisJREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtF Uk5fSU5GTyJFeHRJVjogJXhcbiIsICpwZHdSeFRTQzQ3XzE2KTsNCiAgICAgICAgIGlmIChieURl Y01vZGUgPT0gS0VZX0NUTF9US0lQKSB7DQogICAgICAgICAgICAgKnB3UnhUU0MxNV8wID0gY3B1 X3RvX2xlMTYoTUFLRVdPUkQoKihwYnlJVisyKSwgKnBieUlWKSk7DQogICAgICAgICB9IGVsc2Ug ew0KQEAgLTEzNDksNyArMTM0OSw3IEBAIHN0YXRpYyBCT09MIHNfYkhvc3RXZXBSeEVuY3J5cHRp b24gKA0KIA0KICAgICAgICAgUGF5bG9hZExlbiAtPSAoV0xBTl9IRFJfQUREUjNfTEVOICsgOCAr IDQpOyAvLyAyNCBpcyA4MDIuMTEgaGVhZGVyLCA4IGlzIElWJkV4dElWLCA0IGlzIGNyYw0KICAg ICAgICAgKnBkd1J4VFNDNDdfMTYgPSBjcHVfdG9fbGUzMigqKFBEV09SRCkocGJ5SVYgKyA0KSk7 DQotICAgICAgICBEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPIkV4dElWOiAlbHhc biIsKnBkd1J4VFNDNDdfMTYpOw0KKwlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZP IkV4dElWOiAleFxuIiwgKnBkd1J4VFNDNDdfMTYpOw0KIA0KICAgICAgICAgaWYgKGJ5RGVjTW9k ZSA9PSBLRVlfQ1RMX1RLSVApIHsNCiAgICAgICAgICAgICAqcHdSeFRTQzE1XzAgPSBjcHVfdG9f bGUxNihNQUtFV09SRCgqKHBieUlWKzIpLCAqcGJ5SVYpKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJz L3N0YWdpbmcvdnQ2NjU2L2tleS5jIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9rZXkuYw0KaW5k ZXggMjdiYjUyMy4uZmQ5M2U4MyAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYv a2V5LmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYva2V5LmMNCkBAIC0yMjMsNyArMjIz LDcgQEAgQk9PTCBLZXliU2V0S2V5KA0KICAgICBQU0tleU1hbmFnZW1lbnQgcFRhYmxlLA0KICAg ICBQQllURSAgICAgICAgICAgcGJ5QlNTSUQsDQogICAgIERXT1JEICAgICAgICAgICBkd0tleUlu ZGV4LA0KLSAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICB1S2V5TGVuZ3RoLA0KKwl1MzIgdUtl eUxlbmd0aCwNCiAgICAgUFFXT1JEICAgICAgICAgIHBLZXlSU0MsDQogICAgIFBCWVRFICAgICAg ICAgICBwYnlLZXksDQogICAgIEJZVEUgICAgICAgICAgICBieUtleURlY01vZGUNCkBAIC0yMzUs NyArMjM1LDggQEAgQk9PTCBLZXliU2V0S2V5KA0KICAgICBQU0tleUl0ZW0gICBwS2V5Ow0KICAg ICB1bnNpZ25lZCBpbnQgICAgICAgIHVLZXlJZHg7DQogDQotICAgIERCR19QUlQoTVNHX0xFVkVM X0RFQlVHLCBLRVJOX0lORk8iRW50ZXIgS2V5YlNldEtleTogJWxYXG4iLCBkd0tleUluZGV4KTsN CisJREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTw0KKwkJIkVudGVyIEtleWJTZXRL ZXk6ICVYXG4iLCBkd0tleUluZGV4KTsNCiANCiAgICAgaiA9IChNQVhfS0VZX1RBQkxFLTEpOw0K ICAgICBmb3IgKGk9MDtpPChNQVhfS0VZX1RBQkxFLTEpO2krKykgew0KQEAgLTI2MSw3ICsyNjIs OSBAQCBCT09MIEtleWJTZXRLZXkoDQogICAgICAgICAgICAgICAgIGlmICgoZHdLZXlJbmRleCAm IFRSQU5TTUlUX0tFWSkgIT0gMCkgIHsNCiAgICAgICAgICAgICAgICAgICAgIC8vIEdyb3VwIHRy YW5zbWl0IGtleQ0KICAgICAgICAgICAgICAgICAgICAgcFRhYmxlLT5LZXlUYWJsZVtpXS5kd0dU S2V5SW5kZXggPSBkd0tleUluZGV4Ow0KLSAgICAgICAgICAgICAgICAgICAgREJHX1BSVChNU0df TEVWRUxfREVCVUcsIEtFUk5fSU5GTyJHcm91cCB0cmFuc21pdCBrZXkoUilbJWxYXTogJWRcbiIs IHBUYWJsZS0+S2V5VGFibGVbaV0uZHdHVEtleUluZGV4LCBpKTsNCisJCQlEQkdfUFJUKE1TR19M RVZFTF9ERUJVRywgS0VSTl9JTkZPDQorCQkJCSJHcm91cCB0cmFuc21pdCBrZXkoUilbJVhdOiAl ZFxuIiwNCisJCQkJCXBUYWJsZS0+S2V5VGFibGVbaV0uZHdHVEtleUluZGV4LCBpKTsNCiAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICBwVGFibGUtPktleVRhYmxlW2ldLndLZXlD dGwgJj0gMHhGRjBGOyAgICAgICAgICAvLyBjbGVhciBncm91cCBrZXkgY29udHJvbCBmaWxlZA0K ICAgICAgICAgICAgICAgICBwVGFibGUtPktleVRhYmxlW2ldLndLZXlDdGwgfD0gKGJ5S2V5RGVj TW9kZSA8PCA0KTsNCkBAIC0zMDIsOSArMzA1LDEyIEBAIEJPT0wgS2V5YlNldEtleSgNCiAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5G TyJcbiIpOw0KIA0KLSAgICAgICAgICAgIERCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lO Rk8icEtleS0+ZHdUU0M0N18xNjogJWx4XG4gIiwgcEtleS0+ZHdUU0M0N18xNik7DQotICAgICAg ICAgICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyJwS2V5LT53VFNDMTVfMDog JXhcbiAiLCBwS2V5LT53VFNDMTVfMCk7DQotICAgICAgICAgICAgREJHX1BSVChNU0dfTEVWRUxf REVCVUcsIEtFUk5fSU5GTyJwS2V5LT5kd0tleUluZGV4OiAlbHhcbiAiLCBwS2V5LT5kd0tleUlu ZGV4KTsNCisJCURCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8icEtleS0+ZHdUU0M0 N18xNjogJXhcbiAiLA0KKwkJCXBLZXktPmR3VFNDNDdfMTYpOw0KKwkJREJHX1BSVChNU0dfTEVW RUxfREVCVUcsIEtFUk5fSU5GTyJwS2V5LT53VFNDMTVfMDogJXhcbiAiLA0KKwkJCXBLZXktPndU U0MxNV8wKTsNCisJCURCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8icEtleS0+ZHdL ZXlJbmRleDogJXhcbiAiLA0KKwkJCXBLZXktPmR3S2V5SW5kZXgpOw0KIA0KICAgICAgICAgICAg IHJldHVybiAoVFJVRSk7DQogICAgICAgICB9DQpAQCAtMzI2LDcgKzMzMiw5IEBAIEJPT0wgS2V5 YlNldEtleSgNCiAgICAgICAgICAgICBpZiAoKGR3S2V5SW5kZXggJiBUUkFOU01JVF9LRVkpICE9 IDApICB7DQogICAgICAgICAgICAgICAgIC8vIEdyb3VwIHRyYW5zbWl0IGtleQ0KICAgICAgICAg ICAgICAgICBwVGFibGUtPktleVRhYmxlW2pdLmR3R1RLZXlJbmRleCA9IGR3S2V5SW5kZXg7DQot ICAgICAgICAgICAgICAgIERCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8iR3JvdXAg dHJhbnNtaXQga2V5KE4pWyVsWF06ICVkXG4iLCBwVGFibGUtPktleVRhYmxlW2pdLmR3R1RLZXlJ bmRleCwgaik7DQorCQlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPDQorCQkJIkdy b3VwIHRyYW5zbWl0IGtleShOKVslWF06ICVkXG4iLA0KKwkJCQlwVGFibGUtPktleVRhYmxlW2pd LmR3R1RLZXlJbmRleCwgaik7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgICAgIHBUYWJsZS0+ S2V5VGFibGVbal0ud0tleUN0bCAmPSAweEZGMEY7ICAgICAgICAgIC8vIGNsZWFyIGdyb3VwIGtl eSBjb250cm9sIGZpbGVkDQogICAgICAgICAgICAgcFRhYmxlLT5LZXlUYWJsZVtqXS53S2V5Q3Rs IHw9IChieUtleURlY01vZGUgPDwgNCk7DQpAQCAtMzY3LDkgKzM3NSwxMSBAQCBCT09MIEtleWJT ZXRLZXkoDQogICAgICAgICB9DQogICAgICAgICBEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VS Tl9JTkZPIlxuIik7DQogDQotICAgICAgICBEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9J TkZPInBLZXktPmR3VFNDNDdfMTY6ICVseFxuICIsIHBLZXktPmR3VFNDNDdfMTYpOw0KKwlEQkdf UFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPInBLZXktPmR3VFNDNDdfMTY6ICV4XG4gIiwN CisJCXBLZXktPmR3VFNDNDdfMTYpOw0KICAgICAgICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcs IEtFUk5fSU5GTyJwS2V5LT53VFNDMTVfMDogJXhcbiAiLCBwS2V5LT53VFNDMTVfMCk7DQotICAg ICAgICBEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPInBLZXktPmR3S2V5SW5kZXg6 ICVseFxuICIsIHBLZXktPmR3S2V5SW5kZXgpOw0KKwlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywg S0VSTl9JTkZPInBLZXktPmR3S2V5SW5kZXg6ICV4XG4gIiwNCisJCXBLZXktPmR3S2V5SW5kZXgp Ow0KIA0KICAgICAgICAgcmV0dXJuIChUUlVFKTsNCiAgICAgfQ0KQEAgLTU5Nyw3ICs2MDcsOCBA QCBCT09MIEtleWJHZXRUcmFuc21pdEtleShQU0tleU1hbmFnZW1lbnQgcFRhYmxlLCBQQllURSBw YnlCU1NJRCwgRFdPUkQgZHdLZXlUeXBlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE QkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPIiV4ICIsIHBUYWJsZS0+S2V5VGFibGVb aV0uYWJ5QlNTSURbaWldKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyJcbiIpOw0K LSAgICAgICAgICAgICAgICAgICAgICAgIERCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lO Rk8iZHdHVEtleUluZGV4OiAlbFhcbiIsIHBUYWJsZS0+S2V5VGFibGVbaV0uZHdHVEtleUluZGV4 KTsNCisJCQlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPImR3R1RLZXlJbmRleDog JVhcbiIsDQorCQkJCXBUYWJsZS0+S2V5VGFibGVbaV0uZHdHVEtleUluZGV4KTsNCiANCiAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAoVFJVRSk7DQogICAgICAgICAgICAgICAgIH0NCkBAIC02 NjQsNyArNjc1LDcgQEAgQk9PTCBLZXliU2V0RGVmYXVsdEtleSgNCiAgICAgdm9pZCAqcERldmlj ZUhhbmRsZXIsDQogICAgIFBTS2V5TWFuYWdlbWVudCBwVGFibGUsDQogICAgIERXT1JEICAgICAg ICAgICBkd0tleUluZGV4LA0KLSAgICB1bnNpZ25lZCBsb25nICAgICAgICAgICB1S2V5TGVuZ3Ro LA0KKwl1MzIgdUtleUxlbmd0aCwNCiAgICAgUFFXT1JEICAgICAgICAgIHBLZXlSU0MsDQogICAg IFBCWVRFICAgICAgICAgICBwYnlLZXksDQogICAgIEJZVEUgICAgICAgICAgICBieUtleURlY01v ZGUNCkBAIC02OTMsNyArNzA0LDEwIEBAIEJPT0wgS2V5YlNldERlZmF1bHRLZXkoDQogICAgIGlm ICgoZHdLZXlJbmRleCAmIFRSQU5TTUlUX0tFWSkgIT0gMCkgIHsNCiAgICAgICAgIC8vIEdyb3Vw IHRyYW5zbWl0IGtleQ0KICAgICAgICAgcFRhYmxlLT5LZXlUYWJsZVtNQVhfS0VZX1RBQkxFLTFd LmR3R1RLZXlJbmRleCA9IGR3S2V5SW5kZXg7DQotICAgICAgICBEQkdfUFJUKE1TR19MRVZFTF9E RUJVRywgS0VSTl9JTkZPIkdyb3VwIHRyYW5zbWl0IGtleShSKVslbFhdOiAlZFxuIiwgcFRhYmxl LT5LZXlUYWJsZVtNQVhfS0VZX1RBQkxFLTFdLmR3R1RLZXlJbmRleCwgTUFYX0tFWV9UQUJMRS0x KTsNCisJCURCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8NCisJCSJHcm91cCB0cmFu c21pdCBrZXkoUilbJVhdOiAlZFxuIiwNCisJCXBUYWJsZS0+S2V5VGFibGVbTUFYX0tFWV9UQUJM RS0xXS5kd0dUS2V5SW5kZXgsDQorCQlNQVhfS0VZX1RBQkxFLTEpOw0KIA0KICAgICB9DQogICAg IHBUYWJsZS0+S2V5VGFibGVbTUFYX0tFWV9UQUJMRS0xXS53S2V5Q3RsICY9IDB4N0YwMDsgICAg ICAgICAgLy8gY2xlYXIgYWxsIGtleSBjb250cm9sIGZpbGVkDQpAQCAtNzQ0LDkgKzc1OCwxMSBA QCBCT09MIEtleWJTZXREZWZhdWx0S2V5KA0KICAgICB9DQogICAgIERCR19QUlQoTVNHX0xFVkVM X0RFQlVHLCBLRVJOX0lORk8iXG4iKTsNCiANCi0gICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcs IEtFUk5fSU5GTyJwS2V5LT5kd1RTQzQ3XzE2OiAlbHhcbiIsIHBLZXktPmR3VFNDNDdfMTYpOw0K KwlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPInBLZXktPmR3VFNDNDdfMTY6ICV4 XG4iLA0KKwkJcEtleS0+ZHdUU0M0N18xNik7DQogICAgIERCR19QUlQoTVNHX0xFVkVMX0RFQlVH LCBLRVJOX0lORk8icEtleS0+d1RTQzE1XzA6ICV4XG4iLCBwS2V5LT53VFNDMTVfMCk7DQotICAg IERCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8icEtleS0+ZHdLZXlJbmRleDogJWx4 XG4iLCBwS2V5LT5kd0tleUluZGV4KTsNCisJREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5f SU5GTyJwS2V5LT5kd0tleUluZGV4OiAleFxuIiwNCisJCXBLZXktPmR3S2V5SW5kZXgpOw0KIA0K ICAgICByZXR1cm4gKFRSVUUpOw0KIH0NCkBAIC03NzIsNyArNzg4LDcgQEAgQk9PTCBLZXliU2V0 QWxsR3JvdXBLZXkoDQogICAgIHZvaWQgKnBEZXZpY2VIYW5kbGVyLA0KICAgICBQU0tleU1hbmFn ZW1lbnQgcFRhYmxlLA0KICAgICBEV09SRCAgICAgICAgICAgZHdLZXlJbmRleCwNCi0gICAgdW5z aWduZWQgbG9uZyAgICAgICAgICAgdUtleUxlbmd0aCwNCisJdTMyIHVLZXlMZW5ndGgsDQogICAg IFBRV09SRCAgICAgICAgICBwS2V5UlNDLA0KICAgICBQQllURSAgICAgICAgICAgcGJ5S2V5LA0K ICAgICBCWVRFICAgICAgICAgICAgYnlLZXlEZWNNb2RlDQpAQCAtNzg0LDcgKzgwMCw4IEBAIEJP T0wgS2V5YlNldEFsbEdyb3VwS2V5KA0KICAgICBQU0tleUl0ZW0gICBwS2V5Ow0KICAgICB1bnNp Z25lZCBpbnQgICAgICAgIHVLZXlJZHg7DQogDQotICAgIERCR19QUlQoTVNHX0xFVkVMX0RFQlVH LCBLRVJOX0lORk8iRW50ZXIgS2V5YlNldEFsbEdyb3VwS2V5OiAlbFhcbiIsIGR3S2V5SW5kZXgp Ow0KKwlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPIkVudGVyIEtleWJTZXRBbGxH cm91cEtleTogJVhcbiIsDQorCQlkd0tleUluZGV4KTsNCiANCiANCiAgICAgaWYgKChkd0tleUlu ZGV4ICYgUEFJUldJU0VfS0VZKSAhPSAwKSB7ICAgICAgICAgICAgICAgICAgLy8gUGFpcndpc2Ug a2V5DQpAQCAtODAxLDcgKzgxOCw5IEBAIEJPT0wgS2V5YlNldEFsbEdyb3VwS2V5KA0KICAgICAg ICAgICAgIGlmICgoZHdLZXlJbmRleCAmIFRSQU5TTUlUX0tFWSkgIT0gMCkgIHsNCiAgICAgICAg ICAgICAgICAgLy8gR3JvdXAgdHJhbnNtaXQga2V5DQogICAgICAgICAgICAgICAgIHBUYWJsZS0+ S2V5VGFibGVbaV0uZHdHVEtleUluZGV4ID0gZHdLZXlJbmRleDsNCi0gICAgICAgICAgICAgICAg REJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyJHcm91cCB0cmFuc21pdCBrZXkoUilb JWxYXTogJWRcbiIsIHBUYWJsZS0+S2V5VGFibGVbaV0uZHdHVEtleUluZGV4LCBpKTsNCisJCURC R19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8NCisJCQkiR3JvdXAgdHJhbnNtaXQga2V5 KFIpWyVYXTogJWRcbiIsDQorCQkJcFRhYmxlLT5LZXlUYWJsZVtpXS5kd0dUS2V5SW5kZXgsIGkp Ow0KIA0KICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICBwVGFibGUtPktleVRhYmxlW2ldLndL ZXlDdGwgJj0gMHhGRjBGOyAgICAgICAgICAvLyBjbGVhciBncm91cCBrZXkgY29udHJvbCBmaWxl ZA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYva2V5LmggYi9kcml2ZXJzL3N0 YWdpbmcvdnQ2NjU2L2tleS5oDQppbmRleCBmNzQ5YzdhLi5iZDM1ZDM5IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9rZXkuaA0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1 Ni9rZXkuaA0KQEAgLTU4LDcgKzU4LDcgQEANCiB0eXBlZGVmIHN0cnVjdCB0YWdTS2V5SXRlbQ0K IHsNCiAgICAgQk9PTCAgICAgICAgYktleVZhbGlkOw0KLSAgICB1bnNpZ25lZCBsb25nICAgICAg IHVLZXlMZW5ndGg7DQorCXUzMiB1S2V5TGVuZ3RoOw0KICAgICBCWVRFICAgICAgICBhYnlLZXlb TUFYX0tFWV9MRU5dOw0KICAgICBRV09SRCAgICAgICBLZXlSU0M7DQogICAgIERXT1JEICAgICAg IGR3VFNDNDdfMTY7DQpAQCAtMTA3LDcgKzEwNyw3IEBAIEJPT0wgS2V5YlNldEtleSgNCiAgICAg UFNLZXlNYW5hZ2VtZW50IHBUYWJsZSwNCiAgICAgUEJZVEUgICAgICAgICAgIHBieUJTU0lELA0K ICAgICBEV09SRCAgICAgICAgICAgZHdLZXlJbmRleCwNCi0gICAgdW5zaWduZWQgbG9uZyAgICAg ICAgICAgdUtleUxlbmd0aCwNCisJdTMyIHVLZXlMZW5ndGgsDQogICAgIFBRV09SRCAgICAgICAg ICBwS2V5UlNDLA0KICAgICBQQllURSAgICAgICAgICAgcGJ5S2V5LA0KICAgICBCWVRFICAgICAg ICAgICAgYnlLZXlEZWNNb2RlDQpAQCAtMTQ2LDcgKzE0Niw3IEBAIEJPT0wgS2V5YlNldERlZmF1 bHRLZXkoDQogICAgIHZvaWQgKnBEZXZpY2VIYW5kbGVyLA0KICAgICBQU0tleU1hbmFnZW1lbnQg cFRhYmxlLA0KICAgICBEV09SRCAgICAgICAgICAgZHdLZXlJbmRleCwNCi0gICAgdW5zaWduZWQg bG9uZyAgICAgICAgICAgdUtleUxlbmd0aCwNCisJdTMyIHVLZXlMZW5ndGgsDQogICAgIFBRV09S RCAgICAgICAgICBwS2V5UlNDLA0KICAgICBQQllURSAgICAgICAgICAgcGJ5S2V5LA0KICAgICBC WVRFICAgICAgICAgICAgYnlLZXlEZWNNb2RlDQpAQCAtMTU2LDcgKzE1Niw3IEBAIEJPT0wgS2V5 YlNldEFsbEdyb3VwS2V5KA0KICAgICB2b2lkICpwRGV2aWNlSGFuZGxlciwNCiAgICAgUFNLZXlN YW5hZ2VtZW50IHBUYWJsZSwNCiAgICAgRFdPUkQgICAgICAgICAgIGR3S2V5SW5kZXgsDQotICAg IHVuc2lnbmVkIGxvbmcgICAgICAgICAgIHVLZXlMZW5ndGgsDQorCXUzMiB1S2V5TGVuZ3RoLA0K ICAgICBQUVdPUkQgICAgICAgICAgcEtleVJTQywNCiAgICAgUEJZVEUgICAgICAgICAgIHBieUtl eSwNCiAgICAgQllURSAgICAgICAgICAgIGJ5S2V5RGVjTW9kZQ0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvc3RhZ2luZy92dDY2NTYvbWFjLmMgYi9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L21hYy5jDQpp bmRleCAyNmMxOWQxLi4wNjM2ZDgyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1 Ni9tYWMuYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9tYWMuYw0KQEAgLTI2Miw3ICsy NjIsOCBAQCBCWVRFICAgICAgICAgICAgcGJ5RGF0YVsyNF07DQogICAgIGR3RGF0YTEgPDw9IDE2 Ow0KICAgICBkd0RhdGExIHw9IE1BS0VXT1JEKCoocGJ5QWRkcis0KSwgKihwYnlBZGRyKzUpKTsN CiANCi0gICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyIxLiB3T2Zmc2V0OiAl ZCwgRGF0YTogJWxYLCBLZXlDdGw6JVhcbiIsIHdPZmZzZXQsIGR3RGF0YTEsIHdLZXlDdGwpOw0K KwlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPIjEuIHdPZmZzZXQ6ICVkLCBEYXRh OiAlWCwiXA0KKwkJIiBLZXlDdGw6JVhcbiIsIHdPZmZzZXQsIGR3RGF0YTEsIHdLZXlDdGwpOw0K IA0KICAgICAvL1ZOU3ZPdXRQb3J0Vyhkd0lvQmFzZSArIE1BQ19SRUdfTUlTQ0ZGTkRFWCwgd09m ZnNldCk7DQogICAgIC8vVk5Tdk91dFBvcnREKGR3SW9CYXNlICsgTUFDX1JFR19NSVNDRkZEQVRB LCBkd0RhdGEpOw0KQEAgLTI3OSw3ICsyODAsOCBAQCBCWVRFICAgICAgICAgICAgcGJ5RGF0YVsy NF07DQogICAgIGR3RGF0YTIgPDw9IDg7DQogICAgIGR3RGF0YTIgfD0gKihwYnlBZGRyKzApOw0K IA0KLSAgICBEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPIjIuIHdPZmZzZXQ6ICVk LCBEYXRhOiAlbFhcbiIsIHdPZmZzZXQsIGR3RGF0YTIpOw0KKwlEQkdfUFJUKE1TR19MRVZFTF9E RUJVRywgS0VSTl9JTkZPIjIuIHdPZmZzZXQ6ICVkLCBEYXRhOiAlWFxuIiwNCisJCXdPZmZzZXQs IGR3RGF0YTIpOw0KIA0KICAgICAvL1ZOU3ZPdXRQb3J0Vyhkd0lvQmFzZSArIE1BQ19SRUdfTUlT Q0ZGTkRFWCwgd09mZnNldCk7DQogICAgIC8vVk5Tdk91dFBvcnREKGR3SW9CYXNlICsgTUFDX1JF R19NSVNDRkZEQVRBLCBkd0RhdGEpOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy92dDY2 NTYvcmYuYyBiL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvcmYuYw0KaW5kZXggM2ZkMDQ3OC4uOGNm MDg4MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvcmYuYw0KKysrIGIvZHJp dmVycy9zdGFnaW5nL3Z0NjY1Ni9yZi5jDQpAQCAtNzY5LDYgKzc2OSw5IEBAIEJZVEUgICAgYnlQ d3IgPSBwRGV2aWNlLT5ieUNDS1B3cjsNCiAgICAgICAgIHJldHVybiBUUlVFOw0KICAgICB9DQog DQorCWlmICh1Q0ggPT0gMCkNCisJCXJldHVybiAtRUlOVkFMOw0KKw0KICAgICBzd2l0Y2ggKHVS QVRFKSB7DQogICAgIGNhc2UgUkFURV8xTToNCiAgICAgY2FzZSBSQVRFXzJNOg0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvcnh0eC5jIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1 Ni9yeHR4LmMNCmluZGV4IGZlMjE4NjguLjNiZWIxMjYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0 YWdpbmcvdnQ2NjU2L3J4dHguYw0KKysrIGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni9yeHR4LmMN CkBAIC0zNzcsNyArMzc3LDggQEAgc192RmlsbFR4S2V5ICgNCiAgICAgICAgICoocGJ5SVZIZWFk KzMpID0gKEJZVEUpKCgocERldmljZS0+YnlLZXlJbmRleCA8PCA2KSAmIDB4YzApIHwgMHgyMCk7 IC8vIDB4MjAgaXMgRXh0SVYNCiAgICAgICAgIC8vIEFwcGVuZCBJViZFeHRJViBhZnRlciBNYWMg SGVhZGVyDQogICAgICAgICAqcGR3RXh0SVYgPSBjcHVfdG9fbGUzMihwVHJhbnNtaXRLZXktPmR3 VFNDNDdfMTYpOw0KLSAgICAgICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyJ2 RmlsbFR4S2V5KCktLS0tIHBkd0V4dElWOiAlbHhcbiIsICpwZHdFeHRJVik7DQorCURCR19QUlQo TVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8idkZpbGxUeEtleSgpLS0tLSBwZHdFeHRJVjogJXhc biIsDQorCQkqcGR3RXh0SVYpOw0KIA0KICAgICB9IGVsc2UgaWYgKHBUcmFuc21pdEtleS0+YnlD aXBoZXJTdWl0ZSA9PSBLRVlfQ1RMX0NDTVApIHsNCiAgICAgICAgIHBUcmFuc21pdEtleS0+d1RT QzE1XzArKzsNCkBAIC0xNzUzLDcgKzE3NTQsOCBAQCBzX2JQYWNrZXRUb1dpcmVsZXNzVXNiKA0K ICAgICAgICAgTUlDX3ZBcHBlbmQoKFBCWVRFKSYocHNFdGhIZWFkZXItPmFieURzdEFkZHJbMF0p LCAxMik7DQogICAgICAgICBkd01JQ19Qcmlvcml0eSA9IDA7DQogICAgICAgICBNSUNfdkFwcGVu ZCgoUEJZVEUpJmR3TUlDX1ByaW9yaXR5LCA0KTsNCi0gICAgICAgIERCR19QUlQoTVNHX0xFVkVM X0RFQlVHLCBLRVJOX0lORk8iTUlDIEtFWTogJWxYLCAlbFhcbiIsIGR3TUlDS2V5MCwgZHdNSUNL ZXkxKTsNCisJREJHX1BSVChNU0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyJNSUMgS0VZOiAlWCwg JVhcbiIsDQorCQlkd01JQ0tleTAsIGR3TUlDS2V5MSk7DQogDQogICAgICAgICAvLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v DQogDQpAQCAtMjYzNSw3ICsyNjM3LDggQEAgdkRNQTBfdHhfODAyMTEoUFNEZXZpY2UgIHBEZXZp Y2UsIHN0cnVjdCBza19idWZmICpza2IpIHsNCiAgICAgICAgICAgICBNSUNfdkFwcGVuZCgoUEJZ VEUpJihzRXRoSGVhZGVyLmFieURzdEFkZHJbMF0pLCAxMik7DQogICAgICAgICAgICAgZHdNSUNf UHJpb3JpdHkgPSAwOw0KICAgICAgICAgICAgIE1JQ192QXBwZW5kKChQQllURSkmZHdNSUNfUHJp b3JpdHksIDQpOw0KLSAgICAgICAgICAgIERCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lO Rk8iRE1BMF90eF84MDIxOk1JQyBLRVk6ICVsWCwgJWxYXG4iLCBkd01JQ0tleTAsIGR3TUlDS2V5 MSk7DQorCQlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPIkRNQTBfdHhfODAyMTpN SUMgS0VZOiJcDQorCQkJIiAlWCwgJVhcbiIsIGR3TUlDS2V5MCwgZHdNSUNLZXkxKTsNCiANCiAg ICAgICAgICAgICB1TGVuZ3RoID0gY2JIZWFkZXJTaXplICsgY2JNYWNIZExlbiArIHVQYWRkaW5n ICsgY2JJVmxlbjsNCiANCkBAIC0yNjU1LDcgKzI2NTgsOCBAQCB2RE1BMF90eF84MDIxMShQU0Rl dmljZSAgcERldmljZSwgc3RydWN0IHNrX2J1ZmYgKnNrYikgew0KIA0KICAgICAgICAgICAgIERC R19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8idUxlbmd0aDogJWQsICVkXG4iLCB1TGVu Z3RoLCBjYkZyYW1lQm9keVNpemUpOw0KICAgICAgICAgICAgIERCR19QUlQoTVNHX0xFVkVMX0RF QlVHLCBLRVJOX0lORk8iY2JSZXFDb3VudDolZCwgJWQsICVkLCAlZFxuIiwgY2JSZXFDb3VudCwg Y2JIZWFkZXJTaXplLCB1UGFkZGluZywgY2JJVmxlbik7DQotICAgICAgICAgICAgREJHX1BSVChN U0dfTEVWRUxfREVCVUcsIEtFUk5fSU5GTyJNSUM6JWx4LCAlbHhcbiIsICpwZHdNSUNfTCwgKnBk d01JQ19SKTsNCisJCURCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8iTUlDOiV4LCAl eFxuIiwNCisJCQkqcGR3TUlDX0wsICpwZHdNSUNfUik7DQogDQogICAgICAgICB9DQogDQpAQCAt MzAyOSw3ICszMDMzLDggQEAgaW50IG5zRE1BX3R4X3BhY2tldChQU0RldmljZSBwRGV2aWNlLCB1 bnNpZ25lZCBpbnQgdURNQUlkeCwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAgICAgICAgICAgICAg ICAgICAgICAgICBEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPImVycm9yOiBLRVkg aXMgR1RLISF+flxuIik7DQogICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgICBlbHNlIHsNCi0gICAgICAgICAgICAgICAgICAgICAgICBEQkdfUFJUKE1TR19MRVZFTF9E RUJVRywgS0VSTl9JTkZPIkZpbmQgUFRLIFslbFhdXG4iLCBwVHJhbnNtaXRLZXktPmR3S2V5SW5k ZXgpOw0KKwkJCURCR19QUlQoTVNHX0xFVkVMX0RFQlVHLCBLRVJOX0lORk8iRmluZCBQVEsgWyVY XVxuIiwNCisJCQkJcFRyYW5zbWl0S2V5LT5kd0tleUluZGV4KTsNCiAgICAgICAgICAgICAgICAg ICAgICAgICBiTmVlZEVuY3J5cHRpb24gPSBUUlVFOw0KICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICB9DQpAQCAtMzA0Myw3ICszMDQ4LDggQEAgaW50IG5zRE1BX3R4X3Bh Y2tldChQU0RldmljZSBwRGV2aWNlLCB1bnNpZ25lZCBpbnQgdURNQUlkeCwgc3RydWN0IHNrX2J1 ZmYgKnNrYikNCiAgICAgICAgICAgICBpZiAocERldmljZS0+YkVuYWJsZUhvc3RXRVApIHsNCiAg ICAgICAgICAgICAgICAgaWYgKCh1Tm9kZUluZGV4ICE9IDApICYmDQogICAgICAgICAgICAgICAg ICAgICAocE1nbXQtPnNOb2RlREJUYWJsZVt1Tm9kZUluZGV4XS5kd0tleUluZGV4ICYgUEFJUldJ U0VfS0VZKSkgew0KLSAgICAgICAgICAgICAgICAgICAgREJHX1BSVChNU0dfTEVWRUxfREVCVUcs IEtFUk5fSU5GTyJGaW5kIFBUSyBbJWxYXVxuIiwgcFRyYW5zbWl0S2V5LT5kd0tleUluZGV4KTsN CisJCQlEQkdfUFJUKE1TR19MRVZFTF9ERUJVRywgS0VSTl9JTkZPIkZpbmQgUFRLIFslWF1cbiIs DQorCQkJCXBUcmFuc21pdEtleS0+ZHdLZXlJbmRleCk7DQogICAgICAgICAgICAgICAgICAgICBi TmVlZEVuY3J5cHRpb24gPSBUUlVFOw0KICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni90dHlwZS5oIGIvZHJpdmVy cy9zdGFnaW5nL3Z0NjY1Ni90dHlwZS5oDQppbmRleCA4ZTk0NTBlLi5kZmJmNzQ3IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni90dHlwZS5oDQorKysgYi9kcml2ZXJzL3N0YWdp bmcvdnQ2NjU2L3R0eXBlLmgNCkBAIC0yOSw2ICsyOSw4IEBADQogI2lmbmRlZiBfX1RUWVBFX0hf Xw0KICNkZWZpbmUgX19UVFlQRV9IX18NCiANCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4NCisN CiAvKioqKioqKiBDb21tb24gZGVmaW5pdGlvbnMgYW5kIHR5cGVkZWZzICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLw0KIA0KIHR5cGVkZWYgaW50ICAgICAgICAgICAgIEJPT0w7 DQpAQCAtNDIsMTcgKzQ0LDE3IEBAIHR5cGVkZWYgaW50ICAgICAgICAgICAgIEJPT0w7DQogDQog LyoqKioqKiBTaW1wbGUgdHlwZWRlZnMgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8NCiANCi10eXBlZGVmIHVuc2lnbmVkIGNoYXIgICBCWVRFOyAg ICAgICAgICAgLy8gIDgtYml0DQotdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCAgV09SRDsgICAgICAg ICAgIC8vIDE2LWJpdA0KLXR5cGVkZWYgdW5zaWduZWQgbG9uZyAgIERXT1JEOyAgICAgICAgICAv LyAzMi1iaXQNCit0eXBlZGVmIHU4IEJZVEU7DQordHlwZWRlZiB1MTYgV09SRDsNCit0eXBlZGVm IHUzMiBEV09SRDsNCiANCiAvLyBRV09SRCBpcyBmb3IgdGhvc2Ugc2l0dWF0aW9uIHRoYXQgd2Ug d2FudA0KIC8vIGFuIDgtYnl0ZS1hbGlnbmVkIDggYnl0ZSBsb25nIHN0cnVjdHVyZQ0KIC8vIHdo aWNoIGlzIE5PVCByZWFsbHkgYSBmbG9hdGluZyBwb2ludCBudW1iZXIuDQogdHlwZWRlZiB1bmlv biB0YWdVUXVhZFdvcmQgew0KICAgICBzdHJ1Y3Qgew0KLSAgICAgICAgRFdPUkQgICBkd0xvd0R3 b3JkOw0KLSAgICAgICAgRFdPUkQgICBkd0hpZ2hEd29yZDsNCisJdTMyIGR3TG93RHdvcmQ7DQor CXUzMiBkd0hpZ2hEd29yZDsNCiAgICAgfSB1Ow0KICAgICBkb3VibGUgICAgICBEb05vdFVzZVRo aXNGaWVsZDsNCiB9IFVRdWFkV29yZDsNCkBAIC02MCw4ICs2Miw4IEBAIHR5cGVkZWYgVVF1YWRX b3JkICAgICAgIFFXT1JEOyAgICAgICAgICAvLyA2NC1iaXQNCiANCiAvKioqKioqIENvbW1vbiBw b2ludGVyIHR5cGVzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLw0KIA0KLXR5cGVkZWYgdW5zaWduZWQgbG9uZyAgIFVMT05HX1BUUjsgICAgICAvLyAzMi1i aXQNCi10eXBlZGVmIHVuc2lnbmVkIGxvbmcgICBEV09SRF9QVFI7ICAgICAgLy8gMzItYml0DQor dHlwZWRlZiB1MzIgVUxPTkdfUFRSOw0KK3R5cGVkZWYgdTMyIERXT1JEX1BUUjsNCiANCiAvLyBi b29sZWFuIHBvaW50ZXINCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L3dj bWQuYyBiL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvd2NtZC5jDQppbmRleCA3OGVhMTIxLi4zMWZi OTZhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni93Y21kLmMNCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy92dDY2NTYvd2NtZC5jDQpAQCAtMzE2LDE3ICszMTYsMTkgQEAgc19NZ3JN YWtlUHJvYmVSZXF1ZXN0KA0KICAgICByZXR1cm4gcFR4UGFja2V0Ow0KIH0NCiANCi12b2lkIHZD b21tYW5kVGltZXJXYWl0KHZvaWQgKmhEZXZpY2VDb250ZXh0LCB1bnNpZ25lZCBpbnQgTVNlY29u ZCkNCit2b2lkIHZDb21tYW5kVGltZXJXYWl0KHZvaWQgKmhEZXZpY2VDb250ZXh0LCB1bnNpZ25l ZCBsb25nIE1TZWNvbmQpDQogew0KLSAgICBQU0RldmljZSAgICAgICAgcERldmljZSA9IChQU0Rl dmljZSloRGV2aWNlQ29udGV4dDsNCisJUFNEZXZpY2UgcERldmljZSA9IChQU0RldmljZSloRGV2 aWNlQ29udGV4dDsNCiANCi0gICAgaW5pdF90aW1lcigmcERldmljZS0+c1RpbWVyQ29tbWFuZCk7 DQotICAgIHBEZXZpY2UtPnNUaW1lckNvbW1hbmQuZGF0YSA9ICh1bnNpZ25lZCBsb25nKXBEZXZp Y2U7DQotICAgIHBEZXZpY2UtPnNUaW1lckNvbW1hbmQuZnVuY3Rpb24gPSAoVGltZXJGdW5jdGlv bil2UnVuQ29tbWFuZDsNCi0gICAgLy8gUlVOX0FUIDoxIG1zZWMgfj0gKEhaLzEwMjQpDQotICAg IHBEZXZpY2UtPnNUaW1lckNvbW1hbmQuZXhwaXJlcyA9ICh1bnNpZ25lZCBpbnQpUlVOX0FUKChN U2Vjb25kICogSFopID4+IDEwKTsNCi0gICAgYWRkX3RpbWVyKCZwRGV2aWNlLT5zVGltZXJDb21t YW5kKTsNCi0gICAgcmV0dXJuOw0KKwlpbml0X3RpbWVyKCZwRGV2aWNlLT5zVGltZXJDb21tYW5k KTsNCisNCisJcERldmljZS0+c1RpbWVyQ29tbWFuZC5kYXRhID0gKHVuc2lnbmVkIGxvbmcpcERl dmljZTsNCisJcERldmljZS0+c1RpbWVyQ29tbWFuZC5mdW5jdGlvbiA9IChUaW1lckZ1bmN0aW9u KXZSdW5Db21tYW5kOw0KKwlwRGV2aWNlLT5zVGltZXJDb21tYW5kLmV4cGlyZXMgPSBSVU5fQVQo KE1TZWNvbmQgKiBIWikgLyAxMDAwKTsNCisNCisJYWRkX3RpbWVyKCZwRGV2aWNlLT5zVGltZXJD b21tYW5kKTsNCisNCisJcmV0dXJuOw0KIH0NCiANCiB2b2lkIHZSdW5Db21tYW5kKHZvaWQgKmhE ZXZpY2VDb250ZXh0KQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy92dDY2NTYvd3BhMi5o IGIvZHJpdmVycy9zdGFnaW5nL3Z0NjY1Ni93cGEyLmgNCmluZGV4IDQ2YzI5NTkuLmMzNTkyNTIg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcvdnQ2NjU2L3dwYTIuaA0KKysrIGIvZHJpdmVy cy9zdGFnaW5nL3Z0NjY1Ni93cGEyLmgNCkBAIC00NSw4ICs0NSw4IEBAIHR5cGVkZWYgc3RydWN0 IHRhZ3NQTUtJREluZm8gew0KIH0gUE1LSURJbmZvLCAqUFBNS0lESW5mbzsNCiANCiB0eXBlZGVm IHN0cnVjdCB0YWdTUE1LSURDYWNoZSB7DQotICAgIHVuc2lnbmVkIGxvbmcgICAgICAgQlNTSURJ bmZvQ291bnQ7DQotICAgIFBNS0lESW5mbyAgIEJTU0lESW5mb1tNQVhfUE1LSURfQ0FDSEVdOw0K Kwl1MzIgQlNTSURJbmZvQ291bnQ7DQorCVBNS0lESW5mbyBCU1NJREluZm9bTUFYX1BNS0lEX0NB Q0hFXTsNCiB9IFNQTUtJRENhY2hlLCAqUFNQTUtJRENhY2hlOw0KIA0KIA0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldC5jIGIvZHJpdmVycy90YXJnZXQvaXNj c2kvaXNjc2lfdGFyZ2V0LmMNCmluZGV4IDZmYTcyMjIuLjNlZmZkZTIgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXQuYw0KKysrIGIvZHJpdmVycy90YXJnZXQv aXNjc2kvaXNjc2lfdGFyZ2V0LmMNCkBAIC0yMzY3LDcgKzIzNjcsNyBAQCBzdGF0aWMgdm9pZCBp c2NzaXRfYnVpbGRfY29ubl9kcm9wX2FzeW5jX21lc3NhZ2Uoc3RydWN0IGlzY3NpX2Nvbm4gKmNv bm4pDQogCWlmICghY29ubl9wKQ0KIAkJcmV0dXJuOw0KIA0KLQljbWQgPSBpc2NzaXRfYWxsb2Nh dGVfY21kKGNvbm5fcCwgR0ZQX0tFUk5FTCk7DQorCWNtZCA9IGlzY3NpdF9hbGxvY2F0ZV9jbWQo Y29ubl9wLCBHRlBfQVRPTUlDKTsNCiAJaWYgKCFjbWQpIHsNCiAJCWlzY3NpdF9kZWNfY29ubl91 c2FnZV9jb3VudChjb25uX3ApOw0KIAkJcmV0dXJuOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdGFy Z2V0L2lzY3NpL2lzY3NpX3RhcmdldF9sb2dpbi5jIGIvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNj c2lfdGFyZ2V0X2xvZ2luLmMNCmluZGV4IGViMGM5ZmUuLjBkZjRhNWYgMTAwNjQ0DQotLS0gYS9k cml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXRfbG9naW4uYw0KKysrIGIvZHJpdmVycy90 YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0X2xvZ2luLmMNCkBAIC0xMzAsMTMgKzEzMCwxMyBAQCBp bnQgaXNjc2lfY2hlY2tfZm9yX3Nlc3Npb25fcmVpbnN0YXRlbWVudChzdHJ1Y3QgaXNjc2lfY29u biAqY29ubikNCiANCiAJaW5pdGlhdG9ybmFtZV9wYXJhbSA9IGlzY3NpX2ZpbmRfcGFyYW1fZnJv bV9rZXkoDQogCQkJSU5JVElBVE9STkFNRSwgY29ubi0+cGFyYW1fbGlzdCk7DQotCWlmICghaW5p dGlhdG9ybmFtZV9wYXJhbSkNCi0JCXJldHVybiAtMTsNCi0NCiAJc2Vzc2lvbnR5cGVfcGFyYW0g PSBpc2NzaV9maW5kX3BhcmFtX2Zyb21fa2V5KA0KIAkJCVNFU1NJT05UWVBFLCBjb25uLT5wYXJh bV9saXN0KTsNCi0JaWYgKCFzZXNzaW9udHlwZV9wYXJhbSkNCisJaWYgKCFpbml0aWF0b3JuYW1l X3BhcmFtIHx8ICFzZXNzaW9udHlwZV9wYXJhbSkgew0KKwkJaXNjc2l0X3R4X2xvZ2luX3JzcChj b25uLCBJU0NTSV9TVEFUVVNfQ0xTX0lOSVRJQVRPUl9FUlIsDQorCQkJSVNDU0lfTE9HSU5fU1RB VFVTX01JU1NJTkdfRklFTERTKTsNCiAJCXJldHVybiAtMTsNCisJfQ0KIA0KIAlzZXNzaW9udHlw ZSA9IChzdHJuY21wKHNlc3Npb250eXBlX3BhcmFtLT52YWx1ZSwgTk9STUFMLCA2KSkgPyAxIDog MDsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXRfbmVn by5jIGIvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFyZ2V0X25lZ28uYw0KaW5kZXggOTg5 MzZjYi4uN2Q4NWY4OCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3Rh cmdldF9uZWdvLmMNCisrKyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldF9uZWdv LmMNCkBAIC02MzIsOCArNjMyLDExIEBAIHN0YXRpYyBpbnQgaXNjc2lfdGFyZ2V0X2hhbmRsZV9j c2dfb25lKHN0cnVjdCBpc2NzaV9jb25uICpjb25uLCBzdHJ1Y3QgaXNjc2lfbG9nDQogCQkJbG9n aW4tPnJlcV9idWYsDQogCQkJcGF5bG9hZF9sZW5ndGgsDQogCQkJY29ubi0+cGFyYW1fbGlzdCk7 DQotCWlmIChyZXQgPCAwKQ0KKwlpZiAocmV0IDwgMCkgew0KKwkJaXNjc2l0X3R4X2xvZ2luX3Jz cChjb25uLCBJU0NTSV9TVEFUVVNfQ0xTX0lOSVRJQVRPUl9FUlIsDQorCQkJCUlTQ1NJX0xPR0lO X1NUQVRVU19JTklUX0VSUik7DQogCQlyZXR1cm4gLTE7DQorCX0NCiANCiAJaWYgKGxvZ2luLT5m aXJzdF9yZXF1ZXN0KQ0KIAkJaWYgKGlzY3NpX3RhcmdldF9jaGVja19maXJzdF9yZXF1ZXN0KGNv bm4sIGxvZ2luKSA8IDApDQpAQCAtNjQ4LDggKzY1MSwxMSBAQCBzdGF0aWMgaW50IGlzY3NpX3Rh cmdldF9oYW5kbGVfY3NnX29uZShzdHJ1Y3QgaXNjc2lfY29ubiAqY29ubiwgc3RydWN0IGlzY3Np X2xvZw0KIAkJCWxvZ2luLT5yc3BfYnVmLA0KIAkJCSZsb2dpbi0+cnNwX2xlbmd0aCwNCiAJCQlj b25uLT5wYXJhbV9saXN0KTsNCi0JaWYgKHJldCA8IDApDQorCWlmIChyZXQgPCAwKSB7DQorCQlp c2NzaXRfdHhfbG9naW5fcnNwKGNvbm4sIElTQ1NJX1NUQVRVU19DTFNfSU5JVElBVE9SX0VSUiwN CisJCQkJSVNDU0lfTE9HSU5fU1RBVFVTX0lOSVRfRVJSKTsNCiAJCXJldHVybiAtMTsNCisJfQ0K IA0KIAlpZiAoIWxvZ2luLT5hdXRoX2NvbXBsZXRlICYmDQogCSAgICAgSVNDU0lfVFBHX0FUVFJJ QihJU0NTSV9UUEdfQyhjb25uKSktPmF1dGhlbnRpY2F0aW9uKSB7DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy90YXJnZXQvdGFyZ2V0X2NvcmVfZmlsZS5jIGIvZHJpdmVycy90YXJnZXQvdGFyZ2V0X2Nv cmVfZmlsZS5jDQppbmRleCBjYWZhNDc3Li5lYTI5ZWFmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy90 YXJnZXQvdGFyZ2V0X2NvcmVfZmlsZS5jDQorKysgYi9kcml2ZXJzL3RhcmdldC90YXJnZXRfY29y ZV9maWxlLmMNCkBAIC0zMDAsNyArMzAwLDcgQEAgc3RhdGljIGludCBmZF9kb19yZWFkdihzdHJ1 Y3Qgc2VfdGFzayAqdGFzaykNCiANCiAJZm9yX2VhY2hfc2codGFzay0+dGFza19zZywgc2csIHRh c2stPnRhc2tfc2dfbmVudHMsIGkpIHsNCiAJCWlvdltpXS5pb3ZfbGVuID0gc2ctPmxlbmd0aDsN Ci0JCWlvdltpXS5pb3ZfYmFzZSA9IHNnX3ZpcnQoc2cpOw0KKwkJaW92W2ldLmlvdl9iYXNlID0g a21hcChzZ19wYWdlKHNnKSkgKyBzZy0+b2Zmc2V0Ow0KIAl9DQogDQogCW9sZF9mcyA9IGdldF9m cygpOw0KQEAgLTMwOCw2ICszMDgsOCBAQCBzdGF0aWMgaW50IGZkX2RvX3JlYWR2KHN0cnVjdCBz ZV90YXNrICp0YXNrKQ0KIAlyZXQgPSB2ZnNfcmVhZHYoZmQsICZpb3ZbMF0sIHRhc2stPnRhc2tf c2dfbmVudHMsICZwb3MpOw0KIAlzZXRfZnMob2xkX2ZzKTsNCiANCisJZm9yX2VhY2hfc2codGFz ay0+dGFza19zZywgc2csIHRhc2stPnRhc2tfc2dfbmVudHMsIGkpDQorCQlrdW5tYXAoc2dfcGFn ZShzZykpOw0KIAlrZnJlZShpb3YpOw0KIAkvKg0KIAkgKiBSZXR1cm4gemVyb3MgYW5kIEdPT0Qg c3RhdHVzIGV2ZW4gaWYgdGhlIFJFQUQgZGlkIG5vdCByZXR1cm4NCkBAIC0zNTMsNyArMzU1LDcg QEAgc3RhdGljIGludCBmZF9kb193cml0ZXYoc3RydWN0IHNlX3Rhc2sgKnRhc2spDQogDQogCWZv cl9lYWNoX3NnKHRhc2stPnRhc2tfc2csIHNnLCB0YXNrLT50YXNrX3NnX25lbnRzLCBpKSB7DQog CQlpb3ZbaV0uaW92X2xlbiA9IHNnLT5sZW5ndGg7DQotCQlpb3ZbaV0uaW92X2Jhc2UgPSBzZ192 aXJ0KHNnKTsNCisJCWlvdltpXS5pb3ZfYmFzZSA9IGttYXAoc2dfcGFnZShzZykpICsgc2ctPm9m ZnNldDsNCiAJfQ0KIA0KIAlvbGRfZnMgPSBnZXRfZnMoKTsNCkBAIC0zNjEsNiArMzYzLDkgQEAg c3RhdGljIGludCBmZF9kb193cml0ZXYoc3RydWN0IHNlX3Rhc2sgKnRhc2spDQogCXJldCA9IHZm c193cml0ZXYoZmQsICZpb3ZbMF0sIHRhc2stPnRhc2tfc2dfbmVudHMsICZwb3MpOw0KIAlzZXRf ZnMob2xkX2ZzKTsNCiANCisJZm9yX2VhY2hfc2codGFzay0+dGFza19zZywgc2csIHRhc2stPnRh c2tfc2dfbmVudHMsIGkpDQorCQlrdW5tYXAoc2dfcGFnZShzZykpOw0KKw0KIAlrZnJlZShpb3Yp Ow0KIA0KIAlpZiAocmV0IDwgMCB8fCByZXQgIT0gdGFzay0+dGFza19zaXplKSB7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy90YXJnZXQvdGNtX2ZjL3RmY19zZXNzLmMgYi9kcml2ZXJzL3RhcmdldC90 Y21fZmMvdGZjX3Nlc3MuYw0KaW5kZXggNjRkZGI2My4uM2YyOGZkYiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvdGFyZ2V0L3RjbV9mYy90ZmNfc2Vzcy5jDQorKysgYi9kcml2ZXJzL3RhcmdldC90Y21f ZmMvdGZjX3Nlc3MuYw0KQEAgLTQ2NSw3ICs0NjUsNiBAQCBzdGF0aWMgdm9pZCBmdF9zZXNzX3Jj dV9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcmN1KQ0KIHsNCiAJc3RydWN0IGZ0X3Nlc3MgKnNlc3Mg PSBjb250YWluZXJfb2YocmN1LCBzdHJ1Y3QgZnRfc2VzcywgcmN1KTsNCiANCi0JdHJhbnNwb3J0 X2RlcmVnaXN0ZXJfc2Vzc2lvbihzZXNzLT5zZV9zZXNzKTsNCiAJa2ZyZWUoc2Vzcyk7DQogfQ0K IA0KQEAgLTQ3Myw2ICs0NzIsNyBAQCBzdGF0aWMgdm9pZCBmdF9zZXNzX2ZyZWUoc3RydWN0IGty ZWYgKmtyZWYpDQogew0KIAlzdHJ1Y3QgZnRfc2VzcyAqc2VzcyA9IGNvbnRhaW5lcl9vZihrcmVm LCBzdHJ1Y3QgZnRfc2Vzcywga3JlZik7DQogDQorCXRyYW5zcG9ydF9kZXJlZ2lzdGVyX3Nlc3Np b24oc2Vzcy0+c2Vfc2Vzcyk7DQogCWNhbGxfcmN1KCZzZXNzLT5yY3UsIGZ0X3Nlc3NfcmN1X2Zy ZWUpOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RlbGVwaG9ueS9peGouYyBiL2RyaXZl cnMvdGVsZXBob255L2l4ai5jDQppbmRleCBkNWY5MjNiLi5lMWFiYjQ1IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy90ZWxlcGhvbnkvaXhqLmMNCisrKyBiL2RyaXZlcnMvdGVsZXBob255L2l4ai5jDQpA QCAtMzE5MCwxMiArMzE5MCwxMiBAQCBzdGF0aWMgdm9pZCBpeGpfd3JpdGVfY2lkKElYSiAqaikN CiANCiAJaXhqX2Zza19hbGxvYyhqKTsNCiANCi0Jc3RyY3B5KHNkbWYxLCBqLT5jaWRfc2VuZC5t b250aCk7DQotCXN0cmNhdChzZG1mMSwgai0+Y2lkX3NlbmQuZGF5KTsNCi0Jc3RyY2F0KHNkbWYx LCBqLT5jaWRfc2VuZC5ob3VyKTsNCi0Jc3RyY2F0KHNkbWYxLCBqLT5jaWRfc2VuZC5taW4pOw0K LQlzdHJjcHkoc2RtZjIsIGotPmNpZF9zZW5kLm51bWJlcik7DQotCXN0cmNweShzZG1mMywgai0+ Y2lkX3NlbmQubmFtZSk7DQorCXN0cmxjcHkoc2RtZjEsIGotPmNpZF9zZW5kLm1vbnRoLCBzaXpl b2Yoc2RtZjEpKTsNCisJc3RybGNhdChzZG1mMSwgai0+Y2lkX3NlbmQuZGF5LCBzaXplb2Yoc2Rt ZjEpKTsNCisJc3RybGNhdChzZG1mMSwgai0+Y2lkX3NlbmQuaG91ciwgc2l6ZW9mKHNkbWYxKSk7 DQorCXN0cmxjYXQoc2RtZjEsIGotPmNpZF9zZW5kLm1pbiwgc2l6ZW9mKHNkbWYxKSk7DQorCXN0 cmxjcHkoc2RtZjIsIGotPmNpZF9zZW5kLm51bWJlciwgc2l6ZW9mKHNkbWYyKSk7DQorCXN0cmxj cHkoc2RtZjMsIGotPmNpZF9zZW5kLm5hbWUsIHNpemVvZihzZG1mMykpOw0KIA0KIAlsZW4xID0g c3RybGVuKHNkbWYxKTsNCiAJbGVuMiA9IHN0cmxlbihzZG1mMik7DQpAQCAtMzM0MCwxMiArMzM0 MCwxMiBAQCBzdGF0aWMgdm9pZCBpeGpfd3JpdGVfY2lkY3coSVhKICpqKQ0KIAkJaXhqX3ByZV9j aWQoaik7DQogCX0NCiAJai0+ZmxhZ3MuY2lkY3dfYWNrID0gMDsNCi0Jc3RyY3B5KHNkbWYxLCBq LT5jaWRfc2VuZC5tb250aCk7DQotCXN0cmNhdChzZG1mMSwgai0+Y2lkX3NlbmQuZGF5KTsNCi0J c3RyY2F0KHNkbWYxLCBqLT5jaWRfc2VuZC5ob3VyKTsNCi0Jc3RyY2F0KHNkbWYxLCBqLT5jaWRf c2VuZC5taW4pOw0KLQlzdHJjcHkoc2RtZjIsIGotPmNpZF9zZW5kLm51bWJlcik7DQotCXN0cmNw eShzZG1mMywgai0+Y2lkX3NlbmQubmFtZSk7DQorCXN0cmxjcHkoc2RtZjEsIGotPmNpZF9zZW5k Lm1vbnRoLCBzaXplb2Yoc2RtZjEpKTsNCisJc3RybGNhdChzZG1mMSwgai0+Y2lkX3NlbmQuZGF5 LCBzaXplb2Yoc2RtZjEpKTsNCisJc3RybGNhdChzZG1mMSwgai0+Y2lkX3NlbmQuaG91ciwgc2l6 ZW9mKHNkbWYxKSk7DQorCXN0cmxjYXQoc2RtZjEsIGotPmNpZF9zZW5kLm1pbiwgc2l6ZW9mKHNk bWYxKSk7DQorCXN0cmxjcHkoc2RtZjIsIGotPmNpZF9zZW5kLm51bWJlciwgc2l6ZW9mKHNkbWYy KSk7DQorCXN0cmxjcHkoc2RtZjMsIGotPmNpZF9zZW5kLm5hbWUsIHNpemVvZihzZG1mMykpOw0K IA0KIAlsZW4xID0gc3RybGVuKHNkbWYxKTsNCiAJbGVuMiA9IHN0cmxlbihzZG1mMik7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy91c2IvY2xhc3MvY2RjLXdkbS5jIGIvZHJpdmVycy91c2IvY2xhc3Mv Y2RjLXdkbS5jDQppbmRleCA5YWFlZDBkLi45N2IyYzU1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91 c2IvY2xhc3MvY2RjLXdkbS5jDQorKysgYi9kcml2ZXJzL3VzYi9jbGFzcy9jZGMtd2RtLmMNCkBA IC0zMDEsNyArMzAxLDcgQEAgc3RhdGljIHZvaWQgY2xlYW51cChzdHJ1Y3Qgd2RtX2RldmljZSAq ZGVzYykNCiAJCQkgIGRlc2MtPnNidWYsDQogCQkJICBkZXNjLT52YWxpZGl0eS0+dHJhbnNmZXJf ZG1hKTsNCiAJdXNiX2ZyZWVfY29oZXJlbnQoaW50ZXJmYWNlX3RvX3VzYmRldihkZXNjLT5pbnRm KSwNCi0JCQkgIGRlc2MtPmJNYXhQYWNrZXRTaXplMCwNCisJCQkgIGRlc2MtPndNYXhDb21tYW5k LA0KIAkJCSAgZGVzYy0+aW5idWYsDQogCQkJICBkZXNjLT5yZXNwb25zZS0+dHJhbnNmZXJfZG1h KTsNCiAJa2ZyZWUoZGVzYy0+b3JxKTsNCkBAIC03ODgsNyArNzg4LDcgQEAgb3V0Og0KIGVycjM6 DQogCXVzYl9zZXRfaW50ZmRhdGEoaW50ZiwgTlVMTCk7DQogCXVzYl9mcmVlX2NvaGVyZW50KGlu dGVyZmFjZV90b191c2JkZXYoZGVzYy0+aW50ZiksDQotCQkJICBkZXNjLT5iTWF4UGFja2V0U2l6 ZTAsDQorCQkJICBkZXNjLT53TWF4Q29tbWFuZCwNCiAJCQlkZXNjLT5pbmJ1ZiwNCiAJCQlkZXNj LT5yZXNwb25zZS0+dHJhbnNmZXJfZG1hKTsNCiBlcnIyOg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dXNiL2NvcmUvbWVzc2FnZS5jIGIvZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmMNCmluZGV4IGVm MTE2YTUuLmFiMTFjYTNjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvY29yZS9tZXNzYWdlLmMN CisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvbWVzc2FnZS5jDQpAQCAtMTc3MCwyOCArMTc3MCw4IEBA IGZyZWVfaW50ZXJmYWNlczoNCiAJCWdvdG8gZnJlZV9pbnRlcmZhY2VzOw0KIAl9DQogDQotCXJl dCA9IHVzYl9jb250cm9sX21zZyhkZXYsIHVzYl9zbmRjdHJscGlwZShkZXYsIDApLA0KLQkJCSAg ICAgIFVTQl9SRVFfU0VUX0NPTkZJR1VSQVRJT04sIDAsIGNvbmZpZ3VyYXRpb24sIDAsDQotCQkJ ICAgICAgTlVMTCwgMCwgVVNCX0NUUkxfU0VUX1RJTUVPVVQpOw0KLQlpZiAocmV0IDwgMCkgew0K LQkJLyogQWxsIHRoZSBvbGQgc3RhdGUgaXMgZ29uZSwgc28gd2hhdCBlbHNlIGNhbiB3ZSBkbz8N Ci0JCSAqIFRoZSBkZXZpY2UgaXMgcHJvYmFibHkgdXNlbGVzcyBub3cgYW55d2F5Lg0KLQkJICov DQotCQljcCA9IE5VTEw7DQotCX0NCi0NCi0JZGV2LT5hY3Rjb25maWcgPSBjcDsNCi0JaWYgKCFj cCkgew0KLQkJdXNiX3NldF9kZXZpY2Vfc3RhdGUoZGV2LCBVU0JfU1RBVEVfQUREUkVTUyk7DQot CQl1c2JfaGNkX2FsbG9jX2JhbmR3aWR0aChkZXYsIE5VTEwsIE5VTEwsIE5VTEwpOw0KLQkJbXV0 ZXhfdW5sb2NrKGhjZC0+YmFuZHdpZHRoX211dGV4KTsNCi0JCXVzYl9hdXRvc3VzcGVuZF9kZXZp Y2UoZGV2KTsNCi0JCWdvdG8gZnJlZV9pbnRlcmZhY2VzOw0KLQl9DQotCW11dGV4X3VubG9jayho Y2QtPmJhbmR3aWR0aF9tdXRleCk7DQotCXVzYl9zZXRfZGV2aWNlX3N0YXRlKGRldiwgVVNCX1NU QVRFX0NPTkZJR1VSRUQpOw0KLQ0KLQkvKiBJbml0aWFsaXplIHRoZSBuZXcgaW50ZXJmYWNlIHN0 cnVjdHVyZXMgYW5kIHRoZQ0KKwkvKg0KKwkgKiBJbml0aWFsaXplIHRoZSBuZXcgaW50ZXJmYWNl IHN0cnVjdHVyZXMgYW5kIHRoZQ0KIAkgKiBoYy9oY2QvdXNiY29yZSBpbnRlcmZhY2UvZW5kcG9p bnQgc3RhdGUuDQogCSAqLw0KIAlmb3IgKGkgPSAwOyBpIDwgbmludGY7ICsraSkgew0KQEAgLTE4 MzUsNiArMTgxNSwzNSBAQCBmcmVlX2ludGVyZmFjZXM6DQogCX0NCiAJa2ZyZWUobmV3X2ludGVy ZmFjZXMpOw0KIA0KKwlyZXQgPSB1c2JfY29udHJvbF9tc2coZGV2LCB1c2Jfc25kY3RybHBpcGUo ZGV2LCAwKSwNCisJCQkgICAgICBVU0JfUkVRX1NFVF9DT05GSUdVUkFUSU9OLCAwLCBjb25maWd1 cmF0aW9uLCAwLA0KKwkJCSAgICAgIE5VTEwsIDAsIFVTQl9DVFJMX1NFVF9USU1FT1VUKTsNCisJ aWYgKHJldCA8IDAgJiYgY3ApIHsNCisJCS8qDQorCQkgKiBBbGwgdGhlIG9sZCBzdGF0ZSBpcyBn b25lLCBzbyB3aGF0IGVsc2UgY2FuIHdlIGRvPw0KKwkJICogVGhlIGRldmljZSBpcyBwcm9iYWJs eSB1c2VsZXNzIG5vdyBhbnl3YXkuDQorCQkgKi8NCisJCXVzYl9oY2RfYWxsb2NfYmFuZHdpZHRo KGRldiwgTlVMTCwgTlVMTCwgTlVMTCk7DQorCQlmb3IgKGkgPSAwOyBpIDwgbmludGY7ICsraSkg ew0KKwkJCXVzYl9kaXNhYmxlX2ludGVyZmFjZShkZXYsIGNwLT5pbnRlcmZhY2VbaV0sIHRydWUp Ow0KKwkJCXB1dF9kZXZpY2UoJmNwLT5pbnRlcmZhY2VbaV0tPmRldik7DQorCQkJY3AtPmludGVy ZmFjZVtpXSA9IE5VTEw7DQorCQl9DQorCQljcCA9IE5VTEw7DQorCX0NCisNCisJZGV2LT5hY3Rj b25maWcgPSBjcDsNCisJbXV0ZXhfdW5sb2NrKGhjZC0+YmFuZHdpZHRoX211dGV4KTsNCisNCisJ aWYgKCFjcCkgew0KKwkJdXNiX3NldF9kZXZpY2Vfc3RhdGUoZGV2LCBVU0JfU1RBVEVfQUREUkVT Uyk7DQorDQorCQkvKiBMZWF2ZSBMUE0gZGlzYWJsZWQgd2hpbGUgdGhlIGRldmljZSBpcyB1bmNv bmZpZ3VyZWQuICovDQorCQl1c2JfYXV0b3N1c3BlbmRfZGV2aWNlKGRldik7DQorCQlyZXR1cm4g cmV0Ow0KKwl9DQorCXVzYl9zZXRfZGV2aWNlX3N0YXRlKGRldiwgVVNCX1NUQVRFX0NPTkZJR1VS RUQpOw0KKw0KIAlpZiAoY3AtPnN0cmluZyA9PSBOVUxMICYmDQogCQkJIShkZXYtPnF1aXJrcyAm IFVTQl9RVUlSS19DT05GSUdfSU5URl9TVFJJTkdTKSkNCiAJCWNwLT5zdHJpbmcgPSB1c2JfY2Fj aGVfc3RyaW5nKGRldiwgY3AtPmRlc2MuaUNvbmZpZ3VyYXRpb24pOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdXNiL2dhZGdldC9mX2VjbS5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfZWNtLmMNCmlu ZGV4IDExYzA3Y2IuLjcyZmQzNTUgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvZl9l Y20uYw0KKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfZWNtLmMNCkBAIC03OTAsOSArNzkwLDkg QEAgZmFpbDoNCiAJLyogd2UgbWlnaHQgYXMgd2VsbCByZWxlYXNlIG91ciBjbGFpbXMgb24gZW5k cG9pbnRzICovDQogCWlmIChlY20tPm5vdGlmeSkNCiAJCWVjbS0+bm90aWZ5LT5kcml2ZXJfZGF0 YSA9IE5VTEw7DQotCWlmIChlY20tPnBvcnQub3V0X2VwLT5kZXNjKQ0KKwlpZiAoZWNtLT5wb3J0 Lm91dF9lcCkNCiAJCWVjbS0+cG9ydC5vdXRfZXAtPmRyaXZlcl9kYXRhID0gTlVMTDsNCi0JaWYg KGVjbS0+cG9ydC5pbl9lcC0+ZGVzYykNCisJaWYgKGVjbS0+cG9ydC5pbl9lcCkNCiAJCWVjbS0+ cG9ydC5pbl9lcC0+ZHJpdmVyX2RhdGEgPSBOVUxMOw0KIA0KIAlFUlJPUihjZGV2LCAiJXM6IGNh bid0IGJpbmQsIGVyciAlZFxuIiwgZi0+bmFtZSwgc3RhdHVzKTsNCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3VzYi9nYWRnZXQvZl9lZW0uYyBiL2RyaXZlcnMvdXNiL2dhZGdldC9mX2VlbS5jDQppbmRl eCAxYTdiMmRkLi5hOWNmMjA1MiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mX2Vl bS5jDQorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZl9lZW0uYw0KQEAgLTMxOSwxMCArMzE5LDkg QEAgZmFpbDoNCiAJaWYgKGYtPmhzX2Rlc2NyaXB0b3JzKQ0KIAkJdXNiX2ZyZWVfZGVzY3JpcHRv cnMoZi0+aHNfZGVzY3JpcHRvcnMpOw0KIA0KLQkvKiB3ZSBtaWdodCBhcyB3ZWxsIHJlbGVhc2Ug b3VyIGNsYWltcyBvbiBlbmRwb2ludHMgKi8NCi0JaWYgKGVlbS0+cG9ydC5vdXRfZXAtPmRlc2Mp DQorCWlmIChlZW0tPnBvcnQub3V0X2VwKQ0KIAkJZWVtLT5wb3J0Lm91dF9lcC0+ZHJpdmVyX2Rh dGEgPSBOVUxMOw0KLQlpZiAoZWVtLT5wb3J0LmluX2VwLT5kZXNjKQ0KKwlpZiAoZWVtLT5wb3J0 LmluX2VwKQ0KIAkJZWVtLT5wb3J0LmluX2VwLT5kcml2ZXJfZGF0YSA9IE5VTEw7DQogDQogCUVS Uk9SKGNkZXYsICIlczogY2FuJ3QgYmluZCwgZXJyICVkXG4iLCBmLT5uYW1lLCBzdGF0dXMpOw0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mX21pZGkuYyBiL2RyaXZlcnMvdXNiL2dh ZGdldC9mX21pZGkuYw0KaW5kZXggMzc5N2IzZC4uZGZkN2I5OCAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvdXNiL2dhZGdldC9mX21pZGkuYw0KKysrIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfbWlkaS5j DQpAQCAtNDE2LDYgKzQxNiw3IEBAIHN0YXRpYyB2b2lkIGZfbWlkaV91bmJpbmQoc3RydWN0IHVz Yl9jb25maWd1cmF0aW9uICpjLCBzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmKQ0KIAltaWRpLT5pZCA9 IE5VTEw7DQogDQogCXVzYl9mcmVlX2Rlc2NyaXB0b3JzKGYtPmRlc2NyaXB0b3JzKTsNCisJdXNi X2ZyZWVfZGVzY3JpcHRvcnMoZi0+aHNfZGVzY3JpcHRvcnMpOw0KIAlrZnJlZShtaWRpKTsNCiB9 DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfbmNtLmMgYi9kcml2ZXJzL3Vz Yi9nYWRnZXQvZl9uY20uYw0KaW5kZXggYWFiOGVkZS4uZDc4MTFhZSAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvdXNiL2dhZGdldC9mX25jbS5jDQorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZl9uY20u Yw0KQEAgLTEyNTksOSArMTI1OSw5IEBAIGZhaWw6DQogCS8qIHdlIG1pZ2h0IGFzIHdlbGwgcmVs ZWFzZSBvdXIgY2xhaW1zIG9uIGVuZHBvaW50cyAqLw0KIAlpZiAobmNtLT5ub3RpZnkpDQogCQlu Y20tPm5vdGlmeS0+ZHJpdmVyX2RhdGEgPSBOVUxMOw0KLQlpZiAobmNtLT5wb3J0Lm91dF9lcC0+ ZGVzYykNCisJaWYgKG5jbS0+cG9ydC5vdXRfZXApDQogCQluY20tPnBvcnQub3V0X2VwLT5kcml2 ZXJfZGF0YSA9IE5VTEw7DQotCWlmIChuY20tPnBvcnQuaW5fZXAtPmRlc2MpDQorCWlmIChuY20t PnBvcnQuaW5fZXApDQogCQluY20tPnBvcnQuaW5fZXAtPmRyaXZlcl9kYXRhID0gTlVMTDsNCiAN CiAJRVJST1IoY2RldiwgIiVzOiBjYW4ndCBiaW5kLCBlcnIgJWRcbiIsIGYtPm5hbWUsIHN0YXR1 cyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2ZfcGhvbmV0LmMgYi9kcml2ZXJz L3VzYi9nYWRnZXQvZl9waG9uZXQuYw0KaW5kZXggMTZhNTA5YS4uNTQzMTQ5MyAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mX3Bob25ldC5jDQorKysgYi9kcml2ZXJzL3VzYi9nYWRn ZXQvZl9waG9uZXQuYw0KQEAgLTUzMiw3ICs1MzIsNyBAQCBpbnQgcG5fYmluZChzdHJ1Y3QgdXNi X2NvbmZpZ3VyYXRpb24gKmMsIHN0cnVjdCB1c2JfZnVuY3Rpb24gKmYpDQogDQogCQlyZXEgPSB1 c2JfZXBfYWxsb2NfcmVxdWVzdChmcC0+b3V0X2VwLCBHRlBfS0VSTkVMKTsNCiAJCWlmICghcmVx KQ0KLQkJCWdvdG8gZXJyOw0KKwkJCWdvdG8gZXJyX3JlcTsNCiANCiAJCXJlcS0+Y29tcGxldGUg PSBwbl9yeF9jb21wbGV0ZTsNCiAJCWZwLT5vdXRfcmVxdltpXSA9IHJlcTsNCkBAIC01NDEsMTQg KzU0MSwxOCBAQCBpbnQgcG5fYmluZChzdHJ1Y3QgdXNiX2NvbmZpZ3VyYXRpb24gKmMsIHN0cnVj dCB1c2JfZnVuY3Rpb24gKmYpDQogCS8qIE91dGdvaW5nIFVTQiByZXF1ZXN0cyAqLw0KIAlmcC0+ aW5fcmVxID0gdXNiX2VwX2FsbG9jX3JlcXVlc3QoZnAtPmluX2VwLCBHRlBfS0VSTkVMKTsNCiAJ aWYgKCFmcC0+aW5fcmVxKQ0KLQkJZ290byBlcnI7DQorCQlnb3RvIGVycl9yZXE7DQogDQogCUlO Rk8oY2RldiwgIlVTQiBDREMgUGhvbmV0IGZ1bmN0aW9uXG4iKTsNCiAJSU5GTyhjZGV2LCAidXNp bmcgJXMsIE9VVCAlcywgSU4gJXNcbiIsIGNkZXYtPmdhZGdldC0+bmFtZSwNCiAJCWZwLT5vdXRf ZXAtPm5hbWUsIGZwLT5pbl9lcC0+bmFtZSk7DQogCXJldHVybiAwOw0KIA0KK2Vycl9yZXE6DQor CWZvciAoaSA9IDA7IGkgPCBwaG9uZXRfcnhxX3NpemUgJiYgZnAtPm91dF9yZXF2W2ldOyBpKysp DQorCQl1c2JfZXBfZnJlZV9yZXF1ZXN0KGZwLT5vdXRfZXAsIGZwLT5vdXRfcmVxdltpXSk7DQog ZXJyOg0KKw0KIAlpZiAoZnAtPm91dF9lcCkNCiAJCWZwLT5vdXRfZXAtPmRyaXZlcl9kYXRhID0g TlVMTDsNCiAJaWYgKGZwLT5pbl9lcCkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9nYWRnZXQv Zl9ybmRpcy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Zfcm5kaXMuYw0KaW5kZXggNzA0ZDFkOS4u ODE3ZDYxMSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9mX3JuZGlzLmMNCisrKyBi L2RyaXZlcnMvdXNiL2dhZGdldC9mX3JuZGlzLmMNCkBAIC04MDIsOSArODAyLDkgQEAgZmFpbDoN CiAJLyogd2UgbWlnaHQgYXMgd2VsbCByZWxlYXNlIG91ciBjbGFpbXMgb24gZW5kcG9pbnRzICov DQogCWlmIChybmRpcy0+bm90aWZ5KQ0KIAkJcm5kaXMtPm5vdGlmeS0+ZHJpdmVyX2RhdGEgPSBO VUxMOw0KLQlpZiAocm5kaXMtPnBvcnQub3V0X2VwLT5kZXNjKQ0KKwlpZiAocm5kaXMtPnBvcnQu b3V0X2VwKQ0KIAkJcm5kaXMtPnBvcnQub3V0X2VwLT5kcml2ZXJfZGF0YSA9IE5VTEw7DQotCWlm IChybmRpcy0+cG9ydC5pbl9lcC0+ZGVzYykNCisJaWYgKHJuZGlzLT5wb3J0LmluX2VwKQ0KIAkJ cm5kaXMtPnBvcnQuaW5fZXAtPmRyaXZlcl9kYXRhID0gTlVMTDsNCiANCiAJRVJST1IoY2Rldiwg IiVzOiBjYW4ndCBiaW5kLCBlcnIgJWRcbiIsIGYtPm5hbWUsIHN0YXR1cyk7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2Zfc3Vic2V0LmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZl9z dWJzZXQuYw0KaW5kZXggMjFhYjQ3NC4uZTViYjk2NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNi L2dhZGdldC9mX3N1YnNldC5jDQorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvZl9zdWJzZXQuYw0K QEAgLTM3MCw5ICszNzAsOSBAQCBmYWlsOg0KIAkJdXNiX2ZyZWVfZGVzY3JpcHRvcnMoZi0+aHNf ZGVzY3JpcHRvcnMpOw0KIA0KIAkvKiB3ZSBtaWdodCBhcyB3ZWxsIHJlbGVhc2Ugb3VyIGNsYWlt cyBvbiBlbmRwb2ludHMgKi8NCi0JaWYgKGdldGgtPnBvcnQub3V0X2VwLT5kZXNjKQ0KKwlpZiAo Z2V0aC0+cG9ydC5vdXRfZXApDQogCQlnZXRoLT5wb3J0Lm91dF9lcC0+ZHJpdmVyX2RhdGEgPSBO VUxMOw0KLQlpZiAoZ2V0aC0+cG9ydC5pbl9lcC0+ZGVzYykNCisJaWYgKGdldGgtPnBvcnQuaW5f ZXApDQogCQlnZXRoLT5wb3J0LmluX2VwLT5kcml2ZXJfZGF0YSA9IE5VTEw7DQogDQogCUVSUk9S KGNkZXYsICIlczogY2FuJ3QgYmluZCwgZXJyICVkXG4iLCBmLT5uYW1lLCBzdGF0dXMpOw0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9mX3V2Yy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0 L2ZfdXZjLmMNCmluZGV4IDIwMjJmZTQ5Li5hMGFiYzY1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91 c2IvZ2FkZ2V0L2ZfdXZjLmMNCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9mX3V2Yy5jDQpAQCAt MzM1LDcgKzMzNSw2IEBAIHV2Y19yZWdpc3Rlcl92aWRlbyhzdHJ1Y3QgdXZjX2RldmljZSAqdXZj KQ0KIAkJcmV0dXJuIC1FTk9NRU07DQogDQogCXZpZGVvLT5wYXJlbnQgPSAmY2Rldi0+Z2FkZ2V0 LT5kZXY7DQotCXZpZGVvLT5taW5vciA9IC0xOw0KIAl2aWRlby0+Zm9wcyA9ICZ1dmNfdjRsMl9m b3BzOw0KIAl2aWRlby0+cmVsZWFzZSA9IHZpZGVvX2RldmljZV9yZWxlYXNlOw0KIAlzdHJuY3B5 KHZpZGVvLT5uYW1lLCBjZGV2LT5nYWRnZXQtPm5hbWUsIHNpemVvZih2aWRlby0+bmFtZSkpOw0K QEAgLTQ2MiwyMyArNDYxLDEyIEBAIHV2Y19mdW5jdGlvbl91bmJpbmQoc3RydWN0IHVzYl9jb25m aWd1cmF0aW9uICpjLCBzdHJ1Y3QgdXNiX2Z1bmN0aW9uICpmKQ0KIA0KIAlJTkZPKGNkZXYsICJ1 dmNfZnVuY3Rpb25fdW5iaW5kXG4iKTsNCiANCi0JaWYgKHV2Yy0+dmRldikgew0KLQkJaWYgKHV2 Yy0+dmRldi0+bWlub3IgPT0gLTEpDQotCQkJdmlkZW9fZGV2aWNlX3JlbGVhc2UodXZjLT52ZGV2 KTsNCi0JCWVsc2UNCi0JCQl2aWRlb191bnJlZ2lzdGVyX2RldmljZSh1dmMtPnZkZXYpOw0KLQkJ dXZjLT52ZGV2ID0gTlVMTDsNCi0JfQ0KLQ0KLQlpZiAodXZjLT5jb250cm9sX2VwKQ0KLQkJdXZj LT5jb250cm9sX2VwLT5kcml2ZXJfZGF0YSA9IE5VTEw7DQotCWlmICh1dmMtPnZpZGVvLmVwKQ0K LQkJdXZjLT52aWRlby5lcC0+ZHJpdmVyX2RhdGEgPSBOVUxMOw0KKwl2aWRlb191bnJlZ2lzdGVy X2RldmljZSh1dmMtPnZkZXYpOw0KKwl1dmMtPmNvbnRyb2xfZXAtPmRyaXZlcl9kYXRhID0gTlVM TDsNCisJdXZjLT52aWRlby5lcC0+ZHJpdmVyX2RhdGEgPSBOVUxMOw0KIA0KLQlpZiAodXZjLT5j b250cm9sX3JlcSkgew0KLQkJdXNiX2VwX2ZyZWVfcmVxdWVzdChjZGV2LT5nYWRnZXQtPmVwMCwg dXZjLT5jb250cm9sX3JlcSk7DQotCQlrZnJlZSh1dmMtPmNvbnRyb2xfYnVmKTsNCi0JfQ0KKwl1 c2JfZXBfZnJlZV9yZXF1ZXN0KGNkZXYtPmdhZGdldC0+ZXAwLCB1dmMtPmNvbnRyb2xfcmVxKTsN CisJa2ZyZWUodXZjLT5jb250cm9sX2J1Zik7DQogDQogCWtmcmVlKGYtPmRlc2NyaXB0b3JzKTsN CiAJa2ZyZWUoZi0+aHNfZGVzY3JpcHRvcnMpOw0KQEAgLTU2Myw3ICs1NTEsMjIgQEAgdXZjX2Z1 bmN0aW9uX2JpbmQoc3RydWN0IHVzYl9jb25maWd1cmF0aW9uICpjLCBzdHJ1Y3QgdXNiX2Z1bmN0 aW9uICpmKQ0KIAlyZXR1cm4gMDsNCiANCiBlcnJvcjoNCi0JdXZjX2Z1bmN0aW9uX3VuYmluZChj LCBmKTsNCisJaWYgKHV2Yy0+dmRldikNCisJCXZpZGVvX2RldmljZV9yZWxlYXNlKHV2Yy0+dmRl dik7DQorDQorCWlmICh1dmMtPmNvbnRyb2xfZXApDQorCQl1dmMtPmNvbnRyb2xfZXAtPmRyaXZl cl9kYXRhID0gTlVMTDsNCisJaWYgKHV2Yy0+dmlkZW8uZXApDQorCQl1dmMtPnZpZGVvLmVwLT5k cml2ZXJfZGF0YSA9IE5VTEw7DQorDQorCWlmICh1dmMtPmNvbnRyb2xfcmVxKSB7DQorCQl1c2Jf ZXBfZnJlZV9yZXF1ZXN0KGNkZXYtPmdhZGdldC0+ZXAwLCB1dmMtPmNvbnRyb2xfcmVxKTsNCisJ CWtmcmVlKHV2Yy0+Y29udHJvbF9idWYpOw0KKwl9DQorDQorCWtmcmVlKGYtPmRlc2NyaXB0b3Jz KTsNCisJa2ZyZWUoZi0+aHNfZGVzY3JpcHRvcnMpOw0KKwlrZnJlZShmLT5zc19kZXNjcmlwdG9y cyk7DQogCXJldHVybiByZXQ7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3Qv ZWhjaS1wY2kuYyBiL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wY2kuYw0KaW5kZXggYTc5ZTY0Yi4u YjcxZTIyZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1wY2kuYw0KKysrIGIv ZHJpdmVycy91c2IvaG9zdC9laGNpLXBjaS5jDQpAQCAtMzU5LDcgKzM1OSw4IEBAIHN0YXRpYyBi b29sIHVzYl9pc19pbnRlbF9zd2l0Y2hhYmxlX2VoY2koc3RydWN0IHBjaV9kZXYgKnBkZXYpDQog CQlwZGV2LT52ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9JTlRFTCAmJg0KIAkJKHBkZXYtPmRldmlj ZSA9PSAweDFFMjYgfHwNCiAJCSBwZGV2LT5kZXZpY2UgPT0gMHg4QzJEIHx8DQotCQkgcGRldi0+ ZGV2aWNlID09IDB4OEMyNik7DQorCQkgcGRldi0+ZGV2aWNlID09IDB4OEMyNiB8fA0KKwkJIHBk ZXYtPmRldmljZSA9PSAweDlDMjYpOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBlaGNpX2VuYWJsZV94 aGNpX2NvbXBhbmlvbih2b2lkKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QvZWhjaS1x LmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktcS5jDQppbmRleCAyMDIzNzMzLi41YmIyZGNiIDEw MDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC9laGNpLXEuYw0KKysrIGIvZHJpdmVycy91c2Iv aG9zdC9laGNpLXEuYw0KQEAgLTI2NCwxOCArMjY0LDE0IEBAIGVoY2lfdXJiX2RvbmUoc3RydWN0 IGVoY2lfaGNkICplaGNpLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpDQogX19yZWxlYXNl cyhlaGNpLT5sb2NrKQ0KIF9fYWNxdWlyZXMoZWhjaS0+bG9jaykNCiB7DQotCWlmIChsaWtlbHkg KHVyYi0+aGNwcml2ICE9IE5VTEwpKSB7DQotCQlzdHJ1Y3QgZWhjaV9xaAkqcWggPSAoc3RydWN0 IGVoY2lfcWggKikgdXJiLT5oY3ByaXY7DQotDQotCQkvKiBTLW1hc2sgaW4gYSBRSCBtZWFucyBp dCdzIGFuIGludGVycnVwdCB1cmIgKi8NCi0JCWlmICgocWgtPmh3LT5od19pbmZvMiAmIGNwdV90 b19oYzMyKGVoY2ksIFFIX1NNQVNLKSkgIT0gMCkgew0KLQ0KLQkJCS8qIC4uLiB1cGRhdGUgaGMt d2lkZSBwZXJpb2RpYyBzdGF0cyAoZm9yIHVzYmZzKSAqLw0KLQkJCWVoY2lfdG9faGNkKGVoY2kp LT5zZWxmLmJhbmR3aWR0aF9pbnRfcmVxcy0tOw0KLQkJfQ0KLQkJcWhfcHV0IChxaCk7DQorCWlm ICh1c2JfcGlwZXR5cGUodXJiLT5waXBlKSA9PSBQSVBFX0lOVEVSUlVQVCkgew0KKwkJLyogLi4u IHVwZGF0ZSBoYy13aWRlIHBlcmlvZGljIHN0YXRzICovDQorCQllaGNpX3RvX2hjZChlaGNpKS0+ c2VsZi5iYW5kd2lkdGhfaW50X3JlcXMtLTsNCiAJfQ0KIA0KKwlpZiAodXNiX3BpcGV0eXBlKHVy Yi0+cGlwZSkgIT0gUElQRV9JU09DSFJPTk9VUykNCisJCXFoX3B1dCgoc3RydWN0IGVoY2lfcWgg KikgdXJiLT5oY3ByaXYpOw0KKw0KIAlpZiAodW5saWtlbHkodXJiLT51bmxpbmtlZCkpIHsNCiAJ CUNPVU5UKGVoY2ktPnN0YXRzLnVubGluayk7DQogCX0gZWxzZSB7DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvaG9zdC9laGNpLXNjaGVkLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktc2NoZWQu Yw0KaW5kZXggYTYwNjc5Yy4uMzQ2NTVkMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qv ZWhjaS1zY2hlZC5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2ktc2NoZWQuYw0KQEAgLTE2 ODQsNyArMTY4NCw3IEBAIGl0ZF9saW5rX3VyYiAoDQogDQogCS8qIGRvbid0IG5lZWQgdGhhdCBz Y2hlZHVsZSBkYXRhIGFueSBtb3JlICovDQogCWlzb19zY2hlZF9mcmVlIChzdHJlYW0sIGlzb19z Y2hlZCk7DQotCXVyYi0+aGNwcml2ID0gTlVMTDsNCisJdXJiLT5oY3ByaXYgPSBzdHJlYW07DQog DQogCXRpbWVyX2FjdGlvbiAoZWhjaSwgVElNRVJfSU9fV0FUQ0hET0cpOw0KIAlyZXR1cm4gZW5h YmxlX3BlcmlvZGljKGVoY2kpOw0KQEAgLTIwOTQsNyArMjA5NCw3IEBAIHNpdGRfbGlua191cmIg KA0KIA0KIAkvKiBkb24ndCBuZWVkIHRoYXQgc2NoZWR1bGUgZGF0YSBhbnkgbW9yZSAqLw0KIAlp c29fc2NoZWRfZnJlZSAoc3RyZWFtLCBzY2hlZCk7DQotCXVyYi0+aGNwcml2ID0gTlVMTDsNCisJ dXJiLT5oY3ByaXYgPSBzdHJlYW07DQogDQogCXRpbWVyX2FjdGlvbiAoZWhjaSwgVElNRVJfSU9f V0FUQ0hET0cpOw0KIAlyZXR1cm4gZW5hYmxlX3BlcmlvZGljKGVoY2kpOw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL2hvc3Qvb2hjaS1xLmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2ktcS5jDQpp bmRleCAxNWRjNTFkLi5lMGFlNzc3IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC9vaGNp LXEuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLXEuYw0KQEAgLTExMzAsNiArMTEzMCwy NSBAQCBkbF9kb25lX2xpc3QgKHN0cnVjdCBvaGNpX2hjZCAqb2hjaSkNCiANCiAJd2hpbGUgKHRk KSB7DQogCQlzdHJ1Y3QgdGQJKnRkX25leHQgPSB0ZC0+bmV4dF9kbF90ZDsNCisJCXN0cnVjdCBl ZAkqZWQgPSB0ZC0+ZWQ7DQorDQorCQkvKg0KKwkJICogU29tZSBPSENJIGNvbnRyb2xsZXJzIChO VklESUEgZm9yIHN1cmUsIG1heWJlIG90aGVycykNCisJCSAqIG9jY2FzaW9uYWxseSBmb3JnZXQg dG8gYWRkIFREcyB0byB0aGUgZG9uZSBxdWV1ZS4gIFNpbmNlDQorCQkgKiBURHMgZm9yIGEgZ2l2 ZW4gZW5kcG9pbnQgYXJlIGFsd2F5cyBwcm9jZXNzZWQgaW4gb3JkZXIsDQorCQkgKiBpZiB3ZSBm aW5kIGEgVEQgb24gdGhlIGRvbmVsaXN0IHRoZW4gYWxsIG9mIGl0cw0KKwkJICogcHJlZGVjZXNz b3JzIG11c3QgYmUgZmluaXNoZWQgYXMgd2VsbC4NCisJCSAqLw0KKwkJZm9yICg7Oykgew0KKwkJ CXN0cnVjdCB0ZAkqdGQyOw0KKw0KKwkJCXRkMiA9IGxpc3RfZmlyc3RfZW50cnkoJmVkLT50ZF9s aXN0LCBzdHJ1Y3QgdGQsDQorCQkJCQl0ZF9saXN0KTsNCisJCQlpZiAodGQyID09IHRkKQ0KKwkJ CQlicmVhazsNCisJCQl0YWtlYmFja190ZChvaGNpLCB0ZDIpOw0KKwkJfQ0KKw0KIAkJdGFrZWJh Y2tfdGQob2hjaSwgdGQpOw0KIAkJdGQgPSB0ZF9uZXh0Ow0KIAl9DQpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvaG9zdC9wY2ktcXVpcmtzLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3BjaS1xdWlya3Mu Yw0KaW5kZXggYzI4MTVhNS4uNWNjNDAxYiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2hvc3Qv cGNpLXF1aXJrcy5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3BjaS1xdWlya3MuYw0KQEAgLTcy Myw2ICs3MjMsNyBAQCBzdGF0aWMgaW50IGhhbmRzaGFrZSh2b2lkIF9faW9tZW0gKnB0ciwgdTMy IG1hc2ssIHUzMiBkb25lLA0KIH0NCiANCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSU5URUxfTFlO WF9QT0lOVF9YSENJCTB4OEMzMQ0KKyNkZWZpbmUgUENJX0RFVklDRV9JRF9JTlRFTF9MWU5YX1BP SU5UX0xQX1hIQ0kJMHg5QzMxDQogDQogYm9vbCB1c2JfaXNfaW50ZWxfcHB0X3N3aXRjaGFibGVf eGhjaShzdHJ1Y3QgcGNpX2RldiAqcGRldikNCiB7DQpAQCAtNzM2LDcgKzczNyw4IEBAIGJvb2wg dXNiX2lzX2ludGVsX2xwdF9zd2l0Y2hhYmxlX3hoY2koc3RydWN0IHBjaV9kZXYgKnBkZXYpDQog ew0KIAlyZXR1cm4gcGRldi0+Y2xhc3MgPT0gUENJX0NMQVNTX1NFUklBTF9VU0JfWEhDSSAmJg0K IAkJcGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfSU5URUwgJiYNCi0JCXBkZXYtPmRldmlj ZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX0xZTlhfUE9JTlRfWEhDSTsNCisJCShwZGV2LT5kZXZp Y2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9MWU5YX1BPSU5UX1hIQ0kgfHwNCisJCSBwZGV2LT5k ZXZpY2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9MWU5YX1BPSU5UX0xQX1hIQ0kpOw0KIH0NCiAN CiBib29sIHVzYl9pc19pbnRlbF9zd2l0Y2hhYmxlX3hoY2koc3RydWN0IHBjaV9kZXYgKnBkZXYp DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jIGIvZHJpdmVycy91c2Iv aG9zdC94aGNpLW1lbS5jDQppbmRleCA0Y2RkYmZjLi41NzE5YzRkIDEwMDY0NA0KLS0tIGEvZHJp dmVycy91c2IvaG9zdC94aGNpLW1lbS5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktbWVt LmMNCkBAIC0xNzgsOCArMTc4LDE1IEBAIHN0YXRpYyBzdHJ1Y3QgeGhjaV9yaW5nICp4aGNpX3Jp bmdfYWxsb2Moc3RydWN0IHhoY2lfaGNkICp4aGNpLA0KIAkJc3RydWN0IHhoY2lfc2VnbWVudAkq bmV4dDsNCiANCiAJCW5leHQgPSB4aGNpX3NlZ21lbnRfYWxsb2MoeGhjaSwgZmxhZ3MpOw0KLQkJ aWYgKCFuZXh0KQ0KKwkJaWYgKCFuZXh0KSB7DQorCQkJcHJldiA9IHJpbmctPmZpcnN0X3NlZzsN CisJCQl3aGlsZSAocHJldikgew0KKwkJCQluZXh0ID0gcHJldi0+bmV4dDsNCisJCQkJeGhjaV9z ZWdtZW50X2ZyZWUoeGhjaSwgcHJldik7DQorCQkJCXByZXYgPSBuZXh0Ow0KKwkJCX0NCiAJCQln b3RvIGZhaWw7DQorCQl9DQogCQl4aGNpX2xpbmtfc2VnbWVudHMoeGhjaSwgcHJldiwgbmV4dCwg bGlua190cmJzLCBpc29jKTsNCiANCiAJCXByZXYgPSBuZXh0Ow0KQEAgLTE5OSw3ICsyMDYsNyBA QCBzdGF0aWMgc3RydWN0IHhoY2lfcmluZyAqeGhjaV9yaW5nX2FsbG9jKHN0cnVjdCB4aGNpX2hj ZCAqeGhjaSwNCiAJcmV0dXJuIHJpbmc7DQogDQogZmFpbDoNCi0JeGhjaV9yaW5nX2ZyZWUoeGhj aSwgcmluZyk7DQorCWtmcmVlKHJpbmcpOw0KIAlyZXR1cm4gTlVMTDsNCiB9DQogDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLXBjaS5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNp LXBjaS5jDQppbmRleCA0ZWQ3NTcyLi5hY2E2NDdhIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Iv aG9zdC94aGNpLXBjaS5jDQorKysgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcGNpLmMNCkBAIC0y OSw2ICsyOSw3IEBADQogLyogRGV2aWNlIGZvciBhIHF1aXJrICovDQogI2RlZmluZSBQQ0lfVkVO RE9SX0lEX0ZSRVNDT19MT0dJQwkweDFiNzMNCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfRlJFU0NP X0xPR0lDX1BESwkweDEwMDANCisjZGVmaW5lIFBDSV9ERVZJQ0VfSURfRlJFU0NPX0xPR0lDX0ZM MTQwMAkweDE0MDANCiANCiAjZGVmaW5lIFBDSV9WRU5ET1JfSURfRVRST04JCTB4MWI2Zg0KICNk ZWZpbmUgUENJX0RFVklDRV9JRF9BU1JPQ0tfUDY3CTB4NzAyMw0KQEAgLTU4LDggKzU5LDEwIEBA IHN0YXRpYyB2b2lkIHhoY2lfcGNpX3F1aXJrcyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCB4 aGNpX2hjZCAqeGhjaSkNCiANCiAJLyogTG9vayBmb3IgdmVuZG9yLXNwZWNpZmljIHF1aXJrcyAq Lw0KIAlpZiAocGRldi0+dmVuZG9yID09IFBDSV9WRU5ET1JfSURfRlJFU0NPX0xPR0lDICYmDQot CQkJcGRldi0+ZGV2aWNlID09IFBDSV9ERVZJQ0VfSURfRlJFU0NPX0xPR0lDX1BESykgew0KLQkJ aWYgKHBkZXYtPnJldmlzaW9uID09IDB4MCkgew0KKwkJCShwZGV2LT5kZXZpY2UgPT0gUENJX0RF VklDRV9JRF9GUkVTQ09fTE9HSUNfUERLIHx8DQorCQkJIHBkZXYtPmRldmljZSA9PSBQQ0lfREVW SUNFX0lEX0ZSRVNDT19MT0dJQ19GTDE0MDApKSB7DQorCQlpZiAocGRldi0+ZGV2aWNlID09IFBD SV9ERVZJQ0VfSURfRlJFU0NPX0xPR0lDX1BESyAmJg0KKwkJCQlwZGV2LT5yZXZpc2lvbiA9PSAw eDApIHsNCiAJCQl4aGNpLT5xdWlya3MgfD0gWEhDSV9SRVNFVF9FUF9RVUlSSzsNCiAJCQl4aGNp X2RiZyh4aGNpLCAiUVVJUks6IEZyZXNjbyBMb2dpYyB4SEMgbmVlZHMgY29uZmlndXJlIg0KIAkJ CQkJIiBlbmRwb2ludCBjbWQgYWZ0ZXIgcmVzZXQgZW5kcG9pbnRcbiIpOw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvdXNiL2hvc3QveGhjaS1yaW5nLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2ktcmlu Zy5jDQppbmRleCA3ZGU5OTkzLi4xYmE5OGY1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9z dC94aGNpLXJpbmcuYw0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLXJpbmcuYw0KQEAgLTI5 OTUsMTEgKzI5OTUsMTEgQEAgc3RhdGljIHUzMiB4aGNpX3RkX3JlbWFpbmRlcih1bnNpZ25lZCBp bnQgcmVtYWluZGVyKQ0KIH0NCiANCiAvKg0KLSAqIEZvciB4SENJIDEuMCBob3N0IGNvbnRyb2xs ZXJzLCBURCBzaXplIGlzIHRoZSBudW1iZXIgb2YgcGFja2V0cyByZW1haW5pbmcgaW4NCi0gKiB0 aGUgVEQgKCpub3QqIGluY2x1ZGluZyB0aGlzIFRSQikuDQorICogRm9yIHhIQ0kgMS4wIGhvc3Qg Y29udHJvbGxlcnMsIFREIHNpemUgaXMgdGhlIG51bWJlciBvZiBtYXggcGFja2V0IHNpemVkDQor ICogcGFja2V0cyByZW1haW5pbmcgaW4gdGhlIFREICgqbm90KiBpbmNsdWRpbmcgdGhpcyBUUkIp Lg0KICAqDQogICogVG90YWwgVEQgcGFja2V0IGNvdW50ID0gdG90YWxfcGFja2V0X2NvdW50ID0N Ci0gKiAgICAgcm91bmR1cChURCBzaXplIGluIGJ5dGVzIC8gd01heFBhY2tldFNpemUpDQorICog ICAgIERJVl9ST1VORF9VUChURCBzaXplIGluIGJ5dGVzIC8gd01heFBhY2tldFNpemUpDQogICoN CiAgKiBQYWNrZXRzIHRyYW5zZmVycmVkIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhpcyBUUkIgPSBw YWNrZXRzX3RyYW5zZmVycmVkID0NCiAgKiAgICAgcm91bmRkb3duKHRvdGFsIGJ5dGVzIHRyYW5z ZmVycmVkIGluY2x1ZGluZyB0aGlzIFRSQiAvIHdNYXhQYWNrZXRTaXplKQ0KQEAgLTMwMDcsMTUg KzMwMDcsMTYgQEAgc3RhdGljIHUzMiB4aGNpX3RkX3JlbWFpbmRlcih1bnNpZ25lZCBpbnQgcmVt YWluZGVyKQ0KICAqIFREIHNpemUgPSB0b3RhbF9wYWNrZXRfY291bnQgLSBwYWNrZXRzX3RyYW5z ZmVycmVkDQogICoNCiAgKiBJdCBtdXN0IGZpdCBpbiBiaXRzIDIxOjE3LCBzbyBpdCBjYW4ndCBi ZSBiaWdnZXIgdGhhbiAzMS4NCisgKiBUaGUgbGFzdCBUUkIgaW4gYSBURCBtdXN0IGhhdmUgdGhl IFREIHNpemUgc2V0IHRvIHplcm8uDQogICovDQotDQogc3RhdGljIHUzMiB4aGNpX3YxXzBfdGRf cmVtYWluZGVyKGludCBydW5uaW5nX3RvdGFsLCBpbnQgdHJiX2J1ZmZfbGVuLA0KLQkJdW5zaWdu ZWQgaW50IHRvdGFsX3BhY2tldF9jb3VudCwgc3RydWN0IHVyYiAqdXJiKQ0KKwkJdW5zaWduZWQg aW50IHRvdGFsX3BhY2tldF9jb3VudCwgc3RydWN0IHVyYiAqdXJiLA0KKwkJdW5zaWduZWQgaW50 IG51bV90cmJzX2xlZnQpDQogew0KIAlpbnQgcGFja2V0c190cmFuc2ZlcnJlZDsNCiANCiAJLyog T25lIFRSQiB3aXRoIGEgemVyby1sZW5ndGggZGF0YSBwYWNrZXQuICovDQotCWlmIChydW5uaW5n X3RvdGFsID09IDAgJiYgdHJiX2J1ZmZfbGVuID09IDApDQorCWlmIChudW1fdHJic19sZWZ0ID09 IDAgfHwgKHJ1bm5pbmdfdG90YWwgPT0gMCAmJiB0cmJfYnVmZl9sZW4gPT0gMCkpDQogCQlyZXR1 cm4gMDsNCiANCiAJLyogQWxsIHRoZSBUUkIgcXVldWVpbmcgZnVuY3Rpb25zIGRvbid0IGNvdW50 IHRoZSBjdXJyZW50IFRSQiBpbg0KQEAgLTMwMjQsNyArMzAyNSw5IEBAIHN0YXRpYyB1MzIgeGhj aV92MV8wX3RkX3JlbWFpbmRlcihpbnQgcnVubmluZ190b3RhbCwgaW50IHRyYl9idWZmX2xlbiwN CiAJcGFja2V0c190cmFuc2ZlcnJlZCA9IChydW5uaW5nX3RvdGFsICsgdHJiX2J1ZmZfbGVuKSAv DQogCQl1c2JfZW5kcG9pbnRfbWF4cCgmdXJiLT5lcC0+ZGVzYyk7DQogDQotCXJldHVybiB4aGNp X3RkX3JlbWFpbmRlcih0b3RhbF9wYWNrZXRfY291bnQgLSBwYWNrZXRzX3RyYW5zZmVycmVkKTsN CisJaWYgKCh0b3RhbF9wYWNrZXRfY291bnQgLSBwYWNrZXRzX3RyYW5zZmVycmVkKSA+IDMxKQ0K KwkJcmV0dXJuIDMxIDw8IDE3Ow0KKwlyZXR1cm4gKHRvdGFsX3BhY2tldF9jb3VudCAtIHBhY2tl dHNfdHJhbnNmZXJyZWQpIDw8IDE3Ow0KIH0NCiANCiBzdGF0aWMgaW50IHF1ZXVlX2J1bGtfc2df dHgoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBfdCBtZW1fZmxhZ3MsDQpAQCAtMzA1MSw3ICsz MDU0LDcgQEAgc3RhdGljIGludCBxdWV1ZV9idWxrX3NnX3R4KHN0cnVjdCB4aGNpX2hjZCAqeGhj aSwgZ2ZwX3QgbWVtX2ZsYWdzLA0KIA0KIAludW1fdHJicyA9IGNvdW50X3NnX3RyYnNfbmVlZGVk KHhoY2ksIHVyYik7DQogCW51bV9zZ3MgPSB1cmItPm51bV9tYXBwZWRfc2dzOw0KLQl0b3RhbF9w YWNrZXRfY291bnQgPSByb3VuZHVwKHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0aCwNCisJdG90 YWxfcGFja2V0X2NvdW50ID0gRElWX1JPVU5EX1VQKHVyYi0+dHJhbnNmZXJfYnVmZmVyX2xlbmd0 aCwNCiAJCQl1c2JfZW5kcG9pbnRfbWF4cCgmdXJiLT5lcC0+ZGVzYykpOw0KIA0KIAl0cmJfYnVm Zl9sZW4gPSBwcmVwYXJlX3RyYW5zZmVyKHhoY2ksIHhoY2ktPmRldnNbc2xvdF9pZF0sDQpAQCAt MzE0MSw3ICszMTQ0LDggQEAgc3RhdGljIGludCBxdWV1ZV9idWxrX3NnX3R4KHN0cnVjdCB4aGNp X2hjZCAqeGhjaSwgZ2ZwX3QgbWVtX2ZsYWdzLA0KIAkJCQkJcnVubmluZ190b3RhbCk7DQogCQl9 IGVsc2Ugew0KIAkJCXJlbWFpbmRlciA9IHhoY2lfdjFfMF90ZF9yZW1haW5kZXIocnVubmluZ190 b3RhbCwNCi0JCQkJCXRyYl9idWZmX2xlbiwgdG90YWxfcGFja2V0X2NvdW50LCB1cmIpOw0KKwkJ CQkJdHJiX2J1ZmZfbGVuLCB0b3RhbF9wYWNrZXRfY291bnQsIHVyYiwNCisJCQkJCW51bV90cmJz IC0gMSk7DQogCQl9DQogCQlsZW5ndGhfZmllbGQgPSBUUkJfTEVOKHRyYl9idWZmX2xlbikgfA0K IAkJCXJlbWFpbmRlciB8DQpAQCAtMzI1OCw3ICszMjYyLDcgQEAgaW50IHhoY2lfcXVldWVfYnVs a190eChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIGdmcF90IG1lbV9mbGFncywNCiAJc3RhcnRfY3lj bGUgPSBlcF9yaW5nLT5jeWNsZV9zdGF0ZTsNCiANCiAJcnVubmluZ190b3RhbCA9IDA7DQotCXRv dGFsX3BhY2tldF9jb3VudCA9IHJvdW5kdXAodXJiLT50cmFuc2Zlcl9idWZmZXJfbGVuZ3RoLA0K Kwl0b3RhbF9wYWNrZXRfY291bnQgPSBESVZfUk9VTkRfVVAodXJiLT50cmFuc2Zlcl9idWZmZXJf bGVuZ3RoLA0KIAkJCXVzYl9lbmRwb2ludF9tYXhwKCZ1cmItPmVwLT5kZXNjKSk7DQogCS8qIEhv dyBtdWNoIGRhdGEgaXMgaW4gdGhlIGZpcnN0IFRSQj8gKi8NCiAJYWRkciA9ICh1NjQpIHVyYi0+ dHJhbnNmZXJfZG1hOw0KQEAgLTMzMDQsNyArMzMwOCw4IEBAIGludCB4aGNpX3F1ZXVlX2J1bGtf dHgoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBfdCBtZW1fZmxhZ3MsDQogCQkJCQlydW5uaW5n X3RvdGFsKTsNCiAJCX0gZWxzZSB7DQogCQkJcmVtYWluZGVyID0geGhjaV92MV8wX3RkX3JlbWFp bmRlcihydW5uaW5nX3RvdGFsLA0KLQkJCQkJdHJiX2J1ZmZfbGVuLCB0b3RhbF9wYWNrZXRfY291 bnQsIHVyYik7DQorCQkJCQl0cmJfYnVmZl9sZW4sIHRvdGFsX3BhY2tldF9jb3VudCwgdXJiLA0K KwkJCQkJbnVtX3RyYnMgLSAxKTsNCiAJCX0NCiAJCWxlbmd0aF9maWVsZCA9IFRSQl9MRU4odHJi X2J1ZmZfbGVuKSB8DQogCQkJcmVtYWluZGVyIHwNCkBAIC0zNTc5LDcgKzM1ODQsNyBAQCBzdGF0 aWMgaW50IHhoY2lfcXVldWVfaXNvY190eChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIGdmcF90IG1l bV9mbGFncywNCiAJCWFkZHIgPSBzdGFydF9hZGRyICsgdXJiLT5pc29fZnJhbWVfZGVzY1tpXS5v ZmZzZXQ7DQogCQl0ZF9sZW4gPSB1cmItPmlzb19mcmFtZV9kZXNjW2ldLmxlbmd0aDsNCiAJCXRk X3JlbWFpbl9sZW4gPSB0ZF9sZW47DQotCQl0b3RhbF9wYWNrZXRfY291bnQgPSByb3VuZHVwKHRk X2xlbiwNCisJCXRvdGFsX3BhY2tldF9jb3VudCA9IERJVl9ST1VORF9VUCh0ZF9sZW4sDQogCQkJ CXVzYl9lbmRwb2ludF9tYXhwKCZ1cmItPmVwLT5kZXNjKSk7DQogCQkvKiBBIHplcm8tbGVuZ3Ro IHRyYW5zZmVyIHN0aWxsIGludm9sdmVzIGF0IGxlYXN0IG9uZSBwYWNrZXQuICovDQogCQlpZiAo dG90YWxfcGFja2V0X2NvdW50ID09IDApDQpAQCAtMzY1OSw3ICszNjY0LDggQEAgc3RhdGljIGlu dCB4aGNpX3F1ZXVlX2lzb2NfdHgoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBfdCBtZW1fZmxh Z3MsDQogCQkJfSBlbHNlIHsNCiAJCQkJcmVtYWluZGVyID0geGhjaV92MV8wX3RkX3JlbWFpbmRl cigNCiAJCQkJCQlydW5uaW5nX3RvdGFsLCB0cmJfYnVmZl9sZW4sDQotCQkJCQkJdG90YWxfcGFj a2V0X2NvdW50LCB1cmIpOw0KKwkJCQkJCXRvdGFsX3BhY2tldF9jb3VudCwgdXJiLA0KKwkJCQkJ CSh0cmJzX3Blcl90ZCAtIGogLSAxKSk7DQogCQkJfQ0KIAkJCWxlbmd0aF9maWVsZCA9IFRSQl9M RU4odHJiX2J1ZmZfbGVuKSB8DQogCQkJCXJlbWFpbmRlciB8DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy91c2IvaG9zdC94aGNpLmMgYi9kcml2ZXJzL3VzYi9ob3N0L3hoY2kuYw0KaW5kZXggZGFiMDVk MS4uOWRjNTg3MGNkIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLmMNCisrKyBi L2RyaXZlcnMvdXNiL2hvc3QveGhjaS5jDQpAQCAtNDcyLDcgKzQ3Miw3IEBAIHN0YXRpYyBib29s IGNvbXBsaWFuY2VfbW9kZV9yZWNvdmVyeV90aW1lcl9xdWlya19jaGVjayh2b2lkKQ0KIAlpZiAo c3Ryc3RyKGRtaV9wcm9kdWN0X25hbWUsICJaNDIwIikgfHwNCiAJCQlzdHJzdHIoZG1pX3Byb2R1 Y3RfbmFtZSwgIlo2MjAiKSB8fA0KIAkJCXN0cnN0cihkbWlfcHJvZHVjdF9uYW1lLCAiWjgyMCIp IHx8DQotCQkJc3Ryc3RyKGRtaV9wcm9kdWN0X25hbWUsICJaMSIpKQ0KKwkJCXN0cnN0cihkbWlf cHJvZHVjdF9uYW1lLCAiWjEgV29ya3N0YXRpb24iKSkNCiAJCXJldHVybiB0cnVlOw0KIA0KIAly ZXR1cm4gZmFsc2U7DQpAQCAtMjI0MSw3ICsyMjQxLDcgQEAgc3RhdGljIGJvb2wgeGhjaV9pc19h c3luY19lcCh1bnNpZ25lZCBpbnQgZXBfdHlwZSkNCiANCiBzdGF0aWMgYm9vbCB4aGNpX2lzX3N5 bmNfaW5fZXAodW5zaWduZWQgaW50IGVwX3R5cGUpDQogew0KLQlyZXR1cm4gKGVwX3R5cGUgPT0g SVNPQ19JTl9FUCB8fCBlcF90eXBlICE9IElOVF9JTl9FUCk7DQorCXJldHVybiAoZXBfdHlwZSA9 PSBJU09DX0lOX0VQIHx8IGVwX3R5cGUgPT0gSU5UX0lOX0VQKTsNCiB9DQogDQogc3RhdGljIHVu c2lnbmVkIGludCB4aGNpX2dldF9zc19id19jb25zdW1lZChzdHJ1Y3QgeGhjaV9id19pbmZvICpl cF9idykNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9tdXNiL2NwcGlfZG1hLmMgYi9kcml2ZXJz L3VzYi9tdXNiL2NwcGlfZG1hLmMNCmluZGV4IDMxOGZiNGUuLjY0ZDdiMzggMTAwNjQ0DQotLS0g YS9kcml2ZXJzL3VzYi9tdXNiL2NwcGlfZG1hLmMNCisrKyBiL2RyaXZlcnMvdXNiL211c2IvY3Bw aV9kbWEuYw0KQEAgLTEzMTMsNiArMTMxMyw3IEBAIGlycXJldHVybl90IGNwcGlfaW50ZXJydXB0 KGludCBpcnEsIHZvaWQgKmRldl9pZCkNCiANCiAJcmV0dXJuIElSUV9IQU5ETEVEOw0KIH0NCitF WFBPUlRfU1lNQk9MX0dQTChjcHBpX2ludGVycnVwdCk7DQogDQogLyogSW5zdGFudGlhdGUgYSBz b2Z0d2FyZSBvYmplY3QgcmVwcmVzZW50aW5nIGEgRE1BIGNvbnRyb2xsZXIuICovDQogc3RydWN0 IGRtYV9jb250cm9sbGVyICpfX2luaXQNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9zZXJpYWwv Y3AyMTB4LmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMNCmluZGV4IDM1ZTZiNWYuLjM4 MWQwMGQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4LmMNCisrKyBiL2Ry aXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYw0KQEAgLTEyMCw2ICsxMjAsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgaWRfdGFibGVbXSA9IHsNCiAJeyBVU0JfREVWSUNFKDB4 MTBDNCwgMHg4NDc3KSB9LCAvKiBCYWxsdWZmIFJGSUQgKi8NCiAJeyBVU0JfREVWSUNFKDB4MTBD NCwgMHg4NUVBKSB9LCAvKiBBQy1TZXJ2aWNlcyBJQlVTLUlGICovDQogCXsgVVNCX0RFVklDRSgw eDEwQzQsIDB4ODVFQikgfSwgLyogQUMtU2VydmljZXMgQ0lTLUlCVVMgKi8NCisJeyBVU0JfREVW SUNFKDB4MTBDNCwgMHg4NUY4KSB9LCAvKiBWaXJ0ZW5pbyBQcmVvbjMyICovDQogCXsgVVNCX0RF VklDRSgweDEwQzQsIDB4ODY2NCkgfSwgLyogQUMtU2VydmljZXMgQ0FOLUlGICovDQogCXsgVVNC X0RFVklDRSgweDEwQzQsIDB4ODY2NSkgfSwgLyogQUMtU2VydmljZXMgT0JELUlGICovDQogCXsg VVNCX0RFVklDRSgweDEwQzQsIDB4RUE2MCkgfSwgLyogU2lsaWNvbiBMYWJzIGZhY3RvcnkgZGVm YXVsdCAqLw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIGIvZHJp dmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMNCmluZGV4IGUyOWE2NjQuLjNmOTg5ZDYgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL3VzYi9zZXJpYWwvZnRkaV9zaW8uYw0KKysrIGIvZHJpdmVycy91c2Iv c2VyaWFsL2Z0ZGlfc2lvLmMNCkBAIC0xOTcsNiArMTk3LDcgQEAgc3RhdGljIHN0cnVjdCB1c2Jf ZGV2aWNlX2lkIGlkX3RhYmxlX2NvbWJpbmVkIFtdID0gew0KIAl7IFVTQl9ERVZJQ0UoRlRESV9W SUQsIEZURElfT1BFTkRDQ19USFJPVFRMRV9QSUQpIH0sDQogCXsgVVNCX0RFVklDRShGVERJX1ZJ RCwgRlRESV9PUEVORENDX0dBVEVXQVlfUElEKSB9LA0KIAl7IFVTQl9ERVZJQ0UoRlRESV9WSUQs IEZURElfT1BFTkRDQ19HQk1fUElEKSB9LA0KKwl7IFVTQl9ERVZJQ0UoTkVXUE9SVF9WSUQsIE5F V1BPUlRfQUdJTElTX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKElOVEVSQklPTUVUUklDU19WSUQs IElOVEVSQklPTUVUUklDU19JT0JPQVJEX1BJRCkgfSwNCiAJeyBVU0JfREVWSUNFKElOVEVSQklP TUVUUklDU19WSUQsIElOVEVSQklPTUVUUklDU19NSU5JX0lPQk9BUkRfUElEKSB9LA0KIAl7IFVT Ql9ERVZJQ0UoRlRESV9WSUQsIEZURElfU1BST0dfSUkpIH0sDQpAQCAtMTgwNyw3ICsxODA4LDcg QEAgc3RhdGljIGludCBmdGRpXzh1MjIzMmNfcHJvYmUoc3RydWN0IHVzYl9zZXJpYWwgKnNlcmlh bCkNCiAJZGJnKCIlcyIsIF9fZnVuY19fKTsNCiANCiAJaWYgKCh1ZGV2LT5tYW51ZmFjdHVyZXIg JiYgIXN0cmNtcCh1ZGV2LT5tYW51ZmFjdHVyZXIsICJDQUxBTyBTeXN0ZW1zIikpIHx8DQotCSAg ICAodWRldi0+cHJvZHVjdCAmJiAhc3RyY21wKHVkZXYtPnByb2R1Y3QsICJCZWFnbGVCb25lL1hE UzEwMCIpKSkNCisJICAgICh1ZGV2LT5wcm9kdWN0ICYmICFzdHJjbXAodWRldi0+cHJvZHVjdCwg IkJlYWdsZUJvbmUvWERTMTAwVjIiKSkpDQogCQlyZXR1cm4gZnRkaV9qdGFnX3Byb2JlKHNlcmlh bCk7DQogDQogCXJldHVybiAwOw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRp X3Npb19pZHMuaCBiL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19pZHMuaA0KaW5kZXggN2I1 ZWI3NC4uYWVkZjY1ZiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npb19p ZHMuaA0KKysrIGIvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvX2lkcy5oDQpAQCAtNzUyLDYg Kzc1MiwxMiBAQA0KICNkZWZpbmUgVFRJX1ZJRAkJCTB4MTAzRQkvKiBWZW5kb3IgSWQgKi8NCiAj ZGVmaW5lIFRUSV9RTDM1NVBfUElECQkweDAzRTgJLyogVFRpIFFMMzU1UCBwb3dlciBzdXBwbHkg Ki8NCiANCisvKg0KKyAqIE5ld3BvcnQgQ29vcGVyYXRpb24gKHd3dy5uZXdwb3J0LmNvbSkNCisg Ki8NCisjZGVmaW5lIE5FV1BPUlRfVklECQkJMHgxMDREDQorI2RlZmluZSBORVdQT1JUX0FHSUxJ U19QSUQJCTB4MzAwMA0KKw0KIC8qIEludGVyYmlvbWV0cmljcyBVU0IgSS9PIEJvYXJkICovDQog LyogRGV2ZWxvcGVkIGZvciBJbnRlcmJpb21ldHJpY3MgYnkgUnVkb2xmIEd1Z2xlciAqLw0KICNk ZWZpbmUgSU5URVJCSU9NRVRSSUNTX1ZJRCAgICAgICAgICAgICAgMHgxMjA5DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlvbi5jIGIvZHJpdmVycy91c2Ivc2VyaWFsL29wdGlv bi5jDQppbmRleCBhNWY4NzVkLi44NzI4MDdiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy91c2Ivc2Vy aWFsL29wdGlvbi5jDQorKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvb3B0aW9uLmMNCkBAIC04MCw2 ICs4MCw3IEBAIHN0YXRpYyB2b2lkIG9wdGlvbl9pbnN0YXRfY2FsbGJhY2soc3RydWN0IHVyYiAq dXJiKTsNCiAjZGVmaW5lIE9QVElPTl9QUk9EVUNUX0dUTTM4MF9NT0RFTQkJMHg3MjAxDQogDQog I2RlZmluZSBIVUFXRUlfVkVORE9SX0lECQkJMHgxMkQxDQorI2RlZmluZSBIVUFXRUlfUFJPRFVD VF9FMTczCQkJMHgxNDBDDQogI2RlZmluZSBIVUFXRUlfUFJPRFVDVF9LNDUwNQkJCTB4MTQ2NA0K ICNkZWZpbmUgSFVBV0VJX1BST0RVQ1RfSzM3NjUJCQkweDE0NjUNCiAjZGVmaW5lIEhVQVdFSV9Q Uk9EVUNUX0s0NjA1CQkJMHgxNEM2DQpAQCAtNTUyLDYgKzU1Myw4IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RFVklDRShRVUFO VEFfVkVORE9SX0lELCBRVUFOVEFfUFJPRFVDVF9HTFgpIH0sDQogCXsgVVNCX0RFVklDRShRVUFO VEFfVkVORE9SX0lELCBRVUFOVEFfUFJPRFVDVF9HS0UpIH0sDQogCXsgVVNCX0RFVklDRShRVUFO VEFfVkVORE9SX0lELCBRVUFOVEFfUFJPRFVDVF9HTEUpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRf SU5URVJGQUNFX0lORk8oSFVBV0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfRTE3MywgMHhm ZiwgMHhmZiwgMHhmZiksDQorCQkuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpICZuZXRf aW50ZjFfYmxhY2tsaXN0IH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oSFVB V0VJX1ZFTkRPUl9JRCwgSFVBV0VJX1BST0RVQ1RfSzQ1MDUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLA0K IAkJLmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSAmaHVhd2VpX2NkYzEyX2JsYWNrbGlz dCB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKEhVQVdFSV9WRU5ET1JfSUQs IEhVQVdFSV9QUk9EVUNUX0szNzY1LCAweGZmLCAweGZmLCAweGZmKSwNCkBAIC04ODMsNiArODg2 LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7 DQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgwMTI2 LCAweGZmLCAweGZmLCAweGZmKSwNCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdCkm bmV0X2ludGY1X2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZP KFpURV9WRU5ET1JfSUQsIDB4MDEyOCwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCisJeyBVU0JfREVW SUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAxMzUsIDB4ZmYsIDB4ZmYs IDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9J RCwgMHgwMTM2LCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVS RkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDEzNywgMHhmZiwgMHhmZiwgMHhmZikgfSwNCisJ eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAxMzksIDB4 ZmYsIDB4ZmYsIDB4ZmYpIH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRF X1ZFTkRPUl9JRCwgMHgwMTQyLCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0Vf QU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDE0MywgMHhmZiwgMHhmZiwgMHhm ZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAw eDAxNDQsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQpAQCAtOTAzLDIwICs5MTAsMzQgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG9wdGlvbl9pZHNbXSA9IHsNCiAJeyBVU0JfREVW SUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAxNjUsIDB4ZmYsIDB4ZmYs IDB4ZmYpIH0sDQogCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9J RCwgMHgwMTY3LCAweGZmLCAweGZmLCAweGZmKSwNCiAJICAuZHJpdmVyX2luZm8gPSAoa2VybmVs X3Vsb25nX3QpJm5ldF9pbnRmNF9ibGFja2xpc3QgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRF UkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAxODksIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQog CXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgwMTkxLCAw eGZmLCAweGZmLCAweGZmKSwgLyogWlRFIEV1Rmk4OTAgKi8NCiAJICAuZHJpdmVyX2luZm8gPSAo a2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmNF9ibGFja2xpc3QgfSwNCisJeyBVU0JfREVWSUNFX0FO RF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAxOTYsIDB4ZmYsIDB4ZmYsIDB4ZmYp IH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgw MTk3LCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9J TkZPKFpURV9WRU5ET1JfSUQsIDB4MDE5OSwgMHhmZiwgMHhmZiwgMHhmZiksIC8qIFpURSBNRjgy MFMgKi8NCiAJICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmMV9ibGFj a2xpc3QgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lE LCAweDAyMDAsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJG QUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgwMjAxLCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7 IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDI1NCwgMHhm ZiwgMHhmZiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVf VkVORE9SX0lELCAweDAyNTcsIDB4ZmYsIDB4ZmYsIDB4ZmYpLCAvKiBaVEUgTUY4MjEgKi8NCiAJ ICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmM19ibGFja2xpc3QgfSwN CisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAyNjUs IDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8o WlRFX1ZFTkRPUl9JRCwgMHgwMjg0LCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJ Q0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDMxNywgMHhmZiwgMHhmZiwg MHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lE LCAweDAzMjYsIDB4ZmYsIDB4ZmYsIDB4ZmYpLA0KIAkgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxf dWxvbmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVS RkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDMzMCwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCisJ eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDAzOTUsIDB4 ZmYsIDB4ZmYsIDB4ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRF X1ZFTkRPUl9JRCwgMHgwNDE0LCAweGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0Vf QU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MDQxNywgMHhmZiwgMHhmZiwgMHhm ZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAw eDEwMDgsIDB4ZmYsIDB4ZmYsIDB4ZmYpLA0KIAkgIC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxv bmdfdCkmbmV0X2ludGY0X2JsYWNrbGlzdCB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFD RV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTAxMCwgMHhmZiwgMHhmZiwgMHhmZiksDQogCSAgLmRy aXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KSZuZXRfaW50ZjRfYmxhY2tsaXN0IH0sDQogCXsg VVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxMDEyLCAweGZm LCAweGZmLCAweGZmKSwNCiAJICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9p bnRmNF9ibGFja2xpc3QgfSwNCisJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVf VkVORE9SX0lELCAweDEwMTgsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQogCXsgVVNCX0RFVklDRV9B TkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxMDIxLCAweGZmLCAweGZmLCAweGZm KSwNCiAJICAuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmMl9ibGFja2xp c3QgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAw eDEwNTcsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQpAQCAtMTA5Niw2ICsxMTE3LDEwIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBvcHRpb25faWRzW10gPSB7DQogCXsgVVNCX0RF VklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxMjk4LCAweGZmLCAweGZm LCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpURV9WRU5ET1Jf SUQsIDB4MTI5OSwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCiAJeyBVU0JfREVWSUNFX0FORF9JTlRF UkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDEzMDAsIDB4ZmYsIDB4ZmYsIDB4ZmYpIH0sDQor CXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwgMHgxMzAxLCAw eGZmLCAweGZmLCAweGZmKSB9LA0KKwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKFpU RV9WRU5ET1JfSUQsIDB4MTMwMiwgMHhmZiwgMHhmZiwgMHhmZikgfSwNCisJeyBVU0JfREVWSUNF X0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDEzMDMsIDB4ZmYsIDB4ZmYsIDB4 ZmYpIH0sDQorCXsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oWlRFX1ZFTkRPUl9JRCwg MHgxMzMzLCAweGZmLCAweGZmLCAweGZmKSB9LA0KIAl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFD RV9JTkZPKFpURV9WRU5ET1JfSUQsIDB4MTQwMSwgMHhmZiwgMHhmZiwgMHhmZiksDQogCQkuZHJp dmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpJm5ldF9pbnRmMl9ibGFja2xpc3QgfSwNCiAJeyBV U0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTyhaVEVfVkVORE9SX0lELCAweDE0MDIsIDB4ZmYs IDB4ZmYsIDB4ZmYpLA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvS2NvbmZpZyBi L2RyaXZlcnMvdXNiL3N0b3JhZ2UvS2NvbmZpZw0KaW5kZXggZmUyZDgwMy4uMzAzYzM0YiAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvdXNiL3N0b3JhZ2UvS2NvbmZpZw0KKysrIGIvZHJpdmVycy91c2Iv c3RvcmFnZS9LY29uZmlnDQpAQCAtMjAzLDcgKzIwMyw3IEBAIGNvbmZpZyBVU0JfU1RPUkFHRV9F TkVfVUI2MjUwDQogDQogY29uZmlnIFVTQl9VQVMNCiAJdHJpc3RhdGUgIlVTQiBBdHRhY2hlZCBT Q1NJIg0KLQlkZXBlbmRzIG9uIFVTQiAmJiBTQ1NJDQorCWRlcGVuZHMgb24gVVNCICYmIFNDU0kg JiYgQlJPS0VODQogCWhlbHANCiAJICBUaGUgVVNCIEF0dGFjaGVkIFNDU0kgcHJvdG9jb2wgaXMg c3VwcG9ydGVkIGJ5IHNvbWUgVVNCDQogCSAgc3RvcmFnZSBkZXZpY2VzLiAgSXQgcGVybWl0cyBo aWdoZXIgcGVyZm9ybWFuY2UgYnkgc3VwcG9ydGluZw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmly dGlvL3ZpcnRpb19yaW5nLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcmluZy5jDQppbmRleCBj N2EyYzIwLi5kYzJlZWQxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy92aXJ0aW8vdmlydGlvX3Jpbmcu Yw0KKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYw0KQEAgLTEyMSw2ICsxMjEsMTMg QEAgc3RhdGljIGludCB2cmluZ19hZGRfaW5kaXJlY3Qoc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZSAq dnEsDQogCXVuc2lnbmVkIGhlYWQ7DQogCWludCBpOw0KIA0KKwkvKg0KKwkgKiBXZSByZXF1aXJl IGxvd21lbSBtYXBwaW5ncyBmb3IgdGhlIGRlc2NyaXB0b3JzIGJlY2F1c2UNCisJICogb3RoZXJ3 aXNlIHZpcnRfdG9fcGh5cyB3aWxsIGdpdmUgdXMgYm9ndXMgYWRkcmVzc2VzIGluIHRoZQ0KKwkg KiB2aXJ0cXVldWUuDQorCSAqLw0KKwlnZnAgJj0gfihfX0dGUF9ISUdITUVNIHwgX19HRlBfSElH SCk7DQorDQogCWRlc2MgPSBrbWFsbG9jKChvdXQgKyBpbikgKiBzaXplb2Yoc3RydWN0IHZyaW5n X2Rlc2MpLCBnZnApOw0KIAlpZiAoIWRlc2MpDQogCQlyZXR1cm4gLUVOT01FTTsNCmRpZmYgLS1n aXQgYS9mcy9iaW5mbXRfbWlzYy5jIGIvZnMvYmluZm10X21pc2MuYw0KaW5kZXggMWU5ZWRiZC4u Y2E1MmU5MiAxMDA2NDQNCi0tLSBhL2ZzL2JpbmZtdF9taXNjLmMNCisrKyBiL2ZzL2JpbmZtdF9t aXNjLmMNCkBAIC0xNzUsNyArMTc1LDEwIEBAIHN0YXRpYyBpbnQgbG9hZF9taXNjX2JpbmFyeShz dHJ1Y3QgbGludXhfYmlucHJtICpicHJtLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykNCiAJCWdvdG8g X2Vycm9yOw0KIAlicHJtLT5hcmdjICsrOw0KIA0KLQlicHJtLT5pbnRlcnAgPSBpbmFtZTsJLyog Zm9yIGJpbmZtdF9zY3JpcHQgKi8NCisJLyogVXBkYXRlIGludGVycCBpbiBjYXNlIGJpbmZtdF9z Y3JpcHQgbmVlZHMgaXQuICovDQorCXJldHZhbCA9IGJwcm1fY2hhbmdlX2ludGVycChpbmFtZSwg YnBybSk7DQorCWlmIChyZXR2YWwgPCAwKQ0KKwkJZ290byBfZXJyb3I7DQogDQogCWludGVycF9m aWxlID0gb3Blbl9leGVjIChpbmFtZSk7DQogCXJldHZhbCA9IFBUUl9FUlIgKGludGVycF9maWxl KTsNCmRpZmYgLS1naXQgYS9mcy9iaW5mbXRfc2NyaXB0LmMgYi9mcy9iaW5mbXRfc2NyaXB0LmMN CmluZGV4IDM5NmE5ODguLmUzOWMxOGEgMTAwNjQ0DQotLS0gYS9mcy9iaW5mbXRfc2NyaXB0LmMN CisrKyBiL2ZzL2JpbmZtdF9zY3JpcHQuYw0KQEAgLTgyLDcgKzgyLDkgQEAgc3RhdGljIGludCBs b2FkX3NjcmlwdChzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtLHN0cnVjdCBwdF9yZWdzICpyZWdz KQ0KIAlyZXR2YWwgPSBjb3B5X3N0cmluZ3Nfa2VybmVsKDEsICZpX25hbWUsIGJwcm0pOw0KIAlp ZiAocmV0dmFsKSByZXR1cm4gcmV0dmFsOyANCiAJYnBybS0+YXJnYysrOw0KLQlicHJtLT5pbnRl cnAgPSBpbnRlcnA7DQorCXJldHZhbCA9IGJwcm1fY2hhbmdlX2ludGVycChpbnRlcnAsIGJwcm0p Ow0KKwlpZiAocmV0dmFsIDwgMCkNCisJCXJldHVybiByZXR2YWw7DQogDQogCS8qDQogCSAqIE9L LCBub3cgcmVzdGFydCB0aGUgcHJvY2VzcyB3aXRoIHRoZSBpbnRlcnByZXRlcidzIGRlbnRyeS4N CmRpZmYgLS1naXQgYS9mcy9kY2FjaGUuYyBiL2ZzL2RjYWNoZS5jDQppbmRleCA2M2MwYzZiLi5i YjdmNGNjIDEwMDY0NA0KLS0tIGEvZnMvZGNhY2hlLmMNCisrKyBiL2ZzL2RjYWNoZS5jDQpAQCAt MTQ5Miw3ICsxNDkyLDcgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKiBkX2ZpbmRfYW55X2FsaWFz KHN0cnVjdCBpbm9kZSAqaW5vZGUpDQogICovDQogc3RydWN0IGRlbnRyeSAqZF9vYnRhaW5fYWxp YXMoc3RydWN0IGlub2RlICppbm9kZSkNCiB7DQotCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcXN0ciBh bm9uc3RyaW5nID0geyAubmFtZSA9ICIiIH07DQorCXN0YXRpYyBjb25zdCBzdHJ1Y3QgcXN0ciBh bm9uc3RyaW5nID0geyAubmFtZSA9ICIvIiwgLmxlbiA9IDEgfTsNCiAJc3RydWN0IGRlbnRyeSAq dG1wOw0KIAlzdHJ1Y3QgZGVudHJ5ICpyZXM7DQogDQpkaWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIv ZnMvZXhlYy5jDQppbmRleCAxMjFjY2FlLi5jMjdmYTBkIDEwMDY0NA0KLS0tIGEvZnMvZXhlYy5j DQorKysgYi9mcy9leGVjLmMNCkBAIC0xMDk1LDcgKzEwOTUsOCBAQCBpbnQgZmx1c2hfb2xkX2V4 ZWMoc3RydWN0IGxpbnV4X2JpbnBybSAqIGJwcm0pDQogCWJwcm0tPm1tID0gTlVMTDsJCS8qIFdl J3JlIHVzaW5nIGl0IG5vdyAqLw0KIA0KIAlzZXRfZnMoVVNFUl9EUyk7DQotCWN1cnJlbnQtPmZs YWdzICY9IH4oUEZfUkFORE9NSVpFIHwgUEZfS1RIUkVBRCB8IFBGX05PRlJFRVpFKTsNCisJY3Vy cmVudC0+ZmxhZ3MgJj0NCisJCX4oUEZfUkFORE9NSVpFIHwgUEZfS1RIUkVBRCB8IFBGX05PRlJF RVpFIHwgUEZfRlJFRVpFUl9OT1NJRyk7DQogCWZsdXNoX3RocmVhZCgpOw0KIAljdXJyZW50LT5w ZXJzb25hbGl0eSAmPSB+YnBybS0+cGVyX2NsZWFyOw0KIA0KQEAgLTEyMDEsOSArMTIwMiwyNCBA QCB2b2lkIGZyZWVfYnBybShzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQ0KIAkJbXV0ZXhfdW5s b2NrKCZjdXJyZW50LT5zaWduYWwtPmNyZWRfZ3VhcmRfbXV0ZXgpOw0KIAkJYWJvcnRfY3JlZHMo YnBybS0+Y3JlZCk7DQogCX0NCisJLyogSWYgYSBiaW5mbXQgY2hhbmdlZCB0aGUgaW50ZXJwLCBm cmVlIGl0LiAqLw0KKwlpZiAoYnBybS0+aW50ZXJwICE9IGJwcm0tPmZpbGVuYW1lKQ0KKwkJa2Zy ZWUoYnBybS0+aW50ZXJwKTsNCiAJa2ZyZWUoYnBybSk7DQogfQ0KIA0KK2ludCBicHJtX2NoYW5n ZV9pbnRlcnAoY2hhciAqaW50ZXJwLCBzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKQ0KK3sNCisJ LyogSWYgYSBiaW5mbXQgY2hhbmdlZCB0aGUgaW50ZXJwLCBmcmVlIGl0IGZpcnN0LiAqLw0KKwlp ZiAoYnBybS0+aW50ZXJwICE9IGJwcm0tPmZpbGVuYW1lKQ0KKwkJa2ZyZWUoYnBybS0+aW50ZXJw KTsNCisJYnBybS0+aW50ZXJwID0ga3N0cmR1cChpbnRlcnAsIEdGUF9LRVJORUwpOw0KKwlpZiAo IWJwcm0tPmludGVycCkNCisJCXJldHVybiAtRU5PTUVNOw0KKwlyZXR1cm4gMDsNCit9DQorRVhQ T1JUX1NZTUJPTChicHJtX2NoYW5nZV9pbnRlcnApOw0KKw0KIC8qDQogICogaW5zdGFsbCB0aGUg bmV3IGNyZWRlbnRpYWxzIGZvciB0aGlzIGV4ZWN1dGFibGUNCiAgKi8NCmRpZmYgLS1naXQgYS9m cy9leHQ0L2FjbC5jIGIvZnMvZXh0NC9hY2wuYw0KaW5kZXggYTVjMjliYi4uODUzNWM0NSAxMDA2 NDQNCi0tLSBhL2ZzL2V4dDQvYWNsLmMNCisrKyBiL2ZzL2V4dDQvYWNsLmMNCkBAIC00MTAsOCAr NDEwLDEwIEBAIGV4dDRfeGF0dHJfc2V0X2FjbChzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IHZvaWQgKnZhbHVlLA0KIA0KIHJldHJ5Og0KIAloYW5kbGUgPSBl eHQ0X2pvdXJuYWxfc3RhcnQoaW5vZGUsIEVYVDRfREFUQV9UUkFOU19CTE9DS1MoaW5vZGUtPmlf c2IpKTsNCi0JaWYgKElTX0VSUihoYW5kbGUpKQ0KLQkJcmV0dXJuIFBUUl9FUlIoaGFuZGxlKTsN CisJaWYgKElTX0VSUihoYW5kbGUpKSB7DQorCQllcnJvciA9IFBUUl9FUlIoaGFuZGxlKTsNCisJ CWdvdG8gcmVsZWFzZV9hbmRfb3V0Ow0KKwl9DQogCWVycm9yID0gZXh0NF9zZXRfYWNsKGhhbmRs ZSwgaW5vZGUsIHR5cGUsIGFjbCk7DQogCWV4dDRfam91cm5hbF9zdG9wKGhhbmRsZSk7DQogCWlm IChlcnJvciA9PSAtRU5PU1BDICYmIGV4dDRfc2hvdWxkX3JldHJ5X2FsbG9jKGlub2RlLT5pX3Ni LCAmcmV0cmllcykpDQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9pbm9kZS5jIGIvZnMvZXh0NC9pbm9k ZS5jDQppbmRleCBiYWMyMzMwLi44NDI0ZGRhIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9pbm9kZS5j DQorKysgYi9mcy9leHQ0L2lub2RlLmMNCkBAIC0xNDIyLDYgKzE0MjIsNyBAQCBzdGF0aWMgdm9p ZCBleHQ0X2RhX2Jsb2NrX2ludmFsaWRhdGVwYWdlcyhzdHJ1Y3QgbXBhZ2VfZGFfZGF0YSAqbXBk KQ0KIA0KIAlpbmRleCA9IG1wZC0+Zmlyc3RfcGFnZTsNCiAJZW5kICAgPSBtcGQtPm5leHRfcGFn ZSAtIDE7DQorCXBhZ2V2ZWNfaW5pdCgmcHZlYywgMCk7DQogCXdoaWxlIChpbmRleCA8PSBlbmQp IHsNCiAJCW5yX3BhZ2VzID0gcGFnZXZlY19sb29rdXAoJnB2ZWMsIG1hcHBpbmcsIGluZGV4LCBQ QUdFVkVDX1NJWkUpOw0KIAkJaWYgKG5yX3BhZ2VzID09IDApDQpkaWZmIC0tZ2l0IGEvZnMvbmZz L2NsaWVudC5jIGIvZnMvbmZzL2NsaWVudC5jDQppbmRleCA4NzNiZjAwLi5kMDNhNDAwIDEwMDY0 NA0KLS0tIGEvZnMvbmZzL2NsaWVudC5jDQorKysgYi9mcy9uZnMvY2xpZW50LmMNCkBAIC02NzIs OCArNjcyLDcgQEAgc3RhdGljIGludCBuZnNfY3JlYXRlX3JwY19jbGllbnQoc3RydWN0IG5mc19j bGllbnQgKmNscCwNCiAgKi8NCiBzdGF0aWMgdm9pZCBuZnNfZGVzdHJveV9zZXJ2ZXIoc3RydWN0 IG5mc19zZXJ2ZXIgKnNlcnZlcikNCiB7DQotCWlmICghKHNlcnZlci0+ZmxhZ3MgJiBORlNfTU9V TlRfTE9DQUxfRkxPQ0spIHx8DQotCQkJIShzZXJ2ZXItPmZsYWdzICYgTkZTX01PVU5UX0xPQ0FM X0ZDTlRMKSkNCisJaWYgKHNlcnZlci0+bmxtX2hvc3QpDQogCQlubG1jbG50X2RvbmUoc2VydmVy LT5ubG1faG9zdCk7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2ZzL25mcy9uZnM0cHJvYy5jIGIvZnMv bmZzL25mczRwcm9jLmMNCmluZGV4IDg2NGI4MzEuLjJmOThjNTMgMTAwNjQ0DQotLS0gYS9mcy9u ZnMvbmZzNHByb2MuYw0KKysrIGIvZnMvbmZzL25mczRwcm9jLmMNCkBAIC01NTQ0LDEzICs1NTQ0 LDI2IEBAIHN0YXRpYyB2b2lkIG5mczQxX3NlcXVlbmNlX3ByZXBhcmUoc3RydWN0IHJwY190YXNr ICp0YXNrLCB2b2lkICpkYXRhKQ0KIAlycGNfY2FsbF9zdGFydCh0YXNrKTsNCiB9DQogDQorc3Rh dGljIHZvaWQgbmZzNDFfc2VxdWVuY2VfcHJlcGFyZV9wcml2aWxlZ2VkKHN0cnVjdCBycGNfdGFz ayAqdGFzaywgdm9pZCAqZGF0YSkNCit7DQorCXJwY190YXNrX3NldF9wcmlvcml0eSh0YXNrLCBS UENfUFJJT1JJVFlfUFJJVklMRUdFRCk7DQorCW5mczQxX3NlcXVlbmNlX3ByZXBhcmUodGFzaywg ZGF0YSk7DQorfQ0KKw0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnBjX2NhbGxfb3BzIG5mczQxX3Nl cXVlbmNlX29wcyA9IHsNCiAJLnJwY19jYWxsX2RvbmUgPSBuZnM0MV9zZXF1ZW5jZV9jYWxsX2Rv bmUsDQogCS5ycGNfY2FsbF9wcmVwYXJlID0gbmZzNDFfc2VxdWVuY2VfcHJlcGFyZSwNCiAJLnJw Y19yZWxlYXNlID0gbmZzNDFfc2VxdWVuY2VfcmVsZWFzZSwNCiB9Ow0KIA0KLXN0YXRpYyBzdHJ1 Y3QgcnBjX3Rhc2sgKl9uZnM0MV9wcm9jX3NlcXVlbmNlKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAs IHN0cnVjdCBycGNfY3JlZCAqY3JlZCkNCitzdGF0aWMgY29uc3Qgc3RydWN0IHJwY19jYWxsX29w cyBuZnM0MV9zZXF1ZW5jZV9wcml2aWxlZ2VkX29wcyA9IHsNCisJLnJwY19jYWxsX2RvbmUgPSBu ZnM0MV9zZXF1ZW5jZV9jYWxsX2RvbmUsDQorCS5ycGNfY2FsbF9wcmVwYXJlID0gbmZzNDFfc2Vx dWVuY2VfcHJlcGFyZV9wcml2aWxlZ2VkLA0KKwkucnBjX3JlbGVhc2UgPSBuZnM0MV9zZXF1ZW5j ZV9yZWxlYXNlLA0KK307DQorDQorc3RhdGljIHN0cnVjdCBycGNfdGFzayAqX25mczQxX3Byb2Nf c2VxdWVuY2Uoc3RydWN0IG5mc19jbGllbnQgKmNscCwgc3RydWN0IHJwY19jcmVkICpjcmVkLA0K KwkJCQkJICAgICBjb25zdCBzdHJ1Y3QgcnBjX2NhbGxfb3BzICpzZXFfb3BzKQ0KIHsNCiAJc3Ry dWN0IG5mczRfc2VxdWVuY2VfZGF0YSAqY2FsbGRhdGE7DQogCXN0cnVjdCBycGNfbWVzc2FnZSBt c2cgPSB7DQpAQCAtNTU2MCw3ICs1NTczLDcgQEAgc3RhdGljIHN0cnVjdCBycGNfdGFzayAqX25m czQxX3Byb2Nfc2VxdWVuY2Uoc3RydWN0IG5mc19jbGllbnQgKmNscCwgc3RydWN0IHJwY18NCiAJ c3RydWN0IHJwY190YXNrX3NldHVwIHRhc2tfc2V0dXBfZGF0YSA9IHsNCiAJCS5ycGNfY2xpZW50 ID0gY2xwLT5jbF9ycGNjbGllbnQsDQogCQkucnBjX21lc3NhZ2UgPSAmbXNnLA0KLQkJLmNhbGxi YWNrX29wcyA9ICZuZnM0MV9zZXF1ZW5jZV9vcHMsDQorCQkuY2FsbGJhY2tfb3BzID0gc2VxX29w cywNCiAJCS5mbGFncyA9IFJQQ19UQVNLX0FTWU5DIHwgUlBDX1RBU0tfU09GVCwNCiAJfTsNCiAN CkBAIC01NTg2LDcgKzU1OTksNyBAQCBzdGF0aWMgaW50IG5mczQxX3Byb2NfYXN5bmNfc2VxdWVu Y2Uoc3RydWN0IG5mc19jbGllbnQgKmNscCwgc3RydWN0IHJwY19jcmVkICpjcg0KIA0KIAlpZiAo KHJlbmV3X2ZsYWdzICYgTkZTNF9SRU5FV19USU1FT1VUKSA9PSAwKQ0KIAkJcmV0dXJuIDA7DQot CXRhc2sgPSBfbmZzNDFfcHJvY19zZXF1ZW5jZShjbHAsIGNyZWQpOw0KKwl0YXNrID0gX25mczQx X3Byb2Nfc2VxdWVuY2UoY2xwLCBjcmVkLCAmbmZzNDFfc2VxdWVuY2Vfb3BzKTsNCiAJaWYgKElT X0VSUih0YXNrKSkNCiAJCXJldCA9IFBUUl9FUlIodGFzayk7DQogCWVsc2UNCkBAIC01NjAwLDcg KzU2MTMsNyBAQCBzdGF0aWMgaW50IG5mczRfcHJvY19zZXF1ZW5jZShzdHJ1Y3QgbmZzX2NsaWVu dCAqY2xwLCBzdHJ1Y3QgcnBjX2NyZWQgKmNyZWQpDQogCXN0cnVjdCBycGNfdGFzayAqdGFzazsN CiAJaW50IHJldDsNCiANCi0JdGFzayA9IF9uZnM0MV9wcm9jX3NlcXVlbmNlKGNscCwgY3JlZCk7 DQorCXRhc2sgPSBfbmZzNDFfcHJvY19zZXF1ZW5jZShjbHAsIGNyZWQsICZuZnM0MV9zZXF1ZW5j ZV9wcml2aWxlZ2VkX29wcyk7DQogCWlmIChJU19FUlIodGFzaykpIHsNCiAJCXJldCA9IFBUUl9F UlIodGFzayk7DQogCQlnb3RvIG91dDsNCmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczRwcm9jLmMg Yi9mcy9uZnNkL25mczRwcm9jLmMNCmluZGV4IGI4YzU1MzguLmZlNWM1ZmIgMTAwNjQ0DQotLS0g YS9mcy9uZnNkL25mczRwcm9jLmMNCisrKyBiL2ZzL25mc2QvbmZzNHByb2MuYw0KQEAgLTE5Myw2 ICsxOTMsNyBAQCBzdGF0aWMgX19iZTMyDQogZG9fb3Blbl9sb29rdXAoc3RydWN0IHN2Y19ycXN0 ICpycXN0cCwgc3RydWN0IHN2Y19maCAqY3VycmVudF9maCwgc3RydWN0IG5mc2Q0X29wZW4gKm9w ZW4pDQogew0KIAlzdHJ1Y3Qgc3ZjX2ZoIHJlc2ZoOw0KKwlpbnQgYWNjbW9kZTsNCiAJX19iZTMy IHN0YXR1czsNCiANCiAJZmhfaW5pdCgmcmVzZmgsIE5GUzRfRkhTSVpFKTsNCkBAIC0yNTIsOSAr MjUzLDEwIEBAIGRvX29wZW5fbG9va3VwKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBz dmNfZmggKmN1cnJlbnRfZmgsIHN0cnVjdCBuZnNkNF9vDQogCS8qIHNldCByZXBseSBjYWNoZSAq Lw0KIAlmaF9jb3B5X3NoYWxsb3coJm9wZW4tPm9wX29wZW5vd25lci0+b29fb3duZXIuc29fcmVw bGF5LnJwX29wZW5maCwNCiAJCQkmcmVzZmguZmhfaGFuZGxlKTsNCi0JaWYgKCFvcGVuLT5vcF9j cmVhdGVkKQ0KLQkJc3RhdHVzID0gZG9fb3Blbl9wZXJtaXNzaW9uKHJxc3RwLCBjdXJyZW50X2Zo LCBvcGVuLA0KLQkJCQkJICAgIE5GU0RfTUFZX05PUCk7DQorCWFjY21vZGUgPSBORlNEX01BWV9O T1A7DQorCWlmIChvcGVuLT5vcF9jcmVhdGVkKQ0KKwkJYWNjbW9kZSB8PSBORlNEX01BWV9PV05F Ul9PVkVSUklERTsNCisJc3RhdHVzID0gZG9fb3Blbl9wZXJtaXNzaW9uKHJxc3RwLCBjdXJyZW50 X2ZoLCBvcGVuLCBhY2Ntb2RlKTsNCiANCiBvdXQ6DQogCWZoX3B1dCgmcmVzZmgpOw0KZGlmZiAt LWdpdCBhL2ZzL25mc2QvbmZzNHN0YXRlLmMgYi9mcy9uZnNkL25mczRzdGF0ZS5jDQppbmRleCBk MjI1YjUxLi44YjE5N2QyIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC9uZnM0c3RhdGUuYw0KKysrIGIv ZnMvbmZzZC9uZnM0c3RhdGUuYw0KQEAgLTIzMDksNyArMjMwOSw3IEBAIG5mc2Q0X2luaXRfc2xh YnModm9pZCkNCiAJaWYgKG9wZW5vd25lcl9zbGFiID09IE5VTEwpDQogCQlnb3RvIG91dF9ub21l bTsNCiAJbG9ja293bmVyX3NsYWIgPSBrbWVtX2NhY2hlX2NyZWF0ZSgibmZzZDRfbG9ja293bmVy cyIsDQotCQkJc2l6ZW9mKHN0cnVjdCBuZnM0X29wZW5vd25lciksIDAsIDAsIE5VTEwpOw0KKwkJ CXNpemVvZihzdHJ1Y3QgbmZzNF9sb2Nrb3duZXIpLCAwLCAwLCBOVUxMKTsNCiAJaWYgKGxvY2tv d25lcl9zbGFiID09IE5VTEwpDQogCQlnb3RvIG91dF9ub21lbTsNCiAJZmlsZV9zbGFiID0ga21l bV9jYWNoZV9jcmVhdGUoIm5mc2Q0X2ZpbGVzIiwNCmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczR4 ZHIuYyBiL2ZzL25mc2QvbmZzNHhkci5jDQppbmRleCA4N2ExNzQ2Li44MDBjMjE1IDEwMDY0NA0K LS0tIGEvZnMvbmZzZC9uZnM0eGRyLmMNCisrKyBiL2ZzL25mc2QvbmZzNHhkci5jDQpAQCAtMjkw OSwxMSArMjkwOSwxNiBAQCBuZnNkNF9lbmNvZGVfcmVhZChzdHJ1Y3QgbmZzZDRfY29tcG91bmRy ZXMgKnJlc3AsIF9fYmUzMiBuZnNlcnIsDQogCWxlbiA9IG1heGNvdW50Ow0KIAl2ID0gMDsNCiAJ d2hpbGUgKGxlbiA+IDApIHsNCi0JCXBuID0gcmVzcC0+cnFzdHAtPnJxX3Jlc3VzZWQrKzsNCisJ CXBuID0gcmVzcC0+cnFzdHAtPnJxX3Jlc3VzZWQ7DQorCQlpZiAoIXJlc3AtPnJxc3RwLT5ycV9y ZXNwYWdlc1twbl0pIHsgLyogcmFuIG91dCBvZiBwYWdlcyAqLw0KKwkJCW1heGNvdW50IC09IGxl bjsNCisJCQlicmVhazsNCisJCX0NCiAJCXJlc3AtPnJxc3RwLT5ycV92ZWNbdl0uaW92X2Jhc2Ug PQ0KIAkJCXBhZ2VfYWRkcmVzcyhyZXNwLT5ycXN0cC0+cnFfcmVzcGFnZXNbcG5dKTsNCiAJCXJl c3AtPnJxc3RwLT5ycV92ZWNbdl0uaW92X2xlbiA9DQogCQkJbGVuIDwgUEFHRV9TSVpFID8gbGVu IDogUEFHRV9TSVpFOw0KKwkJcmVzcC0+cnFzdHAtPnJxX3Jlc3VzZWQrKzsNCiAJCXYrKzsNCiAJ CWxlbiAtPSBQQUdFX1NJWkU7DQogCX0NCkBAIC0yOTU5LDYgKzI5NjQsOCBAQCBuZnNkNF9lbmNv ZGVfcmVhZGxpbmsoc3RydWN0IG5mc2Q0X2NvbXBvdW5kcmVzICpyZXNwLCBfX2JlMzIgbmZzZXJy LCBzdHJ1Y3QgbmZzZA0KIAkJcmV0dXJuIG5mc2VycjsNCiAJaWYgKHJlc3AtPnhidWYtPnBhZ2Vf bGVuKQ0KIAkJcmV0dXJuIG5mc2Vycl9yZXNvdXJjZTsNCisJaWYgKCFyZXNwLT5ycXN0cC0+cnFf cmVzcGFnZXNbcmVzcC0+cnFzdHAtPnJxX3Jlc3VzZWRdKQ0KKwkJcmV0dXJuIG5mc2Vycl9yZXNv dXJjZTsNCiANCiAJcGFnZSA9IHBhZ2VfYWRkcmVzcyhyZXNwLT5ycXN0cC0+cnFfcmVzcGFnZXNb cmVzcC0+cnFzdHAtPnJxX3Jlc3VzZWQrK10pOw0KIA0KQEAgLTMwMDgsNiArMzAxNSw4IEBAIG5m c2Q0X2VuY29kZV9yZWFkZGlyKHN0cnVjdCBuZnNkNF9jb21wb3VuZHJlcyAqcmVzcCwgX19iZTMy IG5mc2Vyciwgc3RydWN0IG5mc2Q0DQogCQlyZXR1cm4gbmZzZXJyOw0KIAlpZiAocmVzcC0+eGJ1 Zi0+cGFnZV9sZW4pDQogCQlyZXR1cm4gbmZzZXJyX3Jlc291cmNlOw0KKwlpZiAoIXJlc3AtPnJx c3RwLT5ycV9yZXNwYWdlc1tyZXNwLT5ycXN0cC0+cnFfcmVzdXNlZF0pDQorCQlyZXR1cm4gbmZz ZXJyX3Jlc291cmNlOw0KIA0KIAlSRVNFUlZFX1NQQUNFKDgpOyAgLyogdmVyaWZpZXIgKi8NCiAJ c2F2ZXAgPSBwOw0KZGlmZiAtLWdpdCBhL2ZzL25mc2QvbmZzc3ZjLmMgYi9mcy9uZnNkL25mc3N2 Yy5jDQppbmRleCBlZGE3ZDdlLi43NTk1NTgyIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC9uZnNzdmMu Yw0KKysrIGIvZnMvbmZzZC9uZnNzdmMuYw0KQEAgLTYzMyw3ICs2MzMsNyBAQCBuZnNkX2Rpc3Bh dGNoKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIF9fYmUzMiAqc3RhdHApDQogCX0NCiANCiAJLyog U3RvcmUgcmVwbHkgaW4gY2FjaGUuICovDQotCW5mc2RfY2FjaGVfdXBkYXRlKHJxc3RwLCBwcm9j LT5wY19jYWNoZXR5cGUsIHN0YXRwICsgMSk7DQorCW5mc2RfY2FjaGVfdXBkYXRlKHJxc3RwLCBy cXN0cC0+cnFfY2FjaGV0eXBlLCBzdGF0cCArIDEpOw0KIAlyZXR1cm4gMTsNCiB9DQogDQpkaWZm IC0tZ2l0IGEvZnMvbmZzZC92ZnMuYyBiL2ZzL25mc2QvdmZzLmMNCmluZGV4IDVjM2NkODIuLjFl YzFmZGUgMTAwNjQ0DQotLS0gYS9mcy9uZnNkL3Zmcy5jDQorKysgYi9mcy9uZnNkL3Zmcy5jDQpA QCAtMTQ1OCwxMyArMTQ1OCwxOSBAQCBkb19uZnNkX2NyZWF0ZShzdHJ1Y3Qgc3ZjX3Jxc3QgKnJx c3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsDQogCQljYXNlIE5GUzNfQ1JFQVRFX0VYQ0xVU0lWRToN CiAJCQlpZiAoICAgZGNoaWxkLT5kX2lub2RlLT5pX210aW1lLnR2X3NlYyA9PSB2X210aW1lDQog CQkJICAgICYmIGRjaGlsZC0+ZF9pbm9kZS0+aV9hdGltZS50dl9zZWMgPT0gdl9hdGltZQ0KLQkJ CSAgICAmJiBkY2hpbGQtPmRfaW5vZGUtPmlfc2l6ZSAgPT0gMCApDQorCQkJICAgICYmIGRjaGls ZC0+ZF9pbm9kZS0+aV9zaXplICA9PSAwICkgew0KKwkJCQlpZiAoY3JlYXRlZCkNCisJCQkJCSpj cmVhdGVkID0gMTsNCiAJCQkJYnJlYWs7DQorCQkJfQ0KIAkJY2FzZSBORlM0X0NSRUFURV9FWENM VVNJVkU0XzE6DQogCQkJaWYgKCAgIGRjaGlsZC0+ZF9pbm9kZS0+aV9tdGltZS50dl9zZWMgPT0g dl9tdGltZQ0KIAkJCSAgICAmJiBkY2hpbGQtPmRfaW5vZGUtPmlfYXRpbWUudHZfc2VjID09IHZf YXRpbWUNCi0JCQkgICAgJiYgZGNoaWxkLT5kX2lub2RlLT5pX3NpemUgID09IDAgKQ0KKwkJCSAg ICAmJiBkY2hpbGQtPmRfaW5vZGUtPmlfc2l6ZSAgPT0gMCApIHsNCisJCQkJaWYgKGNyZWF0ZWQp DQorCQkJCQkqY3JlYXRlZCA9IDE7DQogCQkJCWdvdG8gc2V0X2F0dHI7DQorCQkJfQ0KIAkJCSAv KiBmYWxsdGhydSAqLw0KIAkJY2FzZSBORlMzX0NSRUFURV9HVUFSREVEOg0KIAkJCWVyciA9IG5m c2Vycl9leGlzdDsNCmRpZmYgLS1naXQgYS9mcy9wcm9jL2FycmF5LmMgYi9mcy9wcm9jL2FycmF5 LmMNCmluZGV4IDNhMWRhZmQuLjQzOWI1YTEgMTAwNjQ0DQotLS0gYS9mcy9wcm9jL2FycmF5LmMN CisrKyBiL2ZzL3Byb2MvYXJyYXkuYw0KQEAgLTIwNCw3ICsyMDQsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgdGFza19zdGF0ZShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBwaWRfbmFtZXNwYWNl ICpucywNCiAJZ3JvdXBfaW5mbyA9IGNyZWQtPmdyb3VwX2luZm87DQogCXRhc2tfdW5sb2NrKHAp Ow0KIA0KLQlmb3IgKGcgPSAwOyBnIDwgbWluKGdyb3VwX2luZm8tPm5ncm91cHMsIE5HUk9VUFNf U01BTEwpOyBnKyspDQorCWZvciAoZyA9IDA7IGcgPCBncm91cF9pbmZvLT5uZ3JvdXBzOyBnKysp DQogCQlzZXFfcHJpbnRmKG0sICIlZCAiLCBHUk9VUF9BVChncm91cF9pbmZvLCBnKSk7DQogCXB1 dF9jcmVkKGNyZWQpOw0KIA0KZGlmZiAtLWdpdCBhL2ZzL3VkZi9pbm9kZS5jIGIvZnMvdWRmL2lu b2RlLmMNCmluZGV4IGUyNzg3ZDAuLjE1ZGYxYTQgMTAwNjQ0DQotLS0gYS9mcy91ZGYvaW5vZGUu Yw0KKysrIGIvZnMvdWRmL2lub2RlLmMNCkBAIC03NDQsNiArNzQ0LDggQEAgc3RhdGljIHN0cnVj dCBidWZmZXJfaGVhZCAqaW5vZGVfZ2V0YmxrKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHNlY3Rvcl90 IGJsb2NrLA0KIAkJCQlnb2FsLCBlcnIpOw0KIAkJaWYgKCFuZXdibG9ja251bSkgew0KIAkJCWJy ZWxzZShwcmV2X2Vwb3MuYmgpOw0KKwkJCWJyZWxzZShjdXJfZXBvcy5iaCk7DQorCQkJYnJlbHNl KG5leHRfZXBvcy5iaCk7DQogCQkJKmVyciA9IC1FTk9TUEM7DQogCQkJcmV0dXJuIE5VTEw7DQog CQl9DQpAQCAtNzc0LDYgKzc3Niw4IEBAIHN0YXRpYyBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmlub2Rl X2dldGJsayhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzZWN0b3JfdCBibG9jaywNCiAJdWRmX3VwZGF0 ZV9leHRlbnRzKGlub2RlLCBsYWFyciwgc3RhcnRudW0sIGVuZG51bSwgJnByZXZfZXBvcyk7DQog DQogCWJyZWxzZShwcmV2X2Vwb3MuYmgpOw0KKwlicmVsc2UoY3VyX2Vwb3MuYmgpOw0KKwlicmVs c2UobmV4dF9lcG9zLmJoKTsNCiANCiAJbmV3YmxvY2sgPSB1ZGZfZ2V0X3BibG9jayhpbm9kZS0+ aV9zYiwgbmV3YmxvY2tudW0sDQogCQkJCWlpbmZvLT5pX2xvY2F0aW9uLnBhcnRpdGlvblJlZmVy ZW5jZU51bSwgMCk7DQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9iaW5mbXRzLmggYi9pbmNs dWRlL2xpbnV4L2JpbmZtdHMuaA0KaW5kZXggZmQ4OGEzOS4uZjYwNjQwNiAxMDA2NDQNCi0tLSBh L2luY2x1ZGUvbGludXgvYmluZm10cy5oDQorKysgYi9pbmNsdWRlL2xpbnV4L2JpbmZtdHMuaA0K QEAgLTEyNyw2ICsxMjcsNyBAQCBleHRlcm4gaW50IHNldHVwX2FyZ19wYWdlcyhzdHJ1Y3QgbGlu dXhfYmlucHJtICogYnBybSwNCiAJCQkgICB1bnNpZ25lZCBsb25nIHN0YWNrX3RvcCwNCiAJCQkg ICBpbnQgZXhlY3V0YWJsZV9zdGFjayk7DQogZXh0ZXJuIGludCBicHJtX21tX2luaXQoc3RydWN0 IGxpbnV4X2JpbnBybSAqYnBybSk7DQorZXh0ZXJuIGludCBicHJtX2NoYW5nZV9pbnRlcnAoY2hh ciAqaW50ZXJwLCBzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKTsNCiBleHRlcm4gaW50IGNvcHlf c3RyaW5nc19rZXJuZWwoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmNvbnN0ICphcmd2LA0KIAkJCSAg ICAgICBzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKTsNCiBleHRlcm4gaW50IHByZXBhcmVfYnBy bV9jcmVkcyhzdHJ1Y3QgbGludXhfYmlucHJtICpicHJtKTsNCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2Nncm91cC5oIGIvaW5jbHVkZS9saW51eC9jZ3JvdXAuaA0KaW5kZXggMWI3ZjlkNS4u OWJhYjc1ZiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvY2dyb3VwLmgNCisrKyBiL2luY2x1 ZGUvbGludXgvY2dyb3VwLmgNCkBAIC0zMiw3ICszMiw2IEBAIGV4dGVybiBpbnQgY2dyb3VwX2xv Y2tfaXNfaGVsZCh2b2lkKTsNCiBleHRlcm4gYm9vbCBjZ3JvdXBfbG9ja19saXZlX2dyb3VwKHN0 cnVjdCBjZ3JvdXAgKmNncnApOw0KIGV4dGVybiB2b2lkIGNncm91cF91bmxvY2sodm9pZCk7DQog ZXh0ZXJuIHZvaWQgY2dyb3VwX2Zvcmsoc3RydWN0IHRhc2tfc3RydWN0ICpwKTsNCi1leHRlcm4g dm9pZCBjZ3JvdXBfZm9ya19jYWxsYmFja3Moc3RydWN0IHRhc2tfc3RydWN0ICpwKTsNCiBleHRl cm4gdm9pZCBjZ3JvdXBfcG9zdF9mb3JrKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7DQogZXh0ZXJu IHZvaWQgY2dyb3VwX2V4aXQoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgcnVuX2NhbGxiYWNr cyk7DQogZXh0ZXJuIGludCBjZ3JvdXBzdGF0c19idWlsZChzdHJ1Y3QgY2dyb3Vwc3RhdHMgKnN0 YXRzLA0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnJlZXplci5oIGIvaW5jbHVkZS9saW51 eC9mcmVlemVyLmgNCmluZGV4IGI1ZDZiNmEuLjg2MmU2N2IgMTAwNjQ0DQotLS0gYS9pbmNsdWRl L2xpbnV4L2ZyZWV6ZXIuaA0KKysrIGIvaW5jbHVkZS9saW51eC9mcmVlemVyLmgNCkBAIC04OCw5 ICs4OCwxNiBAQCBzdGF0aWMgaW5saW5lIGludCBjZ3JvdXBfZnJlZXppbmdfb3JfZnJvemVuKHN0 cnVjdCB0YXNrX3N0cnVjdCAqdGFzaykNCiAgKiBwYXJlbnQuDQogICovDQogDQotLyoNCi0gKiBJ ZiB0aGUgY3VycmVudCB0YXNrIGlzIGEgdXNlciBzcGFjZSBvbmUsIHRlbGwgdGhlIGZyZWV6ZXIg bm90IHRvIGNvdW50IGl0IGFzDQotICogZnJlZXphYmxlLg0KKy8qKg0KKyAqIGZyZWV6ZXJfZG9f bm90X2NvdW50IC0gdGVsbCBmcmVlemVyIHRvIGlnbm9yZSAlY3VycmVudCBpZiBhIHVzZXIgc3Bh Y2UgdGFzaw0KKyAqDQorICogVGVsbCBmcmVlemVycyB0byBpZ25vcmUgdGhlIGN1cnJlbnQgdGFz ayB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgdGhlDQorICogdGFyZ2V0IGZyb3plbiBzdGF0ZSBp cyByZWFjaGVkLiAgSU9XLCB0aGUgY3VycmVudCB0YXNrIHdpbGwgYmUNCisgKiBjb25zaWRlcmVk IGZyb3plbiBlbm91Z2ggYnkgZnJlZXplcnMuDQorICoNCisgKiBUaGUgY2FsbGVyIHNob3VsZG4n dCBkbyBhbnl0aGluZyB3aGljaCBpc24ndCBhbGxvd2VkIGZvciBhIGZyb3plbiB0YXNrDQorICog dW50aWwgZnJlZXplcl9jb250KCkgaXMgY2FsbGVkLiAgVXN1YWxseSwgZnJlZXplcltfZG9fbm90 XV9jb3VudCgpIHBhaXINCisgKiB3cmFwIGEgc2NoZWR1bGluZyBvcGVyYXRpb24gYW5kIG5vdGhp bmcgbXVjaCBlbHNlLg0KICAqLw0KIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlemVyX2RvX25vdF9j b3VudCh2b2lkKQ0KIHsNCkBAIC05OCwyNCArMTA1LDQ4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBm cmVlemVyX2RvX25vdF9jb3VudCh2b2lkKQ0KIAkJY3VycmVudC0+ZmxhZ3MgfD0gUEZfRlJFRVpF Ul9TS0lQOw0KIH0NCiANCi0vKg0KLSAqIElmIHRoZSBjdXJyZW50IHRhc2sgaXMgYSB1c2VyIHNw YWNlIG9uZSwgdGVsbCB0aGUgZnJlZXplciB0byBjb3VudCBpdCBhcw0KLSAqIGZyZWV6YWJsZSBh Z2FpbiBhbmQgdHJ5IHRvIGZyZWV6ZSBpdC4NCisvKioNCisgKiBmcmVlemVyX2NvdW50IC0gdGVs bCBmcmVlemVyIHRvIHN0b3AgaWdub3JpbmcgJWN1cnJlbnQgaWYgYSB1c2VyIHNwYWNlIHRhc2sN CisgKg0KKyAqIFVuZG8gZnJlZXplcl9kb19ub3RfY291bnQoKS4gIEl0IHRlbGxzIGZyZWV6ZXJz IHRoYXQgJWN1cnJlbnQgc2hvdWxkIGJlDQorICogY29uc2lkZXJlZCBhZ2FpbiBhbmQgdHJpZXMg dG8gZnJlZXplIGlmIGZyZWV6aW5nIGNvbmRpdGlvbiBpcyBhbHJlYWR5IGluDQorICogZWZmZWN0 Lg0KICAqLw0KIHN0YXRpYyBpbmxpbmUgdm9pZCBmcmVlemVyX2NvdW50KHZvaWQpDQogew0KIAlp ZiAoY3VycmVudC0+bW0pIHsNCiAJCWN1cnJlbnQtPmZsYWdzICY9IH5QRl9GUkVFWkVSX1NLSVA7 DQorCQkvKg0KKwkJICogSWYgZnJlZXppbmcgaXMgaW4gcHJvZ3Jlc3MsIHRoZSBmb2xsb3dpbmcg cGFpcmVkIHdpdGggc21wX21iKCkNCisJCSAqIGluIGZyZWV6ZXJfc2hvdWxkX3NraXAoKSBlbnN1 cmVzIHRoYXQgZWl0aGVyIHdlIHNlZSAldHJ1ZQ0KKwkJICogZnJlZXppbmcoKSBvciBmcmVlemVy X3Nob3VsZF9za2lwKCkgc2VlcyAhUEZfRlJFRVpFUl9TS0lQLg0KKwkJICovDQorCQlzbXBfbWIo KTsNCiAJCXRyeV90b19mcmVlemUoKTsNCiAJfQ0KIH0NCiANCi0vKg0KLSAqIENoZWNrIGlmIHRo ZSB0YXNrIHNob3VsZCBiZSBjb3VudGVkIGFzIGZyZWV6YWJsZSBieSB0aGUgZnJlZXplcg0KKy8q Kg0KKyAqIGZyZWV6ZXJfc2hvdWxkX3NraXAgLSB3aGV0aGVyIHRvIHNraXAgYSB0YXNrIHdoZW4g ZGV0ZXJtaW5pbmcgZnJvemVuDQorICoJCQkgc3RhdGUgaXMgcmVhY2hlZA0KKyAqIEBwOiB0YXNr IGluIHF1ZXNpb24NCisgKg0KKyAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBieSBmcmVlemVycyBh ZnRlciBlc3RhYmxpc2hpbmcgJXRydWUgZnJlZXppbmcoKSB0bw0KKyAqIHRlc3Qgd2hldGhlciBh IHRhc2sgc2hvdWxkIGJlIHNraXBwZWQgd2hlbiBkZXRlcm1pbmluZyB0aGUgdGFyZ2V0IGZyb3pl bg0KKyAqIHN0YXRlIGlzIHJlYWNoZWQuICBJT1csIGlmIHRoaXMgZnVuY3Rpb24gcmV0dXJucyAl dHJ1ZSwgQHAgaXMgY29uc2lkZXJlZA0KKyAqIGZyb3plbiBlbm91Z2guDQogICovDQotc3RhdGlj IGlubGluZSBpbnQgZnJlZXplcl9zaG91bGRfc2tpcChzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApDQor c3RhdGljIGlubGluZSBib29sIGZyZWV6ZXJfc2hvdWxkX3NraXAoc3RydWN0IHRhc2tfc3RydWN0 ICpwKQ0KIHsNCi0JcmV0dXJuICEhKHAtPmZsYWdzICYgUEZfRlJFRVpFUl9TS0lQKTsNCisJLyoN CisJICogVGhlIGZvbGxvd2luZyBzbXBfbWIoKSBwYWlyZWQgd2l0aCB0aGUgb25lIGluIGZyZWV6 ZXJfY291bnQoKQ0KKwkgKiBlbnN1cmVzIHRoYXQgZWl0aGVyIGZyZWV6ZXJfY291bnQoKSBzZWVz ICV0cnVlIGZyZWV6aW5nKCkgb3Igd2UNCisJICogc2VlIGNsZWFyZWQgJVBGX0ZSRUVaRVJfU0tJ UCBhbmQgcmV0dXJuICVmYWxzZS4gIFRoaXMgbWFrZXMgaXQNCisJICogaW1wb3NzaWJsZSBmb3Ig YSB0YXNrIHRvIHNsaXAgZnJvemVuIHN0YXRlIHRlc3RpbmcgYWZ0ZXINCisJICogY2xlYXJpbmcg JVBGX0ZSRUVaRVJfU0tJUC4NCisJICovDQorCXNtcF9tYigpOw0KKwlyZXR1cm4gcC0+ZmxhZ3Mg JiBQRl9GUkVFWkVSX1NLSVA7DQogfQ0KIA0KIC8qDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9oaWdobWVtLmggYi9pbmNsdWRlL2xpbnV4L2hpZ2htZW0uaA0KaW5kZXggM2E5M2Y3My4uNTJl OTYyMCAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvaGlnaG1lbS5oDQorKysgYi9pbmNsdWRl L2xpbnV4L2hpZ2htZW0uaA0KQEAgLTM4LDEwICszOCwxNyBAQCBleHRlcm4gdW5zaWduZWQgbG9u ZyB0b3RhbGhpZ2hfcGFnZXM7DQogDQogdm9pZCBrbWFwX2ZsdXNoX3VudXNlZCh2b2lkKTsNCiAN CitzdHJ1Y3QgcGFnZSAqa21hcF90b19wYWdlKHZvaWQgKmFkZHIpOw0KKw0KICNlbHNlIC8qIENP TkZJR19ISUdITUVNICovDQogDQogc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbnJfZnJlZV9o aWdocGFnZXModm9pZCkgeyByZXR1cm4gMDsgfQ0KIA0KK3N0YXRpYyBpbmxpbmUgc3RydWN0IHBh Z2UgKmttYXBfdG9fcGFnZSh2b2lkICphZGRyKQ0KK3sNCisJcmV0dXJuIHZpcnRfdG9fcGFnZShh ZGRyKTsNCit9DQorDQogI2RlZmluZSB0b3RhbGhpZ2hfcGFnZXMgMFVMDQogDQogI2lmbmRlZiBB UkNIX0hBU19LTUFQDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9tZW1wb2xpY3kuaCBiL2lu Y2x1ZGUvbGludXgvbWVtcG9saWN5LmgNCmluZGV4IDNlOGYyZjcuLmY4NWM1YWIgMTAwNjQ0DQot LS0gYS9pbmNsdWRlL2xpbnV4L21lbXBvbGljeS5oDQorKysgYi9pbmNsdWRlL2xpbnV4L21lbXBv bGljeS5oDQpAQCAtMTM3LDE2ICsxMzcsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXBvbF9jb25k X3B1dChzdHJ1Y3QgbWVtcG9saWN5ICpwb2wpDQogCQlfX21wb2xfcHV0KHBvbCk7DQogfQ0KIA0K LWV4dGVybiBzdHJ1Y3QgbWVtcG9saWN5ICpfX21wb2xfY29uZF9jb3B5KHN0cnVjdCBtZW1wb2xp Y3kgKnRvbXBvbCwNCi0JCQkJCSAgc3RydWN0IG1lbXBvbGljeSAqZnJvbXBvbCk7DQotc3RhdGlj IGlubGluZSBzdHJ1Y3QgbWVtcG9saWN5ICptcG9sX2NvbmRfY29weShzdHJ1Y3QgbWVtcG9saWN5 ICp0b21wb2wsDQotCQkJCQkJc3RydWN0IG1lbXBvbGljeSAqZnJvbXBvbCkNCi17DQotCWlmICgh ZnJvbXBvbCkNCi0JCXJldHVybiBmcm9tcG9sOw0KLQlyZXR1cm4gX19tcG9sX2NvbmRfY29weSh0 b21wb2wsIGZyb21wb2wpOw0KLX0NCi0NCiBleHRlcm4gc3RydWN0IG1lbXBvbGljeSAqX19tcG9s X2R1cChzdHJ1Y3QgbWVtcG9saWN5ICpwb2wpOw0KIHN0YXRpYyBpbmxpbmUgc3RydWN0IG1lbXBv bGljeSAqbXBvbF9kdXAoc3RydWN0IG1lbXBvbGljeSAqcG9sKQ0KIHsNCkBAIC0yNzAsMTIgKzI2 MCw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtcG9sX2NvbmRfcHV0KHN0cnVjdCBtZW1wb2xpY3kg KnBvbCkNCiB7DQogfQ0KIA0KLXN0YXRpYyBpbmxpbmUgc3RydWN0IG1lbXBvbGljeSAqbXBvbF9j b25kX2NvcHkoc3RydWN0IG1lbXBvbGljeSAqdG8sDQotCQkJCQkJc3RydWN0IG1lbXBvbGljeSAq ZnJvbSkNCi17DQotCXJldHVybiBmcm9tOw0KLX0NCi0NCiBzdGF0aWMgaW5saW5lIHZvaWQgbXBv bF9nZXQoc3RydWN0IG1lbXBvbGljeSAqcG9sKQ0KIHsNCiB9DQpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9wY2lfaWRzLmggYi9pbmNsdWRlL2xpbnV4L3BjaV9pZHMuaA0KaW5kZXggMTg3NGM1 ZS4uNTc3NjYwOSAxMDA2NDQNCi0tLSBhL2luY2x1ZGUvbGludXgvcGNpX2lkcy5oDQorKysgYi9p bmNsdWRlL2xpbnV4L3BjaV9pZHMuaA0KQEAgLTc1Miw2ICs3NTIsNyBAQA0KICNkZWZpbmUgUENJ X0RFVklDRV9JRF9IUF9DSVNTRAkJMHgzMjM4DQogI2RlZmluZSBQQ0lfREVWSUNFX0lEX0hQX0NJ U1NFCQkweDMyM2ENCiAjZGVmaW5lIFBDSV9ERVZJQ0VfSURfSFBfQ0lTU0YJCTB4MzIzYg0KKyNk ZWZpbmUgUENJX0RFVklDRV9JRF9IUF9DSVNTSAkJMHgzMjNjDQogI2RlZmluZSBQQ0lfREVWSUNF X0lEX0hQX1pYMl9JT0MJMHg0MDMxDQogDQogI2RlZmluZSBQQ0lfVkVORE9SX0lEX1BDVEVDSAkJ MHgxMDQyDQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbWFjODAyMTEuaCBiL2luY2x1ZGUvbmV0 L21hYzgwMjExLmgNCmluZGV4IDcyZWRkZDEuLjFhNjIwMWEgMTAwNjQ0DQotLS0gYS9pbmNsdWRl L25ldC9tYWM4MDIxMS5oDQorKysgYi9pbmNsdWRlL25ldC9tYWM4MDIxMS5oDQpAQCAtMTEyOCw2 ICsxMTI4LDEwIEBAIGVudW0gc3RhX25vdGlmeV9jbWQgew0KICAqIEBJRUVFODAyMTFfSFdfVFhf QU1QRFVfU0VUVVBfSU5fSFc6IFRoZSBkZXZpY2UgaGFuZGxlcyBUWCBBLU1QRFUgc2Vzc2lvbg0K ICAqCXNldHVwIHN0cmljdGx5IGluIEhXLiBtYWM4MDIxMSBzaG91bGQgbm90IGF0dGVtcHQgdG8g ZG8gdGhpcyBpbg0KICAqCXNvZnR3YXJlLg0KKyAqDQorICogQElFRUU4MDIxMV9IV19URUFSRE9X Tl9BR0dSX09OX0JBUl9GQUlMOiBPbiB0aGlzIGhhcmR3YXJlIFRYIEJBIHNlc3Npb24NCisgKglz aG91bGQgYmUgdGVhciBkb3duIG9uY2UgQkFSIGZyYW1lIHdpbGwgbm90IGJlIGFja2VkLg0KKyAq DQogICovDQogZW51bSBpZWVlODAyMTFfaHdfZmxhZ3Mgew0KIAlJRUVFODAyMTFfSFdfSEFTX1JB VEVfQ09OVFJPTAkJCT0gMTw8MCwNCkBAIC0xMTU0LDYgKzExNTgsNyBAQCBlbnVtIGllZWU4MDIx MV9od19mbGFncyB7DQogCUlFRUU4MDIxMV9IV19TVVBQT1JUU19QRVJfU1RBX0dUSwkJPSAxPDwy MSwNCiAJSUVFRTgwMjExX0hXX0FQX0xJTktfUFMJCQkJPSAxPDwyMiwNCiAJSUVFRTgwMjExX0hX X1RYX0FNUERVX1NFVFVQX0lOX0hXCQk9IDE8PDIzLA0KKwlJRUVFODAyMTFfSFdfVEVBUkRPV05f QUdHUl9PTl9CQVJfRkFJTAkJPSAxPDwyNiwNCiB9Ow0KIA0KIC8qKg0KZGlmZiAtLWdpdCBhL2tl cm5lbC9jZ3JvdXAuYyBiL2tlcm5lbC9jZ3JvdXAuYw0KaW5kZXggNjMzNzUzNS4uYjZjYWNmMSAx MDA2NDQNCi0tLSBhL2tlcm5lbC9jZ3JvdXAuYw0KKysrIGIva2VybmVsL2Nncm91cC5jDQpAQCAt MjYzNiw5ICsyNjM2LDcgQEAgc3RhdGljIGludCBjZ3JvdXBfY3JlYXRlX2RpcihzdHJ1Y3QgY2dy b3VwICpjZ3JwLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQogCQlkZW50cnktPmRfZnNkYXRhID0g Y2dycDsNCiAJCWluY19ubGluayhwYXJlbnQtPmRfaW5vZGUpOw0KIAkJcmN1X2Fzc2lnbl9wb2lu dGVyKGNncnAtPmRlbnRyeSwgZGVudHJ5KTsNCi0JCWRnZXQoZGVudHJ5KTsNCiAJfQ0KLQlkcHV0 KGRlbnRyeSk7DQogDQogCXJldHVybiBlcnJvcjsNCiB9DQpAQCAtNDUwOCw0MSArNDUwNiwxOSBA QCB2b2lkIGNncm91cF9mb3JrKHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpDQogfQ0KIA0KIC8q Kg0KLSAqIGNncm91cF9mb3JrX2NhbGxiYWNrcyAtIHJ1biBmb3JrIGNhbGxiYWNrcw0KLSAqIEBj aGlsZDogdGhlIG5ldyB0YXNrDQotICoNCi0gKiBDYWxsZWQgb24gYSBuZXcgdGFzayB2ZXJ5IHNv b24gYmVmb3JlIGFkZGluZyBpdCB0byB0aGUNCi0gKiB0YXNrbGlzdC4gTm8gbmVlZCB0byB0YWtl IGFueSBsb2NrcyBzaW5jZSBuby1vbmUgY2FuDQotICogYmUgb3BlcmF0aW5nIG9uIHRoaXMgdGFz ay4NCi0gKi8NCi12b2lkIGNncm91cF9mb3JrX2NhbGxiYWNrcyhzdHJ1Y3QgdGFza19zdHJ1Y3Qg KmNoaWxkKQ0KLXsNCi0JaWYgKG5lZWRfZm9ya2V4aXRfY2FsbGJhY2spIHsNCi0JCWludCBpOw0K LQkJLyoNCi0JCSAqIGZvcmtleGl0IGNhbGxiYWNrcyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIGJ1 aWx0aW4NCi0JCSAqIHN1YnN5c3RlbXMsIGFuZCB0aGUgYnVpbHRpbiBzZWN0aW9uIG9mIHRoZSBz dWJzeXMgYXJyYXkgaXMNCi0JCSAqIGltbXV0YWJsZSwgc28gd2UgZG9uJ3QgbmVlZCB0byBsb2Nr IHRoZSBzdWJzeXMgYXJyYXkgaGVyZS4NCi0JCSAqLw0KLQkJZm9yIChpID0gMDsgaSA8IENHUk9V UF9CVUlMVElOX1NVQlNZU19DT1VOVDsgaSsrKSB7DQotCQkJc3RydWN0IGNncm91cF9zdWJzeXMg KnNzID0gc3Vic3lzW2ldOw0KLQkJCWlmIChzcy0+Zm9yaykNCi0JCQkJc3MtPmZvcmsoc3MsIGNo aWxkKTsNCi0JCX0NCi0JfQ0KLX0NCi0NCi0vKioNCiAgKiBjZ3JvdXBfcG9zdF9mb3JrIC0gY2Fs bGVkIG9uIGEgbmV3IHRhc2sgYWZ0ZXIgYWRkaW5nIGl0IHRvIHRoZSB0YXNrIGxpc3QNCiAgKiBA Y2hpbGQ6IHRoZSB0YXNrIGluIHF1ZXN0aW9uDQogICoNCi0gKiBBZGRzIHRoZSB0YXNrIHRvIHRo ZSBsaXN0IHJ1bm5pbmcgdGhyb3VnaCBpdHMgY3NzX3NldCBpZiBuZWNlc3NhcnkuDQotICogSGFz IHRvIGJlIGFmdGVyIHRoZSB0YXNrIGlzIHZpc2libGUgb24gdGhlIHRhc2sgbGlzdCBpbiBjYXNl IHdlIHJhY2UNCi0gKiB3aXRoIHRoZSBmaXJzdCBjYWxsIHRvIGNncm91cF9pdGVyX3N0YXJ0KCkg LSB0byBndWFyYW50ZWUgdGhhdCB0aGUNCi0gKiBuZXcgdGFzayBlbmRzIHVwIG9uIGl0cyBsaXN0 Lg0KKyAqIEFkZHMgdGhlIHRhc2sgdG8gdGhlIGxpc3QgcnVubmluZyB0aHJvdWdoIGl0cyBjc3Nf c2V0IGlmIG5lY2Vzc2FyeSBhbmQNCisgKiBjYWxsIHRoZSBzdWJzeXN0ZW0gZm9yaygpIGNhbGxi YWNrcy4gIEhhcyB0byBiZSBhZnRlciB0aGUgdGFzayBpcw0KKyAqIHZpc2libGUgb24gdGhlIHRh c2sgbGlzdCBpbiBjYXNlIHdlIHJhY2Ugd2l0aCB0aGUgZmlyc3QgY2FsbCB0bw0KKyAqIGNncm91 cF9pdGVyX3N0YXJ0KCkgLSB0byBndWFyYW50ZWUgdGhhdCB0aGUgbmV3IHRhc2sgZW5kcyB1cCBv biBpdHMNCisgKiBsaXN0Lg0KICAqLw0KIHZvaWQgY2dyb3VwX3Bvc3RfZm9yayhzdHJ1Y3QgdGFz a19zdHJ1Y3QgKmNoaWxkKQ0KIHsNCisJaW50IGk7DQorDQogCWlmICh1c2VfdGFza19jc3Nfc2V0 X2xpbmtzKSB7DQogCQl3cml0ZV9sb2NrKCZjc3Nfc2V0X2xvY2spOw0KIAkJdGFza19sb2NrKGNo aWxkKTsNCkBAIC00NTUxLDcgKzQ1MjcsMjEgQEAgdm9pZCBjZ3JvdXBfcG9zdF9mb3JrKHN0cnVj dCB0YXNrX3N0cnVjdCAqY2hpbGQpDQogCQl0YXNrX3VubG9jayhjaGlsZCk7DQogCQl3cml0ZV91 bmxvY2soJmNzc19zZXRfbG9jayk7DQogCX0NCisNCisJLyoNCisJICogQ2FsbCBzcy0+Zm9yaygp LiAgVGhpcyBtdXN0IGhhcHBlbiBhZnRlciBAY2hpbGQgaXMgbGlua2VkIG9uDQorCSAqIGNzc19z ZXQ7IG90aGVyd2lzZSwgQGNoaWxkIG1pZ2h0IGNoYW5nZSBzdGF0ZSBiZXR3ZWVuIC0+Zm9yaygp DQorCSAqIGFuZCBhZGRpdGlvbiB0byBjc3Nfc2V0Lg0KKwkgKi8NCisJaWYgKG5lZWRfZm9ya2V4 aXRfY2FsbGJhY2spIHsNCisJCWZvciAoaSA9IDA7IGkgPCBDR1JPVVBfQlVJTFRJTl9TVUJTWVNf Q09VTlQ7IGkrKykgew0KKwkJCXN0cnVjdCBjZ3JvdXBfc3Vic3lzICpzcyA9IHN1YnN5c1tpXTsN CisJCQlpZiAoc3MtPmZvcmspDQorCQkJCXNzLT5mb3JrKHNzLCBjaGlsZCk7DQorCQl9DQorCX0N CiB9DQorDQogLyoqDQogICogY2dyb3VwX2V4aXQgLSBkZXRhY2ggY2dyb3VwIGZyb20gZXhpdGlu ZyB0YXNrDQogICogQHRzazogcG9pbnRlciB0byB0YXNrX3N0cnVjdCBvZiBleGl0aW5nIHByb2Nl c3MNCmRpZmYgLS1naXQgYS9rZXJuZWwvY2dyb3VwX2ZyZWV6ZXIuYyBiL2tlcm5lbC9jZ3JvdXBf ZnJlZXplci5jDQppbmRleCAyMTNjMDM1Li42YzEzMmE0IDEwMDY0NA0KLS0tIGEva2VybmVsL2Nn cm91cF9mcmVlemVyLmMNCisrKyBiL2tlcm5lbC9jZ3JvdXBfZnJlZXplci5jDQpAQCAtMTk3LDIz ICsxOTcsMTUgQEAgc3RhdGljIHZvaWQgZnJlZXplcl9mb3JrKHN0cnVjdCBjZ3JvdXBfc3Vic3lz ICpzcywgc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KIHsNCiAJc3RydWN0IGZyZWV6ZXIgKmZy ZWV6ZXI7DQogDQotCS8qDQotCSAqIE5vIGxvY2sgaXMgbmVlZGVkLCBzaW5jZSB0aGUgdGFzayBp c24ndCBvbiB0YXNrbGlzdCB5ZXQsDQotCSAqIHNvIGl0IGNhbid0IGJlIG1vdmVkIHRvIGFub3Ro ZXIgY2dyb3VwLCB3aGljaCBtZWFucyB0aGUNCi0JICogZnJlZXplciB3b24ndCBiZSByZW1vdmVk IGFuZCB3aWxsIGJlIHZhbGlkIGR1cmluZyB0aGlzDQotCSAqIGZ1bmN0aW9uIGNhbGwuICBOZXZl cnRoZWxlc3MsIGFwcGx5IFJDVSByZWFkLXNpZGUgY3JpdGljYWwNCi0JICogc2VjdGlvbiB0byBz dXBwcmVzcyBSQ1UgbG9ja2RlcCBmYWxzZSBwb3NpdGl2ZXMuDQotCSAqLw0KIAlyY3VfcmVhZF9s b2NrKCk7DQogCWZyZWV6ZXIgPSB0YXNrX2ZyZWV6ZXIodGFzayk7DQotCXJjdV9yZWFkX3VubG9j aygpOw0KIA0KIAkvKg0KIAkgKiBUaGUgcm9vdCBjZ3JvdXAgaXMgbm9uLWZyZWV6YWJsZSwgc28g d2UgY2FuIHNraXAgdGhlDQogCSAqIGZvbGxvd2luZyBjaGVjay4NCiAJICovDQogCWlmICghZnJl ZXplci0+Y3NzLmNncm91cC0+cGFyZW50KQ0KLQkJcmV0dXJuOw0KKwkJZ290byBvdXQ7DQogDQog CXNwaW5fbG9ja19pcnEoJmZyZWV6ZXItPmxvY2spOw0KIAlCVUdfT04oZnJlZXplci0+c3RhdGUg PT0gQ0dST1VQX0ZST1pFTik7DQpAQCAtMjIxLDcgKzIxMywxMCBAQCBzdGF0aWMgdm9pZCBmcmVl emVyX2Zvcmsoc3RydWN0IGNncm91cF9zdWJzeXMgKnNzLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRh c2spDQogCS8qIExvY2tpbmcgYXZvaWRzIHJhY2Ugd2l0aCBGUkVFWklORyAtPiBUSEFXRUQgdHJh bnNpdGlvbnMuICovDQogCWlmIChmcmVlemVyLT5zdGF0ZSA9PSBDR1JPVVBfRlJFRVpJTkcpDQog CQlmcmVlemVfdGFzayh0YXNrLCB0cnVlKTsNCisNCiAJc3Bpbl91bmxvY2tfaXJxKCZmcmVlemVy LT5sb2NrKTsNCitvdXQ6DQorCXJjdV9yZWFkX3VubG9jaygpOw0KIH0NCiANCiAvKg0KZGlmZiAt LWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jDQppbmRleCAyMjI0NTdhLi5jZTBj MTgyIDEwMDY0NA0KLS0tIGEva2VybmVsL2ZvcmsuYw0KKysrIGIva2VybmVsL2ZvcmsuYw0KQEAg LTEwNTcsNyArMTA1Nyw2IEBAIHN0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2Vz cyh1bnNpZ25lZCBsb25nIGNsb25lX2ZsYWdzLA0KIHsNCiAJaW50IHJldHZhbDsNCiAJc3RydWN0 IHRhc2tfc3RydWN0ICpwOw0KLQlpbnQgY2dyb3VwX2NhbGxiYWNrc19kb25lID0gMDsNCiANCiAJ aWYgKChjbG9uZV9mbGFncyAmIChDTE9ORV9ORVdOU3xDTE9ORV9GUykpID09IChDTE9ORV9ORVdO U3xDTE9ORV9GUykpDQogCQlyZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsNCkBAIC0xMzEyLDEyICsx MzExLDYgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKHVuc2lnbmVk IGxvbmcgY2xvbmVfZmxhZ3MsDQogCXAtPmdyb3VwX2xlYWRlciA9IHA7DQogCUlOSVRfTElTVF9I RUFEKCZwLT50aHJlYWRfZ3JvdXApOw0KIA0KLQkvKiBOb3cgdGhhdCB0aGUgdGFzayBpcyBzZXQg dXAsIHJ1biBjZ3JvdXAgY2FsbGJhY2tzIGlmDQotCSAqIG5lY2Vzc2FyeS4gV2UgbmVlZCB0byBy dW4gdGhlbSBiZWZvcmUgdGhlIHRhc2sgaXMgdmlzaWJsZQ0KLQkgKiBvbiB0aGUgdGFza2xpc3Qu ICovDQotCWNncm91cF9mb3JrX2NhbGxiYWNrcyhwKTsNCi0JY2dyb3VwX2NhbGxiYWNrc19kb25l ID0gMTsNCi0NCiAJLyogTmVlZCB0YXNrbGlzdCBsb2NrIGZvciBwYXJlbnQgZXRjIGhhbmRsaW5n ISAqLw0KIAl3cml0ZV9sb2NrX2lycSgmdGFza2xpc3RfbG9jayk7DQogDQpAQCAtMTQxOSw3ICsx NDEyLDcgQEAgYmFkX2ZvcmtfY2xlYW51cF9jZ3JvdXA6DQogI2VuZGlmDQogCWlmIChjbG9uZV9m bGFncyAmIENMT05FX1RIUkVBRCkNCiAJCXRocmVhZGdyb3VwX2ZvcmtfcmVhZF91bmxvY2soY3Vy cmVudCk7DQotCWNncm91cF9leGl0KHAsIGNncm91cF9jYWxsYmFja3NfZG9uZSk7DQorCWNncm91 cF9leGl0KHAsIDApOw0KIAlkZWxheWFjY3RfdHNrX2ZyZWUocCk7DQogCW1vZHVsZV9wdXQodGFz a190aHJlYWRfaW5mbyhwKS0+ZXhlY19kb21haW4tPm1vZHVsZSk7DQogYmFkX2ZvcmtfY2xlYW51 cF9jb3VudDoNCmRpZmYgLS1naXQgYS9rZXJuZWwvaXJxL21hbmFnZS5jIGIva2VybmVsL2lycS9t YW5hZ2UuYw0KaW5kZXggNzYwMDA5Mi4uMzgyYTZiZCAxMDA2NDQNCi0tLSBhL2tlcm5lbC9pcnEv bWFuYWdlLmMNCisrKyBiL2tlcm5lbC9pcnEvbWFuYWdlLmMNCkBAIC03MDEsNiArNzAxLDcgQEAg c3RhdGljIHZvaWQNCiBpcnFfdGhyZWFkX2NoZWNrX2FmZmluaXR5KHN0cnVjdCBpcnFfZGVzYyAq ZGVzYywgc3RydWN0IGlycWFjdGlvbiAqYWN0aW9uKQ0KIHsNCiAJY3B1bWFza192YXJfdCBtYXNr Ow0KKwlib29sIHZhbGlkID0gdHJ1ZTsNCiANCiAJaWYgKCF0ZXN0X2FuZF9jbGVhcl9iaXQoSVJR VEZfQUZGSU5JVFksICZhY3Rpb24tPnRocmVhZF9mbGFncykpDQogCQlyZXR1cm47DQpAQCAtNzE1 LDEwICs3MTYsMTggQEAgaXJxX3RocmVhZF9jaGVja19hZmZpbml0eShzdHJ1Y3QgaXJxX2Rlc2Mg KmRlc2MsIHN0cnVjdCBpcnFhY3Rpb24gKmFjdGlvbikNCiAJfQ0KIA0KIAlyYXdfc3Bpbl9sb2Nr X2lycSgmZGVzYy0+bG9jayk7DQotCWNwdW1hc2tfY29weShtYXNrLCBkZXNjLT5pcnFfZGF0YS5h ZmZpbml0eSk7DQorCS8qDQorCSAqIFRoaXMgY29kZSBpcyB0cmlnZ2VyZWQgdW5jb25kaXRpb25h bGx5LiBDaGVjayB0aGUgYWZmaW5pdHkNCisJICogbWFzayBwb2ludGVyLiBGb3IgQ1BVX01BU0tf T0ZGU1RBQ0s9biB0aGlzIGlzIG9wdGltaXplZCBvdXQuDQorCSAqLw0KKwlpZiAoZGVzYy0+aXJx X2RhdGEuYWZmaW5pdHkpDQorCQljcHVtYXNrX2NvcHkobWFzaywgZGVzYy0+aXJxX2RhdGEuYWZm aW5pdHkpOw0KKwllbHNlDQorCQl2YWxpZCA9IGZhbHNlOw0KIAlyYXdfc3Bpbl91bmxvY2tfaXJx KCZkZXNjLT5sb2NrKTsNCiANCi0Jc2V0X2NwdXNfYWxsb3dlZF9wdHIoY3VycmVudCwgbWFzayk7 DQorCWlmICh2YWxpZCkNCisJCXNldF9jcHVzX2FsbG93ZWRfcHRyKGN1cnJlbnQsIG1hc2spOw0K IAlmcmVlX2NwdW1hc2tfdmFyKG1hc2spOw0KIH0NCiAjZWxzZQ0KQEAgLTk1MCw2ICs5NTksMTYg QEAgX19zZXR1cF9pcnEodW5zaWduZWQgaW50IGlycSwgc3RydWN0IGlycV9kZXNjICpkZXNjLCBz dHJ1Y3QgaXJxYWN0aW9uICpuZXcpDQogCQkgKi8NCiAJCWdldF90YXNrX3N0cnVjdCh0KTsNCiAJ CW5ldy0+dGhyZWFkID0gdDsNCisJCS8qDQorCQkgKiBUZWxsIHRoZSB0aHJlYWQgdG8gc2V0IGl0 cyBhZmZpbml0eS4gVGhpcyBpcw0KKwkJICogaW1wb3J0YW50IGZvciBzaGFyZWQgaW50ZXJydXB0 IGhhbmRsZXJzIGFzIHdlIGRvDQorCQkgKiBub3QgaW52b2tlIHNldHVwX2FmZmluaXR5KCkgZm9y IHRoZSBzZWNvbmRhcnkNCisJCSAqIGhhbmRsZXJzIGFzIGV2ZXJ5dGhpbmcgaXMgYWxyZWFkeSBz ZXQgdXAuIEV2ZW4gZm9yDQorCQkgKiBpbnRlcnJ1cHRzIG1hcmtlZCB3aXRoIElSUUZfTk9fQkFM QU5DRSB0aGlzIGlzDQorCQkgKiBjb3JyZWN0IGFzIHdlIHdhbnQgdGhlIHRocmVhZCB0byBtb3Zl IHRvIHRoZSBjcHUocykNCisJCSAqIG9uIHdoaWNoIHRoZSByZXF1ZXN0aW5nIGNvZGUgcGxhY2Vk IHRoZSBpbnRlcnJ1cHQuDQorCQkgKi8NCisJCXNldF9iaXQoSVJRVEZfQUZGSU5JVFksICZuZXct PnRocmVhZF9mbGFncyk7DQogCX0NCiANCiAJaWYgKCFhbGxvY19jcHVtYXNrX3ZhcigmbWFzaywg R0ZQX0tFUk5FTCkpIHsNCmRpZmYgLS1naXQgYS9rZXJuZWwvcmN1dHJlZS5jIGIva2VybmVsL3Jj dXRyZWUuYw0KaW5kZXggYTEyMjE5Ni4uMWFhNTJhZiAxMDA2NDQNCi0tLSBhL2tlcm5lbC9yY3V0 cmVlLmMNCisrKyBiL2tlcm5lbC9yY3V0cmVlLmMNCkBAIC0yMDIsMTMgKzIwMiwxMyBAQCBERUZJ TkVfUEVSX0NQVShzdHJ1Y3QgcmN1X2R5bnRpY2tzLCByY3VfZHludGlja3MpID0gew0KIH07DQog I2VuZGlmIC8qICNpZmRlZiBDT05GSUdfTk9fSFogKi8NCiANCi1zdGF0aWMgaW50IGJsaW1pdCA9 IDEwOwkJLyogTWF4aW11bSBjYWxsYmFja3MgcGVyIHJjdV9kb19iYXRjaC4gKi8NCi1zdGF0aWMg aW50IHFoaW1hcmsgPSAxMDAwMDsJLyogSWYgdGhpcyBtYW55IHBlbmRpbmcsIGlnbm9yZSBibGlt aXQuICovDQotc3RhdGljIGludCBxbG93bWFyayA9IDEwMDsJLyogT25jZSBvbmx5IHRoaXMgbWFu eSBwZW5kaW5nLCB1c2UgYmxpbWl0LiAqLw0KK3N0YXRpYyBsb25nIGJsaW1pdCA9IDEwOwkvKiBN YXhpbXVtIGNhbGxiYWNrcyBwZXIgcmN1X2RvX2JhdGNoLiAqLw0KK3N0YXRpYyBsb25nIHFoaW1h cmsgPSAxMDAwMDsJLyogSWYgdGhpcyBtYW55IHBlbmRpbmcsIGlnbm9yZSBibGltaXQuICovDQor c3RhdGljIGxvbmcgcWxvd21hcmsgPSAxMDA7CS8qIE9uY2Ugb25seSB0aGlzIG1hbnkgcGVuZGlu ZywgdXNlIGJsaW1pdC4gKi8NCiANCi1tb2R1bGVfcGFyYW0oYmxpbWl0LCBpbnQsIDApOw0KLW1v ZHVsZV9wYXJhbShxaGltYXJrLCBpbnQsIDApOw0KLW1vZHVsZV9wYXJhbShxbG93bWFyaywgaW50 LCAwKTsNCittb2R1bGVfcGFyYW0oYmxpbWl0LCBsb25nLCAwKTsNCittb2R1bGVfcGFyYW0ocWhp bWFyaywgbG9uZywgMCk7DQorbW9kdWxlX3BhcmFtKHFsb3dtYXJrLCBsb25nLCAwKTsNCiANCiBp bnQgcmN1X2NwdV9zdGFsbF9zdXBwcmVzcyBfX3JlYWRfbW9zdGx5Ow0KIG1vZHVsZV9wYXJhbShy Y3VfY3B1X3N0YWxsX3N1cHByZXNzLCBpbnQsIDA2NDQpOw0KQEAgLTEyNjAsNyArMTI2MCw3IEBA IHN0YXRpYyB2b2lkIHJjdV9kb19iYXRjaChzdHJ1Y3QgcmN1X3N0YXRlICpyc3AsIHN0cnVjdCBy Y3VfZGF0YSAqcmRwKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyBmbGFnczsNCiAJc3RydWN0IHJjdV9o ZWFkICpuZXh0LCAqbGlzdCwgKip0YWlsOw0KLQlpbnQgYmwsIGNvdW50Ow0KKwlsb25nIGJsLCBj b3VudDsNCiANCiAJLyogSWYgbm8gY2FsbGJhY2tzIGFyZSByZWFkeSwganVzdCByZXR1cm4uKi8N CiAJaWYgKCFjcHVfaGFzX2NhbGxiYWNrc19yZWFkeV90b19pbnZva2UocmRwKSkgew0KZGlmZiAt LWdpdCBhL2tlcm5lbC9zY2hlZF9hdXRvZ3JvdXAuYyBiL2tlcm5lbC9zY2hlZF9hdXRvZ3JvdXAu Yw0KaW5kZXggNDI5MjQyZi4uZjI4MGRmMSAxMDA2NDQNCi0tLSBhL2tlcm5lbC9zY2hlZF9hdXRv Z3JvdXAuYw0KKysrIGIva2VybmVsL3NjaGVkX2F1dG9ncm91cC5jDQpAQCAtMTYwLDE1ICsxNjAs MTEgQEAgYXV0b2dyb3VwX21vdmVfZ3JvdXAoc3RydWN0IHRhc2tfc3RydWN0ICpwLCBzdHJ1Y3Qg YXV0b2dyb3VwICphZykNCiANCiAJcC0+c2lnbmFsLT5hdXRvZ3JvdXAgPSBhdXRvZ3JvdXBfa3Jl Zl9nZXQoYWcpOw0KIA0KLQlpZiAoIUFDQ0VTU19PTkNFKHN5c2N0bF9zY2hlZF9hdXRvZ3JvdXBf ZW5hYmxlZCkpDQotCQlnb3RvIG91dDsNCi0NCiAJdCA9IHA7DQogCWRvIHsNCiAJCXNjaGVkX21v dmVfdGFzayh0KTsNCiAJfSB3aGlsZV9lYWNoX3RocmVhZChwLCB0KTsNCiANCi1vdXQ6DQogCXVu bG9ja190YXNrX3NpZ2hhbmQocCwgJmZsYWdzKTsNCiAJYXV0b2dyb3VwX2tyZWZfcHV0KHByZXYp Ow0KIH0NCmRpZmYgLS1naXQgYS9rZXJuZWwvc2NoZWRfYXV0b2dyb3VwLmggYi9rZXJuZWwvc2No ZWRfYXV0b2dyb3VwLmgNCmluZGV4IGMyZjBlNzIuLjNkN2E1MGUgMTAwNjQ0DQotLS0gYS9rZXJu ZWwvc2NoZWRfYXV0b2dyb3VwLmgNCisrKyBiL2tlcm5lbC9zY2hlZF9hdXRvZ3JvdXAuaA0KQEAg LTEsMTEgKzEsNiBAQA0KICNpZmRlZiBDT05GSUdfU0NIRURfQVVUT0dST1VQDQogDQogc3RydWN0 IGF1dG9ncm91cCB7DQotCS8qDQotCSAqIHJlZmVyZW5jZSBkb2Vzbid0IG1lYW4gaG93IG1hbnkg dGhyZWFkIGF0dGFjaCB0byB0aGlzDQotCSAqIGF1dG9ncm91cCBub3cuIEl0IGp1c3Qgc3RhbmRz IGZvciB0aGUgbnVtYmVyIG9mIHRhc2sNCi0JICogY291bGQgdXNlIHRoaXMgYXV0b2dyb3VwLg0K LQkgKi8NCiAJc3RydWN0IGtyZWYJCWtyZWY7DQogCXN0cnVjdCB0YXNrX2dyb3VwCSp0ZzsNCiAJ c3RydWN0IHJ3X3NlbWFwaG9yZQlsb2NrOw0KZGlmZiAtLWdpdCBhL2tlcm5lbC9zeXMuYyBiL2tl cm5lbC9zeXMuYw0KaW5kZXggZDdjNGFiMC4uZjU5MzljMiAxMDA2NDQNCi0tLSBhL2tlcm5lbC9z eXMuYw0KKysrIGIva2VybmVsL3N5cy5jDQpAQCAtMTE5MCw3ICsxMTkwLDcgQEAgc3RhdGljIGlu dCBvdmVycmlkZV9yZWxlYXNlKGNoYXIgX191c2VyICpyZWxlYXNlLCBzaXplX3QgbGVuKQ0KIAkJ CXJlc3QrKzsNCiAJCX0NCiAJCXYgPSAoKExJTlVYX1ZFUlNJT05fQ09ERSA+PiA4KSAmIDB4ZmYp ICsgNDA7DQotCQljb3B5ID0gbWluKHNpemVvZihidWYpLCBtYXhfdChzaXplX3QsIDEsIGxlbikp Ow0KKwkJY29weSA9IGNsYW1wX3Qoc2l6ZV90LCBsZW4sIDEsIHNpemVvZihidWYpKTsNCiAJCWNv cHkgPSBzY25wcmludGYoYnVmLCBjb3B5LCAiMi42LiV1JXMiLCB2LCByZXN0KTsNCiAJCXJldCA9 IGNvcHlfdG9fdXNlcihyZWxlYXNlLCBidWYsIGNvcHkgKyAxKTsNCiAJfQ0KZGlmZiAtLWdpdCBh L2tlcm5lbC90cmFjZS9mdHJhY2UuYyBiL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KaW5kZXggMjVi NGY0ZC4uNTRkYmE1OSAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZS9mdHJhY2UuYw0KKysrIGIv a2VybmVsL3RyYWNlL2Z0cmFjZS5jDQpAQCAtMjA3NCw3ICsyMDc0LDcgQEAgc3RhdGljIHZvaWQg cmVzZXRfaXRlcl9yZWFkKHN0cnVjdCBmdHJhY2VfaXRlcmF0b3IgKml0ZXIpDQogew0KIAlpdGVy LT5wb3MgPSAwOw0KIAlpdGVyLT5mdW5jX3BvcyA9IDA7DQotCWl0ZXItPmZsYWdzICY9IH4oRlRS QUNFX0lURVJfUFJJTlRBTEwgJiBGVFJBQ0VfSVRFUl9IQVNIKTsNCisJaXRlci0+ZmxhZ3MgJj0g fihGVFJBQ0VfSVRFUl9QUklOVEFMTCB8IEZUUkFDRV9JVEVSX0hBU0gpOw0KIH0NCiANCiBzdGF0 aWMgdm9pZCAqdF9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQ0KZGlmZiAt LWdpdCBhL2tlcm5lbC90cmFjZS9yaW5nX2J1ZmZlci5jIGIva2VybmVsL3RyYWNlL3JpbmdfYnVm ZmVyLmMNCmluZGV4IGY1YjdiNWMuLjZmZGM2MjkgMTAwNjQ0DQotLS0gYS9rZXJuZWwvdHJhY2Uv cmluZ19idWZmZXIuYw0KKysrIGIva2VybmVsL3RyYWNlL3JpbmdfYnVmZmVyLmMNCkBAIC0yNjgz LDcgKzI2ODMsNyBAQCB1bnNpZ25lZCBsb25nIHJpbmdfYnVmZmVyX29sZGVzdF9ldmVudF90cyhz dHJ1Y3QgcmluZ19idWZmZXIgKmJ1ZmZlciwgaW50IGNwdSkNCiAJdW5zaWduZWQgbG9uZyBmbGFn czsNCiAJc3RydWN0IHJpbmdfYnVmZmVyX3Blcl9jcHUgKmNwdV9idWZmZXI7DQogCXN0cnVjdCBi dWZmZXJfcGFnZSAqYnBhZ2U7DQotCXVuc2lnbmVkIGxvbmcgcmV0Ow0KKwl1bnNpZ25lZCBsb25n IHJldCA9IDA7DQogDQogCWlmICghY3B1bWFza190ZXN0X2NwdShjcHUsIGJ1ZmZlci0+Y3B1bWFz aykpDQogCQlyZXR1cm4gMDsNCkBAIC0yNjk4LDcgKzI2OTgsOCBAQCB1bnNpZ25lZCBsb25nIHJp bmdfYnVmZmVyX29sZGVzdF9ldmVudF90cyhzdHJ1Y3QgcmluZ19idWZmZXIgKmJ1ZmZlciwgaW50 IGNwdSkNCiAJCWJwYWdlID0gY3B1X2J1ZmZlci0+cmVhZGVyX3BhZ2U7DQogCWVsc2UNCiAJCWJw YWdlID0gcmJfc2V0X2hlYWRfcGFnZShjcHVfYnVmZmVyKTsNCi0JcmV0ID0gYnBhZ2UtPnBhZ2Ut PnRpbWVfc3RhbXA7DQorCWlmIChicGFnZSkNCisJCXJldCA9IGJwYWdlLT5wYWdlLT50aW1lX3N0 YW1wOw0KIAlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmY3B1X2J1ZmZlci0+cmVhZGVyX2xv Y2ssIGZsYWdzKTsNCiANCiAJcmV0dXJuIHJldDsNCkBAIC0zMDA1LDYgKzMwMDYsOCBAQCByYl9n ZXRfcmVhZGVyX3BhZ2Uoc3RydWN0IHJpbmdfYnVmZmVyX3Blcl9jcHUgKmNwdV9idWZmZXIpDQog CSAqIFNwbGljZSB0aGUgZW1wdHkgcmVhZGVyIHBhZ2UgaW50byB0aGUgbGlzdCBhcm91bmQgdGhl IGhlYWQuDQogCSAqLw0KIAlyZWFkZXIgPSByYl9zZXRfaGVhZF9wYWdlKGNwdV9idWZmZXIpOw0K KwlpZiAoIXJlYWRlcikNCisJCWdvdG8gb3V0Ow0KIAljcHVfYnVmZmVyLT5yZWFkZXJfcGFnZS0+ bGlzdC5uZXh0ID0gcmJfbGlzdF9oZWFkKHJlYWRlci0+bGlzdC5uZXh0KTsNCiAJY3B1X2J1ZmZl ci0+cmVhZGVyX3BhZ2UtPmxpc3QucHJldiA9IHJlYWRlci0+bGlzdC5wcmV2Ow0KIA0KZGlmZiAt LWdpdCBhL2tlcm5lbC93b3JrcXVldWUuYyBiL2tlcm5lbC93b3JrcXVldWUuYw0KaW5kZXggZDU1 MWQ1Zi4uN2JmMDY4YSAxMDA2NDQNCi0tLSBhL2tlcm5lbC93b3JrcXVldWUuYw0KKysrIGIva2Vy bmVsL3dvcmtxdWV1ZS5jDQpAQCAtMTE0Niw4ICsxMTQ2LDggQEAgaW50IHF1ZXVlX2RlbGF5ZWRf d29ya19vbihpbnQgY3B1LCBzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3EsDQogCWlmICghdGVz dF9hbmRfc2V0X2JpdChXT1JLX1NUUlVDVF9QRU5ESU5HX0JJVCwgd29ya19kYXRhX2JpdHMod29y aykpKSB7DQogCQl1bnNpZ25lZCBpbnQgbGNwdTsNCiANCi0JCUJVR19PTih0aW1lcl9wZW5kaW5n KHRpbWVyKSk7DQotCQlCVUdfT04oIWxpc3RfZW1wdHkoJndvcmstPmVudHJ5KSk7DQorCQlXQVJO X09OX09OQ0UodGltZXJfcGVuZGluZyh0aW1lcikpOw0KKwkJV0FSTl9PTl9PTkNFKCFsaXN0X2Vt cHR5KCZ3b3JrLT5lbnRyeSkpOw0KIA0KIAkJdGltZXJfc3RhdHNfdGltZXJfc2V0X3N0YXJ0X2lu Zm8oJmR3b3JrLT50aW1lcik7DQogDQpkaWZmIC0tZ2l0IGEvbW0vZG1hcG9vbC5jIGIvbW0vZG1h cG9vbC5jDQppbmRleCBjNWFiMzNiLi5kYTFiMGYwIDEwMDY0NA0KLS0tIGEvbW0vZG1hcG9vbC5j DQorKysgYi9tbS9kbWFwb29sLmMNCkBAIC01MCw3ICs1MCw2IEBAIHN0cnVjdCBkbWFfcG9vbCB7 CQkvKiB0aGUgcG9vbCAqLw0KIAlzaXplX3QgYWxsb2NhdGlvbjsNCiAJc2l6ZV90IGJvdW5kYXJ5 Ow0KIAljaGFyIG5hbWVbMzJdOw0KLQl3YWl0X3F1ZXVlX2hlYWRfdCB3YWl0cTsNCiAJc3RydWN0 IGxpc3RfaGVhZCBwb29sczsNCiB9Ow0KIA0KQEAgLTYyLDggKzYxLDYgQEAgc3RydWN0IGRtYV9w YWdlIHsJCS8qIGNhY2hlYWJsZSBoZWFkZXIgZm9yICdhbGxvY2F0aW9uJyBieXRlcyAqLw0KIAl1 bnNpZ25lZCBpbnQgb2Zmc2V0Ow0KIH07DQogDQotI2RlZmluZQlQT09MX1RJTUVPVVRfSklGRklF UwkoKDEwMCAvKiBtc2VjICovICogSFopIC8gMTAwMCkNCi0NCiBzdGF0aWMgREVGSU5FX01VVEVY KHBvb2xzX2xvY2spOw0KIA0KIHN0YXRpYyBzc2l6ZV90DQpAQCAtMTcyLDcgKzE2OSw2IEBAIHN0 cnVjdCBkbWFfcG9vbCAqZG1hX3Bvb2xfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBk ZXZpY2UgKmRldiwNCiAJcmV0dmFsLT5zaXplID0gc2l6ZTsNCiAJcmV0dmFsLT5ib3VuZGFyeSA9 IGJvdW5kYXJ5Ow0KIAlyZXR2YWwtPmFsbG9jYXRpb24gPSBhbGxvY2F0aW9uOw0KLQlpbml0X3dh aXRxdWV1ZV9oZWFkKCZyZXR2YWwtPndhaXRxKTsNCiANCiAJaWYgKGRldikgew0KIAkJaW50IHJl dDsNCkBAIC0yMjcsNyArMjIzLDYgQEAgc3RhdGljIHN0cnVjdCBkbWFfcGFnZSAqcG9vbF9hbGxv Y19wYWdlKHN0cnVjdCBkbWFfcG9vbCAqcG9vbCwgZ2ZwX3QgbWVtX2ZsYWdzKQ0KIAkJbWVtc2V0 KHBhZ2UtPnZhZGRyLCBQT09MX1BPSVNPTl9GUkVFRCwgcG9vbC0+YWxsb2NhdGlvbik7DQogI2Vu ZGlmDQogCQlwb29sX2luaXRpYWxpc2VfcGFnZShwb29sLCBwYWdlKTsNCi0JCWxpc3RfYWRkKCZw YWdlLT5wYWdlX2xpc3QsICZwb29sLT5wYWdlX2xpc3QpOw0KIAkJcGFnZS0+aW5fdXNlID0gMDsN CiAJCXBhZ2UtPm9mZnNldCA9IDA7DQogCX0gZWxzZSB7DQpAQCAtMzE1LDMwICszMTAsMjEgQEAg dm9pZCAqZG1hX3Bvb2xfYWxsb2Moc3RydWN0IGRtYV9wb29sICpwb29sLCBnZnBfdCBtZW1fZmxh Z3MsDQogCW1pZ2h0X3NsZWVwX2lmKG1lbV9mbGFncyAmIF9fR0ZQX1dBSVQpOw0KIA0KIAlzcGlu X2xvY2tfaXJxc2F2ZSgmcG9vbC0+bG9jaywgZmxhZ3MpOw0KLSByZXN0YXJ0Og0KIAlsaXN0X2Zv cl9lYWNoX2VudHJ5KHBhZ2UsICZwb29sLT5wYWdlX2xpc3QsIHBhZ2VfbGlzdCkgew0KIAkJaWYg KHBhZ2UtPm9mZnNldCA8IHBvb2wtPmFsbG9jYXRpb24pDQogCQkJZ290byByZWFkeTsNCiAJfQ0K LQlwYWdlID0gcG9vbF9hbGxvY19wYWdlKHBvb2wsIEdGUF9BVE9NSUMpOw0KLQlpZiAoIXBhZ2Up IHsNCi0JCWlmIChtZW1fZmxhZ3MgJiBfX0dGUF9XQUlUKSB7DQotCQkJREVDTEFSRV9XQUlUUVVF VUUod2FpdCwgY3VycmVudCk7DQogDQotCQkJX19zZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5U RVJSVVBUSUJMRSk7DQotCQkJX19hZGRfd2FpdF9xdWV1ZSgmcG9vbC0+d2FpdHEsICZ3YWl0KTsN Ci0JCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwb29sLT5sb2NrLCBmbGFncyk7DQorCS8qIHBv b2xfYWxsb2NfcGFnZSgpIG1pZ2h0IHNsZWVwLCBzbyB0ZW1wb3JhcmlseSBkcm9wICZwb29sLT5s b2NrICovDQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBvb2wtPmxvY2ssIGZsYWdzKTsNCiAN Ci0JCQlzY2hlZHVsZV90aW1lb3V0KFBPT0xfVElNRU9VVF9KSUZGSUVTKTsNCisJcGFnZSA9IHBv b2xfYWxsb2NfcGFnZShwb29sLCBtZW1fZmxhZ3MpOw0KKwlpZiAoIXBhZ2UpDQorCQlyZXR1cm4g TlVMTDsNCiANCi0JCQlzcGluX2xvY2tfaXJxc2F2ZSgmcG9vbC0+bG9jaywgZmxhZ3MpOw0KLQkJ CV9fcmVtb3ZlX3dhaXRfcXVldWUoJnBvb2wtPndhaXRxLCAmd2FpdCk7DQotCQkJZ290byByZXN0 YXJ0Ow0KLQkJfQ0KLQkJcmV0dmFsID0gTlVMTDsNCi0JCWdvdG8gZG9uZTsNCi0JfQ0KKwlzcGlu X2xvY2tfaXJxc2F2ZSgmcG9vbC0+bG9jaywgZmxhZ3MpOw0KIA0KKwlsaXN0X2FkZCgmcGFnZS0+ cGFnZV9saXN0LCAmcG9vbC0+cGFnZV9saXN0KTsNCiAgcmVhZHk6DQogCXBhZ2UtPmluX3VzZSsr Ow0KIAlvZmZzZXQgPSBwYWdlLT5vZmZzZXQ7DQpAQCAtMzQ4LDcgKzMzNCw2IEBAIHZvaWQgKmRt YV9wb29sX2FsbG9jKHN0cnVjdCBkbWFfcG9vbCAqcG9vbCwgZ2ZwX3QgbWVtX2ZsYWdzLA0KICNp ZmRlZglETUFQT09MX0RFQlVHDQogCW1lbXNldChyZXR2YWwsIFBPT0xfUE9JU09OX0FMTE9DQVRF RCwgcG9vbC0+c2l6ZSk7DQogI2VuZGlmDQotIGRvbmU6DQogCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJnBvb2wtPmxvY2ssIGZsYWdzKTsNCiAJcmV0dXJuIHJldHZhbDsNCiB9DQpAQCAtNDM1LDgg KzQyMCw2IEBAIHZvaWQgZG1hX3Bvb2xfZnJlZShzdHJ1Y3QgZG1hX3Bvb2wgKnBvb2wsIHZvaWQg KnZhZGRyLCBkbWFfYWRkcl90IGRtYSkNCiAJcGFnZS0+aW5fdXNlLS07DQogCSooaW50ICopdmFk ZHIgPSBwYWdlLT5vZmZzZXQ7DQogCXBhZ2UtPm9mZnNldCA9IG9mZnNldDsNCi0JaWYgKHdhaXRx dWV1ZV9hY3RpdmUoJnBvb2wtPndhaXRxKSkNCi0JCXdha2VfdXBfbG9ja2VkKCZwb29sLT53YWl0 cSk7DQogCS8qDQogCSAqIFJlc2lzdCBhIHRlbXB0YXRpb24gdG8gZG8NCiAJICogICAgaWYgKCFp c19wYWdlX2J1c3kocGFnZSkpIHBvb2xfZnJlZV9wYWdlKHBvb2wsIHBhZ2UpOw0KZGlmZiAtLWdp dCBhL21tL2hpZ2htZW0uYyBiL21tL2hpZ2htZW0uYw0KaW5kZXggNTdkODJjNi4uMmEwN2Y5NyAx MDA2NDQNCi0tLSBhL21tL2hpZ2htZW0uYw0KKysrIGIvbW0vaGlnaG1lbS5jDQpAQCAtOTQsNiAr OTQsMTkgQEAgc3RhdGljIERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFEKHBrbWFwX21hcF93YWl0KTsN CiAJCWRvIHsgc3Bpbl91bmxvY2soJmttYXBfbG9jayk7ICh2b2lkKShmbGFncyk7IH0gd2hpbGUg KDApDQogI2VuZGlmDQogDQorc3RydWN0IHBhZ2UgKmttYXBfdG9fcGFnZSh2b2lkICp2YWRkcikN Cit7DQorCXVuc2lnbmVkIGxvbmcgYWRkciA9ICh1bnNpZ25lZCBsb25nKXZhZGRyOw0KKw0KKwlp ZiAoYWRkciA+PSBQS01BUF9BRERSKDApICYmIGFkZHIgPD0gUEtNQVBfQUREUihMQVNUX1BLTUFQ KSkgew0KKwkJaW50IGkgPSAoYWRkciAtIFBLTUFQX0FERFIoMCkpID4+IFBBR0VfU0hJRlQ7DQor CQlyZXR1cm4gcHRlX3BhZ2UocGttYXBfcGFnZV90YWJsZVtpXSk7DQorCX0NCisNCisJcmV0dXJu IHZpcnRfdG9fcGFnZShhZGRyKTsNCit9DQorRVhQT1JUX1NZTUJPTChrbWFwX3RvX3BhZ2UpOw0K Kw0KIHN0YXRpYyB2b2lkIGZsdXNoX2FsbF96ZXJvX3BrbWFwcyh2b2lkKQ0KIHsNCiAJaW50IGk7 DQpkaWZmIC0tZ2l0IGEvbW0vaHVnZV9tZW1vcnkuYyBiL21tL2h1Z2VfbWVtb3J5LmMNCmluZGV4 IDhmMDA1ZTkuLjQ3MGNiYjQgMTAwNjQ0DQotLS0gYS9tbS9odWdlX21lbW9yeS5jDQorKysgYi9t bS9odWdlX21lbW9yeS5jDQpAQCAtOTIxLDYgKzkyMSw4IEBAIGludCBkb19odWdlX3BtZF93cF9w YWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJ CWNvdW50X3ZtX2V2ZW50KFRIUF9GQVVMVF9GQUxMQkFDSyk7DQogCQlyZXQgPSBkb19odWdlX3Bt ZF93cF9wYWdlX2ZhbGxiYWNrKG1tLCB2bWEsIGFkZHJlc3MsDQogCQkJCQkJICAgcG1kLCBvcmln X3BtZCwgcGFnZSwgaGFkZHIpOw0KKwkJaWYgKHJldCAmIFZNX0ZBVUxUX09PTSkNCisJCQlzcGxp dF9odWdlX3BhZ2UocGFnZSk7DQogCQlwdXRfcGFnZShwYWdlKTsNCiAJCWdvdG8gb3V0Ow0KIAl9 DQpAQCAtOTI4LDYgKzkzMCw3IEBAIGludCBkb19odWdlX3BtZF93cF9wYWdlKHN0cnVjdCBtbV9z dHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiANCiAJaWYgKHVubGlrZWx5 KG1lbV9jZ3JvdXBfbmV3cGFnZV9jaGFyZ2UobmV3X3BhZ2UsIG1tLCBHRlBfS0VSTkVMKSkpIHsN CiAJCXB1dF9wYWdlKG5ld19wYWdlKTsNCisJCXNwbGl0X2h1Z2VfcGFnZShwYWdlKTsNCiAJCXB1 dF9wYWdlKHBhZ2UpOw0KIAkJcmV0IHw9IFZNX0ZBVUxUX09PTTsNCiAJCWdvdG8gb3V0Ow0KZGlm ZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMNCmluZGV4IDcwZjVkYWYuLjE1ZTY4 NmEgMTAwNjQ0DQotLS0gYS9tbS9tZW1vcnkuYw0KKysrIGIvbW0vbWVtb3J5LmMNCkBAIC0zNDY5 LDYgKzM0NjksNyBAQCBpbnQgaGFuZGxlX21tX2ZhdWx0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJaWYgKHVubGlrZWx5KGlzX3ZtX2h1Z2V0bGJf cGFnZSh2bWEpKSkNCiAJCXJldHVybiBodWdldGxiX2ZhdWx0KG1tLCB2bWEsIGFkZHJlc3MsIGZs YWdzKTsNCiANCityZXRyeToNCiAJcGdkID0gcGdkX29mZnNldChtbSwgYWRkcmVzcyk7DQogCXB1 ZCA9IHB1ZF9hbGxvYyhtbSwgcGdkLCBhZGRyZXNzKTsNCiAJaWYgKCFwdWQpDQpAQCAtMzQ4Miwx MyArMzQ4MywyNCBAQCBpbnQgaGFuZGxlX21tX2ZhdWx0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJCQkJCQkJICBwbWQsIGZsYWdzKTsNCiAJfSBl bHNlIHsNCiAJCXBtZF90IG9yaWdfcG1kID0gKnBtZDsNCisJCWludCByZXQ7DQorDQogCQliYXJy aWVyKCk7DQogCQlpZiAocG1kX3RyYW5zX2h1Z2Uob3JpZ19wbWQpKSB7DQogCQkJaWYgKGZsYWdz ICYgRkFVTFRfRkxBR19XUklURSAmJg0KIAkJCSAgICAhcG1kX3dyaXRlKG9yaWdfcG1kKSAmJg0K LQkJCSAgICAhcG1kX3RyYW5zX3NwbGl0dGluZyhvcmlnX3BtZCkpDQotCQkJCXJldHVybiBkb19o dWdlX3BtZF93cF9wYWdlKG1tLCB2bWEsIGFkZHJlc3MsDQotCQkJCQkJCSAgIHBtZCwgb3JpZ19w bWQpOw0KKwkJCSAgICAhcG1kX3RyYW5zX3NwbGl0dGluZyhvcmlnX3BtZCkpIHsNCisJCQkJcmV0 ID0gZG9faHVnZV9wbWRfd3BfcGFnZShtbSwgdm1hLCBhZGRyZXNzLCBwbWQsDQorCQkJCQkJCSAg b3JpZ19wbWQpOw0KKwkJCQkvKg0KKwkJCQkgKiBJZiBDT1cgcmVzdWx0cyBpbiBhbiBvb20sIHRo ZSBodWdlIHBtZCB3aWxsDQorCQkJCSAqIGhhdmUgYmVlbiBzcGxpdCwgc28gcmV0cnkgdGhlIGZh dWx0IG9uIHRoZQ0KKwkJCQkgKiBwdGUgZm9yIGEgc21hbGxlciBjaGFyZ2UuDQorCQkJCSAqLw0K KwkJCQlpZiAodW5saWtlbHkocmV0ICYgVk1fRkFVTFRfT09NKSkNCisJCQkJCWdvdG8gcmV0cnk7 DQorCQkJCXJldHVybiByZXQ7DQorCQkJfQ0KIAkJCXJldHVybiAwOw0KIAkJfQ0KIAl9DQpkaWZm IC0tZ2l0IGEvbW0vbWVtcG9saWN5LmMgYi9tbS9tZW1wb2xpY3kuYw0KaW5kZXggNGM4MmMyMS4u YzU5ZDQ0YiAxMDA2NDQNCi0tLSBhL21tL21lbXBvbGljeS5jDQorKysgYi9tbS9tZW1wb2xpY3ku Yw0KQEAgLTE5OTksMjggKzE5OTksNiBAQCBzdHJ1Y3QgbWVtcG9saWN5ICpfX21wb2xfZHVwKHN0 cnVjdCBtZW1wb2xpY3kgKm9sZCkNCiAJcmV0dXJuIG5ldzsNCiB9DQogDQotLyoNCi0gKiBJZiAq ZnJvbXBvbCBuZWVkcyBbaGFzXSBhbiBleHRyYSByZWYsIGNvcHkgKmZyb21wb2wgdG8gKnRvbXBv bCAsDQotICogZWxpbWluYXRlIHRoZSAqIE1QT0xfRl8qIGZsYWdzIHRoYXQgcmVxdWlyZSBjb25k aXRpb25hbCByZWYgYW5kDQotICogW05PVEUhISFdIGRyb3AgdGhlIGV4dHJhIHJlZi4gIE5vdCBz YWZlIHRvIHJlZmVyZW5jZSAqZnJvbXBvbCBkaXJlY3RseQ0KLSAqIGFmdGVyIHJldHVybi4gIFVz ZSB0aGUgcmV0dXJuZWQgdmFsdWUuDQotICoNCi0gKiBBbGxvd3MgdXNlIG9mIGEgbWVtcG9saWN5 IGZvciwgZS5nLiwgbXVsdGlwbGUgYWxsb2NhdGlvbnMgd2l0aCBhIHNpbmdsZQ0KLSAqIHBvbGlj eSBsb29rdXAsIGV2ZW4gaWYgdGhlIHBvbGljeSBuZWVkcy9oYXMgZXh0cmEgcmVmIG9uIGxvb2t1 cC4NCi0gKiBzaG1lbV9yZWFkYWhlYWQgbmVlZHMgdGhpcy4NCi0gKi8NCi1zdHJ1Y3QgbWVtcG9s aWN5ICpfX21wb2xfY29uZF9jb3B5KHN0cnVjdCBtZW1wb2xpY3kgKnRvbXBvbCwNCi0JCQkJCQlz dHJ1Y3QgbWVtcG9saWN5ICpmcm9tcG9sKQ0KLXsNCi0JaWYgKCFtcG9sX25lZWRzX2NvbmRfcmVm KGZyb21wb2wpKQ0KLQkJcmV0dXJuIGZyb21wb2w7DQotDQotCSp0b21wb2wgPSAqZnJvbXBvbDsN Ci0JdG9tcG9sLT5mbGFncyAmPSB+TVBPTF9GX1NIQVJFRDsJLyogY29weSBkb2Vzbid0IG5lZWQg dW5yZWYgKi8NCi0JX19tcG9sX3B1dChmcm9tcG9sKTsNCi0JcmV0dXJuIHRvbXBvbDsNCi19DQot DQogLyogU2xvdyBwYXRoIG9mIGEgbWVtcG9saWN5IGNvbXBhcmlzb24gKi8NCiBpbnQgX19tcG9s X2VxdWFsKHN0cnVjdCBtZW1wb2xpY3kgKmEsIHN0cnVjdCBtZW1wb2xpY3kgKmIpDQogew0KZGlm ZiAtLWdpdCBhL21tL3NobWVtLmMgYi9tbS9zaG1lbS5jDQppbmRleCAyZDQ2ZTIzLi4xMmI5ZTgw IDEwMDY0NA0KLS0tIGEvbW0vc2htZW0uYw0KKysrIGIvbW0vc2htZW0uYw0KQEAgLTc5OCwyNCAr Nzk4LDI4IEBAIHN0YXRpYyBzdHJ1Y3QgbWVtcG9saWN5ICpzaG1lbV9nZXRfc2JtcG9sKHN0cnVj dCBzaG1lbV9zYl9pbmZvICpzYmluZm8pDQogc3RhdGljIHN0cnVjdCBwYWdlICpzaG1lbV9zd2Fw aW4oc3dwX2VudHJ5X3Qgc3dhcCwgZ2ZwX3QgZ2ZwLA0KIAkJCXN0cnVjdCBzaG1lbV9pbm9kZV9p bmZvICppbmZvLCBwZ29mZl90IGluZGV4KQ0KIHsNCi0Jc3RydWN0IG1lbXBvbGljeSBtcG9sLCAq c3BvbDsNCiAJc3RydWN0IHZtX2FyZWFfc3RydWN0IHB2bWE7DQotDQotCXNwb2wgPSBtcG9sX2Nv bmRfY29weSgmbXBvbCwNCi0JCQltcG9sX3NoYXJlZF9wb2xpY3lfbG9va3VwKCZpbmZvLT5wb2xp Y3ksIGluZGV4KSk7DQorCXN0cnVjdCBwYWdlICpwYWdlOw0KIA0KIAkvKiBDcmVhdGUgYSBwc2V1 ZG8gdm1hIHRoYXQganVzdCBjb250YWlucyB0aGUgcG9saWN5ICovDQogCXB2bWEudm1fc3RhcnQg PSAwOw0KIAlwdm1hLnZtX3Bnb2ZmID0gaW5kZXg7DQogCXB2bWEudm1fb3BzID0gTlVMTDsNCi0J cHZtYS52bV9wb2xpY3kgPSBzcG9sOw0KLQlyZXR1cm4gc3dhcGluX3JlYWRhaGVhZChzd2FwLCBn ZnAsICZwdm1hLCAwKTsNCisJcHZtYS52bV9wb2xpY3kgPSBtcG9sX3NoYXJlZF9wb2xpY3lfbG9v a3VwKCZpbmZvLT5wb2xpY3ksIGluZGV4KTsNCisNCisJcGFnZSA9IHN3YXBpbl9yZWFkYWhlYWQo c3dhcCwgZ2ZwLCAmcHZtYSwgMCk7DQorDQorCS8qIERyb3AgcmVmZXJlbmNlIHRha2VuIGJ5IG1w b2xfc2hhcmVkX3BvbGljeV9sb29rdXAoKSAqLw0KKwltcG9sX2NvbmRfcHV0KHB2bWEudm1fcG9s aWN5KTsNCisNCisJcmV0dXJuIHBhZ2U7DQogfQ0KIA0KIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqc2ht ZW1fYWxsb2NfcGFnZShnZnBfdCBnZnAsDQogCQkJc3RydWN0IHNobWVtX2lub2RlX2luZm8gKmlu Zm8sIHBnb2ZmX3QgaW5kZXgpDQogew0KIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgcHZtYTsNCisJ c3RydWN0IHBhZ2UgKnBhZ2U7DQogDQogCS8qIENyZWF0ZSBhIHBzZXVkbyB2bWEgdGhhdCBqdXN0 IGNvbnRhaW5zIHRoZSBwb2xpY3kgKi8NCiAJcHZtYS52bV9zdGFydCA9IDA7DQpAQCAtODIzLDEw ICs4MjcsMTIgQEAgc3RhdGljIHN0cnVjdCBwYWdlICpzaG1lbV9hbGxvY19wYWdlKGdmcF90IGdm cCwNCiAJcHZtYS52bV9vcHMgPSBOVUxMOw0KIAlwdm1hLnZtX3BvbGljeSA9IG1wb2xfc2hhcmVk X3BvbGljeV9sb29rdXAoJmluZm8tPnBvbGljeSwgaW5kZXgpOw0KIA0KLQkvKg0KLQkgKiBhbGxv Y19wYWdlX3ZtYSgpIHdpbGwgZHJvcCB0aGUgc2hhcmVkIHBvbGljeSByZWZlcmVuY2UNCi0JICov DQotCXJldHVybiBhbGxvY19wYWdlX3ZtYShnZnAsICZwdm1hLCAwKTsNCisJcGFnZSA9IGFsbG9j X3BhZ2Vfdm1hKGdmcCwgJnB2bWEsIDApOw0KKw0KKwkvKiBEcm9wIHJlZmVyZW5jZSB0YWtlbiBi eSBtcG9sX3NoYXJlZF9wb2xpY3lfbG9va3VwKCkgKi8NCisJbXBvbF9jb25kX3B1dChwdm1hLnZt X3BvbGljeSk7DQorDQorCXJldHVybiBwYWdlOw0KIH0NCiAjZWxzZSAvKiAhQ09ORklHX05VTUEg Ki8NCiAjaWZkZWYgQ09ORklHX1RNUEZTDQpkaWZmIC0tZ2l0IGEvbW0vdm1zY2FuLmMgYi9tbS92 bXNjYW4uYw0KaW5kZXggMWU0ZWUxYS4uMzEzMzgxYyAxMDA2NDQNCi0tLSBhL21tL3Ztc2Nhbi5j DQorKysgYi9tbS92bXNjYW4uYw0KQEAgLTI0OTIsMTkgKzI0OTIsNiBAQCB1bnNpZ25lZCBsb25n IHRyeV90b19mcmVlX21lbV9jZ3JvdXBfcGFnZXMoc3RydWN0IG1lbV9jZ3JvdXAgKm1lbV9jb250 LA0KIH0NCiAjZW5kaWYNCiANCi1zdGF0aWMgYm9vbCB6b25lX2JhbGFuY2VkKHN0cnVjdCB6b25l ICp6b25lLCBpbnQgb3JkZXIsDQotCQkJICB1bnNpZ25lZCBsb25nIGJhbGFuY2VfZ2FwLCBpbnQg Y2xhc3N6b25lX2lkeCkNCi17DQotCWlmICghem9uZV93YXRlcm1hcmtfb2tfc2FmZSh6b25lLCBv cmRlciwgaGlnaF93bWFya19wYWdlcyh6b25lKSArDQotCQkJCSAgICBiYWxhbmNlX2dhcCwgY2xh c3N6b25lX2lkeCwgMCkpDQotCQlyZXR1cm4gZmFsc2U7DQotDQotCWlmIChDT01QQUNUSU9OX0JV SUxEICYmIG9yZGVyICYmICFjb21wYWN0aW9uX3N1aXRhYmxlKHpvbmUsIG9yZGVyKSkNCi0JCXJl dHVybiBmYWxzZTsNCi0NCi0JcmV0dXJuIHRydWU7DQotfQ0KLQ0KIC8qDQogICogcGdkYXRfYmFs YW5jZWQgaXMgdXNlZCB3aGVuIGNoZWNraW5nIGlmIGEgbm9kZSBpcyBiYWxhbmNlZCBmb3IgaGln aC1vcmRlcg0KICAqIGFsbG9jYXRpb25zLiBPbmx5IHpvbmVzIHRoYXQgbWVldCB3YXRlcm1hcmtz IGFuZCBhcmUgaW4gYSB6b25lIGFsbG93ZWQNCkBAIC0yNTY0LDcgKzI1NTEsOCBAQCBzdGF0aWMg Ym9vbCBzbGVlcGluZ19wcmVtYXR1cmVseShwZ19kYXRhX3QgKnBnZGF0LCBpbnQgb3JkZXIsIGxv bmcgcmVtYWluaW5nLA0KIAkJCWNvbnRpbnVlOw0KIAkJfQ0KIA0KLQkJaWYgKCF6b25lX2JhbGFu Y2VkKHpvbmUsIG9yZGVyLCAwLCBpKSkNCisJCWlmICghem9uZV93YXRlcm1hcmtfb2tfc2FmZSh6 b25lLCBvcmRlciwgaGlnaF93bWFya19wYWdlcyh6b25lKSwNCisJCQkJCQkJaSwgMCkpDQogCQkJ YWxsX3pvbmVzX29rID0gZmFsc2U7DQogCQllbHNlDQogCQkJYmFsYW5jZWQgKz0gem9uZS0+cHJl c2VudF9wYWdlczsNCkBAIC0yNjY3LDcgKzI2NTUsOCBAQCBsb29wX2FnYWluOg0KIAkJCQlzaHJp bmtfYWN0aXZlX2xpc3QoU1dBUF9DTFVTVEVSX01BWCwgem9uZSwNCiAJCQkJCQkJJnNjLCBwcmlv cml0eSwgMCk7DQogDQotCQkJaWYgKCF6b25lX2JhbGFuY2VkKHpvbmUsIG9yZGVyLCAwLCAwKSkg ew0KKwkJCWlmICghem9uZV93YXRlcm1hcmtfb2tfc2FmZSh6b25lLCBvcmRlciwNCisJCQkJCWhp Z2hfd21hcmtfcGFnZXMoem9uZSksIDAsIDApKSB7DQogCQkJCWVuZF96b25lID0gaTsNCiAJCQkJ YnJlYWs7DQogCQkJfSBlbHNlIHsNCkBAIC0yNzI4LDggKzI3MTcsOSBAQCBsb29wX2FnYWluOg0K IAkJCQkoem9uZS0+cHJlc2VudF9wYWdlcyArDQogCQkJCQlLU1dBUERfWk9ORV9CQUxBTkNFX0dB UF9SQVRJTy0xKSAvDQogCQkJCUtTV0FQRF9aT05FX0JBTEFOQ0VfR0FQX1JBVElPKTsNCi0JCQlp ZiAoIXpvbmVfYmFsYW5jZWQoem9uZSwgb3JkZXIsDQotCQkJCQkgICBiYWxhbmNlX2dhcCwgZW5k X3pvbmUpKSB7DQorCQkJaWYgKCF6b25lX3dhdGVybWFya19va19zYWZlKHpvbmUsIG9yZGVyLA0K KwkJCQkJaGlnaF93bWFya19wYWdlcyh6b25lKSArIGJhbGFuY2VfZ2FwLA0KKwkJCQkJZW5kX3pv bmUsIDApKSB7DQogCQkJCXNocmlua196b25lKHByaW9yaXR5LCB6b25lLCAmc2MpOw0KIA0KIAkJ CQlyZWNsYWltX3N0YXRlLT5yZWNsYWltZWRfc2xhYiA9IDA7DQpAQCAtMjc1Niw3ICsyNzQ2LDgg QEAgbG9vcF9hZ2FpbjoNCiAJCQkJY29udGludWU7DQogCQkJfQ0KIA0KLQkJCWlmICghem9uZV9i YWxhbmNlZCh6b25lLCBvcmRlciwgMCwgZW5kX3pvbmUpKSB7DQorCQkJaWYgKCF6b25lX3dhdGVy bWFya19va19zYWZlKHpvbmUsIG9yZGVyLA0KKwkJCQkJaGlnaF93bWFya19wYWdlcyh6b25lKSwg ZW5kX3pvbmUsIDApKSB7DQogCQkJCWFsbF96b25lc19vayA9IDA7DQogCQkJCS8qDQogCQkJCSAq IFdlIGFyZSBzdGlsbCB1bmRlciBtaW4gd2F0ZXIgbWFyay4gIFRoaXMNCmRpZmYgLS1naXQgYS9u ZXQvOXAvdHJhbnNfdmlydGlvLmMgYi9uZXQvOXAvdHJhbnNfdmlydGlvLmMNCmluZGV4IDMyYWE5 ODMuLjU1ZjBjMDkgMTAwNjQ0DQotLS0gYS9uZXQvOXAvdHJhbnNfdmlydGlvLmMNCisrKyBiL25l dC85cC90cmFuc192aXJ0aW8uYw0KQEAgLTM3LDYgKzM3LDcgQEANCiAjaW5jbHVkZSA8bGludXgv aW5ldC5oPg0KICNpbmNsdWRlIDxsaW51eC9pZHIuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5o Pg0KKyNpbmNsdWRlIDxsaW51eC9oaWdobWVtLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4N CiAjaW5jbHVkZSA8bmV0LzlwLzlwLmg+DQogI2luY2x1ZGUgPGxpbnV4L3BhcnNlci5oPg0KQEAg LTMyMyw3ICszMjQsNyBAQCBzdGF0aWMgaW50IHA5X2dldF9tYXBwZWRfcGFnZXMoc3RydWN0IHZp cnRpb19jaGFuICpjaGFuLA0KIAkJaW50IGNvdW50ID0gbnJfcGFnZXM7DQogCQl3aGlsZSAobnJf cGFnZXMpIHsNCiAJCQlzID0gcmVzdF9vZl9wYWdlKGRhdGEpOw0KLQkJCXBhZ2VzW2luZGV4Kytd ID0gdmlydF90b19wYWdlKGRhdGEpOw0KKwkJCXBhZ2VzW2luZGV4KytdID0ga21hcF90b19wYWdl KGRhdGEpOw0KIAkJCWRhdGEgKz0gczsNCiAJCQlucl9wYWdlcy0tOw0KIAkJfQ0KZGlmZiAtLWdp dCBhL25ldC9ibHVldG9vdGgvcmZjb21tL3NvY2suYyBiL25ldC9ibHVldG9vdGgvcmZjb21tL3Nv Y2suYw0KaW5kZXggN2VlNGVhZC4uMTRjNDg2NCAxMDA2NDQNCi0tLSBhL25ldC9ibHVldG9vdGgv cmZjb21tL3NvY2suYw0KKysrIGIvbmV0L2JsdWV0b290aC9yZmNvbW0vc29jay5jDQpAQCAtNDg2 LDcgKzQ4Niw3IEBAIHN0YXRpYyBpbnQgcmZjb21tX3NvY2tfYWNjZXB0KHN0cnVjdCBzb2NrZXQg KnNvY2ssIHN0cnVjdCBzb2NrZXQgKm5ld3NvY2ssIGludCBmDQogCWxvbmcgdGltZW87DQogCWlu dCBlcnIgPSAwOw0KIA0KLQlsb2NrX3NvY2soc2spOw0KKwlsb2NrX3NvY2tfbmVzdGVkKHNrLCBT SU5HTEVfREVQVEhfTkVTVElORyk7DQogDQogCWlmIChzay0+c2tfdHlwZSAhPSBTT0NLX1NUUkVB TSkgew0KIAkJZXJyID0gLUVJTlZBTDsNCkBAIC01MjMsNyArNTIzLDcgQEAgc3RhdGljIGludCBy ZmNvbW1fc29ja19hY2NlcHQoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2tldCAqbmV3 c29jaywgaW50IGYNCiANCiAJCXJlbGVhc2Vfc29jayhzayk7DQogCQl0aW1lbyA9IHNjaGVkdWxl X3RpbWVvdXQodGltZW8pOw0KLQkJbG9ja19zb2NrKHNrKTsNCisJCWxvY2tfc29ja19uZXN0ZWQo c2ssIFNJTkdMRV9ERVBUSF9ORVNUSU5HKTsNCiAJfQ0KIAlfX3NldF9jdXJyZW50X3N0YXRlKFRB U0tfUlVOTklORyk7DQogCXJlbW92ZV93YWl0X3F1ZXVlKHNrX3NsZWVwKHNrKSwgJndhaXQpOw0K ZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2ZyYWdtZW50LmMgYi9uZXQvaXB2NC9pcF9mcmFnbWVu dC5jDQppbmRleCBmZGFhYmYyLi5hNGU3MTMxIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvaXBfZnJh Z21lbnQuYw0KKysrIGIvbmV0L2lwdjQvaXBfZnJhZ21lbnQuYw0KQEAgLTY4NCwyOCArNjg0LDI3 IEBAIEVYUE9SVF9TWU1CT0woaXBfZGVmcmFnKTsNCiANCiBzdHJ1Y3Qgc2tfYnVmZiAqaXBfY2hl Y2tfZGVmcmFnKHN0cnVjdCBza19idWZmICpza2IsIHUzMiB1c2VyKQ0KIHsNCi0JY29uc3Qgc3Ry dWN0IGlwaGRyICppcGg7DQorCXN0cnVjdCBpcGhkciBpcGg7DQogCXUzMiBsZW47DQogDQogCWlm IChza2ItPnByb3RvY29sICE9IGh0b25zKEVUSF9QX0lQKSkNCiAJCXJldHVybiBza2I7DQogDQot CWlmICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkNCisJaWYgKCFz a2JfY29weV9iaXRzKHNrYiwgMCwgJmlwaCwgc2l6ZW9mKGlwaCkpKQ0KIAkJcmV0dXJuIHNrYjsN CiANCi0JaXBoID0gaXBfaGRyKHNrYik7DQotCWlmIChpcGgtPmlobCA8IDUgfHwgaXBoLT52ZXJz aW9uICE9IDQpDQorCWlmIChpcGguaWhsIDwgNSB8fCBpcGgudmVyc2lvbiAhPSA0KQ0KIAkJcmV0 dXJuIHNrYjsNCi0JaWYgKCFwc2tiX21heV9wdWxsKHNrYiwgaXBoLT5paGwqNCkpDQotCQlyZXR1 cm4gc2tiOw0KLQlpcGggPSBpcF9oZHIoc2tiKTsNCi0JbGVuID0gbnRvaHMoaXBoLT50b3RfbGVu KTsNCi0JaWYgKHNrYi0+bGVuIDwgbGVuIHx8IGxlbiA8IChpcGgtPmlobCAqIDQpKQ0KKw0KKwls ZW4gPSBudG9ocyhpcGgudG90X2xlbik7DQorCWlmIChza2ItPmxlbiA8IGxlbiB8fCBsZW4gPCAo aXBoLmlobCAqIDQpKQ0KIAkJcmV0dXJuIHNrYjsNCiANCi0JaWYgKGlwX2lzX2ZyYWdtZW50KGlw X2hkcihza2IpKSkgew0KKwlpZiAoaXBfaXNfZnJhZ21lbnQoJmlwaCkpIHsNCiAJCXNrYiA9IHNr Yl9zaGFyZV9jaGVjayhza2IsIEdGUF9BVE9NSUMpOw0KIAkJaWYgKHNrYikgew0KKwkJCWlmICgh cHNrYl9tYXlfcHVsbChza2IsIGlwaC5paGwqNCkpDQorCQkJCXJldHVybiBza2I7DQogCQkJaWYg KHBza2JfdHJpbV9yY3N1bShza2IsIGxlbikpDQogCQkJCXJldHVybiBza2I7DQogCQkJbWVtc2V0 KElQQ0Ioc2tiKSwgMCwgc2l6ZW9mKHN0cnVjdCBpbmV0X3NrYl9wYXJtKSk7DQpkaWZmIC0tZ2l0 IGEvbmV0L21hYzgwMjExL3N0YXR1cy5jIGIvbmV0L21hYzgwMjExL3N0YXR1cy5jDQppbmRleCAx NjUxOGYzLi42N2RmNTBlIDEwMDY0NA0KLS0tIGEvbmV0L21hYzgwMjExL3N0YXR1cy5jDQorKysg Yi9uZXQvbWFjODAyMTEvc3RhdHVzLmMNCkBAIC00MjksNyArNDI5LDExIEBAIHZvaWQgaWVlZTgw MjExX3R4X3N0YXR1cyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IHNrX2J1ZmYgKnNr YikNCiAJCQkJICAgICAgIElFRUU4MDIxMV9CQVJfQ1RSTF9USURfSU5GT19NQVNLKSA+Pg0KIAkJ CQkgICAgICBJRUVFODAyMTFfQkFSX0NUUkxfVElEX0lORk9fU0hJRlQ7DQogDQotCQkJCWllZWU4 MDIxMV9zZXRfYmFyX3BlbmRpbmcoc3RhLCB0aWQsIHNzbik7DQorCQkJCWlmIChsb2NhbC0+aHcu ZmxhZ3MgJg0KKwkJCQkgICAgSUVFRTgwMjExX0hXX1RFQVJET1dOX0FHR1JfT05fQkFSX0ZBSUwp DQorCQkJCQlpZWVlODAyMTFfc3RvcF90eF9iYV9zZXNzaW9uKCZzdGEtPnN0YSwgdGlkKTsNCisJ CQkJZWxzZQ0KKwkJCQkJaWVlZTgwMjExX3NldF9iYXJfcGVuZGluZyhzdGEsIHRpZCwgc3NuKTsN CiAJCQl9DQogCQl9DQogDQpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvY2h1bmsuYyBiL25ldC9zY3Rw L2NodW5rLmMNCmluZGV4IDZjODU1NjQuLjAwMThiNjUgMTAwNjQ0DQotLS0gYS9uZXQvc2N0cC9j aHVuay5jDQorKysgYi9uZXQvc2N0cC9jaHVuay5jDQpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0cnVj dCBzY3RwX2RhdGFtc2cgKnNjdHBfZGF0YW1zZ19mcm9tX3VzZXIoc3RydWN0IHNjdHBfYXNzb2Np YXRpb24gKmFzb2MsDQogDQogCW1zZyA9IHNjdHBfZGF0YW1zZ19uZXcoR0ZQX0tFUk5FTCk7DQog CWlmICghbXNnKQ0KLQkJcmV0dXJuIE5VTEw7DQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsN CiANCiAJLyogTm90ZTogQ2FsY3VsYXRlIHRoaXMgb3V0c2lkZSBvZiB0aGUgbG9vcCwgc28gdGhh dCBhbGwgZnJhZ21lbnRzDQogCSAqIGhhdmUgdGhlIHNhbWUgZXhwaXJhdGlvbi4NCkBAIC0yODAs MTEgKzI4MCwxNCBAQCBzdHJ1Y3Qgc2N0cF9kYXRhbXNnICpzY3RwX2RhdGFtc2dfZnJvbV91c2Vy KHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLA0KIA0KIAkJY2h1bmsgPSBzY3RwX21ha2Vf ZGF0YWZyYWdfZW1wdHkoYXNvYywgc2luZm8sIGxlbiwgZnJhZywgMCk7DQogDQotCQlpZiAoIWNo dW5rKQ0KKwkJaWYgKCFjaHVuaykgew0KKwkJCWVyciA9IC1FTk9NRU07DQogCQkJZ290byBlcnJv dXQ7DQorCQl9DQorDQogCQllcnIgPSBzY3RwX3VzZXJfYWRkdG9fY2h1bmsoY2h1bmssIG9mZnNl dCwgbGVuLCBtc2doLT5tc2dfaW92KTsNCiAJCWlmIChlcnIgPCAwKQ0KLQkJCWdvdG8gZXJyb3V0 Ow0KKwkJCWdvdG8gZXJyb3V0X2NodW5rX2ZyZWU7DQogDQogCQlvZmZzZXQgKz0gbGVuOw0KIA0K QEAgLTMxNSw4ICszMTgsMTAgQEAgc3RydWN0IHNjdHBfZGF0YW1zZyAqc2N0cF9kYXRhbXNnX2Zy b21fdXNlcihzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYywNCiANCiAJCWNodW5rID0gc2N0 cF9tYWtlX2RhdGFmcmFnX2VtcHR5KGFzb2MsIHNpbmZvLCBvdmVyLCBmcmFnLCAwKTsNCiANCi0J CWlmICghY2h1bmspDQorCQlpZiAoIWNodW5rKSB7DQorCQkJZXJyID0gLUVOT01FTTsNCiAJCQln b3RvIGVycm91dDsNCisJCX0NCiANCiAJCWVyciA9IHNjdHBfdXNlcl9hZGR0b19jaHVuayhjaHVu aywgb2Zmc2V0LCBvdmVyLG1zZ2gtPm1zZ19pb3YpOw0KIA0KQEAgLTMyNCw3ICszMjksNyBAQCBz dHJ1Y3Qgc2N0cF9kYXRhbXNnICpzY3RwX2RhdGFtc2dfZnJvbV91c2VyKHN0cnVjdCBzY3RwX2Fz c29jaWF0aW9uICphc29jLA0KIAkJX19za2JfcHVsbChjaHVuay0+c2tiLCAoX191OCAqKWNodW5r LT5jaHVua19oZHINCiAJCQkgICAtIChfX3U4ICopY2h1bmstPnNrYi0+ZGF0YSk7DQogCQlpZiAo ZXJyIDwgMCkNCi0JCQlnb3RvIGVycm91dDsNCisJCQlnb3RvIGVycm91dF9jaHVua19mcmVlOw0K IA0KIAkJc2N0cF9kYXRhbXNnX2Fzc2lnbihtc2csIGNodW5rKTsNCiAJCWxpc3RfYWRkX3RhaWwo JmNodW5rLT5mcmFnX2xpc3QsICZtc2ctPmNodW5rcyk7DQpAQCAtMzMyLDYgKzMzNyw5IEBAIHN0 cnVjdCBzY3RwX2RhdGFtc2cgKnNjdHBfZGF0YW1zZ19mcm9tX3VzZXIoc3RydWN0IHNjdHBfYXNz b2NpYXRpb24gKmFzb2MsDQogDQogCXJldHVybiBtc2c7DQogDQorZXJyb3V0X2NodW5rX2ZyZWU6 DQorCXNjdHBfY2h1bmtfZnJlZShjaHVuayk7DQorDQogZXJyb3V0Og0KIAlsaXN0X2Zvcl9lYWNo X3NhZmUocG9zLCB0ZW1wLCAmbXNnLT5jaHVua3MpIHsNCiAJCWxpc3RfZGVsX2luaXQocG9zKTsN CkBAIC0zMzksNyArMzQ3LDcgQEAgZXJyb3V0Og0KIAkJc2N0cF9jaHVua19mcmVlKGNodW5rKTsN CiAJfQ0KIAlzY3RwX2RhdGFtc2dfcHV0KG1zZyk7DQotCXJldHVybiBOVUxMOw0KKwlyZXR1cm4g RVJSX1BUUihlcnIpOw0KIH0NCiANCiAvKiBDaGVjayB3aGV0aGVyIHRoaXMgbWVzc2FnZSBoYXMg ZXhwaXJlZC4gKi8NCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3Nv Y2tldC5jDQppbmRleCA4ZTQ5ZDc2Li5mYTgzMzNiIDEwMDY0NA0KLS0tIGEvbmV0L3NjdHAvc29j a2V0LmMNCisrKyBiL25ldC9zY3RwL3NvY2tldC5jDQpAQCAtMTkwOCw4ICsxOTA4LDggQEAgU0NU UF9TVEFUSUMgaW50IHNjdHBfc2VuZG1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBzb2Nr ICpzaywNCiANCiAJLyogQnJlYWsgdGhlIG1lc3NhZ2UgaW50byBtdWx0aXBsZSBjaHVua3Mgb2Yg bWF4aW11bSBzaXplLiAqLw0KIAlkYXRhbXNnID0gc2N0cF9kYXRhbXNnX2Zyb21fdXNlcihhc29j LCBzaW5mbywgbXNnLCBtc2dfbGVuKTsNCi0JaWYgKCFkYXRhbXNnKSB7DQotCQllcnIgPSAtRU5P TUVNOw0KKwlpZiAoSVNfRVJSKGRhdGFtc2cpKSB7DQorCQllcnIgPSBQVFJfRVJSKGRhdGFtc2cp Ow0KIAkJZ290byBvdXRfZnJlZTsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2Rldmlj ZV9jZ3JvdXAuYyBiL3NlY3VyaXR5L2RldmljZV9jZ3JvdXAuYw0KaW5kZXggOTJlMjRiYi4uNDQ1 MGZiZSAxMDA2NDQNCi0tLSBhL3NlY3VyaXR5L2RldmljZV9jZ3JvdXAuYw0KKysrIGIvc2VjdXJp dHkvZGV2aWNlX2Nncm91cC5jDQpAQCAtMjAyLDggKzIwMiw4IEBAIHN0YXRpYyB2b2lkIGRldmNn cm91cF9kZXN0cm95KHN0cnVjdCBjZ3JvdXBfc3Vic3lzICpzcywNCiANCiAJZGV2X2Nncm91cCA9 IGNncm91cF90b19kZXZjZ3JvdXAoY2dyb3VwKTsNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KHdoLCB0bXAsICZkZXZfY2dyb3VwLT53aGl0ZWxpc3QsIGxpc3QpIHsNCi0JCWxpc3RfZGVsX3Jj dSgmd2gtPmxpc3QpOw0KLQkJa2ZyZWVfcmN1KHdoLCByY3UpOw0KKwkJbGlzdF9kZWwoJndoLT5s aXN0KTsNCisJCWtmcmVlKHdoKTsNCiAJfQ0KIAlrZnJlZShkZXZfY2dyb3VwKTsNCiB9DQpAQCAt Mjc4LDcgKzI3OCw3IEBAIHN0YXRpYyBpbnQgbWF5X2FjY2Vzc193aGl0ZWxpc3Qoc3RydWN0IGRl dl9jZ3JvdXAgKmMsDQogew0KIAlzdHJ1Y3QgZGV2X3doaXRlbGlzdF9pdGVtICp3aGl0ZW07DQog DQotCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHdoaXRlbSwgJmMtPndoaXRlbGlzdCwgbGlzdCkg ew0KKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHdoaXRlbSwgJmMtPndoaXRlbGlzdCwgbGlzdCkgew0K IAkJaWYgKHdoaXRlbS0+dHlwZSAmIERFVl9BTEwpDQogCQkJcmV0dXJuIDE7DQogCQlpZiAoKHJl ZndoLT50eXBlICYgREVWX0JMT0NLKSAmJiAhKHdoaXRlbS0+dHlwZSAmIERFVl9CTE9DSykpDQpk aWZmIC0tZ2l0IGEvc291bmQvcGNpL2hkYS9oZGFfaW50ZWwuYyBiL3NvdW5kL3BjaS9oZGEvaGRh X2ludGVsLmMNCmluZGV4IDUzMzQ1YmMuLmExZTMxMmYgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kv aGRhL2hkYV9pbnRlbC5jDQorKysgYi9zb3VuZC9wY2kvaGRhL2hkYV9pbnRlbC5jDQpAQCAtMTQ4 LDYgKzE0OCw3IEBAIE1PRFVMRV9TVVBQT1JURURfREVWSUNFKCJ7e0ludGVsLCBJQ0g2fSwiDQog CQkJICJ7SW50ZWwsIFBDSH0sIg0KIAkJCSAie0ludGVsLCBDUFR9LCINCiAJCQkgIntJbnRlbCwg UFBUfSwiDQorCQkJICJ7SW50ZWwsIExQVH0sIg0KIAkJCSAie0ludGVsLCBQQkd9LCINCiAJCQkg IntJbnRlbCwgU0NIfSwiDQogCQkJICJ7QVRJLCBTQjQ1MH0sIg0KQEAgLTI5NzMsNiArMjk3NCwx MCBAQCBzdGF0aWMgREVGSU5FX1BDSV9ERVZJQ0VfVEFCTEUoYXp4X2lkcykgPSB7DQogCXsgUENJ X0RFVklDRSgweDgwODYsIDB4MWUyMCksDQogCSAgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9Q Q0ggfCBBWlhfRENBUFNfU0NIX1NOT09QIHwNCiAJICBBWlhfRENBUFNfQlVGU0laRX0sDQorCS8q IEx5bnggUG9pbnQgKi8NCisJeyBQQ0lfREVWSUNFKDB4ODA4NiwgMHg4YzIwKSwNCisJICAuZHJp dmVyX2RhdGEgPSBBWlhfRFJJVkVSX1BDSCB8IEFaWF9EQ0FQU19TQ0hfU05PT1AgfA0KKwkgIEFa WF9EQ0FQU19CVUZTSVpFfSwNCiAJLyogU0NIICovDQogCXsgUENJX0RFVklDRSgweDgwODYsIDB4 ODExYiksDQogCSAgLmRyaXZlcl9kYXRhID0gQVpYX0RSSVZFUl9TQ0ggfCBBWlhfRENBUFNfU0NI X1NOT09QIHwNCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMgYi9z b3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMNCmluZGV4IDU4YzI4N2IuLjQ5OGI2MmUgMTAw NjQ0DQotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2NvbmV4YW50LmMNCisrKyBiL3NvdW5kL3Bj aS9oZGEvcGF0Y2hfY29uZXhhbnQuYw0KQEAgLTQ1MDUsNiArNDUwNSw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgc25kX3BjaV9xdWlyayBjeHQ1MDUxX2ZpeHVwc1tdID0gew0KIH07DQogDQogc3Rh dGljIGNvbnN0IHN0cnVjdCBzbmRfcGNpX3F1aXJrIGN4dDUwNjZfZml4dXBzW10gPSB7DQorCVNO RF9QQ0lfUVVJUksoMHgxMDI1LCAweDA1NDMsICJBY2VyIEFzcGlyZSBPbmUgNTIyIiwgQ1hUX0ZJ WFVQX1NURVJFT19ETUlDKSwNCiAJU05EX1BDSV9RVUlSSygweDE3YWEsIDB4MjBmMiwgIkxlbm92 byBUNDAwIiwgQ1hUX1BJTkNGR19MRU5PVk9fVFA0MTApLA0KIAlTTkRfUENJX1FVSVJLKDB4MTdh YSwgMHgyMTVlLCAiTGVub3ZvIFQ0MTAiLCBDWFRfUElOQ0ZHX0xFTk9WT19UUDQxMCksDQogCVNO RF9QQ0lfUVVJUksoMHgxN2FhLCAweDIxNWYsICJMZW5vdm8gVDUxMCIsIENYVF9QSU5DRkdfTEVO T1ZPX1RQNDEwKSwNCmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3Nv dW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jDQppbmRleCBjMTE5ZjMzLi5iZGUyNjE1IDEwMDY0NA0K LS0tIGEvc291bmQvcGNpL2hkYS9wYXRjaF9oZG1pLmMNCisrKyBiL3NvdW5kL3BjaS9oZGEvcGF0 Y2hfaGRtaS5jDQpAQCAtNDI0LDkgKzQyNCwxMSBAQCBzdGF0aWMgdm9pZCBoZG1pX2luaXRfcGlu KHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLCBoZGFfbmlkX3QgcGluX25pZCkNCiAJaWYgKGdldF93 Y2Fwcyhjb2RlYywgcGluX25pZCkgJiBBQ19XQ0FQX09VVF9BTVApDQogCQlzbmRfaGRhX2NvZGVj X3dyaXRlKGNvZGVjLCBwaW5fbmlkLCAwLA0KIAkJCQlBQ19WRVJCX1NFVF9BTVBfR0FJTl9NVVRF LCBBTVBfT1VUX1VOTVVURSk7DQotCS8qIERpc2FibGUgcGluIG91dCB1bnRpbCBzdHJlYW0gaXMg YWN0aXZlKi8NCisJLyogRW5hYmxlIHBpbiBvdXQ6IHNvbWUgbWFjaGluZXMgd2l0aCBHTTk2NSBn ZXRzIGJyb2tlbiBvdXRwdXQgd2hlbg0KKwkgKiB0aGUgcGluIGlzIGRpc2FibGVkIG9yIGNoYW5n ZWQgd2hpbGUgdXNpbmcgd2l0aCBIRE1JDQorCSAqLw0KIAlzbmRfaGRhX2NvZGVjX3dyaXRlKGNv ZGVjLCBwaW5fbmlkLCAwLA0KLQkJCSAgICBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0ws IDApOw0KKwkJCSAgICBBQ19WRVJCX1NFVF9QSU5fV0lER0VUX0NPTlRST0wsIFBJTl9PVVQpOw0K IH0NCiANCiBzdGF0aWMgaW50IGhkbWlfZ2V0X2NoYW5uZWxfY291bnQoc3RydWN0IGhkYV9jb2Rl YyAqY29kZWMsIGhkYV9uaWRfdCBjdnRfbmlkKQ0KQEAgLTExNDEsMTcgKzExNDMsMTEgQEAgc3Rh dGljIGludCBnZW5lcmljX2hkbWlfcGxheWJhY2tfcGNtX3ByZXBhcmUoc3RydWN0IGhkYV9wY21f c3RyZWFtICpoaW5mbywNCiAJc3RydWN0IGhkbWlfc3BlYyAqc3BlYyA9IGNvZGVjLT5zcGVjOw0K IAlpbnQgcGluX2lkeCA9IGhpbmZvX3RvX3Bpbl9pbmRleChzcGVjLCBoaW5mbyk7DQogCWhkYV9u aWRfdCBwaW5fbmlkID0gc3BlYy0+cGluc1twaW5faWR4XS5waW5fbmlkOw0KLQlpbnQgcGluY3Rs Ow0KIA0KIAloZG1pX3NldF9jaGFubmVsX2NvdW50KGNvZGVjLCBjdnRfbmlkLCBzdWJzdHJlYW0t PnJ1bnRpbWUtPmNoYW5uZWxzKTsNCiANCiAJaGRtaV9zZXR1cF9hdWRpb19pbmZvZnJhbWUoY29k ZWMsIHBpbl9pZHgsIHN1YnN0cmVhbSk7DQogDQotCXBpbmN0bCA9IHNuZF9oZGFfY29kZWNfcmVh ZChjb2RlYywgcGluX25pZCwgMCwNCi0JCQkJICAgIEFDX1ZFUkJfR0VUX1BJTl9XSURHRVRfQ09O VFJPTCwgMCk7DQotCXNuZF9oZGFfY29kZWNfd3JpdGUoY29kZWMsIHBpbl9uaWQsIDAsDQotCQkJ ICAgIEFDX1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwgcGluY3RsIHwgUElOX09VVCk7DQot DQogCXJldHVybiBoZG1pX3NldHVwX3N0cmVhbShjb2RlYywgY3Z0X25pZCwgcGluX25pZCwgc3Ry ZWFtX3RhZywgZm9ybWF0KTsNCiB9DQogDQpAQCAtMTE2Myw3ICsxMTU5LDYgQEAgc3RhdGljIGlu dCBnZW5lcmljX2hkbWlfcGxheWJhY2tfcGNtX2NsZWFudXAoc3RydWN0IGhkYV9wY21fc3RyZWFt ICpoaW5mbywNCiAJaW50IGN2dF9pZHgsIHBpbl9pZHg7DQogCXN0cnVjdCBoZG1pX3NwZWNfcGVy X2N2dCAqcGVyX2N2dDsNCiAJc3RydWN0IGhkbWlfc3BlY19wZXJfcGluICpwZXJfcGluOw0KLQlp bnQgcGluY3RsOw0KIA0KIAlzbmRfaGRhX2NvZGVjX2NsZWFudXBfc3RyZWFtKGNvZGVjLCBoaW5m by0+bmlkKTsNCiANCkBAIC0xMTgyLDExICsxMTc3LDYgQEAgc3RhdGljIGludCBnZW5lcmljX2hk bWlfcGxheWJhY2tfcGNtX2NsZWFudXAoc3RydWN0IGhkYV9wY21fc3RyZWFtICpoaW5mbywNCiAJ CQlyZXR1cm4gLUVJTlZBTDsNCiAJCXBlcl9waW4gPSAmc3BlYy0+cGluc1twaW5faWR4XTsNCiAN Ci0JCXBpbmN0bCA9IHNuZF9oZGFfY29kZWNfcmVhZChjb2RlYywgcGVyX3Bpbi0+cGluX25pZCwg MCwNCi0JCQkJCSAgICBBQ19WRVJCX0dFVF9QSU5fV0lER0VUX0NPTlRST0wsIDApOw0KLQkJc25k X2hkYV9jb2RlY193cml0ZShjb2RlYywgcGVyX3Bpbi0+cGluX25pZCwgMCwNCi0JCQkJICAgIEFD X1ZFUkJfU0VUX1BJTl9XSURHRVRfQ09OVFJPTCwNCi0JCQkJICAgIHBpbmN0bCAmIH5QSU5fT1VU KTsNCiAJCXNuZF9oZGFfc3BkaWZfY3Rsc191bmFzc2lnbihjb2RlYywgcGluX2lkeCk7DQogCX0N CiANCkBAIC0xOTExLDYgKzE5MDEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhkYV9jb2RlY19w cmVzZXQgc25kX2hkYV9wcmVzZXRfaGRtaVtdID0gew0KIHsgLmlkID0gMHg4MDg2MjgwNCwgLm5h bWUgPSAiSWJleFBlYWsgSERNSSIsCS5wYXRjaCA9IHBhdGNoX2dlbmVyaWNfaGRtaSB9LA0KIHsg LmlkID0gMHg4MDg2MjgwNSwgLm5hbWUgPSAiQ291Z2FyUG9pbnQgSERNSSIsCS5wYXRjaCA9IHBh dGNoX2dlbmVyaWNfaGRtaSB9LA0KIHsgLmlkID0gMHg4MDg2MjgwNiwgLm5hbWUgPSAiUGFudGhl clBvaW50IEhETUkiLCAucGF0Y2ggPSBwYXRjaF9nZW5lcmljX2hkbWkgfSwNCit7IC5pZCA9IDB4 ODA4NjI4ODAsIC5uYW1lID0gIkNlZGFyVHJhaWwgSERNSSIsCS5wYXRjaCA9IHBhdGNoX2dlbmVy aWNfaGRtaSB9LA0KIHsgLmlkID0gMHg4MDg2MjlmYiwgLm5hbWUgPSAiQ3Jlc3RsaW5lIEhETUki LAkucGF0Y2ggPSBwYXRjaF9nZW5lcmljX2hkbWkgfSwNCiB7fSAvKiB0ZXJtaW5hdG9yICovDQog fTsNCkBAIC0xOTU3LDYgKzE5NDgsNyBAQCBNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6 ODA4NjI4MDMiKTsNCiBNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6ODA4NjI4MDQiKTsN CiBNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6ODA4NjI4MDUiKTsNCiBNT0RVTEVfQUxJ QVMoInNuZC1oZGEtY29kZWMtaWQ6ODA4NjI4MDYiKTsNCitNT0RVTEVfQUxJQVMoInNuZC1oZGEt Y29kZWMtaWQ6ODA4NjI4ODAiKTsNCiBNT0RVTEVfQUxJQVMoInNuZC1oZGEtY29kZWMtaWQ6ODA4 NjI5ZmIiKTsNCiANCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7DQpkaWZmIC0tZ2l0IGEvc291bmQv cGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYw0K aW5kZXggMWEwOWZiZi4uZjNlMGIyNCAxMDA2NDQNCi0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hf cmVhbHRlay5jDQorKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYw0KQEAgLTM4NTQs NiArMzg1NCw3IEBAIHN0YXRpYyB2b2lkIGFsY19hdXRvX2luaXRfc3RkKHN0cnVjdCBoZGFfY29k ZWMgKmNvZGVjKQ0KIAkoKHNwZWMpLT5iZWVwX2FtcCA9IEhEQV9DT01QT1NFX0FNUF9WQUwobmlk LCAzLCBpZHgsIGRpcikpDQogDQogc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNpX3F1aXJrIGJl ZXBfd2hpdGVfbGlzdFtdID0gew0KKwlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHgxMDNjLCAiQVNV UyIsIDEpLA0KIAlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHg4MjlmLCAiQVNVUyIsIDEpLA0KIAlT TkRfUENJX1FVSVJLKDB4MTA0MywgMHg4M2NlLCAiRWVlUEMiLCAxKSwNCiAJU05EX1BDSV9RVUlS SygweDEwNDMsIDB4ODMxYSwgIkVlZVBDIiwgMSksDQpAQCAtNTQ2OCw4ICs1NDY5LDggQEAgc3Rh dGljIHZvaWQgYWxjODYxdmRfZml4dXBfZGFsbGFzKHN0cnVjdCBoZGFfY29kZWMgKmNvZGVjLA0K IAkJCQkgIGNvbnN0IHN0cnVjdCBhbGNfZml4dXAgKmZpeCwgaW50IGFjdGlvbikNCiB7DQogCWlm IChhY3Rpb24gPT0gQUxDX0ZJWFVQX0FDVF9QUkVfUFJPQkUpIHsNCi0JCXNuZF9oZGFfb3ZlcnJp ZGVfcGluX2NhcHMoY29kZWMsIDB4MTgsIDB4MDAwMDE3MTQpOw0KLQkJc25kX2hkYV9vdmVycmlk ZV9waW5fY2Fwcyhjb2RlYywgMHgxOSwgMHgwMDAwMTcxYyk7DQorCQlzbmRfaGRhX292ZXJyaWRl X3Bpbl9jYXBzKGNvZGVjLCAweDE4LCAweDAwMDAwNzM0KTsNCisJCXNuZF9oZGFfb3ZlcnJpZGVf cGluX2NhcHMoY29kZWMsIDB4MTksIDB4MDAwMDA3M2MpOw0KIAl9DQogfQ0KIA0KZGlmZiAtLWdp dCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hf c2lnbWF0ZWwuYw0KaW5kZXggMmI5NzNmNS4uNDY3YTczYiAxMDA2NDQNCi0tLSBhL3NvdW5kL3Bj aS9oZGEvcGF0Y2hfc2lnbWF0ZWwuYw0KKysrIGIvc291bmQvcGNpL2hkYS9wYXRjaF9zaWdtYXRl bC5jDQpAQCAtMTcxNiw3ICsxNzE2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfcGNpX3F1 aXJrIHN0YWM5MmhkODN4eHhfY2ZnX3RibFtdID0gew0KIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5E T1JfSURfSFAsIDB4MTY1OCwNCiAJCQkgICJIUCIsIFNUQUNfOTJIRDgzWFhYX0hQX2NOQjExX0lO VFFVQUQpLA0KIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfSFAsIDB4MTY1OSwNCi0JCQkg ICJIUCIsIFNUQUNfOTJIRDgzWFhYX0hQX2NOQjExX0lOVFFVQUQpLA0KKwkJCSAgIkhQIFBhdmls aW9uIGR2NyIsIFNUQUNfSFBfRFY3XzQwMDApLA0KIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1Jf SURfSFAsIDB4MTY1QSwNCiAJCQkgICJIUCIsIFNUQUNfOTJIRDgzWFhYX0hQX2NOQjExX0lOVFFV QUQpLA0KIAlTTkRfUENJX1FVSVJLKFBDSV9WRU5ET1JfSURfSFAsIDB4MTY1QiwNCmRpZmYgLS1n aXQgYS9zb3VuZC91c2IvbWlkaS5jIGIvc291bmQvdXNiL21pZGkuYw0KaW5kZXggZWVlZmJjZS4u MzRiOWJiNyAxMDA2NDQNCi0tLSBhL3NvdW5kL3VzYi9taWRpLmMNCisrKyBiL3NvdW5kL3VzYi9t aWRpLmMNCkBAIC0xMTYsNiArMTE2LDcgQEAgc3RydWN0IHNuZF91c2JfbWlkaSB7DQogCXN0cnVj dCBsaXN0X2hlYWQgbGlzdDsNCiAJc3RydWN0IHRpbWVyX2xpc3QgZXJyb3JfdGltZXI7DQogCXNw aW5sb2NrX3QgZGlzY19sb2NrOw0KKwlzdHJ1Y3Qgcndfc2VtYXBob3JlIGRpc2NfcndzZW07DQog CXN0cnVjdCBtdXRleCBtdXRleDsNCiAJdTMyIHVzYl9pZDsNCiAJaW50IG5leHRfbWlkaV9kZXZp Y2U7DQpAQCAtMTI1LDggKzEyNiwxMCBAQCBzdHJ1Y3Qgc25kX3VzYl9taWRpIHsNCiAJCXN0cnVj dCBzbmRfdXNiX21pZGlfaW5fZW5kcG9pbnQgKmluOw0KIAl9IGVuZHBvaW50c1tNSURJX01BWF9F TkRQT0lOVFNdOw0KIAl1bnNpZ25lZCBsb25nIGlucHV0X3RyaWdnZXJlZDsNCi0JdW5zaWduZWQg aW50IG9wZW5lZDsNCisJYm9vbCBhdXRvcG1fcmVmZXJlbmNlOw0KKwl1bnNpZ25lZCBpbnQgb3Bl bmVkWzJdOw0KIAl1bnNpZ25lZCBjaGFyIGRpc2Nvbm5lY3RlZDsNCisJdW5zaWduZWQgY2hhciBp bnB1dF9ydW5uaW5nOw0KIA0KIAlzdHJ1Y3Qgc25kX2tjb250cm9sICpyb2xhbmRfbG9hZF9jdGw7 DQogfTsNCkBAIC0xNDgsNyArMTUxLDYgQEAgc3RydWN0IHNuZF91c2JfbWlkaV9vdXRfZW5kcG9p bnQgew0KIAkJc3RydWN0IHNuZF91c2JfbWlkaV9vdXRfZW5kcG9pbnQqIGVwOw0KIAkJc3RydWN0 IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqc3Vic3RyZWFtOw0KIAkJaW50IGFjdGl2ZTsNCi0JCWJv b2wgYXV0b3BtX3JlZmVyZW5jZTsNCiAJCXVpbnQ4X3QgY2FibGU7CQkvKiBjYWJsZSBudW1iZXIg PDwgNCAqLw0KIAkJdWludDhfdCBzdGF0ZTsNCiAjZGVmaW5lIFNUQVRFX1VOS05PV04JMA0KQEAg LTEwMzMsMjkgKzEwMzUsNTggQEAgc3RhdGljIHZvaWQgdXBkYXRlX3JvbGFuZF9hbHRzZXR0aW5n KHN0cnVjdCBzbmRfdXNiX21pZGkqIHVtaWRpKQ0KIAlzbmRfdXNibWlkaV9pbnB1dF9zdGFydCgm dW1pZGktPmxpc3QpOw0KIH0NCiANCi1zdGF0aWMgdm9pZCBzdWJzdHJlYW1fb3BlbihzdHJ1Y3Qg c25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCBvcGVuKQ0KK3N0YXRpYyBpbnQg c3Vic3RyZWFtX29wZW4oc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVhbSAqc3Vic3RyZWFtLCBp bnQgZGlyLA0KKwkJCSAgaW50IG9wZW4pDQogew0KIAlzdHJ1Y3Qgc25kX3VzYl9taWRpKiB1bWlk aSA9IHN1YnN0cmVhbS0+cm1pZGktPnByaXZhdGVfZGF0YTsNCiAJc3RydWN0IHNuZF9rY29udHJv bCAqY3RsOw0KKwlpbnQgZXJyOw0KKw0KKwlkb3duX3JlYWQoJnVtaWRpLT5kaXNjX3J3c2VtKTsN CisJaWYgKHVtaWRpLT5kaXNjb25uZWN0ZWQpIHsNCisJCXVwX3JlYWQoJnVtaWRpLT5kaXNjX3J3 c2VtKTsNCisJCXJldHVybiBvcGVuID8gLUVOT0RFViA6IDA7DQorCX0NCiANCiAJbXV0ZXhfbG9j aygmdW1pZGktPm11dGV4KTsNCiAJaWYgKG9wZW4pIHsNCi0JCWlmICh1bWlkaS0+b3BlbmVkKysg PT0gMCAmJiB1bWlkaS0+cm9sYW5kX2xvYWRfY3RsKSB7DQotCQkJY3RsID0gdW1pZGktPnJvbGFu ZF9sb2FkX2N0bDsNCi0JCQljdGwtPnZkWzBdLmFjY2VzcyB8PSBTTkRSVl9DVExfRUxFTV9BQ0NF U1NfSU5BQ1RJVkU7DQotCQkJc25kX2N0bF9ub3RpZnkodW1pZGktPmNhcmQsDQorCQlpZiAoIXVt aWRpLT5vcGVuZWRbMF0gJiYgIXVtaWRpLT5vcGVuZWRbMV0pIHsNCisJCQllcnIgPSB1c2JfYXV0 b3BtX2dldF9pbnRlcmZhY2UodW1pZGktPmlmYWNlKTsNCisJCQl1bWlkaS0+YXV0b3BtX3JlZmVy ZW5jZSA9IGVyciA+PSAwOw0KKwkJCWlmIChlcnIgPCAwICYmIGVyciAhPSAtRUFDQ0VTKSB7DQor CQkJCW11dGV4X3VubG9jaygmdW1pZGktPm11dGV4KTsNCisJCQkJdXBfcmVhZCgmdW1pZGktPmRp c2NfcndzZW0pOw0KKwkJCQlyZXR1cm4gLUVJTzsNCisJCQl9DQorCQkJaWYgKHVtaWRpLT5yb2xh bmRfbG9hZF9jdGwpIHsNCisJCQkJY3RsID0gdW1pZGktPnJvbGFuZF9sb2FkX2N0bDsNCisJCQkJ Y3RsLT52ZFswXS5hY2Nlc3MgfD0gU05EUlZfQ1RMX0VMRU1fQUNDRVNTX0lOQUNUSVZFOw0KKwkJ CQlzbmRfY3RsX25vdGlmeSh1bWlkaS0+Y2FyZCwNCiAJCQkJICAgICAgIFNORFJWX0NUTF9FVkVO VF9NQVNLX0lORk8sICZjdGwtPmlkKTsNCi0JCQl1cGRhdGVfcm9sYW5kX2FsdHNldHRpbmcodW1p ZGkpOw0KKwkJCQl1cGRhdGVfcm9sYW5kX2FsdHNldHRpbmcodW1pZGkpOw0KKwkJCX0NCiAJCX0N CisJCXVtaWRpLT5vcGVuZWRbZGlyXSsrOw0KKwkJaWYgKHVtaWRpLT5vcGVuZWRbMV0pDQorCQkJ c25kX3VzYm1pZGlfaW5wdXRfc3RhcnQoJnVtaWRpLT5saXN0KTsNCiAJfSBlbHNlIHsNCi0JCWlm ICgtLXVtaWRpLT5vcGVuZWQgPT0gMCAmJiB1bWlkaS0+cm9sYW5kX2xvYWRfY3RsKSB7DQotCQkJ Y3RsID0gdW1pZGktPnJvbGFuZF9sb2FkX2N0bDsNCi0JCQljdGwtPnZkWzBdLmFjY2VzcyAmPSB+ U05EUlZfQ1RMX0VMRU1fQUNDRVNTX0lOQUNUSVZFOw0KLQkJCXNuZF9jdGxfbm90aWZ5KHVtaWRp LT5jYXJkLA0KKwkJdW1pZGktPm9wZW5lZFtkaXJdLS07DQorCQlpZiAoIXVtaWRpLT5vcGVuZWRb MV0pDQorCQkJc25kX3VzYm1pZGlfaW5wdXRfc3RvcCgmdW1pZGktPmxpc3QpOw0KKwkJaWYgKCF1 bWlkaS0+b3BlbmVkWzBdICYmICF1bWlkaS0+b3BlbmVkWzFdKSB7DQorCQkJaWYgKHVtaWRpLT5y b2xhbmRfbG9hZF9jdGwpIHsNCisJCQkJY3RsID0gdW1pZGktPnJvbGFuZF9sb2FkX2N0bDsNCisJ CQkJY3RsLT52ZFswXS5hY2Nlc3MgJj0gflNORFJWX0NUTF9FTEVNX0FDQ0VTU19JTkFDVElWRTsN CisJCQkJc25kX2N0bF9ub3RpZnkodW1pZGktPmNhcmQsDQogCQkJCSAgICAgICBTTkRSVl9DVExf RVZFTlRfTUFTS19JTkZPLCAmY3RsLT5pZCk7DQorCQkJfQ0KKwkJCWlmICh1bWlkaS0+YXV0b3Bt X3JlZmVyZW5jZSkNCisJCQkJdXNiX2F1dG9wbV9wdXRfaW50ZXJmYWNlKHVtaWRpLT5pZmFjZSk7 DQogCQl9DQogCX0NCiAJbXV0ZXhfdW5sb2NrKCZ1bWlkaS0+bXV0ZXgpOw0KKwl1cF9yZWFkKCZ1 bWlkaS0+ZGlzY19yd3NlbSk7DQorCXJldHVybiAwOw0KIH0NCiANCiBzdGF0aWMgaW50IHNuZF91 c2JtaWRpX291dHB1dF9vcGVuKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnN1YnN0cmVh bSkNCkBAIC0xMDYzLDcgKzEwOTQsNiBAQCBzdGF0aWMgaW50IHNuZF91c2JtaWRpX291dHB1dF9v cGVuKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnN1YnN0cmVhbSkNCiAJc3RydWN0IHNu ZF91c2JfbWlkaSogdW1pZGkgPSBzdWJzdHJlYW0tPnJtaWRpLT5wcml2YXRlX2RhdGE7DQogCXN0 cnVjdCB1c2JtaWRpX291dF9wb3J0KiBwb3J0ID0gTlVMTDsNCiAJaW50IGksIGo7DQotCWludCBl cnI7DQogDQogCWZvciAoaSA9IDA7IGkgPCBNSURJX01BWF9FTkRQT0lOVFM7ICsraSkNCiAJCWlm ICh1bWlkaS0+ZW5kcG9pbnRzW2ldLm91dCkNCkBAIC0xMDc2LDI1ICsxMTA2LDE1IEBAIHN0YXRp YyBpbnQgc25kX3VzYm1pZGlfb3V0cHV0X29wZW4oc3RydWN0IHNuZF9yYXdtaWRpX3N1YnN0cmVh bSAqc3Vic3RyZWFtKQ0KIAkJc25kX0JVRygpOw0KIAkJcmV0dXJuIC1FTlhJTzsNCiAJfQ0KLQll cnIgPSB1c2JfYXV0b3BtX2dldF9pbnRlcmZhY2UodW1pZGktPmlmYWNlKTsNCi0JcG9ydC0+YXV0 b3BtX3JlZmVyZW5jZSA9IGVyciA+PSAwOw0KLQlpZiAoZXJyIDwgMCAmJiBlcnIgIT0gLUVBQ0NF UykNCi0JCXJldHVybiAtRUlPOw0KKw0KIAlzdWJzdHJlYW0tPnJ1bnRpbWUtPnByaXZhdGVfZGF0 YSA9IHBvcnQ7DQogCXBvcnQtPnN0YXRlID0gU1RBVEVfVU5LTk9XTjsNCi0Jc3Vic3RyZWFtX29w ZW4oc3Vic3RyZWFtLCAxKTsNCi0JcmV0dXJuIDA7DQorCXJldHVybiBzdWJzdHJlYW1fb3Blbihz dWJzdHJlYW0sIDAsIDEpOw0KIH0NCiANCiBzdGF0aWMgaW50IHNuZF91c2JtaWRpX291dHB1dF9j bG9zZShzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW0pDQogew0KLQlzdHJ1 Y3Qgc25kX3VzYl9taWRpKiB1bWlkaSA9IHN1YnN0cmVhbS0+cm1pZGktPnByaXZhdGVfZGF0YTsN Ci0Jc3RydWN0IHVzYm1pZGlfb3V0X3BvcnQgKnBvcnQgPSBzdWJzdHJlYW0tPnJ1bnRpbWUtPnBy aXZhdGVfZGF0YTsNCi0NCi0Jc3Vic3RyZWFtX29wZW4oc3Vic3RyZWFtLCAwKTsNCi0JaWYgKHBv cnQtPmF1dG9wbV9yZWZlcmVuY2UpDQotCQl1c2JfYXV0b3BtX3B1dF9pbnRlcmZhY2UodW1pZGkt PmlmYWNlKTsNCi0JcmV0dXJuIDA7DQorCXJldHVybiBzdWJzdHJlYW1fb3BlbihzdWJzdHJlYW0s IDAsIDApOw0KIH0NCiANCiBzdGF0aWMgdm9pZCBzbmRfdXNibWlkaV9vdXRwdXRfdHJpZ2dlcihz dHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW0sIGludCB1cCkNCkBAIC0xMTQ3 LDE0ICsxMTY3LDEyIEBAIHN0YXRpYyB2b2lkIHNuZF91c2JtaWRpX291dHB1dF9kcmFpbihzdHJ1 Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpzdWJzdHJlYW0pDQogDQogc3RhdGljIGludCBzbmRf dXNibWlkaV9pbnB1dF9vcGVuKHN0cnVjdCBzbmRfcmF3bWlkaV9zdWJzdHJlYW0gKnN1YnN0cmVh bSkNCiB7DQotCXN1YnN0cmVhbV9vcGVuKHN1YnN0cmVhbSwgMSk7DQotCXJldHVybiAwOw0KKwly ZXR1cm4gc3Vic3RyZWFtX29wZW4oc3Vic3RyZWFtLCAxLCAxKTsNCiB9DQogDQogc3RhdGljIGlu dCBzbmRfdXNibWlkaV9pbnB1dF9jbG9zZShzdHJ1Y3Qgc25kX3Jhd21pZGlfc3Vic3RyZWFtICpz dWJzdHJlYW0pDQogew0KLQlzdWJzdHJlYW1fb3BlbihzdWJzdHJlYW0sIDApOw0KLQlyZXR1cm4g MDsNCisJcmV0dXJuIHN1YnN0cmVhbV9vcGVuKHN1YnN0cmVhbSwgMSwgMCk7DQogfQ0KIA0KIHN0 YXRpYyB2b2lkIHNuZF91c2JtaWRpX2lucHV0X3RyaWdnZXIoc3RydWN0IHNuZF9yYXdtaWRpX3N1 YnN0cmVhbSAqc3Vic3RyZWFtLCBpbnQgdXApDQpAQCAtMTQwMyw5ICsxNDIxLDEyIEBAIHZvaWQg c25kX3VzYm1pZGlfZGlzY29ubmVjdChzdHJ1Y3QgbGlzdF9oZWFkKiBwKQ0KIAkgKiBhIHRpbWVy IG1heSBzdWJtaXQgYW4gVVJCLiBUbyByZWxpYWJseSBicmVhayB0aGUgY3ljbGUNCiAJICogYSBm bGFnIHVuZGVyIGxvY2sgbXVzdCBiZSB1c2VkDQogCSAqLw0KKwlkb3duX3dyaXRlKCZ1bWlkaS0+ ZGlzY19yd3NlbSk7DQogCXNwaW5fbG9ja19pcnEoJnVtaWRpLT5kaXNjX2xvY2spOw0KIAl1bWlk aS0+ZGlzY29ubmVjdGVkID0gMTsNCiAJc3Bpbl91bmxvY2tfaXJxKCZ1bWlkaS0+ZGlzY19sb2Nr KTsNCisJdXBfd3JpdGUoJnVtaWRpLT5kaXNjX3J3c2VtKTsNCisNCiAJZm9yIChpID0gMDsgaSA8 IE1JRElfTUFYX0VORFBPSU5UUzsgKytpKSB7DQogCQlzdHJ1Y3Qgc25kX3VzYl9taWRpX2VuZHBv aW50KiBlcCA9ICZ1bWlkaS0+ZW5kcG9pbnRzW2ldOw0KIAkJaWYgKGVwLT5vdXQpDQpAQCAtMjA2 MCwxMiArMjA4MSwxNSBAQCB2b2lkIHNuZF91c2JtaWRpX2lucHV0X3N0b3Aoc3RydWN0IGxpc3Rf aGVhZCogcCkNCiAJdW5zaWduZWQgaW50IGksIGo7DQogDQogCXVtaWRpID0gbGlzdF9lbnRyeShw LCBzdHJ1Y3Qgc25kX3VzYl9taWRpLCBsaXN0KTsNCisJaWYgKCF1bWlkaS0+aW5wdXRfcnVubmlu ZykNCisJCXJldHVybjsNCiAJZm9yIChpID0gMDsgaSA8IE1JRElfTUFYX0VORFBPSU5UUzsgKytp KSB7DQogCQlzdHJ1Y3Qgc25kX3VzYl9taWRpX2VuZHBvaW50KiBlcCA9ICZ1bWlkaS0+ZW5kcG9p bnRzW2ldOw0KIAkJaWYgKGVwLT5pbikNCiAJCQlmb3IgKGogPSAwOyBqIDwgSU5QVVRfVVJCUzsg KytqKQ0KIAkJCQl1c2Jfa2lsbF91cmIoZXAtPmluLT51cmJzW2pdKTsNCiAJfQ0KKwl1bWlkaS0+ aW5wdXRfcnVubmluZyA9IDA7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIHNuZF91c2JtaWRpX2lucHV0 X3N0YXJ0X2VwKHN0cnVjdCBzbmRfdXNiX21pZGlfaW5fZW5kcG9pbnQqIGVwKQ0KQEAgLTIwOTAs OCArMjExNCwxMSBAQCB2b2lkIHNuZF91c2JtaWRpX2lucHV0X3N0YXJ0KHN0cnVjdCBsaXN0X2hl YWQqIHApDQogCWludCBpOw0KIA0KIAl1bWlkaSA9IGxpc3RfZW50cnkocCwgc3RydWN0IHNuZF91 c2JfbWlkaSwgbGlzdCk7DQorCWlmICh1bWlkaS0+aW5wdXRfcnVubmluZyB8fCAhdW1pZGktPm9w ZW5lZFsxXSkNCisJCXJldHVybjsNCiAJZm9yIChpID0gMDsgaSA8IE1JRElfTUFYX0VORFBPSU5U UzsgKytpKQ0KIAkJc25kX3VzYm1pZGlfaW5wdXRfc3RhcnRfZXAodW1pZGktPmVuZHBvaW50c1tp XS5pbik7DQorCXVtaWRpLT5pbnB1dF9ydW5uaW5nID0gMTsNCiB9DQogDQogLyoNCkBAIC0yMTE3 LDYgKzIxNDQsNyBAQCBpbnQgc25kX3VzYm1pZGlfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2Fy ZCwNCiAJdW1pZGktPnVzYl9wcm90b2NvbF9vcHMgPSAmc25kX3VzYm1pZGlfc3RhbmRhcmRfb3Bz Ow0KIAlpbml0X3RpbWVyKCZ1bWlkaS0+ZXJyb3JfdGltZXIpOw0KIAlzcGluX2xvY2tfaW5pdCgm dW1pZGktPmRpc2NfbG9jayk7DQorCWluaXRfcndzZW0oJnVtaWRpLT5kaXNjX3J3c2VtKTsNCiAJ bXV0ZXhfaW5pdCgmdW1pZGktPm11dGV4KTsNCiAJdW1pZGktPnVzYl9pZCA9IFVTQl9JRChsZTE2 X3RvX2NwdSh1bWlkaS0+ZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSwNCiAJCQkgICAgICAgbGUx Nl90b19jcHUodW1pZGktPmRldi0+ZGVzY3JpcHRvci5pZFByb2R1Y3QpKTsNCkBAIC0yMjI5LDkg KzIyNTcsNiBAQCBpbnQgc25kX3VzYm1pZGlfY3JlYXRlKHN0cnVjdCBzbmRfY2FyZCAqY2FyZCwN CiAJfQ0KIA0KIAlsaXN0X2FkZF90YWlsKCZ1bWlkaS0+bGlzdCwgbWlkaV9saXN0KTsNCi0NCi0J Zm9yIChpID0gMDsgaSA8IE1JRElfTUFYX0VORFBPSU5UUzsgKytpKQ0KLQkJc25kX3VzYm1pZGlf aW5wdXRfc3RhcnRfZXAodW1pZGktPmVuZHBvaW50c1tpXS5pbik7DQogCXJldHVybiAwOw0KIH0N CiANCn== --=-mEqOrlwXCeCx23V6m6Oz-- --=-9h0pkPC6gbhOsfCv26st 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) iQIVAwUAUN3/XOe/yOyVhhEJAQrzdg/+KK/R7sTLPkanN4g3DHrzi+lZ6pC7NAne t6509YWVHGCR3ESawGLgkHH8N/R2RO3AKkGNU71tXzmzzu/qam8l4w/oX+bUdVEz M4XVTj0srwbSPcRWx8ciuAYqnwhOmsKAcSsfZDxV+an4kdklmXp9tDpLWpbZ0Pv/ utKH+zhQLhCtVz2E/dbj/pCZiQUkUL7lrI2LWqRHtxEOKE7hQczxHotqh4AirlCd a2wlM6/G5lb01tf035o68x0olvF9WzRpc8QjwCdvu36eEoa4QEea2+uPLJ+mleEa 4Zo8hPgU1D/m0BZXg267xSiqX8PCnFCoO2pniH0nYBIpAxsOhDRfYRhjFXZxihCd 2NaZOk6Of1zjPnspaizpzBhOwaJGMUVItzs6bqaL74kPZy4Rau0krSQJb5A91Uxy spXT6yrS8LC6dpmv7ufJnvcsTP2k2NTp4chPXOx8oSM/SV0JukCBxI7iM5pdst1Y BRijKFcWESBAHKX4kUOfIc71EbWUsvWwjF+UZq2owx/1CzES7F91iAEdz9t9YPTr snZEgegUlFdqBo3a/xhHcvGsE3La+Fy2KqOiozVleqrCcQfRxDEe7/43o/W4Snlv /XB8KmvtWR/TI+6p2xBkQklVHUcDm8QJHfiwfdhZWt/n3nvlgvywHq4Z6aRWxrE5 QzO+QtpS0pQ= =nnB+ -----END PGP SIGNATURE----- --=-9h0pkPC6gbhOsfCv26st--