Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750925AbdDBDP0 (ORCPT ); Sat, 1 Apr 2017 23:15:26 -0400 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:40045 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750736AbdDBDPY (ORCPT ); Sat, 1 Apr 2017 23:15:24 -0400 Message-ID: <1491102915.12745.9.camel@decadent.org.uk> Subject: Re: [PATCH 3.16 00/26] 3.16.43-rc2 review From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: torvalds@linux-foundation.org, Guenter Roeck , akpm@linux-foundation.org Date: Sun, 02 Apr 2017 04:15:15 +0100 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-DANAltS10BzVMFG1d2hV" X-Mailer: Evolution 3.22.6-1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 2a02:8011:400e:2:6f00:88c8:c921:d332 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 110419 Lines: 1464 --=-DANAltS10BzVMFG1d2hV Content-Type: multipart/mixed; boundary="=-4jHe60yykWnLg7Gk739I" --=-4jHe60yykWnLg7Gk739I Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined diff for 3.16.43-rc2 relative to 3.16.42. Ben. --=20 Ben Hutchings It is impossible to make anything foolproof because fools are so ingenious. --=-4jHe60yykWnLg7Gk739I Content-Disposition: attachment; filename="linux-3.16.43-rc2.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.16.43-rc2.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vbmV0d29ya2luZy9uZXRsaW5rX21tYXAudHh0IGIv RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL25ldGxpbmtfbW1hcC50eHQKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGM2YWY0YmFjNWFhOC4uMDAwMDAwMDAwMDAwCi0tLSBhL0RvY3VtZW50 YXRpb24vbmV0d29ya2luZy9uZXRsaW5rX21tYXAudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzM5 ICswLDAgQEAKLVRoaXMgZmlsZSBkb2N1bWVudHMgaG93IHRvIHVzZSBtZW1vcnkgbWFwcGVkIEkv TyB3aXRoIG5ldGxpbmsuCi0KLUF1dGhvcjogUGF0cmljayBNY0hhcmR5IDxrYWJlckB0cmFzaC5u ZXQ+Ci0KLU92ZXJ2aWV3Ci0tLS0tLS0tLQotCi1NZW1vcnkgbWFwcGVkIG5ldGxpbmsgSS9PIGNh biBiZSB1c2VkIHRvIGluY3JlYXNlIHRocm91Z2hwdXQgYW5kIGRlY3JlYXNlCi1vdmVyaGVhZCBv ZiB1bmljYXN0IHJlY2VpdmUgYW5kIHRyYW5zbWl0IG9wZXJhdGlvbnMuIFNvbWUgbmV0bGluayBz dWJzeXN0ZW1zCi1yZXF1aXJlIGhpZ2ggdGhyb3VnaHB1dCwgdGhlc2UgYXJlIG1haW5seSB0aGUg bmV0ZmlsdGVyIHN1YnN5c3RlbXMKLW5mbmV0bGlua19xdWV1ZSBhbmQgbmZuZXRsaW5rX2xvZywg YnV0IGl0IGNhbiBhbHNvIGhlbHAgc3BlZWQgdXAgbGFyZ2UKLWR1bXAgb3BlcmF0aW9ucyBvZiBm LmkuIHRoZSByb3V0aW5nIGRhdGFiYXNlLgotCi1NZW1vcnkgbWFwcGVkIG5ldGxpbmsgSS9PIHVz ZWQgdHdvIGNpcmN1bGFyIHJpbmcgYnVmZmVycyBmb3IgUlggYW5kIFRYIHdoaWNoCi1hcmUgbWFw cGVkIGludG8gdGhlIHByb2Nlc3NlcyBhZGRyZXNzIHNwYWNlLgotCi1UaGUgUlggcmluZyBpcyB1 c2VkIGJ5IHRoZSBrZXJuZWwgdG8gZGlyZWN0bHkgY29uc3RydWN0IG5ldGxpbmsgbWVzc2FnZXMg aW50bwotdXNlci1zcGFjZSBtZW1vcnkgd2l0aG91dCBjb3B5aW5nIHRoZW0gYXMgZG9uZSB3aXRo IHJlZ3VsYXIgc29ja2V0IEkvTywKLWFkZGl0aW9uYWxseSBhcyBsb25nIGFzIHRoZSByaW5nIGNv bnRhaW5zIG1lc3NhZ2VzIG5vIHJlY3Ztc2coKSBvciBwb2xsKCkKLXN5c2NhbGxzIGhhdmUgdG8g YmUgaXNzdWVkIGJ5IHVzZXItc3BhY2UgdG8gZ2V0IG1vcmUgbWVzc2FnZS4KLQotVGhlIFRYIHJp bmcgaXMgdXNlZCB0byBwcm9jZXNzIG1lc3NhZ2VzIGRpcmVjdGx5IGZyb20gdXNlci1zcGFjZSBt ZW1vcnksIHRoZQota2VybmVsIHByb2Nlc3NlcyBhbGwgbWVzc2FnZXMgY29udGFpbmVkIGluIHRo ZSByaW5nIHVzaW5nIGEgc2luZ2xlIHNlbmRtc2coKQotY2FsbC4KLQotVXNhZ2Ugb3ZlcnZpZXcK LS0tLS0tLS0tLS0tLS0tCi0KLUluIG9yZGVyIHRvIHVzZSBtZW1vcnkgbWFwcGVkIG5ldGxpbmsg SS9PLCB1c2VyLXNwYWNlIG5lZWRzIHRocmVlIG1haW4gY2hhbmdlczoKLQotLSByaW5nIHNldHVw Ci0tIGNvbnZlcnNpb24gb2YgdGhlIFJYIHBhdGggdG8gZ2V0IG1lc3NhZ2VzIGZyb20gdGhlIHJp bmcgaW5zdGVhZCBvZiByZWN2bXNnKCkKLS0gY29udmVyc2lvbiBvZiB0aGUgVFggcGF0aCB0byBj b25zdHJ1Y3QgbWVzc2FnZXMgaW50byB0aGUgcmluZwotCi1SaW5nIHNldHVwIGlzIGRvbmUgdXNp bmcgc2V0c29ja29wdCgpIHRvIHByb3ZpZGUgdGhlIHJpbmcgcGFyYW1ldGVycyB0byB0aGUKLWtl cm5lbCwgdGhlbiBhIGNhbGwgdG8gbW1hcCgpIHRvIG1hcCB0aGUgcmluZyBpbnRvIHRoZSBwcm9j ZXNzZXMgYWRkcmVzcyBzcGFjZToKLQotLSBzZXRzb2Nrb3B0KGZkLCBTT0xfTkVUTElOSywgTkVU TElOS19SWF9SSU5HLCAmcGFyYW1zLCBzaXplb2YocGFyYW1zKSk7Ci0tIHNldHNvY2tvcHQoZmQs IFNPTF9ORVRMSU5LLCBORVRMSU5LX1RYX1JJTkcsICZwYXJhbXMsIHNpemVvZihwYXJhbXMpKTsK LS0gcmluZyA9IG1tYXAoTlVMTCwgc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NI QVJFRCwgZmQsIDApCi0KLVVzYWdlIG9mIGVpdGhlciByaW5nIGlzIG9wdGlvbmFsLCBidXQgZXZl biBpZiBvbmx5IHRoZSBSWCByaW5nIGlzIHVzZWQgdGhlCi1tYXBwaW5nIHN0aWxsIG5lZWRzIHRv IGJlIHdyaXRhYmxlIGluIG9yZGVyIHRvIHVwZGF0ZSB0aGUgZnJhbWUgc3RhdHVzIGFmdGVyCi1w cm9jZXNzaW5nLgotCi1Db252ZXJzaW9uIG9mIHRoZSByZWNlcHRpb24gcGF0aCBpbnZvbHZlcyBj YWxsaW5nIHBvbGwoKSBvbiB0aGUgZmlsZQotZGVzY3JpcHRvciwgb25jZSB0aGUgc29ja2V0IGlz IHJlYWRhYmxlIHRoZSBmcmFtZXMgZnJvbSB0aGUgcmluZyBhcmUKLXByb2Nlc3NlZCBpbiBvcmRl ciB1bnRpbCBubyBtb3JlIG1lc3NhZ2VzIGFyZSBhdmFpbGFibGUsIGFzIGluZGljYXRlZCBieQot YSBzdGF0dXMgd29yZCBpbiB0aGUgZnJhbWUgaGVhZGVyLgotCi1PbiBrZXJuZWwgc2lkZSwgaW4g b3JkZXIgdG8gbWFrZSB1c2Ugb2YgbWVtb3J5IG1hcHBlZCBJL08gb24gcmVjZWl2ZSwgdGhlCi1v cmlnaW5hdGluZyBuZXRsaW5rIHN1YnN5c3RlbSBuZWVkcyB0byBzdXBwb3J0IG1lbW9yeSBtYXBw ZWQgSS9PLCBvdGhlcndpc2UKLWl0IHdpbGwgdXNlIGFuIGFsbG9jYXRlZCBzb2NrZXQgYnVmZmVy IGFzIHVzdWFsIGFuZCB0aGUgY29udGVudHMgd2lsbCBiZQotIGNvcGllZCB0byB0aGUgcmluZyBv biB0cmFuc21pc3Npb24sIG51bGxpZnlpbmcgbW9zdCBvZiB0aGUgcGVyZm9ybWFuY2UgZ2FpbnMu Ci1EdW1wcyBvZiBrZXJuZWwgZGF0YWJhc2VzIGF1dG9tYXRpY2FsbHkgc3VwcG9ydCBtZW1vcnkg bWFwcGVkIEkvTy4KLQotQ29udmVyc2lvbiBvZiB0aGUgdHJhbnNtaXQgcGF0aCBpbnZvbHZlcyBj aGFuZ2luZyBtZXNzYWdlIGNvbnN0cnVjdGlvbiB0bwotdXNlIG1lbW9yeSBmcm9tIHRoZSBUWCBy aW5nIGluc3RlYWQgb2YgKHVzdWFsbHkpIGEgYnVmZmVyIGRlY2xhcmVkIG9uIHRoZQotc3RhY2sg YW5kIHNldHRpbmcgdXAgdGhlIGZyYW1lIGhlYWRlciBhcHByb3ByaWF0ZWx5LiBPcHRpb25hbGx5 IHBvbGwoKSBjYW4KLWJlIHVzZWQgdG8gd2FpdCBmb3IgZnJlZSBmcmFtZXMgaW4gdGhlIFRYIHJp bmcuCi0KLVN0cnVjdHVyZWQgYW5kIGRlZmluaXRpb25zIGZvciB1c2luZyBtZW1vcnkgbWFwcGVk IEkvTyBhcmUgY29udGFpbmVkIGluCi08bGludXgvbmV0bGluay5oPi4KLQotUlggYW5kIFRYIHJp bmdzCi0tLS0tLS0tLS0tLS0tLS0tCi0KLUVhY2ggcmluZyBjb250YWlucyBhIG51bWJlciBvZiBj b250aW51b3VzIG1lbW9yeSBibG9ja3MsIGNvbnRhaW5pbmcgZnJhbWVzIG9mCi1maXhlZCBzaXpl IGRlcGVuZGVudCBvbiB0aGUgcGFyYW1ldGVycyB1c2VkIGZvciByaW5nIHNldHVwLgotCi1SaW5n OglbIGJsb2NrIDAgXQotCQlbIGZyYW1lIDAgXQotCQlbIGZyYW1lIDEgXQotCVsgYmxvY2sgMSBd Ci0JCVsgZnJhbWUgMiBdCi0JCVsgZnJhbWUgMyBdCi0JLi4uCi0JWyBibG9jayBuIF0KLQkJWyBm cmFtZSAyICogbiBdCi0JCVsgZnJhbWUgMiAqIG4gKyAxIF0KLQotVGhlIGJsb2NrcyBhcmUgb25s eSB2aXNpYmxlIHRvIHRoZSBrZXJuZWwsIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgdXNlci1z cGFjZQotdGhlIHJpbmcganVzdCBjb250YWlucyB0aGUgZnJhbWVzIGluIGEgY29udGludW91cyBt ZW1vcnkgem9uZS4KLQotVGhlIHJpbmcgcGFyYW1ldGVycyB1c2VkIGZvciBzZXR0aW5nIHVwIHRo ZSByaW5nIGFyZSBkZWZpbmVkIGFzIGZvbGxvd3M6Ci0KLXN0cnVjdCBubF9tbWFwX3JlcSB7Ci0J dW5zaWduZWQgaW50CW5tX2Jsb2NrX3NpemU7Ci0JdW5zaWduZWQgaW50CW5tX2Jsb2NrX25yOwot CXVuc2lnbmVkIGludAlubV9mcmFtZV9zaXplOwotCXVuc2lnbmVkIGludAlubV9mcmFtZV9ucjsK LX07Ci0KLUZyYW1lcyBhcmUgZ3JvdXBlZCBpbnRvIGJsb2Nrcywgd2hlcmUgZWFjaCBibG9jayBp cyBhIGNvbnRpbnVvdXMgcmVnaW9uIG9mIG1lbW9yeQotYW5kIGhvbGRzIG5tX2Jsb2NrX3NpemUg LyBubV9mcmFtZV9zaXplIGZyYW1lcy4gVGhlIHRvdGFsIG51bWJlciBvZiBmcmFtZXMgaW4KLXRo ZSByaW5nIGlzIG5tX2ZyYW1lX25yLiBUaGUgZm9sbG93aW5nIGludmFyaWFudHMgaG9sZDoKLQot LSBmcmFtZXNfcGVyX2Jsb2NrID0gbm1fYmxvY2tfc2l6ZSAvIG5tX2ZyYW1lX3NpemUKLQotLSBu bV9mcmFtZV9uciA9IGZyYW1lc19wZXJfYmxvY2sgKiBubV9ibG9ja19ucgotCi1Tb21lIHBhcmFt ZXRlcnMgYXJlIGNvbnN0cmFpbmVkLCBzcGVjaWZpY2FsbHk6Ci0KLS0gbm1fYmxvY2tfc2l6ZSBt dXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGFyY2hpdGVjdHVyZXMgbWVtb3J5IHBhZ2Ugc2l6ZS4K LSAgVGhlIGdldHBhZ2VzaXplKCkgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSBwYWdl IHNpemUuCi0KLS0gbm1fZnJhbWVfc2l6ZSBtdXN0IGJlIGVxdWFsIG9yIGxhcmdlciB0byBOTF9N TUFQX0hEUkxFTiwgSU9XIGEgZnJhbWUgbXVzdCBiZQotICBhYmxlIHRvIGhvbGQgYXQgbGVhc3Qg dGhlIGZyYW1lIGhlYWRlcgotCi0tIG5tX2ZyYW1lX3NpemUgbXVzdCBiZSBzbWFsbGVyIG9yIGVx dWFsIHRvIG5tX2Jsb2NrX3NpemUKLQotLSBubV9mcmFtZV9zaXplIG11c3QgYmUgYSBtdWx0aXBs ZSBvZiBOTF9NTUFQX01TR19BTElHTk1FTlQKLQotLSBubV9mcmFtZV9uciBtdXN0IGVxdWFsIHRo ZSBhY3R1YWwgbnVtYmVyIG9mIGZyYW1lcyBhcyBzcGVjaWZpZWQgYWJvdmUuCi0KLVdoZW4gdGhl IGtlcm5lbCBjYW4ndCBhbGxvY2F0ZSBwaHlzaWNhbGx5IGNvbnRpbnVvdXMgbWVtb3J5IGZvciBh IHJpbmcgYmxvY2ssCi1pdCB3aWxsIGZhbGwgYmFjayB0byB1c2UgcGh5c2ljYWxseSBkaXNjb250 aW51b3VzIG1lbW9yeS4gVGhpcyBtaWdodCBhZmZlY3QKLXBlcmZvcm1hbmNlIG5lZ2F0aXZlbHks IGluIG9yZGVyIHRvIGF2b2lkIHRoaXMgdGhlIG5tX2ZyYW1lX3NpemUgcGFyYW1ldGVyCi1zaG91 bGQgYmUgY2hvc2VuIHRvIGJlIGFzIHNtYWxsIGFzIHBvc3NpYmxlIGZvciB0aGUgcmVxdWlyZWQg ZnJhbWUgc2l6ZSBhbmQKLXRoZSBudW1iZXIgb2YgYmxvY2tzIHNob3VsZCBiZSBpbmNyZWFzZWQg aW5zdGVhZC4KLQotUmluZyBmcmFtZXMKLS0tLS0tLS0tLS0tLQotCi1FYWNoIGZyYW1lcyBjb250 YWluIGEgZnJhbWUgaGVhZGVyLCBjb25zaXN0aW5nIG9mIGEgc3luY2hyb25pemF0aW9uIHdvcmQg YW5kIHNvbWUKLW1ldGEtZGF0YSwgYW5kIHRoZSBtZXNzYWdlIGl0c2VsZi4KLQotRnJhbWU6CVsg aGVhZGVyIG1lc3NhZ2UgXQotCi1UaGUgZnJhbWUgaGVhZGVyIGlzIGRlZmluZWQgYXMgZm9sbG93 czoKLQotc3RydWN0IG5sX21tYXBfaGRyIHsKLQl1bnNpZ25lZCBpbnQJbm1fc3RhdHVzOwotCXVu c2lnbmVkIGludAlubV9sZW47Ci0JX191MzIJCW5tX2dyb3VwOwotCS8qIGNyZWRlbnRpYWxzICov Ci0JX191MzIJCW5tX3BpZDsKLQlfX3UzMgkJbm1fdWlkOwotCV9fdTMyCQlubV9naWQ7Ci19Owot Ci0tIG5tX3N0YXR1cyBpcyB1c2VkIGZvciBzeW5jaHJvbml6aW5nIHByb2Nlc3NpbmcgYmV0d2Vl biB0aGUga2VybmVsIGFuZCB1c2VyLQotICBzcGFjZSBhbmQgc3BlY2lmaWVzIG93bmVyc2hpcCBv ZiB0aGUgZnJhbWUgYXMgd2VsbCBhcyB0aGUgb3BlcmF0aW9uIHRvIHBlcmZvcm0KLQotLSBubV9s ZW4gY29udGFpbnMgdGhlIGxlbmd0aCBvZiB0aGUgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIGRh dGEgYXJlYQotCi0tIG5tX2dyb3VwIHNwZWNpZmllZCB0aGUgZGVzdGluYXRpb24gbXVsdGljYXN0 IGdyb3VwIG9mIG1lc3NhZ2UKLQotLSBubV9waWQsIG5tX3VpZCBhbmQgbm1fZ2lkIGNvbnRhaW4g dGhlIG5ldGxpbmsgcGlkLCBVSUQgYW5kIEdJRCBvZiB0aGUgc2VuZGluZwotICBwcm9jZXNzLiBU aGVzZSB2YWx1ZXMgY29ycmVzcG9uZCB0byB0aGUgZGF0YSBhdmFpbGFibGUgdXNpbmcgU09DS19Q QVNTQ1JFRCBpbgotICB0aGUgU0NNX0NSRURFTlRJQUxTIGNtc2cuCi0KLVRoZSBwb3NzaWJsZSB2 YWx1ZXMgaW4gdGhlIHN0YXR1cyB3b3JkIGFyZToKLQotLSBOTF9NTUFQX1NUQVRVU19VTlVTRUQ6 Ci0JUlggcmluZzoJZnJhbWUgYmVsb25ncyB0byB0aGUga2VybmVsIGFuZCBjb250YWlucyBubyBt ZXNzYWdlCi0JCQlmb3IgdXNlci1zcGFjZS4gQXBwcm9yaWF0ZSBhY3Rpb24gaXMgdG8gaW52b2tl IHBvbGwoKQotCQkJdG8gd2FpdCBmb3IgbmV3IG1lc3NhZ2VzLgotCi0JVFggcmluZzoJZnJhbWUg YmVsb25ncyB0byB1c2VyLXNwYWNlIGFuZCBjYW4gYmUgdXNlZCBmb3IKLQkJCW1lc3NhZ2UgY29u c3RydWN0aW9uLgotCi0tIE5MX01NQVBfU1RBVFVTX1JFU0VSVkVEOgotCVJYIHJpbmcgb25seToJ ZnJhbWUgaXMgY3VycmVudGx5IHVzZWQgYnkgdGhlIGtlcm5lbCBmb3IgbWVzc2FnZQotCQkJY29u c3RydWN0aW9uIGFuZCBjb250YWlucyBubyB2YWxpZCBtZXNzYWdlIHlldC4KLQkJCUFwcHJvcHJp YXRlIGFjdGlvbiBpcyB0byBpbnZva2UgcG9sbCgpIHRvIHdhaXQgZm9yCi0JCQluZXcgbWVzc2Fn ZXMuCi0KLS0gTkxfTU1BUF9TVEFUVVNfVkFMSUQ6Ci0JUlggcmluZzoJZnJhbWUgY29udGFpbnMg YSB2YWxpZCBtZXNzYWdlLiBBcHByb3JpYXRlIGFjdGlvbiBpcwotCQkJdG8gcHJvY2VzcyB0aGUg bWVzc2FnZSBhbmQgcmVsZWFzZSB0aGUgZnJhbWUgYmFjayB0bwotCQkJdGhlIGtlcm5lbCBieSBz ZXR0aW5nIHRoZSBzdGF0dXMgdG8KLQkJCU5MX01NQVBfU1RBVFVTX1VOVVNFRCBvciBxdWV1ZSB0 aGUgZnJhbWUgYnkgc2V0dGluZyB0aGUKLQkJCXN0YXR1cyB0byBOTF9NTUFQX1NUQVRVU19TS0lQ LgotCi0JVFggcmluZzoJdGhlIGZyYW1lIGNvbnRhaW5zIGEgdmFsaWQgbWVzc2FnZSBmcm9tIHVz ZXItc3BhY2UgdG8KLQkJCWJlIHByb2Nlc3NlZCBieSB0aGUga2VybmVsLiBBZnRlciBjb21wbGV0 aW5nIHByb2Nlc3NpbmcKLQkJCXRoZSBrZXJuZWwgd2lsbCByZWxlYXNlIHRoZSBmcmFtZSBiYWNr IHRvIHVzZXItc3BhY2UgYnkKLQkJCXNldHRpbmcgdGhlIHN0YXR1cyB0byBOTF9NTUFQX1NUQVRV U19VTlVTRUQuCi0KLS0gTkxfTU1BUF9TVEFUVVNfQ09QWToKLQlSWCByaW5nIG9ubHk6CWEgbWVz c2FnZSBpcyByZWFkeSB0byBiZSBwcm9jZXNzZWQgYnV0IGNvdWxkIG5vdCBiZQotCQkJc3RvcmVk IGluIHRoZSByaW5nLCBlaXRoZXIgYmVjYXVzZSBpdCBleGNlZWRlZCB0aGUKLQkJCWZyYW1lIHNp emUgb3IgYmVjYXVzZSB0aGUgb3JpZ2luYXRpbmcgc3Vic3lzdGVtIGRvZXMKLQkJCW5vdCBzdXBw b3J0IG1lbW9yeSBtYXBwZWQgSS9PLiBBcHByb3ByaWF0ZSBhY3Rpb24gaXMKLQkJCXRvIGludm9r ZSByZWN2bXNnKCkgdG8gcmVjZWl2ZSB0aGUgbWVzc2FnZSBhbmQgcmVsZWFzZQotCQkJdGhlIGZy YW1lIGJhY2sgdG8gdGhlIGtlcm5lbCBieSBzZXR0aW5nIHRoZSBzdGF0dXMgdG8KLQkJCU5MX01N QVBfU1RBVFVTX1VOVVNFRC4KLQotLSBOTF9NTUFQX1NUQVRVU19TS0lQOgotCVJYIHJpbmcgb25s eToJdXNlci1zcGFjZSBxdWV1ZWQgdGhlIG1lc3NhZ2UgZm9yIGxhdGVyIHByb2Nlc3NpbmcsIGJ1 dAotCQkJcHJvY2Vzc2VkIHNvbWUgbWVzc2FnZXMgZm9sbG93aW5nIGl0IGluIHRoZSByaW5nLiBU aGUKLQkJCWtlcm5lbCBzaG91bGQgc2tpcCB0aGlzIGZyYW1lIHdoZW4gbG9va2luZyBmb3IgdW51 c2VkCi0JCQlmcmFtZXMuCi0KLVRoZSBkYXRhIGFyZWEgb2YgYSBmcmFtZSBiZWdpbnMgYXQgYSBv ZmZzZXQgb2YgTkxfTU1BUF9IRFJMRU4gcmVsYXRpdmUgdG8gdGhlCi1mcmFtZSBoZWFkZXIuCi0K LVRYIGxpbWl0YXRpb25zCi0tLS0tLS0tLS0tLS0tLQotCi1LZXJuZWwgcHJvY2Vzc2luZyB1c3Vh bGx5IGludm9sdmVzIHZhbGlkYXRpb24gb2YgdGhlIG1lc3NhZ2UgcmVjZWl2ZWQgYnkKLXVzZXIt c3BhY2UsIHRoZW4gcHJvY2Vzc2luZyBpdHMgY29udGVudHMuIFRoZSBrZXJuZWwgbXVzdCBhc3N1 cmUgdGhhdAotdXNlcnNwYWNlIGlzIG5vdCBhYmxlIHRvIG1vZGlmeSB0aGUgbWVzc2FnZSBjb250 ZW50cyBhZnRlciB0aGV5IGhhdmUgYmVlbgotdmFsaWRhdGVkLiBJbiBvcmRlciB0byBkbyBzbywg dGhlIG1lc3NhZ2UgaXMgY29waWVkIGZyb20gdGhlIHJpbmcgZnJhbWUKLXRvIGFuIGFsbG9jYXRl ZCBidWZmZXIgaWYgZWl0aGVyIG9mIHRoZXNlIGNvbmRpdGlvbnMgaXMgZmFsc2U6Ci0KLS0gb25s eSBhIHNpbmdsZSBtYXBwaW5nIG9mIHRoZSByaW5nIGV4aXN0cwotLSB0aGUgZmlsZSBkZXNjcmlw dG9yIGlzIG5vdCBzaGFyZWQgYmV0d2VlbiBwcm9jZXNzZXMKLQotVGhpcyBtZWFucyB0aGF0IGZv ciB0aHJlYWRlZCBwcm9ncmFtcywgdGhlIGtlcm5lbCB3aWxsIGZhbGwgYmFjayB0byBjb3B5aW5n LgotCi1FeGFtcGxlCi0tLS0tLS0tCi0KLVJpbmcgc2V0dXA6Ci0KLQl1bnNpZ25lZCBpbnQgYmxv Y2tfc2l6ZSA9IDE2ICogZ2V0cGFnZXNpemUoKTsKLQlzdHJ1Y3QgbmxfbW1hcF9yZXEgcmVxID0g ewotCQkubm1fYmxvY2tfc2l6ZQkJPSBibG9ja19zaXplLAotCQkubm1fYmxvY2tfbnIJCT0gNjQs Ci0JCS5ubV9mcmFtZV9zaXplCQk9IDE2Mzg0LAotCQkubm1fZnJhbWVfbnIJCT0gNjQgKiBibG9j a19zaXplIC8gMTYzODQsCi0JfTsKLQl1bnNpZ25lZCBpbnQgcmluZ19zaXplOwotCXZvaWQgKnJ4 X3JpbmcsICp0eF9yaW5nOwotCi0JLyogQ29uZmlndXJlIHJpbmcgcGFyYW1ldGVycyAqLwotCWlm IChzZXRzb2Nrb3B0KGZkLCBTT0xfTkVUTElOSywgTkVUTElOS19SWF9SSU5HLCAmcmVxLCBzaXpl b2YocmVxKSkgPCAwKQotCQlleGl0KDEpOwotCWlmIChzZXRzb2Nrb3B0KGZkLCBTT0xfTkVUTElO SywgTkVUTElOS19UWF9SSU5HLCAmcmVxLCBzaXplb2YocmVxKSkgPCAwKQotCQlleGl0KDEpCi0K LQkvKiBDYWxjdWxhdGUgc2l6ZSBvZiBlYWNoIGluZGl2aWR1YWwgcmluZyAqLwotCXJpbmdfc2l6 ZSA9IHJlcS5ubV9ibG9ja19uciAqIHJlcS5ubV9ibG9ja19zaXplOwotCi0JLyogTWFwIFJYL1RY IHJpbmdzLiBUaGUgVFggcmluZyBpcyBsb2NhdGVkIGFmdGVyIHRoZSBSWCByaW5nICovCi0Jcnhf cmluZyA9IG1tYXAoTlVMTCwgMiAqIHJpbmdfc2l6ZSwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwK LQkJICAgICAgIE1BUF9TSEFSRUQsIGZkLCAwKTsKLQlpZiAoKGxvbmcpcnhfcmluZyA9PSAtMUwp Ci0JCWV4aXQoMSk7Ci0JdHhfcmluZyA9IHJ4X3JpbmcgKyByaW5nX3NpemU6Ci0KLU1lc3NhZ2Ug cmVjZXB0aW9uOgotCi1UaGlzIGV4YW1wbGUgYXNzdW1lcyBzb21lIHJpbmcgcGFyYW1ldGVycyBv ZiB0aGUgcmluZyBzZXR1cCBhcmUgYXZhaWxhYmxlLgotCi0JdW5zaWduZWQgaW50IGZyYW1lX29m ZnNldCA9IDA7Ci0Jc3RydWN0IG5sX21tYXBfaGRyICpoZHI7Ci0Jc3RydWN0IG5sbXNnaGRyICpu bGg7Ci0JdW5zaWduZWQgY2hhciBidWZbMTYzODRdOwotCXNzaXplX3QgbGVuOwotCi0Jd2hpbGUg KDEpIHsKLQkJc3RydWN0IHBvbGxmZCBwZmRzWzFdOwotCi0JCXBmZHNbMF0uZmQJPSBmZDsKLQkJ cGZkc1swXS5ldmVudHMJPSBQT0xMSU4gfCBQT0xMRVJSOwotCQlwZmRzWzBdLnJldmVudHMJPSAw OwotCi0JCWlmIChwb2xsKHBmZHMsIDEsIC0xKSA8IDAgJiYgZXJybm8gIT0gLUVJTlRSKQotCQkJ ZXhpdCgxKTsKLQotCQkvKiBDaGVjayBmb3IgZXJyb3JzLiBFcnJvciBoYW5kbGluZyBvbWl0dGVk ICovCi0JCWlmIChwZmRzWzBdLnJldmVudHMgJiBQT0xMRVJSKQotCQkJPGhhbmRsZSBlcnJvcj4K LQotCQkvKiBJZiBubyBuZXcgbWVzc2FnZXMsIHBvbGwgYWdhaW4gKi8KLQkJaWYgKCEocGZkc1sw XS5yZXZlbnRzICYgUE9MTElOKSkKLQkJCWNvbnRpbnVlOwotCi0JCS8qIFByb2Nlc3MgYWxsIGZy YW1lcyAqLwotCQl3aGlsZSAoMSkgewotCQkJLyogR2V0IG5leHQgZnJhbWUgaGVhZGVyICovCi0J CQloZHIgPSByeF9yaW5nICsgZnJhbWVfb2Zmc2V0OwotCi0JCQlpZiAoaGRyLT5ubV9zdGF0dXMg PT0gTkxfTU1BUF9TVEFUVVNfVkFMSUQpIHsKLQkJCQkvKiBSZWd1bGFyIG1lbW9yeSBtYXBwZWQg ZnJhbWUgKi8KLQkJCQlubGggPSAodm9pZCAqKWhkciArIE5MX01NQVBfSERSTEVOOwotCQkJCWxl biA9IGhkci0+bm1fbGVuOwotCi0JCQkJLyogUmVsZWFzZSBlbXB0eSBtZXNzYWdlIGltbWVkaWF0 ZWx5LiBNYXkgaGFwcGVuCi0JCQkJICogb24gZXJyb3IgZHVyaW5nIG1lc3NhZ2UgY29uc3RydWN0 aW9uLgotCQkJCSAqLwotCQkJCWlmIChsZW4gPT0gMCkKLQkJCQkJZ290byByZWxlYXNlOwotCQkJ fSBlbHNlIGlmIChoZHItPm5tX3N0YXR1cyA9PSBOTF9NTUFQX1NUQVRVU19DT1BZKSB7Ci0JCQkJ LyogRnJhbWUgcXVldWVkIHRvIHNvY2tldCByZWNlaXZlIHF1ZXVlICovCi0JCQkJbGVuID0gcmVj dihmZCwgYnVmLCBzaXplb2YoYnVmKSwgTVNHX0RPTlRXQUlUKTsKLQkJCQlpZiAobGVuIDw9IDAp Ci0JCQkJCWJyZWFrOwotCQkJCW5saCA9IGJ1ZjsKLQkJCX0gZWxzZQotCQkJCS8qIE5vIG1vcmUg bWVzc2FnZXMgdG8gcHJvY2VzcywgY29udGludWUgcG9sbGluZyAqLwotCQkJCWJyZWFrOwotCi0J CQlwcm9jZXNzX21zZyhubGgpOwotcmVsZWFzZToKLQkJCS8qIFJlbGVhc2UgZnJhbWUgYmFjayB0 byB0aGUga2VybmVsICovCi0JCQloZHItPm5tX3N0YXR1cyA9IE5MX01NQVBfU1RBVFVTX1VOVVNF RDsKLQotCQkJLyogQWR2YW5jZSBmcmFtZSBvZmZzZXQgdG8gbmV4dCBmcmFtZSAqLwotCQkJZnJh bWVfb2Zmc2V0ID0gKGZyYW1lX29mZnNldCArIGZyYW1lX3NpemUpICUgcmluZ19zaXplOwotCQl9 Ci0JfQotCi1NZXNzYWdlIHRyYW5zbWlzc2lvbjoKLQotVGhpcyBleGFtcGxlIGFzc3VtZXMgc29t ZSByaW5nIHBhcmFtZXRlcnMgb2YgdGhlIHJpbmcgc2V0dXAgYXJlIGF2YWlsYWJsZS4KLUEgc2lu Z2xlIG1lc3NhZ2UgaXMgY29uc3RydWN0ZWQgYW5kIHRyYW5zbWl0dGVkLCB0byBzZW5kIG11bHRp cGxlIG1lc3NhZ2VzCi1hdCBvbmNlIHRoZXkgd291bGQgYmUgY29uc3RydWN0ZWQgaW4gY29uc2Vj dXRpdmUgZnJhbWVzIGJlZm9yZSBhIGZpbmFsIGNhbGwKLXRvIHNlbmR0bygpLgotCi0JdW5zaWdu ZWQgaW50IGZyYW1lX29mZnNldCA9IDA7Ci0Jc3RydWN0IG5sX21tYXBfaGRyICpoZHI7Ci0Jc3Ry dWN0IG5sbXNnaGRyICpubGg7Ci0Jc3RydWN0IHNvY2thZGRyX25sIGFkZHIgPSB7Ci0JCS5ubF9m YW1pbHkJPSBBRl9ORVRMSU5LLAotCX07Ci0KLQloZHIgPSB0eF9yaW5nICsgZnJhbWVfb2Zmc2V0 OwotCWlmIChoZHItPm5tX3N0YXR1cyAhPSBOTF9NTUFQX1NUQVRVU19VTlVTRUQpCi0JCS8qIE5v IGZyYW1lIGF2YWlsYWJsZS4gVXNlIHBvbGwoKSB0byBhdm9pZC4gKi8KLQkJZXhpdCgxKTsKLQot CW5saCA9ICh2b2lkICopaGRyICsgTkxfTU1BUF9IRFJMRU47Ci0KLQkvKiBCdWlsZCBtZXNzYWdl ICovCi0JYnVpbGRfbWVzc2FnZShubGgpOwotCi0JLyogRmlsbCBmcmFtZSBoZWFkZXI6IGxlbmd0 aCBhbmQgc3RhdHVzIG5lZWQgdG8gYmUgc2V0ICovCi0JaGRyLT5ubV9sZW4JPSBubGgtPm5sbXNn X2xlbjsKLQloZHItPm5tX3N0YXR1cwk9IE5MX01NQVBfU1RBVFVTX1ZBTElEOwotCi0JaWYgKHNl bmR0byhmZCwgTlVMTCwgMCwgMCwgJmFkZHIsIHNpemVvZihhZGRyKSkgPCAwKQotCQlleGl0KDEp OwotCi0JLyogQWR2YW5jZSBmcmFtZSBvZmZzZXQgdG8gbmV4dCBmcmFtZSAqLwotCWZyYW1lX29m ZnNldCA9IChmcmFtZV9vZmZzZXQgKyBmcmFtZV9zaXplKSAlIHJpbmdfc2l6ZTsKZGlmZiAtLWdp dCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggOWRlYWFjOTI1NWZmLi5hZDVkYWU0YTMwOWUg MTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBiL01ha2VmaWxlCkBAIC0xLDcgKzEsNyBAQAogVkVS U0lPTiA9IDMKIFBBVENITEVWRUwgPSAxNgotU1VCTEVWRUwgPSA0MgotRVhUUkFWRVJTSU9OID0K K1NVQkxFVkVMID0gNDMKK0VYVFJBVkVSU0lPTiA9IC1yYzIKIE5BTUUgPSBNdXNldW0gb2YgRmlz aGllZ29vZGllcwogCiAjICpET0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL01h a2VmaWxlIGIvYXJjaC9taXBzL01ha2VmaWxlCmluZGV4IGE4NTIxZGUxNDc5MS4uZDk2NGRjZjA3 NjJiIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvTWFrZWZpbGUKKysrIGIvYXJjaC9taXBzL01ha2Vm aWxlCkBAIC05Myw2ICs5MywxNSBAQCBMREZMQUdTX3ZtbGludXgJCQkrPSAtRyAwIC1zdGF0aWMg LW4gLW5vc3RkbGliCiBLQlVJTERfQUZMQUdTX01PRFVMRQkJKz0gLW1sb25nLWNhbGxzCiBLQlVJ TERfQ0ZMQUdTX01PRFVMRQkJKz0gLW1sb25nLWNhbGxzCiAKKyMKKyMgcGFzcyAtbXNvZnQtZmxv YXQgdG8gR0FTIGlmIGl0IHN1cHBvcnRzIGl0LiAgSG93ZXZlciBvbiBuZXdlciBiaW51dGlscwor IyAoc3BlY2lmaWNhbGx5IG5ld2VyIHRoYW4gMi4yNC41MS4yMDE0MDcyOCkgd2UgdGhlbiBhbHNv IG5lZWQgdG8gZXhwbGljaXRseQorIyBzZXQgIi5zZXQgaGFyZGZsb2F0IiBpbiBhbGwgZmlsZXMg d2hpY2ggbWFuaXB1bGF0ZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCisjCitpZm5lcSAoJChj YWxsIGFzLW9wdGlvbiwtV2EkKGNvbW1hKS1tc29mdC1mbG9hdCwpLCkKKwljZmxhZ3MteQkJKz0g LURHQVNfSEFTX1NFVF9IQVJERkxPQVQgLVdhLC1tc29mdC1mbG9hdAorZW5kaWYKKwogY2ZsYWdz LXkgKz0gLWZmcmVlc3RhbmRpbmcKIAogIwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2luY2x1ZGUv YXNtL2FzbW1hY3JvLTMyLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vYXNtbWFjcm8tMzIuaApp bmRleCBlMzhjMjgxMWQ0ZTIuLmNkYWM3YjNlZWFmNyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2lu Y2x1ZGUvYXNtL2FzbW1hY3JvLTMyLmgKKysrIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL2FzbW1h Y3JvLTMyLmgKQEAgLTEzLDYgKzEzLDggQEAKICNpbmNsdWRlIDxhc20vbWlwc3JlZ3MuaD4KIAog CS5tYWNybwlmcHVfc2F2ZV9zaW5nbGUgdGhyZWFkIHRtcD10MAorCS5zZXQgcHVzaAorCVNFVF9I QVJERkxPQVQKIAljZmMxCVx0bXAsICBmY3IzMQogCXN3YzEJJGYwLCAgVEhSRUFEX0ZQUjBfTFM2 NChcdGhyZWFkKQogCXN3YzEJJGYxLCAgVEhSRUFEX0ZQUjFfTFM2NChcdGhyZWFkKQpAQCAtNDcs OSArNDksMTIgQEAKIAlzd2MxCSRmMzAsIFRIUkVBRF9GUFIzMF9MUzY0KFx0aHJlYWQpCiAJc3dj MQkkZjMxLCBUSFJFQURfRlBSMzFfTFM2NChcdGhyZWFkKQogCXN3CVx0bXAsIFRIUkVBRF9GQ1Iz MShcdGhyZWFkKQorCS5zZXQgcG9wCiAJLmVuZG0KIAogCS5tYWNybwlmcHVfcmVzdG9yZV9zaW5n bGUgdGhyZWFkIHRtcD10MAorCS5zZXQgcHVzaAorCVNFVF9IQVJERkxPQVQKIAlsdwlcdG1wLCBU SFJFQURfRkNSMzEoXHRocmVhZCkKIAlsd2MxCSRmMCwgIFRIUkVBRF9GUFIwX0xTNjQoXHRocmVh ZCkKIAlsd2MxCSRmMSwgIFRIUkVBRF9GUFIxX0xTNjQoXHRocmVhZCkKQEAgLTg0LDYgKzg5LDcg QEAKIAlsd2MxCSRmMzAsIFRIUkVBRF9GUFIzMF9MUzY0KFx0aHJlYWQpCiAJbHdjMQkkZjMxLCBU SFJFQURfRlBSMzFfTFM2NChcdGhyZWFkKQogCWN0YzEJXHRtcCwgZmNyMzEKKwkuc2V0IHBvcAog CS5lbmRtCiAKIAkubWFjcm8JY3B1X3NhdmVfbm9uc2NyYXRjaCB0aHJlYWQKZGlmZiAtLWdpdCBh L2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hc21tYWNyby5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNt L2FzbW1hY3JvLmgKaW5kZXggOWRiYzQ1NGFkMTRlLi41ZjdkNTI5ZGFlZjMgMTAwNjQ0Ci0tLSBh L2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9hc21tYWNyby5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRl L2FzbS9hc21tYWNyby5oCkBAIC0xMCw2ICsxMCw3IEBACiAKICNpbmNsdWRlIDxhc20vaGF6YXJk cy5oPgogI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgorI2luY2x1ZGUgPGFzbS9tc2EuaD4K IAogI2lmZGVmIENPTkZJR18zMkJJVAogI2luY2x1ZGUgPGFzbS9hc21tYWNyby0zMi5oPgpAQCAt NTYsNiArNTcsOCBAQAogI2VuZGlmIC8qIENPTkZJR19DUFVfTUlQU1IyICovCiAKIAkubWFjcm8J ZnB1X3NhdmVfMTZldmVuIHRocmVhZCB0bXA9dDAKKwkuc2V0CXB1c2gKKwlTRVRfSEFSREZMT0FU CiAJY2ZjMQlcdG1wLCBmY3IzMQogCXNkYzEJJGYwLCAgVEhSRUFEX0ZQUjBfTFM2NChcdGhyZWFk KQogCXNkYzEJJGYyLCAgVEhSRUFEX0ZQUjJfTFM2NChcdGhyZWFkKQpAQCAtNzQsMTEgKzc3LDEz IEBACiAJc2RjMQkkZjI4LCBUSFJFQURfRlBSMjhfTFM2NChcdGhyZWFkKQogCXNkYzEJJGYzMCwg VEhSRUFEX0ZQUjMwX0xTNjQoXHRocmVhZCkKIAlzdwlcdG1wLCBUSFJFQURfRkNSMzEoXHRocmVh ZCkKKwkuc2V0CXBvcAogCS5lbmRtCiAKIAkubWFjcm8JZnB1X3NhdmVfMTZvZGQgdGhyZWFkCiAJ LnNldAlwdXNoCiAJLnNldAltaXBzNjRyMgorCVNFVF9IQVJERkxPQVQKIAlzZGMxCSRmMSwgIFRI UkVBRF9GUFIxX0xTNjQoXHRocmVhZCkKIAlzZGMxCSRmMywgIFRIUkVBRF9GUFIzX0xTNjQoXHRo cmVhZCkKIAlzZGMxCSRmNSwgIFRIUkVBRF9GUFI1X0xTNjQoXHRocmVhZCkKQEAgLTEwOSw2ICsx MTQsOCBAQAogCS5lbmRtCiAKIAkubWFjcm8JZnB1X3Jlc3RvcmVfMTZldmVuIHRocmVhZCB0bXA9 dDAKKwkuc2V0CXB1c2gKKwlTRVRfSEFSREZMT0FUCiAJbHcJXHRtcCwgVEhSRUFEX0ZDUjMxKFx0 aHJlYWQpCiAJbGRjMQkkZjAsICBUSFJFQURfRlBSMF9MUzY0KFx0aHJlYWQpCiAJbGRjMQkkZjIs ICBUSFJFQURfRlBSMl9MUzY0KFx0aHJlYWQpCkBAIC0xMzIsNiArMTM5LDcgQEAKIAkubWFjcm8J ZnB1X3Jlc3RvcmVfMTZvZGQgdGhyZWFkCiAJLnNldAlwdXNoCiAJLnNldAltaXBzNjRyMgorCVNF VF9IQVJERkxPQVQKIAlsZGMxCSRmMSwgIFRIUkVBRF9GUFIxX0xTNjQoXHRocmVhZCkKIAlsZGMx CSRmMywgIFRIUkVBRF9GUFIzX0xTNjQoXHRocmVhZCkKIAlsZGMxCSRmNSwgIFRIUkVBRF9GUFI1 X0xTNjQoXHRocmVhZCkKQEAgLTIwMSw2ICsyMDksMjIgQEAKIAkuZW5kbQogCiAjaWZkZWYgVE9P TENIQUlOX1NVUFBPUlRTX01TQQorCS5tYWNybwlfY2ZjbXNhCXJkLCBjcworCS5zZXQJcHVzaAor CS5zZXQJbWlwczMycjIKKwkuc2V0CW1zYQorCWNmY21zYQlccmQsICRcY3MKKwkuc2V0CXBvcAor CS5lbmRtCisKKwkubWFjcm8JX2N0Y21zYQljZCwgcnMKKwkuc2V0CXB1c2gKKwkuc2V0CW1pcHMz MnIyCisJLnNldAltc2EKKwljdGNtc2EJJFxjZCwgXHJzCisJLnNldAlwb3AKKwkuZW5kbQorCiAJ Lm1hY3JvCWxkX2QJd2QsIG9mZiwgYmFzZQogCS5zZXQJcHVzaAogCS5zZXQJbWlwczMycjIKQEAg LTIxNywzNSArMjQxLDM1IEBACiAJLnNldAlwb3AKIAkuZW5kbQogCi0JLm1hY3JvCWNvcHlfdV93 CXJkLCB3cywgbgorCS5tYWNybwljb3B5X3Vfdwl3cywgbgogCS5zZXQJcHVzaAogCS5zZXQJbWlw czMycjIKIAkuc2V0CW1zYQotCWNvcHlfdS53IFxyZCwgJHdcd3NbXG5dCisJY29weV91LncgJDEs ICR3XHdzW1xuXQogCS5zZXQJcG9wCiAJLmVuZG0KIAotCS5tYWNybwljb3B5X3VfZAlyZCwgd3Ms IG4KKwkubWFjcm8JY29weV91X2QJd3MsIG4KIAkuc2V0CXB1c2gKIAkuc2V0CW1pcHM2NHIyCiAJ LnNldAltc2EKLQljb3B5X3UuZCBccmQsICR3XHdzW1xuXQorCWNvcHlfdS5kICQxLCAkd1x3c1tc bl0KIAkuc2V0CXBvcAogCS5lbmRtCiAKLQkubWFjcm8JaW5zZXJ0X3cJd2QsIG4sIHJzCisJLm1h Y3JvCWluc2VydF93CXdkLCBuCiAJLnNldAlwdXNoCiAJLnNldAltaXBzMzJyMgogCS5zZXQJbXNh Ci0JaW5zZXJ0LncgJHdcd2RbXG5dLCBccnMKKwlpbnNlcnQudyAkd1x3ZFtcbl0sICQxCiAJLnNl dAlwb3AKIAkuZW5kbQogCi0JLm1hY3JvCWluc2VydF9kCXdkLCBuLCBycworCS5tYWNybwlpbnNl cnRfZAl3ZCwgbgogCS5zZXQJcHVzaAogCS5zZXQJbWlwczY0cjIKIAkuc2V0CW1zYQotCWluc2Vy dC5kICR3XHdkW1xuXSwgXHJzCisJaW5zZXJ0LmQgJHdcd2RbXG5dLCAkMQogCS5zZXQJcG9wCiAJ LmVuZG0KICNlbHNlCkBAIC0yNzMsMTggKzI5NywyMCBAQAogCS8qCiAJICogVGVtcG9yYXJ5IHVu dGlsIGFsbCB0b29sY2hhaW5zIGluIHVzZSBpbmNsdWRlIE1TQSBzdXBwb3J0LgogCSAqLwotCS5t YWNybwljZmNtc2EJcmQsIGNzCisJLm1hY3JvCV9jZmNtc2EJcmQsIGNzCiAJLnNldAlwdXNoCiAJ LnNldAlub2F0CisJU0VUX0hBUkRGTE9BVAogCS5pbnNuCiAJLndvcmQJQ0ZDX01TQV9JTlNOIHwg KFxjcyA8PCAxMSkKIAltb3ZlCVxyZCwgJDEKIAkuc2V0CXBvcAogCS5lbmRtCiAKLQkubWFjcm8J Y3RjbXNhCWNkLCBycworCS5tYWNybwlfY3RjbXNhCWNkLCBycwogCS5zZXQJcHVzaAogCS5zZXQJ bm9hdAorCVNFVF9IQVJERkxPQVQKIAltb3ZlCSQxLCBccnMKIAkud29yZAlDVENfTVNBX0lOU04g fCAoXGNkIDw8IDYpCiAJLnNldAlwb3AKQEAgLTI5Myw2ICszMTksNyBAQAogCS5tYWNybwlsZF9k CXdkLCBvZmYsIGJhc2UKIAkuc2V0CXB1c2gKIAkuc2V0CW5vYXQKKwlTRVRfSEFSREZMT0FUCiAJ YWRkdQkkMSwgXGJhc2UsIFxvZmYKIAkud29yZAlMRERfTVNBX0lOU04gfCAoXHdkIDw8IDYpCiAJ LnNldAlwb3AKQEAgLTMwMSw0NSArMzI4LDQyIEBACiAJLm1hY3JvCXN0X2QJd2QsIG9mZiwgYmFz ZQogCS5zZXQJcHVzaAogCS5zZXQJbm9hdAorCVNFVF9IQVJERkxPQVQKIAlhZGR1CSQxLCBcYmFz ZSwgXG9mZgogCS53b3JkCVNURF9NU0FfSU5TTiB8IChcd2QgPDwgNikKIAkuc2V0CXBvcAogCS5l bmRtCiAKLQkubWFjcm8JY29weV91X3cJcmQsIHdzLCBuCisJLm1hY3JvCWNvcHlfdV93CXdzLCBu CiAJLnNldAlwdXNoCiAJLnNldAlub2F0CisJU0VUX0hBUkRGTE9BVAogCS5pbnNuCiAJLndvcmQJ Q09QWV9VV19NU0FfSU5TTiB8IChcbiA8PCAxNikgfCAoXHdzIDw8IDExKQotCS8qIG1vdmUgdHJp Z2dlcnMgYW4gYXNzZW1ibGVyIGJ1Zy4uLiAqLwotCW9yCVxyZCwgJDEsIHplcm8KIAkuc2V0CXBv cAogCS5lbmRtCiAKLQkubWFjcm8JY29weV91X2QJcmQsIHdzLCBuCisJLm1hY3JvCWNvcHlfdV9k CXdzLCBuCiAJLnNldAlwdXNoCiAJLnNldAlub2F0CisJU0VUX0hBUkRGTE9BVAogCS5pbnNuCiAJ LndvcmQJQ09QWV9VRF9NU0FfSU5TTiB8IChcbiA8PCAxNikgfCAoXHdzIDw8IDExKQotCS8qIG1v dmUgdHJpZ2dlcnMgYW4gYXNzZW1ibGVyIGJ1Zy4uLiAqLwotCW9yCVxyZCwgJDEsIHplcm8KIAku c2V0CXBvcAogCS5lbmRtCiAKLQkubWFjcm8JaW5zZXJ0X3cJd2QsIG4sIHJzCisJLm1hY3JvCWlu c2VydF93CXdkLCBuCiAJLnNldAlwdXNoCiAJLnNldAlub2F0Ci0JLyogbW92ZSB0cmlnZ2VycyBh biBhc3NlbWJsZXIgYnVnLi4uICovCi0Jb3IJJDEsIFxycywgemVybworCVNFVF9IQVJERkxPQVQK IAkud29yZAlJTlNFUlRfV19NU0FfSU5TTiB8IChcbiA8PCAxNikgfCAoXHdkIDw8IDYpCiAJLnNl dAlwb3AKIAkuZW5kbQogCi0JLm1hY3JvCWluc2VydF9kCXdkLCBuLCBycworCS5tYWNybwlpbnNl cnRfZAl3ZCwgbgogCS5zZXQJcHVzaAogCS5zZXQJbm9hdAotCS8qIG1vdmUgdHJpZ2dlcnMgYW4g YXNzZW1ibGVyIGJ1Zy4uLiAqLwotCW9yCSQxLCBccnMsIHplcm8KKwlTRVRfSEFSREZMT0FUCiAJ LndvcmQJSU5TRVJUX0RfTVNBX0lOU04gfCAoXG4gPDwgMTYpIHwgKFx3ZCA8PCA2KQogCS5zZXQJ cG9wCiAJLmVuZG0KQEAgLTM3OCw5ICs0MDIsMjEgQEAKIAlzdF9kCTI5LCBUSFJFQURfRlBSMjks IFx0aHJlYWQKIAlzdF9kCTMwLCBUSFJFQURfRlBSMzAsIFx0aHJlYWQKIAlzdF9kCTMxLCBUSFJF QURfRlBSMzEsIFx0aHJlYWQKKwkuc2V0CXB1c2gKKwkuc2V0CW5vYXQKKwlTRVRfSEFSREZMT0FU CisJX2NmY21zYQkkMSwgTVNBX0NTUgorCXN3CSQxLCBUSFJFQURfTVNBX0NTUihcdGhyZWFkKQor CS5zZXQJcG9wCiAJLmVuZG0KIAogCS5tYWNybwltc2FfcmVzdG9yZV9hbGwJdGhyZWFkCisJLnNl dAlwdXNoCisJLnNldAlub2F0CisJU0VUX0hBUkRGTE9BVAorCWx3CSQxLCBUSFJFQURfTVNBX0NT UihcdGhyZWFkKQorCV9jdGNtc2EJTVNBX0NTUiwgJDEKKwkuc2V0CXBvcAogCWxkX2QJMCwgVEhS RUFEX0ZQUjAsIFx0aHJlYWQKIAlsZF9kCTEsIFRIUkVBRF9GUFIxLCBcdGhyZWFkCiAJbGRfZAky LCBUSFJFQURfRlBSMiwgXHRocmVhZApAQCAtNDE1LDQgKzQ1MSw1MyBAQAogCWxkX2QJMzEsIFRI UkVBRF9GUFIzMSwgXHRocmVhZAogCS5lbmRtCiAKKwkubWFjcm8JbXNhX2luaXRfdXBwZXIgd2QK KyNpZmRlZiBDT05GSUdfNjRCSVQKKwlpbnNlcnRfZCBcd2QsIDEKKyNlbHNlCisJaW5zZXJ0X3cg XHdkLCAyCisJaW5zZXJ0X3cgXHdkLCAzCisjZW5kaWYKKwkuZW5kbQorCisJLm1hY3JvCW1zYV9p bml0X2FsbF91cHBlcgorCS5zZXQJcHVzaAorCS5zZXQJbm9hdAorCVNFVF9IQVJERkxPQVQKKwlu b3QJJDEsIHplcm8KKwltc2FfaW5pdF91cHBlcgkwCisJbXNhX2luaXRfdXBwZXIJMQorCW1zYV9p bml0X3VwcGVyCTIKKwltc2FfaW5pdF91cHBlcgkzCisJbXNhX2luaXRfdXBwZXIJNAorCW1zYV9p bml0X3VwcGVyCTUKKwltc2FfaW5pdF91cHBlcgk2CisJbXNhX2luaXRfdXBwZXIJNworCW1zYV9p bml0X3VwcGVyCTgKKwltc2FfaW5pdF91cHBlcgk5CisJbXNhX2luaXRfdXBwZXIJMTAKKwltc2Ff aW5pdF91cHBlcgkxMQorCW1zYV9pbml0X3VwcGVyCTEyCisJbXNhX2luaXRfdXBwZXIJMTMKKwlt c2FfaW5pdF91cHBlcgkxNAorCW1zYV9pbml0X3VwcGVyCTE1CisJbXNhX2luaXRfdXBwZXIJMTYK Kwltc2FfaW5pdF91cHBlcgkxNworCW1zYV9pbml0X3VwcGVyCTE4CisJbXNhX2luaXRfdXBwZXIJ MTkKKwltc2FfaW5pdF91cHBlcgkyMAorCW1zYV9pbml0X3VwcGVyCTIxCisJbXNhX2luaXRfdXBw ZXIJMjIKKwltc2FfaW5pdF91cHBlcgkyMworCW1zYV9pbml0X3VwcGVyCTI0CisJbXNhX2luaXRf dXBwZXIJMjUKKwltc2FfaW5pdF91cHBlcgkyNgorCW1zYV9pbml0X3VwcGVyCTI3CisJbXNhX2lu aXRfdXBwZXIJMjgKKwltc2FfaW5pdF91cHBlcgkyOQorCW1zYV9pbml0X3VwcGVyCTMwCisJbXNh X2luaXRfdXBwZXIJMzEKKwkuc2V0CXBvcAorCS5lbmRtCisKICNlbmRpZiAvKiBfQVNNX0FTTU1B Q1JPX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9mcHJlZ2RlZi5oIGIv YXJjaC9taXBzL2luY2x1ZGUvYXNtL2ZwcmVnZGVmLmgKaW5kZXggNDI5NDgxZjkwMjhkLi5mMTg0 YmEwODg1MzIgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9mcHJlZ2RlZi5oCisr KyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9mcHJlZ2RlZi5oCkBAIC0xNCw2ICsxNCwyMCBAQAog CiAjaW5jbHVkZSA8YXNtL3NnaWRlZnMuaD4KIAorLyoKKyAqIHN0YXJ0aW5nIHdpdGggYmludXRp bHMgMi4yNC41MS4yMDE0MDcyOSwgTUlQUyBiaW51dGlscyB3YXJuIGFib3V0IG1peGluZworICog aGFyZGZsb2F0IGFuZCBzb2Z0ZmxvYXQgb2JqZWN0IGZpbGVzLiAgVGhlIGtlcm5lbCBidWlsZCB1 c2VzIHNvZnQtZmxvYXQgYnkKKyAqIGRlZmF1bHQsIHNvIHdlIGFsc28gbmVlZCB0byBwYXNzIC1t c29mdC1mbG9hdCBhbG9uZyB0byBHQVMgaWYgaXQgc3VwcG9ydHMgaXQuCisgKiBCdXQgdGhpcyBp biB0dXJuIGNhdXNlcyBhc3NlbWJsZXIgZXJyb3JzIGluIGZpbGVzIHdoaWNoIGFjY2VzcyBoYXJk ZmxvYXQKKyAqIHJlZ2lzdGVycy4gIFdlIGRldGVjdCBpZiBHQVMgc3VwcG9ydHMgIi1tc29mdC1m bG9hdCIgaW4gdGhlIE1ha2VmaWxlIGFuZAorICogZXhwbGljaXRseSBwdXQgIi5zZXQgaGFyZGZs b2F0IiB3aGVyZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgYXJlIHRvdWNoZWQuCisgKi8KKyNp ZmRlZiBHQVNfSEFTX1NFVF9IQVJERkxPQVQKKyNkZWZpbmUgU0VUX0hBUkRGTE9BVCAuc2V0IGhh cmRmbG9hdAorI2Vsc2UKKyNkZWZpbmUgU0VUX0hBUkRGTE9BVAorI2VuZGlmCisKICNpZiBfTUlQ U19TSU0gPT0gX01JUFNfU0lNX0FCSTMyCiAKIC8qCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5j bHVkZS9hc20vZnB1LmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vZnB1LmgKaW5kZXggYTkzOTU3 NGY4MjkzLi45MjU2NDY3YjJhNmMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9m cHUuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vZnB1LmgKQEAgLTIxLDYgKzIxLDcgQEAK ICNpbmNsdWRlIDxhc20vaGF6YXJkcy5oPgogI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3IuaD4KICNp bmNsdWRlIDxhc20vY3VycmVudC5oPgorI2luY2x1ZGUgPGFzbS9tc2EuaD4KIAogI2lmZGVmIENP TkZJR19NSVBTX01UX0ZQQUZGCiAjaW5jbHVkZSA8YXNtL21pcHNfbXQuaD4KQEAgLTE0MSwxMyAr MTQyLDIxIEBAIHN0YXRpYyBpbmxpbmUgaW50IG93bl9mcHUoaW50IHJlc3RvcmUpCiBzdGF0aWMg aW5saW5lIHZvaWQgbG9zZV9mcHUoaW50IHNhdmUpCiB7CiAJcHJlZW1wdF9kaXNhYmxlKCk7Ci0J aWYgKGlzX2ZwdV9vd25lcigpKSB7CisJaWYgKGlzX21zYV9lbmFibGVkKCkpIHsKKwkJaWYgKHNh dmUpIHsKKwkJCXNhdmVfbXNhKGN1cnJlbnQpOworCQkJY3VycmVudC0+dGhyZWFkLmZwdS5mY3Iz MSA9CisJCQkJCXJlYWRfMzJiaXRfY3AxX3JlZ2lzdGVyKENQMV9TVEFUVVMpOworCQl9CisJCWRp c2FibGVfbXNhKCk7CisJCWNsZWFyX3RocmVhZF9mbGFnKFRJRl9VU0VETVNBKTsKKwl9IGVsc2Ug aWYgKGlzX2ZwdV9vd25lcigpKSB7CiAJCWlmIChzYXZlKQogCQkJX3NhdmVfZnAoY3VycmVudCk7 Ci0JCUtTVEtfU1RBVFVTKGN1cnJlbnQpICY9IH5TVDBfQ1UxOwotCQljbGVhcl90aHJlYWRfZmxh ZyhUSUZfVVNFREZQVSk7CiAJCV9fZGlzYWJsZV9mcHUoKTsKIAl9CisJS1NUS19TVEFUVVMoY3Vy cmVudCkgJj0gflNUMF9DVTE7CisJY2xlYXJfdGhyZWFkX2ZsYWcoVElGX1VTRURGUFUpOwogCXBy ZWVtcHRfZW5hYmxlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9t aXBzcmVncy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL21pcHNyZWdzLmgKaW5kZXggNmFkMDIw OGI1MGZiLi5lMjM3N2M3NzY1YTYgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9t aXBzcmVncy5oCisrKyBiL2FyY2gvbWlwcy9pbmNsdWRlL2FzbS9taXBzcmVncy5oCkBAIC0xMjcw LDcgKzEyNzAsNyBAQCBkbyB7CQkJCQkJCQkJXAogLyoKICAqIE1hY3JvcyB0byBhY2Nlc3MgdGhl IGZsb2F0aW5nIHBvaW50IGNvcHJvY2Vzc29yIGNvbnRyb2wgcmVnaXN0ZXJzCiAgKi8KLSNkZWZp bmUgcmVhZF8zMmJpdF9jcDFfcmVnaXN0ZXIoc291cmNlKQkJCQkJXAorI2RlZmluZSBfcmVhZF8z MmJpdF9jcDFfcmVnaXN0ZXIoc291cmNlLCBnYXNfaGFyZGZsb2F0KQkJCVwKICh7CQkJCQkJCQkJ XAogCWludCBfX3JlczsJCQkJCQkJXAogCQkJCQkJCQkJXApAQCAtMTI4MCwxMiArMTI4MCwyMSBA QCBkbyB7CQkJCQkJCQkJXAogCSIJIyBnYXMgZmFpbHMgdG8gYXNzZW1ibGUgY2ZjMSBmb3Igc29t ZSBhcmNocywJXG4iCVwKIAkiCSMgbGlrZSBPY3Rlb24uCQkJCQlcbiIJXAogCSIJLnNldAltaXBz MQkJCQkJXG4iCVwKKwkiCSJTVFIoZ2FzX2hhcmRmbG9hdCkiCQkJCVxuIglcCiAJIgljZmMxCSUw LCJTVFIoc291cmNlKSIJCQlcbiIJXAogCSIJLnNldAlwb3AJCQkJCVxuIglcCiAJOiAiPXIiIChf X3JlcykpOwkJCQkJCVwKIAlfX3JlczsJCQkJCQkJCVwKIH0pCiAKKyNpZmRlZiBHQVNfSEFTX1NF VF9IQVJERkxPQVQKKyNkZWZpbmUgcmVhZF8zMmJpdF9jcDFfcmVnaXN0ZXIoc291cmNlKQkJCQkJ XAorCV9yZWFkXzMyYml0X2NwMV9yZWdpc3Rlcihzb3VyY2UsIC5zZXQgaGFyZGZsb2F0KQorI2Vs c2UKKyNkZWZpbmUgcmVhZF8zMmJpdF9jcDFfcmVnaXN0ZXIoc291cmNlKQkJCQkJXAorCV9yZWFk XzMyYml0X2NwMV9yZWdpc3Rlcihzb3VyY2UsICkKKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9BU19E U1AKICNkZWZpbmUgcmRkc3AobWFzaykJCQkJCQkJXAogKHsJCQkJCQkJCQlcCmRpZmYgLS1naXQg YS9hcmNoL21pcHMvaW5jbHVkZS9hc20vbXNhLmggYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbXNh LmgKaW5kZXggZDIyMjcyODUzODNmLi5hZjU2MzhiMTJjNzUgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlw cy9pbmNsdWRlL2FzbS9tc2EuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vbXNhLmgKQEAg LTEyLDggKzEyLDExIEBACiAKICNpbmNsdWRlIDxhc20vbWlwc3JlZ3MuaD4KIAorI2lmbmRlZiBf X0FTU0VNQkxZX18KKwogZXh0ZXJuIHZvaWQgX3NhdmVfbXNhKHN0cnVjdCB0YXNrX3N0cnVjdCAq KTsKIGV4dGVybiB2b2lkIF9yZXN0b3JlX21zYShzdHJ1Y3QgdGFza19zdHJ1Y3QgKik7CitleHRl cm4gdm9pZCBfaW5pdF9tc2FfdXBwZXIodm9pZCk7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBlbmFi bGVfbXNhKHZvaWQpCiB7CkBAIC0xMzMsMTUgKzEzNiw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB3 cml0ZV9tc2FfIyNuYW1lKHVuc2lnbmVkIGludCB2YWwpCQlcCiAKICNlbmRpZiAvKiAhVE9PTENI QUlOX1NVUFBPUlRTX01TQSAqLwogCi0jZGVmaW5lIE1TQV9JUgkJMAotI2RlZmluZSBNU0FfQ1NS CQkxCi0jZGVmaW5lIE1TQV9BQ0NFU1MJMgotI2RlZmluZSBNU0FfU0FWRQkzCi0jZGVmaW5lIE1T QV9NT0RJRlkJNAotI2RlZmluZSBNU0FfUkVRVUVTVAk1Ci0jZGVmaW5lIE1TQV9NQVAJCTYKLSNk ZWZpbmUgTVNBX1VOTUFQCTcKLQogX19CVUlMRF9NU0FfQ1RMX1JFRyhpciwgMCkKIF9fQlVJTERf TVNBX0NUTF9SRUcoY3NyLCAxKQogX19CVUlMRF9NU0FfQ1RMX1JFRyhhY2Nlc3MsIDIpCkBAIC0x NTEsNiArMTQ1LDE3IEBAIF9fQlVJTERfTVNBX0NUTF9SRUcocmVxdWVzdCwgNSkKIF9fQlVJTERf TVNBX0NUTF9SRUcobWFwLCA2KQogX19CVUlMRF9NU0FfQ1RMX1JFRyh1bm1hcCwgNykKIAorI2Vu ZGlmIC8qICFfX0FTU0VNQkxZX18gKi8KKworI2RlZmluZSBNU0FfSVIJCTAKKyNkZWZpbmUgTVNB X0NTUgkJMQorI2RlZmluZSBNU0FfQUNDRVNTCTIKKyNkZWZpbmUgTVNBX1NBVkUJMworI2RlZmlu ZSBNU0FfTU9ESUZZCTQKKyNkZWZpbmUgTVNBX1JFUVVFU1QJNQorI2RlZmluZSBNU0FfTUFQCQk2 CisjZGVmaW5lIE1TQV9VTk1BUAk3CisKIC8qIE1TQSBJbXBsZW1lbnRhdGlvbiBSZWdpc3RlciAo TVNBSVIpICovCiAjZGVmaW5lIE1TQV9JUl9SRVZCCQkwCiAjZGVmaW5lIE1TQV9JUl9SRVZGCQko X1VMQ0FTVF8oMHhmZikgPDwgTVNBX0lSX1JFVkIpCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvaW5j bHVkZS9hc20vdWFjY2Vzcy5oIGIvYXJjaC9taXBzL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaAppbmRl eCBjYjRhM2VlMzE5ODMuLmE3NTJkZTk3ODQwZiAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2luY2x1 ZGUvYXNtL3VhY2Nlc3MuaAorKysgYi9hcmNoL21pcHMvaW5jbHVkZS9hc20vdWFjY2Vzcy5oCkBA IC0zMDIsNyArMzAyLDggQEAgZG8gewkJCQkJCQkJCVwKIAkJCV9fZ2V0X2tlcm5lbF9jb21tb24o KHgpLCBzaXplLCBfX2d1X3B0cik7CVwKIAkJZWxzZQkJCQkJCQlcCiAJCQlfX2dldF91c2VyX2Nv bW1vbigoeCksIHNpemUsIF9fZ3VfcHRyKTsJCVwKLQl9CQkJCQkJCQlcCisJfSBlbHNlCQkJCQkJ CQlcCisJCSh4KSA9IDA7CQkJCQkJXAogCQkJCQkJCQkJXAogCV9fZ3VfZXJyOwkJCQkJCQlcCiB9 KQpAQCAtMzE3LDYgKzMxOCw3IEBAIGRvIHsJCQkJCQkJCQlcCiAJIgkuaW5zbgkJCQkJCVxuIglc CiAJIgkuc2VjdGlvbiAuZml4dXAsXCJheFwiCQkJCVxuIglcCiAJIjM6CWxpCSUwLCAlNAkJCQkJ XG4iCVwKKwkiCW1vdmUJJTEsICQwCQkJCQlcbiIJXAogCSIJagkyYgkJCQkJXG4iCVwKIAkiCS5w cmV2aW91cwkJCQkJXG4iCVwKIAkiCS5zZWN0aW9uIF9fZXhfdGFibGUsXCJhXCIJCQlcbiIJXApA QCAtNjMxLDYgKzYzMyw3IEBAIGRvIHsJCQkJCQkJCQlcCiAJIgkuaW5zbgkJCQkJCVxuIglcCiAJ Igkuc2VjdGlvbiAuZml4dXAsXCJheFwiCQkJCVxuIglcCiAJIjM6CWxpCSUwLCAlNAkJCQkJXG4i CVwKKwkiCW1vdmUJJTEsICQwCQkJCQlcbiIJXAogCSIJagkyYgkJCQkJXG4iCVwKIAkiCS5wcmV2 aW91cwkJCQkJXG4iCVwKIAkiCS5zZWN0aW9uIF9fZXhfdGFibGUsXCJhXCIJCQlcbiIJXApkaWZm IC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJjaC9taXBzL2tlcm5l bC9hc20tb2Zmc2V0cy5jCmluZGV4IDRiYjUxMDc1MTFlMi4uYjFkODRiZDRlZmIzIDEwMDY0NAot LS0gYS9hcmNoL21pcHMva2VybmVsL2FzbS1vZmZzZXRzLmMKKysrIGIvYXJjaC9taXBzL2tlcm5l bC9hc20tb2Zmc2V0cy5jCkBAIC0yMzQsNiArMjM0LDcgQEAgdm9pZCBvdXRwdXRfdGhyZWFkX2Zw dV9kZWZpbmVzKHZvaWQpCiAJICAgICAgIHRocmVhZC5mcHUuZnByWzMxXS52YWw2NFtGUFJfSURY KDY0LCAwKV0pOwogCiAJT0ZGU0VUKFRIUkVBRF9GQ1IzMSwgdGFza19zdHJ1Y3QsIHRocmVhZC5m cHUuZmNyMzEpOworCU9GRlNFVChUSFJFQURfTVNBX0NTUiwgdGFza19zdHJ1Y3QsIHRocmVhZC5m cHUubXNhY3NyKTsKIAlCTEFOSygpOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVs L2JyYW5jaC5jIGIvYXJjaC9taXBzL2tlcm5lbC9icmFuY2guYwppbmRleCA3YjJkZjIyNGYwNDEu LjRkN2Q5OWQ2MDFjYyAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9icmFuY2guYworKysg Yi9hcmNoL21pcHMva2VybmVsL2JyYW5jaC5jCkBAIC0xNDQsNyArMTQ0LDcgQEAgaW50IF9fbW1f aXNCcmFuY2hJbnN0cihzdHJ1Y3QgcHRfcmVncyAqcmVncywgc3RydWN0IG1tX2RlY29kZWRfaW5z biBkZWNfaW5zbiwKIAkJY2FzZSBtbV9iYzF0X29wOgogCQkJcHJlZW1wdF9kaXNhYmxlKCk7CiAJ CQlpZiAoaXNfZnB1X293bmVyKCkpCi0JCQkJYXNtIHZvbGF0aWxlKCJjZmMxXHQlMCwkMzEiIDog Ij1yIiAoZmNyMzEpKTsKKwkJCSAgICAgICAgZmNyMzEgPSByZWFkXzMyYml0X2NwMV9yZWdpc3Rl cihDUDFfU1RBVFVTKTsKIAkJCWVsc2UKIAkJCQlmY3IzMSA9IGN1cnJlbnQtPnRocmVhZC5mcHUu ZmNyMzE7CiAJCQlwcmVlbXB0X2VuYWJsZSgpOwpAQCAtNTYyLDExICs1NjIsNyBAQCBpbnQgX19j b21wdXRlX3JldHVybl9lcGNfZm9yX2luc24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MsCiAJY2FzZSBj b3AxX29wOgogCQlwcmVlbXB0X2Rpc2FibGUoKTsKIAkJaWYgKGlzX2ZwdV9vd25lcigpKQotCQkJ YXNtIHZvbGF0aWxlKAotCQkJCSIuc2V0IHB1c2hcbiIKLQkJCQkiXHQuc2V0IG1pcHMxXG4iCi0J CQkJIlx0Y2ZjMVx0JTAsJDMxXG4iCi0JCQkJIlx0LnNldCBwb3AiIDogIj1yIiAoZmNyMzEpKTsK KwkJICAgICAgICBmY3IzMSA9IHJlYWRfMzJiaXRfY3AxX3JlZ2lzdGVyKENQMV9TVEFUVVMpOwog CQllbHNlCiAJCQlmY3IzMSA9IGN1cnJlbnQtPnRocmVhZC5mcHUuZmNyMzE7CiAJCXByZWVtcHRf ZW5hYmxlKCk7CmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL2dlbmV4LlMgYi9hcmNoL21p cHMva2VybmVsL2dlbmV4LlMKaW5kZXggYWMzNWUxMmNiMWYzLi5hNWUyNmRkOTA1OTIgMTAwNjQ0 Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvZ2VuZXguUworKysgYi9hcmNoL21pcHMva2VybmVsL2dl bmV4LlMKQEAgLTM1OCw2ICszNTgsNyBAQCBORVNURUQobm1pX2hhbmRsZXIsIFBUX1NJWkUsIHNw KQogCS5zZXQJcHVzaAogCS8qIGdhcyBmYWlscyB0byBhc3NlbWJsZSBjZmMxIGZvciBzb21lIGFy Y2hzIChvY3Rlb24pLiovIFwKIAkuc2V0CW1pcHMxCisJU0VUX0hBUkRGTE9BVAogCWNmYzEJYTEs IGZjcjMxCiAJbGkJYTIsIH4oMHgzZiA8PCAxMikKIAlhbmQJYTIsIGExCmRpZmYgLS1naXQgYS9h cmNoL21pcHMva2VybmVsL3IyMzAwX2ZwdS5TIGIvYXJjaC9taXBzL2tlcm5lbC9yMjMwMF9mcHUu UwppbmRleCBmMzEwNjNkYmRhZWIuLjVjZTNiNzQ2Y2VkYyAxMDA2NDQKLS0tIGEvYXJjaC9taXBz L2tlcm5lbC9yMjMwMF9mcHUuUworKysgYi9hcmNoL21pcHMva2VybmVsL3IyMzAwX2ZwdS5TCkBA IC0yOCw2ICsyOCw4IEBACiAJLnNldAltaXBzMQogCS8qIFNhdmUgZmxvYXRpbmcgcG9pbnQgY29u dGV4dCAqLwogTEVBRihfc2F2ZV9mcF9jb250ZXh0KQorCS5zZXQJcHVzaAorCVNFVF9IQVJERkxP QVQKIAlsaQl2MCwgMAkJCQkJIyBhc3N1bWUgc3VjY2VzcwogCWNmYzEJdDEsZmNyMzEKIAlFWChz d2MxICRmMCwoU0NfRlBSRUdTKzApKGEwKSkKQEAgLTY1LDYgKzY3LDcgQEAgTEVBRihfc2F2ZV9m cF9jb250ZXh0KQogCUVYKHN3CXQxLChTQ19GUENfQ1NSKShhMCkpCiAJY2ZjMQl0MCwkMAkJCQkj IGltcGxlbWVudGF0aW9uL3ZlcnNpb24KIAlqcglyYQorCS5zZXQJcG9wCiAJLnNldAlub21hY3Jv CiAJIEVYKHN3CXQwLChTQ19GUENfRUlSKShhMCkpCiAJLnNldAltYWNybwpAQCAtODAsNiArODMs OCBAQCBMRUFGKF9zYXZlX2ZwX2NvbnRleHQpCiAgKiBzdGFjayBmcmFtZSB3aGljaCBtaWdodCBo YXZlIGJlZW4gY2hhbmdlZCBieSB0aGUgdXNlci4KICAqLwogTEVBRihfcmVzdG9yZV9mcF9jb250 ZXh0KQorCS5zZXQJcHVzaAorCVNFVF9IQVJERkxPQVQKIAlsaQl2MCwgMAkJCQkJIyBhc3N1bWUg c3VjY2VzcwogCUVYKGx3IHQwLChTQ19GUENfQ1NSKShhMCkpCiAJRVgobHdjMSAkZjAsKFNDX0ZQ UkVHUyswKShhMCkpCkBAIC0xMTYsNiArMTIxLDcgQEAgTEVBRihfcmVzdG9yZV9mcF9jb250ZXh0 KQogCUVYKGx3YzEgJGYzMSwoU0NfRlBSRUdTKzI0OCkoYTApKQogCWpyCXJhCiAJIGN0YzEJdDAs ZmNyMzEKKwkuc2V0CXBvcAogCUVORChfcmVzdG9yZV9mcF9jb250ZXh0KQogCS5zZXQJcmVvcmRl cgogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVsL3IyMzAwX3N3aXRjaC5TIGIvYXJjaC9t aXBzL2tlcm5lbC9yMjMwMF9zd2l0Y2guUwppbmRleCAyMGI3YjA0MGU3NmYuLjQzNWVhNjUyZjVm YSAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5lbC9yMjMwMF9zd2l0Y2guUworKysgYi9hcmNo L21pcHMva2VybmVsL3IyMzAwX3N3aXRjaC5TCkBAIC0xMjAsNiArMTIwLDkgQEAgTEVBRihfcmVz dG9yZV9mcCkKIAogI2RlZmluZSBGUFVfREVGQVVMVCAgMHgwMDAwMDAwMAogCisJLnNldCBwdXNo CisJU0VUX0hBUkRGTE9BVAorCiBMRUFGKF9pbml0X2ZwdSkKIAltZmMwCXQwLCBDUDBfU1RBVFVT CiAJbGkJdDEsIFNUMF9DVTEKQEAgLTE2NSwzICsxNjgsNSBAQCBMRUFGKF9pbml0X2ZwdSkKIAlt dGMxCXQwLCAkZjMxCiAJanIJcmEKIAlFTkQoX2luaXRfZnB1KQorCisJLnNldCBwb3AKZGlmZiAt LWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwvcjRrX2ZwdS5TIGIvYXJjaC9taXBzL2tlcm5lbC9yNGtf ZnB1LlMKaW5kZXggODM1MjUyMzU2OGU2Li4wMjg3MmRmMzVmZjIgMTAwNjQ0Ci0tLSBhL2FyY2gv bWlwcy9rZXJuZWwvcjRrX2ZwdS5TCisrKyBiL2FyY2gvbWlwcy9rZXJuZWwvcjRrX2ZwdS5TCkBA IC0xOSw4ICsxOSwxMiBAQAogI2luY2x1ZGUgPGFzbS9hc20tb2Zmc2V0cy5oPgogI2luY2x1ZGUg PGFzbS9yZWdkZWYuaD4KIAorLyogcHJlcHJvY2Vzc29yIHJlcGxhY2VzIHRoZSBmcCBpbiAiLnNl dCBmcD02NCIgd2l0aCAkMzAgb3RoZXJ3aXNlICovCisjdW5kZWYgZnAKKwogCS5tYWNybwlFWCBp bnNuLCByZWcsIHNyYwogCS5zZXQJcHVzaAorCVNFVF9IQVJERkxPQVQKIAkuc2V0CW5vbWFjcm8K IC5leFxAOglcaW5zbglccmVnLCBcc3JjCiAJLnNldAlwb3AKQEAgLTMwLDE1ICszNCwxOSBAQAog CS5lbmRtCiAKIAkuc2V0CW5vcmVvcmRlcgotCS5zZXQJYXJjaD1yNDAwMAogCiBMRUFGKF9zYXZl X2ZwX2NvbnRleHQpCisJLnNldAlwdXNoCisJU0VUX0hBUkRGTE9BVAogCWNmYzEJdDEsIGZjcjMx CisJLnNldAlwb3AKIAogI2lmIGRlZmluZWQoQ09ORklHXzY0QklUKSB8fCBkZWZpbmVkKENPTkZJ R19DUFVfTUlQUzMyX1IyKQogCS5zZXQJcHVzaAorCVNFVF9IQVJERkxPQVQKICNpZmRlZiBDT05G SUdfQ1BVX01JUFMzMl9SMgotCS5zZXQJbWlwczY0cjIKKwkuc2V0CW1pcHMzMnIyCisJLnNldAlm cD02NAogCW1mYzAJdDAsIENQMF9TVEFUVVMKIAlzbGwJdDAsIHQwLCA1CiAJYmdlegl0MCwgMWYJ CQkjIHNraXAgc3RvcmluZyBvZGQgaWYgRlI9MApAQCAtNjQsNiArNzIsOCBAQCBMRUFGKF9zYXZl X2ZwX2NvbnRleHQpCiAxOgkuc2V0CXBvcAogI2VuZGlmCiAKKwkuc2V0IHB1c2gKKwlTRVRfSEFS REZMT0FUCiAJLyogU3RvcmUgdGhlIDE2IGV2ZW4gZG91YmxlIHByZWNpc2lvbiByZWdpc3RlcnMg Ki8KIAlFWAlzZGMxICRmMCwgU0NfRlBSRUdTKzAoYTApCiAJRVgJc2RjMSAkZjIsIFNDX0ZQUkVH UysxNihhMCkKQEAgLTg0LDExICs5NCwxNSBAQCBMRUFGKF9zYXZlX2ZwX2NvbnRleHQpCiAJRVgJ c3cgdDEsIFNDX0ZQQ19DU1IoYTApCiAJanIJcmEKIAkgbGkJdjAsIDAJCQkJCSMgc3VjY2Vzcwor CS5zZXQgcG9wCiAJRU5EKF9zYXZlX2ZwX2NvbnRleHQpCiAKICNpZmRlZiBDT05GSUdfTUlQUzMy X0NPTVBBVAogCS8qIFNhdmUgMzItYml0IHByb2Nlc3MgZmxvYXRpbmcgcG9pbnQgY29udGV4dCAq LwogTEVBRihfc2F2ZV9mcF9jb250ZXh0MzIpCisJLnNldCBwdXNoCisJLnNldCBhcmNoPXI0MDAw CisJU0VUX0hBUkRGTE9BVAogCWNmYzEJdDEsIGZjcjMxCiAKIAltZmMwCXQwLCBDUDBfU1RBVFVT CkBAIC0xMzQsNiArMTQ4LDcgQEAgTEVBRihfc2F2ZV9mcF9jb250ZXh0MzIpCiAJRVgJc3cgdDEs IFNDMzJfRlBDX0NTUihhMCkKIAljZmMxCXQwLCAkMAkJCQkjIGltcGxlbWVudGF0aW9uL3ZlcnNp b24KIAlFWAlzdyB0MCwgU0MzMl9GUENfRUlSKGEwKQorCS5zZXQgcG9wCiAKIAlqcglyYQogCSBs aQl2MCwgMAkJCQkJIyBzdWNjZXNzCkBAIC0xNTAsOCArMTY1LDEwIEBAIExFQUYoX3Jlc3RvcmVf ZnBfY29udGV4dCkKIAogI2lmIGRlZmluZWQoQ09ORklHXzY0QklUKSB8fCBkZWZpbmVkKENPTkZJ R19DUFVfTUlQUzMyX1IyKQogCS5zZXQJcHVzaAorCVNFVF9IQVJERkxPQVQKICNpZmRlZiBDT05G SUdfQ1BVX01JUFMzMl9SMgotCS5zZXQJbWlwczY0cjIKKwkuc2V0CW1pcHMzMnIyCisJLnNldAlm cD02NAogCW1mYzAJdDAsIENQMF9TVEFUVVMKIAlzbGwJdDAsIHQwLCA1CiAJYmdlegl0MCwgMWYJ CQkjIHNraXAgbG9hZGluZyBvZGQgaWYgRlI9MApAQCAtMTc1LDYgKzE5Miw4IEBAIExFQUYoX3Jl c3RvcmVfZnBfY29udGV4dCkKIAlFWAlsZGMxICRmMzEsIFNDX0ZQUkVHUysyNDgoYTApCiAxOgku c2V0IHBvcAogI2VuZGlmCisJLnNldCBwdXNoCisJU0VUX0hBUkRGTE9BVAogCUVYCWxkYzEgJGYw LCBTQ19GUFJFR1MrMChhMCkKIAlFWAlsZGMxICRmMiwgU0NfRlBSRUdTKzE2KGEwKQogCUVYCWxk YzEgJGY0LCBTQ19GUFJFR1MrMzIoYTApCkBAIC0xOTIsNiArMjExLDcgQEAgTEVBRihfcmVzdG9y ZV9mcF9jb250ZXh0KQogCUVYCWxkYzEgJGYyOCwgU0NfRlBSRUdTKzIyNChhMCkKIAlFWAlsZGMx ICRmMzAsIFNDX0ZQUkVHUysyNDAoYTApCiAJY3RjMQl0MSwgZmNyMzEKKwkuc2V0IHBvcAogCWpy CXJhCiAJIGxpCXYwLCAwCQkJCQkjIHN1Y2Nlc3MKIAlFTkQoX3Jlc3RvcmVfZnBfY29udGV4dCkK QEAgLTE5OSw2ICsyMTksOCBAQCBMRUFGKF9yZXN0b3JlX2ZwX2NvbnRleHQpCiAjaWZkZWYgQ09O RklHX01JUFMzMl9DT01QQVQKIExFQUYoX3Jlc3RvcmVfZnBfY29udGV4dDMyKQogCS8qIFJlc3Rv cmUgYW4gbzMyIHNpZ2NvbnRleHQuICAqLworCS5zZXQgcHVzaAorCVNFVF9IQVJERkxPQVQKIAlF WAlsdyB0MSwgU0MzMl9GUENfQ1NSKGEwKQogCiAJbWZjMAl0MCwgQ1AwX1NUQVRVUwpAQCAtMjQy LDYgKzI2NCw3IEBAIExFQUYoX3Jlc3RvcmVfZnBfY29udGV4dDMyKQogCWN0YzEJdDEsIGZjcjMx CiAJanIJcmEKIAkgbGkJdjAsIDAJCQkJCSMgc3VjY2VzcworCS5zZXQgcG9wCiAJRU5EKF9yZXN0 b3JlX2ZwX2NvbnRleHQzMikKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMva2VybmVs L3I0a19zd2l0Y2guUyBiL2FyY2gvbWlwcy9rZXJuZWwvcjRrX3N3aXRjaC5TCmluZGV4IDgxY2Ez ZjcwZmUyOS4uNjQ1OTFlNjcxODc4IDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3I0a19z d2l0Y2guUworKysgYi9hcmNoL21pcHMva2VybmVsL3I0a19zd2l0Y2guUwpAQCAtMjIsNiArMjIs OSBAQAogCiAjaW5jbHVkZSA8YXNtL2FzbW1hY3JvLmg+CiAKKy8qIHByZXByb2Nlc3NvciByZXBs YWNlcyB0aGUgZnAgaW4gIi5zZXQgZnA9NjQiIHdpdGggJDMwIG90aGVyd2lzZSAqLworI3VuZGVm IGZwCisKIC8qCiAgKiBPZmZzZXQgdG8gdGhlIGN1cnJlbnQgcHJvY2VzcyBzdGF0dXMgZmxhZ3Ms IHRoZSBmaXJzdCAzMiBieXRlcyBvZiB0aGUKICAqIHN0YWNrIGFyZSBub3QgdXNlZC4KQEAgLTY0 LDggKzY3LDE0IEBACiAJLyogQ2hlY2sgd2hldGhlciB3ZSdyZSBzYXZpbmcgc2NhbGFyIG9yIHZl Y3RvciBjb250ZXh0LiAqLwogCWJndHoJYTMsIDFmCiAKLQkvKiBTYXZlIDEyOGIgTVNBIHZlY3Rv ciBjb250ZXh0LiAqLworCS8qIFNhdmUgMTI4YiBNU0EgdmVjdG9yIGNvbnRleHQgKyBzY2FsYXIg RlAgY29udHJvbCAmIHN0YXR1cy4gKi8KKwkuc2V0IHB1c2gKKwlTRVRfSEFSREZMT0FUCisJY2Zj MQl0MSwgZmNyMzEKIAltc2Ffc2F2ZV9hbGwJYTAKKwkuc2V0IHBvcAkvKiBTRVRfSEFSREZMT0FU ICovCisKKwlzdwl0MSwgVEhSRUFEX0ZDUjMxKGEwKQogCWIJMmYKIAogMToJLyogU2F2ZSAzMmIv NjRiIHNjYWxhciBGUCBjb250ZXh0LiAqLwpAQCAtMTQyLDYgKzE1MSwxMSBAQCBMRUFGKF9yZXN0 b3JlX21zYSkKIAlqcglyYQogCUVORChfcmVzdG9yZV9tc2EpCiAKK0xFQUYoX2luaXRfbXNhX3Vw cGVyKQorCW1zYV9pbml0X2FsbF91cHBlcgorCWpyCXJhCisJRU5EKF9pbml0X21zYV91cHBlcikK KwogI2VuZGlmCiAKIC8qCkBAIC0xNTQsNiArMTY4LDkgQEAgTEVBRihfcmVzdG9yZV9tc2EpCiAK ICNkZWZpbmUgRlBVX0RFRkFVTFQgIDB4MDAwMDAwMDAKIAorCS5zZXQgcHVzaAorCVNFVF9IQVJE RkxPQVQKKwogTEVBRihfaW5pdF9mcHUpCiAJbWZjMAl0MCwgQ1AwX1NUQVRVUwogCWxpCXQxLCBT VDBfQ1UxCkBAIC0yMjUsNyArMjQyLDggQEAgTEVBRihfaW5pdF9mcHUpCiAKICNpZmRlZiBDT05G SUdfQ1BVX01JUFMzMl9SMgogCS5zZXQgICAgcHVzaAotCS5zZXQgICAgbWlwczY0cjIKKwkuc2V0 ICAgIG1pcHMzMnIyCisJLnNldAlmcD02NAogCXNsbCAgICAgdDAsIHQwLCA1CQkJIyBpcyBTdGF0 dXMuRlIgc2V0PwogCWJnZXogICAgdDAsIDFmCQkJCSMgbm86IHNraXAgc2V0dGluZyB1cHBlciAz MmIKIApAQCAtMjg0LDMgKzMwMiw1IEBAIExFQUYoX2luaXRfZnB1KQogI2VuZGlmCiAJanIJcmEK IAlFTkQoX2luaXRfZnB1KQorCisJLnNldCBwb3AJLyogU0VUX0hBUkRGTE9BVCAqLwpkaWZmIC0t Z2l0IGEvYXJjaC9taXBzL2tlcm5lbC9yNjAwMF9mcHUuUyBiL2FyY2gvbWlwcy9rZXJuZWwvcjYw MDBfZnB1LlMKaW5kZXggZGEwZmJlNDZkODNiLi40NzA3NzM4MGMxNWMgMTAwNjQ0Ci0tLSBhL2Fy Y2gvbWlwcy9rZXJuZWwvcjYwMDBfZnB1LlMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9yNjAwMF9m cHUuUwpAQCAtMTgsNiArMTgsOSBAQAogCiAJLnNldAlub3Jlb3JkZXIKIAkuc2V0CW1pcHMyCisJ LnNldAlwdXNoCisJU0VUX0hBUkRGTE9BVAorCiAJLyogU2F2ZSBmbG9hdGluZyBwb2ludCBjb250 ZXh0ICovCiAJTEVBRihfc2F2ZV9mcF9jb250ZXh0KQogCW1mYzAJdDAsQ1AwX1NUQVRVUwpAQCAt ODUsMyArODgsNSBAQAogMToJanIJcmEKIAkgbm9wCiAJRU5EKF9yZXN0b3JlX2ZwX2NvbnRleHQp CisKKwkuc2V0IHBvcAkvKiBTRVRfSEFSREZMT0FUICovCmRpZmYgLS1naXQgYS9hcmNoL21pcHMv a2VybmVsL3RyYXBzLmMgYi9hcmNoL21pcHMva2VybmVsL3RyYXBzLmMKaW5kZXggMjg2OGIzOTI3 Y2I0Li5lNmUwNTVkMTlmNmMgMTAwNjQ0Ci0tLSBhL2FyY2gvbWlwcy9rZXJuZWwvdHJhcHMuYwor KysgYi9hcmNoL21pcHMva2VybmVsL3RyYXBzLmMKQEAgLTEwOTQsMTMgKzEwOTQsMTUgQEAgc3Rh dGljIGludCBkZWZhdWx0X2N1Ml9jYWxsKHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmZiLCB1bnNp Z25lZCBsb25nIGFjdGlvbiwKIAogc3RhdGljIGludCBlbmFibGVfcmVzdG9yZV9mcF9jb250ZXh0 KGludCBtc2EpCiB7Ci0JaW50IGVyciwgd2FzX2ZwdV9vd25lcjsKKwlpbnQgZXJyLCB3YXNfZnB1 X293bmVyLCBwcmlvcl9tc2E7CiAKIAlpZiAoIXVzZWRfbWF0aCgpKSB7CiAJCS8qIEZpcnN0IHRp bWUgRlAgY29udGV4dCB1c2VyLiAqLwogCQllcnIgPSBpbml0X2ZwdSgpOwotCQlpZiAobXNhICYm ICFlcnIpCisJCWlmIChtc2EgJiYgIWVycikgewogCQkJZW5hYmxlX21zYSgpOworCQkJX2luaXRf bXNhX3VwcGVyKCk7CisJCX0KIAkJaWYgKCFlcnIpCiAJCQlzZXRfdXNlZF9tYXRoKCk7CiAJCXJl dHVybiBlcnI7CkBAIC0xMTUyLDEzICsxMTU0LDM4IEBAIHN0YXRpYyBpbnQgZW5hYmxlX3Jlc3Rv cmVfZnBfY29udGV4dChpbnQgbXNhKQogCS8qCiAJICogSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGlt ZSB0aGF0IHRoZSB0YXNrIGlzIHVzaW5nIE1TQSBhbmQgaXQgaGFzCiAJICogcHJldmlvdXNseSB1 c2VkIHNjYWxhciBGUCBpbiB0aGlzIHRpbWUgc2xpY2UgdGhlbiB3ZSBhbHJlYWR5IG5hdmUKLQkg KiBGUCBjb250ZXh0IHdoaWNoIHdlIHNob3VsZG4ndCBjbG9iYmVyLgorCSAqIEZQIGNvbnRleHQg d2hpY2ggd2Ugc2hvdWxkbid0IGNsb2JiZXIuIFdlIGRvIGhvd2V2ZXIgbmVlZCB0byBjbGVhcgor CSAqIHRoZSB1cHBlciA2NGIgb2YgZWFjaCB2ZWN0b3IgcmVnaXN0ZXIgc28gdGhhdCB0aGlzIHRh c2sgaGFzIG5vCisJICogb3Bwb3J0dW5pdHkgdG8gc2VlIGRhdGEgbGVmdCBiZWhpbmQgYnkgYW5v dGhlci4KIAkgKi8KLQlpZiAoIXRlc3RfYW5kX3NldF90aHJlYWRfZmxhZyhUSUZfTVNBX0NUWF9M SVZFKSAmJiB3YXNfZnB1X293bmVyKQorCXByaW9yX21zYSA9IHRlc3RfYW5kX3NldF90aHJlYWRf ZmxhZyhUSUZfTVNBX0NUWF9MSVZFKTsKKwlpZiAoIXByaW9yX21zYSAmJiB3YXNfZnB1X293bmVy KSB7CisJCV9pbml0X21zYV91cHBlcigpOwogCQlyZXR1cm4gMDsKKwl9CisKKwlpZiAoIXByaW9y X21zYSkgeworCQkvKgorCQkgKiBSZXN0b3JlIHRoZSBsZWFzdCBzaWduaWZpY2FudCA2NGIgb2Yg ZWFjaCB2ZWN0b3IgcmVnaXN0ZXIKKwkJICogZnJvbSB0aGUgZXhpc3Rpbmcgc2NhbGFyIEZQIGNv bnRleHQuCisJCSAqLworCQlfcmVzdG9yZV9mcChjdXJyZW50KTsKIAotCS8qIFdlIG5lZWQgdG8g cmVzdG9yZSB0aGUgdmVjdG9yIGNvbnRleHQuICovCi0JcmVzdG9yZV9tc2EoY3VycmVudCk7CisJ CS8qCisJCSAqIFRoZSB0YXNrIGhhcyBub3QgZm9ybWVybHkgdXNlZCBNU0EsIHNvIGNsZWFyIHRo ZSB1cHBlciA2NGIKKwkJICogb2YgZWFjaCB2ZWN0b3IgcmVnaXN0ZXIgc3VjaCB0aGF0IGl0IGNh bm5vdCBzZWUgZGF0YSBsZWZ0CisJCSAqIGJlaGluZCBieSBhbm90aGVyIHRhc2suCisJCSAqLwor CQlfaW5pdF9tc2FfdXBwZXIoKTsKKwl9IGVsc2UgeworCQkvKiBXZSBuZWVkIHRvIHJlc3RvcmUg dGhlIHZlY3RvciBjb250ZXh0LiAqLworCQlyZXN0b3JlX21zYShjdXJyZW50KTsKKworCQkvKiBS ZXN0b3JlIHRoZSBzY2FsYXIgRlAgY29udHJvbCAmIHN0YXR1cyByZWdpc3RlciAqLworCQlpZiAo IXdhc19mcHVfb3duZXIpCisJCQl3cml0ZV8zMmJpdF9jcDFfcmVnaXN0ZXIoQ1AxX1NUQVRVUywK KwkJCQkJCSBjdXJyZW50LT50aHJlYWQuZnB1LmZjcjMxKTsKKwl9CiAJcmV0dXJuIDA7CiB9CiAK ZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tYXRoLWVtdS9jcDFlbXUuYyBiL2FyY2gvbWlwcy9tYXRo LWVtdS9jcDFlbXUuYwppbmRleCBiYzVhYjBkYmRmOTEuLjIyYTJlMTViZDkxYiAxMDA2NDQKLS0t IGEvYXJjaC9taXBzL21hdGgtZW11L2NwMWVtdS5jCisrKyBiL2FyY2gvbWlwcy9tYXRoLWVtdS9j cDFlbXUuYwpAQCAtNTg2LDExICs1ODYsNyBAQCBzdGF0aWMgaW50IGlzQnJhbmNoSW5zdHIoc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MsIHN0cnVjdCBtbV9kZWNvZGVkX2luc24gZGVjX2luc24sCiAJCWlm IChpbnNuLmlfZm9ybWF0LnJzID09IGJjX29wKSB7CiAJCQlwcmVlbXB0X2Rpc2FibGUoKTsKIAkJ CWlmIChpc19mcHVfb3duZXIoKSkKLQkJCQlhc20gdm9sYXRpbGUoCi0JCQkJCSIuc2V0IHB1c2hc biIKLQkJCQkJIlx0LnNldCBtaXBzMVxuIgotCQkJCQkiXHRjZmMxXHQlMCwkMzFcbiIKLQkJCQkJ Ilx0LnNldCBwb3AiIDogIj1yIiAoZmNyMzEpKTsKKwkJCSAgICAgICAgZmNyMzEgPSByZWFkXzMy Yml0X2NwMV9yZWdpc3RlcihDUDFfU1RBVFVTKTsKIAkJCWVsc2UKIAkJCQlmY3IzMSA9IGN1cnJl bnQtPnRocmVhZC5mcHUuZmNyMzE7CiAJCQlwcmVlbXB0X2VuYWJsZSgpOwpkaWZmIC0tZ2l0IGEv YXJjaC9taXBzL3JhbGluay9wcm9tLmMgYi9hcmNoL21pcHMvcmFsaW5rL3Byb20uYwppbmRleCA5 YzY0ZjAyOWQwNDcuLjg3MzEyZGZjZWUzOCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL3JhbGluay9w cm9tLmMKKysrIGIvYXJjaC9taXBzL3JhbGluay9wcm9tLmMKQEAgLTI0LDggKzI0LDEwIEBAIGNv bnN0IGNoYXIgKmdldF9zeXN0ZW1fdHlwZSh2b2lkKQogCXJldHVybiBzb2NfaW5mby5zeXNfdHlw ZTsKIH0KIAotc3RhdGljIF9faW5pdCB2b2lkIHByb21faW5pdF9jbWRsaW5lKGludCBhcmdjLCBj aGFyICoqYXJndikKK3N0YXRpYyBfX2luaXQgdm9pZCBwcm9tX2luaXRfY21kbGluZSh2b2lkKQog eworCWludCBhcmdjOworCWNoYXIgKiphcmd2OwogCWludCBpOwogCiAJcHJfZGVidWcoInByb206 IGZ3X2FyZzA9JTA4eCBmd19hcmcxPSUwOHggZndfYXJnMj0lMDh4IGZ3X2FyZzM9JTA4eFxuIiwK QEAgLTU0LDE0ICs1NiwxMSBAQCBzdGF0aWMgX19pbml0IHZvaWQgcHJvbV9pbml0X2NtZGxpbmUo aW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCiB2b2lkIF9faW5pdCBwcm9tX2luaXQodm9pZCkKIHsK LQlpbnQgYXJnYzsKLQljaGFyICoqYXJndjsKLQogCXByb21fc29jX2luaXQoJnNvY19pbmZvKTsK IAogCXByX2luZm8oIlNvQyBUeXBlOiAlc1xuIiwgZ2V0X3N5c3RlbV90eXBlKCkpOwogCi0JcHJv bV9pbml0X2NtZGxpbmUoYXJnYywgYXJndik7CisJcHJvbV9pbml0X2NtZGxpbmUoKTsKIH0KIAog dm9pZCBfX2luaXQgcHJvbV9mcmVlX3Byb21fbWVtb3J5KHZvaWQpCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9rZXhlYy5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20va2V4ZWMuaApp bmRleCAxNzQ4M2E0OTJmMTguLjBjNTlkZjM2NjRkNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5j bHVkZS9hc20va2V4ZWMuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rZXhlYy5oCkBAIC0x NjUsNiArMTY1LDcgQEAgc3RydWN0IGtpbWFnZV9hcmNoIHsKIAogdHlwZWRlZiB2b2lkIGNyYXNo X3ZtY2xlYXJfZm4odm9pZCk7CiBleHRlcm4gY3Jhc2hfdm1jbGVhcl9mbiBfX3JjdSAqY3Jhc2hf dm1jbGVhcl9sb2FkZWRfdm1jc3M7CitleHRlcm4gdm9pZCBrZHVtcF9ubWlfc2hvb3Rkb3duX2Nw dXModm9pZCk7CiAKICNlbmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KIApkaWZmIC0tZ2l0IGEvYXJj aC94ODYvaW5jbHVkZS9hc20vc21wLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9zbXAuaAppbmRl eCA4Y2QyN2UwOGUyM2MuLjYzYmFmMTY5MzRkMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVk ZS9hc20vc21wLmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgKQEAgLTY5LDYgKzY5 LDcgQEAgc3RydWN0IHNtcF9vcHMgewogCXZvaWQgKCpzbXBfY3B1c19kb25lKSh1bnNpZ25lZCBt YXhfY3B1cyk7CiAKIAl2b2lkICgqc3RvcF9vdGhlcl9jcHVzKShpbnQgd2FpdCk7CisJdm9pZCAo KmNyYXNoX3N0b3Bfb3RoZXJfY3B1cykodm9pZCk7CiAJdm9pZCAoKnNtcF9zZW5kX3Jlc2NoZWR1 bGUpKGludCBjcHUpOwogCiAJaW50ICgqY3B1X3VwKSh1bnNpZ25lZCBjcHUsIHN0cnVjdCB0YXNr X3N0cnVjdCAqdGlkbGUpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NyYXNoLmMgYi9h cmNoL3g4Ni9rZXJuZWwvY3Jhc2guYwppbmRleCA1MDdkZTgwNjY1OTQuLjE5ZjEwZGFjOGZlNiAx MDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NyYXNoLmMKKysrIGIvYXJjaC94ODYva2VybmVs L2NyYXNoLmMKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIHZvaWQga2R1bXBfbm1pX2NhbGxiYWNr KGludCBjcHUsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQogCWRpc2FibGVfbG9jYWxfQVBJQygpOwog fQogCi1zdGF0aWMgdm9pZCBrZHVtcF9ubWlfc2hvb3Rkb3duX2NwdXModm9pZCkKK3ZvaWQga2R1 bXBfbm1pX3Nob290ZG93bl9jcHVzKHZvaWQpCiB7CiAJaW5fY3Jhc2hfa2V4ZWMgPSAxOwogCW5t aV9zaG9vdGRvd25fY3B1cyhrZHVtcF9ubWlfY2FsbGJhY2spOwpAQCAtOTAsOCArOTAsMjQgQEAg c3RhdGljIHZvaWQga2R1bXBfbm1pX3Nob290ZG93bl9jcHVzKHZvaWQpCiAJZGlzYWJsZV9sb2Nh bF9BUElDKCk7CiB9CiAKKy8qIE92ZXJyaWRlIHRoZSB3ZWFrIGZ1bmN0aW9uIGluIGtlcm5lbC9w YW5pYy5jICovCit2b2lkIGNyYXNoX3NtcF9zZW5kX3N0b3Aodm9pZCkKK3sKKwlzdGF0aWMgaW50 IGNwdXNfc3RvcHBlZDsKKworCWlmIChjcHVzX3N0b3BwZWQpCisJCXJldHVybjsKKworCWlmIChz bXBfb3BzLmNyYXNoX3N0b3Bfb3RoZXJfY3B1cykKKwkJc21wX29wcy5jcmFzaF9zdG9wX290aGVy X2NwdXMoKTsKKwllbHNlCisJCXNtcF9zZW5kX3N0b3AoKTsKKworCWNwdXNfc3RvcHBlZCA9IDE7 Cit9CisKICNlbHNlCi1zdGF0aWMgdm9pZCBrZHVtcF9ubWlfc2hvb3Rkb3duX2NwdXModm9pZCkK K3ZvaWQgY3Jhc2hfc21wX3NlbmRfc3RvcCh2b2lkKQogewogCS8qIFRoZXJlIGFyZSBubyBjcHVz IHRvIHNob290ZG93biAqLwogfQpAQCAtMTEwLDcgKzEyNiw3IEBAIHZvaWQgbmF0aXZlX21hY2hp bmVfY3Jhc2hfc2h1dGRvd24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAJLyogVGhlIGtlcm5lbCBp cyBicm9rZW4gc28gZGlzYWJsZSBpbnRlcnJ1cHRzICovCiAJbG9jYWxfaXJxX2Rpc2FibGUoKTsK IAotCWtkdW1wX25taV9zaG9vdGRvd25fY3B1cygpOworCWNyYXNoX3NtcF9zZW5kX3N0b3AoKTsK IAogCS8qCiAJICogVk1DTEVBUiBWTUNTcyBsb2FkZWQgb24gdGhpcyBjcHUgaWYgbmVlZGVkLgpk aWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NtcC5jIGIvYXJjaC94ODYva2VybmVsL3NtcC5j CmluZGV4IGJlOGUxYmRlMDdhYS4uMDBlNjdkMDVjYmQwIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9r ZXJuZWwvc21wLmMKKysrIGIvYXJjaC94ODYva2VybmVsL3NtcC5jCkBAIC0zMSw2ICszMSw4IEBA CiAjaW5jbHVkZSA8YXNtL2FwaWMuaD4KICNpbmNsdWRlIDxhc20vbm1pLmg+CiAjaW5jbHVkZSA8 YXNtL3RyYWNlL2lycV92ZWN0b3JzLmg+CisjaW5jbHVkZSA8YXNtL2tleGVjLmg+CisKIC8qCiAg KglTb21lIG5vdGVzIG9uIHg4NiBwcm9jZXNzb3IgYnVncyBhZmZlY3RpbmcgU01QIG9wZXJhdGlv bjoKICAqCkBAIC0zNDcsNiArMzQ5LDkgQEAgc3RydWN0IHNtcF9vcHMgc21wX29wcyA9IHsKIAku c21wX2NwdXNfZG9uZQkJPSBuYXRpdmVfc21wX2NwdXNfZG9uZSwKIAogCS5zdG9wX290aGVyX2Nw dXMJPSBuYXRpdmVfc3RvcF9vdGhlcl9jcHVzLAorI2lmIGRlZmluZWQoQ09ORklHX0tFWEVDX0NP UkUpCisJLmNyYXNoX3N0b3Bfb3RoZXJfY3B1cwk9IGtkdW1wX25taV9zaG9vdGRvd25fY3B1cywK KyNlbmRpZgogCS5zbXBfc2VuZF9yZXNjaGVkdWxlCT0gbmF0aXZlX3NtcF9zZW5kX3Jlc2NoZWR1 bGUsCiAKIAkuY3B1X3VwCQkJPSBuYXRpdmVfY3B1X3VwLApkaWZmIC0tZ2l0IGEvY3J5cHRvL01h a2VmaWxlIGIvY3J5cHRvL01ha2VmaWxlCmluZGV4IDM4ZTY0MjMxZGNkMy4uNTJjM2ViNmE5OTdm IDEwMDY0NAotLS0gYS9jcnlwdG8vTWFrZWZpbGUKKysrIGIvY3J5cHRvL01ha2VmaWxlCkBAIC00 Nyw2ICs0Nyw3IEBAIG9iai0kKENPTkZJR19DUllQVE9fU0hBMSkgKz0gc2hhMV9nZW5lcmljLm8K IG9iai0kKENPTkZJR19DUllQVE9fU0hBMjU2KSArPSBzaGEyNTZfZ2VuZXJpYy5vCiBvYmotJChD T05GSUdfQ1JZUFRPX1NIQTUxMikgKz0gc2hhNTEyX2dlbmVyaWMubwogb2JqLSQoQ09ORklHX0NS WVBUT19XUDUxMikgKz0gd3A1MTIubworQ0ZMQUdTX3dwNTEyLm8gOj0gJChjYWxsIGNjLW9wdGlv biwtZm5vLXNjaGVkdWxlLWluc25zKSAgIyBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3No b3dfYnVnLmNnaT9pZD03OTE0OQogb2JqLSQoQ09ORklHX0NSWVBUT19UR1IxOTIpICs9IHRncjE5 Mi5vCiBvYmotJChDT05GSUdfQ1JZUFRPX0dGMTI4TVVMKSArPSBnZjEyOG11bC5vCiBvYmotJChD T05GSUdfQ1JZUFRPX0VDQikgKz0gZWNiLm8KQEAgLTY3LDYgKzY4LDcgQEAgb2JqLSQoQ09ORklH X0NSWVBUT19CTE9XRklTSF9DT01NT04pICs9IGJsb3dmaXNoX2NvbW1vbi5vCiBvYmotJChDT05G SUdfQ1JZUFRPX1RXT0ZJU0gpICs9IHR3b2Zpc2hfZ2VuZXJpYy5vCiBvYmotJChDT05GSUdfQ1JZ UFRPX1RXT0ZJU0hfQ09NTU9OKSArPSB0d29maXNoX2NvbW1vbi5vCiBvYmotJChDT05GSUdfQ1JZ UFRPX1NFUlBFTlQpICs9IHNlcnBlbnRfZ2VuZXJpYy5vCitDRkxBR1Nfc2VycGVudF9nZW5lcmlj Lm8gOj0gJChjYWxsIGNjLW9wdGlvbiwtZnNjaGVkLXByZXNzdXJlKSAgIyBodHRwczovL2djYy5n bnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD03OTE0OQogb2JqLSQoQ09ORklHX0NSWVBU T19BRVMpICs9IGFlc19nZW5lcmljLm8KIG9iai0kKENPTkZJR19DUllQVE9fQ0FNRUxMSUEpICs9 IGNhbWVsbGlhX2dlbmVyaWMubwogb2JqLSQoQ09ORklHX0NSWVBUT19DQVNUX0NPTU1PTikgKz0g Y2FzdF9jb21tb24ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hdG0vaXBoYXNlLmMgYi9kcml2ZXJz L2F0bS9pcGhhc2UuYwppbmRleCA0MjE3ZjI5YTg1ZTAuLjgxNjA4N2I2OGVjNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9hdG0vaXBoYXNlLmMKKysrIGIvZHJpdmVycy9hdG0vaXBoYXNlLmMKQEAgLTEx NzUsNyArMTE3NSw3IEBAIHN0YXRpYyBpbnQgcnhfcGt0KHN0cnVjdCBhdG1fZGV2ICpkZXYpCiAg ICAgICAgIGlmICghKHNrYiA9IGF0bV9hbGxvY19jaGFyZ2UodmNjLCBsZW4sIEdGUF9BVE9NSUMp KSkgewogICAgICAgICAgICBpZiAodmNjLT52Y2kgPCAzMikKICAgICAgICAgICAgICAgcHJpbnRr KCJEcm9wIGNvbnRyb2wgcGFja2V0c1xuIik7Ci0JICAgICAgZ290byBvdXRfZnJlZV9kZXNjOwor CSAgIGdvdG8gb3V0X2ZyZWVfZGVzYzsKICAgICAgICAgfQogCXNrYl9wdXQoc2tiLGxlbik7ICAK ICAgICAgICAgLy8gcHdhbmdfdGVzdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9oaWQvaGlkLWlucHV0 LmMgYi9kcml2ZXJzL2hpZC9oaWQtaW5wdXQuYwppbmRleCAxOTcxMjhlZDgyMjUuLmVlMWFmNDU2 NTgyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9oaWQvaGlkLWlucHV0LmMKKysrIGIvZHJpdmVycy9o aWQvaGlkLWlucHV0LmMKQEAgLTExMTksNyArMTExOSw3IEBAIHZvaWQgaGlkaW5wdXRfaGlkX2V2 ZW50KHN0cnVjdCBoaWRfZGV2aWNlICpoaWQsIHN0cnVjdCBoaWRfZmllbGQgKmZpZWxkLCBzdHJ1 Y3QKIAkJcmV0dXJuOwogCiAJLyogcmVwb3J0IHRoZSB1c2FnZSBjb2RlIGFzIHNjYW5jb2RlIGlm IHRoZSBrZXkgc3RhdHVzIGhhcyBjaGFuZ2VkICovCi0JaWYgKHVzYWdlLT50eXBlID09IEVWX0tF WSAmJiAhIXRlc3RfYml0KHVzYWdlLT5jb2RlLCBpbnB1dC0+a2V5KSAhPSB2YWx1ZSkKKwlpZiAo dXNhZ2UtPnR5cGUgPT0gRVZfS0VZICYmICghIXRlc3RfYml0KHVzYWdlLT5jb2RlLCBpbnB1dC0+ a2V5KSkgIT0gdmFsdWUpCiAJCWlucHV0X2V2ZW50KGlucHV0LCBFVl9NU0MsIE1TQ19TQ0FOLCB1 c2FnZS0+aGlkKTsKIAogCWlucHV0X2V2ZW50KGlucHV0LCB1c2FnZS0+dHlwZSwgdXNhZ2UtPmNv ZGUsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3Qvc3VueGktbW1jLmMgYi9k cml2ZXJzL21tYy9ob3N0L3N1bnhpLW1tYy5jCmluZGV4IDk3ODIzYzY4NjAwYS4uYmVjMWI5N2E1 NmRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21tYy9ob3N0L3N1bnhpLW1tYy5jCisrKyBiL2RyaXZl cnMvbW1jL2hvc3Qvc3VueGktbW1jLmMKQEAgLTI5NCw3ICsyOTQsNyBAQCBzdGF0aWMgdm9pZCBz dW54aV9tbWNfaW5pdF9pZG1hX2RlcyhzdHJ1Y3Qgc3VueGlfbW1jX2hvc3QgKmhvc3QsCiAJCQkJ ICAgIHN0cnVjdCBtbWNfZGF0YSAqZGF0YSkKIHsKIAlzdHJ1Y3Qgc3VueGlfaWRtYV9kZXMgKnBk ZXMgPSAoc3RydWN0IHN1bnhpX2lkbWFfZGVzICopaG9zdC0+c2dfY3B1OwotCXN0cnVjdCBzdW54 aV9pZG1hX2RlcyAqcGRlc19wYSA9IChzdHJ1Y3Qgc3VueGlfaWRtYV9kZXMgKilob3N0LT5zZ19k bWE7CisJZG1hX2FkZHJfdCBuZXh0X2Rlc2MgPSBob3N0LT5zZ19kbWE7CiAJaW50IGksIG1heF9s ZW4gPSAoMSA8PCBob3N0LT5pZG1hX2Rlc19zaXplX2JpdHMpOwogCiAJZm9yIChpID0gMDsgaSA8 IGRhdGEtPnNnX2xlbjsgaSsrKSB7CkBAIC0zMDYsOCArMzA2LDkgQEAgc3RhdGljIHZvaWQgc3Vu eGlfbW1jX2luaXRfaWRtYV9kZXMoc3RydWN0IHN1bnhpX21tY19ob3N0ICpob3N0LAogCQllbHNl CiAJCQlwZGVzW2ldLmJ1Zl9zaXplID0gZGF0YS0+c2dbaV0ubGVuZ3RoOwogCisJCW5leHRfZGVz YyArPSBzaXplb2Yoc3RydWN0IHN1bnhpX2lkbWFfZGVzKTsKIAkJcGRlc1tpXS5idWZfYWRkcl9w dHIxID0gc2dfZG1hX2FkZHJlc3MoJmRhdGEtPnNnW2ldKTsKLQkJcGRlc1tpXS5idWZfYWRkcl9w dHIyID0gKHUzMikmcGRlc19wYVtpICsgMV07CisJCXBkZXNbaV0uYnVmX2FkZHJfcHRyMiA9ICh1 MzIpbmV4dF9kZXNjOwogCX0KIAogCXBkZXNbMF0uY29uZmlnIHw9IFNEWENfSURNQUNfREVTMF9G RDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9zYW1zdW5nLmMgYi9kcml2ZXJzL3R0 eS9zZXJpYWwvc2Ftc3VuZy5jCmluZGV4IDJhMmE1NGRiODZmZi4uOTFmMjlmMjk3NWMxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvc2Ftc3VuZy5jCisrKyBiL2RyaXZlcnMvdHR5L3Nl cmlhbC9zYW1zdW5nLmMKQEAgLTEyMzEsOCArMTIzMSw4IEBAIHN0YXRpYyBpbnQgczNjMjR4eF9z ZXJpYWxfaW5pdF9wb3J0KHN0cnVjdCBzM2MyNHh4X3VhcnRfcG9ydCAqb3VycG9ydCwKIAkJd3Jf cmVnbChwb3J0LCBTM0M2NFhYX1VJTlRTUCwgMHhmKTsKIAl9CiAKLQlkYmcoInBvcnQ6IG1hcD0l MDh4LCBtZW09JXAsIGlycT0lZCAoJWQsJWQpLCBjbG9jaz0ldVxuIiwKLQkgICAgcG9ydC0+bWFw YmFzZSwgcG9ydC0+bWVtYmFzZSwgcG9ydC0+aXJxLAorCWRiZygicG9ydDogbWFwPSVwYSwgbWVt PSVwLCBpcnE9JWQgKCVkLCVkKSwgY2xvY2s9JXVcbiIsCisJICAgICZwb3J0LT5tYXBiYXNlLCBw b3J0LT5tZW1iYXNlLCBwb3J0LT5pcnEsCiAJICAgIG91cnBvcnQtPnJ4X2lycSwgb3VycG9ydC0+ dHhfaXJxLCBwb3J0LT51YXJ0Y2xrKTsKIAogCS8qIHJlc2V0IHRoZSBmaWZvcyAoYW5kIHNldHVw IHRoZSB1YXJ0KSAqLwpkaWZmIC0tZ2l0IGEvZnMvYWlvLmMgYi9mcy9haW8uYwppbmRleCA3YWFh NDE2NGJiYTUuLjNlNmQ2OTc0NDM0YyAxMDA2NDQKLS0tIGEvZnMvYWlvLmMKKysrIGIvZnMvYWlv LmMKQEAgLTIyNiw2ICsyMjYsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhaW9fc2V0dXAodm9pZCkK IAkJLm5hbWUJCT0gImFpbyIsCiAJCS5tb3VudAkJPSBhaW9fbW91bnQsCiAJCS5raWxsX3NiCT0g a2lsbF9hbm9uX3N1cGVyLAorCQkuZnNfZmxhZ3MJPSBGU19OT0VYRUMsCiAJfTsKIAlhaW9fbW50 ID0ga2Vybl9tb3VudCgmYWlvX2ZzKTsKIAlpZiAoSVNfRVJSKGFpb19tbnQpKQpkaWZmIC0tZ2l0 IGEvZnMvY29tcGF0LmMgYi9mcy9jb21wYXQuYwppbmRleCA2NmQzZDNjNmI0YjIuLjYyMDVjMjQ3 YTZlMyAxMDA2NDQKLS0tIGEvZnMvY29tcGF0LmMKKysrIGIvZnMvY29tcGF0LmMKQEAgLTc5Nyw4 ICs3OTcsOSBAQCBDT01QQVRfU1lTQ0FMTF9ERUZJTkU1KG1vdW50LCBjb25zdCBjaGFyIF9fdXNl ciAqLCBkZXZfbmFtZSwKIAlzdHJ1Y3QgZmlsZW5hbWUgKmRpcjsKIAlpbnQgcmV0dmFsOwogCi0J cmV0dmFsID0gY29weV9tb3VudF9zdHJpbmcodHlwZSwgJmtlcm5lbF90eXBlKTsKLQlpZiAocmV0 dmFsIDwgMCkKKwlrZXJuZWxfdHlwZSA9IGNvcHlfbW91bnRfc3RyaW5nKHR5cGUpOworCXJldHZh bCA9IFBUUl9FUlIoa2VybmVsX3R5cGUpOworCWlmIChJU19FUlIoa2VybmVsX3R5cGUpKQogCQln b3RvIG91dDsKIAogCWRpciA9IGdldG5hbWUoZGlyX25hbWUpOwpAQCAtODA2LDggKzgwNyw5IEBA IENPTVBBVF9TWVNDQUxMX0RFRklORTUobW91bnQsIGNvbnN0IGNoYXIgX191c2VyICosIGRldl9u YW1lLAogCWlmIChJU19FUlIoZGlyKSkKIAkJZ290byBvdXQxOwogCi0JcmV0dmFsID0gY29weV9t b3VudF9zdHJpbmcoZGV2X25hbWUsICZrZXJuZWxfZGV2KTsKLQlpZiAocmV0dmFsIDwgMCkKKwlr ZXJuZWxfZGV2ID0gY29weV9tb3VudF9zdHJpbmcoZGV2X25hbWUpOworCXJldHZhbCA9IFBUUl9F UlIoa2VybmVsX2Rldik7CisJaWYgKElTX0VSUihrZXJuZWxfZGV2KSkKIAkJZ290byBvdXQyOwog CiAJcmV0dmFsID0gY29weV9tb3VudF9vcHRpb25zKGRhdGEsICZkYXRhX3BhZ2UpOwpkaWZmIC0t Z2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jCmluZGV4IDViNjUzYTEyNmIyMC4uOGNiN2ZjNGFi Nzg5IDEwMDY0NAotLS0gYS9mcy9leGVjLmMKKysrIGIvZnMvZXhlYy5jCkBAIC05OCw2ICs5OCwx MiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHV0X2JpbmZtdChzdHJ1Y3QgbGludXhfYmluZm10ICog Zm10KQogCW1vZHVsZV9wdXQoZm10LT5tb2R1bGUpOwogfQogCitib29sIHBhdGhfbm9leGVjKGNv bnN0IHN0cnVjdCBwYXRoICpwYXRoKQoreworCXJldHVybiAocGF0aC0+bW50LT5tbnRfZmxhZ3Mg JiBNTlRfTk9FWEVDKSB8fAorCSAgICAgICAocGF0aC0+bW50LT5tbnRfc2ItPnNfdHlwZS0+ZnNf ZmxhZ3MgJiBGU19OT0VYRUMpOworfQorCiAjaWZkZWYgQ09ORklHX1VTRUxJQgogLyoKICAqIE5v dGUgdGhhdCBhIHNoYXJlZCBsaWJyYXJ5IG11c3QgYmUgYm90aCByZWFkYWJsZSBhbmQgZXhlY3V0 YWJsZSBkdWUgdG8KQEAgLTEzMiw3ICsxMzgsNyBAQCBTWVNDQUxMX0RFRklORTEodXNlbGliLCBj b25zdCBjaGFyIF9fdXNlciAqLCBsaWJyYXJ5KQogCQlnb3RvIGV4aXQ7CiAKIAllcnJvciA9IC1F QUNDRVM7Ci0JaWYgKGZpbGUtPmZfcGF0aC5tbnQtPm1udF9mbGFncyAmIE1OVF9OT0VYRUMpCisJ aWYgKHBhdGhfbm9leGVjKCZmaWxlLT5mX3BhdGgpKQogCQlnb3RvIGV4aXQ7CiAKIAlmc25vdGlm eV9vcGVuKGZpbGUpOwpAQCAtNzczLDcgKzc3OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZmlsZSAqZG9f b3Blbl9leGVjKHN0cnVjdCBmaWxlbmFtZSAqbmFtZSkKIAlpZiAoIVNfSVNSRUcoZmlsZV9pbm9k ZShmaWxlKS0+aV9tb2RlKSkKIAkJZ290byBleGl0OwogCi0JaWYgKGZpbGUtPmZfcGF0aC5tbnQt Pm1udF9mbGFncyAmIE1OVF9OT0VYRUMpCisJaWYgKHBhdGhfbm9leGVjKCZmaWxlLT5mX3BhdGgp KQogCQlnb3RvIGV4aXQ7CiAKIAlmc25vdGlmeV9vcGVuKGZpbGUpOwpkaWZmIC0tZ2l0IGEvZnMv aW50ZXJuYWwuaCBiL2ZzL2ludGVybmFsLmgKaW5kZXggNDY1NzQyNDA3NDY2Li4zY2UyOWM5MmNj NDQgMTAwNjQ0Ci0tLSBhL2ZzL2ludGVybmFsLmgKKysrIGIvZnMvaW50ZXJuYWwuaApAQCAtNTEs NyArNTEsNyBAQCBleHRlcm4gaW50IHZmc19wYXRoX2xvb2t1cChzdHJ1Y3QgZGVudHJ5ICosIHN0 cnVjdCB2ZnNtb3VudCAqLAogICogbmFtZXNwYWNlLmMKICAqLwogZXh0ZXJuIGludCBjb3B5X21v dW50X29wdGlvbnMoY29uc3Qgdm9pZCBfX3VzZXIgKiwgdW5zaWduZWQgbG9uZyAqKTsKLWV4dGVy biBpbnQgY29weV9tb3VudF9zdHJpbmcoY29uc3Qgdm9pZCBfX3VzZXIgKiwgY2hhciAqKik7Citl eHRlcm4gY2hhciAqY29weV9tb3VudF9zdHJpbmcoY29uc3Qgdm9pZCBfX3VzZXIgKik7CiAKIGV4 dGVybiBzdHJ1Y3QgdmZzbW91bnQgKmxvb2t1cF9tbnQoc3RydWN0IHBhdGggKik7CiBleHRlcm4g aW50IGZpbmlzaF9hdXRvbW91bnQoc3RydWN0IHZmc21vdW50ICosIHN0cnVjdCBwYXRoICopOwpk aWZmIC0tZ2l0IGEvZnMvbmFtZXNwYWNlLmMgYi9mcy9uYW1lc3BhY2UuYwppbmRleCBjMmViN2Vj MWJiMDguLmMxYzBjODE3OTQ5OCAxMDA2NDQKLS0tIGEvZnMvbmFtZXNwYWNlLmMKKysrIGIvZnMv bmFtZXNwYWNlLmMKQEAgLTI0ODIsMjEgKzI0ODIsOSBAQCBpbnQgY29weV9tb3VudF9vcHRpb25z KGNvbnN0IHZvaWQgX191c2VyICogZGF0YSwgdW5zaWduZWQgbG9uZyAqd2hlcmUpCiAJcmV0dXJu IDA7CiB9CiAKLWludCBjb3B5X21vdW50X3N0cmluZyhjb25zdCB2b2lkIF9fdXNlciAqZGF0YSwg Y2hhciAqKndoZXJlKQorY2hhciAqY29weV9tb3VudF9zdHJpbmcoY29uc3Qgdm9pZCBfX3VzZXIg KmRhdGEpCiB7Ci0JY2hhciAqdG1wOwotCi0JaWYgKCFkYXRhKSB7Ci0JCSp3aGVyZSA9IE5VTEw7 Ci0JCXJldHVybiAwOwotCX0KLQotCXRtcCA9IHN0cm5kdXBfdXNlcihkYXRhLCBQQUdFX1NJWkUp OwotCWlmIChJU19FUlIodG1wKSkKLQkJcmV0dXJuIFBUUl9FUlIodG1wKTsKLQotCSp3aGVyZSA9 IHRtcDsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gZGF0YSA/IHN0cm5kdXBfdXNlcihkYXRhLCBQQUdF X1NJWkUpIDogTlVMTDsKIH0KIAogLyoKQEAgLTI3NjYsOCArMjc1NCw5IEBAIFNZU0NBTExfREVG SU5FNShtb3VudCwgY2hhciBfX3VzZXIgKiwgZGV2X25hbWUsIGNoYXIgX191c2VyICosIGRpcl9u YW1lLAogCWNoYXIgKmtlcm5lbF9kZXY7CiAJdW5zaWduZWQgbG9uZyBkYXRhX3BhZ2U7CiAKLQly ZXQgPSBjb3B5X21vdW50X3N0cmluZyh0eXBlLCAma2VybmVsX3R5cGUpOwotCWlmIChyZXQgPCAw KQorCWtlcm5lbF90eXBlID0gY29weV9tb3VudF9zdHJpbmcodHlwZSk7CisJcmV0ID0gUFRSX0VS UihrZXJuZWxfdHlwZSk7CisJaWYgKElTX0VSUihrZXJuZWxfdHlwZSkpCiAJCWdvdG8gb3V0X3R5 cGU7CiAKIAlrZXJuZWxfZGlyID0gZ2V0bmFtZShkaXJfbmFtZSk7CkBAIC0yNzc2LDggKzI3NjUs OSBAQCBTWVNDQUxMX0RFRklORTUobW91bnQsIGNoYXIgX191c2VyICosIGRldl9uYW1lLCBjaGFy IF9fdXNlciAqLCBkaXJfbmFtZSwKIAkJZ290byBvdXRfZGlyOwogCX0KIAotCXJldCA9IGNvcHlf bW91bnRfc3RyaW5nKGRldl9uYW1lLCAma2VybmVsX2Rldik7Ci0JaWYgKHJldCA8IDApCisJa2Vy bmVsX2RldiA9IGNvcHlfbW91bnRfc3RyaW5nKGRldl9uYW1lKTsKKwlyZXQgPSBQVFJfRVJSKGtl cm5lbF9kZXYpOworCWlmIChJU19FUlIoa2VybmVsX2RldikpCiAJCWdvdG8gb3V0X2RldjsKIAog CXJldCA9IGNvcHlfbW91bnRfb3B0aW9ucyhkYXRhLCAmZGF0YV9wYWdlKTsKZGlmZiAtLWdpdCBh L2ZzL25mcy9uZnM0cHJvYy5jIGIvZnMvbmZzL25mczRwcm9jLmMKaW5kZXggMTUyMmVjODFjMjZm Li5lMDdmYmY5N2E5M2IgMTAwNjQ0Ci0tLSBhL2ZzL25mcy9uZnM0cHJvYy5jCisrKyBiL2ZzL25m cy9uZnM0cHJvYy5jCkBAIC0zMDAwLDE2ICszMDAwLDEzIEBAIGludCBuZnM0X3Byb2NfZ2V0X3Jv b3RmaChzdHJ1Y3QgbmZzX3NlcnZlciAqc2VydmVyLCBzdHJ1Y3QgbmZzX2ZoICpmaGFuZGxlLAog CQkJIHN0cnVjdCBuZnNfZnNpbmZvICppbmZvLAogCQkJIGJvb2wgYXV0aF9wcm9iZSkKIHsKLQlp bnQgc3RhdHVzOworCWludCBzdGF0dXMgPSAwOwogCi0Jc3dpdGNoIChhdXRoX3Byb2JlKSB7Ci0J Y2FzZSBmYWxzZToKKwlpZiAoIWF1dGhfcHJvYmUpCiAJCXN0YXR1cyA9IG5mczRfbG9va3VwX3Jv b3Qoc2VydmVyLCBmaGFuZGxlLCBpbmZvKTsKLQkJaWYgKHN0YXR1cyAhPSAtTkZTNEVSUl9XUk9O R1NFQykKLQkJCWJyZWFrOwotCWRlZmF1bHQ6CisKKwlpZiAoYXV0aF9wcm9iZSB8fCBzdGF0dXMg PT0gTkZTNEVSUl9XUk9OR1NFQykKIAkJc3RhdHVzID0gbmZzNF9kb19maW5kX3Jvb3Rfc2VjKHNl cnZlciwgZmhhbmRsZSwgaW5mbyk7Ci0JfQogCiAJaWYgKHN0YXR1cyA9PSAwKQogCQlzdGF0dXMg PSBuZnM0X3NlcnZlcl9jYXBhYmlsaXRpZXMoc2VydmVyLCBmaGFuZGxlKTsKZGlmZiAtLWdpdCBh L2ZzL29wZW4uYyBiL2ZzL29wZW4uYwppbmRleCA3OWE1MmYxNDYxODIuLmZjNDQyMzdlNGEyZSAx MDA2NDQKLS0tIGEvZnMvb3Blbi5jCisrKyBiL2ZzL29wZW4uYwpAQCAtMzU5LDcgKzM1OSw3IEBA IHJldHJ5OgogCQkgKiB3aXRoIHRoZSAibm9leGVjIiBmbGFnLgogCQkgKi8KIAkJcmVzID0gLUVB Q0NFUzsKLQkJaWYgKHBhdGgubW50LT5tbnRfZmxhZ3MgJiBNTlRfTk9FWEVDKQorCQlpZiAocGF0 aF9ub2V4ZWMoJnBhdGgpKQogCQkJZ290byBvdXRfcGF0aF9yZWxlYXNlOwogCX0KIApkaWZmIC0t Z2l0IGEvZnMvcHJvYy9yb290LmMgYi9mcy9wcm9jL3Jvb3QuYwppbmRleCA5ODk5MmNiNDRjMzUu LmQ4MWQwYmFlYjc3MiAxMDA2NDQKLS0tIGEvZnMvcHJvYy9yb290LmMKKysrIGIvZnMvcHJvYy9y b290LmMKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUg cHJvY19mc190eXBlID0gewogCS5uYW1lCQk9ICJwcm9jIiwKIAkubW91bnQJCT0gcHJvY19tb3Vu dCwKIAkua2lsbF9zYgk9IHByb2Nfa2lsbF9zYiwKLQkuZnNfZmxhZ3MJPSBGU19VU0VSTlNfVklT SUJMRSB8IEZTX1VTRVJOU19NT1VOVCwKKwkuZnNfZmxhZ3MJPSBGU19VU0VSTlNfVklTSUJMRSB8 IEZTX1VTRVJOU19NT1VOVCB8IEZTX05PRVhFQywKIH07CiAKIHZvaWQgX19pbml0IHByb2Nfcm9v dF9pbml0KHZvaWQpCmRpZmYgLS1naXQgYS9mcy9zeXNmcy9tb3VudC5jIGIvZnMvc3lzZnMvbW91 bnQuYwppbmRleCAxYzZhYzZmY2VlOWYuLjBlNmMwMmYyNzE0MCAxMDA2NDQKLS0tIGEvZnMvc3lz ZnMvbW91bnQuYworKysgYi9mcy9zeXNmcy9tb3VudC5jCkBAIC00MCw2ICs0MCw3IEBAIHN0YXRp YyBzdHJ1Y3QgZGVudHJ5ICpzeXNmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNf dHlwZSwKIAkJCQlTWVNGU19NQUdJQywgJm5ld19zYiwgbnMpOwogCWlmIChJU19FUlIocm9vdCkg fHwgIW5ld19zYikKIAkJa29ial9uc19kcm9wKEtPQkpfTlNfVFlQRV9ORVQsIG5zKTsKKwogCXJl dHVybiByb290OwogfQogCkBAIC01NSw3ICs1Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0 ZW1fdHlwZSBzeXNmc19mc190eXBlID0gewogCS5uYW1lCQk9ICJzeXNmcyIsCiAJLm1vdW50CQk9 IHN5c2ZzX21vdW50LAogCS5raWxsX3NiCT0gc3lzZnNfa2lsbF9zYiwKLQkuZnNfZmxhZ3MJPSBG U19VU0VSTlNfVklTSUJMRSB8IEZTX1VTRVJOU19NT1VOVCwKKwkuZnNfZmxhZ3MJPSBGU19VU0VS TlNfVklTSUJMRSB8IEZTX1VTRVJOU19NT1VOVCB8IEZTX05PRVhFQywKIH07CiAKIGludCBfX2lu aXQgc3lzZnNfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9ibGtkZXYuaCBi L2luY2x1ZGUvbGludXgvYmxrZGV2LmgKaW5kZXggZDE5ZDk5NjQ4MmFiLi4yZWMxM2JjNGRlYjMg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvYmxrZGV2LmgKKysrIGIvaW5jbHVkZS9saW51eC9i bGtkZXYuaApAQCAtNjIwLDcgKzYyMCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxdWV1ZV9mbGFn X2NsZWFyKHVuc2lnbmVkIGludCBmbGFnLCBzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSkKIAogI2Rl ZmluZSBsaXN0X2VudHJ5X3JxKHB0cikJbGlzdF9lbnRyeSgocHRyKSwgc3RydWN0IHJlcXVlc3Qs IHF1ZXVlbGlzdCkKIAotI2RlZmluZSBycV9kYXRhX2RpcihycSkJCSgoKHJxKS0+Y21kX2ZsYWdz ICYgMSkgIT0gMCkKKyNkZWZpbmUgcnFfZGF0YV9kaXIocnEpCQkoKGludCkoKHJxKS0+Y21kX2Zs YWdzICYgMSkpCiAKIC8qCiAgKiBEcml2ZXIgY2FuIGhhbmRsZSBzdHJ1Y3QgcmVxdWVzdCwgaWYg aXQgZWl0aGVyIGhhcyBhbiBvbGQgc3R5bGUKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvZnMu aCBiL2luY2x1ZGUvbGludXgvZnMuaAppbmRleCAzYjY5YTgyYmJkZDkuLmRhOTEyZTZjZDJlYSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9mcy5oCisrKyBiL2luY2x1ZGUvbGludXgvZnMuaApA QCAtMTc2Nyw2ICsxNzY3LDcgQEAgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgewogI2RlZmluZSBG U19VU0VSTlNfTU9VTlQJCTgJLyogQ2FuIGJlIG1vdW50ZWQgYnkgdXNlcm5zIHJvb3QgKi8KICNk ZWZpbmUgRlNfVVNFUk5TX0RFVl9NT1VOVAkxNiAvKiBBIHVzZXJucyBtb3VudCBkb2VzIG5vdCBp bXBseSBNTlRfTk9ERVYgKi8KICNkZWZpbmUgRlNfVVNFUk5TX1ZJU0lCTEUJMzIJLyogRlMgbXVz dCBhbHJlYWR5IGJlIHZpc2libGUgKi8KKyNkZWZpbmUgRlNfTk9FWEVDCQk2NAkvKiBJZ25vcmUg ZXhlY3V0YWJsZXMgb24gdGhpcyBmcyAqLwogI2RlZmluZSBGU19SRU5BTUVfRE9FU19EX01PVkUJ MzI3NjgJLyogRlMgd2lsbCBoYW5kbGUgZF9tb3ZlKCkgZHVyaW5nIHJlbmFtZSgpIGludGVybmFs bHkuICovCiAJc3RydWN0IGRlbnRyeSAqKCptb3VudCkgKHN0cnVjdCBmaWxlX3N5c3RlbV90eXBl ICosIGludCwKIAkJICAgICAgIGNvbnN0IGNoYXIgKiwgdm9pZCAqKTsKQEAgLTI3ODIsNCArMjc4 Myw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBkaXJfcmVsYXgoc3RydWN0IGlub2RlICppbm9kZSkK IAlyZXR1cm4gIUlTX0RFQURESVIoaW5vZGUpOwogfQogCitleHRlcm4gYm9vbCBwYXRoX25vZXhl Yyhjb25zdCBzdHJ1Y3QgcGF0aCAqcGF0aCk7CisKICNlbmRpZiAvKiBfTElOVVhfRlNfSCAqLwpk aWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldGxpbmsuaCBiL2luY2x1ZGUvdWFwaS9s aW51eC9uZXRsaW5rLmgKaW5kZXggMWE4NTk0MGY4YWI3Li44YTgxMzVjNGU5OWEgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRsaW5rLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4 L25ldGxpbmsuaApAQCAtMTA2LDggKzEwNiwxMCBAQCBzdHJ1Y3Qgbmxtc2dlcnIgewogI2RlZmlu ZSBORVRMSU5LX1BLVElORk8JCTMKICNkZWZpbmUgTkVUTElOS19CUk9BRENBU1RfRVJST1IJNAog I2RlZmluZSBORVRMSU5LX05PX0VOT0JVRlMJNQorI2lmbmRlZiBfX0tFUk5FTF9fCiAjZGVmaW5l IE5FVExJTktfUlhfUklORwkJNgogI2RlZmluZSBORVRMSU5LX1RYX1JJTkcJCTcKKyNlbmRpZgog CiBzdHJ1Y3QgbmxfcGt0aW5mbyB7CiAJX191MzIJZ3JvdXA7CkBAIC0xMzAsNiArMTMyLDcgQEAg c3RydWN0IG5sX21tYXBfaGRyIHsKIAlfX3UzMgkJbm1fZ2lkOwogfTsKIAorI2lmbmRlZiBfX0tF Uk5FTF9fCiBlbnVtIG5sX21tYXBfc3RhdHVzIHsKIAlOTF9NTUFQX1NUQVRVU19VTlVTRUQsCiAJ TkxfTU1BUF9TVEFUVVNfUkVTRVJWRUQsCkBAIC0xNDEsNiArMTQ0LDcgQEAgZW51bSBubF9tbWFw X3N0YXR1cyB7CiAjZGVmaW5lIE5MX01NQVBfTVNHX0FMSUdOTUVOVAkJTkxNU0dfQUxJR05UTwog I2RlZmluZSBOTF9NTUFQX01TR19BTElHTihzeikJCV9fQUxJR05fS0VSTkVMKHN6LCBOTF9NTUFQ X01TR19BTElHTk1FTlQpCiAjZGVmaW5lIE5MX01NQVBfSERSTEVOCQkJTkxfTU1BUF9NU0dfQUxJ R04oc2l6ZW9mKHN0cnVjdCBubF9tbWFwX2hkcikpCisjZW5kaWYKIAogI2RlZmluZSBORVRfTUFK T1IgMzYJCS8qIE1ham9yIDM2IGlzIHJlc2VydmVkIGZvciBuZXR3b3JraW5nIAkJCQkJCSovCiAK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9uZXRsaW5rX2RpYWcuaCBiL2luY2x1ZGUv dWFwaS9saW51eC9uZXRsaW5rX2RpYWcuaAppbmRleCBmMjE1OWQzMGQxZjUuLmQ3OTM5OTM5NGI0 NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L25ldGxpbmtfZGlhZy5oCisrKyBiL2lu Y2x1ZGUvdWFwaS9saW51eC9uZXRsaW5rX2RpYWcuaApAQCAtNDgsNiArNDgsOCBAQCBlbnVtIHsK IAogI2RlZmluZSBORElBR19TSE9XX01FTUlORk8JMHgwMDAwMDAwMSAvKiBzaG93IG1lbW9yeSBp bmZvIG9mIGEgc29ja2V0ICovCiAjZGVmaW5lIE5ESUFHX1NIT1dfR1JPVVBTCTB4MDAwMDAwMDIg Lyogc2hvdyBncm91cHMgb2YgYSBuZXRsaW5rIHNvY2tldCAqLworI2lmbmRlZiBfX0tFUk5FTF9f CiAjZGVmaW5lIE5ESUFHX1NIT1dfUklOR19DRkcJMHgwMDAwMDAwNCAvKiBzaG93IHJpbmcgY29u ZmlndXJhdGlvbiAqLworI2VuZGlmCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEva2VybmVsL3Bhbmlj LmMgYi9rZXJuZWwvcGFuaWMuYwppbmRleCA1MTI2NjUyMWUxNzMuLjRkZTk4OGMyYWFlYyAxMDA2 NDQKLS0tIGEva2VybmVsL3BhbmljLmMKKysrIGIva2VybmVsL3BhbmljLmMKQEAgLTYwLDYgKzYw LDMyIEBAIHZvaWQgX193ZWFrIHBhbmljX3NtcF9zZWxmX3N0b3Aodm9pZCkKIAkJY3B1X3JlbGF4 KCk7CiB9CiAKKy8qCisgKiBTdG9wIG90aGVyIENQVXMgaW4gcGFuaWMuICBBcmNoaXRlY3R1cmUg ZGVwZW5kZW50IGNvZGUgbWF5IG92ZXJyaWRlIHRoaXMKKyAqIHdpdGggbW9yZSBzdWl0YWJsZSB2 ZXJzaW9uLiAgRm9yIGV4YW1wbGUsIGlmIHRoZSBhcmNoaXRlY3R1cmUgc3VwcG9ydHMKKyAqIGNy YXNoIGR1bXAsIGl0IHNob3VsZCBzYXZlIHJlZ2lzdGVycyBvZiBlYWNoIHN0b3BwZWQgQ1BVIGFu ZCBkaXNhYmxlCisgKiBwZXItQ1BVIGZlYXR1cmVzIHN1Y2ggYXMgdmlydHVhbGl6YXRpb24gZXh0 ZW5zaW9ucy4KKyAqLwordm9pZCBfX3dlYWsgY3Jhc2hfc21wX3NlbmRfc3RvcCh2b2lkKQorewor CXN0YXRpYyBpbnQgY3B1c19zdG9wcGVkOworCisJLyoKKwkgKiBUaGlzIGZ1bmN0aW9uIGNhbiBi ZSBjYWxsZWQgdHdpY2UgaW4gcGFuaWMgcGF0aCwgYnV0IG9idmlvdXNseQorCSAqIHdlIGV4ZWN1 dGUgdGhpcyBvbmx5IG9uY2UuCisJICovCisJaWYgKGNwdXNfc3RvcHBlZCkKKwkJcmV0dXJuOwor CisJLyoKKwkgKiBOb3RlIHNtcF9zZW5kX3N0b3AgaXMgdGhlIHVzdWFsIHNtcCBzaHV0ZG93biBm dW5jdGlvbiwgd2hpY2gKKwkgKiB1bmZvcnR1bmF0ZWx5IG1lYW5zIGl0IG1heSBub3QgYmUgaGFy ZGVuZWQgdG8gd29yayBpbiBhIHBhbmljCisJICogc2l0dWF0aW9uLgorCSAqLworCXNtcF9zZW5k X3N0b3AoKTsKKwljcHVzX3N0b3BwZWQgPSAxOworfQorCiAvKioKICAqCXBhbmljIC0gaGFsdCB0 aGUgc3lzdGVtCiAgKglAZm10OiBUaGUgdGV4dCBzdHJpbmcgdG8gcHJpbnQKQEAgLTExNywxNSAr MTQzLDIzIEBAIHZvaWQgcGFuaWMoY29uc3QgY2hhciAqZm10LCAuLi4pCiAJICogSWYgd2Ugd2Fu dCB0byBydW4gdGhpcyBhZnRlciBjYWxsaW5nIHBhbmljX25vdGlmaWVycywgcGFzcwogCSAqIHRo ZSAiY3Jhc2hfa2V4ZWNfcG9zdF9ub3RpZmllcnMiIG9wdGlvbiB0byB0aGUga2VybmVsLgogCSAq LwotCWlmICghY3Jhc2hfa2V4ZWNfcG9zdF9ub3RpZmllcnMpCisJaWYgKCFjcmFzaF9rZXhlY19w b3N0X25vdGlmaWVycykgewogCQljcmFzaF9rZXhlYyhOVUxMKTsKIAotCS8qCi0JICogTm90ZSBz bXBfc2VuZF9zdG9wIGlzIHRoZSB1c3VhbCBzbXAgc2h1dGRvd24gZnVuY3Rpb24sIHdoaWNoCi0J ICogdW5mb3J0dW5hdGVseSBtZWFucyBpdCBtYXkgbm90IGJlIGhhcmRlbmVkIHRvIHdvcmsgaW4g YSBwYW5pYwotCSAqIHNpdHVhdGlvbi4KLQkgKi8KLQlzbXBfc2VuZF9zdG9wKCk7CisJCS8qCisJ CSAqIE5vdGUgc21wX3NlbmRfc3RvcCBpcyB0aGUgdXN1YWwgc21wIHNodXRkb3duIGZ1bmN0aW9u LCB3aGljaAorCQkgKiB1bmZvcnR1bmF0ZWx5IG1lYW5zIGl0IG1heSBub3QgYmUgaGFyZGVuZWQg dG8gd29yayBpbiBhCisJCSAqIHBhbmljIHNpdHVhdGlvbi4KKwkJICovCisJCXNtcF9zZW5kX3N0 b3AoKTsKKwl9IGVsc2UgeworCQkvKgorCQkgKiBJZiB3ZSB3YW50IHRvIGRvIGNyYXNoIGR1bXAg YWZ0ZXIgbm90aWZpZXIgY2FsbHMgYW5kCisJCSAqIGttc2dfZHVtcCwgd2Ugd2lsbCBuZWVkIGFy Y2hpdGVjdHVyZSBkZXBlbmRlbnQgZXh0cmEKKwkJICogd29ya3MgaW4gYWRkaXRpb24gdG8gc3Rv cHBpbmcgb3RoZXIgQ1BVcy4KKwkJICovCisJCWNyYXNoX3NtcF9zZW5kX3N0b3AoKTsKKwl9CiAK IAkvKgogCSAqIFJ1biBhbnkgcGFuaWMgaGFuZGxlcnMsIGluY2x1ZGluZyB0aG9zZSB0aGF0IG1p Z2h0IG5lZWQgdG8KZGlmZiAtLWdpdCBhL2tlcm5lbC9zeXMuYyBiL2tlcm5lbC9zeXMuYwppbmRl eCA2NmE3NTFlYmY5ZDkuLjZmZTZjNTk4NmM1OSAxMDA2NDQKLS0tIGEva2VybmVsL3N5cy5jCisr KyBiL2tlcm5lbC9zeXMuYwpAQCAtMTY0Niw4ICsxNjQ2LDcgQEAgc3RhdGljIGludCBwcmN0bF9z ZXRfbW1fZXhlX2ZpbGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGludCBmZCkKIAkg KiBvdmVyYWxsIHBpY3R1cmUuCiAJICovCiAJZXJyID0gLUVBQ0NFUzsKLQlpZiAoIVNfSVNSRUco aW5vZGUtPmlfbW9kZSkJfHwKLQkgICAgZXhlLmZpbGUtPmZfcGF0aC5tbnQtPm1udF9mbGFncyAm IE1OVF9OT0VYRUMpCisJaWYgKCFTX0lTUkVHKGlub2RlLT5pX21vZGUpIHx8IHBhdGhfbm9leGVj KCZleGUuZmlsZS0+Zl9wYXRoKSkKIAkJZ290byBleGl0OwogCiAJZXJyID0gaW5vZGVfcGVybWlz c2lvbihpbm9kZSwgTUFZX0VYRUMpOwpkaWZmIC0tZ2l0IGEvbW0vbW1hcC5jIGIvbW0vbW1hcC5j CmluZGV4IDI4NTlhMWNiMzc4YS4uYjQ5NjQxOTAxMDkzIDEwMDY0NAotLS0gYS9tbS9tbWFwLmMK KysrIGIvbW0vbW1hcC5jCkBAIC0xMjUwLDcgKzEyNTAsNyBAQCB1bnNpZ25lZCBsb25nIGRvX21t YXBfcGdvZmYoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxvbmcgYWRkciwKIAkgKiAgbW91 bnRlZCwgaW4gd2hpY2ggY2FzZSB3ZSBkb250IGFkZCBQUk9UX0VYRUMuKQogCSAqLwogCWlmICgo cHJvdCAmIFBST1RfUkVBRCkgJiYgKGN1cnJlbnQtPnBlcnNvbmFsaXR5ICYgUkVBRF9JTVBMSUVT X0VYRUMpKQotCQlpZiAoIShmaWxlICYmIChmaWxlLT5mX3BhdGgubW50LT5tbnRfZmxhZ3MgJiBN TlRfTk9FWEVDKSkpCisJCWlmICghKGZpbGUgJiYgcGF0aF9ub2V4ZWMoJmZpbGUtPmZfcGF0aCkp KQogCQkJcHJvdCB8PSBQUk9UX0VYRUM7CiAKIAlpZiAoIWxlbikKQEAgLTEzMjIsNyArMTMyMiw3 IEBAIHVuc2lnbmVkIGxvbmcgZG9fbW1hcF9wZ29mZihzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWdu ZWQgbG9uZyBhZGRyLAogCQljYXNlIE1BUF9QUklWQVRFOgogCQkJaWYgKCEoZmlsZS0+Zl9tb2Rl ICYgRk1PREVfUkVBRCkpCiAJCQkJcmV0dXJuIC1FQUNDRVM7Ci0JCQlpZiAoZmlsZS0+Zl9wYXRo Lm1udC0+bW50X2ZsYWdzICYgTU5UX05PRVhFQykgeworCQkJaWYgKHBhdGhfbm9leGVjKCZmaWxl LT5mX3BhdGgpKSB7CiAJCQkJaWYgKHZtX2ZsYWdzICYgVk1fRVhFQykKIAkJCQkJcmV0dXJuIC1F UEVSTTsKIAkJCQl2bV9mbGFncyAmPSB+Vk1fTUFZRVhFQzsKZGlmZiAtLWdpdCBhL21tL25vbW11 LmMgYi9tbS9ub21tdS5jCmluZGV4IDI5OTFiMDc0YWVhZS4uNTNhNTlmNDFlMmU1IDEwMDY0NAot LS0gYS9tbS9ub21tdS5jCisrKyBiL21tL25vbW11LmMKQEAgLTEwNDMsNyArMTA0Myw3IEBAIHN0 YXRpYyBpbnQgdmFsaWRhdGVfbW1hcF9yZXF1ZXN0KHN0cnVjdCBmaWxlICpmaWxlLAogCiAJCS8q IGhhbmRsZSBleGVjdXRhYmxlIG1hcHBpbmdzIGFuZCBpbXBsaWVkIGV4ZWN1dGFibGUKIAkJICog bWFwcGluZ3MgKi8KLQkJaWYgKGZpbGUtPmZfcGF0aC5tbnQtPm1udF9mbGFncyAmIE1OVF9OT0VY RUMpIHsKKwkJaWYgKHBhdGhfbm9leGVjKCZmaWxlLT5mX3BhdGgpKSB7CiAJCQlpZiAocHJvdCAm IFBST1RfRVhFQykKIAkJCQlyZXR1cm4gLUVQRVJNOwogCQl9IGVsc2UgaWYgKChwcm90ICYgUFJP VF9SRUFEKSAmJiAhKHByb3QgJiBQUk9UX0VYRUMpKSB7CmRpZmYgLS1naXQgYS9uZXQvbmV0bGlu ay9LY29uZmlnIGIvbmV0L25ldGxpbmsvS2NvbmZpZwppbmRleCAyYzVlOTVlOWJmYmQuLjVkNmU4 YzA1YjNkNCAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvS2NvbmZpZworKysgYi9uZXQvbmV0bGlu ay9LY29uZmlnCkBAIC0yLDE1ICsyLDYgQEAKICMgTmV0bGluayBTb2NrZXRzCiAjCiAKLWNvbmZp ZyBORVRMSU5LX01NQVAKLQlib29sICJORVRMSU5LOiBtbWFwZWQgSU8iCi0JLS0taGVscC0tLQot CSAgVGhpcyBvcHRpb24gZW5hYmxlcyBzdXBwb3J0IGZvciBtZW1vcnkgbWFwcGVkIG5ldGxpbmsg SU8uIFRoaXMKLQkgIHJlZHVjZXMgb3ZlcmhlYWQgYnkgYXZvaWRpbmcgY29weWluZyBkYXRhIGJl dHdlZW4ga2VybmVsLSBhbmQKLQkgIHVzZXJzcGFjZS4KLQotCSAgSWYgdW5zdXJlLCBzYXkgTi4K LQogY29uZmlnIE5FVExJTktfRElBRwogCXRyaXN0YXRlICJORVRMSU5LOiBzb2NrZXQgbW9uaXRv cmluZyBpbnRlcmZhY2UiCiAJZGVmYXVsdCBuCmRpZmYgLS1naXQgYS9uZXQvbmV0bGluay9hZl9u ZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKaW5kZXggMzgxYjAwNGM4NTdhLi4z YmYwYzE2MDIzZWMgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYworKysgYi9u ZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgaW50IF9f bmV0bGlua19kZWxpdmVyX3RhcF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAogCWRldl9ob2xk KGRldik7CiAKLQlpZiAobmV0bGlua19za2JfaXNfbW1hcGVkKHNrYikgfHwgaXNfdm1hbGxvY19h ZGRyKHNrYi0+aGVhZCkpCisJaWYgKGlzX3ZtYWxsb2NfYWRkcihza2ItPmhlYWQpKQogCQluc2ti ID0gbmV0bGlua190b19mdWxsX3NrYihza2IsIEdGUF9BVE9NSUMpOwogCWVsc2UKIAkJbnNrYiA9 IHNrYl9jbG9uZShza2IsIEdGUF9BVE9NSUMpOwpAQCAtMjkyLDU5OSArMjkyLDggQEAgc3RhdGlj IHZvaWQgbmV0bGlua19yY3Zfd2FrZShzdHJ1Y3Qgc29jayAqc2spCiAJCXdha2VfdXBfaW50ZXJy dXB0aWJsZSgmbmxrLT53YWl0KTsKIH0KIAotI2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAKLXN0 YXRpYyBib29sIG5ldGxpbmtfcnhfaXNfbW1hcGVkKHN0cnVjdCBzb2NrICpzaykKLXsKLQlyZXR1 cm4gbmxrX3NrKHNrKS0+cnhfcmluZy5wZ192ZWMgIT0gTlVMTDsKLX0KLQotc3RhdGljIGJvb2wg bmV0bGlua190eF9pc19tbWFwZWQoc3RydWN0IHNvY2sgKnNrKQotewotCXJldHVybiBubGtfc2so c2spLT50eF9yaW5nLnBnX3ZlYyAhPSBOVUxMOwotfQotCi1zdGF0aWMgX19wdXJlIHN0cnVjdCBw YWdlICpwZ3ZlY190b19wYWdlKGNvbnN0IHZvaWQgKmFkZHIpCi17Ci0JaWYgKGlzX3ZtYWxsb2Nf YWRkcihhZGRyKSkKLQkJcmV0dXJuIHZtYWxsb2NfdG9fcGFnZShhZGRyKTsKLQllbHNlCi0JCXJl dHVybiB2aXJ0X3RvX3BhZ2UoYWRkcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGZyZWVfcGdfdmVjKHZv aWQgKipwZ192ZWMsIHVuc2lnbmVkIGludCBvcmRlciwgdW5zaWduZWQgaW50IGxlbikKLXsKLQl1 bnNpZ25lZCBpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgewotCQlpZiAocGdf dmVjW2ldICE9IE5VTEwpIHsKLQkJCWlmIChpc192bWFsbG9jX2FkZHIocGdfdmVjW2ldKSkKLQkJ CQl2ZnJlZShwZ192ZWNbaV0pOwotCQkJZWxzZQotCQkJCWZyZWVfcGFnZXMoKHVuc2lnbmVkIGxv bmcpcGdfdmVjW2ldLCBvcmRlcik7Ci0JCX0KLQl9Ci0Ja2ZyZWUocGdfdmVjKTsKLX0KLQotc3Rh dGljIHZvaWQgKmFsbG9jX29uZV9wZ192ZWNfcGFnZSh1bnNpZ25lZCBsb25nIG9yZGVyKQotewot CXZvaWQgKmJ1ZmZlcjsKLQlnZnBfdCBnZnBfZmxhZ3MgPSBHRlBfS0VSTkVMIHwgX19HRlBfQ09N UCB8IF9fR0ZQX1pFUk8gfAotCQkJICBfX0dGUF9OT1dBUk4gfCBfX0dGUF9OT1JFVFJZOwotCi0J YnVmZmVyID0gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2VzKGdmcF9mbGFncywgb3JkZXIpOwotCWlm IChidWZmZXIgIT0gTlVMTCkKLQkJcmV0dXJuIGJ1ZmZlcjsKLQotCWJ1ZmZlciA9IHZ6YWxsb2Mo KDEgPDwgb3JkZXIpICogUEFHRV9TSVpFKTsKLQlpZiAoYnVmZmVyICE9IE5VTEwpCi0JCXJldHVy biBidWZmZXI7Ci0KLQlnZnBfZmxhZ3MgJj0gfl9fR0ZQX05PUkVUUlk7Ci0JcmV0dXJuICh2b2lk ICopX19nZXRfZnJlZV9wYWdlcyhnZnBfZmxhZ3MsIG9yZGVyKTsKLX0KLQotc3RhdGljIHZvaWQg KiphbGxvY19wZ192ZWMoc3RydWN0IG5ldGxpbmtfc29jayAqbmxrLAotCQkJICAgc3RydWN0IG5s X21tYXBfcmVxICpyZXEsIHVuc2lnbmVkIGludCBvcmRlcikKLXsKLQl1bnNpZ25lZCBpbnQgYmxv Y2tfbnIgPSByZXEtPm5tX2Jsb2NrX25yOwotCXVuc2lnbmVkIGludCBpOwotCXZvaWQgKipwZ192 ZWM7Ci0KLQlwZ192ZWMgPSBrY2FsbG9jKGJsb2NrX25yLCBzaXplb2Yodm9pZCAqKSwgR0ZQX0tF Uk5FTCk7Ci0JaWYgKHBnX3ZlYyA9PSBOVUxMKQotCQlyZXR1cm4gTlVMTDsKLQotCWZvciAoaSA9 IDA7IGkgPCBibG9ja19ucjsgaSsrKSB7Ci0JCXBnX3ZlY1tpXSA9IGFsbG9jX29uZV9wZ192ZWNf cGFnZShvcmRlcik7Ci0JCWlmIChwZ192ZWNbaV0gPT0gTlVMTCkKLQkJCWdvdG8gZXJyMTsKLQl9 Ci0KLQlyZXR1cm4gcGdfdmVjOwotZXJyMToKLQlmcmVlX3BnX3ZlYyhwZ192ZWMsIG9yZGVyLCBi bG9ja19ucik7Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLQotc3RhdGljIHZvaWQKLV9fbmV0bGlua19z ZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBubF9tbWFwX3JlcSAqcmVxLCBib29sIHR4 X3JpbmcsIHZvaWQgKipwZ192ZWMsCi0JCSAgIHVuc2lnbmVkIGludCBvcmRlcikKLXsKLQlzdHJ1 Y3QgbmV0bGlua19zb2NrICpubGsgPSBubGtfc2soc2spOwotCXN0cnVjdCBza19idWZmX2hlYWQg KnF1ZXVlOwotCXN0cnVjdCBuZXRsaW5rX3JpbmcgKnJpbmc7Ci0KLQlxdWV1ZSA9IHR4X3Jpbmcg PyAmc2stPnNrX3dyaXRlX3F1ZXVlIDogJnNrLT5za19yZWNlaXZlX3F1ZXVlOwotCXJpbmcgID0g dHhfcmluZyA/ICZubGstPnR4X3JpbmcgOiAmbmxrLT5yeF9yaW5nOwotCi0Jc3Bpbl9sb2NrX2Jo KCZxdWV1ZS0+bG9jayk7Ci0KLQlyaW5nLT5mcmFtZV9tYXgJCT0gcmVxLT5ubV9mcmFtZV9uciAt IDE7Ci0JcmluZy0+aGVhZAkJPSAwOwotCXJpbmctPmZyYW1lX3NpemUJPSByZXEtPm5tX2ZyYW1l X3NpemU7Ci0JcmluZy0+cGdfdmVjX3BhZ2VzCT0gcmVxLT5ubV9ibG9ja19zaXplIC8gUEFHRV9T SVpFOwotCi0Jc3dhcChyaW5nLT5wZ192ZWNfbGVuLCByZXEtPm5tX2Jsb2NrX25yKTsKLQlzd2Fw KHJpbmctPnBnX3ZlY19vcmRlciwgb3JkZXIpOwotCXN3YXAocmluZy0+cGdfdmVjLCBwZ192ZWMp OwotCi0JX19za2JfcXVldWVfcHVyZ2UocXVldWUpOwotCXNwaW5fdW5sb2NrX2JoKCZxdWV1ZS0+ bG9jayk7Ci0KLQlXQVJOX09OKGF0b21pY19yZWFkKCZubGstPm1hcHBlZCkpOwotCi0JaWYgKHBn X3ZlYykKLQkJZnJlZV9wZ192ZWMocGdfdmVjLCBvcmRlciwgcmVxLT5ubV9ibG9ja19ucik7Ci19 Ci0KLXN0YXRpYyBpbnQgbmV0bGlua19zZXRfcmluZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBu bF9tbWFwX3JlcSAqcmVxLAotCQkJICAgIGJvb2wgdHhfcmluZykKLXsKLQlzdHJ1Y3QgbmV0bGlu a19zb2NrICpubGsgPSBubGtfc2soc2spOwotCXN0cnVjdCBuZXRsaW5rX3JpbmcgKnJpbmc7Ci0J dm9pZCAqKnBnX3ZlYyA9IE5VTEw7Ci0JdW5zaWduZWQgaW50IG9yZGVyID0gMDsKLQotCXJpbmcg ID0gdHhfcmluZyA/ICZubGstPnR4X3JpbmcgOiAmbmxrLT5yeF9yaW5nOwotCi0JaWYgKGF0b21p Y19yZWFkKCZubGstPm1hcHBlZCkpCi0JCXJldHVybiAtRUJVU1k7Ci0JaWYgKGF0b21pY19yZWFk KCZyaW5nLT5wZW5kaW5nKSkKLQkJcmV0dXJuIC1FQlVTWTsKLQotCWlmIChyZXEtPm5tX2Jsb2Nr X25yKSB7Ci0JCWlmIChyaW5nLT5wZ192ZWMgIT0gTlVMTCkKLQkJCXJldHVybiAtRUJVU1k7Ci0K LQkJaWYgKChpbnQpcmVxLT5ubV9ibG9ja19zaXplIDw9IDApCi0JCQlyZXR1cm4gLUVJTlZBTDsK LQkJaWYgKCFJU19BTElHTkVEKHJlcS0+bm1fYmxvY2tfc2l6ZSwgUEFHRV9TSVpFKSkKLQkJCXJl dHVybiAtRUlOVkFMOwotCQlpZiAocmVxLT5ubV9mcmFtZV9zaXplIDwgTkxfTU1BUF9IRFJMRU4p Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJaWYgKCFJU19BTElHTkVEKHJlcS0+bm1fZnJhbWVfc2l6 ZSwgTkxfTU1BUF9NU0dfQUxJR05NRU5UKSkKLQkJCXJldHVybiAtRUlOVkFMOwotCi0JCXJpbmct PmZyYW1lc19wZXJfYmxvY2sgPSByZXEtPm5tX2Jsb2NrX3NpemUgLwotCQkJCQkgcmVxLT5ubV9m cmFtZV9zaXplOwotCQlpZiAocmluZy0+ZnJhbWVzX3Blcl9ibG9jayA9PSAwKQotCQkJcmV0dXJu IC1FSU5WQUw7Ci0JCWlmIChyaW5nLT5mcmFtZXNfcGVyX2Jsb2NrICogcmVxLT5ubV9ibG9ja19u ciAhPQotCQkgICAgcmVxLT5ubV9mcmFtZV9ucikKLQkJCXJldHVybiAtRUlOVkFMOwotCi0JCW9y ZGVyID0gZ2V0X29yZGVyKHJlcS0+bm1fYmxvY2tfc2l6ZSk7Ci0JCXBnX3ZlYyA9IGFsbG9jX3Bn X3ZlYyhubGssIHJlcSwgb3JkZXIpOwotCQlpZiAocGdfdmVjID09IE5VTEwpCi0JCQlyZXR1cm4g LUVOT01FTTsKLQl9IGVsc2UgewotCQlpZiAocmVxLT5ubV9mcmFtZV9ucikKLQkJCXJldHVybiAt RUlOVkFMOwotCX0KLQotCW11dGV4X2xvY2soJm5say0+cGdfdmVjX2xvY2spOwotCWlmIChhdG9t aWNfcmVhZCgmbmxrLT5tYXBwZWQpID09IDApIHsKLQkJX19uZXRsaW5rX3NldF9yaW5nKHNrLCBy ZXEsIHR4X3JpbmcsIHBnX3ZlYywgb3JkZXIpOwotCQltdXRleF91bmxvY2soJm5say0+cGdfdmVj X2xvY2spOwotCQlyZXR1cm4gMDsKLQl9Ci0KLQltdXRleF91bmxvY2soJm5say0+cGdfdmVjX2xv Y2spOwotCi0JaWYgKHBnX3ZlYykKLQkJZnJlZV9wZ192ZWMocGdfdmVjLCBvcmRlciwgcmVxLT5u bV9ibG9ja19ucik7Ci0KLQlyZXR1cm4gLUVCVVNZOwotfQotCi1zdGF0aWMgdm9pZCBuZXRsaW5r X21tX29wZW4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCi17Ci0Jc3RydWN0IGZpbGUgKmZp bGUgPSB2bWEtPnZtX2ZpbGU7Ci0Jc3RydWN0IHNvY2tldCAqc29jayA9IGZpbGUtPnByaXZhdGVf ZGF0YTsKLQlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsKLQotCWlmIChzaykKLQkJYXRvbWlj X2luYygmbmxrX3NrKHNrKS0+bWFwcGVkKTsKLX0KLQotc3RhdGljIHZvaWQgbmV0bGlua19tbV9j bG9zZShzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKLXsKLQlzdHJ1Y3QgZmlsZSAqZmlsZSA9 IHZtYS0+dm1fZmlsZTsKLQlzdHJ1Y3Qgc29ja2V0ICpzb2NrID0gZmlsZS0+cHJpdmF0ZV9kYXRh OwotCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOwotCi0JaWYgKHNrKQotCQlhdG9taWNfZGVj KCZubGtfc2soc2spLT5tYXBwZWQpOwotfQotCi1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJh dGlvbnNfc3RydWN0IG5ldGxpbmtfbW1hcF9vcHMgPSB7Ci0JLm9wZW4JPSBuZXRsaW5rX21tX29w ZW4sCi0JLmNsb3NlCT0gbmV0bGlua19tbV9jbG9zZSwKLX07Ci0KLXN0YXRpYyBpbnQgbmV0bGlu a19tbWFwKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAotCQkJc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEpCi17Ci0Jc3RydWN0IHNvY2sgKnNrID0gc29jay0+c2s7Ci0J c3RydWN0IG5ldGxpbmtfc29jayAqbmxrID0gbmxrX3NrKHNrKTsKLQlzdHJ1Y3QgbmV0bGlua19y aW5nICpyaW5nOwotCXVuc2lnbmVkIGxvbmcgc3RhcnQsIHNpemUsIGV4cGVjdGVkOwotCXVuc2ln bmVkIGludCBpOwotCWludCBlcnIgPSAtRUlOVkFMOwotCi0JaWYgKHZtYS0+dm1fcGdvZmYpCi0J CXJldHVybiAtRUlOVkFMOwotCi0JbXV0ZXhfbG9jaygmbmxrLT5wZ192ZWNfbG9jayk7Ci0KLQll eHBlY3RlZCA9IDA7Ci0JZm9yIChyaW5nID0gJm5say0+cnhfcmluZzsgcmluZyA8PSAmbmxrLT50 eF9yaW5nOyByaW5nKyspIHsKLQkJaWYgKHJpbmctPnBnX3ZlYyA9PSBOVUxMKQotCQkJY29udGlu dWU7Ci0JCWV4cGVjdGVkICs9IHJpbmctPnBnX3ZlY19sZW4gKiByaW5nLT5wZ192ZWNfcGFnZXMg KiBQQUdFX1NJWkU7Ci0JfQotCi0JaWYgKGV4cGVjdGVkID09IDApCi0JCWdvdG8gb3V0OwotCi0J c2l6ZSA9IHZtYS0+dm1fZW5kIC0gdm1hLT52bV9zdGFydDsKLQlpZiAoc2l6ZSAhPSBleHBlY3Rl ZCkKLQkJZ290byBvdXQ7Ci0KLQlzdGFydCA9IHZtYS0+dm1fc3RhcnQ7Ci0JZm9yIChyaW5nID0g Jm5say0+cnhfcmluZzsgcmluZyA8PSAmbmxrLT50eF9yaW5nOyByaW5nKyspIHsKLQkJaWYgKHJp bmctPnBnX3ZlYyA9PSBOVUxMKQotCQkJY29udGludWU7Ci0KLQkJZm9yIChpID0gMDsgaSA8IHJp bmctPnBnX3ZlY19sZW47IGkrKykgewotCQkJc3RydWN0IHBhZ2UgKnBhZ2U7Ci0JCQl2b2lkICpr YWRkciA9IHJpbmctPnBnX3ZlY1tpXTsKLQkJCXVuc2lnbmVkIGludCBwZ19udW07Ci0KLQkJCWZv ciAocGdfbnVtID0gMDsgcGdfbnVtIDwgcmluZy0+cGdfdmVjX3BhZ2VzOyBwZ19udW0rKykgewot CQkJCXBhZ2UgPSBwZ3ZlY190b19wYWdlKGthZGRyKTsKLQkJCQllcnIgPSB2bV9pbnNlcnRfcGFn ZSh2bWEsIHN0YXJ0LCBwYWdlKTsKLQkJCQlpZiAoZXJyIDwgMCkKLQkJCQkJZ290byBvdXQ7Ci0J CQkJc3RhcnQgKz0gUEFHRV9TSVpFOwotCQkJCWthZGRyICs9IFBBR0VfU0laRTsKLQkJCX0KLQkJ fQotCX0KLQotCWF0b21pY19pbmMoJm5say0+bWFwcGVkKTsKLQl2bWEtPnZtX29wcyA9ICZuZXRs aW5rX21tYXBfb3BzOwotCWVyciA9IDA7Ci1vdXQ6Ci0JbXV0ZXhfdW5sb2NrKCZubGstPnBnX3Zl Y19sb2NrKTsKLQlyZXR1cm4gZXJyOwotfQotCi1zdGF0aWMgdm9pZCBuZXRsaW5rX2ZyYW1lX2Zs dXNoX2RjYWNoZShjb25zdCBzdHJ1Y3QgbmxfbW1hcF9oZHIgKmhkciwgdW5zaWduZWQgaW50IG5t X2xlbikKLXsKLSNpZiBBUkNIX0lNUExFTUVOVFNfRkxVU0hfRENBQ0hFX1BBR0UgPT0gMQotCXN0 cnVjdCBwYWdlICpwX3N0YXJ0LCAqcF9lbmQ7Ci0KLQkvKiBGaXJzdCBwYWdlIGlzIGZsdXNoZWQg dGhyb3VnaCBuZXRsaW5rX3tnZXQsc2V0fV9zdGF0dXMgKi8KLQlwX3N0YXJ0ID0gcGd2ZWNfdG9f cGFnZShoZHIgKyBQQUdFX1NJWkUpOwotCXBfZW5kICAgPSBwZ3ZlY190b19wYWdlKCh2b2lkICop aGRyICsgTkxfTU1BUF9IRFJMRU4gKyBubV9sZW4gLSAxKTsKLQl3aGlsZSAocF9zdGFydCA8PSBw X2VuZCkgewotCQlmbHVzaF9kY2FjaGVfcGFnZShwX3N0YXJ0KTsKLQkJcF9zdGFydCsrOwotCX0K LSNlbmRpZgotfQotCi1zdGF0aWMgZW51bSBubF9tbWFwX3N0YXR1cyBuZXRsaW5rX2dldF9zdGF0 dXMoY29uc3Qgc3RydWN0IG5sX21tYXBfaGRyICpoZHIpCi17Ci0Jc21wX3JtYigpOwotCWZsdXNo X2RjYWNoZV9wYWdlKHBndmVjX3RvX3BhZ2UoaGRyKSk7Ci0JcmV0dXJuIGhkci0+bm1fc3RhdHVz OwotfQotCi1zdGF0aWMgdm9pZCBuZXRsaW5rX3NldF9zdGF0dXMoc3RydWN0IG5sX21tYXBfaGRy ICpoZHIsCi0JCQkgICAgICAgZW51bSBubF9tbWFwX3N0YXR1cyBzdGF0dXMpCi17Ci0Jc21wX21i KCk7Ci0JaGRyLT5ubV9zdGF0dXMgPSBzdGF0dXM7Ci0JZmx1c2hfZGNhY2hlX3BhZ2UocGd2ZWNf dG9fcGFnZShoZHIpKTsKLX0KLQotc3RhdGljIHN0cnVjdCBubF9tbWFwX2hkciAqCi1fX25ldGxp bmtfbG9va3VwX2ZyYW1lKGNvbnN0IHN0cnVjdCBuZXRsaW5rX3JpbmcgKnJpbmcsIHVuc2lnbmVk IGludCBwb3MpCi17Ci0JdW5zaWduZWQgaW50IHBnX3ZlY19wb3MsIGZyYW1lX29mZjsKLQotCXBn X3ZlY19wb3MgPSBwb3MgLyByaW5nLT5mcmFtZXNfcGVyX2Jsb2NrOwotCWZyYW1lX29mZiAgPSBw b3MgJSByaW5nLT5mcmFtZXNfcGVyX2Jsb2NrOwotCi0JcmV0dXJuIHJpbmctPnBnX3ZlY1twZ192 ZWNfcG9zXSArIChmcmFtZV9vZmYgKiByaW5nLT5mcmFtZV9zaXplKTsKLX0KLQotc3RhdGljIHN0 cnVjdCBubF9tbWFwX2hkciAqCi1uZXRsaW5rX2xvb2t1cF9mcmFtZShjb25zdCBzdHJ1Y3QgbmV0 bGlua19yaW5nICpyaW5nLCB1bnNpZ25lZCBpbnQgcG9zLAotCQkgICAgIGVudW0gbmxfbW1hcF9z dGF0dXMgc3RhdHVzKQotewotCXN0cnVjdCBubF9tbWFwX2hkciAqaGRyOwotCi0JaGRyID0gX19u ZXRsaW5rX2xvb2t1cF9mcmFtZShyaW5nLCBwb3MpOwotCWlmIChuZXRsaW5rX2dldF9zdGF0dXMo aGRyKSAhPSBzdGF0dXMpCi0JCXJldHVybiBOVUxMOwotCi0JcmV0dXJuIGhkcjsKLX0KLQotc3Rh dGljIHN0cnVjdCBubF9tbWFwX2hkciAqCi1uZXRsaW5rX2N1cnJlbnRfZnJhbWUoY29uc3Qgc3Ry dWN0IG5ldGxpbmtfcmluZyAqcmluZywKLQkJICAgICAgZW51bSBubF9tbWFwX3N0YXR1cyBzdGF0 dXMpCi17Ci0JcmV0dXJuIG5ldGxpbmtfbG9va3VwX2ZyYW1lKHJpbmcsIHJpbmctPmhlYWQsIHN0 YXR1cyk7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgbmxfbW1hcF9oZHIgKgotbmV0bGlua19wcmV2aW91 c19mcmFtZShjb25zdCBzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nLAotCQkgICAgICAgZW51bSBu bF9tbWFwX3N0YXR1cyBzdGF0dXMpCi17Ci0JdW5zaWduZWQgaW50IHByZXY7Ci0KLQlwcmV2ID0g cmluZy0+aGVhZCA/IHJpbmctPmhlYWQgLSAxIDogcmluZy0+ZnJhbWVfbWF4OwotCXJldHVybiBu ZXRsaW5rX2xvb2t1cF9mcmFtZShyaW5nLCBwcmV2LCBzdGF0dXMpOwotfQotCi1zdGF0aWMgdm9p ZCBuZXRsaW5rX2luY3JlbWVudF9oZWFkKHN0cnVjdCBuZXRsaW5rX3JpbmcgKnJpbmcpCi17Ci0J cmluZy0+aGVhZCA9IHJpbmctPmhlYWQgIT0gcmluZy0+ZnJhbWVfbWF4ID8gcmluZy0+aGVhZCAr IDEgOiAwOwotfQotCi1zdGF0aWMgdm9pZCBuZXRsaW5rX2ZvcndhcmRfcmluZyhzdHJ1Y3QgbmV0 bGlua19yaW5nICpyaW5nKQotewotCXVuc2lnbmVkIGludCBoZWFkID0gcmluZy0+aGVhZCwgcG9z ID0gaGVhZDsKLQljb25zdCBzdHJ1Y3QgbmxfbW1hcF9oZHIgKmhkcjsKLQotCWRvIHsKLQkJaGRy ID0gX19uZXRsaW5rX2xvb2t1cF9mcmFtZShyaW5nLCBwb3MpOwotCQlpZiAoaGRyLT5ubV9zdGF0 dXMgPT0gTkxfTU1BUF9TVEFUVVNfVU5VU0VEKQotCQkJYnJlYWs7Ci0JCWlmIChoZHItPm5tX3N0 YXR1cyAhPSBOTF9NTUFQX1NUQVRVU19TS0lQKQotCQkJYnJlYWs7Ci0JCW5ldGxpbmtfaW5jcmVt ZW50X2hlYWQocmluZyk7Ci0JfSB3aGlsZSAocmluZy0+aGVhZCAhPSBoZWFkKTsKLX0KLQotc3Rh dGljIGJvb2wgbmV0bGlua19kdW1wX3NwYWNlKHN0cnVjdCBuZXRsaW5rX3NvY2sgKm5saykKLXsK LQlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nID0gJm5say0+cnhfcmluZzsKLQlzdHJ1Y3Qgbmxf bW1hcF9oZHIgKmhkcjsKLQl1bnNpZ25lZCBpbnQgbjsKLQotCWhkciA9IG5ldGxpbmtfY3VycmVu dF9mcmFtZShyaW5nLCBOTF9NTUFQX1NUQVRVU19VTlVTRUQpOwotCWlmIChoZHIgPT0gTlVMTCkK LQkJcmV0dXJuIGZhbHNlOwotCi0JbiA9IHJpbmctPmhlYWQgKyByaW5nLT5mcmFtZV9tYXggLyAy OwotCWlmIChuID4gcmluZy0+ZnJhbWVfbWF4KQotCQluIC09IHJpbmctPmZyYW1lX21heDsKLQot CWhkciA9IF9fbmV0bGlua19sb29rdXBfZnJhbWUocmluZywgbik7Ci0KLQlyZXR1cm4gaGRyLT5u bV9zdGF0dXMgPT0gTkxfTU1BUF9TVEFUVVNfVU5VU0VEOwotfQotCi1zdGF0aWMgdW5zaWduZWQg aW50IG5ldGxpbmtfcG9sbChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHNvY2tldCAqc29jaywK LQkJCQkgcG9sbF90YWJsZSAqd2FpdCkKLXsKLQlzdHJ1Y3Qgc29jayAqc2sgPSBzb2NrLT5zazsK LQlzdHJ1Y3QgbmV0bGlua19zb2NrICpubGsgPSBubGtfc2soc2spOwotCXVuc2lnbmVkIGludCBt YXNrOwotCWludCBlcnI7Ci0KLQlpZiAobmxrLT5yeF9yaW5nLnBnX3ZlYyAhPSBOVUxMKSB7Ci0J CS8qIE1lbW9yeSBtYXBwZWQgc29ja2V0cyBkb24ndCBjYWxsIHJlY3Ztc2coKSwgc28gZmxvdyBj b250cm9sCi0JCSAqIGZvciBkdW1wcyBpcyBwZXJmb3JtZWQgaGVyZS4gQSBkdW1wIGlzIGFsbG93 ZWQgdG8gY29udGludWUKLQkJICogaWYgYXQgbGVhc3QgaGFsZiB0aGUgcmluZyBpcyB1bnVzZWQu Ci0JCSAqLwotCQl3aGlsZSAobmxrLT5jYl9ydW5uaW5nICYmIG5ldGxpbmtfZHVtcF9zcGFjZShu bGspKSB7Ci0JCQllcnIgPSBuZXRsaW5rX2R1bXAoc2spOwotCQkJaWYgKGVyciA8IDApIHsKLQkJ CQlzay0+c2tfZXJyID0gLWVycjsKLQkJCQlzay0+c2tfZXJyb3JfcmVwb3J0KHNrKTsKLQkJCQli cmVhazsKLQkJCX0KLQkJfQotCQluZXRsaW5rX3Jjdl93YWtlKHNrKTsKLQl9Ci0KLQltYXNrID0g ZGF0YWdyYW1fcG9sbChmaWxlLCBzb2NrLCB3YWl0KTsKLQotCXNwaW5fbG9ja19iaCgmc2stPnNr X3JlY2VpdmVfcXVldWUubG9jayk7Ci0JaWYgKG5say0+cnhfcmluZy5wZ192ZWMpIHsKLQkJbmV0 bGlua19mb3J3YXJkX3JpbmcoJm5say0+cnhfcmluZyk7Ci0JCWlmICghbmV0bGlua19wcmV2aW91 c19mcmFtZSgmbmxrLT5yeF9yaW5nLCBOTF9NTUFQX1NUQVRVU19VTlVTRUQpKQotCQkJbWFzayB8 PSBQT0xMSU4gfCBQT0xMUkROT1JNOwotCX0KLQlzcGluX3VubG9ja19iaCgmc2stPnNrX3JlY2Vp dmVfcXVldWUubG9jayk7Ci0KLQlzcGluX2xvY2tfYmgoJnNrLT5za193cml0ZV9xdWV1ZS5sb2Nr KTsKLQlpZiAobmxrLT50eF9yaW5nLnBnX3ZlYykgewotCQlpZiAobmV0bGlua19jdXJyZW50X2Zy YW1lKCZubGstPnR4X3JpbmcsIE5MX01NQVBfU1RBVFVTX1VOVVNFRCkpCi0JCQltYXNrIHw9IFBP TExPVVQgfCBQT0xMV1JOT1JNOwotCX0KLQlzcGluX3VubG9ja19iaCgmc2stPnNrX3dyaXRlX3F1 ZXVlLmxvY2spOwotCi0JcmV0dXJuIG1hc2s7Ci19Ci0KLXN0YXRpYyBzdHJ1Y3QgbmxfbW1hcF9o ZHIgKm5ldGxpbmtfbW1hcF9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYikKLXsKLQlyZXR1cm4gKHN0 cnVjdCBubF9tbWFwX2hkciAqKShza2ItPmhlYWQgLSBOTF9NTUFQX0hEUkxFTik7Ci19Ci0KLXN0 YXRpYyB2b2lkIG5ldGxpbmtfcmluZ19zZXR1cF9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3Ry dWN0IHNvY2sgKnNrLAotCQkJCSAgIHN0cnVjdCBuZXRsaW5rX3JpbmcgKnJpbmcsCi0JCQkJICAg c3RydWN0IG5sX21tYXBfaGRyICpoZHIpCi17Ci0JdW5zaWduZWQgaW50IHNpemU7Ci0Jdm9pZCAq ZGF0YTsKLQotCXNpemUgPSByaW5nLT5mcmFtZV9zaXplIC0gTkxfTU1BUF9IRFJMRU47Ci0JZGF0 YSA9ICh2b2lkICopaGRyICsgTkxfTU1BUF9IRFJMRU47Ci0KLQlza2ItPmhlYWQJPSBkYXRhOwot CXNrYi0+ZGF0YQk9IGRhdGE7Ci0Jc2tiX3Jlc2V0X3RhaWxfcG9pbnRlcihza2IpOwotCXNrYi0+ ZW5kCT0gc2tiLT50YWlsICsgc2l6ZTsKLQlza2ItPmxlbgk9IDA7Ci0KLQlza2ItPmRlc3RydWN0 b3IJPSBuZXRsaW5rX3NrYl9kZXN0cnVjdG9yOwotCU5FVExJTktfQ0Ioc2tiKS5mbGFncyB8PSBO RVRMSU5LX1NLQl9NTUFQRUQ7Ci0JTkVUTElOS19DQihza2IpLnNrID0gc2s7Ci19Ci0KLXN0YXRp YyBpbnQgbmV0bGlua19tbWFwX3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRy ICptc2csCi0JCQkJdTMyIGRzdF9wb3J0aWQsIHUzMiBkc3RfZ3JvdXAsCi0JCQkJc3RydWN0IHNv Y2tfaW9jYiAqc2lvY2IpCi17Ci0Jc3RydWN0IG5ldGxpbmtfc29jayAqbmxrID0gbmxrX3NrKHNr KTsKLQlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOwotCXN0cnVjdCBubF9tbWFwX2hkciAqaGRy OwotCXN0cnVjdCBza19idWZmICpza2I7Ci0JdW5zaWduZWQgaW50IG1heGxlbjsKLQlpbnQgZXJy ID0gMCwgbGVuID0gMDsKLQotCW11dGV4X2xvY2soJm5say0+cGdfdmVjX2xvY2spOwotCi0Jcmlu ZyAgID0gJm5say0+dHhfcmluZzsKLQltYXhsZW4gPSByaW5nLT5mcmFtZV9zaXplIC0gTkxfTU1B UF9IRFJMRU47Ci0KLQlkbyB7Ci0JCXVuc2lnbmVkIGludCBubV9sZW47Ci0KLQkJaGRyID0gbmV0 bGlua19jdXJyZW50X2ZyYW1lKHJpbmcsIE5MX01NQVBfU1RBVFVTX1ZBTElEKTsKLQkJaWYgKGhk ciA9PSBOVUxMKSB7Ci0JCQlpZiAoIShtc2ctPm1zZ19mbGFncyAmIE1TR19ET05UV0FJVCkgJiYK LQkJCSAgICBhdG9taWNfcmVhZCgmbmxrLT50eF9yaW5nLnBlbmRpbmcpKQotCQkJCXNjaGVkdWxl KCk7Ci0JCQljb250aW51ZTsKLQkJfQotCi0JCW5tX2xlbiA9IEFDQ0VTU19PTkNFKGhkci0+bm1f bGVuKTsKLQkJaWYgKG5tX2xlbiA+IG1heGxlbikgewotCQkJZXJyID0gLUVJTlZBTDsKLQkJCWdv dG8gb3V0OwotCQl9Ci0KLQkJbmV0bGlua19mcmFtZV9mbHVzaF9kY2FjaGUoaGRyLCBubV9sZW4p OwotCi0JCXNrYiA9IGFsbG9jX3NrYihubV9sZW4sIEdGUF9LRVJORUwpOwotCQlpZiAoc2tiID09 IE5VTEwpIHsKLQkJCWVyciA9IC1FTk9CVUZTOwotCQkJZ290byBvdXQ7Ci0JCX0KLQkJX19za2Jf cHV0KHNrYiwgbm1fbGVuKTsKLQkJbWVtY3B5KHNrYi0+ZGF0YSwgKHZvaWQgKiloZHIgKyBOTF9N TUFQX0hEUkxFTiwgbm1fbGVuKTsKLQkJbmV0bGlua19zZXRfc3RhdHVzKGhkciwgTkxfTU1BUF9T VEFUVVNfVU5VU0VEKTsKLQotCQluZXRsaW5rX2luY3JlbWVudF9oZWFkKHJpbmcpOwotCi0JCU5F VExJTktfQ0Ioc2tiKS5wb3J0aWQJICA9IG5say0+cG9ydGlkOwotCQlORVRMSU5LX0NCKHNrYiku ZHN0X2dyb3VwID0gZHN0X2dyb3VwOwotCQlORVRMSU5LX0NCKHNrYikuY3JlZHMJICA9IHNpb2Ni LT5zY20tPmNyZWRzOwotCi0JCWVyciA9IHNlY3VyaXR5X25ldGxpbmtfc2VuZChzaywgc2tiKTsK LQkJaWYgKGVycikgewotCQkJa2ZyZWVfc2tiKHNrYik7Ci0JCQlnb3RvIG91dDsKLQkJfQotCi0J CWlmICh1bmxpa2VseShkc3RfZ3JvdXApKSB7Ci0JCQlhdG9taWNfaW5jKCZza2ItPnVzZXJzKTsK LQkJCW5ldGxpbmtfYnJvYWRjYXN0KHNrLCBza2IsIGRzdF9wb3J0aWQsIGRzdF9ncm91cCwKLQkJ CQkJICBHRlBfS0VSTkVMKTsKLQkJfQotCQllcnIgPSBuZXRsaW5rX3VuaWNhc3Qoc2ssIHNrYiwg ZHN0X3BvcnRpZCwKLQkJCQkgICAgICBtc2ctPm1zZ19mbGFncyAmIE1TR19ET05UV0FJVCk7Ci0J CWlmIChlcnIgPCAwKQotCQkJZ290byBvdXQ7Ci0JCWxlbiArPSBlcnI7Ci0KLQl9IHdoaWxlICho ZHIgIT0gTlVMTCB8fAotCQkgKCEobXNnLT5tc2dfZmxhZ3MgJiBNU0dfRE9OVFdBSVQpICYmCi0J CSAgYXRvbWljX3JlYWQoJm5say0+dHhfcmluZy5wZW5kaW5nKSkpOwotCi0JaWYgKGxlbiA+IDAp Ci0JCWVyciA9IGxlbjsKLW91dDoKLQltdXRleF91bmxvY2soJm5say0+cGdfdmVjX2xvY2spOwot CXJldHVybiBlcnI7Ci19Ci0KLXN0YXRpYyB2b2lkIG5ldGxpbmtfcXVldWVfbW1hcGVkX3NrYihz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCi17Ci0Jc3RydWN0IG5sX21tYXBf aGRyICpoZHI7Ci0KLQloZHIgPSBuZXRsaW5rX21tYXBfaGRyKHNrYik7Ci0JaGRyLT5ubV9sZW4J PSBza2ItPmxlbjsKLQloZHItPm5tX2dyb3VwCT0gTkVUTElOS19DQihza2IpLmRzdF9ncm91cDsK LQloZHItPm5tX3BpZAk9IE5FVExJTktfQ0Ioc2tiKS5jcmVkcy5waWQ7Ci0JaGRyLT5ubV91aWQJ PSBmcm9tX2t1aWQoc2tfdXNlcl9ucyhzayksIE5FVExJTktfQ0Ioc2tiKS5jcmVkcy51aWQpOwot CWhkci0+bm1fZ2lkCT0gZnJvbV9rZ2lkKHNrX3VzZXJfbnMoc2spLCBORVRMSU5LX0NCKHNrYiku Y3JlZHMuZ2lkKTsKLQluZXRsaW5rX2ZyYW1lX2ZsdXNoX2RjYWNoZShoZHIsIGhkci0+bm1fbGVu KTsKLQluZXRsaW5rX3NldF9zdGF0dXMoaGRyLCBOTF9NTUFQX1NUQVRVU19WQUxJRCk7Ci0KLQlO RVRMSU5LX0NCKHNrYikuZmxhZ3MgfD0gTkVUTElOS19TS0JfREVMSVZFUkVEOwotCWtmcmVlX3Nr Yihza2IpOwotfQotCi1zdGF0aWMgdm9pZCBuZXRsaW5rX3Jpbmdfc2V0X2NvcGllZChzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCi17Ci0Jc3RydWN0IG5ldGxpbmtfc29jayAq bmxrID0gbmxrX3NrKHNrKTsKLQlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nID0gJm5say0+cnhf cmluZzsKLQlzdHJ1Y3QgbmxfbW1hcF9oZHIgKmhkcjsKLQotCXNwaW5fbG9ja19iaCgmc2stPnNr X3JlY2VpdmVfcXVldWUubG9jayk7Ci0JaGRyID0gbmV0bGlua19jdXJyZW50X2ZyYW1lKHJpbmcs IE5MX01NQVBfU1RBVFVTX1VOVVNFRCk7Ci0JaWYgKGhkciA9PSBOVUxMKSB7Ci0JCXNwaW5fdW5s b2NrX2JoKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZS5sb2NrKTsKLQkJa2ZyZWVfc2tiKHNrYik7Ci0J CW5ldGxpbmtfb3ZlcnJ1bihzayk7Ci0JCXJldHVybjsKLQl9Ci0JbmV0bGlua19pbmNyZW1lbnRf aGVhZChyaW5nKTsKLQlfX3NrYl9xdWV1ZV90YWlsKCZzay0+c2tfcmVjZWl2ZV9xdWV1ZSwgc2ti KTsKLQlzcGluX3VubG9ja19iaCgmc2stPnNrX3JlY2VpdmVfcXVldWUubG9jayk7Ci0KLQloZHIt Pm5tX2xlbgk9IHNrYi0+bGVuOwotCWhkci0+bm1fZ3JvdXAJPSBORVRMSU5LX0NCKHNrYikuZHN0 X2dyb3VwOwotCWhkci0+bm1fcGlkCT0gTkVUTElOS19DQihza2IpLmNyZWRzLnBpZDsKLQloZHIt Pm5tX3VpZAk9IGZyb21fa3VpZChza191c2VyX25zKHNrKSwgTkVUTElOS19DQihza2IpLmNyZWRz LnVpZCk7Ci0JaGRyLT5ubV9naWQJPSBmcm9tX2tnaWQoc2tfdXNlcl9ucyhzayksIE5FVExJTktf Q0Ioc2tiKS5jcmVkcy5naWQpOwotCW5ldGxpbmtfc2V0X3N0YXR1cyhoZHIsIE5MX01NQVBfU1RB VFVTX0NPUFkpOwotfQotCi0jZWxzZSAvKiBDT05GSUdfTkVUTElOS19NTUFQICovCi0jZGVmaW5l IG5ldGxpbmtfcnhfaXNfbW1hcGVkKHNrKQlmYWxzZQotI2RlZmluZSBuZXRsaW5rX3R4X2lzX21t YXBlZChzaykJZmFsc2UKLSNkZWZpbmUgbmV0bGlua19tbWFwCQkJc29ja19ub19tbWFwCi0jZGVm aW5lIG5ldGxpbmtfcG9sbAkJCWRhdGFncmFtX3BvbGwKLSNkZWZpbmUgbmV0bGlua19tbWFwX3Nl bmRtc2coc2ssIG1zZywgZHN0X3BvcnRpZCwgZHN0X2dyb3VwLCBzaW9jYikJMAotI2VuZGlmIC8q IENPTkZJR19ORVRMSU5LX01NQVAgKi8KLQogc3RhdGljIHZvaWQgbmV0bGlua19za2JfZGVzdHJ1 Y3RvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewotI2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAK LQlzdHJ1Y3QgbmxfbW1hcF9oZHIgKmhkcjsKLQlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOwot CXN0cnVjdCBzb2NrICpzazsKLQotCS8qIElmIGEgcGFja2V0IGZyb20gdGhlIGtlcm5lbCB0byB1 c2Vyc3BhY2Ugd2FzIGZyZWVkIGJlY2F1c2Ugb2YgYW4KLQkgKiBlcnJvciB3aXRob3V0IGJlaW5n IGRlbGl2ZXJlZCB0byB1c2Vyc3BhY2UsIHRoZSBrZXJuZWwgbXVzdCByZXNldAotCSAqIHRoZSBz dGF0dXMuIEluIHRoZSBkaXJlY3Rpb24gdXNlcnNwYWNlIHRvIGtlcm5lbCwgdGhlIHN0YXR1cyBp cwotCSAqIGFsd2F5cyByZXNldCBoZXJlIGFmdGVyIHRoZSBwYWNrZXQgd2FzIHByb2Nlc3NlZCBh bmQgZnJlZWQuCi0JICovCi0JaWYgKG5ldGxpbmtfc2tiX2lzX21tYXBlZChza2IpKSB7Ci0JCWhk ciA9IG5ldGxpbmtfbW1hcF9oZHIoc2tiKTsKLQkJc2sgPSBORVRMSU5LX0NCKHNrYikuc2s7Ci0K LQkJaWYgKE5FVExJTktfQ0Ioc2tiKS5mbGFncyAmIE5FVExJTktfU0tCX1RYKSB7Ci0JCQluZXRs aW5rX3NldF9zdGF0dXMoaGRyLCBOTF9NTUFQX1NUQVRVU19VTlVTRUQpOwotCQkJcmluZyA9ICZu bGtfc2soc2spLT50eF9yaW5nOwotCQl9IGVsc2UgewotCQkJaWYgKCEoTkVUTElOS19DQihza2Ip LmZsYWdzICYgTkVUTElOS19TS0JfREVMSVZFUkVEKSkgewotCQkJCWhkci0+bm1fbGVuID0gMDsK LQkJCQluZXRsaW5rX3NldF9zdGF0dXMoaGRyLCBOTF9NTUFQX1NUQVRVU19WQUxJRCk7Ci0JCQl9 Ci0JCQlyaW5nID0gJm5sa19zayhzayktPnJ4X3Jpbmc7Ci0JCX0KLQotCQlXQVJOX09OKGF0b21p Y19yZWFkKCZyaW5nLT5wZW5kaW5nKSA9PSAwKTsKLQkJYXRvbWljX2RlYygmcmluZy0+cGVuZGlu Zyk7Ci0JCXNvY2tfcHV0KHNrKTsKLQotCQlza2ItPmhlYWQgPSBOVUxMOwotCX0KLSNlbmRpZgog CWlmIChpc192bWFsbG9jX2FkZHIoc2tiLT5oZWFkKSkgewogCQlpZiAoIXNrYi0+Y2xvbmVkIHx8 CiAJCSAgICAhYXRvbWljX2RlY19yZXR1cm4oJihza2Jfc2hpbmZvKHNrYiktPmRhdGFyZWYpKSkK QEAgLTkxOCwxOCArMzI3LDYgQEAgc3RhdGljIHZvaWQgbmV0bGlua19zb2NrX2Rlc3RydWN0KHN0 cnVjdCBzb2NrICpzaykKIAl9CiAKIAlza2JfcXVldWVfcHVyZ2UoJnNrLT5za19yZWNlaXZlX3F1 ZXVlKTsKLSNpZmRlZiBDT05GSUdfTkVUTElOS19NTUFQCi0JaWYgKDEpIHsKLQkJc3RydWN0IG5s X21tYXBfcmVxIHJlcTsKLQotCQltZW1zZXQoJnJlcSwgMCwgc2l6ZW9mKHJlcSkpOwotCQlpZiAo bmxrLT5yeF9yaW5nLnBnX3ZlYykKLQkJCV9fbmV0bGlua19zZXRfcmluZyhzaywgJnJlcSwgZmFs c2UsIE5VTEwsIDApOwotCQltZW1zZXQoJnJlcSwgMCwgc2l6ZW9mKHJlcSkpOwotCQlpZiAobmxr LT50eF9yaW5nLnBnX3ZlYykKLQkJCV9fbmV0bGlua19zZXRfcmluZyhzaywgJnJlcSwgdHJ1ZSwg TlVMTCwgMCk7Ci0JfQotI2VuZGlmIC8qIENPTkZJR19ORVRMSU5LX01NQVAgKi8KIAogCWlmICgh c29ja19mbGFnKHNrLCBTT0NLX0RFQUQpKSB7CiAJCXByaW50ayhLRVJOX0VSUiAiRnJlZWluZyBh bGl2ZSBuZXRsaW5rIHNvY2tldCAlcFxuIiwgc2spOwpAQCAtMTIwMiw5ICs1OTksNiBAQCBzdGF0 aWMgaW50IF9fbmV0bGlua19jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29ja2V0ICpz b2NrLAogCQltdXRleF9pbml0KG5say0+Y2JfbXV0ZXgpOwogCX0KIAlpbml0X3dhaXRxdWV1ZV9o ZWFkKCZubGstPndhaXQpOwotI2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAKLQltdXRleF9pbml0 KCZubGstPnBnX3ZlY19sb2NrKTsKLSNlbmRpZgogCiAJc2stPnNrX2Rlc3RydWN0ID0gbmV0bGlu a19zb2NrX2Rlc3RydWN0OwogCXNrLT5za19wcm90b2NvbCA9IHByb3RvY29sOwpAQCAtMTcwOCw4 ICsxMTAyLDcgQEAgaW50IG5ldGxpbmtfYXR0YWNoc2tiKHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IHNrX2J1ZmYgKnNrYiwKIAlubGsgPSBubGtfc2soc2spOwogCiAJaWYgKChhdG9taWNfcmVhZCgm c2stPnNrX3JtZW1fYWxsb2MpID4gc2stPnNrX3JjdmJ1ZiB8fAotCSAgICAgdGVzdF9iaXQoTkVU TElOS19DT05HRVNURUQsICZubGstPnN0YXRlKSkgJiYKLQkgICAgIW5ldGxpbmtfc2tiX2lzX21t YXBlZChza2IpKSB7CisJICAgICB0ZXN0X2JpdChORVRMSU5LX0NPTkdFU1RFRCwgJm5say0+c3Rh dGUpKSkgewogCQlERUNMQVJFX1dBSVRRVUVVRSh3YWl0LCBjdXJyZW50KTsKIAkJaWYgKCEqdGlt ZW8pIHsKIAkJCWlmICghc3NrIHx8IG5ldGxpbmtfaXNfa2VybmVsKHNzaykpCkBAIC0xNzQ3LDE0 ICsxMTQwLDcgQEAgc3RhdGljIGludCBfX25ldGxpbmtfc2VuZHNrYihzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBza19idWZmICpza2IpCiAKIAluZXRsaW5rX2RlbGl2ZXJfdGFwKHNrYik7CiAKLSNp ZmRlZiBDT05GSUdfTkVUTElOS19NTUFQCi0JaWYgKG5ldGxpbmtfc2tiX2lzX21tYXBlZChza2Ip KQotCQluZXRsaW5rX3F1ZXVlX21tYXBlZF9za2Ioc2ssIHNrYik7Ci0JZWxzZSBpZiAobmV0bGlu a19yeF9pc19tbWFwZWQoc2spKQotCQluZXRsaW5rX3Jpbmdfc2V0X2NvcGllZChzaywgc2tiKTsK LQllbHNlCi0jZW5kaWYgLyogQ09ORklHX05FVExJTktfTU1BUCAqLwotCQlza2JfcXVldWVfdGFp bCgmc2stPnNrX3JlY2VpdmVfcXVldWUsIHNrYik7CisJc2tiX3F1ZXVlX3RhaWwoJnNrLT5za19y ZWNlaXZlX3F1ZXVlLCBza2IpOwogCXNrLT5za19kYXRhX3JlYWR5KHNrKTsKIAlyZXR1cm4gbGVu OwogfQpAQCAtMTc3OCw5ICsxMTY0LDYgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpuZXRsaW5r X3RyaW0oc3RydWN0IHNrX2J1ZmYgKnNrYiwgZ2ZwX3QgYWxsb2NhdGlvbikKIAlpbnQgZGVsdGE7 CiAKIAlXQVJOX09OKHNrYi0+c2sgIT0gTlVMTCk7Ci0JaWYgKG5ldGxpbmtfc2tiX2lzX21tYXBl ZChza2IpKQotCQlyZXR1cm4gc2tiOwotCiAJZGVsdGEgPSBza2ItPmVuZCAtIHNrYi0+dGFpbDsK IAlpZiAoaXNfdm1hbGxvY19hZGRyKHNrYi0+aGVhZCkgfHwgZGVsdGEgKiAyIDwgc2tiLT50cnVl c2l6ZSkKIAkJcmV0dXJuIHNrYjsKQEAgLTE4NjAsNzEgKzEyNDMsNiBAQCBzdHJ1Y3Qgc2tfYnVm ZiAqX19uZXRsaW5rX2FsbG9jX3NrYihzdHJ1Y3Qgc29jayAqc3NrLCB1bnNpZ25lZCBpbnQgc2l6 ZSwKIAkJCQkgICAgdW5zaWduZWQgaW50IGxkaWZmLCB1MzIgZHN0X3BvcnRpZCwKIAkJCQkgICAg Z2ZwX3QgZ2ZwX21hc2spCiB7Ci0jaWZkZWYgQ09ORklHX05FVExJTktfTU1BUAotCXVuc2lnbmVk IGludCBtYXhsZW4sIGxpbmVhcl9zaXplOwotCXN0cnVjdCBzb2NrICpzayA9IE5VTEw7Ci0Jc3Ry dWN0IHNrX2J1ZmYgKnNrYjsKLQlzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nOwotCXN0cnVjdCBu bF9tbWFwX2hkciAqaGRyOwotCi0Jc2sgPSBuZXRsaW5rX2dldHNvY2tieXBvcnRpZChzc2ssIGRz dF9wb3J0aWQpOwotCWlmIChJU19FUlIoc2spKQotCQlnb3RvIG91dDsKLQotCXJpbmcgPSAmbmxr X3NrKHNrKS0+cnhfcmluZzsKLQkvKiBmYXN0LXBhdGggd2l0aG91dCBhdG9taWMgb3BzIGZvciBj b21tb24gY2FzZTogbm9uLW1tYXBlZCByZWNlaXZlciAqLwotCWlmIChyaW5nLT5wZ192ZWMgPT0g TlVMTCkKLQkJZ290byBvdXRfcHV0OwotCi0JLyogV2UgbmVlZCB0byBhY2NvdW50IHRoZSBmdWxs IGxpbmVhciBzaXplIG5lZWRlZCBhcyBhIHJpbmcKLQkgKiBzbG90IGNhbm5vdCBoYXZlIG5vbi1s aW5lYXIgcGFydHMuCi0JICovCi0JbGluZWFyX3NpemUgPSBzaXplICsgbGRpZmY7Ci0JaWYgKHJp bmctPmZyYW1lX3NpemUgLSBOTF9NTUFQX0hEUkxFTiA8IGxpbmVhcl9zaXplKQotCQlnb3RvIG91 dF9wdXQ7Ci0KLQlza2IgPSBhbGxvY19za2JfaGVhZChnZnBfbWFzayk7Ci0JaWYgKHNrYiA9PSBO VUxMKQotCQlnb3RvIGVycjE7Ci0KLQlzcGluX2xvY2tfYmgoJnNrLT5za19yZWNlaXZlX3F1ZXVl LmxvY2spOwotCS8qIGNoZWNrIGFnYWluIHVuZGVyIGxvY2sgKi8KLQlpZiAocmluZy0+cGdfdmVj ID09IE5VTEwpCi0JCWdvdG8gb3V0X2ZyZWU7Ci0KLQkvKiBjaGVjayBhZ2FpbiB1bmRlciBsb2Nr ICovCi0JbWF4bGVuID0gcmluZy0+ZnJhbWVfc2l6ZSAtIE5MX01NQVBfSERSTEVOOwotCWlmICht YXhsZW4gPCBsaW5lYXJfc2l6ZSkKLQkJZ290byBvdXRfZnJlZTsKLQotCW5ldGxpbmtfZm9yd2Fy ZF9yaW5nKHJpbmcpOwotCWhkciA9IG5ldGxpbmtfY3VycmVudF9mcmFtZShyaW5nLCBOTF9NTUFQ X1NUQVRVU19VTlVTRUQpOwotCWlmIChoZHIgPT0gTlVMTCkKLQkJZ290byBlcnIyOwotCi0JbmV0 bGlua19yaW5nX3NldHVwX3NrYihza2IsIHNrLCByaW5nLCBoZHIpOwotCW5ldGxpbmtfc2V0X3N0 YXR1cyhoZHIsIE5MX01NQVBfU1RBVFVTX1JFU0VSVkVEKTsKLQlhdG9taWNfaW5jKCZyaW5nLT5w ZW5kaW5nKTsKLQluZXRsaW5rX2luY3JlbWVudF9oZWFkKHJpbmcpOwotCi0Jc3Bpbl91bmxvY2tf YmgoJnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2spOwotCXJldHVybiBza2I7Ci0KLWVycjI6Ci0J a2ZyZWVfc2tiKHNrYik7Ci0Jc3Bpbl91bmxvY2tfYmgoJnNrLT5za19yZWNlaXZlX3F1ZXVlLmxv Y2spOwotCW5ldGxpbmtfb3ZlcnJ1bihzayk7Ci1lcnIxOgotCXNvY2tfcHV0KHNrKTsKLQlyZXR1 cm4gTlVMTDsKLQotb3V0X2ZyZWU6Ci0Ja2ZyZWVfc2tiKHNrYik7Ci0Jc3Bpbl91bmxvY2tfYmgo JnNrLT5za19yZWNlaXZlX3F1ZXVlLmxvY2spOwotb3V0X3B1dDoKLQlzb2NrX3B1dChzayk7Ci1v dXQ6Ci0jZW5kaWYKIAlyZXR1cm4gYWxsb2Nfc2tiKHNpemUsIGdmcF9tYXNrKTsKIH0KIEVYUE9S VF9TWU1CT0xfR1BMKF9fbmV0bGlua19hbGxvY19za2IpOwpAQCAtMjE4OSw4ICsxNTA3LDcgQEAg c3RhdGljIGludCBuZXRsaW5rX3NldHNvY2tvcHQoc3RydWN0IHNvY2tldCAqc29jaywgaW50IGxl dmVsLCBpbnQgb3B0bmFtZSwKIAlpZiAobGV2ZWwgIT0gU09MX05FVExJTkspCiAJCXJldHVybiAt RU5PUFJPVE9PUFQ7CiAKLQlpZiAob3B0bmFtZSAhPSBORVRMSU5LX1JYX1JJTkcgJiYgb3B0bmFt ZSAhPSBORVRMSU5LX1RYX1JJTkcgJiYKLQkgICAgb3B0bGVuID49IHNpemVvZihpbnQpICYmCisJ aWYgKG9wdGxlbiA+PSBzaXplb2YoaW50KSAmJgogCSAgICBnZXRfdXNlcih2YWwsICh1bnNpZ25l ZCBpbnQgX191c2VyICopb3B0dmFsKSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKQEAgLTIyNDMsMjUg KzE1NjAsNiBAQCBzdGF0aWMgaW50IG5ldGxpbmtfc2V0c29ja29wdChzdHJ1Y3Qgc29ja2V0ICpz b2NrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogCQl9CiAJCWVyciA9IDA7CiAJCWJyZWFrOwot I2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAKLQljYXNlIE5FVExJTktfUlhfUklORzoKLQljYXNl IE5FVExJTktfVFhfUklORzogewotCQlzdHJ1Y3QgbmxfbW1hcF9yZXEgcmVxOwotCi0JCS8qIFJp bmdzIG1pZ2h0IGNvbnN1bWUgbW9yZSBtZW1vcnkgdGhhbiBxdWV1ZSBsaW1pdHMsIHJlcXVpcmUK LQkJICogQ0FQX05FVF9BRE1JTi4KLQkJICovCi0JCWlmICghY2FwYWJsZShDQVBfTkVUX0FETUlO KSkKLQkJCXJldHVybiAtRVBFUk07Ci0JCWlmIChvcHRsZW4gPCBzaXplb2YocmVxKSkKLQkJCXJl dHVybiAtRUlOVkFMOwotCQlpZiAoY29weV9mcm9tX3VzZXIoJnJlcSwgb3B0dmFsLCBzaXplb2Yo cmVxKSkpCi0JCQlyZXR1cm4gLUVGQVVMVDsKLQkJZXJyID0gbmV0bGlua19zZXRfcmluZyhzaywg JnJlcSwKLQkJCQkgICAgICAgb3B0bmFtZSA9PSBORVRMSU5LX1RYX1JJTkcpOwotCQlicmVhazsK LQl9Ci0jZW5kaWYgLyogQ09ORklHX05FVExJTktfTU1BUCAqLwogCWRlZmF1bHQ6CiAJCWVyciA9 IC1FTk9QUk9UT09QVDsKIAl9CkBAIC0yMzc0LDEzICsxNjcyLDYgQEAgc3RhdGljIGludCBuZXRs aW5rX3NlbmRtc2coc3RydWN0IGtpb2NiICpraW9jYiwgc3RydWN0IHNvY2tldCAqc29jaywKIAkJ CWdvdG8gb3V0OwogCX0KIAotCWlmIChuZXRsaW5rX3R4X2lzX21tYXBlZChzaykgJiYKLQkgICAg bXNnLT5tc2dfaW92LT5pb3ZfYmFzZSA9PSBOVUxMKSB7Ci0JCWVyciA9IG5ldGxpbmtfbW1hcF9z ZW5kbXNnKHNrLCBtc2csIGRzdF9wb3J0aWQsIGRzdF9ncm91cCwKLQkJCQkJICAgc2lvY2IpOwot CQlnb3RvIG91dDsKLQl9Ci0KIAllcnIgPSAtRU1TR1NJWkU7CiAJaWYgKGxlbiA+IHNrLT5za19z bmRidWYgLSAzMikKIAkJZ290byBvdXQ7CkBAIC0yNzA0LDggKzE5OTUsNyBAQCBzdGF0aWMgaW50 IG5ldGxpbmtfZHVtcChzdHJ1Y3Qgc29jayAqc2spCiAJCWdvdG8gZXJyb3V0X3NrYjsKIAl9CiAK LQlpZiAoIW5ldGxpbmtfcnhfaXNfbW1hcGVkKHNrKSAmJgotCSAgICBhdG9taWNfcmVhZCgmc2st PnNrX3JtZW1fYWxsb2MpID49IHNrLT5za19yY3ZidWYpCisJaWYgKGF0b21pY19yZWFkKCZzay0+ c2tfcm1lbV9hbGxvYykgPj0gc2stPnNrX3JjdmJ1ZikKIAkJZ290byBlcnJvdXRfc2tiOwogCiAJ LyogTkxNU0dfR09PRFNJWkUgaXMgc21hbGwgdG8gYXZvaWQgaGlnaCBvcmRlciBhbGxvY2F0aW9u cyBiZWluZwpAQCAtMjc0MCw4ICsyMDMwLDcgQEAgc3RhdGljIGludCBuZXRsaW5rX2R1bXAoc3Ry dWN0IHNvY2sgKnNrKQogCSAqIHJlYXNvbmFibGUgc3RhdGljIGJ1ZmZlciBiYXNlZCBvbiB0aGUg ZXhwZWN0ZWQgbGFyZ2VzdCBkdW1wIG9mIGEKIAkgKiBzaW5nbGUgbmV0ZGV2LiBUaGUgb3V0Y29t ZSBpcyBNU0dfVFJVTkMgZXJyb3IuCiAJICovCi0JaWYgKCFuZXRsaW5rX3J4X2lzX21tYXBlZChz aykpCi0JCXNrYl9yZXNlcnZlKHNrYiwgc2tiX3RhaWxyb29tKHNrYikgLSBhbGxvY19zaXplKTsK Kwlza2JfcmVzZXJ2ZShza2IsIHNrYl90YWlscm9vbShza2IpIC0gYWxsb2Nfc2l6ZSk7CiAJbmV0 bGlua19za2Jfc2V0X293bmVyX3Ioc2tiLCBzayk7CiAKIAlsZW4gPSBjYi0+ZHVtcChza2IsIGNi KTsKQEAgLTI3OTUsMTYgKzIwODQsNyBAQCBpbnQgX19uZXRsaW5rX2R1bXBfc3RhcnQoc3RydWN0 IHNvY2sgKnNzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlzdHJ1Y3QgbmV0bGlua19zb2NrICpu bGs7CiAJaW50IHJldDsKIAotCS8qIE1lbW9yeSBtYXBwZWQgZHVtcCByZXF1ZXN0cyBuZWVkIHRv IGJlIGNvcGllZCB0byBhdm9pZCBsb29waW5nCi0JICogb24gdGhlIHBlbmRpbmcgc3RhdGUgaW4g bmV0bGlua19tbWFwX3NlbmRtc2coKSB3aGlsZSB0aGUgQ0IgaG9sZAotCSAqIGEgcmVmZXJlbmNl IHRvIHRoZSBza2IuCi0JICovCi0JaWYgKG5ldGxpbmtfc2tiX2lzX21tYXBlZChza2IpKSB7Ci0J CXNrYiA9IHNrYl9jb3B5KHNrYiwgR0ZQX0tFUk5FTCk7Ci0JCWlmIChza2IgPT0gTlVMTCkKLQkJ CXJldHVybiAtRU5PQlVGUzsKLQl9IGVsc2UKLQkJYXRvbWljX2luYygmc2tiLT51c2Vycyk7CisJ YXRvbWljX2luYygmc2tiLT51c2Vycyk7CiAKIAlzayA9IG5ldGxpbmtfbG9va3VwKHNvY2tfbmV0 KHNzayksIHNzay0+c2tfcHJvdG9jb2wsIE5FVExJTktfQ0Ioc2tiKS5wb3J0aWQpOwogCWlmIChz ayA9PSBOVUxMKSB7CkBAIC0zMTQwLDcgKzI0MjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBy b3RvX29wcyBuZXRsaW5rX29wcyA9IHsKIAkuc29ja2V0cGFpciA9CXNvY2tfbm9fc29ja2V0cGFp ciwKIAkuYWNjZXB0ID0Jc29ja19ub19hY2NlcHQsCiAJLmdldG5hbWUgPQluZXRsaW5rX2dldG5h bWUsCi0JLnBvbGwgPQkJbmV0bGlua19wb2xsLAorCS5wb2xsID0JCWRhdGFncmFtX3BvbGwsCiAJ LmlvY3RsID0Jc29ja19ub19pb2N0bCwKIAkubGlzdGVuID0Jc29ja19ub19saXN0ZW4sCiAJLnNo dXRkb3duID0Jc29ja19ub19zaHV0ZG93biwKQEAgLTMxNDgsNyArMjQyOCw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgcHJvdG9fb3BzIG5ldGxpbmtfb3BzID0gewogCS5nZXRzb2Nrb3B0ID0JbmV0 bGlua19nZXRzb2Nrb3B0LAogCS5zZW5kbXNnID0JbmV0bGlua19zZW5kbXNnLAogCS5yZWN2bXNn ID0JbmV0bGlua19yZWN2bXNnLAotCS5tbWFwID0JCW5ldGxpbmtfbW1hcCwKKwkubW1hcCA9CQlz b2NrX25vX21tYXAsCiAJLnNlbmRwYWdlID0Jc29ja19ub19zZW5kcGFnZSwKIH07CiAKZGlmZiAt LWdpdCBhL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaCBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsu aAppbmRleCA0YjBhNWViMGM2YjQuLjNlNjk2NjM2ZTA3MCAxMDA2NDQKLS0tIGEvbmV0L25ldGxp bmsvYWZfbmV0bGluay5oCisrKyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuaApAQCAtNDEsMTIg KzQxLDYgQEAgc3RydWN0IG5ldGxpbmtfc29jayB7CiAJaW50CQkJKCpuZXRsaW5rX2JpbmQpKGlu dCBncm91cCk7CiAJdm9pZAkJCSgqbmV0bGlua191bmJpbmQpKGludCBncm91cCk7CiAJc3RydWN0 IG1vZHVsZQkJKm1vZHVsZTsKLSNpZmRlZiBDT05GSUdfTkVUTElOS19NTUFQCi0Jc3RydWN0IG11 dGV4CQlwZ192ZWNfbG9jazsKLQlzdHJ1Y3QgbmV0bGlua19yaW5nCXJ4X3Jpbmc7Ci0Jc3RydWN0 IG5ldGxpbmtfcmluZwl0eF9yaW5nOwotCWF0b21pY190CQltYXBwZWQ7Ci0jZW5kaWYgLyogQ09O RklHX05FVExJTktfTU1BUCAqLwogfTsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0bGlua19z b2NrICpubGtfc2soc3RydWN0IHNvY2sgKnNrKQpAQCAtNjcsMTUgKzYxLDYgQEAgc3RydWN0IG5s X3BvcnRpZF9oYXNoIHsKIAl1MzIJCQlybmQ7CiB9OwogCi1zdGF0aWMgaW5saW5lIGJvb2wgbmV0 bGlua19za2JfaXNfbW1hcGVkKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCi17Ci0jaWZkZWYg Q09ORklHX05FVExJTktfTU1BUAotCXJldHVybiBORVRMSU5LX0NCKHNrYikuZmxhZ3MgJiBORVRM SU5LX1NLQl9NTUFQRUQ7Ci0jZWxzZQotCXJldHVybiBmYWxzZTsKLSNlbmRpZiAvKiBDT05GSUdf TkVUTElOS19NTUFQICovCi19Ci0KIHN0cnVjdCBuZXRsaW5rX3RhYmxlIHsKIAlzdHJ1Y3Qgbmxf cG9ydGlkX2hhc2gJaGFzaDsKIAlzdHJ1Y3QgaGxpc3RfaGVhZAltY19saXN0OwpkaWZmIC0tZ2l0 IGEvbmV0L25ldGxpbmsvZGlhZy5jIGIvbmV0L25ldGxpbmsvZGlhZy5jCmluZGV4IDFhZjI5NjI0 YjkyZi4uNWZmYjFkMWNmNDAyIDEwMDY0NAotLS0gYS9uZXQvbmV0bGluay9kaWFnLmMKKysrIGIv bmV0L25ldGxpbmsvZGlhZy5jCkBAIC03LDQxICs3LDYgQEAKIAogI2luY2x1ZGUgImFmX25ldGxp bmsuaCIKIAotI2lmZGVmIENPTkZJR19ORVRMSU5LX01NQVAKLXN0YXRpYyBpbnQgc2tfZGlhZ19w dXRfcmluZyhzdHJ1Y3QgbmV0bGlua19yaW5nICpyaW5nLCBpbnQgbmxfdHlwZSwKLQkJCSAgICBz dHJ1Y3Qgc2tfYnVmZiAqbmxza2IpCi17Ci0Jc3RydWN0IG5ldGxpbmtfZGlhZ19yaW5nIG5kcjsK LQotCW5kci5uZHJfYmxvY2tfc2l6ZSA9IHJpbmctPnBnX3ZlY19wYWdlcyA8PCBQQUdFX1NISUZU OwotCW5kci5uZHJfYmxvY2tfbnIgICA9IHJpbmctPnBnX3ZlY19sZW47Ci0JbmRyLm5kcl9mcmFt ZV9zaXplID0gcmluZy0+ZnJhbWVfc2l6ZTsKLQluZHIubmRyX2ZyYW1lX25yICAgPSByaW5nLT5m cmFtZV9tYXggKyAxOwotCi0JcmV0dXJuIG5sYV9wdXQobmxza2IsIG5sX3R5cGUsIHNpemVvZihu ZHIpLCAmbmRyKTsKLX0KLQotc3RhdGljIGludCBza19kaWFnX3B1dF9yaW5nc19jZmcoc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IpCi17Ci0Jc3RydWN0IG5ldGxpbmtfc29j ayAqbmxrID0gbmxrX3NrKHNrKTsKLQlpbnQgcmV0OwotCi0JbXV0ZXhfbG9jaygmbmxrLT5wZ192 ZWNfbG9jayk7Ci0JcmV0ID0gc2tfZGlhZ19wdXRfcmluZygmbmxrLT5yeF9yaW5nLCBORVRMSU5L X0RJQUdfUlhfUklORywgbmxza2IpOwotCWlmICghcmV0KQotCQlyZXQgPSBza19kaWFnX3B1dF9y aW5nKCZubGstPnR4X3JpbmcsIE5FVExJTktfRElBR19UWF9SSU5HLAotCQkJCSAgICAgICBubHNr Yik7Ci0JbXV0ZXhfdW5sb2NrKCZubGstPnBnX3ZlY19sb2NrKTsKLQotCXJldHVybiByZXQ7Ci19 Ci0jZWxzZQotc3RhdGljIGludCBza19kaWFnX3B1dF9yaW5nc19jZmcoc3RydWN0IHNvY2sgKnNr LCBzdHJ1Y3Qgc2tfYnVmZiAqbmxza2IpCi17Ci0JcmV0dXJuIDA7Ci19Ci0jZW5kaWYKLQogc3Rh dGljIGludCBza19kaWFnX2R1bXBfZ3JvdXBzKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1 ZmYgKm5sc2tiKQogewogCXN0cnVjdCBuZXRsaW5rX3NvY2sgKm5sayA9IG5sa19zayhzayk7CkBA IC04NiwxMCArNTEsNiBAQCBzdGF0aWMgaW50IHNrX2RpYWdfZmlsbChzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBza19idWZmICpza2IsCiAJICAgIHNvY2tfZGlhZ19wdXRfbWVtaW5mbyhzaywgc2ti LCBORVRMSU5LX0RJQUdfTUVNSU5GTykpCiAJCWdvdG8gb3V0X25sbXNnX3RyaW07CiAKLQlpZiAo KHJlcS0+bmRpYWdfc2hvdyAmIE5ESUFHX1NIT1dfUklOR19DRkcpICYmCi0JICAgIHNrX2RpYWdf cHV0X3JpbmdzX2NmZyhzaywgc2tiKSkKLQkJZ290byBvdXRfbmxtc2dfdHJpbTsKLQogCXJldHVy biBubG1zZ19lbmQoc2tiLCBubGgpOwogCiBvdXRfbmxtc2dfdHJpbToKZGlmZiAtLWdpdCBhL3Nl Y3VyaXR5L2tleXMva2V5cmluZy5jIGIvc2VjdXJpdHkva2V5cy9rZXlyaW5nLmMKaW5kZXggODYw MzQ1Y2IwNWYxLi43OTYyNTZkYjEwMDQgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2tleXMva2V5cmlu Zy5jCisrKyBiL3NlY3VyaXR5L2tleXMva2V5cmluZy5jCkBAIC04NDgsNiArODQ4LDkgQEAga2V5 X3JlZl90IGtleXJpbmdfc2VhcmNoX2F1eChrZXlfcmVmX3Qga2V5cmluZ19yZWYsCiAJCQlyZXR1 cm4gRVJSX1BUUihlcnIpOwogCX0KIAorCWlmICghY3R4LT5tYXRjaCkKKwkJcmV0dXJuIEVSUl9Q VFIoLUVOT0tFWSk7CisKIAlyY3VfcmVhZF9sb2NrKCk7CiAJY3R4LT5ub3cgPSBjdXJyZW50X2tl cm5lbF90aW1lKCk7CiAJaWYgKHNlYXJjaF9uZXN0ZWRfa2V5cmluZ3Moa2V5cmluZywgY3R4KSkK QEAgLTg3OSw5ICs4ODIsNiBAQCBrZXlfcmVmX3Qga2V5cmluZ19zZWFyY2goa2V5X3JlZl90IGtl eXJpbmcsCiAJCQkJCSAgIEtFWVJJTkdfU0VBUkNIX0RPX1NUQVRFX0NIRUNLKSwKIAl9OwogCi0J aWYgKCFjdHgubWF0Y2gpCi0JCXJldHVybiBFUlJfUFRSKC1FTk9LRVkpOwotCiAJcmV0dXJuIGtl eXJpbmdfc2VhcmNoX2F1eChrZXlyaW5nLCAmY3R4KTsKIH0KIEVYUE9SVF9TWU1CT0woa2V5cmlu Z19zZWFyY2gpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VjdXJpdHkuYyBiL3NlY3VyaXR5L3Nl Y3VyaXR5LmMKaW5kZXggMzE2MTRlOWU5NmU1Li43YzlmOTU5YzI5OGUgMTAwNjQ0Ci0tLSBhL3Nl Y3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2VjdXJpdHkuYwpAQCAtNzI4LDcgKzcy OCw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBtbWFwX3Byb3Qoc3RydWN0IGZpbGUg KmZpbGUsIHVuc2lnbmVkIGxvbmcgcHJvdCkKIAkgKiBkaXR0byBpZiBpdCdzIG5vdCBvbiBub2V4 ZWMgbW91bnQsIGV4Y2VwdCB0aGF0IG9uICFNTVUgd2UgbmVlZAogCSAqIEJESV9DQVBfRVhFQ19N TUFQICg9PSBWTV9NQVlFWEVDKSBpbiB0aGlzIGNhc2UKIAkgKi8KLQlpZiAoIShmaWxlLT5mX3Bh dGgubW50LT5tbnRfZmxhZ3MgJiBNTlRfTk9FWEVDKSkgeworCWlmICghcGF0aF9ub2V4ZWMoJmZp bGUtPmZfcGF0aCkpIHsKICNpZm5kZWYgQ09ORklHX01NVQogCQl1bnNpZ25lZCBsb25nIGNhcHMg PSAwOwogCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IGZpbGUtPmZfbWFwcGluZzsK --=-4jHe60yykWnLg7Gk739I-- --=-DANAltS10BzVMFG1d2hV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEErCspvTSmr92z9o8157/I7JWGEQkFAljgbMMACgkQ57/I7JWG EQkv/g/+PGJ4EMSFie79QJ5zTPVLhpdQgf1/fc+vl6huc38Qrnru+VomrHj1LZOb BSGdZN3KhZyBBusCKyWgHZg3UUcHcIWxfph9/upm5wJuzsITpnfPbear88ZrsOkl 11nzwj+2R/ko899AfFvm1BviefqOqrZmNRg776VSiqgGbHNJb2n7DLfTd00QMCUS CiZ9Dr90cH31Rb3oNUxZPSYAStw9hugcGpVOFBrp5RRGFW2U0HrkrsobhUwEg6r+ wcvyMx1mTn1tHQqf0tcxd+lhe+drs+F922t6YFdVFWgnXbT64dJwd53V62olLbHO Zg6jPBmSodlobck5Mc+esUV4Sbzvevq80yIIfKY4mH5rgkxxTVwUsDEBFfLlUVM/ mQgtxG5NGNnxOkdQaX1mPJQngZVqeiDKHDuoF4yMRMG40hrZgkUk/te/f6e0YIZp gSgpzVx56gAv3vX3h8y+rBPKAPEFVHWgIgv9MEn+F1ULcyCMPXkRgB/RPsOLKzOd OXLUrgfkLRGVIufY9uFDyvSiMl0rXej8E8ruheRhM/iWIQdYjrdNe+78jkd8Hh4Z TnOS/wjpk3XihR35P3i2DEcx4icxpTV/jGXSGIchj2ZFrLCPI7uttwOeB4aerWa5 ytBXGmmco2ZAi4U7Sn03gUtXmhikfJndfv5SmzdjpT1ee/JXCkE= =y+hl -----END PGP SIGNATURE----- --=-DANAltS10BzVMFG1d2hV--