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=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 49F3DC6377A for ; Thu, 22 Jul 2021 00:50:34 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 987EF61248 for ; Thu, 22 Jul 2021 00:50:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 987EF61248 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=schaufler-ca.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=linux-audit-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-419-4FlrOW6sNjq2c5nIR9ry5Q-1; Wed, 21 Jul 2021 20:50:31 -0400 X-MC-Unique: 4FlrOW6sNjq2c5nIR9ry5Q-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C54C2802690; Thu, 22 Jul 2021 00:50:27 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A04615C1D1; Thu, 22 Jul 2021 00:50:27 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 6ECAA1801028; Thu, 22 Jul 2021 00:50:27 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 16M0oPSI006764 for ; Wed, 21 Jul 2021 20:50:25 -0400 Received: by smtp.corp.redhat.com (Postfix) id 419A72044029; Thu, 22 Jul 2021 00:50:25 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3CBAF2044027 for ; Thu, 22 Jul 2021 00:50:22 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 08C7D80D09B for ; Thu, 22 Jul 2021 00:50:22 +0000 (UTC) Received: from sonic314-27.consmr.mail.ne1.yahoo.com (sonic314-27.consmr.mail.ne1.yahoo.com [66.163.189.153]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-556-9NspxvF5N2aUYPLYpHhjIg-1; Wed, 21 Jul 2021 20:50:19 -0400 X-MC-Unique: 9NspxvF5N2aUYPLYpHhjIg-1 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1626915018; bh=sAOMe9wM+1+bMpOS8BTKfHwYYeocLZjm50CvDPK8mFc=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=awXbOygnF5DLfw687KPjWsWg1742/MCklBQG7wwtHxsA3xV7yD7zjEqkTT4/RnERejHZ1PBnJftoqCgnki4jhPoOyKism7WwmS7eTqqMtlQQH3zxnA5PR0UnPAK7j0WohZ0Odc2vB2ar2cZk56iZZthsVWLkp1rOKi0YPJ0WK8Ja+jFR5Kod9983De4v1eJ44AYusrYa3/MB9mlSZEnL7qDVMawFoypL/Rbgvn3J3mM12Sqi5T4hZODoPYsiy1NFu2G+QeyvcpRl1rlGK4Nlq0HbmLHF+fiB0n3cPEc8UF02DGWlTLqMe+U7d2RglS9/8WlWc8kWY3Qg5+omC17PQg== X-YMail-OSG: IwDiT3wVM1lvPpAf4unBswV2HAB.Q7hdzmqVeE9S_LGQ3dxXe6vsocxegc3Wita QiJuUnYpUrvACyp80u3mzCZFX2hKGxoGrW1J6Hc8wAyaUDpqvuhXwhOck4XG1e3Gt6BZHEBmQ4hR vX07lzcCoA79obn5ibjVhMQ6QALoyQ4PWRsVAgR6tKotdqUWd9BAbTYhO4pdXZIW2zzapdO2hHkp fPTN4Al_XgD5ufEvBiqnXpOqKwYjGmLR0yOFuu_O_kDiWjOqA4RBxGU9n1dw5skDq9eph7fs_ZBk pGQohyhKfdQFO420NcFcgU1UsFwl3pTmAptVVSJU0woGI5D8D5MuehgUMhPwRlt4GpdcyIn622MG A1PQFIcfTuj7qWDPOJRnDGFW8jZoiuh__EPDKZDCcMyjMgzjGi1ns0KmuGorPeFVq1y2R.grkmy4 DKpAsrokPrPeMKcTixQsti7tevpJg9An_LpMJKPQ0AnilthEpTaedsEP2NTByVu1jE.AEhNfq4sV BxOMB8HHTSHKq9ORscjUu_hG7abo317sXe3f6y1G70KGF5EBUQMP0aGtZRmz7FKhD5VGXqmk4_ia LqOadHg3fvn1xCuLf4Rc4qoli575Yn9gnRSLpaIPVvz7tt.9x.yWgImNvg0UqAiu6HRCpIlYwyjR qP5n0li2PRVdHzLkCY59WN9qMw4uyat5Ms0nSHXOkQnm9Z8gNTalISn57jL62EFKdhbMd4gZd5IL HgAkN_aT01nIsmb4LwrHmaSgBiYjH_zEsM2LojRfTSQDcLXlncR_Qqu70PLQaJ8awjPVNL5SjZvy aDmN6ryXom5QniMZ5vSNk3zlyCy1bLKHiCWXo9v0go9w0D3hx2CqQ6Y3MjjOLn8oJdT6QnMRwrVV E56tLuicBhqFXPcc7fL1OhNDULROiSK9qdf4Nk2Xedo2Eju8mUZtAUkji6nIf3DRAJsKMt8pXrG4 e9d3FqHHGNJnXHFRIepV4PcBsnsYh95Uhl2a58A5pBggyakYVzPOe0w32X93qco1UN9lkxvDr9kx 4yhPRwZChSecmfERmkr5WNVFHsyrBxPKpFf8luJoBMZZe29rjoc0I_.F.DVX.ZHM.sZcPggWKxly icsWxOuTuZNs8ykjF6meP_yoQcZNRm2E2uoXFT8kuYJuM.b4ZrqoOY4V1P6Y3dXUftzEPVVSecO7 7kH095UEevbjtKBO7rpmVeKYG2ZZwC1D.io5OQR1fnMO0GHSBNANPfHOXTtYhWlLWO4GX5WPf.Ek ZeyjeP._fNVAmQYWiWhg2PzCdj3ntbLWP7smu8Ou2VV8vlfATn1T0D8XhW.YUr2M6p.sylOA4L9i 9s6UUZqCyqxOr9dCU332FIfpwixKVmLj5VambI77auvLrRHaOQOMQnU0NNqb32E8uw53S56bizW2 ZTAixyIdZYU0w5g2zjHEdLyq.y1u46CMYdRIt0UMCDs7PKFmzHsrLpQb40y8GvW8RrS5g7gdrSxy NK2_Duw98tScjPZNT0CHJcork5oJNYsOSMDXkueUY_ABXLFYgUQ5FjFSA8qFOHoP2RPk84uzphEm 004whjh4YM3R5e0qru3TkwDpw2Ajnfa_DT1jZYujSduFm3Bsfauk6_6tq39uSuraqQ8iIfvv5zY0 m8wZVcRkc09V_vRu5jeAZUPRtPx3W4oSMJ9oT3cjJ2L_TBf7OObZ7Zasr7HJWbLjRYLbi1juDQgV aUaDoWP.2UV6jGUDO_8cYxdQKYE7uWUiDCX8vDfbNgpip9rX6lLcnmpbBsHbtusMr2qzWnzl_270 wFMZfLzUQEFF4zK8CKwiNtF2y87EJV14k_mNgOyfBJ5t.TM6J9CLmJ4IpEK01mKIoqz3qG3oM3fL oXaxL7Y_eG10qAZc7at9cvYEsKVj1KGdxLSGPLikqbevD0JNdFeYQuz09XsqN_bWiniklcJYR4Tb HUPL9totlejy4hByFGdAatmJ20FgpcBXwBHaTway2SaPLJ5I5Btexz3sJZ8orLcunzomkjew3de0 MstYSELc8emXrfq45Thq.a1oe2HDhlXL7n1rSiPJ3DRzt6zlIJDVFz8NvTLNbiWx2qnRLp79w0TF Kr_hnzA6R56ibBeSWL_Yty85Z1demnd5cL9IR86pMdJNULL1O_QpMV1c7AZ9lVkQsLgTRML2_BOf 8HKAyExa3Zx6ZUOjAo6r6NvIUutQg3ETFsOVWbnfSGBDeWf9CbeV0qKLkFwgb.R23OIOwyUVOJOk Zifc4mdcp0q3rSvG7Z8kRNz1X1PoTAxQ2pebiX2ogSwJbWbnESlFJPmmK2niM3Elx5Xtxco.RTci O72mZnBGJ_9ZpV.fZGzadSzP7t2UYaV0aiHZc1iJ0k.5STGFKRYBu35yD9XyHxzppIPZ5l4pwmsg L2gJ6_EFIDWmRjMmcr9FUgfm_ni3afwnzn7794H9izghSczZ9zdJEXndNxg47gCA4E2NNOb2VgFM vzm8ruh0NHZMbcDi3m1mQl0FjGm_fNgDIEdIlux8oamXqH7EynZsvDMoUNMCj9ChyhL0KFvUN3_g epjSQ9EYByWdkXvm5_I3Ga8A3SWRqDldjottRfaWhFO58N0SwBh.WVGD_mUJcs.nLXa2XHvhHzL5 NM7TAruTJ5u2HyTBb26013EyCrS653cUiR.toTcgkFbON7WmbEkg31PI.VF.bX0WsPv_wnZbiJUc BvvMUyAOUdowebtkAfY6MLQCJ5.C81W1bG7Ty4AWTnvqih1.KOuOnK.DBoBP4vYvmAxIog0pXLq_ PzIZFgFFZYohaBMW_tgESsbhtYdy_X4TzaSqp6Yz_oCR2Uyhu5ODZiDkwUVESNVwYfBnU20dTMKX eS5Wi1b12L5CFjHms8QS9Mc4Y6w2GR.Un7QILptXvqht7ZrTyrIHB2XWMY3uYXwU.Zv7yuTQ_.1b 98p2izaxHo3Dy1nGMeLYNI1D4apWmLcDctRBDUlLWeERdHoUQRq23vGvT64xOhxpynN6HCrausVG Csgmju2128pZbgxFjqMp8KfcdsO2xhgnBIN6gq3P1bLzbnRw.6DF.ykJgrG7ayrSHh1aB4gdMq1S UecakbMTvi8rwxsbWeUo0RQ.6TLqyk.wMuo_1uv0ESmPqdJies64Aj3lPWOgeHXdp2nw97DV0SLV R1uwGlLS7Xi7vQDtrkdA5 X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ne1.yahoo.com with HTTP; Thu, 22 Jul 2021 00:50:18 +0000 Received: by kubenode545.mail-prod1.omega.ne1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 7c89054946e55b73688614d07a236aa6; Thu, 22 Jul 2021 00:50:14 +0000 (UTC) From: Casey Schaufler To: casey.schaufler@intel.com, jmorris@namei.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org Subject: [PATCH v28 02/25] LSM: Add the lsmblob data structure. Date: Wed, 21 Jul 2021 17:47:35 -0700 Message-Id: <20210722004758.12371-3-casey@schaufler-ca.com> In-Reply-To: <20210722004758.12371-1-casey@schaufler-ca.com> References: <20210722004758.12371-1-casey@schaufler-ca.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: linux-audit@redhat.com Cc: john.johansen@canonical.com, linux-kernel@vger.kernel.org, linux-audit@redhat.com, bpf@vger.kernel.org, sds@tycho.nsa.gov X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=linux-audit-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 V2hlbiBtb3JlIHRoYW4gb25lIHNlY3VyaXR5IG1vZHVsZSBpcyBleHBvcnRpbmcgZGF0YSB0bwph dWRpdCBhbmQgbmV0d29ya2luZyBzdWItc3lzdGVtcyBhIHNpbmdsZSAzMiBiaXQgaW50ZWdlcgpp cyBubyBsb25nZXIgc3VmZmljaWVudCB0byByZXByZXNlbnQgdGhlIGRhdGEuIEFkZCBhCnN0cnVj dHVyZSB0byBiZSB1c2VkIGluc3RlYWQuCgpUaGUgbHNtYmxvYiBzdHJ1Y3R1cmUgaXMgY3VycmVu dGx5IGFuIGFycmF5IG9mCnUzMiAic2VjaWRzIi4gVGhlcmUgaXMgYW4gZW50cnkgZm9yIGVhY2gg b2YgdGhlCnNlY3VyaXR5IG1vZHVsZXMgYnVpbHQgaW50byB0aGUgc3lzdGVtIHRoYXQgd291bGQK dXNlIHNlY2lkcyBpZiBhY3RpdmUuIFRoZSBzeXN0ZW0gYXNzaWducyB0aGUgbW9kdWxlCmEgInNs b3QiIHdoZW4gaXQgcmVnaXN0ZXJzIGhvb2tzLiBJZiBtb2R1bGVzIGFyZQpjb21waWxlZCBpbiBi dXQgbm90IHJlZ2lzdGVyZWQgdGhlcmUgd2lsbCBiZSB1bnVzZWQKc2xvdHMuCgpBIG5ldyBsc21f aWQgc3RydWN0dXJlLCB3aGljaCBjb250YWlucyB0aGUgbmFtZQpvZiB0aGUgTFNNIGFuZCBpdHMg c2xvdCBudW1iZXIsIGlzIGNyZWF0ZWQuIFRoZXJlCmlzIGFuIGluc3RhbmNlIGZvciBlYWNoIExT TSwgd2hpY2ggYXNzaWducyB0aGUgbmFtZQphbmQgcGFzc2VzIGl0IHRvIHRoZSBpbmZyYXN0cnVj dHVyZSB0byBzZXQgdGhlIHNsb3QuCgpUaGUgYXVkaXQgcnVsZXMgZGF0YSBpcyBleHBhbmRlZCB0 byB1c2UgYW4gYXJyYXkgb2YKc2VjdXJpdHkgbW9kdWxlIGRhdGEgcmF0aGVyIHRoYW4gYSBzaW5n bGUgaW5zdGFuY2UuCkJlY2F1c2UgSU1BIHVzZXMgdGhlIGF1ZGl0IHJ1bGUgZnVuY3Rpb25zIGl0 IGlzCmFmZmVjdGVkIGFzIHdlbGwuCgpBY2tlZC1ieTogU3RlcGhlbiBTbWFsbGV5IDxzZHNAdHlj aG8ubnNhLmdvdj4KQWNrZWQtYnk6IFBhdWwgTW9vcmUgPHBhdWxAcGF1bC1tb29yZS5jb20+CkFj a2VkLWJ5OiBKb2huIEpvaGFuc2VuIDxqb2huLmpvaGFuc2VuQGNhbm9uaWNhbC5jb20+ClNpZ25l ZC1vZmYtYnk6IENhc2V5IFNjaGF1ZmxlciA8Y2FzZXlAc2NoYXVmbGVyLWNhLmNvbT4KQ2M6IDxi cGZAdmdlci5rZXJuZWwub3JnPgpDYzogbGludXgtYXVkaXRAcmVkaGF0LmNvbQpDYzogbGludXgt c2VjdXJpdHktbW9kdWxlQHZnZXIua2VybmVsLm9yZwpDYzogc2VsaW51eEB2Z2VyLmtlcm5lbC5v cmcKVG86IE1pbWkgWm9oYXIgPHpvaGFyQGxpbnV4LmlibS5jb20+ClRvOiBNaWNrYcOrbCBTYWxh w7xuIDxtaWNAbGludXgubWljcm9zb2Z0LmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L2F1ZGl0Lmgg ICAgICAgICAgICAgICB8ICA0ICstCiBpbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oICAgICAgICAg ICB8IDEyICsrKystCiBpbmNsdWRlL2xpbnV4L3NlY3VyaXR5LmggICAgICAgICAgICB8IDY3ICsr KysrKysrKysrKysrKysrKysrKysrKy0tCiBrZXJuZWwvYXVkaXRmaWx0ZXIuYyAgICAgICAgICAg ICAgICB8IDI0ICsrKysrLS0tLS0KIGtlcm5lbC9hdWRpdHNjLmMgICAgICAgICAgICAgICAgICAg IHwgMTMgKysrLS0KIHNlY3VyaXR5L2FwcGFybW9yL2xzbS5jICAgICAgICAgICAgIHwgIDcgKyst CiBzZWN1cml0eS9icGYvaG9va3MuYyAgICAgICAgICAgICAgICB8IDEyICsrKystCiBzZWN1cml0 eS9jb21tb25jYXAuYyAgICAgICAgICAgICAgICB8ICA3ICsrLQogc2VjdXJpdHkvaW50ZWdyaXR5 L2ltYS9pbWFfcG9saWN5LmMgfCA0MCArKysrKysrKysrKy0tLS0tCiBzZWN1cml0eS9sYW5kbG9j ay9jcmVkLmMgICAgICAgICAgICB8ICAyICstCiBzZWN1cml0eS9sYW5kbG9jay9mcy5jICAgICAg ICAgICAgICB8ICAyICstCiBzZWN1cml0eS9sYW5kbG9jay9wdHJhY2UuYyAgICAgICAgICB8ICAy ICstCiBzZWN1cml0eS9sYW5kbG9jay9zZXR1cC5jICAgICAgICAgICB8ICA1ICsrCiBzZWN1cml0 eS9sYW5kbG9jay9zZXR1cC5oICAgICAgICAgICB8ICAxICsKIHNlY3VyaXR5L2xvYWRwaW4vbG9h ZHBpbi5jICAgICAgICAgIHwgIDggKysrLQogc2VjdXJpdHkvbG9ja2Rvd24vbG9ja2Rvd24uYyAg ICAgICAgfCAgNyArKy0KIHNlY3VyaXR5L3NhZmVzZXRpZC9sc20uYyAgICAgICAgICAgIHwgIDgg KysrLQogc2VjdXJpdHkvc2VjdXJpdHkuYyAgICAgICAgICAgICAgICAgfCA3NCArKysrKysrKysr KysrKysrKysrKysrKystLS0tLQogc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jICAgICAgICAgICAg fCAgOCArKystCiBzZWN1cml0eS9zbWFjay9zbWFja19sc20uYyAgICAgICAgICB8ICA3ICsrLQog c2VjdXJpdHkvdG9tb3lvL3RvbW95by5jICAgICAgICAgICAgfCAgOCArKystCiBzZWN1cml0eS95 YW1hL3lhbWFfbHNtLmMgICAgICAgICAgICB8ICA3ICsrLQogMjIgZmlsZXMgY2hhbmdlZCwgMjY1 IGluc2VydGlvbnMoKyksIDYwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvYXVkaXQuaCBiL2luY2x1ZGUvbGludXgvYXVkaXQuaAppbmRleCA4MmI3YzExMTZhODUuLjQx OGE0ODVhZjExNCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9hdWRpdC5oCisrKyBiL2luY2x1 ZGUvbGludXgvYXVkaXQuaApAQCAtMTEsNiArMTEsNyBAQAogCiAjaW5jbHVkZSA8bGludXgvc2No ZWQuaD4KICNpbmNsdWRlIDxsaW51eC9wdHJhY2UuaD4KKyNpbmNsdWRlIDxsaW51eC9zZWN1cml0 eS5oPgogI2luY2x1ZGUgPHVhcGkvbGludXgvYXVkaXQuaD4KICNpbmNsdWRlIDx1YXBpL2xpbnV4 L25ldGZpbHRlci9uZl90YWJsZXMuaD4KIApAQCAtNjUsOCArNjYsOSBAQCBzdHJ1Y3QgYXVkaXRf ZmllbGQgewogCQlrdWlkX3QJCQl1aWQ7CiAJCWtnaWRfdAkJCWdpZDsKIAkJc3RydWN0IHsKKwkJ CWJvb2wJCWxzbV9pc3NldDsKIAkJCWNoYXIJCSpsc21fc3RyOwotCQkJdm9pZAkJKmxzbV9ydWxl OworCQkJdm9pZAkJKmxzbV9ydWxlc1tMU01CTE9CX0VOVFJJRVNdOwogCQl9OwogCX07CiAJdTMy CQkJCW9wOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9sc21faG9va3MuaCBiL2luY2x1ZGUv bGludXgvbHNtX2hvb2tzLmgKaW5kZXggYWZkM2IxNjg3NWIwLi5jNjFhMTZmMGE1YmMgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvbHNtX2hvb2tzLmgKKysrIGIvaW5jbHVkZS9saW51eC9sc21f aG9va3MuaApAQCAtMTU3MCw2ICsxNTcwLDE0IEBAIHN0cnVjdCBzZWN1cml0eV9ob29rX2hlYWRz IHsKIAkjdW5kZWYgTFNNX0hPT0sKIH0gX19yYW5kb21pemVfbGF5b3V0OwogCisvKgorICogSW5m b3JtYXRpb24gdGhhdCBpZGVudGlmaWVzIGEgc2VjdXJpdHkgbW9kdWxlLgorICovCitzdHJ1Y3Qg bHNtX2lkIHsKKwljb25zdCBjaGFyCSpsc207CS8qIE5hbWUgb2YgdGhlIExTTSAqLworCWludAkJ c2xvdDsJLyogU2xvdCBpbiBsc21ibG9iIGlmIG9uZSBpcyBhbGxvY2F0ZWQgKi8KK307CisKIC8q CiAgKiBTZWN1cml0eSBtb2R1bGUgaG9vayBsaXN0IHN0cnVjdHVyZS4KICAqIEZvciB1c2Ugd2l0 aCBnZW5lcmljIGxpc3QgbWFjcm9zIGZvciBjb21tb24gb3BlcmF0aW9ucy4KQEAgLTE1NzgsNyAr MTU4Niw3IEBAIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgewogCXN0cnVjdCBobGlzdF9ub2Rl CQlsaXN0OwogCXN0cnVjdCBobGlzdF9oZWFkCQkqaGVhZDsKIAl1bmlvbiBzZWN1cml0eV9saXN0 X29wdGlvbnMJaG9vazsKLQljaGFyCQkJCSpsc207CisJc3RydWN0IGxzbV9pZAkJCSpsc21pZDsK IH0gX19yYW5kb21pemVfbGF5b3V0OwogCiAvKgpAQCAtMTYxNCw3ICsxNjIyLDcgQEAgZXh0ZXJu IHN0cnVjdCBzZWN1cml0eV9ob29rX2hlYWRzIHNlY3VyaXR5X2hvb2tfaGVhZHM7CiBleHRlcm4g Y2hhciAqbHNtX25hbWVzOwogCiBleHRlcm4gdm9pZCBzZWN1cml0eV9hZGRfaG9va3Moc3RydWN0 IHNlY3VyaXR5X2hvb2tfbGlzdCAqaG9va3MsIGludCBjb3VudCwKLQkJCQljaGFyICpsc20pOwor CQkJICAgICAgIHN0cnVjdCBsc21faWQgKmxzbWlkKTsKIAogI2RlZmluZSBMU01fRkxBR19MRUdB Q1lfTUFKT1IJQklUKDApCiAjZGVmaW5lIExTTV9GTEFHX0VYQ0xVU0lWRQlCSVQoMSkKZGlmZiAt LWdpdCBhL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaCBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHku aAppbmRleCAyNGVkYTA0MjIxZTkuLjc2NTViZmNlNGI5NiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9zZWN1cml0eS5oCisrKyBiL2luY2x1ZGUvbGludXgvc2VjdXJpdHkuaApAQCAtMTMzLDYg KzEzMyw2NSBAQCBlbnVtIGxvY2tkb3duX3JlYXNvbiB7CiAKIGV4dGVybiBjb25zdCBjaGFyICpj b25zdCBsb2NrZG93bl9yZWFzb25zW0xPQ0tET1dOX0NPTkZJREVOVElBTElUWV9NQVgrMV07CiAK Ky8qCisgKiBEYXRhIGV4cG9ydGVkIGJ5IHRoZSBzZWN1cml0eSBtb2R1bGVzCisgKgorICogQW55 IExTTSB0aGF0IHByb3ZpZGVzIHNlY2lkIG9yIHNlY2N0eCBiYXNlZCBob29rcyBtdXN0IGJlIGlu Y2x1ZGVkLgorICovCisjZGVmaW5lIExTTUJMT0JfRU5UUklFUyAoIFwKKwkoSVNfRU5BQkxFRChD T05GSUdfU0VDVVJJVFlfU0VMSU5VWCkgPyAxIDogMCkgKyBcCisJKElTX0VOQUJMRUQoQ09ORklH X1NFQ1VSSVRZX1NNQUNLKSA/IDEgOiAwKSArIFwKKwkoSVNfRU5BQkxFRChDT05GSUdfU0VDVVJJ VFlfQVBQQVJNT1IpID8gMSA6IDApICsgXAorCShJU19FTkFCTEVEKENPTkZJR19CUEZfTFNNKSA/ IDEgOiAwKSkKKworc3RydWN0IGxzbWJsb2IgeworCXUzMiAgICAgc2VjaWRbTFNNQkxPQl9FTlRS SUVTXTsKK307CisKKyNkZWZpbmUgTFNNQkxPQl9JTlZBTElECQktMQkvKiBOb3QgYSB2YWxpZCBM U00gc2xvdCBudW1iZXIgKi8KKyNkZWZpbmUgTFNNQkxPQl9ORUVERUQJCS0yCS8qIFNsb3QgcmVx dWVzdGVkIG9uIGluaXRpYWxpemF0aW9uICovCisjZGVmaW5lIExTTUJMT0JfTk9UX05FRURFRAkt MwkvKiBTbG90IG5vdCByZXF1ZXN0ZWQgKi8KKworLyoqCisgKiBsc21ibG9iX2luaXQgLSBpbml0 aWFsaXplIGFuIGxzbWJsb2Igc3RydWN0dXJlCisgKiBAYmxvYjogUG9pbnRlciB0byB0aGUgZGF0 YSB0byBpbml0aWFsaXplCisgKiBAc2VjaWQ6IFRoZSBpbml0aWFsIHNlY2lkIHZhbHVlCisgKgor ICogU2V0IGFsbCBzZWNpZCBmb3IgYWxsIG1vZHVsZXMgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZS4K KyAqLworc3RhdGljIGlubGluZSB2b2lkIGxzbWJsb2JfaW5pdChzdHJ1Y3QgbHNtYmxvYiAqYmxv YiwgdTMyIHNlY2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IExTTUJMT0JfRU5U UklFUzsgaSsrKQorCQlibG9iLT5zZWNpZFtpXSA9IHNlY2lkOworfQorCisvKioKKyAqIGxzbWJs b2JfaXNfc2V0IC0gcmVwb3J0IGlmIHRoZXJlIGlzIGFuIHZhbHVlIGluIHRoZSBsc21ibG9iCisg KiBAYmxvYjogUG9pbnRlciB0byB0aGUgZXhwb3J0ZWQgTFNNIGRhdGEKKyAqCisgKiBSZXR1cm5z IHRydWUgaWYgdGhlcmUgaXMgYSBzZWNpZCBzZXQsIGZhbHNlIG90aGVyd2lzZQorICovCitzdGF0 aWMgaW5saW5lIGJvb2wgbHNtYmxvYl9pc19zZXQoc3RydWN0IGxzbWJsb2IgKmJsb2IpCit7CisJ c3RydWN0IGxzbWJsb2IgZW1wdHkgPSB7fTsKKworCXJldHVybiAhIW1lbWNtcChibG9iLCAmZW1w dHksIHNpemVvZigqYmxvYikpOworfQorCisvKioKKyAqIGxzbWJsb2JfZXF1YWwgLSByZXBvcnQg aWYgdGhlIHR3byBsc21ibG9iJ3MgYXJlIGVxdWFsCisgKiBAYmxvYmE6IFBvaW50ZXIgdG8gb25l IExTTSBkYXRhCisgKiBAYmxvYmI6IFBvaW50ZXIgdG8gdGhlIG90aGVyIExTTSBkYXRhCisgKgor ICogUmV0dXJucyB0cnVlIGlmIGFsbCBlbnRyaWVzIGluIHRoZSB0d28gYXJlIGVxdWFsLCBmYWxz ZSBvdGhlcndpc2UKKyAqLworc3RhdGljIGlubGluZSBib29sIGxzbWJsb2JfZXF1YWwoc3RydWN0 IGxzbWJsb2IgKmJsb2JhLCBzdHJ1Y3QgbHNtYmxvYiAqYmxvYmIpCit7CisJcmV0dXJuICFtZW1j bXAoYmxvYmEsIGJsb2JiLCBzaXplb2YoKmJsb2JhKSk7Cit9CisKIC8qIFRoZXNlIGZ1bmN0aW9u cyBhcmUgaW4gc2VjdXJpdHkvY29tbW9uY2FwLmMgKi8KIGV4dGVybiBpbnQgY2FwX2NhcGFibGUo Y29uc3Qgc3RydWN0IGNyZWQgKmNyZWQsIHN0cnVjdCB1c2VyX25hbWVzcGFjZSAqbnMsCiAJCSAg ICAgICBpbnQgY2FwLCB1bnNpZ25lZCBpbnQgb3B0cyk7CkBAIC0xODgxLDggKzE5NDAsOCBAQCBz dGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9rZXlfZ2V0c2VjdXJpdHkoc3RydWN0IGtleSAqa2V5 LCBjaGFyICoqX2J1ZmZlcikKICNpZmRlZiBDT05GSUdfU0VDVVJJVFkKIGludCBzZWN1cml0eV9h dWRpdF9ydWxlX2luaXQodTMyIGZpZWxkLCB1MzIgb3AsIGNoYXIgKnJ1bGVzdHIsIHZvaWQgKips c21ydWxlKTsKIGludCBzZWN1cml0eV9hdWRpdF9ydWxlX2tub3duKHN0cnVjdCBhdWRpdF9rcnVs ZSAqa3J1bGUpOwotaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIg ZmllbGQsIHUzMiBvcCwgdm9pZCAqbHNtcnVsZSk7Ci12b2lkIHNlY3VyaXR5X2F1ZGl0X3J1bGVf ZnJlZSh2b2lkICpsc21ydWxlKTsKK2ludCBzZWN1cml0eV9hdWRpdF9ydWxlX21hdGNoKHUzMiBz ZWNpZCwgdTMyIGZpZWxkLCB1MzIgb3AsIHZvaWQgKipsc21ydWxlKTsKK3ZvaWQgc2VjdXJpdHlf YXVkaXRfcnVsZV9mcmVlKHZvaWQgKipsc21ydWxlKTsKIAogI2Vsc2UKIApAQCAtMTg5OCwxMiAr MTk1NywxMiBAQCBzdGF0aWMgaW5saW5lIGludCBzZWN1cml0eV9hdWRpdF9ydWxlX2tub3duKHN0 cnVjdCBhdWRpdF9rcnVsZSAqa3J1bGUpCiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5 X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIgZmllbGQsIHUzMiBvcCwKLQkJCQkJICAg IHZvaWQgKmxzbXJ1bGUpCisJCQkJCSAgICB2b2lkICoqbHNtcnVsZSkKIHsKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNlY3VyaXR5X2F1ZGl0X3J1bGVfZnJlZSh2b2lkICps c21ydWxlKQorc3RhdGljIGlubGluZSB2b2lkIHNlY3VyaXR5X2F1ZGl0X3J1bGVfZnJlZSh2b2lk ICoqbHNtcnVsZSkKIHsgfQogCiAjZW5kaWYgLyogQ09ORklHX1NFQ1VSSVRZICovCmRpZmYgLS1n aXQgYS9rZXJuZWwvYXVkaXRmaWx0ZXIuYyBiL2tlcm5lbC9hdWRpdGZpbHRlci5jCmluZGV4IGRi MmM2YjU5ZGZjMy4uYTIzNDBlODFjZmE3IDEwMDY0NAotLS0gYS9rZXJuZWwvYXVkaXRmaWx0ZXIu YworKysgYi9rZXJuZWwvYXVkaXRmaWx0ZXIuYwpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgdm9p ZCBhdWRpdF9mcmVlX2xzbV9maWVsZChzdHJ1Y3QgYXVkaXRfZmllbGQgKmYpCiAJY2FzZSBBVURJ VF9PQkpfTEVWX0xPVzoKIAljYXNlIEFVRElUX09CSl9MRVZfSElHSDoKIAkJa2ZyZWUoZi0+bHNt X3N0cik7Ci0JCXNlY3VyaXR5X2F1ZGl0X3J1bGVfZnJlZShmLT5sc21fcnVsZSk7CisJCXNlY3Vy aXR5X2F1ZGl0X3J1bGVfZnJlZShmLT5sc21fcnVsZXMpOwogCX0KIH0KIApAQCAtNTE5LDkgKzUx OSwxMCBAQCBzdGF0aWMgc3RydWN0IGF1ZGl0X2VudHJ5ICphdWRpdF9kYXRhX3RvX2VudHJ5KHN0 cnVjdCBhdWRpdF9ydWxlX2RhdGEgKmRhdGEsCiAJCQkJZ290byBleGl0X2ZyZWU7CiAJCQl9CiAJ CQllbnRyeS0+cnVsZS5idWZsZW4gKz0gZl92YWw7CisJCQlmLT5sc21faXNzZXQgPSB0cnVlOwog CQkJZi0+bHNtX3N0ciA9IHN0cjsKIAkJCWVyciA9IHNlY3VyaXR5X2F1ZGl0X3J1bGVfaW5pdChm LT50eXBlLCBmLT5vcCwgc3RyLAotCQkJCQkJICAgICAgICh2b2lkICoqKSZmLT5sc21fcnVsZSk7 CisJCQkJCQkgICAgICAgZi0+bHNtX3J1bGVzKTsKIAkJCS8qIEtlZXAgY3VycmVudGx5IGludmFs aWQgZmllbGRzIGFyb3VuZCBpbiBjYXNlIHRoZXkKIAkJCSAqIGJlY29tZSB2YWxpZCBhZnRlciBh IHBvbGljeSByZWxvYWQuICovCiAJCQlpZiAoZXJyID09IC1FSU5WQUwpIHsKQEAgLTc3NCw3ICs3 NzUsNyBAQCBzdGF0aWMgaW50IGF1ZGl0X2NvbXBhcmVfcnVsZShzdHJ1Y3QgYXVkaXRfa3J1bGUg KmEsIHN0cnVjdCBhdWRpdF9rcnVsZSAqYikKIAlyZXR1cm4gMDsKIH0KIAotLyogRHVwbGljYXRl IExTTSBmaWVsZCBpbmZvcm1hdGlvbi4gIFRoZSBsc21fcnVsZSBpcyBvcGFxdWUsIHNvIG11c3Qg YmUKKy8qIER1cGxpY2F0ZSBMU00gZmllbGQgaW5mb3JtYXRpb24uICBUaGUgbHNtX3J1bGVzIGlz IG9wYXF1ZSwgc28gbXVzdCBiZQogICogcmUtaW5pdGlhbGl6ZWQuICovCiBzdGF0aWMgaW5saW5l IGludCBhdWRpdF9kdXBlX2xzbV9maWVsZChzdHJ1Y3QgYXVkaXRfZmllbGQgKmRmLAogCQkJCQkg ICBzdHJ1Y3QgYXVkaXRfZmllbGQgKnNmKQpAQCAtNzg4LDkgKzc4OSw5IEBAIHN0YXRpYyBpbmxp bmUgaW50IGF1ZGl0X2R1cGVfbHNtX2ZpZWxkKHN0cnVjdCBhdWRpdF9maWVsZCAqZGYsCiAJCXJl dHVybiAtRU5PTUVNOwogCWRmLT5sc21fc3RyID0gbHNtX3N0cjsKIAotCS8qIG91ciBvd24gKHJl ZnJlc2hlZCkgY29weSBvZiBsc21fcnVsZSAqLworCS8qIG91ciBvd24gKHJlZnJlc2hlZCkgY29w eSBvZiBsc21fcnVsZXMgKi8KIAlyZXQgPSBzZWN1cml0eV9hdWRpdF9ydWxlX2luaXQoZGYtPnR5 cGUsIGRmLT5vcCwgZGYtPmxzbV9zdHIsCi0JCQkJICAgICAgICh2b2lkICoqKSZkZi0+bHNtX3J1 bGUpOworCQkJCSAgICAgICBkZi0+bHNtX3J1bGVzKTsKIAkvKiBLZWVwIGN1cnJlbnRseSBpbnZh bGlkIGZpZWxkcyBhcm91bmQgaW4gY2FzZSB0aGV5CiAJICogYmVjb21lIHZhbGlkIGFmdGVyIGEg cG9saWN5IHJlbG9hZC4gKi8KIAlpZiAocmV0ID09IC1FSU5WQUwpIHsKQEAgLTg0Miw3ICs4NDMs NyBAQCBzdHJ1Y3QgYXVkaXRfZW50cnkgKmF1ZGl0X2R1cGVfcnVsZShzdHJ1Y3QgYXVkaXRfa3J1 bGUgKm9sZCkKIAluZXctPnRyZWUgPSBvbGQtPnRyZWU7CiAJbWVtY3B5KG5ldy0+ZmllbGRzLCBv bGQtPmZpZWxkcywgc2l6ZW9mKHN0cnVjdCBhdWRpdF9maWVsZCkgKiBmY291bnQpOwogCi0JLyog ZGVlcCBjb3B5IHRoaXMgaW5mb3JtYXRpb24sIHVwZGF0aW5nIHRoZSBsc21fcnVsZSBmaWVsZHMs IGJlY2F1c2UKKwkvKiBkZWVwIGNvcHkgdGhpcyBpbmZvcm1hdGlvbiwgdXBkYXRpbmcgdGhlIGxz bV9ydWxlcyBmaWVsZHMsIGJlY2F1c2UKIAkgKiB0aGUgb3JpZ2luYWxzIHdpbGwgYWxsIGJlIGZy ZWVkIHdoZW4gdGhlIG9sZCBydWxlIGlzIGZyZWVkLiAqLwogCWZvciAoaSA9IDA7IGkgPCBmY291 bnQ7IGkrKykgewogCQlzd2l0Y2ggKG5ldy0+ZmllbGRzW2ldLnR5cGUpIHsKQEAgLTEzNTgsMTEg KzEzNTksMTIgQEAgaW50IGF1ZGl0X2ZpbHRlcihpbnQgbXNndHlwZSwgdW5zaWduZWQgaW50IGxp c3R0eXBlKQogCQkJY2FzZSBBVURJVF9TVUJKX1RZUEU6CiAJCQljYXNlIEFVRElUX1NVQkpfU0VO OgogCQkJY2FzZSBBVURJVF9TVUJKX0NMUjoKLQkJCQlpZiAoZi0+bHNtX3J1bGUpIHsKKwkJCQlp ZiAoZi0+bHNtX2lzc2V0KSB7CiAJCQkJCXNlY3VyaXR5X3Rhc2tfZ2V0c2VjaWRfc3ViaihjdXJy ZW50LAogCQkJCQkJCQkgICAgJnNpZCk7CiAJCQkJCXJlc3VsdCA9IHNlY3VyaXR5X2F1ZGl0X3J1 bGVfbWF0Y2goc2lkLAotCQkJCQkJICAgZi0+dHlwZSwgZi0+b3AsIGYtPmxzbV9ydWxlKTsKKwkJ CQkJCSAgIGYtPnR5cGUsIGYtPm9wLAorCQkJCQkJICAgZi0+bHNtX3J1bGVzKTsKIAkJCQl9CiAJ CQkJYnJlYWs7CiAJCQljYXNlIEFVRElUX0VYRToKQEAgLTEzODksNyArMTM5MSw3IEBAIGludCBh dWRpdF9maWx0ZXIoaW50IG1zZ3R5cGUsIHVuc2lnbmVkIGludCBsaXN0dHlwZSkKIAlyZXR1cm4g cmV0OwogfQogCi1zdGF0aWMgaW50IHVwZGF0ZV9sc21fcnVsZShzdHJ1Y3QgYXVkaXRfa3J1bGUg KnIpCitzdGF0aWMgaW50IHVwZGF0ZV9sc21fcnVsZXMoc3RydWN0IGF1ZGl0X2tydWxlICpyKQog ewogCXN0cnVjdCBhdWRpdF9lbnRyeSAqZW50cnkgPSBjb250YWluZXJfb2Yociwgc3RydWN0IGF1 ZGl0X2VudHJ5LCBydWxlKTsKIAlzdHJ1Y3QgYXVkaXRfZW50cnkgKm5lbnRyeTsKQEAgLTE0MjEs NyArMTQyMyw3IEBAIHN0YXRpYyBpbnQgdXBkYXRlX2xzbV9ydWxlKHN0cnVjdCBhdWRpdF9rcnVs ZSAqcikKIAlyZXR1cm4gZXJyOwogfQogCi0vKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmUtaW5pdGlh bGl6ZSB0aGUgbHNtX3J1bGUgZmllbGQgb2YgYWxsIGFwcGxpY2FibGUgcnVsZXMuCisvKiBUaGlz IGZ1bmN0aW9uIHdpbGwgcmUtaW5pdGlhbGl6ZSB0aGUgbHNtX3J1bGVzIGZpZWxkIG9mIGFsbCBh cHBsaWNhYmxlIHJ1bGVzLgogICogSXQgd2lsbCB0cmF2ZXJzZSB0aGUgZmlsdGVyIGxpc3RzIHNl cmFyY2hpbmcgZm9yIHJ1bGVzIHRoYXQgY29udGFpbiBMU00KICAqIHNwZWNpZmljIGZpbHRlciBm aWVsZHMuICBXaGVuIHN1Y2ggYSBydWxlIGlzIGZvdW5kLCBpdCBpcyBjb3BpZWQsIHRoZQogICog TFNNIGZpZWxkIGlzIHJlLWluaXRpYWxpemVkLCBhbmQgdGhlIG9sZCBydWxlIGlzIHJlcGxhY2Vk IHdpdGggdGhlCkBAIC0xNDM2LDcgKzE0MzgsNyBAQCBpbnQgYXVkaXRfdXBkYXRlX2xzbV9ydWxl cyh2b2lkKQogCiAJZm9yIChpID0gMDsgaSA8IEFVRElUX05SX0ZJTFRFUlM7IGkrKykgewogCQls aXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUociwgbiwgJmF1ZGl0X3J1bGVzX2xpc3RbaV0sIGxpc3Qp IHsKLQkJCWludCByZXMgPSB1cGRhdGVfbHNtX3J1bGUocik7CisJCQlpbnQgcmVzID0gdXBkYXRl X2xzbV9ydWxlcyhyKTsKIAkJCWlmICghZXJyKQogCQkJCWVyciA9IHJlczsKIAkJfQpkaWZmIC0t Z2l0IGEva2VybmVsL2F1ZGl0c2MuYyBiL2tlcm5lbC9hdWRpdHNjLmMKaW5kZXggOGRkNzNhNjRm OTIxLi5hY2JkODk2ZjU0YTUgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9hdWRpdHNjLmMKKysrIGIva2Vy bmVsL2F1ZGl0c2MuYwpAQCAtNjcxLDE0ICs2NzEsMTMgQEAgc3RhdGljIGludCBhdWRpdF9maWx0 ZXJfcnVsZXMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAJCQkgICBtYXRjaCBmb3Igbm93IHRv IGF2b2lkIGxvc2luZyBpbmZvcm1hdGlvbiB0aGF0CiAJCQkgICBtYXkgYmUgd2FudGVkLiAgIEFu IGVycm9yIG1lc3NhZ2Ugd2lsbCBhbHNvIGJlCiAJCQkgICBsb2dnZWQgdXBvbiBlcnJvciAqLwot CQkJaWYgKGYtPmxzbV9ydWxlKSB7CisJCQlpZiAoZi0+bHNtX2lzc2V0KSB7CiAJCQkJaWYgKG5l ZWRfc2lkKSB7CiAJCQkJCXNlY3VyaXR5X3Rhc2tfZ2V0c2VjaWRfc3Viaih0c2ssICZzaWQpOwog CQkJCQluZWVkX3NpZCA9IDA7CiAJCQkJfQogCQkJCXJlc3VsdCA9IHNlY3VyaXR5X2F1ZGl0X3J1 bGVfbWF0Y2goc2lkLCBmLT50eXBlLAotCQkJCQkJCQkgICBmLT5vcCwKLQkJCQkJCQkJICAgZi0+ bHNtX3J1bGUpOworCQkJCQkJCWYtPm9wLCBmLT5sc21fcnVsZXMpOwogCQkJfQogCQkJYnJlYWs7 CiAJCWNhc2UgQVVESVRfT0JKX1VTRVI6CkBAIC02ODgsMjEgKzY4NywyMSBAQCBzdGF0aWMgaW50 IGF1ZGl0X2ZpbHRlcl9ydWxlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAkJY2FzZSBBVURJ VF9PQkpfTEVWX0hJR0g6CiAJCQkvKiBUaGUgYWJvdmUgbm90ZSBmb3IgQVVESVRfU1VCSl9VU0VS Li4uQVVESVRfU1VCSl9DTFIKIAkJCSAgIGFsc28gYXBwbGllcyBoZXJlICovCi0JCQlpZiAoZi0+ bHNtX3J1bGUpIHsKKwkJCWlmIChmLT5sc21faXNzZXQpIHsKIAkJCQkvKiBGaW5kIGZpbGVzIHRo YXQgbWF0Y2ggKi8KIAkJCQlpZiAobmFtZSkgewogCQkJCQlyZXN1bHQgPSBzZWN1cml0eV9hdWRp dF9ydWxlX21hdGNoKAogCQkJCQkJCQluYW1lLT5vc2lkLAogCQkJCQkJCQlmLT50eXBlLAogCQkJ CQkJCQlmLT5vcCwKLQkJCQkJCQkJZi0+bHNtX3J1bGUpOworCQkJCQkJCQlmLT5sc21fcnVsZXMp OwogCQkJCX0gZWxzZSBpZiAoY3R4KSB7CiAJCQkJCWxpc3RfZm9yX2VhY2hfZW50cnkobiwgJmN0 eC0+bmFtZXNfbGlzdCwgbGlzdCkgewogCQkJCQkJaWYgKHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0 Y2goCiAJCQkJCQkJCW4tPm9zaWQsCiAJCQkJCQkJCWYtPnR5cGUsCiAJCQkJCQkJCWYtPm9wLAot CQkJCQkJCQlmLT5sc21fcnVsZSkpIHsKKwkJCQkJCQkJZi0+bHNtX3J1bGVzKSkgewogCQkJCQkJ CSsrcmVzdWx0OwogCQkJCQkJCWJyZWFrOwogCQkJCQkJfQpAQCAtNzEzLDcgKzcxMiw3IEBAIHN0 YXRpYyBpbnQgYXVkaXRfZmlsdGVyX3J1bGVzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAogCQkJ CQlicmVhazsKIAkJCQlpZiAoc2VjdXJpdHlfYXVkaXRfcnVsZV9tYXRjaChjdHgtPmlwYy5vc2lk LAogCQkJCQkJCSAgICAgIGYtPnR5cGUsIGYtPm9wLAotCQkJCQkJCSAgICAgIGYtPmxzbV9ydWxl KSkKKwkJCQkJCQkgICAgICBmLT5sc21fcnVsZXMpKQogCQkJCQkrK3Jlc3VsdDsKIAkJCX0KIAkJ CWJyZWFrOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMgYi9zZWN1cml0eS9h cHBhcm1vci9sc20uYwppbmRleCA0MTEzNTE2ZmI2MmUuLjM5MmUyNTk0MGQxZiAxMDA2NDQKLS0t IGEvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMKKysrIGIvc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMK QEAgLTExNjEsNiArMTE2MSwxMSBAQCBzdHJ1Y3QgbHNtX2Jsb2Jfc2l6ZXMgYXBwYXJtb3JfYmxv Yl9zaXplcyBfX2xzbV9yb19hZnRlcl9pbml0ID0gewogCS5sYnNfc29jayA9IHNpemVvZihzdHJ1 Y3QgYWFfc2tfY3R4KSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgbHNtX2lkIGFwcGFybW9yX2xzbWlk IF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSAgPSAiYXBwYXJtb3IiLAorCS5zbG90ID0g TFNNQkxPQl9ORUVERUQKK307CisKIHN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGFw cGFybW9yX2hvb2tzW10gX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKIAlMU01fSE9PS19JTklUKHB0 cmFjZV9hY2Nlc3NfY2hlY2ssIGFwcGFybW9yX3B0cmFjZV9hY2Nlc3NfY2hlY2spLAogCUxTTV9I T09LX0lOSVQocHRyYWNlX3RyYWNlbWUsIGFwcGFybW9yX3B0cmFjZV90cmFjZW1lKSwKQEAgLTE4 NjIsNyArMTg2Nyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGFwcGFybW9yX2luaXQodm9pZCkKIAkJ Z290byBidWZmZXJzX291dDsKIAl9CiAJc2VjdXJpdHlfYWRkX2hvb2tzKGFwcGFybW9yX2hvb2tz LCBBUlJBWV9TSVpFKGFwcGFybW9yX2hvb2tzKSwKLQkJCQkiYXBwYXJtb3IiKTsKKwkJCQkmYXBw YXJtb3JfbHNtaWQpOwogCiAJLyogUmVwb3J0IHRoYXQgQXBwQXJtb3Igc3VjY2Vzc2Z1bGx5IGlu aXRpYWxpemVkICovCiAJYXBwYXJtb3JfaW5pdGlhbGl6ZWQgPSAxOwpkaWZmIC0tZ2l0IGEvc2Vj dXJpdHkvYnBmL2hvb2tzLmMgYi9zZWN1cml0eS9icGYvaG9va3MuYwppbmRleCBlNTk3MWZhNzRm ZDcuLjdhNThmZTlhYjhjNCAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvYnBmL2hvb2tzLmMKKysrIGIv c2VjdXJpdHkvYnBmL2hvb2tzLmMKQEAgLTE1LDkgKzE1LDE5IEBAIHN0YXRpYyBzdHJ1Y3Qgc2Vj dXJpdHlfaG9va19saXN0IGJwZl9sc21faG9va3NbXSBfX2xzbV9yb19hZnRlcl9pbml0ID0gewog CUxTTV9IT09LX0lOSVQodGFza19mcmVlLCBicGZfdGFza19zdG9yYWdlX2ZyZWUpLAogfTsKIAor LyoKKyAqIHNsb3QgaGFzIHRvIGJlIExTTUJMT0JfTkVFREVEIGJlY2F1c2Ugc29tZSBvZiB0aGUg aG9va3MKKyAqIHN1cHBsaWVkIGJ5IHRoaXMgbW9kdWxlIHJlcXVpcmUgYSBzbG90LgorICovCitz dHJ1Y3QgbHNtX2lkIGJwZl9sc21pZCBfX2xzbV9yb19hZnRlcl9pbml0ID0geworCS5sc20gPSAi YnBmIiwKKwkuc2xvdCA9IExTTUJMT0JfTkVFREVECit9OworCiBzdGF0aWMgaW50IF9faW5pdCBi cGZfbHNtX2luaXQodm9pZCkKIHsKLQlzZWN1cml0eV9hZGRfaG9va3MoYnBmX2xzbV9ob29rcywg QVJSQVlfU0laRShicGZfbHNtX2hvb2tzKSwgImJwZiIpOworCXNlY3VyaXR5X2FkZF9ob29rcyhi cGZfbHNtX2hvb2tzLCBBUlJBWV9TSVpFKGJwZl9sc21faG9va3MpLAorCQkJICAgJmJwZl9sc21p ZCk7CiAJcHJfaW5mbygiTFNNIHN1cHBvcnQgZm9yIGVCUEYgYWN0aXZlXG4iKTsKIAlyZXR1cm4g MDsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2NvbW1vbmNhcC5jIGIvc2VjdXJpdHkvY29tbW9u Y2FwLmMKaW5kZXggM2Y4MTBkMzdiNzFiLi42Mjg2ODVjZjIwZTMgMTAwNjQ0Ci0tLSBhL3NlY3Vy aXR5L2NvbW1vbmNhcC5jCisrKyBiL3NlY3VyaXR5L2NvbW1vbmNhcC5jCkBAIC0xNDQzLDYgKzE0 NDMsMTEgQEAgaW50IGNhcF9tbWFwX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVkIGxv bmcgcmVxcHJvdCwKIAogI2lmZGVmIENPTkZJR19TRUNVUklUWQogCitzdGF0aWMgc3RydWN0IGxz bV9pZCBjYXBhYmlsaXR5X2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSAgPSAi Y2FwYWJpbGl0eSIsCisJLnNsb3QgPSBMU01CTE9CX05PVF9ORUVERUQKK307CisKIHN0YXRpYyBz dHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGNhcGFiaWxpdHlfaG9va3NbXSBfX2xzbV9yb19hZnRl cl9pbml0ID0gewogCUxTTV9IT09LX0lOSVQoY2FwYWJsZSwgY2FwX2NhcGFibGUpLAogCUxTTV9I T09LX0lOSVQoc2V0dGltZSwgY2FwX3NldHRpbWUpLApAQCAtMTQ2Nyw3ICsxNDcyLDcgQEAgc3Rh dGljIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgY2FwYWJpbGl0eV9ob29rc1tdIF9fbHNtX3Jv X2FmdGVyX2luaXQgPSB7CiBzdGF0aWMgaW50IF9faW5pdCBjYXBhYmlsaXR5X2luaXQodm9pZCkK IHsKIAlzZWN1cml0eV9hZGRfaG9va3MoY2FwYWJpbGl0eV9ob29rcywgQVJSQVlfU0laRShjYXBh YmlsaXR5X2hvb2tzKSwKLQkJCQkiY2FwYWJpbGl0eSIpOworCQkJICAgJmNhcGFiaWxpdHlfbHNt aWQpOwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9pbnRlZ3JpdHkvaW1h L2ltYV9wb2xpY3kuYyBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX3BvbGljeS5jCmluZGV4 IGZkNWQ0NmU1MTFmMS4uNWM0MDY3N2U4ODFjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9pbnRlZ3Jp dHkvaW1hL2ltYV9wb2xpY3kuYworKysgYi9zZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9wb2xp Y3kuYwpAQCAtODAsNyArODAsNyBAQCBzdHJ1Y3QgaW1hX3J1bGVfZW50cnkgewogCWJvb2wgKCpm b3duZXJfb3ApKGt1aWRfdCwga3VpZF90KTsgLyogdWlkX2VxKCksIHVpZF9ndCgpLCB1aWRfbHQo KSAqLwogCWludCBwY3I7CiAJc3RydWN0IHsKLQkJdm9pZCAqcnVsZTsJLyogTFNNIGZpbGUgbWV0 YWRhdGEgc3BlY2lmaWMgKi8KKwkJdm9pZCAqcnVsZXNbTFNNQkxPQl9FTlRSSUVTXTsgLyogTFNN IGZpbGUgbWV0YWRhdGEgc3BlY2lmaWMgKi8KIAkJY2hhciAqYXJnc19wOwkvKiBhdWRpdCB2YWx1 ZSAqLwogCQlpbnQgdHlwZTsJLyogYXVkaXQgdHlwZSAqLwogCX0gbHNtW01BWF9MU01fUlVMRVNd OwpAQCAtOTAsNiArOTAsMjIgQEAgc3RydWN0IGltYV9ydWxlX2VudHJ5IHsKIAlzdHJ1Y3QgaW1h X3RlbXBsYXRlX2Rlc2MgKnRlbXBsYXRlOwogfTsKIAorLyoqCisgKiBpbWFfbHNtX2lzc2V0IC0g SXMgYSBydWxlIHNldCBmb3IgYW55IG9mIHRoZSBhY3RpdmUgc2VjdXJpdHkgbW9kdWxlcworICog QHJ1bGVzOiBUaGUgc2V0IG9mIElNQSBydWxlcyB0byBjaGVjaworICoKKyAqIElmIGEgcnVsZSBp cyBzZXQgZm9yIGFueSBMU00gcmV0dXJuIHRydWUsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisg Ki8KK3N0YXRpYyBpbmxpbmUgYm9vbCBpbWFfbHNtX2lzc2V0KHZvaWQgKnJ1bGVzW10pCit7CisJ aW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTFNNQkxPQl9FTlRSSUVTOyBpKyspCisJCWlmIChy dWxlc1tpXSkKKwkJCXJldHVybiB0cnVlOworCXJldHVybiBmYWxzZTsKK30KKwogLyoKICAqIFdp dGhvdXQgTFNNIHNwZWNpZmljIGtub3dsZWRnZSwgdGhlIGRlZmF1bHQgcG9saWN5IGNhbiBvbmx5 IGJlCiAgKiB3cml0dGVuIGluIHRlcm1zIG9mIC5hY3Rpb24sIC5mdW5jLCAubWFzaywgLmZzbWFn aWMsIC51aWQsIGFuZCAuZm93bmVyCkBAIC0zMzUsOSArMzUxLDExIEBAIHN0YXRpYyB2b2lkIGlt YV9mcmVlX3J1bGVfb3B0X2xpc3Qoc3RydWN0IGltYV9ydWxlX29wdF9saXN0ICpvcHRfbGlzdCkK IHN0YXRpYyB2b2lkIGltYV9sc21fZnJlZV9ydWxlKHN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50 cnkpCiB7CiAJaW50IGk7CisJaW50IHI7CiAKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0xTTV9SVUxF UzsgaSsrKSB7Ci0JCWltYV9maWx0ZXJfcnVsZV9mcmVlKGVudHJ5LT5sc21baV0ucnVsZSk7CisJ CWZvciAociA9IDA7IHIgPCBMU01CTE9CX0VOVFJJRVM7IHIrKykKKwkJCWltYV9maWx0ZXJfcnVs ZV9mcmVlKGVudHJ5LT5sc21baV0ucnVsZXNbcl0pOwogCQlrZnJlZShlbnRyeS0+bHNtW2ldLmFy Z3NfcCk7CiAJfQogfQpAQCAtMzg4LDggKzQwNiw4IEBAIHN0YXRpYyBzdHJ1Y3QgaW1hX3J1bGVf ZW50cnkgKmltYV9sc21fY29weV9ydWxlKHN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50cnkpCiAK IAkJaW1hX2ZpbHRlcl9ydWxlX2luaXQobmVudHJ5LT5sc21baV0udHlwZSwgQXVkaXRfZXF1YWws CiAJCQkJICAgICBuZW50cnktPmxzbVtpXS5hcmdzX3AsCi0JCQkJICAgICAmbmVudHJ5LT5sc21b aV0ucnVsZSk7Ci0JCWlmICghbmVudHJ5LT5sc21baV0ucnVsZSkKKwkJCQkgICAgICZuZW50cnkt PmxzbVtpXS5ydWxlc1swXSk7CisJCWlmICghaW1hX2xzbV9pc3NldChuZW50cnktPmxzbVtpXS5y dWxlcykpCiAJCQlwcl93YXJuKCJydWxlIGZvciBMU00gXCclc1wnIGlzIHVuZGVmaW5lZFxuIiwK IAkJCQluZW50cnktPmxzbVtpXS5hcmdzX3ApOwogCX0KQEAgLTU3OCw3ICs1OTYsNyBAQCBzdGF0 aWMgYm9vbCBpbWFfbWF0Y2hfcnVsZXMoc3RydWN0IGltYV9ydWxlX2VudHJ5ICpydWxlLAogCQlp bnQgcmMgPSAwOwogCQl1MzIgb3NpZDsKIAotCQlpZiAoIXJ1bGUtPmxzbVtpXS5ydWxlKSB7CisJ CWlmICghaW1hX2xzbV9pc3NldChydWxlLT5sc21baV0ucnVsZXMpKSB7CiAJCQlpZiAoIXJ1bGUt PmxzbVtpXS5hcmdzX3ApCiAJCQkJY29udGludWU7CiAJCQllbHNlCkBAIC01OTEsMTQgKzYwOSwx NCBAQCBzdGF0aWMgYm9vbCBpbWFfbWF0Y2hfcnVsZXMoc3RydWN0IGltYV9ydWxlX2VudHJ5ICpy dWxlLAogCQkJc2VjdXJpdHlfaW5vZGVfZ2V0c2VjaWQoaW5vZGUsICZvc2lkKTsKIAkJCXJjID0g aW1hX2ZpbHRlcl9ydWxlX21hdGNoKG9zaWQsIHJ1bGUtPmxzbVtpXS50eXBlLAogCQkJCQkJICAg QXVkaXRfZXF1YWwsCi0JCQkJCQkgICBydWxlLT5sc21baV0ucnVsZSk7CisJCQkJCQkgICBydWxl LT5sc21baV0ucnVsZXMpOwogCQkJYnJlYWs7CiAJCWNhc2UgTFNNX1NVQkpfVVNFUjoKIAkJY2Fz ZSBMU01fU1VCSl9ST0xFOgogCQljYXNlIExTTV9TVUJKX1RZUEU6CiAJCQlyYyA9IGltYV9maWx0 ZXJfcnVsZV9tYXRjaChzZWNpZCwgcnVsZS0+bHNtW2ldLnR5cGUsCiAJCQkJCQkgICBBdWRpdF9l cXVhbCwKLQkJCQkJCSAgIHJ1bGUtPmxzbVtpXS5ydWxlKTsKKwkJCQkJCSAgIHJ1bGUtPmxzbVtp XS5ydWxlcyk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWJyZWFrOwpAQCAtOTk0LDcgKzEw MTIsNyBAQCBzdGF0aWMgaW50IGltYV9sc21fcnVsZV9pbml0KHN0cnVjdCBpbWFfcnVsZV9lbnRy eSAqZW50cnksCiB7CiAJaW50IHJlc3VsdDsKIAotCWlmIChlbnRyeS0+bHNtW2xzbV9ydWxlXS5y dWxlKQorCWlmIChpbWFfbHNtX2lzc2V0KGVudHJ5LT5sc21bbHNtX3J1bGVdLnJ1bGVzKSkKIAkJ cmV0dXJuIC1FSU5WQUw7CiAKIAllbnRyeS0+bHNtW2xzbV9ydWxlXS5hcmdzX3AgPSBtYXRjaF9z dHJkdXAoYXJncyk7CkBAIC0xMDA0LDggKzEwMjIsOCBAQCBzdGF0aWMgaW50IGltYV9sc21fcnVs ZV9pbml0KHN0cnVjdCBpbWFfcnVsZV9lbnRyeSAqZW50cnksCiAJZW50cnktPmxzbVtsc21fcnVs ZV0udHlwZSA9IGF1ZGl0X3R5cGU7CiAJcmVzdWx0ID0gaW1hX2ZpbHRlcl9ydWxlX2luaXQoZW50 cnktPmxzbVtsc21fcnVsZV0udHlwZSwgQXVkaXRfZXF1YWwsCiAJCQkJICAgICAgZW50cnktPmxz bVtsc21fcnVsZV0uYXJnc19wLAotCQkJCSAgICAgICZlbnRyeS0+bHNtW2xzbV9ydWxlXS5ydWxl KTsKLQlpZiAoIWVudHJ5LT5sc21bbHNtX3J1bGVdLnJ1bGUpIHsKKwkJCQkgICAgICAmZW50cnkt PmxzbVtsc21fcnVsZV0ucnVsZXNbMF0pOworCWlmICghaW1hX2xzbV9pc3NldChlbnRyeS0+bHNt W2xzbV9ydWxlXS5ydWxlcykpIHsKIAkJcHJfd2FybigicnVsZSBmb3IgTFNNIFwnJXNcJyBpcyB1 bmRlZmluZWRcbiIsCiAJCQllbnRyeS0+bHNtW2xzbV9ydWxlXS5hcmdzX3ApOwogCkBAIC0xODEy LDcgKzE4MzAsNyBAQCBpbnQgaW1hX3BvbGljeV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqdikKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgTUFYX0xTTV9SVUxFUzsgaSsrKSB7Ci0JCWlm IChlbnRyeS0+bHNtW2ldLnJ1bGUpIHsKKwkJaWYgKGltYV9sc21faXNzZXQoZW50cnktPmxzbVtp XS5ydWxlcykpIHsKIAkJCXN3aXRjaCAoaSkgewogCQkJY2FzZSBMU01fT0JKX1VTRVI6CiAJCQkJ c2VxX3ByaW50ZihtLCBwdChPcHRfb2JqX3VzZXIpLApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvbGFu ZGxvY2svY3JlZC5jIGIvc2VjdXJpdHkvbGFuZGxvY2svY3JlZC5jCmluZGV4IDY3MjVhZjI0YzY4 NC4uNTZiMTIxZDY1NDM2IDEwMDY0NAotLS0gYS9zZWN1cml0eS9sYW5kbG9jay9jcmVkLmMKKysr IGIvc2VjdXJpdHkvbGFuZGxvY2svY3JlZC5jCkBAIC00Miw1ICs0Miw1IEBAIHN0YXRpYyBzdHJ1 Y3Qgc2VjdXJpdHlfaG9va19saXN0IGxhbmRsb2NrX2hvb2tzW10gX19sc21fcm9fYWZ0ZXJfaW5p dCA9IHsKIF9faW5pdCB2b2lkIGxhbmRsb2NrX2FkZF9jcmVkX2hvb2tzKHZvaWQpCiB7CiAJc2Vj dXJpdHlfYWRkX2hvb2tzKGxhbmRsb2NrX2hvb2tzLCBBUlJBWV9TSVpFKGxhbmRsb2NrX2hvb2tz KSwKLQkJCUxBTkRMT0NLX05BTUUpOworCQkJJmxhbmRsb2NrX2xzbWlkKTsKIH0KZGlmZiAtLWdp dCBhL3NlY3VyaXR5L2xhbmRsb2NrL2ZzLmMgYi9zZWN1cml0eS9sYW5kbG9jay9mcy5jCmluZGV4 IDk3YjhlNDIxZjYxNy4uMzE5ZTkwZTkyOTBjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9sYW5kbG9j ay9mcy5jCisrKyBiL3NlY3VyaXR5L2xhbmRsb2NrL2ZzLmMKQEAgLTY4OCw1ICs2ODgsNSBAQCBz dGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBsYW5kbG9ja19ob29rc1tdIF9fbHNtX3Jv X2FmdGVyX2luaXQgPSB7CiBfX2luaXQgdm9pZCBsYW5kbG9ja19hZGRfZnNfaG9va3Modm9pZCkK IHsKIAlzZWN1cml0eV9hZGRfaG9va3MobGFuZGxvY2tfaG9va3MsIEFSUkFZX1NJWkUobGFuZGxv Y2tfaG9va3MpLAotCQkJTEFORExPQ0tfTkFNRSk7CisJCQkmbGFuZGxvY2tfbHNtaWQpOwogfQpk aWZmIC0tZ2l0IGEvc2VjdXJpdHkvbGFuZGxvY2svcHRyYWNlLmMgYi9zZWN1cml0eS9sYW5kbG9j ay9wdHJhY2UuYwppbmRleCBmNTViODI0NDZkZTIuLjU0Y2NmNTVhMDc3YSAxMDA2NDQKLS0tIGEv c2VjdXJpdHkvbGFuZGxvY2svcHRyYWNlLmMKKysrIGIvc2VjdXJpdHkvbGFuZGxvY2svcHRyYWNl LmMKQEAgLTExNiw1ICsxMTYsNSBAQCBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBs YW5kbG9ja19ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiBfX2luaXQgdm9pZCBsYW5k bG9ja19hZGRfcHRyYWNlX2hvb2tzKHZvaWQpCiB7CiAJc2VjdXJpdHlfYWRkX2hvb2tzKGxhbmRs b2NrX2hvb2tzLCBBUlJBWV9TSVpFKGxhbmRsb2NrX2hvb2tzKSwKLQkJCUxBTkRMT0NLX05BTUUp OworCQkJJmxhbmRsb2NrX2xzbWlkKTsKIH0KZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2xhbmRsb2Nr L3NldHVwLmMgYi9zZWN1cml0eS9sYW5kbG9jay9zZXR1cC5jCmluZGV4IGY4ZThlOTgwNDU0Yy4u NzU5ZTAwYjk0MzZjIDEwMDY0NAotLS0gYS9zZWN1cml0eS9sYW5kbG9jay9zZXR1cC5jCisrKyBi L3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmMKQEAgLTIzLDYgKzIzLDExIEBAIHN0cnVjdCBsc21f YmxvYl9zaXplcyBsYW5kbG9ja19ibG9iX3NpemVzIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJ Lmxic19zdXBlcmJsb2NrID0gc2l6ZW9mKHN0cnVjdCBsYW5kbG9ja19zdXBlcmJsb2NrX3NlY3Vy aXR5KSwKIH07CiAKK3N0cnVjdCBsc21faWQgbGFuZGxvY2tfbHNtaWQgX19sc21fcm9fYWZ0ZXJf aW5pdCA9IHsKKwkubHNtID0gTEFORExPQ0tfTkFNRSwKKwkuc2xvdCA9IExTTUJMT0JfTk9UX05F RURFRCwKK307CisKIHN0YXRpYyBpbnQgX19pbml0IGxhbmRsb2NrX2luaXQodm9pZCkKIHsKIAls YW5kbG9ja19hZGRfY3JlZF9ob29rcygpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvbGFuZGxvY2sv c2V0dXAuaCBiL3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmgKaW5kZXggMWRhZmZhYjFhYjRiLi4z OGJjZTViMTcyZGMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmgKKysrIGIv c2VjdXJpdHkvbGFuZGxvY2svc2V0dXAuaApAQCAtMTQsNSArMTQsNiBAQAogZXh0ZXJuIGJvb2wg bGFuZGxvY2tfaW5pdGlhbGl6ZWQ7CiAKIGV4dGVybiBzdHJ1Y3QgbHNtX2Jsb2Jfc2l6ZXMgbGFu ZGxvY2tfYmxvYl9zaXplczsKK2V4dGVybiBzdHJ1Y3QgbHNtX2lkIGxhbmRsb2NrX2xzbWlkOwog CiAjZW5kaWYgLyogX1NFQ1VSSVRZX0xBTkRMT0NLX1NFVFVQX0ggKi8KZGlmZiAtLWdpdCBhL3Nl Y3VyaXR5L2xvYWRwaW4vbG9hZHBpbi5jIGIvc2VjdXJpdHkvbG9hZHBpbi9sb2FkcGluLmMKaW5k ZXggYjEyZjdkOTg2YjFlLi5iNTY5ZjNiYzE3MGIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2xvYWRw aW4vbG9hZHBpbi5jCisrKyBiL3NlY3VyaXR5L2xvYWRwaW4vbG9hZHBpbi5jCkBAIC0xOTIsNiAr MTkyLDExIEBAIHN0YXRpYyBpbnQgbG9hZHBpbl9sb2FkX2RhdGEoZW51bSBrZXJuZWxfbG9hZF9k YXRhX2lkIGlkLCBib29sIGNvbnRlbnRzKQogCXJldHVybiBsb2FkcGluX3JlYWRfZmlsZShOVUxM LCAoZW51bSBrZXJuZWxfcmVhZF9maWxlX2lkKSBpZCwgY29udGVudHMpOwogfQogCitzdGF0aWMg c3RydWN0IGxzbV9pZCBsb2FkcGluX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxz bSAgPSAibG9hZHBpbiIsCisJLnNsb3QgPSBMU01CTE9CX05PVF9ORUVERUQKK307CisKIHN0YXRp YyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGxvYWRwaW5faG9va3NbXSBfX2xzbV9yb19hZnRl cl9pbml0ID0gewogCUxTTV9IT09LX0lOSVQoc2JfZnJlZV9zZWN1cml0eSwgbG9hZHBpbl9zYl9m cmVlX3NlY3VyaXR5KSwKIAlMU01fSE9PS19JTklUKGtlcm5lbF9yZWFkX2ZpbGUsIGxvYWRwaW5f cmVhZF9maWxlKSwKQEAgLTIzOSw3ICsyNDQsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBsb2FkcGlu X2luaXQodm9pZCkKIAlwcl9pbmZvKCJyZWFkeSB0byBwaW4gKGN1cnJlbnRseSAlc2VuZm9yY2lu ZylcbiIsCiAJCWVuZm9yY2UgPyAiIiA6ICJub3QgIik7CiAJcGFyc2VfZXhjbHVkZSgpOwotCXNl Y3VyaXR5X2FkZF9ob29rcyhsb2FkcGluX2hvb2tzLCBBUlJBWV9TSVpFKGxvYWRwaW5faG9va3Mp LCAibG9hZHBpbiIpOworCXNlY3VyaXR5X2FkZF9ob29rcyhsb2FkcGluX2hvb2tzLCBBUlJBWV9T SVpFKGxvYWRwaW5faG9va3MpLAorCQkJICAgJmxvYWRwaW5fbHNtaWQpOwogCXJldHVybiAwOwog fQogCmRpZmYgLS1naXQgYS9zZWN1cml0eS9sb2NrZG93bi9sb2NrZG93bi5jIGIvc2VjdXJpdHkv bG9ja2Rvd24vbG9ja2Rvd24uYwppbmRleCA4N2NiZGM2NGQyNzIuLjRlMjRlYTNmN2I3ZSAxMDA2 NDQKLS0tIGEvc2VjdXJpdHkvbG9ja2Rvd24vbG9ja2Rvd24uYworKysgYi9zZWN1cml0eS9sb2Nr ZG93bi9sb2NrZG93bi5jCkBAIC03NSw2ICs3NSwxMSBAQCBzdGF0aWMgc3RydWN0IHNlY3VyaXR5 X2hvb2tfbGlzdCBsb2NrZG93bl9ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJTFNN X0hPT0tfSU5JVChsb2NrZWRfZG93biwgbG9ja2Rvd25faXNfbG9ja2VkX2Rvd24pLAogfTsKIAor c3RhdGljIHN0cnVjdCBsc21faWQgbG9ja2Rvd25fbHNtaWQgX19sc21fcm9fYWZ0ZXJfaW5pdCA9 IHsKKwkubHNtID0gImxvY2tkb3duIiwKKwkuc2xvdCA9IExTTUJMT0JfTk9UX05FRURFRAorfTsK Kwogc3RhdGljIGludCBfX2luaXQgbG9ja2Rvd25fbHNtX2luaXQodm9pZCkKIHsKICNpZiBkZWZp bmVkKENPTkZJR19MT0NLX0RPV05fS0VSTkVMX0ZPUkNFX0lOVEVHUklUWSkKQEAgLTgzLDcgKzg4 LDcgQEAgc3RhdGljIGludCBfX2luaXQgbG9ja2Rvd25fbHNtX2luaXQodm9pZCkKIAlsb2NrX2tl cm5lbF9kb3duKCJLZXJuZWwgY29uZmlndXJhdGlvbiIsIExPQ0tET1dOX0NPTkZJREVOVElBTElU WV9NQVgpOwogI2VuZGlmCiAJc2VjdXJpdHlfYWRkX2hvb2tzKGxvY2tkb3duX2hvb2tzLCBBUlJB WV9TSVpFKGxvY2tkb3duX2hvb2tzKSwKLQkJCSAgICJsb2NrZG93biIpOworCQkJICAgJmxvY2tk b3duX2xzbWlkKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2FmZXNl dGlkL2xzbS5jIGIvc2VjdXJpdHkvc2FmZXNldGlkL2xzbS5jCmluZGV4IDk2M2Y0YWQ5Y2I2Ni4u MGMzNjg5NTBkYzE0IDEwMDY0NAotLS0gYS9zZWN1cml0eS9zYWZlc2V0aWQvbHNtLmMKKysrIGIv c2VjdXJpdHkvc2FmZXNldGlkL2xzbS5jCkBAIC0yNDEsNiArMjQxLDExIEBAIHN0YXRpYyBpbnQg c2FmZXNldGlkX3Rhc2tfZml4X3NldGdpZChzdHJ1Y3QgY3JlZCAqbmV3LAogCXJldHVybiAtRUFD Q0VTOwogfQogCitzdGF0aWMgc3RydWN0IGxzbV9pZCBzYWZlc2V0aWRfbHNtaWQgX19sc21fcm9f YWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9ICJzYWZlc2V0aWQiLAorCS5zbG90ID0gTFNNQkxPQl9O T1RfTkVFREVECit9OworCiBzdGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBzYWZlc2V0 aWRfc2VjdXJpdHlfaG9va3NbXSA9IHsKIAlMU01fSE9PS19JTklUKHRhc2tfZml4X3NldHVpZCwg c2FmZXNldGlkX3Rhc2tfZml4X3NldHVpZCksCiAJTFNNX0hPT0tfSU5JVCh0YXNrX2ZpeF9zZXRn aWQsIHNhZmVzZXRpZF90YXNrX2ZpeF9zZXRnaWQpLApAQCAtMjUwLDcgKzI1NSw4IEBAIHN0YXRp YyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IHNhZmVzZXRpZF9zZWN1cml0eV9ob29rc1tdID0g ewogc3RhdGljIGludCBfX2luaXQgc2FmZXNldGlkX3NlY3VyaXR5X2luaXQodm9pZCkKIHsKIAlz ZWN1cml0eV9hZGRfaG9va3Moc2FmZXNldGlkX3NlY3VyaXR5X2hvb2tzLAotCQkJICAgQVJSQVlf U0laRShzYWZlc2V0aWRfc2VjdXJpdHlfaG9va3MpLCAic2FmZXNldGlkIik7CisJCQkgICBBUlJB WV9TSVpFKHNhZmVzZXRpZF9zZWN1cml0eV9ob29rcyksCisJCQkgICAmc2FmZXNldGlkX2xzbWlk KTsKIAogCS8qIFJlcG9ydCB0aGF0IFNhZmVTZXRJRCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQg Ki8KIAlzYWZlc2V0aWRfaW5pdGlhbGl6ZWQgPSAxOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2Vj dXJpdHkuYyBiL3NlY3VyaXR5L3NlY3VyaXR5LmMKaW5kZXggMzM1YzMxM2E2NjhkLi41ZjFiMjgx NTExZjIgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L3NlY3VyaXR5LmMKKysrIGIvc2VjdXJpdHkvc2Vj dXJpdHkuYwpAQCAtMzQ0LDYgKzM0NCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBvcmRlcmVkX2xz bV9pbml0KHZvaWQpCiAJaW5pdF9kZWJ1Zygic29jayBibG9iIHNpemUgICAgICAgPSAlZFxuIiwg YmxvYl9zaXplcy5sYnNfc29jayk7CiAJaW5pdF9kZWJ1Zygic3VwZXJibG9jayBibG9iIHNpemUg PSAlZFxuIiwgYmxvYl9zaXplcy5sYnNfc3VwZXJibG9jayk7CiAJaW5pdF9kZWJ1ZygidGFzayBi bG9iIHNpemUgICAgICAgPSAlZFxuIiwgYmxvYl9zaXplcy5sYnNfdGFzayk7CisJaW5pdF9kZWJ1 ZygibHNtYmxvYiBzaXplICAgICAgICAgPSAlenVcbiIsIHNpemVvZihzdHJ1Y3QgbHNtYmxvYikp OwogCiAJLyoKIAkgKiBDcmVhdGUgYW55IGttZW1fY2FjaGVzIG5lZWRlZCBmb3IgYmxvYnMKQEAg LTQ3MSwyMSArNDcyLDM4IEBAIHN0YXRpYyBpbnQgbHNtX2FwcGVuZChjb25zdCBjaGFyICpuZXcs IGNoYXIgKipyZXN1bHQpCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBDdXJyZW50IGluZGV4IHRv IHVzZSB3aGlsZSBpbml0aWFsaXppbmcgdGhlIGxzbWJsb2Igc2VjaWQgbGlzdC4KKyAqLworc3Rh dGljIGludCBsc21fc2xvdCBfX2xzbV9yb19hZnRlcl9pbml0OworCiAvKioKICAqIHNlY3VyaXR5 X2FkZF9ob29rcyAtIEFkZCBhIG1vZHVsZXMgaG9va3MgdG8gdGhlIGhvb2sgbGlzdHMuCiAgKiBA aG9va3M6IHRoZSBob29rcyB0byBhZGQKICAqIEBjb3VudDogdGhlIG51bWJlciBvZiBob29rcyB0 byBhZGQKLSAqIEBsc206IHRoZSBuYW1lIG9mIHRoZSBzZWN1cml0eSBtb2R1bGUKKyAqIEBsc21p ZDogdGhlIGlkZW50aWZpY2F0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgc2VjdXJpdHkgbW9kdWxl CiAgKgogICogRWFjaCBMU00gaGFzIHRvIHJlZ2lzdGVyIGl0cyBob29rcyB3aXRoIHRoZSBpbmZy YXN0cnVjdHVyZS4KKyAqIElmIHRoZSBMU00gaXMgdXNpbmcgaG9va3MgdGhhdCBleHBvcnQgc2Vj aWRzIGFsbG9jYXRlIGEgc2xvdAorICogZm9yIGl0IGluIHRoZSBsc21ibG9iLgogICovCiB2b2lk IF9faW5pdCBzZWN1cml0eV9hZGRfaG9va3Moc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCAqaG9v a3MsIGludCBjb3VudCwKLQkJCQljaGFyICpsc20pCisJCQkgICAgICAgc3RydWN0IGxzbV9pZCAq bHNtaWQpCiB7CiAJaW50IGk7CiAKKwlXQVJOX09OKCFsc21pZC0+c2xvdCB8fCAhbHNtaWQtPmxz bSk7CisKKwlpZiAobHNtaWQtPnNsb3QgPT0gTFNNQkxPQl9ORUVERUQpIHsKKwkJaWYgKGxzbV9z bG90ID49IExTTUJMT0JfRU5UUklFUykKKwkJCXBhbmljKCIlcyBUb28gbWFueSBMU01zIHJlZ2lz dGVyZWQuXG4iLCBfX2Z1bmNfXyk7CisJCWxzbWlkLT5zbG90ID0gbHNtX3Nsb3QrKzsKKwkJaW5p dF9kZWJ1ZygiJXMgYXNzaWduZWQgbHNtYmxvYiBzbG90ICVkXG4iLCBsc21pZC0+bHNtLAorCQkJ ICAgbHNtaWQtPnNsb3QpOworCX0KKwogCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Ci0J CWhvb2tzW2ldLmxzbSA9IGxzbTsKKwkJaG9va3NbaV0ubHNtaWQgPSBsc21pZDsKIAkJaGxpc3Rf YWRkX3RhaWxfcmN1KCZob29rc1tpXS5saXN0LCBob29rc1tpXS5oZWFkKTsKIAl9CiAKQEAgLTQ5 NCw3ICs1MTIsNyBAQCB2b2lkIF9faW5pdCBzZWN1cml0eV9hZGRfaG9va3Moc3RydWN0IHNlY3Vy aXR5X2hvb2tfbGlzdCAqaG9va3MsIGludCBjb3VudCwKIAkgKiBhbmQgZml4IHRoaXMgdXAgYWZ0 ZXJ3YXJkcy4KIAkgKi8KIAlpZiAoc2xhYl9pc19hdmFpbGFibGUoKSkgewotCQlpZiAobHNtX2Fw cGVuZChsc20sICZsc21fbmFtZXMpIDwgMCkKKwkJaWYgKGxzbV9hcHBlbmQobHNtaWQtPmxzbSwg JmxzbV9uYW1lcykgPCAwKQogCQkJcGFuaWMoIiVzIC0gQ2Fubm90IGdldCBlYXJseSBtZW1vcnku XG4iLCBfX2Z1bmNfXyk7CiAJfQogfQpAQCAtMjA3MCw3ICsyMDg4LDcgQEAgaW50IHNlY3VyaXR5 X2dldHByb2NhdHRyKHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgY29uc3QgY2hhciAqbHNtLCBjaGFy ICpuYW1lLAogCXN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgKmhwOwogCiAJaGxpc3RfZm9yX2Vh Y2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLmdldHByb2NhdHRyLCBsaXN0KSB7Ci0J CWlmIChsc20gIT0gTlVMTCAmJiBzdHJjbXAobHNtLCBocC0+bHNtKSkKKwkJaWYgKGxzbSAhPSBO VUxMICYmIHN0cmNtcChsc20sIGhwLT5sc21pZC0+bHNtKSkKIAkJCWNvbnRpbnVlOwogCQlyZXR1 cm4gaHAtPmhvb2suZ2V0cHJvY2F0dHIocCwgbmFtZSwgdmFsdWUpOwogCX0KQEAgLTIwODMsNyAr MjEwMSw3IEBAIGludCBzZWN1cml0eV9zZXRwcm9jYXR0cihjb25zdCBjaGFyICpsc20sIGNvbnN0 IGNoYXIgKm5hbWUsIHZvaWQgKnZhbHVlLAogCXN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgKmhw OwogCiAJaGxpc3RfZm9yX2VhY2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLnNldHBy b2NhdHRyLCBsaXN0KSB7Ci0JCWlmIChsc20gIT0gTlVMTCAmJiBzdHJjbXAobHNtLCBocC0+bHNt KSkKKwkJaWYgKGxzbSAhPSBOVUxMICYmIHN0cmNtcChsc20sIGhwLT5sc21pZC0+bHNtKSkKIAkJ CWNvbnRpbnVlOwogCQlyZXR1cm4gaHAtPmhvb2suc2V0cHJvY2F0dHIobmFtZSwgdmFsdWUsIHNp emUpOwogCX0KQEAgLTI1NzYsNyArMjU5NCwyNCBAQCBpbnQgc2VjdXJpdHlfa2V5X2dldHNlY3Vy aXR5KHN0cnVjdCBrZXkgKmtleSwgY2hhciAqKl9idWZmZXIpCiAKIGludCBzZWN1cml0eV9hdWRp dF9ydWxlX2luaXQodTMyIGZpZWxkLCB1MzIgb3AsIGNoYXIgKnJ1bGVzdHIsIHZvaWQgKipsc21y dWxlKQogewotCXJldHVybiBjYWxsX2ludF9ob29rKGF1ZGl0X3J1bGVfaW5pdCwgMCwgZmllbGQs IG9wLCBydWxlc3RyLCBsc21ydWxlKTsKKwlzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0ICpocDsK Kwlib29sIG9uZV9pc19nb29kID0gZmFsc2U7CisJaW50IHJjID0gMDsKKwlpbnQgdHJjOworCisJ aGxpc3RfZm9yX2VhY2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLmF1ZGl0X3J1bGVf aW5pdCwgbGlzdCkgeworCQlpZiAoV0FSTl9PTihocC0+bHNtaWQtPnNsb3QgPCAwIHx8IGhwLT5s c21pZC0+c2xvdCA+PSBsc21fc2xvdCkpCisJCQljb250aW51ZTsKKwkJdHJjID0gaHAtPmhvb2su YXVkaXRfcnVsZV9pbml0KGZpZWxkLCBvcCwgcnVsZXN0ciwKKwkJCQkJICAgICAgICZsc21ydWxl W2hwLT5sc21pZC0+c2xvdF0pOworCQlpZiAodHJjID09IDApCisJCQlvbmVfaXNfZ29vZCA9IHRy dWU7CisJCWVsc2UKKwkJCXJjID0gdHJjOworCX0KKwlpZiAob25lX2lzX2dvb2QpCisJCXJldHVy biAwOworCXJldHVybiByYzsKIH0KIAogaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfa25vd24oc3Ry dWN0IGF1ZGl0X2tydWxlICprcnVsZSkKQEAgLTI1ODQsMTQgKzI2MTksMzEgQEAgaW50IHNlY3Vy aXR5X2F1ZGl0X3J1bGVfa25vd24oc3RydWN0IGF1ZGl0X2tydWxlICprcnVsZSkKIAlyZXR1cm4g Y2FsbF9pbnRfaG9vayhhdWRpdF9ydWxlX2tub3duLCAwLCBrcnVsZSk7CiB9CiAKLXZvaWQgc2Vj dXJpdHlfYXVkaXRfcnVsZV9mcmVlKHZvaWQgKmxzbXJ1bGUpCit2b2lkIHNlY3VyaXR5X2F1ZGl0 X3J1bGVfZnJlZSh2b2lkICoqbHNtcnVsZSkKIHsKLQljYWxsX3ZvaWRfaG9vayhhdWRpdF9ydWxl X2ZyZWUsIGxzbXJ1bGUpOworCXN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgKmhwOworCisJaGxp c3RfZm9yX2VhY2hfZW50cnkoaHAsICZzZWN1cml0eV9ob29rX2hlYWRzLmF1ZGl0X3J1bGVfZnJl ZSwgbGlzdCkgeworCQlpZiAoV0FSTl9PTihocC0+bHNtaWQtPnNsb3QgPCAwIHx8IGhwLT5sc21p ZC0+c2xvdCA+PSBsc21fc2xvdCkpCisJCQljb250aW51ZTsKKwkJaHAtPmhvb2suYXVkaXRfcnVs ZV9mcmVlKGxzbXJ1bGVbaHAtPmxzbWlkLT5zbG90XSk7CisJfQogfQogCi1pbnQgc2VjdXJpdHlf YXVkaXRfcnVsZV9tYXRjaCh1MzIgc2VjaWQsIHUzMiBmaWVsZCwgdTMyIG9wLCB2b2lkICpsc21y dWxlKQoraW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0Y2godTMyIHNlY2lkLCB1MzIgZmllbGQs IHUzMiBvcCwgdm9pZCAqKmxzbXJ1bGUpCiB7Ci0JcmV0dXJuIGNhbGxfaW50X2hvb2soYXVkaXRf cnVsZV9tYXRjaCwgMCwgc2VjaWQsIGZpZWxkLCBvcCwgbHNtcnVsZSk7CisJc3RydWN0IHNlY3Vy aXR5X2hvb2tfbGlzdCAqaHA7CisJaW50IHJjOworCisJaGxpc3RfZm9yX2VhY2hfZW50cnkoaHAs ICZzZWN1cml0eV9ob29rX2hlYWRzLmF1ZGl0X3J1bGVfbWF0Y2gsIGxpc3QpIHsKKwkJaWYgKFdB Uk5fT04oaHAtPmxzbWlkLT5zbG90IDwgMCB8fCBocC0+bHNtaWQtPnNsb3QgPj0gbHNtX3Nsb3Qp KQorCQkJY29udGludWU7CisJCXJjID0gaHAtPmhvb2suYXVkaXRfcnVsZV9tYXRjaChzZWNpZCwg ZmllbGQsIG9wLAorCQkJCQkgICAgICAgJmxzbXJ1bGVbaHAtPmxzbWlkLT5zbG90XSk7CisJCWlm IChyYykKKwkJCXJldHVybiByYzsKKwl9CisJcmV0dXJuIDA7CiB9CiAjZW5kaWYgLyogQ09ORklH X0FVRElUICovCiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3NlbGludXgvaG9va3MuYyBiL3NlY3Vy aXR5L3NlbGludXgvaG9va3MuYwppbmRleCBlMmM0YTFmZDk1MmYuLmY4NGI2YzI3NGExMCAxMDA2 NDQKLS0tIGEvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCisrKyBiL3NlY3VyaXR5L3NlbGludXgv aG9va3MuYwpAQCAtNzEwMSw2ICs3MTAxLDExIEBAIHN0YXRpYyBpbnQgc2VsaW51eF9wZXJmX2V2 ZW50X3dyaXRlKHN0cnVjdCBwZXJmX2V2ZW50ICpldmVudCkKIH0KICNlbmRpZgogCitzdGF0aWMg c3RydWN0IGxzbV9pZCBzZWxpbnV4X2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxz bSAgPSAic2VsaW51eCIsCisJLnNsb3QgPSBMU01CTE9CX05FRURFRAorfTsKKwogLyoKICAqIElN UE9SVEFOVCBOT1RFOiBXaGVuIGFkZGluZyBuZXcgaG9va3MsIHBsZWFzZSBiZSBjYXJlZnVsIHRv IGtlZXAgdGhpcyBvcmRlcjoKICAqIDEuIGFueSBob29rcyB0aGF0IGRvbid0IGJlbG9uZyB0byAo Mi4pIG9yICgzLikgYmVsb3csCkBAIC03NDE0LDcgKzc0MTksOCBAQCBzdGF0aWMgX19pbml0IGlu dCBzZWxpbnV4X2luaXQodm9pZCkKIAogCWhhc2h0YWJfY2FjaGVfaW5pdCgpOwogCi0Jc2VjdXJp dHlfYWRkX2hvb2tzKHNlbGludXhfaG9va3MsIEFSUkFZX1NJWkUoc2VsaW51eF9ob29rcyksICJz ZWxpbnV4Iik7CisJc2VjdXJpdHlfYWRkX2hvb2tzKHNlbGludXhfaG9va3MsIEFSUkFZX1NJWkUo c2VsaW51eF9ob29rcyksCisJCQkgICAmc2VsaW51eF9sc21pZCk7CiAKIAlpZiAoYXZjX2FkZF9j YWxsYmFjayhzZWxpbnV4X25ldGNhY2hlX2F2Y19jYWxsYmFjaywgQVZDX0NBTExCQUNLX1JFU0VU KSkKIAkJcGFuaWMoIlNFTGludXg6IFVuYWJsZSB0byByZWdpc3RlciBBVkMgbmV0Y2FjaGUgY2Fs bGJhY2tcbiIpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMgYi9zZWN1 cml0eS9zbWFjay9zbWFja19sc20uYwppbmRleCAxZWUwYmYxNDkzZjYuLjVjMTBhZDI3YmUzNyAx MDA2NDQKLS0tIGEvc2VjdXJpdHkvc21hY2svc21hY2tfbHNtLmMKKysrIGIvc2VjdXJpdHkvc21h Y2svc21hY2tfbHNtLmMKQEAgLTQ2OTQsNiArNDY5NCwxMSBAQCBzdHJ1Y3QgbHNtX2Jsb2Jfc2l6 ZXMgc21hY2tfYmxvYl9zaXplcyBfX2xzbV9yb19hZnRlcl9pbml0ID0gewogCS5sYnNfc3VwZXJi bG9jayA9IHNpemVvZihzdHJ1Y3Qgc3VwZXJibG9ja19zbWFjayksCiB9OwogCitzdGF0aWMgc3Ry dWN0IGxzbV9pZCBzbWFja19sc21pZCBfX2xzbV9yb19hZnRlcl9pbml0ID0geworCS5sc20gID0g InNtYWNrIiwKKwkuc2xvdCA9IExTTUJMT0JfTkVFREVECit9OworCiBzdGF0aWMgc3RydWN0IHNl Y3VyaXR5X2hvb2tfbGlzdCBzbWFja19ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJ TFNNX0hPT0tfSU5JVChwdHJhY2VfYWNjZXNzX2NoZWNrLCBzbWFja19wdHJhY2VfYWNjZXNzX2No ZWNrKSwKIAlMU01fSE9PS19JTklUKHB0cmFjZV90cmFjZW1lLCBzbWFja19wdHJhY2VfdHJhY2Vt ZSksCkBAIC00ODkzLDcgKzQ4OTgsNyBAQCBzdGF0aWMgX19pbml0IGludCBzbWFja19pbml0KHZv aWQpCiAJLyoKIAkgKiBSZWdpc3RlciB3aXRoIExTTQogCSAqLwotCXNlY3VyaXR5X2FkZF9ob29r cyhzbWFja19ob29rcywgQVJSQVlfU0laRShzbWFja19ob29rcyksICJzbWFjayIpOworCXNlY3Vy aXR5X2FkZF9ob29rcyhzbWFja19ob29rcywgQVJSQVlfU0laRShzbWFja19ob29rcyksICZzbWFj a19sc21pZCk7CiAJc21hY2tfZW5hYmxlZCA9IDE7CiAKIAlwcl9pbmZvKCJTbWFjazogIEluaXRp YWxpemluZy5cbiIpOwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvdG9tb3lvL3RvbW95by5jIGIvc2Vj dXJpdHkvdG9tb3lvL3RvbW95by5jCmluZGV4IGI2YTMxOTAxZjI4OS4uZThmNmJiOTc4MmMxIDEw MDY0NAotLS0gYS9zZWN1cml0eS90b21veW8vdG9tb3lvLmMKKysrIGIvc2VjdXJpdHkvdG9tb3lv L3RvbW95by5jCkBAIC01MjEsNiArNTIxLDExIEBAIHN0YXRpYyB2b2lkIHRvbW95b190YXNrX2Zy ZWUoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQogCX0KIH0KIAorc3RhdGljIHN0cnVjdCBsc21f aWQgdG9tb3lvX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSAgPSAidG9tb3lv IiwKKwkuc2xvdCA9IExTTUJMT0JfTk9UX05FRURFRAorfTsKKwogLyoKICAqIHRvbW95b19zZWN1 cml0eV9vcHMgaXMgYSAic3RydWN0IHNlY3VyaXR5X29wZXJhdGlvbnMiIHdoaWNoIGlzIHVzZWQg Zm9yCiAgKiByZWdpc3RlcmluZyBUT01PWU8uCkBAIC01NzMsNyArNTc4LDggQEAgc3RhdGljIGlu dCBfX2luaXQgdG9tb3lvX2luaXQodm9pZCkKIAlzdHJ1Y3QgdG9tb3lvX3Rhc2sgKnMgPSB0b21v eW9fdGFzayhjdXJyZW50KTsKIAogCS8qIHJlZ2lzdGVyIG91cnNlbHZlcyB3aXRoIHRoZSBzZWN1 cml0eSBmcmFtZXdvcmsgKi8KLQlzZWN1cml0eV9hZGRfaG9va3ModG9tb3lvX2hvb2tzLCBBUlJB WV9TSVpFKHRvbW95b19ob29rcyksICJ0b21veW8iKTsKKwlzZWN1cml0eV9hZGRfaG9va3ModG9t b3lvX2hvb2tzLCBBUlJBWV9TSVpFKHRvbW95b19ob29rcyksCisJCQkgICAmdG9tb3lvX2xzbWlk KTsKIAlwcl9pbmZvKCJUT01PWU8gTGludXggaW5pdGlhbGl6ZWRcbiIpOwogCXMtPmRvbWFpbl9p bmZvID0gJnRvbW95b19rZXJuZWxfZG9tYWluOwogCWF0b21pY19pbmMoJnRvbW95b19rZXJuZWxf ZG9tYWluLnVzZXJzKTsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L3lhbWEveWFtYV9sc20uYyBiL3Nl Y3VyaXR5L3lhbWEveWFtYV9sc20uYwppbmRleCAwNmUyMjYxNjZhYWIuLmE5NjM5ZWE1NDFmNyAx MDA2NDQKLS0tIGEvc2VjdXJpdHkveWFtYS95YW1hX2xzbS5jCisrKyBiL3NlY3VyaXR5L3lhbWEv eWFtYV9sc20uYwpAQCAtNDIxLDYgKzQyMSwxMSBAQCBzdGF0aWMgaW50IHlhbWFfcHRyYWNlX3Ry YWNlbWUoc3RydWN0IHRhc2tfc3RydWN0ICpwYXJlbnQpCiAJcmV0dXJuIHJjOwogfQogCitzdGF0 aWMgc3RydWN0IGxzbV9pZCB5YW1hX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxz bSAgPSAieWFtYSIsCisJLnNsb3QgPSBMU01CTE9CX05PVF9ORUVERUQKK307CisKIHN0YXRpYyBz dHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IHlhbWFfaG9va3NbXSBfX2xzbV9yb19hZnRlcl9pbml0 ID0gewogCUxTTV9IT09LX0lOSVQocHRyYWNlX2FjY2Vzc19jaGVjaywgeWFtYV9wdHJhY2VfYWNj ZXNzX2NoZWNrKSwKIAlMU01fSE9PS19JTklUKHB0cmFjZV90cmFjZW1lLCB5YW1hX3B0cmFjZV90 cmFjZW1lKSwKQEAgLTQ3Nyw3ICs0ODIsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgeWFtYV9pbml0 X3N5c2N0bCh2b2lkKSB7IH0KIHN0YXRpYyBpbnQgX19pbml0IHlhbWFfaW5pdCh2b2lkKQogewog CXByX2luZm8oIllhbWE6IGJlY29taW5nIG1pbmRmdWwuXG4iKTsKLQlzZWN1cml0eV9hZGRfaG9v a3MoeWFtYV9ob29rcywgQVJSQVlfU0laRSh5YW1hX2hvb2tzKSwgInlhbWEiKTsKKwlzZWN1cml0 eV9hZGRfaG9va3MoeWFtYV9ob29rcywgQVJSQVlfU0laRSh5YW1hX2hvb2tzKSwgJnlhbWFfbHNt aWQpOwogCXlhbWFfaW5pdF9zeXNjdGwoKTsKIAlyZXR1cm4gMDsKIH0KLS0gCjIuMzEuMQoKLS0K TGludXgtYXVkaXQgbWFpbGluZyBsaXN0CkxpbnV4LWF1ZGl0QHJlZGhhdC5jb20KaHR0cHM6Ly9s aXN0bWFuLnJlZGhhdC5jb20vbWFpbG1hbi9saXN0aW5mby9saW51eC1hdWRpdA==