From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: "Jason A. Donenfeld" Subject: [PATCH v3 3/5] treewide: use get_random_u32() when possible Date: Thu, 6 Oct 2022 10:53:44 -0600 Message-Id: <20221006165346.73159-4-Jason@zx2c4.com> In-Reply-To: <20221006165346.73159-1-Jason@zx2c4.com> References: <20221006165346.73159-1-Jason@zx2c4.com> MIME-Version: 1.0 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+geert=linux-m68k.org@lists.infradead.org To: linux-kernel@vger.kernel.org, patches@lists.linux.dev Cc: "Jason A. Donenfeld" , Andreas Noever , Andrew Morton , Andy Shevchenko , Borislav Petkov , Catalin Marinas , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Christoph Hellwig , Christophe Leroy , Daniel Borkmann , Dave Airlie , Dave Hansen , "David S . Miller" , Eric Dumazet , Florian Westphal , Greg Kroah-Hartman , "H . Peter Anvin" , Heiko Carstens , Helge Deller , Herbert Xu , Huacai Chen , Hugh Dickins , Jakub Kicinski , "James E . J . Bottomley" , Jan Kara , Jason Gunthorpe , Jens Axboe , Johannes Berg , Jonathan Corbet , Jozsef Kadlecsik , KP Singh , Kees Cook , Marco Elver , Mauro Carvalho Chehab , Michael Ellerman , Pablo Neira Ayuso , Paolo Abeni , Peter Zijlstra , Richard Weinberger , Russell King , Theodore Ts'o , Thomas Bogendoerfer , Thomas Gleixner , Thomas Graf , Ulf Hansson , Vignesh Raghavendra , WANG Xuerui , Will Deacon , Yury Norov , dri-devel@lists.freedesktop.org, kasan-dev@googlegroups.com, kernel-janitors@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-block@vger.kernel.org, linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-media@vger.kernel.org, linux-mips@vger.kernel.org, linux-mm@kvack.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, linux-nvme@lists.infradead.org, linux-parisc@vger.kernel.org, linux-rdma@vger.kernel.org, linux-s390@vger.kernel.org, linux-um@lists.infradead.org, linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, loongarch@lists.linux.dev, netdev@vger.kernel.org, sparclinux@vger.kernel.org, x86@kernel.org, =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Chuck Lever , Jan Kara List-ID: VGhlIHByYW5kb21fdTMyKCkgZnVuY3Rpb24gaGFzIGJlZW4gYSBkZXByZWNhdGVkIGlubGluZSB3 cmFwcGVyIGFyb3VuZApnZXRfcmFuZG9tX3UzMigpIGZvciBzZXZlcmFsIHJlbGVhc2VzIG5vdywg YW5kIGNvbXBpbGVzIGRvd24gdG8gdGhlCmV4YWN0IHNhbWUgY29kZS4gUmVwbGFjZSB0aGUgZGVw cmVjYXRlZCB3cmFwcGVyIHdpdGggYSBkaXJlY3QgY2FsbCB0bwp0aGUgcmVhbCBmdW5jdGlvbi4g VGhlIHNhbWUgYWxzbyBhcHBsaWVzIHRvIGdldF9yYW5kb21faW50KCksIHdoaWNoIGlzCmp1c3Qg YSB3cmFwcGVyIGFyb3VuZCBnZXRfcmFuZG9tX3UzMigpLgoKUmV2aWV3ZWQtYnk6IEtlZXMgQ29v ayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPgpBY2tlZC1ieTogVG9rZSBIw7hpbGFuZC1Kw7hyZ2Vu c2VuIDx0b2tlQHRva2UuZGs+ICMgZm9yIHNjaF9jYWtlCkFja2VkLWJ5OiBDaHVjayBMZXZlciA8 Y2h1Y2subGV2ZXJAb3JhY2xlLmNvbT4gIyBmb3IgbmZzZApSZXZpZXdlZC1ieTogSmFuIEthcmEg PGphY2tAc3VzZS5jej4gIyBmb3IgZXh0NApTaWduZWQtb2ZmLWJ5OiBKYXNvbiBBLiBEb25lbmZl bGQgPEphc29uQHp4MmM0LmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVy LnJzdCAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvYXJtNjQva2VybmVsL3Byb2Nlc3MuYyAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogYXJjaC9sb29uZ2FyY2gva2VybmVsL3Byb2Nlc3MuYyAg ICAgICAgICAgICAgICB8ICAyICstCiBhcmNoL21pcHMva2VybmVsL3Byb2Nlc3MuYyAgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvcGFyaXNjL2tlcm5lbC9wcm9jZXNzLmMgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogYXJjaC9wYXJpc2Mva2VybmVsL3N5c19wYXJpc2MuYyAgICAg ICAgICAgICAgICB8ICA0ICsrLS0KIGFyY2gvcG93ZXJwYy9rZXJuZWwvcHJvY2Vzcy5jICAgICAg ICAgICAgICAgICAgfCAgMiArLQogYXJjaC9zMzkwL2tlcm5lbC9wcm9jZXNzLmMgICAgICAgICAg ICAgICAgICAgICB8ICAyICstCiBhcmNoL3MzOTAvbW0vbW1hcC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMgICAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAg ICAgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVf c2VsZnRlc3QuYyB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX2J1 ZGR5LmMgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0u YyAgICAgICAgfCAgMiArLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2I0L2NtLmMgICAgICAg ICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvaW5maW5pYmFuZC9ody9oZmkxL3RpZF9yZG1hLmMg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFkLmMgICAgICAg ICAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2NtLmMg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWQvcmFpZDUtY2FjaGUuYyAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogLi4uL21lZGlhL3Rlc3QtZHJpdmVycy92aXZpZC92aXZpZC10b3VjaC1j YXAuYyB8ICA0ICsrLS0KIGRyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2dhdWRpMi9nYXVkaTIuYyAg ICAgICAgfCAgMiArLQogZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZHNpbS5jICAgICAgICAgICAg ICAgICB8ICAyICstCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2NuaWMuYyAgICAgICAg ICAgfCAgMiArLQogLi4uL2NoZWxzaW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19jbS5jICAg ICB8ICAyICstCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yb2NrZXIvcm9ja2VyX21haW4uYyAgICAg IHwgIDYgKysrLS0tCiAuLi4vd2lyZWxlc3MvYnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3Bu by5jIHwgIDIgKy0KIC4uLi9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2NmZzgwMjExLmMg ICAgfCAgNCArKy0tCiAuLi4vbmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIx MS5jIHwgIDIgKy0KIC4uLi9uZXQvd2lyZWxlc3MvcXVhbnRlbm5hL3F0bmZtYWMvY2ZnODAyMTEu YyAgfCAgMiArLQogZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYyAgICAgICAg ICB8ICAyICstCiBkcml2ZXJzL252bWUvY29tbW9uL2F1dGguYyAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvc2NzaS9jeGdiaS9jeGdiNGkvY3hnYjRpLmMgICAgICAgICAgICAg fCAgNCArKy0tCiBkcml2ZXJzL3RhcmdldC9pc2NzaS9jeGdiaXQvY3hnYml0X2NtLmMgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvdGh1bmRlcmJvbHQveGRvbWFpbi5jICAgICAgICAgICAgICAgICAg fCAgMiArLQogZHJpdmVycy92aWRlby9mYmRldi91dmVzYWZiLmMgICAgICAgICAgICAgICAgICB8 ICAyICstCiBmcy9leGZhdC9pbm9kZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGZzL2V4dDQvaWFsbG9jLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogZnMvZXh0NC9pb2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0 ICsrLS0KIGZzL2V4dDQvbW1wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogZnMvZjJmcy9uYW1laS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBmcy9mYXQvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGZzL25mc2QvbmZzNHN0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCAr Ky0tCiBmcy9udGZzMy9mc2xvZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KysrLS0tCiBmcy91Ymlmcy9qb3VybmFsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGZzL3hmcy9saWJ4ZnMveGZzX2lhbGxvYy5jICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogZnMveGZzL3hmc19pY2FjaGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBmcy94ZnMveGZzX2xvZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIGluY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9xdWV1ZS5oICAgICAgICAgICAgICAgfCAgMiAr LQogaW5jbHVkZS9uZXQvcmVkLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICst CiBpbmNsdWRlL25ldC9zb2NrLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGtlcm5lbC9icGYvYmxvb21fZmlsdGVyLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQog a2VybmVsL2JwZi9jb3JlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBr ZXJuZWwvYnBmL2hhc2h0YWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGtl cm5lbC9icGYvdmVyaWZpZXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQoga2Vy bmVsL2tjc2FuL3NlbGZ0ZXN0LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBsaWIv cmFuZG9tMzIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGxpYi9y ZWVkX3NvbG9tb24vdGVzdF9yc2xpYi5jICAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KIGxp Yi90ZXN0X2Zwcm9iZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbGli L3Rlc3Rfa3Byb2Jlcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBsaWIv dGVzdF9taW5faGVhcC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tCiBs aWIvdGVzdF9yaGFzaHRhYmxlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0t CiBtbS9zaG1lbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG1tL3NsYWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQog bmV0LzgwMi9nYXJwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvODAyL21ycC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5l dC9jb3JlL3BrdGdlbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiBu ZXQvaXB2NC9yb3V0ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5l dC9pcHY0L3RjcF9jZGcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0 L2lwdjQvdWRwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQv aXB2Ni9pcDZfZmxvd2xhYmVsLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9p cHY2L291dHB1dF9jb3JlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L25l dGZpbHRlci9pcHZzL2lwX3ZzX2Nvbm4uYyAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvbmV0 ZmlsdGVyL3h0X3N0YXRpc3RpYy5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9vcGVu dnN3aXRjaC9hY3Rpb25zLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3Jkcy9i aW5kLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvc2NoZWQv c2NoX2Nha2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9zY2hlZC9z Y2hfbmV0ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxOCArKysrKysrKystLS0tLS0t LS0KIG5ldC9zdW5ycGMvYXV0aF9nc3MvZ3NzX2tyYjVfd3JhcC5jICAgICAgICAgICAgfCAgNCAr Ky0tCiBuZXQvc3VucnBjL3hwcnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg Ky0KIG5ldC91bml4L2FmX3VuaXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogODEgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDExMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVyLnJzdCBiL0RvY3Vt ZW50YXRpb24vbmV0d29ya2luZy9maWx0ZXIucnN0CmluZGV4IDQzY2RjNGQzNDc0NS4uZjY5ZGE1 MDc0ODYwIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVyLnJzdAor KysgYi9Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZmlsdGVyLnJzdApAQCAtMzA1LDcgKzMwNSw3 IEBAIFBvc3NpYmxlIEJQRiBleHRlbnNpb25zIGFyZSBzaG93biBpbiB0aGUgZm9sbG93aW5nIHRh YmxlOgogICB2bGFuX3RjaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNrYl92bGFuX3Rh Z19nZXQoc2tiKQogICB2bGFuX2F2YWlsICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNrYl92 bGFuX3RhZ19wcmVzZW50KHNrYikKICAgdmxhbl90cGlkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBza2ItPnZsYW5fcHJvdG8KLSAgcmFuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcmFuZG9tX3UzMigpCisgIHJhbmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2V0X3JhbmRvbV91MzIoKQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAog VGhlc2UgZXh0ZW5zaW9ucyBjYW4gYWxzbyBiZSBwcmVmaXhlZCB3aXRoICcjJy4KZGlmZiAtLWdp dCBhL2FyY2gvYXJtNjQva2VybmVsL3Byb2Nlc3MuYyBiL2FyY2gvYXJtNjQva2VybmVsL3Byb2Nl c3MuYwppbmRleCA5MmJjYzE3NjhmMGIuLmE3M2FmMDdiN2E1YiAxMDA2NDQKLS0tIGEvYXJjaC9h cm02NC9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL3Byb2Nlc3MuYwpA QCAtNTk1LDcgKzU5NSw3IEBAIHVuc2lnbmVkIGxvbmcgX19nZXRfd2NoYW4oc3RydWN0IHRhc2tf c3RydWN0ICpwKQogdW5zaWduZWQgbG9uZyBhcmNoX2FsaWduX3N0YWNrKHVuc2lnbmVkIGxvbmcg c3ApCiB7CiAJaWYgKCEoY3VycmVudC0+cGVyc29uYWxpdHkgJiBBRERSX05PX1JBTkRPTUlaRSkg JiYgcmFuZG9taXplX3ZhX3NwYWNlKQotCQlzcCAtPSBnZXRfcmFuZG9tX2ludCgpICYgflBBR0Vf TUFTSzsKKwkJc3AgLT0gZ2V0X3JhbmRvbV91MzIoKSAmIH5QQUdFX01BU0s7CiAJcmV0dXJuIHNw ICYgfjB4ZjsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9sb29uZ2FyY2gva2VybmVsL3Byb2Nlc3Mu YyBiL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggNjYwNDkyZjA2NGU3Li4w ODU0NTUxMDljMGIgMTAwNjQ0Ci0tLSBhL2FyY2gvbG9vbmdhcmNoL2tlcm5lbC9wcm9jZXNzLmMK KysrIGIvYXJjaC9sb29uZ2FyY2gva2VybmVsL3Byb2Nlc3MuYwpAQCAtMjkzLDcgKzI5Myw3IEBA IHVuc2lnbmVkIGxvbmcgc3RhY2tfdG9wKHZvaWQpCiB1bnNpZ25lZCBsb25nIGFyY2hfYWxpZ25f c3RhY2sodW5zaWduZWQgbG9uZyBzcCkKIHsKIAlpZiAoIShjdXJyZW50LT5wZXJzb25hbGl0eSAm IEFERFJfTk9fUkFORE9NSVpFKSAmJiByYW5kb21pemVfdmFfc3BhY2UpCi0JCXNwIC09IGdldF9y YW5kb21faW50KCkgJiB+UEFHRV9NQVNLOworCQlzcCAtPSBnZXRfcmFuZG9tX3UzMigpICYgflBB R0VfTUFTSzsKIAogCXJldHVybiBzcCAmIFNUQUNLX0FMSUdOOwogfQpkaWZmIC0tZ2l0IGEvYXJj aC9taXBzL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL21pcHMva2VybmVsL3Byb2Nlc3MuYwppbmRl eCAzNWI5MTJiY2U0MjkuLjI2OWIwY2NiOGJlMCAxMDA2NDQKLS0tIGEvYXJjaC9taXBzL2tlcm5l bC9wcm9jZXNzLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9wcm9jZXNzLmMKQEAgLTcxMSw3ICs3 MTEsNyBAQCB1bnNpZ25lZCBsb25nIG1pcHNfc3RhY2tfdG9wKHZvaWQpCiB1bnNpZ25lZCBsb25n IGFyY2hfYWxpZ25fc3RhY2sodW5zaWduZWQgbG9uZyBzcCkKIHsKIAlpZiAoIShjdXJyZW50LT5w ZXJzb25hbGl0eSAmIEFERFJfTk9fUkFORE9NSVpFKSAmJiByYW5kb21pemVfdmFfc3BhY2UpCi0J CXNwIC09IGdldF9yYW5kb21faW50KCkgJiB+UEFHRV9NQVNLOworCQlzcCAtPSBnZXRfcmFuZG9t X3UzMigpICYgflBBR0VfTUFTSzsKIAogCXJldHVybiBzcCAmIEFMTUFTSzsKIH0KZGlmZiAtLWdp dCBhL2FyY2gvcGFyaXNjL2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3BhcmlzYy9rZXJuZWwvcHJv Y2Vzcy5jCmluZGV4IDdjMzdlMDljOTJkYS4uMThjNGYwZTNlOTA2IDEwMDY0NAotLS0gYS9hcmNo L3BhcmlzYy9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gvcGFyaXNjL2tlcm5lbC9wcm9jZXNz LmMKQEAgLTI4OCw3ICsyODgsNyBAQCBfX2dldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAp CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBicmtfcm5kKHZvaWQpCiB7Ci0JcmV0dXJu IChnZXRfcmFuZG9tX2ludCgpICYgQlJLX1JORF9NQVNLKSA8PCBQQUdFX1NISUZUOworCXJldHVy biAoZ2V0X3JhbmRvbV91MzIoKSAmIEJSS19STkRfTUFTSykgPDwgUEFHRV9TSElGVDsKIH0KIAog dW5zaWduZWQgbG9uZyBhcmNoX3JhbmRvbWl6ZV9icmsoc3RydWN0IG1tX3N0cnVjdCAqbW0pCmRp ZmYgLS1naXQgYS9hcmNoL3BhcmlzYy9rZXJuZWwvc3lzX3BhcmlzYy5jIGIvYXJjaC9wYXJpc2Mv a2VybmVsL3N5c19wYXJpc2MuYwppbmRleCAyYjM0Mjk0NTE3YTEuLjg0OGIwNzAyMDA1ZCAxMDA2 NDQKLS0tIGEvYXJjaC9wYXJpc2Mva2VybmVsL3N5c19wYXJpc2MuYworKysgYi9hcmNoL3Bhcmlz Yy9rZXJuZWwvc3lzX3BhcmlzYy5jCkBAIC0yMzksMTQgKzIzOSwxNCBAQCBzdGF0aWMgdW5zaWdu ZWQgbG9uZyBtbWFwX3JuZCh2b2lkKQogCXVuc2lnbmVkIGxvbmcgcm5kID0gMDsKIAogCWlmIChj dXJyZW50LT5mbGFncyAmIFBGX1JBTkRPTUlaRSkKLQkJcm5kID0gZ2V0X3JhbmRvbV9pbnQoKSAm IE1NQVBfUk5EX01BU0s7CisJCXJuZCA9IGdldF9yYW5kb21fdTMyKCkgJiBNTUFQX1JORF9NQVNL OwogCiAJcmV0dXJuIHJuZCA8PCBQQUdFX1NISUZUOwogfQogCiB1bnNpZ25lZCBsb25nIGFyY2hf bW1hcF9ybmQodm9pZCkKIHsKLQlyZXR1cm4gKGdldF9yYW5kb21faW50KCkgJiBNTUFQX1JORF9N QVNLKSA8PCBQQUdFX1NISUZUOworCXJldHVybiAoZ2V0X3JhbmRvbV91MzIoKSAmIE1NQVBfUk5E X01BU0spIDw8IFBBR0VfU0hJRlQ7CiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nIG1tYXBfbGVn YWN5X2Jhc2Uodm9pZCkKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvY2Vzcy5j IGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wcm9jZXNzLmMKaW5kZXggMGZiZGE4OWNkMWJiLi45YzRj MTVhZmJiZTggMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvY2Vzcy5jCisrKyBi L2FyY2gvcG93ZXJwYy9rZXJuZWwvcHJvY2Vzcy5jCkBAIC0yMzA4LDYgKzIzMDgsNiBAQCB2b2lk IG5vdHJhY2UgX19wcGM2NF9ydW5sYXRjaF9vZmYodm9pZCkKIHVuc2lnbmVkIGxvbmcgYXJjaF9h bGlnbl9zdGFjayh1bnNpZ25lZCBsb25nIHNwKQogewogCWlmICghKGN1cnJlbnQtPnBlcnNvbmFs aXR5ICYgQUREUl9OT19SQU5ET01JWkUpICYmIHJhbmRvbWl6ZV92YV9zcGFjZSkKLQkJc3AgLT0g Z2V0X3JhbmRvbV9pbnQoKSAmIH5QQUdFX01BU0s7CisJCXNwIC09IGdldF9yYW5kb21fdTMyKCkg JiB+UEFHRV9NQVNLOwogCXJldHVybiBzcCAmIH4weGY7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Mz OTAva2VybmVsL3Byb2Nlc3MuYyBiL2FyY2gvczM5MC9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDZl YzAyMGZkZjUzMi4uZWMwYjdlYmZjY2QwIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3By b2Nlc3MuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3Byb2Nlc3MuYwpAQCAtMjI0LDcgKzIyNCw3 IEBAIHVuc2lnbmVkIGxvbmcgX19nZXRfd2NoYW4oc3RydWN0IHRhc2tfc3RydWN0ICpwKQogdW5z aWduZWQgbG9uZyBhcmNoX2FsaWduX3N0YWNrKHVuc2lnbmVkIGxvbmcgc3ApCiB7CiAJaWYgKCEo Y3VycmVudC0+cGVyc29uYWxpdHkgJiBBRERSX05PX1JBTkRPTUlaRSkgJiYgcmFuZG9taXplX3Zh X3NwYWNlKQotCQlzcCAtPSBnZXRfcmFuZG9tX2ludCgpICYgflBBR0VfTUFTSzsKKwkJc3AgLT0g Z2V0X3JhbmRvbV91MzIoKSAmIH5QQUdFX01BU0s7CiAJcmV0dXJuIHNwICYgfjB4ZjsKIH0KIApk aWZmIC0tZ2l0IGEvYXJjaC9zMzkwL21tL21tYXAuYyBiL2FyY2gvczM5MC9tbS9tbWFwLmMKaW5k ZXggNTk4MGNlMzQ4ODMyLi4zMzI3YzQ3YmMxODEgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9tbS9t bWFwLmMKKysrIGIvYXJjaC9zMzkwL21tL21tYXAuYwpAQCAtMzcsNyArMzcsNyBAQCBzdGF0aWMg aW5saW5lIGludCBtbWFwX2lzX2xlZ2FjeShzdHJ1Y3QgcmxpbWl0ICpybGltX3N0YWNrKQogCiB1 bnNpZ25lZCBsb25nIGFyY2hfbW1hcF9ybmQodm9pZCkKIHsKLQlyZXR1cm4gKGdldF9yYW5kb21f aW50KCkgJiBNTUFQX1JORF9NQVNLKSA8PCBQQUdFX1NISUZUOworCXJldHVybiAoZ2V0X3JhbmRv bV91MzIoKSAmIE1NQVBfUk5EX01BU0spIDw8IFBBR0VfU0hJRlQ7CiB9CiAKIHN0YXRpYyB1bnNp Z25lZCBsb25nIG1tYXBfYmFzZV9sZWdhY3kodW5zaWduZWQgbG9uZyBybmQpCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZC5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYwpp bmRleCA0ODI3NmMwZTQ3OWQuLjg2MGI2MDI3M2RmMyAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2Vy bmVsL2NwdS9hbWQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZC5jCkBAIC01MDMsNyAr NTAzLDcgQEAgc3RhdGljIHZvaWQgYnNwX2luaXRfYW1kKHN0cnVjdCBjcHVpbmZvX3g4NiAqYykK IAkJdmFfYWxpZ24uZmxhZ3MgICAgPSBBTElHTl9WQV8zMiB8IEFMSUdOX1ZBXzY0OwogCiAJCS8q IEEgcmFuZG9tIHZhbHVlIHBlciBib290IGZvciBiaXQgc2xpY2UgWzEyOnVwcGVyX2JpdCkgKi8K LQkJdmFfYWxpZ24uYml0cyA9IGdldF9yYW5kb21faW50KCkgJiB2YV9hbGlnbi5tYXNrOworCQl2 YV9hbGlnbi5iaXRzID0gZ2V0X3JhbmRvbV91MzIoKSAmIHZhX2FsaWduLm1hc2s7CiAJfQogCiAJ aWYgKGNwdV9oYXMoYywgWDg2X0ZFQVRVUkVfTVdBSVRYKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMKaW5kZXggMzI5ZmY3NWI4MGI5Li43YmQxODYxZGRiZGYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC0xMzcsMTIgKzEzNywxMiBAQCBzdGF0aWMgdTY0IHJhbmRv bV9vZmZzZXQodTY0IHN0YXJ0LCB1NjQgZW5kLCB1NjQgbGVuLCB1NjQgYWxpZ24pCiAJcmFuZ2Ug PSByb3VuZF9kb3duKGVuZCAtIGxlbiwgYWxpZ24pIC0gcm91bmRfdXAoc3RhcnQsIGFsaWduKTsK IAlpZiAocmFuZ2UpIHsKIAkJaWYgKHNpemVvZih1bnNpZ25lZCBsb25nKSA9PSBzaXplb2YodTY0 KSkgewotCQkJYWRkciA9IGdldF9yYW5kb21fbG9uZygpOworCQkJYWRkciA9IGdldF9yYW5kb21f dTY0KCk7CiAJCX0gZWxzZSB7Ci0JCQlhZGRyID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJCWFkZHIg PSBnZXRfcmFuZG9tX3UzMigpOwogCQkJaWYgKHJhbmdlID4gVTMyX01BWCkgewogCQkJCWFkZHIg PDw9IDMyOwotCQkJCWFkZHIgfD0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJCQlhZGRyIHw9IGdldF9y YW5kb21fdTMyKCk7CiAJCQl9CiAJCX0KIAkJZGl2NjRfdTY0X3JlbShhZGRyLCByYW5nZSwgJmFk ZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfc2Vs ZnRlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0LmMK aW5kZXggYzRlOTMyMzY4YjM3Li4zOWRhMGZiMGQ2ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3NlbGZ0ZXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2k5MTVfc2VsZnRlc3QuYwpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRp YyBpbnQgX19ydW5fc2VsZnRlc3RzKGNvbnN0IGNoYXIgKm5hbWUsCiAJaW50IGVyciA9IDA7CiAK IAl3aGlsZSAoIWk5MTVfc2VsZnRlc3QucmFuZG9tX3NlZWQpCi0JCWk5MTVfc2VsZnRlc3QucmFu ZG9tX3NlZWQgPSBnZXRfcmFuZG9tX2ludCgpOworCQlpOTE1X3NlbGZ0ZXN0LnJhbmRvbV9zZWVk ID0gZ2V0X3JhbmRvbV91MzIoKTsKIAogCWk5MTVfc2VsZnRlc3QudGltZW91dF9qaWZmaWVzID0K IAkJaTkxNV9zZWxmdGVzdC50aW1lb3V0X21zID8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9zZWxmdGVzdHMvdGVzdC1kcm1fYnVkZHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMv dGVzdC1kcm1fYnVkZHkuYwppbmRleCBhY2EwYzQ5MTA0MGYuLjYzNDBhNzExNzczZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9idWRkeS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fYnVkZHkuYwpAQCAtOTc0LDcgKzk3NCw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IHRlc3RfZHJtX2J1ZGR5X2luaXQodm9pZCkKIAlpbnQgZXJy OwogCiAJd2hpbGUgKCFyYW5kb21fc2VlZCkKLQkJcmFuZG9tX3NlZWQgPSBnZXRfcmFuZG9tX2lu dCgpOworCQlyYW5kb21fc2VlZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlwcl9pbmZvKCJUZXN0 aW5nIERSTSBidWRkeSBtYW5hZ2VyIChzdHJ1Y3QgZHJtX2J1ZGR5KSwgd2l0aCByYW5kb21fc2Vl ZD0weCV4XG4iLAogCQlyYW5kb21fc2VlZCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMgYi9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3Qt ZHJtX21tLmMKaW5kZXggYjc2OGI1M2M0YWVlLi4xZGM0MWQ3M2QxN2UgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKQEAgLTI0NjMsNyArMjQ2Myw3IEBAIHN0YXRpYyBp bnQgX19pbml0IHRlc3RfZHJtX21tX2luaXQodm9pZCkKIAlpbnQgZXJyOwogCiAJd2hpbGUgKCFy YW5kb21fc2VlZCkKLQkJcmFuZG9tX3NlZWQgPSBnZXRfcmFuZG9tX2ludCgpOworCQlyYW5kb21f c2VlZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlwcl9pbmZvKCJUZXN0aW5nIERSTSByYW5nZSBt YW5hZ2VyIChzdHJ1Y3QgZHJtX21tKSwgd2l0aCByYW5kb21fc2VlZD0weCV4IG1heF9pdGVyYXRp b25zPSV1IG1heF9wcmltZT0ldVxuIiwKIAkJcmFuZG9tX3NlZWQsIG1heF9pdGVyYXRpb25zLCBt YXhfcHJpbWUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2I0L2NtLmMg Yi9kcml2ZXJzL2luZmluaWJhbmQvaHcvY3hnYjQvY20uYwppbmRleCAxNDM5MmM5NDJmNDkuLjQ5 OWE0MjVhMzM3OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2I0L2NtLmMK KysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L2N4Z2I0L2NtLmMKQEAgLTczNCw3ICs3MzQsNyBA QCBzdGF0aWMgaW50IHNlbmRfY29ubmVjdChzdHJ1Y3QgYzRpd19lcCAqZXApCiAJCQkJICAgJmVw LT5jb20ucmVtb3RlX2FkZHI7CiAJaW50IHJldDsKIAllbnVtIGNoaXBfdHlwZSBhZGFwdGVyX3R5 cGUgPSBlcC0+Y29tLmRldi0+cmRldi5sbGRpLmFkYXB0ZXJfdHlwZTsKLQl1MzIgaXNuID0gKHBy YW5kb21fdTMyKCkgJiB+N1VMKSAtIDE7CisJdTMyIGlzbiA9IChnZXRfcmFuZG9tX3UzMigpICYg fjdVTCkgLSAxOwogCXN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7CiAJdTY0IHBhcmFtczsKIApA QCAtMjQ2OSw3ICsyNDY5LDcgQEAgc3RhdGljIGludCBhY2NlcHRfY3Ioc3RydWN0IGM0aXdfZXAg KmVwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCX0KIAogCWlmICghaXNfdDQoYWRhcHRlcl90eXBl KSkgewotCQl1MzIgaXNuID0gKHByYW5kb21fdTMyKCkgJiB+N1VMKSAtIDE7CisJCXUzMiBpc24g PSAoZ2V0X3JhbmRvbV91MzIoKSAmIH43VUwpIC0gMTsKIAogCQlza2IgPSBnZXRfc2tiKHNrYiwg cm91bmR1cChzaXplb2YoKnJwbDUpLCAxNiksIEdGUF9LRVJORUwpOwogCQlycGw1ID0gX19za2Jf cHV0X3plcm8oc2tiLCByb3VuZHVwKHNpemVvZigqcnBsNSksIDE2KSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2luZmluaWJhbmQvaHcvaGZpMS90aWRfcmRtYS5jIGIvZHJpdmVycy9pbmZpbmliYW5k L2h3L2hmaTEvdGlkX3JkbWEuYwppbmRleCAyYTdhYmY3YTFmN2YuLjE4YjA1ZmZiNDE1YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L2hmaTEvdGlkX3JkbWEuYworKysgYi9kcml2 ZXJzL2luZmluaWJhbmQvaHcvaGZpMS90aWRfcmRtYS5jCkBAIC04NTAsNyArODUwLDcgQEAgdm9p ZCBoZmkxX2tlcm5faW5pdF9jdHh0X2dlbmVyYXRpb25zKHN0cnVjdCBoZmkxX2N0eHRkYXRhICpy Y2QpCiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgUlhFX05VTV9USURfRkxPV1M7IGkrKykg ewotCQlyY2QtPmZsb3dzW2ldLmdlbmVyYXRpb24gPSBtYXNrX2dlbmVyYXRpb24ocHJhbmRvbV91 MzIoKSk7CisJCXJjZC0+Zmxvd3NbaV0uZ2VuZXJhdGlvbiA9IG1hc2tfZ2VuZXJhdGlvbihnZXRf cmFuZG9tX3UzMigpKTsKIAkJa2Vybl9zZXRfaHdfZmxvdyhyY2QsIEtFUk5fR0VORVJBVElPTl9S RVNFUlZFRCwgaSk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21s eDQvbWFkLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NC9tYWQuYwppbmRleCBkMTNlY2Jk ZDQzOTEuLmEzN2NmYWM1ZTIzZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbmZpbmliYW5kL2h3L21s eDQvbWFkLmMKKysrIGIvZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDQvbWFkLmMKQEAgLTk2LDcg Kzk2LDcgQEAgc3RhdGljIHZvaWQgX19wcm9wYWdhdGVfcGtleV9ldihzdHJ1Y3QgbWx4NF9pYl9k ZXYgKmRldiwgaW50IHBvcnRfbnVtLAogX19iZTY0IG1seDRfaWJfZ2VuX25vZGVfZ3VpZCh2b2lk KQogewogI2RlZmluZSBOT0RFX0dVSURfSEkJKCh1NjQpICgoKHU2NClJQl9PUEVOSUJfT1VJKSA8 PCA0MCkpCi0JcmV0dXJuIGNwdV90b19iZTY0KE5PREVfR1VJRF9ISSB8IHByYW5kb21fdTMyKCkp OworCXJldHVybiBjcHVfdG9fYmU2NChOT0RFX0dVSURfSEkgfCBnZXRfcmFuZG9tX3UzMigpKTsK IH0KIAogX19iZTY0IG1seDRfaWJfZ2V0X25ld19kZW11eF90aWQoc3RydWN0IG1seDRfaWJfZGVt dXhfY3R4ICpjdHgpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lw b2liX2NtLmMgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2liL2lwb2liX2NtLmMKaW5kZXgg ZmQ5ZDdmMmM0ZDY0Li5hNjA1Y2Y2NmI4M2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvaW5maW5pYmFu ZC91bHAvaXBvaWIvaXBvaWJfY20uYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQvdWxwL2lwb2li L2lwb2liX2NtLmMKQEAgLTQ2NSw3ICs0NjUsNyBAQCBzdGF0aWMgaW50IGlwb2liX2NtX3JlcV9o YW5kbGVyKHN0cnVjdCBpYl9jbV9pZCAqY21faWQsCiAJCWdvdG8gZXJyX3FwOwogCX0KIAotCXBz biA9IHByYW5kb21fdTMyKCkgJiAweGZmZmZmZjsKKwlwc24gPSBnZXRfcmFuZG9tX3UzMigpICYg MHhmZmZmZmY7CiAJcmV0ID0gaXBvaWJfY21fbW9kaWZ5X3J4X3FwKGRldiwgY21faWQsIHAtPnFw LCBwc24pOwogCWlmIChyZXQpCiAJCWdvdG8gZXJyX21vZGlmeTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbWQvcmFpZDUtY2FjaGUuYyBiL2RyaXZlcnMvbWQvcmFpZDUtY2FjaGUuYwppbmRleCBmNGUx Y2MxZWNlNDMuLjViMGZjNzgzYmYwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9yYWlkNS1jYWNo ZS5jCisrKyBiL2RyaXZlcnMvbWQvcmFpZDUtY2FjaGUuYwpAQCAtMjk5Myw3ICsyOTkzLDcgQEAg c3RhdGljIGludCByNWxfbG9hZF9sb2coc3RydWN0IHI1bF9sb2cgKmxvZykKIAl9CiBjcmVhdGU6 CiAJaWYgKGNyZWF0ZV9zdXBlcikgewotCQlsb2ctPmxhc3RfY3Bfc2VxID0gcHJhbmRvbV91MzIo KTsKKwkJbG9nLT5sYXN0X2NwX3NlcSA9IGdldF9yYW5kb21fdTMyKCk7CiAJCWNwID0gMDsKIAkJ cjVsX2xvZ193cml0ZV9lbXB0eV9tZXRhX2Jsb2NrKGxvZywgY3AsIGxvZy0+bGFzdF9jcF9zZXEp OwogCQkvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS90ZXN0LWRyaXZlcnMvdml2aWQvdml2 aWQtdG91Y2gtY2FwLmMgYi9kcml2ZXJzL21lZGlhL3Rlc3QtZHJpdmVycy92aXZpZC92aXZpZC10 b3VjaC1jYXAuYwppbmRleCA3OTI2NjBhODViYzEuLjZjYzMyZWI1NGY5ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9tZWRpYS90ZXN0LWRyaXZlcnMvdml2aWQvdml2aWQtdG91Y2gtY2FwLmMKKysrIGIv ZHJpdmVycy9tZWRpYS90ZXN0LWRyaXZlcnMvdml2aWQvdml2aWQtdG91Y2gtY2FwLmMKQEAgLTIx MCw3ICsyMTAsNyBAQCBzdGF0aWMgdm9pZCB2aXZpZF9maWxsX2J1ZmZfbm9pc2UoX19zMTYgKnRj aF9idWYsIGludCBzaXplKQogCiAJLyogRmlsbCAxMCUgb2YgdGhlIHZhbHVlcyB3aXRoaW4gcmFu Z2UgLTMgYW5kIDMsIHplcm8gdGhlIG90aGVycyAqLwogCWZvciAoaSA9IDA7IGkgPCBzaXplOyBp KyspIHsKLQkJdW5zaWduZWQgaW50IHJhbmQgPSBnZXRfcmFuZG9tX2ludCgpOworCQl1bnNpZ25l ZCBpbnQgcmFuZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAkJaWYgKHJhbmQgJSAxMCkKIAkJCXRj aF9idWZbaV0gPSAwOwpAQCAtMjcyLDcgKzI3Miw3IEBAIHZvaWQgdml2aWRfZmlsbGJ1ZmZfdGNo KHN0cnVjdCB2aXZpZF9kZXYgKmRldiwgc3RydWN0IHZpdmlkX2J1ZmZlciAqYnVmKQogCQlyZXR1 cm47CiAKIAlpZiAodGVzdF9wYXRfaWR4ID09IDApCi0JCWRldi0+dGNoX3BhdF9yYW5kb20gPSBn ZXRfcmFuZG9tX2ludCgpOworCQlkZXYtPnRjaF9wYXRfcmFuZG9tID0gZ2V0X3JhbmRvbV91MzIo KTsKIAlyYW5kID0gZGV2LT50Y2hfcGF0X3JhbmRvbTsKIAogCXN3aXRjaCAodGVzdF9wYXR0ZXJu KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9nYXVkaTIvZ2F1ZGkyLmMg Yi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9nYXVkaTIvZ2F1ZGkyLmMKaW5kZXggOTgzMzZhMWE4 NGIwLi40MTNiMjg0YmYyMjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWlzYy9oYWJhbmFsYWJzL2dh dWRpMi9nYXVkaTIuYworKysgYi9kcml2ZXJzL21pc2MvaGFiYW5hbGFicy9nYXVkaTIvZ2F1ZGky LmMKQEAgLTI5MTcsNyArMjkxNyw3IEBAIHN0YXRpYyB2b2lkIGdhdWRpMl91c2VyX2ludGVycnVw dF9zZXR1cChzdHJ1Y3QgaGxfZGV2aWNlICpoZGV2KQogCiBzdGF0aWMgaW5saW5lIGludCBnYXVk aTJfZ2V0X25vbl96ZXJvX3JhbmRvbV9pbnQodm9pZCkKIHsKLQlpbnQgcmFuZCA9IGdldF9yYW5k b21faW50KCk7CisJaW50IHJhbmQgPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJcmV0dXJuIHJhbmQg PyByYW5kIDogMTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRzaW0u YyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRzaW0uYwppbmRleCA1MGJjZjc0NWU4MTYuLjRi ZGFmNGFhNzAwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbmFuZHNpbS5jCisr KyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L25hbmRzaW0uYwpAQCAtMTQwMiw3ICsxNDAyLDcgQEAg c3RhdGljIGludCBuc19kb19yZWFkX2Vycm9yKHN0cnVjdCBuYW5kc2ltICpucywgaW50IG51bSkK IAogc3RhdGljIHZvaWQgbnNfZG9fYml0X2ZsaXBzKHN0cnVjdCBuYW5kc2ltICpucywgaW50IG51 bSkKIHsKLQlpZiAoYml0ZmxpcHMgJiYgcHJhbmRvbV91MzIoKSA8ICgxIDw8IDIyKSkgeworCWlm IChiaXRmbGlwcyAmJiBnZXRfcmFuZG9tX3UzMigpIDwgKDEgPDwgMjIpKSB7CiAJCWludCBmbGlw cyA9IDE7CiAJCWlmIChiaXRmbGlwcyA+IDEpCiAJCQlmbGlwcyA9IHByYW5kb21fdTMyX21heChi aXRmbGlwcykgKyAxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4u YyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKaW5kZXggODZkNDIzMDZhYTVlLi5j ODU0MzM5NGEzYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMK KysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYwpAQCAtNDgwNiw3ICs0ODA2LDcg QEAgc3RhdGljIHUzMiBib25kX3JyX2dlbl9zbGF2ZV9pZChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkK IAogCXN3aXRjaCAocGFja2V0c19wZXJfc2xhdmUpIHsKIAljYXNlIDA6Ci0JCXNsYXZlX2lkID0g cHJhbmRvbV91MzIoKTsKKwkJc2xhdmVfaWQgPSBnZXRfcmFuZG9tX3UzMigpOwogCQlicmVhazsK IAljYXNlIDE6CiAJCXNsYXZlX2lkID0gdGhpc19jcHVfaW5jX3JldHVybigqYm9uZC0+cnJfdHhf Y291bnRlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9jbmlj LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9jbmljLmMKaW5kZXggZjU5N2IzMTNh Y2FhLi4yMTk4ZTM1ZDllMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2NuaWMuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9jbmljLmMKQEAg LTQxNjQsNyArNDE2NCw3IEBAIHN0YXRpYyBpbnQgY25pY19jbV9pbml0X2JueDJfaHcoc3RydWN0 IGNuaWNfZGV2ICpkZXYpCiB7CiAJdTMyIHNlZWQ7CiAKLQlzZWVkID0gcHJhbmRvbV91MzIoKTsK KwlzZWVkID0gZ2V0X3JhbmRvbV91MzIoKTsKIAljbmljX2N0eF93cihkZXYsIDQ1LCAwLCBzZWVk KTsKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxz aW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19jbS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2hlbHNpby9pbmxpbmVfY3J5cHRvL2NodGxzL2NodGxzX2NtLmMKaW5kZXggYWM0NTJhMDExMWE5 Li5iNzFjZTZjNWI1MTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8v aW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19jbS5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2NoZWxzaW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19jbS5jCkBAIC0xMDYzLDcgKzEwNjMs NyBAQCBzdGF0aWMgdm9pZCBjaHRsc19wYXNzX2FjY2VwdF9ycGwoc3RydWN0IHNrX2J1ZmYgKnNr YiwKIAlvcHQyIHw9IFdORF9TQ0FMRV9FTl9WKFdTQ0FMRV9PSyh0cCkpOwogCXJwbDUtPm9wdDAg PSBjcHVfdG9fYmU2NChvcHQwKTsKIAlycGw1LT5vcHQyID0gY3B1X3RvX2JlMzIob3B0Mik7Ci0J cnBsNS0+aXNzID0gY3B1X3RvX2JlMzIoKHByYW5kb21fdTMyKCkgJiB+N1VMKSAtIDEpOworCXJw bDUtPmlzcyA9IGNwdV90b19iZTMyKChnZXRfcmFuZG9tX3UzMigpICYgfjdVTCkgLSAxKTsKIAlz ZXRfd3JfdHhxKHNrYiwgQ1BMX1BSSU9SSVRZX1NFVFVQLCBjc2stPnBvcnRfaWQpOwogCXQ0X3Nl dF9hcnBfZXJyX2hhbmRsZXIoc2tiLCBzaywgY2h0bHNfYWNjZXB0X3JwbF9hcnBfZmFpbHVyZSk7 CiAJY3hnYjRfbDJ0X3NlbmQoY3NrLT5lZ3Jlc3NfZGV2LCBza2IsIGNzay0+bDJ0X2VudHJ5KTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXJfbWFpbi5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvcm9ja2VyL3JvY2tlcl9tYWluLmMKaW5kZXggZmM4M2VjMjNi ZDFkLi44YzNiYmFmYWJiMDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tl ci9yb2NrZXJfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXJf bWFpbi5jCkBAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIGludCByb2NrZXJfcmVnX3Rlc3QoY29u c3Qgc3RydWN0IHJvY2tlciAqcm9ja2VyKQogCXU2NCB0ZXN0X3JlZzsKIAl1NjQgcm5kOwogCi0J cm5kID0gcHJhbmRvbV91MzIoKTsKKwlybmQgPSBnZXRfcmFuZG9tX3UzMigpOwogCXJuZCA+Pj0g MTsKIAlyb2NrZXJfd3JpdGUzMihyb2NrZXIsIFRFU1RfUkVHLCBybmQpOwogCXRlc3RfcmVnID0g cm9ja2VyX3JlYWQzMihyb2NrZXIsIFRFU1RfUkVHKTsKQEAgLTEzOSw5ICsxMzksOSBAQCBzdGF0 aWMgaW50IHJvY2tlcl9yZWdfdGVzdChjb25zdCBzdHJ1Y3Qgcm9ja2VyICpyb2NrZXIpCiAJCXJl dHVybiAtRUlPOwogCX0KIAotCXJuZCA9IHByYW5kb21fdTMyKCk7CisJcm5kID0gZ2V0X3JhbmRv bV91MzIoKTsKIAlybmQgPDw9IDMxOwotCXJuZCB8PSBwcmFuZG9tX3UzMigpOworCXJuZCB8PSBn ZXRfcmFuZG9tX3UzMigpOwogCXJvY2tlcl93cml0ZTY0KHJvY2tlciwgVEVTVF9SRUc2NCwgcm5k KTsKIAl0ZXN0X3JlZyA9IHJvY2tlcl9yZWFkNjQocm9ja2VyLCBURVNUX1JFRzY0KTsKIAlpZiAo dGVzdF9yZWcgIT0gcm5kICogMikgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3Buby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv YnJvYWRjb20vYnJjbTgwMjExL2JyY21mbWFjL3Buby5jCmluZGV4IGZhYmZiYjBiNDBiMC4uMzc0 ZTFjYzA3YTYzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9icm9hZGNvbS9icmNt ODAyMTEvYnJjbWZtYWMvcG5vLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYnJvYWRjb20v YnJjbTgwMjExL2JyY21mbWFjL3Buby5jCkBAIC0xNzcsNyArMTc3LDcgQEAgc3RhdGljIGludCBi cmNtZl9wbm9fc2V0X3JhbmRvbShzdHJ1Y3QgYnJjbWZfaWYgKmlmcCwgc3RydWN0IGJyY21mX3Bu b19pbmZvICpwaSkKIAltZW1jcHkocGZuX21hYy5tYWMsIG1hY19hZGRyLCBFVEhfQUxFTik7CiAJ Zm9yIChpID0gMDsgaSA8IEVUSF9BTEVOOyBpKyspIHsKIAkJcGZuX21hYy5tYWNbaV0gJj0gbWFj X21hc2tbaV07Ci0JCXBmbl9tYWMubWFjW2ldIHw9IGdldF9yYW5kb21faW50KCkgJiB+KG1hY19t YXNrW2ldKTsKKwkJcGZuX21hYy5tYWNbaV0gfD0gZ2V0X3JhbmRvbV91MzIoKSAmIH4obWFjX21h c2tbaV0pOwogCX0KIAkvKiBDbGVhciBtdWx0aSBiaXQgKi8KIAlwZm5fbWFjLm1hY1swXSAmPSAw eEZFOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2Nm ZzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213aWZpZXgvY2ZnODAyMTEu YwppbmRleCAxMzQxMTRhYzFhYzAuLjRmYmI1Yzg3NmIxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvd2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2NmZzgwMjExLmMKKysrIGIvZHJpdmVycy9uZXQv d2lyZWxlc3MvbWFydmVsbC9td2lmaWV4L2NmZzgwMjExLmMKQEAgLTIzOCw3ICsyMzgsNyBAQCBt d2lmaWV4X2NmZzgwMjExX21nbXRfdHgoc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IHdpcmVs ZXNzX2RldiAqd2RldiwKIAl0eF9pbmZvLT5wa3RfbGVuID0gcGt0X2xlbjsKIAogCW13aWZpZXhf Zm9ybV9tZ210X2ZyYW1lKHNrYiwgYnVmLCBsZW4pOwotCSpjb29raWUgPSBwcmFuZG9tX3UzMigp IHwgMTsKKwkqY29va2llID0gZ2V0X3JhbmRvbV91MzIoKSB8IDE7CiAKIAlpZiAoaWVlZTgwMjEx X2lzX2FjdGlvbihtZ210LT5mcmFtZV9jb250cm9sKSkKIAkJc2tiID0gbXdpZmlleF9jbG9uZV9z a2JfZm9yX3R4X3N0YXR1cyhwcml2LApAQCAtMzAyLDcgKzMwMiw3IEBAIG13aWZpZXhfY2ZnODAy MTFfcmVtYWluX29uX2NoYW5uZWwoc3RydWN0IHdpcGh5ICp3aXBoeSwKIAkJCQkJIGR1cmF0aW9u KTsKIAogCWlmICghcmV0KSB7Ci0JCSpjb29raWUgPSBwcmFuZG9tX3UzMigpIHwgMTsKKwkJKmNv b2tpZSA9IGdldF9yYW5kb21fdTMyKCkgfCAxOwogCQlwcml2LT5yb2NfY2ZnLmNvb2tpZSA9ICpj b29raWU7CiAJCXByaXYtPnJvY19jZmcuY2hhbiA9ICpjaGFuOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9taWNyb2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jCmluZGV4IDNhYzM3M2Qy OWQ5My4uODRiOWQzNDU0ZTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNy b2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9taWNy b2NoaXAvd2lsYzEwMDAvY2ZnODAyMTEuYwpAQCAtMTE1OSw3ICsxMTU5LDcgQEAgc3RhdGljIGlu dCBtZ210X3R4KHN0cnVjdCB3aXBoeSAqd2lwaHksCiAJY29uc3QgdTggKnZlbmRvcl9pZTsKIAlp bnQgcmV0ID0gMDsKIAotCSpjb29raWUgPSBwcmFuZG9tX3UzMigpOworCSpjb29raWUgPSBnZXRf cmFuZG9tX3UzMigpOwogCXByaXYtPnR4X2Nvb2tpZSA9ICpjb29raWU7CiAJbWdtdCA9IChjb25z dCBzdHJ1Y3QgaWVlZTgwMjExX21nbXQgKilidWY7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5mbWFjL2NmZzgwMjExLmMgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9xdWFudGVubmEvcXRuZm1hYy9jZmc4MDIxMS5jCmluZGV4IDE1OTNlODEwYjNjYS4uOWM1 NDE2MTQxZDNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9xdWFudGVubmEvcXRu Zm1hYy9jZmc4MDIxMS5jCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3F1YW50ZW5uYS9xdG5m bWFjL2NmZzgwMjExLmMKQEAgLTQ0OSw3ICs0NDksNyBAQCBxdG5mX21nbXRfdHgoc3RydWN0IHdp cGh5ICp3aXBoeSwgc3RydWN0IHdpcmVsZXNzX2RldiAqd2RldiwKIHsKIAlzdHJ1Y3QgcXRuZl92 aWYgKnZpZiA9IHF0bmZfbmV0ZGV2X2dldF9wcml2KHdkZXYtPm5ldGRldik7CiAJY29uc3Qgc3Ry dWN0IGllZWU4MDIxMV9tZ210ICptZ210X2ZyYW1lID0gKHZvaWQgKilwYXJhbXMtPmJ1ZjsKLQl1 MzIgc2hvcnRfY29va2llID0gcHJhbmRvbV91MzIoKTsKKwl1MzIgc2hvcnRfY29va2llID0gZ2V0 X3JhbmRvbV91MzIoKTsKIAl1MTYgZmxhZ3MgPSAwOwogCXUxNiBmcmVxOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvdGkvd2xjb3JlL21haW4uYwppbmRleCAzZTM5MjJkNGM3ODguLjI4YzBmMDZlMzExZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvdGkvd2xjb3JlL21haW4uYworKysgYi9k cml2ZXJzL25ldC93aXJlbGVzcy90aS93bGNvcmUvbWFpbi5jCkBAIC02MTAwLDcgKzYxMDAsNyBA QCBzdGF0aWMgaW50IHdsMTI3MV9yZWdpc3Rlcl9odyhzdHJ1Y3Qgd2wxMjcxICp3bCkKIAkJCXds MTI3MV93YXJuaW5nKCJGdXNlIG1hYyBhZGRyZXNzIGlzIHplcm8uIHVzaW5nIHJhbmRvbSBtYWMi KTsKIAkJCS8qIFVzZSBUSSBvdWkgYW5kIGEgcmFuZG9tIG5pYyAqLwogCQkJb3VpX2FkZHIgPSBX TENPUkVfVElfT1VJX0FERFJFU1M7Ci0JCQluaWNfYWRkciA9IGdldF9yYW5kb21faW50KCk7CisJ CQluaWNfYWRkciA9IGdldF9yYW5kb21fdTMyKCk7CiAJCX0gZWxzZSB7CiAJCQlvdWlfYWRkciA9 IHdsLT5mdXNlX291aV9hZGRyOwogCQkJLyogZnVzZSBoYXMgdGhlIEJEX0FERFIsIHRoZSBXTEFO IGFkZHJlc3NlcyBhcmUgdGhlIG5leHQgdHdvICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL252bWUv Y29tbW9uL2F1dGguYyBiL2RyaXZlcnMvbnZtZS9jb21tb24vYXV0aC5jCmluZGV4IDA0YmQyOGYx N2RjYy4uZDkwZTRmMGMwOGI3IDEwMDY0NAotLS0gYS9kcml2ZXJzL252bWUvY29tbW9uL2F1dGgu YworKysgYi9kcml2ZXJzL252bWUvY29tbW9uL2F1dGguYwpAQCAtMjMsNyArMjMsNyBAQCB1MzIg bnZtZV9hdXRoX2dldF9zZXFudW0odm9pZCkKIAogCW11dGV4X2xvY2soJm52bWVfZGhjaGFwX211 dGV4KTsKIAlpZiAoIW52bWVfZGhjaGFwX3NlcW51bSkKLQkJbnZtZV9kaGNoYXBfc2VxbnVtID0g cHJhbmRvbV91MzIoKTsKKwkJbnZtZV9kaGNoYXBfc2VxbnVtID0gZ2V0X3JhbmRvbV91MzIoKTsK IAllbHNlIHsKIAkJbnZtZV9kaGNoYXBfc2VxbnVtKys7CiAJCWlmICghbnZtZV9kaGNoYXBfc2Vx bnVtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL2N4Z2JpL2N4Z2I0aS9jeGdiNGkuYyBiL2Ry aXZlcnMvc2NzaS9jeGdiaS9jeGdiNGkvY3hnYjRpLmMKaW5kZXggNTNkOTFiZjljMTJhLi5jMDdk MmUzYjRiY2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9jeGdiaS9jeGdiNGkvY3hnYjRpLmMK KysrIGIvZHJpdmVycy9zY3NpL2N4Z2JpL2N4Z2I0aS9jeGdiNGkuYwpAQCAtMjU0LDcgKzI1NCw3 IEBAIHN0YXRpYyB2b2lkIHNlbmRfYWN0X29wZW5fcmVxKHN0cnVjdCBjeGdiaV9zb2NrICpjc2ss IHN0cnVjdCBza19idWZmICpza2IsCiAJfSBlbHNlIGlmIChpc190NShsbGRpLT5hZGFwdGVyX3R5 cGUpKSB7CiAJCXN0cnVjdCBjcGxfdDVfYWN0X29wZW5fcmVxICpyZXEgPQogCQkJCShzdHJ1Y3Qg Y3BsX3Q1X2FjdF9vcGVuX3JlcSAqKXNrYi0+aGVhZDsKLQkJdTMyIGlzbiA9IChwcmFuZG9tX3Uz MigpICYgfjdVTCkgLSAxOworCQl1MzIgaXNuID0gKGdldF9yYW5kb21fdTMyKCkgJiB+N1VMKSAt IDE7CiAKIAkJSU5JVF9UUF9XUihyZXEsIDApOwogCQlPUENPREVfVElEKHJlcSkgPSBjcHVfdG9f YmUzMihNS19PUENPREVfVElEKENQTF9BQ1RfT1BFTl9SRVEsCkBAIC0yODIsNyArMjgyLDcgQEAg c3RhdGljIHZvaWQgc2VuZF9hY3Rfb3Blbl9yZXEoc3RydWN0IGN4Z2JpX3NvY2sgKmNzaywgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKIAl9IGVsc2UgewogCQlzdHJ1Y3QgY3BsX3Q2X2FjdF9vcGVuX3Jl cSAqcmVxID0KIAkJCQkoc3RydWN0IGNwbF90Nl9hY3Rfb3Blbl9yZXEgKilza2ItPmhlYWQ7Ci0J CXUzMiBpc24gPSAocHJhbmRvbV91MzIoKSAmIH43VUwpIC0gMTsKKwkJdTMyIGlzbiA9IChnZXRf cmFuZG9tX3UzMigpICYgfjdVTCkgLSAxOwogCiAJCUlOSVRfVFBfV1IocmVxLCAwKTsKIAkJT1BD T0RFX1RJRChyZXEpID0gY3B1X3RvX2JlMzIoTUtfT1BDT0RFX1RJRChDUExfQUNUX09QRU5fUkVR LApkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvaXNjc2kvY3hnYml0L2N4Z2JpdF9jbS5jIGIv ZHJpdmVycy90YXJnZXQvaXNjc2kvY3hnYml0L2N4Z2JpdF9jbS5jCmluZGV4IDMzMzZkMmI3OGJm Ny4uZDkyMDRjNTkwZDlhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RhcmdldC9pc2NzaS9jeGdiaXQv Y3hnYml0X2NtLmMKKysrIGIvZHJpdmVycy90YXJnZXQvaXNjc2kvY3hnYml0L2N4Z2JpdF9jbS5j CkBAIC0xMjAyLDcgKzEyMDIsNyBAQCBjeGdiaXRfcGFzc19hY2NlcHRfcnBsKHN0cnVjdCBjeGdi aXRfc29jayAqY3NrLCBzdHJ1Y3QgY3BsX3Bhc3NfYWNjZXB0X3JlcSAqcmVxKQogCW9wdDIgfD0g Q09OR19DTlRSTF9WKENPTkdfQUxHX05FV1JFTk8pOwogCiAJb3B0MiB8PSBUNV9JU1NfRjsKLQly cGw1LT5pc3MgPSBjcHVfdG9fYmUzMigocHJhbmRvbV91MzIoKSAmIH43VUwpIC0gMSk7CisJcnBs NS0+aXNzID0gY3B1X3RvX2JlMzIoKGdldF9yYW5kb21fdTMyKCkgJiB+N1VMKSAtIDEpOwogCiAJ b3B0MiB8PSBUNV9PUFRfMl9WQUxJRF9GOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3RodW5kZXJi b2x0L3hkb21haW4uYyBiL2RyaXZlcnMvdGh1bmRlcmJvbHQveGRvbWFpbi5jCmluZGV4IGMzMWMw ZDk0ZDhiMy4uNzYwNzVlMjk2OTZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3RodW5kZXJib2x0L3hk b21haW4uYworKysgYi9kcml2ZXJzL3RodW5kZXJib2x0L3hkb21haW4uYwpAQCAtMjQzOCw3ICsy NDM4LDcgQEAgaW50IHRiX3hkb21haW5faW5pdCh2b2lkKQogCXRiX3Byb3BlcnR5X2FkZF9pbW1l ZGlhdGUoeGRvbWFpbl9wcm9wZXJ0eV9kaXIsICJkZXZpY2VpZCIsIDB4MSk7CiAJdGJfcHJvcGVy dHlfYWRkX2ltbWVkaWF0ZSh4ZG9tYWluX3Byb3BlcnR5X2RpciwgImRldmljZXJ2IiwgMHg4MDAw MDEwMCk7CiAKLQl4ZG9tYWluX3Byb3BlcnR5X2Jsb2NrX2dlbiA9IHByYW5kb21fdTMyKCk7CisJ eGRvbWFpbl9wcm9wZXJ0eV9ibG9ja19nZW4gPSBnZXRfcmFuZG9tX3UzMigpOwogCXJldHVybiAw OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3V2ZXNhZmIuYyBiL2RyaXZl cnMvdmlkZW8vZmJkZXYvdXZlc2FmYi5jCmluZGV4IDRkZjY3NzI4MDJkNy4uMjg1YjgzYzIwMzI2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2ZiZGV2L3V2ZXNhZmIuYworKysgYi9kcml2ZXJz L3ZpZGVvL2ZiZGV2L3V2ZXNhZmIuYwpAQCAtMTY3LDcgKzE2Nyw3IEBAIHN0YXRpYyBpbnQgdXZl c2FmYl9leGVjKHN0cnVjdCB1dmVzYWZiX2t0YXNrICp0YXNrKQogCW1lbWNweSgmbS0+aWQsICZ1 dmVzYWZiX2NuX2lkLCBzaXplb2YobS0+aWQpKTsKIAltLT5zZXEgPSBzZXE7CiAJbS0+bGVuID0g bGVuOwotCW0tPmFjayA9IHByYW5kb21fdTMyKCk7CisJbS0+YWNrID0gZ2V0X3JhbmRvbV91MzIo KTsKIAogCS8qIHV2ZXNhZmJfdGFzayBzdHJ1Y3R1cmUgKi8KIAltZW1jcHkobSArIDEsICZ0YXNr LT50LCBzaXplb2YodGFzay0+dCkpOwpkaWZmIC0tZ2l0IGEvZnMvZXhmYXQvaW5vZGUuYyBiL2Zz L2V4ZmF0L2lub2RlLmMKaW5kZXggYTc5NTQzN2I4NmQwLi41NTkwYTFlODMxMjYgMTAwNjQ0Ci0t LSBhL2ZzL2V4ZmF0L2lub2RlLmMKKysrIGIvZnMvZXhmYXQvaW5vZGUuYwpAQCAtNTUyLDcgKzU1 Miw3IEBAIHN0YXRpYyBpbnQgZXhmYXRfZmlsbF9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBz dHJ1Y3QgZXhmYXRfZGlyX2VudHJ5ICppbmZvKQogCWlub2RlLT5pX3VpZCA9IHNiaS0+b3B0aW9u cy5mc191aWQ7CiAJaW5vZGUtPmlfZ2lkID0gc2JpLT5vcHRpb25zLmZzX2dpZDsKIAlpbm9kZV9p bmNfaXZlcnNpb24oaW5vZGUpOwotCWlub2RlLT5pX2dlbmVyYXRpb24gPSBwcmFuZG9tX3UzMigp OworCWlub2RlLT5pX2dlbmVyYXRpb24gPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJaWYgKGluZm8t PmF0dHIgJiBBVFRSX1NVQkRJUikgeyAvKiBkaXJlY3RvcnkgKi8KIAkJaW5vZGUtPmlfZ2VuZXJh dGlvbiAmPSB+MTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaWFsbG9jLmMgYi9mcy9leHQ0L2lhbGxv Yy5jCmluZGV4IDM2ZDViYzU5NWNjMi4uMzk1NmUyNGZhNmU5IDEwMDY0NAotLS0gYS9mcy9leHQ0 L2lhbGxvYy5jCisrKyBiL2ZzL2V4dDQvaWFsbG9jLmMKQEAgLTEyNzksNyArMTI3OSw3IEBAIHN0 cnVjdCBpbm9kZSAqX19leHQ0X25ld19pbm9kZShzdHJ1Y3QgdXNlcl9uYW1lc3BhY2UgKm1udF91 c2VybnMsCiAJCQkJCUVYVDRfR1JPVVBfSU5GT19JQklUTUFQX0NPUlJVUFQpOwogCQlnb3RvIG91 dDsKIAl9Ci0JaW5vZGUtPmlfZ2VuZXJhdGlvbiA9IHByYW5kb21fdTMyKCk7CisJaW5vZGUtPmlf Z2VuZXJhdGlvbiA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAkvKiBQcmVjb21wdXRlIGNoZWNrc3Vt IHNlZWQgZm9yIGlub2RlIG1ldGFkYXRhICovCiAJaWYgKGV4dDRfaGFzX21ldGFkYXRhX2NzdW0o c2IpKSB7CmRpZmYgLS1naXQgYS9mcy9leHQ0L2lvY3RsLmMgYi9mcy9leHQ0L2lvY3RsLmMKaW5k ZXggM2NmM2VjNGIxYzIxLi45OWRmNWI4YWUxNDkgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvaW9jdGwu YworKysgYi9mcy9leHQ0L2lvY3RsLmMKQEAgLTQ1Myw4ICs0NTMsOCBAQCBzdGF0aWMgbG9uZyBz d2FwX2lub2RlX2Jvb3RfbG9hZGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsCiAKIAlpbm9kZS0+ aV9jdGltZSA9IGlub2RlX2JsLT5pX2N0aW1lID0gY3VycmVudF90aW1lKGlub2RlKTsKIAotCWlu b2RlLT5pX2dlbmVyYXRpb24gPSBwcmFuZG9tX3UzMigpOwotCWlub2RlX2JsLT5pX2dlbmVyYXRp b24gPSBwcmFuZG9tX3UzMigpOworCWlub2RlLT5pX2dlbmVyYXRpb24gPSBnZXRfcmFuZG9tX3Uz MigpOworCWlub2RlX2JsLT5pX2dlbmVyYXRpb24gPSBnZXRfcmFuZG9tX3UzMigpOwogCWV4dDRf cmVzZXRfaW5vZGVfc2VlZChpbm9kZSk7CiAJZXh0NF9yZXNldF9pbm9kZV9zZWVkKGlub2RlX2Js KTsKIApkaWZmIC0tZ2l0IGEvZnMvZXh0NC9tbXAuYyBiL2ZzL2V4dDQvbW1wLmMKaW5kZXggOWFm NjhhN2VjZGNmLi41ODhjYjA5YzUyOTEgMTAwNjQ0Ci0tLSBhL2ZzL2V4dDQvbW1wLmMKKysrIGIv ZnMvZXh0NC9tbXAuYwpAQCAtMjY1LDcgKzI2NSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbW1w X25ld19zZXEodm9pZCkKIAl1MzIgbmV3X3NlcTsKIAogCWRvIHsKLQkJbmV3X3NlcSA9IHByYW5k b21fdTMyKCk7CisJCW5ld19zZXEgPSBnZXRfcmFuZG9tX3UzMigpOwogCX0gd2hpbGUgKG5ld19z ZXEgPiBFWFQ0X01NUF9TRVFfTUFYKTsKIAogCXJldHVybiBuZXdfc2VxOwpkaWZmIC0tZ2l0IGEv ZnMvZjJmcy9uYW1laS5jIGIvZnMvZjJmcy9uYW1laS5jCmluZGV4IGJmMDBkNTA1N2FiYi4uOTM5 NTM2OTgyYzNlIDEwMDY0NAotLS0gYS9mcy9mMmZzL25hbWVpLmMKKysrIGIvZnMvZjJmcy9uYW1l aS5jCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW5vZGUgKmYyZnNfbmV3X2lub2Rl KHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbW50X3VzZXJucywKIAlpbm9kZS0+aV9ibG9ja3MgPSAw OwogCWlub2RlLT5pX210aW1lID0gaW5vZGUtPmlfYXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IGN1 cnJlbnRfdGltZShpbm9kZSk7CiAJRjJGU19JKGlub2RlKS0+aV9jcnRpbWUgPSBpbm9kZS0+aV9t dGltZTsKLQlpbm9kZS0+aV9nZW5lcmF0aW9uID0gcHJhbmRvbV91MzIoKTsKKwlpbm9kZS0+aV9n ZW5lcmF0aW9uID0gZ2V0X3JhbmRvbV91MzIoKTsKIAogCWlmIChTX0lTRElSKGlub2RlLT5pX21v ZGUpKQogCQlGMkZTX0koaW5vZGUpLT5pX2N1cnJlbnRfZGVwdGggPSAxOwpkaWZmIC0tZ2l0IGEv ZnMvZmF0L2lub2RlLmMgYi9mcy9mYXQvaW5vZGUuYwppbmRleCBhMzgyMzhkNzVjMDguLjFjYmNj NDYwOGRjNyAxMDA2NDQKLS0tIGEvZnMvZmF0L2lub2RlLmMKKysrIGIvZnMvZmF0L2lub2RlLmMK QEAgLTUyMyw3ICs1MjMsNyBAQCBpbnQgZmF0X2ZpbGxfaW5vZGUoc3RydWN0IGlub2RlICppbm9k ZSwgc3RydWN0IG1zZG9zX2Rpcl9lbnRyeSAqZGUpCiAJaW5vZGUtPmlfdWlkID0gc2JpLT5vcHRp b25zLmZzX3VpZDsKIAlpbm9kZS0+aV9naWQgPSBzYmktPm9wdGlvbnMuZnNfZ2lkOwogCWlub2Rl X2luY19pdmVyc2lvbihpbm9kZSk7Ci0JaW5vZGUtPmlfZ2VuZXJhdGlvbiA9IHByYW5kb21fdTMy KCk7CisJaW5vZGUtPmlfZ2VuZXJhdGlvbiA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlpZiAoKGRl LT5hdHRyICYgQVRUUl9ESVIpICYmICFJU19GUkVFKGRlLT5uYW1lKSkgewogCQlpbm9kZS0+aV9n ZW5lcmF0aW9uICY9IH4xOwpkaWZmIC0tZ2l0IGEvZnMvbmZzZC9uZnM0c3RhdGUuYyBiL2ZzL25m c2QvbmZzNHN0YXRlLmMKaW5kZXggYzVkMTk5ZDdlNmI0Li5lMTBjMTZjZDc4ODEgMTAwNjQ0Ci0t LSBhL2ZzL25mc2QvbmZzNHN0YXRlLmMKKysrIGIvZnMvbmZzZC9uZnM0c3RhdGUuYwpAQCAtNDM0 Niw4ICs0MzQ2LDggQEAgdm9pZCBuZnNkNF9pbml0X2xlYXNlc19uZXQoc3RydWN0IG5mc2RfbmV0 ICpubikKIAlubi0+bmZzZDRfZ3JhY2UgPSA5MDsKIAlubi0+c29tZWJvZHlfcmVjbGFpbWVkID0g ZmFsc2U7CiAJbm4tPnRyYWNrX3JlY2xhaW1fY29tcGxldGVzID0gZmFsc2U7Ci0Jbm4tPmNsdmVy aWZpZXJfY291bnRlciA9IHByYW5kb21fdTMyKCk7Ci0Jbm4tPmNsaWVudGlkX2Jhc2UgPSBwcmFu ZG9tX3UzMigpOworCW5uLT5jbHZlcmlmaWVyX2NvdW50ZXIgPSBnZXRfcmFuZG9tX3UzMigpOwor CW5uLT5jbGllbnRpZF9iYXNlID0gZ2V0X3JhbmRvbV91MzIoKTsKIAlubi0+Y2xpZW50aWRfY291 bnRlciA9IG5uLT5jbGllbnRpZF9iYXNlICsgMTsKIAlubi0+czJzX2NwX2NsX2lkID0gbm4tPmNs aWVudGlkX2NvdW50ZXIrKzsKIApkaWZmIC0tZ2l0IGEvZnMvbnRmczMvZnNsb2cuYyBiL2ZzL250 ZnMzL2ZzbG9nLmMKaW5kZXggZTdjNDk0MDA1MTIyLi4wZDYxMWE2YzU1MTEgMTAwNjQ0Ci0tLSBh L2ZzL250ZnMzL2ZzbG9nLmMKKysrIGIvZnMvbnRmczMvZnNsb2cuYwpAQCAtMzgxOSw3ICszODE5 LDcgQEAgaW50IGxvZ19yZXBsYXkoc3RydWN0IG50ZnNfaW5vZGUgKm5pLCBib29sICppbml0aWFs aXplZCkKIAkJfQogCiAJCWxvZ19pbml0X3BnX2hkcihsb2csIHBhZ2Vfc2l6ZSwgcGFnZV9zaXpl LCAxLCAxKTsKLQkJbG9nX2NyZWF0ZShsb2csIGxfc2l6ZSwgMCwgZ2V0X3JhbmRvbV9pbnQoKSwg ZmFsc2UsIGZhbHNlKTsKKwkJbG9nX2NyZWF0ZShsb2csIGxfc2l6ZSwgMCwgZ2V0X3JhbmRvbV91 MzIoKSwgZmFsc2UsIGZhbHNlKTsKIAogCQlsb2ctPnJhID0gcmE7CiAKQEAgLTM4OTMsNyArMzg5 Myw3IEBAIGludCBsb2dfcmVwbGF5KHN0cnVjdCBudGZzX2lub2RlICpuaSwgYm9vbCAqaW5pdGlh bGl6ZWQpCiAKIAkJLyogRG8gc29tZSBjaGVja3MgYmFzZWQgb24gd2hldGhlciB3ZSBoYXZlIGEg dmFsaWQgbG9nIHBhZ2UuICovCiAJCWlmICghcnN0X2luZm8udmFsaWRfcGFnZSkgewotCQkJb3Bl bl9sb2dfY291bnQgPSBnZXRfcmFuZG9tX2ludCgpOworCQkJb3Blbl9sb2dfY291bnQgPSBnZXRf cmFuZG9tX3UzMigpOwogCQkJZ290byBpbml0X2xvZ19pbnN0YW5jZTsKIAkJfQogCQlvcGVuX2xv Z19jb3VudCA9IGxlMzJfdG9fY3B1KHJhMi0+b3Blbl9sb2dfY291bnQpOwpAQCAtNDA0NCw3ICs0 MDQ0LDcgQEAgaW50IGxvZ19yZXBsYXkoc3RydWN0IG50ZnNfaW5vZGUgKm5pLCBib29sICppbml0 aWFsaXplZCkKIAkJbWVtY3B5KHJhLT5jbGllbnRzLCBBZGQyUHRyKHJhMiwgdDE2KSwKIAkJICAg ICAgIGxlMTZfdG9fY3B1KHJhMi0+cmFfbGVuKSAtIHQxNik7CiAKLQkJbG9nLT5jdXJyZW50X29w ZW5sb2dfY291bnQgPSBnZXRfcmFuZG9tX2ludCgpOworCQlsb2ctPmN1cnJlbnRfb3BlbmxvZ19j b3VudCA9IGdldF9yYW5kb21fdTMyKCk7CiAJCXJhLT5vcGVuX2xvZ19jb3VudCA9IGNwdV90b19s ZTMyKGxvZy0+Y3VycmVudF9vcGVubG9nX2NvdW50KTsKIAkJbG9nLT5yYV9zaXplID0gb2Zmc2V0 b2Yoc3RydWN0IFJFU1RBUlRfQVJFQSwgY2xpZW50cykgKwogCQkJICAgICAgIHNpemVvZihzdHJ1 Y3QgQ0xJRU5UX1JFQyk7CmRpZmYgLS1naXQgYS9mcy91Ymlmcy9qb3VybmFsLmMgYi9mcy91Ymlm cy9qb3VybmFsLmMKaW5kZXggNzVkYWIwYWUzOTM5Li40NjE5NjUyMDQ2Y2YgMTAwNjQ0Ci0tLSBh L2ZzL3ViaWZzL2pvdXJuYWwuYworKysgYi9mcy91Ymlmcy9qb3VybmFsLmMKQEAgLTUwMyw3ICs1 MDMsNyBAQCBzdGF0aWMgdm9pZCBtYXJrX2lub2RlX2NsZWFuKHN0cnVjdCB1Ymlmc19pbmZvICpj LCBzdHJ1Y3QgdWJpZnNfaW5vZGUgKnVpKQogc3RhdGljIHZvaWQgc2V0X2RlbnRfY29va2llKHN0 cnVjdCB1Ymlmc19pbmZvICpjLCBzdHJ1Y3QgdWJpZnNfZGVudF9ub2RlICpkZW50KQogewogCWlm IChjLT5kb3VibGVfaGFzaCkKLQkJZGVudC0+Y29va2llID0gKF9fZm9yY2UgX19sZTMyKSBwcmFu ZG9tX3UzMigpOworCQlkZW50LT5jb29raWUgPSAoX19mb3JjZSBfX2xlMzIpIGdldF9yYW5kb21f dTMyKCk7CiAJZWxzZQogCQlkZW50LT5jb29raWUgPSAwOwogfQpkaWZmIC0tZ2l0IGEvZnMveGZz L2xpYnhmcy94ZnNfaWFsbG9jLmMgYi9mcy94ZnMvbGlieGZzL3hmc19pYWxsb2MuYwppbmRleCA3 ODM4YjMxMTI2ZTIuLjk0ZGI1MGViNzA2YSAxMDA2NDQKLS0tIGEvZnMveGZzL2xpYnhmcy94ZnNf aWFsbG9jLmMKKysrIGIvZnMveGZzL2xpYnhmcy94ZnNfaWFsbG9jLmMKQEAgLTgwNSw3ICs4MDUs NyBAQCB4ZnNfaWFsbG9jX2FnX2FsbG9jKAogCSAqIG51bWJlciBmcm9tIGJlaW5nIGVhc2lseSBn dWVzc2FibGUuCiAJICovCiAJZXJyb3IgPSB4ZnNfaWFsbG9jX2lub2RlX2luaXQoYXJncy5tcCwg dHAsIE5VTEwsIG5ld2xlbiwgcGFnLT5wYWdfYWdubywKLQkJCWFyZ3MuYWdibm8sIGFyZ3MubGVu LCBwcmFuZG9tX3UzMigpKTsKKwkJCWFyZ3MuYWdibm8sIGFyZ3MubGVuLCBnZXRfcmFuZG9tX3Uz MigpKTsKIAogCWlmIChlcnJvcikKIAkJcmV0dXJuIGVycm9yOwpkaWZmIC0tZ2l0IGEvZnMveGZz L3hmc19pY2FjaGUuYyBiL2ZzL3hmcy94ZnNfaWNhY2hlLmMKaW5kZXggMmJiZTc5MTZhOTk4Li5l YWU3NDI3MDYyY2YgMTAwNjQ0Ci0tLSBhL2ZzL3hmcy94ZnNfaWNhY2hlLmMKKysrIGIvZnMveGZz L3hmc19pY2FjaGUuYwpAQCAtNTk2LDcgKzU5Niw3IEBAIHhmc19pZ2V0X2NhY2hlX21pc3MoCiAJ ICovCiAJaWYgKHhmc19oYXNfdjNpbm9kZXMobXApICYmCiAJICAgIChmbGFncyAmIFhGU19JR0VU X0NSRUFURSkgJiYgIXhmc19oYXNfaWtlZXAobXApKSB7Ci0JCVZGU19JKGlwKS0+aV9nZW5lcmF0 aW9uID0gcHJhbmRvbV91MzIoKTsKKwkJVkZTX0koaXApLT5pX2dlbmVyYXRpb24gPSBnZXRfcmFu ZG9tX3UzMigpOwogCX0gZWxzZSB7CiAJCXN0cnVjdCB4ZnNfYnVmCQkqYnA7CiAKZGlmZiAtLWdp dCBhL2ZzL3hmcy94ZnNfbG9nLmMgYi9mcy94ZnMveGZzX2xvZy5jCmluZGV4IDM4NmIwMzA3YWVk OC4uYWQ4NjUyY2JmMjQ1IDEwMDY0NAotLS0gYS9mcy94ZnMveGZzX2xvZy5jCisrKyBiL2ZzL3hm cy94ZnNfbG9nLmMKQEAgLTM1NDQsNyArMzU0NCw3IEBAIHhsb2dfdGlja2V0X2FsbG9jKAogCXRp Yy0+dF9jdXJyX3JlcwkJPSB1bml0X3JlczsKIAl0aWMtPnRfY250CQk9IGNudDsKIAl0aWMtPnRf b2NudAkJPSBjbnQ7Ci0JdGljLT50X3RpZAkJPSBwcmFuZG9tX3UzMigpOworCXRpYy0+dF90aWQJ CT0gZ2V0X3JhbmRvbV91MzIoKTsKIAlpZiAocGVybWFuZW50KQogCQl0aWMtPnRfZmxhZ3MgfD0g WExPR19USUNfUEVSTV9SRVNFUlY7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldGZpbHRl ci9uZl9xdWV1ZS5oIGIvaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mX3F1ZXVlLmgKaW5kZXggOTgw ZGFhNmUxZTNhLi5jODEwMjFhYjA3YWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L25ldGZpbHRl ci9uZl9xdWV1ZS5oCisrKyBiL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZl9xdWV1ZS5oCkBAIC00 Myw3ICs0Myw3IEBAIHZvaWQgbmZfcXVldWVfZW50cnlfZnJlZShzdHJ1Y3QgbmZfcXVldWVfZW50 cnkgKmVudHJ5KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X2hhc2hyYW5kb20odTMyICpqaGFz aF9pbml0dmFsKQogewogCXdoaWxlICgqamhhc2hfaW5pdHZhbCA9PSAwKQotCQkqamhhc2hfaW5p dHZhbCA9IHByYW5kb21fdTMyKCk7CisJCSpqaGFzaF9pbml0dmFsID0gZ2V0X3JhbmRvbV91MzIo KTsKIH0KIAogc3RhdGljIGlubGluZSB1MzIgaGFzaF92NChjb25zdCBzdHJ1Y3QgaXBoZHIgKmlw aCwgdTMyIGluaXR2YWwpCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9yZWQuaCBiL2luY2x1ZGUv bmV0L3JlZC5oCmluZGV4IGJlMTFkYmQyNjQ5Mi4uNTZkMDY0N2Q3MzU2IDEwMDY0NAotLS0gYS9p bmNsdWRlL25ldC9yZWQuaAorKysgYi9pbmNsdWRlL25ldC9yZWQuaApAQCAtMzY0LDcgKzM2NCw3 IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyByZWRfY2FsY19xYXZnKGNvbnN0IHN0cnVj dCByZWRfcGFybXMgKnAsCiAKIHN0YXRpYyBpbmxpbmUgdTMyIHJlZF9yYW5kb20oY29uc3Qgc3Ry dWN0IHJlZF9wYXJtcyAqcCkKIHsKLQlyZXR1cm4gcmVjaXByb2NhbF9kaXZpZGUocHJhbmRvbV91 MzIoKSwgcC0+bWF4X1BfcmVjaXByb2NhbCk7CisJcmV0dXJuIHJlY2lwcm9jYWxfZGl2aWRlKGdl dF9yYW5kb21fdTMyKCksIHAtPm1heF9QX3JlY2lwcm9jYWwpOwogfQogCiBzdGF0aWMgaW5saW5l IGludCByZWRfbWFya19wcm9iYWJpbGl0eShjb25zdCBzdHJ1Y3QgcmVkX3Bhcm1zICpwLApkaWZm IC0tZ2l0IGEvaW5jbHVkZS9uZXQvc29jay5oIGIvaW5jbHVkZS9uZXQvc29jay5oCmluZGV4IGQw OGNmZTE5MGE3OC4uY2EyYjI2Njg2Njc3IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9zb2NrLmgK KysrIGIvaW5jbHVkZS9uZXQvc29jay5oCkBAIC0yMDkxLDcgKzIwOTEsNyBAQCBzdGF0aWMgaW5s aW5lIGt1aWRfdCBzb2NrX25ldF91aWQoY29uc3Qgc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1 Y3Qgc29jayAqc2spCiAKIHN0YXRpYyBpbmxpbmUgdTMyIG5ldF90eF9ybmRoYXNoKHZvaWQpCiB7 Ci0JdTMyIHYgPSBwcmFuZG9tX3UzMigpOworCXUzMiB2ID0gZ2V0X3JhbmRvbV91MzIoKTsKIAog CXJldHVybiB2ID86IDE7CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2Jsb29tX2ZpbHRlci5j IGIva2VybmVsL2JwZi9ibG9vbV9maWx0ZXIuYwppbmRleCBiOWVhNTM5YTU1NjEuLjQ4ZWU3NTA4 NDlmMiAxMDA2NDQKLS0tIGEva2VybmVsL2JwZi9ibG9vbV9maWx0ZXIuYworKysgYi9rZXJuZWwv YnBmL2Jsb29tX2ZpbHRlci5jCkBAIC0xNTgsNyArMTU4LDcgQEAgc3RhdGljIHN0cnVjdCBicGZf bWFwICpibG9vbV9tYXBfYWxsb2ModW5pb24gYnBmX2F0dHIgKmF0dHIpCiAJCQlhdHRyLT52YWx1 ZV9zaXplIC8gc2l6ZW9mKHUzMik7CiAKIAlpZiAoIShhdHRyLT5tYXBfZmxhZ3MgJiBCUEZfRl9a RVJPX1NFRUQpKQotCQlibG9vbS0+aGFzaF9zZWVkID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJYmxv b20tPmhhc2hfc2VlZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAlyZXR1cm4gJmJsb29tLT5tYXA7 CiB9CmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL2NvcmUuYyBiL2tlcm5lbC9icGYvY29yZS5jCmlu ZGV4IGFkZTZiMDNiMWQ5Yi4uZjZiMzQ4NmYwMDFhIDEwMDY0NAotLS0gYS9rZXJuZWwvYnBmL2Nv cmUuYworKysgYi9rZXJuZWwvYnBmL2NvcmUuYwpAQCAtMTIxMSw3ICsxMjExLDcgQEAgc3RhdGlj IGludCBicGZfaml0X2JsaW5kX2luc24oY29uc3Qgc3RydWN0IGJwZl9pbnNuICpmcm9tLAogCQkJ ICAgICAgYm9vbCBlbWl0X3pleHQpCiB7CiAJc3RydWN0IGJwZl9pbnNuICp0byA9IHRvX2J1ZmY7 Ci0JdTMyIGltbV9ybmQgPSBnZXRfcmFuZG9tX2ludCgpOworCXUzMiBpbW1fcm5kID0gZ2V0X3Jh bmRvbV91MzIoKTsKIAlzMTYgb2ZmOwogCiAJQlVJTERfQlVHX09OKEJQRl9SRUdfQVggICsgMSAh PSBNQVhfQlBGX0pJVF9SRUcpOwpkaWZmIC0tZ2l0IGEva2VybmVsL2JwZi9oYXNodGFiLmMgYi9r ZXJuZWwvYnBmL2hhc2h0YWIuYwppbmRleCA2YzUzMGE1ZTU2MGEuLjFkMzYxNzM1OThhMCAxMDA2 NDQKLS0tIGEva2VybmVsL2JwZi9oYXNodGFiLmMKKysrIGIva2VybmVsL2JwZi9oYXNodGFiLmMK QEAgLTU0Niw3ICs1NDYsNyBAQCBzdGF0aWMgc3RydWN0IGJwZl9tYXAgKmh0YWJfbWFwX2FsbG9j KHVuaW9uIGJwZl9hdHRyICphdHRyKQogCWlmIChodGFiLT5tYXAubWFwX2ZsYWdzICYgQlBGX0Zf WkVST19TRUVEKQogCQlodGFiLT5oYXNocm5kID0gMDsKIAllbHNlCi0JCWh0YWItPmhhc2hybmQg PSBnZXRfcmFuZG9tX2ludCgpOworCQlodGFiLT5oYXNocm5kID0gZ2V0X3JhbmRvbV91MzIoKTsK IAogCWh0YWJfaW5pdF9idWNrZXRzKGh0YWIpOwogCmRpZmYgLS1naXQgYS9rZXJuZWwvYnBmL3Zl cmlmaWVyLmMgYi9rZXJuZWwvYnBmL3ZlcmlmaWVyLmMKaW5kZXggM2VhZGIxNGUwOTBiLi45NDNh ZjVhYmRjMTggMTAwNjQ0Ci0tLSBhL2tlcm5lbC9icGYvdmVyaWZpZXIuYworKysgYi9rZXJuZWwv YnBmL3ZlcmlmaWVyLmMKQEAgLTEzMzE3LDcgKzEzMzE3LDcgQEAgc3RhdGljIGludCBvcHRfc3Vi cmVnX3pleHRfbG8zMl9ybmRfaGkzMihzdHJ1Y3QgYnBmX3ZlcmlmaWVyX2VudiAqZW52LAogCQkJ ICAgIGF1eFthZGpfaWR4XS5wdHJfdHlwZSA9PSBQVFJfVE9fQ1RYKQogCQkJCWNvbnRpbnVlOwog Ci0JCQlpbW1fcm5kID0gZ2V0X3JhbmRvbV9pbnQoKTsKKwkJCWltbV9ybmQgPSBnZXRfcmFuZG9t X3UzMigpOwogCQkJcm5kX2hpMzJfcGF0Y2hbMF0gPSBpbnNuOwogCQkJcm5kX2hpMzJfcGF0Y2hb MV0uaW1tID0gaW1tX3JuZDsKIAkJCXJuZF9oaTMyX3BhdGNoWzNdLmRzdF9yZWcgPSBsb2FkX3Jl ZzsKZGlmZiAtLWdpdCBhL2tlcm5lbC9rY3Nhbi9zZWxmdGVzdC5jIGIva2VybmVsL2tjc2FuL3Nl bGZ0ZXN0LmMKaW5kZXggNzU3MTI5NTljODRlLi41OGI5NGRlYWU1YzAgMTAwNjQ0Ci0tLSBhL2tl cm5lbC9rY3Nhbi9zZWxmdGVzdC5jCisrKyBiL2tlcm5lbC9rY3Nhbi9zZWxmdGVzdC5jCkBAIC0y Niw3ICsyNiw3IEBACiBzdGF0aWMgYm9vbCBfX2luaXQgdGVzdF9yZXF1aXJlcyh2b2lkKQogewog CS8qIHJhbmRvbSBzaG91bGQgYmUgaW5pdGlhbGl6ZWQgZm9yIHRoZSBiZWxvdyB0ZXN0cyAqLwot CXJldHVybiBwcmFuZG9tX3UzMigpICsgcHJhbmRvbV91MzIoKSAhPSAwOworCXJldHVybiBnZXRf cmFuZG9tX3UzMigpICsgZ2V0X3JhbmRvbV91MzIoKSAhPSAwOwogfQogCiAvKgpkaWZmIC0tZ2l0 IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuYwppbmRleCBkNWQ5MDI5MzYyY2IuLmQ0 ZjE5ZTFhNjlkNCAxMDA2NDQKLS0tIGEvbGliL3JhbmRvbTMyLmMKKysrIGIvbGliL3JhbmRvbTMy LmMKQEAgLTQ3LDcgKzQ3LDcgQEAKICAqCUBzdGF0ZTogcG9pbnRlciB0byBzdGF0ZSBzdHJ1Y3R1 cmUgaG9sZGluZyBzZWVkZWQgc3RhdGUuCiAgKgogICoJVGhpcyBpcyB1c2VkIGZvciBwc2V1ZG8t cmFuZG9tbmVzcyB3aXRoIG5vIG91dHNpZGUgc2VlZGluZy4KLSAqCUZvciBtb3JlIHJhbmRvbSBy ZXN1bHRzLCB1c2UgcHJhbmRvbV91MzIoKS4KKyAqCUZvciBtb3JlIHJhbmRvbSByZXN1bHRzLCB1 c2UgZ2V0X3JhbmRvbV91MzIoKS4KICAqLwogdTMyIHByYW5kb21fdTMyX3N0YXRlKHN0cnVjdCBy bmRfc3RhdGUgKnN0YXRlKQogewpkaWZmIC0tZ2l0IGEvbGliL3JlZWRfc29sb21vbi90ZXN0X3Jz bGliLmMgYi9saWIvcmVlZF9zb2xvbW9uL3Rlc3RfcnNsaWIuYwppbmRleCA0ZDI0MWJkYzg4YWEu Ljg0OGU3ZWI1ZGE5MiAxMDA2NDQKLS0tIGEvbGliL3JlZWRfc29sb21vbi90ZXN0X3JzbGliLmMK KysrIGIvbGliL3JlZWRfc29sb21vbi90ZXN0X3JzbGliLmMKQEAgLTE2NCw3ICsxNjQsNyBAQCBz dGF0aWMgaW50IGdldF9yY3dfd2Uoc3RydWN0IHJzX2NvbnRyb2wgKnJzLCBzdHJ1Y3Qgd3NwYWNl ICp3cywKIAogCS8qIExvYWQgYyB3aXRoIHJhbmRvbSBkYXRhIGFuZCBlbmNvZGUgKi8KIAlmb3Ig KGkgPSAwOyBpIDwgZGxlbjsgaSsrKQotCQljW2ldID0gcHJhbmRvbV91MzIoKSAmIG5uOworCQlj W2ldID0gZ2V0X3JhbmRvbV91MzIoKSAmIG5uOwogCiAJbWVtc2V0KGMgKyBkbGVuLCAwLCBucm9v dHMgKiBzaXplb2YoKmMpKTsKIAllbmNvZGVfcnMxNihycywgYywgZGxlbiwgYyArIGRsZW4sIDAp OwpAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBpbnQgZ2V0X3Jjd193ZShzdHJ1Y3QgcnNfY29u dHJvbCAqcnMsIHN0cnVjdCB3c3BhY2UgKndzLAogCWZvciAoaSA9IDA7IGkgPCBlcnJzOyBpKysp IHsKIAkJZG8gewogCQkJLyogRXJyb3IgdmFsdWUgbXVzdCBiZSBub256ZXJvICovCi0JCQllcnJ2 YWwgPSBwcmFuZG9tX3UzMigpICYgbm47CisJCQllcnJ2YWwgPSBnZXRfcmFuZG9tX3UzMigpICYg bm47CiAJCX0gd2hpbGUgKGVycnZhbCA9PSAwKTsKIAogCQlkbyB7CkBAIC0yMDYsNyArMjA2LDcg QEAgc3RhdGljIGludCBnZXRfcmN3X3dlKHN0cnVjdCByc19jb250cm9sICpycywgc3RydWN0IHdz cGFjZSAqd3MsCiAJCQkvKiBFcmFzdXJlIHdpdGggY29ycnVwdGVkIHN5bWJvbCAqLwogCQkJZG8g ewogCQkJCS8qIEVycm9yIHZhbHVlIG11c3QgYmUgbm9uemVybyAqLwotCQkJCWVycnZhbCA9IHBy YW5kb21fdTMyKCkgJiBubjsKKwkJCQllcnJ2YWwgPSBnZXRfcmFuZG9tX3UzMigpICYgbm47CiAJ CQl9IHdoaWxlIChlcnJ2YWwgPT0gMCk7CiAKIAkJCWVycmxvY3NbZXJybG9jXSA9IDE7CmRpZmYg LS1naXQgYS9saWIvdGVzdF9mcHJvYmUuYyBiL2xpYi90ZXN0X2Zwcm9iZS5jCmluZGV4IGVkNzA2 MzdhMmZmYS4uZTAzODFiM2VjNDEwIDEwMDY0NAotLS0gYS9saWIvdGVzdF9mcHJvYmUuYworKysg Yi9saWIvdGVzdF9mcHJvYmUuYwpAQCAtMTQ1LDcgKzE0NSw3IEBAIHN0YXRpYyB1bnNpZ25lZCBs b25nIGdldF9mdHJhY2VfbG9jYXRpb24odm9pZCAqZnVuYykKIHN0YXRpYyBpbnQgZnByb2JlX3Rl c3RfaW5pdChzdHJ1Y3Qga3VuaXQgKnRlc3QpCiB7CiAJZG8gewotCQlyYW5kMSA9IHByYW5kb21f dTMyKCk7CisJCXJhbmQxID0gZ2V0X3JhbmRvbV91MzIoKTsKIAl9IHdoaWxlIChyYW5kMSA8PSBk aXZfZmFjdG9yKTsKIAogCXRhcmdldCA9IGZwcm9iZV9zZWxmdGVzdF90YXJnZXQ7CmRpZmYgLS1n aXQgYS9saWIvdGVzdF9rcHJvYmVzLmMgYi9saWIvdGVzdF9rcHJvYmVzLmMKaW5kZXggYTVlZGMy ZWJjOTQ3Li5lZWIxZDcyOGQ5NzQgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0X2twcm9iZXMuYworKysg Yi9saWIvdGVzdF9rcHJvYmVzLmMKQEAgLTM0MSw3ICszNDEsNyBAQCBzdGF0aWMgaW50IGtwcm9i ZXNfdGVzdF9pbml0KHN0cnVjdCBrdW5pdCAqdGVzdCkKIAlzdGFja3RyYWNlX2RyaXZlciA9IGtw cm9iZV9zdGFja3RyYWNlX2RyaXZlcjsKIAogCWRvIHsKLQkJcmFuZDEgPSBwcmFuZG9tX3UzMigp OworCQlyYW5kMSA9IGdldF9yYW5kb21fdTMyKCk7CiAJfSB3aGlsZSAocmFuZDEgPD0gZGl2X2Zh Y3Rvcik7CiAJcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9saWIvdGVzdF9taW5faGVhcC5jIGIv bGliL3Rlc3RfbWluX2hlYXAuYwppbmRleCBkMTljODA4MGZkNGQuLjdiMDFiNDM4N2NmYiAxMDA2 NDQKLS0tIGEvbGliL3Rlc3RfbWluX2hlYXAuYworKysgYi9saWIvdGVzdF9taW5faGVhcC5jCkBA IC04Myw3ICs4Myw3IEBAIHN0YXRpYyBfX2luaXQgaW50IHRlc3RfaGVhcGlmeV9hbGwoYm9vbCBt aW5faGVhcCkKIAkvKiBUZXN0IHdpdGggcmFuZG9tbHkgZ2VuZXJhdGVkIHZhbHVlcy4gKi8KIAlo ZWFwLm5yID0gQVJSQVlfU0laRSh2YWx1ZXMpOwogCWZvciAoaSA9IDA7IGkgPCBoZWFwLm5yOyBp KyspCi0JCXZhbHVlc1tpXSA9IGdldF9yYW5kb21faW50KCk7CisJCXZhbHVlc1tpXSA9IGdldF9y YW5kb21fdTMyKCk7CiAKIAltaW5faGVhcGlmeV9hbGwoJmhlYXAsICZmdW5jcyk7CiAJZXJyICs9 IHBvcF92ZXJpZnlfaGVhcChtaW5faGVhcCwgJmhlYXAsICZmdW5jcyk7CkBAIC0xMTYsNyArMTE2 LDcgQEAgc3RhdGljIF9faW5pdCBpbnQgdGVzdF9oZWFwX3B1c2goYm9vbCBtaW5faGVhcCkKIAog CS8qIFRlc3Qgd2l0aCByYW5kb21seSBnZW5lcmF0ZWQgdmFsdWVzLiAqLwogCXdoaWxlIChoZWFw Lm5yIDwgaGVhcC5zaXplKSB7Ci0JCXRlbXAgPSBnZXRfcmFuZG9tX2ludCgpOworCQl0ZW1wID0g Z2V0X3JhbmRvbV91MzIoKTsKIAkJbWluX2hlYXBfcHVzaCgmaGVhcCwgJnRlbXAsICZmdW5jcyk7 CiAJfQogCWVyciArPSBwb3BfdmVyaWZ5X2hlYXAobWluX2hlYXAsICZoZWFwLCAmZnVuY3MpOwpA QCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBfX2luaXQgaW50IHRlc3RfaGVhcF9wb3BfcHVzaChi b29sIG1pbl9oZWFwKQogCiAJLyogVGVzdCB3aXRoIHJhbmRvbWx5IGdlbmVyYXRlZCB2YWx1ZXMu ICovCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGF0YSk7IGkrKykgewotCQl0ZW1wID0g Z2V0X3JhbmRvbV9pbnQoKTsKKwkJdGVtcCA9IGdldF9yYW5kb21fdTMyKCk7CiAJCW1pbl9oZWFw X3BvcF9wdXNoKCZoZWFwLCAmdGVtcCwgJmZ1bmNzKTsKIAl9CiAJZXJyICs9IHBvcF92ZXJpZnlf aGVhcChtaW5faGVhcCwgJmhlYXAsICZmdW5jcyk7CmRpZmYgLS1naXQgYS9saWIvdGVzdF9yaGFz aHRhYmxlLmMgYi9saWIvdGVzdF9yaGFzaHRhYmxlLmMKaW5kZXggNWExZGQ0NzM2YjU2Li5iMzU4 YTc0ZWQ3ZWQgMTAwNjQ0Ci0tLSBhL2xpYi90ZXN0X3JoYXNodGFibGUuYworKysgYi9saWIvdGVz dF9yaGFzaHRhYmxlLmMKQEAgLTI5MSw3ICsyOTEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCB0ZXN0 X3JobHRhYmxlKHVuc2lnbmVkIGludCBlbnRyaWVzKQogCWlmIChXQVJOX09OKGVycikpCiAJCWdv dG8gb3V0X2ZyZWU7CiAKLQlrID0gcHJhbmRvbV91MzIoKTsKKwlrID0gZ2V0X3JhbmRvbV91MzIo KTsKIAlyZXQgPSAwOwogCWZvciAoaSA9IDA7IGkgPCBlbnRyaWVzOyBpKyspIHsKIAkJcmhsX3Rl c3Rfb2JqZWN0c1tpXS52YWx1ZS5pZCA9IGs7CkBAIC0zNjksMTIgKzM2OSwxMiBAQCBzdGF0aWMg aW50IF9faW5pdCB0ZXN0X3JobHRhYmxlKHVuc2lnbmVkIGludCBlbnRyaWVzKQogCXByX2luZm8o InRlc3QgJWQgcmFuZG9tIHJobGlzdCBhZGQvZGVsZXRlIG9wZXJhdGlvbnNcbiIsIGVudHJpZXMp OwogCWZvciAoaiA9IDA7IGogPCBlbnRyaWVzOyBqKyspIHsKIAkJdTMyIGkgPSBwcmFuZG9tX3Uz Ml9tYXgoZW50cmllcyk7Ci0JCXUzMiBwcmFuZCA9IHByYW5kb21fdTMyKCk7CisJCXUzMiBwcmFu ZCA9IGdldF9yYW5kb21fdTMyKCk7CiAKIAkJY29uZF9yZXNjaGVkKCk7CiAKIAkJaWYgKHByYW5k ID09IDApCi0JCQlwcmFuZCA9IHByYW5kb21fdTMyKCk7CisJCQlwcmFuZCA9IGdldF9yYW5kb21f dTMyKCk7CiAKIAkJaWYgKHByYW5kICYgMSkgewogCQkJcHJhbmQgPj49IDE7CmRpZmYgLS1naXQg YS9tbS9zaG1lbS5jIGIvbW0vc2htZW0uYwppbmRleCA0MmU1ODg4YmY4NGQuLjZmMmNlZjczODA4 ZCAxMDA2NDQKLS0tIGEvbW0vc2htZW0uYworKysgYi9tbS9zaG1lbS5jCkBAIC0yMzMwLDcgKzIz MzAsNyBAQCBzdGF0aWMgc3RydWN0IGlub2RlICpzaG1lbV9nZXRfaW5vZGUoc3RydWN0IHN1cGVy X2Jsb2NrICpzYiwgc3RydWN0IGlub2RlICpkaXIsCiAJCWlub2RlX2luaXRfb3duZXIoJmluaXRf dXNlcl9ucywgaW5vZGUsIGRpciwgbW9kZSk7CiAJCWlub2RlLT5pX2Jsb2NrcyA9IDA7CiAJCWlu b2RlLT5pX2F0aW1lID0gaW5vZGUtPmlfbXRpbWUgPSBpbm9kZS0+aV9jdGltZSA9IGN1cnJlbnRf dGltZShpbm9kZSk7Ci0JCWlub2RlLT5pX2dlbmVyYXRpb24gPSBwcmFuZG9tX3UzMigpOworCQlp bm9kZS0+aV9nZW5lcmF0aW9uID0gZ2V0X3JhbmRvbV91MzIoKTsKIAkJaW5mbyA9IFNITUVNX0ko aW5vZGUpOwogCQltZW1zZXQoaW5mbywgMCwgKGNoYXIgKilpbm9kZSAtIChjaGFyICopaW5mbyk7 CiAJCXNwaW5fbG9ja19pbml0KCZpbmZvLT5sb2NrKTsKZGlmZiAtLWdpdCBhL21tL3NsYWIuYyBi L21tL3NsYWIuYwppbmRleCAxMGU5NjEzN2I0NGYuLjM2ZWQ3MTgyYmFkNSAxMDA2NDQKLS0tIGEv bW0vc2xhYi5jCisrKyBiL21tL3NsYWIuYwpAQCAtMjM4MCw3ICsyMzgwLDcgQEAgc3RhdGljIGJv b2wgZnJlZWxpc3Rfc3RhdGVfaW5pdGlhbGl6ZSh1bmlvbiBmcmVlbGlzdF9pbml0X3N0YXRlICpz dGF0ZSwKIAl1bnNpZ25lZCBpbnQgcmFuZDsKIAogCS8qIFVzZSBiZXN0IGVudHJvcHkgYXZhaWxh YmxlIHRvIGRlZmluZSBhIHJhbmRvbSBzaGlmdCAqLwotCXJhbmQgPSBnZXRfcmFuZG9tX2ludCgp OworCXJhbmQgPSBnZXRfcmFuZG9tX3UzMigpOwogCiAJLyogVXNlIGEgcmFuZG9tIHN0YXRlIGlm IHRoZSBwcmUtY29tcHV0ZWQgbGlzdCBpcyBub3QgYXZhaWxhYmxlICovCiAJaWYgKCFjYWNoZXAt PnJhbmRvbV9zZXEpIHsKZGlmZiAtLWdpdCBhL25ldC84MDIvZ2FycC5jIGIvbmV0LzgwMi9nYXJw LmMKaW5kZXggZjYwMTJmOGU1OWYwLi5jMWJiNjdlMjU0MzAgMTAwNjQ0Ci0tLSBhL25ldC84MDIv Z2FycC5jCisrKyBiL25ldC84MDIvZ2FycC5jCkBAIC00MDcsNyArNDA3LDcgQEAgc3RhdGljIHZv aWQgZ2FycF9qb2luX3RpbWVyX2FybShzdHJ1Y3QgZ2FycF9hcHBsaWNhbnQgKmFwcCkKIHsKIAl1 bnNpZ25lZCBsb25nIGRlbGF5OwogCi0JZGVsYXkgPSAodTY0KW1zZWNzX3RvX2ppZmZpZXMoZ2Fy cF9qb2luX3RpbWUpICogcHJhbmRvbV91MzIoKSA+PiAzMjsKKwlkZWxheSA9ICh1NjQpbXNlY3Nf dG9famlmZmllcyhnYXJwX2pvaW5fdGltZSkgKiBnZXRfcmFuZG9tX3UzMigpID4+IDMyOwogCW1v ZF90aW1lcigmYXBwLT5qb2luX3RpbWVyLCBqaWZmaWVzICsgZGVsYXkpOwogfQogCmRpZmYgLS1n aXQgYS9uZXQvODAyL21ycC5jIGIvbmV0LzgwMi9tcnAuYwppbmRleCAzNWUwNGNjNTM5MGMuLjNl OWZlOWY1ZDliZiAxMDA2NDQKLS0tIGEvbmV0LzgwMi9tcnAuYworKysgYi9uZXQvODAyL21ycC5j CkBAIC01OTIsNyArNTkyLDcgQEAgc3RhdGljIHZvaWQgbXJwX2pvaW5fdGltZXJfYXJtKHN0cnVj dCBtcnBfYXBwbGljYW50ICphcHApCiB7CiAJdW5zaWduZWQgbG9uZyBkZWxheTsKIAotCWRlbGF5 ID0gKHU2NCltc2Vjc190b19qaWZmaWVzKG1ycF9qb2luX3RpbWUpICogcHJhbmRvbV91MzIoKSA+ PiAzMjsKKwlkZWxheSA9ICh1NjQpbXNlY3NfdG9famlmZmllcyhtcnBfam9pbl90aW1lKSAqIGdl dF9yYW5kb21fdTMyKCkgPj4gMzI7CiAJbW9kX3RpbWVyKCZhcHAtPmpvaW5fdGltZXIsIGppZmZp ZXMgKyBkZWxheSk7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BrdGdlbi5jIGIvbmV0L2Nv cmUvcGt0Z2VuLmMKaW5kZXggNWNhNGY5NTMwMzRjLi5jMzc2MzA1NmM1NTQgMTAwNjQ0Ci0tLSBh L25ldC9jb3JlL3BrdGdlbi5jCisrKyBiL25ldC9jb3JlL3BrdGdlbi5jCkBAIC0yNDY0LDcgKzI0 NjQsNyBAQCBzdGF0aWMgdm9pZCBtb2RfY3VyX2hlYWRlcnMoc3RydWN0IHBrdGdlbl9kZXYgKnBr dF9kZXYpCiAJCWZvciAoaSA9IDA7IGkgPCBwa3RfZGV2LT5ucl9sYWJlbHM7IGkrKykKIAkJCWlm IChwa3RfZGV2LT5sYWJlbHNbaV0gJiBNUExTX1NUQUNLX0JPVFRPTSkKIAkJCQlwa3RfZGV2LT5s YWJlbHNbaV0gPSBNUExTX1NUQUNLX0JPVFRPTSB8Ci0JCQkJCSAgICAgKChfX2ZvcmNlIF9fYmUz MilwcmFuZG9tX3UzMigpICYKKwkJCQkJICAgICAoKF9fZm9yY2UgX19iZTMyKWdldF9yYW5kb21f dTMyKCkgJgogCQkJCQkJICAgICAgaHRvbmwoMHgwMDBmZmZmZikpOwogCX0KIApAQCAtMjU2OCw3 ICsyNTY4LDcgQEAgc3RhdGljIHZvaWQgbW9kX2N1cl9oZWFkZXJzKHN0cnVjdCBwa3RnZW5fZGV2 ICpwa3RfZGV2KQogCiAJCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAJCQkJcGt0X2Rldi0+ Y3VyX2luNl9kYWRkci5zNl9hZGRyMzJbaV0gPQotCQkJCSAgICAoKChfX2ZvcmNlIF9fYmUzMilw cmFuZG9tX3UzMigpIHwKKwkJCQkgICAgKCgoX19mb3JjZSBfX2JlMzIpZ2V0X3JhbmRvbV91MzIo KSB8CiAJCQkJICAgICAgcGt0X2Rldi0+bWluX2luNl9kYWRkci5zNl9hZGRyMzJbaV0pICYKIAkJ CQkgICAgIHBrdF9kZXYtPm1heF9pbjZfZGFkZHIuczZfYWRkcjMyW2ldKTsKIAkJCX0KZGlmZiAt LWdpdCBhL25ldC9pcHY0L3JvdXRlLmMgYi9uZXQvaXB2NC9yb3V0ZS5jCmluZGV4IDc5NWNiZTFk ZTkxMi4uMWEzN2EwN2M3MTYzIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9yb3V0ZS5jCisrKyBiL25l dC9pcHY0L3JvdXRlLmMKQEAgLTM2NjQsNyArMzY2NCw3IEBAIHN0YXRpYyBfX25ldF9pbml0IGlu dCBydF9nZW5pZF9pbml0KHN0cnVjdCBuZXQgKm5ldCkKIHsKIAlhdG9taWNfc2V0KCZuZXQtPmlw djQucnRfZ2VuaWQsIDApOwogCWF0b21pY19zZXQoJm5ldC0+Zm5oZV9nZW5pZCwgMCk7Ci0JYXRv bWljX3NldCgmbmV0LT5pcHY0LmRldl9hZGRyX2dlbmlkLCBnZXRfcmFuZG9tX2ludCgpKTsKKwlh dG9taWNfc2V0KCZuZXQtPmlwdjQuZGV2X2FkZHJfZ2VuaWQsIGdldF9yYW5kb21fdTMyKCkpOwog CXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfY2RnLmMgYi9uZXQvaXB2 NC90Y3BfY2RnLmMKaW5kZXggZGRjN2JhMDU1NGJkLi5lZmNkMTQ1ZjA2ZGIgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L3RjcF9jZGcuYworKysgYi9uZXQvaXB2NC90Y3BfY2RnLmMKQEAgLTI0Myw3ICsy NDMsNyBAQCBzdGF0aWMgYm9vbCB0Y3BfY2RnX2JhY2tvZmYoc3RydWN0IHNvY2sgKnNrLCB1MzIg Z3JhZCkKIAlzdHJ1Y3QgY2RnICpjYSA9IGluZXRfY3NrX2NhKHNrKTsKIAlzdHJ1Y3QgdGNwX3Nv Y2sgKnRwID0gdGNwX3NrKHNrKTsKIAotCWlmIChwcmFuZG9tX3UzMigpIDw9IG5leHBfdTMyKGdy YWQgKiBiYWNrb2ZmX2ZhY3RvcikpCisJaWYgKGdldF9yYW5kb21fdTMyKCkgPD0gbmV4cF91MzIo Z3JhZCAqIGJhY2tvZmZfZmFjdG9yKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKHVzZV9pbmVm ZikgewpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCA1 NjBkOWVhZGVhYTUuLjFhNWIyNDY0NTQ4ZSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysr IGIvbmV0L2lwdjQvdWRwLmMKQEAgLTI0Niw3ICsyNDYsNyBAQCBpbnQgdWRwX2xpYl9nZXRfcG9y dChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0sCiAJCWluZXRfZ2V0X2xvY2Fs X3BvcnRfcmFuZ2UobmV0LCAmbG93LCAmaGlnaCk7CiAJCXJlbWFpbmluZyA9IChoaWdoIC0gbG93 KSArIDE7CiAKLQkJcmFuZCA9IHByYW5kb21fdTMyKCk7CisJCXJhbmQgPSBnZXRfcmFuZG9tX3Uz MigpOwogCQlmaXJzdCA9IHJlY2lwcm9jYWxfc2NhbGUocmFuZCwgcmVtYWluaW5nKSArIGxvdzsK IAkJLyoKIAkJICogZm9yY2UgcmFuZCB0byBiZSBhbiBvZGQgbXVsdGlwbGUgb2YgVURQX0hUQUJM RV9TSVpFCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVsLmMgYi9uZXQvaXB2Ni9p cDZfZmxvd2xhYmVsLmMKaW5kZXggY2ViODVjNjdjZTM5Li4xODQ4MWViNzZhMGEgMTAwNjQ0Ci0t LSBhL25ldC9pcHY2L2lwNl9mbG93bGFiZWwuYworKysgYi9uZXQvaXB2Ni9pcDZfZmxvd2xhYmVs LmMKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgc3RydWN0IGlwNl9mbG93bGFiZWwgKmZsX2lu dGVybihzdHJ1Y3QgbmV0ICpuZXQsCiAJc3Bpbl9sb2NrX2JoKCZpcDZfZmxfbG9jayk7CiAJaWYg KGxhYmVsID09IDApIHsKIAkJZm9yICg7OykgewotCQkJZmwtPmxhYmVsID0gaHRvbmwocHJhbmRv bV91MzIoKSkmSVBWNl9GTE9XTEFCRUxfTUFTSzsKKwkJCWZsLT5sYWJlbCA9IGh0b25sKGdldF9y YW5kb21fdTMyKCkpJklQVjZfRkxPV0xBQkVMX01BU0s7CiAJCQlpZiAoZmwtPmxhYmVsKSB7CiAJ CQkJbGZsID0gX19mbF9sb29rdXAobmV0LCBmbC0+bGFiZWwpOwogCQkJCWlmICghbGZsKQpkaWZm IC0tZ2l0IGEvbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyBiL25ldC9pcHY2L291dHB1dF9jb3JlLmMK aW5kZXggMjg4MGRjN2Q5YTQ5Li4yNjg1YzNmMTVlOWQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L291 dHB1dF9jb3JlLmMKKysrIGIvbmV0L2lwdjYvb3V0cHV0X2NvcmUuYwpAQCAtMTgsNyArMTgsNyBA QCBzdGF0aWMgdTMyIF9faXB2Nl9zZWxlY3RfaWRlbnQoc3RydWN0IG5ldCAqbmV0LAogCXUzMiBp ZDsKIAogCWRvIHsKLQkJaWQgPSBwcmFuZG9tX3UzMigpOworCQlpZCA9IGdldF9yYW5kb21fdTMy KCk7CiAJfSB3aGlsZSAoIWlkKTsKIAogCXJldHVybiBpZDsKZGlmZiAtLWdpdCBhL25ldC9uZXRm aWx0ZXIvaXB2cy9pcF92c19jb25uLmMgYi9uZXQvbmV0ZmlsdGVyL2lwdnMvaXBfdnNfY29ubi5j CmluZGV4IGZiNjdmMWNhMjQ5NS4uOGMwNGJiNTdkZDZmIDEwMDY0NAotLS0gYS9uZXQvbmV0Zmls dGVyL2lwdnMvaXBfdnNfY29ubi5jCisrKyBiL25ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c19jb25u LmMKQEAgLTEzMDgsNyArMTMwOCw3IEBAIHZvaWQgaXBfdnNfcmFuZG9tX2Ryb3BlbnRyeShzdHJ1 Y3QgbmV0bnNfaXB2cyAqaXB2cykKIAkgKiBSYW5kb21seSBzY2FuIDEvMzIgb2YgdGhlIHdob2xl IHRhYmxlIGV2ZXJ5IHNlY29uZAogCSAqLwogCWZvciAoaWR4ID0gMDsgaWR4IDwgKGlwX3ZzX2Nv bm5fdGFiX3NpemU+PjUpOyBpZHgrKykgewotCQl1bnNpZ25lZCBpbnQgaGFzaCA9IHByYW5kb21f dTMyKCkgJiBpcF92c19jb25uX3RhYl9tYXNrOworCQl1bnNpZ25lZCBpbnQgaGFzaCA9IGdldF9y YW5kb21fdTMyKCkgJiBpcF92c19jb25uX3RhYl9tYXNrOwogCiAJCWhsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3JjdShjcCwgJmlwX3ZzX2Nvbm5fdGFiW2hhc2hdLCBjX2xpc3QpIHsKIAkJCWlmIChjcC0+ aXB2cyAhPSBpcHZzKQpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci94dF9zdGF0aXN0aWMuYyBi L25ldC9uZXRmaWx0ZXIveHRfc3RhdGlzdGljLmMKaW5kZXggMjAzZTI0YWU0NzJjLi5iMjZjMWRj ZmMyN2IgMTAwNjQ0Ci0tLSBhL25ldC9uZXRmaWx0ZXIveHRfc3RhdGlzdGljLmMKKysrIGIvbmV0 L25ldGZpbHRlci94dF9zdGF0aXN0aWMuYwpAQCAtMzQsNyArMzQsNyBAQCBzdGF0aXN0aWNfbXQo Y29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHh0X2FjdGlvbl9wYXJhbSAqcGFyKQog CiAJc3dpdGNoIChpbmZvLT5tb2RlKSB7CiAJY2FzZSBYVF9TVEFUSVNUSUNfTU9ERV9SQU5ET006 Ci0JCWlmICgocHJhbmRvbV91MzIoKSAmIDB4N0ZGRkZGRkYpIDwgaW5mby0+dS5yYW5kb20ucHJv YmFiaWxpdHkpCisJCWlmICgoZ2V0X3JhbmRvbV91MzIoKSAmIDB4N0ZGRkZGRkYpIDwgaW5mby0+ dS5yYW5kb20ucHJvYmFiaWxpdHkpCiAJCQlyZXQgPSAhcmV0OwogCQlicmVhazsKIAljYXNlIFhU X1NUQVRJU1RJQ19NT0RFX05USDoKZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3aXRjaC9hY3Rpb25z LmMgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCmluZGV4IDg2OGRiNDY2OWEyOS4uY2EzZWJm ZGIzMDIzIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCisrKyBiL25ldC9v cGVudnN3aXRjaC9hY3Rpb25zLmMKQEAgLTEwMzMsNyArMTAzMyw3IEBAIHN0YXRpYyBpbnQgc2Ft cGxlKHN0cnVjdCBkYXRhcGF0aCAqZHAsIHN0cnVjdCBza19idWZmICpza2IsCiAJYWN0aW9ucyA9 IG5sYV9uZXh0KHNhbXBsZV9hcmcsICZyZW0pOwogCiAJaWYgKChhcmctPnByb2JhYmlsaXR5ICE9 IFUzMl9NQVgpICYmCi0JICAgICghYXJnLT5wcm9iYWJpbGl0eSB8fCBwcmFuZG9tX3UzMigpID4g YXJnLT5wcm9iYWJpbGl0eSkpIHsKKwkgICAgKCFhcmctPnByb2JhYmlsaXR5IHx8IGdldF9yYW5k b21fdTMyKCkgPiBhcmctPnByb2JhYmlsaXR5KSkgewogCQlpZiAobGFzdCkKIAkJCWNvbnN1bWVf c2tiKHNrYik7CiAJCXJldHVybiAwOwpkaWZmIC0tZ2l0IGEvbmV0L3Jkcy9iaW5kLmMgYi9uZXQv cmRzL2JpbmQuYwppbmRleCA1YjVmYjRjYThkM2UuLjA1Mjc3NmRkY2MzNCAxMDA2NDQKLS0tIGEv bmV0L3Jkcy9iaW5kLmMKKysrIGIvbmV0L3Jkcy9iaW5kLmMKQEAgLTEwNCw3ICsxMDQsNyBAQCBz dGF0aWMgaW50IHJkc19hZGRfYm91bmQoc3RydWN0IHJkc19zb2NrICpycywgY29uc3Qgc3RydWN0 IGluNl9hZGRyICphZGRyLAogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCWxhc3QgPSByb3ZlcjsKIAl9 IGVsc2UgewotCQlyb3ZlciA9IG1heF90KHUxNiwgcHJhbmRvbV91MzIoKSwgMik7CisJCXJvdmVy ID0gbWF4X3QodTE2LCBnZXRfcmFuZG9tX3UzMigpLCAyKTsKIAkJbGFzdCA9IHJvdmVyIC0gMTsK IAl9CiAKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2FrZS5jIGIvbmV0L3NjaGVkL3NjaF9j YWtlLmMKaW5kZXggNjM3ZWYxNzU3OTMxLi40OGUzZTA1MjI4YTEgMTAwNjQ0Ci0tLSBhL25ldC9z Y2hlZC9zY2hfY2FrZS5jCisrKyBiL25ldC9zY2hlZC9zY2hfY2FrZS5jCkBAIC01NzMsNyArNTcz LDcgQEAgc3RhdGljIGJvb2wgY29iYWx0X3Nob3VsZF9kcm9wKHN0cnVjdCBjb2JhbHRfdmFycyAq dmFycywKIAogCS8qIFNpbXBsZSBCTFVFIGltcGxlbWVudGF0aW9uLiAgTGFjayBvZiBFQ04gaXMg ZGVsaWJlcmF0ZS4gKi8KIAlpZiAodmFycy0+cF9kcm9wKQotCQlkcm9wIHw9IChwcmFuZG9tX3Uz MigpIDwgdmFycy0+cF9kcm9wKTsKKwkJZHJvcCB8PSAoZ2V0X3JhbmRvbV91MzIoKSA8IHZhcnMt PnBfZHJvcCk7CiAKIAkvKiBPdmVybG9hZCB0aGUgZHJvcF9uZXh0IGZpZWxkIGFzIGFuIGFjdGl2 aXR5IHRpbWVvdXQgKi8KIAlpZiAoIXZhcnMtPmNvdW50KQpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVk L3NjaF9uZXRlbS5jIGIvbmV0L3NjaGVkL3NjaF9uZXRlbS5jCmluZGV4IDNjYTMyMGYxYTAzMS4u ODhjMWZhMmUxZDE1IDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMKKysrIGIvbmV0 L3NjaGVkL3NjaF9uZXRlbS5jCkBAIC0xNzEsNyArMTcxLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgbmV0ZW1fc2tiX2NiICpuZXRlbV9za2JfY2Ioc3RydWN0IHNrX2J1ZmYgKnNrYikKIHN0YXRp YyB2b2lkIGluaXRfY3JhbmRvbShzdHJ1Y3QgY3JuZHN0YXRlICpzdGF0ZSwgdW5zaWduZWQgbG9u ZyByaG8pCiB7CiAJc3RhdGUtPnJobyA9IHJobzsKLQlzdGF0ZS0+bGFzdCA9IHByYW5kb21fdTMy KCk7CisJc3RhdGUtPmxhc3QgPSBnZXRfcmFuZG9tX3UzMigpOwogfQogCiAvKiBnZXRfY3JhbmRv bSAtIGNvcnJlbGF0ZWQgcmFuZG9tIG51bWJlciBnZW5lcmF0b3IKQEAgLTE4NCw5ICsxODQsOSBA QCBzdGF0aWMgdTMyIGdldF9jcmFuZG9tKHN0cnVjdCBjcm5kc3RhdGUgKnN0YXRlKQogCXVuc2ln bmVkIGxvbmcgYW5zd2VyOwogCiAJaWYgKCFzdGF0ZSB8fCBzdGF0ZS0+cmhvID09IDApCS8qIG5v IGNvcnJlbGF0aW9uICovCi0JCXJldHVybiBwcmFuZG9tX3UzMigpOworCQlyZXR1cm4gZ2V0X3Jh bmRvbV91MzIoKTsKIAotCXZhbHVlID0gcHJhbmRvbV91MzIoKTsKKwl2YWx1ZSA9IGdldF9yYW5k b21fdTMyKCk7CiAJcmhvID0gKHU2NClzdGF0ZS0+cmhvICsgMTsKIAlhbnN3ZXIgPSAodmFsdWUg KiAoKDF1bGw8PDMyKSAtIHJobykgKyBzdGF0ZS0+bGFzdCAqIHJobykgPj4gMzI7CiAJc3RhdGUt Pmxhc3QgPSBhbnN3ZXI7CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljIHUzMiBnZXRfY3JhbmRv bShzdHJ1Y3QgY3JuZHN0YXRlICpzdGF0ZSkKIHN0YXRpYyBib29sIGxvc3NfNHN0YXRlKHN0cnVj dCBuZXRlbV9zY2hlZF9kYXRhICpxKQogewogCXN0cnVjdCBjbGdzdGF0ZSAqY2xnID0gJnEtPmNs ZzsKLQl1MzIgcm5kID0gcHJhbmRvbV91MzIoKTsKKwl1MzIgcm5kID0gZ2V0X3JhbmRvbV91MzIo KTsKIAogCS8qCiAJICogTWFrZXMgYSBjb21wYXJpc29uIGJldHdlZW4gcm5kIGFuZCB0aGUgdHJh bnNpdGlvbgpAQCAtMjY4LDE1ICsyNjgsMTUgQEAgc3RhdGljIGJvb2wgbG9zc19naWxiX2VsbChz dHJ1Y3QgbmV0ZW1fc2NoZWRfZGF0YSAqcSkKIAogCXN3aXRjaCAoY2xnLT5zdGF0ZSkgewogCWNh c2UgR09PRF9TVEFURToKLQkJaWYgKHByYW5kb21fdTMyKCkgPCBjbGctPmExKQorCQlpZiAoZ2V0 X3JhbmRvbV91MzIoKSA8IGNsZy0+YTEpCiAJCQljbGctPnN0YXRlID0gQkFEX1NUQVRFOwotCQlp ZiAocHJhbmRvbV91MzIoKSA8IGNsZy0+YTQpCisJCWlmIChnZXRfcmFuZG9tX3UzMigpIDwgY2xn LT5hNCkKIAkJCXJldHVybiB0cnVlOwogCQlicmVhazsKIAljYXNlIEJBRF9TVEFURToKLQkJaWYg KHByYW5kb21fdTMyKCkgPCBjbGctPmEyKQorCQlpZiAoZ2V0X3JhbmRvbV91MzIoKSA8IGNsZy0+ YTIpCiAJCQljbGctPnN0YXRlID0gR09PRF9TVEFURTsKLQkJaWYgKHByYW5kb21fdTMyKCkgPiBj bGctPmEzKQorCQlpZiAoZ2V0X3JhbmRvbV91MzIoKSA+IGNsZy0+YTMpCiAJCQlyZXR1cm4gdHJ1 ZTsKIAl9CiAKQEAgLTYzMiw3ICs2MzIsNyBAQCBzdGF0aWMgdm9pZCBnZXRfc2xvdF9uZXh0KHN0 cnVjdCBuZXRlbV9zY2hlZF9kYXRhICpxLCB1NjQgbm93KQogCiAJaWYgKCFxLT5zbG90X2Rpc3Qp CiAJCW5leHRfZGVsYXkgPSBxLT5zbG90X2NvbmZpZy5taW5fZGVsYXkgKwotCQkJCShwcmFuZG9t X3UzMigpICoKKwkJCQkoZ2V0X3JhbmRvbV91MzIoKSAqCiAJCQkJIChxLT5zbG90X2NvbmZpZy5t YXhfZGVsYXkgLQogCQkJCSAgcS0+c2xvdF9jb25maWcubWluX2RlbGF5KSA+PiAzMik7CiAJZWxz ZQpkaWZmIC0tZ2l0IGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMgYi9uZXQv c3VucnBjL2F1dGhfZ3NzL2dzc19rcmI1X3dyYXAuYwppbmRleCA1Zjk2ZTc1ZjllZWMuLjQ4MzM3 Njg3ODQ4YyAxMDA2NDQKLS0tIGEvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMK KysrIGIvbmV0L3N1bnJwYy9hdXRoX2dzcy9nc3Nfa3JiNV93cmFwLmMKQEAgLTEzMCw4ICsxMzAs OCBAQCBnc3Nfa3JiNV9tYWtlX2NvbmZvdW5kZXIoY2hhciAqcCwgdTMyIGNvbmZsZW4pCiAKIAkv KiBpbml0aWFsaXplIHRvIHJhbmRvbSB2YWx1ZSAqLwogCWlmIChpID09IDApIHsKLQkJaSA9IHBy YW5kb21fdTMyKCk7Ci0JCWkgPSAoaSA8PCAzMikgfCBwcmFuZG9tX3UzMigpOworCQlpID0gZ2V0 X3JhbmRvbV91MzIoKTsKKwkJaSA9IChpIDw8IDMyKSB8IGdldF9yYW5kb21fdTMyKCk7CiAJfQog CiAJc3dpdGNoIChjb25mbGVuKSB7CmRpZmYgLS1naXQgYS9uZXQvc3VucnBjL3hwcnQuYyBiL25l dC9zdW5ycGMveHBydC5jCmluZGV4IGY4ZmFlNzgxNTY0OS4uOTQwNzAwN2Y0N2FlIDEwMDY0NAot LS0gYS9uZXQvc3VucnBjL3hwcnQuYworKysgYi9uZXQvc3VucnBjL3hwcnQuYwpAQCAtMTg2OCw3 ICsxODY4LDcgQEAgeHBydF9hbGxvY194aWQoc3RydWN0IHJwY194cHJ0ICp4cHJ0KQogc3RhdGlj IHZvaWQKIHhwcnRfaW5pdF94aWQoc3RydWN0IHJwY194cHJ0ICp4cHJ0KQogewotCXhwcnQtPnhp ZCA9IHByYW5kb21fdTMyKCk7CisJeHBydC0+eGlkID0gZ2V0X3JhbmRvbV91MzIoKTsKIH0KIAog c3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL25ldC91bml4L2FmX3VuaXguYyBiL25ldC91bml4L2Fm X3VuaXguYwppbmRleCBiZjMzOGI3ODJmYzQuLjM1YmQ4MTMyMTEzZiAxMDA2NDQKLS0tIGEvbmV0 L3VuaXgvYWZfdW5peC5jCisrKyBiL25ldC91bml4L2FmX3VuaXguYwpAQCAtMTExNiw3ICsxMTE2 LDcgQEAgc3RhdGljIGludCB1bml4X2F1dG9iaW5kKHN0cnVjdCBzb2NrICpzaykKIAlhZGRyLT5u YW1lLT5zdW5fZmFtaWx5ID0gQUZfVU5JWDsKIAlyZWZjb3VudF9zZXQoJmFkZHItPnJlZmNudCwg MSk7CiAKLQlvcmRlcm51bSA9IHByYW5kb21fdTMyKCk7CisJb3JkZXJudW0gPSBnZXRfcmFuZG9t X3UzMigpOwogCWxhc3RudW0gPSBvcmRlcm51bSAmIDB4RkZGRkY7CiByZXRyeToKIAlvcmRlcm51 bSA9IChvcmRlcm51bSArIDEpICYgMHhGRkZGRjsKLS0gCjIuMzcuMwoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vz c2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1tdGQvCg==