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 C7AF6C1975A for ; Sun, 15 Mar 2020 02:35:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2AE9C205C9 for ; Sun, 15 Mar 2020 02:35:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726667AbgCOCfG (ORCPT ); Sat, 14 Mar 2020 22:35:06 -0400 Received: from shards.monkeyblade.net ([23.128.96.9]:34852 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726712AbgCOCfF (ORCPT ); Sat, 14 Mar 2020 22:35:05 -0400 Received: from localhost (unknown [IPv6:2601:601:9f00:477::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 6FB6115A18CA6 for ; Fri, 13 Mar 2020 21:52:06 -0700 (PDT) Date: Fri, 13 Mar 2020 21:52:04 -0700 (PDT) Message-Id: <20200313.215204.129234716151770482.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(Fri_Mar_13_21_52_04_2020_791)--" 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]); Fri, 13 Mar 2020 21:52:08 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Fri_Mar_13_21_52_04_2020_791)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.4 and v5.5 -stable, respectively. Thank you. ----Next_Part(Fri_Mar_13_21_52_04_2020_791)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSA0NTVlMzUxY2UwNDY3NjkyOGNjOTIyOTA0MjEwMjg0NWJkNGM1OWJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cnkgWWFrdW5pbiA8emVpbEB5YW5kZXgtdGVhbS5ydT4K RGF0ZTogVGh1LCA1IE1hciAyMDIwIDE3OjQ1OjU3ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwMS81 Ml0gY2dyb3VwLCBuZXRjbGFzc2lkOiBwZXJpb2RpY2FsbHkgcmVsZWFzZSBmaWxlX2xvY2sgb24K IGNsYXNzaWQgdXBkYXRpbmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBz dHJlYW0gY29tbWl0IDAxOGQyNmZjZDEyYTc1ZmI5YjVmZTIzMzc2MmFhM2YyZjA4NTRiODggXQoK SW4gb3VyIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgd2UgaGF2ZSBmYWNlZCB3aXRoIHByb2JsZW0g dGhhdCB1cGRhdGluZwpjbGFzc2lkIGluIGNncm91cCB3aXRoIGhlYXZ5IHRhc2tzIGNhdXNlIGxv bmcgZnJlZXplIG9mIHRoZSBmaWxlIHRhYmxlcwppbiB0aGlzIHRhc2tzLiBCeSBoZWF2eSB0YXNr cyB3ZSB1bmRlcnN0YW5kIHRhc2tzIHdpdGggbWFueSB0aHJlYWRzIGFuZApvcGVuZWQgc29ja2V0 cyAoZS5nLiBiYWxhbmNlcnMpLiBUaGlzIGZyZWV6ZSBsZWFkcyB0byBhbiBpbmNyZWFzZSBudW1i ZXIKb2YgY2xpZW50IHRpbWVvdXRzLgoKVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGZvbGxvd2luZyBs b2dpYyB0byBmaXggdGhpcyBpc3N1ZToK0LBmdGVyIGl0ZXJhdGluZyAxMDAwIGZpbGUgZGVzY3Jp cHRvcnMgZmlsZSB0YWJsZSBsb2NrIHdpbGwgYmUgcmVsZWFzZWQKdGh1cyBwcm92aWRpbmcgYSB0 aW1lIGdhcCBmb3Igc29ja2V0IGNyZWF0aW9uL2RlbGV0aW9uLgoKTm93IHVwZGF0ZSBpcyBub24g YXRvbWljIGFuZCBzb2NrZXQgbWF5IGJlIHNraXBwZWQgdXNpbmcgY2FsbHM6CgpkdXAyKG9sZGZk LCBuZXdmZCk7CmNsb3NlKG9sZGZkKTsKCkJ1dCB0aGlzIGNhc2UgaXMgbm90IHR5cGljYWwuIE1v cmVvdmVyIGJlZm9yZSB0aGlzIHBhdGNoIHNraXAgaXMgcG9zc2libGUKdG9vIGJ5IGhpZGluZyBz b2NrZXQgZmQgaW4gdW5peCBzb2NrZXQgYnVmZmVyLgoKTmV3IHNvY2tldHMgd2lsbCBiZSBhbGxv Y2F0ZWQgd2l0aCB1cGRhdGVkIGNsYXNzaWQgYmVjYXVzZSBjZ3JvdXAgc3RhdGUKaXMgdXBkYXRl ZCBiZWZvcmUgc3RhcnQgb2YgdGhlIGZpbGUgZGVzY3JpcHRvcnMgaXRlcmF0aW9uLgoKU28gaW4g Y29tbW9uIGNhc2VzIHRoaXMgcGF0Y2ggaGFzIG5vIHNpZGUgZWZmZWN0cy4KClNpZ25lZC1vZmYt Ynk6IERtaXRyeSBZYWt1bmluIDx6ZWlsQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogS29u c3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUv bmV0Y2xhc3NpZF9jZ3JvdXAuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldGNsYXNzaWRfY2dyb3VwLmMgYi9uZXQvY29yZS9uZXRj bGFzc2lkX2Nncm91cC5jCmluZGV4IDA2NDJmOTFjNDAzOC4uYjRjODdmZTMxYmUyIDEwMDY0NAot LS0gYS9uZXQvY29yZS9uZXRjbGFzc2lkX2Nncm91cC5jCisrKyBiL25ldC9jb3JlL25ldGNsYXNz aWRfY2dyb3VwLmMKQEAgLTUzLDMwICs1Myw2MCBAQCBzdGF0aWMgdm9pZCBjZ3JwX2Nzc19mcmVl KHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MpCiAJa2ZyZWUoY3NzX2Nsc19zdGF0ZShj c3MpKTsKIH0KIAorLyoKKyAqIFRvIGF2b2lkIGZyZWV6aW5nIG9mIHNvY2tldHMgY3JlYXRpb24g Zm9yIHRhc2tzIHdpdGggYmlnIG51bWJlciBvZiB0aHJlYWRzCisgKiBhbmQgb3BlbmVkIHNvY2tl dHMgbGV0cyByZWxlYXNlIGZpbGVfbG9jayBldmVyeSAxMDAwIGl0ZXJhdGVkIGRlc2NyaXB0b3Jz LgorICogTmV3IHNvY2tldHMgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBjcmVhdGVkIHdpdGggbmV3 IGNsYXNzaWQuCisgKi8KKworc3RydWN0IHVwZGF0ZV9jbGFzc2lkX2NvbnRleHQgeworCXUzMiBj bGFzc2lkOworCXVuc2lnbmVkIGludCBiYXRjaDsKK307CisKKyNkZWZpbmUgVVBEQVRFX0NMQVNT SURfQkFUQ0ggMTAwMAorCiBzdGF0aWMgaW50IHVwZGF0ZV9jbGFzc2lkX3NvY2soY29uc3Qgdm9p ZCAqdiwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIG4pCiB7CiAJaW50IGVycjsKKwlzdHJ1 Y3QgdXBkYXRlX2NsYXNzaWRfY29udGV4dCAqY3R4ID0gKHZvaWQgKil2OwogCXN0cnVjdCBzb2Nr ZXQgKnNvY2sgPSBzb2NrX2Zyb21fZmlsZShmaWxlLCAmZXJyKTsKIAogCWlmIChzb2NrKSB7CiAJ CXNwaW5fbG9jaygmY2dyb3VwX3NrX3VwZGF0ZV9sb2NrKTsKLQkJc29ja19jZ3JvdXBfc2V0X2Ns YXNzaWQoJnNvY2stPnNrLT5za19jZ3JwX2RhdGEsCi0JCQkJCSh1bnNpZ25lZCBsb25nKXYpOwor CQlzb2NrX2Nncm91cF9zZXRfY2xhc3NpZCgmc29jay0+c2stPnNrX2NncnBfZGF0YSwgY3R4LT5j bGFzc2lkKTsKIAkJc3Bpbl91bmxvY2soJmNncm91cF9za191cGRhdGVfbG9jayk7CiAJfQorCWlm ICgtLWN0eC0+YmF0Y2ggPT0gMCkgeworCQljdHgtPmJhdGNoID0gVVBEQVRFX0NMQVNTSURfQkFU Q0g7CisJCXJldHVybiBuICsgMTsKKwl9CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHVw ZGF0ZV9jbGFzc2lkX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1MzIgY2xhc3NpZCkKK3sK KwlzdHJ1Y3QgdXBkYXRlX2NsYXNzaWRfY29udGV4dCBjdHggPSB7CisJCS5jbGFzc2lkID0gY2xh c3NpZCwKKwkJLmJhdGNoID0gVVBEQVRFX0NMQVNTSURfQkFUQ0gKKwl9OworCXVuc2lnbmVkIGlu dCBmZCA9IDA7CisKKwlkbyB7CisJCXRhc2tfbG9jayhwKTsKKwkJZmQgPSBpdGVyYXRlX2ZkKHAt PmZpbGVzLCBmZCwgdXBkYXRlX2NsYXNzaWRfc29jaywgJmN0eCk7CisJCXRhc2tfdW5sb2NrKHAp OworCQljb25kX3Jlc2NoZWQoKTsKKwl9IHdoaWxlIChmZCk7Cit9CisKIHN0YXRpYyB2b2lkIGNn cnBfYXR0YWNoKHN0cnVjdCBjZ3JvdXBfdGFza3NldCAqdHNldCkKIHsKIAlzdHJ1Y3QgY2dyb3Vw X3N1YnN5c19zdGF0ZSAqY3NzOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsKIAogCWNncm91cF90 YXNrc2V0X2Zvcl9lYWNoKHAsIGNzcywgdHNldCkgewotCQl0YXNrX2xvY2socCk7Ci0JCWl0ZXJh dGVfZmQocC0+ZmlsZXMsIDAsIHVwZGF0ZV9jbGFzc2lkX3NvY2ssCi0JCQkgICAodm9pZCAqKSh1 bnNpZ25lZCBsb25nKWNzc19jbHNfc3RhdGUoY3NzKS0+Y2xhc3NpZCk7Ci0JCXRhc2tfdW5sb2Nr KHApOworCQl1cGRhdGVfY2xhc3NpZF90YXNrKHAsIGNzc19jbHNfc3RhdGUoY3NzKS0+Y2xhc3Np ZCk7CiAJfQogfQogCkBAIC05OCwxMCArMTI4LDcgQEAgc3RhdGljIGludCB3cml0ZV9jbGFzc2lk KHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MsIHN0cnVjdCBjZnR5cGUgKmNmdCwKIAog CWNzc190YXNrX2l0ZXJfc3RhcnQoY3NzLCAwLCAmaXQpOwogCXdoaWxlICgocCA9IGNzc190YXNr X2l0ZXJfbmV4dCgmaXQpKSkgewotCQl0YXNrX2xvY2socCk7Ci0JCWl0ZXJhdGVfZmQocC0+Zmls ZXMsIDAsIHVwZGF0ZV9jbGFzc2lkX3NvY2ssCi0JCQkgICAodm9pZCAqKSh1bnNpZ25lZCBsb25n KWNzLT5jbGFzc2lkKTsKLQkJdGFza191bmxvY2socCk7CisJCXVwZGF0ZV9jbGFzc2lkX3Rhc2so cCwgY3MtPmNsYXNzaWQpOwogCQljb25kX3Jlc2NoZWQoKTsKIAl9CiAJY3NzX3Rhc2tfaXRlcl9l bmQoJml0KTsKLS0gCjIuMjAuMQoKCkZyb20gYzVmYTA4M2MzNDhlZjliZTkxZDg2OWM1NzlkOGQ4 MDM5YTYzZTFlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBTYXQsIDcgTWFyIDIwMjAgMjI6MDU6MTQgLTA4MDAK U3ViamVjdDogW1BBVENIIDAyLzUyXSBncmU6IGZpeCB1bmluaXQtdmFsdWUgaW4gX19pcHR1bm5l bF9wdWxsX2hlYWRlcgoKWyBVcHN0cmVhbSBjb21taXQgMTdjMjVjYWZkNGQzZTc0YzgzZGNlNTZi MTU4ODQzYjE5YzQwYjQxNCBdCgpzeXpib3QgZm91bmQgYW4gaW50ZXJlc3RpbmcgY2FzZSBvZiB0 aGUga2VybmVsIHJlYWRpbmcKYW4gdW5pbml0LXZhbHVlIFsxXQoKUHJvYmxlbSBpcyBpbiB0aGUg aGFuZGxpbmcgb2YgRVRIX1BfV0NDUCBpbiBncmVfcGFyc2VfaGVhZGVyKCkKCldlIGxvb2sgYXQg dGhlIGJ5dGUgZm9sbG93aW5nIEdSRSBvcHRpb25zIHRvIGV2ZW50dWFsbHkgZGVjaWRlCmlmIHRo ZSBvcHRpb25zIGFyZSBmb3VyIGJ5dGVzIGxvbmdlci4KClVzZSBza2JfaGVhZGVyX3BvaW50ZXIo KSB0byBub3QgcHVsbCBieXRlcyBpZiB3ZSBmb3VuZAp0aGF0IG5vIG1vcmUgYnl0ZXMgd2VyZSBu ZWVkZWQuCgpBbGwgY2FsbGVycyBvZiBncmVfcGFyc2VfaGVhZGVyKCkgYXJlIHByb3Blcmx5IHVz aW5nIHBza2JfbWF5X3B1bGwoKQphbnl3YXkgYmVmb3JlIHByb2NlZWRpbmcgdG8gbmV4dCBoZWFk ZXIuCgpbMV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIHBza2JfbWF5X3B1bGwgaW5jbHVk ZS9saW51eC9za2J1ZmYuaDoyMzAzIFtpbmxpbmVdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBp biBfX2lwdHVubmVsX3B1bGxfaGVhZGVyKzB4MzBjLzB4YmQwIG5ldC9pcHY0L2lwX3R1bm5lbF9j b3JlLmM6OTQKQ1BVOiAxIFBJRDogMTE3ODQgQ29tbTogc3l6LWV4ZWN1dG9yOTQwIE5vdCB0YWlu dGVkIDUuNi4wLXJjMi1zeXprYWxsZXIgIzAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBD b21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIw MTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVd CiBkdW1wX3N0YWNrKzB4MWM5LzB4MjIwIGxpYi9kdW1wX3N0YWNrLmM6MTE4CiBrbXNhbl9yZXBv cnQrMHhmNy8weDFlMCBtbS9rbXNhbi9rbXNhbl9yZXBvcnQuYzoxMTgKIF9fbXNhbl93YXJuaW5n KzB4NTgvMHhhMCBtbS9rbXNhbi9rbXNhbl9pbnN0ci5jOjIxNQogcHNrYl9tYXlfcHVsbCBpbmNs dWRlL2xpbnV4L3NrYnVmZi5oOjIzMDMgW2lubGluZV0KIF9faXB0dW5uZWxfcHVsbF9oZWFkZXIr MHgzMGMvMHhiZDAgbmV0L2lwdjQvaXBfdHVubmVsX2NvcmUuYzo5NAogaXB0dW5uZWxfcHVsbF9o ZWFkZXIgaW5jbHVkZS9uZXQvaXBfdHVubmVscy5oOjQxMSBbaW5saW5lXQogZ3JlX3JjdisweDE1 ZS8weDE5YzAgbmV0L2lwdjYvaXA2X2dyZS5jOjYwNgogaXA2X3Byb3RvY29sX2RlbGl2ZXJfcmN1 KzB4MTgxYi8weDIyYzAgbmV0L2lwdjYvaXA2X2lucHV0LmM6NDMyCiBpcDZfaW5wdXRfZmluaXNo IG5ldC9pcHY2L2lwNl9pbnB1dC5jOjQ3MyBbaW5saW5lXQogTkZfSE9PSyBpbmNsdWRlL2xpbnV4 L25ldGZpbHRlci5oOjMwNyBbaW5saW5lXQogaXA2X2lucHV0IG5ldC9pcHY2L2lwNl9pbnB1dC5j OjQ4MiBbaW5saW5lXQogaXA2X21jX2lucHV0KzB4ZGYyLzB4MTQ2MCBuZXQvaXB2Ni9pcDZfaW5w dXQuYzo1NzYKIGRzdF9pbnB1dCBpbmNsdWRlL25ldC9kc3QuaDo0NDIgW2lubGluZV0KIGlwNl9y Y3ZfZmluaXNoIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjc2IFtpbmxpbmVdCiBORl9IT09LIGluY2x1 ZGUvbGludXgvbmV0ZmlsdGVyLmg6MzA3IFtpbmxpbmVdCiBpcHY2X3JjdisweDY4My8weDcxMCBu ZXQvaXB2Ni9pcDZfaW5wdXQuYzozMDYKIF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUgbmV0 L2NvcmUvZGV2LmM6NTE5OCBbaW5saW5lXQogX19uZXRpZl9yZWNlaXZlX3NrYiBuZXQvY29yZS9k ZXYuYzo1MzEyIFtpbmxpbmVdCiBuZXRpZl9yZWNlaXZlX3NrYl9pbnRlcm5hbCBuZXQvY29yZS9k ZXYuYzo1NDAyIFtpbmxpbmVdCiBuZXRpZl9yZWNlaXZlX3NrYisweDY2Yi8weGYyMCBuZXQvY29y ZS9kZXYuYzo1NDYxCiB0dW5fcnhfYmF0Y2hlZCBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjQzMjEg W2lubGluZV0KIHR1bl9nZXRfdXNlcisweDZhZWYvMHg2ZjYwIGRyaXZlcnMvbmV0L3R1bi5jOjE5 OTcKIHR1bl9jaHJfd3JpdGVfaXRlcisweDFmMi8weDM2MCBkcml2ZXJzL25ldC90dW4uYzoyMDI2 CiBjYWxsX3dyaXRlX2l0ZXIgaW5jbHVkZS9saW51eC9mcy5oOjE5MDEgW2lubGluZV0KIG5ld19z eW5jX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo0ODMgW2lubGluZV0KIF9fdmZzX3dyaXRlKzB4YTVh LzB4Y2EwIGZzL3JlYWRfd3JpdGUuYzo0OTYKIHZmc193cml0ZSsweDQ0YS8weDhmMCBmcy9yZWFk X3dyaXRlLmM6NTU4CiBrc3lzX3dyaXRlKzB4MjY3LzB4NDUwIGZzL3JlYWRfd3JpdGUuYzo2MTEK IF9fZG9fc3lzX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo2MjMgW2lubGluZV0KIF9fc2Vfc3lzX3dy aXRlIGZzL3JlYWRfd3JpdGUuYzo2MjAgW2lubGluZV0KIF9faWEzMl9zeXNfd3JpdGUrMHhkYi8w eDEyMCBmcy9yZWFkX3dyaXRlLmM6NjIwCiBkb19zeXNjYWxsXzMyX2lycXNfb24gYXJjaC94ODYv ZW50cnkvY29tbW9uLmM6MzM5IFtpbmxpbmVdCiBkb19mYXN0X3N5c2NhbGxfMzIrMHgzYzcvMHg2 ZTAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6NDEwCiBlbnRyeV9TWVNFTlRFUl9jb21wYXQrMHg2 OC8weDc3IGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TOjEzOQpSSVA6IDAwMjM6MHhm N2Y2MmQ5OQpDb2RlOiA5MCBlOCAwYiAwMCAwMCAwMCBmMyA5MCAwZiBhZSBlOCBlYiBmOSA4ZCA3 NCAyNiAwMCA4OSAzYyAyNCBjMyA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA1 MSA1MiA1NSA4OSBlNSAwZiAzNCBjZCA4MCA8NWQ+IDVhIDU5IGMzIDkwIDkwIDkwIDkwIGViIDBk IDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkwClJTUDogMDAyYjowMDAwMDAwMGZm ZmVkYjJjIEVGTEFHUzogMDAwMDAyMTcgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAwMDQKUkFYOiBm ZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMyBSQ1g6IDAwMDAwMDAwMjAwMDI1 ODAKUkRYOiAwMDAwMDAwMDAwMDAwZmNhIFJTSTogMDAwMDAwMDAwMDAwMDAzNiBSREk6IDAwMDAw MDAwMDAwMDAwMDQKUkJQOiAwMDAwMDAwMDAwMDA4OTE0IFIwODogMDAwMDAwMDAwMDAwMDAwMCBS MDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAw MDAwMDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDog MDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKClVuaW5pdCB3YXMgY3JlYXRl ZCBhdDoKIGttc2FuX3NhdmVfc3RhY2tfd2l0aF9mbGFncyBtbS9rbXNhbi9rbXNhbi5jOjE0NCBb aW5saW5lXQoga21zYW5faW50ZXJuYWxfcG9pc29uX3NoYWRvdysweDY2LzB4ZDAgbW0va21zYW4v a21zYW4uYzoxMjcKIGttc2FuX3NsYWJfYWxsb2MrMHg4YS8weGUwIG1tL2ttc2FuL2ttc2FuX2hv b2tzLmM6ODIKIHNsYWJfYWxsb2Nfbm9kZSBtbS9zbHViLmM6Mjc5MyBbaW5saW5lXQogX19rbWFs bG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4YjQwLzB4MTIwMCBtbS9zbHViLmM6NDQwMQogX19rbWFs bG9jX3Jlc2VydmUgbmV0L2NvcmUvc2tidWZmLmM6MTQyIFtpbmxpbmVdCiBfX2FsbG9jX3NrYisw eDJmZC8weGFjMCBuZXQvY29yZS9za2J1ZmYuYzoyMTAKIGFsbG9jX3NrYiBpbmNsdWRlL2xpbnV4 L3NrYnVmZi5oOjEwNTEgW2lubGluZV0KIGFsbG9jX3NrYl93aXRoX2ZyYWdzKzB4MThjLzB4YTcw IG5ldC9jb3JlL3NrYnVmZi5jOjU3NjYKIHNvY2tfYWxsb2Nfc2VuZF9wc2tiKzB4YWRhLzB4YzYw IG5ldC9jb3JlL3NvY2suYzoyMjQyCiB0dW5fYWxsb2Nfc2tiIGRyaXZlcnMvbmV0L3R1bi5jOjE1 MjkgW2lubGluZV0KIHR1bl9nZXRfdXNlcisweDEwYWUvMHg2ZjYwIGRyaXZlcnMvbmV0L3R1bi5j OjE4NDMKIHR1bl9jaHJfd3JpdGVfaXRlcisweDFmMi8weDM2MCBkcml2ZXJzL25ldC90dW4uYzoy MDI2CiBjYWxsX3dyaXRlX2l0ZXIgaW5jbHVkZS9saW51eC9mcy5oOjE5MDEgW2lubGluZV0KIG5l d19zeW5jX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo0ODMgW2lubGluZV0KIF9fdmZzX3dyaXRlKzB4 YTVhLzB4Y2EwIGZzL3JlYWRfd3JpdGUuYzo0OTYKIHZmc193cml0ZSsweDQ0YS8weDhmMCBmcy9y ZWFkX3dyaXRlLmM6NTU4CiBrc3lzX3dyaXRlKzB4MjY3LzB4NDUwIGZzL3JlYWRfd3JpdGUuYzo2 MTEKIF9fZG9fc3lzX3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo2MjMgW2lubGluZV0KIF9fc2Vfc3lz X3dyaXRlIGZzL3JlYWRfd3JpdGUuYzo2MjAgW2lubGluZV0KIF9faWEzMl9zeXNfd3JpdGUrMHhk Yi8weDEyMCBmcy9yZWFkX3dyaXRlLmM6NjIwCiBkb19zeXNjYWxsXzMyX2lycXNfb24gYXJjaC94 ODYvZW50cnkvY29tbW9uLmM6MzM5IFtpbmxpbmVdCiBkb19mYXN0X3N5c2NhbGxfMzIrMHgzYzcv MHg2ZTAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6NDEwCiBlbnRyeV9TWVNFTlRFUl9jb21wYXQr MHg2OC8weDc3IGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0X2NvbXBhdC5TOjEzOQoKRml4ZXM6IDk1 ZjVjNjRjM2MxMyAoImdyZTogTW92ZSB1dGlsaXR5IGZ1bmN0aW9ucyB0byBjb21tb24gaGVhZGVy cyIpCkZpeGVzOiBjNTQ0MTkzMjE0NTUgKCJHUkU6IFJlZmFjdG9yIEdSRSB0dW5uZWxpbmcgY29k ZS4iKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJl cG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQv Z3JlX2RlbXV4LmMgfCAxMiArKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2dyZV9kZW11eC5j IGIvbmV0L2lwdjQvZ3JlX2RlbXV4LmMKaW5kZXggNWZkNmU4ZWQwMmI1Li42NmZkYmZlNTQ0N2Mg MTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2dyZV9kZW11eC5jCisrKyBiL25ldC9pcHY0L2dyZV9kZW11 eC5jCkBAIC01Niw3ICs1Niw5IEBAIGludCBncmVfZGVsX3Byb3RvY29sKGNvbnN0IHN0cnVjdCBn cmVfcHJvdG9jb2wgKnByb3RvLCB1OCB2ZXJzaW9uKQogfQogRVhQT1JUX1NZTUJPTF9HUEwoZ3Jl X2RlbF9wcm90b2NvbCk7CiAKLS8qIEZpbGxzIGluIHRwaSBhbmQgcmV0dXJucyBoZWFkZXIgbGVu Z3RoIHRvIGJlIHB1bGxlZC4gKi8KKy8qIEZpbGxzIGluIHRwaSBhbmQgcmV0dXJucyBoZWFkZXIg bGVuZ3RoIHRvIGJlIHB1bGxlZC4KKyAqIE5vdGUgdGhhdCBjYWxsZXIgbXVzdCB1c2UgcHNrYl9t YXlfcHVsbCgpIGJlZm9yZSBwdWxsaW5nIEdSRSBoZWFkZXIuCisgKi8KIGludCBncmVfcGFyc2Vf aGVhZGVyKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0bmxfcHRrX2luZm8gKnRwaSwKIAkJ ICAgICBib29sICpjc3VtX2VyciwgX19iZTE2IHByb3RvLCBpbnQgbmhzKQogewpAQCAtMTEwLDgg KzExMiwxNCBAQCBpbnQgZ3JlX3BhcnNlX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgdG5sX3B0a19pbmZvICp0cGksCiAJICogLSBXaGVuIGRlYWxpbmcgd2l0aCBXQ0NQdjIsIFNr aXAgZXh0cmEgNCBieXRlcyBpbiBHUkUgaGVhZGVyCiAJICovCiAJaWYgKGdyZWgtPmZsYWdzID09 IDAgJiYgdHBpLT5wcm90byA9PSBodG9ucyhFVEhfUF9XQ0NQKSkgeworCQl1OCBfdmFsLCAqdmFs OworCisJCXZhbCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIG5ocyArIGhkcl9sZW4sCisJCQkJ CSBzaXplb2YoX3ZhbCksICZfdmFsKTsKKwkJaWYgKCF2YWwpCisJCQlyZXR1cm4gLUVJTlZBTDsK IAkJdHBpLT5wcm90byA9IHByb3RvOwotCQlpZiAoKCoodTggKilvcHRpb25zICYgMHhGMCkgIT0g MHg0MCkKKwkJaWYgKCgqdmFsICYgMHhGMCkgIT0gMHg0MCkKIAkJCWhkcl9sZW4gKz0gNDsKIAl9 CiAJdHBpLT5oZHJfbGVuID0gaGRyX2xlbjsKLS0gCjIuMjAuMQoKCkZyb20gMjIzMWQ3MjVkMmY2 MTExNzFlYTNkYWJlNzZhNGNjOWY3NTNmYzM2ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRG1pdHJ5IFlha3VuaW4gPHplaWxAeWFuZGV4LXRlYW0ucnU+CkRhdGU6IFRodSwgNSBNYXIg MjAyMCAxNTozMzoxMiArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMDMvNTJdIGluZXRfZGlhZzogcmV0 dXJuIGNsYXNzaWQgZm9yIGFsbCBzb2NrZXQgdHlwZXMKClsgVXBzdHJlYW0gY29tbWl0IDgzZjcz YzViYjdiOWE5MTM1MTczZjBiYTJiMWFhMDBjMDY2NjRmZjkgXQoKSW4gY29tbWl0IDFlYzE3ZGJk OTBmOCAoImluZXRfZGlhZzogZml4IHJlcG9ydGluZyBjZ3JvdXAgY2xhc3NpZCBhbmQKZmFsbGJh Y2sgdG8gcHJpb3JpdHkiKSBjcm91cCBjbGFzc2lkIHJlcG9ydGluZyB3YXMgZml4ZWQuIEJ1dCB0 aGlzIHdvcmtzCm9ubHkgZm9yIFRDUCBzb2NrZXRzIGJlY2F1c2UgZm9yIG90aGVyIHNvY2tldCB0 eXBlcyBpY3NrIHBhcmFtZXRlciBjYW4KYmUgTlVMTCBhbmQgY2xhc3NpZCBjb2RlIHBhdGggaXMg c2tpcHBlZC4gVGhpcyBjaGFuZ2UgbW92ZXMgY2xhc3NpZApoYW5kbGluZyB0byBpbmV0X2RpYWdf bXNnX2F0dHJzX2ZpbGwoKSBmdW5jdGlvbi4KCkFsc28gaW5ldF9kaWFnX21zZ19hdHRyc19zaXpl KCkgaGVscGVyIHdhcyBhZGRlZCBhbmQgYWRkZW5kcyBpbgpubG1zZ19uZXcoKSB3ZXJlIHJlb3Jk ZXJlZCB0byBzYXZlIG9yZGVyIGZyb20gaW5ldF9za19kaWFnX2ZpbGwoKS4KCkZpeGVzOiAxZWMx N2RiZDkwZjggKCJpbmV0X2RpYWc6IGZpeCByZXBvcnRpbmcgY2dyb3VwIGNsYXNzaWQgYW5kIGZh bGxiYWNrIHRvIHByaW9yaXR5IikKU2lnbmVkLW9mZi1ieTogRG1pdHJ5IFlha3VuaW4gPHplaWxA eWFuZGV4LXRlYW0ucnU+ClJldmlld2VkLWJ5OiBLb25zdGFudGluIEtobGVibmlrb3YgPGtobGVi bmlrb3ZAeWFuZGV4LXRlYW0ucnU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L2luZXRfZGlhZy5oIHwgMTggKysr KysrKysrKy0tLS0tLQogbmV0L2lwdjQvaW5ldF9kaWFnLmMgICAgICB8IDQ0ICsrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogbmV0L2lwdjQvcmF3X2RpYWcuYyAgICAgICB8 ICA1ICsrKy0tCiBuZXQvaXB2NC91ZHBfZGlhZy5jICAgICAgIHwgIDUgKysrLS0KIG5ldC9zY3Rw L2RpYWcuYyAgICAgICAgICAgfCAgOCArKy0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDQwIGluc2Vy dGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvaW5l dF9kaWFnLmggYi9pbmNsdWRlL2xpbnV4L2luZXRfZGlhZy5oCmluZGV4IDM5ZmFhYWY4NDNlMS4u YzkxY2YyZGVlMTJhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2luZXRfZGlhZy5oCisrKyBi L2luY2x1ZGUvbGludXgvaW5ldF9kaWFnLmgKQEAgLTIsMTUgKzIsMTAgQEAKICNpZm5kZWYgX0lO RVRfRElBR19IXwogI2RlZmluZSBfSU5FVF9ESUFHX0hfIDEKIAorI2luY2x1ZGUgPG5ldC9uZXRs aW5rLmg+CiAjaW5jbHVkZSA8dWFwaS9saW51eC9pbmV0X2RpYWcuaD4KIAotc3RydWN0IG5ldDsK LXN0cnVjdCBzb2NrOwogc3RydWN0IGluZXRfaGFzaGluZm87Ci1zdHJ1Y3QgbmxhdHRyOwotc3Ry dWN0IG5sbXNnaGRyOwotc3RydWN0IHNrX2J1ZmY7Ci1zdHJ1Y3QgbmV0bGlua19jYWxsYmFjazsK IAogc3RydWN0IGluZXRfZGlhZ19oYW5kbGVyIHsKIAl2b2lkCQkoKmR1bXApKHN0cnVjdCBza19i dWZmICpza2IsCkBAIC02Miw2ICs1NywxNyBAQCBpbnQgaW5ldF9kaWFnX2JjX3NrKGNvbnN0IHN0 cnVjdCBubGF0dHIgKl9iYywgc3RydWN0IHNvY2sgKnNrKTsKIAogdm9pZCBpbmV0X2RpYWdfbXNn X2NvbW1vbl9maWxsKHN0cnVjdCBpbmV0X2RpYWdfbXNnICpyLCBzdHJ1Y3Qgc29jayAqc2spOwog CitzdGF0aWMgaW5saW5lIHNpemVfdCBpbmV0X2RpYWdfbXNnX2F0dHJzX3NpemUodm9pZCkKK3sK KwlyZXR1cm4JICBubGFfdG90YWxfc2l6ZSgxKSAgLyogSU5FVF9ESUFHX1NIVVRET1dOICovCisJ CSsgbmxhX3RvdGFsX3NpemUoMSkgIC8qIElORVRfRElBR19UT1MgKi8KKyNpZiBJU19FTkFCTEVE KENPTkZJR19JUFY2KQorCQkrIG5sYV90b3RhbF9zaXplKDEpICAvKiBJTkVUX0RJQUdfVENMQVNT ICovCisJCSsgbmxhX3RvdGFsX3NpemUoMSkgIC8qIElORVRfRElBR19TS1Y2T05MWSAqLworI2Vu ZGlmCisJCSsgbmxhX3RvdGFsX3NpemUoNCkgIC8qIElORVRfRElBR19NQVJLICovCisJCSsgbmxh X3RvdGFsX3NpemUoNCk7IC8qIElORVRfRElBR19DTEFTU19JRCAqLworfQogaW50IGluZXRfZGlh Z19tc2dfYXR0cnNfZmlsbChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJ CQkgICAgIHN0cnVjdCBpbmV0X2RpYWdfbXNnICpyLCBpbnQgZXh0LAogCQkJICAgICBzdHJ1Y3Qg dXNlcl9uYW1lc3BhY2UgKnVzZXJfbnMsIGJvb2wgbmV0X2FkbWluKTsKZGlmZiAtLWdpdCBhL25l dC9pcHY0L2luZXRfZGlhZy5jIGIvbmV0L2lwdjQvaW5ldF9kaWFnLmMKaW5kZXggNmE0YzgyZjk2 ZTc4Li41YjY4YmRhYThiZmYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfZGlhZy5jCisrKyBi L25ldC9pcHY0L2luZXRfZGlhZy5jCkBAIC0xMDAsMTMgKzEwMCw5IEBAIHN0YXRpYyBzaXplX3Qg aW5ldF9za19hdHRyX3NpemUoc3RydWN0IHNvY2sgKnNrLAogCQlhdXggPSBoYW5kbGVyLT5pZGlh Z19nZXRfYXV4X3NpemUoc2ssIG5ldF9hZG1pbik7CiAKIAlyZXR1cm4JICBubGFfdG90YWxfc2l6 ZShzaXplb2Yoc3RydWN0IHRjcF9pbmZvKSkKLQkJKyBubGFfdG90YWxfc2l6ZSgxKSAvKiBJTkVU X0RJQUdfU0hVVERPV04gKi8KLQkJKyBubGFfdG90YWxfc2l6ZSgxKSAvKiBJTkVUX0RJQUdfVE9T ICovCi0JCSsgbmxhX3RvdGFsX3NpemUoMSkgLyogSU5FVF9ESUFHX1RDTEFTUyAqLwotCQkrIG5s YV90b3RhbF9zaXplKDQpIC8qIElORVRfRElBR19NQVJLICovCi0JCSsgbmxhX3RvdGFsX3NpemUo NCkgLyogSU5FVF9ESUFHX0NMQVNTX0lEICovCi0JCSsgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHN0 cnVjdCBpbmV0X2RpYWdfbWVtaW5mbykpCiAJCSsgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHN0cnVj dCBpbmV0X2RpYWdfbXNnKSkKKwkJKyBpbmV0X2RpYWdfbXNnX2F0dHJzX3NpemUoKQorCQkrIG5s YV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21lbWluZm8pKQogCQkrIG5sYV90 b3RhbF9zaXplKFNLX01FTUlORk9fVkFSUyAqIHNpemVvZih1MzIpKQogCQkrIG5sYV90b3RhbF9z aXplKFRDUF9DQV9OQU1FX01BWCkKIAkJKyBubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0IHRj cHZlZ2FzX2luZm8pKQpAQCAtMTQ3LDYgKzE0MywyNCBAQCBpbnQgaW5ldF9kaWFnX21zZ19hdHRy c19maWxsKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAlpZiAobmV0X2Fk bWluICYmIG5sYV9wdXRfdTMyKHNrYiwgSU5FVF9ESUFHX01BUkssIHNrLT5za19tYXJrKSkKIAkJ Z290byBlcnJvdXQ7CiAKKwlpZiAoZXh0ICYgKDEgPDwgKElORVRfRElBR19DTEFTU19JRCAtIDEp KSB8fAorCSAgICBleHQgJiAoMSA8PCAoSU5FVF9ESUFHX1RDTEFTUyAtIDEpKSkgeworCQl1MzIg Y2xhc3NpZCA9IDA7CisKKyNpZmRlZiBDT05GSUdfU09DS19DR1JPVVBfREFUQQorCQljbGFzc2lk ID0gc29ja19jZ3JvdXBfY2xhc3NpZCgmc2stPnNrX2NncnBfZGF0YSk7CisjZW5kaWYKKwkJLyog RmFsbGJhY2sgdG8gc29ja2V0IHByaW9yaXR5IGlmIGNsYXNzIGlkIGlzbid0IHNldC4KKwkJICog Q2xhc3NmdWwgcWRpc2NzIHVzZSBpdCBhcyBkaXJlY3QgcmVmZXJlbmNlIHRvIGNsYXNzLgorCQkg KiBGb3IgY2dyb3VwMiBjbGFzc2lkIGlzIGFsd2F5cyB6ZXJvLgorCQkgKi8KKwkJaWYgKCFjbGFz c2lkKQorCQkJY2xhc3NpZCA9IHNrLT5za19wcmlvcml0eTsKKworCQlpZiAobmxhX3B1dF91MzIo c2tiLCBJTkVUX0RJQUdfQ0xBU1NfSUQsIGNsYXNzaWQpKQorCQkJZ290byBlcnJvdXQ7CisJfQor CiAJci0+aWRpYWdfdWlkID0gZnJvbV9rdWlkX211bmdlZCh1c2VyX25zLCBzb2NrX2lfdWlkKHNr KSk7CiAJci0+aWRpYWdfaW5vZGUgPSBzb2NrX2lfaW5vKHNrKTsKIApAQCAtMjg0LDI0ICsyOTgs NiBAQCBpbnQgaW5ldF9za19kaWFnX2ZpbGwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgaW5ldF9j b25uZWN0aW9uX3NvY2sgKmljc2ssCiAJCQlnb3RvIGVycm91dDsKIAl9CiAKLQlpZiAoZXh0ICYg KDEgPDwgKElORVRfRElBR19DTEFTU19JRCAtIDEpKSB8fAotCSAgICBleHQgJiAoMSA8PCAoSU5F VF9ESUFHX1RDTEFTUyAtIDEpKSkgewotCQl1MzIgY2xhc3NpZCA9IDA7Ci0KLSNpZmRlZiBDT05G SUdfU09DS19DR1JPVVBfREFUQQotCQljbGFzc2lkID0gc29ja19jZ3JvdXBfY2xhc3NpZCgmc2st PnNrX2NncnBfZGF0YSk7Ci0jZW5kaWYKLQkJLyogRmFsbGJhY2sgdG8gc29ja2V0IHByaW9yaXR5 IGlmIGNsYXNzIGlkIGlzbid0IHNldC4KLQkJICogQ2xhc3NmdWwgcWRpc2NzIHVzZSBpdCBhcyBk aXJlY3QgcmVmZXJlbmNlIHRvIGNsYXNzLgotCQkgKiBGb3IgY2dyb3VwMiBjbGFzc2lkIGlzIGFs d2F5cyB6ZXJvLgotCQkgKi8KLQkJaWYgKCFjbGFzc2lkKQotCQkJY2xhc3NpZCA9IHNrLT5za19w cmlvcml0eTsKLQotCQlpZiAobmxhX3B1dF91MzIoc2tiLCBJTkVUX0RJQUdfQ0xBU1NfSUQsIGNs YXNzaWQpKQotCQkJZ290byBlcnJvdXQ7Ci0JfQotCiBvdXQ6CiAJbmxtc2dfZW5kKHNrYiwgbmxo KTsKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Jhd19kaWFnLmMgYi9uZXQvaXB2 NC9yYXdfZGlhZy5jCmluZGV4IGUzNTczNmI5OTMwMC4uYTkzZTdkMWUxMjUxIDEwMDY0NAotLS0g YS9uZXQvaXB2NC9yYXdfZGlhZy5jCisrKyBiL25ldC9pcHY0L3Jhd19kaWFnLmMKQEAgLTEwMCw4 ICsxMDAsOSBAQCBzdGF0aWMgaW50IHJhd19kaWFnX2R1bXBfb25lKHN0cnVjdCBza19idWZmICpp bl9za2IsCiAJaWYgKElTX0VSUihzaykpCiAJCXJldHVybiBQVFJfRVJSKHNrKTsKIAotCXJlcCA9 IG5sbXNnX25ldyhzaXplb2Yoc3RydWN0IGluZXRfZGlhZ19tc2cpICsKLQkJCXNpemVvZihzdHJ1 Y3QgaW5ldF9kaWFnX21lbWluZm8pICsgNjQsCisJcmVwID0gbmxtc2dfbmV3KG5sYV90b3RhbF9z aXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21zZykpICsKKwkJCWluZXRfZGlhZ19tc2dfYXR0 cnNfc2l6ZSgpICsKKwkJCW5sYV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21l bWluZm8pKSArIDY0LAogCQkJR0ZQX0tFUk5FTCk7CiAJaWYgKCFyZXApIHsKIAkJc29ja19wdXQo c2spOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdWRwX2RpYWcuYyBiL25ldC9pcHY0L3VkcF9kaWFn LmMKaW5kZXggOTEwNTU1YTRkOWZlLi5kY2NkMjI4NmJjMjggMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L3VkcF9kaWFnLmMKKysrIGIvbmV0L2lwdjQvdWRwX2RpYWcuYwpAQCAtNjQsOCArNjQsOSBAQCBz dGF0aWMgaW50IHVkcF9kdW1wX29uZShzdHJ1Y3QgdWRwX3RhYmxlICp0YmwsIHN0cnVjdCBza19i dWZmICppbl9za2IsCiAJCWdvdG8gb3V0OwogCiAJZXJyID0gLUVOT01FTTsKLQlyZXAgPSBubG1z Z19uZXcoc2l6ZW9mKHN0cnVjdCBpbmV0X2RpYWdfbXNnKSArCi0JCQlzaXplb2Yoc3RydWN0IGlu ZXRfZGlhZ19tZW1pbmZvKSArIDY0LAorCXJlcCA9IG5sbXNnX25ldyhubGFfdG90YWxfc2l6ZShz aXplb2Yoc3RydWN0IGluZXRfZGlhZ19tc2cpKSArCisJCQlpbmV0X2RpYWdfbXNnX2F0dHJzX3Np emUoKSArCisJCQlubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0IGluZXRfZGlhZ19tZW1pbmZv KSkgKyA2NCwKIAkJCUdGUF9LRVJORUwpOwogCWlmICghcmVwKQogCQlnb3RvIG91dDsKZGlmZiAt LWdpdCBhL25ldC9zY3RwL2RpYWcuYyBiL25ldC9zY3RwL2RpYWcuYwppbmRleCAwODUxMTY2Yjkx NzUuLmJhOWY2NGZkZmQyMyAxMDA2NDQKLS0tIGEvbmV0L3NjdHAvZGlhZy5jCisrKyBiL25ldC9z Y3RwL2RpYWcuYwpAQCAtMjM3LDE1ICsyMzcsMTEgQEAgc3RhdGljIHNpemVfdCBpbmV0X2Fzc29j X2F0dHJfc2l6ZShzdHJ1Y3Qgc2N0cF9hc3NvY2lhdGlvbiAqYXNvYykKIAkJYWRkcmNudCsrOwog CiAJcmV0dXJuCSAgbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHN0cnVjdCBzY3RwX2luZm8pKQotCQkr IG5sYV90b3RhbF9zaXplKDEpIC8qIElORVRfRElBR19TSFVURE9XTiAqLwotCQkrIG5sYV90b3Rh bF9zaXplKDEpIC8qIElORVRfRElBR19UT1MgKi8KLQkJKyBubGFfdG90YWxfc2l6ZSgxKSAvKiBJ TkVUX0RJQUdfVENMQVNTICovCi0JCSsgbmxhX3RvdGFsX3NpemUoNCkgLyogSU5FVF9ESUFHX01B UksgKi8KLQkJKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJTkVUX0RJQUdfQ0xBU1NfSUQgKi8KIAkJ KyBubGFfdG90YWxfc2l6ZShhZGRybGVuICogYXNvYy0+cGVlci50cmFuc3BvcnRfY291bnQpCiAJ CSsgbmxhX3RvdGFsX3NpemUoYWRkcmxlbiAqIGFkZHJjbnQpCi0JCSsgbmxhX3RvdGFsX3NpemUo c2l6ZW9mKHN0cnVjdCBpbmV0X2RpYWdfbWVtaW5mbykpCiAJCSsgbmxhX3RvdGFsX3NpemUoc2l6 ZW9mKHN0cnVjdCBpbmV0X2RpYWdfbXNnKSkKKwkJKyBpbmV0X2RpYWdfbXNnX2F0dHJzX3NpemUo KQorCQkrIG5sYV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21lbWluZm8pKQog CQkrIDY0OwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIGNhNzJhYjJiMTMxMTU2ZGVjY2RjZDcwZjM5 OTA1OWE5ZDkwZTVhMTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1 IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxMCBNYXIgMjAyMCAxNToyNzozNyAr MDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQvNTJdIGlwdjYvYWRkcmNvbmY6IGNhbGwgaXB2Nl9tY191 cCgpIGZvciBub24tRXRoZXJuZXQKIGludGVyZmFjZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50 LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu ZzogOGJpdAoKWyBVcHN0cmVhbSBjb21taXQgNjAzODA0ODhlNGUwYjk1ZTllODJhYTY4YWE5NzA1 YmFhODZkZTg0YyBdCgpSYWZhxYIgZm91bmQgYW4gaXNzdWUgdGhhdCBmb3Igbm9uLUV0aGVybmV0 IGludGVyZmFjZSwgaWYgd2UgZG93biBhbmQgdXAKZnJlcXVlbnRseSwgdGhlIG1lbW9yeSB3aWxs IGJlIGNvbnN1bWVkIHNsb3dseS4KClRoZSByZWFzb24gaXMgd2UgYWRkIGFsbG5vZGVzL2FsbHJv dXRlcnMgYWRkcmVzc2VkIGluIG11bHRpY2FzdCBsaXN0IGluCmlwdjZfYWRkX2RldigpLiBXaGVu IGxpbmsgZG93biwgd2UgY2FsbCBpcHY2X21jX2Rvd24oKSwgc3RvcmUgYWxsIG11bHRpY2FzdAph ZGRyZXNzZXMgdmlhIG1sZF9hZGRfZGVscmVjKCkuIEJ1dCB3aGVuIGxpbmsgdXAsIHdlIGRvbid0 IGNhbGwgaXB2Nl9tY191cCgpCmZvciBub24tRXRoZXJuZXQgaW50ZXJmYWNlIHRvIHJlbW92ZSB0 aGUgYWRkcmVzc2VzLiBUaGlzIG1ha2VzIGlkZXYtPm1jX3RvbWIKZ2V0dGluZyBiaWdnZXIgYW5k IGJpZ2dlci4gVGhlIGNhbGwgc3RhY2sgbG9va3MgbGlrZToKCmFkZHJjb25mX25vdGlmeShORVRE RVZfUkVHSVNURVIpCglpcHY2X2FkZF9kZXYKCQlpcHY2X2Rldl9tY19pbmMoZmYwMTo6MSkKCQlp cHY2X2Rldl9tY19pbmMoZmYwMjo6MSkKCQlpcHY2X2Rldl9tY19pbmMoZmYwMjo6MikKCmFkZHJj b25mX25vdGlmeShORVRERVZfVVApCglhZGRyY29uZl9kZXZfY29uZmlnCgkJLyogQWxhcywgd2Ug c3VwcG9ydCBvbmx5IEV0aGVybmV0IGF1dG9jb25maWd1cmF0aW9uLiAqLwoJCXJldHVybjsKCmFk ZHJjb25mX25vdGlmeShORVRERVZfRE9XTikKCWFkZHJjb25mX2lmZG93bgoJCWlwdjZfbWNfZG93 bgoJCQlpZ21wNl9ncm91cF9kcm9wcGVkKGZmMDI6OjIpCgkJCQltbGRfYWRkX2RlbHJlYyhmZjAy OjoyKQoJCQlpZ21wNl9ncm91cF9kcm9wcGVkKGZmMDI6OjEpCgkJCWlnbXA2X2dyb3VwX2Ryb3Bw ZWQoZmYwMTo6MSkKCkFmdGVyIGludmVzdGlnYXRpbmcsIEkgY2FuJ3QgZm91bmQgYSBydWxlIHRv IGRpc2FibGUgbXVsdGljYXN0IG9uCm5vbi1FdGhlcm5ldCBpbnRlcmZhY2UuIEluIFJGQzI0NjAs IHRoZSBsaW5rIGNvdWxkIGJlIEV0aGVybmV0LCBQUFAsIEFUTSwKdHVubmVscywgZXRjLiBJbiBJ UHY0LCBpdCBkb2Vzbid0IGNoZWNrIHRoZSBkZXYgdHlwZSB3aGVuIGNhbGxzIGlwX21jX3VwKCkK aW4gaW5ldGRldl9ldmVudCgpLiBFdmVuIGZvciBJUHY2LCB3ZSBkb24ndCBjaGVjayB0aGUgZGV2 IHR5cGUgYW5kIGNhbGwKaXB2Nl9hZGRfZGV2KCksIGlwdjZfZGV2X21jX2luYygpIGFmdGVyIHJl Z2lzdGVyIGRldmljZS4KClNvIEkgdGhpbmsgaXQncyBPSyB0byBmaXggdGhpcyBtZW1vcnkgY29u c3VtZXIgYnkgY2FsbGluZyBpcHY2X21jX3VwKCkgZm9yCm5vbi1FdGhlcm5ldCBpbnRlcmZhY2Uu Cgp2MjogQWxzbyBjaGVjayBJRkZfTVVMVElDQVNUIGZsYWcgdG8gbWFrZSBzdXJlIHRoZSBpbnRl cmZhY2Ugc3VwcG9ydHMKICAgIG11bHRpY2FzdAoKUmVwb3J0ZWQtYnk6IFJhZmHFgiBNacWCZWNr aSA8emFqZWM1QGdtYWlsLmNvbT4KVGVzdGVkLWJ5OiBSYWZhxYIgTWnFgmVja2kgPHphamVjNUBn bWFpbC5jb20+CkZpeGVzOiA3NDIzNWEyNWM2NzMgKCJbSVBWNl0gYWRkcmNvbmY6IEZpeCBJUHY2 IG9uIHR1bnRhcCB0dW5uZWxzIikKRml4ZXM6IDE2NjZkNDllMWQ0MSAoIm1sZDogZG8gbm90IHJl bW92ZSBtbGQgc291Y2UgbGlzdCBpbmZvIHdoZW4gc2V0IGxpbmsgZG93biIpClNpZ25lZC1vZmYt Ynk6IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2L2FkZHJjb25m LmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9hZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCBiMTFjY2I1 M2M3ZTAuLjY5ZTg5YmFiYTE4MyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysg Yi9uZXQvaXB2Ni9hZGRyY29uZi5jCkBAIC0zMzQ1LDYgKzMzNDUsMTAgQEAgc3RhdGljIHZvaWQg YWRkcmNvbmZfZGV2X2NvbmZpZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCSAgICAoZGV2LT50 eXBlICE9IEFSUEhSRF9OT05FKSAmJgogCSAgICAoZGV2LT50eXBlICE9IEFSUEhSRF9SQVdJUCkp IHsKIAkJLyogQWxhcywgd2Ugc3VwcG9ydCBvbmx5IEV0aGVybmV0IGF1dG9jb25maWd1cmF0aW9u LiAqLworCQlpZGV2ID0gX19pbjZfZGV2X2dldChkZXYpOworCQlpZiAoIUlTX0VSUl9PUl9OVUxM KGlkZXYpICYmIGRldi0+ZmxhZ3MgJiBJRkZfVVAgJiYKKwkJICAgIGRldi0+ZmxhZ3MgJiBJRkZf TVVMVElDQVNUKQorCQkJaXB2Nl9tY191cChpZGV2KTsKIAkJcmV0dXJuOwogCX0KIAotLSAKMi4y MC4xCgoKRnJvbSA1MDQyNTUzNDExNzhiOTIzOTM5NTAzOTNkMjU3NzQ0MDk0NWYzMGY3IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWhlc2ggQmFuZGV3YXIgPG1haGVzaGJAZ29vZ2xl LmNvbT4KRGF0ZTogTW9uLCA5IE1hciAyMDIwIDE1OjU3OjAyIC0wNzAwClN1YmplY3Q6IFtQQVRD SCAwNS81Ml0gaXB2bGFuOiBhZGQgY29uZF9yZXNjaGVkX3JjdSgpIHdoaWxlIHByb2Nlc3NpbmcK IG11dGljYXN0IGJhY2tsb2cKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBz dHJlYW0gY29tbWl0IGUxOGIzNTNmMTAyZTM3MTU4MGYzZjAxZGQ0NzU2N2EyNWFjYzNjMWQgXQoK SWYgdGhlcmUgYXJlIHN1YnN0YW50aWFsIG51bWJlciBvZiBzbGF2ZXMgY3JlYXRlZCBhcyBzaW11 bGF0ZWQgYnkKU3l6Ym90LCB0aGUgYmFja2xvZyBwcm9jZXNzaW5nIGNvdWxkIHRha2UgbXVjaCBs b25nZXIgYW5kIHJlc3VsdAppbnRvIHRoZSBpc3N1ZSBmb3VuZCBpbiB0aGUgU3l6Ym90IHJlcG9y dC4KCklORk86IHJjdV9zY2hlZCBkZXRlY3RlZCBzdGFsbHMgb24gQ1BVcy90YXNrczoKICAgICAg ICAoZGV0ZWN0ZWQgYnkgMSwgdD0xMDUwMiBqaWZmaWVzLCBnPTUwNDksIGM9NTA0OCwgcT03NTIp CkFsbCBRU2VzIHNlZW4sIGxhc3QgcmN1X3NjaGVkIGt0aHJlYWQgYWN0aXZpdHkgMTA1MDIgKDQy OTQ5NjU1NjMtNDI5NDk1NTA2MSksIGppZmZpZXNfdGlsbF9uZXh0X2Zxcz0xLCByb290IC0+cXNt YXNrIDB4MApzeXotZXhlY3V0b3IuMSAgUiAgcnVubmluZyB0YXNrIG9uIGNwdSAgIDEgIDEwOTg0 IDExMjEwICAgMzg2NiAweDMwMDIwMDA4IDE3OTAzNDQ5MTI3MApDYWxsIFRyYWNlOgogPElSUT4K IFs8ZmZmZmZmZmY4MTQ5NzE2Mz5dIF9zY2hlZF9zaG93X3Rhc2sga2VybmVsL3NjaGVkL2NvcmUu Yzo4MDYzIFtpbmxpbmVdCiBbPGZmZmZmZmZmODE0OTcxNjM+XSBfc2NoZWRfc2hvd190YXNrLmNv bGQrMHgyZmQvMHgzOTIga2VybmVsL3NjaGVkL2NvcmUuYzo4MDMwCiBbPGZmZmZmZmZmODE0NmE5 MWI+XSBzY2hlZF9zaG93X3Rhc2srMHhiLzB4MTAga2VybmVsL3NjaGVkL2NvcmUuYzo4MDczCiBb PGZmZmZmZmZmODE1YzkzMWI+XSBwcmludF9vdGhlcl9jcHVfc3RhbGwga2VybmVsL3JjdS90cmVl LmM6MTU3NyBbaW5saW5lXQogWzxmZmZmZmZmZjgxNWM5MzFiPl0gY2hlY2tfY3B1X3N0YWxsIGtl cm5lbC9yY3UvdHJlZS5jOjE2OTUgW2lubGluZV0KIFs8ZmZmZmZmZmY4MTVjOTMxYj5dIF9fcmN1 X3BlbmRpbmcga2VybmVsL3JjdS90cmVlLmM6MzQ3OCBbaW5saW5lXQogWzxmZmZmZmZmZjgxNWM5 MzFiPl0gcmN1X3BlbmRpbmcga2VybmVsL3JjdS90cmVlLmM6MzU0MCBbaW5saW5lXQogWzxmZmZm ZmZmZjgxNWM5MzFiPl0gcmN1X2NoZWNrX2NhbGxiYWNrcy5jb2xkKzB4YmI0LzB4YzI5IGtlcm5l bC9yY3UvdHJlZS5jOjI4NzYKIFs8ZmZmZmZmZmY4MTVlMzk2Mj5dIHVwZGF0ZV9wcm9jZXNzX3Rp bWVzKzB4MzIvMHg4MCBrZXJuZWwvdGltZS90aW1lci5jOjE2MzUKIFs8ZmZmZmZmZmY4MTYxNjRm MD5dIHRpY2tfc2NoZWRfaGFuZGxlKzB4YTAvMHgxODAga2VybmVsL3RpbWUvdGljay1zY2hlZC5j OjE2MQogWzxmZmZmZmZmZjgxNjE2YWU0Pl0gdGlja19zY2hlZF90aW1lcisweDQ0LzB4MTMwIGtl cm5lbC90aW1lL3RpY2stc2NoZWQuYzoxMTkzCiBbPGZmZmZmZmZmODE1ZTc1Zjc+XSBfX3J1bl9o cnRpbWVyIGtlcm5lbC90aW1lL2hydGltZXIuYzoxMzkzIFtpbmxpbmVdCiBbPGZmZmZmZmZmODE1 ZTc1Zjc+XSBfX2hydGltZXJfcnVuX3F1ZXVlcysweDMwNy8weGQ5MCBrZXJuZWwvdGltZS9ocnRp bWVyLmM6MTQ1NQogWzxmZmZmZmZmZjgxNWU5MGVhPl0gaHJ0aW1lcl9pbnRlcnJ1cHQrMHgyZWEv MHg3MzAga2VybmVsL3RpbWUvaHJ0aW1lci5jOjE1MTMKIFs8ZmZmZmZmZmY4NDQwNTBmND5dIGxv Y2FsX2FwaWNfdGltZXJfaW50ZXJydXB0IGFyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYzoxMDMx IFtpbmxpbmVdCiBbPGZmZmZmZmZmODQ0MDUwZjQ+XSBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQr MHgxNDQvMHg1ZTAgYXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jOjEwNTYKIFs8ZmZmZmZmZmY4 NDQwMWNiZT5dIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4OGUvMHhhMCBhcmNoL3g4Ni9lbnRyeS9l bnRyeV82NC5TOjc3OApSSVA6IDAwMTA6ZG9fcmF3X3JlYWRfbG9jaysweDIyLzB4ODAga2VybmVs L2xvY2tpbmcvc3BpbmxvY2tfZGVidWcuYzoxNTMKUlNQOiAwMDE4OmZmZmY4ODAxZGFkMDdhYjgg RUZMQUdTOiAwMDAwMGEwMiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmYxMgpSQVg6IDAwMDAwMDAw MDAwMDAwMDAgUkJYOiBmZmZmODgwMWM0MTM1NjgwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApSRFg6 IDFmZmZmMTAwMzg4MjZhZmUgUlNJOiBmZmZmODgwMTlkODE2YmI4IFJESTogZmZmZjg4MDFjNDEz NTdmMApSQlA6IGZmZmY4ODAxZGFkMDdhYzAgUjA4OiAwMDAwMDAwMDAwMDA0YjE1IFIwOTogMDAw MDAwMDAwMDMxMDI3MwpSMTA6IGZmZmY4ODAxOWQ4MTZiYjggUjExOiAwMDAwMDAwMDAwMDAwMDAx IFIxMjogZmZmZjg4MDFjNDEzNTdlOApSMTM6IDAwMDAwMDAwMDAwMDAwMDAgUjE0OiBmZmZmODgw MWNmYjE5ODUwIFIxNTogZmZmZjg4MDFjZmIxOThiMAogWzxmZmZmZmZmZjgxMDE0NjBlPl0gX19y YXdfcmVhZF9sb2NrX2JoIGluY2x1ZGUvbGludXgvcndsb2NrX2FwaV9zbXAuaDoxNzcgW2lubGlu ZV0KIFs8ZmZmZmZmZmY4MTAxNDYwZT5dIF9yYXdfcmVhZF9sb2NrX2JoKzB4M2UvMHg1MCBrZXJu ZWwvbG9ja2luZy9zcGlubG9jay5jOjI0MAogWzxmZmZmZmZmZjg0MGQ3OGNhPl0gaXB2Nl9jaGtf bWNhc3RfYWRkcisweDExYS8weDZmMCBuZXQvaXB2Ni9tY2FzdC5jOjEwMDYKIFs8ZmZmZmZmZmY4 NDAyMzQzOT5dIGlwNl9tY19pbnB1dCsweDMxOS8weDhlMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo0 ODIKIFs8ZmZmZmZmZmY4NDAyMTFjOD5dIGRzdF9pbnB1dCBpbmNsdWRlL25ldC9kc3QuaDo0NDkg W2lubGluZV0KIFs8ZmZmZmZmZmY4NDAyMTFjOD5dIGlwNl9yY3ZfZmluaXNoKzB4NDA4LzB4NjEw IG5ldC9pcHY2L2lwNl9pbnB1dC5jOjc4CiBbPGZmZmZmZmZmODQwMjE0ZGU+XSBORl9IT09LIGlu Y2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6MjkyIFtpbmxpbmVdCiBbPGZmZmZmZmZmODQwMjE0ZGU+ XSBORl9IT09LIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjg2IFtpbmxpbmVdCiBbPGZmZmZm ZmZmODQwMjE0ZGU+XSBpcHY2X3JjdisweDEwZS8weDQyMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzoy NzgKIFs8ZmZmZmZmZmY4M2EyOWVmYT5dIF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHgx MmEvMHgxZjAgbmV0L2NvcmUvZGV2LmM6NTMwMwogWzxmZmZmZmZmZjgzYTJhMTVjPl0gX19uZXRp Zl9yZWNlaXZlX3NrYisweDJjLzB4MWIwIG5ldC9jb3JlL2Rldi5jOjU0MTcKIFs8ZmZmZmZmZmY4 M2EyZjUzNj5dIHByb2Nlc3NfYmFja2xvZysweDIxNi8weDZjMCBuZXQvY29yZS9kZXYuYzo2MjQz CiBbPGZmZmZmZmZmODNhMzBkMWI+XSBuYXBpX3BvbGwgbmV0L2NvcmUvZGV2LmM6NjY4MCBbaW5s aW5lXQogWzxmZmZmZmZmZjgzYTMwZDFiPl0gbmV0X3J4X2FjdGlvbisweDQ3Yi8weGZiMCBuZXQv Y29yZS9kZXYuYzo2NzQ4CiBbPGZmZmZmZmZmODQ2MDAyYzg+XSBfX2RvX3NvZnRpcnErMHgyYzgv MHg5OWEga2VybmVsL3NvZnRpcnEuYzozMTcKIFs8ZmZmZmZmZmY4MTNlNjU2YT5dIGludm9rZV9z b2Z0aXJxIGtlcm5lbC9zb2Z0aXJxLmM6Mzk5IFtpbmxpbmVdCiBbPGZmZmZmZmZmODEzZTY1NmE+ XSBpcnFfZXhpdCsweDE2YS8weDFhMCBrZXJuZWwvc29mdGlycS5jOjQzOQogWzxmZmZmZmZmZjg0 NDA1MTE1Pl0gZXhpdGluZ19pcnEgYXJjaC94ODYvaW5jbHVkZS9hc20vYXBpYy5oOjU2MSBbaW5s aW5lXQogWzxmZmZmZmZmZjg0NDA1MTE1Pl0gc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KzB4MTY1 LzB4NWUwIGFyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYzoxMDU4CiBbPGZmZmZmZmZmODQ0MDFj YmU+XSBhcGljX3RpbWVyX2ludGVycnVwdCsweDhlLzB4YTAgYXJjaC94ODYvZW50cnkvZW50cnlf NjQuUzo3NzgKIDwvSVJRPgpSSVA6IDAwMTA6X19zYW5pdGl6ZXJfY292X3RyYWNlX3BjKzB4MjYv MHg1MCBrZXJuZWwva2Nvdi5jOjEwMgpSU1A6IDAwMTg6ZmZmZjg4MDE5NjAzM2JkOCBFRkxBR1M6 IDAwMDAwMjQ2IE9SSUdfUkFYOiBmZmZmZmZmZmZmZmZmZjEyClJBWDogZmZmZjg4MDE5ZDgxNjFj MCBSQlg6IDAwMDAwMDAwZmZmZmZmZmYgUkNYOiBmZmZmYzkwMDAzNTAxMDAwClJEWDogMDAwMDAw MDAwMDAwMDAwMiBSU0k6IGZmZmZmZmZmODE2MjM2ZDEgUkRJOiAwMDAwMDAwMDAwMDAwMDA1ClJC UDogZmZmZjg4MDE5NjAzM2JkOCBSMDg6IGZmZmY4ODAxOWQ4MTYxYzAgUjA5OiAwMDAwMDAwMDAw MDAwMDAwClIxMDogMWZmZmYxMDAzMmMwNjdmMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAw MDAwMDAwMDAwMDAwMDAwClIxMzogMDAwMDAwMDAwMDAwMDA4MCBSMTQ6IDAwMDAwMDAwMDAwMDAw MDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCiBbPGZmZmZmZmZmODE2MjM2ZDE+XSBkb19mdXRleCsw eDE1MS8weDFkNTAga2VybmVsL2Z1dGV4LmM6MzU0OAogWzxmZmZmZmZmZjgxNjI2MGYwPl0gQ19T WVNDX2Z1dGV4IGtlcm5lbC9mdXRleF9jb21wYXQuYzoyMDEgW2lubGluZV0KIFs8ZmZmZmZmZmY4 MTYyNjBmMD5dIGNvbXBhdF9TeVNfZnV0ZXgrMHgyNzAvMHgzYjAga2VybmVsL2Z1dGV4X2NvbXBh dC5jOjE3NQogWzxmZmZmZmZmZjgxMDFkYTE3Pl0gZG9fc3lzY2FsbF8zMl9pcnFzX29uIGFyY2gv eDg2L2VudHJ5L2NvbW1vbi5jOjM1MyBbaW5saW5lXQogWzxmZmZmZmZmZjgxMDFkYTE3Pl0gZG9f ZmFzdF9zeXNjYWxsXzMyKzB4MzU3LzB4ZTFjIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjQxNQog WzxmZmZmZmZmZjg0NDAxYTliPl0gZW50cnlfU1lTRU5URVJfY29tcGF0KzB4OGIvMHg5ZCBhcmNo L3g4Ni9lbnRyeS9lbnRyeV82NF9jb21wYXQuUzoxMzkKUklQOiAwMDIzOjB4ZjdmMjNjNjkKUlNQ OiAwMDJiOjAwMDAwMDAwZjVkMWYxMmMgRUZMQUdTOiAwMDAwMDI4MiBPUklHX1JBWDogMDAwMDAw MDAwMDAwMDBmMApSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDA4MTZhZjg4IFJD WDogMDAwMDAwMDAwMDAwMDA4MApSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJOiAwMDAwMDAwMDAw MDAwMDAwIFJESTogMDAwMDAwMDAwODE2YWY4YwpSQlA6IDAwMDAwMDAwZjVkMWYyMjggUjA4OiAw MDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDAwMDAwMDAwMDAwMDAw MDAgUjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAwMDAwMDAwMApSMTM6IDAwMDAw MDAwMDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApy Y3Vfc2NoZWQga3RocmVhZCBzdGFydmVkIGZvciAxMDUwMiBqaWZmaWVzISBnNTA0OSBjNTA0OCBm MHgyIFJDVV9HUF9XQUlUX0ZRUygzKSAtPnN0YXRlPTB4MCAtPmNwdT0xCnJjdV9zY2hlZCAgICAg ICBSICBydW5uaW5nIHRhc2sgb24gY3B1ICAgMSAgMTMwNDggICAgIDggICAgICAyIDB4OTAwMDAw MDAgMTc5MDk5NTg3NjQwCkNhbGwgVHJhY2U6CiBbPGZmZmZmZmZmODE0NzMyMWY+XSBjb250ZXh0 X3N3aXRjaCsweDYwZi8weGE2MCBrZXJuZWwvc2NoZWQvY29yZS5jOjMyMDkKIFs8ZmZmZmZmZmY4 MTAwMDk1YT5dIF9fc2NoZWR1bGUrMHg1YWEvMHgxZGEwIGtlcm5lbC9zY2hlZC9jb3JlLmM6Mzkz NAogWzxmZmZmZmZmZjgxMDAyMWRmPl0gc2NoZWR1bGUrMHg4Zi8weDFiMCBrZXJuZWwvc2NoZWQv Y29yZS5jOjQwMTEKIFs8ZmZmZmZmZmY4MTAxMTE2ZD5dIHNjaGVkdWxlX3RpbWVvdXQrMHg1MGQv MHhlZTAga2VybmVsL3RpbWUvdGltZXIuYzoxODAzCiBbPGZmZmZmZmZmODE1YzEzZjE+XSByY3Vf Z3Bfa3RocmVhZCsweGRhMS8weDNiNTAga2VybmVsL3JjdS90cmVlLmM6MjMyNwogWzxmZmZmZmZm ZjgxNDRiMzE4Pl0ga3RocmVhZCsweDM0OC8weDQyMCBrZXJuZWwva3RocmVhZC5jOjI0NgogWzxm ZmZmZmZmZjg0NDAwMjY2Pl0gcmV0X2Zyb21fZm9yaysweDU2LzB4NzAgYXJjaC94ODYvZW50cnkv ZW50cnlfNjQuUzozOTMKCkZpeGVzOiBiYTM1Zjg1ODhmNDcgKOKAnGlwdmxhbjogRGVmZXIgbXVs dGljYXN0IC8gYnJvYWRjYXN0IHByb2Nlc3NpbmcgdG8gYSB3b3JrLXF1ZXVl4oCdKQpTaWduZWQt b2ZmLWJ5OiBNYWhlc2ggQmFuZGV3YXIgPG1haGVzaGJAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6 IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9pcHZsYW4v aXB2bGFuX2NvcmUuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMgYi9kcml2ZXJzL25ldC9p cHZsYW4vaXB2bGFuX2NvcmUuYwppbmRleCAzMGNkMGM0ZjBiZTAuLjUxNGU0OTdkOWZmNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMKKysrIGIvZHJpdmVycy9u ZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMKQEAgLTI3Nyw2ICsyNzcsNyBAQCB2b2lkIGlwdmxhbl9w cm9jZXNzX211bHRpY2FzdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQl9CiAJCQlpcHZs YW5fY291bnRfcngoaXB2bGFuLCBsZW4sIHJldCA9PSBORVRfUlhfU1VDQ0VTUywgdHJ1ZSk7CiAJ CQlsb2NhbF9iaF9lbmFibGUoKTsKKwkJCWNvbmRfcmVzY2hlZF9yY3UoKTsKIAkJfQogCQlyY3Vf cmVhZF91bmxvY2soKTsKIAotLSAKMi4yMC4xCgoKRnJvbSBjNDY1YzU0ODY1Zjk2ZTAzNzRiNDBl ZWU0N2EwM2YyOTIzYjZlOWJiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaXJpIFdp ZXNuZXIgPGp3aWVzbmVyQHN1c2UuY29tPgpEYXRlOiBTYXQsIDcgTWFyIDIwMjAgMTM6MzE6NTcg KzAxMDAKU3ViamVjdDogW1BBVENIIDA2LzUyXSBpcHZsYW46IGRvIG5vdCBhZGQgaGFyZHdhcmUg YWRkcmVzcyBvZiBtYXN0ZXIgdG8gaXRzCiB1bmljYXN0IGZpbHRlciBsaXN0CgpbIFVwc3RyZWFt IGNvbW1pdCA2M2FhZTdiMTczNDRkNGIwOGE3ZDA1Y2IwNzA0NGRlNGMwZjlkY2M2IF0KClRoZXJl IGlzIGEgcHJvYmxlbSB3aGVuIGlwdmxhbiBzbGF2ZXMgYXJlIGNyZWF0ZWQgb24gYSBtYXN0ZXIg ZGV2aWNlIHRoYXQKaXMgYSB2bXhuZXQzIGRldmljZSAoaXB2bGFuIGluIFZNd2FyZSBndWVzdHMp LiBUaGUgdm14bmV0MyBkcml2ZXIgZG9lcyBub3QKc3VwcG9ydCB1bmljYXN0IGFkZHJlc3MgZmls dGVyaW5nLiBXaGVuIGFuIGlwdmxhbiBkZXZpY2UgaXMgYnJvdWdodCB1cCBpbgppcHZsYW5fb3Bl bigpLCB0aGUgaXB2bGFuIGRyaXZlciBjYWxscyBkZXZfdWNfYWRkKCkgdG8gYWRkIHRoZSBoYXJk d2FyZQphZGRyZXNzIG9mIHRoZSB2bXhuZXQzIG1hc3RlciBkZXZpY2UgdG8gdGhlIHVuaWNhc3Qg YWRkcmVzcyBsaXN0IG9mIHRoZQptYXN0ZXIgZGV2aWNlLCBwaHlfZGV2LT51Yy4gVGhpcyBpbmV2 aXRhYmx5IGxlYWRzIHRvIHRoZSB2bXhuZXQzIG1hc3RlcgpkZXZpY2UgYmVpbmcgZm9yY2VkIGlu dG8gcHJvbWlzY3VvdXMgbW9kZSBieSBfX2Rldl9zZXRfcnhfbW9kZSgpLgoKUHJvbWlzY3VvdXMg bW9kZSBpcyBzd2l0Y2hlZCBvbiB0aGUgbWFzdGVyIGRlc3BpdGUgdGhlIGZhY3QgdGhhdCB0aGVy ZSBpcwpzdGlsbCBvbmx5IG9uZSBoYXJkd2FyZSBhZGRyZXNzIHRoYXQgdGhlIG1hc3RlciBkZXZp Y2Ugc2hvdWxkIHVzZSBmb3IKZmlsdGVyaW5nIGluIG9yZGVyIGZvciB0aGUgaXB2bGFuIGRldmlj ZSB0byBiZSBhYmxlIHRvIHJlY2VpdmUgcGFja2V0cy4KVGhlIGNvbW1lbnQgYWJvdmUgc3RydWN0 IG5ldF9kZXZpY2UgZGVzY3JpYmVzIHRoZSB1Y19wcm9taXNjIG1lbWJlciBhcyBhCiJjb3VudGVy LCB0aGF0IGluZGljYXRlcywgdGhhdCBwcm9taXNjdW91cyBtb2RlIGhhcyBiZWVuIGVuYWJsZWQg ZHVlIHRvCnRoZSBuZWVkIHRvIGxpc3RlbiB0byBhZGRpdGlvbmFsIHVuaWNhc3QgYWRkcmVzc2Vz IGluIGEgZGV2aWNlIHRoYXQgZG9lcwpub3QgaW1wbGVtZW50IG5kb19zZXRfcnhfbW9kZSgpIi4g TW9yZW92ZXIsIHRoZSBkZXNpZ24gb2YgaXB2bGFuCmd1YXJhbnRlZXMgdGhhdCBvbmx5IHRoZSBo YXJkd2FyZSBhZGRyZXNzIG9mIGEgbWFzdGVyIGRldmljZSwKcGh5X2Rldi0+ZGV2X2FkZHIsIHdp bGwgYmUgdXNlZCB0byB0cmFuc21pdCBhbmQgcmVjZWl2ZSBhbGwgcGFja2V0cyBmcm9tCml0cyBp cHZsYW4gc2xhdmVzLiBUaHVzLCB0aGUgdW5pY2FzdCBhZGRyZXNzIGxpc3Qgb2YgdGhlIG1hc3Rl ciBkZXZpY2UKc2hvdWxkIG5vdCBiZSBtb2RpZmllZCBieSBpcHZsYW5fb3BlbigpIGFuZCBpcHZs YW5fc3RvcCgpIGluIG9yZGVyIHRvIG1ha2UKaXB2bGFuIGEgd29ya2FibGUgb3B0aW9uIG9uIG1h c3RlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCB1bmljYXN0IGFkZHJlc3MKZmlsdGVyaW5nLgoKRml4 ZXM6IDJhZDdiZjM2Mzg0MTEgKCJpcHZsYW46IEluaXRpYWwgY2hlY2staW4gb2YgdGhlIElQVkxB TiBkcml2ZXIiKQpSZXBvcnRlZC1ieTogUGVyIFN1bmRzdHJvbSA8cGVyLnN1bmRzdHJvbUByZWRx dWJlLnNlPgpTaWduZWQtb2ZmLWJ5OiBKaXJpIFdpZXNuZXIgPGp3aWVzbmVyQHN1c2UuY29tPgpS ZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpBY2tlZC1ieTog TWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9pcHZsYW4v aXB2bGFuX21haW4uYyB8IDUgKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21h aW4uYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fbWFpbi5jCmluZGV4IGJhM2RmYWMxZDkw NC4uYjgwNWFiYzllYzNiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21h aW4uYworKysgYi9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYwpAQCAtMTY0LDcgKzE2 NCw2IEBAIHN0YXRpYyB2b2lkIGlwdmxhbl91bmluaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IHN0YXRpYyBpbnQgaXB2bGFuX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1 Y3QgaXB2bF9kZXYgKmlwdmxhbiA9IG5ldGRldl9wcml2KGRldik7Ci0Jc3RydWN0IG5ldF9kZXZp Y2UgKnBoeV9kZXYgPSBpcHZsYW4tPnBoeV9kZXY7CiAJc3RydWN0IGlwdmxfYWRkciAqYWRkcjsK IAogCWlmIChpcHZsYW4tPnBvcnQtPm1vZGUgPT0gSVBWTEFOX01PREVfTDMgfHwKQEAgLTE3OCw3 ICsxNzcsNyBAQCBzdGF0aWMgaW50IGlwdmxhbl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYp CiAJCWlwdmxhbl9odF9hZGRyX2FkZChpcHZsYW4sIGFkZHIpOwogCXJjdV9yZWFkX3VubG9jaygp OwogCi0JcmV0dXJuIGRldl91Y19hZGQocGh5X2RldiwgcGh5X2Rldi0+ZGV2X2FkZHIpOworCXJl dHVybiAwOwogfQogCiBzdGF0aWMgaW50IGlwdmxhbl9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCkBAIC0xOTAsOCArMTg5LDYgQEAgc3RhdGljIGludCBpcHZsYW5fc3RvcChzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCWRldl91Y191bnN5bmMocGh5X2RldiwgZGV2KTsKIAlkZXZfbWNfdW5z eW5jKHBoeV9kZXYsIGRldik7CiAKLQlkZXZfdWNfZGVsKHBoeV9kZXYsIHBoeV9kZXYtPmRldl9h ZGRyKTsKLQogCXJjdV9yZWFkX2xvY2soKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShhZGRy LCAmaXB2bGFuLT5hZGRycywgYW5vZGUpCiAJCWlwdmxhbl9odF9hZGRyX2RlbChhZGRyKTsKLS0g CjIuMjAuMQoKCkZyb20gYmVkNWZhZmU4YWRiZWZhNTZjYjQ5OTVlMDM3ZGQ0MDZhNGZkMDA3NSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29n bGUuY29tPgpEYXRlOiBNb24sIDkgTWFyIDIwMjAgMTg6MjI6NTggLTA3MDAKU3ViamVjdDogW1BB VENIIDA3LzUyXSBpcHZsYW46IGRvIG5vdCB1c2UgY29uZF9yZXNjaGVkX3JjdSgpIGluCiBpcHZs YW5fcHJvY2Vzc19tdWx0aWNhc3QoKQoKWyBVcHN0cmVhbSBjb21taXQgYWZlMjA3ZDgwYTYxZTRk NmU3Y2ZhMDYxMWE0YWY0NmQwYmE5NTYyOCBdCgpDb21taXQgZTE4YjM1M2YxMDJlICgiaXB2bGFu OiBhZGQgY29uZF9yZXNjaGVkX3JjdSgpIHdoaWxlCnByb2Nlc3NpbmcgbXV0aWNhc3QgYmFja2xv ZyIpIGFkZGVkIGEgY29uZF9yZXNjaGVkX3JjdSgpIGluIGEgbG9vcAp1c2luZyByY3UgcHJvdGVj dGlvbiB0byBpdGVyYXRlIG92ZXIgc2xhdmVzLgoKVGhpcyBpcyBicmVha2luZyByY3UgcnVsZXMs IHNvIGxldHMgaW5zdGVhZCB1c2UgY29uZF9yZXNjaGVkKCkKYXQgYSBwb2ludCB3ZSBjYW4gcmVz Y2hlZHVsZQoKRml4ZXM6IGUxOGIzNTNmMTAyZSAoImlwdmxhbjogYWRkIGNvbmRfcmVzY2hlZF9y Y3UoKSB3aGlsZSBwcm9jZXNzaW5nIG11dGljYXN0IGJhY2tsb2ciKQpTaWduZWQtb2ZmLWJ5OiBF cmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBNYWhlc2ggQmFuZGV3YXIgPG1h aGVzaGJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jIHwgMiAr LQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMgYi9kcml2ZXJzL25ldC9pcHZs YW4vaXB2bGFuX2NvcmUuYwppbmRleCA1MTRlNDk3ZDlmZjUuLjU3NjE3ZmY1NTY1ZiAxMDA2NDQK LS0tIGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMKKysrIGIvZHJpdmVycy9uZXQv aXB2bGFuL2lwdmxhbl9jb3JlLmMKQEAgLTI3Nyw3ICsyNzcsNiBAQCB2b2lkIGlwdmxhbl9wcm9j ZXNzX211bHRpY2FzdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQl9CiAJCQlpcHZsYW5f Y291bnRfcngoaXB2bGFuLCBsZW4sIHJldCA9PSBORVRfUlhfU1VDQ0VTUywgdHJ1ZSk7CiAJCQls b2NhbF9iaF9lbmFibGUoKTsKLQkJCWNvbmRfcmVzY2hlZF9yY3UoKTsKIAkJfQogCQlyY3VfcmVh ZF91bmxvY2soKTsKIApAQCAtMjk0LDYgKzI5Myw3IEBAIHZvaWQgaXB2bGFuX3Byb2Nlc3NfbXVs dGljYXN0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAkJfQogCQlpZiAoZGV2KQogCQkJZGV2 X3B1dChkZXYpOworCQljb25kX3Jlc2NoZWQoKTsKIAl9CiB9CiAKLS0gCjIuMjAuMQoKCkZyb20g OTI1YjNhZDQ2OTZhOGU1MjNlYmI1NmM1Zjg2NjNhNTBjNjhkOGEyOCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+CkRhdGU6 IE1vbiwgOSBNYXIgMjAyMCAxNTo1Njo1NiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDgvNTJdIGlw dmxhbjogZG9uJ3QgZGVyZWYgZXRoIGhkciBiZWZvcmUgY2hlY2tpbmcgaXQncyBzZXQKTUlNRS1W ZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IGFkODE5Mjc2N2M5 ZjljZjk3ZGE1N2I5ZmZjZWE3MGZiMTAwZmViZWYgXQoKSVB2bGFuIGluIEwzIG1vZGUgZGlzY2Fy ZHMgb3V0Ym91bmQgbXVsdGljYXN0IHBhY2tldHMgYnV0IHBlcmZvcm1zCnRoZSBjaGVjayBiZWZv cmUgZW5zdXJpbmcgdGhlIGV0aGVyLWhlYWRlciBpcyBzZXQgb3Igbm90LiBUaGlzIGlzCmFuIGVy cm9yIHRoYXQgRXJpYyBmb3VuZCB0aHJvdWdoIGNvZGUgYnJvd3NpbmcuCgpGaXhlczogMmFkN2Jm MzYzODQxICjigJxpcHZsYW46IEluaXRpYWwgY2hlY2staW4gb2YgdGhlIElQVkxBTiBkcml2ZXIu 4oCdKQpTaWduZWQtb2ZmLWJ5OiBNYWhlc2ggQmFuZGV3YXIgPG1haGVzaGJAZ29vZ2xlLmNvbT4K UmVwb3J0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jIHwgMTggKysrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZs YW5fY29yZS5jCmluZGV4IDU3NjE3ZmY1NTY1Zi4uODgwMWQwOTMxMzVjIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX2NvcmUuYworKysgYi9kcml2ZXJzL25ldC9pcHZsYW4v aXB2bGFuX2NvcmUuYwpAQCAtNDk5LDE5ICs0OTksMjEgQEAgc3RhdGljIGludCBpcHZsYW5fcHJv Y2Vzc19vdXRib3VuZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXN0cnVjdCBldGhoZHIgKmV0aGgg PSBldGhfaGRyKHNrYik7CiAJaW50IHJldCA9IE5FVF9YTUlUX0RST1A7CiAKLQkvKiBJbiB0aGlz IG1vZGUgd2UgZG9udCBjYXJlIGFib3V0IG11bHRpY2FzdCBhbmQgYnJvYWRjYXN0IHRyYWZmaWMg Ki8KLQlpZiAoaXNfbXVsdGljYXN0X2V0aGVyX2FkZHIoZXRoaC0+aF9kZXN0KSkgewotCQlwcl9k ZWJ1Z19yYXRlbGltaXRlZCgiRHJvcHBlZCB7bXVsdGl8YnJvYWR9Y2FzdCBvZiB0eXBlPVsleF1c biIsCi0JCQkJICAgICBudG9ocyhza2ItPnByb3RvY29sKSk7Ci0JCWtmcmVlX3NrYihza2IpOwot CQlnb3RvIG91dDsKLQl9Ci0KIAkvKiBUaGUgaXB2bGFuIGlzIGEgcHNldWRvLUwyIGRldmljZSwg c28gdGhlIHBhY2tldHMgdGhhdCB3ZSByZWNlaXZlCiAJICogd2lsbCBoYXZlIEwyOyB3aGljaCBu ZWVkIHRvIGRpc2NhcmRlZCBhbmQgcHJvY2Vzc2VkIGZ1cnRoZXIKIAkgKiBpbiB0aGUgbmV0LW5z IG9mIHRoZSBtYWluLWRldmljZS4KIAkgKi8KIAlpZiAoc2tiX21hY19oZWFkZXJfd2FzX3NldChz a2IpKSB7CisJCS8qIEluIHRoaXMgbW9kZSB3ZSBkb250IGNhcmUgYWJvdXQKKwkJICogbXVsdGlj YXN0IGFuZCBicm9hZGNhc3QgdHJhZmZpYyAqLworCQlpZiAoaXNfbXVsdGljYXN0X2V0aGVyX2Fk ZHIoZXRoaC0+aF9kZXN0KSkgeworCQkJcHJfZGVidWdfcmF0ZWxpbWl0ZWQoCisJCQkJIkRyb3Bw ZWQge211bHRpfGJyb2FkfWNhc3Qgb2YgdHlwZT1bJXhdXG4iLAorCQkJCW50b2hzKHNrYi0+cHJv dG9jb2wpKTsKKwkJCWtmcmVlX3NrYihza2IpOworCQkJZ290byBvdXQ7CisJCX0KKwogCQlza2Jf cHVsbChza2IsIHNpemVvZigqZXRoaCkpOwogCQlza2ItPm1hY19oZWFkZXIgPSAodHlwZW9mKHNr Yi0+bWFjX2hlYWRlcikpfjBVOwogCQlza2JfcmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKLS0g CjIuMjAuMQoKCkZyb20gYTY0OWE3NjU1ZmViZTZiODljNzA1YWM3ZDhkZDFmOWQ3Mjk5NDAyMCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdv b2dsZS5jb20+CkRhdGU6IE1vbiwgOSBNYXIgMjAyMCAxNTo1NzowNyAtMDcwMApTdWJqZWN0OiBb UEFUQ0ggMDkvNTJdIG1hY3ZsYW46IGFkZCBjb25kX3Jlc2NoZWQoKSBkdXJpbmcgbXVsdGljYXN0 IHByb2Nlc3NpbmcKClsgVXBzdHJlYW0gY29tbWl0IGNlOWE0MTg2ZjlhYzQ3NWM0MTVmZmQyMDM0 ODE3NmE0ZWEzNjY2NzAgXQoKVGhlIFJ4IGJvdW5kIG11bHRpY2FzdCBwYWNrZXRzIGFyZSBkZWZl cnJlZCB0byBhIHdvcmtxdWV1ZSBhbmQKbWFjdmxhbiBjYW4gYWxzbyBzdWZmZXIgZnJvbSB0aGUg c2FtZSBhdHRhY2sgdGhhdCB3YXMgZGlzY292ZXJlZApieSBTeXpib3QgZm9yIElQdmxhbi4gVGhp cyBzb2x1dGlvbiBpcyBub3QgYXMgZWZmZWN0aXZlIGFzIGluCklQdmxhbi4gSVB2bGFuIGRlZmVy cyBhbGwgKFR4IGFuZCBSeCkgbXVsdGljYXN0IHBhY2tldCBwcm9jZXNzaW5nCnRvIGEgd29ya3F1 ZXVlIHdoaWxlIG1hY3ZsYW4gZG9lcyB0aGlzIHdheSBvbmx5IGZvciB0aGUgUnguIFRoaXMKZml4 IHNob3VsZCBhZGRyZXNzIHRoZSBSeCBjb2RpdGlvbiB0byBjZXJ0YWluIGV4dGVudC4KClR4IGlz IHN0aWxsIHN1c2VwdGlibGUuIFR4IG11bHRpY2FzdCBwcm9jZXNzaW5nIGhhcHBlbnMgd2hlbgou bmRvX3N0YXJ0X3htaXQgaXMgY2FsbGVkLCBoZW5jZSB3ZSBjYW5ub3QgYWRkIGNvbmRfcmVzY2hl ZCgpLgpIb3dldmVyLCBpdCdzIG5vdCB0aGF0IHNldmVyZSBzaW5jZSB0aGUgdXNlciB3aGljaCBp cyBnZW5lcmF0aW5nCiAvIGZsb29kaW5nIHdpbGwgYmUgYWZmZWN0ZWQgdGhlIG1vc3QuCgpGaXhl czogNDEyY2ExNTUwY2JlICgibWFjdmxhbjogTW92ZSBicm9hZGNhc3RzIGludG8gYSB3b3JrIHF1 ZXVlIikKU2lnbmVkLW9mZi1ieTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBkcml2ZXJzL25ldC9tYWN2bGFuLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jIGIvZHJpdmVycy9uZXQv bWFjdmxhbi5jCmluZGV4IGM1YmY2MTU2NTcyNi4uMjZmNmJlNDc5NmM3IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9tYWN2bGFuLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjdmxhbi5jCkBAIC0zMzQs NiArMzM0LDggQEAgc3RhdGljIHZvaWQgbWFjdmxhbl9wcm9jZXNzX2Jyb2FkY2FzdChzdHJ1Y3Qg d29ya19zdHJ1Y3QgKncpCiAJCWlmIChzcmMpCiAJCQlkZXZfcHV0KHNyYy0+ZGV2KTsKIAkJY29u c3VtZV9za2Ioc2tiKTsKKworCQljb25kX3Jlc2NoZWQoKTsKIAl9CiB9CiAKLS0gCjIuMjAuMQoK CkZyb20gOWMyMjUzODBhNTAzNzk4YzdkY2Q5MTc4NTUxNWM1YzMwMGYwM2UxYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9y Zy51az4KRGF0ZTogVHVlLCAzIE1hciAyMDIwIDE1OjAxOjQ2ICswMDAwClN1YmplY3Q6IFtQQVRD SCAxMC81Ml0gbmV0OiBkc2E6IGZpeCBwaHlsaW5rX3N0YXJ0KCkvcGh5bGlua19zdG9wKCkgY2Fs bHMKClsgVXBzdHJlYW0gY29tbWl0IDg2NDBmOGRjNmQ2NTdlYmZiNGU2N2MyMDJhZDMyYzU0NTc4 NThhMTMgXQoKUGxhY2UgcGh5bGlua19zdGFydCgpL3BoeWxpbmtfc3RvcCgpIGluc2lkZSBkc2Ff cG9ydF9lbmFibGUoKSBhbmQKZHNhX3BvcnRfZGlzYWJsZSgpLCB3aGljaCBlbnN1cmVzIHRoYXQg d2UgY2FsbCBwaHlsaW5rX3N0b3AoKSBiZWZvcmUKdGVhcmluZyBkb3duIHBoeWxpbmsgLSB3aGlj aCBpcyBhIGRvY3VtZW50ZWQgcmVxdWlyZW1lbnQuICBGYWlsdXJlCnRvIGRvIHNvIGNhbiBjYXVz ZSB1c2UtYWZ0ZXItZnJlZSBidWdzLgoKRml4ZXM6IDBlMjc5MjE4MTZhZCAoIm5ldDogZHNhOiBV c2UgUEhZTElOSyBmb3IgdGhlIENQVS9EU0EgcG9ydHMiKQpTaWduZWQtb2ZmLWJ5OiBSdXNzZWxs IEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgpSZXZpZXdlZC1ieTogQW5kcmV3IEx1 bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RzYS9kc2FfcHJpdi5oIHwgIDIgKysKIG5ldC9kc2Ev cG9ydC5jICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiBuZXQvZHNh L3NsYXZlLmMgICAgfCAgOCArKy0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAzMCBpbnNlcnRpb25z KCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZHNhL2RzYV9wcml2LmggYi9u ZXQvZHNhL2RzYV9wcml2LmgKaW5kZXggMTJmOGM3ZWU0ZGQ4Li5iZjk5NDdjNTc3YjYgMTAwNjQ0 Ci0tLSBhL25ldC9kc2EvZHNhX3ByaXYuaAorKysgYi9uZXQvZHNhL2RzYV9wcml2LmgKQEAgLTEy OCw3ICsxMjgsOSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBuZXRfZGV2aWNlICpkc2FfbWFzdGVy X2ZpbmRfc2xhdmUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIC8qIHBvcnQuYyAqLwogaW50IGRz YV9wb3J0X3NldF9zdGF0ZShzdHJ1Y3QgZHNhX3BvcnQgKmRwLCB1OCBzdGF0ZSwKIAkJICAgICAg IHN0cnVjdCBzd2l0Y2hkZXZfdHJhbnMgKnRyYW5zKTsKK2ludCBkc2FfcG9ydF9lbmFibGVfcnQo c3RydWN0IGRzYV9wb3J0ICpkcCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSk7CiBpbnQgZHNhX3Bv cnRfZW5hYmxlKHN0cnVjdCBkc2FfcG9ydCAqZHAsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpOwor dm9pZCBkc2FfcG9ydF9kaXNhYmxlX3J0KHN0cnVjdCBkc2FfcG9ydCAqZHApOwogdm9pZCBkc2Ff cG9ydF9kaXNhYmxlKHN0cnVjdCBkc2FfcG9ydCAqZHApOwogaW50IGRzYV9wb3J0X2JyaWRnZV9q b2luKHN0cnVjdCBkc2FfcG9ydCAqZHAsIHN0cnVjdCBuZXRfZGV2aWNlICpicik7CiB2b2lkIGRz YV9wb3J0X2JyaWRnZV9sZWF2ZShzdHJ1Y3QgZHNhX3BvcnQgKmRwLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqYnIpOwpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9wb3J0LmMgYi9uZXQvZHNhL3BvcnQuYwppbmRl eCA5YjU0ZTVhNzYyOTcuLjJhMWFhMWE1MDI1NCAxMDA2NDQKLS0tIGEvbmV0L2RzYS9wb3J0LmMK KysrIGIvbmV0L2RzYS9wb3J0LmMKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIHZvaWQgZHNhX3Bv cnRfc2V0X3N0YXRlX25vdyhzdHJ1Y3QgZHNhX3BvcnQgKmRwLCB1OCBzdGF0ZSkKIAkJcHJfZXJy KCJEU0E6IGZhaWxlZCB0byBzZXQgU1RQIHN0YXRlICV1ICglZClcbiIsIHN0YXRlLCBlcnIpOwog fQogCi1pbnQgZHNhX3BvcnRfZW5hYmxlKHN0cnVjdCBkc2FfcG9ydCAqZHAsIHN0cnVjdCBwaHlf ZGV2aWNlICpwaHkpCitpbnQgZHNhX3BvcnRfZW5hYmxlX3J0KHN0cnVjdCBkc2FfcG9ydCAqZHAs IHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpCiB7CiAJc3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHAt PmRzOwogCWludCBwb3J0ID0gZHAtPmluZGV4OwpAQCAtNzgsMTQgKzc4LDMxIEBAIGludCBkc2Ff cG9ydF9lbmFibGUoc3RydWN0IGRzYV9wb3J0ICpkcCwgc3RydWN0IHBoeV9kZXZpY2UgKnBoeSkK IAlpZiAoIWRwLT5icmlkZ2VfZGV2KQogCQlkc2FfcG9ydF9zZXRfc3RhdGVfbm93KGRwLCBCUl9T VEFURV9GT1JXQVJESU5HKTsKIAorCWlmIChkcC0+cGwpCisJCXBoeWxpbmtfc3RhcnQoZHAtPnBs KTsKKwogCXJldHVybiAwOwogfQogCi12b2lkIGRzYV9wb3J0X2Rpc2FibGUoc3RydWN0IGRzYV9w b3J0ICpkcCkKK2ludCBkc2FfcG9ydF9lbmFibGUoc3RydWN0IGRzYV9wb3J0ICpkcCwgc3RydWN0 IHBoeV9kZXZpY2UgKnBoeSkKK3sKKwlpbnQgZXJyOworCisJcnRubF9sb2NrKCk7CisJZXJyID0g ZHNhX3BvcnRfZW5hYmxlX3J0KGRwLCBwaHkpOworCXJ0bmxfdW5sb2NrKCk7CisKKwlyZXR1cm4g ZXJyOworfQorCit2b2lkIGRzYV9wb3J0X2Rpc2FibGVfcnQoc3RydWN0IGRzYV9wb3J0ICpkcCkK IHsKIAlzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkcC0+ZHM7CiAJaW50IHBvcnQgPSBkcC0+aW5k ZXg7CiAKKwlpZiAoZHAtPnBsKQorCQlwaHlsaW5rX3N0b3AoZHAtPnBsKTsKKwogCWlmICghZHAt PmJyaWRnZV9kZXYpCiAJCWRzYV9wb3J0X3NldF9zdGF0ZV9ub3coZHAsIEJSX1NUQVRFX0RJU0FC TEVEKTsKIApAQCAtOTMsNiArMTEwLDEzIEBAIHZvaWQgZHNhX3BvcnRfZGlzYWJsZShzdHJ1Y3Qg ZHNhX3BvcnQgKmRwKQogCQlkcy0+b3BzLT5wb3J0X2Rpc2FibGUoZHMsIHBvcnQpOwogfQogCit2 b2lkIGRzYV9wb3J0X2Rpc2FibGUoc3RydWN0IGRzYV9wb3J0ICpkcCkKK3sKKwlydG5sX2xvY2so KTsKKwlkc2FfcG9ydF9kaXNhYmxlX3J0KGRwKTsKKwlydG5sX3VubG9jaygpOworfQorCiBpbnQg ZHNhX3BvcnRfYnJpZGdlX2pvaW4oc3RydWN0IGRzYV9wb3J0ICpkcCwgc3RydWN0IG5ldF9kZXZp Y2UgKmJyKQogewogCXN0cnVjdCBkc2Ffbm90aWZpZXJfYnJpZGdlX2luZm8gaW5mbyA9IHsKQEAg LTYxNSwxMCArNjM5LDYgQEAgc3RhdGljIGludCBkc2FfcG9ydF9waHlsaW5rX3JlZ2lzdGVyKHN0 cnVjdCBkc2FfcG9ydCAqZHApCiAJCWdvdG8gZXJyX3BoeV9jb25uZWN0OwogCX0KIAotCXJ0bmxf bG9jaygpOwotCXBoeWxpbmtfc3RhcnQoZHAtPnBsKTsKLQlydG5sX3VubG9jaygpOwotCiAJcmV0 dXJuIDA7CiAKIGVycl9waHlfY29ubmVjdDoKZGlmZiAtLWdpdCBhL25ldC9kc2Evc2xhdmUuYyBi L25ldC9kc2Evc2xhdmUuYwppbmRleCAwMjhlNjVmNGI1YmEuLjIzYzIyMTBmYTdlYyAxMDA2NDQK LS0tIGEvbmV0L2RzYS9zbGF2ZS5jCisrKyBiL25ldC9kc2Evc2xhdmUuYwpAQCAtOTAsMTIgKzkw LDEwIEBAIHN0YXRpYyBpbnQgZHNhX3NsYXZlX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAkJCWdvdG8gY2xlYXJfYWxsbXVsdGk7CiAJfQogCi0JZXJyID0gZHNhX3BvcnRfZW5hYmxlKGRw LCBkZXYtPnBoeWRldik7CisJZXJyID0gZHNhX3BvcnRfZW5hYmxlX3J0KGRwLCBkZXYtPnBoeWRl dik7CiAJaWYgKGVycikKIAkJZ290byBjbGVhcl9wcm9taXNjOwogCi0JcGh5bGlua19zdGFydChk cC0+cGwpOwotCiAJcmV0dXJuIDA7CiAKIGNsZWFyX3Byb21pc2M6CkBAIC0xMTksOSArMTE3LDcg QEAgc3RhdGljIGludCBkc2Ffc2xhdmVfY2xvc2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlj YW5jZWxfd29ya19zeW5jKCZkcC0+eG1pdF93b3JrKTsKIAlza2JfcXVldWVfcHVyZ2UoJmRwLT54 bWl0X3F1ZXVlKTsKIAotCXBoeWxpbmtfc3RvcChkcC0+cGwpOwotCi0JZHNhX3BvcnRfZGlzYWJs ZShkcCk7CisJZHNhX3BvcnRfZGlzYWJsZV9ydChkcCk7CiAKIAlkZXZfbWNfdW5zeW5jKG1hc3Rl ciwgZGV2KTsKIAlkZXZfdWNfdW5zeW5jKG1hc3RlciwgZGV2KTsKLS0gCjIuMjAuMQoKCkZyb20g ZTYwOTBjYWJiNjk4MjA2Njg0YzlkYjQ4NTA2ZjlhZDJjODYzZmJjNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4K RGF0ZTogRnJpLCAyOCBGZWIgMjAyMCAxOTozOTo0MSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMTEv NTJdIG5ldDogZHNhOiBtdjg4ZTZ4eHg6IGZpeCBsb2NrdXAgb24gd2FybSBib290CgpbIFVwc3Ry ZWFtIGNvbW1pdCAwMzk1ODIzYjhkOWE0ZDg3YmQxYmY3NDM1OTEyMzQ2MWMyYWU4MDFiIF0KCklm IHRoZSBzd2l0Y2ggaXMgbm90IGhhcmR3YXJlIHJlc2V0IG9uIGEgd2FybSBib290LCBpbnRlcnJ1 cHRzIGNhbiBiZQpsZWZ0IGVuYWJsZWQsIGFuZCBwb3NzaWJseSBwZW5kaW5nLiBUaGlzIHdpbGwg Y2F1c2UgdXMgdG8gZW50ZXIgYW4KaW5maW5pdGUgbG9vcCB0cnlpbmcgdG8gc2VydmljZSBhbiBp bnRlcnJ1cHQgd2UgYXJlIHVuYWJsZSB0byBoYW5kbGUsCnRoZXJlYnkgcHJldmVudGluZyB0aGUg a2VybmVsIGZyb20gYm9vdGluZy4KCkVuc3VyZSB0aGF0IHRoZSBnbG9iYWwgMiBpbnRlcnJ1cHQg c291cmNlcyBhcmUgZGlzYWJsZWQgYmVmb3JlIHdlIGNsYWltCnRoZSBwYXJlbnQgaW50ZXJydXB0 LgoKT2JzZXJ2ZWQgb24gdGhlIFpJSSBkZXZlbG9wbWVudCByZXZpc2lvbiBCIGFuZCBDIHBsYXRm b3JtcyB3aXRoCnJld29ya2VkIHNlcmRlcyBzdXBwb3J0LCBhbmQgdXNpbmcgcmVib290IC1mIHRv IHJlYm9vdCB0aGUgcGxhdGZvcm0uCgpGaXhlczogZGMzMGMzNWJlNzIwICgibmV0OiBkc2E6IG12 ODhlNnh4eDogSW1wbGVtZW50IGludGVycnVwdCBzdXBwb3J0LiIpClNpZ25lZC1vZmYtYnk6IFJ1 c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClJldmlld2VkLWJ5OiBBbmRy ZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2Jh bDIuYyB8IDggKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIu YyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5jCmluZGV4IGJkYmI3MmZjMjBl ZC4uNjI0MDk3NjY3OWUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2ds b2JhbDIuYworKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYwpAQCAtMTA4 Myw2ICsxMDgzLDEzIEBAIGludCBtdjg4ZTZ4eHhfZzJfaXJxX3NldHVwKHN0cnVjdCBtdjg4ZTZ4 eHhfY2hpcCAqY2hpcCkKIHsKIAlpbnQgZXJyLCBpcnEsIHZpcnE7CiAKKwljaGlwLT5nMl9pcnEu bWFza2VkID0gfjA7CisJbXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApOworCWVyciA9IG12ODhlNnh4 eF9nMl9pbnRfbWFzayhjaGlwLCB+Y2hpcC0+ZzJfaXJxLm1hc2tlZCk7CisJbXY4OGU2eHh4X3Jl Z191bmxvY2soY2hpcCk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKKwogCWNoaXAtPmcyX2ly cS5kb21haW4gPSBpcnFfZG9tYWluX2FkZF9zaW1wbGUoCiAJCWNoaXAtPmRldi0+b2Zfbm9kZSwg MTYsIDAsICZtdjg4ZTZ4eHhfZzJfaXJxX2RvbWFpbl9vcHMsIGNoaXApOwogCWlmICghY2hpcC0+ ZzJfaXJxLmRvbWFpbikKQEAgLTEwOTIsNyArMTA5OSw2IEBAIGludCBtdjg4ZTZ4eHhfZzJfaXJx X3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCkKIAkJaXJxX2NyZWF0ZV9tYXBwaW5n KGNoaXAtPmcyX2lycS5kb21haW4sIGlycSk7CiAKIAljaGlwLT5nMl9pcnEuY2hpcCA9IG12ODhl Nnh4eF9nMl9pcnFfY2hpcDsKLQljaGlwLT5nMl9pcnEubWFza2VkID0gfjA7CiAKIAljaGlwLT5k ZXZpY2VfaXJxID0gaXJxX2ZpbmRfbWFwcGluZyhjaGlwLT5nMV9pcnEuZG9tYWluLAogCQkJCQkg ICAgTVY4OEU2WFhYX0cxX1NUU19JUlFfREVWSUNFKTsKLS0gCjIuMjAuMQoKCkZyb20gNDllNmY4 ZGJlN2UyZjVlNjcyMDliMDA4MTM2YWQ5MzI4ZjkwNzBmYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KRGF0ZTogVHVlLCAxMCBN YXIgMjAyMCAyMDozNjoxNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTIvNTJdIG5ldDogZmVjOiB2 YWxpZGF0ZSB0aGUgbmV3IHNldHRpbmdzIGluCiBmZWNfZW5ldF9zZXRfY29hbGVzY2UoKQoKWyBV cHN0cmVhbSBjb21taXQgYWIxNDk2MWQxMGQwMmQyMDc2NzYxMmM3OGNlMTQ4ZjZlYjg1YmQ1OCBd CgpmZWNfZW5ldF9zZXRfY29hbGVzY2UoKSB2YWxpZGF0ZXMgdGhlIHByZXZpb3VzbHkgc2V0IHBh cmFtcwphbmQgaWYgdGhleSBhcmUgd2l0aGluIHJhbmdlIHByb2NlZWRzIHRvIGFwcGx5IHRoZSBu ZXcgb25lcy4KVGhlIG5ldyBvbmVzLCBob3dldmVyLCBhcmUgbm90IHZhbGlkYXRlZC4gVGhpcyBz ZWVtcyBiYWNrd2FyZHMsCnByb2JhYmx5IGEgY29weS1wYXN0ZSBlcnJvcj8KCkNvbXBpbGUgdGVz dGVkIG9ubHkuCgpGaXhlczogZDg1MWI0N2IyMmZjICgibmV0OiBmZWM6IGFkZCBpbnRlcnJ1cHQg Y29hbGVzY2VuY2UgZmVhdHVyZSBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5z a2kgPGt1YmFAa2VybmVsLm9yZz4KQWNrZWQtYnk6IEZ1Z2FuZyBEdWFuIDxmdWdhbmcuZHVhbkBu eHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMgfCA2ICsr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNfbWFpbi5jCmluZGV4IDgzMzZmNGNiYWY5 NS4uM2ZjOGE2NmU0ZjQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZmVjX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21h aW4uYwpAQCAtMjUyOSwxNSArMjUyOSwxNSBAQCBmZWNfZW5ldF9zZXRfY29hbGVzY2Uoc3RydWN0 IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBldGh0b29sX2NvYWxlc2NlICplYykKIAkJcmV0dXJu IC1FSU5WQUw7CiAJfQogCi0JY3ljbGUgPSBmZWNfZW5ldF91c190b19pdHJfY2xvY2sobmRldiwg ZmVwLT5yeF90aW1lX2l0cik7CisJY3ljbGUgPSBmZWNfZW5ldF91c190b19pdHJfY2xvY2sobmRl diwgZWMtPnJ4X2NvYWxlc2NlX3VzZWNzKTsKIAlpZiAoY3ljbGUgPiAweEZGRkYpIHsKIAkJZGV2 X2VycihkZXYsICJSeCBjb2FsZXNjZWQgdXNlYyBleGNlZWQgaGFyZHdhcmUgbGltaXRhdGlvblxu Iik7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWN5Y2xlID0gZmVjX2VuZXRfdXNfdG9faXRy X2Nsb2NrKG5kZXYsIGZlcC0+dHhfdGltZV9pdHIpOworCWN5Y2xlID0gZmVjX2VuZXRfdXNfdG9f aXRyX2Nsb2NrKG5kZXYsIGVjLT50eF9jb2FsZXNjZV91c2Vjcyk7CiAJaWYgKGN5Y2xlID4gMHhG RkZGKSB7Ci0JCWRldl9lcnIoZGV2LCAiUnggY29hbGVzY2VkIHVzZWMgZXhjZWVkIGhhcmR3YXJl IGxpbWl0YXRpb25cbiIpOworCQlkZXZfZXJyKGRldiwgIlR4IGNvYWxlc2NlZCB1c2VjIGV4Y2Vl ZCBoYXJkd2FyZSBsaW1pdGF0aW9uXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0tIAoy LjIwLjEKCgpGcm9tIGIzMjA1MTdjYzE0MDQ5MWQ3NDc5MzgwZmNlMmU5OGU5MzVjNTQ5MjIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEppYW4gU2hlbiA8c2hlbmppYW4xNUBodWF3ZWku Y29tPgpEYXRlOiBUaHUsIDUgTWFyIDIwMjAgMDk6NDc6NTMgKzA4MDAKU3ViamVjdDogW1BBVENI IDEzLzUyXSBuZXQ6IGhuczM6IGZpeCBhIG5vdCBsaW5rIHVwIGlzc3VlIHdoZW4gZmlicmUgcG9y dAogc3VwcG9ydHMgYXV0b25lZwoKWyBVcHN0cmVhbSBjb21taXQgNjhlMTAwNmY2MThlNTA5ZmM3 ODY5MjU5ZmU4M2NlZWM0YTk1ZGFjMyBdCgpXaGVuIGZpYnJlIHBvcnQgc3VwcG9ydHMgYXV0by1u ZWdvdGlhdGlvbiwgdGhlIElNUChJbnRlbGxpZ2VudApNYW5hZ2VtZW50IFByb2Nlc3MpIHByb2Nl c3NlcyB0aGUgc3BlZWQgb2YgYXV0by1uZWdvdGlhdGlvbgphbmQgdGhlICB1c2VyJ3Mgc3BlZWQg c2VwYXJhdGVseS4KRm9yIGJlbG93IGNhc2UsIHRoZSBwb3J0IHdpbGwgZ2V0IGEgbm90IGxpbmsg dXAgcHJvYmxlbS4Kc3RlcCAxOiBkaXNhYmxlcyBhdXRvLW5lZ290aWF0aW9uIGFuZCBzZXRzIHNw ZWVkIHRvIEEsIHRoZW4KdGhlIGRyaXZlcidzIE1BQyBzcGVlZCB3aWxsIGJlIHVwZGF0ZWQgdG8g QS4Kc3RlcCAyOiBlbmFibGVzIGF1dG8tbmVnb3RpYXRpb24gYW5kIE1BQyBnZXRzIG5lZ290aWF0 ZWQKc3BlZWQgQiwgdGhlbiB0aGUgZHJpdmVyJ3MgTUFDIHNwZWVkIHdpbGwgYmUgdXBkYXRlZCB0 byBCCnRocm91Z2ggcXVlcnlpbmcgaW4gcGVyaW9kaWNhbCB0YXNrLgpzdGVwIDM6IE1BQyBnZXRz IG5ldyBuZWdvdGlhdGVkIHNwZWVkIEEuCnN0ZXAgNDogZGlzYWJsZXMgYXV0by1uZWdvdGlhdGlv biBhbmQgc2V0cyBzcGVlZCB0byBCIGJlZm9yZQpwZXJpb2RpY2FsIHRhc2sgcXVlcnkgbmV3IE1B QyBzcGVlZCBBLCB0aGUgZHJpdmVyIHdpbGwgIGlnbm9yZQp0aGUgc3BlZWQgY29uZmlndXJhdGlv bi4KClRoaXMgcGF0Y2ggZml4ZXMgaXQgYnkgc2tpcHBpbmcgc3BlZWQgYW5kIGR1cGxleCBjaGVj a2luZyB3aGVuCmZpYnJlIHBvcnQgc3VwcG9ydHMgYXV0by1uZWdvdGlhdGlvbi4KCkZpeGVzOiAy MmY0OGUyNGEyM2QgKCJuZXQ6IGhuczM6IGFkZCBhdXRvbmVnIGFuZCBjaGFuZ2Ugc3BlZWQgc3Vw cG9ydCBmb3IgZmlicmUgcG9ydCIpClNpZ25lZC1vZmYtYnk6IEppYW4gU2hlbiA8c2hlbmppYW4x NUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBIdWF6aG9uZyBUYW4gPHRhbmh1YXpob25nQGh1 YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNs Z2VfbWFpbi5jIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hu czMvaG5zM3BmL2hjbGdlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9o bnMzL2huczNwZi9oY2xnZV9tYWluLmMKaW5kZXggYzAxY2Y4ZWY2OWRmLi5kNDY1MmRlYTQ1Njkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9o Y2xnZV9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5z M3BmL2hjbGdlX21haW4uYwpAQCAtMjQxNywxMCArMjQxNywxMiBAQCBzdGF0aWMgaW50IGhjbGdl X2NmZ19tYWNfc3BlZWRfZHVwX2h3KHN0cnVjdCBoY2xnZV9kZXYgKmhkZXYsIGludCBzcGVlZCwK IAogaW50IGhjbGdlX2NmZ19tYWNfc3BlZWRfZHVwKHN0cnVjdCBoY2xnZV9kZXYgKmhkZXYsIGlu dCBzcGVlZCwgdTggZHVwbGV4KQogeworCXN0cnVjdCBoY2xnZV9tYWMgKm1hYyA9ICZoZGV2LT5o dy5tYWM7CiAJaW50IHJldDsKIAogCWR1cGxleCA9IGhjbGdlX2NoZWNrX3NwZWVkX2R1cChkdXBs ZXgsIHNwZWVkKTsKLQlpZiAoaGRldi0+aHcubWFjLnNwZWVkID09IHNwZWVkICYmIGhkZXYtPmh3 Lm1hYy5kdXBsZXggPT0gZHVwbGV4KQorCWlmICghbWFjLT5zdXBwb3J0X2F1dG9uZWcgJiYgbWFj LT5zcGVlZCA9PSBzcGVlZCAmJgorCSAgICBtYWMtPmR1cGxleCA9PSBkdXBsZXgpCiAJCXJldHVy biAwOwogCiAJcmV0ID0gaGNsZ2VfY2ZnX21hY19zcGVlZF9kdXBfaHcoaGRldiwgc3BlZWQsIGR1 cGxleCk7Ci0tIAoyLjIwLjEKCgpGcm9tIGMyOWFlZWRjNWVlYzZjMGFiZmMzYzQ1ZTk3NzBhODgy M2RkM2YxMTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVo YW5nYmluQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyOSBGZWIgMjAyMCAxNzoyNzoxMyArMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTQvNTJdIG5ldC9pcHY2OiB1c2UgY29uZmlndXJlZCBtZXRyaWMgd2hl biBhZGQgcGVlciByb3V0ZQoKWyBVcHN0cmVhbSBjb21taXQgMDc3NThlYjlmZjUyNzk0ZmJhMTVk MDNhYTg4ZDkyZGJkMWI3ZDEyNSBdCgpXaGVuIHdlIGFkZCBwZWVyIGFkZHJlc3Mgd2l0aCBtZXRy aWMgY29uZmlndXJlZCwgSVB2NCBjb3VsZCBzZXQgdGhlIGRlc3QKbWV0cmljIGNvcnJlY3RseSwg YnV0IElQdjYgZG8gbm90LiBlLmcuCgpdIyBpcCBhZGRyIGFkZCAxOTIuMC4yLjEgcGVlciAxOTIu MC4yLjIvMzIgZGV2IGV0aDEgbWV0cmljIDIwCl0jIGlwIHJvdXRlIHNob3cgZGV2IGV0aDEKMTky LjAuMi4yIHByb3RvIGtlcm5lbCBzY29wZSBsaW5rIHNyYyAxOTIuMC4yLjEgbWV0cmljIDIwCl0j IGlwIGFkZHIgYWRkIDIwMDE6ZGI4OjoxIHBlZXIgMjAwMTpkYjg6OjIvMTI4IGRldiBldGgxIG1l dHJpYyAyMApdIyBpcCAtNiByb3V0ZSBzaG93IGRldiBldGgxCjIwMDE6ZGI4OjoxIHByb3RvIGtl cm5lbCBtZXRyaWMgMjAgcHJlZiBtZWRpdW0KMjAwMTpkYjg6OjIgcHJvdG8ga2VybmVsIG1ldHJp YyAyNTYgcHJlZiBtZWRpdW0KCkZpeCB0aGlzIGJ5IHVzaW5nIGNvbmZpZ3VyZWQgbWV0cmljIGlu c3RlYWQgb2YgZGVmYXVsdCBvbmUuCgpSZXBvcnRlZC1ieTogSmlhbmxpbiBTaGkgPGppc2hpQHJl ZGhhdC5jb20+CkZpeGVzOiA4MzA4ZjNmZjE3NTMgKCJuZXQvaXB2NjogQWRkIHN1cHBvcnQgZm9y IHNwZWNpZnlpbmcgbWV0cmljIG9mIGNvbm5lY3RlZCByb3V0ZXMiKQpSZXZpZXdlZC1ieTogRGF2 aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8 bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMKaW5kZXggNjllODli YWJhMTgzLi42OGQ3MTNiYTkxMzYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2FkZHJjb25mLmMKKysr IGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtNTk4OCw5ICs1OTg4LDkgQEAgc3RhdGljIHZvaWQg X19pcHY2X2lmYV9ub3RpZnkoaW50IGV2ZW50LCBzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnApCiAJ CWlmIChpZnAtPmlkZXYtPmNuZi5mb3J3YXJkaW5nKQogCQkJYWRkcmNvbmZfam9pbl9hbnljYXN0 KGlmcCk7CiAJCWlmICghaXB2Nl9hZGRyX2FueSgmaWZwLT5wZWVyX2FkZHIpKQotCQkJYWRkcmNv bmZfcHJlZml4X3JvdXRlKCZpZnAtPnBlZXJfYWRkciwgMTI4LCAwLAotCQkJCQkgICAgICBpZnAt PmlkZXYtPmRldiwgMCwgMCwKLQkJCQkJICAgICAgR0ZQX0FUT01JQyk7CisJCQlhZGRyY29uZl9w cmVmaXhfcm91dGUoJmlmcC0+cGVlcl9hZGRyLCAxMjgsCisJCQkJCSAgICAgIGlmcC0+cnRfcHJp b3JpdHksIGlmcC0+aWRldi0+ZGV2LAorCQkJCQkgICAgICAwLCAwLCBHRlBfQVRPTUlDKTsKIAkJ YnJlYWs7CiAJY2FzZSBSVE1fREVMQUREUjoKIAkJaWYgKGlmcC0+aWRldi0+Y25mLmZvcndhcmRp bmcpCi0tIAoyLjIwLjEKCgpGcm9tIDFkZGNmMjcwNWFjNjBkMGRhMTljZmZlYzg0NjJjOTVkZmM1 OGRkOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBhYmxvIE5laXJhIEF5dXNvIDxw YWJsb0BuZXRmaWx0ZXIub3JnPgpEYXRlOiBXZWQsIDI2IEZlYiAyMDIwIDE5OjQ3OjM0ICswMTAw ClN1YmplY3Q6IFtQQVRDSCAxNS81Ml0gbmV0bGluazogVXNlIG5ldGxpbmsgaGVhZGVyIGFzIGJh c2UgdG8gY2FsY3VsYXRlIGJhZAogYXR0cmlidXRlIG9mZnNldAoKWyBVcHN0cmVhbSBjb21taXQg ODRiMzI2ODAyNzY0MTQwMWJiOGFkNDQyN2E5MGEzY2NlMmViODZmNSBdCgpVc2Vyc3BhY2UgbWln aHQgc2VuZCBhIGJhdGNoIHRoYXQgaXMgY29tcG9zZWQgb2Ygc2V2ZXJhbCBuZXRsaW5rCm1lc3Nh Z2VzLiBUaGUgbmV0bGlua19hY2soKSBmdW5jdGlvbiBtdXN0IHVzZSB0aGUgcG9pbnRlciB0byB0 aGUgbmV0bGluawpoZWFkZXIgYXMgYmFzZSB0byBjYWxjdWxhdGUgdGhlIGJhZCBhdHRyaWJ1dGUg b2Zmc2V0LgoKRml4ZXM6IDJkNGJjOTMzNjhmNSAoIm5ldGxpbms6IGV4dGVuZGVkIEFDSyByZXBv cnRpbmciKQpTaWduZWQtb2ZmLWJ5OiBQYWJsbyBOZWlyYSBBeXVzbyA8cGFibG9AbmV0ZmlsdGVy Lm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0 PgotLS0KIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9uZXRsaW5rL2Fm X25ldGxpbmsuYyBiL25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwppbmRleCBlNjRiODc4NGQ0ODcu LmMyYTUxNzQzODdmZiAxMDA2NDQKLS0tIGEvbmV0L25ldGxpbmsvYWZfbmV0bGluay5jCisrKyBi L25ldC9uZXRsaW5rL2FmX25ldGxpbmsuYwpAQCAtMjQzNCw3ICsyNDM0LDcgQEAgdm9pZCBuZXRs aW5rX2FjayhzdHJ1Y3Qgc2tfYnVmZiAqaW5fc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwgaW50 IGVyciwKIAkJCQkJCQkgICAgICAgaW5fc2tiLT5sZW4pKQogCQkJCVdBUk5fT04obmxhX3B1dF91 MzIoc2tiLCBOTE1TR0VSUl9BVFRSX09GRlMsCiAJCQkJCQkgICAgKHU4ICopZXh0YWNrLT5iYWRf YXR0ciAtCi0JCQkJCQkgICAgaW5fc2tiLT5kYXRhKSk7CisJCQkJCQkgICAgKHU4ICopbmxoKSk7 CiAJCX0gZWxzZSB7CiAJCQlpZiAoZXh0YWNrLT5jb29raWVfbGVuKQogCQkJCVdBUk5fT04obmxh X3B1dChza2IsIE5MTVNHRVJSX0FUVFJfQ09PS0lFLAotLSAKMi4yMC4xCgoKRnJvbSAyM2YxNjYx YWRmZmFlNTU4MTg3Nzk2MWZmOTA5Njg0ZDI1MmYzMWRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEbWl0cnkgQm9nZGFub3YgPGRib2dkYW5vdkBtYXJ2ZWxsLmNvbT4KRGF0ZTogVHVl LCAxMCBNYXIgMjAyMCAxODoyMjoyNCArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNTJdIG5ldDog bWFjc2VjOiB1cGRhdGUgU0NJIHVwb24gTUFDIGFkZHJlc3MgY2hhbmdlLgoKWyBVcHN0cmVhbSBj b21taXQgNmZjNDk4YmM4MjkyOWVlMjNhYTJmMzVhODI4YzYxNzhkZmQzZjgyMyBdCgpTQ0kgc2hv dWxkIGJlIHVwZGF0ZWQsIGJlY2F1c2UgaXQgY29udGFpbnMgTUFDIGluIGl0cyBmaXJzdCA2IG9j dGV0cy4KCkZpeGVzOiBjMDk0NDBmN2RjYjMgKCJtYWNzZWM6IGludHJvZHVjZSBJRUVFIDgwMi4x QUUgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogRG1pdHJ5IEJvZ2Rhbm92IDxkYm9nZGFub3ZAbWFy dmVsbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hcmsgU3Rhcm92b3l0b3YgPG1zdGFyb3ZvaXRvdkBt YXJ2ZWxsLmNvbT4KU2lnbmVkLW9mZi1ieTogSWdvciBSdXNza2lraCA8aXJ1c3NraWtoQG1hcnZl bGwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjc2VjLmMgfCAxMSArKysrKystLS0tLQogMSBmaWxlIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9tYWNzZWMuYyBiL2RyaXZlcnMvbmV0L21hY3NlYy5jCmluZGV4IGFmZDhiMmEwODI0 NS4uMzIyMWMzYjRlZmIxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWNzZWMuYworKysgYi9k cml2ZXJzL25ldC9tYWNzZWMuYwpAQCAtMjg4Miw2ICsyODgyLDExIEBAIHN0YXRpYyB2b2lkIG1h Y3NlY19kZXZfc2V0X3J4X21vZGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXZfdWNfc3lu YyhyZWFsX2RldiwgZGV2KTsKIH0KIAorc3RhdGljIHNjaV90IGRldl90b19zY2koc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgX19iZTE2IHBvcnQpCit7CisJcmV0dXJuIG1ha2Vfc2NpKGRldi0+ZGV2 X2FkZHIsIHBvcnQpOworfQorCiBzdGF0aWMgaW50IG1hY3NlY19zZXRfbWFjX2FkZHJlc3Moc3Ry dWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqcCkKIHsKIAlzdHJ1Y3QgbWFjc2VjX2RldiAqbWFj c2VjID0gbWFjc2VjX3ByaXYoZGV2KTsKQEAgLTI5MDMsNiArMjkwOCw3IEBAIHN0YXRpYyBpbnQg bWFjc2VjX3NldF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB2b2lkICpwKQog CiBvdXQ6CiAJZXRoZXJfYWRkcl9jb3B5KGRldi0+ZGV2X2FkZHIsIGFkZHItPnNhX2RhdGEpOwor CW1hY3NlYy0+c2VjeS5zY2kgPSBkZXZfdG9fc2NpKGRldiwgTUFDU0VDX1BPUlRfRVMpOwogCXJl dHVybiAwOwogfQogCkBAIC0zMTc2LDExICszMTgyLDYgQEAgc3RhdGljIGJvb2wgc2NpX2V4aXN0 cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzY2lfdCBzY2kpCiAJcmV0dXJuIGZhbHNlOwogfQog Ci1zdGF0aWMgc2NpX3QgZGV2X3RvX3NjaShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBfX2JlMTYg cG9ydCkKLXsKLQlyZXR1cm4gbWFrZV9zY2koZGV2LT5kZXZfYWRkciwgcG9ydCk7Ci19Ci0KIHN0 YXRpYyBpbnQgbWFjc2VjX2FkZF9kZXYoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc2NpX3Qgc2Np LCB1OCBpY3ZfbGVuKQogewogCXN0cnVjdCBtYWNzZWNfZGV2ICptYWNzZWMgPSBtYWNzZWNfcHJp dihkZXYpOwotLSAKMi4yMC4xCgoKRnJvbSA2NGM3YTUzYWU0YTQ5NjlmN2EyMWNlNDA3M2RkNGRh NTk1ZDM5MTU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW4gQ2FycGVudGVyIDxk YW4uY2FycGVudGVyQG9yYWNsZS5jb20+CkRhdGU6IFdlZCwgNCBNYXIgMjAyMCAxNzoyNDozMSAr MDMwMApTdWJqZWN0OiBbUEFUQ0ggMTcvNTJdIG5ldDogbmZjOiBmaXggYm91bmRzIGNoZWNraW5n IGJ1Z3Mgb24gInBpcGUiCgpbIFVwc3RyZWFtIGNvbW1pdCBhM2FlZmJmZTQ1NzUxYmY3YjMzOGMx ODFiOTc2MDhlMjc2YjViYjczIF0KClRoaXMgaXMgc2ltaWxhciB0byBjb21taXQgNjc0ZDlkZTAy YWE3ICgiTkZDOiBGaXggcG9zc2libGUgbWVtb3J5CmNvcnJ1cHRpb24gd2hlbiBoYW5kbGluZyBT SERMQyBJLUZyYW1lIGNvbW1hbmRzIikgYW5kIGNvbW1pdCBkN2VlODFhZDA5ZjAKKCJORkM6IG5j aTogQWRkIHNvbWUgYm91bmRzIGNoZWNraW5nIGluIG5jaV9oY2lfY21kX3JlY2VpdmVkKCkiKSB3 aGljaAphZGRlZCByYW5nZSBjaGVja3Mgb24gInBpcGUiLgoKVGhlICJwaXBlIiB2YXJpYWJsZSBj b21lcyBza2ItPmRhdGFbMF0gaW4gbmZjX2hjaV9tc2dfcnhfd29yaygpLgpJdCdzIGluIHRoZSAw LTI1NSByYW5nZS4gIFdlJ3JlIHVzaW5nIGl0IGFzIHRoZSBhcnJheSBpbmRleCBpbnRvIHRoZQpo ZGV2LT5waXBlc1tdIGFycmF5IHdoaWNoIGhhcyBORkNfSENJX01BWF9QSVBFUyAoMTI4KSBtZW1i ZXJzLgoKRml4ZXM6IDExODI3OGYyMGFhOCAoIk5GQzogaGNpOiBBZGQgcGlwZXMgdGFibGUgdG8g cmVmZXJlbmNlIHRoZW0gd2l0aCBhIHR1cGxlIHtnYXRlLCBob3N0fSIpClNpZ25lZC1vZmYtYnk6 IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZmMvaGNpL2Nv cmUuYyB8IDE5ICsrKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9uZmMvaGNpL2NvcmUuYyBi L25ldC9uZmMvaGNpL2NvcmUuYwppbmRleCA2ZjFiMDk2ZTYwMWMuLjQzODExYjUyMTliNSAxMDA2 NDQKLS0tIGEvbmV0L25mYy9oY2kvY29yZS5jCisrKyBiL25ldC9uZmMvaGNpL2NvcmUuYwpAQCAt MTgxLDEzICsxODEsMjAgQEAgdm9pZCBuZmNfaGNpX3Jlc3BfcmVjZWl2ZWQoc3RydWN0IG5mY19o Y2lfZGV2ICpoZGV2LCB1OCByZXN1bHQsCiB2b2lkIG5mY19oY2lfY21kX3JlY2VpdmVkKHN0cnVj dCBuZmNfaGNpX2RldiAqaGRldiwgdTggcGlwZSwgdTggY21kLAogCQkJICBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogewotCXU4IGdhdGUgPSBoZGV2LT5waXBlc1twaXBlXS5nYXRlOwogCXU4IHN0YXR1 cyA9IE5GQ19IQ0lfQU5ZX09LOwogCXN0cnVjdCBoY2lfY3JlYXRlX3BpcGVfcmVzcCAqY3JlYXRl X2luZm87CiAJc3RydWN0IGhjaV9kZWxldGVfcGlwZV9ub3RpICpkZWxldGVfaW5mbzsKIAlzdHJ1 Y3QgaGNpX2FsbF9waXBlX2NsZWFyZWRfbm90aSAqY2xlYXJlZF9pbmZvOworCXU4IGdhdGU7CiAK LQlwcl9kZWJ1ZygiZnJvbSBnYXRlICV4IHBpcGUgJXggY21kICV4XG4iLCBnYXRlLCBwaXBlLCBj bWQpOworCXByX2RlYnVnKCJmcm9tIHBpcGUgJXggY21kICV4XG4iLCBwaXBlLCBjbWQpOworCisJ aWYgKHBpcGUgPj0gTkZDX0hDSV9NQVhfUElQRVMpIHsKKwkJc3RhdHVzID0gTkZDX0hDSV9BTllf RV9OT0s7CisJCWdvdG8gZXhpdDsKKwl9CisKKwlnYXRlID0gaGRldi0+cGlwZXNbcGlwZV0uZ2F0 ZTsKIAogCXN3aXRjaCAoY21kKSB7CiAJY2FzZSBORkNfSENJX0FETV9OT1RJRllfUElQRV9DUkVB VEVEOgpAQCAtMzc1LDggKzM4MiwxNCBAQCB2b2lkIG5mY19oY2lfZXZlbnRfcmVjZWl2ZWQoc3Ry dWN0IG5mY19oY2lfZGV2ICpoZGV2LCB1OCBwaXBlLCB1OCBldmVudCwKIAkJCSAgICBzdHJ1Y3Qg c2tfYnVmZiAqc2tiKQogewogCWludCByID0gMDsKLQl1OCBnYXRlID0gaGRldi0+cGlwZXNbcGlw ZV0uZ2F0ZTsKKwl1OCBnYXRlOworCisJaWYgKHBpcGUgPj0gTkZDX0hDSV9NQVhfUElQRVMpIHsK KwkJcHJfZXJyKCJEaXNjYXJkZWQgZXZlbnQgJXggdG8gaW52YWxpZCBwaXBlICV4XG4iLCBldmVu dCwgcGlwZSk7CisJCWdvdG8gZXhpdDsKKwl9CiAKKwlnYXRlID0gaGRldi0+cGlwZXNbcGlwZV0u Z2F0ZTsKIAlpZiAoZ2F0ZSA9PSBORkNfSENJX0lOVkFMSURfR0FURSkgewogCQlwcl9lcnIoIkRp c2NhcmRlZCBldmVudCAleCB0byB1bm9wZW5lZCBwaXBlICV4XG4iLCBldmVudCwgcGlwZSk7CiAJ CWdvdG8gZXhpdDsKLS0gCjIuMjAuMQoKCkZyb20gYzE5ZjllNDkyN2NiZGZhYWFmMWZhMWQ1NTBl ZTUyZWU3ZmJiMTBiNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV2lsbGVtIGRlIEJy dWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpEYXRlOiBNb24sIDkgTWFyIDIwMjAgMTE6MzQ6MzUg LTA0MDAKU3ViamVjdDogW1BBVENIIDE4LzUyXSBuZXQvcGFja2V0OiB0cGFja2V0X3JjdjogZG8g bm90IGluY3JlbWVudCByaW5nIGluZGV4IG9uCiBkcm9wCgpbIFVwc3RyZWFtIGNvbW1pdCA0NmU0 YzQyMWEwNTNjMzZiZjdhMzNkZGEyMjcyNDgxYmNhZjNlZWQzIF0KCkluIG9uZSBlcnJvciBjYXNl LCB0cGFja2V0X3JjdiBkcm9wcyBwYWNrZXRzIGFmdGVyIGluY3JlbWVudGluZyB0aGUKcmluZyBw cm9kdWNlciBpbmRleC4KCklmIHRoaXMgaGFwcGVucywgaXQgZG9lcyBub3QgdXBkYXRlIHRwX3N0 YXR1cyB0byBUUF9TVEFUVVNfVVNFUiBhbmQKdGh1cyB0aGUgcmVhZGVyIGlzIHN0YWxsZWQgZm9y IGFuIGl0ZXJhdGlvbiBvZiB0aGUgcmluZywgY2F1c2luZyBvdXQKb2Ygb3JkZXIgYXJyaXZhbC4K ClRoZSBvbmx5IHN1Y2ggZXJyb3IgcGF0aCBpcyB3aGVuIHZpcnRpb19uZXRfaGRyX2Zyb21fc2ti IGZhaWxzIGR1ZQp0byBlbmNvdW50ZXJpbmcgYW4gdW5rbm93biBHU08gdHlwZS4KClNpZ25lZC1v ZmYtYnk6IFdpbGxlbSBkZSBCcnVpam4gPHdpbGxlbWJAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9wYWNrZXQv YWZfcGFja2V0LmMgfCAxMyArKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IDExOGNkNjZiNzUxNi4uMjBlZGI3YzI1 ZTIyIDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQv YWZfcGFja2V0LmMKQEAgLTIyNzMsNiArMjI3MywxMyBAQCBzdGF0aWMgaW50IHRwYWNrZXRfcmN2 KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkJCVRQX1NU QVRVU19LRVJORUwsIChtYWNvZmYrc25hcGxlbikpOwogCWlmICghaC5yYXcpCiAJCWdvdG8gZHJv cF9uX2FjY291bnQ7CisKKwlpZiAoZG9fdm5ldCAmJgorCSAgICB2aXJ0aW9fbmV0X2hkcl9mcm9t X3NrYihza2IsIGgucmF3ICsgbWFjb2ZmIC0KKwkJCQkgICAgc2l6ZW9mKHN0cnVjdCB2aXJ0aW9f bmV0X2hkciksCisJCQkJICAgIHZpb19sZSgpLCB0cnVlLCAwKSkKKwkJZ290byBkcm9wX25fYWNj b3VudDsKKwogCWlmIChwby0+dHBfdmVyc2lvbiA8PSBUUEFDS0VUX1YyKSB7CiAJCXBhY2tldF9p bmNyZW1lbnRfcnhfaGVhZChwbywgJnBvLT5yeF9yaW5nKTsKIAkvKgpAQCAtMjI4NSwxMiArMjI5 Miw2IEBAIHN0YXRpYyBpbnQgdHBhY2tldF9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IG5ldF9kZXZpY2UgKmRldiwKIAkJCXN0YXR1cyB8PSBUUF9TVEFUVVNfTE9TSU5HOwogCX0KIAot CWlmIChkb192bmV0ICYmCi0JICAgIHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwgaC5yYXcg KyBtYWNvZmYgLQotCQkJCSAgICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRyKSwKLQkJCQkg ICAgdmlvX2xlKCksIHRydWUsIDApKQotCQlnb3RvIGRyb3Bfbl9hY2NvdW50OwotCiAJcG8tPnN0 YXRzLnN0YXRzMS50cF9wYWNrZXRzKys7CiAJaWYgKGNvcHlfc2tiKSB7CiAJCXN0YXR1cyB8PSBU UF9TVEFUVVNfQ09QWTsKLS0gCjIuMjAuMQoKCkZyb20gOTIxZjg5NTYwOTU5MTJlNDljMWVlMzRl Y2M1MDUzNzFiMzRmNmQzYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9uYXMgR29y c2tpIDxqb25hcy5nb3Jza2lAZ21haWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjAgMjA6NDY6 NTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE5LzUyXSBuZXQ6IHBoeTogYmNtNjN4eDogZml4IE9P UFMgZHVlIHRvIG1pc3NpbmcgZHJpdmVyIG5hbWUKClsgVXBzdHJlYW0gY29tbWl0IDQzZGU4MWIw NjAxZGY3ZDc5ODhkM2Y1NjE3ZWUwOTg3ZGY2NWM4ODMgXQoKNzE5NjU1YTE0OTcxICgibmV0OiBw aHk6IFJlcGxhY2UgcGh5IGRyaXZlciBmZWF0dXJlcyB1MzIgd2l0aCBsaW5rX21vZGUKYml0bWFw Iikgd2FzIGEgYml0IG92ZXItZWFnZXIgYW5kIGFsc28gcmVtb3ZlZCB0aGUgc2Vjb25kIHBoeSBk cml2ZXIncwpuYW1lLCByZXN1bHRpbmcgaW4gYSBuYXN0eSBPT1BTIG9uIHJlZ2lzdHJhdGlvbjoK ClsgICAgMS4zMTk4NTRdIENQVSAwIFVuYWJsZSB0byBoYW5kbGUga2VybmVsIHBhZ2luZyByZXF1 ZXN0IGF0IHZpcnR1YWwgYWRkcmVzcyAwMDAwMDAwMCwgZXBjID09IDgwNGRkNTBjLCByYSA9PSA4 MDRkZDRmMApbICAgIDEuMzMwODU5XSBPb3BzWyMxXToKWyAgICAxLjMzMzEzOF0gQ1BVOiAwIFBJ RDogMSBDb21tOiBzd2FwcGVyLzAgTm90IHRhaW50ZWQgNS40LjIyICMwClsgICAgMS4zMzkyMTdd ICQgMCAgIDogMDAwMDAwMDAgMDAwMDAwMDEgODdjYTdmMDAgODA1YzE4NzQKWyAgICAxLjM0NDU5 MF0gJCA0ICAgOiAwMDAwMDAwMCAwMDAwMDA0NyAwMDU4NTAwMCA4NzAxZjgwMApbICAgIDEuMzQ5 OTY1XSAkIDggICA6IDg3MDFmODAwIDgwNGY0YTVjIDAwMDAwMDAzIDY0NzI2OTc2ClsgICAgMS4z NTUzNDFdICQxMiAgIDogMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAxMTQKWyAgICAx LjM2MDcxOF0gJDE2ICAgOiA4N2NhN2Y4MCAwMDAwMDAwMCAwMDAwMDAwMCA4MDYzOWZlNApbICAg IDEuMzY2MDkzXSAkMjAgICA6IDAwMDAwMDAyIDAwMDAwMDAwIDgwNjQ0MWQwIDgwYjkwMDAwClsg ICAgMS4zNzE0NzBdICQyNCAgIDogMDAwMDAwMDAgMDAwMDAwMDAKWyAgICAxLjM3Njg0N10gJDI4 ICAgOiA4N2MxZTAwMCA4N2MxZmRhMCA4MGI5MDAwMCA4MDRkZDRmMApbICAgIDEuMzgyMjI0XSBI aSAgICA6IGQxYzhmOGRhClsgICAgMS4zODUxODBdIExvICAgIDogNTUxOGE0ODAKWyAgICAxLjM4 ODE4Ml0gZXBjICAgOiA4MDRkZDUwYyBrc2V0X2ZpbmRfb2JqKzB4M2MvMHgxMTQKWyAgICAxLjM5 MzM0NV0gcmEgICAgOiA4MDRkZDRmMCBrc2V0X2ZpbmRfb2JqKzB4MjAvMHgxMTQKWyAgICAxLjM5 ODUzMF0gU3RhdHVzOiAxMDAwODcwMyBLRVJORUwgRVhMIElFClsgICAgMS40MDI4MzNdIENhdXNl IDogMDA4MDAwMDggKEV4Y0NvZGUgMDIpClsgICAgMS40MDY5NTJdIEJhZFZBIDogMDAwMDAwMDAK WyAgICAxLjQwOTkxM10gUHJJZCAgOiAwMDAyYTA3NSAoQnJvYWRjb20gQk1JUFM0MzUwKQpbICAg IDEuNDE0NzQ1XSBNb2R1bGVzIGxpbmtlZCBpbjoKWyAgICAxLjQxNzg5NV0gUHJvY2VzcyBzd2Fw cGVyLzAgKHBpZDogMSwgdGhyZWFkaW5mbz0ocHRydmFsKSwgdGFzaz0ocHRydmFsKSwgdGxzPTAw MDAwMDAwKQpbICAgIDEuNDI2MjE0XSBTdGFjayA6IDg3Y2VjMDAwIDgwNjMwMDAwIDgwNjM5Mzcw IDgwNjQwNjU4IDgwNjQwMDAwIDgwMDQ5YWY0IDgwNjM5ZmU0IDgwNjNhMGQ4ClsgICAgMS40MzQ4 MTZdICAgICAgICAgODA2M2EwZDggODAyZWYwNzggMDAwMDAwMDIgMDAwMDAwMDAgODA2NDQxZDAg ODBiOTAwMDAgODA2M2EwZDggODAyZWYxMTQKWyAgICAxLjQ0MzQxN10gICAgICAgICA4N2NlYTBk ZSA4N2MxZmRlMCAwMDAwMDAwMCA4MDRkZTQ4OCA4N2NlYTAwMCA4MDYzYTBkOCA4MDYzYTBkOCA4 MDMzNGU0OApbICAgIDEuNDUyMDE4XSAgICAgICAgIDgwNjQwMDAwIDgwNjM5ODRjIDgwNjM5YmY0 IDAwMDAwMDAwIDgwNjVkZTQ4IDAwMDAwMDAxIDgwNjNhMGQ4IDgwMzM0ZWQwClsgICAgMS40NjA2 MjBdICAgICAgICAgODA2NDQxZDAgODBiOTAwMDAgODBiOTAwMDAgODAyZWYxNjQgODA2NWRkNzAg ODA2MjAwMDAgODBiOTAwMDAgODA2NWRlNTgKWyAgICAxLjQ2OTIyMl0gICAgICAgICAuLi4KWyAg ICAxLjQ3MTczNF0gQ2FsbCBUcmFjZToKWyAgICAxLjQ3NDI1NV0gWzw4MDRkZDUwYz5dIGtzZXRf ZmluZF9vYmorMHgzYy8weDExNApbICAgIDEuNDc5MTQxXSBbPDgwMmVmMDc4Pl0gZHJpdmVyX2Zp bmQrMHgxYy8weDQ0ClsgICAgMS40ODM2NjVdIFs8ODAyZWYxMTQ+XSBkcml2ZXJfcmVnaXN0ZXIr MHg3NC8weDE0OApbICAgIDEuNDg4NzE5XSBbPDgwMzM0ZTQ4Pl0gcGh5X2RyaXZlcl9yZWdpc3Rl cisweDljLzB4ZDAKWyAgICAxLjQ5Mzk2OF0gWzw4MDMzNGVkMD5dIHBoeV9kcml2ZXJzX3JlZ2lz dGVyKzB4NTQvMHhlOApbICAgIDEuNDk5MzQ1XSBbPDgwMDEwNjFjPl0gZG9fb25lX2luaXRjYWxs KzB4N2MvMHgxZjQKWyAgICAxLjUwNDM3NF0gWzw4MDY0NGVkOD5dIGtlcm5lbF9pbml0X2ZyZWVh YmxlKzB4MWQ0LzB4MmI0ClsgICAgMS41MDk5NDBdIFs8ODA0ZjRlMjQ+XSBrZXJuZWxfaW5pdCsw eDEwLzB4ZjgKWyAgICAxLjUxNDUwMl0gWzw4MDAxOGU2OD5dIHJldF9mcm9tX2tlcm5lbF90aHJl YWQrMHgxNC8weDFjClsgICAgMS41MjAwNDBdIENvZGU6IDEwNjAwMDBjICAwMjIwMjAyNSAgOTA2 NTAwMDAgPDkwODEwMDAwPiAyNDYzMDAwMSAgMTQyNTAwMDQgIDI0ODQwMDAxICAxNGEwZmZmYiAg OTA2NTAwMDAKWyAgICAxLjUzMDA2MV0KWyAgICAxLjUzMTY5OF0gLS0tWyBlbmQgdHJhY2UgZDUy ZjE3MTdjZDI5YmRjOCBdLS0tCgpGaXggaXQgYnkgcmVhZGRpbmcgdGhlIG5hbWUuCgpGaXhlczog NzE5NjU1YTE0OTcxICgibmV0OiBwaHk6IFJlcGxhY2UgcGh5IGRyaXZlciBmZWF0dXJlcyB1MzIg d2l0aCBsaW5rX21vZGUgYml0bWFwIikKU2lnbmVkLW9mZi1ieTogSm9uYXMgR29yc2tpIDxqb25h cy5nb3Jza2lAZ21haWwuY29tPgpBY2tlZC1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxs aUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9waHkvYmNtNjN4eC5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvYmNtNjN4 eC5jIGIvZHJpdmVycy9uZXQvcGh5L2JjbTYzeHguYwppbmRleCAyM2YxOTU4YmE2YWQuLjQ1OWZi MjA2OWM3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvcGh5L2JjbTYzeHguYworKysgYi9kcml2 ZXJzL25ldC9waHkvYmNtNjN4eC5jCkBAIC03Myw2ICs3Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGh5 X2RyaXZlciBiY202M3h4X2RyaXZlcltdID0gewogCS8qIHNhbWUgcGh5IGFzIGFib3ZlLCB3aXRo IGp1c3QgYSBkaWZmZXJlbnQgT1VJICovCiAJLnBoeV9pZAkJPSAweDAwMmJkYzAwLAogCS5waHlf aWRfbWFzawk9IDB4ZmZmZmZjMDAsCisJLm5hbWUJCT0gIkJyb2FkY29tIEJDTTYzWFggKDIpIiwK IAkvKiBQSFlfQkFTSUNfRkVBVFVSRVMgKi8KIAkuZmxhZ3MJCT0gUEhZX0lTX0lOVEVSTkFMLAog CS5jb25maWdfaW5pdAk9IGJjbTYzeHhfY29uZmlnX2luaXQsCi0tIAoyLjIwLjEKCgpGcm9tIGJl ZjJlZWFmNWU1ODQ5MTU4N2E1MzhjMjQ3Mjk4YjM2YTkyMmYxYzIgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFJlbWkgUG9tbWFyZWwgPHJlcGtAdHJpcGxlZmF1Lmx0PgpEYXRlOiBTdW4s IDggTWFyIDIwMjAgMTA6MjU6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDIwLzUyXSBuZXQ6IHN0 bW1hYzogZHdtYWMxMDAwOiBEaXNhYmxlIEFDUyBpZiBlbmhhbmNlZCBkZXNjcwogYXJlIG5vdCB1 c2VkCgpbIFVwc3RyZWFtIGNvbW1pdCBiNzIzYmQ5MzM5ODBmNDk1NmRhYmM4YThkODRiM2U4M2Jl OGQwOTRjIF0KCkFDUyAoYXV0byBQQUQvRkNTIHN0cmlwcGluZykgcmVtb3ZlcyBGQ1Mgb2ZmIDgw Mi4zIHBhY2tldHMgKExMQykgc28gdGhhdAp0aGVyZSBpcyBubyBuZWVkIHRvIG1hbnVhbGx5IHN0 cmlwIGl0IGZvciBzdWNoIHBhY2tldHMuIFRoZSBlbmhhbmNlZCBETUEKZGVzY3JpcHRvcnMgYWxs b3cgdG8gZmxhZyBMTEMgcGFja2V0cyBzbyB0aGF0IHRoZSByZWNlaXZpbmcgY2FsbGJhY2sgY2Fu CnVzZSB0aGF0IHRvIHN0cmlwIEZDUyBtYW51YWxseSBvciBub3QuIE9uIHRoZSBvdGhlciBoYW5k LCBub3JtYWwKZGVzY3JpcHRvcnMgZG8gbm90IHN1cHBvcnQgdGhhdC4KClRodXMgaW4gb3JkZXIg dG8gbm90IHRydW5jYXRlIExMQyBwYWNrZXQgQUNTIHNob3VsZCBiZSBkaXNhYmxlZCB3aGVuCnVz aW5nIG5vcm1hbCBETUEgZGVzY3JpcHRvcnMuCgpGaXhlczogNDdkZDdhNTQwYjhhMCAoIm5ldDog YWRkIHN1cHBvcnQgZm9yIFNUTWljcm9lbGVjdHJvbmljcyBFdGhlcm5ldCBjb250cm9sbGVycy4i KQpTaWduZWQtb2ZmLWJ5OiBSZW1pIFBvbW1hcmVsIDxyZXBrQHRyaXBsZWZhdS5sdD4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMgfCAzICsrLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jCmlu ZGV4IDNkNjlkYTExMjYyNS4uNDNhNzg1Zjg2YzY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMKQEAgLTI0LDYgKzI0LDcg QEAKIHN0YXRpYyB2b2lkIGR3bWFjMTAwMF9jb3JlX2luaXQoc3RydWN0IG1hY19kZXZpY2VfaW5m byAqaHcsCiAJCQkJc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKKwlzdHJ1Y3Qgc3RtbWFjX3By aXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpOwogCXZvaWQgX19pb21lbSAqaW9hZGRyID0gaHct PnBjc3I7CiAJdTMyIHZhbHVlID0gcmVhZGwoaW9hZGRyICsgR01BQ19DT05UUk9MKTsKIAlpbnQg bXR1ID0gZGV2LT5tdHU7CkBAIC0zNSw3ICszNiw3IEBAIHN0YXRpYyB2b2lkIGR3bWFjMTAwMF9j b3JlX2luaXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsCiAJICogQnJvYWRjb20gdGFncyBj YW4gbG9vayBsaWtlIGludmFsaWQgTExDL1NOQVAgcGFja2V0cyBhbmQgY2F1c2UgdGhlCiAJICog aGFyZHdhcmUgdG8gdHJ1bmNhdGUgcGFja2V0cyBvbiByZWNlcHRpb24uCiAJICovCi0JaWYgKG5l dGRldl91c2VzX2RzYShkZXYpKQorCWlmIChuZXRkZXZfdXNlc19kc2EoZGV2KSB8fCAhcHJpdi0+ cGxhdC0+ZW5oX2Rlc2MpCiAJCXZhbHVlICY9IH5HTUFDX0NPTlRST0xfQUNTOwogCiAJaWYgKG10 dSA+IDE1MDApCi0tIAoyLjIwLjEKCgpGcm9tIDU1ODgzNGI2N2ZjYWYxODhmYjEzMmQzZmNiMDdm MzE0MGZmYzM1M2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IENvbGluIElhbiBLaW5n IDxjb2xpbi5raW5nQGNhbm9uaWNhbC5jb20+CkRhdGU6IFRodSwgMTIgTWFyIDIwMjAgMTU6MDQ6 MzAgKzAwMDAKU3ViamVjdDogW1BBVENIIDIxLzUyXSBuZXQ6IHN5c3RlbXBvcnQ6IGZpeCBpbmRl eCBjaGVjayB0byBhdm9pZCBhbiBhcnJheSBvdXQKIG9mIGJvdW5kcyBhY2Nlc3MKClsgVXBzdHJl YW0gY29tbWl0IGMwMzY4NTk1YzE2Mzk5NDc4MzljMGRiODI5NGVlOTZhY2EwYjNiODYgXQoKQ3Vy cmVudGx5IHRoZSBib3VuZHMgY2hlY2sgb24gaW5kZXggaXMgb2ZmIGJ5IG9uZSBhbmQgY2FuIGxl YWQgdG8KYW4gb3V0IG9mIGJvdW5kcyBhY2Nlc3Mgb24gYXJyYXkgcHJpdi0+ZmlsdGVyc19sb2Mg d2hlbiBpbmRleCBpcwpSWENIS19CUkNNX1RBR19NQVguCgpGaXhlczogYmI5MDUxYTJiMjMwICgi bmV0OiBzeXN0ZW1wb3J0OiBBZGQgc3VwcG9ydCBmb3IgV0FLRV9GSUxURVIiKQpTaWduZWQtb2Zm LWJ5OiBDb2xpbiBJYW4gS2luZyA8Y29saW4ua2luZ0BjYW5vbmljYWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYmNtc3lzcG9ydC5jCmluZGV4IDRhMjc1NzdlMTM3Yi4uYWQ4NmExODZkZGM1IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKKysrIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYmNtc3lzcG9ydC5jCkBAIC0yMTM1LDcgKzIx MzUsNyBAQCBzdGF0aWMgaW50IGJjbV9zeXNwb3J0X3J1bGVfc2V0KHN0cnVjdCBiY21fc3lzcG9y dF9wcml2ICpwcml2LAogCQlyZXR1cm4gLUVOT1NQQzsKIAogCWluZGV4ID0gZmluZF9maXJzdF96 ZXJvX2JpdChwcml2LT5maWx0ZXJzLCBSWENIS19CUkNNX1RBR19NQVgpOwotCWlmIChpbmRleCA+ IFJYQ0hLX0JSQ01fVEFHX01BWCkKKwlpZiAoaW5kZXggPj0gUlhDSEtfQlJDTV9UQUdfTUFYKQog CQlyZXR1cm4gLUVOT1NQQzsKIAogCS8qIExvY2F0aW9uIGlzIHRoZSBjbGFzc2lmaWNhdGlvbiBJ RCwgYW5kIGluZGV4IGlzIHRoZSBwb3NpdGlvbgotLSAKMi4yMC4xCgoKRnJvbSBkMGYyZjI5ODQx MGNkYmUxYTY4NzE1MzU0Nzc4NzE1MmY2MGQ5NzA4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBZb3UtU2hlbmcgWWFuZyA8dmljYW1vLnlhbmdAY2Fub25pY2FsLmNvbT4KRGF0ZTogV2Vk LCAyNiBGZWIgMjAyMCAyMzozNzoxMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjIvNTJdIHI4MTUy OiBjaGVjayBkaXNjb25uZWN0IHN0YXR1cyBhZnRlciBsb25nIHNsZWVwCgpbIFVwc3RyZWFtIGNv bW1pdCBkNjRjN2EwODAzNGIzMmMyODVlNTc2MjA4YWU0NGZjM2JhM2ZhN2RmIF0KCkRlbGwgVVNC IFR5cGUgQyBkb2NraW5nIFdEMTkvV0QxOURDIGF0dGFjaGVzIGFkZGl0aW9uYWwgcGVyaXBoZXJh bHMgYXM6CgogIC86IEJ1cyAwMi5Qb3J0IDE6IERldiAxLCBDbGFzcz1yb290X2h1YiwgRHJpdmVy PXhoY2lfaGNkLzZwLCA1MDAwTQogICAgICB8X18gUG9ydCAxOiBEZXYgMTEsIElmIDAsIENsYXNz PUh1YiwgRHJpdmVyPWh1Yi80cCwgNTAwME0KICAgICAgICAgIHxfXyBQb3J0IDM6IERldiAxMiwg SWYgMCwgQ2xhc3M9SHViLCBEcml2ZXI9aHViLzRwLCA1MDAwTQogICAgICAgICAgfF9fIFBvcnQg NDogRGV2IDEzLCBJZiAwLCBDbGFzcz1WZW5kb3IgU3BlY2lmaWMgQ2xhc3MsCiAgICAgICAgICAg ICAgRHJpdmVyPXI4MTUyLCA1MDAwTQoKd2hlcmUgdXNiIDItMS0zIGlzIGEgaHViIGNvbm5lY3Rp bmcgYWxsIFVTQiBUeXBlLUEvQyBwb3J0cyBvbiB0aGUgZG9jay4KCldoZW4gaG90cGx1Z2dpbmcg c3VjaCBkb2NrIHdpdGggYWRkaXRpb25hbCB1c2IgZGV2aWNlcyBhbHJlYWR5IGF0dGFjaGVkIG9u Cml0LCB0aGUgcHJvYmluZyBwcm9jZXNzIG1heSByZXNldCB1c2IgMi4xIHBvcnQsIHRoZXJlZm9y ZSByODE1MiBldGhlcm5ldApkZXZpY2UgaXMgYWxzbyByZXNldC4gSG93ZXZlciwgZHVyaW5nIHI4 MTUyIGRldmljZSBpbml0IHRoZXJlIGFyZSBzZXZlcmFsCmZvci1sb29wcyB0aGF0LCB3aGVuIGl0 J3MgdW5hYmxlIHRvIHJldHJpZXZlIGhhcmR3YXJlIHJlZ2lzdGVycyBkdWUgdG8KYmVpbmcgZGlz Y29ubmVjdGVkIGZyb20gVVNCLCBtYXkgdGFrZSB1cCB0byAxNCBzZWNvbmRzIGVhY2ggaW4gcHJh Y3RpY2UsCmFuZCB0aGF0IGhhcyB0byBiZSBjb21wbGV0ZWQgYmVmb3JlIFVTQiBtYXkgcmUtZW51 bWVyYXRlIGRldmljZXMgb24gdGhlCmJ1cy4gQXMgYSByZXN1bHQsIGRldmljZXMgYXR0YWNoZWQg dG8gdGhlIGRvY2sgd2lsbCBvbmx5IGJlIGF2YWlsYWJsZQphZnRlciBuZWFybHkgMSBtaW51dGUg YWZ0ZXIgdGhlIGRvY2sgd2FzIHBsdWdnZWQgaW46CgogIFsgMjE2LjM4ODI5MF0gWzI1MF0gcjgx NTIgMi0xLjQ6MS4wOiB1c2JfcHJvYmVfaW50ZXJmYWNlCiAgWyAyMTYuMzg4MjkyXSBbMjUwXSBy ODE1MiAyLTEuNDoxLjA6IHVzYl9wcm9iZV9pbnRlcmZhY2UgLSBnb3QgaWQKICBbIDI1OC44MzA0 MTBdIHI4MTUyIDItMS40OjEuMCAodW5uYW1lZCBuZXRfZGV2aWNlKSAodW5pbml0aWFsaXplZCk6 IFBIWSBub3QgcmVhZHkKICBbIDI1OC44MzA0NjBdIHI4MTUyIDItMS40OjEuMCAodW5uYW1lZCBu ZXRfZGV2aWNlKSAodW5pbml0aWFsaXplZCk6IEludmFsaWQgaGVhZGVyIHdoZW4gcmVhZGluZyBw YXNzLXRocnUgTUFDIGFkZHIKICBbIDI1OC44MzA0NjRdIHI4MTUyIDItMS40OjEuMCAodW5uYW1l ZCBuZXRfZGV2aWNlKSAodW5pbml0aWFsaXplZCk6IEdldCBldGhlciBhZGRyIGZhaWwKClRoaXMg aGFwcGVucyBpbiwgZm9yIGV4YW1wbGUsIHI4MTUzX2luaXQ6CgogIHN0YXRpYyBpbnQgZ2VuZXJp Y19vY3BfcmVhZChzdHJ1Y3QgcjgxNTIgKnRwLCB1MTYgaW5kZXgsIHUxNiBzaXplLAoJCQkgICAg dm9pZCAqZGF0YSwgdTE2IHR5cGUpCiAgewogICAgaWYgKHRlc3RfYml0KFJUTDgxNTJfVU5QTFVH LCAmdHAtPmZsYWdzKSkKICAgICAgcmV0dXJuIC1FTk9ERVY7CiAgICAuLi4KICB9CgogIHN0YXRp YyB1MTYgb2NwX3JlYWRfd29yZChzdHJ1Y3QgcjgxNTIgKnRwLCB1MTYgdHlwZSwgdTE2IGluZGV4 KQogIHsKICAgIHUzMiBkYXRhOwogICAgLi4uCiAgICBnZW5lcmljX29jcF9yZWFkKHRwLCBpbmRl eCwgc2l6ZW9mKHRtcCksICZ0bXAsIHR5cGUgfCBieWVuKTsKCiAgICBkYXRhID0gX19sZTMyX3Rv X2NwdSh0bXApOwogICAgLi4uCiAgICByZXR1cm4gKHUxNilkYXRhOwogIH0KCiAgc3RhdGljIHZv aWQgcjgxNTNfaW5pdChzdHJ1Y3QgcjgxNTIgKnRwKQogIHsKICAgIC4uLgogICAgaWYgKHRlc3Rf Yml0KFJUTDgxNTJfVU5QTFVHLCAmdHAtPmZsYWdzKSkKICAgICAgcmV0dXJuOwoKICAgIGZvciAo aSA9IDA7IGkgPCA1MDA7IGkrKykgewogICAgICBpZiAob2NwX3JlYWRfd29yZCh0cCwgTUNVX1RZ UEVfUExBLCBQTEFfQk9PVF9DVFJMKSAmCiAgICAgICAgICBBVVRPTE9BRF9ET05FKQogICAgICAg IGJyZWFrOwogICAgICBtc2xlZXAoMjApOwogICAgfQogICAgLi4uCiAgfQoKU2luY2Ugb2NwX3Jl YWRfd29yZCgpIGRvZXNuJ3QgY2hlY2sgdGhlIHJldHVybiBzdGF0dXMgb2YKZ2VuZXJpY19vY3Bf cmVhZCgpLCBhbmQgdGhlIG9ubHkgZXhpdCBjb25kaXRpb24gZm9yIHRoZSBsb29wIGlzIHRvIGhh dmUKYSBtYXRjaCBpbiB0aGUgcmV0dXJuZWQgdmFsdWUsIHN1Y2ggbG9vcHMgd2lsbCBvbmx5IGVu ZHMgYWZ0ZXIgZXhjZWVkaW5nCml0cyBtYXhpbXVtIHJ1bnMgd2hlbiB0aGUgZGV2aWNlIGhhcyBi ZWVuIG1hcmtlZCBhcyBkaXNjb25uZWN0ZWQsIHdoaWNoCnRha2VzIDUwMCAqIDIwbXMgPSAxMCBz ZWNvbmRzIGluIHRoZW9yeSwgMTQgaW4gcHJhY3RpY2UuCgpUbyBzb2x2ZSB0aGlzIGxvbmcgbGF0 ZW5jeSBhbm90aGVyIHRlc3QgdG8gUlRMODE1Ml9VTlBMVUcgZmxhZyBzaG91bGQgYmUKYWRkZWQg YWZ0ZXIgdGhvc2UgMjBtcyBzbGVlcCB0byBza2lwIHVubmVjZXNzYXJ5IGxvb3BzLCBzbyB0aGF0 IHRoZSBkZXZpY2UKcHJvYmUgY2FuIGNvbXBsZXRlIGVhcmx5IGFuZCBwcm9jZWVkIHRvIHBhcmVu dCBwb3J0IHJlc2V0L3JlcHJvYmUgcHJvY2Vzcy4KClRoaXMgY2FuIGJlIHJlcHJvZHVjZWQgb24g YWxsIGtlcm5lbCB2ZXJzaW9ucyB1cCB0byBsYXRlc3QgdjUuNi1yYzIsIGJ1dAphZnRlciB2NS41 LXJjNyB0aGUgcmVwcm9kdWNlIHJhdGUgaXMgZHJhbWF0aWNhbGx5IGxvd2VyZWQgdG8gMS8zMCBv ciBsZXNzCndoaWxlIGl0IHdhcyBhcm91bmQgMS8yLgoKU2lnbmVkLW9mZi1ieTogWW91LVNoZW5n IFlhbmcgPHZpY2Ftby55YW5nQGNhbm9uaWNhbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvcjgxNTIu YyB8IDggKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC91c2IvcjgxNTIuYyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCmlu ZGV4IDY5MTI2MjRlZWQ0YS4uNDRlYTVkY2M0M2ZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91 c2IvcjgxNTIuYworKysgYi9kcml2ZXJzL25ldC91c2IvcjgxNTIuYwpAQCAtMzAwNiw2ICszMDA2 LDggQEAgc3RhdGljIHUxNiByODE1M19waHlfc3RhdHVzKHN0cnVjdCByODE1MiAqdHAsIHUxNiBk ZXNpcmVkKQogCQl9CiAKIAkJbXNsZWVwKDIwKTsKKwkJaWYgKHRlc3RfYml0KFJUTDgxNTJfVU5Q TFVHLCAmdHAtPmZsYWdzKSkKKwkJCWJyZWFrOwogCX0KIAogCXJldHVybiBkYXRhOwpAQCAtNDQx OSw3ICs0NDIxLDEwIEBAIHN0YXRpYyB2b2lkIHI4MTUzX2luaXQoc3RydWN0IHI4MTUyICp0cCkK IAkJaWYgKG9jcF9yZWFkX3dvcmQodHAsIE1DVV9UWVBFX1BMQSwgUExBX0JPT1RfQ1RSTCkgJgog CQkgICAgQVVUT0xPQURfRE9ORSkKIAkJCWJyZWFrOworCiAJCW1zbGVlcCgyMCk7CisJCWlmICh0 ZXN0X2JpdChSVEw4MTUyX1VOUExVRywgJnRwLT5mbGFncykpCisJCQlicmVhazsKIAl9CiAKIAlk YXRhID0gcjgxNTNfcGh5X3N0YXR1cyh0cCwgMCk7CkBAIC00NTQ1LDcgKzQ1NTAsMTAgQEAgc3Rh dGljIHZvaWQgcjgxNTNiX2luaXQoc3RydWN0IHI4MTUyICp0cCkKIAkJaWYgKG9jcF9yZWFkX3dv cmQodHAsIE1DVV9UWVBFX1BMQSwgUExBX0JPT1RfQ1RSTCkgJgogCQkgICAgQVVUT0xPQURfRE9O RSkKIAkJCWJyZWFrOworCiAJCW1zbGVlcCgyMCk7CisJCWlmICh0ZXN0X2JpdChSVEw4MTUyX1VO UExVRywgJnRwLT5mbGFncykpCisJCQlicmVhazsKIAl9CiAKIAlkYXRhID0gcjgxNTNfcGh5X3N0 YXR1cyh0cCwgMCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDZhMDNlYTA2ZDliMDNkOWQ4ZmVlYzU1Zjgx M2ZiOThkNzAyODc4OGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVkd2FyZCBDcmVl IDxlY3JlZUBzb2xhcmZsYXJlLmNvbT4KRGF0ZTogTW9uLCA5IE1hciAyMDIwIDE4OjE2OjI0ICsw MDAwClN1YmplY3Q6IFtQQVRDSCAyMy81Ml0gc2ZjOiBkZXRhY2ggZnJvbSBjYl9wYWdlIGluIGVm eF9jb3B5X2NoYW5uZWwoKQoKWyBVcHN0cmVhbSBjb21taXQgNGIxYmQ5ZGIwNzhmN2Q1MzMyYzg2 MDFhMmY1YmQ0M2NmMDQ1OGZkNCBdCgpJdCdzIGEgcmVzb3VyY2UsIG5vdCBhIHBhcmFtZXRlciwg c28gd2UgY2FuJ3QgY29weSBpdCBpbnRvIHRoZSBuZXcKIGNoYW5uZWwncyBUWCBxdWV1ZXMsIG90 aGVyd2lzZSBhbGlhc2luZyB3aWxsIGxlYWQgdG8gcmVzb3VyY2UtCiBtYW5hZ2VtZW50IGJ1Z3Mg aWYgdGhlIGNoYW5uZWwgaXMgc3Vic2VxdWVudGx5IHRvcm4gZG93biB3aXRob3V0CiBiZWluZyBp bml0aWFsaXNlZC4KCkJlZm9yZSB0aGUgRml4ZXM6LXRhZ2dlZCBjb21taXQgdGhlcmUgd2FzIGEg c2ltaWxhciBidWcgd2l0aAogdHNvaF9wYWdlLCBidXQgSSdtIG5vdCBzdXJlIGl0J3Mgd29ydGgg ZG9pbmcgYW5vdGhlciBmaXggZm9yIHN1Y2gKIG9sZCBrZXJuZWxzLgoKRml4ZXM6IGU5MTE3ZTUw OTllYSAoInNmYzogRmlybXdhcmUtQXNzaXN0ZWQgVFNPIHZlcnNpb24gMiIpClN1Z2dlc3RlZC1i eTogRGVyZWsgU2h1dGUgPERlcmVrLlNodXRlQHN0cmF0dXMuY29tPgpTaWduZWQtb2ZmLWJ5OiBF ZHdhcmQgQ3JlZSA8ZWNyZWVAc29sYXJmbGFyZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9z ZmMvZWZ4LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3NmYy9lZnguYwppbmRleCAyZmVmNzQwMjIzM2UuLjgyMzkxYWJiZDQyYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3NmYy9lZnguYwpAQCAtNTE5LDYgKzUxOSw3IEBAIGVmeF9jb3B5X2NoYW5uZWwoY29uc3Qgc3Ry dWN0IGVmeF9jaGFubmVsICpvbGRfY2hhbm5lbCkKIAkJaWYgKHR4X3F1ZXVlLT5jaGFubmVsKQog CQkJdHhfcXVldWUtPmNoYW5uZWwgPSBjaGFubmVsOwogCQl0eF9xdWV1ZS0+YnVmZmVyID0gTlVM TDsKKwkJdHhfcXVldWUtPmNiX3BhZ2UgPSBOVUxMOwogCQltZW1zZXQoJnR4X3F1ZXVlLT50eGQs IDAsIHNpemVvZih0eF9xdWV1ZS0+dHhkKSk7CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDdlOGJl MWYwOGFlMTYyYmU5YmEzZDEzYjAyYTQ2Y2ExYjg2NjBmYjggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCA0 IE1hciAyMDIwIDE1OjUxOjQzIC0wODAwClN1YmplY3Q6IFtQQVRDSCAyNC81Ml0gc2xpcDogbWFr ZSBzbGhjX2NvbXByZXNzKCkgbW9yZSByb2J1c3QgYWdhaW5zdAogbWFsaWNpb3VzIHBhY2tldHMK ClsgVXBzdHJlYW0gY29tbWl0IDExMGE0MGRmYjcwOGZlOTQwYTNmMzcwNGQ0NzBlNDMxYzM2OGQy NTYgXQoKQmVmb3JlIGFjY2Vzc2luZyB2YXJpb3VzIGZpZWxkcyBpbiBJUFY0IG5ldHdvcmsgaGVh ZGVyCmFuZCBUQ1AgaGVhZGVyLCBtYWtlIHN1cmUgdGhlIHBhY2tldCA6CgotIEhhcyBJUCB2ZXJz aW9uIDQgKGlwLT52ZXJzaW9uID09IDQpCi0gSGFzIG5vdCBhIHNpbGx5IG5ldHdvcmsgbGVuZ3Ro IChpcC0+aWhsID49IDUpCi0gSXMgYmlnIGVub3VnaCB0byBob2xkIG5ldHdvcmsgYW5kIHRyYW5z cG9ydCBoZWFkZXJzCi0gSGFzIG5vdCBhIHNpbGx5IFRDUCBoZWFkZXIgc2l6ZSAodGgtPmRvZmYg Pj0gc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpIC8gNCkKCnN5emJvdCByZXBvcnRlZCA6CgpCVUc6IEtN U0FOOiB1bmluaXQtdmFsdWUgaW4gc2xoY19jb21wcmVzcysweDViOS8weDJlNjAgZHJpdmVycy9u ZXQvc2xpcC9zbGhjLmM6MjcwCkNQVTogMCBQSUQ6IDExNzI4IENvbW06IHN5ei1leGVjdXRvcjIz MSBOb3QgdGFpbnRlZCA1LjYuMC1yYzItc3l6a2FsbGVyICMwCkhhcmR3YXJlIG5hbWU6IEdvb2ds ZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2ds ZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3 NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDFjOS8weDIyMCBsaWIvZHVtcF9zdGFjay5jOjExOAog a21zYW5fcmVwb3J0KzB4ZjcvMHgxZTAgbW0va21zYW4va21zYW5fcmVwb3J0LmM6MTE4CiBfX21z YW5fd2FybmluZysweDU4LzB4YTAgbW0va21zYW4va21zYW5faW5zdHIuYzoyMTUKIHNsaGNfY29t cHJlc3MrMHg1YjkvMHgyZTYwIGRyaXZlcnMvbmV0L3NsaXAvc2xoYy5jOjI3MAogcHBwX3NlbmRf ZnJhbWUgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6MTYzNyBbaW5saW5lXQogX19wcHBf eG1pdF9wcm9jZXNzKzB4MTkwMi8weDI5NzAgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6 MTQ5NQogcHBwX3htaXRfcHJvY2VzcysweDE0Ny8weDJmMCBkcml2ZXJzL25ldC9wcHAvcHBwX2dl bmVyaWMuYzoxNTE2CiBwcHBfd3JpdGUrMHg2YmIvMHg3OTAgZHJpdmVycy9uZXQvcHBwL3BwcF9n ZW5lcmljLmM6NTEyCiBkb19sb29wX3JlYWR2X3dyaXRldiBmcy9yZWFkX3dyaXRlLmM6NzE3IFtp bmxpbmVdCiBkb19pdGVyX3dyaXRlKzB4ODEyLzB4ZGMwIGZzL3JlYWRfd3JpdGUuYzoxMDAwCiBj b21wYXRfd3JpdGV2KzB4MmRmLzB4NWEwIGZzL3JlYWRfd3JpdGUuYzoxMzUxCiBkb19jb21wYXRf cHdyaXRldjY0IGZzL3JlYWRfd3JpdGUuYzoxNDAwIFtpbmxpbmVdCiBfX2RvX2NvbXBhdF9zeXNf cHdyaXRldiBmcy9yZWFkX3dyaXRlLmM6MTQyMCBbaW5saW5lXQogX19zZV9jb21wYXRfc3lzX3B3 cml0ZXYgZnMvcmVhZF93cml0ZS5jOjE0MTQgW2lubGluZV0KIF9faWEzMl9jb21wYXRfc3lzX3B3 cml0ZXYrMHgzNDkvMHgzZjAgZnMvcmVhZF93cml0ZS5jOjE0MTQKIGRvX3N5c2NhbGxfMzJfaXJx c19vbiBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzozMzkgW2lubGluZV0KIGRvX2Zhc3Rfc3lzY2Fs bF8zMisweDNjNy8weDZlMCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzo0MTAKIGVudHJ5X1NZU0VO VEVSX2NvbXBhdCsweDY4LzB4NzcgYXJjaC94ODYvZW50cnkvZW50cnlfNjRfY29tcGF0LlM6MTM5 ClJJUDogMDAyMzoweGY3ZjdjZDk5CkNvZGU6IDkwIGU4IDBiIDAwIDAwIDAwIGYzIDkwIDBmIGFl IGU4IGViIGY5IDhkIDc0IDI2IDAwIDg5IDNjIDI0IGMzIDkwIDkwIDkwIDkwIDkwIDkwIDkwIDkw IDkwIDkwIDkwIDkwIDUxIDUyIDU1IDg5IGU1IDBmIDM0IGNkIDgwIDw1ZD4gNWEgNTkgYzMgOTAg OTAgOTAgOTAgZWIgMGQgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAKUlNQOiAw MDJiOjAwMDAwMDAwZmZkYjg0YWMgRUZMQUdTOiAwMDAwMDIxNyBPUklHX1JBWDogMDAwMDAwMDAw MDAwMDE0ZQpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAwMDAwMDAwMDAzIFJDWDog MDAwMDAwMDAyMDAwMDFjMApSRFg6IDAwMDAwMDAwMDAwMDAwMDEgUlNJOiAwMDAwMDAwMDAwMDAw MDAwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDAwMDAwNDAwNDc0NTkgUjA4OiAwMDAw MDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDAwMDAwMDAwMDAwMDAwMDAg UjExOiAwMDAwMDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAwMDAwMDAwMApSMTM6IDAwMDAwMDAw MDAwMDAwMDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAoKVW5p bml0IHdhcyBjcmVhdGVkIGF0Ogoga21zYW5fc2F2ZV9zdGFja193aXRoX2ZsYWdzIG1tL2ttc2Fu L2ttc2FuLmM6MTQ0IFtpbmxpbmVdCiBrbXNhbl9pbnRlcm5hbF9wb2lzb25fc2hhZG93KzB4NjYv MHhkMCBtbS9rbXNhbi9rbXNhbi5jOjEyNwoga21zYW5fc2xhYl9hbGxvYysweDhhLzB4ZTAgbW0v a21zYW4va21zYW5faG9va3MuYzo4Mgogc2xhYl9hbGxvY19ub2RlIG1tL3NsdWIuYzoyNzkzIFtp bmxpbmVdCiBfX2ttYWxsb2Nfbm9kZV90cmFja19jYWxsZXIrMHhiNDAvMHgxMjAwIG1tL3NsdWIu Yzo0NDAxCiBfX2ttYWxsb2NfcmVzZXJ2ZSBuZXQvY29yZS9za2J1ZmYuYzoxNDIgW2lubGluZV0K IF9fYWxsb2Nfc2tiKzB4MmZkLzB4YWMwIG5ldC9jb3JlL3NrYnVmZi5jOjIxMAogYWxsb2Nfc2ti IGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTA1MSBbaW5saW5lXQogcHBwX3dyaXRlKzB4MTE1LzB4 NzkwIGRyaXZlcnMvbmV0L3BwcC9wcHBfZ2VuZXJpYy5jOjUwMAogZG9fbG9vcF9yZWFkdl93cml0 ZXYgZnMvcmVhZF93cml0ZS5jOjcxNyBbaW5saW5lXQogZG9faXRlcl93cml0ZSsweDgxMi8weGRj MCBmcy9yZWFkX3dyaXRlLmM6MTAwMAogY29tcGF0X3dyaXRldisweDJkZi8weDVhMCBmcy9yZWFk X3dyaXRlLmM6MTM1MQogZG9fY29tcGF0X3B3cml0ZXY2NCBmcy9yZWFkX3dyaXRlLmM6MTQwMCBb aW5saW5lXQogX19kb19jb21wYXRfc3lzX3B3cml0ZXYgZnMvcmVhZF93cml0ZS5jOjE0MjAgW2lu bGluZV0KIF9fc2VfY29tcGF0X3N5c19wd3JpdGV2IGZzL3JlYWRfd3JpdGUuYzoxNDE0IFtpbmxp bmVdCiBfX2lhMzJfY29tcGF0X3N5c19wd3JpdGV2KzB4MzQ5LzB4M2YwIGZzL3JlYWRfd3JpdGUu YzoxNDE0CiBkb19zeXNjYWxsXzMyX2lycXNfb24gYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MzM5 IFtpbmxpbmVdCiBkb19mYXN0X3N5c2NhbGxfMzIrMHgzYzcvMHg2ZTAgYXJjaC94ODYvZW50cnkv Y29tbW9uLmM6NDEwCiBlbnRyeV9TWVNFTlRFUl9jb21wYXQrMHg2OC8weDc3IGFyY2gveDg2L2Vu dHJ5L2VudHJ5XzY0X2NvbXBhdC5TOjEzOQoKRml4ZXM6IGI1NDUxZDc4M2FkZSAoInNsaXA6IE1v dmUgdGhlIFNMSVAgZHJpdmVycyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vw cy5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9zbGlwL3NsaGMuYyB8IDE0ICsrKysrKysrKystLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC9zbGlwL3NsaGMuYyBiL2RyaXZlcnMvbmV0L3NsaXAvc2xoYy5jCmluZGV4 IDU4YTY5ZjgzMGQyOS4uZjc4Y2ViYTQyZTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9zbGlw L3NsaGMuYworKysgYi9kcml2ZXJzL25ldC9zbGlwL3NsaGMuYwpAQCAtMjMyLDcgKzIzMiw3IEBA IHNsaGNfY29tcHJlc3Moc3RydWN0IHNsY29tcHJlc3MgKmNvbXAsIHVuc2lnbmVkIGNoYXIgKmlj cCwgaW50IGlzaXplLAogCXN0cnVjdCBjc3RhdGUgKmNzID0gbGNzLT5uZXh0OwogCXVuc2lnbmVk IGxvbmcgZGVsdGFTLCBkZWx0YUE7CiAJc2hvcnQgY2hhbmdlcyA9IDA7Ci0JaW50IGhsZW47CisJ aW50IG5sZW4sIGhsZW47CiAJdW5zaWduZWQgY2hhciBuZXdfc2VxWzE2XTsKIAl1bnNpZ25lZCBj aGFyICpjcCA9IG5ld19zZXE7CiAJc3RydWN0IGlwaGRyICppcDsKQEAgLTI0OCw2ICsyNDgsOCBA QCBzbGhjX2NvbXByZXNzKHN0cnVjdCBzbGNvbXByZXNzICpjb21wLCB1bnNpZ25lZCBjaGFyICpp Y3AsIGludCBpc2l6ZSwKIAkJcmV0dXJuIGlzaXplOwogCiAJaXAgPSAoc3RydWN0IGlwaGRyICop IGljcDsKKwlpZiAoaXAtPnZlcnNpb24gIT0gNCB8fCBpcC0+aWhsIDwgNSkKKwkJcmV0dXJuIGlz aXplOwogCiAJLyogQmFpbCBpZiB0aGlzIHBhY2tldCBpc24ndCBUQ1AsIG9yIGlzIGFuIElQIGZy YWdtZW50ICovCiAJaWYgKGlwLT5wcm90b2NvbCAhPSBJUFBST1RPX1RDUCB8fCAobnRvaHMoaXAt PmZyYWdfb2ZmKSAmIDB4M2ZmZikpIHsKQEAgLTI1OCwxMCArMjYwLDE0IEBAIHNsaGNfY29tcHJl c3Moc3RydWN0IHNsY29tcHJlc3MgKmNvbXAsIHVuc2lnbmVkIGNoYXIgKmljcCwgaW50IGlzaXpl LAogCQkJY29tcC0+c2xzX29fdGNwKys7CiAJCXJldHVybiBpc2l6ZTsKIAl9Ci0JLyogRXh0cmFj dCBUQ1AgaGVhZGVyICovCisJbmxlbiA9IGlwLT5paGwgKiA0OworCWlmIChpc2l6ZSA8IG5sZW4g KyBzaXplb2YoKnRoKSkKKwkJcmV0dXJuIGlzaXplOwogCi0JdGggPSAoc3RydWN0IHRjcGhkciAq KSgoKHVuc2lnbmVkIGNoYXIgKilpcCkgKyBpcC0+aWhsKjQpOwotCWhsZW4gPSBpcC0+aWhsKjQg KyB0aC0+ZG9mZio0OworCXRoID0gKHN0cnVjdCB0Y3BoZHIgKikoaWNwICsgbmxlbik7CisJaWYg KHRoLT5kb2ZmIDwgc2l6ZW9mKHN0cnVjdCB0Y3BoZHIpIC8gNCkKKwkJcmV0dXJuIGlzaXplOwor CWhsZW4gPSBubGVuICsgdGgtPmRvZmYgKiA0OwogCiAJLyogIEJhaWwgaWYgdGhlIFRDUCBwYWNr ZXQgaXNuJ3QgYGNvbXByZXNzaWJsZScgKGkuZS4sIEFDSyBpc24ndCBzZXQgb3IKIAkgKiAgc29t ZSBvdGhlciBjb250cm9sIGJpdCBpcyBzZXQpLiBBbHNvIHVuY29tcHJlc3NpYmxlIGlmCi0tIAoy LjIwLjEKCgpGcm9tIDI0Zjc1NGJiODM2Y2Q0M2RiMGUyNzVlM2UxYjJhZjViMjYyY2ZmZTcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZpbmljaXVzIENvc3RhIEdvbWVzIDx2aW5pY2l1 cy5nb21lc0BpbnRlbC5jb20+CkRhdGU6IE1vbiwgOSBNYXIgMjAyMCAxMDozOTo1MyAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMjUvNTJdIHRhcHJpbzogRml4IHNlbmRpbmcgcGFja2V0cyB3aXRob3V0 IGRlcXVldWVpbmcgdGhlbQoKWyBVcHN0cmVhbSBjb21taXQgYjA5ZmU3MGVmNTIwZTAxMWJhNGE2 NGY0YjkzZjk0OGE4ZjE0NzE3YiBdCgpUaGVyZSB3YXMgYSBidWcgdGhhdCB3YXMgY2F1c2luZyBw YWNrZXRzIHRvIGJlIHNlbnQgdG8gdGhlIGRyaXZlcgp3aXRob3V0IGZpcnN0IGNhbGxpbmcgZGVx dWV1ZSgpIG9uIHRoZSAiY2hpbGQiIHFkaXNjLiBBbmQgdGhlIEtBU0FOCnJlcG9ydCBiZWxvdyBz aG93cyB0aGF0IHNlbmRpbmcgYSBwYWNrZXQgd2l0aG91dCBjYWxsaW5nIGRlcXVldWUoKQpsZWFk cyB0byBiYWQgcmVzdWx0cy4KClRoZSBwcm9ibGVtIGlzIHRoYXQgd2hlbiBjaGVja2luZyB0aGUg bGFzdCBxZGlzYyAiY2hpbGQiIHdlIGRvIG5vdCBzZXQKdGhlIHJldHVybmVkIHNrYiB0byBOVUxM LCB3aGljaCBjYW4gY2F1c2UgaXQgdG8gYmUgc2VudCB0byB0aGUgZHJpdmVyLAphbmQgc28gYWZ0 ZXIgdGhlIHNrYiBpcyBzZW50LCBpdCBtYXkgYmUgZnJlZWQsIGFuZCBpbiBzb21lIHNpdHVhdGlv bnMgYQpyZWZlcmVuY2UgdG8gaXQgbWF5IHN0aWxsIGJlIGluIHRoZSBjaGlsZCBxZGlzYywgYmVj YXVzZSBpdCB3YXMgbmV2ZXIKZGVxdWV1ZWQuCgpUaGUgY3Jhc2ggbG9nIGxvb2tzIGxpa2UgdGhp czoKClsgICAxOS45Mzc1MzhdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpbICAgMTkuOTM4MzAwXSBCVUc6IEtBU0FOOiB1 c2UtYWZ0ZXItZnJlZSBpbiB0YXByaW9fZGVxdWV1ZV9zb2Z0KzB4NjIwLzB4NzgwClsgICAxOS45 Mzg5NjhdIFJlYWQgb2Ygc2l6ZSA0IGF0IGFkZHIgZmZmZjg4ODExMjg2MjhjYyBieSB0YXNrIHN3 YXBwZXIvMS8wClsgICAxOS45Mzk2MTJdClsgICAxOS45Mzk3NzJdIENQVTogMSBQSUQ6IDAgQ29t bTogc3dhcHBlci8xIE5vdCB0YWludGVkIDUuNi4wLXJjMysgIzk3ClsgICAxOS45NDAzOTddIEhh cmR3YXJlIG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9T IHJlbC0xLjEyLjAtNTktZ2M5YmE1Mjc2ZTMyMS1wcmVidWlsdC5xZTQKWyAgIDE5Ljk0MTUyM10g Q2FsbCBUcmFjZToKWyAgIDE5Ljk0MTc3NF0gIDxJUlE+ClsgICAxOS45NDE5ODVdICBkdW1wX3N0 YWNrKzB4OTcvMHhlMApbICAgMTkuOTQyMzIzXSAgcHJpbnRfYWRkcmVzc19kZXNjcmlwdGlvbi5j b25zdHByb3AuMCsweDNiLzB4NjAKWyAgIDE5Ljk0Mjg4NF0gID8gdGFwcmlvX2RlcXVldWVfc29m dCsweDYyMC8weDc4MApbICAgMTkuOTQzMzI1XSAgPyB0YXByaW9fZGVxdWV1ZV9zb2Z0KzB4NjIw LzB4NzgwClsgICAxOS45NDM3NjddICBfX2thc2FuX3JlcG9ydC5jb2xkKzB4MWEvMHgzMgpbICAg MTkuOTQ0MTczXSAgPyB0YXByaW9fZGVxdWV1ZV9zb2Z0KzB4NjIwLzB4NzgwClsgICAxOS45NDQ2 MTJdICBrYXNhbl9yZXBvcnQrMHhlLzB4MjAKWyAgIDE5Ljk0NDk1NF0gIHRhcHJpb19kZXF1ZXVl X3NvZnQrMHg2MjAvMHg3ODAKWyAgIDE5Ljk0NTM4MF0gIF9fcWRpc2NfcnVuKzB4MTY0LzB4MThk MApbICAgMTkuOTQ1NzQ5XSAgbmV0X3R4X2FjdGlvbisweDJjNC8weDczMApbICAgMTkuOTQ2MTI0 XSAgX19kb19zb2Z0aXJxKzB4MjY4LzB4N2JjClsgICAxOS45NDY0OTFdICBpcnFfZXhpdCsweDE3 ZC8weDFiMApbICAgMTkuOTQ2ODI0XSAgc21wX2FwaWNfdGltZXJfaW50ZXJydXB0KzB4ZWIvMHgz ODAKWyAgIDE5Ljk0NzI4MF0gIGFwaWNfdGltZXJfaW50ZXJydXB0KzB4Zi8weDIwClsgICAxOS45 NDc2ODddICA8L0lSUT4KWyAgIDE5Ljk0NzkxMl0gUklQOiAwMDEwOmRlZmF1bHRfaWRsZSsweDJk LzB4MmQwClsgICAxOS45NDgzNDVdIENvZGU6IDAwIDAwIDQxIDU2IDQxIDU1IDY1IDQ0IDhiIDJk IDNmIDhkIDdjIDdjIDQxIDU0IDU1IDUzIDBmIDFmIDQ0IDAwIDAwIGU4IGIxIGIyIGM1IGZkIGU5 IDA3IDAwIDMKWyAgIDE5Ljk1MDE2Nl0gUlNQOiAwMDE4OmZmZmY4ODgxMWEzZWZkYTAgRUZMQUdT OiAwMDAwMDI4MiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmYxMwpbICAgMTkuOTUwOTA5XSBSQVg6 IDAwMDAwMDAwODAwMDAwMDAgUkJYOiBmZmZmODg4MTFhM2E5NjAwIFJDWDogZmZmZmZmZmY4Mzg1 MzI3ZQpbICAgMTkuOTUxNjA4XSBSRFg6IDFmZmZmMTEwMjM0NzUyYzAgUlNJOiAwMDAwMDAwMDAw MDAwMDAwIFJESTogZmZmZmZmZmY4Mzg1MjYyZgpbICAgMTkuOTUyMzA5XSBSQlA6IGZmZmZlZDEw MjM0NzUyYzAgUjA4OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogZmZmZmVkMTAyMzQ3NTJjMQpbICAg MTkuOTUzMDA5XSBSMTA6IGZmZmZlZDEwMjM0NzUyYzAgUjExOiBmZmZmODg4MTFhM2E5NjA3IFIx MjogMDAwMDAwMDAwMDAwMDAwMQpbICAgMTkuOTUzNzA5XSBSMTM6IDAwMDAwMDAwMDAwMDAwMDEg UjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMApbICAgMTkuOTU0NDA4 XSAgPyBkZWZhdWx0X2lkbGVfY2FsbCsweDJlLzB4NzAKWyAgIDE5Ljk1NDgxNl0gID8gZGVmYXVs dF9pZGxlKzB4MWYvMHgyZDAKWyAgIDE5Ljk1NTE5Ml0gIGRlZmF1bHRfaWRsZV9jYWxsKzB4NWUv MHg3MApbICAgMTkuOTU1NTg0XSAgZG9faWRsZSsweDNkNC8weDUwMApbICAgMTkuOTU1OTA5XSAg PyBhcmNoX2NwdV9pZGxlX2V4aXQrMHg0MC8weDQwClsgICAxOS45NTYzMjVdICA/IF9yYXdfc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSsweDIzLzB4MzAKWyAgIDE5Ljk1NjgyOV0gID8gdHJhY2VfaGFy ZGlycXNfb24rMHgzMC8weDE2MApbICAgMTkuOTU3MjQyXSAgY3B1X3N0YXJ0dXBfZW50cnkrMHgx OS8weDIwClsgICAxOS45NTc2MzNdICBzdGFydF9zZWNvbmRhcnkrMHgyYTYvMHgzODAKWyAgIDE5 Ljk1ODAyNl0gID8gc2V0X2NwdV9zaWJsaW5nX21hcCsweDE4YjAvMHgxOGIwClsgICAxOS45NTg0 ODZdICBzZWNvbmRhcnlfc3RhcnR1cF82NCsweGE0LzB4YjAKWyAgIDE5Ljk1ODkyMV0KWyAgIDE5 Ljk1OTA3OF0gQWxsb2NhdGVkIGJ5IHRhc2sgMzM6ClsgICAxOS45NTk0MTJdICBzYXZlX3N0YWNr KzB4MWIvMHg4MApbICAgMTkuOTU5NzQ3XSAgX19rYXNhbl9rbWFsbG9jLmNvbnN0cHJvcC4wKzB4 YzIvMHhkMApbICAgMTkuOTYwMjIyXSAga21lbV9jYWNoZV9hbGxvYysweGU0LzB4MjMwClsgICAx OS45NjA2MTddICBfX2FsbG9jX3NrYisweDkxLzB4NTEwClsgICAxOS45NjA5NjddICBuZGlzY19h bGxvY19za2IrMHgxMzMvMHgzMzAKWyAgIDE5Ljk2MTM1OF0gIG5kaXNjX3NlbmRfbnMrMHgxMzQv MHg4MTAKWyAgIDE5Ljk2MTczNV0gIGFkZHJjb25mX2RhZF93b3JrKzB4YWQ1LzB4ZjgwClsgICAx OS45NjIxNDRdICBwcm9jZXNzX29uZV93b3JrKzB4NzhlLzB4MTNhMApbICAgMTkuOTYyNTUxXSAg d29ya2VyX3RocmVhZCsweDhmLzB4ZmEwClsgICAxOS45NjI5MTldICBrdGhyZWFkKzB4MmJhLzB4 M2IwClsgICAxOS45NjMyNDJdICByZXRfZnJvbV9mb3JrKzB4M2EvMHg1MApbICAgMTkuOTYzNTk2 XQpbICAgMTkuOTYzNzUzXSBGcmVlZCBieSB0YXNrIDMzOgpbICAgMTkuOTY0MDU1XSAgc2F2ZV9z dGFjaysweDFiLzB4ODAKWyAgIDE5Ljk2NDM4Nl0gIF9fa2FzYW5fc2xhYl9mcmVlKzB4MTJmLzB4 MTgwClsgICAxOS45NjQ4MzBdICBrbWVtX2NhY2hlX2ZyZWUrMHg4MC8weDI5MApbICAgMTkuOTY1 MjMxXSAgaXA2X21jX2lucHV0KzB4MzhhLzB4NGQwClsgICAxOS45NjU2MTddICBpcHY2X3Jjdisw eDFhNC8weDFkMApbICAgMTkuOTY1OTQ4XSAgX19uZXRpZl9yZWNlaXZlX3NrYl9vbmVfY29yZSsw eGYyLzB4MTgwClsgICAxOS45NjY0MzddICBuZXRpZl9yZWNlaXZlX3NrYisweDhjLzB4M2MwClsg ICAxOS45NjY4NDZdICBicl9oYW5kbGVfZnJhbWVfZmluaXNoKzB4Nzc5LzB4MTMxMApbICAgMTku OTY3MzAyXSAgYnJfaGFuZGxlX2ZyYW1lKzB4NDJhLzB4ODMwClsgICAxOS45Njc2OTRdICBfX25l dGlmX3JlY2VpdmVfc2tiX2NvcmUrMHhmMGUvMHgyYTkwClsgICAxOS45NjgxNjddICBfX25ldGlm X3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4OTYvMHgxODAKWyAgIDE5Ljk2ODY1OF0gIHByb2Nlc3Nf YmFja2xvZysweDE5OC8weDY1MApbICAgMTkuOTY5MDQ3XSAgbmV0X3J4X2FjdGlvbisweDJmYS8w eGFhMApbICAgMTkuOTY5NDIwXSAgX19kb19zb2Z0aXJxKzB4MjY4LzB4N2JjClsgICAxOS45Njk3 ODVdClsgICAxOS45Njk5NDBdIFRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVj dCBhdCBmZmZmODg4MTEyODYyODQwClsgICAxOS45Njk5NDBdICB3aGljaCBiZWxvbmdzIHRvIHRo ZSBjYWNoZSBza2J1ZmZfaGVhZF9jYWNoZSBvZiBzaXplIDIyNApbICAgMTkuOTcxMjAyXSBUaGUg YnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDE0MCBieXRlcyBpbnNpZGUgb2YKWyAgIDE5Ljk3MTIw Ml0gIDIyNC1ieXRlIHJlZ2lvbiBbZmZmZjg4ODExMjg2Mjg0MCwgZmZmZjg4ODExMjg2MjkyMCkK WyAgIDE5Ljk3MjM0NF0gVGhlIGJ1Z2d5IGFkZHJlc3MgYmVsb25ncyB0byB0aGUgcGFnZToKWyAg IDE5Ljk3MjgyMF0gcGFnZTpmZmZmZWEwMDA0NGExODAwIHJlZmNvdW50OjEgbWFwY291bnQ6MCBt YXBwaW5nOmZmZmY4ODgxMWEyYmQxYzAgaW5kZXg6MHhmZmZmODg4MTEyODYyNWMwIGNvbXBvMApb ICAgMTkuOTczOTMwXSBmbGFnczogMHg4MDAwMDAwMDAwMDEwMjAwKHNsYWJ8aGVhZCkKWyAgIDE5 Ljk3NDM4OF0gcmF3OiA4MDAwMDAwMDAwMDEwMjAwIGZmZmY4ODgxMWEyZWQ2NTAgZmZmZjg4ODEx YTJlZDY1MCBmZmZmODg4MTFhMmJkMWMwClsgICAxOS45NzUxNTFdIHJhdzogZmZmZjg4ODExMjg2 MjVjMCAwMDAwMDAwMDAwMTkwMDEzIDAwMDAwMDAxZmZmZmZmZmYgMDAwMDAwMDAwMDAwMDAwMApb ICAgMTkuOTc1OTE1XSBwYWdlIGR1bXBlZCBiZWNhdXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRl Y3RlZApbICAgMTkuOTc2NDYxXSBwYWdlX293bmVyIHRyYWNrcyB0aGUgcGFnZSBhcyBhbGxvY2F0 ZWQKWyAgIDE5Ljk3Njk0Nl0gcGFnZSBsYXN0IGFsbG9jYXRlZCB2aWEgb3JkZXIgMiwgbWlncmF0 ZXR5cGUgVW5tb3ZhYmxlLCBnZnBfbWFzayAweGQyMGMwKF9fR0ZQX0lPfF9fR0ZQX0ZTfF9fR0ZQ X05PKQpbICAgMTkuOTc4MzMyXSAgcHJlcF9uZXdfcGFnZSsweDI0Yi8weDMzMApbICAgMTkuOTc4 NzA3XSAgZ2V0X3BhZ2VfZnJvbV9mcmVlbGlzdCsweDIwNTcvMHgyYzkwClsgICAxOS45NzkxNzBd ICBfX2FsbG9jX3BhZ2VzX25vZGVtYXNrKzB4MjE4LzB4NTkwClsgICAxOS45Nzk2MTldICBuZXdf c2xhYisweDlkLzB4MzAwClsgICAxOS45Nzk5NDhdICBfX19zbGFiX2FsbG9jLmNvbnN0cHJvcC4w KzB4MmY5LzB4NmYwClsgICAxOS45ODA0MjFdICBfX3NsYWJfYWxsb2MuY29uc3Rwcm9wLjArMHgz MC8weDYwClsgICAxOS45ODA4NzBdICBrbWVtX2NhY2hlX2FsbG9jKzB4MjAxLzB4MjMwClsgICAx OS45ODEyNjldICBfX2FsbG9jX3NrYisweDkxLzB4NTEwClsgICAxOS45ODE2MjBdICBhbGxvY19z a2Jfd2l0aF9mcmFncysweDc4LzB4NGEwClsgICAxOS45ODIwNDNdICBzb2NrX2FsbG9jX3NlbmRf cHNrYisweDVlYi8weDc1MApbICAgMTkuOTgyNDc2XSAgdW5peF9zdHJlYW1fc2VuZG1zZysweDM5 OS8weDdmMApbICAgMTkuOTgyOTA0XSAgc29ja19zZW5kbXNnKzB4ZTIvMHgxMTAKWyAgIDE5Ljk4 MzI2Ml0gIF9fX19zeXNfc2VuZG1zZysweDRkZS8weDZkMApbICAgMTkuOTgzNjYwXSAgX19fc3lz X3NlbmRtc2crMHhlNC8weDE2MApbICAgMTkuOTg0MDMyXSAgX19zeXNfc2VuZG1zZysweGFiLzB4 MTMwClsgICAxOS45ODQzOTZdICBkb19zeXNjYWxsXzY0KzB4ZTcvMHhhZTAKWyAgIDE5Ljk4NDc2 MV0gcGFnZSBsYXN0IGZyZWUgc3RhY2sgdHJhY2U6ClsgICAxOS45ODUxNDJdICBfX2ZyZWVfcGFn ZXNfb2srMHg0MzIvMHhiYzAKWyAgIDE5Ljk4NTUzM10gIHFsaXN0X2ZyZWVfYWxsKzB4NTYvMHhj MApbICAgMTkuOTg1OTA3XSAgcXVhcmFudGluZV9yZWR1Y2UrMHgxNDkvMHgxNzAKWyAgIDE5Ljk4 NjMxNV0gIF9fa2FzYW5fa21hbGxvYy5jb25zdHByb3AuMCsweDllLzB4ZDAKWyAgIDE5Ljk4Njc5 MV0gIGttZW1fY2FjaGVfYWxsb2MrMHhlNC8weDIzMApbICAgMTkuOTg3MTgyXSAgcHJlcGFyZV9j cmVkcysweDI0LzB4NDQwClsgICAxOS45ODc1NDhdICBkb19mYWNjZXNzYXQrMHg4MC8weDU5MApb ICAgMTkuOTg3OTA2XSAgZG9fc3lzY2FsbF82NCsweGU3LzB4YWUwClsgICAxOS45ODgyNzZdICBl bnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClsgICAxOS45ODg3NzVdClsg ICAxOS45ODg5MzBdIE1lbW9yeSBzdGF0ZSBhcm91bmQgdGhlIGJ1Z2d5IGFkZHJlc3M6ClsgICAx OS45ODk0MDJdICBmZmZmODg4MTEyODYyNzgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYwpbICAgMTkuOTkwMTExXSAgZmZmZjg4ODExMjg2MjgwMDogZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAgIDE5Ljk5MDgy Ml0gPmZmZmY4ODgxMTI4NjI4ODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiClsgICAxOS45OTE1MjldICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeClsgICAxOS45OTIwODFdICBmZmZmODg4MTEyODYyOTAwOiBmYiBm YiBmYiBmYiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYwpbICAgMTkuOTkyNzk2 XSAgZmZmZjg4ODExMjg2Mjk4MDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMg ZmMgZmMgZmMgZmMKCkZpeGVzOiA1YTc4MWNjYmQxOWUgKCJ0YzogQWRkIHN1cHBvcnQgZm9yIGNv bmZpZ3VyaW5nIHRoZSB0YXByaW8gc2NoZWR1bGVyIikKUmVwb3J0ZWQtYnk6IE1pY2hhZWwgU2No bWlkdCA8bWljaGFlbC5zY2htaWR0QGV0aS51bmktc2llZ2VuLmRlPgpTaWduZWQtb2ZmLWJ5OiBW aW5pY2l1cyBDb3N0YSBHb21lcyA8dmluaWNpdXMuZ29tZXNAaW50ZWwuY29tPgpBY2tlZC1ieTog QW5kcmUgR3VlZGVzIDxhbmRyZS5ndWVkZXNAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF90YXBy aW8uYyB8IDEyICsrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX3RhcHJpby5jIGIvbmV0 L3NjaGVkL3NjaF90YXByaW8uYwppbmRleCA2NjBmYzQ1ZWU0MGYuLjQzN2UzMzNhNGEzMyAxMDA2 NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF90YXByaW8uYworKysgYi9uZXQvc2NoZWQvc2NoX3RhcHJp by5jCkBAIC01NjQsOCArNTY0LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqdGFwcmlvX2Rl cXVldWVfc29mdChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJcHJpbyA9IHNrYi0+cHJpb3JpdHk7CiAJ CXRjID0gbmV0ZGV2X2dldF9wcmlvX3RjX21hcChkZXYsIHByaW8pOwogCi0JCWlmICghKGdhdGVf bWFzayAmIEJJVCh0YykpKQorCQlpZiAoIShnYXRlX21hc2sgJiBCSVQodGMpKSkgeworCQkJc2ti ID0gTlVMTDsKIAkJCWNvbnRpbnVlOworCQl9CiAKIAkJbGVuID0gcWRpc2NfcGt0X2xlbihza2Ip OwogCQlndWFyZCA9IGt0aW1lX2FkZF9ucyh0YXByaW9fZ2V0X3RpbWUocSksCkBAIC01NzUsMTMg KzU3NywxNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKnRhcHJpb19kZXF1ZXVlX3NvZnQoc3Ry dWN0IFFkaXNjICpzY2gpCiAJCSAqIGd1YXJkIGJhbmQgLi4uCiAJCSAqLwogCQlpZiAoZ2F0ZV9t YXNrICE9IFRBUFJJT19BTExfR0FURVNfT1BFTiAmJgotCQkgICAga3RpbWVfYWZ0ZXIoZ3VhcmQs IGVudHJ5LT5jbG9zZV90aW1lKSkKKwkJICAgIGt0aW1lX2FmdGVyKGd1YXJkLCBlbnRyeS0+Y2xv c2VfdGltZSkpIHsKKwkJCXNrYiA9IE5VTEw7CiAJCQljb250aW51ZTsKKwkJfQogCiAJCS8qIC4u LiBhbmQgbm8gYnVkZ2V0LiAqLwogCQlpZiAoZ2F0ZV9tYXNrICE9IFRBUFJJT19BTExfR0FURVNf T1BFTiAmJgotCQkgICAgYXRvbWljX3N1Yl9yZXR1cm4obGVuLCAmZW50cnktPmJ1ZGdldCkgPCAw KQorCQkgICAgYXRvbWljX3N1Yl9yZXR1cm4obGVuLCAmZW50cnktPmJ1ZGdldCkgPCAwKSB7CisJ CQlza2IgPSBOVUxMOwogCQkJY29udGludWU7CisJCX0KIAogCQlza2IgPSBjaGlsZC0+b3BzLT5k ZXF1ZXVlKGNoaWxkKTsKIAkJaWYgKHVubGlrZWx5KCFza2IpKQotLSAKMi4yMC4xCgoKRnJvbSA0 ZDc1ZjkwYTgzZWZkNTNiOTcxYTM1YjkwMGFjOTc0NDNiYmYwZTNiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdl ZCwgNCBNYXIgMjAyMCAwOTozMjoxNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjYvNTJdIGJvbmRp bmcvYWxiOiBtYWtlIHN1cmUgYXJwIGhlYWRlciBpcyBwdWxsZWQgYmVmb3JlCiBhY2Nlc3Npbmcg aXQKClNpbWlsYXIgdG8gY29tbWl0IDM4Zjg4YzQ1NDA0MiAoImJvbmRpbmcvYWxiOiBwcm9wZXJs eSBhY2Nlc3MgaGVhZGVycwppbiBib25kX2FsYl94bWl0KCkiKSwgd2UgbmVlZCB0byBtYWtlIHN1 cmUgYXJwIGhlYWRlciB3YXMgcHVsbGVkCmluIHNrYi0+aGVhZCBiZWZvcmUgYmxpbmRseSBhY2Nl c3NpbmcgaXQgaW4gcmxiX2FycF94bWl0KCkuCgpSZW1vdmUgYXJwX3BrdCgpIHByaXZhdGUgaGVs cGVyLCBzaW5jZSBpdCBpcyBtb3JlIHJlYWRhYmxlL29idmlvdXMKdG8gaGF2ZSB0aGUgZm9sbG93 aW5nIGNvbnN0cnVjdCBiYWNrIHRvIGJhY2sgOgoKCWlmICghcHNrYl9uZXR3b3JrX21heV9wdWxs KHNrYiwgc2l6ZW9mKCphcnApKSkKCQlyZXR1cm4gTlVMTDsKCWFycCA9IChzdHJ1Y3QgYXJwX3Br dCAqKXNrYl9uZXR3b3JrX2hlYWRlcihza2IpOwoKc3l6Ym90IHJlcG9ydGVkIDoKCkJVRzogS01T QU46IHVuaW5pdC12YWx1ZSBpbiBib25kX3NsYXZlX2hhc19tYWNfcnggaW5jbHVkZS9uZXQvYm9u ZGluZy5oOjcwNCBbaW5saW5lXQpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gcmxiX2FycF94 bWl0IGRyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYzo2NjIgW2lubGluZV0KQlVHOiBLTVNB TjogdW5pbml0LXZhbHVlIGluIGJvbmRfYWxiX3htaXQrMHg1NzUvMHgyNWUwIGRyaXZlcnMvbmV0 L2JvbmRpbmcvYm9uZF9hbGIuYzoxNDc3CkNQVTogMCBQSUQ6IDEyNzQzIENvbW06IHN5ei1leGVj dXRvci40IE5vdCB0YWludGVkIDUuNi4wLXJjMi1zeXprYWxsZXIgIzAKSGFyZHdhcmUgbmFtZTog R29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1Mg R29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFj ay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MWM5LzB4MjIwIGxpYi9kdW1wX3N0YWNrLmM6 MTE4CiBrbXNhbl9yZXBvcnQrMHhmNy8weDFlMCBtbS9rbXNhbi9rbXNhbl9yZXBvcnQuYzoxMTgK IF9fbXNhbl93YXJuaW5nKzB4NTgvMHhhMCBtbS9rbXNhbi9rbXNhbl9pbnN0ci5jOjIxNQogYm9u ZF9zbGF2ZV9oYXNfbWFjX3J4IGluY2x1ZGUvbmV0L2JvbmRpbmcuaDo3MDQgW2lubGluZV0KIHJs Yl9hcnBfeG1pdCBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxiLmM6NjYyIFtpbmxpbmVdCiBi b25kX2FsYl94bWl0KzB4NTc1LzB4MjVlMCBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxiLmM6 MTQ3NwogX19ib25kX3N0YXJ0X3htaXQgZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX21haW4uYzo0 MjU3IFtpbmxpbmVdCiBib25kX3N0YXJ0X3htaXQrMHg4NWQvMHgyZjcwIGRyaXZlcnMvbmV0L2Jv bmRpbmcvYm9uZF9tYWluLmM6NDI4MgogX19uZXRkZXZfc3RhcnRfeG1pdCBpbmNsdWRlL2xpbnV4 L25ldGRldmljZS5oOjQ1MjQgW2lubGluZV0KIG5ldGRldl9zdGFydF94bWl0IGluY2x1ZGUvbGlu dXgvbmV0ZGV2aWNlLmg6NDUzOCBbaW5saW5lXQogeG1pdF9vbmUgbmV0L2NvcmUvZGV2LmM6MzQ3 MCBbaW5saW5lXQogZGV2X2hhcmRfc3RhcnRfeG1pdCsweDUzMS8weGFiMCBuZXQvY29yZS9kZXYu YzozNDg2CiBfX2Rldl9xdWV1ZV94bWl0KzB4MzdkZS8weDQyMjAgbmV0L2NvcmUvZGV2LmM6NDA2 MwogZGV2X3F1ZXVlX3htaXQrMHg0Yi8weDYwIG5ldC9jb3JlL2Rldi5jOjQwOTYKIHBhY2tldF9z bmQgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTY3IFtpbmxpbmVdCiBwYWNrZXRfc2VuZG1zZysw eDgzNDcvMHg5M2IwIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6Mjk5Mgogc29ja19zZW5kbXNnX25v c2VjIG5ldC9zb2NrZXQuYzo2NTIgW2lubGluZV0KIHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6 NjcyIFtpbmxpbmVdCiBfX3N5c19zZW5kdG8rMHhjMWIvMHhjNTAgbmV0L3NvY2tldC5jOjE5OTgK IF9fZG9fc3lzX3NlbmR0byBuZXQvc29ja2V0LmM6MjAxMCBbaW5saW5lXQogX19zZV9zeXNfc2Vu ZHRvKzB4MTA3LzB4MTMwIG5ldC9zb2NrZXQuYzoyMDA2CiBfX3g2NF9zeXNfc2VuZHRvKzB4NmUv MHg5MCBuZXQvc29ja2V0LmM6MjAwNgogZG9fc3lzY2FsbF82NCsweGI4LzB4MTYwIGFyY2gveDg2 L2VudHJ5L2NvbW1vbi5jOjI5NgogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQv MHhhOQpSSVA6IDAwMzM6MHg0NWM0NzkKQ29kZTogYWQgYjYgZmIgZmYgYzMgNjYgMmUgMGYgMWYg ODQgMDAgMDAgMDAgMDAgMDAgNjYgOTAgNDggODkgZjggNDggODkgZjcgNDggODkgZDYgNDggODkg Y2EgNGQgODkgYzIgNGQgODkgYzggNGMgOGIgNGMgMjQgMDggMGYgMDUgPDQ4PiAzZCAwMSBmMCBm ZiBmZiAwZiA4MyA3YiBiNiBmYiBmZiBjMyA2NiAyZSAwZiAxZiA4NCAwMCAwMCAwMCAwMApSU1A6 IDAwMmI6MDAwMDdmYzc3ZmZiYmM3OCBFRkxBR1M6IDAwMDAwMjQ2IE9SSUdfUkFYOiAwMDAwMDAw MDAwMDAwMDJjClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDA3ZmM3N2ZmYmM2ZDQgUkNY OiAwMDAwMDAwMDAwNDVjNDc5ClJEWDogMDAwMDAwMDAwMDAwMDAwZSBSU0k6IDAwMDAwMDAwMjAw MDA0YzAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClJCUDogMDAwMDAwMDAwMDc2YmYyMCBSMDg6IDAw MDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAw MCBSMTE6IDAwMDAwMDAwMDAwMDAyNDYgUjEyOiAwMDAwMDAwMGZmZmZmZmZmClIxMzogMDAwMDAw MDAwMDAwMGEwNCBSMTQ6IDAwMDAwMDAwMDA0Y2M3YjAgUjE1OiAwMDAwMDAwMDAwNzZiZjJjCgpV bmluaXQgd2FzIGNyZWF0ZWQgYXQ6CiBrbXNhbl9zYXZlX3N0YWNrX3dpdGhfZmxhZ3MgbW0va21z YW4va21zYW4uYzoxNDQgW2lubGluZV0KIGttc2FuX2ludGVybmFsX3BvaXNvbl9zaGFkb3crMHg2 Ni8weGQwIG1tL2ttc2FuL2ttc2FuLmM6MTI3CiBrbXNhbl9zbGFiX2FsbG9jKzB4OGEvMHhlMCBt bS9rbXNhbi9rbXNhbl9ob29rcy5jOjgyCiBzbGFiX2FsbG9jX25vZGUgbW0vc2x1Yi5jOjI3OTMg W2lubGluZV0KIF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweGI0MC8weDEyMDAgbW0vc2x1 Yi5jOjQ0MDEKIF9fa21hbGxvY19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjE0MiBbaW5saW5l XQogX19hbGxvY19za2IrMHgyZmQvMHhhYzAgbmV0L2NvcmUvc2tidWZmLmM6MjEwCiBhbGxvY19z a2IgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoxMDUxIFtpbmxpbmVdCiBhbGxvY19za2Jfd2l0aF9m cmFncysweDE4Yy8weGE3MCBuZXQvY29yZS9za2J1ZmYuYzo1NzY2CiBzb2NrX2FsbG9jX3NlbmRf cHNrYisweGFkYS8weGM2MCBuZXQvY29yZS9zb2NrLmM6MjI0MgogcGFja2V0X2FsbG9jX3NrYiBu ZXQvcGFja2V0L2FmX3BhY2tldC5jOjI4MTUgW2lubGluZV0KIHBhY2tldF9zbmQgbmV0L3BhY2tl dC9hZl9wYWNrZXQuYzoyOTEwIFtpbmxpbmVdCiBwYWNrZXRfc2VuZG1zZysweDY2YTAvMHg5M2Iw IG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6Mjk5Mgogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2Nr ZXQuYzo2NTIgW2lubGluZV0KIHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjcyIFtpbmxpbmVd CiBfX3N5c19zZW5kdG8rMHhjMWIvMHhjNTAgbmV0L3NvY2tldC5jOjE5OTgKIF9fZG9fc3lzX3Nl bmR0byBuZXQvc29ja2V0LmM6MjAxMCBbaW5saW5lXQogX19zZV9zeXNfc2VuZHRvKzB4MTA3LzB4 MTMwIG5ldC9zb2NrZXQuYzoyMDA2CiBfX3g2NF9zeXNfc2VuZHRvKzB4NmUvMHg5MCBuZXQvc29j a2V0LmM6MjAwNgogZG9fc3lzY2FsbF82NCsweGI4LzB4MTYwIGFyY2gveDg2L2VudHJ5L2NvbW1v bi5jOjI5NgogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhhOQoKRml4ZXM6 IDFkYTE3N2U0YzNmNCAoIkxpbnV4LTIuNi4xMi1yYzIiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxl ckBnb29nbGVncm91cHMuY29tPgpDYzogSmF5IFZvc2J1cmdoIDxqLnZvc2J1cmdoQGdtYWlsLmNv bT4KQ2M6IFZlYWNlc2xhdiBGYWxpY28gPHZmYWxpY29AZ21haWwuY29tPgpDYzogQW5keSBHb3Nw b2RhcmVrIDxhbmR5QGdyZXlob3VzZS5uZXQ+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfYWxi LmMgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcv Ym9uZF9hbGIuYyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYwppbmRleCAxY2MyY2Q4 OTRmODcuLmM4MTY5ODU1MGU1YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvYm9uZGluZy9ib25k X2FsYi5jCisrKyBiL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYwpAQCAtNTAsMTEgKzUw LDYgQEAgc3RydWN0IGFycF9wa3QgewogfTsKICNwcmFnbWEgcGFjaygpCiAKLXN0YXRpYyBpbmxp bmUgc3RydWN0IGFycF9wa3QgKmFycF9wa3QoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYikKLXsK LQlyZXR1cm4gKHN0cnVjdCBhcnBfcGt0ICopc2tiX25ldHdvcmtfaGVhZGVyKHNrYik7Ci19Ci0K IC8qIEZvcndhcmQgZGVjbGFyYXRpb24gKi8KIHN0YXRpYyB2b2lkIGFsYl9zZW5kX2xlYXJuaW5n X3BhY2tldHMoc3RydWN0IHNsYXZlICpzbGF2ZSwgdTggbWFjX2FkZHJbXSwKIAkJCQkgICAgICBi b29sIHN0cmljdF9tYXRjaCk7CkBAIC01NTMsMTAgKzU0OCwxMSBAQCBzdGF0aWMgdm9pZCBybGJf cmVxX3VwZGF0ZV9zdWJuZXRfY2xpZW50cyhzdHJ1Y3QgYm9uZGluZyAqYm9uZCwgX19iZTMyIHNy Y19pcCkKIAlzcGluX3VubG9jaygmYm9uZC0+bW9kZV9sb2NrKTsKIH0KIAotc3RhdGljIHN0cnVj dCBzbGF2ZSAqcmxiX2Nob29zZV9jaGFubmVsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBi b25kaW5nICpib25kKQorc3RhdGljIHN0cnVjdCBzbGF2ZSAqcmxiX2Nob29zZV9jaGFubmVsKHN0 cnVjdCBza19idWZmICpza2IsCisJCQkJCXN0cnVjdCBib25kaW5nICpib25kLAorCQkJCQljb25z dCBzdHJ1Y3QgYXJwX3BrdCAqYXJwKQogewogCXN0cnVjdCBhbGJfYm9uZF9pbmZvICpib25kX2lu Zm8gPSAmKEJPTkRfQUxCX0lORk8oYm9uZCkpOwotCXN0cnVjdCBhcnBfcGt0ICphcnAgPSBhcnBf cGt0KHNrYik7CiAJc3RydWN0IHNsYXZlICphc3NpZ25lZF9zbGF2ZSwgKmN1cnJfYWN0aXZlX3Ns YXZlOwogCXN0cnVjdCBybGJfY2xpZW50X2luZm8gKmNsaWVudF9pbmZvOwogCXUzMiBoYXNoX2lu ZGV4ID0gMDsKQEAgLTY1Myw4ICs2NDksMTIgQEAgc3RhdGljIHN0cnVjdCBzbGF2ZSAqcmxiX2No b29zZV9jaGFubmVsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBib25kaW5nICpib24KICAq Lwogc3RhdGljIHN0cnVjdCBzbGF2ZSAqcmxiX2FycF94bWl0KHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBib25kaW5nICpib25kKQogewotCXN0cnVjdCBhcnBfcGt0ICphcnAgPSBhcnBfcGt0 KHNrYik7CiAJc3RydWN0IHNsYXZlICp0eF9zbGF2ZSA9IE5VTEw7CisJc3RydWN0IGFycF9wa3Qg KmFycDsKKworCWlmICghcHNrYl9uZXR3b3JrX21heV9wdWxsKHNrYiwgc2l6ZW9mKCphcnApKSkK KwkJcmV0dXJuIE5VTEw7CisJYXJwID0gKHN0cnVjdCBhcnBfcGt0ICopc2tiX25ldHdvcmtfaGVh ZGVyKHNrYik7CiAKIAkvKiBEb24ndCBtb2RpZnkgb3IgbG9hZCBiYWxhbmNlIEFSUHMgdGhhdCBk byBub3Qgb3JpZ2luYXRlIGxvY2FsbHkKIAkgKiAoZS5nLixhcnJpdmUgdmlhIGEgYnJpZGdlKS4K QEAgLTY2NCw3ICs2NjQsNyBAQCBzdGF0aWMgc3RydWN0IHNsYXZlICpybGJfYXJwX3htaXQoc3Ry dWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGJvbmRpbmcgKmJvbmQpCiAKIAlpZiAoYXJwLT5vcF9j b2RlID09IGh0b25zKEFSUE9QX1JFUExZKSkgewogCQkvKiB0aGUgYXJwIG11c3QgYmUgc2VudCBv biB0aGUgc2VsZWN0ZWQgcnggY2hhbm5lbCAqLwotCQl0eF9zbGF2ZSA9IHJsYl9jaG9vc2VfY2hh bm5lbChza2IsIGJvbmQpOworCQl0eF9zbGF2ZSA9IHJsYl9jaG9vc2VfY2hhbm5lbChza2IsIGJv bmQsIGFycCk7CiAJCWlmICh0eF9zbGF2ZSkKIAkJCWJvbmRfaHdfYWRkcl9jb3B5KGFycC0+bWFj X3NyYywgdHhfc2xhdmUtPmRldi0+ZGV2X2FkZHIsCiAJCQkJCSAgdHhfc2xhdmUtPmRldi0+YWRk cl9sZW4pOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2xhdmUgKnJsYl9hcnBf eG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJICogV2hl biB0aGUgYXJwIHJlcGx5IGlzIHJlY2VpdmVkIHRoZSBlbnRyeSB3aWxsIGJlIHVwZGF0ZWQKIAkJ ICogd2l0aCB0aGUgY29ycmVjdCB1bmljYXN0IGFkZHJlc3Mgb2YgdGhlIGNsaWVudC4KIAkJICov Ci0JCXR4X3NsYXZlID0gcmxiX2Nob29zZV9jaGFubmVsKHNrYiwgYm9uZCk7CisJCXR4X3NsYXZl ID0gcmxiX2Nob29zZV9jaGFubmVsKHNrYiwgYm9uZCwgYXJwKTsKIAogCQkvKiBUaGUgQVJQIHJl cGx5IHBhY2tldHMgbXVzdCBiZSBkZWxheWVkIHNvIHRoYXQKIAkJICogdGhleSBjYW4gY2FuY2Vs IG91dCB0aGUgaW5mbHVlbmNlIG9mIHRoZSBBUlAgcmVxdWVzdC4KLS0gCjIuMjAuMQoKCkZyb20g NzA3ZTlkZWExZmQ3NWI0ZWU3M2UyYTEzNGFjNzgxZjM4NGI4NDM5OCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogVmFzdW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2Fk Y29tLmNvbT4KRGF0ZTogU3VuLCAxIE1hciAyMDIwIDIyOjA3OjE3IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCAyNy81Ml0gYm54dF9lbjogcmVpbml0aWFsaXplIElSUXMgd2hlbiBNVFUgaXMgbW9kaWZp ZWQKClsgVXBzdHJlYW0gY29tbWl0IGE5Yjk1MmQyNjdlNTlhM2I0MDVlNjQ0OTMwZjQ2ZDI1MmNl YTcxMjIgXQoKTVRVIGNoYW5nZXMgbWF5IGFmZmVjdCB0aGUgbnVtYmVyIG9mIElSUXMgc28gd2Ug bXVzdCBjYWxsCmJueHRfY2xvc2VfbmljKCkvYm54dF9vcGVuX25pYygpIHdpdGggdGhlIGlycV9y ZV9pbml0IHBhcmFtZXRlcgpzZXQgdG8gdHJ1ZS4gIFRoZSByZWFzb24gaXMgdGhhdCBhIGxhcmdl ciBNVFUgbWF5IHJlcXVpcmUKYWdncmVnYXRpb24gcmluZ3Mgbm90IG5lZWRlZCB3aXRoIHNtYWxs ZXIgTVRVLiAgV2UgbWF5IG5vdCBiZQphYmxlIHRvIGFsbG9jYXRlIHRoZSByZXF1aXJlZCBudW1i ZXIgb2YgYWdncmVnYXRpb24gcmluZ3MgYW5kCnNvIHdlIHJlZHVjZSB0aGUgbnVtYmVyIG9mIGNo YW5uZWxzIHdoaWNoIHdpbGwgY2hhbmdlIHRoZSBudW1iZXIKb2YgSVJRcy4gIFdpdGhvdXQgdGhp cyBwYXRjaCwgaXQgbWF5IGNyYXNoIGV2ZW50dWFsbHkgaW4KcGNpX2Rpc2FibGVfbXNpeCgpIHdo ZW4gdGhlIElSUXMgYXJlIG5vdCBwcm9wZXJseSB1bndvdW5kLgoKRml4ZXM6IGMwYzA1MGM1OGQ4 NCAoImJueHRfZW46IE5ldyBCcm9hZGNvbSBldGhlcm5ldCBkcml2ZXIuIikKU2lnbmVkLW9mZi1i eTogVmFzdW5kaGFyYSBWb2xhbSA8dmFzdW5kaGFyYS12LnZvbGFtQGJyb2FkY29tLmNvbT4KU2ln bmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwppbmRleCAzNzRlMTFhOTE3OTAuLjU3Yzg4ZTE1N2Y4 NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTEwODkx LDEzICsxMDg5MSwxMyBAQCBzdGF0aWMgaW50IGJueHRfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LCBpbnQgbmV3X210dSkKIAlzdHJ1Y3QgYm54dCAqYnAgPSBuZXRkZXZfcHJpdihk ZXYpOwogCiAJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkKLQkJYm54dF9jbG9zZV9uaWMoYnAsIGZh bHNlLCBmYWxzZSk7CisJCWJueHRfY2xvc2VfbmljKGJwLCB0cnVlLCBmYWxzZSk7CiAKIAlkZXYt Pm10dSA9IG5ld19tdHU7CiAJYm54dF9zZXRfcmluZ19wYXJhbXMoYnApOwogCiAJaWYgKG5ldGlm X3J1bm5pbmcoZGV2KSkKLQkJcmV0dXJuIGJueHRfb3Blbl9uaWMoYnAsIGZhbHNlLCBmYWxzZSk7 CisJCXJldHVybiBibnh0X29wZW5fbmljKGJwLCB0cnVlLCBmYWxzZSk7CiAKIAlyZXR1cm4gMDsK IH0KLS0gCjIuMjAuMQoKCkZyb20gMTNhYmRhOWM4Yzk2NGNjN2FlOGE1YmUxMjJiMmFiZGM1MzZl YWZhMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRWR3aW4gUGVlciA8ZWR3aW4ucGVl ckBicm9hZGNvbS5jb20+CkRhdGU6IFN1biwgMSBNYXIgMjAyMCAyMjowNzoxOCAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggMjgvNTJdIGJueHRfZW46IGZpeCBlcnJvciBoYW5kbGluZyB3aGVuIGZsYXNo aW5nIGZyb20gZmlsZQoKWyBVcHN0cmVhbSBjb21taXQgMjI2MzBlMjhmOWMyYjU1YWJkMjE3ODY5 Y2MwNjk2ZGVmODlmMjI4NCBdCgpBZnRlciBibnh0X2h3cm1fZG9fc2VuZF9tZXNzYWdlKCkgd2Fz IHVwZGF0ZWQgdG8gcmV0dXJuIHN0YW5kYXJkIGVycm9yCmNvZGVzIGluIGEgcmVjZW50IGNvbW1p dCwgYSByZWdyZXNzaW9uIGluIGJueHRfZmxhc2hfcGFja2FnZV9mcm9tX2ZpbGUoKQp3YXMgaW50 cm9kdWNlZC4gIFRoZSByZXR1cm4gdmFsdWUgZG9lcyBub3QgcHJvcGVybHkgcmVmbGVjdCBhbGwK cG9zc2libGUgZmlybXdhcmUgZXJyb3JzIHdoZW4gY2FsbGluZyBmaXJtd2FyZSB0byBmbGFzaCB0 aGUgcGFja2FnZS4KCkZpeCBpdCBieSBjb25zb2xpZGF0aW5nIGFsbCBlcnJvcnMgaW4gb25lIGxv Y2FsIHZhcmlhYmxlIHJjIGluc3RlYWQKb2YgaGF2aW5nIDIgdmFyaWFibGVzIGZvciBkaWZmZXJl bnQgZXJyb3JzLgoKRml4ZXM6IGQ0ZjE0MjBkMzY1NiAoImJueHRfZW46IENvbnZlcnQgZXJyb3Ig Y29kZSBpbiBmaXJtd2FyZSBtZXNzYWdlIHJlc3BvbnNlIHRvIHN0YW5kYXJkIGNvZGUuIikKU2ln bmVkLW9mZi1ieTogRWR3aW4gUGVlciA8ZWR3aW4ucGVlckBicm9hZGNvbS5jb20+ClNpZ25lZC1v ZmYtYnk6IE1pY2hhZWwgQ2hhbiA8bWljaGFlbC5jaGFuQGJyb2FkY29tLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9uZXQv ZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYyB8IDI0ICsrKysrKysrKy0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRo dG9vbC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wu YwppbmRleCBlY2U3MGY2MWM4OWEuLmNmYTY0N2Q1YjQ0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0X2V0aHRvb2wuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jCkBAIC0yMDA1LDggKzIwMDUs OCBAQCBzdGF0aWMgaW50IGJueHRfZmxhc2hfcGFja2FnZV9mcm9tX2ZpbGUoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwKIAlzdHJ1Y3QgaHdybV9udm1faW5zdGFsbF91cGRhdGVfb3V0cHV0ICpyZXNw ID0gYnAtPmh3cm1fY21kX3Jlc3BfYWRkcjsKIAlzdHJ1Y3QgaHdybV9udm1faW5zdGFsbF91cGRh dGVfaW5wdXQgaW5zdGFsbCA9IHswfTsKIAljb25zdCBzdHJ1Y3QgZmlybXdhcmUgKmZ3OwotCWlu dCByYywgaHdybV9lcnIgPSAwOwogCXUzMiBpdGVtX2xlbjsKKwlpbnQgcmMgPSAwOwogCXUxNiBp bmRleDsKIAogCWJueHRfaHdybV9md19zZXRfdGltZShicCk7CkBAIC0yMDUwLDE1ICsyMDUwLDE0 IEBAIHN0YXRpYyBpbnQgYm54dF9mbGFzaF9wYWNrYWdlX2Zyb21fZmlsZShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LAogCQkJbWVtY3B5KGttZW0sIGZ3LT5kYXRhLCBmdy0+c2l6ZSk7CiAJCQltb2Rp ZnkuaG9zdF9zcmNfYWRkciA9IGNwdV90b19sZTY0KGRtYV9oYW5kbGUpOwogCi0JCQlod3JtX2Vy ciA9IGh3cm1fc2VuZF9tZXNzYWdlKGJwLCAmbW9kaWZ5LAotCQkJCQkJICAgICBzaXplb2YobW9k aWZ5KSwKLQkJCQkJCSAgICAgRkxBU0hfUEFDS0FHRV9USU1FT1VUKTsKKwkJCXJjID0gaHdybV9z ZW5kX21lc3NhZ2UoYnAsICZtb2RpZnksIHNpemVvZihtb2RpZnkpLAorCQkJCQkgICAgICAgRkxB U0hfUEFDS0FHRV9USU1FT1VUKTsKIAkJCWRtYV9mcmVlX2NvaGVyZW50KCZicC0+cGRldi0+ZGV2 LCBmdy0+c2l6ZSwga21lbSwKIAkJCQkJICBkbWFfaGFuZGxlKTsKIAkJfQogCX0KIAlyZWxlYXNl X2Zpcm13YXJlKGZ3KTsKLQlpZiAocmMgfHwgaHdybV9lcnIpCisJaWYgKHJjKQogCQlnb3RvIGVy cl9leGl0OwogCiAJaWYgKChpbnN0YWxsX3R5cGUgJiAweGZmZmYpID09IDApCkBAIC0yMDY3LDIw ICsyMDY2LDE5IEBAIHN0YXRpYyBpbnQgYm54dF9mbGFzaF9wYWNrYWdlX2Zyb21fZmlsZShzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LAogCWluc3RhbGwuaW5zdGFsbF90eXBlID0gY3B1X3RvX2xlMzIo aW5zdGFsbF90eXBlKTsKIAogCW11dGV4X2xvY2soJmJwLT5od3JtX2NtZF9sb2NrKTsKLQlod3Jt X2VyciA9IF9od3JtX3NlbmRfbWVzc2FnZShicCwgJmluc3RhbGwsIHNpemVvZihpbnN0YWxsKSwK LQkJCQkgICAgICBJTlNUQUxMX1BBQ0tBR0VfVElNRU9VVCk7Ci0JaWYgKGh3cm1fZXJyKSB7CisJ cmMgPSBfaHdybV9zZW5kX21lc3NhZ2UoYnAsICZpbnN0YWxsLCBzaXplb2YoaW5zdGFsbCksCisJ CQkJSU5TVEFMTF9QQUNLQUdFX1RJTUVPVVQpOworCWlmIChyYykgewogCQl1OCBlcnJvcl9jb2Rl ID0gKChzdHJ1Y3QgaHdybV9lcnJfb3V0cHV0ICopcmVzcCktPmNtZF9lcnI7CiAKIAkJaWYgKHJl c3AtPmVycm9yX2NvZGUgJiYgZXJyb3JfY29kZSA9PQogCQkgICAgTlZNX0lOU1RBTExfVVBEQVRF X0NNRF9FUlJfQ09ERV9GUkFHX0VSUikgewogCQkJaW5zdGFsbC5mbGFncyB8PSBjcHVfdG9fbGUx NigKIAkJCSAgICAgICBOVk1fSU5TVEFMTF9VUERBVEVfUkVRX0ZMQUdTX0FMTE9XRURfVE9fREVG UkFHKTsKLQkJCWh3cm1fZXJyID0gX2h3cm1fc2VuZF9tZXNzYWdlKGJwLCAmaW5zdGFsbCwKLQkJ CQkJCSAgICAgIHNpemVvZihpbnN0YWxsKSwKLQkJCQkJCSAgICAgIElOU1RBTExfUEFDS0FHRV9U SU1FT1VUKTsKKwkJCXJjID0gX2h3cm1fc2VuZF9tZXNzYWdlKGJwLCAmaW5zdGFsbCwgc2l6ZW9m KGluc3RhbGwpLAorCQkJCQkJSU5TVEFMTF9QQUNLQUdFX1RJTUVPVVQpOwogCQl9Ci0JCWlmICho d3JtX2VycikKKwkJaWYgKHJjKQogCQkJZ290byBmbGFzaF9wa2dfZXhpdDsKIAl9CiAKQEAgLTIw OTIsNyArMjA5MCw3IEBAIHN0YXRpYyBpbnQgYm54dF9mbGFzaF9wYWNrYWdlX2Zyb21fZmlsZShz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogZmxhc2hfcGtnX2V4aXQ6CiAJbXV0ZXhfdW5sb2NrKCZi cC0+aHdybV9jbWRfbG9jayk7CiBlcnJfZXhpdDoKLQlpZiAoaHdybV9lcnIgPT0gLUVBQ0NFUykK KwlpZiAocmMgPT0gLUVBQ0NFUykKIAkJYm54dF9wcmludF9hZG1pbl9lcnIoYnApOwogCXJldHVy biByYzsKIH0KLS0gCjIuMjAuMQoKCkZyb20gYTlmYjMyNmVjMjkzNmQyYWE3MmZhYTVjZDE4YjE2 ODIzNjkyNjA2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2hha2VlbCBCdXR0IDxz aGFrZWVsYkBnb29nbGUuY29tPgpEYXRlOiBNb24sIDkgTWFyIDIwMjAgMjI6MTY6MDUgLTA3MDAK U3ViamVjdDogW1BBVENIIDI5LzUyXSBjZ3JvdXA6IG1lbWNnOiBuZXQ6IGRvIG5vdCBhc3NvY2lh dGUgc29jayB3aXRoCiB1bnJlbGF0ZWQgY2dyb3VwCgpbIFVwc3RyZWFtIGNvbW1pdCBlODc2ZWNj NjdkYjgwZGZkYjhlMjM3ZjcxZTViNDNiYjg4YWU1NDljIF0KCldlIGFyZSB0ZXN0aW5nIG5ldHdv cmsgbWVtb3J5IGFjY291bnRpbmcgaW4gb3VyIHNldHVwIGFuZCBub3RpY2VkCmluY29uc2lzdGVu dCBuZXR3b3JrIG1lbW9yeSB1c2FnZSBhbmQgb2Z0ZW4gdW5yZWxhdGVkIGNncm91cHMgbmV0d29y awp1c2FnZSBjb3JyZWxhdGVzIHdpdGggdGVzdGluZyB3b3JrbG9hZC4gT24gZnVydGhlciBpbnNw ZWN0aW9uLCBpdApzZWVtcyBsaWtlIG1lbV9jZ3JvdXBfc2tfYWxsb2MoKSBhbmQgY2dyb3VwX3Nr X2FsbG9jKCkgYXJlIGJyb2tlbiBpbgppcnEgY29udGV4dCBzcGVjaWFsbHkgZm9yIGNncm91cCB2 MS4KCm1lbV9jZ3JvdXBfc2tfYWxsb2MoKSBhbmQgY2dyb3VwX3NrX2FsbG9jKCkgY2FuIGJlIGNh bGxlZCBpbiBpcnEgY29udGV4dAphbmQga2luZCBvZiBhc3N1bWVzIHRoYXQgdGhpcyBjYW4gb25s eSBoYXBwZW4gZnJvbSBza19jbG9uZV9sb2NrKCkKYW5kIHRoZSBzb3VyY2Ugc29jayBvYmplY3Qg aGFzIGFscmVhZHkgYXNzb2NpYXRlZCBjZ3JvdXAuIEhvd2V2ZXIgaW4KY2dyb3VwIHYxLCB3aGVy ZSBuZXR3b3JrIG1lbW9yeSBhY2NvdW50aW5nIGlzIG9wdC1pbiwgdGhlIHNvdXJjZSBzb2NrCmNh biBiZSB1bmFzc29jaWF0ZWQgd2l0aCBhbnkgY2dyb3VwIGFuZCB0aGUgbmV3IGNsb25lZCBzb2Nr IGNhbiBnZXQKYXNzb2NpYXRlZCB3aXRoIHVucmVsYXRlZCBpbnRlcnJ1cHRlZCBjZ3JvdXAuCgpD Z3JvdXAgdjIgY2FuIGFsc28gc3VmZmVyIGlmIHRoZSBzb3VyY2Ugc29jayBvYmplY3Qgd2FzIGNy ZWF0ZWQgYnkKcHJvY2VzcyBpbiB0aGUgcm9vdCBjZ3JvdXAgb3IgaWYgc2tfYWxsb2MoKSBpcyBj YWxsZWQgaW4gaXJxIGNvbnRleHQuClRoZSBmaXggaXMgdG8ganVzdCBkbyBub3RoaW5nIGluIGlu dGVycnVwdC4KCldBUk5JTkc6IFBsZWFzZSBub3RlIHRoYXQgYWJvdXQgaGFsZiBvZiB0aGUgVENQ IHNvY2tldHMgYXJlIGFsbG9jYXRlZApmcm9tIHRoZSBJUlEgY29udGV4dCwgc28sIG1lbW9yeSB1 c2VkIGJ5IHN1Y2ggc29ja2V0cyB3aWxsIG5vdCBiZQphY2NvdXRlZCBieSB0aGUgbWVtY2cuCgpU aGUgc3RhY2sgdHJhY2Ugb2YgbWVtX2Nncm91cF9za19hbGxvYygpIGZyb20gSVJRLWNvbnRleHQ6 CgpDUFU6IDcwIFBJRDogMTI3MjAgQ29tbTogc3NoIFRhaW50ZWQ6ICA1LjYuMC1zbXAtREVWICMx CkhhcmR3YXJlIG5hbWU6IC4uLgpDYWxsIFRyYWNlOgogPElSUT4KIGR1bXBfc3RhY2srMHg1Ny8w eDc1CiBtZW1fY2dyb3VwX3NrX2FsbG9jKzB4ZTkvMHhmMAogc2tfY2xvbmVfbG9jaysweDJhNy8w eDQyMAogaW5ldF9jc2tfY2xvbmVfbG9jaysweDFiLzB4MTEwCiB0Y3BfY3JlYXRlX29wZW5yZXFf Y2hpbGQrMHgyMy8weDNiMAogdGNwX3Y2X3N5bl9yZWN2X3NvY2srMHg4OC8weDczMAogdGNwX2No ZWNrX3JlcSsweDQyOS8weDU2MAogdGNwX3Y2X3JjdisweDcyZC8weGE0MAogaXA2X3Byb3RvY29s X2RlbGl2ZXJfcmN1KzB4YzkvMHg0MDAKIGlwNl9pbnB1dCsweDQ0LzB4ZDAKID8gaXA2X3Byb3Rv Y29sX2RlbGl2ZXJfcmN1KzB4NDAwLzB4NDAwCiBpcDZfcmN2X2ZpbmlzaCsweDcxLzB4ODAKIGlw djZfcmN2KzB4NWIvMHhlMAogPyBpcDZfc3VibGlzdF9yY3YrMHgyZTAvMHgyZTAKIHByb2Nlc3Nf YmFja2xvZysweDEwOC8weDFlMAogbmV0X3J4X2FjdGlvbisweDI2Yi8weDQ2MAogX19kb19zb2Z0 aXJxKzB4MTA0LzB4MmE2CiBkb19zb2Z0aXJxX293bl9zdGFjaysweDJhLzB4NDAKIDwvSVJRPgog ZG9fc29mdGlycS5wYXJ0LjE5KzB4NDAvMHg1MAogX19sb2NhbF9iaF9lbmFibGVfaXArMHg1MS8w eDYwCiBpcDZfZmluaXNoX291dHB1dDIrMHgyM2QvMHg1MjAKID8gaXA2dGFibGVfbWFuZ2xlX2hv b2srMHg1NS8weDE2MAogX19pcDZfZmluaXNoX291dHB1dCsweGExLzB4MTAwCiBpcDZfZmluaXNo X291dHB1dCsweDMwLzB4ZDAKIGlwNl9vdXRwdXQrMHg3My8weDEyMAogPyBfX2lwNl9maW5pc2hf b3V0cHV0KzB4MTAwLzB4MTAwCiBpcDZfeG1pdCsweDJlMy8weDYwMAogPyBpcHY2X2FueWNhc3Rf Y2xlYW51cCsweDUwLzB4NTAKID8gaW5ldDZfY3NrX3JvdXRlX3NvY2tldCsweDEzNi8weDFlMAog PyBza2JfZnJlZV9oZWFkKzB4MWUvMHgzMAogaW5ldDZfY3NrX3htaXQrMHg5NS8weGYwCiBfX3Rj cF90cmFuc21pdF9za2IrMHg1YjQvMHhiMjAKIF9fdGNwX3NlbmRfYWNrLnBhcnQuNjArMHhhMy8w eDExMAogdGNwX3NlbmRfYWNrKzB4MWQvMHgyMAogdGNwX3Jjdl9zdGF0ZV9wcm9jZXNzKzB4ZTY0 LzB4ZTgwCiA/IHRjcF92Nl9jb25uZWN0KzB4NWQxLzB4NWYwCiB0Y3BfdjZfZG9fcmN2KzB4MWIx LzB4M2YwCiA/IHRjcF92Nl9kb19yY3YrMHgxYjEvMHgzZjAKIF9fcmVsZWFzZV9zb2NrKzB4N2Yv MHhkMAogcmVsZWFzZV9zb2NrKzB4MzAvMHhhMAogX19pbmV0X3N0cmVhbV9jb25uZWN0KzB4MWMz LzB4M2IwCiA/IHByZXBhcmVfdG9fd2FpdCsweGIwLzB4YjAKIGluZXRfc3RyZWFtX2Nvbm5lY3Qr MHgzYi8weDYwCiBfX3N5c19jb25uZWN0KzB4MTAxLzB4MTIwCiA/IF9fc3lzX2dldHNvY2tvcHQr MHgxMWIvMHgxNDAKIF9feDY0X3N5c19jb25uZWN0KzB4MWEvMHgyMAogZG9fc3lzY2FsbF82NCsw eDUxLzB4MjAwCiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpUaGUg c3RhY2sgdHJhY2Ugb2YgbWVtX2Nncm91cF9za19hbGxvYygpIGZyb20gSVJRLWNvbnRleHQ6CkZp eGVzOiAyZDc1ODA3MzgzNDUgKCJtbTogbWVtY29udHJvbDogY29uc29saWRhdGUgY2dyb3VwIHNv Y2tldCB0cmFja2luZyIpCkZpeGVzOiBkOTc5YTM5ZDcyNDIgKCJjZ3JvdXA6IGR1cGxpY2F0ZSBj Z3JvdXAgcmVmZXJlbmNlIHdoZW4gY2xvbmluZyBzb2NrZXRzIikKU2lnbmVkLW9mZi1ieTogU2hh a2VlbCBCdXR0IDxzaGFrZWVsYkBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogUm9tYW4gR3VzaGNo aW4gPGd1cm9AZmIuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQoga2VybmVsL2Nncm91cC9jZ3JvdXAuYyB8IDQgKysrKwogbW0vbWVt Y29udHJvbC5jICAgICAgICB8IDQgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9rZXJuZWwvY2dyb3VwL2Nncm91cC5jIGIva2VybmVsL2Nncm91cC9j Z3JvdXAuYwppbmRleCA1OTVjNTJkNTlmMzEuLjk3NDYzMWY2OGQ0MCAxMDA2NDQKLS0tIGEva2Vy bmVsL2Nncm91cC9jZ3JvdXAuYworKysgYi9rZXJuZWwvY2dyb3VwL2Nncm91cC5jCkBAIC02Mzgx LDYgKzYzODEsMTAgQEAgdm9pZCBjZ3JvdXBfc2tfYWxsb2Moc3RydWN0IHNvY2tfY2dyb3VwX2Rh dGEgKnNrY2QpCiAJCXJldHVybjsKIAl9CiAKKwkvKiBEb24ndCBhc3NvY2lhdGUgdGhlIHNvY2sg d2l0aCB1bnJlbGF0ZWQgaW50ZXJydXB0ZWQgdGFzaydzIGNncm91cC4gKi8KKwlpZiAoaW5faW50 ZXJydXB0KCkpCisJCXJldHVybjsKKwogCXJjdV9yZWFkX2xvY2soKTsKIAogCXdoaWxlICh0cnVl KSB7CmRpZmYgLS1naXQgYS9tbS9tZW1jb250cm9sLmMgYi9tbS9tZW1jb250cm9sLmMKaW5kZXgg YWU5MDQ0YmM5ZjgwLi41NDliMDgyMjQ0NTUgMTAwNjQ0Ci0tLSBhL21tL21lbWNvbnRyb2wuYwor KysgYi9tbS9tZW1jb250cm9sLmMKQEAgLTY4MDYsNiArNjgwNiwxMCBAQCB2b2lkIG1lbV9jZ3Jv dXBfc2tfYWxsb2Moc3RydWN0IHNvY2sgKnNrKQogCQlyZXR1cm47CiAJfQogCisJLyogRG8gbm90 IGFzc29jaWF0ZSB0aGUgc29jayB3aXRoIHVucmVsYXRlZCBpbnRlcnJ1cHRlZCB0YXNrJ3MgbWVt Y2cuICovCisJaWYgKGluX2ludGVycnVwdCgpKQorCQlyZXR1cm47CisKIAlyY3VfcmVhZF9sb2Nr KCk7CiAJbWVtY2cgPSBtZW1fY2dyb3VwX2Zyb21fdGFzayhjdXJyZW50KTsKIAlpZiAobWVtY2cg PT0gcm9vdF9tZW1fY2dyb3VwKQotLSAKMi4yMC4xCgoKRnJvbSAyMmU2OTQ4YjQyZGE4NDI4NWI2 NGM1YTQyZjhhZGM3MzZlOTM3YzViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFr ZWVsIEJ1dHQgPHNoYWtlZWxiQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgOSBNYXIgMjAyMCAyMjox NjowNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzAvNTJdIG5ldDogbWVtY2c6IGxhdGUgYXNzb2Np YXRpb24gb2Ygc29jayB0byBtZW1jZwoKWyBVcHN0cmVhbSBjb21taXQgZDc1MmE0OTg2NTMyY2I2 MzA1ZGZkNTI5MGE2MTRjZGU4MDcyNzY5ZCBdCgpJZiBhIFRDUCBzb2NrZXQgaXMgYWxsb2NhdGVk IGluIElSUSBjb250ZXh0IG9yIGNsb25lZCBmcm9tIHVuYXNzb2NpYXRlZAooaS5lLiBub3QgYXNz b2NpYXRlZCB0byBhIG1lbWNnKSBpbiBJUlEgY29udGV4dCB0aGVuIGl0IHdpbGwgcmVtYWluCnVu YXNzb2NpYXRlZCBmb3IgaXRzIHdob2xlIGxpZmUuIEFsbW9zdCBoYWxmIG9mIHRoZSBUQ1BzIGNy ZWF0ZWQgb24gdGhlCnN5c3RlbSBhcmUgY3JlYXRlZCBpbiBJUlEgY29udGV4dCwgc28sIG1lbW9y eSB1c2VkIGJ5IHN1Y2ggc29ja2V0cyB3aWxsCm5vdCBiZSBhY2NvdW50ZWQgYnkgdGhlIG1lbWNn LgoKVGhpcyBpc3N1ZSBpcyBtb3JlIHdpZGVzcHJlYWQgaW4gY2dyb3VwIHYxIHdoZXJlIG5ldHdv cmsgbWVtb3J5CmFjY291bnRpbmcgaXMgb3B0LWluIGJ1dCBpdCBjYW4gaGFwcGVuIGluIGNncm91 cCB2MiBpZiB0aGUgc291cmNlIHNvY2tldApmb3IgdGhlIGNsb25pbmcgd2FzIGNyZWF0ZWQgaW4g cm9vdCBtZW1jZy4KClRvIGZpeCB0aGUgaXNzdWUsIGp1c3QgZG8gdGhlIGFzc29jaWF0aW9uIG9m IHRoZSBzb2NrZXRzIGF0IHRoZSBhY2NlcHQoKQp0aW1lIGluIHRoZSBwcm9jZXNzIGNvbnRleHQg YW5kIHRoZW4gZm9yY2UgY2hhcmdlIHRoZSBtZW1vcnkgYnVmZmVyCmFscmVhZHkgdXNlZCBhbmQg cmVzZXJ2ZWQgYnkgdGhlIHNvY2tldC4KClNpZ25lZC1vZmYtYnk6IFNoYWtlZWwgQnV0dCA8c2hh a2VlbGJAZ29vZ2xlLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG1tL21lbWNvbnRyb2wuYyAgICAgICAgICAgICAgICAgfCAxNCAtLS0tLS0tLS0t LS0tLQogbmV0L2NvcmUvc29jay5jICAgICAgICAgICAgICAgICB8ICA1ICsrKystCiBuZXQvaXB2 NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIHwgMjAgKysrKysrKysrKysrKysrKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgMjQgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbW0vbWVtY29udHJvbC5jIGIvbW0vbWVtY29udHJvbC5jCmluZGV4IDU0OWIwODIyNDQ1NS4u MjNjOTljNjc3OGQzIDEwMDY0NAotLS0gYS9tbS9tZW1jb250cm9sLmMKKysrIGIvbW0vbWVtY29u dHJvbC5jCkBAIC02NzkyLDIwICs2NzkyLDYgQEAgdm9pZCBtZW1fY2dyb3VwX3NrX2FsbG9jKHN0 cnVjdCBzb2NrICpzaykKIAlpZiAoIW1lbV9jZ3JvdXBfc29ja2V0c19lbmFibGVkKQogCQlyZXR1 cm47CiAKLQkvKgotCSAqIFNvY2tldCBjbG9uaW5nIGNhbiB0aHJvdyB1cyBoZXJlIHdpdGggc2tf bWVtY2cgYWxyZWFkeQotCSAqIGZpbGxlZC4gSXQgd29uJ3QgaG93ZXZlciwgbmVjZXNzYXJpbHkg aGFwcGVuIGZyb20KLQkgKiBwcm9jZXNzIGNvbnRleHQuIFNvIHRoZSB0ZXN0IGZvciByb290IG1l bWNnIGdpdmVuCi0JICogdGhlIGN1cnJlbnQgdGFzaydzIG1lbWNnIHdvbid0IGhlbHAgdXMgaW4g dGhpcyBjYXNlLgotCSAqCi0JICogUmVzcGVjdGluZyB0aGUgb3JpZ2luYWwgc29ja2V0J3MgbWVt Y2cgaXMgYSBiZXR0ZXIKLQkgKiBkZWNpc2lvbiBpbiB0aGlzIGNhc2UuCi0JICovCi0JaWYgKHNr LT5za19tZW1jZykgewotCQljc3NfZ2V0KCZzay0+c2tfbWVtY2ctPmNzcyk7Ci0JCXJldHVybjsK LQl9Ci0KIAkvKiBEbyBub3QgYXNzb2NpYXRlIHRoZSBzb2NrIHdpdGggdW5yZWxhdGVkIGludGVy cnVwdGVkIHRhc2sncyBtZW1jZy4gKi8KIAlpZiAoaW5faW50ZXJydXB0KCkpCiAJCXJldHVybjsK ZGlmZiAtLWdpdCBhL25ldC9jb3JlL3NvY2suYyBiL25ldC9jb3JlL3NvY2suYwppbmRleCBiNGQx MTEyMTc0YzEuLjBhZGY3YTllNWE5MCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBi L25ldC9jb3JlL3NvY2suYwpAQCAtMTgzMiw3ICsxODMyLDEwIEBAIHN0cnVjdCBzb2NrICpza19j bG9uZV9sb2NrKGNvbnN0IHN0cnVjdCBzb2NrICpzaywgY29uc3QgZ2ZwX3QgcHJpb3JpdHkpCiAJ CWF0b21pY19zZXQoJm5ld3NrLT5za196Y2tleSwgMCk7CiAKIAkJc29ja19yZXNldF9mbGFnKG5l d3NrLCBTT0NLX0RPTkUpOwotCQltZW1fY2dyb3VwX3NrX2FsbG9jKG5ld3NrKTsKKworCQkvKiBz ay0+c2tfbWVtY2cgd2lsbCBiZSBwb3B1bGF0ZWQgYXQgYWNjZXB0KCkgdGltZSAqLworCQluZXdz ay0+c2tfbWVtY2cgPSBOVUxMOworCiAJCWNncm91cF9za19hbGxvYygmbmV3c2stPnNrX2NncnBf ZGF0YSk7CiAKIAkJcmN1X3JlYWRfbG9jaygpOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9j b25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXgg YWMwNWUyNzNiYzY2Li43YWU3ZWNlMzk5N2QgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29u bmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAt NDgyLDYgKzQ4MiwyNiBAQCBzdHJ1Y3Qgc29jayAqaW5ldF9jc2tfYWNjZXB0KHN0cnVjdCBzb2Nr ICpzaywgaW50IGZsYWdzLCBpbnQgKmVyciwgYm9vbCBrZXJuKQogCQl9CiAJCXNwaW5fdW5sb2Nr X2JoKCZxdWV1ZS0+ZmFzdG9wZW5xLmxvY2spOwogCX0KKworCWlmIChtZW1fY2dyb3VwX3NvY2tl dHNfZW5hYmxlZCkgeworCQlpbnQgYW10OworCisJCS8qIGF0b21pY2FsbHkgZ2V0IHRoZSBtZW1v cnkgdXNhZ2UsIHNldCBhbmQgY2hhcmdlIHRoZQorCQkgKiBzay0+c2tfbWVtY2cuCisJCSAqLwor CQlsb2NrX3NvY2sobmV3c2spOworCisJCS8qIFRoZSBzayBoYXMgbm90IGJlZW4gYWNjZXB0ZWQg eWV0LCBubyBuZWVkIHRvIGxvb2sgYXQKKwkJICogc2stPnNrX3dtZW1fcXVldWVkLgorCQkgKi8K KwkJYW10ID0gc2tfbWVtX3BhZ2VzKG5ld3NrLT5za19mb3J3YXJkX2FsbG9jICsKKwkJCQkgICBh dG9taWNfcmVhZCgmc2stPnNrX3JtZW1fYWxsb2MpKTsKKwkJbWVtX2Nncm91cF9za19hbGxvYyhu ZXdzayk7CisJCWlmIChuZXdzay0+c2tfbWVtY2cgJiYgYW10KQorCQkJbWVtX2Nncm91cF9jaGFy Z2Vfc2ttZW0obmV3c2stPnNrX21lbWNnLCBhbXQpOworCisJCXJlbGVhc2Vfc29jayhuZXdzayk7 CisJfQogb3V0OgogCXJlbGVhc2Vfc29jayhzayk7CiAJaWYgKHJlcSkKLS0gCjIuMjAuMQoKCkZy b20gMTMzYjIwMTljOTUxODU0MWQ1YmI5ODU4MWU2OGY0ZTQ3NTkzNmFmOCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRl OiBXZWQsIDExIE1hciAyMDIwIDExOjQ0OjI2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzMS81Ml0g bmV0OiBtZW1jZzogZml4IGxvY2tkZXAgc3BsYXQgaW4gaW5ldF9jc2tfYWNjZXB0KCkKCkxvY2tp bmcgbmV3c2sgd2hpbGUgc3RpbGwgaG9sZGluZyB0aGUgbGlzdGVuZXIgbG9jayB0cmlnZ2VyZWQK YSBsb2NrZGVwIHNwbGF0IFsxXQoKV2UgY2FuIHNpbXBseSBtb3ZlIHRoZSBtZW1jZyBjb2RlIGFm dGVyIHdlIHJlbGVhc2UgdGhlIGxpc3RlbmVyIGxvY2ssCmFzIHRoaXMgY2FuIGFsc28gaGVscCBp ZiBtdWx0aXBsZSB0aHJlYWRzIGFyZSBzaGFyaW5nIGEgY29tbW9uIGxpc3RlbmVyLgoKQWxzbyBm aXggYSB0eXBvIHdoaWxlIHJlYWRpbmcgc29ja2V0IHNrX3JtZW1fYWxsb2MuCgpbMV0KV0FSTklO RzogcG9zc2libGUgcmVjdXJzaXZlIGxvY2tpbmcgZGV0ZWN0ZWQKNS42LjAtcmMzLXN5emthbGxl ciAjMCBOb3QgdGFpbnRlZAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpzeXotZXhlY3V0b3I1OTgvOTUyNCBpcyB0cnlpbmcgdG8gYWNxdWlyZSBsb2NrOgpmZmZm ODg4MDhiNWI4YjkwIChza19sb2NrLUFGX0lORVQ2KXsrLisufSwgYXQ6IGxvY2tfc29jayBpbmNs dWRlL25ldC9zb2NrLmg6MTU0MSBbaW5saW5lXQpmZmZmODg4MDhiNWI4YjkwIChza19sb2NrLUFG X0lORVQ2KXsrLisufSwgYXQ6IGluZXRfY3NrX2FjY2VwdCsweDY5Zi8weGQzMCBuZXQvaXB2NC9p bmV0X2Nvbm5lY3Rpb25fc29jay5jOjQ5MgoKYnV0IHRhc2sgaXMgYWxyZWFkeSBob2xkaW5nIGxv Y2s6CmZmZmY4ODgwOGI1Yjk1OTAgKHNrX2xvY2stQUZfSU5FVDYpeysuKy59LCBhdDogbG9ja19z b2NrIGluY2x1ZGUvbmV0L3NvY2suaDoxNTQxIFtpbmxpbmVdCmZmZmY4ODgwOGI1Yjk1OTAgKHNr X2xvY2stQUZfSU5FVDYpeysuKy59LCBhdDogaW5ldF9jc2tfYWNjZXB0KzB4OGQvMHhkMzAgbmV0 L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzo0NDUKCm90aGVyIGluZm8gdGhhdCBtaWdodCBo ZWxwIHVzIGRlYnVnIHRoaXM6CiBQb3NzaWJsZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJpbzoKCiAg ICAgICBDUFUwCiAgICAgICAtLS0tCiAgbG9jayhza19sb2NrLUFGX0lORVQ2KTsKICBsb2NrKHNr X2xvY2stQUZfSU5FVDYpOwoKICoqKiBERUFETE9DSyAqKioKCiBNYXkgYmUgZHVlIHRvIG1pc3Np bmcgbG9jayBuZXN0aW5nIG5vdGF0aW9uCgoxIGxvY2sgaGVsZCBieSBzeXotZXhlY3V0b3I1OTgv OTUyNDoKICMwOiBmZmZmODg4MDhiNWI5NTkwIChza19sb2NrLUFGX0lORVQ2KXsrLisufSwgYXQ6 IGxvY2tfc29jayBpbmNsdWRlL25ldC9zb2NrLmg6MTU0MSBbaW5saW5lXQogIzA6IGZmZmY4ODgw OGI1Yjk1OTAgKHNrX2xvY2stQUZfSU5FVDYpeysuKy59LCBhdDogaW5ldF9jc2tfYWNjZXB0KzB4 OGQvMHhkMzAgbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzo0NDUKCnN0YWNrIGJhY2t0 cmFjZToKQ1BVOiAwIFBJRDogOTUyNCBDb21tOiBzeXotZXhlY3V0b3I1OTggTm90IHRhaW50ZWQg NS42LjAtcmMzLXN5emthbGxlciAjMApIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1 dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpD YWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9kdW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1 bXBfc3RhY2srMHgxODgvMHgyMGQgbGliL2R1bXBfc3RhY2suYzoxMTgKIHByaW50X2RlYWRsb2Nr X2J1ZyBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6MjM3MCBbaW5saW5lXQogY2hlY2tfZGVhZGxv Y2sga2VybmVsL2xvY2tpbmcvbG9ja2RlcC5jOjI0MTEgW2lubGluZV0KIHZhbGlkYXRlX2NoYWlu IGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzoyOTU0IFtpbmxpbmVdCiBfX2xvY2tfYWNxdWlyZS5j b2xkKzB4MTE0LzB4Mjg4IGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzozOTU0CiBsb2NrX2FjcXVp cmUrMHgxOTcvMHg0MjAga2VybmVsL2xvY2tpbmcvbG9ja2RlcC5jOjQ0ODQKIGxvY2tfc29ja19u ZXN0ZWQrMHhjNS8weDExMCBuZXQvY29yZS9zb2NrLmM6Mjk0NwogbG9ja19zb2NrIGluY2x1ZGUv bmV0L3NvY2suaDoxNTQxIFtpbmxpbmVdCiBpbmV0X2Nza19hY2NlcHQrMHg2OWYvMHhkMzAgbmV0 L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYzo0OTIKIGluZXRfYWNjZXB0KzB4ZTkvMHg3YzAg bmV0L2lwdjQvYWZfaW5ldC5jOjczNAogX19zeXNfYWNjZXB0NF9maWxlKzB4M2FjLzB4NWIwIG5l dC9zb2NrZXQuYzoxNzU4CiBfX3N5c19hY2NlcHQ0KzB4NTMvMHg5MCBuZXQvc29ja2V0LmM6MTgw OQogX19kb19zeXNfYWNjZXB0NCBuZXQvc29ja2V0LmM6MTgyMSBbaW5saW5lXQogX19zZV9zeXNf YWNjZXB0NCBuZXQvc29ja2V0LmM6MTgxOCBbaW5saW5lXQogX194NjRfc3lzX2FjY2VwdDQrMHg5 My8weGYwIG5ldC9zb2NrZXQuYzoxODE4CiBkb19zeXNjYWxsXzY0KzB4ZjYvMHg3OTAgYXJjaC94 ODYvZW50cnkvY29tbW9uLmM6Mjk0CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0 OS8weGJlClJJUDogMDAzMzoweDQ0NDVjOQpDb2RlOiBlOCAwYyAwZCAwMyAwMCA0OCA4MyBjNCAx OCBjMyAwZiAxZiA4MCAwMCAwMCAwMCAwMCA0OCA4OSBmOCA0OCA4OSBmNyA0OCA4OSBkNiA0OCA4 OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAyNCAwOCAwZiAwNSA8NDg+IDNkIDAxIGYw IGZmIGZmIDBmIDgzIGViIDA4IGZjIGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwClJT UDogMDAyYjowMDAwN2ZmYzM1YjM3NjA4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAw MDAwMDAwMDAxMjAKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAwMDAwMyBS Q1g6IDAwMDAwMDAwMDA0NDQ1YzkKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAw MDAwMDAwMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQOiAwMDAwMDAwMDAwMDAwMDAwIFIwODog MDAwMDAwMDAwMDMwNjc3NyBSMDk6IDAwMDAwMDAwMDAzMDY3NzcKUjEwOiAwMDAwMDAwMDAwMDAw MDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDAwMDAwMDAKUjEzOiAwMDAw MDAwMDAwNDA1M2QwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAK CkZpeGVzOiBkNzUyYTQ5ODY1MzIgKCJuZXQ6IG1lbWNnOiBsYXRlIGFzc29jaWF0aW9uIG9mIHNv Y2sgdG8gbWVtY2ciKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkNjOiBTaGFrZWVsIEJ1dHQgPHNoYWtlZWxiQGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5 OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaW5ldF9jb25u ZWN0aW9uX3NvY2suYyB8IDE0ICsrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfY29u bmVjdGlvbl9zb2NrLmMgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jCmluZGV4IDdh ZTdlY2UzOTk3ZC4uYjAwMTBjNzEwODAyIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0X2Nvbm5l Y3Rpb25fc29jay5jCisrKyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKQEAgLTQ4 MywyNyArNDgzLDI3IEBAIHN0cnVjdCBzb2NrICppbmV0X2Nza19hY2NlcHQoc3RydWN0IHNvY2sg KnNrLCBpbnQgZmxhZ3MsIGludCAqZXJyLCBib29sIGtlcm4pCiAJCXNwaW5fdW5sb2NrX2JoKCZx dWV1ZS0+ZmFzdG9wZW5xLmxvY2spOwogCX0KIAotCWlmIChtZW1fY2dyb3VwX3NvY2tldHNfZW5h YmxlZCkgeworb3V0OgorCXJlbGVhc2Vfc29jayhzayk7CisJaWYgKG5ld3NrICYmIG1lbV9jZ3Jv dXBfc29ja2V0c19lbmFibGVkKSB7CiAJCWludCBhbXQ7CiAKIAkJLyogYXRvbWljYWxseSBnZXQg dGhlIG1lbW9yeSB1c2FnZSwgc2V0IGFuZCBjaGFyZ2UgdGhlCi0JCSAqIHNrLT5za19tZW1jZy4K KwkJICogbmV3c2stPnNrX21lbWNnLgogCQkgKi8KIAkJbG9ja19zb2NrKG5ld3NrKTsKIAotCQkv KiBUaGUgc2sgaGFzIG5vdCBiZWVuIGFjY2VwdGVkIHlldCwgbm8gbmVlZCB0byBsb29rIGF0Ci0J CSAqIHNrLT5za193bWVtX3F1ZXVlZC4KKwkJLyogVGhlIHNvY2tldCBoYXMgbm90IGJlZW4gYWNj ZXB0ZWQgeWV0LCBubyBuZWVkIHRvIGxvb2sgYXQKKwkJICogbmV3c2stPnNrX3dtZW1fcXVldWVk LgogCQkgKi8KIAkJYW10ID0gc2tfbWVtX3BhZ2VzKG5ld3NrLT5za19mb3J3YXJkX2FsbG9jICsK LQkJCQkgICBhdG9taWNfcmVhZCgmc2stPnNrX3JtZW1fYWxsb2MpKTsKKwkJCQkgICBhdG9taWNf cmVhZCgmbmV3c2stPnNrX3JtZW1fYWxsb2MpKTsKIAkJbWVtX2Nncm91cF9za19hbGxvYyhuZXdz ayk7CiAJCWlmIChuZXdzay0+c2tfbWVtY2cgJiYgYW10KQogCQkJbWVtX2Nncm91cF9jaGFyZ2Vf c2ttZW0obmV3c2stPnNrX21lbWNnLCBhbXQpOwogCiAJCXJlbGVhc2Vfc29jayhuZXdzayk7CiAJ fQotb3V0OgotCXJlbGVhc2Vfc29jayhzayk7CiAJaWYgKHJlcSkKIAkJcmVxc2tfcHV0KHJlcSk7 CiAJcmV0dXJuIG5ld3NrOwotLSAKMi4yMC4xCgoKRnJvbSAwNGNhYTI0Y2Y0MzZiNGJiZTA3Yzgw ZTU1OTg3MDcwYmMxZWI3NTdkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBL aWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24sIDIgTWFyIDIwMjAgMjE6MDU6MTEg LTA4MDAKU3ViamVjdDogW1BBVENIIDMyLzUyXSBkZXZsaW5rOiB2YWxpZGF0ZSBsZW5ndGggb2Yg cGFyYW0gdmFsdWVzCgpbIFVwc3RyZWFtIGNvbW1pdCA4NzUwOTM5YjZhZDg2YWJjM2Y1M2VjOGE5 NjgzYTFjZGVkNGE1NjU0IF0KCkRFVkxJTktfQVRUUl9QQVJBTV9WQUxVRV9EQVRBIG1heSBoYXZl IGRpZmZlcmVudCB0eXBlcwpzbyBpdCdzIG5vdCBjaGVja2VkIGJ5IHRoZSBub3JtYWwgbmV0bGlu ayBwb2xpY3kuIE1ha2UKc3VyZSB0aGUgYXR0cmlidXRlIGxlbmd0aCBpcyB3aGF0IHdlIGV4cGVj dC4KCkZpeGVzOiBlM2I3Y2ExOGFkN2IgKCJkZXZsaW5rOiBBZGQgcGFyYW0gc2V0IGNvbW1hbmQi KQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpSZXZpZXdl ZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvY29yZS9kZXZsaW5rLmMg fCAzMSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTkg aW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2 bGluay5jIGIvbmV0L2NvcmUvZGV2bGluay5jCmluZGV4IDYxYmM2NzA0N2Y1Ni4uYzQ2NzI2YzVk Y2Q2IDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXZsaW5rLmMKKysrIGIvbmV0L2NvcmUvZGV2bGlu ay5jCkBAIC0zMjIyLDM0ICszMjIyLDQxIEBAIGRldmxpbmtfcGFyYW1fdmFsdWVfZ2V0X2Zyb21f aW5mbyhjb25zdCBzdHJ1Y3QgZGV2bGlua19wYXJhbSAqcGFyYW0sCiAJCQkJICBzdHJ1Y3QgZ2Vu bF9pbmZvICppbmZvLAogCQkJCSAgdW5pb24gZGV2bGlua19wYXJhbV92YWx1ZSAqdmFsdWUpCiB7 CisJc3RydWN0IG5sYXR0ciAqcGFyYW1fZGF0YTsKIAlpbnQgbGVuOwogCi0JaWYgKHBhcmFtLT50 eXBlICE9IERFVkxJTktfUEFSQU1fVFlQRV9CT09MICYmCi0JICAgICFpbmZvLT5hdHRyc1tERVZM SU5LX0FUVFJfUEFSQU1fVkFMVUVfREFUQV0pCisJcGFyYW1fZGF0YSA9IGluZm8tPmF0dHJzW0RF VkxJTktfQVRUUl9QQVJBTV9WQUxVRV9EQVRBXTsKKworCWlmIChwYXJhbS0+dHlwZSAhPSBERVZM SU5LX1BBUkFNX1RZUEVfQk9PTCAmJiAhcGFyYW1fZGF0YSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAK IAlzd2l0Y2ggKHBhcmFtLT50eXBlKSB7CiAJY2FzZSBERVZMSU5LX1BBUkFNX1RZUEVfVTg6Ci0J CXZhbHVlLT52dTggPSBubGFfZ2V0X3U4KGluZm8tPmF0dHJzW0RFVkxJTktfQVRUUl9QQVJBTV9W QUxVRV9EQVRBXSk7CisJCWlmIChubGFfbGVuKHBhcmFtX2RhdGEpICE9IHNpemVvZih1OCkpCisJ CQlyZXR1cm4gLUVJTlZBTDsKKwkJdmFsdWUtPnZ1OCA9IG5sYV9nZXRfdTgocGFyYW1fZGF0YSk7 CiAJCWJyZWFrOwogCWNhc2UgREVWTElOS19QQVJBTV9UWVBFX1UxNjoKLQkJdmFsdWUtPnZ1MTYg PSBubGFfZ2V0X3UxNihpbmZvLT5hdHRyc1tERVZMSU5LX0FUVFJfUEFSQU1fVkFMVUVfREFUQV0p OworCQlpZiAobmxhX2xlbihwYXJhbV9kYXRhKSAhPSBzaXplb2YodTE2KSkKKwkJCXJldHVybiAt RUlOVkFMOworCQl2YWx1ZS0+dnUxNiA9IG5sYV9nZXRfdTE2KHBhcmFtX2RhdGEpOwogCQlicmVh azsKIAljYXNlIERFVkxJTktfUEFSQU1fVFlQRV9VMzI6Ci0JCXZhbHVlLT52dTMyID0gbmxhX2dl dF91MzIoaW5mby0+YXR0cnNbREVWTElOS19BVFRSX1BBUkFNX1ZBTFVFX0RBVEFdKTsKKwkJaWYg KG5sYV9sZW4ocGFyYW1fZGF0YSkgIT0gc2l6ZW9mKHUzMikpCisJCQlyZXR1cm4gLUVJTlZBTDsK KwkJdmFsdWUtPnZ1MzIgPSBubGFfZ2V0X3UzMihwYXJhbV9kYXRhKTsKIAkJYnJlYWs7CiAJY2Fz ZSBERVZMSU5LX1BBUkFNX1RZUEVfU1RSSU5HOgotCQlsZW4gPSBzdHJubGVuKG5sYV9kYXRhKGlu Zm8tPmF0dHJzW0RFVkxJTktfQVRUUl9QQVJBTV9WQUxVRV9EQVRBXSksCi0JCQkgICAgICBubGFf bGVuKGluZm8tPmF0dHJzW0RFVkxJTktfQVRUUl9QQVJBTV9WQUxVRV9EQVRBXSkpOwotCQlpZiAo bGVuID09IG5sYV9sZW4oaW5mby0+YXR0cnNbREVWTElOS19BVFRSX1BBUkFNX1ZBTFVFX0RBVEFd KSB8fAorCQlsZW4gPSBzdHJubGVuKG5sYV9kYXRhKHBhcmFtX2RhdGEpLCBubGFfbGVuKHBhcmFt X2RhdGEpKTsKKwkJaWYgKGxlbiA9PSBubGFfbGVuKHBhcmFtX2RhdGEpIHx8CiAJCSAgICBsZW4g Pj0gX19ERVZMSU5LX1BBUkFNX01BWF9TVFJJTkdfVkFMVUUpCiAJCQlyZXR1cm4gLUVJTlZBTDsK LQkJc3RyY3B5KHZhbHVlLT52c3RyLAotCQkgICAgICAgbmxhX2RhdGEoaW5mby0+YXR0cnNbREVW TElOS19BVFRSX1BBUkFNX1ZBTFVFX0RBVEFdKSk7CisJCXN0cmNweSh2YWx1ZS0+dnN0ciwgbmxh X2RhdGEocGFyYW1fZGF0YSkpOwogCQlicmVhazsKIAljYXNlIERFVkxJTktfUEFSQU1fVFlQRV9C T09MOgotCQl2YWx1ZS0+dmJvb2wgPSBpbmZvLT5hdHRyc1tERVZMSU5LX0FUVFJfUEFSQU1fVkFM VUVfREFUQV0gPwotCQkJICAgICAgIHRydWUgOiBmYWxzZTsKKwkJaWYgKHBhcmFtX2RhdGEgJiYg bmxhX2xlbihwYXJhbV9kYXRhKSkKKwkJCXJldHVybiAtRUlOVkFMOworCQl2YWx1ZS0+dmJvb2wg PSBubGFfZ2V0X2ZsYWcocGFyYW1fZGF0YSk7CiAJCWJyZWFrOwogCX0KIAlyZXR1cm4gMDsKLS0g CjIuMjAuMQoKCkZyb20gNDYwY2Y5Y2IwMjk2M2JjZTViOGMxMzRkOWM0ZjU4ZDJiYzgyMTE4OSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVs Lm9yZz4KRGF0ZTogTW9uLCAyIE1hciAyMDIwIDIxOjA1OjEyIC0wODAwClN1YmplY3Q6IFtQQVRD SCAzMy81Ml0gZGV2bGluazogdmFsaWRhdGUgbGVuZ3RoIG9mIHJlZ2lvbiBhZGRyL2xlbgoKWyBV cHN0cmVhbSBjb21taXQgZmYzYjYzYjhjMjk5YjczYWM1OTliMTIwNjUzYjQ3ZTI3NTQwNzY1NiBd CgpERVZMSU5LX0FUVFJfUkVHSU9OX0NIVU5LX0FERFIgYW5kIERFVkxJTktfQVRUUl9SRUdJT05f Q0hVTktfTEVOCmxhY2sgZW50cmllcyBpbiB0aGUgbmV0bGluayBwb2xpY3kuIENvcnJlc3BvbmRp bmcgbmxhX2dldF91NjQoKXMKbWF5IHJlYWQgYmV5b25kIHRoZSBlbmQgb2YgdGhlIG1lc3NhZ2Uu CgpGaXhlczogNGU1NDc5NWEyN2Y1ICgiZGV2bGluazogQWRkIHN1cHBvcnQgZm9yIHJlZ2lvbiBz bmFwc2hvdCByZWFkIGNvbW1hbmQiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3Vi YUBrZXJuZWwub3JnPgpSZXZpZXdlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvY29yZS9kZXZsaW5rLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25z KCspCgpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvZGV2bGluay5jIGIvbmV0L2NvcmUvZGV2bGluay5j CmluZGV4IGM0NjcyNmM1ZGNkNi4uNGMyNWYxYWEyZDM3IDEwMDY0NAotLS0gYS9uZXQvY29yZS9k ZXZsaW5rLmMKKysrIGIvbmV0L2NvcmUvZGV2bGluay5jCkBAIC01ODA0LDYgKzU4MDQsOCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZGV2bGlua19ubF9wb2xpY3lbREVWTElOS19B VFRSX01BWCArIDFdID0gewogCVtERVZMSU5LX0FUVFJfUEFSQU1fVkFMVUVfQ01PREVdID0geyAu dHlwZSA9IE5MQV9VOCB9LAogCVtERVZMSU5LX0FUVFJfUkVHSU9OX05BTUVdID0geyAudHlwZSA9 IE5MQV9OVUxfU1RSSU5HIH0sCiAJW0RFVkxJTktfQVRUUl9SRUdJT05fU05BUFNIT1RfSURdID0g eyAudHlwZSA9IE5MQV9VMzIgfSwKKwlbREVWTElOS19BVFRSX1JFR0lPTl9DSFVOS19BRERSXSA9 IHsgLnR5cGUgPSBOTEFfVTY0IH0sCisJW0RFVkxJTktfQVRUUl9SRUdJT05fQ0hVTktfTEVOXSA9 IHsgLnR5cGUgPSBOTEFfVTY0IH0sCiAJW0RFVkxJTktfQVRUUl9IRUFMVEhfUkVQT1JURVJfTkFN RV0gPSB7IC50eXBlID0gTkxBX05VTF9TVFJJTkcgfSwKIAlbREVWTElOS19BVFRSX0hFQUxUSF9S RVBPUlRFUl9HUkFDRUZVTF9QRVJJT0RdID0geyAudHlwZSA9IE5MQV9VNjQgfSwKIAlbREVWTElO S19BVFRSX0hFQUxUSF9SRVBPUlRFUl9BVVRPX1JFQ09WRVJdID0geyAudHlwZSA9IE5MQV9VOCB9 LAotLSAKMi4yMC4xCgoKRnJvbSA0ZWU1ODFhMjUyZDg2ZjNhZDEwZDU0OWIzNGQ0NmIwNWVhNTVl ZWMzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBr ZXJuZWwub3JnPgpEYXRlOiBNb24sIDIgTWFyIDIwMjAgMjE6MDU6MTMgLTA4MDAKU3ViamVjdDog W1BBVENIIDM0LzUyXSBmaWI6IGFkZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciB0 dW5faWQKClsgVXBzdHJlYW0gY29tbWl0IDRjMTZkNjRlYTA0MDU2ZjFiMWIzMjRhYjY5MTYwMTlm NmEwNjQxMTQgXQoKQWRkIG1pc3NpbmcgbmV0bGluayBwb2xpY3kgZW50cnkgZm9yIEZSQV9UVU5f SUQuCgpGaXhlczogZTcwMzA4NzhmYzg0ICgiZmliOiBBZGQgZmliIHJ1bGUgbWF0Y2ggb24gdHVu bmVsIGlkIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4K UmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0 L2ZpYl9ydWxlcy5oIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYg LS1naXQgYS9pbmNsdWRlL25ldC9maWJfcnVsZXMuaCBiL2luY2x1ZGUvbmV0L2ZpYl9ydWxlcy5o CmluZGV4IDIwZGNhZGQ4ZWVkOS4uN2ZlZDMxOTNmODFkIDEwMDY0NAotLS0gYS9pbmNsdWRlL25l dC9maWJfcnVsZXMuaAorKysgYi9pbmNsdWRlL25ldC9maWJfcnVsZXMuaApAQCAtMTA4LDYgKzEw OCw3IEBAIHN0cnVjdCBmaWJfcnVsZV9ub3RpZmllcl9pbmZvIHsKIAlbRlJBX09JRk5BTUVdCT0g eyAudHlwZSA9IE5MQV9TVFJJTkcsIC5sZW4gPSBJRk5BTVNJWiAtIDEgfSwgXAogCVtGUkFfUFJJ T1JJVFldCT0geyAudHlwZSA9IE5MQV9VMzIgfSwgXAogCVtGUkFfRldNQVJLXQk9IHsgLnR5cGUg PSBOTEFfVTMyIH0sIFwKKwlbRlJBX1RVTl9JRF0JPSB7IC50eXBlID0gTkxBX1U2NCB9LCBcCiAJ W0ZSQV9GV01BU0tdCT0geyAudHlwZSA9IE5MQV9VMzIgfSwgXAogCVtGUkFfVEFCTEVdICAgICA9 IHsgLnR5cGUgPSBOTEFfVTMyIH0sIFwKIAlbRlJBX1NVUFBSRVNTX1BSRUZJWExFTl0gPSB7IC50 eXBlID0gTkxBX1UzMiB9LCBcCi0tIAoyLjIwLjEKCgpGcm9tIDkxODgxN2VkN2M2NWE3MDIyZGU2 YjE5MzE0YWJhMmQ4ZjljMTdlZjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3Vi IEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAyMTowNTox NCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzUvNTJdIG5sODAyMTU0OiBhZGQgbWlzc2luZyBhdHRy aWJ1dGUgdmFsaWRhdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgOTMyMmNkN2M0YWYyY2NjN2ZlN2M1 ZjAxYWRiNTNmNGY3Nzk0OWU5MiBdCgpBZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBm b3Igc2V2ZXJhbCB1OCB0eXBlcy4KCkZpeGVzOiAyYzIxZDExNTE4YjYgKCJuZXQ6IGFkZCBOTDgw MjE1NCBpbnRlcmZhY2UgZm9yIGNvbmZpZ3VyYXRpb24gb2YgODAyLjE1LjQgZGV2aWNlcyIpClNp Z25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBT dGVmYW4gU2NobWlkdCA8c3RlZmFuQGRhdGVuZnJlaWhhZmVuLm9yZz4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pZWVlODAyMTU0 L25sX3BvbGljeS5jIHwgNSArKysrKwogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL25ldC9pZWVlODAyMTU0L25sX3BvbGljeS5jIGIvbmV0L2llZWU4MDIxNTQv bmxfcG9saWN5LmMKaW5kZXggMmM3YTM4ZDc2YTNhLi44MjRlN2U4NDAxNGMgMTAwNjQ0Ci0tLSBh L25ldC9pZWVlODAyMTU0L25sX3BvbGljeS5jCisrKyBiL25ldC9pZWVlODAyMTU0L25sX3BvbGlj eS5jCkBAIC0yMSw2ICsyMSwxMSBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBpZWVlODAyMTU0 X3BvbGljeVtJRUVFODAyMTU0X0FUVFJfTUFYICsgMV0gPSB7CiAJW0lFRUU4MDIxNTRfQVRUUl9I V19BRERSXSA9IHsgLnR5cGUgPSBOTEFfSFdfQUREUiwgfSwKIAlbSUVFRTgwMjE1NF9BVFRSX1BB Tl9JRF0gPSB7IC50eXBlID0gTkxBX1UxNiwgfSwKIAlbSUVFRTgwMjE1NF9BVFRSX0NIQU5ORUxd ID0geyAudHlwZSA9IE5MQV9VOCwgfSwKKwlbSUVFRTgwMjE1NF9BVFRSX0JDTl9PUkRdID0geyAu dHlwZSA9IE5MQV9VOCwgfSwKKwlbSUVFRTgwMjE1NF9BVFRSX1NGX09SRF0gPSB7IC50eXBlID0g TkxBX1U4LCB9LAorCVtJRUVFODAyMTU0X0FUVFJfUEFOX0NPT1JEXSA9IHsgLnR5cGUgPSBOTEFf VTgsIH0sCisJW0lFRUU4MDIxNTRfQVRUUl9CQVRfRVhUXSA9IHsgLnR5cGUgPSBOTEFfVTgsIH0s CisJW0lFRUU4MDIxNTRfQVRUUl9DT09SRF9SRUFMSUdOXSA9IHsgLnR5cGUgPSBOTEFfVTgsIH0s CiAJW0lFRUU4MDIxNTRfQVRUUl9QQUdFXSA9IHsgLnR5cGUgPSBOTEFfVTgsIH0sCiAJW0lFRUU4 MDIxNTRfQVRUUl9DT09SRF9TSE9SVF9BRERSXSA9IHsgLnR5cGUgPSBOTEFfVTE2LCB9LAogCVtJ RUVFODAyMTU0X0FUVFJfQ09PUkRfSFdfQUREUl0gPSB7IC50eXBlID0gTkxBX0hXX0FERFIsIH0s Ci0tIAoyLjIwLjEKCgpGcm9tIGIwMmU1NDY2YjIzNzMwZmEzMTM2NzRhMDlhMmNmNmEwZmYxNDA2 ZTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxrdWJhQGtl cm5lbC5vcmc+CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAyMTowNToxNSAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMzYvNTJdIG5sODAyMTU0OiBhZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBm b3IgZGV2X3R5cGUKClsgVXBzdHJlYW0gY29tbWl0IGI2MDY3M2M0YzQxOGJlZjc1NTBkMDJmYWY1 M2MzNGZiZmViMzY2YmYgXQoKQWRkIG1pc3NpbmcgYXR0cmlidXRlIHR5cGUgdmFsaWRhdGlvbiBm b3IgSUVFRTgwMjE1NF9BVFRSX0RFVl9UWVBFCnRvIHRoZSBuZXRsaW5rIHBvbGljeS4KCkZpeGVz OiA5MGMwNDliMmM2YWUgKCJpZWVlODAyMTU0OiBpbnRlcmZhY2UgdHlwZSB0byBiZSBhZGRlZCIp ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkFja2VkLWJ5 OiBTdGVmYW4gU2NobWlkdCA8c3RlZmFuQGRhdGVuZnJlaWhhZmVuLm9yZz4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pZWVlODAy MTU0L25sX3BvbGljeS5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRp ZmYgLS1naXQgYS9uZXQvaWVlZTgwMjE1NC9ubF9wb2xpY3kuYyBiL25ldC9pZWVlODAyMTU0L25s X3BvbGljeS5jCmluZGV4IDgyNGU3ZTg0MDE0Yy4uMDY3MmIyZjAxNTg2IDEwMDY0NAotLS0gYS9u ZXQvaWVlZTgwMjE1NC9ubF9wb2xpY3kuYworKysgYi9uZXQvaWVlZTgwMjE1NC9ubF9wb2xpY3ku YwpAQCAtMjcsNiArMjcsNyBAQCBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBpZWVlODAyMTU0X3Bv bGljeVtJRUVFODAyMTU0X0FUVFJfTUFYICsgMV0gPSB7CiAJW0lFRUU4MDIxNTRfQVRUUl9CQVRf RVhUXSA9IHsgLnR5cGUgPSBOTEFfVTgsIH0sCiAJW0lFRUU4MDIxNTRfQVRUUl9DT09SRF9SRUFM SUdOXSA9IHsgLnR5cGUgPSBOTEFfVTgsIH0sCiAJW0lFRUU4MDIxNTRfQVRUUl9QQUdFXSA9IHsg LnR5cGUgPSBOTEFfVTgsIH0sCisJW0lFRUU4MDIxNTRfQVRUUl9ERVZfVFlQRV0gPSB7IC50eXBl ID0gTkxBX1U4LCB9LAogCVtJRUVFODAyMTU0X0FUVFJfQ09PUkRfU0hPUlRfQUREUl0gPSB7IC50 eXBlID0gTkxBX1UxNiwgfSwKIAlbSUVFRTgwMjE1NF9BVFRSX0NPT1JEX0hXX0FERFJdID0geyAu dHlwZSA9IE5MQV9IV19BRERSLCB9LAogCVtJRUVFODAyMTU0X0FUVFJfQ09PUkRfUEFOX0lEXSA9 IHsgLnR5cGUgPSBOTEFfVTE2LCB9LAotLSAKMi4yMC4xCgoKRnJvbSBmZjBjMDhiMzhkMGRjM2Iw Y2ZmY2Y4ZmVkYjQ5MGFkNmUzYzUyZjQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBK YWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24sIDIgTWFyIDIwMjAgMjE6 MDU6MTYgLTA4MDAKU3ViamVjdDogW1BBVENIIDM3LzUyXSBjYW46IGFkZCBtaXNzaW5nIGF0dHJp YnV0ZSB2YWxpZGF0aW9uIGZvciB0ZXJtaW5hdGlvbgoKWyBVcHN0cmVhbSBjb21taXQgYWIwMmFk NjYwNTg2Yjk0ZjVkMDg5MTJhMzk1MmI5MzljZjRjNDQzMCBdCgpBZGQgbWlzc2luZyBhdHRyaWJ1 dGUgdmFsaWRhdGlvbiBmb3IgSUZMQV9DQU5fVEVSTUlOQVRJT04KdG8gdGhlIG5ldGxpbmsgcG9s aWN5LgoKRml4ZXM6IDEyYTYwNzVjYWJjMCAoImNhbjogZGV2OiBhZGQgQ0FOIGludGVyZmFjZSB0 ZXJtaW5hdGlvbiBBUEkiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJu ZWwub3JnPgpBY2tlZC1ieTogT2xpdmVyIEhhcnRrb3BwIDxzb2NrZXRjYW5AaGFydGtvcHAubmV0 PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvY2FuL2Rldi5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYW4vZGV2LmMgYi9kcml2ZXJzL25ldC9j YW4vZGV2LmMKaW5kZXggMWM4OGMzNjE5MzhjLi4zYTMzZmI1MDM0MDAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L2Nhbi9kZXYuYworKysgYi9kcml2ZXJzL25ldC9jYW4vZGV2LmMKQEAgLTg4NCw2 ICs4ODQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgY2FuX3BvbGljeVtJRkxB X0NBTl9NQVggKyAxXSA9IHsKIAkJCQk9IHsgLmxlbiA9IHNpemVvZihzdHJ1Y3QgY2FuX2JpdHRp bWluZykgfSwKIAlbSUZMQV9DQU5fREFUQV9CSVRUSU1JTkdfQ09OU1RdCiAJCQkJPSB7IC5sZW4g PSBzaXplb2Yoc3RydWN0IGNhbl9iaXR0aW1pbmdfY29uc3QpIH0sCisJW0lGTEFfQ0FOX1RFUk1J TkFUSU9OXQk9IHsgLnR5cGUgPSBOTEFfVTE2IH0sCiB9OwogCiBzdGF0aWMgaW50IGNhbl92YWxp ZGF0ZShzdHJ1Y3QgbmxhdHRyICp0YltdLCBzdHJ1Y3QgbmxhdHRyICpkYXRhW10sCi0tIAoyLjIw LjEKCgpGcm9tIDA0NWVhYTNjNjA1OTRhODhlMGJkZTUyNWEzM2E3YmM0NzkzYWYzYmEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAyMTowNToxNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzgv NTJdIG1hY3NlYzogYWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIHBvcnQKClsg VXBzdHJlYW0gY29tbWl0IDMxZDlhMWM1MjQ5NjRiYWM3N2I3ZjlkMGExYWMxNDBkYzZiNTc0NjEg XQoKQWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIElGTEFfTUFDU0VDX1BPUlQK dG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IGMwOTQ0MGY3ZGNiMyAoIm1hY3NlYzogaW50 cm9kdWNlIElFRUUgODAyLjFBRSBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNr aSA8a3ViYUBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjc2VjLmMgfCAxICsKIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3NlYy5j IGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKaW5kZXggMzIyMWMzYjRlZmIxLi42NDk3YTVjNDUyMjAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L21hY3NlYy5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3Nl Yy5jCkBAIC0yOTgzLDYgKzI5ODMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRldmljZV90eXBl IG1hY3NlY190eXBlID0gewogCiBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgbWFjc2Vj X3J0bmxfcG9saWN5W0lGTEFfTUFDU0VDX01BWCArIDFdID0gewogCVtJRkxBX01BQ1NFQ19TQ0ld ID0geyAudHlwZSA9IE5MQV9VNjQgfSwKKwlbSUZMQV9NQUNTRUNfUE9SVF0gPSB7IC50eXBlID0g TkxBX1UxNiB9LAogCVtJRkxBX01BQ1NFQ19JQ1ZfTEVOXSA9IHsgLnR5cGUgPSBOTEFfVTggfSwK IAlbSUZMQV9NQUNTRUNfQ0lQSEVSX1NVSVRFXSA9IHsgLnR5cGUgPSBOTEFfVTY0IH0sCiAJW0lG TEFfTUFDU0VDX1dJTkRPV10gPSB7IC50eXBlID0gTkxBX1UzMiB9LAotLSAKMi4yMC4xCgoKRnJv bSBmZWM1ZTRhMDg4MDcyNDFhZWU4MzY3YzJjZDAxNDBiODQ5ODllZjUxIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBN b24sIDIgTWFyIDIwMjAgMjE6MDU6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIDM5LzUyXSBuZXQ6 IGZxOiBhZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3Igb3JwaGFuCiBtYXNrCgpb IFVwc3RyZWFtIGNvbW1pdCA3ZTZkYzAzZWViMDIzZTE4NDI3YTM3MzUyMmYxZDI0N2I5MTZhNjQx IF0KCkFkZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBUQ0FfRlFfT1JQSEFOX01B U0sKdG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IDA2ZWIzOTVmYTk4NSAoInBrdF9zY2hl ZDogZnE6IGJldHRlciBjb250cm9sIG9mIERET1MgdHJhZmZpYyIpClNpZ25lZC1vZmYtYnk6IEph a3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2ZxLmMgfCAxICsK IDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9z Y2hfZnEuYyBiL25ldC9zY2hlZC9zY2hfZnEuYwppbmRleCA3MTJhZDI0OGQ2YTcuLmY3NTdlYTkw YWJhNiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9mcS5jCisrKyBiL25ldC9zY2hlZC9zY2hf ZnEuYwpAQCAtNzQ1LDYgKzc0NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBm cV9wb2xpY3lbVENBX0ZRX01BWCArIDFdID0gewogCVtUQ0FfRlFfRkxPV19NQVhfUkFURV0JCT0g eyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbVENBX0ZRX0JVQ0tFVFNfTE9HXQkJPSB7IC50eXBlID0g TkxBX1UzMiB9LAogCVtUQ0FfRlFfRkxPV19SRUZJTExfREVMQVldCT0geyAudHlwZSA9IE5MQV9V MzIgfSwKKwlbVENBX0ZRX09SUEhBTl9NQVNLXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtU Q0FfRlFfTE9XX1JBVEVfVEhSRVNIT0xEXQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiAJW1RDQV9G UV9DRV9USFJFU0hPTERdCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiB9OwotLSAKMi4yMC4xCgoK RnJvbSBiMDk4ODg5OGQyMzIzMmE4OWVmYjFmNGQyMGRjYTZlODU4ZjEzNTExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRl OiBNb24sIDIgTWFyIDIwMjAgMjE6MDU6MjAgLTA4MDAKU3ViamVjdDogW1BBVENIIDQwLzUyXSBu ZXQ6IHRhcHJpbzogYWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yCiB0eHRpbWUg ZGVsYXkKClsgVXBzdHJlYW0gY29tbWl0IGUxM2FhYTA2NDNkYTEwMDA2ZWMzNTcxNTk1NGU3Zjky YTYyODk5YTUgXQoKQWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIFRDQV9UQVBS SU9fQVRUUl9UWFRJTUVfREVMQVkKdG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IDRjZmQ1 Nzc5YmQ2ZSAoInRhcHJpbzogQWRkIHN1cHBvcnQgZm9yIHR4dGltZS1hc3Npc3QgbW9kZSIpClNp Z25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClJldmlld2VkLWJ5 OiBWaW5pY2l1cyBDb3N0YSBHb21lcyA8dmluaWNpdXMuZ29tZXNAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Nj aGVkL3NjaF90YXByaW8uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF90YXByaW8uYyBiL25ldC9zY2hlZC9zY2hfdGFwcmlv LmMKaW5kZXggNDM3ZTMzM2E0YTMzLi5iMWViMTJkMzNiOWEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hl ZC9zY2hfdGFwcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF90YXByaW8uYwpAQCAtNzc0LDYgKzc3 NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0YXByaW9fcG9saWN5W1RDQV9U QVBSSU9fQVRUUl9NQVggKyAxXSA9IHsKIAlbVENBX1RBUFJJT19BVFRSX1NDSEVEX0NZQ0xFX1RJ TUVdICAgICAgICAgICA9IHsgLnR5cGUgPSBOTEFfUzY0IH0sCiAJW1RDQV9UQVBSSU9fQVRUUl9T Q0hFRF9DWUNMRV9USU1FX0VYVEVOU0lPTl0gPSB7IC50eXBlID0gTkxBX1M2NCB9LAogCVtUQ0Ff VEFQUklPX0FUVFJfRkxBR1NdICAgICAgICAgICAgICAgICAgICAgID0geyAudHlwZSA9IE5MQV9V MzIgfSwKKwlbVENBX1RBUFJJT19BVFRSX1RYVElNRV9ERUxBWV0JCSAgICAgPSB7IC50eXBlID0g TkxBX1UzMiB9LAogfTsKIAogc3RhdGljIGludCBmaWxsX3NjaGVkX2VudHJ5KHN0cnVjdCBubGF0 dHIgKip0Yiwgc3RydWN0IHNjaGVkX2VudHJ5ICplbnRyeSwKLS0gCjIuMjAuMQoKCkZyb20gZjFj ZTIxYThjMzVhNWZlNjY0ZDgyNzBiY2I3OGQxODU3YjM1YTRhOSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KRGF0ZTogTW9uLCAy IE1hciAyMDIwIDIxOjA1OjIxIC0wODAwClN1YmplY3Q6IFtQQVRDSCA0MS81Ml0gdGVhbTogYWRk IG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIHBvcnQgaWZpbmRleAoKWyBVcHN0cmVh bSBjb21taXQgZGQyNWNiMjcyY2NjZTRkYjY3ZGM4NTA5Mjc4MjI5MDk5ZTRmNWU5OSBdCgpBZGQg bWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgVEVBTV9BVFRSX09QVElPTl9QT1JUX0lG SU5ERVgKdG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IDgwZjdjNjY4M2ZlMCAoInRlYW06 IGFkZCBzdXBwb3J0IGZvciBwZXItcG9ydCBvcHRpb25zIikKU2lnbmVkLW9mZi1ieTogSmFrdWIg S2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28gPGppcmlA bWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgfCAxICsKIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5j IGIvZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggY2E3MGExZDg0MGViLi40NGRkMjZhNjJh NmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCisrKyBiL2RyaXZlcnMvbmV0 L3RlYW0vdGVhbS5jCkBAIC0yMjQwLDYgKzIyNDAsNyBAQCB0ZWFtX25sX29wdGlvbl9wb2xpY3lb VEVBTV9BVFRSX09QVElPTl9NQVggKyAxXSA9IHsKIAlbVEVBTV9BVFRSX09QVElPTl9DSEFOR0VE XQkJPSB7IC50eXBlID0gTkxBX0ZMQUcgfSwKIAlbVEVBTV9BVFRSX09QVElPTl9UWVBFXQkJCT0g eyAudHlwZSA9IE5MQV9VOCB9LAogCVtURUFNX0FUVFJfT1BUSU9OX0RBVEFdCQkJPSB7IC50eXBl ID0gTkxBX0JJTkFSWSB9LAorCVtURUFNX0FUVFJfT1BUSU9OX1BPUlRfSUZJTkRFWF0JCT0geyAu dHlwZSA9IE5MQV9VMzIgfSwKIH07CiAKIHN0YXRpYyBpbnQgdGVhbV9ubF9jbWRfbm9vcChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQotLSAKMi4yMC4xCgoKRnJv bSA2MTkyNGVlNzQ2ZWUxNzhlMzMzN2VhNzg1NjVhNjgyNzMwNmQxMjZlIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBN b24sIDIgTWFyIDIwMjAgMjE6MDU6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIIDQyLzUyXSB0ZWFt OiBhZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgYXJyYXkgaW5kZXgKClsgVXBz dHJlYW0gY29tbWl0IDY2OWZjZDc3OTU5MDBjZDE4ODAyMzdjYmJiNTdhN2RiNjZjYjlhYzggXQoK QWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIFRFQU1fQVRUUl9PUFRJT05fQVJS QVlfSU5ERVgKdG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IGIxMzAzMzI2MmQyNCAoInRl YW06IGludHJvZHVjZSBhcnJheSBvcHRpb25zIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5z a2kgPGt1YmFAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFu b3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jIGIvZHJp dmVycy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggNDRkZDI2YTYyYTZkLi40MDA0Zjk4ZTUwZDkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCisrKyBiL2RyaXZlcnMvbmV0L3RlYW0v dGVhbS5jCkBAIC0yMjQxLDYgKzIyNDEsNyBAQCB0ZWFtX25sX29wdGlvbl9wb2xpY3lbVEVBTV9B VFRSX09QVElPTl9NQVggKyAxXSA9IHsKIAlbVEVBTV9BVFRSX09QVElPTl9UWVBFXQkJCT0geyAu dHlwZSA9IE5MQV9VOCB9LAogCVtURUFNX0FUVFJfT1BUSU9OX0RBVEFdCQkJPSB7IC50eXBlID0g TkxBX0JJTkFSWSB9LAogCVtURUFNX0FUVFJfT1BUSU9OX1BPUlRfSUZJTkRFWF0JCT0geyAudHlw ZSA9IE5MQV9VMzIgfSwKKwlbVEVBTV9BVFRSX09QVElPTl9BUlJBWV9JTkRFWF0JCT0geyAudHlw ZSA9IE5MQV9VMzIgfSwKIH07CiAKIHN0YXRpYyBpbnQgdGVhbV9ubF9jbWRfbm9vcChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQotLSAKMi4yMC4xCgoKRnJvbSBi NjJhY2ExNWExYTdlNGU1YmZjYjBjYWNlMGVkOWE1YmE2NzM4OTBmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24s IDIgTWFyIDIwMjAgMjE6MDU6MjMgLTA4MDAKU3ViamVjdDogW1BBVENIIDQzLzUyXSB0aXBjOiBh ZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgTVRVIHByb3BlcnR5CgpbIFVwc3Ry ZWFtIGNvbW1pdCAyMTMzMjBhNjc5NjJmZjZlN2I4M2I3MDRkNTVjYmViYzM0MTQyNmRiIF0KCkFk ZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBUSVBDX05MQV9QUk9QX01UVQp0byB0 aGUgbmV0bGluayBwb2xpY3kuCgpGaXhlczogOTAxMjcxZTA0MDNhICgidGlwYzogaW1wbGVtZW50 IGNvbmZpZ3VyYXRpb24gb2YgVURQIG1lZGlhIE1UVSIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtp Y2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxr dWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9uZXRsaW5rLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldGxpbmsuYyBiL25ldC90 aXBjL25ldGxpbmsuYwppbmRleCBkNjE2NWFkMzg0YzAuLmU5YmJmNGEwMDg4MSAxMDA2NDQKLS0t IGEvbmV0L3RpcGMvbmV0bGluay5jCisrKyBiL25ldC90aXBjL25ldGxpbmsuYwpAQCAtMTExLDYg KzExMSw3IEBAIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHRpcGNfbmxfcHJvcF9wb2xpY3lbVElQ Q19OTEFfUFJPUF9NQVggKyAxXSA9IHsKIAlbVElQQ19OTEFfUFJPUF9QUklPXQkJPSB7IC50eXBl ID0gTkxBX1UzMiB9LAogCVtUSVBDX05MQV9QUk9QX1RPTF0JCT0geyAudHlwZSA9IE5MQV9VMzIg fSwKIAlbVElQQ19OTEFfUFJPUF9XSU5dCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCisJW1RJUENf TkxBX1BST1BfTVRVXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtUSVBDX05MQV9QUk9QX0JS T0FEQ0FTVF0JPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtUSVBDX05MQV9QUk9QX0JST0FEQ0FT VF9SQVRJT10JPSB7IC50eXBlID0gTkxBX1UzMiB9CiB9OwotLSAKMi4yMC4xCgoKRnJvbSA5ZjA4 MDgyNTMyN2Q4ZmRkMTM1ZDU0Y2JiNzFhYjFlZmE5YWQzOTdiIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24sIDIg TWFyIDIwMjAgMjE6MDU6MjQgLTA4MDAKU3ViamVjdDogW1BBVENIIDQ0LzUyXSBuZmM6IGFkZCBt aXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBTRSBBUEkKClsgVXBzdHJlYW0gY29tbWl0 IDM2MWQyM2U0MWNhNmU1MDQwMzNmN2U2NmEwM2I5NTc4ODM3N2NhYWUgXQoKQWRkIG1pc3Npbmcg YXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIE5GQ19BVFRSX1NFX0lOREVYCnRvIHRoZSBuZXRsaW5r IHBvbGljeS4KCkZpeGVzOiA1Y2UzZjMyYjUyNjQgKCJORkM6IG5ldGxpbms6IFNFIEFQSSBpbXBs ZW1lbnRhdGlvbiIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5v cmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvbmZjL25ldGxpbmsuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCgpkaWZmIC0tZ2l0IGEvbmV0L25mYy9uZXRsaW5rLmMgYi9uZXQvbmZjL25ldGxpbmsuYwpp bmRleCBhZmRlMGQ3NjMwMzkuLmFiNGFjZmEzYzJlNCAxMDA2NDQKLS0tIGEvbmV0L25mYy9uZXRs aW5rLmMKKysrIGIvbmV0L25mYy9uZXRsaW5rLmMKQEAgLTQzLDYgKzQzLDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBubGFfcG9saWN5IG5mY19nZW5sX3BvbGljeVtORkNfQVRUUl9NQVggKyAxXSA9 IHsKIAlbTkZDX0FUVFJfTExDX1NEUF0gPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAogCVtORkNf QVRUUl9GSVJNV0FSRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfU1RSSU5HLAogCQkJCSAgICAgLmxl biA9IE5GQ19GSVJNV0FSRV9OQU1FX01BWFNJWkUgfSwKKwlbTkZDX0FUVFJfU0VfSU5ERVhdID0g eyAudHlwZSA9IE5MQV9VMzIgfSwKIAlbTkZDX0FUVFJfU0VfQVBEVV0gPSB7IC50eXBlID0gTkxB X0JJTkFSWSB9LAogCVtORkNfQVRUUl9WRU5ET1JfREFUQV0gPSB7IC50eXBlID0gTkxBX0JJTkFS WSB9LAogCi0tIAoyLjIwLjEKCgpGcm9tIDUyMzhhMjE0ZTEwZGExZWIzYmY0NDc5YWU1M2NlNTZj MGQ0NThlYzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxr dWJhQGtlcm5lbC5vcmc+CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAyMTowNToyNSAtMDgwMApTdWJq ZWN0OiBbUEFUQ0ggNDUvNTJdIG5mYzogYWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24g Zm9yIGRlYWN0aXZhdGUKIHRhcmdldAoKWyBVcHN0cmVhbSBjb21taXQgODhlNzA2ZDUxNjhiMDdk ZjQ3OTJkYmMzZDFiYzM3YjgzZTRiZDc0ZCBdCgpBZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRh dGlvbiBmb3IgTkZDX0FUVFJfVEFSR0VUX0lOREVYCnRvIHRoZSBuZXRsaW5rIHBvbGljeS4KCkZp eGVzOiA0ZDYzYWRmZTEyZGQgKCJORkM6IEFkZCBORkNfQ01EX0RFQUNUSVZBVEVfVEFSR0VUIHN1 cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L25mYy9uZXRsaW5rLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoK ZGlmZiAtLWdpdCBhL25ldC9uZmMvbmV0bGluay5jIGIvbmV0L25mYy9uZXRsaW5rLmMKaW5kZXgg YWI0YWNmYTNjMmU0Li5lOTdmZjM3Nzc0NzIgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvbmV0bGluay5j CisrKyBiL25ldC9uZmMvbmV0bGluay5jCkBAIC0zMiw2ICszMiw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgbmxhX3BvbGljeSBuZmNfZ2VubF9wb2xpY3lbTkZDX0FUVFJfTUFYICsgMV0gPSB7CiAJ W05GQ19BVFRSX0RFVklDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfU1RSSU5HLAogCQkJCS5sZW4g PSBORkNfREVWSUNFX05BTUVfTUFYU0laRSB9LAogCVtORkNfQVRUUl9QUk9UT0NPTFNdID0geyAu dHlwZSA9IE5MQV9VMzIgfSwKKwlbTkZDX0FUVFJfVEFSR0VUX0lOREVYXSA9IHsgLnR5cGUgPSBO TEFfVTMyIH0sCiAJW05GQ19BVFRSX0NPTU1fTU9ERV0gPSB7IC50eXBlID0gTkxBX1U4IH0sCiAJ W05GQ19BVFRSX1JGX01PREVdID0geyAudHlwZSA9IE5MQV9VOCB9LAogCVtORkNfQVRUUl9ERVZJ Q0VfUE9XRVJFRF0gPSB7IC50eXBlID0gTkxBX1U4IH0sCi0tIAoyLjIwLjEKCgpGcm9tIDc4Y2Nh NWIwNmNkZGQ4ZjBmMTZjODFhZDZiMWRjNjBhMWZmNmY3Y2UgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkRhdGU6IE1vbiwgMiBN YXIgMjAyMCAyMTowNToyNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggNDYvNTJdIG5mYzogYWRkIG1p c3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIHZlbmRvcgogc3ViY29tbWFuZAoKWyBVcHN0 cmVhbSBjb21taXQgNmJhM2RhNDQ2NTUxZjIxNTBmYWRiZjhjNzc4OGVkY2I5Nzc2ODNkMyBdCgpB ZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgdmVuZG9yIHN1YmNvbW1hbmQgYXR0 cmlidXRlcwp0byB0aGUgbmV0bGluayBwb2xpY3kuCgpGaXhlczogOWU1ODA5NWY5NjYwICgiTkZD OiBuZXRsaW5rOiBJbXBsZW1lbnQgdmVuZG9yIGNvbW1hbmQgc3VwcG9ydCIpClNpZ25lZC1vZmYt Ynk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmZjL25ldGxpbmsuYyB8 IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQv bmZjL25ldGxpbmsuYyBiL25ldC9uZmMvbmV0bGluay5jCmluZGV4IGU5N2ZmMzc3NzQ3Mi4uMWIy NjEzNzU3MjJlIDEwMDY0NAotLS0gYS9uZXQvbmZjL25ldGxpbmsuYworKysgYi9uZXQvbmZjL25l dGxpbmsuYwpAQCAtNDYsNiArNDYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kg bmZjX2dlbmxfcG9saWN5W05GQ19BVFRSX01BWCArIDFdID0gewogCQkJCSAgICAgLmxlbiA9IE5G Q19GSVJNV0FSRV9OQU1FX01BWFNJWkUgfSwKIAlbTkZDX0FUVFJfU0VfSU5ERVhdID0geyAudHlw ZSA9IE5MQV9VMzIgfSwKIAlbTkZDX0FUVFJfU0VfQVBEVV0gPSB7IC50eXBlID0gTkxBX0JJTkFS WSB9LAorCVtORkNfQVRUUl9WRU5ET1JfSURdID0geyAudHlwZSA9IE5MQV9VMzIgfSwKKwlbTkZD X0FUVFJfVkVORE9SX1NVQkNNRF0gPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtORkNfQVRUUl9W RU5ET1JfREFUQV0gPSB7IC50eXBlID0gTkxBX0JJTkFSWSB9LAogCiB9OwotLSAKMi4yMC4xCgoK RnJvbSA3NTc3ZGE5NDJmNzJhOTI1Yjk5MTZjNmI3YjI3MjIzMDE1OGE0M2RmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29t PgpEYXRlOiBTdW4sIDEgTWFyIDIwMjAgMjE6MzY6MDkgKzAxMDAKU3ViamVjdDogW1BBVENIIDQ3 LzUyXSBuZXQ6IHBoeTogYXZvaWQgY2xlYXJpbmcgUEhZIGludGVycnVwdHMgdHdpY2UgaW4gaXJx CiBoYW5kbGVyCgpbIFVwc3RyZWFtIGNvbW1pdCAyNDliYzk3NDRlMTY1YWJlNzRhZTMyNmY0M2U5 ZDcwYmFkNTRjM2I3IF0KCk9uIGFsbCBQSFkgZHJpdmVycyB0aGF0IGltcGxlbWVudCBkaWRfaW50 ZXJydXB0KCkgcmVhZGluZyB0aGUgaW50ZXJydXB0CnN0YXR1cyBiaXRzIGNsZWFycyB0aGVtLiBU aGlzIG1lYW5zIHdlIG1heSBsb29zZSBhbiBpbnRlcnJ1cHQgdGhhdAppcyB0cmlnZ2VyZWQgYmV0 d2VlbiBjYWxsaW5nIGRpZF9pbnRlcnJ1cHQoKSBhbmQgcGh5X2NsZWFyX2ludGVycnVwdCgpLgpB cyBwYXJ0IG9mIHRoZSBmaXggbWFrZSBpdCBhIHJlcXVpcmVtZW50IHRoYXQgZGlkX2ludGVycnVw dCgpIGNsZWFycwp0aGUgaW50ZXJydXB0LgoKVGhlIEZpeGVzIHRhZyByZWZlcnMgdG8gdGhlIGZp cnN0IGNvbW1pdCB3aGVyZSB0aGUgcGF0Y2ggYXBwbGllcwpjbGVhbmx5LgoKRml4ZXM6IDQ5NjQ0 ZTY4ZjQ3MiAoIm5ldDogcGh5OiBhZGQgY2FsbGJhY2sgZm9yIGN1c3RvbSBpbnRlcnJ1cHQgaGFu ZGxlciB0byBzdHJ1Y3QgcGh5X2RyaXZlciIpClJlcG9ydGVkLWJ5OiBNaWNoYWVsIFdhbGxlIDxt aWNoYWVsQHdhbGxlLmNjPgpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2Vp dDFAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgMyArKy0KIGluY2x1ZGUvbGlu dXgvcGh5LmggICB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5LmMgYi9kcml2ZXJzL25l dC9waHkvcGh5LmMKaW5kZXggMTA1ZDM4OWI1OGU3Li5lYTg5MGQ4MDJmZmUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvbmV0L3BoeS9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKQEAgLTc2 MSw3ICs3NjEsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGh5X2ludGVycnVwdChpbnQgaXJxLCB2 b2lkICpwaHlfZGF0KQogCQlwaHlfdHJpZ2dlcl9tYWNoaW5lKHBoeWRldik7CiAJfQogCi0JaWYg KHBoeV9jbGVhcl9pbnRlcnJ1cHQocGh5ZGV2KSkKKwkvKiBkaWRfaW50ZXJydXB0KCkgbWF5IGhh dmUgY2xlYXJlZCB0aGUgaW50ZXJydXB0IGFscmVhZHkgKi8KKwlpZiAoIXBoeWRldi0+ZHJ2LT5k aWRfaW50ZXJydXB0ICYmIHBoeV9jbGVhcl9pbnRlcnJ1cHQocGh5ZGV2KSkKIAkJZ290byBwaHlf ZXJyOwogCXJldHVybiBJUlFfSEFORExFRDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9w aHkuaCBiL2luY2x1ZGUvbGludXgvcGh5LmgKaW5kZXggM2Q1ZDUzMzEzZTZjLi5iZjg3YzU5YTk4 YmIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgKKysrIGIvaW5jbHVkZS9saW51eC9w aHkuaApAQCAtNTI0LDYgKzUyNCw3IEBAIHN0cnVjdCBwaHlfZHJpdmVyIHsKIAkvKgogCSAqIENo ZWNrcyBpZiB0aGUgUEhZIGdlbmVyYXRlZCBhbiBpbnRlcnJ1cHQuCiAJICogRm9yIG11bHRpLVBI WSBkZXZpY2VzIHdpdGggc2hhcmVkIFBIWSBpbnRlcnJ1cHQgcGluCisJICogU2V0IGludGVycnVw dCBiaXRzIGhhdmUgdG8gYmUgY2xlYXJlZC4KIAkgKi8KIAlpbnQgKCpkaWRfaW50ZXJydXB0KShz dHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2KTsKIAotLSAKMi4yMC4xCgoKRnJvbSAyNTY3NmY5ZDFm MzY2NGQ1ODcwNzVjNDdmODg2NjEyZjBmYWFhN2EzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBUaHUsIDEy IE1hciAyMDIwIDIyOjI1OjIwICswMTAwClN1YmplY3Q6IFtQQVRDSCA0OC81Ml0gbmV0OiBwaHk6 IGZpeCBNRElPIGJ1cyBQTSBQSFkgcmVzdW1pbmcKClsgVXBzdHJlYW0gY29tbWl0IDYxMWQ3Nzlh ZjdjYWQyYjg3NDg3ZmY1OGU0OTMxYTkwYzIwYjExM2MgXQoKU28gZmFyIHdlIGhhdmUgdGhlIHVu Zm9ydHVuYXRlIHNpdHVhdGlvbiB0aGF0IG1kaW9fYnVzX3BoeV9tYXlfc3VzcGVuZCgpCmlzIGNh bGxlZCBpbiBzdXNwZW5kIEFORCByZXN1bWUgcGF0aCwgYXNzdW1pbmcgdGhhdCBmdW5jdGlvbiBy ZXN1bHQgaXMKdGhlIHNhbWUuIEFmdGVyIHRoZSBvcmlnaW5hbCBjaGFuZ2UgdGhpcyBpcyBubyBs b25nZXIgdGhlIGNhc2UsCnJlc3VsdGluZyBpbiBicm9rZW4gcmVzdW1lIGFzIHJlcG9ydGVkIGJ5 IEdlZXJ0LgoKVG8gZml4IHRoaXMgY2FsbCBtZGlvX2J1c19waHlfbWF5X3N1c3BlbmQoKSBpbiB0 aGUgc3VzcGVuZCBwYXRoIG9ubHksCmFuZCBsZXQgdGhlIHBoeV9kZXZpY2Ugc3RvcmUgdGhlIGlu Zm8gd2hldGhlciBpdCB3YXMgc3VzcGVuZGVkIGJ5Ck1ESU8gYnVzIFBNLgoKRml4ZXM6IDUwM2Jh N2M2OTYxMCAoIm5ldDogcGh5OiBBdm9pZCBtdWx0aXBsZSBzdXNwZW5kcyIpClJlcG9ydGVkLWJ5 OiBHZWVydCBVeXR0ZXJob2V2ZW4gPGdlZXJ0QGxpbnV4LW02OGsub3JnPgpUZXN0ZWQtYnk6IEdl ZXJ0IFV5dHRlcmhvZXZlbiA8Z2VlcnRAbGludXgtbTY4ay5vcmc+ClNpZ25lZC1vZmYtYnk6IEhl aW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBGbG9yaWFu IEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlfZGV2 aWNlLmMgfCA2ICsrKysrLQogaW5jbHVkZS9saW51eC9waHkuaCAgICAgICAgICB8IDIgKysKIDIg ZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2 aWNlLmMKaW5kZXggMmJmMGZkYTIwOWE4Li40MzAwYjMxNjc4YjMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L3BoeS9waHlfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2Uu YwpAQCAtMjg0LDYgKzI4NCw4IEBAIHN0YXRpYyBpbnQgbWRpb19idXNfcGh5X3N1c3BlbmQoc3Ry dWN0IGRldmljZSAqZGV2KQogCWlmICghbWRpb19idXNfcGh5X21heV9zdXNwZW5kKHBoeWRldikp CiAJCXJldHVybiAwOwogCisJcGh5ZGV2LT5zdXNwZW5kZWRfYnlfbWRpb19idXMgPSAxOworCiAJ cmV0dXJuIHBoeV9zdXNwZW5kKHBoeWRldik7CiB9CiAKQEAgLTI5Miw5ICsyOTQsMTEgQEAgc3Rh dGljIGludCBtZGlvX2J1c19waHlfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3Qg cGh5X2RldmljZSAqcGh5ZGV2ID0gdG9fcGh5X2RldmljZShkZXYpOwogCWludCByZXQ7CiAKLQlp ZiAoIW1kaW9fYnVzX3BoeV9tYXlfc3VzcGVuZChwaHlkZXYpKQorCWlmICghcGh5ZGV2LT5zdXNw ZW5kZWRfYnlfbWRpb19idXMpCiAJCWdvdG8gbm9fcmVzdW1lOwogCisJcGh5ZGV2LT5zdXNwZW5k ZWRfYnlfbWRpb19idXMgPSAwOworCiAJcmV0ID0gcGh5X3Jlc3VtZShwaHlkZXYpOwogCWlmIChy ZXQgPCAwKQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHkuaCBi L2luY2x1ZGUvbGludXgvcGh5LmgKaW5kZXggYmY4N2M1OWE5OGJiLi44MDc1MDc4M2I1YjAgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgKKysrIGIvaW5jbHVkZS9saW51eC9waHkuaApA QCAtMzM2LDYgKzMzNiw3IEBAIHN0cnVjdCBwaHlfYzQ1X2RldmljZV9pZHMgewogICogaXNfZ2ln YWJpdF9jYXBhYmxlOiBTZXQgdG8gdHJ1ZSBpZiBQSFkgc3VwcG9ydHMgMTAwME1icHMKICAqIGhh c19maXh1cHM6IFNldCB0byB0cnVlIGlmIHRoaXMgcGh5IGhhcyBmaXh1cHMvcXVpcmtzLgogICog c3VzcGVuZGVkOiBTZXQgdG8gdHJ1ZSBpZiB0aGlzIHBoeSBoYXMgYmVlbiBzdXNwZW5kZWQgc3Vj Y2Vzc2Z1bGx5LgorICogc3VzcGVuZGVkX2J5X21kaW9fYnVzOiBTZXQgdG8gdHJ1ZSBpZiB0aGlz IHBoeSB3YXMgc3VzcGVuZGVkIGJ5IE1ESU8gYnVzLgogICogc3lzZnNfbGlua3M6IEludGVybmFs IGJvb2xlYW4gdHJhY2tpbmcgc3lzZnMgc3ltYm9saWMgbGlua3Mgc2V0dXAvcmVtb3ZhbC4KICAq IGxvb3BiYWNrX2VuYWJsZWQ6IFNldCB0cnVlIGlmIHRoaXMgcGh5IGhhcyBiZWVuIGxvb3BiYWNr ZWQgc3VjY2Vzc2Z1bGx5LgogICogc3RhdGU6IHN0YXRlIG9mIHRoZSBQSFkgZm9yIG1hbmFnZW1l bnQgcHVycG9zZXMKQEAgLTM3Miw2ICszNzMsNyBAQCBzdHJ1Y3QgcGh5X2RldmljZSB7CiAJdW5z aWduZWQgaXNfZ2lnYWJpdF9jYXBhYmxlOjE7CiAJdW5zaWduZWQgaGFzX2ZpeHVwczoxOwogCXVu c2lnbmVkIHN1c3BlbmRlZDoxOworCXVuc2lnbmVkIHN1c3BlbmRlZF9ieV9tZGlvX2J1czoxOwog CXVuc2lnbmVkIHN5c2ZzX2xpbmtzOjE7CiAJdW5zaWduZWQgbG9vcGJhY2tfZW5hYmxlZDoxOwog Ci0tIAoyLjIwLjEKCgpGcm9tIDg2ZWY1MGU1OTkyMzcxNTQ5M2IxZDBmNWE4NTNmN2VhMjNlZjE3 ZTQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmlu QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAzIE1hciAyMDIwIDE0OjM3OjM0ICswODAwClN1YmplY3Q6 IFtQQVRDSCA0OS81Ml0gbmV0L2lwdjY6IG5lZWQgdXBkYXRlIHBlZXIgcm91dGUgd2hlbiBtb2Rp ZnkgbWV0cmljCgpbIFVwc3RyZWFtIGNvbW1pdCA2MTc5NDAxMjNlMDE0MDUyMWYzMDgwZDJiZWZj MmJmNTViY2RhMDk0IF0KCldoZW4gd2UgbW9kaWZ5IHRoZSByb3V0ZSBtZXRyaWMsIHRoZSBwZWVy IGFkZHJlc3MncyByb3V0ZSBuZWVkIGFsc28KYmUgdXBkYXRlZC4gQmVmb3JlIHRoZSBmaXg6Cgor IGlwIGFkZHIgYWRkIGRldiBkdW1teTEgMjAwMTpkYjg6OjEgcGVlciAyMDAxOmRiODo6MiBtZXRy aWMgNjAKKyBpcCAtNiByb3V0ZSBzaG93IGRldiBkdW1teTEKMjAwMTpkYjg6OjEgcHJvdG8ga2Vy bmVsIG1ldHJpYyA2MCBwcmVmIG1lZGl1bQoyMDAxOmRiODo6MiBwcm90byBrZXJuZWwgbWV0cmlj IDYwIHByZWYgbWVkaXVtCisgaXAgYWRkciBjaGFuZ2UgZGV2IGR1bW15MSAyMDAxOmRiODo6MSBw ZWVyIDIwMDE6ZGI4OjoyIG1ldHJpYyA2MQorIGlwIC02IHJvdXRlIHNob3cgZGV2IGR1bW15MQoy MDAxOmRiODo6MSBwcm90byBrZXJuZWwgbWV0cmljIDYxIHByZWYgbWVkaXVtCjIwMDE6ZGI4Ojoy IHByb3RvIGtlcm5lbCBtZXRyaWMgNjAgcHJlZiBtZWRpdW0KCkFmdGVyIHRoZSBmaXg6CisgaXAg YWRkciBjaGFuZ2UgZGV2IGR1bW15MSAyMDAxOmRiODo6MSBwZWVyIDIwMDE6ZGI4OjoyIG1ldHJp YyA2MQorIGlwIC02IHJvdXRlIHNob3cgZGV2IGR1bW15MQoyMDAxOmRiODo6MSBwcm90byBrZXJu ZWwgbWV0cmljIDYxIHByZWYgbWVkaXVtCjIwMDE6ZGI4OjoyIHByb3RvIGtlcm5lbCBtZXRyaWMg NjEgcHJlZiBtZWRpdW0KCkZpeGVzOiA4MzA4ZjNmZjE3NTMgKCJuZXQvaXB2NjogQWRkIHN1cHBv cnQgZm9yIHNwZWNpZnlpbmcgbWV0cmljIG9mIGNvbm5lY3RlZCByb3V0ZXMiKQpTaWduZWQtb2Zm LWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZp ZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgMjAgKysr KysrKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9h ZGRyY29uZi5jCmluZGV4IDY4ZDcxM2JhOTEzNi4uMDk5OTczOGVkNGE1IDEwMDY0NAotLS0gYS9u ZXQvaXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTQ1OTAsMTIg KzQ1OTAsMTQgQEAgaW5ldDZfcnRtX2RlbGFkZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0 IG5sbXNnaGRyICpubGgsCiB9CiAKIHN0YXRpYyBpbnQgbW9kaWZ5X3ByZWZpeF9yb3V0ZShzdHJ1 Y3QgaW5ldDZfaWZhZGRyICppZnAsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBleHBpcmVzLCB1 MzIgZmxhZ3MpCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBleHBpcmVzLCB1MzIgZmxhZ3MsCisJ CQkgICAgICAgYm9vbCBtb2RpZnlfcGVlcikKIHsKIAlzdHJ1Y3QgZmliNl9pbmZvICpmNmk7CiAJ dTMyIHByaW87CiAKLQlmNmkgPSBhZGRyY29uZl9nZXRfcHJlZml4X3JvdXRlKCZpZnAtPmFkZHIs IGlmcC0+cHJlZml4X2xlbiwKKwlmNmkgPSBhZGRyY29uZl9nZXRfcHJlZml4X3JvdXRlKG1vZGlm eV9wZWVyID8gJmlmcC0+cGVlcl9hZGRyIDogJmlmcC0+YWRkciwKKwkJCQkJaWZwLT5wcmVmaXhf bGVuLAogCQkJCQlpZnAtPmlkZXYtPmRldiwgMCwgUlRGX0RFRkFVTFQsIHRydWUpOwogCWlmICgh ZjZpKQogCQlyZXR1cm4gLUVOT0VOVDsKQEAgLTQ2MDYsNyArNDYwOCw4IEBAIHN0YXRpYyBpbnQg bW9kaWZ5X3ByZWZpeF9yb3V0ZShzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnAsCiAJCWlwNl9kZWxf cnQoZGV2X25ldChpZnAtPmlkZXYtPmRldiksIGY2aSk7CiAKIAkJLyogYWRkIG5ldyBvbmUgKi8K LQkJYWRkcmNvbmZfcHJlZml4X3JvdXRlKCZpZnAtPmFkZHIsIGlmcC0+cHJlZml4X2xlbiwKKwkJ YWRkcmNvbmZfcHJlZml4X3JvdXRlKG1vZGlmeV9wZWVyID8gJmlmcC0+cGVlcl9hZGRyIDogJmlm cC0+YWRkciwKKwkJCQkgICAgICBpZnAtPnByZWZpeF9sZW4sCiAJCQkJICAgICAgaWZwLT5ydF9w cmlvcml0eSwgaWZwLT5pZGV2LT5kZXYsCiAJCQkJICAgICAgZXhwaXJlcywgZmxhZ3MsIEdGUF9L RVJORUwpOwogCX0gZWxzZSB7CkBAIC00NjgyLDcgKzQ2ODUsNyBAQCBzdGF0aWMgaW50IGluZXQ2 X2FkZHJfbW9kaWZ5KHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwgc3RydWN0IGlmYTZfY29uZmln ICpjZmcpCiAJCWludCByYyA9IC1FTk9FTlQ7CiAKIAkJaWYgKGhhZF9wcmVmaXhyb3V0ZSkKLQkJ CXJjID0gbW9kaWZ5X3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsIGZsYWdzKTsKKwkJCXJjID0g bW9kaWZ5X3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsIGZsYWdzLCBmYWxzZSk7CiAKIAkJLyog cHJlZml4IHJvdXRlIGNvdWxkIGhhdmUgYmVlbiBkZWxldGVkOyBpZiBzbyByZXN0b3JlIGl0ICov CiAJCWlmIChyYyA9PSAtRU5PRU5UKSB7CkBAIC00NjkwLDYgKzQ2OTMsMTUgQEAgc3RhdGljIGlu dCBpbmV0Nl9hZGRyX21vZGlmeShzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnAsIHN0cnVjdCBpZmE2 X2NvbmZpZyAqY2ZnKQogCQkJCQkgICAgICBpZnAtPnJ0X3ByaW9yaXR5LCBpZnAtPmlkZXYtPmRl diwKIAkJCQkJICAgICAgZXhwaXJlcywgZmxhZ3MsIEdGUF9LRVJORUwpOwogCQl9CisKKwkJaWYg KGhhZF9wcmVmaXhyb3V0ZSAmJiAhaXB2Nl9hZGRyX2FueSgmaWZwLT5wZWVyX2FkZHIpKQorCQkJ cmMgPSBtb2RpZnlfcHJlZml4X3JvdXRlKGlmcCwgZXhwaXJlcywgZmxhZ3MsIHRydWUpOworCisJ CWlmIChyYyA9PSAtRU5PRU5UICYmICFpcHY2X2FkZHJfYW55KCZpZnAtPnBlZXJfYWRkcikpIHsK KwkJCWFkZHJjb25mX3ByZWZpeF9yb3V0ZSgmaWZwLT5wZWVyX2FkZHIsIGlmcC0+cHJlZml4X2xl biwKKwkJCQkJICAgICAgaWZwLT5ydF9wcmlvcml0eSwgaWZwLT5pZGV2LT5kZXYsCisJCQkJCSAg ICAgIGV4cGlyZXMsIGZsYWdzLCBHRlBfS0VSTkVMKTsKKwkJfQogCX0gZWxzZSBpZiAoaGFkX3By ZWZpeHJvdXRlKSB7CiAJCWVudW0gY2xlYW51cF9wcmVmaXhfcnRfdCBhY3Rpb247CiAJCXVuc2ln bmVkIGxvbmcgcnRfZXhwaXJlczsKLS0gCjIuMjAuMQoKCkZyb20gZDBkMDQ4OWU4ODBkYmMyZjJi NjU3YWM3OTU0MDExMThhNTk4ZGViMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFu Z2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDMgTWFyIDIwMjAgMTQ6 Mzc6MzUgKzA4MDAKU3ViamVjdDogW1BBVENIIDUwLzUyXSBuZXQvaXB2NjogcmVtb3ZlIHRoZSBv bGQgcGVlciByb3V0ZSBpZiBjaGFuZ2UgaXQgdG8gYQogbmV3IG9uZQoKWyBVcHN0cmVhbSBjb21t aXQgZDAwOThlNGM2YjgzZTUwMmNjMWNkOTZkNjdjYTg2YmM3OWE2YzU1OSBdCgpXaGVuIHdlIG1v ZGlmeSB0aGUgcGVlciByb3V0ZSBhbmQgY2hhbmdlZCBpdCB0byBhIG5ldyBvbmUsIHdlIHNob3Vs ZApyZW1vdmUgdGhlIG9sZCByb3V0ZSBmaXJzdC4gQmVmb3JlIHRoZSBmaXg6CgorIGlwIGFkZHIg YWRkIGRldiBkdW1teTEgMjAwMTpkYjg6OjEgcGVlciAyMDAxOmRiODo6MgorIGlwIC02IHJvdXRl IHNob3cgZGV2IGR1bW15MQoyMDAxOmRiODo6MSBwcm90byBrZXJuZWwgbWV0cmljIDI1NiBwcmVm IG1lZGl1bQoyMDAxOmRiODo6MiBwcm90byBrZXJuZWwgbWV0cmljIDI1NiBwcmVmIG1lZGl1bQor IGlwIGFkZHIgY2hhbmdlIGRldiBkdW1teTEgMjAwMTpkYjg6OjEgcGVlciAyMDAxOmRiODo6Mwor IGlwIC02IHJvdXRlIHNob3cgZGV2IGR1bW15MQoyMDAxOmRiODo6MSBwcm90byBrZXJuZWwgbWV0 cmljIDI1NiBwcmVmIG1lZGl1bQoyMDAxOmRiODo6MiBwcm90byBrZXJuZWwgbWV0cmljIDI1NiBw cmVmIG1lZGl1bQoKQWZ0ZXIgdGhlIGZpeDoKKyBpcCBhZGRyIGNoYW5nZSBkZXYgZHVtbXkxIDIw MDE6ZGI4OjoxIHBlZXIgMjAwMTpkYjg6OjMKKyBpcCAtNiByb3V0ZSBzaG93IGRldiBkdW1teTEK MjAwMTpkYjg6OjEgcHJvdG8ga2VybmVsIG1ldHJpYyAyNTYgcHJlZiBtZWRpdW0KMjAwMTpkYjg6 OjMgcHJvdG8ga2VybmVsIG1ldHJpYyAyNTYgcHJlZiBtZWRpdW0KClRoaXMgcGF0Y2ggZGVwZW5k IG9uIHRoZSBwcmV2aW91cyBwYXRjaCAibmV0L2lwdjY6IG5lZWQgdXBkYXRlIHBlZXIgcm91dGUK d2hlbiBtb2RpZnkgbWV0cmljIiB0byB1cGRhdGUgbmV3IHBlZXIgcm91dGUgYWZ0ZXIgZGVsZXRl IG9sZCBvbmUuCgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 Ni9hZGRyY29uZi5jIHwgMjEgKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9h ZGRyY29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCAwOTk5NzM4ZWQ0YTUuLmQwMmNj ZDc0OWE2MCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysgYi9uZXQvaXB2Ni9h ZGRyY29uZi5jCkBAIC0xMjI2LDExICsxMjI2LDEzIEBAIGNoZWNrX2NsZWFudXBfcHJlZml4X3Jv dXRlKHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwgdW5zaWduZWQgbG9uZyAqZXhwaXJlcykKIH0K IAogc3RhdGljIHZvaWQKLWNsZWFudXBfcHJlZml4X3JvdXRlKHN0cnVjdCBpbmV0Nl9pZmFkZHIg KmlmcCwgdW5zaWduZWQgbG9uZyBleHBpcmVzLCBib29sIGRlbF9ydCkKK2NsZWFudXBfcHJlZml4 X3JvdXRlKHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwgdW5zaWduZWQgbG9uZyBleHBpcmVzLAor CQkgICAgIGJvb2wgZGVsX3J0LCBib29sIGRlbF9wZWVyKQogewogCXN0cnVjdCBmaWI2X2luZm8g KmY2aTsKIAotCWY2aSA9IGFkZHJjb25mX2dldF9wcmVmaXhfcm91dGUoJmlmcC0+YWRkciwgaWZw LT5wcmVmaXhfbGVuLAorCWY2aSA9IGFkZHJjb25mX2dldF9wcmVmaXhfcm91dGUoZGVsX3BlZXIg PyAmaWZwLT5wZWVyX2FkZHIgOiAmaWZwLT5hZGRyLAorCQkJCQlpZnAtPnByZWZpeF9sZW4sCiAJ CQkJCWlmcC0+aWRldi0+ZGV2LCAwLCBSVEZfREVGQVVMVCwgdHJ1ZSk7CiAJaWYgKGY2aSkgewog CQlpZiAoZGVsX3J0KQpAQCAtMTI5Myw3ICsxMjk1LDcgQEAgc3RhdGljIHZvaWQgaXB2Nl9kZWxf YWRkcihzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnApCiAKIAlpZiAoYWN0aW9uICE9IENMRUFOVVBf UFJFRklYX1JUX05PUCkgewogCQljbGVhbnVwX3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsCi0J CQlhY3Rpb24gPT0gQ0xFQU5VUF9QUkVGSVhfUlRfREVMKTsKKwkJCWFjdGlvbiA9PSBDTEVBTlVQ X1BSRUZJWF9SVF9ERUwsIGZhbHNlKTsKIAl9CiAKIAkvKiBjbGVhbiB1cCBwcmVmc3JjIGVudHJp ZXMgKi8KQEAgLTQ2MzEsNiArNDYzMyw3IEBAIHN0YXRpYyBpbnQgaW5ldDZfYWRkcl9tb2RpZnko c3RydWN0IGluZXQ2X2lmYWRkciAqaWZwLCBzdHJ1Y3QgaWZhNl9jb25maWcgKmNmZykKIAl1bnNp Z25lZCBsb25nIHRpbWVvdXQ7CiAJYm9vbCB3YXNfbWFuYWdldGVtcGFkZHI7CiAJYm9vbCBoYWRf cHJlZml4cm91dGU7CisJYm9vbCBuZXdfcGVlciA9IGZhbHNlOwogCiAJQVNTRVJUX1JUTkwoKTsK IApAQCAtNDY2Miw2ICs0NjY1LDEzIEBAIHN0YXRpYyBpbnQgaW5ldDZfYWRkcl9tb2RpZnkoc3Ry dWN0IGluZXQ2X2lmYWRkciAqaWZwLCBzdHJ1Y3QgaWZhNl9jb25maWcgKmNmZykKIAkJY2ZnLT5w cmVmZXJyZWRfbGZ0ID0gdGltZW91dDsKIAl9CiAKKwlpZiAoY2ZnLT5wZWVyX3BmeCAmJgorCSAg ICBtZW1jbXAoJmlmcC0+cGVlcl9hZGRyLCBjZmctPnBlZXJfcGZ4LCBzaXplb2Yoc3RydWN0IGlu Nl9hZGRyKSkpIHsKKwkJaWYgKCFpcHY2X2FkZHJfYW55KCZpZnAtPnBlZXJfYWRkcikpCisJCQlj bGVhbnVwX3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsIHRydWUsIHRydWUpOworCQluZXdfcGVl ciA9IHRydWU7CisJfQorCiAJc3Bpbl9sb2NrX2JoKCZpZnAtPmxvY2spOwogCXdhc19tYW5hZ2V0 ZW1wYWRkciA9IGlmcC0+ZmxhZ3MgJiBJRkFfRl9NQU5BR0VURU1QQUREUjsKIAloYWRfcHJlZml4 cm91dGUgPSBpZnAtPmZsYWdzICYgSUZBX0ZfUEVSTUFORU5UICYmCkBAIC00Njc3LDYgKzQ2ODcs OSBAQCBzdGF0aWMgaW50IGluZXQ2X2FkZHJfbW9kaWZ5KHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlm cCwgc3RydWN0IGlmYTZfY29uZmlnICpjZmcpCiAJaWYgKGNmZy0+cnRfcHJpb3JpdHkgJiYgY2Zn LT5ydF9wcmlvcml0eSAhPSBpZnAtPnJ0X3ByaW9yaXR5KQogCQlpZnAtPnJ0X3ByaW9yaXR5ID0g Y2ZnLT5ydF9wcmlvcml0eTsKIAorCWlmIChuZXdfcGVlcikKKwkJaWZwLT5wZWVyX2FkZHIgPSAq Y2ZnLT5wZWVyX3BmeDsKKwogCXNwaW5fdW5sb2NrX2JoKCZpZnAtPmxvY2spOwogCWlmICghKGlm cC0+ZmxhZ3MmSUZBX0ZfVEVOVEFUSVZFKSkKIAkJaXB2Nl9pZmFfbm90aWZ5KDAsIGlmcCk7CkBA IC00NzEyLDcgKzQ3MjUsNyBAQCBzdGF0aWMgaW50IGluZXQ2X2FkZHJfbW9kaWZ5KHN0cnVjdCBp bmV0Nl9pZmFkZHIgKmlmcCwgc3RydWN0IGlmYTZfY29uZmlnICpjZmcpCiAKIAkJaWYgKGFjdGlv biAhPSBDTEVBTlVQX1BSRUZJWF9SVF9OT1ApIHsKIAkJCWNsZWFudXBfcHJlZml4X3JvdXRlKGlm cCwgcnRfZXhwaXJlcywKLQkJCQlhY3Rpb24gPT0gQ0xFQU5VUF9QUkVGSVhfUlRfREVMKTsKKwkJ CQlhY3Rpb24gPT0gQ0xFQU5VUF9QUkVGSVhfUlRfREVMLCBmYWxzZSk7CiAJCX0KIAl9CiAKLS0g CjIuMjAuMQoKCkZyb20gMGNjYmM4MmEwYjY1YmQ3ODU2OGViMmRhYjcxYjdlY2QzOGU3YWRlYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDMgTWFyIDIwMjAgMTQ6Mzc6MzYgKzA4MDAKU3ViamVjdDogW1BB VENIIDUxLzUyXSBzZWxmdGVzdHMvbmV0L2ZpYl90ZXN0czogdXBkYXRlIGFkZHJfbWV0cmljX3Rl c3QgZm9yCiBwZWVyIHJvdXRlIHRlc3RpbmcKClsgVXBzdHJlYW0gY29tbWl0IDBkMjkxNjlhNzA4 YmY3MzBlZGUyODcyNDhlNDI5ZDU3OWY0MzJkMWQgXQoKVGhpcyBwYXRjaCB1cGRhdGUge2lwdjQs IGlwdjZ9X2FkZHJfbWV0cmljX3Rlc3Qgd2l0aAoxLiBTZXQgbWV0cmljIG9mIGFkZHJlc3Mgd2l0 aCBwZWVyIHJvdXRlIGFuZCBzZWUgaWYgdGhlIHJvdXRlIGFkZGVkCmNvcnJlY3RseS4KMi4gTW9k aWZ5IG1ldHJpYyBhbmQgcGVlciBhZGRyZXNzIGZvciBwZWVyIHJvdXRlIGFuZCBzZWUgaWYgdGhl IHJvdXRlCmNoYW5nZWQgY29ycmVjdGx5LgoKU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxp dWhhbmdiaW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl90ZXN0cy5zaCB8IDM0ICsr KysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0 L2ZpYl90ZXN0cy5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfdGVzdHMuc2gK aW5kZXggNDc0NjM4ZWYyNjk3Li4wOTg1NGY4YTBiNTcgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL25ldC9maWJfdGVzdHMuc2gKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMvbmV0L2ZpYl90ZXN0cy5zaApAQCAtMTA0MSw2ICsxMDQxLDI3IEBAIGlwdjZfYWRkcl9tZXRy aWNfdGVzdCgpCiAJZmkKIAlsb2dfdGVzdCAkcmMgMCAiUHJlZml4IHJvdXRlIHdpdGggbWV0cmlj IG9uIGxpbmsgdXAiCiAKKwkjIHZlcmlmeSBwZWVyIG1ldHJpYyBhZGRlZCBjb3JyZWN0bHkKKwlz ZXQgLWUKKwlydW5fY21kICIkSVAgLTYgYWRkciBmbHVzaCBkZXYgZHVtbXkyIgorCXJ1bl9jbWQg IiRJUCAtNiBhZGRyIGFkZCBkZXYgZHVtbXkyIDIwMDE6ZGI4OjEwNDo6MSBwZWVyIDIwMDE6ZGI4 OjEwNDo6MiBtZXRyaWMgMjYwIgorCXNldCArZQorCisJY2hlY2tfcm91dGU2ICIyMDAxOmRiODox MDQ6OjEgZGV2IGR1bW15MiBwcm90byBrZXJuZWwgbWV0cmljIDI2MCIKKwlsb2dfdGVzdCAkPyAw ICJTZXQgbWV0cmljIHdpdGggcGVlciByb3V0ZSBvbiBsb2NhbCBzaWRlIgorCWxvZ190ZXN0ICQ/ IDAgIlVzZXIgc3BlY2lmaWVkIG1ldHJpYyBvbiBsb2NhbCBhZGRyZXNzIgorCWNoZWNrX3JvdXRl NiAiMjAwMTpkYjg6MTA0OjoyIGRldiBkdW1teTIgcHJvdG8ga2VybmVsIG1ldHJpYyAyNjAiCisJ bG9nX3Rlc3QgJD8gMCAiU2V0IG1ldHJpYyB3aXRoIHBlZXIgcm91dGUgb24gcGVlciBzaWRlIgor CisJc2V0IC1lCisJcnVuX2NtZCAiJElQIC02IGFkZHIgY2hhbmdlIGRldiBkdW1teTIgMjAwMTpk Yjg6MTA0OjoxIHBlZXIgMjAwMTpkYjg6MTA0OjozIG1ldHJpYyAyNjEiCisJc2V0ICtlCisKKwlj aGVja19yb3V0ZTYgIjIwMDE6ZGI4OjEwNDo6MSBkZXYgZHVtbXkyIHByb3RvIGtlcm5lbCBtZXRy aWMgMjYxIgorCWxvZ190ZXN0ICQ/IDAgIk1vZGlmeSBtZXRyaWMgYW5kIHBlZXIgYWRkcmVzcyBv biBsb2NhbCBzaWRlIgorCWNoZWNrX3JvdXRlNiAiMjAwMTpkYjg6MTA0OjozIGRldiBkdW1teTIg cHJvdG8ga2VybmVsIG1ldHJpYyAyNjEiCisJbG9nX3Rlc3QgJD8gMCAiTW9kaWZ5IG1ldHJpYyBh bmQgcGVlciBhZGRyZXNzIG9uIHBlZXIgc2lkZSIKKwogCSRJUCBsaSBkZWwgZHVtbXkxCiAJJElQ IGxpIGRlbCBkdW1teTIKIAljbGVhbnVwCkBAIC0xNDU3LDEzICsxNDc4LDIwIEBAIGlwdjRfYWRk cl9tZXRyaWNfdGVzdCgpCiAKIAlydW5fY21kICIkSVAgYWRkciBmbHVzaCBkZXYgZHVtbXkyIgog CXJ1bl9jbWQgIiRJUCBhZGRyIGFkZCBkZXYgZHVtbXkyIDE3Mi4xNi4xMDQuMS8zMiBwZWVyIDE3 Mi4xNi4xMDQuMiBtZXRyaWMgMjYwIgotCXJ1bl9jbWQgIiRJUCBhZGRyIGNoYW5nZSBkZXYgZHVt bXkyIDE3Mi4xNi4xMDQuMS8zMiBwZWVyIDE3Mi4xNi4xMDQuMiBtZXRyaWMgMjYxIgogCXJjPSQ/ CiAJaWYgWyAkcmMgLWVxIDAgXTsgdGhlbgotCQljaGVja19yb3V0ZSAiMTcyLjE2LjEwNC4yIGRl diBkdW1teTIgcHJvdG8ga2VybmVsIHNjb3BlIGxpbmsgc3JjIDE3Mi4xNi4xMDQuMSBtZXRyaWMg MjYxIgorCQljaGVja19yb3V0ZSAiMTcyLjE2LjEwNC4yIGRldiBkdW1teTIgcHJvdG8ga2VybmVs IHNjb3BlIGxpbmsgc3JjIDE3Mi4xNi4xMDQuMSBtZXRyaWMgMjYwIgorCQlyYz0kPworCWZpCisJ bG9nX3Rlc3QgJHJjIDAgIlNldCBtZXRyaWMgb2YgYWRkcmVzcyB3aXRoIHBlZXIgcm91dGUiCisK KwlydW5fY21kICIkSVAgYWRkciBjaGFuZ2UgZGV2IGR1bW15MiAxNzIuMTYuMTA0LjEvMzIgcGVl ciAxNzIuMTYuMTA0LjMgbWV0cmljIDI2MSIKKwlyYz0kPworCWlmIFsgJHJjIC1lcSAwIF07IHRo ZW4KKwkJY2hlY2tfcm91dGUgIjE3Mi4xNi4xMDQuMyBkZXYgZHVtbXkyIHByb3RvIGtlcm5lbCBz Y29wZSBsaW5rIHNyYyAxNzIuMTYuMTA0LjEgbWV0cmljIDI2MSIKIAkJcmM9JD8KIAlmaQotCWxv Z190ZXN0ICRyYyAwICJNb2RpZnkgbWV0cmljIG9mIGFkZHJlc3Mgd2l0aCBwZWVyIHJvdXRlIgor CWxvZ190ZXN0ICRyYyAwICJNb2RpZnkgbWV0cmljIGFuZCBwZWVyIGFkZHJlc3MgZm9yIHBlZXIg cm91dGUiCiAKIAkkSVAgbGkgZGVsIGR1bW15MQogCSRJUCBsaSBkZWwgZHVtbXkyCi0tIAoyLjIw LjEKCgpGcm9tIDRmNDJlNTQ0ZDcwN2M2ODhkMTA4MDE0Yjc5MjU5YjkwNzI2MThlZjYgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KRGF0 ZTogV2VkLCAxMSBNYXIgMjAyMCAxNjoyNDoyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggNTIvNTJd IG5ldDogZHNhOiBEb24ndCBpbnN0YW50aWF0ZSBwaHlsaW5rIGZvciBDUFUvRFNBIHBvcnRzCiB1 bmxlc3MgbmVlZGVkCgpbIFVwc3RyZWFtIGNvbW1pdCBhMjBmOTk3MDEwYzRlYzc2ZWFhNTViOGNj MDQ3ZDc2ZGNhYzY5ZjcwIF0KCkJ5IGRlZmF1bHQsIERTQSBkcml2ZXJzIHNob3VsZCBjb25maWd1 cmUgQ1BVIGFuZCBEU0EgcG9ydHMgdG8gdGhlaXIKbWF4aW11bSBzcGVlZC4gSW4gbWFueSBjb25m aWd1cmF0aW9ucyB0aGlzIGlzIHN1ZmZpY2llbnQgdG8gbWFrZSB0aGUKbGluayB3b3JrLgoKSW4g c29tZSBjYXNlcyBpdCBpcyBuZWNlc3NhcnkgdG8gY29uZmlndXJlIHRoZSBsaW5rIHRvIHJ1biBz bG93ZXIsCmUuZy4gYmVjYXVzZSBvZiBsaW1pdGF0aW9ucyBvZiB0aGUgU29DIGl0IGlzIGNvbm5l Y3RlZCB0by4gT3IgYmFjayB0bwpiYWNrIFBIWXMgYXJlIHVzZWQgYW5kIHRoZSBQSFkgbmVlZHMg dG8gYmUgZHJpdmVuIGluIG9yZGVyIHRvCmVzdGFibGlzaCBsaW5rLiBJbiB0aGlzIGNhc2UsIHBo eWxpbmsgaXMgdXNlZC4KCk9ubHkgaW5zdGFudGlhdGUgcGh5bGluayBpZiBpdCBpcyByZXF1aXJl ZC4gSWYgdGhlcmUgaXMgbm8gUEhZLCBvciBubwpmaXhlZCBsaW5rIHByb3BlcnRpZXMsIHBoeWxp bmsgY2FuIHVwc2V0IGEgbGluayB3aGljaCB3b3JrcyBpbiB0aGUKZGVmYXVsdCBjb25maWd1cmF0 aW9uLgoKRml4ZXM6IDBlMjc5MjE4MTZhZCAoIm5ldDogZHNhOiBVc2UgUEhZTElOSyBmb3IgdGhl IENQVS9EU0EgcG9ydHMiKQpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4u Y2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBuZXQvZHNhL3BvcnQuYyB8IDEyICsrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDkg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvZHNhL3BvcnQu YyBiL25ldC9kc2EvcG9ydC5jCmluZGV4IDJhMWFhMWE1MDI1NC4uZmEwMjNhZjY5YmM0IDEwMDY0 NAotLS0gYS9uZXQvZHNhL3BvcnQuYworKysgYi9uZXQvZHNhL3BvcnQuYwpAQCAtNjQ5LDkgKzY0 OSwxNCBAQCBzdGF0aWMgaW50IGRzYV9wb3J0X3BoeWxpbmtfcmVnaXN0ZXIoc3RydWN0IGRzYV9w b3J0ICpkcCkKIGludCBkc2FfcG9ydF9saW5rX3JlZ2lzdGVyX29mKHN0cnVjdCBkc2FfcG9ydCAq ZHApCiB7CiAJc3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHAtPmRzOworCXN0cnVjdCBkZXZpY2Vf bm9kZSAqcGh5X25wOwogCi0JaWYgKCFkcy0+b3BzLT5hZGp1c3RfbGluaykKLQkJcmV0dXJuIGRz YV9wb3J0X3BoeWxpbmtfcmVnaXN0ZXIoZHApOworCWlmICghZHMtPm9wcy0+YWRqdXN0X2xpbmsp IHsKKwkJcGh5X25wID0gb2ZfcGFyc2VfcGhhbmRsZShkcC0+ZG4sICJwaHktaGFuZGxlIiwgMCk7 CisJCWlmIChvZl9waHlfaXNfZml4ZWRfbGluayhkcC0+ZG4pIHx8IHBoeV9ucCkKKwkJCXJldHVy biBkc2FfcG9ydF9waHlsaW5rX3JlZ2lzdGVyKGRwKTsKKwkJcmV0dXJuIDA7CisJfQogCiAJZGV2 X3dhcm4oZHMtPmRldiwKIAkJICJVc2luZyBsZWdhY3kgUEhZTElCIGNhbGxiYWNrcy4gUGxlYXNl IG1pZ3JhdGUgdG8gUEhZTElOSyFcbiIpOwpAQCAtNjY2LDExICs2NzEsMTIgQEAgdm9pZCBkc2Ff cG9ydF9saW5rX3VucmVnaXN0ZXJfb2Yoc3RydWN0IGRzYV9wb3J0ICpkcCkKIHsKIAlzdHJ1Y3Qg ZHNhX3N3aXRjaCAqZHMgPSBkcC0+ZHM7CiAKLQlpZiAoIWRzLT5vcHMtPmFkanVzdF9saW5rKSB7 CisJaWYgKCFkcy0+b3BzLT5hZGp1c3RfbGluayAmJiBkcC0+cGwpIHsKIAkJcnRubF9sb2NrKCk7 CiAJCXBoeWxpbmtfZGlzY29ubmVjdF9waHkoZHAtPnBsKTsKIAkJcnRubF91bmxvY2soKTsKIAkJ cGh5bGlua19kZXN0cm95KGRwLT5wbCk7CisJCWRwLT5wbCA9IE5VTEw7CiAJCXJldHVybjsKIAl9 CiAKLS0gCjIuMjAuMQoK ----Next_Part(Fri_Mar_13_21_52_04_2020_791)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_55.mbox" RnJvbSBhMDE1YTQ4ZDMxZTQ2NzBhOThhNTY2ZDdkMDdiOTU5MDI5NzI3YzdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEbWl0cnkgWWFrdW5pbiA8emVpbEB5YW5kZXgtdGVhbS5ydT4K RGF0ZTogVGh1LCA1IE1hciAyMDIwIDE3OjQ1OjU3ICswMzAwClN1YmplY3Q6IFtQQVRDSCAwMS82 Nl0gY2dyb3VwLCBuZXRjbGFzc2lkOiBwZXJpb2RpY2FsbHkgcmVsZWFzZSBmaWxlX2xvY2sgb24K IGNsYXNzaWQgdXBkYXRpbmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3Bs YWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBz dHJlYW0gY29tbWl0IDAxOGQyNmZjZDEyYTc1ZmI5YjVmZTIzMzc2MmFhM2YyZjA4NTRiODggXQoK SW4gb3VyIHByb2R1Y3Rpb24gZW52aXJvbm1lbnQgd2UgaGF2ZSBmYWNlZCB3aXRoIHByb2JsZW0g dGhhdCB1cGRhdGluZwpjbGFzc2lkIGluIGNncm91cCB3aXRoIGhlYXZ5IHRhc2tzIGNhdXNlIGxv bmcgZnJlZXplIG9mIHRoZSBmaWxlIHRhYmxlcwppbiB0aGlzIHRhc2tzLiBCeSBoZWF2eSB0YXNr cyB3ZSB1bmRlcnN0YW5kIHRhc2tzIHdpdGggbWFueSB0aHJlYWRzIGFuZApvcGVuZWQgc29ja2V0 cyAoZS5nLiBiYWxhbmNlcnMpLiBUaGlzIGZyZWV6ZSBsZWFkcyB0byBhbiBpbmNyZWFzZSBudW1i ZXIKb2YgY2xpZW50IHRpbWVvdXRzLgoKVGhpcyBwYXRjaCBpbXBsZW1lbnRzIGZvbGxvd2luZyBs b2dpYyB0byBmaXggdGhpcyBpc3N1ZToK0LBmdGVyIGl0ZXJhdGluZyAxMDAwIGZpbGUgZGVzY3Jp cHRvcnMgZmlsZSB0YWJsZSBsb2NrIHdpbGwgYmUgcmVsZWFzZWQKdGh1cyBwcm92aWRpbmcgYSB0 aW1lIGdhcCBmb3Igc29ja2V0IGNyZWF0aW9uL2RlbGV0aW9uLgoKTm93IHVwZGF0ZSBpcyBub24g YXRvbWljIGFuZCBzb2NrZXQgbWF5IGJlIHNraXBwZWQgdXNpbmcgY2FsbHM6CgpkdXAyKG9sZGZk LCBuZXdmZCk7CmNsb3NlKG9sZGZkKTsKCkJ1dCB0aGlzIGNhc2UgaXMgbm90IHR5cGljYWwuIE1v cmVvdmVyIGJlZm9yZSB0aGlzIHBhdGNoIHNraXAgaXMgcG9zc2libGUKdG9vIGJ5IGhpZGluZyBz b2NrZXQgZmQgaW4gdW5peCBzb2NrZXQgYnVmZmVyLgoKTmV3IHNvY2tldHMgd2lsbCBiZSBhbGxv Y2F0ZWQgd2l0aCB1cGRhdGVkIGNsYXNzaWQgYmVjYXVzZSBjZ3JvdXAgc3RhdGUKaXMgdXBkYXRl ZCBiZWZvcmUgc3RhcnQgb2YgdGhlIGZpbGUgZGVzY3JpcHRvcnMgaXRlcmF0aW9uLgoKU28gaW4g Y29tbW9uIGNhc2VzIHRoaXMgcGF0Y2ggaGFzIG5vIHNpZGUgZWZmZWN0cy4KClNpZ25lZC1vZmYt Ynk6IERtaXRyeSBZYWt1bmluIDx6ZWlsQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogS29u c3RhbnRpbiBLaGxlYm5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUv bmV0Y2xhc3NpZF9jZ3JvdXAuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL25ldC9jb3JlL25ldGNsYXNzaWRfY2dyb3VwLmMgYi9uZXQvY29yZS9uZXRj bGFzc2lkX2Nncm91cC5jCmluZGV4IDA2NDJmOTFjNDAzOC4uYjRjODdmZTMxYmUyIDEwMDY0NAot LS0gYS9uZXQvY29yZS9uZXRjbGFzc2lkX2Nncm91cC5jCisrKyBiL25ldC9jb3JlL25ldGNsYXNz aWRfY2dyb3VwLmMKQEAgLTUzLDMwICs1Myw2MCBAQCBzdGF0aWMgdm9pZCBjZ3JwX2Nzc19mcmVl KHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MpCiAJa2ZyZWUoY3NzX2Nsc19zdGF0ZShj c3MpKTsKIH0KIAorLyoKKyAqIFRvIGF2b2lkIGZyZWV6aW5nIG9mIHNvY2tldHMgY3JlYXRpb24g Zm9yIHRhc2tzIHdpdGggYmlnIG51bWJlciBvZiB0aHJlYWRzCisgKiBhbmQgb3BlbmVkIHNvY2tl dHMgbGV0cyByZWxlYXNlIGZpbGVfbG9jayBldmVyeSAxMDAwIGl0ZXJhdGVkIGRlc2NyaXB0b3Jz LgorICogTmV3IHNvY2tldHMgd2lsbCBhbHJlYWR5IGhhdmUgYmVlbiBjcmVhdGVkIHdpdGggbmV3 IGNsYXNzaWQuCisgKi8KKworc3RydWN0IHVwZGF0ZV9jbGFzc2lkX2NvbnRleHQgeworCXUzMiBj bGFzc2lkOworCXVuc2lnbmVkIGludCBiYXRjaDsKK307CisKKyNkZWZpbmUgVVBEQVRFX0NMQVNT SURfQkFUQ0ggMTAwMAorCiBzdGF0aWMgaW50IHVwZGF0ZV9jbGFzc2lkX3NvY2soY29uc3Qgdm9p ZCAqdiwgc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIG4pCiB7CiAJaW50IGVycjsKKwlzdHJ1 Y3QgdXBkYXRlX2NsYXNzaWRfY29udGV4dCAqY3R4ID0gKHZvaWQgKil2OwogCXN0cnVjdCBzb2Nr ZXQgKnNvY2sgPSBzb2NrX2Zyb21fZmlsZShmaWxlLCAmZXJyKTsKIAogCWlmIChzb2NrKSB7CiAJ CXNwaW5fbG9jaygmY2dyb3VwX3NrX3VwZGF0ZV9sb2NrKTsKLQkJc29ja19jZ3JvdXBfc2V0X2Ns YXNzaWQoJnNvY2stPnNrLT5za19jZ3JwX2RhdGEsCi0JCQkJCSh1bnNpZ25lZCBsb25nKXYpOwor CQlzb2NrX2Nncm91cF9zZXRfY2xhc3NpZCgmc29jay0+c2stPnNrX2NncnBfZGF0YSwgY3R4LT5j bGFzc2lkKTsKIAkJc3Bpbl91bmxvY2soJmNncm91cF9za191cGRhdGVfbG9jayk7CiAJfQorCWlm ICgtLWN0eC0+YmF0Y2ggPT0gMCkgeworCQljdHgtPmJhdGNoID0gVVBEQVRFX0NMQVNTSURfQkFU Q0g7CisJCXJldHVybiBuICsgMTsKKwl9CiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyB2b2lkIHVw ZGF0ZV9jbGFzc2lkX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwLCB1MzIgY2xhc3NpZCkKK3sK KwlzdHJ1Y3QgdXBkYXRlX2NsYXNzaWRfY29udGV4dCBjdHggPSB7CisJCS5jbGFzc2lkID0gY2xh c3NpZCwKKwkJLmJhdGNoID0gVVBEQVRFX0NMQVNTSURfQkFUQ0gKKwl9OworCXVuc2lnbmVkIGlu dCBmZCA9IDA7CisKKwlkbyB7CisJCXRhc2tfbG9jayhwKTsKKwkJZmQgPSBpdGVyYXRlX2ZkKHAt PmZpbGVzLCBmZCwgdXBkYXRlX2NsYXNzaWRfc29jaywgJmN0eCk7CisJCXRhc2tfdW5sb2NrKHAp OworCQljb25kX3Jlc2NoZWQoKTsKKwl9IHdoaWxlIChmZCk7Cit9CisKIHN0YXRpYyB2b2lkIGNn cnBfYXR0YWNoKHN0cnVjdCBjZ3JvdXBfdGFza3NldCAqdHNldCkKIHsKIAlzdHJ1Y3QgY2dyb3Vw X3N1YnN5c19zdGF0ZSAqY3NzOwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsKIAogCWNncm91cF90 YXNrc2V0X2Zvcl9lYWNoKHAsIGNzcywgdHNldCkgewotCQl0YXNrX2xvY2socCk7Ci0JCWl0ZXJh dGVfZmQocC0+ZmlsZXMsIDAsIHVwZGF0ZV9jbGFzc2lkX3NvY2ssCi0JCQkgICAodm9pZCAqKSh1 bnNpZ25lZCBsb25nKWNzc19jbHNfc3RhdGUoY3NzKS0+Y2xhc3NpZCk7Ci0JCXRhc2tfdW5sb2Nr KHApOworCQl1cGRhdGVfY2xhc3NpZF90YXNrKHAsIGNzc19jbHNfc3RhdGUoY3NzKS0+Y2xhc3Np ZCk7CiAJfQogfQogCkBAIC05OCwxMCArMTI4LDcgQEAgc3RhdGljIGludCB3cml0ZV9jbGFzc2lk KHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MsIHN0cnVjdCBjZnR5cGUgKmNmdCwKIAog CWNzc190YXNrX2l0ZXJfc3RhcnQoY3NzLCAwLCAmaXQpOwogCXdoaWxlICgocCA9IGNzc190YXNr X2l0ZXJfbmV4dCgmaXQpKSkgewotCQl0YXNrX2xvY2socCk7Ci0JCWl0ZXJhdGVfZmQocC0+Zmls ZXMsIDAsIHVwZGF0ZV9jbGFzc2lkX3NvY2ssCi0JCQkgICAodm9pZCAqKSh1bnNpZ25lZCBsb25n KWNzLT5jbGFzc2lkKTsKLQkJdGFza191bmxvY2socCk7CisJCXVwZGF0ZV9jbGFzc2lkX3Rhc2so cCwgY3MtPmNsYXNzaWQpOwogCQljb25kX3Jlc2NoZWQoKTsKIAl9CiAJY3NzX3Rhc2tfaXRlcl9l bmQoJml0KTsKLS0gCjIuMjAuMQoKCkZyb20gZjFlY2UyOTQxMmM0MThjMTMxODZiZjVlM2MzYmFh NzUxZDBiZTQzMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmlzaGFsIEt1bGthcm5p IDx2aXNoYWxAY2hlbHNpby5jb20+CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAxMDo1NDoxMyArMDUz MApTdWJqZWN0OiBbUEFUQ0ggMDIvNjZdIGN4Z2I0OiBmaXggY2hlY2tzIGZvciBtYXggcXVldWVz IHRvIGFsbG9jYXRlCgpbIFVwc3RyZWFtIGNvbW1pdCAxMTZjYTkyNGFlYTY2NDE0MWFmYTg2YTE0 MjVlZGMzZmNkYTBkMDZmIF0KCkhhcmR3YXJlIGNhbiBzdXBwb3J0IG1vcmUgdGhhbiA4IHF1ZXVl cyBjdXJyZW50bHkgbGltaXRlZCBieQpuZXRpZl9nZXRfbnVtX2RlZmF1bHRfcnNzX3F1ZXVlcygp LiBTbywgcmV3b3JrIGFuZCBmaXggY2hlY2tzIGZvciBtYXgKbnVtYmVyIG9mIHF1ZXVlcyB0byBh bGxvY2F0ZS4gVGhlIGNoZWNrcyBzaG91bGQgYmUgYmFzZWQgb24gaG93IG1hbnkgYXJlCmFjdHVh bGx5IHN1cHBvcnRlZCBieSBoYXJkd2FyZSwgT1IgdGhlIG51bWJlciBvZiBvbmxpbmUgY3B1czsg d2hpY2hldmVyCmlzIGxvd2VyLgoKRml4ZXM6IDU5NTJkZGU3MjMwNyAoImN4Z2I0OiBzZXQgbWF4 aW1hbCBudW1iZXIgb2YgZGVmYXVsdCBSU1MgcXVldWVzIikKU2lnbmVkLW9mZi1ieTogVmlzaGFs IEt1bGthcm5pIDx2aXNoYWxAY2hlbHNpby5jb20+IgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogLi4uL25ldC9ldGhlcm5ldC9jaGVsc2lv L2N4Z2I0L2N4Z2I0X21haW4uYyAgIHwgNDkgKysrKysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfbWFpbi5jIGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9tYWluLmMKaW5kZXggMGRlZGQzZTljMzFl Li5iMTFiYTQ1NjVjMjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8v Y3hnYjQvY3hnYjRfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hn YjQvY3hnYjRfbWFpbi5jCkBAIC01MzUxLDEyICs1MzUxLDExIEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBpc194XzEwZ19wb3J0KGNvbnN0IHN0cnVjdCBsaW5rX2NvbmZpZyAqbGMpCiBzdGF0aWMgaW50 IGNmZ19xdWV1ZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApCiB7CiAJdTMyIGF2YWlsX3FzZXRzLCBh dmFpbF9ldGhfcXNldHMsIGF2YWlsX3VsZF9xc2V0czsKKwl1MzIgaSwgbjEwZyA9IDAsIHFpZHgg PSAwLCBuMWcgPSAwOworCXUzMiBuY3B1cyA9IG51bV9vbmxpbmVfY3B1cygpOwogCXUzMiBuaXFm bGludCwgbmVxLCBudW1fdWxkczsKIAlzdHJ1Y3Qgc2dlICpzID0gJmFkYXAtPnNnZTsKLQl1MzIg aSwgbjEwZyA9IDAsIHFpZHggPSAwOwotI2lmbmRlZiBDT05GSUdfQ0hFTFNJT19UNF9EQ0IKLQlp bnQgcTEwZyA9IDA7Ci0jZW5kaWYKKwl1MzIgcTEwZyA9IDAsIHExZzsKIAogCS8qIFJlZHVjZSBt ZW1vcnkgdXNhZ2UgaW4ga2R1bXAgZW52aXJvbm1lbnQsIGRpc2FibGUgYWxsIG9mZmxvYWQuICov CiAJaWYgKGlzX2tkdW1wX2tlcm5lbCgpIHx8IChpc191bGQoYWRhcCkgJiYgdDRfdWxkX21lbV9h bGxvYyhhZGFwKSkpIHsKQEAgLTUzOTQsNDQgKzUzOTMsNTAgQEAgc3RhdGljIGludCBjZmdfcXVl dWVzKHN0cnVjdCBhZGFwdGVyICphZGFwKQogCQluMTBnICs9IGlzX3hfMTBnX3BvcnQoJmFkYXAy cGluZm8oYWRhcCwgaSktPmxpbmtfY2ZnKTsKIAogCWF2YWlsX2V0aF9xc2V0cyA9IG1pbl90KHUz MiwgYXZhaWxfcXNldHMsIE1BWF9FVEhfUVNFVFMpOworCisJLyogV2UgZGVmYXVsdCB0byAxIHF1 ZXVlIHBlciBub24tMTBHIHBvcnQgYW5kIHVwIHRvICMgb2YgY29yZXMgcXVldWVzCisJICogcGVy IDEwRyBwb3J0LgorCSAqLworCWlmIChuMTBnKQorCQlxMTBnID0gKGF2YWlsX2V0aF9xc2V0cyAt IChhZGFwLT5wYXJhbXMubnBvcnRzIC0gbjEwZykpIC8gbjEwZzsKKworCW4xZyA9IGFkYXAtPnBh cmFtcy5ucG9ydHMgLSBuMTBnOwogI2lmZGVmIENPTkZJR19DSEVMU0lPX1Q0X0RDQgogCS8qIEZv ciBEYXRhIENlbnRlciBCcmlkZ2luZyBzdXBwb3J0IHdlIG5lZWQgdG8gYmUgYWJsZSB0byBzdXBw b3J0IHVwCiAJICogdG8gOCBUcmFmZmljIFByaW9yaXRpZXM7IGVhY2ggb2Ygd2hpY2ggd2lsbCBi ZSBhc3NpZ25lZCB0byBpdHMKIAkgKiBvd24gVFggUXVldWUgaW4gb3JkZXIgdG8gcHJldmVudCBI ZWFkLU9mLUxpbmUgQmxvY2tpbmcuCiAJICovCisJcTFnID0gODsKIAlpZiAoYWRhcC0+cGFyYW1z Lm5wb3J0cyAqIDggPiBhdmFpbF9ldGhfcXNldHMpIHsKIAkJZGV2X2VycihhZGFwLT5wZGV2X2Rl diwgIkRDQiBhdmFpbF9ldGhfcXNldHM9JWQgPCAlZCFcbiIsCiAJCQlhdmFpbF9ldGhfcXNldHMs IGFkYXAtPnBhcmFtcy5ucG9ydHMgKiA4KTsKIAkJcmV0dXJuIC1FTk9NRU07CiAJfQogCi0JZm9y X2VhY2hfcG9ydChhZGFwLCBpKSB7Ci0JCXN0cnVjdCBwb3J0X2luZm8gKnBpID0gYWRhcDJwaW5m byhhZGFwLCBpKTsKKwlpZiAoYWRhcC0+cGFyYW1zLm5wb3J0cyAqIG5jcHVzIDwgYXZhaWxfZXRo X3FzZXRzKQorCQlxMTBnID0gbWF4KDhVLCBuY3B1cyk7CisJZWxzZQorCQlxMTBnID0gbWF4KDhV LCBxMTBnKTsKIAotCQlwaS0+Zmlyc3RfcXNldCA9IHFpZHg7Ci0JCXBpLT5ucXNldHMgPSBpc19r ZHVtcF9rZXJuZWwoKSA/IDEgOiA4OwotCQlxaWR4ICs9IHBpLT5ucXNldHM7Ci0JfQotI2Vsc2Ug LyogIUNPTkZJR19DSEVMU0lPX1Q0X0RDQiAqLwotCS8qIFdlIGRlZmF1bHQgdG8gMSBxdWV1ZSBw ZXIgbm9uLTEwRyBwb3J0IGFuZCB1cCB0byAjIG9mIGNvcmVzIHF1ZXVlcwotCSAqIHBlciAxMEcg cG9ydC4KLQkgKi8KLQlpZiAobjEwZykKLQkJcTEwZyA9IChhdmFpbF9ldGhfcXNldHMgLSAoYWRh cC0+cGFyYW1zLm5wb3J0cyAtIG4xMGcpKSAvIG4xMGc7Ci0JaWYgKHExMGcgPiBuZXRpZl9nZXRf bnVtX2RlZmF1bHRfcnNzX3F1ZXVlcygpKQotCQlxMTBnID0gbmV0aWZfZ2V0X251bV9kZWZhdWx0 X3Jzc19xdWV1ZXMoKTsKKwl3aGlsZSAoKHExMGcgKiBuMTBnKSA+IChhdmFpbF9ldGhfcXNldHMg LSBuMWcgKiBxMWcpKQorCQlxMTBnLS07CiAKLQlpZiAoaXNfa2R1bXBfa2VybmVsKCkpCisjZWxz ZSAvKiAhQ09ORklHX0NIRUxTSU9fVDRfRENCICovCisJcTFnID0gMTsKKwlxMTBnID0gbWluKHEx MGcsIG5jcHVzKTsKKyNlbmRpZiAvKiAhQ09ORklHX0NIRUxTSU9fVDRfRENCICovCisJaWYgKGlz X2tkdW1wX2tlcm5lbCgpKSB7CiAJCXExMGcgPSAxOworCQlxMWcgPSAxOworCX0KIAogCWZvcl9l YWNoX3BvcnQoYWRhcCwgaSkgewogCQlzdHJ1Y3QgcG9ydF9pbmZvICpwaSA9IGFkYXAycGluZm8o YWRhcCwgaSk7CiAKIAkJcGktPmZpcnN0X3FzZXQgPSBxaWR4OwotCQlwaS0+bnFzZXRzID0gaXNf eF8xMGdfcG9ydCgmcGktPmxpbmtfY2ZnKSA/IHExMGcgOiAxOworCQlwaS0+bnFzZXRzID0gaXNf eF8xMGdfcG9ydCgmcGktPmxpbmtfY2ZnKSA/IHExMGcgOiBxMWc7CiAJCXFpZHggKz0gcGktPm5x c2V0czsKIAl9Ci0jZW5kaWYgLyogIUNPTkZJR19DSEVMU0lPX1Q0X0RDQiAqLwogCiAJcy0+ZXRo cXNldHMgPSBxaWR4OwogCXMtPm1heF9ldGhxc2V0cyA9IHFpZHg7ICAgLyogTVNJLVggbWF5IGxv d2VyIGl0IGxhdGVyICovCkBAIC01NDQzLDcgKzU0NDgsNyBAQCBzdGF0aWMgaW50IGNmZ19xdWV1 ZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApCiAJCSAqIGNhcHBlZCBieSB0aGUgbnVtYmVyIG9mIGF2 YWlsYWJsZSBjb3Jlcy4KIAkJICovCiAJCW51bV91bGRzID0gYWRhcC0+bnVtX3VsZCArIGFkYXAt Pm51bV9vZmxkX3VsZDsKLQkJaSA9IG1pbl90KHUzMiwgTUFYX09GTERfUVNFVFMsIG51bV9vbmxp bmVfY3B1cygpKTsKKwkJaSA9IG1pbl90KHUzMiwgTUFYX09GTERfUVNFVFMsIG5jcHVzKTsKIAkJ YXZhaWxfdWxkX3FzZXRzID0gcm91bmR1cChpLCBhZGFwLT5wYXJhbXMubnBvcnRzKTsKIAkJaWYg KGF2YWlsX3FzZXRzIDwgbnVtX3VsZHMgKiBhZGFwLT5wYXJhbXMubnBvcnRzKSB7CiAJCQlhZGFw LT5wYXJhbXMub2ZmbG9hZCA9IDA7Ci0tIAoyLjIwLjEKCgpGcm9tIDE5MjM1Yjk1ZDAwZjg0YjQy NWI0MGNlOWZhODZlMGNmY2FkN2M1ZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU2F0LCA3IE1hciAyMDIwIDIy OjA1OjE0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwMy82Nl0gZ3JlOiBmaXggdW5pbml0LXZhbHVl IGluIF9faXB0dW5uZWxfcHVsbF9oZWFkZXIKClsgVXBzdHJlYW0gY29tbWl0IDE3YzI1Y2FmZDRk M2U3NGM4M2RjZTU2YjE1ODg0M2IxOWM0MGI0MTQgXQoKc3l6Ym90IGZvdW5kIGFuIGludGVyZXN0 aW5nIGNhc2Ugb2YgdGhlIGtlcm5lbCByZWFkaW5nCmFuIHVuaW5pdC12YWx1ZSBbMV0KClByb2Js ZW0gaXMgaW4gdGhlIGhhbmRsaW5nIG9mIEVUSF9QX1dDQ1AgaW4gZ3JlX3BhcnNlX2hlYWRlcigp CgpXZSBsb29rIGF0IHRoZSBieXRlIGZvbGxvd2luZyBHUkUgb3B0aW9ucyB0byBldmVudHVhbGx5 IGRlY2lkZQppZiB0aGUgb3B0aW9ucyBhcmUgZm91ciBieXRlcyBsb25nZXIuCgpVc2Ugc2tiX2hl YWRlcl9wb2ludGVyKCkgdG8gbm90IHB1bGwgYnl0ZXMgaWYgd2UgZm91bmQKdGhhdCBubyBtb3Jl IGJ5dGVzIHdlcmUgbmVlZGVkLgoKQWxsIGNhbGxlcnMgb2YgZ3JlX3BhcnNlX2hlYWRlcigpIGFy ZSBwcm9wZXJseSB1c2luZyBwc2tiX21heV9wdWxsKCkKYW55d2F5IGJlZm9yZSBwcm9jZWVkaW5n IHRvIG5leHQgaGVhZGVyLgoKWzFdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBwc2tiX21h eV9wdWxsIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MjMwMyBbaW5saW5lXQpCVUc6IEtNU0FOOiB1 bmluaXQtdmFsdWUgaW4gX19pcHR1bm5lbF9wdWxsX2hlYWRlcisweDMwYy8weGJkMCBuZXQvaXB2 NC9pcF90dW5uZWxfY29yZS5jOjk0CkNQVTogMSBQSUQ6IDExNzg0IENvbW06IHN5ei1leGVjdXRv cjk0MCBOb3QgdGFpbnRlZCA1LjYuMC1yYzItc3l6a2FsbGVyICMwCkhhcmR3YXJlIG5hbWU6IEdv b2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdv b2dsZSAwMS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2su Yzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweDFjOS8weDIyMCBsaWIvZHVtcF9zdGFjay5jOjEx OAoga21zYW5fcmVwb3J0KzB4ZjcvMHgxZTAgbW0va21zYW4va21zYW5fcmVwb3J0LmM6MTE4CiBf X21zYW5fd2FybmluZysweDU4LzB4YTAgbW0va21zYW4va21zYW5faW5zdHIuYzoyMTUKIHBza2Jf bWF5X3B1bGwgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoyMzAzIFtpbmxpbmVdCiBfX2lwdHVubmVs X3B1bGxfaGVhZGVyKzB4MzBjLzB4YmQwIG5ldC9pcHY0L2lwX3R1bm5lbF9jb3JlLmM6OTQKIGlw dHVubmVsX3B1bGxfaGVhZGVyIGluY2x1ZGUvbmV0L2lwX3R1bm5lbHMuaDo0MTEgW2lubGluZV0K IGdyZV9yY3YrMHgxNWUvMHgxOWMwIG5ldC9pcHY2L2lwNl9ncmUuYzo2MDYKIGlwNl9wcm90b2Nv bF9kZWxpdmVyX3JjdSsweDE4MWIvMHgyMmMwIG5ldC9pcHY2L2lwNl9pbnB1dC5jOjQzMgogaXA2 X2lucHV0X2ZpbmlzaCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo0NzMgW2lubGluZV0KIE5GX0hPT0sg aW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDcgW2lubGluZV0KIGlwNl9pbnB1dCBuZXQvaXB2 Ni9pcDZfaW5wdXQuYzo0ODIgW2lubGluZV0KIGlwNl9tY19pbnB1dCsweGRmMi8weDE0NjAgbmV0 L2lwdjYvaXA2X2lucHV0LmM6NTc2CiBkc3RfaW5wdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDQyIFtp bmxpbmVdCiBpcDZfcmN2X2ZpbmlzaCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo3NiBbaW5saW5lXQog TkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjMwNyBbaW5saW5lXQogaXB2Nl9yY3Yr MHg2ODMvMHg3MTAgbmV0L2lwdjYvaXA2X2lucHV0LmM6MzA2CiBfX25ldGlmX3JlY2VpdmVfc2ti X29uZV9jb3JlIG5ldC9jb3JlL2Rldi5jOjUxOTggW2lubGluZV0KIF9fbmV0aWZfcmVjZWl2ZV9z a2IgbmV0L2NvcmUvZGV2LmM6NTMxMiBbaW5saW5lXQogbmV0aWZfcmVjZWl2ZV9za2JfaW50ZXJu YWwgbmV0L2NvcmUvZGV2LmM6NTQwMiBbaW5saW5lXQogbmV0aWZfcmVjZWl2ZV9za2IrMHg2NmIv MHhmMjAgbmV0L2NvcmUvZGV2LmM6NTQ2MQogdHVuX3J4X2JhdGNoZWQgaW5jbHVkZS9saW51eC9z a2J1ZmYuaDo0MzIxIFtpbmxpbmVdCiB0dW5fZ2V0X3VzZXIrMHg2YWVmLzB4NmY2MCBkcml2ZXJz L25ldC90dW4uYzoxOTk3CiB0dW5fY2hyX3dyaXRlX2l0ZXIrMHgxZjIvMHgzNjAgZHJpdmVycy9u ZXQvdHVuLmM6MjAyNgogY2FsbF93cml0ZV9pdGVyIGluY2x1ZGUvbGludXgvZnMuaDoxOTAxIFtp bmxpbmVdCiBuZXdfc3luY193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NDgzIFtpbmxpbmVdCiBfX3Zm c193cml0ZSsweGE1YS8weGNhMCBmcy9yZWFkX3dyaXRlLmM6NDk2CiB2ZnNfd3JpdGUrMHg0NGEv MHg4ZjAgZnMvcmVhZF93cml0ZS5jOjU1OAoga3N5c193cml0ZSsweDI2Ny8weDQ1MCBmcy9yZWFk X3dyaXRlLmM6NjExCiBfX2RvX3N5c193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NjIzIFtpbmxpbmVd CiBfX3NlX3N5c193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NjIwIFtpbmxpbmVdCiBfX2lhMzJfc3lz X3dyaXRlKzB4ZGIvMHgxMjAgZnMvcmVhZF93cml0ZS5jOjYyMAogZG9fc3lzY2FsbF8zMl9pcnFz X29uIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjMzOSBbaW5saW5lXQogZG9fZmFzdF9zeXNjYWxs XzMyKzB4M2M3LzB4NmUwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjQxMAogZW50cnlfU1lTRU5U RVJfY29tcGF0KzB4NjgvMHg3NyBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NF9jb21wYXQuUzoxMzkK UklQOiAwMDIzOjB4ZjdmNjJkOTkKQ29kZTogOTAgZTggMGIgMDAgMDAgMDAgZjMgOTAgMGYgYWUg ZTggZWIgZjkgOGQgNzQgMjYgMDAgODkgM2MgMjQgYzMgOTAgOTAgOTAgOTAgOTAgOTAgOTAgOTAg OTAgOTAgOTAgOTAgNTEgNTIgNTUgODkgZTUgMGYgMzQgY2QgODAgPDVkPiA1YSA1OSBjMyA5MCA5 MCA5MCA5MCBlYiAwZCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MApSU1A6IDAw MmI6MDAwMDAwMDBmZmZlZGIyYyBFRkxBR1M6IDAwMDAwMjE3IE9SSUdfUkFYOiAwMDAwMDAwMDAw MDAwMDA0ClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAwMDMgUkNYOiAw MDAwMDAwMDIwMDAyNTgwClJEWDogMDAwMDAwMDAwMDAwMGZjYSBSU0k6IDAwMDAwMDAwMDAwMDAw MzYgUkRJOiAwMDAwMDAwMDAwMDAwMDA0ClJCUDogMDAwMDAwMDAwMDAwODkxNCBSMDg6IDAwMDAw MDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAwMDAwMDAwMCBS MTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClIxMzogMDAwMDAwMDAw MDAwMDAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwCgpVbmlu aXQgd2FzIGNyZWF0ZWQgYXQ6CiBrbXNhbl9zYXZlX3N0YWNrX3dpdGhfZmxhZ3MgbW0va21zYW4v a21zYW4uYzoxNDQgW2lubGluZV0KIGttc2FuX2ludGVybmFsX3BvaXNvbl9zaGFkb3crMHg2Ni8w eGQwIG1tL2ttc2FuL2ttc2FuLmM6MTI3CiBrbXNhbl9zbGFiX2FsbG9jKzB4OGEvMHhlMCBtbS9r bXNhbi9rbXNhbl9ob29rcy5jOjgyCiBzbGFiX2FsbG9jX25vZGUgbW0vc2x1Yi5jOjI3OTMgW2lu bGluZV0KIF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweGI0MC8weDEyMDAgbW0vc2x1Yi5j OjQ0MDEKIF9fa21hbGxvY19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjE0MiBbaW5saW5lXQog X19hbGxvY19za2IrMHgyZmQvMHhhYzAgbmV0L2NvcmUvc2tidWZmLmM6MjEwCiBhbGxvY19za2Ig aW5jbHVkZS9saW51eC9za2J1ZmYuaDoxMDUxIFtpbmxpbmVdCiBhbGxvY19za2Jfd2l0aF9mcmFn cysweDE4Yy8weGE3MCBuZXQvY29yZS9za2J1ZmYuYzo1NzY2CiBzb2NrX2FsbG9jX3NlbmRfcHNr YisweGFkYS8weGM2MCBuZXQvY29yZS9zb2NrLmM6MjI0MgogdHVuX2FsbG9jX3NrYiBkcml2ZXJz L25ldC90dW4uYzoxNTI5IFtpbmxpbmVdCiB0dW5fZ2V0X3VzZXIrMHgxMGFlLzB4NmY2MCBkcml2 ZXJzL25ldC90dW4uYzoxODQzCiB0dW5fY2hyX3dyaXRlX2l0ZXIrMHgxZjIvMHgzNjAgZHJpdmVy cy9uZXQvdHVuLmM6MjAyNgogY2FsbF93cml0ZV9pdGVyIGluY2x1ZGUvbGludXgvZnMuaDoxOTAx IFtpbmxpbmVdCiBuZXdfc3luY193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NDgzIFtpbmxpbmVdCiBf X3Zmc193cml0ZSsweGE1YS8weGNhMCBmcy9yZWFkX3dyaXRlLmM6NDk2CiB2ZnNfd3JpdGUrMHg0 NGEvMHg4ZjAgZnMvcmVhZF93cml0ZS5jOjU1OAoga3N5c193cml0ZSsweDI2Ny8weDQ1MCBmcy9y ZWFkX3dyaXRlLmM6NjExCiBfX2RvX3N5c193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NjIzIFtpbmxp bmVdCiBfX3NlX3N5c193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NjIwIFtpbmxpbmVdCiBfX2lhMzJf c3lzX3dyaXRlKzB4ZGIvMHgxMjAgZnMvcmVhZF93cml0ZS5jOjYyMAogZG9fc3lzY2FsbF8zMl9p cnFzX29uIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjMzOSBbaW5saW5lXQogZG9fZmFzdF9zeXNj YWxsXzMyKzB4M2M3LzB4NmUwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjQxMAogZW50cnlfU1lT RU5URVJfY29tcGF0KzB4NjgvMHg3NyBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NF9jb21wYXQuUzox MzkKCkZpeGVzOiA5NWY1YzY0YzNjMTMgKCJncmU6IE1vdmUgdXRpbGl0eSBmdW5jdGlvbnMgdG8g Y29tbW9uIGhlYWRlcnMiKQpGaXhlczogYzU0NDE5MzIxNDU1ICgiR1JFOiBSZWZhY3RvciBHUkUg dHVubmVsaW5nIGNvZGUuIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIG5ldC9pcHY0L2dyZV9kZW11eC5jIHwgMTIgKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdl ZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2 NC9ncmVfZGVtdXguYyBiL25ldC9pcHY0L2dyZV9kZW11eC5jCmluZGV4IDVmZDZlOGVkMDJiNS4u NjZmZGJmZTU0NDdjIDEwMDY0NAotLS0gYS9uZXQvaXB2NC9ncmVfZGVtdXguYworKysgYi9uZXQv aXB2NC9ncmVfZGVtdXguYwpAQCAtNTYsNyArNTYsOSBAQCBpbnQgZ3JlX2RlbF9wcm90b2NvbChj b25zdCBzdHJ1Y3QgZ3JlX3Byb3RvY29sICpwcm90bywgdTggdmVyc2lvbikKIH0KIEVYUE9SVF9T WU1CT0xfR1BMKGdyZV9kZWxfcHJvdG9jb2wpOwogCi0vKiBGaWxscyBpbiB0cGkgYW5kIHJldHVy bnMgaGVhZGVyIGxlbmd0aCB0byBiZSBwdWxsZWQuICovCisvKiBGaWxscyBpbiB0cGkgYW5kIHJl dHVybnMgaGVhZGVyIGxlbmd0aCB0byBiZSBwdWxsZWQuCisgKiBOb3RlIHRoYXQgY2FsbGVyIG11 c3QgdXNlIHBza2JfbWF5X3B1bGwoKSBiZWZvcmUgcHVsbGluZyBHUkUgaGVhZGVyLgorICovCiBp bnQgZ3JlX3BhcnNlX2hlYWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgdG5sX3B0a19p bmZvICp0cGksCiAJCSAgICAgYm9vbCAqY3N1bV9lcnIsIF9fYmUxNiBwcm90bywgaW50IG5ocykK IHsKQEAgLTExMCw4ICsxMTIsMTQgQEAgaW50IGdyZV9wYXJzZV9oZWFkZXIoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IHRubF9wdGtfaW5mbyAqdHBpLAogCSAqIC0gV2hlbiBkZWFsaW5nIHdp dGggV0NDUHYyLCBTa2lwIGV4dHJhIDQgYnl0ZXMgaW4gR1JFIGhlYWRlcgogCSAqLwogCWlmIChn cmVoLT5mbGFncyA9PSAwICYmIHRwaS0+cHJvdG8gPT0gaHRvbnMoRVRIX1BfV0NDUCkpIHsKKwkJ dTggX3ZhbCwgKnZhbDsKKworCQl2YWwgPSBza2JfaGVhZGVyX3BvaW50ZXIoc2tiLCBuaHMgKyBo ZHJfbGVuLAorCQkJCQkgc2l6ZW9mKF92YWwpLCAmX3ZhbCk7CisJCWlmICghdmFsKQorCQkJcmV0 dXJuIC1FSU5WQUw7CiAJCXRwaS0+cHJvdG8gPSBwcm90bzsKLQkJaWYgKCgqKHU4ICopb3B0aW9u cyAmIDB4RjApICE9IDB4NDApCisJCWlmICgoKnZhbCAmIDB4RjApICE9IDB4NDApCiAJCQloZHJf bGVuICs9IDQ7CiAJfQogCXRwaS0+aGRyX2xlbiA9IGhkcl9sZW47Ci0tIAoyLjIwLjEKCgpGcm9t IDkyMmZkOTc1MjBkZDI3NDNlMWFhOGUzYWExYTUzY2U2Y2JhZGI5ZjEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERtaXRyeSBZYWt1bmluIDx6ZWlsQHlhbmRleC10ZWFtLnJ1PgpEYXRl OiBUaHUsIDUgTWFyIDIwMjAgMTU6MzM6MTIgKzAzMDAKU3ViamVjdDogW1BBVENIIDA0LzY2XSBp bmV0X2RpYWc6IHJldHVybiBjbGFzc2lkIGZvciBhbGwgc29ja2V0IHR5cGVzCgpbIFVwc3RyZWFt IGNvbW1pdCA4M2Y3M2M1YmI3YjlhOTEzNTE3M2YwYmEyYjFhYTAwYzA2NjY0ZmY5IF0KCkluIGNv bW1pdCAxZWMxN2RiZDkwZjggKCJpbmV0X2RpYWc6IGZpeCByZXBvcnRpbmcgY2dyb3VwIGNsYXNz aWQgYW5kCmZhbGxiYWNrIHRvIHByaW9yaXR5IikgY3JvdXAgY2xhc3NpZCByZXBvcnRpbmcgd2Fz IGZpeGVkLiBCdXQgdGhpcyB3b3Jrcwpvbmx5IGZvciBUQ1Agc29ja2V0cyBiZWNhdXNlIGZvciBv dGhlciBzb2NrZXQgdHlwZXMgaWNzayBwYXJhbWV0ZXIgY2FuCmJlIE5VTEwgYW5kIGNsYXNzaWQg Y29kZSBwYXRoIGlzIHNraXBwZWQuIFRoaXMgY2hhbmdlIG1vdmVzIGNsYXNzaWQKaGFuZGxpbmcg dG8gaW5ldF9kaWFnX21zZ19hdHRyc19maWxsKCkgZnVuY3Rpb24uCgpBbHNvIGluZXRfZGlhZ19t c2dfYXR0cnNfc2l6ZSgpIGhlbHBlciB3YXMgYWRkZWQgYW5kIGFkZGVuZHMgaW4Kbmxtc2dfbmV3 KCkgd2VyZSByZW9yZGVyZWQgdG8gc2F2ZSBvcmRlciBmcm9tIGluZXRfc2tfZGlhZ19maWxsKCku CgpGaXhlczogMWVjMTdkYmQ5MGY4ICgiaW5ldF9kaWFnOiBmaXggcmVwb3J0aW5nIGNncm91cCBj bGFzc2lkIGFuZCBmYWxsYmFjayB0byBwcmlvcml0eSIpClNpZ25lZC1vZmYtYnk6IERtaXRyeSBZ YWt1bmluIDx6ZWlsQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogS29uc3RhbnRpbiBLaGxl Ym5pa292IDxraGxlYm5pa292QHlhbmRleC10ZWFtLnJ1PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9pbmV0X2Rp YWcuaCB8IDE4ICsrKysrKysrKystLS0tLS0KIG5ldC9pcHY0L2luZXRfZGlhZy5jICAgICAgfCA0 NCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIG5ldC9pcHY0L3Jhd19k aWFnLmMgICAgICAgfCAgNSArKystLQogbmV0L2lwdjQvdWRwX2RpYWcuYyAgICAgICB8ICA1ICsr Ky0tCiBuZXQvc2N0cC9kaWFnLmMgICAgICAgICAgIHwgIDggKystLS0tLQogNSBmaWxlcyBjaGFu Z2VkLCA0MCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L2luZXRfZGlhZy5oIGIvaW5jbHVkZS9saW51eC9pbmV0X2RpYWcuaAppbmRleCAz OWZhYWFmODQzZTEuLmM5MWNmMmRlZTEyYSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9pbmV0 X2RpYWcuaAorKysgYi9pbmNsdWRlL2xpbnV4L2luZXRfZGlhZy5oCkBAIC0yLDE1ICsyLDEwIEBA CiAjaWZuZGVmIF9JTkVUX0RJQUdfSF8KICNkZWZpbmUgX0lORVRfRElBR19IXyAxCiAKKyNpbmNs dWRlIDxuZXQvbmV0bGluay5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvaW5ldF9kaWFnLmg+CiAK LXN0cnVjdCBuZXQ7Ci1zdHJ1Y3Qgc29jazsKIHN0cnVjdCBpbmV0X2hhc2hpbmZvOwotc3RydWN0 IG5sYXR0cjsKLXN0cnVjdCBubG1zZ2hkcjsKLXN0cnVjdCBza19idWZmOwotc3RydWN0IG5ldGxp bmtfY2FsbGJhY2s7CiAKIHN0cnVjdCBpbmV0X2RpYWdfaGFuZGxlciB7CiAJdm9pZAkJKCpkdW1w KShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLApAQCAtNjIsNiArNTcsMTcgQEAgaW50IGluZXRfZGlhZ19i Y19zayhjb25zdCBzdHJ1Y3QgbmxhdHRyICpfYmMsIHN0cnVjdCBzb2NrICpzayk7CiAKIHZvaWQg aW5ldF9kaWFnX21zZ19jb21tb25fZmlsbChzdHJ1Y3QgaW5ldF9kaWFnX21zZyAqciwgc3RydWN0 IHNvY2sgKnNrKTsKIAorc3RhdGljIGlubGluZSBzaXplX3QgaW5ldF9kaWFnX21zZ19hdHRyc19z aXplKHZvaWQpCit7CisJcmV0dXJuCSAgbmxhX3RvdGFsX3NpemUoMSkgIC8qIElORVRfRElBR19T SFVURE9XTiAqLworCQkrIG5sYV90b3RhbF9zaXplKDEpICAvKiBJTkVUX0RJQUdfVE9TICovCisj aWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKKwkJKyBubGFfdG90YWxfc2l6ZSgxKSAgLyogSU5F VF9ESUFHX1RDTEFTUyAqLworCQkrIG5sYV90b3RhbF9zaXplKDEpICAvKiBJTkVUX0RJQUdfU0tW Nk9OTFkgKi8KKyNlbmRpZgorCQkrIG5sYV90b3RhbF9zaXplKDQpICAvKiBJTkVUX0RJQUdfTUFS SyAqLworCQkrIG5sYV90b3RhbF9zaXplKDQpOyAvKiBJTkVUX0RJQUdfQ0xBU1NfSUQgKi8KK30K IGludCBpbmV0X2RpYWdfbXNnX2F0dHJzX2ZpbGwoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiLAogCQkJICAgICBzdHJ1Y3QgaW5ldF9kaWFnX21zZyAqciwgaW50IGV4dCwKIAkJ CSAgICAgc3RydWN0IHVzZXJfbmFtZXNwYWNlICp1c2VyX25zLCBib29sIG5ldF9hZG1pbik7CmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9pbmV0X2RpYWcuYyBiL25ldC9pcHY0L2luZXRfZGlhZy5jCmlu ZGV4IGYxMWU5OTdlNTE3Yi4uOGM4Mzc3NTY4YTc4IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pbmV0 X2RpYWcuYworKysgYi9uZXQvaXB2NC9pbmV0X2RpYWcuYwpAQCAtMTAwLDEzICsxMDAsOSBAQCBz dGF0aWMgc2l6ZV90IGluZXRfc2tfYXR0cl9zaXplKHN0cnVjdCBzb2NrICpzaywKIAkJYXV4ID0g aGFuZGxlci0+aWRpYWdfZ2V0X2F1eF9zaXplKHNrLCBuZXRfYWRtaW4pOwogCiAJcmV0dXJuCSAg bmxhX3RvdGFsX3NpemUoc2l6ZW9mKHN0cnVjdCB0Y3BfaW5mbykpCi0JCSsgbmxhX3RvdGFsX3Np emUoMSkgLyogSU5FVF9ESUFHX1NIVVRET1dOICovCi0JCSsgbmxhX3RvdGFsX3NpemUoMSkgLyog SU5FVF9ESUFHX1RPUyAqLwotCQkrIG5sYV90b3RhbF9zaXplKDEpIC8qIElORVRfRElBR19UQ0xB U1MgKi8KLQkJKyBubGFfdG90YWxfc2l6ZSg0KSAvKiBJTkVUX0RJQUdfTUFSSyAqLwotCQkrIG5s YV90b3RhbF9zaXplKDQpIC8qIElORVRfRElBR19DTEFTU19JRCAqLwotCQkrIG5sYV90b3RhbF9z aXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21lbWluZm8pKQogCQkrIG5sYV90b3RhbF9zaXpl KHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21zZykpCisJCSsgaW5ldF9kaWFnX21zZ19hdHRyc19z aXplKCkKKwkJKyBubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0IGluZXRfZGlhZ19tZW1pbmZv KSkKIAkJKyBubGFfdG90YWxfc2l6ZShTS19NRU1JTkZPX1ZBUlMgKiBzaXplb2YodTMyKSkKIAkJ KyBubGFfdG90YWxfc2l6ZShUQ1BfQ0FfTkFNRV9NQVgpCiAJCSsgbmxhX3RvdGFsX3NpemUoc2l6 ZW9mKHN0cnVjdCB0Y3B2ZWdhc19pbmZvKSkKQEAgLTE0Nyw2ICsxNDMsMjQgQEAgaW50IGluZXRf ZGlhZ19tc2dfYXR0cnNfZmlsbChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2Is CiAJaWYgKG5ldF9hZG1pbiAmJiBubGFfcHV0X3UzMihza2IsIElORVRfRElBR19NQVJLLCBzay0+ c2tfbWFyaykpCiAJCWdvdG8gZXJyb3V0OwogCisJaWYgKGV4dCAmICgxIDw8IChJTkVUX0RJQUdf Q0xBU1NfSUQgLSAxKSkgfHwKKwkgICAgZXh0ICYgKDEgPDwgKElORVRfRElBR19UQ0xBU1MgLSAx KSkpIHsKKwkJdTMyIGNsYXNzaWQgPSAwOworCisjaWZkZWYgQ09ORklHX1NPQ0tfQ0dST1VQX0RB VEEKKwkJY2xhc3NpZCA9IHNvY2tfY2dyb3VwX2NsYXNzaWQoJnNrLT5za19jZ3JwX2RhdGEpOwor I2VuZGlmCisJCS8qIEZhbGxiYWNrIHRvIHNvY2tldCBwcmlvcml0eSBpZiBjbGFzcyBpZCBpc24n dCBzZXQuCisJCSAqIENsYXNzZnVsIHFkaXNjcyB1c2UgaXQgYXMgZGlyZWN0IHJlZmVyZW5jZSB0 byBjbGFzcy4KKwkJICogRm9yIGNncm91cDIgY2xhc3NpZCBpcyBhbHdheXMgemVyby4KKwkJICov CisJCWlmICghY2xhc3NpZCkKKwkJCWNsYXNzaWQgPSBzay0+c2tfcHJpb3JpdHk7CisKKwkJaWYg KG5sYV9wdXRfdTMyKHNrYiwgSU5FVF9ESUFHX0NMQVNTX0lELCBjbGFzc2lkKSkKKwkJCWdvdG8g ZXJyb3V0OworCX0KKwogCXItPmlkaWFnX3VpZCA9IGZyb21fa3VpZF9tdW5nZWQodXNlcl9ucywg c29ja19pX3VpZChzaykpOwogCXItPmlkaWFnX2lub2RlID0gc29ja19pX2lubyhzayk7CiAKQEAg LTI4NCwyNCArMjk4LDYgQEAgaW50IGluZXRfc2tfZGlhZ19maWxsKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IGluZXRfY29ubmVjdGlvbl9zb2NrICppY3NrLAogCQkJZ290byBlcnJvdXQ7CiAJfQog Ci0JaWYgKGV4dCAmICgxIDw8IChJTkVUX0RJQUdfQ0xBU1NfSUQgLSAxKSkgfHwKLQkgICAgZXh0 ICYgKDEgPDwgKElORVRfRElBR19UQ0xBU1MgLSAxKSkpIHsKLQkJdTMyIGNsYXNzaWQgPSAwOwot Ci0jaWZkZWYgQ09ORklHX1NPQ0tfQ0dST1VQX0RBVEEKLQkJY2xhc3NpZCA9IHNvY2tfY2dyb3Vw X2NsYXNzaWQoJnNrLT5za19jZ3JwX2RhdGEpOwotI2VuZGlmCi0JCS8qIEZhbGxiYWNrIHRvIHNv Y2tldCBwcmlvcml0eSBpZiBjbGFzcyBpZCBpc24ndCBzZXQuCi0JCSAqIENsYXNzZnVsIHFkaXNj cyB1c2UgaXQgYXMgZGlyZWN0IHJlZmVyZW5jZSB0byBjbGFzcy4KLQkJICogRm9yIGNncm91cDIg Y2xhc3NpZCBpcyBhbHdheXMgemVyby4KLQkJICovCi0JCWlmICghY2xhc3NpZCkKLQkJCWNsYXNz aWQgPSBzay0+c2tfcHJpb3JpdHk7Ci0KLQkJaWYgKG5sYV9wdXRfdTMyKHNrYiwgSU5FVF9ESUFH X0NMQVNTX0lELCBjbGFzc2lkKSkKLQkJCWdvdG8gZXJyb3V0OwotCX0KLQogb3V0OgogCW5sbXNn X2VuZChza2IsIG5saCk7CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yYXdfZGlh Zy5jIGIvbmV0L2lwdjQvcmF3X2RpYWcuYwppbmRleCBlMzU3MzZiOTkzMDAuLmE5M2U3ZDFlMTI1 MSAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvcmF3X2RpYWcuYworKysgYi9uZXQvaXB2NC9yYXdfZGlh Zy5jCkBAIC0xMDAsOCArMTAwLDkgQEAgc3RhdGljIGludCByYXdfZGlhZ19kdW1wX29uZShzdHJ1 Y3Qgc2tfYnVmZiAqaW5fc2tiLAogCWlmIChJU19FUlIoc2spKQogCQlyZXR1cm4gUFRSX0VSUihz ayk7CiAKLQlyZXAgPSBubG1zZ19uZXcoc2l6ZW9mKHN0cnVjdCBpbmV0X2RpYWdfbXNnKSArCi0J CQlzaXplb2Yoc3RydWN0IGluZXRfZGlhZ19tZW1pbmZvKSArIDY0LAorCXJlcCA9IG5sbXNnX25l dyhubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0IGluZXRfZGlhZ19tc2cpKSArCisJCQlpbmV0 X2RpYWdfbXNnX2F0dHJzX3NpemUoKSArCisJCQlubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0 IGluZXRfZGlhZ19tZW1pbmZvKSkgKyA2NCwKIAkJCUdGUF9LRVJORUwpOwogCWlmICghcmVwKSB7 CiAJCXNvY2tfcHV0KHNrKTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3VkcF9kaWFnLmMgYi9uZXQv aXB2NC91ZHBfZGlhZy5jCmluZGV4IDkxMDU1NWE0ZDlmZS4uZGNjZDIyODZiYzI4IDEwMDY0NAot LS0gYS9uZXQvaXB2NC91ZHBfZGlhZy5jCisrKyBiL25ldC9pcHY0L3VkcF9kaWFnLmMKQEAgLTY0 LDggKzY0LDkgQEAgc3RhdGljIGludCB1ZHBfZHVtcF9vbmUoc3RydWN0IHVkcF90YWJsZSAqdGJs LCBzdHJ1Y3Qgc2tfYnVmZiAqaW5fc2tiLAogCQlnb3RvIG91dDsKIAogCWVyciA9IC1FTk9NRU07 Ci0JcmVwID0gbmxtc2dfbmV3KHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21zZykgKwotCQkJc2l6 ZW9mKHN0cnVjdCBpbmV0X2RpYWdfbWVtaW5mbykgKyA2NCwKKwlyZXAgPSBubG1zZ19uZXcobmxh X3RvdGFsX3NpemUoc2l6ZW9mKHN0cnVjdCBpbmV0X2RpYWdfbXNnKSkgKworCQkJaW5ldF9kaWFn X21zZ19hdHRyc19zaXplKCkgKworCQkJbmxhX3RvdGFsX3NpemUoc2l6ZW9mKHN0cnVjdCBpbmV0 X2RpYWdfbWVtaW5mbykpICsgNjQsCiAJCQlHRlBfS0VSTkVMKTsKIAlpZiAoIXJlcCkKIAkJZ290 byBvdXQ7CmRpZmYgLS1naXQgYS9uZXQvc2N0cC9kaWFnLmMgYi9uZXQvc2N0cC9kaWFnLmMKaW5k ZXggOGExNTE0NmZhYWViLi4xMDY5ZDdhZjM2NzIgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL2RpYWcu YworKysgYi9uZXQvc2N0cC9kaWFnLmMKQEAgLTIzNywxNSArMjM3LDExIEBAIHN0YXRpYyBzaXpl X3QgaW5ldF9hc3NvY19hdHRyX3NpemUoc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MpCiAJ CWFkZHJjbnQrKzsKIAogCXJldHVybgkgIG5sYV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3Qgc2N0 cF9pbmZvKSkKLQkJKyBubGFfdG90YWxfc2l6ZSgxKSAvKiBJTkVUX0RJQUdfU0hVVERPV04gKi8K LQkJKyBubGFfdG90YWxfc2l6ZSgxKSAvKiBJTkVUX0RJQUdfVE9TICovCi0JCSsgbmxhX3RvdGFs X3NpemUoMSkgLyogSU5FVF9ESUFHX1RDTEFTUyAqLwotCQkrIG5sYV90b3RhbF9zaXplKDQpIC8q IElORVRfRElBR19NQVJLICovCi0JCSsgbmxhX3RvdGFsX3NpemUoNCkgLyogSU5FVF9ESUFHX0NM QVNTX0lEICovCiAJCSsgbmxhX3RvdGFsX3NpemUoYWRkcmxlbiAqIGFzb2MtPnBlZXIudHJhbnNw b3J0X2NvdW50KQogCQkrIG5sYV90b3RhbF9zaXplKGFkZHJsZW4gKiBhZGRyY250KQotCQkrIG5s YV90b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21lbWluZm8pKQogCQkrIG5sYV90 b3RhbF9zaXplKHNpemVvZihzdHJ1Y3QgaW5ldF9kaWFnX21zZykpCisJCSsgaW5ldF9kaWFnX21z Z19hdHRyc19zaXplKCkKKwkJKyBubGFfdG90YWxfc2l6ZShzaXplb2Yoc3RydWN0IGluZXRfZGlh Z19tZW1pbmZvKSkKIAkJKyA2NDsKIH0KIAotLSAKMi4yMC4xCgoKRnJvbSA1NTJmMTUxYjZlY2Yz MWM0ZjU3ZTczMWJkN2MwMjJkMTUzZmZlNjIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTAgTWFyIDIw MjAgMTU6Mjc6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIDA1LzY2XSBpcHY2L2FkZHJjb25mOiBj YWxsIGlwdjZfbWNfdXAoKSBmb3Igbm9uLUV0aGVybmV0CiBpbnRlcmZhY2UKTUlNRS1WZXJzaW9u OiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJh bnNmZXItRW5jb2Rpbmc6IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDYwMzgwNDg4ZTRlMGI5NWU5 ZTgyYWE2OGFhOTcwNWJhYTg2ZGU4NGMgXQoKUmFmYcWCIGZvdW5kIGFuIGlzc3VlIHRoYXQgZm9y IG5vbi1FdGhlcm5ldCBpbnRlcmZhY2UsIGlmIHdlIGRvd24gYW5kIHVwCmZyZXF1ZW50bHksIHRo ZSBtZW1vcnkgd2lsbCBiZSBjb25zdW1lZCBzbG93bHkuCgpUaGUgcmVhc29uIGlzIHdlIGFkZCBh bGxub2Rlcy9hbGxyb3V0ZXJzIGFkZHJlc3NlZCBpbiBtdWx0aWNhc3QgbGlzdCBpbgppcHY2X2Fk ZF9kZXYoKS4gV2hlbiBsaW5rIGRvd24sIHdlIGNhbGwgaXB2Nl9tY19kb3duKCksIHN0b3JlIGFs bCBtdWx0aWNhc3QKYWRkcmVzc2VzIHZpYSBtbGRfYWRkX2RlbHJlYygpLiBCdXQgd2hlbiBsaW5r IHVwLCB3ZSBkb24ndCBjYWxsIGlwdjZfbWNfdXAoKQpmb3Igbm9uLUV0aGVybmV0IGludGVyZmFj ZSB0byByZW1vdmUgdGhlIGFkZHJlc3Nlcy4gVGhpcyBtYWtlcyBpZGV2LT5tY190b21iCmdldHRp bmcgYmlnZ2VyIGFuZCBiaWdnZXIuIFRoZSBjYWxsIHN0YWNrIGxvb2tzIGxpa2U6CgphZGRyY29u Zl9ub3RpZnkoTkVUREVWX1JFR0lTVEVSKQoJaXB2Nl9hZGRfZGV2CgkJaXB2Nl9kZXZfbWNfaW5j KGZmMDE6OjEpCgkJaXB2Nl9kZXZfbWNfaW5jKGZmMDI6OjEpCgkJaXB2Nl9kZXZfbWNfaW5jKGZm MDI6OjIpCgphZGRyY29uZl9ub3RpZnkoTkVUREVWX1VQKQoJYWRkcmNvbmZfZGV2X2NvbmZpZwoJ CS8qIEFsYXMsIHdlIHN1cHBvcnQgb25seSBFdGhlcm5ldCBhdXRvY29uZmlndXJhdGlvbi4gKi8K CQlyZXR1cm47CgphZGRyY29uZl9ub3RpZnkoTkVUREVWX0RPV04pCglhZGRyY29uZl9pZmRvd24K CQlpcHY2X21jX2Rvd24KCQkJaWdtcDZfZ3JvdXBfZHJvcHBlZChmZjAyOjoyKQoJCQkJbWxkX2Fk ZF9kZWxyZWMoZmYwMjo6MikKCQkJaWdtcDZfZ3JvdXBfZHJvcHBlZChmZjAyOjoxKQoJCQlpZ21w Nl9ncm91cF9kcm9wcGVkKGZmMDE6OjEpCgpBZnRlciBpbnZlc3RpZ2F0aW5nLCBJIGNhbid0IGZv dW5kIGEgcnVsZSB0byBkaXNhYmxlIG11bHRpY2FzdCBvbgpub24tRXRoZXJuZXQgaW50ZXJmYWNl LiBJbiBSRkMyNDYwLCB0aGUgbGluayBjb3VsZCBiZSBFdGhlcm5ldCwgUFBQLCBBVE0sCnR1bm5l bHMsIGV0Yy4gSW4gSVB2NCwgaXQgZG9lc24ndCBjaGVjayB0aGUgZGV2IHR5cGUgd2hlbiBjYWxs cyBpcF9tY191cCgpCmluIGluZXRkZXZfZXZlbnQoKS4gRXZlbiBmb3IgSVB2Niwgd2UgZG9uJ3Qg Y2hlY2sgdGhlIGRldiB0eXBlIGFuZCBjYWxsCmlwdjZfYWRkX2RldigpLCBpcHY2X2Rldl9tY19p bmMoKSBhZnRlciByZWdpc3RlciBkZXZpY2UuCgpTbyBJIHRoaW5rIGl0J3MgT0sgdG8gZml4IHRo aXMgbWVtb3J5IGNvbnN1bWVyIGJ5IGNhbGxpbmcgaXB2Nl9tY191cCgpIGZvcgpub24tRXRoZXJu ZXQgaW50ZXJmYWNlLgoKdjI6IEFsc28gY2hlY2sgSUZGX01VTFRJQ0FTVCBmbGFnIHRvIG1ha2Ug c3VyZSB0aGUgaW50ZXJmYWNlIHN1cHBvcnRzCiAgICBtdWx0aWNhc3QKClJlcG9ydGVkLWJ5OiBS YWZhxYIgTWnFgmVja2kgPHphamVjNUBnbWFpbC5jb20+ClRlc3RlZC1ieTogUmFmYcWCIE1pxYJl Y2tpIDx6YWplYzVAZ21haWwuY29tPgpGaXhlczogNzQyMzVhMjVjNjczICgiW0lQVjZdIGFkZHJj b25mOiBGaXggSVB2NiBvbiB0dW50YXAgdHVubmVscyIpCkZpeGVzOiAxNjY2ZDQ5ZTFkNDEgKCJt bGQ6IGRvIG5vdCByZW1vdmUgbWxkIHNvdWNlIGxpc3QgaW5mbyB3aGVuIHNldCBsaW5rIGRvd24i KQpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2Ni9hZGRyY29uZi5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvYWRkcmNvbmYuYyBiL25ldC9pcHY2L2FkZHJjb25mLmMK aW5kZXggY2I0OTNlMTU5NTljLi40OTM2N2VjOGEwOGQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2Fk ZHJjb25mLmMKKysrIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwpAQCAtMzM0NSw2ICszMzQ1LDEwIEBA IHN0YXRpYyB2b2lkIGFkZHJjb25mX2Rldl9jb25maWcoc3RydWN0IG5ldF9kZXZpY2UgKmRldikK IAkgICAgKGRldi0+dHlwZSAhPSBBUlBIUkRfTk9ORSkgJiYKIAkgICAgKGRldi0+dHlwZSAhPSBB UlBIUkRfUkFXSVApKSB7CiAJCS8qIEFsYXMsIHdlIHN1cHBvcnQgb25seSBFdGhlcm5ldCBhdXRv Y29uZmlndXJhdGlvbi4gKi8KKwkJaWRldiA9IF9faW42X2Rldl9nZXQoZGV2KTsKKwkJaWYgKCFJ U19FUlJfT1JfTlVMTChpZGV2KSAmJiBkZXYtPmZsYWdzICYgSUZGX1VQICYmCisJCSAgICBkZXYt PmZsYWdzICYgSUZGX01VTFRJQ0FTVCkKKwkJCWlwdjZfbWNfdXAoaWRldik7CiAJCXJldHVybjsK IAl9CiAKLS0gCjIuMjAuMQoKCkZyb20gMTNiYmIzYjQ1M2E0ZjYwZWJmYmMwZjQyMTcwNGU0NjNl YmRjYTg5NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWFoZXNoIEJhbmRld2FyIDxt YWhlc2hiQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgOSBNYXIgMjAyMCAxNTo1NzowMiAtMDcwMApT dWJqZWN0OiBbUEFUQ0ggMDYvNjZdIGlwdmxhbjogYWRkIGNvbmRfcmVzY2hlZF9yY3UoKSB3aGls ZSBwcm9jZXNzaW5nCiBtdXRpY2FzdCBiYWNrbG9nCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCBlMThiMzUzZjEwMmUzNzE1ODBmM2YwMWRkNDc1Njdh MjVhY2MzYzFkIF0KCklmIHRoZXJlIGFyZSBzdWJzdGFudGlhbCBudW1iZXIgb2Ygc2xhdmVzIGNy ZWF0ZWQgYXMgc2ltdWxhdGVkIGJ5ClN5emJvdCwgdGhlIGJhY2tsb2cgcHJvY2Vzc2luZyBjb3Vs ZCB0YWtlIG11Y2ggbG9uZ2VyIGFuZCByZXN1bHQKaW50byB0aGUgaXNzdWUgZm91bmQgaW4gdGhl IFN5emJvdCByZXBvcnQuCgpJTkZPOiByY3Vfc2NoZWQgZGV0ZWN0ZWQgc3RhbGxzIG9uIENQVXMv dGFza3M6CiAgICAgICAgKGRldGVjdGVkIGJ5IDEsIHQ9MTA1MDIgamlmZmllcywgZz01MDQ5LCBj PTUwNDgsIHE9NzUyKQpBbGwgUVNlcyBzZWVuLCBsYXN0IHJjdV9zY2hlZCBrdGhyZWFkIGFjdGl2 aXR5IDEwNTAyICg0Mjk0OTY1NTYzLTQyOTQ5NTUwNjEpLCBqaWZmaWVzX3RpbGxfbmV4dF9mcXM9 MSwgcm9vdCAtPnFzbWFzayAweDAKc3l6LWV4ZWN1dG9yLjEgIFIgIHJ1bm5pbmcgdGFzayBvbiBj cHUgICAxICAxMDk4NCAxMTIxMCAgIDM4NjYgMHgzMDAyMDAwOCAxNzkwMzQ0OTEyNzAKQ2FsbCBU cmFjZToKIDxJUlE+CiBbPGZmZmZmZmZmODE0OTcxNjM+XSBfc2NoZWRfc2hvd190YXNrIGtlcm5l bC9zY2hlZC9jb3JlLmM6ODA2MyBbaW5saW5lXQogWzxmZmZmZmZmZjgxNDk3MTYzPl0gX3NjaGVk X3Nob3dfdGFzay5jb2xkKzB4MmZkLzB4MzkyIGtlcm5lbC9zY2hlZC9jb3JlLmM6ODAzMAogWzxm ZmZmZmZmZjgxNDZhOTFiPl0gc2NoZWRfc2hvd190YXNrKzB4Yi8weDEwIGtlcm5lbC9zY2hlZC9j b3JlLmM6ODA3MwogWzxmZmZmZmZmZjgxNWM5MzFiPl0gcHJpbnRfb3RoZXJfY3B1X3N0YWxsIGtl cm5lbC9yY3UvdHJlZS5jOjE1NzcgW2lubGluZV0KIFs8ZmZmZmZmZmY4MTVjOTMxYj5dIGNoZWNr X2NwdV9zdGFsbCBrZXJuZWwvcmN1L3RyZWUuYzoxNjk1IFtpbmxpbmVdCiBbPGZmZmZmZmZmODE1 YzkzMWI+XSBfX3JjdV9wZW5kaW5nIGtlcm5lbC9yY3UvdHJlZS5jOjM0NzggW2lubGluZV0KIFs8 ZmZmZmZmZmY4MTVjOTMxYj5dIHJjdV9wZW5kaW5nIGtlcm5lbC9yY3UvdHJlZS5jOjM1NDAgW2lu bGluZV0KIFs8ZmZmZmZmZmY4MTVjOTMxYj5dIHJjdV9jaGVja19jYWxsYmFja3MuY29sZCsweGJi NC8weGMyOSBrZXJuZWwvcmN1L3RyZWUuYzoyODc2CiBbPGZmZmZmZmZmODE1ZTM5NjI+XSB1cGRh dGVfcHJvY2Vzc190aW1lcysweDMyLzB4ODAga2VybmVsL3RpbWUvdGltZXIuYzoxNjM1CiBbPGZm ZmZmZmZmODE2MTY0ZjA+XSB0aWNrX3NjaGVkX2hhbmRsZSsweGEwLzB4MTgwIGtlcm5lbC90aW1l L3RpY2stc2NoZWQuYzoxNjEKIFs8ZmZmZmZmZmY4MTYxNmFlND5dIHRpY2tfc2NoZWRfdGltZXIr MHg0NC8weDEzMCBrZXJuZWwvdGltZS90aWNrLXNjaGVkLmM6MTE5MwogWzxmZmZmZmZmZjgxNWU3 NWY3Pl0gX19ydW5faHJ0aW1lciBrZXJuZWwvdGltZS9ocnRpbWVyLmM6MTM5MyBbaW5saW5lXQog WzxmZmZmZmZmZjgxNWU3NWY3Pl0gX19ocnRpbWVyX3J1bl9xdWV1ZXMrMHgzMDcvMHhkOTAga2Vy bmVsL3RpbWUvaHJ0aW1lci5jOjE0NTUKIFs8ZmZmZmZmZmY4MTVlOTBlYT5dIGhydGltZXJfaW50 ZXJydXB0KzB4MmVhLzB4NzMwIGtlcm5lbC90aW1lL2hydGltZXIuYzoxNTEzCiBbPGZmZmZmZmZm ODQ0MDUwZjQ+XSBsb2NhbF9hcGljX3RpbWVyX2ludGVycnVwdCBhcmNoL3g4Ni9rZXJuZWwvYXBp Yy9hcGljLmM6MTAzMSBbaW5saW5lXQogWzxmZmZmZmZmZjg0NDA1MGY0Pl0gc21wX2FwaWNfdGlt ZXJfaW50ZXJydXB0KzB4MTQ0LzB4NWUwIGFyY2gveDg2L2tlcm5lbC9hcGljL2FwaWMuYzoxMDU2 CiBbPGZmZmZmZmZmODQ0MDFjYmU+XSBhcGljX3RpbWVyX2ludGVycnVwdCsweDhlLzB4YTAgYXJj aC94ODYvZW50cnkvZW50cnlfNjQuUzo3NzgKUklQOiAwMDEwOmRvX3Jhd19yZWFkX2xvY2srMHgy Mi8weDgwIGtlcm5lbC9sb2NraW5nL3NwaW5sb2NrX2RlYnVnLmM6MTUzClJTUDogMDAxODpmZmZm ODgwMWRhZDA3YWI4IEVGTEFHUzogMDAwMDBhMDIgT1JJR19SQVg6IGZmZmZmZmZmZmZmZmZmMTIK UkFYOiAwMDAwMDAwMDAwMDAwMDAwIFJCWDogZmZmZjg4MDFjNDEzNTY4MCBSQ1g6IDAwMDAwMDAw MDAwMDAwMDAKUkRYOiAxZmZmZjEwMDM4ODI2YWZlIFJTSTogZmZmZjg4MDE5ZDgxNmJiOCBSREk6 IGZmZmY4ODAxYzQxMzU3ZjAKUkJQOiBmZmZmODgwMWRhZDA3YWMwIFIwODogMDAwMDAwMDAwMDAw NGIxNSBSMDk6IDAwMDAwMDAwMDAzMTAyNzMKUjEwOiBmZmZmODgwMTlkODE2YmI4IFIxMTogMDAw MDAwMDAwMDAwMDAwMSBSMTI6IGZmZmY4ODAxYzQxMzU3ZTgKUjEzOiAwMDAwMDAwMDAwMDAwMDAw IFIxNDogZmZmZjg4MDFjZmIxOTg1MCBSMTU6IGZmZmY4ODAxY2ZiMTk4YjAKIFs8ZmZmZmZmZmY4 MTAxNDYwZT5dIF9fcmF3X3JlYWRfbG9ja19iaCBpbmNsdWRlL2xpbnV4L3J3bG9ja19hcGlfc21w Lmg6MTc3IFtpbmxpbmVdCiBbPGZmZmZmZmZmODEwMTQ2MGU+XSBfcmF3X3JlYWRfbG9ja19iaCsw eDNlLzB4NTAga2VybmVsL2xvY2tpbmcvc3BpbmxvY2suYzoyNDAKIFs8ZmZmZmZmZmY4NDBkNzhj YT5dIGlwdjZfY2hrX21jYXN0X2FkZHIrMHgxMWEvMHg2ZjAgbmV0L2lwdjYvbWNhc3QuYzoxMDA2 CiBbPGZmZmZmZmZmODQwMjM0Mzk+XSBpcDZfbWNfaW5wdXQrMHgzMTkvMHg4ZTAgbmV0L2lwdjYv aXA2X2lucHV0LmM6NDgyCiBbPGZmZmZmZmZmODQwMjExYzg+XSBkc3RfaW5wdXQgaW5jbHVkZS9u ZXQvZHN0Lmg6NDQ5IFtpbmxpbmVdCiBbPGZmZmZmZmZmODQwMjExYzg+XSBpcDZfcmN2X2Zpbmlz aCsweDQwOC8weDYxMCBuZXQvaXB2Ni9pcDZfaW5wdXQuYzo3OAogWzxmZmZmZmZmZjg0MDIxNGRl Pl0gTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI5MiBbaW5saW5lXQogWzxmZmZm ZmZmZjg0MDIxNGRlPl0gTkZfSE9PSyBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci5oOjI4NiBbaW5s aW5lXQogWzxmZmZmZmZmZjg0MDIxNGRlPl0gaXB2Nl9yY3YrMHgxMGUvMHg0MjAgbmV0L2lwdjYv aXA2X2lucHV0LmM6Mjc4CiBbPGZmZmZmZmZmODNhMjllZmE+XSBfX25ldGlmX3JlY2VpdmVfc2ti X29uZV9jb3JlKzB4MTJhLzB4MWYwIG5ldC9jb3JlL2Rldi5jOjUzMDMKIFs8ZmZmZmZmZmY4M2Ey YTE1Yz5dIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFiMCBuZXQvY29yZS9kZXYuYzo1NDE3 CiBbPGZmZmZmZmZmODNhMmY1MzY+XSBwcm9jZXNzX2JhY2tsb2crMHgyMTYvMHg2YzAgbmV0L2Nv cmUvZGV2LmM6NjI0MwogWzxmZmZmZmZmZjgzYTMwZDFiPl0gbmFwaV9wb2xsIG5ldC9jb3JlL2Rl di5jOjY2ODAgW2lubGluZV0KIFs8ZmZmZmZmZmY4M2EzMGQxYj5dIG5ldF9yeF9hY3Rpb24rMHg0 N2IvMHhmYjAgbmV0L2NvcmUvZGV2LmM6Njc0OAogWzxmZmZmZmZmZjg0NjAwMmM4Pl0gX19kb19z b2Z0aXJxKzB4MmM4LzB4OTlhIGtlcm5lbC9zb2Z0aXJxLmM6MzE3CiBbPGZmZmZmZmZmODEzZTY1 NmE+XSBpbnZva2Vfc29mdGlycSBrZXJuZWwvc29mdGlycS5jOjM5OSBbaW5saW5lXQogWzxmZmZm ZmZmZjgxM2U2NTZhPl0gaXJxX2V4aXQrMHgxNmEvMHgxYTAga2VybmVsL3NvZnRpcnEuYzo0MzkK IFs8ZmZmZmZmZmY4NDQwNTExNT5dIGV4aXRpbmdfaXJxIGFyY2gveDg2L2luY2x1ZGUvYXNtL2Fw aWMuaDo1NjEgW2lubGluZV0KIFs8ZmZmZmZmZmY4NDQwNTExNT5dIHNtcF9hcGljX3RpbWVyX2lu dGVycnVwdCsweDE2NS8weDVlMCBhcmNoL3g4Ni9rZXJuZWwvYXBpYy9hcGljLmM6MTA1OAogWzxm ZmZmZmZmZjg0NDAxY2JlPl0gYXBpY190aW1lcl9pbnRlcnJ1cHQrMHg4ZS8weGEwIGFyY2gveDg2 L2VudHJ5L2VudHJ5XzY0LlM6Nzc4CiA8L0lSUT4KUklQOiAwMDEwOl9fc2FuaXRpemVyX2Nvdl90 cmFjZV9wYysweDI2LzB4NTAga2VybmVsL2tjb3YuYzoxMDIKUlNQOiAwMDE4OmZmZmY4ODAxOTYw MzNiZDggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogZmZmZmZmZmZmZmZmZmYxMgpSQVg6IGZm ZmY4ODAxOWQ4MTYxYzAgUkJYOiAwMDAwMDAwMGZmZmZmZmZmIFJDWDogZmZmZmM5MDAwMzUwMTAw MApSRFg6IDAwMDAwMDAwMDAwMDAwMDIgUlNJOiBmZmZmZmZmZjgxNjIzNmQxIFJESTogMDAwMDAw MDAwMDAwMDAwNQpSQlA6IGZmZmY4ODAxOTYwMzNiZDggUjA4OiBmZmZmODgwMTlkODE2MWMwIFIw OTogMDAwMDAwMDAwMDAwMDAwMApSMTA6IDFmZmZmMTAwMzJjMDY3ZjAgUjExOiAwMDAwMDAwMDAw MDAwMDAwIFIxMjogMDAwMDAwMDAwMDAwMDAwMApSMTM6IDAwMDAwMDAwMDAwMDAwODAgUjE0OiAw MDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAwMDAwMDAwMDAwMAogWzxmZmZmZmZmZjgxNjIzNmQx Pl0gZG9fZnV0ZXgrMHgxNTEvMHgxZDUwIGtlcm5lbC9mdXRleC5jOjM1NDgKIFs8ZmZmZmZmZmY4 MTYyNjBmMD5dIENfU1lTQ19mdXRleCBrZXJuZWwvZnV0ZXhfY29tcGF0LmM6MjAxIFtpbmxpbmVd CiBbPGZmZmZmZmZmODE2MjYwZjA+XSBjb21wYXRfU3lTX2Z1dGV4KzB4MjcwLzB4M2IwIGtlcm5l bC9mdXRleF9jb21wYXQuYzoxNzUKIFs8ZmZmZmZmZmY4MTAxZGExNz5dIGRvX3N5c2NhbGxfMzJf aXJxc19vbiBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzozNTMgW2lubGluZV0KIFs8ZmZmZmZmZmY4 MTAxZGExNz5dIGRvX2Zhc3Rfc3lzY2FsbF8zMisweDM1Ny8weGUxYyBhcmNoL3g4Ni9lbnRyeS9j b21tb24uYzo0MTUKIFs8ZmZmZmZmZmY4NDQwMWE5Yj5dIGVudHJ5X1NZU0VOVEVSX2NvbXBhdCsw eDhiLzB4OWQgYXJjaC94ODYvZW50cnkvZW50cnlfNjRfY29tcGF0LlM6MTM5ClJJUDogMDAyMzow eGY3ZjIzYzY5ClJTUDogMDAyYjowMDAwMDAwMGY1ZDFmMTJjIEVGTEFHUzogMDAwMDAyODIgT1JJ R19SQVg6IDAwMDAwMDAwMDAwMDAwZjAKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAw MDAwODE2YWY4OCBSQ1g6IDAwMDAwMDAwMDAwMDAwODAKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJT STogMDAwMDAwMDAwMDAwMDAwMCBSREk6IDAwMDAwMDAwMDgxNmFmOGMKUkJQOiAwMDAwMDAwMGY1 ZDFmMjI4IFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAw MDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDAwMCBSMTI6IDAwMDAwMDAwMDAwMDAw MDAKUjEzOiAwMDAwMDAwMDAwMDAwMDAwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAw MDAwMDAwMDAwMDAKcmN1X3NjaGVkIGt0aHJlYWQgc3RhcnZlZCBmb3IgMTA1MDIgamlmZmllcyEg ZzUwNDkgYzUwNDggZjB4MiBSQ1VfR1BfV0FJVF9GUVMoMykgLT5zdGF0ZT0weDAgLT5jcHU9MQpy Y3Vfc2NoZWQgICAgICAgUiAgcnVubmluZyB0YXNrIG9uIGNwdSAgIDEgIDEzMDQ4ICAgICA4ICAg ICAgMiAweDkwMDAwMDAwIDE3OTA5OTU4NzY0MApDYWxsIFRyYWNlOgogWzxmZmZmZmZmZjgxNDcz MjFmPl0gY29udGV4dF9zd2l0Y2grMHg2MGYvMHhhNjAga2VybmVsL3NjaGVkL2NvcmUuYzozMjA5 CiBbPGZmZmZmZmZmODEwMDA5NWE+XSBfX3NjaGVkdWxlKzB4NWFhLzB4MWRhMCBrZXJuZWwvc2No ZWQvY29yZS5jOjM5MzQKIFs8ZmZmZmZmZmY4MTAwMjFkZj5dIHNjaGVkdWxlKzB4OGYvMHgxYjAg a2VybmVsL3NjaGVkL2NvcmUuYzo0MDExCiBbPGZmZmZmZmZmODEwMTExNmQ+XSBzY2hlZHVsZV90 aW1lb3V0KzB4NTBkLzB4ZWUwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTgwMwogWzxmZmZmZmZmZjgx NWMxM2YxPl0gcmN1X2dwX2t0aHJlYWQrMHhkYTEvMHgzYjUwIGtlcm5lbC9yY3UvdHJlZS5jOjIz MjcKIFs8ZmZmZmZmZmY4MTQ0YjMxOD5dIGt0aHJlYWQrMHgzNDgvMHg0MjAga2VybmVsL2t0aHJl YWQuYzoyNDYKIFs8ZmZmZmZmZmY4NDQwMDI2Nj5dIHJldF9mcm9tX2ZvcmsrMHg1Ni8weDcwIGFy Y2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6MzkzCgpGaXhlczogYmEzNWY4NTg4ZjQ3ICjigJxpcHZs YW46IERlZmVyIG11bHRpY2FzdCAvIGJyb2FkY2FzdCBwcm9jZXNzaW5nIHRvIGEgd29yay1xdWV1 ZeKAnSkKU2lnbmVkLW9mZi1ieTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jIGIv ZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMKaW5kZXggMzBjZDBjNGYwYmUwLi41MTRl NDk3ZDlmZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jCisr KyBiL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jCkBAIC0yNzcsNiArMjc3LDcgQEAg dm9pZCBpcHZsYW5fcHJvY2Vzc19tdWx0aWNhc3Qoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQog CQkJfQogCQkJaXB2bGFuX2NvdW50X3J4KGlwdmxhbiwgbGVuLCByZXQgPT0gTkVUX1JYX1NVQ0NF U1MsIHRydWUpOwogCQkJbG9jYWxfYmhfZW5hYmxlKCk7CisJCQljb25kX3Jlc2NoZWRfcmN1KCk7 CiAJCX0KIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAKLS0gCjIuMjAuMQoKCkZyb20gNTZhMDIyMWVh YjJiODhiNTFkOWQ0M2Y2OTIyY2RjNDUxNTQwZjMwYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogSmlyaSBXaWVzbmVyIDxqd2llc25lckBzdXNlLmNvbT4KRGF0ZTogU2F0LCA3IE1hciAy MDIwIDEzOjMxOjU3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNy82Nl0gaXB2bGFuOiBkbyBub3Qg YWRkIGhhcmR3YXJlIGFkZHJlc3Mgb2YgbWFzdGVyIHRvIGl0cwogdW5pY2FzdCBmaWx0ZXIgbGlz dAoKWyBVcHN0cmVhbSBjb21taXQgNjNhYWU3YjE3MzQ0ZDRiMDhhN2QwNWNiMDcwNDRkZTRjMGY5 ZGNjNiBdCgpUaGVyZSBpcyBhIHByb2JsZW0gd2hlbiBpcHZsYW4gc2xhdmVzIGFyZSBjcmVhdGVk IG9uIGEgbWFzdGVyIGRldmljZSB0aGF0CmlzIGEgdm14bmV0MyBkZXZpY2UgKGlwdmxhbiBpbiBW TXdhcmUgZ3Vlc3RzKS4gVGhlIHZteG5ldDMgZHJpdmVyIGRvZXMgbm90CnN1cHBvcnQgdW5pY2Fz dCBhZGRyZXNzIGZpbHRlcmluZy4gV2hlbiBhbiBpcHZsYW4gZGV2aWNlIGlzIGJyb3VnaHQgdXAg aW4KaXB2bGFuX29wZW4oKSwgdGhlIGlwdmxhbiBkcml2ZXIgY2FsbHMgZGV2X3VjX2FkZCgpIHRv IGFkZCB0aGUgaGFyZHdhcmUKYWRkcmVzcyBvZiB0aGUgdm14bmV0MyBtYXN0ZXIgZGV2aWNlIHRv IHRoZSB1bmljYXN0IGFkZHJlc3MgbGlzdCBvZiB0aGUKbWFzdGVyIGRldmljZSwgcGh5X2Rldi0+ dWMuIFRoaXMgaW5ldml0YWJseSBsZWFkcyB0byB0aGUgdm14bmV0MyBtYXN0ZXIKZGV2aWNlIGJl aW5nIGZvcmNlZCBpbnRvIHByb21pc2N1b3VzIG1vZGUgYnkgX19kZXZfc2V0X3J4X21vZGUoKS4K ClByb21pc2N1b3VzIG1vZGUgaXMgc3dpdGNoZWQgb24gdGhlIG1hc3RlciBkZXNwaXRlIHRoZSBm YWN0IHRoYXQgdGhlcmUgaXMKc3RpbGwgb25seSBvbmUgaGFyZHdhcmUgYWRkcmVzcyB0aGF0IHRo ZSBtYXN0ZXIgZGV2aWNlIHNob3VsZCB1c2UgZm9yCmZpbHRlcmluZyBpbiBvcmRlciBmb3IgdGhl IGlwdmxhbiBkZXZpY2UgdG8gYmUgYWJsZSB0byByZWNlaXZlIHBhY2tldHMuClRoZSBjb21tZW50 IGFib3ZlIHN0cnVjdCBuZXRfZGV2aWNlIGRlc2NyaWJlcyB0aGUgdWNfcHJvbWlzYyBtZW1iZXIg YXMgYQoiY291bnRlciwgdGhhdCBpbmRpY2F0ZXMsIHRoYXQgcHJvbWlzY3VvdXMgbW9kZSBoYXMg YmVlbiBlbmFibGVkIGR1ZSB0bwp0aGUgbmVlZCB0byBsaXN0ZW4gdG8gYWRkaXRpb25hbCB1bmlj YXN0IGFkZHJlc3NlcyBpbiBhIGRldmljZSB0aGF0IGRvZXMKbm90IGltcGxlbWVudCBuZG9fc2V0 X3J4X21vZGUoKSIuIE1vcmVvdmVyLCB0aGUgZGVzaWduIG9mIGlwdmxhbgpndWFyYW50ZWVzIHRo YXQgb25seSB0aGUgaGFyZHdhcmUgYWRkcmVzcyBvZiBhIG1hc3RlciBkZXZpY2UsCnBoeV9kZXYt PmRldl9hZGRyLCB3aWxsIGJlIHVzZWQgdG8gdHJhbnNtaXQgYW5kIHJlY2VpdmUgYWxsIHBhY2tl dHMgZnJvbQppdHMgaXB2bGFuIHNsYXZlcy4gVGh1cywgdGhlIHVuaWNhc3QgYWRkcmVzcyBsaXN0 IG9mIHRoZSBtYXN0ZXIgZGV2aWNlCnNob3VsZCBub3QgYmUgbW9kaWZpZWQgYnkgaXB2bGFuX29w ZW4oKSBhbmQgaXB2bGFuX3N0b3AoKSBpbiBvcmRlciB0byBtYWtlCmlwdmxhbiBhIHdvcmthYmxl IG9wdGlvbiBvbiBtYXN0ZXJzIHRoYXQgZG8gbm90IHN1cHBvcnQgdW5pY2FzdCBhZGRyZXNzCmZp bHRlcmluZy4KCkZpeGVzOiAyYWQ3YmYzNjM4NDExICgiaXB2bGFuOiBJbml0aWFsIGNoZWNrLWlu IG9mIHRoZSBJUFZMQU4gZHJpdmVyIikKUmVwb3J0ZWQtYnk6IFBlciBTdW5kc3Ryb20gPHBlci5z dW5kc3Ryb21AcmVkcXViZS5zZT4KU2lnbmVkLW9mZi1ieTogSmlyaSBXaWVzbmVyIDxqd2llc25l ckBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KQWNrZWQtYnk6IE1haGVzaCBCYW5kZXdhciA8bWFoZXNoYkBnb29nbGUuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMgfCA1ICstLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXB2 bGFuL2lwdmxhbl9tYWluLmMgYi9kcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX21haW4uYwppbmRl eCBhNzA2NjIyNjFhNWEuLmYxOTVmMjc4YTgzYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXB2 bGFuL2lwdmxhbl9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9tYWluLmMK QEAgLTE2NCw3ICsxNjQsNiBAQCBzdGF0aWMgdm9pZCBpcHZsYW5fdW5pbml0KHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiBzdGF0aWMgaW50IGlwdmxhbl9vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiB7CiAJc3RydWN0IGlwdmxfZGV2ICppcHZsYW4gPSBuZXRkZXZfcHJpdihkZXYpOwotCXN0 cnVjdCBuZXRfZGV2aWNlICpwaHlfZGV2ID0gaXB2bGFuLT5waHlfZGV2OwogCXN0cnVjdCBpcHZs X2FkZHIgKmFkZHI7CiAKIAlpZiAoaXB2bGFuLT5wb3J0LT5tb2RlID09IElQVkxBTl9NT0RFX0wz IHx8CkBAIC0xNzgsNyArMTc3LDcgQEAgc3RhdGljIGludCBpcHZsYW5fb3BlbihzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2KQogCQlpcHZsYW5faHRfYWRkcl9hZGQoaXB2bGFuLCBhZGRyKTsKIAlyY3Vf cmVhZF91bmxvY2soKTsKIAotCXJldHVybiBkZXZfdWNfYWRkKHBoeV9kZXYsIHBoeV9kZXYtPmRl dl9hZGRyKTsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBpcHZsYW5fc3RvcChzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2KQpAQCAtMTkwLDggKzE4OSw2IEBAIHN0YXRpYyBpbnQgaXB2bGFuX3N0 b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAlkZXZfdWNfdW5zeW5jKHBoeV9kZXYsIGRldik7 CiAJZGV2X21jX3Vuc3luYyhwaHlfZGV2LCBkZXYpOwogCi0JZGV2X3VjX2RlbChwaHlfZGV2LCBw aHlfZGV2LT5kZXZfYWRkcik7Ci0KIAlyY3VfcmVhZF9sb2NrKCk7CiAJbGlzdF9mb3JfZWFjaF9l bnRyeV9yY3UoYWRkciwgJmlwdmxhbi0+YWRkcnMsIGFub2RlKQogCQlpcHZsYW5faHRfYWRkcl9k ZWwoYWRkcik7Ci0tIAoyLjIwLjEKCgpGcm9tIGVhOTU2OTIxMWVlNDE5ZTQ5ZTBhOGQ2ZjBhNGQ1 ZDkxZGJiOTcxZjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8 ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCA5IE1hciAyMDIwIDE4OjIyOjU4IC0wNzAw ClN1YmplY3Q6IFtQQVRDSCAwOC82Nl0gaXB2bGFuOiBkbyBub3QgdXNlIGNvbmRfcmVzY2hlZF9y Y3UoKSBpbgogaXB2bGFuX3Byb2Nlc3NfbXVsdGljYXN0KCkKClsgVXBzdHJlYW0gY29tbWl0IGFm ZTIwN2Q4MGE2MWU0ZDZlN2NmYTA2MTFhNGFmNDZkMGJhOTU2MjggXQoKQ29tbWl0IGUxOGIzNTNm MTAyZSAoImlwdmxhbjogYWRkIGNvbmRfcmVzY2hlZF9yY3UoKSB3aGlsZQpwcm9jZXNzaW5nIG11 dGljYXN0IGJhY2tsb2ciKSBhZGRlZCBhIGNvbmRfcmVzY2hlZF9yY3UoKSBpbiBhIGxvb3AKdXNp bmcgcmN1IHByb3RlY3Rpb24gdG8gaXRlcmF0ZSBvdmVyIHNsYXZlcy4KClRoaXMgaXMgYnJlYWtp bmcgcmN1IHJ1bGVzLCBzbyBsZXRzIGluc3RlYWQgdXNlIGNvbmRfcmVzY2hlZCgpCmF0IGEgcG9p bnQgd2UgY2FuIHJlc2NoZWR1bGUKCkZpeGVzOiBlMThiMzUzZjEwMmUgKCJpcHZsYW46IGFkZCBj b25kX3Jlc2NoZWRfcmN1KCkgd2hpbGUgcHJvY2Vzc2luZyBtdXRpY2FzdCBiYWNrbG9nIikKU2ln bmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogTWFoZXNo IEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFu X2NvcmUuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jIGIvZHJp dmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMKaW5kZXggNTE0ZTQ5N2Q5ZmY1Li41NzYxN2Zm NTU2NWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jCisrKyBi L2RyaXZlcnMvbmV0L2lwdmxhbi9pcHZsYW5fY29yZS5jCkBAIC0yNzcsNyArMjc3LDYgQEAgdm9p ZCBpcHZsYW5fcHJvY2Vzc19tdWx0aWNhc3Qoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkJ fQogCQkJaXB2bGFuX2NvdW50X3J4KGlwdmxhbiwgbGVuLCByZXQgPT0gTkVUX1JYX1NVQ0NFU1Ms IHRydWUpOwogCQkJbG9jYWxfYmhfZW5hYmxlKCk7Ci0JCQljb25kX3Jlc2NoZWRfcmN1KCk7CiAJ CX0KIAkJcmN1X3JlYWRfdW5sb2NrKCk7CiAKQEAgLTI5NCw2ICsyOTMsNyBAQCB2b2lkIGlwdmxh bl9wcm9jZXNzX211bHRpY2FzdChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCX0KIAkJaWYg KGRldikKIAkJCWRldl9wdXQoZGV2KTsKKwkJY29uZF9yZXNjaGVkKCk7CiAJfQogfQogCi0tIAoy LjIwLjEKCgpGcm9tIDdiNjJhNTRlNTJlZjE3MDMyZTAzMzdkN2Y4OTM1MjY1MmY5YTU3Y2QgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1haGVzaCBCYW5kZXdhciA8bWFoZXNoYkBnb29n bGUuY29tPgpEYXRlOiBNb24sIDkgTWFyIDIwMjAgMTU6NTY6NTYgLTA3MDAKU3ViamVjdDogW1BB VENIIDA5LzY2XSBpcHZsYW46IGRvbid0IGRlcmVmIGV0aCBoZHIgYmVmb3JlIGNoZWNraW5nIGl0 J3Mgc2V0Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNl dD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1p dCBhZDgxOTI3NjdjOWY5Y2Y5N2RhNTdiOWZmY2VhNzBmYjEwMGZlYmVmIF0KCklQdmxhbiBpbiBM MyBtb2RlIGRpc2NhcmRzIG91dGJvdW5kIG11bHRpY2FzdCBwYWNrZXRzIGJ1dCBwZXJmb3Jtcwp0 aGUgY2hlY2sgYmVmb3JlIGVuc3VyaW5nIHRoZSBldGhlci1oZWFkZXIgaXMgc2V0IG9yIG5vdC4g VGhpcyBpcwphbiBlcnJvciB0aGF0IEVyaWMgZm91bmQgdGhyb3VnaCBjb2RlIGJyb3dzaW5nLgoK Rml4ZXM6IDJhZDdiZjM2Mzg0MSAo4oCcaXB2bGFuOiBJbml0aWFsIGNoZWNrLWluIG9mIHRoZSBJ UFZMQU4gZHJpdmVyLuKAnSkKU2lnbmVkLW9mZi1ieTogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hi QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9pcHZsYW4vaXB2bGFuX2NvcmUuYyB8IDE4ICsrKysrKysrKystLS0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMgYi9kcml2ZXJzL25l dC9pcHZsYW4vaXB2bGFuX2NvcmUuYwppbmRleCA1NzYxN2ZmNTU2NWYuLjg4MDFkMDkzMTM1YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMKKysrIGIvZHJpdmVy cy9uZXQvaXB2bGFuL2lwdmxhbl9jb3JlLmMKQEAgLTQ5OSwxOSArNDk5LDIxIEBAIHN0YXRpYyBp bnQgaXB2bGFuX3Byb2Nlc3Nfb3V0Ym91bmQoc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlzdHJ1Y3Qg ZXRoaGRyICpldGhoID0gZXRoX2hkcihza2IpOwogCWludCByZXQgPSBORVRfWE1JVF9EUk9QOwog Ci0JLyogSW4gdGhpcyBtb2RlIHdlIGRvbnQgY2FyZSBhYm91dCBtdWx0aWNhc3QgYW5kIGJyb2Fk Y2FzdCB0cmFmZmljICovCi0JaWYgKGlzX211bHRpY2FzdF9ldGhlcl9hZGRyKGV0aGgtPmhfZGVz dCkpIHsKLQkJcHJfZGVidWdfcmF0ZWxpbWl0ZWQoIkRyb3BwZWQge211bHRpfGJyb2FkfWNhc3Qg b2YgdHlwZT1bJXhdXG4iLAotCQkJCSAgICAgbnRvaHMoc2tiLT5wcm90b2NvbCkpOwotCQlrZnJl ZV9za2Ioc2tiKTsKLQkJZ290byBvdXQ7Ci0JfQotCiAJLyogVGhlIGlwdmxhbiBpcyBhIHBzZXVk by1MMiBkZXZpY2UsIHNvIHRoZSBwYWNrZXRzIHRoYXQgd2UgcmVjZWl2ZQogCSAqIHdpbGwgaGF2 ZSBMMjsgd2hpY2ggbmVlZCB0byBkaXNjYXJkZWQgYW5kIHByb2Nlc3NlZCBmdXJ0aGVyCiAJICog aW4gdGhlIG5ldC1ucyBvZiB0aGUgbWFpbi1kZXZpY2UuCiAJICovCiAJaWYgKHNrYl9tYWNfaGVh ZGVyX3dhc19zZXQoc2tiKSkgeworCQkvKiBJbiB0aGlzIG1vZGUgd2UgZG9udCBjYXJlIGFib3V0 CisJCSAqIG11bHRpY2FzdCBhbmQgYnJvYWRjYXN0IHRyYWZmaWMgKi8KKwkJaWYgKGlzX211bHRp Y2FzdF9ldGhlcl9hZGRyKGV0aGgtPmhfZGVzdCkpIHsKKwkJCXByX2RlYnVnX3JhdGVsaW1pdGVk KAorCQkJCSJEcm9wcGVkIHttdWx0aXxicm9hZH1jYXN0IG9mIHR5cGU9WyV4XVxuIiwKKwkJCQlu dG9ocyhza2ItPnByb3RvY29sKSk7CisJCQlrZnJlZV9za2Ioc2tiKTsKKwkJCWdvdG8gb3V0Owor CQl9CisKIAkJc2tiX3B1bGwoc2tiLCBzaXplb2YoKmV0aGgpKTsKIAkJc2tiLT5tYWNfaGVhZGVy ID0gKHR5cGVvZihza2ItPm1hY19oZWFkZXIpKX4wVTsKIAkJc2tiX3Jlc2V0X25ldHdvcmtfaGVh ZGVyKHNrYik7Ci0tIAoyLjIwLjEKCgpGcm9tIDk3OGY3YTM4YTQ3OWE1NGJlZWU0MTU2NjQzYmY0 ZTc0ZmEwN2ZiYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1haGVzaCBCYW5kZXdh ciA8bWFoZXNoYkBnb29nbGUuY29tPgpEYXRlOiBNb24sIDkgTWFyIDIwMjAgMTU6NTc6MDcgLTA3 MDAKU3ViamVjdDogW1BBVENIIDEwLzY2XSBtYWN2bGFuOiBhZGQgY29uZF9yZXNjaGVkKCkgZHVy aW5nIG11bHRpY2FzdCBwcm9jZXNzaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBjZTlhNDE4NmY5YWM0 NzVjNDE1ZmZkMjAzNDgxNzZhNGVhMzY2NjcwIF0KClRoZSBSeCBib3VuZCBtdWx0aWNhc3QgcGFj a2V0cyBhcmUgZGVmZXJyZWQgdG8gYSB3b3JrcXVldWUgYW5kCm1hY3ZsYW4gY2FuIGFsc28gc3Vm ZmVyIGZyb20gdGhlIHNhbWUgYXR0YWNrIHRoYXQgd2FzIGRpc2NvdmVyZWQKYnkgU3l6Ym90IGZv ciBJUHZsYW4uIFRoaXMgc29sdXRpb24gaXMgbm90IGFzIGVmZmVjdGl2ZSBhcyBpbgpJUHZsYW4u IElQdmxhbiBkZWZlcnMgYWxsIChUeCBhbmQgUngpIG11bHRpY2FzdCBwYWNrZXQgcHJvY2Vzc2lu Zwp0byBhIHdvcmtxdWV1ZSB3aGlsZSBtYWN2bGFuIGRvZXMgdGhpcyB3YXkgb25seSBmb3IgdGhl IFJ4LiBUaGlzCmZpeCBzaG91bGQgYWRkcmVzcyB0aGUgUnggY29kaXRpb24gdG8gY2VydGFpbiBl eHRlbnQuCgpUeCBpcyBzdGlsbCBzdXNlcHRpYmxlLiBUeCBtdWx0aWNhc3QgcHJvY2Vzc2luZyBo YXBwZW5zIHdoZW4KLm5kb19zdGFydF94bWl0IGlzIGNhbGxlZCwgaGVuY2Ugd2UgY2Fubm90IGFk ZCBjb25kX3Jlc2NoZWQoKS4KSG93ZXZlciwgaXQncyBub3QgdGhhdCBzZXZlcmUgc2luY2UgdGhl IHVzZXIgd2hpY2ggaXMgZ2VuZXJhdGluZwogLyBmbG9vZGluZyB3aWxsIGJlIGFmZmVjdGVkIHRo ZSBtb3N0LgoKRml4ZXM6IDQxMmNhMTU1MGNiZSAoIm1hY3ZsYW46IE1vdmUgYnJvYWRjYXN0cyBp bnRvIGEgd29yayBxdWV1ZSIpClNpZ25lZC1vZmYtYnk6IE1haGVzaCBCYW5kZXdhciA8bWFoZXNo YkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvbWFjdmxhbi5jIHwgMiArKwogMSBmaWxlIGNoYW5n ZWQsIDIgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21hY3ZsYW4uYyBi L2RyaXZlcnMvbmV0L21hY3ZsYW4uYwppbmRleCBjNWJmNjE1NjU3MjYuLjI2ZjZiZTQ3OTZjNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFjdmxhbi5jCisrKyBiL2RyaXZlcnMvbmV0L21hY3Zs YW4uYwpAQCAtMzM0LDYgKzMzNCw4IEBAIHN0YXRpYyB2b2lkIG1hY3ZsYW5fcHJvY2Vzc19icm9h ZGNhc3Qoc3RydWN0IHdvcmtfc3RydWN0ICp3KQogCQlpZiAoc3JjKQogCQkJZGV2X3B1dChzcmMt PmRldik7CiAJCWNvbnN1bWVfc2tiKHNrYik7CisKKwkJY29uZF9yZXNjaGVkKCk7CiAJfQogfQog Ci0tIAoyLjIwLjEKCgpGcm9tIGI5Y2FlYTMwZjY2YjAyNWFmMTAyZGIxN2I5N2YzN2QxOGFiODEw NDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5l bEBhcm1saW51eC5vcmcudWs+CkRhdGU6IFR1ZSwgMyBNYXIgMjAyMCAxNTowMTo0NiArMDAwMApT dWJqZWN0OiBbUEFUQ0ggMTEvNjZdIG5ldDogZHNhOiBmaXggcGh5bGlua19zdGFydCgpL3BoeWxp bmtfc3RvcCgpIGNhbGxzCgpbIFVwc3RyZWFtIGNvbW1pdCA4NjQwZjhkYzZkNjU3ZWJmYjRlNjdj MjAyYWQzMmM1NDU3ODU4YTEzIF0KClBsYWNlIHBoeWxpbmtfc3RhcnQoKS9waHlsaW5rX3N0b3Ao KSBpbnNpZGUgZHNhX3BvcnRfZW5hYmxlKCkgYW5kCmRzYV9wb3J0X2Rpc2FibGUoKSwgd2hpY2gg ZW5zdXJlcyB0aGF0IHdlIGNhbGwgcGh5bGlua19zdG9wKCkgYmVmb3JlCnRlYXJpbmcgZG93biBw aHlsaW5rIC0gd2hpY2ggaXMgYSBkb2N1bWVudGVkIHJlcXVpcmVtZW50LiAgRmFpbHVyZQp0byBk byBzbyBjYW4gY2F1c2UgdXNlLWFmdGVyLWZyZWUgYnVncy4KCkZpeGVzOiAwZTI3OTIxODE2YWQg KCJuZXQ6IGRzYTogVXNlIFBIWUxJTksgZm9yIHRoZSBDUFUvRFNBIHBvcnRzIikKU2lnbmVkLW9m Zi1ieTogUnVzc2VsbCBLaW5nIDxybWsra2VybmVsQGFybWxpbnV4Lm9yZy51az4KUmV2aWV3ZWQt Ynk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9kc2EvZHNhX3ByaXYuaCB8ICAy ICsrCiBuZXQvZHNhL3BvcnQuYyAgICAgfCAzMiArKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLQogbmV0L2RzYS9zbGF2ZS5jICAgIHwgIDggKystLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg MzAgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9k c2FfcHJpdi5oIGIvbmV0L2RzYS9kc2FfcHJpdi5oCmluZGV4IDJkZDg2ZDliY2RhOS4uYTBiZGQ2 MDExYzlmIDEwMDY0NAotLS0gYS9uZXQvZHNhL2RzYV9wcml2LmgKKysrIGIvbmV0L2RzYS9kc2Ff cHJpdi5oCkBAIC0xMTcsNyArMTE3LDkgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZHNhX21hc3Rlcl9maW5kX3NsYXZlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAvKiBwb3J0 LmMgKi8KIGludCBkc2FfcG9ydF9zZXRfc3RhdGUoc3RydWN0IGRzYV9wb3J0ICpkcCwgdTggc3Rh dGUsCiAJCSAgICAgICBzdHJ1Y3Qgc3dpdGNoZGV2X3RyYW5zICp0cmFucyk7CitpbnQgZHNhX3Bv cnRfZW5hYmxlX3J0KHN0cnVjdCBkc2FfcG9ydCAqZHAsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkp OwogaW50IGRzYV9wb3J0X2VuYWJsZShzdHJ1Y3QgZHNhX3BvcnQgKmRwLCBzdHJ1Y3QgcGh5X2Rl dmljZSAqcGh5KTsKK3ZvaWQgZHNhX3BvcnRfZGlzYWJsZV9ydChzdHJ1Y3QgZHNhX3BvcnQgKmRw KTsKIHZvaWQgZHNhX3BvcnRfZGlzYWJsZShzdHJ1Y3QgZHNhX3BvcnQgKmRwKTsKIGludCBkc2Ff cG9ydF9icmlkZ2Vfam9pbihzdHJ1Y3QgZHNhX3BvcnQgKmRwLCBzdHJ1Y3QgbmV0X2RldmljZSAq YnIpOwogdm9pZCBkc2FfcG9ydF9icmlkZ2VfbGVhdmUoc3RydWN0IGRzYV9wb3J0ICpkcCwgc3Ry dWN0IG5ldF9kZXZpY2UgKmJyKTsKZGlmZiAtLWdpdCBhL25ldC9kc2EvcG9ydC5jIGIvbmV0L2Rz YS9wb3J0LmMKaW5kZXggNDZhYzliYTIxOTg3Li5hMjY3NTZkMWRkMzkgMTAwNjQ0Ci0tLSBhL25l dC9kc2EvcG9ydC5jCisrKyBiL25ldC9kc2EvcG9ydC5jCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRp YyB2b2lkIGRzYV9wb3J0X3NldF9zdGF0ZV9ub3coc3RydWN0IGRzYV9wb3J0ICpkcCwgdTggc3Rh dGUpCiAJCXByX2VycigiRFNBOiBmYWlsZWQgdG8gc2V0IFNUUCBzdGF0ZSAldSAoJWQpXG4iLCBz dGF0ZSwgZXJyKTsKIH0KIAotaW50IGRzYV9wb3J0X2VuYWJsZShzdHJ1Y3QgZHNhX3BvcnQgKmRw LCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5KQoraW50IGRzYV9wb3J0X2VuYWJsZV9ydChzdHJ1Y3Qg ZHNhX3BvcnQgKmRwLCBzdHJ1Y3QgcGh5X2RldmljZSAqcGh5KQogewogCXN0cnVjdCBkc2Ffc3dp dGNoICpkcyA9IGRwLT5kczsKIAlpbnQgcG9ydCA9IGRwLT5pbmRleDsKQEAgLTc4LDE0ICs3OCwz MSBAQCBpbnQgZHNhX3BvcnRfZW5hYmxlKHN0cnVjdCBkc2FfcG9ydCAqZHAsIHN0cnVjdCBwaHlf ZGV2aWNlICpwaHkpCiAJaWYgKCFkcC0+YnJpZGdlX2RldikKIAkJZHNhX3BvcnRfc2V0X3N0YXRl X25vdyhkcCwgQlJfU1RBVEVfRk9SV0FSRElORyk7CiAKKwlpZiAoZHAtPnBsKQorCQlwaHlsaW5r X3N0YXJ0KGRwLT5wbCk7CisKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBkc2FfcG9ydF9kaXNhYmxl KHN0cnVjdCBkc2FfcG9ydCAqZHApCitpbnQgZHNhX3BvcnRfZW5hYmxlKHN0cnVjdCBkc2FfcG9y dCAqZHAsIHN0cnVjdCBwaHlfZGV2aWNlICpwaHkpCit7CisJaW50IGVycjsKKworCXJ0bmxfbG9j aygpOworCWVyciA9IGRzYV9wb3J0X2VuYWJsZV9ydChkcCwgcGh5KTsKKwlydG5sX3VubG9jaygp OworCisJcmV0dXJuIGVycjsKK30KKwordm9pZCBkc2FfcG9ydF9kaXNhYmxlX3J0KHN0cnVjdCBk c2FfcG9ydCAqZHApCiB7CiAJc3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZHAtPmRzOwogCWludCBw b3J0ID0gZHAtPmluZGV4OwogCisJaWYgKGRwLT5wbCkKKwkJcGh5bGlua19zdG9wKGRwLT5wbCk7 CisKIAlpZiAoIWRwLT5icmlkZ2VfZGV2KQogCQlkc2FfcG9ydF9zZXRfc3RhdGVfbm93KGRwLCBC Ul9TVEFURV9ESVNBQkxFRCk7CiAKQEAgLTkzLDYgKzExMCwxMyBAQCB2b2lkIGRzYV9wb3J0X2Rp c2FibGUoc3RydWN0IGRzYV9wb3J0ICpkcCkKIAkJZHMtPm9wcy0+cG9ydF9kaXNhYmxlKGRzLCBw b3J0KTsKIH0KIAordm9pZCBkc2FfcG9ydF9kaXNhYmxlKHN0cnVjdCBkc2FfcG9ydCAqZHApCit7 CisJcnRubF9sb2NrKCk7CisJZHNhX3BvcnRfZGlzYWJsZV9ydChkcCk7CisJcnRubF91bmxvY2so KTsKK30KKwogaW50IGRzYV9wb3J0X2JyaWRnZV9qb2luKHN0cnVjdCBkc2FfcG9ydCAqZHAsIHN0 cnVjdCBuZXRfZGV2aWNlICpicikKIHsKIAlzdHJ1Y3QgZHNhX25vdGlmaWVyX2JyaWRnZV9pbmZv IGluZm8gPSB7CkBAIC02MTksMTAgKzY0Myw2IEBAIHN0YXRpYyBpbnQgZHNhX3BvcnRfcGh5bGlu a19yZWdpc3RlcihzdHJ1Y3QgZHNhX3BvcnQgKmRwKQogCQlnb3RvIGVycl9waHlfY29ubmVjdDsK IAl9CiAKLQlydG5sX2xvY2soKTsKLQlwaHlsaW5rX3N0YXJ0KGRwLT5wbCk7Ci0JcnRubF91bmxv Y2soKTsKLQogCXJldHVybiAwOwogCiBlcnJfcGh5X2Nvbm5lY3Q6CmRpZmYgLS1naXQgYS9uZXQv ZHNhL3NsYXZlLmMgYi9uZXQvZHNhL3NsYXZlLmMKaW5kZXggNzhmZmM4N2RjMjVlLi4wYjg4MmRl NTQ4M2MgMTAwNjQ0Ci0tLSBhL25ldC9kc2Evc2xhdmUuYworKysgYi9uZXQvZHNhL3NsYXZlLmMK QEAgLTkwLDEyICs5MCwxMCBAQCBzdGF0aWMgaW50IGRzYV9zbGF2ZV9vcGVuKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpCiAJCQlnb3RvIGNsZWFyX2FsbG11bHRpOwogCX0KIAotCWVyciA9IGRzYV9w b3J0X2VuYWJsZShkcCwgZGV2LT5waHlkZXYpOworCWVyciA9IGRzYV9wb3J0X2VuYWJsZV9ydChk cCwgZGV2LT5waHlkZXYpOwogCWlmIChlcnIpCiAJCWdvdG8gY2xlYXJfcHJvbWlzYzsKIAotCXBo eWxpbmtfc3RhcnQoZHAtPnBsKTsKLQogCXJldHVybiAwOwogCiBjbGVhcl9wcm9taXNjOgpAQCAt MTE5LDkgKzExNyw3IEBAIHN0YXRpYyBpbnQgZHNhX3NsYXZlX2Nsb3NlKHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiAJY2FuY2VsX3dvcmtfc3luYygmZHAtPnhtaXRfd29yayk7CiAJc2tiX3F1ZXVl X3B1cmdlKCZkcC0+eG1pdF9xdWV1ZSk7CiAKLQlwaHlsaW5rX3N0b3AoZHAtPnBsKTsKLQotCWRz YV9wb3J0X2Rpc2FibGUoZHApOworCWRzYV9wb3J0X2Rpc2FibGVfcnQoZHApOwogCiAJZGV2X21j X3Vuc3luYyhtYXN0ZXIsIGRldik7CiAJZGV2X3VjX3Vuc3luYyhtYXN0ZXIsIGRldik7Ci0tIAoy LjIwLjEKCgpGcm9tIGZhYmJjMzM5MDQzOGE5YzA3NDczOTczYjkzNjc5ZjgwMTA2ZjcwMjYgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1s aW51eC5vcmcudWs+CkRhdGU6IEZyaSwgMjggRmViIDIwMjAgMTk6Mzk6NDEgKzAwMDAKU3ViamVj dDogW1BBVENIIDEyLzY2XSBuZXQ6IGRzYTogbXY4OGU2eHh4OiBmaXggbG9ja3VwIG9uIHdhcm0g Ym9vdAoKWyBVcHN0cmVhbSBjb21taXQgMDM5NTgyM2I4ZDlhNGQ4N2JkMWJmNzQzNTkxMjM0NjFj MmFlODAxYiBdCgpJZiB0aGUgc3dpdGNoIGlzIG5vdCBoYXJkd2FyZSByZXNldCBvbiBhIHdhcm0g Ym9vdCwgaW50ZXJydXB0cyBjYW4gYmUKbGVmdCBlbmFibGVkLCBhbmQgcG9zc2libHkgcGVuZGlu Zy4gVGhpcyB3aWxsIGNhdXNlIHVzIHRvIGVudGVyIGFuCmluZmluaXRlIGxvb3AgdHJ5aW5nIHRv IHNlcnZpY2UgYW4gaW50ZXJydXB0IHdlIGFyZSB1bmFibGUgdG8gaGFuZGxlLAp0aGVyZWJ5IHBy ZXZlbnRpbmcgdGhlIGtlcm5lbCBmcm9tIGJvb3RpbmcuCgpFbnN1cmUgdGhhdCB0aGUgZ2xvYmFs IDIgaW50ZXJydXB0IHNvdXJjZXMgYXJlIGRpc2FibGVkIGJlZm9yZSB3ZSBjbGFpbQp0aGUgcGFy ZW50IGludGVycnVwdC4KCk9ic2VydmVkIG9uIHRoZSBaSUkgZGV2ZWxvcG1lbnQgcmV2aXNpb24g QiBhbmQgQyBwbGF0Zm9ybXMgd2l0aApyZXdvcmtlZCBzZXJkZXMgc3VwcG9ydCwgYW5kIHVzaW5n IHJlYm9vdCAtZiB0byByZWJvb3QgdGhlIHBsYXRmb3JtLgoKRml4ZXM6IGRjMzBjMzViZTcyMCAo Im5ldDogZHNhOiBtdjg4ZTZ4eHg6IEltcGxlbWVudCBpbnRlcnJ1cHQgc3VwcG9ydC4iKQpTaWdu ZWQtb2ZmLWJ5OiBSdXNzZWxsIEtpbmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPgpSZXZp ZXdlZC1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL212 ODhlNnh4eC9nbG9iYWwyLmMgfCA4ICsrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhl Nnh4eC9nbG9iYWwyLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuYwppbmRl eCA4N2JmZTdjOGM5Y2QuLjI0Njc1MWI0ZjNiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNh L212ODhlNnh4eC9nbG9iYWwyLmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9i YWwyLmMKQEAgLTEwOTYsNiArMTA5NiwxMyBAQCBpbnQgbXY4OGU2eHh4X2cyX2lycV9zZXR1cChz dHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApCiB7CiAJaW50IGVyciwgaXJxLCB2aXJxOwogCisJ Y2hpcC0+ZzJfaXJxLm1hc2tlZCA9IH4wOworCW12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTsKKwll cnIgPSBtdjg4ZTZ4eHhfZzJfaW50X21hc2soY2hpcCwgfmNoaXAtPmcyX2lycS5tYXNrZWQpOwor CW12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisK IAljaGlwLT5nMl9pcnEuZG9tYWluID0gaXJxX2RvbWFpbl9hZGRfc2ltcGxlKAogCQljaGlwLT5k ZXYtPm9mX25vZGUsIDE2LCAwLCAmbXY4OGU2eHh4X2cyX2lycV9kb21haW5fb3BzLCBjaGlwKTsK IAlpZiAoIWNoaXAtPmcyX2lycS5kb21haW4pCkBAIC0xMTA1LDcgKzExMTIsNiBAQCBpbnQgbXY4 OGU2eHh4X2cyX2lycV9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApCiAJCWlycV9j cmVhdGVfbWFwcGluZyhjaGlwLT5nMl9pcnEuZG9tYWluLCBpcnEpOwogCiAJY2hpcC0+ZzJfaXJx LmNoaXAgPSBtdjg4ZTZ4eHhfZzJfaXJxX2NoaXA7Ci0JY2hpcC0+ZzJfaXJxLm1hc2tlZCA9IH4w OwogCiAJY2hpcC0+ZGV2aWNlX2lycSA9IGlycV9maW5kX21hcHBpbmcoY2hpcC0+ZzFfaXJxLmRv bWFpbiwKIAkJCQkJICAgIE1WODhFNlhYWF9HMV9TVFNfSVJRX0RFVklDRSk7Ci0tIAoyLjIwLjEK CgpGcm9tIDE5NmU4ZWRmM2E4ZmYyNTBjNjY3YmI3YWY2ZjM5MzM4NjA2ZTg1YmIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkRh dGU6IFR1ZSwgMTAgTWFyIDIwMjAgMjA6MzY6MTYgLTA3MDAKU3ViamVjdDogW1BBVENIIDEzLzY2 XSBuZXQ6IGZlYzogdmFsaWRhdGUgdGhlIG5ldyBzZXR0aW5ncyBpbgogZmVjX2VuZXRfc2V0X2Nv YWxlc2NlKCkKClsgVXBzdHJlYW0gY29tbWl0IGFiMTQ5NjFkMTBkMDJkMjA3Njc2MTJjNzhjZTE0 OGY2ZWI4NWJkNTggXQoKZmVjX2VuZXRfc2V0X2NvYWxlc2NlKCkgdmFsaWRhdGVzIHRoZSBwcmV2 aW91c2x5IHNldCBwYXJhbXMKYW5kIGlmIHRoZXkgYXJlIHdpdGhpbiByYW5nZSBwcm9jZWVkcyB0 byBhcHBseSB0aGUgbmV3IG9uZXMuClRoZSBuZXcgb25lcywgaG93ZXZlciwgYXJlIG5vdCB2YWxp ZGF0ZWQuIFRoaXMgc2VlbXMgYmFja3dhcmRzLApwcm9iYWJseSBhIGNvcHktcGFzdGUgZXJyb3I/ CgpDb21waWxlIHRlc3RlZCBvbmx5LgoKRml4ZXM6IGQ4NTFiNDdiMjJmYyAoIm5ldDogZmVjOiBh ZGQgaW50ZXJydXB0IGNvYWxlc2NlbmNlIGZlYXR1cmUgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6 IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBGdWdhbmcgRHVhbiA8 ZnVnYW5nLmR1YW5AbnhwLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mZWNf bWFpbi5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2Zl Y19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZmVjX21haW4uYwppbmRl eCA5Mjk0MDI3ZTlkOTAuLmFiMDI4Zjk1NGFjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvZnJlZXNjYWxlL2ZlY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJl ZXNjYWxlL2ZlY19tYWluLmMKQEAgLTI1MjksMTUgKzI1MjksMTUgQEAgZmVjX2VuZXRfc2V0X2Nv YWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgZXRodG9vbF9jb2FsZXNjZSAq ZWMpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWN5Y2xlID0gZmVjX2VuZXRfdXNfdG9faXRy X2Nsb2NrKG5kZXYsIGZlcC0+cnhfdGltZV9pdHIpOworCWN5Y2xlID0gZmVjX2VuZXRfdXNfdG9f aXRyX2Nsb2NrKG5kZXYsIGVjLT5yeF9jb2FsZXNjZV91c2Vjcyk7CiAJaWYgKGN5Y2xlID4gMHhG RkZGKSB7CiAJCWRldl9lcnIoZGV2LCAiUnggY29hbGVzY2VkIHVzZWMgZXhjZWVkIGhhcmR3YXJl IGxpbWl0YXRpb25cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQljeWNsZSA9IGZlY19l bmV0X3VzX3RvX2l0cl9jbG9jayhuZGV2LCBmZXAtPnR4X3RpbWVfaXRyKTsKKwljeWNsZSA9IGZl Y19lbmV0X3VzX3RvX2l0cl9jbG9jayhuZGV2LCBlYy0+dHhfY29hbGVzY2VfdXNlY3MpOwogCWlm IChjeWNsZSA+IDB4RkZGRikgewotCQlkZXZfZXJyKGRldiwgIlJ4IGNvYWxlc2NlZCB1c2VjIGV4 Y2VlZCBoYXJkd2FyZSBsaW1pdGF0aW9uXG4iKTsKKwkJZGV2X2VycihkZXYsICJUeCBjb2FsZXNj ZWQgdXNlYyBleGNlZWQgaGFyZHdhcmUgbGltaXRhdGlvblxuIik7CiAJCXJldHVybiAtRUlOVkFM OwogCX0KIAotLSAKMi4yMC4xCgoKRnJvbSBjNmQwY2RhMzA0MjU2YWI0Y2RlYjdmYzk2OTg0ZTE4 ZWJhMTNiYmNjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaWFuIFNoZW4gPHNoZW5q aWFuMTVAaHVhd2VpLmNvbT4KRGF0ZTogVGh1LCA1IE1hciAyMDIwIDA5OjQ3OjUzICswODAwClN1 YmplY3Q6IFtQQVRDSCAxNC82Nl0gbmV0OiBobnMzOiBmaXggYSBub3QgbGluayB1cCBpc3N1ZSB3 aGVuIGZpYnJlIHBvcnQKIHN1cHBvcnRzIGF1dG9uZWcKClsgVXBzdHJlYW0gY29tbWl0IDY4ZTEw MDZmNjE4ZTUwOWZjNzg2OTI1OWZlODNjZWVjNGE5NWRhYzMgXQoKV2hlbiBmaWJyZSBwb3J0IHN1 cHBvcnRzIGF1dG8tbmVnb3RpYXRpb24sIHRoZSBJTVAoSW50ZWxsaWdlbnQKTWFuYWdlbWVudCBQ cm9jZXNzKSBwcm9jZXNzZXMgdGhlIHNwZWVkIG9mIGF1dG8tbmVnb3RpYXRpb24KYW5kIHRoZSAg dXNlcidzIHNwZWVkIHNlcGFyYXRlbHkuCkZvciBiZWxvdyBjYXNlLCB0aGUgcG9ydCB3aWxsIGdl dCBhIG5vdCBsaW5rIHVwIHByb2JsZW0uCnN0ZXAgMTogZGlzYWJsZXMgYXV0by1uZWdvdGlhdGlv biBhbmQgc2V0cyBzcGVlZCB0byBBLCB0aGVuCnRoZSBkcml2ZXIncyBNQUMgc3BlZWQgd2lsbCBi ZSB1cGRhdGVkIHRvIEEuCnN0ZXAgMjogZW5hYmxlcyBhdXRvLW5lZ290aWF0aW9uIGFuZCBNQUMg Z2V0cyBuZWdvdGlhdGVkCnNwZWVkIEIsIHRoZW4gdGhlIGRyaXZlcidzIE1BQyBzcGVlZCB3aWxs IGJlIHVwZGF0ZWQgdG8gQgp0aHJvdWdoIHF1ZXJ5aW5nIGluIHBlcmlvZGljYWwgdGFzay4Kc3Rl cCAzOiBNQUMgZ2V0cyBuZXcgbmVnb3RpYXRlZCBzcGVlZCBBLgpzdGVwIDQ6IGRpc2FibGVzIGF1 dG8tbmVnb3RpYXRpb24gYW5kIHNldHMgc3BlZWQgdG8gQiBiZWZvcmUKcGVyaW9kaWNhbCB0YXNr IHF1ZXJ5IG5ldyBNQUMgc3BlZWQgQSwgdGhlIGRyaXZlciB3aWxsICBpZ25vcmUKdGhlIHNwZWVk IGNvbmZpZ3VyYXRpb24uCgpUaGlzIHBhdGNoIGZpeGVzIGl0IGJ5IHNraXBwaW5nIHNwZWVkIGFu ZCBkdXBsZXggY2hlY2tpbmcgd2hlbgpmaWJyZSBwb3J0IHN1cHBvcnRzIGF1dG8tbmVnb3RpYXRp b24uCgpGaXhlczogMjJmNDhlMjRhMjNkICgibmV0OiBobnMzOiBhZGQgYXV0b25lZyBhbmQgY2hh bmdlIHNwZWVkIHN1cHBvcnQgZm9yIGZpYnJlIHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBKaWFuIFNo ZW4gPHNoZW5qaWFuMTVAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSHVhemhvbmcgVGFuIDx0 YW5odWF6aG9uZ0BodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hu czMvaG5zM3BmL2hjbGdlX21haW4uYyB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFpbi5jCmluZGV4IDVkNzRmNWE2MDEwMi4u MDJmMGUxZTZiNmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24v aG5zMy9obnMzcGYvaGNsZ2VfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2ls aWNvbi9obnMzL2huczNwZi9oY2xnZV9tYWluLmMKQEAgLTI0NTAsMTAgKzI0NTAsMTIgQEAgc3Rh dGljIGludCBoY2xnZV9jZmdfbWFjX3NwZWVkX2R1cF9odyhzdHJ1Y3QgaGNsZ2VfZGV2ICpoZGV2 LCBpbnQgc3BlZWQsCiAKIGludCBoY2xnZV9jZmdfbWFjX3NwZWVkX2R1cChzdHJ1Y3QgaGNsZ2Vf ZGV2ICpoZGV2LCBpbnQgc3BlZWQsIHU4IGR1cGxleCkKIHsKKwlzdHJ1Y3QgaGNsZ2VfbWFjICpt YWMgPSAmaGRldi0+aHcubWFjOwogCWludCByZXQ7CiAKIAlkdXBsZXggPSBoY2xnZV9jaGVja19z cGVlZF9kdXAoZHVwbGV4LCBzcGVlZCk7Ci0JaWYgKGhkZXYtPmh3Lm1hYy5zcGVlZCA9PSBzcGVl ZCAmJiBoZGV2LT5ody5tYWMuZHVwbGV4ID09IGR1cGxleCkKKwlpZiAoIW1hYy0+c3VwcG9ydF9h dXRvbmVnICYmIG1hYy0+c3BlZWQgPT0gc3BlZWQgJiYKKwkgICAgbWFjLT5kdXBsZXggPT0gZHVw bGV4KQogCQlyZXR1cm4gMDsKIAogCXJldCA9IGhjbGdlX2NmZ19tYWNfc3BlZWRfZHVwX2h3KGhk ZXYsIHNwZWVkLCBkdXBsZXgpOwotLSAKMi4yMC4xCgoKRnJvbSA2ZDAwMGI3M2RiNTQzMGZmZmI0 ZDQ1OGQwZjZmOGMzYjAyZGYyODc5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5n YmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMjkgRmViIDIwMjAgMTc6 Mjc6MTMgKzA4MDAKU3ViamVjdDogW1BBVENIIDE1LzY2XSBuZXQvaXB2NjogdXNlIGNvbmZpZ3Vy ZWQgbWV0cmljIHdoZW4gYWRkIHBlZXIgcm91dGUKClsgVXBzdHJlYW0gY29tbWl0IDA3NzU4ZWI5 ZmY1Mjc5NGZiYTE1ZDAzYWE4OGQ5MmRiZDFiN2QxMjUgXQoKV2hlbiB3ZSBhZGQgcGVlciBhZGRy ZXNzIHdpdGggbWV0cmljIGNvbmZpZ3VyZWQsIElQdjQgY291bGQgc2V0IHRoZSBkZXN0Cm1ldHJp YyBjb3JyZWN0bHksIGJ1dCBJUHY2IGRvIG5vdC4gZS5nLgoKXSMgaXAgYWRkciBhZGQgMTkyLjAu Mi4xIHBlZXIgMTkyLjAuMi4yLzMyIGRldiBldGgxIG1ldHJpYyAyMApdIyBpcCByb3V0ZSBzaG93 IGRldiBldGgxCjE5Mi4wLjIuMiBwcm90byBrZXJuZWwgc2NvcGUgbGluayBzcmMgMTkyLjAuMi4x IG1ldHJpYyAyMApdIyBpcCBhZGRyIGFkZCAyMDAxOmRiODo6MSBwZWVyIDIwMDE6ZGI4OjoyLzEy OCBkZXYgZXRoMSBtZXRyaWMgMjAKXSMgaXAgLTYgcm91dGUgc2hvdyBkZXYgZXRoMQoyMDAxOmRi ODo6MSBwcm90byBrZXJuZWwgbWV0cmljIDIwIHByZWYgbWVkaXVtCjIwMDE6ZGI4OjoyIHByb3Rv IGtlcm5lbCBtZXRyaWMgMjU2IHByZWYgbWVkaXVtCgpGaXggdGhpcyBieSB1c2luZyBjb25maWd1 cmVkIG1ldHJpYyBpbnN0ZWFkIG9mIGRlZmF1bHQgb25lLgoKUmVwb3J0ZWQtYnk6IEppYW5saW4g U2hpIDxqaXNoaUByZWRoYXQuY29tPgpGaXhlczogODMwOGYzZmYxNzUzICgibmV0L2lwdjY6IEFk ZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIG1ldHJpYyBvZiBjb25uZWN0ZWQgcm91dGVzIikKUmV2 aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTog SGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvYWRkcmNvbmYuYyB8 IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRyY29uZi5j CmluZGV4IDQ5MzY3ZWM4YTA4ZC4uMmQ3NThhMzlkZDI5IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9h ZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTU5ODcsOSArNTk4Nyw5IEBA IHN0YXRpYyB2b2lkIF9faXB2Nl9pZmFfbm90aWZ5KGludCBldmVudCwgc3RydWN0IGluZXQ2X2lm YWRkciAqaWZwKQogCQlpZiAoaWZwLT5pZGV2LT5jbmYuZm9yd2FyZGluZykKIAkJCWFkZHJjb25m X2pvaW5fYW55Y2FzdChpZnApOwogCQlpZiAoIWlwdjZfYWRkcl9hbnkoJmlmcC0+cGVlcl9hZGRy KSkKLQkJCWFkZHJjb25mX3ByZWZpeF9yb3V0ZSgmaWZwLT5wZWVyX2FkZHIsIDEyOCwgMCwKLQkJ CQkJICAgICAgaWZwLT5pZGV2LT5kZXYsIDAsIDAsCi0JCQkJCSAgICAgIEdGUF9BVE9NSUMpOwor CQkJYWRkcmNvbmZfcHJlZml4X3JvdXRlKCZpZnAtPnBlZXJfYWRkciwgMTI4LAorCQkJCQkgICAg ICBpZnAtPnJ0X3ByaW9yaXR5LCBpZnAtPmlkZXYtPmRldiwKKwkJCQkJICAgICAgMCwgMCwgR0ZQ X0FUT01JQyk7CiAJCWJyZWFrOwogCWNhc2UgUlRNX0RFTEFERFI6CiAJCWlmIChpZnAtPmlkZXYt PmNuZi5mb3J3YXJkaW5nKQotLSAKMi4yMC4xCgoKRnJvbSBlNDMwMDc0Zjg1ZmI3OTRiNmE0ODU2 NGQyMTI3OGRlMTFjNTIzMGM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYWJsbyBO ZWlyYSBBeXVzbyA8cGFibG9AbmV0ZmlsdGVyLm9yZz4KRGF0ZTogV2VkLCAyNiBGZWIgMjAyMCAx OTo0NzozNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTYvNjZdIG5ldGxpbms6IFVzZSBuZXRsaW5r IGhlYWRlciBhcyBiYXNlIHRvIGNhbGN1bGF0ZSBiYWQKIGF0dHJpYnV0ZSBvZmZzZXQKClsgVXBz dHJlYW0gY29tbWl0IDg0YjMyNjgwMjc2NDE0MDFiYjhhZDQ0MjdhOTBhM2NjZTJlYjg2ZjUgXQoK VXNlcnNwYWNlIG1pZ2h0IHNlbmQgYSBiYXRjaCB0aGF0IGlzIGNvbXBvc2VkIG9mIHNldmVyYWwg bmV0bGluawptZXNzYWdlcy4gVGhlIG5ldGxpbmtfYWNrKCkgZnVuY3Rpb24gbXVzdCB1c2UgdGhl IHBvaW50ZXIgdG8gdGhlIG5ldGxpbmsKaGVhZGVyIGFzIGJhc2UgdG8gY2FsY3VsYXRlIHRoZSBi YWQgYXR0cmlidXRlIG9mZnNldC4KCkZpeGVzOiAyZDRiYzkzMzY4ZjUgKCJuZXRsaW5rOiBleHRl bmRlZCBBQ0sgcmVwb3J0aW5nIikKU2lnbmVkLW9mZi1ieTogUGFibG8gTmVpcmEgQXl1c28gPHBh YmxvQG5ldGZpbHRlci5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvbmV0bGluay9hZl9uZXRsaW5rLmMgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKaW5kZXgg ZWRmM2UyODVlMjQyLi41MzEzZjFjZWMxNzAgMTAwNjQ0Ci0tLSBhL25ldC9uZXRsaW5rL2FmX25l dGxpbmsuYworKysgYi9uZXQvbmV0bGluay9hZl9uZXRsaW5rLmMKQEAgLTI0MzQsNyArMjQzNCw3 IEBAIHZvaWQgbmV0bGlua19hY2soc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwgc3RydWN0IG5sbXNn aGRyICpubGgsIGludCBlcnIsCiAJCQkJCQkJICAgICAgIGluX3NrYi0+bGVuKSkKIAkJCQlXQVJO X09OKG5sYV9wdXRfdTMyKHNrYiwgTkxNU0dFUlJfQVRUUl9PRkZTLAogCQkJCQkJICAgICh1OCAq KWV4dGFjay0+YmFkX2F0dHIgLQotCQkJCQkJICAgIGluX3NrYi0+ZGF0YSkpOworCQkJCQkJICAg ICh1OCAqKW5saCkpOwogCQl9IGVsc2UgewogCQkJaWYgKGV4dGFjay0+Y29va2llX2xlbikKIAkJ CQlXQVJOX09OKG5sYV9wdXQoc2tiLCBOTE1TR0VSUl9BVFRSX0NPT0tJRSwKLS0gCjIuMjAuMQoK CkZyb20gYmQ5ZjNlNjAyZjA5MDY4MzhmYjZjZTQ5NzBhZjllZDNiMmEwYzcyNiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRG1pdHJ5IEJvZ2Rhbm92IDxkYm9nZGFub3ZAbWFydmVsbC5j b20+CkRhdGU6IFR1ZSwgMTAgTWFyIDIwMjAgMTg6MjI6MjQgKzAzMDAKU3ViamVjdDogW1BBVENI IDE3LzY2XSBuZXQ6IG1hY3NlYzogdXBkYXRlIFNDSSB1cG9uIE1BQyBhZGRyZXNzIGNoYW5nZS4K ClsgVXBzdHJlYW0gY29tbWl0IDZmYzQ5OGJjODI5MjllZTIzYWEyZjM1YTgyOGM2MTc4ZGZkM2Y4 MjMgXQoKU0NJIHNob3VsZCBiZSB1cGRhdGVkLCBiZWNhdXNlIGl0IGNvbnRhaW5zIE1BQyBpbiBp dHMgZmlyc3QgNiBvY3RldHMuCgpGaXhlczogYzA5NDQwZjdkY2IzICgibWFjc2VjOiBpbnRyb2R1 Y2UgSUVFRSA4MDIuMUFFIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IERtaXRyeSBCb2dkYW5vdiA8 ZGJvZ2Rhbm92QG1hcnZlbGwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXJrIFN0YXJvdm95dG92IDxt c3Rhcm92b2l0b3ZAbWFydmVsbC5jb20+ClNpZ25lZC1vZmYtYnk6IElnb3IgUnVzc2tpa2ggPGly dXNza2lraEBtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L21hY3NlYy5jIHwgMTEgKysrKysrLS0t LS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvbWFjc2VjLmMgYi9kcml2ZXJzL25ldC9tYWNzZWMuYwppbmRl eCBhZmQ4YjJhMDgyNDUuLjg4Yjc1NDQ5MTBkOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvbWFj c2VjLmMKKysrIGIvZHJpdmVycy9uZXQvbWFjc2VjLmMKQEAgLTUzMiw2ICs1MzIsMTEgQEAgc3Rh dGljIHN0cnVjdCBtYWNzZWNfZXRoX2hlYWRlciAqbWFjc2VjX2V0aGhkcihzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQogCXJldHVybiAoc3RydWN0IG1hY3NlY19ldGhfaGVhZGVyICopc2tiX21hY19oZWFk ZXIoc2tiKTsKIH0KIAorc3RhdGljIHNjaV90IGRldl90b19zY2koc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgX19iZTE2IHBvcnQpCit7CisJcmV0dXJuIG1ha2Vfc2NpKGRldi0+ZGV2X2FkZHIsIHBv cnQpOworfQorCiBzdGF0aWMgdTMyIHR4X3NhX3VwZGF0ZV9wbihzdHJ1Y3QgbWFjc2VjX3R4X3Nh ICp0eF9zYSwgc3RydWN0IG1hY3NlY19zZWN5ICpzZWN5KQogewogCXUzMiBwbjsKQEAgLTI5MDMs NiArMjkwOCw3IEBAIHN0YXRpYyBpbnQgbWFjc2VjX3NldF9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0 X2RldmljZSAqZGV2LCB2b2lkICpwKQogCiBvdXQ6CiAJZXRoZXJfYWRkcl9jb3B5KGRldi0+ZGV2 X2FkZHIsIGFkZHItPnNhX2RhdGEpOworCW1hY3NlYy0+c2VjeS5zY2kgPSBkZXZfdG9fc2NpKGRl diwgTUFDU0VDX1BPUlRfRVMpOwogCXJldHVybiAwOwogfQogCkBAIC0zMTc2LDExICszMTgyLDYg QEAgc3RhdGljIGJvb2wgc2NpX2V4aXN0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzY2lfdCBz Y2kpCiAJcmV0dXJuIGZhbHNlOwogfQogCi1zdGF0aWMgc2NpX3QgZGV2X3RvX3NjaShzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBfX2JlMTYgcG9ydCkKLXsKLQlyZXR1cm4gbWFrZV9zY2koZGV2LT5k ZXZfYWRkciwgcG9ydCk7Ci19Ci0KIHN0YXRpYyBpbnQgbWFjc2VjX2FkZF9kZXYoc3RydWN0IG5l dF9kZXZpY2UgKmRldiwgc2NpX3Qgc2NpLCB1OCBpY3ZfbGVuKQogewogCXN0cnVjdCBtYWNzZWNf ZGV2ICptYWNzZWMgPSBtYWNzZWNfcHJpdihkZXYpOwotLSAKMi4yMC4xCgoKRnJvbSA0MTVhMTJm ZTRhOWMxN2QzYmNiMjkyMDM0OTYxMzdjNGFkMDY4OWFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBWbGFkaW1pciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBueHAuY29tPgpEYXRlOiBU dWUsIDEwIE1hciAyMDIwIDAzOjI4OjE4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxOC82Nl0gbmV0 OiBtc2NjOiBvY2Vsb3Q6IHByb3Blcmx5IGFjY291bnQgZm9yIFZMQU4gaGVhZGVyCiBsZW5ndGgg d2hlbiBzZXR0aW5nIE1SVQoKWyBVcHN0cmVhbSBjb21taXQgYTgwMTVkZWQ4OWFkNzQwZDIxMzU1 NDcwZDQxODc5YzViZDgyYWFiNyBdCgpXaGF0IHRoZSBkcml2ZXIgd3JpdGVzIGludG8gTUFDX01B WExFTl9DRkcgZG9lcyBub3QgYWN0dWFsbHkgcmVwcmVzZW50ClZMQU5fRVRIX0ZSQU1FX0xFTiBi dXQgaW5zdGVhZCBFVEhfRlJBTUVfTEVOICsgRVRIX0ZDU19MRU4uIFllcyB0aGV5IGFyZQpudW1l cmljYWxseSBlcXVhbCwgYnV0IHRoZSBkaWZmZXJlbmNlIGlzIGltcG9ydGFudCwgYXMgdGhlIHN3 aXRjaCB0cmVhdHMKVkxBTi10YWdnZWQgdHJhZmZpYyBzcGVjaWFsbHkgYW5kIGtub3dzIHRvIGlu Y3JlYXNlIHRoZSBtYXhpbXVtIGFjY2VwdGVkCmZyYW1lIHNpemUgYXV0b21hdGljYWxseS4gU28g aXQgaXMgYWx3YXlzIHdyb25nIHRvIGFjY291bnQgZm9yIFZMQU4gaW4KdGhlIE1BQ19NQVhMRU5f Q0ZHIHJlZ2lzdGVyLgoKVW5jb25kaXRpb25hbGx5IGluY3JlYXNlIHRoZSBtYXhpbXVtIGFsbG93 ZWQgZnJhbWUgc2l6ZSBmb3IKZG91YmxlLXRhZ2dlZCB0cmFmZmljLiBBY2NvdW50aW5nIGZvciB0 aGUgYWRkaXRpb25hbCBsZW5ndGggZG9lcyBub3QKbWVhbiB0aGF0IHRoZSBvdGhlciBWTEFOIG1l bWJlcnNoaXAgY2hlY2tzIGFyZW4ndCBwZXJmb3JtZWQsIHNvIHRoZXJlJ3MKbm8gaGFybSBkb25l LgoKQWxzbywgc3RvcCBhYnVzaW5nIHRoZSBNVFUgbmFtZSBmb3IgY29uZmlndXJpbmcgdGhlIE1S VS4gVGhlcmUgaXMgbm8Kc3VwcG9ydCBmb3IgY29uZmlndXJpbmcgdGhlIE1SVSBvbiBhbiBpbnRl cmZhY2UgYXQgdGhlIG1vbWVudC4KCkZpeGVzOiBhNTU2Yzc2YWRjMDUgKCJuZXQ6IG1zY2M6IEFk ZCBpbml0aWFsIE9jZWxvdCBzd2l0Y2ggc3VwcG9ydCIpCkZpeGVzOiBmYTkxNGU5YzRkOTQgKCJu ZXQ6IG1zY2M6IG9jZWxvdDogY3JlYXRlIGEgaGVscGVyIGZvciBjaGFuZ2luZyB0aGUgcG9ydCBN VFUiKQpTaWduZWQtb2ZmLWJ5OiBWbGFkaW1pciBPbHRlYW4gPHZsYWRpbWlyLm9sdGVhbkBueHAu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYyAgICAgfCAyOCArKysrKysr KysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfZGV2 LmggfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jIGIv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYwppbmRleCA5ODViNDZkN2UzZDEuLjg4 YzA0NjRhNTRlMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3Qu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jCkBAIC0yMTc1LDI0ICsy MTc1LDI5IEBAIHN0YXRpYyBpbnQgb2NlbG90X2luaXRfdGltZXN0YW1wKHN0cnVjdCBvY2Vsb3Qg Km9jZWxvdCkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgb2NlbG90X3BvcnRfc2V0X210 dShzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QsIGludCBwb3J0LCBzaXplX3QgbXR1KQorLyogQ29uZmln dXJlIHRoZSBtYXhpbXVtIFNEVSAoTDIgcGF5bG9hZCkgb24gUlggdG8gdGhlIHZhbHVlIHNwZWNp ZmllZCBpbiBAc2R1LgorICogVGhlIGxlbmd0aCBvZiBWTEFOIHRhZ3MgaXMgYWNjb3VudGVkIGZv ciBhdXRvbWF0aWNhbGx5IHZpYSBERVZfTUFDX1RBR1NfQ0ZHLgorICovCitzdGF0aWMgdm9pZCBv Y2Vsb3RfcG9ydF9zZXRfbWF4bGVuKHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCwgaW50IHBvcnQsIHNp emVfdCBzZHUpCiB7CiAJc3RydWN0IG9jZWxvdF9wb3J0ICpvY2Vsb3RfcG9ydCA9IG9jZWxvdC0+ cG9ydHNbcG9ydF07CisJaW50IG1heGxlbiA9IHNkdSArIEVUSF9ITEVOICsgRVRIX0ZDU19MRU47 CiAJaW50IGF0b3Bfd207CiAKLQlvY2Vsb3RfcG9ydF93cml0ZWwob2NlbG90X3BvcnQsIG10dSwg REVWX01BQ19NQVhMRU5fQ0ZHKTsKKwlvY2Vsb3RfcG9ydF93cml0ZWwob2NlbG90X3BvcnQsIG1h eGxlbiwgREVWX01BQ19NQVhMRU5fQ0ZHKTsKIAogCS8qIFNldCBQYXVzZSBXTSBoeXN0ZXJlc2lz Ci0JICogMTUyID0gNiAqIG10dSAvIE9DRUxPVF9CVUZGRVJfQ0VMTF9TWgotCSAqIDEwMSA9IDQg KiBtdHUgLyBPQ0VMT1RfQlVGRkVSX0NFTExfU1oKKwkgKiAxNTIgPSA2ICogbWF4bGVuIC8gT0NF TE9UX0JVRkZFUl9DRUxMX1NaCisJICogMTAxID0gNCAqIG1heGxlbiAvIE9DRUxPVF9CVUZGRVJf Q0VMTF9TWgogCSAqLwogCW9jZWxvdF93cml0ZV9yaXgob2NlbG90LCBTWVNfUEFVU0VfQ0ZHX1BB VVNFX0VOQSB8CiAJCQkgU1lTX1BBVVNFX0NGR19QQVVTRV9TVE9QKDEwMSkgfAogCQkJIFNZU19Q QVVTRV9DRkdfUEFVU0VfU1RBUlQoMTUyKSwgU1lTX1BBVVNFX0NGRywgcG9ydCk7CiAKIAkvKiBU YWlsIGRyb3BwaW5nIHdhdGVybWFyayAqLwotCWF0b3Bfd20gPSAob2NlbG90LT5zaGFyZWRfcXVl dWVfc3ogLSA5ICogbXR1KSAvIE9DRUxPVF9CVUZGRVJfQ0VMTF9TWjsKLQlvY2Vsb3Rfd3JpdGVf cml4KG9jZWxvdCwgb2NlbG90X3dtX2VuYyg5ICogbXR1KSwKKwlhdG9wX3dtID0gKG9jZWxvdC0+ c2hhcmVkX3F1ZXVlX3N6IC0gOSAqIG1heGxlbikgLworCQkgICBPQ0VMT1RfQlVGRkVSX0NFTExf U1o7CisJb2NlbG90X3dyaXRlX3JpeChvY2Vsb3QsIG9jZWxvdF93bV9lbmMoOSAqIG1heGxlbiks CiAJCQkgU1lTX0FUT1AsIHBvcnQpOwogCW9jZWxvdF93cml0ZShvY2Vsb3QsIG9jZWxvdF93bV9l bmMoYXRvcF93bSksIFNZU19BVE9QX1RPVF9DRkcpOwogfQpAQCAtMjIyMSw5ICsyMjI2LDEwIEBA IHZvaWQgb2NlbG90X2luaXRfcG9ydChzdHJ1Y3Qgb2NlbG90ICpvY2Vsb3QsIGludCBwb3J0KQog CQkJICAgREVWX01BQ19IRFhfQ0ZHKTsKIAogCS8qIFNldCBNYXggTGVuZ3RoIGFuZCBtYXhpbXVt IHRhZ3MgYWxsb3dlZCAqLwotCW9jZWxvdF9wb3J0X3NldF9tdHUob2NlbG90LCBwb3J0LCBWTEFO X0VUSF9GUkFNRV9MRU4pOworCW9jZWxvdF9wb3J0X3NldF9tYXhsZW4ob2NlbG90LCBwb3J0LCBF VEhfREFUQV9MRU4pOwogCW9jZWxvdF9wb3J0X3dyaXRlbChvY2Vsb3RfcG9ydCwgREVWX01BQ19U QUdTX0NGR19UQUdfSUQoRVRIX1BfODAyMUFEKSB8CiAJCQkgICBERVZfTUFDX1RBR1NfQ0ZHX1ZM QU5fQVdSX0VOQSB8CisJCQkgICBERVZfTUFDX1RBR1NfQ0ZHX1ZMQU5fREJMX0FXUl9FTkEgfAog CQkJICAgREVWX01BQ19UQUdTX0NGR19WTEFOX0xFTl9BV1JfRU5BLAogCQkJICAgREVWX01BQ19U QUdTX0NGRyk7CiAKQEAgLTIzMDksMTggKzIzMTUsMTggQEAgdm9pZCBvY2Vsb3Rfc2V0X2NwdV9w b3J0KHN0cnVjdCBvY2Vsb3QgKm9jZWxvdCwgaW50IGNwdSwKIAkgKiBPbmx5IG9uZSBwb3J0IGNh biBiZSBhbiBOUEkgYXQgdGhlIHNhbWUgdGltZS4KIAkgKi8KIAlpZiAoY3B1IDwgb2NlbG90LT5u dW1fcGh5c19wb3J0cykgewotCQlpbnQgbXR1ID0gVkxBTl9FVEhfRlJBTUVfTEVOICsgT0NFTE9U X1RBR19MRU47CisJCWludCBzZHUgPSBFVEhfREFUQV9MRU4gKyBPQ0VMT1RfVEFHX0xFTjsKIAog CQlvY2Vsb3Rfd3JpdGUob2NlbG90LCBRU1lTX0VYVF9DUFVfQ0ZHX0VYVF9DUFVRX01TS19NIHwK IAkJCSAgICAgUVNZU19FWFRfQ1BVX0NGR19FWFRfQ1BVX1BPUlQoY3B1KSwKIAkJCSAgICAgUVNZ U19FWFRfQ1BVX0NGRyk7CiAKIAkJaWYgKGluamVjdGlvbiA9PSBPQ0VMT1RfVEFHX1BSRUZJWF9T SE9SVCkKLQkJCW10dSArPSBPQ0VMT1RfU0hPUlRfUFJFRklYX0xFTjsKKwkJCXNkdSArPSBPQ0VM T1RfU0hPUlRfUFJFRklYX0xFTjsKIAkJZWxzZSBpZiAoaW5qZWN0aW9uID09IE9DRUxPVF9UQUdf UFJFRklYX0xPTkcpCi0JCQltdHUgKz0gT0NFTE9UX0xPTkdfUFJFRklYX0xFTjsKKwkJCXNkdSAr PSBPQ0VMT1RfTE9OR19QUkVGSVhfTEVOOwogCi0JCW9jZWxvdF9wb3J0X3NldF9tdHUob2NlbG90 LCBjcHUsIG10dSk7CisJCW9jZWxvdF9wb3J0X3NldF9tYXhsZW4ob2NlbG90LCBjcHUsIHNkdSk7 CiAJfQogCiAJLyogQ1BVIHBvcnQgSW5qZWN0aW9uL0V4dHJhY3Rpb24gY29uZmlndXJhdGlvbiAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfZGV2LmggYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdF9kZXYuaAppbmRleCAwYTUwZDUzYmJkM2Yu LjdjMDg0MzcwNjFmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vs b3RfZGV2LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfZGV2LmgKQEAg LTc0LDcgKzc0LDcgQEAKICNkZWZpbmUgREVWX01BQ19UQUdTX0NGR19UQUdfSURfTSAgICAgICAg ICAgICAgICAgICAgICAgICBHRU5NQVNLKDMxLCAxNikKICNkZWZpbmUgREVWX01BQ19UQUdTX0NG R19UQUdfSURfWCh4KSAgICAgICAgICAgICAgICAgICAgICAoKCh4KSAmIEdFTk1BU0soMzEsIDE2 KSkgPj4gMTYpCiAjZGVmaW5lIERFVl9NQUNfVEFHU19DRkdfVkxBTl9MRU5fQVdSX0VOQSAgICAg ICAgICAgICAgICAgQklUKDIpCi0jZGVmaW5lIERFVl9NQUNfVEFHU19DRkdfUEJfRU5BICAgICAg ICAgICAgICAgICAgICAgICAgICAgQklUKDEpCisjZGVmaW5lIERFVl9NQUNfVEFHU19DRkdfVkxB Tl9EQkxfQVdSX0VOQSAgICAgICAgICAgICAgICAgQklUKDEpCiAjZGVmaW5lIERFVl9NQUNfVEFH U19DRkdfVkxBTl9BV1JfRU5BICAgICAgICAgICAgICAgICAgICAgQklUKDApCiAKICNkZWZpbmUg REVWX01BQ19BRFZfQ0hLX0NGRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDJjCi0t IAoyLjIwLjEKCgpGcm9tIDk1NWJhZDExMWI0MGZmM2M5MDg0MWEzOWZmYzFmN2I3YWI2M2ExYjEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50 ZXJAb3JhY2xlLmNvbT4KRGF0ZTogV2VkLCA0IE1hciAyMDIwIDE3OjI0OjMxICswMzAwClN1Ympl Y3Q6IFtQQVRDSCAxOS82Nl0gbmV0OiBuZmM6IGZpeCBib3VuZHMgY2hlY2tpbmcgYnVncyBvbiAi cGlwZSIKClsgVXBzdHJlYW0gY29tbWl0IGEzYWVmYmZlNDU3NTFiZjdiMzM4YzE4MWI5NzYwOGUy NzZiNWJiNzMgXQoKVGhpcyBpcyBzaW1pbGFyIHRvIGNvbW1pdCA2NzRkOWRlMDJhYTcgKCJORkM6 IEZpeCBwb3NzaWJsZSBtZW1vcnkKY29ycnVwdGlvbiB3aGVuIGhhbmRsaW5nIFNIRExDIEktRnJh bWUgY29tbWFuZHMiKSBhbmQgY29tbWl0IGQ3ZWU4MWFkMDlmMAooIk5GQzogbmNpOiBBZGQgc29t ZSBib3VuZHMgY2hlY2tpbmcgaW4gbmNpX2hjaV9jbWRfcmVjZWl2ZWQoKSIpIHdoaWNoCmFkZGVk IHJhbmdlIGNoZWNrcyBvbiAicGlwZSIuCgpUaGUgInBpcGUiIHZhcmlhYmxlIGNvbWVzIHNrYi0+ ZGF0YVswXSBpbiBuZmNfaGNpX21zZ19yeF93b3JrKCkuCkl0J3MgaW4gdGhlIDAtMjU1IHJhbmdl LiAgV2UncmUgdXNpbmcgaXQgYXMgdGhlIGFycmF5IGluZGV4IGludG8gdGhlCmhkZXYtPnBpcGVz W10gYXJyYXkgd2hpY2ggaGFzIE5GQ19IQ0lfTUFYX1BJUEVTICgxMjgpIG1lbWJlcnMuCgpGaXhl czogMTE4Mjc4ZjIwYWE4ICgiTkZDOiBoY2k6IEFkZCBwaXBlcyB0YWJsZSB0byByZWZlcmVuY2Ug dGhlbSB3aXRoIGEgdHVwbGUge2dhdGUsIGhvc3R9IikKU2lnbmVkLW9mZi1ieTogRGFuIENhcnBl bnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25mYy9oY2kvY29yZS5jIHwgMTkg KysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25mYy9oY2kvY29yZS5jIGIvbmV0L25mYy9o Y2kvY29yZS5jCmluZGV4IDZmMWIwOTZlNjAxYy4uNDM4MTFiNTIxOWI1IDEwMDY0NAotLS0gYS9u ZXQvbmZjL2hjaS9jb3JlLmMKKysrIGIvbmV0L25mYy9oY2kvY29yZS5jCkBAIC0xODEsMTMgKzE4 MSwyMCBAQCB2b2lkIG5mY19oY2lfcmVzcF9yZWNlaXZlZChzdHJ1Y3QgbmZjX2hjaV9kZXYgKmhk ZXYsIHU4IHJlc3VsdCwKIHZvaWQgbmZjX2hjaV9jbWRfcmVjZWl2ZWQoc3RydWN0IG5mY19oY2lf ZGV2ICpoZGV2LCB1OCBwaXBlLCB1OCBjbWQsCiAJCQkgIHN0cnVjdCBza19idWZmICpza2IpCiB7 Ci0JdTggZ2F0ZSA9IGhkZXYtPnBpcGVzW3BpcGVdLmdhdGU7CiAJdTggc3RhdHVzID0gTkZDX0hD SV9BTllfT0s7CiAJc3RydWN0IGhjaV9jcmVhdGVfcGlwZV9yZXNwICpjcmVhdGVfaW5mbzsKIAlz dHJ1Y3QgaGNpX2RlbGV0ZV9waXBlX25vdGkgKmRlbGV0ZV9pbmZvOwogCXN0cnVjdCBoY2lfYWxs X3BpcGVfY2xlYXJlZF9ub3RpICpjbGVhcmVkX2luZm87CisJdTggZ2F0ZTsKIAotCXByX2RlYnVn KCJmcm9tIGdhdGUgJXggcGlwZSAleCBjbWQgJXhcbiIsIGdhdGUsIHBpcGUsIGNtZCk7CisJcHJf ZGVidWcoImZyb20gcGlwZSAleCBjbWQgJXhcbiIsIHBpcGUsIGNtZCk7CisKKwlpZiAocGlwZSA+ PSBORkNfSENJX01BWF9QSVBFUykgeworCQlzdGF0dXMgPSBORkNfSENJX0FOWV9FX05PSzsKKwkJ Z290byBleGl0OworCX0KKworCWdhdGUgPSBoZGV2LT5waXBlc1twaXBlXS5nYXRlOwogCiAJc3dp dGNoIChjbWQpIHsKIAljYXNlIE5GQ19IQ0lfQURNX05PVElGWV9QSVBFX0NSRUFURUQ6CkBAIC0z NzUsOCArMzgyLDE0IEBAIHZvaWQgbmZjX2hjaV9ldmVudF9yZWNlaXZlZChzdHJ1Y3QgbmZjX2hj aV9kZXYgKmhkZXYsIHU4IHBpcGUsIHU4IGV2ZW50LAogCQkJICAgIHN0cnVjdCBza19idWZmICpz a2IpCiB7CiAJaW50IHIgPSAwOwotCXU4IGdhdGUgPSBoZGV2LT5waXBlc1twaXBlXS5nYXRlOwor CXU4IGdhdGU7CisKKwlpZiAocGlwZSA+PSBORkNfSENJX01BWF9QSVBFUykgeworCQlwcl9lcnIo IkRpc2NhcmRlZCBldmVudCAleCB0byBpbnZhbGlkIHBpcGUgJXhcbiIsIGV2ZW50LCBwaXBlKTsK KwkJZ290byBleGl0OworCX0KIAorCWdhdGUgPSBoZGV2LT5waXBlc1twaXBlXS5nYXRlOwogCWlm IChnYXRlID09IE5GQ19IQ0lfSU5WQUxJRF9HQVRFKSB7CiAJCXByX2VycigiRGlzY2FyZGVkIGV2 ZW50ICV4IHRvIHVub3BlbmVkIHBpcGUgJXhcbiIsIGV2ZW50LCBwaXBlKTsKIAkJZ290byBleGl0 OwotLSAKMi4yMC4xCgoKRnJvbSAwZWYzMjZjOGYwZjBhZWRhZmJhZGZkNDMyMGRiZmExZjkyOTAx M2ZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxs ZW1iQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgOSBNYXIgMjAyMCAxMTozNDozNSAtMDQwMApTdWJq ZWN0OiBbUEFUQ0ggMjAvNjZdIG5ldC9wYWNrZXQ6IHRwYWNrZXRfcmN2OiBkbyBub3QgaW5jcmVt ZW50IHJpbmcgaW5kZXggb24KIGRyb3AKClsgVXBzdHJlYW0gY29tbWl0IDQ2ZTRjNDIxYTA1M2Mz NmJmN2EzM2RkYTIyNzI0ODFiY2FmM2VlZDMgXQoKSW4gb25lIGVycm9yIGNhc2UsIHRwYWNrZXRf cmN2IGRyb3BzIHBhY2tldHMgYWZ0ZXIgaW5jcmVtZW50aW5nIHRoZQpyaW5nIHByb2R1Y2VyIGlu ZGV4LgoKSWYgdGhpcyBoYXBwZW5zLCBpdCBkb2VzIG5vdCB1cGRhdGUgdHBfc3RhdHVzIHRvIFRQ X1NUQVRVU19VU0VSIGFuZAp0aHVzIHRoZSByZWFkZXIgaXMgc3RhbGxlZCBmb3IgYW4gaXRlcmF0 aW9uIG9mIHRoZSByaW5nLCBjYXVzaW5nIG91dApvZiBvcmRlciBhcnJpdmFsLgoKVGhlIG9ubHkg c3VjaCBlcnJvciBwYXRoIGlzIHdoZW4gdmlydGlvX25ldF9oZHJfZnJvbV9za2IgZmFpbHMgZHVl CnRvIGVuY291bnRlcmluZyBhbiB1bmtub3duIEdTTyB0eXBlLgoKU2lnbmVkLW9mZi1ieTogV2ls bGVtIGRlIEJydWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQu YyB8IDEzICsrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9w YWNrZXQvYWZfcGFja2V0LmMKaW5kZXggMTE4Y2Q2NmI3NTE2Li4yMGVkYjdjMjVlMjIgMTAwNjQ0 Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQu YwpAQCAtMjI3Myw2ICsyMjczLDEzIEBAIHN0YXRpYyBpbnQgdHBhY2tldF9yY3Yoc3RydWN0IHNr X2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkJVFBfU1RBVFVTX0tFUk5F TCwgKG1hY29mZitzbmFwbGVuKSk7CiAJaWYgKCFoLnJhdykKIAkJZ290byBkcm9wX25fYWNjb3Vu dDsKKworCWlmIChkb192bmV0ICYmCisJICAgIHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwg aC5yYXcgKyBtYWNvZmYgLQorCQkJCSAgICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRyKSwK KwkJCQkgICAgdmlvX2xlKCksIHRydWUsIDApKQorCQlnb3RvIGRyb3Bfbl9hY2NvdW50OworCiAJ aWYgKHBvLT50cF92ZXJzaW9uIDw9IFRQQUNLRVRfVjIpIHsKIAkJcGFja2V0X2luY3JlbWVudF9y eF9oZWFkKHBvLCAmcG8tPnJ4X3JpbmcpOwogCS8qCkBAIC0yMjg1LDEyICsyMjkyLDYgQEAgc3Rh dGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAogCQkJc3RhdHVzIHw9IFRQX1NUQVRVU19MT1NJTkc7CiAJfQogCi0JaWYgKGRvX3Zu ZXQgJiYKLQkgICAgdmlydGlvX25ldF9oZHJfZnJvbV9za2Ioc2tiLCBoLnJhdyArIG1hY29mZiAt Ci0JCQkJICAgIHNpemVvZihzdHJ1Y3QgdmlydGlvX25ldF9oZHIpLAotCQkJCSAgICB2aW9fbGUo KSwgdHJ1ZSwgMCkpCi0JCWdvdG8gZHJvcF9uX2FjY291bnQ7Ci0KIAlwby0+c3RhdHMuc3RhdHMx LnRwX3BhY2tldHMrKzsKIAlpZiAoY29weV9za2IpIHsKIAkJc3RhdHVzIHw9IFRQX1NUQVRVU19D T1BZOwotLSAKMi4yMC4xCgoKRnJvbSA1ZTY0NzI3YTZiNDYxYTA4ZTQ1NGE5ODZjNWJkNWE1Yjcw Y2Q5ZTA3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hcyBHb3Jza2kgPGpvbmFz LmdvcnNraUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAyMDo0Njo1NyArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMjEvNjZdIG5ldDogcGh5OiBiY202M3h4OiBmaXggT09QUyBkdWUgdG8g bWlzc2luZyBkcml2ZXIgbmFtZQoKWyBVcHN0cmVhbSBjb21taXQgNDNkZTgxYjA2MDFkZjdkNzk4 OGQzZjU2MTdlZTA5ODdkZjY1Yzg4MyBdCgo3MTk2NTVhMTQ5NzEgKCJuZXQ6IHBoeTogUmVwbGFj ZSBwaHkgZHJpdmVyIGZlYXR1cmVzIHUzMiB3aXRoIGxpbmtfbW9kZQpiaXRtYXAiKSB3YXMgYSBi aXQgb3Zlci1lYWdlciBhbmQgYWxzbyByZW1vdmVkIHRoZSBzZWNvbmQgcGh5IGRyaXZlcidzCm5h bWUsIHJlc3VsdGluZyBpbiBhIG5hc3R5IE9PUFMgb24gcmVnaXN0cmF0aW9uOgoKWyAgICAxLjMx OTg1NF0gQ1BVIDAgVW5hYmxlIHRvIGhhbmRsZSBrZXJuZWwgcGFnaW5nIHJlcXVlc3QgYXQgdmly dHVhbCBhZGRyZXNzIDAwMDAwMDAwLCBlcGMgPT0gODA0ZGQ1MGMsIHJhID09IDgwNGRkNGYwClsg ICAgMS4zMzA4NTldIE9vcHNbIzFdOgpbICAgIDEuMzMzMTM4XSBDUFU6IDAgUElEOiAxIENvbW06 IHN3YXBwZXIvMCBOb3QgdGFpbnRlZCA1LjQuMjIgIzAKWyAgICAxLjMzOTIxN10gJCAwICAgOiAw MDAwMDAwMCAwMDAwMDAwMSA4N2NhN2YwMCA4MDVjMTg3NApbICAgIDEuMzQ0NTkwXSAkIDQgICA6 IDAwMDAwMDAwIDAwMDAwMDQ3IDAwNTg1MDAwIDg3MDFmODAwClsgICAgMS4zNDk5NjVdICQgOCAg IDogODcwMWY4MDAgODA0ZjRhNWMgMDAwMDAwMDMgNjQ3MjY5NzYKWyAgICAxLjM1NTM0MV0gJDEy ICAgOiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDExNApbICAgIDEuMzYwNzE4XSAk MTYgICA6IDg3Y2E3ZjgwIDAwMDAwMDAwIDAwMDAwMDAwIDgwNjM5ZmU0ClsgICAgMS4zNjYwOTNd ICQyMCAgIDogMDAwMDAwMDIgMDAwMDAwMDAgODA2NDQxZDAgODBiOTAwMDAKWyAgICAxLjM3MTQ3 MF0gJDI0ICAgOiAwMDAwMDAwMCAwMDAwMDAwMApbICAgIDEuMzc2ODQ3XSAkMjggICA6IDg3YzFl MDAwIDg3YzFmZGEwIDgwYjkwMDAwIDgwNGRkNGYwClsgICAgMS4zODIyMjRdIEhpICAgIDogZDFj OGY4ZGEKWyAgICAxLjM4NTE4MF0gTG8gICAgOiA1NTE4YTQ4MApbICAgIDEuMzg4MTgyXSBlcGMg ICA6IDgwNGRkNTBjIGtzZXRfZmluZF9vYmorMHgzYy8weDExNApbICAgIDEuMzkzMzQ1XSByYSAg ICA6IDgwNGRkNGYwIGtzZXRfZmluZF9vYmorMHgyMC8weDExNApbICAgIDEuMzk4NTMwXSBTdGF0 dXM6IDEwMDA4NzAzIEtFUk5FTCBFWEwgSUUKWyAgICAxLjQwMjgzM10gQ2F1c2UgOiAwMDgwMDAw OCAoRXhjQ29kZSAwMikKWyAgICAxLjQwNjk1Ml0gQmFkVkEgOiAwMDAwMDAwMApbICAgIDEuNDA5 OTEzXSBQcklkICA6IDAwMDJhMDc1IChCcm9hZGNvbSBCTUlQUzQzNTApClsgICAgMS40MTQ3NDVd IE1vZHVsZXMgbGlua2VkIGluOgpbICAgIDEuNDE3ODk1XSBQcm9jZXNzIHN3YXBwZXIvMCAocGlk OiAxLCB0aHJlYWRpbmZvPShwdHJ2YWwpLCB0YXNrPShwdHJ2YWwpLCB0bHM9MDAwMDAwMDApClsg ICAgMS40MjYyMTRdIFN0YWNrIDogODdjZWMwMDAgODA2MzAwMDAgODA2MzkzNzAgODA2NDA2NTgg ODA2NDAwMDAgODAwNDlhZjQgODA2MzlmZTQgODA2M2EwZDgKWyAgICAxLjQzNDgxNl0gICAgICAg ICA4MDYzYTBkOCA4MDJlZjA3OCAwMDAwMDAwMiAwMDAwMDAwMCA4MDY0NDFkMCA4MGI5MDAwMCA4 MDYzYTBkOCA4MDJlZjExNApbICAgIDEuNDQzNDE3XSAgICAgICAgIDg3Y2VhMGRlIDg3YzFmZGUw IDAwMDAwMDAwIDgwNGRlNDg4IDg3Y2VhMDAwIDgwNjNhMGQ4IDgwNjNhMGQ4IDgwMzM0ZTQ4Clsg ICAgMS40NTIwMThdICAgICAgICAgODA2NDAwMDAgODA2Mzk4NGMgODA2MzliZjQgMDAwMDAwMDAg ODA2NWRlNDggMDAwMDAwMDEgODA2M2EwZDggODAzMzRlZDAKWyAgICAxLjQ2MDYyMF0gICAgICAg ICA4MDY0NDFkMCA4MGI5MDAwMCA4MGI5MDAwMCA4MDJlZjE2NCA4MDY1ZGQ3MCA4MDYyMDAwMCA4 MGI5MDAwMCA4MDY1ZGU1OApbICAgIDEuNDY5MjIyXSAgICAgICAgIC4uLgpbICAgIDEuNDcxNzM0 XSBDYWxsIFRyYWNlOgpbICAgIDEuNDc0MjU1XSBbPDgwNGRkNTBjPl0ga3NldF9maW5kX29iaisw eDNjLzB4MTE0ClsgICAgMS40NzkxNDFdIFs8ODAyZWYwNzg+XSBkcml2ZXJfZmluZCsweDFjLzB4 NDQKWyAgICAxLjQ4MzY2NV0gWzw4MDJlZjExND5dIGRyaXZlcl9yZWdpc3RlcisweDc0LzB4MTQ4 ClsgICAgMS40ODg3MTldIFs8ODAzMzRlNDg+XSBwaHlfZHJpdmVyX3JlZ2lzdGVyKzB4OWMvMHhk MApbICAgIDEuNDkzOTY4XSBbPDgwMzM0ZWQwPl0gcGh5X2RyaXZlcnNfcmVnaXN0ZXIrMHg1NC8w eGU4ClsgICAgMS40OTkzNDVdIFs8ODAwMTA2MWM+XSBkb19vbmVfaW5pdGNhbGwrMHg3Yy8weDFm NApbICAgIDEuNTA0Mzc0XSBbPDgwNjQ0ZWQ4Pl0ga2VybmVsX2luaXRfZnJlZWFibGUrMHgxZDQv MHgyYjQKWyAgICAxLjUwOTk0MF0gWzw4MDRmNGUyND5dIGtlcm5lbF9pbml0KzB4MTAvMHhmOApb ICAgIDEuNTE0NTAyXSBbPDgwMDE4ZTY4Pl0gcmV0X2Zyb21fa2VybmVsX3RocmVhZCsweDE0LzB4 MWMKWyAgICAxLjUyMDA0MF0gQ29kZTogMTA2MDAwMGMgIDAyMjAyMDI1ICA5MDY1MDAwMCA8OTA4 MTAwMDA+IDI0NjMwMDAxICAxNDI1MDAwNCAgMjQ4NDAwMDEgIDE0YTBmZmZiICA5MDY1MDAwMApb ICAgIDEuNTMwMDYxXQpbICAgIDEuNTMxNjk4XSAtLS1bIGVuZCB0cmFjZSBkNTJmMTcxN2NkMjli ZGM4IF0tLS0KCkZpeCBpdCBieSByZWFkZGluZyB0aGUgbmFtZS4KCkZpeGVzOiA3MTk2NTVhMTQ5 NzEgKCJuZXQ6IHBoeTogUmVwbGFjZSBwaHkgZHJpdmVyIGZlYXR1cmVzIHUzMiB3aXRoIGxpbmtf bW9kZSBiaXRtYXAiKQpTaWduZWQtb2ZmLWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBn bWFpbC5jb20+CkFja2VkLWJ5OiBGbG9yaWFuIEZhaW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIGRyaXZlcnMvbmV0L3BoeS9iY202M3h4LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9iY202M3h4LmMgYi9kcml2 ZXJzL25ldC9waHkvYmNtNjN4eC5jCmluZGV4IDIzZjE5NThiYTZhZC4uNDU5ZmIyMDY5YzdlIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvYmNtNjN4eC5jCisrKyBiL2RyaXZlcnMvbmV0L3Bo eS9iY202M3h4LmMKQEAgLTczLDYgKzczLDcgQEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIGJj bTYzeHhfZHJpdmVyW10gPSB7CiAJLyogc2FtZSBwaHkgYXMgYWJvdmUsIHdpdGgganVzdCBhIGRp ZmZlcmVudCBPVUkgKi8KIAkucGh5X2lkCQk9IDB4MDAyYmRjMDAsCiAJLnBoeV9pZF9tYXNrCT0g MHhmZmZmZmMwMCwKKwkubmFtZQkJPSAiQnJvYWRjb20gQkNNNjNYWCAoMikiLAogCS8qIFBIWV9C QVNJQ19GRUFUVVJFUyAqLwogCS5mbGFncwkJPSBQSFlfSVNfSU5URVJOQUwsCiAJLmNvbmZpZ19p bml0CT0gYmNtNjN4eF9jb25maWdfaW5pdCwKLS0gCjIuMjAuMQoKCkZyb20gMmUzZDE5MWFjOWQz NDRjYjMwMWQ4OTFkYTM1YzE2Yzk2NmFiNzEzMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogS2Fyc3RlbiBHcmF1bCA8a2dyYXVsQGxpbnV4LmlibS5jb20+CkRhdGU6IFR1ZSwgMTAgTWFy IDIwMjAgMDk6MzM6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIIDIyLzY2XSBuZXQvc21jOiBjYW5j ZWwgZXZlbnQgd29ya2VyIGR1cmluZyBkZXZpY2UgcmVtb3ZhbAoKWyBVcHN0cmVhbSBjb21taXQg ZWNlMGQ3YmQ3NDYxNTc3MzI2ODQ3NWI2YjY0ZDZmMWViYmQ0YjRjNiBdCgpEdXJpbmcgSUIgZGV2 aWNlIHJlbW92YWwsIGNhbmNlbCB0aGUgZXZlbnQgd29ya2VyIGJlZm9yZSB0aGUgZGV2aWNlCnN0 cnVjdHVyZSBpcyBmcmVlZC4KCkZpeGVzOiBhNGNmMDQ0M2M0MTQgKCJzbWM6IGludHJvZHVjZSBT TUMgYXMgYW4gSUItY2xpZW50IikKUmVwb3J0ZWQtYnk6IHN5emJvdCtiMjk3YzY4MjU3NTJlN2Ew NzI3MkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IEthcnN0ZW4gR3Jh dWwgPGtncmF1bEBsaW51eC5pYm0uY29tPgpSZXZpZXdlZC1ieTogVXJzdWxhIEJyYXVuIDx1YnJh dW5AbGludXguaWJtLmNvbT4KUmV2aWV3ZWQtYnk6IExlb24gUm9tYW5vdnNreSA8bGVvbnJvQG1l bGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9zbWMvc21jX2liLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9zbWMvc21jX2liLmMgYi9uZXQvc21jL3NtY19p Yi5jCmluZGV4IDU0ODYzMjYyMWY0Yi4uMzJmZWUyY2E3YzRjIDEwMDY0NAotLS0gYS9uZXQvc21j L3NtY19pYi5jCisrKyBiL25ldC9zbWMvc21jX2liLmMKQEAgLTU4MCw2ICs1ODAsNyBAQCBzdGF0 aWMgdm9pZCBzbWNfaWJfcmVtb3ZlX2RldihzdHJ1Y3QgaWJfZGV2aWNlICppYmRldiwgdm9pZCAq Y2xpZW50X2RhdGEpCiAJc21jX3NtY3JfdGVybWluYXRlX2FsbChzbWNpYmRldik7CiAJc21jX2li X2NsZWFudXBfcGVyX2liZGV2KHNtY2liZGV2KTsKIAlpYl91bnJlZ2lzdGVyX2V2ZW50X2hhbmRs ZXIoJnNtY2liZGV2LT5ldmVudF9oYW5kbGVyKTsKKwljYW5jZWxfd29ya19zeW5jKCZzbWNpYmRl di0+cG9ydF9ldmVudF93b3JrKTsKIAlrZnJlZShzbWNpYmRldik7CiB9CiAKLS0gCjIuMjAuMQoK CkZyb20gYzBlNWQzYTZiNDU5M2YwZDkwZjk2MTRkZWZkNzNhYjhjZjI4M2VlMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogUmVtaSBQb21tYXJlbCA8cmVwa0B0cmlwbGVmYXUubHQ+CkRh dGU6IFN1biwgOCBNYXIgMjAyMCAxMDoyNTo1NiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjMvNjZd IG5ldDogc3RtbWFjOiBkd21hYzEwMDA6IERpc2FibGUgQUNTIGlmIGVuaGFuY2VkIGRlc2NzCiBh cmUgbm90IHVzZWQKClsgVXBzdHJlYW0gY29tbWl0IGI3MjNiZDkzMzk4MGY0OTU2ZGFiYzhhOGQ4 NGIzZTgzYmU4ZDA5NGMgXQoKQUNTIChhdXRvIFBBRC9GQ1Mgc3RyaXBwaW5nKSByZW1vdmVzIEZD UyBvZmYgODAyLjMgcGFja2V0cyAoTExDKSBzbyB0aGF0CnRoZXJlIGlzIG5vIG5lZWQgdG8gbWFu dWFsbHkgc3RyaXAgaXQgZm9yIHN1Y2ggcGFja2V0cy4gVGhlIGVuaGFuY2VkIERNQQpkZXNjcmlw dG9ycyBhbGxvdyB0byBmbGFnIExMQyBwYWNrZXRzIHNvIHRoYXQgdGhlIHJlY2VpdmluZyBjYWxs YmFjayBjYW4KdXNlIHRoYXQgdG8gc3RyaXAgRkNTIG1hbnVhbGx5IG9yIG5vdC4gT24gdGhlIG90 aGVyIGhhbmQsIG5vcm1hbApkZXNjcmlwdG9ycyBkbyBub3Qgc3VwcG9ydCB0aGF0LgoKVGh1cyBp biBvcmRlciB0byBub3QgdHJ1bmNhdGUgTExDIHBhY2tldCBBQ1Mgc2hvdWxkIGJlIGRpc2FibGVk IHdoZW4KdXNpbmcgbm9ybWFsIERNQSBkZXNjcmlwdG9ycy4KCkZpeGVzOiA0N2RkN2E1NDBiOGEw ICgibmV0OiBhZGQgc3VwcG9ydCBmb3IgU1RNaWNyb2VsZWN0cm9uaWNzIEV0aGVybmV0IGNvbnRy b2xsZXJzLiIpClNpZ25lZC1vZmYtYnk6IFJlbWkgUG9tbWFyZWwgPHJlcGtAdHJpcGxlZmF1Lmx0 PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYyB8 IDMgKystCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAw X2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9j b3JlLmMKaW5kZXggZDAzNTZmYmQxZTQzLi41NDI3ODQzMDA2MjAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYwpAQCAtMjQs NiArMjQsNyBAQAogc3RhdGljIHZvaWQgZHdtYWMxMDAwX2NvcmVfaW5pdChzdHJ1Y3QgbWFjX2Rl dmljZV9pbmZvICpodywKIAkJCQlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogeworCXN0cnVjdCBz dG1tYWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7CiAJdm9pZCBfX2lvbWVtICppb2Fk ZHIgPSBody0+cGNzcjsKIAl1MzIgdmFsdWUgPSByZWFkbChpb2FkZHIgKyBHTUFDX0NPTlRST0wp OwogCWludCBtdHUgPSBkZXYtPm10dTsKQEAgLTM1LDcgKzM2LDcgQEAgc3RhdGljIHZvaWQgZHdt YWMxMDAwX2NvcmVfaW5pdChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywKIAkgKiBCcm9hZGNv bSB0YWdzIGNhbiBsb29rIGxpa2UgaW52YWxpZCBMTEMvU05BUCBwYWNrZXRzIGFuZCBjYXVzZSB0 aGUKIAkgKiBoYXJkd2FyZSB0byB0cnVuY2F0ZSBwYWNrZXRzIG9uIHJlY2VwdGlvbi4KIAkgKi8K LQlpZiAobmV0ZGV2X3VzZXNfZHNhKGRldikpCisJaWYgKG5ldGRldl91c2VzX2RzYShkZXYpIHx8 ICFwcml2LT5wbGF0LT5lbmhfZGVzYykKIAkJdmFsdWUgJj0gfkdNQUNfQ09OVFJPTF9BQ1M7CiAK IAlpZiAobXR1ID4gMTUwMCkKLS0gCjIuMjAuMQoKCkZyb20gNWRjNGQ0MDM0OGVjOTVmM2Q2MDYw Mzk5ZmIzNTU1MzkxZjNkNGNjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ29saW4g SWFuIEtpbmcgPGNvbGluLmtpbmdAY2Fub25pY2FsLmNvbT4KRGF0ZTogVGh1LCAxMiBNYXIgMjAy MCAxNTowNDozMCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMjQvNjZdIG5ldDogc3lzdGVtcG9ydDog Zml4IGluZGV4IGNoZWNrIHRvIGF2b2lkIGFuIGFycmF5IG91dAogb2YgYm91bmRzIGFjY2VzcwoK WyBVcHN0cmVhbSBjb21taXQgYzAzNjg1OTVjMTYzOTk0NzgzOWMwZGI4Mjk0ZWU5NmFjYTBiM2I4 NiBdCgpDdXJyZW50bHkgdGhlIGJvdW5kcyBjaGVjayBvbiBpbmRleCBpcyBvZmYgYnkgb25lIGFu ZCBjYW4gbGVhZCB0bwphbiBvdXQgb2YgYm91bmRzIGFjY2VzcyBvbiBhcnJheSBwcml2LT5maWx0 ZXJzX2xvYyB3aGVuIGluZGV4IGlzClJYQ0hLX0JSQ01fVEFHX01BWC4KCkZpeGVzOiBiYjkwNTFh MmIyMzAgKCJuZXQ6IHN5c3RlbXBvcnQ6IEFkZCBzdXBwb3J0IGZvciBXQUtFX0ZJTFRFUiIpClNp Z25lZC1vZmYtYnk6IENvbGluIElhbiBLaW5nIDxjb2xpbi5raW5nQGNhbm9uaWNhbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKaW5kZXggYzFhZTQyMjQ0ZjAyLi41ZTMyMmZlMzBi MWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JjbXN5c3BvcnQu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9iY21zeXNwb3J0LmMKQEAgLTIx MzUsNyArMjEzNSw3IEBAIHN0YXRpYyBpbnQgYmNtX3N5c3BvcnRfcnVsZV9zZXQoc3RydWN0IGJj bV9zeXNwb3J0X3ByaXYgKnByaXYsCiAJCXJldHVybiAtRU5PU1BDOwogCiAJaW5kZXggPSBmaW5k X2ZpcnN0X3plcm9fYml0KHByaXYtPmZpbHRlcnMsIFJYQ0hLX0JSQ01fVEFHX01BWCk7Ci0JaWYg KGluZGV4ID4gUlhDSEtfQlJDTV9UQUdfTUFYKQorCWlmIChpbmRleCA+PSBSWENIS19CUkNNX1RB R19NQVgpCiAJCXJldHVybiAtRU5PU1BDOwogCiAJLyogTG9jYXRpb24gaXMgdGhlIGNsYXNzaWZp Y2F0aW9uIElELCBhbmQgaW5kZXggaXMgdGhlIHBvc2l0aW9uCi0tIAoyLjIwLjEKCgpGcm9tIDYx ZTY0ZmE1MTZlZGNhNmJhMDQ2ZGUxMWM0YjBmMWNmYjc5OTYzZjMgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFlvdS1TaGVuZyBZYW5nIDx2aWNhbW8ueWFuZ0BjYW5vbmljYWwuY29tPgpE YXRlOiBXZWQsIDI2IEZlYiAyMDIwIDIzOjM3OjEwICswODAwClN1YmplY3Q6IFtQQVRDSCAyNS82 Nl0gcjgxNTI6IGNoZWNrIGRpc2Nvbm5lY3Qgc3RhdHVzIGFmdGVyIGxvbmcgc2xlZXAKClsgVXBz dHJlYW0gY29tbWl0IGQ2NGM3YTA4MDM0YjMyYzI4NWU1NzYyMDhhZTQ0ZmMzYmEzZmE3ZGYgXQoK RGVsbCBVU0IgVHlwZSBDIGRvY2tpbmcgV0QxOS9XRDE5REMgYXR0YWNoZXMgYWRkaXRpb25hbCBw ZXJpcGhlcmFscyBhczoKCiAgLzogQnVzIDAyLlBvcnQgMTogRGV2IDEsIENsYXNzPXJvb3RfaHVi LCBEcml2ZXI9eGhjaV9oY2QvNnAsIDUwMDBNCiAgICAgIHxfXyBQb3J0IDE6IERldiAxMSwgSWYg MCwgQ2xhc3M9SHViLCBEcml2ZXI9aHViLzRwLCA1MDAwTQogICAgICAgICAgfF9fIFBvcnQgMzog RGV2IDEyLCBJZiAwLCBDbGFzcz1IdWIsIERyaXZlcj1odWIvNHAsIDUwMDBNCiAgICAgICAgICB8 X18gUG9ydCA0OiBEZXYgMTMsIElmIDAsIENsYXNzPVZlbmRvciBTcGVjaWZpYyBDbGFzcywKICAg ICAgICAgICAgICBEcml2ZXI9cjgxNTIsIDUwMDBNCgp3aGVyZSB1c2IgMi0xLTMgaXMgYSBodWIg Y29ubmVjdGluZyBhbGwgVVNCIFR5cGUtQS9DIHBvcnRzIG9uIHRoZSBkb2NrLgoKV2hlbiBob3Rw bHVnZ2luZyBzdWNoIGRvY2sgd2l0aCBhZGRpdGlvbmFsIHVzYiBkZXZpY2VzIGFscmVhZHkgYXR0 YWNoZWQgb24KaXQsIHRoZSBwcm9iaW5nIHByb2Nlc3MgbWF5IHJlc2V0IHVzYiAyLjEgcG9ydCwg dGhlcmVmb3JlIHI4MTUyIGV0aGVybmV0CmRldmljZSBpcyBhbHNvIHJlc2V0LiBIb3dldmVyLCBk dXJpbmcgcjgxNTIgZGV2aWNlIGluaXQgdGhlcmUgYXJlIHNldmVyYWwKZm9yLWxvb3BzIHRoYXQs IHdoZW4gaXQncyB1bmFibGUgdG8gcmV0cmlldmUgaGFyZHdhcmUgcmVnaXN0ZXJzIGR1ZSB0bwpi ZWluZyBkaXNjb25uZWN0ZWQgZnJvbSBVU0IsIG1heSB0YWtlIHVwIHRvIDE0IHNlY29uZHMgZWFj aCBpbiBwcmFjdGljZSwKYW5kIHRoYXQgaGFzIHRvIGJlIGNvbXBsZXRlZCBiZWZvcmUgVVNCIG1h eSByZS1lbnVtZXJhdGUgZGV2aWNlcyBvbiB0aGUKYnVzLiBBcyBhIHJlc3VsdCwgZGV2aWNlcyBh dHRhY2hlZCB0byB0aGUgZG9jayB3aWxsIG9ubHkgYmUgYXZhaWxhYmxlCmFmdGVyIG5lYXJseSAx IG1pbnV0ZSBhZnRlciB0aGUgZG9jayB3YXMgcGx1Z2dlZCBpbjoKCiAgWyAyMTYuMzg4MjkwXSBb MjUwXSByODE1MiAyLTEuNDoxLjA6IHVzYl9wcm9iZV9pbnRlcmZhY2UKICBbIDIxNi4zODgyOTJd IFsyNTBdIHI4MTUyIDItMS40OjEuMDogdXNiX3Byb2JlX2ludGVyZmFjZSAtIGdvdCBpZAogIFsg MjU4LjgzMDQxMF0gcjgxNTIgMi0xLjQ6MS4wICh1bm5hbWVkIG5ldF9kZXZpY2UpICh1bmluaXRp YWxpemVkKTogUEhZIG5vdCByZWFkeQogIFsgMjU4LjgzMDQ2MF0gcjgxNTIgMi0xLjQ6MS4wICh1 bm5hbWVkIG5ldF9kZXZpY2UpICh1bmluaXRpYWxpemVkKTogSW52YWxpZCBoZWFkZXIgd2hlbiBy ZWFkaW5nIHBhc3MtdGhydSBNQUMgYWRkcgogIFsgMjU4LjgzMDQ2NF0gcjgxNTIgMi0xLjQ6MS4w ICh1bm5hbWVkIG5ldF9kZXZpY2UpICh1bmluaXRpYWxpemVkKTogR2V0IGV0aGVyIGFkZHIgZmFp bAoKVGhpcyBoYXBwZW5zIGluLCBmb3IgZXhhbXBsZSwgcjgxNTNfaW5pdDoKCiAgc3RhdGljIGlu dCBnZW5lcmljX29jcF9yZWFkKHN0cnVjdCByODE1MiAqdHAsIHUxNiBpbmRleCwgdTE2IHNpemUs CgkJCSAgICB2b2lkICpkYXRhLCB1MTYgdHlwZSkKICB7CiAgICBpZiAodGVzdF9iaXQoUlRMODE1 Ml9VTlBMVUcsICZ0cC0+ZmxhZ3MpKQogICAgICByZXR1cm4gLUVOT0RFVjsKICAgIC4uLgogIH0K CiAgc3RhdGljIHUxNiBvY3BfcmVhZF93b3JkKHN0cnVjdCByODE1MiAqdHAsIHUxNiB0eXBlLCB1 MTYgaW5kZXgpCiAgewogICAgdTMyIGRhdGE7CiAgICAuLi4KICAgIGdlbmVyaWNfb2NwX3JlYWQo dHAsIGluZGV4LCBzaXplb2YodG1wKSwgJnRtcCwgdHlwZSB8IGJ5ZW4pOwoKICAgIGRhdGEgPSBf X2xlMzJfdG9fY3B1KHRtcCk7CiAgICAuLi4KICAgIHJldHVybiAodTE2KWRhdGE7CiAgfQoKICBz dGF0aWMgdm9pZCByODE1M19pbml0KHN0cnVjdCByODE1MiAqdHApCiAgewogICAgLi4uCiAgICBp ZiAodGVzdF9iaXQoUlRMODE1Ml9VTlBMVUcsICZ0cC0+ZmxhZ3MpKQogICAgICByZXR1cm47Cgog ICAgZm9yIChpID0gMDsgaSA8IDUwMDsgaSsrKSB7CiAgICAgIGlmIChvY3BfcmVhZF93b3JkKHRw LCBNQ1VfVFlQRV9QTEEsIFBMQV9CT09UX0NUUkwpICYKICAgICAgICAgIEFVVE9MT0FEX0RPTkUp CiAgICAgICAgYnJlYWs7CiAgICAgIG1zbGVlcCgyMCk7CiAgICB9CiAgICAuLi4KICB9CgpTaW5j ZSBvY3BfcmVhZF93b3JkKCkgZG9lc24ndCBjaGVjayB0aGUgcmV0dXJuIHN0YXR1cyBvZgpnZW5l cmljX29jcF9yZWFkKCksIGFuZCB0aGUgb25seSBleGl0IGNvbmRpdGlvbiBmb3IgdGhlIGxvb3Ag aXMgdG8gaGF2ZQphIG1hdGNoIGluIHRoZSByZXR1cm5lZCB2YWx1ZSwgc3VjaCBsb29wcyB3aWxs IG9ubHkgZW5kcyBhZnRlciBleGNlZWRpbmcKaXRzIG1heGltdW0gcnVucyB3aGVuIHRoZSBkZXZp Y2UgaGFzIGJlZW4gbWFya2VkIGFzIGRpc2Nvbm5lY3RlZCwgd2hpY2gKdGFrZXMgNTAwICogMjBt cyA9IDEwIHNlY29uZHMgaW4gdGhlb3J5LCAxNCBpbiBwcmFjdGljZS4KClRvIHNvbHZlIHRoaXMg bG9uZyBsYXRlbmN5IGFub3RoZXIgdGVzdCB0byBSVEw4MTUyX1VOUExVRyBmbGFnIHNob3VsZCBi ZQphZGRlZCBhZnRlciB0aG9zZSAyMG1zIHNsZWVwIHRvIHNraXAgdW5uZWNlc3NhcnkgbG9vcHMs IHNvIHRoYXQgdGhlIGRldmljZQpwcm9iZSBjYW4gY29tcGxldGUgZWFybHkgYW5kIHByb2NlZWQg dG8gcGFyZW50IHBvcnQgcmVzZXQvcmVwcm9iZSBwcm9jZXNzLgoKVGhpcyBjYW4gYmUgcmVwcm9k dWNlZCBvbiBhbGwga2VybmVsIHZlcnNpb25zIHVwIHRvIGxhdGVzdCB2NS42LXJjMiwgYnV0CmFm dGVyIHY1LjUtcmM3IHRoZSByZXByb2R1Y2UgcmF0ZSBpcyBkcmFtYXRpY2FsbHkgbG93ZXJlZCB0 byAxLzMwIG9yIGxlc3MKd2hpbGUgaXQgd2FzIGFyb3VuZCAxLzIuCgpTaWduZWQtb2ZmLWJ5OiBZ b3UtU2hlbmcgWWFuZyA8dmljYW1vLnlhbmdAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Vz Yi9yODE1Mi5jIHwgOCArKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jIGIvZHJpdmVycy9uZXQvdXNiL3I4 MTUyLmMKaW5kZXggM2Y0MjVmOTc0ZDAzLi5lOGUzNWMzNWZhOTYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L3VzYi9yODE1Mi5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCkBAIC0zMjIw LDYgKzMyMjAsOCBAQCBzdGF0aWMgdTE2IHI4MTUzX3BoeV9zdGF0dXMoc3RydWN0IHI4MTUyICp0 cCwgdTE2IGRlc2lyZWQpCiAJCX0KIAogCQltc2xlZXAoMjApOworCQlpZiAodGVzdF9iaXQoUlRM ODE1Ml9VTlBMVUcsICZ0cC0+ZmxhZ3MpKQorCQkJYnJlYWs7CiAJfQogCiAJcmV0dXJuIGRhdGE7 CkBAIC01NDAxLDcgKzU0MDMsMTAgQEAgc3RhdGljIHZvaWQgcjgxNTNfaW5pdChzdHJ1Y3Qgcjgx NTIgKnRwKQogCQlpZiAob2NwX3JlYWRfd29yZCh0cCwgTUNVX1RZUEVfUExBLCBQTEFfQk9PVF9D VFJMKSAmCiAJCSAgICBBVVRPTE9BRF9ET05FKQogCQkJYnJlYWs7CisKIAkJbXNsZWVwKDIwKTsK KwkJaWYgKHRlc3RfYml0KFJUTDgxNTJfVU5QTFVHLCAmdHAtPmZsYWdzKSkKKwkJCWJyZWFrOwog CX0KIAogCWRhdGEgPSByODE1M19waHlfc3RhdHVzKHRwLCAwKTsKQEAgLTU1MzgsNyArNTU0Mywx MCBAQCBzdGF0aWMgdm9pZCByODE1M2JfaW5pdChzdHJ1Y3QgcjgxNTIgKnRwKQogCQlpZiAob2Nw X3JlYWRfd29yZCh0cCwgTUNVX1RZUEVfUExBLCBQTEFfQk9PVF9DVFJMKSAmCiAJCSAgICBBVVRP TE9BRF9ET05FKQogCQkJYnJlYWs7CisKIAkJbXNsZWVwKDIwKTsKKwkJaWYgKHRlc3RfYml0KFJU TDgxNTJfVU5QTFVHLCAmdHAtPmZsYWdzKSkKKwkJCWJyZWFrOwogCX0KIAogCWRhdGEgPSByODE1 M19waHlfc3RhdHVzKHRwLCAwKTsKLS0gCjIuMjAuMQoKCkZyb20gOTk5NTA3M2ViNTdhNzJiYmYx MDRlODk3NDM1ODM4ZDljNDdkMGI5MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRWR3 YXJkIENyZWUgPGVjcmVlQHNvbGFyZmxhcmUuY29tPgpEYXRlOiBNb24sIDkgTWFyIDIwMjAgMTg6 MTY6MjQgKzAwMDAKU3ViamVjdDogW1BBVENIIDI2LzY2XSBzZmM6IGRldGFjaCBmcm9tIGNiX3Bh Z2UgaW4gZWZ4X2NvcHlfY2hhbm5lbCgpCgpbIFVwc3RyZWFtIGNvbW1pdCA0YjFiZDlkYjA3OGY3 ZDUzMzJjODYwMWEyZjViZDQzY2YwNDU4ZmQ0IF0KCkl0J3MgYSByZXNvdXJjZSwgbm90IGEgcGFy YW1ldGVyLCBzbyB3ZSBjYW4ndCBjb3B5IGl0IGludG8gdGhlIG5ldwogY2hhbm5lbCdzIFRYIHF1 ZXVlcywgb3RoZXJ3aXNlIGFsaWFzaW5nIHdpbGwgbGVhZCB0byByZXNvdXJjZS0KIG1hbmFnZW1l bnQgYnVncyBpZiB0aGUgY2hhbm5lbCBpcyBzdWJzZXF1ZW50bHkgdG9ybiBkb3duIHdpdGhvdXQK IGJlaW5nIGluaXRpYWxpc2VkLgoKQmVmb3JlIHRoZSBGaXhlczotdGFnZ2VkIGNvbW1pdCB0aGVy ZSB3YXMgYSBzaW1pbGFyIGJ1ZyB3aXRoCiB0c29oX3BhZ2UsIGJ1dCBJJ20gbm90IHN1cmUgaXQn cyB3b3J0aCBkb2luZyBhbm90aGVyIGZpeCBmb3Igc3VjaAogb2xkIGtlcm5lbHMuCgpGaXhlczog ZTkxMTdlNTA5OWVhICgic2ZjOiBGaXJtd2FyZS1Bc3Npc3RlZCBUU08gdmVyc2lvbiAyIikKU3Vn Z2VzdGVkLWJ5OiBEZXJlayBTaHV0ZSA8RGVyZWsuU2h1dGVAc3RyYXR1cy5jb20+ClNpZ25lZC1v ZmYtYnk6IEVkd2FyZCBDcmVlIDxlY3JlZUBzb2xhcmZsYXJlLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L3NmYy9lZnguYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc2ZjL2VmeC5jCmluZGV4IDdhMzhkN2YyODJhMS4uYmM2YzdmM2Y4MDRkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMKKysrIGIvZHJpdmVycy9uZXQv ZXRoZXJuZXQvc2ZjL2VmeC5jCkBAIC01MjUsNiArNTI1LDcgQEAgZWZ4X2NvcHlfY2hhbm5lbChj b25zdCBzdHJ1Y3QgZWZ4X2NoYW5uZWwgKm9sZF9jaGFubmVsKQogCQlpZiAodHhfcXVldWUtPmNo YW5uZWwpCiAJCQl0eF9xdWV1ZS0+Y2hhbm5lbCA9IGNoYW5uZWw7CiAJCXR4X3F1ZXVlLT5idWZm ZXIgPSBOVUxMOworCQl0eF9xdWV1ZS0+Y2JfcGFnZSA9IE5VTEw7CiAJCW1lbXNldCgmdHhfcXVl dWUtPnR4ZCwgMCwgc2l6ZW9mKHR4X3F1ZXVlLT50eGQpKTsKIAl9CiAKLS0gCjIuMjAuMQoKCkZy b20gOGYwMWRlMjdmNDM3MjZkNmExNDgyYTM0NWVjNjhkY2IxMzQwNThkNSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRl OiBXZWQsIDQgTWFyIDIwMjAgMTU6NTE6NDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDI3LzY2XSBz bGlwOiBtYWtlIHNsaGNfY29tcHJlc3MoKSBtb3JlIHJvYnVzdCBhZ2FpbnN0CiBtYWxpY2lvdXMg cGFja2V0cwoKWyBVcHN0cmVhbSBjb21taXQgMTEwYTQwZGZiNzA4ZmU5NDBhM2YzNzA0ZDQ3MGU0 MzFjMzY4ZDI1NiBdCgpCZWZvcmUgYWNjZXNzaW5nIHZhcmlvdXMgZmllbGRzIGluIElQVjQgbmV0 d29yayBoZWFkZXIKYW5kIFRDUCBoZWFkZXIsIG1ha2Ugc3VyZSB0aGUgcGFja2V0IDoKCi0gSGFz IElQIHZlcnNpb24gNCAoaXAtPnZlcnNpb24gPT0gNCkKLSBIYXMgbm90IGEgc2lsbHkgbmV0d29y ayBsZW5ndGggKGlwLT5paGwgPj0gNSkKLSBJcyBiaWcgZW5vdWdoIHRvIGhvbGQgbmV0d29yayBh bmQgdHJhbnNwb3J0IGhlYWRlcnMKLSBIYXMgbm90IGEgc2lsbHkgVENQIGhlYWRlciBzaXplICh0 aC0+ZG9mZiA+PSBzaXplb2Yoc3RydWN0IHRjcGhkcikgLyA0KQoKc3l6Ym90IHJlcG9ydGVkIDoK CkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBzbGhjX2NvbXByZXNzKzB4NWI5LzB4MmU2MCBk cml2ZXJzL25ldC9zbGlwL3NsaGMuYzoyNzAKQ1BVOiAwIFBJRDogMTE3MjggQ29tbTogc3l6LWV4 ZWN1dG9yMjMxIE5vdCB0YWludGVkIDUuNi4wLXJjMi1zeXprYWxsZXIgIzAKSGFyZHdhcmUgbmFt ZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJ T1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9z dGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MWM5LzB4MjIwIGxpYi9kdW1wX3N0YWNr LmM6MTE4CiBrbXNhbl9yZXBvcnQrMHhmNy8weDFlMCBtbS9rbXNhbi9rbXNhbl9yZXBvcnQuYzox MTgKIF9fbXNhbl93YXJuaW5nKzB4NTgvMHhhMCBtbS9rbXNhbi9rbXNhbl9pbnN0ci5jOjIxNQog c2xoY19jb21wcmVzcysweDViOS8weDJlNjAgZHJpdmVycy9uZXQvc2xpcC9zbGhjLmM6MjcwCiBw cHBfc2VuZF9mcmFtZSBkcml2ZXJzL25ldC9wcHAvcHBwX2dlbmVyaWMuYzoxNjM3IFtpbmxpbmVd CiBfX3BwcF94bWl0X3Byb2Nlc3MrMHgxOTAyLzB4Mjk3MCBkcml2ZXJzL25ldC9wcHAvcHBwX2dl bmVyaWMuYzoxNDk1CiBwcHBfeG1pdF9wcm9jZXNzKzB4MTQ3LzB4MmYwIGRyaXZlcnMvbmV0L3Bw cC9wcHBfZ2VuZXJpYy5jOjE1MTYKIHBwcF93cml0ZSsweDZiYi8weDc5MCBkcml2ZXJzL25ldC9w cHAvcHBwX2dlbmVyaWMuYzo1MTIKIGRvX2xvb3BfcmVhZHZfd3JpdGV2IGZzL3JlYWRfd3JpdGUu Yzo3MTcgW2lubGluZV0KIGRvX2l0ZXJfd3JpdGUrMHg4MTIvMHhkYzAgZnMvcmVhZF93cml0ZS5j OjEwMDAKIGNvbXBhdF93cml0ZXYrMHgyZGYvMHg1YTAgZnMvcmVhZF93cml0ZS5jOjEzNTEKIGRv X2NvbXBhdF9wd3JpdGV2NjQgZnMvcmVhZF93cml0ZS5jOjE0MDAgW2lubGluZV0KIF9fZG9fY29t cGF0X3N5c19wd3JpdGV2IGZzL3JlYWRfd3JpdGUuYzoxNDIwIFtpbmxpbmVdCiBfX3NlX2NvbXBh dF9zeXNfcHdyaXRldiBmcy9yZWFkX3dyaXRlLmM6MTQxNCBbaW5saW5lXQogX19pYTMyX2NvbXBh dF9zeXNfcHdyaXRldisweDM0OS8weDNmMCBmcy9yZWFkX3dyaXRlLmM6MTQxNAogZG9fc3lzY2Fs bF8zMl9pcnFzX29uIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjMzOSBbaW5saW5lXQogZG9fZmFz dF9zeXNjYWxsXzMyKzB4M2M3LzB4NmUwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjQxMAogZW50 cnlfU1lTRU5URVJfY29tcGF0KzB4NjgvMHg3NyBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NF9jb21w YXQuUzoxMzkKUklQOiAwMDIzOjB4ZjdmN2NkOTkKQ29kZTogOTAgZTggMGIgMDAgMDAgMDAgZjMg OTAgMGYgYWUgZTggZWIgZjkgOGQgNzQgMjYgMDAgODkgM2MgMjQgYzMgOTAgOTAgOTAgOTAgOTAg OTAgOTAgOTAgOTAgOTAgOTAgOTAgNTEgNTIgNTUgODkgZTUgMGYgMzQgY2QgODAgPDVkPiA1YSA1 OSBjMyA5MCA5MCA5MCA5MCBlYiAwZCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5 MApSU1A6IDAwMmI6MDAwMDAwMDBmZmRiODRhYyBFRkxBR1M6IDAwMDAwMjE3IE9SSUdfUkFYOiAw MDAwMDAwMDAwMDAwMTRlClJBWDogZmZmZmZmZmZmZmZmZmZkYSBSQlg6IDAwMDAwMDAwMDAwMDAw MDMgUkNYOiAwMDAwMDAwMDIwMDAwMWMwClJEWDogMDAwMDAwMDAwMDAwMDAwMSBSU0k6IDAwMDAw MDAwMDAwMDAwMDAgUkRJOiAwMDAwMDAwMDAwMDAwMDAzClJCUDogMDAwMDAwMDA0MDA0NzQ1OSBS MDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClIxMDogMDAwMDAwMDAw MDAwMDAwMCBSMTE6IDAwMDAwMDAwMDAwMDAwMDAgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClIxMzog MDAwMDAwMDAwMDAwMDAwMCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAw MDAwCgpVbmluaXQgd2FzIGNyZWF0ZWQgYXQ6CiBrbXNhbl9zYXZlX3N0YWNrX3dpdGhfZmxhZ3Mg bW0va21zYW4va21zYW4uYzoxNDQgW2lubGluZV0KIGttc2FuX2ludGVybmFsX3BvaXNvbl9zaGFk b3crMHg2Ni8weGQwIG1tL2ttc2FuL2ttc2FuLmM6MTI3CiBrbXNhbl9zbGFiX2FsbG9jKzB4OGEv MHhlMCBtbS9rbXNhbi9rbXNhbl9ob29rcy5jOjgyCiBzbGFiX2FsbG9jX25vZGUgbW0vc2x1Yi5j OjI3OTMgW2lubGluZV0KIF9fa21hbGxvY19ub2RlX3RyYWNrX2NhbGxlcisweGI0MC8weDEyMDAg bW0vc2x1Yi5jOjQ0MDEKIF9fa21hbGxvY19yZXNlcnZlIG5ldC9jb3JlL3NrYnVmZi5jOjE0MiBb aW5saW5lXQogX19hbGxvY19za2IrMHgyZmQvMHhhYzAgbmV0L2NvcmUvc2tidWZmLmM6MjEwCiBh bGxvY19za2IgaW5jbHVkZS9saW51eC9za2J1ZmYuaDoxMDUxIFtpbmxpbmVdCiBwcHBfd3JpdGUr MHgxMTUvMHg3OTAgZHJpdmVycy9uZXQvcHBwL3BwcF9nZW5lcmljLmM6NTAwCiBkb19sb29wX3Jl YWR2X3dyaXRldiBmcy9yZWFkX3dyaXRlLmM6NzE3IFtpbmxpbmVdCiBkb19pdGVyX3dyaXRlKzB4 ODEyLzB4ZGMwIGZzL3JlYWRfd3JpdGUuYzoxMDAwCiBjb21wYXRfd3JpdGV2KzB4MmRmLzB4NWEw IGZzL3JlYWRfd3JpdGUuYzoxMzUxCiBkb19jb21wYXRfcHdyaXRldjY0IGZzL3JlYWRfd3JpdGUu YzoxNDAwIFtpbmxpbmVdCiBfX2RvX2NvbXBhdF9zeXNfcHdyaXRldiBmcy9yZWFkX3dyaXRlLmM6 MTQyMCBbaW5saW5lXQogX19zZV9jb21wYXRfc3lzX3B3cml0ZXYgZnMvcmVhZF93cml0ZS5jOjE0 MTQgW2lubGluZV0KIF9faWEzMl9jb21wYXRfc3lzX3B3cml0ZXYrMHgzNDkvMHgzZjAgZnMvcmVh ZF93cml0ZS5jOjE0MTQKIGRvX3N5c2NhbGxfMzJfaXJxc19vbiBhcmNoL3g4Ni9lbnRyeS9jb21t b24uYzozMzkgW2lubGluZV0KIGRvX2Zhc3Rfc3lzY2FsbF8zMisweDNjNy8weDZlMCBhcmNoL3g4 Ni9lbnRyeS9jb21tb24uYzo0MTAKIGVudHJ5X1NZU0VOVEVSX2NvbXBhdCsweDY4LzB4NzcgYXJj aC94ODYvZW50cnkvZW50cnlfNjRfY29tcGF0LlM6MTM5CgpGaXhlczogYjU0NTFkNzgzYWRlICgi c2xpcDogTW92ZSB0aGUgU0xJUCBkcml2ZXJzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxsZXJAZ29v Z2xlZ3JvdXBzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3NsaXAvc2xoYy5jIHwgMTQgKysrKysrKysrKy0t LS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3NsaXAvc2xoYy5jIGIvZHJpdmVycy9uZXQvc2xpcC9zbGhj LmMKaW5kZXggNThhNjlmODMwZDI5Li5mNzhjZWJhNDJlNTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3NsaXAvc2xoYy5jCisrKyBiL2RyaXZlcnMvbmV0L3NsaXAvc2xoYy5jCkBAIC0yMzIsNyAr MjMyLDcgQEAgc2xoY19jb21wcmVzcyhzdHJ1Y3Qgc2xjb21wcmVzcyAqY29tcCwgdW5zaWduZWQg Y2hhciAqaWNwLCBpbnQgaXNpemUsCiAJc3RydWN0IGNzdGF0ZSAqY3MgPSBsY3MtPm5leHQ7CiAJ dW5zaWduZWQgbG9uZyBkZWx0YVMsIGRlbHRhQTsKIAlzaG9ydCBjaGFuZ2VzID0gMDsKLQlpbnQg aGxlbjsKKwlpbnQgbmxlbiwgaGxlbjsKIAl1bnNpZ25lZCBjaGFyIG5ld19zZXFbMTZdOwogCXVu c2lnbmVkIGNoYXIgKmNwID0gbmV3X3NlcTsKIAlzdHJ1Y3QgaXBoZHIgKmlwOwpAQCAtMjQ4LDYg KzI0OCw4IEBAIHNsaGNfY29tcHJlc3Moc3RydWN0IHNsY29tcHJlc3MgKmNvbXAsIHVuc2lnbmVk IGNoYXIgKmljcCwgaW50IGlzaXplLAogCQlyZXR1cm4gaXNpemU7CiAKIAlpcCA9IChzdHJ1Y3Qg aXBoZHIgKikgaWNwOworCWlmIChpcC0+dmVyc2lvbiAhPSA0IHx8IGlwLT5paGwgPCA1KQorCQly ZXR1cm4gaXNpemU7CiAKIAkvKiBCYWlsIGlmIHRoaXMgcGFja2V0IGlzbid0IFRDUCwgb3IgaXMg YW4gSVAgZnJhZ21lbnQgKi8KIAlpZiAoaXAtPnByb3RvY29sICE9IElQUFJPVE9fVENQIHx8IChu dG9ocyhpcC0+ZnJhZ19vZmYpICYgMHgzZmZmKSkgewpAQCAtMjU4LDEwICsyNjAsMTQgQEAgc2xo Y19jb21wcmVzcyhzdHJ1Y3Qgc2xjb21wcmVzcyAqY29tcCwgdW5zaWduZWQgY2hhciAqaWNwLCBp bnQgaXNpemUsCiAJCQljb21wLT5zbHNfb190Y3ArKzsKIAkJcmV0dXJuIGlzaXplOwogCX0KLQkv KiBFeHRyYWN0IFRDUCBoZWFkZXIgKi8KKwlubGVuID0gaXAtPmlobCAqIDQ7CisJaWYgKGlzaXpl IDwgbmxlbiArIHNpemVvZigqdGgpKQorCQlyZXR1cm4gaXNpemU7CiAKLQl0aCA9IChzdHJ1Y3Qg dGNwaGRyICopKCgodW5zaWduZWQgY2hhciAqKWlwKSArIGlwLT5paGwqNCk7Ci0JaGxlbiA9IGlw LT5paGwqNCArIHRoLT5kb2ZmKjQ7CisJdGggPSAoc3RydWN0IHRjcGhkciAqKShpY3AgKyBubGVu KTsKKwlpZiAodGgtPmRvZmYgPCBzaXplb2Yoc3RydWN0IHRjcGhkcikgLyA0KQorCQlyZXR1cm4g aXNpemU7CisJaGxlbiA9IG5sZW4gKyB0aC0+ZG9mZiAqIDQ7CiAKIAkvKiAgQmFpbCBpZiB0aGUg VENQIHBhY2tldCBpc24ndCBgY29tcHJlc3NpYmxlJyAoaS5lLiwgQUNLIGlzbid0IHNldCBvcgog CSAqICBzb21lIG90aGVyIGNvbnRyb2wgYml0IGlzIHNldCkuIEFsc28gdW5jb21wcmVzc2libGUg aWYKLS0gCjIuMjAuMQoKCkZyb20gNTljZDVkMDljODk4ZDg2MWExYzkxYmUxODY5ZTY5MjdkYTNk ZDJiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVmluaWNpdXMgQ29zdGEgR29tZXMg PHZpbmljaXVzLmdvbWVzQGludGVsLmNvbT4KRGF0ZTogTW9uLCA5IE1hciAyMDIwIDEwOjM5OjUz IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyOC82Nl0gdGFwcmlvOiBGaXggc2VuZGluZyBwYWNrZXRz IHdpdGhvdXQgZGVxdWV1ZWluZyB0aGVtCgpbIFVwc3RyZWFtIGNvbW1pdCBiMDlmZTcwZWY1MjBl MDExYmE0YTY0ZjRiOTNmOTQ4YThmMTQ3MTdiIF0KClRoZXJlIHdhcyBhIGJ1ZyB0aGF0IHdhcyBj YXVzaW5nIHBhY2tldHMgdG8gYmUgc2VudCB0byB0aGUgZHJpdmVyCndpdGhvdXQgZmlyc3QgY2Fs bGluZyBkZXF1ZXVlKCkgb24gdGhlICJjaGlsZCIgcWRpc2MuIEFuZCB0aGUgS0FTQU4KcmVwb3J0 IGJlbG93IHNob3dzIHRoYXQgc2VuZGluZyBhIHBhY2tldCB3aXRob3V0IGNhbGxpbmcgZGVxdWV1 ZSgpCmxlYWRzIHRvIGJhZCByZXN1bHRzLgoKVGhlIHByb2JsZW0gaXMgdGhhdCB3aGVuIGNoZWNr aW5nIHRoZSBsYXN0IHFkaXNjICJjaGlsZCIgd2UgZG8gbm90IHNldAp0aGUgcmV0dXJuZWQgc2ti IHRvIE5VTEwsIHdoaWNoIGNhbiBjYXVzZSBpdCB0byBiZSBzZW50IHRvIHRoZSBkcml2ZXIsCmFu ZCBzbyBhZnRlciB0aGUgc2tiIGlzIHNlbnQsIGl0IG1heSBiZSBmcmVlZCwgYW5kIGluIHNvbWUg c2l0dWF0aW9ucyBhCnJlZmVyZW5jZSB0byBpdCBtYXkgc3RpbGwgYmUgaW4gdGhlIGNoaWxkIHFk aXNjLCBiZWNhdXNlIGl0IHdhcyBuZXZlcgpkZXF1ZXVlZC4KClRoZSBjcmFzaCBsb2cgbG9va3Mg bGlrZSB0aGlzOgoKWyAgIDE5LjkzNzUzOF0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgICAxOS45MzgzMDBdIEJVRzog S0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHRhcHJpb19kZXF1ZXVlX3NvZnQrMHg2MjAvMHg3ODAK WyAgIDE5LjkzODk2OF0gUmVhZCBvZiBzaXplIDQgYXQgYWRkciBmZmZmODg4MTEyODYyOGNjIGJ5 IHRhc2sgc3dhcHBlci8xLzAKWyAgIDE5LjkzOTYxMl0KWyAgIDE5LjkzOTc3Ml0gQ1BVOiAxIFBJ RDogMCBDb21tOiBzd2FwcGVyLzEgTm90IHRhaW50ZWQgNS42LjAtcmMzKyAjOTcKWyAgIDE5Ljk0 MDM5N10gSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0MEZYICsgUElJWCwgMTk5 NiksIEJJT1MgcmVsLTEuMTIuMC01OS1nYzliYTUyNzZlMzIxLXByZWJ1aWx0LnFlNApbICAgMTku OTQxNTIzXSBDYWxsIFRyYWNlOgpbICAgMTkuOTQxNzc0XSAgPElSUT4KWyAgIDE5Ljk0MTk4NV0g IGR1bXBfc3RhY2srMHg5Ny8weGUwClsgICAxOS45NDIzMjNdICBwcmludF9hZGRyZXNzX2Rlc2Ny aXB0aW9uLmNvbnN0cHJvcC4wKzB4M2IvMHg2MApbICAgMTkuOTQyODg0XSAgPyB0YXByaW9fZGVx dWV1ZV9zb2Z0KzB4NjIwLzB4NzgwClsgICAxOS45NDMzMjVdICA/IHRhcHJpb19kZXF1ZXVlX3Nv ZnQrMHg2MjAvMHg3ODAKWyAgIDE5Ljk0Mzc2N10gIF9fa2FzYW5fcmVwb3J0LmNvbGQrMHgxYS8w eDMyClsgICAxOS45NDQxNzNdICA/IHRhcHJpb19kZXF1ZXVlX3NvZnQrMHg2MjAvMHg3ODAKWyAg IDE5Ljk0NDYxMl0gIGthc2FuX3JlcG9ydCsweGUvMHgyMApbICAgMTkuOTQ0OTU0XSAgdGFwcmlv X2RlcXVldWVfc29mdCsweDYyMC8weDc4MApbICAgMTkuOTQ1MzgwXSAgX19xZGlzY19ydW4rMHgx NjQvMHgxOGQwClsgICAxOS45NDU3NDldICBuZXRfdHhfYWN0aW9uKzB4MmM0LzB4NzMwClsgICAx OS45NDYxMjRdICBfX2RvX3NvZnRpcnErMHgyNjgvMHg3YmMKWyAgIDE5Ljk0NjQ5MV0gIGlycV9l eGl0KzB4MTdkLzB4MWIwClsgICAxOS45NDY4MjRdICBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQr MHhlYi8weDM4MApbICAgMTkuOTQ3MjgwXSAgYXBpY190aW1lcl9pbnRlcnJ1cHQrMHhmLzB4MjAK WyAgIDE5Ljk0NzY4N10gIDwvSVJRPgpbICAgMTkuOTQ3OTEyXSBSSVA6IDAwMTA6ZGVmYXVsdF9p ZGxlKzB4MmQvMHgyZDAKWyAgIDE5Ljk0ODM0NV0gQ29kZTogMDAgMDAgNDEgNTYgNDEgNTUgNjUg NDQgOGIgMmQgM2YgOGQgN2MgN2MgNDEgNTQgNTUgNTMgMGYgMWYgNDQgMDAgMDAgZTggYjEgYjIg YzUgZmQgZTkgMDcgMDAgMwpbICAgMTkuOTUwMTY2XSBSU1A6IDAwMTg6ZmZmZjg4ODExYTNlZmRh MCBFRkxBR1M6IDAwMDAwMjgyIE9SSUdfUkFYOiBmZmZmZmZmZmZmZmZmZjEzClsgICAxOS45NTA5 MDldIFJBWDogMDAwMDAwMDA4MDAwMDAwMCBSQlg6IGZmZmY4ODgxMWEzYTk2MDAgUkNYOiBmZmZm ZmZmZjgzODUzMjdlClsgICAxOS45NTE2MDhdIFJEWDogMWZmZmYxMTAyMzQ3NTJjMCBSU0k6IDAw MDAwMDAwMDAwMDAwMDAgUkRJOiBmZmZmZmZmZjgzODUyNjJmClsgICAxOS45NTIzMDldIFJCUDog ZmZmZmVkMTAyMzQ3NTJjMCBSMDg6IDAwMDAwMDAwMDAwMDAwMDEgUjA5OiBmZmZmZWQxMDIzNDc1 MmMxClsgICAxOS45NTMwMDldIFIxMDogZmZmZmVkMTAyMzQ3NTJjMCBSMTE6IGZmZmY4ODgxMWEz YTk2MDcgUjEyOiAwMDAwMDAwMDAwMDAwMDAxClsgICAxOS45NTM3MDldIFIxMzogMDAwMDAwMDAw MDAwMDAwMSBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiAwMDAwMDAwMDAwMDAwMDAwClsgICAx OS45NTQ0MDhdICA/IGRlZmF1bHRfaWRsZV9jYWxsKzB4MmUvMHg3MApbICAgMTkuOTU0ODE2XSAg PyBkZWZhdWx0X2lkbGUrMHgxZi8weDJkMApbICAgMTkuOTU1MTkyXSAgZGVmYXVsdF9pZGxlX2Nh bGwrMHg1ZS8weDcwClsgICAxOS45NTU1ODRdICBkb19pZGxlKzB4M2Q0LzB4NTAwClsgICAxOS45 NTU5MDldICA/IGFyY2hfY3B1X2lkbGVfZXhpdCsweDQwLzB4NDAKWyAgIDE5Ljk1NjMyNV0gID8g X3Jhd19zcGluX3VubG9ja19pcnFyZXN0b3JlKzB4MjMvMHgzMApbICAgMTkuOTU2ODI5XSAgPyB0 cmFjZV9oYXJkaXJxc19vbisweDMwLzB4MTYwClsgICAxOS45NTcyNDJdICBjcHVfc3RhcnR1cF9l bnRyeSsweDE5LzB4MjAKWyAgIDE5Ljk1NzYzM10gIHN0YXJ0X3NlY29uZGFyeSsweDJhNi8weDM4 MApbICAgMTkuOTU4MDI2XSAgPyBzZXRfY3B1X3NpYmxpbmdfbWFwKzB4MThiMC8weDE4YjAKWyAg IDE5Ljk1ODQ4Nl0gIHNlY29uZGFyeV9zdGFydHVwXzY0KzB4YTQvMHhiMApbICAgMTkuOTU4OTIx XQpbICAgMTkuOTU5MDc4XSBBbGxvY2F0ZWQgYnkgdGFzayAzMzoKWyAgIDE5Ljk1OTQxMl0gIHNh dmVfc3RhY2srMHgxYi8weDgwClsgICAxOS45NTk3NDddICBfX2thc2FuX2ttYWxsb2MuY29uc3Rw cm9wLjArMHhjMi8weGQwClsgICAxOS45NjAyMjJdICBrbWVtX2NhY2hlX2FsbG9jKzB4ZTQvMHgy MzAKWyAgIDE5Ljk2MDYxN10gIF9fYWxsb2Nfc2tiKzB4OTEvMHg1MTAKWyAgIDE5Ljk2MDk2N10g IG5kaXNjX2FsbG9jX3NrYisweDEzMy8weDMzMApbICAgMTkuOTYxMzU4XSAgbmRpc2Nfc2VuZF9u cysweDEzNC8weDgxMApbICAgMTkuOTYxNzM1XSAgYWRkcmNvbmZfZGFkX3dvcmsrMHhhZDUvMHhm ODAKWyAgIDE5Ljk2MjE0NF0gIHByb2Nlc3Nfb25lX3dvcmsrMHg3OGUvMHgxM2EwClsgICAxOS45 NjI1NTFdICB3b3JrZXJfdGhyZWFkKzB4OGYvMHhmYTAKWyAgIDE5Ljk2MjkxOV0gIGt0aHJlYWQr MHgyYmEvMHgzYjAKWyAgIDE5Ljk2MzI0Ml0gIHJldF9mcm9tX2ZvcmsrMHgzYS8weDUwClsgICAx OS45NjM1OTZdClsgICAxOS45NjM3NTNdIEZyZWVkIGJ5IHRhc2sgMzM6ClsgICAxOS45NjQwNTVd ICBzYXZlX3N0YWNrKzB4MWIvMHg4MApbICAgMTkuOTY0Mzg2XSAgX19rYXNhbl9zbGFiX2ZyZWUr MHgxMmYvMHgxODAKWyAgIDE5Ljk2NDgzMF0gIGttZW1fY2FjaGVfZnJlZSsweDgwLzB4MjkwClsg ICAxOS45NjUyMzFdICBpcDZfbWNfaW5wdXQrMHgzOGEvMHg0ZDAKWyAgIDE5Ljk2NTYxN10gIGlw djZfcmN2KzB4MWE0LzB4MWQwClsgICAxOS45NjU5NDhdICBfX25ldGlmX3JlY2VpdmVfc2tiX29u ZV9jb3JlKzB4ZjIvMHgxODAKWyAgIDE5Ljk2NjQzN10gIG5ldGlmX3JlY2VpdmVfc2tiKzB4OGMv MHgzYzAKWyAgIDE5Ljk2Njg0Nl0gIGJyX2hhbmRsZV9mcmFtZV9maW5pc2grMHg3NzkvMHgxMzEw ClsgICAxOS45NjczMDJdICBicl9oYW5kbGVfZnJhbWUrMHg0MmEvMHg4MzAKWyAgIDE5Ljk2NzY5 NF0gIF9fbmV0aWZfcmVjZWl2ZV9za2JfY29yZSsweGYwZS8weDJhOTAKWyAgIDE5Ljk2ODE2N10g IF9fbmV0aWZfcmVjZWl2ZV9za2Jfb25lX2NvcmUrMHg5Ni8weDE4MApbICAgMTkuOTY4NjU4XSAg cHJvY2Vzc19iYWNrbG9nKzB4MTk4LzB4NjUwClsgICAxOS45NjkwNDddICBuZXRfcnhfYWN0aW9u KzB4MmZhLzB4YWEwClsgICAxOS45Njk0MjBdICBfX2RvX3NvZnRpcnErMHgyNjgvMHg3YmMKWyAg IDE5Ljk2OTc4NV0KWyAgIDE5Ljk2OTk0MF0gVGhlIGJ1Z2d5IGFkZHJlc3MgYmVsb25ncyB0byB0 aGUgb2JqZWN0IGF0IGZmZmY4ODgxMTI4NjI4NDAKWyAgIDE5Ljk2OTk0MF0gIHdoaWNoIGJlbG9u Z3MgdG8gdGhlIGNhY2hlIHNrYnVmZl9oZWFkX2NhY2hlIG9mIHNpemUgMjI0ClsgICAxOS45NzEy MDJdIFRoZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgMTQwIGJ5dGVzIGluc2lkZSBvZgpbICAg MTkuOTcxMjAyXSAgMjI0LWJ5dGUgcmVnaW9uIFtmZmZmODg4MTEyODYyODQwLCBmZmZmODg4MTEy ODYyOTIwKQpbICAgMTkuOTcyMzQ0XSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBw YWdlOgpbICAgMTkuOTcyODIwXSBwYWdlOmZmZmZlYTAwMDQ0YTE4MDAgcmVmY291bnQ6MSBtYXBj b3VudDowIG1hcHBpbmc6ZmZmZjg4ODExYTJiZDFjMCBpbmRleDoweGZmZmY4ODgxMTI4NjI1YzAg Y29tcG8wClsgICAxOS45NzM5MzBdIGZsYWdzOiAweDgwMDAwMDAwMDAwMTAyMDAoc2xhYnxoZWFk KQpbICAgMTkuOTc0Mzg4XSByYXc6IDgwMDAwMDAwMDAwMTAyMDAgZmZmZjg4ODExYTJlZDY1MCBm ZmZmODg4MTFhMmVkNjUwIGZmZmY4ODgxMWEyYmQxYzAKWyAgIDE5Ljk3NTE1MV0gcmF3OiBmZmZm ODg4MTEyODYyNWMwIDAwMDAwMDAwMDAxOTAwMTMgMDAwMDAwMDFmZmZmZmZmZiAwMDAwMDAwMDAw MDAwMDAwClsgICAxOS45NzU5MTVdIHBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNj ZXNzIGRldGVjdGVkClsgICAxOS45NzY0NjFdIHBhZ2Vfb3duZXIgdHJhY2tzIHRoZSBwYWdlIGFz IGFsbG9jYXRlZApbICAgMTkuOTc2OTQ2XSBwYWdlIGxhc3QgYWxsb2NhdGVkIHZpYSBvcmRlciAy LCBtaWdyYXRldHlwZSBVbm1vdmFibGUsIGdmcF9tYXNrIDB4ZDIwYzAoX19HRlBfSU98X19HRlBf RlN8X19HRlBfTk8pClsgICAxOS45NzgzMzJdICBwcmVwX25ld19wYWdlKzB4MjRiLzB4MzMwClsg ICAxOS45Nzg3MDddICBnZXRfcGFnZV9mcm9tX2ZyZWVsaXN0KzB4MjA1Ny8weDJjOTAKWyAgIDE5 Ljk3OTE3MF0gIF9fYWxsb2NfcGFnZXNfbm9kZW1hc2srMHgyMTgvMHg1OTAKWyAgIDE5Ljk3OTYx OV0gIG5ld19zbGFiKzB4OWQvMHgzMDAKWyAgIDE5Ljk3OTk0OF0gIF9fX3NsYWJfYWxsb2MuY29u c3Rwcm9wLjArMHgyZjkvMHg2ZjAKWyAgIDE5Ljk4MDQyMV0gIF9fc2xhYl9hbGxvYy5jb25zdHBy b3AuMCsweDMwLzB4NjAKWyAgIDE5Ljk4MDg3MF0gIGttZW1fY2FjaGVfYWxsb2MrMHgyMDEvMHgy MzAKWyAgIDE5Ljk4MTI2OV0gIF9fYWxsb2Nfc2tiKzB4OTEvMHg1MTAKWyAgIDE5Ljk4MTYyMF0g IGFsbG9jX3NrYl93aXRoX2ZyYWdzKzB4NzgvMHg0YTAKWyAgIDE5Ljk4MjA0M10gIHNvY2tfYWxs b2Nfc2VuZF9wc2tiKzB4NWViLzB4NzUwClsgICAxOS45ODI0NzZdICB1bml4X3N0cmVhbV9zZW5k bXNnKzB4Mzk5LzB4N2YwClsgICAxOS45ODI5MDRdICBzb2NrX3NlbmRtc2crMHhlMi8weDExMApb ICAgMTkuOTgzMjYyXSAgX19fX3N5c19zZW5kbXNnKzB4NGRlLzB4NmQwClsgICAxOS45ODM2NjBd ICBfX19zeXNfc2VuZG1zZysweGU0LzB4MTYwClsgICAxOS45ODQwMzJdICBfX3N5c19zZW5kbXNn KzB4YWIvMHgxMzAKWyAgIDE5Ljk4NDM5Nl0gIGRvX3N5c2NhbGxfNjQrMHhlNy8weGFlMApbICAg MTkuOTg0NzYxXSBwYWdlIGxhc3QgZnJlZSBzdGFjayB0cmFjZToKWyAgIDE5Ljk4NTE0Ml0gIF9f ZnJlZV9wYWdlc19vaysweDQzMi8weGJjMApbICAgMTkuOTg1NTMzXSAgcWxpc3RfZnJlZV9hbGwr MHg1Ni8weGMwClsgICAxOS45ODU5MDddICBxdWFyYW50aW5lX3JlZHVjZSsweDE0OS8weDE3MApb ICAgMTkuOTg2MzE1XSAgX19rYXNhbl9rbWFsbG9jLmNvbnN0cHJvcC4wKzB4OWUvMHhkMApbICAg MTkuOTg2NzkxXSAga21lbV9jYWNoZV9hbGxvYysweGU0LzB4MjMwClsgICAxOS45ODcxODJdICBw cmVwYXJlX2NyZWRzKzB4MjQvMHg0NDAKWyAgIDE5Ljk4NzU0OF0gIGRvX2ZhY2Nlc3NhdCsweDgw LzB4NTkwClsgICAxOS45ODc5MDZdICBkb19zeXNjYWxsXzY0KzB4ZTcvMHhhZTAKWyAgIDE5Ljk4 ODI3Nl0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKWyAgIDE5Ljk4 ODc3NV0KWyAgIDE5Ljk4ODkzMF0gTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kgYWRkcmVz czoKWyAgIDE5Ljk4OTQwMl0gIGZmZmY4ODgxMTI4NjI3ODA6IGZjIGZjIGZjIGZjIGZjIGZjIGZj IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjClsgICAxOS45OTAxMTFdICBmZmZmODg4MTEyODYy ODAwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgpbICAg MTkuOTkwODIyXSA+ZmZmZjg4ODExMjg2Mjg4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIKWyAgIDE5Ljk5MTUyOV0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KWyAgIDE5Ljk5MjA4MV0gIGZmZmY4ODgxMTI4NjI5 MDA6IGZiIGZiIGZiIGZiIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjClsgICAx OS45OTI3OTZdICBmZmZmODg4MTEyODYyOTgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYwoKRml4ZXM6IDVhNzgxY2NiZDE5ZSAoInRjOiBBZGQgc3VwcG9y dCBmb3IgY29uZmlndXJpbmcgdGhlIHRhcHJpbyBzY2hlZHVsZXIiKQpSZXBvcnRlZC1ieTogTWlj aGFlbCBTY2htaWR0IDxtaWNoYWVsLnNjaG1pZHRAZXRpLnVuaS1zaWVnZW4uZGU+ClNpZ25lZC1v ZmYtYnk6IFZpbmljaXVzIENvc3RhIEdvbWVzIDx2aW5pY2l1cy5nb21lc0BpbnRlbC5jb20+CkFj a2VkLWJ5OiBBbmRyZSBHdWVkZXMgPGFuZHJlLmd1ZWRlc0BpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQv c2NoX3RhcHJpby5jIHwgMTIgKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfdGFwcmlv LmMgYi9uZXQvc2NoZWQvc2NoX3RhcHJpby5jCmluZGV4IDY2MGZjNDVlZTQwZi4uNDM3ZTMzM2E0 YTMzIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX3RhcHJpby5jCisrKyBiL25ldC9zY2hlZC9z Y2hfdGFwcmlvLmMKQEAgLTU2NCw4ICs1NjQsMTAgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp0 YXByaW9fZGVxdWV1ZV9zb2Z0KHN0cnVjdCBRZGlzYyAqc2NoKQogCQlwcmlvID0gc2tiLT5wcmlv cml0eTsKIAkJdGMgPSBuZXRkZXZfZ2V0X3ByaW9fdGNfbWFwKGRldiwgcHJpbyk7CiAKLQkJaWYg KCEoZ2F0ZV9tYXNrICYgQklUKHRjKSkpCisJCWlmICghKGdhdGVfbWFzayAmIEJJVCh0YykpKSB7 CisJCQlza2IgPSBOVUxMOwogCQkJY29udGludWU7CisJCX0KIAogCQlsZW4gPSBxZGlzY19wa3Rf bGVuKHNrYik7CiAJCWd1YXJkID0ga3RpbWVfYWRkX25zKHRhcHJpb19nZXRfdGltZShxKSwKQEAg LTU3NSwxMyArNTc3LDE3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqdGFwcmlvX2RlcXVldWVf c29mdChzdHJ1Y3QgUWRpc2MgKnNjaCkKIAkJICogZ3VhcmQgYmFuZCAuLi4KIAkJICovCiAJCWlm IChnYXRlX21hc2sgIT0gVEFQUklPX0FMTF9HQVRFU19PUEVOICYmCi0JCSAgICBrdGltZV9hZnRl cihndWFyZCwgZW50cnktPmNsb3NlX3RpbWUpKQorCQkgICAga3RpbWVfYWZ0ZXIoZ3VhcmQsIGVu dHJ5LT5jbG9zZV90aW1lKSkgeworCQkJc2tiID0gTlVMTDsKIAkJCWNvbnRpbnVlOworCQl9CiAK IAkJLyogLi4uIGFuZCBubyBidWRnZXQuICovCiAJCWlmIChnYXRlX21hc2sgIT0gVEFQUklPX0FM TF9HQVRFU19PUEVOICYmCi0JCSAgICBhdG9taWNfc3ViX3JldHVybihsZW4sICZlbnRyeS0+YnVk Z2V0KSA8IDApCisJCSAgICBhdG9taWNfc3ViX3JldHVybihsZW4sICZlbnRyeS0+YnVkZ2V0KSA8 IDApIHsKKwkJCXNrYiA9IE5VTEw7CiAJCQljb250aW51ZTsKKwkJfQogCiAJCXNrYiA9IGNoaWxk LT5vcHMtPmRlcXVldWUoY2hpbGQpOwogCQlpZiAodW5saWtlbHkoIXNrYikpCi0tIAoyLjIwLjEK CgpGcm9tIDVhYTc1NjJlZjAzMzI0MTRkYTk1NDljMTkzMWE0YmFkNWI1ZGRjNzAgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCA0IE1hciAyMDIwIDA5OjMyOjE2IC0wODAwClN1YmplY3Q6IFtQQVRDSCAyOS82 Nl0gYm9uZGluZy9hbGI6IG1ha2Ugc3VyZSBhcnAgaGVhZGVyIGlzIHB1bGxlZCBiZWZvcmUKIGFj Y2Vzc2luZyBpdAoKU2ltaWxhciB0byBjb21taXQgMzhmODhjNDU0MDQyICgiYm9uZGluZy9hbGI6 IHByb3Blcmx5IGFjY2VzcyBoZWFkZXJzCmluIGJvbmRfYWxiX3htaXQoKSIpLCB3ZSBuZWVkIHRv IG1ha2Ugc3VyZSBhcnAgaGVhZGVyIHdhcyBwdWxsZWQKaW4gc2tiLT5oZWFkIGJlZm9yZSBibGlu ZGx5IGFjY2Vzc2luZyBpdCBpbiBybGJfYXJwX3htaXQoKS4KClJlbW92ZSBhcnBfcGt0KCkgcHJp dmF0ZSBoZWxwZXIsIHNpbmNlIGl0IGlzIG1vcmUgcmVhZGFibGUvb2J2aW91cwp0byBoYXZlIHRo ZSBmb2xsb3dpbmcgY29uc3RydWN0IGJhY2sgdG8gYmFjayA6CgoJaWYgKCFwc2tiX25ldHdvcmtf bWF5X3B1bGwoc2tiLCBzaXplb2YoKmFycCkpKQoJCXJldHVybiBOVUxMOwoJYXJwID0gKHN0cnVj dCBhcnBfcGt0ICopc2tiX25ldHdvcmtfaGVhZGVyKHNrYik7CgpzeXpib3QgcmVwb3J0ZWQgOgoK QlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIGJvbmRfc2xhdmVfaGFzX21hY19yeCBpbmNsdWRl L25ldC9ib25kaW5nLmg6NzA0IFtpbmxpbmVdCkJVRzogS01TQU46IHVuaW5pdC12YWx1ZSBpbiBy bGJfYXJwX3htaXQgZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX2FsYi5jOjY2MiBbaW5saW5lXQpC VUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gYm9uZF9hbGJfeG1pdCsweDU3NS8weDI1ZTAgZHJp dmVycy9uZXQvYm9uZGluZy9ib25kX2FsYi5jOjE0NzcKQ1BVOiAwIFBJRDogMTI3NDMgQ29tbTog c3l6LWV4ZWN1dG9yLjQgTm90IHRhaW50ZWQgNS42LjAtcmMyLXN5emthbGxlciAjMApIYXJkd2Fy ZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2lu ZSwgQklPUyBHb29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogX19kdW1wX3N0YWNrIGxpYi9k dW1wX3N0YWNrLmM6NzcgW2lubGluZV0KIGR1bXBfc3RhY2srMHgxYzkvMHgyMjAgbGliL2R1bXBf c3RhY2suYzoxMTgKIGttc2FuX3JlcG9ydCsweGY3LzB4MWUwIG1tL2ttc2FuL2ttc2FuX3JlcG9y dC5jOjExOAogX19tc2FuX3dhcm5pbmcrMHg1OC8weGEwIG1tL2ttc2FuL2ttc2FuX2luc3RyLmM6 MjE1CiBib25kX3NsYXZlX2hhc19tYWNfcnggaW5jbHVkZS9uZXQvYm9uZGluZy5oOjcwNCBbaW5s aW5lXQogcmxiX2FycF94bWl0IGRyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9hbGIuYzo2NjIgW2lu bGluZV0KIGJvbmRfYWxiX3htaXQrMHg1NzUvMHgyNWUwIGRyaXZlcnMvbmV0L2JvbmRpbmcvYm9u ZF9hbGIuYzoxNDc3CiBfX2JvbmRfc3RhcnRfeG1pdCBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRf bWFpbi5jOjQyNTcgW2lubGluZV0KIGJvbmRfc3RhcnRfeG1pdCsweDg1ZC8weDJmNzAgZHJpdmVy cy9uZXQvYm9uZGluZy9ib25kX21haW4uYzo0MjgyCiBfX25ldGRldl9zdGFydF94bWl0IGluY2x1 ZGUvbGludXgvbmV0ZGV2aWNlLmg6NDUyNCBbaW5saW5lXQogbmV0ZGV2X3N0YXJ0X3htaXQgaW5j bHVkZS9saW51eC9uZXRkZXZpY2UuaDo0NTM4IFtpbmxpbmVdCiB4bWl0X29uZSBuZXQvY29yZS9k ZXYuYzozNDcwIFtpbmxpbmVdCiBkZXZfaGFyZF9zdGFydF94bWl0KzB4NTMxLzB4YWIwIG5ldC9j b3JlL2Rldi5jOjM0ODYKIF9fZGV2X3F1ZXVlX3htaXQrMHgzN2RlLzB4NDIyMCBuZXQvY29yZS9k ZXYuYzo0MDYzCiBkZXZfcXVldWVfeG1pdCsweDRiLzB4NjAgbmV0L2NvcmUvZGV2LmM6NDA5Ngog cGFja2V0X3NuZCBuZXQvcGFja2V0L2FmX3BhY2tldC5jOjI5NjcgW2lubGluZV0KIHBhY2tldF9z ZW5kbXNnKzB4ODM0Ny8weDkzYjAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTkyCiBzb2NrX3Nl bmRtc2dfbm9zZWMgbmV0L3NvY2tldC5jOjY1MiBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9z b2NrZXQuYzo2NzIgW2lubGluZV0KIF9fc3lzX3NlbmR0bysweGMxYi8weGM1MCBuZXQvc29ja2V0 LmM6MTk5OAogX19kb19zeXNfc2VuZHRvIG5ldC9zb2NrZXQuYzoyMDEwIFtpbmxpbmVdCiBfX3Nl X3N5c19zZW5kdG8rMHgxMDcvMHgxMzAgbmV0L3NvY2tldC5jOjIwMDYKIF9feDY0X3N5c19zZW5k dG8rMHg2ZS8weDkwIG5ldC9zb2NrZXQuYzoyMDA2CiBkb19zeXNjYWxsXzY0KzB4YjgvMHgxNjAg YXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjk2CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHg0NC8weGE5ClJJUDogMDAzMzoweDQ1YzQ3OQpDb2RlOiBhZCBiNiBmYiBmZiBjMyA2NiAy ZSAwZiAxZiA4NCAwMCAwMCAwMCAwMCAwMCA2NiA5MCA0OCA4OSBmOCA0OCA4OSBmNyA0OCA4OSBk NiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAyNCAwOCAwZiAwNSA8NDg+IDNk IDAxIGYwIGZmIGZmIDBmIDgzIDdiIGI2IGZiIGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAw IDAwClJTUDogMDAyYjowMDAwN2ZjNzdmZmJiYzc4IEVGTEFHUzogMDAwMDAyNDYgT1JJR19SQVg6 IDAwMDAwMDAwMDAwMDAwMmMKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDdmYzc3ZmZi YzZkNCBSQ1g6IDAwMDAwMDAwMDA0NWM0NzkKUkRYOiAwMDAwMDAwMDAwMDAwMDBlIFJTSTogMDAw MDAwMDAyMDAwMDRjMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQOiAwMDAwMDAwMDAwNzZiZjIw IFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAw MDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwZmZmZmZmZmYKUjEz OiAwMDAwMDAwMDAwMDAwYTA0IFIxNDogMDAwMDAwMDAwMDRjYzdiMCBSMTU6IDAwMDAwMDAwMDA3 NmJmMmMKClVuaW5pdCB3YXMgY3JlYXRlZCBhdDoKIGttc2FuX3NhdmVfc3RhY2tfd2l0aF9mbGFn cyBtbS9rbXNhbi9rbXNhbi5jOjE0NCBbaW5saW5lXQoga21zYW5faW50ZXJuYWxfcG9pc29uX3No YWRvdysweDY2LzB4ZDAgbW0va21zYW4va21zYW4uYzoxMjcKIGttc2FuX3NsYWJfYWxsb2MrMHg4 YS8weGUwIG1tL2ttc2FuL2ttc2FuX2hvb2tzLmM6ODIKIHNsYWJfYWxsb2Nfbm9kZSBtbS9zbHVi LmM6Mjc5MyBbaW5saW5lXQogX19rbWFsbG9jX25vZGVfdHJhY2tfY2FsbGVyKzB4YjQwLzB4MTIw MCBtbS9zbHViLmM6NDQwMQogX19rbWFsbG9jX3Jlc2VydmUgbmV0L2NvcmUvc2tidWZmLmM6MTQy IFtpbmxpbmVdCiBfX2FsbG9jX3NrYisweDJmZC8weGFjMCBuZXQvY29yZS9za2J1ZmYuYzoyMTAK IGFsbG9jX3NrYiBpbmNsdWRlL2xpbnV4L3NrYnVmZi5oOjEwNTEgW2lubGluZV0KIGFsbG9jX3Nr Yl93aXRoX2ZyYWdzKzB4MThjLzB4YTcwIG5ldC9jb3JlL3NrYnVmZi5jOjU3NjYKIHNvY2tfYWxs b2Nfc2VuZF9wc2tiKzB4YWRhLzB4YzYwIG5ldC9jb3JlL3NvY2suYzoyMjQyCiBwYWNrZXRfYWxs b2Nfc2tiIG5ldC9wYWNrZXQvYWZfcGFja2V0LmM6MjgxNSBbaW5saW5lXQogcGFja2V0X3NuZCBu ZXQvcGFja2V0L2FmX3BhY2tldC5jOjI5MTAgW2lubGluZV0KIHBhY2tldF9zZW5kbXNnKzB4NjZh MC8weDkzYjAgbmV0L3BhY2tldC9hZl9wYWNrZXQuYzoyOTkyCiBzb2NrX3NlbmRtc2dfbm9zZWMg bmV0L3NvY2tldC5jOjY1MiBbaW5saW5lXQogc29ja19zZW5kbXNnIG5ldC9zb2NrZXQuYzo2NzIg W2lubGluZV0KIF9fc3lzX3NlbmR0bysweGMxYi8weGM1MCBuZXQvc29ja2V0LmM6MTk5OAogX19k b19zeXNfc2VuZHRvIG5ldC9zb2NrZXQuYzoyMDEwIFtpbmxpbmVdCiBfX3NlX3N5c19zZW5kdG8r MHgxMDcvMHgxMzAgbmV0L3NvY2tldC5jOjIwMDYKIF9feDY0X3N5c19zZW5kdG8rMHg2ZS8weDkw IG5ldC9zb2NrZXQuYzoyMDA2CiBkb19zeXNjYWxsXzY0KzB4YjgvMHgxNjAgYXJjaC94ODYvZW50 cnkvY29tbW9uLmM6Mjk2CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5 CgpGaXhlczogMWRhMTc3ZTRjM2Y0ICgiTGludXgtMi42LjEyLXJjMiIpClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8 c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+CkNjOiBKYXkgVm9zYnVyZ2ggPGoudm9zYnVyZ2hA Z21haWwuY29tPgpDYzogVmVhY2VzbGF2IEZhbGljbyA8dmZhbGljb0BnbWFpbC5jb20+CkNjOiBB bmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2JvbmRpbmcv Ym9uZF9hbGIuYyB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv Ym9uZGluZy9ib25kX2FsYi5jIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX2FsYi5jCmluZGV4 IDFjYzJjZDg5NGY4Ny4uYzgxNjk4NTUwZTVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25k aW5nL2JvbmRfYWxiLmMKKysrIGIvZHJpdmVycy9uZXQvYm9uZGluZy9ib25kX2FsYi5jCkBAIC01 MCwxMSArNTAsNiBAQCBzdHJ1Y3QgYXJwX3BrdCB7CiB9OwogI3ByYWdtYSBwYWNrKCkKIAotc3Rh dGljIGlubGluZSBzdHJ1Y3QgYXJwX3BrdCAqYXJwX3BrdChjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQotewotCXJldHVybiAoc3RydWN0IGFycF9wa3QgKilza2JfbmV0d29ya19oZWFkZXIoc2ti KTsKLX0KLQogLyogRm9yd2FyZCBkZWNsYXJhdGlvbiAqLwogc3RhdGljIHZvaWQgYWxiX3NlbmRf bGVhcm5pbmdfcGFja2V0cyhzdHJ1Y3Qgc2xhdmUgKnNsYXZlLCB1OCBtYWNfYWRkcltdLAogCQkJ CSAgICAgIGJvb2wgc3RyaWN0X21hdGNoKTsKQEAgLTU1MywxMCArNTQ4LDExIEBAIHN0YXRpYyB2 b2lkIHJsYl9yZXFfdXBkYXRlX3N1Ym5ldF9jbGllbnRzKHN0cnVjdCBib25kaW5nICpib25kLCBf X2JlMzIgc3JjX2lwKQogCXNwaW5fdW5sb2NrKCZib25kLT5tb2RlX2xvY2spOwogfQogCi1zdGF0 aWMgc3RydWN0IHNsYXZlICpybGJfY2hvb3NlX2NoYW5uZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IGJvbmRpbmcgKmJvbmQpCitzdGF0aWMgc3RydWN0IHNsYXZlICpybGJfY2hvb3NlX2No YW5uZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJCQkJc3RydWN0IGJvbmRpbmcgKmJvbmQsCisJ CQkJCWNvbnN0IHN0cnVjdCBhcnBfcGt0ICphcnApCiB7CiAJc3RydWN0IGFsYl9ib25kX2luZm8g KmJvbmRfaW5mbyA9ICYoQk9ORF9BTEJfSU5GTyhib25kKSk7Ci0Jc3RydWN0IGFycF9wa3QgKmFy cCA9IGFycF9wa3Qoc2tiKTsKIAlzdHJ1Y3Qgc2xhdmUgKmFzc2lnbmVkX3NsYXZlLCAqY3Vycl9h Y3RpdmVfc2xhdmU7CiAJc3RydWN0IHJsYl9jbGllbnRfaW5mbyAqY2xpZW50X2luZm87CiAJdTMy IGhhc2hfaW5kZXggPSAwOwpAQCAtNjUzLDggKzY0OSwxMiBAQCBzdGF0aWMgc3RydWN0IHNsYXZl ICpybGJfY2hvb3NlX2NoYW5uZWwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGJvbmRpbmcg KmJvbgogICovCiBzdGF0aWMgc3RydWN0IHNsYXZlICpybGJfYXJwX3htaXQoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IGJvbmRpbmcgKmJvbmQpCiB7Ci0Jc3RydWN0IGFycF9wa3QgKmFycCA9 IGFycF9wa3Qoc2tiKTsKIAlzdHJ1Y3Qgc2xhdmUgKnR4X3NsYXZlID0gTlVMTDsKKwlzdHJ1Y3Qg YXJwX3BrdCAqYXJwOworCisJaWYgKCFwc2tiX25ldHdvcmtfbWF5X3B1bGwoc2tiLCBzaXplb2Yo KmFycCkpKQorCQlyZXR1cm4gTlVMTDsKKwlhcnAgPSAoc3RydWN0IGFycF9wa3QgKilza2JfbmV0 d29ya19oZWFkZXIoc2tiKTsKIAogCS8qIERvbid0IG1vZGlmeSBvciBsb2FkIGJhbGFuY2UgQVJQ cyB0aGF0IGRvIG5vdCBvcmlnaW5hdGUgbG9jYWxseQogCSAqIChlLmcuLGFycml2ZSB2aWEgYSBi cmlkZ2UpLgpAQCAtNjY0LDcgKzY2NCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2xhdmUgKnJsYl9hcnBf eG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAogCWlmIChh cnAtPm9wX2NvZGUgPT0gaHRvbnMoQVJQT1BfUkVQTFkpKSB7CiAJCS8qIHRoZSBhcnAgbXVzdCBi ZSBzZW50IG9uIHRoZSBzZWxlY3RlZCByeCBjaGFubmVsICovCi0JCXR4X3NsYXZlID0gcmxiX2No b29zZV9jaGFubmVsKHNrYiwgYm9uZCk7CisJCXR4X3NsYXZlID0gcmxiX2Nob29zZV9jaGFubmVs KHNrYiwgYm9uZCwgYXJwKTsKIAkJaWYgKHR4X3NsYXZlKQogCQkJYm9uZF9od19hZGRyX2NvcHko YXJwLT5tYWNfc3JjLCB0eF9zbGF2ZS0+ZGV2LT5kZXZfYWRkciwKIAkJCQkJICB0eF9zbGF2ZS0+ ZGV2LT5hZGRyX2xlbik7CkBAIC02NzYsNyArNjc2LDcgQEAgc3RhdGljIHN0cnVjdCBzbGF2ZSAq cmxiX2FycF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBib25kaW5nICpib25kKQog CQkgKiBXaGVuIHRoZSBhcnAgcmVwbHkgaXMgcmVjZWl2ZWQgdGhlIGVudHJ5IHdpbGwgYmUgdXBk YXRlZAogCQkgKiB3aXRoIHRoZSBjb3JyZWN0IHVuaWNhc3QgYWRkcmVzcyBvZiB0aGUgY2xpZW50 LgogCQkgKi8KLQkJdHhfc2xhdmUgPSBybGJfY2hvb3NlX2NoYW5uZWwoc2tiLCBib25kKTsKKwkJ dHhfc2xhdmUgPSBybGJfY2hvb3NlX2NoYW5uZWwoc2tiLCBib25kLCBhcnApOwogCiAJCS8qIFRo ZSBBUlAgcmVwbHkgcGFja2V0cyBtdXN0IGJlIGRlbGF5ZWQgc28gdGhhdAogCQkgKiB0aGV5IGNh biBjYW5jZWwgb3V0IHRoZSBpbmZsdWVuY2Ugb2YgdGhlIEFSUCByZXF1ZXN0LgotLSAKMi4yMC4x CgoKRnJvbSBmZmM5NDZjOWUwMmJjNTRkNWM0ZmQxZWUwMzIwZjI5ODA1NTQ0NzkyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9s YW1AYnJvYWRjb20uY29tPgpEYXRlOiBTdW4sIDEgTWFyIDIwMjAgMjI6MDc6MTcgLTA1MDAKU3Vi amVjdDogW1BBVENIIDMwLzY2XSBibnh0X2VuOiByZWluaXRpYWxpemUgSVJRcyB3aGVuIE1UVSBp cyBtb2RpZmllZAoKWyBVcHN0cmVhbSBjb21taXQgYTliOTUyZDI2N2U1OWEzYjQwNWU2NDQ5MzBm NDZkMjUyY2VhNzEyMiBdCgpNVFUgY2hhbmdlcyBtYXkgYWZmZWN0IHRoZSBudW1iZXIgb2YgSVJR cyBzbyB3ZSBtdXN0IGNhbGwKYm54dF9jbG9zZV9uaWMoKS9ibnh0X29wZW5fbmljKCkgd2l0aCB0 aGUgaXJxX3JlX2luaXQgcGFyYW1ldGVyCnNldCB0byB0cnVlLiAgVGhlIHJlYXNvbiBpcyB0aGF0 IGEgbGFyZ2VyIE1UVSBtYXkgcmVxdWlyZQphZ2dyZWdhdGlvbiByaW5ncyBub3QgbmVlZGVkIHdp dGggc21hbGxlciBNVFUuICBXZSBtYXkgbm90IGJlCmFibGUgdG8gYWxsb2NhdGUgdGhlIHJlcXVp cmVkIG51bWJlciBvZiBhZ2dyZWdhdGlvbiByaW5ncyBhbmQKc28gd2UgcmVkdWNlIHRoZSBudW1i ZXIgb2YgY2hhbm5lbHMgd2hpY2ggd2lsbCBjaGFuZ2UgdGhlIG51bWJlcgpvZiBJUlFzLiAgV2l0 aG91dCB0aGlzIHBhdGNoLCBpdCBtYXkgY3Jhc2ggZXZlbnR1YWxseSBpbgpwY2lfZGlzYWJsZV9t c2l4KCkgd2hlbiB0aGUgSVJRcyBhcmUgbm90IHByb3Blcmx5IHVud291bmQuCgpGaXhlczogYzBj MDUwYzU4ZDg0ICgiYm54dF9lbjogTmV3IEJyb2FkY29tIGV0aGVybmV0IGRyaXZlci4iKQpTaWdu ZWQtb2ZmLWJ5OiBWYXN1bmRoYXJhIFZvbGFtIDx2YXN1bmRoYXJhLXYudm9sYW1AYnJvYWRjb20u Y29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyB8IDQgKystLQog MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dC5jCmluZGV4IGNjODYwMzhiMWQ5Ni4uMDVk YTI3YTY0ZDU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0 L2JueHQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYwpA QCAtMTA5NzMsMTMgKzEwOTczLDEzIEBAIHN0YXRpYyBpbnQgYm54dF9jaGFuZ2VfbXR1KHN0cnVj dCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1KQogCXN0cnVjdCBibnh0ICpicCA9IG5ldGRl dl9wcml2KGRldik7CiAKIAlpZiAobmV0aWZfcnVubmluZyhkZXYpKQotCQlibnh0X2Nsb3NlX25p YyhicCwgZmFsc2UsIGZhbHNlKTsKKwkJYm54dF9jbG9zZV9uaWMoYnAsIHRydWUsIGZhbHNlKTsK IAogCWRldi0+bXR1ID0gbmV3X210dTsKIAlibnh0X3NldF9yaW5nX3BhcmFtcyhicCk7CiAKIAlp ZiAobmV0aWZfcnVubmluZyhkZXYpKQotCQlyZXR1cm4gYm54dF9vcGVuX25pYyhicCwgZmFsc2Us IGZhbHNlKTsKKwkJcmV0dXJuIGJueHRfb3Blbl9uaWMoYnAsIHRydWUsIGZhbHNlKTsKIAogCXJl dHVybiAwOwogfQotLSAKMi4yMC4xCgoKRnJvbSA5ZWE2ZGFiNGFhOTFmYzBjNzlkZmE4NWYzZDJl MjkzMjc5YjA4NTFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFZHdpbiBQZWVyIDxl ZHdpbi5wZWVyQGJyb2FkY29tLmNvbT4KRGF0ZTogU3VuLCAxIE1hciAyMDIwIDIyOjA3OjE4IC0w NTAwClN1YmplY3Q6IFtQQVRDSCAzMS82Nl0gYm54dF9lbjogZml4IGVycm9yIGhhbmRsaW5nIHdo ZW4gZmxhc2hpbmcgZnJvbSBmaWxlCgpbIFVwc3RyZWFtIGNvbW1pdCAyMjYzMGUyOGY5YzJiNTVh YmQyMTc4NjljYzA2OTZkZWY4OWYyMjg0IF0KCkFmdGVyIGJueHRfaHdybV9kb19zZW5kX21lc3Nh Z2UoKSB3YXMgdXBkYXRlZCB0byByZXR1cm4gc3RhbmRhcmQgZXJyb3IKY29kZXMgaW4gYSByZWNl bnQgY29tbWl0LCBhIHJlZ3Jlc3Npb24gaW4gYm54dF9mbGFzaF9wYWNrYWdlX2Zyb21fZmlsZSgp CndhcyBpbnRyb2R1Y2VkLiAgVGhlIHJldHVybiB2YWx1ZSBkb2VzIG5vdCBwcm9wZXJseSByZWZs ZWN0IGFsbApwb3NzaWJsZSBmaXJtd2FyZSBlcnJvcnMgd2hlbiBjYWxsaW5nIGZpcm13YXJlIHRv IGZsYXNoIHRoZSBwYWNrYWdlLgoKRml4IGl0IGJ5IGNvbnNvbGlkYXRpbmcgYWxsIGVycm9ycyBp biBvbmUgbG9jYWwgdmFyaWFibGUgcmMgaW5zdGVhZApvZiBoYXZpbmcgMiB2YXJpYWJsZXMgZm9y IGRpZmZlcmVudCBlcnJvcnMuCgpGaXhlczogZDRmMTQyMGQzNjU2ICgiYm54dF9lbjogQ29udmVy dCBlcnJvciBjb2RlIGluIGZpcm13YXJlIG1lc3NhZ2UgcmVzcG9uc2UgdG8gc3RhbmRhcmQgY29k ZS4iKQpTaWduZWQtb2ZmLWJ5OiBFZHdpbiBQZWVyIDxlZHdpbi5wZWVyQGJyb2FkY29tLmNvbT4K U2lnbmVkLW9mZi1ieTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5AYnJvYWRjb20uY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog Li4uL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jIHwgMjQgKysrKysr KysrLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQv Ym54dF9ldGh0b29sLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRf ZXRodG9vbC5jCmluZGV4IDA4ZDU2ZWM3YjY4YS4uOTcyMzgzYWVmYzJiIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHRfZXRodG9vbC5jCisrKyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2JueHQvYm54dF9ldGh0b29sLmMKQEAgLTIwMDcs OCArMjAwNyw4IEBAIGludCBibnh0X2ZsYXNoX3BhY2thZ2VfZnJvbV9maWxlKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCXN0cnVjdCBod3JtX252bV9pbnN0 YWxsX3VwZGF0ZV9vdXRwdXQgKnJlc3AgPSBicC0+aHdybV9jbWRfcmVzcF9hZGRyOwogCXN0cnVj dCBod3JtX252bV9pbnN0YWxsX3VwZGF0ZV9pbnB1dCBpbnN0YWxsID0gezB9OwogCWNvbnN0IHN0 cnVjdCBmaXJtd2FyZSAqZnc7Ci0JaW50IHJjLCBod3JtX2VyciA9IDA7CiAJdTMyIGl0ZW1fbGVu OworCWludCByYyA9IDA7CiAJdTE2IGluZGV4OwogCiAJYm54dF9od3JtX2Z3X3NldF90aW1lKGJw KTsKQEAgLTIwNTIsMTUgKzIwNTIsMTQgQEAgaW50IGJueHRfZmxhc2hfcGFja2FnZV9mcm9tX2Zp bGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZmlsZW5hbWUsCiAJCQltZW1j cHkoa21lbSwgZnctPmRhdGEsIGZ3LT5zaXplKTsKIAkJCW1vZGlmeS5ob3N0X3NyY19hZGRyID0g Y3B1X3RvX2xlNjQoZG1hX2hhbmRsZSk7CiAKLQkJCWh3cm1fZXJyID0gaHdybV9zZW5kX21lc3Nh Z2UoYnAsICZtb2RpZnksCi0JCQkJCQkgICAgIHNpemVvZihtb2RpZnkpLAotCQkJCQkJICAgICBG TEFTSF9QQUNLQUdFX1RJTUVPVVQpOworCQkJcmMgPSBod3JtX3NlbmRfbWVzc2FnZShicCwgJm1v ZGlmeSwgc2l6ZW9mKG1vZGlmeSksCisJCQkJCSAgICAgICBGTEFTSF9QQUNLQUdFX1RJTUVPVVQp OwogCQkJZG1hX2ZyZWVfY29oZXJlbnQoJmJwLT5wZGV2LT5kZXYsIGZ3LT5zaXplLCBrbWVtLAog CQkJCQkgIGRtYV9oYW5kbGUpOwogCQl9CiAJfQogCXJlbGVhc2VfZmlybXdhcmUoZncpOwotCWlm IChyYyB8fCBod3JtX2VycikKKwlpZiAocmMpCiAJCWdvdG8gZXJyX2V4aXQ7CiAKIAlpZiAoKGlu c3RhbGxfdHlwZSAmIDB4ZmZmZikgPT0gMCkKQEAgLTIwNjksMjAgKzIwNjgsMTkgQEAgaW50IGJu eHRfZmxhc2hfcGFja2FnZV9mcm9tX2ZpbGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3Qg Y2hhciAqZmlsZW5hbWUsCiAJaW5zdGFsbC5pbnN0YWxsX3R5cGUgPSBjcHVfdG9fbGUzMihpbnN0 YWxsX3R5cGUpOwogCiAJbXV0ZXhfbG9jaygmYnAtPmh3cm1fY21kX2xvY2spOwotCWh3cm1fZXJy ID0gX2h3cm1fc2VuZF9tZXNzYWdlKGJwLCAmaW5zdGFsbCwgc2l6ZW9mKGluc3RhbGwpLAotCQkJ CSAgICAgIElOU1RBTExfUEFDS0FHRV9USU1FT1VUKTsKLQlpZiAoaHdybV9lcnIpIHsKKwlyYyA9 IF9od3JtX3NlbmRfbWVzc2FnZShicCwgJmluc3RhbGwsIHNpemVvZihpbnN0YWxsKSwKKwkJCQlJ TlNUQUxMX1BBQ0tBR0VfVElNRU9VVCk7CisJaWYgKHJjKSB7CiAJCXU4IGVycm9yX2NvZGUgPSAo KHN0cnVjdCBod3JtX2Vycl9vdXRwdXQgKilyZXNwKS0+Y21kX2VycjsKIAogCQlpZiAocmVzcC0+ ZXJyb3JfY29kZSAmJiBlcnJvcl9jb2RlID09CiAJCSAgICBOVk1fSU5TVEFMTF9VUERBVEVfQ01E X0VSUl9DT0RFX0ZSQUdfRVJSKSB7CiAJCQlpbnN0YWxsLmZsYWdzIHw9IGNwdV90b19sZTE2KAog CQkJICAgICAgIE5WTV9JTlNUQUxMX1VQREFURV9SRVFfRkxBR1NfQUxMT1dFRF9UT19ERUZSQUcp OwotCQkJaHdybV9lcnIgPSBfaHdybV9zZW5kX21lc3NhZ2UoYnAsICZpbnN0YWxsLAotCQkJCQkJ ICAgICAgc2l6ZW9mKGluc3RhbGwpLAotCQkJCQkJICAgICAgSU5TVEFMTF9QQUNLQUdFX1RJTUVP VVQpOworCQkJcmMgPSBfaHdybV9zZW5kX21lc3NhZ2UoYnAsICZpbnN0YWxsLCBzaXplb2YoaW5z dGFsbCksCisJCQkJCQlJTlNUQUxMX1BBQ0tBR0VfVElNRU9VVCk7CiAJCX0KLQkJaWYgKGh3cm1f ZXJyKQorCQlpZiAocmMpCiAJCQlnb3RvIGZsYXNoX3BrZ19leGl0OwogCX0KIApAQCAtMjA5NCw3 ICsyMDkyLDcgQEAgaW50IGJueHRfZmxhc2hfcGFja2FnZV9mcm9tX2ZpbGUoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZmlsZW5hbWUsCiBmbGFzaF9wa2dfZXhpdDoKIAltdXRl eF91bmxvY2soJmJwLT5od3JtX2NtZF9sb2NrKTsKIGVycl9leGl0OgotCWlmIChod3JtX2VyciA9 PSAtRUFDQ0VTKQorCWlmIChyYyA9PSAtRUFDQ0VTKQogCQlibnh0X3ByaW50X2FkbWluX2Vycihi cCk7CiAJcmV0dXJuIHJjOwogfQotLSAKMi4yMC4xCgoKRnJvbSA0MDE4MWE0OWI0NDNmMzM1NTAy N2UxODZjZDQwZTVjMmJmMDc5ZjgwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFr ZWVsIEJ1dHQgPHNoYWtlZWxiQGdvb2dsZS5jb20+CkRhdGU6IE1vbiwgOSBNYXIgMjAyMCAyMjox NjowNSAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMzIvNjZdIGNncm91cDogbWVtY2c6IG5ldDogZG8g bm90IGFzc29jaWF0ZSBzb2NrIHdpdGgKIHVucmVsYXRlZCBjZ3JvdXAKClsgVXBzdHJlYW0gY29t bWl0IGU4NzZlY2M2N2RiODBkZmRiOGUyMzdmNzFlNWI0M2JiODhhZTU0OWMgXQoKV2UgYXJlIHRl c3RpbmcgbmV0d29yayBtZW1vcnkgYWNjb3VudGluZyBpbiBvdXIgc2V0dXAgYW5kIG5vdGljZWQK aW5jb25zaXN0ZW50IG5ldHdvcmsgbWVtb3J5IHVzYWdlIGFuZCBvZnRlbiB1bnJlbGF0ZWQgY2dy b3VwcyBuZXR3b3JrCnVzYWdlIGNvcnJlbGF0ZXMgd2l0aCB0ZXN0aW5nIHdvcmtsb2FkLiBPbiBm dXJ0aGVyIGluc3BlY3Rpb24sIGl0CnNlZW1zIGxpa2UgbWVtX2Nncm91cF9za19hbGxvYygpIGFu ZCBjZ3JvdXBfc2tfYWxsb2MoKSBhcmUgYnJva2VuIGluCmlycSBjb250ZXh0IHNwZWNpYWxseSBm b3IgY2dyb3VwIHYxLgoKbWVtX2Nncm91cF9za19hbGxvYygpIGFuZCBjZ3JvdXBfc2tfYWxsb2Mo KSBjYW4gYmUgY2FsbGVkIGluIGlycSBjb250ZXh0CmFuZCBraW5kIG9mIGFzc3VtZXMgdGhhdCB0 aGlzIGNhbiBvbmx5IGhhcHBlbiBmcm9tIHNrX2Nsb25lX2xvY2soKQphbmQgdGhlIHNvdXJjZSBz b2NrIG9iamVjdCBoYXMgYWxyZWFkeSBhc3NvY2lhdGVkIGNncm91cC4gSG93ZXZlciBpbgpjZ3Jv dXAgdjEsIHdoZXJlIG5ldHdvcmsgbWVtb3J5IGFjY291bnRpbmcgaXMgb3B0LWluLCB0aGUgc291 cmNlIHNvY2sKY2FuIGJlIHVuYXNzb2NpYXRlZCB3aXRoIGFueSBjZ3JvdXAgYW5kIHRoZSBuZXcg Y2xvbmVkIHNvY2sgY2FuIGdldAphc3NvY2lhdGVkIHdpdGggdW5yZWxhdGVkIGludGVycnVwdGVk IGNncm91cC4KCkNncm91cCB2MiBjYW4gYWxzbyBzdWZmZXIgaWYgdGhlIHNvdXJjZSBzb2NrIG9i amVjdCB3YXMgY3JlYXRlZCBieQpwcm9jZXNzIGluIHRoZSByb290IGNncm91cCBvciBpZiBza19h bGxvYygpIGlzIGNhbGxlZCBpbiBpcnEgY29udGV4dC4KVGhlIGZpeCBpcyB0byBqdXN0IGRvIG5v dGhpbmcgaW4gaW50ZXJydXB0LgoKV0FSTklORzogUGxlYXNlIG5vdGUgdGhhdCBhYm91dCBoYWxm IG9mIHRoZSBUQ1Agc29ja2V0cyBhcmUgYWxsb2NhdGVkCmZyb20gdGhlIElSUSBjb250ZXh0LCBz bywgbWVtb3J5IHVzZWQgYnkgc3VjaCBzb2NrZXRzIHdpbGwgbm90IGJlCmFjY291dGVkIGJ5IHRo ZSBtZW1jZy4KClRoZSBzdGFjayB0cmFjZSBvZiBtZW1fY2dyb3VwX3NrX2FsbG9jKCkgZnJvbSBJ UlEtY29udGV4dDoKCkNQVTogNzAgUElEOiAxMjcyMCBDb21tOiBzc2ggVGFpbnRlZDogIDUuNi4w LXNtcC1ERVYgIzEKSGFyZHdhcmUgbmFtZTogLi4uCkNhbGwgVHJhY2U6CiA8SVJRPgogZHVtcF9z dGFjaysweDU3LzB4NzUKIG1lbV9jZ3JvdXBfc2tfYWxsb2MrMHhlOS8weGYwCiBza19jbG9uZV9s b2NrKzB4MmE3LzB4NDIwCiBpbmV0X2Nza19jbG9uZV9sb2NrKzB4MWIvMHgxMTAKIHRjcF9jcmVh dGVfb3BlbnJlcV9jaGlsZCsweDIzLzB4M2IwCiB0Y3BfdjZfc3luX3JlY3Zfc29jaysweDg4LzB4 NzMwCiB0Y3BfY2hlY2tfcmVxKzB4NDI5LzB4NTYwCiB0Y3BfdjZfcmN2KzB4NzJkLzB4YTQwCiBp cDZfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHhjOS8weDQwMAogaXA2X2lucHV0KzB4NDQvMHhkMAog PyBpcDZfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHg0MDAvMHg0MDAKIGlwNl9yY3ZfZmluaXNoKzB4 NzEvMHg4MAogaXB2Nl9yY3YrMHg1Yi8weGUwCiA/IGlwNl9zdWJsaXN0X3JjdisweDJlMC8weDJl MAogcHJvY2Vzc19iYWNrbG9nKzB4MTA4LzB4MWUwCiBuZXRfcnhfYWN0aW9uKzB4MjZiLzB4NDYw CiBfX2RvX3NvZnRpcnErMHgxMDQvMHgyYTYKIGRvX3NvZnRpcnFfb3duX3N0YWNrKzB4MmEvMHg0 MAogPC9JUlE+CiBkb19zb2Z0aXJxLnBhcnQuMTkrMHg0MC8weDUwCiBfX2xvY2FsX2JoX2VuYWJs ZV9pcCsweDUxLzB4NjAKIGlwNl9maW5pc2hfb3V0cHV0MisweDIzZC8weDUyMAogPyBpcDZ0YWJs ZV9tYW5nbGVfaG9vaysweDU1LzB4MTYwCiBfX2lwNl9maW5pc2hfb3V0cHV0KzB4YTEvMHgxMDAK IGlwNl9maW5pc2hfb3V0cHV0KzB4MzAvMHhkMAogaXA2X291dHB1dCsweDczLzB4MTIwCiA/IF9f aXA2X2ZpbmlzaF9vdXRwdXQrMHgxMDAvMHgxMDAKIGlwNl94bWl0KzB4MmUzLzB4NjAwCiA/IGlw djZfYW55Y2FzdF9jbGVhbnVwKzB4NTAvMHg1MAogPyBpbmV0Nl9jc2tfcm91dGVfc29ja2V0KzB4 MTM2LzB4MWUwCiA/IHNrYl9mcmVlX2hlYWQrMHgxZS8weDMwCiBpbmV0Nl9jc2tfeG1pdCsweDk1 LzB4ZjAKIF9fdGNwX3RyYW5zbWl0X3NrYisweDViNC8weGIyMAogX190Y3Bfc2VuZF9hY2sucGFy dC42MCsweGEzLzB4MTEwCiB0Y3Bfc2VuZF9hY2srMHgxZC8weDIwCiB0Y3BfcmN2X3N0YXRlX3By b2Nlc3MrMHhlNjQvMHhlODAKID8gdGNwX3Y2X2Nvbm5lY3QrMHg1ZDEvMHg1ZjAKIHRjcF92Nl9k b19yY3YrMHgxYjEvMHgzZjAKID8gdGNwX3Y2X2RvX3JjdisweDFiMS8weDNmMAogX19yZWxlYXNl X3NvY2srMHg3Zi8weGQwCiByZWxlYXNlX3NvY2srMHgzMC8weGEwCiBfX2luZXRfc3RyZWFtX2Nv bm5lY3QrMHgxYzMvMHgzYjAKID8gcHJlcGFyZV90b193YWl0KzB4YjAvMHhiMAogaW5ldF9zdHJl YW1fY29ubmVjdCsweDNiLzB4NjAKIF9fc3lzX2Nvbm5lY3QrMHgxMDEvMHgxMjAKID8gX19zeXNf Z2V0c29ja29wdCsweDExYi8weDE0MAogX194NjRfc3lzX2Nvbm5lY3QrMHgxYS8weDIwCiBkb19z eXNjYWxsXzY0KzB4NTEvMHgyMDAKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0 LzB4YTkKClRoZSBzdGFjayB0cmFjZSBvZiBtZW1fY2dyb3VwX3NrX2FsbG9jKCkgZnJvbSBJUlEt Y29udGV4dDoKRml4ZXM6IDJkNzU4MDczODM0NSAoIm1tOiBtZW1jb250cm9sOiBjb25zb2xpZGF0 ZSBjZ3JvdXAgc29ja2V0IHRyYWNraW5nIikKRml4ZXM6IGQ5NzlhMzlkNzI0MiAoImNncm91cDog ZHVwbGljYXRlIGNncm91cCByZWZlcmVuY2Ugd2hlbiBjbG9uaW5nIHNvY2tldHMiKQpTaWduZWQt b2ZmLWJ5OiBTaGFrZWVsIEJ1dHQgPHNoYWtlZWxiQGdvb2dsZS5jb20+ClJldmlld2VkLWJ5OiBS b21hbiBHdXNoY2hpbiA8Z3Vyb0BmYi5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBrZXJuZWwvY2dyb3VwL2Nncm91cC5jIHwgNCAr KysrCiBtbS9tZW1jb250cm9sLmMgICAgICAgIHwgNCArKysrCiAyIGZpbGVzIGNoYW5nZWQsIDgg aW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAvY2dyb3VwLmMgYi9rZXJu ZWwvY2dyb3VwL2Nncm91cC5jCmluZGV4IDMwODkyYzQ3NTliNC4uMGFmZTMyNTk4MmM3IDEwMDY0 NAotLS0gYS9rZXJuZWwvY2dyb3VwL2Nncm91cC5jCisrKyBiL2tlcm5lbC9jZ3JvdXAvY2dyb3Vw LmMKQEAgLTYyNjMsNiArNjI2MywxMCBAQCB2b2lkIGNncm91cF9za19hbGxvYyhzdHJ1Y3Qgc29j a19jZ3JvdXBfZGF0YSAqc2tjZCkKIAkJcmV0dXJuOwogCX0KIAorCS8qIERvbid0IGFzc29jaWF0 ZSB0aGUgc29jayB3aXRoIHVucmVsYXRlZCBpbnRlcnJ1cHRlZCB0YXNrJ3MgY2dyb3VwLiAqLwor CWlmIChpbl9pbnRlcnJ1cHQoKSkKKwkJcmV0dXJuOworCiAJcmN1X3JlYWRfbG9jaygpOwogCiAJ d2hpbGUgKHRydWUpIHsKZGlmZiAtLWdpdCBhL21tL21lbWNvbnRyb2wuYyBiL21tL21lbWNvbnRy b2wuYwppbmRleCBlZGE0OTAxMTMzNzIuLmY4OTU5ODQzNmRlYyAxMDA2NDQKLS0tIGEvbW0vbWVt Y29udHJvbC5jCisrKyBiL21tL21lbWNvbnRyb2wuYwpAQCAtNjY5Nyw2ICs2Njk3LDEwIEBAIHZv aWQgbWVtX2Nncm91cF9za19hbGxvYyhzdHJ1Y3Qgc29jayAqc2spCiAJCXJldHVybjsKIAl9CiAK KwkvKiBEbyBub3QgYXNzb2NpYXRlIHRoZSBzb2NrIHdpdGggdW5yZWxhdGVkIGludGVycnVwdGVk IHRhc2sncyBtZW1jZy4gKi8KKwlpZiAoaW5faW50ZXJydXB0KCkpCisJCXJldHVybjsKKwogCXJj dV9yZWFkX2xvY2soKTsKIAltZW1jZyA9IG1lbV9jZ3JvdXBfZnJvbV90YXNrKGN1cnJlbnQpOwog CWlmIChtZW1jZyA9PSByb290X21lbV9jZ3JvdXApCi0tIAoyLjIwLjEKCgpGcm9tIGFmZTc0NjQz ZGNkN2FlMDE2NzA1ODNjY2IyMjFmMDFmZjk5NTk1YmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IFNoYWtlZWwgQnV0dCA8c2hha2VlbGJAZ29vZ2xlLmNvbT4KRGF0ZTogTW9uLCA5IE1h ciAyMDIwIDIyOjE2OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzMy82Nl0gbmV0OiBtZW1jZzog bGF0ZSBhc3NvY2lhdGlvbiBvZiBzb2NrIHRvIG1lbWNnCgpbIFVwc3RyZWFtIGNvbW1pdCBkNzUy YTQ5ODY1MzJjYjYzMDVkZmQ1MjkwYTYxNGNkZTgwNzI3NjlkIF0KCklmIGEgVENQIHNvY2tldCBp cyBhbGxvY2F0ZWQgaW4gSVJRIGNvbnRleHQgb3IgY2xvbmVkIGZyb20gdW5hc3NvY2lhdGVkCihp LmUuIG5vdCBhc3NvY2lhdGVkIHRvIGEgbWVtY2cpIGluIElSUSBjb250ZXh0IHRoZW4gaXQgd2ls bCByZW1haW4KdW5hc3NvY2lhdGVkIGZvciBpdHMgd2hvbGUgbGlmZS4gQWxtb3N0IGhhbGYgb2Yg dGhlIFRDUHMgY3JlYXRlZCBvbiB0aGUKc3lzdGVtIGFyZSBjcmVhdGVkIGluIElSUSBjb250ZXh0 LCBzbywgbWVtb3J5IHVzZWQgYnkgc3VjaCBzb2NrZXRzIHdpbGwKbm90IGJlIGFjY291bnRlZCBi eSB0aGUgbWVtY2cuCgpUaGlzIGlzc3VlIGlzIG1vcmUgd2lkZXNwcmVhZCBpbiBjZ3JvdXAgdjEg d2hlcmUgbmV0d29yayBtZW1vcnkKYWNjb3VudGluZyBpcyBvcHQtaW4gYnV0IGl0IGNhbiBoYXBw ZW4gaW4gY2dyb3VwIHYyIGlmIHRoZSBzb3VyY2Ugc29ja2V0CmZvciB0aGUgY2xvbmluZyB3YXMg Y3JlYXRlZCBpbiByb290IG1lbWNnLgoKVG8gZml4IHRoZSBpc3N1ZSwganVzdCBkbyB0aGUgYXNz b2NpYXRpb24gb2YgdGhlIHNvY2tldHMgYXQgdGhlIGFjY2VwdCgpCnRpbWUgaW4gdGhlIHByb2Nl c3MgY29udGV4dCBhbmQgdGhlbiBmb3JjZSBjaGFyZ2UgdGhlIG1lbW9yeSBidWZmZXIKYWxyZWFk eSB1c2VkIGFuZCByZXNlcnZlZCBieSB0aGUgc29ja2V0LgoKU2lnbmVkLW9mZi1ieTogU2hha2Vl bCBCdXR0IDxzaGFrZWVsYkBnb29nbGUuY29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbW0vbWVtY29udHJvbC5jICAgICAgICAgICAgICAgICB8IDE0 IC0tLS0tLS0tLS0tLS0tCiBuZXQvY29yZS9zb2NrLmMgICAgICAgICAgICAgICAgIHwgIDUgKysr Ky0KIG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMgfCAyMCArKysrKysrKysrKysrKysr KysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9tbS9tZW1jb250cm9sLmMgYi9tbS9tZW1jb250cm9sLmMKaW5kZXggZjg5 NTk4NDM2ZGVjLi5lYTFiY2QyMWZlZmQgMTAwNjQ0Ci0tLSBhL21tL21lbWNvbnRyb2wuYworKysg Yi9tbS9tZW1jb250cm9sLmMKQEAgLTY2ODMsMjAgKzY2ODMsNiBAQCB2b2lkIG1lbV9jZ3JvdXBf c2tfYWxsb2Moc3RydWN0IHNvY2sgKnNrKQogCWlmICghbWVtX2Nncm91cF9zb2NrZXRzX2VuYWJs ZWQpCiAJCXJldHVybjsKIAotCS8qCi0JICogU29ja2V0IGNsb25pbmcgY2FuIHRocm93IHVzIGhl cmUgd2l0aCBza19tZW1jZyBhbHJlYWR5Ci0JICogZmlsbGVkLiBJdCB3b24ndCBob3dldmVyLCBu ZWNlc3NhcmlseSBoYXBwZW4gZnJvbQotCSAqIHByb2Nlc3MgY29udGV4dC4gU28gdGhlIHRlc3Qg Zm9yIHJvb3QgbWVtY2cgZ2l2ZW4KLQkgKiB0aGUgY3VycmVudCB0YXNrJ3MgbWVtY2cgd29uJ3Qg aGVscCB1cyBpbiB0aGlzIGNhc2UuCi0JICoKLQkgKiBSZXNwZWN0aW5nIHRoZSBvcmlnaW5hbCBz b2NrZXQncyBtZW1jZyBpcyBhIGJldHRlcgotCSAqIGRlY2lzaW9uIGluIHRoaXMgY2FzZS4KLQkg Ki8KLQlpZiAoc2stPnNrX21lbWNnKSB7Ci0JCWNzc19nZXQoJnNrLT5za19tZW1jZy0+Y3NzKTsK LQkJcmV0dXJuOwotCX0KLQogCS8qIERvIG5vdCBhc3NvY2lhdGUgdGhlIHNvY2sgd2l0aCB1bnJl bGF0ZWQgaW50ZXJydXB0ZWQgdGFzaydzIG1lbWNnLiAqLwogCWlmIChpbl9pbnRlcnJ1cHQoKSkK IAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvbmV0L2NvcmUvc29jay5jIGIvbmV0L2NvcmUvc29jay5j CmluZGV4IDg0NTlhZDU3OWY3My4uYTJmOGEzNGMxZTY5IDEwMDY0NAotLS0gYS9uZXQvY29yZS9z b2NrLmMKKysrIGIvbmV0L2NvcmUvc29jay5jCkBAIC0xODMwLDcgKzE4MzAsMTAgQEAgc3RydWN0 IHNvY2sgKnNrX2Nsb25lX2xvY2soY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBjb25zdCBnZnBfdCBw cmlvcml0eSkKIAkJYXRvbWljX3NldCgmbmV3c2stPnNrX3pja2V5LCAwKTsKIAogCQlzb2NrX3Jl c2V0X2ZsYWcobmV3c2ssIFNPQ0tfRE9ORSk7Ci0JCW1lbV9jZ3JvdXBfc2tfYWxsb2MobmV3c2sp OworCisJCS8qIHNrLT5za19tZW1jZyB3aWxsIGJlIHBvcHVsYXRlZCBhdCBhY2NlcHQoKSB0aW1l ICovCisJCW5ld3NrLT5za19tZW1jZyA9IE5VTEw7CisKIAkJY2dyb3VwX3NrX2FsbG9jKCZuZXdz ay0+c2tfY2dycF9kYXRhKTsKIAogCQlyY3VfcmVhZF9sb2NrKCk7CmRpZmYgLS1naXQgYS9uZXQv aXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3Nv Y2suYwppbmRleCAxOGMwZDViZmZlMTIuLjFiZTkwNDhlNWM2YiAxMDA2NDQKLS0tIGEvbmV0L2lw djQvaW5ldF9jb25uZWN0aW9uX3NvY2suYworKysgYi9uZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25f c29jay5jCkBAIC00ODIsNiArNDgyLDI2IEBAIHN0cnVjdCBzb2NrICppbmV0X2Nza19hY2NlcHQo c3RydWN0IHNvY2sgKnNrLCBpbnQgZmxhZ3MsIGludCAqZXJyLCBib29sIGtlcm4pCiAJCX0KIAkJ c3Bpbl91bmxvY2tfYmgoJnF1ZXVlLT5mYXN0b3BlbnEubG9jayk7CiAJfQorCisJaWYgKG1lbV9j Z3JvdXBfc29ja2V0c19lbmFibGVkKSB7CisJCWludCBhbXQ7CisKKwkJLyogYXRvbWljYWxseSBn ZXQgdGhlIG1lbW9yeSB1c2FnZSwgc2V0IGFuZCBjaGFyZ2UgdGhlCisJCSAqIHNrLT5za19tZW1j Zy4KKwkJICovCisJCWxvY2tfc29jayhuZXdzayk7CisKKwkJLyogVGhlIHNrIGhhcyBub3QgYmVl biBhY2NlcHRlZCB5ZXQsIG5vIG5lZWQgdG8gbG9vayBhdAorCQkgKiBzay0+c2tfd21lbV9xdWV1 ZWQuCisJCSAqLworCQlhbXQgPSBza19tZW1fcGFnZXMobmV3c2stPnNrX2ZvcndhcmRfYWxsb2Mg KworCQkJCSAgIGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9hbGxvYykpOworCQltZW1fY2dyb3Vw X3NrX2FsbG9jKG5ld3NrKTsKKwkJaWYgKG5ld3NrLT5za19tZW1jZyAmJiBhbXQpCisJCQltZW1f Y2dyb3VwX2NoYXJnZV9za21lbShuZXdzay0+c2tfbWVtY2csIGFtdCk7CisKKwkJcmVsZWFzZV9z b2NrKG5ld3NrKTsKKwl9CiBvdXQ6CiAJcmVsZWFzZV9zb2NrKHNrKTsKIAlpZiAocmVxKQotLSAK Mi4yMC4xCgoKRnJvbSA2YTc3MTk5N2FiMjIyNGU1YTFiNzdkMGE2MWM1NzM1OWZlNGU3ODY4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkRhdGU6IFdlZCwgMTEgTWFyIDIwMjAgMTE6NDQ6MjYgLTA3MDAKU3ViamVjdDogW1BB VENIIDM0LzY2XSBuZXQ6IG1lbWNnOiBmaXggbG9ja2RlcCBzcGxhdCBpbiBpbmV0X2Nza19hY2Nl cHQoKQoKTG9ja2luZyBuZXdzayB3aGlsZSBzdGlsbCBob2xkaW5nIHRoZSBsaXN0ZW5lciBsb2Nr IHRyaWdnZXJlZAphIGxvY2tkZXAgc3BsYXQgWzFdCgpXZSBjYW4gc2ltcGx5IG1vdmUgdGhlIG1l bWNnIGNvZGUgYWZ0ZXIgd2UgcmVsZWFzZSB0aGUgbGlzdGVuZXIgbG9jaywKYXMgdGhpcyBjYW4g YWxzbyBoZWxwIGlmIG11bHRpcGxlIHRocmVhZHMgYXJlIHNoYXJpbmcgYSBjb21tb24gbGlzdGVu ZXIuCgpBbHNvIGZpeCBhIHR5cG8gd2hpbGUgcmVhZGluZyBzb2NrZXQgc2tfcm1lbV9hbGxvYy4K ClsxXQpXQVJOSU5HOiBwb3NzaWJsZSByZWN1cnNpdmUgbG9ja2luZyBkZXRlY3RlZAo1LjYuMC1y YzMtc3l6a2FsbGVyICMwIE5vdCB0YWludGVkCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCnN5ei1leGVjdXRvcjU5OC85NTI0IGlzIHRyeWluZyB0byBhY3F1aXJl IGxvY2s6CmZmZmY4ODgwOGI1YjhiOTAgKHNrX2xvY2stQUZfSU5FVDYpeysuKy59LCBhdDogbG9j a19zb2NrIGluY2x1ZGUvbmV0L3NvY2suaDoxNTQxIFtpbmxpbmVdCmZmZmY4ODgwOGI1YjhiOTAg KHNrX2xvY2stQUZfSU5FVDYpeysuKy59LCBhdDogaW5ldF9jc2tfYWNjZXB0KzB4NjlmLzB4ZDMw IG5ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmM6NDkyCgpidXQgdGFzayBpcyBhbHJlYWR5 IGhvbGRpbmcgbG9jazoKZmZmZjg4ODA4YjViOTU5MCAoc2tfbG9jay1BRl9JTkVUNil7Ky4rLn0s IGF0OiBsb2NrX3NvY2sgaW5jbHVkZS9uZXQvc29jay5oOjE1NDEgW2lubGluZV0KZmZmZjg4ODA4 YjViOTU5MCAoc2tfbG9jay1BRl9JTkVUNil7Ky4rLn0sIGF0OiBpbmV0X2Nza19hY2NlcHQrMHg4 ZC8weGQzMCBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjQ0NQoKb3RoZXIgaW5mbyB0 aGF0IG1pZ2h0IGhlbHAgdXMgZGVidWcgdGhpczoKIFBvc3NpYmxlIHVuc2FmZSBsb2NraW5nIHNj ZW5hcmlvOgoKICAgICAgIENQVTAKICAgICAgIC0tLS0KICBsb2NrKHNrX2xvY2stQUZfSU5FVDYp OwogIGxvY2soc2tfbG9jay1BRl9JTkVUNik7CgogKioqIERFQURMT0NLICoqKgoKIE1heSBiZSBk dWUgdG8gbWlzc2luZyBsb2NrIG5lc3Rpbmcgbm90YXRpb24KCjEgbG9jayBoZWxkIGJ5IHN5ei1l eGVjdXRvcjU5OC85NTI0OgogIzA6IGZmZmY4ODgwOGI1Yjk1OTAgKHNrX2xvY2stQUZfSU5FVDYp eysuKy59LCBhdDogbG9ja19zb2NrIGluY2x1ZGUvbmV0L3NvY2suaDoxNTQxIFtpbmxpbmVdCiAj MDogZmZmZjg4ODA4YjViOTU5MCAoc2tfbG9jay1BRl9JTkVUNil7Ky4rLn0sIGF0OiBpbmV0X2Nz a19hY2NlcHQrMHg4ZC8weGQzMCBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjQ0NQoK c3RhY2sgYmFja3RyYWNlOgpDUFU6IDAgUElEOiA5NTI0IENvbW06IHN5ei1leGVjdXRvcjU5OCBO b3QgdGFpbnRlZCA1LjYuMC1yYzMtc3l6a2FsbGVyICMwCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBH b29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAw MS8wMS8yMDExCkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzo3NyBb aW5saW5lXQogZHVtcF9zdGFjaysweDE4OC8weDIwZCBsaWIvZHVtcF9zdGFjay5jOjExOAogcHJp bnRfZGVhZGxvY2tfYnVnIGtlcm5lbC9sb2NraW5nL2xvY2tkZXAuYzoyMzcwIFtpbmxpbmVdCiBj aGVja19kZWFkbG9jayBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6MjQxMSBbaW5saW5lXQogdmFs aWRhdGVfY2hhaW4ga2VybmVsL2xvY2tpbmcvbG9ja2RlcC5jOjI5NTQgW2lubGluZV0KIF9fbG9j a19hY3F1aXJlLmNvbGQrMHgxMTQvMHgyODgga2VybmVsL2xvY2tpbmcvbG9ja2RlcC5jOjM5NTQK IGxvY2tfYWNxdWlyZSsweDE5Ny8weDQyMCBrZXJuZWwvbG9ja2luZy9sb2NrZGVwLmM6NDQ4NAog bG9ja19zb2NrX25lc3RlZCsweGM1LzB4MTEwIG5ldC9jb3JlL3NvY2suYzoyOTQ3CiBsb2NrX3Nv Y2sgaW5jbHVkZS9uZXQvc29jay5oOjE1NDEgW2lubGluZV0KIGluZXRfY3NrX2FjY2VwdCsweDY5 Zi8weGQzMCBuZXQvaXB2NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jOjQ5MgogaW5ldF9hY2NlcHQr MHhlOS8weDdjMCBuZXQvaXB2NC9hZl9pbmV0LmM6NzM0CiBfX3N5c19hY2NlcHQ0X2ZpbGUrMHgz YWMvMHg1YjAgbmV0L3NvY2tldC5jOjE3NTgKIF9fc3lzX2FjY2VwdDQrMHg1My8weDkwIG5ldC9z b2NrZXQuYzoxODA5CiBfX2RvX3N5c19hY2NlcHQ0IG5ldC9zb2NrZXQuYzoxODIxIFtpbmxpbmVd CiBfX3NlX3N5c19hY2NlcHQ0IG5ldC9zb2NrZXQuYzoxODE4IFtpbmxpbmVdCiBfX3g2NF9zeXNf YWNjZXB0NCsweDkzLzB4ZjAgbmV0L3NvY2tldC5jOjE4MTgKIGRvX3N5c2NhbGxfNjQrMHhmNi8w eDc5MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTQKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJf aHdmcmFtZSsweDQ5LzB4YmUKUklQOiAwMDMzOjB4NDQ0NWM5CkNvZGU6IGU4IDBjIDBkIDAzIDAw IDQ4IDgzIGM0IDE4IGMzIDBmIDFmIDgwIDAwIDAwIDAwIDAwIDQ4IDg5IGY4IDQ4IDg5IGY3IDQ4 IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRjIDhiIDRjIDI0IDA4IDBmIDA1IDw0 OD4gM2QgMDEgZjAgZmYgZmYgMGYgODMgZWIgMDggZmMgZmYgYzMgNjYgMmUgMGYgMWYgODQgMDAg MDAgMDAgMDAKUlNQOiAwMDJiOjAwMDA3ZmZjMzViMzc2MDggRUZMQUdTOiAwMDAwMDI0NiBPUklH X1JBWDogMDAwMDAwMDAwMDAwMDEyMApSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwMDAw MDAwMDAwMDAzIFJDWDogMDAwMDAwMDAwMDQ0NDVjOQpSRFg6IDAwMDAwMDAwMDAwMDAwMDAgUlNJ OiAwMDAwMDAwMDAwMDAwMDAwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDAwMDAwMDAw MDAwMDAgUjA4OiAwMDAwMDAwMDAwMzA2Nzc3IFIwOTogMDAwMDAwMDAwMDMwNjc3NwpSMTA6IDAw MDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAw MApSMTM6IDAwMDAwMDAwMDA0MDUzZDAgUjE0OiAwMDAwMDAwMDAwMDAwMDAwIFIxNTogMDAwMDAw MDAwMDAwMDAwMAoKRml4ZXM6IGQ3NTJhNDk4NjUzMiAoIm5ldDogbWVtY2c6IGxhdGUgYXNzb2Np YXRpb24gb2Ygc29jayB0byBtZW1jZyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IFNoYWtlZWwgQnV0dCA8c2hha2VlbGJAZ29vZ2xlLmNvbT4K UmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2 NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jIHwgMTQgKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA3IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lw djQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2Nr LmMKaW5kZXggMWJlOTA0OGU1YzZiLi4xNTk1MTNjZTg1MTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0 L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3Nv Y2suYwpAQCAtNDgzLDI3ICs0ODMsMjcgQEAgc3RydWN0IHNvY2sgKmluZXRfY3NrX2FjY2VwdChz dHJ1Y3Qgc29jayAqc2ssIGludCBmbGFncywgaW50ICplcnIsIGJvb2wga2VybikKIAkJc3Bpbl91 bmxvY2tfYmgoJnF1ZXVlLT5mYXN0b3BlbnEubG9jayk7CiAJfQogCi0JaWYgKG1lbV9jZ3JvdXBf c29ja2V0c19lbmFibGVkKSB7CitvdXQ6CisJcmVsZWFzZV9zb2NrKHNrKTsKKwlpZiAobmV3c2sg JiYgbWVtX2Nncm91cF9zb2NrZXRzX2VuYWJsZWQpIHsKIAkJaW50IGFtdDsKIAogCQkvKiBhdG9t aWNhbGx5IGdldCB0aGUgbWVtb3J5IHVzYWdlLCBzZXQgYW5kIGNoYXJnZSB0aGUKLQkJICogc2st PnNrX21lbWNnLgorCQkgKiBuZXdzay0+c2tfbWVtY2cuCiAJCSAqLwogCQlsb2NrX3NvY2sobmV3 c2spOwogCi0JCS8qIFRoZSBzayBoYXMgbm90IGJlZW4gYWNjZXB0ZWQgeWV0LCBubyBuZWVkIHRv IGxvb2sgYXQKLQkJICogc2stPnNrX3dtZW1fcXVldWVkLgorCQkvKiBUaGUgc29ja2V0IGhhcyBu b3QgYmVlbiBhY2NlcHRlZCB5ZXQsIG5vIG5lZWQgdG8gbG9vayBhdAorCQkgKiBuZXdzay0+c2tf d21lbV9xdWV1ZWQuCiAJCSAqLwogCQlhbXQgPSBza19tZW1fcGFnZXMobmV3c2stPnNrX2Zvcndh cmRfYWxsb2MgKwotCQkJCSAgIGF0b21pY19yZWFkKCZzay0+c2tfcm1lbV9hbGxvYykpOworCQkJ CSAgIGF0b21pY19yZWFkKCZuZXdzay0+c2tfcm1lbV9hbGxvYykpOwogCQltZW1fY2dyb3VwX3Nr X2FsbG9jKG5ld3NrKTsKIAkJaWYgKG5ld3NrLT5za19tZW1jZyAmJiBhbXQpCiAJCQltZW1fY2dy b3VwX2NoYXJnZV9za21lbShuZXdzay0+c2tfbWVtY2csIGFtdCk7CiAKIAkJcmVsZWFzZV9zb2Nr KG5ld3NrKTsKIAl9Ci1vdXQ6Ci0JcmVsZWFzZV9zb2NrKHNrKTsKIAlpZiAocmVxKQogCQlyZXFz a19wdXQocmVxKTsKIAlyZXR1cm4gbmV3c2s7Ci0tIAoyLjIwLjEKCgpGcm9tIGFiNTA2ZjgwODg0 NmYyZTE4YTk4MTQ2NWI2YjQ5MzIwMThmOGY3MGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IE1hZGFsaW4gQnVjdXIgPG1hZGFsaW4uYnVjdXJAbnhwLmNvbT4KRGF0ZTogV2VkLCA0IE1h ciAyMDIwIDE4OjA0OjI1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNS82Nl0gZHQtYmluZGluZ3M6 IG5ldDogRk1hbiBlcnJhdHVtIEEwNTAzODUKCkZNQU4gRE1BIHJlYWQgb3Igd3JpdGVzIHVuZGVy IGhlYXZ5IHRyYWZmaWMgbG9hZCBtYXkgY2F1c2UgRk1BTgppbnRlcm5hbCByZXNvdXJjZSBsZWFr OyB0aHVzIHN0b3BwaW5nIGZ1cnRoZXIgcGFja2V0IHByb2Nlc3NpbmcuCgpUaGUgRk1BTiBpbnRl cm5hbCBxdWV1ZSBjYW4gb3ZlcmZsb3cgd2hlbiBGTUFOIHNwbGl0cyBzaW5nbGUKcmVhZCBvciB3 cml0ZSB0cmFuc2FjdGlvbnMgaW50byBtdWx0aXBsZSBzbWFsbGVyIHRyYW5zYWN0aW9ucwpzdWNo IHRoYXQgbW9yZSB0aGFuIDE3IEFYSSB0cmFuc2FjdGlvbnMgYXJlIGluIGZsaWdodCBmcm9tIEZN QU4KdG8gaW50ZXJjb25uZWN0LiBXaGVuIHRoZSBGTUFOIGludGVybmFsIHF1ZXVlIG92ZXJmbG93 cywgaXQgY2FuCnN0YWxsIGZ1cnRoZXIgcGFja2V0IHByb2Nlc3NpbmcuIFRoZSBpc3N1ZSBjYW4g b2NjdXIgd2l0aCBhbnkgb25lCm9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgY29uZGl0aW9uczoKCiAg MS4gRk1BTiBBWEkgdHJhbnNhY3Rpb24gY3Jvc3NlcyA0SyBhZGRyZXNzIGJvdW5kYXJ5IChFcnJh dGEKICAgICBBMDEwMDIyKQogIDIuIEZNQU4gRE1BIGFkZHJlc3MgZm9yIGFuIEFYSSB0cmFuc2Fj dGlvbiBpcyBub3QgMTYgYnl0ZQogICAgIGFsaWduZWQsIGkuZS4gdGhlIGxhc3QgNCBiaXRzIG9m IGFuIGFkZHJlc3MgYXJlIG5vbi16ZXJvCiAgMy4gU2NhdHRlciBHYXRoZXIgKFNHKSBmcmFtZXMg aGF2ZSBtb3JlIHRoYW4gb25lIFNHIGJ1ZmZlciBpbgogICAgIHRoZSBTRyBsaXN0IGFuZCBhbnkg b25lIG9mIHRoZSBidWZmZXJzLCBleGNlcHQgdGhlIGxhc3QKICAgICBidWZmZXIgaW4gdGhlIFNH IGxpc3QgaGFzIGRhdGEgc2l6ZSB0aGF0IGlzIG5vdCBhIG11bHRpcGxlCiAgICAgb2YgMTYgYnl0 ZXMsIGkuZS4sIG90aGVyIHRoYW4gMTYsIDMyLCA0OCwgNjQsIGV0Yy4KCldpdGggYW55IG9uZSBv ZiB0aGUgYWJvdmUgdGhyZWUgY29uZGl0aW9ucyBwcmVzZW50LCB0aGVyZSBpcwpsaWtlbGlob29k IG9mIHN0YWxsZWQgRk1BTiBwYWNrZXQgcHJvY2Vzc2luZywgZXNwZWNpYWxseSB1bmRlcgpzdHJl c3Mgd2l0aCBtdWx0aXBsZSBwb3J0cyBpbmplY3RpbmcgbGluZS1yYXRlIHRyYWZmaWMuCgpUbyBh dm9pZCBzaXR1YXRpb25zIHRoYXQgc3RhbGwgRk1BTiBwYWNrZXQgcHJvY2Vzc2luZywgYWxsIG9m IHRoZQphYm92ZSB0aHJlZSBjb25kaXRpb25zIG11c3QgYmUgYXZvaWRlZDsgdGhlcmVmb3JlLCBj b25maWd1cmUgdGhlCnN5c3RlbSB3aXRoIHRoZSBmb2xsb3dpbmcgcnVsZXM6CgogIDEuIEZyYW1l IGJ1ZmZlcnMgbXVzdCBub3Qgc3BhbiBhIDRLQiBhZGRyZXNzIGJvdW5kYXJ5LCB1bmxlc3MKICAg ICB0aGUgZnJhbWUgc3RhcnQgYWRkcmVzcyBpcyAyNTYgYnl0ZSBhbGlnbmVkCiAgMi4gQWxsIEZN QU4gRE1BIHN0YXJ0IGFkZHJlc3NlcyAoZm9yIGV4YW1wbGUsIEJNQU4gYnVmZmVyCiAgICAgYWRk cmVzcywgRkRbYWRkcmVzc10gKyBGRFtvZmZzZXRdKSBhcmUgMTZCIGFsaWduZWQKICAzLiBTRyB0 YWJsZSBhbmQgYnVmZmVyIGFkZHJlc3NlcyBhcmUgMTZCIGFsaWduZWQgYW5kIHRoZSBzaXplCiAg ICAgb2YgU0cgYnVmZmVycyBhcmUgbXVsdGlwbGUgb2YgMTYgYnl0ZXMsIGV4Y2VwdCBmb3IgdGhl IGxhc3QKICAgICBTRyBidWZmZXIgdGhhdCBjYW4gYmUgb2YgYW55IHNpemUuCgpBZGRpdGlvbmFs IHdvcmthcm91bmQgbm90ZXM6Ci0gQWRkcmVzcyBhbGlnbm1lbnQgb2YgNjQgYnl0ZXMgaXMgcmVj b21tZW5kZWQgZm9yIG1heGltYWxseQplZmZpY2llbnQgc3lzdGVtIGJ1cyB0cmFuc2FjdGlvbnMg KGFsdGhvdWdoIDE2IGJ5dGUgYWxpZ25tZW50IGlzCnN1ZmZpY2llbnQgdG8gYXZvaWQgdGhlIHN0 YWxsIGNvbmRpdGlvbikKLSBUbyBzdXBwb3J0IGZyYW1lIHNpemVzIHRoYXQgYXJlIGxhcmdlciB0 aGFuIDRLIGJ5dGVzLCB0aGVyZSBhcmUKdHdvIG9wdGlvbnM6CiAgMS4gTGFyZ2Ugc2luZ2xlIGJ1 ZmZlciBmcmFtZXMgdGhhdCBzcGFuIGEgNEtCIHBhZ2UgYm91bmRhcnkgY2FuCiAgICAgYmUgY29u dmVydGVkIGludG8gU0cgZnJhbWVzIHRvIGF2b2lkIHRyYW5zYWN0aW9uIHNwbGl0cyBhdAogICAg IHRoZSA0S0IgYm91bmRhcnksCiAgMi4gQWxpZ24gdGhlIGxhcmdlIHNpbmdsZSBidWZmZXIgdG8g MjU2QiBhZGRyZXNzIGJvdW5kYXJpZXMsCiAgICAgZW5zdXJlIHRoYXQgdGhlIGZyYW1lIGFkZHJl c3MgcGx1cyBvZmZzZXQgaXMgMjU2QiBhbGlnbmVkLgotIElmIHNvZnR3YXJlIGdlbmVyYXRlZCBT RyBmcmFtZXMgaGF2ZSBidWZmZXJzIHRoYXQgYXJlIHVuYWxpZ25lZAphbmQgd2l0aCByYW5kb20g bm9uLW11bHRpcGxlIG9mIDE2IGJ5dGUgbGVuZ3RocywgYmVmb3JlCnRyYW5zbWl0dGluZyBzdWNo IGZyYW1lcyB2aWEgRk1BTiwgZnJhbWVzIHdpbGwgbmVlZCB0byBiZSBjb3BpZWQKaW50byBhIG5l dyBzaW5nbGUgYnVmZmVyIG9yIG11bHRpcGxlIGJ1ZmZlciBTRyBmcmFtZSB0aGF0IGlzCmNvbXBs aWFudCB3aXRoIHRoZSB0aHJlZSBydWxlcyBsaXN0ZWQgYWJvdmUuCgpTaWduZWQtb2ZmLWJ5OiBN YWRhbGluIEJ1Y3VyIDxtYWRhbGluLmJ1Y3VyQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBEb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvbmV0L2ZzbC1mbWFuLnR4dCB8IDcgKysrKysrKwogMSBmaWxlIGNoYW5n ZWQsIDcgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJl ZS9iaW5kaW5ncy9uZXQvZnNsLWZtYW4udHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp bmRpbmdzL25ldC9mc2wtZm1hbi50eHQKaW5kZXggMjUwZjhkOGNkY2U0Li5jMDBmYjBkMjJjN2Ig MTAwNjQ0Ci0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZnNsLWZt YW4udHh0CisrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZnNsLWZt YW4udHh0CkBAIC0xMTAsNiArMTEwLDEzIEBAIFBST1BFUlRJRVMKIAkJVXNhZ2U6IHJlcXVpcmVk CiAJCURlZmluaXRpb246IFNlZSBzb2MvZnNsL3FtYW4udHh0IGFuZCBzb2MvZnNsL2JtYW4udHh0 CiAKKy0gZnNsLGVycmF0dW0tYTA1MDM4NQorCQlVc2FnZTogb3B0aW9uYWwKKwkJVmFsdWUgdHlw ZTogYm9vbGVhbgorCQlEZWZpbml0aW9uOiBBIGJvb2xlYW4gcHJvcGVydHkuIEluZGljYXRlcyB0 aGUgcHJlc2VuY2Ugb2YgdGhlCisJCWVycmF0dW0gQTA1MDM4NSB3aGljaCBpbmRpY2F0ZXMgdGhh dCBETUEgdHJhbnNhY3Rpb25zIHRoYXQgYXJlCisJCXNwbGl0IGNhbiByZXN1bHQgaW4gYSBGTWFu IGxvY2suCisKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBGTWFuIE1VUkFNIE5vZGUKIAotLSAKMi4y MC4xCgoKRnJvbSA1ODUyM2VhNzMyZWI5ZGFmYzQzMGQzZTBhYTNiNjZmOWFjMTRiNTQxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWRhbGluIEJ1Y3VyIDxtYWRhbGluLmJ1Y3VyQG54 cC5jb20+CkRhdGU6IFdlZCwgNCBNYXIgMjAyMCAxODowNDoyNiArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMzYvNjZdIGFybTY0OiBkdHM6IGxzMTA0M2E6IEZNYW4gZXJyYXR1bSBBMDUwMzg1CgpUaGUg TFMxMDQzQSBTb0MgaXMgYWZmZWN0ZWQgYnkgdGhlIEEwNTAzODUgZXJyYXR1bSBzdGF0aW5nIHRo YXQKRk1BTiBETUEgcmVhZCBvciB3cml0ZXMgdW5kZXIgaGVhdnkgdHJhZmZpYyBsb2FkIG1heSBj YXVzZSBGTUFOCmludGVybmFsIHJlc291cmNlIGxlYWsgdGh1cyBzdG9wcGluZyBmdXJ0aGVyIHBh Y2tldCBwcm9jZXNzaW5nLgoKU2lnbmVkLW9mZi1ieTogTWFkYWxpbiBCdWN1ciA8bWFkYWxpbi5i dWN1ckBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0My1w b3N0LmR0c2kgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCgpkaWZmIC0t Z2l0IGEvYXJjaC9hcm02NC9ib290L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0My1wb3N0LmR0c2kg Yi9hcmNoL2FybTY0L2Jvb3QvZHRzL2ZyZWVzY2FsZS9mc2wtbHMxMDQzLXBvc3QuZHRzaQppbmRl eCA2MDgyYWUwMjIxMzYuLmQyMzcxNjJhODc0NCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9ib290 L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0My1wb3N0LmR0c2kKKysrIGIvYXJjaC9hcm02NC9ib290 L2R0cy9mcmVlc2NhbGUvZnNsLWxzMTA0My1wb3N0LmR0c2kKQEAgLTIwLDYgKzIwLDggQEAKIH07 CiAKICZmbWFuMCB7CisJZnNsLGVycmF0dW0tYTA1MDM4NTsKKwogCS8qIHRoZXNlIGFsaWFzZXMg cHJvdmlkZSB0aGUgRk1hbiBwb3J0cyBtYXBwaW5nICovCiAJZW5ldDA6IGV0aGVybmV0QGUwMDAw IHsKIAl9OwotLSAKMi4yMC4xCgoKRnJvbSBkYmYyOGVhMDQ1NWMxNzFlYjg4MDVkN2UzYWJiMThm MGIxNzEyN2U0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWRhbGluIEJ1Y3VyIDxt YWRhbGluLmJ1Y3VyQG54cC5jb20+CkRhdGU6IFdlZCwgNCBNYXIgMjAyMCAxODowNDoyNyArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMzcvNjZdIGZzbC9mbWFuOiBkZXRlY3QgRk1hbiBlcnJhdHVtIEEw NTAzODUKCkRldGVjdCB0aGUgcHJlc2VuY2Ugb2YgdGhlIEEwNTAzODUgZXJyYXR1bS4KClNpZ25l ZC1vZmYtYnk6IE1hZGFsaW4gQnVjdXIgPG1hZGFsaW4uYnVjdXJAbnhwLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL0tjb25maWcgfCAyOCArKysrKysrKysrKysrKysr KysrKysKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW4uYyAgfCAxOCAr KysrKysrKysrKysrCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuLmgg IHwgIDUgKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2NvbmZpZyBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL0tjb25maWcKaW5kZXggMDEzOWNiOTA0MmVjLi4z NDE1MDE4MmNjMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9m bWFuL0tjb25maWcKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2ZtYW4vS2Nv bmZpZwpAQCAtOCwzICs4LDMxIEBAIGNvbmZpZyBGU0xfRk1BTgogCWhlbHAKIAkJRnJlZXNjYWxl IERhdGEtUGF0aCBBY2NlbGVyYXRpb24gQXJjaGl0ZWN0dXJlIEZyYW1lIE1hbmFnZXIKIAkJKEZN YW4pIHN1cHBvcnQKKworY29uZmlnIERQQUFfRVJSQVRVTV9BMDUwMzg1CisJYm9vbAorCWRlcGVu ZHMgb24gQVJNNjQgJiYgRlNMX0RQQUEKKwlkZWZhdWx0IHkKKwloZWxwCisJCURQQUEgRk1hbiBl cnJhdHVtIEEwNTAzODUgc29mdHdhcmUgd29ya2Fyb3VuZCBpbXBsZW1lbnRhdGlvbjoKKwkJYWxp Z24gYnVmZmVycywgZGF0YSBzdGFydCwgU0cgZnJhZ21lbnQgbGVuZ3RoIHRvIGF2b2lkIEZNYW4g RE1BCisJCXNwbGl0cy4KKwkJRk1BTiBETUEgcmVhZCBvciB3cml0ZXMgdW5kZXIgaGVhdnkgdHJh ZmZpYyBsb2FkIG1heSBjYXVzZSBGTUFOCisJCWludGVybmFsIHJlc291cmNlIGxlYWsgdGh1cyBz dG9wcGluZyBmdXJ0aGVyIHBhY2tldCBwcm9jZXNzaW5nLgorCQlUaGUgRk1BTiBpbnRlcm5hbCBx dWV1ZSBjYW4gb3ZlcmZsb3cgd2hlbiBGTUFOIHNwbGl0cyBzaW5nbGUKKwkJcmVhZCBvciB3cml0 ZSB0cmFuc2FjdGlvbnMgaW50byBtdWx0aXBsZSBzbWFsbGVyIHRyYW5zYWN0aW9ucworCQlzdWNo IHRoYXQgbW9yZSB0aGFuIDE3IEFYSSB0cmFuc2FjdGlvbnMgYXJlIGluIGZsaWdodCBmcm9tIEZN QU4KKwkJdG8gaW50ZXJjb25uZWN0LiBXaGVuIHRoZSBGTUFOIGludGVybmFsIHF1ZXVlIG92ZXJm bG93cywgaXQgY2FuCisJCXN0YWxsIGZ1cnRoZXIgcGFja2V0IHByb2Nlc3NpbmcuIFRoZSBpc3N1 ZSBjYW4gb2NjdXIgd2l0aCBhbnkKKwkJb25lIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgY29uZGl0 aW9uczoKKwkJMS4gRk1BTiBBWEkgdHJhbnNhY3Rpb24gY3Jvc3NlcyA0SyBhZGRyZXNzIGJvdW5k YXJ5IChFcnJhdGEKKwkJQTAxMDAyMikKKwkJMi4gRk1BTiBETUEgYWRkcmVzcyBmb3IgYW4gQVhJ IHRyYW5zYWN0aW9uIGlzIG5vdCAxNiBieXRlCisJCWFsaWduZWQsIGkuZS4gdGhlIGxhc3QgNCBi aXRzIG9mIGFuIGFkZHJlc3MgYXJlIG5vbi16ZXJvCisJCTMuIFNjYXR0ZXIgR2F0aGVyIChTRykg ZnJhbWVzIGhhdmUgbW9yZSB0aGFuIG9uZSBTRyBidWZmZXIgaW4KKwkJdGhlIFNHIGxpc3QgYW5k IGFueSBvbmUgb2YgdGhlIGJ1ZmZlcnMsIGV4Y2VwdCB0aGUgbGFzdAorCQlidWZmZXIgaW4gdGhl IFNHIGxpc3QgaGFzIGRhdGEgc2l6ZSB0aGF0IGlzIG5vdCBhIG11bHRpcGxlCisJCW9mIDE2IGJ5 dGVzLCBpLmUuLCBvdGhlciB0aGFuIDE2LCAzMiwgNDgsIDY0LCBldGMuCisJCVdpdGggYW55IG9u ZSBvZiB0aGUgYWJvdmUgdGhyZWUgY29uZGl0aW9ucyBwcmVzZW50LCB0aGVyZSBpcworCQlsaWtl bGlob29kIG9mIHN0YWxsZWQgRk1BTiBwYWNrZXQgcHJvY2Vzc2luZywgZXNwZWNpYWxseSB1bmRl cgorCQlzdHJlc3Mgd2l0aCBtdWx0aXBsZSBwb3J0cyBpbmplY3RpbmcgbGluZS1yYXRlIHRyYWZm aWMuCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFu LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuLmMKaW5kZXggOTM0 MTExZGVmMGJlLi5mMTUxZDZlMTExZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2ZyZWVzY2FsZS9mbWFuL2ZtYW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2Nh bGUvZm1hbi9mbWFuLmMKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IDIwMDgtMjAx NSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKiBDb3B5cmlnaHQgMjAyMCBOWFAKICAq CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3 aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0 aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgpAQCAtNTY2LDYgKzU2NywxMCBA QCBzdHJ1Y3QgZm1hbl9jZmcgewogCXUzMiBxbWlfZGVmX3RudW1zX3RocmVzaDsKIH07CiAKKyNp ZmRlZiBDT05GSUdfRFBBQV9FUlJBVFVNX0EwNTAzODUKK3N0YXRpYyBib29sIGZtYW5faGFzX2Vy cl9hMDUwMzg1OworI2VuZGlmCisKIHN0YXRpYyBpcnFyZXR1cm5fdCBmbWFuX2V4Y2VwdGlvbnMo c3RydWN0IGZtYW4gKmZtYW4sCiAJCQkJICAgZW51bSBmbWFuX2V4Y2VwdGlvbnMgZXhjZXB0aW9u KQogewpAQCAtMjUxOCw2ICsyNTIzLDE0IEBAIHN0cnVjdCBmbWFuICpmbWFuX2JpbmQoc3RydWN0 IGRldmljZSAqZm1fZGV2KQogfQogRVhQT1JUX1NZTUJPTChmbWFuX2JpbmQpOwogCisjaWZkZWYg Q09ORklHX0RQQUFfRVJSQVRVTV9BMDUwMzg1Citib29sIGZtYW5faGFzX2VycmF0YV9hMDUwMzg1 KHZvaWQpCit7CisJcmV0dXJuIGZtYW5faGFzX2Vycl9hMDUwMzg1OworfQorRVhQT1JUX1NZTUJP TChmbWFuX2hhc19lcnJhdGFfYTA1MDM4NSk7CisjZW5kaWYKKwogc3RhdGljIGlycXJldHVybl90 IGZtYW5fZXJyX2lycShpbnQgaXJxLCB2b2lkICpoYW5kbGUpCiB7CiAJc3RydWN0IGZtYW4gKmZt YW4gPSAoc3RydWN0IGZtYW4gKiloYW5kbGU7CkBAIC0yODQ1LDYgKzI4NTgsMTEgQEAgc3RhdGlj IHN0cnVjdCBmbWFuICpyZWFkX2R0c19ub2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mX2Rl dikKIAkJZ290byBmbWFuX2ZyZWU7CiAJfQogCisjaWZkZWYgQ09ORklHX0RQQUFfRVJSQVRVTV9B MDUwMzg1CisJZm1hbl9oYXNfZXJyX2EwNTAzODUgPQorCQlvZl9wcm9wZXJ0eV9yZWFkX2Jvb2wo Zm1fbm9kZSwgImZzbCxlcnJhdHVtLWEwNTAzODUiKTsKKyNlbmRpZgorCiAJcmV0dXJuIGZtYW47 CiAKIGZtYW5fbm9kZV9wdXQ6CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVl c2NhbGUvZm1hbi9mbWFuLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9m bWFuLmgKaW5kZXggOTM1YzMxN2ZhNjk2Li5mMmVkZTEzNjBmMDMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2ZyZWVzY2FsZS9mbWFuL2ZtYW4uaAorKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9mcmVlc2NhbGUvZm1hbi9mbWFuLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29w eXJpZ2h0IDIwMDgtMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciBJbmMuCisgKiBDb3B5cmln aHQgMjAyMCBOWFAKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgpAQCAt Mzk4LDYgKzM5OSwxMCBAQCB1MTYgZm1hbl9nZXRfbWF4X2ZybSh2b2lkKTsKIAogaW50IGZtYW5f Z2V0X3J4X2V4dHJhX2hlYWRyb29tKHZvaWQpOwogCisjaWZkZWYgQ09ORklHX0RQQUFfRVJSQVRV TV9BMDUwMzg1Citib29sIGZtYW5faGFzX2VycmF0YV9hMDUwMzg1KHZvaWQpOworI2VuZGlmCisK IHN0cnVjdCBmbWFuICpmbWFuX2JpbmQoc3RydWN0IGRldmljZSAqZGV2KTsKIAogI2VuZGlmIC8q IF9fRk1fSCAqLwotLSAKMi4yMC4xCgoKRnJvbSBkMGI5MmExYjRiZmFjZDg3ODc5YzBjNGUxM2E4 YjI1NTU1NjU0OTYzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYWRhbGluIEJ1Y3Vy IDxtYWRhbGluLmJ1Y3VyQG54cC5jb20+CkRhdGU6IFdlZCwgNCBNYXIgMjAyMCAxODowNDoyOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMzgvNjZdIGRwYWFfZXRoOiBGTWFuIGVycmF0dW0gQTA1MDM4 NSB3b3JrYXJvdW5kCgpBbGlnbiBidWZmZXJzLCBkYXRhIHN0YXJ0LCBTRyBmcmFnbWVudCBsZW5n dGggdG8gYXZvaWQgRE1BIHNwbGl0cy4KVGhlc2UgY2hhbmdlcyBwcmV2ZW50IHRoZSBBMDUwMzg1 IGVycmF0dW0gdG8gbWFuaWZlc3QgaXRzZWxmOgoKRk1BTiBETUEgcmVhZCBvciB3cml0ZXMgdW5k ZXIgaGVhdnkgdHJhZmZpYyBsb2FkIG1heSBjYXVzZSBGTUFOCmludGVybmFsIHJlc291cmNlIGxl YWs7IHRodXMgc3RvcHBpbmcgZnVydGhlciBwYWNrZXQgcHJvY2Vzc2luZy4KClRoZSBGTUFOIGlu dGVybmFsIHF1ZXVlIGNhbiBvdmVyZmxvdyB3aGVuIEZNQU4gc3BsaXRzIHNpbmdsZQpyZWFkIG9y IHdyaXRlIHRyYW5zYWN0aW9ucyBpbnRvIG11bHRpcGxlIHNtYWxsZXIgdHJhbnNhY3Rpb25zCnN1 Y2ggdGhhdCBtb3JlIHRoYW4gMTcgQVhJIHRyYW5zYWN0aW9ucyBhcmUgaW4gZmxpZ2h0IGZyb20g Rk1BTgp0byBpbnRlcmNvbm5lY3QuIFdoZW4gdGhlIEZNQU4gaW50ZXJuYWwgcXVldWUgb3ZlcmZs b3dzLCBpdCBjYW4Kc3RhbGwgZnVydGhlciBwYWNrZXQgcHJvY2Vzc2luZy4gVGhlIGlzc3VlIGNh biBvY2N1ciB3aXRoIGFueSBvbmUKb2YgdGhlIGZvbGxvd2luZyB0aHJlZSBjb25kaXRpb25zOgoK ICAxLiBGTUFOIEFYSSB0cmFuc2FjdGlvbiBjcm9zc2VzIDRLIGFkZHJlc3MgYm91bmRhcnkgKEVy cmF0YQoJIEEwMTAwMjIpCiAgMi4gRk1BTiBETUEgYWRkcmVzcyBmb3IgYW4gQVhJIHRyYW5zYWN0 aW9uIGlzIG5vdCAxNiBieXRlCgkgYWxpZ25lZCwgaS5lLiB0aGUgbGFzdCA0IGJpdHMgb2YgYW4g YWRkcmVzcyBhcmUgbm9uLXplcm8KICAzLiBTY2F0dGVyIEdhdGhlciAoU0cpIGZyYW1lcyBoYXZl IG1vcmUgdGhhbiBvbmUgU0cgYnVmZmVyIGluCgkgdGhlIFNHIGxpc3QgYW5kIGFueSBvbmUgb2Yg dGhlIGJ1ZmZlcnMsIGV4Y2VwdCB0aGUgbGFzdAoJIGJ1ZmZlciBpbiB0aGUgU0cgbGlzdCBoYXMg ZGF0YSBzaXplIHRoYXQgaXMgbm90IGEgbXVsdGlwbGUKCSBvZiAxNiBieXRlcywgaS5lLiwgb3Ro ZXIgdGhhbiAxNiwgMzIsIDQ4LCA2NCwgZXRjLgoKV2l0aCBhbnkgb25lIG9mIHRoZSBhYm92ZSB0 aHJlZSBjb25kaXRpb25zIHByZXNlbnQsIHRoZXJlIGlzCmxpa2VsaWhvb2Qgb2Ygc3RhbGxlZCBG TUFOIHBhY2tldCBwcm9jZXNzaW5nLCBlc3BlY2lhbGx5IHVuZGVyCnN0cmVzcyB3aXRoIG11bHRp cGxlIHBvcnRzIGluamVjdGluZyBsaW5lLXJhdGUgdHJhZmZpYy4KClRvIGF2b2lkIHNpdHVhdGlv bnMgdGhhdCBzdGFsbCBGTUFOIHBhY2tldCBwcm9jZXNzaW5nLCBhbGwgb2YgdGhlCmFib3ZlIHRo cmVlIGNvbmRpdGlvbnMgbXVzdCBiZSBhdm9pZGVkOyB0aGVyZWZvcmUsIGNvbmZpZ3VyZSB0aGUK c3lzdGVtIHdpdGggdGhlIGZvbGxvd2luZyBydWxlczoKCiAgMS4gRnJhbWUgYnVmZmVycyBtdXN0 IG5vdCBzcGFuIGEgNEtCIGFkZHJlc3MgYm91bmRhcnksIHVubGVzcwoJIHRoZSBmcmFtZSBzdGFy dCBhZGRyZXNzIGlzIDI1NiBieXRlIGFsaWduZWQKICAyLiBBbGwgRk1BTiBETUEgc3RhcnQgYWRk cmVzc2VzIChmb3IgZXhhbXBsZSwgQk1BTiBidWZmZXIKCSBhZGRyZXNzLCBGRFthZGRyZXNzXSAr IEZEW29mZnNldF0pIGFyZSAxNkIgYWxpZ25lZAogIDMuIFNHIHRhYmxlIGFuZCBidWZmZXIgYWRk cmVzc2VzIGFyZSAxNkIgYWxpZ25lZCBhbmQgdGhlIHNpemUKCSBvZiBTRyBidWZmZXJzIGFyZSBt dWx0aXBsZSBvZiAxNiBieXRlcywgZXhjZXB0IGZvciB0aGUgbGFzdAoJIFNHIGJ1ZmZlciB0aGF0 IGNhbiBiZSBvZiBhbnkgc2l6ZS4KCkFkZGl0aW9uYWwgd29ya2Fyb3VuZCBub3RlczoKLSBBZGRy ZXNzIGFsaWdubWVudCBvZiA2NCBieXRlcyBpcyByZWNvbW1lbmRlZCBmb3IgbWF4aW1hbGx5CmVm ZmljaWVudCBzeXN0ZW0gYnVzIHRyYW5zYWN0aW9ucyAoYWx0aG91Z2ggMTYgYnl0ZSBhbGlnbm1l bnQgaXMKc3VmZmljaWVudCB0byBhdm9pZCB0aGUgc3RhbGwgY29uZGl0aW9uKQotIFRvIHN1cHBv cnQgZnJhbWUgc2l6ZXMgdGhhdCBhcmUgbGFyZ2VyIHRoYW4gNEsgYnl0ZXMsIHRoZXJlIGFyZQp0 d28gb3B0aW9uczoKICAxLiBMYXJnZSBzaW5nbGUgYnVmZmVyIGZyYW1lcyB0aGF0IHNwYW4gYSA0 S0IgcGFnZSBib3VuZGFyeSBjYW4KCSBiZSBjb252ZXJ0ZWQgaW50byBTRyBmcmFtZXMgdG8gYXZv aWQgdHJhbnNhY3Rpb24gc3BsaXRzIGF0CgkgdGhlIDRLQiBib3VuZGFyeSwKICAyLiBBbGlnbiB0 aGUgbGFyZ2Ugc2luZ2xlIGJ1ZmZlciB0byAyNTZCIGFkZHJlc3MgYm91bmRhcmllcywKCSBlbnN1 cmUgdGhhdCB0aGUgZnJhbWUgYWRkcmVzcyBwbHVzIG9mZnNldCBpcyAyNTZCIGFsaWduZWQuCi0g SWYgc29mdHdhcmUgZ2VuZXJhdGVkIFNHIGZyYW1lcyBoYXZlIGJ1ZmZlcnMgdGhhdCBhcmUgdW5h bGlnbmVkCmFuZCB3aXRoIHJhbmRvbSBub24tbXVsdGlwbGUgb2YgMTYgYnl0ZSBsZW5ndGhzLCBi ZWZvcmUKdHJhbnNtaXR0aW5nIHN1Y2ggZnJhbWVzIHZpYSBGTUFOLCBmcmFtZXMgd2lsbCBuZWVk IHRvIGJlIGNvcGllZAppbnRvIGEgbmV3IHNpbmdsZSBidWZmZXIgb3IgbXVsdGlwbGUgYnVmZmVy IFNHIGZyYW1lIHRoYXQgaXMKY29tcGxpYW50IHdpdGggdGhlIHRocmVlIHJ1bGVzIGxpc3RlZCBh Ym92ZS4KClNpZ25lZC1vZmYtYnk6IE1hZGFsaW4gQnVjdXIgPG1hZGFsaW4uYnVjdXJAbnhwLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIC4uLi9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYyAgICB8IDExMCAr KysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9mcmVlc2NhbGUv ZHBhYS9kcGFhX2V0aC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBh YV9ldGguYwppbmRleCBmODI3ZGFmMDliNzIuLjM2ZTJlMjhmYTZlMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvZXRoZXJuZXQvZnJlZXNjYWxlL2RwYWEvZHBhYV9ldGguYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC9mcmVlc2NhbGUvZHBhYS9kcGFhX2V0aC5jCkBAIC0xLDQgKzEsNSBAQAog LyogQ29weXJpZ2h0IDIwMDggLSAyMDE2IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4KKyAq IENvcHlyaWdodCAyMDIwIE5YUAogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291 cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBt ZXQ6CkBAIC0xMjMsNyArMTI0LDIyIEBAIE1PRFVMRV9QQVJNX0RFU0ModHhfdGltZW91dCwgIlRo ZSBUeCB0aW1lb3V0IGluIG1zIik7CiAjZGVmaW5lIEZTTF9RTUFOX01BWF9PQUwJMTI3CiAKIC8q IERlZmF1bHQgYWxpZ25tZW50IGZvciBzdGFydCBvZiBkYXRhIGluIGFuIFJ4IEZEICovCisjaWZk ZWYgQ09ORklHX0RQQUFfRVJSQVRVTV9BMDUwMzg1CisvKiBhbGlnbmluZyBkYXRhIHN0YXJ0IHRv IDY0IGF2b2lkcyBETUEgdHJhbnNhY3Rpb24gc3BsaXRzLCB1bmxlc3MgdGhlIGJ1ZmZlcgorICog aXMgY3Jvc3NpbmcgYSA0ayBwYWdlIGJvdW5kYXJ5CisgKi8KKyNkZWZpbmUgRFBBQV9GRF9EQVRB X0FMSUdOTUVOVCAgKGZtYW5faGFzX2VycmF0YV9hMDUwMzg1KCkgPyA2NCA6IDE2KQorLyogYWxp Z25pbmcgdG8gMjU2IGF2b2lkcyBETUEgdHJhbnNhY3Rpb24gc3BsaXRzIGNhdXNlZCBieSA0ayBw YWdlIGJvdW5kYXJ5CisgKiBjcm9zc2luZ3M7IGFsc28sIGFsbCBTRyBmcmFnbWVudHMgZXhjZXB0 IHRoZSBsYXN0IG11c3QgaGF2ZSBhIHNpemUgbXVsdGlwbGUKKyAqIG9mIDI1NiB0byBhdm9pZCBE TUEgdHJhbnNhY3Rpb24gc3BsaXRzCisgKi8KKyNkZWZpbmUgRFBBQV9BMDUwMzg1X0FMSUdOIDI1 NgorI2RlZmluZSBEUEFBX0ZEX1JYX0RBVEFfQUxJR05NRU5UIChmbWFuX2hhc19lcnJhdGFfYTA1 MDM4NSgpID8gXAorCQkJCSAgIERQQUFfQTA1MDM4NV9BTElHTiA6IDE2KQorI2Vsc2UKICNkZWZp bmUgRFBBQV9GRF9EQVRBX0FMSUdOTUVOVCAgMTYKKyNkZWZpbmUgRFBBQV9GRF9SWF9EQVRBX0FM SUdOTUVOVCBEUEFBX0ZEX0RBVEFfQUxJR05NRU5UCisjZW5kaWYKIAogLyogVGhlIERQQUEgcmVx dWlyZXMgMjU2IGJ5dGVzIHJlc2VydmVkIGFuZCBtYXBwZWQgZm9yIHRoZSBTR1QgKi8KICNkZWZp bmUgRFBBQV9TR1RfU0laRSAyNTYKQEAgLTE1OCw4ICsxNzQsMTMgQEAgTU9EVUxFX1BBUk1fREVT Qyh0eF90aW1lb3V0LCAiVGhlIFR4IHRpbWVvdXQgaW4gbXMiKTsKICNkZWZpbmUgRFBBQV9QQVJT RV9SRVNVTFRTX1NJWkUgc2l6ZW9mKHN0cnVjdCBmbWFuX3Byc19yZXN1bHQpCiAjZGVmaW5lIERQ QUFfVElNRV9TVEFNUF9TSVpFIDgKICNkZWZpbmUgRFBBQV9IQVNIX1JFU1VMVFNfU0laRSA4Cisj aWZkZWYgQ09ORklHX0RQQUFfRVJSQVRVTV9BMDUwMzg1CisjZGVmaW5lIERQQUFfUlhfUFJJVl9E QVRBX1NJWkUgKERQQUFfQTA1MDM4NV9BTElHTiAtIChEUEFBX1BBUlNFX1JFU1VMVFNfU0laRVwK KwkgKyBEUEFBX1RJTUVfU1RBTVBfU0laRSArIERQQUFfSEFTSF9SRVNVTFRTX1NJWkUpKQorI2Vs c2UKICNkZWZpbmUgRFBBQV9SWF9QUklWX0RBVEFfU0laRQkodTE2KShEUEFBX1RYX1BSSVZfREFU QV9TSVpFICsgXAogCQkJCQlkcGFhX3J4X2V4dHJhX2hlYWRyb29tKQorI2VuZGlmCiAKICNkZWZp bmUgRFBBQV9FVEhfUENEX1JYUV9OVU0JMTI4CiAKQEAgLTE4MCw3ICsyMDEsMTIgQEAgc3RhdGlj IHN0cnVjdCBkcGFhX2JwICpkcGFhX2JwX2FycmF5W0JNX01BWF9OVU1fT0ZfUE9PTFNdOwogCiAj ZGVmaW5lIERQQUFfQlBfUkFXX1NJWkUgNDA5NgogCisjaWZkZWYgQ09ORklHX0RQQUFfRVJSQVRV TV9BMDUwMzg1CisjZGVmaW5lIGRwYWFfYnBfc2l6ZShyYXdfc2l6ZSkgKFNLQl9XSVRIX09WRVJI RUFEKHJhd19zaXplKSAmIFwKKwkJCQl+KERQQUFfQTA1MDM4NV9BTElHTiAtIDEpKQorI2Vsc2UK ICNkZWZpbmUgZHBhYV9icF9zaXplKHJhd19zaXplKSBTS0JfV0lUSF9PVkVSSEVBRChyYXdfc2l6 ZSkKKyNlbmRpZgogCiBzdGF0aWMgaW50IGRwYWFfbWF4X2ZybTsKIApAQCAtMTE5Miw3ICsxMjE4 LDcgQEAgc3RhdGljIGludCBkcGFhX2V0aF9pbml0X3J4X3BvcnQoc3RydWN0IGZtYW5fcG9ydCAq cG9ydCwgc3RydWN0IGRwYWFfYnAgKmJwLAogCWJ1Zl9wcmVmaXhfY29udGVudC5wYXNzX3Byc19y ZXN1bHQgPSB0cnVlOwogCWJ1Zl9wcmVmaXhfY29udGVudC5wYXNzX2hhc2hfcmVzdWx0ID0gdHJ1 ZTsKIAlidWZfcHJlZml4X2NvbnRlbnQucGFzc190aW1lX3N0YW1wID0gdHJ1ZTsKLQlidWZfcHJl Zml4X2NvbnRlbnQuZGF0YV9hbGlnbiA9IERQQUFfRkRfREFUQV9BTElHTk1FTlQ7CisJYnVmX3By ZWZpeF9jb250ZW50LmRhdGFfYWxpZ24gPSBEUEFBX0ZEX1JYX0RBVEFfQUxJR05NRU5UOwogCiAJ cnhfcCA9ICZwYXJhbXMuc3BlY2lmaWNfcGFyYW1zLnJ4X3BhcmFtczsKIAlyeF9wLT5lcnJfZnFp ZCA9IGVycnEtPmZxaWQ7CkBAIC0xNjYyLDYgKzE2ODgsOCBAQCBzdGF0aWMgdTggcnhfY3N1bV9v ZmZsb2FkKGNvbnN0IHN0cnVjdCBkcGFhX3ByaXYgKnByaXYsIGNvbnN0IHN0cnVjdCBxbV9mZCAq ZmQpCiAJcmV0dXJuIENIRUNLU1VNX05PTkU7CiB9CiAKKyNkZWZpbmUgUFRSX0lTX0FMSUdORUQo eCwgYSkgKElTX0FMSUdORUQoKHVuc2lnbmVkIGxvbmcpKHgpLCAoYSkpKQorCiAvKiBCdWlsZCBh IGxpbmVhciBza2IgYXJvdW5kIHRoZSByZWNlaXZlZCBidWZmZXIuCiAgKiBXZSBhcmUgZ3VhcmFu dGVlZCB0aGVyZSBpcyBlbm91Z2ggcm9vbSBhdCB0aGUgZW5kIG9mIHRoZSBkYXRhIGJ1ZmZlciB0 bwogICogYWNjb21tb2RhdGUgdGhlIHNoYXJlZCBpbmZvIGFyZWEgb2YgdGhlIHNrYi4KQEAgLTE3 MzMsOCArMTc2MSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqc2dfZmRfdG9fc2tiKGNvbnN0 IHN0cnVjdCBkcGFhX3ByaXYgKnByaXYsCiAKIAkJc2dfYWRkciA9IHFtX3NnX2FkZHIoJnNndFtp XSk7CiAJCXNnX3ZhZGRyID0gcGh5c190b192aXJ0KHNnX2FkZHIpOwotCQlXQVJOX09OKCFJU19B TElHTkVEKCh1bnNpZ25lZCBsb25nKXNnX3ZhZGRyLAotCQkJCSAgICBTTVBfQ0FDSEVfQllURVMp KTsKKwkJV0FSTl9PTighUFRSX0lTX0FMSUdORUQoc2dfdmFkZHIsIFNNUF9DQUNIRV9CWVRFUykp OwogCiAJCWRtYV91bm1hcF9wYWdlKHByaXYtPnJ4X2RtYV9kZXYsIHNnX2FkZHIsCiAJCQkgICAg ICAgRFBBQV9CUF9SQVdfU0laRSwgRE1BX0ZST01fREVWSUNFKTsKQEAgLTIwMjIsNiArMjA0OSw3 NSBAQCBzdGF0aWMgaW5saW5lIGludCBkcGFhX3htaXQoc3RydWN0IGRwYWFfcHJpdiAqcHJpdiwK IAlyZXR1cm4gMDsKIH0KIAorI2lmZGVmIENPTkZJR19EUEFBX0VSUkFUVU1fQTA1MDM4NQoraW50 IGRwYWFfYTA1MDM4NV93YShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0X2Rldiwgc3RydWN0IHNrX2J1 ZmYgKipzKQoreworCXN0cnVjdCBkcGFhX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZXRfZGV2 KTsKKwlzdHJ1Y3Qgc2tfYnVmZiAqbmV3X3NrYiwgKnNrYiA9ICpzOworCXVuc2lnbmVkIGNoYXIg KnN0YXJ0LCBpOworCisJLyogY2hlY2sgbGluZWFyIGJ1ZmZlciBhbGlnbm1lbnQgKi8KKwlpZiAo IVBUUl9JU19BTElHTkVEKHNrYi0+ZGF0YSwgRFBBQV9BMDUwMzg1X0FMSUdOKSkKKwkJZ290byB3 b3JrYXJvdW5kOworCisJLyogbGluZWFyIGJ1ZmZlcnMganVzdCBuZWVkIHRvIGhhdmUgYW4gYWxp Z25lZCBzdGFydCAqLworCWlmICghc2tiX2lzX25vbmxpbmVhcihza2IpKQorCQlyZXR1cm4gMDsK KworCS8qIGxpbmVhciBkYXRhIHNpemUgZm9yIG5vbmxpbmVhciBza2JzIG5lZWRzIHRvIGJlIGFs aWduZWQgKi8KKwlpZiAoIUlTX0FMSUdORUQoc2tiX2hlYWRsZW4oc2tiKSwgRFBBQV9BMDUwMzg1 X0FMSUdOKSkKKwkJZ290byB3b3JrYXJvdW5kOworCisJZm9yIChpID0gMDsgaSA8IHNrYl9zaGlu Zm8oc2tiKS0+bnJfZnJhZ3M7IGkrKykgeworCQlza2JfZnJhZ190ICpmcmFnID0gJnNrYl9zaGlu Zm8oc2tiKS0+ZnJhZ3NbaV07CisKKwkJLyogYWxsIGZyYWdtZW50cyBuZWVkIHRvIGhhdmUgYWxp Z25lZCBzdGFydCBhZGRyZXNzZXMgKi8KKwkJaWYgKCFJU19BTElHTkVEKHNrYl9mcmFnX29mZihm cmFnKSwgRFBBQV9BMDUwMzg1X0FMSUdOKSkKKwkJCWdvdG8gd29ya2Fyb3VuZDsKKworCQkvKiBh bGwgYnV0IGxhc3QgZnJhZ21lbnQgbmVlZCB0byBoYXZlIGFsaWduZWQgc2l6ZXMgKi8KKwkJaWYg KCFJU19BTElHTkVEKHNrYl9mcmFnX3NpemUoZnJhZyksIERQQUFfQTA1MDM4NV9BTElHTikgJiYK KwkJICAgIChpIDwgc2tiX3NoaW5mbyhza2IpLT5ucl9mcmFncyAtIDEpKQorCQkJZ290byB3b3Jr YXJvdW5kOworCX0KKworCXJldHVybiAwOworCit3b3JrYXJvdW5kOgorCS8qIGNvcHkgYWxsIHRo ZSBza2IgY29udGVudCBpbnRvIGEgbmV3IGxpbmVhciBidWZmZXIgKi8KKwluZXdfc2tiID0gbmV0 ZGV2X2FsbG9jX3NrYihuZXRfZGV2LCBza2ItPmxlbiArIERQQUFfQTA1MDM4NV9BTElHTiAtIDEg KworCQkJCQkJcHJpdi0+dHhfaGVhZHJvb20pOworCWlmICghbmV3X3NrYikKKwkJcmV0dXJuIC1F Tk9NRU07CisKKwkvKiBORVRfU0tCX1BBRCBieXRlcyBhbHJlYWR5IHJlc2VydmVkLCBhZGRpbmcg dXAgdG8gdHhfaGVhZHJvb20gKi8KKwlza2JfcmVzZXJ2ZShuZXdfc2tiLCBwcml2LT50eF9oZWFk cm9vbSAtIE5FVF9TS0JfUEFEKTsKKworCS8qIFdvcmthcm91bmQgZm9yIERQQUFfQTA1MDM4NSBy ZXF1aXJlcyBkYXRhIHN0YXJ0IHRvIGJlIGFsaWduZWQgKi8KKwlzdGFydCA9IFBUUl9BTElHTihu ZXdfc2tiLT5kYXRhLCBEUEFBX0EwNTAzODVfQUxJR04pOworCWlmIChzdGFydCAtIG5ld19za2It PmRhdGEgIT0gMCkKKwkJc2tiX3Jlc2VydmUobmV3X3NrYiwgc3RhcnQgLSBuZXdfc2tiLT5kYXRh KTsKKworCXNrYl9wdXQobmV3X3NrYiwgc2tiLT5sZW4pOworCXNrYl9jb3B5X2JpdHMoc2tiLCAw LCBuZXdfc2tiLT5kYXRhLCBza2ItPmxlbik7CisJc2tiX2NvcHlfaGVhZGVyKG5ld19za2IsIHNr Yik7CisJbmV3X3NrYi0+ZGV2ID0gc2tiLT5kZXY7CisKKwkvKiBXZSBtb3ZlIHRoZSBoZWFkcm9v bSB3aGVuIHdlIGFsaWduIGl0IHNvIHdlIGhhdmUgdG8gcmVzZXQgdGhlCisJICogbmV0d29yayBh bmQgdHJhbnNwb3J0IGhlYWRlciBvZmZzZXRzIHJlbGF0aXZlIHRvIHRoZSBuZXcgZGF0YQorCSAq IHBvaW50ZXIuIFRoZSBjaGVja3N1bSBvZmZsb2FkIHJlbGllcyBvbiB0aGVzZSBvZmZzZXRzLgor CSAqLworCXNrYl9zZXRfbmV0d29ya19oZWFkZXIobmV3X3NrYiwgc2tiX25ldHdvcmtfb2Zmc2V0 KHNrYikpOworCXNrYl9zZXRfdHJhbnNwb3J0X2hlYWRlcihuZXdfc2tiLCBza2JfdHJhbnNwb3J0 X29mZnNldChza2IpKTsKKworCS8qIFRPRE86IGRvZXMgdGltZXN0YW1waW5nIG5lZWQgdGhlIHJl c3VsdCBpbiB0aGUgb2xkIHNrYj8gKi8KKwlkZXZfa2ZyZWVfc2tiKHNrYik7CisJKnMgPSBuZXdf c2tiOworCisJcmV0dXJuIDA7Cit9CisjZW5kaWYKKwogc3RhdGljIG5ldGRldl90eF90CiBkcGFh X3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKm5ldF9k ZXYpCiB7CkBAIC0yMDY4LDYgKzIxNjQsMTQgQEAgZHBhYV9zdGFydF94bWl0KHN0cnVjdCBza19i dWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpuZXRfZGV2KQogCQlub25saW5lYXIgPSBza2Jf aXNfbm9ubGluZWFyKHNrYik7CiAJfQogCisjaWZkZWYgQ09ORklHX0RQQUFfRVJSQVRVTV9BMDUw Mzg1CisJaWYgKHVubGlrZWx5KGZtYW5faGFzX2VycmF0YV9hMDUwMzg1KCkpKSB7CisJCWlmIChk cGFhX2EwNTAzODVfd2EobmV0X2RldiwgJnNrYikpCisJCQlnb3RvIGVub21lbTsKKwkJbm9ubGlu ZWFyID0gc2tiX2lzX25vbmxpbmVhcihza2IpOworCX0KKyNlbmRpZgorCiAJaWYgKG5vbmxpbmVh cikgewogCQkvKiBKdXN0IGNyZWF0ZSBhIFMvRyBmZCBiYXNlZCBvbiB0aGUgc2tiICovCiAJCWVy ciA9IHNrYl90b19zZ19mZChwcml2LCBza2IsICZmZCk7Ci0tIAoyLjIwLjEKCgpGcm9tIGRkZDkw Mzk2YmJlZWQ5OGI3NGRjYWRiNjQ1ODU3ZmY4MDQ0MGM0ZTggTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IFlvbmdsb25nIExpdSA8bGl1eW9uZ2xvbmdAaHVhd2VpLmNvbT4KRGF0ZTogVGh1 LCAxMiBNYXIgMjAyMCAxNToxMTowMyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzkvNjZdIG5ldDog aG5zMzogZml4ICJ0YyBxZGlzYyBkZWwiIGZhaWxlZCBpc3N1ZQoKWyBVcHN0cmVhbSBjb21taXQg NWViMDFkZGZjZmIyNWU2ZWJjNDA0YTQxZGVhZTk0NmJkZTc3NjczMSBdCgpUaGUgSE5TMyBkcml2 ZXIgc3VwcG9ydHMgdG8gY29uZmlndXJlIFRDIG51bWJlcnMgYW5kIFRDIHRvIHByaW9yaXR5Cm1h cCB2aWEgInRjIiB0b29sLiBCdXQgd2hlbiBkZWxldGUgdGhlIHJ1bGUsIHdpbGwgZmFpbCwgYmVj YXVzZQp0aGUgSE5TMyBkcml2ZXIgbmVlZHMgYXQgbGVhc3Qgb25lIFRDLCBidXQgdGhlICJ0YyIg dG9vbCBzZXRzIFRDCm51bWJlciB0byB6ZXJvIHdoZW4gZGVsZXRlLgoKVGhpcyBwYXRjaCBtYWtl cyBzdXJlIHRoYXQgdGhlIFRDIG51bWJlciBpcyBhdCBsZWFzdCBvbmUuCgpGaXhlczogMzBkMjQw ZGZhMmU4ICgibmV0OiBobnMzOiBBZGQgbXFwcmlvIGhhcmR3YXJlIG9mZmxvYWQgc3VwcG9ydCBp biBobnMzIGRyaXZlciIpClNpZ25lZC1vZmYtYnk6IFlvbmdsb25nIExpdSA8bGl1eW9uZ2xvbmdA aHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogSHVhemhvbmcgVGFuIDx0YW5odWF6aG9uZ0BodWF3 ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQu YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jCmluZGV4 IGIzZGViNWU1Y2UyOS4uZDMxNjFhZjlmOGMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYwpAQCAtMTY3NSw3ICsxNjc1LDcgQEAgc3RhdGlj IGludCBobnMzX3NldHVwX3RjKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHZvaWQgKnR5cGVf ZGF0YSkKIAluZXRpZl9kYmcoaCwgZHJ2LCBuZXRkZXYsICJzZXR1cCB0YzogbnVtX3RjPSV1XG4i LCB0Yyk7CiAKIAlyZXR1cm4gKGtpbmZvLT5kY2Jfb3BzICYmIGtpbmZvLT5kY2Jfb3BzLT5zZXR1 cF90YykgPwotCQlraW5mby0+ZGNiX29wcy0+c2V0dXBfdGMoaCwgdGMsIHByaW9fdGMpIDogLUVP UE5PVFNVUFA7CisJCWtpbmZvLT5kY2Jfb3BzLT5zZXR1cF90YyhoLCB0YyA/IHRjIDogMSwgcHJp b190YykgOiAtRU9QTk9UU1VQUDsKIH0KIAogc3RhdGljIGludCBobnMzX25pY19zZXR1cF90Yyhz dHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwKLS0gCjIuMjAu MQoKCkZyb20gM2Q5NDMxY2Q1M2JhOGZhYmEyOGI3MzNhOGEzNDRkMTZjNTQyZTAzMiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmlhbiBTaGVuIDxzaGVuamlhbjE1QGh1YXdlaS5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjAgMTU6MTE6MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIDQw LzY2XSBuZXQ6IGhuczM6IGZpeCBSTVcgaXNzdWUgZm9yIFZMQU4gZmlsdGVyIHN3aXRjaAoKWyBV cHN0cmVhbSBjb21taXQgOTAzYjg1ZDNhZGNlOTlhNTMwMWQ1OTU5YzRkM2M5ZDE0YTc5NzRkNCBd CgpBY2NvcmRpbmcgdG8gdGhlIHVzZXIgbWFudWFsLCB0aGUgaW5ncmVzcyBhbmQgZWdyZXNzIFZM QU4gZmlsdGVyCmFyZSBjb25maWd1cmVkIGF0IHRoZSBzYW1lIHRpbWUuIEN1cnJlbnRseSwgaGNs Z2VfaW5pdF92bGFuX2NvbmZpZygpCmFuZCBoY2xnZV9zZXRfdmxhbl9zcG9vZmNoaygpIHdpbGwg Ym90aCBjaGFuZ2UgdGhlIFZMQU4gZmlsdGVyCnN3aXRjaC4gU28gaXQncyBuZWNlc3NhcnkgdG8g cmVhZCB0aGUgb2xkIGNvbmZpZ3VyYXRpb24gYmVmb3JlCm1vZGlmeWluZyBpdC4KCkZpeGVzOiAy MjA0NGY5NWZhYTAgKCJuZXQ6IGhuczM6IGFkZCBzdXBwb3J0IGZvciBzcG9vZiBjaGVjayBzZXR0 aW5nIikKU2lnbmVkLW9mZi1ieTogSmlhbiBTaGVuIDxzaGVuamlhbjE1QGh1YXdlaS5jb20+ClNp Z25lZC1vZmYtYnk6IEh1YXpob25nIFRhbiA8dGFuaHVhemhvbmdAaHVhd2VpLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIC4uLi9o aXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFpbi5jICAgICAgICB8IDE5ICsrKysrKysrKysr KysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNw Zi9oY2xnZV9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMz cGYvaGNsZ2VfbWFpbi5jCmluZGV4IDAyZjBlMWU2YjZmOS4uN2RiYzkzMGE5ZTg0IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFp bi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xn ZV9tYWluLmMKQEAgLTc3MjcsMTYgKzc3MjcsMjcgQEAgc3RhdGljIGludCBoY2xnZV9zZXRfdmxh bl9maWx0ZXJfY3RybChzdHJ1Y3QgaGNsZ2VfZGV2ICpoZGV2LCB1OCB2bGFuX3R5cGUsCiAJc3Ry dWN0IGhjbGdlX2Rlc2MgZGVzYzsKIAlpbnQgcmV0OwogCi0JaGNsZ2VfY21kX3NldHVwX2Jhc2lj X2Rlc2MoJmRlc2MsIEhDTEdFX09QQ19WTEFOX0ZJTFRFUl9DVFJMLCBmYWxzZSk7Ci0KKwkvKiBy ZWFkIGN1cnJlbnQgdmxhbiBmaWx0ZXIgcGFyYW1ldGVyICovCisJaGNsZ2VfY21kX3NldHVwX2Jh c2ljX2Rlc2MoJmRlc2MsIEhDTEdFX09QQ19WTEFOX0ZJTFRFUl9DVFJMLCB0cnVlKTsKIAlyZXEg PSAoc3RydWN0IGhjbGdlX3ZsYW5fZmlsdGVyX2N0cmxfY21kICopZGVzYy5kYXRhOwogCXJlcS0+ dmxhbl90eXBlID0gdmxhbl90eXBlOwotCXJlcS0+dmxhbl9mZSA9IGZpbHRlcl9lbiA/IGZlX3R5 cGUgOiAwOwogCXJlcS0+dmZfaWQgPSB2Zl9pZDsKIAorCXJldCA9IGhjbGdlX2NtZF9zZW5kKCZo ZGV2LT5odywgJmRlc2MsIDEpOworCWlmIChyZXQpIHsKKwkJZGV2X2VycigmaGRldi0+cGRldi0+ ZGV2LAorCQkJImZhaWxlZCB0byBnZXQgdmxhbiBmaWx0ZXIgY29uZmlnLCByZXQgPSAlZC5cbiIs IHJldCk7CisJCXJldHVybiByZXQ7CisJfQorCisJLyogbW9kaWZ5IGFuZCB3cml0ZSBuZXcgY29u ZmlnIHBhcmFtZXRlciAqLworCWhjbGdlX2NtZF9yZXVzZV9kZXNjKCZkZXNjLCBmYWxzZSk7CisJ cmVxLT52bGFuX2ZlID0gZmlsdGVyX2VuID8KKwkJCShyZXEtPnZsYW5fZmUgfCBmZV90eXBlKSA6 IChyZXEtPnZsYW5fZmUgJiB+ZmVfdHlwZSk7CisKIAlyZXQgPSBoY2xnZV9jbWRfc2VuZCgmaGRl di0+aHcsICZkZXNjLCAxKTsKIAlpZiAocmV0KQotCQlkZXZfZXJyKCZoZGV2LT5wZGV2LT5kZXYs ICJzZXQgdmxhbiBmaWx0ZXIgZmFpbCwgcmV0ID0lZC5cbiIsCisJCWRldl9lcnIoJmhkZXYtPnBk ZXYtPmRldiwgImZhaWxlZCB0byBzZXQgdmxhbiBmaWx0ZXIsIHJldCA9ICVkLlxuIiwKIAkJCXJl dCk7CiAKIAlyZXR1cm4gcmV0OwotLSAKMi4yMC4xCgoKRnJvbSA5NTg2YThkZWNkNWViOWRjOWEz YTk5MWRmOTk1ZTg1MzczYjdkMWE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaWFu IFNoZW4gPHNoZW5qaWFuMTVAaHVhd2VpLmNvbT4KRGF0ZTogVGh1LCAxMiBNYXIgMjAyMCAxNTox MTowNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggNDEvNjZdIG5ldDogaG5zMzogY2xlYXIgcG9ydCBi YXNlIFZMQU4gd2hlbiB1bmxvYWQgUEYKClsgVXBzdHJlYW0gY29tbWl0IDU5MzU5ZmM4YTJmN2Fm MDYyNzc3NjkyZTZhN2FhZTczNDgzNzI5ZWMgXQoKQ3VycmVudGx5LCBQRiBtaXNzZWQgdG8gY2xl YXIgdGhlIHBvcnQgYmFzZSBWTEFOIGZvciBWRiB3aGVuCnVubG9hZC4gSW4gdGhpcyBjYXNlLCB0 aGUgVkxBTiBpZCB3aWxsIHJlbWFpbiBpbiB0aGUgVkxBTgp0YWJsZS4gVGhpcyBwYXRjaCBmaXhl cyBpdC4KCkZpeGVzOiA5MmYxMWVhMTc3Y2QgKCJuZXQ6IGhuczM6IGZpeCBzZXQgcG9ydCBiYXNl ZCBWTEFOIGlzc3VlIGZvciBWRiIpClNpZ25lZC1vZmYtYnk6IEppYW4gU2hlbiA8c2hlbmppYW4x NUBodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5OiBIdWF6aG9uZyBUYW4gPHRhbmh1YXpob25nQGh1 YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiAuLi4vaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX21haW4uYyAgICAgICAg fCAyMyArKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNw Zi9oY2xnZV9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMz cGYvaGNsZ2VfbWFpbi5jCmluZGV4IDdkYmM5MzBhOWU4NC4uYjVlMGFjZTY0OGMwIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfbWFp bi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xn ZV9tYWluLmMKQEAgLTg0ODYsNiArODQ4NiwyOCBAQCBzdGF0aWMgaW50IGhjbGdlX3NldF92Zl92 bGFuX2ZpbHRlcihzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIGludCB2ZmlkLAogCX0KIH0K IAorc3RhdGljIHZvaWQgaGNsZ2VfY2xlYXJfdmZfdmxhbihzdHJ1Y3QgaGNsZ2VfZGV2ICpoZGV2 KQoreworCXN0cnVjdCBoY2xnZV92bGFuX2luZm8gKnZsYW5faW5mbzsKKwlzdHJ1Y3QgaGNsZ2Vf dnBvcnQgKnZwb3J0OworCWludCByZXQ7CisJaW50IHZmOworCisJLyogY2xlYXIgcG9ydCBiYXNl IHZsYW4gZm9yIGFsbCB2ZiAqLworCWZvciAodmYgPSBIQ0xHRV9WRl9WUE9SVF9TVEFSVF9OVU07 IHZmIDwgaGRldi0+bnVtX2FsbG9jX3Zwb3J0OyB2ZisrKSB7CisJCXZwb3J0ID0gJmhkZXYtPnZw b3J0W3ZmXTsKKwkJdmxhbl9pbmZvID0gJnZwb3J0LT5wb3J0X2Jhc2Vfdmxhbl9jZmcudmxhbl9p bmZvOworCisJCXJldCA9IGhjbGdlX3NldF92bGFuX2ZpbHRlcl9odyhoZGV2LCBodG9ucyhFVEhf UF84MDIxUSksCisJCQkJCSAgICAgICB2cG9ydC0+dnBvcnRfaWQsCisJCQkJCSAgICAgICB2bGFu X2luZm8tPnZsYW5fdGFnLCB0cnVlKTsKKwkJaWYgKHJldCkKKwkJCWRldl9lcnIoJmhkZXYtPnBk ZXYtPmRldiwKKwkJCQkiZmFpbGVkIHRvIGNsZWFyIHZmIHZsYW4gZm9yIHZmJWQsIHJldCA9ICVk XG4iLAorCQkJCXZmIC0gSENMR0VfVkZfVlBPUlRfU1RBUlRfTlVNLCByZXQpOworCX0KK30KKwog aW50IGhjbGdlX3NldF92bGFuX2ZpbHRlcihzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIF9f YmUxNiBwcm90bywKIAkJCSAgdTE2IHZsYW5faWQsIGJvb2wgaXNfa2lsbCkKIHsKQEAgLTk4OTUs NiArOTkxNyw3IEBAIHN0YXRpYyB2b2lkIGhjbGdlX3VuaW5pdF9hZV9kZXYoc3RydWN0IGhuYWUz X2FlX2RldiAqYWVfZGV2KQogCXN0cnVjdCBoY2xnZV9tYWMgKm1hYyA9ICZoZGV2LT5ody5tYWM7 CiAKIAloY2xnZV9yZXNldF92Zl9yYXRlKGhkZXYpOworCWhjbGdlX2NsZWFyX3ZmX3ZsYW4oaGRl dik7CiAJaGNsZ2VfbWlzY19hZmZpbml0eV90ZWFyZG93bihoZGV2KTsKIAloY2xnZV9zdGF0ZV91 bmluaXQoaGRldik7CiAKLS0gCjIuMjAuMQoKCkZyb20gNTEwMjNkMDk0MDFhNzNkYjIyOWVmYmJl YjZmMjhiMjNjMWIyM2E5YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2lj aW5za2kgPGt1YmFAa2VybmVsLm9yZz4KRGF0ZTogTW9uLCAyIE1hciAyMDIwIDIxOjA1OjExIC0w ODAwClN1YmplY3Q6IFtQQVRDSCA0Mi82Nl0gZGV2bGluazogdmFsaWRhdGUgbGVuZ3RoIG9mIHBh cmFtIHZhbHVlcwoKWyBVcHN0cmVhbSBjb21taXQgODc1MDkzOWI2YWQ4NmFiYzNmNTNlYzhhOTY4 M2ExY2RlZDRhNTY1NCBdCgpERVZMSU5LX0FUVFJfUEFSQU1fVkFMVUVfREFUQSBtYXkgaGF2ZSBk aWZmZXJlbnQgdHlwZXMKc28gaXQncyBub3QgY2hlY2tlZCBieSB0aGUgbm9ybWFsIG5ldGxpbmsg cG9saWN5LiBNYWtlCnN1cmUgdGhlIGF0dHJpYnV0ZSBsZW5ndGggaXMgd2hhdCB3ZSBleHBlY3Qu CgpGaXhlczogZTNiN2NhMThhZDdiICgiZGV2bGluazogQWRkIHBhcmFtIHNldCBjb21tYW5kIikK U2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KUmV2aWV3ZWQt Ynk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2bGluay5jIHwg MzEgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE5IGlu c2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rldmxp bmsuYyBiL25ldC9jb3JlL2RldmxpbmsuYwppbmRleCA0MjM3MDcwMmQwZTAuLjA2MDEzYzAwNjY0 NCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2bGluay5jCisrKyBiL25ldC9jb3JlL2Rldmxpbmsu YwpAQCAtMzM1MiwzNCArMzM1Miw0MSBAQCBkZXZsaW5rX3BhcmFtX3ZhbHVlX2dldF9mcm9tX2lu Zm8oY29uc3Qgc3RydWN0IGRldmxpbmtfcGFyYW0gKnBhcmFtLAogCQkJCSAgc3RydWN0IGdlbmxf aW5mbyAqaW5mbywKIAkJCQkgIHVuaW9uIGRldmxpbmtfcGFyYW1fdmFsdWUgKnZhbHVlKQogewor CXN0cnVjdCBubGF0dHIgKnBhcmFtX2RhdGE7CiAJaW50IGxlbjsKIAotCWlmIChwYXJhbS0+dHlw ZSAhPSBERVZMSU5LX1BBUkFNX1RZUEVfQk9PTCAmJgotCSAgICAhaW5mby0+YXR0cnNbREVWTElO S19BVFRSX1BBUkFNX1ZBTFVFX0RBVEFdKQorCXBhcmFtX2RhdGEgPSBpbmZvLT5hdHRyc1tERVZM SU5LX0FUVFJfUEFSQU1fVkFMVUVfREFUQV07CisKKwlpZiAocGFyYW0tPnR5cGUgIT0gREVWTElO S19QQVJBTV9UWVBFX0JPT0wgJiYgIXBhcmFtX2RhdGEpCiAJCXJldHVybiAtRUlOVkFMOwogCiAJ c3dpdGNoIChwYXJhbS0+dHlwZSkgewogCWNhc2UgREVWTElOS19QQVJBTV9UWVBFX1U4OgotCQl2 YWx1ZS0+dnU4ID0gbmxhX2dldF91OChpbmZvLT5hdHRyc1tERVZMSU5LX0FUVFJfUEFSQU1fVkFM VUVfREFUQV0pOworCQlpZiAobmxhX2xlbihwYXJhbV9kYXRhKSAhPSBzaXplb2YodTgpKQorCQkJ cmV0dXJuIC1FSU5WQUw7CisJCXZhbHVlLT52dTggPSBubGFfZ2V0X3U4KHBhcmFtX2RhdGEpOwog CQlicmVhazsKIAljYXNlIERFVkxJTktfUEFSQU1fVFlQRV9VMTY6Ci0JCXZhbHVlLT52dTE2ID0g bmxhX2dldF91MTYoaW5mby0+YXR0cnNbREVWTElOS19BVFRSX1BBUkFNX1ZBTFVFX0RBVEFdKTsK KwkJaWYgKG5sYV9sZW4ocGFyYW1fZGF0YSkgIT0gc2l6ZW9mKHUxNikpCisJCQlyZXR1cm4gLUVJ TlZBTDsKKwkJdmFsdWUtPnZ1MTYgPSBubGFfZ2V0X3UxNihwYXJhbV9kYXRhKTsKIAkJYnJlYWs7 CiAJY2FzZSBERVZMSU5LX1BBUkFNX1RZUEVfVTMyOgotCQl2YWx1ZS0+dnUzMiA9IG5sYV9nZXRf dTMyKGluZm8tPmF0dHJzW0RFVkxJTktfQVRUUl9QQVJBTV9WQUxVRV9EQVRBXSk7CisJCWlmIChu bGFfbGVuKHBhcmFtX2RhdGEpICE9IHNpemVvZih1MzIpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJ CXZhbHVlLT52dTMyID0gbmxhX2dldF91MzIocGFyYW1fZGF0YSk7CiAJCWJyZWFrOwogCWNhc2Ug REVWTElOS19QQVJBTV9UWVBFX1NUUklORzoKLQkJbGVuID0gc3RybmxlbihubGFfZGF0YShpbmZv LT5hdHRyc1tERVZMSU5LX0FUVFJfUEFSQU1fVkFMVUVfREFUQV0pLAotCQkJICAgICAgbmxhX2xl bihpbmZvLT5hdHRyc1tERVZMSU5LX0FUVFJfUEFSQU1fVkFMVUVfREFUQV0pKTsKLQkJaWYgKGxl biA9PSBubGFfbGVuKGluZm8tPmF0dHJzW0RFVkxJTktfQVRUUl9QQVJBTV9WQUxVRV9EQVRBXSkg fHwKKwkJbGVuID0gc3RybmxlbihubGFfZGF0YShwYXJhbV9kYXRhKSwgbmxhX2xlbihwYXJhbV9k YXRhKSk7CisJCWlmIChsZW4gPT0gbmxhX2xlbihwYXJhbV9kYXRhKSB8fAogCQkgICAgbGVuID49 IF9fREVWTElOS19QQVJBTV9NQVhfU1RSSU5HX1ZBTFVFKQogCQkJcmV0dXJuIC1FSU5WQUw7Ci0J CXN0cmNweSh2YWx1ZS0+dnN0ciwKLQkJICAgICAgIG5sYV9kYXRhKGluZm8tPmF0dHJzW0RFVkxJ TktfQVRUUl9QQVJBTV9WQUxVRV9EQVRBXSkpOworCQlzdHJjcHkodmFsdWUtPnZzdHIsIG5sYV9k YXRhKHBhcmFtX2RhdGEpKTsKIAkJYnJlYWs7CiAJY2FzZSBERVZMSU5LX1BBUkFNX1RZUEVfQk9P TDoKLQkJdmFsdWUtPnZib29sID0gaW5mby0+YXR0cnNbREVWTElOS19BVFRSX1BBUkFNX1ZBTFVF X0RBVEFdID8KLQkJCSAgICAgICB0cnVlIDogZmFsc2U7CisJCWlmIChwYXJhbV9kYXRhICYmIG5s YV9sZW4ocGFyYW1fZGF0YSkpCisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJdmFsdWUtPnZib29sID0g bmxhX2dldF9mbGFnKHBhcmFtX2RhdGEpOwogCQlicmVhazsKIAl9CiAJcmV0dXJuIDA7Ci0tIAoy LjIwLjEKCgpGcm9tIGYzYjVlNDdlNDI5M2FkNzgwOWZhZDMzNGNhYmUzYzcyZDk5MTI1ZTUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5v cmc+CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAyMTowNToxMiAtMDgwMApTdWJqZWN0OiBbUEFUQ0gg NDMvNjZdIGRldmxpbms6IHZhbGlkYXRlIGxlbmd0aCBvZiByZWdpb24gYWRkci9sZW4KClsgVXBz dHJlYW0gY29tbWl0IGZmM2I2M2I4YzI5OWI3M2FjNTk5YjEyMDY1M2I0N2UyNzU0MDc2NTYgXQoK REVWTElOS19BVFRSX1JFR0lPTl9DSFVOS19BRERSIGFuZCBERVZMSU5LX0FUVFJfUkVHSU9OX0NI VU5LX0xFTgpsYWNrIGVudHJpZXMgaW4gdGhlIG5ldGxpbmsgcG9saWN5LiBDb3JyZXNwb25kaW5n IG5sYV9nZXRfdTY0KClzCm1heSByZWFkIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBtZXNzYWdlLgoK Rml4ZXM6IDRlNTQ3OTVhMjdmNSAoImRldmxpbms6IEFkZCBzdXBwb3J0IGZvciByZWdpb24gc25h cHNob3QgcmVhZCBjb21tYW5kIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFA a2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3guY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2NvcmUvZGV2bGluay5jIHwgMiArKwogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2RldmxpbmsuYyBiL25ldC9jb3JlL2RldmxpbmsuYwpp bmRleCAwNjAxM2MwMDY2NDQuLmIxMGM3YTgzYmFkYiAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvZGV2 bGluay5jCisrKyBiL25ldC9jb3JlL2RldmxpbmsuYwpAQCAtNTkyNCw2ICs1OTI0LDggQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGRldmxpbmtfbmxfcG9saWN5W0RFVkxJTktfQVRU Ul9NQVggKyAxXSA9IHsKIAlbREVWTElOS19BVFRSX1BBUkFNX1ZBTFVFX0NNT0RFXSA9IHsgLnR5 cGUgPSBOTEFfVTggfSwKIAlbREVWTElOS19BVFRSX1JFR0lPTl9OQU1FXSA9IHsgLnR5cGUgPSBO TEFfTlVMX1NUUklORyB9LAogCVtERVZMSU5LX0FUVFJfUkVHSU9OX1NOQVBTSE9UX0lEXSA9IHsg LnR5cGUgPSBOTEFfVTMyIH0sCisJW0RFVkxJTktfQVRUUl9SRUdJT05fQ0hVTktfQUREUl0gPSB7 IC50eXBlID0gTkxBX1U2NCB9LAorCVtERVZMSU5LX0FUVFJfUkVHSU9OX0NIVU5LX0xFTl0gPSB7 IC50eXBlID0gTkxBX1U2NCB9LAogCVtERVZMSU5LX0FUVFJfSEVBTFRIX1JFUE9SVEVSX05BTUVd ID0geyAudHlwZSA9IE5MQV9OVUxfU1RSSU5HIH0sCiAJW0RFVkxJTktfQVRUUl9IRUFMVEhfUkVQ T1JURVJfR1JBQ0VGVUxfUEVSSU9EXSA9IHsgLnR5cGUgPSBOTEFfVTY0IH0sCiAJW0RFVkxJTktf QVRUUl9IRUFMVEhfUkVQT1JURVJfQVVUT19SRUNPVkVSXSA9IHsgLnR5cGUgPSBOTEFfVTggfSwK LS0gCjIuMjAuMQoKCkZyb20gOGNjMzcyM2ExZWRmM2RkNDFmZTFkNjkyNmRkMGQ5ZDgyNmEwYTMy ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2Vy bmVsLm9yZz4KRGF0ZTogTW9uLCAyIE1hciAyMDIwIDIxOjA1OjEzIC0wODAwClN1YmplY3Q6IFtQ QVRDSCA0NC82Nl0gZmliOiBhZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgdHVu X2lkCgpbIFVwc3RyZWFtIGNvbW1pdCA0YzE2ZDY0ZWEwNDA1NmYxYjFiMzI0YWI2OTE2MDE5ZjZh MDY0MTE0IF0KCkFkZCBtaXNzaW5nIG5ldGxpbmsgcG9saWN5IGVudHJ5IGZvciBGUkFfVFVOX0lE LgoKRml4ZXM6IGU3MDMwODc4ZmM4NCAoImZpYjogQWRkIGZpYiBydWxlIG1hdGNoIG9uIHR1bm5l bCBpZCIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClJl dmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9m aWJfcnVsZXMuaCB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9uZXQvZmliX3J1bGVzLmggYi9pbmNsdWRlL25ldC9maWJfcnVsZXMuaApp bmRleCA1NGUyMjdlNmIwNmEuLmEyNTkwNTBmODRhZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQv ZmliX3J1bGVzLmgKKysrIGIvaW5jbHVkZS9uZXQvZmliX3J1bGVzLmgKQEAgLTEwOCw2ICsxMDgs NyBAQCBzdHJ1Y3QgZmliX3J1bGVfbm90aWZpZXJfaW5mbyB7CiAJW0ZSQV9PSUZOQU1FXQk9IHsg LnR5cGUgPSBOTEFfU1RSSU5HLCAubGVuID0gSUZOQU1TSVogLSAxIH0sIFwKIAlbRlJBX1BSSU9S SVRZXQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sIFwKIAlbRlJBX0ZXTUFSS10JPSB7IC50eXBlID0g TkxBX1UzMiB9LCBcCisJW0ZSQV9UVU5fSURdCT0geyAudHlwZSA9IE5MQV9VNjQgfSwgXAogCVtG UkFfRldNQVNLXQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sIFwKIAlbRlJBX1RBQkxFXSAgICAgPSB7 IC50eXBlID0gTkxBX1UzMiB9LCBcCiAJW0ZSQV9TVVBQUkVTU19QUkVGSVhMRU5dID0geyAudHlw ZSA9IE5MQV9VMzIgfSwgXAotLSAKMi4yMC4xCgoKRnJvbSBjOGEyMmUzN2VjZjVjNjQ1OWIwNGIw YzQ3ZTA2OTYxNTMwMDUzNmE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBL aWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24sIDIgTWFyIDIwMjAgMjE6MDU6MTQg LTA4MDAKU3ViamVjdDogW1BBVENIIDQ1LzY2XSBubDgwMjE1NDogYWRkIG1pc3NpbmcgYXR0cmli dXRlIHZhbGlkYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDkzMjJjZDdjNGFmMmNjYzdmZTdjNWYw MWFkYjUzZjRmNzc5NDllOTIgXQoKQWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9y IHNldmVyYWwgdTggdHlwZXMuCgpGaXhlczogMmMyMWQxMTUxOGI2ICgibmV0OiBhZGQgTkw4MDIx NTQgaW50ZXJmYWNlIGZvciBjb25maWd1cmF0aW9uIG9mIDgwMi4xNS40IGRldmljZXMiKQpTaWdu ZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpBY2tlZC1ieTogU3Rl ZmFuIFNjaG1pZHQgPHN0ZWZhbkBkYXRlbmZyZWloYWZlbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaWVlZTgwMjE1NC9u bF9wb2xpY3kuYyB8IDUgKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykKCmRp ZmYgLS1naXQgYS9uZXQvaWVlZTgwMjE1NC9ubF9wb2xpY3kuYyBiL25ldC9pZWVlODAyMTU0L25s X3BvbGljeS5jCmluZGV4IDJjN2EzOGQ3NmEzYS4uODI0ZTdlODQwMTRjIDEwMDY0NAotLS0gYS9u ZXQvaWVlZTgwMjE1NC9ubF9wb2xpY3kuYworKysgYi9uZXQvaWVlZTgwMjE1NC9ubF9wb2xpY3ku YwpAQCAtMjEsNiArMjEsMTEgQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgaWVlZTgwMjE1NF9w b2xpY3lbSUVFRTgwMjE1NF9BVFRSX01BWCArIDFdID0gewogCVtJRUVFODAyMTU0X0FUVFJfSFdf QUREUl0gPSB7IC50eXBlID0gTkxBX0hXX0FERFIsIH0sCiAJW0lFRUU4MDIxNTRfQVRUUl9QQU5f SURdID0geyAudHlwZSA9IE5MQV9VMTYsIH0sCiAJW0lFRUU4MDIxNTRfQVRUUl9DSEFOTkVMXSA9 IHsgLnR5cGUgPSBOTEFfVTgsIH0sCisJW0lFRUU4MDIxNTRfQVRUUl9CQ05fT1JEXSA9IHsgLnR5 cGUgPSBOTEFfVTgsIH0sCisJW0lFRUU4MDIxNTRfQVRUUl9TRl9PUkRdID0geyAudHlwZSA9IE5M QV9VOCwgfSwKKwlbSUVFRTgwMjE1NF9BVFRSX1BBTl9DT09SRF0gPSB7IC50eXBlID0gTkxBX1U4 LCB9LAorCVtJRUVFODAyMTU0X0FUVFJfQkFUX0VYVF0gPSB7IC50eXBlID0gTkxBX1U4LCB9LAor CVtJRUVFODAyMTU0X0FUVFJfQ09PUkRfUkVBTElHTl0gPSB7IC50eXBlID0gTkxBX1U4LCB9LAog CVtJRUVFODAyMTU0X0FUVFJfUEFHRV0gPSB7IC50eXBlID0gTkxBX1U4LCB9LAogCVtJRUVFODAy MTU0X0FUVFJfQ09PUkRfU0hPUlRfQUREUl0gPSB7IC50eXBlID0gTkxBX1UxNiwgfSwKIAlbSUVF RTgwMjE1NF9BVFRSX0NPT1JEX0hXX0FERFJdID0geyAudHlwZSA9IE5MQV9IV19BRERSLCB9LAot LSAKMi4yMC4xCgoKRnJvbSBhYmJkMjViYThlZDk0YWE1MjhiNGM0NjRiNTFiYjk0Y2FiNTUzMzVk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJu ZWwub3JnPgpEYXRlOiBNb24sIDIgTWFyIDIwMjAgMjE6MDU6MTUgLTA4MDAKU3ViamVjdDogW1BB VENIIDQ2LzY2XSBubDgwMjE1NDogYWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9y IGRldl90eXBlCgpbIFVwc3RyZWFtIGNvbW1pdCBiNjA2NzNjNGM0MThiZWY3NTUwZDAyZmFmNTNj MzRmYmZlYjM2NmJmIF0KCkFkZCBtaXNzaW5nIGF0dHJpYnV0ZSB0eXBlIHZhbGlkYXRpb24gZm9y IElFRUU4MDIxNTRfQVRUUl9ERVZfVFlQRQp0byB0aGUgbmV0bGluayBwb2xpY3kuCgpGaXhlczog OTBjMDQ5YjJjNmFlICgiaWVlZTgwMjE1NDogaW50ZXJmYWNlIHR5cGUgdG8gYmUgYWRkZWQiKQpT aWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpBY2tlZC1ieTog U3RlZmFuIFNjaG1pZHQgPHN0ZWZhbkBkYXRlbmZyZWloYWZlbi5vcmc+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaWVlZTgwMjE1 NC9ubF9wb2xpY3kuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZm IC0tZ2l0IGEvbmV0L2llZWU4MDIxNTQvbmxfcG9saWN5LmMgYi9uZXQvaWVlZTgwMjE1NC9ubF9w b2xpY3kuYwppbmRleCA4MjRlN2U4NDAxNGMuLjA2NzJiMmYwMTU4NiAxMDA2NDQKLS0tIGEvbmV0 L2llZWU4MDIxNTQvbmxfcG9saWN5LmMKKysrIGIvbmV0L2llZWU4MDIxNTQvbmxfcG9saWN5LmMK QEAgLTI3LDYgKzI3LDcgQEAgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgaWVlZTgwMjE1NF9wb2xp Y3lbSUVFRTgwMjE1NF9BVFRSX01BWCArIDFdID0gewogCVtJRUVFODAyMTU0X0FUVFJfQkFUX0VY VF0gPSB7IC50eXBlID0gTkxBX1U4LCB9LAogCVtJRUVFODAyMTU0X0FUVFJfQ09PUkRfUkVBTElH Tl0gPSB7IC50eXBlID0gTkxBX1U4LCB9LAogCVtJRUVFODAyMTU0X0FUVFJfUEFHRV0gPSB7IC50 eXBlID0gTkxBX1U4LCB9LAorCVtJRUVFODAyMTU0X0FUVFJfREVWX1RZUEVdID0geyAudHlwZSA9 IE5MQV9VOCwgfSwKIAlbSUVFRTgwMjE1NF9BVFRSX0NPT1JEX1NIT1JUX0FERFJdID0geyAudHlw ZSA9IE5MQV9VMTYsIH0sCiAJW0lFRUU4MDIxNTRfQVRUUl9DT09SRF9IV19BRERSXSA9IHsgLnR5 cGUgPSBOTEFfSFdfQUREUiwgfSwKIAlbSUVFRTgwMjE1NF9BVFRSX0NPT1JEX1BBTl9JRF0gPSB7 IC50eXBlID0gTkxBX1UxNiwgfSwKLS0gCjIuMjAuMQoKCkZyb20gMGM4YTg1OGVmMmM3YmZjOGJj YmY5MDg3ZWY0MDY3YjA5YjM4YzczMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFr dWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KRGF0ZTogTW9uLCAyIE1hciAyMDIwIDIxOjA1 OjE2IC0wODAwClN1YmplY3Q6IFtQQVRDSCA0Ny82Nl0gY2FuOiBhZGQgbWlzc2luZyBhdHRyaWJ1 dGUgdmFsaWRhdGlvbiBmb3IgdGVybWluYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IGFiMDJhZDY2 MDU4NmI5NGY1ZDA4OTEyYTM5NTJiOTM5Y2Y0YzQ0MzAgXQoKQWRkIG1pc3NpbmcgYXR0cmlidXRl IHZhbGlkYXRpb24gZm9yIElGTEFfQ0FOX1RFUk1JTkFUSU9OCnRvIHRoZSBuZXRsaW5rIHBvbGlj eS4KCkZpeGVzOiAxMmE2MDc1Y2FiYzAgKCJjYW46IGRldjogYWRkIENBTiBpbnRlcmZhY2UgdGVy bWluYXRpb24gQVBJIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVs Lm9yZz4KQWNrZWQtYnk6IE9saXZlciBIYXJ0a29wcCA8c29ja2V0Y2FuQGhhcnRrb3BwLm5ldD4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2Nhbi9kZXYuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2Rldi5jIGIvZHJpdmVycy9uZXQvY2Fu L2Rldi5jCmluZGV4IDZlZTA2YTQ5ZmI0Yy4uNjg4MzRhMjg1M2M5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9jYW4vZGV2LmMKKysrIGIvZHJpdmVycy9uZXQvY2FuL2Rldi5jCkBAIC04ODMsNiAr ODgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IGNhbl9wb2xpY3lbSUZMQV9D QU5fTUFYICsgMV0gPSB7CiAJCQkJPSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IGNhbl9iaXR0aW1p bmcpIH0sCiAJW0lGTEFfQ0FOX0RBVEFfQklUVElNSU5HX0NPTlNUXQogCQkJCT0geyAubGVuID0g c2l6ZW9mKHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0KSB9LAorCVtJRkxBX0NBTl9URVJNSU5B VElPTl0JPSB7IC50eXBlID0gTkxBX1UxNiB9LAogfTsKIAogc3RhdGljIGludCBjYW5fdmFsaWRh dGUoc3RydWN0IG5sYXR0ciAqdGJbXSwgc3RydWN0IG5sYXR0ciAqZGF0YVtdLAotLSAKMi4yMC4x CgoKRnJvbSBjYzc1MDRlM2VjYWU5ZmRhMDVkOTliZDg4YWZkNjQ5MTcyNzIwMTZiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpE YXRlOiBNb24sIDIgTWFyIDIwMjAgMjE6MDU6MTcgLTA4MDAKU3ViamVjdDogW1BBVENIIDQ4LzY2 XSBtYWNzZWM6IGFkZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBwb3J0CgpbIFVw c3RyZWFtIGNvbW1pdCAzMWQ5YTFjNTI0OTY0YmFjNzdiN2Y5ZDBhMWFjMTQwZGM2YjU3NDYxIF0K CkFkZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBJRkxBX01BQ1NFQ19QT1JUCnRv IHRoZSBuZXRsaW5rIHBvbGljeS4KCkZpeGVzOiBjMDk0NDBmN2RjYjMgKCJtYWNzZWM6IGludHJv ZHVjZSBJRUVFIDgwMi4xQUUgZHJpdmVyIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kg PGt1YmFAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L21hY3NlYy5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9tYWNzZWMuYyBi L2RyaXZlcnMvbmV0L21hY3NlYy5jCmluZGV4IDg4Yjc1NDQ5MTBkOS4uNTdlZjI0NTQ2ZTk2IDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9tYWNzZWMuYworKysgYi9kcml2ZXJzL25ldC9tYWNzZWMu YwpAQCAtMjk4Myw2ICsyOTgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBt YWNzZWNfdHlwZSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IG1hY3NlY19y dG5sX3BvbGljeVtJRkxBX01BQ1NFQ19NQVggKyAxXSA9IHsKIAlbSUZMQV9NQUNTRUNfU0NJXSA9 IHsgLnR5cGUgPSBOTEFfVTY0IH0sCisJW0lGTEFfTUFDU0VDX1BPUlRdID0geyAudHlwZSA9IE5M QV9VMTYgfSwKIAlbSUZMQV9NQUNTRUNfSUNWX0xFTl0gPSB7IC50eXBlID0gTkxBX1U4IH0sCiAJ W0lGTEFfTUFDU0VDX0NJUEhFUl9TVUlURV0gPSB7IC50eXBlID0gTkxBX1U2NCB9LAogCVtJRkxB X01BQ1NFQ19XSU5ET1ddID0geyAudHlwZSA9IE5MQV9VMzIgfSwKLS0gCjIuMjAuMQoKCkZyb20g OWY0NDYyNDY0ZWQ3Mjc3YWQ5M2NmODIyYjBlMWMzYTA5ZGY3YzFlMiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KRGF0ZTogTW9u LCAyIE1hciAyMDIwIDIxOjA1OjE4IC0wODAwClN1YmplY3Q6IFtQQVRDSCA0OS82Nl0gb3BlbnZz d2l0Y2g6IGFkZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBoYXNoCgpbIFVwc3Ry ZWFtIGNvbW1pdCBiNWFiMWYxYmU2MTgwYTJlOTc1ZWVkZTE4NzMxODA0YjUxNjRhMDVkIF0KCkFk ZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBPVlNfUEFDS0VUX0FUVFJfSEFTSAp0 byB0aGUgbmV0bGluayBwb2xpY3kuCgpGaXhlczogYmQxOTAzYjdjNDU5ICgibmV0OiBvcGVudnN3 aXRjaDogYWRkIGhhc2ggaW5mbyB0byB1cGNhbGwiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNp bnNraSA8a3ViYUBrZXJuZWwub3JnPgpSZXZpZXdlZC1ieTogR3JlZyBSb3NlIDxndnJvc2U4MTky QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBh dGguYyBiL25ldC9vcGVudnN3aXRjaC9kYXRhcGF0aC5jCmluZGV4IGUzYTM3ZDIyNTM5Yy4uYzgy Yjg4NjkzZmUyIDEwMDY0NAotLS0gYS9uZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYworKysgYi9u ZXQvb3BlbnZzd2l0Y2gvZGF0YXBhdGguYwpAQCAtNjQ3LDYgKzY0Nyw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgbmxhX3BvbGljeSBwYWNrZXRfcG9saWN5W09WU19QQUNLRVRfQVRUUl9NQVggKyAx XSA9IHsKIAlbT1ZTX1BBQ0tFVF9BVFRSX0FDVElPTlNdID0geyAudHlwZSA9IE5MQV9ORVNURUQg fSwKIAlbT1ZTX1BBQ0tFVF9BVFRSX1BST0JFXSA9IHsgLnR5cGUgPSBOTEFfRkxBRyB9LAogCVtP VlNfUEFDS0VUX0FUVFJfTVJVXSA9IHsgLnR5cGUgPSBOTEFfVTE2IH0sCisJW09WU19QQUNLRVRf QVRUUl9IQVNIXSA9IHsgLnR5cGUgPSBOTEFfVTY0IH0sCiB9OwogCiBzdGF0aWMgY29uc3Qgc3Ry dWN0IGdlbmxfb3BzIGRwX3BhY2tldF9nZW5sX29wc1tdID0gewotLSAKMi4yMC4xCgoKRnJvbSBl MTViNDllZjY3OGJjZDIyY2RjYmIwMjc0MzExNTU5NTBmNzYxNzEzIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24s IDIgTWFyIDIwMjAgMjE6MDU6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIDUwLzY2XSBuZXQ6IGZx OiBhZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3Igb3JwaGFuCiBtYXNrCgpbIFVw c3RyZWFtIGNvbW1pdCA3ZTZkYzAzZWViMDIzZTE4NDI3YTM3MzUyMmYxZDI0N2I5MTZhNjQxIF0K CkFkZCBtaXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBUQ0FfRlFfT1JQSEFOX01BU0sK dG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IDA2ZWIzOTVmYTk4NSAoInBrdF9zY2hlZDog ZnE6IGJldHRlciBjb250cm9sIG9mIERET1MgdHJhZmZpYyIpClNpZ25lZC1vZmYtYnk6IEpha3Vi IEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvc2NoX2ZxLmMgfCAxICsKIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hf ZnEuYyBiL25ldC9zY2hlZC9zY2hfZnEuYwppbmRleCBhNWEyOTU0NzdlY2MuLjM3MWFkODRkZWYz YiAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9mcS5jCisrKyBiL25ldC9zY2hlZC9zY2hfZnEu YwpAQCAtNzQ0LDYgKzc0NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSBmcV9w b2xpY3lbVENBX0ZRX01BWCArIDFdID0gewogCVtUQ0FfRlFfRkxPV19NQVhfUkFURV0JCT0geyAu dHlwZSA9IE5MQV9VMzIgfSwKIAlbVENBX0ZRX0JVQ0tFVFNfTE9HXQkJPSB7IC50eXBlID0gTkxB X1UzMiB9LAogCVtUQ0FfRlFfRkxPV19SRUZJTExfREVMQVldCT0geyAudHlwZSA9IE5MQV9VMzIg fSwKKwlbVENBX0ZRX09SUEhBTl9NQVNLXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtUQ0Ff RlFfTE9XX1JBVEVfVEhSRVNIT0xEXQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiAJW1RDQV9GUV9D RV9USFJFU0hPTERdCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCiB9OwotLSAKMi4yMC4xCgoKRnJv bSA2OGYyZjBmMzdlZjU4NmM3MjZmMTRkMzBhZjkxZDY5OTg4OGE5NjNkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBN b24sIDIgTWFyIDIwMjAgMjE6MDU6MjAgLTA4MDAKU3ViamVjdDogW1BBVENIIDUxLzY2XSBuZXQ6 IHRhcHJpbzogYWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yCiB0eHRpbWUgZGVs YXkKClsgVXBzdHJlYW0gY29tbWl0IGUxM2FhYTA2NDNkYTEwMDA2ZWMzNTcxNTk1NGU3ZjkyYTYy ODk5YTUgXQoKQWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIFRDQV9UQVBSSU9f QVRUUl9UWFRJTUVfREVMQVkKdG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IDRjZmQ1Nzc5 YmQ2ZSAoInRhcHJpbzogQWRkIHN1cHBvcnQgZm9yIHR4dGltZS1hc3Npc3QgbW9kZSIpClNpZ25l ZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClJldmlld2VkLWJ5OiBW aW5pY2l1cyBDb3N0YSBHb21lcyA8dmluaWNpdXMuZ29tZXNAaW50ZWwuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVk L3NjaF90YXByaW8uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZm IC0tZ2l0IGEvbmV0L3NjaGVkL3NjaF90YXByaW8uYyBiL25ldC9zY2hlZC9zY2hfdGFwcmlvLmMK aW5kZXggNDM3ZTMzM2E0YTMzLi5iMWViMTJkMzNiOWEgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9z Y2hfdGFwcmlvLmMKKysrIGIvbmV0L3NjaGVkL3NjaF90YXByaW8uYwpAQCAtNzc0LDYgKzc3NCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmxhX3BvbGljeSB0YXByaW9fcG9saWN5W1RDQV9UQVBS SU9fQVRUUl9NQVggKyAxXSA9IHsKIAlbVENBX1RBUFJJT19BVFRSX1NDSEVEX0NZQ0xFX1RJTUVd ICAgICAgICAgICA9IHsgLnR5cGUgPSBOTEFfUzY0IH0sCiAJW1RDQV9UQVBSSU9fQVRUUl9TQ0hF RF9DWUNMRV9USU1FX0VYVEVOU0lPTl0gPSB7IC50eXBlID0gTkxBX1M2NCB9LAogCVtUQ0FfVEFQ UklPX0FUVFJfRkxBR1NdICAgICAgICAgICAgICAgICAgICAgID0geyAudHlwZSA9IE5MQV9VMzIg fSwKKwlbVENBX1RBUFJJT19BVFRSX1RYVElNRV9ERUxBWV0JCSAgICAgPSB7IC50eXBlID0gTkxB X1UzMiB9LAogfTsKIAogc3RhdGljIGludCBmaWxsX3NjaGVkX2VudHJ5KHN0cnVjdCBubGF0dHIg Kip0Yiwgc3RydWN0IHNjaGVkX2VudHJ5ICplbnRyeSwKLS0gCjIuMjAuMQoKCkZyb20gM2YyMGE0 YmNhNzAwZTY3NGQ2NTJkYzM1ZjAyNDc1ZDg0NGVmZGY4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KRGF0ZTogTW9uLCAyIE1h ciAyMDIwIDIxOjA1OjIxIC0wODAwClN1YmplY3Q6IFtQQVRDSCA1Mi82Nl0gdGVhbTogYWRkIG1p c3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIHBvcnQgaWZpbmRleAoKWyBVcHN0cmVhbSBj b21taXQgZGQyNWNiMjcyY2NjZTRkYjY3ZGM4NTA5Mjc4MjI5MDk5ZTRmNWU5OSBdCgpBZGQgbWlz c2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgVEVBTV9BVFRSX09QVElPTl9QT1JUX0lGSU5E RVgKdG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IDgwZjdjNjY4M2ZlMCAoInRlYW06IGFk ZCBzdXBwb3J0IGZvciBwZXItcG9ydCBvcHRpb25zIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2lj aW5za2kgPGt1YmFAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVs bGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jIGIv ZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggY2E3MGExZDg0MGViLi40NGRkMjZhNjJhNmQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCisrKyBiL2RyaXZlcnMvbmV0L3Rl YW0vdGVhbS5jCkBAIC0yMjQwLDYgKzIyNDAsNyBAQCB0ZWFtX25sX29wdGlvbl9wb2xpY3lbVEVB TV9BVFRSX09QVElPTl9NQVggKyAxXSA9IHsKIAlbVEVBTV9BVFRSX09QVElPTl9DSEFOR0VEXQkJ PSB7IC50eXBlID0gTkxBX0ZMQUcgfSwKIAlbVEVBTV9BVFRSX09QVElPTl9UWVBFXQkJCT0geyAu dHlwZSA9IE5MQV9VOCB9LAogCVtURUFNX0FUVFJfT1BUSU9OX0RBVEFdCQkJPSB7IC50eXBlID0g TkxBX0JJTkFSWSB9LAorCVtURUFNX0FUVFJfT1BUSU9OX1BPUlRfSUZJTkRFWF0JCT0geyAudHlw ZSA9IE5MQV9VMzIgfSwKIH07CiAKIHN0YXRpYyBpbnQgdGVhbV9ubF9jbWRfbm9vcChzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQotLSAKMi4yMC4xCgoKRnJvbSBh MmFiMzhiNjFkYTg5N2QzYjQ4Y2RjODYzMjE2MjgyZjgyYTZkNjIxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24s IDIgTWFyIDIwMjAgMjE6MDU6MjIgLTA4MDAKU3ViamVjdDogW1BBVENIIDUzLzY2XSB0ZWFtOiBh ZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgYXJyYXkgaW5kZXgKClsgVXBzdHJl YW0gY29tbWl0IDY2OWZjZDc3OTU5MDBjZDE4ODAyMzdjYmJiNTdhN2RiNjZjYjlhYzggXQoKQWRk IG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIFRFQU1fQVRUUl9PUFRJT05fQVJSQVlf SU5ERVgKdG8gdGhlIG5ldGxpbmsgcG9saWN5LgoKRml4ZXM6IGIxMzAzMzI2MmQyNCAoInRlYW06 IGludHJvZHVjZSBhcnJheSBvcHRpb25zIikKU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kg PGt1YmFAa2VybmVsLm9yZz4KUmV2aWV3ZWQtYnk6IEppcmkgUGlya28gPGppcmlAbWVsbGFub3gu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvdGVhbS90ZWFtLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jIGIvZHJpdmVy cy9uZXQvdGVhbS90ZWFtLmMKaW5kZXggNDRkZDI2YTYyYTZkLi40MDA0Zjk4ZTUwZDkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbS5jCisrKyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVh bS5jCkBAIC0yMjQxLDYgKzIyNDEsNyBAQCB0ZWFtX25sX29wdGlvbl9wb2xpY3lbVEVBTV9BVFRS X09QVElPTl9NQVggKyAxXSA9IHsKIAlbVEVBTV9BVFRSX09QVElPTl9UWVBFXQkJCT0geyAudHlw ZSA9IE5MQV9VOCB9LAogCVtURUFNX0FUVFJfT1BUSU9OX0RBVEFdCQkJPSB7IC50eXBlID0gTkxB X0JJTkFSWSB9LAogCVtURUFNX0FUVFJfT1BUSU9OX1BPUlRfSUZJTkRFWF0JCT0geyAudHlwZSA9 IE5MQV9VMzIgfSwKKwlbVEVBTV9BVFRSX09QVElPTl9BUlJBWV9JTkRFWF0JCT0geyAudHlwZSA9 IE5MQV9VMzIgfSwKIH07CiAKIHN0YXRpYyBpbnQgdGVhbV9ubF9jbWRfbm9vcChzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQotLSAKMi4yMC4xCgoKRnJvbSBkNzdi ZmY4YzM3NjE1MDk2MWZiMTYzYTM4MDlmNzAyZWNlZjdkMWJkIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24sIDIg TWFyIDIwMjAgMjE6MDU6MjMgLTA4MDAKU3ViamVjdDogW1BBVENIIDU0LzY2XSB0aXBjOiBhZGQg bWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgTVRVIHByb3BlcnR5CgpbIFVwc3RyZWFt IGNvbW1pdCAyMTMzMjBhNjc5NjJmZjZlN2I4M2I3MDRkNTVjYmViYzM0MTQyNmRiIF0KCkFkZCBt aXNzaW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBUSVBDX05MQV9QUk9QX01UVQp0byB0aGUg bmV0bGluayBwb2xpY3kuCgpGaXhlczogOTAxMjcxZTA0MDNhICgidGlwYzogaW1wbGVtZW50IGNv bmZpZ3VyYXRpb24gb2YgVURQIG1lZGlhIE1UVSIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2lu c2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJh QGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9uZXRsaW5rLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC90aXBjL25ldGxpbmsuYyBiL25ldC90aXBj L25ldGxpbmsuYwppbmRleCBlNTMyMzFiZDIzYjQuLjg1Zjk1NzY4OWQzMiAxMDA2NDQKLS0tIGEv bmV0L3RpcGMvbmV0bGluay5jCisrKyBiL25ldC90aXBjL25ldGxpbmsuYwpAQCAtMTE1LDYgKzEx NSw3IEBAIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IHRpcGNfbmxfcHJvcF9wb2xpY3lbVElQQ19O TEFfUFJPUF9NQVggKyAxXSA9IHsKIAlbVElQQ19OTEFfUFJPUF9QUklPXQkJPSB7IC50eXBlID0g TkxBX1UzMiB9LAogCVtUSVBDX05MQV9QUk9QX1RPTF0JCT0geyAudHlwZSA9IE5MQV9VMzIgfSwK IAlbVElQQ19OTEFfUFJPUF9XSU5dCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sCisJW1RJUENfTkxB X1BST1BfTVRVXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtUSVBDX05MQV9QUk9QX0JST0FE Q0FTVF0JPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtUSVBDX05MQV9QUk9QX0JST0FEQ0FTVF9S QVRJT10JPSB7IC50eXBlID0gTkxBX1UzMiB9CiB9OwotLSAKMi4yMC4xCgoKRnJvbSBhMGUzMTZl ZmQwMWQ3OGQ3OTc1MDZhNmNjNmM0ZDI0YzQ3ZGE2ZTllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpEYXRlOiBNb24sIDIgTWFy IDIwMjAgMjE6MDU6MjQgLTA4MDAKU3ViamVjdDogW1BBVENIIDU1LzY2XSBuZmM6IGFkZCBtaXNz aW5nIGF0dHJpYnV0ZSB2YWxpZGF0aW9uIGZvciBTRSBBUEkKClsgVXBzdHJlYW0gY29tbWl0IDM2 MWQyM2U0MWNhNmU1MDQwMzNmN2U2NmEwM2I5NTc4ODM3N2NhYWUgXQoKQWRkIG1pc3NpbmcgYXR0 cmlidXRlIHZhbGlkYXRpb24gZm9yIE5GQ19BVFRSX1NFX0lOREVYCnRvIHRoZSBuZXRsaW5rIHBv bGljeS4KCkZpeGVzOiA1Y2UzZjMyYjUyNjQgKCJORkM6IG5ldGxpbms6IFNFIEFQSSBpbXBsZW1l bnRhdGlvbiIpClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvbmZjL25ldGxpbmsuYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCsp CgpkaWZmIC0tZ2l0IGEvbmV0L25mYy9uZXRsaW5rLmMgYi9uZXQvbmZjL25ldGxpbmsuYwppbmRl eCBlZWUwZGRkYjc3NDkuLjg0MjQwN2E0OGY5NiAxMDA2NDQKLS0tIGEvbmV0L25mYy9uZXRsaW5r LmMKKysrIGIvbmV0L25mYy9uZXRsaW5rLmMKQEAgLTQzLDYgKzQzLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBubGFfcG9saWN5IG5mY19nZW5sX3BvbGljeVtORkNfQVRUUl9NQVggKyAxXSA9IHsK IAlbTkZDX0FUVFJfTExDX1NEUF0gPSB7IC50eXBlID0gTkxBX05FU1RFRCB9LAogCVtORkNfQVRU Ul9GSVJNV0FSRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfU1RSSU5HLAogCQkJCSAgICAgLmxlbiA9 IE5GQ19GSVJNV0FSRV9OQU1FX01BWFNJWkUgfSwKKwlbTkZDX0FUVFJfU0VfSU5ERVhdID0geyAu dHlwZSA9IE5MQV9VMzIgfSwKIAlbTkZDX0FUVFJfU0VfQVBEVV0gPSB7IC50eXBlID0gTkxBX0JJ TkFSWSB9LAogCVtORkNfQVRUUl9WRU5ET1JfREFUQV0gPSB7IC50eXBlID0gTkxBX0JJTkFSWSB9 LAogCi0tIAoyLjIwLjEKCgpGcm9tIDcwN2NjMGQyMDc4NTBlYjY3ZGQ1ZDczNjY2YjU3MjRjMWRi YTAyNGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxrdWJh QGtlcm5lbC5vcmc+CkRhdGU6IE1vbiwgMiBNYXIgMjAyMCAyMTowNToyNSAtMDgwMApTdWJqZWN0 OiBbUEFUQ0ggNTYvNjZdIG5mYzogYWRkIG1pc3NpbmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9y IGRlYWN0aXZhdGUKIHRhcmdldAoKWyBVcHN0cmVhbSBjb21taXQgODhlNzA2ZDUxNjhiMDdkZjQ3 OTJkYmMzZDFiYzM3YjgzZTRiZDc0ZCBdCgpBZGQgbWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlv biBmb3IgTkZDX0FUVFJfVEFSR0VUX0lOREVYCnRvIHRoZSBuZXRsaW5rIHBvbGljeS4KCkZpeGVz OiA0ZDYzYWRmZTEyZGQgKCJORkM6IEFkZCBORkNfQ01EX0RFQUNUSVZBVEVfVEFSR0VUIHN1cHBv cnQiKQpTaWduZWQtb2ZmLWJ5OiBKYWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L25mYy9uZXRsaW5rLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlm ZiAtLWdpdCBhL25ldC9uZmMvbmV0bGluay5jIGIvbmV0L25mYy9uZXRsaW5rLmMKaW5kZXggODQy NDA3YTQ4Zjk2Li5lOTg4Y2E0ODZkNjYgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvbmV0bGluay5jCisr KyBiL25ldC9uZmMvbmV0bGluay5jCkBAIC0zMiw2ICszMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbmxhX3BvbGljeSBuZmNfZ2VubF9wb2xpY3lbTkZDX0FUVFJfTUFYICsgMV0gPSB7CiAJW05G Q19BVFRSX0RFVklDRV9OQU1FXSA9IHsgLnR5cGUgPSBOTEFfU1RSSU5HLAogCQkJCS5sZW4gPSBO RkNfREVWSUNFX05BTUVfTUFYU0laRSB9LAogCVtORkNfQVRUUl9QUk9UT0NPTFNdID0geyAudHlw ZSA9IE5MQV9VMzIgfSwKKwlbTkZDX0FUVFJfVEFSR0VUX0lOREVYXSA9IHsgLnR5cGUgPSBOTEFf VTMyIH0sCiAJW05GQ19BVFRSX0NPTU1fTU9ERV0gPSB7IC50eXBlID0gTkxBX1U4IH0sCiAJW05G Q19BVFRSX1JGX01PREVdID0geyAudHlwZSA9IE5MQV9VOCB9LAogCVtORkNfQVRUUl9ERVZJQ0Vf UE9XRVJFRF0gPSB7IC50eXBlID0gTkxBX1U4IH0sCi0tIAoyLjIwLjEKCgpGcm9tIDhkNDU5ZGRm M2Y4NmVmN2IwZjYwZDRkYTE4ZmJmYTMyM2FjOGVjOWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+CkRhdGU6IE1vbiwgMiBNYXIg MjAyMCAyMTowNToyNiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggNTcvNjZdIG5mYzogYWRkIG1pc3Np bmcgYXR0cmlidXRlIHZhbGlkYXRpb24gZm9yIHZlbmRvcgogc3ViY29tbWFuZAoKWyBVcHN0cmVh bSBjb21taXQgNmJhM2RhNDQ2NTUxZjIxNTBmYWRiZjhjNzc4OGVkY2I5Nzc2ODNkMyBdCgpBZGQg bWlzc2luZyBhdHRyaWJ1dGUgdmFsaWRhdGlvbiBmb3IgdmVuZG9yIHN1YmNvbW1hbmQgYXR0cmli dXRlcwp0byB0aGUgbmV0bGluayBwb2xpY3kuCgpGaXhlczogOWU1ODA5NWY5NjYwICgiTkZDOiBu ZXRsaW5rOiBJbXBsZW1lbnQgdmVuZG9yIGNvbW1hbmQgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6 IEpha3ViIEtpY2luc2tpIDxrdWJhQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbmZjL25ldGxpbmsuYyB8IDIg KysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvbmZj L25ldGxpbmsuYyBiL25ldC9uZmMvbmV0bGluay5jCmluZGV4IGU5ODhjYTQ4NmQ2Ni4uZTg5NDI1 NGMxN2Q0IDEwMDY0NAotLS0gYS9uZXQvbmZjL25ldGxpbmsuYworKysgYi9uZXQvbmZjL25ldGxp bmsuYwpAQCAtNDYsNiArNDYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgbmZj X2dlbmxfcG9saWN5W05GQ19BVFRSX01BWCArIDFdID0gewogCQkJCSAgICAgLmxlbiA9IE5GQ19G SVJNV0FSRV9OQU1FX01BWFNJWkUgfSwKIAlbTkZDX0FUVFJfU0VfSU5ERVhdID0geyAudHlwZSA9 IE5MQV9VMzIgfSwKIAlbTkZDX0FUVFJfU0VfQVBEVV0gPSB7IC50eXBlID0gTkxBX0JJTkFSWSB9 LAorCVtORkNfQVRUUl9WRU5ET1JfSURdID0geyAudHlwZSA9IE5MQV9VMzIgfSwKKwlbTkZDX0FU VFJfVkVORE9SX1NVQkNNRF0gPSB7IC50eXBlID0gTkxBX1UzMiB9LAogCVtORkNfQVRUUl9WRU5E T1JfREFUQV0gPSB7IC50eXBlID0gTkxBX0JJTkFSWSB9LAogCiB9OwotLSAKMi4yMC4xCgoKRnJv bSAzYmJlYWZjYTIyYzBiMTk5NzE2NWQ2MmYzOTk3YWNlNDYwNmQ4Y2M2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpE YXRlOiBTdW4sIDEgTWFyIDIwMjAgMjE6MzY6MDkgKzAxMDAKU3ViamVjdDogW1BBVENIIDU4LzY2 XSBuZXQ6IHBoeTogYXZvaWQgY2xlYXJpbmcgUEhZIGludGVycnVwdHMgdHdpY2UgaW4gaXJxCiBo YW5kbGVyCgpbIFVwc3RyZWFtIGNvbW1pdCAyNDliYzk3NDRlMTY1YWJlNzRhZTMyNmY0M2U5ZDcw YmFkNTRjM2I3IF0KCk9uIGFsbCBQSFkgZHJpdmVycyB0aGF0IGltcGxlbWVudCBkaWRfaW50ZXJy dXB0KCkgcmVhZGluZyB0aGUgaW50ZXJydXB0CnN0YXR1cyBiaXRzIGNsZWFycyB0aGVtLiBUaGlz IG1lYW5zIHdlIG1heSBsb29zZSBhbiBpbnRlcnJ1cHQgdGhhdAppcyB0cmlnZ2VyZWQgYmV0d2Vl biBjYWxsaW5nIGRpZF9pbnRlcnJ1cHQoKSBhbmQgcGh5X2NsZWFyX2ludGVycnVwdCgpLgpBcyBw YXJ0IG9mIHRoZSBmaXggbWFrZSBpdCBhIHJlcXVpcmVtZW50IHRoYXQgZGlkX2ludGVycnVwdCgp IGNsZWFycwp0aGUgaW50ZXJydXB0LgoKVGhlIEZpeGVzIHRhZyByZWZlcnMgdG8gdGhlIGZpcnN0 IGNvbW1pdCB3aGVyZSB0aGUgcGF0Y2ggYXBwbGllcwpjbGVhbmx5LgoKRml4ZXM6IDQ5NjQ0ZTY4 ZjQ3MiAoIm5ldDogcGh5OiBhZGQgY2FsbGJhY2sgZm9yIGN1c3RvbSBpbnRlcnJ1cHQgaGFuZGxl ciB0byBzdHJ1Y3QgcGh5X2RyaXZlciIpClJlcG9ydGVkLWJ5OiBNaWNoYWVsIFdhbGxlIDxtaWNo YWVsQHdhbGxlLmNjPgpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeS5jIHwgMyArKy0KIGluY2x1ZGUvbGludXgv cGh5LmggICB8IDEgKwogMiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9waHkvcGh5LmMgYi9kcml2ZXJzL25ldC9w aHkvcGh5LmMKaW5kZXggODBiZTRkNjkxZTViLi42ZjZlYmU5MDhlZDggMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvbmV0L3BoeS9waHkuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5LmMKQEAgLTcwMiw3 ICs3MDIsOCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgcGh5X2ludGVycnVwdChpbnQgaXJxLCB2b2lk ICpwaHlfZGF0KQogCQlwaHlfdHJpZ2dlcl9tYWNoaW5lKHBoeWRldik7CiAJfQogCi0JaWYgKHBo eV9jbGVhcl9pbnRlcnJ1cHQocGh5ZGV2KSkKKwkvKiBkaWRfaW50ZXJydXB0KCkgbWF5IGhhdmUg Y2xlYXJlZCB0aGUgaW50ZXJydXB0IGFscmVhZHkgKi8KKwlpZiAoIXBoeWRldi0+ZHJ2LT5kaWRf aW50ZXJydXB0ICYmIHBoeV9jbGVhcl9pbnRlcnJ1cHQocGh5ZGV2KSkKIAkJZ290byBwaHlfZXJy OwogCXJldHVybiBJUlFfSEFORExFRDsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHku aCBiL2luY2x1ZGUvbGludXgvcGh5LmgKaW5kZXggZGQ0YTkxZjFmZWFhLi43NDM1NmU4YmJlNzEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgKKysrIGIvaW5jbHVkZS9saW51eC9waHku aApAQCAtNTMxLDYgKzUzMSw3IEBAIHN0cnVjdCBwaHlfZHJpdmVyIHsKIAkvKgogCSAqIENoZWNr cyBpZiB0aGUgUEhZIGdlbmVyYXRlZCBhbiBpbnRlcnJ1cHQuCiAJICogRm9yIG11bHRpLVBIWSBk ZXZpY2VzIHdpdGggc2hhcmVkIFBIWSBpbnRlcnJ1cHQgcGluCisJICogU2V0IGludGVycnVwdCBi aXRzIGhhdmUgdG8gYmUgY2xlYXJlZC4KIAkgKi8KIAlpbnQgKCpkaWRfaW50ZXJydXB0KShzdHJ1 Y3QgcGh5X2RldmljZSAqcGh5ZGV2KTsKIAotLSAKMi4yMC4xCgoKRnJvbSBhYjE3ZGU0ZDkxZjI0 NzQyYTI1ZDhiMTk3YmI0ODIwODg5NTBjNDdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBUaHUsIDEyIE1h ciAyMDIwIDIyOjI1OjIwICswMTAwClN1YmplY3Q6IFtQQVRDSCA1OS82Nl0gbmV0OiBwaHk6IGZp eCBNRElPIGJ1cyBQTSBQSFkgcmVzdW1pbmcKClsgVXBzdHJlYW0gY29tbWl0IDYxMWQ3NzlhZjdj YWQyYjg3NDg3ZmY1OGU0OTMxYTkwYzIwYjExM2MgXQoKU28gZmFyIHdlIGhhdmUgdGhlIHVuZm9y dHVuYXRlIHNpdHVhdGlvbiB0aGF0IG1kaW9fYnVzX3BoeV9tYXlfc3VzcGVuZCgpCmlzIGNhbGxl ZCBpbiBzdXNwZW5kIEFORCByZXN1bWUgcGF0aCwgYXNzdW1pbmcgdGhhdCBmdW5jdGlvbiByZXN1 bHQgaXMKdGhlIHNhbWUuIEFmdGVyIHRoZSBvcmlnaW5hbCBjaGFuZ2UgdGhpcyBpcyBubyBsb25n ZXIgdGhlIGNhc2UsCnJlc3VsdGluZyBpbiBicm9rZW4gcmVzdW1lIGFzIHJlcG9ydGVkIGJ5IEdl ZXJ0LgoKVG8gZml4IHRoaXMgY2FsbCBtZGlvX2J1c19waHlfbWF5X3N1c3BlbmQoKSBpbiB0aGUg c3VzcGVuZCBwYXRoIG9ubHksCmFuZCBsZXQgdGhlIHBoeV9kZXZpY2Ugc3RvcmUgdGhlIGluZm8g d2hldGhlciBpdCB3YXMgc3VzcGVuZGVkIGJ5Ck1ESU8gYnVzIFBNLgoKRml4ZXM6IDUwM2JhN2M2 OTYxMCAoIm5ldDogcGh5OiBBdm9pZCBtdWx0aXBsZSBzdXNwZW5kcyIpClJlcG9ydGVkLWJ5OiBH ZWVydCBVeXR0ZXJob2V2ZW4gPGdlZXJ0QGxpbnV4LW02OGsub3JnPgpUZXN0ZWQtYnk6IEdlZXJ0 IFV5dHRlcmhvZXZlbiA8Z2VlcnRAbGludXgtbTY4ay5vcmc+ClNpZ25lZC1vZmYtYnk6IEhlaW5l ciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBGbG9yaWFuIEZh aW5lbGxpIDxmLmZhaW5lbGxpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNl LmMgfCA2ICsrKysrLQogaW5jbHVkZS9saW51eC9waHkuaCAgICAgICAgICB8IDIgKysKIDIgZmls ZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYyBiL2RyaXZlcnMvbmV0L3BoeS9waHlfZGV2aWNl LmMKaW5kZXggYjEzYzUyODczZWY1Li4xMTcxMmUzODAyYmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L3BoeS9waHlfZGV2aWNlLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2UuYwpA QCAtMjg1LDYgKzI4NSw4IEBAIHN0YXRpYyBpbnQgbWRpb19idXNfcGh5X3N1c3BlbmQoc3RydWN0 IGRldmljZSAqZGV2KQogCWlmICghbWRpb19idXNfcGh5X21heV9zdXNwZW5kKHBoeWRldikpCiAJ CXJldHVybiAwOwogCisJcGh5ZGV2LT5zdXNwZW5kZWRfYnlfbWRpb19idXMgPSAxOworCiAJcmV0 dXJuIHBoeV9zdXNwZW5kKHBoeWRldik7CiB9CiAKQEAgLTI5Myw5ICsyOTUsMTEgQEAgc3RhdGlj IGludCBtZGlvX2J1c19waHlfcmVzdW1lKHN0cnVjdCBkZXZpY2UgKmRldikKIAlzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2ID0gdG9fcGh5X2RldmljZShkZXYpOwogCWludCByZXQ7CiAKLQlpZiAo IW1kaW9fYnVzX3BoeV9tYXlfc3VzcGVuZChwaHlkZXYpKQorCWlmICghcGh5ZGV2LT5zdXNwZW5k ZWRfYnlfbWRpb19idXMpCiAJCWdvdG8gbm9fcmVzdW1lOwogCisJcGh5ZGV2LT5zdXNwZW5kZWRf YnlfbWRpb19idXMgPSAwOworCiAJcmV0ID0gcGh5X3Jlc3VtZShwaHlkZXYpOwogCWlmIChyZXQg PCAwKQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9waHkuaCBiL2lu Y2x1ZGUvbGludXgvcGh5LmgKaW5kZXggNzQzNTZlOGJiZTcxLi5iNWUyMWMzYTIyZDAgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvcGh5LmgKKysrIGIvaW5jbHVkZS9saW51eC9waHkuaApAQCAt MzM4LDYgKzMzOCw3IEBAIHN0cnVjdCBwaHlfYzQ1X2RldmljZV9pZHMgewogICogaXNfZ2lnYWJp dF9jYXBhYmxlOiBTZXQgdG8gdHJ1ZSBpZiBQSFkgc3VwcG9ydHMgMTAwME1icHMKICAqIGhhc19m aXh1cHM6IFNldCB0byB0cnVlIGlmIHRoaXMgcGh5IGhhcyBmaXh1cHMvcXVpcmtzLgogICogc3Vz cGVuZGVkOiBTZXQgdG8gdHJ1ZSBpZiB0aGlzIHBoeSBoYXMgYmVlbiBzdXNwZW5kZWQgc3VjY2Vz c2Z1bGx5LgorICogc3VzcGVuZGVkX2J5X21kaW9fYnVzOiBTZXQgdG8gdHJ1ZSBpZiB0aGlzIHBo eSB3YXMgc3VzcGVuZGVkIGJ5IE1ESU8gYnVzLgogICogc3lzZnNfbGlua3M6IEludGVybmFsIGJv b2xlYW4gdHJhY2tpbmcgc3lzZnMgc3ltYm9saWMgbGlua3Mgc2V0dXAvcmVtb3ZhbC4KICAqIGxv b3BiYWNrX2VuYWJsZWQ6IFNldCB0cnVlIGlmIHRoaXMgcGh5IGhhcyBiZWVuIGxvb3BiYWNrZWQg c3VjY2Vzc2Z1bGx5LgogICogc3RhdGU6IHN0YXRlIG9mIHRoZSBQSFkgZm9yIG1hbmFnZW1lbnQg cHVycG9zZXMKQEAgLTM3Niw2ICszNzcsNyBAQCBzdHJ1Y3QgcGh5X2RldmljZSB7CiAJdW5zaWdu ZWQgaXNfZ2lnYWJpdF9jYXBhYmxlOjE7CiAJdW5zaWduZWQgaGFzX2ZpeHVwczoxOwogCXVuc2ln bmVkIHN1c3BlbmRlZDoxOworCXVuc2lnbmVkIHN1c3BlbmRlZF9ieV9tZGlvX2J1czoxOwogCXVu c2lnbmVkIHN5c2ZzX2xpbmtzOjE7CiAJdW5zaWduZWQgbG9vcGJhY2tfZW5hYmxlZDoxOwogCi0t IAoyLjIwLjEKCgpGcm9tIDU0NjY2NDQ3MDYzNzEyZmZiNmUwMTYwOWZiM2QwMGFhMGZjNjljMmMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEhhbmdiaW4gTGl1IDxsaXVoYW5nYmluQGdt YWlsLmNvbT4KRGF0ZTogVHVlLCAzIE1hciAyMDIwIDE0OjM3OjM0ICswODAwClN1YmplY3Q6IFtQ QVRDSCA2MC82Nl0gbmV0L2lwdjY6IG5lZWQgdXBkYXRlIHBlZXIgcm91dGUgd2hlbiBtb2RpZnkg bWV0cmljCgpbIFVwc3RyZWFtIGNvbW1pdCA2MTc5NDAxMjNlMDE0MDUyMWYzMDgwZDJiZWZjMmJm NTViY2RhMDk0IF0KCldoZW4gd2UgbW9kaWZ5IHRoZSByb3V0ZSBtZXRyaWMsIHRoZSBwZWVyIGFk ZHJlc3MncyByb3V0ZSBuZWVkIGFsc28KYmUgdXBkYXRlZC4gQmVmb3JlIHRoZSBmaXg6CgorIGlw IGFkZHIgYWRkIGRldiBkdW1teTEgMjAwMTpkYjg6OjEgcGVlciAyMDAxOmRiODo6MiBtZXRyaWMg NjAKKyBpcCAtNiByb3V0ZSBzaG93IGRldiBkdW1teTEKMjAwMTpkYjg6OjEgcHJvdG8ga2VybmVs IG1ldHJpYyA2MCBwcmVmIG1lZGl1bQoyMDAxOmRiODo6MiBwcm90byBrZXJuZWwgbWV0cmljIDYw IHByZWYgbWVkaXVtCisgaXAgYWRkciBjaGFuZ2UgZGV2IGR1bW15MSAyMDAxOmRiODo6MSBwZWVy IDIwMDE6ZGI4OjoyIG1ldHJpYyA2MQorIGlwIC02IHJvdXRlIHNob3cgZGV2IGR1bW15MQoyMDAx OmRiODo6MSBwcm90byBrZXJuZWwgbWV0cmljIDYxIHByZWYgbWVkaXVtCjIwMDE6ZGI4OjoyIHBy b3RvIGtlcm5lbCBtZXRyaWMgNjAgcHJlZiBtZWRpdW0KCkFmdGVyIHRoZSBmaXg6CisgaXAgYWRk ciBjaGFuZ2UgZGV2IGR1bW15MSAyMDAxOmRiODo6MSBwZWVyIDIwMDE6ZGI4OjoyIG1ldHJpYyA2 MQorIGlwIC02IHJvdXRlIHNob3cgZGV2IGR1bW15MQoyMDAxOmRiODo6MSBwcm90byBrZXJuZWwg bWV0cmljIDYxIHByZWYgbWVkaXVtCjIwMDE6ZGI4OjoyIHByb3RvIGtlcm5lbCBtZXRyaWMgNjEg cHJlZiBtZWRpdW0KCkZpeGVzOiA4MzA4ZjNmZjE3NTMgKCJuZXQvaXB2NjogQWRkIHN1cHBvcnQg Zm9yIHNwZWNpZnlpbmcgbWV0cmljIG9mIGNvbm5lY3RlZCByb3V0ZXMiKQpTaWduZWQtb2ZmLWJ5 OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBB aGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9hZGRyY29uZi5jIHwgMjAgKysrKysr KysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY2L2FkZHJjb25mLmMgYi9uZXQvaXB2Ni9hZGRy Y29uZi5jCmluZGV4IDJkNzU4YTM5ZGQyOS4uY2FiYWZmNGI5NzYwIDEwMDY0NAotLS0gYS9uZXQv aXB2Ni9hZGRyY29uZi5jCisrKyBiL25ldC9pcHY2L2FkZHJjb25mLmMKQEAgLTQ1OTAsMTIgKzQ1 OTAsMTQgQEAgaW5ldDZfcnRtX2RlbGFkZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5s bXNnaGRyICpubGgsCiB9CiAKIHN0YXRpYyBpbnQgbW9kaWZ5X3ByZWZpeF9yb3V0ZShzdHJ1Y3Qg aW5ldDZfaWZhZGRyICppZnAsCi0JCQkgICAgICAgdW5zaWduZWQgbG9uZyBleHBpcmVzLCB1MzIg ZmxhZ3MpCisJCQkgICAgICAgdW5zaWduZWQgbG9uZyBleHBpcmVzLCB1MzIgZmxhZ3MsCisJCQkg ICAgICAgYm9vbCBtb2RpZnlfcGVlcikKIHsKIAlzdHJ1Y3QgZmliNl9pbmZvICpmNmk7CiAJdTMy IHByaW87CiAKLQlmNmkgPSBhZGRyY29uZl9nZXRfcHJlZml4X3JvdXRlKCZpZnAtPmFkZHIsIGlm cC0+cHJlZml4X2xlbiwKKwlmNmkgPSBhZGRyY29uZl9nZXRfcHJlZml4X3JvdXRlKG1vZGlmeV9w ZWVyID8gJmlmcC0+cGVlcl9hZGRyIDogJmlmcC0+YWRkciwKKwkJCQkJaWZwLT5wcmVmaXhfbGVu LAogCQkJCQlpZnAtPmlkZXYtPmRldiwgMCwgUlRGX0RFRkFVTFQsIHRydWUpOwogCWlmICghZjZp KQogCQlyZXR1cm4gLUVOT0VOVDsKQEAgLTQ2MDYsNyArNDYwOCw4IEBAIHN0YXRpYyBpbnQgbW9k aWZ5X3ByZWZpeF9yb3V0ZShzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnAsCiAJCWlwNl9kZWxfcnQo ZGV2X25ldChpZnAtPmlkZXYtPmRldiksIGY2aSk7CiAKIAkJLyogYWRkIG5ldyBvbmUgKi8KLQkJ YWRkcmNvbmZfcHJlZml4X3JvdXRlKCZpZnAtPmFkZHIsIGlmcC0+cHJlZml4X2xlbiwKKwkJYWRk cmNvbmZfcHJlZml4X3JvdXRlKG1vZGlmeV9wZWVyID8gJmlmcC0+cGVlcl9hZGRyIDogJmlmcC0+ YWRkciwKKwkJCQkgICAgICBpZnAtPnByZWZpeF9sZW4sCiAJCQkJICAgICAgaWZwLT5ydF9wcmlv cml0eSwgaWZwLT5pZGV2LT5kZXYsCiAJCQkJICAgICAgZXhwaXJlcywgZmxhZ3MsIEdGUF9LRVJO RUwpOwogCX0gZWxzZSB7CkBAIC00NjgyLDcgKzQ2ODUsNyBAQCBzdGF0aWMgaW50IGluZXQ2X2Fk ZHJfbW9kaWZ5KHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwgc3RydWN0IGlmYTZfY29uZmlnICpj ZmcpCiAJCWludCByYyA9IC1FTk9FTlQ7CiAKIAkJaWYgKGhhZF9wcmVmaXhyb3V0ZSkKLQkJCXJj ID0gbW9kaWZ5X3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsIGZsYWdzKTsKKwkJCXJjID0gbW9k aWZ5X3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsIGZsYWdzLCBmYWxzZSk7CiAKIAkJLyogcHJl Zml4IHJvdXRlIGNvdWxkIGhhdmUgYmVlbiBkZWxldGVkOyBpZiBzbyByZXN0b3JlIGl0ICovCiAJ CWlmIChyYyA9PSAtRU5PRU5UKSB7CkBAIC00NjkwLDYgKzQ2OTMsMTUgQEAgc3RhdGljIGludCBp bmV0Nl9hZGRyX21vZGlmeShzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnAsIHN0cnVjdCBpZmE2X2Nv bmZpZyAqY2ZnKQogCQkJCQkgICAgICBpZnAtPnJ0X3ByaW9yaXR5LCBpZnAtPmlkZXYtPmRldiwK IAkJCQkJICAgICAgZXhwaXJlcywgZmxhZ3MsIEdGUF9LRVJORUwpOwogCQl9CisKKwkJaWYgKGhh ZF9wcmVmaXhyb3V0ZSAmJiAhaXB2Nl9hZGRyX2FueSgmaWZwLT5wZWVyX2FkZHIpKQorCQkJcmMg PSBtb2RpZnlfcHJlZml4X3JvdXRlKGlmcCwgZXhwaXJlcywgZmxhZ3MsIHRydWUpOworCisJCWlm IChyYyA9PSAtRU5PRU5UICYmICFpcHY2X2FkZHJfYW55KCZpZnAtPnBlZXJfYWRkcikpIHsKKwkJ CWFkZHJjb25mX3ByZWZpeF9yb3V0ZSgmaWZwLT5wZWVyX2FkZHIsIGlmcC0+cHJlZml4X2xlbiwK KwkJCQkJICAgICAgaWZwLT5ydF9wcmlvcml0eSwgaWZwLT5pZGV2LT5kZXYsCisJCQkJCSAgICAg IGV4cGlyZXMsIGZsYWdzLCBHRlBfS0VSTkVMKTsKKwkJfQogCX0gZWxzZSBpZiAoaGFkX3ByZWZp eHJvdXRlKSB7CiAJCWVudW0gY2xlYW51cF9wcmVmaXhfcnRfdCBhY3Rpb247CiAJCXVuc2lnbmVk IGxvbmcgcnRfZXhwaXJlczsKLS0gCjIuMjAuMQoKCkZyb20gZjJlNTNkZTQ4ODZmMGQ4YzFmYWQx M2I2MGEyYWQ0YzgyZDcyNTEzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFuZ2Jp biBMaXUgPGxpdWhhbmdiaW5AZ21haWwuY29tPgpEYXRlOiBUdWUsIDMgTWFyIDIwMjAgMTQ6Mzc6 MzUgKzA4MDAKU3ViamVjdDogW1BBVENIIDYxLzY2XSBuZXQvaXB2NjogcmVtb3ZlIHRoZSBvbGQg cGVlciByb3V0ZSBpZiBjaGFuZ2UgaXQgdG8gYQogbmV3IG9uZQoKWyBVcHN0cmVhbSBjb21taXQg ZDAwOThlNGM2YjgzZTUwMmNjMWNkOTZkNjdjYTg2YmM3OWE2YzU1OSBdCgpXaGVuIHdlIG1vZGlm eSB0aGUgcGVlciByb3V0ZSBhbmQgY2hhbmdlZCBpdCB0byBhIG5ldyBvbmUsIHdlIHNob3VsZApy ZW1vdmUgdGhlIG9sZCByb3V0ZSBmaXJzdC4gQmVmb3JlIHRoZSBmaXg6CgorIGlwIGFkZHIgYWRk IGRldiBkdW1teTEgMjAwMTpkYjg6OjEgcGVlciAyMDAxOmRiODo6MgorIGlwIC02IHJvdXRlIHNo b3cgZGV2IGR1bW15MQoyMDAxOmRiODo6MSBwcm90byBrZXJuZWwgbWV0cmljIDI1NiBwcmVmIG1l ZGl1bQoyMDAxOmRiODo6MiBwcm90byBrZXJuZWwgbWV0cmljIDI1NiBwcmVmIG1lZGl1bQorIGlw IGFkZHIgY2hhbmdlIGRldiBkdW1teTEgMjAwMTpkYjg6OjEgcGVlciAyMDAxOmRiODo6MworIGlw IC02IHJvdXRlIHNob3cgZGV2IGR1bW15MQoyMDAxOmRiODo6MSBwcm90byBrZXJuZWwgbWV0cmlj IDI1NiBwcmVmIG1lZGl1bQoyMDAxOmRiODo6MiBwcm90byBrZXJuZWwgbWV0cmljIDI1NiBwcmVm IG1lZGl1bQoKQWZ0ZXIgdGhlIGZpeDoKKyBpcCBhZGRyIGNoYW5nZSBkZXYgZHVtbXkxIDIwMDE6 ZGI4OjoxIHBlZXIgMjAwMTpkYjg6OjMKKyBpcCAtNiByb3V0ZSBzaG93IGRldiBkdW1teTEKMjAw MTpkYjg6OjEgcHJvdG8ga2VybmVsIG1ldHJpYyAyNTYgcHJlZiBtZWRpdW0KMjAwMTpkYjg6OjMg cHJvdG8ga2VybmVsIG1ldHJpYyAyNTYgcHJlZiBtZWRpdW0KClRoaXMgcGF0Y2ggZGVwZW5kIG9u IHRoZSBwcmV2aW91cyBwYXRjaCAibmV0L2lwdjY6IG5lZWQgdXBkYXRlIHBlZXIgcm91dGUKd2hl biBtb2RpZnkgbWV0cmljIiB0byB1cGRhdGUgbmV3IHBlZXIgcm91dGUgYWZ0ZXIgZGVsZXRlIG9s ZCBvbmUuCgpTaWduZWQtb2ZmLWJ5OiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9h ZGRyY29uZi5jIHwgMjEgKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTcg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9hZGRy Y29uZi5jIGIvbmV0L2lwdjYvYWRkcmNvbmYuYwppbmRleCBjYWJhZmY0Yjk3NjAuLjQ2ZDYxNGI2 MTFkYiAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvYWRkcmNvbmYuYworKysgYi9uZXQvaXB2Ni9hZGRy Y29uZi5jCkBAIC0xMjI2LDExICsxMjI2LDEzIEBAIGNoZWNrX2NsZWFudXBfcHJlZml4X3JvdXRl KHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwgdW5zaWduZWQgbG9uZyAqZXhwaXJlcykKIH0KIAog c3RhdGljIHZvaWQKLWNsZWFudXBfcHJlZml4X3JvdXRlKHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlm cCwgdW5zaWduZWQgbG9uZyBleHBpcmVzLCBib29sIGRlbF9ydCkKK2NsZWFudXBfcHJlZml4X3Jv dXRlKHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwgdW5zaWduZWQgbG9uZyBleHBpcmVzLAorCQkg ICAgIGJvb2wgZGVsX3J0LCBib29sIGRlbF9wZWVyKQogewogCXN0cnVjdCBmaWI2X2luZm8gKmY2 aTsKIAotCWY2aSA9IGFkZHJjb25mX2dldF9wcmVmaXhfcm91dGUoJmlmcC0+YWRkciwgaWZwLT5w cmVmaXhfbGVuLAorCWY2aSA9IGFkZHJjb25mX2dldF9wcmVmaXhfcm91dGUoZGVsX3BlZXIgPyAm aWZwLT5wZWVyX2FkZHIgOiAmaWZwLT5hZGRyLAorCQkJCQlpZnAtPnByZWZpeF9sZW4sCiAJCQkJ CWlmcC0+aWRldi0+ZGV2LCAwLCBSVEZfREVGQVVMVCwgdHJ1ZSk7CiAJaWYgKGY2aSkgewogCQlp ZiAoZGVsX3J0KQpAQCAtMTI5Myw3ICsxMjk1LDcgQEAgc3RhdGljIHZvaWQgaXB2Nl9kZWxfYWRk cihzdHJ1Y3QgaW5ldDZfaWZhZGRyICppZnApCiAKIAlpZiAoYWN0aW9uICE9IENMRUFOVVBfUFJF RklYX1JUX05PUCkgewogCQljbGVhbnVwX3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsCi0JCQlh Y3Rpb24gPT0gQ0xFQU5VUF9QUkVGSVhfUlRfREVMKTsKKwkJCWFjdGlvbiA9PSBDTEVBTlVQX1BS RUZJWF9SVF9ERUwsIGZhbHNlKTsKIAl9CiAKIAkvKiBjbGVhbiB1cCBwcmVmc3JjIGVudHJpZXMg Ki8KQEAgLTQ2MzEsNiArNDYzMyw3IEBAIHN0YXRpYyBpbnQgaW5ldDZfYWRkcl9tb2RpZnkoc3Ry dWN0IGluZXQ2X2lmYWRkciAqaWZwLCBzdHJ1Y3QgaWZhNl9jb25maWcgKmNmZykKIAl1bnNpZ25l ZCBsb25nIHRpbWVvdXQ7CiAJYm9vbCB3YXNfbWFuYWdldGVtcGFkZHI7CiAJYm9vbCBoYWRfcHJl Zml4cm91dGU7CisJYm9vbCBuZXdfcGVlciA9IGZhbHNlOwogCiAJQVNTRVJUX1JUTkwoKTsKIApA QCAtNDY2Miw2ICs0NjY1LDEzIEBAIHN0YXRpYyBpbnQgaW5ldDZfYWRkcl9tb2RpZnkoc3RydWN0 IGluZXQ2X2lmYWRkciAqaWZwLCBzdHJ1Y3QgaWZhNl9jb25maWcgKmNmZykKIAkJY2ZnLT5wcmVm ZXJyZWRfbGZ0ID0gdGltZW91dDsKIAl9CiAKKwlpZiAoY2ZnLT5wZWVyX3BmeCAmJgorCSAgICBt ZW1jbXAoJmlmcC0+cGVlcl9hZGRyLCBjZmctPnBlZXJfcGZ4LCBzaXplb2Yoc3RydWN0IGluNl9h ZGRyKSkpIHsKKwkJaWYgKCFpcHY2X2FkZHJfYW55KCZpZnAtPnBlZXJfYWRkcikpCisJCQljbGVh bnVwX3ByZWZpeF9yb3V0ZShpZnAsIGV4cGlyZXMsIHRydWUsIHRydWUpOworCQluZXdfcGVlciA9 IHRydWU7CisJfQorCiAJc3Bpbl9sb2NrX2JoKCZpZnAtPmxvY2spOwogCXdhc19tYW5hZ2V0ZW1w YWRkciA9IGlmcC0+ZmxhZ3MgJiBJRkFfRl9NQU5BR0VURU1QQUREUjsKIAloYWRfcHJlZml4cm91 dGUgPSBpZnAtPmZsYWdzICYgSUZBX0ZfUEVSTUFORU5UICYmCkBAIC00Njc3LDYgKzQ2ODcsOSBA QCBzdGF0aWMgaW50IGluZXQ2X2FkZHJfbW9kaWZ5KHN0cnVjdCBpbmV0Nl9pZmFkZHIgKmlmcCwg c3RydWN0IGlmYTZfY29uZmlnICpjZmcpCiAJaWYgKGNmZy0+cnRfcHJpb3JpdHkgJiYgY2ZnLT5y dF9wcmlvcml0eSAhPSBpZnAtPnJ0X3ByaW9yaXR5KQogCQlpZnAtPnJ0X3ByaW9yaXR5ID0gY2Zn LT5ydF9wcmlvcml0eTsKIAorCWlmIChuZXdfcGVlcikKKwkJaWZwLT5wZWVyX2FkZHIgPSAqY2Zn LT5wZWVyX3BmeDsKKwogCXNwaW5fdW5sb2NrX2JoKCZpZnAtPmxvY2spOwogCWlmICghKGlmcC0+ ZmxhZ3MmSUZBX0ZfVEVOVEFUSVZFKSkKIAkJaXB2Nl9pZmFfbm90aWZ5KDAsIGlmcCk7CkBAIC00 NzEyLDcgKzQ3MjUsNyBAQCBzdGF0aWMgaW50IGluZXQ2X2FkZHJfbW9kaWZ5KHN0cnVjdCBpbmV0 Nl9pZmFkZHIgKmlmcCwgc3RydWN0IGlmYTZfY29uZmlnICpjZmcpCiAKIAkJaWYgKGFjdGlvbiAh PSBDTEVBTlVQX1BSRUZJWF9SVF9OT1ApIHsKIAkJCWNsZWFudXBfcHJlZml4X3JvdXRlKGlmcCwg cnRfZXhwaXJlcywKLQkJCQlhY3Rpb24gPT0gQ0xFQU5VUF9QUkVGSVhfUlRfREVMKTsKKwkJCQlh Y3Rpb24gPT0gQ0xFQU5VUF9QUkVGSVhfUlRfREVMLCBmYWxzZSk7CiAJCX0KIAl9CiAKLS0gCjIu MjAuMQoKCkZyb20gMjQ5OWUwM2JmMjBhNDA3YzczNDI5ZGM4OTY3ZTFhZjY3ZjQ5NzNkMyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGFuZ2JpbiBMaXUgPGxpdWhhbmdiaW5AZ21haWwu Y29tPgpEYXRlOiBUdWUsIDMgTWFyIDIwMjAgMTQ6Mzc6MzYgKzA4MDAKU3ViamVjdDogW1BBVENI IDYyLzY2XSBzZWxmdGVzdHMvbmV0L2ZpYl90ZXN0czogdXBkYXRlIGFkZHJfbWV0cmljX3Rlc3Qg Zm9yCiBwZWVyIHJvdXRlIHRlc3RpbmcKClsgVXBzdHJlYW0gY29tbWl0IDBkMjkxNjlhNzA4YmY3 MzBlZGUyODcyNDhlNDI5ZDU3OWY0MzJkMWQgXQoKVGhpcyBwYXRjaCB1cGRhdGUge2lwdjQsIGlw djZ9X2FkZHJfbWV0cmljX3Rlc3Qgd2l0aAoxLiBTZXQgbWV0cmljIG9mIGFkZHJlc3Mgd2l0aCBw ZWVyIHJvdXRlIGFuZCBzZWUgaWYgdGhlIHJvdXRlIGFkZGVkCmNvcnJlY3RseS4KMi4gTW9kaWZ5 IG1ldHJpYyBhbmQgcGVlciBhZGRyZXNzIGZvciBwZWVyIHJvdXRlIGFuZCBzZWUgaWYgdGhlIHJv dXRlCmNoYW5nZWQgY29ycmVjdGx5LgoKU2lnbmVkLW9mZi1ieTogSGFuZ2JpbiBMaXUgPGxpdWhh bmdiaW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2ZpYl90ZXN0cy5zaCB8IDM0ICsrKysr KysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2Zp Yl90ZXN0cy5zaCBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9maWJfdGVzdHMuc2gKaW5k ZXggNjAyNzNmMWJjN2Q5Li5iNzYxNjcwNGI1NWUgMTAwNzU1Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL25ldC9maWJfdGVzdHMuc2gKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMv bmV0L2ZpYl90ZXN0cy5zaApAQCAtMTA0MSw2ICsxMDQxLDI3IEBAIGlwdjZfYWRkcl9tZXRyaWNf dGVzdCgpCiAJZmkKIAlsb2dfdGVzdCAkcmMgMCAiUHJlZml4IHJvdXRlIHdpdGggbWV0cmljIG9u IGxpbmsgdXAiCiAKKwkjIHZlcmlmeSBwZWVyIG1ldHJpYyBhZGRlZCBjb3JyZWN0bHkKKwlzZXQg LWUKKwlydW5fY21kICIkSVAgLTYgYWRkciBmbHVzaCBkZXYgZHVtbXkyIgorCXJ1bl9jbWQgIiRJ UCAtNiBhZGRyIGFkZCBkZXYgZHVtbXkyIDIwMDE6ZGI4OjEwNDo6MSBwZWVyIDIwMDE6ZGI4OjEw NDo6MiBtZXRyaWMgMjYwIgorCXNldCArZQorCisJY2hlY2tfcm91dGU2ICIyMDAxOmRiODoxMDQ6 OjEgZGV2IGR1bW15MiBwcm90byBrZXJuZWwgbWV0cmljIDI2MCIKKwlsb2dfdGVzdCAkPyAwICJT ZXQgbWV0cmljIHdpdGggcGVlciByb3V0ZSBvbiBsb2NhbCBzaWRlIgorCWxvZ190ZXN0ICQ/IDAg IlVzZXIgc3BlY2lmaWVkIG1ldHJpYyBvbiBsb2NhbCBhZGRyZXNzIgorCWNoZWNrX3JvdXRlNiAi MjAwMTpkYjg6MTA0OjoyIGRldiBkdW1teTIgcHJvdG8ga2VybmVsIG1ldHJpYyAyNjAiCisJbG9n X3Rlc3QgJD8gMCAiU2V0IG1ldHJpYyB3aXRoIHBlZXIgcm91dGUgb24gcGVlciBzaWRlIgorCisJ c2V0IC1lCisJcnVuX2NtZCAiJElQIC02IGFkZHIgY2hhbmdlIGRldiBkdW1teTIgMjAwMTpkYjg6 MTA0OjoxIHBlZXIgMjAwMTpkYjg6MTA0OjozIG1ldHJpYyAyNjEiCisJc2V0ICtlCisKKwljaGVj a19yb3V0ZTYgIjIwMDE6ZGI4OjEwNDo6MSBkZXYgZHVtbXkyIHByb3RvIGtlcm5lbCBtZXRyaWMg MjYxIgorCWxvZ190ZXN0ICQ/IDAgIk1vZGlmeSBtZXRyaWMgYW5kIHBlZXIgYWRkcmVzcyBvbiBs b2NhbCBzaWRlIgorCWNoZWNrX3JvdXRlNiAiMjAwMTpkYjg6MTA0OjozIGRldiBkdW1teTIgcHJv dG8ga2VybmVsIG1ldHJpYyAyNjEiCisJbG9nX3Rlc3QgJD8gMCAiTW9kaWZ5IG1ldHJpYyBhbmQg cGVlciBhZGRyZXNzIG9uIHBlZXIgc2lkZSIKKwogCSRJUCBsaSBkZWwgZHVtbXkxCiAJJElQIGxp IGRlbCBkdW1teTIKIAljbGVhbnVwCkBAIC0xNDU3LDEzICsxNDc4LDIwIEBAIGlwdjRfYWRkcl9t ZXRyaWNfdGVzdCgpCiAKIAlydW5fY21kICIkSVAgYWRkciBmbHVzaCBkZXYgZHVtbXkyIgogCXJ1 bl9jbWQgIiRJUCBhZGRyIGFkZCBkZXYgZHVtbXkyIDE3Mi4xNi4xMDQuMS8zMiBwZWVyIDE3Mi4x Ni4xMDQuMiBtZXRyaWMgMjYwIgotCXJ1bl9jbWQgIiRJUCBhZGRyIGNoYW5nZSBkZXYgZHVtbXky IDE3Mi4xNi4xMDQuMS8zMiBwZWVyIDE3Mi4xNi4xMDQuMiBtZXRyaWMgMjYxIgogCXJjPSQ/CiAJ aWYgWyAkcmMgLWVxIDAgXTsgdGhlbgotCQljaGVja19yb3V0ZSAiMTcyLjE2LjEwNC4yIGRldiBk dW1teTIgcHJvdG8ga2VybmVsIHNjb3BlIGxpbmsgc3JjIDE3Mi4xNi4xMDQuMSBtZXRyaWMgMjYx IgorCQljaGVja19yb3V0ZSAiMTcyLjE2LjEwNC4yIGRldiBkdW1teTIgcHJvdG8ga2VybmVsIHNj b3BlIGxpbmsgc3JjIDE3Mi4xNi4xMDQuMSBtZXRyaWMgMjYwIgorCQlyYz0kPworCWZpCisJbG9n X3Rlc3QgJHJjIDAgIlNldCBtZXRyaWMgb2YgYWRkcmVzcyB3aXRoIHBlZXIgcm91dGUiCisKKwly dW5fY21kICIkSVAgYWRkciBjaGFuZ2UgZGV2IGR1bW15MiAxNzIuMTYuMTA0LjEvMzIgcGVlciAx NzIuMTYuMTA0LjMgbWV0cmljIDI2MSIKKwlyYz0kPworCWlmIFsgJHJjIC1lcSAwIF07IHRoZW4K KwkJY2hlY2tfcm91dGUgIjE3Mi4xNi4xMDQuMyBkZXYgZHVtbXkyIHByb3RvIGtlcm5lbCBzY29w ZSBsaW5rIHNyYyAxNzIuMTYuMTA0LjEgbWV0cmljIDI2MSIKIAkJcmM9JD8KIAlmaQotCWxvZ190 ZXN0ICRyYyAwICJNb2RpZnkgbWV0cmljIG9mIGFkZHJlc3Mgd2l0aCBwZWVyIHJvdXRlIgorCWxv Z190ZXN0ICRyYyAwICJNb2RpZnkgbWV0cmljIGFuZCBwZWVyIGFkZHJlc3MgZm9yIHBlZXIgcm91 dGUiCiAKIAkkSVAgbGkgZGVsIGR1bW15MQogCSRJUCBsaSBkZWwgZHVtbXkyCi0tIAoyLjIwLjEK CgpGcm9tIDk5ZGYwMmM4NjMwMGQ0YzYyYzZhNDU4NGUwYWFmNTAxZTM3Y2EzYmYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IEp1bGlhbiBXaWVkbWFubiA8andpQGxpbnV4LmlibS5jb20+ CkRhdGU6IFR1ZSwgMTAgTWFyIDIwMjAgMTg6Mzg6MDEgKzAxMDAKU3ViamVjdDogW1BBVENIIDYz LzY2XSBzMzkwL3FldGg6IGRvbid0IHJlc2V0IGRlZmF1bHRfb3V0X3F1ZXVlCgpbIFVwc3RyZWFt IGNvbW1pdCAyNDBjMTk0ODQ5MWI4MWNmZTQwZjg0ZWEwNDBhOGYyYTQ5NjZmMTAxIF0KCldoZW4g YW4gT1NBIGRldmljZSBpbiBwcmlvLXF1ZXVlIHNldHVwIGlzIHJlZHVjZWQgdG8gMSBUWCBxdWV1 ZSBkdWUgdG8KSFcgcmVzdHJpY3Rpb25zLCB3ZSByZXNldCBpdHMgdGhlIGRlZmF1bHRfb3V0X3F1 ZXVlIHRvIDAuCgpJbiB0aGUgb2xkIGNvZGUgdGhpcyB3YXMgbmVlZGVkIHNvIHRoYXQgcWV0aF9n ZXRfcHJpb3JpdHlfcXVldWUoKSBnZXRzCnRoZSBxdWV1ZSBzZWxlY3Rpb24gcmlnaHQuIEJ1dCB3 aXRoIHByb3BlciBtdWx0aXF1ZXVlIHN1cHBvcnQgd2UgYWxyZWFkeQpyZWR1Y2VkIGRldi0+cmVh bF9udW1fdHhfcXVldWVzIHRvIDEsIGFuZCBzbyB0aGUgc3RhY2sgcHV0cyBhbGwgdHJhZmZpYwpv biB0eHEgMCB3aXRob3V0IGV2ZW4gY2FsbGluZyAubmRvX3NlbGVjdF9xdWV1ZS4KClRodXMgd2Ug Y2FuIHByZXNlcnZlIHRoZSB1c2VyJ3MgY29uZmlndXJhdGlvbiwgYW5kIGFwcGx5IGl0IGlmIHRo ZSBPU0EKZGV2aWNlIGxhdGVyIHJlLWdhaW5zIHN1cHBvcnQgZm9yIG11bHRpcGxlIFRYIHF1ZXVl cy4KCkZpeGVzOiA3M2RjMmRhZjExMGYgKCJzMzkwL3FldGg6IGFkZCBUWCBtdWx0aXF1ZXVlIHN1 cHBvcnQgZm9yIE9TQSBkZXZpY2VzIikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRtYW5uIDxq d2lAbGludXguaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyB8IDEg LQogMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Mz OTAvbmV0L3FldGhfY29yZV9tYWluLmMgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWlu LmMKaW5kZXggNGZkN2IwY2ViNGZmLi40MjMyNjg2N2U3YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv czM5MC9uZXQvcWV0aF9jb3JlX21haW4uYworKysgYi9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29y ZV9tYWluLmMKQEAgLTEyNDQsNyArMTI0NCw2IEBAIHN0YXRpYyBpbnQgcWV0aF9vc2Ffc2V0X291 dHB1dF9xdWV1ZXMoc3RydWN0IHFldGhfY2FyZCAqY2FyZCwgYm9vbCBzaW5nbGUpCiAJaWYgKGNv dW50ID09IDEpCiAJCWRldl9pbmZvKCZjYXJkLT5nZGV2LT5kZXYsICJQcmlvcml0eSBRdWV1ZWlu ZyBub3Qgc3VwcG9ydGVkXG4iKTsKIAotCWNhcmQtPnFkaW8uZGVmYXVsdF9vdXRfcXVldWUgPSBz aW5nbGUgPyAwIDogUUVUSF9ERUZBVUxUX1FVRVVFOwogCWNhcmQtPnFkaW8ubm9fb3V0X3F1ZXVl cyA9IGNvdW50OwogCXJldHVybiAwOwogfQotLSAKMi4yMC4xCgoKRnJvbSBjMmUxZDZkYmExNzNh MGM2NTI0ZjM4OGM5ZmU0OGFiNjNmM2YwMjc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBKdWxpYW4gV2llZG1hbm4gPGp3aUBsaW51eC5pYm0uY29tPgpEYXRlOiBUdWUsIDEwIE1hciAy MDIwIDE4OjM4OjAyICswMTAwClN1YmplY3Q6IFtQQVRDSCA2NC82Nl0gczM5MC9xZXRoOiBoYW5k bGUgZXJyb3Igd2hlbiBiYWNraW5nIFJYIGJ1ZmZlcgoKWyBVcHN0cmVhbSBjb21taXQgMTc0MTM4 NTI4MDRkN2U4NmU2ZjA1NzZjY2EzMmMxNTQxODE3ODAwZSBdCgpxZXRoX2luaXRfcWRpb19xdWV1 ZXMoKSBmaWxscyB0aGUgUlggcmluZyB3aXRoIGFuIGluaXRpYWwgc2V0IG9mClJYIGJ1ZmZlcnMu IElmIHFldGhfaW5pdF9pbnB1dF9idWZmZXIoKSBmYWlscyB0byBiYWNrIG9uZSBvZiB0aGUgUlgK YnVmZmVycyB3aXRoIG1lbW9yeSwgd2UgbmVlZCB0byBiYWlsIG91dCBhbmQgcmVwb3J0IHRoZSBl cnJvci4KCkZpeGVzOiA0YTcxZGY1MDA0N2YgKCJxZXRoOiBuZXcgcWV0aCBkZXZpY2UgZHJpdmVy IikKU2lnbmVkLW9mZi1ieTogSnVsaWFuIFdpZWRtYW5uIDxqd2lAbGludXguaWJtLmNvbT4KU2ln bmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRy aXZlcnMvczM5MC9uZXQvcWV0aF9jb3JlX21haW4uYyB8IDEzICsrKysrKysrKy0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zMzkwL25ldC9xZXRoX2NvcmVfbWFpbi5jIGIvZHJpdmVycy9zMzkwL25ldC9xZXRo X2NvcmVfbWFpbi5jCmluZGV4IDQyMzI2ODY3ZTdhZi4uZDI0MjA3MDc1MThjIDEwMDY0NAotLS0g YS9kcml2ZXJzL3MzOTAvbmV0L3FldGhfY29yZV9tYWluLmMKKysrIGIvZHJpdmVycy9zMzkwL25l dC9xZXRoX2NvcmVfbWFpbi5jCkBAIC0yNjMzLDEyICsyNjMzLDEyIEBAIHN0YXRpYyBpbnQgcWV0 aF9pbml0X2lucHV0X2J1ZmZlcihzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkLAogCQlidWYtPnJ4X3Nr YiA9IG5ldGRldl9hbGxvY19za2IoY2FyZC0+ZGV2LAogCQkJCQkgICAgICAgUUVUSF9SWF9QVUxM X0xFTiArIEVUSF9ITEVOKTsKIAkJaWYgKCFidWYtPnJ4X3NrYikKLQkJCXJldHVybiAxOworCQkJ cmV0dXJuIC1FTk9NRU07CiAJfQogCiAJcG9vbF9lbnRyeSA9IHFldGhfZmluZF9mcmVlX2J1ZmZl cl9wb29sX2VudHJ5KGNhcmQpOwogCWlmICghcG9vbF9lbnRyeSkKLQkJcmV0dXJuIDE7CisJCXJl dHVybiAtRU5PQlVGUzsKIAogCS8qCiAJICogc2luY2UgdGhlIGJ1ZmZlciBpcyBhY2Nlc3NlZCBv bmx5IGZyb20gdGhlIGlucHV0X3Rhc2tsZXQKQEAgLTI2ODIsMTAgKzI2ODIsMTUgQEAgaW50IHFl dGhfaW5pdF9xZGlvX3F1ZXVlcyhzdHJ1Y3QgcWV0aF9jYXJkICpjYXJkKQogCS8qIGluYm91bmQg cXVldWUgKi8KIAlxZGlvX3Jlc2V0X2J1ZmZlcnMoY2FyZC0+cWRpby5pbl9xLT5xZGlvX2J1ZnMs IFFESU9fTUFYX0JVRkZFUlNfUEVSX1EpOwogCW1lbXNldCgmY2FyZC0+cngsIDAsIHNpemVvZihz dHJ1Y3QgcWV0aF9yeCkpOworCiAJcWV0aF9pbml0aWFsaXplX3dvcmtpbmdfcG9vbF9saXN0KGNh cmQpOwogCS8qZ2l2ZSBvbmx5IGFzIG1hbnkgYnVmZmVycyB0byBoYXJkd2FyZSBhcyB3ZSBoYXZl IGJ1ZmZlciBwb29sIGVudHJpZXMqLwotCWZvciAoaSA9IDA7IGkgPCBjYXJkLT5xZGlvLmluX2J1 Zl9wb29sLmJ1Zl9jb3VudCAtIDE7ICsraSkKLQkJcWV0aF9pbml0X2lucHV0X2J1ZmZlcihjYXJk LCAmY2FyZC0+cWRpby5pbl9xLT5idWZzW2ldKTsKKwlmb3IgKGkgPSAwOyBpIDwgY2FyZC0+cWRp by5pbl9idWZfcG9vbC5idWZfY291bnQgLSAxOyBpKyspIHsKKwkJcmMgPSBxZXRoX2luaXRfaW5w dXRfYnVmZmVyKGNhcmQsICZjYXJkLT5xZGlvLmluX3EtPmJ1ZnNbaV0pOworCQlpZiAocmMpCisJ CQlyZXR1cm4gcmM7CisJfQorCiAJY2FyZC0+cWRpby5pbl9xLT5uZXh0X2J1Zl90b19pbml0ID0K IAkJY2FyZC0+cWRpby5pbl9idWZfcG9vbC5idWZfY291bnQgLSAxOwogCXJjID0gZG9fUURJTyhD QVJEX0RERVYoY2FyZCksIFFESU9fRkxBR19TWU5DX0lOUFVULCAwLCAwLAotLSAKMi4yMC4xCgoK RnJvbSAwMDczZDgyODNlNzQ4YmIwNDAzMjVkNTJiYmM1MzJkNWI3NWVhNWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+CkRhdGU6IFdl ZCwgMTEgTWFyIDIwMjAgMTY6MjQ6MjQgKzAxMDAKU3ViamVjdDogW1BBVENIIDY1LzY2XSBuZXQ6 IGRzYTogRG9uJ3QgaW5zdGFudGlhdGUgcGh5bGluayBmb3IgQ1BVL0RTQSBwb3J0cwogdW5sZXNz IG5lZWRlZAoKWyBVcHN0cmVhbSBjb21taXQgYTIwZjk5NzAxMGM0ZWM3NmVhYTU1YjhjYzA0N2Q3 NmRjYWM2OWY3MCBdCgpCeSBkZWZhdWx0LCBEU0EgZHJpdmVycyBzaG91bGQgY29uZmlndXJlIENQ VSBhbmQgRFNBIHBvcnRzIHRvIHRoZWlyCm1heGltdW0gc3BlZWQuIEluIG1hbnkgY29uZmlndXJh dGlvbnMgdGhpcyBpcyBzdWZmaWNpZW50IHRvIG1ha2UgdGhlCmxpbmsgd29yay4KCkluIHNvbWUg Y2FzZXMgaXQgaXMgbmVjZXNzYXJ5IHRvIGNvbmZpZ3VyZSB0aGUgbGluayB0byBydW4gc2xvd2Vy LAplLmcuIGJlY2F1c2Ugb2YgbGltaXRhdGlvbnMgb2YgdGhlIFNvQyBpdCBpcyBjb25uZWN0ZWQg dG8uIE9yIGJhY2sgdG8KYmFjayBQSFlzIGFyZSB1c2VkIGFuZCB0aGUgUEhZIG5lZWRzIHRvIGJl IGRyaXZlbiBpbiBvcmRlciB0bwplc3RhYmxpc2ggbGluay4gSW4gdGhpcyBjYXNlLCBwaHlsaW5r IGlzIHVzZWQuCgpPbmx5IGluc3RhbnRpYXRlIHBoeWxpbmsgaWYgaXQgaXMgcmVxdWlyZWQuIElm IHRoZXJlIGlzIG5vIFBIWSwgb3Igbm8KZml4ZWQgbGluayBwcm9wZXJ0aWVzLCBwaHlsaW5rIGNh biB1cHNldCBhIGxpbmsgd2hpY2ggd29ya3MgaW4gdGhlCmRlZmF1bHQgY29uZmlndXJhdGlvbi4K CkZpeGVzOiAwZTI3OTIxODE2YWQgKCJuZXQ6IGRzYTogVXNlIFBIWUxJTksgZm9yIHRoZSBDUFUv RFNBIHBvcnRzIikKU2lnbmVkLW9mZi1ieTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpT aWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQog bmV0L2RzYS9wb3J0LmMgfCAxMiArKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2RzYS9wb3J0LmMgYi9u ZXQvZHNhL3BvcnQuYwppbmRleCBhMjY3NTZkMWRkMzkuLmYxOTBiMTI5MjYwZSAxMDA2NDQKLS0t IGEvbmV0L2RzYS9wb3J0LmMKKysrIGIvbmV0L2RzYS9wb3J0LmMKQEAgLTY1Myw5ICs2NTMsMTQg QEAgc3RhdGljIGludCBkc2FfcG9ydF9waHlsaW5rX3JlZ2lzdGVyKHN0cnVjdCBkc2FfcG9ydCAq ZHApCiBpbnQgZHNhX3BvcnRfbGlua19yZWdpc3Rlcl9vZihzdHJ1Y3QgZHNhX3BvcnQgKmRwKQog ewogCXN0cnVjdCBkc2Ffc3dpdGNoICpkcyA9IGRwLT5kczsKKwlzdHJ1Y3QgZGV2aWNlX25vZGUg KnBoeV9ucDsKIAotCWlmICghZHMtPm9wcy0+YWRqdXN0X2xpbmspCi0JCXJldHVybiBkc2FfcG9y dF9waHlsaW5rX3JlZ2lzdGVyKGRwKTsKKwlpZiAoIWRzLT5vcHMtPmFkanVzdF9saW5rKSB7CisJ CXBoeV9ucCA9IG9mX3BhcnNlX3BoYW5kbGUoZHAtPmRuLCAicGh5LWhhbmRsZSIsIDApOworCQlp ZiAob2ZfcGh5X2lzX2ZpeGVkX2xpbmsoZHAtPmRuKSB8fCBwaHlfbnApCisJCQlyZXR1cm4gZHNh X3BvcnRfcGh5bGlua19yZWdpc3RlcihkcCk7CisJCXJldHVybiAwOworCX0KIAogCWRldl93YXJu KGRzLT5kZXYsCiAJCSAiVXNpbmcgbGVnYWN5IFBIWUxJQiBjYWxsYmFja3MuIFBsZWFzZSBtaWdy YXRlIHRvIFBIWUxJTkshXG4iKTsKQEAgLTY3MCwxMSArNjc1LDEyIEBAIHZvaWQgZHNhX3BvcnRf bGlua191bnJlZ2lzdGVyX29mKHN0cnVjdCBkc2FfcG9ydCAqZHApCiB7CiAJc3RydWN0IGRzYV9z d2l0Y2ggKmRzID0gZHAtPmRzOwogCi0JaWYgKCFkcy0+b3BzLT5hZGp1c3RfbGluaykgeworCWlm ICghZHMtPm9wcy0+YWRqdXN0X2xpbmsgJiYgZHAtPnBsKSB7CiAJCXJ0bmxfbG9jaygpOwogCQlw aHlsaW5rX2Rpc2Nvbm5lY3RfcGh5KGRwLT5wbCk7CiAJCXJ0bmxfdW5sb2NrKCk7CiAJCXBoeWxp bmtfZGVzdHJveShkcC0+cGwpOworCQlkcC0+cGwgPSBOVUxMOwogCQlyZXR1cm47CiAJfQogCi0t IAoyLjIwLjEKCgpGcm9tIGNiMGEwMjVlZGRjNzhiMDlhZmViODRmZThhNzQ4OWViNTNhODY4NzIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5j aD4KRGF0ZTogV2VkLCAxMSBNYXIgMjAyMCAyMTowMjozMSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg NjYvNjZdIG5ldDogZHNhOiBtdjg4ZTZ4eHg6IEFkZCBtaXNzaW5nIG1hc2sgb2YgQVRVIG9jY3Vw YW5jeQogcmVnaXN0ZXIKClsgVXBzdHJlYW0gY29tbWl0IDAxMmZjNzQ1MTdiMjUxNzdkZmVkZTJl ZDQ1Y2QxMDgyNTg1NjRlNGEgXQoKT25seSB0aGUgYm90dG9tIDEyIGJpdHMgY29udGFpbiB0aGUg QVRVIGJpbiBvY2N1cGFuY3kgc3RhdGlzdGljcy4gVGhlCnVwcGVyIGJpdHMgbmVlZCBtYXNraW5n IG9mZi4KCkZpeGVzOiBlMGM2OWNhN2RmYmIgKCJuZXQ6IGRzYTogbXY4OGU2eHh4OiBBZGQgQVRV IG9jY3VwYW5jeSB2aWEgZGV2bGluayByZXNvdXJjZXMiKQpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg THVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8 IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgv Y2hpcC5jCmluZGV4IDNiZDk4ODUyOTE3OC4uNWY4OGVmZmViMTdhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYworKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2 eHh4L2NoaXAuYwpAQCAtMjc2Miw2ICsyNzYyLDggQEAgc3RhdGljIHU2NCBtdjg4ZTZ4eHhfZGV2 bGlua19hdHVfYmluX2dldChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsCiAJCWdvdG8gdW5s b2NrOwogCX0KIAorCW9jY3VwYW5jeSAmPSBNVjg4RTZYWFhfRzJfQVRVX1NUQVRTX01BU0s7CisK IHVubG9jazoKIAltdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTsKIAotLSAKMi4yMC4xCgo= ----Next_Part(Fri_Mar_13_21_52_04_2020_791)----