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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT 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 58F4EC43331 for ; Tue, 12 Nov 2019 00:34:08 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 369512184C for ; Tue, 12 Nov 2019 00:34:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 369512184C Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D2EF86EA3F; Tue, 12 Nov 2019 00:34:07 +0000 (UTC) Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730067.outbound.protection.outlook.com [40.107.73.67]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64AD16EA3F for ; Tue, 12 Nov 2019 00:34:06 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZbhFjLCc1hbOvnQbeUIVImB8gbqPHFCPuMDEfQWzfEcXQrxG3ScoOiaKXXAoNkT8252dZvVv1/PUl98c6JuRCgY7mHekvti2ZCFbxdhZsxg4G1o6ymqN9xTFYQjiIcGk0fPtpw+V6CjIjoflaNKOgXRxaANOXJAEmoNCMZ538kQRErKruxH7yAYo5rC9AGYpEOLm55W6d3TbPVTGbgpR9RSvgA8/2DEE7Jf7jOFpRFdKOOLUX7pG85GkoVHOfosI58HtSAa6nmJBweoRUWJVjdXws79kbcVgEdxq+JA03j4pWqpd94O6nflAGEz0SOPTyVt2722o+G7NAIxmcVZ5NQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TTJ58rZEuM8bwbxpqyBUCaNKnlPelmZCUyasrvZh3oY=; b=MlQjyyLU9swc2+6Z5T0yfo+nAw7secZEcuqTzeET4UoRORGfD0vNdXllu1jmKzTJAukRLgmy6CNda1agslyibS0Yizl7JZ6YOPG+vs/ZABHtBeW2XEcHqcgCnu0zJrCw1+9ckUD2Y9RzGEh/cY07EHAMuMLXU8ijYOc59oZa21xe92dfaG8Ap0cfavjHteW9mWJ0c5ReoVCpyXhUR2R+ZZWfoPsrMz99ipC8Q5D01hDTiXoBfezH9bAmNxdorvqAj0ptJ9x+PRLUgYcjSjPlgb1ASdSgmxUqvJEyBJyUp5EskqFTEG00SjsbQGqPMpsHk+bJeSFbsd9BxAcJFO2DxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from MW2PR12MB2524.namprd12.prod.outlook.com (52.132.180.155) by MW2PR12MB2554.namprd12.prod.outlook.com (52.132.180.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.25; Tue, 12 Nov 2019 00:34:02 +0000 Received: from MW2PR12MB2524.namprd12.prod.outlook.com ([fe80::3d1f:4c20:e980:6e69]) by MW2PR12MB2524.namprd12.prod.outlook.com ([fe80::3d1f:4c20:e980:6e69%5]) with mapi id 15.20.2430.027; Tue, 12 Nov 2019 00:34:02 +0000 From: Rodrigo Siqueira To: amd-gfx@lists.freedesktop.org Subject: [PATCH 25/30] drm/amd/display: cleanup of function pointer tables Date: Mon, 11 Nov 2019 19:33:19 -0500 Message-Id: <20191112003324.8419-26-Rodrigo.Siqueira@amd.com> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191112003324.8419-1-Rodrigo.Siqueira@amd.com> References: <20191112003324.8419-1-Rodrigo.Siqueira@amd.com> X-ClientProxiedBy: YTBPR01CA0012.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:14::25) To MW2PR12MB2524.namprd12.prod.outlook.com (2603:10b6:907:9::27) MIME-Version: 1.0 X-Mailer: git-send-email 2.24.0 X-Originating-IP: [165.204.55.250] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 6b300bbd-ef38-4e36-9150-08d767080443 X-MS-TrafficTypeDiagnostic: MW2PR12MB2554: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6790; X-Forefront-PRVS: 021975AE46 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(366004)(396003)(346002)(39860400002)(376002)(189003)(199004)(76176011)(6916009)(81166006)(81156014)(386003)(8676002)(478600001)(6506007)(51416003)(52116002)(2870700001)(25786009)(14444005)(2906002)(186003)(2361001)(3846002)(316002)(66066001)(47776003)(50466002)(4326008)(26005)(66946007)(6116002)(36756003)(1076003)(8936002)(48376002)(50226002)(54906003)(2616005)(305945005)(486006)(5660300002)(6512007)(14454004)(2351001)(446003)(30864003)(6486002)(6666004)(99286004)(66556008)(476003)(66476007)(11346002)(86362001)(6436002)(7736002)(559001)(569006); DIR:OUT; SFP:1101; SCL:1; SRVR:MW2PR12MB2554; H:MW2PR12MB2524.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1wx+ZpwABLfx+xrvCEs7L72lUusCp7uRX+f/746Agwju9gjyh7hUxgCBTXAHunvKJRXLdRmzTSXVLQzVWa6w5JxYRzOM3iz6/YsLfSiqVvawh7TtF1lE/sYikqOgaQ9EyvfS22ECbCyJiaQw+J7jyEi20IvlveZfx2I3D6qIP+ZXyzkBim8V8vrASWQlxNdE5XOJEBZSW63MJz5bcAJIYPYbzZ72MiCDPGc1+XVYc8LnkhCjMH2sJQG7ixfs5nIuHFdhB8AA3ROSIAPtjguwVdxRRACaxeq4NWoPxYqSIFzmS+NVLouqLbRUipHCklyBc2XxyDSWSEO3HH+qcoMwiy1kEdbl1PV5aBFoyiEhFILAVmUKHNJeRKVq43UQUczZ89pUakpvjhhiEx5+pHEFEuEnY0YRnbZaSdbqB6Z8dwzKCsqk9XBaI3eX1wUMMXIS X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6b300bbd-ef38-4e36-9150-08d767080443 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Nov 2019 00:34:02.8119 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ilABx/2/j5ceBmojcekzolPeWh8JJVgVy5vFtBMvAb4iUam0XQP7HAwTbFBzUtRX0b/TJG3lzB9qEpuVKQQGHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR12MB2554 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TTJ58rZEuM8bwbxpqyBUCaNKnlPelmZCUyasrvZh3oY=; b=BxC5URzms581uJLo5CsP5vtYaWgOa9srdVPghuJmdeOWiZ1tRdMLx4tvDpYotrdIh7iB/wqBT3itPKSCXDSSUcnDxIXCL5hvi4T0IkB1tX2N7yJcjlrV1k2Pemxl2JiqWpXxioeREcJ5kGmIeI02Q0DHKsGKWfWHCALtyirm2Uw= X-Mailman-Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rodrigo.Siqueira@amd.com; X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Aric Cyr , Anthony Koo Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" Message-ID: <20191112003319.nUOt3rB5T1t8I2TIR6S4IXfLjcm31yAyvXgWtiSO8fo@z> RnJvbTogQW50aG9ueSBLb28gPEFudGhvbnkuS29vQGFtZC5jb20+CgpbV2h5XQpJdCBpcyBiZWNv bWluZyBpbmNyZWFzaW5nbHkgaGFyZCB0byBmaWd1cmUgb3V0IHdoaWNoCmZ1bmN0aW9uIGlzIGNh bGxlZCBvbiB0aGUgZGlmZmVyZW50IERDTiB2ZXJzaW9ucwoKW0hvd10KMS4gTWFrZSBmdW5jdGlv biBwb2ludGVyIHRhYmxlIGluaXQgaW4gaXRzIG93biBpbml0LmMgZmlsZQoyLiBSZW1vdmUgb3Ro ZXIgc2NlbmFyaW9zIGluIGh3c2VxLmMgZmlsZSB0aGF0IG5lZWQgdG8KaW5jbHVkZSBoZWFkZXJz IG9mIG90aGVyIERDTiB2ZXJzaW9ucy4gKElmIG5lZWRlZCwKaXQgc2hvdWxkIGhhdmUgYmVlbiBk b25lIHZpYSB0aGUgZnVuY3Rpb24gcG9pbnRlcnMpCgpTaWduZWQtb2ZmLWJ5OiBBbnRob255IEtv byA8QW50aG9ueS5Lb29AYW1kLmNvbT4KUmV2aWV3ZWQtYnk6IEFyaWMgQ3lyIDxBcmljLkN5ckBh bWQuY29tPgpBY2tlZC1ieTogUm9kcmlnbyBTaXF1ZWlyYSA8Um9kcmlnby5TaXF1ZWlyYUBhbWQu Y29tPgotLS0KIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jhc2ljcy9NYWtlZmlsZSAgICB8 ICAgMiArLQogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmFzaWNzL2RjX2NvbW1vbi5jIHwg MTAxICsrKysKIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jhc2ljcy9kY19jb21tb24uaCB8 ICA0MiArKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMuYyAgICAgIHwg ICA0ICstCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjX3N0cmVhbS5jICAgfCAg IDMgKy0KIC4uLi9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMgICB8ICAx MiArLQogLi4uL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9od19zZXF1ZW5jZXIuaCAgIHwgICAx IC0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9NYWtlZmlsZSB8ICAgMyAr LQogLi4uL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVlbmNlci5jIHwgNDM2ICsr KysrLS0tLS0tLS0tLS0tLQogLi4uL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVl bmNlci5oIHwgMTgxICsrKysrKy0tCiAuLi4vZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyX2Rl YnVnLmggICAgICAgfCAgNDMgKysKIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2Rj bjEwX2luaXQuYyB8IDEwNSArKysrKwogLi4uL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAv ZGNuMTBfaW5pdC5oIHwgIDMzICsrCiAuLi4vZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEw X3Jlc291cmNlLmMgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIw L01ha2VmaWxlIHwgICAyICstCiAuLi4vZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h3 c2VxLmMgICAgfCA0MjYgKysrKysrKy0tLS0tLS0tLS0KIC4uLi9kcm0vYW1kL2Rpc3BsYXkvZGMv ZGNuMjAvZGNuMjBfaHdzZXEuaCAgICB8IDE1MCArKystLS0KIC4uLi9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjbjIwL2RjbjIwX2luaXQuYyB8IDEyNyArKysrKwogLi4uL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNuMjAvZGNuMjBfaW5pdC5oIHwgIDMzICsrCiAuLi4vZ3B1L2RybS9hbWQvZGlz cGxheS9kYy9kY24yMC9kY24yMF9vcHRjLmMgfCAgMTIgKy0KIC4uLi9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjbjIwL2RjbjIwX29wdGMuaCB8ICAgMiArLQogLi4uL2RybS9hbWQvZGlzcGxheS9k Yy9kY24yMC9kY24yMF9yZXNvdXJjZS5jIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNuMjEvTWFrZWZpbGUgfCAgIDMgKy0KIC4uLi9kcm0vYW1kL2Rpc3BsYXkvZGMv ZGNuMjEvZGNuMjFfaHdzZXEuYyAgICB8ICAxMyArLQogLi4uL2RybS9hbWQvZGlzcGxheS9kYy9k Y24yMS9kY24yMV9od3NlcS5oICAgIHwgIDE0ICstCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9kY24yMS9kY24yMV9pbml0LmMgfCAxMzEgKysrKysrCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9kY24yMS9kY24yMV9pbml0LmggfCAgMzMgKysKIC4uLi9kcm0vYW1kL2Rpc3BsYXkvZGMv ZGNuMjEvZGNuMjFfcmVzb3VyY2UuYyB8ICAgMiArCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9pbmMvaHdfc2VxdWVuY2VyLmggfCAgNDAgKy0KIDI5IGZpbGVzIGNoYW5nZWQsIDEyNDMgaW5z ZXJ0aW9ucygrKSwgNzE3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9iYXNpY3MvZGNfY29tbW9uLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmFzaWNzL2RjX2NvbW1vbi5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2Rj bjEwX2h3X3NlcXVlbmNlcl9kZWJ1Zy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2luaXQuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9pbml0LmgKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBf aW5pdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2RjbjIwL2RjbjIwX2luaXQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9pbml0LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaW5pdC5oCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jhc2ljcy9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iYXNpY3MvTWFrZWZpbGUKaW5kZXggYTUwYTc2NDcx MTA3Li43YWQwY2FkMGY0ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9iYXNpY3MvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2Jhc2ljcy9NYWtlZmlsZQpAQCAtMjUsNyArMjUsNyBAQAogIyBzdWJjb21wb25lbnRzLgogCiBC QVNJQ1MgPSBjb252ZXJzaW9uLm8gZml4cHQzMV8zMi5vIFwKLQlsb2dfaGVscGVycy5vIHZlY3Rv ci5vCisJbG9nX2hlbHBlcnMubyB2ZWN0b3IubyBkY19jb21tb24ubwogCiBBTURfREFMX0JBU0lD UyA9ICQoYWRkcHJlZml4ICQoQU1EREFMUEFUSCkvZGMvYmFzaWNzLywkKEJBU0lDUykpCiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9iYXNpY3MvZGNfY29tbW9u LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvYmFzaWNzL2RjX2NvbW1vbi5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjJmYzRmOGU2NDgyCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2Jhc2ljcy9kY19j b21tb24uYwpAQCAtMCwwICsxLDEwMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEyLTE1IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisg KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBB TUQKKyAqCisgKi8KKworI2luY2x1ZGUgImNvcmVfdHlwZXMuaCIKKyNpbmNsdWRlICJkY19jb21t b24uaCIKKyNpbmNsdWRlICJiYXNpY3MvY29udmVyc2lvbi5oIgorCitib29sIGlzX3JnYl9jc3Bh Y2UoZW51bSBkY19jb2xvcl9zcGFjZSBvdXRwdXRfY29sb3Jfc3BhY2UpCit7CisJc3dpdGNoIChv dXRwdXRfY29sb3Jfc3BhY2UpIHsKKwljYXNlIENPTE9SX1NQQUNFX1NSR0I6CisJY2FzZSBDT0xP Ul9TUEFDRV9TUkdCX0xJTUlURUQ6CisJY2FzZSBDT0xPUl9TUEFDRV8yMDIwX1JHQl9GVUxMUkFO R0U6CisJY2FzZSBDT0xPUl9TUEFDRV8yMDIwX1JHQl9MSU1JVEVEUkFOR0U6CisJY2FzZSBDT0xP Ul9TUEFDRV9BRE9CRVJHQjoKKwkJcmV0dXJuIHRydWU7CisJY2FzZSBDT0xPUl9TUEFDRV9ZQ0JD UjYwMToKKwljYXNlIENPTE9SX1NQQUNFX1lDQkNSNzA5OgorCWNhc2UgQ09MT1JfU1BBQ0VfWUNC Q1I2MDFfTElNSVRFRDoKKwljYXNlIENPTE9SX1NQQUNFX1lDQkNSNzA5X0xJTUlURUQ6CisJY2Fz ZSBDT0xPUl9TUEFDRV8yMDIwX1lDQkNSOgorCQlyZXR1cm4gZmFsc2U7CisJZGVmYXVsdDoKKwkJ LyogQWRkIGEgY2FzZSB0byBzd2l0Y2ggKi8KKwkJQlJFQUtfVE9fREVCVUdHRVIoKTsKKwkJcmV0 dXJuIGZhbHNlOworCX0KK30KKworYm9vbCBpc19sb3dlcl9waXBlX3RyZWVfdmlzaWJsZShzdHJ1 Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQoreworCWlmIChwaXBlX2N0eC0+cGxhbmVfc3RhdGUgJiYg cGlwZV9jdHgtPnBsYW5lX3N0YXRlLT52aXNpYmxlKQorCQlyZXR1cm4gdHJ1ZTsKKwlpZiAocGlw ZV9jdHgtPmJvdHRvbV9waXBlICYmIGlzX2xvd2VyX3BpcGVfdHJlZV92aXNpYmxlKHBpcGVfY3R4 LT5ib3R0b21fcGlwZSkpCisJCXJldHVybiB0cnVlOworCXJldHVybiBmYWxzZTsKK30KKworYm9v bCBpc191cHBlcl9waXBlX3RyZWVfdmlzaWJsZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQor eworCWlmIChwaXBlX2N0eC0+cGxhbmVfc3RhdGUgJiYgcGlwZV9jdHgtPnBsYW5lX3N0YXRlLT52 aXNpYmxlKQorCQlyZXR1cm4gdHJ1ZTsKKwlpZiAocGlwZV9jdHgtPnRvcF9waXBlICYmIGlzX3Vw cGVyX3BpcGVfdHJlZV92aXNpYmxlKHBpcGVfY3R4LT50b3BfcGlwZSkpCisJCXJldHVybiB0cnVl OworCXJldHVybiBmYWxzZTsKK30KKworYm9vbCBpc19waXBlX3RyZWVfdmlzaWJsZShzdHJ1Y3Qg cGlwZV9jdHggKnBpcGVfY3R4KQoreworCWlmIChwaXBlX2N0eC0+cGxhbmVfc3RhdGUgJiYgcGlw ZV9jdHgtPnBsYW5lX3N0YXRlLT52aXNpYmxlKQorCQlyZXR1cm4gdHJ1ZTsKKwlpZiAocGlwZV9j dHgtPnRvcF9waXBlICYmIGlzX3VwcGVyX3BpcGVfdHJlZV92aXNpYmxlKHBpcGVfY3R4LT50b3Bf cGlwZSkpCisJCXJldHVybiB0cnVlOworCWlmIChwaXBlX2N0eC0+Ym90dG9tX3BpcGUgJiYgaXNf bG93ZXJfcGlwZV90cmVlX3Zpc2libGUocGlwZV9jdHgtPmJvdHRvbV9waXBlKSkKKwkJcmV0dXJu IHRydWU7CisJcmV0dXJuIGZhbHNlOworfQorCit2b2lkIGJ1aWxkX3ByZXNjYWxlX3BhcmFtcyhz dHJ1Y3QgIGRjX2JpYXNfYW5kX3NjYWxlICpiaWFzX2FuZF9zY2FsZSwKKwkJY29uc3Qgc3RydWN0 IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlpZiAocGxhbmVfc3RhdGUtPmZvcm1h dCA+PSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9WSURFT19CRUdJTgorCQkJJiYgcGxhbmVfc3RhdGUt PmZvcm1hdCAhPSBTVVJGQUNFX1BJWEVMX0ZPUk1BVF9JTlZBTElECisJCQkmJiBwbGFuZV9zdGF0 ZS0+aW5wdXRfY3NjX2NvbG9yX21hdHJpeC5lbmFibGVfYWRqdXN0bWVudAorCQkJJiYgcGxhbmVf c3RhdGUtPmNvZWZmX3JlZHVjdGlvbl9mYWN0b3IudmFsdWUgIT0gMCkgeworCQliaWFzX2FuZF9z Y2FsZS0+c2NhbGVfYmx1ZSA9IGZpeGVkX3BvaW50X3RvX2ludF9mcmFjKAorCQkJZGNfZml4cHRf bXVsKHBsYW5lX3N0YXRlLT5jb2VmZl9yZWR1Y3Rpb25fZmFjdG9yLAorCQkJCQlkY19maXhwdF9m cm9tX2ZyYWN0aW9uKDI1NiwgMjU1KSksCisJCQkJMiwKKwkJCQkxMyk7CisJCWJpYXNfYW5kX3Nj YWxlLT5zY2FsZV9yZWQgPSBiaWFzX2FuZF9zY2FsZS0+c2NhbGVfYmx1ZTsKKwkJYmlhc19hbmRf c2NhbGUtPnNjYWxlX2dyZWVuID0gYmlhc19hbmRfc2NhbGUtPnNjYWxlX2JsdWU7CisJfSBlbHNl IHsKKwkJYmlhc19hbmRfc2NhbGUtPnNjYWxlX2JsdWUgPSAweDIwMDA7CisJCWJpYXNfYW5kX3Nj YWxlLT5zY2FsZV9yZWQgPSAweDIwMDA7CisJCWJpYXNfYW5kX3NjYWxlLT5zY2FsZV9ncmVlbiA9 IDB4MjAwMDsKKwl9Cit9CisKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxh eS9kYy9iYXNpY3MvZGNfY29tbW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMv YmFzaWNzL2RjX2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uN2MwY2JmNDdlOGNlCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2Jhc2ljcy9kY19jb21tb24uaApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29w eXJpZ2h0IDIwMTItMTUgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1Ig QVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUg U09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJF LgorICoKKyAqIEF1dGhvcnM6IEFNRAorICoKKyAqLworCisjaWZuZGVmIF9fREFMX0RDX0NPTU1P Tl9IX18KKyNkZWZpbmUgX19EQUxfRENfQ09NTU9OX0hfXworCisjaW5jbHVkZSAiY29yZV90eXBl cy5oIgorCitib29sIGlzX3JnYl9jc3BhY2UoZW51bSBkY19jb2xvcl9zcGFjZSBvdXRwdXRfY29s b3Jfc3BhY2UpOworCitib29sIGlzX2xvd2VyX3BpcGVfdHJlZV92aXNpYmxlKHN0cnVjdCBwaXBl X2N0eCAqcGlwZV9jdHgpOworCitib29sIGlzX3VwcGVyX3BpcGVfdHJlZV92aXNpYmxlKHN0cnVj dCBwaXBlX2N0eCAqcGlwZV9jdHgpOworCitib29sIGlzX3BpcGVfdHJlZV92aXNpYmxlKHN0cnVj dCBwaXBlX2N0eCAqcGlwZV9jdHgpOworCit2b2lkIGJ1aWxkX3ByZXNjYWxlX3BhcmFtcyhzdHJ1 Y3QgIGRjX2JpYXNfYW5kX3NjYWxlICpiaWFzX2FuZF9zY2FsZSwKKwkJY29uc3Qgc3RydWN0IGRj X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv ZGlzcGxheS9kYy9jb3JlL2RjLmMKaW5kZXggMDRhZjJiZjYwMDczLi43YzA0Mzk3ZWI3YWEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9jb3JlL2RjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGMuYwpAQCAtMTk3NCwxMSArMTk3 NCwxMSBAQCBzdGF0aWMgdm9pZCBjb21taXRfcGxhbmVzX2RvX3N0cmVhbV91cGRhdGUoc3RydWN0 IGRjICpkYywKIAogCQkJaWYgKHN0cmVhbV91cGRhdGUtPnBlcmlvZGljX2ludGVycnVwdDAgJiYK IAkJCQkJZGMtPmh3c3Muc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0KQotCQkJCWRjLT5od3NzLnNl dHVwX3BlcmlvZGljX2ludGVycnVwdChwaXBlX2N0eCwgVkxJTkUwKTsKKwkJCQlkYy0+aHdzcy5z ZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQoZGMsIHBpcGVfY3R4LCBWTElORTApOwogCiAJCQlpZiAo c3RyZWFtX3VwZGF0ZS0+cGVyaW9kaWNfaW50ZXJydXB0MSAmJgogCQkJCQlkYy0+aHdzcy5zZXR1 cF9wZXJpb2RpY19pbnRlcnJ1cHQpCi0JCQkJZGMtPmh3c3Muc2V0dXBfcGVyaW9kaWNfaW50ZXJy dXB0KHBpcGVfY3R4LCBWTElORTEpOworCQkJCWRjLT5od3NzLnNldHVwX3BlcmlvZGljX2ludGVy cnVwdChkYywgcGlwZV9jdHgsIFZMSU5FMSk7CiAKIAkJCWlmICgoc3RyZWFtX3VwZGF0ZS0+aGRy X3N0YXRpY19tZXRhZGF0YSAmJiAhc3RyZWFtLT51c2VfZHluYW1pY19tZXRhKSB8fAogCQkJCQlz dHJlYW1fdXBkYXRlLT52cnJfaW5mb3BhY2tldCB8fApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3RyZWFtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvY29yZS9kY19zdHJlYW0uYwppbmRleCA5N2NiMDMwYjlmNGUuLmQwNTAxNDMz MWEzNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNf c3RyZWFtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2NvcmUvZGNfc3Ry ZWFtLmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAKICNpbmNs dWRlICJkbV9zZXJ2aWNlcy5oIgorI2luY2x1ZGUgImJhc2ljcy9kY19jb21tb24uaCIKICNpbmNs dWRlICJkYy5oIgogI2luY2x1ZGUgImNvcmVfdHlwZXMuaCIKICNpbmNsdWRlICJyZXNvdXJjZS5o IgpAQCAtMjQ0LDcgKzI0NSw3IEBAIHN0YXRpYyB2b2lkIGRlbGF5X2N1cnNvcl91bnRpbF92dXBk YXRlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIHN0cnVjdCBkYyAqZGMpCiAJaWYgKHN0cmVh bS0+Y3R4LT5hc2ljX2lkLmNoaXBfZmFtaWx5ID09IEZBTUlMWV9SViAmJgogCQkJQVNJQ1JFVl9J U19SQVZFTihzdHJlYW0tPmN0eC0+YXNpY19pZC5od19pbnRlcm5hbF9yZXYpKSB7CiAKLQkJdnVw ZGF0ZV9saW5lID0gZ2V0X3Z1cGRhdGVfb2Zmc2V0X2Zyb21fdnN5bmMocGlwZV9jdHgpOworCQl2 dXBkYXRlX2xpbmUgPSBkYy0+aHdzcy5nZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYyhwaXBl X2N0eCk7CiAJCWlmICghZGNfc3RyZWFtX2dldF9jcnRjX3Bvc2l0aW9uKGRjLCAmc3RyZWFtLCAx LCAmdnBvcywgJm52cG9zKSkKIAkJCXJldHVybjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9od19zZXF1ZW5jZXIuYwppbmRl eCAzZjVmYmFkNTg3ZTcuLjFkYzA2NWYxMTI1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmMKQEAg LTYxLDYgKzYxLDggQEAKIAogI2luY2x1ZGUgImF0b21maXJtd2FyZS5oIgogCisjZGVmaW5lIEdB TU1BX0hXX1BPSU5UU19OVU0gMjU2CisKIC8qCiAgKiBBbGwgdmFsdWVzIGFyZSBpbiBtaWxsaXNl Y29uZHM7CiAgKiBGb3IgZURQLCBhZnRlciBwb3dlci11cC9wb3dlci9kb3duLApAQCAtMjY4LDcg KzI3MCw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3ByZXNjYWxlX3BhcmFtcyhzdHJ1Y3QgaXBwX3By ZXNjYWxlX3BhcmFtcyAqcHJlc2NhbGVfcGFyYW1zLAogfQogCiBzdGF0aWMgYm9vbAotZGNlMTEw X3NldF9pbnB1dF90cmFuc2Zlcl9mdW5jKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCitkY2Ux MTBfc2V0X2lucHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4 ICpwaXBlX2N0eCwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlKQogewogCXN0cnVjdCBpbnB1dF9waXhlbF9wcm9jZXNzb3IgKmlwcCA9IHBpcGVfY3R4 LT5wbGFuZV9yZXMuaXBwOwpAQCAtNTk2LDcgKzU5OCw3IEBAIGRjZTExMF90cmFuc2xhdGVfcmVn YW1tYV90b19od19mb3JtYXQoY29uc3Qgc3RydWN0IGRjX3RyYW5zZmVyX2Z1bmMgKm91dHB1dF90 ZiwKIH0KIAogc3RhdGljIGJvb2wKLWRjZTExMF9zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMoc3Ry dWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKK2RjZTExMF9zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMo c3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAkJCQljb25zdCBzdHJ1 Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pCiB7CiAJc3RydWN0IHRyYW5zZm9ybSAqeGZtID0g cGlwZV9jdHgtPnBsYW5lX3Jlcy54Zm07CkBAIC0xMzU4LDcgKzEzNjAsNyBAQCBzdGF0aWMgZW51 bSBkY19zdGF0dXMgYXBwbHlfc2luZ2xlX2NvbnRyb2xsZXJfY3R4X3RvX2h3KAogCQlkYy0+aHdz cy5lbmFibGVfc3RyZWFtX3RpbWluZyhwaXBlX2N0eCwgY29udGV4dCwgZGMpOwogCiAJaWYgKGRj LT5od3NzLnNldHVwX3Z1cGRhdGVfaW50ZXJydXB0KQotCQlkYy0+aHdzcy5zZXR1cF92dXBkYXRl X2ludGVycnVwdChwaXBlX2N0eCk7CisJCWRjLT5od3NzLnNldHVwX3Z1cGRhdGVfaW50ZXJydXB0 KGRjLCBwaXBlX2N0eCk7CiAKIAlwYXJhbXMudmVydGljYWxfdG90YWxfbWluID0gc3RyZWFtLT5h ZGp1c3Qudl90b3RhbF9taW47CiAJcGFyYW1zLnZlcnRpY2FsX3RvdGFsX21heCA9IHN0cmVhbS0+ YWRqdXN0LnZfdG90YWxfbWF4OwpAQCAtMjUwMSwxMCArMjUwMywxMCBAQCBzdGF0aWMgdm9pZCBk Y2UxMTBfcHJvZ3JhbV9mcm9udF9lbmRfZm9yX3BpcGUoCiAJaWYgKHBpcGVfY3R4LT5wbGFuZV9z dGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuZnVsbF91cGRhdGUgfHwKIAkJCXBpcGVfY3R4LT5wbGFu ZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuaW5fdHJhbnNmZXJfZnVuY19jaGFuZ2UgfHwKIAkJ CXBpcGVfY3R4LT5wbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuZ2FtbWFfY2hhbmdlKQot CQlkYy0+aHdzcy5zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYyhwaXBlX2N0eCwgcGlwZV9jdHgtPnBs YW5lX3N0YXRlKTsKKwkJZGMtPmh3c3Muc2V0X2lucHV0X3RyYW5zZmVyX2Z1bmMoZGMsIHBpcGVf Y3R4LCBwaXBlX2N0eC0+cGxhbmVfc3RhdGUpOwogCiAJaWYgKHBpcGVfY3R4LT5wbGFuZV9zdGF0 ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuZnVsbF91cGRhdGUpCi0JCWRjLT5od3NzLnNldF9vdXRwdXRf dHJhbnNmZXJfZnVuYyhwaXBlX2N0eCwgcGlwZV9jdHgtPnN0cmVhbSk7CisJCWRjLT5od3NzLnNl dF9vdXRwdXRfdHJhbnNmZXJfZnVuYyhkYywgcGlwZV9jdHgsIHBpcGVfY3R4LT5zdHJlYW0pOwog CiAJRENfTE9HX1NVUkZBQ0UoCiAJCQkiUGlwZTolZCAlcDogYWRkciBoaToweCV4LCAiCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9od19z ZXF1ZW5jZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY2UxMTAvZGNlMTEw X2h3X3NlcXVlbmNlci5oCmluZGV4IDJmOWI3ZGJkZjQxNS4uYzYzOWUxNjgwYjdiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTExMF9od19zZXF1 ZW5jZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNlMTEwL2RjZTEx MF9od19zZXF1ZW5jZXIuaApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSAiY29yZV90eXBl cy5oIgogCi0jZGVmaW5lIEdBTU1BX0hXX1BPSU5UU19OVU0gMjU2CiBzdHJ1Y3QgZGM7CiBzdHJ1 Y3QgZGNfc3RhdGU7CiBzdHJ1Y3QgZG1fcHBfZGlzcGxheV9jb25maWd1cmF0aW9uOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL01ha2VmaWxlIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL01ha2VmaWxlCmluZGV4IDAzMmY4NzJi ZTg5Yy4uNjJhZDFhMTFiZmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvZGNuMTAvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2RjbjEwL01ha2VmaWxlCkBAIC0yMiw3ICsyMiw4IEBACiAjCiAjIE1ha2VmaWxlIGZvciBEQ04u CiAKLURDTjEwID0gZGNuMTBfcmVzb3VyY2UubyBkY24xMF9pcHAubyBkY24xMF9od19zZXF1ZW5j ZXIubyBkY24xMF9od19zZXF1ZW5jZXJfZGVidWcubyBcCitEQ04xMCA9IGRjbjEwX2luaXQubyBk Y24xMF9yZXNvdXJjZS5vIGRjbjEwX2lwcC5vIGRjbjEwX2h3X3NlcXVlbmNlci5vIFwKKwkJZGNu MTBfaHdfc2VxdWVuY2VyX2RlYnVnLm8gXAogCQlkY24xMF9kcHAubyBkY24xMF9vcHAubyBkY24x MF9vcHRjLm8gXAogCQlkY24xMF9odWJwLm8gZGNuMTBfbXBjLm8gXAogCQlkY24xMF9kcHBfZHNj bC5vIGRjbjEwX2RwcF9jbS5vIGRjbjEwX2NtX2NvbW1vbi5vIFwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuYwpp bmRleCBmMjFhMzg1YTkzNmYuLjI1MWJiNTljMjcxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVlbmNlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuYwpAQCAt MjUsMTcgKzI1LDE4IEBACiAKICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgogI2luY2x1ZGUgImRt X3NlcnZpY2VzLmgiCisjaW5jbHVkZSAiYmFzaWNzL2RjX2NvbW1vbi5oIgogI2luY2x1ZGUgImNv cmVfdHlwZXMuaCIKICNpbmNsdWRlICJyZXNvdXJjZS5oIgogI2luY2x1ZGUgImN1c3RvbV9mbG9h dC5oIgogI2luY2x1ZGUgImRjbjEwX2h3X3NlcXVlbmNlci5oIgotI2luY2x1ZGUgImRjZTExMC9k Y2UxMTBfaHdfc2VxdWVuY2VyLmgiCisjaW5jbHVkZSAiZGNuMTBfaHdfc2VxdWVuY2VyX2RlYnVn LmgiCiAjaW5jbHVkZSAiZGNlL2RjZV9od3NlcS5oIgogI2luY2x1ZGUgImFibS5oIgogI2luY2x1 ZGUgImRtY3UuaCIKICNpbmNsdWRlICJkY24xMF9vcHRjLmgiCi0jaW5jbHVkZSAiZGNuMTAvZGNu MTBfZHBwLmgiCi0jaW5jbHVkZSAiZGNuMTAvZGNuMTBfbXBjLmgiCisjaW5jbHVkZSAiZGNuMTBf ZHBwLmgiCisjaW5jbHVkZSAiZGNuMTBfbXBjLmgiCiAjaW5jbHVkZSAidGltaW5nX2dlbmVyYXRv ci5oIgogI2luY2x1ZGUgIm9wcC5oIgogI2luY2x1ZGUgImlwcC5oIgpAQCAtNjYsNiArNjcsOCBA QAogI2RlZmluZSBEVE5fSU5GT19NSUNST19TRUMocmVmX2N5Y2xlKSBcCiAJcHJpbnRfbWljcm9z ZWMoZGNfY3R4LCBsb2dfY3R4LCByZWZfY3ljbGUpCiAKKyNkZWZpbmUgR0FNTUFfSFdfUE9JTlRT X05VTSAyNTYKKwogdm9pZCBwcmludF9taWNyb3NlYyhzdHJ1Y3QgZGNfY29udGV4dCAqZGNfY3R4 LAogCXN0cnVjdCBkY19sb2dfYnVmZmVyX2N0eCAqbG9nX2N0eCwKIAl1aW50MzJfdCByZWZfY3lj bGUpCkBAIC03OSw2ICs4MiwzMyBAQCB2b2lkIHByaW50X21pY3Jvc2VjKHN0cnVjdCBkY19jb250 ZXh0ICpkY19jdHgsCiAJCQl1c194MTAgJSBmcmFjKTsKIH0KIAorc3RhdGljIHZvaWQgZGNuMTBf bG9ja19hbGxfcGlwZXMoc3RydWN0IGRjICpkYywKKwlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQs CisJYm9vbCBsb2NrKQoreworCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHg7CisJc3RydWN0IHRp bWluZ19nZW5lcmF0b3IgKnRnOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IGRjLT5yZXNf cG9vbC0+cGlwZV9jb3VudDsgaSsrKSB7CisJCXBpcGVfY3R4ID0gJmNvbnRleHQtPnJlc19jdHgu cGlwZV9jdHhbaV07CisJCXRnID0gcGlwZV9jdHgtPnN0cmVhbV9yZXMudGc7CisJCS8qCisJCSAq IE9ubHkgbG9jayB0aGUgdG9wIHBpcGUncyB0ZyB0byBwcmV2ZW50IHJlZHVuZGFudAorCQkgKiAo dW4pbG9ja2luZy4gQWxzbyBza2lwIGlmIHBpcGUgaXMgZGlzYWJsZWQuCisJCSAqLworCQlpZiAo cGlwZV9jdHgtPnRvcF9waXBlIHx8CisJCSAgICAhcGlwZV9jdHgtPnN0cmVhbSB8fCAhcGlwZV9j dHgtPnBsYW5lX3N0YXRlIHx8CisJCSAgICAhdGctPmZ1bmNzLT5pc190Z19lbmFibGVkKHRnKSkK KwkJCWNvbnRpbnVlOworCisJCWlmIChsb2NrKQorCQkJdGctPmZ1bmNzLT5sb2NrKHRnKTsKKwkJ ZWxzZQorCQkJdGctPmZ1bmNzLT51bmxvY2sodGcpOworCX0KK30KKwogc3RhdGljIHZvaWQgbG9n X21wY19jcmMoc3RydWN0IGRjICpkYywKIAlzdHJ1Y3QgZGNfbG9nX2J1ZmZlcl9jdHggKmxvZ19j dHgpCiB7CkBAIC00NDUsNyArNDc1LDcgQEAgYm9vbCBkY24xMF9kaWRfdW5kZXJmbG93X29jY3Vy KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiAJcmV0dXJuIGZhbHNl OwogfQogCi1zdGF0aWMgdm9pZCBkY24xMF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAordm9p ZCBkY24xMF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAogCXN0cnVjdCBkY2VfaHdzZXEgKmh3 cywKIAlib29sIGVuYWJsZSkKIHsKQEAgLTQ2Nyw3ICs0OTcsNyBAQCBzdGF0aWMgdm9pZCBkY24x MF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAogCVJFR19VUERBVEUoRE9NQUlON19QR19DT05G SUcsIERPTUFJTjdfUE9XRVJfRk9SQ0VPTiwgZm9yY2Vfb24pOwogfQogCi1zdGF0aWMgdm9pZCBk Y24xMF9kaXNhYmxlX3ZnYSgKK3ZvaWQgZGNuMTBfZGlzYWJsZV92Z2EoCiAJc3RydWN0IGRjZV9o d3NlcSAqaHdzKQogewogCXVuc2lnbmVkIGludCBpbl92Z2ExX21vZGUgPSAwOwpAQCAtNTAwLDcg KzUzMCw3IEBAIHN0YXRpYyB2b2lkIGRjbjEwX2Rpc2FibGVfdmdhKAogCVJFR19VUERBVEUoVkdB X1RFU1RfQ09OVFJPTCwgVkdBX1RFU1RfUkVOREVSX1NUQVJULCAxKTsKIH0KIAotc3RhdGljIHZv aWQgZGNuMTBfZHBwX3BnX2NvbnRyb2woCit2b2lkIGRjbjEwX2RwcF9wZ19jb250cm9sKAogCQlz dHJ1Y3QgZGNlX2h3c2VxICpod3MsCiAJCXVuc2lnbmVkIGludCBkcHBfaW5zdCwKIAkJYm9vbCBw b3dlcl9vbikKQEAgLTU1Miw3ICs1ODIsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9kcHBfcGdfY29u dHJvbCgKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjEwX2h1YnBfcGdfY29udHJvbCgKK3ZvaWQg ZGNuMTBfaHVicF9wZ19jb250cm9sKAogCQlzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCiAJCXVuc2ln bmVkIGludCBodWJwX2luc3QsCiAJCWJvb2wgcG93ZXJfb24pCkBAIC02NzEsNyArNzAxLDcgQEAg c3RhdGljIHZvaWQgYXBwbHlfREVHVklEQ04xMF8yNTNfd2Eoc3RydWN0IGRjICpkYykKIAlod3Mt PndhX3N0YXRlLkRFR1ZJRENOMTBfMjUzX2FwcGxpZWQgPSB0cnVlOwogfQogCi1zdGF0aWMgdm9p ZCBkY24xMF9iaW9zX2dvbGRlbl9pbml0KHN0cnVjdCBkYyAqZGMpCit2b2lkIGRjbjEwX2Jpb3Nf Z29sZGVuX2luaXQoc3RydWN0IGRjICpkYykKIHsKIAlzdHJ1Y3QgZGNfYmlvcyAqYnAgPSBkYy0+ Y3R4LT5kY19iaW9zOwogCWludCBpOwpAQCAtNzM3LDcgKzc2Nyw3IEBAIHN0YXRpYyB2b2lkIGZh bHNlX29wdGNfdW5kZXJmbG93X3dhKAogCQl0Zy0+ZnVuY3MtPmNsZWFyX29wdGNfdW5kZXJmbG93 KHRnKTsKIH0KIAotc3RhdGljIGVudW0gZGNfc3RhdHVzIGRjbjEwX2VuYWJsZV9zdHJlYW1fdGlt aW5nKAorZW51bSBkY19zdGF0dXMgZGNuMTBfZW5hYmxlX3N0cmVhbV90aW1pbmcoCiAJCXN0cnVj dCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKIAkJc3Ry dWN0IGRjICpkYykKQEAgLTk4Myw3ICsxMDEzLDcgQEAgdm9pZCBkY24xMF92ZXJpZnlfYWxsb3df cHN0YXRlX2NoYW5nZV9oaWdoKHN0cnVjdCBkYyAqZGMpCiB9CiAKIC8qIHRyaWdnZXIgSFcgdG8g c3RhcnQgZGlzY29ubmVjdCBwbGFuZSBmcm9tIHN0cmVhbSBvbiB0aGUgbmV4dCB2c3luYyAqLwot dm9pZCBod3NzMV9wbGFuZV9hdG9taWNfZGlzY29ubmVjdChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3Qg cGlwZV9jdHggKnBpcGVfY3R4KQordm9pZCBkY24xMF9wbGFuZV9hdG9taWNfZGlzY29ubmVjdChz dHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogCXN0cnVjdCBodWJw ICpodWJwID0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwOwogCWludCBkcHBfaWQgPSBwaXBlX2N0 eC0+cGxhbmVfcmVzLmRwcC0+aW5zdDsKQEAgLTEwMDksMTAgKzEwMzksMTAgQEAgdm9pZCBod3Nz MV9wbGFuZV9hdG9taWNfZGlzY29ubmVjdChzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHgg KnBpcGVfY3R4KQogCQlodWJwLT5mdW5jcy0+aHVicF9kaXNjb25uZWN0KGh1YnApOwogCiAJaWYg KGRjLT5kZWJ1Zy5zYW5pdHlfY2hlY2tzKQotCQlkY24xMF92ZXJpZnlfYWxsb3dfcHN0YXRlX2No YW5nZV9oaWdoKGRjKTsKKwkJZGMtPmh3c3MudmVyaWZ5X2FsbG93X3BzdGF0ZV9jaGFuZ2VfaGln aChkYyk7CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjEwX3BsYW5lX2F0b21pY19wb3dlcl9kb3duKHN0 cnVjdCBkYyAqZGMsCit2b2lkIGRjbjEwX3BsYW5lX2F0b21pY19wb3dlcl9kb3duKHN0cnVjdCBk YyAqZGMsCiAJCXN0cnVjdCBkcHAgKmRwcCwKIAkJc3RydWN0IGh1YnAgKmh1YnApCiB7CkBAIC0x MDM1LDcgKzEwNjUsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9wbGFuZV9hdG9taWNfcG93ZXJfZG93 bihzdHJ1Y3QgZGMgKmRjLAogLyogZGlzYWJsZSBIVyB1c2VkIGJ5IHBsYW5lLgogICogbm90ZTog IGNhbm5vdCBkaXNhYmxlIHVudGlsIGRpc2Nvbm5lY3QgaXMgY29tcGxldGUKICAqLwotc3RhdGlj IHZvaWQgZGNuMTBfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRjICpkYywgc3RydWN0IHBp cGVfY3R4ICpwaXBlX2N0eCkKK3ZvaWQgZGNuMTBfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0 IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgaHVicCAqaHVi cCA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicDsKIAlzdHJ1Y3QgZHBwICpkcHAgPSBwaXBlX2N0 eC0+cGxhbmVfcmVzLmRwcDsKQEAgLTEwNjcsNyArMTA5Nyw3IEBAIHN0YXRpYyB2b2lkIGRjbjEw X3BsYW5lX2F0b21pY19kaXNhYmxlKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlw ZV9jdHgpCiAJcGlwZV9jdHgtPnBsYW5lX3N0YXRlID0gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQg ZGNuMTBfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVf Y3R4KQordm9pZCBkY24xMF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBl X2N0eCAqcGlwZV9jdHgpCiB7CiAJRENfTE9HR0VSX0lOSVQoZGMtPmN0eC0+bG9nZ2VyKTsKIApA QCAtMTA4Miw3ICsxMTEyLDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfZGlzYWJsZV9wbGFuZShzdHJ1 Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCQkJCQlwaXBlX2N0eC0+cGlw ZV9pZHgpOwogfQogCi1zdGF0aWMgdm9pZCBkY24xMF9pbml0X3BpcGVzKHN0cnVjdCBkYyAqZGMs IHN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCkKK3ZvaWQgZGNuMTBfaW5pdF9waXBlcyhzdHJ1Y3Qg ZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpCiB7CiAJaW50IGk7CiAJYm9vbCBjYW5f YXBwbHlfc2VhbWxlc3NfYm9vdCA9IGZhbHNlOwpAQCAtMTE4MSw3ICsxMjExLDcgQEAgc3RhdGlj IHZvaWQgZGNuMTBfaW5pdF9waXBlcyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfc3RhdGUgKmNv bnRleHQpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBkY24xMF9pbml0X2h3KHN0cnVjdCBkYyAqZGMp Cit2b2lkIGRjbjEwX2luaXRfaHcoc3RydWN0IGRjICpkYykKIHsKIAlpbnQgaTsKIAlzdHJ1Y3Qg YWJtICphYm0gPSBkYy0+cmVzX3Bvb2wtPmFibTsKQEAgLTEzMTMsNyArMTM0Myw3IEBAIHN0YXRp YyB2b2lkIGRjbjEwX2luaXRfaHcoc3RydWN0IGRjICpkYykKIAogfQogCi1zdGF0aWMgdm9pZCBk Y24xMF9yZXNldF9od19jdHhfd3JhcCgKK3ZvaWQgZGNuMTBfcmVzZXRfaHdfY3R4X3dyYXAoCiAJ CXN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCkKIHsKQEAgLTEzNzAs OSArMTQwMCw3IEBAIHN0YXRpYyBib29sIHBhdGNoX2FkZHJlc3NfZm9yX3Nic190Yl9zdGVyZW8o CiAJcmV0dXJuIGZhbHNlOwogfQogCi0KLQotc3RhdGljIHZvaWQgZGNuMTBfdXBkYXRlX3BsYW5l X2FkZHIoY29uc3Qgc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKK3Zv aWQgZGNuMTBfdXBkYXRlX3BsYW5lX2FkZHIoY29uc3Qgc3RydWN0IGRjICpkYywgc3RydWN0IHBp cGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlib29sIGFkZHJfcGF0Y2hlZCA9IGZhbHNlOwogCVBIWVNJ Q0FMX0FERFJFU1NfTE9DIGFkZHI7CkBAIC0xMzk3LDggKzE0MjUsOCBAQCBzdGF0aWMgdm9pZCBk Y24xMF91cGRhdGVfcGxhbmVfYWRkcihjb25zdCBzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9j dHggKnBpcGVfYwogCQlwaXBlX2N0eC0+cGxhbmVfc3RhdGUtPmFkZHJlc3MuZ3JwaF9zdGVyZW8u bGVmdF9hZGRyID0gYWRkcjsKIH0KIAotc3RhdGljIGJvb2wgZGNuMTBfc2V0X2lucHV0X3RyYW5z ZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKLQkJCQkJICBjb25zdCBzdHJ1Y3Qg ZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQorYm9vbCBkY24xMF9zZXRfaW5wdXRfdHJhbnNm ZXJfZnVuYyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorCQkJY29u c3Qgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHBwICpk cHBfYmFzZSA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuZHBwOwogCWNvbnN0IHN0cnVjdCBkY190cmFu c2Zlcl9mdW5jICp0ZiA9IE5VTEw7CkBAIC0xNDc1LDkgKzE1MDMsOCBAQCBzdGF0aWMgdm9pZCBs b2dfdGYoc3RydWN0IGRjX2NvbnRleHQgKmN0eCwKIAl9CiB9CiAKLXN0YXRpYyBib29sCi1kY24x MF9zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKLQkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pCitib29sIGRjbjEw X3NldF9vdXRwdXRfdHJhbnNmZXJfZnVuYyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHgg KnBpcGVfY3R4LAorCQkJCWNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSkKIHsK IAlzdHJ1Y3QgZHBwICpkcHAgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLmRwcDsKIApAQCAtMTUxMyw3 ICsxNTQwLDcgQEAgZGNuMTBfc2V0X291dHB1dF90cmFuc2Zlcl9mdW5jKHN0cnVjdCBwaXBlX2N0 eCAqcGlwZV9jdHgsCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjEwX3BpcGVf Y29udHJvbF9sb2NrKAordm9pZCBkY24xMF9waXBlX2NvbnRyb2xfbG9jaygKIAlzdHJ1Y3QgZGMg KmRjLAogCXN0cnVjdCBwaXBlX2N0eCAqcGlwZSwKIAlib29sIGxvY2spCkBAIC0xNTI1LDcgKzE1 NTIsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9waXBlX2NvbnRyb2xfbG9jaygKIAkJcmV0dXJuOwog CiAJaWYgKGRjLT5kZWJ1Zy5zYW5pdHlfY2hlY2tzKQotCQlkY24xMF92ZXJpZnlfYWxsb3dfcHN0 YXRlX2NoYW5nZV9oaWdoKGRjKTsKKwkJZGMtPmh3c3MudmVyaWZ5X2FsbG93X3BzdGF0ZV9jaGFu Z2VfaGlnaChkYyk7CiAKIAlpZiAobG9jaykKIAkJcGlwZS0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3Mt PmxvY2socGlwZS0+c3RyZWFtX3Jlcy50Zyk7CkBAIC0xNTMzLDcgKzE1NjAsNyBAQCBzdGF0aWMg dm9pZCBkY24xMF9waXBlX2NvbnRyb2xfbG9jaygKIAkJcGlwZS0+c3RyZWFtX3Jlcy50Zy0+ZnVu Y3MtPnVubG9jayhwaXBlLT5zdHJlYW1fcmVzLnRnKTsKIAogCWlmIChkYy0+ZGVidWcuc2FuaXR5 X2NoZWNrcykKLQkJZGNuMTBfdmVyaWZ5X2FsbG93X3BzdGF0ZV9jaGFuZ2VfaGlnaChkYyk7CisJ CWRjLT5od3NzLnZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goZGMpOwogfQogCiBzdGF0 aWMgYm9vbCB3YWl0X2Zvcl9yZXNldF90cmlnZ2VyX3RvX29jY3VyKApAQCAtMTU3Myw3ICsxNjAw LDcgQEAgc3RhdGljIGJvb2wgd2FpdF9mb3JfcmVzZXRfdHJpZ2dlcl90b19vY2N1cigKIAlyZXR1 cm4gcmM7CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjEwX2VuYWJsZV90aW1pbmdfc3luY2hyb25pemF0 aW9uKAordm9pZCBkY24xMF9lbmFibGVfdGltaW5nX3N5bmNocm9uaXphdGlvbigKIAlzdHJ1Y3Qg ZGMgKmRjLAogCWludCBncm91cF9pbmRleCwKIAlpbnQgZ3JvdXBfc2l6ZSwKQEAgLTE2MDMsNyAr MTYzMCw3IEBAIHN0YXRpYyB2b2lkIGRjbjEwX2VuYWJsZV90aW1pbmdfc3luY2hyb25pemF0aW9u KAogCURDX1NZTkNfSU5GTygiU3luYyBjb21wbGV0ZVxuIik7CiB9CiAKLXN0YXRpYyB2b2lkIGRj bjEwX2VuYWJsZV9wZXJfZnJhbWVfY3J0Y19wb3NpdGlvbl9yZXNldCgKK3ZvaWQgZGNuMTBfZW5h YmxlX3Blcl9mcmFtZV9jcnRjX3Bvc2l0aW9uX3Jlc2V0KAogCXN0cnVjdCBkYyAqZGMsCiAJaW50 IGdyb3VwX3NpemUsCiAJc3RydWN0IHBpcGVfY3R4ICpncm91cGVkX3BpcGVzW10pCkBAIC0xODQx LDcgKzE4NjgsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9lbmFibGVfcGxhbmUoCiAJc3RydWN0IGRj ZV9od3NlcSAqaHdzID0gZGMtPmh3c2VxOwogCiAJaWYgKGRjLT5kZWJ1Zy5zYW5pdHlfY2hlY2tz KSB7Ci0JCWRjbjEwX3ZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goZGMpOworCQlkYy0+ aHdzcy52ZXJpZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoKGRjKTsKIAl9CiAKIAl1bmRvX0RF R1ZJRENOMTBfMjUzX3dhKGRjKTsKQEAgLTE4OTgsMTEgKzE5MjUsMTEgQEAgc3RhdGljIHZvaWQg ZGNuMTBfZW5hYmxlX3BsYW5lKAogCQlkY24xMF9wcm9ncmFtX3B0ZV92bShod3MsIHBpcGVfY3R4 LT5wbGFuZV9yZXMuaHVicCk7CiAKIAlpZiAoZGMtPmRlYnVnLnNhbml0eV9jaGVja3MpIHsKLQkJ ZGNuMTBfdmVyaWZ5X2FsbG93X3BzdGF0ZV9jaGFuZ2VfaGlnaChkYyk7CisJCWRjLT5od3NzLnZl cmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goZGMpOwogCX0KIH0KIAotc3RhdGljIHZvaWQg ZGNuMTBfcHJvZ3JhbV9nYW11dF9yZW1hcChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQordm9p ZCBkY24xMF9wcm9ncmFtX2dhbXV0X3JlbWFwKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiB7 CiAJaW50IGkgPSAwOwogCXN0cnVjdCBkcHBfZ3JwaF9jc2NfYWRqdXN0bWVudCBhZGp1c3Q7CkBA IC0xOTUwLDcgKzE5NzcsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9zZXRfY3NjX2FkanVzdG1lbnRf cmdiX21wb19maXgoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgdWludAogCW1hdHJpeFsxMV0g PSByZ2JfYmlhczsKIH0KIAotc3RhdGljIHZvaWQgZGNuMTBfcHJvZ3JhbV9vdXRwdXRfY3NjKHN0 cnVjdCBkYyAqZGMsCit2b2lkIGRjbjEwX3Byb2dyYW1fb3V0cHV0X2NzYyhzdHJ1Y3QgZGMgKmRj LAogCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCQllbnVtIGRjX2NvbG9yX3NwYWNlIGNv bG9yc3BhY2UsCiAJCXVpbnQxNl90ICptYXRyaXgsCkBAIC0xOTgyLDU3ICsyMDA5LDYgQEAgc3Rh dGljIHZvaWQgZGNuMTBfcHJvZ3JhbV9vdXRwdXRfY3NjKHN0cnVjdCBkYyAqZGMsCiAJfQogfQog Ci1ib29sIGlzX2xvd2VyX3BpcGVfdHJlZV92aXNpYmxlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9j dHgpCi17Ci0JaWYgKHBpcGVfY3R4LT5wbGFuZV9zdGF0ZSAmJiBwaXBlX2N0eC0+cGxhbmVfc3Rh dGUtPnZpc2libGUpCi0JCXJldHVybiB0cnVlOwotCWlmIChwaXBlX2N0eC0+Ym90dG9tX3BpcGUg JiYgaXNfbG93ZXJfcGlwZV90cmVlX3Zpc2libGUocGlwZV9jdHgtPmJvdHRvbV9waXBlKSkKLQkJ cmV0dXJuIHRydWU7Ci0JcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIGlzX3VwcGVyX3BpcGVfdHJl ZV92aXNpYmxlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCi17Ci0JaWYgKHBpcGVfY3R4LT5w bGFuZV9zdGF0ZSAmJiBwaXBlX2N0eC0+cGxhbmVfc3RhdGUtPnZpc2libGUpCi0JCXJldHVybiB0 cnVlOwotCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUgJiYgaXNfdXBwZXJfcGlwZV90cmVlX3Zpc2li bGUocGlwZV9jdHgtPnRvcF9waXBlKSkKLQkJcmV0dXJuIHRydWU7Ci0JcmV0dXJuIGZhbHNlOwot fQotCi1ib29sIGlzX3BpcGVfdHJlZV92aXNpYmxlKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgp Ci17Ci0JaWYgKHBpcGVfY3R4LT5wbGFuZV9zdGF0ZSAmJiBwaXBlX2N0eC0+cGxhbmVfc3RhdGUt PnZpc2libGUpCi0JCXJldHVybiB0cnVlOwotCWlmIChwaXBlX2N0eC0+dG9wX3BpcGUgJiYgaXNf dXBwZXJfcGlwZV90cmVlX3Zpc2libGUocGlwZV9jdHgtPnRvcF9waXBlKSkKLQkJcmV0dXJuIHRy dWU7Ci0JaWYgKHBpcGVfY3R4LT5ib3R0b21fcGlwZSAmJiBpc19sb3dlcl9waXBlX3RyZWVfdmlz aWJsZShwaXBlX2N0eC0+Ym90dG9tX3BpcGUpKQotCQlyZXR1cm4gdHJ1ZTsKLQlyZXR1cm4gZmFs c2U7Ci19Ci0KLWJvb2wgaXNfcmdiX2NzcGFjZShlbnVtIGRjX2NvbG9yX3NwYWNlIG91dHB1dF9j b2xvcl9zcGFjZSkKLXsKLQlzd2l0Y2ggKG91dHB1dF9jb2xvcl9zcGFjZSkgewotCWNhc2UgQ09M T1JfU1BBQ0VfU1JHQjoKLQljYXNlIENPTE9SX1NQQUNFX1NSR0JfTElNSVRFRDoKLQljYXNlIENP TE9SX1NQQUNFXzIwMjBfUkdCX0ZVTExSQU5HRToKLQljYXNlIENPTE9SX1NQQUNFXzIwMjBfUkdC X0xJTUlURURSQU5HRToKLQljYXNlIENPTE9SX1NQQUNFX0FET0JFUkdCOgotCQlyZXR1cm4gdHJ1 ZTsKLQljYXNlIENPTE9SX1NQQUNFX1lDQkNSNjAxOgotCWNhc2UgQ09MT1JfU1BBQ0VfWUNCQ1I3 MDk6Ci0JY2FzZSBDT0xPUl9TUEFDRV9ZQ0JDUjYwMV9MSU1JVEVEOgotCWNhc2UgQ09MT1JfU1BB Q0VfWUNCQ1I3MDlfTElNSVRFRDoKLQljYXNlIENPTE9SX1NQQUNFXzIwMjBfWUNCQ1I6Ci0JCXJl dHVybiBmYWxzZTsKLQlkZWZhdWx0OgotCQkvKiBBZGQgYSBjYXNlIHRvIHN3aXRjaCAqLwotCQlC UkVBS19UT19ERUJVR0dFUigpOwotCQlyZXR1cm4gZmFsc2U7Ci0JfQotfQotCiB2b2lkIGRjbjEw X2dldF9zdXJmYWNlX3Zpc3VhbF9jb25maXJtX2NvbG9yKAogCQljb25zdCBzdHJ1Y3QgcGlwZV9j dHggKnBpcGVfY3R4LAogCQlzdHJ1Y3QgdGdfY29sb3IgKmNvbG9yKQpAQCAtMjEwNiw3MCArMjA4 Miw3IEBAIHZvaWQgZGNuMTBfZ2V0X2hkcl92aXN1YWxfY29uZmlybV9jb2xvcigKIAl9CiB9CiAK LXN0YXRpYyB1aW50MTZfdCBmaXhlZF9wb2ludF90b19pbnRfZnJhYygKLQlzdHJ1Y3QgZml4ZWQz MV8zMiBhcmcsCi0JdWludDhfdCBpbnRlZ2VyX2JpdHMsCi0JdWludDhfdCBmcmFjdGlvbmFsX2Jp dHMpCi17Ci0JaW50MzJfdCBudW1lcmF0b3I7Ci0JaW50MzJfdCBkaXZpc29yID0gMSA8PCBmcmFj dGlvbmFsX2JpdHM7Ci0KLQl1aW50MTZfdCByZXN1bHQ7Ci0KLQl1aW50MTZfdCBkID0gKHVpbnQx Nl90KWRjX2ZpeHB0X2Zsb29yKAotCQlkY19maXhwdF9hYnMoCi0JCQlhcmcpKTsKLQotCWlmIChk IDw9ICh1aW50MTZfdCkoMSA8PCBpbnRlZ2VyX2JpdHMpIC0gKDEgLyAodWludDE2X3QpZGl2aXNv cikpCi0JCW51bWVyYXRvciA9ICh1aW50MTZfdClkY19maXhwdF9mbG9vcigKLQkJCWRjX2ZpeHB0 X211bF9pbnQoCi0JCQkJYXJnLAotCQkJCWRpdmlzb3IpKTsKLQllbHNlIHsKLQkJbnVtZXJhdG9y ID0gZGNfZml4cHRfZmxvb3IoCi0JCQlkY19maXhwdF9zdWIoCi0JCQkJZGNfZml4cHRfZnJvbV9p bnQoCi0JCQkJCTFMTCA8PCBpbnRlZ2VyX2JpdHMpLAotCQkJCWRjX2ZpeHB0X3JlY2lwKAotCQkJ CQlkY19maXhwdF9mcm9tX2ludCgKLQkJCQkJCWRpdmlzb3IpKSkpOwotCX0KLQotCWlmIChudW1l cmF0b3IgPj0gMCkKLQkJcmVzdWx0ID0gKHVpbnQxNl90KW51bWVyYXRvcjsKLQllbHNlCi0JCXJl c3VsdCA9ICh1aW50MTZfdCkoCi0JCSgxIDw8IChpbnRlZ2VyX2JpdHMgKyBmcmFjdGlvbmFsX2Jp dHMgKyAxKSkgKyBudW1lcmF0b3IpOwotCi0JaWYgKChyZXN1bHQgIT0gMCkgJiYgZGNfZml4cHRf bHQoCi0JCWFyZywgZGNfZml4cHRfemVybykpCi0JCXJlc3VsdCB8PSAxIDw8IChpbnRlZ2VyX2Jp dHMgKyBmcmFjdGlvbmFsX2JpdHMpOwotCi0JcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBkY24x MF9idWlsZF9wcmVzY2FsZV9wYXJhbXMoc3RydWN0ICBkY19iaWFzX2FuZF9zY2FsZSAqYmlhc19h bmRfc2NhbGUsCi0JCWNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCi17 Ci0JaWYgKHBsYW5lX3N0YXRlLT5mb3JtYXQgPj0gU1VSRkFDRV9QSVhFTF9GT1JNQVRfVklERU9f QkVHSU4KLQkJCSYmIHBsYW5lX3N0YXRlLT5mb3JtYXQgIT0gU1VSRkFDRV9QSVhFTF9GT1JNQVRf SU5WQUxJRAotCQkJJiYgcGxhbmVfc3RhdGUtPmlucHV0X2NzY19jb2xvcl9tYXRyaXguZW5hYmxl X2FkanVzdG1lbnQKLQkJCSYmIHBsYW5lX3N0YXRlLT5jb2VmZl9yZWR1Y3Rpb25fZmFjdG9yLnZh bHVlICE9IDApIHsKLQkJYmlhc19hbmRfc2NhbGUtPnNjYWxlX2JsdWUgPSBmaXhlZF9wb2ludF90 b19pbnRfZnJhYygKLQkJCWRjX2ZpeHB0X211bChwbGFuZV9zdGF0ZS0+Y29lZmZfcmVkdWN0aW9u X2ZhY3RvciwKLQkJCQkJZGNfZml4cHRfZnJvbV9mcmFjdGlvbigyNTYsIDI1NSkpLAotCQkJCTIs Ci0JCQkJMTMpOwotCQliaWFzX2FuZF9zY2FsZS0+c2NhbGVfcmVkID0gYmlhc19hbmRfc2NhbGUt PnNjYWxlX2JsdWU7Ci0JCWJpYXNfYW5kX3NjYWxlLT5zY2FsZV9ncmVlbiA9IGJpYXNfYW5kX3Nj YWxlLT5zY2FsZV9ibHVlOwotCX0gZWxzZSB7Ci0JCWJpYXNfYW5kX3NjYWxlLT5zY2FsZV9ibHVl ID0gMHgyMDAwOwotCQliaWFzX2FuZF9zY2FsZS0+c2NhbGVfcmVkID0gMHgyMDAwOwotCQliaWFz X2FuZF9zY2FsZS0+c2NhbGVfZ3JlZW4gPSAweDIwMDA7Ci0JfQotfQotCi1zdGF0aWMgdm9pZCB1 cGRhdGVfZHBwKHN0cnVjdCBkcHAgKmRwcCwgc3RydWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSkKK3N0YXRpYyB2b2lkIGRjbjEwX3VwZGF0ZV9kcHAoc3RydWN0IGRwcCAqZHBwLCBzdHJ1 Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBkY19iaWFzX2FuZF9z Y2FsZSBibnNfcGFyYW1zID0gezB9OwogCkBAIC0yMTgyLDEyICsyMDk1LDEyIEBAIHN0YXRpYyB2 b2lkIHVwZGF0ZV9kcHAoc3RydWN0IGRwcCAqZHBwLCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKQogCQkJTlVMTCk7CiAKIAkvL3NldCBzY2FsZSBhbmQgYmlhcyByZWdpc3RlcnMK LQlkY24xMF9idWlsZF9wcmVzY2FsZV9wYXJhbXMoJmJuc19wYXJhbXMsIHBsYW5lX3N0YXRlKTsK KwlidWlsZF9wcmVzY2FsZV9wYXJhbXMoJmJuc19wYXJhbXMsIHBsYW5lX3N0YXRlKTsKIAlpZiAo ZHBwLT5mdW5jcy0+ZHBwX3Byb2dyYW1fYmlhc19hbmRfc2NhbGUpCiAJCWRwcC0+ZnVuY3MtPmRw cF9wcm9ncmFtX2JpYXNfYW5kX3NjYWxlKGRwcCwgJmJuc19wYXJhbXMpOwogfQogCi1zdGF0aWMg dm9pZCBkY24xMF91cGRhdGVfbXBjYyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBp cGVfY3R4KQordm9pZCBkY24xMF91cGRhdGVfbXBjYyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlw ZV9jdHggKnBpcGVfY3R4KQogewogCXN0cnVjdCBodWJwICpodWJwID0gcGlwZV9jdHgtPnBsYW5l X3Jlcy5odWJwOwogCXN0cnVjdCBtcGNjX2JsbmRfY2ZnIGJsbmRfY2ZnID0ge3swfX07CkBAIC0y MTk4LDEwICsyMTExLDEwIEBAIHN0YXRpYyB2b2lkIGRjbjEwX3VwZGF0ZV9tcGNjKHN0cnVjdCBk YyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiAJc3RydWN0IG1wY190cmVlICptcGNf dHJlZV9wYXJhbXMgPSAmKHBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcC0+bXBjX3RyZWVfcGFyYW1z KTsKIAogCWlmIChkYy0+ZGVidWcudmlzdWFsX2NvbmZpcm0gPT0gVklTVUFMX0NPTkZJUk1fSERS KSB7Ci0JCWRjbjEwX2dldF9oZHJfdmlzdWFsX2NvbmZpcm1fY29sb3IoCisJCWRjLT5od3NzLmdl dF9oZHJfdmlzdWFsX2NvbmZpcm1fY29sb3IoCiAJCQkJcGlwZV9jdHgsICZibG5kX2NmZy5ibGFj a19jb2xvcik7CiAJfSBlbHNlIGlmIChkYy0+ZGVidWcudmlzdWFsX2NvbmZpcm0gPT0gVklTVUFM X0NPTkZJUk1fU1VSRkFDRSkgewotCQlkY24xMF9nZXRfc3VyZmFjZV92aXN1YWxfY29uZmlybV9j b2xvcigKKwkJZGMtPmh3c3MuZ2V0X3N1cmZhY2VfdmlzdWFsX2NvbmZpcm1fY29sb3IoCiAJCQkJ cGlwZV9jdHgsICZibG5kX2NmZy5ibGFja19jb2xvcik7CiAJfSBlbHNlIHsKIAkJY29sb3Jfc3Bh Y2VfdG9fYmxhY2tfY29sb3IoCkBAIC0yMjgzLDcgKzIxOTYsNyBAQCBzdGF0aWMgdm9pZCB1cGRh dGVfc2NhbGVyKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiAJCQlwaXBlX2N0eC0+cGxhbmVf cmVzLmRwcCwgJnBpcGVfY3R4LT5wbGFuZV9yZXMuc2NsX2RhdGEpOwogfQogCi12b2lkIHVwZGF0 ZV9kY2h1YnBfZHBwKAorc3RhdGljIHZvaWQgZGNuMTBfdXBkYXRlX2RjaHVicF9kcHAoCiAJc3Ry dWN0IGRjICpkYywKIAlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCXN0cnVjdCBkY19zdGF0 ZSAqY29udGV4dCkKQEAgLTIzNDEsNyArMjI1NCw3IEBAIHZvaWQgdXBkYXRlX2RjaHVicF9kcHAo CiAKIAlpZiAocGxhbmVfc3RhdGUtPnVwZGF0ZV9mbGFncy5iaXRzLmZ1bGxfdXBkYXRlIHx8CiAJ CXBsYW5lX3N0YXRlLT51cGRhdGVfZmxhZ3MuYml0cy5icHBfY2hhbmdlKQotCQl1cGRhdGVfZHBw KGRwcCwgcGxhbmVfc3RhdGUpOworCQlkY24xMF91cGRhdGVfZHBwKGRwcCwgcGxhbmVfc3RhdGUp OwogCiAJaWYgKHBsYW5lX3N0YXRlLT51cGRhdGVfZmxhZ3MuYml0cy5mdWxsX3VwZGF0ZSB8fAog CQlwbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMucGVyX3BpeGVsX2FscGhhX2NoYW5nZSB8 fApAQCAtMjQxMiw3ICsyMzI1LDcgQEAgdm9pZCB1cGRhdGVfZGNodWJwX2RwcCgKIAkJaHVicC0+ ZnVuY3MtPnNldF9ibGFuayhodWJwLCBmYWxzZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjEwX2Js YW5rX3BpeGVsX2RhdGEoCit2b2lkIGRjbjEwX2JsYW5rX3BpeGVsX2RhdGEoCiAJCXN0cnVjdCBk YyAqZGMsCiAJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCWJvb2wgYmxhbmspCkBAIC0y NDU1LDcgKzIzNjgsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9ibGFua19waXhlbF9kYXRhKAogCX0K IH0KIAotdm9pZCBzZXRfaGRyX211bHRpcGxpZXIoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkK K3ZvaWQgZGNuMTBfc2V0X2hkcl9tdWx0aXBsaWVyKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgp CiB7CiAJc3RydWN0IGZpeGVkMzFfMzIgbXVsdGlwbGllciA9IHBpcGVfY3R4LT5wbGFuZV9zdGF0 ZS0+aGRyX211bHQ7CiAJdWludDMyX3QgaHdfbXVsdCA9IDB4MWYwMDA7IC8vIDEuMCBkZWZhdWx0 IG11bHRpcGxpZXIKQEAgLTI0ODUsMTQgKzIzOTgsMTQgQEAgdm9pZCBkY24xMF9wcm9ncmFtX3Bp cGUoCiAJaWYgKHBpcGVfY3R4LT5wbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuZnVsbF91 cGRhdGUpCiAJCWRjbjEwX2VuYWJsZV9wbGFuZShkYywgcGlwZV9jdHgsIGNvbnRleHQpOwogCi0J dXBkYXRlX2RjaHVicF9kcHAoZGMsIHBpcGVfY3R4LCBjb250ZXh0KTsKKwlkY24xMF91cGRhdGVf ZGNodWJwX2RwcChkYywgcGlwZV9jdHgsIGNvbnRleHQpOwogCi0Jc2V0X2hkcl9tdWx0aXBsaWVy KHBpcGVfY3R4KTsKKwlkYy0+aHdzcy5zZXRfaGRyX211bHRpcGxpZXIocGlwZV9jdHgpOwogCiAJ aWYgKHBpcGVfY3R4LT5wbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuZnVsbF91cGRhdGUg fHwKIAkJCXBpcGVfY3R4LT5wbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuaW5fdHJhbnNm ZXJfZnVuY19jaGFuZ2UgfHwKIAkJCXBpcGVfY3R4LT5wbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdz LmJpdHMuZ2FtbWFfY2hhbmdlKQotCQlkYy0+aHdzcy5zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYyhw aXBlX2N0eCwgcGlwZV9jdHgtPnBsYW5lX3N0YXRlKTsKKwkJZGMtPmh3c3Muc2V0X2lucHV0X3Ry YW5zZmVyX2Z1bmMoZGMsIHBpcGVfY3R4LCBwaXBlX2N0eC0+cGxhbmVfc3RhdGUpOwogCiAJLyog ZGNuMTBfdHJhbnNsYXRlX3JlZ2FtbWFfdG9faHdfZm9ybWF0IHRha2VzIDc1MHVzIHRvIGZpbmlz aAogCSAqIG9ubHkgZG8gZ2FtbWEgcHJvZ3JhbW1pbmcgZm9yIGZ1bGwgdXBkYXRlLgpAQCAtMjUw MSwxMCArMjQxNCwxMCBAQCB2b2lkIGRjbjEwX3Byb2dyYW1fcGlwZSgKIAkgKiBkb2luZyBoZWF2 eSBjYWxjdWxhdGlvbiBhbmQgcHJvZ3JhbW1pbmcKIAkgKi8KIAlpZiAocGlwZV9jdHgtPnBsYW5l X3N0YXRlLT51cGRhdGVfZmxhZ3MuYml0cy5mdWxsX3VwZGF0ZSkKLQkJZGMtPmh3c3Muc2V0X291 dHB1dF90cmFuc2Zlcl9mdW5jKHBpcGVfY3R4LCBwaXBlX2N0eC0+c3RyZWFtKTsKKwkJZGMtPmh3 c3Muc2V0X291dHB1dF90cmFuc2Zlcl9mdW5jKGRjLCBwaXBlX2N0eCwgcGlwZV9jdHgtPnN0cmVh bSk7CiB9CiAKLXN0YXRpYyB2b2lkIHByb2dyYW1fYWxsX3BpcGVfaW5fdHJlZSgKK3N0YXRpYyB2 b2lkIGRjbjEwX3Byb2dyYW1fYWxsX3BpcGVfaW5fdHJlZSgKIAkJc3RydWN0IGRjICpkYywKIAkJ c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQpA QCAtMjUyMywxOSArMjQzNiwxOSBAQCBzdGF0aWMgdm9pZCBwcm9ncmFtX2FsbF9waXBlX2luX3Ry ZWUoCiAJCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsICZwaXBlX2N0eC0+c3RyZWFtLT50aW1p bmcpOwogCiAJCWlmIChkYy0+aHdzcy5zZXR1cF92dXBkYXRlX2ludGVycnVwdCkKLQkJCWRjLT5o d3NzLnNldHVwX3Z1cGRhdGVfaW50ZXJydXB0KHBpcGVfY3R4KTsKKwkJCWRjLT5od3NzLnNldHVw X3Z1cGRhdGVfaW50ZXJydXB0KGRjLCBwaXBlX2N0eCk7CiAKIAkJZGMtPmh3c3MuYmxhbmtfcGl4 ZWxfZGF0YShkYywgcGlwZV9jdHgsIGJsYW5rKTsKIAl9CiAKIAlpZiAocGlwZV9jdHgtPnBsYW5l X3N0YXRlICE9IE5VTEwpCi0JCWRjbjEwX3Byb2dyYW1fcGlwZShkYywgcGlwZV9jdHgsIGNvbnRl eHQpOworCQlkYy0+aHdzcy5wcm9ncmFtX3BpcGUoZGMsIHBpcGVfY3R4LCBjb250ZXh0KTsKIAog CWlmIChwaXBlX2N0eC0+Ym90dG9tX3BpcGUgIT0gTlVMTCAmJiBwaXBlX2N0eC0+Ym90dG9tX3Bp cGUgIT0gcGlwZV9jdHgpCi0JCXByb2dyYW1fYWxsX3BpcGVfaW5fdHJlZShkYywgcGlwZV9jdHgt PmJvdHRvbV9waXBlLCBjb250ZXh0KTsKKwkJZGNuMTBfcHJvZ3JhbV9hbGxfcGlwZV9pbl90cmVl KGRjLCBwaXBlX2N0eC0+Ym90dG9tX3BpcGUsIGNvbnRleHQpOwogfQogCi1zdHJ1Y3QgcGlwZV9j dHggKmZpbmRfdG9wX3BpcGVfZm9yX3N0cmVhbSgKK3N0YXRpYyBzdHJ1Y3QgcGlwZV9jdHggKmRj bjEwX2ZpbmRfdG9wX3BpcGVfZm9yX3N0cmVhbSgKIAkJc3RydWN0IGRjICpkYywKIAkJc3RydWN0 IGRjX3N0YXRlICpjb250ZXh0LAogCQljb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJl YW0pCkBAIC0yNTU5LDcgKzI0NzIsNyBAQCBzdHJ1Y3QgcGlwZV9jdHggKmZpbmRfdG9wX3BpcGVf Zm9yX3N0cmVhbSgKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQgZGNuMTBfYXBwbHlf Y3R4X2Zvcl9zdXJmYWNlKAordm9pZCBkY24xMF9hcHBseV9jdHhfZm9yX3N1cmZhY2UoCiAJCXN0 cnVjdCBkYyAqZGMsCiAJCWNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSwKIAkJ aW50IG51bV9wbGFuZXMsCkBAIC0yNTcxLDcgKzI0ODQsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9h cHBseV9jdHhfZm9yX3N1cmZhY2UoCiAJYm9vbCByZW1vdmVkX3BpcGVbNF0gPSB7IGZhbHNlIH07 CiAJYm9vbCBpbnRlcmRlcGVuZGVudF91cGRhdGUgPSBmYWxzZTsKIAlzdHJ1Y3QgcGlwZV9jdHgg KnRvcF9waXBlX3RvX3Byb2dyYW0gPQotCQkJZmluZF90b3BfcGlwZV9mb3Jfc3RyZWFtKGRjLCBj b250ZXh0LCBzdHJlYW0pOworCQkJZGNuMTBfZmluZF90b3BfcGlwZV9mb3Jfc3RyZWFtKGRjLCBj b250ZXh0LCBzdHJlYW0pOwogCURDX0xPR0dFUl9JTklUKGRjLT5jdHgtPmxvZ2dlcik7CiAKIAlp ZiAoIXRvcF9waXBlX3RvX3Byb2dyYW0pCkBAIC0yNTg4LDcgKzI1MDEsNyBAQCBzdGF0aWMgdm9p ZCBkY24xMF9hcHBseV9jdHhfZm9yX3N1cmZhY2UoCiAJCUFTU0VSVChkYy0+aHdzcy5kaWRfdW5k ZXJmbG93X29jY3VyKGRjLCB0b3BfcGlwZV90b19wcm9ncmFtKSk7CiAKIAlpZiAoaW50ZXJkZXBl bmRlbnRfdXBkYXRlKQotCQlsb2NrX2FsbF9waXBlcyhkYywgY29udGV4dCwgdHJ1ZSk7CisJCWRj bjEwX2xvY2tfYWxsX3BpcGVzKGRjLCBjb250ZXh0LCB0cnVlKTsKIAllbHNlCiAJCWRjbjEwX3Bp cGVfY29udHJvbF9sb2NrKGRjLCB0b3BfcGlwZV90b19wcm9ncmFtLCB0cnVlKTsKIApAQCAtMjYz NSw3ICsyNTQ4LDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfYXBwbHlfY3R4X2Zvcl9zdXJmYWNlKAog CX0KIAogCWlmIChudW1fcGxhbmVzID4gMCkKLQkJcHJvZ3JhbV9hbGxfcGlwZV9pbl90cmVlKGRj LCB0b3BfcGlwZV90b19wcm9ncmFtLCBjb250ZXh0KTsKKwkJZGNuMTBfcHJvZ3JhbV9hbGxfcGlw ZV9pbl90cmVlKGRjLCB0b3BfcGlwZV90b19wcm9ncmFtLCBjb250ZXh0KTsKIAogCS8qIFByb2dy YW0gc2Vjb25kYXJ5IGJsZW5kaW5nIHRyZWUgYW5kIHdyaXRlYmFjayBwaXBlcyAqLwogCWlmICgo c3RyZWFtLT5udW1fd2JfaW5mbyA+IDApICYmIChkYy0+aHdzcy5wcm9ncmFtX2FsbF93cml0ZWJh Y2tfcGlwZXNfaW5fdHJlZSkpCkBAIC0yNjU1LDcgKzI1NjgsNyBAQCBzdGF0aWMgdm9pZCBkY24x MF9hcHBseV9jdHhfZm9yX3N1cmZhY2UoCiAJCX0KIAogCWlmIChpbnRlcmRlcGVuZGVudF91cGRh dGUpCi0JCWxvY2tfYWxsX3BpcGVzKGRjLCBjb250ZXh0LCBmYWxzZSk7CisJCWRjbjEwX2xvY2tf YWxsX3BpcGVzKGRjLCBjb250ZXh0LCBmYWxzZSk7CiAJZWxzZQogCQlkY24xMF9waXBlX2NvbnRy b2xfbG9jayhkYywgdG9wX3BpcGVfdG9fcHJvZ3JhbSwgZmFsc2UpOwogCkBAIC0yNjkyLDE0ICsy NjA1LDE0IEBAIHN0YXRpYyB2b2lkIGRjbjEwX3N0ZXJlb19od19mcmFtZV9wYWNrX3dhKHN0cnVj dCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29udGV4CiAJfQogfQogCi1zdGF0aWMgdm9pZCBk Y24xMF9wcmVwYXJlX2JhbmR3aWR0aCgKK3ZvaWQgZGNuMTBfcHJlcGFyZV9iYW5kd2lkdGgoCiAJ CXN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCkKIHsKIAlzdHJ1Y3Qg aHViYnViICpodWJidWIgPSBkYy0+cmVzX3Bvb2wtPmh1YmJ1YjsKIAogCWlmIChkYy0+ZGVidWcu c2FuaXR5X2NoZWNrcykKLQkJZGNuMTBfdmVyaWZ5X2FsbG93X3BzdGF0ZV9jaGFuZ2VfaGlnaChk Yyk7CisJCWRjLT5od3NzLnZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goZGMpOwogCiAJ aWYgKCFJU19GUEdBX01BWElNVVNfREMoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgewogCQlp ZiAoY29udGV4dC0+c3RyZWFtX2NvdW50ID09IDApCkBAIC0yNzIxLDE3ICsyNjM0LDE3IEBAIHN0 YXRpYyB2b2lkIGRjbjEwX3ByZXBhcmVfYmFuZHdpZHRoKAogCQlkY25fYndfbm90aWZ5X3BwbGli X29mX3dtX3JhbmdlcyhkYyk7CiAKIAlpZiAoZGMtPmRlYnVnLnNhbml0eV9jaGVja3MpCi0JCWRj bjEwX3ZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goZGMpOworCQlkYy0+aHdzcy52ZXJp ZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoKGRjKTsKIH0KIAotc3RhdGljIHZvaWQgZGNuMTBf b3B0aW1pemVfYmFuZHdpZHRoKAordm9pZCBkY24xMF9vcHRpbWl6ZV9iYW5kd2lkdGgoCiAJCXN0 cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCkKIHsKIAlzdHJ1Y3QgaHVi YnViICpodWJidWIgPSBkYy0+cmVzX3Bvb2wtPmh1YmJ1YjsKIAogCWlmIChkYy0+ZGVidWcuc2Fu aXR5X2NoZWNrcykKLQkJZGNuMTBfdmVyaWZ5X2FsbG93X3BzdGF0ZV9jaGFuZ2VfaGlnaChkYyk7 CisJCWRjLT5od3NzLnZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goZGMpOwogCiAJaWYg KCFJU19GUEdBX01BWElNVVNfREMoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgewogCQlpZiAo Y29udGV4dC0+c3RyZWFtX2NvdW50ID09IDApCkBAIC0yNzUzLDEwICsyNjY2LDEwIEBAIHN0YXRp YyB2b2lkIGRjbjEwX29wdGltaXplX2JhbmR3aWR0aCgKIAkJZGNuX2J3X25vdGlmeV9wcGxpYl9v Zl93bV9yYW5nZXMoZGMpOwogCiAJaWYgKGRjLT5kZWJ1Zy5zYW5pdHlfY2hlY2tzKQotCQlkY24x MF92ZXJpZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoKGRjKTsKKwkJZGMtPmh3c3MudmVyaWZ5 X2FsbG93X3BzdGF0ZV9jaGFuZ2VfaGlnaChkYyk7CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjEwX3Nl dF9kcnIoc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCit2b2lkIGRjbjEwX3NldF9kcnIoc3Ry dWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCiAJCWludCBudW1fcGlwZXMsIHVuc2lnbmVkIGludCB2 bWluLCB1bnNpZ25lZCBpbnQgdm1heCwKIAkJdW5zaWduZWQgaW50IHZtaWQsIHVuc2lnbmVkIGlu dCB2bWlkX2ZyYW1lX251bWJlcikKIHsKQEAgLTI3ODQsNyArMjY5Nyw3IEBAIHN0YXRpYyB2b2lk IGRjbjEwX3NldF9kcnIoc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCiAJfQogfQogCi1zdGF0 aWMgdm9pZCBkY24xMF9nZXRfcG9zaXRpb24oc3RydWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCit2 b2lkIGRjbjEwX2dldF9wb3NpdGlvbihzdHJ1Y3QgcGlwZV9jdHggKipwaXBlX2N0eCwKIAkJaW50 IG51bV9waXBlcywKIAkJc3RydWN0IGNydGNfcG9zaXRpb24gKnBvc2l0aW9uKQogewpAQCAtMjc5 Niw3ICsyNzA5LDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfZ2V0X3Bvc2l0aW9uKHN0cnVjdCBwaXBl X2N0eCAqKnBpcGVfY3R4LAogCQlwaXBlX2N0eFtpXS0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPmdl dF9wb3NpdGlvbihwaXBlX2N0eFtpXS0+c3RyZWFtX3Jlcy50ZywgcG9zaXRpb24pOwogfQogCi1z dGF0aWMgdm9pZCBkY24xMF9zZXRfc3RhdGljX3NjcmVlbl9jb250cm9sKHN0cnVjdCBwaXBlX2N0 eCAqKnBpcGVfY3R4LAordm9pZCBkY24xMF9zZXRfc3RhdGljX3NjcmVlbl9jb250cm9sKHN0cnVj dCBwaXBlX2N0eCAqKnBpcGVfY3R4LAogCQlpbnQgbnVtX3BpcGVzLCBjb25zdCBzdHJ1Y3QgZGNf c3RhdGljX3NjcmVlbl9ldmVudHMgKmV2ZW50cykKIHsKIAl1bnNpZ25lZCBpbnQgaTsKQEAgLTI4 NTEsNyArMjc2NCw3IEBAIHN0YXRpYyB2b2lkIGRjbjEwX2NvbmZpZ19zdGVyZW9fcGFyYW1ldGVy cygKIAlyZXR1cm47CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjEwX3NldHVwX3N0ZXJlbyhzdHJ1Y3Qg cGlwZV9jdHggKnBpcGVfY3R4LCBzdHJ1Y3QgZGMgKmRjKQordm9pZCBkY24xMF9zZXR1cF9zdGVy ZW8oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgc3RydWN0IGRjICpkYykKIHsKIAlzdHJ1Y3Qg Y3J0Y19zdGVyZW9fZmxhZ3MgZmxhZ3MgPSB7IDAgfTsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl ICpzdHJlYW0gPSBwaXBlX2N0eC0+c3RyZWFtOwpAQCAtMjg5MCw3ICsyODAzLDcgQEAgc3RhdGlj IHN0cnVjdCBodWJwICpnZXRfaHVicF9ieV9pbnN0KHN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNf cG9vbCwgaW50IG1wY2NfaW4KIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQgZGNuMTBf d2FpdF9mb3JfbXBjY19kaXNjb25uZWN0KAordm9pZCBkY24xMF93YWl0X2Zvcl9tcGNjX2Rpc2Nv bm5lY3QoCiAJCXN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCByZXNvdXJjZV9wb29sICpyZXNfcG9v bCwKIAkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKQEAgLTI4OTgsNyArMjgxMSw3IEBAIHN0 YXRpYyB2b2lkIGRjbjEwX3dhaXRfZm9yX21wY2NfZGlzY29ubmVjdCgKIAlpbnQgbXBjY19pbnN0 OwogCiAJaWYgKGRjLT5kZWJ1Zy5zYW5pdHlfY2hlY2tzKSB7Ci0JCWRjbjEwX3ZlcmlmeV9hbGxv d19wc3RhdGVfY2hhbmdlX2hpZ2goZGMpOworCQlkYy0+aHdzcy52ZXJpZnlfYWxsb3dfcHN0YXRl X2NoYW5nZV9oaWdoKGRjKTsKIAl9CiAKIAlpZiAoIXBpcGVfY3R4LT5zdHJlYW1fcmVzLm9wcCkK QEAgLTI5MTUsMTIgKzI4MjgsMTIgQEAgc3RhdGljIHZvaWQgZGNuMTBfd2FpdF9mb3JfbXBjY19k aXNjb25uZWN0KAogCX0KIAogCWlmIChkYy0+ZGVidWcuc2FuaXR5X2NoZWNrcykgewotCQlkY24x MF92ZXJpZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoKGRjKTsKKwkJZGMtPmh3c3MudmVyaWZ5 X2FsbG93X3BzdGF0ZV9jaGFuZ2VfaGlnaChkYyk7CiAJfQogCiB9CiAKLXN0YXRpYyBib29sIGRj bjEwX2R1bW15X2Rpc3BsYXlfcG93ZXJfZ2F0aW5nKAorYm9vbCBkY24xMF9kdW1teV9kaXNwbGF5 X3Bvd2VyX2dhdGluZygKIAlzdHJ1Y3QgZGMgKmRjLAogCXVpbnQ4X3QgY29udHJvbGxlcl9pZCwK IAlzdHJ1Y3QgZGNfYmlvcyAqZGNiLApAQCAtMjkyOSw3ICsyODQyLDcgQEAgc3RhdGljIGJvb2wg ZGNuMTBfZHVtbXlfZGlzcGxheV9wb3dlcl9nYXRpbmcoCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0 YXRpYyB2b2lkIGRjbjEwX3VwZGF0ZV9wZW5kaW5nX3N0YXR1cyhzdHJ1Y3QgcGlwZV9jdHggKnBp cGVfY3R4KQordm9pZCBkY24xMF91cGRhdGVfcGVuZGluZ19zdGF0dXMoc3RydWN0IHBpcGVfY3R4 ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gcGlw ZV9jdHgtPnBsYW5lX3N0YXRlOwogCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZyA9IHBpcGVf Y3R4LT5zdHJlYW1fcmVzLnRnOwpAQCAtMjk1Myw3ICsyODY2LDcgQEAgc3RhdGljIHZvaWQgZGNu MTBfdXBkYXRlX3BlbmRpbmdfc3RhdHVzKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCiAJfQog fQogCi1zdGF0aWMgdm9pZCBkY24xMF91cGRhdGVfZGNodWIoc3RydWN0IGRjZV9od3NlcSAqaHdz LCBzdHJ1Y3QgZGNodWJfaW5pdF9kYXRhICpkaF9kYXRhKQordm9pZCBkY24xMF91cGRhdGVfZGNo dWIoc3RydWN0IGRjZV9od3NlcSAqaHdzLCBzdHJ1Y3QgZGNodWJfaW5pdF9kYXRhICpkaF9kYXRh KQogewogCXN0cnVjdCBodWJidWIgKmh1YmJ1YiA9IGh3cy0+Y3R4LT5kYy0+cmVzX3Bvb2wtPmh1 YmJ1YjsKIApAQCAtMjk2MSw3ICsyODc0LDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfdXBkYXRlX2Rj aHViKHN0cnVjdCBkY2VfaHdzZXEgKmh3cywgc3RydWN0IGRjaHViX2luaXRfZGF0YSAqZGgKIAlo dWJidWItPmZ1bmNzLT51cGRhdGVfZGNodWIoaHViYnViLCBkaF9kYXRhKTsKIH0KIAotc3RhdGlj IHZvaWQgZGNuMTBfc2V0X2N1cnNvcl9wb3NpdGlvbihzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4 KQordm9pZCBkY24xMF9zZXRfY3Vyc29yX3Bvc2l0aW9uKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9j dHgpCiB7CiAJc3RydWN0IGRjX2N1cnNvcl9wb3NpdGlvbiBwb3NfY3B5ID0gcGlwZV9jdHgtPnN0 cmVhbS0+Y3Vyc29yX3Bvc2l0aW9uOwogCXN0cnVjdCBodWJwICpodWJwID0gcGlwZV9jdHgtPnBs YW5lX3Jlcy5odWJwOwpAQCAtMzAyNyw3ICsyOTQwLDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfc2V0 X2N1cnNvcl9wb3NpdGlvbihzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCWRwcC0+ZnVuY3Mt PnNldF9jdXJzb3JfcG9zaXRpb24oZHBwLCAmcG9zX2NweSwgJnBhcmFtLCBodWJwLT5jdXJzX2F0 dHIud2lkdGgsIGh1YnAtPmN1cnNfYXR0ci5oZWlnaHQpOwogfQogCi1zdGF0aWMgdm9pZCBkY24x MF9zZXRfY3Vyc29yX2F0dHJpYnV0ZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQordm9pZCBk Y24xMF9zZXRfY3Vyc29yX2F0dHJpYnV0ZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewog CXN0cnVjdCBkY19jdXJzb3JfYXR0cmlidXRlcyAqYXR0cmlidXRlcyA9ICZwaXBlX2N0eC0+c3Ry ZWFtLT5jdXJzb3JfYXR0cmlidXRlczsKIApAQCAtMzAzNyw3ICsyOTUwLDcgQEAgc3RhdGljIHZv aWQgZGNuMTBfc2V0X2N1cnNvcl9hdHRyaWJ1dGUoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkK IAkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAsIGF0dHJpYnV0ZXMpOwogfQogCi1zdGF0aWMgdm9p ZCBkY24xMF9zZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVf Y3R4KQordm9pZCBkY24xMF9zZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbChzdHJ1Y3QgcGlwZV9j dHggKnBpcGVfY3R4KQogewogCXVpbnQzMl90IHNkcl93aGl0ZV9sZXZlbCA9IHBpcGVfY3R4LT5z dHJlYW0tPmN1cnNvcl9hdHRyaWJ1dGVzLnNkcl93aGl0ZV9sZXZlbDsKIAlzdHJ1Y3QgZml4ZWQz MV8zMiBtdWx0aXBsaWVyOwpAQCAtMzA2NCwxMiArMjk3NywxMiBAQCBzdGF0aWMgdm9pZCBkY24x MF9zZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbChzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQog CQkJcGlwZV9jdHgtPnBsYW5lX3Jlcy5kcHAsICZvcHRfYXR0cik7CiB9CiAKLS8qKgotKiBhcHBs eV9mcm9udF9wb3JjaF93b3JrYXJvdW5kICBUT0RPIEZQR0Egc3RpbGwgbmVlZD8KLSoKLSogVGhp cyBpcyBhIHdvcmthcm91bmQgZm9yIGEgYnVnIHRoYXQgaGFzIGV4aXN0ZWQgc2luY2UgUjV4eCBh bmQgaGFzIG5vdCBiZWVuCi0qIGZpeGVkIGtlZXAgRnJvbnQgcG9yY2ggYXQgbWluaW11bSAyIGZv ciBJbnRlcmxhY2VkIG1vZGUgb3IgMSBmb3IgcHJvZ3Jlc3NpdmUuCi0qLworLyoKKyAqIGFwcGx5 X2Zyb250X3BvcmNoX3dvcmthcm91bmQgIFRPRE8gRlBHQSBzdGlsbCBuZWVkPworICoKKyAqIFRo aXMgaXMgYSB3b3JrYXJvdW5kIGZvciBhIGJ1ZyB0aGF0IGhhcyBleGlzdGVkIHNpbmNlIFI1eHgg YW5kIGhhcyBub3QgYmVlbgorICogZml4ZWQga2VlcCBGcm9udCBwb3JjaCBhdCBtaW5pbXVtIDIg Zm9yIEludGVybGFjZWQgbW9kZSBvciAxIGZvciBwcm9ncmVzc2l2ZS4KKyAqLwogc3RhdGljIHZv aWQgYXBwbHlfZnJvbnRfcG9yY2hfd29ya2Fyb3VuZCgKIAlzdHJ1Y3QgZGNfY3J0Y190aW1pbmcg KnRpbWluZykKIHsKQEAgLTMwODIsNyArMjk5NSw3IEBAIHN0YXRpYyB2b2lkIGFwcGx5X2Zyb250 X3BvcmNoX3dvcmthcm91bmQoCiAJfQogfQogCi1pbnQgZ2V0X3Z1cGRhdGVfb2Zmc2V0X2Zyb21f dnN5bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKK2ludCBkY24xMF9nZXRfdnVwZGF0ZV9v ZmZzZXRfZnJvbV92c3luYyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogCWNvbnN0IHN0 cnVjdCBkY19jcnRjX3RpbWluZyAqZGNfY3J0Y190aW1pbmcgPSAmcGlwZV9jdHgtPnN0cmVhbS0+ dGltaW5nOwogCXN0cnVjdCBkY19jcnRjX3RpbWluZyBwYXRjaGVkX2NydGNfdGltaW5nOwpAQCAt MzExMSwzNCArMzAyNCw4IEBAIGludCBnZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYyhzdHJ1 Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCXJldHVybiB2ZXJ0aWNhbF9saW5lX3N0YXJ0OwogfQog Ci12b2lkIGxvY2tfYWxsX3BpcGVzKHN0cnVjdCBkYyAqZGMsCi0Jc3RydWN0IGRjX3N0YXRlICpj b250ZXh0LAotCWJvb2wgbG9jaykKLXsKLQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4OwotCXN0 cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0ZzsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7IGkgPCBk Yy0+cmVzX3Bvb2wtPnBpcGVfY291bnQ7IGkrKykgewotCQlwaXBlX2N0eCA9ICZjb250ZXh0LT5y ZXNfY3R4LnBpcGVfY3R4W2ldOwotCQl0ZyA9IHBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnOwotCQkv KgotCQkgKiBPbmx5IGxvY2sgdGhlIHRvcCBwaXBlJ3MgdGcgdG8gcHJldmVudCByZWR1bmRhbnQK LQkJICogKHVuKWxvY2tpbmcuIEFsc28gc2tpcCBpZiBwaXBlIGlzIGRpc2FibGVkLgotCQkgKi8K LQkJaWYgKHBpcGVfY3R4LT50b3BfcGlwZSB8fAotCQkgICAgIXBpcGVfY3R4LT5zdHJlYW0gfHwg IXBpcGVfY3R4LT5wbGFuZV9zdGF0ZSB8fAotCQkgICAgIXRnLT5mdW5jcy0+aXNfdGdfZW5hYmxl ZCh0ZykpCi0JCQljb250aW51ZTsKLQotCQlpZiAobG9jaykKLQkJCXRnLT5mdW5jcy0+bG9jayh0 Zyk7Ci0JCWVsc2UKLQkJCXRnLT5mdW5jcy0+dW5sb2NrKHRnKTsKLQl9Ci19Ci0KLXN0YXRpYyB2 b2lkIGNhbGNfdnVwZGF0ZV9wb3NpdGlvbigKK3N0YXRpYyB2b2lkIGRjbjEwX2NhbGNfdnVwZGF0 ZV9wb3NpdGlvbigKKwkJc3RydWN0IGRjICpkYywKIAkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0 eCwKIAkJdWludDMyX3QgKnN0YXJ0X2xpbmUsCiAJCXVpbnQzMl90ICplbmRfbGluZSkKQEAgLTMx NDYsNyArMzAzMyw3IEBAIHN0YXRpYyB2b2lkIGNhbGNfdnVwZGF0ZV9wb3NpdGlvbigKIAljb25z dCBzdHJ1Y3QgZGNfY3J0Y190aW1pbmcgKmRjX2NydGNfdGltaW5nID0gJnBpcGVfY3R4LT5zdHJl YW0tPnRpbWluZzsKIAlpbnQgdmxpbmVfaW50X29mZnNldF9mcm9tX3Z1cGRhdGUgPQogCQkJcGlw ZV9jdHgtPnN0cmVhbS0+cGVyaW9kaWNfaW50ZXJydXB0MC5saW5lc19vZmZzZXQ7Ci0JaW50IHZ1 cGRhdGVfb2Zmc2V0X2Zyb21fdnN5bmMgPSBnZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYyhw aXBlX2N0eCk7CisJaW50IHZ1cGRhdGVfb2Zmc2V0X2Zyb21fdnN5bmMgPSBkYy0+aHdzcy5nZXRf dnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYyhwaXBlX2N0eCk7CiAJaW50IHN0YXJ0X3Bvc2l0aW9u OwogCiAJaWYgKHZsaW5lX2ludF9vZmZzZXRfZnJvbV92dXBkYXRlID4gMCkKQEAgLTMxNjcsNyAr MzA1NCw4IEBAIHN0YXRpYyB2b2lkIGNhbGNfdnVwZGF0ZV9wb3NpdGlvbigKIAkJKmVuZF9saW5l ID0gMjsKIH0KIAotc3RhdGljIHZvaWQgY2FsX3ZsaW5lX3Bvc2l0aW9uKAorc3RhdGljIHZvaWQg ZGNuMTBfY2FsX3ZsaW5lX3Bvc2l0aW9uKAorCQlzdHJ1Y3QgZGMgKmRjLAogCQlzdHJ1Y3QgcGlw ZV9jdHggKnBpcGVfY3R4LAogCQllbnVtIHZsaW5lX3NlbGVjdCB2bGluZSwKIAkJdWludDMyX3Qg KnN0YXJ0X2xpbmUsCkBAIC0zMTgyLDcgKzMwNzAsOCBAQCBzdGF0aWMgdm9pZCBjYWxfdmxpbmVf cG9zaXRpb24oCiAKIAlzd2l0Y2ggKHJlZl9wb2ludCkgewogCWNhc2UgU1RBUlRfVl9VUERBVEU6 Ci0JCWNhbGNfdnVwZGF0ZV9wb3NpdGlvbigKKwkJZGNuMTBfY2FsY192dXBkYXRlX3Bvc2l0aW9u KAorCQkJCWRjLAogCQkJCXBpcGVfY3R4LAogCQkJCXN0YXJ0X2xpbmUsCiAJCQkJZW5kX2xpbmUp OwpAQCAtMzE5Niw3ICszMDg1LDggQEAgc3RhdGljIHZvaWQgY2FsX3ZsaW5lX3Bvc2l0aW9uKAog CX0KIH0KIAotc3RhdGljIHZvaWQgZGNuMTBfc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0KAordm9p ZCBkY24xMF9zZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQoCisJCXN0cnVjdCBkYyAqZGMsCiAJCXN0 cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCWVudW0gdmxpbmVfc2VsZWN0IHZsaW5lKQogewpA QCAtMzIwNiw3ICszMDk2LDcgQEAgc3RhdGljIHZvaWQgZGNuMTBfc2V0dXBfcGVyaW9kaWNfaW50 ZXJydXB0KAogCQl1aW50MzJfdCBzdGFydF9saW5lID0gMDsKIAkJdWludDMyX3QgZW5kX2xpbmUg PSAwOwogCi0JCWNhbF92bGluZV9wb3NpdGlvbihwaXBlX2N0eCwgdmxpbmUsICZzdGFydF9saW5l LCAmZW5kX2xpbmUpOworCQlkY24xMF9jYWxfdmxpbmVfcG9zaXRpb24oZGMsIHBpcGVfY3R4LCB2 bGluZSwgJnN0YXJ0X2xpbmUsICZlbmRfbGluZSk7CiAKIAkJdGctPmZ1bmNzLT5zZXR1cF92ZXJ0 aWNhbF9pbnRlcnJ1cHQwKHRnLCBzdGFydF9saW5lLCBlbmRfbGluZSk7CiAKQEAgLTMyMTcsMTAg KzMxMDcsMTAgQEAgc3RhdGljIHZvaWQgZGNuMTBfc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0KAog CX0KIH0KIAotc3RhdGljIHZvaWQgZGNuMTBfc2V0dXBfdnVwZGF0ZV9pbnRlcnJ1cHQoc3RydWN0 IHBpcGVfY3R4ICpwaXBlX2N0eCkKK3ZvaWQgZGNuMTBfc2V0dXBfdnVwZGF0ZV9pbnRlcnJ1cHQo c3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgdGlt aW5nX2dlbmVyYXRvciAqdGcgPSBwaXBlX2N0eC0+c3RyZWFtX3Jlcy50ZzsKLQlpbnQgc3RhcnRf bGluZSA9IGdldF92dXBkYXRlX29mZnNldF9mcm9tX3ZzeW5jKHBpcGVfY3R4KTsKKwlpbnQgc3Rh cnRfbGluZSA9IGRjLT5od3NzLmdldF92dXBkYXRlX29mZnNldF9mcm9tX3ZzeW5jKHBpcGVfY3R4 KTsKIAogCWlmIChzdGFydF9saW5lIDwgMCkgewogCQlBU1NFUlQoMCk7CkBAIC0zMjMxLDcgKzMx MjEsNyBAQCBzdGF0aWMgdm9pZCBkY24xMF9zZXR1cF92dXBkYXRlX2ludGVycnVwdChzdHJ1Y3Qg cGlwZV9jdHggKnBpcGVfY3R4KQogCQl0Zy0+ZnVuY3MtPnNldHVwX3ZlcnRpY2FsX2ludGVycnVw dDIodGcsIHN0YXJ0X2xpbmUpOwogfQogCi1zdGF0aWMgdm9pZCBkY24xMF91bmJsYW5rX3N0cmVh bShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAordm9pZCBkY24xMF91bmJsYW5rX3N0cmVhbShz dHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCQlzdHJ1Y3QgZGNfbGlua19zZXR0aW5ncyAqbGlu a19zZXR0aW5ncykKIHsKIAlzdHJ1Y3QgZW5jb2Rlcl91bmJsYW5rX3BhcmFtIHBhcmFtcyA9IHsg eyAwIH0gfTsKQEAgLTMyNTQsNyArMzE0NCw3IEBAIHN0YXRpYyB2b2lkIGRjbjEwX3VuYmxhbmtf c3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJfQogfQogCi1zdGF0aWMgdm9pZCBk Y24xMF9zZW5kX2ltbWVkaWF0ZV9zZHBfbWVzc2FnZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4 LAordm9pZCBkY24xMF9zZW5kX2ltbWVkaWF0ZV9zZHBfbWVzc2FnZShzdHJ1Y3QgcGlwZV9jdHgg KnBpcGVfY3R4LAogCQkJCWNvbnN0IHVpbnQ4X3QgKmN1c3RvbV9zZHBfbWVzc2FnZSwKIAkJCQl1 bnNpZ25lZCBpbnQgc2RwX21lc3NhZ2Vfc2l6ZSkKIHsKQEAgLTMyNjUsNyArMzE1NSw3IEBAIHN0 YXRpYyB2b2lkIGRjbjEwX3NlbmRfaW1tZWRpYXRlX3NkcF9tZXNzYWdlKHN0cnVjdCBwaXBlX2N0 eCAqcGlwZV9jdHgsCiAJCQkJc2RwX21lc3NhZ2Vfc2l6ZSk7CiAJfQogfQotc3RhdGljIGVudW0g ZGNfc3RhdHVzIGRjbjEwX3NldF9jbG9jayhzdHJ1Y3QgZGMgKmRjLAorZW51bSBkY19zdGF0dXMg ZGNuMTBfc2V0X2Nsb2NrKHN0cnVjdCBkYyAqZGMsCiAJCQllbnVtIGRjX2Nsb2NrX3R5cGUgY2xv Y2tfdHlwZSwKIAkJCXVpbnQzMl90IGNsa19raHosCiAJCQl1aW50MzJfdCBzdGVwcGluZykKQEAg LTMzMDUsNyArMzE5NSw3IEBAIHN0YXRpYyBlbnVtIGRjX3N0YXR1cyBkY24xMF9zZXRfY2xvY2so c3RydWN0IGRjICpkYywKIAogfQogCi1zdGF0aWMgdm9pZCBkY24xMF9nZXRfY2xvY2soc3RydWN0 IGRjICpkYywKK3ZvaWQgZGNuMTBfZ2V0X2Nsb2NrKHN0cnVjdCBkYyAqZGMsCiAJCQllbnVtIGRj X2Nsb2NrX3R5cGUgY2xvY2tfdHlwZSwKIAkJCXN0cnVjdCBkY19jbG9ja19jb25maWcgKmNsb2Nr X2NmZykKIHsKQEAgLTMzMTUsNzcgKzMyMDUsMyBAQCBzdGF0aWMgdm9pZCBkY24xMF9nZXRfY2xv Y2soc3RydWN0IGRjICpkYywKIAkJCQlkYy0+Y2xrX21nci0+ZnVuY3MtPmdldF9jbG9jayhkYy0+ Y2xrX21nciwgY29udGV4dCwgY2xvY2tfdHlwZSwgY2xvY2tfY2ZnKTsKIAogfQotCi1zdGF0aWMg Y29uc3Qgc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5jcyBkY24xMF9mdW5jcyA9IHsKLQkucHJvZ3Jh bV9nYW11dF9yZW1hcCA9IGRjbjEwX3Byb2dyYW1fZ2FtdXRfcmVtYXAsCi0JLmluaXRfaHcgPSBk Y24xMF9pbml0X2h3LAotCS5pbml0X3BpcGVzID0gZGNuMTBfaW5pdF9waXBlcywKLQkuYXBwbHlf Y3R4X3RvX2h3ID0gZGNlMTEwX2FwcGx5X2N0eF90b19odywKLQkuYXBwbHlfY3R4X2Zvcl9zdXJm YWNlID0gZGNuMTBfYXBwbHlfY3R4X2Zvcl9zdXJmYWNlLAotCS51cGRhdGVfcGxhbmVfYWRkciA9 IGRjbjEwX3VwZGF0ZV9wbGFuZV9hZGRyLAotCS5wbGFuZV9hdG9taWNfZGlzY29ubmVjdCA9IGh3 c3MxX3BsYW5lX2F0b21pY19kaXNjb25uZWN0LAotCS51cGRhdGVfZGNodWIgPSBkY24xMF91cGRh dGVfZGNodWIsCi0JLnVwZGF0ZV9tcGNjID0gZGNuMTBfdXBkYXRlX21wY2MsCi0JLnVwZGF0ZV9w ZW5kaW5nX3N0YXR1cyA9IGRjbjEwX3VwZGF0ZV9wZW5kaW5nX3N0YXR1cywKLQkuc2V0X2lucHV0 X3RyYW5zZmVyX2Z1bmMgPSBkY24xMF9zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYywKLQkuc2V0X291 dHB1dF90cmFuc2Zlcl9mdW5jID0gZGNuMTBfc2V0X291dHB1dF90cmFuc2Zlcl9mdW5jLAotCS5w cm9ncmFtX291dHB1dF9jc2MgPSBkY24xMF9wcm9ncmFtX291dHB1dF9jc2MsCi0JLnBvd2VyX2Rv d24gPSBkY2UxMTBfcG93ZXJfZG93biwKLQkuZW5hYmxlX2FjY2VsZXJhdGVkX21vZGUgPSBkY2Ux MTBfZW5hYmxlX2FjY2VsZXJhdGVkX21vZGUsCi0JLmVuYWJsZV90aW1pbmdfc3luY2hyb25pemF0 aW9uID0gZGNuMTBfZW5hYmxlX3RpbWluZ19zeW5jaHJvbml6YXRpb24sCi0JLmVuYWJsZV9wZXJf ZnJhbWVfY3J0Y19wb3NpdGlvbl9yZXNldCA9IGRjbjEwX2VuYWJsZV9wZXJfZnJhbWVfY3J0Y19w b3NpdGlvbl9yZXNldCwKLQkudXBkYXRlX2luZm9fZnJhbWUgPSBkY2UxMTBfdXBkYXRlX2luZm9f ZnJhbWUsCi0JLnNlbmRfaW1tZWRpYXRlX3NkcF9tZXNzYWdlID0gZGNuMTBfc2VuZF9pbW1lZGlh dGVfc2RwX21lc3NhZ2UsCi0JLmVuYWJsZV9zdHJlYW0gPSBkY2UxMTBfZW5hYmxlX3N0cmVhbSwK LQkuZGlzYWJsZV9zdHJlYW0gPSBkY2UxMTBfZGlzYWJsZV9zdHJlYW0sCi0JLnVuYmxhbmtfc3Ry ZWFtID0gZGNuMTBfdW5ibGFua19zdHJlYW0sCi0JLmJsYW5rX3N0cmVhbSA9IGRjZTExMF9ibGFu a19zdHJlYW0sCi0JLmVuYWJsZV9hdWRpb19zdHJlYW0gPSBkY2UxMTBfZW5hYmxlX2F1ZGlvX3N0 cmVhbSwKLQkuZGlzYWJsZV9hdWRpb19zdHJlYW0gPSBkY2UxMTBfZGlzYWJsZV9hdWRpb19zdHJl YW0sCi0JLmVuYWJsZV9kaXNwbGF5X3Bvd2VyX2dhdGluZyA9IGRjbjEwX2R1bW15X2Rpc3BsYXlf cG93ZXJfZ2F0aW5nLAotCS5kaXNhYmxlX3BsYW5lID0gZGNuMTBfZGlzYWJsZV9wbGFuZSwKLQku YmxhbmtfcGl4ZWxfZGF0YSA9IGRjbjEwX2JsYW5rX3BpeGVsX2RhdGEsCi0JLnBpcGVfY29udHJv bF9sb2NrID0gZGNuMTBfcGlwZV9jb250cm9sX2xvY2ssCi0JLnByZXBhcmVfYmFuZHdpZHRoID0g ZGNuMTBfcHJlcGFyZV9iYW5kd2lkdGgsCi0JLm9wdGltaXplX2JhbmR3aWR0aCA9IGRjbjEwX29w dGltaXplX2JhbmR3aWR0aCwKLQkucmVzZXRfaHdfY3R4X3dyYXAgPSBkY24xMF9yZXNldF9od19j dHhfd3JhcCwKLQkuZW5hYmxlX3N0cmVhbV90aW1pbmcgPSBkY24xMF9lbmFibGVfc3RyZWFtX3Rp bWluZywKLQkuc2V0X2RyciA9IGRjbjEwX3NldF9kcnIsCi0JLmdldF9wb3NpdGlvbiA9IGRjbjEw X2dldF9wb3NpdGlvbiwKLQkuc2V0X3N0YXRpY19zY3JlZW5fY29udHJvbCA9IGRjbjEwX3NldF9z dGF0aWNfc2NyZWVuX2NvbnRyb2wsCi0JLnNldHVwX3N0ZXJlbyA9IGRjbjEwX3NldHVwX3N0ZXJl bywKLQkuc2V0X2F2bXV0ZSA9IGRjZTExMF9zZXRfYXZtdXRlLAotCS5sb2dfaHdfc3RhdGUgPSBk Y24xMF9sb2dfaHdfc3RhdGUsCi0JLmdldF9od19zdGF0ZSA9IGRjbjEwX2dldF9od19zdGF0ZSwK LQkuY2xlYXJfc3RhdHVzX2JpdHMgPSBkY24xMF9jbGVhcl9zdGF0dXNfYml0cywKLQkud2FpdF9m b3JfbXBjY19kaXNjb25uZWN0ID0gZGNuMTBfd2FpdF9mb3JfbXBjY19kaXNjb25uZWN0LAotCS5l ZHBfYmFja2xpZ2h0X2NvbnRyb2wgPSBkY2UxMTBfZWRwX2JhY2tsaWdodF9jb250cm9sLAotCS5l ZHBfcG93ZXJfY29udHJvbCA9IGRjZTExMF9lZHBfcG93ZXJfY29udHJvbCwKLQkuZWRwX3dhaXRf Zm9yX2hwZF9yZWFkeSA9IGRjZTExMF9lZHBfd2FpdF9mb3JfaHBkX3JlYWR5LAotCS5zZXRfY3Vy c29yX3Bvc2l0aW9uID0gZGNuMTBfc2V0X2N1cnNvcl9wb3NpdGlvbiwKLQkuc2V0X2N1cnNvcl9h dHRyaWJ1dGUgPSBkY24xMF9zZXRfY3Vyc29yX2F0dHJpYnV0ZSwKLQkuc2V0X2N1cnNvcl9zZHJf d2hpdGVfbGV2ZWwgPSBkY24xMF9zZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbCwKLQkuZGlzYWJs ZV9zdHJlYW1fZ2F0aW5nID0gTlVMTCwKLQkuZW5hYmxlX3N0cmVhbV9nYXRpbmcgPSBOVUxMLAot CS5zZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQgPSBkY24xMF9zZXR1cF9wZXJpb2RpY19pbnRlcnJ1 cHQsCi0JLnNldHVwX3Z1cGRhdGVfaW50ZXJydXB0ID0gZGNuMTBfc2V0dXBfdnVwZGF0ZV9pbnRl cnJ1cHQsCi0JLnNldF9jbG9jayA9IGRjbjEwX3NldF9jbG9jaywKLQkuZ2V0X2Nsb2NrID0gZGNu MTBfZ2V0X2Nsb2NrLAotCS5kaWRfdW5kZXJmbG93X29jY3VyID0gZGNuMTBfZGlkX3VuZGVyZmxv d19vY2N1ciwKLQkuaW5pdF9ibGFuayA9IE5VTEwsCi0JLmRpc2FibGVfdmdhID0gZGNuMTBfZGlz YWJsZV92Z2EsCi0JLmJpb3NfZ29sZGVuX2luaXQgPSBkY24xMF9iaW9zX2dvbGRlbl9pbml0LAot CS5wbGFuZV9hdG9taWNfZGlzYWJsZSA9IGRjbjEwX3BsYW5lX2F0b21pY19kaXNhYmxlLAotCS5w bGFuZV9hdG9taWNfcG93ZXJfZG93biA9IGRjbjEwX3BsYW5lX2F0b21pY19wb3dlcl9kb3duLAot CS5lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lID0gZGNuMTBfZW5hYmxlX3Bvd2VyX2dhdGluZ19w bGFuZSwKLQkuZHBwX3BnX2NvbnRyb2wgPSBkY24xMF9kcHBfcGdfY29udHJvbCwKLQkuaHVicF9w Z19jb250cm9sID0gZGNuMTBfaHVicF9wZ19jb250cm9sLAotCS5kc2NfcGdfY29udHJvbCA9IE5V TEwsCi19OwotCi0KLXZvaWQgZGNuMTBfaHdfc2VxdWVuY2VyX2NvbnN0cnVjdChzdHJ1Y3QgZGMg KmRjKQotewotCWRjLT5od3NzID0gZGNuMTBfZnVuY3M7Ci19Ci0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuaApp bmRleCBkMzYxNmIxOTQ4Y2MuLjVhYWQzOTIyYmU2YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2h3X3NlcXVlbmNlci5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9od19zZXF1ZW5jZXIuaApAQCAt MzEsNjQgKzMxLDE1NSBAQAogc3RydWN0IGRjOwogCiB2b2lkIGRjbjEwX2h3X3NlcXVlbmNlcl9j b25zdHJ1Y3Qoc3RydWN0IGRjICpkYyk7Ci1leHRlcm4gdm9pZCBmaWxsX2Rpc3BsYXlfY29uZmln cygKLQljb25zdCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCi0Jc3RydWN0IGRtX3BwX2Rpc3Bs YXlfY29uZmlndXJhdGlvbiAqcHBfZGlzcGxheV9jZmcpOwotCi1ib29sIGlzX3JnYl9jc3BhY2Uo ZW51bSBkY19jb2xvcl9zcGFjZSBvdXRwdXRfY29sb3Jfc3BhY2UpOwotCi12b2lkIGh3c3MxX3Bs YW5lX2F0b21pY19kaXNjb25uZWN0KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlw ZV9jdHgpOwotCi12b2lkIGRjbjEwX3ZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goc3Ry dWN0IGRjICpkYyk7CiAKK2ludCBkY24xMF9nZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYyhz dHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKK3ZvaWQgZGNuMTBfc2V0dXBfdnVwZGF0ZV9pbnRl cnJ1cHQoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7CitlbnVtIGRj X3N0YXR1cyBkY24xMF9lbmFibGVfc3RyZWFtX3RpbWluZygKKwkJc3RydWN0IHBpcGVfY3R4ICpw aXBlX2N0eCwKKwkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAorCQlzdHJ1Y3QgZGMgKmRjKTsK K3ZvaWQgZGNuMTBfb3B0aW1pemVfYmFuZHdpZHRoKAorCQlzdHJ1Y3QgZGMgKmRjLAorCQlzdHJ1 Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwordm9pZCBkY24xMF9wcmVwYXJlX2JhbmR3aWR0aCgKKwkJ c3RydWN0IGRjICpkYywKKwkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKK3ZvaWQgZGNuMTBf cGlwZV9jb250cm9sX2xvY2soCisJc3RydWN0IGRjICpkYywKKwlzdHJ1Y3QgcGlwZV9jdHggKnBp cGUsCisJYm9vbCBsb2NrKTsKK3ZvaWQgZGNuMTBfYmxhbmtfcGl4ZWxfZGF0YSgKKwkJc3RydWN0 IGRjICpkYywKKwkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKKwkJYm9vbCBibGFuayk7Cit2 b2lkIGRjbjEwX3VuYmxhbmtfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCisJCXN0 cnVjdCBkY19saW5rX3NldHRpbmdzICpsaW5rX3NldHRpbmdzKTsKK3ZvaWQgZGNuMTBfcHJvZ3Jh bV9vdXRwdXRfY3NjKHN0cnVjdCBkYyAqZGMsCisJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgs CisJCWVudW0gZGNfY29sb3Jfc3BhY2UgY29sb3JzcGFjZSwKKwkJdWludDE2X3QgKm1hdHJpeCwK KwkJaW50IG9wcF9pZCk7Citib29sIGRjbjEwX3NldF9vdXRwdXRfdHJhbnNmZXJfZnVuYyhzdHJ1 Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorCQkJCWNvbnN0IHN0cnVjdCBk Y19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7Citib29sIGRjbjEwX3NldF9pbnB1dF90cmFuc2Zlcl9m dW5jKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCisJCQljb25zdCBz dHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKK3ZvaWQgZGNuMTBfdXBkYXRlX3Bs YW5lX2FkZHIoY29uc3Qgc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7 Cit2b2lkIGRjbjEwX3VwZGF0ZV9tcGNjKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAq cGlwZV9jdHgpOwordm9pZCBkY24xMF9yZXNldF9od19jdHhfd3JhcCgKKwkJc3RydWN0IGRjICpk YywKKwkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKK3ZvaWQgZGNuMTBfZGlzYWJsZV9wbGFu ZShzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKK3ZvaWQgZGNuMTBf YXBwbHlfY3R4X2Zvcl9zdXJmYWNlKAorCQlzdHJ1Y3QgZGMgKmRjLAorCQljb25zdCBzdHJ1Y3Qg ZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0sCisJCWludCBudW1fcGxhbmVzLAorCQlzdHJ1Y3QgZGNf c3RhdGUgKmNvbnRleHQpOwordm9pZCBkY24xMF9odWJwX3BnX2NvbnRyb2woCisJCXN0cnVjdCBk Y2VfaHdzZXEgKmh3cywKKwkJdW5zaWduZWQgaW50IGh1YnBfaW5zdCwKKwkJYm9vbCBwb3dlcl9v bik7Cit2b2lkIGRjbjEwX2RwcF9wZ19jb250cm9sKAorCQlzdHJ1Y3QgZGNlX2h3c2VxICpod3Ms CisJCXVuc2lnbmVkIGludCBkcHBfaW5zdCwKKwkJYm9vbCBwb3dlcl9vbik7Cit2b2lkIGRjbjEw X2VuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUoCisJc3RydWN0IGRjZV9od3NlcSAqaHdzLAorCWJv b2wgZW5hYmxlKTsKK3ZvaWQgZGNuMTBfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRjICpk Yywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Cit2b2lkIGRjbjEwX2Rpc2FibGVfdmdhKAor CXN0cnVjdCBkY2VfaHdzZXEgKmh3cyk7CiB2b2lkIGRjbjEwX3Byb2dyYW1fcGlwZSgKIAkJc3Ry dWN0IGRjICpkYywKIAkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAkJc3RydWN0IGRjX3N0 YXRlICpjb250ZXh0KTsKLQotdm9pZCBkY24xMF9nZXRfaHdfc3RhdGUoCit2b2lkIGRjbjEwX3By b2dyYW1fZ2FtdXRfcmVtYXAoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Cit2b2lkIGRjbjEw X2luaXRfaHcoc3RydWN0IGRjICpkYyk7Cit2b2lkIGRjbjEwX2luaXRfcGlwZXMoc3RydWN0IGRj ICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKK2VudW0gZGNfc3RhdHVzIGRjZTExMF9h cHBseV9jdHhfdG9faHcoCisJCXN0cnVjdCBkYyAqZGMsCisJCXN0cnVjdCBkY19zdGF0ZSAqY29u dGV4dCk7Cit2b2lkIGRjbjEwX3BsYW5lX2F0b21pY19kaXNjb25uZWN0KHN0cnVjdCBkYyAqZGMs IHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwordm9pZCBkY24xMF91cGRhdGVfZGNodWIoc3Ry dWN0IGRjZV9od3NlcSAqaHdzLCBzdHJ1Y3QgZGNodWJfaW5pdF9kYXRhICpkaF9kYXRhKTsKK3Zv aWQgZGNuMTBfdXBkYXRlX3BlbmRpbmdfc3RhdHVzKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgp Owordm9pZCBkY2UxMTBfcG93ZXJfZG93bihzdHJ1Y3QgZGMgKmRjKTsKK3ZvaWQgZGNlMTEwX2Vu YWJsZV9hY2NlbGVyYXRlZF9tb2RlKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19zdGF0ZSAqY29u dGV4dCk7Cit2b2lkIGRjbjEwX2VuYWJsZV90aW1pbmdfc3luY2hyb25pemF0aW9uKAorCQlzdHJ1 Y3QgZGMgKmRjLAorCQlpbnQgZ3JvdXBfaW5kZXgsCisJCWludCBncm91cF9zaXplLAorCQlzdHJ1 Y3QgcGlwZV9jdHggKmdyb3VwZWRfcGlwZXNbXSk7Cit2b2lkIGRjbjEwX2VuYWJsZV9wZXJfZnJh bWVfY3J0Y19wb3NpdGlvbl9yZXNldCgKKwkJc3RydWN0IGRjICpkYywKKwkJaW50IGdyb3VwX3Np emUsCisJCXN0cnVjdCBwaXBlX2N0eCAqZ3JvdXBlZF9waXBlc1tdKTsKK3ZvaWQgZGNlMTEwX3Vw ZGF0ZV9pbmZvX2ZyYW1lKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwordm9pZCBkY24xMF9z ZW5kX2ltbWVkaWF0ZV9zZHBfbWVzc2FnZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorCQlj b25zdCB1aW50OF90ICpjdXN0b21fc2RwX21lc3NhZ2UsCisJCXVuc2lnbmVkIGludCBzZHBfbWVz c2FnZV9zaXplKTsKK3ZvaWQgZGNlMTEwX2JsYW5rX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBp cGVfY3R4KTsKK3ZvaWQgZGNlMTEwX2VuYWJsZV9hdWRpb19zdHJlYW0oc3RydWN0IHBpcGVfY3R4 ICpwaXBlX2N0eCk7Cit2b2lkIGRjZTExMF9kaXNhYmxlX2F1ZGlvX3N0cmVhbShzdHJ1Y3QgcGlw ZV9jdHggKnBpcGVfY3R4KTsKK2Jvb2wgZGNuMTBfZHVtbXlfZGlzcGxheV9wb3dlcl9nYXRpbmco CiAJCXN0cnVjdCBkYyAqZGMsCi0JCWNoYXIgKnBCdWYsIHVuc2lnbmVkIGludCBidWZTaXplLAor CQl1aW50OF90IGNvbnRyb2xsZXJfaWQsCisJCXN0cnVjdCBkY19iaW9zICpkY2IsCisJCWVudW0g cGlwZV9nYXRpbmdfY29udHJvbCBwb3dlcl9nYXRpbmcpOwordm9pZCBkY24xMF9zZXRfZHJyKHN0 cnVjdCBwaXBlX2N0eCAqKnBpcGVfY3R4LAorCQlpbnQgbnVtX3BpcGVzLCB1bnNpZ25lZCBpbnQg dm1pbiwgdW5zaWduZWQgaW50IHZtYXgsCisJCXVuc2lnbmVkIGludCB2bWlkLCB1bnNpZ25lZCBp bnQgdm1pZF9mcmFtZV9udW1iZXIpOwordm9pZCBkY24xMF9nZXRfcG9zaXRpb24oc3RydWN0IHBp cGVfY3R4ICoqcGlwZV9jdHgsCisJCWludCBudW1fcGlwZXMsCisJCXN0cnVjdCBjcnRjX3Bvc2l0 aW9uICpwb3NpdGlvbik7Cit2b2lkIGRjbjEwX3NldF9zdGF0aWNfc2NyZWVuX2NvbnRyb2woc3Ry dWN0IHBpcGVfY3R4ICoqcGlwZV9jdHgsCisJCWludCBudW1fcGlwZXMsIGNvbnN0IHN0cnVjdCBk Y19zdGF0aWNfc2NyZWVuX2V2ZW50cyAqZXZlbnRzKTsKK3ZvaWQgZGNuMTBfc2V0dXBfc3RlcmVv KHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIHN0cnVjdCBkYyAqZGMpOwordm9pZCBkY2UxMTBf c2V0X2F2bXV0ZShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LCBib29sIGVuYWJsZSk7Cit2b2lk IGRjbjEwX2xvZ19od19zdGF0ZShzdHJ1Y3QgZGMgKmRjLAorCQlzdHJ1Y3QgZGNfbG9nX2J1ZmZl cl9jdHggKmxvZ19jdHgpOwordm9pZCBkY24xMF9nZXRfaHdfc3RhdGUoc3RydWN0IGRjICpkYywK KwkJY2hhciAqcEJ1ZiwKKwkJdW5zaWduZWQgaW50IGJ1ZlNpemUsCiAJCXVuc2lnbmVkIGludCBt YXNrKTsKLQogdm9pZCBkY24xMF9jbGVhcl9zdGF0dXNfYml0cyhzdHJ1Y3QgZGMgKmRjLCB1bnNp Z25lZCBpbnQgbWFzayk7Ci0KLWJvb2wgaXNfbG93ZXJfcGlwZV90cmVlX3Zpc2libGUoc3RydWN0 IHBpcGVfY3R4ICpwaXBlX2N0eCk7Ci0KLWJvb2wgaXNfdXBwZXJfcGlwZV90cmVlX3Zpc2libGUo c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Ci0KLWJvb2wgaXNfcGlwZV90cmVlX3Zpc2libGUo c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Ci0KLXZvaWQgZGNuMTBfcHJvZ3JhbV9wdGVfdm0o c3RydWN0IGRjZV9od3NlcSAqaHdzLCBzdHJ1Y3QgaHVicCAqaHVicCk7Ci0KLXZvaWQgc2V0X2hk cl9tdWx0aXBsaWVyKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwotCit2b2lkIGRjbjEwX3dh aXRfZm9yX21wY2NfZGlzY29ubmVjdCgKKwkJc3RydWN0IGRjICpkYywKKwkJc3RydWN0IHJlc291 cmNlX3Bvb2wgKnJlc19wb29sLAorCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKK3ZvaWQg ZGNlMTEwX2VkcF9iYWNrbGlnaHRfY29udHJvbCgKKwkJc3RydWN0IGRjX2xpbmsgKmxpbmssCisJ CWJvb2wgZW5hYmxlKTsKK3ZvaWQgZGNlMTEwX2VkcF9wb3dlcl9jb250cm9sKAorCQlzdHJ1Y3Qg ZGNfbGluayAqbGluaywKKwkJYm9vbCBwb3dlcl91cCk7Cit2b2lkIGRjZTExMF9lZHBfd2FpdF9m b3JfaHBkX3JlYWR5KAorCQlzdHJ1Y3QgZGNfbGluayAqbGluaywKKwkJYm9vbCBwb3dlcl91cCk7 Cit2b2lkIGRjbjEwX3NldF9jdXJzb3JfcG9zaXRpb24oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0 eCk7Cit2b2lkIGRjbjEwX3NldF9jdXJzb3JfYXR0cmlidXRlKHN0cnVjdCBwaXBlX2N0eCAqcGlw ZV9jdHgpOwordm9pZCBkY24xMF9zZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbChzdHJ1Y3QgcGlw ZV9jdHggKnBpcGVfY3R4KTsKK3ZvaWQgZGNuMTBfc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0KAor CQlzdHJ1Y3QgZGMgKmRjLAorCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorCQllbnVtIHZs aW5lX3NlbGVjdCB2bGluZSk7CitlbnVtIGRjX3N0YXR1cyBkY24xMF9zZXRfY2xvY2soc3RydWN0 IGRjICpkYywKKwkJZW51bSBkY19jbG9ja190eXBlIGNsb2NrX3R5cGUsCisJCXVpbnQzMl90IGNs a19raHosCisJCXVpbnQzMl90IHN0ZXBwaW5nKTsKK3ZvaWQgZGNuMTBfZ2V0X2Nsb2NrKHN0cnVj dCBkYyAqZGMsCisJCWVudW0gZGNfY2xvY2tfdHlwZSBjbG9ja190eXBlLAorCQlzdHJ1Y3QgZGNf Y2xvY2tfY29uZmlnICpjbG9ja19jZmcpOworYm9vbCBkY24xMF9kaWRfdW5kZXJmbG93X29jY3Vy KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwordm9pZCBkY24xMF9i aW9zX2dvbGRlbl9pbml0KHN0cnVjdCBkYyAqZGMpOwordm9pZCBkY24xMF9wbGFuZV9hdG9taWNf cG93ZXJfZG93bihzdHJ1Y3QgZGMgKmRjLAorCQlzdHJ1Y3QgZHBwICpkcHAsCisJCXN0cnVjdCBo dWJwICpodWJwKTsKIHZvaWQgZGNuMTBfZ2V0X3N1cmZhY2VfdmlzdWFsX2NvbmZpcm1fY29sb3Io CiAJCWNvbnN0IHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCXN0cnVjdCB0Z19jb2xvciAq Y29sb3IpOwotCiB2b2lkIGRjbjEwX2dldF9oZHJfdmlzdWFsX2NvbmZpcm1fY29sb3IoCiAJCXN0 cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJCXN0cnVjdCB0Z19jb2xvciAqY29sb3IpOwotCi1i b29sIGRjbjEwX2RpZF91bmRlcmZsb3dfb2NjdXIoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVf Y3R4ICpwaXBlX2N0eCk7Ci0KLXZvaWQgdXBkYXRlX2RjaHVicF9kcHAoCi0Jc3RydWN0IGRjICpk YywKLQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAotCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4 dCk7Ci0KLXN0cnVjdCBwaXBlX2N0eCAqZmluZF90b3BfcGlwZV9mb3Jfc3RyZWFtKAotCQlzdHJ1 Y3QgZGMgKmRjLAotCQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsCi0JCWNvbnN0IHN0cnVjdCBk Y19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7Ci0KLWludCBnZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92 c3luYyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKLQotdm9pZCBkY24xMF9idWlsZF9wcmVz Y2FsZV9wYXJhbXMoc3RydWN0ICBkY19iaWFzX2FuZF9zY2FsZSAqYmlhc19hbmRfc2NhbGUsCi0J CWNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwotdm9pZCBsb2NrX2Fs bF9waXBlcyhzdHJ1Y3QgZGMgKmRjLAotCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCwKLQlib29s IGxvY2spOwordm9pZCBkY24xMF9zZXRfaGRyX211bHRpcGxpZXIoc3RydWN0IHBpcGVfY3R4ICpw aXBlX2N0eCk7Cit2b2lkIGRjbjEwX3ZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2goc3Ry dWN0IGRjICpkYyk7CiAKICNlbmRpZiAvKiBfX0RDX0hXU1NfRENOMTBfSF9fICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVu Y2VyX2RlYnVnLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBf aHdfc2VxdWVuY2VyX2RlYnVnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi41OTZmOTVjMjJlODUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyX2RlYnVnLmgKQEAgLTAsMCArMSw0 MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4K KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQg SE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8KKworI2lmbmRlZiBf X0RDX0hXU1NfRENOMTBfREVCVUdfSF9fCisjZGVmaW5lIF9fRENfSFdTU19EQ04xMF9ERUJVR19I X18KKworI2luY2x1ZGUgImNvcmVfdHlwZXMuaCIKKworc3RydWN0IGRjOworCit2b2lkIGRjbjEw X2NsZWFyX3N0YXR1c19iaXRzKHN0cnVjdCBkYyAqZGMsIHVuc2lnbmVkIGludCBtYXNrKTsKKwor dm9pZCBkY24xMF9sb2dfaHdfc3RhdGUoc3RydWN0IGRjICpkYywKKwkJc3RydWN0IGRjX2xvZ19i dWZmZXJfY3R4ICpsb2dfY3R4KTsKKwordm9pZCBkY24xMF9nZXRfaHdfc3RhdGUoc3RydWN0IGRj ICpkYywKKwkJY2hhciAqcEJ1ZiwKKwkJdW5zaWduZWQgaW50IGJ1ZlNpemUsCisJCXVuc2lnbmVk IGludCBtYXNrKTsKKworI2VuZGlmIC8qIF9fRENfSFdTU19EQ04xMF9ERUJVR19IX18gKi8KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24xMF9pbml0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfaW5pdC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzg5MjNmMzEyMGVlCi0tLSAv ZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEw X2luaXQuYwpAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5k L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv IHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90 aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBh bGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisg KiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBB TlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hB TEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFO IEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00s IE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IK KyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQK KyAqCisgKi8KKworI2luY2x1ZGUgImRjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmgiCisjaW5j bHVkZSAiZGNuMTBfaHdfc2VxdWVuY2VyLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdfc2Vx dWVuY2VyX2Z1bmNzIGRjbjEwX2Z1bmNzID0geworCS5wcm9ncmFtX2dhbXV0X3JlbWFwID0gZGNu MTBfcHJvZ3JhbV9nYW11dF9yZW1hcCwKKwkuaW5pdF9odyA9IGRjbjEwX2luaXRfaHcsCisJLmlu aXRfcGlwZXMgPSBkY24xMF9pbml0X3BpcGVzLAorCS5hcHBseV9jdHhfdG9faHcgPSBkY2UxMTBf YXBwbHlfY3R4X3RvX2h3LAorCS5hcHBseV9jdHhfZm9yX3N1cmZhY2UgPSBkY24xMF9hcHBseV9j dHhfZm9yX3N1cmZhY2UsCisJLnVwZGF0ZV9wbGFuZV9hZGRyID0gZGNuMTBfdXBkYXRlX3BsYW5l X2FkZHIsCisJLnBsYW5lX2F0b21pY19kaXNjb25uZWN0ID0gZGNuMTBfcGxhbmVfYXRvbWljX2Rp c2Nvbm5lY3QsCisJLnByb2dyYW1fcGlwZSA9IGRjbjEwX3Byb2dyYW1fcGlwZSwKKwkudXBkYXRl X2RjaHViID0gZGNuMTBfdXBkYXRlX2RjaHViLAorCS51cGRhdGVfbXBjYyA9IGRjbjEwX3VwZGF0 ZV9tcGNjLAorCS51cGRhdGVfcGVuZGluZ19zdGF0dXMgPSBkY24xMF91cGRhdGVfcGVuZGluZ19z dGF0dXMsCisJLnNldF9pbnB1dF90cmFuc2Zlcl9mdW5jID0gZGNuMTBfc2V0X2lucHV0X3RyYW5z ZmVyX2Z1bmMsCisJLnNldF9vdXRwdXRfdHJhbnNmZXJfZnVuYyA9IGRjbjEwX3NldF9vdXRwdXRf dHJhbnNmZXJfZnVuYywKKwkucHJvZ3JhbV9vdXRwdXRfY3NjID0gZGNuMTBfcHJvZ3JhbV9vdXRw dXRfY3NjLAorCS5wb3dlcl9kb3duID0gZGNlMTEwX3Bvd2VyX2Rvd24sCisJLmVuYWJsZV9hY2Nl bGVyYXRlZF9tb2RlID0gZGNlMTEwX2VuYWJsZV9hY2NlbGVyYXRlZF9tb2RlLAorCS5lbmFibGVf dGltaW5nX3N5bmNocm9uaXphdGlvbiA9IGRjbjEwX2VuYWJsZV90aW1pbmdfc3luY2hyb25pemF0 aW9uLAorCS5lbmFibGVfcGVyX2ZyYW1lX2NydGNfcG9zaXRpb25fcmVzZXQgPSBkY24xMF9lbmFi bGVfcGVyX2ZyYW1lX2NydGNfcG9zaXRpb25fcmVzZXQsCisJLnVwZGF0ZV9pbmZvX2ZyYW1lID0g ZGNlMTEwX3VwZGF0ZV9pbmZvX2ZyYW1lLAorCS5zZW5kX2ltbWVkaWF0ZV9zZHBfbWVzc2FnZSA9 IGRjbjEwX3NlbmRfaW1tZWRpYXRlX3NkcF9tZXNzYWdlLAorCS5lbmFibGVfc3RyZWFtID0gZGNl MTEwX2VuYWJsZV9zdHJlYW0sCisJLmRpc2FibGVfc3RyZWFtID0gZGNlMTEwX2Rpc2FibGVfc3Ry ZWFtLAorCS51bmJsYW5rX3N0cmVhbSA9IGRjbjEwX3VuYmxhbmtfc3RyZWFtLAorCS5ibGFua19z dHJlYW0gPSBkY2UxMTBfYmxhbmtfc3RyZWFtLAorCS5lbmFibGVfYXVkaW9fc3RyZWFtID0gZGNl MTEwX2VuYWJsZV9hdWRpb19zdHJlYW0sCisJLmRpc2FibGVfYXVkaW9fc3RyZWFtID0gZGNlMTEw X2Rpc2FibGVfYXVkaW9fc3RyZWFtLAorCS5lbmFibGVfZGlzcGxheV9wb3dlcl9nYXRpbmcgPSBk Y24xMF9kdW1teV9kaXNwbGF5X3Bvd2VyX2dhdGluZywKKwkuZGlzYWJsZV9wbGFuZSA9IGRjbjEw X2Rpc2FibGVfcGxhbmUsCisJLmJsYW5rX3BpeGVsX2RhdGEgPSBkY24xMF9ibGFua19waXhlbF9k YXRhLAorCS5waXBlX2NvbnRyb2xfbG9jayA9IGRjbjEwX3BpcGVfY29udHJvbF9sb2NrLAorCS5w cmVwYXJlX2JhbmR3aWR0aCA9IGRjbjEwX3ByZXBhcmVfYmFuZHdpZHRoLAorCS5vcHRpbWl6ZV9i YW5kd2lkdGggPSBkY24xMF9vcHRpbWl6ZV9iYW5kd2lkdGgsCisJLnJlc2V0X2h3X2N0eF93cmFw ID0gZGNuMTBfcmVzZXRfaHdfY3R4X3dyYXAsCisJLmVuYWJsZV9zdHJlYW1fdGltaW5nID0gZGNu MTBfZW5hYmxlX3N0cmVhbV90aW1pbmcsCisJLnNldF9kcnIgPSBkY24xMF9zZXRfZHJyLAorCS5n ZXRfcG9zaXRpb24gPSBkY24xMF9nZXRfcG9zaXRpb24sCisJLnNldF9zdGF0aWNfc2NyZWVuX2Nv bnRyb2wgPSBkY24xMF9zZXRfc3RhdGljX3NjcmVlbl9jb250cm9sLAorCS5zZXR1cF9zdGVyZW8g PSBkY24xMF9zZXR1cF9zdGVyZW8sCisJLnNldF9hdm11dGUgPSBkY2UxMTBfc2V0X2F2bXV0ZSwK KwkubG9nX2h3X3N0YXRlID0gZGNuMTBfbG9nX2h3X3N0YXRlLAorCS5nZXRfaHdfc3RhdGUgPSBk Y24xMF9nZXRfaHdfc3RhdGUsCisJLmNsZWFyX3N0YXR1c19iaXRzID0gZGNuMTBfY2xlYXJfc3Rh dHVzX2JpdHMsCisJLndhaXRfZm9yX21wY2NfZGlzY29ubmVjdCA9IGRjbjEwX3dhaXRfZm9yX21w Y2NfZGlzY29ubmVjdCwKKwkuZWRwX2JhY2tsaWdodF9jb250cm9sID0gZGNlMTEwX2VkcF9iYWNr bGlnaHRfY29udHJvbCwKKwkuZWRwX3Bvd2VyX2NvbnRyb2wgPSBkY2UxMTBfZWRwX3Bvd2VyX2Nv bnRyb2wsCisJLmVkcF93YWl0X2Zvcl9ocGRfcmVhZHkgPSBkY2UxMTBfZWRwX3dhaXRfZm9yX2hw ZF9yZWFkeSwKKwkuc2V0X2N1cnNvcl9wb3NpdGlvbiA9IGRjbjEwX3NldF9jdXJzb3JfcG9zaXRp b24sCisJLnNldF9jdXJzb3JfYXR0cmlidXRlID0gZGNuMTBfc2V0X2N1cnNvcl9hdHRyaWJ1dGUs CisJLnNldF9jdXJzb3Jfc2RyX3doaXRlX2xldmVsID0gZGNuMTBfc2V0X2N1cnNvcl9zZHJfd2hp dGVfbGV2ZWwsCisJLmRpc2FibGVfc3RyZWFtX2dhdGluZyA9IE5VTEwsCisJLmVuYWJsZV9zdHJl YW1fZ2F0aW5nID0gTlVMTCwKKwkuc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0ID0gZGNuMTBfc2V0 dXBfcGVyaW9kaWNfaW50ZXJydXB0LAorCS5zZXR1cF92dXBkYXRlX2ludGVycnVwdCA9IGRjbjEw X3NldHVwX3Z1cGRhdGVfaW50ZXJydXB0LAorCS5zZXRfY2xvY2sgPSBkY24xMF9zZXRfY2xvY2ss CisJLmdldF9jbG9jayA9IGRjbjEwX2dldF9jbG9jaywKKwkuZGlkX3VuZGVyZmxvd19vY2N1ciA9 IGRjbjEwX2RpZF91bmRlcmZsb3dfb2NjdXIsCisJLmluaXRfYmxhbmsgPSBOVUxMLAorCS5kaXNh YmxlX3ZnYSA9IGRjbjEwX2Rpc2FibGVfdmdhLAorCS5iaW9zX2dvbGRlbl9pbml0ID0gZGNuMTBf Ymlvc19nb2xkZW5faW5pdCwKKwkucGxhbmVfYXRvbWljX2Rpc2FibGUgPSBkY24xMF9wbGFuZV9h dG9taWNfZGlzYWJsZSwKKwkucGxhbmVfYXRvbWljX3Bvd2VyX2Rvd24gPSBkY24xMF9wbGFuZV9h dG9taWNfcG93ZXJfZG93biwKKwkuZW5hYmxlX3Bvd2VyX2dhdGluZ19wbGFuZSA9IGRjbjEwX2Vu YWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUsCisJLmRwcF9wZ19jb250cm9sID0gZGNuMTBfZHBwX3Bn X2NvbnRyb2wsCisJLmh1YnBfcGdfY29udHJvbCA9IGRjbjEwX2h1YnBfcGdfY29udHJvbCwKKwku ZHNjX3BnX2NvbnRyb2wgPSBOVUxMLAorCS5nZXRfc3VyZmFjZV92aXN1YWxfY29uZmlybV9jb2xv ciA9IGRjbjEwX2dldF9zdXJmYWNlX3Zpc3VhbF9jb25maXJtX2NvbG9yLAorCS5nZXRfaGRyX3Zp c3VhbF9jb25maXJtX2NvbG9yID0gZGNuMTBfZ2V0X2hkcl92aXN1YWxfY29uZmlybV9jb2xvciwK Kwkuc2V0X2hkcl9tdWx0aXBsaWVyID0gZGNuMTBfc2V0X2hkcl9tdWx0aXBsaWVyLAorCS52ZXJp ZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoID0gZGNuMTBfdmVyaWZ5X2FsbG93X3BzdGF0ZV9j aGFuZ2VfaGlnaCwKKwkuZ2V0X3Z1cGRhdGVfb2Zmc2V0X2Zyb21fdnN5bmMgPSBkY24xMF9nZXRf dnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYywKK307CisKK3ZvaWQgZGNuMTBfaHdfc2VxdWVuY2Vy X2NvbnN0cnVjdChzdHJ1Y3QgZGMgKmRjKQoreworCWRjLT5od3NzID0gZGNuMTBfZnVuY3M7Cit9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBf aW5pdC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX2luaXQu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhjNmZkN2I4NDRhNAot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9k Y24xMF9pbml0LmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IEFkdmFu Y2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisg KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQg U0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBB TUQKKyAqCisgKi8KKworI2lmbmRlZiBfX0RDX0RDTjEwX0lOSVRfSF9fCisjZGVmaW5lIF9fRENf RENOMTBfSU5JVF9IX18KKworc3RydWN0IGRjOworCit2b2lkIGRjbjEwX2h3X3NlcXVlbmNlcl9j b25zdHJ1Y3Qoc3RydWN0IGRjICpkYyk7CisKKyNlbmRpZiAvKiBfX0RDX0RDTjEwX0lOSVRfSF9f ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNu MTBfcmVzb3VyY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24xMC9kY24x MF9yZXNvdXJjZS5jCmluZGV4IDYwMjc2OWUyZjRhNy4uM2I3MTg5OGU4NTllIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfcmVzb3VyY2Uu YwpAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiCiAjaW5jbHVkZSAi ZGMuaCIKIAorI2luY2x1ZGUgImRjbjEwX2luaXQuaCIKKwogI2luY2x1ZGUgInJlc291cmNlLmgi CiAjaW5jbHVkZSAiaW5jbHVkZS9pcnFfc2VydmljZV9pbnRlcmZhY2UuaCIKICNpbmNsdWRlICJk Y24xMF9yZXNvdXJjZS5oIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjbjIwL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIw L01ha2VmaWxlCmluZGV4IDg5YzU4MTE5NmM0Yy4uYzQ5ZWJlN2E2ZmQ5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL01ha2VmaWxlCkBAIC0xLDcgKzEsNyBAQAog IwogIyBNYWtlZmlsZSBmb3IgRENOLgogCi1EQ04yMCA9IGRjbjIwX3Jlc291cmNlLm8gZGNuMjBf aHdzZXEubyBkY24yMF9kcHAubyBkY24yMF9kcHBfY20ubyBkY24yMF9odWJwLm8gXAorRENOMjAg PSBkY24yMF9yZXNvdXJjZS5vIGRjbjIwX2luaXQubyBkY24yMF9od3NlcS5vIGRjbjIwX2RwcC5v IGRjbjIwX2RwcF9jbS5vIGRjbjIwX2h1YnAubyBcCiAJCWRjbjIwX21wYy5vIGRjbjIwX29wcC5v IGRjbjIwX2h1YmJ1Yi5vIGRjbjIwX29wdGMubyBkY24yMF9tbWh1YmJ1Yi5vIFwKIAkJZGNuMjBf c3RyZWFtX2VuY29kZXIubyBkY24yMF9saW5rX2VuY29kZXIubyBkY24yMF9kY2NnLm8gXAogCQlk Y24yMF92bWlkLm8gZGNuMjBfZHdiLm8gZGNuMjBfZHdiX3NjbC5vCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaHdzZXEuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9od3NlcS5jCmluZGV4IDg2ODA5OWZi ZThiYS4uMDNlNGFhZmIyMzdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvZGNuMjAvZGNuMjBfaHdzZXEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvZGNuMjAvZGNuMjBfaHdzZXEuYwpAQCAtMjUsMTUgKzI1LDE1IEBACiAjaW5jbHVkZSA8 bGludXgvZGVsYXkuaD4KIAogI2luY2x1ZGUgImRtX3NlcnZpY2VzLmgiCisjaW5jbHVkZSAiYmFz aWNzL2RjX2NvbW1vbi5oIgogI2luY2x1ZGUgImRtX2hlbHBlcnMuaCIKICNpbmNsdWRlICJjb3Jl X3R5cGVzLmgiCiAjaW5jbHVkZSAicmVzb3VyY2UuaCIKLSNpbmNsdWRlICJkY24yMC9kY24yMF9y ZXNvdXJjZS5oIgotI2luY2x1ZGUgImRjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmgiCi0jaW5j bHVkZSAiZGNuMTAvZGNuMTBfaHdfc2VxdWVuY2VyLmgiCisjaW5jbHVkZSAiZGNuMjBfcmVzb3Vy Y2UuaCIKICNpbmNsdWRlICJkY24yMF9od3NlcS5oIgogI2luY2x1ZGUgImRjZS9kY2VfaHdzZXEu aCIKLSNpbmNsdWRlICJkY24yMC9kY24yMF9kc2MuaCIKKyNpbmNsdWRlICJkY24yMF9kc2MuaCIK KyNpbmNsdWRlICJkY24yMF9vcHRjLmgiCiAjaW5jbHVkZSAiYWJtLmgiCiAjaW5jbHVkZSAiY2xr X21nci5oIgogI2luY2x1ZGUgImRtY3UuaCIKQEAgLTQzLDEwICs0Myw5IEBACiAjaW5jbHVkZSAi aXBwLmgiCiAjaW5jbHVkZSAibXBjLmgiCiAjaW5jbHVkZSAibWNpZl93Yi5oIgorI2luY2x1ZGUg ImRjaHViYnViLmgiCiAjaW5jbHVkZSAicmVnX2hlbHBlci5oIgogI2luY2x1ZGUgImRjbjEwL2Rj bjEwX2NtX2NvbW1vbi5oIgotI2luY2x1ZGUgImRjbjEwL2RjbjEwX2h1YmJ1Yi5oIgotI2luY2x1 ZGUgImRjbjEwL2RjbjEwX29wdGMuaCIKICNpbmNsdWRlICJkY19saW5rX2RwLmgiCiAjaW5jbHVk ZSAidm1faGVscGVyLmgiCiAjaW5jbHVkZSAiZGNjZy5oIgpAQCAtNjIsNyArNjEsMTI1IEBACiAj ZGVmaW5lIEZOKHJlZ19uYW1lLCBmaWVsZF9uYW1lKSBcCiAJaHdzLT5zaGlmdHMtPmZpZWxkX25h bWUsIGh3cy0+bWFza3MtPmZpZWxkX25hbWUKIAotc3RhdGljIHZvaWQgZGNuMjBfZW5hYmxlX3Bv d2VyX2dhdGluZ19wbGFuZSgKK3N0YXRpYyBpbnQgZmluZF9mcmVlX2dzbF9ncm91cChjb25zdCBz dHJ1Y3QgZGMgKmRjKQoreworCWlmIChkYy0+cmVzX3Bvb2wtPmdzbF9ncm91cHMuZ3NsXzAgPT0g MCkKKwkJcmV0dXJuIDE7CisJaWYgKGRjLT5yZXNfcG9vbC0+Z3NsX2dyb3Vwcy5nc2xfMSA9PSAw KQorCQlyZXR1cm4gMjsKKwlpZiAoZGMtPnJlc19wb29sLT5nc2xfZ3JvdXBzLmdzbF8yID09IDAp CisJCXJldHVybiAzOworCisJcmV0dXJuIDA7Cit9CisKKy8qIE5PVEU6IFRoaXMgaXMgbm90IGEg Z2VuZXJpYyBzZXR1cF9nc2wgZnVuY3Rpb24gKGhlbmNlIHRoZSBzdWZmaXggYXNfbG9jaykKKyAq IFRoaXMgaXMgb25seSB1c2VkIHRvIGxvY2sgcGlwZXMgaW4gcGlwZSBzcGxpdHRpbmcgY2FzZSB3 aXRoIGltbWVkaWF0ZSBmbGlwCisgKiBPcmRpbmFyeSBNUEMvT1RHIGxvY2tzIHN1cHByZXNzIFZV UERBVEUgd2hpY2ggZG9lc24ndCBoZWxwIHdpdGggaW1tZWRpYXRlLAorICogc28gd2UgZ2V0IHRl YXJpbmcgd2l0aCBmcmVlc3luYyBzaW5jZSB3ZSBjYW5ub3QgZmxpcCBtdWx0aXBsZSBwaXBlcwor ICogYXRvbWljYWxseS4KKyAqIFdlIHVzZSBHU0wgZm9yIHRoaXM6CisgKiAtIGltbWVkaWF0ZSBm bGlwOiBmaW5kIGZpcnN0IGF2YWlsYWJsZSBHU0wgZ3JvdXAgaWYgbm90IGFscmVhZHkgYXNzaWdu ZWQKKyAqICAgICAgICAgICAgICAgICAgIHByb2dyYW0gZ3NsIHdpdGggdGhhdCBncm91cCwgc2V0 IGN1cnJlbnQgT1RHIGFzIG1hc3RlcgorICogICAgICAgICAgICAgICAgICAgYW5kIGFsd2F5cyB1 cyAweDQgPSBBTkQgb2YgZmxpcF9yZWFkeSBmcm9tIGFsbCBwaXBlcworICogLSB2c3luYyBmbGlw OiBkaXNhYmxlIEdTTCBpZiB1c2VkCisgKgorICogR3JvdXBzIGluIHN0cmVhbV9yZXMgYXJlIHN0 b3JlZCBhcyArMSBmcm9tIEhXIHJlZ2lzdGVycywgaS5lLgorICogZ3NsXzAgPD0+IHBpcGVfY3R4 LT5zdHJlYW1fcmVzLmdzbF9ncm91cCA9PSAxCisgKiBVc2luZyBhIG1hZ2ljIHZhbHVlIGxpa2Ug LTEgd291bGQgcmVxdWlyZSB0cmFja2luZyBhbGwgaW5pdHMvcmVzZXRzCisgKi8KK3N0YXRpYyB2 b2lkIGRjbjIwX3NldHVwX2dzbF9ncm91cF9hc19sb2NrKAorCQljb25zdCBzdHJ1Y3QgZGMgKmRj LAorCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorCQlib29sIGVuYWJsZSkKK3sKKwlzdHJ1 Y3QgZ3NsX3BhcmFtcyBnc2w7CisJaW50IGdyb3VwX2lkeDsKKworCW1lbXNldCgmZ3NsLCAwLCBz aXplb2Yoc3RydWN0IGdzbF9wYXJhbXMpKTsKKworCWlmIChlbmFibGUpIHsKKwkJLyogcmV0dXJu IGlmIGdyb3VwIGFscmVhZHkgYXNzaWduZWQgc2luY2UgR1NMIHdhcyBzZXQgdXAKKwkJICogZm9y IHZzeW5jIGZsaXAsIHdlIHdvdWxkIHVuYXNzaWduIHNvIGl0IGNhbid0IGJlICJsZWZ0IG92ZXIi CisJCSAqLworCQlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMuZ3NsX2dyb3VwID4gMCkKKwkJCXJl dHVybjsKKworCQlncm91cF9pZHggPSBmaW5kX2ZyZWVfZ3NsX2dyb3VwKGRjKTsKKwkJQVNTRVJU KGdyb3VwX2lkeCAhPSAwKTsKKwkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuZ3NsX2dyb3VwID0gZ3Jv dXBfaWR4OworCisJCS8qIHNldCBnc2wgZ3JvdXAgcmVnIGZpZWxkIGFuZCBtYXJrIHJlc291cmNl IHVzZWQgKi8KKwkJc3dpdGNoIChncm91cF9pZHgpIHsKKwkJY2FzZSAxOgorCQkJZ3NsLmdzbDBf ZW4gPSAxOworCQkJZGMtPnJlc19wb29sLT5nc2xfZ3JvdXBzLmdzbF8wID0gMTsKKwkJCWJyZWFr OworCQljYXNlIDI6CisJCQlnc2wuZ3NsMV9lbiA9IDE7CisJCQlkYy0+cmVzX3Bvb2wtPmdzbF9n cm91cHMuZ3NsXzEgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgMzoKKwkJCWdzbC5nc2wyX2VuID0g MTsKKwkJCWRjLT5yZXNfcG9vbC0+Z3NsX2dyb3Vwcy5nc2xfMiA9IDE7CisJCQlicmVhazsKKwkJ ZGVmYXVsdDoKKwkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7CisJCQlyZXR1cm47IC8vIGludmFsaWQg Y2FzZQorCQl9CisJCWdzbC5nc2xfbWFzdGVyX2VuID0gMTsKKwl9IGVsc2UgeworCQlncm91cF9p ZHggPSBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5nc2xfZ3JvdXA7CisJCWlmIChncm91cF9pZHggPT0g MCkKKwkJCXJldHVybjsgLy8gaWYgbm90IGluIHVzZSwganVzdCByZXR1cm4KKworCQlwaXBlX2N0 eC0+c3RyZWFtX3Jlcy5nc2xfZ3JvdXAgPSAwOworCisJCS8qIHVuc2V0IGdzbCBncm91cCByZWcg ZmllbGQgYW5kIG1hcmsgcmVzb3VyY2UgZnJlZSAqLworCQlzd2l0Y2ggKGdyb3VwX2lkeCkgewor CQljYXNlIDE6CisJCQlnc2wuZ3NsMF9lbiA9IDA7CisJCQlkYy0+cmVzX3Bvb2wtPmdzbF9ncm91 cHMuZ3NsXzAgPSAwOworCQkJYnJlYWs7CisJCWNhc2UgMjoKKwkJCWdzbC5nc2wxX2VuID0gMDsK KwkJCWRjLT5yZXNfcG9vbC0+Z3NsX2dyb3Vwcy5nc2xfMSA9IDA7CisJCQlicmVhazsKKwkJY2Fz ZSAzOgorCQkJZ3NsLmdzbDJfZW4gPSAwOworCQkJZGMtPnJlc19wb29sLT5nc2xfZ3JvdXBzLmdz bF8yID0gMDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJQlJFQUtfVE9fREVCVUdHRVIoKTsK KwkJCXJldHVybjsKKwkJfQorCQlnc2wuZ3NsX21hc3Rlcl9lbiA9IDA7CisJfQorCisJLyogYXQg dGhpcyBwb2ludCB3ZSB3YW50IHRvIHByb2dyYW0gd2hldGhlciBpdCdzIHRvIGVuYWJsZSBvciBk aXNhYmxlICovCisJaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+c2V0X2dzbCAh PSBOVUxMICYmCisJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+c2V0X2dzbF9zb3Vy Y2Vfc2VsZWN0ICE9IE5VTEwpIHsKKwkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNzLT5z ZXRfZ3NsKAorCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsCisJCQkmZ3NsKTsKKworCQlwaXBl X2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9nc2xfc291cmNlX3NlbGVjdCgKKwkJCXBp cGVfY3R4LT5zdHJlYW1fcmVzLnRnLCBncm91cF9pZHgsCWVuYWJsZSA/IDQgOiAwKTsKKwl9IGVs c2UKKwkJQlJFQUtfVE9fREVCVUdHRVIoKTsKK30KKwordm9pZCBkY24yMF9zZXRfZmxpcF9jb250 cm9sX2dzbCgKKwkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKKwkJYm9vbCBmbGlwX2ltbWVk aWF0ZSkKK3sKKwlpZiAocGlwZV9jdHggJiYgcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5mdW5j cy0+aHVicF9zZXRfZmxpcF9jb250cm9sX3N1cmZhY2VfZ3NsKQorCQlwaXBlX2N0eC0+cGxhbmVf cmVzLmh1YnAtPmZ1bmNzLT5odWJwX3NldF9mbGlwX2NvbnRyb2xfc3VyZmFjZV9nc2woCisJCQkJ cGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLCBmbGlwX2ltbWVkaWF0ZSk7CisKK30KKwordm9pZCBk Y24yMF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAogCXN0cnVjdCBkY2VfaHdzZXEgKmh3cywK IAlib29sIGVuYWJsZSkKIHsKQEAgLTEyNiw0NCArMjQzLDYgQEAgdm9pZCBkY24yMF9kY2NnX2lu aXQoc3RydWN0IGRjZV9od3NlcSAqaHdzKQogCS8qIFRoaXMgdmFsdWUgaXMgZGVwZW5kZW50IG9u IHRoZSBoYXJkd2FyZSBwaXBlbGluZSBkZWxheSBzbyBzZXQgb25jZSBwZXIgU09DICovCiAJUkVH X1dSSVRFKERJU1BDTEtfRlJFUV9DSEFOR0VfQ05UTCwgMHg4MDEwMDNjKTsKIH0KLXZvaWQgZGNu MjBfZGlzcGxheV9pbml0KHN0cnVjdCBkYyAqZGMpCi17Ci0Jc3RydWN0IGRjZV9od3NlcSAqaHdz ID0gZGMtPmh3c2VxOwotCi0JLyogUkJCTUlGCi0JICogZGlzYWJsZSBSQkJNSUYgdGltZW91dCBk ZXRlY3Rpb24gZm9yIGFsbCBjbGllbnRzCi0JICogRW5zdXJlIFJCQk1JRiBkb2VzIG5vdCBkcm9w IHJlZ2lzdGVyIGFjY2Vzc2VzIGR1ZSB0byB0aGUgcGVyLWNsaWVudCB0aW1lb3V0Ci0JICovCi0J UkVHX1dSSVRFKFJCQk1JRl9USU1FT1VUX0RJUywgMHhGRkZGRkZGRik7Ci0JUkVHX1dSSVRFKFJC Qk1JRl9USU1FT1VUX0RJU18yLCAweEZGRkZGRkZGKTsKLQotCS8qIERDQ0cgKi8KLQlkY24yMF9k Y2NnX2luaXQoaHdzKTsKLQotCVJFR19VUERBVEUoRENfTUVNX0dMT0JBTF9QV1JfUkVRX0NOVEws IERDX01FTV9HTE9CQUxfUFdSX1JFUV9ESVMsIDApOwotCi0JLyogRENIVUIvTU1IVUJCVUIKLQkg KiBzZXQgZ2xvYmFsIHRpbWVyIHJlZmNsayBkaXZpZGVyCi0JICogMTAwTWh6IHJlZmNsayAtPiAy Ci0JICogMjdNaHogcmVmY2xrIC0+ICAxCi0JICogNDhNaHogcmVmY2xrIC0+ICAxCi0JICovCi0J UkVHX1VQREFURShEQ0hVQkJVQl9HTE9CQUxfVElNRVJfQ05UTCwgRENIVUJCVUJfR0xPQkFMX1RJ TUVSX1JFRkRJViwgMik7Ci0JUkVHX1VQREFURShEQ0hVQkJVQl9HTE9CQUxfVElNRVJfQ05UTCwg RENIVUJCVUJfR0xPQkFMX1RJTUVSX0VOQUJMRSwgMSk7Ci0JUkVHX1dSSVRFKFJFRkNMS19DTlRM LCAwKTsKLQotCS8qIE9QVEMKLQkgKiBPVEdfQ09OVFJPTC5PVEdfRElTQUJMRV9QT0lOVF9DTlRM ID0gMHgzOyB3aWxsIGJlIHNldCBkdXJpbmcgb3B0YzJfZW5hYmxlX2NydGMKLQkgKi8KLQotCS8q IEFaCi0JICogZGVmYXVsdCB2YWx1ZSBpcyAweDY0IGZvciAxMDBNaHogcmVmIGNsb2NrLCBpZiB0 aGUgcmVmIGNsb2NrIGlzIDEwME1oeiwgbm8gbmVlZCB0byBwcm9ncmFtIHRoaXMgcmVnaXNlciwK LQkgKiBpZiBub3QsIGl0IHNob3VsZCBiZSBwcm9ncmFtbWVkIGFjY29yZGluZyB0byB0aGUgcmVm IGNsb2NrCi0JICovCi0JUkVHX1VQREFURShBWkFMSUFfQVVESU9fRFRPLCBBWkFMSUFfQVVESU9f RFRPX01PRFVMRSwgMHg2NCk7Ci0JLyogRW5hYmxlIGNvbnRyb2xsZXIgY2xvY2sgZ2F0aW5nICov Ci0JUkVHX1dSSVRFKEFaQUxJQV9DT05UUk9MTEVSX0NMT0NLX0dBVElORywgMHgxKTsKLX0KIAog dm9pZCBkY24yMF9kaXNhYmxlX3ZnYSgKIAlzdHJ1Y3QgZGNlX2h3c2VxICpod3MpCkBAIC0xNzYs MTUgKzI1NSwxNSBAQCB2b2lkIGRjbjIwX2Rpc2FibGVfdmdhKAogCVJFR19XUklURShENlZHQV9D T05UUk9MLCAwKTsKIH0KIAotdm9pZCBkY24yMF9wcm9ncmFtX3RyaXBsZUJ1ZmZlcigKK3ZvaWQg ZGNuMjBfcHJvZ3JhbV90cmlwbGVfYnVmZmVyKAogCWNvbnN0IHN0cnVjdCBkYyAqZGMsCiAJc3Ry dWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKLQlib29sIGVuYWJsZVRyaXBsZUJ1ZmZlcikKKwlib29s IGVuYWJsZV90cmlwbGVfYnVmZmVyKQogewogCWlmIChwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAg JiYgcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwLT5mdW5jcykgewogCQlwaXBlX2N0eC0+cGxhbmVf cmVzLmh1YnAtPmZ1bmNzLT5odWJwX2VuYWJsZV90cmlwbGVCdWZmZXIoCiAJCQlwaXBlX2N0eC0+ cGxhbmVfcmVzLmh1YnAsCi0JCQllbmFibGVUcmlwbGVCdWZmZXIpOworCQkJZW5hYmxlX3RyaXBs ZV9idWZmZXIpOwogCX0KIH0KIApAQCAtMjQwLDEwICszMTksMTAgQEAgdm9pZCBkY24yMF9pbml0 X2JsYW5rKAogCQkJCW90Z19hY3RpdmVfaGVpZ2h0KTsKIAl9CiAKLQlkY24yMF9od3NzX3dhaXRf Zm9yX2JsYW5rX2NvbXBsZXRlKG9wcCk7CisJZGMtPmh3c3Mud2FpdF9mb3JfYmxhbmtfY29tcGxl dGUob3BwKTsKIH0KIAotc3RhdGljIHZvaWQgZGNuMjBfZHNjX3BnX2NvbnRyb2woCit2b2lkIGRj bjIwX2RzY19wZ19jb250cm9sKAogCQlzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCiAJCXVuc2lnbmVk IGludCBkc2NfaW5zdCwKIAkJYm9vbCBwb3dlcl9vbikKQEAgLTMyMCw3ICszOTksNyBAQCBzdGF0 aWMgdm9pZCBkY24yMF9kc2NfcGdfY29udHJvbCgKIAkJUkVHX1NFVChEQ19JUF9SRVFVRVNUX0NO VEwsIDAsIElQX1JFUVVFU1RfRU4sIDApOwogfQogCi1zdGF0aWMgdm9pZCBkY24yMF9kcHBfcGdf Y29udHJvbCgKK3ZvaWQgZGNuMjBfZHBwX3BnX2NvbnRyb2woCiAJCXN0cnVjdCBkY2VfaHdzZXEg Kmh3cywKIAkJdW5zaWduZWQgaW50IGRwcF9pbnN0LAogCQlib29sIHBvd2VyX29uKQpAQCAtMzk0 LDcgKzQ3Myw3IEBAIHN0YXRpYyB2b2lkIGRjbjIwX2RwcF9wZ19jb250cm9sKAogfQogCiAKLXN0 YXRpYyB2b2lkIGRjbjIwX2h1YnBfcGdfY29udHJvbCgKK3ZvaWQgZGNuMjBfaHVicF9wZ19jb250 cm9sKAogCQlzdHJ1Y3QgZGNlX2h3c2VxICpod3MsCiAJCXVuc2lnbmVkIGludCBodWJwX2luc3Qs CiAJCWJvb2wgcG93ZXJfb24pCkBAIC00NzEsNyArNTUwLDcgQEAgc3RhdGljIHZvaWQgZGNuMjBf aHVicF9wZ19jb250cm9sKAogLyogZGlzYWJsZSBIVyB1c2VkIGJ5IHBsYW5lLgogICogbm90ZTog IGNhbm5vdCBkaXNhYmxlIHVudGlsIGRpc2Nvbm5lY3QgaXMgY29tcGxldGUKICAqLwotc3RhdGlj IHZvaWQgZGNuMjBfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0IGRjICpkYywgc3RydWN0IHBp cGVfY3R4ICpwaXBlX2N0eCkKK3ZvaWQgZGNuMjBfcGxhbmVfYXRvbWljX2Rpc2FibGUoc3RydWN0 IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgaHVicCAqaHVi cCA9IHBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicDsKIAlzdHJ1Y3QgZHBwICpkcHAgPSBwaXBlX2N0 eC0+cGxhbmVfcmVzLmRwcDsKQEAgLTU5MSw3ICs2NzAsNyBAQCBlbnVtIGRjX3N0YXR1cyBkY24y MF9lbmFibGVfc3RyZWFtX3RpbWluZygKIAkJcmV0dXJuIERDX0VSUk9SX1VORVhQRUNURUQ7CiAJ fQogCi0JZGNuMjBfaHdzc193YWl0X2Zvcl9ibGFua19jb21wbGV0ZShwaXBlX2N0eC0+c3RyZWFt X3Jlcy5vcHApOworCWRjLT5od3NzLndhaXRfZm9yX2JsYW5rX2NvbXBsZXRlKHBpcGVfY3R4LT5z dHJlYW1fcmVzLm9wcCk7CiAKIAlwYXJhbXMudmVydGljYWxfdG90YWxfbWluID0gc3RyZWFtLT5h ZGp1c3Qudl90b3RhbF9taW47CiAJcGFyYW1zLnZlcnRpY2FsX3RvdGFsX21heCA9IHN0cmVhbS0+ YWRqdXN0LnZfdG90YWxfbWF4OwpAQCAtNjQ3LDcgKzcyNiw3IEBAIHZvaWQgZGNuMjBfcHJvZ3Jh bV9vdXRwdXRfY3NjKHN0cnVjdCBkYyAqZGMsCiAJfQogfQogCi1ib29sIGRjbjIwX3NldF9vdXRw dXRfdHJhbnNmZXJfZnVuYyhzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorYm9vbCBkY24yMF9z ZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpw aXBlX2N0eCwKIAkJCQljb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRlICpzdHJlYW0pCiB7CiAJ aW50IG1wY2NfaWQgPSBwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAtPmluc3Q7CkBAIC03MzcsOCAr ODE2LDkgQEAgYm9vbCBkY24yMF9zZXRfc2hhcGVyXzNkbHV0KAogCXJldHVybiByZXN1bHQ7CiB9 CiAKLWJvb2wgZGNuMjBfc2V0X2lucHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpw aXBlX2N0eCwKLQkJCQkJICBjb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl KQorYm9vbCBkY24yMF9zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYyhzdHJ1Y3QgZGMgKmRjLAorCQkJ CXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCisJCQkJY29uc3Qgc3RydWN0IGRjX3BsYW5lX3N0 YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHBwICpkcHBfYmFzZSA9IHBpcGVfY3R4LT5w bGFuZV9yZXMuZHBwOwogCWNvbnN0IHN0cnVjdCBkY190cmFuc2Zlcl9mdW5jICp0ZiA9IE5VTEw7 CkBAIC03NDgsOCArODI4LDggQEAgYm9vbCBkY24yMF9zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYyhz dHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCWlmIChkcHBfYmFzZSA9PSBOVUxMIHx8IHBsYW5l X3N0YXRlID09IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKIAotCWRjbjIwX3NldF9zaGFwZXJfM2Rs dXQocGlwZV9jdHgsIHBsYW5lX3N0YXRlKTsKLQlkY24yMF9zZXRfYmxlbmRfbHV0KHBpcGVfY3R4 LCBwbGFuZV9zdGF0ZSk7CisJZGMtPmh3c3Muc2V0X3NoYXBlcl8zZGx1dChwaXBlX2N0eCwgcGxh bmVfc3RhdGUpOworCWRjLT5od3NzLnNldF9ibGVuZF9sdXQocGlwZV9jdHgsIHBsYW5lX3N0YXRl KTsKIAogCWlmIChwbGFuZV9zdGF0ZS0+aW5fdHJhbnNmZXJfZnVuYykKIAkJdGYgPSBwbGFuZV9z dGF0ZS0+aW5fdHJhbnNmZXJfZnVuYzsKQEAgLTgxNCw3ICs4OTQsNyBAQCBib29sIGRjbjIwX3Nl dF9pbnB1dF90cmFuc2Zlcl9mdW5jKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJcmV0dXJu IHJlc3VsdDsKIH0KIAotc3RhdGljIHZvaWQgZGNuMjBfdXBkYXRlX29kbShzdHJ1Y3QgZGMgKmRj LCBzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCit2 b2lkIGRjbjIwX3VwZGF0ZV9vZG0oc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250 ZXh0LCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogCXN0cnVjdCBwaXBlX2N0eCAqb2Rt X3BpcGU7CiAJaW50IG9wcF9jbnQgPSAxOwpAQCAtMTIzNyw3ICsxMzE3LDcgQEAgc3RhdGljIHZv aWQgZGNuMjBfdXBkYXRlX2RjaHVicF9kcHAoCiAKIAkJaWYgKGRwcC0+ZnVuY3MtPmRwcF9wcm9n cmFtX2JpYXNfYW5kX3NjYWxlKSB7CiAJCQkvL1RPRE8gOmZvciBDTlZDIHNldCBzY2FsZSBhbmQg YmlhcyByZWdpc3RlcnMgaWYgbmVjZXNzYXJ5Ci0JCQlkY24xMF9idWlsZF9wcmVzY2FsZV9wYXJh bXMoJmJuc19wYXJhbXMsIHBsYW5lX3N0YXRlKTsKKwkJCWJ1aWxkX3ByZXNjYWxlX3BhcmFtcygm Ym5zX3BhcmFtcywgcGxhbmVfc3RhdGUpOwogCQkJZHBwLT5mdW5jcy0+ZHBwX3Byb2dyYW1fYmlh c19hbmRfc2NhbGUoZHBwLCAmYm5zX3BhcmFtcyk7CiAJCX0KIAl9CkBAIC0xMzYxLDcgKzE0NDEs NyBAQCBzdGF0aWMgdm9pZCBkY24yMF9wcm9ncmFtX3BpcGUoCiAJCQkJcGlwZV9jdHgtPnN0cmVh bV9yZXMudGcsICZwaXBlX2N0eC0+c3RyZWFtLT50aW1pbmcpOwogCiAJCWlmIChkYy0+aHdzcy5z ZXR1cF92dXBkYXRlX2ludGVycnVwdCkKLQkJCWRjLT5od3NzLnNldHVwX3Z1cGRhdGVfaW50ZXJy dXB0KHBpcGVfY3R4KTsKKwkJCWRjLT5od3NzLnNldHVwX3Z1cGRhdGVfaW50ZXJydXB0KGRjLCBw aXBlX2N0eCk7CiAJfQogCiAJaWYgKHBpcGVfY3R4LT51cGRhdGVfZmxhZ3MuYml0cy5vZG0pCkBA IC0xMzc1LDE5ICsxNDU1LDE5IEBAIHN0YXRpYyB2b2lkIGRjbjIwX3Byb2dyYW1fcGlwZSgKIAog CWlmIChwaXBlX2N0eC0+dXBkYXRlX2ZsYWdzLmJpdHMuZW5hYmxlCiAJCQl8fCBwaXBlX2N0eC0+ cGxhbmVfc3RhdGUtPnVwZGF0ZV9mbGFncy5iaXRzLmhkcl9tdWx0KQotCQlzZXRfaGRyX211bHRp cGxpZXIocGlwZV9jdHgpOworCQlkYy0+aHdzcy5zZXRfaGRyX211bHRpcGxpZXIocGlwZV9jdHgp OwogCiAJaWYgKHBpcGVfY3R4LT51cGRhdGVfZmxhZ3MuYml0cy5lbmFibGUgfHwKIAkJCXBpcGVf Y3R4LT5wbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuaW5fdHJhbnNmZXJfZnVuY19jaGFu Z2UgfHwKIAkJCXBpcGVfY3R4LT5wbGFuZV9zdGF0ZS0+dXBkYXRlX2ZsYWdzLmJpdHMuZ2FtbWFf Y2hhbmdlKQotCQlkYy0+aHdzcy5zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYyhwaXBlX2N0eCwgcGlw ZV9jdHgtPnBsYW5lX3N0YXRlKTsKKwkJZGMtPmh3c3Muc2V0X2lucHV0X3RyYW5zZmVyX2Z1bmMo ZGMsIHBpcGVfY3R4LCBwaXBlX2N0eC0+cGxhbmVfc3RhdGUpOwogCiAJLyogZGNuMTBfdHJhbnNs YXRlX3JlZ2FtbWFfdG9faHdfZm9ybWF0IHRha2VzIDc1MHVzIHRvIGZpbmlzaAogCSAqIG9ubHkg ZG8gZ2FtbWEgcHJvZ3JhbW1pbmcgZm9yIHBvd2VyaW5nIG9uLCBpbnRlcm5hbCBtZW1jbXAgdG8g YXZvaWQKIAkgKiB1cGRhdGluZyBvbiBzbGF2ZSBwbGFuZXMKIAkgKi8KIAlpZiAocGlwZV9jdHgt PnVwZGF0ZV9mbGFncy5iaXRzLmVuYWJsZSB8fCBwaXBlX2N0eC0+c3RyZWFtLT51cGRhdGVfZmxh Z3MuYml0cy5vdXRfdGYpCi0JCWRjLT5od3NzLnNldF9vdXRwdXRfdHJhbnNmZXJfZnVuYyhwaXBl X2N0eCwgcGlwZV9jdHgtPnN0cmVhbSk7CisJCWRjLT5od3NzLnNldF9vdXRwdXRfdHJhbnNmZXJf ZnVuYyhkYywgcGlwZV9jdHgsIHBpcGVfY3R4LT5zdHJlYW0pOwogCiAJLyogSWYgdGhlIHBpcGUg aGFzIGJlZW4gZW5hYmxlZCBvciBoYXMgYSBkaWZmZXJlbnQgb3BwLCB3ZQogCSAqIHNob3VsZCBy ZXByb2dyYW0gdGhlIGZtdC4gVGhpcyBkZWFscyB3aXRoIGNhc2VzIHdoZXJlCkBAIC0xNDIxLDcg KzE1MDEsNyBAQCBzdGF0aWMgYm9vbCBkb2VzX3BpcGVfbmVlZF9sb2NrKHN0cnVjdCBwaXBlX2N0 eCAqcGlwZSkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjIwX3Byb2dyYW1f ZnJvbnRfZW5kX2Zvcl9jdHgoCit2b2lkIGRjbjIwX3Byb2dyYW1fZnJvbnRfZW5kX2Zvcl9jdHgo CiAJCXN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCkKIHsKQEAgLTE2 MDIsNyArMTY4Miw3IEBAIGJvb2wgZGNuMjBfdXBkYXRlX2JhbmR3aWR0aCgKIAkJCQlkYy0+aHdz cy5ibGFua19waXhlbF9kYXRhKGRjLCBwaXBlX2N0eCwgYmxhbmspOwogCiAJCQlpZiAoZGMtPmh3 c3Muc2V0dXBfdnVwZGF0ZV9pbnRlcnJ1cHQpCi0JCQkJZGMtPmh3c3Muc2V0dXBfdnVwZGF0ZV9p bnRlcnJ1cHQocGlwZV9jdHgpOworCQkJCWRjLT5od3NzLnNldHVwX3Z1cGRhdGVfaW50ZXJydXB0 KGRjLCBwaXBlX2N0eCk7CiAJCX0KIAogCQlwaXBlX2N0eC0+cGxhbmVfcmVzLmh1YnAtPmZ1bmNz LT5odWJwX3NldHVwKApAQCAtMTYxNiw3ICsxNjk2LDcgQEAgYm9vbCBkY24yMF91cGRhdGVfYmFu ZHdpZHRoKAogCXJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBkY24yMF9lbmFibGVfd3Jp dGViYWNrKAordm9pZCBkY24yMF9lbmFibGVfd3JpdGViYWNrKAogCQlzdHJ1Y3QgZGMgKmRjLAog CQljb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0YXR1cyAqc3RyZWFtX3N0YXR1cywKIAkJc3RydWN0 IGRjX3dyaXRlYmFja19pbmZvICp3Yl9pbmZvLApAQCAtMTY2MCw3ICsxNzQwLDcgQEAgdm9pZCBk Y24yMF9kaXNhYmxlX3dyaXRlYmFjaygKIAltY2lmX3diLT5mdW5jcy0+ZGlzYWJsZV9tY2lmKG1j aWZfd2IpOwogfQogCi1ib29sIGRjbjIwX2h3c3Nfd2FpdF9mb3JfYmxhbmtfY29tcGxldGUoCiti b29sIGRjbjIwX3dhaXRfZm9yX2JsYW5rX2NvbXBsZXRlKAogCQlzdHJ1Y3Qgb3V0cHV0X3BpeGVs X3Byb2Nlc3NvciAqb3BwKQogewogCWludCBjb3VudGVyOwpAQCAtMTY4OSw3ICsxNzY5LDcgQEAg Ym9vbCBkY24yMF9kbWRhdGFfc3RhdHVzX2RvbmUoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkK IAlyZXR1cm4gaHVicC0+ZnVuY3MtPmRtZGF0YV9zdGF0dXNfZG9uZShodWJwKTsKIH0KIAotc3Rh dGljIHZvaWQgZGNuMjBfZGlzYWJsZV9zdHJlYW1fZ2F0aW5nKHN0cnVjdCBkYyAqZGMsIHN0cnVj dCBwaXBlX2N0eCAqcGlwZV9jdHgpCit2b2lkIGRjbjIwX2Rpc2FibGVfc3RyZWFtX2dhdGluZyhz dHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogewogCXN0cnVjdCBkY2Vf aHdzZXEgKmh3cyA9IGRjLT5od3NlcTsKIApAQCAtMTcwNCw3ICsxNzg0LDcgQEAgc3RhdGljIHZv aWQgZGNuMjBfZGlzYWJsZV9zdHJlYW1fZ2F0aW5nKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBl X2N0eCAqcGlwZV9jdHgKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjIwX2VuYWJsZV9zdHJlYW1f Z2F0aW5nKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpCit2b2lkIGRj bjIwX2VuYWJsZV9zdHJlYW1fZ2F0aW5nKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAq cGlwZV9jdHgpCiB7CiAJc3RydWN0IGRjZV9od3NlcSAqaHdzID0gZGMtPmh3c2VxOwogCkBAIC0x NzM5LDEyICsxODE5LDcgQEAgdm9pZCBkY24yMF9zZXRfZG1kYXRhX2F0dHJpYnV0ZXMoc3RydWN0 IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAlodWJwLT5mdW5jcy0+ZG1kYXRhX3NldF9hdHRyaWJ1dGVz KGh1YnAsICZhdHRyKTsKIH0KIAotdm9pZCBkY24yMF9kaXNhYmxlX3N0cmVhbShzdHJ1Y3QgcGlw ZV9jdHggKnBpcGVfY3R4KQotewotCWRjZTExMF9kaXNhYmxlX3N0cmVhbShwaXBlX2N0eCk7Ci19 Ci0KLXN0YXRpYyB2b2lkIGRjbjIwX2luaXRfdm1fY3R4KAordm9pZCBkY24yMF9pbml0X3ZtX2N0 eCgKIAkJc3RydWN0IGRjZV9od3NlcSAqaHdzLAogCQlzdHJ1Y3QgZGMgKmRjLAogCQlzdHJ1Y3Qg ZGNfdmlydHVhbF9hZGRyX3NwYWNlX2NvbmZpZyAqdmFfY29uZmlnLApAQCAtMTc2Niw3ICsxODQx LDcgQEAgc3RhdGljIHZvaWQgZGNuMjBfaW5pdF92bV9jdHgoCiAJZGMtPnJlc19wb29sLT5odWJi dWItPmZ1bmNzLT5pbml0X3ZtX2N0eChkYy0+cmVzX3Bvb2wtPmh1YmJ1YiwgJmNvbmZpZywgdm1p ZCk7CiB9CiAKLXN0YXRpYyBpbnQgZGNuMjBfaW5pdF9zeXNfY3R4KHN0cnVjdCBkY2VfaHdzZXEg Kmh3cywgc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyAqcGFf Y29uZmlnKQoraW50IGRjbjIwX2luaXRfc3lzX2N0eChzdHJ1Y3QgZGNlX2h3c2VxICpod3MsIHN0 cnVjdCBkYyAqZGMsIHN0cnVjdCBkY19waHlfYWRkcl9zcGFjZV9jb25maWcgKnBhX2NvbmZpZykK IHsKIAlzdHJ1Y3QgZGNuX2h1YmJ1Yl9waHlzX2FkZHJfY29uZmlnIGNvbmZpZzsKIApAQCAtMTgx MCw4ICsxODg1LDcgQEAgc3RhdGljIGJvb2wgcGF0Y2hfYWRkcmVzc19mb3Jfc2JzX3RiX3N0ZXJl bygKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLQotc3RhdGljIHZvaWQgZGNuMjBfdXBkYXRlX3BsYW5l X2FkZHIoY29uc3Qgc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKK3Zv aWQgZGNuMjBfdXBkYXRlX3BsYW5lX2FkZHIoY29uc3Qgc3RydWN0IGRjICpkYywgc3RydWN0IHBp cGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlib29sIGFkZHJfcGF0Y2hlZCA9IGZhbHNlOwogCVBIWVNJ Q0FMX0FERFJFU1NfTE9DIGFkZHI7CkBAIC0xODU3LDcgKzE5MzEsNyBAQCB2b2lkIGRjbjIwX3Vu Ymxhbmtfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCiAJcGFyYW1zLmxpbmtfc2V0 dGluZ3MubGlua19yYXRlID0gbGlua19zZXR0aW5ncy0+bGlua19yYXRlOwogCiAJaWYgKGRjX2lz X2RwX3NpZ25hbChwaXBlX2N0eC0+c3RyZWFtLT5zaWduYWwpKSB7Ci0JCWlmIChvcHRjMV9pc190 d29fcGl4ZWxzX3Blcl9jb250YWludGVyKCZzdHJlYW0tPnRpbWluZykgfHwgcGFyYW1zLm9wcF9j bnQgPiAxKQorCQlpZiAob3B0YzJfaXNfdHdvX3BpeGVsc19wZXJfY29udGFpbnRlcigmc3RyZWFt LT50aW1pbmcpIHx8IHBhcmFtcy5vcHBfY250ID4gMSkKIAkJCXBhcmFtcy50aW1pbmcucGl4X2Ns a18xMDBoeiAvPSAyOwogCQlwaXBlX2N0eC0+c3RyZWFtX3Jlcy5zdHJlYW1fZW5jLT5mdW5jcy0+ ZHBfc2V0X29kbV9jb21iaW5lKAogCQkJCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnN0cmVhbV9lbmMs IHBhcmFtcy5vcHBfY250ID4gMSk7CkBAIC0xODY5LDEwICsxOTQzLDEwIEBAIHZvaWQgZGNuMjBf dW5ibGFua19zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAl9CiB9CiAKLXZvaWQg ZGNuMjBfc2V0dXBfdnVwZGF0ZV9pbnRlcnJ1cHQoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkK K3ZvaWQgZGNuMjBfc2V0dXBfdnVwZGF0ZV9pbnRlcnJ1cHQoc3RydWN0IGRjICpkYywgc3RydWN0 IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqdGcgPSBw aXBlX2N0eC0+c3RyZWFtX3Jlcy50ZzsKLQlpbnQgc3RhcnRfbGluZSA9IGdldF92dXBkYXRlX29m ZnNldF9mcm9tX3ZzeW5jKHBpcGVfY3R4KTsKKwlpbnQgc3RhcnRfbGluZSA9IGRjLT5od3NzLmdl dF92dXBkYXRlX29mZnNldF9mcm9tX3ZzeW5jKHBpcGVfY3R4KTsKIAogCWlmIChzdGFydF9saW5l IDwgMCkKIAkJc3RhcnRfbGluZSA9IDA7CkBAIC0xOTQ4LDcgKzIwMjIsNyBAQCBzdGF0aWMgdm9p ZCBkY24yMF9yZXNldF9iYWNrX2VuZF9mb3JfcGlwZSgKIAkJCQkJcGlwZV9jdHgtPnBpcGVfaWR4 LCBwaXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+aW5zdCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjIw X3Jlc2V0X2h3X2N0eF93cmFwKAordm9pZCBkY24yMF9yZXNldF9od19jdHhfd3JhcCgKIAkJc3Ry dWN0IGRjICpkYywKIAkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KQogewpAQCAtMjAwMSw3ICsy MDc1LDcgQEAgdm9pZCBkY24yMF9nZXRfbXBjdHJlZV92aXN1YWxfY29uZmlybV9jb2xvcigKIAkq Y29sb3IgPSBwaXBlX2NvbG9yc1t0b3BfcGlwZS0+cGlwZV9pZHhdOwogfQogCi1zdGF0aWMgdm9p ZCBkY24yMF91cGRhdGVfbXBjYyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVf Y3R4KQordm9pZCBkY24yMF91cGRhdGVfbXBjYyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9j dHggKnBpcGVfY3R4KQogewogCXN0cnVjdCBodWJwICpodWJwID0gcGlwZV9jdHgtPnBsYW5lX3Jl cy5odWJwOwogCXN0cnVjdCBtcGNjX2JsbmRfY2ZnIGJsbmRfY2ZnID0geyB7MH0gfTsKQEAgLTIw MTMsMTAgKzIwODcsMTAgQEAgc3RhdGljIHZvaWQgZGNuMjBfdXBkYXRlX21wY2Moc3RydWN0IGRj ICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIAogCS8vIGlucHV0IHRvIE1QQ0MgaXMg YWx3YXlzIFJHQiwgYnkgZGVmYXVsdCBsZWF2ZSBibGFja19jb2xvciBhdCAwCiAJaWYgKGRjLT5k ZWJ1Zy52aXN1YWxfY29uZmlybSA9PSBWSVNVQUxfQ09ORklSTV9IRFIpIHsKLQkJZGNuMTBfZ2V0 X2hkcl92aXN1YWxfY29uZmlybV9jb2xvcigKKwkJZGMtPmh3c3MuZ2V0X2hkcl92aXN1YWxfY29u ZmlybV9jb2xvcigKIAkJCQlwaXBlX2N0eCwgJmJsbmRfY2ZnLmJsYWNrX2NvbG9yKTsKIAl9IGVs c2UgaWYgKGRjLT5kZWJ1Zy52aXN1YWxfY29uZmlybSA9PSBWSVNVQUxfQ09ORklSTV9TVVJGQUNF KSB7Ci0JCWRjbjEwX2dldF9zdXJmYWNlX3Zpc3VhbF9jb25maXJtX2NvbG9yKAorCQlkYy0+aHdz cy5nZXRfc3VyZmFjZV92aXN1YWxfY29uZmlybV9jb2xvcigKIAkJCQlwaXBlX2N0eCwgJmJsbmRf Y2ZnLmJsYWNrX2NvbG9yKTsKIAl9IGVsc2UgaWYgKGRjLT5kZWJ1Zy52aXN1YWxfY29uZmlybSA9 PSBWSVNVQUxfQ09ORklSTV9NUENUUkVFKSB7CiAJCWRjbjIwX2dldF9tcGN0cmVlX3Zpc3VhbF9j b25maXJtX2NvbG9yKApAQCAtMjA4MywxMjUgKzIxNTcsNyBAQCBzdGF0aWMgdm9pZCBkY24yMF91 cGRhdGVfbXBjYyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQogCWh1 YnAtPm1wY2NfaWQgPSBtcGNjX2lkOwogfQogCi1zdGF0aWMgaW50IGZpbmRfZnJlZV9nc2xfZ3Jv dXAoY29uc3Qgc3RydWN0IGRjICpkYykKLXsKLQlpZiAoZGMtPnJlc19wb29sLT5nc2xfZ3JvdXBz LmdzbF8wID09IDApCi0JCXJldHVybiAxOwotCWlmIChkYy0+cmVzX3Bvb2wtPmdzbF9ncm91cHMu Z3NsXzEgPT0gMCkKLQkJcmV0dXJuIDI7Ci0JaWYgKGRjLT5yZXNfcG9vbC0+Z3NsX2dyb3Vwcy5n c2xfMiA9PSAwKQotCQlyZXR1cm4gMzsKLQotCXJldHVybiAwOwotfQotCi0vKiBOT1RFOiBUaGlz IGlzIG5vdCBhIGdlbmVyaWMgc2V0dXBfZ3NsIGZ1bmN0aW9uIChoZW5jZSB0aGUgc3VmZml4IGFz X2xvY2spCi0gKiBUaGlzIGlzIG9ubHkgdXNlZCB0byBsb2NrIHBpcGVzIGluIHBpcGUgc3BsaXR0 aW5nIGNhc2Ugd2l0aCBpbW1lZGlhdGUgZmxpcAotICogT3JkaW5hcnkgTVBDL09URyBsb2NrcyBz dXBwcmVzcyBWVVBEQVRFIHdoaWNoIGRvZXNuJ3QgaGVscCB3aXRoIGltbWVkaWF0ZSwKLSAqIHNv IHdlIGdldCB0ZWFyaW5nIHdpdGggZnJlZXN5bmMgc2luY2Ugd2UgY2Fubm90IGZsaXAgbXVsdGlw bGUgcGlwZXMKLSAqIGF0b21pY2FsbHkuCi0gKiBXZSB1c2UgR1NMIGZvciB0aGlzOgotICogLSBp bW1lZGlhdGUgZmxpcDogZmluZCBmaXJzdCBhdmFpbGFibGUgR1NMIGdyb3VwIGlmIG5vdCBhbHJl YWR5IGFzc2lnbmVkCi0gKiAgICAgICAgICAgICAgICAgICBwcm9ncmFtIGdzbCB3aXRoIHRoYXQg Z3JvdXAsIHNldCBjdXJyZW50IE9URyBhcyBtYXN0ZXIKLSAqICAgICAgICAgICAgICAgICAgIGFu ZCBhbHdheXMgdXMgMHg0ID0gQU5EIG9mIGZsaXBfcmVhZHkgZnJvbSBhbGwgcGlwZXMKLSAqIC0g dnN5bmMgZmxpcDogZGlzYWJsZSBHU0wgaWYgdXNlZAotICoKLSAqIEdyb3VwcyBpbiBzdHJlYW1f cmVzIGFyZSBzdG9yZWQgYXMgKzEgZnJvbSBIVyByZWdpc3RlcnMsIGkuZS4KLSAqIGdzbF8wIDw9 PiBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5nc2xfZ3JvdXAgPT0gMQotICogVXNpbmcgYSBtYWdpYyB2 YWx1ZSBsaWtlIC0xIHdvdWxkIHJlcXVpcmUgdHJhY2tpbmcgYWxsIGluaXRzL3Jlc2V0cwotICov Ci12b2lkIGRjbjIwX3NldHVwX2dzbF9ncm91cF9hc19sb2NrKAotCQljb25zdCBzdHJ1Y3QgZGMg KmRjLAotCQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAotCQlib29sIGVuYWJsZSkKLXsKLQlz dHJ1Y3QgZ3NsX3BhcmFtcyBnc2w7Ci0JaW50IGdyb3VwX2lkeDsKLQotCW1lbXNldCgmZ3NsLCAw LCBzaXplb2Yoc3RydWN0IGdzbF9wYXJhbXMpKTsKLQotCWlmIChlbmFibGUpIHsKLQkJLyogcmV0 dXJuIGlmIGdyb3VwIGFscmVhZHkgYXNzaWduZWQgc2luY2UgR1NMIHdhcyBzZXQgdXAKLQkJICog Zm9yIHZzeW5jIGZsaXAsIHdlIHdvdWxkIHVuYXNzaWduIHNvIGl0IGNhbid0IGJlICJsZWZ0IG92 ZXIiCi0JCSAqLwotCQlpZiAocGlwZV9jdHgtPnN0cmVhbV9yZXMuZ3NsX2dyb3VwID4gMCkKLQkJ CXJldHVybjsKLQotCQlncm91cF9pZHggPSBmaW5kX2ZyZWVfZ3NsX2dyb3VwKGRjKTsKLQkJQVNT RVJUKGdyb3VwX2lkeCAhPSAwKTsKLQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMuZ3NsX2dyb3VwID0g Z3JvdXBfaWR4OwotCi0JCS8qIHNldCBnc2wgZ3JvdXAgcmVnIGZpZWxkIGFuZCBtYXJrIHJlc291 cmNlIHVzZWQgKi8KLQkJc3dpdGNoIChncm91cF9pZHgpIHsKLQkJY2FzZSAxOgotCQkJZ3NsLmdz bDBfZW4gPSAxOwotCQkJZGMtPnJlc19wb29sLT5nc2xfZ3JvdXBzLmdzbF8wID0gMTsKLQkJCWJy ZWFrOwotCQljYXNlIDI6Ci0JCQlnc2wuZ3NsMV9lbiA9IDE7Ci0JCQlkYy0+cmVzX3Bvb2wtPmdz bF9ncm91cHMuZ3NsXzEgPSAxOwotCQkJYnJlYWs7Ci0JCWNhc2UgMzoKLQkJCWdzbC5nc2wyX2Vu ID0gMTsKLQkJCWRjLT5yZXNfcG9vbC0+Z3NsX2dyb3Vwcy5nc2xfMiA9IDE7Ci0JCQlicmVhazsK LQkJZGVmYXVsdDoKLQkJCUJSRUFLX1RPX0RFQlVHR0VSKCk7Ci0JCQlyZXR1cm47IC8vIGludmFs aWQgY2FzZQotCQl9Ci0JCWdzbC5nc2xfbWFzdGVyX2VuID0gMTsKLQl9IGVsc2UgewotCQlncm91 cF9pZHggPSBwaXBlX2N0eC0+c3RyZWFtX3Jlcy5nc2xfZ3JvdXA7Ci0JCWlmIChncm91cF9pZHgg PT0gMCkKLQkJCXJldHVybjsgLy8gaWYgbm90IGluIHVzZSwganVzdCByZXR1cm4KLQotCQlwaXBl X2N0eC0+c3RyZWFtX3Jlcy5nc2xfZ3JvdXAgPSAwOwotCi0JCS8qIHVuc2V0IGdzbCBncm91cCBy ZWcgZmllbGQgYW5kIG1hcmsgcmVzb3VyY2UgZnJlZSAqLwotCQlzd2l0Y2ggKGdyb3VwX2lkeCkg ewotCQljYXNlIDE6Ci0JCQlnc2wuZ3NsMF9lbiA9IDA7Ci0JCQlkYy0+cmVzX3Bvb2wtPmdzbF9n cm91cHMuZ3NsXzAgPSAwOwotCQkJYnJlYWs7Ci0JCWNhc2UgMjoKLQkJCWdzbC5nc2wxX2VuID0g MDsKLQkJCWRjLT5yZXNfcG9vbC0+Z3NsX2dyb3Vwcy5nc2xfMSA9IDA7Ci0JCQlicmVhazsKLQkJ Y2FzZSAzOgotCQkJZ3NsLmdzbDJfZW4gPSAwOwotCQkJZGMtPnJlc19wb29sLT5nc2xfZ3JvdXBz LmdzbF8yID0gMDsKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJQlJFQUtfVE9fREVCVUdHRVIo KTsKLQkJCXJldHVybjsKLQkJfQotCQlnc2wuZ3NsX21hc3Rlcl9lbiA9IDA7Ci0JfQotCi0JLyog YXQgdGhpcyBwb2ludCB3ZSB3YW50IHRvIHByb2dyYW0gd2hldGhlciBpdCdzIHRvIGVuYWJsZSBv ciBkaXNhYmxlICovCi0JaWYgKHBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+c2V0X2dz bCAhPSBOVUxMICYmCi0JCXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLT5mdW5jcy0+c2V0X2dzbF9z b3VyY2Vfc2VsZWN0ICE9IE5VTEwpIHsKLQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGctPmZ1bmNz LT5zZXRfZ3NsKAotCQkJcGlwZV9jdHgtPnN0cmVhbV9yZXMudGcsCi0JCQkmZ3NsKTsKLQotCQlw aXBlX2N0eC0+c3RyZWFtX3Jlcy50Zy0+ZnVuY3MtPnNldF9nc2xfc291cmNlX3NlbGVjdCgKLQkJ CXBpcGVfY3R4LT5zdHJlYW1fcmVzLnRnLCBncm91cF9pZHgsCWVuYWJsZSA/IDQgOiAwKTsKLQl9 IGVsc2UKLQkJQlJFQUtfVE9fREVCVUdHRVIoKTsKLX0KLQotc3RhdGljIHZvaWQgZGNuMjBfc2V0 X2ZsaXBfY29udHJvbF9nc2woCi0JCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCi0JCWJvb2wg ZmxpcF9pbW1lZGlhdGUpCi17Ci0JaWYgKHBpcGVfY3R4ICYmIHBpcGVfY3R4LT5wbGFuZV9yZXMu aHVicC0+ZnVuY3MtPmh1YnBfc2V0X2ZsaXBfY29udHJvbF9zdXJmYWNlX2dzbCkKLQkJcGlwZV9j dHgtPnBsYW5lX3Jlcy5odWJwLT5mdW5jcy0+aHVicF9zZXRfZmxpcF9jb250cm9sX3N1cmZhY2Vf Z3NsKAotCQkJCXBpcGVfY3R4LT5wbGFuZV9yZXMuaHVicCwgZmxpcF9pbW1lZGlhdGUpOwotCi19 Ci0KLXN0YXRpYyB2b2lkIGRjbjIwX2VuYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBl X2N0eCkKK3ZvaWQgZGNuMjBfZW5hYmxlX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4 KQogewogCWVudW0gZGNfbGFuZV9jb3VudCBsYW5lX2NvdW50ID0KIAkJcGlwZV9jdHgtPnN0cmVh bS0+bGluay0+Y3VyX2xpbmtfc2V0dGluZ3MubGFuZV9jb3VudDsKQEAgLTIyNDksNyArMjIwNSw3 IEBAIHN0YXRpYyB2b2lkIGRjbjIwX2VuYWJsZV9zdHJlYW0oc3RydWN0IHBpcGVfY3R4ICpwaXBl X2N0eCkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGRjbjIwX3Byb2dyYW1fZG1kYXRhX2VuZ2luZShz dHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KQordm9pZCBkY24yMF9wcm9ncmFtX2RtZGF0YV9lbmdp bmUoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCkKIHsKIAlzdHJ1Y3QgZGNfc3RyZWFtX3N0YXRl ICAgICpzdHJlYW0gICAgID0gcGlwZV9jdHgtPnN0cmVhbTsKIAlzdHJ1Y3QgaHVicCAgICAgICAg ICAgICAgICpodWJwICAgICAgID0gcGlwZV9jdHgtPnBsYW5lX3Jlcy5odWJwOwpAQCAtMjI3NSw3 ICsyMjMxLDcgQEAgc3RhdGljIHZvaWQgZGNuMjBfcHJvZ3JhbV9kbWRhdGFfZW5naW5lKHN0cnVj dCBwaXBlX2N0eCAqcGlwZV9jdHgpCiAJCQkJCQlodWJwLT5pbnN0LCBtb2RlKTsKIH0KIAotc3Rh dGljIHZvaWQgZGNuMjBfZnBnYV9pbml0X2h3KHN0cnVjdCBkYyAqZGMpCit2b2lkIGRjbjIwX2Zw Z2FfaW5pdF9odyhzdHJ1Y3QgZGMgKmRjKQogewogCWludCBpLCBqOwogCXN0cnVjdCBkY2VfaHdz ZXEgKmh3cyA9IGRjLT5od3NlcTsKQEAgLTIyOTYsNyArMjI1Miw3IEBAIHN0YXRpYyB2b2lkIGRj bjIwX2ZwZ2FfaW5pdF9odyhzdHJ1Y3QgZGMgKmRjKQogCVJFR19XUklURShSQkJNSUZfVElNRU9V VF9ESVMsIDB4RkZGRkZGRkYpOwogCVJFR19XUklURShSQkJNSUZfVElNRU9VVF9ESVNfMiwgMHhG RkZGRkZGRik7CiAKLQlkY24yMF9kY2NnX2luaXQoaHdzKTsKKwlkYy0+aHdzcy5kY2NnX2luaXQo aHdzKTsKIAogCVJFR19VUERBVEUoRENIVUJCVUJfR0xPQkFMX1RJTUVSX0NOVEwsIERDSFVCQlVC X0dMT0JBTF9USU1FUl9SRUZESVYsIDIpOwogCVJFR19VUERBVEUoRENIVUJCVUJfR0xPQkFMX1RJ TUVSX0NOVEwsIERDSFVCQlVCX0dMT0JBTF9USU1FUl9FTkFCTEUsIDEpOwpAQCAtMjM2MCw3ICsy MzE2LDcgQEAgc3RhdGljIHZvaWQgZGNuMjBfZnBnYV9pbml0X2h3KHN0cnVjdCBkYyAqZGMpCiAJ CWRjLT5yZXNfcG9vbC0+b3Bwc1tpXS0+bXBjY19kaXNjb25uZWN0X3BlbmRpbmdbcGlwZV9jdHgt PnBsYW5lX3Jlcy5tcGNjX2luc3RdID0gdHJ1ZTsKIAkJcGlwZV9jdHgtPnN0cmVhbV9yZXMub3Bw ID0gZGMtPnJlc19wb29sLT5vcHBzW2ldOwogCQkvKnRvIGRvKi8KLQkJaHdzczFfcGxhbmVfYXRv bWljX2Rpc2Nvbm5lY3QoZGMsIHBpcGVfY3R4KTsKKwkJZGMtPmh3c3MucGxhbmVfYXRvbWljX2Rp c2Nvbm5lY3QoZGMsIHBpcGVfY3R4KTsKIAl9CiAKIAkvKiBpbml0aWFsaXplIERXQiBwb2ludGVy IHRvIE1DSUZfV0IgKi8KQEAgLTIzODksNTMgKzIzNDUsMyBAQCBzdGF0aWMgdm9pZCBkY24yMF9m cGdhX2luaXRfaHcoc3RydWN0IGRjICpkYykKIAkJdGctPmZ1bmNzLT50Z19pbml0KHRnKTsKIAl9 CiB9Ci0KLXZvaWQgZGNuMjBfaHdfc2VxdWVuY2VyX2NvbnN0cnVjdChzdHJ1Y3QgZGMgKmRjKQot ewotCWRjbjEwX2h3X3NlcXVlbmNlcl9jb25zdHJ1Y3QoZGMpOwotCWRjLT5od3NzLnVuYmxhbmtf c3RyZWFtID0gZGNuMjBfdW5ibGFua19zdHJlYW07Ci0JZGMtPmh3c3MudXBkYXRlX3BsYW5lX2Fk ZHIgPSBkY24yMF91cGRhdGVfcGxhbmVfYWRkcjsKLQlkYy0+aHdzcy5lbmFibGVfc3RyZWFtX3Rp bWluZyA9IGRjbjIwX2VuYWJsZV9zdHJlYW1fdGltaW5nOwotCWRjLT5od3NzLnByb2dyYW1fdHJp cGxlYnVmZmVyID0gZGNuMjBfcHJvZ3JhbV90cmlwbGVCdWZmZXI7Ci0JZGMtPmh3c3Muc2V0X2lu cHV0X3RyYW5zZmVyX2Z1bmMgPSBkY24yMF9zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYzsKLQlkYy0+ aHdzcy5zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMgPSBkY24yMF9zZXRfb3V0cHV0X3RyYW5zZmVy X2Z1bmM7Ci0JZGMtPmh3c3MuYXBwbHlfY3R4X2Zvcl9zdXJmYWNlID0gTlVMTDsKLQlkYy0+aHdz cy5wcm9ncmFtX2Zyb250X2VuZF9mb3JfY3R4ID0gZGNuMjBfcHJvZ3JhbV9mcm9udF9lbmRfZm9y X2N0eDsKLQlkYy0+aHdzcy5waXBlX2NvbnRyb2xfbG9jayA9IGRjbjIwX3BpcGVfY29udHJvbF9s b2NrOwotCWRjLT5od3NzLnBpcGVfY29udHJvbF9sb2NrX2dsb2JhbCA9IGRjbjIwX3BpcGVfY29u dHJvbF9sb2NrX2dsb2JhbDsKLQlkYy0+aHdzcy5vcHRpbWl6ZV9iYW5kd2lkdGggPSBkY24yMF9v cHRpbWl6ZV9iYW5kd2lkdGg7Ci0JZGMtPmh3c3MucHJlcGFyZV9iYW5kd2lkdGggPSBkY24yMF9w cmVwYXJlX2JhbmR3aWR0aDsKLQlkYy0+aHdzcy51cGRhdGVfYmFuZHdpZHRoID0gZGNuMjBfdXBk YXRlX2JhbmR3aWR0aDsKLQlkYy0+aHdzcy5lbmFibGVfd3JpdGViYWNrID0gZGNuMjBfZW5hYmxl X3dyaXRlYmFjazsKLQlkYy0+aHdzcy5kaXNhYmxlX3dyaXRlYmFjayA9IGRjbjIwX2Rpc2FibGVf d3JpdGViYWNrOwotCWRjLT5od3NzLnByb2dyYW1fb3V0cHV0X2NzYyA9IGRjbjIwX3Byb2dyYW1f b3V0cHV0X2NzYzsKLQlkYy0+aHdzcy51cGRhdGVfb2RtID0gZGNuMjBfdXBkYXRlX29kbTsKLQlk Yy0+aHdzcy5ibGFua19waXhlbF9kYXRhID0gZGNuMjBfYmxhbmtfcGl4ZWxfZGF0YTsKLQlkYy0+ aHdzcy5kbWRhdGFfc3RhdHVzX2RvbmUgPSBkY24yMF9kbWRhdGFfc3RhdHVzX2RvbmU7Ci0JZGMt Pmh3c3MucHJvZ3JhbV9kbWRhdGFfZW5naW5lID0gZGNuMjBfcHJvZ3JhbV9kbWRhdGFfZW5naW5l OwotCWRjLT5od3NzLmVuYWJsZV9zdHJlYW0gPSBkY24yMF9lbmFibGVfc3RyZWFtOwotCWRjLT5o d3NzLmRpc2FibGVfc3RyZWFtID0gZGNuMjBfZGlzYWJsZV9zdHJlYW07Ci0JZGMtPmh3c3MuaW5p dF9zeXNfY3R4ID0gZGNuMjBfaW5pdF9zeXNfY3R4OwotCWRjLT5od3NzLmluaXRfdm1fY3R4ID0g ZGNuMjBfaW5pdF92bV9jdHg7Ci0JZGMtPmh3c3MuZGlzYWJsZV9zdHJlYW1fZ2F0aW5nID0gZGNu MjBfZGlzYWJsZV9zdHJlYW1fZ2F0aW5nOwotCWRjLT5od3NzLmVuYWJsZV9zdHJlYW1fZ2F0aW5n ID0gZGNuMjBfZW5hYmxlX3N0cmVhbV9nYXRpbmc7Ci0JZGMtPmh3c3Muc2V0dXBfdnVwZGF0ZV9p bnRlcnJ1cHQgPSBkY24yMF9zZXR1cF92dXBkYXRlX2ludGVycnVwdDsKLQlkYy0+aHdzcy5yZXNl dF9od19jdHhfd3JhcCA9IGRjbjIwX3Jlc2V0X2h3X2N0eF93cmFwOwotCWRjLT5od3NzLnVwZGF0 ZV9tcGNjID0gZGNuMjBfdXBkYXRlX21wY2M7Ci0JZGMtPmh3c3Muc2V0X2ZsaXBfY29udHJvbF9n c2wgPSBkY24yMF9zZXRfZmxpcF9jb250cm9sX2dzbDsKLQlkYy0+aHdzcy5pbml0X2JsYW5rID0g ZGNuMjBfaW5pdF9ibGFuazsKLQlkYy0+aHdzcy5kaXNhYmxlX3BsYW5lID0gZGNuMjBfZGlzYWJs ZV9wbGFuZTsKLQlkYy0+aHdzcy5wbGFuZV9hdG9taWNfZGlzYWJsZSA9IGRjbjIwX3BsYW5lX2F0 b21pY19kaXNhYmxlOwotCWRjLT5od3NzLmVuYWJsZV9wb3dlcl9nYXRpbmdfcGxhbmUgPSBkY24y MF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lOwotCWRjLT5od3NzLmRwcF9wZ19jb250cm9sID0g ZGNuMjBfZHBwX3BnX2NvbnRyb2w7Ci0JZGMtPmh3c3MuaHVicF9wZ19jb250cm9sID0gZGNuMjBf aHVicF9wZ19jb250cm9sOwotCWRjLT5od3NzLmRzY19wZ19jb250cm9sID0gZGNuMjBfZHNjX3Bn X2NvbnRyb2w7Ci0JZGMtPmh3c3MuZGlzYWJsZV92Z2EgPSBkY24yMF9kaXNhYmxlX3ZnYTsKLQot CWlmIChJU19GUEdBX01BWElNVVNfREMoZGMtPmN0eC0+ZGNlX2Vudmlyb25tZW50KSkgewotCQlk Yy0+aHdzcy5pbml0X2h3ID0gZGNuMjBfZnBnYV9pbml0X2h3OwotCQlkYy0+aHdzcy5pbml0X3Bp cGVzID0gTlVMTDsKLQl9Ci0KLQotfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2RjL2RjbjIwL2RjbjIwX2h3c2VxLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvZGNuMjAvZGNuMjBfaHdzZXEuaAppbmRleCAzMDk4ZjEwNDllZDcuLjI4YWFjZWVkNmQ4 YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIw X2h3c2VxLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIw X2h3c2VxLmgKQEAgLTI2LDkwICsyNiwxMTAgQEAKICNpZm5kZWYgX19EQ19IV1NTX0RDTjIwX0hf XwogI2RlZmluZSBfX0RDX0hXU1NfRENOMjBfSF9fCiAKLXN0cnVjdCBkYzsKLQotdm9pZCBkY24y MF9od19zZXF1ZW5jZXJfY29uc3RydWN0KHN0cnVjdCBkYyAqZGMpOwotCi1lbnVtIGRjX3N0YXR1 cyBkY24yMF9lbmFibGVfc3RyZWFtX3RpbWluZygKLQkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0 eCwKLQkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LAotCQlzdHJ1Y3QgZGMgKmRjKTsKLQotdm9p ZCBkY24yMF9ibGFua19waXhlbF9kYXRhKAorYm9vbCBkY24yMF9zZXRfYmxlbmRfbHV0KAorCXN0 cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpOworYm9vbCBkY24yMF9zZXRfc2hhcGVyXzNkbHV0KAorCXN0cnVjdCBwaXBlX2N0 eCAqcGlwZV9jdHgsIGNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwor dm9pZCBkY24yMF9wcm9ncmFtX2Zyb250X2VuZF9mb3JfY3R4KAogCQlzdHJ1Y3QgZGMgKmRjLAot CQlzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAotCQlib29sIGJsYW5rKTsKLQorCQlzdHJ1Y3Qg ZGNfc3RhdGUgKmNvbnRleHQpOwordm9pZCBkY24yMF91cGRhdGVfcGxhbmVfYWRkcihjb25zdCBz dHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKK3ZvaWQgZGNuMjBfdXBk YXRlX21wY2Moc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Citib29s IGRjbjIwX3NldF9pbnB1dF90cmFuc2Zlcl9mdW5jKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBl X2N0eCAqcGlwZV9jdHgsCisJCQljb25zdCBzdHJ1Y3QgZGNfcGxhbmVfc3RhdGUgKnBsYW5lX3N0 YXRlKTsKK2Jvb2wgZGNuMjBfc2V0X291dHB1dF90cmFuc2Zlcl9mdW5jKHN0cnVjdCBkYyAqZGMs IHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsCisJCQljb25zdCBzdHJ1Y3QgZGNfc3RyZWFtX3N0 YXRlICpzdHJlYW0pOwogdm9pZCBkY24yMF9wcm9ncmFtX291dHB1dF9jc2Moc3RydWN0IGRjICpk YywKIAkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKIAkJZW51bSBkY19jb2xvcl9zcGFjZSBj b2xvcnNwYWNlLAogCQl1aW50MTZfdCAqbWF0cml4LAogCQlpbnQgb3BwX2lkKTsKLQordm9pZCBk Y24yMF9lbmFibGVfc3RyZWFtKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwordm9pZCBkY24y MF91bmJsYW5rX3N0cmVhbShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorCQlzdHJ1Y3QgZGNf bGlua19zZXR0aW5ncyAqbGlua19zZXR0aW5ncyk7Cit2b2lkIGRjbjIwX2Rpc2FibGVfcGxhbmUo c3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Cit2b2lkIGRjbjIwX2Js YW5rX3BpeGVsX2RhdGEoCisJCXN0cnVjdCBkYyAqZGMsCisJCXN0cnVjdCBwaXBlX2N0eCAqcGlw ZV9jdHgsCisJCWJvb2wgYmxhbmspOwordm9pZCBkY24yMF9waXBlX2NvbnRyb2xfbG9jaygKKwlz dHJ1Y3QgZGMgKmRjLAorCXN0cnVjdCBwaXBlX2N0eCAqcGlwZSwKKwlib29sIGxvY2spOwordm9p ZCBkY24yMF9waXBlX2NvbnRyb2xfbG9ja19nbG9iYWwoCisJCXN0cnVjdCBkYyAqZGMsCisJCXN0 cnVjdCBwaXBlX2N0eCAqcGlwZSwKKwkJYm9vbCBsb2NrKTsKIHZvaWQgZGNuMjBfcHJlcGFyZV9i YW5kd2lkdGgoCiAJCXN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7 Ci0KIHZvaWQgZGNuMjBfb3B0aW1pemVfYmFuZHdpZHRoKAogCQlzdHJ1Y3QgZGMgKmRjLAogCQlz dHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOwotCiBib29sIGRjbjIwX3VwZGF0ZV9iYW5kd2lkdGgo CiAJCXN0cnVjdCBkYyAqZGMsCiAJCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Ci0KK3ZvaWQg ZGNuMjBfcmVzZXRfaHdfY3R4X3dyYXAoCisJCXN0cnVjdCBkYyAqZGMsCisJCXN0cnVjdCBkY19z dGF0ZSAqY29udGV4dCk7CitlbnVtIGRjX3N0YXR1cyBkY24yMF9lbmFibGVfc3RyZWFtX3RpbWlu ZygKKwkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKKwkJc3RydWN0IGRjX3N0YXRlICpjb250 ZXh0LAorCQlzdHJ1Y3QgZGMgKmRjKTsKK3ZvaWQgZGNuMjBfZGlzYWJsZV9zdHJlYW1fZ2F0aW5n KHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwordm9pZCBkY24yMF9l bmFibGVfc3RyZWFtX2dhdGluZyhzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgcGlwZV9jdHggKnBpcGVf Y3R4KTsKK3ZvaWQgZGNuMjBfc2V0dXBfdnVwZGF0ZV9pbnRlcnJ1cHQoc3RydWN0IGRjICpkYywg c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCk7Cit2b2lkIGRjbjIwX2luaXRfYmxhbmsoCisJCXN0 cnVjdCBkYyAqZGMsCisJCXN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7Cit2b2lkIGRjbjIw X2Rpc2FibGVfdmdhKAorCXN0cnVjdCBkY2VfaHdzZXEgKmh3cyk7Cit2b2lkIGRjbjIwX3BsYW5l X2F0b21pY19kaXNhYmxlKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgp Owordm9pZCBkY24yMF9lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lKAorCXN0cnVjdCBkY2VfaHdz ZXEgKmh3cywKKwlib29sIGVuYWJsZSk7Cit2b2lkIGRjbjIwX2RwcF9wZ19jb250cm9sKAorCQlz dHJ1Y3QgZGNlX2h3c2VxICpod3MsCisJCXVuc2lnbmVkIGludCBkcHBfaW5zdCwKKwkJYm9vbCBw b3dlcl9vbik7Cit2b2lkIGRjbjIwX2h1YnBfcGdfY29udHJvbCgKKwkJc3RydWN0IGRjZV9od3Nl cSAqaHdzLAorCQl1bnNpZ25lZCBpbnQgaHVicF9pbnN0LAorCQlib29sIHBvd2VyX29uKTsKK3Zv aWQgZGNuMjBfcHJvZ3JhbV90cmlwbGVfYnVmZmVyKAorCWNvbnN0IHN0cnVjdCBkYyAqZGMsCisJ c3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKKwlib29sIGVuYWJsZV90cmlwbGVfYnVmZmVyKTsK K3ZvaWQgZGNuMjBfZW5hYmxlX3dyaXRlYmFjaygKKwkJc3RydWN0IGRjICpkYywKKwkJY29uc3Qg c3RydWN0IGRjX3N0cmVhbV9zdGF0dXMgKnN0cmVhbV9zdGF0dXMsCisJCXN0cnVjdCBkY193cml0 ZWJhY2tfaW5mbyAqd2JfaW5mbywKKwkJc3RydWN0IGRjX3N0YXRlICpjb250ZXh0KTsKIHZvaWQg ZGNuMjBfZGlzYWJsZV93cml0ZWJhY2soCiAJCXN0cnVjdCBkYyAqZGMsCiAJCXVuc2lnbmVkIGlu dCBkd2JfcGlwZV9pbnN0KTsKLQotYm9vbCBkY24yMF9od3NzX3dhaXRfZm9yX2JsYW5rX2NvbXBs ZXRlKAotCQlzdHJ1Y3Qgb3V0cHV0X3BpeGVsX3Byb2Nlc3NvciAqb3BwKTsKLQotYm9vbCBkY24y MF9zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKLQkJ CWNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUgKnN0cmVhbSk7Ci0KLWJvb2wgZGNuMjBfc2V0 X2lucHV0X3RyYW5zZmVyX2Z1bmMoc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwKLQkJCWNvbnN0 IHN0cnVjdCBkY19wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwotCit2b2lkIGRjbjIwX3VwZGF0 ZV9vZG0oc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3N0YXRlICpjb250ZXh0LCBzdHJ1Y3QgcGlw ZV9jdHggKnBpcGVfY3R4KTsKIGJvb2wgZGNuMjBfZG1kYXRhX3N0YXR1c19kb25lKHN0cnVjdCBw aXBlX2N0eCAqcGlwZV9jdHgpOwotCi12b2lkIGRjbjIwX3NldF9kbWRhdGFfYXR0cmlidXRlcyhz dHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKLQotdm9pZCBkY24yMF9kaXNhYmxlX3N0cmVhbShz dHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKLQotdm9pZCBkY24yMF9wcm9ncmFtX3RyaXBsZUJ1 ZmZlcigKLQkJY29uc3Qgc3RydWN0IGRjICpkYywKLQkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0 eCwKLQkJYm9vbCBlbmFibGVUcmlwbGVCdWZmZXIpOwotCi12b2lkIGRjbjIwX3NldHVwX3Z1cGRh dGVfaW50ZXJydXB0KHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwotCi12b2lkIGRjbjIwX3Bp cGVfY29udHJvbF9sb2NrX2dsb2JhbCgKK3ZvaWQgZGNuMjBfcHJvZ3JhbV9kbWRhdGFfZW5naW5l KHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwordm9pZCBkY24yMF9pbml0X3ZtX2N0eCgKKwkJ c3RydWN0IGRjZV9od3NlcSAqaHdzLAogCQlzdHJ1Y3QgZGMgKmRjLAotCQlzdHJ1Y3QgcGlwZV9j dHggKnBpcGUsCi0JCWJvb2wgbG9jayk7Ci12b2lkIGRjbjIwX3NldHVwX2dzbF9ncm91cF9hc19s b2NrKGNvbnN0IHN0cnVjdCBkYyAqZGMsCi0JCQkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwK LQkJCQlib29sIGVuYWJsZSk7Ci12b2lkIGRjbjIwX2RjY2dfaW5pdChzdHJ1Y3QgZGNlX2h3c2Vx ICpod3MpOwotdm9pZCBkY24yMF9pbml0X2JsYW5rKAotCSAgIHN0cnVjdCBkYyAqZGMsCi0JICAg c3RydWN0IHRpbWluZ19nZW5lcmF0b3IgKnRnKTsKLXZvaWQgZGNuMjBfZGlzcGxheV9pbml0KHN0 cnVjdCBkYyAqZGMpOwotdm9pZCBkY24yMF9waXBlX2NvbnRyb2xfbG9jaygKLQlzdHJ1Y3QgZGMg KmRjLAotCXN0cnVjdCBwaXBlX2N0eCAqcGlwZSwKLQlib29sIGxvY2spOwotdm9pZCBkY24yMF9k aXNhYmxlX3BsYW5lKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwot dm9pZCBkY24yMF9lbmFibGVfcGxhbmUoCi0Jc3RydWN0IGRjICpkYywKLQlzdHJ1Y3QgcGlwZV9j dHggKnBpcGVfY3R4LAotCXN0cnVjdCBkY19zdGF0ZSAqY29udGV4dCk7Ci1ib29sIGRjbjIwX3Nl dF9ibGVuZF9sdXQoCi0Jc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgY29uc3Qgc3RydWN0IGRj X3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Ci1ib29sIGRjbjIwX3NldF9zaGFwZXJfM2RsdXQo Ci0Jc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgY29uc3Qgc3RydWN0IGRjX3BsYW5lX3N0YXRl ICpwbGFuZV9zdGF0ZSk7Ci12b2lkIGRjbjIwX2dldF9tcGN0cmVlX3Zpc3VhbF9jb25maXJtX2Nv bG9yKAorCQlzdHJ1Y3QgZGNfdmlydHVhbF9hZGRyX3NwYWNlX2NvbmZpZyAqdmFfY29uZmlnLAor CQlpbnQgdm1pZCk7Cit2b2lkIGRjbjIwX3NldF9mbGlwX2NvbnRyb2xfZ3NsKAogCQlzdHJ1Y3Qg cGlwZV9jdHggKnBpcGVfY3R4LAotCQlzdHJ1Y3QgdGdfY29sb3IgKmNvbG9yKTsKKwkJYm9vbCBm bGlwX2ltbWVkaWF0ZSk7Cit2b2lkIGRjbjIwX2RzY19wZ19jb250cm9sKAorCQlzdHJ1Y3QgZGNl X2h3c2VxICpod3MsCisJCXVuc2lnbmVkIGludCBkc2NfaW5zdCwKKwkJYm9vbCBwb3dlcl9vbik7 Cit2b2lkIGRjbjIwX2ZwZ2FfaW5pdF9odyhzdHJ1Y3QgZGMgKmRjKTsKK2Jvb2wgZGNuMjBfd2Fp dF9mb3JfYmxhbmtfY29tcGxldGUoCisJCXN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpv cHApOwordm9pZCBkY24yMF9kY2NnX2luaXQoc3RydWN0IGRjZV9od3NlcSAqaHdzKTsKK2ludCBk Y24yMF9pbml0X3N5c19jdHgoc3RydWN0IGRjZV9od3NlcSAqaHdzLAorCQlzdHJ1Y3QgZGMgKmRj LAorCQlzdHJ1Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnICpwYV9jb25maWcpOworCiAjZW5k aWYgLyogX19EQ19IV1NTX0RDTjIwX0hfXyAqLworCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaW5pdC5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2luaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjUxYjZjMjVhYTNjNQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9pbml0LmMKQEAgLTAsMCArMSwxMjcg QEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisg KgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUg aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJ REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E IE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhP TERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IK KyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBU SEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpbmNsdWRlICJk Y2UxMTAvZGNlMTEwX2h3X3NlcXVlbmNlci5oIgorI2luY2x1ZGUgImRjbjEwL2RjbjEwX2h3X3Nl cXVlbmNlci5oIgorI2luY2x1ZGUgImRjbjIwX2h3c2VxLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgaHdfc2VxdWVuY2VyX2Z1bmNzIGRjbjIwX2Z1bmNzID0geworCS5wcm9ncmFtX2dhbXV0X3Jl bWFwID0gZGNuMTBfcHJvZ3JhbV9nYW11dF9yZW1hcCwKKwkuaW5pdF9odyA9IGRjbjEwX2luaXRf aHcsCisJLmluaXRfcGlwZXMgPSBkY24xMF9pbml0X3BpcGVzLAorCS5hcHBseV9jdHhfdG9faHcg PSBkY2UxMTBfYXBwbHlfY3R4X3RvX2h3LAorCS5hcHBseV9jdHhfZm9yX3N1cmZhY2UgPSBOVUxM LAorCS5wcm9ncmFtX2Zyb250X2VuZF9mb3JfY3R4ID0gZGNuMjBfcHJvZ3JhbV9mcm9udF9lbmRf Zm9yX2N0eCwKKwkudXBkYXRlX3BsYW5lX2FkZHIgPSBkY24yMF91cGRhdGVfcGxhbmVfYWRkciwK KwkucGxhbmVfYXRvbWljX2Rpc2Nvbm5lY3QgPSBkY24xMF9wbGFuZV9hdG9taWNfZGlzY29ubmVj dCwKKwkudXBkYXRlX2RjaHViID0gZGNuMTBfdXBkYXRlX2RjaHViLAorCS51cGRhdGVfbXBjYyA9 IGRjbjIwX3VwZGF0ZV9tcGNjLAorCS51cGRhdGVfcGVuZGluZ19zdGF0dXMgPSBkY24xMF91cGRh dGVfcGVuZGluZ19zdGF0dXMsCisJLnNldF9pbnB1dF90cmFuc2Zlcl9mdW5jID0gZGNuMjBfc2V0 X2lucHV0X3RyYW5zZmVyX2Z1bmMsCisJLnNldF9vdXRwdXRfdHJhbnNmZXJfZnVuYyA9IGRjbjIw X3NldF9vdXRwdXRfdHJhbnNmZXJfZnVuYywKKwkucHJvZ3JhbV9vdXRwdXRfY3NjID0gZGNuMjBf cHJvZ3JhbV9vdXRwdXRfY3NjLAorCS5wb3dlcl9kb3duID0gZGNlMTEwX3Bvd2VyX2Rvd24sCisJ LmVuYWJsZV9hY2NlbGVyYXRlZF9tb2RlID0gZGNlMTEwX2VuYWJsZV9hY2NlbGVyYXRlZF9tb2Rl LAorCS5lbmFibGVfdGltaW5nX3N5bmNocm9uaXphdGlvbiA9IGRjbjEwX2VuYWJsZV90aW1pbmdf c3luY2hyb25pemF0aW9uLAorCS5lbmFibGVfcGVyX2ZyYW1lX2NydGNfcG9zaXRpb25fcmVzZXQg PSBkY24xMF9lbmFibGVfcGVyX2ZyYW1lX2NydGNfcG9zaXRpb25fcmVzZXQsCisJLnVwZGF0ZV9p bmZvX2ZyYW1lID0gZGNlMTEwX3VwZGF0ZV9pbmZvX2ZyYW1lLAorCS5zZW5kX2ltbWVkaWF0ZV9z ZHBfbWVzc2FnZSA9IGRjbjEwX3NlbmRfaW1tZWRpYXRlX3NkcF9tZXNzYWdlLAorCS5lbmFibGVf c3RyZWFtID0gZGNuMjBfZW5hYmxlX3N0cmVhbSwKKwkuZGlzYWJsZV9zdHJlYW0gPSBkY2UxMTBf ZGlzYWJsZV9zdHJlYW0sCisJLnVuYmxhbmtfc3RyZWFtID0gZGNuMjBfdW5ibGFua19zdHJlYW0s CisJLmJsYW5rX3N0cmVhbSA9IGRjZTExMF9ibGFua19zdHJlYW0sCisJLmVuYWJsZV9hdWRpb19z dHJlYW0gPSBkY2UxMTBfZW5hYmxlX2F1ZGlvX3N0cmVhbSwKKwkuZGlzYWJsZV9hdWRpb19zdHJl YW0gPSBkY2UxMTBfZGlzYWJsZV9hdWRpb19zdHJlYW0sCisJLmVuYWJsZV9kaXNwbGF5X3Bvd2Vy X2dhdGluZyA9IGRjbjEwX2R1bW15X2Rpc3BsYXlfcG93ZXJfZ2F0aW5nLAorCS5kaXNhYmxlX3Bs YW5lID0gZGNuMjBfZGlzYWJsZV9wbGFuZSwKKwkuYmxhbmtfcGl4ZWxfZGF0YSA9IGRjbjIwX2Js YW5rX3BpeGVsX2RhdGEsCisJLnBpcGVfY29udHJvbF9sb2NrID0gZGNuMjBfcGlwZV9jb250cm9s X2xvY2ssCisJLnBpcGVfY29udHJvbF9sb2NrX2dsb2JhbCA9IGRjbjIwX3BpcGVfY29udHJvbF9s b2NrX2dsb2JhbCwKKwkucHJlcGFyZV9iYW5kd2lkdGggPSBkY24yMF9wcmVwYXJlX2JhbmR3aWR0 aCwKKwkub3B0aW1pemVfYmFuZHdpZHRoID0gZGNuMjBfb3B0aW1pemVfYmFuZHdpZHRoLAorCS51 cGRhdGVfYmFuZHdpZHRoID0gZGNuMjBfdXBkYXRlX2JhbmR3aWR0aCwKKwkucmVzZXRfaHdfY3R4 X3dyYXAgPSBkY24yMF9yZXNldF9od19jdHhfd3JhcCwKKwkuZW5hYmxlX3N0cmVhbV90aW1pbmcg PSBkY24yMF9lbmFibGVfc3RyZWFtX3RpbWluZywKKwkuc2V0X2RyciA9IGRjbjEwX3NldF9kcnIs CisJLmdldF9wb3NpdGlvbiA9IGRjbjEwX2dldF9wb3NpdGlvbiwKKwkuc2V0X3N0YXRpY19zY3Jl ZW5fY29udHJvbCA9IGRjbjEwX3NldF9zdGF0aWNfc2NyZWVuX2NvbnRyb2wsCisJLnNldHVwX3N0 ZXJlbyA9IGRjbjEwX3NldHVwX3N0ZXJlbywKKwkuc2V0X2F2bXV0ZSA9IGRjZTExMF9zZXRfYXZt dXRlLAorCS5sb2dfaHdfc3RhdGUgPSBkY24xMF9sb2dfaHdfc3RhdGUsCisJLmdldF9od19zdGF0 ZSA9IGRjbjEwX2dldF9od19zdGF0ZSwKKwkuY2xlYXJfc3RhdHVzX2JpdHMgPSBkY24xMF9jbGVh cl9zdGF0dXNfYml0cywKKwkud2FpdF9mb3JfbXBjY19kaXNjb25uZWN0ID0gZGNuMTBfd2FpdF9m b3JfbXBjY19kaXNjb25uZWN0LAorCS5lZHBfYmFja2xpZ2h0X2NvbnRyb2wgPSBkY2UxMTBfZWRw X2JhY2tsaWdodF9jb250cm9sLAorCS5lZHBfcG93ZXJfY29udHJvbCA9IGRjZTExMF9lZHBfcG93 ZXJfY29udHJvbCwKKwkuZWRwX3dhaXRfZm9yX2hwZF9yZWFkeSA9IGRjZTExMF9lZHBfd2FpdF9m b3JfaHBkX3JlYWR5LAorCS5zZXRfY3Vyc29yX3Bvc2l0aW9uID0gZGNuMTBfc2V0X2N1cnNvcl9w b3NpdGlvbiwKKwkuc2V0X2N1cnNvcl9hdHRyaWJ1dGUgPSBkY24xMF9zZXRfY3Vyc29yX2F0dHJp YnV0ZSwKKwkuc2V0X2N1cnNvcl9zZHJfd2hpdGVfbGV2ZWwgPSBkY24xMF9zZXRfY3Vyc29yX3Nk cl93aGl0ZV9sZXZlbCwKKwkuZGlzYWJsZV9zdHJlYW1fZ2F0aW5nID0gZGNuMjBfZGlzYWJsZV9z dHJlYW1fZ2F0aW5nLAorCS5lbmFibGVfc3RyZWFtX2dhdGluZyA9IGRjbjIwX2VuYWJsZV9zdHJl YW1fZ2F0aW5nLAorCS5zZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQgPSBkY24xMF9zZXR1cF9wZXJp b2RpY19pbnRlcnJ1cHQsCisJLnNldHVwX3Z1cGRhdGVfaW50ZXJydXB0ID0gZGNuMjBfc2V0dXBf dnVwZGF0ZV9pbnRlcnJ1cHQsCisJLnNldF9jbG9jayA9IGRjbjEwX3NldF9jbG9jaywKKwkuZ2V0 X2Nsb2NrID0gZGNuMTBfZ2V0X2Nsb2NrLAorCS5kaWRfdW5kZXJmbG93X29jY3VyID0gZGNuMTBf ZGlkX3VuZGVyZmxvd19vY2N1ciwKKwkuaW5pdF9ibGFuayA9IGRjbjIwX2luaXRfYmxhbmssCisJ LmRpc2FibGVfdmdhID0gZGNuMjBfZGlzYWJsZV92Z2EsCisJLmJpb3NfZ29sZGVuX2luaXQgPSBk Y24xMF9iaW9zX2dvbGRlbl9pbml0LAorCS5wbGFuZV9hdG9taWNfZGlzYWJsZSA9IGRjbjIwX3Bs YW5lX2F0b21pY19kaXNhYmxlLAorCS5wbGFuZV9hdG9taWNfcG93ZXJfZG93biA9IGRjbjEwX3Bs YW5lX2F0b21pY19wb3dlcl9kb3duLAorCS5lbmFibGVfcG93ZXJfZ2F0aW5nX3BsYW5lID0gZGNu MjBfZW5hYmxlX3Bvd2VyX2dhdGluZ19wbGFuZSwKKwkuZHBwX3BnX2NvbnRyb2wgPSBkY24yMF9k cHBfcGdfY29udHJvbCwKKwkuaHVicF9wZ19jb250cm9sID0gZGNuMjBfaHVicF9wZ19jb250cm9s LAorCS5kc2NfcGdfY29udHJvbCA9IE5VTEwsCisJLnByb2dyYW1fdHJpcGxlYnVmZmVyID0gZGNu MjBfcHJvZ3JhbV90cmlwbGVfYnVmZmVyLAorCS5lbmFibGVfd3JpdGViYWNrID0gZGNuMjBfZW5h YmxlX3dyaXRlYmFjaywKKwkuZGlzYWJsZV93cml0ZWJhY2sgPSBkY24yMF9kaXNhYmxlX3dyaXRl YmFjaywKKwkudXBkYXRlX29kbSA9IGRjbjIwX3VwZGF0ZV9vZG0sCisJLmRtZGF0YV9zdGF0dXNf ZG9uZSA9IGRjbjIwX2RtZGF0YV9zdGF0dXNfZG9uZSwKKwkucHJvZ3JhbV9kbWRhdGFfZW5naW5l ID0gZGNuMjBfcHJvZ3JhbV9kbWRhdGFfZW5naW5lLAorCS5pbml0X3N5c19jdHggPSBkY24yMF9p bml0X3N5c19jdHgsCisJLmluaXRfdm1fY3R4ID0gZGNuMjBfaW5pdF92bV9jdHgsCisJLnNldF9m bGlwX2NvbnRyb2xfZ3NsID0gZGNuMjBfc2V0X2ZsaXBfY29udHJvbF9nc2wsCisJLmRzY19wZ19j b250cm9sID0gZGNuMjBfZHNjX3BnX2NvbnRyb2wsCisJLmdldF9zdXJmYWNlX3Zpc3VhbF9jb25m aXJtX2NvbG9yID0gZGNuMTBfZ2V0X3N1cmZhY2VfdmlzdWFsX2NvbmZpcm1fY29sb3IsCisJLmdl dF9oZHJfdmlzdWFsX2NvbmZpcm1fY29sb3IgPSBkY24xMF9nZXRfaGRyX3Zpc3VhbF9jb25maXJt X2NvbG9yLAorCS5zZXRfaGRyX211bHRpcGxpZXIgPSBkY24xMF9zZXRfaGRyX211bHRpcGxpZXIs CisJLnZlcmlmeV9hbGxvd19wc3RhdGVfY2hhbmdlX2hpZ2ggPSBkY24xMF92ZXJpZnlfYWxsb3df cHN0YXRlX2NoYW5nZV9oaWdoLAorCS53YWl0X2Zvcl9ibGFua19jb21wbGV0ZSA9IGRjbjIwX3dh aXRfZm9yX2JsYW5rX2NvbXBsZXRlLAorCS5kY2NnX2luaXQgPSBkY24yMF9kY2NnX2luaXQsCisJ LnNldF9ibGVuZF9sdXQgPSBkY24yMF9zZXRfYmxlbmRfbHV0LAorCS5zZXRfc2hhcGVyXzNkbHV0 ID0gZGNuMjBfc2V0X3NoYXBlcl8zZGx1dCwKKwkuZ2V0X3Z1cGRhdGVfb2Zmc2V0X2Zyb21fdnN5 bmMgPSBkY24xMF9nZXRfdnVwZGF0ZV9vZmZzZXRfZnJvbV92c3luYywKK307CisKK3ZvaWQgZGNu MjBfaHdfc2VxdWVuY2VyX2NvbnN0cnVjdChzdHJ1Y3QgZGMgKmRjKQoreworCWRjLT5od3NzID0g ZGNuMjBfZnVuY3M7CisKKwlpZiAoSVNfRlBHQV9NQVhJTVVTX0RDKGRjLT5jdHgtPmRjZV9lbnZp cm9ubWVudCkpIHsKKwkJZGMtPmh3c3MuaW5pdF9odyA9IGRjbjIwX2ZwZ2FfaW5pdF9odzsKKwkJ ZGMtPmh3c3MuaW5pdF9waXBlcyA9IE5VTEw7CisJfQorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX2luaXQuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9pbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4xMjI3Nzc5N2NkNzEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfaW5pdC5oCkBAIC0wLDAgKzEs MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMu CisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRv IGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNz b2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVi bGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0 aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBS T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IK KyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug QU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hU IEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJ TiBUSEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYg X19EQ19EQ04yMF9JTklUX0hfXworI2RlZmluZSBfX0RDX0RDTjIwX0lOSVRfSF9fCisKK3N0cnVj dCBkYzsKKwordm9pZCBkY24yMF9od19zZXF1ZW5jZXJfY29uc3RydWN0KHN0cnVjdCBkYyAqZGMp OworCisjZW5kaWYgLyogX19EQ19EQ04yMF9JTklUX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX29wdGMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9vcHRjLmMKaW5kZXggMGU1MGRjOWI2MTFh Li5mNTg1NGE1ZDJiNzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9kY24yMC9kY24yMF9vcHRjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2Rj L2RjbjIwL2RjbjIwX29wdGMuYwpAQCAtMjAxLDExICsyMDEsMTEgQEAgdm9pZCBvcHRjMl9zZXRf ZHNjX2NvbmZpZyhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKIAkJT1BUQ19EU0NfU0xJ Q0VfV0lEVEgsIGRzY19zbGljZV93aWR0aCk7CiB9CiAKLS8qKgotICogUFRJIGkgdGhpbmsgaXMg YWxyZWFkeSBkb25lIHNvbWV3aGVyZSBlbHNlIGZvciAya2EKLSAqIChvcHA/LCBwbGVhc2UgZG91 YmxlIGNoZWNrLgotICogT1BUQyBzaWRlIG9ubHkgaGFzIDEgcmVnaXN0ZXIgdG8gc2V0IGZvciBQ VElfRU5BQkxFKQotICovCisvKlRFTVA6IE5lZWQgdG8gZmlndXJlIG91dCBpbmhlcml0YW5jZSBt b2RlbCBoZXJlLiovCitib29sIG9wdGMyX2lzX3R3b19waXhlbHNfcGVyX2NvbnRhaW50ZXIoY29u c3Qgc3RydWN0IGRjX2NydGNfdGltaW5nICp0aW1pbmcpCit7CisJcmV0dXJuIG9wdGMxX2lzX3R3 b19waXhlbHNfcGVyX2NvbnRhaW50ZXIodGltaW5nKTsKK30KIAogdm9pZCBvcHRjMl9zZXRfb2Rt X2J5cGFzcyhzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0YywKIAkJY29uc3Qgc3RydWN0IGRj X2NydGNfdGltaW5nICpkY19jcnRjX3RpbWluZykKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIG9w dGMyX3NldF9vZG1fYnlwYXNzKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjLAogCQkJT1BU Q19TRUcxX1NSQ19TRUwsIDB4Zik7CiAJUkVHX1dSSVRFKE9UR19IX1RJTUlOR19DTlRMLCAwKTsK IAotCWhfZGl2XzIgPSBvcHRjMV9pc190d29fcGl4ZWxzX3Blcl9jb250YWludGVyKGRjX2NydGNf dGltaW5nKTsKKwloX2Rpdl8yID0gb3B0YzJfaXNfdHdvX3BpeGVsc19wZXJfY29udGFpbnRlcihk Y19jcnRjX3RpbWluZyk7CiAJUkVHX1VQREFURShPVEdfSF9USU1JTkdfQ05UTCwKIAkJCU9UR19I X1RJTUlOR19ESVZfQlkyLCBoX2Rpdl8yKTsKIAlSRUdfU0VUKE9QVENfTUVNT1JZX0NPTkZJRywg MCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24y MF9vcHRjLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfb3B0 Yy5oCmluZGV4IDlhZTIyMTQ2ZDJkOC4uYWM5M2ZiZmFlZTAzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfb3B0Yy5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMC9kY24yMF9vcHRjLmgKQEAgLTEwNyw1ICsxMDcs NSBAQCB2b2lkIG9wdGMyX3RyaXBsZWJ1ZmZlcl91bmxvY2soc3RydWN0IHRpbWluZ19nZW5lcmF0 b3IgKm9wdGMpOwogdm9pZCBvcHRjMl9sb2NrX2RvdWJsZWJ1ZmZlcl9kaXNhYmxlKHN0cnVjdCB0 aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKIHZvaWQgb3B0YzJfbG9ja19kb3VibGVidWZmZXJfZW5h YmxlKHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICpvcHRjKTsKIHZvaWQgb3B0YzJfcHJvZ3JhbV9t YW51YWxfdHJpZ2dlcihzdHJ1Y3QgdGltaW5nX2dlbmVyYXRvciAqb3B0Yyk7Ci0KK2Jvb2wgb3B0 YzJfaXNfdHdvX3BpeGVsc19wZXJfY29udGFpbnRlcihjb25zdCBzdHJ1Y3QgZGNfY3J0Y190aW1p bmcgKnRpbWluZyk7CiAjZW5kaWYgLyogX19EQ19PUFRDX0RDTjIwX0hfXyAqLwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjAvZGNuMjBfcmVzb3VyY2UuYwpp bmRleCAzODA1NmUxMTFjNjEuLjMyOGQxMGY2ZmJmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIwL2RjbjIwX3Jlc291cmNlLmMKQEAgLTI4LDYgKzI4 LDggQEAKICNpbmNsdWRlICJkbV9zZXJ2aWNlcy5oIgogI2luY2x1ZGUgImRjLmgiCiAKKyNpbmNs dWRlICJkY24yMF9pbml0LmgiCisKICNpbmNsdWRlICJyZXNvdXJjZS5oIgogI2luY2x1ZGUgImlu Y2x1ZGUvaXJxX3NlcnZpY2VfaW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiZGNuMjAvZGNuMjBfcmVz b3VyY2UuaCIKQEAgLTEzODUsNyArMTM4Nyw3IEBAIHN0YXRpYyB2b2lkIGdldF9waXhlbF9jbG9j a19wYXJhbWV0ZXJzKAogCiAJaWYgKG9wcF9jbnQgPT0gNCkKIAkJcGl4ZWxfY2xrX3BhcmFtcy0+ cmVxdWVzdGVkX3BpeF9jbGtfMTAwaHogLz0gNDsKLQllbHNlIGlmIChvcHRjMV9pc190d29fcGl4 ZWxzX3Blcl9jb250YWludGVyKCZzdHJlYW0tPnRpbWluZykgfHwgb3BwX2NudCA9PSAyKQorCWVs c2UgaWYgKG9wdGMyX2lzX3R3b19waXhlbHNfcGVyX2NvbnRhaW50ZXIoJnN0cmVhbS0+dGltaW5n KSB8fCBvcHBfY250ID09IDIpCiAJCXBpeGVsX2Nsa19wYXJhbXMtPnJlcXVlc3RlZF9waXhfY2xr XzEwMGh6IC89IDI7CiAKIAlpZiAoc3RyZWFtLT50aW1pbmcudGltaW5nXzNkX2Zvcm1hdCA9PSBU SU1JTkdfM0RfRk9STUFUX0hXX0ZSQU1FX1BBQ0tJTkcpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2Rpc3BsYXkvZGMvZGNuMjEvTWFrZWZpbGUKaW5kZXggZmViN2U3MDVlNzkyLi41YTA2MWUxMGVm NGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9NYWtl ZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvTWFrZWZpbGUK QEAgLTEsNyArMSw4IEBACiAjCiAjIE1ha2VmaWxlIGZvciBEQ04yMS4KIAotRENOMjEgPSBkY24y MV9odWJwLm8gZGNuMjFfaHViYnViLm8gZGNuMjFfcmVzb3VyY2UubyBkY24yMV9od3NlcS5vIGRj bjIxX2xpbmtfZW5jb2Rlci5vCitEQ04yMSA9IGRjbjIxX2luaXQubyBkY24yMV9odWJwLm8gZGNu MjFfaHViYnViLm8gZGNuMjFfcmVzb3VyY2UubyBcCisJIGRjbjIxX2h3c2VxLm8gZGNuMjFfbGlu a19lbmNvZGVyLm8KIAogQ0ZMQUdTX2RjbjIxX3Jlc291cmNlLm8gOj0gLW1oYXJkLWZsb2F0IC1t c3NlCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9k Y24yMV9od3NlcS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIx X2h3c2VxLmMKaW5kZXggYjI1MjE1Y2FkZjg1Li4wMDU4OTRkY2FiYzkgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9od3NlcS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9od3NlcS5jCkBAIC0yOCw3 ICsyOCw2IEBACiAjaW5jbHVkZSAiY29yZV90eXBlcy5oIgogI2luY2x1ZGUgInJlc291cmNlLmgi CiAjaW5jbHVkZSAiZGNlL2RjZV9od3NlcS5oIgotI2luY2x1ZGUgImRjbjIwL2RjbjIwX2h3c2Vx LmgiCiAjaW5jbHVkZSAidm1pZC5oIgogI2luY2x1ZGUgInJlZ19oZWxwZXIuaCIKICNpbmNsdWRl ICJody9jbGtfbWdyLmgiCkBAIC02MSw3ICs2MCw3IEBAIHN0YXRpYyB2b2lkIG1taHViX3VwZGF0 ZV9wYWdlX3RhYmxlX2NvbmZpZyhzdHJ1Y3QgZGNuX2h1YmJ1Yl9waHlzX2FkZHJfY29uZmlnICpj CiAKIH0KIAotc3RhdGljIGludCBkY24yMV9pbml0X3N5c19jdHgoc3RydWN0IGRjZV9od3NlcSAq aHdzLCBzdHJ1Y3QgZGMgKmRjLCBzdHJ1Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnICpwYV9j b25maWcpCitpbnQgZGNuMjFfaW5pdF9zeXNfY3R4KHN0cnVjdCBkY2VfaHdzZXEgKmh3cywgc3Ry dWN0IGRjICpkYywgc3RydWN0IGRjX3BoeV9hZGRyX3NwYWNlX2NvbmZpZyAqcGFfY29uZmlnKQog ewogCXN0cnVjdCBkY25faHViYnViX3BoeXNfYWRkcl9jb25maWcgY29uZmlnOwogCkBAIC04Miw3 ICs4MSw3IEBAIHN0YXRpYyBpbnQgZGNuMjFfaW5pdF9zeXNfY3R4KHN0cnVjdCBkY2VfaHdzZXEg Kmh3cywgc3RydWN0IGRjICpkYywgc3RydWN0IGRjX3BoCiAKIC8vIHdvcmsgYXJvdW5kIGZvciBS ZW5vaXIgczBpMywgaWYgcmVnaXN0ZXIgaXMgcHJvZ3JhbW1lZCwgYnlwYXNzIGdvbGRlbiBpbml0 LgogCi1zdGF0aWMgYm9vbCBkY24yMV9zMGkzX2dvbGRlbl9pbml0X3dhKHN0cnVjdCBkYyAqZGMp Citib29sIGRjbjIxX3MwaTNfZ29sZGVuX2luaXRfd2Eoc3RydWN0IGRjICpkYykKIHsKIAlzdHJ1 Y3QgZGNlX2h3c2VxICpod3MgPSBkYy0+aHdzZXE7CiAJdWludDMyX3QgdmFsdWUgPSAwOwpAQCAt MTEyLDExICsxMTEsMyBAQCB2b2lkIGRjbjIxX29wdGltaXplX3B3cl9zdGF0ZSgKIAkJCXRydWUp OwogfQogCi12b2lkIGRjbjIxX2h3X3NlcXVlbmNlcl9jb25zdHJ1Y3Qoc3RydWN0IGRjICpkYykK LXsKLQlkY24yMF9od19zZXF1ZW5jZXJfY29uc3RydWN0KGRjKTsKLQlkYy0+aHdzcy5pbml0X3N5 c19jdHggPSBkY24yMV9pbml0X3N5c19jdHg7Ci0JZGMtPmh3c3MuczBpM19nb2xkZW5faW5pdF93 YSA9IGRjbjIxX3MwaTNfZ29sZGVuX2luaXRfd2E7Ci0JZGMtPmh3c3Mub3B0aW1pemVfcHdyX3N0 YXRlID0gZGNuMjFfb3B0aW1pemVfcHdyX3N0YXRlOwotCWRjLT5od3NzLmV4aXRfb3B0aW1pemVk X3B3cl9zdGF0ZSA9IGRjbjIxX2V4aXRfb3B0aW1pemVkX3B3cl9zdGF0ZTsKLX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9od3NlcS5oIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX2h3c2VxLmgKaW5kZXgg YmU2N2I2MmU2ZmIxLi4yZjdiOGEyMjBlYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9od3NlcS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9od3NlcS5oCkBAIC0yOCw2ICsyOCwxOCBAQAogCiBz dHJ1Y3QgZGM7CiAKLXZvaWQgZGNuMjFfaHdfc2VxdWVuY2VyX2NvbnN0cnVjdChzdHJ1Y3QgZGMg KmRjKTsKK2ludCBkY24yMV9pbml0X3N5c19jdHgoc3RydWN0IGRjZV9od3NlcSAqaHdzLAorCQlz dHJ1Y3QgZGMgKmRjLAorCQlzdHJ1Y3QgZGNfcGh5X2FkZHJfc3BhY2VfY29uZmlnICpwYV9jb25m aWcpOworCitib29sIGRjbjIxX3MwaTNfZ29sZGVuX2luaXRfd2Eoc3RydWN0IGRjICpkYyk7CisK K3ZvaWQgZGNuMjFfZXhpdF9vcHRpbWl6ZWRfcHdyX3N0YXRlKAorCQljb25zdCBzdHJ1Y3QgZGMg KmRjLAorCQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOworCit2b2lkIGRjbjIxX29wdGltaXpl X3B3cl9zdGF0ZSgKKwkJY29uc3Qgc3RydWN0IGRjICpkYywKKwkJc3RydWN0IGRjX3N0YXRlICpj b250ZXh0KTsKIAogI2VuZGlmIC8qIF9fRENfSFdTU19EQ04yMV9IX18gKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kY24yMS9kY24yMV9pbml0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvZGMvZGNuMjEvZGNuMjFfaW5pdC5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWQ4YjY3YjRlMjUyCi0tLSAvZGV2L251bGwK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2RjbjIxX2luaXQuYwpA QCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IEFkdmFuY2VkIE1pY3JvIERl dmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9m IGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3 YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwK KyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGlu ZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwg Y29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhl CisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxv d2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09G VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg RVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUg V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRI RSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJ TSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBP RiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVS IERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBBdXRob3JzOiBBTUQKKyAqCisgKi8K KworI2luY2x1ZGUgImRjZTExMC9kY2UxMTBfaHdfc2VxdWVuY2VyLmgiCisjaW5jbHVkZSAiZGNu MTAvZGNuMTBfaHdfc2VxdWVuY2VyLmgiCisjaW5jbHVkZSAiZGNuMjAvZGNuMjBfaHdzZXEuaCIK KyNpbmNsdWRlICJkY24yMV9od3NlcS5oIgorCitzdGF0aWMgY29uc3Qgc3RydWN0IGh3X3NlcXVl bmNlcl9mdW5jcyBkY24yMV9mdW5jcyA9IHsKKwkucHJvZ3JhbV9nYW11dF9yZW1hcCA9IGRjbjEw X3Byb2dyYW1fZ2FtdXRfcmVtYXAsCisJLmluaXRfaHcgPSBkY24xMF9pbml0X2h3LAorCS5pbml0 X3BpcGVzID0gZGNuMTBfaW5pdF9waXBlcywKKwkuYXBwbHlfY3R4X3RvX2h3ID0gZGNlMTEwX2Fw cGx5X2N0eF90b19odywKKwkuYXBwbHlfY3R4X2Zvcl9zdXJmYWNlID0gTlVMTCwKKwkucHJvZ3Jh bV9mcm9udF9lbmRfZm9yX2N0eCA9IGRjbjIwX3Byb2dyYW1fZnJvbnRfZW5kX2Zvcl9jdHgsCisJ LnVwZGF0ZV9wbGFuZV9hZGRyID0gZGNuMjBfdXBkYXRlX3BsYW5lX2FkZHIsCisJLnBsYW5lX2F0 b21pY19kaXNjb25uZWN0ID0gZGNuMTBfcGxhbmVfYXRvbWljX2Rpc2Nvbm5lY3QsCisJLnVwZGF0 ZV9kY2h1YiA9IGRjbjEwX3VwZGF0ZV9kY2h1YiwKKwkudXBkYXRlX21wY2MgPSBkY24yMF91cGRh dGVfbXBjYywKKwkudXBkYXRlX3BlbmRpbmdfc3RhdHVzID0gZGNuMTBfdXBkYXRlX3BlbmRpbmdf c3RhdHVzLAorCS5zZXRfaW5wdXRfdHJhbnNmZXJfZnVuYyA9IGRjbjIwX3NldF9pbnB1dF90cmFu c2Zlcl9mdW5jLAorCS5zZXRfb3V0cHV0X3RyYW5zZmVyX2Z1bmMgPSBkY24yMF9zZXRfb3V0cHV0 X3RyYW5zZmVyX2Z1bmMsCisJLnByb2dyYW1fb3V0cHV0X2NzYyA9IGRjbjIwX3Byb2dyYW1fb3V0 cHV0X2NzYywKKwkucG93ZXJfZG93biA9IGRjZTExMF9wb3dlcl9kb3duLAorCS5lbmFibGVfYWNj ZWxlcmF0ZWRfbW9kZSA9IGRjZTExMF9lbmFibGVfYWNjZWxlcmF0ZWRfbW9kZSwKKwkuZW5hYmxl X3RpbWluZ19zeW5jaHJvbml6YXRpb24gPSBkY24xMF9lbmFibGVfdGltaW5nX3N5bmNocm9uaXph dGlvbiwKKwkuZW5hYmxlX3Blcl9mcmFtZV9jcnRjX3Bvc2l0aW9uX3Jlc2V0ID0gZGNuMTBfZW5h YmxlX3Blcl9mcmFtZV9jcnRjX3Bvc2l0aW9uX3Jlc2V0LAorCS51cGRhdGVfaW5mb19mcmFtZSA9 IGRjZTExMF91cGRhdGVfaW5mb19mcmFtZSwKKwkuc2VuZF9pbW1lZGlhdGVfc2RwX21lc3NhZ2Ug PSBkY24xMF9zZW5kX2ltbWVkaWF0ZV9zZHBfbWVzc2FnZSwKKwkuZW5hYmxlX3N0cmVhbSA9IGRj bjIwX2VuYWJsZV9zdHJlYW0sCisJLmRpc2FibGVfc3RyZWFtID0gZGNlMTEwX2Rpc2FibGVfc3Ry ZWFtLAorCS51bmJsYW5rX3N0cmVhbSA9IGRjbjIwX3VuYmxhbmtfc3RyZWFtLAorCS5ibGFua19z dHJlYW0gPSBkY2UxMTBfYmxhbmtfc3RyZWFtLAorCS5lbmFibGVfYXVkaW9fc3RyZWFtID0gZGNl MTEwX2VuYWJsZV9hdWRpb19zdHJlYW0sCisJLmRpc2FibGVfYXVkaW9fc3RyZWFtID0gZGNlMTEw X2Rpc2FibGVfYXVkaW9fc3RyZWFtLAorCS5lbmFibGVfZGlzcGxheV9wb3dlcl9nYXRpbmcgPSBk Y24xMF9kdW1teV9kaXNwbGF5X3Bvd2VyX2dhdGluZywKKwkuZGlzYWJsZV9wbGFuZSA9IGRjbjIw X2Rpc2FibGVfcGxhbmUsCisJLmJsYW5rX3BpeGVsX2RhdGEgPSBkY24yMF9ibGFua19waXhlbF9k YXRhLAorCS5waXBlX2NvbnRyb2xfbG9jayA9IGRjbjIwX3BpcGVfY29udHJvbF9sb2NrLAorCS5w aXBlX2NvbnRyb2xfbG9ja19nbG9iYWwgPSBkY24yMF9waXBlX2NvbnRyb2xfbG9ja19nbG9iYWws CisJLnByZXBhcmVfYmFuZHdpZHRoID0gZGNuMjBfcHJlcGFyZV9iYW5kd2lkdGgsCisJLm9wdGlt aXplX2JhbmR3aWR0aCA9IGRjbjIwX29wdGltaXplX2JhbmR3aWR0aCwKKwkudXBkYXRlX2JhbmR3 aWR0aCA9IGRjbjIwX3VwZGF0ZV9iYW5kd2lkdGgsCisJLnJlc2V0X2h3X2N0eF93cmFwID0gZGNu MjBfcmVzZXRfaHdfY3R4X3dyYXAsCisJLmVuYWJsZV9zdHJlYW1fdGltaW5nID0gZGNuMjBfZW5h YmxlX3N0cmVhbV90aW1pbmcsCisJLnNldF9kcnIgPSBkY24xMF9zZXRfZHJyLAorCS5nZXRfcG9z aXRpb24gPSBkY24xMF9nZXRfcG9zaXRpb24sCisJLnNldF9zdGF0aWNfc2NyZWVuX2NvbnRyb2wg PSBkY24xMF9zZXRfc3RhdGljX3NjcmVlbl9jb250cm9sLAorCS5zZXR1cF9zdGVyZW8gPSBkY24x MF9zZXR1cF9zdGVyZW8sCisJLnNldF9hdm11dGUgPSBkY2UxMTBfc2V0X2F2bXV0ZSwKKwkubG9n X2h3X3N0YXRlID0gZGNuMTBfbG9nX2h3X3N0YXRlLAorCS5nZXRfaHdfc3RhdGUgPSBkY24xMF9n ZXRfaHdfc3RhdGUsCisJLmNsZWFyX3N0YXR1c19iaXRzID0gZGNuMTBfY2xlYXJfc3RhdHVzX2Jp dHMsCisJLndhaXRfZm9yX21wY2NfZGlzY29ubmVjdCA9IGRjbjEwX3dhaXRfZm9yX21wY2NfZGlz Y29ubmVjdCwKKwkuZWRwX2JhY2tsaWdodF9jb250cm9sID0gZGNlMTEwX2VkcF9iYWNrbGlnaHRf Y29udHJvbCwKKwkuZWRwX3Bvd2VyX2NvbnRyb2wgPSBkY2UxMTBfZWRwX3Bvd2VyX2NvbnRyb2ws CisJLmVkcF93YWl0X2Zvcl9ocGRfcmVhZHkgPSBkY2UxMTBfZWRwX3dhaXRfZm9yX2hwZF9yZWFk eSwKKwkuc2V0X2N1cnNvcl9wb3NpdGlvbiA9IGRjbjEwX3NldF9jdXJzb3JfcG9zaXRpb24sCisJ LnNldF9jdXJzb3JfYXR0cmlidXRlID0gZGNuMTBfc2V0X2N1cnNvcl9hdHRyaWJ1dGUsCisJLnNl dF9jdXJzb3Jfc2RyX3doaXRlX2xldmVsID0gZGNuMTBfc2V0X2N1cnNvcl9zZHJfd2hpdGVfbGV2 ZWwsCisJLmRpc2FibGVfc3RyZWFtX2dhdGluZyA9IGRjbjIwX2Rpc2FibGVfc3RyZWFtX2dhdGlu ZywKKwkuZW5hYmxlX3N0cmVhbV9nYXRpbmcgPSBkY24yMF9lbmFibGVfc3RyZWFtX2dhdGluZywK Kwkuc2V0dXBfcGVyaW9kaWNfaW50ZXJydXB0ID0gZGNuMTBfc2V0dXBfcGVyaW9kaWNfaW50ZXJy dXB0LAorCS5zZXR1cF92dXBkYXRlX2ludGVycnVwdCA9IGRjbjIwX3NldHVwX3Z1cGRhdGVfaW50 ZXJydXB0LAorCS5zZXRfY2xvY2sgPSBkY24xMF9zZXRfY2xvY2ssCisJLmdldF9jbG9jayA9IGRj bjEwX2dldF9jbG9jaywKKwkuZGlkX3VuZGVyZmxvd19vY2N1ciA9IGRjbjEwX2RpZF91bmRlcmZs b3dfb2NjdXIsCisJLmluaXRfYmxhbmsgPSBkY24yMF9pbml0X2JsYW5rLAorCS5kaXNhYmxlX3Zn YSA9IGRjbjIwX2Rpc2FibGVfdmdhLAorCS5iaW9zX2dvbGRlbl9pbml0ID0gZGNuMTBfYmlvc19n b2xkZW5faW5pdCwKKwkucGxhbmVfYXRvbWljX2Rpc2FibGUgPSBkY24yMF9wbGFuZV9hdG9taWNf ZGlzYWJsZSwKKwkucGxhbmVfYXRvbWljX3Bvd2VyX2Rvd24gPSBkY24xMF9wbGFuZV9hdG9taWNf cG93ZXJfZG93biwKKwkuZW5hYmxlX3Bvd2VyX2dhdGluZ19wbGFuZSA9IGRjbjIwX2VuYWJsZV9w b3dlcl9nYXRpbmdfcGxhbmUsCisJLmRwcF9wZ19jb250cm9sID0gZGNuMjBfZHBwX3BnX2NvbnRy b2wsCisJLmh1YnBfcGdfY29udHJvbCA9IGRjbjIwX2h1YnBfcGdfY29udHJvbCwKKwkuZHNjX3Bn X2NvbnRyb2wgPSBOVUxMLAorCS5wcm9ncmFtX3RyaXBsZWJ1ZmZlciA9IGRjbjIwX3Byb2dyYW1f dHJpcGxlX2J1ZmZlciwKKwkuZW5hYmxlX3dyaXRlYmFjayA9IGRjbjIwX2VuYWJsZV93cml0ZWJh Y2ssCisJLmRpc2FibGVfd3JpdGViYWNrID0gZGNuMjBfZGlzYWJsZV93cml0ZWJhY2ssCisJLnVw ZGF0ZV9vZG0gPSBkY24yMF91cGRhdGVfb2RtLAorCS5kbWRhdGFfc3RhdHVzX2RvbmUgPSBkY24y MF9kbWRhdGFfc3RhdHVzX2RvbmUsCisJLnByb2dyYW1fZG1kYXRhX2VuZ2luZSA9IGRjbjIwX3By b2dyYW1fZG1kYXRhX2VuZ2luZSwKKwkuaW5pdF9zeXNfY3R4ID0gZGNuMjFfaW5pdF9zeXNfY3R4 LAorCS5pbml0X3ZtX2N0eCA9IGRjbjIwX2luaXRfdm1fY3R4LAorCS5zZXRfZmxpcF9jb250cm9s X2dzbCA9IGRjbjIwX3NldF9mbGlwX2NvbnRyb2xfZ3NsLAorCS5kc2NfcGdfY29udHJvbCA9IGRj bjIwX2RzY19wZ19jb250cm9sLAorCS5nZXRfc3VyZmFjZV92aXN1YWxfY29uZmlybV9jb2xvciA9 IGRjbjEwX2dldF9zdXJmYWNlX3Zpc3VhbF9jb25maXJtX2NvbG9yLAorCS5nZXRfaGRyX3Zpc3Vh bF9jb25maXJtX2NvbG9yID0gZGNuMTBfZ2V0X2hkcl92aXN1YWxfY29uZmlybV9jb2xvciwKKwku c2V0X2hkcl9tdWx0aXBsaWVyID0gZGNuMTBfc2V0X2hkcl9tdWx0aXBsaWVyLAorCS52ZXJpZnlf YWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoID0gZGNuMTBfdmVyaWZ5X2FsbG93X3BzdGF0ZV9jaGFu Z2VfaGlnaCwKKwkuczBpM19nb2xkZW5faW5pdF93YSA9IGRjbjIxX3MwaTNfZ29sZGVuX2luaXRf d2EsCisJLm9wdGltaXplX3B3cl9zdGF0ZSA9IGRjbjIxX29wdGltaXplX3B3cl9zdGF0ZSwKKwku ZXhpdF9vcHRpbWl6ZWRfcHdyX3N0YXRlID0gZGNuMjFfZXhpdF9vcHRpbWl6ZWRfcHdyX3N0YXRl LAorCS53YWl0X2Zvcl9ibGFua19jb21wbGV0ZSA9IGRjbjIwX3dhaXRfZm9yX2JsYW5rX2NvbXBs ZXRlLAorCS5kY2NnX2luaXQgPSBkY24yMF9kY2NnX2luaXQsCisJLnNldF9ibGVuZF9sdXQgPSBk Y24yMF9zZXRfYmxlbmRfbHV0LAorCS5zZXRfc2hhcGVyXzNkbHV0ID0gZGNuMjBfc2V0X3NoYXBl cl8zZGx1dCwKKwkuZ2V0X3Z1cGRhdGVfb2Zmc2V0X2Zyb21fdnN5bmMgPSBkY24xMF9nZXRfdnVw ZGF0ZV9vZmZzZXRfZnJvbV92c3luYywKK307CisKK3ZvaWQgZGNuMjFfaHdfc2VxdWVuY2VyX2Nv bnN0cnVjdChzdHJ1Y3QgZGMgKmRjKQoreworCWRjLT5od3NzID0gZGNuMjFfZnVuY3M7CisKKwlp ZiAoSVNfRlBHQV9NQVhJTVVTX0RDKGRjLT5jdHgtPmRjZV9lbnZpcm9ubWVudCkpIHsKKwkJZGMt Pmh3c3MuaW5pdF9odyA9IGRjbjIwX2ZwZ2FfaW5pdF9odzsKKwkJZGMtPmh3c3MuaW5pdF9waXBl cyA9IE5VTEw7CisJfQorfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2RjL2RjbjIxL2RjbjIxX2luaXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9k Y24yMS9kY24yMV9pbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li4zZWQyNDI5MjY0OGEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvZGMvZGNuMjEvZGNuMjFfaW5pdC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5 cmlnaHQgMjAxNiBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBi ZSBpbmNsdWRlZCBpbgorICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUgU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xV RElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ LAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO VC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRI T1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LAorICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisg KgorICogQXV0aG9yczogQU1ECisgKgorICovCisKKyNpZm5kZWYgX19EQ19EQ04yMV9JTklUX0hf XworI2RlZmluZSBfX0RDX0RDTjIxX0lOSVRfSF9fCisKK3N0cnVjdCBkYzsKKwordm9pZCBkY24y MV9od19zZXF1ZW5jZXJfY29uc3RydWN0KHN0cnVjdCBkYyAqZGMpOworCisjZW5kaWYgLyogX19E Q19EQ04yMF9JTklUX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNw bGF5L2RjL2RjbjIxL2RjbjIxX3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3Bs YXkvZGMvZGNuMjEvZGNuMjFfcmVzb3VyY2UuYwppbmRleCAzZTcyMTVhNDY0YTYuLmRkM2JjMzdk NGViOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIxL2Rj bjIxX3Jlc291cmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RjbjIx L2RjbjIxX3Jlc291cmNlLmMKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRlICJkbV9zZXJ2aWNl cy5oIgogI2luY2x1ZGUgImRjLmgiCiAKKyNpbmNsdWRlICJkY24yMV9pbml0LmgiCisKICNpbmNs dWRlICJyZXNvdXJjZS5oIgogI2luY2x1ZGUgImluY2x1ZGUvaXJxX3NlcnZpY2VfaW50ZXJmYWNl LmgiCiAjaW5jbHVkZSAiZGNuMjAvZGNuMjBfcmVzb3VyY2UuaCIKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9pbmMvaHdfc2VxdWVuY2VyLmggYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2Rpc3BsYXkvZGMvaW5jL2h3X3NlcXVlbmNlci5oCmluZGV4IDY2M2ZhMTgwOWE3 My4uNTk0MTU3N2Q3OGE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkv ZGMvaW5jL2h3X3NlcXVlbmNlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9k Yy9pbmMvaHdfc2VxdWVuY2VyLmgKQEAgLTE0OCwxMSArMTQ4LDExIEBAIHN0cnVjdCBod19zZXF1 ZW5jZXJfZnVuY3MgewogCXZvaWQgKCp1cGRhdGVfcGVuZGluZ19zdGF0dXMpKAogCQkJc3RydWN0 IHBpcGVfY3R4ICpwaXBlX2N0eCk7CiAKLQlib29sICgqc2V0X2lucHV0X3RyYW5zZmVyX2Z1bmMp KAorCWJvb2wgKCpzZXRfaW5wdXRfdHJhbnNmZXJfZnVuYykoc3RydWN0IGRjICpkYywKIAkJCQlz dHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCQkJCWNvbnN0IHN0cnVjdCBkY19wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGUpOwogCi0JYm9vbCAoKnNldF9vdXRwdXRfdHJhbnNmZXJfZnVuYykoCisJ Ym9vbCAoKnNldF9vdXRwdXRfdHJhbnNmZXJfZnVuYykoc3RydWN0IGRjICpkYywKIAkJCQlzdHJ1 Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAogCQkJCWNvbnN0IHN0cnVjdCBkY19zdHJlYW1fc3RhdGUg KnN0cmVhbSk7CiAKQEAgLTI3OSw4ICsyNzksMTAgQEAgc3RydWN0IGh3X3NlcXVlbmNlcl9mdW5j cyB7CiAJdm9pZCAoKnNldF9jdXJzb3JfYXR0cmlidXRlKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGUp OwogCXZvaWQgKCpzZXRfY3Vyc29yX3Nkcl93aGl0ZV9sZXZlbCkoc3RydWN0IHBpcGVfY3R4ICpw aXBlKTsKIAotCXZvaWQgKCpzZXR1cF9wZXJpb2RpY19pbnRlcnJ1cHQpKHN0cnVjdCBwaXBlX2N0 eCAqcGlwZV9jdHgsIGVudW0gdmxpbmVfc2VsZWN0IHZsaW5lKTsKLQl2b2lkICgqc2V0dXBfdnVw ZGF0ZV9pbnRlcnJ1cHQpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOworCXZvaWQgKCpzZXR1 cF9wZXJpb2RpY19pbnRlcnJ1cHQpKHN0cnVjdCBkYyAqZGMsCisJCQlzdHJ1Y3QgcGlwZV9jdHgg KnBpcGVfY3R4LAorCQkJZW51bSB2bGluZV9zZWxlY3QgdmxpbmUpOworCXZvaWQgKCpzZXR1cF92 dXBkYXRlX2ludGVycnVwdCkoc3RydWN0IGRjICpkYywgc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0 eCk7CiAJYm9vbCAoKmRpZF91bmRlcmZsb3dfb2NjdXIpKHN0cnVjdCBkYyAqZGMsIHN0cnVjdCBw aXBlX2N0eCAqcGlwZV9jdHgpOwogCiAJdm9pZCAoKmluaXRfYmxhbmspKHN0cnVjdCBkYyAqZGMs IHN0cnVjdCB0aW1pbmdfZ2VuZXJhdG9yICp0Zyk7CkBAIC0zMzgsNiArMzQwLDM2IEBAIHN0cnVj dCBod19zZXF1ZW5jZXJfZnVuY3MgewogCQkJc3RydWN0IGRjX2Nsb2NrX2NvbmZpZyAqY2xvY2tf Y2ZnKTsKIAogCWJvb2wgKCpzMGkzX2dvbGRlbl9pbml0X3dhKShzdHJ1Y3QgZGMgKmRjKTsKKwor CXZvaWQgKCpnZXRfc3VyZmFjZV92aXN1YWxfY29uZmlybV9jb2xvcikoCisJCQljb25zdCBzdHJ1 Y3QgcGlwZV9jdHggKnBpcGVfY3R4LAorCQkJc3RydWN0IHRnX2NvbG9yICpjb2xvcik7CisKKwl2 b2lkICgqZ2V0X2hkcl92aXN1YWxfY29uZmlybV9jb2xvcikoCisJCQlzdHJ1Y3QgcGlwZV9jdHgg KnBpcGVfY3R4LAorCQkJc3RydWN0IHRnX2NvbG9yICpjb2xvcik7CisKKwl2b2lkICgqc2V0X2hk cl9tdWx0aXBsaWVyKShzdHJ1Y3QgcGlwZV9jdHggKnBpcGVfY3R4KTsKKworCXZvaWQgKCp2ZXJp ZnlfYWxsb3dfcHN0YXRlX2NoYW5nZV9oaWdoKShzdHJ1Y3QgZGMgKmRjKTsKKworCXZvaWQgKCpw cm9ncmFtX3BpcGUpKAorCQkJc3RydWN0IGRjICpkYywKKwkJCXN0cnVjdCBwaXBlX2N0eCAqcGlw ZV9jdHgsCisJCQlzdHJ1Y3QgZGNfc3RhdGUgKmNvbnRleHQpOworCisJYm9vbCAoKndhaXRfZm9y X2JsYW5rX2NvbXBsZXRlKSgKKwkJCXN0cnVjdCBvdXRwdXRfcGl4ZWxfcHJvY2Vzc29yICpvcHAp OworCisJdm9pZCAoKmRjY2dfaW5pdCkoc3RydWN0IGRjZV9od3NlcSAqaHdzKTsKKworCWJvb2wg KCpzZXRfYmxlbmRfbHV0KSgKKwkJc3RydWN0IHBpcGVfY3R4ICpwaXBlX2N0eCwgY29uc3Qgc3Ry dWN0IGRjX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CisKKwlib29sICgqc2V0X3NoYXBlcl8z ZGx1dCkoCisJCXN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgsIGNvbnN0IHN0cnVjdCBkY19wbGFu ZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOworCisJaW50ICgqZ2V0X3Z1cGRhdGVfb2Zmc2V0X2Zyb21f dnN5bmMpKHN0cnVjdCBwaXBlX2N0eCAqcGlwZV9jdHgpOwogfTsKIAogdm9pZCBjb2xvcl9zcGFj ZV90b19ibGFja19jb2xvcigKLS0gCjIuMjQuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4