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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 45991C77B7F for ; Fri, 27 Jun 2025 11:03:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C22746B00D0; Fri, 27 Jun 2025 07:03:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BD54B6B00D1; Fri, 27 Jun 2025 07:03:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AC1CA6B00D2; Fri, 27 Jun 2025 07:03:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 8F22C6B00D0 for ; Fri, 27 Jun 2025 07:03:39 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 39EAB122BA2 for ; Fri, 27 Jun 2025 11:03:39 +0000 (UTC) X-FDA: 83600894958.26.824ABF3 Received: from mx10.didiglobal.com (mx10.didiglobal.com [111.202.70.125]) by imf19.hostedemail.com (Postfix) with SMTP id 2307C1A000C for ; Fri, 27 Jun 2025 11:03:35 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=didiglobal.com header.s=2025 header.b=Y6qnvJNT; spf=pass (imf19.hostedemail.com: domain of chentaotao@didiglobal.com designates 111.202.70.125 as permitted sender) smtp.mailfrom=chentaotao@didiglobal.com; dmarc=pass (policy=none) header.from=didiglobal.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751022217; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:dkim-signature; bh=K6/Qtmfsh/kcyRfCaSG0PH3lcA5P0nOqbDpyBJnWgN4=; b=CHltbd+bibWMom3E0vC6YZqE+KgqzUwydUCNepG4U7H+2iqcqybxf4L8LPgNoSOWETw0VM BaaJXDQJX0FkxrjAqcfMQhS0Zq+7zFHVUtvGtLpfS+3pSuiJIm9bke5ioSbkhYzMfsdpEz 22cstVrGEcAlsCDRmcnHMlHo7zsl1k0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1751022217; a=rsa-sha256; cv=none; b=VfTfaBWnFEWwwwgMj1vNdcQcrDPvCLKXPKo+jI+FW2T6n5uERPEL6fnusN90h8Gq7GLk/1 BuftQIdtLaeaOidmd8F9vceue4/5gnizlq1yr1NnN8GJzXOPNotSWzXa1tvexZSTN10jbC Nwzd9JLoD2Fc94aWVfFTyq97Ml3OAlg= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=didiglobal.com header.s=2025 header.b=Y6qnvJNT; spf=pass (imf19.hostedemail.com: domain of chentaotao@didiglobal.com designates 111.202.70.125 as permitted sender) smtp.mailfrom=chentaotao@didiglobal.com; dmarc=pass (policy=none) header.from=didiglobal.com Received: from mail.didiglobal.com (unknown [10.79.71.37]) by mx10.didiglobal.com (MailData Gateway V2.8.8) with ESMTPS id A8355180FFD59B; Fri, 27 Jun 2025 19:02:29 +0800 (CST) Received: from BJ03-ACTMBX-09.didichuxing.com (10.79.71.36) by BJ03-ACTMBX-01.didichuxing.com (10.79.71.37) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Fri, 27 Jun 2025 19:03:12 +0800 Received: from BJ03-ACTMBX-07.didichuxing.com (10.79.71.34) by BJ03-ACTMBX-09.didichuxing.com (10.79.71.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Fri, 27 Jun 2025 19:03:11 +0800 Received: from BJ03-ACTMBX-07.didichuxing.com ([fe80::2e1a:dd47:6d25:287e]) by BJ03-ACTMBX-07.didichuxing.com ([fe80::2e1a:dd47:6d25:287e%7]) with mapi id 15.02.1748.010; Fri, 27 Jun 2025 19:03:11 +0800 X-MD-Sfrom: chentaotao@didiglobal.com X-MD-SrcIP: 10.79.71.37 From: =?gb2312?B?s8LMzszOIFRhb3RhbyBDaGVu?= To: "tytso@mit.edu" , "hch@infradead.org" , "adilger.kernel@dilger.ca" , "willy@infradead.org" , "brauner@kernel.org" , "jani.nikula@linux.intel.com" , "rodrigo.vivi@intel.com" , "tursulin@ursulin.net" , "airlied@gmail.com" CC: "linux-fsdevel@vger.kernel.org" , "linux-ext4@vger.kernel.org" , "linux-block@vger.kernel.org" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "linux-mm@kvack.org" , "linux-doc@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "chentao325@qq.com" , "frank.li@vivo.com" , =?gb2312?B?s8LMzszOIFRhb3RhbyBDaGVu?= Subject: [PATCH v3 3/4] fs: change write_begin/write_end interface to take struct kiocb * Thread-Topic: [PATCH v3 3/4] fs: change write_begin/write_end interface to take struct kiocb * Thread-Index: AQHb51MSAW1sAzDRcE6gPh8wUcquSQ== Date: Fri, 27 Jun 2025 11:03:11 +0000 Message-ID: <20250627110257.1870826-4-chentaotao@didiglobal.com> In-Reply-To: <20250627110257.1870826-1-chentaotao@didiglobal.com> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.79.64.102] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=didiglobal.com; s=2025; t=1751022171; bh=K6/Qtmfsh/kcyRfCaSG0PH3lcA5P0nOqbDpyBJnWgN4=; h=From:To:CC:Subject:Date:Message-ID:Content-Type; b=Y6qnvJNT1Gsotxt7PWeOWz2b6foKM8CTa/E4WiDoyOsSM0GKE67z3a9hBsV2tB01D oiO1NrHLThXi5wpPs37nV4Xv9HuYJwFOUk7DQtPdphP21QXqIweOoVoCb1zbnxddnx L8x8ED8ODCIhMGwhQaGG7SelagHevKceHoibXuoQ= X-Rspam-User: X-Stat-Signature: 5e4uuh87uzkruzqz1g1jw3soeorb18yy X-Rspamd-Queue-Id: 2307C1A000C X-Rspamd-Server: rspam08 X-HE-Tag: 1751022215-352734 X-HE-Meta: U2FsdGVkX1+SZZnaAzqCsPXSHSaQ1n1ux3wR41ylVYxQMecNXwFsl2f5wKz0+MXWui040lNkV75T8ygKFiQ+GhvI1w5asPQklE8U87okLltIRYrH1sMCf2n6HJ057jHZLNwb+9+UZmHqTfsQHQDbw3/7JSdawo8vuPq7SpSNkBzamCdN1e3aZruMUyCzMVMNWEm+WAKlGaQnRB8GtxUmNwhx+4k5eoN47KVkfVwzWv33XutGujKPAQOaDUckf+cCZxqwtzC4lPHnoeJqp4a4rr33zKE7vPdsNxY0IfYM56ZSYK7+dHgjv++t2mRQnAmFwWP51t7fH6zxRNGN6uu3v2L4WSq6Wea71EuzNvQbJLuyB6zlNHZWs7aH/gmAvHxt0KOt+vOabm3N2SUNRARBMe4p5xJ1SzcttQzd7Mzgo2FL2boizp/gXYKlzuZO59mj2d7oMKBAOxuxLpyK9xjwkwnvs6uIGmI7K3ZJQxzU91SYHomZ6rpV8iKcuz/pyyJgDiO0BtG/5ZEUhqvwmtyZBQB9TXx9q/ZuaU4W7DQ03wOT8XHjMogQq/24HykhlpYuaj28IN+GvDwmbM2Xoa8jsh2mg1ke89EupJLNfqFkCalX4YNvz1TI3rEfWldxkE03CsbT3h8VsDqWOy+upjOyZ6woOtf02fWEZpnEEk0hT1TZZK4QUeGGXP2ZpIwOHk5nCdEdZRQvflBFUcBSRzJ1COPtSHqi1VZNuHCzSkJHheBbVmoafCwOAEx1RCU5XsfFJK/lwbP02I6LY25z4Jzy1RRLQYh9O1Rg/uYoxildMkapPXq7LAPF874lBAeRZoPAcoZSifJaKGwQPrsSf1wM7ueeOKEO3FB8eoxV+mjYcZIof0h4bMZru52vcyGXXRab7i4gOQpaQEYjSd+RgVTBZWMvWkatXKbtqH7MNHRt0nZDDgxj1NAyMqtjuUJskNO1x/2Idcnm5C787aMXd45 TstPNtBK 1dPVV59VORvR5OvuYjS2p0fZNqPpIMxEFOm6nb80C4hv1NS5X/tIUIKvHL9e3mth8wZ85oM7IwkNxDP/bfXWfX+jqgcF87MfPSep/aLfKTFzSQKlzNcmzS1cd5pVRW/TdTrDghOWwMJC9ILtSik77tBXEVQWajRMG0O182jrqvdHwEjt6vtjZ9pTesJLLLoNk3SKqWKEteXVZ+5/cnCQ+1DDd/2J7Af0icuqnNLYC2irSBncDF7KxQXeMqS2BjMg1hORfOSPEjzcYSsUkapMkrvBOjdeNGTRWsoDetNmd2U1iIVaSRxOEFPqCwZiU6zfD+cd9eLpV9hRD3XeQaxWwEdkW6aiBfqRmJzdFS9feDtiRVttmYplTq09n7NAbiUD3ykoLKYEPVKB2Jjr22Q/sRYzT3TVUcawzaOgWTK1TR+URO3FuZl3KKLjyqfAnY6J0Il5By1c7QVOkMQ6tcOhh4xCjmzdoX2AbGAs7/KVZz02LNT0dWaZ5h4UObskaEfpHVFWQ9nn2LaZfpf9lkTDwyuGXNaoOtmN8WMJ3E2L3OGz/t96xDDrvbZkHjQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: RnJvbTogVGFvdGFvIENoZW4gPGNoZW50YW90YW9AZGlkaWdsb2JhbC5jb20+DQoNCkNoYW5nZSB0 aGUgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGNhbGxiYWNrcyB3cml0ZV9iZWdpbigpIGFuZA0K d3JpdGVfZW5kKCkgdG8gdGFrZSBzdHJ1Y3Qga2lvY2IgKiBhcyB0aGUgZmlyc3QgYXJndW1lbnQg aW5zdGVhZCBvZg0Kc3RydWN0IGZpbGUgKi4NCg0KVXBkYXRlIGFsbCBhZmZlY3RlZCBmdW5jdGlv biBwcm90b3R5cGVzLCBpbXBsZW1lbnRhdGlvbnMsIGNhbGwgc2l0ZXMsDQphbmQgcmVsYXRlZCBk b2N1bWVudGF0aW9uIGFjcm9zcyBWRlMsIGZpbGVzeXN0ZW1zLCBhbmQgYmxvY2sgbGF5ZXIuDQoN ClBhcnQgb2YgYSBzZXJpZXMgcmVmYWN0b3JpbmcgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIHdy aXRlX2JlZ2luIGFuZA0Kd3JpdGVfZW5kIGNhbGxiYWNrcyB0byB1c2Ugc3RydWN0IGtpb2NiIGZv ciBwYXNzaW5nIHdyaXRlIGNvbnRleHQgYW5kDQpmbGFncy4NCg0KU2lnbmVkLW9mZi1ieTogVGFv dGFvIENoZW4gPGNoZW50YW90YW9AZGlkaWdsb2JhbC5jb20+DQotLS0NCiBEb2N1bWVudGF0aW9u L2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0IHwgIDQgKystLQ0KIERvY3VtZW50YXRpb24vZmlsZXN5 c3RlbXMvdmZzLnJzdCAgICAgfCAgNiArKystLS0NCiBibG9jay9mb3BzLmMgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMTMgKysrKysrKystLS0tLQ0KIGZzL2FkZnMvaW5vZGUuYyAgICAgICAg ICAgICAgICAgICAgICAgfCAgOSArKysrKy0tLS0NCiBmcy9hZmZzL2ZpbGUuYyAgICAgICAgICAg ICAgICAgICAgICAgIHwgMjYgKysrKysrKysrKysrKystLS0tLS0tLS0tLQ0KIGZzL2JjYWNoZWZz L2ZzLWlvLWJ1ZmZlcmVkLmMgICAgICAgICAgfCAgNCArKy0tDQogZnMvYmNhY2hlZnMvZnMtaW8t YnVmZmVyZWQuaCAgICAgICAgICB8ICA0ICsrLS0NCiBmcy9iZnMvZmlsZS5jICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDcgKysrKy0tLQ0KIGZzL2J1ZmZlci5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAyNiArKysrKysrKysrKystLS0tLS0tLS0tLS0tDQogZnMvY2VwaC9hZGRyLmMg ICAgICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrKystLS0NCiBmcy9lY3J5cHRmcy9tbWFw LmMgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQ0KIGZzL2V4ZmF0L2ZpbGUuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAxNSArKysrKysrKystLS0tLQ0KIGZzL2V4ZmF0L2lub2Rl LmMgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysrKy0tLS0tLS0NCiBmcy9leHQyL2lu b2RlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKysrLS0tLS0NCiBmcy9leHQ0L2lu b2RlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTkgKysrKysrKysrLS0tLS0tLS0tDQogZnMv ZjJmcy9kYXRhLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysrLS0tDQogZnMvZmF0 L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKy0tLS0tLS0tDQog ZnMvZnVzZS9maWxlLmMgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrKy0tLS0t DQogZnMvaGZzL2hmc19mcy5oICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstDQogZnMvaGZz L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0NCiBmcy9oZnNwbHVzL2hm c3BsdXNfZnMuaCAgICAgICAgICAgICAgIHwgIDYgKysrKy0tDQogZnMvaGZzcGx1cy9pbm9kZS5j ICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKysrLS0tDQogZnMvaG9zdGZzL2hvc3Rmc19rZXJu LmMgICAgICAgICAgICAgICB8ICA4ICsrKysrLS0tDQogZnMvaHBmcy9maWxlLmMgICAgICAgICAg ICAgICAgICAgICAgICB8IDE4ICsrKysrKysrKy0tLS0tLS0tDQogZnMvaHVnZXRsYmZzL2lub2Rl LmMgICAgICAgICAgICAgICAgICB8ICA5ICsrKysrLS0tLQ0KIGZzL2pmZnMyL2ZpbGUuYyAgICAg ICAgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0NCiBmcy9q ZnMvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tDQog ZnMvbGliZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKy0tLS0tDQog ZnMvbWluaXgvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgICB8ICA3ICsrKystLS0NCiBmcy9u ZnMvZmlsZS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKysrLS0NCiBmcy9uaWxm czIvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrKystLS0NCiBmcy9udGZzMy9m aWxlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKystLQ0KIGZzL250ZnMzL2lub2Rl LmMgICAgICAgICAgICAgICAgICAgICAgfCAgNyArKysrLS0tDQogZnMvbnRmczMvbnRmc19mcy5o ICAgICAgICAgICAgICAgICAgICB8IDEwICsrKysrKy0tLS0NCiBmcy9vY2ZzMi9hb3BzLmMgICAg ICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKy0tDQogZnMvb21mcy9maWxlLmMgICAgICAgICAg ICAgICAgICAgICAgICB8ICA3ICsrKystLS0NCiBmcy9vcmFuZ2Vmcy9pbm9kZS5jICAgICAgICAg ICAgICAgICAgIHwgMTYgKysrKysrKystLS0tLS0tDQogZnMvdWJpZnMvZmlsZS5jICAgICAgICAg ICAgICAgICAgICAgICB8ICA1ICsrKy0tDQogZnMvdWRmL2lub2RlLmMgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysrKystLS0tDQogZnMvdWZzL2lub2RlLmMgICAgICAgICAgICAgICAg ICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0tLQ0KIGZzL3Zib3hzZi9maWxlLmMgICAgICAgICAg ICAgICAgICAgICAgfCAgNSArKystLQ0KIGluY2x1ZGUvbGludXgvYnVmZmVyX2hlYWQuaCAgICAg ICAgICAgfCAgNCArKy0tDQogaW5jbHVkZS9saW51eC9mcy5oICAgICAgICAgICAgICAgICAgICB8 IDExICsrKysrKy0tLS0tDQogbW0vZmlsZW1hcC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA0ICsrLS0NCiBtbS9zaG1lbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysr KysrLS0tLS0tDQogNDUgZmlsZXMgY2hhbmdlZCwgMjcyIGluc2VydGlvbnMoKyksIDIwMiBkZWxl dGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2lu Zy5yc3QgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL2xvY2tpbmcucnN0DQppbmRleCAyZTU2 N2UzNDFjM2IuLjU4MDU4MTI4MWVkNyAxMDA2NDQNCi0tLSBhL0RvY3VtZW50YXRpb24vZmlsZXN5 c3RlbXMvbG9ja2luZy5yc3QNCisrKyBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvbG9ja2lu Zy5yc3QNCkBAIC0yNTMsMTAgKzI1MywxMCBAQCBwcm90b3R5cGVzOjoNCiAJaW50ICgqd3JpdGVw YWdlcykoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgc3RydWN0IHdyaXRlYmFja19jb250cm9sICop Ow0KIAlib29sICgqZGlydHlfZm9saW8pKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVjdCBm b2xpbyAqZm9saW8pOw0KIAl2b2lkICgqcmVhZGFoZWFkKShzdHJ1Y3QgcmVhZGFoZWFkX2NvbnRy b2wgKik7DQotCWludCAoKndyaXRlX2JlZ2luKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVz c19zcGFjZSAqbWFwcGluZywNCisJaW50ICgqd3JpdGVfYmVnaW4pKGNvbnN0IHN0cnVjdCBraW9j YiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkJbG9mZl90IHBvcywgdW5z aWduZWQgbGVuLA0KIAkJCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpOw0K LQlpbnQgKCp3cml0ZV9lbmQpKHN0cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLA0KKwlpbnQgKCp3cml0ZV9lbmQpKGNvbnN0IHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1 bnNpZ25lZCBjb3BpZWQsDQogCQkJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSk7 DQogCXNlY3Rvcl90ICgqYm1hcCkoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgc2VjdG9yX3QpOw0K ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvdmZzLnJzdCBiL0RvY3VtZW50 YXRpb24vZmlsZXN5c3RlbXMvdmZzLnJzdA0KaW5kZXggZGQ5ZGE3ZTA0YTk5Li41NzYwNGIwN2Jk YzkgMTAwNjQ0DQotLS0gYS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3Zmcy5yc3QNCisrKyBi L0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvdmZzLnJzdA0KQEAgLTgyMywxMCArODIzLDEwIEBA IGNhY2hlIGluIHlvdXIgZmlsZXN5c3RlbS4gIFRoZSBmb2xsb3dpbmcgbWVtYmVycyBhcmUgZGVm aW5lZDoNCiAJCWludCAoKndyaXRlcGFnZXMpKHN0cnVjdCBhZGRyZXNzX3NwYWNlICosIHN0cnVj dCB3cml0ZWJhY2tfY29udHJvbCAqKTsNCiAJCWJvb2wgKCpkaXJ0eV9mb2xpbykoc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKiwgc3RydWN0IGZvbGlvICopOw0KIAkJdm9pZCAoKnJlYWRhaGVhZCkoc3Ry dWN0IHJlYWRhaGVhZF9jb250cm9sICopOw0KLQkJaW50ICgqd3JpdGVfYmVnaW4pKHN0cnVjdCBm aWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwkJaW50ICgqd3JpdGVfYmVn aW4pKGNvbnN0IHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN CiAJCQkJICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KLQkJCQlzdHJ1Y3QgcGFnZSAqKnBh Z2VwLCB2b2lkICoqZnNkYXRhKTsNCi0JCWludCAoKndyaXRlX2VuZCkoc3RydWN0IGZpbGUgKiwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJCSAgIHN0cnVjdCBwYWdlICoqcGFn ZXAsIHZvaWQgKipmc2RhdGEpOw0KKwkJaW50ICgqd3JpdGVfZW5kKShjb25zdCBzdHJ1Y3Qga2lv Y2IgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJCSBsb2ZmX3QgcG9zLCB1 bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCQkJIHN0cnVjdCBmb2xpbyAqZm9saW8s IHZvaWQgKmZzZGF0YSk7DQogCQlzZWN0b3JfdCAoKmJtYXApKHN0cnVjdCBhZGRyZXNzX3NwYWNl ICosIHNlY3Rvcl90KTsNCmRpZmYgLS1naXQgYS9ibG9jay9mb3BzLmMgYi9ibG9jay9mb3BzLmMN CmluZGV4IDM1Y2VhMGNiMzA0ZC4uZjM0ZTczMTVjODNjIDEwMDY0NA0KLS0tIGEvYmxvY2svZm9w cy5jDQorKysgYi9ibG9jay9mb3BzLmMNCkBAIC00OTYsMTUgKzQ5NiwxOCBAQCBzdGF0aWMgdm9p ZCBibGtkZXZfcmVhZGFoZWFkKHN0cnVjdCByZWFkYWhlYWRfY29udHJvbCAqcmFjKQ0KIAltcGFn ZV9yZWFkYWhlYWQocmFjLCBibGtkZXZfZ2V0X2Jsb2NrKTsNCiB9DQogDQotc3RhdGljIGludCBi bGtkZXZfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLA0KLQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKipm b2xpb3AsIHZvaWQgKipmc2RhdGEpDQorc3RhdGljIGludCBibGtkZXZfd3JpdGVfYmVnaW4oY29u c3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJCSAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLCBsb2ZmX3QgcG9zLA0KKwkJCSAgICAgIHVuc2lnbmVkIGxlbiwgc3RydWN0IGZvbGlv ICoqZm9saW9wLA0KKwkJCSAgICAgIHZvaWQgKipmc2RhdGEpDQogew0KIAlyZXR1cm4gYmxvY2tf d3JpdGVfYmVnaW4obWFwcGluZywgcG9zLCBsZW4sIGZvbGlvcCwgYmxrZGV2X2dldF9ibG9jayk7 DQogfQ0KIA0KLXN0YXRpYyBpbnQgYmxrZGV2X3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQotCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBs ZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IGZvbGlvICpmb2xpbywNCi0JCXZvaWQgKmZzZGF0 YSkNCitzdGF0aWMgaW50IGJsa2Rldl93cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2Ni LA0KKwkJCSAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCisJCQkgICAgbG9mZl90 IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQorCQkJICAgIHN0cnVjdCBmb2xp byAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQogCWludCByZXQ7DQogCXJldCA9IGJsb2NrX3dy aXRlX2VuZChwb3MsIGxlbiwgY29waWVkLCBmb2xpbyk7DQpkaWZmIC0tZ2l0IGEvZnMvYWRmcy9p bm9kZS5jIGIvZnMvYWRmcy9pbm9kZS5jDQppbmRleCAyMTUyNzE4OWU0MzAuLjY4MzBmOGJjOGQ0 ZSAxMDA2NDQNCi0tLSBhL2ZzL2FkZnMvaW5vZGUuYw0KKysrIGIvZnMvYWRmcy9pbm9kZS5jDQpA QCAtNTMsMTMgKzUzLDE0IEBAIHN0YXRpYyB2b2lkIGFkZnNfd3JpdGVfZmFpbGVkKHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCQl0cnVuY2F0ZV9wYWdlY2FjaGUo aW5vZGUsIGlub2RlLT5pX3NpemUpOw0KIH0NCiANCi1zdGF0aWMgaW50IGFkZnNfd3JpdGVfYmVn aW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJ CWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCi0JCQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZv aWQgKipmc2RhdGEpDQorc3RhdGljIGludCBhZGZzX3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBr aW9jYiAqaW9jYiwNCisJCQkgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJ ICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCisJCQkgICAgc3RydWN0IGZvbGlvICoqZm9s aW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsNCiAJaW50IHJldDsNCiANCi0JcmV0ID0gY29udF93cml0 ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgZm9saW9wLCBmc2RhdGEsDQorCXJldCA9 IGNvbnRfd3JpdGVfYmVnaW4oaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGZvbGlvcCwgZnNkYXRh LA0KIAkJCQlhZGZzX2dldF9ibG9jaywNCiAJCQkJJkFERlNfSShtYXBwaW5nLT5ob3N0KS0+bW11 X3ByaXZhdGUpOw0KIAlpZiAodW5saWtlbHkocmV0KSkNCmRpZmYgLS1naXQgYS9mcy9hZmZzL2Zp bGUuYyBiL2ZzL2FmZnMvZmlsZS5jDQppbmRleCA3YTcxMDE4ZTNmNjcuLjIxOWVhMDM1MzkwNiAx MDA2NDQNCi0tLSBhL2ZzL2FmZnMvZmlsZS5jDQorKysgYi9mcy9hZmZzL2ZpbGUuYw0KQEAgLTQx NSwxMyArNDE1LDE0IEBAIGFmZnNfZGlyZWN0X0lPKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0 IGlvdl9pdGVyICppdGVyKQ0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGFmZnNf d3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLA0KLQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCi0JCQlzdHJ1Y3QgZm9saW8gKipm b2xpb3AsIHZvaWQgKipmc2RhdGEpDQorc3RhdGljIGludCBhZmZzX3dyaXRlX2JlZ2luKGNvbnN0 IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQkgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcsDQorCQkJICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCisJCQkgICAgc3RydWN0IGZv bGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsNCiAJaW50IHJldDsNCiANCi0JcmV0ID0g Y29udF93cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgZm9saW9wLCBmc2RhdGEs DQorCXJldCA9IGNvbnRfd3JpdGVfYmVnaW4oaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGZvbGlv cCwgZnNkYXRhLA0KIAkJCQlhZmZzX2dldF9ibG9jaywNCiAJCQkJJkFGRlNfSShtYXBwaW5nLT5o b3N0KS0+bW11X3ByaXZhdGUpOw0KIAlpZiAodW5saWtlbHkocmV0KSkNCkBAIC00MzAsMTQgKzQz MSwxNSBAQCBzdGF0aWMgaW50IGFmZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0 aWMgaW50IGFmZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywNCi0JCQkgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGludCBsZW4sIHVuc2ln bmVkIGludCBjb3BpZWQsDQorc3RhdGljIGludCBhZmZzX3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qg a2lvY2IgKmlvY2IsDQorCQkJICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90 IHBvcywNCisJCQkgIHVuc2lnbmVkIGludCBsZW4sIHVuc2lnbmVkIGludCBjb3BpZWQsDQogCQkJ ICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KIAlzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gbWFwcGluZy0+aG9zdDsNCiAJaW50IHJldDsNCiANCi0JcmV0ID0gZ2VuZXJpY193 cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sIGZzZGF0YSk7 DQorCXJldCA9IGdlbmVyaWNfd3JpdGVfZW5kKGlvY2IsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3Bp ZWQsIGZvbGlvLCBmc2RhdGEpOw0KIA0KIAkvKiBDbGVhciBBcmNoaXZlZCBiaXQgb24gZmlsZSB3 cml0ZXMsIGFzIEFtaWdhT1Mgd291bGQgZG8gKi8NCiAJaWYgKEFGRlNfSShpbm9kZSktPmlfcHJv dGVjdCAmIEZJQkZfQVJDSElWRUQpIHsNCkBAIC02NDUsNyArNjQ3LDggQEAgc3RhdGljIGludCBh ZmZzX3JlYWRfZm9saW9fb2ZzKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgZm9saW8gKmZvbGlv KQ0KIAlyZXR1cm4gZXJyOw0KIH0NCiANCi1zdGF0aWMgaW50IGFmZnNfd3JpdGVfYmVnaW5fb2Zz KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0 aWMgaW50IGFmZnNfd3JpdGVfYmVnaW5fb2ZzKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJ CQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJCWxvZmZfdCBwb3MsIHVuc2ln bmVkIGxlbiwNCiAJCQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsN CkBAIC02ODQsOSArNjg3LDEwIEBAIHN0YXRpYyBpbnQgYWZmc193cml0ZV9iZWdpbl9vZnMoc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nDQogCXJldHVybiBl cnI7DQogfQ0KIA0KLXN0YXRpYyBpbnQgYWZmc193cml0ZV9lbmRfb2ZzKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCQkJbG9mZl90IHBvcywgdW5z aWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQotCQkJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHZv aWQgKmZzZGF0YSkNCitzdGF0aWMgaW50IGFmZnNfd3JpdGVfZW5kX29mcyhjb25zdCBzdHJ1Y3Qg a2lvY2IgKmlvY2IsDQorCQkJICAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQor CQkJICAgICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQorCQkJ ICAgICAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlu b2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7DQogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBp bm9kZS0+aV9zYjsNCmRpZmYgLS1naXQgYS9mcy9iY2FjaGVmcy9mcy1pby1idWZmZXJlZC5jIGIv ZnMvYmNhY2hlZnMvZnMtaW8tYnVmZmVyZWQuYw0KaW5kZXggNjZiYWNkZDQ5Zjc4Li4xYzU0Yjli NWJkNjkgMTAwNjQ0DQotLS0gYS9mcy9iY2FjaGVmcy9mcy1pby1idWZmZXJlZC5jDQorKysgYi9m cy9iY2FjaGVmcy9mcy1pby1idWZmZXJlZC5jDQpAQCAtNjc0LDcgKzY3NCw3IEBAIGludCBiY2gy X3dyaXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIHN0cnVjdCB3cml0ZWJh Y2tfY29udHJvbCAqd2JjDQogDQogLyogYnVmZmVyZWQgd3JpdGVzOiAqLw0KIA0KLWludCBiY2gy X3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCitpbnQgYmNoMl93cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25l ZCBsZW4sDQogCQkgICAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7 DQpAQCAtNzU3LDcgKzc1Nyw3IEBAIGludCBiY2gyX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJcmV0dXJuIGJjaDJfZXJyX2Ns YXNzKHJldCk7DQogfQ0KIA0KLWludCBiY2gyX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQoraW50IGJjaDJfd3JpdGVfZW5kKGNvbnN0 IHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkg ICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJCSAgIHN0cnVj dCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQpkaWZmIC0tZ2l0IGEvZnMvYmNhY2hl ZnMvZnMtaW8tYnVmZmVyZWQuaCBiL2ZzL2JjYWNoZWZzL2ZzLWlvLWJ1ZmZlcmVkLmgNCmluZGV4 IDMyMDdlYmJiNGFiNC4uMTRkZTkxYzI3NjU2IDEwMDY0NA0KLS0tIGEvZnMvYmNhY2hlZnMvZnMt aW8tYnVmZmVyZWQuaA0KKysrIGIvZnMvYmNhY2hlZnMvZnMtaW8tYnVmZmVyZWQuaA0KQEAgLTEw LDkgKzEwLDkgQEAgaW50IGJjaDJfcmVhZF9mb2xpbyhzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgZm9s aW8gKik7DQogaW50IGJjaDJfd3JpdGVwYWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBzdHJ1 Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKik7DQogdm9pZCBiY2gyX3JlYWRhaGVhZChzdHJ1Y3QgcmVh ZGFoZWFkX2NvbnRyb2wgKik7DQogDQotaW50IGJjaDJfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUg Kiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgbG9mZl90IHBvcywNCitpbnQgYmNoMl93cml0ZV9i ZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgbG9mZl90 IHBvcywNCiAJCSAgICAgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKiosIHZvaWQgKiopOw0K LWludCBiY2gyX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq LCBsb2ZmX3QsDQoraW50IGJjaDJfd3JpdGVfZW5kKGNvbnN0IHN0cnVjdCBraW9jYiAqLCBzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqLCBsb2ZmX3QsDQogCQkgICB1bnNpZ25lZCBsZW4sIHVuc2lnbmVk IGNvcGllZCwgc3RydWN0IGZvbGlvICosIHZvaWQgKik7DQogDQogc3NpemVfdCBiY2gyX3dyaXRl X2l0ZXIoc3RydWN0IGtpb2NiICosIHN0cnVjdCBpb3ZfaXRlciAqKTsNCmRpZmYgLS1naXQgYS9m cy9iZnMvZmlsZS5jIGIvZnMvYmZzL2ZpbGUuYw0KaW5kZXggZmE2NmEwOWU0OTZhLi4xMGRjMDE1 MWVhNTUgMTAwNjQ0DQotLS0gYS9mcy9iZnMvZmlsZS5jDQorKysgYi9mcy9iZnMvZmlsZS5jDQpA QCAtMTcwLDkgKzE3MCwxMCBAQCBzdGF0aWMgdm9pZCBiZnNfd3JpdGVfZmFpbGVkKHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCQl0cnVuY2F0ZV9wYWdlY2FjaGUo aW5vZGUsIGlub2RlLT5pX3NpemUpOw0KIH0NCiANCi1zdGF0aWMgaW50IGJmc193cml0ZV9iZWdp bihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQotCQkJ bG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KLQkJCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9p ZCAqKmZzZGF0YSkNCitzdGF0aWMgaW50IGJmc193cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lv Y2IgKmlvY2IsDQorCQkJICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJICAg bG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KKwkJCSAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwg dm9pZCAqKmZzZGF0YSkNCiB7DQogCWludCByZXQ7DQogDQpkaWZmIC0tZ2l0IGEvZnMvYnVmZmVy LmMgYi9mcy9idWZmZXIuYw0KaW5kZXggZDYxMDczMTQzMTI3Li5mMjIzYWEwNjBiM2EgMTAwNjQ0 DQotLS0gYS9mcy9idWZmZXIuYw0KKysrIGIvZnMvYnVmZmVyLmMNCkBAIC0yMzAyLDkgKzIzMDIs OSBAQCBpbnQgYmxvY2tfd3JpdGVfZW5kKGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWdu ZWQgY29waWVkLA0KIH0NCiBFWFBPUlRfU1lNQk9MKGJsb2NrX3dyaXRlX2VuZCk7DQogDQotaW50 IGdlbmVyaWNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGll ZCwNCi0JCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQoraW50IGdlbmVyaWNf d3JpdGVfZW5kKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsDQorCQkgICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNv cGllZCwNCisJCSAgICAgIHN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQog CXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0Ow0KIAlsb2ZmX3Qgb2xkX3NpemUg PSBpbm9kZS0+aV9zaXplOw0KQEAgLTI0OTksNyArMjQ5OSw4IEBAIGludCBnZW5lcmljX2NvbnRf ZXhwYW5kX3NpbXBsZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBsb2ZmX3Qgc2l6ZSkNCiB9DQogRVhQ T1JUX1NZTUJPTChnZW5lcmljX2NvbnRfZXhwYW5kX3NpbXBsZSk7DQogDQotc3RhdGljIGludCBj b250X2V4cGFuZF96ZXJvKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCitzdGF0aWMgaW50IGNvbnRfZXhwYW5kX3plcm8oY29uc3Qgc3RydWN0IGtpb2Ni ICppb2NiLA0KKwkJCSAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAg bG9mZl90IHBvcywgbG9mZl90ICpieXRlcykNCiB7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBt YXBwaW5nLT5ob3N0Ow0KQEAgLTI1MjMsMTIgKzI1MjQsMTIgQEAgc3RhdGljIGludCBjb250X2V4 cGFuZF96ZXJvKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCiAJCX0NCiAJCWxlbiA9IFBBR0VfU0laRSAtIHplcm9mcm9tOw0KIA0KLQkJZXJyID0gYW9w cy0+d3JpdGVfYmVnaW4oZmlsZSwgbWFwcGluZywgY3VycG9zLCBsZW4sDQorCQllcnIgPSBhb3Bz LT53cml0ZV9iZWdpbihpb2NiLCBtYXBwaW5nLCBjdXJwb3MsIGxlbiwNCiAJCQkJCSAgICAmZm9s aW8sICZmc2RhdGEpOw0KIAkJaWYgKGVycikNCiAJCQlnb3RvIG91dDsNCiAJCWZvbGlvX3plcm9f cmFuZ2UoZm9saW8sIG9mZnNldF9pbl9mb2xpbyhmb2xpbywgY3VycG9zKSwgbGVuKTsNCi0JCWVy ciA9IGFvcHMtPndyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBjdXJwb3MsIGxlbiwgbGVuLA0KKwkJ ZXJyID0gYW9wcy0+d3JpdGVfZW5kKGlvY2IsIG1hcHBpbmcsIGN1cnBvcywgbGVuLCBsZW4sDQog CQkJCQkJZm9saW8sIGZzZGF0YSk7DQogCQlpZiAoZXJyIDwgMCkNCiAJCQlnb3RvIG91dDsNCkBA IC0yNTU2LDEyICsyNTU3LDEyIEBAIHN0YXRpYyBpbnQgY29udF9leHBhbmRfemVybyhzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQl9DQogCQlsZW4g PSBvZmZzZXQgLSB6ZXJvZnJvbTsNCiANCi0JCWVyciA9IGFvcHMtPndyaXRlX2JlZ2luKGZpbGUs IG1hcHBpbmcsIGN1cnBvcywgbGVuLA0KKwkJZXJyID0gYW9wcy0+d3JpdGVfYmVnaW4oaW9jYiwg bWFwcGluZywgY3VycG9zLCBsZW4sDQogCQkJCQkgICAgJmZvbGlvLCAmZnNkYXRhKTsNCiAJCWlm IChlcnIpDQogCQkJZ290byBvdXQ7DQogCQlmb2xpb196ZXJvX3JhbmdlKGZvbGlvLCBvZmZzZXRf aW5fZm9saW8oZm9saW8sIGN1cnBvcyksIGxlbik7DQotCQllcnIgPSBhb3BzLT53cml0ZV9lbmQo ZmlsZSwgbWFwcGluZywgY3VycG9zLCBsZW4sIGxlbiwNCisJCWVyciA9IGFvcHMtPndyaXRlX2Vu ZChpb2NiLCBtYXBwaW5nLCBjdXJwb3MsIGxlbiwgbGVuLA0KIAkJCQkJCWZvbGlvLCBmc2RhdGEp Ow0KIAkJaWYgKGVyciA8IDApDQogCQkJZ290byBvdXQ7DQpAQCAtMjU3NiwxNyArMjU3NywxNiBA QCBzdGF0aWMgaW50IGNvbnRfZXhwYW5kX3plcm8oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KICAqIEZvciBtb3JvbmljIGZpbGVzeXN0ZW1zIHRoYXQg ZG8gbm90IGFsbG93IGhvbGVzIGluIGZpbGUuDQogICogV2UgbWF5IGhhdmUgdG8gZXh0ZW5kIHRo ZSBmaWxlLg0KICAqLw0KLWludCBjb250X3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBs ZW4sDQotCQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhLA0KLQkJCWdldF9i bG9ja190ICpnZXRfYmxvY2ssIGxvZmZfdCAqYnl0ZXMpDQoraW50IGNvbnRfd3JpdGVfYmVnaW4o Y29uc3Qgc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN CisJCSAgICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xpb3As DQorCQkgICAgIHZvaWQgKipmc2RhdGEsIGdldF9ibG9ja190ICpnZXRfYmxvY2ssIGxvZmZfdCAq Ynl0ZXMpDQogew0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsNCiAJdW5z aWduZWQgaW50IGJsb2Nrc2l6ZSA9IGlfYmxvY2tzaXplKGlub2RlKTsNCiAJdW5zaWduZWQgaW50 IHplcm9mcm9tOw0KIAlpbnQgZXJyOw0KIA0KLQllcnIgPSBjb250X2V4cGFuZF96ZXJvKGZpbGUs IG1hcHBpbmcsIHBvcywgYnl0ZXMpOw0KKwllcnIgPSBjb250X2V4cGFuZF96ZXJvKGlvY2IsIG1h cHBpbmcsIHBvcywgYnl0ZXMpOw0KIAlpZiAoZXJyKQ0KIAkJcmV0dXJuIGVycjsNCiANCmRpZmYg LS1naXQgYS9mcy9jZXBoL2FkZHIuYyBiL2ZzL2NlcGgvYWRkci5jDQppbmRleCA2MGE2MjFiMDBj NjUuLjAyNDY4Yzg0OGNjZSAxMDA2NDQNCi0tLSBhL2ZzL2NlcGgvYWRkci5jDQorKysgYi9mcy9j ZXBoL2FkZHIuYw0KQEAgLTE4NjQsMTAgKzE4NjQsMTIgQEAgc3RhdGljIGludCBjZXBoX25ldGZz X2NoZWNrX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgcG9zLCB1bnNpZ25l ZA0KICAqIFdlIGFyZSBvbmx5IGFsbG93ZWQgdG8gd3JpdGUgaW50by9kaXJ0eSB0aGUgcGFnZSBp ZiB0aGUgcGFnZSBpcw0KICAqIGNsZWFuLCBvciBhbHJlYWR5IGRpcnR5IHdpdGhpbiB0aGUgc2Ft ZSBzbmFwIGNvbnRleHQuDQogICovDQotc3RhdGljIGludCBjZXBoX3dyaXRlX2JlZ2luKHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50 IGNlcGhfd3JpdGVfYmVnaW4oY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJCSAgICBzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgbG9mZl90IHBvcywgdW5zaWduZWQg bGVuLA0KIAkJCSAgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0K KwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQogCXN0cnVjdCBpbm9kZSAqaW5v ZGUgPSBmaWxlX2lub2RlKGZpbGUpOw0KIAlzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSA9IGNl cGhfaW5vZGUoaW5vZGUpOw0KIAlpbnQgcjsNCkBAIC0xODg1LDEwICsxODg3LDEyIEBAIHN0YXRp YyBpbnQgY2VwaF93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nf c3BhY2UgKm1hcHBpbmcsDQogICogd2UgZG9uJ3QgZG8gYW55dGhpbmcgaW4gaGVyZSB0aGF0IHNp bXBsZV93cml0ZV9lbmQgZG9lc24ndCBkbw0KICAqIGV4Y2VwdCBhZGp1c3QgZGlydHkgcGFnZSBh Y2NvdW50aW5nDQogICovDQotc3RhdGljIGludCBjZXBoX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQotCQkJICBsb2ZmX3QgcG9zLCB1 bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCitzdGF0aWMgaW50IGNlcGhfd3JpdGVfZW5k KGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQkgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLCBsb2ZmX3QgcG9zLA0KKwkJCSAgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQs DQogCQkJICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KKwlzdHJ1Y3Qg ZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBmaWxl X2lub2RlKGZpbGUpOw0KIAlzdHJ1Y3QgY2VwaF9jbGllbnQgKmNsID0gY2VwaF9pbm9kZV90b19j bGllbnQoaW5vZGUpOw0KIAlib29sIGNoZWNrX2NhcCA9IGZhbHNlOw0KZGlmZiAtLWdpdCBhL2Zz L2VjcnlwdGZzL21tYXAuYyBiL2ZzL2VjcnlwdGZzL21tYXAuYw0KaW5kZXggNjBmMGFjODc0NGI1 Li4yYzJiMTJmZWRlYWUgMTAwNjQ0DQotLS0gYS9mcy9lY3J5cHRmcy9tbWFwLmMNCisrKyBiL2Zz L2VjcnlwdGZzL21tYXAuYw0KQEAgLTIyOCw3ICsyMjgsNyBAQCBzdGF0aWMgaW50IGZpbGxfemVy b3NfdG9fZW5kX29mX3BhZ2Uoc3RydWN0IGZvbGlvICpmb2xpbywgdW5zaWduZWQgaW50IHRvKQ0K IA0KIC8qKg0KICAqIGVjcnlwdGZzX3dyaXRlX2JlZ2luDQotICogQGZpbGU6IFRoZSBlQ3J5cHRm cyBmaWxlDQorICogQGlvY2I6IEkvTyBjb250cm9sIGJsb2NrIGZvciB0aGUgZUNyeXB0ZnMgZmls ZQ0KICAqIEBtYXBwaW5nOiBUaGUgZUNyeXB0ZnMgb2JqZWN0DQogICogQHBvczogVGhlIGZpbGUg b2Zmc2V0IGF0IHdoaWNoIHRvIHN0YXJ0IHdyaXRpbmcNCiAgKiBAbGVuOiBMZW5ndGggb2YgdGhl IHdyaXRlDQpAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpYyBpbnQgZmlsbF96ZXJvc190b19lbmRf b2ZfcGFnZShzdHJ1Y3QgZm9saW8gKmZvbGlvLCB1bnNpZ25lZCBpbnQgdG8pDQogICoNCiAgKiBS ZXR1cm5zIHplcm8gb24gc3VjY2Vzczsgbm9uLXplcm8gb3RoZXJ3aXNlDQogICovDQotc3RhdGlj IGludCBlY3J5cHRmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwNCitzdGF0aWMgaW50 IGVjcnlwdGZzX3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwNCiAJCQlzdHJ1 Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4s DQogCQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KQEAgLTMyMiw3ICsz MjIsNyBAQCBzdGF0aWMgaW50IGVjcnlwdGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxl LA0KIAkgKiBOb3RlLCB0aGlzIHdpbGwgaW5jcmVhc2UgaV9zaXplLiAqLw0KIAlpZiAoaW5kZXgg IT0gMCkgew0KIAkJaWYgKHByZXZfcGFnZV9lbmRfc2l6ZSA+IGlfc2l6ZV9yZWFkKG1hcHBpbmct Pmhvc3QpKSB7DQotCQkJcmMgPSBlY3J5cHRmc190cnVuY2F0ZShmaWxlLT5mX3BhdGguZGVudHJ5 LA0KKwkJCXJjID0gZWNyeXB0ZnNfdHJ1bmNhdGUoaW9jYi0+a2lfZmlscC0+Zl9wYXRoLmRlbnRy eSwNCiAJCQkJCSAgICAgICBwcmV2X3BhZ2VfZW5kX3NpemUpOw0KIAkJCWlmIChyYykgew0KIAkJ CQlwcmludGsoS0VSTl9FUlIgIiVzOiBFcnJvciBvbiBhdHRlbXB0IHRvICINCkBAIC00MjksNyAr NDI5LDcgQEAgaW50IGVjcnlwdGZzX3dyaXRlX2lub2RlX3NpemVfdG9fbWV0YWRhdGEoc3RydWN0 IGlub2RlICplY3J5cHRmc19pbm9kZSkNCiANCiAvKioNCiAgKiBlY3J5cHRmc193cml0ZV9lbmQN Ci0gKiBAZmlsZTogVGhlIGVDcnlwdGZzIGZpbGUgb2JqZWN0DQorICogQGlvY2I6IEkvTyBjb250 cm9sIGJsb2NrIGZvciB0aGUgZUNyeXB0ZnMgZmlsZQ0KICAqIEBtYXBwaW5nOiBUaGUgZUNyeXB0 ZnMgb2JqZWN0DQogICogQHBvczogVGhlIGZpbGUgcG9zaXRpb24NCiAgKiBAbGVuOiBUaGUgbGVu Z3RoIG9mIHRoZSBkYXRhICh1bnVzZWQpDQpAQCAtNDM3LDcgKzQzNyw3IEBAIGludCBlY3J5cHRm c193cml0ZV9pbm9kZV9zaXplX3RvX21ldGFkYXRhKHN0cnVjdCBpbm9kZSAqZWNyeXB0ZnNfaW5v ZGUpDQogICogQGZvbGlvOiBUaGUgZUNyeXB0ZnMgZm9saW8NCiAgKiBAZnNkYXRhOiBUaGUgZnNk YXRhICh1bnVzZWQpDQogICovDQotc3RhdGljIGludCBlY3J5cHRmc193cml0ZV9lbmQoc3RydWN0 IGZpbGUgKmZpbGUsDQorc3RhdGljIGludCBlY3J5cHRmc193cml0ZV9lbmQoY29uc3Qgc3RydWN0 IGtpb2NiICppb2NiLA0KIAkJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxv ZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCXN0cnVjdCBmb2xp byAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCmRpZmYgLS1naXQgYS9mcy9leGZhdC9maWxlLmMgYi9m cy9leGZhdC9maWxlLmMNCmluZGV4IDg0MWE1YjE4ZTNkZi4uZmRjMmZhMWU1YzQxIDEwMDY0NA0K LS0tIGEvZnMvZXhmYXQvZmlsZS5jDQorKysgYi9mcy9leGZhdC9maWxlLmMNCkBAIC01MzIsMTAg KzUzMiwxMiBAQCBpbnQgZXhmYXRfZmlsZV9mc3luYyhzdHJ1Y3QgZmlsZSAqZmlscCwgbG9mZl90 IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQogCXJldHVybiBibGtkZXZfaXNzdWVf Zmx1c2goaW5vZGUtPmlfc2ItPnNfYmRldik7DQogfQ0KIA0KLXN0YXRpYyBpbnQgZXhmYXRfZXh0 ZW5kX3ZhbGlkX3NpemUoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBuZXdfdmFsaWRfc2l6ZSkN CitzdGF0aWMgaW50IGV4ZmF0X2V4dGVuZF92YWxpZF9zaXplKGNvbnN0IHN0cnVjdCBraW9jYiAq aW9jYiwNCisJCQkJICAgbG9mZl90IG5ld192YWxpZF9zaXplKQ0KIHsNCiAJaW50IGVycjsNCiAJ bG9mZl90IHBvczsNCisJc3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KIAlzdHJ1 Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShmaWxlKTsNCiAJc3RydWN0IGV4ZmF0X2lub2Rl X2luZm8gKmVpID0gRVhGQVRfSShpbm9kZSk7DQogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nID0gaW5vZGUtPmlfbWFwcGluZzsNCkBAIC01NTEsMTQgKzU1MywxNCBAQCBzdGF0aWMgaW50 IGV4ZmF0X2V4dGVuZF92YWxpZF9zaXplKHN0cnVjdCBmaWxlICpmaWxlLCBsb2ZmX3QgbmV3X3Zh bGlkX3NpemUpDQogCQlpZiAocG9zICsgbGVuID4gbmV3X3ZhbGlkX3NpemUpDQogCQkJbGVuID0g bmV3X3ZhbGlkX3NpemUgLSBwb3M7DQogDQotCQllcnIgPSBvcHMtPndyaXRlX2JlZ2luKGZpbGUs IG1hcHBpbmcsIHBvcywgbGVuLCAmZm9saW8sIE5VTEwpOw0KKwkJZXJyID0gb3BzLT53cml0ZV9i ZWdpbihpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgJmZvbGlvLCBOVUxMKTsNCiAJCWlmIChlcnIp DQogCQkJZ290byBvdXQ7DQogDQogCQlvZmYgPSBvZmZzZXRfaW5fZm9saW8oZm9saW8sIHBvcyk7 DQogCQlmb2xpb196ZXJvX25ld19idWZmZXJzKGZvbGlvLCBvZmYsIG9mZiArIGxlbik7DQogDQot CQllcnIgPSBvcHMtPndyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgbGVuLCBmb2xp bywgTlVMTCk7DQorCQllcnIgPSBvcHMtPndyaXRlX2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxl biwgbGVuLCBmb2xpbywgTlVMTCk7DQogCQlpZiAoZXJyIDwgMCkNCiAJCQlnb3RvIG91dDsNCiAJ CXBvcyArPSBsZW47DQpAQCAtNjA0LDcgKzYwNiw3IEBAIHN0YXRpYyBzc2l6ZV90IGV4ZmF0X2Zp bGVfd3JpdGVfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaXRlcikN CiAJfQ0KIA0KIAlpZiAocG9zID4gdmFsaWRfc2l6ZSkgew0KLQkJcmV0ID0gZXhmYXRfZXh0ZW5k X3ZhbGlkX3NpemUoZmlsZSwgcG9zKTsNCisJCXJldCA9IGV4ZmF0X2V4dGVuZF92YWxpZF9zaXpl KGlvY2IsIHBvcyk7DQogCQlpZiAocmV0IDwgMCAmJiByZXQgIT0gLUVOT1NQQykgew0KIAkJCWV4 ZmF0X2Vycihpbm9kZS0+aV9zYiwNCiAJCQkJIndyaXRlOiBmYWlsIHRvIHplcm8gZnJvbSAlbGx1 IHRvICVsbHUoJXpkKSIsDQpAQCAtNjU1LDggKzY1NywxMSBAQCBzdGF0aWMgdm1fZmF1bHRfdCBl eGZhdF9wYWdlX21rd3JpdGUoc3RydWN0IHZtX2ZhdWx0ICp2bWYpDQogCXN0cnVjdCBmaWxlICpm aWxlID0gdm1hLT52bV9maWxlOw0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gZmlsZV9pbm9kZShm aWxlKTsNCiAJc3RydWN0IGV4ZmF0X2lub2RlX2luZm8gKmVpID0gRVhGQVRfSShpbm9kZSk7DQor CXN0cnVjdCBraW9jYiBpb2NiOw0KIAlsb2ZmX3Qgc3RhcnQsIGVuZDsNCiANCisJaW5pdF9zeW5j X2tpb2NiKCZpb2NiLCBmaWxlKTsNCisNCiAJaWYgKCFpbm9kZV90cnlsb2NrKGlub2RlKSkNCiAJ CXJldHVybiBWTV9GQVVMVF9SRVRSWTsNCiANCkBAIC02NjUsNyArNjcwLDcgQEAgc3RhdGljIHZt X2ZhdWx0X3QgZXhmYXRfcGFnZV9ta3dyaXRlKHN0cnVjdCB2bV9mYXVsdCAqdm1mKQ0KIAkJCXN0 YXJ0ICsgdm1hLT52bV9lbmQgLSB2bWEtPnZtX3N0YXJ0KTsNCiANCiAJaWYgKGVpLT52YWxpZF9z aXplIDwgZW5kKSB7DQotCQllcnIgPSBleGZhdF9leHRlbmRfdmFsaWRfc2l6ZShmaWxlLCBlbmQp Ow0KKwkJZXJyID0gZXhmYXRfZXh0ZW5kX3ZhbGlkX3NpemUoJmlvY2IsIGVuZCk7DQogCQlpZiAo ZXJyIDwgMCkgew0KIAkJCWlub2RlX3VubG9jayhpbm9kZSk7DQogCQkJcmV0dXJuIHZtZl9mc19l cnJvcihlcnIpOw0KZGlmZiAtLWdpdCBhL2ZzL2V4ZmF0L2lub2RlLmMgYi9mcy9leGZhdC9pbm9k ZS5jDQppbmRleCBiMjJjMDJkNjAwMGYuLmMxMDg0NGUxZTE2YyAxMDA2NDQNCi0tLSBhL2ZzL2V4 ZmF0L2lub2RlLmMNCisrKyBiL2ZzL2V4ZmF0L2lub2RlLmMNCkBAIC00NDYsOSArNDQ2LDEwIEBA IHN0YXRpYyB2b2lkIGV4ZmF0X3dyaXRlX2ZhaWxlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywgbG9mZl90IHRvKQ0KIAl9DQogfQ0KIA0KLXN0YXRpYyBpbnQgZXhmYXRfd3JpdGVfYmVn aW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJ bG9mZl90IHBvcywgdW5zaWduZWQgaW50IGxlbiwNCi0JCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwg dm9pZCAqKmZzZGF0YSkNCitzdGF0aWMgaW50IGV4ZmF0X3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVj dCBraW9jYiAqaW9jYiwNCisJCQkgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0K KwkJCSAgICAgbG9mZl90IHBvcywgdW5zaWduZWQgaW50IGxlbiwNCisJCQkgICAgIHN0cnVjdCBm b2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQogCWludCByZXQ7DQogDQpAQCAtNDYz LDE1ICs0NjQsMTYgQEAgc3RhdGljIGludCBleGZhdF93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiByZXQ7DQogfQ0K IA0KLXN0YXRpYyBpbnQgZXhmYXRfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGludCBsZW4s IHVuc2lnbmVkIGludCBjb3BpZWQsDQotCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2Rh dGEpDQorc3RhdGljIGludCBleGZhdF93cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2Ni LA0KKwkJCSAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwkJCSAgIGxvZmZfdCBw b3MsIHVuc2lnbmVkIGludCBsZW4sIHVuc2lnbmVkIGludCBjb3BpZWQsDQorCQkJICAgc3RydWN0 IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9 IG1hcHBpbmctPmhvc3Q7DQogCXN0cnVjdCBleGZhdF9pbm9kZV9pbmZvICplaSA9IEVYRkFUX0ko aW5vZGUpOw0KIAlpbnQgZXJyOw0KIA0KLQllcnIgPSBnZW5lcmljX3dyaXRlX2VuZChmaWxlLCBt YXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRhKTsNCisJZXJyID0gZ2VuZXJp Y193cml0ZV9lbmQoaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sIGZzZGF0 YSk7DQogCWlmIChlcnIgPCBsZW4pDQogCQlleGZhdF93cml0ZV9mYWlsZWQobWFwcGluZywgcG9z K2xlbik7DQogDQpkaWZmIC0tZ2l0IGEvZnMvZXh0Mi9pbm9kZS5jIGIvZnMvZXh0Mi9pbm9kZS5j DQppbmRleCAzMGY4MjAxYzE1NWYuLmQzNWNhMjZlZWUzYyAxMDA2NDQNCi0tLSBhL2ZzL2V4dDIv aW5vZGUuYw0KKysrIGIvZnMvZXh0Mi9pbm9kZS5jDQpAQCAtOTE1LDcgKzkxNSw3IEBAIHN0YXRp YyB2b2lkIGV4dDJfcmVhZGFoZWFkKHN0cnVjdCByZWFkYWhlYWRfY29udHJvbCAqcmFjKQ0KIH0N CiANCiBzdGF0aWMgaW50DQotZXh0Ml93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorZXh0Ml93cml0ZV9iZWdpbihjb25zdCBzdHJ1 Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJbG9mZl90 IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEp DQogew0KIAlpbnQgcmV0Ow0KQEAgLTkyNiwxMyArOTI2LDE0IEBAIGV4dDJfd3JpdGVfYmVnaW4o c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAlyZXR1 cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGV4dDJfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm aWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNp Z25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCi0JCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lk ICpmc2RhdGEpDQorc3RhdGljIGludCBleHQyX3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQorCQkJICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCisJCQkgIGxvZmZf dCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KKwkJCSAgc3RydWN0IGZvbGlv ICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCiAJaW50IHJldDsNCiANCi0JcmV0ID0gZ2VuZXJp Y193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sIGZzZGF0 YSk7DQorCXJldCA9IGdlbmVyaWNfd3JpdGVfZW5kKGlvY2IsIG1hcHBpbmcsIHBvcywgbGVuLCBj b3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KIAlpZiAocmV0IDwgbGVuKQ0KIAkJZXh0Ml93cml0ZV9m YWlsZWQobWFwcGluZywgcG9zICsgbGVuKTsNCiAJcmV0dXJuIHJldDsNCmRpZmYgLS1naXQgYS9m cy9leHQ0L2lub2RlLmMgYi9mcy9leHQ0L2lub2RlLmMNCmluZGV4IGU2YWE3Y2E2ZDg0Mi4uMDhj MTAyMDBkNmZlIDEwMDY0NA0KLS0tIGEvZnMvZXh0NC9pbm9kZS5jDQorKysgYi9mcy9leHQ0L2lu b2RlLmMNCkBAIC0xMjUyLDcgKzEyNTIsOCBAQCBpbnQgZXh0NF9ibG9ja193cml0ZV9iZWdpbiho YW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgZm9saW8gKmZvbGlvLA0KICAqIGFuZCB0aGUgZXh0NF93 cml0ZV9lbmQoKS4gIFNvIGRvaW5nIHRoZSBqYmQyX2pvdXJuYWxfc3RhcnQgYXQgdGhlIHN0YXJ0 IG9mDQogICogZXh0NF93cml0ZV9iZWdpbigpIGlzIHRoZSByaWdodCBwbGFjZS4NCiAgKi8NCi1z dGF0aWMgaW50IGV4dDRfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRy ZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgZXh0NF93cml0ZV9iZWdpbihjb25zdCBz dHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LA0KIAkJCSAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQkJICAgIHN0cnVjdCBmb2xp byAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQpAQCAtMTM5OSwxMyArMTQwMCwxMCBAQCBz dGF0aWMgaW50IHdyaXRlX2VuZF9mbihoYW5kbGVfdCAqaGFuZGxlLCBzdHJ1Y3QgaW5vZGUgKmlu b2RlLA0KIH0NCiANCiAvKg0KLSAqIFdlIG5lZWQgdG8gcGljayB1cCB0aGUgbmV3IGlub2RlIHNp emUgd2hpY2ggZ2VuZXJpY19jb21taXRfd3JpdGUgZ2F2ZSB1cw0KLSAqIGBmaWxlJyBjYW4gYmUg TlVMTCAtIGVnLCB3aGVuIGNhbGxlZCBmcm9tIHBhZ2Vfc3ltbGluaygpLg0KLSAqDQogICogZXh0 NCBuZXZlciBwbGFjZXMgYnVmZmVycyBvbiBpbm9kZS0+aV9tYXBwaW5nLT5pX3ByaXZhdGVfbGlz dC4gIG1ldGFkYXRhDQogICogYnVmZmVycyBhcmUgbWFuYWdlZCBpbnRlcm5hbGx5Lg0KICAqLw0K LXN0YXRpYyBpbnQgZXh0NF93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsDQorc3RhdGljIGlu dCBleHQ0X3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQkJICBzdHJ1Y3Qg YWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwg dW5zaWduZWQgY29waWVkLA0KIAkJCSAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRh KQ0KQEAgLTE1MTAsNyArMTUwOCw3IEBAIHN0YXRpYyB2b2lkIGV4dDRfam91cm5hbGxlZF96ZXJv X25ld19idWZmZXJzKGhhbmRsZV90ICpoYW5kbGUsDQogCX0gd2hpbGUgKGJoICE9IGhlYWQpOw0K IH0NCiANCi1zdGF0aWMgaW50IGV4dDRfam91cm5hbGxlZF93cml0ZV9lbmQoc3RydWN0IGZpbGUg KmZpbGUsDQorc3RhdGljIGludCBleHQ0X2pvdXJuYWxsZWRfd3JpdGVfZW5kKGNvbnN0IHN0cnVj dCBraW9jYiAqaW9jYiwNCiAJCQkJICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN CiAJCQkJICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCiAJ CQkJICAgICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQpAQCAtMzAzNiw3ICsz MDM0LDggQEAgc3RhdGljIGludCBleHQ0X25vbmRhX3N3aXRjaChzdHJ1Y3Qgc3VwZXJfYmxvY2sg KnNiKQ0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBleHQ0X2RhX3dyaXRlX2JlZ2lu KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0 aWMgaW50IGV4dDRfZGFfd3JpdGVfYmVnaW4oY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJ CSAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgICAgbG9mZl90 IHBvcywgdW5zaWduZWQgbGVuLA0KIAkJCSAgICAgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZv aWQgKipmc2RhdGEpDQogew0KQEAgLTMwNTQsNyArMzA1Myw3IEBAIHN0YXRpYyBpbnQgZXh0NF9k YV93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsDQogDQogCWlmIChleHQ0X25vbmRhX3N3aXRjaChpbm9kZS0+aV9zYikgfHwgZXh0NF92 ZXJpdHlfaW5fcHJvZ3Jlc3MoaW5vZGUpKSB7DQogCQkqZnNkYXRhID0gKHZvaWQgKilGQUxMX0JB Q0tfVE9fTk9OREVMQUxMT0M7DQotCQlyZXR1cm4gZXh0NF93cml0ZV9iZWdpbihmaWxlLCBtYXBw aW5nLCBwb3MsDQorCQlyZXR1cm4gZXh0NF93cml0ZV9iZWdpbihpb2NiLCBtYXBwaW5nLCBwb3Ms DQogCQkJCQlsZW4sIGZvbGlvcCwgZnNkYXRhKTsNCiAJfQ0KIAkqZnNkYXRhID0gKHZvaWQgKikw Ow0KQEAgLTMxOTUsNyArMzE5NCw3IEBAIHN0YXRpYyBpbnQgZXh0NF9kYV9kb193cml0ZV9lbmQo c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiBjb3BpZWQ7DQogfQ0KIA0K LXN0YXRpYyBpbnQgZXh0NF9kYV93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsDQorc3RhdGlj IGludCBleHQ0X2RhX3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQogCQkJICAg ICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgIGxvZmZfdCBwb3MsIHVu c2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCSAgICAgc3RydWN0IGZvbGlvICpmb2xp bywgdm9pZCAqZnNkYXRhKQ0KQEAgLTMyMDQsNyArMzIwMyw3IEBAIHN0YXRpYyBpbnQgZXh0NF9k YV93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsDQogCWludCB3cml0ZV9tb2RlID0gKGludCko dW5zaWduZWQgbG9uZylmc2RhdGE7DQogDQogCWlmICh3cml0ZV9tb2RlID09IEZBTExfQkFDS19U T19OT05ERUxBTExPQykNCi0JCXJldHVybiBleHQ0X3dyaXRlX2VuZChmaWxlLCBtYXBwaW5nLCBw b3MsDQorCQlyZXR1cm4gZXh0NF93cml0ZV9lbmQoaW9jYiwgbWFwcGluZywgcG9zLA0KIAkJCQkg ICAgICBsZW4sIGNvcGllZCwgZm9saW8sIGZzZGF0YSk7DQogDQogCXRyYWNlX2V4dDRfZGFfd3Jp dGVfZW5kKGlub2RlLCBwb3MsIGxlbiwgY29waWVkKTsNCmRpZmYgLS1naXQgYS9mcy9mMmZzL2Rh dGEuYyBiL2ZzL2YyZnMvZGF0YS5jDQppbmRleCAzMWU4OTI4NDI2MjUuLjcxMWFkODBiMzhkMCAx MDA2NDQNCi0tLSBhL2ZzL2YyZnMvZGF0YS5jDQorKysgYi9mcy9mMmZzL2RhdGEuYw0KQEAgLTM1 MTksOCArMzUxOSwxMCBAQCBzdGF0aWMgaW50IHByZXBhcmVfYXRvbWljX3dyaXRlX2JlZ2luKHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSwNCiAJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyBpbnQg ZjJmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsDQotCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHN0cnVjdCBmb2xpbyAqKmZv bGlvcCwgdm9pZCAqKmZzZGF0YSkNCitzdGF0aWMgaW50IGYyZnNfd3JpdGVfYmVnaW4oY29uc3Qg c3RydWN0IGtpb2NiICppb2NiLA0KKwkJCSAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCisJCQkgICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xp b3AsDQorCQkJICAgIHZvaWQgKipmc2RhdGEpDQogew0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0g bWFwcGluZy0+aG9zdDsNCiAJc3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpID0gRjJGU19JX1NCKGlu b2RlKTsNCkBAIC0zNjU2LDcgKzM2NTgsNyBAQCBzdGF0aWMgaW50IGYyZnNfd3JpdGVfYmVnaW4o c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAlyZXR1 cm4gZXJyOw0KIH0NCiANCi1zdGF0aWMgaW50IGYyZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpm aWxlLA0KK3N0YXRpYyBpbnQgZjJmc193cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2Ni LA0KIAkJCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVu c2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHZv aWQgKmZzZGF0YSkNCmRpZmYgLS1naXQgYS9mcy9mYXQvaW5vZGUuYyBiL2ZzL2ZhdC9pbm9kZS5j DQppbmRleCAzODUyYmI2NjM1OGMuLjk2NDhlZDA5NzgxNiAxMDA2NDQNCi0tLSBhL2ZzL2ZhdC9p bm9kZS5jDQorKysgYi9mcy9mYXQvaW5vZGUuYw0KQEAgLTIxOSwxMyArMjE5LDE0IEBAIHN0YXRp YyB2b2lkIGZhdF93cml0ZV9mYWlsZWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxv ZmZfdCB0bykNCiAJfQ0KIH0NCiANCi1zdGF0aWMgaW50IGZhdF93cml0ZV9iZWdpbihzdHJ1Y3Qg ZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQotCQkJbG9mZl90IHBv cywgdW5zaWduZWQgbGVuLA0KLQkJCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0 YSkNCitzdGF0aWMgaW50IGZhdF93cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2Is DQorCQkJICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJICAgbG9mZl90IHBv cywgdW5zaWduZWQgbGVuLA0KKwkJCSAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZz ZGF0YSkNCiB7DQogCWludCBlcnI7DQogDQotCWVyciA9IGNvbnRfd3JpdGVfYmVnaW4oZmlsZSwg bWFwcGluZywgcG9zLCBsZW4sDQorCWVyciA9IGNvbnRfd3JpdGVfYmVnaW4oaW9jYiwgbWFwcGlu ZywgcG9zLCBsZW4sDQogCQkJCWZvbGlvcCwgZnNkYXRhLCBmYXRfZ2V0X2Jsb2NrLA0KIAkJCQkm TVNET1NfSShtYXBwaW5nLT5ob3N0KS0+bW11X3ByaXZhdGUpOw0KIAlpZiAoZXJyIDwgMCkNCkBA IC0yMzMsMTMgKzIzNCwxNCBAQCBzdGF0aWMgaW50IGZhdF93cml0ZV9iZWdpbihzdHJ1Y3QgZmls ZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiBlcnI7DQog fQ0KIA0KLXN0YXRpYyBpbnQgZmF0X3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQotCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1 bnNpZ25lZCBjb3BpZWQsDQotCQkJc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0K K3N0YXRpYyBpbnQgZmF0X3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJ IHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwkJCSBsb2ZmX3QgcG9zLCB1bnNpZ25l ZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCisJCQkgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAq ZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7DQogCWlu dCBlcnI7DQotCWVyciA9IGdlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVu LCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KKwllcnIgPSBnZW5lcmljX3dyaXRlX2VuZChpb2Ni LCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRhKTsNCiAJaWYgKGVyciA8 IGxlbikNCiAJCWZhdF93cml0ZV9mYWlsZWQobWFwcGluZywgcG9zICsgbGVuKTsNCiAJaWYgKCEo ZXJyIDwgMCkgJiYgIShNU0RPU19JKGlub2RlKS0+aV9hdHRycyAmIEFUVFJfQVJDSCkpIHsNCmRp ZmYgLS1naXQgYS9mcy9mdXNlL2ZpbGUuYyBiL2ZzL2Z1c2UvZmlsZS5jDQppbmRleCBmMTAyYWZj MDMzNTkuLjIxYzZmODY1NGJmZSAxMDA2NDQNCi0tLSBhL2ZzL2Z1c2UvZmlsZS5jDQorKysgYi9m cy9mdXNlL2ZpbGUuYw0KQEAgLTIyMTMsMTAgKzIyMTMsMTMgQEAgc3RhdGljIGludCBmdXNlX3dy aXRlcGFnZXMoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogICogSXQncyB3b3J0aHkg dG8gbWFrZSBzdXJlIHRoYXQgc3BhY2UgaXMgcmVzZXJ2ZWQgb24gZGlzayBmb3IgdGhlIHdyaXRl LA0KICAqIGJ1dCBob3cgdG8gaW1wbGVtZW50IGl0IHdpdGhvdXQga2lsbGluZyBwZXJmb3JtYW5j ZSBuZWVkIG1vcmUgdGhpbmtpbmcuDQogICovDQotc3RhdGljIGludCBmdXNlX3dyaXRlX2JlZ2lu KHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCWxv ZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNk YXRhKQ0KK3N0YXRpYyBpbnQgZnVzZV93cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlv Y2IsDQorCQkJICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwkJCSAgICBsb2Zm X3QgcG9zLCB1bnNpZ25lZCBsZW4sIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwNCisJCQkgICAgdm9p ZCAqKmZzZGF0YSkNCiB7DQogCXBnb2ZmX3QgaW5kZXggPSBwb3MgPj4gUEFHRV9TSElGVDsNCisJ c3RydWN0IGZpbGUgKmZpbGUgPSBpb2NiLT5raV9maWxwOw0KIAlzdHJ1Y3QgZnVzZV9jb25uICpm YyA9IGdldF9mdXNlX2Nvbm4oZmlsZV9pbm9kZShmaWxlKSk7DQogCXN0cnVjdCBmb2xpbyAqZm9s aW87DQogCWxvZmZfdCBmc2l6ZTsNCkBAIC0yMjU2LDkgKzIyNTksMTAgQEAgc3RhdGljIGludCBm dXNlX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCiAJcmV0dXJuIGVycjsNCiB9DQogDQotc3RhdGljIGludCBmdXNlX3dyaXRlX2Vu ZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQotCQls b2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCi0JCXN0cnVjdCBmb2xp byAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCitzdGF0aWMgaW50IGZ1c2Vfd3JpdGVfZW5kKGNvbnN0 IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQkgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5n LA0KKwkJCSAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQorCQkJ ICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KIAlzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gZm9saW8tPm1hcHBpbmctPmhvc3Q7DQogDQpkaWZmIC0tZ2l0IGEvZnMvaGZzL2hm c19mcy5oIGIvZnMvaGZzL2hmc19mcy5oDQppbmRleCBhMGM3Y2IwZjc5ZmMuLmMzZmQzMTcyZmRk NiAxMDA2NDQNCi0tLSBhL2ZzL2hmcy9oZnNfZnMuaA0KKysrIGIvZnMvaGZzL2hmc19mcy5oDQpA QCAtMjAxLDcgKzIwMSw3IEBAIGV4dGVybiBpbnQgaGZzX2dldF9ibG9jayhzdHJ1Y3QgaW5vZGUg Kiwgc2VjdG9yX3QsIHN0cnVjdCBidWZmZXJfaGVhZCAqLCBpbnQpOw0KIGV4dGVybiBjb25zdCBz dHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGhmc19hb3BzOw0KIGV4dGVybiBjb25zdCBz dHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIGhmc19idHJlZV9hb3BzOw0KIA0KLWludCBo ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLA0KK2ludCBoZnNfd3JpdGVfYmVnaW4oY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLCBz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxl biwgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKTsNCiBleHRlcm4gc3RydWN0 IGlub2RlICpoZnNfbmV3X2lub2RlKHN0cnVjdCBpbm9kZSAqLCBjb25zdCBzdHJ1Y3QgcXN0ciAq LCB1bW9kZV90KTsNCiBleHRlcm4gdm9pZCBoZnNfaW5vZGVfd3JpdGVfZm9yayhzdHJ1Y3QgaW5v ZGUgKiwgc3RydWN0IGhmc19leHRlbnQgKiwgX19iZTMyICosIF9fYmUzMiAqKTsNCmRpZmYgLS1n aXQgYS9mcy9oZnMvaW5vZGUuYyBiL2ZzL2hmcy9pbm9kZS5jDQppbmRleCBhODFjZTdhNzQwYjku LjA5NmYzMzgxMzRmOSAxMDA2NDQNCi0tLSBhL2ZzL2hmcy9pbm9kZS5jDQorKysgYi9mcy9oZnMv aW5vZGUuYw0KQEAgLTQ0LDEyICs0NCwxMiBAQCBzdGF0aWMgdm9pZCBoZnNfd3JpdGVfZmFpbGVk KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCX0NCiB9DQogDQot aW50IGhmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQoraW50IGhmc193cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlv Y2IsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJbG9mZl90IHBvcywgdW5zaWdu ZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KIAlpbnQg cmV0Ow0KIA0KLQlyZXQgPSBjb250X3dyaXRlX2JlZ2luKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVu LCBmb2xpb3AsIGZzZGF0YSwNCisJcmV0ID0gY29udF93cml0ZV9iZWdpbihpb2NiLCBtYXBwaW5n LCBwb3MsIGxlbiwgZm9saW9wLCBmc2RhdGEsDQogCQkJCWhmc19nZXRfYmxvY2ssDQogCQkJCSZI RlNfSShtYXBwaW5nLT5ob3N0KS0+cGh5c19zaXplKTsNCiAJaWYgKHVubGlrZWx5KHJldCkpDQpk aWZmIC0tZ2l0IGEvZnMvaGZzcGx1cy9oZnNwbHVzX2ZzLmggYi9mcy9oZnNwbHVzL2hmc3BsdXNf ZnMuaA0KaW5kZXggMmYwODliZmYwMDk1Li4zZDVjNjVhZWYzYjIgMTAwNjQ0DQotLS0gYS9mcy9o ZnNwbHVzL2hmc3BsdXNfZnMuaA0KKysrIGIvZnMvaGZzcGx1cy9oZnNwbHVzX2ZzLmgNCkBAIC00 NzMsOCArNDczLDEwIEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRp b25zIGhmc3BsdXNfYW9wczsNCiBleHRlcm4gY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3Bl cmF0aW9ucyBoZnNwbHVzX2J0cmVlX2FvcHM7DQogZXh0ZXJuIGNvbnN0IHN0cnVjdCBkZW50cnlf b3BlcmF0aW9ucyBoZnNwbHVzX2RlbnRyeV9vcGVyYXRpb25zOw0KIA0KLWludCBoZnNwbHVzX3dy aXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCi0JCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2 b2lkICoqZnNkYXRhKTsNCitpbnQgaGZzcGx1c193cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lv Y2IgKmlvY2IsDQorCQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJbG9mZl90 IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsDQorCQkJdm9pZCAqKmZz ZGF0YSk7DQogc3RydWN0IGlub2RlICpoZnNwbHVzX25ld19pbm9kZShzdHJ1Y3Qgc3VwZXJfYmxv Y2sgKnNiLCBzdHJ1Y3QgaW5vZGUgKmRpciwNCiAJCQkJdW1vZGVfdCBtb2RlKTsNCiB2b2lkIGhm c3BsdXNfZGVsZXRlX2lub2RlKHN0cnVjdCBpbm9kZSAqaW5vZGUpOw0KZGlmZiAtLWdpdCBhL2Zz L2hmc3BsdXMvaW5vZGUuYyBiL2ZzL2hmc3BsdXMvaW5vZGUuYw0KaW5kZXggZjMzMWU5NTc0MjE3 Li45N2Q3NWJiMmMzODggMTAwNjQ0DQotLS0gYS9mcy9oZnNwbHVzL2lub2RlLmMNCisrKyBiL2Zz L2hmc3BsdXMvaW5vZGUuYw0KQEAgLTM4LDEyICszOCwxNCBAQCBzdGF0aWMgdm9pZCBoZnNwbHVz X3dyaXRlX2ZhaWxlZChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHRvKQ0K IAl9DQogfQ0KIA0KLWludCBoZnNwbHVzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBz dHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxl biwgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KK2ludCBoZnNwbHVzX3dy aXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQlzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCisJCQl1bnNpZ25lZCBsZW4sIHN0cnVjdCBmb2xp byAqKmZvbGlvcCwNCisJCQl2b2lkICoqZnNkYXRhKQ0KIHsNCiAJaW50IHJldDsNCiANCi0JcmV0 ID0gY29udF93cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgZm9saW9wLCBmc2Rh dGEsDQorCXJldCA9IGNvbnRfd3JpdGVfYmVnaW4oaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGZv bGlvcCwgZnNkYXRhLA0KIAkJCQloZnNwbHVzX2dldF9ibG9jaywNCiAJCQkJJkhGU1BMVVNfSSht YXBwaW5nLT5ob3N0KS0+cGh5c19zaXplKTsNCiAJaWYgKHVubGlrZWx5KHJldCkpDQpkaWZmIC0t Z2l0IGEvZnMvaG9zdGZzL2hvc3Rmc19rZXJuLmMgYi9mcy9ob3N0ZnMvaG9zdGZzX2tlcm4uYw0K aW5kZXggNzAyYzQxMzE3NTg5Li42YzJjZjBjZGYzZDYgMTAwNjQ0DQotLS0gYS9mcy9ob3N0ZnMv aG9zdGZzX2tlcm4uYw0KKysrIGIvZnMvaG9zdGZzL2hvc3Rmc19rZXJuLmMNCkBAIC00NDUsNyAr NDQ1LDggQEAgc3RhdGljIGludCBob3N0ZnNfcmVhZF9mb2xpbyhzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGZvbGlvICpmb2xpbykNCiAJcmV0dXJuIHJldDsNCiB9DQogDQotc3RhdGljIGludCBo b3N0ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgaG9zdGZzX3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBr aW9jYiAqaW9jYiwNCisJCQkgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJ CQkgICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQkJICAgICAgc3RydWN0IGZvbGlv ICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsNCkBAIC00NTgsNyArNDU5LDggQEAgc3RhdGlj IGludCBob3N0ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLA0KIAlyZXR1cm4gMDsNCiB9DQogDQotc3RhdGljIGludCBob3N0ZnNf d3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCitzdGF0aWMgaW50IGhvc3Rmc193cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2Ni LA0KKwkJCSAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJCQkgICAgbG9mZl90 IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQogCQkJICAgIHN0cnVjdCBmb2xp byAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQpAQCAtNDY4LDcgKzQ3MCw3IEBAIHN0YXRpYyBp bnQgaG9zdGZzX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQogCWludCBlcnI7DQogDQogCWJ1ZmZlciA9IGttYXBfbG9jYWxfZm9saW8o Zm9saW8sIGZyb20pOw0KLQllcnIgPSB3cml0ZV9maWxlKEZJTEVfSE9TVEZTX0koZmlsZSktPmZk LCAmcG9zLCBidWZmZXIsIGNvcGllZCk7DQorCWVyciA9IHdyaXRlX2ZpbGUoRklMRV9IT1NURlNf SShpb2NiLT5raV9maWxwKS0+ZmQsICZwb3MsIGJ1ZmZlciwgY29waWVkKTsNCiAJa3VubWFwX2xv Y2FsKGJ1ZmZlcik7DQogDQogCWlmICghZm9saW9fdGVzdF91cHRvZGF0ZShmb2xpbykgJiYgZXJy ID09IGZvbGlvX3NpemUoZm9saW8pKQ0KZGlmZiAtLWdpdCBhL2ZzL2hwZnMvZmlsZS5jIGIvZnMv aHBmcy9maWxlLmMNCmluZGV4IDQ0OWEzZmMxYjhkOS4uN2I5NWEzZDJlMmE2IDEwMDY0NA0KLS0t IGEvZnMvaHBmcy9maWxlLmMNCisrKyBiL2ZzL2hwZnMvZmlsZS5jDQpAQCAtMTg4LDEzICsxODgs MTQgQEAgc3RhdGljIHZvaWQgaHBmc193cml0ZV9mYWlsZWQoc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsIGxvZmZfdCB0bykNCiAJaHBmc191bmxvY2soaW5vZGUtPmlfc2IpOw0KIH0NCiAN Ci1zdGF0aWMgaW50IGhwZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCi0J CQlzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQorc3RhdGljIGludCBocGZz X3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQkgICAgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwN CisJCQkgICAgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KIHsNCiAJaW50 IHJldDsNCiANCi0JcmV0ID0gY29udF93cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxl biwgZm9saW9wLCBmc2RhdGEsDQorCXJldCA9IGNvbnRfd3JpdGVfYmVnaW4oaW9jYiwgbWFwcGlu ZywgcG9zLCBsZW4sIGZvbGlvcCwgZnNkYXRhLA0KIAkJCQlocGZzX2dldF9ibG9jaywNCiAJCQkJ JmhwZnNfaShtYXBwaW5nLT5ob3N0KS0+bW11X3ByaXZhdGUpOw0KIAlpZiAodW5saWtlbHkocmV0 KSkNCkBAIC0yMDMsMTMgKzIwNCwxNCBAQCBzdGF0aWMgaW50IGhwZnNfd3JpdGVfYmVnaW4oc3Ry dWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAlyZXR1cm4g cmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGhwZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxl LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25l ZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCi0JCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpm c2RhdGEpDQorc3RhdGljIGludCBocGZzX3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qga2lvY2IgKmlv Y2IsDQorCQkJICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCisJCQkgIGxvZmZfdCBw b3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KKwkJCSAgc3RydWN0IGZvbGlvICpm b2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmct Pmhvc3Q7DQogCWludCBlcnI7DQotCWVyciA9IGdlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBp bmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2RhdGEpOw0KKwllcnIgPSBnZW5lcmljX3dy aXRlX2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRhKTsN CiAJaWYgKGVyciA8IGxlbikNCiAJCWhwZnNfd3JpdGVfZmFpbGVkKG1hcHBpbmcsIHBvcyArIGxl bik7DQogCWlmICghKGVyciA8IDApKSB7DQpkaWZmIC0tZ2l0IGEvZnMvaHVnZXRsYmZzL2lub2Rl LmMgYi9mcy9odWdldGxiZnMvaW5vZGUuYw0KaW5kZXggZTRkZTU0MjU4MzhkLi41NDFhYWU1MDJk NGQgMTAwNjQ0DQotLS0gYS9mcy9odWdldGxiZnMvaW5vZGUuYw0KKysrIGIvZnMvaHVnZXRsYmZz L2lub2RlLmMNCkBAIC0zMTEsNyArMzExLDcgQEAgc3RhdGljIHNzaXplX3QgaHVnZXRsYmZzX3Jl YWRfaXRlcihzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqdG8pDQogCXJldHVy biByZXR2YWw7DQogfQ0KIA0KLXN0YXRpYyBpbnQgaHVnZXRsYmZzX3dyaXRlX2JlZ2luKHN0cnVj dCBmaWxlICpmaWxlLA0KK3N0YXRpYyBpbnQgaHVnZXRsYmZzX3dyaXRlX2JlZ2luKGNvbnN0IHN0 cnVjdCBraW9jYiAqaW9jYiwNCiAJCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJ CQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2 b2lkICoqZnNkYXRhKQ0KQEAgLTMxOSw5ICszMTksMTAgQEAgc3RhdGljIGludCBodWdldGxiZnNf d3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsDQogCXJldHVybiAtRUlOVkFMOw0KIH0NCiAN Ci1zdGF0aWMgaW50IGh1Z2V0bGJmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwg dW5zaWduZWQgY29waWVkLA0KLQkJCXN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkN CitzdGF0aWMgaW50IGh1Z2V0bGJmc193cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2Ni LA0KKwkJCSAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCisJCQkgICAgICAg bG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQorCQkJICAgICAgIHN0 cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQogCUJVRygpOw0KIAlyZXR1cm4g LUVJTlZBTDsNCmRpZmYgLS1naXQgYS9mcy9qZmZzMi9maWxlLmMgYi9mcy9qZmZzMi9maWxlLmMN CmluZGV4IDEzYzE4Y2NjMTNiMC4uYWRlYzNhZjliZjhkIDEwMDY0NA0KLS0tIGEvZnMvamZmczIv ZmlsZS5jDQorKysgYi9mcy9qZmZzMi9maWxlLmMNCkBAIC0yMSwxMiArMjEsMTQgQEANCiAjaW5j bHVkZSA8bGludXgvamZmczIuaD4NCiAjaW5jbHVkZSAibm9kZWxpc3QuaCINCiANCi1zdGF0aWMg aW50IGpmZnMyX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQotCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3Bp ZWQsDQotCQkJc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKTsNCi1zdGF0aWMgaW50 IGpmZnMyX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQotCQkJc3RydWN0IGZv bGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKTsNCitzdGF0aWMgaW50IGpmZnMyX3dyaXRlX2Vu ZChjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsDQorCQkJICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3Bp ZWQsDQorCQkJICAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKTsNCitzdGF0aWMg aW50IGpmZnMyX3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQkgICAg IHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwkJCSAgICAgbG9mZl90IHBvcywgdW5z aWduZWQgbGVuLA0KKwkJCSAgICAgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRh KTsNCiBzdGF0aWMgaW50IGpmZnMyX3JlYWRfZm9saW8oc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVj dCBmb2xpbyAqZm9saW8pOw0KIA0KIGludCBqZmZzMl9mc3luYyhzdHJ1Y3QgZmlsZSAqZmlscCwg bG9mZl90IHN0YXJ0LCBsb2ZmX3QgZW5kLCBpbnQgZGF0YXN5bmMpDQpAQCAtMTIxLDkgKzEyMywx MCBAQCBzdGF0aWMgaW50IGpmZnMyX3JlYWRfZm9saW8oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBmb2xpbyAqZm9saW8pDQogCXJldHVybiByZXQ7DQogfQ0KIA0KLXN0YXRpYyBpbnQgamZmczJf d3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbHAsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBw aW5nLA0KLQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCi0JCQlzdHJ1Y3QgZm9saW8gKipm b2xpb3AsIHZvaWQgKipmc2RhdGEpDQorc3RhdGljIGludCBqZmZzMl93cml0ZV9iZWdpbihjb25z dCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCisJCQkgICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCisJCQkgICAgIHN0cnVj dCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQogCXN0cnVjdCBmb2xpbyAqZm9s aW87DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0Ow0KQEAgLTIzNSw5ICsy MzgsMTAgQEAgc3RhdGljIGludCBqZmZzMl93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlscCwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiByZXQ7DQogfQ0KIA0KLXN0 YXRpYyBpbnQgamZmczJfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3QgYWRkcmVz c19zcGFjZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVk IGNvcGllZCwNCi0JCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQorc3RhdGlj IGludCBqZmZzMl93cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJCSAgIHN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwkJCSAgIGxvZmZfdCBwb3MsIHVuc2lnbmVk IGxlbiwgdW5zaWduZWQgY29waWVkLA0KKwkJCSAgIHN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQg KmZzZGF0YSkNCiB7DQogCS8qIEFjdHVhbGx5IGNvbW1pdCB0aGUgd3JpdGUgZnJvbSB0aGUgcGFn ZSBjYWNoZSBwYWdlIHdlJ3JlIGxvb2tpbmcgYXQuDQogCSAqIEZvciBub3csIHdlIHdyaXRlIHRo ZSBmdWxsIHBhZ2Ugb3V0IGVhY2ggdGltZS4gSXQgc3Vja3MsIGJ1dCBpdCdzIHNpbXBsZQ0KZGlm ZiAtLWdpdCBhL2ZzL2pmcy9pbm9kZS5jIGIvZnMvamZzL2lub2RlLmMNCmluZGV4IDYwZmM5MmRl ZTI0ZC4uMDgzZTdmYTU0NzA5IDEwMDY0NA0KLS0tIGEvZnMvamZzL2lub2RlLmMNCisrKyBiL2Zz L2pmcy9pbm9kZS5jDQpAQCAtMjkwLDkgKzI5MCwxMCBAQCBzdGF0aWMgdm9pZCBqZnNfd3JpdGVf ZmFpbGVkKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCX0NCiB9 DQogDQotc3RhdGljIGludCBqZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4s DQotCQkJCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCitzdGF0aWMgaW50 IGpmc193cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVu LA0KKwkJCSAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQogCWlu dCByZXQ7DQogDQpAQCAtMzAzLDEzICszMDQsMTQgQEAgc3RhdGljIGludCBqZnNfd3JpdGVfYmVn aW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAly ZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IGpmc193cml0ZV9lbmQoc3RydWN0IGZpbGUg KmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJbG9mZl90IHBvcywgdW5z aWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsIHN0cnVjdCBmb2xpbyAqZm9saW8sDQotCQl2b2lk ICpmc2RhdGEpDQorc3RhdGljIGludCBqZnNfd3JpdGVfZW5kKGNvbnN0IHN0cnVjdCBraW9jYiAq aW9jYiwNCisJCQkgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJIGxvZmZfdCBw b3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KKwkJCSBzdHJ1Y3QgZm9saW8gKmZv bGlvLCB2b2lkICpmc2RhdGEpDQogew0KIAlpbnQgcmV0Ow0KIA0KLQlyZXQgPSBnZW5lcmljX3dy aXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywgZnNkYXRhKTsN CisJcmV0ID0gZ2VuZXJpY193cml0ZV9lbmQoaW9jYiwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGll ZCwgZm9saW8sIGZzZGF0YSk7DQogCWlmIChyZXQgPCBsZW4pDQogCQlqZnNfd3JpdGVfZmFpbGVk KG1hcHBpbmcsIHBvcyArIGxlbik7DQogCXJldHVybiByZXQ7DQpkaWZmIC0tZ2l0IGEvZnMvbGli ZnMuYyBiL2ZzL2xpYmZzLmMNCmluZGV4IDRkMTg2MmY1ODllOC4uODQxM2NhYTFiZGUzIDEwMDY0 NA0KLS0tIGEvZnMvbGliZnMuYw0KKysrIGIvZnMvbGliZnMuYw0KQEAgLTkxMCw3ICs5MTAsNyBA QCBzdGF0aWMgaW50IHNpbXBsZV9yZWFkX2ZvbGlvKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qg Zm9saW8gKmZvbGlvKQ0KIAlyZXR1cm4gMDsNCiB9DQogDQotaW50IHNpbXBsZV93cml0ZV9iZWdp bihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQoraW50 IHNpbXBsZV93cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBhZGRy ZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQlz dHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KQEAgLTkzNSw3ICs5MzUs NyBAQCBFWFBPUlRfU1lNQk9MKHNpbXBsZV93cml0ZV9iZWdpbik7DQogDQogLyoqDQogICogc2lt cGxlX3dyaXRlX2VuZCAtIC53cml0ZV9lbmQgaGVscGVyIGZvciBub24tYmxvY2stZGV2aWNlIEZT ZXMNCi0gKiBAZmlsZTogU2VlIC53cml0ZV9lbmQgb2YgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25z DQorICogQGlvY2I6IGtlcm5lbCBJL08gY29udHJvbCBibG9jaw0KICAqIEBtYXBwaW5nOiAJCSIN CiAgKiBAcG9zOiAJCSINCiAgKiBAbGVuOiAJCSINCkBAIC05NTYsOSArOTU2LDEwIEBAIEVYUE9S VF9TWU1CT0woc2ltcGxlX3dyaXRlX2JlZ2luKTsNCiAgKg0KICAqIFVzZSAqT05MWSogd2l0aCBz aW1wbGVfcmVhZF9mb2xpbygpDQogICovDQotc3RhdGljIGludCBzaW1wbGVfd3JpdGVfZW5kKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCQlsb2Zm X3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCi0JCQlzdHJ1Y3QgZm9saW8g KmZvbGlvLCB2b2lkICpmc2RhdGEpDQorc3RhdGljIGludCBzaW1wbGVfd3JpdGVfZW5kKGNvbnN0 IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQkgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcsDQorCQkJICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0K KwkJCSAgICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KIAlzdHJ1Y3Qg aW5vZGUgKmlub2RlID0gZm9saW8tPm1hcHBpbmctPmhvc3Q7DQogCWxvZmZfdCBsYXN0X3BvcyA9 IHBvcyArIGNvcGllZDsNCmRpZmYgLS1naXQgYS9mcy9taW5peC9pbm9kZS5jIGIvZnMvbWluaXgv aW5vZGUuYw0KaW5kZXggZjAwN2UzODlkNWQyLi5kZjlkMTE0NzljYWYgMTAwNjQ0DQotLS0gYS9m cy9taW5peC9pbm9kZS5jDQorKysgYi9mcy9taW5peC9pbm9kZS5jDQpAQCAtNDQyLDkgKzQ0Miwx MCBAQCBzdGF0aWMgdm9pZCBtaW5peF93cml0ZV9mYWlsZWQoc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsIGxvZmZfdCB0bykNCiAJfQ0KIH0NCiANCi1zdGF0aWMgaW50IG1pbml4X3dyaXRl X2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywN Ci0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQotCQkJc3RydWN0IGZvbGlvICoqZm9saW9w LCB2b2lkICoqZnNkYXRhKQ0KK3N0YXRpYyBpbnQgbWluaXhfd3JpdGVfYmVnaW4oY29uc3Qgc3Ry dWN0IGtpb2NiICppb2NiLA0KKwkJCSAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs DQorCQkJICAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQorCQkJICAgICBzdHJ1Y3QgZm9s aW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpDQogew0KIAlpbnQgcmV0Ow0KIA0KZGlmZiAtLWdp dCBhL2ZzL25mcy9maWxlLmMgYi9mcy9uZnMvZmlsZS5jDQppbmRleCAwMzNmZWVhYjhjMzQuLjJi ZDU1N2NhMWFmOSAxMDA2NDQNCi0tLSBhL2ZzL25mcy9maWxlLmMNCisrKyBiL2ZzL25mcy9maWxl LmMNCkBAIC0zNDIsMTIgKzM0MiwxNCBAQCBzdGF0aWMgYm9vbCBuZnNfd2FudF9yZWFkX21vZGlm eV93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGZvbGlvICpmb2xpbywNCiAgKiBJZiB0 aGUgd3JpdGVyIGVuZHMgdXAgZGVsYXlpbmcgdGhlIHdyaXRlLCB0aGUgd3JpdGVyIG5lZWRzIHRv DQogICogaW5jcmVtZW50IHRoZSBwYWdlIHVzZSBjb3VudHMgdW50aWwgaGUgaXMgZG9uZSB3aXRo IHRoZSBwYWdlLg0KICAqLw0KLXN0YXRpYyBpbnQgbmZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IG5mc193 cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCBzdHJ1 Y3QgZm9saW8gKipmb2xpb3AsDQogCQkJICAgdm9pZCAqKmZzZGF0YSkNCiB7DQogCWZnZl90IGZn cCA9IEZHUF9XUklURUJFR0lOOw0KIAlzdHJ1Y3QgZm9saW8gKmZvbGlvOw0KKwlzdHJ1Y3QgZmls ZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQogCWludCBvbmNlX3RocnUgPSAwOw0KIAlpbnQgcmV0 Ow0KIA0KQEAgLTM3NywxMCArMzc5LDEyIEBAIHN0YXRpYyBpbnQgbmZzX3dyaXRlX2JlZ2luKHN0 cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJcmV0dXJu IHJldDsNCiB9DQogDQotc3RhdGljIGludCBuZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxl LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCitzdGF0aWMgaW50IG5mc193cml0ZV9l bmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJCSBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCiAJCQkgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQs DQogCQkJIHN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQorCXN0cnVjdCBm aWxlICpmaWxlID0gaW9jYi0+a2lfZmlscDsNCiAJc3RydWN0IG5mc19vcGVuX2NvbnRleHQgKmN0 eCA9IG5mc19maWxlX29wZW5fY29udGV4dChmaWxlKTsNCiAJdW5zaWduZWQgb2Zmc2V0ID0gb2Zm c2V0X2luX2ZvbGlvKGZvbGlvLCBwb3MpOw0KIAlpbnQgc3RhdHVzOw0KZGlmZiAtLWdpdCBhL2Zz L25pbGZzMi9pbm9kZS5jIGIvZnMvbmlsZnMyL2lub2RlLmMNCmluZGV4IDY2MTNiOGZjY2ViMC4u YzJjY2FmZGY0YTE5IDEwMDY0NA0KLS0tIGEvZnMvbmlsZnMyL2lub2RlLmMNCisrKyBiL2ZzL25p bGZzMi9pbm9kZS5jDQpAQCAtMjE4LDcgKzIxOCw4IEBAIHZvaWQgbmlsZnNfd3JpdGVfZmFpbGVk KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQogCX0NCiB9DQogDQot c3RhdGljIGludCBuaWxmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBuaWxmc193cml0ZV9iZWdpbihjb25z dCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFw cGluZywNCiAJCQkgICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQkgICAgIHN0cnVj dCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiANCkBAIC0yMzcsNyArMjM4LDggQEAg c3RhdGljIGludCBuaWxmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCXJldHVybiBlcnI7DQogfQ0KIA0KLXN0YXRpYyBpbnQg bmlsZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCitzdGF0aWMgaW50IG5pbGZzX3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qga2lvY2Ig KmlvY2IsDQorCQkJICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJICAgbG9m Zl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQogCQkJICAgc3RydWN0IGZv bGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0KIHsNCkBAIC0yNDgsNyArMjUwLDcgQEAgc3RhdGlj IGludCBuaWxmc193cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nLA0KIA0KIAlucl9kaXJ0eSA9IG5pbGZzX3BhZ2VfY291bnRfY2xlYW5fYnVm ZmVycyhmb2xpbywgc3RhcnQsDQogCQkJCQkJICBzdGFydCArIGNvcGllZCk7DQotCWNvcGllZCA9 IGdlbmVyaWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlv LA0KKwljb3BpZWQgPSBnZW5lcmljX3dyaXRlX2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwg Y29waWVkLCBmb2xpbywNCiAJCQkJICAgZnNkYXRhKTsNCiAJbmlsZnNfc2V0X2ZpbGVfZGlydHko aW5vZGUsIG5yX2RpcnR5KTsNCiAJZXJyID0gbmlsZnNfdHJhbnNhY3Rpb25fY29tbWl0KGlub2Rl LT5pX3NiKTsNCmRpZmYgLS1naXQgYS9mcy9udGZzMy9maWxlLmMgYi9mcy9udGZzMy9maWxlLmMN CmluZGV4IDFlOTlhMzU2OTFjZC4uNjcyOTEyM2Q2ODcyIDEwMDY0NA0KLS0tIGEvZnMvbnRmczMv ZmlsZS5jDQorKysgYi9mcy9udGZzMy9maWxlLmMNCkBAIC0xMTMsNiArMTEzLDcgQEAgc3RhdGlj IGludCBudGZzX2V4dGVuZF9pbml0aWFsaXplZF9zaXplKHN0cnVjdCBmaWxlICpmaWxlLA0KIAlz dHJ1Y3QgaW5vZGUgKmlub2RlID0gJm5pLT52ZnNfaW5vZGU7DQogCXN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nID0gaW5vZGUtPmlfbWFwcGluZzsNCiAJc3RydWN0IG50ZnNfc2JfaW5mbyAq c2JpID0gaW5vZGUtPmlfc2ItPnNfZnNfaW5mbzsNCisJc3RydWN0IGtpb2NiIGlvY2I7DQogCWxv ZmZfdCBwb3MgPSB2YWxpZDsNCiAJaW50IGVycjsNCiANCkBAIC0xMjYsNiArMTI3LDggQEAgc3Rh dGljIGludCBudGZzX2V4dGVuZF9pbml0aWFsaXplZF9zaXplKHN0cnVjdCBmaWxlICpmaWxlLA0K IA0KIAlXQVJOX09OKGlzX2NvbXByZXNzZWQobmkpKTsNCiANCisJaW5pdF9zeW5jX2tpb2NiKCZp b2NiLCBmaWxlKTsNCisNCiAJZm9yICg7Oykgew0KIAkJdTMyIHplcm9mcm9tLCBsZW47DQogCQlz dHJ1Y3QgZm9saW8gKmZvbGlvOw0KQEAgLTE1NCwxMyArMTU3LDEzIEBAIHN0YXRpYyBpbnQgbnRm c19leHRlbmRfaW5pdGlhbGl6ZWRfc2l6ZShzdHJ1Y3QgZmlsZSAqZmlsZSwNCiAJCWlmIChwb3Mg KyBsZW4gPiBuZXdfdmFsaWQpDQogCQkJbGVuID0gbmV3X3ZhbGlkIC0gcG9zOw0KIA0KLQkJZXJy ID0gbnRmc193cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGxlbiwgJmZvbGlvLCBOVUxM KTsNCisJCWVyciA9IG50ZnNfd3JpdGVfYmVnaW4oJmlvY2IsIG1hcHBpbmcsIHBvcywgbGVuLCAm Zm9saW8sIE5VTEwpOw0KIAkJaWYgKGVycikNCiAJCQlnb3RvIG91dDsNCiANCiAJCWZvbGlvX3pl cm9fcmFuZ2UoZm9saW8sIHplcm9mcm9tLCBmb2xpb19zaXplKGZvbGlvKSAtIHplcm9mcm9tKTsN CiANCi0JCWVyciA9IG50ZnNfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBsZW4s IGZvbGlvLCBOVUxMKTsNCisJCWVyciA9IG50ZnNfd3JpdGVfZW5kKCZpb2NiLCBtYXBwaW5nLCBw b3MsIGxlbiwgbGVuLCBmb2xpbywgTlVMTCk7DQogCQlpZiAoZXJyIDwgMCkNCiAJCQlnb3RvIG91 dDsNCiAJCXBvcyArPSBsZW47DQpkaWZmIC0tZ2l0IGEvZnMvbnRmczMvaW5vZGUuYyBiL2ZzL250 ZnMzL2lub2RlLmMNCmluZGV4IDBmMGQyN2Q0NjQ0YS4uZGFkMDg4ZTY0YjNjIDEwMDY0NA0KLS0t IGEvZnMvbnRmczMvaW5vZGUuYw0KKysrIGIvZnMvbnRmczMvaW5vZGUuYw0KQEAgLTkxMiw3ICs5 MTIsNyBAQCBzdGF0aWMgaW50IG50ZnNfZ2V0X2Jsb2NrX3dyaXRlX2JlZ2luKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHNlY3Rvcl90IHZibiwNCiAJCQkJICBiaF9yZXN1bHQsIGNyZWF0ZSwgR0VUX0JM T0NLX1dSSVRFX0JFR0lOKTsNCiB9DQogDQotaW50IG50ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK2ludCBudGZzX3dyaXRl X2JlZ2luKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsDQogCQkgICAgIGxvZmZfdCBwb3MsIHUzMiBsZW4sIHN0cnVjdCBmb2xpbyAqKmZvbGlv cCwgdm9pZCAqKmZzZGF0YSkNCiB7DQogCWludCBlcnI7DQpAQCAtOTU3LDcgKzk1Nyw4IEBAIGlu dCBudGZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZywNCiAvKg0KICAqIG50ZnNfd3JpdGVfZW5kIC0gQWRkcmVzc19zcGFjZV9vcGVy YXRpb25zOjp3cml0ZV9lbmQuDQogICovDQotaW50IG50ZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxl ICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywgbG9mZl90IHBvcywNCitpbnQg bnRmc193cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJICAgc3RydWN0IGFk ZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQogCQkgICB1MzIgbGVuLCB1MzIgY29w aWVkLCBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQogew0KIAlzdHJ1Y3QgaW5v ZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsNCkBAIC05ODksNyArOTkwLDcgQEAgaW50IG50ZnNf d3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywgbG9mZl90IHBvcywNCiAJCWZvbGlvX3VubG9jayhmb2xpbyk7DQogCQlmb2xpb19wdXQoZm9s aW8pOw0KIAl9IGVsc2Ugew0KLQkJZXJyID0gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGlu ZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sDQorCQllcnIgPSBnZW5lcmljX3dyaXRlX2VuZChp b2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwgY29waWVkLCBmb2xpbywNCiAJCQkJCWZzZGF0YSk7DQog CX0NCiANCmRpZmYgLS1naXQgYS9mcy9udGZzMy9udGZzX2ZzLmggYi9mcy9udGZzMy9udGZzX2Zz LmgNCmluZGV4IDM2YjgwNTI2NjBkNS4uOTIxMjU3NzczZWVjIDEwMDY0NA0KLS0tIGEvZnMvbnRm czMvbnRmc19mcy5oDQorKysgYi9mcy9udGZzMy9udGZzX2ZzLmgNCkBAIC03MDIsMTAgKzcwMiwx MiBAQCBzdHJ1Y3QgaW5vZGUgKm50ZnNfaWdldDUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgY29u c3Qgc3RydWN0IE1GVF9SRUYgKnJlZiwNCiBpbnQgbnRmc19zZXRfc2l6ZShzdHJ1Y3QgaW5vZGUg Kmlub2RlLCB1NjQgbmV3X3NpemUpOw0KIGludCBudGZzX2dldF9ibG9jayhzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBzZWN0b3JfdCB2Ym4sDQogCQkgICBzdHJ1Y3QgYnVmZmVyX2hlYWQgKmJoX3Jlc3Vs dCwgaW50IGNyZWF0ZSk7DQotaW50IG50ZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUs IHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJICAgICBsb2ZmX3QgcG9zLCB1MzIg bGVuLCBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpOw0KLWludCBudGZzX3dy aXRlX2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs IGxvZmZfdCBwb3MsDQotCQkgICB1MzIgbGVuLCB1MzIgY29waWVkLCBzdHJ1Y3QgZm9saW8gKmZv bGlvLCB2b2lkICpmc2RhdGEpOw0KK2ludCBudGZzX3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBr aW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkgICAgIGxvZmZf dCBwb3MsIHUzMiBsZW4sIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwNCisJCSAgICAgdm9pZCAqKmZz ZGF0YSk7DQoraW50IG50ZnNfd3JpdGVfZW5kKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwgc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkgICBsb2ZmX3QgcG9zLCB1MzIgbGVuLCB1 MzIgY29waWVkLCBzdHJ1Y3QgZm9saW8gKmZvbGlvLA0KKwkJICAgdm9pZCAqZnNkYXRhKTsNCiBp bnQgbnRmczNfd3JpdGVfaW5vZGUoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHdyaXRlYmFj a19jb250cm9sICp3YmMpOw0KIGludCBudGZzX3N5bmNfaW5vZGUoc3RydWN0IGlub2RlICppbm9k ZSk7DQogaW50IGlub2RlX3JlYWRfZGF0YShzdHJ1Y3QgaW5vZGUgKmlub2RlLCB2b2lkICpkYXRh LCBzaXplX3QgYnl0ZXMpOw0KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2FvcHMuYyBiL2ZzL29jZnMy L2FvcHMuYw0KaW5kZXggNDBiNmJjZTEyOTUxLi4yMjAzNDM4NzM4ZjYgMTAwNjQ0DQotLS0gYS9m cy9vY2ZzMi9hb3BzLmMNCisrKyBiL2ZzL29jZnMyL2FvcHMuYw0KQEAgLTE4NTYsNyArMTg1Niw4 IEBAIGludCBvY2ZzMl93cml0ZV9iZWdpbl9ub2xvY2soc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1h cHBpbmcsDQogCXJldHVybiByZXQ7DQogfQ0KIA0KLXN0YXRpYyBpbnQgb2NmczJfd3JpdGVfYmVn aW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0 YXRpYyBpbnQgb2NmczJfd3JpdGVfYmVnaW4oY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJ CSAgICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJICAgICBsb2ZmX3QgcG9z LCB1bnNpZ25lZCBsZW4sDQogCQkJICAgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipm c2RhdGEpDQogew0KQEAgLTIwNDcsNyArMjA0OCw4IEBAIGludCBvY2ZzMl93cml0ZV9lbmRfbm9s b2NrKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgcG9zLA0KIAlyZXR1cm4g Y29waWVkOw0KIH0NCiANCi1zdGF0aWMgaW50IG9jZnMyX3dyaXRlX2VuZChzdHJ1Y3QgZmlsZSAq ZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCBvY2ZzMl93 cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJCSAgIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nLA0KIAkJCSAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5zaWdu ZWQgY29waWVkLA0KIAkJCSAgIHN0cnVjdCBmb2xpbyAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7 DQpkaWZmIC0tZ2l0IGEvZnMvb21mcy9maWxlLmMgYi9mcy9vbWZzL2ZpbGUuYw0KaW5kZXggOTgz NThkNDA1YjZhLi44ZDcwZjgxNmIwYzkgMTAwNjQ0DQotLS0gYS9mcy9vbWZzL2ZpbGUuYw0KKysr IGIvZnMvb21mcy9maWxlLmMNCkBAIC0zMTAsOSArMzEwLDEwIEBAIHN0YXRpYyB2b2lkIG9tZnNf d3JpdGVfZmFpbGVkKHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3QgdG8pDQog CX0NCiB9DQogDQotc3RhdGljIGludCBvbWZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxl LCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25l ZCBsZW4sDQotCQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KK3N0YXRp YyBpbnQgb21mc193cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAg IHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KKwkJCSAgICBsb2ZmX3QgcG9zLCB1bnNp Z25lZCBsZW4sDQorCQkJICAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkN CiB7DQogCWludCByZXQ7DQogDQpkaWZmIC0tZ2l0IGEvZnMvb3JhbmdlZnMvaW5vZGUuYyBiL2Zz L29yYW5nZWZzL2lub2RlLmMNCmluZGV4IDA4YTZmMzcyYTM1Mi4uYTdhYjYzNzc2NzM1IDEwMDY0 NA0KLS0tIGEvZnMvb3JhbmdlZnMvaW5vZGUuYw0KKysrIGIvZnMvb3JhbmdlZnMvaW5vZGUuYw0K QEAgLTI4NSw5ICsyODUsMTAgQEAgc3RhdGljIGludCBvcmFuZ2Vmc19yZWFkX2ZvbGlvKHN0cnVj dCBmaWxlICpmaWxlLCBzdHJ1Y3QgZm9saW8gKmZvbGlvKQ0KIAlyZXR1cm4gcmV0Ow0KIH0NCiAN Ci1zdGF0aWMgaW50IG9yYW5nZWZzX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLA0KLQkJ c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwN Ci0JCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCitzdGF0aWMgaW50IG9y YW5nZWZzX3dyaXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBraW9jYiAqaW9jYiwNCisJCQkJc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsDQorCQkJCXVuc2lnbmVkIGxlbiwg c3RydWN0IGZvbGlvICoqZm9saW9wLA0KKwkJCQl2b2lkICoqZnNkYXRhKQ0KIHsNCiAJc3RydWN0 IG9yYW5nZWZzX3dyaXRlX3JhbmdlICp3cjsNCiAJc3RydWN0IGZvbGlvICpmb2xpbzsNCkBAIC0z NDAsOSArMzQxLDEwIEBAIHN0YXRpYyBpbnQgb3JhbmdlZnNfd3JpdGVfYmVnaW4oc3RydWN0IGZp bGUgKmZpbGUsDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgaW50IG9yYW5nZWZzX3dyaXRl X2VuZChzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQot CQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwgc3RydWN0IGZvbGlv ICpmb2xpbywNCi0JCXZvaWQgKmZzZGF0YSkNCitzdGF0aWMgaW50IG9yYW5nZWZzX3dyaXRlX2Vu ZChjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgICAgc3RydWN0IGFkZHJlc3Nfc3Bh Y2UgKm1hcHBpbmcsDQorCQkJICAgICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25l ZCBjb3BpZWQsDQorCQkJICAgICAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0K IHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IGZvbGlvLT5tYXBwaW5nLT5ob3N0Ow0KIAlsb2Zm X3QgbGFzdF9wb3MgPSBwb3MgKyBjb3BpZWQ7DQpAQCAtMzcyLDcgKzM3NCw3IEBAIHN0YXRpYyBp bnQgb3JhbmdlZnNfd3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywNCiAJZm9saW9fdW5sb2NrKGZvbGlvKTsNCiAJZm9saW9fcHV0KGZvbGlv KTsNCiANCi0JbWFya19pbm9kZV9kaXJ0eV9zeW5jKGZpbGVfaW5vZGUoZmlsZSkpOw0KKwltYXJr X2lub2RlX2RpcnR5X3N5bmMoZmlsZV9pbm9kZShpb2NiLT5raV9maWxwKSk7DQogCXJldHVybiBj b3BpZWQ7DQogfQ0KIA0KZGlmZiAtLWdpdCBhL2ZzL3ViaWZzL2ZpbGUuYyBiL2ZzL3ViaWZzL2Zp bGUuYw0KaW5kZXggYmYzMTFjMzhkOWE4Li44OWU5NWQ4YmU2NmMgMTAwNjQ0DQotLS0gYS9mcy91 Ymlmcy9maWxlLmMNCisrKyBiL2ZzL3ViaWZzL2ZpbGUuYw0KQEAgLTQwNCw3ICs0MDQsOCBAQCBz dGF0aWMgaW50IGFsbG9jYXRlX2J1ZGdldChzdHJ1Y3QgdWJpZnNfaW5mbyAqYywgc3RydWN0IGZv bGlvICpmb2xpbywNCiAgKiB0aGVyZSBpcyBhIHBsZW50eSBvZiBmbGFzaCBzcGFjZSBhbmQgdGhl IGJ1ZGdldCB3aWxsIGJlIGFjcXVpcmVkIHF1aWNrbHksDQogICogd2l0aG91dCBmb3JjaW5nIHdy aXRlLWJhY2suIFRoZSBzbG93IHBhdGggZG9lcyBub3QgbWFrZSB0aGlzIGFzc3VtcHRpb24uDQog ICovDQotc3RhdGljIGludCB1Ymlmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorc3RhdGljIGludCB1Ymlmc193cml0ZV9iZWdp bihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFj ZSAqbWFwcGluZywNCiAJCQkgICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCiAJCQkgICAg IHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQpAQCAtNTE0LDcgKzUx NSw3IEBAIHN0YXRpYyB2b2lkIGNhbmNlbF9idWRnZXQoc3RydWN0IHViaWZzX2luZm8gKmMsIHN0 cnVjdCBmb2xpbyAqZm9saW8sDQogCX0NCiB9DQogDQotc3RhdGljIGludCB1Ymlmc193cml0ZV9l bmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0 YXRpYyBpbnQgdWJpZnNfd3JpdGVfZW5kKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJICAgbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNp Z25lZCBjb3BpZWQsDQogCQkJICAgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRhKQ0K IHsNCmRpZmYgLS1naXQgYS9mcy91ZGYvaW5vZGUuYyBiL2ZzL3VkZi9pbm9kZS5jDQppbmRleCA0 Mzg2ZGQ4NDVlNDAuLjM1NmI3NTY3NmZhOSAxMDA2NDQNCi0tLSBhL2ZzL3VkZi9pbm9kZS5jDQor KysgYi9mcy91ZGYvaW5vZGUuYw0KQEAgLTI0NCwxMCArMjQ0LDEyIEBAIHN0YXRpYyB2b2lkIHVk Zl9yZWFkYWhlYWQoc3RydWN0IHJlYWRhaGVhZF9jb250cm9sICpyYWMpDQogCW1wYWdlX3JlYWRh aGVhZChyYWMsIHVkZl9nZXRfYmxvY2spOw0KIH0NCiANCi1zdGF0aWMgaW50IHVkZl93cml0ZV9i ZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQor c3RhdGljIGludCB1ZGZfd3JpdGVfYmVnaW4oY29uc3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJ CSAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCSAgIGxvZmZfdCBwb3MsIHVu c2lnbmVkIGxlbiwNCiAJCQkgICBzdHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEp DQogew0KKwlzdHJ1Y3QgZmlsZSAqZmlsZSA9IGlvY2ItPmtpX2ZpbHA7DQogCXN0cnVjdCB1ZGZf aW5vZGVfaW5mbyAqaWluZm8gPSBVREZfSShmaWxlX2lub2RlKGZpbGUpKTsNCiAJc3RydWN0IGZv bGlvICpmb2xpbzsNCiAJaW50IHJldDsNCkBAIC0yNzEsMTUgKzI3MywxNiBAQCBzdGF0aWMgaW50 IHVkZl93cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2Ug Km1hcHBpbmcsDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgaW50IHVkZl93cml0ZV9lbmQo c3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRp YyBpbnQgdWRmX3dyaXRlX2VuZChjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIAkJCSBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4s IHVuc2lnbmVkIGNvcGllZCwNCiAJCQkgc3RydWN0IGZvbGlvICpmb2xpbywgdm9pZCAqZnNkYXRh KQ0KIHsNCi0Jc3RydWN0IGlub2RlICppbm9kZSA9IGZpbGVfaW5vZGUoZmlsZSk7DQorCXN0cnVj dCBpbm9kZSAqaW5vZGUgPSBmaWxlX2lub2RlKGlvY2ItPmtpX2ZpbHApOw0KIAlsb2ZmX3QgbGFz dF9wb3M7DQogDQogCWlmIChVREZfSShpbm9kZSktPmlfYWxsb2NfdHlwZSAhPSBJQ0JUQUdfRkxB R19BRF9JTl9JQ0IpDQotCQlyZXR1cm4gZ2VuZXJpY193cml0ZV9lbmQoZmlsZSwgbWFwcGluZywg cG9zLCBsZW4sIGNvcGllZCwgZm9saW8sDQorCQlyZXR1cm4gZ2VuZXJpY193cml0ZV9lbmQoaW9j YiwgbWFwcGluZywgcG9zLCBsZW4sIGNvcGllZCwgZm9saW8sDQogCQkJCQkgZnNkYXRhKTsNCiAJ bGFzdF9wb3MgPSBwb3MgKyBjb3BpZWQ7DQogCWlmIChsYXN0X3BvcyA+IGlub2RlLT5pX3NpemUp DQpkaWZmIC0tZ2l0IGEvZnMvdWZzL2lub2RlLmMgYi9mcy91ZnMvaW5vZGUuYw0KaW5kZXggN2Rj MzhmZGVmMmVhLi44MzYxYzAwZThmYTYgMTAwNjQ0DQotLS0gYS9mcy91ZnMvaW5vZGUuYw0KKysr IGIvZnMvdWZzL2lub2RlLmMNCkBAIC00NzQsOSArNDc0LDEwIEBAIHN0YXRpYyB2b2lkIHVmc193 cml0ZV9mYWlsZWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCB0bykNCiAJ fQ0KIH0NCiANCi1zdGF0aWMgaW50IHVmc193cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwg c3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQotCQkJbG9mZl90IHBvcywgdW5zaWduZWQg bGVuLA0KLQkJCXN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCitzdGF0aWMg aW50IHVmc193cml0ZV9iZWdpbihjb25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkJICAgbG9mZl90IHBvcywgdW5zaWduZWQg bGVuLA0KKwkJCSAgIHN0cnVjdCBmb2xpbyAqKmZvbGlvcCwgdm9pZCAqKmZzZGF0YSkNCiB7DQog CWludCByZXQ7DQogDQpAQCAtNDg3LDEzICs0ODgsMTQgQEAgc3RhdGljIGludCB1ZnNfd3JpdGVf YmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0K IAlyZXR1cm4gcmV0Ow0KIH0NCiANCi1zdGF0aWMgaW50IHVmc193cml0ZV9lbmQoc3RydWN0IGZp bGUgKmZpbGUsIHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KLQkJCWxvZmZfdCBwb3Ms IHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KLQkJCXN0cnVjdCBmb2xpbyAqZm9saW8s IHZvaWQgKmZzZGF0YSkNCitzdGF0aWMgaW50IHVmc193cml0ZV9lbmQoY29uc3Qgc3RydWN0IGtp b2NiICppb2NiLA0KKwkJCSBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCisJCQkgbG9m Zl90IHBvcywgdW5zaWduZWQgbGVuLCB1bnNpZ25lZCBjb3BpZWQsDQorCQkJIHN0cnVjdCBmb2xp byAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQogCWludCByZXQ7DQogDQotCXJldCA9IGdlbmVy aWNfd3JpdGVfZW5kKGZpbGUsIG1hcHBpbmcsIHBvcywgbGVuLCBjb3BpZWQsIGZvbGlvLCBmc2Rh dGEpOw0KKwlyZXQgPSBnZW5lcmljX3dyaXRlX2VuZChpb2NiLCBtYXBwaW5nLCBwb3MsIGxlbiwg Y29waWVkLCBmb2xpbywgZnNkYXRhKTsNCiAJaWYgKHJldCA8IGxlbikNCiAJCXVmc193cml0ZV9m YWlsZWQobWFwcGluZywgcG9zICsgbGVuKTsNCiAJcmV0dXJuIHJldDsNCmRpZmYgLS1naXQgYS9m cy92Ym94c2YvZmlsZS5jIGIvZnMvdmJveHNmL2ZpbGUuYw0KaW5kZXggYjQ5Mjc5NGY4ZTlhLi5h ZjAxZTNiZWFhNDIgMTAwNjQ0DQotLS0gYS9mcy92Ym94c2YvZmlsZS5jDQorKysgYi9mcy92Ym94 c2YvZmlsZS5jDQpAQCAtMzAwLDEyICszMDAsMTMgQEAgc3RhdGljIGludCB2Ym94c2Zfd3JpdGVw YWdlcyhzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywNCiAJcmV0dXJuIGVycm9yOw0KIH0N CiANCi1zdGF0aWMgaW50IHZib3hzZl93cml0ZV9lbmQoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVj dCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KK3N0YXRpYyBpbnQgdmJveHNmX3dyaXRlX2VuZChj b25zdCBzdHJ1Y3Qga2lvY2IgKmlvY2IsDQorCQkJICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLA0KIAkJCSAgICBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBpbnQgbGVuLCB1bnNpZ25lZCBp bnQgY29waWVkLA0KIAkJCSAgICBzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQog ew0KIAlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gbWFwcGluZy0+aG9zdDsNCi0Jc3RydWN0IHZib3hz Zl9oYW5kbGUgKnNmX2hhbmRsZSA9IGZpbGUtPnByaXZhdGVfZGF0YTsNCisJc3RydWN0IHZib3hz Zl9oYW5kbGUgKnNmX2hhbmRsZSA9IGlvY2ItPmtpX2ZpbHAtPnByaXZhdGVfZGF0YTsNCiAJc2l6 ZV90IGZyb20gPSBvZmZzZXRfaW5fZm9saW8oZm9saW8sIHBvcyk7DQogCXUzMiBud3JpdHRlbiA9 IGxlbjsNCiAJdTggKmJ1ZjsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2J1ZmZlcl9oZWFk LmggYi9pbmNsdWRlL2xpbnV4L2J1ZmZlcl9oZWFkLmgNCmluZGV4IDE3OGViOTBlOWNmMy4uYjE2 Yjg4YmZiYzNlIDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9idWZmZXJfaGVhZC5oDQorKysg Yi9pbmNsdWRlL2xpbnV4L2J1ZmZlcl9oZWFkLmgNCkBAIC0yNjMsMTEgKzI2MywxMSBAQCBpbnQg YmxvY2tfd3JpdGVfYmVnaW4oc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBw b3MsIHVuc2lnbmVkIGxlbiwNCiBpbnQgX19ibG9ja193cml0ZV9iZWdpbihzdHJ1Y3QgZm9saW8g KmZvbGlvLCBsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQogCQlnZXRfYmxvY2tfdCAqZ2V0X2Js b2NrKTsNCiBpbnQgYmxvY2tfd3JpdGVfZW5kKGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwgdW5z aWduZWQgY29waWVkLCBzdHJ1Y3QgZm9saW8gKik7DQotaW50IGdlbmVyaWNfd3JpdGVfZW5kKHN0 cnVjdCBmaWxlICosIHN0cnVjdCBhZGRyZXNzX3NwYWNlICosDQoraW50IGdlbmVyaWNfd3JpdGVf ZW5kKGNvbnN0IHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLA0KIAkJCQls b2ZmX3QsIHVuc2lnbmVkIGxlbiwgdW5zaWduZWQgY29waWVkLA0KIAkJCQlzdHJ1Y3QgZm9saW8g Kiwgdm9pZCAqKTsNCiB2b2lkIGZvbGlvX3plcm9fbmV3X2J1ZmZlcnMoc3RydWN0IGZvbGlvICpm b2xpbywgc2l6ZV90IGZyb20sIHNpemVfdCB0byk7DQotaW50IGNvbnRfd3JpdGVfYmVnaW4oc3Ry dWN0IGZpbGUgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKiwgbG9mZl90LA0KK2ludCBjb250X3dy aXRlX2JlZ2luKGNvbnN0IHN0cnVjdCBraW9jYiAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqLCBs b2ZmX3QsDQogCQkJdW5zaWduZWQsIHN0cnVjdCBmb2xpbyAqKiwgdm9pZCAqKiwNCiAJCQlnZXRf YmxvY2tfdCAqLCBsb2ZmX3QgKik7DQogaW50IGdlbmVyaWNfY29udF9leHBhbmRfc2ltcGxlKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIGxvZmZfdCBzaXplKTsNCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L2ZzLmggYi9pbmNsdWRlL2xpbnV4L2ZzLmgNCmluZGV4IDA5ZTNlODBiMDUyOC4uZGY4YzUw MzEwMGM0IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9saW51eC9mcy5oDQorKysgYi9pbmNsdWRlL2xp bnV4L2ZzLmgNCkBAIC00NDQsMTAgKzQ0NCwxMCBAQCBzdHJ1Y3QgYWRkcmVzc19zcGFjZV9vcGVy YXRpb25zIHsNCiANCiAJdm9pZCAoKnJlYWRhaGVhZCkoc3RydWN0IHJlYWRhaGVhZF9jb250cm9s ICopOw0KIA0KLQlpbnQgKCp3cml0ZV9iZWdpbikoc3RydWN0IGZpbGUgKiwgc3RydWN0IGFkZHJl c3Nfc3BhY2UgKm1hcHBpbmcsDQorCWludCAoKndyaXRlX2JlZ2luKShjb25zdCBzdHJ1Y3Qga2lv Y2IgKiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJCWxvZmZfdCBwb3MsIHVu c2lnbmVkIGxlbiwNCiAJCQkJc3RydWN0IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKTsN Ci0JaW50ICgqd3JpdGVfZW5kKShzdHJ1Y3QgZmlsZSAqLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywNCisJaW50ICgqd3JpdGVfZW5kKShjb25zdCBzdHJ1Y3Qga2lvY2IgKiwgc3RydWN0 IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQogCQkJCWxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwg dW5zaWduZWQgY29waWVkLA0KIAkJCQlzdHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEp Ow0KIA0KQEAgLTM1OTgsOSArMzU5OCwxMCBAQCBleHRlcm4gdm9pZCBzaW1wbGVfcmVjdXJzaXZl X3JlbW92YWwoc3RydWN0IGRlbnRyeSAqLA0KIGV4dGVybiBpbnQgbm9vcF9mc3luYyhzdHJ1Y3Qg ZmlsZSAqLCBsb2ZmX3QsIGxvZmZfdCwgaW50KTsNCiBleHRlcm4gc3NpemVfdCBub29wX2RpcmVj dF9JTyhzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaXRlcik7DQogZXh0ZXJu IGludCBzaW1wbGVfZW1wdHkoc3RydWN0IGRlbnRyeSAqKTsNCi1leHRlcm4gaW50IHNpbXBsZV93 cml0ZV9iZWdpbihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBp bmcsDQotCQkJbG9mZl90IHBvcywgdW5zaWduZWQgbGVuLA0KLQkJCXN0cnVjdCBmb2xpbyAqKmZv bGlvcCwgdm9pZCAqKmZzZGF0YSk7DQorZXh0ZXJuIGludCBzaW1wbGVfd3JpdGVfYmVnaW4oY29u c3Qgc3RydWN0IGtpb2NiICppb2NiLA0KKwkJCSAgICAgIHN0cnVjdCBhZGRyZXNzX3NwYWNlICpt YXBwaW5nLA0KKwkJCSAgICAgIGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCisJCQkgICAgICBz dHJ1Y3QgZm9saW8gKipmb2xpb3AsIHZvaWQgKipmc2RhdGEpOw0KIGV4dGVybiBjb25zdCBzdHJ1 Y3QgYWRkcmVzc19zcGFjZV9vcGVyYXRpb25zIHJhbV9hb3BzOw0KIGV4dGVybiBpbnQgYWx3YXlz X2RlbGV0ZV9kZW50cnkoY29uc3Qgc3RydWN0IGRlbnRyeSAqKTsNCiBleHRlcm4gc3RydWN0IGlu b2RlICphbGxvY19hbm9uX2lub2RlKHN0cnVjdCBzdXBlcl9ibG9jayAqKTsNCmRpZmYgLS1naXQg YS9tbS9maWxlbWFwLmMgYi9tbS9maWxlbWFwLmMNCmluZGV4IGJhZGEyNDliOWZiNy4uYmEwODlk NzVmYzg2IDEwMDY0NA0KLS0tIGEvbW0vZmlsZW1hcC5jDQorKysgYi9tbS9maWxlbWFwLmMNCkBA IC00MTA5LDcgKzQxMDksNyBAQCBzc2l6ZV90IGdlbmVyaWNfcGVyZm9ybV93cml0ZShzdHJ1Y3Qg a2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaSkNCiAJCQlicmVhazsNCiAJCX0NCiANCi0J CXN0YXR1cyA9IGFfb3BzLT53cml0ZV9iZWdpbihmaWxlLCBtYXBwaW5nLCBwb3MsIGJ5dGVzLA0K KwkJc3RhdHVzID0gYV9vcHMtPndyaXRlX2JlZ2luKGlvY2IsIG1hcHBpbmcsIHBvcywgYnl0ZXMs DQogCQkJCQkJJmZvbGlvLCAmZnNkYXRhKTsNCiAJCWlmICh1bmxpa2VseShzdGF0dXMgPCAwKSkN CiAJCQlicmVhazsNCkBAIC00MTMwLDcgKzQxMzAsNyBAQCBzc2l6ZV90IGdlbmVyaWNfcGVyZm9y bV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaSkNCiAJCWNvcGll ZCA9IGNvcHlfZm9saW9fZnJvbV9pdGVyX2F0b21pYyhmb2xpbywgb2Zmc2V0LCBieXRlcywgaSk7 DQogCQlmbHVzaF9kY2FjaGVfZm9saW8oZm9saW8pOw0KIA0KLQkJc3RhdHVzID0gYV9vcHMtPndy aXRlX2VuZChmaWxlLCBtYXBwaW5nLCBwb3MsIGJ5dGVzLCBjb3BpZWQsDQorCQlzdGF0dXMgPSBh X29wcy0+d3JpdGVfZW5kKGlvY2IsIG1hcHBpbmcsIHBvcywgYnl0ZXMsIGNvcGllZCwNCiAJCQkJ CQlmb2xpbywgZnNkYXRhKTsNCiAJCWlmICh1bmxpa2VseShzdGF0dXMgIT0gY29waWVkKSkgew0K IAkJCWlvdl9pdGVyX3JldmVydChpLCBjb3BpZWQgLSBtYXgoc3RhdHVzLCAwTCkpOw0KZGlmZiAt LWdpdCBhL21tL3NobWVtLmMgYi9tbS9zaG1lbS5jDQppbmRleCAwYzVmYjRmZmEwM2EuLjIyMjk0 MjVlMWIyOSAxMDA2NDQNCi0tLSBhL21tL3NobWVtLmMNCisrKyBiL21tL3NobWVtLmMNCkBAIC0z MjY2LDkgKzMyNjYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlub2RlX29wZXJhdGlvbnMgc2ht ZW1fc3ltbGlua19pbm9kZV9vcGVyYXRpb25zOw0KIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW5vZGVf b3BlcmF0aW9ucyBzaG1lbV9zaG9ydF9zeW1saW5rX29wZXJhdGlvbnM7DQogDQogc3RhdGljIGlu dA0KLXNobWVtX3dyaXRlX2JlZ2luKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sDQotCQkJc3RydWN0 IGZvbGlvICoqZm9saW9wLCB2b2lkICoqZnNkYXRhKQ0KK3NobWVtX3dyaXRlX2JlZ2luKGNvbnN0 IHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQkg IGxvZmZfdCBwb3MsIHVuc2lnbmVkIGxlbiwNCisJCSAgc3RydWN0IGZvbGlvICoqZm9saW9wLCB2 b2lkICoqZnNkYXRhKQ0KIHsNCiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7 DQogCXN0cnVjdCBzaG1lbV9pbm9kZV9pbmZvICppbmZvID0gU0hNRU1fSShpbm9kZSk7DQpAQCAt MzMwMCw5ICszMzAwLDkgQEAgc2htZW1fd3JpdGVfYmVnaW4oc3RydWN0IGZpbGUgKmZpbGUsIHN0 cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLA0KIH0NCiANCiBzdGF0aWMgaW50DQotc2htZW1f d3JpdGVfZW5kKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGlu ZywNCi0JCQlsb2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCi0JCQlz dHJ1Y3QgZm9saW8gKmZvbGlvLCB2b2lkICpmc2RhdGEpDQorc2htZW1fd3JpdGVfZW5kKGNvbnN0 IHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsDQorCQls b2ZmX3QgcG9zLCB1bnNpZ25lZCBsZW4sIHVuc2lnbmVkIGNvcGllZCwNCisJCXN0cnVjdCBmb2xp byAqZm9saW8sIHZvaWQgKmZzZGF0YSkNCiB7DQogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBw aW5nLT5ob3N0Ow0KIA0KLS0gDQoyLjM0LjENCg==