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 7B3FCC433B4 for ; Thu, 13 May 2021 20:10:50 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.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 D3B606143C for ; Thu, 13 May 2021 20:10:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D3B606143C 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-292-c7HVHjX0MPu1l9Zg8kusSw-1; Thu, 13 May 2021 16:10:46 -0400 X-MC-Unique: c7HVHjX0MPu1l9Zg8kusSw-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 D718A8005AD; Thu, 13 May 2021 20:10:43 +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 B167B6787D; Thu, 13 May 2021 20:10:43 +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 8030018005B6; Thu, 13 May 2021 20:10:43 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 14DKAeJu021266 for ; Thu, 13 May 2021 16:10:40 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3722310CB27F; Thu, 13 May 2021 20:10:40 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast02.extmail.prod.ext.rdu2.redhat.com [10.11.55.18]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3284B10CB283 for ; Thu, 13 May 2021 20:10:37 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (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 265B6800B29 for ; Thu, 13 May 2021 20:10:37 +0000 (UTC) Received: from sonic307-15.consmr.mail.ne1.yahoo.com (sonic307-15.consmr.mail.ne1.yahoo.com [66.163.190.38]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-240-BCS3bM2UPCGcJr0M2ZtP_w-1; Thu, 13 May 2021 16:10:34 -0400 X-MC-Unique: BCS3bM2UPCGcJr0M2ZtP_w-1 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1620936634; bh=wR1AnYBj4kPNDmOafcapwAV+hVImkL2ZewE36sYPFp0=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=XtDAAX8xMxJp+bsooiRO0/ythcfNogjAmrOxtRmNRPUCO2nL/pOahJVcnh1xGcPZVGzxiZ/hgaRQs7Ky7wLYj/BTZl19uFJg70F5S3OWHmNVRLkvnf5AtKjOryTLLZtflYz4h+HzRteq6qJrOklqW3R3TTyX9Ut5PqOMPC57FtyNLnISW/hNO8/k8XYGmUEvdjy3oDvJXIoTOKWkdhmeVy6E1mG2Eb/ess0zmsgq252njgrYDbHcxWW9Xb8w/c7saA9FtCsgEmngMmEB1+wgM+SXBM5nqfgp34DkCOC7hLqvMzgaW7E1TlJazvVxYwcwmlSOHP+7FnlrRqmi1vRDKw== X-YMail-OSG: Xy6XT_QVM1n4cVljfSEzVoRj6qUoGo2VupzMWVuccc.w9KDDaaiP46zGuYVqa9Z TyKg2x9VdB8LB8xG6TALsRwBGCgJozFbaHTClM020EuHp77G7IWLivmsHzeyuGDQlgtspjqZjP7C gtGx4jfrdCjwHkJDbUbzTZOSWnyxP_OLpG5AUM71Lk95.7PkU.dHzg1AhGVKFqyc2IK7m914m8Hk nWP9m.NUchOW7A8m92s_Gj_izqY4O6yoRGW7str4umBJXvxWt_vlbAdoHX7eYepHzOzha3ZOEdY9 _4c7KBQ_07eKevL3OHfff2JDRND_nyXpRAmnTw2UNSSGS6_jKzdeZom5nDIVK9xpe083zK0CKN3R 3m9oclH9aJj0Gd9VZozNLnD68X_xRIxDtXsOvr67SE1gBCb1eQEw9.5chp2ONWfwU4grr7Vu_X4q G3Yy.6iCkSyyhzXPdiuSGmSueUU.ye1vnSSQqD_ibSVsRHMtksmTazxAusB4VQd9e1cwrJ0DZroc ROluSk6CHMr.fjD2Yj2WASTyrHs8Gh7.vCpTUxqD.qp3GgdFIqAiQeDwDni0jEHOK7qK7GYatHfr VlQBIe.clJEzhLqgtXCHWrO.wCRAx1eb5EFrCEAZtcZrxPoy0W946LiASuKeiRFEtFfddVSYVjxk 9Top8uMsaEMSaL2jQSEBvAmtJHn7Uhz0MaT6TCwNeOTE339OMtRjoiqdCkvTGEHdAbBGunTMwh5. y43hDyT8.zvRp3yDkj5ERSwkqbTlSK9uLYweUg_S6Scqit.nR.mB2RfYJZt59y.5afRKkobJXGuo lZaNpHimROET0dfz61Bb0jPPXc7fequdTXd0CXBYHx4sv1j_5lA01gcl3YYaQgW5tfBxOXy_eKCM xOqv_cYSJwbwduXPlw7Eno5AvPEO26MV115F3YFjGgyqtNtNqIct71.mYeKqIv78UAjK0yKeMAjZ UJgGlOjk4XFe9HFzPV6Krszu6fJg_nLITlbBWs6aqJibZjm3HT.spTE0JM5P9lYY3KprCgRpEYiY 7uvYtS.brv..Cgnty0CoZ7gz4pU8f09.1qyEsW2PskePFB4KnQGDIhRqdxVbPqaFmAiwYjo3tYzZ 5P9a3iMwoSB58OB0f9fFn1oWufiUSasftSd5e6pfLvFmbVK9NSMfGlIPU1MEdUIxgYInr05YeiP1 1WFJPS4_V1cCR48IeJ7.EJECOBNcZlTWL5FiQ73YxUS4fYBvvgVubKt7c9wR5acvCBNehkrOq0_I i_Zg3DphS0YlrGGCSfvPC8GHh_e0ILHJKBT_9.hDXBSBwzj16bpGezEi1I7RY_zRR.hV3oiSpnBD sjKBQMFpTvEaVFj_PpzILCrFKHoOcOWEWon.0x1I1n2S0q1XGoqXRLcuAk8UJoZe.OZ43333uAZ2 B7RiJ3TPXQaD6n0fRj5YekjuRtbZCE0zsZ4LwwjxN1g1pDruiASMc7.kWfNQ4Fdo6qS2SfR_Uf74 pkT4qC4IA7lASbskrEP8uEN3Q8vDYCmrd48Wl2JW9mVqggI4JVdGpx3kPKUyHkg7RHocMR4yo7hp Eireyy3RCvZBBl3EJP5fqjpOWVfroXL1ZTOfj9SPou00s9Xag7PwBngsUDLh4Kv2OeqhAIPIY65i eIXaMrCYM0tkisjFeYsK3HIkV8T.ojWRq6_FE2CU_ToP4Rj.RcsIUkCf0y4UT7XId2MfIGJZuxVh tCvdD73V7v9NS4nCx63vd2uoPe6xMVuPkr9Qg4IOPQLaSsD73nFaIN.fj4rcslkZh4IzHNQIpuJA LiDO93Hmn30oOTeMcWlZZ.O6WbZpgWe7j9t9hYmKadFItfChZAKfgpCoe6VaF9udwHeHd9L7l1z4 ecJE1snne4_NkEhkCkMWWHmU7BvQZ9nlu7_kMkdDVVHv_pRffxvvvIzlviPPgQjuxTUL63TB4_Sn zhU_cOUyh2SbUIPKnBPJJwTE7r.SLp.254tDoaVUGuY37jKHNk.1KbgVP1asHTLagwsdrxU6UrAy bL18QKLpWQrPsFskyb_gvJKkZFyiKtn_p5OQbw2UVaeK1xOZ3akAjHI9dbBlpG1Qlv_rb6lBsP7o r3sou34DLessM50vA7MkBsEevFNMp3twJCu_bLUAXhZ_Y5f5GFOHtve0Msq6xG6rfH19gyqfoSIJ E4h03gTHUhKwwC4wU.DXdhoYCgPyBO6iz9l.e0o4m5sUKuqTJ9JHSIbJZn_bLYT7MP.q7fIHJHHe TryIHKvyS2B_PUnpoiqFtGIc6Ew3YMl.BH_wIujghqeYtSoFOxy71QWH2j8PyNAIKwM0pxN9yNo. NKJP_Z2Ni6zYzVklIc1f_aJ80t1FYST5r.3Cj4aavFZjXaQ3Gx1L0OCJ.PpFB7kh482j9Iu0Vo.C cd_Hf9DRISBzzJB3AEhliaYAIymFSO_6E4NAM7Vxe4rxabVh08vqMIhMQQMblGwsThExUvyQUZTJ x6DOzFAf7jAlnYM.wM29KN.2z2I_vmSGEhFcou9KGsfj2J0QujoLHvlkzIzpdabg_mEfKTTVS8V1 hRh_EwF880uFcQjxBp0fUK6CMJwMlHDSHgAp5AIJiYI4ctMBdttaX79UXTMvnZPDIzROlArtSkSs TqLiA98g3WH8qs7NdPPO0BfUYWopdwE0gri3HItES_0CcDlDlwKokBBk4WiuZBzsqMprsjQhTtho Ct5PTfYzcVMZLuMK6XtwiJM3j.Va9yn1_eN86q_.qB4f_2ZromakLI8ZxP7ye_1if13Fa0ll3TuI dZg7skemTrH72o4rulfnPkrlSWmsv3TsvZltKAGhCE6P0OZVAZNExrjflkwDkZbw8IvgbkWDxKgC YLr6kcVugP32THqT_6TWk_FRfQZ2hk5PEKNqUZsm95t8rSKBfFV8nUdFnPSuhQFZXKOkm4rkbFX5 inrrdVrWyMnpEinmulyEoqHrvBXTwkJNbP_yCYCQVvdsA.TENRzzML3HDqaHDA27XytOtp.X0K.7 XxqgrgbEq7g0S0F07iL7Y2i_VdEHFO3S2eErys9vqyZ4A8RwQKqOLq0Gl2xGTjGGMdZW.LybX2me kRp9V06TsIN_ZtfUOZ5FwC3.cNDGMo4kxnUHKwACmBYS_mEsLRPdxFWCk1CE5B0jijuZ_puEQhba HyTJuMFfiwdKw8azHi8zbJJ0HtZmnD1bLa1pdMvWz9yYiN1iPvlztTwq7ZOWAb9gDYQs6gCu7I3Y - X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic307.consmr.mail.ne1.yahoo.com with HTTP; Thu, 13 May 2021 20:10:34 +0000 Received: by kubenode512.mail-prod1.omega.bf1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID c571e24bb6d9bd02ecd96e3664e8c071; Thu, 13 May 2021 20:10:29 +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 v26 02/25] LSM: Add the lsmblob data structure. Date: Thu, 13 May 2021 13:07:44 -0700 Message-Id: <20210513200807.15910-3-casey@schaufler-ca.com> In-Reply-To: <20210513200807.15910-1-casey@schaufler-ca.com> References: <20210513200807.15910-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.3 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 KysrKysrKysrKysrKysrKysrKysrKystLQoga2VybmVsL2F1ZGl0ZmlsdGVyLmMgICAgICAgICAg ICAgICAgfCAyNCArKysrKy0tLS0tCiBrZXJuZWwvYXVkaXRzYy5jICAgICAgICAgICAgICAgICAg ICB8IDEzICsrKy0tLQogc2VjdXJpdHkvYXBwYXJtb3IvbHNtLmMgICAgICAgICAgICAgfCAgNyAr Ky0KIHNlY3VyaXR5L2JwZi9ob29rcy5jICAgICAgICAgICAgICAgIHwgMTIgKysrKy0KIHNlY3Vy aXR5L2NvbW1vbmNhcC5jICAgICAgICAgICAgICAgIHwgIDcgKystCiBzZWN1cml0eS9pbnRlZ3Jp dHkvaW1hL2ltYV9wb2xpY3kuYyB8IDQwICsrKysrKysrKysrLS0tLS0KIHNlY3VyaXR5L2xhbmRs b2NrL2NyZWQuYyAgICAgICAgICAgIHwgIDIgKy0KIHNlY3VyaXR5L2xhbmRsb2NrL2ZzLmMgICAg ICAgICAgICAgIHwgIDIgKy0KIHNlY3VyaXR5L2xhbmRsb2NrL3B0cmFjZS5jICAgICAgICAgIHwg IDIgKy0KIHNlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmMgICAgICAgICAgIHwgIDQgKysKIHNlY3Vy aXR5L2xhbmRsb2NrL3NldHVwLmggICAgICAgICAgIHwgIDEgKwogc2VjdXJpdHkvbG9hZHBpbi9s b2FkcGluLmMgICAgICAgICAgfCAgOCArKystCiBzZWN1cml0eS9sb2NrZG93bi9sb2NrZG93bi5j ICAgICAgICB8ICA3ICsrLQogc2VjdXJpdHkvc2FmZXNldGlkL2xzbS5jICAgICAgICAgICAgfCAg OCArKystCiBzZWN1cml0eS9zZWN1cml0eS5jICAgICAgICAgICAgICAgICB8IDcyICsrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tCiBzZWN1cml0eS9zZWxpbnV4L2hvb2tzLmMgICAgICAgICAg ICB8ICA4ICsrKy0KIHNlY3VyaXR5L3NtYWNrL3NtYWNrX2xzbS5jICAgICAgICAgIHwgIDcgKyst CiBzZWN1cml0eS90b21veW8vdG9tb3lvLmMgICAgICAgICAgICB8ICA4ICsrKy0KIHNlY3VyaXR5 L3lhbWEveWFtYV9sc20uYyAgICAgICAgICAgIHwgIDcgKystCiAyMiBmaWxlcyBjaGFuZ2VkLCAy NjIgaW5zZXJ0aW9ucygrKSwgNjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9hdWRpdC5oIGIvaW5jbHVkZS9saW51eC9hdWRpdC5oCmluZGV4IDgyYjdjMTExNmE4NS4u NDE4YTQ4NWFmMTE0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2F1ZGl0LmgKKysrIGIvaW5j bHVkZS9saW51eC9hdWRpdC5oCkBAIC0xMSw2ICsxMSw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9z Y2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NlY3Vy aXR5Lmg+CiAjaW5jbHVkZSA8dWFwaS9saW51eC9hdWRpdC5oPgogI2luY2x1ZGUgPHVhcGkvbGlu dXgvbmV0ZmlsdGVyL25mX3RhYmxlcy5oPgogCkBAIC02NSw4ICs2Niw5IEBAIHN0cnVjdCBhdWRp dF9maWVsZCB7CiAJCWt1aWRfdAkJCXVpZDsKIAkJa2dpZF90CQkJZ2lkOwogCQlzdHJ1Y3Qgewor CQkJYm9vbAkJbHNtX2lzc2V0OwogCQkJY2hhcgkJKmxzbV9zdHI7Ci0JCQl2b2lkCQkqbHNtX3J1 bGU7CisJCQl2b2lkCQkqbHNtX3J1bGVzW0xTTUJMT0JfRU5UUklFU107CiAJCX07CiAJfTsKIAl1 MzIJCQkJb3A7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2xzbV9ob29rcy5oIGIvaW5jbHVk ZS9saW51eC9sc21faG9va3MuaAppbmRleCBhZmQzYjE2ODc1YjAuLmM2MWExNmYwYTViYyAxMDA2 NDQKLS0tIGEvaW5jbHVkZS9saW51eC9sc21faG9va3MuaAorKysgYi9pbmNsdWRlL2xpbnV4L2xz bV9ob29rcy5oCkBAIC0xNTcwLDYgKzE1NzAsMTQgQEAgc3RydWN0IHNlY3VyaXR5X2hvb2tfaGVh ZHMgewogCSN1bmRlZiBMU01fSE9PSwogfSBfX3JhbmRvbWl6ZV9sYXlvdXQ7CiAKKy8qCisgKiBJ bmZvcm1hdGlvbiB0aGF0IGlkZW50aWZpZXMgYSBzZWN1cml0eSBtb2R1bGUuCisgKi8KK3N0cnVj dCBsc21faWQgeworCWNvbnN0IGNoYXIJKmxzbTsJLyogTmFtZSBvZiB0aGUgTFNNICovCisJaW50 CQlzbG90OwkvKiBTbG90IGluIGxzbWJsb2IgaWYgb25lIGlzIGFsbG9jYXRlZCAqLworfTsKKwog LyoKICAqIFNlY3VyaXR5IG1vZHVsZSBob29rIGxpc3Qgc3RydWN0dXJlLgogICogRm9yIHVzZSB3 aXRoIGdlbmVyaWMgbGlzdCBtYWNyb3MgZm9yIGNvbW1vbiBvcGVyYXRpb25zLgpAQCAtMTU3OCw3 ICsxNTg2LDcgQEAgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCB7CiAJc3RydWN0IGhsaXN0X25v ZGUJCWxpc3Q7CiAJc3RydWN0IGhsaXN0X2hlYWQJCSpoZWFkOwogCXVuaW9uIHNlY3VyaXR5X2xp c3Rfb3B0aW9ucwlob29rOwotCWNoYXIJCQkJKmxzbTsKKwlzdHJ1Y3QgbHNtX2lkCQkJKmxzbWlk OwogfSBfX3JhbmRvbWl6ZV9sYXlvdXQ7CiAKIC8qCkBAIC0xNjE0LDcgKzE2MjIsNyBAQCBleHRl cm4gc3RydWN0IHNlY3VyaXR5X2hvb2tfaGVhZHMgc2VjdXJpdHlfaG9va19oZWFkczsKIGV4dGVy biBjaGFyICpsc21fbmFtZXM7CiAKIGV4dGVybiB2b2lkIHNlY3VyaXR5X2FkZF9ob29rcyhzdHJ1 Y3Qgc2VjdXJpdHlfaG9va19saXN0ICpob29rcywgaW50IGNvdW50LAotCQkJCWNoYXIgKmxzbSk7 CisJCQkgICAgICAgc3RydWN0IGxzbV9pZCAqbHNtaWQpOwogCiAjZGVmaW5lIExTTV9GTEFHX0xF R0FDWV9NQUpPUglCSVQoMCkKICNkZWZpbmUgTFNNX0ZMQUdfRVhDTFVTSVZFCUJJVCgxKQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oIGIvaW5jbHVkZS9saW51eC9zZWN1cml0 eS5oCmluZGV4IDA2ZjdjNTBjZTc3Zi4uNjI1ODhiYzUyMmJhIDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3NlY3VyaXR5LmgKKysrIGIvaW5jbHVkZS9saW51eC9zZWN1cml0eS5oCkBAIC0xMzMs NiArMTMzLDY1IEBAIGVudW0gbG9ja2Rvd25fcmVhc29uIHsKIAogZXh0ZXJuIGNvbnN0IGNoYXIg KmNvbnN0IGxvY2tkb3duX3JlYXNvbnNbTE9DS0RPV05fQ09ORklERU5USUFMSVRZX01BWCsxXTsK IAorLyoKKyAqIERhdGEgZXhwb3J0ZWQgYnkgdGhlIHNlY3VyaXR5IG1vZHVsZXMKKyAqCisgKiBB bnkgTFNNIHRoYXQgcHJvdmlkZXMgc2VjaWQgb3Igc2VjY3R4IGJhc2VkIGhvb2tzIG11c3QgYmUg aW5jbHVkZWQuCisgKi8KKyNkZWZpbmUgTFNNQkxPQl9FTlRSSUVTICggXAorCShJU19FTkFCTEVE KENPTkZJR19TRUNVUklUWV9TRUxJTlVYKSA/IDEgOiAwKSArIFwKKwkoSVNfRU5BQkxFRChDT05G SUdfU0VDVVJJVFlfU01BQ0spID8gMSA6IDApICsgXAorCShJU19FTkFCTEVEKENPTkZJR19TRUNV UklUWV9BUFBBUk1PUikgPyAxIDogMCkgKyBcCisJKElTX0VOQUJMRUQoQ09ORklHX0JQRl9MU00p ID8gMSA6IDApKQorCitzdHJ1Y3QgbHNtYmxvYiB7CisJdTMyICAgICBzZWNpZFtMU01CTE9CX0VO VFJJRVNdOworfTsKKworI2RlZmluZSBMU01CTE9CX0lOVkFMSUQJCS0xCS8qIE5vdCBhIHZhbGlk IExTTSBzbG90IG51bWJlciAqLworI2RlZmluZSBMU01CTE9CX05FRURFRAkJLTIJLyogU2xvdCBy ZXF1ZXN0ZWQgb24gaW5pdGlhbGl6YXRpb24gKi8KKyNkZWZpbmUgTFNNQkxPQl9OT1RfTkVFREVE CS0zCS8qIFNsb3Qgbm90IHJlcXVlc3RlZCAqLworCisvKioKKyAqIGxzbWJsb2JfaW5pdCAtIGlu aXRpYWxpemUgYW4gbHNtYmxvYiBzdHJ1Y3R1cmUKKyAqIEBibG9iOiBQb2ludGVyIHRvIHRoZSBk YXRhIHRvIGluaXRpYWxpemUKKyAqIEBzZWNpZDogVGhlIGluaXRpYWwgc2VjaWQgdmFsdWUKKyAq CisgKiBTZXQgYWxsIHNlY2lkIGZvciBhbGwgbW9kdWxlcyB0byB0aGUgc3BlY2lmaWVkIHZhbHVl LgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgbHNtYmxvYl9pbml0KHN0cnVjdCBsc21ibG9iICpi bG9iLCB1MzIgc2VjaWQpCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgTFNNQkxPQl9F TlRSSUVTOyBpKyspCisJCWJsb2ItPnNlY2lkW2ldID0gc2VjaWQ7Cit9CisKKy8qKgorICogbHNt YmxvYl9pc19zZXQgLSByZXBvcnQgaWYgdGhlcmUgaXMgYW4gdmFsdWUgaW4gdGhlIGxzbWJsb2IK KyAqIEBibG9iOiBQb2ludGVyIHRvIHRoZSBleHBvcnRlZCBMU00gZGF0YQorICoKKyAqIFJldHVy bnMgdHJ1ZSBpZiB0aGVyZSBpcyBhIHNlY2lkIHNldCwgZmFsc2Ugb3RoZXJ3aXNlCisgKi8KK3N0 YXRpYyBpbmxpbmUgYm9vbCBsc21ibG9iX2lzX3NldChzdHJ1Y3QgbHNtYmxvYiAqYmxvYikKK3sK KwlzdHJ1Y3QgbHNtYmxvYiBlbXB0eSA9IHt9OworCisJcmV0dXJuICEhbWVtY21wKGJsb2IsICZl bXB0eSwgc2l6ZW9mKCpibG9iKSk7Cit9CisKKy8qKgorICogbHNtYmxvYl9lcXVhbCAtIHJlcG9y dCBpZiB0aGUgdHdvIGxzbWJsb2IncyBhcmUgZXF1YWwKKyAqIEBibG9iYTogUG9pbnRlciB0byBv bmUgTFNNIGRhdGEKKyAqIEBibG9iYjogUG9pbnRlciB0byB0aGUgb3RoZXIgTFNNIGRhdGEKKyAq CisgKiBSZXR1cm5zIHRydWUgaWYgYWxsIGVudHJpZXMgaW4gdGhlIHR3byBhcmUgZXF1YWwsIGZh bHNlIG90aGVyd2lzZQorICovCitzdGF0aWMgaW5saW5lIGJvb2wgbHNtYmxvYl9lcXVhbChzdHJ1 Y3QgbHNtYmxvYiAqYmxvYmEsIHN0cnVjdCBsc21ibG9iICpibG9iYikKK3sKKwlyZXR1cm4gIW1l bWNtcChibG9iYSwgYmxvYmIsIHNpemVvZigqYmxvYmEpKTsKK30KKwogLyogVGhlc2UgZnVuY3Rp b25zIGFyZSBpbiBzZWN1cml0eS9jb21tb25jYXAuYyAqLwogZXh0ZXJuIGludCBjYXBfY2FwYWJs ZShjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwgc3RydWN0IHVzZXJfbmFtZXNwYWNlICpucywKIAkJ ICAgICAgIGludCBjYXAsIHVuc2lnbmVkIGludCBvcHRzKTsKQEAgLTE4ODEsOCArMTk0MCw4IEBA IHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X2tleV9nZXRzZWN1cml0eShzdHJ1Y3Qga2V5ICpr ZXksIGNoYXIgKipfYnVmZmVyKQogI2lmZGVmIENPTkZJR19TRUNVUklUWQogaW50IHNlY3VyaXR5 X2F1ZGl0X3J1bGVfaW5pdCh1MzIgZmllbGQsIHUzMiBvcCwgY2hhciAqcnVsZXN0ciwgdm9pZCAq KmxzbXJ1bGUpOwogaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfa25vd24oc3RydWN0IGF1ZGl0X2ty dWxlICprcnVsZSk7Ci1pbnQgc2VjdXJpdHlfYXVkaXRfcnVsZV9tYXRjaCh1MzIgc2VjaWQsIHUz MiBmaWVsZCwgdTMyIG9wLCB2b2lkICpsc21ydWxlKTsKLXZvaWQgc2VjdXJpdHlfYXVkaXRfcnVs ZV9mcmVlKHZvaWQgKmxzbXJ1bGUpOworaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfbWF0Y2godTMy IHNlY2lkLCB1MzIgZmllbGQsIHUzMiBvcCwgdm9pZCAqKmxzbXJ1bGUpOwordm9pZCBzZWN1cml0 eV9hdWRpdF9ydWxlX2ZyZWUodm9pZCAqKmxzbXJ1bGUpOwogCiAjZWxzZQogCkBAIC0xODk4LDEy ICsxOTU3LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfa25vd24o c3RydWN0IGF1ZGl0X2tydWxlICprcnVsZSkKIH0KIAogc3RhdGljIGlubGluZSBpbnQgc2VjdXJp dHlfYXVkaXRfcnVsZV9tYXRjaCh1MzIgc2VjaWQsIHUzMiBmaWVsZCwgdTMyIG9wLAotCQkJCQkg ICAgdm9pZCAqbHNtcnVsZSkKKwkJCQkJICAgIHZvaWQgKipsc21ydWxlKQogewogCXJldHVybiAw OwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2VjdXJpdHlfYXVkaXRfcnVsZV9mcmVlKHZvaWQg KmxzbXJ1bGUpCitzdGF0aWMgaW5saW5lIHZvaWQgc2VjdXJpdHlfYXVkaXRfcnVsZV9mcmVlKHZv aWQgKipsc21ydWxlKQogeyB9CiAKICNlbmRpZiAvKiBDT05GSUdfU0VDVVJJVFkgKi8KZGlmZiAt LWdpdCBhL2tlcm5lbC9hdWRpdGZpbHRlci5jIGIva2VybmVsL2F1ZGl0ZmlsdGVyLmMKaW5kZXgg ZGIyYzZiNTlkZmMzLi5hMjM0MGU4MWNmYTcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9hdWRpdGZpbHRl ci5jCisrKyBiL2tlcm5lbC9hdWRpdGZpbHRlci5jCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyB2 b2lkIGF1ZGl0X2ZyZWVfbHNtX2ZpZWxkKHN0cnVjdCBhdWRpdF9maWVsZCAqZikKIAljYXNlIEFV RElUX09CSl9MRVZfTE9XOgogCWNhc2UgQVVESVRfT0JKX0xFVl9ISUdIOgogCQlrZnJlZShmLT5s c21fc3RyKTsKLQkJc2VjdXJpdHlfYXVkaXRfcnVsZV9mcmVlKGYtPmxzbV9ydWxlKTsKKwkJc2Vj dXJpdHlfYXVkaXRfcnVsZV9mcmVlKGYtPmxzbV9ydWxlcyk7CiAJfQogfQogCkBAIC01MTksOSAr NTE5LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgYXVkaXRfZW50cnkgKmF1ZGl0X2RhdGFfdG9fZW50cnko c3RydWN0IGF1ZGl0X3J1bGVfZGF0YSAqZGF0YSwKIAkJCQlnb3RvIGV4aXRfZnJlZTsKIAkJCX0K IAkJCWVudHJ5LT5ydWxlLmJ1ZmxlbiArPSBmX3ZhbDsKKwkJCWYtPmxzbV9pc3NldCA9IHRydWU7 CiAJCQlmLT5sc21fc3RyID0gc3RyOwogCQkJZXJyID0gc2VjdXJpdHlfYXVkaXRfcnVsZV9pbml0 KGYtPnR5cGUsIGYtPm9wLCBzdHIsCi0JCQkJCQkgICAgICAgKHZvaWQgKiopJmYtPmxzbV9ydWxl KTsKKwkJCQkJCSAgICAgICBmLT5sc21fcnVsZXMpOwogCQkJLyogS2VlcCBjdXJyZW50bHkgaW52 YWxpZCBmaWVsZHMgYXJvdW5kIGluIGNhc2UgdGhleQogCQkJICogYmVjb21lIHZhbGlkIGFmdGVy IGEgcG9saWN5IHJlbG9hZC4gKi8KIAkJCWlmIChlcnIgPT0gLUVJTlZBTCkgewpAQCAtNzc0LDcg Kzc3NSw3IEBAIHN0YXRpYyBpbnQgYXVkaXRfY29tcGFyZV9ydWxlKHN0cnVjdCBhdWRpdF9rcnVs ZSAqYSwgc3RydWN0IGF1ZGl0X2tydWxlICpiKQogCXJldHVybiAwOwogfQogCi0vKiBEdXBsaWNh dGUgTFNNIGZpZWxkIGluZm9ybWF0aW9uLiAgVGhlIGxzbV9ydWxlIGlzIG9wYXF1ZSwgc28gbXVz dCBiZQorLyogRHVwbGljYXRlIExTTSBmaWVsZCBpbmZvcm1hdGlvbi4gIFRoZSBsc21fcnVsZXMg aXMgb3BhcXVlLCBzbyBtdXN0IGJlCiAgKiByZS1pbml0aWFsaXplZC4gKi8KIHN0YXRpYyBpbmxp bmUgaW50IGF1ZGl0X2R1cGVfbHNtX2ZpZWxkKHN0cnVjdCBhdWRpdF9maWVsZCAqZGYsCiAJCQkJ CSAgIHN0cnVjdCBhdWRpdF9maWVsZCAqc2YpCkBAIC03ODgsOSArNzg5LDkgQEAgc3RhdGljIGlu bGluZSBpbnQgYXVkaXRfZHVwZV9sc21fZmllbGQoc3RydWN0IGF1ZGl0X2ZpZWxkICpkZiwKIAkJ cmV0dXJuIC1FTk9NRU07CiAJZGYtPmxzbV9zdHIgPSBsc21fc3RyOwogCi0JLyogb3VyIG93biAo cmVmcmVzaGVkKSBjb3B5IG9mIGxzbV9ydWxlICovCisJLyogb3VyIG93biAocmVmcmVzaGVkKSBj b3B5IG9mIGxzbV9ydWxlcyAqLwogCXJldCA9IHNlY3VyaXR5X2F1ZGl0X3J1bGVfaW5pdChkZi0+ dHlwZSwgZGYtPm9wLCBkZi0+bHNtX3N0ciwKLQkJCQkgICAgICAgKHZvaWQgKiopJmRmLT5sc21f cnVsZSk7CisJCQkJICAgICAgIGRmLT5sc21fcnVsZXMpOwogCS8qIEtlZXAgY3VycmVudGx5IGlu dmFsaWQgZmllbGRzIGFyb3VuZCBpbiBjYXNlIHRoZXkKIAkgKiBiZWNvbWUgdmFsaWQgYWZ0ZXIg YSBwb2xpY3kgcmVsb2FkLiAqLwogCWlmIChyZXQgPT0gLUVJTlZBTCkgewpAQCAtODQyLDcgKzg0 Myw3IEBAIHN0cnVjdCBhdWRpdF9lbnRyeSAqYXVkaXRfZHVwZV9ydWxlKHN0cnVjdCBhdWRpdF9r cnVsZSAqb2xkKQogCW5ldy0+dHJlZSA9IG9sZC0+dHJlZTsKIAltZW1jcHkobmV3LT5maWVsZHMs IG9sZC0+ZmllbGRzLCBzaXplb2Yoc3RydWN0IGF1ZGl0X2ZpZWxkKSAqIGZjb3VudCk7CiAKLQkv KiBkZWVwIGNvcHkgdGhpcyBpbmZvcm1hdGlvbiwgdXBkYXRpbmcgdGhlIGxzbV9ydWxlIGZpZWxk cywgYmVjYXVzZQorCS8qIGRlZXAgY29weSB0aGlzIGluZm9ybWF0aW9uLCB1cGRhdGluZyB0aGUg bHNtX3J1bGVzIGZpZWxkcywgYmVjYXVzZQogCSAqIHRoZSBvcmlnaW5hbHMgd2lsbCBhbGwgYmUg ZnJlZWQgd2hlbiB0aGUgb2xkIHJ1bGUgaXMgZnJlZWQuICovCiAJZm9yIChpID0gMDsgaSA8IGZj b3VudDsgaSsrKSB7CiAJCXN3aXRjaCAobmV3LT5maWVsZHNbaV0udHlwZSkgewpAQCAtMTM1OCwx MSArMTM1OSwxMiBAQCBpbnQgYXVkaXRfZmlsdGVyKGludCBtc2d0eXBlLCB1bnNpZ25lZCBpbnQg bGlzdHR5cGUpCiAJCQljYXNlIEFVRElUX1NVQkpfVFlQRToKIAkJCWNhc2UgQVVESVRfU1VCSl9T RU46CiAJCQljYXNlIEFVRElUX1NVQkpfQ0xSOgotCQkJCWlmIChmLT5sc21fcnVsZSkgeworCQkJ CWlmIChmLT5sc21faXNzZXQpIHsKIAkJCQkJc2VjdXJpdHlfdGFza19nZXRzZWNpZF9zdWJqKGN1 cnJlbnQsCiAJCQkJCQkJCSAgICAmc2lkKTsKIAkJCQkJcmVzdWx0ID0gc2VjdXJpdHlfYXVkaXRf cnVsZV9tYXRjaChzaWQsCi0JCQkJCQkgICBmLT50eXBlLCBmLT5vcCwgZi0+bHNtX3J1bGUpOwor CQkJCQkJICAgZi0+dHlwZSwgZi0+b3AsCisJCQkJCQkgICBmLT5sc21fcnVsZXMpOwogCQkJCX0K IAkJCQlicmVhazsKIAkJCWNhc2UgQVVESVRfRVhFOgpAQCAtMTM4OSw3ICsxMzkxLDcgQEAgaW50 IGF1ZGl0X2ZpbHRlcihpbnQgbXNndHlwZSwgdW5zaWduZWQgaW50IGxpc3R0eXBlKQogCXJldHVy biByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgdXBkYXRlX2xzbV9ydWxlKHN0cnVjdCBhdWRpdF9rcnVs ZSAqcikKK3N0YXRpYyBpbnQgdXBkYXRlX2xzbV9ydWxlcyhzdHJ1Y3QgYXVkaXRfa3J1bGUgKnIp CiB7CiAJc3RydWN0IGF1ZGl0X2VudHJ5ICplbnRyeSA9IGNvbnRhaW5lcl9vZihyLCBzdHJ1Y3Qg YXVkaXRfZW50cnksIHJ1bGUpOwogCXN0cnVjdCBhdWRpdF9lbnRyeSAqbmVudHJ5OwpAQCAtMTQy MSw3ICsxNDIzLDcgQEAgc3RhdGljIGludCB1cGRhdGVfbHNtX3J1bGUoc3RydWN0IGF1ZGl0X2ty dWxlICpyKQogCXJldHVybiBlcnI7CiB9CiAKLS8qIFRoaXMgZnVuY3Rpb24gd2lsbCByZS1pbml0 aWFsaXplIHRoZSBsc21fcnVsZSBmaWVsZCBvZiBhbGwgYXBwbGljYWJsZSBydWxlcy4KKy8qIFRo aXMgZnVuY3Rpb24gd2lsbCByZS1pbml0aWFsaXplIHRoZSBsc21fcnVsZXMgZmllbGQgb2YgYWxs IGFwcGxpY2FibGUgcnVsZXMuCiAgKiBJdCB3aWxsIHRyYXZlcnNlIHRoZSBmaWx0ZXIgbGlzdHMg c2VyYXJjaGluZyBmb3IgcnVsZXMgdGhhdCBjb250YWluIExTTQogICogc3BlY2lmaWMgZmlsdGVy IGZpZWxkcy4gIFdoZW4gc3VjaCBhIHJ1bGUgaXMgZm91bmQsIGl0IGlzIGNvcGllZCwgdGhlCiAg KiBMU00gZmllbGQgaXMgcmUtaW5pdGlhbGl6ZWQsIGFuZCB0aGUgb2xkIHJ1bGUgaXMgcmVwbGFj ZWQgd2l0aCB0aGUKQEAgLTE0MzYsNyArMTQzOCw3IEBAIGludCBhdWRpdF91cGRhdGVfbHNtX3J1 bGVzKHZvaWQpCiAKIAlmb3IgKGkgPSAwOyBpIDwgQVVESVRfTlJfRklMVEVSUzsgaSsrKSB7CiAJ CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyLCBuLCAmYXVkaXRfcnVsZXNfbGlzdFtpXSwgbGlz dCkgewotCQkJaW50IHJlcyA9IHVwZGF0ZV9sc21fcnVsZShyKTsKKwkJCWludCByZXMgPSB1cGRh dGVfbHNtX3J1bGVzKHIpOwogCQkJaWYgKCFlcnIpCiAJCQkJZXJyID0gcmVzOwogCQl9CmRpZmYg LS1naXQgYS9rZXJuZWwvYXVkaXRzYy5jIGIva2VybmVsL2F1ZGl0c2MuYwppbmRleCAxNzVlZjZm M2VhNGUuLjM5MmFmZTNlMmZkNiAxMDA2NDQKLS0tIGEva2VybmVsL2F1ZGl0c2MuYworKysgYi9r ZXJuZWwvYXVkaXRzYy5jCkBAIC02NjUsMTQgKzY2NSwxMyBAQCBzdGF0aWMgaW50IGF1ZGl0X2Zp bHRlcl9ydWxlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAkJCSAgIG1hdGNoIGZvciBub3cg dG8gYXZvaWQgbG9zaW5nIGluZm9ybWF0aW9uIHRoYXQKIAkJCSAgIG1heSBiZSB3YW50ZWQuICAg QW4gZXJyb3IgbWVzc2FnZSB3aWxsIGFsc28gYmUKIAkJCSAgIGxvZ2dlZCB1cG9uIGVycm9yICov Ci0JCQlpZiAoZi0+bHNtX3J1bGUpIHsKKwkJCWlmIChmLT5sc21faXNzZXQpIHsKIAkJCQlpZiAo bmVlZF9zaWQpIHsKIAkJCQkJc2VjdXJpdHlfdGFza19nZXRzZWNpZF9zdWJqKHRzaywgJnNpZCk7 CiAJCQkJCW5lZWRfc2lkID0gMDsKIAkJCQl9CiAJCQkJcmVzdWx0ID0gc2VjdXJpdHlfYXVkaXRf cnVsZV9tYXRjaChzaWQsIGYtPnR5cGUsCi0JCQkJCQkJCSAgIGYtPm9wLAotCQkJCQkJCQkgICBm LT5sc21fcnVsZSk7CisJCQkJCQkJZi0+b3AsIGYtPmxzbV9ydWxlcyk7CiAJCQl9CiAJCQlicmVh azsKIAkJY2FzZSBBVURJVF9PQkpfVVNFUjoKQEAgLTY4MiwyMSArNjgxLDIxIEBAIHN0YXRpYyBp bnQgYXVkaXRfZmlsdGVyX3J1bGVzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAogCQljYXNlIEFV RElUX09CSl9MRVZfSElHSDoKIAkJCS8qIFRoZSBhYm92ZSBub3RlIGZvciBBVURJVF9TVUJKX1VT RVIuLi5BVURJVF9TVUJKX0NMUgogCQkJICAgYWxzbyBhcHBsaWVzIGhlcmUgKi8KLQkJCWlmIChm LT5sc21fcnVsZSkgeworCQkJaWYgKGYtPmxzbV9pc3NldCkgewogCQkJCS8qIEZpbmQgZmlsZXMg dGhhdCBtYXRjaCAqLwogCQkJCWlmIChuYW1lKSB7CiAJCQkJCXJlc3VsdCA9IHNlY3VyaXR5X2F1 ZGl0X3J1bGVfbWF0Y2goCiAJCQkJCQkJCW5hbWUtPm9zaWQsCiAJCQkJCQkJCWYtPnR5cGUsCiAJ CQkJCQkJCWYtPm9wLAotCQkJCQkJCQlmLT5sc21fcnVsZSk7CisJCQkJCQkJCWYtPmxzbV9ydWxl cyk7CiAJCQkJfSBlbHNlIGlmIChjdHgpIHsKIAkJCQkJbGlzdF9mb3JfZWFjaF9lbnRyeShuLCAm Y3R4LT5uYW1lc19saXN0LCBsaXN0KSB7CiAJCQkJCQlpZiAoc2VjdXJpdHlfYXVkaXRfcnVsZV9t YXRjaCgKIAkJCQkJCQkJbi0+b3NpZCwKIAkJCQkJCQkJZi0+dHlwZSwKIAkJCQkJCQkJZi0+b3As Ci0JCQkJCQkJCWYtPmxzbV9ydWxlKSkgeworCQkJCQkJCQlmLT5sc21fcnVsZXMpKSB7CiAJCQkJ CQkJKytyZXN1bHQ7CiAJCQkJCQkJYnJlYWs7CiAJCQkJCQl9CkBAIC03MDcsNyArNzA2LDcgQEAg c3RhdGljIGludCBhdWRpdF9maWx0ZXJfcnVsZXMoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCiAJ CQkJCWJyZWFrOwogCQkJCWlmIChzZWN1cml0eV9hdWRpdF9ydWxlX21hdGNoKGN0eC0+aXBjLm9z aWQsCiAJCQkJCQkJICAgICAgZi0+dHlwZSwgZi0+b3AsCi0JCQkJCQkJICAgICAgZi0+bHNtX3J1 bGUpKQorCQkJCQkJCSAgICAgIGYtPmxzbV9ydWxlcykpCiAJCQkJCSsrcmVzdWx0OwogCQkJfQog CQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9hcHBhcm1vci9sc20uYyBiL3NlY3VyaXR5 L2FwcGFybW9yL2xzbS5jCmluZGV4IDQxMTM1MTZmYjYyZS4uMzkyZTI1OTQwZDFmIDEwMDY0NAot LS0gYS9zZWN1cml0eS9hcHBhcm1vci9sc20uYworKysgYi9zZWN1cml0eS9hcHBhcm1vci9sc20u YwpAQCAtMTE2MSw2ICsxMTYxLDExIEBAIHN0cnVjdCBsc21fYmxvYl9zaXplcyBhcHBhcm1vcl9i bG9iX3NpemVzIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJLmxic19zb2NrID0gc2l6ZW9mKHN0 cnVjdCBhYV9za19jdHgpLAogfTsKIAorc3RhdGljIHN0cnVjdCBsc21faWQgYXBwYXJtb3JfbHNt aWQgX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9ICJhcHBhcm1vciIsCisJLnNsb3Qg PSBMU01CTE9CX05FRURFRAorfTsKKwogc3RhdGljIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3Qg YXBwYXJtb3JfaG9va3NbXSBfX2xzbV9yb19hZnRlcl9pbml0ID0gewogCUxTTV9IT09LX0lOSVQo cHRyYWNlX2FjY2Vzc19jaGVjaywgYXBwYXJtb3JfcHRyYWNlX2FjY2Vzc19jaGVjayksCiAJTFNN X0hPT0tfSU5JVChwdHJhY2VfdHJhY2VtZSwgYXBwYXJtb3JfcHRyYWNlX3RyYWNlbWUpLApAQCAt MTg2Miw3ICsxODY3LDcgQEAgc3RhdGljIGludCBfX2luaXQgYXBwYXJtb3JfaW5pdCh2b2lkKQog CQlnb3RvIGJ1ZmZlcnNfb3V0OwogCX0KIAlzZWN1cml0eV9hZGRfaG9va3MoYXBwYXJtb3JfaG9v a3MsIEFSUkFZX1NJWkUoYXBwYXJtb3JfaG9va3MpLAotCQkJCSJhcHBhcm1vciIpOworCQkJCSZh cHBhcm1vcl9sc21pZCk7CiAKIAkvKiBSZXBvcnQgdGhhdCBBcHBBcm1vciBzdWNjZXNzZnVsbHkg aW5pdGlhbGl6ZWQgKi8KIAlhcHBhcm1vcl9pbml0aWFsaXplZCA9IDE7CmRpZmYgLS1naXQgYS9z ZWN1cml0eS9icGYvaG9va3MuYyBiL3NlY3VyaXR5L2JwZi9ob29rcy5jCmluZGV4IGU1OTcxZmE3 NGZkNy4uN2E1OGZlOWFiOGM0IDEwMDY0NAotLS0gYS9zZWN1cml0eS9icGYvaG9va3MuYworKysg Yi9zZWN1cml0eS9icGYvaG9va3MuYwpAQCAtMTUsOSArMTUsMTkgQEAgc3RhdGljIHN0cnVjdCBz ZWN1cml0eV9ob29rX2xpc3QgYnBmX2xzbV9ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7 CiAJTFNNX0hPT0tfSU5JVCh0YXNrX2ZyZWUsIGJwZl90YXNrX3N0b3JhZ2VfZnJlZSksCiB9Owog CisvKgorICogc2xvdCBoYXMgdG8gYmUgTFNNQkxPQl9ORUVERUQgYmVjYXVzZSBzb21lIG9mIHRo ZSBob29rcworICogc3VwcGxpZWQgYnkgdGhpcyBtb2R1bGUgcmVxdWlyZSBhIHNsb3QuCisgKi8K K3N0cnVjdCBsc21faWQgYnBmX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSA9 ICJicGYiLAorCS5zbG90ID0gTFNNQkxPQl9ORUVERUQKK307CisKIHN0YXRpYyBpbnQgX19pbml0 IGJwZl9sc21faW5pdCh2b2lkKQogewotCXNlY3VyaXR5X2FkZF9ob29rcyhicGZfbHNtX2hvb2tz LCBBUlJBWV9TSVpFKGJwZl9sc21faG9va3MpLCAiYnBmIik7CisJc2VjdXJpdHlfYWRkX2hvb2tz KGJwZl9sc21faG9va3MsIEFSUkFZX1NJWkUoYnBmX2xzbV9ob29rcyksCisJCQkgICAmYnBmX2xz bWlkKTsKIAlwcl9pbmZvKCJMU00gc3VwcG9ydCBmb3IgZUJQRiBhY3RpdmVcbiIpOwogCXJldHVy biAwOwogfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvY29tbW9uY2FwLmMgYi9zZWN1cml0eS9jb21t b25jYXAuYwppbmRleCAzZjgxMGQzN2I3MWIuLjYyODY4NWNmMjBlMyAxMDA2NDQKLS0tIGEvc2Vj dXJpdHkvY29tbW9uY2FwLmMKKysrIGIvc2VjdXJpdHkvY29tbW9uY2FwLmMKQEAgLTE0NDMsNiAr MTQ0MywxMSBAQCBpbnQgY2FwX21tYXBfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQg bG9uZyByZXFwcm90LAogCiAjaWZkZWYgQ09ORklHX1NFQ1VSSVRZCiAKK3N0YXRpYyBzdHJ1Y3Qg bHNtX2lkIGNhcGFiaWxpdHlfbHNtaWQgX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9 ICJjYXBhYmlsaXR5IiwKKwkuc2xvdCA9IExTTUJMT0JfTk9UX05FRURFRAorfTsKKwogc3RhdGlj IHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgY2FwYWJpbGl0eV9ob29rc1tdIF9fbHNtX3JvX2Fm dGVyX2luaXQgPSB7CiAJTFNNX0hPT0tfSU5JVChjYXBhYmxlLCBjYXBfY2FwYWJsZSksCiAJTFNN X0hPT0tfSU5JVChzZXR0aW1lLCBjYXBfc2V0dGltZSksCkBAIC0xNDY3LDcgKzE0NzIsNyBAQCBz dGF0aWMgc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCBjYXBhYmlsaXR5X2hvb2tzW10gX19sc21f cm9fYWZ0ZXJfaW5pdCA9IHsKIHN0YXRpYyBpbnQgX19pbml0IGNhcGFiaWxpdHlfaW5pdCh2b2lk KQogewogCXNlY3VyaXR5X2FkZF9ob29rcyhjYXBhYmlsaXR5X2hvb2tzLCBBUlJBWV9TSVpFKGNh cGFiaWxpdHlfaG9va3MpLAotCQkJCSJjYXBhYmlsaXR5Iik7CisJCQkgICAmY2FwYWJpbGl0eV9s c21pZCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2ludGVncml0eS9p bWEvaW1hX3BvbGljeS5jIGIvc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfcG9saWN5LmMKaW5k ZXggZmQ1ZDQ2ZTUxMWYxLi41YzQwNjc3ZTg4MWMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2ludGVn cml0eS9pbWEvaW1hX3BvbGljeS5jCisrKyBiL3NlY3VyaXR5L2ludGVncml0eS9pbWEvaW1hX3Bv bGljeS5jCkBAIC04MCw3ICs4MCw3IEBAIHN0cnVjdCBpbWFfcnVsZV9lbnRyeSB7CiAJYm9vbCAo KmZvd25lcl9vcCkoa3VpZF90LCBrdWlkX3QpOyAvKiB1aWRfZXEoKSwgdWlkX2d0KCksIHVpZF9s dCgpICovCiAJaW50IHBjcjsKIAlzdHJ1Y3QgewotCQl2b2lkICpydWxlOwkvKiBMU00gZmlsZSBt ZXRhZGF0YSBzcGVjaWZpYyAqLworCQl2b2lkICpydWxlc1tMU01CTE9CX0VOVFJJRVNdOyAvKiBM U00gZmlsZSBtZXRhZGF0YSBzcGVjaWZpYyAqLwogCQljaGFyICphcmdzX3A7CS8qIGF1ZGl0IHZh bHVlICovCiAJCWludCB0eXBlOwkvKiBhdWRpdCB0eXBlICovCiAJfSBsc21bTUFYX0xTTV9SVUxF U107CkBAIC05MCw2ICs5MCwyMiBAQCBzdHJ1Y3QgaW1hX3J1bGVfZW50cnkgewogCXN0cnVjdCBp bWFfdGVtcGxhdGVfZGVzYyAqdGVtcGxhdGU7CiB9OwogCisvKioKKyAqIGltYV9sc21faXNzZXQg LSBJcyBhIHJ1bGUgc2V0IGZvciBhbnkgb2YgdGhlIGFjdGl2ZSBzZWN1cml0eSBtb2R1bGVzCisg KiBAcnVsZXM6IFRoZSBzZXQgb2YgSU1BIHJ1bGVzIHRvIGNoZWNrCisgKgorICogSWYgYSBydWxl IGlzIHNldCBmb3IgYW55IExTTSByZXR1cm4gdHJ1ZSwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS4K KyAqLworc3RhdGljIGlubGluZSBib29sIGltYV9sc21faXNzZXQodm9pZCAqcnVsZXNbXSkKK3sK KwlpbnQgaTsKKworCWZvciAoaSA9IDA7IGkgPCBMU01CTE9CX0VOVFJJRVM7IGkrKykKKwkJaWYg KHJ1bGVzW2ldKQorCQkJcmV0dXJuIHRydWU7CisJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICog V2l0aG91dCBMU00gc3BlY2lmaWMga25vd2xlZGdlLCB0aGUgZGVmYXVsdCBwb2xpY3kgY2FuIG9u bHkgYmUKICAqIHdyaXR0ZW4gaW4gdGVybXMgb2YgLmFjdGlvbiwgLmZ1bmMsIC5tYXNrLCAuZnNt YWdpYywgLnVpZCwgYW5kIC5mb3duZXIKQEAgLTMzNSw5ICszNTEsMTEgQEAgc3RhdGljIHZvaWQg aW1hX2ZyZWVfcnVsZV9vcHRfbGlzdChzdHJ1Y3QgaW1hX3J1bGVfb3B0X2xpc3QgKm9wdF9saXN0 KQogc3RhdGljIHZvaWQgaW1hX2xzbV9mcmVlX3J1bGUoc3RydWN0IGltYV9ydWxlX2VudHJ5ICpl bnRyeSkKIHsKIAlpbnQgaTsKKwlpbnQgcjsKIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfTFNNX1JV TEVTOyBpKyspIHsKLQkJaW1hX2ZpbHRlcl9ydWxlX2ZyZWUoZW50cnktPmxzbVtpXS5ydWxlKTsK KwkJZm9yIChyID0gMDsgciA8IExTTUJMT0JfRU5UUklFUzsgcisrKQorCQkJaW1hX2ZpbHRlcl9y dWxlX2ZyZWUoZW50cnktPmxzbVtpXS5ydWxlc1tyXSk7CiAJCWtmcmVlKGVudHJ5LT5sc21baV0u YXJnc19wKTsKIAl9CiB9CkBAIC0zODgsOCArNDA2LDggQEAgc3RhdGljIHN0cnVjdCBpbWFfcnVs ZV9lbnRyeSAqaW1hX2xzbV9jb3B5X3J1bGUoc3RydWN0IGltYV9ydWxlX2VudHJ5ICplbnRyeSkK IAogCQlpbWFfZmlsdGVyX3J1bGVfaW5pdChuZW50cnktPmxzbVtpXS50eXBlLCBBdWRpdF9lcXVh bCwKIAkJCQkgICAgIG5lbnRyeS0+bHNtW2ldLmFyZ3NfcCwKLQkJCQkgICAgICZuZW50cnktPmxz bVtpXS5ydWxlKTsKLQkJaWYgKCFuZW50cnktPmxzbVtpXS5ydWxlKQorCQkJCSAgICAgJm5lbnRy eS0+bHNtW2ldLnJ1bGVzWzBdKTsKKwkJaWYgKCFpbWFfbHNtX2lzc2V0KG5lbnRyeS0+bHNtW2ld LnJ1bGVzKSkKIAkJCXByX3dhcm4oInJ1bGUgZm9yIExTTSBcJyVzXCcgaXMgdW5kZWZpbmVkXG4i LAogCQkJCW5lbnRyeS0+bHNtW2ldLmFyZ3NfcCk7CiAJfQpAQCAtNTc4LDcgKzU5Niw3IEBAIHN0 YXRpYyBib29sIGltYV9tYXRjaF9ydWxlcyhzdHJ1Y3QgaW1hX3J1bGVfZW50cnkgKnJ1bGUsCiAJ CWludCByYyA9IDA7CiAJCXUzMiBvc2lkOwogCi0JCWlmICghcnVsZS0+bHNtW2ldLnJ1bGUpIHsK KwkJaWYgKCFpbWFfbHNtX2lzc2V0KHJ1bGUtPmxzbVtpXS5ydWxlcykpIHsKIAkJCWlmICghcnVs ZS0+bHNtW2ldLmFyZ3NfcCkKIAkJCQljb250aW51ZTsKIAkJCWVsc2UKQEAgLTU5MSwxNCArNjA5 LDE0IEBAIHN0YXRpYyBib29sIGltYV9tYXRjaF9ydWxlcyhzdHJ1Y3QgaW1hX3J1bGVfZW50cnkg KnJ1bGUsCiAJCQlzZWN1cml0eV9pbm9kZV9nZXRzZWNpZChpbm9kZSwgJm9zaWQpOwogCQkJcmMg PSBpbWFfZmlsdGVyX3J1bGVfbWF0Y2gob3NpZCwgcnVsZS0+bHNtW2ldLnR5cGUsCiAJCQkJCQkg ICBBdWRpdF9lcXVhbCwKLQkJCQkJCSAgIHJ1bGUtPmxzbVtpXS5ydWxlKTsKKwkJCQkJCSAgIHJ1 bGUtPmxzbVtpXS5ydWxlcyk7CiAJCQlicmVhazsKIAkJY2FzZSBMU01fU1VCSl9VU0VSOgogCQlj YXNlIExTTV9TVUJKX1JPTEU6CiAJCWNhc2UgTFNNX1NVQkpfVFlQRToKIAkJCXJjID0gaW1hX2Zp bHRlcl9ydWxlX21hdGNoKHNlY2lkLCBydWxlLT5sc21baV0udHlwZSwKIAkJCQkJCSAgIEF1ZGl0 X2VxdWFsLAotCQkJCQkJICAgcnVsZS0+bHNtW2ldLnJ1bGUpOworCQkJCQkJICAgcnVsZS0+bHNt W2ldLnJ1bGVzKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CkBAIC05OTQsNyAr MTAxMiw3IEBAIHN0YXRpYyBpbnQgaW1hX2xzbV9ydWxlX2luaXQoc3RydWN0IGltYV9ydWxlX2Vu dHJ5ICplbnRyeSwKIHsKIAlpbnQgcmVzdWx0OwogCi0JaWYgKGVudHJ5LT5sc21bbHNtX3J1bGVd LnJ1bGUpCisJaWYgKGltYV9sc21faXNzZXQoZW50cnktPmxzbVtsc21fcnVsZV0ucnVsZXMpKQog CQlyZXR1cm4gLUVJTlZBTDsKIAogCWVudHJ5LT5sc21bbHNtX3J1bGVdLmFyZ3NfcCA9IG1hdGNo X3N0cmR1cChhcmdzKTsKQEAgLTEwMDQsOCArMTAyMiw4IEBAIHN0YXRpYyBpbnQgaW1hX2xzbV9y dWxlX2luaXQoc3RydWN0IGltYV9ydWxlX2VudHJ5ICplbnRyeSwKIAllbnRyeS0+bHNtW2xzbV9y dWxlXS50eXBlID0gYXVkaXRfdHlwZTsKIAlyZXN1bHQgPSBpbWFfZmlsdGVyX3J1bGVfaW5pdChl bnRyeS0+bHNtW2xzbV9ydWxlXS50eXBlLCBBdWRpdF9lcXVhbCwKIAkJCQkgICAgICBlbnRyeS0+ bHNtW2xzbV9ydWxlXS5hcmdzX3AsCi0JCQkJICAgICAgJmVudHJ5LT5sc21bbHNtX3J1bGVdLnJ1 bGUpOwotCWlmICghZW50cnktPmxzbVtsc21fcnVsZV0ucnVsZSkgeworCQkJCSAgICAgICZlbnRy eS0+bHNtW2xzbV9ydWxlXS5ydWxlc1swXSk7CisJaWYgKCFpbWFfbHNtX2lzc2V0KGVudHJ5LT5s c21bbHNtX3J1bGVdLnJ1bGVzKSkgewogCQlwcl93YXJuKCJydWxlIGZvciBMU00gXCclc1wnIGlz IHVuZGVmaW5lZFxuIiwKIAkJCWVudHJ5LT5sc21bbHNtX3J1bGVdLmFyZ3NfcCk7CiAKQEAgLTE4 MTIsNyArMTgzMCw3IEBAIGludCBpbWFfcG9saWN5X3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICp2KQogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfTFNNX1JVTEVTOyBpKyspIHsKLQkJ aWYgKGVudHJ5LT5sc21baV0ucnVsZSkgeworCQlpZiAoaW1hX2xzbV9pc3NldChlbnRyeS0+bHNt W2ldLnJ1bGVzKSkgewogCQkJc3dpdGNoIChpKSB7CiAJCQljYXNlIExTTV9PQkpfVVNFUjoKIAkJ CQlzZXFfcHJpbnRmKG0sIHB0KE9wdF9vYmpfdXNlciksCmRpZmYgLS1naXQgYS9zZWN1cml0eS9s YW5kbG9jay9jcmVkLmMgYi9zZWN1cml0eS9sYW5kbG9jay9jcmVkLmMKaW5kZXggNjcyNWFmMjRj Njg0Li41NmIxMjFkNjU0MzYgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2xhbmRsb2NrL2NyZWQuYwor KysgYi9zZWN1cml0eS9sYW5kbG9jay9jcmVkLmMKQEAgLTQyLDUgKzQyLDUgQEAgc3RhdGljIHN0 cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgbGFuZGxvY2tfaG9va3NbXSBfX2xzbV9yb19hZnRlcl9p bml0ID0gewogX19pbml0IHZvaWQgbGFuZGxvY2tfYWRkX2NyZWRfaG9va3Modm9pZCkKIHsKIAlz ZWN1cml0eV9hZGRfaG9va3MobGFuZGxvY2tfaG9va3MsIEFSUkFZX1NJWkUobGFuZGxvY2tfaG9v a3MpLAotCQkJTEFORExPQ0tfTkFNRSk7CisJCQkmbGFuZGxvY2tfbHNtaWQpOwogfQpkaWZmIC0t Z2l0IGEvc2VjdXJpdHkvbGFuZGxvY2svZnMuYyBiL3NlY3VyaXR5L2xhbmRsb2NrL2ZzLmMKaW5k ZXggOTdiOGU0MjFmNjE3Li4zMTllOTBlOTI5MGMgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2xhbmRs b2NrL2ZzLmMKKysrIGIvc2VjdXJpdHkvbGFuZGxvY2svZnMuYwpAQCAtNjg4LDUgKzY4OCw1IEBA IHN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGxhbmRsb2NrX2hvb2tzW10gX19sc21f cm9fYWZ0ZXJfaW5pdCA9IHsKIF9faW5pdCB2b2lkIGxhbmRsb2NrX2FkZF9mc19ob29rcyh2b2lk KQogewogCXNlY3VyaXR5X2FkZF9ob29rcyhsYW5kbG9ja19ob29rcywgQVJSQVlfU0laRShsYW5k bG9ja19ob29rcyksCi0JCQlMQU5ETE9DS19OQU1FKTsKKwkJCSZsYW5kbG9ja19sc21pZCk7CiB9 CmRpZmYgLS1naXQgYS9zZWN1cml0eS9sYW5kbG9jay9wdHJhY2UuYyBiL3NlY3VyaXR5L2xhbmRs b2NrL3B0cmFjZS5jCmluZGV4IGY1NWI4MjQ0NmRlMi4uNTRjY2Y1NWEwNzdhIDEwMDY0NAotLS0g YS9zZWN1cml0eS9sYW5kbG9jay9wdHJhY2UuYworKysgYi9zZWN1cml0eS9sYW5kbG9jay9wdHJh Y2UuYwpAQCAtMTE2LDUgKzExNiw1IEBAIHN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0 IGxhbmRsb2NrX2hvb2tzW10gX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKIF9faW5pdCB2b2lkIGxh bmRsb2NrX2FkZF9wdHJhY2VfaG9va3Modm9pZCkKIHsKIAlzZWN1cml0eV9hZGRfaG9va3MobGFu ZGxvY2tfaG9va3MsIEFSUkFZX1NJWkUobGFuZGxvY2tfaG9va3MpLAotCQkJTEFORExPQ0tfTkFN RSk7CisJCQkmbGFuZGxvY2tfbHNtaWQpOwogfQpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvbGFuZGxv Y2svc2V0dXAuYyBiL3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmMKaW5kZXggZjhlOGU5ODA0NTRj Li40YTEyNjY2YTQwOTAgMTAwNjQ0Ci0tLSBhL3NlY3VyaXR5L2xhbmRsb2NrL3NldHVwLmMKKysr IGIvc2VjdXJpdHkvbGFuZGxvY2svc2V0dXAuYwpAQCAtMjMsNiArMjMsMTAgQEAgc3RydWN0IGxz bV9ibG9iX3NpemVzIGxhbmRsb2NrX2Jsb2Jfc2l6ZXMgX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsK IAkubGJzX3N1cGVyYmxvY2sgPSBzaXplb2Yoc3RydWN0IGxhbmRsb2NrX3N1cGVyYmxvY2tfc2Vj dXJpdHkpLAogfTsKIAorc3RydWN0IGxzbV9pZCBsYW5kbG9ja19sc21pZCBfX2xzbV9yb19hZnRl cl9pbml0ID0geworCS5sc20gPSBMQU5ETE9DS19OQU1FLAorfTsKKwogc3RhdGljIGludCBfX2lu aXQgbGFuZGxvY2tfaW5pdCh2b2lkKQogewogCWxhbmRsb2NrX2FkZF9jcmVkX2hvb2tzKCk7CmRp ZmYgLS1naXQgYS9zZWN1cml0eS9sYW5kbG9jay9zZXR1cC5oIGIvc2VjdXJpdHkvbGFuZGxvY2sv c2V0dXAuaAppbmRleCAxZGFmZmFiMWFiNGIuLjM4YmNlNWIxNzJkYyAxMDA2NDQKLS0tIGEvc2Vj dXJpdHkvbGFuZGxvY2svc2V0dXAuaAorKysgYi9zZWN1cml0eS9sYW5kbG9jay9zZXR1cC5oCkBA IC0xNCw1ICsxNCw2IEBACiBleHRlcm4gYm9vbCBsYW5kbG9ja19pbml0aWFsaXplZDsKIAogZXh0 ZXJuIHN0cnVjdCBsc21fYmxvYl9zaXplcyBsYW5kbG9ja19ibG9iX3NpemVzOworZXh0ZXJuIHN0 cnVjdCBsc21faWQgbGFuZGxvY2tfbHNtaWQ7CiAKICNlbmRpZiAvKiBfU0VDVVJJVFlfTEFORExP Q0tfU0VUVVBfSCAqLwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkvbG9hZHBpbi9sb2FkcGluLmMgYi9z ZWN1cml0eS9sb2FkcGluL2xvYWRwaW4uYwppbmRleCBiMTJmN2Q5ODZiMWUuLmI1NjlmM2JjMTcw YiAxMDA2NDQKLS0tIGEvc2VjdXJpdHkvbG9hZHBpbi9sb2FkcGluLmMKKysrIGIvc2VjdXJpdHkv bG9hZHBpbi9sb2FkcGluLmMKQEAgLTE5Miw2ICsxOTIsMTEgQEAgc3RhdGljIGludCBsb2FkcGlu X2xvYWRfZGF0YShlbnVtIGtlcm5lbF9sb2FkX2RhdGFfaWQgaWQsIGJvb2wgY29udGVudHMpCiAJ cmV0dXJuIGxvYWRwaW5fcmVhZF9maWxlKE5VTEwsIChlbnVtIGtlcm5lbF9yZWFkX2ZpbGVfaWQp IGlkLCBjb250ZW50cyk7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgbHNtX2lkIGxvYWRwaW5fbHNtaWQg X19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9ICJsb2FkcGluIiwKKwkuc2xvdCA9IExT TUJMT0JfTk9UX05FRURFRAorfTsKKwogc3RhdGljIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3Qg bG9hZHBpbl9ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJTFNNX0hPT0tfSU5JVChz Yl9mcmVlX3NlY3VyaXR5LCBsb2FkcGluX3NiX2ZyZWVfc2VjdXJpdHkpLAogCUxTTV9IT09LX0lO SVQoa2VybmVsX3JlYWRfZmlsZSwgbG9hZHBpbl9yZWFkX2ZpbGUpLApAQCAtMjM5LDcgKzI0NCw4 IEBAIHN0YXRpYyBpbnQgX19pbml0IGxvYWRwaW5faW5pdCh2b2lkKQogCXByX2luZm8oInJlYWR5 IHRvIHBpbiAoY3VycmVudGx5ICVzZW5mb3JjaW5nKVxuIiwKIAkJZW5mb3JjZSA/ICIiIDogIm5v dCAiKTsKIAlwYXJzZV9leGNsdWRlKCk7Ci0Jc2VjdXJpdHlfYWRkX2hvb2tzKGxvYWRwaW5faG9v a3MsIEFSUkFZX1NJWkUobG9hZHBpbl9ob29rcyksICJsb2FkcGluIik7CisJc2VjdXJpdHlfYWRk X2hvb2tzKGxvYWRwaW5faG9va3MsIEFSUkFZX1NJWkUobG9hZHBpbl9ob29rcyksCisJCQkgICAm bG9hZHBpbl9sc21pZCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2xv Y2tkb3duL2xvY2tkb3duLmMgYi9zZWN1cml0eS9sb2NrZG93bi9sb2NrZG93bi5jCmluZGV4IDg3 Y2JkYzY0ZDI3Mi4uNGUyNGVhM2Y3YjdlIDEwMDY0NAotLS0gYS9zZWN1cml0eS9sb2NrZG93bi9s b2NrZG93bi5jCisrKyBiL3NlY3VyaXR5L2xvY2tkb3duL2xvY2tkb3duLmMKQEAgLTc1LDYgKzc1 LDExIEBAIHN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0IGxvY2tkb3duX2hvb2tzW10g X19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKIAlMU01fSE9PS19JTklUKGxvY2tlZF9kb3duLCBsb2Nr ZG93bl9pc19sb2NrZWRfZG93biksCiB9OwogCitzdGF0aWMgc3RydWN0IGxzbV9pZCBsb2NrZG93 bl9sc21pZCBfX2xzbV9yb19hZnRlcl9pbml0ID0geworCS5sc20gPSAibG9ja2Rvd24iLAorCS5z bG90ID0gTFNNQkxPQl9OT1RfTkVFREVECit9OworCiBzdGF0aWMgaW50IF9faW5pdCBsb2NrZG93 bl9sc21faW5pdCh2b2lkKQogewogI2lmIGRlZmluZWQoQ09ORklHX0xPQ0tfRE9XTl9LRVJORUxf Rk9SQ0VfSU5URUdSSVRZKQpAQCAtODMsNyArODgsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBsb2Nr ZG93bl9sc21faW5pdCh2b2lkKQogCWxvY2tfa2VybmVsX2Rvd24oIktlcm5lbCBjb25maWd1cmF0 aW9uIiwgTE9DS0RPV05fQ09ORklERU5USUFMSVRZX01BWCk7CiAjZW5kaWYKIAlzZWN1cml0eV9h ZGRfaG9va3MobG9ja2Rvd25faG9va3MsIEFSUkFZX1NJWkUobG9ja2Rvd25faG9va3MpLAotCQkJ ICAgImxvY2tkb3duIik7CisJCQkgICAmbG9ja2Rvd25fbHNtaWQpOwogCXJldHVybiAwOwogfQog CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zYWZlc2V0aWQvbHNtLmMgYi9zZWN1cml0eS9zYWZlc2V0 aWQvbHNtLmMKaW5kZXggMTA3OWM2ZDU0Nzg0Li5hMmEyZjQ2MmE4MjEgMTAwNjQ0Ci0tLSBhL3Nl Y3VyaXR5L3NhZmVzZXRpZC9sc20uYworKysgYi9zZWN1cml0eS9zYWZlc2V0aWQvbHNtLmMKQEAg LTI0MSw2ICsyNDEsMTEgQEAgc3RhdGljIGludCBzYWZlc2V0aWRfdGFza19maXhfc2V0Z2lkKHN0 cnVjdCBjcmVkICpuZXcsCiAJcmV0dXJuIC1FQUNDRVM7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgbHNt X2lkIHNhZmVzZXRpZF9sc21pZCBfX2xzbV9yb19hZnRlcl9pbml0ID0geworCS5sc20gID0gInNh ZmVzZXRpZCIsCisJLnNsb3QgPSBMU01CTE9CX05PVF9ORUVERUQKK307CisKIHN0YXRpYyBzdHJ1 Y3Qgc2VjdXJpdHlfaG9va19saXN0IHNhZmVzZXRpZF9zZWN1cml0eV9ob29rc1tdID0gewogCUxT TV9IT09LX0lOSVQodGFza19maXhfc2V0dWlkLCBzYWZlc2V0aWRfdGFza19maXhfc2V0dWlkKSwK IAlMU01fSE9PS19JTklUKHRhc2tfZml4X3NldGdpZCwgc2FmZXNldGlkX3Rhc2tfZml4X3NldGdp ZCksCkBAIC0yNTAsNyArMjU1LDggQEAgc3RhdGljIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3Qg c2FmZXNldGlkX3NlY3VyaXR5X2hvb2tzW10gPSB7CiBzdGF0aWMgaW50IF9faW5pdCBzYWZlc2V0 aWRfc2VjdXJpdHlfaW5pdCh2b2lkKQogewogCXNlY3VyaXR5X2FkZF9ob29rcyhzYWZlc2V0aWRf c2VjdXJpdHlfaG9va3MsCi0JCQkgICBBUlJBWV9TSVpFKHNhZmVzZXRpZF9zZWN1cml0eV9ob29r cyksICJzYWZlc2V0aWQiKTsKKwkJCSAgIEFSUkFZX1NJWkUoc2FmZXNldGlkX3NlY3VyaXR5X2hv b2tzKSwKKwkJCSAgICZzYWZlc2V0aWRfbHNtaWQpOwogCiAJLyogUmVwb3J0IHRoYXQgU2FmZVNl dElEIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCAqLwogCXNhZmVzZXRpZF9pbml0aWFsaXplZCA9 IDE7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9zZWN1cml0eS5jIGIvc2VjdXJpdHkvc2VjdXJpdHku YwppbmRleCBlMTJhN2M0NjM0NjguLmEzMjc2ZGViMWI4YSAxMDA2NDQKLS0tIGEvc2VjdXJpdHkv c2VjdXJpdHkuYworKysgYi9zZWN1cml0eS9zZWN1cml0eS5jCkBAIC0zNDQsNiArMzQ0LDcgQEAg c3RhdGljIHZvaWQgX19pbml0IG9yZGVyZWRfbHNtX2luaXQodm9pZCkKIAlpbml0X2RlYnVnKCJz b2NrIGJsb2Igc2l6ZSAgICAgICA9ICVkXG4iLCBibG9iX3NpemVzLmxic19zb2NrKTsKIAlpbml0 X2RlYnVnKCJzdXBlcmJsb2NrIGJsb2Igc2l6ZSA9ICVkXG4iLCBibG9iX3NpemVzLmxic19zdXBl cmJsb2NrKTsKIAlpbml0X2RlYnVnKCJ0YXNrIGJsb2Igc2l6ZSAgICAgICA9ICVkXG4iLCBibG9i X3NpemVzLmxic190YXNrKTsKKwlpbml0X2RlYnVnKCJsc21ibG9iIHNpemUgICAgICAgICA9ICV6 dVxuIiwgc2l6ZW9mKHN0cnVjdCBsc21ibG9iKSk7CiAKIAkvKgogCSAqIENyZWF0ZSBhbnkga21l bV9jYWNoZXMgbmVlZGVkIGZvciBibG9icwpAQCAtNDcxLDIxICs0NzIsMzYgQEAgc3RhdGljIGlu dCBsc21fYXBwZW5kKGNvbnN0IGNoYXIgKm5ldywgY2hhciAqKnJlc3VsdCkKIAlyZXR1cm4gMDsK IH0KIAorLyoKKyAqIEN1cnJlbnQgaW5kZXggdG8gdXNlIHdoaWxlIGluaXRpYWxpemluZyB0aGUg bHNtYmxvYiBzZWNpZCBsaXN0LgorICovCitzdGF0aWMgaW50IGxzbV9zbG90IF9fbHNtX3JvX2Fm dGVyX2luaXQ7CisKIC8qKgogICogc2VjdXJpdHlfYWRkX2hvb2tzIC0gQWRkIGEgbW9kdWxlcyBo b29rcyB0byB0aGUgaG9vayBsaXN0cy4KICAqIEBob29rczogdGhlIGhvb2tzIHRvIGFkZAogICog QGNvdW50OiB0aGUgbnVtYmVyIG9mIGhvb2tzIHRvIGFkZAotICogQGxzbTogdGhlIG5hbWUgb2Yg dGhlIHNlY3VyaXR5IG1vZHVsZQorICogQGxzbWlkOiB0aGUgaWRlbnRpZmljYXRpb24gaW5mb3Jt YXRpb24gZm9yIHRoZSBzZWN1cml0eSBtb2R1bGUKICAqCiAgKiBFYWNoIExTTSBoYXMgdG8gcmVn aXN0ZXIgaXRzIGhvb2tzIHdpdGggdGhlIGluZnJhc3RydWN0dXJlLgorICogSWYgdGhlIExTTSBp cyB1c2luZyBob29rcyB0aGF0IGV4cG9ydCBzZWNpZHMgYWxsb2NhdGUgYSBzbG90CisgKiBmb3Ig aXQgaW4gdGhlIGxzbWJsb2IuCiAgKi8KIHZvaWQgX19pbml0IHNlY3VyaXR5X2FkZF9ob29rcyhz dHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0ICpob29rcywgaW50IGNvdW50LAotCQkJCWNoYXIgKmxz bSkKKwkJCSAgICAgICBzdHJ1Y3QgbHNtX2lkICpsc21pZCkKIHsKIAlpbnQgaTsKIAorCWlmIChs c21pZC0+c2xvdCA9PSBMU01CTE9CX05FRURFRCkgeworCQlpZiAobHNtX3Nsb3QgPj0gTFNNQkxP Ql9FTlRSSUVTKQorCQkJcGFuaWMoIiVzIFRvbyBtYW55IExTTXMgcmVnaXN0ZXJlZC5cbiIsIF9f ZnVuY19fKTsKKwkJbHNtaWQtPnNsb3QgPSBsc21fc2xvdCsrOworCQlpbml0X2RlYnVnKCIlcyBh c3NpZ25lZCBsc21ibG9iIHNsb3QgJWRcbiIsIGxzbWlkLT5sc20sCisJCQkgICBsc21pZC0+c2xv dCk7CisJfQorCiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLQkJaG9va3NbaV0ubHNt ID0gbHNtOworCQlob29rc1tpXS5sc21pZCA9IGxzbWlkOwogCQlobGlzdF9hZGRfdGFpbF9yY3Uo Jmhvb2tzW2ldLmxpc3QsIGhvb2tzW2ldLmhlYWQpOwogCX0KIApAQCAtNDk0LDcgKzUxMCw3IEBA IHZvaWQgX19pbml0IHNlY3VyaXR5X2FkZF9ob29rcyhzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0 ICpob29rcywgaW50IGNvdW50LAogCSAqIGFuZCBmaXggdGhpcyB1cCBhZnRlcndhcmRzLgogCSAq LwogCWlmIChzbGFiX2lzX2F2YWlsYWJsZSgpKSB7Ci0JCWlmIChsc21fYXBwZW5kKGxzbSwgJmxz bV9uYW1lcykgPCAwKQorCQlpZiAobHNtX2FwcGVuZChsc21pZC0+bHNtLCAmbHNtX25hbWVzKSA8 IDApCiAJCQlwYW5pYygiJXMgLSBDYW5ub3QgZ2V0IGVhcmx5IG1lbW9yeS5cbiIsIF9fZnVuY19f KTsKIAl9CiB9CkBAIC0yMDcwLDcgKzIwODYsNyBAQCBpbnQgc2VjdXJpdHlfZ2V0cHJvY2F0dHIo c3RydWN0IHRhc2tfc3RydWN0ICpwLCBjb25zdCBjaGFyICpsc20sIGNoYXIgKm5hbWUsCiAJc3Ry dWN0IHNlY3VyaXR5X2hvb2tfbGlzdCAqaHA7CiAKIAlobGlzdF9mb3JfZWFjaF9lbnRyeShocCwg JnNlY3VyaXR5X2hvb2tfaGVhZHMuZ2V0cHJvY2F0dHIsIGxpc3QpIHsKLQkJaWYgKGxzbSAhPSBO VUxMICYmIHN0cmNtcChsc20sIGhwLT5sc20pKQorCQlpZiAobHNtICE9IE5VTEwgJiYgc3RyY21w KGxzbSwgaHAtPmxzbWlkLT5sc20pKQogCQkJY29udGludWU7CiAJCXJldHVybiBocC0+aG9vay5n ZXRwcm9jYXR0cihwLCBuYW1lLCB2YWx1ZSk7CiAJfQpAQCAtMjA4Myw3ICsyMDk5LDcgQEAgaW50 IHNlY3VyaXR5X3NldHByb2NhdHRyKGNvbnN0IGNoYXIgKmxzbSwgY29uc3QgY2hhciAqbmFtZSwg dm9pZCAqdmFsdWUsCiAJc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCAqaHA7CiAKIAlobGlzdF9m b3JfZWFjaF9lbnRyeShocCwgJnNlY3VyaXR5X2hvb2tfaGVhZHMuc2V0cHJvY2F0dHIsIGxpc3Qp IHsKLQkJaWYgKGxzbSAhPSBOVUxMICYmIHN0cmNtcChsc20sIGhwLT5sc20pKQorCQlpZiAobHNt ICE9IE5VTEwgJiYgc3RyY21wKGxzbSwgaHAtPmxzbWlkLT5sc20pKQogCQkJY29udGludWU7CiAJ CXJldHVybiBocC0+aG9vay5zZXRwcm9jYXR0cihuYW1lLCB2YWx1ZSwgc2l6ZSk7CiAJfQpAQCAt MjU3Niw3ICsyNTkyLDI0IEBAIGludCBzZWN1cml0eV9rZXlfZ2V0c2VjdXJpdHkoc3RydWN0IGtl eSAqa2V5LCBjaGFyICoqX2J1ZmZlcikKIAogaW50IHNlY3VyaXR5X2F1ZGl0X3J1bGVfaW5pdCh1 MzIgZmllbGQsIHUzMiBvcCwgY2hhciAqcnVsZXN0ciwgdm9pZCAqKmxzbXJ1bGUpCiB7Ci0JcmV0 dXJuIGNhbGxfaW50X2hvb2soYXVkaXRfcnVsZV9pbml0LCAwLCBmaWVsZCwgb3AsIHJ1bGVzdHIs IGxzbXJ1bGUpOworCXN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgKmhwOworCWJvb2wgb25lX2lz X2dvb2QgPSBmYWxzZTsKKwlpbnQgcmMgPSAwOworCWludCB0cmM7CisKKwlobGlzdF9mb3JfZWFj aF9lbnRyeShocCwgJnNlY3VyaXR5X2hvb2tfaGVhZHMuYXVkaXRfcnVsZV9pbml0LCBsaXN0KSB7 CisJCWlmIChXQVJOX09OKGhwLT5sc21pZC0+c2xvdCA8IDAgfHwgaHAtPmxzbWlkLT5zbG90ID49 IGxzbV9zbG90KSkKKwkJCWNvbnRpbnVlOworCQl0cmMgPSBocC0+aG9vay5hdWRpdF9ydWxlX2lu aXQoZmllbGQsIG9wLCBydWxlc3RyLAorCQkJCQkgICAgICAgJmxzbXJ1bGVbaHAtPmxzbWlkLT5z bG90XSk7CisJCWlmICh0cmMgPT0gMCkKKwkJCW9uZV9pc19nb29kID0gdHJ1ZTsKKwkJZWxzZQor CQkJcmMgPSB0cmM7CisJfQorCWlmIChvbmVfaXNfZ29vZCkKKwkJcmV0dXJuIDA7CisJcmV0dXJu IHJjOwogfQogCiBpbnQgc2VjdXJpdHlfYXVkaXRfcnVsZV9rbm93bihzdHJ1Y3QgYXVkaXRfa3J1 bGUgKmtydWxlKQpAQCAtMjU4NCwxNCArMjYxNywzMSBAQCBpbnQgc2VjdXJpdHlfYXVkaXRfcnVs ZV9rbm93bihzdHJ1Y3QgYXVkaXRfa3J1bGUgKmtydWxlKQogCXJldHVybiBjYWxsX2ludF9ob29r KGF1ZGl0X3J1bGVfa25vd24sIDAsIGtydWxlKTsKIH0KIAotdm9pZCBzZWN1cml0eV9hdWRpdF9y dWxlX2ZyZWUodm9pZCAqbHNtcnVsZSkKK3ZvaWQgc2VjdXJpdHlfYXVkaXRfcnVsZV9mcmVlKHZv aWQgKipsc21ydWxlKQogewotCWNhbGxfdm9pZF9ob29rKGF1ZGl0X3J1bGVfZnJlZSwgbHNtcnVs ZSk7CisJc3RydWN0IHNlY3VyaXR5X2hvb2tfbGlzdCAqaHA7CisKKwlobGlzdF9mb3JfZWFjaF9l bnRyeShocCwgJnNlY3VyaXR5X2hvb2tfaGVhZHMuYXVkaXRfcnVsZV9mcmVlLCBsaXN0KSB7CisJ CWlmIChXQVJOX09OKGhwLT5sc21pZC0+c2xvdCA8IDAgfHwgaHAtPmxzbWlkLT5zbG90ID49IGxz bV9zbG90KSkKKwkJCWNvbnRpbnVlOworCQlocC0+aG9vay5hdWRpdF9ydWxlX2ZyZWUobHNtcnVs ZVtocC0+bHNtaWQtPnNsb3RdKTsKKwl9CiB9CiAKLWludCBzZWN1cml0eV9hdWRpdF9ydWxlX21h dGNoKHUzMiBzZWNpZCwgdTMyIGZpZWxkLCB1MzIgb3AsIHZvaWQgKmxzbXJ1bGUpCitpbnQgc2Vj dXJpdHlfYXVkaXRfcnVsZV9tYXRjaCh1MzIgc2VjaWQsIHUzMiBmaWVsZCwgdTMyIG9wLCB2b2lk ICoqbHNtcnVsZSkKIHsKLQlyZXR1cm4gY2FsbF9pbnRfaG9vayhhdWRpdF9ydWxlX21hdGNoLCAw LCBzZWNpZCwgZmllbGQsIG9wLCBsc21ydWxlKTsKKwlzdHJ1Y3Qgc2VjdXJpdHlfaG9va19saXN0 ICpocDsKKwlpbnQgcmM7CisKKwlobGlzdF9mb3JfZWFjaF9lbnRyeShocCwgJnNlY3VyaXR5X2hv b2tfaGVhZHMuYXVkaXRfcnVsZV9tYXRjaCwgbGlzdCkgeworCQlpZiAoV0FSTl9PTihocC0+bHNt aWQtPnNsb3QgPCAwIHx8IGhwLT5sc21pZC0+c2xvdCA+PSBsc21fc2xvdCkpCisJCQljb250aW51 ZTsKKwkJcmMgPSBocC0+aG9vay5hdWRpdF9ydWxlX21hdGNoKHNlY2lkLCBmaWVsZCwgb3AsCisJ CQkJCSAgICAgICAmbHNtcnVsZVtocC0+bHNtaWQtPnNsb3RdKTsKKwkJaWYgKHJjKQorCQkJcmV0 dXJuIHJjOworCX0KKwlyZXR1cm4gMDsKIH0KICNlbmRpZiAvKiBDT05GSUdfQVVESVQgKi8KIApk aWZmIC0tZ2l0IGEvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jIGIvc2VjdXJpdHkvc2VsaW51eC9o b29rcy5jCmluZGV4IDg0ZGRjZWM2MzIyZS4uMDEzM2IxNDJlOTM4IDEwMDY0NAotLS0gYS9zZWN1 cml0eS9zZWxpbnV4L2hvb2tzLmMKKysrIGIvc2VjdXJpdHkvc2VsaW51eC9ob29rcy5jCkBAIC03 MTExLDYgKzcxMTEsMTEgQEAgc3RhdGljIGludCBzZWxpbnV4X3BlcmZfZXZlbnRfd3JpdGUoc3Ry dWN0IHBlcmZfZXZlbnQgKmV2ZW50KQogfQogI2VuZGlmCiAKK3N0YXRpYyBzdHJ1Y3QgbHNtX2lk IHNlbGludXhfbHNtaWQgX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9ICJzZWxpbnV4 IiwKKwkuc2xvdCA9IExTTUJMT0JfTkVFREVECit9OworCiAvKgogICogSU1QT1JUQU5UIE5PVEU6 IFdoZW4gYWRkaW5nIG5ldyBob29rcywgcGxlYXNlIGJlIGNhcmVmdWwgdG8ga2VlcCB0aGlzIG9y ZGVyOgogICogMS4gYW55IGhvb2tzIHRoYXQgZG9uJ3QgYmVsb25nIHRvICgyLikgb3IgKDMuKSBi ZWxvdywKQEAgLTc0MjQsNyArNzQyOSw4IEBAIHN0YXRpYyBfX2luaXQgaW50IHNlbGludXhfaW5p dCh2b2lkKQogCiAJaGFzaHRhYl9jYWNoZV9pbml0KCk7CiAKLQlzZWN1cml0eV9hZGRfaG9va3Mo c2VsaW51eF9ob29rcywgQVJSQVlfU0laRShzZWxpbnV4X2hvb2tzKSwgInNlbGludXgiKTsKKwlz ZWN1cml0eV9hZGRfaG9va3Moc2VsaW51eF9ob29rcywgQVJSQVlfU0laRShzZWxpbnV4X2hvb2tz KSwKKwkJCSAgICZzZWxpbnV4X2xzbWlkKTsKIAogCWlmIChhdmNfYWRkX2NhbGxiYWNrKHNlbGlu dXhfbmV0Y2FjaGVfYXZjX2NhbGxiYWNrLCBBVkNfQ0FMTEJBQ0tfUkVTRVQpKQogCQlwYW5pYygi U0VMaW51eDogVW5hYmxlIHRvIHJlZ2lzdGVyIEFWQyBuZXRjYWNoZSBjYWxsYmFja1xuIik7CmRp ZmYgLS1naXQgYS9zZWN1cml0eS9zbWFjay9zbWFja19sc20uYyBiL3NlY3VyaXR5L3NtYWNrL3Nt YWNrX2xzbS5jCmluZGV4IDFlZTBiZjE0OTNmNi4uNWMxMGFkMjdiZTM3IDEwMDY0NAotLS0gYS9z ZWN1cml0eS9zbWFjay9zbWFja19sc20uYworKysgYi9zZWN1cml0eS9zbWFjay9zbWFja19sc20u YwpAQCAtNDY5NCw2ICs0Njk0LDExIEBAIHN0cnVjdCBsc21fYmxvYl9zaXplcyBzbWFja19ibG9i X3NpemVzIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJLmxic19zdXBlcmJsb2NrID0gc2l6ZW9m KHN0cnVjdCBzdXBlcmJsb2NrX3NtYWNrKSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgbHNtX2lkIHNt YWNrX2xzbWlkIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CisJLmxzbSAgPSAic21hY2siLAorCS5z bG90ID0gTFNNQkxPQl9ORUVERUQKK307CisKIHN0YXRpYyBzdHJ1Y3Qgc2VjdXJpdHlfaG9va19s aXN0IHNtYWNrX2hvb2tzW10gX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKIAlMU01fSE9PS19JTklU KHB0cmFjZV9hY2Nlc3NfY2hlY2ssIHNtYWNrX3B0cmFjZV9hY2Nlc3NfY2hlY2spLAogCUxTTV9I T09LX0lOSVQocHRyYWNlX3RyYWNlbWUsIHNtYWNrX3B0cmFjZV90cmFjZW1lKSwKQEAgLTQ4OTMs NyArNDg5OCw3IEBAIHN0YXRpYyBfX2luaXQgaW50IHNtYWNrX2luaXQodm9pZCkKIAkvKgogCSAq IFJlZ2lzdGVyIHdpdGggTFNNCiAJICovCi0Jc2VjdXJpdHlfYWRkX2hvb2tzKHNtYWNrX2hvb2tz LCBBUlJBWV9TSVpFKHNtYWNrX2hvb2tzKSwgInNtYWNrIik7CisJc2VjdXJpdHlfYWRkX2hvb2tz KHNtYWNrX2hvb2tzLCBBUlJBWV9TSVpFKHNtYWNrX2hvb2tzKSwgJnNtYWNrX2xzbWlkKTsKIAlz bWFja19lbmFibGVkID0gMTsKIAogCXByX2luZm8oIlNtYWNrOiAgSW5pdGlhbGl6aW5nLlxuIik7 CmRpZmYgLS1naXQgYS9zZWN1cml0eS90b21veW8vdG9tb3lvLmMgYi9zZWN1cml0eS90b21veW8v dG9tb3lvLmMKaW5kZXggMWYzY2Q0MzJkODMwLi4yMmY2MmM2N2YyZWMgMTAwNjQ0Ci0tLSBhL3Nl Y3VyaXR5L3RvbW95by90b21veW8uYworKysgYi9zZWN1cml0eS90b21veW8vdG9tb3lvLmMKQEAg LTUyMyw2ICs1MjMsMTEgQEAgc3RhdGljIHZvaWQgdG9tb3lvX3Rhc2tfZnJlZShzdHJ1Y3QgdGFz a19zdHJ1Y3QgKnRhc2spCiAJfQogfQogCitzdGF0aWMgc3RydWN0IGxzbV9pZCB0b21veW9fbHNt aWQgX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9ICJ0b21veW8iLAorCS5zbG90ID0g TFNNQkxPQl9OT1RfTkVFREVECit9OworCiAvKgogICogdG9tb3lvX3NlY3VyaXR5X29wcyBpcyBh ICJzdHJ1Y3Qgc2VjdXJpdHlfb3BlcmF0aW9ucyIgd2hpY2ggaXMgdXNlZCBmb3IKICAqIHJlZ2lz dGVyaW5nIFRPTU9ZTy4KQEAgLTU3NSw3ICs1ODAsOCBAQCBzdGF0aWMgaW50IF9faW5pdCB0b21v eW9faW5pdCh2b2lkKQogCXN0cnVjdCB0b21veW9fdGFzayAqcyA9IHRvbW95b190YXNrKGN1cnJl bnQpOwogCiAJLyogcmVnaXN0ZXIgb3Vyc2VsdmVzIHdpdGggdGhlIHNlY3VyaXR5IGZyYW1ld29y ayAqLwotCXNlY3VyaXR5X2FkZF9ob29rcyh0b21veW9faG9va3MsIEFSUkFZX1NJWkUodG9tb3lv X2hvb2tzKSwgInRvbW95byIpOworCXNlY3VyaXR5X2FkZF9ob29rcyh0b21veW9faG9va3MsIEFS UkFZX1NJWkUodG9tb3lvX2hvb2tzKSwKKwkJCSAgICZ0b21veW9fbHNtaWQpOwogCXByX2luZm8o IlRPTU9ZTyBMaW51eCBpbml0aWFsaXplZFxuIik7CiAJcy0+ZG9tYWluX2luZm8gPSAmdG9tb3lv X2tlcm5lbF9kb21haW47CiAJYXRvbWljX2luYygmdG9tb3lvX2tlcm5lbF9kb21haW4udXNlcnMp OwpkaWZmIC0tZ2l0IGEvc2VjdXJpdHkveWFtYS95YW1hX2xzbS5jIGIvc2VjdXJpdHkveWFtYS95 YW1hX2xzbS5jCmluZGV4IDA2ZTIyNjE2NmFhYi4uYTk2MzllYTU0MWY3IDEwMDY0NAotLS0gYS9z ZWN1cml0eS95YW1hL3lhbWFfbHNtLmMKKysrIGIvc2VjdXJpdHkveWFtYS95YW1hX2xzbS5jCkBA IC00MjEsNiArNDIxLDExIEBAIHN0YXRpYyBpbnQgeWFtYV9wdHJhY2VfdHJhY2VtZShzdHJ1Y3Qg dGFza19zdHJ1Y3QgKnBhcmVudCkKIAlyZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgbHNt X2lkIHlhbWFfbHNtaWQgX19sc21fcm9fYWZ0ZXJfaW5pdCA9IHsKKwkubHNtICA9ICJ5YW1hIiwK Kwkuc2xvdCA9IExTTUJMT0JfTk9UX05FRURFRAorfTsKKwogc3RhdGljIHN0cnVjdCBzZWN1cml0 eV9ob29rX2xpc3QgeWFtYV9ob29rc1tdIF9fbHNtX3JvX2FmdGVyX2luaXQgPSB7CiAJTFNNX0hP T0tfSU5JVChwdHJhY2VfYWNjZXNzX2NoZWNrLCB5YW1hX3B0cmFjZV9hY2Nlc3NfY2hlY2spLAog CUxTTV9IT09LX0lOSVQocHRyYWNlX3RyYWNlbWUsIHlhbWFfcHRyYWNlX3RyYWNlbWUpLApAQCAt NDc3LDcgKzQ4Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB5YW1hX2luaXRfc3lzY3RsKHZvaWQp IHsgfQogc3RhdGljIGludCBfX2luaXQgeWFtYV9pbml0KHZvaWQpCiB7CiAJcHJfaW5mbygiWWFt YTogYmVjb21pbmcgbWluZGZ1bC5cbiIpOwotCXNlY3VyaXR5X2FkZF9ob29rcyh5YW1hX2hvb2tz LCBBUlJBWV9TSVpFKHlhbWFfaG9va3MpLCAieWFtYSIpOworCXNlY3VyaXR5X2FkZF9ob29rcyh5 YW1hX2hvb2tzLCBBUlJBWV9TSVpFKHlhbWFfaG9va3MpLCAmeWFtYV9sc21pZCk7CiAJeWFtYV9p bml0X3N5c2N0bCgpOwogCXJldHVybiAwOwogfQotLSAKMi4yOS4yCgotLQpMaW51eC1hdWRpdCBt YWlsaW5nIGxpc3QKTGludXgtYXVkaXRAcmVkaGF0LmNvbQpodHRwczovL2xpc3RtYW4ucmVkaGF0 LmNvbS9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWF1ZGl0