From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756729AbaD1PFu (ORCPT ); Mon, 28 Apr 2014 11:05:50 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:46352 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756494AbaD1PFf (ORCPT ); Mon, 28 Apr 2014 11:05:35 -0400 Message-ID: <1398697522.22367.8.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 00/94] 3.2.58-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Satoru Takeuchi , akpm@linux-foundation.org Date: Mon, 28 Apr 2014 16:05:22 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-5o//mmeQ5XU8FNH3Xd6p" X-Mailer: Evolution 3.8.5-2+b3 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-5o//mmeQ5XU8FNH3Xd6p Content-Type: multipart/mixed; boundary="=-UIbtx5KrCukzaMum4u2K" --=-UIbtx5KrCukzaMum4u2K Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.58-rc1 relative to 3.2.57. Ben. --=20 Ben Hutchings Q. Which is the greater problem in the world today, ignorance or apathy? A. I don't know and I couldn't care less. --=-UIbtx5KrCukzaMum4u2K Content-Disposition: attachment; filename="linux-3.2.58-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.58-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vdmlkZW80bGludXgvZ3NwY2EudHh0IGIvRG9jdW1l bnRhdGlvbi92aWRlbzRsaW51eC9nc3BjYS50eHQNCmluZGV4IGIxNWUyOWYuLjkwYWFlODU2IDEw MDY0NA0KLS0tIGEvRG9jdW1lbnRhdGlvbi92aWRlbzRsaW51eC9nc3BjYS50eHQNCisrKyBiL0Rv Y3VtZW50YXRpb24vdmlkZW80bGludXgvZ3NwY2EudHh0DQpAQCAtNTUsNiArNTUsNyBAQCB6YzN4 eAkJMDQ1ODo3MDBmCUdlbml1cyBWaWRlb0NhbSBXZWIgVjINCiBzb25peGoJCTA0NTg6NzAyNQlH ZW5pdXMgRXllIDMxMVENCiBzbjljMjB4CQkwNDU4OjcwMjkJR2VuaXVzIExvb2sgMzIwcw0KIHNv bml4agkJMDQ1ODo3MDJlCUdlbml1cyBTbGltIDMxMCBOQg0KK3NuOWMyMHgJCTA0NTg6NzA0NQlH ZW5pdXMgTG9vayAxMzIwIFYyDQogc245YzIweAkJMDQ1ODo3MDRhCUdlbml1cyBTbGltIDEzMjAN CiBzbjljMjB4CQkwNDU4OjcwNGMJR2VuaXVzIGktTG9vayAxMzIxDQogc245YzIweAkJMDQ1ZTow MGY0CUxpZmVDYW0gVlgtNjAwMCAoU045QzIweCArIE9WOTY1MCkNCmRpZmYgLS1naXQgYS9NYWtl ZmlsZSBiL01ha2VmaWxlDQppbmRleCBjOTJkYjliLi44ZDY2YWQzIDEwMDY0NA0KLS0tIGEvTWFr ZWZpbGUNCisrKyBiL01ha2VmaWxlDQpAQCAtMSw3ICsxLDcgQEANCiBWRVJTSU9OID0gMw0KIFBB VENITEVWRUwgPSAyDQotU1VCTEVWRUwgPSA1Nw0KLUVYVFJBVkVSU0lPTiA9DQorU1VCTEVWRUwg PSA1OA0KK0VYVFJBVkVSU0lPTiA9IC1yYzENCiBOQU1FID0gU2FiZXItdG9vdGhlZCBTcXVpcnJl bA0KIA0KICMgKkRPQ1VNRU5UQVRJT04qDQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9h c20vZnV0ZXguaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Z1dGV4LmgNCmluZGV4IDI1M2NjODYu LmFlZmQ0NTkgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9mdXRleC5oDQorKysg Yi9hcmNoL2FybS9pbmNsdWRlL2FzbS9mdXRleC5oDQpAQCAtMywxMSArMyw2IEBADQogDQogI2lm ZGVmIF9fS0VSTkVMX18NCiANCi0jaWYgZGVmaW5lZChDT05GSUdfQ1BVX1VTRV9ET01BSU5TKSAm JiBkZWZpbmVkKENPTkZJR19TTVApDQotLyogQVJNIGRvZXNuJ3QgcHJvdmlkZSB1bnByaXZpbGVn ZWQgZXhjbHVzaXZlIG1lbW9yeSBhY2Nlc3NvcnMgKi8NCi0jaW5jbHVkZSA8YXNtLWdlbmVyaWMv ZnV0ZXguaD4NCi0jZWxzZQ0KLQ0KICNpbmNsdWRlIDxsaW51eC9mdXRleC5oPg0KICNpbmNsdWRl IDxsaW51eC91YWNjZXNzLmg+DQogI2luY2x1ZGUgPGFzbS9lcnJuby5oPg0KQEAgLTE2Myw2ICsx NTgsNSBAQCBmdXRleF9hdG9taWNfb3BfaW51c2VyIChpbnQgZW5jb2RlZF9vcCwgdTMyIF9fdXNl ciAqdWFkZHIpDQogCXJldHVybiByZXQ7DQogfQ0KIA0KLSNlbmRpZiAvKiAhKENQVV9VU0VfRE9N QUlOUyAmJiBTTVApICovDQogI2VuZGlmIC8qIF9fS0VSTkVMX18gKi8NCiAjZW5kaWYgLyogX0FT TV9BUk1fRlVURVhfSCAqLw0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BndGFi bGUtMmxldmVsLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9wZ3RhYmxlLTJsZXZlbC5oDQppbmRl eCA0NzA0NTdlLi4xY2I4MGM0IDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vcGd0 YWJsZS0ybGV2ZWwuaA0KKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vcGd0YWJsZS0ybGV2ZWwu aA0KQEAgLTEyMyw2ICsxMjMsNyBAQA0KICNkZWZpbmUgTF9QVEVfVVNFUgkJKF9BVChwdGV2YWxf dCwgMSkgPDwgOCkNCiAjZGVmaW5lIExfUFRFX1hOCQkoX0FUKHB0ZXZhbF90LCAxKSA8PCA5KQ0K ICNkZWZpbmUgTF9QVEVfU0hBUkVECQkoX0FUKHB0ZXZhbF90LCAxKSA8PCAxMCkJLyogc2hhcmVk KHY2KSwgY29oZXJlbnQoeHNjMykgKi8NCisjZGVmaW5lIExfUFRFX05PTkUJCShfQVQocHRldmFs X3QsIDEpIDw8IDExKQ0KIA0KIC8qDQogICogVGhlc2UgYXJlIHRoZSBtZW1vcnkgdHlwZXMsIGRl ZmluZWQgdG8gYmUgY29tcGF0aWJsZSB3aXRoDQpAQCAtMTM4LDYgKzEzOSw3IEBADQogI2RlZmlu ZSBMX1BURV9NVF9ERVZfTk9OU0hBUkVECShfQVQocHRldmFsX3QsIDB4MGMpIDw8IDIpCS8qIDEx MDAgKi8NCiAjZGVmaW5lIExfUFRFX01UX0RFVl9XQwkJKF9BVChwdGV2YWxfdCwgMHgwOSkgPDwg MikJLyogMTAwMSAqLw0KICNkZWZpbmUgTF9QVEVfTVRfREVWX0NBQ0hFRAkoX0FUKHB0ZXZhbF90 LCAweDBiKSA8PCAyKQkvKiAxMDExICovDQorI2RlZmluZSBMX1BURV9NVF9WRUNUT1JTCShfQVQo cHRldmFsX3QsIDB4MGYpIDw8IDIpCS8qIDExMTEgKi8NCiAjZGVmaW5lIExfUFRFX01UX01BU0sJ CShfQVQocHRldmFsX3QsIDB4MGYpIDw8IDIpDQogDQogI2VuZGlmIC8qIF9BU01fUEdUQUJMRV8y TEVWRUxfSCAqLw0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BndGFibGUuaCBi L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BndGFibGUuaA0KaW5kZXggOWI0MTlhYi4uZmNiYWMzYyAx MDA2NDQNCi0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3BndGFibGUuaA0KKysrIGIvYXJjaC9h cm0vaW5jbHVkZS9hc20vcGd0YWJsZS5oDQpAQCAtNzQsNyArNzQsNyBAQCBleHRlcm4gcGdwcm90 X3QJCXBncHJvdF9rZXJuZWw7DQogDQogI2RlZmluZSBfTU9EX1BST1QocCwgYikJX19wZ3Byb3Qo cGdwcm90X3ZhbChwKSB8IChiKSkNCiANCi0jZGVmaW5lIFBBR0VfTk9ORQkJX01PRF9QUk9UKHBn cHJvdF91c2VyLCBMX1BURV9YTiB8IExfUFRFX1JET05MWSkNCisjZGVmaW5lIFBBR0VfTk9ORQkJ X01PRF9QUk9UKHBncHJvdF91c2VyLCBMX1BURV9YTiB8IExfUFRFX1JET05MWSB8IExfUFRFX05P TkUpDQogI2RlZmluZSBQQUdFX1NIQVJFRAkJX01PRF9QUk9UKHBncHJvdF91c2VyLCBMX1BURV9V U0VSIHwgTF9QVEVfWE4pDQogI2RlZmluZSBQQUdFX1NIQVJFRF9FWEVDCV9NT0RfUFJPVChwZ3By b3RfdXNlciwgTF9QVEVfVVNFUikNCiAjZGVmaW5lIFBBR0VfQ09QWQkJX01PRF9QUk9UKHBncHJv dF91c2VyLCBMX1BURV9VU0VSIHwgTF9QVEVfUkRPTkxZIHwgTF9QVEVfWE4pDQpAQCAtODQsNyAr ODQsNyBAQCBleHRlcm4gcGdwcm90X3QJCXBncHJvdF9rZXJuZWw7DQogI2RlZmluZSBQQUdFX0tF Uk5FTAkJX01PRF9QUk9UKHBncHJvdF9rZXJuZWwsIExfUFRFX1hOKQ0KICNkZWZpbmUgUEFHRV9L RVJORUxfRVhFQwlwZ3Byb3Rfa2VybmVsDQogDQotI2RlZmluZSBfX1BBR0VfTk9ORQkJX19wZ3By b3QoX0xfUFRFX0RFRkFVTFQgfCBMX1BURV9SRE9OTFkgfCBMX1BURV9YTikNCisjZGVmaW5lIF9f UEFHRV9OT05FCQlfX3BncHJvdChfTF9QVEVfREVGQVVMVCB8IExfUFRFX1JET05MWSB8IExfUFRF X1hOIHwgTF9QVEVfTk9ORSkNCiAjZGVmaW5lIF9fUEFHRV9TSEFSRUQJCV9fcGdwcm90KF9MX1BU RV9ERUZBVUxUIHwgTF9QVEVfVVNFUiB8IExfUFRFX1hOKQ0KICNkZWZpbmUgX19QQUdFX1NIQVJF RF9FWEVDCV9fcGdwcm90KF9MX1BURV9ERUZBVUxUIHwgTF9QVEVfVVNFUikNCiAjZGVmaW5lIF9f UEFHRV9DT1BZCQlfX3BncHJvdChfTF9QVEVfREVGQVVMVCB8IExfUFRFX1VTRVIgfCBMX1BURV9S RE9OTFkgfCBMX1BURV9YTikNCkBAIC0yNzksNyArMjc5LDcgQEAgc3RhdGljIGlubGluZSBwdGVf dCBwdGVfbWtzcGVjaWFsKHB0ZV90IHB0ZSkgeyByZXR1cm4gcHRlOyB9DQogDQogc3RhdGljIGlu bGluZSBwdGVfdCBwdGVfbW9kaWZ5KHB0ZV90IHB0ZSwgcGdwcm90X3QgbmV3cHJvdCkNCiB7DQot CWNvbnN0IHB0ZXZhbF90IG1hc2sgPSBMX1BURV9YTiB8IExfUFRFX1JET05MWSB8IExfUFRFX1VT RVI7DQorCWNvbnN0IHB0ZXZhbF90IG1hc2sgPSBMX1BURV9YTiB8IExfUFRFX1JET05MWSB8IExf UFRFX1VTRVIgfCBMX1BURV9OT05FOw0KIAlwdGVfdmFsKHB0ZSkgPSAocHRlX3ZhbChwdGUpICYg fm1hc2spIHwgKHBncHJvdF92YWwobmV3cHJvdCkgJiBtYXNrKTsNCiAJcmV0dXJuIHB0ZTsNCiB9 DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vS2NvbmZpZyBiL2FyY2gvYXJtL21tL0tjb25maWcN CmluZGV4IDY3Zjc1YTAuLjRlMWVmNmUgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tbS9LY29uZmln DQorKysgYi9hcmNoL2FybS9tbS9LY29uZmlnDQpAQCAtNDU4LDcgKzQ1OCw2IEBAIGNvbmZpZyBD UFVfMzJ2NQ0KIGNvbmZpZyBDUFVfMzJ2Ng0KIAlib29sDQogCXNlbGVjdCBUTFNfUkVHX0VNVUwg aWYgIUNQVV8zMnY2SyAmJiAhTU1VDQotCXNlbGVjdCBDUFVfVVNFX0RPTUFJTlMgaWYgQ1BVX1Y2 ICYmIE1NVQ0KIA0KIGNvbmZpZyBDUFVfMzJ2NksNCiAJYm9vbA0KQEAgLTY1Miw3ICs2NTEsNyBA QCBjb25maWcgQVJNX1RIVU1CRUUNCiANCiBjb25maWcgU1dQX0VNVUxBVEUNCiAJYm9vbCAiRW11 bGF0ZSBTV1AvU1dQQiBpbnN0cnVjdGlvbnMiDQotCWRlcGVuZHMgb24gIUNQVV9VU0VfRE9NQUlO UyAmJiBDUFVfVjcNCisJZGVwZW5kcyBvbiBDUFVfVjcNCiAJc2VsZWN0IEhBVkVfUFJPQ19DUFUg aWYgUFJPQ19GUw0KIAlkZWZhdWx0IHkgaWYgU01QDQogCWhlbHANCmRpZmYgLS1naXQgYS9hcmNo L2FybS9tbS9tbXUuYyBiL2FyY2gvYXJtL21tL21tdS5jDQppbmRleCA5ZTI4ZmRiLi4wODJmYTE4 IDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vbW0vbW11LmMNCisrKyBiL2FyY2gvYXJtL21tL21tdS5j DQpAQCAtNDI2LDYgKzQyNiwxNCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYnVpbGRfbWVtX3R5cGVf dGFibGUodm9pZCkNCiAJCW1lbV90eXBlc1tNVF9NRU1PUllfTk9OQ0FDSEVEXS5wcm90X3B0ZSB8 PSBMX1BURV9TSEFSRUQ7DQogCX0NCiAJLyoNCisJICogV2UgZG9uJ3QgdXNlIGRvbWFpbnMgb24g QVJNdjYgKHNpbmNlIHRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGgNCisJICogdjYvdjcga2VybmVs cyksIHNvIHdlIG11c3QgdXNlIGEgc2VwYXJhdGUgbWVtb3J5IHR5cGUgZm9yIHVzZXINCisJICog ci9vLCBrZXJuZWwgci93IHRvIG1hcCB0aGUgdmVjdG9ycyBwYWdlLg0KKwkgKi8NCisJaWYgKGNw dV9hcmNoID09IENQVV9BUkNIX0FSTXY2KQ0KKwkJdmVjc19wZ3Byb3QgfD0gTF9QVEVfTVRfVkVD VE9SUzsNCisNCisJLyoNCiAJICogQVJNdjYgYW5kIGFib3ZlIGhhdmUgZXh0ZW5kZWQgcGFnZSB0 YWJsZXMuDQogCSAqLw0KIAlpZiAoY3B1X2FyY2ggPj0gQ1BVX0FSQ0hfQVJNdjYgJiYgKGNyICYg Q1JfWFApKSB7DQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbW0vcHJvYy1tYWNyb3MuUyBiL2FyY2gv YXJtL21tL3Byb2MtbWFjcm9zLlMNCmluZGV4IDMwN2E0ZGUuLjhhM2VkZDQgMTAwNjQ0DQotLS0g YS9hcmNoL2FybS9tbS9wcm9jLW1hY3Jvcy5TDQorKysgYi9hcmNoL2FybS9tbS9wcm9jLW1hY3Jv cy5TDQpAQCAtMTA2LDEzICsxMDYsOSBAQA0KICAqICAxMDB4ICAgMSAgIDAgICAxCXIvbwlubyBh Y2MNCiAgKiAgMTB4MCAgIDEgICAwICAgMQlyL28Jbm8gYWNjDQogICogIDEwMTEgICAwICAgMCAg IDEJci93CW5vIGFjYw0KLSAqICAxMTB4ICAgMCAgIDEgICAwCXIvdwlyL28NCi0gKiAgMTF4MCAg IDAgICAxICAgMAlyL3cJci9vDQotICogIDExMTEgICAwICAgMSAgIDEJci93CXIvdw0KLSAqDQot ICogSWYgIUNPTkZJR19DUFVfVVNFX0RPTUFJTlMsIHRoZSBmb2xsb3dpbmcgcGVybWlzc2lvbnMg YXJlIGNoYW5nZWQ6DQogICogIDExMHggICAxICAgMSAgIDEJci9vCXIvbw0KICAqICAxMXgwICAg MSAgIDEgICAxCXIvbwlyL28NCisgKiAgMTExMSAgIDAgICAxICAgMQlyL3cJci93DQogICovDQog CS5tYWNybwlhcm12Nl9tdF90YWJsZSBwZngNCiBccGZ4XCgpX210X3RhYmxlOg0KQEAgLTEzMSw3 ICsxMjcsNyBAQA0KIAkubG9uZwlQVEVfRVhUX1RFWCgyKQkJCQkJQCBMX1BURV9NVF9ERVZfTk9O U0hBUkVEDQogCS5sb25nCTB4MDAJCQkJCQlAIHVudXNlZA0KIAkubG9uZwkweDAwCQkJCQkJQCB1 bnVzZWQNCi0JLmxvbmcJMHgwMAkJCQkJCUAgdW51c2VkDQorCS5sb25nCVBURV9DQUNIRUFCTEUg fCBQVEVfQlVGRkVSQUJMRSB8IFBURV9FWFRfQVBYCUAgTF9QVEVfTVRfVkVDVE9SUw0KIAkuZW5k bQ0KIA0KIAkubWFjcm8JYXJtdjZfc2V0X3B0ZV9leHQgcGZ4DQpAQCAtMTUyLDIwICsxNDgsMjEg QEANCiANCiAJdHN0CXIxLCAjTF9QVEVfVVNFUg0KIAlvcnJuZQlyMywgcjMsICNQVEVfRVhUX0FQ MQ0KLSNpZmRlZiBDT05GSUdfQ1BVX1VTRV9ET01BSU5TDQotCUAgYWxsb3cga2VybmVsIHJlYWQv d3JpdGUgYWNjZXNzIHRvIHJlYWQtb25seSB1c2VyIHBhZ2VzDQogCXRzdG5lCXIzLCAjUFRFX0VY VF9BUFgNCi0JYmljbmUJcjMsIHIzLCAjUFRFX0VYVF9BUFggfCBQVEVfRVhUX0FQMA0KLSNlbmRp Zg0KKw0KKwlAIHVzZXIgcmVhZC1vbmx5IC0+IGtlcm5lbCByZWFkLW9ubHkNCisJYmljbmUJcjMs IHIzLCAjUFRFX0VYVF9BUDANCiANCiAJdHN0CXIxLCAjTF9QVEVfWE4NCiAJb3JybmUJcjMsIHIz LCAjUFRFX0VYVF9YTg0KIA0KLQlvcnIJcjMsIHIzLCByMg0KKwllb3IJcjMsIHIzLCByMg0KIA0K IAl0c3QJcjEsICNMX1BURV9ZT1VORw0KIAl0c3RuZQlyMSwgI0xfUFRFX1BSRVNFTlQNCiAJbW92 ZXEJcjMsICMwDQorCXRzdG5lCXIxLCAjTF9QVEVfTk9ORQ0KKwltb3ZuZQlyMywgIzANCiANCiAJ c3RyCXIzLCBbcjBdDQogCW1jcglwMTUsIDAsIHIwLCBjNywgYzEwLCAxCQlAIGZsdXNoX3B0ZQ0K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL3Byb2MtdjcuUyBiL2FyY2gvYXJtL21tL3Byb2Mtdjcu Uw0KaW5kZXggMTlkMjFmZi4uNDNjNjk4MSAxMDA2NDQNCi0tLSBhL2FyY2gvYXJtL21tL3Byb2Mt djcuUw0KKysrIGIvYXJjaC9hcm0vbW0vcHJvYy12Ny5TDQpAQCAtMTYwLDE3ICsxNjAsMTQgQEAg RU5UUlkoY3B1X3Y3X3NldF9wdGVfZXh0KQ0KIA0KIAl0c3QJcjEsICNMX1BURV9VU0VSDQogCW9y cm5lCXIzLCByMywgI1BURV9FWFRfQVAxDQotI2lmZGVmIENPTkZJR19DUFVfVVNFX0RPTUFJTlMN Ci0JQCBhbGxvdyBrZXJuZWwgcmVhZC93cml0ZSBhY2Nlc3MgdG8gcmVhZC1vbmx5IHVzZXIgcGFn ZXMNCi0JdHN0bmUJcjMsICNQVEVfRVhUX0FQWA0KLQliaWNuZQlyMywgcjMsICNQVEVfRVhUX0FQ WCB8IFBURV9FWFRfQVAwDQotI2VuZGlmDQogDQogCXRzdAlyMSwgI0xfUFRFX1hODQogCW9ycm5l CXIzLCByMywgI1BURV9FWFRfWE4NCiANCiAJdHN0CXIxLCAjTF9QVEVfWU9VTkcNCiAJdHN0bmUJ cjEsICNMX1BURV9QUkVTRU5UDQorCWVvcm5lCXIxLCByMSwgI0xfUFRFX05PTkUNCisJdHN0bmUJ cjEsICNMX1BURV9OT05FDQogCW1vdmVxCXIzLCAjMA0KIA0KICBBUk0oCXN0cglyMywgW3IwLCAj MjA0OF0hICkNCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvcG93ZXIvaGliZXJuYXRlLlMgYi9hcmNo L21pcHMvcG93ZXIvaGliZXJuYXRlLlMNCmluZGV4IGY4YTc1MWMuLjViZjM0ZWMgMTAwNjQ0DQot LS0gYS9hcmNoL21pcHMvcG93ZXIvaGliZXJuYXRlLlMNCisrKyBiL2FyY2gvbWlwcy9wb3dlci9o aWJlcm5hdGUuUw0KQEAgLTQ0LDYgKzQ0LDcgQEAgTEVBRihzd3N1c3BfYXJjaF9yZXN1bWUpDQog CWJuZSB0MSwgdDMsIDFiDQogCVBUUl9MIHQwLCBQQkVfTkVYVCh0MCkNCiAJYm5leiB0MCwgMGIN CisJamFsIGxvY2FsX2ZsdXNoX3RsYl9hbGwgLyogQXZvaWQgVExCIG1pc21hdGNoIGFmdGVyIGtl cm5lbCByZXN1bWUgKi8NCiAJUFRSX0xBIHQwLCBzYXZlZF9yZWdzDQogCVBUUl9MIHJhLCBQVF9S MzEodDApDQogCVBUUl9MIHNwLCBQVF9SMjkodDApDQpkaWZmIC0tZ2l0IGEvYXJjaC9zaC9rZXJu ZWwvZHVtcHN0YWNrLmMgYi9hcmNoL3NoL2tlcm5lbC9kdW1wc3RhY2suYw0KaW5kZXggNjk0MTU4 Yi4uM2E2NTI4YyAxMDA2NDQNCi0tLSBhL2FyY2gvc2gva2VybmVsL2R1bXBzdGFjay5jDQorKysg Yi9hcmNoL3NoL2tlcm5lbC9kdW1wc3RhY2suYw0KQEAgLTgwLDcgKzgwLDcgQEAgc3RhdGljIGlu dCBwcmludF90cmFjZV9zdGFjayh2b2lkICpkYXRhLCBjaGFyICpuYW1lKQ0KICAqLw0KIHN0YXRp YyB2b2lkIHByaW50X3RyYWNlX2FkZHJlc3Modm9pZCAqZGF0YSwgdW5zaWduZWQgbG9uZyBhZGRy LCBpbnQgcmVsaWFibGUpDQogew0KLQlwcmludGsoZGF0YSk7DQorCXByaW50aygiJXMiLCAoY2hh ciAqKWRhdGEpOw0KIAlwcmludGtfYWRkcmVzcyhhZGRyLCByZWxpYWJsZSk7DQogfQ0KIA0KZGlm ZiAtLWdpdCBhL2FyY2gvc3BhcmMvS2NvbmZpZyBiL2FyY2gvc3BhcmMvS2NvbmZpZw0KaW5kZXgg ODc1MzdlMi4uODhkNDQyZCAxMDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMvS2NvbmZpZw0KKysrIGIv YXJjaC9zcGFyYy9LY29uZmlnDQpAQCAtMjQsNyArMjQsNyBAQCBjb25maWcgU1BBUkMNCiAJc2Vs ZWN0IEhBVkVfSVJRX1dPUksNCiAJc2VsZWN0IEhBVkVfRE1BX0FUVFJTDQogCXNlbGVjdCBIQVZF X0RNQV9BUElfREVCVUcNCi0Jc2VsZWN0IEhBVkVfQVJDSF9KVU1QX0xBQkVMDQorCXNlbGVjdCBI QVZFX0FSQ0hfSlVNUF9MQUJFTCBpZiBTUEFSQzY0DQogCXNlbGVjdCBIQVZFX0dFTkVSSUNfSEFS RElSUVMNCiAJc2VsZWN0IEdFTkVSSUNfSVJRX1NIT1cNCiAJc2VsZWN0IFVTRV9HRU5FUklDX1NN UF9IRUxQRVJTIGlmIFNNUA0KZGlmZiAtLWdpdCBhL2FyY2gvc3BhcmMvaW5jbHVkZS9hc20vdWFj Y2Vzc182NC5oIGIvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS91YWNjZXNzXzY0LmgNCmluZGV4IDNl MTQ0OWYuLjZkNmM3MzEgMTAwNjQ0DQotLS0gYS9hcmNoL3NwYXJjL2luY2x1ZGUvYXNtL3VhY2Nl c3NfNjQuaA0KKysrIGIvYXJjaC9zcGFyYy9pbmNsdWRlL2FzbS91YWNjZXNzXzY0LmgNCkBAIC0y NjcsOCArMjY3LDggQEAgZXh0ZXJuIGxvbmcgX19zdHJubGVuX3VzZXIoY29uc3QgY2hhciBfX3Vz ZXIgKiwgbG9uZyBsZW4pOw0KIA0KICNkZWZpbmUgc3RybGVuX3VzZXIgX19zdHJsZW5fdXNlcg0K ICNkZWZpbmUgc3Rybmxlbl91c2VyIF9fc3Rybmxlbl91c2VyDQotI2RlZmluZSBfX2NvcHlfdG9f dXNlcl9pbmF0b21pYyBfX19jb3B5X3RvX3VzZXINCi0jZGVmaW5lIF9fY29weV9mcm9tX3VzZXJf aW5hdG9taWMgX19fY29weV9mcm9tX3VzZXINCisjZGVmaW5lIF9fY29weV90b191c2VyX2luYXRv bWljIF9fY29weV90b191c2VyDQorI2RlZmluZSBfX2NvcHlfZnJvbV91c2VyX2luYXRvbWljIF9f Y29weV9mcm9tX3VzZXINCiANCiAjZW5kaWYgIC8qIF9fQVNTRU1CTFlfXyAqLw0KIA0KZGlmZiAt LWdpdCBhL2FyY2gvc3BhcmMva2VybmVsL3BjaS5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpLmMN CmluZGV4IDMxMTExZTMuLjY1NmI1YjYgMTAwNjQ0DQotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9w Y2kuYw0KKysrIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpLmMNCkBAIC00ODcsOCArNDg3LDggQEAg c3RhdGljIHZvaWQgX19kZXZpbml0IGFwYl9mYWtlX3JhbmdlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2 LA0KIAlwY2lfcmVhZF9jb25maWdfYnl0ZShkZXYsIEFQQl9NRU1fQUREUkVTU19NQVAsICZtYXAp Ow0KIAlhcGJfY2FsY19maXJzdF9sYXN0KG1hcCwgJmZpcnN0LCAmbGFzdCk7DQogCXJlcyA9IGJ1 cy0+cmVzb3VyY2VbMV07DQotCXJlcy0+c3RhcnQgPSAoZmlyc3QgPDwgMjEpOw0KLQlyZXMtPmVu ZCA9IChsYXN0IDw8IDIxKSArICgoMSA8PCAyMSkgLSAxKTsNCisJcmVzLT5zdGFydCA9IChmaXJz dCA8PCAyOSk7DQorCXJlcy0+ZW5kID0gKGxhc3QgPDwgMjkpICsgKCgxIDw8IDI5KSAtIDEpOw0K IAlyZXMtPmZsYWdzID0gSU9SRVNPVVJDRV9NRU07DQogCXBjaV9yZXNvdXJjZV9hZGp1c3QocmVz LCAmcGJtLT5tZW1fc3BhY2UpOw0KIH0NCmRpZmYgLS1naXQgYS9hcmNoL3NwYXJjL2tlcm5lbC9z eXNjYWxscy5TIGIvYXJjaC9zcGFyYy9rZXJuZWwvc3lzY2FsbHMuUw0KaW5kZXggODE3MTg3ZC4u NTU3MjEyYyAxMDA2NDQNCi0tLSBhL2FyY2gvc3BhcmMva2VybmVsL3N5c2NhbGxzLlMNCisrKyBi L2FyY2gvc3BhcmMva2VybmVsL3N5c2NhbGxzLlMNCkBAIC0xODQsNyArMTg0LDggQEAgbGludXhf c3BhcmNfc3lzY2FsbDMyOg0KIAkgbW92CSVpMCwgJWw1CQkJCSEgSUVVMQ0KIDU6CWNhbGwJJWw3 CQkJCQkhIENUSQlHcm91cCBicmsgZm9yY2VkDQogCSBzcmwJJWk1LCAwLCAlbzUJCQkJISBJRVUx DQotCWJhLGEscHQJJXhjYywgM2YNCisJYmEscHQJJXhjYywgM2YNCisJIHNyYQklbzAsIDAsICVv MA0KIA0KIAkvKiBMaW51eCBuYXRpdmUgc3lzdGVtIGNhbGxzIGVudGVyIGhlcmUuLi4gKi8NCiAJ LmFsaWduCTMyDQpAQCAtMjEyLDcgKzIxMyw2IEBAIGxpbnV4X3NwYXJjX3N5c2NhbGw6DQogMzoJ c3R4CSVvMCwgWyVzcCArIFBUUkVHU19PRkYgKyBQVF9WOV9JMF0NCiByZXRfc3lzX2NhbGw6DQog CWxkeAlbJXNwICsgUFRSRUdTX09GRiArIFBUX1Y5X1RTVEFURV0sICVnMw0KLQlzcmEJJW8wLCAw LCAlbzANCiAJbW92CSV1bG8oVFNUQVRFX1hDQVJSWSB8IFRTVEFURV9JQ0FSUlkpLCAlZzINCiAJ c2xseAklZzIsIDMyLCAlZzINCiANCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21z aHlwZXJ2LmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L21zaHlwZXJ2LmMNCmluZGV4IDY0NmQxOTIu LjFhM2NmNmUgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvY3B1L21zaHlwZXJ2LmMNCisr KyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbXNoeXBlcnYuYw0KQEAgLTE4LDYgKzE4LDcgQEANCiAj aW5jbHVkZSA8YXNtL2h5cGVydmlzb3IuaD4NCiAjaW5jbHVkZSA8YXNtL2h5cGVydi5oPg0KICNp bmNsdWRlIDxhc20vbXNoeXBlcnYuaD4NCisjaW5jbHVkZSA8YXNtL3RpbWVyLmg+DQogDQogc3Ry dWN0IG1zX2h5cGVydl9pbmZvIG1zX2h5cGVydjsNCiBFWFBPUlRfU1lNQk9MX0dQTChtc19oeXBl cnYpOw0KQEAgLTcwLDYgKzcxLDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBtc19oeXBlcnZfaW5p dF9wbGF0Zm9ybSh2b2lkKQ0KIA0KIAlpZiAobXNfaHlwZXJ2LmZlYXR1cmVzICYgSFZfWDY0X01T Ul9USU1FX1JFRl9DT1VOVF9BVkFJTEFCTEUpDQogCQljbG9ja3NvdXJjZV9yZWdpc3Rlcl9oeigm aHlwZXJ2X2NzLCBOU0VDX1BFUl9TRUMvMTAwKTsNCisNCisjaWZkZWYgQ09ORklHX1g4Nl9JT19B UElDDQorCW5vX3RpbWVyX2NoZWNrID0gMTsNCisjZW5kaWYNCisNCiB9DQogDQogY29uc3QgX19y ZWZjb25zdCBzdHJ1Y3QgaHlwZXJ2aXNvcl94ODYgeDg2X2h5cGVyX21zX2h5cGVydiA9IHsNCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvbGR0LmMN CmluZGV4IGVhNjk3MjYuLjRhYzQ1MzEgMTAwNjQ0DQotLS0gYS9hcmNoL3g4Ni9rZXJuZWwvbGR0 LmMNCisrKyBiL2FyY2gveDg2L2tlcm5lbC9sZHQuYw0KQEAgLTIzMCw2ICsyMzAsMTcgQEAgc3Rh dGljIGludCB3cml0ZV9sZHQodm9pZCBfX3VzZXIgKnB0ciwgdW5zaWduZWQgbG9uZyBieXRlY291 bnQsIGludCBvbGRtb2RlKQ0KIAkJfQ0KIAl9DQogDQorCS8qDQorCSAqIE9uIHg4Ni02NCB3ZSBk byBub3Qgc3VwcG9ydCAxNi1iaXQgc2VnbWVudHMgZHVlIHRvDQorCSAqIElSRVQgbGVha2luZyB0 aGUgaGlnaCBiaXRzIG9mIHRoZSBrZXJuZWwgc3RhY2sgYWRkcmVzcy4NCisJICovDQorI2lmZGVm IENPTkZJR19YODZfNjQNCisJaWYgKCFsZHRfaW5mby5zZWdfMzJiaXQpIHsNCisJCWVycm9yID0g LUVJTlZBTDsNCisJCWdvdG8gb3V0X3VubG9jazsNCisJfQ0KKyNlbmRpZg0KKw0KIAlmaWxsX2xk dCgmbGR0LCAmbGR0X2luZm8pOw0KIAlpZiAob2xkbW9kZSkNCiAJCWxkdC5hdmwgPSAwOw0KZGlm ZiAtLWdpdCBhL2Jsb2NrL2Jsay1jb3JlLmMgYi9ibG9jay9ibGstY29yZS5jDQppbmRleCBhMjE5 Yzg5Li5lYzQ5NGZmIDEwMDY0NA0KLS0tIGEvYmxvY2svYmxrLWNvcmUuYw0KKysrIGIvYmxvY2sv YmxrLWNvcmUuYw0KQEAgLTIwNzcsNyArMjA3Nyw3IEBAIGJvb2wgYmxrX3VwZGF0ZV9yZXF1ZXN0 KHN0cnVjdCByZXF1ZXN0ICpyZXEsIGludCBlcnJvciwgdW5zaWduZWQgaW50IG5yX2J5dGVzKQ0K IAlpZiAoIXJlcS0+YmlvKQ0KIAkJcmV0dXJuIGZhbHNlOw0KIA0KLQl0cmFjZV9ibG9ja19ycV9j b21wbGV0ZShyZXEtPnEsIHJlcSk7DQorCXRyYWNlX2Jsb2NrX3JxX2NvbXBsZXRlKHJlcS0+cSwg cmVxLCBucl9ieXRlcyk7DQogDQogCS8qDQogCSAqIEZvciBmcyByZXF1ZXN0cywgcnEgaXMganVz dCBjYXJyaWVyIG9mIGluZGVwZW5kZW50IGJpbydzDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlv L2dwaW8tbXhzLmMgYi9kcml2ZXJzL2dwaW8vZ3Bpby1teHMuYw0KaW5kZXggMzg1YzU4ZS4uMGY4 MTE0ZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3Bpby9ncGlvLW14cy5jDQorKysgYi9kcml2ZXJz L2dwaW8vZ3Bpby1teHMuYw0KQEAgLTE2Nyw3ICsxNjcsOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQg bXhzX2dwaW9faW5pdF9nYyhzdHJ1Y3QgbXhzX2dwaW9fcG9ydCAqcG9ydCkNCiAJY3QtPnJlZ3Mu YWNrID0gUElOQ1RSTF9JUlFTVEFUKHBvcnQtPmlkKSArIE1YU19DTFI7DQogCWN0LT5yZWdzLm1h c2sgPSBQSU5DVFJMX0lSUUVOKHBvcnQtPmlkKTsNCiANCi0JaXJxX3NldHVwX2dlbmVyaWNfY2hp cChnYywgSVJRX01TSygzMiksIDAsIElSUV9OT1JFUVVFU1QsIDApOw0KKwlpcnFfc2V0dXBfZ2Vu ZXJpY19jaGlwKGdjLCBJUlFfTVNLKDMyKSwgSVJRX0dDX0lOSVRfTkVTVEVEX0xPQ0ssDQorCQkJ ICAgICAgIElSUV9OT1JFUVVFU1QsIDApOw0KIH0NCiANCiBzdGF0aWMgaW50IG14c19ncGlvX3Rv X2lycShzdHJ1Y3QgZ3Bpb19jaGlwICpnYywgdW5zaWduZWQgb2Zmc2V0KQ0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYw0KaW5kZXggMmVhOGE5Ni4uMjc5OTlkOSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYw0KKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jDQpAQCAtODk0Niw2ICs4OTQ2LDEyIEBAIHN0cnVjdCBp bnRlbF9xdWlyayBpbnRlbF9xdWlya3NbXSA9IHsNCiAJLyogQWNlci9QYWNrYXJkIEJlbGwgTkNM MjAgKi8NCiAJeyAweDJhNDIsIDB4MTAyNSwgMHgwMzRiLCBxdWlya19pbnZlcnRfYnJpZ2h0bmVz cyB9LA0KIA0KKwkvKiBBY2VyIEFzcGlyZSA0NzM2WiAqLw0KKwl7IDB4MmE0MiwgMHgxMDI1LCAw eDAyNjAsIHF1aXJrX2ludmVydF9icmlnaHRuZXNzIH0sDQorDQorCS8qIEFjZXIgQXNwaXJlIDUz MzYgKi8NCisJeyAweDJhNDIsIDB4MTAyNSwgMHgwNDhhLCBxdWlya19pbnZlcnRfYnJpZ2h0bmVz cyB9LA0KKw0KIAkvKiBEZWxsIFhQUzEzIEhEIFNhbmR5IEJyaWRnZSAqLw0KIAl7IDB4MDExNiwg MHgxMDI4LCAweDA1MmUsIHF1aXJrX25vX3BjbV9wd21fZW5hYmxlIH0sDQogCS8qIERlbGwgWFBT MTMgSEQgYW5kIFhQUzEzIEZIRCBJdnkgQnJpZGdlICovDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMN CmluZGV4IDEyMDQxZmEuLmIyMjFmMmIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF90di5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jDQpAQCAt MTU5OSw5ICsxNTk5LDE0IEBAIHN0YXRpYyBpbnQgdHZfaXNfcHJlc2VudF9pbl92YnQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikNCiAJCS8qDQogCQkgKiBJZiB0aGUgZGV2aWNlIHR5cGUgaXMgbm90 IFRWLCBjb250aW51ZS4NCiAJCSAqLw0KLQkJaWYgKHBfY2hpbGQtPmRldmljZV90eXBlICE9IERF VklDRV9UWVBFX0lOVF9UViAmJg0KLQkJCXBfY2hpbGQtPmRldmljZV90eXBlICE9IERFVklDRV9U WVBFX1RWKQ0KKwkJc3dpdGNoIChwX2NoaWxkLT5kZXZpY2VfdHlwZSkgew0KKwkJY2FzZSBERVZJ Q0VfVFlQRV9JTlRfVFY6DQorCQljYXNlIERFVklDRV9UWVBFX1RWOg0KKwkJY2FzZSBERVZJQ0Vf VFlQRV9UVl9TVklERU9fQ09NUE9TSVRFOg0KKwkJCWJyZWFrOw0KKwkJZGVmYXVsdDoNCiAJCQlj b250aW51ZTsNCisJCX0NCiAJCS8qIE9ubHkgd2hlbiB0aGUgYWRkaW5fb2Zmc2V0IGlzIG5vbi16 ZXJvLCBpdCBpcyByZWdhcmRlZA0KIAkJICogYXMgcHJlc2VudC4NCiAJCSAqLw0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYw0KaW5kZXggNjNlNzE0My4uMzI5MWFiOCAxMDA2 NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2Rpc3BsYXkuYw0KKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZGlzcGxheS5jDQpAQCAtNzM4LDYgKzczOCw3 IEBAIGludCByYWRlb25fZGRjX2dldF9tb2RlcyhzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFk ZW9uX2Nvbm5lY3RvcikNCiAJaWYgKHJhZGVvbl9jb25uZWN0b3ItPmVkaWQpIHsNCiAJCWRybV9t b2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSgmcmFkZW9uX2Nvbm5lY3Rvci0+YmFz ZSwgcmFkZW9uX2Nvbm5lY3Rvci0+ZWRpZCk7DQogCQlyZXQgPSBkcm1fYWRkX2VkaWRfbW9kZXMo JnJhZGVvbl9jb25uZWN0b3ItPmJhc2UsIHJhZGVvbl9jb25uZWN0b3ItPmVkaWQpOw0KKwkJZHJt X2VkaWRfdG9fZWxkKCZyYWRlb25fY29ubmVjdG9yLT5iYXNlLCByYWRlb25fY29ubmVjdG9yLT5l ZGlkKTsNCiAJCXJldHVybiByZXQ7DQogCX0NCiAJZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9l ZGlkX3Byb3BlcnR5KCZyYWRlb25fY29ubmVjdG9yLT5iYXNlLCBOVUxMKTsNCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfZmIuYw0KaW5kZXggMzRlNTFhMS4uOTA3YzI2ZiAxMDA2NDQNCi0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZiLmMNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X2ZiLmMNCkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIGludCB2bXdfZmJf Y2hlY2tfdmFyKHN0cnVjdCBmYl92YXJfc2NyZWVuaW5mbyAqdmFyLA0KIAl9DQogDQogCWlmICgh dm13X2ttc192YWxpZGF0ZV9tb2RlX3ZyYW0odm13X3ByaXYsDQotCQkJCQlpbmZvLT5maXgubGlu ZV9sZW5ndGgsDQorCQkJCQl2YXItPnhyZXMgKiB2YXItPmJpdHNfcGVyX3BpeGVsLzgsDQogCQkJ CQl2YXItPnlvZmZzZXQgKyB2YXItPnlyZXMpKSB7DQogCQlEUk1fRVJST1IoIlJlcXVlc3RlZCBn ZW9tIGNhbiBub3QgZml0IGluIGZyYW1lYnVmZmVyXG4iKTsNCiAJCXJldHVybiAtRUlOVkFMOw0K QEAgLTE2Miw2ICsxNjIsOCBAQCBzdGF0aWMgaW50IHZtd19mYl9zZXRfcGFyKHN0cnVjdCBmYl9p bmZvICppbmZvKQ0KIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZtd19wcml2ID0gcGFyLT52bXdfcHJp djsNCiAJaW50IHJldDsNCiANCisJaW5mby0+Zml4LmxpbmVfbGVuZ3RoID0gaW5mby0+dmFyLnhy ZXMgKiBpbmZvLT52YXIuYml0c19wZXJfcGl4ZWwvODsNCisNCiAJcmV0ID0gdm13X2ttc193cml0 ZV9zdmdhKHZtd19wcml2LCBpbmZvLT52YXIueHJlcywgaW5mby0+dmFyLnlyZXMsDQogCQkJCSBp bmZvLT5maXgubGluZV9sZW5ndGgsDQogCQkJCSBwYXItPmJwcCwgcGFyLT5kZXB0aCk7DQpAQCAt MTc3LDYgKzE3OSw3IEBAIHN0YXRpYyBpbnQgdm13X2ZiX3NldF9wYXIoc3RydWN0IGZiX2luZm8g KmluZm8pDQogCQl2bXdfd3JpdGUodm13X3ByaXYsIFNWR0FfUkVHX0RJU1BMQVlfUE9TSVRJT05f WSwgaW5mby0+dmFyLnlvZmZzZXQpOw0KIAkJdm13X3dyaXRlKHZtd19wcml2LCBTVkdBX1JFR19E SVNQTEFZX1dJRFRILCBpbmZvLT52YXIueHJlcyk7DQogCQl2bXdfd3JpdGUodm13X3ByaXYsIFNW R0FfUkVHX0RJU1BMQVlfSEVJR0hULCBpbmZvLT52YXIueXJlcyk7DQorCQl2bXdfd3JpdGUodm13 X3ByaXYsIFNWR0FfUkVHX0JZVEVTX1BFUl9MSU5FLCBpbmZvLT5maXgubGluZV9sZW5ndGgpOw0K IAkJdm13X3dyaXRlKHZtd19wcml2LCBTVkdBX1JFR19ESVNQTEFZX0lELCBTVkdBX0lEX0lOVkFM SUQpOw0KIAl9DQogDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9odi9yaW5nX2J1ZmZlci5jIGIvZHJp dmVycy9odi9yaW5nX2J1ZmZlci5jDQppbmRleCA4MTA2NThlLi5kMDFlZGYzIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9odi9yaW5nX2J1ZmZlci5jDQorKysgYi9kcml2ZXJzL2h2L3JpbmdfYnVmZmVy LmMNCkBAIC00ODUsNyArNDg1LDcgQEAgaW50IGh2X3JpbmdidWZmZXJfcmVhZChzdHJ1Y3QgaHZf cmluZ19idWZmZXJfaW5mbyAqaW5yaW5nX2luZm8sIHZvaWQgKmJ1ZmZlciwNCiAJLyogTWFrZSBz dXJlIGFsbCByZWFkcyBhcmUgZG9uZSBiZWZvcmUgd2UgdXBkYXRlIHRoZSByZWFkIGluZGV4IHNp bmNlICovDQogCS8qIHRoZSB3cml0ZXIgbWF5IHN0YXJ0IHdyaXRpbmcgdG8gdGhlIHJlYWQgYXJl YSBvbmNlIHRoZSByZWFkIGluZGV4ICovDQogCS8qaXMgdXBkYXRlZCAqLw0KLQlzbXBfbWIoKTsN CisJbWIoKTsNCiANCiAJLyogVXBkYXRlIHRoZSByZWFkIGluZGV4ICovDQogCWh2X3NldF9uZXh0 X3JlYWRfbG9jYXRpb24oaW5yaW5nX2luZm8sIG5leHRfcmVhZF9sb2NhdGlvbik7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9jcS5jIGIvZHJpdmVycy9pbmZp bmliYW5kL2h3L2VoY2EvZWhjYV9jcS5jDQppbmRleCBkOWIwZWJjLi42ZWViODRkIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2VoY2EvZWhjYV9jcS5jDQorKysgYi9kcml2ZXJz L2luZmluaWJhbmQvaHcvZWhjYS9laGNhX2NxLmMNCkBAIC0yOTYsNiArMjk2LDcgQEAgc3RydWN0 IGliX2NxICplaGNhX2NyZWF0ZV9jcShzdHJ1Y3QgaWJfZGV2aWNlICpkZXZpY2UsIGludCBjcWUs IGludCBjb21wX3ZlY3RvciwNCiAJCQkobXlfY3EtPmdhbHBhcy51c2VyLmZ3X2hhbmRsZSAmIChQ QUdFX1NJWkUgLSAxKSk7DQogCQlpZiAoaWJfY29weV90b191ZGF0YSh1ZGF0YSwgJnJlc3AsIHNp emVvZihyZXNwKSkpIHsNCiAJCQllaGNhX2VycihkZXZpY2UsICJDb3B5IHRvIHVkYXRhIGZhaWxl ZC4iKTsNCisJCQljcSA9IEVSUl9QVFIoLUVGQVVMVCk7DQogCQkJZ290byBjcmVhdGVfY3FfZXhp dDQ7DQogCQl9DQogCX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvaHcvaXBhdGgv aXBhdGhfZGlhZy5jIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2lwYXRoL2lwYXRoX2RpYWcuYw0K aW5kZXggNzE0MjkzYi4uZTJmOWE1MSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9o dy9pcGF0aC9pcGF0aF9kaWFnLmMNCisrKyBiL2RyaXZlcnMvaW5maW5pYmFuZC9ody9pcGF0aC9p cGF0aF9kaWFnLmMNCkBAIC0zMjYsNyArMzI2LDcgQEAgc3RhdGljIHNzaXplX3QgaXBhdGhfZGlh Z3BrdF93cml0ZShzdHJ1Y3QgZmlsZSAqZnAsDQogCQkJCSAgIHNpemVfdCBjb3VudCwgbG9mZl90 ICpvZmYpDQogew0KIAl1MzIgX19pb21lbSAqcGlvYnVmOw0KLQl1MzIgcGxlbiwgY2xlbiwgcGJ1 Zm47DQorCXUzMiBwbGVuLCBwYnVmbiwgbWF4bGVuX3Jlc2VydmU7DQogCXN0cnVjdCBpcGF0aF9k aWFnX3BrdCBvZHA7DQogCXN0cnVjdCBpcGF0aF9kaWFnX3hwa3QgZHA7DQogCXUzMiAqdG1wYnVm ID0gTlVMTDsNCkBAIC0zMzUsNTEgKzMzNSwyOSBAQCBzdGF0aWMgc3NpemVfdCBpcGF0aF9kaWFn cGt0X3dyaXRlKHN0cnVjdCBmaWxlICpmcCwNCiAJdTY0IHZhbDsNCiAJdTMyIGxfc3RhdGUsIGx0 X3N0YXRlOyAvKiBMaW5rU3RhdGUsIExpbmtUcmFpbmluZ1N0YXRlICovDQogDQotCWlmIChjb3Vu dCA8IHNpemVvZihvZHApKSB7DQotCQlyZXQgPSAtRUlOVkFMOw0KLQkJZ290byBiYWlsOw0KLQl9 DQogDQogCWlmIChjb3VudCA9PSBzaXplb2YoZHApKSB7DQogCQlpZiAoY29weV9mcm9tX3VzZXIo JmRwLCBkYXRhLCBzaXplb2YoZHApKSkgew0KIAkJCXJldCA9IC1FRkFVTFQ7DQogCQkJZ290byBi YWlsOw0KIAkJfQ0KLQl9IGVsc2UgaWYgKGNvcHlfZnJvbV91c2VyKCZvZHAsIGRhdGEsIHNpemVv ZihvZHApKSkgew0KLQkJcmV0ID0gLUVGQVVMVDsNCisJfSBlbHNlIGlmIChjb3VudCA9PSBzaXpl b2Yob2RwKSkgew0KKwkJaWYgKGNvcHlfZnJvbV91c2VyKCZvZHAsIGRhdGEsIHNpemVvZihvZHAp KSkgew0KKwkJCXJldCA9IC1FRkFVTFQ7DQorCQkJZ290byBiYWlsOw0KKwkJfQ0KKwl9IGVsc2Ug ew0KKwkJcmV0ID0gLUVJTlZBTDsNCiAJCWdvdG8gYmFpbDsNCiAJfQ0KIA0KLQkvKg0KLQkgKiBE dWUgdG8gcGFkZGluZy9hbGlnbm1lbnQgaXNzdWVzIChsZXNzZW5lZCB3aXRoIG5ldyBzdHJ1Y3Qp DQotCSAqIHRoZSBvbGQgYW5kIG5ldyBzdHJ1Y3RzIGFyZSB0aGUgc2FtZSBsZW5ndGguIFdlIG5l ZWQgdG8NCi0JICogZGlzYW1iaWd1YXRlIHRoZW0sIHdoaWNoIHdlIGNhbiBkbyBiZWNhdXNlIG9k cC5sZW4gaGFzIG5ldmVyDQotCSAqIGJlZW4gbGVzcyB0aGFuIHRoZSB0b3RhbCBvZiBMUkgrQlRI K0RFVEggc28gZmFyLCB3aGlsZQ0KLQkgKiBkcC51bml0IChzYW1lIG9mZnNldCkgdW5pdCBpcyB1 bmxpa2VseSB0byBnZXQgdGhhdCBoaWdoLg0KLQkgKiBTaW1pbGFybHksIGRwLmRhdGEsIHRoZSBw b2ludGVyIHRvIHVzZXIgYXQgdGhlIHNhbWUgb2Zmc2V0DQotCSAqIGFzIG9kcC51bml0LCBpcyBh bG1vc3QgY2VydGFpbmx5IGF0IGxlYXN0IG9uZSAoNTEyYnl0ZSlwYWdlDQotCSAqICJhYm92ZSIg TlVMTC4gVGhlIGlmLWJsb2NrIGJlbG93IGNhbiBiZSBvbWl0dGVkIGlmIGNvbXBhdGliaWxpdHkN Ci0JICogYmV0d2VlbiBhIG5ldyBkcml2ZXIgYW5kIG9sZGVyIGRpYWdub3N0aWMgY29kZSBpcyB1 bmltcG9ydGFudC4NCi0JICogY29tcGF0aWJpbGl0eSB0aGUgb3RoZXIgZGlyZWN0aW9uIChuZXcg ZGlhZ3MsIG9sZCBkcml2ZXIpIGlzDQotCSAqIGhhbmRsZWQgaW4gdGhlIGRpYWdub3N0aWMgY29k ZSwgd2l0aCBhIHdhcm5pbmcuDQotCSAqLw0KLQlpZiAoZHAudW5pdCA+PSAyMCAmJiBkcC5kYXRh IDwgNTEyKSB7DQotCQkvKiB2ZXJ5IHByb2JhYmxlIHZlcnNpb24gbWlzbWF0Y2guIEZpeCBpdCB1 cCAqLw0KLQkJbWVtY3B5KCZvZHAsICZkcCwgc2l6ZW9mKG9kcCkpOw0KLQkJLyogV2UgZ290IGEg bGVnYWN5IGRwLCBjb3B5IGVsZW1lbnRzIHRvIGRwICovDQotCQlkcC51bml0ID0gb2RwLnVuaXQ7 DQotCQlkcC5kYXRhID0gb2RwLmRhdGE7DQotCQlkcC5sZW4gPSBvZHAubGVuOw0KLQkJZHAucGJj X3dkID0gMDsgLyogSW5kaWNhdGUgd2UgbmVlZCB0byBjb21wdXRlIFBCQyB3ZCAqLw0KLQl9DQot DQogCS8qIHNlbmQgY291bnQgbXVzdCBiZSBhbiBleGFjdCBudW1iZXIgb2YgZHdvcmRzICovDQog CWlmIChkcC5sZW4gJiAzKSB7DQogCQlyZXQgPSAtRUlOVkFMOw0KIAkJZ290byBiYWlsOw0KIAl9 DQogDQotCWNsZW4gPSBkcC5sZW4gPj4gMjsNCisJcGxlbiA9IGRwLmxlbiA+PiAyOw0KIA0KIAlk ZCA9IGlwYXRoX2xvb2t1cChkcC51bml0KTsNCiAJaWYgKCFkZCB8fCAhKGRkLT5pcGF0aF9mbGFn cyAmIElQQVRIX1BSRVNFTlQpIHx8DQpAQCAtNDIyLDE2ICs0MDAsMjIgQEAgc3RhdGljIHNzaXpl X3QgaXBhdGhfZGlhZ3BrdF93cml0ZShzdHJ1Y3QgZmlsZSAqZnAsDQogCQlnb3RvIGJhaWw7DQog CX0NCiANCi0JLyogbmVlZCB0b3RhbCBsZW5ndGggYmVmb3JlIGZpcnN0IHdvcmQgd3JpdHRlbiAq Lw0KLQkvKiArMSB3b3JkIGlzIGZvciB0aGUgcXdvcmQgcGFkZGluZyAqLw0KLQlwbGVuID0gc2l6 ZW9mKHUzMikgKyBkcC5sZW47DQotDQotCWlmICgocGxlbiArIDQpID4gZGQtPmlwYXRoX2libWF4 bGVuKSB7DQorCS8qDQorCSAqIG5lZWQgdG90YWwgbGVuZ3RoIGJlZm9yZSBmaXJzdCB3b3JkIHdy aXR0ZW4sIHBsdXMgMiBEd29yZHMuIE9uZSBEd29yZA0KKwkgKiBpcyBmb3IgcGFkZGluZyBzbyB3 ZSBnZXQgdGhlIGZ1bGwgdXNlciBkYXRhIHdoZW4gbm90IGFsaWduZWQgb24NCisJICogYSB3b3Jk IGJvdW5kYXJ5LiBUaGUgb3RoZXIgRHdvcmQgaXMgdG8gbWFrZSBzdXJlIHdlIGhhdmUgcm9vbSBm b3IgdGhlDQorCSAqIElDUkMgd2hpY2ggZ2V0cyB0YWNrZWQgb24gbGF0ZXIuDQorCSAqLw0KKwlt YXhsZW5fcmVzZXJ2ZSA9IDIgKiBzaXplb2YodTMyKTsNCisJaWYgKGRwLmxlbiA+IGRkLT5pcGF0 aF9pYm1heGxlbiAtIG1heGxlbl9yZXNlcnZlKSB7DQogCQlpcGF0aF9kYmcoIlBrdCBsZW4gMHgl eCA+IGlibWF4bGVuICV4XG4iLA0KLQkJCSAgcGxlbiAtIDQsIGRkLT5pcGF0aF9pYm1heGxlbik7 DQorCQkJICBkcC5sZW4sIGRkLT5pcGF0aF9pYm1heGxlbik7DQogCQlyZXQgPSAtRUlOVkFMOw0K LQkJZ290byBiYWlsOwkvKiBiZWZvcmUgd3JpdGluZyBwYmMgKi8NCisJCWdvdG8gYmFpbDsNCiAJ fQ0KKw0KKwlwbGVuID0gc2l6ZW9mKHUzMikgKyBkcC5sZW47DQorDQogCXRtcGJ1ZiA9IHZtYWxs b2MocGxlbik7DQogCWlmICghdG1wYnVmKSB7DQogCQlkZXZfaW5mbygmZGQtPnBjaWRldi0+ZGV2 LCAiVW5hYmxlIHRvIGFsbG9jYXRlIHRtcCBidWZmZXIsICINCkBAIC00NzMsMTEgKzQ1NywxMSBA QCBzdGF0aWMgc3NpemVfdCBpcGF0aF9kaWFncGt0X3dyaXRlKHN0cnVjdCBmaWxlICpmcCwNCiAJ ICovDQogCWlmIChkZC0+aXBhdGhfZmxhZ3MgJiBJUEFUSF9QSU9fRkxVU0hfV0MpIHsNCiAJCWlw YXRoX2ZsdXNoX3djKCk7DQotCQlfX2lvd3JpdGUzMl9jb3B5KHBpb2J1ZiArIDIsIHRtcGJ1Ziwg Y2xlbiAtIDEpOw0KKwkJX19pb3dyaXRlMzJfY29weShwaW9idWYgKyAyLCB0bXBidWYsIHBsZW4g LSAxKTsNCiAJCWlwYXRoX2ZsdXNoX3djKCk7DQotCQlfX3Jhd193cml0ZWwodG1wYnVmW2NsZW4g LSAxXSwgcGlvYnVmICsgY2xlbiArIDEpOw0KKwkJX19yYXdfd3JpdGVsKHRtcGJ1ZltwbGVuIC0g MV0sIHBpb2J1ZiArIHBsZW4gKyAxKTsNCiAJfSBlbHNlDQotCQlfX2lvd3JpdGUzMl9jb3B5KHBp b2J1ZiArIDIsIHRtcGJ1ZiwgY2xlbik7DQorCQlfX2lvd3JpdGUzMl9jb3B5KHBpb2J1ZiArIDIs IHRtcGJ1ZiwgcGxlbik7DQogDQogCWlwYXRoX2ZsdXNoX3djKCk7DQogDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pbmZpbmliYW5kL2h3L210aGNhL210aGNhX3Byb3ZpZGVyLmMgYi9kcml2ZXJzL2lu ZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYw0KaW5kZXggNWI3MWQ0My4uNDJkZGUw NiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvaW5maW5pYmFuZC9ody9tdGhjYS9tdGhjYV9wcm92aWRl ci5jDQorKysgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbXRoY2EvbXRoY2FfcHJvdmlkZXIuYw0K QEAgLTY5NSw2ICs2OTUsNyBAQCBzdGF0aWMgc3RydWN0IGliX2NxICptdGhjYV9jcmVhdGVfY3Eo c3RydWN0IGliX2RldmljZSAqaWJkZXYsIGludCBlbnRyaWVzLA0KIA0KIAlpZiAoY29udGV4dCAm JiBpYl9jb3B5X3RvX3VkYXRhKHVkYXRhLCAmY3EtPmNxbiwgc2l6ZW9mIChfX3UzMikpKSB7DQog CQltdGhjYV9mcmVlX2NxKHRvX21kZXYoaWJkZXYpLCBjcSk7DQorCQllcnIgPSAtRUZBVUxUOw0K IAkJZ290byBlcnJfZnJlZTsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvaW5maW5pYmFu ZC9ody9uZXMvbmVzX3ZlcmJzLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbmVzL25lc192ZXJi cy5jDQppbmRleCBiMDQ3MWI0Li4zMzBlYjZlIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9pbmZpbmli YW5kL2h3L25lcy9uZXNfdmVyYnMuYw0KKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L25lcy9u ZXNfdmVyYnMuYw0KQEAgLTExODMsNyArMTE4Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgaWJfcXAgKm5l c19jcmVhdGVfcXAoc3RydWN0IGliX3BkICppYnBkLA0KIAkJCQkJbmVzX2ZyZWVfcmVzb3VyY2Uo bmVzYWRhcHRlciwgbmVzYWRhcHRlci0+YWxsb2NhdGVkX3FwcywgcXBfbnVtKTsNCiAJCQkJCWtm cmVlKG5lc3FwLT5hbGxvY2F0ZWRfYnVmZmVyKTsNCiAJCQkJCW5lc19kZWJ1ZyhORVNfREJHX1FQ LCAiaWJfY29weV9mcm9tX3VkYXRhKCkgRmFpbGVkIFxuIik7DQotCQkJCQlyZXR1cm4gTlVMTDsN CisJCQkJCXJldHVybiBFUlJfUFRSKC1FRkFVTFQpOw0KIAkJCQl9DQogCQkJCWlmIChyZXEudXNl cl93cWVfYnVmZmVycykgew0KIAkJCQkJdmlydF93cXMgPSAxOw0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvaXNkbi9pc2RubG9vcC9pc2RubG9vcC5jIGIvZHJpdmVycy9pc2RuL2lzZG5sb29wL2lzZG5s b29wLmMNCmluZGV4IDRkZjgwZmIuLjc1Y2E1ZDIgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lzZG4v aXNkbmxvb3AvaXNkbmxvb3AuYw0KKysrIGIvZHJpdmVycy9pc2RuL2lzZG5sb29wL2lzZG5sb29w LmMNCkBAIC01MTgsOSArNTE4LDkgQEAgc3RhdGljIGlzZG5sb29wX3N0YXQgaXNkbmxvb3BfY21k X3RhYmxlW10gPQ0KIHN0YXRpYyB2b2lkDQogaXNkbmxvb3BfZmFrZV9lcnIoaXNkbmxvb3BfY2Fy ZCAqIGNhcmQpDQogew0KLQljaGFyIGJ1Zls2MF07DQorCWNoYXIgYnVmWzY0XTsNCiANCi0Jc3By aW50ZihidWYsICJFJXMiLCBjYXJkLT5vbXNnKTsNCisJc25wcmludGYoYnVmLCBzaXplb2YoYnVm KSwgIkUlcyIsIGNhcmQtPm9tc2cpOw0KIAlpc2RubG9vcF9mYWtlKGNhcmQsIGJ1ZiwgLTEpOw0K IAlpc2RubG9vcF9mYWtlKGNhcmQsICJOQUsiLCAtMSk7DQogfQ0KQEAgLTkwMyw2ICs5MDMsOCBA QCBpc2RubG9vcF9wYXJzZV9jbWQoaXNkbmxvb3BfY2FyZCAqIGNhcmQpDQogCQljYXNlIDc6DQog CQkJLyogMHg7RUFaICovDQogCQkJcCArPSAzOw0KKwkJCWlmIChzdHJsZW4ocCkgPj0gc2l6ZW9m KGNhcmQtPmVhemxpc3RbMF0pKQ0KKwkJCQlicmVhazsNCiAJCQlzdHJjcHkoY2FyZC0+ZWF6bGlz dFtjaCAtIDFdLCBwKTsNCiAJCQlicmVhazsNCiAJCWNhc2UgODoNCkBAIC0xMDcwLDYgKzEwNzIs MTIgQEAgaXNkbmxvb3Bfc3RhcnQoaXNkbmxvb3BfY2FyZCAqIGNhcmQsIGlzZG5sb29wX3NkZWYg KiBzZGVmcCkNCiAJCXJldHVybiAtRUJVU1k7DQogCWlmIChjb3B5X2Zyb21fdXNlcigoY2hhciAq KSAmc2RlZiwgKGNoYXIgKikgc2RlZnAsIHNpemVvZihzZGVmKSkpDQogCQlyZXR1cm4gLUVGQVVM VDsNCisNCisJZm9yIChpID0gMDsgaSA8IDM7IGkrKykgew0KKwkJaWYgKCFtZW1jaHIoc2RlZi5u dW1baV0sIDAsIHNpemVvZihzZGVmLm51bVtpXSkpKQ0KKwkJCXJldHVybiAtRUlOVkFMOw0KKwl9 DQorDQogCXNwaW5fbG9ja19pcnFzYXZlKCZjYXJkLT5pc2RubG9vcF9sb2NrLCBmbGFncyk7DQog CXN3aXRjaCAoc2RlZi5wdHlwZSkgew0KIAkJY2FzZSBJU0ROX1BUWVBFX0VVUk86DQpAQCAtMTEy Nyw3ICsxMTM1LDcgQEAgaXNkbmxvb3BfY29tbWFuZChpc2RuX2N0cmwgKiBjLCBpc2RubG9vcF9j YXJkICogY2FyZCkNCiB7DQogCXVsb25nIGE7DQogCWludCBpOw0KLQljaGFyIGNidWZbNjBdOw0K KwljaGFyIGNidWZbODBdOw0KIAlpc2RuX2N0cmwgY21kOw0KIAlpc2RubG9vcF9jZGVmIGNkZWY7 DQogDQpAQCAtMTE5Miw3ICsxMjAwLDYgQEAgaXNkbmxvb3BfY29tbWFuZChpc2RuX2N0cmwgKiBj LCBpc2RubG9vcF9jYXJkICogY2FyZCkNCiAJCQkJYnJlYWs7DQogCQkJaWYgKChjLT5hcmcgJiAy NTUpIDwgSVNETkxPT1BfQkNIKSB7DQogCQkJCWNoYXIgKnA7DQotCQkJCWNoYXIgZGlhbFs1MF07 DQogCQkJCWNoYXIgZGNvZGVbNF07DQogDQogCQkJCWEgPSBjLT5hcmc7DQpAQCAtMTIwNCwxMCAr MTIxMSwxMCBAQCBpc2RubG9vcF9jb21tYW5kKGlzZG5fY3RybCAqIGMsIGlzZG5sb29wX2NhcmQg KiBjYXJkKQ0KIAkJCQl9IGVsc2UNCiAJCQkJCS8qIE5vcm1hbCBEaWFsICovDQogCQkJCQlzdHJj cHkoZGNvZGUsICJDQUwiKTsNCi0JCQkJc3RyY3B5KGRpYWwsIHApOw0KLQkJCQlzcHJpbnRmKGNi dWYsICIlMDJkO0Qlc19SJXMsJTAyZCwlMDJkLCVzXG4iLCAoaW50KSAoYSArIDEpLA0KLQkJCQkJ ZGNvZGUsIGRpYWwsIGMtPnBhcm0uc2V0dXAuc2kxLA0KLQkJCQljLT5wYXJtLnNldHVwLnNpMiwg Yy0+cGFybS5zZXR1cC5lYXptc24pOw0KKwkJCQlzbnByaW50ZihjYnVmLCBzaXplb2YoY2J1Ziks DQorCQkJCQkgIiUwMmQ7RCVzX1IlcywlMDJkLCUwMmQsJXNcbiIsIChpbnQpIChhICsgMSksDQor CQkJCQkgZGNvZGUsIHAsIGMtPnBhcm0uc2V0dXAuc2kxLA0KKwkJCQkJIGMtPnBhcm0uc2V0dXAu c2kyLCBjLT5wYXJtLnNldHVwLmVhem1zbik7DQogCQkJCWkgPSBpc2RubG9vcF93cml0ZWNtZChj YnVmLCBzdHJsZW4oY2J1ZiksIDAsIGNhcmQpOw0KIAkJCX0NCiAJCQlicmVhazsNCmRpZmYgLS1n aXQgYS9kcml2ZXJzL21kL2RtLXRoaW4uYyBiL2RyaXZlcnMvbWQvZG0tdGhpbi5jDQppbmRleCAy YzlkZDJjLi44MGY4YmQ1IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZC9kbS10aGluLmMNCisrKyBi L2RyaXZlcnMvbWQvZG0tdGhpbi5jDQpAQCAtMTI5OCw5ICsxMjk4LDkgQEAgc3RhdGljIHZvaWQg cHJvY2Vzc19kZWZlcnJlZF9iaW9zKHN0cnVjdCBwb29sICpwb29sKQ0KIAkJICovDQogCQlpZiAo ZW5zdXJlX25leHRfbWFwcGluZyhwb29sKSkgew0KIAkJCXNwaW5fbG9ja19pcnFzYXZlKCZwb29s LT5sb2NrLCBmbGFncyk7DQorCQkJYmlvX2xpc3RfYWRkKCZwb29sLT5kZWZlcnJlZF9iaW9zLCBi aW8pOw0KIAkJCWJpb19saXN0X21lcmdlKCZwb29sLT5kZWZlcnJlZF9iaW9zLCAmYmlvcyk7DQog CQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcG9vbC0+bG9jaywgZmxhZ3MpOw0KLQ0KIAkJCWJy ZWFrOw0KIAkJfQ0KIAkJcHJvY2Vzc19iaW8odGMsIGJpbyk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS92aWRlby9nc3BjYS9zbjljMjB4LmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2dzcGNh L3NuOWMyMHguYw0KaW5kZXggODZlMDdhMS4uNTA5ZTIwMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bWVkaWEvdmlkZW8vZ3NwY2Evc245YzIweC5jDQorKysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2dz cGNhL3NuOWMyMHguYw0KQEAgLTI1MjEsNiArMjUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dXNiX2RldmljZV9pZCBkZXZpY2VfdGFibGVbXSA9IHsNCiAJe1VTQl9ERVZJQ0UoMHgwNDVlLCAw eDAwZjQpLCBTTjlDMjBYKE9WOTY1MCwgMHgzMCwgMCl9LA0KIAl7VVNCX0RFVklDRSgweDE0NWYs IDB4MDEzZCksIFNOOUMyMFgoT1Y3NjYwLCAweDIxLCAwKX0sDQogCXtVU0JfREVWSUNFKDB4MDQ1 OCwgMHg3MDI5KSwgU045QzIwWChIVjcxMzFSLCAweDExLCAwKX0sDQorCXtVU0JfREVWSUNFKDB4 MDQ1OCwgMHg3MDQ1KSwgU045QzIwWChNVDlNMTEyLCAweDVkLCBMRURfUkVWRVJTRSl9LA0KIAl7 VVNCX0RFVklDRSgweDA0NTgsIDB4NzA0YSksIFNOOUMyMFgoTVQ5TTExMiwgMHg1ZCwgMCl9LA0K IAl7VVNCX0RFVklDRSgweDA0NTgsIDB4NzA0YyksIFNOOUMyMFgoTVQ5TTExMiwgMHg1ZCwgMCl9 LA0KIAl7VVNCX0RFVklDRSgweGExNjgsIDB4MDYxMCksIFNOOUMyMFgoSFY3MTMxUiwgMHgxMSwg MCl9LA0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y192aWRlby5jIGIv ZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3ZpZGVvLmMNCmluZGV4IGIwMTVlOGUuLmFmNWMw NDAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91dmNfdmlkZW8uYw0KKysr IGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX3ZpZGVvLmMNCkBAIC0xMjY3LDcgKzEyNjcs MjUgQEAgaW50IHV2Y192aWRlb19lbmFibGUoc3RydWN0IHV2Y19zdHJlYW1pbmcgKnN0cmVhbSwg aW50IGVuYWJsZSkNCiANCiAJaWYgKCFlbmFibGUpIHsNCiAJCXV2Y191bmluaXRfdmlkZW8oc3Ry ZWFtLCAxKTsNCi0JCXVzYl9zZXRfaW50ZXJmYWNlKHN0cmVhbS0+ZGV2LT51ZGV2LCBzdHJlYW0t PmludGZudW0sIDApOw0KKwkJaWYgKHN0cmVhbS0+aW50Zi0+bnVtX2FsdHNldHRpbmcgPiAxKSB7 DQorCQkJdXNiX3NldF9pbnRlcmZhY2Uoc3RyZWFtLT5kZXYtPnVkZXYsDQorCQkJCQkgIHN0cmVh bS0+aW50Zm51bSwgMCk7DQorCQl9IGVsc2Ugew0KKwkJCS8qIFVWQyBkb2Vzbid0IHNwZWNpZnkg aG93IHRvIGluZm9ybSBhIGJ1bGstYmFzZWQgZGV2aWNlDQorCQkJICogd2hlbiB0aGUgdmlkZW8g c3RyZWFtIGlzIHN0b3BwZWQuIFdpbmRvd3Mgc2VuZHMgYQ0KKwkJCSAqIENMRUFSX0ZFQVRVUkUo SEFMVCkgcmVxdWVzdCB0byB0aGUgdmlkZW8gc3RyZWFtaW5nDQorCQkJICogYnVsayBlbmRwb2lu dCwgbWltaWMgdGhlIHNhbWUgYmVoYXZpb3VyLg0KKwkJCSAqLw0KKwkJCXVuc2lnbmVkIGludCBl cG51bSA9IHN0cmVhbS0+aGVhZGVyLmJFbmRwb2ludEFkZHJlc3MNCisJCQkJCSAgICYgVVNCX0VO RFBPSU5UX05VTUJFUl9NQVNLOw0KKwkJCXVuc2lnbmVkIGludCBkaXIgPSBzdHJlYW0tPmhlYWRl ci5iRW5kcG9pbnRBZGRyZXNzDQorCQkJCQkgJiBVU0JfRU5EUE9JTlRfRElSX01BU0s7DQorCQkJ dW5zaWduZWQgaW50IHBpcGU7DQorDQorCQkJcGlwZSA9IHVzYl9zbmRidWxrcGlwZShzdHJlYW0t PmRldi0+dWRldiwgZXBudW0pIHwgZGlyOw0KKwkJCXVzYl9jbGVhcl9oYWx0KHN0cmVhbS0+ZGV2 LT51ZGV2LCBwaXBlKTsNCisJCX0NCisNCiAJCXV2Y19xdWV1ZV9lbmFibGUoJnN0cmVhbS0+cXVl dWUsIDApOw0KIAkJcmV0dXJuIDA7DQogCX0NCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC84OHBt ODYweC1pMmMuYyBiL2RyaXZlcnMvbWZkLzg4cG04NjB4LWkyYy5jDQppbmRleCBlMDE3ZGM4Li5m MDM1ZGQzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZmQvODhwbTg2MHgtaTJjLmMNCisrKyBiL2Ry aXZlcnMvbWZkLzg4cG04NjB4LWkyYy5jDQpAQCAtMjkwLDYgKzI5MCwxMiBAQCBzdGF0aWMgaW50 IF9fZGV2aW5pdCBwbTg2MHhfcHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwNCiAJCWNo aXAtPmNvbXBhbmlvbl9hZGRyID0gcGRhdGEtPmNvbXBhbmlvbl9hZGRyOw0KIAkJY2hpcC0+Y29t cGFuaW9uID0gaTJjX25ld19kdW1teShjaGlwLT5jbGllbnQtPmFkYXB0ZXIsDQogCQkJCQkJY2hp cC0+Y29tcGFuaW9uX2FkZHIpOw0KKwkJaWYgKCFjaGlwLT5jb21wYW5pb24pIHsNCisJCQlkZXZf ZXJyKCZjbGllbnQtPmRldiwNCisJCQkJIkZhaWxlZCB0byBhbGxvY2F0ZSBJMkMgY29tcGFuaW9u IGRldmljZVxuIik7DQorCQkJa2ZyZWUoY2hpcCk7DQorCQkJcmV0dXJuIC1FTk9ERVY7DQorCQl9 DQogCQlpMmNfc2V0X2NsaWVudGRhdGEoY2hpcC0+Y29tcGFuaW9uLCBjaGlwKTsNCiAJfQ0KIA0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL0tjb25maWcgYi9kcml2ZXJzL21mZC9LY29uZmlnDQpp bmRleCBmMTM5MWMyLi5iMmI2OTE2IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZmQvS2NvbmZpZw0K KysrIGIvZHJpdmVycy9tZmQvS2NvbmZpZw0KQEAgLTc3Miw5ICs3NzIsNiBAQCBjb25maWcgTUZE X0lOVEVMX01TSUMNCiAJICBQYXNzYWdlKSBjaGlwLiBUaGlzIGNoaXAgZW1iZWRzIGF1ZGlvLCBi YXR0ZXJ5LCBHUElPLCBldGMuDQogCSAgZGV2aWNlcyB1c2VkIGluIEludGVsIE1lZGZpZWxkIHBs YXRmb3Jtcy4NCiANCi1lbmRtZW51DQotZW5kaWYNCi0NCiBtZW51ICJNdWx0aW1lZGlhIENhcGFi aWxpdGllcyBQb3J0IGRyaXZlcnMiDQogCWRlcGVuZHMgb24gQVJDSF9TQTExMDANCiANCkBAIC03 OTcsMyArNzk0LDYgQEAgY29uZmlnIE1DUF9VQ0IxMjAwX1RTDQogCWRlcGVuZHMgb24gTUNQX1VD QjEyMDAgJiYgSU5QVVQNCiANCiBlbmRtZW51DQorDQorZW5kbWVudQ0KK2VuZGlmDQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZmQvbWF4ODkyNS1pMmMuYyBiL2RyaXZlcnMvbWZkL21heDg5MjUtaTJj LmMNCmluZGV4IDAyMTkxMTUuLjkwYjQ1MGMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL21mZC9tYXg4 OTI1LWkyYy5jDQorKysgYi9kcml2ZXJzL21mZC9tYXg4OTI1LWkyYy5jDQpAQCAtMTU2LDkgKzE1 NiwxOCBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBtYXg4OTI1X3Byb2JlKHN0cnVjdCBpMmNfY2xp ZW50ICpjbGllbnQsDQogCW11dGV4X2luaXQoJmNoaXAtPmlvX2xvY2spOw0KIA0KIAljaGlwLT5y dGMgPSBpMmNfbmV3X2R1bW15KGNoaXAtPmkyYy0+YWRhcHRlciwgUlRDX0kyQ19BRERSKTsNCisJ aWYgKCFjaGlwLT5ydGMpIHsNCisJCWRldl9lcnIoY2hpcC0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9j YXRlIEkyQyBkZXZpY2UgZm9yIFJUQ1xuIik7DQorCQlyZXR1cm4gLUVOT0RFVjsNCisJfQ0KIAlp MmNfc2V0X2NsaWVudGRhdGEoY2hpcC0+cnRjLCBjaGlwKTsNCiANCiAJY2hpcC0+YWRjID0gaTJj X25ld19kdW1teShjaGlwLT5pMmMtPmFkYXB0ZXIsIEFEQ19JMkNfQUREUik7DQorCWlmICghY2hp cC0+YWRjKSB7DQorCQlkZXZfZXJyKGNoaXAtPmRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBJMkMg ZGV2aWNlIGZvciBBRENcbiIpOw0KKwkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKGNoaXAtPnJ0Yyk7 DQorCQlyZXR1cm4gLUVOT0RFVjsNCisJfQ0KIAlpMmNfc2V0X2NsaWVudGRhdGEoY2hpcC0+YWRj LCBjaGlwKTsNCiANCiAJbWF4ODkyNV9kZXZpY2VfaW5pdChjaGlwLCBwZGF0YSk7DQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9tZmQvbWF4ODk5Ny5jIGIvZHJpdmVycy9tZmQvbWF4ODk5Ny5jDQppbmRl eCA1YmU1M2FlLi4xOTI2YTU0IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9tZmQvbWF4ODk5Ny5jDQor KysgYi9kcml2ZXJzL21mZC9tYXg4OTk3LmMNCkBAIC0xNDgsMTAgKzE0OCwyNiBAQCBzdGF0aWMg aW50IG1heDg5OTdfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMsDQogCW11dGV4X2lu aXQoJm1heDg5OTctPmlvbG9jayk7DQogDQogCW1heDg5OTctPnJ0YyA9IGkyY19uZXdfZHVtbXko aTJjLT5hZGFwdGVyLCBJMkNfQUREUl9SVEMpOw0KKwlpZiAoIW1heDg5OTctPnJ0Yykgew0KKwkJ ZGV2X2VycihtYXg4OTk3LT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGRldmljZSBmb3Ig UlRDXG4iKTsNCisJCXJldHVybiAtRU5PREVWOw0KKwl9DQogCWkyY19zZXRfY2xpZW50ZGF0YSht YXg4OTk3LT5ydGMsIG1heDg5OTcpOw0KKw0KIAltYXg4OTk3LT5oYXB0aWMgPSBpMmNfbmV3X2R1 bW15KGkyYy0+YWRhcHRlciwgSTJDX0FERFJfSEFQVElDKTsNCisJaWYgKCFtYXg4OTk3LT5oYXB0 aWMpIHsNCisJCWRldl9lcnIobWF4ODk5Ny0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIEkyQyBk ZXZpY2UgZm9yIEhhcHRpY1xuIik7DQorCQlyZXQgPSAtRU5PREVWOw0KKwkJZ290byBlcnJfaTJj X2hhcHRpYzsNCisJfQ0KIAlpMmNfc2V0X2NsaWVudGRhdGEobWF4ODk5Ny0+aGFwdGljLCBtYXg4 OTk3KTsNCisNCiAJbWF4ODk5Ny0+bXVpYyA9IGkyY19uZXdfZHVtbXkoaTJjLT5hZGFwdGVyLCBJ MkNfQUREUl9NVUlDKTsNCisJaWYgKCFtYXg4OTk3LT5tdWljKSB7DQorCQlkZXZfZXJyKG1heDg5 OTctPmRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSBJMkMgZGV2aWNlIGZvciBNVUlDXG4iKTsNCisJ CXJldCA9IC1FTk9ERVY7DQorCQlnb3RvIGVycl9pMmNfbXVpYzsNCisJfQ0KIAlpMmNfc2V0X2Ns aWVudGRhdGEobWF4ODk5Ny0+bXVpYywgbWF4ODk5Nyk7DQogDQogCXBtX3J1bnRpbWVfc2V0X2Fj dGl2ZShtYXg4OTk3LT5kZXYpOw0KQEAgLTE3OCw3ICsxOTQsOSBAQCBzdGF0aWMgaW50IG1heDg5 OTdfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMsDQogZXJyX21mZDoNCiAJbWZkX3Jl bW92ZV9kZXZpY2VzKG1heDg5OTctPmRldik7DQogCWkyY191bnJlZ2lzdGVyX2RldmljZShtYXg4 OTk3LT5tdWljKTsNCitlcnJfaTJjX211aWM6DQogCWkyY191bnJlZ2lzdGVyX2RldmljZShtYXg4 OTk3LT5oYXB0aWMpOw0KK2Vycl9pMmNfaGFwdGljOg0KIAlpMmNfdW5yZWdpc3Rlcl9kZXZpY2Uo bWF4ODk5Ny0+cnRjKTsNCiBlcnI6DQogCWtmcmVlKG1heDg5OTcpOw0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWZkL21heDg5OTguYyBiL2RyaXZlcnMvbWZkL21heDg5OTguYw0KaW5kZXggZGU0MDk2 YS4uMmZhNmEyOCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWZkL21heDg5OTguYw0KKysrIGIvZHJp dmVycy9tZmQvbWF4ODk5OC5jDQpAQCAtMTUyLDYgKzE1MiwxMCBAQCBzdGF0aWMgaW50IG1heDg5 OThfaTJjX3Byb2JlKHN0cnVjdCBpMmNfY2xpZW50ICppMmMsDQogCW11dGV4X2luaXQoJm1heDg5 OTgtPmlvbG9jayk7DQogDQogCW1heDg5OTgtPnJ0YyA9IGkyY19uZXdfZHVtbXkoaTJjLT5hZGFw dGVyLCBSVENfSTJDX0FERFIpOw0KKwlpZiAoIW1heDg5OTgtPnJ0Yykgew0KKwkJZGV2X2Vycigm aTJjLT5kZXYsICJGYWlsZWQgdG8gYWxsb2NhdGUgSTJDIGRldmljZSBmb3IgUlRDXG4iKTsNCisJ CXJldHVybiAtRU5PREVWOw0KKwl9DQogCWkyY19zZXRfY2xpZW50ZGF0YShtYXg4OTk4LT5ydGMs IG1heDg5OTgpOw0KIA0KIAltYXg4OTk4X2lycV9pbml0KG1heDg5OTgpOw0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay94bWl0LmMgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9hdGgvYXRoOWsveG1pdC5jDQppbmRleCAyZTg4YWYxLi5hMGJhNWFjIDEwMDY0NA0KLS0t IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYw0KKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvYXRoL2F0aDlrL3htaXQuYw0KQEAgLTEzOTAsNyArMTM5MCw3IEBAIGludCBh dGhfY2FicV91cGRhdGUoc3RydWN0IGF0aF9zb2Z0YyAqc2MpDQogCWVsc2UgaWYgKHNjLT5jb25m aWcuY2FicVJlYWR5dGltZSA+IEFUSDlLX1JFQURZX1RJTUVfSElfQk9VTkQpDQogCQlzYy0+Y29u ZmlnLmNhYnFSZWFkeXRpbWUgPSBBVEg5S19SRUFEWV9USU1FX0hJX0JPVU5EOw0KIA0KLQlxaS50 cWlfcmVhZHlUaW1lID0gKGN1cl9jb25mLT5iZWFjb25faW50ZXJ2YWwgKg0KKwlxaS50cWlfcmVh ZHlUaW1lID0gKFRVX1RPX1VTRUMoY3VyX2NvbmYtPmJlYWNvbl9pbnRlcnZhbCkgKg0KIAkJCSAg ICBzYy0+Y29uZmlnLmNhYnFSZWFkeXRpbWUpIC8gMTAwOw0KIAlhdGhfdHhxX3VwZGF0ZShzYywg cW51bSwgJnFpKTsNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvcGh5 X24uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9waHlfbi5jDQppbmRleCBiMTdkOWI2Li4w NDkwYzdjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL3BoeV9uLmMNCisr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9waHlfbi5jDQpAQCAtMzkzNywyMiArMzkzNywy MiBAQCBzdGF0aWMgdm9pZCBiNDNfbnBoeV9jaGFubmVsX3NldHVwKHN0cnVjdCBiNDNfd2xkZXYg KmRldiwNCiAJc3RydWN0IGI0M19waHlfbiAqbnBoeSA9IGRldi0+cGh5Lm47DQogDQogCXUxNiBv bGRfYmFuZF81Z2h6Ow0KLQl1MzIgdG1wMzI7DQorCXUxNiB0bXAxNjsNCiANCiAJb2xkX2JhbmRf NWdoeiA9DQogCQliNDNfcGh5X3JlYWQoZGV2LCBCNDNfTlBIWV9CQU5EQ1RMKSAmIEI0M19OUEhZ X0JBTkRDVExfNUdIWjsNCiAJaWYgKG5ld19jaGFubmVsLT5iYW5kID09IElFRUU4MDIxMV9CQU5E XzVHSFogJiYgIW9sZF9iYW5kXzVnaHopIHsNCi0JCXRtcDMyID0gYjQzX3JlYWQzMihkZXYsIEI0 M19NTUlPX1BTTV9QSFlfSERSKTsNCi0JCWI0M193cml0ZTMyKGRldiwgQjQzX01NSU9fUFNNX1BI WV9IRFIsIHRtcDMyIHwgNCk7DQorCQl0bXAxNiA9IGI0M19yZWFkMTYoZGV2LCBCNDNfTU1JT19Q U01fUEhZX0hEUik7DQorCQliNDNfd3JpdGUxNihkZXYsIEI0M19NTUlPX1BTTV9QSFlfSERSLCB0 bXAxNiB8IDQpOw0KIAkJYjQzX3BoeV9zZXQoZGV2LCBCNDNfUEhZX0JfQkJDRkcsIDB4QzAwMCk7 DQotCQliNDNfd3JpdGUzMihkZXYsIEI0M19NTUlPX1BTTV9QSFlfSERSLCB0bXAzMik7DQorCQli NDNfd3JpdGUxNihkZXYsIEI0M19NTUlPX1BTTV9QSFlfSERSLCB0bXAxNik7DQogCQliNDNfcGh5 X3NldChkZXYsIEI0M19OUEhZX0JBTkRDVEwsIEI0M19OUEhZX0JBTkRDVExfNUdIWik7DQogCX0g ZWxzZSBpZiAobmV3X2NoYW5uZWwtPmJhbmQgPT0gSUVFRTgwMjExX0JBTkRfMkdIWiAmJiBvbGRf YmFuZF81Z2h6KSB7DQogCQliNDNfcGh5X21hc2soZGV2LCBCNDNfTlBIWV9CQU5EQ1RMLCB+QjQz X05QSFlfQkFORENUTF81R0haKTsNCi0JCXRtcDMyID0gYjQzX3JlYWQzMihkZXYsIEI0M19NTUlP X1BTTV9QSFlfSERSKTsNCi0JCWI0M193cml0ZTMyKGRldiwgQjQzX01NSU9fUFNNX1BIWV9IRFIs IHRtcDMyIHwgNCk7DQorCQl0bXAxNiA9IGI0M19yZWFkMTYoZGV2LCBCNDNfTU1JT19QU01fUEhZ X0hEUik7DQorCQliNDNfd3JpdGUxNihkZXYsIEI0M19NTUlPX1BTTV9QSFlfSERSLCB0bXAxNiB8 IDQpOw0KIAkJYjQzX3BoeV9tYXNrKGRldiwgQjQzX1BIWV9CX0JCQ0ZHLCAweDNGRkYpOw0KLQkJ YjQzX3dyaXRlMzIoZGV2LCBCNDNfTU1JT19QU01fUEhZX0hEUiwgdG1wMzIpOw0KKwkJYjQzX3dy aXRlMTYoZGV2LCBCNDNfTU1JT19QU01fUEhZX0hEUiwgdG1wMTYpOw0KIAl9DQogDQogCWI0M19j aGFudGFiX3BoeV91cGxvYWQoZGV2LCBlKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9pd2x3aWZpL2l3bC1hZ24uYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3bHdpZmkvaXds LWFnbi5jDQppbmRleCA5NGQzNWFkLi40YTM2OTczIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQv d2lyZWxlc3MvaXdsd2lmaS9pd2wtYWduLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2l3 bHdpZmkvaXdsLWFnbi5jDQpAQCAtMjQ2LDEzICsyNDYsMTcgQEAgc3RhdGljIHZvaWQgaXdsX2Jn X2J0X3J1bnRpbWVfY29uZmlnKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCiAJc3RydWN0IGl3 bF9wcml2ICpwcml2ID0NCiAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgaXdsX3ByaXYsIGJ0 X3J1bnRpbWVfY29uZmlnKTsNCiANCisJbXV0ZXhfbG9jaygmcHJpdi0+c2hyZC0+bXV0ZXgpOw0K IAlpZiAodGVzdF9iaXQoU1RBVFVTX0VYSVRfUEVORElORywgJnByaXYtPnNocmQtPnN0YXR1cykp DQotCQlyZXR1cm47DQorCQlnb3RvIG91dDsNCiANCiAJLyogZG9udCBzZW5kIGhvc3QgY29tbWFu ZCBpZiByZi1raWxsIGlzIG9uICovDQogCWlmICghaXdsX2lzX3JlYWR5X3JmKHByaXYtPnNocmQp KQ0KLQkJcmV0dXJuOw0KKwkJZ290byBvdXQ7DQorDQogCWl3bGFnbl9zZW5kX2FkdmFuY2VfYnRf Y29uZmlnKHByaXYpOw0KK291dDoNCisJbXV0ZXhfdW5sb2NrKCZwcml2LT5zaHJkLT5tdXRleCk7 DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGl3bF9iZ19idF9mdWxsX2NvbmN1cnJlbmN5KHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydGx3 aWZpL3J0bDgxOTJzZS9ody5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnRsd2lmaS9ydGw4MTky c2UvaHcuYw0KaW5kZXggYzQ3NDQ4Ni4uNTAzYzE2MCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3J0bHdpZmkvcnRsODE5MnNlL2h3LmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3J0bHdpZmkvcnRsODE5MnNlL2h3LmMNCkBAIC05MjQsNyArOTI0LDcgQEAgaW50IHJ0bDky c2VfaHdfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiAJc3RydWN0IHJ0bF9wY2kgKnJ0 bHBjaSA9IHJ0bF9wY2lkZXYocnRsX3BjaXByaXYoaHcpKTsNCiAJc3RydWN0IHJ0bF9lZnVzZSAq cnRsZWZ1c2UgPSBydGxfZWZ1c2UocnRsX3ByaXYoaHcpKTsNCiAJdTggdG1wX2J5dGUgPSAwOw0K LQ0KKwl1bnNpZ25lZCBsb25nIGZsYWdzOw0KIAlib29sIHJ0c3RhdHVzID0gdHJ1ZTsNCiAJdTgg dG1wX3UxYjsNCiAJaW50IGVyciA9IGZhbHNlOw0KQEAgLTkzNiw2ICs5MzYsMTYgQEAgaW50IHJ0 bDkyc2VfaHdfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiANCiAJcnRscGNpLT5iZWlu Z19pbml0X2FkYXB0ZXIgPSB0cnVlOw0KIA0KKwkvKiBBcyB0aGlzIGZ1bmN0aW9uIGNhbiB0YWtl IGEgdmVyeSBsb25nIHRpbWUgKHVwIHRvIDM1MCBtcykNCisJICogYW5kIGNhbiBiZSBjYWxsZWQg d2l0aCBpcnFzIGRpc2FibGVkLCByZWVuYWJsZSB0aGUgaXJxcw0KKwkgKiB0byBsZXQgdGhlIG90 aGVyIGRldmljZXMgY29udGludWUgYmVpbmcgc2VydmljZWQuDQorCSAqDQorCSAqIEl0IGlzIHNh ZmUgZG9pbmcgc28gc2luY2Ugb3VyIG93biBpbnRlcnJ1cHRzIHdpbGwgb25seSBiZSBlbmFibGVk DQorCSAqIGluIGEgc3Vic2VxdWVudCBzdGVwLg0KKwkgKi8NCisJbG9jYWxfc2F2ZV9mbGFncyhm bGFncyk7DQorCWxvY2FsX2lycV9lbmFibGUoKTsNCisNCiAJcnRscHJpdi0+aW50Zl9vcHMtPmRp c2FibGVfYXNwbShodyk7DQogDQogCS8qIDEuIE1BQyBJbml0aWFsaXplICovDQpAQCAtOTY5LDcg Kzk3OSw4IEBAIGludCBydGw5MnNlX2h3X2luaXQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpDQog CS8qIDMuIEluaXRpYWxpemUgTUFDL1BIWSBDb25maWcgYnkgTUFDUEhZX3JlZy50eHQgKi8NCiAJ aWYgKHJ0bDkyc19waHlfbWFjX2NvbmZpZyhodykgIT0gdHJ1ZSkgew0KIAkJUlRfVFJBQ0UocnRs cHJpdiwgQ09NUF9FUlIsIERCR19FTUVSRywgKCJNQUMgQ29uZmlnIGZhaWxlZFxuIikpOw0KLQkJ cmV0dXJuIHJ0c3RhdHVzOw0KKwkJZXJyID0gcnRzdGF0dXM7DQorCQlnb3RvIGV4aXQ7DQogCX0N CiANCiAJLyogTWFrZSBzdXJlIEJCL1JGIHdyaXRlIE9LLiBXZSBzaG91bGQgcHJldmVudCBlbnRl ciBJUFMuIHJhZGlvIG9mZi4gKi8NCkBAIC05NzksNyArOTkwLDggQEAgaW50IHJ0bDkyc2VfaHdf aW5pdChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiAJLyogNC4gSW5pdGlhbGl6ZSBCQiBBZnRl ciBNQUMgQ29uZmlnIFBIWV9yZWcudHh0LCBBR0NfVGFiLnR4dCAqLw0KIAlpZiAocnRsOTJzX3Bo eV9iYl9jb25maWcoaHcpICE9IHRydWUpIHsNCiAJCVJUX1RSQUNFKHJ0bHByaXYsIENPTVBfSU5J VCwgREJHX0VNRVJHLCAoIkJCIENvbmZpZyBmYWlsZWRcbiIpKTsNCi0JCXJldHVybiBydHN0YXR1 czsNCisJCWVyciA9IHJ0c3RhdHVzOw0KKwkJZ290byBleGl0Ow0KIAl9DQogDQogCS8qIDUuIElu aXRpYWlsemUgUkYgUkFJT19BLnR4dCBSRiBSQUlPX0IudHh0ICovDQpAQCAtMTAxNSw3ICsxMDI3 LDggQEAgaW50IHJ0bDkyc2VfaHdfaW5pdChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiANCiAJ aWYgKHJ0bDkyc19waHlfcmZfY29uZmlnKGh3KSAhPSB0cnVlKSB7DQogCQlSVF9UUkFDRShydGxw cml2LCBDT01QX0lOSVQsIERCR19ETUVTRywgKCJSRiBDb25maWcgZmFpbGVkXG4iKSk7DQotCQly ZXR1cm4gcnRzdGF0dXM7DQorCQllcnIgPSBydHN0YXR1czsNCisJCWdvdG8gZXhpdDsNCiAJfQ0K IA0KIAkvKiBBZnRlciByZWFkIHByZWRlZmluZWQgVFhULCB3ZSBtdXN0IHNldCBCQi9NQUMvUkYN CkBAIC0xMDg5LDggKzExMDIsOSBAQCBpbnQgcnRsOTJzZV9od19pbml0KHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3KQ0KIA0KIAlydGxwcml2LT5jZmctPm9wcy0+bGVkX2NvbnRyb2woaHcsIExFRF9D VExfUE9XRVJfT04pOw0KIAlydGw5MnNfZG1faW5pdChodyk7DQorZXhpdDoNCisJbG9jYWxfaXJx X3Jlc3RvcmUoZmxhZ3MpOw0KIAlydGxwY2ktPmJlaW5nX2luaXRfYWRhcHRlciA9IGZhbHNlOw0K LQ0KIAlyZXR1cm4gZXJyOw0KIH0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC94ZW4tbmV0 YmFjay9uZXRiYWNrLmMgYi9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMNCmluZGV4 IDlhNDYyNmMuLmIyNTI4ZjYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9u ZXRiYWNrLmMNCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYw0KQEAgLTM0 Niw4ICszNDYsOCBAQCBzdGF0aWMgYm9vbCBzdGFydF9uZXdfcnhfYnVmZmVyKGludCBvZmZzZXQs IHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50IGhlYWQpDQogCSAqIGludG8gbXVsdGlwbGUgY29waWVz IHRlbmQgdG8gZ2l2ZSBsYXJnZSBmcmFncyB0aGVpcg0KIAkgKiBvd24gYnVmZmVycyBhcyBiZWZv cmUuDQogCSAqLw0KLQlpZiAoKG9mZnNldCArIHNpemUgPiBNQVhfQlVGRkVSX09GRlNFVCkgJiYN Ci0JICAgIChzaXplIDw9IE1BWF9CVUZGRVJfT0ZGU0VUKSAmJiBvZmZzZXQgJiYgIWhlYWQpDQor CUJVR19PTihzaXplID4gTUFYX0JVRkZFUl9PRkZTRVQpOw0KKwlpZiAoKG9mZnNldCArIHNpemUg PiBNQVhfQlVGRkVSX09GRlNFVCkgJiYgb2Zmc2V0ICYmICFoZWFkKQ0KIAkJcmV0dXJuIHRydWU7 DQogDQogCXJldHVybiBmYWxzZTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvc2VycXRf dXNiMi9zZXJxdF91c2IyLmMgYi9kcml2ZXJzL3N0YWdpbmcvc2VycXRfdXNiMi9zZXJxdF91c2Iy LmMNCmluZGV4IGM0NGU0MWEuLmMyNzMxY2EgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3N0YWdpbmcv c2VycXRfdXNiMi9zZXJxdF91c2IyLmMNCisrKyBiL2RyaXZlcnMvc3RhZ2luZy9zZXJxdF91c2Iy L3NlcnF0X3VzYjIuYw0KQEAgLTc3Miw3ICs3NzIsNyBAQCBzdGF0aWMgaW50IHF0X3N0YXJ0dXAo c3RydWN0IHVzYl9zZXJpYWwgKnNlcmlhbCkNCiAJCWdvdG8gc3RhcnR1cF9lcnJvcjsNCiAJfQ0K IA0KLQlzd2l0Y2ggKHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkgew0KKwlzd2l0 Y2ggKGxlMTZfdG9fY3B1KHNlcmlhbC0+ZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkpIHsNCiAJ Y2FzZSBRVUFURUNIX0RTVTEwMDoNCiAJY2FzZSBRVUFURUNIX1FTVTEwMDoNCiAJY2FzZSBRVUFU RUNIX0VTVTEwMEE6DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNjc2lfdGFy Z2V0LmMgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXQuYw0KaW5kZXggNGE4OGVl YS4uYWI1ZGQxNiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3Rhcmdl dC5jDQorKysgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90YXJnZXQuYw0KQEAgLTIzNTgs NiArMjM1OCw3IEBAIHN0YXRpYyB2b2lkIGlzY3NpdF9idWlsZF9jb25uX2Ryb3BfYXN5bmNfbWVz c2FnZShzdHJ1Y3QgaXNjc2lfY29ubiAqY29ubikNCiB7DQogCXN0cnVjdCBpc2NzaV9jbWQgKmNt ZDsNCiAJc3RydWN0IGlzY3NpX2Nvbm4gKmNvbm5fcDsNCisJYm9vbCBmb3VuZCA9IGZhbHNlOw0K IA0KIAkvKg0KIAkgKiBPbmx5IHNlbmQgYSBBc3luY2hyb25vdXMgTWVzc2FnZSBvbiBjb25uZWN0 aW9ucyB3aG9zIG5ldHdvcmsNCkBAIC0yMzY2LDExICsyMzY3LDEyIEBAIHN0YXRpYyB2b2lkIGlz Y3NpdF9idWlsZF9jb25uX2Ryb3BfYXN5bmNfbWVzc2FnZShzdHJ1Y3QgaXNjc2lfY29ubiAqY29u bikNCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uX3AsICZjb25uLT5zZXNzLT5zZXNzX2Nvbm5f bGlzdCwgY29ubl9saXN0KSB7DQogCQlpZiAoY29ubl9wLT5jb25uX3N0YXRlID09IFRBUkdfQ09O Tl9TVEFURV9MT0dHRURfSU4pIHsNCiAJCQlpc2NzaXRfaW5jX2Nvbm5fdXNhZ2VfY291bnQoY29u bl9wKTsNCisJCQlmb3VuZCA9IHRydWU7DQogCQkJYnJlYWs7DQogCQl9DQogCX0NCiANCi0JaWYg KCFjb25uX3ApDQorCWlmICghZm91bmQpDQogCQlyZXR1cm47DQogDQogCWNtZCA9IGlzY3NpdF9h bGxvY2F0ZV9jbWQoY29ubl9wLCBHRlBfQVRPTUlDKTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Rh cmdldC90Y21fZmMvdGZjX3Nlc3MuYyBiL2RyaXZlcnMvdGFyZ2V0L3RjbV9mYy90ZmNfc2Vzcy5j DQppbmRleCBhYjBhM2ZhLi5iMzI4MDExIDEwMDY0NA0KLS0tIGEvZHJpdmVycy90YXJnZXQvdGNt X2ZjL3RmY19zZXNzLmMNCisrKyBiL2RyaXZlcnMvdGFyZ2V0L3RjbV9mYy90ZmNfc2Vzcy5jDQpA QCAtNzIsNiArNzIsNyBAQCBzdGF0aWMgc3RydWN0IGZ0X3Rwb3J0ICpmdF90cG9ydF9jcmVhdGUo c3RydWN0IGZjX2xwb3J0ICpscG9ydCkNCiANCiAJaWYgKHRwb3J0KSB7DQogCQl0cG9ydC0+dHBn ID0gdHBnOw0KKwkJdHBnLT50cG9ydCA9IHRwb3J0Ow0KIAkJcmV0dXJuIHRwb3J0Ow0KIAl9DQog DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvaHZjL2h2Y19jb25zb2xlLmMgYi9kcml2ZXJzL3R0 eS9odmMvaHZjX2NvbnNvbGUuYw0KaW5kZXggYjZiMmQxOC4uN2I5N2U3ZSAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvdHR5L2h2Yy9odmNfY29uc29sZS5jDQorKysgYi9kcml2ZXJzL3R0eS9odmMvaHZj X2NvbnNvbGUuYw0KQEAgLTMxLDYgKzMxLDcgQEANCiAjaW5jbHVkZSA8bGludXgvbGlzdC5oPg0K ICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCiAjaW5jbHVkZSA8bGludXgvbWFqb3IuaD4NCisj aW5jbHVkZSA8bGludXgvYXRvbWljLmg+DQogI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L3R0eS5oPg0KICNpbmNsdWRlIDxsaW51eC90dHlfZmxpcC5oPg0KQEAgLTcw LDYgKzcxLDkgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqaHZjX3Rhc2s7DQogLyogUGlj a3MgdXAgbGF0ZSBraWNrcyBhZnRlciBsaXN0IHdhbGsgYnV0IGJlZm9yZSBzY2hlZHVsZSgpICov DQogc3RhdGljIGludCBodmNfa2lja2VkOw0KIA0KKy8qIGh2Y19pbml0IGlzIHRyaWdnZXJlZCBm cm9tIGh2Y19hbGxvYywgaS5lLiBvbmx5IHdoZW4gYWN0dWFsbHkgdXNlZCAqLw0KK3N0YXRpYyBh dG9taWNfdCBodmNfbmVlZHNfaW5pdCBfX3JlYWRfbW9zdGx5ID0gQVRPTUlDX0lOSVQoLTEpOw0K Kw0KIHN0YXRpYyBpbnQgaHZjX2luaXQodm9pZCk7DQogDQogI2lmZGVmIENPTkZJR19NQUdJQ19T WVNSUQ0KQEAgLTgyNSw3ICs4MjksNyBAQCBzdHJ1Y3QgaHZjX3N0cnVjdCAqaHZjX2FsbG9jKHVp bnQzMl90IHZ0ZXJtbm8sIGludCBkYXRhLA0KIAlpbnQgaTsNCiANCiAJLyogV2Ugd2FpdCB1bnRp bCBhIGRyaXZlciBhY3R1YWxseSBjb21lcyBhbG9uZyAqLw0KLQlpZiAoIWh2Y19kcml2ZXIpIHsN CisJaWYgKGF0b21pY19pbmNfbm90X3plcm8oJmh2Y19uZWVkc19pbml0KSkgew0KIAkJaW50IGVy ciA9IGh2Y19pbml0KCk7DQogCQlpZiAoZXJyKQ0KIAkJCXJldHVybiBFUlJfUFRSKGVycik7DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy90dHkvdHR5X2lvLmMgYi9kcml2ZXJzL3R0eS90dHlfaW8uYw0K aW5kZXggM2YzNWU0Mi4uNDQ2ZGY2YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdHR5L3R0eV9pby5j DQorKysgYi9kcml2ZXJzL3R0eS90dHlfaW8uYw0KQEAgLTEyMjIsOSArMTIyMiw5IEBAIHN0YXRp YyB2b2lkIHB0eV9saW5lX25hbWUoc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlciwgaW50IGluZGV4 LCBjaGFyICpwKQ0KICAqDQogICoJTG9ja2luZzogTm9uZQ0KICAqLw0KLXN0YXRpYyB2b2lkIHR0 eV9saW5lX25hbWUoc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZlciwgaW50IGluZGV4LCBjaGFyICpw KQ0KK3N0YXRpYyBzc2l6ZV90IHR0eV9saW5lX25hbWUoc3RydWN0IHR0eV9kcml2ZXIgKmRyaXZl ciwgaW50IGluZGV4LCBjaGFyICpwKQ0KIHsNCi0Jc3ByaW50ZihwLCAiJXMlZCIsIGRyaXZlci0+ bmFtZSwgaW5kZXggKyBkcml2ZXItPm5hbWVfYmFzZSk7DQorCXJldHVybiBzcHJpbnRmKHAsICIl cyVkIiwgZHJpdmVyLT5uYW1lLCBpbmRleCArIGRyaXZlci0+bmFtZV9iYXNlKTsNCiB9DQogDQog LyoqDQpAQCAtMzMyMSw5ICszMzIxLDE5IEBAIHN0YXRpYyBzc2l6ZV90IHNob3dfY29uc19hY3Rp dmUoc3RydWN0IGRldmljZSAqZGV2LA0KIAkJaWYgKGkgPj0gQVJSQVlfU0laRShjcykpDQogCQkJ YnJlYWs7DQogCX0NCi0Jd2hpbGUgKGktLSkNCi0JCWNvdW50ICs9IHNwcmludGYoYnVmICsgY291 bnQsICIlcyVkJWMiLA0KLQkJCQkgY3NbaV0tPm5hbWUsIGNzW2ldLT5pbmRleCwgaSA/ICcgJzon XG4nKTsNCisJd2hpbGUgKGktLSkgew0KKwkJaW50IGluZGV4ID0gY3NbaV0tPmluZGV4Ow0KKwkJ c3RydWN0IHR0eV9kcml2ZXIgKmRydiA9IGNzW2ldLT5kZXZpY2UoY3NbaV0sICZpbmRleCk7DQor DQorCQkvKiBkb24ndCByZXNvbHZlIHR0eTAgYXMgc29tZSBwcm9ncmFtcyBkZXBlbmQgb24gaXQg Ki8NCisJCWlmIChkcnYgJiYgKGNzW2ldLT5pbmRleCA+IDAgfHwgZHJ2LT5tYWpvciAhPSBUVFlf TUFKT1IpKQ0KKwkJCWNvdW50ICs9IHR0eV9saW5lX25hbWUoZHJ2LCBpbmRleCwgYnVmICsgY291 bnQpOw0KKwkJZWxzZQ0KKwkJCWNvdW50ICs9IHNwcmludGYoYnVmICsgY291bnQsICIlcyVkIiwN CisJCQkJCSBjc1tpXS0+bmFtZSwgY3NbaV0tPmluZGV4KTsNCisNCisJCWNvdW50ICs9IHNwcmlu dGYoYnVmICsgY291bnQsICIlYyIsIGkgPyAnICc6J1xuJyk7DQorCX0NCiAJY29uc29sZV91bmxv Y2soKTsNCiANCiAJcmV0dXJuIGNvdW50Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2R3YzMv Y29yZS5oIGIvZHJpdmVycy91c2IvZHdjMy9jb3JlLmgNCmluZGV4IDQ3OTVjMGMuLmFlMmI3NjMg MTAwNjQ0DQotLS0gYS9kcml2ZXJzL3VzYi9kd2MzL2NvcmUuaA0KKysrIGIvZHJpdmVycy91c2Iv ZHdjMy9jb3JlLmgNCkBAIC03MTYsMTUgKzcxNiwxNSBAQCBzdHJ1Y3QgZHdjM19ldmVudF9kZXBl dnQgew0KICAqCTEyCS0gVm5kckRldlRzdFJjdmVkDQogICogQHJlc2VydmVkMTVfMTI6IFJlc2Vy dmVkLCBub3QgdXNlZA0KICAqIEBldmVudF9pbmZvOiBJbmZvcm1hdGlvbiBhYm91dCB0aGlzIGV2 ZW50DQotICogQHJlc2VydmVkMzFfMjQ6IFJlc2VydmVkLCBub3QgdXNlZA0KKyAqIEByZXNlcnZl ZDMxXzI1OiBSZXNlcnZlZCwgbm90IHVzZWQNCiAgKi8NCiBzdHJ1Y3QgZHdjM19ldmVudF9kZXZ0 IHsNCiAJdTMyCW9uZV9iaXQ6MTsNCiAJdTMyCWRldmljZV9ldmVudDo3Ow0KIAl1MzIJdHlwZTo0 Ow0KIAl1MzIJcmVzZXJ2ZWQxNV8xMjo0Ow0KLQl1MzIJZXZlbnRfaW5mbzo4Ow0KLQl1MzIJcmVz ZXJ2ZWQzMV8yNDo4Ow0KKwl1MzIJZXZlbnRfaW5mbzo5Ow0KKwl1MzIJcmVzZXJ2ZWQzMV8yNTo3 Ow0KIH0gX19wYWNrZWQ7DQogDQogLyoqDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0 L2F0bWVsX3VzYmFfdWRjLmMgYi9kcml2ZXJzL3VzYi9nYWRnZXQvYXRtZWxfdXNiYV91ZGMuYw0K aW5kZXggMjcxYTlkOC4uYjI5OWMzMiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvdXNiL2dhZGdldC9h dG1lbF91c2JhX3VkYy5jDQorKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvYXRtZWxfdXNiYV91ZGMu Yw0KQEAgLTE4NzUsMTIgKzE4NzUsMTMgQEAgc3RhdGljIGludCBhdG1lbF91c2JhX3N0b3Aoc3Ry dWN0IHVzYl9nYWRnZXRfZHJpdmVyICpkcml2ZXIpDQogDQogCWRyaXZlci0+dW5iaW5kKCZ1ZGMt PmdhZGdldCk7DQogCXVkYy0+Z2FkZ2V0LmRldi5kcml2ZXIgPSBOVUxMOw0KLQl1ZGMtPmRyaXZl ciA9IE5VTEw7DQogDQogCWNsa19kaXNhYmxlKHVkYy0+aGNsayk7DQogCWNsa19kaXNhYmxlKHVk Yy0+cGNsayk7DQogDQotCURCRyhEQkdfR0FER0VULCAidW5yZWdpc3RlcmVkIGRyaXZlciBgJXMn XG4iLCBkcml2ZXItPmRyaXZlci5uYW1lKTsNCisJREJHKERCR19HQURHRVQsICJ1bnJlZ2lzdGVy ZWQgZHJpdmVyIGAlcydcbiIsIHVkYy0+ZHJpdmVyLT5kcml2ZXIubmFtZSk7DQorDQorCXVkYy0+ ZHJpdmVyID0gTlVMTDsNCiANCiAJcmV0dXJuIDA7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv dmhvc3QvbmV0LmMgYi9kcml2ZXJzL3Zob3N0L25ldC5jDQppbmRleCA1YzU4MTI4Li43ZWY4NGMx IDEwMDY0NA0KLS0tIGEvZHJpdmVycy92aG9zdC9uZXQuYw0KKysrIGIvZHJpdmVycy92aG9zdC9u ZXQuYw0KQEAgLTMxOSw5ICszMTksMTMgQEAgc3RhdGljIGludCBnZXRfcnhfYnVmcyhzdHJ1Y3Qg dmhvc3RfdmlydHF1ZXVlICp2cSwNCiAJCQlyID0gLUVOT0JVRlM7DQogCQkJZ290byBlcnI7DQog CQl9DQotCQlkID0gdmhvc3RfZ2V0X3ZxX2Rlc2ModnEtPmRldiwgdnEsIHZxLT5pb3YgKyBzZWcs DQorCQlyID0gdmhvc3RfZ2V0X3ZxX2Rlc2ModnEtPmRldiwgdnEsIHZxLT5pb3YgKyBzZWcsDQog CQkJCSAgICAgIEFSUkFZX1NJWkUodnEtPmlvdikgLSBzZWcsICZvdXQsDQogCQkJCSAgICAgICZp biwgbG9nLCBsb2dfbnVtKTsNCisJCWlmICh1bmxpa2VseShyIDwgMCkpDQorCQkJZ290byBlcnI7 DQorDQorCQlkID0gcjsNCiAJCWlmIChkID09IHZxLT5udW0pIHsNCiAJCQlyID0gMDsNCiAJCQln b3RvIGVycjsNCkBAIC0zNDYsNiArMzUwLDEyIEBAIHN0YXRpYyBpbnQgZ2V0X3J4X2J1ZnMoc3Ry dWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEsDQogCSppb3Zjb3VudCA9IHNlZzsNCiAJaWYgKHVubGlr ZWx5KGxvZykpDQogCQkqbG9nX251bSA9IG5sb2dzOw0KKw0KKwkvKiBEZXRlY3Qgb3ZlcnJ1biAq Lw0KKwlpZiAodW5saWtlbHkoZGF0YWxlbiA+IDApKSB7DQorCQlyID0gVUlPX01BWElPViArIDE7 DQorCQlnb3RvIGVycjsNCisJfQ0KIAlyZXR1cm4gaGVhZGNvdW50Ow0KIGVycjoNCiAJdmhvc3Rf ZGlzY2FyZF92cV9kZXNjKHZxLCBoZWFkY291bnQpOw0KQEAgLTQwMCw2ICs0MTAsMTQgQEAgc3Rh dGljIHZvaWQgaGFuZGxlX3J4KHN0cnVjdCB2aG9zdF9uZXQgKm5ldCkNCiAJCS8qIE9uIGVycm9y LCBzdG9wIGhhbmRsaW5nIHVudGlsIHRoZSBuZXh0IGtpY2suICovDQogCQlpZiAodW5saWtlbHko aGVhZGNvdW50IDwgMCkpDQogCQkJYnJlYWs7DQorCQkvKiBPbiBvdmVycnVuLCB0cnVuY2F0ZSBh bmQgZGlzY2FyZCAqLw0KKwkJaWYgKHVubGlrZWx5KGhlYWRjb3VudCA+IFVJT19NQVhJT1YpKSB7 DQorCQkJbXNnLm1zZ19pb3ZsZW4gPSAxOw0KKwkJCWVyciA9IHNvY2stPm9wcy0+cmVjdm1zZyhO VUxMLCBzb2NrLCAmbXNnLA0KKwkJCQkJCSAxLCBNU0dfRE9OVFdBSVQgfCBNU0dfVFJVTkMpOw0K KwkJCXByX2RlYnVnKCJEaXNjYXJkZWQgcnggcGFja2V0OiBsZW4gJXpkXG4iLCBzb2NrX2xlbik7 DQorCQkJY29udGludWU7DQorCQl9DQogCQkvKiBPSywgbm93IHdlIG5lZWQgdG8ga25vdyBhYm91 dCBhZGRlZCBkZXNjcmlwdG9ycy4gKi8NCiAJCWlmICghaGVhZGNvdW50KSB7DQogCQkJaWYgKHVu bGlrZWx5KHZob3N0X2VuYWJsZV9ub3RpZnkoJm5ldC0+ZGV2LCB2cSkpKSB7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy92aWRlby9hdHkvbWFjaDY0X2FjY2VsLmMgYi9kcml2ZXJzL3ZpZGVvL2F0eS9t YWNoNjRfYWNjZWwuYw0KaW5kZXggZTQ1ODMzYy4uMTgyYmQ2OCAxMDA2NDQNCi0tLSBhL2RyaXZl cnMvdmlkZW8vYXR5L21hY2g2NF9hY2NlbC5jDQorKysgYi9kcml2ZXJzL3ZpZGVvL2F0eS9tYWNo NjRfYWNjZWwuYw0KQEAgLTQsNiArNCw3IEBADQogICovDQogDQogI2luY2x1ZGUgPGxpbnV4L2Rl bGF5Lmg+DQorI2luY2x1ZGUgPGFzbS91bmFsaWduZWQuaD4NCiAjaW5jbHVkZSA8bGludXgvZmIu aD4NCiAjaW5jbHVkZSA8dmlkZW8vbWFjaDY0Lmg+DQogI2luY2x1ZGUgImF0eWZiLmgiDQpAQCAt NDE5LDcgKzQyMCw3IEBAIHZvaWQgYXR5ZmJfaW1hZ2VibGl0KHN0cnVjdCBmYl9pbmZvICppbmZv LCBjb25zdCBzdHJ1Y3QgZmJfaW1hZ2UgKmltYWdlKQ0KIAkJdTMyICpwYml0bWFwLCBkd29yZHMg PSAoc3JjX2J5dGVzICsgMykgLyA0Ow0KIAkJZm9yIChwYml0bWFwID0gKHUzMiopKGltYWdlLT5k YXRhKTsgZHdvcmRzOyBkd29yZHMtLSwgcGJpdG1hcCsrKSB7DQogCQkJd2FpdF9mb3JfZmlmbygx LCBwYXIpOw0KLQkJCWF0eV9zdF9sZTMyKEhPU1RfREFUQTAsIGxlMzJfdG9fY3B1cChwYml0bWFw KSwgcGFyKTsNCisJCQlhdHlfc3RfbGUzMihIT1NUX0RBVEEwLCBnZXRfdW5hbGlnbmVkX2xlMzIo cGJpdG1hcCksIHBhcik7DQogCQl9DQogCX0NCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L2F0eS9tYWNoNjRfY3Vyc29yLmMgYi9kcml2ZXJzL3ZpZGVvL2F0eS9tYWNoNjRfY3Vyc29yLmMN CmluZGV4IDQ2ZjcyZWQuLjRiODczMTggMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3ZpZGVvL2F0eS9t YWNoNjRfY3Vyc29yLmMNCisrKyBiL2RyaXZlcnMvdmlkZW8vYXR5L21hY2g2NF9jdXJzb3IuYw0K QEAgLTUsNiArNSw3IEBADQogI2luY2x1ZGUgPGxpbnV4L2ZiLmg+DQogI2luY2x1ZGUgPGxpbnV4 L2luaXQuaD4NCiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+DQorI2luY2x1ZGUgIi4uL2ZiX2Ry YXcuaCINCiANCiAjaW5jbHVkZSA8YXNtL2lvLmg+DQogDQpAQCAtMTU3LDI0ICsxNTgsMzMgQEAg c3RhdGljIGludCBhdHlmYl9jdXJzb3Ioc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCBmYl9j dXJzb3IgKmN1cnNvcikNCiANCiAJICAgIGZvciAoaSA9IDA7IGkgPCBoZWlnaHQ7IGkrKykgew0K IAkJZm9yIChqID0gMDsgaiA8IHdpZHRoOyBqKyspIHsNCisJCQl1MTYgbCA9IDB4YWFhYTsNCiAJ CQliID0gKnNyYysrOw0KIAkJCW0gPSAqbXNrKys7DQogCQkJc3dpdGNoIChjdXJzb3ItPnJvcCkg ew0KIAkJCWNhc2UgUk9QX1hPUjoNCiAJCQkgICAgLy8gVXBwZXIgNCBiaXRzIG9mIG1hc2sgZGF0 YQ0KLQkJCSAgICBmYl93cml0ZWIoY3Vyc29yX2JpdHNfbG9va3VwWyhiIF4gbSkgPj4gNF0sIGRz dCsrKTsNCisJCQkgICAgbCA9IGN1cnNvcl9iaXRzX2xvb2t1cFsoYiBeIG0pID4+IDRdIHwNCiAJ CQkgICAgLy8gTG93ZXIgNCBiaXRzIG9mIG1hc2sNCi0JCQkgICAgZmJfd3JpdGViKGN1cnNvcl9i aXRzX2xvb2t1cFsoYiBeIG0pICYgMHgwZl0sDQotCQkJCSAgICAgIGRzdCsrKTsNCisJCQkJICAg IChjdXJzb3JfYml0c19sb29rdXBbKGIgXiBtKSAmIDB4MGZdIDw8IDgpOw0KIAkJCSAgICBicmVh azsNCiAJCQljYXNlIFJPUF9DT1BZOg0KIAkJCSAgICAvLyBVcHBlciA0IGJpdHMgb2YgbWFzayBk YXRhDQotCQkJICAgIGZiX3dyaXRlYihjdXJzb3JfYml0c19sb29rdXBbKGIgJiBtKSA+PiA0XSwg ZHN0KyspOw0KKwkJCSAgICBsID0gY3Vyc29yX2JpdHNfbG9va3VwWyhiICYgbSkgPj4gNF0gfA0K IAkJCSAgICAvLyBMb3dlciA0IGJpdHMgb2YgbWFzaw0KLQkJCSAgICBmYl93cml0ZWIoY3Vyc29y X2JpdHNfbG9va3VwWyhiICYgbSkgJiAweDBmXSwNCi0JCQkJICAgICAgZHN0KyspOw0KKwkJCQkg ICAgKGN1cnNvcl9iaXRzX2xvb2t1cFsoYiAmIG0pICYgMHgwZl0gPDwgOCk7DQogCQkJICAgIGJy ZWFrOw0KIAkJCX0NCisJCQkvKg0KKwkJCSAqIElmIGN1cnNvciBzaXplIGlzIG5vdCBhIG11bHRp cGxlIG9mIDggY2hhcmFjdGVycw0KKwkJCSAqIHdlIG11c3QgcGFkIGl0IHdpdGggdHJhbnNwYXJl bnQgcGF0dGVybiAoMHhhYWFhKS4NCisJCQkgKi8NCisJCQlpZiAoKGogKyAxKSAqIDggPiBjdXJz b3ItPmltYWdlLndpZHRoKSB7DQorCQkJCWwgPSBjb21wKGwsIDB4YWFhYSwNCisJCQkJICAgICgx IDw8ICgoY3Vyc29yLT5pbWFnZS53aWR0aCAmIDcpICogMikpIC0gMSk7DQorCQkJfQ0KKwkJCWZi X3dyaXRlYihsICYgMHhmZiwgZHN0KyspOw0KKwkJCWZiX3dyaXRlYihsID4+IDgsIGRzdCsrKTsN CiAJCX0NCiAJCWRzdCArPSBvZmZzZXQ7DQogCSAgICB9DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9jZmJjb3B5YXJlYS5jIGIvZHJpdmVycy92aWRlby9jZmJjb3B5YXJlYS5jDQppbmRleCBi YjVhOTZiLi5iY2I1NzIzIDEwMDY0NA0KLS0tIGEvZHJpdmVycy92aWRlby9jZmJjb3B5YXJlYS5j DQorKysgYi9kcml2ZXJzL3ZpZGVvL2NmYmNvcHlhcmVhLmMNCkBAIC00MywxMyArNDMsMjIgQEAN CiAgICAgICovDQogDQogc3RhdGljIHZvaWQNCi1iaXRjcHkoc3RydWN0IGZiX2luZm8gKnAsIHVu c2lnbmVkIGxvbmcgX19pb21lbSAqZHN0LCBpbnQgZHN0X2lkeCwNCi0JCWNvbnN0IHVuc2lnbmVk IGxvbmcgX19pb21lbSAqc3JjLCBpbnQgc3JjX2lkeCwgaW50IGJpdHMsDQorYml0Y3B5KHN0cnVj dCBmYl9pbmZvICpwLCB1bnNpZ25lZCBsb25nIF9faW9tZW0gKmRzdCwgdW5zaWduZWQgZHN0X2lk eCwNCisJCWNvbnN0IHVuc2lnbmVkIGxvbmcgX19pb21lbSAqc3JjLCB1bnNpZ25lZCBzcmNfaWR4 LCBpbnQgYml0cywNCiAJCXVuc2lnbmVkIG4sIHUzMiBic3dhcG1hc2spDQogew0KIAl1bnNpZ25l ZCBsb25nIGZpcnN0LCBsYXN0Ow0KIAlpbnQgY29uc3Qgc2hpZnQgPSBkc3RfaWR4LXNyY19pZHg7 DQotCWludCBsZWZ0LCByaWdodDsNCisNCisjaWYgMA0KKwkvKg0KKwkgKiBJZiB5b3Ugc3VzcGVj dCBidWcgaW4gdGhpcyBmdW5jdGlvbiwgY29tcGFyZSBpdCB3aXRoIHRoaXMgc2ltcGxlDQorCSAq IG1lbW1vdmUgaW1wbGVtZW50YXRpb24uDQorCSAqLw0KKwlmYl9tZW1tb3ZlKChjaGFyICopZHN0 ICsgKChkc3RfaWR4ICYgKGJpdHMgLSAxKSkpIC8gOCwNCisJCSAgIChjaGFyICopc3JjICsgKChz cmNfaWR4ICYgKGJpdHMgLSAxKSkpIC8gOCwgbiAvIDgpOw0KKwlyZXR1cm47DQorI2VuZGlmDQog DQogCWZpcnN0ID0gZmJfc2hpZnRlZF9waXhlbHNfbWFza19sb25nKHAsIGRzdF9pZHgsIGJzd2Fw bWFzayk7DQogCWxhc3QgPSB+ZmJfc2hpZnRlZF9waXhlbHNfbWFza19sb25nKHAsIChkc3RfaWR4 K24pICUgYml0cywgYnN3YXBtYXNrKTsNCkBAIC05OCw5ICsxMDcsOCBAQCBiaXRjcHkoc3RydWN0 IGZiX2luZm8gKnAsIHVuc2lnbmVkIGxvbmcgX19pb21lbSAqZHN0LCBpbnQgZHN0X2lkeCwNCiAJ CXVuc2lnbmVkIGxvbmcgZDAsIGQxOw0KIAkJaW50IG07DQogDQotCQlyaWdodCA9IHNoaWZ0ICYg KGJpdHMgLSAxKTsNCi0JCWxlZnQgPSAtc2hpZnQgJiAoYml0cyAtIDEpOw0KLQkJYnN3YXBtYXNr ICY9IHNoaWZ0Ow0KKwkJaW50IGNvbnN0IGxlZnQgPSBzaGlmdCAmIChiaXRzIC0gMSk7DQorCQlp bnQgY29uc3QgcmlnaHQgPSAtc2hpZnQgJiAoYml0cyAtIDEpOw0KIA0KIAkJaWYgKGRzdF9pZHgr biA8PSBiaXRzKSB7DQogCQkJLy8gU2luZ2xlIGRlc3RpbmF0aW9uIHdvcmQNCkBAIC0xMTAsMTUg KzExOCwxNSBAQCBiaXRjcHkoc3RydWN0IGZiX2luZm8gKnAsIHVuc2lnbmVkIGxvbmcgX19pb21l bSAqZHN0LCBpbnQgZHN0X2lkeCwNCiAJCQlkMCA9IGZiX3Jldl9waXhlbHNfaW5fbG9uZyhkMCwg YnN3YXBtYXNrKTsNCiAJCQlpZiAoc2hpZnQgPiAwKSB7DQogCQkJCS8vIFNpbmdsZSBzb3VyY2Ug d29yZA0KLQkJCQlkMCA+Pj0gcmlnaHQ7DQorCQkJCWQwIDw8PSBsZWZ0Ow0KIAkJCX0gZWxzZSBp ZiAoc3JjX2lkeCtuIDw9IGJpdHMpIHsNCiAJCQkJLy8gU2luZ2xlIHNvdXJjZSB3b3JkDQotCQkJ CWQwIDw8PSBsZWZ0Ow0KKwkJCQlkMCA+Pj0gcmlnaHQ7DQogCQkJfSBlbHNlIHsNCiAJCQkJLy8g MiBzb3VyY2Ugd29yZHMNCiAJCQkJZDEgPSBGQl9SRUFETChzcmMgKyAxKTsNCiAJCQkJZDEgPSBm Yl9yZXZfcGl4ZWxzX2luX2xvbmcoZDEsIGJzd2FwbWFzayk7DQotCQkJCWQwID0gZDA8PGxlZnQg fCBkMT4+cmlnaHQ7DQorCQkJCWQwID0gZDAgPj4gcmlnaHQgfCBkMSA8PCBsZWZ0Ow0KIAkJCX0N CiAJCQlkMCA9IGZiX3Jldl9waXhlbHNfaW5fbG9uZyhkMCwgYnN3YXBtYXNrKTsNCiAJCQlGQl9X UklURUwoY29tcChkMCwgRkJfUkVBREwoZHN0KSwgZmlyc3QpLCBkc3QpOw0KQEAgLTEzNSw2MCAr MTQzLDU5IEBAIGJpdGNweShzdHJ1Y3QgZmJfaW5mbyAqcCwgdW5zaWduZWQgbG9uZyBfX2lvbWVt ICpkc3QsIGludCBkc3RfaWR4LA0KIAkJCWlmIChzaGlmdCA+IDApIHsNCiAJCQkJLy8gU2luZ2xl IHNvdXJjZSB3b3JkDQogCQkJCWQxID0gZDA7DQotCQkJCWQwID4+PSByaWdodDsNCi0JCQkJZHN0 Kys7DQorCQkJCWQwIDw8PSBsZWZ0Ow0KIAkJCQluIC09IGJpdHMgLSBkc3RfaWR4Ow0KIAkJCX0g ZWxzZSB7DQogCQkJCS8vIDIgc291cmNlIHdvcmRzDQogCQkJCWQxID0gRkJfUkVBREwoc3JjKysp Ow0KIAkJCQlkMSA9IGZiX3Jldl9waXhlbHNfaW5fbG9uZyhkMSwgYnN3YXBtYXNrKTsNCiANCi0J CQkJZDAgPSBkMDw8bGVmdCB8IGQxPj5yaWdodDsNCi0JCQkJZHN0Kys7DQorCQkJCWQwID0gZDAg Pj4gcmlnaHQgfCBkMSA8PCBsZWZ0Ow0KIAkJCQluIC09IGJpdHMgLSBkc3RfaWR4Ow0KIAkJCX0N CiAJCQlkMCA9IGZiX3Jldl9waXhlbHNfaW5fbG9uZyhkMCwgYnN3YXBtYXNrKTsNCiAJCQlGQl9X UklURUwoY29tcChkMCwgRkJfUkVBREwoZHN0KSwgZmlyc3QpLCBkc3QpOw0KIAkJCWQwID0gZDE7 DQorCQkJZHN0Kys7DQogDQogCQkJLy8gTWFpbiBjaHVuaw0KIAkJCW0gPSBuICUgYml0czsNCiAJ CQluIC89IGJpdHM7DQogCQkJd2hpbGUgKChuID49IDQpICYmICFic3dhcG1hc2spIHsNCiAJCQkJ ZDEgPSBGQl9SRUFETChzcmMrKyk7DQotCQkJCUZCX1dSSVRFTChkMCA8PCBsZWZ0IHwgZDEgPj4g cmlnaHQsIGRzdCsrKTsNCisJCQkJRkJfV1JJVEVMKGQwID4+IHJpZ2h0IHwgZDEgPDwgbGVmdCwg ZHN0KyspOw0KIAkJCQlkMCA9IGQxOw0KIAkJCQlkMSA9IEZCX1JFQURMKHNyYysrKTsNCi0JCQkJ RkJfV1JJVEVMKGQwIDw8IGxlZnQgfCBkMSA+PiByaWdodCwgZHN0KyspOw0KKwkJCQlGQl9XUklU RUwoZDAgPj4gcmlnaHQgfCBkMSA8PCBsZWZ0LCBkc3QrKyk7DQogCQkJCWQwID0gZDE7DQogCQkJ CWQxID0gRkJfUkVBREwoc3JjKyspOw0KLQkJCQlGQl9XUklURUwoZDAgPDwgbGVmdCB8IGQxID4+ IHJpZ2h0LCBkc3QrKyk7DQorCQkJCUZCX1dSSVRFTChkMCA+PiByaWdodCB8IGQxIDw8IGxlZnQs IGRzdCsrKTsNCiAJCQkJZDAgPSBkMTsNCiAJCQkJZDEgPSBGQl9SRUFETChzcmMrKyk7DQotCQkJ CUZCX1dSSVRFTChkMCA8PCBsZWZ0IHwgZDEgPj4gcmlnaHQsIGRzdCsrKTsNCisJCQkJRkJfV1JJ VEVMKGQwID4+IHJpZ2h0IHwgZDEgPDwgbGVmdCwgZHN0KyspOw0KIAkJCQlkMCA9IGQxOw0KIAkJ CQluIC09IDQ7DQogCQkJfQ0KIAkJCXdoaWxlIChuLS0pIHsNCiAJCQkJZDEgPSBGQl9SRUFETChz cmMrKyk7DQogCQkJCWQxID0gZmJfcmV2X3BpeGVsc19pbl9sb25nKGQxLCBic3dhcG1hc2spOw0K LQkJCQlkMCA9IGQwIDw8IGxlZnQgfCBkMSA+PiByaWdodDsNCisJCQkJZDAgPSBkMCA+PiByaWdo dCB8IGQxIDw8IGxlZnQ7DQogCQkJCWQwID0gZmJfcmV2X3BpeGVsc19pbl9sb25nKGQwLCBic3dh cG1hc2spOw0KIAkJCQlGQl9XUklURUwoZDAsIGRzdCsrKTsNCiAJCQkJZDAgPSBkMTsNCiAJCQl9 DQogDQogCQkJLy8gVHJhaWxpbmcgYml0cw0KLQkJCWlmIChsYXN0KSB7DQotCQkJCWlmIChtIDw9 IHJpZ2h0KSB7DQorCQkJaWYgKG0pIHsNCisJCQkJaWYgKG0gPD0gYml0cyAtIHJpZ2h0KSB7DQog CQkJCQkvLyBTaW5nbGUgc291cmNlIHdvcmQNCi0JCQkJCWQwIDw8PSBsZWZ0Ow0KKwkJCQkJZDAg Pj49IHJpZ2h0Ow0KIAkJCQl9IGVsc2Ugew0KIAkJCQkJLy8gMiBzb3VyY2Ugd29yZHMNCiAJCQkJ CWQxID0gRkJfUkVBREwoc3JjKTsNCiAJCQkJCWQxID0gZmJfcmV2X3BpeGVsc19pbl9sb25nKGQx LA0KIAkJCQkJCQkJYnN3YXBtYXNrKTsNCi0JCQkJCWQwID0gZDA8PGxlZnQgfCBkMT4+cmlnaHQ7 DQorCQkJCQlkMCA9IGQwID4+IHJpZ2h0IHwgZDEgPDwgbGVmdDsNCiAJCQkJfQ0KIAkJCQlkMCA9 IGZiX3Jldl9waXhlbHNfaW5fbG9uZyhkMCwgYnN3YXBtYXNrKTsNCiAJCQkJRkJfV1JJVEVMKGNv bXAoZDAsIEZCX1JFQURMKGRzdCksIGxhc3QpLCBkc3QpOw0KQEAgLTIwMiw0MyArMjA5LDQ2IEBA IGJpdGNweShzdHJ1Y3QgZmJfaW5mbyAqcCwgdW5zaWduZWQgbG9uZyBfX2lvbWVtICpkc3QsIGlu dCBkc3RfaWR4LA0KICAgICAgKi8NCiANCiBzdGF0aWMgdm9pZA0KLWJpdGNweV9yZXYoc3RydWN0 IGZiX2luZm8gKnAsIHVuc2lnbmVkIGxvbmcgX19pb21lbSAqZHN0LCBpbnQgZHN0X2lkeCwNCi0J CWNvbnN0IHVuc2lnbmVkIGxvbmcgX19pb21lbSAqc3JjLCBpbnQgc3JjX2lkeCwgaW50IGJpdHMs DQorYml0Y3B5X3JldihzdHJ1Y3QgZmJfaW5mbyAqcCwgdW5zaWduZWQgbG9uZyBfX2lvbWVtICpk c3QsIHVuc2lnbmVkIGRzdF9pZHgsDQorCQljb25zdCB1bnNpZ25lZCBsb25nIF9faW9tZW0gKnNy YywgdW5zaWduZWQgc3JjX2lkeCwgaW50IGJpdHMsDQogCQl1bnNpZ25lZCBuLCB1MzIgYnN3YXBt YXNrKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyBmaXJzdCwgbGFzdDsNCiAJaW50IHNoaWZ0Ow0KIA0K LQlkc3QgKz0gKG4tMSkvYml0czsNCi0Jc3JjICs9IChuLTEpL2JpdHM7DQotCWlmICgobi0xKSAl IGJpdHMpIHsNCi0JCWRzdF9pZHggKz0gKG4tMSkgJSBiaXRzOw0KLQkJZHN0ICs9IGRzdF9pZHgg Pj4gKGZmcyhiaXRzKSAtIDEpOw0KLQkJZHN0X2lkeCAmPSBiaXRzIC0gMTsNCi0JCXNyY19pZHgg Kz0gKG4tMSkgJSBiaXRzOw0KLQkJc3JjICs9IHNyY19pZHggPj4gKGZmcyhiaXRzKSAtIDEpOw0K LQkJc3JjX2lkeCAmPSBiaXRzIC0gMTsNCi0JfQ0KKyNpZiAwDQorCS8qDQorCSAqIElmIHlvdSBz dXNwZWN0IGJ1ZyBpbiB0aGlzIGZ1bmN0aW9uLCBjb21wYXJlIGl0IHdpdGggdGhpcyBzaW1wbGUN CisJICogbWVtbW92ZSBpbXBsZW1lbnRhdGlvbi4NCisJICovDQorCWZiX21lbW1vdmUoKGNoYXIg Kilkc3QgKyAoKGRzdF9pZHggJiAoYml0cyAtIDEpKSkgLyA4LA0KKwkJICAgKGNoYXIgKilzcmMg KyAoKHNyY19pZHggJiAoYml0cyAtIDEpKSkgLyA4LCBuIC8gOCk7DQorCXJldHVybjsNCisjZW5k aWYNCisNCisJZHN0ICs9IChkc3RfaWR4ICsgbiAtIDEpIC8gYml0czsNCisJc3JjICs9IChzcmNf aWR4ICsgbiAtIDEpIC8gYml0czsNCisJZHN0X2lkeCA9IChkc3RfaWR4ICsgbiAtIDEpICUgYml0 czsNCisJc3JjX2lkeCA9IChzcmNfaWR4ICsgbiAtIDEpICUgYml0czsNCiANCiAJc2hpZnQgPSBk c3RfaWR4LXNyY19pZHg7DQogDQotCWZpcnN0ID0gZmJfc2hpZnRlZF9waXhlbHNfbWFza19sb25n KHAsIGJpdHMgLSAxIC0gZHN0X2lkeCwgYnN3YXBtYXNrKTsNCi0JbGFzdCA9IH5mYl9zaGlmdGVk X3BpeGVsc19tYXNrX2xvbmcocCwgYml0cyAtIDEgLSAoKGRzdF9pZHgtbikgJSBiaXRzKSwNCi0J CQkJCSAgICBic3dhcG1hc2spOw0KKwlmaXJzdCA9IH5mYl9zaGlmdGVkX3BpeGVsc19tYXNrX2xv bmcocCwgKGRzdF9pZHggKyAxKSAlIGJpdHMsIGJzd2FwbWFzayk7DQorCWxhc3QgPSBmYl9zaGlm dGVkX3BpeGVsc19tYXNrX2xvbmcocCwgKGJpdHMgKyBkc3RfaWR4ICsgMSAtIG4pICUgYml0cywg YnN3YXBtYXNrKTsNCiANCiAJaWYgKCFzaGlmdCkgew0KIAkJLy8gU2FtZSBhbGlnbm1lbnQgZm9y IHNvdXJjZSBhbmQgZGVzdA0KIA0KIAkJaWYgKCh1bnNpZ25lZCBsb25nKWRzdF9pZHgrMSA+PSBu KSB7DQogCQkJLy8gU2luZ2xlIHdvcmQNCi0JCQlpZiAobGFzdCkNCi0JCQkJZmlyc3QgJj0gbGFz dDsNCi0JCQlGQl9XUklURUwoIGNvbXAoIEZCX1JFQURMKHNyYyksIEZCX1JFQURMKGRzdCksIGZp cnN0KSwgZHN0KTsNCisJCQlpZiAoZmlyc3QpDQorCQkJCWxhc3QgJj0gZmlyc3Q7DQorCQkJRkJf V1JJVEVMKCBjb21wKCBGQl9SRUFETChzcmMpLCBGQl9SRUFETChkc3QpLCBsYXN0KSwgZHN0KTsN CiAJCX0gZWxzZSB7DQogCQkJLy8gTXVsdGlwbGUgZGVzdGluYXRpb24gd29yZHMNCiANCiAJCQkv LyBMZWFkaW5nIGJpdHMNCi0JCQlpZiAoZmlyc3QgIT0gfjBVTCkgew0KKwkJCWlmIChmaXJzdCkg ew0KIAkJCQlGQl9XUklURUwoIGNvbXAoIEZCX1JFQURMKHNyYyksIEZCX1JFQURMKGRzdCksIGZp cnN0KSwgZHN0KTsNCiAJCQkJZHN0LS07DQogCQkJCXNyYy0tOw0KQEAgLTI2Miw3ICsyNzIsNyBA QCBiaXRjcHlfcmV2KHN0cnVjdCBmYl9pbmZvICpwLCB1bnNpZ25lZCBsb25nIF9faW9tZW0gKmRz dCwgaW50IGRzdF9pZHgsDQogCQkJCUZCX1dSSVRFTChGQl9SRUFETChzcmMtLSksIGRzdC0tKTsN CiANCiAJCQkvLyBUcmFpbGluZyBiaXRzDQotCQkJaWYgKGxhc3QpDQorCQkJaWYgKGxhc3QgIT0g LTFVTCkNCiAJCQkJRkJfV1JJVEVMKCBjb21wKCBGQl9SRUFETChzcmMpLCBGQl9SRUFETChkc3Qp LCBsYXN0KSwgZHN0KTsNCiAJCX0NCiAJfSBlbHNlIHsNCkBAIC0yNzAsMjkgKzI4MCwyOCBAQCBi aXRjcHlfcmV2KHN0cnVjdCBmYl9pbmZvICpwLCB1bnNpZ25lZCBsb25nIF9faW9tZW0gKmRzdCwg aW50IGRzdF9pZHgsDQogCQl1bnNpZ25lZCBsb25nIGQwLCBkMTsNCiAJCWludCBtOw0KIA0KLQkJ aW50IGNvbnN0IGxlZnQgPSAtc2hpZnQgJiAoYml0cy0xKTsNCi0JCWludCBjb25zdCByaWdodCA9 IHNoaWZ0ICYgKGJpdHMtMSk7DQotCQlic3dhcG1hc2sgJj0gc2hpZnQ7DQorCQlpbnQgY29uc3Qg bGVmdCA9IHNoaWZ0ICYgKGJpdHMtMSk7DQorCQlpbnQgY29uc3QgcmlnaHQgPSAtc2hpZnQgJiAo Yml0cy0xKTsNCiANCiAJCWlmICgodW5zaWduZWQgbG9uZylkc3RfaWR4KzEgPj0gbikgew0KIAkJ CS8vIFNpbmdsZSBkZXN0aW5hdGlvbiB3b3JkDQotCQkJaWYgKGxhc3QpDQotCQkJCWZpcnN0ICY9 IGxhc3Q7DQorCQkJaWYgKGZpcnN0KQ0KKwkJCQlsYXN0ICY9IGZpcnN0Ow0KIAkJCWQwID0gRkJf UkVBREwoc3JjKTsNCiAJCQlpZiAoc2hpZnQgPCAwKSB7DQogCQkJCS8vIFNpbmdsZSBzb3VyY2Ug d29yZA0KLQkJCQlkMCA8PD0gbGVmdDsNCisJCQkJZDAgPj49IHJpZ2h0Ow0KIAkJCX0gZWxzZSBp ZiAoMSsodW5zaWduZWQgbG9uZylzcmNfaWR4ID49IG4pIHsNCiAJCQkJLy8gU2luZ2xlIHNvdXJj ZSB3b3JkDQotCQkJCWQwID4+PSByaWdodDsNCisJCQkJZDAgPDw9IGxlZnQ7DQogCQkJfSBlbHNl IHsNCiAJCQkJLy8gMiBzb3VyY2Ugd29yZHMNCiAJCQkJZDEgPSBGQl9SRUFETChzcmMgLSAxKTsN CiAJCQkJZDEgPSBmYl9yZXZfcGl4ZWxzX2luX2xvbmcoZDEsIGJzd2FwbWFzayk7DQotCQkJCWQw ID0gZDA+PnJpZ2h0IHwgZDE8PGxlZnQ7DQorCQkJCWQwID0gZDAgPDwgbGVmdCB8IGQxID4+IHJp Z2h0Ow0KIAkJCX0NCiAJCQlkMCA9IGZiX3Jldl9waXhlbHNfaW5fbG9uZyhkMCwgYnN3YXBtYXNr KTsNCi0JCQlGQl9XUklURUwoY29tcChkMCwgRkJfUkVBREwoZHN0KSwgZmlyc3QpLCBkc3QpOw0K KwkJCUZCX1dSSVRFTChjb21wKGQwLCBGQl9SRUFETChkc3QpLCBsYXN0KSwgZHN0KTsNCiAJCX0g ZWxzZSB7DQogCQkJLy8gTXVsdGlwbGUgZGVzdGluYXRpb24gd29yZHMNCiAJCQkvKiogV2UgbXVz dCBhbHdheXMgcmVtZW1iZXIgdGhlIGxhc3QgdmFsdWUgcmVhZCwgYmVjYXVzZSBpbiBjYXNlDQpA QCAtMzA3LDEyICszMTYsMTIgQEAgYml0Y3B5X3JldihzdHJ1Y3QgZmJfaW5mbyAqcCwgdW5zaWdu ZWQgbG9uZyBfX2lvbWVtICpkc3QsIGludCBkc3RfaWR4LA0KIAkJCWlmIChzaGlmdCA8IDApIHsN CiAJCQkJLy8gU2luZ2xlIHNvdXJjZSB3b3JkDQogCQkJCWQxID0gZDA7DQotCQkJCWQwIDw8PSBs ZWZ0Ow0KKwkJCQlkMCA+Pj0gcmlnaHQ7DQogCQkJfSBlbHNlIHsNCiAJCQkJLy8gMiBzb3VyY2Ug d29yZHMNCiAJCQkJZDEgPSBGQl9SRUFETChzcmMtLSk7DQogCQkJCWQxID0gZmJfcmV2X3BpeGVs c19pbl9sb25nKGQxLCBic3dhcG1hc2spOw0KLQkJCQlkMCA9IGQwPj5yaWdodCB8IGQxPDxsZWZ0 Ow0KKwkJCQlkMCA9IGQwIDw8IGxlZnQgfCBkMSA+PiByaWdodDsNCiAJCQl9DQogCQkJZDAgPSBm Yl9yZXZfcGl4ZWxzX2luX2xvbmcoZDAsIGJzd2FwbWFzayk7DQogCQkJRkJfV1JJVEVMKGNvbXAo ZDAsIEZCX1JFQURMKGRzdCksIGZpcnN0KSwgZHN0KTsNCkBAIC0zMjUsMzkgKzMzNCwzOSBAQCBi aXRjcHlfcmV2KHN0cnVjdCBmYl9pbmZvICpwLCB1bnNpZ25lZCBsb25nIF9faW9tZW0gKmRzdCwg aW50IGRzdF9pZHgsDQogCQkJbiAvPSBiaXRzOw0KIAkJCXdoaWxlICgobiA+PSA0KSAmJiAhYnN3 YXBtYXNrKSB7DQogCQkJCWQxID0gRkJfUkVBREwoc3JjLS0pOw0KLQkJCQlGQl9XUklURUwoZDAg Pj4gcmlnaHQgfCBkMSA8PCBsZWZ0LCBkc3QtLSk7DQorCQkJCUZCX1dSSVRFTChkMCA8PCBsZWZ0 IHwgZDEgPj4gcmlnaHQsIGRzdC0tKTsNCiAJCQkJZDAgPSBkMTsNCiAJCQkJZDEgPSBGQl9SRUFE TChzcmMtLSk7DQotCQkJCUZCX1dSSVRFTChkMCA+PiByaWdodCB8IGQxIDw8IGxlZnQsIGRzdC0t KTsNCisJCQkJRkJfV1JJVEVMKGQwIDw8IGxlZnQgfCBkMSA+PiByaWdodCwgZHN0LS0pOw0KIAkJ CQlkMCA9IGQxOw0KIAkJCQlkMSA9IEZCX1JFQURMKHNyYy0tKTsNCi0JCQkJRkJfV1JJVEVMKGQw ID4+IHJpZ2h0IHwgZDEgPDwgbGVmdCwgZHN0LS0pOw0KKwkJCQlGQl9XUklURUwoZDAgPDwgbGVm dCB8IGQxID4+IHJpZ2h0LCBkc3QtLSk7DQogCQkJCWQwID0gZDE7DQogCQkJCWQxID0gRkJfUkVB REwoc3JjLS0pOw0KLQkJCQlGQl9XUklURUwoZDAgPj4gcmlnaHQgfCBkMSA8PCBsZWZ0LCBkc3Qt LSk7DQorCQkJCUZCX1dSSVRFTChkMCA8PCBsZWZ0IHwgZDEgPj4gcmlnaHQsIGRzdC0tKTsNCiAJ CQkJZDAgPSBkMTsNCiAJCQkJbiAtPSA0Ow0KIAkJCX0NCiAJCQl3aGlsZSAobi0tKSB7DQogCQkJ CWQxID0gRkJfUkVBREwoc3JjLS0pOw0KIAkJCQlkMSA9IGZiX3Jldl9waXhlbHNfaW5fbG9uZyhk MSwgYnN3YXBtYXNrKTsNCi0JCQkJZDAgPSBkMCA+PiByaWdodCB8IGQxIDw8IGxlZnQ7DQorCQkJ CWQwID0gZDAgPDwgbGVmdCB8IGQxID4+IHJpZ2h0Ow0KIAkJCQlkMCA9IGZiX3Jldl9waXhlbHNf aW5fbG9uZyhkMCwgYnN3YXBtYXNrKTsNCiAJCQkJRkJfV1JJVEVMKGQwLCBkc3QtLSk7DQogCQkJ CWQwID0gZDE7DQogCQkJfQ0KIA0KIAkJCS8vIFRyYWlsaW5nIGJpdHMNCi0JCQlpZiAobGFzdCkg ew0KLQkJCQlpZiAobSA8PSBsZWZ0KSB7DQorCQkJaWYgKG0pIHsNCisJCQkJaWYgKG0gPD0gYml0 cyAtIGxlZnQpIHsNCiAJCQkJCS8vIFNpbmdsZSBzb3VyY2Ugd29yZA0KLQkJCQkJZDAgPj49IHJp Z2h0Ow0KKwkJCQkJZDAgPDw9IGxlZnQ7DQogCQkJCX0gZWxzZSB7DQogCQkJCQkvLyAyIHNvdXJj ZSB3b3Jkcw0KIAkJCQkJZDEgPSBGQl9SRUFETChzcmMpOw0KIAkJCQkJZDEgPSBmYl9yZXZfcGl4 ZWxzX2luX2xvbmcoZDEsDQogCQkJCQkJCQlic3dhcG1hc2spOw0KLQkJCQkJZDAgPSBkMD4+cmln aHQgfCBkMTw8bGVmdDsNCisJCQkJCWQwID0gZDAgPDwgbGVmdCB8IGQxID4+IHJpZ2h0Ow0KIAkJ CQl9DQogCQkJCWQwID0gZmJfcmV2X3BpeGVsc19pbl9sb25nKGQwLCBic3dhcG1hc2spOw0KIAkJ CQlGQl9XUklURUwoY29tcChkMCwgRkJfUkVBREwoZHN0KSwgbGFzdCksIGRzdCk7DQpAQCAtMzcx LDkgKzM4MCw5IEBAIHZvaWQgY2ZiX2NvcHlhcmVhKHN0cnVjdCBmYl9pbmZvICpwLCBjb25zdCBz dHJ1Y3QgZmJfY29weWFyZWEgKmFyZWEpDQogCXUzMiBkeCA9IGFyZWEtPmR4LCBkeSA9IGFyZWEt PmR5LCBzeCA9IGFyZWEtPnN4LCBzeSA9IGFyZWEtPnN5Ow0KIAl1MzIgaGVpZ2h0ID0gYXJlYS0+ aGVpZ2h0LCB3aWR0aCA9IGFyZWEtPndpZHRoOw0KIAl1bnNpZ25lZCBsb25nIGNvbnN0IGJpdHNf cGVyX2xpbmUgPSBwLT5maXgubGluZV9sZW5ndGgqOHU7DQotCXVuc2lnbmVkIGxvbmcgX19pb21l bSAqZHN0ID0gTlVMTCwgKnNyYyA9IE5VTEw7DQorCXVuc2lnbmVkIGxvbmcgX19pb21lbSAqYmFz ZSA9IE5VTEw7DQogCWludCBiaXRzID0gQklUU19QRVJfTE9ORywgYnl0ZXMgPSBiaXRzID4+IDM7 DQotCWludCBkc3RfaWR4ID0gMCwgc3JjX2lkeCA9IDAsIHJldl9jb3B5ID0gMDsNCisJdW5zaWdu ZWQgZHN0X2lkeCA9IDAsIHNyY19pZHggPSAwLCByZXZfY29weSA9IDA7DQogCXUzMiBic3dhcG1h c2sgPSBmYl9jb21wdXRlX2Jzd2FwbWFzayhwKTsNCiANCiAJaWYgKHAtPnN0YXRlICE9IEZCSU5G T19TVEFURV9SVU5OSU5HKQ0KQEAgLTM4OSw3ICszOTgsNyBAQCB2b2lkIGNmYl9jb3B5YXJlYShz dHJ1Y3QgZmJfaW5mbyAqcCwgY29uc3Qgc3RydWN0IGZiX2NvcHlhcmVhICphcmVhKQ0KIA0KIAkv LyBzcGxpdCB0aGUgYmFzZSBvZiB0aGUgZnJhbWVidWZmZXIgaW50byBhIGxvbmctYWxpZ25lZCBh ZGRyZXNzIGFuZCB0aGUNCiAJLy8gaW5kZXggb2YgdGhlIGZpcnN0IGJpdA0KLQlkc3QgPSBzcmMg PSAodW5zaWduZWQgbG9uZyBfX2lvbWVtICopKCh1bnNpZ25lZCBsb25nKXAtPnNjcmVlbl9iYXNl ICYgfihieXRlcy0xKSk7DQorCWJhc2UgPSAodW5zaWduZWQgbG9uZyBfX2lvbWVtICopKCh1bnNp Z25lZCBsb25nKXAtPnNjcmVlbl9iYXNlICYgfihieXRlcy0xKSk7DQogCWRzdF9pZHggPSBzcmNf aWR4ID0gOCooKHVuc2lnbmVkIGxvbmcpcC0+c2NyZWVuX2Jhc2UgJiAoYnl0ZXMtMSkpOw0KIAkv LyBhZGQgb2Zmc2V0IG9mIHNvdXJjZSBhbmQgdGFyZ2V0IGFyZWENCiAJZHN0X2lkeCArPSBkeSpi aXRzX3Blcl9saW5lICsgZHgqcC0+dmFyLmJpdHNfcGVyX3BpeGVsOw0KQEAgLTQwMiwyMCArNDEx LDE0IEBAIHZvaWQgY2ZiX2NvcHlhcmVhKHN0cnVjdCBmYl9pbmZvICpwLCBjb25zdCBzdHJ1Y3Qg ZmJfY29weWFyZWEgKmFyZWEpDQogCQl3aGlsZSAoaGVpZ2h0LS0pIHsNCiAJCQlkc3RfaWR4IC09 IGJpdHNfcGVyX2xpbmU7DQogCQkJc3JjX2lkeCAtPSBiaXRzX3Blcl9saW5lOw0KLQkJCWRzdCAr PSBkc3RfaWR4ID4+IChmZnMoYml0cykgLSAxKTsNCi0JCQlkc3RfaWR4ICY9IChieXRlcyAtIDEp Ow0KLQkJCXNyYyArPSBzcmNfaWR4ID4+IChmZnMoYml0cykgLSAxKTsNCi0JCQlzcmNfaWR4ICY9 IChieXRlcyAtIDEpOw0KLQkJCWJpdGNweV9yZXYocCwgZHN0LCBkc3RfaWR4LCBzcmMsIHNyY19p ZHgsIGJpdHMsDQorCQkJYml0Y3B5X3JldihwLCBiYXNlICsgKGRzdF9pZHggLyBiaXRzKSwgZHN0 X2lkeCAlIGJpdHMsDQorCQkJCWJhc2UgKyAoc3JjX2lkeCAvIGJpdHMpLCBzcmNfaWR4ICUgYml0 cywgYml0cywNCiAJCQkJd2lkdGgqcC0+dmFyLmJpdHNfcGVyX3BpeGVsLCBic3dhcG1hc2spOw0K IAkJfQ0KIAl9IGVsc2Ugew0KIAkJd2hpbGUgKGhlaWdodC0tKSB7DQotCQkJZHN0ICs9IGRzdF9p ZHggPj4gKGZmcyhiaXRzKSAtIDEpOw0KLQkJCWRzdF9pZHggJj0gKGJ5dGVzIC0gMSk7DQotCQkJ c3JjICs9IHNyY19pZHggPj4gKGZmcyhiaXRzKSAtIDEpOw0KLQkJCXNyY19pZHggJj0gKGJ5dGVz IC0gMSk7DQotCQkJYml0Y3B5KHAsIGRzdCwgZHN0X2lkeCwgc3JjLCBzcmNfaWR4LCBiaXRzLA0K KwkJCWJpdGNweShwLCBiYXNlICsgKGRzdF9pZHggLyBiaXRzKSwgZHN0X2lkeCAlIGJpdHMsDQor CQkJCWJhc2UgKyAoc3JjX2lkeCAvIGJpdHMpLCBzcmNfaWR4ICUgYml0cywgYml0cywNCiAJCQkJ d2lkdGgqcC0+dmFyLmJpdHNfcGVyX3BpeGVsLCBic3dhcG1hc2spOw0KIAkJCWRzdF9pZHggKz0g Yml0c19wZXJfbGluZTsNCiAJCQlzcmNfaWR4ICs9IGJpdHNfcGVyX2xpbmU7DQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy92aWRlby9tYXRyb3gvbWF0cm94ZmJfYWNjZWwuYyBiL2RyaXZlcnMvdmlkZW8v bWF0cm94L21hdHJveGZiX2FjY2VsLmMNCmluZGV4IDgzMzVhNmYuLjBkNWNiODUgMTAwNjQ0DQot LS0gYS9kcml2ZXJzL3ZpZGVvL21hdHJveC9tYXRyb3hmYl9hY2NlbC5jDQorKysgYi9kcml2ZXJz L3ZpZGVvL21hdHJveC9tYXRyb3hmYl9hY2NlbC5jDQpAQCAtMTkyLDEwICsxOTIsMTggQEAgdm9p ZCBtYXRyb3hfY2ZiWF9pbml0KHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8pDQogCW1pbmZv LT5hY2NlbC5tX2R3Z19yZWN0ID0gTV9EV0dfVFJBUCB8IE1fRFdHX1NPTElEIHwgTV9EV0dfQVJa RVJPIHwgTV9EV0dfU0dOWkVSTyB8IE1fRFdHX1NISUZUWkVSTzsNCiAJaWYgKGlzTWlsbGVuaXVt SUkobWluZm8pKSBtaW5mby0+YWNjZWwubV9kd2dfcmVjdCB8PSBNX0RXR19UUkFOU0M7DQogCW1p bmZvLT5hY2NlbC5tX29wbW9kZSA9IG1vcG1vZGU7DQorCW1pbmZvLT5hY2NlbC5tX2FjY2VzcyA9 IG1hY2Nlc3M7DQorCW1pbmZvLT5hY2NlbC5tX3BpdGNoID0gbXBpdGNoOw0KIH0NCiANCiBFWFBP UlRfU1lNQk9MKG1hdHJveF9jZmJYX2luaXQpOw0KIA0KK3N0YXRpYyB2b2lkIG1hdHJveF9hY2Nl bF9yZXN0b3JlX21hY2Nlc3Moc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbykNCit7DQorCW1n YV9vdXRsKE1fTUFDQ0VTUywgbWluZm8tPmFjY2VsLm1fYWNjZXNzKTsNCisJbWdhX291dGwoTV9Q SVRDSCwgbWluZm8tPmFjY2VsLm1fcGl0Y2gpOw0KK30NCisNCiBzdGF0aWMgdm9pZCBtYXRyb3hf YWNjZWxfYm1vdmUoc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbywgaW50IHZ4cmVzLCBpbnQg c3ksDQogCQkJICAgICAgIGludCBzeCwgaW50IGR5LCBpbnQgZHgsIGludCBoZWlnaHQsIGludCB3 aWR0aCkNCiB7DQpAQCAtMjA3LDcgKzIxNSw4IEBAIHN0YXRpYyB2b2lkIG1hdHJveF9hY2NlbF9i bW92ZShzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvLCBpbnQgdnhyZXMsIGludCBzeSwNCiAJ Q1JJVEJFR0lODQogDQogCWlmICgoZHkgPCBzeSkgfHwgKChkeSA9PSBzeSkgJiYgKGR4IDw9IHN4 KSkpIHsNCi0JCW1nYV9maWZvKDIpOw0KKwkJbWdhX2ZpZm8oNCk7DQorCQltYXRyb3hfYWNjZWxf cmVzdG9yZV9tYWNjZXNzKG1pbmZvKTsNCiAJCW1nYV9vdXRsKE1fRFdHQ1RMLCBNX0RXR19CSVRC TFQgfCBNX0RXR19TSElGVFpFUk8gfCBNX0RXR19TR05aRVJPIHwNCiAJCQkgTV9EV0dfQkZDT0wg fCBNX0RXR19SRVBMQUNFKTsNCiAJCW1nYV9vdXRsKE1fQVI1LCB2eHJlcyk7DQpAQCAtMjE1LDcg KzIyNCw4IEBAIHN0YXRpYyB2b2lkIG1hdHJveF9hY2NlbF9ibW92ZShzdHJ1Y3QgbWF0cm94X2Zi X2luZm8gKm1pbmZvLCBpbnQgdnhyZXMsIGludCBzeSwNCiAJCXN0YXJ0ID0gc3kqdnhyZXMrc3gr Y3Vycl95ZHN0b3JnKG1pbmZvKTsNCiAJCWVuZCA9IHN0YXJ0K3dpZHRoOw0KIAl9IGVsc2Ugew0K LQkJbWdhX2ZpZm8oMyk7DQorCQltZ2FfZmlmbyg1KTsNCisJCW1hdHJveF9hY2NlbF9yZXN0b3Jl X21hY2Nlc3MobWluZm8pOw0KIAkJbWdhX291dGwoTV9EV0dDVEwsIE1fRFdHX0JJVEJMVCB8IE1f RFdHX1NISUZUWkVSTyB8IE1fRFdHX0JGQ09MIHwgTV9EV0dfUkVQTEFDRSk7DQogCQltZ2Ffb3V0 bChNX1NHTiwgNSk7DQogCQltZ2Ffb3V0bChNX0FSNSwgLXZ4cmVzKTsNCkBAIC0yMjQsNyArMjM0 LDggQEAgc3RhdGljIHZvaWQgbWF0cm94X2FjY2VsX2Jtb3ZlKHN0cnVjdCBtYXRyb3hfZmJfaW5m byAqbWluZm8sIGludCB2eHJlcywgaW50IHN5LA0KIAkJc3RhcnQgPSBlbmQrd2lkdGg7DQogCQlk eSArPSBoZWlnaHQtMTsNCiAJfQ0KLQltZ2FfZmlmbyg0KTsNCisJbWdhX2ZpZm8oNik7DQorCW1h dHJveF9hY2NlbF9yZXN0b3JlX21hY2Nlc3MobWluZm8pOw0KIAltZ2Ffb3V0bChNX0FSMCwgZW5k KTsNCiAJbWdhX291dGwoTV9BUjMsIHN0YXJ0KTsNCiAJbWdhX291dGwoTV9GWEJORFJZLCAoKGR4 K3dpZHRoKTw8MTYpIHwgZHgpOw0KQEAgLTI0Niw3ICsyNTcsOCBAQCBzdGF0aWMgdm9pZCBtYXRy b3hfYWNjZWxfYm1vdmVfbGluKHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWluZm8sIGludCB2eHJl cywNCiAJQ1JJVEJFR0lODQogDQogCWlmICgoZHkgPCBzeSkgfHwgKChkeSA9PSBzeSkgJiYgKGR4 IDw9IHN4KSkpIHsNCi0JCW1nYV9maWZvKDIpOw0KKwkJbWdhX2ZpZm8oNCk7DQorCQltYXRyb3hf YWNjZWxfcmVzdG9yZV9tYWNjZXNzKG1pbmZvKTsNCiAJCW1nYV9vdXRsKE1fRFdHQ1RMLCBNX0RX R19CSVRCTFQgfCBNX0RXR19TSElGVFpFUk8gfCBNX0RXR19TR05aRVJPIHwNCiAJCQlNX0RXR19C RkNPTCB8IE1fRFdHX1JFUExBQ0UpOw0KIAkJbWdhX291dGwoTV9BUjUsIHZ4cmVzKTsNCkBAIC0y NTQsNyArMjY2LDggQEAgc3RhdGljIHZvaWQgbWF0cm94X2FjY2VsX2Jtb3ZlX2xpbihzdHJ1Y3Qg bWF0cm94X2ZiX2luZm8gKm1pbmZvLCBpbnQgdnhyZXMsDQogCQlzdGFydCA9IHN5KnZ4cmVzK3N4 K2N1cnJfeWRzdG9yZyhtaW5mbyk7DQogCQllbmQgPSBzdGFydCt3aWR0aDsNCiAJfSBlbHNlIHsN Ci0JCW1nYV9maWZvKDMpOw0KKwkJbWdhX2ZpZm8oNSk7DQorCQltYXRyb3hfYWNjZWxfcmVzdG9y ZV9tYWNjZXNzKG1pbmZvKTsNCiAJCW1nYV9vdXRsKE1fRFdHQ1RMLCBNX0RXR19CSVRCTFQgfCBN X0RXR19TSElGVFpFUk8gfCBNX0RXR19CRkNPTCB8IE1fRFdHX1JFUExBQ0UpOw0KIAkJbWdhX291 dGwoTV9TR04sIDUpOw0KIAkJbWdhX291dGwoTV9BUjUsIC12eHJlcyk7DQpAQCAtMjYzLDcgKzI3 Niw4IEBAIHN0YXRpYyB2b2lkIG1hdHJveF9hY2NlbF9ibW92ZV9saW4oc3RydWN0IG1hdHJveF9m Yl9pbmZvICptaW5mbywgaW50IHZ4cmVzLA0KIAkJc3RhcnQgPSBlbmQrd2lkdGg7DQogCQlkeSAr PSBoZWlnaHQtMTsNCiAJfQ0KLQltZ2FfZmlmbyg1KTsNCisJbWdhX2ZpZm8oNyk7DQorCW1hdHJv eF9hY2NlbF9yZXN0b3JlX21hY2Nlc3MobWluZm8pOw0KIAltZ2Ffb3V0bChNX0FSMCwgZW5kKTsN CiAJbWdhX291dGwoTV9BUjMsIHN0YXJ0KTsNCiAJbWdhX291dGwoTV9GWEJORFJZLCAoKGR4K3dp ZHRoKTw8MTYpIHwgZHgpOw0KQEAgLTI5OCw3ICszMTIsOCBAQCBzdGF0aWMgdm9pZCBtYXRyb3hm Yl9hY2NlbF9jbGVhcihzdHJ1Y3QgbWF0cm94X2ZiX2luZm8gKm1pbmZvLCB1X2ludDMyX3QgY29s b3IsDQogDQogCUNSSVRCRUdJTg0KIA0KLQltZ2FfZmlmbyg1KTsNCisJbWdhX2ZpZm8oNyk7DQor CW1hdHJveF9hY2NlbF9yZXN0b3JlX21hY2Nlc3MobWluZm8pOw0KIAltZ2Ffb3V0bChNX0RXR0NU TCwgbWluZm8tPmFjY2VsLm1fZHdnX3JlY3QgfCBNX0RXR19SRVBMQUNFKTsNCiAJbWdhX291dGwo TV9GQ09MLCBjb2xvcik7DQogCW1nYV9vdXRsKE1fRlhCTkRSWSwgKChzeCArIHdpZHRoKSA8PCAx NikgfCBzeCk7DQpAQCAtMzQxLDcgKzM1Niw4IEBAIHN0YXRpYyB2b2lkIG1hdHJveGZiX2NmYjRf Y2xlYXIoc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbywgdV9pbnQzMl90IGJneCwNCiAJd2lk dGggPj49IDE7DQogCXN4ID4+PSAxOw0KIAlpZiAod2lkdGgpIHsNCi0JCW1nYV9maWZvKDUpOw0K KwkJbWdhX2ZpZm8oNyk7DQorCQltYXRyb3hfYWNjZWxfcmVzdG9yZV9tYWNjZXNzKG1pbmZvKTsN CiAJCW1nYV9vdXRsKE1fRFdHQ1RMLCBtaW5mby0+YWNjZWwubV9kd2dfcmVjdCB8IE1fRFdHX1JF UExBQ0UyKTsNCiAJCW1nYV9vdXRsKE1fRkNPTCwgYmd4KTsNCiAJCW1nYV9vdXRsKE1fRlhCTkRS WSwgKChzeCArIHdpZHRoKSA8PCAxNikgfCBzeCk7DQpAQCAtNDE1LDcgKzQzMSw4IEBAIHN0YXRp YyB2b2lkIG1hdHJveGZiXzFicHBfaW1hZ2VibGl0KHN0cnVjdCBtYXRyb3hfZmJfaW5mbyAqbWlu Zm8sIHVfaW50MzJfdCBmZ3gsDQogDQogCUNSSVRCRUdJTg0KIA0KLQltZ2FfZmlmbygzKTsNCisJ bWdhX2ZpZm8oNSk7DQorCW1hdHJveF9hY2NlbF9yZXN0b3JlX21hY2Nlc3MobWluZm8pOw0KIAlp ZiAoZWFzeSkNCiAJCW1nYV9vdXRsKE1fRFdHQ1RMLCBNX0RXR19JTE9BRCB8IE1fRFdHX1NHTlpF Uk8gfCBNX0RXR19TSElGVFpFUk8gfCBNX0RXR19CTU9OT1dGIHwgTV9EV0dfTElORUFSIHwgTV9E V0dfUkVQTEFDRSk7DQogCWVsc2UNCkBAIC00MjUsNyArNDQyLDggQEAgc3RhdGljIHZvaWQgbWF0 cm94ZmJfMWJwcF9pbWFnZWJsaXQoc3RydWN0IG1hdHJveF9mYl9pbmZvICptaW5mbywgdV9pbnQz Ml90IGZneCwNCiAJZnhibmRyeSA9ICgoeHggKyB3aWR0aCAtIDEpIDw8IDE2KSB8IHh4Ow0KIAlt bWlvID0gbWluZm8tPm1taW8udmJhc2U7DQogDQotCW1nYV9maWZvKDYpOw0KKwltZ2FfZmlmbyg4 KTsNCisJbWF0cm94X2FjY2VsX3Jlc3RvcmVfbWFjY2VzcyhtaW5mbyk7DQogCW1nYV93cml0ZWwo bW1pbywgTV9GWEJORFJZLCBmeGJuZHJ5KTsNCiAJbWdhX3dyaXRlbChtbWlvLCBNX0FSMCwgYXIw KTsNCiAJbWdhX3dyaXRlbChtbWlvLCBNX0FSMywgMCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy92 aWRlby9tYXRyb3gvbWF0cm94ZmJfYmFzZS5oIGIvZHJpdmVycy92aWRlby9tYXRyb3gvbWF0cm94 ZmJfYmFzZS5oDQppbmRleCAxMWVkNTdiLi41NTZkOTZjIDEwMDY0NA0KLS0tIGEvZHJpdmVycy92 aWRlby9tYXRyb3gvbWF0cm94ZmJfYmFzZS5oDQorKysgYi9kcml2ZXJzL3ZpZGVvL21hdHJveC9t YXRyb3hmYl9iYXNlLmgNCkBAIC0zMDcsNiArMzA3LDggQEAgc3RydWN0IG1hdHJveF9hY2NlbF9k YXRhIHsNCiAjZW5kaWYNCiAJdV9pbnQzMl90CW1fZHdnX3JlY3Q7DQogCXVfaW50MzJfdAltX29w bW9kZTsNCisJdV9pbnQzMl90CW1fYWNjZXNzOw0KKwl1X2ludDMyX3QJbV9waXRjaDsNCiB9Ow0K IA0KIHN0cnVjdCB2NGwyX3F1ZXJ5Y3RybDsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL3Rn YWZiLmMgYi9kcml2ZXJzL3ZpZGVvL3RnYWZiLmMNCmluZGV4IGFiYTc2ODYuLmFjMmNmNmQgMTAw NjQ0DQotLS0gYS9kcml2ZXJzL3ZpZGVvL3RnYWZiLmMNCisrKyBiL2RyaXZlcnMvdmlkZW8vdGdh ZmIuYw0KQEAgLTExNDYsMjIyICsxMTQ2LDU3IEBAIGNvcHlhcmVhX2xpbmVfMzJicHAoc3RydWN0 IGZiX2luZm8gKmluZm8sIHUzMiBkeSwgdTMyIHN5LA0KIAlfX3Jhd193cml0ZWwoVEdBX01PREVf U0JNXzI0QlBQfFRHQV9NT0RFX1NJTVBMRSwgdGdhX3JlZ3MrVEdBX01PREVfUkVHKTsNCiB9DQog DQotLyogVGhlIGdlbmVyYWwgY2FzZSBvZiBmb3J3YXJkIGNvcHkgaW4gOGJwcCBtb2RlLiAgKi8N CisvKiBUaGUgKGFsbW9zdCkgZ2VuZXJhbCBjYXNlIG9mIGJhY2t3YXJkIGNvcHkgaW4gOGJwcCBt b2RlLiAgKi8NCiBzdGF0aWMgaW5saW5lIHZvaWQNCi1jb3B5YXJlYV9mb3Jld2FyZF84YnBwKHN0 cnVjdCBmYl9pbmZvICppbmZvLCB1MzIgZHgsIHUzMiBkeSwgdTMyIHN4LCB1MzIgc3ksDQotCQkg ICAgICAgdTMyIGhlaWdodCwgdTMyIHdpZHRoLCB1MzIgbGluZV9sZW5ndGgpDQorY29weWFyZWFf OGJwcChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgdTMyIGR4LCB1MzIgZHksIHUzMiBzeCwgdTMyIHN5 LA0KKwkgICAgICB1MzIgaGVpZ2h0LCB1MzIgd2lkdGgsIHUzMiBsaW5lX2xlbmd0aCwNCisJICAg ICAgY29uc3Qgc3RydWN0IGZiX2NvcHlhcmVhICphcmVhKQ0KIHsNCiAJc3RydWN0IHRnYV9wYXIg KnBhciA9IChzdHJ1Y3QgdGdhX3BhciAqKSBpbmZvLT5wYXI7DQotCXVuc2lnbmVkIGxvbmcgaSwg Y29waWVkLCBsZWZ0Ow0KLQl1bnNpZ25lZCBsb25nIGRwb3MsIHNwb3MsIGRhbGlnbiwgc2FsaWdu LCB5aW5jcjsNCi0JdTMyIHNtYXNrX2ZpcnN0LCBkbWFza19maXJzdCwgZG1hc2tfbGFzdDsNCi0J aW50IHBpeGVsX3NoaWZ0LCBuZWVkX3ByaW1lLCBuZWVkX3NlY29uZDsNCi0JdW5zaWduZWQgbG9u ZyBuNjQsIG4zMiwgeGluY3JfZmlyc3Q7DQorCXVuc2lnbmVkIGksIHlpbmNyOw0KKwlpbnQgZGVw b3MsIHNlcG9zLCBiYWNrd2FyZCwgbGFzdF9zdGVwLCBzdGVwOw0KKwl1MzIgbWFza19sYXN0Ow0K Kwl1bnNpZ25lZCBuMzI7DQogCXZvaWQgX19pb21lbSAqdGdhX3JlZ3M7DQogCXZvaWQgX19pb21l bSAqdGdhX2ZiOw0KIA0KLQl5aW5jciA9IGxpbmVfbGVuZ3RoOw0KLQlpZiAoZHkgPiBzeSkgew0K LQkJZHkgKz0gaGVpZ2h0IC0gMTsNCi0JCXN5ICs9IGhlaWdodCAtIDE7DQotCQl5aW5jciA9IC15 aW5jcjsNCi0JfQ0KLQ0KLQkvKiBDb21wdXRlIHRoZSBvZmZzZXRzIGFuZCBhbGlnbm1lbnRzIGlu IHRoZSBmcmFtZSBidWZmZXIuDQotCSAgIE1vcmUgdGhhbiBhbnl0aGluZyBlbHNlLCB0aGVzZSBj b250cm9sIGhvdyB3ZSBkbyBjb3BpZXMuICAqLw0KLQlkcG9zID0gZHkgKiBsaW5lX2xlbmd0aCAr IGR4Ow0KLQlzcG9zID0gc3kgKiBsaW5lX2xlbmd0aCArIHN4Ow0KLQlkYWxpZ24gPSBkcG9zICYg NzsNCi0Jc2FsaWduID0gc3BvcyAmIDc7DQotCWRwb3MgJj0gLTg7DQotCXNwb3MgJj0gLTg7DQot DQotCS8qIENvbXB1dGUgdGhlIHZhbHVlIGZvciB0aGUgUElYRUxTSElGVCByZWdpc3Rlci4gIFRo aXMgY29udHJvbHMNCi0JICAgYm90aCBub24tY28tYWxpZ25lZCBzb3VyY2UgYW5kIGRlc3RpbmF0 aW9uIGFuZCBjb3B5IGRpcmVjdGlvbi4gICovDQotCWlmIChkYWxpZ24gPj0gc2FsaWduKQ0KLQkJ cGl4ZWxfc2hpZnQgPSBkYWxpZ24gLSBzYWxpZ247DQotCWVsc2UNCi0JCXBpeGVsX3NoaWZ0ID0g OCAtIChzYWxpZ24gLSBkYWxpZ24pOw0KLQ0KLQkvKiBGaWd1cmUgb3V0IGlmIHdlIG5lZWQgYW4g YWRkaXRpb25hbCBwcmltaW5nIHN0ZXAgZm9yIHRoZQ0KLQkgICByZXNpZHVlIHJlZ2lzdGVyLiAg Ki8NCi0JbmVlZF9wcmltZSA9IChzYWxpZ24gPiBkYWxpZ24pOw0KLQlpZiAobmVlZF9wcmltZSkN Ci0JCWRwb3MgLT0gODsNCi0NCi0JLyogQmVnaW4gYnkgY29weWluZyB0aGUgbGVhZGluZyB1bmFs aWduZWQgZGVzdGluYXRpb24uICBDb3B5IGVub3VnaA0KLQkgICB0byBtYWtlIHRoZSBuZXh0IGRl c3RpbmF0aW9uIGFkZHJlc3MgMzItYnl0ZSBhbGlnbmVkLiAgKi8NCi0JY29waWVkID0gMzIgLSAo ZGFsaWduICsgKGRwb3MgJiAzMSkpOw0KLQlpZiAoY29waWVkID09IDMyKQ0KLQkJY29waWVkID0g MDsNCi0JeGluY3JfZmlyc3QgPSAoY29waWVkICsgNykgJiAtODsNCi0Jc21hc2tfZmlyc3QgPSBk bWFza19maXJzdCA9ICgxdWwgPDwgY29waWVkKSAtIDE7DQotCXNtYXNrX2ZpcnN0IDw8PSBzYWxp Z247DQotCWRtYXNrX2ZpcnN0IDw8PSBkYWxpZ24gKyBuZWVkX3ByaW1lKjg7DQotCWlmIChuZWVk X3ByaW1lICYmIGNvcGllZCA+IDI0KQ0KLQkJY29waWVkIC09IDg7DQotCWxlZnQgPSB3aWR0aCAt IGNvcGllZDsNCi0NCi0JLyogQ2FyZSBmb3Igc21hbGwgY29waWVzLiAgKi8NCi0JaWYgKGNvcGll ZCA+IHdpZHRoKSB7DQotCQl1MzIgdDsNCi0JCXQgPSAoMXVsIDw8IHdpZHRoKSAtIDE7DQotCQl0 IDw8PSBkYWxpZ24gKyBuZWVkX3ByaW1lKjg7DQotCQlkbWFza19maXJzdCAmPSB0Ow0KLQkJbGVm dCA9IDA7DQotCX0NCi0NCi0JLyogQXR0ZW1wdCB0byB1c2UgNjQtYnl0ZSBjb3BpZXMuICBUaGlz IGlzIG9ubHkgcG9zc2libGUgaWYgdGhlDQotCSAgIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXJl IGNvLWFsaWduZWQgYXQgNjQgYnl0ZXMuICAqLw0KLQluNjQgPSBuZWVkX3NlY29uZCA9IDA7DQot CWlmICgoZHBvcyAmIDYzKSA9PSAoc3BvcyAmIDYzKQ0KLQkgICAgJiYgKGhlaWdodCA9PSAxIHx8 IGxpbmVfbGVuZ3RoICUgNjQgPT0gMCkpIHsNCi0JCS8qIFdlIG1heSBuZWVkIGEgMzItYnl0ZSBj b3B5IHRvIGVuc3VyZSA2NCBieXRlIGFsaWdubWVudC4gICovDQotCQluZWVkX3NlY29uZCA9IChk cG9zICsgeGluY3JfZmlyc3QpICYgNjM7DQotCQlpZiAoKG5lZWRfc2Vjb25kICYgMzIpICE9IG5l ZWRfc2Vjb25kKQ0KLQkJCXByaW50ayhLRVJOX0VSUiAidGdhZmI6IG5lZWRfc2Vjb25kIHdyb25n XG4iKTsNCi0JCWlmIChsZWZ0ID49IG5lZWRfc2Vjb25kICsgNjQpIHsNCi0JCQlsZWZ0IC09IG5l ZWRfc2Vjb25kOw0KLQkJCW42NCA9IGxlZnQgLyA2NDsNCi0JCQlsZWZ0ICU9IDY0Ow0KLQkJfSBl bHNlDQotCQkJbmVlZF9zZWNvbmQgPSAwOw0KLQl9DQotDQotCS8qIENvcHkgdHJhaWxpbmcgZnVs bCAzMi1ieXRlIHNlY3Rpb25zLiAgVGhpcyB3aWxsIGJlIHRoZSBtYWluDQotCSAgIGxvb3AgaWYg dGhlIDY0IGJ5dGUgbG9vcCBjYW4ndCBiZSB1c2VkLiAgKi8NCi0JbjMyID0gbGVmdCAvIDMyOw0K LQlsZWZ0ICU9IDMyOw0KLQ0KLQkvKiBDb3B5IHRoZSB0cmFpbGluZyB1bmFsaWduZWQgZGVzdGlu YXRpb24uICAqLw0KLQlkbWFza19sYXN0ID0gKDF1bCA8PCBsZWZ0KSAtIDE7DQotDQotCXRnYV9y ZWdzID0gcGFyLT50Z2FfcmVnc19iYXNlOw0KLQl0Z2FfZmIgPSBwYXItPnRnYV9mYl9iYXNlOw0K LQ0KLQkvKiBTZXQgdXAgdGhlIE1PREUgYW5kIFBJWEVMU0hJRlQgcmVnaXN0ZXJzLiAgKi8NCi0J X19yYXdfd3JpdGVsKFRHQV9NT0RFX1NCTV84QlBQfFRHQV9NT0RFX0NPUFksIHRnYV9yZWdzK1RH QV9NT0RFX1JFRyk7DQotCV9fcmF3X3dyaXRlbChwaXhlbF9zaGlmdCwgdGdhX3JlZ3MrVEdBX1BJ WEVMU0hJRlRfUkVHKTsNCi0Jd21iKCk7DQotDQotCWZvciAoaSA9IDA7IGkgPCBoZWlnaHQ7ICsr aSkgew0KLQkJdW5zaWduZWQgbG9uZyBqOw0KLQkJdm9pZCBfX2lvbWVtICpzZmI7DQotCQl2b2lk IF9faW9tZW0gKmRmYjsNCi0NCi0JCXNmYiA9IHRnYV9mYiArIHNwb3M7DQotCQlkZmIgPSB0Z2Ff ZmIgKyBkcG9zOw0KLQkJaWYgKGRtYXNrX2ZpcnN0KSB7DQotCQkJX19yYXdfd3JpdGVsKHNtYXNr X2ZpcnN0LCBzZmIpOw0KLQkJCXdtYigpOw0KLQkJCV9fcmF3X3dyaXRlbChkbWFza19maXJzdCwg ZGZiKTsNCi0JCQl3bWIoKTsNCi0JCQlzZmIgKz0geGluY3JfZmlyc3Q7DQotCQkJZGZiICs9IHhp bmNyX2ZpcnN0Ow0KLQkJfQ0KLQ0KLQkJaWYgKG5lZWRfc2Vjb25kKSB7DQotCQkJX19yYXdfd3Jp dGVsKDB4ZmZmZmZmZmYsIHNmYik7DQotCQkJd21iKCk7DQotCQkJX19yYXdfd3JpdGVsKDB4ZmZm ZmZmZmYsIGRmYik7DQotCQkJd21iKCk7DQotCQkJc2ZiICs9IDMyOw0KLQkJCWRmYiArPSAzMjsN Ci0JCX0NCi0NCi0JCWlmIChuNjQgJiYgKCgodW5zaWduZWQgbG9uZylzZmIgfCAodW5zaWduZWQg bG9uZylkZmIpICYgNjMpKQ0KLQkJCXByaW50ayhLRVJOX0VSUg0KLQkJCSAgICAgICAidGdhZmI6 IG1pc2FsaWduZWQgY29weTY0IChzOiVwLCBkOiVwKVxuIiwNCi0JCQkgICAgICAgc2ZiLCBkZmIp Ow0KLQ0KLQkJZm9yIChqID0gMDsgaiA8IG42NDsgKytqKSB7DQotCQkJX19yYXdfd3JpdGVsKHNm YiAtIHRnYV9mYiwgdGdhX3JlZ3MrVEdBX0NPUFk2NF9TUkMpOw0KLQkJCXdtYigpOw0KLQkJCV9f cmF3X3dyaXRlbChkZmIgLSB0Z2FfZmIsIHRnYV9yZWdzK1RHQV9DT1BZNjRfRFNUKTsNCi0JCQl3 bWIoKTsNCi0JCQlzZmIgKz0gNjQ7DQotCQkJZGZiICs9IDY0Ow0KLQkJfQ0KLQ0KLQkJZm9yIChq ID0gMDsgaiA8IG4zMjsgKytqKSB7DQotCQkJX19yYXdfd3JpdGVsKDB4ZmZmZmZmZmYsIHNmYik7 DQotCQkJd21iKCk7DQotCQkJX19yYXdfd3JpdGVsKDB4ZmZmZmZmZmYsIGRmYik7DQotCQkJd21i KCk7DQotCQkJc2ZiICs9IDMyOw0KLQkJCWRmYiArPSAzMjsNCi0JCX0NCi0NCi0JCWlmIChkbWFz a19sYXN0KSB7DQotCQkJX19yYXdfd3JpdGVsKDB4ZmZmZmZmZmYsIHNmYik7DQotCQkJd21iKCk7 DQotCQkJX19yYXdfd3JpdGVsKGRtYXNrX2xhc3QsIGRmYik7DQotCQkJd21iKCk7DQotCQl9DQot DQotCQlzcG9zICs9IHlpbmNyOw0KLQkJZHBvcyArPSB5aW5jcjsNCisJLyogRG8gYWNjZWxlcmF0 aW9uIG9ubHkgaWYgd2UgYXJlIGFsaWduZWQgb24gOCBwaXhlbHMgKi8NCisJaWYgKChkeCB8IHN4 IHwgd2lkdGgpICYgNykgew0KKwkJY2ZiX2NvcHlhcmVhKGluZm8sIGFyZWEpOw0KKwkJcmV0dXJu Ow0KIAl9DQogDQotCS8qIFJlc2V0IHRoZSBNT0RFIHJlZ2lzdGVyIHRvIG5vcm1hbC4gICovDQot CV9fcmF3X3dyaXRlbChUR0FfTU9ERV9TQk1fOEJQUHxUR0FfTU9ERV9TSU1QTEUsIHRnYV9yZWdz K1RHQV9NT0RFX1JFRyk7DQotfQ0KLQ0KLS8qIFRoZSAoYWxtb3N0KSBnZW5lcmFsIGNhc2Ugb2Yg YmFja3dhcmQgY29weSBpbiA4YnBwIG1vZGUuICAqLw0KLXN0YXRpYyBpbmxpbmUgdm9pZA0KLWNv cHlhcmVhX2JhY2t3YXJkXzhicHAoc3RydWN0IGZiX2luZm8gKmluZm8sIHUzMiBkeCwgdTMyIGR5 LCB1MzIgc3gsIHUzMiBzeSwNCi0JCSAgICAgICB1MzIgaGVpZ2h0LCB1MzIgd2lkdGgsIHUzMiBs aW5lX2xlbmd0aCwNCi0JCSAgICAgICBjb25zdCBzdHJ1Y3QgZmJfY29weWFyZWEgKmFyZWEpDQot ew0KLQlzdHJ1Y3QgdGdhX3BhciAqcGFyID0gKHN0cnVjdCB0Z2FfcGFyICopIGluZm8tPnBhcjsN Ci0JdW5zaWduZWQgbG9uZyBpLCBsZWZ0LCB5aW5jcjsNCi0JdW5zaWduZWQgbG9uZyBkZXBvcywg c2Vwb3MsIGRlYWxpZ24sIHNlYWxpZ247DQotCXUzMiBtYXNrX2ZpcnN0LCBtYXNrX2xhc3Q7DQot CXVuc2lnbmVkIGxvbmcgbjMyOw0KLQl2b2lkIF9faW9tZW0gKnRnYV9yZWdzOw0KLQl2b2lkIF9f aW9tZW0gKnRnYV9mYjsNCi0NCiAJeWluY3IgPSBsaW5lX2xlbmd0aDsNCiAJaWYgKGR5ID4gc3kp IHsNCiAJCWR5ICs9IGhlaWdodCAtIDE7DQogCQlzeSArPSBoZWlnaHQgLSAxOw0KIAkJeWluY3Ig PSAteWluY3I7DQogCX0NCisJYmFja3dhcmQgPSBkeSA9PSBzeSAmJiBkeCA+IHN4ICYmIGR4IDwg c3ggKyB3aWR0aDsNCiANCiAJLyogQ29tcHV0ZSB0aGUgb2Zmc2V0cyBhbmQgYWxpZ25tZW50cyBp biB0aGUgZnJhbWUgYnVmZmVyLg0KIAkgICBNb3JlIHRoYW4gYW55dGhpbmcgZWxzZSwgdGhlc2Ug Y29udHJvbCBob3cgd2UgZG8gY29waWVzLiAgKi8NCi0JZGVwb3MgPSBkeSAqIGxpbmVfbGVuZ3Ro ICsgZHggKyB3aWR0aDsNCi0Jc2Vwb3MgPSBzeSAqIGxpbmVfbGVuZ3RoICsgc3ggKyB3aWR0aDsN Ci0JZGVhbGlnbiA9IGRlcG9zICYgNzsNCi0Jc2VhbGlnbiA9IHNlcG9zICYgNzsNCi0NCi0JLyog Pz8/IFRoZSBkb2N1bWVudGF0aW9uIGFwcGVhcnMgdG8gYmUgaW5jb3JyZWN0IChvciB2ZXJ5DQot CSAgIG1pc2xlYWRpbmcpIHdydCBob3cgcGl4ZWwgc2hpZnRpbmcgd29ya3MgaW4gYmFja3dhcmQg Y29weQ0KLQkgICBtb2RlLCBpLmUuIHdoZW4gUElYRUxTSElGVCBpcyBuZWdhdGl2ZS4gIEkgZ2l2 ZSB1cCBmb3Igbm93Lg0KLQkgICBEbyBoYW5kbGUgdGhlIGNvbW1vbiBjYXNlIG9mIGNvLWFsaWdu ZWQgYmFja3dhcmQgY29waWVzLA0KLQkgICBidXQgZnJvYiBldmVyeXRoaW5nIGVsc2UgYmFjayBv biBnZW5lcmljIGNvZGUuICAqLw0KLQlpZiAoZGVhbGlnbiAhPSBzZWFsaWduKSB7DQotCQljZmJf Y29weWFyZWEoaW5mbywgYXJlYSk7DQotCQlyZXR1cm47DQotCX0NCi0NCi0JLyogV2UgYmVnaW4g dGhlIGNvcHkgd2l0aCB0aGUgdHJhaWxpbmcgcGl4ZWxzIG9mIHRoZQ0KLQkgICB1bmFsaWduZWQg ZGVzdGluYXRpb24uICAqLw0KLQltYXNrX2ZpcnN0ID0gKDF1bCA8PCBkZWFsaWduKSAtIDE7DQot CWxlZnQgPSB3aWR0aCAtIGRlYWxpZ247DQotDQotCS8qIENhcmUgZm9yIHNtYWxsIGNvcGllcy4g ICovDQotCWlmIChkZWFsaWduID4gd2lkdGgpIHsNCi0JCW1hc2tfZmlyc3QgXj0gKDF1bCA8PCAo ZGVhbGlnbiAtIHdpZHRoKSkgLSAxOw0KLQkJbGVmdCA9IDA7DQotCX0NCisJZGVwb3MgPSBkeSAq IGxpbmVfbGVuZ3RoICsgZHg7DQorCXNlcG9zID0gc3kgKiBsaW5lX2xlbmd0aCArIHN4Ow0KKwlp ZiAoYmFja3dhcmQpDQorCQlkZXBvcyArPSB3aWR0aCwgc2Vwb3MgKz0gd2lkdGg7DQogDQogCS8q IE5leHQgY29weSBmdWxsIHdvcmRzIGF0IGEgdGltZS4gICovDQotCW4zMiA9IGxlZnQgLyAzMjsN Ci0JbGVmdCAlPSAzMjsNCisJbjMyID0gd2lkdGggLyAzMjsNCisJbGFzdF9zdGVwID0gd2lkdGgg JSAzMjsNCiANCiAJLyogRmluYWxseSBjb3B5IHRoZSB1bmFsaWduZWQgaGVhZCBvZiB0aGUgc3Bh bi4gICovDQotCW1hc2tfbGFzdCA9IC0xIDw8ICgzMiAtIGxlZnQpOw0KKwltYXNrX2xhc3QgPSAo MXVsIDw8IGxhc3Rfc3RlcCkgLSAxOw0KKw0KKwlpZiAoIWJhY2t3YXJkKSB7DQorCQlzdGVwID0g MzI7DQorCQlsYXN0X3N0ZXAgPSAzMjsNCisJfSBlbHNlIHsNCisJCXN0ZXAgPSAtMzI7DQorCQls YXN0X3N0ZXAgPSAtbGFzdF9zdGVwOw0KKwkJc2Vwb3MgLT0gMzI7DQorCQlkZXBvcyAtPSAzMjsN CisJfQ0KIA0KIAl0Z2FfcmVncyA9IHBhci0+dGdhX3JlZ3NfYmFzZTsNCiAJdGdhX2ZiID0gcGFy LT50Z2FfZmJfYmFzZTsNCkBAIC0xMzc4LDI1ICsxMjEzLDMzIEBAIGNvcHlhcmVhX2JhY2t3YXJk XzhicHAoc3RydWN0IGZiX2luZm8gKmluZm8sIHUzMiBkeCwgdTMyIGR5LCB1MzIgc3gsIHUzMiBz eSwNCiANCiAJCXNmYiA9IHRnYV9mYiArIHNlcG9zOw0KIAkJZGZiID0gdGdhX2ZiICsgZGVwb3M7 DQotCQlpZiAobWFza19maXJzdCkgew0KLQkJCV9fcmF3X3dyaXRlbChtYXNrX2ZpcnN0LCBzZmIp Ow0KLQkJCXdtYigpOw0KLQkJCV9fcmF3X3dyaXRlbChtYXNrX2ZpcnN0LCBkZmIpOw0KLQkJCXdt YigpOw0KLQkJfQ0KIA0KLQkJZm9yIChqID0gMDsgaiA8IG4zMjsgKytqKSB7DQotCQkJc2ZiIC09 IDMyOw0KLQkJCWRmYiAtPSAzMjsNCisJCWZvciAoaiA9IDA7IGogPCBuMzI7IGorKykgew0KKwkJ CWlmIChqIDwgMiAmJiBqICsgMSA8IG4zMiAmJiAhYmFja3dhcmQgJiYNCisJCQkgICAgISgoKHVu c2lnbmVkIGxvbmcpc2ZiIHwgKHVuc2lnbmVkIGxvbmcpZGZiKSAmIDYzKSkgew0KKwkJCQlkbyB7 DQorCQkJCQlfX3Jhd193cml0ZWwoc2ZiIC0gdGdhX2ZiLCB0Z2FfcmVncytUR0FfQ09QWTY0X1NS Qyk7DQorCQkJCQl3bWIoKTsNCisJCQkJCV9fcmF3X3dyaXRlbChkZmIgLSB0Z2FfZmIsIHRnYV9y ZWdzK1RHQV9DT1BZNjRfRFNUKTsNCisJCQkJCXdtYigpOw0KKwkJCQkJc2ZiICs9IDY0Ow0KKwkJ CQkJZGZiICs9IDY0Ow0KKwkJCQkJaiArPSAyOw0KKwkJCQl9IHdoaWxlIChqICsgMSA8IG4zMik7 DQorCQkJCWotLTsNCisJCQkJY29udGludWU7DQorCQkJfQ0KIAkJCV9fcmF3X3dyaXRlbCgweGZm ZmZmZmZmLCBzZmIpOw0KIAkJCXdtYigpOw0KIAkJCV9fcmF3X3dyaXRlbCgweGZmZmZmZmZmLCBk ZmIpOw0KIAkJCXdtYigpOw0KKwkJCXNmYiArPSBzdGVwOw0KKwkJCWRmYiArPSBzdGVwOw0KIAkJ fQ0KIA0KIAkJaWYgKG1hc2tfbGFzdCkgew0KLQkJCXNmYiAtPSAzMjsNCi0JCQlkZmIgLT0gMzI7 DQorCQkJc2ZiICs9IGxhc3Rfc3RlcCAtIHN0ZXA7DQorCQkJZGZiICs9IGxhc3Rfc3RlcCAtIHN0 ZXA7DQogCQkJX19yYXdfd3JpdGVsKG1hc2tfbGFzdCwgc2ZiKTsNCiAJCQl3bWIoKTsNCiAJCQlf X3Jhd193cml0ZWwobWFza19sYXN0LCBkZmIpOw0KQEAgLTE0NTcsMTQgKzEzMDAsOSBAQCB0Z2Fm Yl9jb3B5YXJlYShzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0IGZiX2NvcHlhcmVh ICphcmVhKQ0KIAllbHNlIGlmIChicHAgPT0gMzIpDQogCQljZmJfY29weWFyZWEoaW5mbywgYXJl YSk7DQogDQotCS8qIERldGVjdCBvdmVybGFwcGluZyBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHRo YXQgcmVxdWlyZXMNCi0JICAgYSBiYWNrd2FyZCBjb3B5LiAgKi8NCi0JZWxzZSBpZiAoZHkgPT0g c3kgJiYgZHggPiBzeCAmJiBkeCA8IHN4ICsgd2lkdGgpDQotCQljb3B5YXJlYV9iYWNrd2FyZF84 YnBwKGluZm8sIGR4LCBkeSwgc3gsIHN5LCBoZWlnaHQsDQotCQkJCSAgICAgICB3aWR0aCwgbGlu ZV9sZW5ndGgsIGFyZWEpOw0KIAllbHNlDQotCQljb3B5YXJlYV9mb3Jld2FyZF84YnBwKGluZm8s IGR4LCBkeSwgc3gsIHN5LCBoZWlnaHQsDQotCQkJCSAgICAgICB3aWR0aCwgbGluZV9sZW5ndGgp Ow0KKwkJY29weWFyZWFfOGJwcChpbmZvLCBkeCwgZHksIHN4LCBzeSwgaGVpZ2h0LA0KKwkJCSAg ICAgIHdpZHRoLCBsaW5lX2xlbmd0aCwgYXJlYSk7DQogfQ0KIA0KIA0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvdmlydGlvL3ZpcnRpb19iYWxsb29uLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fYmFs bG9vbi5jDQppbmRleCA5NGZkNzM4Li4yODE1M2ZiIDEwMDY0NA0KLS0tIGEvZHJpdmVycy92aXJ0 aW8vdmlydGlvX2JhbGxvb24uYw0KKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX2JhbGxvb24u Yw0KQEAgLTI3MSw2ICsyNzEsMTIgQEAgc3RhdGljIGludCBiYWxsb29uKHZvaWQgKl92YmFsbG9v bikNCiAJCWVsc2UgaWYgKGRpZmYgPCAwKQ0KIAkJCWxlYWtfYmFsbG9vbih2YiwgLWRpZmYpOw0K IAkJdXBkYXRlX2JhbGxvb25fc2l6ZSh2Yik7DQorDQorCQkvKg0KKwkJICogRm9yIGxhcmdlIGJh bGxvb24gY2hhbmdlcywgd2UgY291bGQgc3BlbmQgYSBsb3Qgb2YgdGltZQ0KKwkJICogYW5kIGFs d2F5cyBoYXZlIHdvcmsgdG8gZG8uICBCZSBuaWNlIGlmIHByZWVtcHQgZGlzYWJsZWQuDQorCQkg Ki8NCisJCWNvbmRfcmVzY2hlZCgpOw0KIAl9DQogCXJldHVybiAwOw0KIH0NCmRpZmYgLS1naXQg YS9kcml2ZXJzL3cxL3cxX25ldGxpbmsuYyBiL2RyaXZlcnMvdzEvdzFfbmV0bGluay5jDQppbmRl eCA0MDc4OGM5Li43MzcwNWFmIDEwMDY0NA0KLS0tIGEvZHJpdmVycy93MS93MV9uZXRsaW5rLmMN CisrKyBiL2RyaXZlcnMvdzEvdzFfbmV0bGluay5jDQpAQCAtNTQsMjggKzU0LDI5IEBAIHN0YXRp YyB2b2lkIHcxX3NlbmRfc2xhdmUoc3RydWN0IHcxX21hc3RlciAqZGV2LCB1NjQgcm4pDQogCXN0 cnVjdCB3MV9uZXRsaW5rX21zZyAqaGRyID0gKHN0cnVjdCB3MV9uZXRsaW5rX21zZyAqKShtc2cg KyAxKTsNCiAJc3RydWN0IHcxX25ldGxpbmtfY21kICpjbWQgPSAoc3RydWN0IHcxX25ldGxpbmtf Y21kICopKGhkciArIDEpOw0KIAlpbnQgYXZhaWw7DQorCXU2NCAqZGF0YTsNCiANCiAJLyogdXBk YXRlIGtlcm5lbCBzbGF2ZSBsaXN0ICovDQogCXcxX3NsYXZlX2ZvdW5kKGRldiwgcm4pOw0KIA0K IAlhdmFpbCA9IGRldi0+cHJpdl9zaXplIC0gY21kLT5sZW47DQogDQotCWlmIChhdmFpbCA+IDgp IHsNCi0JCXU2NCAqZGF0YSA9ICh2b2lkICopKGNtZCArIDEpICsgY21kLT5sZW47DQorCWlmIChh dmFpbCA8IDgpIHsNCisJCW1zZy0+YWNrKys7DQorCQljbl9uZXRsaW5rX3NlbmQobXNnLCAwLCBH RlBfS0VSTkVMKTsNCiANCi0JCSpkYXRhID0gcm47DQotCQljbWQtPmxlbiArPSA4Ow0KLQkJaGRy LT5sZW4gKz0gODsNCi0JCW1zZy0+bGVuICs9IDg7DQotCQlyZXR1cm47DQorCQltc2ctPmxlbiA9 IHNpemVvZihzdHJ1Y3QgdzFfbmV0bGlua19tc2cpICsNCisJCQlzaXplb2Yoc3RydWN0IHcxX25l dGxpbmtfY21kKTsNCisJCWhkci0+bGVuID0gc2l6ZW9mKHN0cnVjdCB3MV9uZXRsaW5rX2NtZCk7 DQorCQljbWQtPmxlbiA9IDA7DQogCX0NCiANCi0JbXNnLT5hY2srKzsNCi0JY25fbmV0bGlua19z ZW5kKG1zZywgMCwgR0ZQX0tFUk5FTCk7DQorCWRhdGEgPSAodm9pZCAqKShjbWQgKyAxKSArIGNt ZC0+bGVuOw0KIA0KLQltc2ctPmxlbiA9IHNpemVvZihzdHJ1Y3QgdzFfbmV0bGlua19tc2cpICsg c2l6ZW9mKHN0cnVjdCB3MV9uZXRsaW5rX2NtZCk7DQotCWhkci0+bGVuID0gc2l6ZW9mKHN0cnVj dCB3MV9uZXRsaW5rX2NtZCk7DQotCWNtZC0+bGVuID0gMDsNCisJKmRhdGEgPSBybjsNCisJY21k LT5sZW4gKz0gODsNCisJaGRyLT5sZW4gKz0gODsNCisJbXNnLT5sZW4gKz0gODsNCiB9DQogDQog c3RhdGljIGludCB3MV9wcm9jZXNzX3NlYXJjaF9jb21tYW5kKHN0cnVjdCB3MV9tYXN0ZXIgKmRl diwgc3RydWN0IGNuX21zZyAqbXNnLA0KZGlmZiAtLWdpdCBhL2ZzL2J0cmZzL2Rpc2staW8uYyBi L2ZzL2J0cmZzL2Rpc2staW8uYw0KaW5kZXggNmIyYTcyNC4uY2ZkZjZmZSAxMDA2NDQNCi0tLSBh L2ZzL2J0cmZzL2Rpc2staW8uYw0KKysrIGIvZnMvYnRyZnMvZGlzay1pby5jDQpAQCAtMjczMSw2 ICsyNzMxLDggQEAgc3RhdGljIGludCBiYXJyaWVyX2FsbF9kZXZpY2VzKHN0cnVjdCBidHJmc19m c19pbmZvICppbmZvKQ0KIAkvKiBzZW5kIGRvd24gYWxsIHRoZSBiYXJyaWVycyAqLw0KIAloZWFk ID0gJmluZm8tPmZzX2RldmljZXMtPmRldmljZXM7DQogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1 KGRldiwgaGVhZCwgZGV2X2xpc3QpIHsNCisJCWlmIChkZXYtPm1pc3NpbmcpDQorCQkJY29udGlu dWU7DQogCQlpZiAoIWRldi0+YmRldikgew0KIAkJCWVycm9ycysrOw0KIAkJCWNvbnRpbnVlOw0K QEAgLTI3NDUsNiArMjc0Nyw4IEBAIHN0YXRpYyBpbnQgYmFycmllcl9hbGxfZGV2aWNlcyhzdHJ1 Y3QgYnRyZnNfZnNfaW5mbyAqaW5mbykNCiANCiAJLyogd2FpdCBmb3IgYWxsIHRoZSBiYXJyaWVy cyAqLw0KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShkZXYsIGhlYWQsIGRldl9saXN0KSB7DQor CQlpZiAoZGV2LT5taXNzaW5nKQ0KKwkJCWNvbnRpbnVlOw0KIAkJaWYgKCFkZXYtPmJkZXYpIHsN CiAJCQllcnJvcnMrKzsNCiAJCQljb250aW51ZTsNCmRpZmYgLS1naXQgYS9mcy9idHJmcy90cmFu c2FjdGlvbi5jIGIvZnMvYnRyZnMvdHJhbnNhY3Rpb24uYw0KaW5kZXggODEzNzZkOS4uMjkyZTg0 NyAxMDA2NDQNCi0tLSBhL2ZzL2J0cmZzL3RyYW5zYWN0aW9uLmMNCisrKyBiL2ZzL2J0cmZzL3Ry YW5zYWN0aW9uLmMNCkBAIC00NjAsNyArNDYwLDggQEAgc3RhdGljIGludCBfX2J0cmZzX2VuZF90 cmFuc2FjdGlvbihzdHJ1Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0cmFucywNCiAJc3RydWN0IGJ0 cmZzX2ZzX2luZm8gKmluZm8gPSByb290LT5mc19pbmZvOw0KIAlpbnQgY291bnQgPSAwOw0KIA0K LQlpZiAoLS10cmFucy0+dXNlX2NvdW50KSB7DQorCWlmICh0cmFucy0+dXNlX2NvdW50ID4gMSkg ew0KKwkJdHJhbnMtPnVzZV9jb3VudC0tOw0KIAkJdHJhbnMtPmJsb2NrX3JzdiA9IHRyYW5zLT5v cmlnX3JzdjsNCiAJCXJldHVybiAwOw0KIAl9DQpAQCAtNDk0LDE3ICs0OTUsMTAgQEAgc3RhdGlj IGludCBfX2J0cmZzX2VuZF90cmFuc2FjdGlvbihzdHJ1Y3QgYnRyZnNfdHJhbnNfaGFuZGxlICp0 cmFucywNCiAJfQ0KIA0KIAlpZiAobG9jayAmJiBjdXJfdHJhbnMtPmJsb2NrZWQgJiYgIWN1cl90 cmFucy0+aW5fY29tbWl0KSB7DQotCQlpZiAodGhyb3R0bGUpIHsNCi0JCQkvKg0KLQkJCSAqIFdl IG1heSByYWNlIHdpdGggc29tZWJvZHkgZWxzZSBoZXJlIHNvIGVuZCB1cCBoYXZpbmcNCi0JCQkg KiB0byBjYWxsIGVuZF90cmFuc2FjdGlvbiBvbiBvdXJzZWx2ZXMgYWdhaW4sIHNvIGluYw0KLQkJ CSAqIG91ciB1c2VfY291bnQuDQotCQkJICovDQotCQkJdHJhbnMtPnVzZV9jb3VudCsrOw0KKwkJ aWYgKHRocm90dGxlKQ0KIAkJCXJldHVybiBidHJmc19jb21taXRfdHJhbnNhY3Rpb24odHJhbnMs IHJvb3QpOw0KLQkJfSBlbHNlIHsNCisJCWVsc2UNCiAJCQl3YWtlX3VwX3Byb2Nlc3MoaW5mby0+ dHJhbnNhY3Rpb25fa3RocmVhZCk7DQotCQl9DQogCX0NCiANCiAJV0FSTl9PTihjdXJfdHJhbnMg IT0gaW5mby0+cnVubmluZ190cmFuc2FjdGlvbik7DQpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHRl bnRzLmMgYi9mcy9leHQ0L2V4dGVudHMuYw0KaW5kZXggYmYzNWZlMC4uODM0ZDlhMSAxMDA2NDQN Ci0tLSBhL2ZzL2V4dDQvZXh0ZW50cy5jDQorKysgYi9mcy9leHQ0L2V4dGVudHMuYw0KQEAgLTIz NzIsNiArMjM3MiwyNyBAQCBleHQ0X2V4dF9ybV9sZWFmKGhhbmRsZV90ICpoYW5kbGUsIHN0cnVj dCBpbm9kZSAqaW5vZGUsDQogCWV4X2VlX2Jsb2NrID0gbGUzMl90b19jcHUoZXgtPmVlX2Jsb2Nr KTsNCiAJZXhfZWVfbGVuID0gZXh0NF9leHRfZ2V0X2FjdHVhbF9sZW4oZXgpOw0KIA0KKwkvKg0K KwkgKiBJZiB3ZSdyZSBzdGFydGluZyB3aXRoIGFuIGV4dGVudCBvdGhlciB0aGFuIHRoZSBsYXN0 IG9uZSBpbiB0aGUNCisJICogbm9kZSwgd2UgbmVlZCB0byBzZWUgaWYgaXQgc2hhcmVzIGEgY2x1 c3RlciB3aXRoIHRoZSBleHRlbnQgdG8NCisJICogdGhlIHJpZ2h0ICh0b3dhcmRzIHRoZSBlbmQg b2YgdGhlIGZpbGUpLiBJZiBpdHMgbGVmdG1vc3QgY2x1c3Rlcg0KKwkgKiBpcyB0aGlzIGV4dGVu dCdzIHJpZ2h0bW9zdCBjbHVzdGVyIGFuZCBpdCBpcyBub3QgY2x1c3RlciBhbGlnbmVkLA0KKwkg KiB3ZSdsbCBtYXJrIGl0IGFzIGEgcGFydGlhbCB0aGF0IGlzIG5vdCB0byBiZSBkZWFsbG9jYXRl ZC4NCisJICovDQorDQorCWlmIChleCAhPSBFWFRfTEFTVF9FWFRFTlQoZWgpKSB7DQorCQlleHQ0 X2ZzYmxrX3QgY3VycmVudF9wYmxrLCByaWdodF9wYmxrOw0KKwkJbG9uZyBsb25nIGN1cnJlbnRf Y2x1c3RlciwgcmlnaHRfY2x1c3RlcjsNCisNCisJCWN1cnJlbnRfcGJsayA9IGV4dDRfZXh0X3Bi bG9jayhleCkgKyBleF9lZV9sZW4gLSAxOw0KKwkJY3VycmVudF9jbHVzdGVyID0gKGxvbmcgbG9u ZylFWFQ0X0IyQyhzYmksIGN1cnJlbnRfcGJsayk7DQorCQlyaWdodF9wYmxrID0gZXh0NF9leHRf cGJsb2NrKGV4ICsgMSk7DQorCQlyaWdodF9jbHVzdGVyID0gKGxvbmcgbG9uZylFWFQ0X0IyQyhz YmksIHJpZ2h0X3BibGspOw0KKwkJaWYgKGN1cnJlbnRfY2x1c3RlciA9PSByaWdodF9jbHVzdGVy ICYmDQorCQkJRVhUNF9QQkxLX0NPRkYoc2JpLCByaWdodF9wYmxrKSkNCisJCQkqcGFydGlhbF9j bHVzdGVyID0gLXJpZ2h0X2NsdXN0ZXI7DQorCX0NCisNCiAJdHJhY2VfZXh0NF9leHRfcm1fbGVh Zihpbm9kZSwgc3RhcnQsIGV4LCAqcGFydGlhbF9jbHVzdGVyKTsNCiANCiAJd2hpbGUgKGV4ID49 IEVYVF9GSVJTVF9FWFRFTlQoZWgpICYmDQpkaWZmIC0tZ2l0IGEvZnMvamZmczIvY29tcHJfcnRp bWUuYyBiL2ZzL2pmZnMyL2NvbXByX3J0aW1lLmMNCmluZGV4IDE2YTUwNDcuLjQwNmQ5Y2MgMTAw NjQ0DQotLS0gYS9mcy9qZmZzMi9jb21wcl9ydGltZS5jDQorKysgYi9mcy9qZmZzMi9jb21wcl9y dGltZS5jDQpAQCAtMzMsNyArMzMsNyBAQCBzdGF0aWMgaW50IGpmZnMyX3J0aW1lX2NvbXByZXNz KHVuc2lnbmVkIGNoYXIgKmRhdGFfaW4sDQogCQkJCXVuc2lnbmVkIGNoYXIgKmNwYWdlX291dCwN CiAJCQkJdWludDMyX3QgKnNvdXJjZWxlbiwgdWludDMyX3QgKmRzdGxlbikNCiB7DQotCXNob3J0 IHBvc2l0aW9uc1syNTZdOw0KKwl1bnNpZ25lZCBzaG9ydCBwb3NpdGlvbnNbMjU2XTsNCiAJaW50 IG91dHBvcyA9IDA7DQogCWludCBwb3M9MDsNCiANCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBp bnQgamZmczJfcnRpbWVfZGVjb21wcmVzcyh1bnNpZ25lZCBjaGFyICpkYXRhX2luLA0KIAkJCQkg IHVuc2lnbmVkIGNoYXIgKmNwYWdlX291dCwNCiAJCQkJICB1aW50MzJfdCBzcmNsZW4sIHVpbnQz Ml90IGRlc3RsZW4pDQogew0KLQlzaG9ydCBwb3NpdGlvbnNbMjU2XTsNCisJdW5zaWduZWQgc2hv cnQgcG9zaXRpb25zWzI1Nl07DQogCWludCBvdXRwb3MgPSAwOw0KIAlpbnQgcG9zPTA7DQogDQpk aWZmIC0tZ2l0IGEvZnMvamZmczIvbm9kZWxpc3QuaCBiL2ZzL2pmZnMyL25vZGVsaXN0LmgNCmlu ZGV4IGU0NjE5YjAuLmZhMzVmZjcgMTAwNjQ0DQotLS0gYS9mcy9qZmZzMi9ub2RlbGlzdC5oDQor KysgYi9mcy9qZmZzMi9ub2RlbGlzdC5oDQpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0cnVjdCBqZmZz Ml90bXBfZG5vZGVfaW5mbw0KIAl1aW50MzJfdCB2ZXJzaW9uOw0KIAl1aW50MzJfdCBkYXRhX2Ny YzsNCiAJdWludDMyX3QgcGFydGlhbF9jcmM7DQotCXVpbnQxNl90IGNzaXplOw0KKwl1aW50MzJf dCBjc2l6ZTsNCiAJdWludDE2X3Qgb3ZlcmxhcHBlZDsNCiB9Ow0KIA0KZGlmZiAtLWdpdCBhL2Zz L2pmZnMyL25vZGVtZ210LmMgYi9mcy9qZmZzMi9ub2RlbWdtdC5jDQppbmRleCA2OTRhYTViLi4x NDViYTM5IDEwMDY0NA0KLS0tIGEvZnMvamZmczIvbm9kZW1nbXQuYw0KKysrIGIvZnMvamZmczIv bm9kZW1nbXQuYw0KQEAgLTEyOCw2ICsxMjgsNyBAQCBpbnQgamZmczJfcmVzZXJ2ZV9zcGFjZShz dHJ1Y3QgamZmczJfc2JfaW5mbyAqYywgdWludDMyX3QgbWluc2l6ZSwNCiAJCQkJCXNwaW5fdW5s b2NrKCZjLT5lcmFzZV9jb21wbGV0aW9uX2xvY2spOw0KIA0KIAkJCQkJc2NoZWR1bGUoKTsNCisJ CQkJCXJlbW92ZV93YWl0X3F1ZXVlKCZjLT5lcmFzZV93YWl0LCAmd2FpdCk7DQogCQkJCX0gZWxz ZQ0KIAkJCQkJc3Bpbl91bmxvY2soJmMtPmVyYXNlX2NvbXBsZXRpb25fbG9jayk7DQogCQkJfSBl bHNlIGlmIChyZXQpDQpAQCAtMTU4LDE5ICsxNTksMjQgQEAgaW50IGpmZnMyX3Jlc2VydmVfc3Bh Y2Uoc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsIHVpbnQzMl90IG1pbnNpemUsDQogaW50IGpmZnMy X3Jlc2VydmVfc3BhY2VfZ2Moc3RydWN0IGpmZnMyX3NiX2luZm8gKmMsIHVpbnQzMl90IG1pbnNp emUsDQogCQkJICAgdWludDMyX3QgKmxlbiwgdWludDMyX3Qgc3Vtc2l6ZSkNCiB7DQotCWludCBy ZXQgPSAtRUFHQUlOOw0KKwlpbnQgcmV0Ow0KIAltaW5zaXplID0gUEFEKG1pbnNpemUpOw0KIA0K IAlEMShwcmludGsoS0VSTl9ERUJVRyAiamZmczJfcmVzZXJ2ZV9zcGFjZV9nYygpOiBSZXF1ZXN0 ZWQgMHgleCBieXRlc1xuIiwgbWluc2l6ZSkpOw0KIA0KLQlzcGluX2xvY2soJmMtPmVyYXNlX2Nv bXBsZXRpb25fbG9jayk7DQotCXdoaWxlKHJldCA9PSAtRUFHQUlOKSB7DQorCXdoaWxlICh0cnVl KSB7DQorCQlzcGluX2xvY2soJmMtPmVyYXNlX2NvbXBsZXRpb25fbG9jayk7DQogCQlyZXQgPSBq ZmZzMl9kb19yZXNlcnZlX3NwYWNlKGMsIG1pbnNpemUsIGxlbiwgc3Vtc2l6ZSk7DQogCQlpZiAo cmV0KSB7DQogCQkJRDEocHJpbnRrKEtFUk5fREVCVUcgImpmZnMyX3Jlc2VydmVfc3BhY2VfZ2M6 IGxvb3BpbmcsIHJldCBpcyAlZFxuIiwgcmV0KSk7DQogCQl9DQorCQlzcGluX3VubG9jaygmYy0+ ZXJhc2VfY29tcGxldGlvbl9sb2NrKTsNCisNCisJCWlmIChyZXQgPT0gLUVBR0FJTikNCisJCQlj b25kX3Jlc2NoZWQoKTsNCisJCWVsc2UNCisJCQlicmVhazsNCiAJfQ0KLQlzcGluX3VubG9jaygm Yy0+ZXJhc2VfY29tcGxldGlvbl9sb2NrKTsNCiAJaWYgKCFyZXQpDQogCQlyZXQgPSBqZmZzMl9w cmVhbGxvY19yYXdfbm9kZV9yZWZzKGMsIGMtPm5leHRibG9jaywgMSk7DQogDQpkaWZmIC0tZ2l0 IGEvZnMvbmZzZC9uZnM0cHJvYy5jIGIvZnMvbmZzZC9uZnM0cHJvYy5jDQppbmRleCBlMDY1NDk3 Li4zMTVhMWJhIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC9uZnM0cHJvYy5jDQorKysgYi9mcy9uZnNk L25mczRwcm9jLmMNCkBAIC0xMjI0LDYgKzEyMjQsMTIgQEAgbmZzZDRfcHJvY19jb21wb3VuZChz dHJ1Y3Qgc3ZjX3Jxc3QgKnJxc3RwLA0KIAkJLyogSWYgb3AgaXMgbm9uLWlkZW1wb3RlbnQgKi8N CiAJCWlmIChvcGRlc2MtPm9wX2ZsYWdzICYgT1BfTU9ESUZJRVNfU09NRVRISU5HKSB7DQogCQkJ cGxlbiA9IG9wZGVzYy0+b3BfcnNpemVfYm9wKHJxc3RwLCBvcCk7DQorCQkJLyoNCisJCQkgKiBJ ZiB0aGVyZSdzIHN0aWxsIGFub3RoZXIgb3BlcmF0aW9uLCBtYWtlIHN1cmUNCisJCQkgKiB3ZSds bCBoYXZlIHNwYWNlIHRvIGF0IGxlYXN0IGVuY29kZSBhbiBlcnJvcjoNCisJCQkgKi8NCisJCQlp ZiAocmVzcC0+b3BjbnQgPCBhcmdzLT5vcGNudCkNCisJCQkJcGxlbiArPSBDT01QT1VORF9FUlJf U0xBQ0tfU1BBQ0U7DQogCQkJb3AtPnN0YXR1cyA9IG5mc2Q0X2NoZWNrX3Jlc3Bfc2l6ZShyZXNw LCBwbGVuKTsNCiAJCX0NCiANCkBAIC0xMzgxLDcgKzEzODcsOCBAQCBzdGF0aWMgaW5saW5lIHUz MiBuZnNkNF9zZXRhdHRyX3JzaXplKHN0cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNk NF9vcCAqbw0KIA0KIHN0YXRpYyBpbmxpbmUgdTMyIG5mc2Q0X3NldGNsaWVudGlkX3JzaXplKHN0 cnVjdCBzdmNfcnFzdCAqcnFzdHAsIHN0cnVjdCBuZnNkNF9vcCAqb3ApDQogew0KLQlyZXR1cm4g KG9wX2VuY29kZV9oZHJfc2l6ZSArIDIgKyAxMDI0KSAqIHNpemVvZihfX2JlMzIpOw0KKwlyZXR1 cm4gKG9wX2VuY29kZV9oZHJfc2l6ZSArIDIgKyBYRFJfUVVBRExFTihORlM0X1ZFUklGSUVSX1NJ WkUpKSAqDQorCQkJCQkJCQlzaXplb2YoX19iZTMyKTsNCiB9DQogDQogc3RhdGljIGlubGluZSB1 MzIgbmZzZDRfd3JpdGVfcnNpemUoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3RydWN0IG5mc2Q0 X29wICpvcCkNCmRpZmYgLS1naXQgYS9mcy9uZnNkL25mczR4ZHIuYyBiL2ZzL25mc2QvbmZzNHhk ci5jDQppbmRleCBhZGU1MzE2Li40ODM1YjkwIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC9uZnM0eGRy LmMNCisrKyBiL2ZzL25mc2QvbmZzNHhkci5jDQpAQCAtMjQxMyw2ICsyNDEzLDggQEAgb3V0X2Fj bDoNCiAJCVdSSVRFNjQoc3RhdC5pbm8pOw0KIAl9DQogCWlmIChibXZhbDIgJiBGQVRUUjRfV09S RDJfU1VQUEFUVFJfRVhDTENSRUFUKSB7DQorCQlpZiAoKGJ1ZmxlbiAtPSAxNikgPCAwKQ0KKwkJ CWdvdG8gb3V0X3Jlc291cmNlOw0KIAkJV1JJVEUzMigzKTsNCiAJCVdSSVRFMzIoTkZTRF9TVVBQ QVRUUl9FWENMQ1JFQVRfV09SRDApOw0KIAkJV1JJVEUzMihORlNEX1NVUFBBVFRSX0VYQ0xDUkVB VF9XT1JEMSk7DQpkaWZmIC0tZ2l0IGEvZnMvbmZzZC92ZnMuYyBiL2ZzL25mc2QvdmZzLmMNCmlu ZGV4IDZhNjZmYzAuLjExZTE4ODggMTAwNjQ0DQotLS0gYS9mcy9uZnNkL3Zmcy5jDQorKysgYi9m cy9uZnNkL3Zmcy5jDQpAQCAtNDA2LDYgKzQwNiw3IEBAIG5mc2Rfc2V0YXR0cihzdHJ1Y3Qgc3Zj X3Jxc3QgKnJxc3RwLCBzdHJ1Y3Qgc3ZjX2ZoICpmaHAsIHN0cnVjdCBpYXR0ciAqaWFwLA0KIAlp bnQJCWZ0eXBlID0gMDsNCiAJX19iZTMyCQllcnI7DQogCWludAkJaG9zdF9lcnI7DQorCWJvb2wJ CWdldF93cml0ZV9jb3VudDsNCiAJaW50CQlzaXplX2NoYW5nZSA9IDA7DQogDQogCWlmIChpYXAt PmlhX3ZhbGlkICYgKEFUVFJfQVRJTUUgfCBBVFRSX01USU1FIHwgQVRUUl9TSVpFKSkNCkBAIC00 MTMsMTAgKzQxNCwxOCBAQCBuZnNkX3NldGF0dHIoc3RydWN0IHN2Y19ycXN0ICpycXN0cCwgc3Ry dWN0IHN2Y19maCAqZmhwLCBzdHJ1Y3QgaWF0dHIgKmlhcCwNCiAJaWYgKGlhcC0+aWFfdmFsaWQg JiBBVFRSX1NJWkUpDQogCQlmdHlwZSA9IFNfSUZSRUc7DQogDQorCS8qIENhbGxlcnMgdGhhdCBk byBmaF92ZXJpZnkgc2hvdWxkIGRvIHRoZSBmaF93YW50X3dyaXRlOiAqLw0KKwlnZXRfd3JpdGVf Y291bnQgPSAhZmhwLT5maF9kZW50cnk7DQorDQogCS8qIEdldCBpbm9kZSAqLw0KIAllcnIgPSBm aF92ZXJpZnkocnFzdHAsIGZocCwgZnR5cGUsIGFjY21vZGUpOw0KIAlpZiAoZXJyKQ0KIAkJZ290 byBvdXQ7DQorCWlmIChnZXRfd3JpdGVfY291bnQpIHsNCisJCWhvc3RfZXJyID0gZmhfd2FudF93 cml0ZShmaHApOw0KKwkJaWYgKGhvc3RfZXJyKQ0KKwkJCXJldHVybiBuZnNlcnJubyhob3N0X2Vy cik7DQorCX0NCiANCiAJZGVudHJ5ID0gZmhwLT5maF9kZW50cnk7DQogCWlub2RlID0gZGVudHJ5 LT5kX2lub2RlOw0KZGlmZiAtLWdpdCBhL2ZzL25mc2QvdmZzLmggYi9mcy9uZnNkL3Zmcy5oDQpp bmRleCA4NWQ0ZDQyLi5jN2ZlOTYyIDEwMDY0NA0KLS0tIGEvZnMvbmZzZC92ZnMuaA0KKysrIGIv ZnMvbmZzZC92ZnMuaA0KQEAgLTEwOCw0ICsxMDgsMTQgQEAgc3RydWN0IHBvc2l4X2FjbCAqbmZz ZF9nZXRfcG9zaXhfYWNsKHN0cnVjdCBzdmNfZmggKiwgaW50KTsNCiBpbnQgbmZzZF9zZXRfcG9z aXhfYWNsKHN0cnVjdCBzdmNfZmggKiwgaW50LCBzdHJ1Y3QgcG9zaXhfYWNsICopOw0KICNlbmRp Zg0KIA0KK3N0YXRpYyBpbmxpbmUgaW50IGZoX3dhbnRfd3JpdGUoc3RydWN0IHN2Y19maCAqZmgp DQorew0KKwlyZXR1cm4gbW50X3dhbnRfd3JpdGUoZmgtPmZoX2V4cG9ydC0+ZXhfcGF0aC5tbnQp Ow0KK30NCisNCitzdGF0aWMgaW5saW5lIHZvaWQgZmhfZHJvcF93cml0ZShzdHJ1Y3Qgc3ZjX2Zo ICpmaCkNCit7DQorCW1udF9kcm9wX3dyaXRlKGZoLT5maF9leHBvcnQtPmV4X3BhdGgubW50KTsN Cit9DQorDQogI2VuZGlmIC8qIExJTlVYX05GU0RfVkZTX0ggKi8NCmRpZmYgLS1naXQgYS9mcy9v Y2ZzMi9idWZmZXJfaGVhZF9pby5jIGIvZnMvb2NmczIvYnVmZmVyX2hlYWRfaW8uYw0KaW5kZXgg NWQxOGFkMS4uNGY2NmUwMCAxMDA2NDQNCi0tLSBhL2ZzL29jZnMyL2J1ZmZlcl9oZWFkX2lvLmMN CisrKyBiL2ZzL29jZnMyL2J1ZmZlcl9oZWFkX2lvLmMNCkBAIC05MCw3ICs5MCw2IEBAIGludCBv Y2ZzMl93cml0ZV9ibG9jayhzdHJ1Y3Qgb2NmczJfc3VwZXIgKm9zYiwgc3RydWN0IGJ1ZmZlcl9o ZWFkICpiaCwNCiAJCSAqIGluZm9ybWF0aW9uIGZvciB0aGlzIGJoIGFzIGl0J3Mgbm90IG1hcmtl ZCBsb2NhbGx5DQogCQkgKiB1cHRvZGF0ZS4gKi8NCiAJCXJldCA9IC1FSU87DQotCQlwdXRfYmgo YmgpOw0KIAkJbWxvZ19lcnJubyhyZXQpOw0KIAl9DQogDQpAQCAtNDIwLDcgKzQxOSw2IEBAIGlu dCBvY2ZzMl93cml0ZV9zdXBlcl9vcl9iYWNrdXAoc3RydWN0IG9jZnMyX3N1cGVyICpvc2IsDQog DQogCWlmICghYnVmZmVyX3VwdG9kYXRlKGJoKSkgew0KIAkJcmV0ID0gLUVJTzsNCi0JCXB1dF9i aChiaCk7DQogCQltbG9nX2Vycm5vKHJldCk7DQogCX0NCiANCmRpZmYgLS1naXQgYS9mcy9vY2Zz Mi9kbG0vZGxtcmVjb3ZlcnkuYyBiL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jDQppbmRleCAw MWViZmQwLi5kMTViMDcxIDEwMDY0NA0KLS0tIGEvZnMvb2NmczIvZGxtL2RsbXJlY292ZXJ5LmMN CisrKyBiL2ZzL29jZnMyL2RsbS9kbG1yZWNvdmVyeS5jDQpAQCAtNTQwLDcgKzU0MCwxMCBAQCBt YXN0ZXJfaGVyZToNCiAJCS8qIHN1Y2Nlc3MhICBzZWUgaWYgYW55IG90aGVyIG5vZGVzIG5lZWQg cmVjb3ZlcnkgKi8NCiAJCW1sb2coMCwgIkRPTkUgbWFzdGVyaW5nIHJlY292ZXJ5IG9mICVzOiV1 IGhlcmUodGhpcz0ldSkhXG4iLA0KIAkJICAgICBkbG0tPm5hbWUsIGRsbS0+cmVjby5kZWFkX25v ZGUsIGRsbS0+bm9kZV9udW0pOw0KLQkJZGxtX3Jlc2V0X3JlY292ZXJ5KGRsbSk7DQorCQlzcGlu X2xvY2soJmRsbS0+c3BpbmxvY2spOw0KKwkJX19kbG1fcmVzZXRfcmVjb3ZlcnkoZGxtKTsNCisJ CWRsbS0+cmVjby5zdGF0ZSAmPSB+RExNX1JFQ09fU1RBVEVfRklOQUxJWkU7DQorCQlzcGluX3Vu bG9jaygmZGxtLT5zcGlubG9jayk7DQogCX0NCiAJZGxtX2VuZF9yZWNvdmVyeShkbG0pOw0KIA0K QEAgLTY5OCw2ICs3MDEsMTQgQEAgc3RhdGljIGludCBkbG1fcmVtYXN0ZXJfbG9ja3Moc3RydWN0 IGRsbV9jdHh0ICpkbG0sIHU4IGRlYWRfbm9kZSkNCiAJCWlmIChhbGxfbm9kZXNfZG9uZSkgew0K IAkJCWludCByZXQ7DQogDQorCQkJLyogU2V0IHRoaXMgZmxhZyBvbiByZWNvdmVyeSBtYXN0ZXIg dG8gYXZvaWQNCisJCQkgKiBhIG5ldyByZWNvdmVyeSBmb3IgYW5vdGhlciBkZWFkIG5vZGUgc3Rh cnQNCisJCQkgKiBiZWZvcmUgdGhlIHJlY292ZXJ5IGlzIG5vdCBkb25lLiBUaGF0IG1heQ0KKwkJ CSAqIGNhdXNlIHJlY292ZXJ5IGh1bmcuKi8NCisJCQlzcGluX2xvY2soJmRsbS0+c3BpbmxvY2sp Ow0KKwkJCWRsbS0+cmVjby5zdGF0ZSB8PSBETE1fUkVDT19TVEFURV9GSU5BTElaRTsNCisJCQlz cGluX3VubG9jaygmZGxtLT5zcGlubG9jayk7DQorDQogCQkJLyogYWxsIG5vZGVzIGFyZSBub3cg aW4gRExNX1JFQ09fTk9ERV9EQVRBX0RPTkUgc3RhdGUNCiAJIAkJICoganVzdCBzZW5kIGEgZmlu YWxpemUgbWVzc2FnZSB0byBldmVyeW9uZSBhbmQNCiAJIAkJICogY2xlYW4gdXAgKi8NCkBAIC0x NzUyLDEzICsxNzYzLDEzIEBAIHN0YXRpYyBpbnQgZGxtX3Byb2Nlc3NfcmVjb3ZlcnlfZGF0YShz dHJ1Y3QgZGxtX2N0eHQgKmRsbSwNCiAJCQkJICAgICBzdHJ1Y3QgZGxtX21pZ3JhdGFibGVfbG9j a3JlcyAqbXJlcykNCiB7DQogCXN0cnVjdCBkbG1fbWlncmF0YWJsZV9sb2NrICptbDsNCi0Jc3Ry dWN0IGxpc3RfaGVhZCAqcXVldWU7DQorCXN0cnVjdCBsaXN0X2hlYWQgKnF1ZXVlLCAqaXRlcjsN CiAJc3RydWN0IGxpc3RfaGVhZCAqdG1wcSA9IE5VTEw7DQogCXN0cnVjdCBkbG1fbG9jayAqbmV3 bG9jayA9IE5VTEw7DQogCXN0cnVjdCBkbG1fbG9ja3N0YXR1cyAqbGtzYiA9IE5VTEw7DQogCWlu dCByZXQgPSAwOw0KIAlpbnQgaSwgaiwgYmFkOw0KLQlzdHJ1Y3QgZGxtX2xvY2sgKmxvY2sgPSBO VUxMOw0KKwlzdHJ1Y3QgZGxtX2xvY2sgKmxvY2s7DQogCXU4IGZyb20gPSBPMk5NX01BWF9OT0RF UzsNCiAJdW5zaWduZWQgaW50IGFkZGVkID0gMDsNCiAJX19iZTY0IGM7DQpAQCAtMTc5MywxNCAr MTgwNCwxNiBAQCBzdGF0aWMgaW50IGRsbV9wcm9jZXNzX3JlY292ZXJ5X2RhdGEoc3RydWN0IGRs bV9jdHh0ICpkbG0sDQogCQkJLyogTUlHUkFUSU9OIE9OTFkhICovDQogCQkJQlVHX09OKCEobXJl cy0+ZmxhZ3MgJiBETE1fTVJFU19NSUdSQVRJT04pKTsNCiANCisJCQlsb2NrID0gTlVMTDsNCiAJ CQlzcGluX2xvY2soJnJlcy0+c3BpbmxvY2spOw0KIAkJCWZvciAoaiA9IERMTV9HUkFOVEVEX0xJ U1Q7IGogPD0gRExNX0JMT0NLRURfTElTVDsgaisrKSB7DQogCQkJCXRtcHEgPSBkbG1fbGlzdF9p ZHhfdG9fcHRyKHJlcywgaik7DQotCQkJCWxpc3RfZm9yX2VhY2hfZW50cnkobG9jaywgdG1wcSwg bGlzdCkgew0KLQkJCQkJaWYgKGxvY2stPm1sLmNvb2tpZSAhPSBtbC0+Y29va2llKQ0KLQkJCQkJ CWxvY2sgPSBOVUxMOw0KLQkJCQkJZWxzZQ0KKwkJCQlsaXN0X2Zvcl9lYWNoKGl0ZXIsIHRtcHEp IHsNCisJCQkJCWxvY2sgPSBsaXN0X2VudHJ5KGl0ZXIsDQorCQkJCQkJICBzdHJ1Y3QgZGxtX2xv Y2ssIGxpc3QpOw0KKwkJCQkJaWYgKGxvY2stPm1sLmNvb2tpZSA9PSBtbC0+Y29va2llKQ0KIAkJ CQkJCWJyZWFrOw0KKwkJCQkJbG9jayA9IE5VTEw7DQogCQkJCX0NCiAJCQkJaWYgKGxvY2spDQog CQkJCQlicmVhazsNCkBAIC0yODcwLDggKzI4ODMsOCBAQCBpbnQgZGxtX2ZpbmFsaXplX3JlY29f aGFuZGxlcihzdHJ1Y3QgbzJuZXRfbXNnICptc2csIHUzMiBsZW4sIHZvaWQgKmRhdGEsDQogCQkJ CUJVRygpOw0KIAkJCX0NCiAJCQlkbG0tPnJlY28uc3RhdGUgJj0gfkRMTV9SRUNPX1NUQVRFX0ZJ TkFMSVpFOw0KKwkJCV9fZGxtX3Jlc2V0X3JlY292ZXJ5KGRsbSk7DQogCQkJc3Bpbl91bmxvY2so JmRsbS0+c3BpbmxvY2spOw0KLQkJCWRsbV9yZXNldF9yZWNvdmVyeShkbG0pOw0KIAkJCWRsbV9r aWNrX3JlY292ZXJ5X3RocmVhZChkbG0pOw0KIAkJCWJyZWFrOw0KIAkJZGVmYXVsdDoNCmRpZmYg LS1naXQgYS9mcy9yZWlzZXJmcy9kaXIuYyBiL2ZzL3JlaXNlcmZzL2Rpci5jDQppbmRleCAxMzNl OTM1Li44MDQ4ZWVhIDEwMDY0NA0KLS0tIGEvZnMvcmVpc2VyZnMvZGlyLmMNCisrKyBiL2ZzL3Jl aXNlcmZzL2Rpci5jDQpAQCAtMTI4LDYgKzEyOCw3IEBAIGludCByZWlzZXJmc19yZWFkZGlyX2Rl bnRyeShzdHJ1Y3QgZGVudHJ5ICpkZW50cnksIHZvaWQgKmRpcmVudCwNCiAJCQkJY2hhciAqZF9u YW1lOw0KIAkJCQlvZmZfdCBkX29mZjsNCiAJCQkJaW5vX3QgZF9pbm87DQorCQkJCWxvZmZfdCBj dXJfcG9zID0gZGVoX29mZnNldChkZWgpOw0KIA0KIAkJCQlpZiAoIWRlX3Zpc2libGUoZGVoKSkN CiAJCQkJCS8qIGl0IGlzIGhpZGRlbiBlbnRyeSAqLw0KQEAgLTIwMCw4ICsyMDEsOSBAQCBpbnQg cmVpc2VyZnNfcmVhZGRpcl9kZW50cnkoc3RydWN0IGRlbnRyeSAqZGVudHJ5LCB2b2lkICpkaXJl bnQsDQogCQkJCWlmIChsb2NhbF9idWYgIT0gc21hbGxfYnVmKSB7DQogCQkJCQlrZnJlZShsb2Nh bF9idWYpOw0KIAkJCQl9DQotCQkJCS8vIG5leHQgZW50cnkgc2hvdWxkIGJlIGxvb2tlZCBmb3Ig d2l0aCBzdWNoIG9mZnNldA0KLQkJCQluZXh0X3BvcyA9IGRlaF9vZmZzZXQoZGVoKSArIDE7DQor DQorCQkJCS8qIGRlaF9vZmZzZXQoZGVoKSBtYXkgYmUgaW52YWxpZCBub3cuICovDQorCQkJCW5l eHRfcG9zID0gY3VyX3BvcyArIDE7DQogDQogCQkJCWlmIChpdGVtX21vdmVkKCZ0bXBfaWgsICZw YXRoX3RvX2VudHJ5KSkgew0KIAkJCQkJZ290byByZXNlYXJjaDsNCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3NjaGVkLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgNCmluZGV4IGMxN2ZkZmIu LmNiMzRmZjQgMTAwNjQ0DQotLS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVkLmgNCisrKyBiL2luY2x1 ZGUvbGludXgvc2NoZWQuaA0KQEAgLTE2OTAsNiArMTY5MCwyNCBAQCBzdGF0aWMgaW5saW5lIHBp ZF90IHRhc2tfdGdpZF92bnIoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spDQogfQ0KIA0KIA0KK3N0 YXRpYyBpbnQgcGlkX2FsaXZlKGNvbnN0IHN0cnVjdCB0YXNrX3N0cnVjdCAqcCk7DQorc3RhdGlj IGlubGluZSBwaWRfdCB0YXNrX3BwaWRfbnJfbnMoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICp0 c2ssIHN0cnVjdCBwaWRfbmFtZXNwYWNlICpucykNCit7DQorCXBpZF90IHBpZCA9IDA7DQorDQor CXJjdV9yZWFkX2xvY2soKTsNCisJaWYgKHBpZF9hbGl2ZSh0c2spKQ0KKwkJcGlkID0gdGFza190 Z2lkX25yX25zKHJjdV9kZXJlZmVyZW5jZSh0c2stPnJlYWxfcGFyZW50KSwgbnMpOw0KKwlyY3Vf cmVhZF91bmxvY2soKTsNCisNCisJcmV0dXJuIHBpZDsNCit9DQorDQorc3RhdGljIGlubGluZSBw aWRfdCB0YXNrX3BwaWRfbnIoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0ICp0c2spDQorew0KKwly ZXR1cm4gdGFza19wcGlkX25yX25zKHRzaywgJmluaXRfcGlkX25zKTsNCit9DQorDQogc3RhdGlj IGlubGluZSBwaWRfdCB0YXNrX3BncnBfbnJfbnMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssDQog CQkJCQlzdHJ1Y3QgcGlkX25hbWVzcGFjZSAqbnMpDQogew0KQEAgLTE3MjcsNyArMTc0NSw3IEBA IHN0YXRpYyBpbmxpbmUgcGlkX3QgdGFza19wZ3JwX25yKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr KQ0KICAqIElmIHBpZF9hbGl2ZSBmYWlscywgdGhlbiBwb2ludGVycyB3aXRoaW4gdGhlIHRhc2sg c3RydWN0dXJlDQogICogY2FuIGJlIHN0YWxlIGFuZCBtdXN0IG5vdCBiZSBkZXJlZmVyZW5jZWQu DQogICovDQotc3RhdGljIGlubGluZSBpbnQgcGlkX2FsaXZlKHN0cnVjdCB0YXNrX3N0cnVjdCAq cCkNCitzdGF0aWMgaW5saW5lIGludCBwaWRfYWxpdmUoY29uc3Qgc3RydWN0IHRhc2tfc3RydWN0 ICpwKQ0KIHsNCiAJcmV0dXJuIHAtPnBpZHNbUElEVFlQRV9QSURdLnBpZCAhPSBOVUxMOw0KIH0N CmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy9ibG9jay5oIGIvaW5jbHVkZS90cmFj ZS9ldmVudHMvYmxvY2suaA0KaW5kZXggMDVjNWU2MS4uMDQ4ZTI2NSAxMDA2NDQNCi0tLSBhL2lu Y2x1ZGUvdHJhY2UvZXZlbnRzL2Jsb2NrLmgNCisrKyBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL2Js b2NrLmgNCkBAIC04MSw2ICs4MSw3IEBAIERFRklORV9FVkVOVChibG9ja19ycV93aXRoX2Vycm9y LCBibG9ja19ycV9yZXF1ZXVlLA0KICAqIGJsb2NrX3JxX2NvbXBsZXRlIC0gYmxvY2sgSU8gb3Bl cmF0aW9uIGNvbXBsZXRlZCBieSBkZXZpY2UgZHJpdmVyDQogICogQHE6IHF1ZXVlIGNvbnRhaW5p bmcgdGhlIGJsb2NrIG9wZXJhdGlvbiByZXF1ZXN0DQogICogQHJxOiBibG9jayBvcGVyYXRpb25z IHJlcXVlc3QNCisgKiBAbnJfYnl0ZXM6IG51bWJlciBvZiBjb21wbGV0ZWQgYnl0ZXMNCiAgKg0K ICAqIFRoZSBibG9ja19ycV9jb21wbGV0ZSB0cmFjZXBvaW50IGV2ZW50IGluZGljYXRlcyB0aGF0 IHNvbWUgcG9ydGlvbg0KICAqIG9mIG9wZXJhdGlvbiByZXF1ZXN0IGhhcyBiZWVuIGNvbXBsZXRl ZCBieSB0aGUgZGV2aWNlIGRyaXZlci4gIElmDQpAQCAtODgsMTEgKzg5LDM3IEBAIERFRklORV9F VkVOVChibG9ja19ycV93aXRoX2Vycm9yLCBibG9ja19ycV9yZXF1ZXVlLA0KICAqIGRvIGZvciB0 aGUgcmVxdWVzdC4gSWYgQHJxLT5iaW8gaXMgbm9uLU5VTEwgdGhlbiB0aGVyZSBpcw0KICAqIGFk ZGl0aW9uYWwgd29yayByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGUgcmVxdWVzdC4NCiAgKi8NCi1E RUZJTkVfRVZFTlQoYmxvY2tfcnFfd2l0aF9lcnJvciwgYmxvY2tfcnFfY29tcGxldGUsDQorVFJB Q0VfRVZFTlQoYmxvY2tfcnFfY29tcGxldGUsDQogDQotCVRQX1BST1RPKHN0cnVjdCByZXF1ZXN0 X3F1ZXVlICpxLCBzdHJ1Y3QgcmVxdWVzdCAqcnEpLA0KKwlUUF9QUk9UTyhzdHJ1Y3QgcmVxdWVz dF9xdWV1ZSAqcSwgc3RydWN0IHJlcXVlc3QgKnJxLA0KKwkJIHVuc2lnbmVkIGludCBucl9ieXRl cyksDQogDQotCVRQX0FSR1MocSwgcnEpDQorCVRQX0FSR1MocSwgcnEsIG5yX2J5dGVzKSwNCisN CisJVFBfU1RSVUNUX19lbnRyeSgNCisJCV9fZmllbGQoICBkZXZfdCwJZGV2CQkJKQ0KKwkJX19m aWVsZCggIHNlY3Rvcl90LAlzZWN0b3IJCQkpDQorCQlfX2ZpZWxkKCAgdW5zaWduZWQgaW50LAlu cl9zZWN0b3IJCSkNCisJCV9fZmllbGQoICBpbnQsCQllcnJvcnMJCQkpDQorCQlfX2FycmF5KCAg Y2hhciwJCXJ3YnMsCVJXQlNfTEVOCSkNCisJCV9fZHluYW1pY19hcnJheSggY2hhciwJY21kLAli bGtfY21kX2J1Zl9sZW4ocnEpCSkNCisJKSwNCisNCisJVFBfZmFzdF9hc3NpZ24oDQorCQlfX2Vu dHJ5LT5kZXYJICAgPSBycS0+cnFfZGlzayA/IGRpc2tfZGV2dChycS0+cnFfZGlzaykgOiAwOw0K KwkJX19lbnRyeS0+c2VjdG9yICAgID0gYmxrX3JxX3BvcyhycSk7DQorCQlfX2VudHJ5LT5ucl9z ZWN0b3IgPSBucl9ieXRlcyA+PiA5Ow0KKwkJX19lbnRyeS0+ZXJyb3JzICAgID0gcnEtPmVycm9y czsNCisNCisJCWJsa19maWxsX3J3YnMoX19lbnRyeS0+cndicywgcnEtPmNtZF9mbGFncywgbnJf Ynl0ZXMpOw0KKwkJYmxrX2R1bXBfY21kKF9fZ2V0X3N0cihjbWQpLCBycSk7DQorCSksDQorDQor CVRQX3ByaW50aygiJWQsJWQgJXMgKCVzKSAlbGx1ICsgJXUgWyVkXSIsDQorCQkgIE1BSk9SKF9f ZW50cnktPmRldiksIE1JTk9SKF9fZW50cnktPmRldiksDQorCQkgIF9fZW50cnktPnJ3YnMsIF9f Z2V0X3N0cihjbWQpLA0KKwkJICAodW5zaWduZWQgbG9uZyBsb25nKV9fZW50cnktPnNlY3RvciwN CisJCSAgX19lbnRyeS0+bnJfc2VjdG9yLCBfX2VudHJ5LT5lcnJvcnMpDQogKTsNCiANCiBERUNM QVJFX0VWRU5UX0NMQVNTKGJsb2NrX3JxLA0KZGlmZiAtLWdpdCBhL2tlcm5lbC9hdWRpdHNjLmMg Yi9rZXJuZWwvYXVkaXRzYy5jDQppbmRleCA0N2I3ZmMxLi5hZWFjN2NjIDEwMDY0NA0KLS0tIGEv a2VybmVsL2F1ZGl0c2MuYw0KKysrIGIva2VybmVsL2F1ZGl0c2MuYw0KQEAgLTQ3Myw3ICs0NzMs NyBAQCBzdGF0aWMgaW50IGF1ZGl0X2ZpbHRlcl9ydWxlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRz aywNCiAJCWNhc2UgQVVESVRfUFBJRDoNCiAJCQlpZiAoY3R4KSB7DQogCQkJCWlmICghY3R4LT5w cGlkKQ0KLQkJCQkJY3R4LT5wcGlkID0gc3lzX2dldHBwaWQoKTsNCisJCQkJCWN0eC0+cHBpZCA9 IHRhc2tfcHBpZF9ucih0c2spOw0KIAkJCQlyZXN1bHQgPSBhdWRpdF9jb21wYXJhdG9yKGN0eC0+ cHBpZCwgZi0+b3AsIGYtPnZhbCk7DQogCQkJfQ0KIAkJCWJyZWFrOw0KQEAgLTEzMzUsNyArMTMz NSw3IEBAIHN0YXRpYyB2b2lkIGF1ZGl0X2xvZ19leGl0KHN0cnVjdCBhdWRpdF9jb250ZXh0ICpj b250ZXh0LCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzDQogCS8qIHRzayA9PSBjdXJyZW50ICovDQog CWNvbnRleHQtPnBpZCA9IHRzay0+cGlkOw0KIAlpZiAoIWNvbnRleHQtPnBwaWQpDQotCQljb250 ZXh0LT5wcGlkID0gc3lzX2dldHBwaWQoKTsNCisJCWNvbnRleHQtPnBwaWQgPSB0YXNrX3BwaWRf bnIodHNrKTsNCiAJY3JlZCA9IGN1cnJlbnRfY3JlZCgpOw0KIAljb250ZXh0LT51aWQgICA9IGNy ZWQtPnVpZDsNCiAJY29udGV4dC0+Z2lkICAgPSBjcmVkLT5naWQ7DQpkaWZmIC0tZ2l0IGEva2Vy bmVsL2V4aXQuYyBiL2tlcm5lbC9leGl0LmMNCmluZGV4IDIzNGUxNTIuLmZkZTE1ZjkgMTAwNjQ0 DQotLS0gYS9rZXJuZWwvZXhpdC5jDQorKysgYi9rZXJuZWwvZXhpdC5jDQpAQCAtNzM0LDkgKzcz NCw2IEBAIHN0YXRpYyB2b2lkIHJlcGFyZW50X2xlYWRlcihzdHJ1Y3QgdGFza19zdHJ1Y3QgKmZh dGhlciwgc3RydWN0IHRhc2tfc3RydWN0ICpwLA0KIAkJCQlzdHJ1Y3QgbGlzdF9oZWFkICpkZWFk KQ0KIHsNCiAJbGlzdF9tb3ZlX3RhaWwoJnAtPnNpYmxpbmcsICZwLT5yZWFsX3BhcmVudC0+Y2hp bGRyZW4pOw0KLQ0KLQlpZiAocC0+ZXhpdF9zdGF0ZSA9PSBFWElUX0RFQUQpDQotCQlyZXR1cm47 DQogCS8qDQogCSAqIElmIHRoaXMgaXMgYSB0aHJlYWRlZCByZXBhcmVudCB0aGVyZSBpcyBubyBu ZWVkIHRvDQogCSAqIG5vdGlmeSBhbnlvbmUgYW55dGhpbmcgaGFzIGhhcHBlbmVkLg0KQEAgLTc0 NCw5ICs3NDEsMTkgQEAgc3RhdGljIHZvaWQgcmVwYXJlbnRfbGVhZGVyKHN0cnVjdCB0YXNrX3N0 cnVjdCAqZmF0aGVyLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsDQogCWlmIChzYW1lX3RocmVhZF9n cm91cChwLT5yZWFsX3BhcmVudCwgZmF0aGVyKSkNCiAJCXJldHVybjsNCiANCi0JLyogV2UgZG9u J3Qgd2FudCBwZW9wbGUgc2xheWluZyBpbml0LiAgKi8NCisJLyoNCisJICogV2UgZG9uJ3Qgd2Fu dCBwZW9wbGUgc2xheWluZyBpbml0Lg0KKwkgKg0KKwkgKiBOb3RlOiB3ZSBkbyB0aGlzIGV2ZW4g aWYgaXQgaXMgRVhJVF9ERUFELCB3YWl0X3Rhc2tfem9tYmllKCkNCisJICogY2FuIGNoYW5nZSAt PmV4aXRfc3RhdGUgdG8gRVhJVF9aT01CSUUuIElmIHRoaXMgaXMgdGhlIGZpbmFsDQorCSAqIHN0 YXRlLCBkb19ub3RpZnlfcGFyZW50KCkgd2FzIGFscmVhZHkgY2FsbGVkIGFuZCAtPmV4aXRfc2ln bmFsDQorCSAqIGRvZXNuJ3QgbWF0dGVyLg0KKwkgKi8NCiAJcC0+ZXhpdF9zaWduYWwgPSBTSUdD SExEOw0KIA0KKwlpZiAocC0+ZXhpdF9zdGF0ZSA9PSBFWElUX0RFQUQpDQorCQlyZXR1cm47DQor DQogCS8qIElmIGl0IGhhcyBleGl0ZWQgbm90aWZ5IHRoZSBuZXcgcGFyZW50IGFib3V0IHRoaXMg Y2hpbGQncyBkZWF0aC4gKi8NCiAJaWYgKCFwLT5wdHJhY2UgJiYNCiAJICAgIHAtPmV4aXRfc3Rh dGUgPT0gRVhJVF9aT01CSUUgJiYgdGhyZWFkX2dyb3VwX2VtcHR5KHApKSB7DQpkaWZmIC0tZ2l0 IGEva2VybmVsL3RyYWNlL2Jsa3RyYWNlLmMgYi9rZXJuZWwvdHJhY2UvYmxrdHJhY2UuYw0KaW5k ZXggMTZmYzM0YS4uOTJjYWMwNSAxMDA2NDQNCi0tLSBhL2tlcm5lbC90cmFjZS9ibGt0cmFjZS5j DQorKysgYi9rZXJuZWwvdHJhY2UvYmxrdHJhY2UuYw0KQEAgLTY5OSw2ICs2OTksNyBAQCB2b2lk IGJsa190cmFjZV9zaHV0ZG93bihzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkNCiAgKiBibGtfYWRk X3RyYWNlX3JxIC0gQWRkIGEgdHJhY2UgZm9yIGEgcmVxdWVzdCBvcmllbnRlZCBhY3Rpb24NCiAg KiBAcToJCXF1ZXVlIHRoZSBpbyBpcyBmb3INCiAgKiBAcnE6CQl0aGUgc291cmNlIHJlcXVlc3QN CisgKiBAbnJfYnl0ZXM6CW51bWJlciBvZiBjb21wbGV0ZWQgYnl0ZXMNCiAgKiBAd2hhdDoJdGhl IGFjdGlvbg0KICAqDQogICogRGVzY3JpcHRpb246DQpAQCAtNzA2LDcgKzcwNyw3IEBAIHZvaWQg YmxrX3RyYWNlX3NodXRkb3duKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKQ0KICAqDQogICoqLw0K IHN0YXRpYyB2b2lkIGJsa19hZGRfdHJhY2VfcnEoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0 cnVjdCByZXF1ZXN0ICpycSwNCi0JCQkgICAgIHUzMiB3aGF0KQ0KKwkJCSAgICAgdW5zaWduZWQg aW50IG5yX2J5dGVzLCB1MzIgd2hhdCkNCiB7DQogCXN0cnVjdCBibGtfdHJhY2UgKmJ0ID0gcS0+ YmxrX3RyYWNlOw0KIA0KQEAgLTcxNSwxMSArNzE2LDExIEBAIHN0YXRpYyB2b2lkIGJsa19hZGRf dHJhY2VfcnEoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCByZXF1ZXN0ICpycSwNCiAN CiAJaWYgKHJxLT5jbWRfdHlwZSA9PSBSRVFfVFlQRV9CTE9DS19QQykgew0KIAkJd2hhdCB8PSBC TEtfVENfQUNUKEJMS19UQ19QQyk7DQotCQlfX2Jsa19hZGRfdHJhY2UoYnQsIDAsIGJsa19ycV9i eXRlcyhycSksIHJxLT5jbWRfZmxhZ3MsDQorCQlfX2Jsa19hZGRfdHJhY2UoYnQsIDAsIG5yX2J5 dGVzLCBycS0+Y21kX2ZsYWdzLA0KIAkJCQl3aGF0LCBycS0+ZXJyb3JzLCBycS0+Y21kX2xlbiwg cnEtPmNtZCk7DQogCX0gZWxzZSAgew0KIAkJd2hhdCB8PSBCTEtfVENfQUNUKEJMS19UQ19GUyk7 DQotCQlfX2Jsa19hZGRfdHJhY2UoYnQsIGJsa19ycV9wb3MocnEpLCBibGtfcnFfYnl0ZXMocnEp LA0KKwkJX19ibGtfYWRkX3RyYWNlKGJ0LCBibGtfcnFfcG9zKHJxKSwgbnJfYnl0ZXMsDQogCQkJ CXJxLT5jbWRfZmxhZ3MsIHdoYXQsIHJxLT5lcnJvcnMsIDAsIE5VTEwpOw0KIAl9DQogfQ0KQEAg LTcyNywzMyArNzI4LDM0IEBAIHN0YXRpYyB2b2lkIGJsa19hZGRfdHJhY2VfcnEoc3RydWN0IHJl cXVlc3RfcXVldWUgKnEsIHN0cnVjdCByZXF1ZXN0ICpycSwNCiBzdGF0aWMgdm9pZCBibGtfYWRk X3RyYWNlX3JxX2Fib3J0KHZvaWQgKmlnbm9yZSwNCiAJCQkJICAgc3RydWN0IHJlcXVlc3RfcXVl dWUgKnEsIHN0cnVjdCByZXF1ZXN0ICpycSkNCiB7DQotCWJsa19hZGRfdHJhY2VfcnEocSwgcnEs IEJMS19UQV9BQk9SVCk7DQorCWJsa19hZGRfdHJhY2VfcnEocSwgcnEsIGJsa19ycV9ieXRlcyhy cSksIEJMS19UQV9BQk9SVCk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGJsa19hZGRfdHJhY2VfcnFf aW5zZXJ0KHZvaWQgKmlnbm9yZSwNCiAJCQkJICAgIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLCBz dHJ1Y3QgcmVxdWVzdCAqcnEpDQogew0KLQlibGtfYWRkX3RyYWNlX3JxKHEsIHJxLCBCTEtfVEFf SU5TRVJUKTsNCisJYmxrX2FkZF90cmFjZV9ycShxLCBycSwgYmxrX3JxX2J5dGVzKHJxKSwgQkxL X1RBX0lOU0VSVCk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGJsa19hZGRfdHJhY2VfcnFfaXNzdWUo dm9pZCAqaWdub3JlLA0KIAkJCQkgICBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwgc3RydWN0IHJl cXVlc3QgKnJxKQ0KIHsNCi0JYmxrX2FkZF90cmFjZV9ycShxLCBycSwgQkxLX1RBX0lTU1VFKTsN CisJYmxrX2FkZF90cmFjZV9ycShxLCBycSwgYmxrX3JxX2J5dGVzKHJxKSwgQkxLX1RBX0lTU1VF KTsNCiB9DQogDQogc3RhdGljIHZvaWQgYmxrX2FkZF90cmFjZV9ycV9yZXF1ZXVlKHZvaWQgKmln bm9yZSwNCiAJCQkJICAgICBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwNCiAJCQkJICAgICBzdHJ1 Y3QgcmVxdWVzdCAqcnEpDQogew0KLQlibGtfYWRkX3RyYWNlX3JxKHEsIHJxLCBCTEtfVEFfUkVR VUVVRSk7DQorCWJsa19hZGRfdHJhY2VfcnEocSwgcnEsIGJsa19ycV9ieXRlcyhycSksIEJMS19U QV9SRVFVRVVFKTsNCiB9DQogDQogc3RhdGljIHZvaWQgYmxrX2FkZF90cmFjZV9ycV9jb21wbGV0 ZSh2b2lkICppZ25vcmUsDQogCQkJCSAgICAgIHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxLA0KLQkJ CQkgICAgICBzdHJ1Y3QgcmVxdWVzdCAqcnEpDQorCQkJCSAgICAgIHN0cnVjdCByZXF1ZXN0ICpy cSwNCisJCQkJICAgICAgdW5zaWduZWQgaW50IG5yX2J5dGVzKQ0KIHsNCi0JYmxrX2FkZF90cmFj ZV9ycShxLCBycSwgQkxLX1RBX0NPTVBMRVRFKTsNCisJYmxrX2FkZF90cmFjZV9ycShxLCBycSwg bnJfYnl0ZXMsIEJMS19UQV9DT01QTEVURSk7DQogfQ0KIA0KIC8qKg0KZGlmZiAtLWdpdCBhL2xp Yi9ubGF0dHIuYyBiL2xpYi9ubGF0dHIuYw0KaW5kZXggYTg0MDhiNi4uMTkwYWUxMCAxMDA2NDQN Ci0tLSBhL2xpYi9ubGF0dHIuYw0KKysrIGIvbGliL25sYXR0ci5jDQpAQCAtMjk5LDkgKzI5OSwx NSBAQCBpbnQgbmxhX21lbWNtcChjb25zdCBzdHJ1Y3QgbmxhdHRyICpubGEsIGNvbnN0IHZvaWQg KmRhdGEsDQogICovDQogaW50IG5sYV9zdHJjbXAoY29uc3Qgc3RydWN0IG5sYXR0ciAqbmxhLCBj b25zdCBjaGFyICpzdHIpDQogew0KLQlpbnQgbGVuID0gc3RybGVuKHN0cikgKyAxOw0KLQlpbnQg ZCA9IG5sYV9sZW4obmxhKSAtIGxlbjsNCisJaW50IGxlbiA9IHN0cmxlbihzdHIpOw0KKwljaGFy ICpidWYgPSBubGFfZGF0YShubGEpOw0KKwlpbnQgYXR0cmxlbiA9IG5sYV9sZW4obmxhKTsNCisJ aW50IGQ7DQogDQorCWlmIChhdHRybGVuID4gMCAmJiBidWZbYXR0cmxlbiAtIDFdID09ICdcMCcp DQorCQlhdHRybGVuLS07DQorDQorCWQgPSBhdHRybGVuIC0gbGVuOw0KIAlpZiAoZCA9PSAwKQ0K IAkJZCA9IG1lbWNtcChubGFfZGF0YShubGEpLCBzdHIsIGxlbik7DQogDQpkaWZmIC0tZ2l0IGEv bGliL3BlcmNwdV9jb3VudGVyLmMgYi9saWIvcGVyY3B1X2NvdW50ZXIuYw0KaW5kZXggZjhhM2Yx YS4uMzM0NTllMCAxMDA2NDQNCi0tLSBhL2xpYi9wZXJjcHVfY291bnRlci5jDQorKysgYi9saWIv cGVyY3B1X2NvdW50ZXIuYw0KQEAgLTE2Niw3ICsxNjYsNyBAQCBzdGF0aWMgaW50IF9fY3B1aW5p dCBwZXJjcHVfY291bnRlcl9ob3RjcHVfY2FsbGJhY2soc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpu YiwNCiAJc3RydWN0IHBlcmNwdV9jb3VudGVyICpmYmM7DQogDQogCWNvbXB1dGVfYmF0Y2hfdmFs dWUoKTsNCi0JaWYgKGFjdGlvbiAhPSBDUFVfREVBRCkNCisJaWYgKGFjdGlvbiAhPSBDUFVfREVB RCAmJiBhY3Rpb24gIT0gQ1BVX0RFQURfRlJPWkVOKQ0KIAkJcmV0dXJuIE5PVElGWV9PSzsNCiAN CiAJY3B1ID0gKHVuc2lnbmVkIGxvbmcpaGNwdTsNCmRpZmYgLS1naXQgYS9tbS9odWdldGxiLmMg Yi9tbS9odWdldGxiLmMNCmluZGV4IDNhNWFhZTIuLmQzOTlmNWYgMTAwNjQ0DQotLS0gYS9tbS9o dWdldGxiLmMNCisrKyBiL21tL2h1Z2V0bGIuYw0KQEAgLTE0NDcsNiArMTQ0Nyw3IEBAIHN0YXRp YyB1bnNpZ25lZCBsb25nIHNldF9tYXhfaHVnZV9wYWdlcyhzdHJ1Y3QgaHN0YXRlICpoLCB1bnNp Z25lZCBsb25nIGNvdW50LA0KIAl3aGlsZSAobWluX2NvdW50IDwgcGVyc2lzdGVudF9odWdlX3Bh Z2VzKGgpKSB7DQogCQlpZiAoIWZyZWVfcG9vbF9odWdlX3BhZ2UoaCwgbm9kZXNfYWxsb3dlZCwg MCkpDQogCQkJYnJlYWs7DQorCQljb25kX3Jlc2NoZWRfbG9jaygmaHVnZXRsYl9sb2NrKTsNCiAJ fQ0KIAl3aGlsZSAoY291bnQgPCBwZXJzaXN0ZW50X2h1Z2VfcGFnZXMoaCkpIHsNCiAJCWlmICgh YWRqdXN0X3Bvb2xfc3VycGx1cyhoLCBub2Rlc19hbGxvd2VkLCAxKSkNCmRpZmYgLS1naXQgYS9t bS9tbG9jay5jIGIvbW0vbWxvY2suYw0KaW5kZXggNGY0ZjUzYi4uMzliM2E3ZCAxMDA2NDQNCi0t LSBhL21tL21sb2NrLmMNCisrKyBiL21tL21sb2NrLmMNCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQg X19jbGVhcl9wYWdlX21sb2NrKHN0cnVjdCBwYWdlICpwYWdlKQ0KICAqLw0KIHZvaWQgbWxvY2tf dm1hX3BhZ2Uoc3RydWN0IHBhZ2UgKnBhZ2UpDQogew0KKwkvKiBTZXJpYWxpemUgd2l0aCBwYWdl IG1pZ3JhdGlvbiAqLw0KIAlCVUdfT04oIVBhZ2VMb2NrZWQocGFnZSkpOw0KIA0KIAlpZiAoIVRl c3RTZXRQYWdlTWxvY2tlZChwYWdlKSkgew0KQEAgLTEwNSw2ICsxMDYsNyBAQCB2b2lkIG1sb2Nr X3ZtYV9wYWdlKHN0cnVjdCBwYWdlICpwYWdlKQ0KICAqLw0KIHZvaWQgbXVubG9ja192bWFfcGFn ZShzdHJ1Y3QgcGFnZSAqcGFnZSkNCiB7DQorCS8qIEZvciB0cnlfdG9fbXVubG9jaygpIGFuZCB0 byBzZXJpYWxpemUgd2l0aCBwYWdlIG1pZ3JhdGlvbiAqLw0KIAlCVUdfT04oIVBhZ2VMb2NrZWQo cGFnZSkpOw0KIA0KIAlpZiAoVGVzdENsZWFyUGFnZU1sb2NrZWQocGFnZSkpIHsNCmRpZmYgLS1n aXQgYS9tbS9ybWFwLmMgYi9tbS9ybWFwLmMNCmluZGV4IDUyYTJmMzYuLjlhYzQwNWIgMTAwNjQ0 DQotLS0gYS9tbS9ybWFwLmMNCisrKyBiL21tL3JtYXAuYw0KQEAgLTEzODUsOSArMTM4NSwxOSBA QCBzdGF0aWMgaW50IHRyeV90b191bm1hcF9jbHVzdGVyKHVuc2lnbmVkIGxvbmcgY3Vyc29yLCB1 bnNpZ25lZCBpbnQgKm1hcGNvdW50LA0KIAkJQlVHX09OKCFwYWdlIHx8IFBhZ2VBbm9uKHBhZ2Up KTsNCiANCiAJCWlmIChsb2NrZWRfdm1hKSB7DQotCQkJbWxvY2tfdm1hX3BhZ2UocGFnZSk7ICAg Lyogbm8tb3AgaWYgYWxyZWFkeSBtbG9ja2VkICovDQotCQkJaWYgKHBhZ2UgPT0gY2hlY2tfcGFn ZSkNCisJCQlpZiAocGFnZSA9PSBjaGVja19wYWdlKSB7DQorCQkJCS8qIHdlIGtub3cgd2UgaGF2 ZSBjaGVja19wYWdlIGxvY2tlZCAqLw0KKwkJCQltbG9ja192bWFfcGFnZShwYWdlKTsNCiAJCQkJ cmV0ID0gU1dBUF9NTE9DSzsNCisJCQl9IGVsc2UgaWYgKHRyeWxvY2tfcGFnZShwYWdlKSkgew0K KwkJCQkvKg0KKwkJCQkgKiBJZiB3ZSBjYW4gbG9jayB0aGUgcGFnZSwgcGVyZm9ybSBtbG9jay4N CisJCQkJICogT3RoZXJ3aXNlIGxlYXZlIHRoZSBwYWdlIGFsb25lLCBpdCB3aWxsIGJlDQorCQkJ CSAqIGV2ZW50dWFsbHkgZW5jb3VudGVyZWQgYWdhaW4gbGF0ZXIuDQorCQkJCSAqLw0KKwkJCQlt bG9ja192bWFfcGFnZShwYWdlKTsNCisJCQkJdW5sb2NrX3BhZ2UocGFnZSk7DQorCQkJfQ0KIAkJ CWNvbnRpbnVlOwkvKiBkb24ndCB1bm1hcCAqLw0KIAkJfQ0KIA0KZGlmZiAtLWdpdCBhL25ldC84 MDIxcS92bGFuX2Rldi5jIGIvbmV0LzgwMjFxL3ZsYW5fZGV2LmMNCmluZGV4IDQ4YTYyZDguLmM0 M2E3ODggMTAwNjQ0DQotLS0gYS9uZXQvODAyMXEvdmxhbl9kZXYuYw0KKysrIGIvbmV0LzgwMjFx L3ZsYW5fZGV2LmMNCkBAIC01MjksNiArNTI5LDkgQEAgc3RhdGljIGludCB2bGFuX3Bhc3N0aHJ1 X2hhcmRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYN CiB7DQogCXN0cnVjdCBuZXRfZGV2aWNlICpyZWFsX2RldiA9IHZsYW5fZGV2X2luZm8oZGV2KS0+ cmVhbF9kZXY7DQogDQorCWlmIChzYWRkciA9PSBOVUxMKQ0KKwkJc2FkZHIgPSBkZXYtPmRldl9h ZGRyOw0KKw0KIAlyZXR1cm4gZGV2X2hhcmRfaGVhZGVyKHNrYiwgcmVhbF9kZXYsIHR5cGUsIGRh ZGRyLCBzYWRkciwgbGVuKTsNCiB9DQogDQpkaWZmIC0tZ2l0IGEvbmV0L2JyaWRnZS9icl9tdWx0 aWNhc3QuYyBiL25ldC9icmlkZ2UvYnJfbXVsdGljYXN0LmMNCmluZGV4IDIxNTc5ODQuLjM5OGEy OTcgMTAwNjQ0DQotLS0gYS9uZXQvYnJpZGdlL2JyX211bHRpY2FzdC5jDQorKysgYi9uZXQvYnJp ZGdlL2JyX211bHRpY2FzdC5jDQpAQCAtMTEzOCw2ICsxMTM4LDEyIEBAIHN0YXRpYyBpbnQgYnJf aXA2X211bHRpY2FzdF9xdWVyeShzdHJ1Y3QgbmV0X2JyaWRnZSAqYnIsDQogDQogCWJyX211bHRp Y2FzdF9xdWVyeV9yZWNlaXZlZChiciwgcG9ydCwgIWlwdjZfYWRkcl9hbnkoJmlwNmgtPnNhZGRy KSk7DQogDQorCS8qIFJGQzI3MTArUkZDMzgxMCAoTUxEdjErTUxEdjIpIHJlcXVpcmUgbGluay1s b2NhbCBzb3VyY2UgYWRkcmVzc2VzICovDQorCWlmICghKGlwdjZfYWRkcl90eXBlKCZpcDZoLT5z YWRkcikgJiBJUFY2X0FERFJfTElOS0xPQ0FMKSkgew0KKwkJZXJyID0gLUVJTlZBTDsNCisJCWdv dG8gb3V0Ow0KKwl9DQorDQogCWlmIChza2ItPmxlbiA9PSBzaXplb2YoKm1sZCkpIHsNCiAJCWlm ICghcHNrYl9tYXlfcHVsbChza2IsIHNpemVvZigqbWxkKSkpIHsNCiAJCQllcnIgPSAtRUlOVkFM Ow0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5j DQppbmRleCA1ZDQxMjkzLi5iOWVkZmYwIDEwMDY0NA0KLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYu Yw0KKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYw0KQEAgLTkwMCw4ICs5MDAsMTEgQEAgcmV0cnk6 DQogCSAqIExpZmV0aW1lIGlzIGdyZWF0ZXIgdGhhbiBSRUdFTl9BRFZBTkNFIHRpbWUgdW5pdHMu ICBJbiBwYXJ0aWN1bGFyLA0KIAkgKiBhbiBpbXBsZW1lbnRhdGlvbiBtdXN0IG5vdCBjcmVhdGUg YSB0ZW1wb3JhcnkgYWRkcmVzcyB3aXRoIGEgemVybw0KIAkgKiBQcmVmZXJyZWQgTGlmZXRpbWUu DQorCSAqIFVzZSBhZ2UgY2FsY3VsYXRpb24gYXMgaW4gYWRkcmNvbmZfdmVyaWZ5IHRvIGF2b2lk IHVubmVjZXNzYXJ5DQorCSAqIHRlbXBvcmFyeSBhZGRyZXNzZXMgYmVpbmcgZ2VuZXJhdGVkLg0K IAkgKi8NCi0JaWYgKHRtcF9wcmVmZXJlZF9sZnQgPD0gcmVnZW5fYWR2YW5jZSkgew0KKwlhZ2Ug PSAobm93IC0gdG1wX3RzdGFtcCArIEFERFJDT05GX1RJTUVSX0ZVWlpfTUlOVVMpIC8gSFo7DQor CWlmICh0bXBfcHJlZmVyZWRfbGZ0IDw9IHJlZ2VuX2FkdmFuY2UgKyBhZ2UpIHsNCiAJCWluNl9p ZmFfcHV0KGlmcCk7DQogCQlpbjZfZGV2X3B1dChpZGV2KTsNCiAJCXJldCA9IC0xOw0KZGlmZiAt LWdpdCBhL25ldC9pcHY2L2ljbXAuYyBiL25ldC9pcHY2L2ljbXAuYw0KaW5kZXggZDUwNTQ1My4u Y2VjZWQ2NyAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L2ljbXAuYw0KKysrIGIvbmV0L2lwdjYvaWNt cC5jDQpAQCAtNDk5LDcgKzQ5OSw3IEBAIHZvaWQgaWNtcHY2X3NlbmQoc3RydWN0IHNrX2J1ZmYg KnNrYiwgdTggdHlwZSwgdTggY29kZSwgX191MzIgaW5mbykNCiAJCQkgICAgICBucC0+dGNsYXNz LCBOVUxMLCAmZmw2LCAoc3RydWN0IHJ0Nl9pbmZvKilkc3QsDQogCQkJICAgICAgTVNHX0RPTlRX QUlULCBucC0+ZG9udGZyYWcpOw0KIAlpZiAoZXJyKSB7DQotCQlJQ01QNl9JTkNfU1RBVFNfQkgo bmV0LCBpZGV2LCBJQ01QNl9NSUJfT1VURVJST1JTKTsNCisJCUlDTVA2X0lOQ19TVEFUUyhuZXQs IGlkZXYsIElDTVA2X01JQl9PVVRFUlJPUlMpOw0KIAkJaXA2X2ZsdXNoX3BlbmRpbmdfZnJhbWVz KHNrKTsNCiAJfSBlbHNlIHsNCiAJCWVyciA9IGljbXB2Nl9wdXNoX3BlbmRpbmdfZnJhbWVzKHNr LCAmZmw2LCAmdG1wX2hkciwNCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMgYi9u ZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCmluZGV4IGNkNGI1MjkuLjc4NzFjYzYgMTAwNjQ0DQotLS0g YS9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMNCisrKyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0KQEAg LTExOTEsMjEgKzExOTEsMTkgQEAgc3RhdGljIHZvaWQgaXA2X2FwcGVuZF9kYXRhX210dSh1bnNp Z25lZCBpbnQgKm10dSwNCiAJCQkJdW5zaWduZWQgaW50IGZyYWdoZWFkZXJsZW4sDQogCQkJCXN0 cnVjdCBza19idWZmICpza2IsDQogCQkJCXN0cnVjdCBydDZfaW5mbyAqcnQsDQotCQkJCWJvb2wg cG10dXByb2JlKQ0KKwkJCQl1bnNpZ25lZCBpbnQgb3JpZ19tdHUpDQogew0KIAlpZiAoIShydC0+ ZHN0LmZsYWdzICYgRFNUX1hGUk1fVFVOTkVMKSkgew0KIAkJaWYgKHNrYiA9PSBOVUxMKSB7DQog CQkJLyogZmlyc3QgZnJhZ21lbnQsIHJlc2VydmUgaGVhZGVyX2xlbiAqLw0KLQkJCSptdHUgPSAq bXR1IC0gcnQtPmRzdC5oZWFkZXJfbGVuOw0KKwkJCSptdHUgPSBvcmlnX210dSAtIHJ0LT5kc3Qu aGVhZGVyX2xlbjsNCiANCiAJCX0gZWxzZSB7DQogCQkJLyoNCiAJCQkgKiB0aGlzIGZyYWdtZW50 IGlzIG5vdCBmaXJzdCwgdGhlIGhlYWRlcnMNCiAJCQkgKiBzcGFjZSBpcyByZWdhcmRlZCBhcyBk YXRhIHNwYWNlLg0KIAkJCSAqLw0KLQkJCSptdHUgPSBtaW4oKm10dSwgcG10dXByb2JlID8NCi0J CQkJICAgcnQtPmRzdC5kZXYtPm10dSA6DQotCQkJCSAgIGRzdF9tdHUocnQtPmRzdC5wYXRoKSk7 DQorCQkJKm10dSA9IG9yaWdfbXR1Ow0KIAkJfQ0KIAkJKm1heGZyYWdsZW4gPSAoKCptdHUgLSBm cmFnaGVhZGVybGVuKSAmIH43KQ0KIAkJCSAgICAgICsgZnJhZ2hlYWRlcmxlbiAtIHNpemVvZihz dHJ1Y3QgZnJhZ19oZHIpOw0KQEAgLTEyMjIsNyArMTIyMCw3IEBAIGludCBpcDZfYXBwZW5kX2Rh dGEoc3RydWN0IHNvY2sgKnNrLCBpbnQgZ2V0ZnJhZyh2b2lkICpmcm9tLCBjaGFyICp0bywNCiAJ c3RydWN0IGlwdjZfcGluZm8gKm5wID0gaW5ldDZfc2soc2spOw0KIAlzdHJ1Y3QgaW5ldF9jb3Jr ICpjb3JrOw0KIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCAqc2tiX3ByZXYgPSBOVUxMOw0KLQl1bnNp Z25lZCBpbnQgbWF4ZnJhZ2xlbiwgZnJhZ2hlYWRlcmxlbiwgbXR1Ow0KKwl1bnNpZ25lZCBpbnQg bWF4ZnJhZ2xlbiwgZnJhZ2hlYWRlcmxlbiwgbXR1LCBvcmlnX210dTsNCiAJaW50IGV4dGhkcmxl bjsNCiAJaW50IGRzdF9leHRoZHJsZW47DQogCWludCBoaF9sZW47DQpAQCAtMTMwNyw2ICsxMzA1 LDcgQEAgaW50IGlwNl9hcHBlbmRfZGF0YShzdHJ1Y3Qgc29jayAqc2ssIGludCBnZXRmcmFnKHZv aWQgKmZyb20sIGNoYXIgKnRvLA0KIAkJZHN0X2V4dGhkcmxlbiA9IDA7DQogCQltdHUgPSBjb3Jr LT5mcmFnc2l6ZTsNCiAJfQ0KKwlvcmlnX210dSA9IG10dTsNCiANCiAJaGhfbGVuID0gTExfUkVT RVJWRURfU1BBQ0UocnQtPmRzdC5kZXYpOw0KIA0KQEAgLTEzODksOCArMTM4OCw3IEBAIGFsbG9j X25ld19za2I6DQogCQkJaWYgKHNrYiA9PSBOVUxMIHx8IHNrYl9wcmV2ID09IE5VTEwpDQogCQkJ CWlwNl9hcHBlbmRfZGF0YV9tdHUoJm10dSwgJm1heGZyYWdsZW4sDQogCQkJCQkJICAgIGZyYWdo ZWFkZXJsZW4sIHNrYiwgcnQsDQotCQkJCQkJICAgIG5wLT5wbXR1ZGlzYyA9PQ0KLQkJCQkJCSAg ICBJUFY2X1BNVFVESVNDX1BST0JFKTsNCisJCQkJCQkgICAgb3JpZ19tdHUpOw0KIA0KIAkJCXNr Yl9wcmV2ID0gc2tiOw0KIA0KQEAgLTE2NjAsOCArMTY1OCw4IEBAIGludCBpcDZfcHVzaF9wZW5k aW5nX2ZyYW1lcyhzdHJ1Y3Qgc29jayAqc2spDQogCWlmIChwcm90byA9PSBJUFBST1RPX0lDTVBW Nikgew0KIAkJc3RydWN0IGluZXQ2X2RldiAqaWRldiA9IGlwNl9kc3RfaWRldihza2JfZHN0KHNr YikpOw0KIA0KLQkJSUNNUDZNU0dPVVRfSU5DX1NUQVRTX0JIKG5ldCwgaWRldiwgaWNtcDZfaGRy KHNrYiktPmljbXA2X3R5cGUpOw0KLQkJSUNNUDZfSU5DX1NUQVRTX0JIKG5ldCwgaWRldiwgSUNN UDZfTUlCX09VVE1TR1MpOw0KKwkJSUNNUDZNU0dPVVRfSU5DX1NUQVRTKG5ldCwgaWRldiwgaWNt cDZfaGRyKHNrYiktPmljbXA2X3R5cGUpOw0KKwkJSUNNUDZfSU5DX1NUQVRTKG5ldCwgaWRldiwg SUNNUDZfTUlCX09VVE1TR1MpOw0KIAl9DQogDQogCWVyciA9IGlwNl9sb2NhbF9vdXQoc2tiKTsN CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9tY2FzdC5jIGIvbmV0L2lwdjYvbWNhc3QuYw0KaW5kZXgg ZDIwYTliZS4uNGYxMmI2NiAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L21jYXN0LmMNCisrKyBiL25l dC9pcHY2L21jYXN0LmMNCkBAIC0xNDM1LDExICsxNDM1LDEyIEBAIHN0YXRpYyB2b2lkIG1sZF9z ZW5kcGFjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAkJICAgICAgZHN0X291dHB1dCk7DQogb3V0 Og0KIAlpZiAoIWVycikgew0KLQkJSUNNUDZNU0dPVVRfSU5DX1NUQVRTX0JIKG5ldCwgaWRldiwg SUNNUFY2X01MRDJfUkVQT1JUKTsNCi0JCUlDTVA2X0lOQ19TVEFUU19CSChuZXQsIGlkZXYsIElD TVA2X01JQl9PVVRNU0dTKTsNCi0JCUlQNl9VUERfUE9fU1RBVFNfQkgobmV0LCBpZGV2LCBJUFNU QVRTX01JQl9PVVRNQ0FTVCwgcGF5bG9hZF9sZW4pOw0KLQl9IGVsc2UNCi0JCUlQNl9JTkNfU1RB VFNfQkgobmV0LCBpZGV2LCBJUFNUQVRTX01JQl9PVVRESVNDQVJEUyk7DQorCQlJQ01QNk1TR09V VF9JTkNfU1RBVFMobmV0LCBpZGV2LCBJQ01QVjZfTUxEMl9SRVBPUlQpOw0KKwkJSUNNUDZfSU5D X1NUQVRTKG5ldCwgaWRldiwgSUNNUDZfTUlCX09VVE1TR1MpOw0KKwkJSVA2X1VQRF9QT19TVEFU UyhuZXQsIGlkZXYsIElQU1RBVFNfTUlCX09VVE1DQVNULCBwYXlsb2FkX2xlbik7DQorCX0gZWxz ZSB7DQorCQlJUDZfSU5DX1NUQVRTKG5ldCwgaWRldiwgSVBTVEFUU19NSUJfT1VURElTQ0FSRFMp Ow0KKwl9DQogDQogCXJjdV9yZWFkX3VubG9jaygpOw0KIAlyZXR1cm47DQpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMNCmluZGV4IDlhNGY0MzcuLjM5ZTEx ZjkgMTAwNjQ0DQotLS0gYS9uZXQvaXB2Ni9yb3V0ZS5jDQorKysgYi9uZXQvaXB2Ni9yb3V0ZS5j DQpAQCAtMTI1MCw3ICsxMjUwLDcgQEAgaW50IGlwNl9yb3V0ZV9hZGQoc3RydWN0IGZpYjZfY29u ZmlnICpjZmcpDQogCQlnb3RvIG91dDsNCiAJfQ0KIA0KLQlydCA9IGlwNl9kc3RfYWxsb2MoJm5l dC0+aXB2Ni5pcDZfZHN0X29wcywgTlVMTCwgRFNUX05PQ09VTlQpOw0KKwlydCA9IGlwNl9kc3Rf YWxsb2MoJm5ldC0+aXB2Ni5pcDZfZHN0X29wcywgTlVMTCwgKGNmZy0+ZmNfZmxhZ3MgJiBSVEZf QUREUkNPTkYpID8gMCA6IERTVF9OT0NPVU5UKTsNCiANCiAJaWYgKHJ0ID09IE5VTEwpIHsNCiAJ CWVyciA9IC1FTk9NRU07DQpkaWZmIC0tZ2l0IGEvbmV0L3Jkcy9pdy5jIGIvbmV0L3Jkcy9pdy5j DQppbmRleCA3ODI2ZDQ2Li41ODk5MzU2IDEwMDY0NA0KLS0tIGEvbmV0L3Jkcy9pdy5jDQorKysg Yi9uZXQvcmRzL2l3LmMNCkBAIC0yMzksNyArMjM5LDggQEAgc3RhdGljIGludCByZHNfaXdfbGFk ZHJfY2hlY2soX19iZTMyIGFkZHIpDQogCXJldCA9IHJkbWFfYmluZF9hZGRyKGNtX2lkLCAoc3Ry dWN0IHNvY2thZGRyICopJnNpbik7DQogCS8qIGR1ZSB0byB0aGlzLCB3ZSB3aWxsIGNsYWltIHRv IHN1cHBvcnQgSUIgZGV2aWNlcyB1bmxlc3Mgd2UNCiAJICAgY2hlY2sgbm9kZV90eXBlLiAqLw0K LQlpZiAocmV0IHx8IGNtX2lkLT5kZXZpY2UtPm5vZGVfdHlwZSAhPSBSRE1BX05PREVfUk5JQykN CisJaWYgKHJldCB8fCAhY21faWQtPmRldmljZSB8fA0KKwkgICAgY21faWQtPmRldmljZS0+bm9k ZV90eXBlICE9IFJETUFfTk9ERV9STklDKQ0KIAkJcmV0ID0gLUVBRERSTk9UQVZBSUw7DQogDQog CXJkc2RlYnVnKCJhZGRyICVwSTQgcmV0ICVkIG5vZGUgdHlwZSAlZFxuIiwNCmRpZmYgLS1naXQg YS9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMgYi9uZXQvc2N0cC9zbV9tYWtlX2NodW5rLmMNCmlu ZGV4IDAxMjFlMGEuLmM5NWEzZjIgMTAwNjQ0DQotLS0gYS9uZXQvc2N0cC9zbV9tYWtlX2NodW5r LmMNCisrKyBiL25ldC9zY3RwL3NtX21ha2VfY2h1bmsuYw0KQEAgLTEzNjYsOCArMTM2Niw4IEBA IHN0YXRpYyB2b2lkIHNjdHBfY2h1bmtfZGVzdHJveShzdHJ1Y3Qgc2N0cF9jaHVuayAqY2h1bmsp DQogCUJVR19PTighbGlzdF9lbXB0eSgmY2h1bmstPmxpc3QpKTsNCiAJbGlzdF9kZWxfaW5pdCgm Y2h1bmstPnRyYW5zbWl0dGVkX2xpc3QpOw0KIA0KLQkvKiBGcmVlIHRoZSBjaHVuayBza2IgZGF0 YSBhbmQgdGhlIFNDVFBfY2h1bmsgc3R1YiBpdHNlbGYuICovDQotCWRldl9rZnJlZV9za2IoY2h1 bmstPnNrYik7DQorCWNvbnN1bWVfc2tiKGNodW5rLT5za2IpOw0KKwljb25zdW1lX3NrYihjaHVu ay0+YXV0aF9jaHVuayk7DQogDQogCVNDVFBfREJHX09CSkNOVF9ERUMoY2h1bmspOw0KIAlrbWVt X2NhY2hlX2ZyZWUoc2N0cF9jaHVua19jYWNoZXAsIGNodW5rKTsNCmRpZmYgLS1naXQgYS9uZXQv c2N0cC9zbV9zdGF0ZWZ1bnMuYyBiL25ldC9zY3RwL3NtX3N0YXRlZnVucy5jDQppbmRleCBmMTMx Y2FmLi41YWMzM2I2IDEwMDY0NA0KLS0tIGEvbmV0L3NjdHAvc21fc3RhdGVmdW5zLmMNCisrKyBi L25ldC9zY3RwL3NtX3N0YXRlZnVucy5jDQpAQCAtNzQ5LDcgKzc0OSw2IEBAIHNjdHBfZGlzcG9z aXRpb25fdCBzY3RwX3NmX2RvXzVfMURfY2UoY29uc3Qgc3RydWN0IHNjdHBfZW5kcG9pbnQgKmVw LA0KIA0KIAkJLyogTWFrZSBzdXJlIHRoYXQgd2UgYW5kIHRoZSBwZWVyIGFyZSBBVVRIIGNhcGFi bGUgKi8NCiAJCWlmICghc2N0cF9hdXRoX2VuYWJsZSB8fCAhbmV3X2Fzb2MtPnBlZXIuYXV0aF9j YXBhYmxlKSB7DQotCQkJa2ZyZWVfc2tiKGNodW5rLT5hdXRoX2NodW5rKTsNCiAJCQlzY3RwX2Fz c29jaWF0aW9uX2ZyZWUobmV3X2Fzb2MpOw0KIAkJCXJldHVybiBzY3RwX3NmX3BkaXNjYXJkKGVw LCBhc29jLCB0eXBlLCBhcmcsIGNvbW1hbmRzKTsNCiAJCX0NCkBAIC03NjQsMTAgKzc2Myw2IEBA IHNjdHBfZGlzcG9zaXRpb25fdCBzY3RwX3NmX2RvXzVfMURfY2UoY29uc3Qgc3RydWN0IHNjdHBf ZW5kcG9pbnQgKmVwLA0KIAkJYXV0aC50cmFuc3BvcnQgPSBjaHVuay0+dHJhbnNwb3J0Ow0KIA0K IAkJcmV0ID0gc2N0cF9zZl9hdXRoZW50aWNhdGUoZXAsIG5ld19hc29jLCB0eXBlLCAmYXV0aCk7 DQotDQotCQkvKiBXZSBjYW4gbm93IHNhZmVseSBmcmVlIHRoZSBhdXRoX2NodW5rIGNsb25lICov DQotCQlrZnJlZV9za2IoY2h1bmstPmF1dGhfY2h1bmspOw0KLQ0KIAkJaWYgKHJldCAhPSBTQ1RQ X0lFUlJPUl9OT19FUlJPUikgew0KIAkJCXNjdHBfYXNzb2NpYXRpb25fZnJlZShuZXdfYXNvYyk7 DQogCQkJcmV0dXJuIHNjdHBfc2ZfcGRpc2NhcmQoZXAsIGFzb2MsIHR5cGUsIGFyZywgY29tbWFu ZHMpOw0KZGlmZiAtLWdpdCBhL25ldC9zb2NrZXQuYyBiL25ldC9zb2NrZXQuYw0KaW5kZXggZDRm YWFkZS4uM2ZhYTM1OCAxMDA2NDQNCi0tLSBhL25ldC9zb2NrZXQuYw0KKysrIGIvbmV0L3NvY2tl dC5jDQpAQCAtMTg4NCw2ICsxODg0LDEwIEBAIHN0YXRpYyBpbnQgY29weV9tc2doZHJfZnJvbV91 c2VyKHN0cnVjdCBtc2doZHIgKmttc2csDQogew0KIAlpZiAoY29weV9mcm9tX3VzZXIoa21zZywg dW1zZywgc2l6ZW9mKHN0cnVjdCBtc2doZHIpKSkNCiAJCXJldHVybiAtRUZBVUxUOw0KKw0KKwlp ZiAoa21zZy0+bXNnX25hbWVsZW4gPCAwKQ0KKwkJcmV0dXJuIC1FSU5WQUw7DQorDQogCWlmIChr bXNnLT5tc2dfbmFtZWxlbiA+IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSkpDQogCQlr bXNnLT5tc2dfbmFtZWxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSk7DQogCXJl dHVybiAwOw0KZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2FmX3Vu aXguYw0KaW5kZXggNTRmYzkwYi4uODcwNWVlMyAxMDA2NDQNCi0tLSBhL25ldC91bml4L2FmX3Vu aXguYw0KKysrIGIvbmV0L3VuaXgvYWZfdW5peC5jDQpAQCAtMTc3MSw4ICsxNzcxLDExIEBAIHN0 YXRpYyBpbnQgdW5peF9kZ3JhbV9yZWN2bXNnKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IHNv Y2tldCAqc29jaywNCiAJCWdvdG8gb3V0Ow0KIA0KIAllcnIgPSBtdXRleF9sb2NrX2ludGVycnVw dGlibGUoJnUtPnJlYWRsb2NrKTsNCi0JaWYgKGVycikgew0KLQkJZXJyID0gc29ja19pbnRyX2Vy cm5vKHNvY2tfcmN2dGltZW8oc2ssIG5vYmxvY2spKTsNCisJaWYgKHVubGlrZWx5KGVycikpIHsN CisJCS8qIHJlY3Ztc2coKSBpbiBub24gYmxvY2tpbmcgbW9kZSBpcyBzdXBwb3NlZCB0byByZXR1 cm4gLUVBR0FJTg0KKwkJICogc2tfcmN2dGltZW8gaXMgbm90IGhvbm9yZWQgYnkgbXV0ZXhfbG9j a19pbnRlcnJ1cHRpYmxlKCkNCisJCSAqLw0KKwkJZXJyID0gbm9ibG9jayA/IC1FQUdBSU4gOiAt RVJFU1RBUlRTWVM7DQogCQlnb3RvIG91dDsNCiAJfQ0KIA0KQEAgLTE4ODcsNiArMTg5MCw3IEBA IHN0YXRpYyBpbnQgdW5peF9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVj dCBzb2NrZXQgKnNvY2ssDQogCXN0cnVjdCB1bml4X3NvY2sgKnUgPSB1bml4X3NrKHNrKTsNCiAJ c3RydWN0IHNvY2thZGRyX3VuICpzdW5hZGRyID0gbXNnLT5tc2dfbmFtZTsNCiAJaW50IGNvcGll ZCA9IDA7DQorCWludCBub2Jsb2NrID0gZmxhZ3MgJiBNU0dfRE9OVFdBSVQ7DQogCWludCBjaGVj a19jcmVkcyA9IDA7DQogCWludCB0YXJnZXQ7DQogCWludCBlcnIgPSAwOw0KQEAgLTE5MDEsNyAr MTkwNSw3IEBAIHN0YXRpYyBpbnQgdW5peF9zdHJlYW1fcmVjdm1zZyhzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBzb2NrZXQgKnNvY2ssDQogCQlnb3RvIG91dDsNCiANCiAJdGFyZ2V0ID0gc29j a19yY3Zsb3dhdChzaywgZmxhZ3MmTVNHX1dBSVRBTEwsIHNpemUpOw0KLQl0aW1lbyA9IHNvY2tf cmN2dGltZW8oc2ssIGZsYWdzJk1TR19ET05UV0FJVCk7DQorCXRpbWVvID0gc29ja19yY3Z0aW1l byhzaywgbm9ibG9jayk7DQogDQogCS8qIExvY2sgdGhlIHNvY2tldCB0byBwcmV2ZW50IHF1ZXVl IGRpc29yZGVyaW5nDQogCSAqIHdoaWxlIHNsZWVwcyBpbiBtZW1jcHlfdG9tc2cNCkBAIC0xOTEz LDggKzE5MTcsMTEgQEAgc3RhdGljIGludCB1bml4X3N0cmVhbV9yZWN2bXNnKHN0cnVjdCBraW9j YiAqaW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywNCiAJfQ0KIA0KIAllcnIgPSBtdXRleF9sb2Nr X2ludGVycnVwdGlibGUoJnUtPnJlYWRsb2NrKTsNCi0JaWYgKGVycikgew0KLQkJZXJyID0gc29j a19pbnRyX2Vycm5vKHRpbWVvKTsNCisJaWYgKHVubGlrZWx5KGVycikpIHsNCisJCS8qIHJlY3Zt c2coKSBpbiBub24gYmxvY2tpbmcgbW9kZSBpcyBzdXBwb3NlZCB0byByZXR1cm4gLUVBR0FJTg0K KwkJICogc2tfcmN2dGltZW8gaXMgbm90IGhvbm9yZWQgYnkgbXV0ZXhfbG9ja19pbnRlcnJ1cHRp YmxlKCkNCisJCSAqLw0KKwkJZXJyID0gbm9ibG9jayA/IC1FQUdBSU4gOiAtRVJFU1RBUlRTWVM7 DQogCQlnb3RvIG91dDsNCiAJfQ0KIA0KZGlmZiAtLWdpdCBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hf cmVhbHRlay5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMNCmluZGV4IDM2YmNlNjgu LmQzMDdhZGIgMTAwNjQ0DQotLS0gYS9zb3VuZC9wY2kvaGRhL3BhdGNoX3JlYWx0ZWsuYw0KKysr IGIvc291bmQvcGNpL2hkYS9wYXRjaF9yZWFsdGVrLmMNCkBAIC0zODU1LDYgKzM4NTUsNyBAQCBz dGF0aWMgdm9pZCBhbGNfYXV0b19pbml0X3N0ZChzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYykNCiAN CiBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9wY2lfcXVpcmsgYmVlcF93aGl0ZV9saXN0W10gPSB7 DQogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDEwM2MsICJBU1VTIiwgMSksDQorCVNORF9QQ0lf UVVJUksoMHgxMDQzLCAweDExNWQsICJBU1VTIiwgMSksDQogCVNORF9QQ0lfUVVJUksoMHgxMDQz LCAweDgyOWYsICJBU1VTIiwgMSksDQogCVNORF9QQ0lfUVVJUksoMHgxMDQzLCAweDgzY2UsICJF ZWVQQyIsIDEpLA0KIAlTTkRfUENJX1FVSVJLKDB4MTA0MywgMHg4MzFhLCAiRWVlUEMiLCAxKSwN CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaWNlMTcxMi9pY2UxNzEyLmMgYi9zb3VuZC9wY2kvaWNl MTcxMi9pY2UxNzEyLmMNCmluZGV4IDQ0NDQ2ZjIuLjdhNGExOTYgMTAwNjQ0DQotLS0gYS9zb3Vu ZC9wY2kvaWNlMTcxMi9pY2UxNzEyLmMNCisrKyBiL3NvdW5kL3BjaS9pY2UxNzEyL2ljZTE3MTIu Yw0KQEAgLTY4Niw5ICs2ODYsMTAgQEAgc3RhdGljIHNuZF9wY21fdWZyYW1lc190IHNuZF9pY2Ux NzEyX3BsYXliYWNrX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICoNCiAJaWYgKCEo c25kX2ljZTE3MTJfcmVhZChpY2UsIElDRTE3MTJfSVJFR19QQktfQ1RSTCkgJiAxKSkNCiAJCXJl dHVybiAwOw0KIAlwdHIgPSBydW50aW1lLT5idWZmZXJfc2l6ZSAtIGludyhpY2UtPmRkbWFfcG9y dCArIDQpOw0KKwlwdHIgPSBieXRlc190b19mcmFtZXMoc3Vic3RyZWFtLT5ydW50aW1lLCBwdHIp Ow0KIAlpZiAocHRyID09IHJ1bnRpbWUtPmJ1ZmZlcl9zaXplKQ0KIAkJcHRyID0gMDsNCi0JcmV0 dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsIHB0cik7DQorCXJldHVybiBw dHI7DQogfQ0KIA0KIHN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBzbmRfaWNlMTcxMl9wbGF5YmFj a19kc19wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQ0KQEAgLTcw NSw5ICs3MDYsMTAgQEAgc3RhdGljIHNuZF9wY21fdWZyYW1lc190IHNuZF9pY2UxNzEyX3BsYXli YWNrX2RzX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWENCiAJCWFkZHIgPSBJQ0UxNzEy X0RTQ19BRERSMDsNCiAJcHRyID0gc25kX2ljZTE3MTJfZHNfcmVhZChpY2UsIHN1YnN0cmVhbS0+ bnVtYmVyICogMiwgYWRkcikgLQ0KIAkJaWNlLT5wbGF5YmFja19jb25fdmlydF9hZGRyW3N1YnN0 cmVhbS0+bnVtYmVyXTsNCisJcHRyID0gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+cnVudGlt ZSwgcHRyKTsNCiAJaWYgKHB0ciA9PSBzdWJzdHJlYW0tPnJ1bnRpbWUtPmJ1ZmZlcl9zaXplKQ0K IAkJcHRyID0gMDsNCi0JcmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUs IHB0cik7DQorCXJldHVybiBwdHI7DQogfQ0KIA0KIHN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBz bmRfaWNlMTcxMl9jYXB0dXJlX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpzdWJz dHJlYW0pDQpAQCAtNzE4LDkgKzcyMCwxMCBAQCBzdGF0aWMgc25kX3BjbV91ZnJhbWVzX3Qgc25k X2ljZTE3MTJfY2FwdHVyZV9wb2ludGVyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqcw0KIAlp ZiAoIShzbmRfaWNlMTcxMl9yZWFkKGljZSwgSUNFMTcxMl9JUkVHX0NBUF9DVFJMKSAmIDEpKQ0K IAkJcmV0dXJuIDA7DQogCXB0ciA9IGlubChJQ0VSRUcoaWNlLCBDT05DQVBfQUREUikpIC0gaWNl LT5jYXB0dXJlX2Nvbl92aXJ0X2FkZHI7DQorCXB0ciA9IGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJl YW0tPnJ1bnRpbWUsIHB0cik7DQogCWlmIChwdHIgPT0gc3Vic3RyZWFtLT5ydW50aW1lLT5idWZm ZXJfc2l6ZSkNCiAJCXB0ciA9IDA7DQotCXJldHVybiBieXRlc190b19mcmFtZXMoc3Vic3RyZWFt LT5ydW50aW1lLCBwdHIpOw0KKwlyZXR1cm4gcHRyOw0KIH0NCiANCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNuZF9wY21faGFyZHdhcmUgc25kX2ljZTE3MTJfcGxheWJhY2sgPSB7DQpAQCAtMTExNCw5 ICsxMTE3LDEwIEBAIHN0YXRpYyBzbmRfcGNtX3VmcmFtZXNfdCBzbmRfaWNlMTcxMl9wbGF5YmFj a19wcm9fcG9pbnRlcihzdHJ1Y3Qgc25kX3BjbV9zdWJzdHJlDQogCWlmICghKGlubChJQ0VNVChp Y2UsIFBMQVlCQUNLX0NPTlRST0wpKSAmIElDRTE3MTJfUExBWUJBQ0tfU1RBUlQpKQ0KIAkJcmV0 dXJuIDA7DQogCXB0ciA9IGljZS0+cGxheWJhY2tfcHJvX3NpemUgLSAoaW53KElDRU1UKGljZSwg UExBWUJBQ0tfU0laRSkpIDw8IDIpOw0KKwlwdHIgPSBieXRlc190b19mcmFtZXMoc3Vic3RyZWFt LT5ydW50aW1lLCBwdHIpOw0KIAlpZiAocHRyID09IHN1YnN0cmVhbS0+cnVudGltZS0+YnVmZmVy X3NpemUpDQogCQlwdHIgPSAwOw0KLQlyZXR1cm4gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+ cnVudGltZSwgcHRyKTsNCisJcmV0dXJuIHB0cjsNCiB9DQogDQogc3RhdGljIHNuZF9wY21fdWZy YW1lc190IHNuZF9pY2UxNzEyX2NhcHR1cmVfcHJvX3BvaW50ZXIoc3RydWN0IHNuZF9wY21fc3Vi c3RyZWFtICpzdWJzdHJlYW0pDQpAQCAtMTEyNyw5ICsxMTMxLDEwIEBAIHN0YXRpYyBzbmRfcGNt X3VmcmFtZXNfdCBzbmRfaWNlMTcxMl9jYXB0dXJlX3Byb19wb2ludGVyKHN0cnVjdCBzbmRfcGNt X3N1YnN0cmVhDQogCWlmICghKGlubChJQ0VNVChpY2UsIFBMQVlCQUNLX0NPTlRST0wpKSAmIElD RTE3MTJfQ0FQVFVSRV9TVEFSVF9TSEFET1cpKQ0KIAkJcmV0dXJuIDA7DQogCXB0ciA9IGljZS0+ Y2FwdHVyZV9wcm9fc2l6ZSAtIChpbncoSUNFTVQoaWNlLCBDQVBUVVJFX1NJWkUpKSA8PCAyKTsN CisJcHRyID0gYnl0ZXNfdG9fZnJhbWVzKHN1YnN0cmVhbS0+cnVudGltZSwgcHRyKTsNCiAJaWYg KHB0ciA9PSBzdWJzdHJlYW0tPnJ1bnRpbWUtPmJ1ZmZlcl9zaXplKQ0KIAkJcHRyID0gMDsNCi0J cmV0dXJuIGJ5dGVzX3RvX2ZyYW1lcyhzdWJzdHJlYW0tPnJ1bnRpbWUsIHB0cik7DQorCXJldHVy biBwdHI7DQogfQ0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3BjbV9oYXJkd2FyZSBzbmRf aWNlMTcxMl9wbGF5YmFja19wcm8gPSB7DQo= --=-UIbtx5KrCukzaMum4u2K-- --=-5o//mmeQ5XU8FNH3Xd6p Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAU15uMue/yOyVhhEJAQolLA/8D43ET0a+Hurp8S+VsH1pGBwrNUC4Hiyf AYdhtQZ0HDabqVlCPhY9zkiqmUnSGX/nDTnU+PLTZ/DSX85K0eBvp6/BRXR2Pcd6 b+1oe45Zm9aXIH5F1010fMPMorRehqRxQ6bI/O3BqYmbzEZfLZ86prx3sLkCc5DT 6ffno9X7kslIA18Hq+cSjQHJQwiPyzGzj22gMIq3Y0eYK7KawFHFHmLupoHR9Eda 9L30fSL2+iWrvUhVSl0jvsuvg4RZycC/oPt5tL6DW+Sp/Q64JoLUbA2cj3jYjJbf +opYdSS6o/b3Qf6A7l7ZJti57pslMUzWqAjOLkZBoAtkkLEjg/uy6xsJ9EzGlWgo cjbYKrRnXe6cRnO9TD57AbrGAR3WJuFWcZdATai99i9oEIJuivrKDhYUSUyt8gkm RfGasUeWk1w9vkSW5uQ9//dcCoIXOUoWXwI6jV8ritqI11dRuSSyG+dDx6q138L5 afI4wKzpLuvBSpryReBknjhulztoLXK0jT8ekIoc0K7aYznLJYM6mJ3rFEKXDoLj RMiTFGn6fn81EHhaQC2rv4MewDQ63jc9JplAZXtAHGL4Z827ATnF8Eth61bqJ4xL B8qCGXz6olz+NoCXxxI6i8cGtUmgEGkXx/BcTVJj04+vMpBIgeNJT7IbLirkFlfl zCLAv0Frx5o= =xixN -----END PGP SIGNATURE----- --=-5o//mmeQ5XU8FNH3Xd6p--