From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754768AbaDGBm1 (ORCPT ); Sun, 6 Apr 2014 21:42:27 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:59776 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753111AbaDGBmV (ORCPT ); Sun, 6 Apr 2014 21:42:21 -0400 Message-ID: <1396834938.11513.42.camel@deadeye.wl.decadent.org.uk> Subject: Re: [PATCH 3.2 00/18] 3.2.57-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, 07 Apr 2014 02:42:18 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-twUehfWXLZ+YmTp5FAAo" 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 --=-twUehfWXLZ+YmTp5FAAo Content-Type: multipart/mixed; boundary="=-OlCCE/VHr4yYUlKjb966" --=-OlCCE/VHr4yYUlKjb966 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.57-rc1 relative to 3.2.56. Ben. --=20 Ben Hutchings Sturgeon's Law: Ninety percent of everything is crap. --=-OlCCE/VHr4yYUlKjb966 Content-Disposition: attachment; filename="linux-3.2.57-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.57-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUNCmluZGV4IGVjOTBiZmIuLmEyN2IyMjgg MTAwNjQ0DQotLS0gYS9NYWtlZmlsZQ0KKysrIGIvTWFrZWZpbGUNCkBAIC0xLDcgKzEsNyBAQA0K IFZFUlNJT04gPSAzDQogUEFUQ0hMRVZFTCA9IDINCi1TVUJMRVZFTCA9IDU2DQotRVhUUkFWRVJT SU9OID0NCitTVUJMRVZFTCA9IDU3DQorRVhUUkFWRVJTSU9OID0gLXJjMQ0KIE5BTUUgPSBTYWJl ci10b290aGVkIFNxdWlycmVsDQogDQogIyAqRE9DVU1FTlRBVElPTioNCmRpZmYgLS1naXQgYS9h cmNoL3MzOTAva2VybmVsL2hlYWQ2NC5TIGIvYXJjaC9zMzkwL2tlcm5lbC9oZWFkNjQuUw0KaW5k ZXggOTkzNDhjMC4uNzhiZTI0NSAxMDA2NDQNCi0tLSBhL2FyY2gvczM5MC9rZXJuZWwvaGVhZDY0 LlMNCisrKyBiL2FyY2gvczM5MC9rZXJuZWwvaGVhZDY0LlMNCkBAIC02MSw3ICs2MSw3IEBAIEVO VFJZKHN0YXJ0dXBfY29udGludWUpDQogCS5xdWFkCTAJCQkjIGNyMTI6IHRyYWNpbmcgb2ZmDQog CS5xdWFkCTAJCQkjIGNyMTM6IGhvbWUgc3BhY2Ugc2VnbWVudCB0YWJsZQ0KIAkucXVhZAkweGMw MDAwMDAwCQkjIGNyMTQ6IG1hY2hpbmUgY2hlY2sgaGFuZGxpbmcgb2ZmDQotCS5xdWFkCTAJCQkj IGNyMTU6IGxpbmthZ2Ugc3RhY2sgb3BlcmF0aW9ucw0KKwkucXVhZAkuTGxpbmthZ2Vfc3RhY2sJ CSMgY3IxNTogbGlua2FnZSBzdGFjayBvcGVyYXRpb25zDQogLkxwY21zazoucXVhZAkweDAwMDAw MDAxODAwMDAwMDANCiAuTDRtYWxpZ246LnF1YWQgMHhmZmZmZmZmZmZmYzAwMDAwDQogLkxzY2Fu Mmc6LnF1YWQJMHg4MDAwMDAwMCArIDB4MjAwMDAgLSA4CSMgMkdCICsgMTI4SyAtIDgNCkBAIC02 OSwxMiArNjksMTUgQEAgRU5UUlkoc3RhcnR1cF9jb250aW51ZSkNCiAuTHBhcm1hZGRyOg0KIAku cXVhZAlQQVJNQVJFQQ0KIAkuYWxpZ24JNjQNCi0uTGR1Y3Q6IC5sb25nCTAsMCwwLDAsLkxkdWFs ZCwwLDAsMA0KKy5MZHVjdDogLmxvbmcJMCwuTGFzdGUsLkxhc3RlLDAsLkxkdWFsZCwwLDAsMA0K IAkubG9uZwkwLDAsMCwwLDAsMCwwLDANCisuTGFzdGU6CS5xdWFkCTAsMHhmZmZmZmZmZmZmZmZm ZmZmLDAsMCwwLDAsMCwwDQogCS5hbGlnbgkxMjgNCiAuTGR1YWxkOi5yZXB0CTgNCiAJLmxvbmcJ MHg4MDAwMDAwMCwwLDAsMAkjIGludmFsaWQgYWNjZXNzLWxpc3QgZW50cmllcw0KIAkuZW5kcg0K Ky5MbGlua2FnZV9zdGFjazoNCisJLmxvbmcJMCwwLDB4ODkwMDAwMDAsMCwwLDAsMHg4YTAwMDAw MCwwDQogDQogRU5UUlkoX2VoZWFkKQ0KIA0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2t2bS9tbXUu YyBiL2FyY2gveDg2L2t2bS9tbXUuYw0KaW5kZXggZjFiMzZjZi4uZGIyZmZlZiAxMDA2NDQNCi0t LSBhL2FyY2gveDg2L2t2bS9tbXUuYw0KKysrIGIvYXJjaC94ODYva3ZtL21tdS5jDQpAQCAtMjQ1 MSw2ICsyNDUxLDkgQEAgc3RhdGljIGludCBfX2RpcmVjdF9tYXAoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LCBncGFfdCB2LCBpbnQgd3JpdGUsDQogCWludCBlbXVsYXRlID0gMDsNCiAJZ2ZuX3QgcHNl dWRvX2dmbjsNCiANCisJaWYgKCFWQUxJRF9QQUdFKHZjcHUtPmFyY2gubW11LnJvb3RfaHBhKSkN CisJCXJldHVybiAwOw0KKw0KIAlmb3JfZWFjaF9zaGFkb3dfZW50cnkodmNwdSwgKHU2NClnZm4g PDwgUEFHRV9TSElGVCwgaXRlcmF0b3IpIHsNCiAJCWlmIChpdGVyYXRvci5sZXZlbCA9PSBsZXZl bCkgew0KIAkJCXVuc2lnbmVkIHB0ZV9hY2Nlc3MgPSBBQ0NfQUxMOw0KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2t2bS92bXguYyBiL2FyY2gveDg2L2t2bS92bXguYw0KaW5kZXggYWFjNWVhNy4uYTRm NmJkYSAxMDA2NDQNCi0tLSBhL2FyY2gveDg2L2t2bS92bXguYw0KKysrIGIvYXJjaC94ODYva3Zt L3ZteC5jDQpAQCAtNjI3Myw4ICs2MjczLDggQEAgc3RhdGljIHZvaWQgdm14X2ZyZWVfdmNwdShz dHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpDQogCXN0cnVjdCB2Y3B1X3ZteCAqdm14ID0gdG9fdm14KHZj cHUpOw0KIA0KIAlmcmVlX3ZwaWQodm14KTsNCi0JZnJlZV9uZXN0ZWQodm14KTsNCiAJZnJlZV9s b2FkZWRfdm1jcyh2bXgtPmxvYWRlZF92bWNzKTsNCisJZnJlZV9uZXN0ZWQodm14KTsNCiAJa2Zy ZWUodm14LT5ndWVzdF9tc3JzKTsNCiAJa3ZtX3ZjcHVfdW5pbml0KHZjcHUpOw0KIAlrbWVtX2Nh Y2hlX2ZyZWUoa3ZtX3ZjcHVfY2FjaGUsIHZteCk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbnB1 dC9tb3VzZS9zeW5hcHRpY3MuYyBiL2RyaXZlcnMvaW5wdXQvbW91c2Uvc3luYXB0aWNzLmMNCmlu ZGV4IDdiZTVmZDkuLmJjMzUwNzAgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2lucHV0L21vdXNlL3N5 bmFwdGljcy5jDQorKysgYi9kcml2ZXJzL2lucHV0L21vdXNlL3N5bmFwdGljcy5jDQpAQCAtMjM3 LDExICsyMzcsMjIgQEAgc3RhdGljIGludCBzeW5hcHRpY3NfaWRlbnRpZnkoc3RydWN0IHBzbW91 c2UgKnBzbW91c2UpDQogICogUmVhZCB0b3VjaHBhZCByZXNvbHV0aW9uIGFuZCBtYXhpbXVtIHJl cG9ydGVkIGNvb3JkaW5hdGVzDQogICogUmVzb2x1dGlvbiBpcyBsZWZ0IHplcm8gaWYgdG91Y2hw YWQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgcXVlcnkNCiAgKi8NCisNCitzdGF0aWMgY29uc3QgaW50 ICpxdWlya19taW5fbWF4Ow0KKw0KIHN0YXRpYyBpbnQgc3luYXB0aWNzX3Jlc29sdXRpb24oc3Ry dWN0IHBzbW91c2UgKnBzbW91c2UpDQogew0KIAlzdHJ1Y3Qgc3luYXB0aWNzX2RhdGEgKnByaXYg PSBwc21vdXNlLT5wcml2YXRlOw0KIAl1bnNpZ25lZCBjaGFyIHJlc3BbM107DQogDQorCWlmIChx dWlya19taW5fbWF4KSB7DQorCQlwcml2LT54X21pbiA9IHF1aXJrX21pbl9tYXhbMF07DQorCQlw cml2LT54X21heCA9IHF1aXJrX21pbl9tYXhbMV07DQorCQlwcml2LT55X21pbiA9IHF1aXJrX21p bl9tYXhbMl07DQorCQlwcml2LT55X21heCA9IHF1aXJrX21pbl9tYXhbM107DQorCQlyZXR1cm4g MDsNCisJfQ0KKw0KIAlpZiAoU1lOX0lEX01BSk9SKHByaXYtPmlkZW50aXR5KSA8IDQpDQogCQly ZXR1cm4gMDsNCiANCkBAIC0xMzY0LDEwICsxMzc1LDU0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1pX3N5c3RlbV9pZCBfX2luaXRjb25zdCBvbHBjX2RtaV90YWJsZVtdID0gew0KIAl7IH0NCiB9 Ow0KIA0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBtaW5fbWF4X2RtaV90YWJs ZVtdIF9faW5pdGNvbnN0ID0gew0KKyNpZiBkZWZpbmVkKENPTkZJR19ETUkpDQorCXsNCisJCS8q IExlbm92byBUaGlua1BhZCBIZWxpeCAqLw0KKwkJLm1hdGNoZXMgPSB7DQorCQkJRE1JX01BVENI KERNSV9TWVNfVkVORE9SLCAiTEVOT1ZPIiksDQorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX1ZF UlNJT04sICJUaGlua1BhZCBIZWxpeCIpLA0KKwkJfSwNCisJCS5kcml2ZXJfZGF0YSA9IChpbnQg W10pezEwMjQsIDUwNTIsIDIyNTgsIDQ4MzJ9LA0KKwl9LA0KKwl7DQorCQkvKiBMZW5vdm8gVGhp bmtQYWQgWDI0MCAqLw0KKwkJLm1hdGNoZXMgPSB7DQorCQkJRE1JX01BVENIKERNSV9TWVNfVkVO RE9SLCAiTEVOT1ZPIiksDQorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX1ZFUlNJT04sICJUaGlu a1BhZCBYMjQwIiksDQorCQl9LA0KKwkJLmRyaXZlcl9kYXRhID0gKGludCBbXSl7MTIzMiwgNTcx MCwgMTE1NiwgNDY5Nn0sDQorCX0sDQorCXsNCisJCS8qIExlbm92byBUaGlua1BhZCBUNDQwcyAq Lw0KKwkJLm1hdGNoZXMgPSB7DQorCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiTEVOT1ZP IiksDQorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX1ZFUlNJT04sICJUaGlua1BhZCBUNDQwIiks DQorCQl9LA0KKwkJLmRyaXZlcl9kYXRhID0gKGludCBbXSl7MTAyNCwgNTExMiwgMjAyNCwgNDgz Mn0sDQorCX0sDQorCXsNCisJCS8qIExlbm92byBUaGlua1BhZCBUNTQwcCAqLw0KKwkJLm1hdGNo ZXMgPSB7DQorCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiTEVOT1ZPIiksDQorCQkJRE1J X01BVENIKERNSV9QUk9EVUNUX1ZFUlNJT04sICJUaGlua1BhZCBUNTQwIiksDQorCQl9LA0KKwkJ LmRyaXZlcl9kYXRhID0gKGludCBbXSl7MTAyNCwgNTA1NiwgMjA1OCwgNDgzMn0sDQorCX0sDQor I2VuZGlmDQorCXsgfQ0KK307DQorDQogdm9pZCBfX2luaXQgc3luYXB0aWNzX21vZHVsZV9pbml0 KHZvaWQpDQogew0KKwljb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqbWluX21heF9kbWk7DQor DQogCWltcGFpcmVkX3Rvc2hpYmFfa2JjID0gZG1pX2NoZWNrX3N5c3RlbSh0b3NoaWJhX2RtaV90 YWJsZSk7DQogCWJyb2tlbl9vbHBjX2VjID0gZG1pX2NoZWNrX3N5c3RlbShvbHBjX2RtaV90YWJs ZSk7DQorDQorCW1pbl9tYXhfZG1pID0gZG1pX2ZpcnN0X21hdGNoKG1pbl9tYXhfZG1pX3RhYmxl KTsNCisJaWYgKG1pbl9tYXhfZG1pKQ0KKwkJcXVpcmtfbWluX21heCA9IG1pbl9tYXhfZG1pLT5k cml2ZXJfZGF0YTsNCiB9DQogDQogaW50IHN5bmFwdGljc19pbml0KHN0cnVjdCBwc21vdXNlICpw c21vdXNlKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9hc2l4LmMgYi9kcml2ZXJzL25l dC91c2IvYXNpeC5jDQppbmRleCA2NzI5NTg1Li45OGFiNzU5IDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvdXNiL2FzaXguYw0KKysrIGIvZHJpdmVycy9uZXQvdXNiL2FzaXguYw0KQEAgLTE4Myw2 ICsxODMsMTcgQEAgc3RydWN0IGF4ODgxNzJfaW50X2RhdGEgew0KIAlfX2xlMTYgcmVzMzsNCiB9 IF9fcGFja2VkOw0KIA0KK3N0cnVjdCBhc2l4X3J4X2ZpeHVwX2luZm8gew0KKwlzdHJ1Y3Qgc2tf YnVmZiAqYXhfc2tiOw0KKwl1MzIgaGVhZGVyOw0KKwl1MTYgc2l6ZTsNCisJYm9vbCBzcGxpdF9o ZWFkOw0KK307DQorDQorc3RydWN0IGFzaXhfY29tbW9uX3ByaXZhdGUgew0KKwlzdHJ1Y3QgYXNp eF9yeF9maXh1cF9pbmZvIHJ4X2ZpeHVwX2luZm87DQorfTsNCisNCiBzdGF0aWMgaW50IGFzaXhf cmVhZF9jbWQoc3RydWN0IHVzYm5ldCAqZGV2LCB1OCBjbWQsIHUxNiB2YWx1ZSwgdTE2IGluZGV4 LA0KIAkJCSAgICB1MTYgc2l6ZSwgdm9pZCAqZGF0YSkNCiB7DQpAQCAtMzA0LDk3ICszMTUsODkg QEAgYXNpeF93cml0ZV9jbWRfYXN5bmMoc3RydWN0IHVzYm5ldCAqZGV2LCB1OCBjbWQsIHUxNiB2 YWx1ZSwgdTE2IGluZGV4LA0KIAl9DQogfQ0KIA0KLXN0YXRpYyBpbnQgYXNpeF9yeF9maXh1cChz dHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQorc3RhdGljIGludCBhc2l4 X3J4X2ZpeHVwX2ludGVybmFsKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNr YiwNCisJCQkJICBzdHJ1Y3QgYXNpeF9yeF9maXh1cF9pbmZvICpyeCkNCiB7DQotCXU4ICAqaGVh ZDsNCi0JdTMyICBoZWFkZXI7DQotCWNoYXIgKnBhY2tldDsNCi0Jc3RydWN0IHNrX2J1ZmYgKmF4 X3NrYjsNCi0JdTE2IHNpemU7DQorCWludCBvZmZzZXQgPSAwOw0KKw0KKwl3aGlsZSAob2Zmc2V0 ICsgc2l6ZW9mKHUxNikgPD0gc2tiLT5sZW4pIHsNCisJCXUxNiByZW1haW5pbmcgPSAwOw0KKwkJ dW5zaWduZWQgY2hhciAqZGF0YTsNCisNCisJCWlmICghcngtPnNpemUpIHsNCisJCQlpZiAoKHNr Yi0+bGVuIC0gb2Zmc2V0ID09IHNpemVvZih1MTYpKSB8fA0KKwkJCSAgICByeC0+c3BsaXRfaGVh ZCkgew0KKwkJCQlpZighcngtPnNwbGl0X2hlYWQpIHsNCisJCQkJCXJ4LT5oZWFkZXIgPSBnZXRf dW5hbGlnbmVkX2xlMTYoDQorCQkJCQkJCXNrYi0+ZGF0YSArIG9mZnNldCk7DQorCQkJCQlyeC0+ c3BsaXRfaGVhZCA9IHRydWU7DQorCQkJCQlvZmZzZXQgKz0gc2l6ZW9mKHUxNik7DQorCQkJCQli cmVhazsNCisJCQkJfSBlbHNlIHsNCisJCQkJCXJ4LT5oZWFkZXIgfD0gKGdldF91bmFsaWduZWRf bGUxNigNCisJCQkJCQkJc2tiLT5kYXRhICsgb2Zmc2V0KQ0KKwkJCQkJCQk8PCAxNik7DQorCQkJ CQlyeC0+c3BsaXRfaGVhZCA9IGZhbHNlOw0KKwkJCQkJb2Zmc2V0ICs9IHNpemVvZih1MTYpOw0K KwkJCQl9DQorCQkJfSBlbHNlIHsNCisJCQkJcngtPmhlYWRlciA9IGdldF91bmFsaWduZWRfbGUz Mihza2ItPmRhdGEgKw0KKwkJCQkJCQkJb2Zmc2V0KTsNCisJCQkJb2Zmc2V0ICs9IHNpemVvZih1 MzIpOw0KKwkJCX0NCiANCi0JaGVhZCA9ICh1OCAqKSBza2ItPmRhdGE7DQotCW1lbWNweSgmaGVh ZGVyLCBoZWFkLCBzaXplb2YoaGVhZGVyKSk7DQotCWxlMzJfdG9fY3B1cygmaGVhZGVyKTsNCi0J cGFja2V0ID0gaGVhZCArIHNpemVvZihoZWFkZXIpOw0KLQ0KLQlza2JfcHVsbChza2IsIDQpOw0K LQ0KLQl3aGlsZSAoc2tiLT5sZW4gPiAwKSB7DQotCQlpZiAoKGhlYWRlciAmIDB4MDdmZikgIT0g KCh+aGVhZGVyID4+IDE2KSAmIDB4MDdmZikpDQotCQkJbmV0ZGV2X2VycihkZXYtPm5ldCwgImFz aXhfcnhfZml4dXAoKSBCYWQgSGVhZGVyIExlbmd0aFxuIik7DQotDQotCQkvKiBnZXQgdGhlIHBh Y2tldCBsZW5ndGggKi8NCi0JCXNpemUgPSAodTE2KSAoaGVhZGVyICYgMHgwMDAwMDdmZik7DQot DQotCQlpZiAoKHNrYi0+bGVuKSAtICgoc2l6ZSArIDEpICYgMHhmZmZlKSA9PSAwKSB7DQotCQkJ dTggYWxpZ25tZW50ID0gKHVuc2lnbmVkIGxvbmcpc2tiLT5kYXRhICYgMHgzOw0KLQkJCWlmIChh bGlnbm1lbnQgIT0gMHgyKSB7DQotCQkJCS8qDQotCQkJCSAqIG5vdCAxNmJpdCBhbGlnbmVkIHNv IHVzZSB0aGUgcm9vbSBwcm92aWRlZCBieQ0KLQkJCQkgKiB0aGUgMzIgYml0IGhlYWRlciB0byBh bGlnbiB0aGUgZGF0YQ0KLQkJCQkgKg0KLQkJCQkgKiBub3RlIHdlIHdhbnQgMTZiaXQgYWxpZ25t ZW50IGFzIE1BQyBoZWFkZXIgaXMNCi0JCQkJICogMTRieXRlcyB0aHVzIGlwIGhlYWRlciB3aWxs IGJlIGFsaWduZWQgb24NCi0JCQkJICogMzJiaXQgYm91bmRhcnkgc28gYWNjZXNzaW5nIGlwaGVh ZGVyIGVsZW1lbnRzDQotCQkJCSAqIHVzaW5nIGEgY2FzdCB0byBzdHJ1Y3QgaXAgaGVhZGVyIHdv bnQgY2F1c2UNCi0JCQkJICogYW4gdW5hbGlnbmVkIGFjY2Vzc2VzLg0KLQkJCQkgKi8NCi0JCQkJ dTggcmVhbGlnbm1lbnQgPSAoYWxpZ25tZW50ICsgMikgJiAweDM7DQotCQkJCW1lbW1vdmUoc2ti LT5kYXRhIC0gcmVhbGlnbm1lbnQsDQotCQkJCQlza2ItPmRhdGEsDQotCQkJCQlzaXplKTsNCi0J CQkJc2tiLT5kYXRhIC09IHJlYWxpZ25tZW50Ow0KLQkJCQlza2Jfc2V0X3RhaWxfcG9pbnRlcihz a2IsIHNpemUpOw0KKwkJCS8qIGdldCB0aGUgcGFja2V0IGxlbmd0aCAqLw0KKwkJCXJ4LT5zaXpl ID0gKHUxNikgKHJ4LT5oZWFkZXIgJiAweDdmZik7DQorCQkJaWYgKHJ4LT5zaXplICE9ICgofnJ4 LT5oZWFkZXIgPj4gMTYpICYgMHg3ZmYpKSB7DQorCQkJCW5ldGRldl9lcnIoZGV2LT5uZXQsICJh c2l4X3J4X2ZpeHVwKCkgQmFkIEhlYWRlciBMZW5ndGggMHgleCwgb2Zmc2V0ICVkXG4iLA0KKwkJ CQkJICAgcngtPmhlYWRlciwgb2Zmc2V0KTsNCisJCQkJcngtPnNpemUgPSAwOw0KKwkJCQlyZXR1 cm4gMDsNCiAJCQl9DQotCQkJcmV0dXJuIDI7DQorCQkJcngtPmF4X3NrYiA9IG5ldGRldl9hbGxv Y19za2JfaXBfYWxpZ24oZGV2LT5uZXQsDQorCQkJCQkJCSAgICAgICByeC0+c2l6ZSk7DQorCQkJ aWYgKCFyeC0+YXhfc2tiKQ0KKwkJCQlyZXR1cm4gMDsNCiAJCX0NCiANCi0JCWlmIChzaXplID4g ZGV2LT5uZXQtPm10dSArIEVUSF9ITEVOICsgVkxBTl9ITEVOKSB7DQorCQlpZiAocngtPnNpemUg PiBkZXYtPm5ldC0+bXR1ICsgRVRIX0hMRU4gKyBWTEFOX0hMRU4pIHsNCiAJCQluZXRkZXZfZXJy KGRldi0+bmV0LCAiYXNpeF9yeF9maXh1cCgpIEJhZCBSWCBMZW5ndGggJWRcbiIsDQotCQkJCSAg IHNpemUpOw0KLQkJCXJldHVybiAwOw0KLQkJfQ0KLQkJYXhfc2tiID0gc2tiX2Nsb25lKHNrYiwg R0ZQX0FUT01JQyk7DQotCQlpZiAoYXhfc2tiKSB7DQotCQkJdTggYWxpZ25tZW50ID0gKHVuc2ln bmVkIGxvbmcpcGFja2V0ICYgMHgzOw0KLQkJCWF4X3NrYi0+bGVuID0gc2l6ZTsNCi0NCi0JCQlp ZiAoYWxpZ25tZW50ICE9IDB4Mikgew0KLQkJCQkvKg0KLQkJCQkgKiBub3QgMTZiaXQgYWxpZ25l ZCB1c2UgdGhlIHJvb20gcHJvdmlkZWQgYnkNCi0JCQkJICogdGhlIDMyIGJpdCBoZWFkZXIgdG8g YWxpZ24gdGhlIGRhdGENCi0JCQkJICovDQotCQkJCXU4IHJlYWxpZ25tZW50ID0gKGFsaWdubWVu dCArIDIpICYgMHgzOw0KLQkJCQltZW1tb3ZlKHBhY2tldCAtIHJlYWxpZ25tZW50LCBwYWNrZXQs IHNpemUpOw0KLQkJCQlwYWNrZXQgLT0gcmVhbGlnbm1lbnQ7DQotCQkJfQ0KLQkJCWF4X3NrYi0+ ZGF0YSA9IHBhY2tldDsNCi0JCQlza2Jfc2V0X3RhaWxfcG9pbnRlcihheF9za2IsIHNpemUpOw0K LQkJCXVzYm5ldF9za2JfcmV0dXJuKGRldiwgYXhfc2tiKTsNCi0JCX0gZWxzZSB7DQorCQkJCSAg IHJ4LT5zaXplKTsNCisJCQlrZnJlZV9za2IocngtPmF4X3NrYik7DQogCQkJcmV0dXJuIDA7DQog CQl9DQogDQotCQlza2JfcHVsbChza2IsIChzaXplICsgMSkgJiAweGZmZmUpOw0KKwkJaWYgKHJ4 LT5zaXplID4gc2tiLT5sZW4gLSBvZmZzZXQpIHsNCisJCQlyZW1haW5pbmcgPSByeC0+c2l6ZSAt IChza2ItPmxlbiAtIG9mZnNldCk7DQorCQkJcngtPnNpemUgPSBza2ItPmxlbiAtIG9mZnNldDsN CisJCX0NCiANCi0JCWlmIChza2ItPmxlbiA8IHNpemVvZihoZWFkZXIpKQ0KLQkJCWJyZWFrOw0K KwkJZGF0YSA9IHNrYl9wdXQocngtPmF4X3NrYiwgcngtPnNpemUpOw0KKwkJbWVtY3B5KGRhdGEs IHNrYi0+ZGF0YSArIG9mZnNldCwgcngtPnNpemUpOw0KKwkJaWYgKCFyZW1haW5pbmcpDQorCQkJ dXNibmV0X3NrYl9yZXR1cm4oZGV2LCByeC0+YXhfc2tiKTsNCiANCi0JCWhlYWQgPSAodTggKikg c2tiLT5kYXRhOw0KLQkJbWVtY3B5KCZoZWFkZXIsIGhlYWQsIHNpemVvZihoZWFkZXIpKTsNCi0J CWxlMzJfdG9fY3B1cygmaGVhZGVyKTsNCi0JCXBhY2tldCA9IGhlYWQgKyBzaXplb2YoaGVhZGVy KTsNCi0JCXNrYl9wdWxsKHNrYiwgNCk7DQorCQlvZmZzZXQgKz0gKHJ4LT5zaXplICsgMSkgJiAw eGZmZmU7DQorCQlyeC0+c2l6ZSA9IHJlbWFpbmluZzsNCiAJfQ0KIA0KLQlpZiAoc2tiLT5sZW4g PCAwKSB7DQotCQluZXRkZXZfZXJyKGRldi0+bmV0LCAiYXNpeF9yeF9maXh1cCgpIEJhZCBTS0Ig TGVuZ3RoICVkXG4iLA0KLQkJCSAgIHNrYi0+bGVuKTsNCisJaWYgKHNrYi0+bGVuICE9IG9mZnNl dCkgew0KKwkJbmV0ZGV2X2VycihkZXYtPm5ldCwgImFzaXhfcnhfZml4dXAoKSBCYWQgU0tCIExl bmd0aCAlZCwgJWRcbiIsDQorCQkJICAgc2tiLT5sZW4sIG9mZnNldCk7DQogCQlyZXR1cm4gMDsN CiAJfQ0KKw0KIAlyZXR1cm4gMTsNCiB9DQogDQorc3RhdGljIGludCBhc2l4X3J4X2ZpeHVwX2Nv bW1vbihzdHJ1Y3QgdXNibmV0ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpDQorew0KKwlzdHJ1 Y3QgYXNpeF9jb21tb25fcHJpdmF0ZSAqZHAgPSBkZXYtPmRyaXZlcl9wcml2Ow0KKwlzdHJ1Y3Qg YXNpeF9yeF9maXh1cF9pbmZvICpyeCA9ICZkcC0+cnhfZml4dXBfaW5mbzsNCisNCisJcmV0dXJu IGFzaXhfcnhfZml4dXBfaW50ZXJuYWwoZGV2LCBza2IsIHJ4KTsNCit9DQorDQogc3RhdGljIHN0 cnVjdCBza19idWZmICphc2l4X3R4X2ZpeHVwKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHNr X2J1ZmYgKnNrYiwNCiAJCQkJCWdmcF90IGZsYWdzKQ0KIHsNCkBAIC0xMTU0LDkgKzExNTcsMTkg QEAgc3RhdGljIGludCBheDg4NzcyX2JpbmQoc3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNi X2ludGVyZmFjZSAqaW50ZikNCiAJCWRldi0+cnhfdXJiX3NpemUgPSAyMDQ4Ow0KIAl9DQogDQor CWRldi0+ZHJpdmVyX3ByaXYgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgYXNpeF9jb21tb25fcHJp dmF0ZSksIEdGUF9LRVJORUwpOw0KKwlpZiAoIWRldi0+ZHJpdmVyX3ByaXYpDQorCQlyZXR1cm4g LUVOT01FTTsNCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyB2b2lkIGF4ODg3NzJfdW5i aW5kKHN0cnVjdCB1c2JuZXQgKmRldiwgc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpDQorew0K KwlpZiAoZGV2LT5kcml2ZXJfcHJpdikNCisJCWtmcmVlKGRldi0+ZHJpdmVyX3ByaXYpOw0KK30N CisNCiBzdGF0aWMgc3RydWN0IGV0aHRvb2xfb3BzIGF4ODgxNzhfZXRodG9vbF9vcHMgPSB7DQog CS5nZXRfZHJ2aW5mbwkJPSBhc2l4X2dldF9kcnZpbmZvLA0KIAkuZ2V0X2xpbmsJCT0gYXNpeF9n ZXRfbGluaywNCkBAIC0xNDg5LDYgKzE1MDIsMTAgQEAgc3RhdGljIGludCBheDg4MTc4X2JpbmQo c3RydWN0IHVzYm5ldCAqZGV2LCBzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikNCiAJCWRldi0+ cnhfdXJiX3NpemUgPSAyMDQ4Ow0KIAl9DQogDQorCWRldi0+ZHJpdmVyX3ByaXYgPSBremFsbG9j KHNpemVvZihzdHJ1Y3QgYXNpeF9jb21tb25fcHJpdmF0ZSksIEdGUF9LRVJORUwpOw0KKwlpZiAo IWRldi0+ZHJpdmVyX3ByaXYpDQorCQkJcmV0dXJuIC1FTk9NRU07DQorDQogCXJldHVybiAwOw0K IH0NCiANCkBAIC0xNTM1LDIyICsxNTUyLDI1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJpdmVy X2luZm8gaGF3a2luZ191ZjIwMF9pbmZvID0gew0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJpdmVy X2luZm8gYXg4ODc3Ml9pbmZvID0gew0KIAkuZGVzY3JpcHRpb24gPSAiQVNJWCBBWDg4NzcyIFVT QiAyLjAgRXRoZXJuZXQiLA0KIAkuYmluZCA9IGF4ODg3NzJfYmluZCwNCisJLnVuYmluZCA9IGF4 ODg3NzJfdW5iaW5kLA0KIAkuc3RhdHVzID0gYXNpeF9zdGF0dXMsDQogCS5saW5rX3Jlc2V0ID0g YXg4ODc3Ml9saW5rX3Jlc2V0LA0KIAkucmVzZXQgPSBheDg4NzcyX3Jlc2V0LA0KLQkuZmxhZ3Mg PSBGTEFHX0VUSEVSIHwgRkxBR19GUkFNSU5HX0FYIHwgRkxBR19MSU5LX0lOVFIsDQotCS5yeF9m aXh1cCA9IGFzaXhfcnhfZml4dXAsDQorCS5mbGFncyA9IEZMQUdfRVRIRVIgfCBGTEFHX0ZSQU1J TkdfQVggfCBGTEFHX0xJTktfSU5UUiB8IEZMQUdfTVVMVElfUEFDS0VULA0KKwkucnhfZml4dXAg PSBhc2l4X3J4X2ZpeHVwX2NvbW1vbiwNCiAJLnR4X2ZpeHVwID0gYXNpeF90eF9maXh1cCwNCiB9 Ow0KIA0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJpdmVyX2luZm8gYXg4ODE3OF9pbmZvID0gew0K IAkuZGVzY3JpcHRpb24gPSAiQVNJWCBBWDg4MTc4IFVTQiAyLjAgRXRoZXJuZXQiLA0KIAkuYmlu ZCA9IGF4ODgxNzhfYmluZCwNCisJLnVuYmluZCA9IGF4ODg3NzJfdW5iaW5kLA0KIAkuc3RhdHVz ID0gYXNpeF9zdGF0dXMsDQogCS5saW5rX3Jlc2V0ID0gYXg4ODE3OF9saW5rX3Jlc2V0LA0KIAku cmVzZXQgPSBheDg4MTc4X3Jlc2V0LA0KLQkuZmxhZ3MgPSBGTEFHX0VUSEVSIHwgRkxBR19GUkFN SU5HX0FYIHwgRkxBR19MSU5LX0lOVFIsDQotCS5yeF9maXh1cCA9IGFzaXhfcnhfZml4dXAsDQor CS5mbGFncyA9IEZMQUdfRVRIRVIgfCBGTEFHX0ZSQU1JTkdfQVggfCBGTEFHX0xJTktfSU5UUiB8 DQorCQkgRkxBR19NVUxUSV9QQUNLRVQsDQorCS5yeF9maXh1cCA9IGFzaXhfcnhfZml4dXBfY29t bW9uLA0KIAkudHhfZml4dXAgPSBhc2l4X3R4X2ZpeHVwLA0KIH07DQogDQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAva29iamVjdHMuYyBiL2RyaXZlcnMvc3RhZ2luZy9zcGVh a3VwL2tvYmplY3RzLmMNCmluZGV4IDA3YTdmNTQuLjY4MjkxOTUgMTAwNjQ0DQotLS0gYS9kcml2 ZXJzL3N0YWdpbmcvc3BlYWt1cC9rb2JqZWN0cy5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvc3Bl YWt1cC9rb2JqZWN0cy5jDQpAQCAtNTIxLDkgKzUyMSw5IEBAIHN0YXRpYyBzc2l6ZV90IHB1bmNf c3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwN CiAJc3BrX2xvY2soZmxhZ3MpOw0KIA0KIAlpZiAoKnB1bmNfYnVmID09ICdkJyB8fCAqcHVuY19i dWYgPT0gJ3InKQ0KLQkJeCA9IHNldF9tYXNrX2JpdHMoMCwgdmFyLT52YWx1ZSwgMyk7DQorCQl4 ID0gc3BrX3NldF9tYXNrX2JpdHMoMCwgdmFyLT52YWx1ZSwgMyk7DQogCWVsc2UNCi0JCXggPSBz ZXRfbWFza19iaXRzKHB1bmNfYnVmLCB2YXItPnZhbHVlLCAzKTsNCisJCXggPSBzcGtfc2V0X21h c2tfYml0cyhwdW5jX2J1ZiwgdmFyLT52YWx1ZSwgMyk7DQogDQogCXNwa191bmxvY2soZmxhZ3Mp Ow0KIAlyZXR1cm4gY291bnQ7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAv bWFpbi5jIGIvZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAvbWFpbi5jDQppbmRleCAwZDcwZjY4Li5h MDc2MzUxIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAvbWFpbi5jDQorKysg Yi9kcml2ZXJzL3N0YWdpbmcvc3BlYWt1cC9tYWluLmMNCkBAIC0yMjY1LDcgKzIyNjUsNyBAQCBz dGF0aWMgaW50IF9faW5pdCBzcGVha3VwX2luaXQodm9pZCkNCiAJICAgICAodmFyLT52YXJfaWQg Pj0gMCkgJiYgKHZhci0+dmFyX2lkIDwgTUFYVkFSUyk7IHZhcisrKQ0KIAkJc3BlYWt1cF9yZWdp c3Rlcl92YXIodmFyKTsNCiAJZm9yIChpID0gMTsgcHVuY19pbmZvW2ldLm1hc2sgIT0gMDsgaSsr KQ0KLQkJc2V0X21hc2tfYml0cygwLCBpLCAyKTsNCisJCXNwa19zZXRfbWFza19iaXRzKDAsIGks IDIpOw0KIA0KIAlzZXRfa2V5X2luZm8oa2V5X2RlZmF1bHRzLCBrZXlfYnVmKTsNCiAJaWYgKHF1 aWV0X2Jvb3QpDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAvc3BlYWt1cC5o IGIvZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAvc3BlYWt1cC5oDQppbmRleCA0MTJiODc5Li5mMzlj MGEyIDEwMDY0NA0KLS0tIGEvZHJpdmVycy9zdGFnaW5nL3NwZWFrdXAvc3BlYWt1cC5oDQorKysg Yi9kcml2ZXJzL3N0YWdpbmcvc3BlYWt1cC9zcGVha3VwLmgNCkBAIC03MSw3ICs3MSw3IEBAIGV4 dGVybiBzdHJ1Y3Qgc3RfdmFyX2hlYWRlciAqdmFyX2hlYWRlcl9ieV9uYW1lKGNvbnN0IGNoYXIg Km5hbWUpOw0KIGV4dGVybiBzdHJ1Y3QgcHVuY192YXJfdCAqZ2V0X3B1bmNfdmFyKGVudW0gdmFy X2lkX3QgdmFyX2lkKTsNCiBleHRlcm4gaW50IHNldF9udW1fdmFyKGludCB2YWwsIHN0cnVjdCBz dF92YXJfaGVhZGVyICp2YXIsIGludCBob3cpOw0KIGV4dGVybiBpbnQgc2V0X3N0cmluZ192YXIo Y29uc3QgY2hhciAqcGFnZSwgc3RydWN0IHN0X3Zhcl9oZWFkZXIgKnZhciwgaW50IGxlbik7DQot ZXh0ZXJuIGludCBzZXRfbWFza19iaXRzKGNvbnN0IGNoYXIgKmlucHV0LCBjb25zdCBpbnQgd2hp Y2gsIGNvbnN0IGludCBob3cpOw0KK2V4dGVybiBpbnQgc3BrX3NldF9tYXNrX2JpdHMoY29uc3Qg Y2hhciAqaW5wdXQsIGNvbnN0IGludCB3aGljaCwgY29uc3QgaW50IGhvdyk7DQogZXh0ZXJuIHNw ZWNpYWxfZnVuYyBzcGVjaWFsX2hhbmRsZXI7DQogZXh0ZXJuIGludCBoYW5kbGVfaGVscChzdHJ1 Y3QgdmNfZGF0YSAqdmMsIHVfY2hhciB0eXBlLCB1X2NoYXIgY2gsIHVfc2hvcnQga2V5KTsNCiBl eHRlcm4gaW50IHN5bnRoX2luaXQoY2hhciAqbmFtZSk7DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z dGFnaW5nL3NwZWFrdXAvdmFyaGFuZGxlcnMuYyBiL2RyaXZlcnMvc3RhZ2luZy9zcGVha3VwL3Zh cmhhbmRsZXJzLmMNCmluZGV4IGFiN2RlOTMuLjc1ZWFmMjcgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L3N0YWdpbmcvc3BlYWt1cC92YXJoYW5kbGVycy5jDQorKysgYi9kcml2ZXJzL3N0YWdpbmcvc3Bl YWt1cC92YXJoYW5kbGVycy5jDQpAQCAtMjY3LDExICsyNjcsMTEgQEAgaW50IHNldF9zdHJpbmdf dmFyKGNvbnN0IGNoYXIgKnBhZ2UsIHN0cnVjdCBzdF92YXJfaGVhZGVyICp2YXIsIGludCBsZW4p DQogCXJldHVybiByZXQ7DQogfQ0KIA0KLS8qIHNldF9tYXNrX2JpdHMgc2V0cyBvciBjbGVhcnMg dGhlIHB1bmMvZGVsaW0vcmVwZWF0IGJpdHMsDQorLyogc3BrX3NldF9tYXNrX2JpdHMgc2V0cyBv ciBjbGVhcnMgdGhlIHB1bmMvZGVsaW0vcmVwZWF0IGJpdHMsDQogICogaWYgaW5wdXQgaXMgbnVs bCB1c2VzIHRoZSBkZWZhdWx0cy4NCiAgKiB2YWx1ZXMgZm9yIGhvdzogMCBjbGVhcnMgYml0cyBv ZiBjaGFycyBzdXBwbGllZCwNCiAgKiAxIGNsZWFycyBhbGxrLCAyIHNldHMgYml0cyBmb3IgY2hh cnMgKi8NCi1pbnQgc2V0X21hc2tfYml0cyhjb25zdCBjaGFyICppbnB1dCwgY29uc3QgaW50IHdo aWNoLCBjb25zdCBpbnQgaG93KQ0KK2ludCBzcGtfc2V0X21hc2tfYml0cyhjb25zdCBjaGFyICpp bnB1dCwgY29uc3QgaW50IHdoaWNoLCBjb25zdCBpbnQgaG93KQ0KIHsNCiAJdV9jaGFyICpjcDsN CiAJc2hvcnQgbWFzayA9IHB1bmNfaW5mb1t3aGljaF0ubWFzazsNCmRpZmYgLS1naXQgYS9mcy9j aWZzL2ZpbGUuYyBiL2ZzL2NpZnMvZmlsZS5jDQppbmRleCBjNTU4MDhlLi4zOTZhNTc5IDEwMDY0 NA0KLS0tIGEvZnMvY2lmcy9maWxlLmMNCisrKyBiL2ZzL2NpZnMvZmlsZS5jDQpAQCAtMjEwNyw3 ICsyMTA3LDcgQEAgY2lmc19pb3ZlY193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3Qgc3Ry dWN0IGlvdmVjICppb3YsDQogew0KIAl1bnNpZ25lZCBpbnQgd3JpdHRlbjsNCiAJdW5zaWduZWQg bG9uZyBudW1fcGFnZXMsIG5wYWdlcywgaTsNCi0Jc2l6ZV90IGNvcGllZCwgbGVuLCBjdXJfbGVu Ow0KKwlzaXplX3QgYnl0ZXMsIGNvcGllZCwgbGVuLCBjdXJfbGVuOw0KIAlzc2l6ZV90IHRvdGFs X3dyaXR0ZW4gPSAwOw0KIAlzdHJ1Y3Qga3ZlYyAqdG9fc2VuZDsNCiAJc3RydWN0IHBhZ2UgKipw YWdlczsNCkBAIC0yMTY1LDE3ICsyMTY1LDQ0IEBAIGNpZnNfaW92ZWNfd3JpdGUoc3RydWN0IGZp bGUgKmZpbGUsIGNvbnN0IHN0cnVjdCBpb3ZlYyAqaW92LA0KIAlkbyB7DQogCQlzaXplX3Qgc2F2 ZV9sZW4gPSBjdXJfbGVuOw0KIAkJZm9yIChpID0gMDsgaSA8IG5wYWdlczsgaSsrKSB7DQotCQkJ Y29waWVkID0gbWluX3QoY29uc3Qgc2l6ZV90LCBjdXJfbGVuLCBQQUdFX0NBQ0hFX1NJWkUpOw0K KwkJCWJ5dGVzID0gbWluX3QoY29uc3Qgc2l6ZV90LCBjdXJfbGVuLCBQQUdFX0NBQ0hFX1NJWkUp Ow0KIAkJCWNvcGllZCA9IGlvdl9pdGVyX2NvcHlfZnJvbV91c2VyKHBhZ2VzW2ldLCAmaXQsIDAs DQotCQkJCQkJCSBjb3BpZWQpOw0KKwkJCQkJCQkgYnl0ZXMpOw0KIAkJCWN1cl9sZW4gLT0gY29w aWVkOw0KIAkJCWlvdl9pdGVyX2FkdmFuY2UoJml0LCBjb3BpZWQpOw0KIAkJCXRvX3NlbmRbaSsx XS5pb3ZfYmFzZSA9IGttYXAocGFnZXNbaV0pOw0KIAkJCXRvX3NlbmRbaSsxXS5pb3ZfbGVuID0g Y29waWVkOw0KKwkJCS8qDQorCQkJICogSWYgd2UgZGlkbid0IGNvcHkgYXMgbXVjaCBhcyB3ZSBl eHBlY3RlZCwgdGhlbiB0aGF0DQorCQkJICogbWF5IG1lYW4gd2UgdHJvZCBpbnRvIGFuIHVubWFw cGVkIGFyZWEuIFN0b3AgY29weWluZw0KKwkJCSAqIGF0IHRoYXQgcG9pbnQuIE9uIHRoZSBuZXh0 IHBhc3MgdGhyb3VnaCB0aGUgYmlnDQorCQkJICogbG9vcCwgd2UnbGwgbGlrZWx5IGVuZCB1cCBn ZXR0aW5nIGEgemVyby1sZW5ndGgNCisJCQkgKiB3cml0ZSBhbmQgYmFpbGluZyBvdXQgb2YgaXQu DQorCQkJICovDQorCQkJaWYgKGNvcGllZCA8IGJ5dGVzKQ0KKwkJCQlicmVhazsNCiAJCX0NCiAN CiAJCWN1cl9sZW4gPSBzYXZlX2xlbiAtIGN1cl9sZW47DQogDQorCQkvKg0KKwkJICogSWYgd2Ug aGF2ZSBubyBkYXRhIHRvIHNlbmQsIHRoZW4gdGhhdCBwcm9iYWJseSBtZWFucyB0aGF0DQorCQkg KiB0aGUgY29weSBhYm92ZSBmYWlsZWQgYWx0b2dldGhlci4gVGhhdCdzIG1vc3QgbGlrZWx5IGJl Y2F1c2UNCisJCSAqIHRoZSBhZGRyZXNzIGluIHRoZSBpb3ZlYyB3YXMgYm9ndXMuIFNldCB0aGUg cmMgdG8gLUVGQVVMVCwNCisJCSAqIGZyZWUgYW55dGhpbmcgd2UgYWxsb2NhdGVkIGFuZCBiYWls IG91dC4NCisJCSAqLw0KKwkJaWYgKCFjdXJfbGVuKSB7DQorCQkJa3VubWFwKHBhZ2VzWzBdKTsN CisJCQlyYyA9IC1FRkFVTFQ7DQorCQkJYnJlYWs7DQorCQl9DQorDQorCQkvKg0KKwkJICogaSAr IDEgbm93IHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBwYWdlcyB3ZSBhY3R1YWxseSB1c2VkIGlu DQorCQkgKiB0aGUgY29weSBwaGFzZSBhYm92ZS4NCisJCSAqLw0KKwkJbnBhZ2VzID0gaSArIDE7 DQorDQogCQlkbyB7DQogCQkJaWYgKG9wZW5fZmlsZS0+aW52YWxpZEhhbmRsZSkgew0KIAkJCQly YyA9IGNpZnNfcmVvcGVuX2ZpbGUob3Blbl9maWxlLCBmYWxzZSk7DQpkaWZmIC0tZ2l0IGEvZnMv ZXh0NC9pbm9kZS5jIGIvZnMvZXh0NC9pbm9kZS5jDQppbmRleCA0NTc3OGE2Li5kYzlmMGVjIDEw MDY0NA0KLS0tIGEvZnMvZXh0NC9pbm9kZS5jDQorKysgYi9mcy9leHQ0L2lub2RlLmMNCkBAIC0z OCw2ICszOCw3IEBADQogI2luY2x1ZGUgPGxpbnV4L3ByaW50ay5oPg0KICNpbmNsdWRlIDxsaW51 eC9zbGFiLmg+DQogI2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPg0KKyNpbmNsdWRlIDxsaW51 eC9iaXRvcHMuaD4NCiANCiAjaW5jbHVkZSAiZXh0NF9qYmQyLmgiDQogI2luY2x1ZGUgInhhdHRy LmgiDQpAQCAtMzY5NCwxOCArMzY5NSwyMCBAQCBpbnQgZXh0NF9nZXRfaW5vZGVfbG9jKHN0cnVj dCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBleHQ0X2lsb2MgKmlsb2MpDQogdm9pZCBleHQ0X3NldF9p bm9kZV9mbGFncyhzdHJ1Y3QgaW5vZGUgKmlub2RlKQ0KIHsNCiAJdW5zaWduZWQgaW50IGZsYWdz ID0gRVhUNF9JKGlub2RlKS0+aV9mbGFnczsNCisJdW5zaWduZWQgaW50IG5ld19mbCA9IDA7DQog DQotCWlub2RlLT5pX2ZsYWdzICY9IH4oU19TWU5DfFNfQVBQRU5EfFNfSU1NVVRBQkxFfFNfTk9B VElNRXxTX0RJUlNZTkMpOw0KIAlpZiAoZmxhZ3MgJiBFWFQ0X1NZTkNfRkwpDQotCQlpbm9kZS0+ aV9mbGFncyB8PSBTX1NZTkM7DQorCQluZXdfZmwgfD0gU19TWU5DOw0KIAlpZiAoZmxhZ3MgJiBF WFQ0X0FQUEVORF9GTCkNCi0JCWlub2RlLT5pX2ZsYWdzIHw9IFNfQVBQRU5EOw0KKwkJbmV3X2Zs IHw9IFNfQVBQRU5EOw0KIAlpZiAoZmxhZ3MgJiBFWFQ0X0lNTVVUQUJMRV9GTCkNCi0JCWlub2Rl LT5pX2ZsYWdzIHw9IFNfSU1NVVRBQkxFOw0KKwkJbmV3X2ZsIHw9IFNfSU1NVVRBQkxFOw0KIAlp ZiAoZmxhZ3MgJiBFWFQ0X05PQVRJTUVfRkwpDQotCQlpbm9kZS0+aV9mbGFncyB8PSBTX05PQVRJ TUU7DQorCQluZXdfZmwgfD0gU19OT0FUSU1FOw0KIAlpZiAoZmxhZ3MgJiBFWFQ0X0RJUlNZTkNf RkwpDQotCQlpbm9kZS0+aV9mbGFncyB8PSBTX0RJUlNZTkM7DQorCQluZXdfZmwgfD0gU19ESVJT WU5DOw0KKwlzZXRfbWFza19iaXRzKCZpbm9kZS0+aV9mbGFncywNCisJCSAgICAgIFNfU1lOQ3xT X0FQUEVORHxTX0lNTVVUQUJMRXxTX05PQVRJTUV8U19ESVJTWU5DLCBuZXdfZmwpOw0KIH0NCiAN CiAvKiBQcm9wYWdhdGUgZmxhZ3MgZnJvbSBpX2ZsYWdzIHRvIEVYVDRfSShpbm9kZSktPmlfZmxh Z3MgKi8NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2JpdG9wcy5oIGIvaW5jbHVkZS9saW51 eC9iaXRvcHMuaA0KaW5kZXggZmM4YTNmZi4uODdhMzc1ZiAxMDA2NDQNCi0tLSBhL2luY2x1ZGUv bGludXgvYml0b3BzLmgNCisrKyBiL2luY2x1ZGUvbGludXgvYml0b3BzLmgNCkBAIC0xNjgsNiAr MTY4LDIxIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBfX2ZmczY0KHU2NCB3b3JkKQ0K IA0KICNpZmRlZiBfX0tFUk5FTF9fDQogDQorI2lmbmRlZiBzZXRfbWFza19iaXRzDQorI2RlZmlu ZSBzZXRfbWFza19iaXRzKHB0ciwgX21hc2ssIF9iaXRzKQlcDQorKHsJCQkJCQkJCVwNCisJY29u c3QgdHlwZW9mKCpwdHIpIG1hc2sgPSAoX21hc2spLCBiaXRzID0gKF9iaXRzKTsJXA0KKwl0eXBl b2YoKnB0cikgb2xkLCBuZXc7CQkJCQlcDQorCQkJCQkJCQlcDQorCWRvIHsJCQkJCQkJXA0KKwkJ b2xkID0gQUNDRVNTX09OQ0UoKnB0cik7CQkJXA0KKwkJbmV3ID0gKG9sZCAmIH5tYXNrKSB8IGJp dHM7CQkJXA0KKwl9IHdoaWxlIChjbXB4Y2hnKHB0ciwgb2xkLCBuZXcpICE9IG9sZCk7CQlcDQor CQkJCQkJCQlcDQorCW5ldzsJCQkJCQkJXA0KK30pDQorI2VuZGlmDQorDQogI2lmbmRlZiBmaW5k X2xhc3RfYml0DQogLyoqDQogICogZmluZF9sYXN0X2JpdCAtIGZpbmQgdGhlIGxhc3Qgc2V0IGJp dCBpbiBhIG1lbW9yeSByZWdpb24NCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NrYnVmZi5o IGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaA0KaW5kZXggODUxODBiZi4uMTNiZDZkMCAxMDA2NDQN Ci0tLSBhL2luY2x1ZGUvbGludXgvc2tidWZmLmgNCisrKyBiL2luY2x1ZGUvbGludXgvc2tidWZm LmgNCkBAIC0yMTQzLDYgKzIxNDMsOCBAQCBleHRlcm4gaW50CSAgICAgICBza2Jfc2hpZnQoc3Ry dWN0IHNrX2J1ZmYgKnRndCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCiANCiBleHRlcm4gc3RydWN0 IHNrX2J1ZmYgKnNrYl9zZWdtZW50KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBmZWF0dXJlcyk7 DQogDQordW5zaWduZWQgaW50IHNrYl9nc29fdHJhbnNwb3J0X3NlZ2xlbihjb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKTsNCisNCiBzdGF0aWMgaW5saW5lIHZvaWQgKnNrYl9oZWFkZXJfcG9pbnRl cihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBpbnQgb2Zmc2V0LA0KIAkJCQkgICAgICAgaW50 IGxlbiwgdm9pZCAqYnVmZmVyKQ0KIHsNCkBAIC0yNTU1LDUgKzI1NTcsMjIgQEAgc3RhdGljIGlu bGluZSBib29sIHNrYl9pc19yZWN5Y2xlYWJsZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBp bnQgc2tiX3NpemUpDQogDQogCXJldHVybiB0cnVlOw0KIH0NCisNCisvKioNCisgKiBza2JfZ3Nv X25ldHdvcmtfc2VnbGVuIC0gUmV0dXJuIGxlbmd0aCBvZiBpbmRpdmlkdWFsIHNlZ21lbnRzIG9m IGEgZ3NvIHBhY2tldA0KKyAqDQorICogQHNrYjogR1NPIHNrYg0KKyAqDQorICogc2tiX2dzb19u ZXR3b3JrX3NlZ2xlbiBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUgcmVhbCBzaXplIG9mIHRoZQ0K KyAqIGluZGl2aWR1YWwgc2VnbWVudHMsIGluY2x1ZGluZyBMYXllcjMgKElQLCBJUHY2KSBhbmQg TDQgaGVhZGVycyAoVENQL1VEUCkuDQorICoNCisgKiBUaGUgTUFDL0wyIGhlYWRlciBpcyBub3Qg YWNjb3VudGVkIGZvci4NCisgKi8NCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBza2JfZ3Nv X25ldHdvcmtfc2VnbGVuKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpDQorew0KKwl1bnNpZ25l ZCBpbnQgaGRyX2xlbiA9IHNrYl90cmFuc3BvcnRfaGVhZGVyKHNrYikgLQ0KKwkJCSAgICAgICBz a2JfbmV0d29ya19oZWFkZXIoc2tiKTsNCisJcmV0dXJuIGhkcl9sZW4gKyBza2JfZ3NvX3RyYW5z cG9ydF9zZWdsZW4oc2tiKTsNCit9DQogI2VuZGlmCS8qIF9fS0VSTkVMX18gKi8NCiAjZW5kaWYJ LyogX0xJTlVYX1NLQlVGRl9IICovDQpkaWZmIC0tZ2l0IGEvaXBjL21zZy5jIGIvaXBjL21zZy5j DQppbmRleCA3Mzg1ZGUyLi4yNWYxYTYxIDEwMDY0NA0KLS0tIGEvaXBjL21zZy5jDQorKysgYi9p cGMvbXNnLmMNCkBAIC0yOTYsNyArMjk2LDkgQEAgc3RhdGljIHZvaWQgZnJlZXF1ZShzdHJ1Y3Qg aXBjX25hbWVzcGFjZSAqbnMsIHN0cnVjdCBrZXJuX2lwY19wZXJtICppcGNwKQ0KIAl9DQogCWF0 b21pY19zdWIobXNxLT5xX2NieXRlcywgJm5zLT5tc2dfYnl0ZXMpOw0KIAlzZWN1cml0eV9tc2df cXVldWVfZnJlZShtc3EpOw0KKwlpcGNfbG9ja19ieV9wdHIoJm1zcS0+cV9wZXJtKTsNCiAJaXBj X3JjdV9wdXRyZWYobXNxKTsNCisJaXBjX3VubG9jaygmbXNxLT5xX3Blcm0pOw0KIH0NCiANCiAv Kg0KZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NrYnVmZi5jIGIvbmV0L2NvcmUvc2tidWZmLmMNCmlu ZGV4IDVkNmNiNTQuLjhhYzRhMGYgMTAwNjQ0DQotLS0gYS9uZXQvY29yZS9za2J1ZmYuYw0KKysr IGIvbmV0L2NvcmUvc2tidWZmLmMNCkBAIC00NSw2ICs0NSw4IEBADQogI2luY2x1ZGUgPGxpbnV4 L2luLmg+DQogI2luY2x1ZGUgPGxpbnV4L2luZXQuaD4NCiAjaW5jbHVkZSA8bGludXgvc2xhYi5o Pg0KKyNpbmNsdWRlIDxsaW51eC90Y3AuaD4NCisjaW5jbHVkZSA8bGludXgvdWRwLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPg0KICNpZmRlZiBDT05GSUdfTkVUX0NMU19BQ1QNCiAj aW5jbHVkZSA8bmV0L3BrdF9zY2hlZC5oPg0KQEAgLTMxODEsMyArMzE4MywyNiBAQCB2b2lkIF9f c2tiX3dhcm5fbHJvX2ZvcndhcmRpbmcoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJCQkg ICAiIHdoaWxlIExSTyBpcyBlbmFibGVkXG4iLCBza2ItPmRldi0+bmFtZSk7DQogfQ0KIEVYUE9S VF9TWU1CT0woX19za2Jfd2Fybl9scm9fZm9yd2FyZGluZyk7DQorDQorLyoqDQorICogc2tiX2dz b190cmFuc3BvcnRfc2VnbGVuIC0gUmV0dXJuIGxlbmd0aCBvZiBpbmRpdmlkdWFsIHNlZ21lbnRz IG9mIGEgZ3NvIHBhY2tldA0KKyAqDQorICogQHNrYjogR1NPIHNrYg0KKyAqDQorICogc2tiX2dz b190cmFuc3BvcnRfc2VnbGVuIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSByZWFsIHNpemUgb2Yg dGhlDQorICogaW5kaXZpZHVhbCBzZWdtZW50cywgaW5jbHVkaW5nIExheWVyNCBoZWFkZXJzIChU Q1AvVURQKS4NCisgKg0KKyAqIFRoZSBNQUMvTDIgb3IgbmV0d29yayAoSVAsIElQdjYpIGhlYWRl cnMgYXJlIG5vdCBhY2NvdW50ZWQgZm9yLg0KKyAqLw0KK3Vuc2lnbmVkIGludCBza2JfZ3NvX3Ry YW5zcG9ydF9zZWdsZW4oY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikNCit7DQorCWNvbnN0IHN0 cnVjdCBza2Jfc2hhcmVkX2luZm8gKnNoaW5mbyA9IHNrYl9zaGluZm8oc2tiKTsNCisJdW5zaWdu ZWQgaW50IGhkcl9sZW47DQorDQorCWlmIChsaWtlbHkoc2hpbmZvLT5nc29fdHlwZSAmIChTS0Jf R1NPX1RDUFY0IHwgU0tCX0dTT19UQ1BWNikpKQ0KKwkJaGRyX2xlbiA9IHRjcF9oZHJsZW4oc2ti KTsNCisJZWxzZQ0KKwkJaGRyX2xlbiA9IHNpemVvZihzdHJ1Y3QgdWRwaGRyKTsNCisJcmV0dXJu IGhkcl9sZW4gKyBzaGluZm8tPmdzb19zaXplOw0KK30NCitFWFBPUlRfU1lNQk9MX0dQTChza2Jf Z3NvX3RyYW5zcG9ydF9zZWdsZW4pOw0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L2lwX2ZvcndhcmQu YyBiL25ldC9pcHY0L2lwX2ZvcndhcmQuYw0KaW5kZXggMjlhMDdiNi4uZTBkOWYwMiAxMDA2NDQN Ci0tLSBhL25ldC9pcHY0L2lwX2ZvcndhcmQuYw0KKysrIGIvbmV0L2lwdjQvaXBfZm9yd2FyZC5j DQpAQCAtMzksNiArMzksNjggQEANCiAjaW5jbHVkZSA8bmV0L3JvdXRlLmg+DQogI2luY2x1ZGUg PG5ldC94ZnJtLmg+DQogDQorc3RhdGljIGJvb2wgaXBfbWF5X2ZyYWdtZW50KGNvbnN0IHN0cnVj dCBza19idWZmICpza2IpDQorew0KKwlyZXR1cm4gdW5saWtlbHkoKGlwX2hkcihza2IpLT5mcmFn X29mZiAmIGh0b25zKElQX0RGKSkgPT0gMCkgfHwNCisJICAgICAgICFza2ItPmxvY2FsX2RmOw0K K30NCisNCitzdGF0aWMgYm9vbCBpcF9leGNlZWRzX210dShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1bnNpZ25lZCBpbnQgbXR1KQ0KK3sNCisJaWYgKHNrYi0+bGVuIDw9IG10dSB8fCBza2It PmxvY2FsX2RmKQ0KKwkJcmV0dXJuIGZhbHNlOw0KKw0KKwlpZiAoc2tiX2lzX2dzbyhza2IpICYm IHNrYl9nc29fbmV0d29ya19zZWdsZW4oc2tiKSA8PSBtdHUpDQorCQlyZXR1cm4gZmFsc2U7DQor DQorCXJldHVybiB0cnVlOw0KK30NCisNCitzdGF0aWMgYm9vbCBpcF9nc29fZXhjZWVkc19kc3Rf bXR1KGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpDQorew0KKwl1bnNpZ25lZCBpbnQgbXR1Ow0K Kw0KKwlpZiAoc2tiLT5sb2NhbF9kZiB8fCAhc2tiX2lzX2dzbyhza2IpKQ0KKwkJcmV0dXJuIGZh bHNlOw0KKw0KKwltdHUgPSBkc3RfbXR1KHNrYl9kc3Qoc2tiKSk7DQorDQorCS8qIGlmIHNlZ2xl biA+IG10dSwgZG8gc29mdHdhcmUgc2VnbWVudGF0aW9uIGZvciBJUCBmcmFnbWVudGF0aW9uIG9u DQorCSAqIG91dHB1dC4gIERGIGJpdCBjYW5ub3QgYmUgc2V0IHNpbmNlIGlwX2ZvcndhcmQgd291 bGQgaGF2ZSBzZW50DQorCSAqIGljbXAgZXJyb3IuDQorCSAqLw0KKwlyZXR1cm4gc2tiX2dzb19u ZXR3b3JrX3NlZ2xlbihza2IpID4gbXR1Ow0KK30NCisNCisvKiBjYWxsZWQgaWYgR1NPIHNrYiBu ZWVkcyB0byBiZSBmcmFnbWVudGVkIG9uIGZvcndhcmQgKi8NCitzdGF0aWMgaW50IGlwX2Zvcndh cmRfZmluaXNoX2dzbyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KK3sNCisJc3RydWN0IHNrX2J1ZmYg KnNlZ3M7DQorCWludCByZXQgPSAwOw0KKw0KKwlzZWdzID0gc2tiX2dzb19zZWdtZW50KHNrYiwg MCk7DQorCWlmIChJU19FUlIoc2VncykpIHsNCisJCWtmcmVlX3NrYihza2IpOw0KKwkJcmV0dXJu IC1FTk9NRU07DQorCX0NCisNCisJY29uc3VtZV9za2Ioc2tiKTsNCisNCisJZG8gew0KKwkJc3Ry dWN0IHNrX2J1ZmYgKm5za2IgPSBzZWdzLT5uZXh0Ow0KKwkJaW50IGVycjsNCisNCisJCXNlZ3Mt Pm5leHQgPSBOVUxMOw0KKwkJZXJyID0gZHN0X291dHB1dChzZWdzKTsNCisNCisJCWlmIChlcnIg JiYgcmV0ID09IDApDQorCQkJcmV0ID0gZXJyOw0KKwkJc2VncyA9IG5za2I7DQorCX0gd2hpbGUg KHNlZ3MpOw0KKw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCiBzdGF0aWMgaW50IGlwX2ZvcndhcmRf ZmluaXNoKHN0cnVjdCBza19idWZmICpza2IpDQogew0KIAlzdHJ1Y3QgaXBfb3B0aW9ucyAqIG9w dAk9ICYoSVBDQihza2IpLT5vcHQpOw0KQEAgLTQ4LDYgKzExMCw5IEBAIHN0YXRpYyBpbnQgaXBf Zm9yd2FyZF9maW5pc2goc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJaWYgKHVubGlrZWx5KG9wdC0+ b3B0bGVuKSkNCiAJCWlwX2ZvcndhcmRfb3B0aW9ucyhza2IpOw0KIA0KKwlpZiAoaXBfZ3NvX2V4 Y2VlZHNfZHN0X210dShza2IpKQ0KKwkJcmV0dXJuIGlwX2ZvcndhcmRfZmluaXNoX2dzbyhza2Ip Ow0KKw0KIAlyZXR1cm4gZHN0X291dHB1dChza2IpOw0KIH0NCiANCkBAIC04Nyw4ICsxNTIsNyBA QCBpbnQgaXBfZm9yd2FyZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAlpZiAob3B0LT5pc19zdHJp Y3Ryb3V0ZSAmJiBvcHQtPm5leHRob3AgIT0gcnQtPnJ0X2dhdGV3YXkpDQogCQlnb3RvIHNyX2Zh aWxlZDsNCiANCi0JaWYgKHVubGlrZWx5KHNrYi0+bGVuID4gZHN0X210dSgmcnQtPmRzdCkgJiYg IXNrYl9pc19nc28oc2tiKSAmJg0KLQkJICAgICAoaXBfaGRyKHNrYiktPmZyYWdfb2ZmICYgaHRv bnMoSVBfREYpKSkgJiYgIXNrYi0+bG9jYWxfZGYpIHsNCisJaWYgKCFpcF9tYXlfZnJhZ21lbnQo c2tiKSAmJiBpcF9leGNlZWRzX210dShza2IsIGRzdF9tdHUoJnJ0LT5kc3QpKSkgew0KIAkJSVBf SU5DX1NUQVRTKGRldl9uZXQocnQtPmRzdC5kZXYpLCBJUFNUQVRTX01JQl9GUkFHRkFJTFMpOw0K IAkJaWNtcF9zZW5kKHNrYiwgSUNNUF9ERVNUX1VOUkVBQ0gsIElDTVBfRlJBR19ORUVERUQsDQog CQkJICBodG9ubChkc3RfbXR1KCZydC0+ZHN0KSkpOw0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L2lw Nl9vdXRwdXQuYyBiL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0KaW5kZXggZDNmZGU3ZS4uY2Q0YjUy OSAxMDA2NDQNCi0tLSBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYw0KKysrIGIvbmV0L2lwdjYvaXA2 X291dHB1dC5jDQpAQCAtMzgxLDYgKzM4MSwxNyBAQCBzdGF0aWMgaW5saW5lIGludCBpcDZfZm9y d2FyZF9maW5pc2goc3RydWN0IHNrX2J1ZmYgKnNrYikNCiAJcmV0dXJuIGRzdF9vdXRwdXQoc2ti KTsNCiB9DQogDQorc3RhdGljIGJvb2wgaXA2X3BrdF90b29fYmlnKGNvbnN0IHN0cnVjdCBza19i dWZmICpza2IsIHVuc2lnbmVkIGludCBtdHUpDQorew0KKwlpZiAoc2tiLT5sZW4gPD0gbXR1IHx8 IHNrYi0+bG9jYWxfZGYpDQorCQlyZXR1cm4gZmFsc2U7DQorDQorCWlmIChza2JfaXNfZ3NvKHNr YikgJiYgc2tiX2dzb19uZXR3b3JrX3NlZ2xlbihza2IpIDw9IG10dSkNCisJCXJldHVybiBmYWxz ZTsNCisNCisJcmV0dXJuIHRydWU7DQorfQ0KKw0KIGludCBpcDZfZm9yd2FyZChzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQ0KIHsNCiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0ID0gc2tiX2RzdChza2IpOw0K QEAgLTUwNCw3ICs1MTUsNyBAQCBpbnQgaXA2X2ZvcndhcmQoc3RydWN0IHNrX2J1ZmYgKnNrYikN CiAJaWYgKG10dSA8IElQVjZfTUlOX01UVSkNCiAJCW10dSA9IElQVjZfTUlOX01UVTsNCiANCi0J aWYgKHNrYi0+bGVuID4gbXR1ICYmICFza2JfaXNfZ3NvKHNrYikpIHsNCisJaWYgKGlwNl9wa3Rf dG9vX2JpZyhza2IsIG10dSkpIHsNCiAJCS8qIEFnYWluLCBmb3JjZSBPVVRQVVQgZGV2aWNlIHVz ZWQgYXMgc291cmNlIGFkZHJlc3MgKi8NCiAJCXNrYi0+ZGV2ID0gZHN0LT5kZXY7DQogCQlpY21w djZfc2VuZChza2IsIElDTVBWNl9QS1RfVE9PQklHLCAwLCBtdHUpOw0KZGlmZiAtLWdpdCBhL25l dC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX2RjY3AuYyBiL25ldC9uZXRmaWx0ZXIvbmZf Y29ubnRyYWNrX3Byb3RvX2RjY3AuYw0KaW5kZXggMmU2NjRhNi4uOGFhOTRlZSAxMDA2NDQNCi0t LSBhL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRyYWNrX3Byb3RvX2RjY3AuYw0KKysrIGIvbmV0L25l dGZpbHRlci9uZl9jb25udHJhY2tfcHJvdG9fZGNjcC5jDQpAQCAtNDMxLDcgKzQzMSw3IEBAIHN0 YXRpYyBib29sIGRjY3BfbmV3KHN0cnVjdCBuZl9jb25uICpjdCwgY29uc3Qgc3RydWN0IHNrX2J1 ZmYgKnNrYiwNCiAJY29uc3QgY2hhciAqbXNnOw0KIAl1X2ludDhfdCBzdGF0ZTsNCiANCi0JZGgg PSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBkYXRhb2ZmLCBzaXplb2YoX2RoKSwgJmRoKTsNCisJ ZGggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBkYXRhb2ZmLCBzaXplb2YoX2RoKSwgJl9kaCk7 DQogCUJVR19PTihkaCA9PSBOVUxMKTsNCiANCiAJc3RhdGUgPSBkY2NwX3N0YXRlX3RhYmxlW0NU X0RDQ1BfUk9MRV9DTElFTlRdW2RoLT5kY2NwaF90eXBlXVtDVF9EQ0NQX05PTkVdOw0KQEAgLTQ4 Myw3ICs0ODMsNyBAQCBzdGF0aWMgaW50IGRjY3BfcGFja2V0KHN0cnVjdCBuZl9jb25uICpjdCwg Y29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwNCiAJdV9pbnQ4X3QgdHlwZSwgb2xkX3N0YXRlLCBu ZXdfc3RhdGU7DQogCWVudW0gY3RfZGNjcF9yb2xlcyByb2xlOw0KIA0KLQlkaCA9IHNrYl9oZWFk ZXJfcG9pbnRlcihza2IsIGRhdGFvZmYsIHNpemVvZihfZGgpLCAmZGgpOw0KKwlkaCA9IHNrYl9o ZWFkZXJfcG9pbnRlcihza2IsIGRhdGFvZmYsIHNpemVvZihfZGgpLCAmX2RoKTsNCiAJQlVHX09O KGRoID09IE5VTEwpOw0KIAl0eXBlID0gZGgtPmRjY3BoX3R5cGU7DQogDQpAQCAtNTc1LDcgKzU3 NSw3IEBAIHN0YXRpYyBpbnQgZGNjcF9lcnJvcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBuZl9j b25uICp0bXBsLA0KIAl1bnNpZ25lZCBpbnQgY3Njb3Y7DQogCWNvbnN0IGNoYXIgKm1zZzsNCiAN Ci0JZGggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBkYXRhb2ZmLCBzaXplb2YoX2RoKSwgJmRo KTsNCisJZGggPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBkYXRhb2ZmLCBzaXplb2YoX2RoKSwg Jl9kaCk7DQogCWlmIChkaCA9PSBOVUxMKSB7DQogCQltc2cgPSAibmZfY3RfZGNjcDogc2hvcnQg cGFja2V0ICI7DQogCQlnb3RvIG91dF9pbnZhbGlkOw0KZGlmZiAtLWdpdCBhL3NjcmlwdHMvcGFj a2FnZS9idWlsZGRlYiBiL3NjcmlwdHMvcGFja2FnZS9idWlsZGRlYg0KaW5kZXggM2M2YzBiMS4u YmVlNTVmNiAxMDA2NDQNCi0tLSBhL3NjcmlwdHMvcGFja2FnZS9idWlsZGRlYg0KKysrIGIvc2Ny aXB0cy9wYWNrYWdlL2J1aWxkZGViDQpAQCAtNDEsOSArNDEsOSBAQCBjcmVhdGVfcGFja2FnZSgp IHsNCiAJcGFyaXNjKikNCiAJCWRlYmFyY2g9aHBwYSA7Ow0KIAltaXBzKikNCi0JCWRlYmFyY2g9 bWlwcyQoZ3JlcCAtcSBDUFVfTElUVExFX0VORElBTj15IC5jb25maWcgJiYgZWNobyBlbCkgOzsN CisJCWRlYmFyY2g9bWlwcyQoZ3JlcCAtcSBDUFVfTElUVExFX0VORElBTj15ICRLQ09ORklHX0NP TkZJRyAmJiBlY2hvIGVsIHx8IHRydWUpIDs7DQogCWFybSopDQotCQlkZWJhcmNoPWFybSQoZ3Jl cCAtcSBDT05GSUdfQUVBQkk9eSAuY29uZmlnICYmIGVjaG8gZWwpIDs7DQorCQlkZWJhcmNoPWFy bSQoZ3JlcCAtcSBDT05GSUdfQUVBQkk9eSAkS0NPTkZJR19DT05GSUcgJiYgZWNobyBlbCB8fCB0 cnVlKSA7Ow0KIAkqKQ0KIAkJZWNobyAiIiA+JjINCiAJCWVjaG8gIioqICoqICoqICBXQVJOSU5H ICAqKiAqKiAqKiIgPiYyDQpAQCAtNjIsNyArNjIsNyBAQCBjcmVhdGVfcGFja2FnZSgpIHsNCiAJ ZmkNCiANCiAJIyBDcmVhdGUgdGhlIHBhY2thZ2UNCi0JZHBrZy1nZW5jb250cm9sIC1pc3AgJGZv cmNlYXJjaCAtcCRwbmFtZSAtUCIkcGRpciINCisJZHBrZy1nZW5jb250cm9sIC1pc3AgJGZvcmNl YXJjaCAtVmtlcm5lbDpkZWJhcmNoPSIke2RlYmFyY2g6LSQoZHBrZyAtLXByaW50LWFyY2hpdGVj dHVyZSl9IiAtcCRwbmFtZSAtUCIkcGRpciINCiAJZHBrZyAtLWJ1aWxkICIkcGRpciIgLi4NCiB9 DQogDQpAQCAtMTA1LDEyICsxMDUsMTIgQEAgZmkNCiBpZiBbICIkQVJDSCIgPSAidW0iIF0gOyB0 aGVuDQogCSRNQUtFIGxpbnV4DQogCWNwIFN5c3RlbS5tYXAgIiR0bXBkaXIvdXNyL2xpYi91bWwv bW9kdWxlcy8kdmVyc2lvbi9TeXN0ZW0ubWFwIg0KLQljcCAuY29uZmlnICIkdG1wZGlyL3Vzci9z aGFyZS9kb2MvJHBhY2thZ2VuYW1lL2NvbmZpZyINCisJY3AgJEtDT05GSUdfQ09ORklHICIkdG1w ZGlyL3Vzci9zaGFyZS9kb2MvJHBhY2thZ2VuYW1lL2NvbmZpZyINCiAJZ3ppcCAiJHRtcGRpci91 c3Ivc2hhcmUvZG9jLyRwYWNrYWdlbmFtZS9jb25maWciDQogCWNwICRLQlVJTERfSU1BR0UgIiR0 bXBkaXIvdXNyL2Jpbi9saW51eC0kdmVyc2lvbiINCiBlbHNlIA0KIAljcCBTeXN0ZW0ubWFwICIk dG1wZGlyL2Jvb3QvU3lzdGVtLm1hcC0kdmVyc2lvbiINCi0JY3AgLmNvbmZpZyAiJHRtcGRpci9i b290L2NvbmZpZy0kdmVyc2lvbiINCisJY3AgJEtDT05GSUdfQ09ORklHICIkdG1wZGlyL2Jvb3Qv Y29uZmlnLSR2ZXJzaW9uIg0KIAkjIE5vdCBhbGwgYXJjaGVzIGluY2x1ZGUgdGhlIGJvb3QgcGF0 aCBpbiBLQlVJTERfSU1BR0UNCiAJaWYgWyAtZSAkS0JVSUxEX0lNQUdFIF07IHRoZW4NCiAJCWNw ICRLQlVJTERfSU1BR0UgIiR0bXBkaXIvYm9vdC92bWxpbnV6LSR2ZXJzaW9uIg0KQEAgLTExOSw3 ICsxMTksNyBAQCBlbHNlDQogCWZpDQogZmkNCiANCi1pZiBncmVwIC1xICdeQ09ORklHX01PRFVM RVM9eScgLmNvbmZpZyA7IHRoZW4NCitpZiBncmVwIC1xICdeQ09ORklHX01PRFVMRVM9eScgJEtD T05GSUdfQ09ORklHIDsgdGhlbg0KIAlJTlNUQUxMX01PRF9QQVRIPSIkdG1wZGlyIiBtYWtlIEtC VUlMRF9TUkM9IG1vZHVsZXNfaW5zdGFsbA0KIAlpZiBbICIkQVJDSCIgPSAidW0iIF0gOyB0aGVu DQogCQltdiAiJHRtcGRpci9saWIvbW9kdWxlcy8kdmVyc2lvbiIvKiAiJHRtcGRpci91c3IvbGli L3VtbC9tb2R1bGVzLyR2ZXJzaW9uLyINCkBAIC0yNDAsMjEgKzI0MCwyMSBAQCBmaQ0KICMgQnVp bGQgaGVhZGVyIHBhY2thZ2UNCiAoY2QgJHNyY3RyZWU7IGZpbmQgLiAtbmFtZSBNYWtlZmlsZSAt byAtbmFtZSBLY29uZmlnXCogLW8gLW5hbWUgXCoucGwgPiAiJG9ianRyZWUvZGViaWFuL2hkcnNy Y2ZpbGVzIikNCiAoY2QgJHNyY3RyZWU7IGZpbmQgYXJjaC8kU1JDQVJDSC9pbmNsdWRlIGluY2x1 ZGUgc2NyaXB0cyAtdHlwZSBmID4+ICIkb2JqdHJlZS9kZWJpYW4vaGRyc3JjZmlsZXMiKQ0KLShj ZCAkb2JqdHJlZTsgZmluZCAuY29uZmlnIE1vZHVsZS5zeW12ZXJzIGluY2x1ZGUgc2NyaXB0cyAt dHlwZSBmID4+ICIkb2JqdHJlZS9kZWJpYW4vaGRyb2JqZmlsZXMiKQ0KKyhjZCAkb2JqdHJlZTsg ZmluZCBNb2R1bGUuc3ltdmVycyBpbmNsdWRlIHNjcmlwdHMgLXR5cGUgZiA+PiAiJG9ianRyZWUv ZGViaWFuL2hkcm9iamZpbGVzIikNCiBkZXN0ZGlyPSRrZXJuZWxfaGVhZGVyc19kaXIvdXNyL3Ny Yy9saW51eC1oZWFkZXJzLSR2ZXJzaW9uDQogbWtkaXIgLXAgIiRkZXN0ZGlyIg0KIChjZCAkc3Jj dHJlZTsgdGFyIC1jIC1mIC0gLVQgIiRvYmp0cmVlL2RlYmlhbi9oZHJzcmNmaWxlcyIpIHwgKGNk ICRkZXN0ZGlyOyB0YXIgLXhmIC0pDQogKGNkICRvYmp0cmVlOyB0YXIgLWMgLWYgLSAtVCAiJG9i anRyZWUvZGViaWFuL2hkcm9iamZpbGVzIikgfCAoY2QgJGRlc3RkaXI7IHRhciAteGYgLSkNCiso Y2QgJG9ianRyZWU7IGNwICRLQ09ORklHX0NPTkZJRyAkZGVzdGRpci8uY29uZmlnKSAjIGNvcHkg LmNvbmZpZyBtYW51YWxseSB0byBiZSB3aGVyZSBpdCdzIGV4cGVjdGVkIHRvIGJlDQogcm0gLWYg IiRvYmp0cmVlL2RlYmlhbi9oZHJzcmNmaWxlcyIgIiRvYmp0cmVlL2RlYmlhbi9oZHJvYmpmaWxl cyINCi1hcmNoPSQoZHBrZyAtLXByaW50LWFyY2hpdGVjdHVyZSkNCiANCiBjYXQgPDxFT0YgPj4g ZGViaWFuL2NvbnRyb2wNCiANCiBQYWNrYWdlOiAka2VybmVsX2hlYWRlcnNfcGFja2FnZW5hbWUN CiBQcm92aWRlczogbGludXgtaGVhZGVycywgbGludXgtaGVhZGVycy0yLjYNCi1BcmNoaXRlY3R1 cmU6ICRhcmNoDQotRGVzY3JpcHRpb246IExpbnV4IGtlcm5lbCBoZWFkZXJzIGZvciAkS0VSTkVM UkVMRUFTRSBvbiAkYXJjaA0KLSBUaGlzIHBhY2thZ2UgcHJvdmlkZXMga2VybmVsIGhlYWRlciBm aWxlcyBmb3IgJEtFUk5FTFJFTEVBU0Ugb24gJGFyY2gNCitBcmNoaXRlY3R1cmU6IGFueQ0KK0Rl c2NyaXB0aW9uOiBMaW51eCBrZXJuZWwgaGVhZGVycyBmb3IgJEtFUk5FTFJFTEVBU0Ugb24gXCR7 a2VybmVsOmRlYmFyY2h9DQorIFRoaXMgcGFja2FnZSBwcm92aWRlcyBrZXJuZWwgaGVhZGVyIGZp bGVzIGZvciAkS0VSTkVMUkVMRUFTRSBvbiBcJHtrZXJuZWw6ZGViYXJjaH0NCiAgLg0KICBUaGlz IGlzIHVzZWZ1bCBmb3IgcGVvcGxlIHdobyBuZWVkIHRvIGJ1aWxkIGV4dGVybmFsIG1vZHVsZXMN CiBFT0YNCm== --=-OlCCE/VHr4yYUlKjb966-- --=-twUehfWXLZ+YmTp5FAAo Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIVAwUAU0ICeue/yOyVhhEJAQpZfg/9E/LxUI6mUfhQ8BjqQFS6iJ6TmGygYZnn tFnFbzLRJtcTKwZM9gqGFWEXZtOxdhUXreNo58KwWKblK38vPDsibreJMWNzFzlv m2wS5YH0YWAKXUyRbuvuribKq707A0FkIH4/SwwzIHmqNO0Tr5j6SuvJtgo6Z3QJ W+Nsk5LDl25yElwqLD0rQnmOBmALrot3qw+Ny2ZMXTsCV9tVQgdSWJaKIp7aai+c 5B5KSLVuKRsdgRG171J5sZygLbO7yHNw1W1nUgV00EgK9CTGQtzWx3nj30zOhjbo a1wPFzr0m+55mCEAQSJQ3PeR345DwFkHSL4X+IuovZHDz8en5N6E3e2JNnARJBq+ 47Ro9BQJojtQ3yb+r/Cc3v2Ed0NqtRRjONW3lMGGxFLzwnxf6jQ/rSGtebgfG8ub ilKYdcGDihGdQDy+mQLk+nu/0tw2+50M7eSneeG5LXh09rRSDIoWJIq4rU2CBrse ZJZB06rA5SSZDsOvDXh4udp1WuLnAAWru7L/crP+KCmi18vgT2PrxBSXAQVrfrDJ YZzgcZZ3SlDQbWZpUL7B/NHZpw+OXorEGBLupULmX7/6/YuR2dJfqXtf+kYsSfe2 fK/8sn1OBsfcgvjqZ0diQqH9Hm6/wLvjTx2/J73sglkZ9f1TSRs7WzEOiYSaIaFq CHleEjVjRcU= =J8yx -----END PGP SIGNATURE----- --=-twUehfWXLZ+YmTp5FAAo--