From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E8B1C43603 for ; Mon, 16 Dec 2019 22:10:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7BC9521835 for ; Mon, 16 Dec 2019 22:10:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727431AbfLPWKR (ORCPT ); Mon, 16 Dec 2019 17:10:17 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:55986 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726448AbfLPWKR (ORCPT ); Mon, 16 Dec 2019 17:10:17 -0500 Received: from localhost (unknown [IPv6:2601:601:9f00:1c3::3d5]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id B15321551C3B4 for ; Mon, 16 Dec 2019 14:10:11 -0800 (PST) Date: Mon, 16 Dec 2019 14:10:09 -0800 (PST) Message-Id: <20191216.141009.1431387601178097325.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Dec_16_14_10_09_2019_087)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Mon, 16 Dec 2019 14:10:13 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Mon_Dec_16_14_10_09_2019_087)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.3 and v5.4 -stable, respectively. Thanks! ----Next_Part(Mon_Dec_16_14_10_09_2019_087)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_53.mbox" RnJvbSBhYzlkZmZkMzYxZGZmOTBhOWI3NGNlZDcyZWM5MTgxYjhiMTMzODRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFRodSwgNSBEZWMgMjAxOSAyMDo0Mzo0NiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMjZd IGluZXQ6IHByb3RlY3QgYWdhaW5zdCB0b28gc21hbGwgbXR1IHZhbHVlcy4KClsgVXBzdHJlYW0g Y29tbWl0IDUwMWE5MGM5NDUxMDNlODYyNzQwNjc2M2RhYzQxOGYyMGYzODM3YjIgXQoKc3l6Ym90 IHdhcyBvbmNlIGFnYWluIGFibGUgdG8gY3Jhc2ggYSBob3N0IGJ5IHNldHRpbmcgYSB2ZXJ5IHNt YWxsIG10dQpvbiBsb29wYmFjayBkZXZpY2UuCgpMZXQncyBtYWtlIGluZXRkZXZfdmFsaWRfbXR1 KCkgYXZhaWxhYmxlIGluIGluY2x1ZGUvbmV0L2lwLmgsCmFuZCB1c2UgaXQgaW4gaXBfc2V0dXBf Y29yaygpLCBzbyB0aGF0IHdlIHByb3RlY3QgYm90aCBpcF9hcHBlbmRfcGFnZSgpCmFuZCBfX2lw X2FwcGVuZF9kYXRhKCkKCkFsc28gYWRkIGEgUkVBRF9PTkNFKCkgd2hlbiB0aGUgZGV2aWNlIG10 dSBpcyByZWFkLgoKUGFpcnMgdGhpcyBsb2NrbGVzcyByZWFkIHdpdGggb25lIFdSSVRFX09OQ0Uo KSBpbiBfX2Rldl9zZXRfbXR1KCksCmV2ZW4gaWYgb3RoZXIgY29kZSBwYXRocyBtaWdodCB3cml0 ZSBvdmVyIHRoaXMgZmllbGQuCgpBZGQgYSBiaWcgY29tbWVudCBpbiBpbmNsdWRlL2xpbnV4L25l dGRldmljZS5oIGFib3V0IGRldi0+bXR1Cm5lZWRpbmcgUkVBRF9PTkNFKCkvV1JJVEVfT05DRSgp IGFubm90YXRpb25zLgoKSG9wZWZ1bGx5IHdlIHdpbGwgYWRkIHRoZSBtaXNzaW5nIG9uZXMgaW4g Zm9sbG93dXAgcGF0Y2hlcy4KClsxXQoKcmVmY291bnRfdDogc2F0dXJhdGVkOyBsZWFraW5nIG1l bW9yeS4KV0FSTklORzogQ1BVOiAwIFBJRDogOTQ2NCBhdCBsaWIvcmVmY291bnQuYzoyMiByZWZj b3VudF93YXJuX3NhdHVyYXRlKzB4MTM4LzB4MWYwIGxpYi9yZWZjb3VudC5jOjIyCktlcm5lbCBw YW5pYyAtIG5vdCBzeW5jaW5nOiBwYW5pY19vbl93YXJuIHNldCAuLi4KQ1BVOiAwIFBJRDogOTQ2 NCBDb21tOiBzeXotZXhlY3V0b3I4NTAgTm90IHRhaW50ZWQgNS40LjAtc3l6a2FsbGVyICMwCkhh cmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUg RW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sg bGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDE5Ny8weDIxMCBsaWIv ZHVtcF9zdGFjay5jOjExOAogcGFuaWMrMHgyZTMvMHg3NWMga2VybmVsL3BhbmljLmM6MjIxCiBf X3dhcm4uY29sZCsweDJmLzB4M2Uga2VybmVsL3BhbmljLmM6NTgyCiByZXBvcnRfYnVnKzB4Mjg5 LzB4MzAwIGxpYi9idWcuYzoxOTUKIGZpeHVwX2J1ZyBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzox NzQgW2lubGluZV0KIGZpeHVwX2J1ZyBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzoxNjkgW2lubGlu ZV0KIGRvX2Vycm9yX3RyYXArMHgxMWIvMHgyMDAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6MjY3 CiBkb19pbnZhbGlkX29wKzB4MzcvMHg1MCBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzoyODYKIGlu dmFsaWRfb3ArMHgyMy8weDMwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6MTAyNwpSSVA6IDAw MTA6cmVmY291bnRfd2Fybl9zYXR1cmF0ZSsweDEzOC8weDFmMCBsaWIvcmVmY291bnQuYzoyMgpD b2RlOiAwNiAzMSBmZiA4OSBkZSBlOCBjOCBmNSBlNiBmZCA4NCBkYiAwZiA4NSA2ZiBmZiBmZiBm ZiBlOCA3YiBmNCBlNiBmZCA0OCBjNyBjNyBlMCA3MSA0ZiA4OCBjNiAwNSA1NiBhNiBhNCAwNiAw MSBlOCBjNyBhOCBiNyBmZCA8MGY+IDBiIGU5IDUwIGZmIGZmIGZmIGU4IDVjIGY0IGU2IGZkIDBm IGI2IDFkIDNkIGE2IGE0IDA2IDMxIGZmIDg5ClJTUDogMDAxODpmZmZmODg4MDk2ODlmNTUwIEVG TEFHUzogMDAwMTAyODYKUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAwMDAw MCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZmZmZmZm ZmY4MTVlNDMzNiBSREk6IGZmZmZlZDEwMTJkMTNlOWMKUkJQOiBmZmZmODg4MDk2ODlmNTYwIFIw ODogZmZmZjg4ODA5YzUwYTNjMCBSMDk6IGZmZmZmYmZmZjE1ZDMxYjEKUjEwOiBmZmZmZmJmZmYx NWQzMWIwIFIxMTogZmZmZmZmZmY4YWU5OGQ4NyBSMTI6IDAwMDAwMDAwMDAwMDAwMDEKUjEzOiAw MDAwMDAwMDAwMDQwMTAwIFIxNDogZmZmZjg4ODA5OTA0MTEwNCBSMTU6IGZmZmY4ODgyMThkOTZl NDAKIHJlZmNvdW50X2FkZCBpbmNsdWRlL2xpbnV4L3JlZmNvdW50Lmg6MTkzIFtpbmxpbmVdCiBz a2Jfc2V0X293bmVyX3crMHgyYjYvMHg0MTAgbmV0L2NvcmUvc29jay5jOjE5OTkKIHNvY2tfd21h bGxvYysweGYxLzB4MTIwIG5ldC9jb3JlL3NvY2suYzoyMDk2CiBpcF9hcHBlbmRfcGFnZSsweDdl Zi8weDExOTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MTM4MwogdWRwX3NlbmRwYWdlKzB4MWM3LzB4 NDgwIG5ldC9pcHY0L3VkcC5jOjEyNzYKIGluZXRfc2VuZHBhZ2UrMHhkYi8weDE1MCBuZXQvaXB2 NC9hZl9pbmV0LmM6ODIxCiBrZXJuZWxfc2VuZHBhZ2UrMHg5Mi8weGYwIG5ldC9zb2NrZXQuYzoz Nzk0CiBzb2NrX3NlbmRwYWdlKzB4OGIvMHhjMCBuZXQvc29ja2V0LmM6OTM2CiBwaXBlX3RvX3Nl bmRwYWdlKzB4MmRhLzB4M2MwIGZzL3NwbGljZS5jOjQ1OAogc3BsaWNlX2Zyb21fcGlwZV9mZWVk IGZzL3NwbGljZS5jOjUxMiBbaW5saW5lXQogX19zcGxpY2VfZnJvbV9waXBlKzB4M2VlLzB4N2Mw IGZzL3NwbGljZS5jOjYzNgogc3BsaWNlX2Zyb21fcGlwZSsweDEwOC8weDE3MCBmcy9zcGxpY2Uu Yzo2NzEKIGdlbmVyaWNfc3BsaWNlX3NlbmRwYWdlKzB4M2MvMHg1MCBmcy9zcGxpY2UuYzo4NDIK IGRvX3NwbGljZV9mcm9tIGZzL3NwbGljZS5jOjg2MSBbaW5saW5lXQogZGlyZWN0X3NwbGljZV9h Y3RvcisweDEyMy8weDE5MCBmcy9zcGxpY2UuYzoxMDM1CiBzcGxpY2VfZGlyZWN0X3RvX2FjdG9y KzB4M2I0LzB4YTMwIGZzL3NwbGljZS5jOjk5MAogZG9fc3BsaWNlX2RpcmVjdCsweDFkYS8weDJh MCBmcy9zcGxpY2UuYzoxMDc4CiBkb19zZW5kZmlsZSsweDU5Ny8weGQwMCBmcy9yZWFkX3dyaXRl LmM6MTQ2NAogX19kb19zeXNfc2VuZGZpbGU2NCBmcy9yZWFkX3dyaXRlLmM6MTUyNSBbaW5saW5l XQogX19zZV9zeXNfc2VuZGZpbGU2NCBmcy9yZWFkX3dyaXRlLmM6MTUxMSBbaW5saW5lXQogX194 NjRfc3lzX3NlbmRmaWxlNjQrMHgxZGQvMHgyMjAgZnMvcmVhZF93cml0ZS5jOjE1MTEKIGRvX3N5 c2NhbGxfNjQrMHhmYS8weDc5MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTQKIGVudHJ5X1NZ U0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKUklQOiAwMDMzOjB4NDQxNDA5CkNvZGU6 IGU4IGFjIGU4IGZmIGZmIDQ4IDgzIGM0IDE4IGMzIDBmIDFmIDgwIDAwIDAwIDAwIDAwIDQ4IDg5 IGY4IDQ4IDg5IGY3IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRjIDhiIDRj IDI0IDA4IDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgMGYgODMgZWIgMDggZmMgZmYgYzMgNjYg MmUgMGYgMWYgODQgMDAgMDAgMDAgMDAKUlNQOiAwMDJiOjAwMDA3ZmZmYjY0YzRmNzggRUZMQUdT OiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyOApSQVg6IGZmZmZmZmZmZmZmZmZm ZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMDAwMDQ0MTQwOQpSRFg6IDAwMDAw MDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAwMDA2IFJESTogMDAwMDAwMDAwMDAwMDAwNQpS QlA6IDAwMDAwMDAwMDAwNzNiOGEgUjA4OiAwMDAwMDAwMDAwMDAwMDEwIFIwOTogMDAwMDAwMDAw MDAwMDAxMApSMTA6IDAwMDAwMDAwMDAwMTAwMDEgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjog MDAwMDAwMDAwMDQwMjE4MApSMTM6IDAwMDAwMDAwMDA0MDIyMTAgUjE0OiAwMDAwMDAwMDAwMDAw MDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApLZXJuZWwgT2Zmc2V0OiBkaXNhYmxlZApSZWJvb3Rp bmcgaW4gODY0MDAgc2Vjb25kcy4uCgpGaXhlczogMTQ3MGRkZjdmOGNlICgiaW5ldDogUmVtb3Zl IGV4cGxpY2l0IHdyaXRlIHJlZmVyZW5jZXMgdG8gc2svaW5ldCBpbiBpcF9hcHBlbmRfZGF0YSIp ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0 ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4 L25ldGRldmljZS5oIHwgIDUgKysrKysKIGluY2x1ZGUvbmV0L2lwLmggICAgICAgICAgfCAgNSAr KysrKwogbmV0L2NvcmUvZGV2LmMgICAgICAgICAgICB8ICAzICsrLQogbmV0L2lwdjQvZGV2aW5l dC5jICAgICAgICB8ICA1IC0tLS0tCiBuZXQvaXB2NC9pcF9vdXRwdXQuYyAgICAgIHwgMTMgKysr KysrKystLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oIGIvaW5jbHVkZS9s aW51eC9uZXRkZXZpY2UuaAppbmRleCA4ODI5Mjk1M2FhNmYuLjlkNjM5ZWE1MWFjZCAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGRl dmljZS5oCkBAIC0xODQ4LDYgKzE4NDgsMTEgQEAgc3RydWN0IG5ldF9kZXZpY2UgewogCXVuc2ln bmVkIGNoYXIJCWlmX3BvcnQ7CiAJdW5zaWduZWQgY2hhcgkJZG1hOwogCisJLyogTm90ZSA6IGRl di0+bXR1IGlzIG9mdGVuIHJlYWQgd2l0aG91dCBob2xkaW5nIGEgbG9jay4KKwkgKiBXcml0ZXJz IHVzdWFsbHkgaG9sZCBSVE5MLgorCSAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBSRUFEX09O Q0UoKSB0byBhbm5vdGF0ZSB0aGUgcmVhZHMsCisJICogYW5kIHRvIHVzZSBXUklURV9PTkNFKCkg dG8gYW5ub3RhdGUgdGhlIHdyaXRlcy4KKwkgKi8KIAl1bnNpZ25lZCBpbnQJCW10dTsKIAl1bnNp Z25lZCBpbnQJCW1pbl9tdHU7CiAJdW5zaWduZWQgaW50CQltYXhfbXR1OwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvaXAuaCBiL2luY2x1ZGUvbmV0L2lwLmgKaW5kZXggZTY2MDlhYjY5MTYxLi5k ZjcxMjA4NzMyMGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9u ZXQvaXAuaApAQCAtNzU5LDQgKzc1OSw5IEBAIGludCBpcF9taXNjX3Byb2NfaW5pdCh2b2lkKTsK IGludCBydG1fZ2V0cm91dGVfcGFyc2VfaXBfcHJvdG8oc3RydWN0IG5sYXR0ciAqYXR0ciwgdTgg KmlwX3Byb3RvLCB1OCBmYW1pbHksCiAJCQkJc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNr KTsKIAorc3RhdGljIGlubGluZSBib29sIGluZXRkZXZfdmFsaWRfbXR1KHVuc2lnbmVkIGludCBt dHUpCit7CisJcmV0dXJuIGxpa2VseShtdHUgPj0gSVBWNF9NSU5fTVRVKTsKK30KKwogI2VuZGlm CS8qIF9JUF9IICovCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5j CmluZGV4IDMzYjI3OGI4MjZiNS4uYWU4M2IzMDU5ZDY3IDEwMDY0NAotLS0gYS9uZXQvY29yZS9k ZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNzY2Miw3ICs3NjYyLDggQEAgaW50IF9fZGV2 X3NldF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG5ld19tdHUpCiAJaWYgKG9wcy0+ bmRvX2NoYW5nZV9tdHUpCiAJCXJldHVybiBvcHMtPm5kb19jaGFuZ2VfbXR1KGRldiwgbmV3X210 dSk7CiAKLQlkZXYtPm10dSA9IG5ld19tdHU7CisJLyogUGFpcnMgd2l0aCBhbGwgdGhlIGxvY2ts ZXNzIHJlYWRzIG9mIGRldi0+bXR1IGluIHRoZSBzdGFjayAqLworCVdSSVRFX09OQ0UoZGV2LT5t dHUsIG5ld19tdHUpOwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChfX2Rldl9zZXRfbXR1 KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2RldmluZXQuYyBiL25ldC9pcHY0L2RldmluZXQuYwpp bmRleCBhNGI1YmQ0ZDJjODkuLmU0NjMyYmQyMDI2ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZGV2 aW5ldC5jCisrKyBiL25ldC9pcHY0L2RldmluZXQuYwpAQCAtMTQ5NiwxMSArMTQ5Niw2IEBAIHN0 YXRpYyB2b2lkIGluZXRkZXZfY2hhbmdlbmFtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgaW5fZGV2aWNlICppbl9kZXYpCiAJfQogfQogCi1zdGF0aWMgYm9vbCBpbmV0ZGV2X3ZhbGlk X210dSh1bnNpZ25lZCBpbnQgbXR1KQotewotCXJldHVybiBtdHUgPj0gSVBWNF9NSU5fTVRVOwot fQotCiBzdGF0aWMgdm9pZCBpbmV0ZGV2X3NlbmRfZ3JhdHVpdG91c19hcnAoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAkJCQkJc3RydWN0IGluX2RldmljZSAqaW5fZGV2KQogCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pcF9vdXRwdXQuYyBiL25ldC9pcHY0L2lwX291dHB1dC5jCmluZGV4IGU3ODBj ZWFiMTZlMS4uY2Q2NjQ2NTU4MDZlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9vdXRwdXQuYwor KysgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwpAQCAtMTI1OCwxNSArMTI1OCwxOCBAQCBzdGF0aWMg aW50IGlwX3NldHVwX2Nvcmsoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9jb3JrICpjb3Jr LAogCQljb3JrLT5hZGRyID0gaXBjLT5hZGRyOwogCX0KIAotCS8qCi0JICogV2Ugc3RlYWwgcmVm ZXJlbmNlIHRvIHRoaXMgcm91dGUsIGNhbGxlciBzaG91bGQgbm90IHJlbGVhc2UgaXQKLQkgKi8K LQkqcnRwID0gTlVMTDsKIAljb3JrLT5mcmFnc2l6ZSA9IGlwX3NrX3VzZV9wbXR1KHNrKSA/Ci0J CQkgZHN0X210dSgmcnQtPmRzdCkgOiBydC0+ZHN0LmRldi0+bXR1OworCQkJIGRzdF9tdHUoJnJ0 LT5kc3QpIDogUkVBRF9PTkNFKHJ0LT5kc3QuZGV2LT5tdHUpOworCisJaWYgKCFpbmV0ZGV2X3Zh bGlkX210dShjb3JrLT5mcmFnc2l6ZSkpCisJCXJldHVybiAtRU5FVFVOUkVBQ0g7CiAKIAljb3Jr LT5nc29fc2l6ZSA9IGlwYy0+Z3NvX3NpemU7CisKIAljb3JrLT5kc3QgPSAmcnQtPmRzdDsKKwkv KiBXZSBzdG9sZSB0aGlzIHJvdXRlLCBjYWxsZXIgc2hvdWxkIG5vdCByZWxlYXNlIGl0LiAqLwor CSpydHAgPSBOVUxMOworCiAJY29yay0+bGVuZ3RoID0gMDsKIAljb3JrLT50dGwgPSBpcGMtPnR0 bDsKIAljb3JrLT50b3MgPSBpcGMtPnRvczsKLS0gCjIuMjAuMQoKCkZyb20gNzNmMjM4NTQzOTgw YTM0MWVmZTQ1NTkyMmVlOGY2YzQ1YjcyNGNhZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogVmxhZHlzbGF2IFRhcmFzaXVrIDx2bGFkeXNsYXZ0QG1lbGxhbm94LmNvbT4KRGF0ZTogRnJp LCA2IERlYyAyMDE5IDEzOjUxOjA1ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMi8yNl0gbXFwcmlv OiBGaXggb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gbXFwcmlvX2R1bXAKClsgVXBzdHJlYW0gY29t bWl0IDlmMTA0Yzc3MzY5MDRhYzcyMzg1YmJiNDg2NjllMGM5MjNjYTg3OWIgXQoKV2hlbiB1c2Vy IHJ1bnMgYSBjb21tYW5kIGxpa2UKdGMgcWRpc2MgYWRkIGRldiBldGgxIHJvb3QgbXFwcmlvCktB U0FOIHN0YWNrLW91dC1vZi1ib3VuZHMgd2FybmluZyBpcyBlbWl0dGVkLgpDdXJyZW50bHksIE5M QV9BTElHTiBtYWNybyB1c2VkIGluIG1xcHJpb19kdW1wIHByb3ZpZGVzIHRvbyBsYXJnZQpidWZm ZXIgc2l6ZSBhcyBhcmd1bWVudCBmb3IgbmxhX3B1dCBhbmQgbWVtY3B5IGRvd24gdGhlIGNhbGwg c3RhY2suClRoZSBmbG93IGxvb2tzIGxpa2UgdGhpczoKMS4gbmxhX3B1dCBleHBlY3RzIGV4YWN0 IG9iamVjdCBzaXplIGFzIGFuIGFyZ3VtZW50OwoyLiBMYXRlciBpdCBwcm92aWRlcyB0aGlzIHNp emUgdG8gbWVtY3B5OwozLiBUbyBjYWxjdWxhdGUgY29ycmVjdCBwYWRkaW5nIGZvciBTS0IsIG5s YV9wdXQgYXBwbGllcyBOTEFfQUxJR04KICAgbWFjcm8gaXRzZWxmLgoKVGhlcmVmb3JlLCBOTEFf QUxJR04gc2hvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoZSBubGFfcHV0IHBhcmFtZXRlci4KT3Ro ZXJ3aXNlIGl0IHdpbGwgbGVhZCB0byBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MgaW4gbWVt Y3B5LgoKRml4ZXM6IDRlOGI4NmMwNjI2OSAoIm1xcHJpbzogSW50cm9kdWNlIG5ldyBoYXJkd2Fy ZSBvZmZsb2FkIG1vZGUgYW5kIHNoYXBlciBpbiBtcXByaW8iKQpTaWduZWQtb2ZmLWJ5OiBWbGFk eXNsYXYgVGFyYXNpdWsgPHZsYWR5c2xhdnRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9t cXByaW8uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbXFwcmlvLmMgYi9uZXQvc2NoZWQvc2No X21xcHJpby5jCmluZGV4IDBkMDExM2EyNDk2Mi4uN2I2N2U0ZDhlNDQ4IDEwMDY0NAotLS0gYS9u ZXQvc2NoZWQvc2NoX21xcHJpby5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXFwcmlvLmMKQEAgLTQz Myw3ICs0MzMsNyBAQCBzdGF0aWMgaW50IG1xcHJpb19kdW1wKHN0cnVjdCBRZGlzYyAqc2NoLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlvcHQub2Zmc2V0W3RjXSA9IGRldi0+dGNfdG9fdHhxW3Rj XS5vZmZzZXQ7CiAJfQogCi0JaWYgKG5sYV9wdXQoc2tiLCBUQ0FfT1BUSU9OUywgTkxBX0FMSUdO KHNpemVvZihvcHQpKSwgJm9wdCkpCisJaWYgKG5sYV9wdXQoc2tiLCBUQ0FfT1BUSU9OUywgc2l6 ZW9mKG9wdCksICZvcHQpKQogCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAogCWlmICgocHJpdi0+ ZmxhZ3MgJiBUQ19NUVBSSU9fRl9NT0RFKSAmJgotLSAKMi4yMC4xCgoKRnJvbSA4OGM0OWIyNzQ4 NjFjMjYzZmU3NzgzNWJkZTFhNTJkNzgzMGI3YTkzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRh dGU6IFR1ZSwgMyBEZWMgMjAxOSAxNjo0ODowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMjZd IG5ldDogYnJpZGdlOiBkZW55IGRldl9zZXRfbWFjX2FkZHJlc3MoKSB3aGVuCiB1bnJlZ2lzdGVy aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBjNGI0YzQyMTg1N2RjN2IxY2YwZGNjYmQ3Mzg0NzIzNjBm ZjJjZDcwIF0KCldlIGhhdmUgYW4gaW50ZXJlc3RpbmcgbWVtb3J5IGxlYWsgaW4gdGhlIGJyaWRn ZSB3aGVuIGl0IGlzIGJlaW5nCnVucmVnaXN0ZXJlZCBhbmQgaXMgYSBzbGF2ZSB0byBhIG1hc3Rl ciBkZXZpY2Ugd2hpY2ggd291bGQgY2hhbmdlIHRoZQptYWMgb2YgaXRzIHNsYXZlcyBvbiB1bnJl Z2lzdGVyIChlLmcuIGJvbmQsIHRlYW0pLiBUaGlzIGlzIGEgdmVyeQp1bnVzdWFsIHNldHVwIGJ1 dCB3ZSBkbyBlbmQgdXAgbGVha2luZyAxIGZkYiBlbnRyeSBiZWNhdXNlCmRldl9zZXRfbWFjX2Fk ZHJlc3MoKSB3b3VsZCBjYXVzZSB0aGUgYnJpZGdlIHRvIGluc2VydCB0aGUgbmV3IG1hYyBhZGRy ZXNzCmludG8gaXRzIHRhYmxlIGFmdGVyIGFsbCBmZGJzIGFyZSBmbHVzaGVkLCBpLmUuIGFmdGVy IGRlbGxpbmsoKSBvbiB0aGUKYnJpZGdlIGhhcyBmaW5pc2hlZCBhbmQgd2UgY2FsbCBORVRERVZf VU5SRUdJU1RFUiB0aGUgYm9uZC90ZWFtIHdvdWxkCnJlbGVhc2UgaXQgYW5kIHdpbGwgY2FsbCBk ZXZfc2V0X21hY19hZGRyZXNzKCkgdG8gcmVzdG9yZSBpdHMgb3JpZ2luYWwKYWRkcmVzcyBhbmQg dGhhdCBpbiB0dXJuIHdpbGwgYWRkIGFuIGZkYiBpbiB0aGUgYnJpZGdlLgpPbmUgZml4IGlzIHRv IGNoZWNrIGZvciB0aGUgYnJpZGdlIGRldidzIHJlZ19zdGF0ZSBpbiBpdHMKbmRvX3NldF9tYWNf YWRkcmVzcyBjYWxsYmFjayBhbmQgcmV0dXJuIGFuIGVycm9yIGlmIHRoZSBicmlkZ2UgaXMgbm90 IGluCk5FVFJFR19SRUdJU1RFUkVELgoKRWFzeSBzdGVwcyB0byByZXByb2R1Y2U6CiAxLiBhZGQg Ym9uZCBpbiBtb2RlICE9IEEvQgogMi4gYWRkIGFueSBzbGF2ZSB0byB0aGUgYm9uZAogMy4gYWRk IGJyaWRnZSBkZXYgYXMgYSBzbGF2ZSB0byB0aGUgYm9uZAogNC4gZGVzdHJveSB0aGUgYnJpZGdl IGRldmljZQoKVHJhY2U6CiB1bnJlZmVyZW5jZWQgb2JqZWN0IDB4ZmZmZjg4ODAzNWM0ZDA4MCAo c2l6ZSAxMjgpOgogICBjb21tICJpcCIsIHBpZCA0MDY4LCBqaWZmaWVzIDQyOTYyMDk0MjkgKGFn ZSAxNDEzLjc1M3MpCiAgIGhleCBkdW1wIChmaXJzdCAzMiBieXRlcyk6CiAgICAgNDEgMWQgYzkg MzYgODAgODggZmYgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIEEuLjYuLi4uLi4uLi4uLi4K ICAgICBkMiAxOSBjOSA1ZSAzZiBkNyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4u Xj8uLi4uLi4uLi4uLgogICBiYWNrdHJhY2U6CiAgICAgWzwwMDAwMDAwMGRkYjUyNWRjPl0ga21l bV9jYWNoZV9hbGxvYysweDE1NS8weDI2ZgogICAgIFs8MDAwMDAwMDA2MzNmZjFlMD5dIGZkYl9j cmVhdGUrMHgyMS8weDQ4NiBbYnJpZGdlXQogICAgIFs8MDAwMDAwMDA5MmIxN2U5Yz5dIGZkYl9p bnNlcnQrMHg5MS8weGRjIFticmlkZ2VdCiAgICAgWzwwMDAwMDAwMGYyYTBmMGZmPl0gYnJfZmRi X2NoYW5nZV9tYWNfYWRkcmVzcysweGIzLzB4MTc1IFticmlkZ2VdCiAgICAgWzwwMDAwMDAwMDFk ZTAyZGJkPl0gYnJfc3RwX2NoYW5nZV9icmlkZ2VfaWQrMHhmLzB4ZmYgW2JyaWRnZV0KICAgICBb PDAwMDAwMDAwYWMwZTMyYjE+XSBicl9zZXRfbWFjX2FkZHJlc3MrMHg3Ni8weDk5IFticmlkZ2Vd CiAgICAgWzwwMDAwMDAwMDY4NDZhNzdmPl0gZGV2X3NldF9tYWNfYWRkcmVzcysweDYzLzB4OWIK ICAgICBbPDAwMDAwMDAwZDMwNzM4ZmM+XSBfX2JvbmRfcmVsZWFzZV9vbmUrMHgzZjYvMHg0NTUg W2JvbmRpbmddCiAgICAgWzwwMDAwMDAwMGZjN2VjMDFkPl0gYm9uZF9uZXRkZXZfZXZlbnQrMHgy ZjIvMHg0MDAgW2JvbmRpbmddCiAgICAgWzwwMDAwMDAwMDMwNWQ3Nzk1Pl0gbm90aWZpZXJfY2Fs bF9jaGFpbisweDM4LzB4NTYKICAgICBbPDAwMDAwMDAwMjg4ODVkNGE+XSBjYWxsX25ldGRldmlj ZV9ub3RpZmllcnMrMHgxZS8weDIzCiAgICAgWzwwMDAwMDAwMDgyNzk0NzdiPl0gcm9sbGJhY2tf cmVnaXN0ZXJlZF9tYW55KzB4MzUzLzB4NmE0CiAgICAgWzwwMDAwMDAwMDE4ZWY3NTNhPl0gdW5y ZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSsweDE3LzB4NmYKICAgICBbPDAwMDAwMDAwYmE4NTRiN2E+ XSBydG5sX2RlbGV0ZV9saW5rKzB4M2MvMHg0MwogICAgIFs8MDAwMDAwMDBhZGY4NjE4ZD5dIHJ0 bmxfZGVsbGluaysweDFkYy8weDIwYQogICAgIFs8MDAwMDAwMDA5YjYzOTVmZD5dIHJ0bmV0bGlu a19yY3ZfbXNnKzB4MjNkLzB4MjY4CgpGaXhlczogNDM1OTg4MTMzODZmICgiYnJpZGdlOiBhZGQg bG9jYWwgTUFDIGFkZHJlc3MgdG8gZm9yd2FyZGluZyB0YWJsZSAodjIpIikKUmVwb3J0ZWQtYnk6 IHN5emJvdCsyYWRkOTFjMDhlYjE4MWZlYTFiZkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNp Z25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtz LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9icmlkZ2UvYnJfZGV2aWNlLmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfZGV2aWNlLmMgYi9u ZXQvYnJpZGdlL2JyX2RldmljZS5jCmluZGV4IDY4MWI3Mjg2MmMxNi4uNzUwZThkYmEzOGVjIDEw MDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2RldmljZS5jCisrKyBiL25ldC9icmlkZ2UvYnJfZGV2 aWNlLmMKQEAgLTI1Myw2ICsyNTMsMTIgQEAgc3RhdGljIGludCBicl9zZXRfbWFjX2FkZHJlc3Mo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqcCkKIAlpZiAoIWlzX3ZhbGlkX2V0aGVyX2Fk ZHIoYWRkci0+c2FfZGF0YSkpCiAJCXJldHVybiAtRUFERFJOT1RBVkFJTDsKIAorCS8qIGRldl9z ZXRfbWFjX2FkZHIoKSBjYW4gYmUgY2FsbGVkIGJ5IGEgbWFzdGVyIGRldmljZSBvbiBicmlkZ2Un cworCSAqIE5FVERFVl9VTlJFR0lTVEVSLCBidXQgc2luY2UgaXQncyBiZWluZyBkZXN0cm95ZWQg ZG8gbm90aGluZworCSAqLworCWlmIChkZXYtPnJlZ19zdGF0ZSAhPSBORVRSRUdfUkVHSVNURVJF RCkKKwkJcmV0dXJuIC1FQlVTWTsKKwogCXNwaW5fbG9ja19iaCgmYnItPmxvY2spOwogCWlmICgh ZXRoZXJfYWRkcl9lcXVhbChkZXYtPmRldl9hZGRyLCBhZGRyLT5zYV9kYXRhKSkgewogCQkvKiBN YWMgYWRkcmVzcyB3aWxsIGJlIGNoYW5nZWQgaW4gYnJfc3RwX2NoYW5nZV9icmlkZ2VfaWQoKS4g Ki8KLS0gCjIuMjAuMQoKCkZyb20gYTI5NzY1ZjI3NGYxNDM5OTYwZjVhZjA1NWFlNjMxM2Y2Njlj Nzk1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIExvYmFraW4gPGFs b2Jha2luQGRsaW5rLnJ1PgpEYXRlOiBUaHUsIDUgRGVjIDIwMTkgMTM6MDI6MzUgKzAzMDAKU3Vi amVjdDogW1BBVENIIDA0LzI2XSBuZXQ6IGRzYTogZml4IGZsb3cgZGlzc2VjdGlvbiBvbiBUeCBw YXRoCgpbIFVwc3RyZWFtIGNvbW1pdCA4YmVmMGFmMDlhNTQxNWRmNzYxYjA0ZmE0ODdhNmMzNGFj YWU3NGJjIF0KCkNvbW1pdCA0M2U2NjUyODdmOTMgKCJuZXQtbmV4dDogZHNhOiBmaXggZmxvdyBk aXNzZWN0aW9uIikgYWRkZWQgYW4KYWJpbGl0eSB0byBvdmVycmlkZSBwcm90b2NvbCBhbmQgbmV0 d29yayBvZmZzZXQgZHVyaW5nIGZsb3cgZGlzc2VjdGlvbgpmb3IgRFNBLWVuYWJsZWQgZGV2aWNl cyAoaS5lLiBjb250cm9sbGVycyBzaGlwcGVkIGFzIHN3aXRjaCBDUFUgcG9ydHMpCmluIG9yZGVy IHRvIGZpeCBza2IgaGFzaGluZyBmb3IgUlBTIG9uIFJ4IHBhdGguCgpIb3dldmVyLCBza2JfaGFz aCgpIGFuZCBhZGRlZCBwYXJ0IG9mIGNvZGUgY2FuIGJlIGludm9rZWQgbm90IG9ubHkgb24KUngs IGJ1dCBhbHNvIG9uIFR4IHBhdGggaWYgd2UgaGF2ZSBhIG11bHRpLXF1ZXVlZCBkZXZpY2UgYW5k OgogLSBrZXJuZWwgaXMgcnVubmluZyBvbiBVUCBzeXN0ZW0gb3IKIC0gWFBTIGlzIG5vdCBjb25m aWd1cmVkLgoKVGhlIGNhbGwgc3RhY2sgaW4gdGhpcyB0d28gY2FzZXMgd2lsbCBiZSBsaWtlOiBk ZXZfcXVldWVfeG1pdCgpIC0+Cl9fZGV2X3F1ZXVlX3htaXQoKSAtPiBuZXRkZXZfY29yZV9waWNr X3R4KCkgLT4gbmV0ZGV2X3BpY2tfdHgoKSAtPgpza2JfdHhfaGFzaCgpIC0+IHNrYl9nZXRfaGFz aCgpLgoKVGhlIHByb2JsZW0gaXMgdGhhdCBza2JzIHF1ZXVlZCBmb3IgVHggaGF2ZSBib3RoIG5l dHdvcmsgb2Zmc2V0IGFuZApjb3JyZWN0IHByb3RvY29sIGFscmVhZHkgc2V0IHVwIGV2ZW4gYWZ0 ZXIgaW5zZXJ0aW5nIGEgQ1BVIHRhZyBieSBEU0EKdGFnZ2VyLCBzbyBjYWxsaW5nIHRhZ19vcHMt PmZsb3dfZGlzc2VjdCgpIG9uIHRoaXMgcGF0aCBhY3R1YWxseSBvbmx5CmJyZWFrcyBmbG93IGRp c3NlY3Rpb24gYW5kIGhhc2hpbmcuCgpUaGlzIGNhbiBiZSBvYnNlcnZlZCBieSBhZGRpbmcgZGVi dWcgcHJpbnRzIGp1c3QgYmVmb3JlIGFuZCByaWdodCBhZnRlcgp0YWdfb3BzLT5mbG93X2Rpc3Nl Y3QoKSBjYWxsIHRvIHRoZSByZWxhdGVkIGJsb2NrIG9mIGNvZGU6CgpCZWZvcmUgdGhlIHBhdGNo OgoKUnggcGF0aCAoUlBTKToKClsgICAxOS4yNDAwMDFdIFJ4OiBwcm90bzogMHgwMGY4LCBuaG9m ZjogMAkvKiBFVEhfUF9YRFNBICovClsgICAxOS4yNDQyNzFdIHRhZ19vcHMtPmZsb3dfZGlzc2Vj dCgpClsgICAxOS4yNDc4MTFdIFJ4OiBwcm90bzogMHgwODAwLCBuaG9mZjogOAkvKiBFVEhfUF9J UCAqLwoKWyAgIDE5LjIxNTQzNV0gUng6IHByb3RvOiAweDAwZjgsIG5ob2ZmOiAwCS8qIEVUSF9Q X1hEU0EgKi8KWyAgIDE5LjIxOTc0Nl0gdGFnX29wcy0+Zmxvd19kaXNzZWN0KCkKWyAgIDE5LjIy MzI0MV0gUng6IHByb3RvOiAweDA4MDYsIG5ob2ZmOiA4CS8qIEVUSF9QX0FSUCAqLwoKWyAgIDE4 LjY1NDA1N10gUng6IHByb3RvOiAweDAwZjgsIG5ob2ZmOiAwCS8qIEVUSF9QX1hEU0EgKi8KWyAg IDE4LjY1ODMzMl0gdGFnX29wcy0+Zmxvd19kaXNzZWN0KCkKWyAgIDE4LjY2MTgyNl0gUng6IHBy b3RvOiAweDgxMDAsIG5ob2ZmOiA4CS8qIEVUSF9QXzgwMjFRICovCgpUeCBwYXRoIChVUCBzeXN0 ZW0pOgoKWyAgIDE4Ljc1OTU2MF0gVHg6IHByb3RvOiAweDA4MDAsIG5ob2ZmOiAyNgkvKiBFVEhf UF9JUCAqLwpbICAgMTguNzYzOTMzXSB0YWdfb3BzLT5mbG93X2Rpc3NlY3QoKQpbICAgMTguNzY3 NDg1XSBUeDogcHJvdG86IDB4OTIwYiwgbmhvZmY6IDM0CS8qIGp1bmsgKi8KClsgICAyMi44MDAw MjBdIFR4OiBwcm90bzogMHgwODA2LCBuaG9mZjogMjYJLyogRVRIX1BfQVJQICovClsgICAyMi44 MDQzOTJdIHRhZ19vcHMtPmZsb3dfZGlzc2VjdCgpClsgICAyMi44MDc5MjFdIFR4OiBwcm90bzog MHg5MjBiLCBuaG9mZjogMzQJLyoganVuayAqLwoKWyAgIDE2Ljg5ODM0Ml0gVHg6IHByb3RvOiAw eDg2ZGQsIG5ob2ZmOiAyNgkvKiBFVEhfUF9JUFY2ICovClsgICAxNi45MDI3MDVdIHRhZ19vcHMt PmZsb3dfZGlzc2VjdCgpClsgICAxNi45MDYyMjddIFR4OiBwcm90bzogMHg5MjBiLCBuaG9mZjog MzQJLyoganVuayAqLwoKQWZ0ZXI6CgpSeCBwYXRoIChSUFMpOgoKWyAgIDE2LjUyMDk5M10gUng6 IHByb3RvOiAweDAwZjgsIG5ob2ZmOiAwCS8qIEVUSF9QX1hEU0EgKi8KWyAgIDE2LjUyNTI2MF0g dGFnX29wcy0+Zmxvd19kaXNzZWN0KCkKWyAgIDE2LjUyODgwOF0gUng6IHByb3RvOiAweDA4MDAs IG5ob2ZmOiA4CS8qIEVUSF9QX0lQICovCgpbICAgMTUuNDg0ODA3XSBSeDogcHJvdG86IDB4MDBm OCwgbmhvZmY6IDAJLyogRVRIX1BfWERTQSAqLwpbICAgMTUuNDkwNDE3XSB0YWdfb3BzLT5mbG93 X2Rpc3NlY3QoKQpbICAgMTUuNDk1MjIzXSBSeDogcHJvdG86IDB4MDgwNiwgbmhvZmY6IDgJLyog RVRIX1BfQVJQICovCgpbICAgMTcuMTM0NjIxXSBSeDogcHJvdG86IDB4MDBmOCwgbmhvZmY6IDAJ LyogRVRIX1BfWERTQSAqLwpbICAgMTcuMTM4ODk1XSB0YWdfb3BzLT5mbG93X2Rpc3NlY3QoKQpb ICAgMTcuMTQyMzg4XSBSeDogcHJvdG86IDB4ODEwMCwgbmhvZmY6IDgJLyogRVRIX1BfODAyMVEg Ki8KClR4IHBhdGggKFVQIHN5c3RlbSk6CgpbICAgMTUuNDk5NTU4XSBUeDogcHJvdG86IDB4MDgw MCwgbmhvZmY6IDI2CS8qIEVUSF9QX0lQICovCgpbICAgMjAuNjY0Njg5XSBUeDogcHJvdG86IDB4 MDgwNiwgbmhvZmY6IDI2CS8qIEVUSF9QX0FSUCAqLwoKWyAgIDE4LjU2NTc4Ml0gVHg6IHByb3Rv OiAweDg2ZGQsIG5ob2ZmOiAyNgkvKiBFVEhfUF9JUFY2ICovCgpJbiBvcmRlciB0byBmaXggdGhh dCB3ZSBjYW4gYWRkIHRoZSBjaGVjayAncHJvdG8gPT0gaHRvbnMoRVRIX1BfWERTQSknCnRvIHBy ZXZlbnQgY29kZSBmcm9tIGNhbGxpbmcgdGFnX29wcy0+Zmxvd19kaXNzZWN0KCkgb24gVHguCkkg YWxzbyBkZWNpZGVkIHRvIGluaXRpYWxpemUgJ29mZnNldCcgdmFyaWFibGUgc28gdGFnZ2VyIGNh bGxiYWNrcyBjYW4Kbm93IHNhZmVseSBsZWF2ZSBpdCB1bnRvdWNoZWQgd2l0aG91dCBwcm92b2tp bmcgYSBjaGFvcy4KCkZpeGVzOiA0M2U2NjUyODdmOTMgKCJuZXQtbmV4dDogZHNhOiBmaXggZmxv dyBkaXNzZWN0aW9uIikKU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIExvYmFraW4gPGFsb2Jha2lu QGRsaW5rLnJ1PgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jIHwgNSArKystLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29y ZS9mbG93X2Rpc3NlY3Rvci5jIGIvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYwppbmRleCAyZjUz MjZhODI0NjUuLmZkY2NlN2FiMGNjMyAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0 b3IuYworKysgYi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCkBAIC04NTMsOSArODUzLDEwIEBA IGJvb2wgX19za2JfZmxvd19kaXNzZWN0KGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwKIAkJbmhvZmYg PSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKIAkJaGxlbiA9IHNrYl9oZWFkbGVuKHNrYik7CiAj aWYgSVNfRU5BQkxFRChDT05GSUdfTkVUX0RTQSkKLQkJaWYgKHVubGlrZWx5KHNrYi0+ZGV2ICYm IG5ldGRldl91c2VzX2RzYShza2ItPmRldikpKSB7CisJCWlmICh1bmxpa2VseShza2ItPmRldiAm JiBuZXRkZXZfdXNlc19kc2Eoc2tiLT5kZXYpICYmCisJCQkgICAgIHByb3RvID09IGh0b25zKEVU SF9QX1hEU0EpKSkgewogCQkJY29uc3Qgc3RydWN0IGRzYV9kZXZpY2Vfb3BzICpvcHM7Ci0JCQlp bnQgb2Zmc2V0OworCQkJaW50IG9mZnNldCA9IDA7CiAKIAkJCW9wcyA9IHNrYi0+ZGV2LT5kc2Ff cHRyLT50YWdfb3BzOwogCQkJaWYgKG9wcy0+Zmxvd19kaXNzZWN0ICYmCi0tIAoyLjIwLjEKCgpG cm9tIDIzNGU0MDVjM2UzOGI2YjU3ZjUzOTE1YmUzNTg3NWUyYTU1NjRjODggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0 aS5jb20+CkRhdGU6IEZyaSwgNiBEZWMgMjAxOSAxNDoyODoyMCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDUvMjZdIG5ldDogZXRoZXJuZXQ6IHRpOiBjcHN3OiBmaXggZXh0cmEgcnggaW50ZXJydXB0 CgpbIFVwc3RyZWFtIGNvbW1pdCA1MTMwMmY3N2JlZGFiODc2OGI3NjFlZDE4OTljMDhmODlhZjll NGUyIF0KCk5vdyBSWCBpbnRlcnJ1cHQgaXMgdHJpZ2dlcmVkIHR3aWNlIGV2ZXJ5IHRpbWUsIGJl Y2F1c2UgaW4KY3Bzd19yeF9pbnRlcnJ1cHQoKSBpdCBpcyBhc2tlZCBmaXJzdCBhbmQgdGhlbiBk aXNhYmxlZC4gU28gdGhlcmUgd2lsbCBiZQpwZW5kaW5nIGludGVycnVwdCBhbHdheXMsIHdoZW4g UlggaW50ZXJydXB0IGlzIGVuYWJsZWQgYWdhaW4gaW4gTkFQSQpoYW5kbGVyLgoKRml4IGl0IGJ5 IGZpcnN0IGRpc2FibGluZyBJUlEgYW5kIHRoZW4gZG8gYXNrLgoKRml4ZXM6IDg3MDkxNWZlYWJk YyAoImRyaXZlcnM6IG5ldDogY3BzdzogcmVtb3ZlIGRpc2FibGVfaXJxL2VuYWJsZV9pcnEgYXMg aXJxIGNhbiBiZSBtYXNrZWQgZnJvbSBjcHN3IGl0c2VsZiIpClNpZ25lZC1vZmYtYnk6IEdyeWdv cmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC90aS9jcHN3LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMKaW5kZXggYTQ2YjhiMmU0NGUxLi4xODQw ZmExZjhmM2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMKQEAgLTg5MCw4ICs4OTAsOCBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgY3Bzd19yeF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQog ewogCXN0cnVjdCBjcHN3X2NvbW1vbiAqY3BzdyA9IGRldl9pZDsKIAotCWNwZG1hX2N0bHJfZW9p KGNwc3ctPmRtYSwgQ1BETUFfRU9JX1JYKTsKIAl3cml0ZWwoMCwgJmNwc3ctPndyX3JlZ3MtPnJ4 X2VuKTsKKwljcGRtYV9jdGxyX2VvaShjcHN3LT5kbWEsIENQRE1BX0VPSV9SWCk7CiAKIAlpZiAo Y3Bzdy0+cXVpcmtfaXJxKSB7CiAJCWRpc2FibGVfaXJxX25vc3luYyhjcHN3LT5pcnFzX3RhYmxl WzBdKTsKLS0gCjIuMjAuMQoKCkZyb20gZTAzMjViNjVhOWQyMGVmYmVlMDdkMTVjNGU1ZDkyNWJi Y2ZhYmRkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVzdCBMaSA8ZHVzdC5saUBs aW51eC5hbGliYWJhLmNvbT4KRGF0ZTogVHVlLCAzIERlYyAyMDE5IDExOjE3OjQwICswODAwClN1 YmplY3Q6IFtQQVRDSCAwNi8yNl0gbmV0OiBzY2hlZDogZml4IGR1bXAgcWxlbiBmb3Igc2NoX21x L3NjaF9tcXByaW8gd2l0aAogTk9MT0NLIHN1YnF1ZXVlcwoKWyBVcHN0cmVhbSBjb21taXQgMmYy M2NkNDJlMTljMjJjMjRmZjBlMjIxMDg5YjdiNjEyM2IxMTdjNSBdCgpzY2gtPnEubGVuIGhhc24n dCBiZWVuIHNldCBpZiB0aGUgc3VicXVldWUgaXMgYSBOT0xPQ0sgcWRpc2MKIGluIG1xX2R1bXAo KSBhbmQgbXFwcmlvX2R1bXAoKS4KCkZpeGVzOiBjZTY3OWU4ZGY3ZWQgKCJuZXQ6IHNjaGVkOiBh ZGQgc3VwcG9ydCBmb3IgVENRX0ZfTk9MT0NLIHN1YnF1ZXVlcyB0byBzY2hfbXFwcmlvIikKU2ln bmVkLW9mZi1ieTogRHVzdCBMaSA8ZHVzdC5saUBsaW51eC5hbGliYWJhLmNvbT4KU2lnbmVkLW9m Zi1ieTogVG9ueSBMdSA8dG9ueWx1QGxpbnV4LmFsaWJhYmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9t cS5jICAgICB8IDEgKwogbmV0L3NjaGVkL3NjaF9tcXByaW8uYyB8IDEgKwogMiBmaWxlcyBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX21xLmMgYi9u ZXQvc2NoZWQvc2NoX21xLmMKaW5kZXggMjc4YzBiMmRjNTIzLi5lNzlmMWFmZTBjZmQgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9zY2hfbXEuYworKysgYi9uZXQvc2NoZWQvc2NoX21xLmMKQEAgLTE1 Myw2ICsxNTMsNyBAQCBzdGF0aWMgaW50IG1xX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVj dCBza19idWZmICpza2IpCiAJCQlfX2duZXRfc3RhdHNfY29weV9xdWV1ZSgmc2NoLT5xc3RhdHMs CiAJCQkJCQlxZGlzYy0+Y3B1X3FzdGF0cywKIAkJCQkJCSZxZGlzYy0+cXN0YXRzLCBxbGVuKTsK KwkJCXNjaC0+cS5xbGVuCQkrPSBxbGVuOwogCQl9IGVsc2UgewogCQkJc2NoLT5xLnFsZW4JCSs9 IHFkaXNjLT5xLnFsZW47CiAJCQlzY2gtPmJzdGF0cy5ieXRlcwkrPSBxZGlzYy0+YnN0YXRzLmJ5 dGVzOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9tcXByaW8uYyBiL25ldC9zY2hlZC9zY2hf bXFwcmlvLmMKaW5kZXggN2I2N2U0ZDhlNDQ4Li44NzY2YWI1Yjg3ODggMTAwNjQ0Ci0tLSBhL25l dC9zY2hlZC9zY2hfbXFwcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9tcXByaW8uYwpAQCAtNDEx LDYgKzQxMSw3IEBAIHN0YXRpYyBpbnQgbXFwcmlvX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0 cnVjdCBza19idWZmICpza2IpCiAJCQlfX2duZXRfc3RhdHNfY29weV9xdWV1ZSgmc2NoLT5xc3Rh dHMsCiAJCQkJCQlxZGlzYy0+Y3B1X3FzdGF0cywKIAkJCQkJCSZxZGlzYy0+cXN0YXRzLCBxbGVu KTsKKwkJCXNjaC0+cS5xbGVuCQkrPSBxbGVuOwogCQl9IGVsc2UgewogCQkJc2NoLT5xLnFsZW4J CSs9IHFkaXNjLT5xLnFsZW47CiAJCQlzY2gtPmJzdGF0cy5ieXRlcwkrPSBxZGlzYy0+YnN0YXRz LmJ5dGVzOwotLSAKMi4yMC4xCgoKRnJvbSBmMjYzOTc3YmFhMTQ3YWFkNjMxYTg3NTdlNWEwMDk4 MjUxNTFiYWVjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgNyBEZWMgMjAxOSAxMTozNDo0NSAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMDcvMjZdIG5ldF9zY2hlZDogdmFsaWRhdGUgVENBX0tJTkQgYXR0cmli dXRlIGluCiB0Y19jaGFpbl90bXBsdF9hZGQoKQoKWyBVcHN0cmVhbSBjb21taXQgMmRkNTYxNmVj ZGNlYmRmNWE4ZDAwN2FmNjRlMDQwZDRlOTIxNGVmZSBdCgpVc2UgdGhlIG5ldyB0Y2ZfcHJvdG9f Y2hlY2tfa2luZCgpIGhlbHBlciB0byBtYWtlIHN1cmUgdXNlcgpwcm92aWRlZCB2YWx1ZSBpcyB3 ZWxsIGZvcm1lZC4KCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBzdHJpbmdfbm9jaGVjayBs aWIvdnNwcmludGYuYzo2MDYgW2lubGluZV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIHN0 cmluZysweDRiZS8weDYwMCBsaWIvdnNwcmludGYuYzo2NjgKQ1BVOiAwIFBJRDogMTIzNTggQ29t bTogc3l6LWV4ZWN1dG9yLjEgTm90IHRhaW50ZWQgNS40LjAtcmM4LXN5emthbGxlciAjMApIYXJk d2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVu Z2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxp Yi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxYzkvMHgyMjAgbGliL2R1 bXBfc3RhY2suYzoxMTgKIGttc2FuX3JlcG9ydCsweDEyOC8weDIyMCBtbS9rbXNhbi9rbXNhbl9y ZXBvcnQuYzoxMDgKIF9fbXNhbl93YXJuaW5nKzB4NjQvMHhjMCBtbS9rbXNhbi9rbXNhbl9pbnN0 ci5jOjI0NQogc3RyaW5nX25vY2hlY2sgbGliL3ZzcHJpbnRmLmM6NjA2IFtpbmxpbmVdCiBzdHJp bmcrMHg0YmUvMHg2MDAgbGliL3ZzcHJpbnRmLmM6NjY4CiB2c25wcmludGYrMHgyMThmLzB4MzIx MCBsaWIvdnNwcmludGYuYzoyNTEwCiBfX3JlcXVlc3RfbW9kdWxlKzB4MmIxLzB4MTFjMCBrZXJu ZWwva21vZC5jOjE0MwogdGNmX3Byb3RvX2xvb2t1cF9vcHMrMHgxNzEvMHg3MDAgbmV0L3NjaGVk L2Nsc19hcGkuYzoxMzkKIHRjX2NoYWluX3RtcGx0X2FkZCBuZXQvc2NoZWQvY2xzX2FwaS5jOjI3 MzAgW2lubGluZV0KIHRjX2N0bF9jaGFpbisweDE5MDQvMHgzOGEwIG5ldC9zY2hlZC9jbHNfYXBp LmM6Mjg1MAogcnRuZXRsaW5rX3Jjdl9tc2crMHgxMTVhLzB4MTU4MCBuZXQvY29yZS9ydG5ldGxp bmsuYzo1MjI0CiBuZXRsaW5rX3Jjdl9za2IrMHg0MzEvMHg2MjAgbmV0L25ldGxpbmsvYWZfbmV0 bGluay5jOjI0NzcKIHJ0bmV0bGlua19yY3YrMHg1MC8weDYwIG5ldC9jb3JlL3J0bmV0bGluay5j OjUyNDIKIG5ldGxpbmtfdW5pY2FzdF9rZXJuZWwgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjEz MDIgW2lubGluZV0KIG5ldGxpbmtfdW5pY2FzdCsweGYzZS8weDEwMjAgbmV0L25ldGxpbmsvYWZf bmV0bGluay5jOjEzMjgKIG5ldGxpbmtfc2VuZG1zZysweDExMGYvMHgxMzMwIG5ldC9uZXRsaW5r L2FmX25ldGxpbmsuYzoxOTE3CiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYzNyBb aW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NTcgW2lubGluZV0KIF9fX3N5c19z ZW5kbXNnKzB4MTRmZi8weDE1OTAgbmV0L3NvY2tldC5jOjIzMTEKIF9fc3lzX3NlbmRtc2cgbmV0 L3NvY2tldC5jOjIzNTYgW2lubGluZV0KIF9fZG9fc3lzX3NlbmRtc2cgbmV0L3NvY2tldC5jOjIz NjUgW2lubGluZV0KIF9fc2Vfc3lzX3NlbmRtc2crMHgzMDUvMHg0NjAgbmV0L3NvY2tldC5jOjIz NjMKIF9feDY0X3N5c19zZW5kbXNnKzB4NGEvMHg3MCBuZXQvc29ja2V0LmM6MjM2MwogZG9fc3lz Y2FsbF82NCsweGI2LzB4MTYwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MQogZW50cnlfU1lT Q0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpSSVA6IDAwMzM6MHg0NWE2NDkKQ29kZTog YWQgYjYgZmIgZmYgYzMgNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAgNjYgOTAgNDggODkg ZjggNDggODkgZjcgNDggODkgZDYgNDggODkgY2EgNGQgODkgYzIgNGQgODkgYzggNGMgOGIgNGMg MjQgMDggMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiAwZiA4MyA3YiBiNiBmYiBmZiBjMyA2NiAy ZSAwZiAxZiA4NCAwMCAwMCAwMCAwMApSU1A6IDAwMmI6MDAwMDdmMDc5MDc5NWM3OCBFRkxBR1M6 IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDJlClJBWDogZmZmZmZmZmZmZmZmZmZk YSBSQlg6IDAwMDAwMDAwMDAwMDAwMDMgUkNYOiAwMDAwMDAwMDAwNDVhNjQ5ClJEWDogMDAwMDAw MDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMjAwMDAzMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDA2ClJC UDogMDAwMDAwMDAwMDc1YmZjOCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAw MDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAw MDAwN2YwNzkwNzk2NmQ0ClIxMzogMDAwMDAwMDAwMDRjOGRiNSBSMTQ6IDAwMDAwMDAwMDA0ZGY2 MzAgUjE1OiAwMDAwMDAwMGZmZmZmZmZmCgpVbmluaXQgd2FzIGNyZWF0ZWQgYXQ6CiBrbXNhbl9z YXZlX3N0YWNrX3dpdGhfZmxhZ3MgbW0va21zYW4va21zYW4uYzoxNDkgW2lubGluZV0KIGttc2Fu X2ludGVybmFsX3BvaXNvbl9zaGFkb3crMHg1Yy8weDExMCBtbS9rbXNhbi9rbXNhbi5jOjEzMgog a21zYW5fc2xhYl9hbGxvYysweDk3LzB4MTAwIG1tL2ttc2FuL2ttc2FuX2hvb2tzLmM6ODYKIHNs YWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6Mjc3MyBbaW5saW5lXQogX19rbWFsbG9jX25vZGVfdHJh Y2tfY2FsbGVyKzB4ZTI3LzB4MTFhMCBtbS9zbHViLmM6NDM4MQogX19rbWFsbG9jX3Jlc2VydmUg bmV0L2NvcmUvc2tidWZmLmM6MTQxIFtpbmxpbmVdCiBfX2FsbG9jX3NrYisweDMwNi8weGExMCBu ZXQvY29yZS9za2J1ZmYuYzoyMDkKIGFsbG9jX3NrYiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjEw NDkgW2lubGluZV0KIG5ldGxpbmtfYWxsb2NfbGFyZ2Vfc2tiIG5ldC9uZXRsaW5rL2FmX25ldGxp bmsuYzoxMTc0IFtpbmxpbmVdCiBuZXRsaW5rX3NlbmRtc2crMHg3ODMvMHgxMzMwIG5ldC9uZXRs aW5rL2FmX25ldGxpbmsuYzoxODkyCiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYz NyBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NTcgW2lubGluZV0KIF9fX3N5 c19zZW5kbXNnKzB4MTRmZi8weDE1OTAgbmV0L3NvY2tldC5jOjIzMTEKIF9fc3lzX3NlbmRtc2cg bmV0L3NvY2tldC5jOjIzNTYgW2lubGluZV0KIF9fZG9fc3lzX3NlbmRtc2cgbmV0L3NvY2tldC5j OjIzNjUgW2lubGluZV0KIF9fc2Vfc3lzX3NlbmRtc2crMHgzMDUvMHg0NjAgbmV0L3NvY2tldC5j OjIzNjMKIF9feDY0X3N5c19zZW5kbXNnKzB4NGEvMHg3MCBuZXQvc29ja2V0LmM6MjM2MwogZG9f c3lzY2FsbF82NCsweGI2LzB4MTYwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MQogZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKRml4ZXM6IDZmOTZjM2M2OTA0YyAo Im5ldF9zY2hlZDogZml4IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIFRDQV9LSU5EIikKU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1i eTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpDYzogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIg PG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9q YXRhdHUuY29tPgpDYzogSmlyaSBQaXJrbyA8amlyaUByZXNudWxsaS51cz4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9j bHNfYXBpLmMgfCA4ICsrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19hcGkuYyBiL25ldC9zY2hl ZC9jbHNfYXBpLmMKaW5kZXggNWMxNzY5OTk5YTkyLi43NThjYTdlNTMwNGMgMTAwNjQ0Ci0tLSBh L25ldC9zY2hlZC9jbHNfYXBpLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwpAQCAtMjg1NCwx MyArMjg1NCwxOSBAQCBzdGF0aWMgaW50IHRjX2NoYWluX3RtcGx0X2FkZChzdHJ1Y3QgdGNmX2No YWluICpjaGFpbiwgc3RydWN0IG5ldCAqbmV0LAogCQkJICAgICAgc3RydWN0IG5ldGxpbmtfZXh0 X2FjayAqZXh0YWNrKQogewogCWNvbnN0IHN0cnVjdCB0Y2ZfcHJvdG9fb3BzICpvcHM7CisJY2hh ciBuYW1lW0lGTkFNU0laXTsKIAl2b2lkICp0bXBsdF9wcml2OwogCiAJLyogSWYga2luZCBpcyBu b3Qgc2V0LCB1c2VyIGRpZCBub3Qgc3BlY2lmeSB0ZW1wbGF0ZS4gKi8KIAlpZiAoIXRjYVtUQ0Ff S0lORF0pCiAJCXJldHVybiAwOwogCi0Jb3BzID0gdGNmX3Byb3RvX2xvb2t1cF9vcHMobmxhX2Rh dGEodGNhW1RDQV9LSU5EXSksIHRydWUsIGV4dGFjayk7CisJaWYgKHRjZl9wcm90b19jaGVja19r aW5kKHRjYVtUQ0FfS0lORF0sIG5hbWUpKSB7CisJCU5MX1NFVF9FUlJfTVNHKGV4dGFjaywgIlNw ZWNpZmllZCBUQyBjaGFpbiB0ZW1wbGF0ZSBuYW1lIHRvbyBsb25nIik7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCW9wcyA9IHRjZl9wcm90b19sb29rdXBfb3BzKG5hbWUsIHRydWUsIGV4dGFj ayk7CiAJaWYgKElTX0VSUihvcHMpKQogCQlyZXR1cm4gUFRSX0VSUihvcHMpOwogCWlmICghb3Bz LT50bXBsdF9jcmVhdGUgfHwgIW9wcy0+dG1wbHRfZGVzdHJveSB8fCAhb3BzLT50bXBsdF9kdW1w KSB7Ci0tIAoyLjIwLjEKCgpGcm9tIGRmZDdhOGU2YWM2YzBiMzE3Njc1OTBjMTcxZDE4NjA0MGE0 NmNhOGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvdW5pIEhvZ2FuZGVyIDxqb3Vu aS5ob2dhbmRlckB1bmlraWUuY29tPgpEYXRlOiBUaHUsIDUgRGVjIDIwMTkgMTU6NTc6MDcgKzAy MDAKU3ViamVjdDogW1BBVENIIDA4LzI2XSBuZXQtc3lzZnM6IENhbGwgZGV2X2hvbGQgYWx3YXlz IGluCiBuZXRkZXZfcXVldWVfYWRkX2tvYmplY3QKClsgVXBzdHJlYW0gY29tbWl0IGUwYjYwOTAz YjQzNGE3ZWUyMWJhOGQ4NjU5ZjIwN2VkODQxMDFlODkgXQoKRGV2X2hvbGQgaGFzIHRvIGJlIGNh bGxlZCBhbHdheXMgaW4gbmV0ZGV2X3F1ZXVlX2FkZF9rb2JqZWN0LgpPdGhlcndpc2UgdXNhZ2Ug Y291bnQgZHJvcHMgYmVsb3cgMCBpbiBjYXNlIG9mIGZhaWx1cmUgaW4Ka29iamVjdF9pbml0X2Fu ZF9hZGQuCgpGaXhlczogYjhlYjcxODM0OGI4ICgibmV0LXN5c2ZzOiBGaXggcmVmZXJlbmNlIGNv dW50IGxlYWsgaW4gcnh8bmV0ZGV2X3F1ZXVlX2FkZF9rb2JqZWN0IikKUmVwb3J0ZWQtYnk6IEh1 bGsgUm9ib3QgPGh1bGtjaUBodWF3ZWkuY29tPgpDYzogVGV0c3VvIEhhbmRhIDxwZW5ndWluLWtl cm5lbEBJLWxvdmUuU0FLVVJBLm5lLmpwPgpDYzogRGF2aWQgTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgpDYzogTHVrYXMgQnVsd2FobiA8bHVrYXMuYnVsd2FobkBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv Y29yZS9uZXQtc3lzZnMuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBi L25ldC9jb3JlL25ldC1zeXNmcy5jCmluZGV4IDg2NWJhNmNhMTZlYi4uOGRkZDcyY2EyNDUyIDEw MDY0NAotLS0gYS9uZXQvY29yZS9uZXQtc3lzZnMuYworKysgYi9uZXQvY29yZS9uZXQtc3lzZnMu YwpAQCAtMTQ1NywxNCArMTQ1NywxNyBAQCBzdGF0aWMgaW50IG5ldGRldl9xdWV1ZV9hZGRfa29i amVjdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgaW5kZXgpCiAJc3RydWN0IGtvYmplY3Qg KmtvYmogPSAmcXVldWUtPmtvYmo7CiAJaW50IGVycm9yID0gMDsKIAorCS8qIEtvYmplY3RfcHV0 IGxhdGVyIHdpbGwgdHJpZ2dlciBuZXRkZXZfcXVldWVfcmVsZWFzZSBjYWxsCisJICogd2hpY2gg ZGVjcmVhc2VzIGRldiByZWZjb3VudDogVGFrZSB0aGF0IHJlZmVyZW5jZSBoZXJlCisJICovCisJ ZGV2X2hvbGQocXVldWUtPmRldik7CisKIAlrb2JqLT5rc2V0ID0gZGV2LT5xdWV1ZXNfa3NldDsK IAllcnJvciA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKGtvYmosICZuZXRkZXZfcXVldWVfa3R5cGUs IE5VTEwsCiAJCQkJICAgICAidHgtJXUiLCBpbmRleCk7CiAJaWYgKGVycm9yKQogCQlyZXR1cm4g ZXJyb3I7CiAKLQlkZXZfaG9sZChxdWV1ZS0+ZGV2KTsKLQogI2lmZGVmIENPTkZJR19CUUwKIAll cnJvciA9IHN5c2ZzX2NyZWF0ZV9ncm91cChrb2JqLCAmZHFsX2dyb3VwKTsKIAlpZiAoZXJyb3Ip IHsKLS0gCjIuMjAuMQoKCkZyb20gMjQxNGM3YTZlYWZhZWNhMzhmZmMyODEwMGNmNWUyNDBhYzc1 OTc5NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWlhbiBZb3VzYWYgS2F1a2FiIDx5 a2F1a2FiQHN1c2UuZGU+CkRhdGU6IFRodSwgNSBEZWMgMjAxOSAxMDo0MToxNiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMDkvMjZdIG5ldDogdGh1bmRlcng6IHN0YXJ0IHBoeSBiZWZvcmUgc3RhcnRp bmcKIGF1dG9uZWdvdGlhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgYTM1MGQyZTdhZGJiNTcxODFk MzNlM2FhNmYwNTY1NjMyNzQ3ZmVhYSBdCgpTaW5jZSBjb21taXQgMmIzZTg4ZWE2NTI4ICgibmV0 OiBwaHk6IGltcHJvdmUgcGh5IHN0YXRlIGNoZWNraW5nIikKcGh5X3N0YXJ0X2FuZWcoKSBleHBl Y3RzIHBoeSBzdGF0ZSB0byBiZSA+PSBQSFlfVVAuIENhbGwgcGh5X3N0YXJ0KCkKYmVmb3JlIGNh bGxpbmcgcGh5X3N0YXJ0X2FuZWcoKSBkdXJpbmcgcHJvYmUgc28gdGhhdCBhdXRvbmVnb3RpYXRp b24KaXMgaW5pdGlhdGVkLgoKQXMgcGh5X3N0YXJ0KCkgdGFrZXMgY2FyZSBvZiBjYWxsaW5nIHBo eV9zdGFydF9hbmVnKCksIGRyb3AgdGhlIGV4cGxpY2l0CmNhbGwgdG8gcGh5X3N0YXJ0X2FuZWco KS4KCk5ldHdvcmsgZmFpbHMgd2l0aG91dCB0aGlzIHBhdGNoIG9uIE9jdGVvbiBUWC4KCkZpeGVz OiAyYjNlODhlYTY1MjggKCJuZXQ6IHBoeTogaW1wcm92ZSBwaHkgc3RhdGUgY2hlY2tpbmciKQpT aWduZWQtb2ZmLWJ5OiBNaWFuIFlvdXNhZiBLYXVrYWIgPHlrYXVrYWJAc3VzZS5kZT4KUmV2aWV3 ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L2Nhdml1bS90aHVuZGVyL3RodW5kZXJfYmd4LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9jYXZpdW0vdGh1bmRlci90aHVuZGVyX2JneC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv Y2F2aXVtL3RodW5kZXIvdGh1bmRlcl9iZ3guYwppbmRleCBhY2IwMTY4MzRmMDQuLjZjYzEwMGU3 ZDVjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvdGh1 bmRlcl9iZ3guYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci90aHVu ZGVyX2JneC5jCkBAIC0xMTE1LDcgKzExMTUsNyBAQCBzdGF0aWMgaW50IGJneF9sbWFjX2VuYWJs ZShzdHJ1Y3QgYmd4ICpiZ3gsIHU4IGxtYWNpZCkKIAkJCQkgICAgICAgcGh5X2ludGVyZmFjZV9t b2RlKGxtYWMtPmxtYWNfdHlwZSkpKQogCQkJcmV0dXJuIC1FTk9ERVY7CiAKLQkJcGh5X3N0YXJ0 X2FuZWcobG1hYy0+cGh5ZGV2KTsKKwkJcGh5X3N0YXJ0KGxtYWMtPnBoeWRldik7CiAJCXJldHVy biAwOwogCX0KIAotLSAKMi4yMC4xCgoKRnJvbSA2YTg2MTBkMmFmZmJjZmNmNWU0YjhlYWJkMWRh MWNkYWNlNGYxNjQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWYWxlbnRpbiBWaWRp YyA8dnZpZGljQHZhbGVudGluLXZpZGljLmZyb20uaHI+CkRhdGU6IFRodSwgNSBEZWMgMjAxOSAw Nzo0MToxOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjZdIG5ldC90bHM6IEZpeCByZXR1cm4g dmFsdWVzIHRvIGF2b2lkIEVOT1RTVVBQCgpbIFVwc3RyZWFtIGNvbW1pdCA0YTVjZGM2MDRiOWNm NjQ1ZTZmYTI0ZDhkOWYwNTU5NTVjM2M4NTE2IF0KCkVOT1RTVVBQIGlzIG5vdCBhdmFpbGFibGUg aW4gdXNlcnNwYWNlLCBmb3IgZXhhbXBsZToKCiAgc2V0c29ja29wdCBmYWlsZWQsIDUyNCwgVW5r bm93biBlcnJvciA1MjQKClNpZ25lZC1vZmYtYnk6IFZhbGVudGluIFZpZGljIDx2dmlkaWNAdmFs ZW50aW4tdmlkaWMuZnJvbS5ocj4KQWNrZWQtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNp bnNraUBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfZGV2aWNlLmMgICAgICAgICAgICAgIHwg OCArKysrLS0tLQogbmV0L3Rscy90bHNfbWFpbi5jICAgICAgICAgICAgICAgIHwgNCArKy0tCiBu ZXQvdGxzL3Rsc19zdy5jICAgICAgICAgICAgICAgICAgfCA4ICsrKystLS0tCiB0b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmMgfCA4ICsrLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEy IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxz X2RldmljZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5kZXggNmIwYzliNzk4ZDljLi5kMTI3 OTNlNTQxYTQgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2RldmljZS5jCisrKyBiL25ldC90bHMv dGxzX2RldmljZS5jCkBAIC0zODUsNyArMzg1LDcgQEAgc3RhdGljIGludCB0bHNfcHVzaF9kYXRh KHN0cnVjdCBzb2NrICpzaywKIAogCWlmIChmbGFncyAmCiAJICAgIH4oTVNHX01PUkUgfCBNU0df RE9OVFdBSVQgfCBNU0dfTk9TSUdOQUwgfCBNU0dfU0VORFBBR0VfTk9UTEFTVCkpCi0JCXJldHVy biAtRU5PVFNVUFA7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChzay0+c2tfZXJyKQog CQlyZXR1cm4gLXNrLT5za19lcnI7CkBAIC01MTksNyArNTE5LDcgQEAgaW50IHRsc19kZXZpY2Vf c2VuZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAlsb2NrX3NvY2so c2spOwogCiAJaWYgKGZsYWdzICYgTVNHX09PQikgewotCQlyYyA9IC1FTk9UU1VQUDsKKwkJcmMg PSAtRU9QTk9UU1VQUDsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC05NjEsNyArOTYxLDcgQEAgaW50 IHRsc19zZXRfZGV2aWNlX29mZmxvYWQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRl eHQgKmN0eCkKIAl9CiAKIAlpZiAoIShuZXRkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9IV19UTFNf VFgpKSB7Ci0JCXJjID0gLUVOT1RTVVBQOworCQlyYyA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIHJl bGVhc2VfbmV0ZGV2OwogCX0KIApAQCAtMTAzNCw3ICsxMDM0LDcgQEAgaW50IHRsc19zZXRfZGV2 aWNlX29mZmxvYWRfcngoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkK IAl9CiAKIAlpZiAoIShuZXRkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9IV19UTFNfUlgpKSB7Ci0J CXJjID0gLUVOT1RTVVBQOworCQlyYyA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIHJlbGVhc2VfbmV0 ZGV2OwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90bHNf bWFpbi5jCmluZGV4IGM3ZWNkMDUzZDRlNy4uMDc0NzZkZjRiMTNmIDEwMDY0NAotLS0gYS9uZXQv dGxzL3Rsc19tYWluLmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC00NzMsNyArNDczLDcg QEAgc3RhdGljIGludCBkb190bHNfc2V0c29ja29wdF9jb25mKHN0cnVjdCBzb2NrICpzaywgY2hh ciBfX3VzZXIgKm9wdHZhbCwKIAkvKiBjaGVjayB2ZXJzaW9uICovCiAJaWYgKGNyeXB0b19pbmZv LT52ZXJzaW9uICE9IFRMU18xXzJfVkVSU0lPTiAmJgogCSAgICBjcnlwdG9faW5mby0+dmVyc2lv biAhPSBUTFNfMV8zX1ZFUlNJT04pIHsKLQkJcmMgPSAtRU5PVFNVUFA7CisJCXJjID0gLUVJTlZB TDsKIAkJZ290byBlcnJfY3J5cHRvX2luZm87CiAJfQogCkBAIC03ODIsNyArNzgyLDcgQEAgc3Rh dGljIGludCB0bHNfaW5pdChzdHJ1Y3Qgc29jayAqc2spCiAJICogc2hhcmUgdGhlIHVscCBjb250 ZXh0LgogCSAqLwogCWlmIChzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFCTElTSEVEKQotCQlyZXR1 cm4gLUVOT1RTVVBQOworCQlyZXR1cm4gLUVOT1RDT05OOwogCiAJdGxzX2J1aWxkX3Byb3RvKHNr KTsKIApkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5k ZXggNDVlOTkzYzRlOGY2Li44ZTAzMTkyNmVmYjQgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3 LmMKKysrIGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtOTAwLDcgKzkwMCw3IEBAIGludCB0bHNfc3df c2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IHNpemUp CiAJaW50IHJldCA9IDA7CiAKIAlpZiAobXNnLT5tc2dfZmxhZ3MgJiB+KE1TR19NT1JFIHwgTVNH X0RPTlRXQUlUIHwgTVNHX05PU0lHTkFMKSkKLQkJcmV0dXJuIC1FTk9UU1VQUDsKKwkJcmV0dXJu IC1FT1BOT1RTVVBQOwogCiAJbXV0ZXhfbG9jaygmdGxzX2N0eC0+dHhfbG9jayk7CiAJbG9ja19z b2NrKHNrKTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIGludCB0bHNfc3dfc2VuZHBhZ2VfbG9ja2Vk KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJaWYgKGZsYWdzICYgfihNU0df TU9SRSB8IE1TR19ET05UV0FJVCB8IE1TR19OT1NJR05BTCB8CiAJCSAgICAgIE1TR19TRU5EUEFH RV9OT1RMQVNUIHwgTVNHX1NFTkRQQUdFX05PUE9MSUNZIHwKIAkJICAgICAgTVNHX05PX1NIQVJF RF9GUkFHUykpCi0JCXJldHVybiAtRU5PVFNVUFA7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAog CXJldHVybiB0bHNfc3dfZG9fc2VuZHBhZ2Uoc2ssIHBhZ2UsIG9mZnNldCwgc2l6ZSwgZmxhZ3Mp OwogfQpAQCAtMTIyOCw3ICsxMjI4LDcgQEAgaW50IHRsc19zd19zZW5kcGFnZShzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBwYWdlICpwYWdlLAogCiAJaWYgKGZsYWdzICYgfihNU0dfTU9SRSB8IE1T R19ET05UV0FJVCB8IE1TR19OT1NJR05BTCB8CiAJCSAgICAgIE1TR19TRU5EUEFHRV9OT1RMQVNU IHwgTVNHX1NFTkRQQUdFX05PUE9MSUNZKSkKLQkJcmV0dXJuIC1FTk9UU1VQUDsKKwkJcmV0dXJu IC1FT1BOT1RTVVBQOwogCiAJbXV0ZXhfbG9jaygmdGxzX2N0eC0+dHhfbG9jayk7CiAJbG9ja19z b2NrKHNrKTsKQEAgLTE5MjgsNyArMTkyOCw3IEBAIHNzaXplX3QgdGxzX3N3X3NwbGljZV9yZWFk KHN0cnVjdCBzb2NrZXQgKnNvY2ssICBsb2ZmX3QgKnBwb3MsCiAKIAkJLyogc3BsaWNlIGRvZXMg bm90IHN1cHBvcnQgcmVhZGluZyBjb250cm9sIG1lc3NhZ2VzICovCiAJCWlmIChjdHgtPmNvbnRy b2wgIT0gVExTX1JFQ09SRF9UWVBFX0RBVEEpIHsKLQkJCWVyciA9IC1FTk9UU1VQUDsKKwkJCWVy ciA9IC1FSU5WQUw7CiAJCQlnb3RvIHNwbGljZV9yZWFkX2VuZDsKIAkJfQogCmRpZmYgLS1naXQg YS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9uZXQvdGxzLmMKaW5kZXggNDZhYmNhZTQ3ZGVlLi4xM2U1ZWY2MTUwMjYgMTAwNjQ0Ci0t LSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYworKysgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9uZXQvdGxzLmMKQEAgLTI1LDEwICsyNSw2IEBACiAjZGVmaW5lIFRMU19QQVlM T0FEX01BWF9MRU4gMTYzODQKICNkZWZpbmUgU09MX1RMUyAyODIKIAotI2lmbmRlZiBFTk9UU1VQ UAotI2RlZmluZSBFTk9UU1VQUCA1MjQKLSNlbmRpZgotCiBGSVhUVVJFKHRsc19iYXNpYykKIHsK IAlpbnQgZmQsIGNmZDsKQEAgLTEyMDUsMTEgKzEyMDEsMTEgQEAgVEVTVChub25fZXN0YWJsaXNo ZWQpIHsKIAkvKiBUTFMgVUxQIG5vdCBzdXBwb3J0ZWQgKi8KIAlpZiAoZXJybm8gPT0gRU5PRU5U KQogCQlyZXR1cm47Ci0JRVhQRUNUX0VRKGVycm5vLCBFTk9UU1VQUCk7CisJRVhQRUNUX0VRKGVy cm5vLCBFTk9UQ09OTik7CiAKIAlyZXQgPSBzZXRzb2Nrb3B0KHNmZCwgSVBQUk9UT19UQ1AsIFRD UF9VTFAsICJ0bHMiLCBzaXplb2YoInRscyIpKTsKIAlFWFBFQ1RfRVEocmV0LCAtMSk7Ci0JRVhQ RUNUX0VRKGVycm5vLCBFTk9UU1VQUCk7CisJRVhQRUNUX0VRKGVycm5vLCBFTk9UQ09OTik7CiAK IAlyZXQgPSBnZXRzb2NrbmFtZShzZmQsICZhZGRyLCAmbGVuKTsKIAlBU1NFUlRfRVEocmV0LCAw KTsKLS0gCjIuMjAuMQoKCkZyb20gYzZmMjIxZjVlNmRmZDIxMGIwNjg3M2FkZWM2MjRhNDVkM2Rj MDYwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWFyb24gQ29ub2xlIDxhY29ub2xl QHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMyBEZWMgMjAxOSAxNjozNDoxMyAtMDUwMApTdWJqZWN0 OiBbUEFUQ0ggMTEvMjZdIG9wZW52c3dpdGNoOiBzdXBwb3J0IGFzeW1tZXRyaWMgY29ubnRyYWNr CgpbIFVwc3RyZWFtIGNvbW1pdCA1ZDUwYWE4M2UyYzhlOTFjZWQyY2NhNzdjMTk4YjQ2OGNhOTIx MGY0IF0KClRoZSBvcGVudnN3aXRjaCBtb2R1bGUgc2hhcmVzIGEgY29tbW9uIGNvbm50cmFjayBh bmQgTkFUIGluZnJhc3RydWN0dXJlCmV4cG9zZWQgdmlhIG5ldGZpbHRlci4gIEl0J3MgcG9zc2li bGUgdGhhdCBhIHBhY2tldCBuZWVkcyBib3RoIFNOQVQgYW5kCkROQVQgbWFuaXB1bGF0aW9uLCBk dWUgdG8gZS5nLiB0dXBsZSBjb2xsaXNpb24uICBOZXRmaWx0ZXIgY2FuIHN1cHBvcnQKdGhpcyBi ZWNhdXNlIGl0IHJ1bnMgdGhyb3VnaCB0aGUgTkFUIHRhYmxlIHR3aWNlIC0gb25jZSBvbiBpbmdy ZXNzIGFuZAphZ2FpbiBhZnRlciBlZ3Jlc3MuICBUaGUgb3BlbnZzd2l0Y2ggbW9kdWxlIGRvZXNu J3QgaGF2ZSBzdWNoIGNhcGFiaWxpdHkuCgpMaWtlIG5ldGZpbHRlciBob29rIGluZnJhc3RydWN0 dXJlLCB3ZSBzaG91bGQgcnVuIHRocm91Z2ggTkFUIHR3aWNlIHRvCmtlZXAgdGhlIHN5bW1ldHJ5 LgoKRml4ZXM6IDA1NzUyNTIzZTU2NSAoIm9wZW52c3dpdGNoOiBJbnRlcmZhY2Ugd2l0aCBOQVQu IikKU2lnbmVkLW9mZi1ieTogQWFyb24gQ29ub2xlIDxhY29ub2xlQHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv b3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMgfCAxMSArKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQs IDExIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNr LmMgYi9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKaW5kZXggMDUyNDllYjQ1MDgyLi4yODNl OGY5YTVmZDIgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9jb25udHJhY2suYworKysgYi9u ZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKQEAgLTkwMyw2ICs5MDMsMTcgQEAgc3RhdGljIGlu dCBvdnNfY3RfbmF0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXksCiAJ fQogCWVyciA9IG92c19jdF9uYXRfZXhlY3V0ZShza2IsIGN0LCBjdGluZm8sICZpbmZvLT5yYW5n ZSwgbWFuaXB0eXBlKTsKIAorCWlmIChlcnIgPT0gTkZfQUNDRVBUICYmCisJICAgIGN0LT5zdGF0 dXMgJiBJUFNfU1JDX05BVCAmJiBjdC0+c3RhdHVzICYgSVBTX0RTVF9OQVQpIHsKKwkJaWYgKG1h bmlwdHlwZSA9PSBORl9OQVRfTUFOSVBfU1JDKQorCQkJbWFuaXB0eXBlID0gTkZfTkFUX01BTklQ X0RTVDsKKwkJZWxzZQorCQkJbWFuaXB0eXBlID0gTkZfTkFUX01BTklQX1NSQzsKKworCQllcnIg PSBvdnNfY3RfbmF0X2V4ZWN1dGUoc2tiLCBjdCwgY3RpbmZvLCAmaW5mby0+cmFuZ2UsCisJCQkJ CSBtYW5pcHR5cGUpOworCX0KKwogCS8qIE1hcmsgTkFUIGRvbmUgaWYgc3VjY2Vzc2Z1bCBhbmQg dXBkYXRlIHRoZSBmbG93IGtleS4gKi8KIAlpZiAoZXJyID09IE5GX0FDQ0VQVCkKIAkJb3ZzX25h dF91cGRhdGVfa2V5KGtleSwgc2tiLCBtYW5pcHR5cGUpOwotLSAKMi4yMC4xCgoKRnJvbSAzZjkx YzFlY2I2YjJlZDdmNzI0NTVmMjQ1MTcyYTk0NDZhYTNmZDkyIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRodSwg NSBEZWMgMjAxOSAxMDoxMDoxNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMjZdIHRjcDogbWQ1 OiBmaXggcG90ZW50aWFsIG92ZXJlc3RpbWF0aW9uIG9mIFRDUCBvcHRpb24KIHNwYWNlCgpbIFVw c3RyZWFtIGNvbW1pdCA5NDI0ZTJlN2FkOTNmZmZmYTg4Zjg4MmM5YmM1MDIzNTcwOTA0YjU1IF0K CkJhY2sgaW4gMjAwOCwgQWRhbSBMYW5nbGV5IGZpeGVkIHRoZSBjb3JuZXIgY2FzZSBvZiBwYWNr ZXRzIGZvciBmbG93cwpoYXZpbmcgYWxsIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyA6IE1ENSBU UyBTQUNLCgpTaW5jZSBNRDUgbmVlZHMgMjAgYnl0ZXMsIGFuZCBUUyBuZWVkcyAxMiBieXRlcywg bm8gc2FjayBibG9jawpjYW4gYmUgY29va2VkIGZyb20gdGhlIHJlbWFpbmluZyA4IGJ5dGVzLgoK dGNwX2VzdGFibGlzaGVkX29wdGlvbnMoKSBjb3JyZWN0bHkgc2V0cyBvcHRzLT5udW1fc2Fja19i bG9ja3MKdG8gemVybywgYnV0IHJldHVybnMgMzYgaW5zdGVhZCBvZiAzMi4KClRoaXMgbWVhbnMg VENQIGNvb2tzIHBhY2tldHMgd2l0aCA0IGV4dHJhIGJ5dGVzIGF0IHRoZSBlbmQKb2Ygb3B0aW9u cywgY29udGFpbmluZyB1bml0aWFsaXplZCBieXRlcy4KCkZpeGVzOiAzM2FkNzk4YzkyNGIgKCJ0 Y3A6IG9wdGlvbnMgY2xlYW4gdXAiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1h emV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91 cHMuY29tPgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFj a2VkLWJ5OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lw djQvdGNwX291dHB1dC5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9u ZXQvaXB2NC90Y3Bfb3V0cHV0LmMKaW5kZXggOGE2NDVmMzA0ZTZjLi42MDZlMTdlMWFjYTMgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0 LmMKQEAgLTc1NSw4ICs3NTUsOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRjcF9lc3RhYmxpc2hl ZF9vcHRpb25zKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYgogCQkJbWluX3Qo dW5zaWduZWQgaW50LCBlZmZfc2Fja3MsCiAJCQkgICAgICAocmVtYWluaW5nIC0gVENQT0xFTl9T QUNLX0JBU0VfQUxJR05FRCkgLwogCQkJICAgICAgVENQT0xFTl9TQUNLX1BFUkJMT0NLKTsKLQkJ c2l6ZSArPSBUQ1BPTEVOX1NBQ0tfQkFTRV9BTElHTkVEICsKLQkJCW9wdHMtPm51bV9zYWNrX2Js b2NrcyAqIFRDUE9MRU5fU0FDS19QRVJCTE9DSzsKKwkJaWYgKGxpa2VseShvcHRzLT5udW1fc2Fj a19ibG9ja3MpKQorCQkJc2l6ZSArPSBUQ1BPTEVOX1NBQ0tfQkFTRV9BTElHTkVEICsKKwkJCQlv cHRzLT5udW1fc2Fja19ibG9ja3MgKiBUQ1BPTEVOX1NBQ0tfUEVSQkxPQ0s7CiAJfQogCiAJcmV0 dXJuIHNpemU7Ci0tIAoyLjIwLjEKCgpGcm9tIGU0MWM5ODBhZjBlYmJhMzRmODI3NjI1NWVjODg4 Y2I5YWFkNjhmNzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFw NDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA2IERlYyAyMDE5IDA1OjI1OjQ4ICswMDAwClN1 YmplY3Q6IFtQQVRDSCAxMy8yNl0gdGlwYzogZml4IG9yZGVyaW5nIG9mIHRpcGMgbW9kdWxlIGlu aXQgYW5kIGV4aXQgcm91dGluZQoKWyBVcHN0cmVhbSBjb21taXQgOWNmMWNkOGVlM2VlMDllZjI4 NTkwMTdkZjIwNThlMmY1M2M1MzQ3ZiBdCgpJbiBvcmRlciB0byBzZXQvZ2V0L2R1bXAsIHRoZSB0 aXBjIHVzZXMgdGhlIGdlbmVyaWMgbmV0bGluawppbmZyYXN0cnVjdHVyZS4gU28sIHdoZW4gdGlw YyBtb2R1bGUgaXMgaW5zZXJ0ZWQsIGluaXQgZnVuY3Rpb24KY2FsbHMgZ2VubF9yZWdpc3Rlcl9m YW1pbHkoKS4KQWZ0ZXIgZ2VubF9yZWdpc3Rlcl9mYW1pbHkoKSwgc2V0L2dldC9kdW1wIGNvbW1h bmRzIGFyZSBpbW1lZGlhdGVseQphbGxvd2VkIGFuZCB0aGVzZSBjYWxsYmFja3MgaW50ZXJuYWxs eSB1c2UgdGhlIG5ldF9nZW5lcmljLgpuZXRfZ2VuZXJpYyBpcyBhbGxvY2F0ZWQgYnkgcmVnaXN0 ZXJfcGVybmV0X2RldmljZSgpIGJ1dCB0aGlzCmlzIGNhbGxlZCBhZnRlciBnZW5sX3JlZ2lzdGVy X2ZhbWlseSgpIGluIHRoZSBfX2luaXQgZnVuY3Rpb24uClNvLCB0aGVzZSBjYWxsYmFja3Mgd291 bGQgdXNlIHVuLWluaXRpYWxpemVkIG5ldF9nZW5lcmljLgoKVGVzdCBjb21tYW5kczoKICAgICNT SEVMTDEKICAgIHdoaWxlIDoKICAgIGRvCiAgICAgICAgbW9kcHJvYmUgdGlwYwogICAgICAgIG1v ZHByb2JlIC1ydiB0aXBjCiAgICBkb25lCgogICAgI1NIRUxMMgogICAgd2hpbGUgOgogICAgZG8K ICAgICAgICB0aXBjIGxpbmsgbGlzdAogICAgZG9uZQoKU3BsYXQgbG9va3MgbGlrZToKWyAgIDU5 LjYxNjMyMl1bIFQyNzg4XSBrYXNhbjogQ09ORklHX0tBU0FOX0lOTElORSBlbmFibGVkClsgICA1 OS42MTcyMzRdWyBUMjc4OF0ga2FzYW46IEdQRiBjb3VsZCBiZSBjYXVzZWQgYnkgTlVMTC1wdHIg ZGVyZWYgb3IgdXNlciBtZW1vcnkgYWNjZXNzClsgICA1OS42MTgzOThdWyBUMjc4OF0gZ2VuZXJh bCBwcm90ZWN0aW9uIGZhdWx0OiAwMDAwIFsjMV0gU01QIERFQlVHX1BBR0VBTExPQyBLQVNBTiBQ VEkKWyAgIDU5LjYxOTM4OV1bIFQyNzg4XSBDUFU6IDMgUElEOiAyNzg4IENvbW06IHRpcGMgTm90 IHRhaW50ZWQgNS40LjArICMxOTQKWyAgIDU5LjYyMDIzMV1bIFQyNzg4XSBIYXJkd2FyZSBuYW1l OiBpbm5vdGVrIEdtYkggVmlydHVhbEJveC9WaXJ0dWFsQm94LCBCSU9TIFZpcnR1YWxCb3ggMTIv MDEvMjAwNgpbICAgNTkuNjIxNDI4XVsgVDI3ODhdIFJJUDogMDAxMDp0aXBjX2JjYXN0X2dldF9i cm9hZGNhc3RfbW9kZSsweDEzMS8weDMxMCBbdGlwY10KWyAgIDU5LjYyMjM3OV1bIFQyNzg4XSBD b2RlOiBjNyBjNiBlZiA4YiAzOCBjMCA2NSBmZiAwZCA4NCA4MyBjOSAzZiBlOCBkNyBhNSBmMiBl MyA0OCA4ZCBiYiAzOCAxMSAwMCAwMCA0OCBiOCAwMCAwMCAwMCAwMApbICAgNTkuNjIyNTUwXVsg VDI3ODBdIE5FVDogUmVnaXN0ZXJlZCBwcm90b2NvbCBmYW1pbHkgMzAKWyAgIDU5LjYyNDYyN11b IFQyNzg4XSBSU1A6IDAwMTg6ZmZmZjg4ODA0YjA5ZjU3OCBFRkxBR1M6IDAwMDEwMjAyClsgICA1 OS42MjQ2MzBdWyBUMjc4OF0gUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAw MDAxMSBSQ1g6IDAwMDAwMDAwOGJjNjY5MDcKWyAgIDU5LjYyNDYzMV1bIFQyNzg4XSBSRFg6IDAw MDAwMDAwMDAwMDAyMjkgUlNJOiAwMDAwMDAwMDRiM2NmNGNjIFJESTogMDAwMDAwMDAwMDAwMTE0 OQpbICAgNTkuNjI0NjMzXVsgVDI3ODhdIFJCUDogZmZmZjg4ODA0YjA5ZjU4OCBSMDg6IDAwMDAw MDAwMDAwMDAwMDMgUjA5OiBmZmZmZmJmZmY0ZmIzZGYxClsgICA1OS42MjQ2MzVdWyBUMjc4OF0g UjEwOiBmZmZmZmJmZmY1MDMxOGY4IFIxMTogZmZmZjg4ODA2NmNhZGMxOCBSMTI6IGZmZmZmZmZm YTZjYzJmNDAKWyAgIDU5LjYyNDYzN11bIFQyNzg4XSBSMTM6IDFmZmZmMTEwMDk2MTNlYmEgUjE0 OiBmZmZmODg4MDY2MmU5MzI4IFIxNTogZmZmZjg4ODA2NjJlOTMyOApbICAgNTkuNjI0NjM5XVsg VDI3ODhdIEZTOiAgMDAwMDdmNTdkOGY3Yjc0MCgwMDAwKSBHUzpmZmZmODg4MDZjYzAwMDAwKDAw MDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgIDU5LjYyNDY0NV1bIFQyNzg4XSBDUzogIDAw MTAgRFM6IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgICA1OS42MjU4NzVd WyBUMjc4MF0gdGlwYzogU3RhcnRlZCBpbiBzaW5nbGUgbm9kZSBtb2RlClsgICA1OS42MjYxMjhd WyBUMjc4OF0gQ1IyOiAwMDAwN2Y1N2Q4ODdhOGMwIENSMzogMDAwMDAwMDA0YjE0MDAwMiBDUjQ6 IDAwMDAwMDAwMDAwNjA2ZTAKWyAgIDU5LjYzMzk5MV1bIFQyNzg4XSBEUjA6IDAwMDAwMDAwMDAw MDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAgNTku NjM1MTk1XVsgVDI3ODhdIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBm ZjAgRFI3OiAwMDAwMDAwMDAwMDAwNDAwClsgICA1OS42MzY0NzhdWyBUMjc4OF0gQ2FsbCBUcmFj ZToKWyAgIDU5LjYzNzAyNV1bIFQyNzg4XSAgdGlwY19ubF9hZGRfYmNfbGluaysweDE3OS8weDE0 NzAgW3RpcGNdClsgICA1OS42MzgyMTldWyBUMjc4OF0gID8gbG9ja19kb3duZ3JhZGUrMHg2ZTAv MHg2ZTAKWyAgIDU5LjYzODkyM11bIFQyNzg4XSAgPyBfX3RpcGNfbmxfYWRkX2xpbmsrMHhmOTAv MHhmOTAgW3RpcGNdClsgICA1OS42Mzk1MzNdWyBUMjc4OF0gID8gdGlwY19ubF9ub2RlX2R1bXBf bGluaysweDMxOC8weGE1MCBbdGlwY10KWyAgIDU5LjY0MDE2MF1bIFQyNzg4XSAgPyBtdXRleF9s b2NrX2lvX25lc3RlZCsweDEzODAvMHgxMzgwClsgICA1OS42NDA3NDZdWyBUMjc4OF0gIHRpcGNf bmxfbm9kZV9kdW1wX2xpbmsrMHg0ZmQvMHhhNTAgW3RpcGNdClsgICA1OS42NDEzNTZdWyBUMjc4 OF0gID8gdGlwY19ubF9ub2RlX3Jlc2V0X2xpbmtfc3RhdHMrMHgzNDAvMHgzNDAgW3RpcGNdClsg ICA1OS42NDIwODhdWyBUMjc4OF0gID8gX19za2JfZXh0X2RlbCsweDI3MC8weDI3MApbICAgNTku NjQyNTk0XVsgVDI3ODhdICBnZW5sX2xvY2tfZHVtcGl0KzB4ODUvMHhiMApbICAgNTkuNjQzMDUw XVsgVDI3ODhdICBuZXRsaW5rX2R1bXArMHg0OWMvMHhlZDAKWyAgIDU5LjY0MzUyOV1bIFQyNzg4 XSAgPyBfX25ldGxpbmtfc2VuZHNrYisweGMwLzB4YzAKWyAgIDU5LjY0NDA0NF1bIFQyNzg4XSAg PyBfX25ldGxpbmtfZHVtcF9zdGFydCsweDE5MC8weDgwMApbICAgNTkuNjQ0NjE3XVsgVDI3ODhd ICA/IF9fbXV0ZXhfdW5sb2NrX3Nsb3dwYXRoKzB4ZDAvMHg2NzAKWyAgIDU5LjY0NTE3N11bIFQy Nzg4XSAgX19uZXRsaW5rX2R1bXBfc3RhcnQrMHg1YTAvMHg4MDAKWyAgIDU5LjY0NTY5Ml1bIFQy Nzg4XSAgZ2VubF9yY3ZfbXNnKzB4YTc1LzB4ZTkwClsgICA1OS42NDYxNDRdWyBUMjc4OF0gID8g X19sb2NrX2FjcXVpcmUrMHhkZmUvMHgzZGUwClsgICA1OS42NDY2OTJdWyBUMjc4OF0gID8gZ2Vu bF9mYW1pbHlfcmN2X21zZ19hdHRyc19wYXJzZSsweDMyMC8weDMyMApbICAgNTkuNjQ3MzQwXVsg VDI3ODhdICA/IGdlbmxfbG9ja19kdW1waXQrMHhiMC8weGIwClsgICA1OS42NDc4MjFdWyBUMjc4 OF0gID8gZ2VubF91bmxvY2srMHgyMC8weDIwClsgICA1OS42NDgyOTBdWyBUMjc4OF0gID8gZ2Vu bF9wYXJhbGxlbF9kb25lKzB4ZTAvMHhlMApbICAgNTkuNjQ4Nzg3XVsgVDI3ODhdICA/IGZpbmRf aGVsZF9sb2NrKzB4MzkvMHgxZDAKWyAgIDU5LjY0OTI3Nl1bIFQyNzg4XSAgPyBnZW5sX3Jjdisw eDE1LzB4NDAKWyAgIDU5LjY0OTcyMl1bIFQyNzg4XSAgPyBsb2NrX2NvbnRlbmRlZCsweGNkMC8w eGNkMApbICAgNTkuNjUwMjk2XVsgVDI3ODhdICBuZXRsaW5rX3Jjdl9za2IrMHgxMjEvMHgzNTAK WyAgIDU5LjY1MDgyOF1bIFQyNzg4XSAgPyBnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJzX3BhcnNl KzB4MzIwLzB4MzIwClsgICA1OS42NTE0OTFdWyBUMjc4OF0gID8gbmV0bGlua19hY2srMHg5NDAv MHg5NDAKWyAgIDU5LjY1MTk1M11bIFQyNzg4XSAgPyBsb2NrX2FjcXVpcmUrMHgxNjQvMHgzYjAK WyAgIDU5LjY1MjQ0OV1bIFQyNzg4XSAgZ2VubF9yY3YrMHgyNC8weDQwClsgICA1OS42NTI4NDFd WyBUMjc4OF0gIG5ldGxpbmtfdW5pY2FzdCsweDQyMS8weDYwMApbIC4uLiBdCgpGaXhlczogN2U0 MzY5MDU3ODA2ICgidGlwYzogZml4IGEgc2xhYiBvYmplY3QgbGVhayIpCkZpeGVzOiBhNjJmYmNj ZWNkNjIgKCJ0aXBjOiBtYWtlIHN1YnNjcmliZXIgc2VydmVyIHN1cHBvcnQgbmV0IG5hbWVzcGFj ZSIpClNpZ25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KQWNrZWQt Ynk6IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL2NvcmUuYyB8 IDI5ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5z ZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5j IGIvbmV0L3RpcGMvY29yZS5jCmluZGV4IGM4MzcwNzIyZjBiYi4uMTBkNWI4ODhhOWMxIDEwMDY0 NAotLS0gYS9uZXQvdGlwYy9jb3JlLmMKKysrIGIvbmV0L3RpcGMvY29yZS5jCkBAIC0xMjIsMTQg KzEyMiw2IEBAIHN0YXRpYyBpbnQgX19pbml0IHRpcGNfaW5pdCh2b2lkKQogCXN5c2N0bF90aXBj X3JtZW1bMV0gPSBSQ1ZCVUZfREVGOwogCXN5c2N0bF90aXBjX3JtZW1bMl0gPSBSQ1ZCVUZfTUFY OwogCi0JZXJyID0gdGlwY19uZXRsaW5rX3N0YXJ0KCk7Ci0JaWYgKGVycikKLQkJZ290byBvdXRf bmV0bGluazsKLQotCWVyciA9IHRpcGNfbmV0bGlua19jb21wYXRfc3RhcnQoKTsKLQlpZiAoZXJy KQotCQlnb3RvIG91dF9uZXRsaW5rX2NvbXBhdDsKLQogCWVyciA9IHRpcGNfcmVnaXN0ZXJfc3lz Y3RsKCk7CiAJaWYgKGVycikKIAkJZ290byBvdXRfc3lzY3RsOwpAQCAtMTUwLDggKzE0MiwyMSBA QCBzdGF0aWMgaW50IF9faW5pdCB0aXBjX2luaXQodm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIG91 dF9iZWFyZXI7CiAKKwllcnIgPSB0aXBjX25ldGxpbmtfc3RhcnQoKTsKKwlpZiAoZXJyKQorCQln b3RvIG91dF9uZXRsaW5rOworCisJZXJyID0gdGlwY19uZXRsaW5rX2NvbXBhdF9zdGFydCgpOwor CWlmIChlcnIpCisJCWdvdG8gb3V0X25ldGxpbmtfY29tcGF0OworCiAJcHJfaW5mbygiU3RhcnRl ZCBpbiBzaW5nbGUgbm9kZSBtb2RlXG4iKTsKIAlyZXR1cm4gMDsKKworb3V0X25ldGxpbmtfY29t cGF0OgorCXRpcGNfbmV0bGlua19zdG9wKCk7CitvdXRfbmV0bGluazoKKwl0aXBjX2JlYXJlcl9j bGVhbnVwKCk7CiBvdXRfYmVhcmVyOgogCXVucmVnaXN0ZXJfcGVybmV0X2RldmljZSgmdGlwY190 b3BzcnZfbmV0X29wcyk7CiBvdXRfcGVybmV0X3RvcHNydjoKQEAgLTE2MSwyMiArMTY2LDE4IEBA IHN0YXRpYyBpbnQgX19pbml0IHRpcGNfaW5pdCh2b2lkKQogb3V0X3Blcm5ldDoKIAl0aXBjX3Vu cmVnaXN0ZXJfc3lzY3RsKCk7CiBvdXRfc3lzY3RsOgotCXRpcGNfbmV0bGlua19jb21wYXRfc3Rv cCgpOwotb3V0X25ldGxpbmtfY29tcGF0OgotCXRpcGNfbmV0bGlua19zdG9wKCk7Ci1vdXRfbmV0 bGluazoKIAlwcl9lcnIoIlVuYWJsZSB0byBzdGFydCBpbiBzaW5nbGUgbm9kZSBtb2RlXG4iKTsK IAlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQgdGlwY19leGl0KHZvaWQpCiB7 CisJdGlwY19uZXRsaW5rX2NvbXBhdF9zdG9wKCk7CisJdGlwY19uZXRsaW5rX3N0b3AoKTsKIAl0 aXBjX2JlYXJlcl9jbGVhbnVwKCk7CiAJdW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNlKCZ0aXBjX3Rv cHNydl9uZXRfb3BzKTsKIAl0aXBjX3NvY2tldF9zdG9wKCk7CiAJdW5yZWdpc3Rlcl9wZXJuZXRf ZGV2aWNlKCZ0aXBjX25ldF9vcHMpOwotCXRpcGNfbmV0bGlua19zdG9wKCk7Ci0JdGlwY19uZXRs aW5rX2NvbXBhdF9zdG9wKCk7CiAJdGlwY191bnJlZ2lzdGVyX3N5c2N0bCgpOwogCiAJcHJfaW5m bygiRGVhY3RpdmF0ZWRcbiIpOwotLSAKMi4yMC4xCgoKRnJvbSA5NDUzYmRiYzRjNjk4ZDNmYWUz ZjMxODllYzA4OGJiN2Y5ZjhmMzFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIdXkg Tmd1eWVuIDxodXluQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCA2IFNlcCAyMDE5IDA5OjI4OjQ2 IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxNC8yNl0gbmV0L21seDVlOiBRdWVyeSBnbG9iYWwgcGF1 c2Ugc3RhdGUgYmVmb3JlIHNldHRpbmcKIHByaW8yYnVmZmVyCgpbIFVwc3RyZWFtIGNvbW1pdCA3 M2U2NTUxNjk5YTMyZmFjNzAzY2VlYTA5MjE0ZDY1ODBlZGNmMmQ1IF0KCldoZW4gdGhlIHVzZXIg Y2hhbmdlcyBwcmlvMmJ1ZmZlciBtYXBwaW5nIHdoaWxlIGdsb2JhbCBwYXVzZSBpcwplbmFibGVk LCBtbHg1IGRyaXZlciBpbmNvcnJlY3RseSBzZXRzIGFsbCBhY3RpdmUgYnVmZmVycwooYnVmZmVy IHRoYXQgaGFzIGF0IGxlYXN0IG9uZSBwcmlvcml0eSBtYXBwZWQpIHRvIGxvc3N5LgoKU29sdXRp b246CklmIGdsb2JhbCBwYXVzZSBpcyBlbmFibGVkLCBzZXQgYWxsIHRoZSBhY3RpdmUgYnVmZmVy cyB0byBsb3NzbGVzcwppbiBwcmlvMmJ1ZmZlciBjb21tYW5kLgpBbHNvLCBhZGQgZXJyb3IgbWVz c2FnZSB3aGVuIGJ1ZmZlciBzaXplIGlzIG5vdCBlbm91Z2ggdG8gbWVldAp4b2ZmIHRocmVzaG9s ZC4KCkZpeGVzOiAwNjk2ZDYwODUzZDUgKCJuZXQvbWx4NWU6IFJlY2VpdmUgYnVmZmVyIGNvbmZp Z3VyYXRpb24iKQpTaWduZWQtb2ZmLWJ5OiBIdXkgTmd1eWVuIDxodXluQG1lbGxhbm94LmNvbT4K U2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQog Li4uL21lbGxhbm94L21seDUvY29yZS9lbi9wb3J0X2J1ZmZlci5jICAgICAgIHwgMjcgKysrKysr KysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuL3BvcnRfYnVmZmVyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW4vcG9ydF9idWZmZXIuYwppbmRleCA2MzNiMTE3ZWIxM2UuLjk5YzdjZGQwNDA0YSAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3Bv cnRfYnVmZmVyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuL3BvcnRfYnVmZmVyLmMKQEAgLTE1NSw4ICsxNTUsMTEgQEAgc3RhdGljIGludCB1cGRhdGVf eG9mZl90aHJlc2hvbGQoc3RydWN0IG1seDVlX3BvcnRfYnVmZmVyICpwb3J0X2J1ZmZlciwKIAkJ fQogCiAJCWlmIChwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnNpemUgPAotCQkgICAgKHhvZmYgKyBt YXhfbXR1ICsgKDEgPDwgTUxYNUVfQlVGRkVSX0NFTExfU0hJRlQpKSkKKwkJICAgICh4b2ZmICsg bWF4X210dSArICgxIDw8IE1MWDVFX0JVRkZFUl9DRUxMX1NISUZUKSkpIHsKKwkJCXByX2Vycigi YnVmZmVyX3NpemVbJWRdPSVkIGlzIG5vdCBlbm91Z2ggZm9yIGxvc3NsZXNzIGJ1ZmZlclxuIiwK KwkJCSAgICAgICBpLCBwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnNpemUpOwogCQkJcmV0dXJuIC1F Tk9NRU07CisJCX0KIAogCQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvZmYgPSBwb3J0X2J1ZmZl ci0+YnVmZmVyW2ldLnNpemUgLSB4b2ZmOwogCQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvbiAg PQpAQCAtMjMyLDYgKzIzNSwyNiBAQCBzdGF0aWMgaW50IHVwZGF0ZV9idWZmZXJfbG9zc3kodW5z aWduZWQgaW50IG1heF9tdHUsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZmlsbF9wZmNf ZW4oc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHU4ICpwZmNfZW4pCit7CisJdTMyIGdfcnhf cGF1c2UsIGdfdHhfcGF1c2U7CisJaW50IGVycjsKKworCWVyciA9IG1seDVfcXVlcnlfcG9ydF9w YXVzZShtZGV2LCAmZ19yeF9wYXVzZSwgJmdfdHhfcGF1c2UpOworCWlmIChlcnIpCisJCXJldHVy biBlcnI7CisKKwkvKiBJZiBnbG9iYWwgcGF1c2UgZW5hYmxlZCwgc2V0IGFsbCBhY3RpdmUgYnVm ZmVycyB0byBsb3NzbGVzcy4KKwkgKiBPdGhlcndpc2UsIGNoZWNrIFBGQyBzZXR0aW5nLgorCSAq LworCWlmIChnX3J4X3BhdXNlIHx8IGdfdHhfcGF1c2UpCisJCSpwZmNfZW4gPSAweGZmOworCWVs c2UKKwkJZXJyID0gbWx4NV9xdWVyeV9wb3J0X3BmYyhtZGV2LCBwZmNfZW4sIE5VTEwpOworCisJ cmV0dXJuIGVycjsKK30KKwogI2RlZmluZSBNSU5JTVVNX01BWF9NVFUgOTIxNgogaW50IG1seDVl X3BvcnRfbWFudWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJCQkJ ICAgIHUzMiBjaGFuZ2UsIHVuc2lnbmVkIGludCBtdHUsCkBAIC0yNzcsNyArMzAwLDcgQEAgaW50 IG1seDVlX3BvcnRfbWFudWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYgKnByaXYs CiAKIAlpZiAoY2hhbmdlICYgTUxYNUVfUE9SVF9CVUZGRVJfUFJJTzJCVUZGRVIpIHsKIAkJdXBk YXRlX3ByaW8yYnVmZmVyID0gdHJ1ZTsKLQkJZXJyID0gbWx4NV9xdWVyeV9wb3J0X3BmYyhwcml2 LT5tZGV2LCAmY3Vycl9wZmNfZW4sIE5VTEwpOworCQllcnIgPSBmaWxsX3BmY19lbihwcml2LT5t ZGV2LCAmY3Vycl9wZmNfZW4pOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAotLSAKMi4y MC4xCgoKRnJvbSA5MjQ5YTFhYjM4Zjg4ZDgxZTM2OGVhNjg5MWI2NTc5NzFhN2RlMGI3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWls Lm5ldD4KRGF0ZTogV2VkLCA0IERlYyAyMDE5IDE1OjM1OjUyICswMTAwClN1YmplY3Q6IFtQQVRD SCAxNS8yNl0gbmV0OiBpcHY2OiBhZGQgbmV0IGFyZ3VtZW50IHRvIGlwNl9kc3RfbG9va3VwX2Zs b3cKClsgVXBzdHJlYW0gY29tbWl0IGM0ZTg1ZjczYWZiNjM4NDEyM2U1ZWYxYmJhMzMxNWIyZTNh ZDAzMWUgXQoKVGhpcyB3aWxsIGJlIHVzZWQgaW4gdGhlIGNvbnZlcnNpb24gb2YgaXB2Nl9zdHVi IHRvIGlwNl9kc3RfbG9va3VwX2Zsb3csCmFzIHNvbWUgbW9kdWxlcyBjdXJyZW50bHkgcGFzcyBh IG5ldCBhcmd1bWVudCB3aXRob3V0IGEgc29ja2V0IHRvCmlwNl9kc3RfbG9va3VwLiBUaGlzIGlz IGVxdWl2YWxlbnQgdG8gY29tbWl0IDM0M2Q2MGFhZGE1YSAoImlwdjY6IGNoYW5nZQppcHY2X3N0 dWJfaW1wbC5pcHY2X2RzdF9sb29rdXAgdG8gdGFrZSBuZXQgYXJndW1lbnQiKS4KClNpZ25lZC1v ZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQv aXB2Ni5oICAgICAgICAgICAgICAgfCAyICstCiBuZXQvZGNjcC9pcHY2LmMgICAgICAgICAgICAg ICAgICB8IDYgKysrLS0tCiBuZXQvaXB2Ni9hZl9pbmV0Ni5jICAgICAgICAgICAgICB8IDIgKy0K IG5ldC9pcHY2L2RhdGFncmFtLmMgICAgICAgICAgICAgIHwgMiArLQogbmV0L2lwdjYvaW5ldDZf Y29ubmVjdGlvbl9zb2NrLmMgfCA0ICsrLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyAgICAgICAg ICAgIHwgOCArKysrLS0tLQogbmV0L2lwdjYvcmF3LmMgICAgICAgICAgICAgICAgICAgfCAyICst CiBuZXQvaXB2Ni9zeW5jb29raWVzLmMgICAgICAgICAgICB8IDIgKy0KIG5ldC9pcHY2L3RjcF9p cHY2LmMgICAgICAgICAgICAgIHwgNCArKy0tCiBuZXQvbDJ0cC9sMnRwX2lwNi5jICAgICAgICAg ICAgICB8IDIgKy0KIG5ldC9zY3RwL2lwdjYuYyAgICAgICAgICAgICAgICAgIHwgNCArKy0tCiAx MSBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9pcHY2LmggYi9pbmNsdWRlL25ldC9pcHY2LmgKaW5kZXggOGRm YzY1NjM5YWE0Li42YTkzOWE3Y2M5ODggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwdjYuaAor KysgYi9pbmNsdWRlL25ldC9pcHY2LmgKQEAgLTEwMTcsNyArMTAxNyw3IEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IHNrX2J1ZmYgKmlwNl9maW5pc2hfc2tiKHN0cnVjdCBzb2NrICpzaykKIAogaW50 IGlwNl9kc3RfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg ZHN0X2VudHJ5ICoqZHN0LAogCQkgICBzdHJ1Y3QgZmxvd2k2ICpmbDYpOwotc3RydWN0IGRzdF9l bnRyeSAqaXA2X2RzdF9sb29rdXBfZmxvdyhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBm bG93aTYgKmZsNiwKK3N0cnVjdCBkc3RfZW50cnkgKmlwNl9kc3RfbG9va3VwX2Zsb3coc3RydWN0 IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBmbG93aTYgKmZsNiwKIAkJ CQkgICAgICBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmZpbmFsX2RzdCk7CiBzdHJ1Y3QgZHN0X2Vu dHJ5ICppcDZfc2tfZHN0X2xvb2t1cF9mbG93KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dp NiAqZmw2LAogCQkJCQkgY29uc3Qgc3RydWN0IGluNl9hZGRyICpmaW5hbF9kc3QsCmRpZmYgLS1n aXQgYS9uZXQvZGNjcC9pcHY2LmMgYi9uZXQvZGNjcC9pcHY2LmMKaW5kZXggMWI3MzgxZmY3ODdi Li5lODE4NjliNzg3NWYgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjYuYworKysgYi9uZXQvZGNj cC9pcHY2LmMKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgaW50IGRjY3BfdjZfc2VuZF9yZXNw b25zZShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcQogCWZp bmFsX3AgPSBmbDZfdXBkYXRlX2RzdCgmZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCksICZm aW5hbCk7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93 KHNrLCAmZmw2LCBmaW5hbF9wKTsKKwlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0 KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCWlmIChJU19FUlIoZHN0KSkgewogCQllcnIgPSBQ VFJfRVJSKGRzdCk7CiAJCWRzdCA9IE5VTEw7CkBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGljIHZv aWQgZGNjcF92Nl9jdGxfc2VuZF9yZXNldChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpyeHNrYikKIAlzZWN1cml0eV9za2JfY2xhc3NpZnlfZmxvdyhyeHNrYiwgZmxvd2k2 X3RvX2Zsb3dpKCZmbDYpKTsKIAogCS8qIHNrID0gTlVMTCwgYnV0IGl0IGlzIHNhZmUgZm9yIG5v dy4gUlNUIHNvY2tldCByZXF1aXJlZC4gKi8KLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KGN0 bF9zaywgJmZsNiwgTlVMTCk7CisJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzb2NrX25ldChj dGxfc2spLCBjdGxfc2ssICZmbDYsIE5VTEwpOwogCWlmICghSVNfRVJSKGRzdCkpIHsKIAkJc2ti X2RzdF9zZXQoc2tiLCBkc3QpOwogCQlpcDZfeG1pdChjdGxfc2ssIHNrYiwgJmZsNiwgMCwgTlVM TCwgMCk7CkBAIC05MTEsNyArOTExLDcgQEAgc3RhdGljIGludCBkY2NwX3Y2X2Nvbm5lY3Qoc3Ry dWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLAogCW9wdCA9IHJjdV9kZXJlZmVy ZW5jZV9wcm90ZWN0ZWQobnAtPm9wdCwgbG9ja2RlcF9zb2NrX2lzX2hlbGQoc2spKTsKIAlmaW5h bF9wID0gZmw2X3VwZGF0ZV9kc3QoJmZsNiwgb3B0LCAmZmluYWwpOwogCi0JZHN0ID0gaXA2X2Rz dF9sb29rdXBfZmxvdyhzaywgJmZsNiwgZmluYWxfcCk7CisJZHN0ID0gaXA2X2RzdF9sb29rdXBf Zmxvdyhzb2NrX25ldChzayksIHNrLCAmZmw2LCBmaW5hbF9wKTsKIAlpZiAoSVNfRVJSKGRzdCkp IHsKIAkJZXJyID0gUFRSX0VSUihkc3QpOwogCQlnb3RvIGZhaWx1cmU7CmRpZmYgLS1naXQgYS9u ZXQvaXB2Ni9hZl9pbmV0Ni5jIGIvbmV0L2lwdjYvYWZfaW5ldDYuYwppbmRleCBlZjM3ZTA1NzRm NTQuLjllMDViNzI3NjAyMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWZfaW5ldDYuYworKysgYi9u ZXQvaXB2Ni9hZl9pbmV0Ni5jCkBAIC03NjUsNyArNzY1LDcgQEAgaW50IGluZXQ2X3NrX3JlYnVp bGRfaGVhZGVyKHN0cnVjdCBzb2NrICpzaykKIAkJCQkJICZmaW5hbCk7CiAJCXJjdV9yZWFkX3Vu bG9jaygpOwogCi0JCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssICZmbDYsIGZpbmFsX3Ap OworCQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZp bmFsX3ApOwogCQlpZiAoSVNfRVJSKGRzdCkpIHsKIAkJCXNrLT5za19yb3V0ZV9jYXBzID0gMDsK IAkJCXNrLT5za19lcnJfc29mdCA9IC1QVFJfRVJSKGRzdCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2 Ni9kYXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCA5NmY5MzkyNDhkMmYuLjM5 MGJlZGRlMjFhNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2 Ni9kYXRhZ3JhbS5jCkBAIC04NSw3ICs4NSw3IEBAIGludCBpcDZfZGF0YWdyYW1fZHN0X3VwZGF0 ZShzdHJ1Y3Qgc29jayAqc2ssIGJvb2wgZml4X3NrX3NhZGRyKQogCWZpbmFsX3AgPSBmbDZfdXBk YXRlX2RzdCgmZmw2LCBvcHQsICZmaW5hbCk7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLQlkc3Qg PSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCAmZmw2LCBmaW5hbF9wKTsKKwlkc3QgPSBpcDZfZHN0 X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCWlmIChJU19F UlIoZHN0KSkgewogCQllcnIgPSBQVFJfRVJSKGRzdCk7CiAJCWdvdG8gb3V0OwpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2Ni9pbmV0Nl9jb25u ZWN0aW9uX3NvY2suYwppbmRleCA0ZGEyNGFhNmM2OTYuLjlmM2VmNmUwMjU2OCAxMDA2NDQKLS0t IGEvbmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0L2lwdjYvaW5ldDZf Y29ubmVjdGlvbl9zb2NrLmMKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IGRzdF9lbnRyeSAqaW5l dDZfY3NrX3JvdXRlX3JlcShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJZmw2LT5mbG93aTZfdWlk ID0gc2stPnNrX3VpZDsKIAlzZWN1cml0eV9yZXFfY2xhc3NpZnlfZmxvdyhyZXEsIGZsb3dpNl90 b19mbG93aShmbDYpKTsKIAotCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgZmlu YWxfcCk7CisJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzb2NrX25ldChzayksIHNrLCBmbDYs IGZpbmFsX3ApOwogCWlmIChJU19FUlIoZHN0KSkKIAkJcmV0dXJuIE5VTEw7CiAKQEAgLTEwMyw3 ICsxMDMsNyBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqaW5ldDZfY3NrX3JvdXRlX3NvY2tl dChzdHJ1Y3Qgc29jayAqc2ssCiAKIAlkc3QgPSBfX2luZXQ2X2Nza19kc3RfY2hlY2soc2ssIG5w LT5kc3RfY29va2llKTsKIAlpZiAoIWRzdCkgewotCQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93 KHNrLCBmbDYsIGZpbmFsX3ApOworCQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0 KHNrKSwgc2ssIGZsNiwgZmluYWxfcCk7CiAKIAkJaWYgKCFJU19FUlIoZHN0KSkKIAkJCWlwNl9k c3Rfc3RvcmUoc2ssIGRzdCwgTlVMTCwgTlVMTCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZf b3V0cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKaW5kZXggZTcxNTY4ZjczMGY5Li40M2M3 Mzg5OTIyYjEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2 Ni9pcDZfb3V0cHV0LmMKQEAgLTExNDQsMTkgKzExNDQsMTkgQEAgRVhQT1JUX1NZTUJPTF9HUEwo aXA2X2RzdF9sb29rdXApOwogICoJSXQgcmV0dXJucyBhIHZhbGlkIGRzdCBwb2ludGVyIG9uIHN1 Y2Nlc3MsIG9yIGEgcG9pbnRlciBlbmNvZGVkCiAgKgllcnJvciBjb2RlLgogICovCi1zdHJ1Y3Qg ZHN0X2VudHJ5ICppcDZfZHN0X2xvb2t1cF9mbG93KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IGZsb3dpNiAqZmw2LAorc3RydWN0IGRzdF9lbnRyeSAqaXA2X2RzdF9sb29rdXBfZmxvdyhz dHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dpNiAqZmw2 LAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZmluYWxfZHN0KQogewogCXN0cnVj dCBkc3RfZW50cnkgKmRzdCA9IE5VTEw7CiAJaW50IGVycjsKIAotCWVyciA9IGlwNl9kc3RfbG9v a3VwX3RhaWwoc29ja19uZXQoc2spLCBzaywgJmRzdCwgZmw2KTsKKwllcnIgPSBpcDZfZHN0X2xv b2t1cF90YWlsKG5ldCwgc2ssICZkc3QsIGZsNik7CiAJaWYgKGVycikKIAkJcmV0dXJuIEVSUl9Q VFIoZXJyKTsKIAlpZiAoZmluYWxfZHN0KQogCQlmbDYtPmRhZGRyID0gKmZpbmFsX2RzdDsKIAot CXJldHVybiB4ZnJtX2xvb2t1cF9yb3V0ZShzb2NrX25ldChzayksIGRzdCwgZmxvd2k2X3RvX2Zs b3dpKGZsNiksIHNrLCAwKTsKKwlyZXR1cm4geGZybV9sb29rdXBfcm91dGUobmV0LCBkc3QsIGZs b3dpNl90b19mbG93aShmbDYpLCBzaywgMCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpcDZfZHN0 X2xvb2t1cF9mbG93KTsKIApAQCAtMTE4OCw3ICsxMTg4LDcgQEAgc3RydWN0IGRzdF9lbnRyeSAq aXA2X3NrX2RzdF9sb29rdXBfZmxvdyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBmbG93aTYgKmZs NiwKIAlpZiAoZHN0KQogCQlyZXR1cm4gZHN0OwogCi0JZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxv dyhzaywgZmw2LCBmaW5hbF9kc3QpOworCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc29ja19u ZXQoc2spLCBzaywgZmw2LCBmaW5hbF9kc3QpOwogCWlmIChjb25uZWN0ZWQgJiYgIUlTX0VSUihk c3QpKQogCQlpcDZfc2tfZHN0X3N0b3JlX2Zsb3coc2ssIGRzdF9jbG9uZShkc3QpLCBmbDYpOwog CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBiL25ldC9pcHY2L3Jhdy5jCmluZGV4IDhhNjEz MTk5MWUzOC4uNjg4OTcxNmJmOTg5IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yYXcuYworKysgYi9u ZXQvaXB2Ni9yYXcuYwpAQCAtOTIzLDcgKzkyMyw3IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1z ZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAogCWZs Ni5mbG93bGFiZWwgPSBpcDZfbWFrZV9mbG93aW5mbyhpcGM2LnRjbGFzcywgZmw2LmZsb3dsYWJl bCk7CiAKLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCAmZmw2LCBmaW5hbF9wKTsKKwlk c3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3Ap OwogCWlmIChJU19FUlIoZHN0KSkgewogCQllcnIgPSBQVFJfRVJSKGRzdCk7CiAJCWdvdG8gb3V0 OwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvc3luY29va2llcy5jIGIvbmV0L2lwdjYvc3luY29va2ll cy5jCmluZGV4IDE2NjMyZTAyZTliMC4uMzA5MTVmNmYzMWUzIDEwMDY0NAotLS0gYS9uZXQvaXB2 Ni9zeW5jb29raWVzLmMKKysrIGIvbmV0L2lwdjYvc3luY29va2llcy5jCkBAIC0yMzUsNyArMjM1 LDcgQEAgc3RydWN0IHNvY2sgKmNvb2tpZV92Nl9jaGVjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVj dCBza19idWZmICpza2IpCiAJCWZsNi5mbG93aTZfdWlkID0gc2stPnNrX3VpZDsKIAkJc2VjdXJp dHlfcmVxX2NsYXNzaWZ5X2Zsb3cocmVxLCBmbG93aTZfdG9fZmxvd2koJmZsNikpOwogCi0JCWRz dCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssICZmbDYsIGZpbmFsX3ApOworCQlkc3QgPSBpcDZf ZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCQlpZiAo SVNfRVJSKGRzdCkpCiAJCQlnb3RvIG91dF9mcmVlOwogCX0KZGlmZiAtLWdpdCBhL25ldC9pcHY2 L3RjcF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDVkYTA2OWU5MWNhYy4uODQ0 OTdlMDM0MmJjIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jCisrKyBiL25ldC9pcHY2 L3RjcF9pcHY2LmMKQEAgLTI3NSw3ICsyNzUsNyBAQCBzdGF0aWMgaW50IHRjcF92Nl9jb25uZWN0 KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKIAogCXNlY3VyaXR5X3Nr X2NsYXNzaWZ5X2Zsb3coc2ssIGZsb3dpNl90b19mbG93aSgmZmw2KSk7CiAKLQlkc3QgPSBpcDZf ZHN0X2xvb2t1cF9mbG93KHNrLCAmZmw2LCBmaW5hbF9wKTsKKwlkc3QgPSBpcDZfZHN0X2xvb2t1 cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCWlmIChJU19FUlIoZHN0 KSkgewogCQllcnIgPSBQVFJfRVJSKGRzdCk7CiAJCWdvdG8gZmFpbHVyZTsKQEAgLTkwNCw3ICs5 MDQsNyBAQCBzdGF0aWMgdm9pZCB0Y3BfdjZfc2VuZF9yZXNwb25zZShjb25zdCBzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIHUzMgogCSAqIFVuZGVybHlpbmcgZnVuY3Rpb24g d2lsbCB1c2UgdGhpcyB0byByZXRyaWV2ZSB0aGUgbmV0d29yawogCSAqIG5hbWVzcGFjZQogCSAq LwotCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coY3RsX3NrLCAmZmw2LCBOVUxMKTsKKwlkc3Qg PSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KGN0bF9zayksIGN0bF9zaywgJmZsNiwgTlVM TCk7CiAJaWYgKCFJU19FUlIoZHN0KSkgewogCQlza2JfZHN0X3NldChidWZmLCBkc3QpOwogCQlp cDZfeG1pdChjdGxfc2ssIGJ1ZmYsICZmbDYsIGZsNi5mbG93aTZfbWFyaywgTlVMTCwgdGNsYXNz KTsKZGlmZiAtLWdpdCBhL25ldC9sMnRwL2wydHBfaXA2LmMgYi9uZXQvbDJ0cC9sMnRwX2lwNi5j CmluZGV4IDY4N2UyM2E4YjMyNi4uYWQzNzE2MDZjYmE1IDEwMDY0NAotLS0gYS9uZXQvbDJ0cC9s MnRwX2lwNi5jCisrKyBiL25ldC9sMnRwL2wydHBfaXA2LmMKQEAgLTYxNSw3ICs2MTUsNyBAQCBz dGF0aWMgaW50IGwydHBfaXA2X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRy ICptc2csIHNpemVfdCBsZW4pCiAKIAlmbDYuZmxvd2xhYmVsID0gaXA2X21ha2VfZmxvd2luZm8o aXBjNi50Y2xhc3MsIGZsNi5mbG93bGFiZWwpOwogCi0JZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxv dyhzaywgJmZsNiwgZmluYWxfcCk7CisJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzb2NrX25l dChzayksIHNrLCAmZmw2LCBmaW5hbF9wKTsKIAlpZiAoSVNfRVJSKGRzdCkpIHsKIAkJZXJyID0g UFRSX0VSUihkc3QpOwogCQlnb3RvIG91dDsKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2lwdjYuYyBi L25ldC9zY3RwL2lwdjYuYwppbmRleCBlNWYyZmM3MjZhOTguLmU5YzJiNGRmYjU0MiAxMDA2NDQK LS0tIGEvbmV0L3NjdHAvaXB2Ni5jCisrKyBiL25ldC9zY3RwL2lwdjYuYwpAQCAtMjc1LDcgKzI3 NSw3IEBAIHN0YXRpYyB2b2lkIHNjdHBfdjZfZ2V0X2RzdChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQg KnQsIHVuaW9uIHNjdHBfYWRkciAqc2FkZHIsCiAJZmluYWxfcCA9IGZsNl91cGRhdGVfZHN0KGZs NiwgcmN1X2RlcmVmZXJlbmNlKG5wLT5vcHQpLCAmZmluYWwpOwogCXJjdV9yZWFkX3VubG9jaygp OwogCi0JZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzaywgZmw2LCBmaW5hbF9wKTsKKwlkc3Qg PSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssIGZsNiwgZmluYWxfcCk7CiAJ aWYgKCFhc29jIHx8IHNhZGRyKQogCQlnb3RvIG91dDsKIApAQCAtMzI4LDcgKzMyOCw3IEBAIHN0 YXRpYyB2b2lkIHNjdHBfdjZfZ2V0X2RzdChzdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnQsIHVuaW9u IHNjdHBfYWRkciAqc2FkZHIsCiAJCWZsNi0+c2FkZHIgPSBsYWRkci0+YS52Ni5zaW42X2FkZHI7 CiAJCWZsNi0+Zmw2X3Nwb3J0ID0gbGFkZHItPmEudjYuc2luNl9wb3J0OwogCQlmaW5hbF9wID0g Zmw2X3VwZGF0ZV9kc3QoZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCksICZmaW5hbCk7Ci0J CWJkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCBmbDYsIGZpbmFsX3ApOworCQliZHN0ID0g aXA2X2RzdF9sb29rdXBfZmxvdyhzb2NrX25ldChzayksIHNrLCBmbDYsIGZpbmFsX3ApOwogCiAJ CWlmIChJU19FUlIoYmRzdCkpCiAJCQljb250aW51ZTsKLS0gCjIuMjAuMQoKCkZyb20gZmVmM2Vk MDk2MTg0NDk4ZmZiOGQyZTczMzhmNDY2Zjc5Y2FiYTRlMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVhc3lzbmFpbC5uZXQ+CkRhdGU6IFdlZCwg NCBEZWMgMjAxOSAxNTozNTo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTYvMjZdIG5ldDogaXB2 Nl9zdHViOiB1c2UgaXA2X2RzdF9sb29rdXBfZmxvdyBpbnN0ZWFkIG9mCiBpcDZfZHN0X2xvb2t1 cAoKWyBVcHN0cmVhbSBjb21taXQgNmM4OTkxZjQxNTQ2YzNjNDcyNTAzZGZmMWVhOWRhYWRkZjkz MzFjMiBdCgppcHY2X3N0dWIgdXNlcyB0aGUgaXA2X2RzdF9sb29rdXAgZnVuY3Rpb24gdG8gYWxs b3cgb3RoZXIgbW9kdWxlcyB0bwpwZXJmb3JtIElQdjYgbG9va3Vwcy4gSG93ZXZlciwgdGhpcyBm dW5jdGlvbiBza2lwcyB0aGUgWEZSTSBsYXllcgplbnRpcmVseS4KCkFsbCB1c2VycyBvZiBpcHY2 X3N0dWItPmlwNl9kc3RfbG9va3VwIHVzZSBpcF9yb3V0ZV9vdXRwdXRfZmxvdyAodmlhIHRoZQpp cF9yb3V0ZV9vdXRwdXRfa2V5IGFuZCBpcF9yb3V0ZV9vdXRwdXQgaGVscGVycykgZm9yIHRoZWly IElQdjQgbG9va3VwcywKd2hpY2ggY2FsbHMgeGZybV9sb29rdXBfcm91dGUoKS4gVGhpcyBwYXRj aCBmaXhlcyB0aGlzIGluY29uc2lzdGVudApiZWhhdmlvciBieSBzd2l0Y2hpbmcgdGhlIHN0dWIg dG8gaXA2X2RzdF9sb29rdXBfZmxvdywgd2hpY2ggYWxzbyBjYWxscwp4ZnJtX2xvb2t1cF9yb3V0 ZSgpLgoKVGhpcyByZXF1aXJlcyBzb21lIGNoYW5nZXMgaW4gYWxsIHRoZSBjYWxsZXJzLCBhcyB0 aGVzZSB0d28gZnVuY3Rpb25zCnRha2UgZGlmZmVyZW50IGFyZ3VtZW50cyBhbmQgaGF2ZSBkaWZm ZXJlbnQgcmV0dXJuIHR5cGVzLgoKRml4ZXM6IDVmODFiZDJlNWQ4MCAoImlwdjY6IGV4cG9ydCBh IHN0dWIgZm9yIElQdjYgc3ltYm9scyB1c2VkIGJ5IHZ4bGFuIikKUmVwb3J0ZWQtYnk6IFhpdW1l aSBNdSA8eG11QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhYnJpbmEgRHVicm9jYSA8c2RA cXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWRkci5jICAgICAgICAg ICAgICAgICAgICAgIHwgIDcgKysrLS0tLQogZHJpdmVycy9pbmZpbmliYW5kL3N3L3J4ZS9yeGVf bmV0LmMgICAgICAgICAgICAgICAgIHwgIDggKysrKystLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uYyB8ICA4ICsrKystLS0tCiBkcml2ZXJzL25l dC9nZW5ldmUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKystCiBkcml2 ZXJzL25ldC92eGxhbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKyst LS0tLQogaW5jbHVkZS9uZXQvaXB2Nl9zdHVicy5oICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDYgKysrKy0tCiBuZXQvY29yZS9sd3RfYnBmLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNCArLS0tCiBuZXQvaXB2Ni9hZGRyY29uZl9jb3JlLmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxMSArKysrKystLS0tLQogbmV0L2lwdjYvYWZfaW5ldDYuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9tcGxzL2FmX21wbHMuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKy0tLS0KIG5ldC90aXBjL3Vk cF9tZWRpYS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA5ICsrKysrKy0tLQog MTEgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9pbmZpbmliYW5kL2NvcmUvYWRkci5jIGIvZHJpdmVycy9pbmZpbmli YW5kL2NvcmUvYWRkci5jCmluZGV4IGJmNTM5YzM0Y2NkMy4uZmNhNTAyNWQ1YTFhIDEwMDY0NAot LS0gYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMKKysrIGIvZHJpdmVycy9pbmZpbmli YW5kL2NvcmUvYWRkci5jCkBAIC00MjEsMTYgKzQyMSwxNSBAQCBzdGF0aWMgaW50IGFkZHI2X3Jl c29sdmUoc3RydWN0IHNvY2thZGRyICpzcmNfc29jaywKIAkJCQkoY29uc3Qgc3RydWN0IHNvY2th ZGRyX2luNiAqKWRzdF9zb2NrOwogCXN0cnVjdCBmbG93aTYgZmw2OwogCXN0cnVjdCBkc3RfZW50 cnkgKmRzdDsKLQlpbnQgcmV0OwogCiAJbWVtc2V0KCZmbDYsIDAsIHNpemVvZiBmbDYpOwogCWZs Ni5kYWRkciA9IGRzdF9pbi0+c2luNl9hZGRyOwogCWZsNi5zYWRkciA9IHNyY19pbi0+c2luNl9h ZGRyOwogCWZsNi5mbG93aTZfb2lmID0gYWRkci0+Ym91bmRfZGV2X2lmOwogCi0JcmV0ID0gaXB2 Nl9zdHViLT5pcHY2X2RzdF9sb29rdXAoYWRkci0+bmV0LCBOVUxMLCAmZHN0LCAmZmw2KTsKLQlp ZiAocmV0IDwgMCkKLQkJcmV0dXJuIHJldDsKKwlkc3QgPSBpcHY2X3N0dWItPmlwdjZfZHN0X2xv b2t1cF9mbG93KGFkZHItPm5ldCwgTlVMTCwgJmZsNiwgTlVMTCk7CisJaWYgKElTX0VSUihkc3Qp KQorCQlyZXR1cm4gUFRSX0VSUihkc3QpOwogCiAJaWYgKGlwdjZfYWRkcl9hbnkoJnNyY19pbi0+ c2luNl9hZGRyKSkKIAkJc3JjX2luLT5zaW42X2FkZHIgPSBmbDYuc2FkZHI7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYyBiL2RyaXZlcnMvaW5maW5pYmFu ZC9zdy9yeGUvcnhlX25ldC5jCmluZGV4IDVhMzQ3NGY5MzUxYi4uMzEyYzJmYzk2MWMwIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYworKysgYi9kcml2ZXJz L2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQuYwpAQCAtMTE3LDEwICsxMTcsMTIgQEAgc3RhdGlj IHN0cnVjdCBkc3RfZW50cnkgKnJ4ZV9maW5kX3JvdXRlNihzdHJ1Y3QgbmV0X2RldmljZSAqbmRl diwKIAltZW1jcHkoJmZsNi5kYWRkciwgZGFkZHIsIHNpemVvZigqZGFkZHIpKTsKIAlmbDYuZmxv d2k2X3Byb3RvID0gSVBQUk9UT19VRFA7CiAKLQlpZiAodW5saWtlbHkoaXB2Nl9zdHViLT5pcHY2 X2RzdF9sb29rdXAoc29ja19uZXQocmVjdl9zb2NrZXRzLnNrNi0+c2spLAotCQkJCQkJcmVjdl9z b2NrZXRzLnNrNi0+c2ssICZuZHN0LCAmZmw2KSkpIHsKKwluZHN0ID0gaXB2Nl9zdHViLT5pcHY2 X2RzdF9sb29rdXBfZmxvdyhzb2NrX25ldChyZWN2X3NvY2tldHMuc2s2LT5zayksCisJCQkJCSAg ICAgICByZWN2X3NvY2tldHMuc2s2LT5zaywgJmZsNiwKKwkJCQkJICAgICAgIE5VTEwpOworCWlm ICh1bmxpa2VseShJU19FUlIobmRzdCkpKSB7CiAJCXByX2Vycl9yYXRlbGltaXRlZCgibm8gcm91 dGUgdG8gJXBJNlxuIiwgZGFkZHIpOwotCQlnb3RvIHB1dDsKKwkJcmV0dXJuIE5VTEw7CiAJfQog CiAJaWYgKHVubGlrZWx5KG5kc3QtPmVycm9yKSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5jCmluZGV4IGQ0MWM1MjBjZTBhOC4u MGQ1MjBjOTNjOWJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW4vdGNfdHVuLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuL3RjX3R1bi5jCkBAIC0xMzcsMTAgKzEzNywxMCBAQCBzdGF0aWMgaW50IG1s eDVlX3JvdXRlX2xvb2t1cF9pcHY2KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LAogI2lmIElTX0VO QUJMRUQoQ09ORklHX0lORVQpICYmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCiAJaW50IHJldDsK IAotCXJldCA9IGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9va3VwKGRldl9uZXQobWlycmVkX2Rldiks IE5VTEwsICZkc3QsCi0JCQkJCSBmbDYpOwotCWlmIChyZXQgPCAwKQotCQlyZXR1cm4gcmV0Owor CWRzdCA9IGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9va3VwX2Zsb3coZGV2X25ldChtaXJyZWRfZGV2 KSwgTlVMTCwgZmw2LAorCQkJCQkgICAgICBOVUxMKTsKKwlpZiAoSVNfRVJSKGRzdCkpCisJCXJl dHVybiBQVFJfRVJSKGRzdCk7CiAKIAlpZiAoISgqb3V0X3R0bCkpCiAJCSpvdXRfdHRsID0gaXA2 X2RzdF9ob3BsaW1pdChkc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMgYi9k cml2ZXJzL25ldC9nZW5ldmUuYwppbmRleCBjYjJlYThmYWNkOGQuLmFjMTQ3MGE2YzY0ZiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIvZHJpdmVycy9uZXQvZ2VuZXZlLmMK QEAgLTg1Myw3ICs4NTMsOSBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqZ2VuZXZlX2dldF92 Nl9kc3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJaWYgKGRzdCkKIAkJCXJldHVybiBkc3Q7CiAJ fQotCWlmIChpcHY2X3N0dWItPmlwdjZfZHN0X2xvb2t1cChnZW5ldmUtPm5ldCwgZ3M2LT5zb2Nr LT5zaywgJmRzdCwgZmw2KSkgeworCWRzdCA9IGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9va3VwX2Zs b3coZ2VuZXZlLT5uZXQsIGdzNi0+c29jay0+c2ssIGZsNiwKKwkJCQkJICAgICAgTlVMTCk7CisJ aWYgKElTX0VSUihkc3QpKSB7CiAJCW5ldGRldl9kYmcoZGV2LCAibm8gcm91dGUgdG8gJXBJNlxu IiwgJmZsNi0+ZGFkZHIpOwogCQlyZXR1cm4gRVJSX1BUUigtRU5FVFVOUkVBQ0gpOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMgYi9kcml2ZXJzL25ldC92eGxhbi5jCmluZGV4 IGUwNzg3Mjg2OTI2Ni4uODM4ZDAzOTBiMmY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxh bi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTIyNzYsNyArMjI3Niw2IEBAIHN0YXRp YyBzdHJ1Y3QgZHN0X2VudHJ5ICp2eGxhbjZfZ2V0X3JvdXRlKHN0cnVjdCB2eGxhbl9kZXYgKnZ4 bGFuLAogCWJvb2wgdXNlX2NhY2hlID0gaXBfdHVubmVsX2RzdF9jYWNoZV91c2FibGUoc2tiLCBp bmZvKTsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpuZHN0OwogCXN0cnVjdCBmbG93aTYgZmw2OwotCWlu dCBlcnI7CiAKIAlpZiAoIXNvY2s2KQogCQlyZXR1cm4gRVJSX1BUUigtRUlPKTsKQEAgLTIyOTks MTAgKzIyOTgsOSBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqdnhsYW42X2dldF9yb3V0ZShz dHJ1Y3QgdnhsYW5fZGV2ICp2eGxhbiwKIAlmbDYuZmw2X2Rwb3J0ID0gZHBvcnQ7CiAJZmw2LmZs Nl9zcG9ydCA9IHNwb3J0OwogCi0JZXJyID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29rdXAodnhs YW4tPm5ldCwKLQkJCQkJIHNvY2s2LT5zb2NrLT5zaywKLQkJCQkJICZuZHN0LCAmZmw2KTsKLQlp ZiAodW5saWtlbHkoZXJyIDwgMCkpIHsKKwluZHN0ID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29r dXBfZmxvdyh2eGxhbi0+bmV0LCBzb2NrNi0+c29jay0+c2ssCisJCQkJCSAgICAgICAmZmw2LCBO VUxMKTsKKwlpZiAodW5saWtlbHkoSVNfRVJSKG5kc3QpKSkgewogCQluZXRkZXZfZGJnKGRldiwg Im5vIHJvdXRlIHRvICVwSTZcbiIsIGRhZGRyKTsKIAkJcmV0dXJuIEVSUl9QVFIoLUVORVRVTlJF QUNIKTsKIAl9CmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcHY2X3N0dWJzLmggYi9pbmNsdWRl L25ldC9pcHY2X3N0dWJzLmgKaW5kZXggNWM5M2U5NDJjNTBiLi4zZTdkMmMwZTc5Y2EgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbmV0L2lwdjZfc3R1YnMuaAorKysgYi9pbmNsdWRlL25ldC9pcHY2X3N0 dWJzLmgKQEAgLTI0LDggKzI0LDEwIEBAIHN0cnVjdCBpcHY2X3N0dWIgewogCQkJCSBjb25zdCBz dHJ1Y3QgaW42X2FkZHIgKmFkZHIpOwogCWludCAoKmlwdjZfc29ja19tY19kcm9wKShzdHJ1Y3Qg c29jayAqc2ssIGludCBpZmluZGV4LAogCQkJCSBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmFkZHIp OwotCWludCAoKmlwdjZfZHN0X2xvb2t1cCkoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAq c2ssCi0JCQkgICAgICAgc3RydWN0IGRzdF9lbnRyeSAqKmRzdCwgc3RydWN0IGZsb3dpNiAqZmw2 KTsKKwlzdHJ1Y3QgZHN0X2VudHJ5ICooKmlwdjZfZHN0X2xvb2t1cF9mbG93KShzdHJ1Y3QgbmV0 ICpuZXQsCisJCQkJCQkgIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKKwkJCQkJCSAgc3RydWN0IGZs b3dpNiAqZmw2LAorCQkJCQkJICBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmZpbmFsX2RzdCk7CiAJ aW50ICgqaXB2Nl9yb3V0ZV9pbnB1dCkoc3RydWN0IHNrX2J1ZmYgKnNrYik7CiAKIAlzdHJ1Y3Qg ZmliNl90YWJsZSAqKCpmaWI2X2dldF90YWJsZSkoc3RydWN0IG5ldCAqbmV0LCB1MzIgaWQpOwpk aWZmIC0tZ2l0IGEvbmV0L2NvcmUvbHd0X2JwZi5jIGIvbmV0L2NvcmUvbHd0X2JwZi5jCmluZGV4 IDc0Y2ZiOGI1YWIzMy4uOTlhNmRlNTJiMjFkIDEwMDY0NAotLS0gYS9uZXQvY29yZS9sd3RfYnBm LmMKKysrIGIvbmV0L2NvcmUvbHd0X2JwZi5jCkBAIC0yMzAsOSArMjMwLDcgQEAgc3RhdGljIGlu dCBicGZfbHd0X3htaXRfcmVyb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlmbDYuZGFkZHIg PSBpcGg2LT5kYWRkcjsKIAkJZmw2LnNhZGRyID0gaXBoNi0+c2FkZHI7CiAKLQkJZXJyID0gaXB2 Nl9zdHViLT5pcHY2X2RzdF9sb29rdXAobmV0LCBza2ItPnNrLCAmZHN0LCAmZmw2KTsKLQkJaWYg KHVubGlrZWx5KGVycikpCi0JCQlnb3RvIGVycjsKKwkJZHN0ID0gaXB2Nl9zdHViLT5pcHY2X2Rz dF9sb29rdXBfZmxvdyhuZXQsIHNrYi0+c2ssICZmbDYsIE5VTEwpOwogCQlpZiAoSVNfRVJSKGRz dCkpIHsKIAkJCWVyciA9IFBUUl9FUlIoZHN0KTsKIAkJCWdvdG8gZXJyOwpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvYWRkcmNvbmZfY29yZS5jIGIvbmV0L2lwdjYvYWRkcmNvbmZfY29yZS5jCmluZGV4 IDc4M2YzYzE0NjZkYS4uNzQ4YTQyNTM2NTBmIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZGRyY29u Zl9jb3JlLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmZfY29yZS5jCkBAIC0xMjgsMTEgKzEyOCwx MiBAQCBpbnQgaW5ldDZhZGRyX3ZhbGlkYXRvcl9ub3RpZmllcl9jYWxsX2NoYWluKHVuc2lnbmVk IGxvbmcgdmFsLCB2b2lkICp2KQogfQogRVhQT1JUX1NZTUJPTChpbmV0NmFkZHJfdmFsaWRhdG9y X25vdGlmaWVyX2NhbGxfY2hhaW4pOwogCi1zdGF0aWMgaW50IGVhZm5vc3VwcG9ydF9pcHY2X2Rz dF9sb29rdXAoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqdTEsCi0JCQkJCXN0cnVjdCBk c3RfZW50cnkgKip1MiwKLQkJCQkJc3RydWN0IGZsb3dpNiAqdTMpCitzdGF0aWMgc3RydWN0IGRz dF9lbnRyeSAqZWFmbm9zdXBwb3J0X2lwdjZfZHN0X2xvb2t1cF9mbG93KHN0cnVjdCBuZXQgKm5l dCwKKwkJCQkJCQkgICBjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCisJCQkJCQkJICAgc3RydWN0IGZs b3dpNiAqZmw2LAorCQkJCQkJCSAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZmluYWxfZHN0KQog ewotCXJldHVybiAtRUFGTk9TVVBQT1JUOworCXJldHVybiBFUlJfUFRSKC1FQUZOT1NVUFBPUlQp OwogfQogCiBzdGF0aWMgaW50IGVhZm5vc3VwcG9ydF9pcHY2X3JvdXRlX2lucHV0KHN0cnVjdCBz a19idWZmICpza2IpCkBAIC0xODksNyArMTkwLDcgQEAgc3RhdGljIGludCBlYWZub3N1cHBvcnRf aXA2X2RlbF9ydChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBmaWI2X2luZm8gKnJ0KQogfQogCiBj b25zdCBzdHJ1Y3QgaXB2Nl9zdHViICppcHY2X3N0dWIgX19yZWFkX21vc3RseSA9ICYoc3RydWN0 IGlwdjZfc3R1YikgewotCS5pcHY2X2RzdF9sb29rdXAgICA9IGVhZm5vc3VwcG9ydF9pcHY2X2Rz dF9sb29rdXAsCisJLmlwdjZfZHN0X2xvb2t1cF9mbG93ID0gZWFmbm9zdXBwb3J0X2lwdjZfZHN0 X2xvb2t1cF9mbG93LAogCS5pcHY2X3JvdXRlX2lucHV0ICA9IGVhZm5vc3VwcG9ydF9pcHY2X3Jv dXRlX2lucHV0LAogCS5maWI2X2dldF90YWJsZSAgICA9IGVhZm5vc3VwcG9ydF9maWI2X2dldF90 YWJsZSwKIAkuZmliNl90YWJsZV9sb29rdXAgPSBlYWZub3N1cHBvcnRfZmliNl90YWJsZV9sb29r dXAsCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZl9pbmV0Ni5jIGIvbmV0L2lwdjYvYWZfaW5ldDYu YwppbmRleCA5ZTA1YjcyNzYwMjIuLjE0YWMxZDkxMTI4NyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYv YWZfaW5ldDYuYworKysgYi9uZXQvaXB2Ni9hZl9pbmV0Ni5jCkBAIC05NDYsNyArOTQ2LDcgQEAg c3RhdGljIGludCBpcHY2X3JvdXRlX2lucHV0KHN0cnVjdCBza19idWZmICpza2IpCiBzdGF0aWMg Y29uc3Qgc3RydWN0IGlwdjZfc3R1YiBpcHY2X3N0dWJfaW1wbCA9IHsKIAkuaXB2Nl9zb2NrX21j X2pvaW4gPSBpcHY2X3NvY2tfbWNfam9pbiwKIAkuaXB2Nl9zb2NrX21jX2Ryb3AgPSBpcHY2X3Nv Y2tfbWNfZHJvcCwKLQkuaXB2Nl9kc3RfbG9va3VwICAgPSBpcDZfZHN0X2xvb2t1cCwKKwkuaXB2 Nl9kc3RfbG9va3VwX2Zsb3cgPSBpcDZfZHN0X2xvb2t1cF9mbG93LAogCS5pcHY2X3JvdXRlX2lu cHV0ICA9IGlwdjZfcm91dGVfaW5wdXQsCiAJLmZpYjZfZ2V0X3RhYmxlCSAgID0gZmliNl9nZXRf dGFibGUsCiAJLmZpYjZfdGFibGVfbG9va3VwID0gZmliNl90YWJsZV9sb29rdXAsCmRpZmYgLS1n aXQgYS9uZXQvbXBscy9hZl9tcGxzLmMgYi9uZXQvbXBscy9hZl9tcGxzLmMKaW5kZXggYzMxMjc0 MWRmMmNlLi40NzAxZWRmZmIxZjcgMTAwNjQ0Ci0tLSBhL25ldC9tcGxzL2FmX21wbHMuYworKysg Yi9uZXQvbXBscy9hZl9tcGxzLmMKQEAgLTYxNywxNiArNjE3LDE1IEBAIHN0YXRpYyBzdHJ1Y3Qg bmV0X2RldmljZSAqaW5ldDZfZmliX2xvb2t1cF9kZXYoc3RydWN0IG5ldCAqbmV0LAogCXN0cnVj dCBuZXRfZGV2aWNlICpkZXY7CiAJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCXN0cnVjdCBmbG93 aTYgZmw2OwotCWludCBlcnI7CiAKIAlpZiAoIWlwdjZfc3R1YikKIAkJcmV0dXJuIEVSUl9QVFIo LUVBRk5PU1VQUE9SVCk7CiAKIAltZW1zZXQoJmZsNiwgMCwgc2l6ZW9mKGZsNikpOwogCW1lbWNw eSgmZmw2LmRhZGRyLCBhZGRyLCBzaXplb2Yoc3RydWN0IGluNl9hZGRyKSk7Ci0JZXJyID0gaXB2 Nl9zdHViLT5pcHY2X2RzdF9sb29rdXAobmV0LCBOVUxMLCAmZHN0LCAmZmw2KTsKLQlpZiAoZXJy KQotCQlyZXR1cm4gRVJSX1BUUihlcnIpOworCWRzdCA9IGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9v a3VwX2Zsb3cobmV0LCBOVUxMLCAmZmw2LCBOVUxMKTsKKwlpZiAoSVNfRVJSKGRzdCkpCisJCXJl dHVybiBFUlJfQ0FTVChkc3QpOwogCiAJZGV2ID0gZHN0LT5kZXY7CiAJZGV2X2hvbGQoZGV2KTsK ZGlmZiAtLWdpdCBhL25ldC90aXBjL3VkcF9tZWRpYS5jIGIvbmV0L3RpcGMvdWRwX21lZGlhLmMK aW5kZXggMjg3ZGY2ODcyMWRmLi4xODZjNzg0MzEyMTcgMTAwNjQ0Ci0tLSBhL25ldC90aXBjL3Vk cF9tZWRpYS5jCisrKyBiL25ldC90aXBjL3VkcF9tZWRpYS5jCkBAIC0xOTUsMTAgKzE5NSwxMyBA QCBzdGF0aWMgaW50IHRpcGNfdWRwX3htaXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiLAogCQkJCS5zYWRkciA9IHNyYy0+aXB2NiwKIAkJCQkuZmxvd2k2X3Byb3RvID0gSVBQ Uk9UT19VRFAKIAkJCX07Ci0JCQllcnIgPSBpcHY2X3N0dWItPmlwdjZfZHN0X2xvb2t1cChuZXQs IHViLT51YnNvY2stPnNrLAotCQkJCQkJCSAmbmRzdCwgJmZsNik7Ci0JCQlpZiAoZXJyKQorCQkJ bmRzdCA9IGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9va3VwX2Zsb3cobmV0LAorCQkJCQkJCSAgICAg ICB1Yi0+dWJzb2NrLT5zaywKKwkJCQkJCQkgICAgICAgJmZsNiwgTlVMTCk7CisJCQlpZiAoSVNf RVJSKG5kc3QpKSB7CisJCQkJZXJyID0gUFRSX0VSUihuZHN0KTsKIAkJCQlnb3RvIHR4X2Vycm9y OworCQkJfQogCQkJZHN0X2NhY2hlX3NldF9pcDYoY2FjaGUsIG5kc3QsICZmbDYuc2FkZHIpOwog CQl9CiAJCXR0bCA9IGlwNl9kc3RfaG9wbGltaXQobmRzdCk7Ci0tIAoyLjIwLjEKCgpGcm9tIGY0 NTY5NTNmYzE1ODBmZWQ0ZDIwZjNjODIyYjYzNjc0NzM5MjUxMDkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+CkRhdGU6IEZy aSwgNiBEZWMgMjAxOSAxMjozODozNiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMjZdIHRjcDog Zml4IHJlamVjdGVkIHN5bmNvb2tpZXMgZHVlIHRvIHN0YWxlIHRpbWVzdGFtcHMKClsgVXBzdHJl YW0gY29tbWl0IDA0ZDI2ZTdiMTU5YTM5NjM3MjY0NmE0ODBmNGNhYTE2NmQxYjY3MjAgXQoKSWYg bm8gc3luZmxvb2QgaGFwcGVucyBmb3IgYSBsb25nIGVub3VnaCBwZXJpb2Qgb2YgdGltZSwgdGhl biB0aGUKc3luZmxvb2QgdGltZXN0YW1wIGlzbid0IHJlZnJlc2hlZCBhbmQgamlmZmllcyBjYW4g YWR2YW5jZSBzbyBtdWNoCnRoYXQgdGltZV9hZnRlcjMyKCkgY2FuJ3QgYWNjdXJhdGVseSBjb21w YXJlIHRoZW0gYW55IG1vcmUuCgpUaGVyZWZvcmUsIHdlIGNhbiBlbmQgdXAgaW4gYSBzaXR1YXRp b24gd2hlcmUgdGltZV9hZnRlcjMyKG5vdywKbGFzdF9vdmVyZmxvdyArIEhaKSByZXR1cm5zIGZh bHNlLCBqdXN0IGJlY2F1c2UgdGhlc2UgdHdvIHZhbHVlcyBhcmUKdG9vIGZhciBhcGFydC4gSW4g dGhhdCBjYXNlLCB0aGUgc3luZmxvb2QgdGltZXN0YW1wIGlzbid0IHVwZGF0ZWQgYXMKaXQgc2hv dWxkIGJlLCB3aGljaCBjYW4gdHJpY2sgdGNwX3N5bnFfbm9fcmVjZW50X292ZXJmbG93KCkgaW50 bwpyZWplY3RpbmcgdmFsaWQgc3luY29va2llcy4KCkZvciBleGFtcGxlLCBsZXQncyBjb25zaWRl ciB0aGUgZm9sbG93aW5nIHNjZW5hcmlvIG9uIGEgc3lzdGVtCndpdGggSFo9MTAwMDoKCiAgKiBU aGUgc3luZmxvb2QgdGltZXN0YW1wIGlzIDAsIGVpdGhlciBiZWNhdXNlIHRoYXQncyB0aGUgdGlt ZXN0YW1wCiAgICBvZiB0aGUgbGFzdCBzeW5mbG9vZCBvciwgbW9yZSBjb21tb25seSwgYmVjYXVz ZSB3ZSdyZSB3b3JraW5nIHdpdGgKICAgIGEgZnJlc2hseSBjcmVhdGVkIHNvY2tldC4KCiAgKiBX ZSByZWNlaXZlIGEgbmV3IFNZTiwgd2hpY2ggdHJpZ2dlcnMgc3luZmxvb2QgcHJvdGVjdGlvbi4g TGV0J3Mgc2F5CiAgICB0aGF0IHRoaXMgaGFwcGVucyB3aGVuIGppZmZpZXMgPT0gMjE0NzQ4NDY0 OSAodGhhdCBpcywKICAgICdzeW5mbG9vZCB0aW1lc3RhbXAnICsgSFogKyAyXjMxICsgMSkuCgog ICogVGhlbiB0Y3Bfc3lucV9vdmVyZmxvdygpIGRvZXNuJ3QgdXBkYXRlIHRoZSBzeW5mbG9vZCB0 aW1lc3RhbXAsCiAgICBiZWNhdXNlIHRpbWVfYWZ0ZXIzMigyMTQ3NDg0NjQ5LCAxMDAwKSByZXR1 cm5zIGZhbHNlLgogICAgV2l0aDoKICAgICAgLSAyMTQ3NDg0NjQ5OiB0aGUgdmFsdWUgb2Ygamlm ZmllcywgYWthLiAnbm93Jy4KICAgICAgLSAxMDAwOiB0aGUgdmFsdWUgb2YgJ2xhc3Rfb3ZlcmZs b3cnICsgSFouCgogICogQSBiaXQgbGF0ZXIsIHdlIHJlY2VpdmUgdGhlIEFDSyBjb21wbGV0aW5n IHRoZSAzV0hTLiBCdXQKICAgIGNvb2tpZV92WzQ2XV9jaGVjaygpIHJlamVjdHMgaXQgYmVjYXVz ZSB0Y3Bfc3lucV9ub19yZWNlbnRfb3ZlcmZsb3coKQogICAgc2F5cyB0aGF0IHdlJ3JlIG5vdCB1 bmRlciBzeW5mbG9vZC4gVGhhdCdzIGJlY2F1c2UKICAgIHRpbWVfYWZ0ZXIzMigyMTQ3NDg0NjQ5 LCAxMjAwMDApIHJldHVybnMgZmFsc2UuCiAgICBXaXRoOgogICAgICAtIDIxNDc0ODQ2NDk6IHRo ZSB2YWx1ZSBvZiBqaWZmaWVzLCBha2EuICdub3cnLgogICAgICAtIDEyMDAwMDogdGhlIHZhbHVl IG9mICdsYXN0X292ZXJmbG93JyArIFRDUF9TWU5DT09LSUVfVkFMSUQuCgogICAgT2YgY291cnNl LCBpbiByZWFsaXR5IGppZmZpZXMgd291bGQgaGF2ZSBpbmNyZWFzZWQgYSBiaXQsIGJ1dCB0aGlz CiAgICBjb25kaXRpb24gd2lsbCBsYXN0IGZvciB0aGUgbmV4dCAxMTkgc2Vjb25kcywgd2hpY2gg aXMgZmFyIGVub3VnaAogICAgdG8gYWNjb21tb2RhdGUgZm9yIGppZmZpZSdzIGdyb3d0aC4KCkZp eCB0aGlzIGJ5IHVwZGF0aW5nIHRoZSBvdmVyZmxvdyB0aW1lc3RhbXAgd2hlbmV2ZXIgamlmZmll cyBpc24ndAp3aXRoaW4gdGhlIFtsYXN0X292ZXJmbG93LCBsYXN0X292ZXJmbG93ICsgSFpdIHJh bmdlLiBUaGF0IHNob3VsZG4ndApoYXZlIGFueSBwZXJmb3JtYW5jZSBpbXBhY3Qgc2luY2UgdGhl IHVwZGF0ZSBzdGlsbCBoYXBwZW5zIGF0IG1vc3Qgb25jZQpwZXIgc2Vjb25kLgoKTm93IHdlJ3Jl IGd1YXJhbnRlZWQgdG8gaGF2ZSBmcmVzaCB0aW1lc3RhbXBzIHdoaWxlIHVuZGVyIHN5bmZsb29k LCBzbwp0Y3Bfc3lucV9ub19yZWNlbnRfb3ZlcmZsb3coKSBjYW4gc2FmZWx5IHVzZSBpdCB3aXRo IHRpbWVfYWZ0ZXIzMigpIGluCnN1Y2ggc2l0dWF0aW9ucy4KClN0YWxlIHRpbWVzdGFtcHMgY2Fu IHN0aWxsIG1ha2UgdGNwX3N5bnFfbm9fcmVjZW50X292ZXJmbG93KCkgcmV0dXJuCnRoZSB3cm9u ZyB2ZXJkaWN0IHdoZW4gbm90IHVuZGVyIHN5bmZsb29kLiBUaGlzIHdpbGwgYmUgaGFuZGxlZCBp biB0aGUKbmV4dCBwYXRjaC4KCkZvciA2NCBiaXRzIGFyY2hpdGVjdHVyZXMsIHRoZSBwcm9ibGVt IHdhcyBpbnRyb2R1Y2VkIHdpdGggdGhlCmNvbnZlcnNpb24gb2YgLT50d190c19yZWNlbnRfc3Rh bXAgdG8gMzIgYml0cyBpbnRlZ2VyIGJ5IGNvbW1pdApjY2E5YmFiMWI3MmMgKCJ0Y3A6IHVzZSBt b25vdG9uaWMgdGltZXN0YW1wcyBmb3IgUEFXUyIpLgpUaGUgcHJvYmxlbSBoYXMgYWx3YXlzIGJl ZW4gdGhlcmUgb24gMzIgYml0cyBhcmNoaXRlY3R1cmVzLgoKRml4ZXM6IGNjYTliYWIxYjcyYyAo InRjcDogdXNlIG1vbm90b25pYyB0aW1lc3RhbXBzIGZvciBQQVdTIikKRml4ZXM6IDFkYTE3N2U0 YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpTaWduZWQtb2ZmLWJ5OiBHdWlsbGF1bWUgTmF1bHQg PGduYXVsdEByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3RpbWUuaCB8IDEzICsrKysrKysrKysrKysKIGlu Y2x1ZGUvbmV0L3RjcC5oICAgIHwgIDUgKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3RpbWUu aCBiL2luY2x1ZGUvbGludXgvdGltZS5oCmluZGV4IDI3ZDgzZmQyYWU2MS4uNWYzZTQ5OTc4ODM3 IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3RpbWUuaAorKysgYi9pbmNsdWRlL2xpbnV4L3Rp bWUuaApAQCAtOTYsNCArOTYsMTcgQEAgc3RhdGljIGlubGluZSBib29sIGl0aW1lcnNwZWM2NF92 YWxpZChjb25zdCBzdHJ1Y3QgaXRpbWVyc3BlYzY0ICppdHMpCiAgKi8KICNkZWZpbmUgdGltZV9h ZnRlcjMyKGEsIGIpCSgoczMyKSgodTMyKShiKSAtICh1MzIpKGEpKSA8IDApCiAjZGVmaW5lIHRp bWVfYmVmb3JlMzIoYiwgYSkJdGltZV9hZnRlcjMyKGEsIGIpCisKKy8qKgorICogdGltZV9iZXR3 ZWVuMzIgLSBjaGVjayBpZiBhIDMyLWJpdCB0aW1lc3RhbXAgaXMgd2l0aGluIGEgZ2l2ZW4gdGlt ZSByYW5nZQorICogQHQ6CXRoZSB0aW1lIHdoaWNoIG1heSBiZSB3aXRoaW4gW2wsaF0KKyAqIEBs Ogl0aGUgbG93ZXIgYm91bmQgb2YgdGhlIHJhbmdlCisgKiBAaDoJdGhlIGhpZ2hlciBib3VuZCBv ZiB0aGUgcmFuZ2UKKyAqCisgKiB0aW1lX2JlZm9yZTMyKHQsIGwsIGgpIHJldHVybnMgdHJ1ZSBp ZiBAbCA8PSBAdCA8PSBAaC4gQWxsIG9wZXJhbmRzIGFyZQorICogdHJlYXRlZCBhcyAzMi1iaXQg aW50ZWdlcnMuCisgKgorICogRXF1aXZhbGVudCB0byAhKHRpbWVfYmVmb3JlMzIoQHQsIEBsKSB8 fCB0aW1lX2FmdGVyMzIoQHQsIEBoKSkuCisgKi8KKyNkZWZpbmUgdGltZV9iZXR3ZWVuMzIodCwg bCwgaCkgKCh1MzIpKGgpIC0gKHUzMikobCkgPj0gKHUzMikodCkgLSAodTMyKShsKSkKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaAppbmRl eCA4MWU4YWRlMWU2ZTQuLjRmYjM0YzQyYmI2NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGNw LmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTQ4NCwxNCArNDg0LDE1IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCB0Y3Bfc3lucV9vdmVyZmxvdyhjb25zdCBzdHJ1Y3Qgc29jayAqc2spCiAJCXJl dXNlID0gcmN1X2RlcmVmZXJlbmNlKHNrLT5za19yZXVzZXBvcnRfY2IpOwogCQlpZiAobGlrZWx5 KHJldXNlKSkgewogCQkJbGFzdF9vdmVyZmxvdyA9IFJFQURfT05DRShyZXVzZS0+c3lucV9vdmVy Zmxvd190cyk7Ci0JCQlpZiAodGltZV9hZnRlcjMyKG5vdywgbGFzdF9vdmVyZmxvdyArIEhaKSkK KwkJCWlmICghdGltZV9iZXR3ZWVuMzIobm93LCBsYXN0X292ZXJmbG93LAorCQkJCQkgICAgbGFz dF9vdmVyZmxvdyArIEhaKSkKIAkJCQlXUklURV9PTkNFKHJldXNlLT5zeW5xX292ZXJmbG93X3Rz LCBub3cpOwogCQkJcmV0dXJuOwogCQl9CiAJfQogCiAJbGFzdF9vdmVyZmxvdyA9IHRjcF9zayhz ayktPnJ4X29wdC50c19yZWNlbnRfc3RhbXA7Ci0JaWYgKHRpbWVfYWZ0ZXIzMihub3csIGxhc3Rf b3ZlcmZsb3cgKyBIWikpCisJaWYgKCF0aW1lX2JldHdlZW4zMihub3csIGxhc3Rfb3ZlcmZsb3cs IGxhc3Rfb3ZlcmZsb3cgKyBIWikpCiAJCXRjcF9zayhzayktPnJ4X29wdC50c19yZWNlbnRfc3Rh bXAgPSBub3c7CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20gOWY3OGQ1MGIzMWEzNDk2MTE5ZjUxM2Ez Y2RlYjIxMDFmZjFhNGE2ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1l IE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA2IERlYyAyMDE5IDEyOjM4OjQz ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxOC8yNl0gdGNwOiB0aWdodGVuIGFjY2VwdGFuY2Ugb2Yg QUNLcyBub3QgbWF0Y2hpbmcgYSBjaGlsZAogc29ja2V0CgpbIFVwc3RyZWFtIGNvbW1pdCBjYjQ0 YTA4Zjg2NDdmZDJlOGRiNWNjOWFjMjdjZDgzNTVmYTM5MmQ4IF0KCldoZW4gbm8gc3luZmxvb2Qg b2NjdXJzLCB0aGUgc3luZmxvb2QgdGltZXN0YW1wIGlzbid0IHVwZGF0ZWQuClRoZXJlZm9yZSBp dCBjYW4gYmUgc28gb2xkIHRoYXQgdGltZV9hZnRlcjMyKCkgY2FuIGNvbnNpZGVyIGl0IHRvIGJl CmluIHRoZSBmdXR1cmUuCgpUaGF0J3MgYSBwcm9ibGVtIGZvciB0Y3Bfc3lucV9ub19yZWNlbnRf b3ZlcmZsb3coKSBhcyBpdCBtYXkgcmVwb3J0CnRoYXQgYSByZWNlbnQgb3ZlcmZsb3cgb2NjdXJy ZWQgd2hpbGUsIGluIGZhY3QsIGl0J3MganVzdCB0aGF0IGppZmZpZXMKaGFzIGdyb3duIHBhc3Qg J2xhc3Rfb3ZlcmZsb3cnICsgVENQX1NZTkNPT0tJRV9WQUxJRCArIDJeMzEuCgpTcHVyaW91cyBk ZXRlY3Rpb24gb2YgcmVjZW50IG92ZXJmbG93cyBsZWFkIHRvIGV4dHJhIHN5bmNvb2tpZQp2ZXJp ZmljYXRpb24gaW4gY29va2llX3ZbNDZdX2NoZWNrKCkuIEF0IHRoYXQgcG9pbnQsIHRoZSB2ZXJp ZmljYXRpb24Kc2hvdWxkIGZhaWwgYW5kIHRoZSBwYWNrZXQgZHJvcHBlZC4gQnV0IHdlIHNob3Vs ZCBoYXZlIGRyb3BwZWQgdGhlCnBhY2tldCBlYXJsaWVyIGFzIHdlIGRpZG4ndCBldmVuIHNlbmQg YSBzeW5jb29raWUuCgpMZXQncyByZWZpbmUgdGNwX3N5bnFfbm9fcmVjZW50X292ZXJmbG93KCkg dG8gcmVwb3J0IGEgcmVjZW50IG92ZXJmbG93Cm9ubHkgaWYgamlmZmllcyBpcyB3aXRoaW4gdGhl CltsYXN0X292ZXJmbG93LCBsYXN0X292ZXJmbG93ICsgVENQX1NZTkNPT0tJRV9WQUxJRF0gaW50 ZXJ2YWwuIFRoaXMKd2F5LCBubyBzcHVyaW91cyByZWNlbnQgb3ZlcmZsb3cgaXMgcmVwb3J0ZWQg d2hlbiBqaWZmaWVzIHdyYXBzIGFuZAonbGFzdF9vdmVyZmxvdycgYmVjb21lcyBpbiB0aGUgZnV0 dXJlIGZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YKdGltZV9hZnRlcjMyKCkuCgpIb3dldmVyLCBp ZiBqaWZmaWVzIHdyYXBzIGFuZCBlbnRlcnMgdGhlCltsYXN0X292ZXJmbG93LCBsYXN0X292ZXJm bG93ICsgVENQX1NZTkNPT0tJRV9WQUxJRF0gaW50ZXJ2YWwgKHdpdGgKJ2xhc3Rfb3ZlcmZsb3cn IGJlaW5nIGEgc3RhbGUgc3luZmxvb2QgdGltZXN0YW1wKSwgdGhlbgp0Y3Bfc3lucV9ub19yZWNl bnRfb3ZlcmZsb3coKSBzdGlsbCBlcnJvbmVvdXNseSByZXBvcnRzIGFuCm92ZXJmbG93LiBJbiBz dWNoIGNhc2VzLCB3ZSBoYXZlIHRvIHJlbHkgb24gc3luY29va2llIHZlcmlmaWNhdGlvbgp0byBk cm9wIHRoZSBwYWNrZXQuIFdlIHVuZm9ydHVuYXRlbHkgaGF2ZSBubyB3YXkgdG8gZGlmZmVyZW50 aWF0ZQpiZXR3ZWVuIGEgZnJlc2ggYW5kIGEgc3RhbGUgc3luY29va2llIHRpbWVzdGFtcC4KCklu IHByYWN0aWNlLCB1c2luZyBsYXN0X292ZXJmbG93IGFzIGxvd2VyIGJvdW5kIGlzIHByb2JsZW1h dGljLgpJZiB0aGUgc3luZmxvb2QgdGltZXN0YW1wIGlzIGNvbmN1cnJlbnRseSB1cGRhdGVkIGJl dHdlZW4gdGhlIHRpbWUKd2UgcmVhZCBqaWZmaWVzIGFuZCB0aGUgbW9tZW50IHdlIHN0b3JlIHRo ZSB0aW1lc3RhbXAgaW4KJ2xhc3Rfb3ZlcmZsb3cnLCB0aGVuICdub3cnIGJlY29tZXMgc21hbGxl ciB0aGFuICdsYXN0X292ZXJmbG93JyBhbmQKdGNwX3N5bnFfbm9fcmVjZW50X292ZXJmbG93KCkg cmV0dXJucyB0cnVlLCBwb3RlbnRpYWxseSBkcm9wcGluZyBhCnZhbGlkIHN5bmNvb2tpZS4KClJl YWRpbmcgamlmZmllcyBhZnRlciBsb2FkaW5nIHRoZSB0aW1lc3RhbXAgY291bGQgZml4IHRoZSBw cm9ibGVtLApidXQgdGhhdCdkIHJlcXVpcmUgYSBtZW1vcnkgYmFycmllci4gTGV0J3MganVzdCBh Y2NvbW1vZGF0ZSBmb3IKcG90ZW50aWFsIHRpbWVzdGFtcCBncm93dGggaW5zdGVhZCBhbmQgZXh0 ZW5kIHRoZSBpbnRlcnZhbCB1c2luZwonbGFzdF9vdmVyZmxvdyAtIEhaJyBhcyBsb3dlciBib3Vu ZC4KClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv bmV0L3RjcC5oIHwgMTYgKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmgg Yi9pbmNsdWRlL25ldC90Y3AuaAppbmRleCA0ZmIzNGM0MmJiNjYuLmMxZmFkMWI0YzkxYiAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTUw OCwxMyArNTA4LDIzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0Y3Bfc3lucV9ub19yZWNlbnRfb3Zl cmZsb3coY29uc3Qgc3RydWN0IHNvY2sgKnNrKQogCQlyZXVzZSA9IHJjdV9kZXJlZmVyZW5jZShz ay0+c2tfcmV1c2Vwb3J0X2NiKTsKIAkJaWYgKGxpa2VseShyZXVzZSkpIHsKIAkJCWxhc3Rfb3Zl cmZsb3cgPSBSRUFEX09OQ0UocmV1c2UtPnN5bnFfb3ZlcmZsb3dfdHMpOwotCQkJcmV0dXJuIHRp bWVfYWZ0ZXIzMihub3csIGxhc3Rfb3ZlcmZsb3cgKwotCQkJCQkgICAgVENQX1NZTkNPT0tJRV9W QUxJRCk7CisJCQlyZXR1cm4gIXRpbWVfYmV0d2VlbjMyKG5vdywgbGFzdF9vdmVyZmxvdyAtIEha LAorCQkJCQkgICAgICAgbGFzdF9vdmVyZmxvdyArCisJCQkJCSAgICAgICBUQ1BfU1lOQ09PS0lF X1ZBTElEKTsKIAkJfQogCX0KIAogCWxhc3Rfb3ZlcmZsb3cgPSB0Y3Bfc2soc2spLT5yeF9vcHQu dHNfcmVjZW50X3N0YW1wOwotCXJldHVybiB0aW1lX2FmdGVyMzIobm93LCBsYXN0X292ZXJmbG93 ICsgVENQX1NZTkNPT0tJRV9WQUxJRCk7CisKKwkvKiBJZiBsYXN0X292ZXJmbG93IDw9IGppZmZp ZXMgPD0gbGFzdF9vdmVyZmxvdyArIFRDUF9TWU5DT09LSUVfVkFMSUQsCisJICogdGhlbiB3ZSdy ZSB1bmRlciBzeW5mbG9vZC4gSG93ZXZlciwgd2UgaGF2ZSB0byB1c2UKKwkgKiAnbGFzdF9vdmVy ZmxvdyAtIEhaJyBhcyBsb3dlciBib3VuZC4gVGhhdCdzIGJlY2F1c2UgYSBjb25jdXJyZW50CisJ ICogdGNwX3N5bnFfb3ZlcmZsb3coKSBjb3VsZCB1cGRhdGUgLnRzX3JlY2VudF9zdGFtcCBhZnRl ciB3ZSByZWFkCisJICogamlmZmllcyBidXQgYmVmb3JlIHdlIHN0b3JlIC50c19yZWNlbnRfc3Rh bXAgaW50byBsYXN0X292ZXJmbG93LAorCSAqIHdoaWNoIGNvdWxkIGxlYWQgdG8gcmVqZWN0aW5n IGEgdmFsaWQgc3luY29va2llLgorCSAqLworCXJldHVybiAhdGltZV9iZXR3ZWVuMzIobm93LCBs YXN0X292ZXJmbG93IC0gSFosCisJCQkgICAgICAgbGFzdF9vdmVyZmxvdyArIFRDUF9TWU5DT09L SUVfVkFMSUQpOwogfQogCiBzdGF0aWMgaW5saW5lIHUzMiB0Y3BfY29va2llX3RpbWUodm9pZCkK LS0gCjIuMjAuMQoKCkZyb20gY2M4NWE5NTg2YTgyMGM4ZTEwMzNiOTA5ZTdmMDAyMmY5NDMzZjM5 ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRA cmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA2IERlYyAyMDE5IDEyOjM4OjQ5ICswMTAwClN1YmplY3Q6 IFtQQVRDSCAxOS8yNl0gdGNwOiBQcm90ZWN0IGFjY2Vzc2VzIHRvIC50c19yZWNlbnRfc3RhbXAg d2l0aAoge1JFQUQsV1JJVEV9X09OQ0UoKQoKWyBVcHN0cmVhbSBjb21taXQgNzIxYzhkYWZhZDI2 Y2NmYTkwZmY2NTllZTE5NzU1ZTMzNzdiODI5ZCBdCgpTeW5jb29raWVzIGJvcnJvdyB0aGUgLT5y eF9vcHQudHNfcmVjZW50X3N0YW1wIGZpZWxkIHRvIHN0b3JlIHRoZQp0aW1lc3RhbXAgb2YgdGhl IGxhc3Qgc3luZmxvb2QuIFByb3RlY3QgdGhlbSB3aXRoIFJFQURfT05DRSgpIGFuZApXUklURV9P TkNFKCkgc2luY2UgcmVhZHMgYW5kIHdyaXRlcyBhcmVuJ3Qgc2VyaWFsaXNlZC4KClVzZSBvZiAu cnhfb3B0LnRzX3JlY2VudF9zdGFtcCBmb3Igc3RvcmluZyB0aGUgc3luZmxvb2QgdGltZXN0YW1w IHdhcwppbnRyb2R1Y2VkIGJ5IGEwZjgyZjY0ZTI2OSAoInN5bmNvb2tpZXM6IHJlbW92ZSBsYXN0 X3N5bnFfb3ZlcmZsb3cgZnJvbQpzdHJ1Y3QgdGNwX3NvY2siKS4gQnV0IHVucHJvdGVjdGVkIGFj Y2Vzc2VzIHdlcmUgYWxyZWFkeSB0aGVyZSB3aGVuCnRpbWVzdGFtcCB3YXMgc3RvcmVkIGluIC5s YXN0X3N5bnFfb3ZlcmZsb3cuCgpGaXhlczogMWRhMTc3ZTRjM2Y0ICgiTGludXgtMi42LjEyLXJj MiIpClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Z25hdWx0QHJlZGhhdC5jb20+ClNp Z25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUv bmV0L3RjcC5oIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25l dC90Y3AuaAppbmRleCBjMWZhZDFiNGM5MWIuLjA5OTEwNjQxZmNjMyAxMDA2NDQKLS0tIGEvaW5j bHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgKQEAgLTQ5MSw5ICs0OTEsOSBA QCBzdGF0aWMgaW5saW5lIHZvaWQgdGNwX3N5bnFfb3ZlcmZsb3coY29uc3Qgc3RydWN0IHNvY2sg KnNrKQogCQl9CiAJfQogCi0JbGFzdF9vdmVyZmxvdyA9IHRjcF9zayhzayktPnJ4X29wdC50c19y ZWNlbnRfc3RhbXA7CisJbGFzdF9vdmVyZmxvdyA9IFJFQURfT05DRSh0Y3Bfc2soc2spLT5yeF9v cHQudHNfcmVjZW50X3N0YW1wKTsKIAlpZiAoIXRpbWVfYmV0d2VlbjMyKG5vdywgbGFzdF9vdmVy ZmxvdywgbGFzdF9vdmVyZmxvdyArIEhaKSkKLQkJdGNwX3NrKHNrKS0+cnhfb3B0LnRzX3JlY2Vu dF9zdGFtcCA9IG5vdzsKKwkJV1JJVEVfT05DRSh0Y3Bfc2soc2spLT5yeF9vcHQudHNfcmVjZW50 X3N0YW1wLCBub3cpOwogfQogCiAvKiBzeW5jb29raWVzOiBubyByZWNlbnQgc3lucXVldWUgb3Zl cmZsb3cgb24gdGhpcyBsaXN0ZW5pbmcgc29ja2V0PyAqLwpAQCAtNTE0LDcgKzUxNCw3IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCB0Y3Bfc3lucV9ub19yZWNlbnRfb3ZlcmZsb3coY29uc3Qgc3RydWN0 IHNvY2sgKnNrKQogCQl9CiAJfQogCi0JbGFzdF9vdmVyZmxvdyA9IHRjcF9zayhzayktPnJ4X29w dC50c19yZWNlbnRfc3RhbXA7CisJbGFzdF9vdmVyZmxvdyA9IFJFQURfT05DRSh0Y3Bfc2soc2sp LT5yeF9vcHQudHNfcmVjZW50X3N0YW1wKTsKIAogCS8qIElmIGxhc3Rfb3ZlcmZsb3cgPD0gamlm ZmllcyA8PSBsYXN0X292ZXJmbG93ICsgVENQX1NZTkNPT0tJRV9WQUxJRCwKIAkgKiB0aGVuIHdl J3JlIHVuZGVyIHN5bmZsb29kLiBIb3dldmVyLCB3ZSBoYXZlIHRvIHVzZQotLSAKMi4yMC4xCgoK RnJvbSAwZGY0NjhkYzU1YWEyY2JkOWYzY2U4MjgyZmU5YWM1MzE2ODhkMzI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogVGh1LCA1IERlYyAyMDE5IDE5OjM5OjAyIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMC8y Nl0gZ3JlOiByZWZldGNoIGVyc3BhbiBoZWFkZXIgZnJvbSBza2ItPmRhdGEgYWZ0ZXIKIHBza2Jf bWF5X3B1bGwoKQoKWyBVcHN0cmVhbSBjb21taXQgMGU0OTQwOTI4YzI2NTI3Y2U4Zjk3MjM3ZmVm NGM4YTkxY2QzNDIwNyBdCgpBZnRlciBwc2tiX21heV9wdWxsKCkgd2Ugc2hvdWxkIGFsd2F5cyBy ZWZldGNoIHRoZSBoZWFkZXIKcG9pbnRlcnMgZnJvbSB0aGUgc2tiLT5kYXRhIGluIGNhc2UgaXQg Z290IHJlYWxsb2NhdGVkLgoKSW4gZ3JlX3BhcnNlX2hlYWRlcigpLCB0aGUgZXJzcGFuIGhlYWRl ciBpcyBzdGlsbCBmZXRjaGVkCmZyb20gdGhlICdvcHRpb25zJyBwb2ludGVyIHdoaWNoIGlzIGZl dGNoZWQgYmVmb3JlCnBza2JfbWF5X3B1bGwoKS4KCkZvdW5kIHRoaXMgZHVyaW5nIGNvZGUgcmV2 aWV3IG9mIGEgS01TQU4gYnVnIHJlcG9ydC4KCkZpeGVzOiBjYjczZWU0MGIxYjMgKCJuZXQ6IGlw X2dyZTogdXNlIGVyc3BhbiBrZXkgZmllbGQgZm9yIHR1bm5lbCBsb29rdXAiKQpDYzogTG9yZW56 byBCaWFuY29uaSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBD b25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IExvcmVuem8gQmlh bmNvbmkgPGxvcmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IFdpbGxpYW0gVHUg PHU5MDEyMDYzQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9y bWFuQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9ncmVfZGVtdXguYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9p cHY0L2dyZV9kZW11eC5jIGIvbmV0L2lwdjQvZ3JlX2RlbXV4LmMKaW5kZXggNDRiZmVlY2FjMzNl Li41ZmQ2ZThlZDAyYjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9kZW11eC5jCisrKyBiL25l dC9pcHY0L2dyZV9kZW11eC5jCkBAIC0xMjcsNyArMTI3LDcgQEAgaW50IGdyZV9wYXJzZV9oZWFk ZXIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRubF9wdGtfaW5mbyAqdHBpLAogCQlpZiAo IXBza2JfbWF5X3B1bGwoc2tiLCBuaHMgKyBoZHJfbGVuICsgc2l6ZW9mKCplcnNoZHIpKSkKIAkJ CXJldHVybiAtRUlOVkFMOwogCi0JCWVyc2hkciA9IChzdHJ1Y3QgZXJzcGFuX2Jhc2VfaGRyICop b3B0aW9uczsKKwkJZXJzaGRyID0gKHN0cnVjdCBlcnNwYW5fYmFzZV9oZHIgKikoc2tiLT5kYXRh ICsgbmhzICsgaGRyX2xlbik7CiAJCXRwaS0+a2V5ID0gY3B1X3RvX2JlMzIoZ2V0X3Nlc3Npb25f aWQoZXJzaGRyKSk7CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIGUyYWZkZWZiNGY5OTRlY2RiYjVk M2ZkMTY1ZTkyODY4OTBmZDUyM2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcnRp biBWYXJnaGVzZSA8bWFydGluLnZhcmdoZXNlQG5va2lhLmNvbT4KRGF0ZTogTW9uLCAyIERlYyAy MDE5IDEwOjQ5OjUxICswNTMwClN1YmplY3Q6IFtQQVRDSCAyMS8yNl0gRml4ZWQgdXBkYXRpbmcg b2YgZXRoZXJ0eXBlIGluIGZ1bmN0aW9uIHNrYl9tcGxzX3BvcAoKWyBVcHN0cmVhbSBjb21taXQg MDQwYjVjZmJjZWZhMjYzY2NmMmMxMThjNDkzODMwODYwNmJiN2VkOCBdCgpUaGUgc2tiX21wbHNf cG9wIHdhcyBub3QgdXBkYXRpbmcgZXRoZXJ0eXBlIG9mIGFuIGV0aGVybmV0IHBhY2tldCBpZiB0 aGUKcGFja2V0IHdhcyBvcmlnaW5hbGx5IHJlY2VpdmVkIGZyb20gYSBub24gQVJQSFJEX0VUSEVS IGRldmljZS4KCkluIHRoZSBiZWxvdyBPVlMgZGF0YSBwYXRoIGZsb3csIHNpbmNlIHRoZSBkZXZp Y2UgY29ycmVzcG9uZGluZyB0byBwb3J0IDcKaXMgYW4gbDMgZGV2aWNlIChBUlBIUkRfTk9ORSkg dGhlIHNrYl9tcGxzX3BvcCBmdW5jdGlvbiBkb2VzIG5vdCB1cGRhdGUKdGhlIGV0aGVydHlwZSBv ZiB0aGUgcGFja2V0IGV2ZW4gdGhvdWdoIHRoZSBwcmV2aW91cyBwdXNoX2V0aCBhY3Rpb24gaGFk CmFkZGVkIGFuIGV0aGVybmV0IGhlYWRlciB0byB0aGUgcGFja2V0LgoKcmVjaXJjX2lkKDApLGlu X3BvcnQoNyksZXRoX3R5cGUoMHg4ODQ3KSwKbXBscyhsYWJlbD0xMi8weGZmZmZmLHRjPTAvMCx0 dGw9MC8weDAsYm9zPTEvMSksCmFjdGlvbnM6cHVzaF9ldGgoc3JjPTAwOjAwOjAwOjAwOjAwOjAw LGRzdD0wMDowMDowMDowMDowMDowMCksCnBvcF9tcGxzKGV0aF90eXBlPTB4ODAwKSw0CgpGaXhl czogZWQyNDZjZWUwOWI5ICgibmV0OiBjb3JlOiBtb3ZlIHBvcCBNUExTIGZ1bmN0aW9uYWxpdHkg ZnJvbSBPdlMgdG8gY29yZSBoZWxwZXIiKQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gVmFyZ2hlc2Ug PG1hcnRpbi52YXJnaGVzZUBub2tpYS5jb20+CkFja2VkLWJ5OiBQcmF2aW4gQiBTaGVsYXIgPHBz aGVsYXJAb3ZuLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvc2tidWZmLmggICAgfCAzICsrLQogbmV0L2Nv cmUvc2tidWZmLmMgICAgICAgICB8IDYgKysrKy0tCiBuZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5j IHwgMyArKy0KIG5ldC9zY2hlZC9hY3RfbXBscy5jICAgICAgfCA0ICsrKy0KIDQgZmlsZXMgY2hh bmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3NrYnVmZi5oIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRleCA3NjQ3YmVh YWMyZDIuLjM4YWI1ZWYwYTI5YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAor KysgYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCkBAIC0zNDgzLDcgKzM0ODMsOCBAQCBpbnQgc2ti X3ZsYW5fcG9wKHN0cnVjdCBza19idWZmICpza2IpOwogaW50IHNrYl92bGFuX3B1c2goc3RydWN0 IHNrX2J1ZmYgKnNrYiwgX19iZTE2IHZsYW5fcHJvdG8sIHUxNiB2bGFuX3RjaSk7CiBpbnQgc2ti X21wbHNfcHVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgbXBsc19sc2UsIF9fYmUxNiBt cGxzX3Byb3RvLAogCQkgIGludCBtYWNfbGVuKTsKLWludCBza2JfbXBsc19wb3Aoc3RydWN0IHNr X2J1ZmYgKnNrYiwgX19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNfbGVuKTsKK2ludCBza2JfbXBs c19wb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNfbGVu LAorCQkgYm9vbCBldGhlcm5ldCk7CiBpbnQgc2tiX21wbHNfdXBkYXRlX2xzZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBfX2JlMzIgbXBsc19sc2UpOwogaW50IHNrYl9tcGxzX2RlY190dGwoc3RydWN0 IHNrX2J1ZmYgKnNrYik7CiBzdHJ1Y3Qgc2tfYnVmZiAqcHNrYl9leHRyYWN0KHN0cnVjdCBza19i dWZmICpza2IsIGludCBvZmYsIGludCB0b19jb3B5LApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2ti dWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCBkNGE0N2M0NGRhZjAuLmViZmE1NWQ5MzRk MSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMK QEAgLTU1MTcsMTIgKzU1MTcsMTQgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc2tiX21wbHNfcHVzaCk7 CiAgKiBAc2tiOiBidWZmZXIKICAqIEBuZXh0X3Byb3RvOiBldGhlcnR5cGUgb2YgaGVhZGVyIGFm dGVyIHBvcHBlZCBNUExTIGhlYWRlcgogICogQG1hY19sZW46IGxlbmd0aCBvZiB0aGUgTUFDIGhl YWRlcgorICogQGV0aGVybmV0OiBmbGFnIHRvIGluZGljYXRlIGlmIGV0aGVybmV0IGhlYWRlciBp cyBwcmVzZW50IGluIHBhY2tldAogICoKICAqIEV4cGVjdHMgc2tiLT5kYXRhIGF0IG1hYyBoZWFk ZXIuCiAgKgogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UuCiAgKi8K LWludCBza2JfbXBsc19wb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTE2IG5leHRfcHJvdG8s IGludCBtYWNfbGVuKQoraW50IHNrYl9tcGxzX3BvcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2Jl MTYgbmV4dF9wcm90bywgaW50IG1hY19sZW4sCisJCSBib29sIGV0aGVybmV0KQogewogCWludCBl cnI7CiAKQEAgLTU1NDEsNyArNTU0Myw3IEBAIGludCBza2JfbXBsc19wb3Aoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgX19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNfbGVuKQogCXNrYl9yZXNldF9tYWNf aGVhZGVyKHNrYik7CiAJc2tiX3NldF9uZXR3b3JrX2hlYWRlcihza2IsIG1hY19sZW4pOwogCi0J aWYgKHNrYi0+ZGV2ICYmIHNrYi0+ZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikgeworCWlmIChl dGhlcm5ldCkgewogCQlzdHJ1Y3QgZXRoaGRyICpoZHI7CiAKIAkJLyogdXNlIG1wbHNfaGRyKCkg dG8gZ2V0IGV0aGVydHlwZSB0byBhY2NvdW50IGZvciBWTEFOcy4gKi8KZGlmZiAtLWdpdCBhL25l dC9vcGVudnN3aXRjaC9hY3Rpb25zLmMgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCmluZGV4 IDFjNzdmNTIwZjQ3NC4uZmQ1NGEyZWI4MzNiIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gv YWN0aW9ucy5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMKQEAgLTE3OSw3ICsxNzks OCBAQCBzdGF0aWMgaW50IHBvcF9tcGxzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19m bG93X2tleSAqa2V5LAogewogCWludCBlcnI7CiAKLQllcnIgPSBza2JfbXBsc19wb3Aoc2tiLCBl dGhlcnR5cGUsIHNrYi0+bWFjX2xlbik7CisJZXJyID0gc2tiX21wbHNfcG9wKHNrYiwgZXRoZXJ0 eXBlLCBza2ItPm1hY19sZW4sCisJCQkgICBvdnNfa2V5X21hY19wcm90byhrZXkpID09IE1BQ19Q Uk9UT19FVEhFUk5FVCk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApkaWZmIC0tZ2l0IGEv bmV0L3NjaGVkL2FjdF9tcGxzLmMgYi9uZXQvc2NoZWQvYWN0X21wbHMuYwppbmRleCA0Y2Y2YzU1 M2JiMGIuLmJmNzRhNmM0OTkwYyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9tcGxzLmMKKysr IGIvbmV0L3NjaGVkL2FjdF9tcGxzLmMKQEAgLTEsNiArMSw3IEBACiAvLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCiAvKiBDb3B5cmlnaHQg KEMpIDIwMTkgTmV0cm9ub21lIFN5c3RlbXMsIEluYy4gKi8KIAorI2luY2x1ZGUgPGxpbnV4L2lm X2FycC5oPgogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwu aD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTc2LDcgKzc3LDggQEAgc3RhdGljIGlu dCB0Y2ZfbXBsc19hY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2FjdGlv biAqYSwKIAogCXN3aXRjaCAocC0+dGNmbV9hY3Rpb24pIHsKIAljYXNlIFRDQV9NUExTX0FDVF9Q T1A6Ci0JCWlmIChza2JfbXBsc19wb3Aoc2tiLCBwLT50Y2ZtX3Byb3RvLCBtYWNfbGVuKSkKKwkJ aWYgKHNrYl9tcGxzX3BvcChza2IsIHAtPnRjZm1fcHJvdG8sIG1hY19sZW4sCisJCQkJIHNrYi0+ ZGV2ICYmIHNrYi0+ZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikpCiAJCQlnb3RvIGRyb3A7CiAJ CWJyZWFrOwogCWNhc2UgVENBX01QTFNfQUNUX1BVU0g6Ci0tIAoyLjIwLjEKCgpGcm9tIDRmOTY1 MTA3ZDIwYjdiZTFkYzE5YmU4MWUwNzBjMzAwZjQwY2E5MjQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCA1IERl YyAyMDE5IDA3OjIzOjM5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNl0gaHNyOiBmaXggYSBO VUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gaHNyX2Rldl94bWl0KCkKClsgVXBzdHJlYW0gY29t bWl0IGRmOTU0NjdiNmQyYmZjZTQ5NjY3ZWU0YjcxYzY3MjQ5YjAxOTU3ZjcgXQoKaHNyX2Rldl94 bWl0KCkgY2FsbHMgaHNyX3BvcnRfZ2V0X2hzcigpIHRvIGZpbmQgbWFzdGVyIG5vZGUgYW5kIHRo YXQgd291bGQKcmV0dXJuIE5VTEwgaWYgbWFzdGVyIG5vZGUgaXMgbm90IGV4aXN0aW5nIGluIHRo ZSBsaXN0LgpCdXQgaHNyX2Rldl94bWl0KCkgZG9lc24ndCBjaGVjayByZXR1cm4gcG9pbnRlciBz byBhIE5VTEwgZGVyZWZlcmVuY2UKY291bGQgb2NjdXIuCgpUZXN0IGNvbW1hbmRzOgogICAgaXAg bmV0bnMgYWRkIG5zdAogICAgaXAgbGluayBhZGQgdmV0aDAgdHlwZSB2ZXRoIHBlZXIgbmFtZSB2 ZXRoMQogICAgaXAgbGluayBhZGQgdmV0aDIgdHlwZSB2ZXRoIHBlZXIgbmFtZSB2ZXRoMwogICAg aXAgbGluayBzZXQgdmV0aDEgbmV0bnMgbnN0CiAgICBpcCBsaW5rIHNldCB2ZXRoMyBuZXRucyBu c3QKICAgIGlwIGxpbmsgc2V0IHZldGgwIHVwCiAgICBpcCBsaW5rIHNldCB2ZXRoMiB1cAogICAg aXAgbGluayBhZGQgaHNyMCB0eXBlIGhzciBzbGF2ZTEgdmV0aDAgc2xhdmUyIHZldGgyCiAgICBp cCBhIGEgMTkyLjE2OC4xMDAuMS8yNCBkZXYgaHNyMAogICAgaXAgbGluayBzZXQgaHNyMCB1cAog ICAgaXAgbmV0bnMgZXhlYyBuc3QgaXAgbGluayBzZXQgdmV0aDEgdXAKICAgIGlwIG5ldG5zIGV4 ZWMgbnN0IGlwIGxpbmsgc2V0IHZldGgzIHVwCiAgICBpcCBuZXRucyBleGVjIG5zdCBpcCBsaW5r IGFkZCBoc3IxIHR5cGUgaHNyIHNsYXZlMSB2ZXRoMSBzbGF2ZTIgdmV0aDMKICAgIGlwIG5ldG5z IGV4ZWMgbnN0IGlwIGEgYSAxOTIuMTY4LjEwMC4yLzI0IGRldiBoc3IxCiAgICBpcCBuZXRucyBl eGVjIG5zdCBpcCBsaW5rIHNldCBoc3IxIHVwCiAgICBocGluZzMgMTkyLjE2OC4xMDAuMiAtMiAt LWZsb29kICYKICAgIG1vZHByb2JlIC1ydiBoc3IKClNwbGF0IGxvb2tzIGxpa2U6ClsgIDIxNy4z NTExMjJdWyBUMTYzNV0ga2FzYW46IENPTkZJR19LQVNBTl9JTkxJTkUgZW5hYmxlZApbICAyMTcu MzUyOTY5XVsgVDE2MzVdIGthc2FuOiBHUEYgY291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRl cmVmIG9yIHVzZXIgbWVtb3J5IGFjY2VzcwpbICAyMTcuMzU0Mjk3XVsgVDE2MzVdIGdlbmVyYWwg cHJvdGVjdGlvbiBmYXVsdDogMDAwMCBbIzFdIFNNUCBERUJVR19QQUdFQUxMT0MgS0FTQU4gUFRJ ClsgIDIxNy4zNTU1MDddWyBUMTYzNV0gQ1BVOiAxIFBJRDogMTYzNSBDb21tOiBocGluZzMgTm90 IHRhaW50ZWQgNS40LjArICMxOTIKWyAgMjE3LjM1NjQ3Ml1bIFQxNjM1XSBIYXJkd2FyZSBuYW1l OiBpbm5vdGVrIEdtYkggVmlydHVhbEJveC9WaXJ0dWFsQm94LCBCSU9TIFZpcnR1YWxCb3ggMTIv MDEvMjAwNgpbICAyMTcuMzU3ODA0XVsgVDE2MzVdIFJJUDogMDAxMDpoc3JfZGV2X3htaXQrMHgz NC8weDkwIFtoc3JdClsgIDIxNy4zNzMwMTBdWyBUMTYzNV0gQ29kZTogNDggOGQgYmUgMDAgMGMg MDAgMDAgYmUgMDQgMDAgMDAgMDAgNDggODMgZWMgMDggZTggMjEgYmUgZmYgZmYgNDggOGQgNzgg MTAgNDggYmEgMDAgYgpbICAyMTcuMzc2OTE5XVsgVDE2MzVdIFJTUDogMDAxODpmZmZmODg4MGNk OGFmMDU4IEVGTEFHUzogMDAwMTAyMDIKWyAgMjE3LjM3NzU3MV1bIFQxNjM1XSBSQVg6IDAwMDAw MDAwMDAwMDAwMDAgUkJYOiBmZmZmODg4MGFjZGU2ODQwIFJDWDogMDAwMDAwMDAwMDAwMDAwMgpb ICAyMTcuMzc5NDY1XVsgVDE2MzVdIFJEWDogZGZmZmZjMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAw MDAwMDAwMDQgUkRJOiAwMDAwMDAwMDAwMDAwMDEwClsgIDIxNy4zODAyNzRdWyBUMTYzNV0gUkJQ OiBmZmZmODg4MGFjZGU2ODQwIFIwODogZmZmZmVkMTAxYjQ0MGQ1ZCBSMDk6IDAwMDAwMDAwMDAw MDAwMDEKWyAgMjE3LjM4MTA3OF1bIFQxNjM1XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBm ZmZmZWQxMDFiNDQwZDVjIFIxMjogZmZmZjg4ODBiZmZjYzAwMApbICAyMTcuMzgyMDIzXVsgVDE2 MzVdIFIxMzogZmZmZjg4ODBiZmZjYzA4OCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiBmZmZm ODg4MGNhNjc1YzAwClsgIDIxNy4zODMwOTRdWyBUMTYzNV0gRlM6ICAwMDAwN2YwNjBkOWQxNzQw KDAwMDApIEdTOmZmZmY4ODgwZGEwMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApb ICAyMTcuMzg0Mjg5XVsgVDE2MzVdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAw MDAwMDAwODAwNTAwMzMKWyAgMjE3LjM4NTAwOV1bIFQxNjM1XSBDUjI6IDAwMDA3ZmFmMTUzODFk ZDAgQ1IzOiAwMDAwMDAwMGQ1MjNjMDAxIENSNDogMDAwMDAwMDAwMDA2MDZlMApbICAyMTcuMzg1 OTQwXVsgVDE2MzVdIENhbGwgVHJhY2U6ClsgIDIxNy4zODY1NDRdWyBUMTYzNV0gIGRldl9oYXJk X3N0YXJ0X3htaXQrMHgxNjAvMHg3NDAKWyAgMjE3LjM4NzExNF1bIFQxNjM1XSAgX19kZXZfcXVl dWVfeG1pdCsweDE5NjEvMHgyZTEwClsgIDIxNy4zODgxMThdWyBUMTYzNV0gID8gY2hlY2tfb2Jq ZWN0KzB4YWYvMHgyNjAKWyAgMjE3LjM5MTQ2Nl1bIFQxNjM1XSAgPyBfX2FsbG9jX3NrYisweGI5 LzB4NTAwClsgIDIxNy4zOTIwMTddWyBUMTYzNV0gID8gaW5pdF9vYmplY3QrMHg2Yi8weDgwClsg IDIxNy4zOTI2MjldWyBUMTYzNV0gID8gbmV0ZGV2X2NvcmVfcGlja190eCsweDJlMC8weDJlMApb ICAyMTcuMzkzMTc1XVsgVDE2MzVdICA/IF9fYWxsb2Nfc2tiKzB4YjkvMHg1MDAKWyAgMjE3LjM5 MzcyN11bIFQxNjM1XSAgPyByY3VfcmVhZF9sb2NrX3NjaGVkX2hlbGQrMHg5MC8weGMwClsgIDIx Ny4zOTQzMzFdWyBUMTYzNV0gID8gcmN1X3JlYWRfbG9ja19iaF9oZWxkKzB4YTAvMHhhMApbICAy MTcuMzk1MDEzXVsgVDE2MzVdICA/IGthc2FuX3VucG9pc29uX3NoYWRvdysweDMwLzB4NDAKWyAg MjE3LjM5NTY2OF1bIFQxNjM1XSAgPyBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9wLjQrMHhhMC8w eGQwClsgIDIxNy4zOTYyODBdWyBUMTYzNV0gID8gX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVy KzB4M2E4LzB4M2YwClsgIDIxNy4zOTkwMDddWyBUMTYzNV0gID8gX19rYXNhbl9rbWFsbG9jLmNv bnN0cHJvcC40KzB4YTAvMHhkMApbICAyMTcuNDAwMDkzXVsgVDE2MzVdICA/IF9fa21hbGxvY19y ZXNlcnZlLmlzcmEuNDYrMHgyZS8weGIwClsgIDIxNy40MDExMThdWyBUMTYzNV0gID8gbWVtc2V0 KzB4MWYvMHg0MApbICAyMTcuNDAyNTI5XVsgVDE2MzVdICA/IF9fYWxsb2Nfc2tiKzB4MzE3LzB4 NTAwClsgIDIxNy40MDQ5MTVdWyBUMTYzNV0gID8gYXJwX3htaXQrMHhjYS8weDJjMApbIC4uLiBd CgpGaXhlczogMzExNjMzYjYwNDA2ICgiaHNyOiBzd2l0Y2ggLT5kZWxsaW5rKCkgdG8gLT5uZG9f dW5pbml0KCkiKQpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9oc3Iv aHNyX2RldmljZS5jIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2hzci9oc3JfZGV2aWNlLmMgYi9u ZXQvaHNyL2hzcl9kZXZpY2UuYwppbmRleCBmNTA5YjQ5NTQ1MWEuLmIwMWUxYmFlNGRkYyAxMDA2 NDQKLS0tIGEvbmV0L2hzci9oc3JfZGV2aWNlLmMKKysrIGIvbmV0L2hzci9oc3JfZGV2aWNlLmMK QEAgLTIyNyw4ICsyMjcsMTMgQEAgc3RhdGljIGludCBoc3JfZGV2X3htaXQoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgaHNyX3BvcnQgKm1hc3Rl cjsKIAogCW1hc3RlciA9IGhzcl9wb3J0X2dldF9oc3IoaHNyLCBIU1JfUFRfTUFTVEVSKTsKLQlz a2ItPmRldiA9IG1hc3Rlci0+ZGV2OwotCWhzcl9mb3J3YXJkX3NrYihza2IsIG1hc3Rlcik7CisJ aWYgKG1hc3RlcikgeworCQlza2ItPmRldiA9IG1hc3Rlci0+ZGV2OworCQloc3JfZm9yd2FyZF9z a2Ioc2tiLCBtYXN0ZXIpOworCX0gZWxzZSB7CisJCWF0b21pY19sb25nX2luYygmZGV2LT50eF9k cm9wcGVkKTsKKwkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKKwl9CiAJcmV0dXJuIE5FVERFVl9U WF9PSzsKIH0KIAotLSAKMi4yMC4xCgoKRnJvbSA2ZThkOWFlNDEwNTdjYTAzZWNlNWYwODQ0ZmVm OWQzNjUwOTY5ZTU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gVmFyZ2hl c2UgPG1hcnRpbi52YXJnaGVzZUBub2tpYS5jb20+CkRhdGU6IFRodSwgNSBEZWMgMjAxOSAwNTo1 NzoyMiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMjMvMjZdIG5ldDogRml4ZWQgdXBkYXRpbmcgb2Yg ZXRoZXJ0eXBlIGluIHNrYl9tcGxzX3B1c2goKQoKWyBVcHN0cmVhbSBjb21taXQgZDA0YWMyMjRi MTY4OGYwMDVhODRmNzY0Y2ZlMjk4NDRmOGU5ZGEwOCBdCgpUaGUgc2tiX21wbHNfcHVzaCB3YXMg bm90IHVwZGF0aW5nIGV0aGVydHlwZSBvZiBhbiBldGhlcm5ldCBwYWNrZXQgaWYKdGhlIHBhY2tl dCB3YXMgb3JpZ2luYWxseSByZWNlaXZlZCBmcm9tIGEgbm9uIEFSUEhSRF9FVEhFUiBkZXZpY2Uu CgpJbiB0aGUgYmVsb3cgT1ZTIGRhdGEgcGF0aCBmbG93LCBzaW5jZSB0aGUgZGV2aWNlIGNvcnJl c3BvbmRpbmcgdG8KcG9ydCA3IGlzIGFuIGwzIGRldmljZSAoQVJQSFJEX05PTkUpIHRoZSBza2Jf bXBsc19wdXNoIGZ1bmN0aW9uIGRvZXMKbm90IHVwZGF0ZSB0aGUgZXRoZXJ0eXBlIG9mIHRoZSBw YWNrZXQgZXZlbiB0aG91Z2ggdGhlIHByZXZpb3VzCnB1c2hfZXRoIGFjdGlvbiBoYWQgYWRkZWQg YW4gZXRoZXJuZXQgaGVhZGVyIHRvIHRoZSBwYWNrZXQuCgpyZWNpcmNfaWQoMCksaW5fcG9ydCg3 KSxldGhfdHlwZSgweDA4MDApLGlwdjQodG9zPTAvMHhmYyx0dGw9NjQsZnJhZz1ubyksCmFjdGlv bnM6cHVzaF9ldGgoc3JjPTAwOjAwOjAwOjAwOjAwOjAwLGRzdD0wMDowMDowMDowMDowMDowMCks CnB1c2hfbXBscyhsYWJlbD0xMyx0Yz0wLHR0bD02NCxib3M9MSxldGhfdHlwZT0weDg4NDcpLDQK CkZpeGVzOiA4ODIyZTI3MGQ2OTcgKCJuZXQ6IGNvcmU6IG1vdmUgcHVzaCBNUExTIGZ1bmN0aW9u YWxpdHkgZnJvbSBPdlMgdG8gY29yZSBoZWxwZXIiKQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gVmFy Z2hlc2UgPG1hcnRpbi52YXJnaGVzZUBub2tpYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5o ICAgIHwgMiArLQogbmV0L2NvcmUvc2tidWZmLmMgICAgICAgICB8IDQgKystLQogbmV0L29wZW52 c3dpdGNoL2FjdGlvbnMuYyB8IDMgKystCiBuZXQvc2NoZWQvYWN0X21wbHMuYyAgICAgIHwgMyAr Ky0KIDQgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvc2tidWZmLmggYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5o CmluZGV4IDM4YWI1ZWYwYTI5Yi4uNDUxYjRlZjFjMGI3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xp bnV4L3NrYnVmZi5oCisrKyBiL2luY2x1ZGUvbGludXgvc2tidWZmLmgKQEAgLTM0ODIsNyArMzQ4 Miw3IEBAIGludCBfX3NrYl92bGFuX3BvcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgKnZsYW5f dGNpKTsKIGludCBza2Jfdmxhbl9wb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBpbnQgc2tiX3Zs YW5fcHVzaChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMTYgdmxhbl9wcm90bywgdTE2IHZsYW5f dGNpKTsKIGludCBza2JfbXBsc19wdXNoKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBtcGxz X2xzZSwgX19iZTE2IG1wbHNfcHJvdG8sCi0JCSAgaW50IG1hY19sZW4pOworCQkgIGludCBtYWNf bGVuLCBib29sIGV0aGVybmV0KTsKIGludCBza2JfbXBsc19wb3Aoc3RydWN0IHNrX2J1ZmYgKnNr YiwgX19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNfbGVuLAogCQkgYm9vbCBldGhlcm5ldCk7CiBp bnQgc2tiX21wbHNfdXBkYXRlX2xzZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgbXBsc19s c2UpOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwpp bmRleCBlYmZhNTVkOTM0ZDEuLjdiNjJmMWJkMDRhMCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2ti dWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTU0NzIsNyArNTQ3Miw3IEBAIHN0YXRp YyB2b2lkIHNrYl9tb2RfZXRoX3R5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGV0aGhk ciAqaGRyLAogICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UuCiAgKi8K IGludCBza2JfbXBsc19wdXNoKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBtcGxzX2xzZSwg X19iZTE2IG1wbHNfcHJvdG8sCi0JCSAgaW50IG1hY19sZW4pCisJCSAgaW50IG1hY19sZW4sIGJv b2wgZXRoZXJuZXQpCiB7CiAJc3RydWN0IG1wbHNfc2hpbV9oZHIgKmxzZTsKIAlpbnQgZXJyOwpA QCAtNTUwMyw3ICs1NTAzLDcgQEAgaW50IHNrYl9tcGxzX3B1c2goc3RydWN0IHNrX2J1ZmYgKnNr YiwgX19iZTMyIG1wbHNfbHNlLCBfX2JlMTYgbXBsc19wcm90bywKIAlsc2UtPmxhYmVsX3N0YWNr X2VudHJ5ID0gbXBsc19sc2U7CiAJc2tiX3Bvc3RwdXNoX3Jjc3VtKHNrYiwgbHNlLCBNUExTX0hM RU4pOwogCi0JaWYgKHNrYi0+ZGV2ICYmIHNrYi0+ZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikK KwlpZiAoZXRoZXJuZXQpCiAJCXNrYl9tb2RfZXRoX3R5cGUoc2tiLCBldGhfaGRyKHNrYiksIG1w bHNfcHJvdG8pOwogCXNrYi0+cHJvdG9jb2wgPSBtcGxzX3Byb3RvOwogCmRpZmYgLS1naXQgYS9u ZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jIGIvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYwppbmRl eCBmZDU0YTJlYjgzM2IuLjk5MzUyZjA5ZGVhYSAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNo L2FjdGlvbnMuYworKysgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCkBAIC0xNjYsNyArMTY2 LDggQEAgc3RhdGljIGludCBwdXNoX21wbHMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3 X2Zsb3dfa2V5ICprZXksCiAJaW50IGVycjsKIAogCWVyciA9IHNrYl9tcGxzX3B1c2goc2tiLCBt cGxzLT5tcGxzX2xzZSwgbXBscy0+bXBsc19ldGhlcnR5cGUsCi0JCQkgICAgc2tiLT5tYWNfbGVu KTsKKwkJCSAgICBza2ItPm1hY19sZW4sCisJCQkgICAgb3ZzX2tleV9tYWNfcHJvdG8oa2V5KSA9 PSBNQUNfUFJPVE9fRVRIRVJORVQpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKZGlmZiAt LWdpdCBhL25ldC9zY2hlZC9hY3RfbXBscy5jIGIvbmV0L3NjaGVkL2FjdF9tcGxzLmMKaW5kZXgg YmY3NGE2YzQ5OTBjLi5kYjU3MGQyYmQwZTAgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfbXBs cy5jCisrKyBiL25ldC9zY2hlZC9hY3RfbXBscy5jCkBAIC04Myw3ICs4Myw4IEBAIHN0YXRpYyBp bnQgdGNmX21wbHNfYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rp b24gKmEsCiAJCWJyZWFrOwogCWNhc2UgVENBX01QTFNfQUNUX1BVU0g6CiAJCW5ld19sc2UgPSB0 Y2ZfbXBsc19nZXRfbHNlKE5VTEwsIHAsICFldGhfcF9tcGxzKHNrYi0+cHJvdG9jb2wpKTsKLQkJ aWYgKHNrYl9tcGxzX3B1c2goc2tiLCBuZXdfbHNlLCBwLT50Y2ZtX3Byb3RvLCBtYWNfbGVuKSkK KwkJaWYgKHNrYl9tcGxzX3B1c2goc2tiLCBuZXdfbHNlLCBwLT50Y2ZtX3Byb3RvLCBtYWNfbGVu LAorCQkJCSAgc2tiLT5kZXYgJiYgc2tiLT5kZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKSkKIAkJ CWdvdG8gZHJvcDsKIAkJYnJlYWs7CiAJY2FzZSBUQ0FfTVBMU19BQ1RfTU9ESUZZOgotLSAKMi4y MC4xCgoKRnJvbSAyZGEzODE3ZTQ3ZTQyMTk4NTRkOTQyOWMwZDZlOTEwYmE2YjFjNzJmIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5v eC5jb20+CkRhdGU6IE1vbiwgMjUgTm92IDIwMTkgMTI6MTE6NDkgKzAyMDAKU3ViamVjdDogW1BB VENIIDI0LzI2XSBuZXQvbWx4NWU6IEZpeCBUWFEgaW5kaWNlcyB0byBiZSBzZXF1ZW50aWFsCgpb IFVwc3RyZWFtIGNvbW1pdCBjNTVkOGIxMDhjYWEyZWMxYWU4ZGRkZDAyY2I5ZDNhNzQwZjdjODM4 IF0KCkNpdGVkIHBhdGNoIGNoYW5nZWQgKGNoYW5uZWwgaW5kZXgsIHRjKSA9PiAoVFhRIGluZGV4 KSBtYXBwaW5nIHRvIGJlIGEKc3RhdGljIG9uZSwgaW4gb3JkZXIgdG8ga2VlcCBpbmRpY2VzIGNv bnNpc3RlbnQgd2hlbiBjaGFuZ2luZyBudW1iZXIgb2YKY2hhbm5lbHMgb3IgVENzLgoKRm9yIDMy IGNoYW5uZWxzIChPT0IpIGFuZCA4IFRDcywgcmVhbCBudW0gb2YgVFhRcyBpcyAyNTYuCldoZW4g cmVkdWNpbmcgdGhlIGFtb3VudCBvZiBjaGFubmVscyB0byA4LCB0aGUgcmVhbCBudW0gb2YgVFhR cyB3aWxsIGJlCmNoYW5nZWQgdG8gNjQuClRoaXMgaW5kaWNlcyBtZXRob2QgaXMgYnVnZ3k6Ci0g Q2hhbm5lbCAjMCwgVEMgMywgdGhlIFRYUSBpbmRleCBpcyA5Ni4KLSBJbmRleCA4IGlzIG5vdCB2 YWxpZCwgYXMgdGhlcmUgaXMgbm8gc3VjaCBUWFEgZnJvbSBkcml2ZXIgcGVyc3BlY3RpdmUKICAo QXMgaXQgcmVwcmVzZW50cyBjaGFubmVsICM4LCBUQyAwLCB3aGljaCBpcyBub3QgdmFsaWQgd2l0 aCB0aGUgYWJvdmUKICBjb25maWd1cmF0aW9uKS4KCkFzIHBhcnQgb2YgZHJpdmVyJ3Mgc2VsZWN0 IHF1ZXVlLCBpdCBjYWxscyBuZXRkZXZfcGlja190eCB3aGljaCByZXR1cm5zIGFuCmluZGV4IGlu IHRoZSByYW5nZSBvZiByZWFsIG51bWJlciBvZiBUWFFzLiBEZXBlbmRzIG9uIHRoZSByZXR1cm4g dmFsdWUsCndpdGggdGhlIGV4YW1wbGVzIGFib3ZlLCBkcml2ZXIgY291bGQgaGF2ZSByZXR1cm5l ZCBpbmRleCBsYXJnZXIgdGhhbiB0aGUKcmVhbCBudW1iZXIgb2YgdHggcXVldWVzLCBvciBjcmFz aCB0aGUga2VybmVsIGFzIGl0IHRyaWVzIHRvIHJlYWQgaW52YWxpZAphZGRyZXNzIG9mIFNRIHdo aWNoIHdhcyBub3QgYWxsb2NhdGVkLgoKRml4IHRoYXQgYnkgYWxsb2NhdGluZyBzZXF1ZW50aWFs IFRYUSBpbmRpY2VzLCBhbmQgaG9sZCBhIG5ldyBtYXBwaW5nCmJldHdlZW4gKGNoYW5uZWwgaW5k ZXgsIHRjKSA9PiAocmVhbCBUWFEgaW5kZXgpLiBUaGlzIG1hcHBpbmcgd2lsbCBiZQp1cGRhdGVk IGFzIHBhcnQgb2YgcHJpdiBjaGFubmVscyBhY3RpdmF0aW9uLCBhbmQgaXMgdXNlZCBpbgptbHg1 ZV9zZWxlY3RfcXVldWUgdG8gZmluZCB0aGUgc2VsZWN0ZWQgcXVldWUgaW5kZXguCgpUaGUgZXhp c3RpbmcgaW5kaWNlcyBtYXBwaW5nIChjaGFubmVsX3RjMnR4cSkgaXMgbm8gbG9uZ2VyIG5lZWRl ZCwgYXMgaXQKaXMgdXNlZCBvbmx5IGZvciBzdGF0aXN0aWNzIHN0cnVjdHVyZXMgYW5kIGNhbiBi ZSBjYWxjdWxhdGVkIG9uIHJ1biB0aW1lLgpEZWxldGUgaXRzIGRlZmluaW50aW9uIGFuZCB1cGRh dGVzLgoKRml4ZXM6IDhiZmFmMDdmNzgwNiAoIm5ldC9tbHg1ZTogUHJlc2VudCBTVyBzdGF0cyB3 aGVuIHN0YXRlIGlzIG5vdCBvcGVuZWQiKQpTaWduZWQtb2ZmLWJ5OiBFcmFuIEJlbiBFbGlzaGEg PGVyYW5iZUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVl ZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbi5oICB8ICAyICstCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9tYWluLmMgfCAzMSArKysrKysrLS0tLS0tLS0tLS0tCiAuLi4vZXRoZXJuZXQvbWVsbGFub3gv bWx4NS9jb3JlL2VuX3N0YXRzLmMgICAgfCAgMiArLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW5fdHguYyAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0 aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5v eC9tbHg1L2NvcmUvZW4uaAppbmRleCA2NWJlYzE5YTQzOGYuLjIxMjAzMDBhYTcwZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKQEAgLTc5Miw3ICs3 OTIsNyBAQCBzdHJ1Y3QgbWx4NWVfeHNrIHsKIHN0cnVjdCBtbHg1ZV9wcml2IHsKIAkvKiBwcml2 IGRhdGEgcGF0aCBmaWVsZHMgLSBzdGFydCAqLwogCXN0cnVjdCBtbHg1ZV90eHFzcSAqdHhxMnNx W01MWDVFX01BWF9OVU1fQ0hBTk5FTFMgKiBNTFg1RV9NQVhfTlVNX1RDXTsKLQlpbnQgY2hhbm5l bF90YzJ0eHFbTUxYNUVfTUFYX05VTV9DSEFOTkVMU11bTUxYNUVfTUFYX05VTV9UQ107CisJaW50 IGNoYW5uZWxfdGMycmVhbHR4cVtNTFg1RV9NQVhfTlVNX0NIQU5ORUxTXVtNTFg1RV9NQVhfTlVN X1RDXTsKICNpZmRlZiBDT05GSUdfTUxYNV9DT1JFX0VOX0RDQgogCXN0cnVjdCBtbHg1ZV9kY2J4 X2RwICAgICAgIGRjYnhfZHA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IGYzYTI5NzBjM2ZjZi4uZmRmNTE1Y2E1 Y2Y1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl9tYWluLmMKQEAgLTE2NzgsMTEgKzE2NzgsMTAgQEAgc3RhdGljIGludCBtbHg1ZV9vcGVuX3Nx cyhzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYywKIAkJCSAgc3RydWN0IG1seDVlX3BhcmFtcyAqcGFy YW1zLAogCQkJICBzdHJ1Y3QgbWx4NWVfY2hhbm5lbF9wYXJhbSAqY3BhcmFtKQogewotCXN0cnVj dCBtbHg1ZV9wcml2ICpwcml2ID0gYy0+cHJpdjsKIAlpbnQgZXJyLCB0YzsKIAogCWZvciAodGMg PSAwOyB0YyA8IHBhcmFtcy0+bnVtX3RjOyB0YysrKSB7Ci0JCWludCB0eHFfaXggPSBjLT5peCAr IHRjICogcHJpdi0+bWF4X25jaDsKKwkJaW50IHR4cV9peCA9IGMtPml4ICsgdGMgKiBwYXJhbXMt Pm51bV9jaGFubmVsczsKIAogCQllcnIgPSBtbHg1ZV9vcGVuX3R4cXNxKGMsIGMtPnByaXYtPnRp c25bdGNdLCB0eHFfaXgsCiAJCQkJICAgICAgIHBhcmFtcywgJmNwYXJhbS0+c3EsICZjLT5zcVt0 Y10sIHRjKTsKQEAgLTI4NTYsMjYgKzI4NTUsMjEgQEAgc3RhdGljIHZvaWQgbWx4NWVfbmV0ZGV2 X3NldF90Y3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldikKIAkJbmV0ZGV2X3NldF90Y19xdWV1 ZShuZXRkZXYsIHRjLCBuY2gsIDApOwogfQogCi1zdGF0aWMgdm9pZCBtbHg1ZV9idWlsZF90YzJ0 eHFfbWFwcyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKK3N0YXRpYyB2b2lkIG1seDVlX2J1aWxk X3R4cV9tYXBzKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KQogewotCWludCBpLCB0YzsKKwlpbnQg aSwgY2g7CiAKLQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bWF4X25jaDsgaSsrKQotCQlmb3IgKHRj ID0gMDsgdGMgPCBwcml2LT5wcm9maWxlLT5tYXhfdGM7IHRjKyspCi0JCQlwcml2LT5jaGFubmVs X3RjMnR4cVtpXVt0Y10gPSBpICsgdGMgKiBwcml2LT5tYXhfbmNoOwotfQorCWNoID0gcHJpdi0+ Y2hhbm5lbHMubnVtOwogCi1zdGF0aWMgdm9pZCBtbHg1ZV9idWlsZF90eDJzcV9tYXBzKHN0cnVj dCBtbHg1ZV9wcml2ICpwcml2KQotewotCXN0cnVjdCBtbHg1ZV9jaGFubmVsICpjOwotCXN0cnVj dCBtbHg1ZV90eHFzcSAqc3E7Ci0JaW50IGksIHRjOworCWZvciAoaSA9IDA7IGkgPCBjaDsgaSsr KSB7CisJCWludCB0YzsKKworCQlmb3IgKHRjID0gMDsgdGMgPCBwcml2LT5jaGFubmVscy5wYXJh bXMubnVtX3RjOyB0YysrKSB7CisJCQlzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYyA9IHByaXYtPmNo YW5uZWxzLmNbaV07CisJCQlzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxID0gJmMtPnNxW3RjXTsKIAot CWZvciAoaSA9IDA7IGkgPCBwcml2LT5jaGFubmVscy5udW07IGkrKykgewotCQljID0gcHJpdi0+ Y2hhbm5lbHMuY1tpXTsKLQkJZm9yICh0YyA9IDA7IHRjIDwgYy0+bnVtX3RjOyB0YysrKSB7Ci0J CQlzcSA9ICZjLT5zcVt0Y107CiAJCQlwcml2LT50eHEyc3Fbc3EtPnR4cV9peF0gPSBzcTsKKwkJ CXByaXYtPmNoYW5uZWxfdGMycmVhbHR4cVtpXVt0Y10gPSBpICsgdGMgKiBjaDsKIAkJfQogCX0K IH0KQEAgLTI4OTAsNyArMjg4NCw3IEBAIHZvaWQgbWx4NWVfYWN0aXZhdGVfcHJpdl9jaGFubmVs cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIAluZXRpZl9zZXRfcmVhbF9udW1fdHhfcXVldWVz KG5ldGRldiwgbnVtX3R4cXMpOwogCW5ldGlmX3NldF9yZWFsX251bV9yeF9xdWV1ZXMobmV0ZGV2 LCBudW1fcnhxcyk7CiAKLQltbHg1ZV9idWlsZF90eDJzcV9tYXBzKHByaXYpOworCW1seDVlX2J1 aWxkX3R4cV9tYXBzKHByaXYpOwogCW1seDVlX2FjdGl2YXRlX2NoYW5uZWxzKCZwcml2LT5jaGFu bmVscyk7CiAJbWx4NWVfeGRwX3R4X2VuYWJsZShwcml2KTsKIAluZXRpZl90eF9zdGFydF9hbGxf cXVldWVzKHByaXYtPm5ldGRldik7CkBAIC00OTY4LDcgKzQ5NjIsNiBAQCBzdGF0aWMgaW50IG1s eDVlX25pY19pbml0KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCWlmIChlcnIpCiAJCW1s eDVfY29yZV9lcnIobWRldiwgIlRMUyBpbml0aWFsaXphdGlvbiBmYWlsZWQsICVkXG4iLCBlcnIp OwogCW1seDVlX2J1aWxkX25pY19uZXRkZXYobmV0ZGV2KTsKLQltbHg1ZV9idWlsZF90YzJ0eHFf bWFwcyhwcml2KTsKIAogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3N0YXRzLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fc3RhdHMuYwppbmRleCA1N2Y5ZjM0NmQyMTMuLjBiMzk0 ZDZkNzMwZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3N0YXRzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3N0YXRzLmMKQEAgLTE0MzUsNyArMTQzNSw3IEBAIHN0YXRpYyBpbnQgbWx4NWVfZ3Jw X2NoYW5uZWxzX2ZpbGxfc3RyaW5ncyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdTggKmRhdGEs CiAJCQlmb3IgKGogPSAwOyBqIDwgTlVNX1NRX1NUQVRTOyBqKyspCiAJCQkJc3ByaW50ZihkYXRh ICsgKGlkeCsrKSAqIEVUSF9HU1RSSU5HX0xFTiwKIAkJCQkJc3Ffc3RhdHNfZGVzY1tqXS5mb3Jt YXQsCi0JCQkJCXByaXYtPmNoYW5uZWxfdGMydHhxW2ldW3RjXSk7CisJCQkJCWkgKyB0YyAqIG1h eF9uY2gpOwogCiAJZm9yIChpID0gMDsgaSA8IG1heF9uY2g7IGkrKykgewogCQlmb3IgKGogPSAw OyBqIDwgTlVNX1hTS1NRX1NUQVRTICogaXNfeHNrOyBqKyspCmRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdHguYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90eC5jCmluZGV4IGQ1ZDJiMWFmM2RiYy4uNTY1 YWM2MzQ3ZmE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW5fdHguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fdHguYwpAQCAtOTMsNyArOTMsNyBAQCB1MTYgbWx4NWVfc2VsZWN0X3F1ZXVlKHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBza19idWZmICpza2IsCiAJaWYgKHR4cV9peCA+PSBu dW1fY2hhbm5lbHMpCiAJCXR4cV9peCA9IHByaXYtPnR4cTJzcVt0eHFfaXhdLT5jaF9peDsKIAot CXJldHVybiBwcml2LT5jaGFubmVsX3RjMnR4cVt0eHFfaXhdW3VwXTsKKwlyZXR1cm4gcHJpdi0+ Y2hhbm5lbF90YzJyZWFsdHhxW3R4cV9peF1bdXBdOwogfQogCiBzdGF0aWMgaW5saW5lIGludCBt bHg1ZV9za2JfbDJfaGVhZGVyX29mZnNldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotLSAKMi4yMC4x CgoKRnJvbSBhYWRhM2U3Y2JiNDE1NTExODY1NzY4NmE4NmZmNWU3YzM0MjQ5YjM2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBMZW1vbiA8am9uYXRoYW4ubGVtb25AZ21h aWwuY29tPgpEYXRlOiBUaHUsIDE0IE5vdiAyMDE5IDE0OjEzOjAwIC0wODAwClN1YmplY3Q6IFtQ QVRDSCAyNS8yNl0gcGFnZV9wb29sOiBkbyBub3QgcmVsZWFzZSBwb29sIHVudGlsIGluZmxpZ2h0 ID09IDAuCgpbIFVwc3RyZWFtIGNvbW1pdCBjM2Y4MTJjZWEwZDcwMDY0NjlkMWNmMzNhNGE5ZjBh MTJiYjRiM2EzIF0KClRoZSBwYWdlIHBvb2wga2VlcHMgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBw YWdlcyBpbiBmbGlnaHQsIGFuZAppdCBpc24ndCBzYWZlIHRvIHJlbW92ZSB0aGUgcG9vbCB1bnRp bCBhbGwgcGFnZXMgYXJlIHJldHVybmVkLgoKRGlzYWxsb3cgcmVtb3ZpbmcgdGhlIHBvb2wgdW50 aWwgYWxsIHBhZ2VzIGFyZSBiYWNrLCBzbyB0aGUgcG9vbAppcyBhbHdheXMgYXZhaWxhYmxlIGZv ciBwYWdlIHByb2R1Y2Vycy4KCk1ha2UgdGhlIHBhZ2UgcG9vbCByZXNwb25zaWJsZSBmb3IgaXRz IG93biBkZWxheWVkIGRlc3RydWN0aW9uCmluc3RlYWQgb2YgcmVseWluZyBvbiBYRFAsIHNvIHRo ZSBwYWdlIHBvb2wgY2FuIGJlIHVzZWQgd2l0aG91dAp0aGUgeGRwIG1lbW9yeSBtb2RlbC4KCldo ZW4gYWxsIHBhZ2VzIGFyZSByZXR1cm5lZCwgZnJlZSB0aGUgcG9vbCBhbmQgbm90aWZ5IHhkcCBp ZiB0aGUKcG9vbCBpcyByZWdpc3RlcmVkIHdpdGggdGhlIHhkcCBtZW1vcnkgc3lzdGVtLiAgSGF2 ZSB0aGUgY2FsbGJhY2sKcGVyZm9ybSBhIHRhYmxlIHdhbGsgc2luY2Ugc29tZSBkcml2ZXJzIChj cHN3KSBtYXkgc2hhcmUgdGhlIHBvb2wKYW1vbmcgbXVsdGlwbGUgeGRwX3J4cV9pbmZvLgoKTm90 ZSB0aGF0IHRoZSBpbmNyZW1lbnQgb2YgcGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQgbWF5IHJlc3Vs dCBpbgppbmZsaWdodCA9PSAwLCByZXN1bHRpbmcgaW4gdGhlIHBvb2wgYmVpbmcgcmVsZWFzZWQu CgpGaXhlczogZDk1NmEwNDhjZDNmICgieGRwOiBmb3JjZSBtZW0gYWxsb2NhdG9yIHJlbW92YWwg YW5kIHBlcmlvZGljIHdhcm5pbmciKQpTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBMZW1vbiA8am9u YXRoYW4ubGVtb25AZ21haWwuY29tPgpBY2tlZC1ieTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8 YnJvdWVyQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBJbGlhcyBBcGFsb2RpbWFzIDxpbGlhcy5hcGFs b2RpbWFzQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1h Y19tYWluLmMgfCAgIDQgKy0KIGluY2x1ZGUvbmV0L3BhZ2VfcG9vbC5oICAgICAgICAgICAgICAg ICAgICAgICB8ICA1MiArKy0tLS0tLQogaW5jbHVkZS9uZXQveGRwX3ByaXYuaCAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA0IC0KIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oICAgICAgICAg ICAgICAgICAgICB8ICAxOSArLS0KIG5ldC9jb3JlL3BhZ2VfcG9vbC5jICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDEyMiArKysrKysrKysrKy0tLS0tLS0KIG5ldC9jb3JlL3hkcC5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyMSArKysrKysrLS0tLS0tLS0tLQogNiBmaWxl cyBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgMTgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IGVk MGU2OTRhMDg1NS4uZDhkZDQyNjVkODlkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTE0NzcsMTAgKzE0NzcsOCBAQCBzdGF0 aWMgdm9pZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnBy aXYpCiAJCQkJCSAgcnhfcS0+ZG1hX2VyeCwgcnhfcS0+ZG1hX3J4X3BoeSk7CiAKIAkJa2ZyZWUo cnhfcS0+YnVmX3Bvb2wpOwotCQlpZiAocnhfcS0+cGFnZV9wb29sKSB7Ci0JCQlwYWdlX3Bvb2xf cmVxdWVzdF9zaHV0ZG93bihyeF9xLT5wYWdlX3Bvb2wpOworCQlpZiAocnhfcS0+cGFnZV9wb29s KQogCQkJcGFnZV9wb29sX2Rlc3Ryb3kocnhfcS0+cGFnZV9wb29sKTsKLQkJfQogCX0KIH0KIApk aWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvcGFnZV9wb29sLmggYi9pbmNsdWRlL25ldC9wYWdlX3Bv b2wuaAppbmRleCAyY2JjZGJkZWMyNTQuLjExMjFmYWE5OWMxMiAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9uZXQvcGFnZV9wb29sLmgKKysrIGIvaW5jbHVkZS9uZXQvcGFnZV9wb29sLmgKQEAgLTcwLDcg KzcwLDEyIEBAIHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zIHsKIHN0cnVjdCBwYWdlX3Bvb2wgewog CXN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zIHA7CiAKLSAgICAgICAgdTMyIHBhZ2VzX3N0YXRlX2hv bGRfY250OworCXN0cnVjdCBkZWxheWVkX3dvcmsgcmVsZWFzZV9kdzsKKwl2b2lkICgqZGlzY29u bmVjdCkodm9pZCAqKTsKKwl1bnNpZ25lZCBsb25nIGRlZmVyX3N0YXJ0OworCXVuc2lnbmVkIGxv bmcgZGVmZXJfd2FybjsKKworCXUzMiBwYWdlc19zdGF0ZV9ob2xkX2NudDsKIAogCS8qCiAJICog RGF0YSBzdHJ1Y3R1cmUgZm9yIGFsbG9jYXRpb24gc2lkZQpAQCAtMTI5LDI1ICsxMzQsMTkgQEAg aW5saW5lIGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIHBhZ2VfcG9vbF9nZXRfZG1hX2RpcihzdHJ1 Y3QgcGFnZV9wb29sICpwb29sKQogCiBzdHJ1Y3QgcGFnZV9wb29sICpwYWdlX3Bvb2xfY3JlYXRl KGNvbnN0IHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zICpwYXJhbXMpOwogCi12b2lkIF9fcGFnZV9w b29sX2ZyZWUoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCk7Ci1zdGF0aWMgaW5saW5lIHZvaWQgcGFn ZV9wb29sX2ZyZWUoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCkKLXsKLQkvKiBXaGVuIHBhZ2VfcG9v bCBpc24ndCBjb21waWxlZC1pbiwgbmV0L2NvcmUveGRwLmMgZG9lc24ndAotCSAqIGFsbG93IHJl Z2lzdGVyaW5nIE1FTV9UWVBFX1BBR0VfUE9PTCwgYnV0IHNoaWVsZCBsaW5rZXIuCi0JICovCiAj aWZkZWYgQ09ORklHX1BBR0VfUE9PTAotCV9fcGFnZV9wb29sX2ZyZWUocG9vbCk7Ci0jZW5kaWYK LX0KLQotLyogRHJpdmVycyB1c2UgdGhpcyBpbnN0ZWFkIG9mIHBhZ2VfcG9vbF9mcmVlICovCit2 b2lkIHBhZ2VfcG9vbF9kZXN0cm95KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpOwordm9pZCBwYWdl X3Bvb2xfdXNlX3hkcF9tZW0oc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCwgdm9pZCAoKmRpc2Nvbm5l Y3QpKHZvaWQgKikpOworI2Vsc2UKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYWdlX3Bvb2xfZGVzdHJv eShzdHJ1Y3QgcGFnZV9wb29sICpwb29sKQogewotCWlmICghcG9vbCkKLQkJcmV0dXJuOworfQog Ci0JcGFnZV9wb29sX2ZyZWUocG9vbCk7CitzdGF0aWMgaW5saW5lIHZvaWQgcGFnZV9wb29sX3Vz ZV94ZHBfbWVtKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wsCisJCQkJCSB2b2lkICgqZGlzY29ubmVj dCkodm9pZCAqKSkKK3sKIH0KKyNlbmRpZgogCiAvKiBOZXZlciBjYWxsIHRoaXMgZGlyZWN0bHks IHVzZSBoZWxwZXJzIGJlbG93ICovCiB2b2lkIF9fcGFnZV9wb29sX3B1dF9wYWdlKHN0cnVjdCBw YWdlX3Bvb2wgKnBvb2wsCkBAIC0xNzAsMjQgKzE2OSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBw YWdlX3Bvb2xfcmVjeWNsZV9kaXJlY3Qoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCwKIAlfX3BhZ2Vf cG9vbF9wdXRfcGFnZShwb29sLCBwYWdlLCB0cnVlKTsKIH0KIAotLyogQVBJIHVzZXIgTVVTVCBo YXZlIGRpc2Nvbm5lY3RlZCBhbGxvYy1zaWRlIChub3QgYWxsb3dlZCB0byBjYWxsCi0gKiBwYWdl X3Bvb2xfYWxsb2NfcGFnZXMoKSkgYmVmb3JlIGNhbGxpbmcgdGhpcy4gIFRoZSBmcmVlLXNpZGUg Y2FuCi0gKiBzdGlsbCBydW4gY29uY3VycmVudGx5LCB0byBoYW5kbGUgaW4tZmxpZ2h0IHBhY2tl dC1wYWdlcy4KLSAqCi0gKiBBIHJlcXVlc3QgdG8gc2h1dGRvd24gY2FuIGZhaWwgKHdpdGggZmFs c2UpIGlmIHRoZXJlIGFyZSBzdGlsbAotICogaW4tZmxpZ2h0IHBhY2tldC1wYWdlcy4KLSAqLwot Ym9vbCBfX3BhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wp Owotc3RhdGljIGlubGluZSBib29sIHBhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKHN0cnVjdCBw YWdlX3Bvb2wgKnBvb2wpCi17Ci0JYm9vbCBzYWZlX3RvX3JlbW92ZSA9IGZhbHNlOwotCi0jaWZk ZWYgQ09ORklHX1BBR0VfUE9PTAotCXNhZmVfdG9fcmVtb3ZlID0gX19wYWdlX3Bvb2xfcmVxdWVz dF9zaHV0ZG93bihwb29sKTsKLSNlbmRpZgotCXJldHVybiBzYWZlX3RvX3JlbW92ZTsKLX0KLQog LyogRGlzY29ubmVjdHMgYSBwYWdlIChmcm9tIGEgcGFnZV9wb29sKS4gIEFQSSB1c2VycyBjYW4g aGF2ZSBhIG5lZWQKICAqIHRvIGRpc2Nvbm5lY3QgYSBwYWdlIChmcm9tIGEgcGFnZV9wb29sKSwg dG8gYWxsb3cgaXQgdG8gYmUgdXNlZCBhcwogICogYSByZWd1bGFyIHBhZ2UgKHRoYXQgd2lsbCBl dmVudHVhbGx5IGJlIHJldHVybmVkIHRvIHRoZSBub3JtYWwKQEAgLTIxNiwxMSArMTk3LDYgQEAg c3RhdGljIGlubGluZSBib29sIGlzX3BhZ2VfcG9vbF9jb21waWxlZF9pbih2b2lkKQogI2VuZGlm CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBwYWdlX3Bvb2xfZ2V0KHN0cnVjdCBwYWdlX3Bvb2wg KnBvb2wpCi17Ci0JcmVmY291bnRfaW5jKCZwb29sLT51c2VyX2NudCk7Ci19Ci0KIHN0YXRpYyBp bmxpbmUgYm9vbCBwYWdlX3Bvb2xfcHV0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCiB7CiAJcmV0 dXJuIHJlZmNvdW50X2RlY19hbmRfdGVzdCgmcG9vbC0+dXNlcl9jbnQpOwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQveGRwX3ByaXYuaCBiL2luY2x1ZGUvbmV0L3hkcF9wcml2LmgKaW5kZXggNmE4 Y2JhNmVhNzlhLi5hOWQ1Yjc2MDNiODkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3hkcF9wcml2 LmgKKysrIGIvaW5jbHVkZS9uZXQveGRwX3ByaXYuaApAQCAtMTIsMTIgKzEyLDggQEAgc3RydWN0 IHhkcF9tZW1fYWxsb2NhdG9yIHsKIAkJc3RydWN0IHBhZ2VfcG9vbCAqcGFnZV9wb29sOwogCQlz dHJ1Y3QgemVyb19jb3B5X2FsbG9jYXRvciAqemNfYWxsb2M7CiAJfTsKLQlpbnQgZGlzY29ubmVj dF9jbnQ7Ci0JdW5zaWduZWQgbG9uZyBkZWZlcl9zdGFydDsKIAlzdHJ1Y3Qgcmhhc2hfaGVhZCBu b2RlOwogCXN0cnVjdCByY3VfaGVhZCByY3U7Ci0Jc3RydWN0IGRlbGF5ZWRfd29yayBkZWZlcl93 cTsKLQl1bnNpZ25lZCBsb25nIGRlZmVyX3dhcm47CiB9OwogCiAjZW5kaWYgLyogX19MSU5VWF9O RVRfWERQX1BSSVZfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAu aCBiL2luY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oCmluZGV4IDY4ODk5ZmRjOTg1Yi4uZWFiYzYw ZjFkMTI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaAorKysgYi9pbmNs dWRlL3RyYWNlL2V2ZW50cy94ZHAuaApAQCAtMzE2LDE5ICszMTYsMTUgQEAgX19NRU1fVFlQRV9N QVAoX19NRU1fVFlQRV9UUF9GTikKIAogVFJBQ0VfRVZFTlQobWVtX2Rpc2Nvbm5lY3QsCiAKLQlU UF9QUk9UTyhjb25zdCBzdHJ1Y3QgeGRwX21lbV9hbGxvY2F0b3IgKnhhLAotCQkgYm9vbCBzYWZl X3RvX3JlbW92ZSwgYm9vbCBmb3JjZSksCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0IHhkcF9tZW1f YWxsb2NhdG9yICp4YSksCiAKLQlUUF9BUkdTKHhhLCBzYWZlX3RvX3JlbW92ZSwgZm9yY2UpLAor CVRQX0FSR1MoeGEpLAogCiAJVFBfU1RSVUNUX19lbnRyeSgKIAkJX19maWVsZChjb25zdCBzdHJ1 Y3QgeGRwX21lbV9hbGxvY2F0b3IgKiwJeGEpCiAJCV9fZmllbGQodTMyLAkJbWVtX2lkKQogCQlf X2ZpZWxkKHUzMiwJCW1lbV90eXBlKQogCQlfX2ZpZWxkKGNvbnN0IHZvaWQgKiwJYWxsb2NhdG9y KQotCQlfX2ZpZWxkKGJvb2wsCQlzYWZlX3RvX3JlbW92ZSkKLQkJX19maWVsZChib29sLAkJZm9y Y2UpCi0JCV9fZmllbGQoaW50LAkJZGlzY29ubmVjdF9jbnQpCiAJKSwKIAogCVRQX2Zhc3RfYXNz aWduKApAQCAtMzM2LDE5ICszMzIsMTIgQEAgVFJBQ0VfRVZFTlQobWVtX2Rpc2Nvbm5lY3QsCiAJ CV9fZW50cnktPm1lbV9pZAkJPSB4YS0+bWVtLmlkOwogCQlfX2VudHJ5LT5tZW1fdHlwZQk9IHhh LT5tZW0udHlwZTsKIAkJX19lbnRyeS0+YWxsb2NhdG9yCT0geGEtPmFsbG9jYXRvcjsKLQkJX19l bnRyeS0+c2FmZV90b19yZW1vdmUJPSBzYWZlX3RvX3JlbW92ZTsKLQkJX19lbnRyeS0+Zm9yY2UJ CT0gZm9yY2U7Ci0JCV9fZW50cnktPmRpc2Nvbm5lY3RfY250CT0geGEtPmRpc2Nvbm5lY3RfY250 OwogCSksCiAKLQlUUF9wcmludGsoIm1lbV9pZD0lZCBtZW1fdHlwZT0lcyBhbGxvY2F0b3I9JXAi Ci0JCSAgIiBzYWZlX3RvX3JlbW92ZT0lcyBmb3JjZT0lcyBkaXNjb25uZWN0X2NudD0lZCIsCisJ VFBfcHJpbnRrKCJtZW1faWQ9JWQgbWVtX3R5cGU9JXMgYWxsb2NhdG9yPSVwIiwKIAkJICBfX2Vu dHJ5LT5tZW1faWQsCiAJCSAgX19wcmludF9zeW1ib2xpYyhfX2VudHJ5LT5tZW1fdHlwZSwgX19N RU1fVFlQRV9TWU1fVEFCKSwKLQkJICBfX2VudHJ5LT5hbGxvY2F0b3IsCi0JCSAgX19lbnRyeS0+ c2FmZV90b19yZW1vdmUgPyAidHJ1ZSIgOiAiZmFsc2UiLAotCQkgIF9fZW50cnktPmZvcmNlID8g InRydWUiIDogImZhbHNlIiwKLQkJICBfX2VudHJ5LT5kaXNjb25uZWN0X2NudAorCQkgIF9fZW50 cnktPmFsbG9jYXRvcgogCSkKICk7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BhZ2VfcG9vbC5j IGIvbmV0L2NvcmUvcGFnZV9wb29sLmMKaW5kZXggMzI3MmRjN2E4YzgxLi42ZTc3MTUyNDNkZGEg MTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3BhZ2VfcG9vbC5jCisrKyBiL25ldC9jb3JlL3BhZ2VfcG9v bC5jCkBAIC0xOCw2ICsxOCw5IEBACiAKICNpbmNsdWRlIDx0cmFjZS9ldmVudHMvcGFnZV9wb29s Lmg+CiAKKyNkZWZpbmUgREVGRVJfVElNRSAobXNlY3NfdG9famlmZmllcygxMDAwKSkKKyNkZWZp bmUgREVGRVJfV0FSTl9JTlRFUlZBTCAoNjAgKiBIWikKKwogc3RhdGljIGludCBwYWdlX3Bvb2xf aW5pdChzdHJ1Y3QgcGFnZV9wb29sICpwb29sLAogCQkJICBjb25zdCBzdHJ1Y3QgcGFnZV9wb29s X3BhcmFtcyAqcGFyYW1zKQogewpAQCAtMjAwLDIyICsyMDMsMTQgQEAgc3RhdGljIHMzMiBwYWdl X3Bvb2xfaW5mbGlnaHQoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCkKIHsKIAl1MzIgcmVsZWFzZV9j bnQgPSBhdG9taWNfcmVhZCgmcG9vbC0+cGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQpOwogCXUzMiBo b2xkX2NudCA9IFJFQURfT05DRShwb29sLT5wYWdlc19zdGF0ZV9ob2xkX2NudCk7Ci0JczMyIGRp c3RhbmNlOwotCi0JZGlzdGFuY2UgPSBfZGlzdGFuY2UoaG9sZF9jbnQsIHJlbGVhc2VfY250KTsK LQotCXRyYWNlX3BhZ2VfcG9vbF9pbmZsaWdodChwb29sLCBkaXN0YW5jZSwgaG9sZF9jbnQsIHJl bGVhc2VfY250KTsKLQlyZXR1cm4gZGlzdGFuY2U7Ci19CisJczMyIGluZmxpZ2h0OwogCi1zdGF0 aWMgYm9vbCBfX3BhZ2VfcG9vbF9zYWZlX3RvX2Rlc3Ryb3koc3RydWN0IHBhZ2VfcG9vbCAqcG9v bCkKLXsKLQlzMzIgaW5mbGlnaHQgPSBwYWdlX3Bvb2xfaW5mbGlnaHQocG9vbCk7CisJaW5mbGln aHQgPSBfZGlzdGFuY2UoaG9sZF9jbnQsIHJlbGVhc2VfY250KTsKIAotCS8qIFRoZSBkaXN0YW5j ZSBzaG91bGQgbm90IGJlIGFibGUgdG8gYmVjb21lIG5lZ2F0aXZlICovCisJdHJhY2VfcGFnZV9w b29sX2luZmxpZ2h0KHBvb2wsIGluZmxpZ2h0LCBob2xkX2NudCwgcmVsZWFzZV9jbnQpOwogCVdB Uk4oaW5mbGlnaHQgPCAwLCAiTmVnYXRpdmUoJWQpIGluZmxpZ2h0IHBhY2tldC1wYWdlcyIsIGlu ZmxpZ2h0KTsKIAotCXJldHVybiAoaW5mbGlnaHQgPT0gMCk7CisJcmV0dXJuIGluZmxpZ2h0Owog fQogCiAvKiBDbGVhbnVwIHBhZ2VfcG9vbCBzdGF0ZSBmcm9tIHBhZ2UgKi8KQEAgLTIyMyw2ICsy MTgsNyBAQCBzdGF0aWMgdm9pZCBfX3BhZ2VfcG9vbF9jbGVhbl9wYWdlKHN0cnVjdCBwYWdlX3Bv b2wgKnBvb2wsCiAJCQkJICAgc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJZG1hX2FkZHJfdCBkbWE7 CisJaW50IGNvdW50OwogCiAJaWYgKCEocG9vbC0+cC5mbGFncyAmIFBQX0ZMQUdfRE1BX01BUCkp CiAJCWdvdG8gc2tpcF9kbWFfdW5tYXA7CkBAIC0yMzQsOSArMjMwLDExIEBAIHN0YXRpYyB2b2lk IF9fcGFnZV9wb29sX2NsZWFuX3BhZ2Uoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCwKIAkJCSAgICAg RE1BX0FUVFJfU0tJUF9DUFVfU1lOQyk7CiAJcGFnZS0+ZG1hX2FkZHIgPSAwOwogc2tpcF9kbWFf dW5tYXA6Ci0JYXRvbWljX2luYygmcG9vbC0+cGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQpOwotCXRy YWNlX3BhZ2VfcG9vbF9zdGF0ZV9yZWxlYXNlKHBvb2wsIHBhZ2UsCi0JCQkgICAgICBhdG9taWNf cmVhZCgmcG9vbC0+cGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQpKTsKKwkvKiBUaGlzIG1heSBiZSB0 aGUgbGFzdCBwYWdlIHJldHVybmVkLCByZWxlYXNpbmcgdGhlIHBvb2wsIHNvCisJICogaXQgaXMg bm90IHNhZmUgdG8gcmVmZXJlbmNlIHBvb2wgYWZ0ZXJ3YXJkcy4KKwkgKi8KKwljb3VudCA9IGF0 b21pY19pbmNfcmV0dXJuKCZwb29sLT5wYWdlc19zdGF0ZV9yZWxlYXNlX2NudCk7CisJdHJhY2Vf cGFnZV9wb29sX3N0YXRlX3JlbGVhc2UocG9vbCwgcGFnZSwgY291bnQpOwogfQogCiAvKiB1bm1h cCB0aGUgcGFnZSBhbmQgY2xlYW4gb3VyIHN0YXRlICovCkBAIC0zNDUsMzEgKzM0MywxMCBAQCBz dGF0aWMgdm9pZCBfX3BhZ2VfcG9vbF9lbXB0eV9yaW5nKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wp CiAJfQogfQogCi1zdGF0aWMgdm9pZCBfX3dhcm5faW5fZmxpZ2h0KHN0cnVjdCBwYWdlX3Bvb2wg KnBvb2wpCitzdGF0aWMgdm9pZCBwYWdlX3Bvb2xfZnJlZShzdHJ1Y3QgcGFnZV9wb29sICpwb29s KQogewotCXUzMiByZWxlYXNlX2NudCA9IGF0b21pY19yZWFkKCZwb29sLT5wYWdlc19zdGF0ZV9y ZWxlYXNlX2NudCk7Ci0JdTMyIGhvbGRfY250ID0gUkVBRF9PTkNFKHBvb2wtPnBhZ2VzX3N0YXRl X2hvbGRfY250KTsKLQlzMzIgZGlzdGFuY2U7Ci0KLQlkaXN0YW5jZSA9IF9kaXN0YW5jZShob2xk X2NudCwgcmVsZWFzZV9jbnQpOwotCi0JLyogRHJpdmVycyBzaG91bGQgZml4IHRoaXMsIGJ1dCBv bmx5IHByb2JsZW1hdGljIHdoZW4gRE1BIGlzIHVzZWQgKi8KLQlXQVJOKDEsICJTdGlsbCBpbi1m bGlnaHQgcGFnZXM6JWQgaG9sZDoldSByZWxlYXNlZDoldSIsCi0JICAgICBkaXN0YW5jZSwgaG9s ZF9jbnQsIHJlbGVhc2VfY250KTsKLX0KLQotdm9pZCBfX3BhZ2VfcG9vbF9mcmVlKHN0cnVjdCBw YWdlX3Bvb2wgKnBvb2wpCi17Ci0JLyogT25seSBsYXN0IHVzZXIgYWN0dWFsbHkgZnJlZS9yZWxl YXNlIHJlc291cmNlcyAqLwotCWlmICghcGFnZV9wb29sX3B1dChwb29sKSkKLQkJcmV0dXJuOwot Ci0JV0FSTihwb29sLT5hbGxvYy5jb3VudCwgIkFQSSB1c2FnZSB2aW9sYXRpb24iKTsKLQlXQVJO KCFwdHJfcmluZ19lbXB0eSgmcG9vbC0+cmluZyksICJwdHJfcmluZyBpcyBub3QgZW1wdHkiKTsK LQotCS8qIENhbiBoYXBwZW4gZHVlIHRvIGZvcmNlZCBzaHV0ZG93biAqLwotCWlmICghX19wYWdl X3Bvb2xfc2FmZV90b19kZXN0cm95KHBvb2wpKQotCQlfX3dhcm5faW5fZmxpZ2h0KHBvb2wpOwor CWlmIChwb29sLT5kaXNjb25uZWN0KQorCQlwb29sLT5kaXNjb25uZWN0KHBvb2wpOwogCiAJcHRy X3JpbmdfY2xlYW51cCgmcG9vbC0+cmluZywgTlVMTCk7CiAKQEAgLTM3OCwxMiArMzU1LDggQEAg dm9pZCBfX3BhZ2VfcG9vbF9mcmVlKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCiAKIAlrZnJlZShw b29sKTsKIH0KLUVYUE9SVF9TWU1CT0woX19wYWdlX3Bvb2xfZnJlZSk7CiAKLS8qIFJlcXVlc3Qg dG8gc2h1dGRvd246IHJlbGVhc2UgcGFnZXMgY2FjaGVkIGJ5IHBhZ2VfcG9vbCwgYW5kIGNoZWNr Ci0gKiBmb3IgaW4tZmxpZ2h0IHBhZ2VzCi0gKi8KLWJvb2wgX19wYWdlX3Bvb2xfcmVxdWVzdF9z aHV0ZG93bihzdHJ1Y3QgcGFnZV9wb29sICpwb29sKQorc3RhdGljIHZvaWQgcGFnZV9wb29sX3Nj cnViKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCiB7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKQEAg LTQwMCw3ICszNzMsNjQgQEAgYm9vbCBfX3BhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKHN0cnVj dCBwYWdlX3Bvb2wgKnBvb2wpCiAJICogYmUgaW4tZmxpZ2h0LgogCSAqLwogCV9fcGFnZV9wb29s X2VtcHR5X3JpbmcocG9vbCk7Cit9CisKK3N0YXRpYyBpbnQgcGFnZV9wb29sX3JlbGVhc2Uoc3Ry dWN0IHBhZ2VfcG9vbCAqcG9vbCkKK3sKKwlpbnQgaW5mbGlnaHQ7CisKKwlwYWdlX3Bvb2xfc2Ny dWIocG9vbCk7CisJaW5mbGlnaHQgPSBwYWdlX3Bvb2xfaW5mbGlnaHQocG9vbCk7CisJaWYgKCFp bmZsaWdodCkKKwkJcGFnZV9wb29sX2ZyZWUocG9vbCk7CisKKwlyZXR1cm4gaW5mbGlnaHQ7Cit9 CisKK3N0YXRpYyB2b2lkIHBhZ2VfcG9vbF9yZWxlYXNlX3JldHJ5KHN0cnVjdCB3b3JrX3N0cnVj dCAqd3EpCit7CisJc3RydWN0IGRlbGF5ZWRfd29yayAqZHdxID0gdG9fZGVsYXllZF93b3JrKHdx KTsKKwlzdHJ1Y3QgcGFnZV9wb29sICpwb29sID0gY29udGFpbmVyX29mKGR3cSwgdHlwZW9mKCpw b29sKSwgcmVsZWFzZV9kdyk7CisJaW50IGluZmxpZ2h0OworCisJaW5mbGlnaHQgPSBwYWdlX3Bv b2xfcmVsZWFzZShwb29sKTsKKwlpZiAoIWluZmxpZ2h0KQorCQlyZXR1cm47CisKKwkvKiBQZXJp b2RpYyB3YXJuaW5nICovCisJaWYgKHRpbWVfYWZ0ZXJfZXEoamlmZmllcywgcG9vbC0+ZGVmZXJf d2FybikpIHsKKwkJaW50IHNlYyA9IChzMzIpKCh1MzIpamlmZmllcyAtICh1MzIpcG9vbC0+ZGVm ZXJfc3RhcnQpIC8gSFo7CisKKwkJcHJfd2FybigiJXMoKSBzdGFsbGVkIHBvb2wgc2h1dGRvd24g JWQgaW5mbGlnaHQgJWQgc2VjXG4iLAorCQkJX19mdW5jX18sIGluZmxpZ2h0LCBzZWMpOworCQlw b29sLT5kZWZlcl93YXJuID0gamlmZmllcyArIERFRkVSX1dBUk5fSU5URVJWQUw7CisJfQorCisJ LyogU3RpbGwgbm90IHJlYWR5IHRvIGJlIGRpc2Nvbm5lY3RlZCwgcmV0cnkgbGF0ZXIgKi8KKwlz Y2hlZHVsZV9kZWxheWVkX3dvcmsoJnBvb2wtPnJlbGVhc2VfZHcsIERFRkVSX1RJTUUpOworfQor Cit2b2lkIHBhZ2VfcG9vbF91c2VfeGRwX21lbShzdHJ1Y3QgcGFnZV9wb29sICpwb29sLCB2b2lk ICgqZGlzY29ubmVjdCkodm9pZCAqKSkKK3sKKwlyZWZjb3VudF9pbmMoJnBvb2wtPnVzZXJfY250 KTsKKwlwb29sLT5kaXNjb25uZWN0ID0gZGlzY29ubmVjdDsKK30KKwordm9pZCBwYWdlX3Bvb2xf ZGVzdHJveShzdHJ1Y3QgcGFnZV9wb29sICpwb29sKQoreworCWlmICghcG9vbCkKKwkJcmV0dXJu OworCisJaWYgKCFwYWdlX3Bvb2xfcHV0KHBvb2wpKQorCQlyZXR1cm47CisKKwlpZiAoIXBhZ2Vf cG9vbF9yZWxlYXNlKHBvb2wpKQorCQlyZXR1cm47CisKKwlwb29sLT5kZWZlcl9zdGFydCA9IGpp ZmZpZXM7CisJcG9vbC0+ZGVmZXJfd2FybiAgPSBqaWZmaWVzICsgREVGRVJfV0FSTl9JTlRFUlZB TDsKIAotCXJldHVybiBfX3BhZ2VfcG9vbF9zYWZlX3RvX2Rlc3Ryb3kocG9vbCk7CisJSU5JVF9E RUxBWUVEX1dPUksoJnBvb2wtPnJlbGVhc2VfZHcsIHBhZ2VfcG9vbF9yZWxlYXNlX3JldHJ5KTsK KwlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnBvb2wtPnJlbGVhc2VfZHcsIERFRkVSX1RJTUUpOwog fQotRVhQT1JUX1NZTUJPTChfX3BhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKTsKK0VYUE9SVF9T WU1CT0wocGFnZV9wb29sX2Rlc3Ryb3kpOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUveGRwLmMgYi9u ZXQvY29yZS94ZHAuYwppbmRleCBkN2JmNjJmZmJiNWUuLmFjODY2YWM2NWYyYiAxMDA2NDQKLS0t IGEvbmV0L2NvcmUveGRwLmMKKysrIGIvbmV0L2NvcmUveGRwLmMKQEAgLTcwLDEwICs3MCw2IEBA IHN0YXRpYyB2b2lkIF9feGRwX21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUoc3RydWN0IHJjdV9oZWFk ICpyY3UpCiAKIAl4YSA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRv ciwgcmN1KTsKIAotCS8qIEFsbG9jYXRvciBoYXZlIGluZGljYXRlZCBzYWZlIHRvIHJlbW92ZSBi ZWZvcmUgdGhpcyBpcyBjYWxsZWQgKi8KLQlpZiAoeGEtPm1lbS50eXBlID09IE1FTV9UWVBFX1BB R0VfUE9PTCkKLQkJcGFnZV9wb29sX2ZyZWUoeGEtPnBhZ2VfcG9vbCk7Ci0KIAkvKiBBbGxvdyB0 aGlzIElEIHRvIGJlIHJldXNlZCAqLwogCWlkYV9zaW1wbGVfcmVtb3ZlKCZtZW1faWRfcG9vbCwg eGEtPm1lbS5pZCk7CiAKQEAgLTg1LDYyICs4MSw1NyBAQCBzdGF0aWMgdm9pZCBfX3hkcF9tZW1f YWxsb2NhdG9yX3JjdV9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcmN1KQogCWtmcmVlKHhhKTsKIH0K IAotc3RhdGljIGJvb2wgX19tZW1faWRfZGlzY29ubmVjdChpbnQgaWQsIGJvb2wgZm9yY2UpCitz dGF0aWMgdm9pZCBtZW1feGFfcmVtb3ZlKHN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRvciAqeGEpCiB7 Ci0Jc3RydWN0IHhkcF9tZW1fYWxsb2NhdG9yICp4YTsKLQlib29sIHNhZmVfdG9fcmVtb3ZlID0g dHJ1ZTsKKwl0cmFjZV9tZW1fZGlzY29ubmVjdCh4YSk7CiAKIAltdXRleF9sb2NrKCZtZW1faWRf bG9jayk7CiAKLQl4YSA9IHJoYXNodGFibGVfbG9va3VwX2Zhc3QobWVtX2lkX2h0LCAmaWQsIG1l bV9pZF9yaHRfcGFyYW1zKTsKLQlpZiAoIXhhKSB7Ci0JCW11dGV4X3VubG9jaygmbWVtX2lkX2xv Y2spOwotCQlXQVJOKDEsICJSZXF1ZXN0IHJlbW92ZSBub24tZXhpc3RpbmcgaWQoJWQpLCBkcml2 ZXIgYnVnPyIsIGlkKTsKLQkJcmV0dXJuIHRydWU7Ci0JfQotCXhhLT5kaXNjb25uZWN0X2NudCsr OwotCi0JLyogRGV0ZWN0cyBpbi1mbGlnaHQgcGFja2V0LXBhZ2VzIGZvciBwYWdlX3Bvb2wgKi8K LQlpZiAoeGEtPm1lbS50eXBlID09IE1FTV9UWVBFX1BBR0VfUE9PTCkKLQkJc2FmZV90b19yZW1v dmUgPSBwYWdlX3Bvb2xfcmVxdWVzdF9zaHV0ZG93bih4YS0+cGFnZV9wb29sKTsKLQotCXRyYWNl X21lbV9kaXNjb25uZWN0KHhhLCBzYWZlX3RvX3JlbW92ZSwgZm9yY2UpOwotCi0JaWYgKChzYWZl X3RvX3JlbW92ZSB8fCBmb3JjZSkgJiYKLQkgICAgIXJoYXNodGFibGVfcmVtb3ZlX2Zhc3QobWVt X2lkX2h0LCAmeGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1zKSkKKwlpZiAoIXJoYXNodGFibGVf cmVtb3ZlX2Zhc3QobWVtX2lkX2h0LCAmeGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1zKSkKIAkJ Y2FsbF9yY3UoJnhhLT5yY3UsIF9feGRwX21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUpOwogCiAJbXV0 ZXhfdW5sb2NrKCZtZW1faWRfbG9jayk7Ci0JcmV0dXJuIChzYWZlX3RvX3JlbW92ZXxmb3JjZSk7 CiB9CiAKLSNkZWZpbmUgREVGRVJfVElNRSAobXNlY3NfdG9famlmZmllcygxMDAwKSkKLSNkZWZp bmUgREVGRVJfV0FSTl9JTlRFUlZBTCAoMzAgKiBIWikKLSNkZWZpbmUgREVGRVJfTUFYX1JFVFJJ RVMgMTIwCitzdGF0aWMgdm9pZCBtZW1fYWxsb2NhdG9yX2Rpc2Nvbm5lY3Qodm9pZCAqYWxsb2Nh dG9yKQoreworCXN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRvciAqeGE7CisJc3RydWN0IHJoYXNodGFi bGVfaXRlciBpdGVyOworCisJcmhhc2h0YWJsZV93YWxrX2VudGVyKG1lbV9pZF9odCwgJml0ZXIp OworCWRvIHsKKwkJcmhhc2h0YWJsZV93YWxrX3N0YXJ0KCZpdGVyKTsKKworCQl3aGlsZSAoKHhh ID0gcmhhc2h0YWJsZV93YWxrX25leHQoJml0ZXIpKSAmJiAhSVNfRVJSKHhhKSkgeworCQkJaWYg KHhhLT5hbGxvY2F0b3IgPT0gYWxsb2NhdG9yKQorCQkJCW1lbV94YV9yZW1vdmUoeGEpOworCQl9 CisKKwkJcmhhc2h0YWJsZV93YWxrX3N0b3AoJml0ZXIpOwogCi1zdGF0aWMgdm9pZCBtZW1faWRf ZGlzY29ubmVjdF9kZWZlcl9yZXRyeShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndxKQorCX0gd2hpbGUg KHhhID09IEVSUl9QVFIoLUVBR0FJTikpOworCXJoYXNodGFibGVfd2Fsa19leGl0KCZpdGVyKTsK K30KKworc3RhdGljIHZvaWQgbWVtX2lkX2Rpc2Nvbm5lY3QoaW50IGlkKQogewotCXN0cnVjdCBk ZWxheWVkX3dvcmsgKmR3cSA9IHRvX2RlbGF5ZWRfd29yayh3cSk7Ci0Jc3RydWN0IHhkcF9tZW1f YWxsb2NhdG9yICp4YSA9IGNvbnRhaW5lcl9vZihkd3EsIHR5cGVvZigqeGEpLCBkZWZlcl93cSk7 Ci0JYm9vbCBmb3JjZSA9IGZhbHNlOworCXN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRvciAqeGE7CiAK LQlpZiAoeGEtPmRpc2Nvbm5lY3RfY250ID4gREVGRVJfTUFYX1JFVFJJRVMpCi0JCWZvcmNlID0g dHJ1ZTsKKwltdXRleF9sb2NrKCZtZW1faWRfbG9jayk7CiAKLQlpZiAoX19tZW1faWRfZGlzY29u bmVjdCh4YS0+bWVtLmlkLCBmb3JjZSkpCisJeGEgPSByaGFzaHRhYmxlX2xvb2t1cF9mYXN0KG1l bV9pZF9odCwgJmlkLCBtZW1faWRfcmh0X3BhcmFtcyk7CisJaWYgKCF4YSkgeworCQltdXRleF91 bmxvY2soJm1lbV9pZF9sb2NrKTsKKwkJV0FSTigxLCAiUmVxdWVzdCByZW1vdmUgbm9uLWV4aXN0 aW5nIGlkKCVkKSwgZHJpdmVyIGJ1Zz8iLCBpZCk7CiAJCXJldHVybjsKKwl9CiAKLQkvKiBQZXJp b2RpYyB3YXJuaW5nICovCi0JaWYgKHRpbWVfYWZ0ZXJfZXEoamlmZmllcywgeGEtPmRlZmVyX3dh cm4pKSB7Ci0JCWludCBzZWMgPSAoczMyKSgodTMyKWppZmZpZXMgLSAodTMyKXhhLT5kZWZlcl9z dGFydCkgLyBIWjsKKwl0cmFjZV9tZW1fZGlzY29ubmVjdCh4YSk7CiAKLQkJcHJfd2FybigiJXMo KSBzdGFsbGVkIG1lbS5pZD0ldSBzaHV0ZG93biAlZCBhdHRlbXB0cyAlZCBzZWNcbiIsCi0JCQlf X2Z1bmNfXywgeGEtPm1lbS5pZCwgeGEtPmRpc2Nvbm5lY3RfY250LCBzZWMpOwotCQl4YS0+ZGVm ZXJfd2FybiA9IGppZmZpZXMgKyBERUZFUl9XQVJOX0lOVEVSVkFMOwotCX0KKwlpZiAoIXJoYXNo dGFibGVfcmVtb3ZlX2Zhc3QobWVtX2lkX2h0LCAmeGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1z KSkKKwkJY2FsbF9yY3UoJnhhLT5yY3UsIF9feGRwX21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUpOwog Ci0JLyogU3RpbGwgbm90IHJlYWR5IHRvIGJlIGRpc2Nvbm5lY3RlZCwgcmV0cnkgbGF0ZXIgKi8K LQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnhhLT5kZWZlcl93cSwgREVGRVJfVElNRSk7CisJbXV0 ZXhfdW5sb2NrKCZtZW1faWRfbG9jayk7CiB9CiAKIHZvaWQgeGRwX3J4cV9pbmZvX3VucmVnX21l bV9tb2RlbChzdHJ1Y3QgeGRwX3J4cV9pbmZvICp4ZHBfcnhxKQpAQCAtMTUzLDM4ICsxNDQsMjEg QEAgdm9pZCB4ZHBfcnhxX2luZm9fdW5yZWdfbWVtX21vZGVsKHN0cnVjdCB4ZHBfcnhxX2luZm8g KnhkcF9yeHEpCiAJCXJldHVybjsKIAl9CiAKLQlpZiAoeGRwX3J4cS0+bWVtLnR5cGUgIT0gTUVN X1RZUEVfUEFHRV9QT09MICYmCi0JICAgIHhkcF9yeHEtPm1lbS50eXBlICE9IE1FTV9UWVBFX1pF Uk9fQ09QWSkgewotCQlyZXR1cm47Ci0JfQotCiAJaWYgKGlkID09IDApCiAJCXJldHVybjsKIAot CWlmIChfX21lbV9pZF9kaXNjb25uZWN0KGlkLCBmYWxzZSkpCi0JCXJldHVybjsKLQotCS8qIENv dWxkIG5vdCBkaXNjb25uZWN0LCBkZWZlciBuZXcgZGlzY29ubmVjdCBhdHRlbXB0IHRvIGxhdGVy ICovCi0JbXV0ZXhfbG9jaygmbWVtX2lkX2xvY2spOworCWlmICh4ZHBfcnhxLT5tZW0udHlwZSA9 PSBNRU1fVFlQRV9aRVJPX0NPUFkpCisJCXJldHVybiBtZW1faWRfZGlzY29ubmVjdChpZCk7CiAK LQl4YSA9IHJoYXNodGFibGVfbG9va3VwX2Zhc3QobWVtX2lkX2h0LCAmaWQsIG1lbV9pZF9yaHRf cGFyYW1zKTsKLQlpZiAoIXhhKSB7Ci0JCW11dGV4X3VubG9jaygmbWVtX2lkX2xvY2spOwotCQly ZXR1cm47CisJaWYgKHhkcF9yeHEtPm1lbS50eXBlID09IE1FTV9UWVBFX1BBR0VfUE9PTCkgewor CQlyY3VfcmVhZF9sb2NrKCk7CisJCXhhID0gcmhhc2h0YWJsZV9sb29rdXAobWVtX2lkX2h0LCAm aWQsIG1lbV9pZF9yaHRfcGFyYW1zKTsKKwkJcGFnZV9wb29sX2Rlc3Ryb3koeGEtPnBhZ2VfcG9v bCk7CisJCXJjdV9yZWFkX3VubG9jaygpOwogCX0KLQl4YS0+ZGVmZXJfc3RhcnQgPSBqaWZmaWVz OwotCXhhLT5kZWZlcl93YXJuICA9IGppZmZpZXMgKyBERUZFUl9XQVJOX0lOVEVSVkFMOwotCi0J SU5JVF9ERUxBWUVEX1dPUksoJnhhLT5kZWZlcl93cSwgbWVtX2lkX2Rpc2Nvbm5lY3RfZGVmZXJf cmV0cnkpOwotCW11dGV4X3VubG9jaygmbWVtX2lkX2xvY2spOwotCXNjaGVkdWxlX2RlbGF5ZWRf d29yaygmeGEtPmRlZmVyX3dxLCBERUZFUl9USU1FKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHhk cF9yeHFfaW5mb191bnJlZ19tZW1fbW9kZWwpOwogCi0vKiBUaGlzIHVucmVnaXN0ZXIgb3BlcmF0 aW9uIHdpbGwgYWxzbyBjbGVhbnVwIGFuZCBkZXN0cm95IHRoZQotICogYWxsb2NhdG9yLiBUaGUg cGFnZV9wb29sX2ZyZWUoKSBvcGVyYXRpb24gaXMgZmlyc3QgY2FsbGVkIHdoZW4gaXQncwotICog c2FmZSB0byByZW1vdmUsIHBvc3NpYmx5IGRlZmVycmVkIHRvIGEgd29ya3F1ZXVlLgotICovCiB2 b2lkIHhkcF9yeHFfaW5mb191bnJlZyhzdHJ1Y3QgeGRwX3J4cV9pbmZvICp4ZHBfcnhxKQogewog CS8qIFNpbXBsaWZ5IGRyaXZlciBjbGVhbnVwIGNvZGUgcGF0aHMsIGFsbG93IHVucmVnICJ1bnVz ZWQiICovCkBAIC0zNzEsNyArMzQ1LDcgQEAgaW50IHhkcF9yeHFfaW5mb19yZWdfbWVtX21vZGVs KHN0cnVjdCB4ZHBfcnhxX2luZm8gKnhkcF9yeHEsCiAJfQogCiAJaWYgKHR5cGUgPT0gTUVNX1RZ UEVfUEFHRV9QT09MKQotCQlwYWdlX3Bvb2xfZ2V0KHhkcF9hbGxvYy0+cGFnZV9wb29sKTsKKwkJ cGFnZV9wb29sX3VzZV94ZHBfbWVtKGFsbG9jYXRvciwgbWVtX2FsbG9jYXRvcl9kaXNjb25uZWN0 KTsKIAogCW11dGV4X3VubG9jaygmbWVtX2lkX2xvY2spOwogCkBAIC00MDIsMTUgKzM3Niw4IEBA IHN0YXRpYyB2b2lkIF9feGRwX3JldHVybih2b2lkICpkYXRhLCBzdHJ1Y3QgeGRwX21lbV9pbmZv ICptZW0sIGJvb2wgbmFwaV9kaXJlY3QsCiAJCS8qIG1lbS0+aWQgaXMgdmFsaWQsIGNoZWNrZWQg aW4geGRwX3J4cV9pbmZvX3JlZ19tZW1fbW9kZWwoKSAqLwogCQl4YSA9IHJoYXNodGFibGVfbG9v a3VwKG1lbV9pZF9odCwgJm1lbS0+aWQsIG1lbV9pZF9yaHRfcGFyYW1zKTsKIAkJcGFnZSA9IHZp cnRfdG9faGVhZF9wYWdlKGRhdGEpOwotCQlpZiAobGlrZWx5KHhhKSkgewotCQkJbmFwaV9kaXJl Y3QgJj0gIXhkcF9yZXR1cm5fZnJhbWVfbm9fZGlyZWN0KCk7Ci0JCQlwYWdlX3Bvb2xfcHV0X3Bh Z2UoeGEtPnBhZ2VfcG9vbCwgcGFnZSwgbmFwaV9kaXJlY3QpOwotCQl9IGVsc2UgewotCQkJLyog SG9wZWZ1bGx5IHN0YWNrIHNob3cgd2hvIHRvIGJsYW1lIGZvciBsYXRlIHJldHVybiAqLwotCQkJ V0FSTl9PTkNFKDEsICJwYWdlX3Bvb2wgZ29uZSBtZW0uaWQ9JWQiLCBtZW0tPmlkKTsKLQkJCXRy YWNlX21lbV9yZXR1cm5fZmFpbGVkKG1lbSwgcGFnZSk7Ci0JCQlwdXRfcGFnZShwYWdlKTsKLQkJ fQorCQluYXBpX2RpcmVjdCAmPSAheGRwX3JldHVybl9mcmFtZV9ub19kaXJlY3QoKTsKKwkJcGFn ZV9wb29sX3B1dF9wYWdlKHhhLT5wYWdlX3Bvb2wsIHBhZ2UsIG5hcGlfZGlyZWN0KTsKIAkJcmN1 X3JlYWRfdW5sb2NrKCk7CiAJCWJyZWFrOwogCWNhc2UgTUVNX1RZUEVfUEFHRV9TSEFSRUQ6Ci0t IAoyLjIwLjEKCgpGcm9tIGY0ZTUzMmMzOTFiZDk2YzcyZjIwMDQ4MzhkNjNjM2IzZDIxM2Y3MTEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvbmF0aGFuIExlbW9uIDxqb25hdGhhbi5s ZW1vbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMyBEZWMgMjAxOSAxNDowMToxNCAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggMjYvMjZdIHhkcDogb2J0YWluIHRoZSBtZW1faWQgbXV0ZXggYmVmb3JlIHRy eWluZyB0byByZW1vdmUgYW4KIGVudHJ5LgoKWyBVcHN0cmVhbSBjb21taXQgODZjNzZjMDk4OTgz MzIxNDNiZTM2NWM3MDJjZjhkNTg2ZWQ0ZWQyMSBdCgpBIGxvY2tkZXAgc3BsYXQgd2FzIG9ic2Vy dmVkIHdoZW4gdHJ5aW5nIHRvIHJlbW92ZSBhbiB4ZHAgbWVtb3J5Cm1vZGVsIGZyb20gdGhlIHRh YmxlIHNpbmNlIHRoZSBtdXRleCB3YXMgb2J0YWluZWQgd2hlbiB0cnlpbmcgdG8KcmVtb3ZlIHRo ZSBlbnRyeSwgYnV0IG5vdCBiZWZvcmUgdGhlIHRhYmxlIHdhbGsgc3RhcnRlZDoKCkZpeCB0aGUg c3BsYXQgYnkgb2J0YWluaW5nIHRoZSBsb2NrIGJlZm9yZSBzdGFydGluZyB0aGUgdGFibGUgd2Fs ay4KCkZpeGVzOiBjM2Y4MTJjZWEwZDcgKCJwYWdlX3Bvb2w6IGRvIG5vdCByZWxlYXNlIHBvb2wg dW50aWwgaW5mbGlnaHQgPT0gMC4iKQpSZXBvcnRlZC1ieTogR3J5Z29yaWkgU3RyYXNoa28gPGdy eWdvcmlpLnN0cmFzaGtvQHRpLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4gTGVtb24gPGpv bmF0aGFuLmxlbW9uQGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5 Z29yaWkuc3RyYXNoa29AdGkuY29tPgpBY2tlZC1ieTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8 YnJvdWVyQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBJbGlhcyBBcGFsb2RpbWFzIDxpbGlhcy5hcGFs b2RpbWFzQGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS94ZHAuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L2NvcmUveGRwLmMgYi9uZXQvY29yZS94ZHAuYwppbmRleCBhYzg2NmFjNjVmMmIuLmIzZjQ2M2M2 NTQzZiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUveGRwLmMKKysrIGIvbmV0L2NvcmUveGRwLmMKQEAg LTg1LDEyICs4NSw4IEBAIHN0YXRpYyB2b2lkIG1lbV94YV9yZW1vdmUoc3RydWN0IHhkcF9tZW1f YWxsb2NhdG9yICp4YSkKIHsKIAl0cmFjZV9tZW1fZGlzY29ubmVjdCh4YSk7CiAKLQltdXRleF9s b2NrKCZtZW1faWRfbG9jayk7Ci0KIAlpZiAoIXJoYXNodGFibGVfcmVtb3ZlX2Zhc3QobWVtX2lk X2h0LCAmeGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1zKSkKIAkJY2FsbF9yY3UoJnhhLT5yY3Us IF9feGRwX21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUpOwotCi0JbXV0ZXhfdW5sb2NrKCZtZW1faWRf bG9jayk7CiB9CiAKIHN0YXRpYyB2b2lkIG1lbV9hbGxvY2F0b3JfZGlzY29ubmVjdCh2b2lkICph bGxvY2F0b3IpCkBAIC05OCw2ICs5NCw4IEBAIHN0YXRpYyB2b2lkIG1lbV9hbGxvY2F0b3JfZGlz Y29ubmVjdCh2b2lkICphbGxvY2F0b3IpCiAJc3RydWN0IHhkcF9tZW1fYWxsb2NhdG9yICp4YTsK IAlzdHJ1Y3Qgcmhhc2h0YWJsZV9pdGVyIGl0ZXI7CiAKKwltdXRleF9sb2NrKCZtZW1faWRfbG9j ayk7CisKIAlyaGFzaHRhYmxlX3dhbGtfZW50ZXIobWVtX2lkX2h0LCAmaXRlcik7CiAJZG8gewog CQlyaGFzaHRhYmxlX3dhbGtfc3RhcnQoJml0ZXIpOwpAQCAtMTExLDYgKzEwOSw4IEBAIHN0YXRp YyB2b2lkIG1lbV9hbGxvY2F0b3JfZGlzY29ubmVjdCh2b2lkICphbGxvY2F0b3IpCiAKIAl9IHdo aWxlICh4YSA9PSBFUlJfUFRSKC1FQUdBSU4pKTsKIAlyaGFzaHRhYmxlX3dhbGtfZXhpdCgmaXRl cik7CisKKwltdXRleF91bmxvY2soJm1lbV9pZF9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgbWVt X2lkX2Rpc2Nvbm5lY3QoaW50IGlkKQotLSAKMi4yMC4xCgo= ----Next_Part(Mon_Dec_16_14_10_09_2019_087)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSA1MjE0MmIxYjBkNmZkMzVjZWIzYTJmYzU5MGY5MmJhNDcwYTI5NDExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFRodSwgNSBEZWMgMjAxOSAyMDo0Mzo0NiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMzhd IGluZXQ6IHByb3RlY3QgYWdhaW5zdCB0b28gc21hbGwgbXR1IHZhbHVlcy4KClsgVXBzdHJlYW0g Y29tbWl0IDUwMWE5MGM5NDUxMDNlODYyNzQwNjc2M2RhYzQxOGYyMGYzODM3YjIgXQoKc3l6Ym90 IHdhcyBvbmNlIGFnYWluIGFibGUgdG8gY3Jhc2ggYSBob3N0IGJ5IHNldHRpbmcgYSB2ZXJ5IHNt YWxsIG10dQpvbiBsb29wYmFjayBkZXZpY2UuCgpMZXQncyBtYWtlIGluZXRkZXZfdmFsaWRfbXR1 KCkgYXZhaWxhYmxlIGluIGluY2x1ZGUvbmV0L2lwLmgsCmFuZCB1c2UgaXQgaW4gaXBfc2V0dXBf Y29yaygpLCBzbyB0aGF0IHdlIHByb3RlY3QgYm90aCBpcF9hcHBlbmRfcGFnZSgpCmFuZCBfX2lw X2FwcGVuZF9kYXRhKCkKCkFsc28gYWRkIGEgUkVBRF9PTkNFKCkgd2hlbiB0aGUgZGV2aWNlIG10 dSBpcyByZWFkLgoKUGFpcnMgdGhpcyBsb2NrbGVzcyByZWFkIHdpdGggb25lIFdSSVRFX09OQ0Uo KSBpbiBfX2Rldl9zZXRfbXR1KCksCmV2ZW4gaWYgb3RoZXIgY29kZSBwYXRocyBtaWdodCB3cml0 ZSBvdmVyIHRoaXMgZmllbGQuCgpBZGQgYSBiaWcgY29tbWVudCBpbiBpbmNsdWRlL2xpbnV4L25l dGRldmljZS5oIGFib3V0IGRldi0+bXR1Cm5lZWRpbmcgUkVBRF9PTkNFKCkvV1JJVEVfT05DRSgp IGFubm90YXRpb25zLgoKSG9wZWZ1bGx5IHdlIHdpbGwgYWRkIHRoZSBtaXNzaW5nIG9uZXMgaW4g Zm9sbG93dXAgcGF0Y2hlcy4KClsxXQoKcmVmY291bnRfdDogc2F0dXJhdGVkOyBsZWFraW5nIG1l bW9yeS4KV0FSTklORzogQ1BVOiAwIFBJRDogOTQ2NCBhdCBsaWIvcmVmY291bnQuYzoyMiByZWZj b3VudF93YXJuX3NhdHVyYXRlKzB4MTM4LzB4MWYwIGxpYi9yZWZjb3VudC5jOjIyCktlcm5lbCBw YW5pYyAtIG5vdCBzeW5jaW5nOiBwYW5pY19vbl93YXJuIHNldCAuLi4KQ1BVOiAwIFBJRDogOTQ2 NCBDb21tOiBzeXotZXhlY3V0b3I4NTAgTm90IHRhaW50ZWQgNS40LjAtc3l6a2FsbGVyICMwCkhh cmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUg RW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sg bGliL2R1bXBfc3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDE5Ny8weDIxMCBsaWIv ZHVtcF9zdGFjay5jOjExOAogcGFuaWMrMHgyZTMvMHg3NWMga2VybmVsL3BhbmljLmM6MjIxCiBf X3dhcm4uY29sZCsweDJmLzB4M2Uga2VybmVsL3BhbmljLmM6NTgyCiByZXBvcnRfYnVnKzB4Mjg5 LzB4MzAwIGxpYi9idWcuYzoxOTUKIGZpeHVwX2J1ZyBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzox NzQgW2lubGluZV0KIGZpeHVwX2J1ZyBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzoxNjkgW2lubGlu ZV0KIGRvX2Vycm9yX3RyYXArMHgxMWIvMHgyMDAgYXJjaC94ODYva2VybmVsL3RyYXBzLmM6MjY3 CiBkb19pbnZhbGlkX29wKzB4MzcvMHg1MCBhcmNoL3g4Ni9rZXJuZWwvdHJhcHMuYzoyODYKIGlu dmFsaWRfb3ArMHgyMy8weDMwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6MTAyNwpSSVA6IDAw MTA6cmVmY291bnRfd2Fybl9zYXR1cmF0ZSsweDEzOC8weDFmMCBsaWIvcmVmY291bnQuYzoyMgpD b2RlOiAwNiAzMSBmZiA4OSBkZSBlOCBjOCBmNSBlNiBmZCA4NCBkYiAwZiA4NSA2ZiBmZiBmZiBm ZiBlOCA3YiBmNCBlNiBmZCA0OCBjNyBjNyBlMCA3MSA0ZiA4OCBjNiAwNSA1NiBhNiBhNCAwNiAw MSBlOCBjNyBhOCBiNyBmZCA8MGY+IDBiIGU5IDUwIGZmIGZmIGZmIGU4IDVjIGY0IGU2IGZkIDBm IGI2IDFkIDNkIGE2IGE0IDA2IDMxIGZmIDg5ClJTUDogMDAxODpmZmZmODg4MDk2ODlmNTUwIEVG TEFHUzogMDAwMTAyODYKUkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAwMDAw MCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogZmZmZmZm ZmY4MTVlNDMzNiBSREk6IGZmZmZlZDEwMTJkMTNlOWMKUkJQOiBmZmZmODg4MDk2ODlmNTYwIFIw ODogZmZmZjg4ODA5YzUwYTNjMCBSMDk6IGZmZmZmYmZmZjE1ZDMxYjEKUjEwOiBmZmZmZmJmZmYx NWQzMWIwIFIxMTogZmZmZmZmZmY4YWU5OGQ4NyBSMTI6IDAwMDAwMDAwMDAwMDAwMDEKUjEzOiAw MDAwMDAwMDAwMDQwMTAwIFIxNDogZmZmZjg4ODA5OTA0MTEwNCBSMTU6IGZmZmY4ODgyMThkOTZl NDAKIHJlZmNvdW50X2FkZCBpbmNsdWRlL2xpbnV4L3JlZmNvdW50Lmg6MTkzIFtpbmxpbmVdCiBz a2Jfc2V0X293bmVyX3crMHgyYjYvMHg0MTAgbmV0L2NvcmUvc29jay5jOjE5OTkKIHNvY2tfd21h bGxvYysweGYxLzB4MTIwIG5ldC9jb3JlL3NvY2suYzoyMDk2CiBpcF9hcHBlbmRfcGFnZSsweDdl Zi8weDExOTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MTM4MwogdWRwX3NlbmRwYWdlKzB4MWM3LzB4 NDgwIG5ldC9pcHY0L3VkcC5jOjEyNzYKIGluZXRfc2VuZHBhZ2UrMHhkYi8weDE1MCBuZXQvaXB2 NC9hZl9pbmV0LmM6ODIxCiBrZXJuZWxfc2VuZHBhZ2UrMHg5Mi8weGYwIG5ldC9zb2NrZXQuYzoz Nzk0CiBzb2NrX3NlbmRwYWdlKzB4OGIvMHhjMCBuZXQvc29ja2V0LmM6OTM2CiBwaXBlX3RvX3Nl bmRwYWdlKzB4MmRhLzB4M2MwIGZzL3NwbGljZS5jOjQ1OAogc3BsaWNlX2Zyb21fcGlwZV9mZWVk IGZzL3NwbGljZS5jOjUxMiBbaW5saW5lXQogX19zcGxpY2VfZnJvbV9waXBlKzB4M2VlLzB4N2Mw IGZzL3NwbGljZS5jOjYzNgogc3BsaWNlX2Zyb21fcGlwZSsweDEwOC8weDE3MCBmcy9zcGxpY2Uu Yzo2NzEKIGdlbmVyaWNfc3BsaWNlX3NlbmRwYWdlKzB4M2MvMHg1MCBmcy9zcGxpY2UuYzo4NDIK IGRvX3NwbGljZV9mcm9tIGZzL3NwbGljZS5jOjg2MSBbaW5saW5lXQogZGlyZWN0X3NwbGljZV9h Y3RvcisweDEyMy8weDE5MCBmcy9zcGxpY2UuYzoxMDM1CiBzcGxpY2VfZGlyZWN0X3RvX2FjdG9y KzB4M2I0LzB4YTMwIGZzL3NwbGljZS5jOjk5MAogZG9fc3BsaWNlX2RpcmVjdCsweDFkYS8weDJh MCBmcy9zcGxpY2UuYzoxMDc4CiBkb19zZW5kZmlsZSsweDU5Ny8weGQwMCBmcy9yZWFkX3dyaXRl LmM6MTQ2NAogX19kb19zeXNfc2VuZGZpbGU2NCBmcy9yZWFkX3dyaXRlLmM6MTUyNSBbaW5saW5l XQogX19zZV9zeXNfc2VuZGZpbGU2NCBmcy9yZWFkX3dyaXRlLmM6MTUxMSBbaW5saW5lXQogX194 NjRfc3lzX3NlbmRmaWxlNjQrMHgxZGQvMHgyMjAgZnMvcmVhZF93cml0ZS5jOjE1MTEKIGRvX3N5 c2NhbGxfNjQrMHhmYS8weDc5MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTQKIGVudHJ5X1NZ U0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKUklQOiAwMDMzOjB4NDQxNDA5CkNvZGU6 IGU4IGFjIGU4IGZmIGZmIDQ4IDgzIGM0IDE4IGMzIDBmIDFmIDgwIDAwIDAwIDAwIDAwIDQ4IDg5 IGY4IDQ4IDg5IGY3IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRjIDhiIDRj IDI0IDA4IDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgMGYgODMgZWIgMDggZmMgZmYgYzMgNjYg MmUgMGYgMWYgODQgMDAgMDAgMDAgMDAKUlNQOiAwMDJiOjAwMDA3ZmZmYjY0YzRmNzggRUZMQUdT OiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyOApSQVg6IGZmZmZmZmZmZmZmZmZm ZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMDAwMDQ0MTQwOQpSRFg6IDAwMDAw MDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAwMDAwMDA2IFJESTogMDAwMDAwMDAwMDAwMDAwNQpS QlA6IDAwMDAwMDAwMDAwNzNiOGEgUjA4OiAwMDAwMDAwMDAwMDAwMDEwIFIwOTogMDAwMDAwMDAw MDAwMDAxMApSMTA6IDAwMDAwMDAwMDAwMTAwMDEgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjog MDAwMDAwMDAwMDQwMjE4MApSMTM6IDAwMDAwMDAwMDA0MDIyMTAgUjE0OiAwMDAwMDAwMDAwMDAw MDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApLZXJuZWwgT2Zmc2V0OiBkaXNhYmxlZApSZWJvb3Rp bmcgaW4gODY0MDAgc2Vjb25kcy4uCgpGaXhlczogMTQ3MGRkZjdmOGNlICgiaW5ldDogUmVtb3Zl IGV4cGxpY2l0IHdyaXRlIHJlZmVyZW5jZXMgdG8gc2svaW5ldCBpbiBpcF9hcHBlbmRfZGF0YSIp ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0 ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4 L25ldGRldmljZS5oIHwgIDUgKysrKysKIGluY2x1ZGUvbmV0L2lwLmggICAgICAgICAgfCAgNSAr KysrKwogbmV0L2NvcmUvZGV2LmMgICAgICAgICAgICB8ICAzICsrLQogbmV0L2lwdjQvZGV2aW5l dC5jICAgICAgICB8ICA1IC0tLS0tCiBuZXQvaXB2NC9pcF9vdXRwdXQuYyAgICAgIHwgMTMgKysr KysrKystLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oIGIvaW5jbHVkZS9s aW51eC9uZXRkZXZpY2UuaAppbmRleCBjMjBmMTkwYjRjMTguLjc2ZDk1MmFlYjBmYyAxMDA2NDQK LS0tIGEvaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L25ldGRl dmljZS5oCkBAIC0xODY3LDYgKzE4NjcsMTEgQEAgc3RydWN0IG5ldF9kZXZpY2UgewogCXVuc2ln bmVkIGNoYXIJCWlmX3BvcnQ7CiAJdW5zaWduZWQgY2hhcgkJZG1hOwogCisJLyogTm90ZSA6IGRl di0+bXR1IGlzIG9mdGVuIHJlYWQgd2l0aG91dCBob2xkaW5nIGEgbG9jay4KKwkgKiBXcml0ZXJz IHVzdWFsbHkgaG9sZCBSVE5MLgorCSAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBSRUFEX09O Q0UoKSB0byBhbm5vdGF0ZSB0aGUgcmVhZHMsCisJICogYW5kIHRvIHVzZSBXUklURV9PTkNFKCkg dG8gYW5ub3RhdGUgdGhlIHdyaXRlcy4KKwkgKi8KIAl1bnNpZ25lZCBpbnQJCW10dTsKIAl1bnNp Z25lZCBpbnQJCW1pbl9tdHU7CiAJdW5zaWduZWQgaW50CQltYXhfbXR1OwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvaXAuaCBiL2luY2x1ZGUvbmV0L2lwLmgKaW5kZXggYTJjNjFjMzZkYzRhLi40 YjE1Y2MxYzIyNGMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwLmgKKysrIGIvaW5jbHVkZS9u ZXQvaXAuaApAQCAtNzYwLDQgKzc2MCw5IEBAIGludCBpcF9taXNjX3Byb2NfaW5pdCh2b2lkKTsK IGludCBydG1fZ2V0cm91dGVfcGFyc2VfaXBfcHJvdG8oc3RydWN0IG5sYXR0ciAqYXR0ciwgdTgg KmlwX3Byb3RvLCB1OCBmYW1pbHksCiAJCQkJc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNr KTsKIAorc3RhdGljIGlubGluZSBib29sIGluZXRkZXZfdmFsaWRfbXR1KHVuc2lnbmVkIGludCBt dHUpCit7CisJcmV0dXJuIGxpa2VseShtdHUgPj0gSVBWNF9NSU5fTVRVKTsKK30KKwogI2VuZGlm CS8qIF9JUF9IICovCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5j CmluZGV4IDk5YWM4NGZmMzk4Zi4uMDQ2MzA3NDQ1ZWNlIDEwMDY0NAotLS0gYS9uZXQvY29yZS9k ZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtNzk2Nyw3ICs3OTY3LDggQEAgaW50IF9fZGV2 X3NldF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IG5ld19tdHUpCiAJaWYgKG9wcy0+ bmRvX2NoYW5nZV9tdHUpCiAJCXJldHVybiBvcHMtPm5kb19jaGFuZ2VfbXR1KGRldiwgbmV3X210 dSk7CiAKLQlkZXYtPm10dSA9IG5ld19tdHU7CisJLyogUGFpcnMgd2l0aCBhbGwgdGhlIGxvY2ts ZXNzIHJlYWRzIG9mIGRldi0+bXR1IGluIHRoZSBzdGFjayAqLworCVdSSVRFX09OQ0UoZGV2LT5t dHUsIG5ld19tdHUpOwogCXJldHVybiAwOwogfQogRVhQT1JUX1NZTUJPTChfX2Rldl9zZXRfbXR1 KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2RldmluZXQuYyBiL25ldC9pcHY0L2RldmluZXQuYwpp bmRleCBhNGI1YmQ0ZDJjODkuLmU0NjMyYmQyMDI2ZCAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvZGV2 aW5ldC5jCisrKyBiL25ldC9pcHY0L2RldmluZXQuYwpAQCAtMTQ5NiwxMSArMTQ5Niw2IEBAIHN0 YXRpYyB2b2lkIGluZXRkZXZfY2hhbmdlbmFtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1 Y3QgaW5fZGV2aWNlICppbl9kZXYpCiAJfQogfQogCi1zdGF0aWMgYm9vbCBpbmV0ZGV2X3ZhbGlk X210dSh1bnNpZ25lZCBpbnQgbXR1KQotewotCXJldHVybiBtdHUgPj0gSVBWNF9NSU5fTVRVOwot fQotCiBzdGF0aWMgdm9pZCBpbmV0ZGV2X3NlbmRfZ3JhdHVpdG91c19hcnAoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAkJCQkJc3RydWN0IGluX2RldmljZSAqaW5fZGV2KQogCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pcF9vdXRwdXQuYyBiL25ldC9pcHY0L2lwX291dHB1dC5jCmluZGV4IDNkOGJh YWFmNzA4Ni4uYjI2OGVlMWMxYjQ0IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9vdXRwdXQuYwor KysgYi9uZXQvaXB2NC9pcF9vdXRwdXQuYwpAQCAtMTI1OCwxNSArMTI1OCwxOCBAQCBzdGF0aWMg aW50IGlwX3NldHVwX2Nvcmsoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9jb3JrICpjb3Jr LAogCQljb3JrLT5hZGRyID0gaXBjLT5hZGRyOwogCX0KIAotCS8qCi0JICogV2Ugc3RlYWwgcmVm ZXJlbmNlIHRvIHRoaXMgcm91dGUsIGNhbGxlciBzaG91bGQgbm90IHJlbGVhc2UgaXQKLQkgKi8K LQkqcnRwID0gTlVMTDsKIAljb3JrLT5mcmFnc2l6ZSA9IGlwX3NrX3VzZV9wbXR1KHNrKSA/Ci0J CQkgZHN0X210dSgmcnQtPmRzdCkgOiBydC0+ZHN0LmRldi0+bXR1OworCQkJIGRzdF9tdHUoJnJ0 LT5kc3QpIDogUkVBRF9PTkNFKHJ0LT5kc3QuZGV2LT5tdHUpOworCisJaWYgKCFpbmV0ZGV2X3Zh bGlkX210dShjb3JrLT5mcmFnc2l6ZSkpCisJCXJldHVybiAtRU5FVFVOUkVBQ0g7CiAKIAljb3Jr LT5nc29fc2l6ZSA9IGlwYy0+Z3NvX3NpemU7CisKIAljb3JrLT5kc3QgPSAmcnQtPmRzdDsKKwkv KiBXZSBzdG9sZSB0aGlzIHJvdXRlLCBjYWxsZXIgc2hvdWxkIG5vdCByZWxlYXNlIGl0LiAqLwor CSpydHAgPSBOVUxMOworCiAJY29yay0+bGVuZ3RoID0gMDsKIAljb3JrLT50dGwgPSBpcGMtPnR0 bDsKIAljb3JrLT50b3MgPSBpcGMtPnRvczsKLS0gCjIuMjAuMQoKCkZyb20gMjA1OGI4ODZiZTBi ZWE4N2M2MDFmM2MyMTkyMTU3OTM2YzkzZGQzNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogVmxhZHlzbGF2IFRhcmFzaXVrIDx2bGFkeXNsYXZ0QG1lbGxhbm94LmNvbT4KRGF0ZTogRnJp LCA2IERlYyAyMDE5IDEzOjUxOjA1ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMi8zOF0gbXFwcmlv OiBGaXggb3V0LW9mLWJvdW5kcyBhY2Nlc3MgaW4gbXFwcmlvX2R1bXAKClsgVXBzdHJlYW0gY29t bWl0IDlmMTA0Yzc3MzY5MDRhYzcyMzg1YmJiNDg2NjllMGM5MjNjYTg3OWIgXQoKV2hlbiB1c2Vy IHJ1bnMgYSBjb21tYW5kIGxpa2UKdGMgcWRpc2MgYWRkIGRldiBldGgxIHJvb3QgbXFwcmlvCktB U0FOIHN0YWNrLW91dC1vZi1ib3VuZHMgd2FybmluZyBpcyBlbWl0dGVkLgpDdXJyZW50bHksIE5M QV9BTElHTiBtYWNybyB1c2VkIGluIG1xcHJpb19kdW1wIHByb3ZpZGVzIHRvbyBsYXJnZQpidWZm ZXIgc2l6ZSBhcyBhcmd1bWVudCBmb3IgbmxhX3B1dCBhbmQgbWVtY3B5IGRvd24gdGhlIGNhbGwg c3RhY2suClRoZSBmbG93IGxvb2tzIGxpa2UgdGhpczoKMS4gbmxhX3B1dCBleHBlY3RzIGV4YWN0 IG9iamVjdCBzaXplIGFzIGFuIGFyZ3VtZW50OwoyLiBMYXRlciBpdCBwcm92aWRlcyB0aGlzIHNp emUgdG8gbWVtY3B5OwozLiBUbyBjYWxjdWxhdGUgY29ycmVjdCBwYWRkaW5nIGZvciBTS0IsIG5s YV9wdXQgYXBwbGllcyBOTEFfQUxJR04KICAgbWFjcm8gaXRzZWxmLgoKVGhlcmVmb3JlLCBOTEFf QUxJR04gc2hvdWxkIG5vdCBiZSBhcHBsaWVkIHRvIHRoZSBubGFfcHV0IHBhcmFtZXRlci4KT3Ro ZXJ3aXNlIGl0IHdpbGwgbGVhZCB0byBvdXQtb2YtYm91bmRzIG1lbW9yeSBhY2Nlc3MgaW4gbWVt Y3B5LgoKRml4ZXM6IDRlOGI4NmMwNjI2OSAoIm1xcHJpbzogSW50cm9kdWNlIG5ldyBoYXJkd2Fy ZSBvZmZsb2FkIG1vZGUgYW5kIHNoYXBlciBpbiBtcXByaW8iKQpTaWduZWQtb2ZmLWJ5OiBWbGFk eXNsYXYgVGFyYXNpdWsgPHZsYWR5c2xhdnRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9t cXByaW8uYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfbXFwcmlvLmMgYi9uZXQvc2NoZWQvc2No X21xcHJpby5jCmluZGV4IDBkMDExM2EyNDk2Mi4uN2I2N2U0ZDhlNDQ4IDEwMDY0NAotLS0gYS9u ZXQvc2NoZWQvc2NoX21xcHJpby5jCisrKyBiL25ldC9zY2hlZC9zY2hfbXFwcmlvLmMKQEAgLTQz Myw3ICs0MzMsNyBAQCBzdGF0aWMgaW50IG1xcHJpb19kdW1wKHN0cnVjdCBRZGlzYyAqc2NoLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQlvcHQub2Zmc2V0W3RjXSA9IGRldi0+dGNfdG9fdHhxW3Rj XS5vZmZzZXQ7CiAJfQogCi0JaWYgKG5sYV9wdXQoc2tiLCBUQ0FfT1BUSU9OUywgTkxBX0FMSUdO KHNpemVvZihvcHQpKSwgJm9wdCkpCisJaWYgKG5sYV9wdXQoc2tiLCBUQ0FfT1BUSU9OUywgc2l6 ZW9mKG9wdCksICZvcHQpKQogCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsKIAogCWlmICgocHJpdi0+ ZmxhZ3MgJiBUQ19NUVBSSU9fRl9NT0RFKSAmJgotLSAKMi4yMC4xCgoKRnJvbSA1NDFjMDYwYjg1 YTdkZmVlYTg4NjQ1NzhjMTMxMGE2MzlkNTQ5ZWVhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBOaWtvbGF5IEFsZWtzYW5kcm92IDxuaWtvbGF5QGN1bXVsdXNuZXR3b3Jrcy5jb20+CkRh dGU6IFR1ZSwgMyBEZWMgMjAxOSAxNjo0ODowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMzhd IG5ldDogYnJpZGdlOiBkZW55IGRldl9zZXRfbWFjX2FkZHJlc3MoKSB3aGVuCiB1bnJlZ2lzdGVy aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBjNGI0YzQyMTg1N2RjN2IxY2YwZGNjYmQ3Mzg0NzIzNjBm ZjJjZDcwIF0KCldlIGhhdmUgYW4gaW50ZXJlc3RpbmcgbWVtb3J5IGxlYWsgaW4gdGhlIGJyaWRn ZSB3aGVuIGl0IGlzIGJlaW5nCnVucmVnaXN0ZXJlZCBhbmQgaXMgYSBzbGF2ZSB0byBhIG1hc3Rl ciBkZXZpY2Ugd2hpY2ggd291bGQgY2hhbmdlIHRoZQptYWMgb2YgaXRzIHNsYXZlcyBvbiB1bnJl Z2lzdGVyIChlLmcuIGJvbmQsIHRlYW0pLiBUaGlzIGlzIGEgdmVyeQp1bnVzdWFsIHNldHVwIGJ1 dCB3ZSBkbyBlbmQgdXAgbGVha2luZyAxIGZkYiBlbnRyeSBiZWNhdXNlCmRldl9zZXRfbWFjX2Fk ZHJlc3MoKSB3b3VsZCBjYXVzZSB0aGUgYnJpZGdlIHRvIGluc2VydCB0aGUgbmV3IG1hYyBhZGRy ZXNzCmludG8gaXRzIHRhYmxlIGFmdGVyIGFsbCBmZGJzIGFyZSBmbHVzaGVkLCBpLmUuIGFmdGVy IGRlbGxpbmsoKSBvbiB0aGUKYnJpZGdlIGhhcyBmaW5pc2hlZCBhbmQgd2UgY2FsbCBORVRERVZf VU5SRUdJU1RFUiB0aGUgYm9uZC90ZWFtIHdvdWxkCnJlbGVhc2UgaXQgYW5kIHdpbGwgY2FsbCBk ZXZfc2V0X21hY19hZGRyZXNzKCkgdG8gcmVzdG9yZSBpdHMgb3JpZ2luYWwKYWRkcmVzcyBhbmQg dGhhdCBpbiB0dXJuIHdpbGwgYWRkIGFuIGZkYiBpbiB0aGUgYnJpZGdlLgpPbmUgZml4IGlzIHRv IGNoZWNrIGZvciB0aGUgYnJpZGdlIGRldidzIHJlZ19zdGF0ZSBpbiBpdHMKbmRvX3NldF9tYWNf YWRkcmVzcyBjYWxsYmFjayBhbmQgcmV0dXJuIGFuIGVycm9yIGlmIHRoZSBicmlkZ2UgaXMgbm90 IGluCk5FVFJFR19SRUdJU1RFUkVELgoKRWFzeSBzdGVwcyB0byByZXByb2R1Y2U6CiAxLiBhZGQg Ym9uZCBpbiBtb2RlICE9IEEvQgogMi4gYWRkIGFueSBzbGF2ZSB0byB0aGUgYm9uZAogMy4gYWRk IGJyaWRnZSBkZXYgYXMgYSBzbGF2ZSB0byB0aGUgYm9uZAogNC4gZGVzdHJveSB0aGUgYnJpZGdl IGRldmljZQoKVHJhY2U6CiB1bnJlZmVyZW5jZWQgb2JqZWN0IDB4ZmZmZjg4ODAzNWM0ZDA4MCAo c2l6ZSAxMjgpOgogICBjb21tICJpcCIsIHBpZCA0MDY4LCBqaWZmaWVzIDQyOTYyMDk0MjkgKGFn ZSAxNDEzLjc1M3MpCiAgIGhleCBkdW1wIChmaXJzdCAzMiBieXRlcyk6CiAgICAgNDEgMWQgYzkg MzYgODAgODggZmYgZmYgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIEEuLjYuLi4uLi4uLi4uLi4K ICAgICBkMiAxOSBjOSA1ZSAzZiBkNyAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4u Xj8uLi4uLi4uLi4uLgogICBiYWNrdHJhY2U6CiAgICAgWzwwMDAwMDAwMGRkYjUyNWRjPl0ga21l bV9jYWNoZV9hbGxvYysweDE1NS8weDI2ZgogICAgIFs8MDAwMDAwMDA2MzNmZjFlMD5dIGZkYl9j cmVhdGUrMHgyMS8weDQ4NiBbYnJpZGdlXQogICAgIFs8MDAwMDAwMDA5MmIxN2U5Yz5dIGZkYl9p bnNlcnQrMHg5MS8weGRjIFticmlkZ2VdCiAgICAgWzwwMDAwMDAwMGYyYTBmMGZmPl0gYnJfZmRi X2NoYW5nZV9tYWNfYWRkcmVzcysweGIzLzB4MTc1IFticmlkZ2VdCiAgICAgWzwwMDAwMDAwMDFk ZTAyZGJkPl0gYnJfc3RwX2NoYW5nZV9icmlkZ2VfaWQrMHhmLzB4ZmYgW2JyaWRnZV0KICAgICBb PDAwMDAwMDAwYWMwZTMyYjE+XSBicl9zZXRfbWFjX2FkZHJlc3MrMHg3Ni8weDk5IFticmlkZ2Vd CiAgICAgWzwwMDAwMDAwMDY4NDZhNzdmPl0gZGV2X3NldF9tYWNfYWRkcmVzcysweDYzLzB4OWIK ICAgICBbPDAwMDAwMDAwZDMwNzM4ZmM+XSBfX2JvbmRfcmVsZWFzZV9vbmUrMHgzZjYvMHg0NTUg W2JvbmRpbmddCiAgICAgWzwwMDAwMDAwMGZjN2VjMDFkPl0gYm9uZF9uZXRkZXZfZXZlbnQrMHgy ZjIvMHg0MDAgW2JvbmRpbmddCiAgICAgWzwwMDAwMDAwMDMwNWQ3Nzk1Pl0gbm90aWZpZXJfY2Fs bF9jaGFpbisweDM4LzB4NTYKICAgICBbPDAwMDAwMDAwMjg4ODVkNGE+XSBjYWxsX25ldGRldmlj ZV9ub3RpZmllcnMrMHgxZS8weDIzCiAgICAgWzwwMDAwMDAwMDgyNzk0NzdiPl0gcm9sbGJhY2tf cmVnaXN0ZXJlZF9tYW55KzB4MzUzLzB4NmE0CiAgICAgWzwwMDAwMDAwMDE4ZWY3NTNhPl0gdW5y ZWdpc3Rlcl9uZXRkZXZpY2VfbWFueSsweDE3LzB4NmYKICAgICBbPDAwMDAwMDAwYmE4NTRiN2E+ XSBydG5sX2RlbGV0ZV9saW5rKzB4M2MvMHg0MwogICAgIFs8MDAwMDAwMDBhZGY4NjE4ZD5dIHJ0 bmxfZGVsbGluaysweDFkYy8weDIwYQogICAgIFs8MDAwMDAwMDA5YjYzOTVmZD5dIHJ0bmV0bGlu a19yY3ZfbXNnKzB4MjNkLzB4MjY4CgpGaXhlczogNDM1OTg4MTMzODZmICgiYnJpZGdlOiBhZGQg bG9jYWwgTUFDIGFkZHJlc3MgdG8gZm9yd2FyZGluZyB0YWJsZSAodjIpIikKUmVwb3J0ZWQtYnk6 IHN5emJvdCsyYWRkOTFjMDhlYjE4MWZlYTFiZkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNp Z25lZC1vZmYtYnk6IE5pa29sYXkgQWxla3NhbmRyb3YgPG5pa29sYXlAY3VtdWx1c25ldHdvcmtz LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9icmlkZ2UvYnJfZGV2aWNlLmMgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9icmlkZ2UvYnJfZGV2aWNlLmMgYi9u ZXQvYnJpZGdlL2JyX2RldmljZS5jCmluZGV4IGU4MDRhMzAxNjkwMi4uMDIyZGM2ZTUwNGM0IDEw MDY0NAotLS0gYS9uZXQvYnJpZGdlL2JyX2RldmljZS5jCisrKyBiL25ldC9icmlkZ2UvYnJfZGV2 aWNlLmMKQEAgLTI0NSw2ICsyNDUsMTIgQEAgc3RhdGljIGludCBicl9zZXRfbWFjX2FkZHJlc3Mo c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqcCkKIAlpZiAoIWlzX3ZhbGlkX2V0aGVyX2Fk ZHIoYWRkci0+c2FfZGF0YSkpCiAJCXJldHVybiAtRUFERFJOT1RBVkFJTDsKIAorCS8qIGRldl9z ZXRfbWFjX2FkZHIoKSBjYW4gYmUgY2FsbGVkIGJ5IGEgbWFzdGVyIGRldmljZSBvbiBicmlkZ2Un cworCSAqIE5FVERFVl9VTlJFR0lTVEVSLCBidXQgc2luY2UgaXQncyBiZWluZyBkZXN0cm95ZWQg ZG8gbm90aGluZworCSAqLworCWlmIChkZXYtPnJlZ19zdGF0ZSAhPSBORVRSRUdfUkVHSVNURVJF RCkKKwkJcmV0dXJuIC1FQlVTWTsKKwogCXNwaW5fbG9ja19iaCgmYnItPmxvY2spOwogCWlmICgh ZXRoZXJfYWRkcl9lcXVhbChkZXYtPmRldl9hZGRyLCBhZGRyLT5zYV9kYXRhKSkgewogCQkvKiBN YWMgYWRkcmVzcyB3aWxsIGJlIGNoYW5nZWQgaW4gYnJfc3RwX2NoYW5nZV9icmlkZ2VfaWQoKS4g Ki8KLS0gCjIuMjAuMQoKCkZyb20gNTE2OTc0NzQwODJjZTQ3MWQ0ZjRlYWZiMjBkYzU4NjkzZTI4 NGQ2YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWxleGFuZGVyIExvYmFraW4gPGFs b2Jha2luQGRsaW5rLnJ1PgpEYXRlOiBUaHUsIDUgRGVjIDIwMTkgMTM6MDI6MzUgKzAzMDAKU3Vi amVjdDogW1BBVENIIDA0LzM4XSBuZXQ6IGRzYTogZml4IGZsb3cgZGlzc2VjdGlvbiBvbiBUeCBw YXRoCgpbIFVwc3RyZWFtIGNvbW1pdCA4YmVmMGFmMDlhNTQxNWRmNzYxYjA0ZmE0ODdhNmMzNGFj YWU3NGJjIF0KCkNvbW1pdCA0M2U2NjUyODdmOTMgKCJuZXQtbmV4dDogZHNhOiBmaXggZmxvdyBk aXNzZWN0aW9uIikgYWRkZWQgYW4KYWJpbGl0eSB0byBvdmVycmlkZSBwcm90b2NvbCBhbmQgbmV0 d29yayBvZmZzZXQgZHVyaW5nIGZsb3cgZGlzc2VjdGlvbgpmb3IgRFNBLWVuYWJsZWQgZGV2aWNl cyAoaS5lLiBjb250cm9sbGVycyBzaGlwcGVkIGFzIHN3aXRjaCBDUFUgcG9ydHMpCmluIG9yZGVy IHRvIGZpeCBza2IgaGFzaGluZyBmb3IgUlBTIG9uIFJ4IHBhdGguCgpIb3dldmVyLCBza2JfaGFz aCgpIGFuZCBhZGRlZCBwYXJ0IG9mIGNvZGUgY2FuIGJlIGludm9rZWQgbm90IG9ubHkgb24KUngs IGJ1dCBhbHNvIG9uIFR4IHBhdGggaWYgd2UgaGF2ZSBhIG11bHRpLXF1ZXVlZCBkZXZpY2UgYW5k OgogLSBrZXJuZWwgaXMgcnVubmluZyBvbiBVUCBzeXN0ZW0gb3IKIC0gWFBTIGlzIG5vdCBjb25m aWd1cmVkLgoKVGhlIGNhbGwgc3RhY2sgaW4gdGhpcyB0d28gY2FzZXMgd2lsbCBiZSBsaWtlOiBk ZXZfcXVldWVfeG1pdCgpIC0+Cl9fZGV2X3F1ZXVlX3htaXQoKSAtPiBuZXRkZXZfY29yZV9waWNr X3R4KCkgLT4gbmV0ZGV2X3BpY2tfdHgoKSAtPgpza2JfdHhfaGFzaCgpIC0+IHNrYl9nZXRfaGFz aCgpLgoKVGhlIHByb2JsZW0gaXMgdGhhdCBza2JzIHF1ZXVlZCBmb3IgVHggaGF2ZSBib3RoIG5l dHdvcmsgb2Zmc2V0IGFuZApjb3JyZWN0IHByb3RvY29sIGFscmVhZHkgc2V0IHVwIGV2ZW4gYWZ0 ZXIgaW5zZXJ0aW5nIGEgQ1BVIHRhZyBieSBEU0EKdGFnZ2VyLCBzbyBjYWxsaW5nIHRhZ19vcHMt PmZsb3dfZGlzc2VjdCgpIG9uIHRoaXMgcGF0aCBhY3R1YWxseSBvbmx5CmJyZWFrcyBmbG93IGRp c3NlY3Rpb24gYW5kIGhhc2hpbmcuCgpUaGlzIGNhbiBiZSBvYnNlcnZlZCBieSBhZGRpbmcgZGVi dWcgcHJpbnRzIGp1c3QgYmVmb3JlIGFuZCByaWdodCBhZnRlcgp0YWdfb3BzLT5mbG93X2Rpc3Nl Y3QoKSBjYWxsIHRvIHRoZSByZWxhdGVkIGJsb2NrIG9mIGNvZGU6CgpCZWZvcmUgdGhlIHBhdGNo OgoKUnggcGF0aCAoUlBTKToKClsgICAxOS4yNDAwMDFdIFJ4OiBwcm90bzogMHgwMGY4LCBuaG9m ZjogMAkvKiBFVEhfUF9YRFNBICovClsgICAxOS4yNDQyNzFdIHRhZ19vcHMtPmZsb3dfZGlzc2Vj dCgpClsgICAxOS4yNDc4MTFdIFJ4OiBwcm90bzogMHgwODAwLCBuaG9mZjogOAkvKiBFVEhfUF9J UCAqLwoKWyAgIDE5LjIxNTQzNV0gUng6IHByb3RvOiAweDAwZjgsIG5ob2ZmOiAwCS8qIEVUSF9Q X1hEU0EgKi8KWyAgIDE5LjIxOTc0Nl0gdGFnX29wcy0+Zmxvd19kaXNzZWN0KCkKWyAgIDE5LjIy MzI0MV0gUng6IHByb3RvOiAweDA4MDYsIG5ob2ZmOiA4CS8qIEVUSF9QX0FSUCAqLwoKWyAgIDE4 LjY1NDA1N10gUng6IHByb3RvOiAweDAwZjgsIG5ob2ZmOiAwCS8qIEVUSF9QX1hEU0EgKi8KWyAg IDE4LjY1ODMzMl0gdGFnX29wcy0+Zmxvd19kaXNzZWN0KCkKWyAgIDE4LjY2MTgyNl0gUng6IHBy b3RvOiAweDgxMDAsIG5ob2ZmOiA4CS8qIEVUSF9QXzgwMjFRICovCgpUeCBwYXRoIChVUCBzeXN0 ZW0pOgoKWyAgIDE4Ljc1OTU2MF0gVHg6IHByb3RvOiAweDA4MDAsIG5ob2ZmOiAyNgkvKiBFVEhf UF9JUCAqLwpbICAgMTguNzYzOTMzXSB0YWdfb3BzLT5mbG93X2Rpc3NlY3QoKQpbICAgMTguNzY3 NDg1XSBUeDogcHJvdG86IDB4OTIwYiwgbmhvZmY6IDM0CS8qIGp1bmsgKi8KClsgICAyMi44MDAw MjBdIFR4OiBwcm90bzogMHgwODA2LCBuaG9mZjogMjYJLyogRVRIX1BfQVJQICovClsgICAyMi44 MDQzOTJdIHRhZ19vcHMtPmZsb3dfZGlzc2VjdCgpClsgICAyMi44MDc5MjFdIFR4OiBwcm90bzog MHg5MjBiLCBuaG9mZjogMzQJLyoganVuayAqLwoKWyAgIDE2Ljg5ODM0Ml0gVHg6IHByb3RvOiAw eDg2ZGQsIG5ob2ZmOiAyNgkvKiBFVEhfUF9JUFY2ICovClsgICAxNi45MDI3MDVdIHRhZ19vcHMt PmZsb3dfZGlzc2VjdCgpClsgICAxNi45MDYyMjddIFR4OiBwcm90bzogMHg5MjBiLCBuaG9mZjog MzQJLyoganVuayAqLwoKQWZ0ZXI6CgpSeCBwYXRoIChSUFMpOgoKWyAgIDE2LjUyMDk5M10gUng6 IHByb3RvOiAweDAwZjgsIG5ob2ZmOiAwCS8qIEVUSF9QX1hEU0EgKi8KWyAgIDE2LjUyNTI2MF0g dGFnX29wcy0+Zmxvd19kaXNzZWN0KCkKWyAgIDE2LjUyODgwOF0gUng6IHByb3RvOiAweDA4MDAs IG5ob2ZmOiA4CS8qIEVUSF9QX0lQICovCgpbICAgMTUuNDg0ODA3XSBSeDogcHJvdG86IDB4MDBm OCwgbmhvZmY6IDAJLyogRVRIX1BfWERTQSAqLwpbICAgMTUuNDkwNDE3XSB0YWdfb3BzLT5mbG93 X2Rpc3NlY3QoKQpbICAgMTUuNDk1MjIzXSBSeDogcHJvdG86IDB4MDgwNiwgbmhvZmY6IDgJLyog RVRIX1BfQVJQICovCgpbICAgMTcuMTM0NjIxXSBSeDogcHJvdG86IDB4MDBmOCwgbmhvZmY6IDAJ LyogRVRIX1BfWERTQSAqLwpbICAgMTcuMTM4ODk1XSB0YWdfb3BzLT5mbG93X2Rpc3NlY3QoKQpb ICAgMTcuMTQyMzg4XSBSeDogcHJvdG86IDB4ODEwMCwgbmhvZmY6IDgJLyogRVRIX1BfODAyMVEg Ki8KClR4IHBhdGggKFVQIHN5c3RlbSk6CgpbICAgMTUuNDk5NTU4XSBUeDogcHJvdG86IDB4MDgw MCwgbmhvZmY6IDI2CS8qIEVUSF9QX0lQICovCgpbICAgMjAuNjY0Njg5XSBUeDogcHJvdG86IDB4 MDgwNiwgbmhvZmY6IDI2CS8qIEVUSF9QX0FSUCAqLwoKWyAgIDE4LjU2NTc4Ml0gVHg6IHByb3Rv OiAweDg2ZGQsIG5ob2ZmOiAyNgkvKiBFVEhfUF9JUFY2ICovCgpJbiBvcmRlciB0byBmaXggdGhh dCB3ZSBjYW4gYWRkIHRoZSBjaGVjayAncHJvdG8gPT0gaHRvbnMoRVRIX1BfWERTQSknCnRvIHBy ZXZlbnQgY29kZSBmcm9tIGNhbGxpbmcgdGFnX29wcy0+Zmxvd19kaXNzZWN0KCkgb24gVHguCkkg YWxzbyBkZWNpZGVkIHRvIGluaXRpYWxpemUgJ29mZnNldCcgdmFyaWFibGUgc28gdGFnZ2VyIGNh bGxiYWNrcyBjYW4Kbm93IHNhZmVseSBsZWF2ZSBpdCB1bnRvdWNoZWQgd2l0aG91dCBwcm92b2tp bmcgYSBjaGFvcy4KCkZpeGVzOiA0M2U2NjUyODdmOTMgKCJuZXQtbmV4dDogZHNhOiBmaXggZmxv dyBkaXNzZWN0aW9uIikKU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIExvYmFraW4gPGFsb2Jha2lu QGRsaW5rLnJ1PgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFp bC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jIHwgNSArKystLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29y ZS9mbG93X2Rpc3NlY3Rvci5jIGIvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYwppbmRleCA2OGVk YTEwZDA2ODAuLmMyMDZkMWNiNmVjMSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmxvd19kaXNzZWN0 b3IuYworKysgYi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCkBAIC04NzAsOSArODcwLDEwIEBA IGJvb2wgX19za2JfZmxvd19kaXNzZWN0KGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwKIAkJbmhvZmYg PSBza2JfbmV0d29ya19vZmZzZXQoc2tiKTsKIAkJaGxlbiA9IHNrYl9oZWFkbGVuKHNrYik7CiAj aWYgSVNfRU5BQkxFRChDT05GSUdfTkVUX0RTQSkKLQkJaWYgKHVubGlrZWx5KHNrYi0+ZGV2ICYm IG5ldGRldl91c2VzX2RzYShza2ItPmRldikpKSB7CisJCWlmICh1bmxpa2VseShza2ItPmRldiAm JiBuZXRkZXZfdXNlc19kc2Eoc2tiLT5kZXYpICYmCisJCQkgICAgIHByb3RvID09IGh0b25zKEVU SF9QX1hEU0EpKSkgewogCQkJY29uc3Qgc3RydWN0IGRzYV9kZXZpY2Vfb3BzICpvcHM7Ci0JCQlp bnQgb2Zmc2V0OworCQkJaW50IG9mZnNldCA9IDA7CiAKIAkJCW9wcyA9IHNrYi0+ZGV2LT5kc2Ff cHRyLT50YWdfb3BzOwogCQkJaWYgKG9wcy0+Zmxvd19kaXNzZWN0ICYmCi0tIAoyLjIwLjEKCgpG cm9tIGE4NTM3ZDNkYzI4NzQ0YzVmNDFhOTM0YWEzYWY0OTNjMTY3ZDAyOWQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IEdyeWdvcmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0 aS5jb20+CkRhdGU6IEZyaSwgNiBEZWMgMjAxOSAxNDoyODoyMCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDUvMzhdIG5ldDogZXRoZXJuZXQ6IHRpOiBjcHN3OiBmaXggZXh0cmEgcnggaW50ZXJydXB0 CgpbIFVwc3RyZWFtIGNvbW1pdCA1MTMwMmY3N2JlZGFiODc2OGI3NjFlZDE4OTljMDhmODlhZjll NGUyIF0KCk5vdyBSWCBpbnRlcnJ1cHQgaXMgdHJpZ2dlcmVkIHR3aWNlIGV2ZXJ5IHRpbWUsIGJl Y2F1c2UgaW4KY3Bzd19yeF9pbnRlcnJ1cHQoKSBpdCBpcyBhc2tlZCBmaXJzdCBhbmQgdGhlbiBk aXNhYmxlZC4gU28gdGhlcmUgd2lsbCBiZQpwZW5kaW5nIGludGVycnVwdCBhbHdheXMsIHdoZW4g UlggaW50ZXJydXB0IGlzIGVuYWJsZWQgYWdhaW4gaW4gTkFQSQpoYW5kbGVyLgoKRml4IGl0IGJ5 IGZpcnN0IGRpc2FibGluZyBJUlEgYW5kIHRoZW4gZG8gYXNrLgoKRml4ZXM6IDg3MDkxNWZlYWJk YyAoImRyaXZlcnM6IG5ldDogY3BzdzogcmVtb3ZlIGRpc2FibGVfaXJxL2VuYWJsZV9pcnEgYXMg aXJxIGNhbiBiZSBtYXNrZWQgZnJvbSBjcHN3IGl0c2VsZiIpClNpZ25lZC1vZmYtYnk6IEdyeWdv cmlpIFN0cmFzaGtvIDxncnlnb3JpaS5zdHJhc2hrb0B0aS5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC90aS9jcHN3LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMKaW5kZXggZjI5OGQ3MTRlZmQ2Li5kN2E5 NTNjNjQ3YjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC90aS9jcHN3LmMKQEAgLTg5MCw4ICs4OTAsOCBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgY3Bzd19yeF9pbnRlcnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkKQog ewogCXN0cnVjdCBjcHN3X2NvbW1vbiAqY3BzdyA9IGRldl9pZDsKIAotCWNwZG1hX2N0bHJfZW9p KGNwc3ctPmRtYSwgQ1BETUFfRU9JX1JYKTsKIAl3cml0ZWwoMCwgJmNwc3ctPndyX3JlZ3MtPnJ4 X2VuKTsKKwljcGRtYV9jdGxyX2VvaShjcHN3LT5kbWEsIENQRE1BX0VPSV9SWCk7CiAKIAlpZiAo Y3Bzdy0+cXVpcmtfaXJxKSB7CiAJCWRpc2FibGVfaXJxX25vc3luYyhjcHN3LT5pcnFzX3RhYmxl WzBdKTsKLS0gCjIuMjAuMQoKCkZyb20gOWUwNDczNWI4ZmQxYmM5ZGU3M2NhMmU4MDZlN2RjNWRm ZjM3NDYxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRHVzdCBMaSA8ZHVzdC5saUBs aW51eC5hbGliYWJhLmNvbT4KRGF0ZTogVHVlLCAzIERlYyAyMDE5IDExOjE3OjQwICswODAwClN1 YmplY3Q6IFtQQVRDSCAwNi8zOF0gbmV0OiBzY2hlZDogZml4IGR1bXAgcWxlbiBmb3Igc2NoX21x L3NjaF9tcXByaW8gd2l0aAogTk9MT0NLIHN1YnF1ZXVlcwoKWyBVcHN0cmVhbSBjb21taXQgMmYy M2NkNDJlMTljMjJjMjRmZjBlMjIxMDg5YjdiNjEyM2IxMTdjNSBdCgpzY2gtPnEubGVuIGhhc24n dCBiZWVuIHNldCBpZiB0aGUgc3VicXVldWUgaXMgYSBOT0xPQ0sgcWRpc2MKIGluIG1xX2R1bXAo KSBhbmQgbXFwcmlvX2R1bXAoKS4KCkZpeGVzOiBjZTY3OWU4ZGY3ZWQgKCJuZXQ6IHNjaGVkOiBh ZGQgc3VwcG9ydCBmb3IgVENRX0ZfTk9MT0NLIHN1YnF1ZXVlcyB0byBzY2hfbXFwcmlvIikKU2ln bmVkLW9mZi1ieTogRHVzdCBMaSA8ZHVzdC5saUBsaW51eC5hbGliYWJhLmNvbT4KU2lnbmVkLW9m Zi1ieTogVG9ueSBMdSA8dG9ueWx1QGxpbnV4LmFsaWJhYmEuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9t cS5jICAgICB8IDEgKwogbmV0L3NjaGVkL3NjaF9tcXByaW8uYyB8IDEgKwogMiBmaWxlcyBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX21xLmMgYi9u ZXQvc2NoZWQvc2NoX21xLmMKaW5kZXggMjc4YzBiMmRjNTIzLi5lNzlmMWFmZTBjZmQgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9zY2hfbXEuYworKysgYi9uZXQvc2NoZWQvc2NoX21xLmMKQEAgLTE1 Myw2ICsxNTMsNyBAQCBzdGF0aWMgaW50IG1xX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0cnVj dCBza19idWZmICpza2IpCiAJCQlfX2duZXRfc3RhdHNfY29weV9xdWV1ZSgmc2NoLT5xc3RhdHMs CiAJCQkJCQlxZGlzYy0+Y3B1X3FzdGF0cywKIAkJCQkJCSZxZGlzYy0+cXN0YXRzLCBxbGVuKTsK KwkJCXNjaC0+cS5xbGVuCQkrPSBxbGVuOwogCQl9IGVsc2UgewogCQkJc2NoLT5xLnFsZW4JCSs9 IHFkaXNjLT5xLnFsZW47CiAJCQlzY2gtPmJzdGF0cy5ieXRlcwkrPSBxZGlzYy0+YnN0YXRzLmJ5 dGVzOwpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF9tcXByaW8uYyBiL25ldC9zY2hlZC9zY2hf bXFwcmlvLmMKaW5kZXggN2I2N2U0ZDhlNDQ4Li44NzY2YWI1Yjg3ODggMTAwNjQ0Ci0tLSBhL25l dC9zY2hlZC9zY2hfbXFwcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9tcXByaW8uYwpAQCAtNDEx LDYgKzQxMSw3IEBAIHN0YXRpYyBpbnQgbXFwcmlvX2R1bXAoc3RydWN0IFFkaXNjICpzY2gsIHN0 cnVjdCBza19idWZmICpza2IpCiAJCQlfX2duZXRfc3RhdHNfY29weV9xdWV1ZSgmc2NoLT5xc3Rh dHMsCiAJCQkJCQlxZGlzYy0+Y3B1X3FzdGF0cywKIAkJCQkJCSZxZGlzYy0+cXN0YXRzLCBxbGVu KTsKKwkJCXNjaC0+cS5xbGVuCQkrPSBxbGVuOwogCQl9IGVsc2UgewogCQkJc2NoLT5xLnFsZW4J CSs9IHFkaXNjLT5xLnFsZW47CiAJCQlzY2gtPmJzdGF0cy5ieXRlcwkrPSBxZGlzYy0+YnN0YXRz LmJ5dGVzOwotLSAKMi4yMC4xCgoKRnJvbSBmYWZkMGM3NGY2MDBmZmNmMjc4NmJjZDAzODAyOTY5 MmY2YzE2MmY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFNhdCwgNyBEZWMgMjAxOSAxMTozNDo0NSAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMDcvMzhdIG5ldF9zY2hlZDogdmFsaWRhdGUgVENBX0tJTkQgYXR0cmli dXRlIGluCiB0Y19jaGFpbl90bXBsdF9hZGQoKQoKWyBVcHN0cmVhbSBjb21taXQgMmRkNTYxNmVj ZGNlYmRmNWE4ZDAwN2FmNjRlMDQwZDRlOTIxNGVmZSBdCgpVc2UgdGhlIG5ldyB0Y2ZfcHJvdG9f Y2hlY2tfa2luZCgpIGhlbHBlciB0byBtYWtlIHN1cmUgdXNlcgpwcm92aWRlZCB2YWx1ZSBpcyB3 ZWxsIGZvcm1lZC4KCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBzdHJpbmdfbm9jaGVjayBs aWIvdnNwcmludGYuYzo2MDYgW2lubGluZV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIHN0 cmluZysweDRiZS8weDYwMCBsaWIvdnNwcmludGYuYzo2NjgKQ1BVOiAwIFBJRDogMTIzNTggQ29t bTogc3l6LWV4ZWN1dG9yLjEgTm90IHRhaW50ZWQgNS40LjAtcmM4LXN5emthbGxlciAjMApIYXJk d2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVu Z2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxp Yi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxYzkvMHgyMjAgbGliL2R1 bXBfc3RhY2suYzoxMTgKIGttc2FuX3JlcG9ydCsweDEyOC8weDIyMCBtbS9rbXNhbi9rbXNhbl9y ZXBvcnQuYzoxMDgKIF9fbXNhbl93YXJuaW5nKzB4NjQvMHhjMCBtbS9rbXNhbi9rbXNhbl9pbnN0 ci5jOjI0NQogc3RyaW5nX25vY2hlY2sgbGliL3ZzcHJpbnRmLmM6NjA2IFtpbmxpbmVdCiBzdHJp bmcrMHg0YmUvMHg2MDAgbGliL3ZzcHJpbnRmLmM6NjY4CiB2c25wcmludGYrMHgyMThmLzB4MzIx MCBsaWIvdnNwcmludGYuYzoyNTEwCiBfX3JlcXVlc3RfbW9kdWxlKzB4MmIxLzB4MTFjMCBrZXJu ZWwva21vZC5jOjE0MwogdGNmX3Byb3RvX2xvb2t1cF9vcHMrMHgxNzEvMHg3MDAgbmV0L3NjaGVk L2Nsc19hcGkuYzoxMzkKIHRjX2NoYWluX3RtcGx0X2FkZCBuZXQvc2NoZWQvY2xzX2FwaS5jOjI3 MzAgW2lubGluZV0KIHRjX2N0bF9jaGFpbisweDE5MDQvMHgzOGEwIG5ldC9zY2hlZC9jbHNfYXBp LmM6Mjg1MAogcnRuZXRsaW5rX3Jjdl9tc2crMHgxMTVhLzB4MTU4MCBuZXQvY29yZS9ydG5ldGxp bmsuYzo1MjI0CiBuZXRsaW5rX3Jjdl9za2IrMHg0MzEvMHg2MjAgbmV0L25ldGxpbmsvYWZfbmV0 bGluay5jOjI0NzcKIHJ0bmV0bGlua19yY3YrMHg1MC8weDYwIG5ldC9jb3JlL3J0bmV0bGluay5j OjUyNDIKIG5ldGxpbmtfdW5pY2FzdF9rZXJuZWwgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjEz MDIgW2lubGluZV0KIG5ldGxpbmtfdW5pY2FzdCsweGYzZS8weDEwMjAgbmV0L25ldGxpbmsvYWZf bmV0bGluay5jOjEzMjgKIG5ldGxpbmtfc2VuZG1zZysweDExMGYvMHgxMzMwIG5ldC9uZXRsaW5r L2FmX25ldGxpbmsuYzoxOTE3CiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYzNyBb aW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NTcgW2lubGluZV0KIF9fX3N5c19z ZW5kbXNnKzB4MTRmZi8weDE1OTAgbmV0L3NvY2tldC5jOjIzMTEKIF9fc3lzX3NlbmRtc2cgbmV0 L3NvY2tldC5jOjIzNTYgW2lubGluZV0KIF9fZG9fc3lzX3NlbmRtc2cgbmV0L3NvY2tldC5jOjIz NjUgW2lubGluZV0KIF9fc2Vfc3lzX3NlbmRtc2crMHgzMDUvMHg0NjAgbmV0L3NvY2tldC5jOjIz NjMKIF9feDY0X3N5c19zZW5kbXNnKzB4NGEvMHg3MCBuZXQvc29ja2V0LmM6MjM2MwogZG9fc3lz Y2FsbF82NCsweGI2LzB4MTYwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MQogZW50cnlfU1lT Q0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQpSSVA6IDAwMzM6MHg0NWE2NDkKQ29kZTog YWQgYjYgZmIgZmYgYzMgNjYgMmUgMGYgMWYgODQgMDAgMDAgMDAgMDAgMDAgNjYgOTAgNDggODkg ZjggNDggODkgZjcgNDggODkgZDYgNDggODkgY2EgNGQgODkgYzIgNGQgODkgYzggNGMgOGIgNGMg MjQgMDggMGYgMDUgPDQ4PiAzZCAwMSBmMCBmZiBmZiAwZiA4MyA3YiBiNiBmYiBmZiBjMyA2NiAy ZSAwZiAxZiA4NCAwMCAwMCAwMCAwMApSU1A6IDAwMmI6MDAwMDdmMDc5MDc5NWM3OCBFRkxBR1M6 IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAwMDAwMDAwMDJlClJBWDogZmZmZmZmZmZmZmZmZmZk YSBSQlg6IDAwMDAwMDAwMDAwMDAwMDMgUkNYOiAwMDAwMDAwMDAwNDVhNjQ5ClJEWDogMDAwMDAw MDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMjAwMDAzMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDA2ClJC UDogMDAwMDAwMDAwMDc1YmZjOCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAw MDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAw MDAwN2YwNzkwNzk2NmQ0ClIxMzogMDAwMDAwMDAwMDRjOGRiNSBSMTQ6IDAwMDAwMDAwMDA0ZGY2 MzAgUjE1OiAwMDAwMDAwMGZmZmZmZmZmCgpVbmluaXQgd2FzIGNyZWF0ZWQgYXQ6CiBrbXNhbl9z YXZlX3N0YWNrX3dpdGhfZmxhZ3MgbW0va21zYW4va21zYW4uYzoxNDkgW2lubGluZV0KIGttc2Fu X2ludGVybmFsX3BvaXNvbl9zaGFkb3crMHg1Yy8weDExMCBtbS9rbXNhbi9rbXNhbi5jOjEzMgog a21zYW5fc2xhYl9hbGxvYysweDk3LzB4MTAwIG1tL2ttc2FuL2ttc2FuX2hvb2tzLmM6ODYKIHNs YWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6Mjc3MyBbaW5saW5lXQogX19rbWFsbG9jX25vZGVfdHJh Y2tfY2FsbGVyKzB4ZTI3LzB4MTFhMCBtbS9zbHViLmM6NDM4MQogX19rbWFsbG9jX3Jlc2VydmUg bmV0L2NvcmUvc2tidWZmLmM6MTQxIFtpbmxpbmVdCiBfX2FsbG9jX3NrYisweDMwNi8weGExMCBu ZXQvY29yZS9za2J1ZmYuYzoyMDkKIGFsbG9jX3NrYiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjEw NDkgW2lubGluZV0KIG5ldGxpbmtfYWxsb2NfbGFyZ2Vfc2tiIG5ldC9uZXRsaW5rL2FmX25ldGxp bmsuYzoxMTc0IFtpbmxpbmVdCiBuZXRsaW5rX3NlbmRtc2crMHg3ODMvMHgxMzMwIG5ldC9uZXRs aW5rL2FmX25ldGxpbmsuYzoxODkyCiBzb2NrX3NlbmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjYz NyBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NTcgW2lubGluZV0KIF9fX3N5 c19zZW5kbXNnKzB4MTRmZi8weDE1OTAgbmV0L3NvY2tldC5jOjIzMTEKIF9fc3lzX3NlbmRtc2cg bmV0L3NvY2tldC5jOjIzNTYgW2lubGluZV0KIF9fZG9fc3lzX3NlbmRtc2cgbmV0L3NvY2tldC5j OjIzNjUgW2lubGluZV0KIF9fc2Vfc3lzX3NlbmRtc2crMHgzMDUvMHg0NjAgbmV0L3NvY2tldC5j OjIzNjMKIF9feDY0X3N5c19zZW5kbXNnKzB4NGEvMHg3MCBuZXQvc29ja2V0LmM6MjM2MwogZG9f c3lzY2FsbF82NCsweGI2LzB4MTYwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjI5MQogZW50cnlf U1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKRml4ZXM6IDZmOTZjM2M2OTA0YyAo Im5ldF9zY2hlZDogZml4IGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIFRDQV9LSU5EIikKU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1i eTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KQWNrZWQtYnk6IENvbmcgV2Fu ZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpDYzogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIg PG1hcmNlbG8ubGVpdG5lckBnbWFpbC5jb20+CkNjOiBKYW1hbCBIYWRpIFNhbGltIDxqaHNAbW9q YXRhdHUuY29tPgpDYzogSmlyaSBQaXJrbyA8amlyaUByZXNudWxsaS51cz4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9j bHNfYXBpLmMgfCA4ICsrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19hcGkuYyBiL25ldC9zY2hl ZC9jbHNfYXBpLmMKaW5kZXggMjBkNjBiOGZjYjcwLi4zN2M5NWNlZmI3ZGUgMTAwNjQ0Ci0tLSBh L25ldC9zY2hlZC9jbHNfYXBpLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19hcGkuYwpAQCAtMjcyMSwx MyArMjcyMSwxOSBAQCBzdGF0aWMgaW50IHRjX2NoYWluX3RtcGx0X2FkZChzdHJ1Y3QgdGNmX2No YWluICpjaGFpbiwgc3RydWN0IG5ldCAqbmV0LAogCQkJICAgICAgc3RydWN0IG5ldGxpbmtfZXh0 X2FjayAqZXh0YWNrKQogewogCWNvbnN0IHN0cnVjdCB0Y2ZfcHJvdG9fb3BzICpvcHM7CisJY2hh ciBuYW1lW0lGTkFNU0laXTsKIAl2b2lkICp0bXBsdF9wcml2OwogCiAJLyogSWYga2luZCBpcyBu b3Qgc2V0LCB1c2VyIGRpZCBub3Qgc3BlY2lmeSB0ZW1wbGF0ZS4gKi8KIAlpZiAoIXRjYVtUQ0Ff S0lORF0pCiAJCXJldHVybiAwOwogCi0Jb3BzID0gdGNmX3Byb3RvX2xvb2t1cF9vcHMobmxhX2Rh dGEodGNhW1RDQV9LSU5EXSksIHRydWUsIGV4dGFjayk7CisJaWYgKHRjZl9wcm90b19jaGVja19r aW5kKHRjYVtUQ0FfS0lORF0sIG5hbWUpKSB7CisJCU5MX1NFVF9FUlJfTVNHKGV4dGFjaywgIlNw ZWNpZmllZCBUQyBjaGFpbiB0ZW1wbGF0ZSBuYW1lIHRvbyBsb25nIik7CisJCXJldHVybiAtRUlO VkFMOworCX0KKworCW9wcyA9IHRjZl9wcm90b19sb29rdXBfb3BzKG5hbWUsIHRydWUsIGV4dGFj ayk7CiAJaWYgKElTX0VSUihvcHMpKQogCQlyZXR1cm4gUFRSX0VSUihvcHMpOwogCWlmICghb3Bz LT50bXBsdF9jcmVhdGUgfHwgIW9wcy0+dG1wbHRfZGVzdHJveSB8fCAhb3BzLT50bXBsdF9kdW1w KSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDI0MzIyZmUyYmI1NDIwODJhNzI0MTJiZTQ3YjNjZDM0NzQz YzBmZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvdW5pIEhvZ2FuZGVyIDxqb3Vu aS5ob2dhbmRlckB1bmlraWUuY29tPgpEYXRlOiBUaHUsIDUgRGVjIDIwMTkgMTU6NTc6MDcgKzAy MDAKU3ViamVjdDogW1BBVENIIDA4LzM4XSBuZXQtc3lzZnM6IENhbGwgZGV2X2hvbGQgYWx3YXlz IGluCiBuZXRkZXZfcXVldWVfYWRkX2tvYmplY3QKClsgVXBzdHJlYW0gY29tbWl0IGUwYjYwOTAz YjQzNGE3ZWUyMWJhOGQ4NjU5ZjIwN2VkODQxMDFlODkgXQoKRGV2X2hvbGQgaGFzIHRvIGJlIGNh bGxlZCBhbHdheXMgaW4gbmV0ZGV2X3F1ZXVlX2FkZF9rb2JqZWN0LgpPdGhlcndpc2UgdXNhZ2Ug Y291bnQgZHJvcHMgYmVsb3cgMCBpbiBjYXNlIG9mIGZhaWx1cmUgaW4Ka29iamVjdF9pbml0X2Fu ZF9hZGQuCgpGaXhlczogYjhlYjcxODM0OGI4ICgibmV0LXN5c2ZzOiBGaXggcmVmZXJlbmNlIGNv dW50IGxlYWsgaW4gcnh8bmV0ZGV2X3F1ZXVlX2FkZF9rb2JqZWN0IikKUmVwb3J0ZWQtYnk6IEh1 bGsgUm9ib3QgPGh1bGtjaUBodWF3ZWkuY29tPgpDYzogVGV0c3VvIEhhbmRhIDxwZW5ndWluLWtl cm5lbEBJLWxvdmUuU0FLVVJBLm5lLmpwPgpDYzogRGF2aWQgTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgpDYzogTHVrYXMgQnVsd2FobiA8bHVrYXMuYnVsd2FobkBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv Y29yZS9uZXQtc3lzZnMuYyB8IDcgKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBi L25ldC9jb3JlL25ldC1zeXNmcy5jCmluZGV4IGFlM2JjYjE1NDBlYy4uNWM0NjI0Mjk4OTk2IDEw MDY0NAotLS0gYS9uZXQvY29yZS9uZXQtc3lzZnMuYworKysgYi9uZXQvY29yZS9uZXQtc3lzZnMu YwpAQCAtMTQ1OSwxNCArMTQ1OSwxNyBAQCBzdGF0aWMgaW50IG5ldGRldl9xdWV1ZV9hZGRfa29i amVjdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgaW5kZXgpCiAJc3RydWN0IGtvYmplY3Qg KmtvYmogPSAmcXVldWUtPmtvYmo7CiAJaW50IGVycm9yID0gMDsKIAorCS8qIEtvYmplY3RfcHV0 IGxhdGVyIHdpbGwgdHJpZ2dlciBuZXRkZXZfcXVldWVfcmVsZWFzZSBjYWxsCisJICogd2hpY2gg ZGVjcmVhc2VzIGRldiByZWZjb3VudDogVGFrZSB0aGF0IHJlZmVyZW5jZSBoZXJlCisJICovCisJ ZGV2X2hvbGQocXVldWUtPmRldik7CisKIAlrb2JqLT5rc2V0ID0gZGV2LT5xdWV1ZXNfa3NldDsK IAllcnJvciA9IGtvYmplY3RfaW5pdF9hbmRfYWRkKGtvYmosICZuZXRkZXZfcXVldWVfa3R5cGUs IE5VTEwsCiAJCQkJICAgICAidHgtJXUiLCBpbmRleCk7CiAJaWYgKGVycm9yKQogCQlnb3RvIGVy cjsKIAotCWRldl9ob2xkKHF1ZXVlLT5kZXYpOwotCiAjaWZkZWYgQ09ORklHX0JRTAogCWVycm9y ID0gc3lzZnNfY3JlYXRlX2dyb3VwKGtvYmosICZkcWxfZ3JvdXApOwogCWlmIChlcnJvcikKLS0g CjIuMjAuMQoKCkZyb20gZDZlMjVjYWNhYmYyZmYzOWZlMWY4ZDRhOTY3OTQxZTY4YWM3YTYwYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWlhbiBZb3VzYWYgS2F1a2FiIDx5a2F1a2Fi QHN1c2UuZGU+CkRhdGU6IFRodSwgNSBEZWMgMjAxOSAxMDo0MToxNiArMDEwMApTdWJqZWN0OiBb UEFUQ0ggMDkvMzhdIG5ldDogdGh1bmRlcng6IHN0YXJ0IHBoeSBiZWZvcmUgc3RhcnRpbmcKIGF1 dG9uZWdvdGlhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgYTM1MGQyZTdhZGJiNTcxODFkMzNlM2Fh NmYwNTY1NjMyNzQ3ZmVhYSBdCgpTaW5jZSBjb21taXQgMmIzZTg4ZWE2NTI4ICgibmV0OiBwaHk6 IGltcHJvdmUgcGh5IHN0YXRlIGNoZWNraW5nIikKcGh5X3N0YXJ0X2FuZWcoKSBleHBlY3RzIHBo eSBzdGF0ZSB0byBiZSA+PSBQSFlfVVAuIENhbGwgcGh5X3N0YXJ0KCkKYmVmb3JlIGNhbGxpbmcg cGh5X3N0YXJ0X2FuZWcoKSBkdXJpbmcgcHJvYmUgc28gdGhhdCBhdXRvbmVnb3RpYXRpb24KaXMg aW5pdGlhdGVkLgoKQXMgcGh5X3N0YXJ0KCkgdGFrZXMgY2FyZSBvZiBjYWxsaW5nIHBoeV9zdGFy dF9hbmVnKCksIGRyb3AgdGhlIGV4cGxpY2l0CmNhbGwgdG8gcGh5X3N0YXJ0X2FuZWcoKS4KCk5l dHdvcmsgZmFpbHMgd2l0aG91dCB0aGlzIHBhdGNoIG9uIE9jdGVvbiBUWC4KCkZpeGVzOiAyYjNl ODhlYTY1MjggKCJuZXQ6IHBoeTogaW1wcm92ZSBwaHkgc3RhdGUgY2hlY2tpbmciKQpTaWduZWQt b2ZmLWJ5OiBNaWFuIFlvdXNhZiBLYXVrYWIgPHlrYXVrYWJAc3VzZS5kZT4KUmV2aWV3ZWQtYnk6 IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1 bS90aHVuZGVyL3RodW5kZXJfYmd4LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9j YXZpdW0vdGh1bmRlci90aHVuZGVyX2JneC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVt L3RodW5kZXIvdGh1bmRlcl9iZ3guYwppbmRleCBhY2IwMTY4MzRmMDQuLjZjYzEwMGU3ZDVjMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2F2aXVtL3RodW5kZXIvdGh1bmRlcl9i Z3guYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vdGh1bmRlci90aHVuZGVyX2Jn eC5jCkBAIC0xMTE1LDcgKzExMTUsNyBAQCBzdGF0aWMgaW50IGJneF9sbWFjX2VuYWJsZShzdHJ1 Y3QgYmd4ICpiZ3gsIHU4IGxtYWNpZCkKIAkJCQkgICAgICAgcGh5X2ludGVyZmFjZV9tb2RlKGxt YWMtPmxtYWNfdHlwZSkpKQogCQkJcmV0dXJuIC1FTk9ERVY7CiAKLQkJcGh5X3N0YXJ0X2FuZWco bG1hYy0+cGh5ZGV2KTsKKwkJcGh5X3N0YXJ0KGxtYWMtPnBoeWRldik7CiAJCXJldHVybiAwOwog CX0KIAotLSAKMi4yMC4xCgoKRnJvbSA1NDc4MDdiZDAxYmRkOTI5ZWUyOTgyODAxMzIyNDM1M2Iy ZWE1ZDVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWYWxlbnRpbiBWaWRpYyA8dnZp ZGljQHZhbGVudGluLXZpZGljLmZyb20uaHI+CkRhdGU6IFRodSwgNSBEZWMgMjAxOSAwNzo0MTox OCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMzhdIG5ldC90bHM6IEZpeCByZXR1cm4gdmFsdWVz IHRvIGF2b2lkIEVOT1RTVVBQCgpbIFVwc3RyZWFtIGNvbW1pdCA0YTVjZGM2MDRiOWNmNjQ1ZTZm YTI0ZDhkOWYwNTU5NTVjM2M4NTE2IF0KCkVOT1RTVVBQIGlzIG5vdCBhdmFpbGFibGUgaW4gdXNl cnNwYWNlLCBmb3IgZXhhbXBsZToKCiAgc2V0c29ja29wdCBmYWlsZWQsIDUyNCwgVW5rbm93biBl cnJvciA1MjQKClNpZ25lZC1vZmYtYnk6IFZhbGVudGluIFZpZGljIDx2dmlkaWNAdmFsZW50aW4t dmlkaWMuZnJvbS5ocj4KQWNrZWQtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBu ZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfZGV2aWNlLmMgICAgICAgICAgICAgIHwgOCArKysr LS0tLQogbmV0L3Rscy90bHNfbWFpbi5jICAgICAgICAgICAgICAgIHwgNCArKy0tCiBuZXQvdGxz L3Rsc19zdy5jICAgICAgICAgICAgICAgICAgfCA4ICsrKystLS0tCiB0b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9uZXQvdGxzLmMgfCA4ICsrLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDEyIGluc2Vy dGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC90bHMvdGxzX2Rldmlj ZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5kZXggNjgzZDAwODM3NjkzLi4zZjUyMDllMmQ0 ZWUgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2RldmljZS5jCisrKyBiL25ldC90bHMvdGxzX2Rl dmljZS5jCkBAIC00MTcsNyArNDE3LDcgQEAgc3RhdGljIGludCB0bHNfcHVzaF9kYXRhKHN0cnVj dCBzb2NrICpzaywKIAogCWlmIChmbGFncyAmCiAJICAgIH4oTVNHX01PUkUgfCBNU0dfRE9OVFdB SVQgfCBNU0dfTk9TSUdOQUwgfCBNU0dfU0VORFBBR0VfTk9UTEFTVCkpCi0JCXJldHVybiAtRU5P VFNVUFA7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCWlmIChzay0+c2tfZXJyKQogCQlyZXR1 cm4gLXNrLT5za19lcnI7CkBAIC01NjAsNyArNTYwLDcgQEAgaW50IHRsc19kZXZpY2Vfc2VuZHBh Z2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAlsb2NrX3NvY2soc2spOwog CiAJaWYgKGZsYWdzICYgTVNHX09PQikgewotCQlyYyA9IC1FTk9UU1VQUDsKKwkJcmMgPSAtRU9Q Tk9UU1VQUDsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC05OTksNyArOTk5LDcgQEAgaW50IHRsc19z ZXRfZGV2aWNlX29mZmxvYWQoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0 eCkKIAl9CiAKIAlpZiAoIShuZXRkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9IV19UTFNfVFgpKSB7 Ci0JCXJjID0gLUVOT1RTVVBQOworCQlyYyA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIHJlbGVhc2Vf bmV0ZGV2OwogCX0KIApAQCAtMTA3MSw3ICsxMDcxLDcgQEAgaW50IHRsc19zZXRfZGV2aWNlX29m ZmxvYWRfcngoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkKIAl9CiAK IAlpZiAoIShuZXRkZXYtPmZlYXR1cmVzICYgTkVUSUZfRl9IV19UTFNfUlgpKSB7Ci0JCXJjID0g LUVOT1RTVVBQOworCQlyYyA9IC1FT1BOT1RTVVBQOwogCQlnb3RvIHJlbGVhc2VfbmV0ZGV2Owog CX0KIApkaWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90bHNfbWFpbi5j CmluZGV4IGVmZjQ0NDI5MzU5NC4uODJkMGJlZWQ4ZjA3IDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rs c19tYWluLmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC00ODIsNyArNDgyLDcgQEAgc3Rh dGljIGludCBkb190bHNfc2V0c29ja29wdF9jb25mKHN0cnVjdCBzb2NrICpzaywgY2hhciBfX3Vz ZXIgKm9wdHZhbCwKIAkvKiBjaGVjayB2ZXJzaW9uICovCiAJaWYgKGNyeXB0b19pbmZvLT52ZXJz aW9uICE9IFRMU18xXzJfVkVSU0lPTiAmJgogCSAgICBjcnlwdG9faW5mby0+dmVyc2lvbiAhPSBU TFNfMV8zX1ZFUlNJT04pIHsKLQkJcmMgPSAtRU5PVFNVUFA7CisJCXJjID0gLUVJTlZBTDsKIAkJ Z290byBlcnJfY3J5cHRvX2luZm87CiAJfQogCkBAIC03NzgsNyArNzc4LDcgQEAgc3RhdGljIGlu dCB0bHNfaW5pdChzdHJ1Y3Qgc29jayAqc2spCiAJICogc2hhcmUgdGhlIHVscCBjb250ZXh0Lgog CSAqLwogCWlmIChzay0+c2tfc3RhdGUgIT0gVENQX0VTVEFCTElTSEVEKQotCQlyZXR1cm4gLUVO T1RTVVBQOworCQlyZXR1cm4gLUVOT1RDT05OOwogCiAJdGxzX2J1aWxkX3Byb3RvKHNrKTsKIApk aWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggNWRk MGYwMTkxM2MwLi5jNzBjZjMwYzU0OTIgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMKKysr IGIvbmV0L3Rscy90bHNfc3cuYwpAQCAtOTAwLDcgKzkwMCw3IEBAIGludCB0bHNfc3dfc2VuZG1z ZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IHNpemUpCiAJaW50 IHJldCA9IDA7CiAKIAlpZiAobXNnLT5tc2dfZmxhZ3MgJiB+KE1TR19NT1JFIHwgTVNHX0RPTlRX QUlUIHwgTVNHX05PU0lHTkFMKSkKLQkJcmV0dXJuIC1FTk9UU1VQUDsKKwkJcmV0dXJuIC1FT1BO T1RTVVBQOwogCiAJbXV0ZXhfbG9jaygmdGxzX2N0eC0+dHhfbG9jayk7CiAJbG9ja19zb2NrKHNr KTsKQEAgLTEyMTUsNyArMTIxNSw3IEBAIGludCB0bHNfc3dfc2VuZHBhZ2VfbG9ja2VkKHN0cnVj dCBzb2NrICpzaywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJaWYgKGZsYWdzICYgfihNU0dfTU9SRSB8 IE1TR19ET05UV0FJVCB8IE1TR19OT1NJR05BTCB8CiAJCSAgICAgIE1TR19TRU5EUEFHRV9OT1RM QVNUIHwgTVNHX1NFTkRQQUdFX05PUE9MSUNZIHwKIAkJICAgICAgTVNHX05PX1NIQVJFRF9GUkFH UykpCi0JCXJldHVybiAtRU5PVFNVUFA7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAogCXJldHVy biB0bHNfc3dfZG9fc2VuZHBhZ2Uoc2ssIHBhZ2UsIG9mZnNldCwgc2l6ZSwgZmxhZ3MpOwogfQpA QCAtMTIyOCw3ICsxMjI4LDcgQEAgaW50IHRsc19zd19zZW5kcGFnZShzdHJ1Y3Qgc29jayAqc2ss IHN0cnVjdCBwYWdlICpwYWdlLAogCiAJaWYgKGZsYWdzICYgfihNU0dfTU9SRSB8IE1TR19ET05U V0FJVCB8IE1TR19OT1NJR05BTCB8CiAJCSAgICAgIE1TR19TRU5EUEFHRV9OT1RMQVNUIHwgTVNH X1NFTkRQQUdFX05PUE9MSUNZKSkKLQkJcmV0dXJuIC1FTk9UU1VQUDsKKwkJcmV0dXJuIC1FT1BO T1RTVVBQOwogCiAJbXV0ZXhfbG9jaygmdGxzX2N0eC0+dHhfbG9jayk7CiAJbG9ja19zb2NrKHNr KTsKQEAgLTE5MjcsNyArMTkyNyw3IEBAIHNzaXplX3QgdGxzX3N3X3NwbGljZV9yZWFkKHN0cnVj dCBzb2NrZXQgKnNvY2ssICBsb2ZmX3QgKnBwb3MsCiAKIAkJLyogc3BsaWNlIGRvZXMgbm90IHN1 cHBvcnQgcmVhZGluZyBjb250cm9sIG1lc3NhZ2VzICovCiAJCWlmIChjdHgtPmNvbnRyb2wgIT0g VExTX1JFQ09SRF9UWVBFX0RBVEEpIHsKLQkJCWVyciA9IC1FTk9UU1VQUDsKKwkJCWVyciA9IC1F SU5WQUw7CiAJCQlnb3RvIHNwbGljZV9yZWFkX2VuZDsKIAkJfQogCmRpZmYgLS1naXQgYS90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvdGxzLmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9u ZXQvdGxzLmMKaW5kZXggNDZhYmNhZTQ3ZGVlLi4xM2U1ZWY2MTUwMjYgMTAwNjQ0Ci0tLSBhL3Rv b2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9uZXQvdGxzLmMKQEAgLTI1LDEwICsyNSw2IEBACiAjZGVmaW5lIFRMU19QQVlMT0FEX01B WF9MRU4gMTYzODQKICNkZWZpbmUgU09MX1RMUyAyODIKIAotI2lmbmRlZiBFTk9UU1VQUAotI2Rl ZmluZSBFTk9UU1VQUCA1MjQKLSNlbmRpZgotCiBGSVhUVVJFKHRsc19iYXNpYykKIHsKIAlpbnQg ZmQsIGNmZDsKQEAgLTEyMDUsMTEgKzEyMDEsMTEgQEAgVEVTVChub25fZXN0YWJsaXNoZWQpIHsK IAkvKiBUTFMgVUxQIG5vdCBzdXBwb3J0ZWQgKi8KIAlpZiAoZXJybm8gPT0gRU5PRU5UKQogCQly ZXR1cm47Ci0JRVhQRUNUX0VRKGVycm5vLCBFTk9UU1VQUCk7CisJRVhQRUNUX0VRKGVycm5vLCBF Tk9UQ09OTik7CiAKIAlyZXQgPSBzZXRzb2Nrb3B0KHNmZCwgSVBQUk9UT19UQ1AsIFRDUF9VTFAs ICJ0bHMiLCBzaXplb2YoInRscyIpKTsKIAlFWFBFQ1RfRVEocmV0LCAtMSk7Ci0JRVhQRUNUX0VR KGVycm5vLCBFTk9UU1VQUCk7CisJRVhQRUNUX0VRKGVycm5vLCBFTk9UQ09OTik7CiAKIAlyZXQg PSBnZXRzb2NrbmFtZShzZmQsICZhZGRyLCAmbGVuKTsKIAlBU1NFUlRfRVEocmV0LCAwKTsKLS0g CjIuMjAuMQoKCkZyb20gMWU3MjY0Mjc5NWE0YjkxMDc0MGU3OTg0ZGNmODk3NTk1YmJhMjFhZCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQWFyb24gQ29ub2xlIDxhY29ub2xlQHJlZGhh dC5jb20+CkRhdGU6IFR1ZSwgMyBEZWMgMjAxOSAxNjozNDoxMyAtMDUwMApTdWJqZWN0OiBbUEFU Q0ggMTEvMzhdIG9wZW52c3dpdGNoOiBzdXBwb3J0IGFzeW1tZXRyaWMgY29ubnRyYWNrCgpbIFVw c3RyZWFtIGNvbW1pdCA1ZDUwYWE4M2UyYzhlOTFjZWQyY2NhNzdjMTk4YjQ2OGNhOTIxMGY0IF0K ClRoZSBvcGVudnN3aXRjaCBtb2R1bGUgc2hhcmVzIGEgY29tbW9uIGNvbm50cmFjayBhbmQgTkFU IGluZnJhc3RydWN0dXJlCmV4cG9zZWQgdmlhIG5ldGZpbHRlci4gIEl0J3MgcG9zc2libGUgdGhh dCBhIHBhY2tldCBuZWVkcyBib3RoIFNOQVQgYW5kCkROQVQgbWFuaXB1bGF0aW9uLCBkdWUgdG8g ZS5nLiB0dXBsZSBjb2xsaXNpb24uICBOZXRmaWx0ZXIgY2FuIHN1cHBvcnQKdGhpcyBiZWNhdXNl IGl0IHJ1bnMgdGhyb3VnaCB0aGUgTkFUIHRhYmxlIHR3aWNlIC0gb25jZSBvbiBpbmdyZXNzIGFu ZAphZ2FpbiBhZnRlciBlZ3Jlc3MuICBUaGUgb3BlbnZzd2l0Y2ggbW9kdWxlIGRvZXNuJ3QgaGF2 ZSBzdWNoIGNhcGFiaWxpdHkuCgpMaWtlIG5ldGZpbHRlciBob29rIGluZnJhc3RydWN0dXJlLCB3 ZSBzaG91bGQgcnVuIHRocm91Z2ggTkFUIHR3aWNlIHRvCmtlZXAgdGhlIHN5bW1ldHJ5LgoKRml4 ZXM6IDA1NzUyNTIzZTU2NSAoIm9wZW52c3dpdGNoOiBJbnRlcmZhY2Ugd2l0aCBOQVQuIikKU2ln bmVkLW9mZi1ieTogQWFyb24gQ29ub2xlIDxhY29ub2xlQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvb3BlbnZz d2l0Y2gvY29ubnRyYWNrLmMgfCAxMSArKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDExIGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMgYi9u ZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKaW5kZXggMDUyNDllYjQ1MDgyLi4yODNlOGY5YTVm ZDIgMTAwNjQ0Ci0tLSBhL25ldC9vcGVudnN3aXRjaC9jb25udHJhY2suYworKysgYi9uZXQvb3Bl bnZzd2l0Y2gvY29ubnRyYWNrLmMKQEAgLTkwMyw2ICs5MDMsMTcgQEAgc3RhdGljIGludCBvdnNf Y3RfbmF0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXksCiAJfQogCWVy ciA9IG92c19jdF9uYXRfZXhlY3V0ZShza2IsIGN0LCBjdGluZm8sICZpbmZvLT5yYW5nZSwgbWFu aXB0eXBlKTsKIAorCWlmIChlcnIgPT0gTkZfQUNDRVBUICYmCisJICAgIGN0LT5zdGF0dXMgJiBJ UFNfU1JDX05BVCAmJiBjdC0+c3RhdHVzICYgSVBTX0RTVF9OQVQpIHsKKwkJaWYgKG1hbmlwdHlw ZSA9PSBORl9OQVRfTUFOSVBfU1JDKQorCQkJbWFuaXB0eXBlID0gTkZfTkFUX01BTklQX0RTVDsK KwkJZWxzZQorCQkJbWFuaXB0eXBlID0gTkZfTkFUX01BTklQX1NSQzsKKworCQllcnIgPSBvdnNf Y3RfbmF0X2V4ZWN1dGUoc2tiLCBjdCwgY3RpbmZvLCAmaW5mby0+cmFuZ2UsCisJCQkJCSBtYW5p cHR5cGUpOworCX0KKwogCS8qIE1hcmsgTkFUIGRvbmUgaWYgc3VjY2Vzc2Z1bCBhbmQgdXBkYXRl IHRoZSBmbG93IGtleS4gKi8KIAlpZiAoZXJyID09IE5GX0FDQ0VQVCkKIAkJb3ZzX25hdF91cGRh dGVfa2V5KGtleSwgc2tiLCBtYW5pcHR5cGUpOwotLSAKMi4yMC4xCgoKRnJvbSAxNDFiZDA1ODdj MGYxOWY2NGMxN2JiMmE4OGFlOTY4YjMzMWQ4NDk0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFRodSwgNSBEZWMg MjAxOSAxMDoxMDoxNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzhdIHRjcDogbWQ1OiBmaXgg cG90ZW50aWFsIG92ZXJlc3RpbWF0aW9uIG9mIFRDUCBvcHRpb24KIHNwYWNlCgpbIFVwc3RyZWFt IGNvbW1pdCA5NDI0ZTJlN2FkOTNmZmZmYTg4Zjg4MmM5YmM1MDIzNTcwOTA0YjU1IF0KCkJhY2sg aW4gMjAwOCwgQWRhbSBMYW5nbGV5IGZpeGVkIHRoZSBjb3JuZXIgY2FzZSBvZiBwYWNrZXRzIGZv ciBmbG93cwpoYXZpbmcgYWxsIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyA6IE1ENSBUUyBTQUNL CgpTaW5jZSBNRDUgbmVlZHMgMjAgYnl0ZXMsIGFuZCBUUyBuZWVkcyAxMiBieXRlcywgbm8gc2Fj ayBibG9jawpjYW4gYmUgY29va2VkIGZyb20gdGhlIHJlbWFpbmluZyA4IGJ5dGVzLgoKdGNwX2Vz dGFibGlzaGVkX29wdGlvbnMoKSBjb3JyZWN0bHkgc2V0cyBvcHRzLT5udW1fc2Fja19ibG9ja3MK dG8gemVybywgYnV0IHJldHVybnMgMzYgaW5zdGVhZCBvZiAzMi4KClRoaXMgbWVhbnMgVENQIGNv b2tzIHBhY2tldHMgd2l0aCA0IGV4dHJhIGJ5dGVzIGF0IHRoZSBlbmQKb2Ygb3B0aW9ucywgY29u dGFpbmluZyB1bml0aWFsaXplZCBieXRlcy4KCkZpeGVzOiAzM2FkNzk4YzkyNGIgKCJ0Y3A6IG9w dGlvbnMgY2xlYW4gdXAiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdv b2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29t PgpBY2tlZC1ieTogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5 OiBTb2hlaWwgSGFzc2FzIFllZ2FuZWggPHNvaGVpbEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNw X291dHB1dC5jIHwgNSArKystLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMgYi9uZXQvaXB2 NC90Y3Bfb3V0cHV0LmMKaW5kZXggMDQ4ODYwN2M1Y2QzLi43NjJlZGQ4MDBkNzggMTAwNjQ0Ci0t LSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKQEAg LTc1NSw4ICs3NTUsOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHRjcF9lc3RhYmxpc2hlZF9vcHRp b25zKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYgogCQkJbWluX3QodW5zaWdu ZWQgaW50LCBlZmZfc2Fja3MsCiAJCQkgICAgICAocmVtYWluaW5nIC0gVENQT0xFTl9TQUNLX0JB U0VfQUxJR05FRCkgLwogCQkJICAgICAgVENQT0xFTl9TQUNLX1BFUkJMT0NLKTsKLQkJc2l6ZSAr PSBUQ1BPTEVOX1NBQ0tfQkFTRV9BTElHTkVEICsKLQkJCW9wdHMtPm51bV9zYWNrX2Jsb2NrcyAq IFRDUE9MRU5fU0FDS19QRVJCTE9DSzsKKwkJaWYgKGxpa2VseShvcHRzLT5udW1fc2Fja19ibG9j a3MpKQorCQkJc2l6ZSArPSBUQ1BPTEVOX1NBQ0tfQkFTRV9BTElHTkVEICsKKwkJCQlvcHRzLT5u dW1fc2Fja19ibG9ja3MgKiBUQ1BPTEVOX1NBQ0tfUEVSQkxPQ0s7CiAJfQogCiAJcmV0dXJuIHNp emU7Ci0tIAoyLjIwLjEKCgpGcm9tIGI1MDg3NTM3MWE5MTcyZDhhYTA2NDk2M2QxM2NhNmI5M2Ni M2NkNGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFRhZWhlZSBZb28gPGFwNDIwMDcz QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA2IERlYyAyMDE5IDA1OjI1OjQ4ICswMDAwClN1YmplY3Q6 IFtQQVRDSCAxMy8zOF0gdGlwYzogZml4IG9yZGVyaW5nIG9mIHRpcGMgbW9kdWxlIGluaXQgYW5k IGV4aXQgcm91dGluZQoKWyBVcHN0cmVhbSBjb21taXQgOWNmMWNkOGVlM2VlMDllZjI4NTkwMTdk ZjIwNThlMmY1M2M1MzQ3ZiBdCgpJbiBvcmRlciB0byBzZXQvZ2V0L2R1bXAsIHRoZSB0aXBjIHVz ZXMgdGhlIGdlbmVyaWMgbmV0bGluawppbmZyYXN0cnVjdHVyZS4gU28sIHdoZW4gdGlwYyBtb2R1 bGUgaXMgaW5zZXJ0ZWQsIGluaXQgZnVuY3Rpb24KY2FsbHMgZ2VubF9yZWdpc3Rlcl9mYW1pbHko KS4KQWZ0ZXIgZ2VubF9yZWdpc3Rlcl9mYW1pbHkoKSwgc2V0L2dldC9kdW1wIGNvbW1hbmRzIGFy ZSBpbW1lZGlhdGVseQphbGxvd2VkIGFuZCB0aGVzZSBjYWxsYmFja3MgaW50ZXJuYWxseSB1c2Ug dGhlIG5ldF9nZW5lcmljLgpuZXRfZ2VuZXJpYyBpcyBhbGxvY2F0ZWQgYnkgcmVnaXN0ZXJfcGVy bmV0X2RldmljZSgpIGJ1dCB0aGlzCmlzIGNhbGxlZCBhZnRlciBnZW5sX3JlZ2lzdGVyX2ZhbWls eSgpIGluIHRoZSBfX2luaXQgZnVuY3Rpb24uClNvLCB0aGVzZSBjYWxsYmFja3Mgd291bGQgdXNl IHVuLWluaXRpYWxpemVkIG5ldF9nZW5lcmljLgoKVGVzdCBjb21tYW5kczoKICAgICNTSEVMTDEK ICAgIHdoaWxlIDoKICAgIGRvCiAgICAgICAgbW9kcHJvYmUgdGlwYwogICAgICAgIG1vZHByb2Jl IC1ydiB0aXBjCiAgICBkb25lCgogICAgI1NIRUxMMgogICAgd2hpbGUgOgogICAgZG8KICAgICAg ICB0aXBjIGxpbmsgbGlzdAogICAgZG9uZQoKU3BsYXQgbG9va3MgbGlrZToKWyAgIDU5LjYxNjMy Ml1bIFQyNzg4XSBrYXNhbjogQ09ORklHX0tBU0FOX0lOTElORSBlbmFibGVkClsgICA1OS42MTcy MzRdWyBUMjc4OF0ga2FzYW46IEdQRiBjb3VsZCBiZSBjYXVzZWQgYnkgTlVMTC1wdHIgZGVyZWYg b3IgdXNlciBtZW1vcnkgYWNjZXNzClsgICA1OS42MTgzOThdWyBUMjc4OF0gZ2VuZXJhbCBwcm90 ZWN0aW9uIGZhdWx0OiAwMDAwIFsjMV0gU01QIERFQlVHX1BBR0VBTExPQyBLQVNBTiBQVEkKWyAg IDU5LjYxOTM4OV1bIFQyNzg4XSBDUFU6IDMgUElEOiAyNzg4IENvbW06IHRpcGMgTm90IHRhaW50 ZWQgNS40LjArICMxOTQKWyAgIDU5LjYyMDIzMV1bIFQyNzg4XSBIYXJkd2FyZSBuYW1lOiBpbm5v dGVrIEdtYkggVmlydHVhbEJveC9WaXJ0dWFsQm94LCBCSU9TIFZpcnR1YWxCb3ggMTIvMDEvMjAw NgpbICAgNTkuNjIxNDI4XVsgVDI3ODhdIFJJUDogMDAxMDp0aXBjX2JjYXN0X2dldF9icm9hZGNh c3RfbW9kZSsweDEzMS8weDMxMCBbdGlwY10KWyAgIDU5LjYyMjM3OV1bIFQyNzg4XSBDb2RlOiBj NyBjNiBlZiA4YiAzOCBjMCA2NSBmZiAwZCA4NCA4MyBjOSAzZiBlOCBkNyBhNSBmMiBlMyA0OCA4 ZCBiYiAzOCAxMSAwMCAwMCA0OCBiOCAwMCAwMCAwMCAwMApbICAgNTkuNjIyNTUwXVsgVDI3ODBd IE5FVDogUmVnaXN0ZXJlZCBwcm90b2NvbCBmYW1pbHkgMzAKWyAgIDU5LjYyNDYyN11bIFQyNzg4 XSBSU1A6IDAwMTg6ZmZmZjg4ODA0YjA5ZjU3OCBFRkxBR1M6IDAwMDEwMjAyClsgICA1OS42MjQ2 MzBdWyBUMjc4OF0gUkFYOiBkZmZmZmMwMDAwMDAwMDAwIFJCWDogMDAwMDAwMDAwMDAwMDAxMSBS Q1g6IDAwMDAwMDAwOGJjNjY5MDcKWyAgIDU5LjYyNDYzMV1bIFQyNzg4XSBSRFg6IDAwMDAwMDAw MDAwMDAyMjkgUlNJOiAwMDAwMDAwMDRiM2NmNGNjIFJESTogMDAwMDAwMDAwMDAwMTE0OQpbICAg NTkuNjI0NjMzXVsgVDI3ODhdIFJCUDogZmZmZjg4ODA0YjA5ZjU4OCBSMDg6IDAwMDAwMDAwMDAw MDAwMDMgUjA5OiBmZmZmZmJmZmY0ZmIzZGYxClsgICA1OS42MjQ2MzVdWyBUMjc4OF0gUjEwOiBm ZmZmZmJmZmY1MDMxOGY4IFIxMTogZmZmZjg4ODA2NmNhZGMxOCBSMTI6IGZmZmZmZmZmYTZjYzJm NDAKWyAgIDU5LjYyNDYzN11bIFQyNzg4XSBSMTM6IDFmZmZmMTEwMDk2MTNlYmEgUjE0OiBmZmZm ODg4MDY2MmU5MzI4IFIxNTogZmZmZjg4ODA2NjJlOTMyOApbICAgNTkuNjI0NjM5XVsgVDI3ODhd IEZTOiAgMDAwMDdmNTdkOGY3Yjc0MCgwMDAwKSBHUzpmZmZmODg4MDZjYzAwMDAwKDAwMDApIGtu bEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgIDU5LjYyNDY0NV1bIFQyNzg4XSBDUzogIDAwMTAgRFM6 IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsgICA1OS42MjU4NzVdWyBUMjc4 MF0gdGlwYzogU3RhcnRlZCBpbiBzaW5nbGUgbm9kZSBtb2RlClsgICA1OS42MjYxMjhdWyBUMjc4 OF0gQ1IyOiAwMDAwN2Y1N2Q4ODdhOGMwIENSMzogMDAwMDAwMDA0YjE0MDAwMiBDUjQ6IDAwMDAw MDAwMDAwNjA2ZTAKWyAgIDU5LjYzMzk5MV1bIFQyNzg4XSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAg RFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAgNTkuNjM1MTk1 XVsgVDI3ODhdIERSMzogMDAwMDAwMDAwMDAwMDAwMCBEUjY6IDAwMDAwMDAwZmZmZTBmZjAgRFI3 OiAwMDAwMDAwMDAwMDAwNDAwClsgICA1OS42MzY0NzhdWyBUMjc4OF0gQ2FsbCBUcmFjZToKWyAg IDU5LjYzNzAyNV1bIFQyNzg4XSAgdGlwY19ubF9hZGRfYmNfbGluaysweDE3OS8weDE0NzAgW3Rp cGNdClsgICA1OS42MzgyMTldWyBUMjc4OF0gID8gbG9ja19kb3duZ3JhZGUrMHg2ZTAvMHg2ZTAK WyAgIDU5LjYzODkyM11bIFQyNzg4XSAgPyBfX3RpcGNfbmxfYWRkX2xpbmsrMHhmOTAvMHhmOTAg W3RpcGNdClsgICA1OS42Mzk1MzNdWyBUMjc4OF0gID8gdGlwY19ubF9ub2RlX2R1bXBfbGluaysw eDMxOC8weGE1MCBbdGlwY10KWyAgIDU5LjY0MDE2MF1bIFQyNzg4XSAgPyBtdXRleF9sb2NrX2lv X25lc3RlZCsweDEzODAvMHgxMzgwClsgICA1OS42NDA3NDZdWyBUMjc4OF0gIHRpcGNfbmxfbm9k ZV9kdW1wX2xpbmsrMHg0ZmQvMHhhNTAgW3RpcGNdClsgICA1OS42NDEzNTZdWyBUMjc4OF0gID8g dGlwY19ubF9ub2RlX3Jlc2V0X2xpbmtfc3RhdHMrMHgzNDAvMHgzNDAgW3RpcGNdClsgICA1OS42 NDIwODhdWyBUMjc4OF0gID8gX19za2JfZXh0X2RlbCsweDI3MC8weDI3MApbICAgNTkuNjQyNTk0 XVsgVDI3ODhdICBnZW5sX2xvY2tfZHVtcGl0KzB4ODUvMHhiMApbICAgNTkuNjQzMDUwXVsgVDI3 ODhdICBuZXRsaW5rX2R1bXArMHg0OWMvMHhlZDAKWyAgIDU5LjY0MzUyOV1bIFQyNzg4XSAgPyBf X25ldGxpbmtfc2VuZHNrYisweGMwLzB4YzAKWyAgIDU5LjY0NDA0NF1bIFQyNzg4XSAgPyBfX25l dGxpbmtfZHVtcF9zdGFydCsweDE5MC8weDgwMApbICAgNTkuNjQ0NjE3XVsgVDI3ODhdICA/IF9f bXV0ZXhfdW5sb2NrX3Nsb3dwYXRoKzB4ZDAvMHg2NzAKWyAgIDU5LjY0NTE3N11bIFQyNzg4XSAg X19uZXRsaW5rX2R1bXBfc3RhcnQrMHg1YTAvMHg4MDAKWyAgIDU5LjY0NTY5Ml1bIFQyNzg4XSAg Z2VubF9yY3ZfbXNnKzB4YTc1LzB4ZTkwClsgICA1OS42NDYxNDRdWyBUMjc4OF0gID8gX19sb2Nr X2FjcXVpcmUrMHhkZmUvMHgzZGUwClsgICA1OS42NDY2OTJdWyBUMjc4OF0gID8gZ2VubF9mYW1p bHlfcmN2X21zZ19hdHRyc19wYXJzZSsweDMyMC8weDMyMApbICAgNTkuNjQ3MzQwXVsgVDI3ODhd ICA/IGdlbmxfbG9ja19kdW1waXQrMHhiMC8weGIwClsgICA1OS42NDc4MjFdWyBUMjc4OF0gID8g Z2VubF91bmxvY2srMHgyMC8weDIwClsgICA1OS42NDgyOTBdWyBUMjc4OF0gID8gZ2VubF9wYXJh bGxlbF9kb25lKzB4ZTAvMHhlMApbICAgNTkuNjQ4Nzg3XVsgVDI3ODhdICA/IGZpbmRfaGVsZF9s b2NrKzB4MzkvMHgxZDAKWyAgIDU5LjY0OTI3Nl1bIFQyNzg4XSAgPyBnZW5sX3JjdisweDE1LzB4 NDAKWyAgIDU5LjY0OTcyMl1bIFQyNzg4XSAgPyBsb2NrX2NvbnRlbmRlZCsweGNkMC8weGNkMApb ICAgNTkuNjUwMjk2XVsgVDI3ODhdICBuZXRsaW5rX3Jjdl9za2IrMHgxMjEvMHgzNTAKWyAgIDU5 LjY1MDgyOF1bIFQyNzg4XSAgPyBnZW5sX2ZhbWlseV9yY3ZfbXNnX2F0dHJzX3BhcnNlKzB4MzIw LzB4MzIwClsgICA1OS42NTE0OTFdWyBUMjc4OF0gID8gbmV0bGlua19hY2srMHg5NDAvMHg5NDAK WyAgIDU5LjY1MTk1M11bIFQyNzg4XSAgPyBsb2NrX2FjcXVpcmUrMHgxNjQvMHgzYjAKWyAgIDU5 LjY1MjQ0OV1bIFQyNzg4XSAgZ2VubF9yY3YrMHgyNC8weDQwClsgICA1OS42NTI4NDFdWyBUMjc4 OF0gIG5ldGxpbmtfdW5pY2FzdCsweDQyMS8weDYwMApbIC4uLiBdCgpGaXhlczogN2U0MzY5MDU3 ODA2ICgidGlwYzogZml4IGEgc2xhYiBvYmplY3QgbGVhayIpCkZpeGVzOiBhNjJmYmNjZWNkNjIg KCJ0aXBjOiBtYWtlIHN1YnNjcmliZXIgc2VydmVyIHN1cHBvcnQgbmV0IG5hbWVzcGFjZSIpClNp Z25lZC1vZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEpv biBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL2NvcmUuYyB8IDI5ICsr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9u cygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3RpcGMvY29yZS5jIGIvbmV0 L3RpcGMvY29yZS5jCmluZGV4IDhmMzUwNjBhMjRlMS4uMTIxOTJlN2Y0MDUwIDEwMDY0NAotLS0g YS9uZXQvdGlwYy9jb3JlLmMKKysrIGIvbmV0L3RpcGMvY29yZS5jCkBAIC0xMjUsMTQgKzEyNSw2 IEBAIHN0YXRpYyBpbnQgX19pbml0IHRpcGNfaW5pdCh2b2lkKQogCXN5c2N0bF90aXBjX3JtZW1b MV0gPSBSQ1ZCVUZfREVGOwogCXN5c2N0bF90aXBjX3JtZW1bMl0gPSBSQ1ZCVUZfTUFYOwogCi0J ZXJyID0gdGlwY19uZXRsaW5rX3N0YXJ0KCk7Ci0JaWYgKGVycikKLQkJZ290byBvdXRfbmV0bGlu azsKLQotCWVyciA9IHRpcGNfbmV0bGlua19jb21wYXRfc3RhcnQoKTsKLQlpZiAoZXJyKQotCQln b3RvIG91dF9uZXRsaW5rX2NvbXBhdDsKLQogCWVyciA9IHRpcGNfcmVnaXN0ZXJfc3lzY3RsKCk7 CiAJaWYgKGVycikKIAkJZ290byBvdXRfc3lzY3RsOwpAQCAtMTUzLDggKzE0NSwyMSBAQCBzdGF0 aWMgaW50IF9faW5pdCB0aXBjX2luaXQodm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIG91dF9iZWFy ZXI7CiAKKwllcnIgPSB0aXBjX25ldGxpbmtfc3RhcnQoKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91 dF9uZXRsaW5rOworCisJZXJyID0gdGlwY19uZXRsaW5rX2NvbXBhdF9zdGFydCgpOworCWlmIChl cnIpCisJCWdvdG8gb3V0X25ldGxpbmtfY29tcGF0OworCiAJcHJfaW5mbygiU3RhcnRlZCBpbiBz aW5nbGUgbm9kZSBtb2RlXG4iKTsKIAlyZXR1cm4gMDsKKworb3V0X25ldGxpbmtfY29tcGF0Ogor CXRpcGNfbmV0bGlua19zdG9wKCk7CitvdXRfbmV0bGluazoKKwl0aXBjX2JlYXJlcl9jbGVhbnVw KCk7CiBvdXRfYmVhcmVyOgogCXVucmVnaXN0ZXJfcGVybmV0X2RldmljZSgmdGlwY190b3BzcnZf bmV0X29wcyk7CiBvdXRfcGVybmV0X3RvcHNydjoKQEAgLTE2NCwyMiArMTY5LDE4IEBAIHN0YXRp YyBpbnQgX19pbml0IHRpcGNfaW5pdCh2b2lkKQogb3V0X3Blcm5ldDoKIAl0aXBjX3VucmVnaXN0 ZXJfc3lzY3RsKCk7CiBvdXRfc3lzY3RsOgotCXRpcGNfbmV0bGlua19jb21wYXRfc3RvcCgpOwot b3V0X25ldGxpbmtfY29tcGF0OgotCXRpcGNfbmV0bGlua19zdG9wKCk7Ci1vdXRfbmV0bGluazoK IAlwcl9lcnIoIlVuYWJsZSB0byBzdGFydCBpbiBzaW5nbGUgbm9kZSBtb2RlXG4iKTsKIAlyZXR1 cm4gZXJyOwogfQogCiBzdGF0aWMgdm9pZCBfX2V4aXQgdGlwY19leGl0KHZvaWQpCiB7CisJdGlw Y19uZXRsaW5rX2NvbXBhdF9zdG9wKCk7CisJdGlwY19uZXRsaW5rX3N0b3AoKTsKIAl0aXBjX2Jl YXJlcl9jbGVhbnVwKCk7CiAJdW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNlKCZ0aXBjX3RvcHNydl9u ZXRfb3BzKTsKIAl0aXBjX3NvY2tldF9zdG9wKCk7CiAJdW5yZWdpc3Rlcl9wZXJuZXRfZGV2aWNl KCZ0aXBjX25ldF9vcHMpOwotCXRpcGNfbmV0bGlua19zdG9wKCk7Ci0JdGlwY19uZXRsaW5rX2Nv bXBhdF9zdG9wKCk7CiAJdGlwY191bnJlZ2lzdGVyX3N5c2N0bCgpOwogCiAJcHJfaW5mbygiRGVh Y3RpdmF0ZWRcbiIpOwotLSAKMi4yMC4xCgoKRnJvbSBlY2FlY2YwOGQ5Mzc4ZTk5NjE1NWVkMDk1 MzZmNjgyZDJmNjg1MDFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIdXkgTmd1eWVu IDxodXluQG1lbGxhbm94LmNvbT4KRGF0ZTogRnJpLCA2IFNlcCAyMDE5IDA5OjI4OjQ2IC0wNTAw ClN1YmplY3Q6IFtQQVRDSCAxNC8zOF0gbmV0L21seDVlOiBRdWVyeSBnbG9iYWwgcGF1c2Ugc3Rh dGUgYmVmb3JlIHNldHRpbmcKIHByaW8yYnVmZmVyCgpbIFVwc3RyZWFtIGNvbW1pdCA3M2U2NTUx Njk5YTMyZmFjNzAzY2VlYTA5MjE0ZDY1ODBlZGNmMmQ1IF0KCldoZW4gdGhlIHVzZXIgY2hhbmdl cyBwcmlvMmJ1ZmZlciBtYXBwaW5nIHdoaWxlIGdsb2JhbCBwYXVzZSBpcwplbmFibGVkLCBtbHg1 IGRyaXZlciBpbmNvcnJlY3RseSBzZXRzIGFsbCBhY3RpdmUgYnVmZmVycwooYnVmZmVyIHRoYXQg aGFzIGF0IGxlYXN0IG9uZSBwcmlvcml0eSBtYXBwZWQpIHRvIGxvc3N5LgoKU29sdXRpb246Cklm IGdsb2JhbCBwYXVzZSBpcyBlbmFibGVkLCBzZXQgYWxsIHRoZSBhY3RpdmUgYnVmZmVycyB0byBs b3NzbGVzcwppbiBwcmlvMmJ1ZmZlciBjb21tYW5kLgpBbHNvLCBhZGQgZXJyb3IgbWVzc2FnZSB3 aGVuIGJ1ZmZlciBzaXplIGlzIG5vdCBlbm91Z2ggdG8gbWVldAp4b2ZmIHRocmVzaG9sZC4KCkZp eGVzOiAwNjk2ZDYwODUzZDUgKCJuZXQvbWx4NWU6IFJlY2VpdmUgYnVmZmVyIGNvbmZpZ3VyYXRp b24iKQpTaWduZWQtb2ZmLWJ5OiBIdXkgTmd1eWVuIDxodXluQG1lbGxhbm94LmNvbT4KU2lnbmVk LW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL21l bGxhbm94L21seDUvY29yZS9lbi9wb3J0X2J1ZmZlci5jICAgICAgIHwgMjcgKysrKysrKysrKysr KysrKystLQogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vu L3BvcnRfYnVmZmVyLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4vcG9ydF9idWZmZXIuYwppbmRleCA2MzNiMTE3ZWIxM2UuLjk5YzdjZGQwNDA0YSAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnRfYnVm ZmVyLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3Bv cnRfYnVmZmVyLmMKQEAgLTE1NSw4ICsxNTUsMTEgQEAgc3RhdGljIGludCB1cGRhdGVfeG9mZl90 aHJlc2hvbGQoc3RydWN0IG1seDVlX3BvcnRfYnVmZmVyICpwb3J0X2J1ZmZlciwKIAkJfQogCiAJ CWlmIChwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnNpemUgPAotCQkgICAgKHhvZmYgKyBtYXhfbXR1 ICsgKDEgPDwgTUxYNUVfQlVGRkVSX0NFTExfU0hJRlQpKSkKKwkJICAgICh4b2ZmICsgbWF4X210 dSArICgxIDw8IE1MWDVFX0JVRkZFUl9DRUxMX1NISUZUKSkpIHsKKwkJCXByX2VycigiYnVmZmVy X3NpemVbJWRdPSVkIGlzIG5vdCBlbm91Z2ggZm9yIGxvc3NsZXNzIGJ1ZmZlclxuIiwKKwkJCSAg ICAgICBpLCBwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnNpemUpOwogCQkJcmV0dXJuIC1FTk9NRU07 CisJCX0KIAogCQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvZmYgPSBwb3J0X2J1ZmZlci0+YnVm ZmVyW2ldLnNpemUgLSB4b2ZmOwogCQlwb3J0X2J1ZmZlci0+YnVmZmVyW2ldLnhvbiAgPQpAQCAt MjMyLDYgKzIzNSwyNiBAQCBzdGF0aWMgaW50IHVwZGF0ZV9idWZmZXJfbG9zc3kodW5zaWduZWQg aW50IG1heF9tdHUsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQgZmlsbF9wZmNfZW4oc3Ry dWN0IG1seDVfY29yZV9kZXYgKm1kZXYsIHU4ICpwZmNfZW4pCit7CisJdTMyIGdfcnhfcGF1c2Us IGdfdHhfcGF1c2U7CisJaW50IGVycjsKKworCWVyciA9IG1seDVfcXVlcnlfcG9ydF9wYXVzZSht ZGV2LCAmZ19yeF9wYXVzZSwgJmdfdHhfcGF1c2UpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7 CisKKwkvKiBJZiBnbG9iYWwgcGF1c2UgZW5hYmxlZCwgc2V0IGFsbCBhY3RpdmUgYnVmZmVycyB0 byBsb3NzbGVzcy4KKwkgKiBPdGhlcndpc2UsIGNoZWNrIFBGQyBzZXR0aW5nLgorCSAqLworCWlm IChnX3J4X3BhdXNlIHx8IGdfdHhfcGF1c2UpCisJCSpwZmNfZW4gPSAweGZmOworCWVsc2UKKwkJ ZXJyID0gbWx4NV9xdWVyeV9wb3J0X3BmYyhtZGV2LCBwZmNfZW4sIE5VTEwpOworCisJcmV0dXJu IGVycjsKK30KKwogI2RlZmluZSBNSU5JTVVNX01BWF9NVFUgOTIxNgogaW50IG1seDVlX3BvcnRf bWFudWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAJCQkJICAgIHUz MiBjaGFuZ2UsIHVuc2lnbmVkIGludCBtdHUsCkBAIC0yNzcsNyArMzAwLDcgQEAgaW50IG1seDVl X3BvcnRfbWFudWFsX2J1ZmZlcl9jb25maWcoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAKIAlp ZiAoY2hhbmdlICYgTUxYNUVfUE9SVF9CVUZGRVJfUFJJTzJCVUZGRVIpIHsKIAkJdXBkYXRlX3By aW8yYnVmZmVyID0gdHJ1ZTsKLQkJZXJyID0gbWx4NV9xdWVyeV9wb3J0X3BmYyhwcml2LT5tZGV2 LCAmY3Vycl9wZmNfZW4sIE5VTEwpOworCQllcnIgPSBmaWxsX3BmY19lbihwcml2LT5tZGV2LCAm Y3Vycl9wZmNfZW4pOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKIAotLSAKMi4yMC4xCgoK RnJvbSA1MTdlZTY3MGFkMDA1NzgyMTBmZTExNzczYTE0NWNjM2RkMTAyYjI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4K RGF0ZTogV2VkLCA0IERlYyAyMDE5IDE1OjM1OjUyICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNS8z OF0gbmV0OiBpcHY2OiBhZGQgbmV0IGFyZ3VtZW50IHRvIGlwNl9kc3RfbG9va3VwX2Zsb3cKClsg VXBzdHJlYW0gY29tbWl0IGM0ZTg1ZjczYWZiNjM4NDEyM2U1ZWYxYmJhMzMxNWIyZTNhZDAzMWUg XQoKVGhpcyB3aWxsIGJlIHVzZWQgaW4gdGhlIGNvbnZlcnNpb24gb2YgaXB2Nl9zdHViIHRvIGlw Nl9kc3RfbG9va3VwX2Zsb3csCmFzIHNvbWUgbW9kdWxlcyBjdXJyZW50bHkgcGFzcyBhIG5ldCBh cmd1bWVudCB3aXRob3V0IGEgc29ja2V0IHRvCmlwNl9kc3RfbG9va3VwLiBUaGlzIGlzIGVxdWl2 YWxlbnQgdG8gY29tbWl0IDM0M2Q2MGFhZGE1YSAoImlwdjY6IGNoYW5nZQppcHY2X3N0dWJfaW1w bC5pcHY2X2RzdF9sb29rdXAgdG8gdGFrZSBuZXQgYXJndW1lbnQiKS4KClNpZ25lZC1vZmYtYnk6 IFNhYnJpbmEgRHVicm9jYSA8c2RAcXVlYXN5c25haWwubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvaXB2Ni5o ICAgICAgICAgICAgICAgfCAyICstCiBuZXQvZGNjcC9pcHY2LmMgICAgICAgICAgICAgICAgICB8 IDYgKysrLS0tCiBuZXQvaXB2Ni9hZl9pbmV0Ni5jICAgICAgICAgICAgICB8IDIgKy0KIG5ldC9p cHY2L2RhdGFncmFtLmMgICAgICAgICAgICAgIHwgMiArLQogbmV0L2lwdjYvaW5ldDZfY29ubmVj dGlvbl9zb2NrLmMgfCA0ICsrLS0KIG5ldC9pcHY2L2lwNl9vdXRwdXQuYyAgICAgICAgICAgIHwg OCArKysrLS0tLQogbmV0L2lwdjYvcmF3LmMgICAgICAgICAgICAgICAgICAgfCAyICstCiBuZXQv aXB2Ni9zeW5jb29raWVzLmMgICAgICAgICAgICB8IDIgKy0KIG5ldC9pcHY2L3RjcF9pcHY2LmMg ICAgICAgICAgICAgIHwgNCArKy0tCiBuZXQvbDJ0cC9sMnRwX2lwNi5jICAgICAgICAgICAgICB8 IDIgKy0KIG5ldC9zY3RwL2lwdjYuYyAgICAgICAgICAgICAgICAgIHwgNCArKy0tCiAxMSBmaWxl cyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9pbmNsdWRlL25ldC9pcHY2LmggYi9pbmNsdWRlL25ldC9pcHY2LmgKaW5kZXggMDA5NjA1YzU2 ZjIwLi5iNTliM2RhZTBmNzEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L2lwdjYuaAorKysgYi9p bmNsdWRlL25ldC9pcHY2LmgKQEAgLTEwMTcsNyArMTAxNyw3IEBAIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHNrX2J1ZmYgKmlwNl9maW5pc2hfc2tiKHN0cnVjdCBzb2NrICpzaykKIAogaW50IGlwNl9k c3RfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZHN0X2Vu dHJ5ICoqZHN0LAogCQkgICBzdHJ1Y3QgZmxvd2k2ICpmbDYpOwotc3RydWN0IGRzdF9lbnRyeSAq aXA2X2RzdF9sb29rdXBfZmxvdyhjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBmbG93aTYg KmZsNiwKK3N0cnVjdCBkc3RfZW50cnkgKmlwNl9kc3RfbG9va3VwX2Zsb3coc3RydWN0IG5ldCAq bmV0LCBjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBmbG93aTYgKmZsNiwKIAkJCQkgICAg ICBjb25zdCBzdHJ1Y3QgaW42X2FkZHIgKmZpbmFsX2RzdCk7CiBzdHJ1Y3QgZHN0X2VudHJ5ICpp cDZfc2tfZHN0X2xvb2t1cF9mbG93KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dpNiAqZmw2 LAogCQkJCQkgY29uc3Qgc3RydWN0IGluNl9hZGRyICpmaW5hbF9kc3QsCmRpZmYgLS1naXQgYS9u ZXQvZGNjcC9pcHY2LmMgYi9uZXQvZGNjcC9pcHY2LmMKaW5kZXggMjVhYWI2NzJmYzk5Li4xZTVl MDhjYzBiZmMgMTAwNjQ0Ci0tLSBhL25ldC9kY2NwL2lwdjYuYworKysgYi9uZXQvZGNjcC9pcHY2 LmMKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgaW50IGRjY3BfdjZfc2VuZF9yZXNwb25zZShj b25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCByZXF1ZXN0X3NvY2sgKnJlcQogCWZpbmFsX3Ag PSBmbDZfdXBkYXRlX2RzdCgmZmw2LCByY3VfZGVyZWZlcmVuY2UobnAtPm9wdCksICZmaW5hbCk7 CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCAm Zmw2LCBmaW5hbF9wKTsKKwlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwg c2ssICZmbDYsIGZpbmFsX3ApOwogCWlmIChJU19FUlIoZHN0KSkgewogCQllcnIgPSBQVFJfRVJS KGRzdCk7CiAJCWRzdCA9IE5VTEw7CkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIHZvaWQgZGNj cF92Nl9jdGxfc2VuZF9yZXNldChjb25zdCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZm ICpyeHNrYikKIAlzZWN1cml0eV9za2JfY2xhc3NpZnlfZmxvdyhyeHNrYiwgZmxvd2k2X3RvX2Zs b3dpKCZmbDYpKTsKIAogCS8qIHNrID0gTlVMTCwgYnV0IGl0IGlzIHNhZmUgZm9yIG5vdy4gUlNU IHNvY2tldCByZXF1aXJlZC4gKi8KLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KGN0bF9zaywg JmZsNiwgTlVMTCk7CisJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzb2NrX25ldChjdGxfc2sp LCBjdGxfc2ssICZmbDYsIE5VTEwpOwogCWlmICghSVNfRVJSKGRzdCkpIHsKIAkJc2tiX2RzdF9z ZXQoc2tiLCBkc3QpOwogCQlpcDZfeG1pdChjdGxfc2ssIHNrYiwgJmZsNiwgMCwgTlVMTCwgMCwg MCk7CkBAIC05MTIsNyArOTEyLDcgQEAgc3RhdGljIGludCBkY2NwX3Y2X2Nvbm5lY3Qoc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKnVhZGRyLAogCW9wdCA9IHJjdV9kZXJlZmVyZW5j ZV9wcm90ZWN0ZWQobnAtPm9wdCwgbG9ja2RlcF9zb2NrX2lzX2hlbGQoc2spKTsKIAlmaW5hbF9w ID0gZmw2X3VwZGF0ZV9kc3QoJmZsNiwgb3B0LCAmZmluYWwpOwogCi0JZHN0ID0gaXA2X2RzdF9s b29rdXBfZmxvdyhzaywgJmZsNiwgZmluYWxfcCk7CisJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxv dyhzb2NrX25ldChzayksIHNrLCAmZmw2LCBmaW5hbF9wKTsKIAlpZiAoSVNfRVJSKGRzdCkpIHsK IAkJZXJyID0gUFRSX0VSUihkc3QpOwogCQlnb3RvIGZhaWx1cmU7CmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9hZl9pbmV0Ni5jIGIvbmV0L2lwdjYvYWZfaW5ldDYuYwppbmRleCBlZjM3ZTA1NzRmNTQu LjllMDViNzI3NjAyMiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWZfaW5ldDYuYworKysgYi9uZXQv aXB2Ni9hZl9pbmV0Ni5jCkBAIC03NjUsNyArNzY1LDcgQEAgaW50IGluZXQ2X3NrX3JlYnVpbGRf aGVhZGVyKHN0cnVjdCBzb2NrICpzaykKIAkJCQkJICZmaW5hbCk7CiAJCXJjdV9yZWFkX3VubG9j aygpOwogCi0JCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssICZmbDYsIGZpbmFsX3ApOwor CQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFs X3ApOwogCQlpZiAoSVNfRVJSKGRzdCkpIHsKIAkJCXNrLT5za19yb3V0ZV9jYXBzID0gMDsKIAkJ CXNrLT5za19lcnJfc29mdCA9IC1QVFJfRVJSKGRzdCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9k YXRhZ3JhbS5jIGIvbmV0L2lwdjYvZGF0YWdyYW0uYwppbmRleCA5NmY5MzkyNDhkMmYuLjM5MGJl ZGRlMjFhNSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvZGF0YWdyYW0uYworKysgYi9uZXQvaXB2Ni9k YXRhZ3JhbS5jCkBAIC04NSw3ICs4NSw3IEBAIGludCBpcDZfZGF0YWdyYW1fZHN0X3VwZGF0ZShz dHJ1Y3Qgc29jayAqc2ssIGJvb2wgZml4X3NrX3NhZGRyKQogCWZpbmFsX3AgPSBmbDZfdXBkYXRl X2RzdCgmZmw2LCBvcHQsICZmaW5hbCk7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLQlkc3QgPSBp cDZfZHN0X2xvb2t1cF9mbG93KHNrLCAmZmw2LCBmaW5hbF9wKTsKKwlkc3QgPSBpcDZfZHN0X2xv b2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCWlmIChJU19FUlIo ZHN0KSkgewogCQllcnIgPSBQVFJfRVJSKGRzdCk7CiAJCWdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEv bmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2Ni9pbmV0Nl9jb25uZWN0 aW9uX3NvY2suYwppbmRleCAwYTA5NDVhNWIzMGQuLmZlOWNiOGQxYWRjYSAxMDA2NDQKLS0tIGEv bmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0L2lwdjYvaW5ldDZfY29u bmVjdGlvbl9zb2NrLmMKQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IGRzdF9lbnRyeSAqaW5ldDZf Y3NrX3JvdXRlX3JlcShjb25zdCBzdHJ1Y3Qgc29jayAqc2ssCiAJZmw2LT5mbG93aTZfdWlkID0g c2stPnNrX3VpZDsKIAlzZWN1cml0eV9yZXFfY2xhc3NpZnlfZmxvdyhyZXEsIGZsb3dpNl90b19m bG93aShmbDYpKTsKIAotCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgZmluYWxf cCk7CisJZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhzb2NrX25ldChzayksIHNrLCBmbDYsIGZp bmFsX3ApOwogCWlmIChJU19FUlIoZHN0KSkKIAkJcmV0dXJuIE5VTEw7CiAKQEAgLTEwMyw3ICsx MDMsNyBAQCBzdGF0aWMgc3RydWN0IGRzdF9lbnRyeSAqaW5ldDZfY3NrX3JvdXRlX3NvY2tldChz dHJ1Y3Qgc29jayAqc2ssCiAKIAlkc3QgPSBfX2luZXQ2X2Nza19kc3RfY2hlY2soc2ssIG5wLT5k c3RfY29va2llKTsKIAlpZiAoIWRzdCkgewotCQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNr LCBmbDYsIGZpbmFsX3ApOworCQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNr KSwgc2ssIGZsNiwgZmluYWxfcCk7CiAKIAkJaWYgKCFJU19FUlIoZHN0KSkKIAkJCWlwNl9kc3Rf c3RvcmUoc2ssIGRzdCwgTlVMTCwgTlVMTCk7CmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfb3V0 cHV0LmMgYi9uZXQvaXB2Ni9pcDZfb3V0cHV0LmMKaW5kZXggNzE4MjdiNTZjMDA2Li43OGQ0OTU1 ODFkNjkgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2Ni9p cDZfb3V0cHV0LmMKQEAgLTExNDQsMTkgKzExNDQsMTkgQEAgRVhQT1JUX1NZTUJPTF9HUEwoaXA2 X2RzdF9sb29rdXApOwogICoJSXQgcmV0dXJucyBhIHZhbGlkIGRzdCBwb2ludGVyIG9uIHN1Y2Nl c3MsIG9yIGEgcG9pbnRlciBlbmNvZGVkCiAgKgllcnJvciBjb2RlLgogICovCi1zdHJ1Y3QgZHN0 X2VudHJ5ICppcDZfZHN0X2xvb2t1cF9mbG93KGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0 IGZsb3dpNiAqZmw2LAorc3RydWN0IGRzdF9lbnRyeSAqaXA2X2RzdF9sb29rdXBfZmxvdyhzdHJ1 Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGZsb3dpNiAqZmw2LAog CQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZmluYWxfZHN0KQogewogCXN0cnVjdCBk c3RfZW50cnkgKmRzdCA9IE5VTEw7CiAJaW50IGVycjsKIAotCWVyciA9IGlwNl9kc3RfbG9va3Vw X3RhaWwoc29ja19uZXQoc2spLCBzaywgJmRzdCwgZmw2KTsKKwllcnIgPSBpcDZfZHN0X2xvb2t1 cF90YWlsKG5ldCwgc2ssICZkc3QsIGZsNik7CiAJaWYgKGVycikKIAkJcmV0dXJuIEVSUl9QVFIo ZXJyKTsKIAlpZiAoZmluYWxfZHN0KQogCQlmbDYtPmRhZGRyID0gKmZpbmFsX2RzdDsKIAotCXJl dHVybiB4ZnJtX2xvb2t1cF9yb3V0ZShzb2NrX25ldChzayksIGRzdCwgZmxvd2k2X3RvX2Zsb3dp KGZsNiksIHNrLCAwKTsKKwlyZXR1cm4geGZybV9sb29rdXBfcm91dGUobmV0LCBkc3QsIGZsb3dp Nl90b19mbG93aShmbDYpLCBzaywgMCk7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpcDZfZHN0X2xv b2t1cF9mbG93KTsKIApAQCAtMTE4OCw3ICsxMTg4LDcgQEAgc3RydWN0IGRzdF9lbnRyeSAqaXA2 X3NrX2RzdF9sb29rdXBfZmxvdyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBmbG93aTYgKmZsNiwK IAlpZiAoZHN0KQogCQlyZXR1cm4gZHN0OwogCi0JZHN0ID0gaXA2X2RzdF9sb29rdXBfZmxvdyhz aywgZmw2LCBmaW5hbF9kc3QpOworCWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc29ja19uZXQo c2spLCBzaywgZmw2LCBmaW5hbF9kc3QpOwogCWlmIChjb25uZWN0ZWQgJiYgIUlTX0VSUihkc3Qp KQogCQlpcDZfc2tfZHN0X3N0b3JlX2Zsb3coc2ssIGRzdF9jbG9uZShkc3QpLCBmbDYpOwogCmRp ZmYgLS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBiL25ldC9pcHY2L3Jhdy5jCmluZGV4IGE3N2Y2Yjdk M2E3Yy4uZGZlNWU2MDNmZmUxIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9yYXcuYworKysgYi9uZXQv aXB2Ni9yYXcuYwpAQCAtOTI1LDcgKzkyNSw3IEBAIHN0YXRpYyBpbnQgcmF3djZfc2VuZG1zZyhz dHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAogCWZsNi5m bG93bGFiZWwgPSBpcDZfbWFrZV9mbG93aW5mbyhpcGM2LnRjbGFzcywgZmw2LmZsb3dsYWJlbCk7 CiAKLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCAmZmw2LCBmaW5hbF9wKTsKKwlkc3Qg PSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwog CWlmIChJU19FUlIoZHN0KSkgewogCQllcnIgPSBQVFJfRVJSKGRzdCk7CiAJCWdvdG8gb3V0Owpk aWZmIC0tZ2l0IGEvbmV0L2lwdjYvc3luY29va2llcy5jIGIvbmV0L2lwdjYvc3luY29va2llcy5j CmluZGV4IDE2NjMyZTAyZTliMC4uMzA5MTVmNmYzMWUzIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9z eW5jb29raWVzLmMKKysrIGIvbmV0L2lwdjYvc3luY29va2llcy5jCkBAIC0yMzUsNyArMjM1LDcg QEAgc3RydWN0IHNvY2sgKmNvb2tpZV92Nl9jaGVjayhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IpCiAJCWZsNi5mbG93aTZfdWlkID0gc2stPnNrX3VpZDsKIAkJc2VjdXJpdHlf cmVxX2NsYXNzaWZ5X2Zsb3cocmVxLCBmbG93aTZfdG9fZmxvd2koJmZsNikpOwogCi0JCWRzdCA9 IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssICZmbDYsIGZpbmFsX3ApOworCQlkc3QgPSBpcDZfZHN0 X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCQlpZiAoSVNf RVJSKGRzdCkpCiAJCQlnb3RvIG91dF9mcmVlOwogCX0KZGlmZiAtLWdpdCBhL25ldC9pcHY2L3Rj cF9pcHY2LmMgYi9uZXQvaXB2Ni90Y3BfaXB2Ni5jCmluZGV4IDQ4MDRiNmRjNWU2NS4uYjQyZmE0 MWNmY2ViIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni90Y3BfaXB2Ni5jCisrKyBiL25ldC9pcHY2L3Rj cF9pcHY2LmMKQEAgLTI3NSw3ICsyNzUsNyBAQCBzdGF0aWMgaW50IHRjcF92Nl9jb25uZWN0KHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNvY2thZGRyICp1YWRkciwKIAogCXNlY3VyaXR5X3NrX2Ns YXNzaWZ5X2Zsb3coc2ssIGZsb3dpNl90b19mbG93aSgmZmw2KSk7CiAKLQlkc3QgPSBpcDZfZHN0 X2xvb2t1cF9mbG93KHNrLCAmZmw2LCBmaW5hbF9wKTsKKwlkc3QgPSBpcDZfZHN0X2xvb2t1cF9m bG93KHNvY2tfbmV0KHNrKSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCWlmIChJU19FUlIoZHN0KSkg ewogCQllcnIgPSBQVFJfRVJSKGRzdCk7CiAJCWdvdG8gZmFpbHVyZTsKQEAgLTkwNiw3ICs5MDYs NyBAQCBzdGF0aWMgdm9pZCB0Y3BfdjZfc2VuZF9yZXNwb25zZShjb25zdCBzdHJ1Y3Qgc29jayAq c2ssIHN0cnVjdCBza19idWZmICpza2IsIHUzMgogCSAqIFVuZGVybHlpbmcgZnVuY3Rpb24gd2ls bCB1c2UgdGhpcyB0byByZXRyaWV2ZSB0aGUgbmV0d29yawogCSAqIG5hbWVzcGFjZQogCSAqLwot CWRzdCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coY3RsX3NrLCAmZmw2LCBOVUxMKTsKKwlkc3QgPSBp cDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KGN0bF9zayksIGN0bF9zaywgJmZsNiwgTlVMTCk7 CiAJaWYgKCFJU19FUlIoZHN0KSkgewogCQlza2JfZHN0X3NldChidWZmLCBkc3QpOwogCQlpcDZf eG1pdChjdGxfc2ssIGJ1ZmYsICZmbDYsIGZsNi5mbG93aTZfbWFyaywgTlVMTCwgdGNsYXNzLApk aWZmIC0tZ2l0IGEvbmV0L2wydHAvbDJ0cF9pcDYuYyBiL25ldC9sMnRwL2wydHBfaXA2LmMKaW5k ZXggODAyZjE5YWJhN2UzLi5kMTQ4NzY2ZjQwZDEgMTAwNjQ0Ci0tLSBhL25ldC9sMnRwL2wydHBf aXA2LmMKKysrIGIvbmV0L2wydHAvbDJ0cF9pcDYuYwpAQCAtNjE1LDcgKzYxNSw3IEBAIHN0YXRp YyBpbnQgbDJ0cF9pcDZfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1z Zywgc2l6ZV90IGxlbikKIAogCWZsNi5mbG93bGFiZWwgPSBpcDZfbWFrZV9mbG93aW5mbyhpcGM2 LnRjbGFzcywgZmw2LmZsb3dsYWJlbCk7CiAKLQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNr LCAmZmw2LCBmaW5hbF9wKTsKKwlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNr KSwgc2ssICZmbDYsIGZpbmFsX3ApOwogCWlmIChJU19FUlIoZHN0KSkgewogCQllcnIgPSBQVFJf RVJSKGRzdCk7CiAJCWdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEvbmV0L3NjdHAvaXB2Ni5jIGIvbmV0 L3NjdHAvaXB2Ni5jCmluZGV4IGRkODYwZmVhMDE0OC4uYmM3MzRjZmFhMjllIDEwMDY0NAotLS0g YS9uZXQvc2N0cC9pcHY2LmMKKysrIGIvbmV0L3NjdHAvaXB2Ni5jCkBAIC0yNzUsNyArMjc1LDcg QEAgc3RhdGljIHZvaWQgc2N0cF92Nl9nZXRfZHN0KHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdCwg dW5pb24gc2N0cF9hZGRyICpzYWRkciwKIAlmaW5hbF9wID0gZmw2X3VwZGF0ZV9kc3QoZmw2LCBy Y3VfZGVyZWZlcmVuY2UobnAtPm9wdCksICZmaW5hbCk7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAK LQlkc3QgPSBpcDZfZHN0X2xvb2t1cF9mbG93KHNrLCBmbDYsIGZpbmFsX3ApOworCWRzdCA9IGlw Nl9kc3RfbG9va3VwX2Zsb3coc29ja19uZXQoc2spLCBzaywgZmw2LCBmaW5hbF9wKTsKIAlpZiAo IWFzb2MgfHwgc2FkZHIpCiAJCWdvdG8gb3V0OwogCkBAIC0zMjgsNyArMzI4LDcgQEAgc3RhdGlj IHZvaWQgc2N0cF92Nl9nZXRfZHN0KHN0cnVjdCBzY3RwX3RyYW5zcG9ydCAqdCwgdW5pb24gc2N0 cF9hZGRyICpzYWRkciwKIAkJZmw2LT5zYWRkciA9IGxhZGRyLT5hLnY2LnNpbjZfYWRkcjsKIAkJ Zmw2LT5mbDZfc3BvcnQgPSBsYWRkci0+YS52Ni5zaW42X3BvcnQ7CiAJCWZpbmFsX3AgPSBmbDZf dXBkYXRlX2RzdChmbDYsIHJjdV9kZXJlZmVyZW5jZShucC0+b3B0KSwgJmZpbmFsKTsKLQkJYmRz dCA9IGlwNl9kc3RfbG9va3VwX2Zsb3coc2ssIGZsNiwgZmluYWxfcCk7CisJCWJkc3QgPSBpcDZf ZHN0X2xvb2t1cF9mbG93KHNvY2tfbmV0KHNrKSwgc2ssIGZsNiwgZmluYWxfcCk7CiAKIAkJaWYg KElTX0VSUihiZHN0KSkKIAkJCWNvbnRpbnVlOwotLSAKMi4yMC4xCgoKRnJvbSA3OWNmYTFhYjY3 OTJiNTYzN2FhZTJmNzhiYWUyZmNlOGIzYmE1Njc2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBTYWJyaW5hIER1YnJvY2EgPHNkQHF1ZWFzeXNuYWlsLm5ldD4KRGF0ZTogV2VkLCA0IERl YyAyMDE5IDE1OjM1OjUzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNi8zOF0gbmV0OiBpcHY2X3N0 dWI6IHVzZSBpcDZfZHN0X2xvb2t1cF9mbG93IGluc3RlYWQgb2YKIGlwNl9kc3RfbG9va3VwCgpb IFVwc3RyZWFtIGNvbW1pdCA2Yzg5OTFmNDE1NDZjM2M0NzI1MDNkZmYxZWE5ZGFhZGRmOTMzMWMy IF0KCmlwdjZfc3R1YiB1c2VzIHRoZSBpcDZfZHN0X2xvb2t1cCBmdW5jdGlvbiB0byBhbGxvdyBv dGhlciBtb2R1bGVzIHRvCnBlcmZvcm0gSVB2NiBsb29rdXBzLiBIb3dldmVyLCB0aGlzIGZ1bmN0 aW9uIHNraXBzIHRoZSBYRlJNIGxheWVyCmVudGlyZWx5LgoKQWxsIHVzZXJzIG9mIGlwdjZfc3R1 Yi0+aXA2X2RzdF9sb29rdXAgdXNlIGlwX3JvdXRlX291dHB1dF9mbG93ICh2aWEgdGhlCmlwX3Jv dXRlX291dHB1dF9rZXkgYW5kIGlwX3JvdXRlX291dHB1dCBoZWxwZXJzKSBmb3IgdGhlaXIgSVB2 NCBsb29rdXBzLAp3aGljaCBjYWxscyB4ZnJtX2xvb2t1cF9yb3V0ZSgpLiBUaGlzIHBhdGNoIGZp eGVzIHRoaXMgaW5jb25zaXN0ZW50CmJlaGF2aW9yIGJ5IHN3aXRjaGluZyB0aGUgc3R1YiB0byBp cDZfZHN0X2xvb2t1cF9mbG93LCB3aGljaCBhbHNvIGNhbGxzCnhmcm1fbG9va3VwX3JvdXRlKCku CgpUaGlzIHJlcXVpcmVzIHNvbWUgY2hhbmdlcyBpbiBhbGwgdGhlIGNhbGxlcnMsIGFzIHRoZXNl IHR3byBmdW5jdGlvbnMKdGFrZSBkaWZmZXJlbnQgYXJndW1lbnRzIGFuZCBoYXZlIGRpZmZlcmVu dCByZXR1cm4gdHlwZXMuCgpGaXhlczogNWY4MWJkMmU1ZDgwICgiaXB2NjogZXhwb3J0IGEgc3R1 YiBmb3IgSVB2NiBzeW1ib2xzIHVzZWQgYnkgdnhsYW4iKQpSZXBvcnRlZC1ieTogWGl1bWVpIE11 IDx4bXVAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FicmluYSBEdWJyb2NhIDxzZEBxdWVh c3lzbmFpbC5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMgICAgICAgICAgICAg ICAgICAgICAgfCAgNyArKystLS0tCiBkcml2ZXJzL2luZmluaWJhbmQvc3cvcnhlL3J4ZV9uZXQu YyAgICAgICAgICAgICAgICAgfCAgOCArKysrKy0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5jIHwgIDggKysrKy0tLS0KIGRyaXZlcnMvbmV0L2dl bmV2ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrKy0KIGRyaXZlcnMv bmV0L3Z4bGFuLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKy0tLS0t CiBpbmNsdWRlL25ldC9pcHY2X3N0dWJzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NiArKysrLS0KIG5ldC9jb3JlL2x3dF9icGYuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA0ICstLS0KIG5ldC9pcHY2L2FkZHJjb25mX2NvcmUuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDExICsrKysrKy0tLS0tCiBuZXQvaXB2Ni9hZl9pbmV0Ni5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L21wbHMvYWZfbXBscy5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrLS0tLQogbmV0L3RpcGMvdWRwX21l ZGlhLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDkgKysrKysrLS0tCiAxMSBm aWxlcyBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2luZmluaWJhbmQvY29yZS9hZGRyLmMgYi9kcml2ZXJzL2luZmluaWJhbmQv Y29yZS9hZGRyLmMKaW5kZXggNmQ3ZWMzNzFlN2IyLi42MDZmYTZkODY2ODUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvaW5maW5pYmFuZC9jb3JlL2FkZHIuYworKysgYi9kcml2ZXJzL2luZmluaWJhbmQv Y29yZS9hZGRyLmMKQEAgLTQyMSwxNiArNDIxLDE1IEBAIHN0YXRpYyBpbnQgYWRkcjZfcmVzb2x2 ZShzdHJ1Y3Qgc29ja2FkZHIgKnNyY19zb2NrLAogCQkJCShjb25zdCBzdHJ1Y3Qgc29ja2FkZHJf aW42ICopZHN0X3NvY2s7CiAJc3RydWN0IGZsb3dpNiBmbDY7CiAJc3RydWN0IGRzdF9lbnRyeSAq ZHN0OwotCWludCByZXQ7CiAKIAltZW1zZXQoJmZsNiwgMCwgc2l6ZW9mIGZsNik7CiAJZmw2LmRh ZGRyID0gZHN0X2luLT5zaW42X2FkZHI7CiAJZmw2LnNhZGRyID0gc3JjX2luLT5zaW42X2FkZHI7 CiAJZmw2LmZsb3dpNl9vaWYgPSBhZGRyLT5ib3VuZF9kZXZfaWY7CiAKLQlyZXQgPSBpcHY2X3N0 dWItPmlwdjZfZHN0X2xvb2t1cChhZGRyLT5uZXQsIE5VTEwsICZkc3QsICZmbDYpOwotCWlmIChy ZXQgPCAwKQotCQlyZXR1cm4gcmV0OworCWRzdCA9IGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9va3Vw X2Zsb3coYWRkci0+bmV0LCBOVUxMLCAmZmw2LCBOVUxMKTsKKwlpZiAoSVNfRVJSKGRzdCkpCisJ CXJldHVybiBQVFJfRVJSKGRzdCk7CiAKIAlpZiAoaXB2Nl9hZGRyX2FueSgmc3JjX2luLT5zaW42 X2FkZHIpKQogCQlzcmNfaW4tPnNpbjZfYWRkciA9IGZsNi5zYWRkcjsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jIGIvZHJpdmVycy9pbmZpbmliYW5kL3N3 L3J4ZS9yeGVfbmV0LmMKaW5kZXggNWEzNDc0ZjkzNTFiLi4zMTJjMmZjOTYxYzAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvaW5maW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jCisrKyBiL2RyaXZlcnMvaW5m aW5pYmFuZC9zdy9yeGUvcnhlX25ldC5jCkBAIC0xMTcsMTAgKzExNywxMiBAQCBzdGF0aWMgc3Ry dWN0IGRzdF9lbnRyeSAqcnhlX2ZpbmRfcm91dGU2KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAog CW1lbWNweSgmZmw2LmRhZGRyLCBkYWRkciwgc2l6ZW9mKCpkYWRkcikpOwogCWZsNi5mbG93aTZf cHJvdG8gPSBJUFBST1RPX1VEUDsKIAotCWlmICh1bmxpa2VseShpcHY2X3N0dWItPmlwdjZfZHN0 X2xvb2t1cChzb2NrX25ldChyZWN2X3NvY2tldHMuc2s2LT5zayksCi0JCQkJCQlyZWN2X3NvY2tl dHMuc2s2LT5zaywgJm5kc3QsICZmbDYpKSkgeworCW5kc3QgPSBpcHY2X3N0dWItPmlwdjZfZHN0 X2xvb2t1cF9mbG93KHNvY2tfbmV0KHJlY3Zfc29ja2V0cy5zazYtPnNrKSwKKwkJCQkJICAgICAg IHJlY3Zfc29ja2V0cy5zazYtPnNrLCAmZmw2LAorCQkJCQkgICAgICAgTlVMTCk7CisJaWYgKHVu bGlrZWx5KElTX0VSUihuZHN0KSkpIHsKIAkJcHJfZXJyX3JhdGVsaW1pdGVkKCJubyByb3V0ZSB0 byAlcEk2XG4iLCBkYWRkcik7Ci0JCWdvdG8gcHV0OworCQlyZXR1cm4gTlVMTDsKIAl9CiAKIAlp ZiAodW5saWtlbHkobmRzdC0+ZXJyb3IpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmMKaW5kZXggNzQ1YWI2Y2Q3YzMwLi4zNjJm MDFiYzgzNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbi90Y190dW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1 L2NvcmUvZW4vdGNfdHVuLmMKQEAgLTE0NCwxMCArMTQ0LDEwIEBAIHN0YXRpYyBpbnQgbWx4NWVf cm91dGVfbG9va3VwX2lwdjYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCiAjaWYgSVNfRU5BQkxF RChDT05GSUdfSU5FVCkgJiYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKIAlpbnQgcmV0OwogCi0J cmV0ID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29rdXAoZGV2X25ldChtaXJyZWRfZGV2KSwgTlVM TCwgJmRzdCwKLQkJCQkJIGZsNik7Ci0JaWYgKHJldCA8IDApCi0JCXJldHVybiByZXQ7CisJZHN0 ID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29rdXBfZmxvdyhkZXZfbmV0KG1pcnJlZF9kZXYpLCBO VUxMLCBmbDYsCisJCQkJCSAgICAgIE5VTEwpOworCWlmIChJU19FUlIoZHN0KSkKKwkJcmV0dXJu IFBUUl9FUlIoZHN0KTsKIAogCWlmICghKCpvdXRfdHRsKSkKIAkJKm91dF90dGwgPSBpcDZfZHN0 X2hvcGxpbWl0KGRzdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9nZW5ldmUuYyBiL2RyaXZl cnMvbmV0L2dlbmV2ZS5jCmluZGV4IDNhYjI0ZmRjY2QzYi4uNWM2YjdmYzA0ZWE2IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9nZW5ldmUuYworKysgYi9kcml2ZXJzL25ldC9nZW5ldmUuYwpAQCAt ODUzLDcgKzg1Myw5IEBAIHN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICpnZW5ldmVfZ2V0X3Y2X2Rz dChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQlpZiAoZHN0KQogCQkJcmV0dXJuIGRzdDsKIAl9Ci0J aWYgKGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9va3VwKGdlbmV2ZS0+bmV0LCBnczYtPnNvY2stPnNr LCAmZHN0LCBmbDYpKSB7CisJZHN0ID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29rdXBfZmxvdyhn ZW5ldmUtPm5ldCwgZ3M2LT5zb2NrLT5zaywgZmw2LAorCQkJCQkgICAgICBOVUxMKTsKKwlpZiAo SVNfRVJSKGRzdCkpIHsKIAkJbmV0ZGV2X2RiZyhkZXYsICJubyByb3V0ZSB0byAlcEk2XG4iLCAm Zmw2LT5kYWRkcik7CiAJCXJldHVybiBFUlJfUFRSKC1FTkVUVU5SRUFDSCk7CiAJfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdnhsYW4uYyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKaW5kZXggODg2 OTE1NGZhZDg4Li40MDRhYzNhMGQxYzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3Z4bGFuLmMK KysrIGIvZHJpdmVycy9uZXQvdnhsYW4uYwpAQCAtMjI3Niw3ICsyMjc2LDYgQEAgc3RhdGljIHN0 cnVjdCBkc3RfZW50cnkgKnZ4bGFuNl9nZXRfcm91dGUoc3RydWN0IHZ4bGFuX2RldiAqdnhsYW4s CiAJYm9vbCB1c2VfY2FjaGUgPSBpcF90dW5uZWxfZHN0X2NhY2hlX3VzYWJsZShza2IsIGluZm8p OwogCXN0cnVjdCBkc3RfZW50cnkgKm5kc3Q7CiAJc3RydWN0IGZsb3dpNiBmbDY7Ci0JaW50IGVy cjsKIAogCWlmICghc29jazYpCiAJCXJldHVybiBFUlJfUFRSKC1FSU8pOwpAQCAtMjI5OSwxMCAr MjI5OCw5IEBAIHN0YXRpYyBzdHJ1Y3QgZHN0X2VudHJ5ICp2eGxhbjZfZ2V0X3JvdXRlKHN0cnVj dCB2eGxhbl9kZXYgKnZ4bGFuLAogCWZsNi5mbDZfZHBvcnQgPSBkcG9ydDsKIAlmbDYuZmw2X3Nw b3J0ID0gc3BvcnQ7CiAKLQllcnIgPSBpcHY2X3N0dWItPmlwdjZfZHN0X2xvb2t1cCh2eGxhbi0+ bmV0LAotCQkJCQkgc29jazYtPnNvY2stPnNrLAotCQkJCQkgJm5kc3QsICZmbDYpOwotCWlmICh1 bmxpa2VseShlcnIgPCAwKSkgeworCW5kc3QgPSBpcHY2X3N0dWItPmlwdjZfZHN0X2xvb2t1cF9m bG93KHZ4bGFuLT5uZXQsIHNvY2s2LT5zb2NrLT5zaywKKwkJCQkJICAgICAgICZmbDYsIE5VTEwp OworCWlmICh1bmxpa2VseShJU19FUlIobmRzdCkpKSB7CiAJCW5ldGRldl9kYmcoZGV2LCAibm8g cm91dGUgdG8gJXBJNlxuIiwgZGFkZHIpOwogCQlyZXR1cm4gRVJSX1BUUigtRU5FVFVOUkVBQ0gp OwogCX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lwdjZfc3R1YnMuaCBiL2luY2x1ZGUvbmV0 L2lwdjZfc3R1YnMuaAppbmRleCA1YzkzZTk0MmM1MGIuLjNlN2QyYzBlNzljYSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9uZXQvaXB2Nl9zdHVicy5oCisrKyBiL2luY2x1ZGUvbmV0L2lwdjZfc3R1YnMu aApAQCAtMjQsOCArMjQsMTAgQEAgc3RydWN0IGlwdjZfc3R1YiB7CiAJCQkJIGNvbnN0IHN0cnVj dCBpbjZfYWRkciAqYWRkcik7CiAJaW50ICgqaXB2Nl9zb2NrX21jX2Ryb3ApKHN0cnVjdCBzb2Nr ICpzaywgaW50IGlmaW5kZXgsCiAJCQkJIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqYWRkcik7Ci0J aW50ICgqaXB2Nl9kc3RfbG9va3VwKShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywK LQkJCSAgICAgICBzdHJ1Y3QgZHN0X2VudHJ5ICoqZHN0LCBzdHJ1Y3QgZmxvd2k2ICpmbDYpOwor CXN0cnVjdCBkc3RfZW50cnkgKigqaXB2Nl9kc3RfbG9va3VwX2Zsb3cpKHN0cnVjdCBuZXQgKm5l dCwKKwkJCQkJCSAgY29uc3Qgc3RydWN0IHNvY2sgKnNrLAorCQkJCQkJICBzdHJ1Y3QgZmxvd2k2 ICpmbDYsCisJCQkJCQkgIGNvbnN0IHN0cnVjdCBpbjZfYWRkciAqZmluYWxfZHN0KTsKIAlpbnQg KCppcHY2X3JvdXRlX2lucHV0KShzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIAogCXN0cnVjdCBmaWI2 X3RhYmxlICooKmZpYjZfZ2V0X3RhYmxlKShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBpZCk7CmRpZmYg LS1naXQgYS9uZXQvY29yZS9sd3RfYnBmLmMgYi9uZXQvY29yZS9sd3RfYnBmLmMKaW5kZXggNzRj ZmI4YjVhYjMzLi45OWE2ZGU1MmIyMWQgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2x3dF9icGYuYwor KysgYi9uZXQvY29yZS9sd3RfYnBmLmMKQEAgLTIzMCw5ICsyMzAsNyBAQCBzdGF0aWMgaW50IGJw Zl9sd3RfeG1pdF9yZXJvdXRlKHN0cnVjdCBza19idWZmICpza2IpCiAJCWZsNi5kYWRkciA9IGlw aDYtPmRhZGRyOwogCQlmbDYuc2FkZHIgPSBpcGg2LT5zYWRkcjsKIAotCQllcnIgPSBpcHY2X3N0 dWItPmlwdjZfZHN0X2xvb2t1cChuZXQsIHNrYi0+c2ssICZkc3QsICZmbDYpOwotCQlpZiAodW5s aWtlbHkoZXJyKSkKLQkJCWdvdG8gZXJyOworCQlkc3QgPSBpcHY2X3N0dWItPmlwdjZfZHN0X2xv b2t1cF9mbG93KG5ldCwgc2tiLT5zaywgJmZsNiwgTlVMTCk7CiAJCWlmIChJU19FUlIoZHN0KSkg ewogCQkJZXJyID0gUFRSX0VSUihkc3QpOwogCQkJZ290byBlcnI7CmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9hZGRyY29uZl9jb3JlLmMgYi9uZXQvaXB2Ni9hZGRyY29uZl9jb3JlLmMKaW5kZXggMmZj MDc5Mjg0Y2E0Li5lYTAwY2UzZDQxMTcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mX2Nv cmUuYworKysgYi9uZXQvaXB2Ni9hZGRyY29uZl9jb3JlLmMKQEAgLTEyOSwxMSArMTI5LDEyIEBA IGludCBpbmV0NmFkZHJfdmFsaWRhdG9yX25vdGlmaWVyX2NhbGxfY2hhaW4odW5zaWduZWQgbG9u ZyB2YWwsIHZvaWQgKnYpCiB9CiBFWFBPUlRfU1lNQk9MKGluZXQ2YWRkcl92YWxpZGF0b3Jfbm90 aWZpZXJfY2FsbF9jaGFpbik7CiAKLXN0YXRpYyBpbnQgZWFmbm9zdXBwb3J0X2lwdjZfZHN0X2xv b2t1cChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICp1MSwKLQkJCQkJc3RydWN0IGRzdF9l bnRyeSAqKnUyLAotCQkJCQlzdHJ1Y3QgZmxvd2k2ICp1MykKK3N0YXRpYyBzdHJ1Y3QgZHN0X2Vu dHJ5ICplYWZub3N1cHBvcnRfaXB2Nl9kc3RfbG9va3VwX2Zsb3coc3RydWN0IG5ldCAqbmV0LAor CQkJCQkJCSAgIGNvbnN0IHN0cnVjdCBzb2NrICpzaywKKwkJCQkJCQkgICBzdHJ1Y3QgZmxvd2k2 ICpmbDYsCisJCQkJCQkJICAgY29uc3Qgc3RydWN0IGluNl9hZGRyICpmaW5hbF9kc3QpCiB7Ci0J cmV0dXJuIC1FQUZOT1NVUFBPUlQ7CisJcmV0dXJuIEVSUl9QVFIoLUVBRk5PU1VQUE9SVCk7CiB9 CiAKIHN0YXRpYyBpbnQgZWFmbm9zdXBwb3J0X2lwdjZfcm91dGVfaW5wdXQoc3RydWN0IHNrX2J1 ZmYgKnNrYikKQEAgLTE5MCw3ICsxOTEsNyBAQCBzdGF0aWMgaW50IGVhZm5vc3VwcG9ydF9pcDZf ZGVsX3J0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IGZpYjZfaW5mbyAqcnQpCiB9CiAKIGNvbnN0 IHN0cnVjdCBpcHY2X3N0dWIgKmlwdjZfc3R1YiBfX3JlYWRfbW9zdGx5ID0gJihzdHJ1Y3QgaXB2 Nl9zdHViKSB7Ci0JLmlwdjZfZHN0X2xvb2t1cCAgID0gZWFmbm9zdXBwb3J0X2lwdjZfZHN0X2xv b2t1cCwKKwkuaXB2Nl9kc3RfbG9va3VwX2Zsb3cgPSBlYWZub3N1cHBvcnRfaXB2Nl9kc3RfbG9v a3VwX2Zsb3csCiAJLmlwdjZfcm91dGVfaW5wdXQgID0gZWFmbm9zdXBwb3J0X2lwdjZfcm91dGVf aW5wdXQsCiAJLmZpYjZfZ2V0X3RhYmxlICAgID0gZWFmbm9zdXBwb3J0X2ZpYjZfZ2V0X3RhYmxl LAogCS5maWI2X3RhYmxlX2xvb2t1cCA9IGVhZm5vc3VwcG9ydF9maWI2X3RhYmxlX2xvb2t1cCwK ZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FmX2luZXQ2LmMgYi9uZXQvaXB2Ni9hZl9pbmV0Ni5jCmlu ZGV4IDllMDViNzI3NjAyMi4uMTRhYzFkOTExMjg3IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9hZl9p bmV0Ni5jCisrKyBiL25ldC9pcHY2L2FmX2luZXQ2LmMKQEAgLTk0Niw3ICs5NDYsNyBAQCBzdGF0 aWMgaW50IGlwdjZfcm91dGVfaW5wdXQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaXB2Nl9zdHViIGlwdjZfc3R1Yl9pbXBsID0gewogCS5pcHY2X3NvY2tfbWNfam9p biA9IGlwdjZfc29ja19tY19qb2luLAogCS5pcHY2X3NvY2tfbWNfZHJvcCA9IGlwdjZfc29ja19t Y19kcm9wLAotCS5pcHY2X2RzdF9sb29rdXAgICA9IGlwNl9kc3RfbG9va3VwLAorCS5pcHY2X2Rz dF9sb29rdXBfZmxvdyA9IGlwNl9kc3RfbG9va3VwX2Zsb3csCiAJLmlwdjZfcm91dGVfaW5wdXQg ID0gaXB2Nl9yb3V0ZV9pbnB1dCwKIAkuZmliNl9nZXRfdGFibGUJICAgPSBmaWI2X2dldF90YWJs ZSwKIAkuZmliNl90YWJsZV9sb29rdXAgPSBmaWI2X3RhYmxlX2xvb2t1cCwKZGlmZiAtLWdpdCBh L25ldC9tcGxzL2FmX21wbHMuYyBiL25ldC9tcGxzL2FmX21wbHMuYwppbmRleCBjMzEyNzQxZGYy Y2UuLjQ3MDFlZGZmYjFmNyAxMDA2NDQKLS0tIGEvbmV0L21wbHMvYWZfbXBscy5jCisrKyBiL25l dC9tcGxzL2FmX21wbHMuYwpAQCAtNjE3LDE2ICs2MTcsMTUgQEAgc3RhdGljIHN0cnVjdCBuZXRf ZGV2aWNlICppbmV0Nl9maWJfbG9va3VwX2RldihzdHJ1Y3QgbmV0ICpuZXQsCiAJc3RydWN0IG5l dF9kZXZpY2UgKmRldjsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Q7CiAJc3RydWN0IGZsb3dpNiBm bDY7Ci0JaW50IGVycjsKIAogCWlmICghaXB2Nl9zdHViKQogCQlyZXR1cm4gRVJSX1BUUigtRUFG Tk9TVVBQT1JUKTsKIAogCW1lbXNldCgmZmw2LCAwLCBzaXplb2YoZmw2KSk7CiAJbWVtY3B5KCZm bDYuZGFkZHIsIGFkZHIsIHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpKTsKLQllcnIgPSBpcHY2X3N0 dWItPmlwdjZfZHN0X2xvb2t1cChuZXQsIE5VTEwsICZkc3QsICZmbDYpOwotCWlmIChlcnIpCi0J CXJldHVybiBFUlJfUFRSKGVycik7CisJZHN0ID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29rdXBf ZmxvdyhuZXQsIE5VTEwsICZmbDYsIE5VTEwpOworCWlmIChJU19FUlIoZHN0KSkKKwkJcmV0dXJu IEVSUl9DQVNUKGRzdCk7CiAKIAlkZXYgPSBkc3QtPmRldjsKIAlkZXZfaG9sZChkZXYpOwpkaWZm IC0tZ2l0IGEvbmV0L3RpcGMvdWRwX21lZGlhLmMgYi9uZXQvdGlwYy91ZHBfbWVkaWEuYwppbmRl eCAyODdkZjY4NzIxZGYuLjE4NmM3ODQzMTIxNyAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvdWRwX21l ZGlhLmMKKysrIGIvbmV0L3RpcGMvdWRwX21lZGlhLmMKQEAgLTE5NSwxMCArMTk1LDEzIEBAIHN0 YXRpYyBpbnQgdGlwY191ZHBfeG1pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBza19idWZmICpz a2IsCiAJCQkJLnNhZGRyID0gc3JjLT5pcHY2LAogCQkJCS5mbG93aTZfcHJvdG8gPSBJUFBST1RP X1VEUAogCQkJfTsKLQkJCWVyciA9IGlwdjZfc3R1Yi0+aXB2Nl9kc3RfbG9va3VwKG5ldCwgdWIt PnVic29jay0+c2ssCi0JCQkJCQkJICZuZHN0LCAmZmw2KTsKLQkJCWlmIChlcnIpCisJCQluZHN0 ID0gaXB2Nl9zdHViLT5pcHY2X2RzdF9sb29rdXBfZmxvdyhuZXQsCisJCQkJCQkJICAgICAgIHVi LT51YnNvY2stPnNrLAorCQkJCQkJCSAgICAgICAmZmw2LCBOVUxMKTsKKwkJCWlmIChJU19FUlIo bmRzdCkpIHsKKwkJCQllcnIgPSBQVFJfRVJSKG5kc3QpOwogCQkJCWdvdG8gdHhfZXJyb3I7CisJ CQl9CiAJCQlkc3RfY2FjaGVfc2V0X2lwNihjYWNoZSwgbmRzdCwgJmZsNi5zYWRkcik7CiAJCX0K IAkJdHRsID0gaXA2X2RzdF9ob3BsaW1pdChuZHN0KTsKLS0gCjIuMjAuMQoKCkZyb20gNDIyZTNk ZjA3NDY1M2ZjMDE1M2JiYzU5MjdiMjBiMzc3ZGY5MDM4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA2 IERlYyAyMDE5IDEyOjM4OjM2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNy8zOF0gdGNwOiBmaXgg cmVqZWN0ZWQgc3luY29va2llcyBkdWUgdG8gc3RhbGUgdGltZXN0YW1wcwoKWyBVcHN0cmVhbSBj b21taXQgMDRkMjZlN2IxNTlhMzk2MzcyNjQ2YTQ4MGY0Y2FhMTY2ZDFiNjcyMCBdCgpJZiBubyBz eW5mbG9vZCBoYXBwZW5zIGZvciBhIGxvbmcgZW5vdWdoIHBlcmlvZCBvZiB0aW1lLCB0aGVuIHRo ZQpzeW5mbG9vZCB0aW1lc3RhbXAgaXNuJ3QgcmVmcmVzaGVkIGFuZCBqaWZmaWVzIGNhbiBhZHZh bmNlIHNvIG11Y2gKdGhhdCB0aW1lX2FmdGVyMzIoKSBjYW4ndCBhY2N1cmF0ZWx5IGNvbXBhcmUg dGhlbSBhbnkgbW9yZS4KClRoZXJlZm9yZSwgd2UgY2FuIGVuZCB1cCBpbiBhIHNpdHVhdGlvbiB3 aGVyZSB0aW1lX2FmdGVyMzIobm93LApsYXN0X292ZXJmbG93ICsgSFopIHJldHVybnMgZmFsc2Us IGp1c3QgYmVjYXVzZSB0aGVzZSB0d28gdmFsdWVzIGFyZQp0b28gZmFyIGFwYXJ0LiBJbiB0aGF0 IGNhc2UsIHRoZSBzeW5mbG9vZCB0aW1lc3RhbXAgaXNuJ3QgdXBkYXRlZCBhcwppdCBzaG91bGQg YmUsIHdoaWNoIGNhbiB0cmljayB0Y3Bfc3lucV9ub19yZWNlbnRfb3ZlcmZsb3coKSBpbnRvCnJl amVjdGluZyB2YWxpZCBzeW5jb29raWVzLgoKRm9yIGV4YW1wbGUsIGxldCdzIGNvbnNpZGVyIHRo ZSBmb2xsb3dpbmcgc2NlbmFyaW8gb24gYSBzeXN0ZW0Kd2l0aCBIWj0xMDAwOgoKICAqIFRoZSBz eW5mbG9vZCB0aW1lc3RhbXAgaXMgMCwgZWl0aGVyIGJlY2F1c2UgdGhhdCdzIHRoZSB0aW1lc3Rh bXAKICAgIG9mIHRoZSBsYXN0IHN5bmZsb29kIG9yLCBtb3JlIGNvbW1vbmx5LCBiZWNhdXNlIHdl J3JlIHdvcmtpbmcgd2l0aAogICAgYSBmcmVzaGx5IGNyZWF0ZWQgc29ja2V0LgoKICAqIFdlIHJl Y2VpdmUgYSBuZXcgU1lOLCB3aGljaCB0cmlnZ2VycyBzeW5mbG9vZCBwcm90ZWN0aW9uLiBMZXQn cyBzYXkKICAgIHRoYXQgdGhpcyBoYXBwZW5zIHdoZW4gamlmZmllcyA9PSAyMTQ3NDg0NjQ5ICh0 aGF0IGlzLAogICAgJ3N5bmZsb29kIHRpbWVzdGFtcCcgKyBIWiArIDJeMzEgKyAxKS4KCiAgKiBU aGVuIHRjcF9zeW5xX292ZXJmbG93KCkgZG9lc24ndCB1cGRhdGUgdGhlIHN5bmZsb29kIHRpbWVz dGFtcCwKICAgIGJlY2F1c2UgdGltZV9hZnRlcjMyKDIxNDc0ODQ2NDksIDEwMDApIHJldHVybnMg ZmFsc2UuCiAgICBXaXRoOgogICAgICAtIDIxNDc0ODQ2NDk6IHRoZSB2YWx1ZSBvZiBqaWZmaWVz LCBha2EuICdub3cnLgogICAgICAtIDEwMDA6IHRoZSB2YWx1ZSBvZiAnbGFzdF9vdmVyZmxvdycg KyBIWi4KCiAgKiBBIGJpdCBsYXRlciwgd2UgcmVjZWl2ZSB0aGUgQUNLIGNvbXBsZXRpbmcgdGhl IDNXSFMuIEJ1dAogICAgY29va2llX3ZbNDZdX2NoZWNrKCkgcmVqZWN0cyBpdCBiZWNhdXNlIHRj cF9zeW5xX25vX3JlY2VudF9vdmVyZmxvdygpCiAgICBzYXlzIHRoYXQgd2UncmUgbm90IHVuZGVy IHN5bmZsb29kLiBUaGF0J3MgYmVjYXVzZQogICAgdGltZV9hZnRlcjMyKDIxNDc0ODQ2NDksIDEy MDAwMCkgcmV0dXJucyBmYWxzZS4KICAgIFdpdGg6CiAgICAgIC0gMjE0NzQ4NDY0OTogdGhlIHZh bHVlIG9mIGppZmZpZXMsIGFrYS4gJ25vdycuCiAgICAgIC0gMTIwMDAwOiB0aGUgdmFsdWUgb2Yg J2xhc3Rfb3ZlcmZsb3cnICsgVENQX1NZTkNPT0tJRV9WQUxJRC4KCiAgICBPZiBjb3Vyc2UsIGlu IHJlYWxpdHkgamlmZmllcyB3b3VsZCBoYXZlIGluY3JlYXNlZCBhIGJpdCwgYnV0IHRoaXMKICAg IGNvbmRpdGlvbiB3aWxsIGxhc3QgZm9yIHRoZSBuZXh0IDExOSBzZWNvbmRzLCB3aGljaCBpcyBm YXIgZW5vdWdoCiAgICB0byBhY2NvbW1vZGF0ZSBmb3IgamlmZmllJ3MgZ3Jvd3RoLgoKRml4IHRo aXMgYnkgdXBkYXRpbmcgdGhlIG92ZXJmbG93IHRpbWVzdGFtcCB3aGVuZXZlciBqaWZmaWVzIGlz bid0CndpdGhpbiB0aGUgW2xhc3Rfb3ZlcmZsb3csIGxhc3Rfb3ZlcmZsb3cgKyBIWl0gcmFuZ2Uu IFRoYXQgc2hvdWxkbid0CmhhdmUgYW55IHBlcmZvcm1hbmNlIGltcGFjdCBzaW5jZSB0aGUgdXBk YXRlIHN0aWxsIGhhcHBlbnMgYXQgbW9zdCBvbmNlCnBlciBzZWNvbmQuCgpOb3cgd2UncmUgZ3Vh cmFudGVlZCB0byBoYXZlIGZyZXNoIHRpbWVzdGFtcHMgd2hpbGUgdW5kZXIgc3luZmxvb2QsIHNv CnRjcF9zeW5xX25vX3JlY2VudF9vdmVyZmxvdygpIGNhbiBzYWZlbHkgdXNlIGl0IHdpdGggdGlt ZV9hZnRlcjMyKCkgaW4Kc3VjaCBzaXR1YXRpb25zLgoKU3RhbGUgdGltZXN0YW1wcyBjYW4gc3Rp bGwgbWFrZSB0Y3Bfc3lucV9ub19yZWNlbnRfb3ZlcmZsb3coKSByZXR1cm4KdGhlIHdyb25nIHZl cmRpY3Qgd2hlbiBub3QgdW5kZXIgc3luZmxvb2QuIFRoaXMgd2lsbCBiZSBoYW5kbGVkIGluIHRo ZQpuZXh0IHBhdGNoLgoKRm9yIDY0IGJpdHMgYXJjaGl0ZWN0dXJlcywgdGhlIHByb2JsZW0gd2Fz IGludHJvZHVjZWQgd2l0aCB0aGUKY29udmVyc2lvbiBvZiAtPnR3X3RzX3JlY2VudF9zdGFtcCB0 byAzMiBiaXRzIGludGVnZXIgYnkgY29tbWl0CmNjYTliYWIxYjcyYyAoInRjcDogdXNlIG1vbm90 b25pYyB0aW1lc3RhbXBzIGZvciBQQVdTIikuClRoZSBwcm9ibGVtIGhhcyBhbHdheXMgYmVlbiB0 aGVyZSBvbiAzMiBiaXRzIGFyY2hpdGVjdHVyZXMuCgpGaXhlczogY2NhOWJhYjFiNzJjICgidGNw OiB1c2UgbW9ub3RvbmljIHRpbWVzdGFtcHMgZm9yIFBBV1MiKQpGaXhlczogMWRhMTc3ZTRjM2Y0 ICgiTGludXgtMi42LjEyLXJjMiIpClNpZ25lZC1vZmYtYnk6IEd1aWxsYXVtZSBOYXVsdCA8Z25h dWx0QHJlZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGluY2x1ZGUvbGludXgvdGltZS5oIHwgMTMgKysrKysrKysrKysrKwogaW5jbHVk ZS9uZXQvdGNwLmggICAgfCAgNSArKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGltZS5oIGIv aW5jbHVkZS9saW51eC90aW1lLmgKaW5kZXggMjdkODNmZDJhZTYxLi41ZjNlNDk5Nzg4MzcgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGltZS5oCisrKyBiL2luY2x1ZGUvbGludXgvdGltZS5o CkBAIC05Niw0ICs5NiwxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXRpbWVyc3BlYzY0X3ZhbGlk KGNvbnN0IHN0cnVjdCBpdGltZXJzcGVjNjQgKml0cykKICAqLwogI2RlZmluZSB0aW1lX2FmdGVy MzIoYSwgYikJKChzMzIpKCh1MzIpKGIpIC0gKHUzMikoYSkpIDwgMCkKICNkZWZpbmUgdGltZV9i ZWZvcmUzMihiLCBhKQl0aW1lX2FmdGVyMzIoYSwgYikKKworLyoqCisgKiB0aW1lX2JldHdlZW4z MiAtIGNoZWNrIGlmIGEgMzItYml0IHRpbWVzdGFtcCBpcyB3aXRoaW4gYSBnaXZlbiB0aW1lIHJh bmdlCisgKiBAdDoJdGhlIHRpbWUgd2hpY2ggbWF5IGJlIHdpdGhpbiBbbCxoXQorICogQGw6CXRo ZSBsb3dlciBib3VuZCBvZiB0aGUgcmFuZ2UKKyAqIEBoOgl0aGUgaGlnaGVyIGJvdW5kIG9mIHRo ZSByYW5nZQorICoKKyAqIHRpbWVfYmVmb3JlMzIodCwgbCwgaCkgcmV0dXJucyB0cnVlIGlmIEBs IDw9IEB0IDw9IEBoLiBBbGwgb3BlcmFuZHMgYXJlCisgKiB0cmVhdGVkIGFzIDMyLWJpdCBpbnRl Z2Vycy4KKyAqCisgKiBFcXVpdmFsZW50IHRvICEodGltZV9iZWZvcmUzMihAdCwgQGwpIHx8IHRp bWVfYWZ0ZXIzMihAdCwgQGgpKS4KKyAqLworI2RlZmluZSB0aW1lX2JldHdlZW4zMih0LCBsLCBo KSAoKHUzMikoaCkgLSAodTMyKShsKSA+PSAodTMyKSh0KSAtICh1MzIpKGwpKQogI2VuZGlmCmRp ZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2luY2x1ZGUvbmV0L3RjcC5oCmluZGV4IGFi NGViNWViNWQwNy4uMzI3NmExODFhNjZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC90Y3AuaAor KysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtNDk0LDE0ICs0OTQsMTUgQEAgc3RhdGljIGlubGlu ZSB2b2lkIHRjcF9zeW5xX292ZXJmbG93KGNvbnN0IHN0cnVjdCBzb2NrICpzaykKIAkJcmV1c2Ug PSByY3VfZGVyZWZlcmVuY2Uoc2stPnNrX3JldXNlcG9ydF9jYik7CiAJCWlmIChsaWtlbHkocmV1 c2UpKSB7CiAJCQlsYXN0X292ZXJmbG93ID0gUkVBRF9PTkNFKHJldXNlLT5zeW5xX292ZXJmbG93 X3RzKTsKLQkJCWlmICh0aW1lX2FmdGVyMzIobm93LCBsYXN0X292ZXJmbG93ICsgSFopKQorCQkJ aWYgKCF0aW1lX2JldHdlZW4zMihub3csIGxhc3Rfb3ZlcmZsb3csCisJCQkJCSAgICBsYXN0X292 ZXJmbG93ICsgSFopKQogCQkJCVdSSVRFX09OQ0UocmV1c2UtPnN5bnFfb3ZlcmZsb3dfdHMsIG5v dyk7CiAJCQlyZXR1cm47CiAJCX0KIAl9CiAKIAlsYXN0X292ZXJmbG93ID0gdGNwX3NrKHNrKS0+ cnhfb3B0LnRzX3JlY2VudF9zdGFtcDsKLQlpZiAodGltZV9hZnRlcjMyKG5vdywgbGFzdF9vdmVy ZmxvdyArIEhaKSkKKwlpZiAoIXRpbWVfYmV0d2VlbjMyKG5vdywgbGFzdF9vdmVyZmxvdywgbGFz dF9vdmVyZmxvdyArIEhaKSkKIAkJdGNwX3NrKHNrKS0+cnhfb3B0LnRzX3JlY2VudF9zdGFtcCA9 IG5vdzsKIH0KIAotLSAKMi4yMC4xCgoKRnJvbSBhMDcwODY3NmY4Nzc5YmU4YWRhYjVlOWJiNjU2 M2NiYmE0ZmM2YTU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1 bHQgPGduYXVsdEByZWRoYXQuY29tPgpEYXRlOiBGcmksIDYgRGVjIDIwMTkgMTI6Mzg6NDMgKzAx MDAKU3ViamVjdDogW1BBVENIIDE4LzM4XSB0Y3A6IHRpZ2h0ZW4gYWNjZXB0YW5jZSBvZiBBQ0tz IG5vdCBtYXRjaGluZyBhIGNoaWxkCiBzb2NrZXQKClsgVXBzdHJlYW0gY29tbWl0IGNiNDRhMDhm ODY0N2ZkMmU4ZGI1Y2M5YWMyN2NkODM1NWZhMzkyZDggXQoKV2hlbiBubyBzeW5mbG9vZCBvY2N1 cnMsIHRoZSBzeW5mbG9vZCB0aW1lc3RhbXAgaXNuJ3QgdXBkYXRlZC4KVGhlcmVmb3JlIGl0IGNh biBiZSBzbyBvbGQgdGhhdCB0aW1lX2FmdGVyMzIoKSBjYW4gY29uc2lkZXIgaXQgdG8gYmUKaW4g dGhlIGZ1dHVyZS4KClRoYXQncyBhIHByb2JsZW0gZm9yIHRjcF9zeW5xX25vX3JlY2VudF9vdmVy ZmxvdygpIGFzIGl0IG1heSByZXBvcnQKdGhhdCBhIHJlY2VudCBvdmVyZmxvdyBvY2N1cnJlZCB3 aGlsZSwgaW4gZmFjdCwgaXQncyBqdXN0IHRoYXQgamlmZmllcwpoYXMgZ3Jvd24gcGFzdCAnbGFz dF9vdmVyZmxvdycgKyBUQ1BfU1lOQ09PS0lFX1ZBTElEICsgMl4zMS4KClNwdXJpb3VzIGRldGVj dGlvbiBvZiByZWNlbnQgb3ZlcmZsb3dzIGxlYWQgdG8gZXh0cmEgc3luY29va2llCnZlcmlmaWNh dGlvbiBpbiBjb29raWVfdls0Nl1fY2hlY2soKS4gQXQgdGhhdCBwb2ludCwgdGhlIHZlcmlmaWNh dGlvbgpzaG91bGQgZmFpbCBhbmQgdGhlIHBhY2tldCBkcm9wcGVkLiBCdXQgd2Ugc2hvdWxkIGhh dmUgZHJvcHBlZCB0aGUKcGFja2V0IGVhcmxpZXIgYXMgd2UgZGlkbid0IGV2ZW4gc2VuZCBhIHN5 bmNvb2tpZS4KCkxldCdzIHJlZmluZSB0Y3Bfc3lucV9ub19yZWNlbnRfb3ZlcmZsb3coKSB0byBy ZXBvcnQgYSByZWNlbnQgb3ZlcmZsb3cKb25seSBpZiBqaWZmaWVzIGlzIHdpdGhpbiB0aGUKW2xh c3Rfb3ZlcmZsb3csIGxhc3Rfb3ZlcmZsb3cgKyBUQ1BfU1lOQ09PS0lFX1ZBTElEXSBpbnRlcnZh bC4gVGhpcwp3YXksIG5vIHNwdXJpb3VzIHJlY2VudCBvdmVyZmxvdyBpcyByZXBvcnRlZCB3aGVu IGppZmZpZXMgd3JhcHMgYW5kCidsYXN0X292ZXJmbG93JyBiZWNvbWVzIGluIHRoZSBmdXR1cmUg ZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZgp0aW1lX2FmdGVyMzIoKS4KCkhvd2V2ZXIsIGlmIGpp ZmZpZXMgd3JhcHMgYW5kIGVudGVycyB0aGUKW2xhc3Rfb3ZlcmZsb3csIGxhc3Rfb3ZlcmZsb3cg KyBUQ1BfU1lOQ09PS0lFX1ZBTElEXSBpbnRlcnZhbCAod2l0aAonbGFzdF9vdmVyZmxvdycgYmVp bmcgYSBzdGFsZSBzeW5mbG9vZCB0aW1lc3RhbXApLCB0aGVuCnRjcF9zeW5xX25vX3JlY2VudF9v dmVyZmxvdygpIHN0aWxsIGVycm9uZW91c2x5IHJlcG9ydHMgYW4Kb3ZlcmZsb3cuIEluIHN1Y2gg Y2FzZXMsIHdlIGhhdmUgdG8gcmVseSBvbiBzeW5jb29raWUgdmVyaWZpY2F0aW9uCnRvIGRyb3Ag dGhlIHBhY2tldC4gV2UgdW5mb3J0dW5hdGVseSBoYXZlIG5vIHdheSB0byBkaWZmZXJlbnRpYXRl CmJldHdlZW4gYSBmcmVzaCBhbmQgYSBzdGFsZSBzeW5jb29raWUgdGltZXN0YW1wLgoKSW4gcHJh Y3RpY2UsIHVzaW5nIGxhc3Rfb3ZlcmZsb3cgYXMgbG93ZXIgYm91bmQgaXMgcHJvYmxlbWF0aWMu CklmIHRoZSBzeW5mbG9vZCB0aW1lc3RhbXAgaXMgY29uY3VycmVudGx5IHVwZGF0ZWQgYmV0d2Vl biB0aGUgdGltZQp3ZSByZWFkIGppZmZpZXMgYW5kIHRoZSBtb21lbnQgd2Ugc3RvcmUgdGhlIHRp bWVzdGFtcCBpbgonbGFzdF9vdmVyZmxvdycsIHRoZW4gJ25vdycgYmVjb21lcyBzbWFsbGVyIHRo YW4gJ2xhc3Rfb3ZlcmZsb3cnIGFuZAp0Y3Bfc3lucV9ub19yZWNlbnRfb3ZlcmZsb3coKSByZXR1 cm5zIHRydWUsIHBvdGVudGlhbGx5IGRyb3BwaW5nIGEKdmFsaWQgc3luY29va2llLgoKUmVhZGlu ZyBqaWZmaWVzIGFmdGVyIGxvYWRpbmcgdGhlIHRpbWVzdGFtcCBjb3VsZCBmaXggdGhlIHByb2Js ZW0sCmJ1dCB0aGF0J2QgcmVxdWlyZSBhIG1lbW9yeSBiYXJyaWVyLiBMZXQncyBqdXN0IGFjY29t bW9kYXRlIGZvcgpwb3RlbnRpYWwgdGltZXN0YW1wIGdyb3d0aCBpbnN0ZWFkIGFuZCBleHRlbmQg dGhlIGludGVydmFsIHVzaW5nCidsYXN0X292ZXJmbG93IC0gSFonIGFzIGxvd2VyIGJvdW5kLgoK U2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQv dGNwLmggfCAxNiArKysrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2lu Y2x1ZGUvbmV0L3RjcC5oCmluZGV4IDMyNzZhMTgxYTY2ZC4uYmU3YWU5OGNjN2U3IDEwMDY0NAot LS0gYS9pbmNsdWRlL25ldC90Y3AuaAorKysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtNTE4LDEz ICs1MTgsMjMgQEAgc3RhdGljIGlubGluZSBib29sIHRjcF9zeW5xX25vX3JlY2VudF9vdmVyZmxv dyhjb25zdCBzdHJ1Y3Qgc29jayAqc2spCiAJCXJldXNlID0gcmN1X2RlcmVmZXJlbmNlKHNrLT5z a19yZXVzZXBvcnRfY2IpOwogCQlpZiAobGlrZWx5KHJldXNlKSkgewogCQkJbGFzdF9vdmVyZmxv dyA9IFJFQURfT05DRShyZXVzZS0+c3lucV9vdmVyZmxvd190cyk7Ci0JCQlyZXR1cm4gdGltZV9h ZnRlcjMyKG5vdywgbGFzdF9vdmVyZmxvdyArCi0JCQkJCSAgICBUQ1BfU1lOQ09PS0lFX1ZBTElE KTsKKwkJCXJldHVybiAhdGltZV9iZXR3ZWVuMzIobm93LCBsYXN0X292ZXJmbG93IC0gSFosCisJ CQkJCSAgICAgICBsYXN0X292ZXJmbG93ICsKKwkJCQkJICAgICAgIFRDUF9TWU5DT09LSUVfVkFM SUQpOwogCQl9CiAJfQogCiAJbGFzdF9vdmVyZmxvdyA9IHRjcF9zayhzayktPnJ4X29wdC50c19y ZWNlbnRfc3RhbXA7Ci0JcmV0dXJuIHRpbWVfYWZ0ZXIzMihub3csIGxhc3Rfb3ZlcmZsb3cgKyBU Q1BfU1lOQ09PS0lFX1ZBTElEKTsKKworCS8qIElmIGxhc3Rfb3ZlcmZsb3cgPD0gamlmZmllcyA8 PSBsYXN0X292ZXJmbG93ICsgVENQX1NZTkNPT0tJRV9WQUxJRCwKKwkgKiB0aGVuIHdlJ3JlIHVu ZGVyIHN5bmZsb29kLiBIb3dldmVyLCB3ZSBoYXZlIHRvIHVzZQorCSAqICdsYXN0X292ZXJmbG93 IC0gSFonIGFzIGxvd2VyIGJvdW5kLiBUaGF0J3MgYmVjYXVzZSBhIGNvbmN1cnJlbnQKKwkgKiB0 Y3Bfc3lucV9vdmVyZmxvdygpIGNvdWxkIHVwZGF0ZSAudHNfcmVjZW50X3N0YW1wIGFmdGVyIHdl IHJlYWQKKwkgKiBqaWZmaWVzIGJ1dCBiZWZvcmUgd2Ugc3RvcmUgLnRzX3JlY2VudF9zdGFtcCBp bnRvIGxhc3Rfb3ZlcmZsb3csCisJICogd2hpY2ggY291bGQgbGVhZCB0byByZWplY3RpbmcgYSB2 YWxpZCBzeW5jb29raWUuCisJICovCisJcmV0dXJuICF0aW1lX2JldHdlZW4zMihub3csIGxhc3Rf b3ZlcmZsb3cgLSBIWiwKKwkJCSAgICAgICBsYXN0X292ZXJmbG93ICsgVENQX1NZTkNPT0tJRV9W QUxJRCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdTMyIHRjcF9jb29raWVfdGltZSh2b2lkKQotLSAK Mi4yMC4xCgoKRnJvbSA0YTU2MWRkZDY5MWQxNzZlODNjNTI1MTlmMjlmODFmOTY2N2FiNGU0IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTmF1bHQgPGduYXVsdEByZWRo YXQuY29tPgpEYXRlOiBGcmksIDYgRGVjIDIwMTkgMTI6Mzg6NDkgKzAxMDAKU3ViamVjdDogW1BB VENIIDE5LzM4XSB0Y3A6IFByb3RlY3QgYWNjZXNzZXMgdG8gLnRzX3JlY2VudF9zdGFtcCB3aXRo CiB7UkVBRCxXUklURX1fT05DRSgpCgpbIFVwc3RyZWFtIGNvbW1pdCA3MjFjOGRhZmFkMjZjY2Zh OTBmZjY1OWVlMTk3NTVlMzM3N2I4MjlkIF0KClN5bmNvb2tpZXMgYm9ycm93IHRoZSAtPnJ4X29w dC50c19yZWNlbnRfc3RhbXAgZmllbGQgdG8gc3RvcmUgdGhlCnRpbWVzdGFtcCBvZiB0aGUgbGFz dCBzeW5mbG9vZC4gUHJvdGVjdCB0aGVtIHdpdGggUkVBRF9PTkNFKCkgYW5kCldSSVRFX09OQ0Uo KSBzaW5jZSByZWFkcyBhbmQgd3JpdGVzIGFyZW4ndCBzZXJpYWxpc2VkLgoKVXNlIG9mIC5yeF9v cHQudHNfcmVjZW50X3N0YW1wIGZvciBzdG9yaW5nIHRoZSBzeW5mbG9vZCB0aW1lc3RhbXAgd2Fz CmludHJvZHVjZWQgYnkgYTBmODJmNjRlMjY5ICgic3luY29va2llczogcmVtb3ZlIGxhc3Rfc3lu cV9vdmVyZmxvdyBmcm9tCnN0cnVjdCB0Y3Bfc29jayIpLiBCdXQgdW5wcm90ZWN0ZWQgYWNjZXNz ZXMgd2VyZSBhbHJlYWR5IHRoZXJlIHdoZW4KdGltZXN0YW1wIHdhcyBzdG9yZWQgaW4gLmxhc3Rf c3lucV9vdmVyZmxvdy4KCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYuMTItcmMyIikK U2lnbmVkLW9mZi1ieTogR3VpbGxhdW1lIE5hdWx0IDxnbmF1bHRAcmVkaGF0LmNvbT4KU2lnbmVk LW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQv dGNwLmggfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC90Y3AuaCBiL2luY2x1ZGUvbmV0L3Rj cC5oCmluZGV4IGJlN2FlOThjYzdlNy4uYjIzNjdjZmUwYmRhIDEwMDY0NAotLS0gYS9pbmNsdWRl L25ldC90Y3AuaAorKysgYi9pbmNsdWRlL25ldC90Y3AuaApAQCAtNTAxLDkgKzUwMSw5IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCB0Y3Bfc3lucV9vdmVyZmxvdyhjb25zdCBzdHJ1Y3Qgc29jayAqc2sp CiAJCX0KIAl9CiAKLQlsYXN0X292ZXJmbG93ID0gdGNwX3NrKHNrKS0+cnhfb3B0LnRzX3JlY2Vu dF9zdGFtcDsKKwlsYXN0X292ZXJmbG93ID0gUkVBRF9PTkNFKHRjcF9zayhzayktPnJ4X29wdC50 c19yZWNlbnRfc3RhbXApOwogCWlmICghdGltZV9iZXR3ZWVuMzIobm93LCBsYXN0X292ZXJmbG93 LCBsYXN0X292ZXJmbG93ICsgSFopKQotCQl0Y3Bfc2soc2spLT5yeF9vcHQudHNfcmVjZW50X3N0 YW1wID0gbm93OworCQlXUklURV9PTkNFKHRjcF9zayhzayktPnJ4X29wdC50c19yZWNlbnRfc3Rh bXAsIG5vdyk7CiB9CiAKIC8qIHN5bmNvb2tpZXM6IG5vIHJlY2VudCBzeW5xdWV1ZSBvdmVyZmxv dyBvbiB0aGlzIGxpc3RlbmluZyBzb2NrZXQ/ICovCkBAIC01MjQsNyArNTI0LDcgQEAgc3RhdGlj IGlubGluZSBib29sIHRjcF9zeW5xX25vX3JlY2VudF9vdmVyZmxvdyhjb25zdCBzdHJ1Y3Qgc29j ayAqc2spCiAJCX0KIAl9CiAKLQlsYXN0X292ZXJmbG93ID0gdGNwX3NrKHNrKS0+cnhfb3B0LnRz X3JlY2VudF9zdGFtcDsKKwlsYXN0X292ZXJmbG93ID0gUkVBRF9PTkNFKHRjcF9zayhzayktPnJ4 X29wdC50c19yZWNlbnRfc3RhbXApOwogCiAJLyogSWYgbGFzdF9vdmVyZmxvdyA8PSBqaWZmaWVz IDw9IGxhc3Rfb3ZlcmZsb3cgKyBUQ1BfU1lOQ09PS0lFX1ZBTElELAogCSAqIHRoZW4gd2UncmUg dW5kZXIgc3luZmxvb2QuIEhvd2V2ZXIsIHdlIGhhdmUgdG8gdXNlCi0tIAoyLjIwLjEKCgpGcm9t IDE1MDMxMTE2ZGI1NjYxNDYwYTI5MzY5ZDc0NTE2MzBjZDY2NDg1YWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRyb25vbWUuY29tPgpE YXRlOiBUaHUsIDUgRGVjIDIwMTkgMTc6MDM6MzQgKzAwMDAKU3ViamVjdDogW1BBVENIIDIwLzM4 XSBuZXQ6IGNvcmU6IHJlbmFtZSBpbmRpcmVjdCBibG9jayBpbmdyZXNzIGNiIGZ1bmN0aW9uCgpb IFVwc3RyZWFtIGNvbW1pdCBkYmFkMzQwODg5NmMzYzU3MjJlYzljZGEwNjU0NjhiM2RmMTZjNWJm IF0KCldpdGggaW5kaXJlY3QgYmxvY2tzLCBhIGRyaXZlciBjYW4gcmVnaXN0ZXIgZm9yIGNhbGxi YWNrcyBmcm9tIGEgZGV2aWNlCnRoYXQgaXMgZG9lcyBub3QgJ293bicsIGZvciBleGFtcGxlLCBh IHR1bm5lbCBkZXZpY2UuIFdoZW4gcmVnaXN0ZXJpbmcgdG8Kb3IgdW5yZWdpc3RlcmluZyBmcm9t IGEgbmV3IGRldmljZSwgYSBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgdG8gZ2VuZXJhdGUKYSBiaW5k L3VuYmluZCBldmVudC4gVGhpcywgaW4gdHVybiwgYWxsb3dzIHRoZSBkcml2ZXIgdG8gcmVjZWl2 ZSBhbnkKZXhpc3RpbmcgcnVsZXMgb3IgdG8gcHJvcGVybHkgY2xlYW4gdXAgaW5zdGFsbGVkIHJ1 bGVzLgoKV2hlbiBmaXJzdCBhZGRlZCwgaXQgd2FzIGFzc3VtZWQgdGhhdCBhbGwgaW5kaXJlY3Qg YmxvY2sgcmVnaXN0cmF0aW9ucwp3b3VsZCBiZSBmb3IgaW5ncmVzcyBvZmZsb2Fkcy4gSG93ZXZl ciwgdGhlIE5GUCBkcml2ZXIgY2FuLCBpbiBzb21lCmluc3RhbmNlcywgc3VwcG9ydCBjbHNhY3Qg cWRpc2MgYmluZHMgZm9yIGVncmVzcyBvZmZsb2FkLgoKQ2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBp bmRpcmVjdCBibG9jayBjYWxsYmFjayBjb21tYW5kIGluIGZsb3dfb2ZmbG9hZCB0bwpyZW1vdmUg dGhlICdpbmdyZXNzJyBpZGVudGlmaWVyIGZyb20gaXQuIFdoaWxlIHRoaXMgZG9lcyBub3QgY2hh bmdlCmZ1bmN0aW9uYWxpdHksIGEgZm9sbG93IHVwIHBhdGNoIHdpbGwgaW1wbGVtZW50IGEgbW9y ZSBtb3JlIGdlbmVyaWMKY2FsbGJhY2sgdGhhbiBqdXN0IHRob3NlIGN1cnJlbnRseSBqdXN0IHN1 cHBvcnRpbmcgaW5ncmVzcyBvZmZsb2FkLgoKRml4ZXM6IDRkMTJiYTQyNzg3YiAoIm5mcDogZmxv d2VyOiBhbGxvdyBvZmZsb2FkaW5nIG9mIG1hdGNoZXMgb24gJ2ludGVybmFsJyBwb3J0cyIpClNp Z25lZC1vZmYtYnk6IEpvaG4gSHVybGV5IDxqb2huLmh1cmxleUBuZXRyb25vbWUuY29tPgpBY2tl ZC1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL25ldC9mbG93X29mZmxvYWQuaCAgICAgICAgfCAxNSArKysrKy0tLS0tLQogbmV0L2NvcmUv Zmxvd19vZmZsb2FkLmMgICAgICAgICAgIHwgNDUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLQogbmV0L25ldGZpbHRlci9uZl90YWJsZXNfb2ZmbG9hZC5jIHwgIDYgKystLS0KIG5ldC9z Y2hlZC9jbHNfYXBpLmMgICAgICAgICAgICAgICB8ICA0ICstLQogNCBmaWxlcyBjaGFuZ2VkLCAz NCBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25l dC9mbG93X29mZmxvYWQuaCBiL2luY2x1ZGUvbmV0L2Zsb3dfb2ZmbG9hZC5oCmluZGV4IDg2YzU2 N2Y1MzFmMy4uYzZmN2JkMjJkYjYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9mbG93X29mZmxv YWQuaAorKysgYi9pbmNsdWRlL25ldC9mbG93X29mZmxvYWQuaApAQCAtMzgwLDE5ICszODAsMTgg QEAgc3RhdGljIGlubGluZSB2b2lkIGZsb3dfYmxvY2tfaW5pdChzdHJ1Y3QgZmxvd19ibG9jayAq Zmxvd19ibG9jaykKIHR5cGVkZWYgaW50IGZsb3dfaW5kcl9ibG9ja19iaW5kX2NiX3Qoc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqY2JfcHJpdiwKIAkJCQkgICAgICBlbnVtIHRjX3NldHVw X3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhKTsKIAotdHlwZWRlZiB2b2lkIGZsb3dfaW5kcl9i bG9ja19pbmdfY21kX3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKLQkJCQkJZmxvd19pbmRyX2Js b2NrX2JpbmRfY2JfdCAqY2IsCi0JCQkJCXZvaWQgKmNiX3ByaXYsCi0JCQkJCWVudW0gZmxvd19i bG9ja19jb21tYW5kIGNvbW1hbmQpOwordHlwZWRlZiB2b2lkIGZsb3dfaW5kcl9ibG9ja19jbWRf dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJCSAgIGZsb3dfaW5kcl9ibG9ja19iaW5kX2Ni X3QgKmNiLCB2b2lkICpjYl9wcml2LAorCQkJCSAgIGVudW0gZmxvd19ibG9ja19jb21tYW5kIGNv bW1hbmQpOwogCi1zdHJ1Y3QgZmxvd19pbmRyX2Jsb2NrX2luZ19lbnRyeSB7Ci0JZmxvd19pbmRy X2Jsb2NrX2luZ19jbWRfdCAqY2I7CitzdHJ1Y3QgZmxvd19pbmRyX2Jsb2NrX2VudHJ5IHsKKwlm bG93X2luZHJfYmxvY2tfY21kX3QgKmNiOwogCXN0cnVjdCBsaXN0X2hlYWQJbGlzdDsKIH07CiAK LXZvaWQgZmxvd19pbmRyX2FkZF9ibG9ja19pbmdfY2Ioc3RydWN0IGZsb3dfaW5kcl9ibG9ja19p bmdfZW50cnkgKmVudHJ5KTsKK3ZvaWQgZmxvd19pbmRyX2FkZF9ibG9ja19jYihzdHJ1Y3QgZmxv d19pbmRyX2Jsb2NrX2VudHJ5ICplbnRyeSk7CiAKLXZvaWQgZmxvd19pbmRyX2RlbF9ibG9ja19p bmdfY2Ioc3RydWN0IGZsb3dfaW5kcl9ibG9ja19pbmdfZW50cnkgKmVudHJ5KTsKK3ZvaWQgZmxv d19pbmRyX2RlbF9ibG9ja19jYihzdHJ1Y3QgZmxvd19pbmRyX2Jsb2NrX2VudHJ5ICplbnRyeSk7 CiAKIGludCBfX2Zsb3dfaW5kcl9ibG9ja19jYl9yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCB2b2lkICpjYl9wcml2LAogCQkJCSAgZmxvd19pbmRyX2Jsb2NrX2JpbmRfY2JfdCAqY2Is CmRpZmYgLS1naXQgYS9uZXQvY29yZS9mbG93X29mZmxvYWQuYyBiL25ldC9jb3JlL2Zsb3dfb2Zm bG9hZC5jCmluZGV4IGNmNTJkOWM0MjJmYS4uNDViNmE1OWFjMTI0IDEwMDY0NAotLS0gYS9uZXQv Y29yZS9mbG93X29mZmxvYWQuYworKysgYi9uZXQvY29yZS9mbG93X29mZmxvYWQuYwpAQCAtMjgz LDcgKzI4Myw3IEBAIGludCBmbG93X2Jsb2NrX2NiX3NldHVwX3NpbXBsZShzdHJ1Y3QgZmxvd19i bG9ja19vZmZsb2FkICpmLAogfQogRVhQT1JUX1NZTUJPTChmbG93X2Jsb2NrX2NiX3NldHVwX3Np bXBsZSk7CiAKLXN0YXRpYyBMSVNUX0hFQUQoYmxvY2tfaW5nX2NiX2xpc3QpOworc3RhdGljIExJ U1RfSEVBRChibG9ja19jYl9saXN0KTsKIAogc3RhdGljIHN0cnVjdCByaGFzaHRhYmxlIGluZHJf c2V0dXBfYmxvY2tfaHQ7CiAKQEAgLTM5MSwyMCArMzkxLDE5IEBAIHN0YXRpYyB2b2lkIGZsb3df aW5kcl9ibG9ja19jYl9kZWwoc3RydWN0IGZsb3dfaW5kcl9ibG9ja19jYiAqaW5kcl9ibG9ja19j YikKIAlrZnJlZShpbmRyX2Jsb2NrX2NiKTsKIH0KIAotc3RhdGljIERFRklORV9NVVRFWChmbG93 X2luZHJfYmxvY2tfaW5nX2NiX2xvY2spOworc3RhdGljIERFRklORV9NVVRFWChmbG93X2luZHJf YmxvY2tfY2JfbG9jayk7CiAKLXN0YXRpYyB2b2lkIGZsb3dfYmxvY2tfaW5nX2NtZChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAotCQkJICAgICAgIGZsb3dfaW5kcl9ibG9ja19iaW5kX2NiX3QgKmNi LAotCQkJICAgICAgIHZvaWQgKmNiX3ByaXYsCi0JCQkgICAgICAgZW51bSBmbG93X2Jsb2NrX2Nv bW1hbmQgY29tbWFuZCkKK3N0YXRpYyB2b2lkIGZsb3dfYmxvY2tfY21kKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYsCisJCQkgICBmbG93X2luZHJfYmxvY2tfYmluZF9jYl90ICpjYiwgdm9pZCAqY2Jf cHJpdiwKKwkJCSAgIGVudW0gZmxvd19ibG9ja19jb21tYW5kIGNvbW1hbmQpCiB7Ci0Jc3RydWN0 IGZsb3dfaW5kcl9ibG9ja19pbmdfZW50cnkgKmVudHJ5OworCXN0cnVjdCBmbG93X2luZHJfYmxv Y2tfZW50cnkgKmVudHJ5OwogCi0JbXV0ZXhfbG9jaygmZmxvd19pbmRyX2Jsb2NrX2luZ19jYl9s b2NrKTsKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGVudHJ5LCAmYmxvY2tfaW5nX2NiX2xpc3QsIGxp c3QpIHsKKwltdXRleF9sb2NrKCZmbG93X2luZHJfYmxvY2tfY2JfbG9jayk7CisJbGlzdF9mb3Jf ZWFjaF9lbnRyeShlbnRyeSwgJmJsb2NrX2NiX2xpc3QsIGxpc3QpIHsKIAkJZW50cnktPmNiKGRl diwgY2IsIGNiX3ByaXYsIGNvbW1hbmQpOwogCX0KLQltdXRleF91bmxvY2soJmZsb3dfaW5kcl9i bG9ja19pbmdfY2JfbG9jayk7CisJbXV0ZXhfdW5sb2NrKCZmbG93X2luZHJfYmxvY2tfY2JfbG9j ayk7CiB9CiAKIGludCBfX2Zsb3dfaW5kcl9ibG9ja19jYl9yZWdpc3RlcihzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCB2b2lkICpjYl9wcml2LApAQCAtNDI0LDggKzQyMyw4IEBAIGludCBfX2Zsb3df aW5kcl9ibG9ja19jYl9yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkICpjYl9w cml2LAogCWlmIChlcnIpCiAJCWdvdG8gZXJyX2Rldl9wdXQ7CiAKLQlmbG93X2Jsb2NrX2luZ19j bWQoZGV2LCBpbmRyX2Jsb2NrX2NiLT5jYiwgaW5kcl9ibG9ja19jYi0+Y2JfcHJpdiwKLQkJCSAg IEZMT1dfQkxPQ0tfQklORCk7CisJZmxvd19ibG9ja19jbWQoZGV2LCBpbmRyX2Jsb2NrX2NiLT5j YiwgaW5kcl9ibG9ja19jYi0+Y2JfcHJpdiwKKwkJICAgICAgIEZMT1dfQkxPQ0tfQklORCk7CiAK IAlyZXR1cm4gMDsKIApAQCAtNDY0LDggKzQ2Myw4IEBAIHZvaWQgX19mbG93X2luZHJfYmxvY2tf Y2JfdW5yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWlmICghaW5kcl9ibG9ja19j YikKIAkJcmV0dXJuOwogCi0JZmxvd19ibG9ja19pbmdfY21kKGRldiwgaW5kcl9ibG9ja19jYi0+ Y2IsIGluZHJfYmxvY2tfY2ItPmNiX3ByaXYsCi0JCQkgICBGTE9XX0JMT0NLX1VOQklORCk7CisJ Zmxvd19ibG9ja19jbWQoZGV2LCBpbmRyX2Jsb2NrX2NiLT5jYiwgaW5kcl9ibG9ja19jYi0+Y2Jf cHJpdiwKKwkJICAgICAgIEZMT1dfQkxPQ0tfVU5CSU5EKTsKIAogCWZsb3dfaW5kcl9ibG9ja19j Yl9kZWwoaW5kcl9ibG9ja19jYik7CiAJZmxvd19pbmRyX2Jsb2NrX2Rldl9wdXQoaW5kcl9kZXYp OwpAQCAtNDk5LDIxICs0OTgsMjEgQEAgdm9pZCBmbG93X2luZHJfYmxvY2tfY2FsbChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LAogfQogRVhQT1JUX1NZTUJPTF9HUEwoZmxvd19pbmRyX2Jsb2NrX2Nh bGwpOwogCi12b2lkIGZsb3dfaW5kcl9hZGRfYmxvY2tfaW5nX2NiKHN0cnVjdCBmbG93X2luZHJf YmxvY2tfaW5nX2VudHJ5ICplbnRyeSkKK3ZvaWQgZmxvd19pbmRyX2FkZF9ibG9ja19jYihzdHJ1 Y3QgZmxvd19pbmRyX2Jsb2NrX2VudHJ5ICplbnRyeSkKIHsKLQltdXRleF9sb2NrKCZmbG93X2lu ZHJfYmxvY2tfaW5nX2NiX2xvY2spOwotCWxpc3RfYWRkX3RhaWwoJmVudHJ5LT5saXN0LCAmYmxv Y2tfaW5nX2NiX2xpc3QpOwotCW11dGV4X3VubG9jaygmZmxvd19pbmRyX2Jsb2NrX2luZ19jYl9s b2NrKTsKKwltdXRleF9sb2NrKCZmbG93X2luZHJfYmxvY2tfY2JfbG9jayk7CisJbGlzdF9hZGRf dGFpbCgmZW50cnktPmxpc3QsICZibG9ja19jYl9saXN0KTsKKwltdXRleF91bmxvY2soJmZsb3df aW5kcl9ibG9ja19jYl9sb2NrKTsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKGZsb3dfaW5kcl9hZGRf YmxvY2tfaW5nX2NiKTsKK0VYUE9SVF9TWU1CT0xfR1BMKGZsb3dfaW5kcl9hZGRfYmxvY2tfY2Ip OwogCi12b2lkIGZsb3dfaW5kcl9kZWxfYmxvY2tfaW5nX2NiKHN0cnVjdCBmbG93X2luZHJfYmxv Y2tfaW5nX2VudHJ5ICplbnRyeSkKK3ZvaWQgZmxvd19pbmRyX2RlbF9ibG9ja19jYihzdHJ1Y3Qg Zmxvd19pbmRyX2Jsb2NrX2VudHJ5ICplbnRyeSkKIHsKLQltdXRleF9sb2NrKCZmbG93X2luZHJf YmxvY2tfaW5nX2NiX2xvY2spOworCW11dGV4X2xvY2soJmZsb3dfaW5kcl9ibG9ja19jYl9sb2Nr KTsKIAlsaXN0X2RlbCgmZW50cnktPmxpc3QpOwotCW11dGV4X3VubG9jaygmZmxvd19pbmRyX2Js b2NrX2luZ19jYl9sb2NrKTsKKwltdXRleF91bmxvY2soJmZsb3dfaW5kcl9ibG9ja19jYl9sb2Nr KTsKIH0KLUVYUE9SVF9TWU1CT0xfR1BMKGZsb3dfaW5kcl9kZWxfYmxvY2tfaW5nX2NiKTsKK0VY UE9SVF9TWU1CT0xfR1BMKGZsb3dfaW5kcl9kZWxfYmxvY2tfY2IpOwogCiBzdGF0aWMgaW50IF9f aW5pdCBpbml0X2Zsb3dfaW5kcl9yaGFzaHRhYmxlKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9uZXQv bmV0ZmlsdGVyL25mX3RhYmxlc19vZmZsb2FkLmMgYi9uZXQvbmV0ZmlsdGVyL25mX3RhYmxlc19v ZmZsb2FkLmMKaW5kZXggZTI1ZGFiODEyOGRiLi41ZjYwMzc2OTVkZWUgMTAwNjQ0Ci0tLSBhL25l dC9uZXRmaWx0ZXIvbmZfdGFibGVzX29mZmxvYWQuYworKysgYi9uZXQvbmV0ZmlsdGVyL25mX3Rh Ymxlc19vZmZsb2FkLmMKQEAgLTQ1NSw3ICs0NTUsNyBAQCBzdGF0aWMgaW50IG5mdF9vZmZsb2Fk X25ldGRldl9ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsCiAJcmV0dXJuIE5PVElG WV9ET05FOwogfQogCi1zdGF0aWMgc3RydWN0IGZsb3dfaW5kcl9ibG9ja19pbmdfZW50cnkgYmxv Y2tfaW5nX2VudHJ5ID0geworc3RhdGljIHN0cnVjdCBmbG93X2luZHJfYmxvY2tfZW50cnkgYmxv Y2tfaW5nX2VudHJ5ID0gewogCS5jYgk9IG5mdF9pbmRyX2Jsb2NrX2NiLAogCS5saXN0CT0gTElT VF9IRUFEX0lOSVQoYmxvY2tfaW5nX2VudHJ5Lmxpc3QpLAogfTsKQEAgLTQ3MiwxMyArNDcyLDEz IEBAIGludCBuZnRfb2ZmbG9hZF9pbml0KHZvaWQpCiAJaWYgKGVyciA8IDApCiAJCXJldHVybiBl cnI7CiAKLQlmbG93X2luZHJfYWRkX2Jsb2NrX2luZ19jYigmYmxvY2tfaW5nX2VudHJ5KTsKKwlm bG93X2luZHJfYWRkX2Jsb2NrX2NiKCZibG9ja19pbmdfZW50cnkpOwogCiAJcmV0dXJuIDA7CiB9 CiAKIHZvaWQgbmZ0X29mZmxvYWRfZXhpdCh2b2lkKQogewotCWZsb3dfaW5kcl9kZWxfYmxvY2tf aW5nX2NiKCZibG9ja19pbmdfZW50cnkpOworCWZsb3dfaW5kcl9kZWxfYmxvY2tfY2IoJmJsb2Nr X2luZ19lbnRyeSk7CiAJdW5yZWdpc3Rlcl9uZXRkZXZpY2Vfbm90aWZpZXIoJm5mdF9vZmZsb2Fk X25ldGRldl9ub3RpZmllcik7CiB9CmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvY2xzX2FwaS5jIGIv bmV0L3NjaGVkL2Nsc19hcGkuYwppbmRleCAzN2M5NWNlZmI3ZGUuLjU3MDQ1ZjI0OTBlOCAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL2Nsc19hcGkuYworKysgYi9uZXQvc2NoZWQvY2xzX2FwaS5jCkBA IC0zNjMyLDcgKzM2MzIsNyBAQCBzdGF0aWMgc3RydWN0IHBlcm5ldF9vcGVyYXRpb25zIHRjZl9u ZXRfb3BzID0gewogCS5zaXplID0gc2l6ZW9mKHN0cnVjdCB0Y2ZfbmV0KSwKIH07CiAKLXN0YXRp YyBzdHJ1Y3QgZmxvd19pbmRyX2Jsb2NrX2luZ19lbnRyeSBibG9ja19pbmdfZW50cnkgPSB7Citz dGF0aWMgc3RydWN0IGZsb3dfaW5kcl9ibG9ja19lbnRyeSBibG9ja19pbmdfZW50cnkgPSB7CiAJ LmNiID0gdGNfaW5kcl9ibG9ja19nZXRfYW5kX2luZ19jbWQsCiAJLmxpc3QgPSBMSVNUX0hFQURf SU5JVChibG9ja19pbmdfZW50cnkubGlzdCksCiB9OwpAQCAtMzY0OSw3ICszNjQ5LDcgQEAgc3Rh dGljIGludCBfX2luaXQgdGNfZmlsdGVyX2luaXQodm9pZCkKIAlpZiAoZXJyKQogCQlnb3RvIGVy cl9yZWdpc3Rlcl9wZXJuZXRfc3Vic3lzOwogCi0JZmxvd19pbmRyX2FkZF9ibG9ja19pbmdfY2Io JmJsb2NrX2luZ19lbnRyeSk7CisJZmxvd19pbmRyX2FkZF9ibG9ja19jYigmYmxvY2tfaW5nX2Vu dHJ5KTsKIAogCXJ0bmxfcmVnaXN0ZXIoUEZfVU5TUEVDLCBSVE1fTkVXVEZJTFRFUiwgdGNfbmV3 X3RmaWx0ZXIsIE5VTEwsCiAJCSAgICAgIFJUTkxfRkxBR19ET0lUX1VOTE9DS0VEKTsKLS0gCjIu MjAuMQoKCkZyb20gMDdiY2IxOTNhYzJkMzZlMzFkOWY5ODU4MDM4MjMxYjk5NmY4ZTg3MCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiBIdXJsZXkgPGpvaG4uaHVybGV5QG5ldHJv bm9tZS5jb20+CkRhdGU6IFRodSwgNSBEZWMgMjAxOSAxNzowMzozNSArMDAwMApTdWJqZWN0OiBb UEFUQ0ggMjEvMzhdIG5ldDogc2NoZWQ6IGFsbG93IGluZGlyZWN0IGJsb2NrcyB0byBiaW5kIHRv IGNsc2FjdCBpbgogVEMKClsgVXBzdHJlYW0gY29tbWl0IDI1YTQ0M2Y3NGJjZmYyYzRkNTA2YTM5 ZWFlNjJmYzE1YWQ3YzYxOGEgXQoKV2hlbiBhIGRldmljZSBpcyBib3VuZCB0byBhIGNsc2FjdCBx ZGlzYywgYmluZCBldmVudHMgYXJlIHRyaWdnZXJlZCB0bwpyZWdpc3RlcmVkIGRyaXZlcnMgZm9y IGJvdGggaW5ncmVzcyBhbmQgZWdyZXNzLiBIb3dldmVyLCBpZiBhIGRyaXZlcgpyZWdpc3RlcnMg dG8gc3VjaCBhIGRldmljZSB1c2luZyB0aGUgaW5kaXJlY3QgYmxvY2sgcm91dGluZXMgdGhlbiBp dCBpcwphc3N1bWVkIHRoYXQgaXQgaXMgb25seSBpbnRlcmVzdGVkIGluIGluZ3Jlc3Mgb2ZmbG9h ZCBhbmQgc28gb25seSByZXBsYXlzCmluZ3Jlc3MgYmluZC91bmJpbmQgbWVzc2FnZXMuCgpUaGUg TkZQIGRyaXZlciBzdXBwb3J0cyB0aGUgb2ZmbG9hZCBvZiBzb21lIGVncmVzcyBmaWx0ZXJzIHdo ZW4KcmVnaXN0ZXJpbmcgdG8gYSBibG9jayB3aXRoIHFkaXNjIG9mIHR5cGUgY2xzYWN0LiBIb3dl dmVyLCBvbiB1bnJlZ2lzdGVyLAppZiB0aGUgYmxvY2sgaXMgc3RpbGwgYWN0aXZlLCBpdCB3aWxs IG5vdCByZWNlaXZlIGFuIHVuYmluZCBlZ3Jlc3MKbm90aWZpY2F0aW9uIHdoaWNoIGNhbiBwcmV2 ZW50IHByb3BlciBjbGVhbnVwIG9mIG90aGVyIHJlZ2lzdGVyZWQKY2FsbGJhY2tzLgoKTW9kaWZ5 IHRoZSBpbmRpcmVjdCBibG9jayBjYWxsYmFjayBjb21tYW5kIGluIFRDIHRvIHNlbmQgbWVzc2Fn ZXMgb2YKaW5ncmVzcyBhbmQvb3IgZWdyZXNzIGJpbmQgZGVwZW5kaW5nIG9uIHRoZSBxZGlzYyBp biB1c2UuIE5GUCBjdXJyZW50bHkKc3VwcG9ydHMgZWdyZXNzIG9mZmxvYWQgZm9yIFRDIGZsb3dl ciBvZmZsb2FkIHNvIHRoZSBjaGFuZ2VzIGFyZSBvbmx5CmFkZGVkIHRvIFRDLgoKRml4ZXM6IDRk MTJiYTQyNzg3YiAoIm5mcDogZmxvd2VyOiBhbGxvdyBvZmZsb2FkaW5nIG9mIG1hdGNoZXMgb24g J2ludGVybmFsJyBwb3J0cyIpClNpZ25lZC1vZmYtYnk6IEpvaG4gSHVybGV5IDxqb2huLmh1cmxl eUBuZXRyb25vbWUuY29tPgpBY2tlZC1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tp QG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvY2xzX2FwaS5jIHwgNTIgKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0 aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19hcGku YyBiL25ldC9zY2hlZC9jbHNfYXBpLmMKaW5kZXggNTcwNDVmMjQ5MGU4Li42YTBlYWNhZmRiMTkg MTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfYXBpLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19hcGku YwpAQCAtNjI2LDE1ICs2MjYsMTUgQEAgc3RhdGljIHZvaWQgdGNmX2NoYWluX2ZsdXNoKHN0cnVj dCB0Y2ZfY2hhaW4gKmNoYWluLCBib29sIHJ0bmxfaGVsZCkKIHN0YXRpYyBpbnQgdGNmX2Jsb2Nr X3NldHVwKHN0cnVjdCB0Y2ZfYmxvY2sgKmJsb2NrLAogCQkJICAgc3RydWN0IGZsb3dfYmxvY2tf b2ZmbG9hZCAqYm8pOwogCi1zdGF0aWMgdm9pZCB0Y19pbmRyX2Jsb2NrX2luZ19jbWQoc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwKLQkJCQkgIHN0cnVjdCB0Y2ZfYmxvY2sgKmJsb2NrLAotCQkJCSAg Zmxvd19pbmRyX2Jsb2NrX2JpbmRfY2JfdCAqY2IsCi0JCQkJICB2b2lkICpjYl9wcml2LAotCQkJ CSAgZW51bSBmbG93X2Jsb2NrX2NvbW1hbmQgY29tbWFuZCkKK3N0YXRpYyB2b2lkIHRjX2luZHJf YmxvY2tfY21kKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCB0Y2ZfYmxvY2sgKmJsb2Nr LAorCQkJICAgICAgZmxvd19pbmRyX2Jsb2NrX2JpbmRfY2JfdCAqY2IsIHZvaWQgKmNiX3ByaXYs CisJCQkgICAgICBlbnVtIGZsb3dfYmxvY2tfY29tbWFuZCBjb21tYW5kLCBib29sIGluZ3Jlc3Mp CiB7CiAJc3RydWN0IGZsb3dfYmxvY2tfb2ZmbG9hZCBibyA9IHsKIAkJLmNvbW1hbmQJPSBjb21t YW5kLAotCQkuYmluZGVyX3R5cGUJPSBGTE9XX0JMT0NLX0JJTkRFUl9UWVBFX0NMU0FDVF9JTkdS RVNTLAorCQkuYmluZGVyX3R5cGUJPSBpbmdyZXNzID8KKwkJCQkgIEZMT1dfQkxPQ0tfQklOREVS X1RZUEVfQ0xTQUNUX0lOR1JFU1MgOgorCQkJCSAgRkxPV19CTE9DS19CSU5ERVJfVFlQRV9DTFNB Q1RfRUdSRVNTLAogCQkubmV0CQk9IGRldl9uZXQoZGV2KSwKIAkJLmJsb2NrX3NoYXJlZAk9IHRj Zl9ibG9ja19ub25fbnVsbF9zaGFyZWQoYmxvY2spLAogCX07CkBAIC02NTIsOSArNjUyLDEwIEBA IHN0YXRpYyB2b2lkIHRjX2luZHJfYmxvY2tfaW5nX2NtZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LAogCXVwX3dyaXRlKCZibG9jay0+Y2JfbG9jayk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgdGNmX2Js b2NrICp0Y19kZXZfaW5ncmVzc19ibG9jayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQorc3RhdGlj IHN0cnVjdCB0Y2ZfYmxvY2sgKnRjX2Rldl9ibG9jayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBi b29sIGluZ3Jlc3MpCiB7CiAJY29uc3Qgc3RydWN0IFFkaXNjX2NsYXNzX29wcyAqY29wczsKKwlj b25zdCBzdHJ1Y3QgUWRpc2Nfb3BzICpvcHM7CiAJc3RydWN0IFFkaXNjICpxZGlzYzsKIAogCWlm ICghZGV2X2luZ3Jlc3NfcXVldWUoZGV2KSkKQEAgLTY2NCwyNCArNjY1LDM3IEBAIHN0YXRpYyBz dHJ1Y3QgdGNmX2Jsb2NrICp0Y19kZXZfaW5ncmVzc19ibG9jayhzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogCWlmICghcWRpc2MpCiAJCXJldHVybiBOVUxMOwogCi0JY29wcyA9IHFkaXNjLT5vcHMt PmNsX29wczsKKwlvcHMgPSBxZGlzYy0+b3BzOworCWlmICghb3BzKQorCQlyZXR1cm4gTlVMTDsK KworCWlmICghaW5ncmVzcyAmJiAhc3RyY21wKCJpbmdyZXNzIiwgb3BzLT5pZCkpCisJCXJldHVy biBOVUxMOworCisJY29wcyA9IG9wcy0+Y2xfb3BzOwogCWlmICghY29wcykKIAkJcmV0dXJuIE5V TEw7CiAKIAlpZiAoIWNvcHMtPnRjZl9ibG9jaykKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZXR1cm4g Y29wcy0+dGNmX2Jsb2NrKHFkaXNjLCBUQ19IX01JTl9JTkdSRVNTLCBOVUxMKTsKKwlyZXR1cm4g Y29wcy0+dGNmX2Jsb2NrKHFkaXNjLAorCQkJICAgICAgIGluZ3Jlc3MgPyBUQ19IX01JTl9JTkdS RVNTIDogVENfSF9NSU5fRUdSRVNTLAorCQkJICAgICAgIE5VTEwpOwogfQogCi1zdGF0aWMgdm9p ZCB0Y19pbmRyX2Jsb2NrX2dldF9hbmRfaW5nX2NtZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAot CQkJCQkgIGZsb3dfaW5kcl9ibG9ja19iaW5kX2NiX3QgKmNiLAotCQkJCQkgIHZvaWQgKmNiX3By aXYsCi0JCQkJCSAgZW51bSBmbG93X2Jsb2NrX2NvbW1hbmQgY29tbWFuZCkKK3N0YXRpYyB2b2lk IHRjX2luZHJfYmxvY2tfZ2V0X2FuZF9jbWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKKwkJCQkg ICAgICBmbG93X2luZHJfYmxvY2tfYmluZF9jYl90ICpjYiwKKwkJCQkgICAgICB2b2lkICpjYl9w cml2LAorCQkJCSAgICAgIGVudW0gZmxvd19ibG9ja19jb21tYW5kIGNvbW1hbmQpCiB7Ci0Jc3Ry dWN0IHRjZl9ibG9jayAqYmxvY2sgPSB0Y19kZXZfaW5ncmVzc19ibG9jayhkZXYpOworCXN0cnVj dCB0Y2ZfYmxvY2sgKmJsb2NrOworCisJYmxvY2sgPSB0Y19kZXZfYmxvY2soZGV2LCB0cnVlKTsK Kwl0Y19pbmRyX2Jsb2NrX2NtZChkZXYsIGJsb2NrLCBjYiwgY2JfcHJpdiwgY29tbWFuZCwgdHJ1 ZSk7CiAKLQl0Y19pbmRyX2Jsb2NrX2luZ19jbWQoZGV2LCBibG9jaywgY2IsIGNiX3ByaXYsIGNv bW1hbmQpOworCWJsb2NrID0gdGNfZGV2X2Jsb2NrKGRldiwgZmFsc2UpOworCXRjX2luZHJfYmxv Y2tfY21kKGRldiwgYmxvY2ssIGNiLCBjYl9wcml2LCBjb21tYW5kLCBmYWxzZSk7CiB9CiAKIHN0 YXRpYyB2b2lkIHRjX2luZHJfYmxvY2tfY2FsbChzdHJ1Y3QgdGNmX2Jsb2NrICpibG9jaywKQEAg LTM2MzIsOSArMzY0Niw5IEBAIHN0YXRpYyBzdHJ1Y3QgcGVybmV0X29wZXJhdGlvbnMgdGNmX25l dF9vcHMgPSB7CiAJLnNpemUgPSBzaXplb2Yoc3RydWN0IHRjZl9uZXQpLAogfTsKIAotc3RhdGlj IHN0cnVjdCBmbG93X2luZHJfYmxvY2tfZW50cnkgYmxvY2tfaW5nX2VudHJ5ID0gewotCS5jYiA9 IHRjX2luZHJfYmxvY2tfZ2V0X2FuZF9pbmdfY21kLAotCS5saXN0ID0gTElTVF9IRUFEX0lOSVQo YmxvY2tfaW5nX2VudHJ5Lmxpc3QpLAorc3RhdGljIHN0cnVjdCBmbG93X2luZHJfYmxvY2tfZW50 cnkgYmxvY2tfZW50cnkgPSB7CisJLmNiID0gdGNfaW5kcl9ibG9ja19nZXRfYW5kX2NtZCwKKwku bGlzdCA9IExJU1RfSEVBRF9JTklUKGJsb2NrX2VudHJ5Lmxpc3QpLAogfTsKIAogc3RhdGljIGlu dCBfX2luaXQgdGNfZmlsdGVyX2luaXQodm9pZCkKQEAgLTM2NDksNyArMzY2Myw3IEBAIHN0YXRp YyBpbnQgX19pbml0IHRjX2ZpbHRlcl9pbml0KHZvaWQpCiAJaWYgKGVycikKIAkJZ290byBlcnJf cmVnaXN0ZXJfcGVybmV0X3N1YnN5czsKIAotCWZsb3dfaW5kcl9hZGRfYmxvY2tfY2IoJmJsb2Nr X2luZ19lbnRyeSk7CisJZmxvd19pbmRyX2FkZF9ibG9ja19jYigmYmxvY2tfZW50cnkpOwogCiAJ cnRubF9yZWdpc3RlcihQRl9VTlNQRUMsIFJUTV9ORVdURklMVEVSLCB0Y19uZXdfdGZpbHRlciwg TlVMTCwKIAkJICAgICAgUlROTF9GTEFHX0RPSVRfVU5MT0NLRUQpOwotLSAKMi4yMC4xCgoKRnJv bSA5NGM0ZWJlM2MzMWMwYTg1ZTMzYWUyMWNlNGM3ODJhYTUyNjY2MmU3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBZb3NoaWtpIEtvbWFjaGkgPGtvbWFjaGkueW9zaGlraUBnbWFpbC5j b20+CkRhdGU6IFR1ZSwgMyBEZWMgMjAxOSAxOTo0MDoxMiArMDkwMApTdWJqZWN0OiBbUEFUQ0gg MjIvMzhdIGNsc19mbG93ZXI6IEZpeCB0aGUgYmVoYXZpb3IgdXNpbmcgcG9ydCByYW5nZXMgd2l0 aAogaHctb2ZmbG9hZAoKWyBVcHN0cmVhbSBjb21taXQgOGZmYjA1NWJlYWU1ODU3NGQzZTc3YjRi ZjlkNGQxNWVhY2UxY2EyNyBdCgpUaGUgcmVjZW50IGNvbW1pdCA1YzcyMjk5ZmJhOWQgKCJuZXQ6 IHNjaGVkOiBjbHNfZmxvd2VyOiBDbGFzc2lmeQpwYWNrZXRzIHVzaW5nIHBvcnQgcmFuZ2VzIikg aGFkIGFkZGVkIGZpbHRlcmluZyBiYXNlZCBvbiBwb3J0IHJhbmdlcwp0byB0YyBmbG93ZXIuIEhv d2V2ZXIgdGhlIGNvbW1pdCBtaXNzZWQgbmVjZXNzYXJ5IGNoYW5nZXMgaW4gaHctb2ZmbG9hZApj b2RlLCBzbyB0aGUgZmVhdHVyZSBnYXZlIHJpc2UgdG8gZ2VuZXJhdGluZyBpbmNvcnJlY3Qgb2Zm bG9hZGVkIGZsb3cKa2V5cyBpbiBOSUMuCgpPbmUgbW9yZSBkZXRhaWxlZCBleGFtcGxlIGlzIGJl bG93OgoKJCB0YyBxZGlzYyBhZGQgZGV2IGV0aDAgaW5ncmVzcwokIHRjIGZpbHRlciBhZGQgZGV2 IGV0aDAgaW5ncmVzcyBwcm90b2NvbCBpcCBmbG93ZXIgaXBfcHJvdG8gdGNwIFwKICBkc3RfcG9y dCAxMDAtMjAwIGFjdGlvbiBkcm9wCgpXaXRoIHRoZSBzZXR1cCBhYm92ZSwgYW4gZXhhY3QgbWF0 Y2ggZmlsdGVyIHdpdGggZHN0X3BvcnQgPT0gMCB3aWxsIGJlCmluc3RhbGxlZCBpbiBOSUMgYnkg aHctb2ZmbG9hZC4gSU9XLCB0aGUgTklDIHdpbGwgaGF2ZSBhIHJ1bGUgd2hpY2ggaXMKZXF1aXZh bGVudCB0byB0aGUgZm9sbG93aW5nIG9uZS4KCiQgdGMgcWRpc2MgYWRkIGRldiBldGgwIGluZ3Jl c3MKJCB0YyBmaWx0ZXIgYWRkIGRldiBldGgwIGluZ3Jlc3MgcHJvdG9jb2wgaXAgZmxvd2VyIGlw X3Byb3RvIHRjcCBcCiAgZHN0X3BvcnQgMCBhY3Rpb24gZHJvcAoKVGhlIGJlaGF2aW9yIHdhcyBj YXVzZWQgYnkgdGhlIGZsb3cgZGlzc2VjdG9yIHdoaWNoIGV4dHJhY3RzIHBhY2tldApkYXRhIGlu dG8gdGhlIGZsb3cga2V5IGluIHRoZSB0YyBmbG93ZXIuIE1vcmUgc3BlY2lmaWNhbGx5LCByZWdh cmRsZXNzCm9mIGV4YWN0IG1hdGNoIG9yIHNwZWNpZmllZCBwb3J0IHJhbmdlcywgZmxfaW5pdF9k aXNzZWN0b3IoKSBzZXQgdGhlCkZMT1dfRElTU0VDVE9SX0tFWV9QT1JUUyBmbGFnIGluIHN0cnVj dCBmbG93X2Rpc3NlY3RvciB0byBleHRyYWN0IHBvcnQKbnVtYmVycyBmcm9tIHNrYiBpbiBza2Jf Zmxvd19kaXNzZWN0KCkgY2FsbGVkIGJ5IGZsX2NsYXNzaWZ5KCkuIE5vdGUKdGhhdCBkZXZpY2Ug ZHJpdmVycyByZWNlaXZlZCB0aGUgc2FtZSBzdHJ1Y3QgZmxvd19kaXNzZWN0b3Igb2JqZWN0IGFz CnVzZWQgaW4gc2tiX2Zsb3dfZGlzc2VjdCgpLiBUaHVzLCBvZmZsb2FkZWQgZHJpdmVycyBjb3Vs ZCBub3QgaWRlbnRpZnkKd2hpY2ggb2YgdGhlc2UgaXMgdXNlZCBiZWNhdXNlIHRoZSBGTE9XX0RJ U1NFQ1RPUl9LRVlfUE9SVFMgZmxhZyB3YXMKc2V0IHRvIHN0cnVjdCBmbG93X2Rpc3NlY3RvciBp biBlaXRoZXIgY2FzZS4KClRoaXMgcGF0Y2ggYWRkcyB0aGUgbmV3IEZMT1dfRElTU0VDVE9SX0tF WV9QT1JUU19SQU5HRSBmbGFnIGFuZCB0aGUgbmV3CnRwX3JhbmdlIGZpZWxkIGluIHN0cnVjdCBm bF9mbG93X2tleSB0byByZWNvZ25pemUgd2hpY2ggZmlsdGVycyBhcmUgYXBwbGllZAp0byBvZmZs b2FkZWQgZHJpdmVycy4gQXQgdGhpcyBwb2ludCwgd2hlbiBmaWx0ZXJzIGJhc2VkIG9uIHBvcnQg cmFuZ2VzCnBhc3NlZCB0byBkcml2ZXJzLCBkcml2ZXJzIHJldHVybiB0aGUgRU9QTk9UU1VQUCBl cnJvciBiZWNhdXNlIHRoZXkgZG8Kbm90IHN1cHBvcnQgdGhlIGZlYXR1cmUgKHRoZSBuZXdseSBj cmVhdGVkIEZMT1dfRElTU0VDVE9SX0tFWV9QT1JUU19SQU5HRQpmbGFnKS4KCkZpeGVzOiA1Yzcy Mjk5ZmJhOWQgKCJuZXQ6IHNjaGVkOiBjbHNfZmxvd2VyOiBDbGFzc2lmeSBwYWNrZXRzIHVzaW5n IHBvcnQgcmFuZ2VzIikKU2lnbmVkLW9mZi1ieTogWW9zaGlraSBLb21hY2hpIDxrb21hY2hpLnlv c2hpa2lAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvZmxvd19kaXNzZWN0b3IuaCB8ICAgMSArCiBu ZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jICAgIHwgIDM3ICsrKysrKysrLS0tCiBuZXQvc2NoZWQv Y2xzX2Zsb3dlci5jICAgICAgIHwgMTE4ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tCiAzIGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2Zsb3dfZGlzc2VjdG9yLmggYi9pbmNsdWRlL25ldC9m bG93X2Rpc3NlY3Rvci5oCmluZGV4IDVjZDEyMjc2YWUyMS4uZTVmYzhkYjFmNzgzIDEwMDY0NAot LS0gYS9pbmNsdWRlL25ldC9mbG93X2Rpc3NlY3Rvci5oCisrKyBiL2luY2x1ZGUvbmV0L2Zsb3df ZGlzc2VjdG9yLmgKQEAgLTIyOSw2ICsyMjksNyBAQCBlbnVtIGZsb3dfZGlzc2VjdG9yX2tleV9p ZCB7CiAJRkxPV19ESVNTRUNUT1JfS0VZX0lQVjRfQUREUlMsIC8qIHN0cnVjdCBmbG93X2Rpc3Nl Y3Rvcl9rZXlfaXB2NF9hZGRycyAqLwogCUZMT1dfRElTU0VDVE9SX0tFWV9JUFY2X0FERFJTLCAv KiBzdHJ1Y3QgZmxvd19kaXNzZWN0b3Jfa2V5X2lwdjZfYWRkcnMgKi8KIAlGTE9XX0RJU1NFQ1RP Ul9LRVlfUE9SVFMsIC8qIHN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfcG9ydHMgKi8KKwlGTE9X X0RJU1NFQ1RPUl9LRVlfUE9SVFNfUkFOR0UsIC8qIHN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlf cG9ydHMgKi8KIAlGTE9XX0RJU1NFQ1RPUl9LRVlfSUNNUCwgLyogc3RydWN0IGZsb3dfZGlzc2Vj dG9yX2tleV9pY21wICovCiAJRkxPV19ESVNTRUNUT1JfS0VZX0VUSF9BRERSUywgLyogc3RydWN0 IGZsb3dfZGlzc2VjdG9yX2tleV9ldGhfYWRkcnMgKi8KIAlGTE9XX0RJU1NFQ1RPUl9LRVlfVElQ QywgLyogc3RydWN0IGZsb3dfZGlzc2VjdG9yX2tleV90aXBjICovCmRpZmYgLS1naXQgYS9uZXQv Y29yZS9mbG93X2Rpc3NlY3Rvci5jIGIvbmV0L2NvcmUvZmxvd19kaXNzZWN0b3IuYwppbmRleCBj MjA2ZDFjYjZlYzEuLjEyOTJmM2YwZjkzZiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZmxvd19kaXNz ZWN0b3IuYworKysgYi9uZXQvY29yZS9mbG93X2Rpc3NlY3Rvci5jCkBAIC02ODMsNiArNjgzLDMx IEBAIF9fc2tiX2Zsb3dfZGlzc2VjdF90Y3AoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlr ZXlfdGNwLT5mbGFncyA9ICgqKF9fYmUxNiAqKSAmdGNwX2ZsYWdfd29yZCh0aCkgJiBodG9ucygw eDBGRkYpKTsKIH0KIAorc3RhdGljIHZvaWQKK19fc2tiX2Zsb3dfZGlzc2VjdF9wb3J0cyhjb25z dCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJIHN0cnVjdCBmbG93X2Rpc3NlY3RvciAqZmxvd19k aXNzZWN0b3IsCisJCQkgdm9pZCAqdGFyZ2V0X2NvbnRhaW5lciwgdm9pZCAqZGF0YSwgaW50IG5o b2ZmLAorCQkJIHU4IGlwX3Byb3RvLCBpbnQgaGxlbikKK3sKKwllbnVtIGZsb3dfZGlzc2VjdG9y X2tleV9pZCBkaXNzZWN0b3JfcG9ydHMgPSBGTE9XX0RJU1NFQ1RPUl9LRVlfTUFYOworCXN0cnVj dCBmbG93X2Rpc3NlY3Rvcl9rZXlfcG9ydHMgKmtleV9wb3J0czsKKworCWlmIChkaXNzZWN0b3Jf dXNlc19rZXkoZmxvd19kaXNzZWN0b3IsIEZMT1dfRElTU0VDVE9SX0tFWV9QT1JUUykpCisJCWRp c3NlY3Rvcl9wb3J0cyA9IEZMT1dfRElTU0VDVE9SX0tFWV9QT1JUUzsKKwllbHNlIGlmIChkaXNz ZWN0b3JfdXNlc19rZXkoZmxvd19kaXNzZWN0b3IsCisJCQkJICAgIEZMT1dfRElTU0VDVE9SX0tF WV9QT1JUU19SQU5HRSkpCisJCWRpc3NlY3Rvcl9wb3J0cyA9IEZMT1dfRElTU0VDVE9SX0tFWV9Q T1JUU19SQU5HRTsKKworCWlmIChkaXNzZWN0b3JfcG9ydHMgPT0gRkxPV19ESVNTRUNUT1JfS0VZ X01BWCkKKwkJcmV0dXJuOworCisJa2V5X3BvcnRzID0gc2tiX2Zsb3dfZGlzc2VjdG9yX3Rhcmdl dChmbG93X2Rpc3NlY3RvciwKKwkJCQkJICAgICAgZGlzc2VjdG9yX3BvcnRzLAorCQkJCQkgICAg ICB0YXJnZXRfY29udGFpbmVyKTsKKwlrZXlfcG9ydHMtPnBvcnRzID0gX19za2JfZmxvd19nZXRf cG9ydHMoc2tiLCBuaG9mZiwgaXBfcHJvdG8sCisJCQkJCQlkYXRhLCBobGVuKTsKK30KKwogc3Rh dGljIHZvaWQKIF9fc2tiX2Zsb3dfZGlzc2VjdF9pcHY0KGNvbnN0IHN0cnVjdCBza19idWZmICpz a2IsCiAJCQlzdHJ1Y3QgZmxvd19kaXNzZWN0b3IgKmZsb3dfZGlzc2VjdG9yLApAQCAtODUyLDcg Kzg3Nyw2IEBAIGJvb2wgX19za2JfZmxvd19kaXNzZWN0KGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwK IAlzdHJ1Y3QgZmxvd19kaXNzZWN0b3Jfa2V5X2NvbnRyb2wgKmtleV9jb250cm9sOwogCXN0cnVj dCBmbG93X2Rpc3NlY3Rvcl9rZXlfYmFzaWMgKmtleV9iYXNpYzsKIAlzdHJ1Y3QgZmxvd19kaXNz ZWN0b3Jfa2V5X2FkZHJzICprZXlfYWRkcnM7Ci0Jc3RydWN0IGZsb3dfZGlzc2VjdG9yX2tleV9w b3J0cyAqa2V5X3BvcnRzOwogCXN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfaWNtcCAqa2V5X2lj bXA7CiAJc3RydWN0IGZsb3dfZGlzc2VjdG9yX2tleV90YWdzICprZXlfdGFnczsKIAlzdHJ1Y3Qg Zmxvd19kaXNzZWN0b3Jfa2V5X3ZsYW4gKmtleV92bGFuOwpAQCAtMTMwMCwxNCArMTMyNCw5IEBA IGJvb2wgX19za2JfZmxvd19kaXNzZWN0KGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwKIAkJYnJlYWs7 CiAJfQogCi0JaWYgKGRpc3NlY3Rvcl91c2VzX2tleShmbG93X2Rpc3NlY3RvciwgRkxPV19ESVNT RUNUT1JfS0VZX1BPUlRTKSAmJgotCSAgICAhKGtleV9jb250cm9sLT5mbGFncyAmIEZMT1dfRElT X0lTX0ZSQUdNRU5UKSkgewotCQlrZXlfcG9ydHMgPSBza2JfZmxvd19kaXNzZWN0b3JfdGFyZ2V0 KGZsb3dfZGlzc2VjdG9yLAotCQkJCQkJICAgICAgRkxPV19ESVNTRUNUT1JfS0VZX1BPUlRTLAot CQkJCQkJICAgICAgdGFyZ2V0X2NvbnRhaW5lcik7Ci0JCWtleV9wb3J0cy0+cG9ydHMgPSBfX3Nr Yl9mbG93X2dldF9wb3J0cyhza2IsIG5ob2ZmLCBpcF9wcm90bywKLQkJCQkJCQlkYXRhLCBobGVu KTsKLQl9CisJaWYgKCEoa2V5X2NvbnRyb2wtPmZsYWdzICYgRkxPV19ESVNfSVNfRlJBR01FTlQp KQorCQlfX3NrYl9mbG93X2Rpc3NlY3RfcG9ydHMoc2tiLCBmbG93X2Rpc3NlY3RvciwgdGFyZ2V0 X2NvbnRhaW5lciwKKwkJCQkJIGRhdGEsIG5ob2ZmLCBpcF9wcm90bywgaGxlbik7CiAKIAlpZiAo ZGlzc2VjdG9yX3VzZXNfa2V5KGZsb3dfZGlzc2VjdG9yLAogCQkJICAgICAgIEZMT1dfRElTU0VD VE9SX0tFWV9JQ01QKSkgewpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2Nsc19mbG93ZXIuYyBiL25l dC9zY2hlZC9jbHNfZmxvd2VyLmMKaW5kZXggNzQyMjFlMzM1MWMzLi40YWMxMTBiZjE5YzUgMTAw NjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfZmxvd2VyLmMKKysrIGIvbmV0L3NjaGVkL2Nsc19mbG93 ZXIuYwpAQCAtNTQsOCArNTQsMTMgQEAgc3RydWN0IGZsX2Zsb3dfa2V5IHsKIAlzdHJ1Y3QgZmxv d19kaXNzZWN0b3Jfa2V5X2lwIGlwOwogCXN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfaXAgZW5j X2lwOwogCXN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfZW5jX29wdHMgZW5jX29wdHM7Ci0Jc3Ry dWN0IGZsb3dfZGlzc2VjdG9yX2tleV9wb3J0cyB0cF9taW47Ci0Jc3RydWN0IGZsb3dfZGlzc2Vj dG9yX2tleV9wb3J0cyB0cF9tYXg7CisJdW5pb24geworCQlzdHJ1Y3QgZmxvd19kaXNzZWN0b3Jf a2V5X3BvcnRzIHRwOworCQlzdHJ1Y3QgeworCQkJc3RydWN0IGZsb3dfZGlzc2VjdG9yX2tleV9w b3J0cyB0cF9taW47CisJCQlzdHJ1Y3QgZmxvd19kaXNzZWN0b3Jfa2V5X3BvcnRzIHRwX21heDsK KwkJfTsKKwl9IHRwX3JhbmdlOwogCXN0cnVjdCBmbG93X2Rpc3NlY3Rvcl9rZXlfY3QgY3Q7CiB9 IF9fYWxpZ25lZChCSVRTX1BFUl9MT05HIC8gOCk7IC8qIEVuc3VyZSB0aGF0IHdlIGNhbiBkbyBj b21wYXJpc29ucyBhcyBsb25ncy4gKi8KIApAQCAtMTk4LDE5ICsyMDMsMTkgQEAgc3RhdGljIGJv b2wgZmxfcmFuZ2VfcG9ydF9kc3RfY21wKHN0cnVjdCBjbHNfZmxfZmlsdGVyICpmaWx0ZXIsCiB7 CiAJX19iZTE2IG1pbl9tYXNrLCBtYXhfbWFzaywgbWluX3ZhbCwgbWF4X3ZhbDsKIAotCW1pbl9t YXNrID0gaHRvbnMoZmlsdGVyLT5tYXNrLT5rZXkudHBfbWluLmRzdCk7Ci0JbWF4X21hc2sgPSBo dG9ucyhmaWx0ZXItPm1hc2stPmtleS50cF9tYXguZHN0KTsKLQltaW5fdmFsID0gaHRvbnMoZmls dGVyLT5rZXkudHBfbWluLmRzdCk7Ci0JbWF4X3ZhbCA9IGh0b25zKGZpbHRlci0+a2V5LnRwX21h eC5kc3QpOworCW1pbl9tYXNrID0gaHRvbnMoZmlsdGVyLT5tYXNrLT5rZXkudHBfcmFuZ2UudHBf bWluLmRzdCk7CisJbWF4X21hc2sgPSBodG9ucyhmaWx0ZXItPm1hc2stPmtleS50cF9yYW5nZS50 cF9tYXguZHN0KTsKKwltaW5fdmFsID0gaHRvbnMoZmlsdGVyLT5rZXkudHBfcmFuZ2UudHBfbWlu LmRzdCk7CisJbWF4X3ZhbCA9IGh0b25zKGZpbHRlci0+a2V5LnRwX3JhbmdlLnRwX21heC5kc3Qp OwogCiAJaWYgKG1pbl9tYXNrICYmIG1heF9tYXNrKSB7Ci0JCWlmIChodG9ucyhrZXktPnRwLmRz dCkgPCBtaW5fdmFsIHx8Ci0JCSAgICBodG9ucyhrZXktPnRwLmRzdCkgPiBtYXhfdmFsKQorCQlp ZiAoaHRvbnMoa2V5LT50cF9yYW5nZS50cC5kc3QpIDwgbWluX3ZhbCB8fAorCQkgICAgaHRvbnMo a2V5LT50cF9yYW5nZS50cC5kc3QpID4gbWF4X3ZhbCkKIAkJCXJldHVybiBmYWxzZTsKIAogCQkv KiBza2IgZG9lcyBub3QgaGF2ZSBtaW4gYW5kIG1heCB2YWx1ZXMgKi8KLQkJbWtleS0+dHBfbWlu LmRzdCA9IGZpbHRlci0+bWtleS50cF9taW4uZHN0OwotCQlta2V5LT50cF9tYXguZHN0ID0gZmls dGVyLT5ta2V5LnRwX21heC5kc3Q7CisJCW1rZXktPnRwX3JhbmdlLnRwX21pbi5kc3QgPSBmaWx0 ZXItPm1rZXkudHBfcmFuZ2UudHBfbWluLmRzdDsKKwkJbWtleS0+dHBfcmFuZ2UudHBfbWF4LmRz dCA9IGZpbHRlci0+bWtleS50cF9yYW5nZS50cF9tYXguZHN0OwogCX0KIAlyZXR1cm4gdHJ1ZTsK IH0KQEAgLTIyMSwxOSArMjI2LDE5IEBAIHN0YXRpYyBib29sIGZsX3JhbmdlX3BvcnRfc3JjX2Nt cChzdHJ1Y3QgY2xzX2ZsX2ZpbHRlciAqZmlsdGVyLAogewogCV9fYmUxNiBtaW5fbWFzaywgbWF4 X21hc2ssIG1pbl92YWwsIG1heF92YWw7CiAKLQltaW5fbWFzayA9IGh0b25zKGZpbHRlci0+bWFz ay0+a2V5LnRwX21pbi5zcmMpOwotCW1heF9tYXNrID0gaHRvbnMoZmlsdGVyLT5tYXNrLT5rZXku dHBfbWF4LnNyYyk7Ci0JbWluX3ZhbCA9IGh0b25zKGZpbHRlci0+a2V5LnRwX21pbi5zcmMpOwot CW1heF92YWwgPSBodG9ucyhmaWx0ZXItPmtleS50cF9tYXguc3JjKTsKKwltaW5fbWFzayA9IGh0 b25zKGZpbHRlci0+bWFzay0+a2V5LnRwX3JhbmdlLnRwX21pbi5zcmMpOworCW1heF9tYXNrID0g aHRvbnMoZmlsdGVyLT5tYXNrLT5rZXkudHBfcmFuZ2UudHBfbWF4LnNyYyk7CisJbWluX3ZhbCA9 IGh0b25zKGZpbHRlci0+a2V5LnRwX3JhbmdlLnRwX21pbi5zcmMpOworCW1heF92YWwgPSBodG9u cyhmaWx0ZXItPmtleS50cF9yYW5nZS50cF9tYXguc3JjKTsKIAogCWlmIChtaW5fbWFzayAmJiBt YXhfbWFzaykgewotCQlpZiAoaHRvbnMoa2V5LT50cC5zcmMpIDwgbWluX3ZhbCB8fAotCQkgICAg aHRvbnMoa2V5LT50cC5zcmMpID4gbWF4X3ZhbCkKKwkJaWYgKGh0b25zKGtleS0+dHBfcmFuZ2Uu dHAuc3JjKSA8IG1pbl92YWwgfHwKKwkJICAgIGh0b25zKGtleS0+dHBfcmFuZ2UudHAuc3JjKSA+ IG1heF92YWwpCiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJLyogc2tiIGRvZXMgbm90IGhhdmUgbWlu IGFuZCBtYXggdmFsdWVzICovCi0JCW1rZXktPnRwX21pbi5zcmMgPSBmaWx0ZXItPm1rZXkudHBf bWluLnNyYzsKLQkJbWtleS0+dHBfbWF4LnNyYyA9IGZpbHRlci0+bWtleS50cF9tYXguc3JjOwor CQlta2V5LT50cF9yYW5nZS50cF9taW4uc3JjID0gZmlsdGVyLT5ta2V5LnRwX3JhbmdlLnRwX21p bi5zcmM7CisJCW1rZXktPnRwX3JhbmdlLnRwX21heC5zcmMgPSBmaWx0ZXItPm1rZXkudHBfcmFu Z2UudHBfbWF4LnNyYzsKIAl9CiAJcmV0dXJuIHRydWU7CiB9CkBAIC03MTUsMjMgKzcyMCwyNSBA QCBzdGF0aWMgdm9pZCBmbF9zZXRfa2V5X3ZhbChzdHJ1Y3QgbmxhdHRyICoqdGIsCiBzdGF0aWMg aW50IGZsX3NldF9rZXlfcG9ydF9yYW5nZShzdHJ1Y3QgbmxhdHRyICoqdGIsIHN0cnVjdCBmbF9m bG93X2tleSAqa2V5LAogCQkJCSBzdHJ1Y3QgZmxfZmxvd19rZXkgKm1hc2spCiB7Ci0JZmxfc2V0 X2tleV92YWwodGIsICZrZXktPnRwX21pbi5kc3QsCi0JCSAgICAgICBUQ0FfRkxPV0VSX0tFWV9Q T1JUX0RTVF9NSU4sICZtYXNrLT50cF9taW4uZHN0LAotCQkgICAgICAgVENBX0ZMT1dFUl9VTlNQ RUMsIHNpemVvZihrZXktPnRwX21pbi5kc3QpKTsKLQlmbF9zZXRfa2V5X3ZhbCh0YiwgJmtleS0+ dHBfbWF4LmRzdCwKLQkJICAgICAgIFRDQV9GTE9XRVJfS0VZX1BPUlRfRFNUX01BWCwgJm1hc2st PnRwX21heC5kc3QsCi0JCSAgICAgICBUQ0FfRkxPV0VSX1VOU1BFQywgc2l6ZW9mKGtleS0+dHBf bWF4LmRzdCkpOwotCWZsX3NldF9rZXlfdmFsKHRiLCAma2V5LT50cF9taW4uc3JjLAotCQkgICAg ICAgVENBX0ZMT1dFUl9LRVlfUE9SVF9TUkNfTUlOLCAmbWFzay0+dHBfbWluLnNyYywKLQkJICAg ICAgIFRDQV9GTE9XRVJfVU5TUEVDLCBzaXplb2Yoa2V5LT50cF9taW4uc3JjKSk7Ci0JZmxfc2V0 X2tleV92YWwodGIsICZrZXktPnRwX21heC5zcmMsCi0JCSAgICAgICBUQ0FfRkxPV0VSX0tFWV9Q T1JUX1NSQ19NQVgsICZtYXNrLT50cF9tYXguc3JjLAotCQkgICAgICAgVENBX0ZMT1dFUl9VTlNQ RUMsIHNpemVvZihrZXktPnRwX21heC5zcmMpKTsKLQotCWlmICgobWFzay0+dHBfbWluLmRzdCAm JiBtYXNrLT50cF9tYXguZHN0ICYmCi0JICAgICBodG9ucyhrZXktPnRwX21heC5kc3QpIDw9IGh0 b25zKGtleS0+dHBfbWluLmRzdCkpIHx8Ci0JICAgICAobWFzay0+dHBfbWluLnNyYyAmJiBtYXNr LT50cF9tYXguc3JjICYmCi0JICAgICAgaHRvbnMoa2V5LT50cF9tYXguc3JjKSA8PSBodG9ucyhr ZXktPnRwX21pbi5zcmMpKSkKKwlmbF9zZXRfa2V5X3ZhbCh0YiwgJmtleS0+dHBfcmFuZ2UudHBf bWluLmRzdCwKKwkJICAgICAgIFRDQV9GTE9XRVJfS0VZX1BPUlRfRFNUX01JTiwgJm1hc2stPnRw X3JhbmdlLnRwX21pbi5kc3QsCisJCSAgICAgICBUQ0FfRkxPV0VSX1VOU1BFQywgc2l6ZW9mKGtl eS0+dHBfcmFuZ2UudHBfbWluLmRzdCkpOworCWZsX3NldF9rZXlfdmFsKHRiLCAma2V5LT50cF9y YW5nZS50cF9tYXguZHN0LAorCQkgICAgICAgVENBX0ZMT1dFUl9LRVlfUE9SVF9EU1RfTUFYLCAm bWFzay0+dHBfcmFuZ2UudHBfbWF4LmRzdCwKKwkJICAgICAgIFRDQV9GTE9XRVJfVU5TUEVDLCBz aXplb2Yoa2V5LT50cF9yYW5nZS50cF9tYXguZHN0KSk7CisJZmxfc2V0X2tleV92YWwodGIsICZr ZXktPnRwX3JhbmdlLnRwX21pbi5zcmMsCisJCSAgICAgICBUQ0FfRkxPV0VSX0tFWV9QT1JUX1NS Q19NSU4sICZtYXNrLT50cF9yYW5nZS50cF9taW4uc3JjLAorCQkgICAgICAgVENBX0ZMT1dFUl9V TlNQRUMsIHNpemVvZihrZXktPnRwX3JhbmdlLnRwX21pbi5zcmMpKTsKKwlmbF9zZXRfa2V5X3Zh bCh0YiwgJmtleS0+dHBfcmFuZ2UudHBfbWF4LnNyYywKKwkJICAgICAgIFRDQV9GTE9XRVJfS0VZ X1BPUlRfU1JDX01BWCwgJm1hc2stPnRwX3JhbmdlLnRwX21heC5zcmMsCisJCSAgICAgICBUQ0Ff RkxPV0VSX1VOU1BFQywgc2l6ZW9mKGtleS0+dHBfcmFuZ2UudHBfbWF4LnNyYykpOworCisJaWYg KChtYXNrLT50cF9yYW5nZS50cF9taW4uZHN0ICYmIG1hc2stPnRwX3JhbmdlLnRwX21heC5kc3Qg JiYKKwkgICAgIGh0b25zKGtleS0+dHBfcmFuZ2UudHBfbWF4LmRzdCkgPD0KKwkJIGh0b25zKGtl eS0+dHBfcmFuZ2UudHBfbWluLmRzdCkpIHx8CisJICAgIChtYXNrLT50cF9yYW5nZS50cF9taW4u c3JjICYmIG1hc2stPnRwX3JhbmdlLnRwX21heC5zcmMgJiYKKwkgICAgIGh0b25zKGtleS0+dHBf cmFuZ2UudHBfbWF4LnNyYykgPD0KKwkJIGh0b25zKGtleS0+dHBfcmFuZ2UudHBfbWluLnNyYykp KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCXJldHVybiAwOwpAQCAtMTMyMCw5ICsxMzI3LDEwIEBA IHN0YXRpYyB2b2lkIGZsX2luaXRfZGlzc2VjdG9yKHN0cnVjdCBmbG93X2Rpc3NlY3RvciAqZGlz c2VjdG9yLAogCQkJICAgICBGTE9XX0RJU1NFQ1RPUl9LRVlfSVBWNF9BRERSUywgaXB2NCk7CiAJ RkxfS0VZX1NFVF9JRl9NQVNLRUQobWFzaywga2V5cywgY250LAogCQkJICAgICBGTE9XX0RJU1NF Q1RPUl9LRVlfSVBWNl9BRERSUywgaXB2Nik7Ci0JaWYgKEZMX0tFWV9JU19NQVNLRUQobWFzaywg dHApIHx8Ci0JICAgIEZMX0tFWV9JU19NQVNLRUQobWFzaywgdHBfbWluKSB8fCBGTF9LRVlfSVNf TUFTS0VEKG1hc2ssIHRwX21heCkpCi0JCUZMX0tFWV9TRVQoa2V5cywgY250LCBGTE9XX0RJU1NF Q1RPUl9LRVlfUE9SVFMsIHRwKTsKKwlGTF9LRVlfU0VUX0lGX01BU0tFRChtYXNrLCBrZXlzLCBj bnQsCisJCQkgICAgIEZMT1dfRElTU0VDVE9SX0tFWV9QT1JUUywgdHApOworCUZMX0tFWV9TRVRf SUZfTUFTS0VEKG1hc2ssIGtleXMsIGNudCwKKwkJCSAgICAgRkxPV19ESVNTRUNUT1JfS0VZX1BP UlRTX1JBTkdFLCB0cF9yYW5nZSk7CiAJRkxfS0VZX1NFVF9JRl9NQVNLRUQobWFzaywga2V5cywg Y250LAogCQkJICAgICBGTE9XX0RJU1NFQ1RPUl9LRVlfSVAsIGlwKTsKIAlGTF9LRVlfU0VUX0lG X01BU0tFRChtYXNrLCBrZXlzLCBjbnQsCkBAIC0xMzcxLDggKzEzNzksMTAgQEAgc3RhdGljIHN0 cnVjdCBmbF9mbG93X21hc2sgKmZsX2NyZWF0ZV9uZXdfbWFzayhzdHJ1Y3QgY2xzX2ZsX2hlYWQg KmhlYWQsCiAKIAlmbF9tYXNrX2NvcHkobmV3bWFzaywgbWFzayk7CiAKLQlpZiAoKG5ld21hc2st PmtleS50cF9taW4uZHN0ICYmIG5ld21hc2stPmtleS50cF9tYXguZHN0KSB8fAotCSAgICAobmV3 bWFzay0+a2V5LnRwX21pbi5zcmMgJiYgbmV3bWFzay0+a2V5LnRwX21heC5zcmMpKQorCWlmICgo bmV3bWFzay0+a2V5LnRwX3JhbmdlLnRwX21pbi5kc3QgJiYKKwkgICAgIG5ld21hc2stPmtleS50 cF9yYW5nZS50cF9tYXguZHN0KSB8fAorCSAgICAobmV3bWFzay0+a2V5LnRwX3JhbmdlLnRwX21p bi5zcmMgJiYKKwkgICAgIG5ld21hc2stPmtleS50cF9yYW5nZS50cF9tYXguc3JjKSkKIAkJbmV3 bWFzay0+ZmxhZ3MgfD0gVENBX0ZMT1dFUl9NQVNLX0ZMQUdTX1JBTkdFOwogCiAJZXJyID0gZmxf aW5pdF9tYXNrX2hhc2h0YWJsZShuZXdtYXNrKTsKQEAgLTE5NzAsMTggKzE5ODAsMjIgQEAgc3Rh dGljIGludCBmbF9kdW1wX2tleV92YWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIHN0YXRpYyBpbnQg ZmxfZHVtcF9rZXlfcG9ydF9yYW5nZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZmxfZmxv d19rZXkgKmtleSwKIAkJCQkgIHN0cnVjdCBmbF9mbG93X2tleSAqbWFzaykKIHsKLQlpZiAoZmxf ZHVtcF9rZXlfdmFsKHNrYiwgJmtleS0+dHBfbWluLmRzdCwgVENBX0ZMT1dFUl9LRVlfUE9SVF9E U1RfTUlOLAotCQkJICAgICZtYXNrLT50cF9taW4uZHN0LCBUQ0FfRkxPV0VSX1VOU1BFQywKLQkJ CSAgICBzaXplb2Yoa2V5LT50cF9taW4uZHN0KSkgfHwKLQkgICAgZmxfZHVtcF9rZXlfdmFsKHNr YiwgJmtleS0+dHBfbWF4LmRzdCwgVENBX0ZMT1dFUl9LRVlfUE9SVF9EU1RfTUFYLAotCQkJICAg ICZtYXNrLT50cF9tYXguZHN0LCBUQ0FfRkxPV0VSX1VOU1BFQywKLQkJCSAgICBzaXplb2Yoa2V5 LT50cF9tYXguZHN0KSkgfHwKLQkgICAgZmxfZHVtcF9rZXlfdmFsKHNrYiwgJmtleS0+dHBfbWlu LnNyYywgVENBX0ZMT1dFUl9LRVlfUE9SVF9TUkNfTUlOLAotCQkJICAgICZtYXNrLT50cF9taW4u c3JjLCBUQ0FfRkxPV0VSX1VOU1BFQywKLQkJCSAgICBzaXplb2Yoa2V5LT50cF9taW4uc3JjKSkg fHwKLQkgICAgZmxfZHVtcF9rZXlfdmFsKHNrYiwgJmtleS0+dHBfbWF4LnNyYywgVENBX0ZMT1dF Ul9LRVlfUE9SVF9TUkNfTUFYLAotCQkJICAgICZtYXNrLT50cF9tYXguc3JjLCBUQ0FfRkxPV0VS X1VOU1BFQywKLQkJCSAgICBzaXplb2Yoa2V5LT50cF9tYXguc3JjKSkpCisJaWYgKGZsX2R1bXBf a2V5X3ZhbChza2IsICZrZXktPnRwX3JhbmdlLnRwX21pbi5kc3QsCisJCQkgICAgVENBX0ZMT1dF Ul9LRVlfUE9SVF9EU1RfTUlOLAorCQkJICAgICZtYXNrLT50cF9yYW5nZS50cF9taW4uZHN0LCBU Q0FfRkxPV0VSX1VOU1BFQywKKwkJCSAgICBzaXplb2Yoa2V5LT50cF9yYW5nZS50cF9taW4uZHN0 KSkgfHwKKwkgICAgZmxfZHVtcF9rZXlfdmFsKHNrYiwgJmtleS0+dHBfcmFuZ2UudHBfbWF4LmRz dCwKKwkJCSAgICBUQ0FfRkxPV0VSX0tFWV9QT1JUX0RTVF9NQVgsCisJCQkgICAgJm1hc2stPnRw X3JhbmdlLnRwX21heC5kc3QsIFRDQV9GTE9XRVJfVU5TUEVDLAorCQkJICAgIHNpemVvZihrZXkt PnRwX3JhbmdlLnRwX21heC5kc3QpKSB8fAorCSAgICBmbF9kdW1wX2tleV92YWwoc2tiLCAma2V5 LT50cF9yYW5nZS50cF9taW4uc3JjLAorCQkJICAgIFRDQV9GTE9XRVJfS0VZX1BPUlRfU1JDX01J TiwKKwkJCSAgICAmbWFzay0+dHBfcmFuZ2UudHBfbWluLnNyYywgVENBX0ZMT1dFUl9VTlNQRUMs CisJCQkgICAgc2l6ZW9mKGtleS0+dHBfcmFuZ2UudHBfbWluLnNyYykpIHx8CisJICAgIGZsX2R1 bXBfa2V5X3ZhbChza2IsICZrZXktPnRwX3JhbmdlLnRwX21heC5zcmMsCisJCQkgICAgVENBX0ZM T1dFUl9LRVlfUE9SVF9TUkNfTUFYLAorCQkJICAgICZtYXNrLT50cF9yYW5nZS50cF9tYXguc3Jj LCBUQ0FfRkxPV0VSX1VOU1BFQywKKwkJCSAgICBzaXplb2Yoa2V5LT50cF9yYW5nZS50cF9tYXgu c3JjKSkpCiAJCXJldHVybiAtMTsKIAogCXJldHVybiAwOwotLSAKMi4yMC4xCgoKRnJvbSBmYjgw NmEzZTllNWRkNGQ1NmRmM2YyNmE2ZDczM2IzYjBjZTc0YWRjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KRGF0ZTogVGh1 LCA1IERlYyAyMDE5IDE5OjM5OjAyIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyMy8zOF0gZ3JlOiBy ZWZldGNoIGVyc3BhbiBoZWFkZXIgZnJvbSBza2ItPmRhdGEgYWZ0ZXIKIHBza2JfbWF5X3B1bGwo KQoKWyBVcHN0cmVhbSBjb21taXQgMGU0OTQwOTI4YzI2NTI3Y2U4Zjk3MjM3ZmVmNGM4YTkxY2Qz NDIwNyBdCgpBZnRlciBwc2tiX21heV9wdWxsKCkgd2Ugc2hvdWxkIGFsd2F5cyByZWZldGNoIHRo ZSBoZWFkZXIKcG9pbnRlcnMgZnJvbSB0aGUgc2tiLT5kYXRhIGluIGNhc2UgaXQgZ290IHJlYWxs b2NhdGVkLgoKSW4gZ3JlX3BhcnNlX2hlYWRlcigpLCB0aGUgZXJzcGFuIGhlYWRlciBpcyBzdGls bCBmZXRjaGVkCmZyb20gdGhlICdvcHRpb25zJyBwb2ludGVyIHdoaWNoIGlzIGZldGNoZWQgYmVm b3JlCnBza2JfbWF5X3B1bGwoKS4KCkZvdW5kIHRoaXMgZHVyaW5nIGNvZGUgcmV2aWV3IG9mIGEg S01TQU4gYnVnIHJlcG9ydC4KCkZpeGVzOiBjYjczZWU0MGIxYjMgKCJuZXQ6IGlwX2dyZTogdXNl IGVyc3BhbiBrZXkgZmllbGQgZm9yIHR1bm5lbCBsb29rdXAiKQpDYzogTG9yZW56byBCaWFuY29u aSA8bG9yZW56by5iaWFuY29uaUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcg PHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4KQWNrZWQtYnk6IExvcmVuem8gQmlhbmNvbmkgPGxv cmVuem8uYmlhbmNvbmlAcmVkaGF0LmNvbT4KQWNrZWQtYnk6IFdpbGxpYW0gVHUgPHU5MDEyMDYz QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8c2ltb24uaG9ybWFuQG5ldHJv bm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBuZXQvaXB2NC9ncmVfZGVtdXguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2dyZV9k ZW11eC5jIGIvbmV0L2lwdjQvZ3JlX2RlbXV4LmMKaW5kZXggNDRiZmVlY2FjMzNlLi41ZmQ2ZThl ZDAyYjUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9kZW11eC5jCisrKyBiL25ldC9pcHY0L2dy ZV9kZW11eC5jCkBAIC0xMjcsNyArMTI3LDcgQEAgaW50IGdyZV9wYXJzZV9oZWFkZXIoc3RydWN0 IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHRubF9wdGtfaW5mbyAqdHBpLAogCQlpZiAoIXBza2JfbWF5 X3B1bGwoc2tiLCBuaHMgKyBoZHJfbGVuICsgc2l6ZW9mKCplcnNoZHIpKSkKIAkJCXJldHVybiAt RUlOVkFMOwogCi0JCWVyc2hkciA9IChzdHJ1Y3QgZXJzcGFuX2Jhc2VfaGRyICopb3B0aW9uczsK KwkJZXJzaGRyID0gKHN0cnVjdCBlcnNwYW5fYmFzZV9oZHIgKikoc2tiLT5kYXRhICsgbmhzICsg aGRyX2xlbik7CiAJCXRwaS0+a2V5ID0gY3B1X3RvX2JlMzIoZ2V0X3Nlc3Npb25faWQoZXJzaGRy KSk7CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDkyNGIwMGQ3NTAyNmIxN2RjYjk3OTQyOTZjZDc3 ZDJhOGNiY2Q0MzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hcnRpbiBWYXJnaGVz ZSA8bWFydGluLnZhcmdoZXNlQG5va2lhLmNvbT4KRGF0ZTogTW9uLCAyIERlYyAyMDE5IDEwOjQ5 OjUxICswNTMwClN1YmplY3Q6IFtQQVRDSCAyNC8zOF0gRml4ZWQgdXBkYXRpbmcgb2YgZXRoZXJ0 eXBlIGluIGZ1bmN0aW9uIHNrYl9tcGxzX3BvcAoKWyBVcHN0cmVhbSBjb21taXQgMDQwYjVjZmJj ZWZhMjYzY2NmMmMxMThjNDkzODMwODYwNmJiN2VkOCBdCgpUaGUgc2tiX21wbHNfcG9wIHdhcyBu b3QgdXBkYXRpbmcgZXRoZXJ0eXBlIG9mIGFuIGV0aGVybmV0IHBhY2tldCBpZiB0aGUKcGFja2V0 IHdhcyBvcmlnaW5hbGx5IHJlY2VpdmVkIGZyb20gYSBub24gQVJQSFJEX0VUSEVSIGRldmljZS4K CkluIHRoZSBiZWxvdyBPVlMgZGF0YSBwYXRoIGZsb3csIHNpbmNlIHRoZSBkZXZpY2UgY29ycmVz cG9uZGluZyB0byBwb3J0IDcKaXMgYW4gbDMgZGV2aWNlIChBUlBIUkRfTk9ORSkgdGhlIHNrYl9t cGxzX3BvcCBmdW5jdGlvbiBkb2VzIG5vdCB1cGRhdGUKdGhlIGV0aGVydHlwZSBvZiB0aGUgcGFj a2V0IGV2ZW4gdGhvdWdoIHRoZSBwcmV2aW91cyBwdXNoX2V0aCBhY3Rpb24gaGFkCmFkZGVkIGFu IGV0aGVybmV0IGhlYWRlciB0byB0aGUgcGFja2V0LgoKcmVjaXJjX2lkKDApLGluX3BvcnQoNyks ZXRoX3R5cGUoMHg4ODQ3KSwKbXBscyhsYWJlbD0xMi8weGZmZmZmLHRjPTAvMCx0dGw9MC8weDAs Ym9zPTEvMSksCmFjdGlvbnM6cHVzaF9ldGgoc3JjPTAwOjAwOjAwOjAwOjAwOjAwLGRzdD0wMDow MDowMDowMDowMDowMCksCnBvcF9tcGxzKGV0aF90eXBlPTB4ODAwKSw0CgpGaXhlczogZWQyNDZj ZWUwOWI5ICgibmV0OiBjb3JlOiBtb3ZlIHBvcCBNUExTIGZ1bmN0aW9uYWxpdHkgZnJvbSBPdlMg dG8gY29yZSBoZWxwZXIiKQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gVmFyZ2hlc2UgPG1hcnRpbi52 YXJnaGVzZUBub2tpYS5jb20+CkFja2VkLWJ5OiBQcmF2aW4gQiBTaGVsYXIgPHBzaGVsYXJAb3Zu Lm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIGluY2x1ZGUvbGludXgvc2tidWZmLmggICAgfCAzICsrLQogbmV0L2NvcmUvc2tidWZm LmMgICAgICAgICB8IDYgKysrKy0tCiBuZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jIHwgMyArKy0K IG5ldC9zY2hlZC9hY3RfbXBscy5jICAgICAgfCA0ICsrKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTEg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4 L3NrYnVmZi5oIGIvaW5jbHVkZS9saW51eC9za2J1ZmYuaAppbmRleCA4Njg4ZjdhZGZkYTcuLjAy NmQ0OGRmMTJmOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9za2J1ZmYuaAorKysgYi9pbmNs dWRlL2xpbnV4L3NrYnVmZi5oCkBAIC0zNTI4LDcgKzM1MjgsOCBAQCBpbnQgc2tiX3ZsYW5fcG9w KHN0cnVjdCBza19idWZmICpza2IpOwogaW50IHNrYl92bGFuX3B1c2goc3RydWN0IHNrX2J1ZmYg KnNrYiwgX19iZTE2IHZsYW5fcHJvdG8sIHUxNiB2bGFuX3RjaSk7CiBpbnQgc2tiX21wbHNfcHVz aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgbXBsc19sc2UsIF9fYmUxNiBtcGxzX3Byb3Rv LAogCQkgIGludCBtYWNfbGVuKTsKLWludCBza2JfbXBsc19wb3Aoc3RydWN0IHNrX2J1ZmYgKnNr YiwgX19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNfbGVuKTsKK2ludCBza2JfbXBsc19wb3Aoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgX19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNfbGVuLAorCQkgYm9v bCBldGhlcm5ldCk7CiBpbnQgc2tiX21wbHNfdXBkYXRlX2xzZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBfX2JlMzIgbXBsc19sc2UpOwogaW50IHNrYl9tcGxzX2RlY190dGwoc3RydWN0IHNrX2J1ZmYg KnNrYik7CiBzdHJ1Y3Qgc2tfYnVmZiAqcHNrYl9leHRyYWN0KHN0cnVjdCBza19idWZmICpza2Is IGludCBvZmYsIGludCB0b19jb3B5LApkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9u ZXQvY29yZS9za2J1ZmYuYwppbmRleCA4NjdlNjFkZjAwZGIuLjMxMmU4MGU4Njg5OCAxMDA2NDQK LS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysrIGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTU1Mjks MTIgKzU1MjksMTQgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc2tiX21wbHNfcHVzaCk7CiAgKiBAc2ti OiBidWZmZXIKICAqIEBuZXh0X3Byb3RvOiBldGhlcnR5cGUgb2YgaGVhZGVyIGFmdGVyIHBvcHBl ZCBNUExTIGhlYWRlcgogICogQG1hY19sZW46IGxlbmd0aCBvZiB0aGUgTUFDIGhlYWRlcgorICog QGV0aGVybmV0OiBmbGFnIHRvIGluZGljYXRlIGlmIGV0aGVybmV0IGhlYWRlciBpcyBwcmVzZW50 IGluIHBhY2tldAogICoKICAqIEV4cGVjdHMgc2tiLT5kYXRhIGF0IG1hYyBoZWFkZXIuCiAgKgog ICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UuCiAgKi8KLWludCBza2Jf bXBsc19wb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNf bGVuKQoraW50IHNrYl9tcGxzX3BvcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMTYgbmV4dF9w cm90bywgaW50IG1hY19sZW4sCisJCSBib29sIGV0aGVybmV0KQogewogCWludCBlcnI7CiAKQEAg LTU1NTMsNyArNTU1NSw3IEBAIGludCBza2JfbXBsc19wb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwg X19iZTE2IG5leHRfcHJvdG8sIGludCBtYWNfbGVuKQogCXNrYl9yZXNldF9tYWNfaGVhZGVyKHNr Yik7CiAJc2tiX3NldF9uZXR3b3JrX2hlYWRlcihza2IsIG1hY19sZW4pOwogCi0JaWYgKHNrYi0+ ZGV2ICYmIHNrYi0+ZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikgeworCWlmIChldGhlcm5ldCkg ewogCQlzdHJ1Y3QgZXRoaGRyICpoZHI7CiAKIAkJLyogdXNlIG1wbHNfaGRyKCkgdG8gZ2V0IGV0 aGVydHlwZSB0byBhY2NvdW50IGZvciBWTEFOcy4gKi8KZGlmZiAtLWdpdCBhL25ldC9vcGVudnN3 aXRjaC9hY3Rpb25zLmMgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCmluZGV4IDFjNzdmNTIw ZjQ3NC4uZmQ1NGEyZWI4MzNiIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5j CisrKyBiL25ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMKQEAgLTE3OSw3ICsxNzksOCBAQCBzdGF0 aWMgaW50IHBvcF9tcGxzKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzd19mbG93X2tleSAq a2V5LAogewogCWludCBlcnI7CiAKLQllcnIgPSBza2JfbXBsc19wb3Aoc2tiLCBldGhlcnR5cGUs IHNrYi0+bWFjX2xlbik7CisJZXJyID0gc2tiX21wbHNfcG9wKHNrYiwgZXRoZXJ0eXBlLCBza2It Pm1hY19sZW4sCisJCQkgICBvdnNfa2V5X21hY19wcm90byhrZXkpID09IE1BQ19QUk9UT19FVEhF Uk5FVCk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKIApkaWZmIC0tZ2l0IGEvbmV0L3NjaGVk L2FjdF9tcGxzLmMgYi9uZXQvc2NoZWQvYWN0X21wbHMuYwppbmRleCA0Y2Y2YzU1M2JiMGIuLmJm NzRhNmM0OTkwYyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9tcGxzLmMKKysrIGIvbmV0L3Nj aGVkL2FjdF9tcGxzLmMKQEAgLTEsNiArMSw3IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogKEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UpCiAvKiBDb3B5cmlnaHQgKEMpIDIwMTkg TmV0cm9ub21lIFN5c3RlbXMsIEluYy4gKi8KIAorI2luY2x1ZGUgPGxpbnV4L2lmX2FycC5oPgog I2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KICNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KQEAgLTc2LDcgKzc3LDggQEAgc3RhdGljIGludCB0Y2ZfbXBs c19hY3Qoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjX2FjdGlvbiAqYSwKIAog CXN3aXRjaCAocC0+dGNmbV9hY3Rpb24pIHsKIAljYXNlIFRDQV9NUExTX0FDVF9QT1A6Ci0JCWlm IChza2JfbXBsc19wb3Aoc2tiLCBwLT50Y2ZtX3Byb3RvLCBtYWNfbGVuKSkKKwkJaWYgKHNrYl9t cGxzX3BvcChza2IsIHAtPnRjZm1fcHJvdG8sIG1hY19sZW4sCisJCQkJIHNrYi0+ZGV2ICYmIHNr Yi0+ZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikpCiAJCQlnb3RvIGRyb3A7CiAJCWJyZWFrOwog CWNhc2UgVENBX01QTFNfQUNUX1BVU0g6Ci0tIAoyLjIwLjEKCgpGcm9tIDBmOWVlNTQyYTg5ZWE3 YTQwNTkyMzg5MzA2NWRiNmNkYTZkMmE2NzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCA1IERlYyAyMDE5IDA3 OjIzOjM5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAyNS8zOF0gaHNyOiBmaXggYSBOVUxMIHBvaW50 ZXIgZGVyZWZlcmVuY2UgaW4gaHNyX2Rldl94bWl0KCkKClsgVXBzdHJlYW0gY29tbWl0IGRmOTU0 NjdiNmQyYmZjZTQ5NjY3ZWU0YjcxYzY3MjQ5YjAxOTU3ZjcgXQoKaHNyX2Rldl94bWl0KCkgY2Fs bHMgaHNyX3BvcnRfZ2V0X2hzcigpIHRvIGZpbmQgbWFzdGVyIG5vZGUgYW5kIHRoYXQgd291bGQK cmV0dXJuIE5VTEwgaWYgbWFzdGVyIG5vZGUgaXMgbm90IGV4aXN0aW5nIGluIHRoZSBsaXN0LgpC dXQgaHNyX2Rldl94bWl0KCkgZG9lc24ndCBjaGVjayByZXR1cm4gcG9pbnRlciBzbyBhIE5VTEwg ZGVyZWZlcmVuY2UKY291bGQgb2NjdXIuCgpUZXN0IGNvbW1hbmRzOgogICAgaXAgbmV0bnMgYWRk IG5zdAogICAgaXAgbGluayBhZGQgdmV0aDAgdHlwZSB2ZXRoIHBlZXIgbmFtZSB2ZXRoMQogICAg aXAgbGluayBhZGQgdmV0aDIgdHlwZSB2ZXRoIHBlZXIgbmFtZSB2ZXRoMwogICAgaXAgbGluayBz ZXQgdmV0aDEgbmV0bnMgbnN0CiAgICBpcCBsaW5rIHNldCB2ZXRoMyBuZXRucyBuc3QKICAgIGlw IGxpbmsgc2V0IHZldGgwIHVwCiAgICBpcCBsaW5rIHNldCB2ZXRoMiB1cAogICAgaXAgbGluayBh ZGQgaHNyMCB0eXBlIGhzciBzbGF2ZTEgdmV0aDAgc2xhdmUyIHZldGgyCiAgICBpcCBhIGEgMTky LjE2OC4xMDAuMS8yNCBkZXYgaHNyMAogICAgaXAgbGluayBzZXQgaHNyMCB1cAogICAgaXAgbmV0 bnMgZXhlYyBuc3QgaXAgbGluayBzZXQgdmV0aDEgdXAKICAgIGlwIG5ldG5zIGV4ZWMgbnN0IGlw IGxpbmsgc2V0IHZldGgzIHVwCiAgICBpcCBuZXRucyBleGVjIG5zdCBpcCBsaW5rIGFkZCBoc3Ix IHR5cGUgaHNyIHNsYXZlMSB2ZXRoMSBzbGF2ZTIgdmV0aDMKICAgIGlwIG5ldG5zIGV4ZWMgbnN0 IGlwIGEgYSAxOTIuMTY4LjEwMC4yLzI0IGRldiBoc3IxCiAgICBpcCBuZXRucyBleGVjIG5zdCBp cCBsaW5rIHNldCBoc3IxIHVwCiAgICBocGluZzMgMTkyLjE2OC4xMDAuMiAtMiAtLWZsb29kICYK ICAgIG1vZHByb2JlIC1ydiBoc3IKClNwbGF0IGxvb2tzIGxpa2U6ClsgIDIxNy4zNTExMjJdWyBU MTYzNV0ga2FzYW46IENPTkZJR19LQVNBTl9JTkxJTkUgZW5hYmxlZApbICAyMTcuMzUyOTY5XVsg VDE2MzVdIGthc2FuOiBHUEYgY291bGQgYmUgY2F1c2VkIGJ5IE5VTEwtcHRyIGRlcmVmIG9yIHVz ZXIgbWVtb3J5IGFjY2VzcwpbICAyMTcuMzU0Mjk3XVsgVDE2MzVdIGdlbmVyYWwgcHJvdGVjdGlv biBmYXVsdDogMDAwMCBbIzFdIFNNUCBERUJVR19QQUdFQUxMT0MgS0FTQU4gUFRJClsgIDIxNy4z NTU1MDddWyBUMTYzNV0gQ1BVOiAxIFBJRDogMTYzNSBDb21tOiBocGluZzMgTm90IHRhaW50ZWQg NS40LjArICMxOTIKWyAgMjE3LjM1NjQ3Ml1bIFQxNjM1XSBIYXJkd2FyZSBuYW1lOiBpbm5vdGVr IEdtYkggVmlydHVhbEJveC9WaXJ0dWFsQm94LCBCSU9TIFZpcnR1YWxCb3ggMTIvMDEvMjAwNgpb ICAyMTcuMzU3ODA0XVsgVDE2MzVdIFJJUDogMDAxMDpoc3JfZGV2X3htaXQrMHgzNC8weDkwIFto c3JdClsgIDIxNy4zNzMwMTBdWyBUMTYzNV0gQ29kZTogNDggOGQgYmUgMDAgMGMgMDAgMDAgYmUg MDQgMDAgMDAgMDAgNDggODMgZWMgMDggZTggMjEgYmUgZmYgZmYgNDggOGQgNzggMTAgNDggYmEg MDAgYgpbICAyMTcuMzc2OTE5XVsgVDE2MzVdIFJTUDogMDAxODpmZmZmODg4MGNkOGFmMDU4IEVG TEFHUzogMDAwMTAyMDIKWyAgMjE3LjM3NzU3MV1bIFQxNjM1XSBSQVg6IDAwMDAwMDAwMDAwMDAw MDAgUkJYOiBmZmZmODg4MGFjZGU2ODQwIFJDWDogMDAwMDAwMDAwMDAwMDAwMgpbICAyMTcuMzc5 NDY1XVsgVDE2MzVdIFJEWDogZGZmZmZjMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDQg UkRJOiAwMDAwMDAwMDAwMDAwMDEwClsgIDIxNy4zODAyNzRdWyBUMTYzNV0gUkJQOiBmZmZmODg4 MGFjZGU2ODQwIFIwODogZmZmZmVkMTAxYjQ0MGQ1ZCBSMDk6IDAwMDAwMDAwMDAwMDAwMDEKWyAg MjE3LjM4MTA3OF1bIFQxNjM1XSBSMTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiBmZmZmZWQxMDFi NDQwZDVjIFIxMjogZmZmZjg4ODBiZmZjYzAwMApbICAyMTcuMzgyMDIzXVsgVDE2MzVdIFIxMzog ZmZmZjg4ODBiZmZjYzA4OCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiBmZmZmODg4MGNhNjc1 YzAwClsgIDIxNy4zODMwOTRdWyBUMTYzNV0gRlM6ICAwMDAwN2YwNjBkOWQxNzQwKDAwMDApIEdT OmZmZmY4ODgwZGEwMDAwMDAoMDAwMCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbICAyMTcuMzg0 Mjg5XVsgVDE2MzVdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAw NTAwMzMKWyAgMjE3LjM4NTAwOV1bIFQxNjM1XSBDUjI6IDAwMDA3ZmFmMTUzODFkZDAgQ1IzOiAw MDAwMDAwMGQ1MjNjMDAxIENSNDogMDAwMDAwMDAwMDA2MDZlMApbICAyMTcuMzg1OTQwXVsgVDE2 MzVdIENhbGwgVHJhY2U6ClsgIDIxNy4zODY1NDRdWyBUMTYzNV0gIGRldl9oYXJkX3N0YXJ0X3ht aXQrMHgxNjAvMHg3NDAKWyAgMjE3LjM4NzExNF1bIFQxNjM1XSAgX19kZXZfcXVldWVfeG1pdCsw eDE5NjEvMHgyZTEwClsgIDIxNy4zODgxMThdWyBUMTYzNV0gID8gY2hlY2tfb2JqZWN0KzB4YWYv MHgyNjAKWyAgMjE3LjM5MTQ2Nl1bIFQxNjM1XSAgPyBfX2FsbG9jX3NrYisweGI5LzB4NTAwClsg IDIxNy4zOTIwMTddWyBUMTYzNV0gID8gaW5pdF9vYmplY3QrMHg2Yi8weDgwClsgIDIxNy4zOTI2 MjldWyBUMTYzNV0gID8gbmV0ZGV2X2NvcmVfcGlja190eCsweDJlMC8weDJlMApbICAyMTcuMzkz MTc1XVsgVDE2MzVdICA/IF9fYWxsb2Nfc2tiKzB4YjkvMHg1MDAKWyAgMjE3LjM5MzcyN11bIFQx NjM1XSAgPyByY3VfcmVhZF9sb2NrX3NjaGVkX2hlbGQrMHg5MC8weGMwClsgIDIxNy4zOTQzMzFd WyBUMTYzNV0gID8gcmN1X3JlYWRfbG9ja19iaF9oZWxkKzB4YTAvMHhhMApbICAyMTcuMzk1MDEz XVsgVDE2MzVdICA/IGthc2FuX3VucG9pc29uX3NoYWRvdysweDMwLzB4NDAKWyAgMjE3LjM5NTY2 OF1bIFQxNjM1XSAgPyBfX2thc2FuX2ttYWxsb2MuY29uc3Rwcm9wLjQrMHhhMC8weGQwClsgIDIx Ny4zOTYyODBdWyBUMTYzNV0gID8gX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4M2E4LzB4 M2YwClsgIDIxNy4zOTkwMDddWyBUMTYzNV0gID8gX19rYXNhbl9rbWFsbG9jLmNvbnN0cHJvcC40 KzB4YTAvMHhkMApbICAyMTcuNDAwMDkzXVsgVDE2MzVdICA/IF9fa21hbGxvY19yZXNlcnZlLmlz cmEuNDYrMHgyZS8weGIwClsgIDIxNy40MDExMThdWyBUMTYzNV0gID8gbWVtc2V0KzB4MWYvMHg0 MApbICAyMTcuNDAyNTI5XVsgVDE2MzVdICA/IF9fYWxsb2Nfc2tiKzB4MzE3LzB4NTAwClsgIDIx Ny40MDQ5MTVdWyBUMTYzNV0gID8gYXJwX3htaXQrMHhjYS8weDJjMApbIC4uLiBdCgpGaXhlczog MzExNjMzYjYwNDA2ICgiaHNyOiBzd2l0Y2ggLT5kZWxsaW5rKCkgdG8gLT5uZG9fdW5pbml0KCki KQpBY2tlZC1ieTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IFRhZWhlZSBZb28gPGFwNDIwMDczQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9oc3IvaHNyX2Rldmlj ZS5jIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2hzci9oc3JfZGV2aWNlLmMgYi9uZXQvaHNyL2hz cl9kZXZpY2UuYwppbmRleCBmNTA5YjQ5NTQ1MWEuLmIwMWUxYmFlNGRkYyAxMDA2NDQKLS0tIGEv bmV0L2hzci9oc3JfZGV2aWNlLmMKKysrIGIvbmV0L2hzci9oc3JfZGV2aWNlLmMKQEAgLTIyNyw4 ICsyMjcsMTMgQEAgc3RhdGljIGludCBoc3JfZGV2X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgaHNyX3BvcnQgKm1hc3RlcjsKIAogCW1h c3RlciA9IGhzcl9wb3J0X2dldF9oc3IoaHNyLCBIU1JfUFRfTUFTVEVSKTsKLQlza2ItPmRldiA9 IG1hc3Rlci0+ZGV2OwotCWhzcl9mb3J3YXJkX3NrYihza2IsIG1hc3Rlcik7CisJaWYgKG1hc3Rl cikgeworCQlza2ItPmRldiA9IG1hc3Rlci0+ZGV2OworCQloc3JfZm9yd2FyZF9za2Ioc2tiLCBt YXN0ZXIpOworCX0gZWxzZSB7CisJCWF0b21pY19sb25nX2luYygmZGV2LT50eF9kcm9wcGVkKTsK KwkJZGV2X2tmcmVlX3NrYl9hbnkoc2tiKTsKKwl9CiAJcmV0dXJuIE5FVERFVl9UWF9PSzsKIH0K IAotLSAKMi4yMC4xCgoKRnJvbSA3MTE4OGJlZDZmOThjZTY0ZmEzYmIyMzZhOWRlNWY3OGVkMDAy NWU3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gVmFyZ2hlc2UgPG1hcnRp bi52YXJnaGVzZUBub2tpYS5jb20+CkRhdGU6IFRodSwgNSBEZWMgMjAxOSAwNTo1NzoyMiArMDUz MApTdWJqZWN0OiBbUEFUQ0ggMjYvMzhdIG5ldDogRml4ZWQgdXBkYXRpbmcgb2YgZXRoZXJ0eXBl IGluIHNrYl9tcGxzX3B1c2goKQoKWyBVcHN0cmVhbSBjb21taXQgZDA0YWMyMjRiMTY4OGYwMDVh ODRmNzY0Y2ZlMjk4NDRmOGU5ZGEwOCBdCgpUaGUgc2tiX21wbHNfcHVzaCB3YXMgbm90IHVwZGF0 aW5nIGV0aGVydHlwZSBvZiBhbiBldGhlcm5ldCBwYWNrZXQgaWYKdGhlIHBhY2tldCB3YXMgb3Jp Z2luYWxseSByZWNlaXZlZCBmcm9tIGEgbm9uIEFSUEhSRF9FVEhFUiBkZXZpY2UuCgpJbiB0aGUg YmVsb3cgT1ZTIGRhdGEgcGF0aCBmbG93LCBzaW5jZSB0aGUgZGV2aWNlIGNvcnJlc3BvbmRpbmcg dG8KcG9ydCA3IGlzIGFuIGwzIGRldmljZSAoQVJQSFJEX05PTkUpIHRoZSBza2JfbXBsc19wdXNo IGZ1bmN0aW9uIGRvZXMKbm90IHVwZGF0ZSB0aGUgZXRoZXJ0eXBlIG9mIHRoZSBwYWNrZXQgZXZl biB0aG91Z2ggdGhlIHByZXZpb3VzCnB1c2hfZXRoIGFjdGlvbiBoYWQgYWRkZWQgYW4gZXRoZXJu ZXQgaGVhZGVyIHRvIHRoZSBwYWNrZXQuCgpyZWNpcmNfaWQoMCksaW5fcG9ydCg3KSxldGhfdHlw ZSgweDA4MDApLGlwdjQodG9zPTAvMHhmYyx0dGw9NjQsZnJhZz1ubyksCmFjdGlvbnM6cHVzaF9l dGgoc3JjPTAwOjAwOjAwOjAwOjAwOjAwLGRzdD0wMDowMDowMDowMDowMDowMCksCnB1c2hfbXBs cyhsYWJlbD0xMyx0Yz0wLHR0bD02NCxib3M9MSxldGhfdHlwZT0weDg4NDcpLDQKCkZpeGVzOiA4 ODIyZTI3MGQ2OTcgKCJuZXQ6IGNvcmU6IG1vdmUgcHVzaCBNUExTIGZ1bmN0aW9uYWxpdHkgZnJv bSBPdlMgdG8gY29yZSBoZWxwZXIiKQpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gVmFyZ2hlc2UgPG1h cnRpbi52YXJnaGVzZUBub2tpYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oICAgIHwgMiAr LQogbmV0L2NvcmUvc2tidWZmLmMgICAgICAgICB8IDQgKystLQogbmV0L29wZW52c3dpdGNoL2Fj dGlvbnMuYyB8IDMgKystCiBuZXQvc2NoZWQvYWN0X21wbHMuYyAgICAgIHwgMyArKy0KIDQgZmls ZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgvc2tidWZmLmggYi9pbmNsdWRlL2xpbnV4L3NrYnVmZi5oCmluZGV4IDAy NmQ0OGRmMTJmOC4uMWJhNmUyY2MyNzI1IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NrYnVm Zi5oCisrKyBiL2luY2x1ZGUvbGludXgvc2tidWZmLmgKQEAgLTM1MjcsNyArMzUyNyw3IEBAIGlu dCBfX3NrYl92bGFuX3BvcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MTYgKnZsYW5fdGNpKTsKIGlu dCBza2Jfdmxhbl9wb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBpbnQgc2tiX3ZsYW5fcHVzaChz dHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMTYgdmxhbl9wcm90bywgdTE2IHZsYW5fdGNpKTsKIGlu dCBza2JfbXBsc19wdXNoKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBtcGxzX2xzZSwgX19i ZTE2IG1wbHNfcHJvdG8sCi0JCSAgaW50IG1hY19sZW4pOworCQkgIGludCBtYWNfbGVuLCBib29s IGV0aGVybmV0KTsKIGludCBza2JfbXBsc19wb3Aoc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTE2 IG5leHRfcHJvdG8sIGludCBtYWNfbGVuLAogCQkgYm9vbCBldGhlcm5ldCk7CiBpbnQgc2tiX21w bHNfdXBkYXRlX2xzZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBfX2JlMzIgbXBsc19sc2UpOwpkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvc2tidWZmLmMgYi9uZXQvY29yZS9za2J1ZmYuYwppbmRleCAzMTJl ODBlODY4OTguLjk3M2E3MWY0YmM4OSAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc2tidWZmLmMKKysr IGIvbmV0L2NvcmUvc2tidWZmLmMKQEAgLTU0ODQsNyArNTQ4NCw3IEBAIHN0YXRpYyB2b2lkIHNr Yl9tb2RfZXRoX3R5cGUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGV0aGhkciAqaGRyLAog ICogUmV0dXJucyAwIG9uIHN1Y2Nlc3MsIC1lcnJubyBvdGhlcndpc2UuCiAgKi8KIGludCBza2Jf bXBsc19wdXNoKHN0cnVjdCBza19idWZmICpza2IsIF9fYmUzMiBtcGxzX2xzZSwgX19iZTE2IG1w bHNfcHJvdG8sCi0JCSAgaW50IG1hY19sZW4pCisJCSAgaW50IG1hY19sZW4sIGJvb2wgZXRoZXJu ZXQpCiB7CiAJc3RydWN0IG1wbHNfc2hpbV9oZHIgKmxzZTsKIAlpbnQgZXJyOwpAQCAtNTUxNSw3 ICs1NTE1LDcgQEAgaW50IHNrYl9tcGxzX3B1c2goc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19iZTMy IG1wbHNfbHNlLCBfX2JlMTYgbXBsc19wcm90bywKIAlsc2UtPmxhYmVsX3N0YWNrX2VudHJ5ID0g bXBsc19sc2U7CiAJc2tiX3Bvc3RwdXNoX3Jjc3VtKHNrYiwgbHNlLCBNUExTX0hMRU4pOwogCi0J aWYgKHNrYi0+ZGV2ICYmIHNrYi0+ZGV2LT50eXBlID09IEFSUEhSRF9FVEhFUikKKwlpZiAoZXRo ZXJuZXQpCiAJCXNrYl9tb2RfZXRoX3R5cGUoc2tiLCBldGhfaGRyKHNrYiksIG1wbHNfcHJvdG8p OwogCXNrYi0+cHJvdG9jb2wgPSBtcGxzX3Byb3RvOwogCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZz d2l0Y2gvYWN0aW9ucy5jIGIvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMuYwppbmRleCBmZDU0YTJl YjgzM2IuLjk5MzUyZjA5ZGVhYSAxMDA2NDQKLS0tIGEvbmV0L29wZW52c3dpdGNoL2FjdGlvbnMu YworKysgYi9uZXQvb3BlbnZzd2l0Y2gvYWN0aW9ucy5jCkBAIC0xNjYsNyArMTY2LDggQEAgc3Rh dGljIGludCBwdXNoX21wbHMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHN3X2Zsb3dfa2V5 ICprZXksCiAJaW50IGVycjsKIAogCWVyciA9IHNrYl9tcGxzX3B1c2goc2tiLCBtcGxzLT5tcGxz X2xzZSwgbXBscy0+bXBsc19ldGhlcnR5cGUsCi0JCQkgICAgc2tiLT5tYWNfbGVuKTsKKwkJCSAg ICBza2ItPm1hY19sZW4sCisJCQkgICAgb3ZzX2tleV9tYWNfcHJvdG8oa2V5KSA9PSBNQUNfUFJP VE9fRVRIRVJORVQpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKZGlmZiAtLWdpdCBhL25l dC9zY2hlZC9hY3RfbXBscy5jIGIvbmV0L3NjaGVkL2FjdF9tcGxzLmMKaW5kZXggYmY3NGE2YzQ5 OTBjLi5kYjU3MGQyYmQwZTAgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfbXBscy5jCisrKyBi L25ldC9zY2hlZC9hY3RfbXBscy5jCkBAIC04Myw3ICs4Myw4IEBAIHN0YXRpYyBpbnQgdGNmX21w bHNfYWN0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y19hY3Rpb24gKmEsCiAJ CWJyZWFrOwogCWNhc2UgVENBX01QTFNfQUNUX1BVU0g6CiAJCW5ld19sc2UgPSB0Y2ZfbXBsc19n ZXRfbHNlKE5VTEwsIHAsICFldGhfcF9tcGxzKHNrYi0+cHJvdG9jb2wpKTsKLQkJaWYgKHNrYl9t cGxzX3B1c2goc2tiLCBuZXdfbHNlLCBwLT50Y2ZtX3Byb3RvLCBtYWNfbGVuKSkKKwkJaWYgKHNr Yl9tcGxzX3B1c2goc2tiLCBuZXdfbHNlLCBwLT50Y2ZtX3Byb3RvLCBtYWNfbGVuLAorCQkJCSAg c2tiLT5kZXYgJiYgc2tiLT5kZXYtPnR5cGUgPT0gQVJQSFJEX0VUSEVSKSkKIAkJCWdvdG8gZHJv cDsKIAkJYnJlYWs7CiAJY2FzZSBUQ0FfTVBMU19BQ1RfTU9ESUZZOgotLSAKMi4yMC4xCgoKRnJv bSA2NmQyNjA4ZmNkNmVkMGM4M2Q4YTliNmRjMTRjMTI1ODkwNjJhZjNjIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+CkRh dGU6IE1vbiwgMjUgTm92IDIwMTkgMTI6MTE6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDI3LzM4 XSBuZXQvbWx4NWU6IEZpeCBUWFEgaW5kaWNlcyB0byBiZSBzZXF1ZW50aWFsCgpbIFVwc3RyZWFt IGNvbW1pdCBjNTVkOGIxMDhjYWEyZWMxYWU4ZGRkZDAyY2I5ZDNhNzQwZjdjODM4IF0KCkNpdGVk IHBhdGNoIGNoYW5nZWQgKGNoYW5uZWwgaW5kZXgsIHRjKSA9PiAoVFhRIGluZGV4KSBtYXBwaW5n IHRvIGJlIGEKc3RhdGljIG9uZSwgaW4gb3JkZXIgdG8ga2VlcCBpbmRpY2VzIGNvbnNpc3RlbnQg d2hlbiBjaGFuZ2luZyBudW1iZXIgb2YKY2hhbm5lbHMgb3IgVENzLgoKRm9yIDMyIGNoYW5uZWxz IChPT0IpIGFuZCA4IFRDcywgcmVhbCBudW0gb2YgVFhRcyBpcyAyNTYuCldoZW4gcmVkdWNpbmcg dGhlIGFtb3VudCBvZiBjaGFubmVscyB0byA4LCB0aGUgcmVhbCBudW0gb2YgVFhRcyB3aWxsIGJl CmNoYW5nZWQgdG8gNjQuClRoaXMgaW5kaWNlcyBtZXRob2QgaXMgYnVnZ3k6Ci0gQ2hhbm5lbCAj MCwgVEMgMywgdGhlIFRYUSBpbmRleCBpcyA5Ni4KLSBJbmRleCA4IGlzIG5vdCB2YWxpZCwgYXMg dGhlcmUgaXMgbm8gc3VjaCBUWFEgZnJvbSBkcml2ZXIgcGVyc3BlY3RpdmUKICAoQXMgaXQgcmVw cmVzZW50cyBjaGFubmVsICM4LCBUQyAwLCB3aGljaCBpcyBub3QgdmFsaWQgd2l0aCB0aGUgYWJv dmUKICBjb25maWd1cmF0aW9uKS4KCkFzIHBhcnQgb2YgZHJpdmVyJ3Mgc2VsZWN0IHF1ZXVlLCBp dCBjYWxscyBuZXRkZXZfcGlja190eCB3aGljaCByZXR1cm5zIGFuCmluZGV4IGluIHRoZSByYW5n ZSBvZiByZWFsIG51bWJlciBvZiBUWFFzLiBEZXBlbmRzIG9uIHRoZSByZXR1cm4gdmFsdWUsCndp dGggdGhlIGV4YW1wbGVzIGFib3ZlLCBkcml2ZXIgY291bGQgaGF2ZSByZXR1cm5lZCBpbmRleCBs YXJnZXIgdGhhbiB0aGUKcmVhbCBudW1iZXIgb2YgdHggcXVldWVzLCBvciBjcmFzaCB0aGUga2Vy bmVsIGFzIGl0IHRyaWVzIHRvIHJlYWQgaW52YWxpZAphZGRyZXNzIG9mIFNRIHdoaWNoIHdhcyBu b3QgYWxsb2NhdGVkLgoKRml4IHRoYXQgYnkgYWxsb2NhdGluZyBzZXF1ZW50aWFsIFRYUSBpbmRp Y2VzLCBhbmQgaG9sZCBhIG5ldyBtYXBwaW5nCmJldHdlZW4gKGNoYW5uZWwgaW5kZXgsIHRjKSA9 PiAocmVhbCBUWFEgaW5kZXgpLiBUaGlzIG1hcHBpbmcgd2lsbCBiZQp1cGRhdGVkIGFzIHBhcnQg b2YgcHJpdiBjaGFubmVscyBhY3RpdmF0aW9uLCBhbmQgaXMgdXNlZCBpbgptbHg1ZV9zZWxlY3Rf cXVldWUgdG8gZmluZCB0aGUgc2VsZWN0ZWQgcXVldWUgaW5kZXguCgpUaGUgZXhpc3RpbmcgaW5k aWNlcyBtYXBwaW5nIChjaGFubmVsX3RjMnR4cSkgaXMgbm8gbG9uZ2VyIG5lZWRlZCwgYXMgaXQK aXMgdXNlZCBvbmx5IGZvciBzdGF0aXN0aWNzIHN0cnVjdHVyZXMgYW5kIGNhbiBiZSBjYWxjdWxh dGVkIG9uIHJ1biB0aW1lLgpEZWxldGUgaXRzIGRlZmluaW50aW9uIGFuZCB1cGRhdGVzLgoKRml4 ZXM6IDhiZmFmMDdmNzgwNiAoIm5ldC9tbHg1ZTogUHJlc2VudCBTVyBzdGF0cyB3aGVuIHN0YXRl IGlzIG5vdCBvcGVuZWQiKQpTaWduZWQtb2ZmLWJ5OiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFu b3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5o ICB8ICAyICstCiAuLi4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMg fCAzMSArKysrKysrLS0tLS0tLS0tLS0tCiAuLi4vZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX3N0YXRzLmMgICAgfCAgMiArLQogLi4uL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fdHguYyAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwg MjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW4uaAppbmRleCBmMWE3YmM0NmYxYzAuLjJjMTZhZGQwYjY0MiAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKKysrIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgKQEAgLTgxNiw3ICs4MTYsNyBAQCBz dHJ1Y3QgbWx4NWVfeHNrIHsKIHN0cnVjdCBtbHg1ZV9wcml2IHsKIAkvKiBwcml2IGRhdGEgcGF0 aCBmaWVsZHMgLSBzdGFydCAqLwogCXN0cnVjdCBtbHg1ZV90eHFzcSAqdHhxMnNxW01MWDVFX01B WF9OVU1fQ0hBTk5FTFMgKiBNTFg1RV9NQVhfTlVNX1RDXTsKLQlpbnQgY2hhbm5lbF90YzJ0eHFb TUxYNUVfTUFYX05VTV9DSEFOTkVMU11bTUxYNUVfTUFYX05VTV9UQ107CisJaW50IGNoYW5uZWxf dGMycmVhbHR4cVtNTFg1RV9NQVhfTlVNX0NIQU5ORUxTXVtNTFg1RV9NQVhfTlVNX1RDXTsKICNp ZmRlZiBDT05GSUdfTUxYNV9DT1JFX0VOX0RDQgogCXN0cnVjdCBtbHg1ZV9kY2J4X2RwICAgICAg IGRjYnhfZHA7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxh bm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDJhNTZlNjZmNThkOC4uNmFiZDRlZDViNjliIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMK QEAgLTE2OTMsMTEgKzE2OTMsMTAgQEAgc3RhdGljIGludCBtbHg1ZV9vcGVuX3NxcyhzdHJ1Y3Qg bWx4NWVfY2hhbm5lbCAqYywKIAkJCSAgc3RydWN0IG1seDVlX3BhcmFtcyAqcGFyYW1zLAogCQkJ ICBzdHJ1Y3QgbWx4NWVfY2hhbm5lbF9wYXJhbSAqY3BhcmFtKQogewotCXN0cnVjdCBtbHg1ZV9w cml2ICpwcml2ID0gYy0+cHJpdjsKIAlpbnQgZXJyLCB0YzsKIAogCWZvciAodGMgPSAwOyB0YyA8 IHBhcmFtcy0+bnVtX3RjOyB0YysrKSB7Ci0JCWludCB0eHFfaXggPSBjLT5peCArIHRjICogcHJp di0+bWF4X25jaDsKKwkJaW50IHR4cV9peCA9IGMtPml4ICsgdGMgKiBwYXJhbXMtPm51bV9jaGFu bmVsczsKIAogCQllcnIgPSBtbHg1ZV9vcGVuX3R4cXNxKGMsIGMtPnByaXYtPnRpc25bYy0+bGFn X3BvcnRdW3RjXSwgdHhxX2l4LAogCQkJCSAgICAgICBwYXJhbXMsICZjcGFyYW0tPnNxLCAmYy0+ c3FbdGNdLCB0Yyk7CkBAIC0yODc4LDI2ICsyODc3LDIxIEBAIHN0YXRpYyB2b2lkIG1seDVlX25l dGRldl9zZXRfdGNzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCiAJCW5ldGRldl9zZXRfdGNf cXVldWUobmV0ZGV2LCB0YywgbmNoLCAwKTsKIH0KIAotc3RhdGljIHZvaWQgbWx4NWVfYnVpbGRf dGMydHhxX21hcHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCitzdGF0aWMgdm9pZCBtbHg1ZV9i dWlsZF90eHFfbWFwcyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKIHsKLQlpbnQgaSwgdGM7CisJ aW50IGksIGNoOwogCi0JZm9yIChpID0gMDsgaSA8IHByaXYtPm1heF9uY2g7IGkrKykKLQkJZm9y ICh0YyA9IDA7IHRjIDwgcHJpdi0+cHJvZmlsZS0+bWF4X3RjOyB0YysrKQotCQkJcHJpdi0+Y2hh bm5lbF90YzJ0eHFbaV1bdGNdID0gaSArIHRjICogcHJpdi0+bWF4X25jaDsKLX0KKwljaCA9IHBy aXYtPmNoYW5uZWxzLm51bTsKIAotc3RhdGljIHZvaWQgbWx4NWVfYnVpbGRfdHgyc3FfbWFwcyhz dHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikKLXsKLQlzdHJ1Y3QgbWx4NWVfY2hhbm5lbCAqYzsKLQlz dHJ1Y3QgbWx4NWVfdHhxc3EgKnNxOwotCWludCBpLCB0YzsKKwlmb3IgKGkgPSAwOyBpIDwgY2g7 IGkrKykgeworCQlpbnQgdGM7CisKKwkJZm9yICh0YyA9IDA7IHRjIDwgcHJpdi0+Y2hhbm5lbHMu cGFyYW1zLm51bV90YzsgdGMrKykgeworCQkJc3RydWN0IG1seDVlX2NoYW5uZWwgKmMgPSBwcml2 LT5jaGFubmVscy5jW2ldOworCQkJc3RydWN0IG1seDVlX3R4cXNxICpzcSA9ICZjLT5zcVt0Y107 CiAKLQlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+Y2hhbm5lbHMubnVtOyBpKyspIHsKLQkJYyA9IHBy aXYtPmNoYW5uZWxzLmNbaV07Ci0JCWZvciAodGMgPSAwOyB0YyA8IGMtPm51bV90YzsgdGMrKykg ewotCQkJc3EgPSAmYy0+c3FbdGNdOwogCQkJcHJpdi0+dHhxMnNxW3NxLT50eHFfaXhdID0gc3E7 CisJCQlwcml2LT5jaGFubmVsX3RjMnJlYWx0eHFbaV1bdGNdID0gaSArIHRjICogY2g7CiAJCX0K IAl9CiB9CkBAIC0yOTEyLDcgKzI5MDYsNyBAQCB2b2lkIG1seDVlX2FjdGl2YXRlX3ByaXZfY2hh bm5lbHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAJbmV0aWZfc2V0X3JlYWxfbnVtX3R4X3F1 ZXVlcyhuZXRkZXYsIG51bV90eHFzKTsKIAluZXRpZl9zZXRfcmVhbF9udW1fcnhfcXVldWVzKG5l dGRldiwgbnVtX3J4cXMpOwogCi0JbWx4NWVfYnVpbGRfdHgyc3FfbWFwcyhwcml2KTsKKwltbHg1 ZV9idWlsZF90eHFfbWFwcyhwcml2KTsKIAltbHg1ZV9hY3RpdmF0ZV9jaGFubmVscygmcHJpdi0+ Y2hhbm5lbHMpOwogCW1seDVlX3hkcF90eF9lbmFibGUocHJpdik7CiAJbmV0aWZfdHhfc3RhcnRf YWxsX3F1ZXVlcyhwcml2LT5uZXRkZXYpOwpAQCAtNTAyOCw3ICs1MDIyLDYgQEAgc3RhdGljIGlu dCBtbHg1ZV9uaWNfaW5pdChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldiwKIAlpZiAoZXJyKQog CQltbHg1X2NvcmVfZXJyKG1kZXYsICJUTFMgaW5pdGlhbGl6YXRpb24gZmFpbGVkLCAlZFxuIiwg ZXJyKTsKIAltbHg1ZV9idWlsZF9uaWNfbmV0ZGV2KG5ldGRldik7Ci0JbWx4NWVfYnVpbGRfdGMy dHhxX21hcHMocHJpdik7CiAJbWx4NWVfaGVhbHRoX2NyZWF0ZV9yZXBvcnRlcnMocHJpdik7CiAK IAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21s eDUvY29yZS9lbl9zdGF0cy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL2VuX3N0YXRzLmMKaW5kZXggN2U2ZWJkMDUwNWNjLi45ZjA5MjUzZjlmNDYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9zdGF0cy5jCkBA IC0xNjAxLDcgKzE2MDEsNyBAQCBzdGF0aWMgaW50IG1seDVlX2dycF9jaGFubmVsc19maWxsX3N0 cmluZ3Moc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU4ICpkYXRhLAogCQkJZm9yIChqID0gMDsg aiA8IE5VTV9TUV9TVEFUUzsgaisrKQogCQkJCXNwcmludGYoZGF0YSArIChpZHgrKykgKiBFVEhf R1NUUklOR19MRU4sCiAJCQkJCXNxX3N0YXRzX2Rlc2Nbal0uZm9ybWF0LAotCQkJCQlwcml2LT5j aGFubmVsX3RjMnR4cVtpXVt0Y10pOworCQkJCQlpICsgdGMgKiBtYXhfbmNoKTsKIAogCWZvciAo aSA9IDA7IGkgPCBtYXhfbmNoOyBpKyspIHsKIAkJZm9yIChqID0gMDsgaiA8IE5VTV9YU0tTUV9T VEFUUyAqIGlzX3hzazsgaisrKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX3R4LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZW5fdHguYwppbmRleCA2N2RjNGYwOTIxYjYuLmRlZTEyZjE3ZjljMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKKysr IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3R4LmMKQEAgLTkz LDcgKzkzLDcgQEAgdTE2IG1seDVlX3NlbGVjdF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmICh0eHFfaXggPj0gbnVtX2NoYW5uZWxzKQogCQl0 eHFfaXggPSBwcml2LT50eHEyc3FbdHhxX2l4XS0+Y2hfaXg7CiAKLQlyZXR1cm4gcHJpdi0+Y2hh bm5lbF90YzJ0eHFbdHhxX2l4XVt1cF07CisJcmV0dXJuIHByaXYtPmNoYW5uZWxfdGMycmVhbHR4 cVt0eHFfaXhdW3VwXTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgbWx4NWVfc2tiX2wyX2hlYWRl cl9vZmZzZXQoc3RydWN0IHNrX2J1ZmYgKnNrYikKLS0gCjIuMjAuMQoKCkZyb20gMjI0ODBlYjM2 ZDM3OWMyODc5YTQwOTFjYzgxNjYxMTI0Y2U5ZjI0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogQWFyb24gQ29ub2xlIDxhY29ub2xlQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMyBEZWMg MjAxOSAxNjozNDoxNCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMjgvMzhdIGFjdF9jdDogc3VwcG9y dCBhc3ltbWV0cmljIGNvbm50cmFjawoKWyBVcHN0cmVhbSBjb21taXQgOTUyMTlhZmJiOTgwZjEw OTM0ZGU5ZjIzYTNlMTk5YmU2OWM1ZWQwOSBdCgpUaGUgYWN0X2N0IFRDIG1vZHVsZSBzaGFyZXMg YSBjb21tb24gY29ubnRyYWNrIGFuZCBOQVQgaW5mcmFzdHJ1Y3R1cmUKZXhwb3NlZCB2aWEgbmV0 ZmlsdGVyLiAgSXQncyBwb3NzaWJsZSB0aGF0IGEgcGFja2V0IG5lZWRzIGJvdGggU05BVCBhbmQK RE5BVCBtYW5pcHVsYXRpb24sIGR1ZSB0byBlLmcuIHR1cGxlIGNvbGxpc2lvbi4gIE5ldGZpbHRl ciBjYW4gc3VwcG9ydAp0aGlzIGJlY2F1c2UgaXQgcnVucyB0aHJvdWdoIHRoZSBOQVQgdGFibGUg dHdpY2UgLSBvbmNlIG9uIGluZ3Jlc3MgYW5kCmFnYWluIGFmdGVyIGVncmVzcy4gIFRoZSBhY3Rf Y3QgYWN0aW9uIGRvZXNuJ3QgaGF2ZSBzdWNoIGNhcGFiaWxpdHkuCgpMaWtlIG5ldGZpbHRlciBo b29rIGluZnJhc3RydWN0dXJlLCB3ZSBzaG91bGQgcnVuIHRocm91Z2ggTkFUIHR3aWNlIHRvCmtl ZXAgdGhlIHN5bW1ldHJ5LgoKRml4ZXM6IGI1N2RjN2MxM2VhOSAoIm5ldC9zY2hlZDogSW50cm9k dWNlIGFjdGlvbiBjdCIpClNpZ25lZC1vZmYtYnk6IEFhcm9uIENvbm9sZSA8YWNvbm9sZUByZWRo YXQuY29tPgpBY2tlZC1ieTogTWFyY2VsbyBSaWNhcmRvIExlaXRuZXIgPG1hcmNlbG8ubGVpdG5l ckBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvYWN0X2N0LmMgfCAxMyArKysrKysrKysrKystCiAxIGZp bGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L25ldC9zY2hlZC9hY3RfY3QuYyBiL25ldC9zY2hlZC9hY3RfY3QuYwppbmRleCBmY2M0NjAyNWU3 OTAuLmYzMjMyYTAwOTcwZiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL2FjdF9jdC5jCisrKyBiL25l dC9zY2hlZC9hY3RfY3QuYwpAQCAtMzI5LDYgKzMyOSw3IEBAIHN0YXRpYyBpbnQgdGNmX2N0X2Fj dF9uYXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCSAgYm9vbCBjb21taXQpCiB7CiAjaWYgSVNf RU5BQkxFRChDT05GSUdfTkZfTkFUKQorCWludCBlcnI7CiAJZW51bSBuZl9uYXRfbWFuaXBfdHlw ZSBtYW5pcHR5cGU7CiAKIAlpZiAoIShjdF9hY3Rpb24gJiBUQ0FfQ1RfQUNUX05BVCkpCkBAIC0z NTksNyArMzYwLDE3IEBAIHN0YXRpYyBpbnQgdGNmX2N0X2FjdF9uYXQoc3RydWN0IHNrX2J1ZmYg KnNrYiwKIAkJcmV0dXJuIE5GX0FDQ0VQVDsKIAl9CiAKLQlyZXR1cm4gY3RfbmF0X2V4ZWN1dGUo c2tiLCBjdCwgY3RpbmZvLCByYW5nZSwgbWFuaXB0eXBlKTsKKwllcnIgPSBjdF9uYXRfZXhlY3V0 ZShza2IsIGN0LCBjdGluZm8sIHJhbmdlLCBtYW5pcHR5cGUpOworCWlmIChlcnIgPT0gTkZfQUND RVBUICYmCisJICAgIGN0LT5zdGF0dXMgJiBJUFNfU1JDX05BVCAmJiBjdC0+c3RhdHVzICYgSVBT X0RTVF9OQVQpIHsKKwkJaWYgKG1hbmlwdHlwZSA9PSBORl9OQVRfTUFOSVBfU1JDKQorCQkJbWFu aXB0eXBlID0gTkZfTkFUX01BTklQX0RTVDsKKwkJZWxzZQorCQkJbWFuaXB0eXBlID0gTkZfTkFU X01BTklQX1NSQzsKKworCQllcnIgPSBjdF9uYXRfZXhlY3V0ZShza2IsIGN0LCBjdGluZm8sIHJh bmdlLCBtYW5pcHR5cGUpOworCX0KKwlyZXR1cm4gZXJyOwogI2Vsc2UKIAlyZXR1cm4gTkZfQUND RVBUOwogI2VuZGlmCi0tIAoyLjIwLjEKCgpGcm9tIDQ2MTVlNjQ5NjNhZmIwYmM2NTcwZTYxNGRh ZTJiNGU4NTkzNmI0OTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyYW4gQmVuIEVs aXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCA1IERlYyAyMDE5IDEwOjMwOjIy ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyOS8zOF0gbmV0L21seDVlOiBGaXggU0ZGIDg0NzIgZWVw cm9tIGxlbmd0aAoKWyBVcHN0cmVhbSBjb21taXQgYzQzMWY4NTk3ODYzYTkxZWVhNjAyNDkyNmUw YzFiMTc5Y2ZhNDg1MiBdCgpTRkYgODQ3MiBlZXByb20gbGVuZ3RoIGlzIDUxMiBieXRlcy4gRml4 IG1vZHVsZSBpbmZvIHJldHVybiB2YWx1ZSB0bwpzdXBwb3J0IDUxMiBieXRlcyByZWFkLgoKRml4 ZXM6IGFjZTMyOWY0YWIzYiAoIm5ldC9tbHg1ZTogZXRodG9vbCwgUmVtb3ZlIHVuc3VwcG9ydGVk IFNGUCBFRVBST00gaGlnaCBwYWdlcyBxdWVyeSIpClNpZ25lZC1vZmYtYnk6IEVyYW4gQmVuIEVs aXNoYSA8ZXJhbmJlQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEF5YSBMZXZpbiA8YXlhbEBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFu b3guY29tPgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9l dGh0b29sLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fZXRodG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3Jl L2VuX2V0aHRvb2wuYwppbmRleCA5NTYwMTI2OWZhMmUuLmQ1ZDgwYmUxYTZjNyAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5j CkBAIC0xNjQzLDcgKzE2NDMsNyBAQCBzdGF0aWMgaW50IG1seDVlX2dldF9tb2R1bGVfaW5mbyhz dHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCQlicmVhazsKIAljYXNlIE1MWDVfTU9EVUxFX0lE X1NGUDoKIAkJbW9kaW5mby0+dHlwZSAgICAgICA9IEVUSF9NT0RVTEVfU0ZGXzg0NzI7Ci0JCW1v ZGluZm8tPmVlcHJvbV9sZW4gPSBNTFg1X0VFUFJPTV9QQUdFX0xFTkdUSDsKKwkJbW9kaW5mby0+ ZWVwcm9tX2xlbiA9IEVUSF9NT0RVTEVfU0ZGXzg0NzJfTEVOOwogCQlicmVhazsKIAlkZWZhdWx0 OgogCQluZXRkZXZfZXJyKHByaXYtPm5ldGRldiwgIiVzOiBjYWJsZSB0eXBlIG5vdCByZWNvZ25p emVkOjB4JXhcbiIsCi0tIAoyLjIwLjEKCgpGcm9tIDQzZWMxMjVkOTUxNjczZTJjOGRhOWZjMjRm NzA4NzZkNzlmMmI0ZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJvaSBEYXlhbiA8 cm9pZEBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgNCBEZWMgMjAxOSAxMToyNTo0MyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMzAvMzhdIG5ldC9tbHg1ZTogRml4IGZyZWVpbmcgZmxvdyB3aXRoIGtm cmVlKCkgYW5kIG5vdAoga3ZmcmVlKCkKClsgVXBzdHJlYW0gY29tbWl0IGEyM2RhZTc5ZmI2NTU1 YzgwODUyODcwN2M2Mzg5MzQ1ZDBiMGMxODkgXQoKRmxvd3MgYXJlIGFsbG9jYXRlZCB3aXRoIGt6 YWxsb2MoKSBzbyBmcmVlIHdpdGgga2ZyZWUoKS4KCkZpeGVzOiAwNGRlN2RkYTczOTQgKCJuZXQv bWx4NWU6IEluZnJhc3RydWN0dXJlIGZvciBkdXBsaWNhdGVkIG9mZmxvYWRpbmcgb2YgVEMgZmxv d3MiKQpTaWduZWQtb2ZmLWJ5OiBSb2kgRGF5YW4gPHJvaWRAbWVsbGFub3guY29tPgpSZXZpZXdl ZC1ieTogRWxpIEJyaXRzdGVpbiA8ZWxpYnJAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBT YWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKaW5kZXggZjkwYTlmOGUwZmM2Li5jMmM3ZjIxNGE1 NmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9l bl90Yy5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90 Yy5jCkBAIC0xNjE2LDcgKzE2MTYsNyBAQCBzdGF0aWMgdm9pZCBfX21seDVlX3RjX2RlbF9mZGJf cGVlcl9mbG93KHN0cnVjdCBtbHg1ZV90Y19mbG93ICpmbG93KQogCWZsb3dfZmxhZ19jbGVhcihm bG93LCBEVVApOwogCiAJbWx4NWVfdGNfZGVsX2ZkYl9mbG93KGZsb3ctPnBlZXJfZmxvdy0+cHJp diwgZmxvdy0+cGVlcl9mbG93KTsKLQlrdmZyZWUoZmxvdy0+cGVlcl9mbG93KTsKKwlrZnJlZShm bG93LT5wZWVyX2Zsb3cpOwogCWZsb3ctPnBlZXJfZmxvdyA9IE5VTEw7CiB9CiAKLS0gCjIuMjAu MQoKCkZyb20gZjQ0NThmNTY2NTJiYTA4NTcyMTI5YzYyZDU3YjQ4ZjM0NTM3NGM5MSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQXlhIExldmluIDxheWFsQG1lbGxhbm94LmNvbT4KRGF0 ZTogU3VuLCAxIERlYyAyMDE5IDE0OjQ1OjI1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMS8zOF0g bmV0L21seDVlOiBGaXggdHJhbnNsYXRpb24gb2YgbGluayBtb2RlIGludG8gc3BlZWQKClsgVXBz dHJlYW0gY29tbWl0IDZkNDg1ZTVlNTU1NDM2ZDJjMTNhY2NkYjEwODA3MzI4YzQxNThhMTcgXQoK QWRkIGEgbWlzc2luZyB2YWx1ZSBpbiB0cmFuc2xhdGlvbiBvZiBQVFlTIGV4dF9ldGhfcHJvdG9f b3BlciB0byBpdHMKY29ycmVzcG9uZGluZyBzcGVlZC4gV2hlbiBleHRfZXRoX3Byb3RvX29wZXIg Yml0IDEwIGlzIHNldCwgZXRodG9vbApzaG93cyB1bmtub3duIHNwZWVkLiBXaXRoIHRoaXMgZml4 LCBldGh0b29sIHNob3dzIHNwZWVkIGlzIDEwMEcgYXMKZXhwZWN0ZWQuCgpGaXhlczogYTA4YjRl ZDEzNzNkICgibmV0L21seDU6IEFkZCBzdXBwb3J0IHRvIGV4dF8qIGZpZWxkcyBpbnRyb2R1Y2Vk IGluIFBvcnQgVHlwZSBhbmQgU3BlZWQgcmVnaXN0ZXIiKQpTaWduZWQtb2ZmLWJ5OiBBeWEgTGV2 aW4gPGF5YWxAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogRXJhbiBCZW4gRWxpc2hhIDxlcmFu YmVAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1l bGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW4vcG9ydC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydC5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuYwppbmRleCBm Nzc3OTk0ZjMwMDUuLmZjZTZlY2NkY2Y4YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3BvcnQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcG9ydC5jCkBAIC03Myw2ICs3Myw3IEBAIHN0YXRpYyBj b25zdCB1MzIgbWx4NWVfZXh0X2xpbmtfc3BlZWRbTUxYNUVfRVhUX0xJTktfTU9ERVNfTlVNQkVS XSA9IHsKIAlbTUxYNUVfNTBHQVVJXzJfTEFVSV8yXzUwR0JBU0VfQ1IyX0tSMl0JPSA1MDAwMCwK IAlbTUxYNUVfNTBHQVVJXzFfTEFVSV8xXzUwR0JBU0VfQ1JfS1JdCT0gNTAwMDAsCiAJW01MWDVF X0NBVUlfNF8xMDBHQkFTRV9DUjRfS1I0XQkJPSAxMDAwMDAsCisJW01MWDVFXzEwMEdBVUlfMl8x MDBHQkFTRV9DUjJfS1IyXQk9IDEwMDAwMCwKIAlbTUxYNUVfMjAwR0FVSV80XzIwMEdCQVNFX0NS NF9LUjRdCT0gMjAwMDAwLAogCVtNTFg1RV80MDBHQVVJXzhdCQkJPSA0MDAwMDAsCiB9OwotLSAK Mi4yMC4xCgoKRnJvbSA1ZTM0MmFkMTQzZDYxMzAzYzczNWJkMTE5MTNkOTZmYzI1NTU4MTQ2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBeWEgTGV2aW4gPGF5YWxAbWVsbGFub3guY29t PgpEYXRlOiBTdW4sIDEgRGVjIDIwMTkgMTY6MzM6NTUgKzAyMDAKU3ViamVjdDogW1BBVENIIDMy LzM4XSBuZXQvbWx4NWU6IGV0aHRvb2wsIEZpeCBhbmFseXNpcyBvZiBzcGVlZCBzZXR0aW5nCgpb IFVwc3RyZWFtIGNvbW1pdCAzZDdjYWRhZTUxZjFiN2YyODM1OGUzNmQwYTFjZTNmMGFlMmVlZTYw IF0KCldoZW4gc2V0dGluZyBzcGVlZCB0byAxMDBHIHZpYSBldGh0b29sIChBTiBpcyBzZXQgdG8g b2ZmKSwgb25seSAyNUcqNCBpcwpjb25maWd1cmVkIHdoaWxlIHRoZSB1c2VyLCB3aG8gaGFzIGFu IGFkdmFuY2VkIEhXIHdoaWNoIHN1cHBvcnRzCmV4dGVuZGVkIFBUWVMsIGV4cGVjdHMgYWxzbyA1 MEcqMiB0byBiZSBjb25maWd1cmVkLgpXaXRoIHRoaXMgcGF0Y2gsIHdoZW4gZXh0ZW5kZWQgUFRZ UyBtb2RlIGlzIGF2YWlsYWJsZSwgY29uZmlndXJlClBUWVMgdmlhIGV4dGVuZGVkIGZpZWxkcy4K CkZpeGVzOiA0Yjk1ODQwYTZjZWQgKCJuZXQvbWx4NWU6IEZpeCBtYXRjaGluZyBvZiBzcGVlZCB0 byBQUk0gbGluayBtb2RlcyIpClNpZ25lZC1vZmYtYnk6IEF5YSBMZXZpbiA8YXlhbEBtZWxsYW5v eC5jb20+ClJldmlld2VkLWJ5OiBFcmFuIEJlbiBFbGlzaGEgPGVyYW5iZUBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0K IC4uLi9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2V0aHRvb2wuYyAgICB8IDEz ICsrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUv Y29yZS9lbl9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2Nv cmUvZW5fZXRodG9vbC5jCmluZGV4IGQ1ZDgwYmUxYTZjNy4uYzY3NzZmMzA4ZDVlIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fZXRodG9vbC5j CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9ldGh0b29s LmMKQEAgLTEwMjcsMTggKzEwMjcsMTEgQEAgc3RhdGljIGJvb2wgZXh0X2xpbmtfbW9kZV9yZXF1 ZXN0ZWQoY29uc3QgdW5zaWduZWQgbG9uZyAqYWR2ZXIpCiAJcmV0dXJuIGJpdG1hcF9pbnRlcnNl Y3RzKG1vZGVzLCBhZHZlciwgX19FVEhUT09MX0xJTktfTU9ERV9NQVNLX05CSVRTKTsKIH0KIAot c3RhdGljIGJvb2wgZXh0X3NwZWVkX3JlcXVlc3RlZCh1MzIgc3BlZWQpCi17Ci0jZGVmaW5lIE1M WDVFX01BWF9QVFlTX0xFR0FDWV9TUEVFRCAxMDAwMDAKLQlyZXR1cm4gISEoc3BlZWQgPiBNTFg1 RV9NQVhfUFRZU19MRUdBQ1lfU1BFRUQpOwotfQotCi1zdGF0aWMgYm9vbCBleHRfcmVxdWVzdGVk KHU4IGF1dG9uZWcsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFkdmVyLCB1MzIgc3BlZWQpCitzdGF0 aWMgYm9vbCBleHRfcmVxdWVzdGVkKHU4IGF1dG9uZWcsIGNvbnN0IHVuc2lnbmVkIGxvbmcgKmFk dmVyLCBib29sIGV4dF9zdXBwb3J0ZWQpCiB7CiAJYm9vbCBleHRfbGlua19tb2RlID0gZXh0X2xp bmtfbW9kZV9yZXF1ZXN0ZWQoYWR2ZXIpOwotCWJvb2wgZXh0X3NwZWVkID0gZXh0X3NwZWVkX3Jl cXVlc3RlZChzcGVlZCk7CiAKLQlyZXR1cm4gIGF1dG9uZWcgPT0gQVVUT05FR19FTkFCTEUgPyBl eHRfbGlua19tb2RlIDogZXh0X3NwZWVkOworCXJldHVybiAgYXV0b25lZyA9PSBBVVRPTkVHX0VO QUJMRSA/IGV4dF9saW5rX21vZGUgOiBleHRfc3VwcG9ydGVkOwogfQogCiBpbnQgbWx4NWVfZXRo dG9vbF9zZXRfbGlua19rc2V0dGluZ3Moc3RydWN0IG1seDVlX3ByaXYgKnByaXYsCkBAIC0xMDY1 LDggKzEwNTgsOCBAQCBpbnQgbWx4NWVfZXRodG9vbF9zZXRfbGlua19rc2V0dGluZ3Moc3RydWN0 IG1seDVlX3ByaXYgKnByaXYsCiAJYXV0b25lZyA9IGxpbmtfa3NldHRpbmdzLT5iYXNlLmF1dG9u ZWc7CiAJc3BlZWQgPSBsaW5rX2tzZXR0aW5ncy0+YmFzZS5zcGVlZDsKIAotCWV4dCA9IGV4dF9y ZXF1ZXN0ZWQoYXV0b25lZywgYWR2ZXIsIHNwZWVkKSwKIAlleHRfc3VwcG9ydGVkID0gTUxYNV9D QVBfUENBTV9GRUFUVVJFKG1kZXYsIHB0eXNfZXh0ZW5kZWRfZXRoZXJuZXQpOworCWV4dCA9IGV4 dF9yZXF1ZXN0ZWQoYXV0b25lZywgYWR2ZXIsIGV4dF9zdXBwb3J0ZWQpOwogCWlmICghZXh0X3N1 cHBvcnRlZCAmJiBleHQpCiAJCXJldHVybiAtRU9QTk9UU1VQUDsKIAotLSAKMi4yMC4xCgoKRnJv bSA1ZjQwZGRjOTVjYjBmMjM4MDAzZTJhMzRhNzVlNDRhODJlYjBiYmZiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBMZW1vbiA8am9uYXRoYW4ubGVtb25AZ21haWwuY29t PgpEYXRlOiBUaHUsIDE0IE5vdiAyMDE5IDE0OjEzOjAwIC0wODAwClN1YmplY3Q6IFtQQVRDSCAz My8zOF0gcGFnZV9wb29sOiBkbyBub3QgcmVsZWFzZSBwb29sIHVudGlsIGluZmxpZ2h0ID09IDAu CgpbIFVwc3RyZWFtIGNvbW1pdCBjM2Y4MTJjZWEwZDcwMDY0NjlkMWNmMzNhNGE5ZjBhMTJiYjRi M2EzIF0KClRoZSBwYWdlIHBvb2wga2VlcHMgdHJhY2sgb2YgdGhlIG51bWJlciBvZiBwYWdlcyBp biBmbGlnaHQsIGFuZAppdCBpc24ndCBzYWZlIHRvIHJlbW92ZSB0aGUgcG9vbCB1bnRpbCBhbGwg cGFnZXMgYXJlIHJldHVybmVkLgoKRGlzYWxsb3cgcmVtb3ZpbmcgdGhlIHBvb2wgdW50aWwgYWxs IHBhZ2VzIGFyZSBiYWNrLCBzbyB0aGUgcG9vbAppcyBhbHdheXMgYXZhaWxhYmxlIGZvciBwYWdl IHByb2R1Y2Vycy4KCk1ha2UgdGhlIHBhZ2UgcG9vbCByZXNwb25zaWJsZSBmb3IgaXRzIG93biBk ZWxheWVkIGRlc3RydWN0aW9uCmluc3RlYWQgb2YgcmVseWluZyBvbiBYRFAsIHNvIHRoZSBwYWdl IHBvb2wgY2FuIGJlIHVzZWQgd2l0aG91dAp0aGUgeGRwIG1lbW9yeSBtb2RlbC4KCldoZW4gYWxs IHBhZ2VzIGFyZSByZXR1cm5lZCwgZnJlZSB0aGUgcG9vbCBhbmQgbm90aWZ5IHhkcCBpZiB0aGUK cG9vbCBpcyByZWdpc3RlcmVkIHdpdGggdGhlIHhkcCBtZW1vcnkgc3lzdGVtLiAgSGF2ZSB0aGUg Y2FsbGJhY2sKcGVyZm9ybSBhIHRhYmxlIHdhbGsgc2luY2Ugc29tZSBkcml2ZXJzIChjcHN3KSBt YXkgc2hhcmUgdGhlIHBvb2wKYW1vbmcgbXVsdGlwbGUgeGRwX3J4cV9pbmZvLgoKTm90ZSB0aGF0 IHRoZSBpbmNyZW1lbnQgb2YgcGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQgbWF5IHJlc3VsdCBpbgpp bmZsaWdodCA9PSAwLCByZXN1bHRpbmcgaW4gdGhlIHBvb2wgYmVpbmcgcmVsZWFzZWQuCgpGaXhl czogZDk1NmEwNDhjZDNmICgieGRwOiBmb3JjZSBtZW0gYWxsb2NhdG9yIHJlbW92YWwgYW5kIHBl cmlvZGljIHdhcm5pbmciKQpTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBMZW1vbiA8am9uYXRoYW4u bGVtb25AZ21haWwuY29tPgpBY2tlZC1ieTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVy QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBJbGlhcyBBcGFsb2RpbWFzIDxpbGlhcy5hcGFsb2RpbWFz QGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiAuLi4vbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWlu LmMgfCAgIDQgKy0KIGluY2x1ZGUvbmV0L3BhZ2VfcG9vbC5oICAgICAgICAgICAgICAgICAgICAg ICB8ICA1MiArKy0tLS0tLQogaW5jbHVkZS9uZXQveGRwX3ByaXYuaCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0IC0KIGluY2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oICAgICAgICAgICAgICAg ICAgICB8ICAxOSArLS0KIG5ldC9jb3JlL3BhZ2VfcG9vbC5jICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDEyMiArKysrKysrKysrKy0tLS0tLS0KIG5ldC9jb3JlL3hkcC5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDEyMSArKysrKysrLS0tLS0tLS0tLQogNiBmaWxlcyBjaGFu Z2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgMTgzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCmluZGV4IGY4MjYzNjVj OTc5ZC4uMjcxYTAwZjI0ZjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1p Y3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWlj cm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTE1MDIsMTAgKzE1MDIsOCBAQCBzdGF0aWMgdm9p ZCBmcmVlX2RtYV9yeF9kZXNjX3Jlc291cmNlcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpCiAJ CQkJCSAgcnhfcS0+ZG1hX2VyeCwgcnhfcS0+ZG1hX3J4X3BoeSk7CiAKIAkJa2ZyZWUocnhfcS0+ YnVmX3Bvb2wpOwotCQlpZiAocnhfcS0+cGFnZV9wb29sKSB7Ci0JCQlwYWdlX3Bvb2xfcmVxdWVz dF9zaHV0ZG93bihyeF9xLT5wYWdlX3Bvb2wpOworCQlpZiAocnhfcS0+cGFnZV9wb29sKQogCQkJ cGFnZV9wb29sX2Rlc3Ryb3kocnhfcS0+cGFnZV9wb29sKTsKLQkJfQogCX0KIH0KIApkaWZmIC0t Z2l0IGEvaW5jbHVkZS9uZXQvcGFnZV9wb29sLmggYi9pbmNsdWRlL25ldC9wYWdlX3Bvb2wuaApp bmRleCAyY2JjZGJkZWMyNTQuLjExMjFmYWE5OWMxMiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv cGFnZV9wb29sLmgKKysrIGIvaW5jbHVkZS9uZXQvcGFnZV9wb29sLmgKQEAgLTcwLDcgKzcwLDEy IEBAIHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zIHsKIHN0cnVjdCBwYWdlX3Bvb2wgewogCXN0cnVj dCBwYWdlX3Bvb2xfcGFyYW1zIHA7CiAKLSAgICAgICAgdTMyIHBhZ2VzX3N0YXRlX2hvbGRfY250 OworCXN0cnVjdCBkZWxheWVkX3dvcmsgcmVsZWFzZV9kdzsKKwl2b2lkICgqZGlzY29ubmVjdCko dm9pZCAqKTsKKwl1bnNpZ25lZCBsb25nIGRlZmVyX3N0YXJ0OworCXVuc2lnbmVkIGxvbmcgZGVm ZXJfd2FybjsKKworCXUzMiBwYWdlc19zdGF0ZV9ob2xkX2NudDsKIAogCS8qCiAJICogRGF0YSBz dHJ1Y3R1cmUgZm9yIGFsbG9jYXRpb24gc2lkZQpAQCAtMTI5LDI1ICsxMzQsMTkgQEAgaW5saW5l IGVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIHBhZ2VfcG9vbF9nZXRfZG1hX2RpcihzdHJ1Y3QgcGFn ZV9wb29sICpwb29sKQogCiBzdHJ1Y3QgcGFnZV9wb29sICpwYWdlX3Bvb2xfY3JlYXRlKGNvbnN0 IHN0cnVjdCBwYWdlX3Bvb2xfcGFyYW1zICpwYXJhbXMpOwogCi12b2lkIF9fcGFnZV9wb29sX2Zy ZWUoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCk7Ci1zdGF0aWMgaW5saW5lIHZvaWQgcGFnZV9wb29s X2ZyZWUoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCkKLXsKLQkvKiBXaGVuIHBhZ2VfcG9vbCBpc24n dCBjb21waWxlZC1pbiwgbmV0L2NvcmUveGRwLmMgZG9lc24ndAotCSAqIGFsbG93IHJlZ2lzdGVy aW5nIE1FTV9UWVBFX1BBR0VfUE9PTCwgYnV0IHNoaWVsZCBsaW5rZXIuCi0JICovCiAjaWZkZWYg Q09ORklHX1BBR0VfUE9PTAotCV9fcGFnZV9wb29sX2ZyZWUocG9vbCk7Ci0jZW5kaWYKLX0KLQot LyogRHJpdmVycyB1c2UgdGhpcyBpbnN0ZWFkIG9mIHBhZ2VfcG9vbF9mcmVlICovCit2b2lkIHBh Z2VfcG9vbF9kZXN0cm95KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpOwordm9pZCBwYWdlX3Bvb2xf dXNlX3hkcF9tZW0oc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCwgdm9pZCAoKmRpc2Nvbm5lY3QpKHZv aWQgKikpOworI2Vsc2UKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYWdlX3Bvb2xfZGVzdHJveShzdHJ1 Y3QgcGFnZV9wb29sICpwb29sKQogewotCWlmICghcG9vbCkKLQkJcmV0dXJuOworfQogCi0JcGFn ZV9wb29sX2ZyZWUocG9vbCk7CitzdGF0aWMgaW5saW5lIHZvaWQgcGFnZV9wb29sX3VzZV94ZHBf bWVtKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wsCisJCQkJCSB2b2lkICgqZGlzY29ubmVjdCkodm9p ZCAqKSkKK3sKIH0KKyNlbmRpZgogCiAvKiBOZXZlciBjYWxsIHRoaXMgZGlyZWN0bHksIHVzZSBo ZWxwZXJzIGJlbG93ICovCiB2b2lkIF9fcGFnZV9wb29sX3B1dF9wYWdlKHN0cnVjdCBwYWdlX3Bv b2wgKnBvb2wsCkBAIC0xNzAsMjQgKzE2OSw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYWdlX3Bv b2xfcmVjeWNsZV9kaXJlY3Qoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCwKIAlfX3BhZ2VfcG9vbF9w dXRfcGFnZShwb29sLCBwYWdlLCB0cnVlKTsKIH0KIAotLyogQVBJIHVzZXIgTVVTVCBoYXZlIGRp c2Nvbm5lY3RlZCBhbGxvYy1zaWRlIChub3QgYWxsb3dlZCB0byBjYWxsCi0gKiBwYWdlX3Bvb2xf YWxsb2NfcGFnZXMoKSkgYmVmb3JlIGNhbGxpbmcgdGhpcy4gIFRoZSBmcmVlLXNpZGUgY2FuCi0g KiBzdGlsbCBydW4gY29uY3VycmVudGx5LCB0byBoYW5kbGUgaW4tZmxpZ2h0IHBhY2tldC1wYWdl cy4KLSAqCi0gKiBBIHJlcXVlc3QgdG8gc2h1dGRvd24gY2FuIGZhaWwgKHdpdGggZmFsc2UpIGlm IHRoZXJlIGFyZSBzdGlsbAotICogaW4tZmxpZ2h0IHBhY2tldC1wYWdlcy4KLSAqLwotYm9vbCBf X3BhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpOwotc3Rh dGljIGlubGluZSBib29sIHBhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKHN0cnVjdCBwYWdlX3Bv b2wgKnBvb2wpCi17Ci0JYm9vbCBzYWZlX3RvX3JlbW92ZSA9IGZhbHNlOwotCi0jaWZkZWYgQ09O RklHX1BBR0VfUE9PTAotCXNhZmVfdG9fcmVtb3ZlID0gX19wYWdlX3Bvb2xfcmVxdWVzdF9zaHV0 ZG93bihwb29sKTsKLSNlbmRpZgotCXJldHVybiBzYWZlX3RvX3JlbW92ZTsKLX0KLQogLyogRGlz Y29ubmVjdHMgYSBwYWdlIChmcm9tIGEgcGFnZV9wb29sKS4gIEFQSSB1c2VycyBjYW4gaGF2ZSBh IG5lZWQKICAqIHRvIGRpc2Nvbm5lY3QgYSBwYWdlIChmcm9tIGEgcGFnZV9wb29sKSwgdG8gYWxs b3cgaXQgdG8gYmUgdXNlZCBhcwogICogYSByZWd1bGFyIHBhZ2UgKHRoYXQgd2lsbCBldmVudHVh bGx5IGJlIHJldHVybmVkIHRvIHRoZSBub3JtYWwKQEAgLTIxNiwxMSArMTk3LDYgQEAgc3RhdGlj IGlubGluZSBib29sIGlzX3BhZ2VfcG9vbF9jb21waWxlZF9pbih2b2lkKQogI2VuZGlmCiB9CiAK LXN0YXRpYyBpbmxpbmUgdm9pZCBwYWdlX3Bvb2xfZ2V0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wp Ci17Ci0JcmVmY291bnRfaW5jKCZwb29sLT51c2VyX2NudCk7Ci19Ci0KIHN0YXRpYyBpbmxpbmUg Ym9vbCBwYWdlX3Bvb2xfcHV0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCiB7CiAJcmV0dXJuIHJl ZmNvdW50X2RlY19hbmRfdGVzdCgmcG9vbC0+dXNlcl9jbnQpOwpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9uZXQveGRwX3ByaXYuaCBiL2luY2x1ZGUvbmV0L3hkcF9wcml2LmgKaW5kZXggNmE4Y2JhNmVh NzlhLi5hOWQ1Yjc2MDNiODkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3hkcF9wcml2LmgKKysr IGIvaW5jbHVkZS9uZXQveGRwX3ByaXYuaApAQCAtMTIsMTIgKzEyLDggQEAgc3RydWN0IHhkcF9t ZW1fYWxsb2NhdG9yIHsKIAkJc3RydWN0IHBhZ2VfcG9vbCAqcGFnZV9wb29sOwogCQlzdHJ1Y3Qg emVyb19jb3B5X2FsbG9jYXRvciAqemNfYWxsb2M7CiAJfTsKLQlpbnQgZGlzY29ubmVjdF9jbnQ7 Ci0JdW5zaWduZWQgbG9uZyBkZWZlcl9zdGFydDsKIAlzdHJ1Y3Qgcmhhc2hfaGVhZCBub2RlOwog CXN0cnVjdCByY3VfaGVhZCByY3U7Ci0Jc3RydWN0IGRlbGF5ZWRfd29yayBkZWZlcl93cTsKLQl1 bnNpZ25lZCBsb25nIGRlZmVyX3dhcm47CiB9OwogCiAjZW5kaWYgLyogX19MSU5VWF9ORVRfWERQ X1BSSVZfSF9fICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaCBiL2lu Y2x1ZGUvdHJhY2UvZXZlbnRzL3hkcC5oCmluZGV4IDhjODQyMDIzMGExMC4uYzc5OTQzZTgyYTU0 IDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNlL2V2ZW50cy94ZHAuaAorKysgYi9pbmNsdWRlL3Ry YWNlL2V2ZW50cy94ZHAuaApAQCAtMzE3LDE5ICszMTcsMTUgQEAgX19NRU1fVFlQRV9NQVAoX19N RU1fVFlQRV9UUF9GTikKIAogVFJBQ0VfRVZFTlQobWVtX2Rpc2Nvbm5lY3QsCiAKLQlUUF9QUk9U Tyhjb25zdCBzdHJ1Y3QgeGRwX21lbV9hbGxvY2F0b3IgKnhhLAotCQkgYm9vbCBzYWZlX3RvX3Jl bW92ZSwgYm9vbCBmb3JjZSksCisJVFBfUFJPVE8oY29uc3Qgc3RydWN0IHhkcF9tZW1fYWxsb2Nh dG9yICp4YSksCiAKLQlUUF9BUkdTKHhhLCBzYWZlX3RvX3JlbW92ZSwgZm9yY2UpLAorCVRQX0FS R1MoeGEpLAogCiAJVFBfU1RSVUNUX19lbnRyeSgKIAkJX19maWVsZChjb25zdCBzdHJ1Y3QgeGRw X21lbV9hbGxvY2F0b3IgKiwJeGEpCiAJCV9fZmllbGQodTMyLAkJbWVtX2lkKQogCQlfX2ZpZWxk KHUzMiwJCW1lbV90eXBlKQogCQlfX2ZpZWxkKGNvbnN0IHZvaWQgKiwJYWxsb2NhdG9yKQotCQlf X2ZpZWxkKGJvb2wsCQlzYWZlX3RvX3JlbW92ZSkKLQkJX19maWVsZChib29sLAkJZm9yY2UpCi0J CV9fZmllbGQoaW50LAkJZGlzY29ubmVjdF9jbnQpCiAJKSwKIAogCVRQX2Zhc3RfYXNzaWduKApA QCAtMzM3LDE5ICszMzMsMTIgQEAgVFJBQ0VfRVZFTlQobWVtX2Rpc2Nvbm5lY3QsCiAJCV9fZW50 cnktPm1lbV9pZAkJPSB4YS0+bWVtLmlkOwogCQlfX2VudHJ5LT5tZW1fdHlwZQk9IHhhLT5tZW0u dHlwZTsKIAkJX19lbnRyeS0+YWxsb2NhdG9yCT0geGEtPmFsbG9jYXRvcjsKLQkJX19lbnRyeS0+ c2FmZV90b19yZW1vdmUJPSBzYWZlX3RvX3JlbW92ZTsKLQkJX19lbnRyeS0+Zm9yY2UJCT0gZm9y Y2U7Ci0JCV9fZW50cnktPmRpc2Nvbm5lY3RfY250CT0geGEtPmRpc2Nvbm5lY3RfY250OwogCSks CiAKLQlUUF9wcmludGsoIm1lbV9pZD0lZCBtZW1fdHlwZT0lcyBhbGxvY2F0b3I9JXAiCi0JCSAg IiBzYWZlX3RvX3JlbW92ZT0lcyBmb3JjZT0lcyBkaXNjb25uZWN0X2NudD0lZCIsCisJVFBfcHJp bnRrKCJtZW1faWQ9JWQgbWVtX3R5cGU9JXMgYWxsb2NhdG9yPSVwIiwKIAkJICBfX2VudHJ5LT5t ZW1faWQsCiAJCSAgX19wcmludF9zeW1ib2xpYyhfX2VudHJ5LT5tZW1fdHlwZSwgX19NRU1fVFlQ RV9TWU1fVEFCKSwKLQkJICBfX2VudHJ5LT5hbGxvY2F0b3IsCi0JCSAgX19lbnRyeS0+c2FmZV90 b19yZW1vdmUgPyAidHJ1ZSIgOiAiZmFsc2UiLAotCQkgIF9fZW50cnktPmZvcmNlID8gInRydWUi IDogImZhbHNlIiwKLQkJICBfX2VudHJ5LT5kaXNjb25uZWN0X2NudAorCQkgIF9fZW50cnktPmFs bG9jYXRvcgogCSkKICk7CiAKZGlmZiAtLWdpdCBhL25ldC9jb3JlL3BhZ2VfcG9vbC5jIGIvbmV0 L2NvcmUvcGFnZV9wb29sLmMKaW5kZXggNWJjNjU1ODdmMWM0Li5kZmMyNTAxYzM1ZDkgMTAwNjQ0 Ci0tLSBhL25ldC9jb3JlL3BhZ2VfcG9vbC5jCisrKyBiL25ldC9jb3JlL3BhZ2VfcG9vbC5jCkBA IC0xOCw2ICsxOCw5IEBACiAKICNpbmNsdWRlIDx0cmFjZS9ldmVudHMvcGFnZV9wb29sLmg+CiAK KyNkZWZpbmUgREVGRVJfVElNRSAobXNlY3NfdG9famlmZmllcygxMDAwKSkKKyNkZWZpbmUgREVG RVJfV0FSTl9JTlRFUlZBTCAoNjAgKiBIWikKKwogc3RhdGljIGludCBwYWdlX3Bvb2xfaW5pdChz dHJ1Y3QgcGFnZV9wb29sICpwb29sLAogCQkJICBjb25zdCBzdHJ1Y3QgcGFnZV9wb29sX3BhcmFt cyAqcGFyYW1zKQogewpAQCAtMTkzLDIyICsxOTYsMTQgQEAgc3RhdGljIHMzMiBwYWdlX3Bvb2xf aW5mbGlnaHQoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCkKIHsKIAl1MzIgcmVsZWFzZV9jbnQgPSBh dG9taWNfcmVhZCgmcG9vbC0+cGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQpOwogCXUzMiBob2xkX2Nu dCA9IFJFQURfT05DRShwb29sLT5wYWdlc19zdGF0ZV9ob2xkX2NudCk7Ci0JczMyIGRpc3RhbmNl OwotCi0JZGlzdGFuY2UgPSBfZGlzdGFuY2UoaG9sZF9jbnQsIHJlbGVhc2VfY250KTsKLQotCXRy YWNlX3BhZ2VfcG9vbF9pbmZsaWdodChwb29sLCBkaXN0YW5jZSwgaG9sZF9jbnQsIHJlbGVhc2Vf Y250KTsKLQlyZXR1cm4gZGlzdGFuY2U7Ci19CisJczMyIGluZmxpZ2h0OwogCi1zdGF0aWMgYm9v bCBfX3BhZ2VfcG9vbF9zYWZlX3RvX2Rlc3Ryb3koc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCkKLXsK LQlzMzIgaW5mbGlnaHQgPSBwYWdlX3Bvb2xfaW5mbGlnaHQocG9vbCk7CisJaW5mbGlnaHQgPSBf ZGlzdGFuY2UoaG9sZF9jbnQsIHJlbGVhc2VfY250KTsKIAotCS8qIFRoZSBkaXN0YW5jZSBzaG91 bGQgbm90IGJlIGFibGUgdG8gYmVjb21lIG5lZ2F0aXZlICovCisJdHJhY2VfcGFnZV9wb29sX2lu ZmxpZ2h0KHBvb2wsIGluZmxpZ2h0LCBob2xkX2NudCwgcmVsZWFzZV9jbnQpOwogCVdBUk4oaW5m bGlnaHQgPCAwLCAiTmVnYXRpdmUoJWQpIGluZmxpZ2h0IHBhY2tldC1wYWdlcyIsIGluZmxpZ2h0 KTsKIAotCXJldHVybiAoaW5mbGlnaHQgPT0gMCk7CisJcmV0dXJuIGluZmxpZ2h0OwogfQogCiAv KiBDbGVhbnVwIHBhZ2VfcG9vbCBzdGF0ZSBmcm9tIHBhZ2UgKi8KQEAgLTIxNiw2ICsyMTEsNyBA QCBzdGF0aWMgdm9pZCBfX3BhZ2VfcG9vbF9jbGVhbl9wYWdlKHN0cnVjdCBwYWdlX3Bvb2wgKnBv b2wsCiAJCQkJICAgc3RydWN0IHBhZ2UgKnBhZ2UpCiB7CiAJZG1hX2FkZHJfdCBkbWE7CisJaW50 IGNvdW50OwogCiAJaWYgKCEocG9vbC0+cC5mbGFncyAmIFBQX0ZMQUdfRE1BX01BUCkpCiAJCWdv dG8gc2tpcF9kbWFfdW5tYXA7CkBAIC0yMjcsOSArMjIzLDExIEBAIHN0YXRpYyB2b2lkIF9fcGFn ZV9wb29sX2NsZWFuX3BhZ2Uoc3RydWN0IHBhZ2VfcG9vbCAqcG9vbCwKIAkJCSAgICAgRE1BX0FU VFJfU0tJUF9DUFVfU1lOQyk7CiAJcGFnZS0+ZG1hX2FkZHIgPSAwOwogc2tpcF9kbWFfdW5tYXA6 Ci0JYXRvbWljX2luYygmcG9vbC0+cGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQpOwotCXRyYWNlX3Bh Z2VfcG9vbF9zdGF0ZV9yZWxlYXNlKHBvb2wsIHBhZ2UsCi0JCQkgICAgICBhdG9taWNfcmVhZCgm cG9vbC0+cGFnZXNfc3RhdGVfcmVsZWFzZV9jbnQpKTsKKwkvKiBUaGlzIG1heSBiZSB0aGUgbGFz dCBwYWdlIHJldHVybmVkLCByZWxlYXNpbmcgdGhlIHBvb2wsIHNvCisJICogaXQgaXMgbm90IHNh ZmUgdG8gcmVmZXJlbmNlIHBvb2wgYWZ0ZXJ3YXJkcy4KKwkgKi8KKwljb3VudCA9IGF0b21pY19p bmNfcmV0dXJuKCZwb29sLT5wYWdlc19zdGF0ZV9yZWxlYXNlX2NudCk7CisJdHJhY2VfcGFnZV9w b29sX3N0YXRlX3JlbGVhc2UocG9vbCwgcGFnZSwgY291bnQpOwogfQogCiAvKiB1bm1hcCB0aGUg cGFnZSBhbmQgY2xlYW4gb3VyIHN0YXRlICovCkBAIC0zMzgsMzEgKzMzNiwxMCBAQCBzdGF0aWMg dm9pZCBfX3BhZ2VfcG9vbF9lbXB0eV9yaW5nKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCiAJfQog fQogCi1zdGF0aWMgdm9pZCBfX3dhcm5faW5fZmxpZ2h0KHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wp CitzdGF0aWMgdm9pZCBwYWdlX3Bvb2xfZnJlZShzdHJ1Y3QgcGFnZV9wb29sICpwb29sKQogewot CXUzMiByZWxlYXNlX2NudCA9IGF0b21pY19yZWFkKCZwb29sLT5wYWdlc19zdGF0ZV9yZWxlYXNl X2NudCk7Ci0JdTMyIGhvbGRfY250ID0gUkVBRF9PTkNFKHBvb2wtPnBhZ2VzX3N0YXRlX2hvbGRf Y250KTsKLQlzMzIgZGlzdGFuY2U7Ci0KLQlkaXN0YW5jZSA9IF9kaXN0YW5jZShob2xkX2NudCwg cmVsZWFzZV9jbnQpOwotCi0JLyogRHJpdmVycyBzaG91bGQgZml4IHRoaXMsIGJ1dCBvbmx5IHBy b2JsZW1hdGljIHdoZW4gRE1BIGlzIHVzZWQgKi8KLQlXQVJOKDEsICJTdGlsbCBpbi1mbGlnaHQg cGFnZXM6JWQgaG9sZDoldSByZWxlYXNlZDoldSIsCi0JICAgICBkaXN0YW5jZSwgaG9sZF9jbnQs IHJlbGVhc2VfY250KTsKLX0KLQotdm9pZCBfX3BhZ2VfcG9vbF9mcmVlKHN0cnVjdCBwYWdlX3Bv b2wgKnBvb2wpCi17Ci0JLyogT25seSBsYXN0IHVzZXIgYWN0dWFsbHkgZnJlZS9yZWxlYXNlIHJl c291cmNlcyAqLwotCWlmICghcGFnZV9wb29sX3B1dChwb29sKSkKLQkJcmV0dXJuOwotCi0JV0FS Tihwb29sLT5hbGxvYy5jb3VudCwgIkFQSSB1c2FnZSB2aW9sYXRpb24iKTsKLQlXQVJOKCFwdHJf cmluZ19lbXB0eSgmcG9vbC0+cmluZyksICJwdHJfcmluZyBpcyBub3QgZW1wdHkiKTsKLQotCS8q IENhbiBoYXBwZW4gZHVlIHRvIGZvcmNlZCBzaHV0ZG93biAqLwotCWlmICghX19wYWdlX3Bvb2xf c2FmZV90b19kZXN0cm95KHBvb2wpKQotCQlfX3dhcm5faW5fZmxpZ2h0KHBvb2wpOworCWlmIChw b29sLT5kaXNjb25uZWN0KQorCQlwb29sLT5kaXNjb25uZWN0KHBvb2wpOwogCiAJcHRyX3Jpbmdf Y2xlYW51cCgmcG9vbC0+cmluZywgTlVMTCk7CiAKQEAgLTM3MSwxMiArMzQ4LDggQEAgdm9pZCBf X3BhZ2VfcG9vbF9mcmVlKHN0cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCiAKIAlrZnJlZShwb29sKTsK IH0KLUVYUE9SVF9TWU1CT0woX19wYWdlX3Bvb2xfZnJlZSk7CiAKLS8qIFJlcXVlc3QgdG8gc2h1 dGRvd246IHJlbGVhc2UgcGFnZXMgY2FjaGVkIGJ5IHBhZ2VfcG9vbCwgYW5kIGNoZWNrCi0gKiBm b3IgaW4tZmxpZ2h0IHBhZ2VzCi0gKi8KLWJvb2wgX19wYWdlX3Bvb2xfcmVxdWVzdF9zaHV0ZG93 bihzdHJ1Y3QgcGFnZV9wb29sICpwb29sKQorc3RhdGljIHZvaWQgcGFnZV9wb29sX3NjcnViKHN0 cnVjdCBwYWdlX3Bvb2wgKnBvb2wpCiB7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAKQEAgLTM5Myw3 ICszNjYsNjQgQEAgYm9vbCBfX3BhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKHN0cnVjdCBwYWdl X3Bvb2wgKnBvb2wpCiAJICogYmUgaW4tZmxpZ2h0LgogCSAqLwogCV9fcGFnZV9wb29sX2VtcHR5 X3JpbmcocG9vbCk7Cit9CisKK3N0YXRpYyBpbnQgcGFnZV9wb29sX3JlbGVhc2Uoc3RydWN0IHBh Z2VfcG9vbCAqcG9vbCkKK3sKKwlpbnQgaW5mbGlnaHQ7CisKKwlwYWdlX3Bvb2xfc2NydWIocG9v bCk7CisJaW5mbGlnaHQgPSBwYWdlX3Bvb2xfaW5mbGlnaHQocG9vbCk7CisJaWYgKCFpbmZsaWdo dCkKKwkJcGFnZV9wb29sX2ZyZWUocG9vbCk7CisKKwlyZXR1cm4gaW5mbGlnaHQ7Cit9CisKK3N0 YXRpYyB2b2lkIHBhZ2VfcG9vbF9yZWxlYXNlX3JldHJ5KHN0cnVjdCB3b3JrX3N0cnVjdCAqd3Ep Cit7CisJc3RydWN0IGRlbGF5ZWRfd29yayAqZHdxID0gdG9fZGVsYXllZF93b3JrKHdxKTsKKwlz dHJ1Y3QgcGFnZV9wb29sICpwb29sID0gY29udGFpbmVyX29mKGR3cSwgdHlwZW9mKCpwb29sKSwg cmVsZWFzZV9kdyk7CisJaW50IGluZmxpZ2h0OworCisJaW5mbGlnaHQgPSBwYWdlX3Bvb2xfcmVs ZWFzZShwb29sKTsKKwlpZiAoIWluZmxpZ2h0KQorCQlyZXR1cm47CisKKwkvKiBQZXJpb2RpYyB3 YXJuaW5nICovCisJaWYgKHRpbWVfYWZ0ZXJfZXEoamlmZmllcywgcG9vbC0+ZGVmZXJfd2Fybikp IHsKKwkJaW50IHNlYyA9IChzMzIpKCh1MzIpamlmZmllcyAtICh1MzIpcG9vbC0+ZGVmZXJfc3Rh cnQpIC8gSFo7CisKKwkJcHJfd2FybigiJXMoKSBzdGFsbGVkIHBvb2wgc2h1dGRvd24gJWQgaW5m bGlnaHQgJWQgc2VjXG4iLAorCQkJX19mdW5jX18sIGluZmxpZ2h0LCBzZWMpOworCQlwb29sLT5k ZWZlcl93YXJuID0gamlmZmllcyArIERFRkVSX1dBUk5fSU5URVJWQUw7CisJfQorCisJLyogU3Rp bGwgbm90IHJlYWR5IHRvIGJlIGRpc2Nvbm5lY3RlZCwgcmV0cnkgbGF0ZXIgKi8KKwlzY2hlZHVs ZV9kZWxheWVkX3dvcmsoJnBvb2wtPnJlbGVhc2VfZHcsIERFRkVSX1RJTUUpOworfQorCit2b2lk IHBhZ2VfcG9vbF91c2VfeGRwX21lbShzdHJ1Y3QgcGFnZV9wb29sICpwb29sLCB2b2lkICgqZGlz Y29ubmVjdCkodm9pZCAqKSkKK3sKKwlyZWZjb3VudF9pbmMoJnBvb2wtPnVzZXJfY250KTsKKwlw b29sLT5kaXNjb25uZWN0ID0gZGlzY29ubmVjdDsKK30KKwordm9pZCBwYWdlX3Bvb2xfZGVzdHJv eShzdHJ1Y3QgcGFnZV9wb29sICpwb29sKQoreworCWlmICghcG9vbCkKKwkJcmV0dXJuOworCisJ aWYgKCFwYWdlX3Bvb2xfcHV0KHBvb2wpKQorCQlyZXR1cm47CisKKwlpZiAoIXBhZ2VfcG9vbF9y ZWxlYXNlKHBvb2wpKQorCQlyZXR1cm47CisKKwlwb29sLT5kZWZlcl9zdGFydCA9IGppZmZpZXM7 CisJcG9vbC0+ZGVmZXJfd2FybiAgPSBqaWZmaWVzICsgREVGRVJfV0FSTl9JTlRFUlZBTDsKIAot CXJldHVybiBfX3BhZ2VfcG9vbF9zYWZlX3RvX2Rlc3Ryb3kocG9vbCk7CisJSU5JVF9ERUxBWUVE X1dPUksoJnBvb2wtPnJlbGVhc2VfZHcsIHBhZ2VfcG9vbF9yZWxlYXNlX3JldHJ5KTsKKwlzY2hl ZHVsZV9kZWxheWVkX3dvcmsoJnBvb2wtPnJlbGVhc2VfZHcsIERFRkVSX1RJTUUpOwogfQotRVhQ T1JUX1NZTUJPTChfX3BhZ2VfcG9vbF9yZXF1ZXN0X3NodXRkb3duKTsKK0VYUE9SVF9TWU1CT0wo cGFnZV9wb29sX2Rlc3Ryb3kpOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUveGRwLmMgYi9uZXQvY29y ZS94ZHAuYwppbmRleCBkN2JmNjJmZmJiNWUuLmFjODY2YWM2NWYyYiAxMDA2NDQKLS0tIGEvbmV0 L2NvcmUveGRwLmMKKysrIGIvbmV0L2NvcmUveGRwLmMKQEAgLTcwLDEwICs3MCw2IEBAIHN0YXRp YyB2b2lkIF9feGRwX21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUoc3RydWN0IHJjdV9oZWFkICpyY3Up CiAKIAl4YSA9IGNvbnRhaW5lcl9vZihyY3UsIHN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRvciwgcmN1 KTsKIAotCS8qIEFsbG9jYXRvciBoYXZlIGluZGljYXRlZCBzYWZlIHRvIHJlbW92ZSBiZWZvcmUg dGhpcyBpcyBjYWxsZWQgKi8KLQlpZiAoeGEtPm1lbS50eXBlID09IE1FTV9UWVBFX1BBR0VfUE9P TCkKLQkJcGFnZV9wb29sX2ZyZWUoeGEtPnBhZ2VfcG9vbCk7Ci0KIAkvKiBBbGxvdyB0aGlzIElE IHRvIGJlIHJldXNlZCAqLwogCWlkYV9zaW1wbGVfcmVtb3ZlKCZtZW1faWRfcG9vbCwgeGEtPm1l bS5pZCk7CiAKQEAgLTg1LDYyICs4MSw1NyBAQCBzdGF0aWMgdm9pZCBfX3hkcF9tZW1fYWxsb2Nh dG9yX3JjdV9mcmVlKHN0cnVjdCByY3VfaGVhZCAqcmN1KQogCWtmcmVlKHhhKTsKIH0KIAotc3Rh dGljIGJvb2wgX19tZW1faWRfZGlzY29ubmVjdChpbnQgaWQsIGJvb2wgZm9yY2UpCitzdGF0aWMg dm9pZCBtZW1feGFfcmVtb3ZlKHN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRvciAqeGEpCiB7Ci0Jc3Ry dWN0IHhkcF9tZW1fYWxsb2NhdG9yICp4YTsKLQlib29sIHNhZmVfdG9fcmVtb3ZlID0gdHJ1ZTsK Kwl0cmFjZV9tZW1fZGlzY29ubmVjdCh4YSk7CiAKIAltdXRleF9sb2NrKCZtZW1faWRfbG9jayk7 CiAKLQl4YSA9IHJoYXNodGFibGVfbG9va3VwX2Zhc3QobWVtX2lkX2h0LCAmaWQsIG1lbV9pZF9y aHRfcGFyYW1zKTsKLQlpZiAoIXhhKSB7Ci0JCW11dGV4X3VubG9jaygmbWVtX2lkX2xvY2spOwot CQlXQVJOKDEsICJSZXF1ZXN0IHJlbW92ZSBub24tZXhpc3RpbmcgaWQoJWQpLCBkcml2ZXIgYnVn PyIsIGlkKTsKLQkJcmV0dXJuIHRydWU7Ci0JfQotCXhhLT5kaXNjb25uZWN0X2NudCsrOwotCi0J LyogRGV0ZWN0cyBpbi1mbGlnaHQgcGFja2V0LXBhZ2VzIGZvciBwYWdlX3Bvb2wgKi8KLQlpZiAo eGEtPm1lbS50eXBlID09IE1FTV9UWVBFX1BBR0VfUE9PTCkKLQkJc2FmZV90b19yZW1vdmUgPSBw YWdlX3Bvb2xfcmVxdWVzdF9zaHV0ZG93bih4YS0+cGFnZV9wb29sKTsKLQotCXRyYWNlX21lbV9k aXNjb25uZWN0KHhhLCBzYWZlX3RvX3JlbW92ZSwgZm9yY2UpOwotCi0JaWYgKChzYWZlX3RvX3Jl bW92ZSB8fCBmb3JjZSkgJiYKLQkgICAgIXJoYXNodGFibGVfcmVtb3ZlX2Zhc3QobWVtX2lkX2h0 LCAmeGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1zKSkKKwlpZiAoIXJoYXNodGFibGVfcmVtb3Zl X2Zhc3QobWVtX2lkX2h0LCAmeGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1zKSkKIAkJY2FsbF9y Y3UoJnhhLT5yY3UsIF9feGRwX21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUpOwogCiAJbXV0ZXhfdW5s b2NrKCZtZW1faWRfbG9jayk7Ci0JcmV0dXJuIChzYWZlX3RvX3JlbW92ZXxmb3JjZSk7CiB9CiAK LSNkZWZpbmUgREVGRVJfVElNRSAobXNlY3NfdG9famlmZmllcygxMDAwKSkKLSNkZWZpbmUgREVG RVJfV0FSTl9JTlRFUlZBTCAoMzAgKiBIWikKLSNkZWZpbmUgREVGRVJfTUFYX1JFVFJJRVMgMTIw CitzdGF0aWMgdm9pZCBtZW1fYWxsb2NhdG9yX2Rpc2Nvbm5lY3Qodm9pZCAqYWxsb2NhdG9yKQor eworCXN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRvciAqeGE7CisJc3RydWN0IHJoYXNodGFibGVfaXRl ciBpdGVyOworCisJcmhhc2h0YWJsZV93YWxrX2VudGVyKG1lbV9pZF9odCwgJml0ZXIpOworCWRv IHsKKwkJcmhhc2h0YWJsZV93YWxrX3N0YXJ0KCZpdGVyKTsKKworCQl3aGlsZSAoKHhhID0gcmhh c2h0YWJsZV93YWxrX25leHQoJml0ZXIpKSAmJiAhSVNfRVJSKHhhKSkgeworCQkJaWYgKHhhLT5h bGxvY2F0b3IgPT0gYWxsb2NhdG9yKQorCQkJCW1lbV94YV9yZW1vdmUoeGEpOworCQl9CisKKwkJ cmhhc2h0YWJsZV93YWxrX3N0b3AoJml0ZXIpOwogCi1zdGF0aWMgdm9pZCBtZW1faWRfZGlzY29u bmVjdF9kZWZlcl9yZXRyeShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndxKQorCX0gd2hpbGUgKHhhID09 IEVSUl9QVFIoLUVBR0FJTikpOworCXJoYXNodGFibGVfd2Fsa19leGl0KCZpdGVyKTsKK30KKwor c3RhdGljIHZvaWQgbWVtX2lkX2Rpc2Nvbm5lY3QoaW50IGlkKQogewotCXN0cnVjdCBkZWxheWVk X3dvcmsgKmR3cSA9IHRvX2RlbGF5ZWRfd29yayh3cSk7Ci0Jc3RydWN0IHhkcF9tZW1fYWxsb2Nh dG9yICp4YSA9IGNvbnRhaW5lcl9vZihkd3EsIHR5cGVvZigqeGEpLCBkZWZlcl93cSk7Ci0JYm9v bCBmb3JjZSA9IGZhbHNlOworCXN0cnVjdCB4ZHBfbWVtX2FsbG9jYXRvciAqeGE7CiAKLQlpZiAo eGEtPmRpc2Nvbm5lY3RfY250ID4gREVGRVJfTUFYX1JFVFJJRVMpCi0JCWZvcmNlID0gdHJ1ZTsK KwltdXRleF9sb2NrKCZtZW1faWRfbG9jayk7CiAKLQlpZiAoX19tZW1faWRfZGlzY29ubmVjdCh4 YS0+bWVtLmlkLCBmb3JjZSkpCisJeGEgPSByaGFzaHRhYmxlX2xvb2t1cF9mYXN0KG1lbV9pZF9o dCwgJmlkLCBtZW1faWRfcmh0X3BhcmFtcyk7CisJaWYgKCF4YSkgeworCQltdXRleF91bmxvY2so Jm1lbV9pZF9sb2NrKTsKKwkJV0FSTigxLCAiUmVxdWVzdCByZW1vdmUgbm9uLWV4aXN0aW5nIGlk KCVkKSwgZHJpdmVyIGJ1Zz8iLCBpZCk7CiAJCXJldHVybjsKKwl9CiAKLQkvKiBQZXJpb2RpYyB3 YXJuaW5nICovCi0JaWYgKHRpbWVfYWZ0ZXJfZXEoamlmZmllcywgeGEtPmRlZmVyX3dhcm4pKSB7 Ci0JCWludCBzZWMgPSAoczMyKSgodTMyKWppZmZpZXMgLSAodTMyKXhhLT5kZWZlcl9zdGFydCkg LyBIWjsKKwl0cmFjZV9tZW1fZGlzY29ubmVjdCh4YSk7CiAKLQkJcHJfd2FybigiJXMoKSBzdGFs bGVkIG1lbS5pZD0ldSBzaHV0ZG93biAlZCBhdHRlbXB0cyAlZCBzZWNcbiIsCi0JCQlfX2Z1bmNf XywgeGEtPm1lbS5pZCwgeGEtPmRpc2Nvbm5lY3RfY250LCBzZWMpOwotCQl4YS0+ZGVmZXJfd2Fy biA9IGppZmZpZXMgKyBERUZFUl9XQVJOX0lOVEVSVkFMOwotCX0KKwlpZiAoIXJoYXNodGFibGVf cmVtb3ZlX2Zhc3QobWVtX2lkX2h0LCAmeGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1zKSkKKwkJ Y2FsbF9yY3UoJnhhLT5yY3UsIF9feGRwX21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUpOwogCi0JLyog U3RpbGwgbm90IHJlYWR5IHRvIGJlIGRpc2Nvbm5lY3RlZCwgcmV0cnkgbGF0ZXIgKi8KLQlzY2hl ZHVsZV9kZWxheWVkX3dvcmsoJnhhLT5kZWZlcl93cSwgREVGRVJfVElNRSk7CisJbXV0ZXhfdW5s b2NrKCZtZW1faWRfbG9jayk7CiB9CiAKIHZvaWQgeGRwX3J4cV9pbmZvX3VucmVnX21lbV9tb2Rl bChzdHJ1Y3QgeGRwX3J4cV9pbmZvICp4ZHBfcnhxKQpAQCAtMTUzLDM4ICsxNDQsMjEgQEAgdm9p ZCB4ZHBfcnhxX2luZm9fdW5yZWdfbWVtX21vZGVsKHN0cnVjdCB4ZHBfcnhxX2luZm8gKnhkcF9y eHEpCiAJCXJldHVybjsKIAl9CiAKLQlpZiAoeGRwX3J4cS0+bWVtLnR5cGUgIT0gTUVNX1RZUEVf UEFHRV9QT09MICYmCi0JICAgIHhkcF9yeHEtPm1lbS50eXBlICE9IE1FTV9UWVBFX1pFUk9fQ09Q WSkgewotCQlyZXR1cm47Ci0JfQotCiAJaWYgKGlkID09IDApCiAJCXJldHVybjsKIAotCWlmIChf X21lbV9pZF9kaXNjb25uZWN0KGlkLCBmYWxzZSkpCi0JCXJldHVybjsKLQotCS8qIENvdWxkIG5v dCBkaXNjb25uZWN0LCBkZWZlciBuZXcgZGlzY29ubmVjdCBhdHRlbXB0IHRvIGxhdGVyICovCi0J bXV0ZXhfbG9jaygmbWVtX2lkX2xvY2spOworCWlmICh4ZHBfcnhxLT5tZW0udHlwZSA9PSBNRU1f VFlQRV9aRVJPX0NPUFkpCisJCXJldHVybiBtZW1faWRfZGlzY29ubmVjdChpZCk7CiAKLQl4YSA9 IHJoYXNodGFibGVfbG9va3VwX2Zhc3QobWVtX2lkX2h0LCAmaWQsIG1lbV9pZF9yaHRfcGFyYW1z KTsKLQlpZiAoIXhhKSB7Ci0JCW11dGV4X3VubG9jaygmbWVtX2lkX2xvY2spOwotCQlyZXR1cm47 CisJaWYgKHhkcF9yeHEtPm1lbS50eXBlID09IE1FTV9UWVBFX1BBR0VfUE9PTCkgeworCQlyY3Vf cmVhZF9sb2NrKCk7CisJCXhhID0gcmhhc2h0YWJsZV9sb29rdXAobWVtX2lkX2h0LCAmaWQsIG1l bV9pZF9yaHRfcGFyYW1zKTsKKwkJcGFnZV9wb29sX2Rlc3Ryb3koeGEtPnBhZ2VfcG9vbCk7CisJ CXJjdV9yZWFkX3VubG9jaygpOwogCX0KLQl4YS0+ZGVmZXJfc3RhcnQgPSBqaWZmaWVzOwotCXhh LT5kZWZlcl93YXJuICA9IGppZmZpZXMgKyBERUZFUl9XQVJOX0lOVEVSVkFMOwotCi0JSU5JVF9E RUxBWUVEX1dPUksoJnhhLT5kZWZlcl93cSwgbWVtX2lkX2Rpc2Nvbm5lY3RfZGVmZXJfcmV0cnkp OwotCW11dGV4X3VubG9jaygmbWVtX2lkX2xvY2spOwotCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygm eGEtPmRlZmVyX3dxLCBERUZFUl9USU1FKTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BMKHhkcF9yeHFf aW5mb191bnJlZ19tZW1fbW9kZWwpOwogCi0vKiBUaGlzIHVucmVnaXN0ZXIgb3BlcmF0aW9uIHdp bGwgYWxzbyBjbGVhbnVwIGFuZCBkZXN0cm95IHRoZQotICogYWxsb2NhdG9yLiBUaGUgcGFnZV9w b29sX2ZyZWUoKSBvcGVyYXRpb24gaXMgZmlyc3QgY2FsbGVkIHdoZW4gaXQncwotICogc2FmZSB0 byByZW1vdmUsIHBvc3NpYmx5IGRlZmVycmVkIHRvIGEgd29ya3F1ZXVlLgotICovCiB2b2lkIHhk cF9yeHFfaW5mb191bnJlZyhzdHJ1Y3QgeGRwX3J4cV9pbmZvICp4ZHBfcnhxKQogewogCS8qIFNp bXBsaWZ5IGRyaXZlciBjbGVhbnVwIGNvZGUgcGF0aHMsIGFsbG93IHVucmVnICJ1bnVzZWQiICov CkBAIC0zNzEsNyArMzQ1LDcgQEAgaW50IHhkcF9yeHFfaW5mb19yZWdfbWVtX21vZGVsKHN0cnVj dCB4ZHBfcnhxX2luZm8gKnhkcF9yeHEsCiAJfQogCiAJaWYgKHR5cGUgPT0gTUVNX1RZUEVfUEFH RV9QT09MKQotCQlwYWdlX3Bvb2xfZ2V0KHhkcF9hbGxvYy0+cGFnZV9wb29sKTsKKwkJcGFnZV9w b29sX3VzZV94ZHBfbWVtKGFsbG9jYXRvciwgbWVtX2FsbG9jYXRvcl9kaXNjb25uZWN0KTsKIAog CW11dGV4X3VubG9jaygmbWVtX2lkX2xvY2spOwogCkBAIC00MDIsMTUgKzM3Niw4IEBAIHN0YXRp YyB2b2lkIF9feGRwX3JldHVybih2b2lkICpkYXRhLCBzdHJ1Y3QgeGRwX21lbV9pbmZvICptZW0s IGJvb2wgbmFwaV9kaXJlY3QsCiAJCS8qIG1lbS0+aWQgaXMgdmFsaWQsIGNoZWNrZWQgaW4geGRw X3J4cV9pbmZvX3JlZ19tZW1fbW9kZWwoKSAqLwogCQl4YSA9IHJoYXNodGFibGVfbG9va3VwKG1l bV9pZF9odCwgJm1lbS0+aWQsIG1lbV9pZF9yaHRfcGFyYW1zKTsKIAkJcGFnZSA9IHZpcnRfdG9f aGVhZF9wYWdlKGRhdGEpOwotCQlpZiAobGlrZWx5KHhhKSkgewotCQkJbmFwaV9kaXJlY3QgJj0g IXhkcF9yZXR1cm5fZnJhbWVfbm9fZGlyZWN0KCk7Ci0JCQlwYWdlX3Bvb2xfcHV0X3BhZ2UoeGEt PnBhZ2VfcG9vbCwgcGFnZSwgbmFwaV9kaXJlY3QpOwotCQl9IGVsc2UgewotCQkJLyogSG9wZWZ1 bGx5IHN0YWNrIHNob3cgd2hvIHRvIGJsYW1lIGZvciBsYXRlIHJldHVybiAqLwotCQkJV0FSTl9P TkNFKDEsICJwYWdlX3Bvb2wgZ29uZSBtZW0uaWQ9JWQiLCBtZW0tPmlkKTsKLQkJCXRyYWNlX21l bV9yZXR1cm5fZmFpbGVkKG1lbSwgcGFnZSk7Ci0JCQlwdXRfcGFnZShwYWdlKTsKLQkJfQorCQlu YXBpX2RpcmVjdCAmPSAheGRwX3JldHVybl9mcmFtZV9ub19kaXJlY3QoKTsKKwkJcGFnZV9wb29s X3B1dF9wYWdlKHhhLT5wYWdlX3Bvb2wsIHBhZ2UsIG5hcGlfZGlyZWN0KTsKIAkJcmN1X3JlYWRf dW5sb2NrKCk7CiAJCWJyZWFrOwogCWNhc2UgTUVNX1RZUEVfUEFHRV9TSEFSRUQ6Ci0tIAoyLjIw LjEKCgpGcm9tIGEzMmQwZGJjMGY2NDU4MDk2MzRjN2IxODA0NjYxYjEwYmE1NzQ1ZGIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpvbmF0aGFuIExlbW9uIDxqb25hdGhhbi5sZW1vbkBn bWFpbC5jb20+CkRhdGU6IFR1ZSwgMyBEZWMgMjAxOSAxNDowMToxNCAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMzQvMzhdIHhkcDogb2J0YWluIHRoZSBtZW1faWQgbXV0ZXggYmVmb3JlIHRyeWluZyB0 byByZW1vdmUgYW4KIGVudHJ5LgoKWyBVcHN0cmVhbSBjb21taXQgODZjNzZjMDk4OTgzMzIxNDNi ZTM2NWM3MDJjZjhkNTg2ZWQ0ZWQyMSBdCgpBIGxvY2tkZXAgc3BsYXQgd2FzIG9ic2VydmVkIHdo ZW4gdHJ5aW5nIHRvIHJlbW92ZSBhbiB4ZHAgbWVtb3J5Cm1vZGVsIGZyb20gdGhlIHRhYmxlIHNp bmNlIHRoZSBtdXRleCB3YXMgb2J0YWluZWQgd2hlbiB0cnlpbmcgdG8KcmVtb3ZlIHRoZSBlbnRy eSwgYnV0IG5vdCBiZWZvcmUgdGhlIHRhYmxlIHdhbGsgc3RhcnRlZDoKCkZpeCB0aGUgc3BsYXQg Ynkgb2J0YWluaW5nIHRoZSBsb2NrIGJlZm9yZSBzdGFydGluZyB0aGUgdGFibGUgd2Fsay4KCkZp eGVzOiBjM2Y4MTJjZWEwZDcgKCJwYWdlX3Bvb2w6IGRvIG5vdCByZWxlYXNlIHBvb2wgdW50aWwg aW5mbGlnaHQgPT0gMC4iKQpSZXBvcnRlZC1ieTogR3J5Z29yaWkgU3RyYXNoa28gPGdyeWdvcmlp LnN0cmFzaGtvQHRpLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4gTGVtb24gPGpvbmF0aGFu LmxlbW9uQGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBHcnlnb3JpaSBTdHJhc2hrbyA8Z3J5Z29yaWku c3RyYXNoa29AdGkuY29tPgpBY2tlZC1ieTogSmVzcGVyIERhbmdhYXJkIEJyb3VlciA8YnJvdWVy QHJlZGhhdC5jb20+CkFja2VkLWJ5OiBJbGlhcyBBcGFsb2RpbWFzIDxpbGlhcy5hcGFsb2RpbWFz QGxpbmFyby5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS94ZHAuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUv eGRwLmMgYi9uZXQvY29yZS94ZHAuYwppbmRleCBhYzg2NmFjNjVmMmIuLmIzZjQ2M2M2NTQzZiAx MDA2NDQKLS0tIGEvbmV0L2NvcmUveGRwLmMKKysrIGIvbmV0L2NvcmUveGRwLmMKQEAgLTg1LDEy ICs4NSw4IEBAIHN0YXRpYyB2b2lkIG1lbV94YV9yZW1vdmUoc3RydWN0IHhkcF9tZW1fYWxsb2Nh dG9yICp4YSkKIHsKIAl0cmFjZV9tZW1fZGlzY29ubmVjdCh4YSk7CiAKLQltdXRleF9sb2NrKCZt ZW1faWRfbG9jayk7Ci0KIAlpZiAoIXJoYXNodGFibGVfcmVtb3ZlX2Zhc3QobWVtX2lkX2h0LCAm eGEtPm5vZGUsIG1lbV9pZF9yaHRfcGFyYW1zKSkKIAkJY2FsbF9yY3UoJnhhLT5yY3UsIF9feGRw X21lbV9hbGxvY2F0b3JfcmN1X2ZyZWUpOwotCi0JbXV0ZXhfdW5sb2NrKCZtZW1faWRfbG9jayk7 CiB9CiAKIHN0YXRpYyB2b2lkIG1lbV9hbGxvY2F0b3JfZGlzY29ubmVjdCh2b2lkICphbGxvY2F0 b3IpCkBAIC05OCw2ICs5NCw4IEBAIHN0YXRpYyB2b2lkIG1lbV9hbGxvY2F0b3JfZGlzY29ubmVj dCh2b2lkICphbGxvY2F0b3IpCiAJc3RydWN0IHhkcF9tZW1fYWxsb2NhdG9yICp4YTsKIAlzdHJ1 Y3Qgcmhhc2h0YWJsZV9pdGVyIGl0ZXI7CiAKKwltdXRleF9sb2NrKCZtZW1faWRfbG9jayk7CisK IAlyaGFzaHRhYmxlX3dhbGtfZW50ZXIobWVtX2lkX2h0LCAmaXRlcik7CiAJZG8gewogCQlyaGFz aHRhYmxlX3dhbGtfc3RhcnQoJml0ZXIpOwpAQCAtMTExLDYgKzEwOSw4IEBAIHN0YXRpYyB2b2lk IG1lbV9hbGxvY2F0b3JfZGlzY29ubmVjdCh2b2lkICphbGxvY2F0b3IpCiAKIAl9IHdoaWxlICh4 YSA9PSBFUlJfUFRSKC1FQUdBSU4pKTsKIAlyaGFzaHRhYmxlX3dhbGtfZXhpdCgmaXRlcik7CisK KwltdXRleF91bmxvY2soJm1lbV9pZF9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgbWVtX2lkX2Rp c2Nvbm5lY3QoaW50IGlkKQotLSAKMi4yMC4xCgoKRnJvbSBiZmNiNzQxOGIwYzIxOTVmZTM5YThm MjQ2MjljNWFmNmM2MjkyZmNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFubm9u IE5lbHNvbiA8c25lbHNvbkBwZW5zYW5kby5pbz4KRGF0ZTogVHVlLCAzIERlYyAyMDE5IDE0OjE3 OjM0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNS8zOF0gaW9uaWM6IGtlZXAgdXNlcnMgcnNzIGhh c2ggYWNyb3NzIGxpZiByZXNldAoKWyBVcHN0cmVhbSBjb21taXQgZmZhYzIwMjdlMThmMDA2ZjQy NjMwZjJlMDFhOGE5YmQ4ZGM2NjRiNSBdCgpJZiB0aGUgdXNlciBoYXMgc3BlY2lmaWVkIHRoZWly IG93biBSU1MgaGFzaCBrZXksIGRvbid0Cmxvc2UgaXQgYWNyb3NzIHF1ZXVlIHJlc2V0cyBzdWNo IGFzIERPV04vVVAsIE1UVSBjaGFuZ2UsCmFuZCBudW1iZXIgb2YgY2hhbm5lbHMgY2hhbmdlLiAg VGhpcyBpcyBmaXhlZCBieSBtb3ZpbmcKdGhlIGtleSBpbml0aWFsaXphdGlvbiB0byBhIGxpdHRs ZSBlYXJsaWVyIGluIHRoZSBsaWYKY3JlYXRpb24uCgpBbHNvLCBsZXQncyBjbGVhbiB1cCB0aGUg UlNTIGNvbmZpZyBhIGxpdHRsZSBiZXR0ZXIgb24KdGhlIHdheSBkb3duIGJ5IHNldHRpbmcgaXQg YWxsIHRvIDAuCgpGaXhlczogYWEzMTk4ODE5YmVhICgiaW9uaWM6IEFkZCBSU1Mgc3VwcG9ydCIp ClNpZ25lZC1vZmYtYnk6IFNoYW5ub24gTmVsc29uIDxzbmVsc29uQHBlbnNhbmRvLmlvPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvcGVuc2FuZG8vaW9uaWMvaW9uaWNfbGlmLmMgfCAxNiArKysrKysr KysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25p Y19saWYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3BlbnNhbmRvL2lvbmljL2lvbmljX2xpZi5j CmluZGV4IDIwZmFhOGQyNGM5Zi4uMTM0NjQwNDEyZDdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19saWYuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9wZW5zYW5kby9pb25pYy9pb25pY19saWYuYwpAQCAtMTM2NCwxMiArMTM2NCw5IEBA IGludCBpb25pY19saWZfcnNzX2NvbmZpZyhzdHJ1Y3QgaW9uaWNfbGlmICpsaWYsIGNvbnN0IHUx NiB0eXBlcywKIAogc3RhdGljIGludCBpb25pY19saWZfcnNzX2luaXQoc3RydWN0IGlvbmljX2xp ZiAqbGlmKQogewotCXU4IHJzc19rZXlbSU9OSUNfUlNTX0hBU0hfS0VZX1NJWkVdOwogCXVuc2ln bmVkIGludCB0Ymxfc3o7CiAJdW5zaWduZWQgaW50IGk7CiAKLQluZXRkZXZfcnNzX2tleV9maWxs KHJzc19rZXksIElPTklDX1JTU19IQVNIX0tFWV9TSVpFKTsKLQogCWxpZi0+cnNzX3R5cGVzID0g SU9OSUNfUlNTX1RZUEVfSVBWNCAgICAgfAogCQkJIElPTklDX1JTU19UWVBFX0lQVjRfVENQIHwK IAkJCSBJT05JQ19SU1NfVFlQRV9JUFY0X1VEUCB8CkBAIC0xMzgyLDEyICsxMzc5LDE4IEBAIHN0 YXRpYyBpbnQgaW9uaWNfbGlmX3Jzc19pbml0KHN0cnVjdCBpb25pY19saWYgKmxpZikKIAlmb3Ig KGkgPSAwOyBpIDwgdGJsX3N6OyBpKyspCiAJCWxpZi0+cnNzX2luZF90YmxbaV0gPSBldGh0b29s X3J4ZmhfaW5kaXJfZGVmYXVsdChpLCBsaWYtPm54cXMpOwogCi0JcmV0dXJuIGlvbmljX2xpZl9y c3NfY29uZmlnKGxpZiwgbGlmLT5yc3NfdHlwZXMsIHJzc19rZXksIE5VTEwpOworCXJldHVybiBp b25pY19saWZfcnNzX2NvbmZpZyhsaWYsIGxpZi0+cnNzX3R5cGVzLCBOVUxMLCBOVUxMKTsKIH0K IAotc3RhdGljIGludCBpb25pY19saWZfcnNzX2RlaW5pdChzdHJ1Y3QgaW9uaWNfbGlmICpsaWYp CitzdGF0aWMgdm9pZCBpb25pY19saWZfcnNzX2RlaW5pdChzdHJ1Y3QgaW9uaWNfbGlmICpsaWYp CiB7Ci0JcmV0dXJuIGlvbmljX2xpZl9yc3NfY29uZmlnKGxpZiwgMHgwLCBOVUxMLCBOVUxMKTsK KwlpbnQgdGJsX3N6OworCisJdGJsX3N6ID0gbGUxNl90b19jcHUobGlmLT5pb25pYy0+aWRlbnQu bGlmLmV0aC5yc3NfaW5kX3RibF9zeik7CisJbWVtc2V0KGxpZi0+cnNzX2luZF90YmwsIDAsIHRi bF9zeik7CisJbWVtc2V0KGxpZi0+cnNzX2hhc2hfa2V5LCAwLCBJT05JQ19SU1NfSEFTSF9LRVlf U0laRSk7CisKKwlpb25pY19saWZfcnNzX2NvbmZpZyhsaWYsIDB4MCwgTlVMTCwgTlVMTCk7CiB9 CiAKIHN0YXRpYyB2b2lkIGlvbmljX3R4cnhfZGlzYWJsZShzdHJ1Y3QgaW9uaWNfbGlmICpsaWYp CkBAIC0xNzEwLDYgKzE3MTMsNyBAQCBzdGF0aWMgc3RydWN0IGlvbmljX2xpZiAqaW9uaWNfbGlm X2FsbG9jKHN0cnVjdCBpb25pYyAqaW9uaWMsIHVuc2lnbmVkIGludCBpbmRleAogCQlkZXZfZXJy KGRldiwgIkZhaWxlZCB0byBhbGxvY2F0ZSByc3MgaW5kaXJlY3Rpb24gdGFibGUsIGFib3J0aW5n XG4iKTsKIAkJZ290byBlcnJfb3V0X2ZyZWVfcWNxczsKIAl9CisJbmV0ZGV2X3Jzc19rZXlfZmls bChsaWYtPnJzc19oYXNoX2tleSwgSU9OSUNfUlNTX0hBU0hfS0VZX1NJWkUpOwogCiAJbGlzdF9h ZGRfdGFpbCgmbGlmLT5saXN0LCAmaW9uaWMtPmxpZnMpOwogCi0tIAoyLjIwLjEKCgpGcm9tIDk3 ZTdkMGEzMGFhZmFmNzJhMDZiYmE4NzIzYzBkMmY1MzY2ODljYzAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFZsYWRpbWlyIE9sdGVhbiA8dmxhZGltaXIub2x0ZWFuQG54cC5jb20+CkRh dGU6IFR1ZSwgMyBEZWMgMjAxOSAxNzo0NTozNSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMzYvMzhd IG5ldDogbXNjYzogb2NlbG90OiB1bnJlZ2lzdGVyIHRoZSBQVFAgY2xvY2sgb24gZGVpbml0Cgpb IFVwc3RyZWFtIGNvbW1pdCA5Mzg1OTczZmU4ZGI5NzQzZmE5M2JmMTcyNDU2MzViZTRlYjhjNGE2 IF0KCkN1cnJlbnRseSBhIHN3aXRjaCBkcml2ZXIgZGVpbml0IGZyZWVzIHRoZSByZWdtYXBzLCBi dXQgdGhlIFBUUCBjbG9jayBpcwpzdGlsbCBvdXQgdGhlcmUsIGF2YWlsYWJsZSB0byB1c2VyIHNw YWNlIHZpYSAvZGV2L3B0cE4uIEFueSBQVFAKb3BlcmF0aW9uIGlzIGEgdGlja2luZyB0aW1lIGJv bWIsIHNpbmNlIGl0IHdpbGwgYXR0ZW1wdCB0byB1c2UgdGhlIGZyZWVkCnJlZ21hcHMgYW5kIHRo dXMgdHJpZ2dlciBrZXJuZWwgcGFuaWNzOgoKWyAgICA0LjI5MTc0Nl0gZnNsX2VuZXRjIDAwMDA6 MDA6MDAuMiBldGgxOiBlcnJvciAtMjIgc2V0dGluZyB1cCBzbGF2ZSBwaHkKWyAgICA0LjI5MTg3 MV0gbXNjY19mZWxpeCAwMDAwOjAwOjAwLjU6IEZhaWxlZCB0byByZWdpc3RlciBEU0Egc3dpdGNo OiAtMjIKWyAgICA0LjMwODY2Nl0gbXNjY19mZWxpeDogcHJvYmUgb2YgMDAwMDowMDowMC41IGZh aWxlZCB3aXRoIGVycm9yIC0yMgpbICAgIDYuMzU4MjcwXSBVbmFibGUgdG8gaGFuZGxlIGtlcm5l bCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMDAwMDAw MDAwODgKWyAgICA2LjM2NzA5MF0gTWVtIGFib3J0IGluZm86ClsgICAgNi4zNjk4ODhdICAgRVNS ID0gMHg5NjAwMDA0NgpbICAgIDYuMzY5ODkxXSAgIEVDID0gMHgyNTogREFCVCAoY3VycmVudCBF TCksIElMID0gMzIgYml0cwpbICAgIDYuMzY5ODkyXSAgIFNFVCA9IDAsIEZuViA9IDAKWyAgICA2 LjM2OTg5NF0gICBFQSA9IDAsIFMxUFRXID0gMApbICAgIDYuMzY5ODk1XSBEYXRhIGFib3J0IGlu Zm86ClsgICAgNi4zNjk4OTddICAgSVNWID0gMCwgSVNTID0gMHgwMDAwMDA0NgpbICAgIDYuMzY5 ODk5XSAgIENNID0gMCwgV25SID0gMQpbICAgIDYuMzY5OTAyXSB1c2VyIHBndGFibGU6IDRrIHBh Z2VzLCA0OC1iaXQgVkFzLCBwZ2RwPTAwMDAwMDIwZDU4YzcwMDAKWyAgICA2LjM2OTkwNF0gWzAw MDAwMDAwMDAwMDAwODhdIHBnZD0wMDAwMDAyMGQ1OTEyMDAzLCBwdWQ9MDAwMDAwMjBkNTkxNTAw MywgcG1kPTAwMDAwMDAwMDAwMDAwMDAKWyAgICA2LjM2OTkxNF0gSW50ZXJuYWwgZXJyb3I6IE9v cHM6IDk2MDAwMDQ2IFsjMV0gUFJFRU1QVCBTTVAKWyAgICA2LjQyMDQ0M10gTW9kdWxlcyBsaW5r ZWQgaW46ClsgICAgNi40MjM1MDZdIENQVTogMSBQSUQ6IDI2MiBDb21tOiBwaGNfY3RsIE5vdCB0 YWludGVkIDUuNC4wLTAzNjI1LWdiN2IyYTVkYWRkN2YgIzIwNApbICAgIDYuNDMxMjczXSBIYXJk d2FyZSBuYW1lOiBMUzEwMjhBIFJEQiBCb2FyZCAoRFQpClsgICAgNi40MzU5ODldIHBzdGF0ZTog NDAwMDAwODUgKG5aY3YgZGFJZiAtUEFOIC1VQU8pClsgICAgNi40NDA4MDJdIHBjIDogY3NzX3Jl bGVhc2UrMHgyNC8weDU4ClsgICAgNi40NDQ1NjFdIGxyIDogcmVnbWFwX3JlYWQrMHg0MC8weDc4 ClsgICAgNi40NDgzMTZdIHNwIDogZmZmZjgwMDAxMDUxM2NjMApbICAgIDYuNDUxNjM2XSB4Mjk6 IGZmZmY4MDAwMTA1MTNjYzAgeDI4OiBmZmZmMDAyMDU1ODczMDQwClsgICAgNi40NTY5NjNdIHgy NzogMDAwMDAwMDAwMDAwMDAwMCB4MjY6IDAwMDAwMDAwMDAwMDAwMDAKWyAgICA2LjQ2MjI4OV0g eDI1OiAwMDAwMDAwMDAwMDAwMDAwIHgyNDogMDAwMDAwMDAwMDAwMDAwMApbICAgIDYuNDY3NjE3 XSB4MjM6IDAwMDAwMDAwMDAwMDAwMDAgeDIyOiAwMDAwMDAwMDAwMDAwMDgwClsgICAgNi40NzI5 NDRdIHgyMTogZmZmZjgwMDAxMDUxM2Q0NCB4MjA6IDAwMDAwMDAwMDAwMDAwODAKWyAgICA2LjQ3 ODI3MF0geDE5OiAwMDAwMDAwMDAwMDAwMDAwIHgxODogMDAwMDAwMDAwMDAwMDAwMApbICAgIDYu NDgzNTk2XSB4MTc6IDAwMDAwMDAwMDAwMDAwMDAgeDE2OiAwMDAwMDAwMDAwMDAwMDAwClsgICAg Ni40ODg5MjFdIHgxNTogMDAwMDAwMDAwMDAwMDAwMCB4MTQ6IDAwMDAwMDAwMDAwMDAwMDAKWyAg ICA2LjQ5NDI0N10geDEzOiAwMDAwMDAwMDAwMDAwMDAwIHgxMjogMDAwMDAwMDAwMDAwMDAwMApb ICAgIDYuNDk5NTczXSB4MTE6IDAwMDAwMDAwMDAwMDAwMDAgeDEwOiAwMDAwMDAwMDAwMDAwMDAw ClsgICAgNi41MDQ4OTldIHg5IDogMDAwMDAwMDAwMDAwMDAwMCB4OCA6IDAwMDAwMDAwMDAwMDAw MDAKWyAgICA2LjUxMDIyNV0geDcgOiAwMDAwMDAwMDAwMDAwMDAwIHg2IDogZmZmZjgwMDAxMDUx M2NmMApbICAgIDYuNTE1NTUwXSB4NSA6IDAwMDAwMDAwMDAwMDAwMDAgeDQgOiAwMDAwMDAwZmZm ZmZmZmUwClsgICAgNi41MjA4NzZdIHgzIDogMDAwMDAwMDAwMDAwMDA4OCB4MiA6IGZmZmY4MDAw MTA1MTNkNDQKWyAgICA2LjUyNjIwMl0geDEgOiBmZmZmY2FkYTY2OGVhMDAwIHgwIDogZmZmZmNh ZGE2NGQ4YjBjMApbICAgIDYuNTMxNTI4XSBDYWxsIHRyYWNlOgpbICAgIDYuNTMzOTc3XSAgY3Nz X3JlbGVhc2UrMHgyNC8weDU4ClsgICAgNi41MzczODVdICByZWdtYXBfcmVhZCsweDQwLzB4NzgK WyAgICA2LjU0MDc5NV0gIF9fb2NlbG90X3JlYWRfaXgrMHg2Yy8weGEwClsgICAgNi41NDQ2NDFd ICBvY2Vsb3RfcHRwX2dldHRpbWU2NCsweDRjLzB4MTEwClsgICAgNi41NDg5MjFdICBwdHBfY2xv Y2tfZ2V0dGltZSsweDRjLzB4NTgKWyAgICA2LjU1Mjg1M10gIHBjX2Nsb2NrX2dldHRpbWUrMHg1 Yy8weGE4ClsgICAgNi41NTY2OTldICBfX2FybTY0X3N5c19jbG9ja19nZXR0aW1lKzB4NjgvMHhj OApbICAgIDYuNTYxMzMxXSAgZWwwX3N2Y19jb21tb24uY29uc3Rwcm9wLjIrMHg3Yy8weDE3OApb ICAgIDYuNTY2MTMzXSAgZWwwX3N2Y19oYW5kbGVyKzB4MzQvMHhhMApbICAgIDYuNTY5ODkxXSAg ZWwwX3N5bmNfaGFuZGxlcisweDExNC8weDFkMApbICAgIDYuNTczOTA4XSAgZWwwX3N5bmMrMHgx NDAvMHgxODAKWyAgICA2LjU3NzIzMl0gQ29kZTogZDUwMzIwMWYgYjAwMTE5YTEgOTEwMjIyNjMg YjI3YjdiZTQgKGY5MDA0NjYzKQpbICAgIDYuNTgzMzQ5XSAtLS1bIGVuZCB0cmFjZSBkMTk2Yjli MTRjZGFlMmRhIF0tLS0KWyAgICA2LjU4Nzk3N10gS2VybmVsIHBhbmljIC0gbm90IHN5bmNpbmc6 IEZhdGFsIGV4Y2VwdGlvbgpbICAgIDYuNTkzMjE2XSBTTVA6IHN0b3BwaW5nIHNlY29uZGFyeSBD UFVzClsgICAgNi41OTcxNTFdIEtlcm5lbCBPZmZzZXQ6IDB4NGFkYTU0NDAwMDAwIGZyb20gMHhm ZmZmODAwMDEwMDAwMDAwClsgICAgNi42MDMyNjFdIFBIWVNfT0ZGU0VUOiAweGZmZmZkMGE3YzAw MDAwMDAKWyAgICA2LjYwNzQ1NF0gQ1BVIGZlYXR1cmVzOiAweDEwMDAyLDIxODA2MDA4ClsgICAg Ni42MTE1NThdIE1lbW9yeSBMaW1pdDogbm9uZQoKQW5kIG5vdyB0aGF0IG9jZWxvdC0+cHRwX2Ns b2NrIGlzIGNoZWNrZWQgYXQgZXhpdCwgcHJldmVudCBhIHBvdGVudGlhbAplcnJvciB3aGVyZSBw dHBfY2xvY2tfcmVnaXN0ZXIgcmV0dXJuZWQgYSBwb2ludGVyLWVuY29kZWQgZXJyb3IsIHdoaWNo CndlIGFyZSBrZWVwaW5nIGluIHRoZSBvY2Vsb3QgcHJpdmF0ZSBkYXRhIHN0cnVjdHVyZS4gU28g bm93LApvY2Vsb3QtPnB0cF9jbG9jayBpcyBub3cgZWl0aGVyIE5VTEwgb3IgYSB2YWxpZCBwb2lu dGVyLgoKRml4ZXM6IDRlM2IwNDY4ZTZkNyAoIm5ldDogbXNjYzogUFRQIEhhcmR3YXJlIENsb2Nr IChQSEMpIHN1cHBvcnQiKQpDYzogQW50b2luZSBUZW5hcnQgPGFudG9pbmUudGVuYXJ0QGJvb3Rs aW4uY29tPgpSZXZpZXdlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5j b20+ClNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIE9sdGVhbiA8dmxhZGltaXIub2x0ZWFuQG54cC5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jIHwgMTQgKysrKysrKysrKy0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90LmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jCmluZGV4IDY3MmVhMTM0MmFkZC4uZGExZmQwZTA4YzM2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90LmMKQEAgLTE5NzksMTQgKzE5NzksMTggQEAg c3RhdGljIHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBvY2Vsb3RfcHRwX2Nsb2NrX2luZm8gPSB7CiAK IHN0YXRpYyBpbnQgb2NlbG90X2luaXRfdGltZXN0YW1wKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCkK IHsKKwlzdHJ1Y3QgcHRwX2Nsb2NrICpwdHBfY2xvY2s7CisKIAlvY2Vsb3QtPnB0cF9pbmZvID0g b2NlbG90X3B0cF9jbG9ja19pbmZvOwotCW9jZWxvdC0+cHRwX2Nsb2NrID0gcHRwX2Nsb2NrX3Jl Z2lzdGVyKCZvY2Vsb3QtPnB0cF9pbmZvLCBvY2Vsb3QtPmRldik7Ci0JaWYgKElTX0VSUihvY2Vs b3QtPnB0cF9jbG9jaykpCi0JCXJldHVybiBQVFJfRVJSKG9jZWxvdC0+cHRwX2Nsb2NrKTsKKwlw dHBfY2xvY2sgPSBwdHBfY2xvY2tfcmVnaXN0ZXIoJm9jZWxvdC0+cHRwX2luZm8sIG9jZWxvdC0+ ZGV2KTsKKwlpZiAoSVNfRVJSKHB0cF9jbG9jaykpCisJCXJldHVybiBQVFJfRVJSKHB0cF9jbG9j ayk7CiAJLyogQ2hlY2sgaWYgUEhDIHN1cHBvcnQgaXMgbWlzc2luZyBhdCB0aGUgY29uZmlndXJh dGlvbiBsZXZlbCAqLwotCWlmICghb2NlbG90LT5wdHBfY2xvY2spCisJaWYgKCFwdHBfY2xvY2sp CiAJCXJldHVybiAwOwogCisJb2NlbG90LT5wdHBfY2xvY2sgPSBwdHBfY2xvY2s7CisKIAlvY2Vs b3Rfd3JpdGUob2NlbG90LCBTWVNfUFRQX0NGR19QVFBfU1RBTVBfV0lEKDMwKSwgU1lTX1BUUF9D RkcpOwogCW9jZWxvdF93cml0ZShvY2Vsb3QsIDB4ZmZmZmZmZmYsIEFOQV9UQUJMRVNfUFRQX0lE X0xPVyk7CiAJb2NlbG90X3dyaXRlKG9jZWxvdCwgMHhmZmZmZmZmZiwgQU5BX1RBQkxFU19QVFBf SURfSElHSCk7CkBAIC0yMjEzLDYgKzIyMTcsOCBAQCB2b2lkIG9jZWxvdF9kZWluaXQoc3RydWN0 IG9jZWxvdCAqb2NlbG90KQogCWRlc3Ryb3lfd29ya3F1ZXVlKG9jZWxvdC0+c3RhdHNfcXVldWUp OwogCW11dGV4X2Rlc3Ryb3koJm9jZWxvdC0+c3RhdHNfbG9jayk7CiAJb2NlbG90X2FjZV9kZWlu aXQoKTsKKwlpZiAob2NlbG90LT5wdHBfY2xvY2spCisJCXB0cF9jbG9ja191bnJlZ2lzdGVyKG9j ZWxvdC0+cHRwX2Nsb2NrKTsKIAogCWZvciAoaSA9IDA7IGkgPCBvY2Vsb3QtPm51bV9waHlzX3Bv cnRzOyBpKyspIHsKIAkJcG9ydCA9IG9jZWxvdC0+cG9ydHNbaV07Ci0tIAoyLjIwLjEKCgpGcm9t IGIxMjE1ZDdiNjMxODRjY2RlNDM4YzE5MGI3YjMyOTY0NzM1MTQ0M2UgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRh dGU6IEZyaSwgNiBEZWMgMjAxOSAyMzoyNzoxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMzcvMzhd IHI4MTY5OiBhZGQgbWlzc2luZyBSWCBlbmFibGluZyBmb3IgV29MIG9uIFJUTDgxMjUKClsgVXBz dHJlYW0gY29tbWl0IDAwMjIyZDEzOTQxMDRmMGZkNmMwMWNhOWY1NzhhZmVjOWUwZjE0OGIgXQoK UlRMODEyNSBhbHNvIHJlcXVpcmVzIHRvIGVuYWJsZSBSWCBmb3IgV29MLgoKdjI6IGFkZCBtaXNz aW5nIEZpeGVzIHRhZwoKRml4ZXM6IGYxYmNlNGFkMmYxYyAoInI4MTY5OiBhZGQgc3VwcG9ydCBm b3IgUlRMODEyNSIpClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKaW5kZXggMWQ2N2VlZWFiNzlkLi43 YTljODY4NTRjMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgx NjlfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5j CkBAIC0zOTIwLDcgKzM5MjAsNyBAQCBzdGF0aWMgdm9pZCBydGxfd29sX3N1c3BlbmRfcXVpcmso c3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHApCiAJY2FzZSBSVExfR0lHQV9NQUNfVkVSXzMyOgog CWNhc2UgUlRMX0dJR0FfTUFDX1ZFUl8zMzoKIAljYXNlIFJUTF9HSUdBX01BQ19WRVJfMzQ6Ci0J Y2FzZSBSVExfR0lHQV9NQUNfVkVSXzM3IC4uLiBSVExfR0lHQV9NQUNfVkVSXzUxOgorCWNhc2Ug UlRMX0dJR0FfTUFDX1ZFUl8zNyAuLi4gUlRMX0dJR0FfTUFDX1ZFUl82MToKIAkJUlRMX1czMih0 cCwgUnhDb25maWcsIFJUTF9SMzIodHAsIFJ4Q29uZmlnKSB8CiAJCQlBY2NlcHRCcm9hZGNhc3Qg fCBBY2NlcHRNdWx0aWNhc3QgfCBBY2NlcHRNeVBoeXMpOwogCQlicmVhazsKLS0gCjIuMjAuMQoK CkZyb20gYjY1ZWQ0YzI4ZTI5OGM0NTZiNDYyNTI3YTQyMTg4NjRmZTljMGY1NSBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNv bT4KRGF0ZTogU2F0LCA3IERlYyAyMDE5IDIyOjIxOjUyICswMTAwClN1YmplY3Q6IFtQQVRDSCAz OC8zOF0gcjgxNjk6IGZpeCBydGxfaHdfanVtYm9fZGlzYWJsZSBmb3IgUlRMODE2OGV2bAoKWyBV cHN0cmVhbSBjb21taXQgMGZjNzUyMTlmZTlhM2M5MDYzMTQ1M2U5ODcwZTRmNmQ5NTZmMGViYyBd CgpJbiByZWZlcmVuY2VkIGZpeCB3ZSByZW1vdmVkIHRoZSBSVEw4MTY4ZS1zcGVjaWZpYyBqdW1i byBjb25maWcgZm9yClJUTDgxNjhldmwgaW4gcnRsX2h3X2p1bWJvX2VuYWJsZSgpLiBXZSBoYXZl IHRvIGRvIHRoZSBzYW1lIGluCnJ0bF9od19qdW1ib19kaXNhYmxlKCkuCgp2MjogZml4IHJlZmVy ZW5jZWQgY29tbWl0IGlkCgpGaXhlczogMTQwMTJjOWYzYmI5ICgicjgxNjk6IGZpeCBqdW1ibyBj b25maWd1cmF0aW9uIGZvciBSVEw4MTY4ZXZsIikKU2lnbmVkLW9mZi1ieTogSGVpbmVyIEthbGx3 ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsv cjgxNjlfbWFpbi5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2 OV9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9yZWFsdGVrL3I4MTY5X21haW4uYwppbmRl eCA3YTljODY4NTRjMDMuLjRmZTA5NzdkMDFmYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVh bHRlay9yODE2OV9tYWluLmMKQEAgLTQxNDUsNyArNDE0NSw3IEBAIHN0YXRpYyB2b2lkIHJ0bF9o d19qdW1ib19kaXNhYmxlKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKQogCWNhc2UgUlRMX0dJ R0FfTUFDX1ZFUl8yNyAuLi4gUlRMX0dJR0FfTUFDX1ZFUl8yODoKIAkJcjgxNjhkcF9od19qdW1i b19kaXNhYmxlKHRwKTsKIAkJYnJlYWs7Ci0JY2FzZSBSVExfR0lHQV9NQUNfVkVSXzMxIC4uLiBS VExfR0lHQV9NQUNfVkVSXzM0OgorCWNhc2UgUlRMX0dJR0FfTUFDX1ZFUl8zMSAuLi4gUlRMX0dJ R0FfTUFDX1ZFUl8zMzoKIAkJcjgxNjhlX2h3X2p1bWJvX2Rpc2FibGUodHApOwogCQlicmVhazsK IAlkZWZhdWx0OgotLSAKMi4yMC4xCgo= ----Next_Part(Mon_Dec_16_14_10_09_2019_087)----