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=-15.0 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 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 E2C09C433E0 for ; Wed, 27 Jan 2021 10:54:12 +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 7A1C620724 for ; Wed, 27 Jan 2021 10:54:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7A1C620724 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 70B6789A9A; Wed, 27 Jan 2021 10:54:11 +0000 (UTC) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2083.outbound.protection.outlook.com [40.107.237.83]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C96389A9A for ; Wed, 27 Jan 2021 10:54:10 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KDct+n6XpURJh/Smm5e0V4IapDNrTiBwPR5Dp+OS82JZFa/w+Rjg7c4tdwj5s3hDs82GzgQUh5MWO9wl7LNtTQBOfsenQFAev3peIVIPlbg7N/iWX+95Ivrmt9z30uJGRo3wkUL+UJqGKf4GZ74cN5RCdgmlOQTh8Qzt3lC6VzGOzED592EIkERZ/ZM3R6MA/MtfbeWH6rP5yNUCDL1wZOV09Dbha+nqDqKIsjzMUrH70hqYuy8nbMTJApOqVq2C9xuwKc1yHEncm52kBIwGmfYMdWKZiIskG771XmbZye5IdkiM3lF4IUy3VQyQJ3qzESYnCLQhyRePapEzWWX6uw== 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=MxcuQ43UtVKrlDdNHP1rNUtcsO9Xxu59Irj7+0sfD9Q=; b=YhRtDsqvo0an4tRbRQl5rQjADSnVCDCGuvS3+81a036HijNzcW8dZdlaj96hKbhtN/I0m4W0aG9Wdg7b31HlpcgKqd3zx1C21VkXKNjc1f5nRqR7BavR6JVJNQZS+AD8TuOE4gdjA19FOchOoqSEyu8DazNY90T1RWDXY0lOBCx0OSbX6SUs7SOYM8tZ/vA2VNCDUoUJRj+RpTbTE+YxYvl37Zto1VfuLUsZ1eg1jXzuyOjdeHDKC+msKJ7ABAujxj00m/HrN17kABbFXLWgqJp65Qo++A3CLzFldTttNxXlmtH8rSA7J+a0EuHBYOpXdq1yvS26rGgCudjzPwn1nA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MxcuQ43UtVKrlDdNHP1rNUtcsO9Xxu59Irj7+0sfD9Q=; b=Za7uq6F8lF3ZqPF4RjcGM289RTqS9FS5e2P1GN30ZTChH8E/hNsdRsNlfEb3Qnv3oKFR8K00zjXRMI70b8IxgRXOm1Z8VIWcsFnUZs5qI2nSnYPUvH92o0YpOq6goYdkC7FBPz5LtsVhBWRSdqeyriG82i6SzYLbd3NgkR4MBkM= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) by MN2PR12MB3901.namprd12.prod.outlook.com (2603:10b6:208:16c::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.12; Wed, 27 Jan 2021 10:54:06 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::44f:9f01:ece7:f0e5%3]) with mapi id 15.20.3784.019; Wed, 27 Jan 2021 10:54:06 +0000 Subject: Re: [PATCH] procfs/dmabuf: Add /proc//task//dmabuf_fds To: Michal Hocko , Kalesh Singh References: <20210126225138.1823266-1-kaleshsingh@google.com> <20210127090526.GB827@dhcp22.suse.cz> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <6b314cf2-99f0-8e63-acc7-edebe2ca97d7@amd.com> Date: Wed, 27 Jan 2021 11:53:55 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <20210127090526.GB827@dhcp22.suse.cz> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:be8a:bd56:1f94:86e7] X-ClientProxiedBy: AM0PR10CA0032.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::12) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7] (2a02:908:1252:fb60:be8a:bd56:1f94:86e7) by AM0PR10CA0032.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3805.16 via Frontend Transport; Wed, 27 Jan 2021 10:54:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 27bb2f17-2e7f-45b1-aef5-08d8c2b1dd61 X-MS-TrafficTypeDiagnostic: MN2PR12MB3901: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: C4BBB0i5p9A2z5vY4KAC651KUJQ0brRImfHef2UbnhhkEpRzTkBN5DV2MvKJROz0expXs8SRyWPsCQFRTkcKzsbfSNOgvhj4XyJUPMG9b+KAKa1keQ3aVTG3zT4mmwUQpMwjvzvQ7WhIJgqp8hnwRTvewi1BDZWWu3fuSEezJYgEzmC6jYGMeCgSJ9uz40gkN5+nJf1sa7xJtgEefGARDMMEUNR8l0pcxFOrxLtaLk3GLjdnPluhPlPzAV1AxFpSJ03wxYwg6AQ2Xv6tbLLUiLG6K10J0dyPMJ9I7z7Lk9E07A+vTI5aBpBHp84LNx48auKiAE0sm8i5FLWIBaO+1PyO5H0Fzfp3royBYLwnRe25LMYnlSAx8avwPeaf5QTwMP4FwxCbYv5t1A6yEfRdFrvD+LdTDIonTqJvONkLbL5jGAq4OkFHpKqj9TaICUlGI8lug1ugwkaAj+wY/YLVHSha9TRJsCgEDBa2hUL3pMnW5/0pGUxIqzxgrlFNHRErDC78BsbBd3kyLw90mKT6ZrUDA6/h1XcII7OFjWxtrMJCGWlMWALQ42Hy2dMu6ise+T5uMXEb7WS+GKx4zRLeqg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(136003)(346002)(376002)(39860400002)(396003)(366004)(2616005)(83380400001)(52116002)(30864003)(66556008)(8676002)(2906002)(66476007)(31686004)(186003)(110136005)(66946007)(31696002)(34580700001)(45080400002)(16526019)(7416002)(6486002)(6666004)(478600001)(86362001)(966005)(4326008)(7406005)(54906003)(36756003)(316002)(8936002)(5660300002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?ZXpLeCt2cm4yMG1EWTcyOHROR1RVTEVHbkczUDlPVUN2UXhHU1N0LzlabXVO?= =?utf-8?B?TExYNzVFYlFOV1ZHT1F5YytUa2hxVXRJY3pRWUZ5WGdkMVlIZFYxaHNzTDFN?= =?utf-8?B?cWMydWROcEFzVDFQalJlZjdtWGVvaitnc2pmWXQzZm12dC9LWE9WWUVaUjFn?= =?utf-8?B?WVBEb0ExSjNDNFFpVldPNWRSK1FzbWFuWDZZM0ROWDU1Mk84ejBJZjkrK1Zt?= =?utf-8?B?dWhtVjZCOUl1YzlXMC9XUkt0Q3JOOGVYQVRaK3VCUEVOVkNvRjRWbWpqZDRh?= =?utf-8?B?ejJxSVVGNjdSb29GZDVtRGV5a0dzR0RrZkRua3VMQjdkaDh2Sy9JeXl1eFVC?= =?utf-8?B?YjkrMnQ1RnIrb0FSUU4xSXFTMFlUWmRCM1hZTm5Wc2xzUUo1N2w3K3pzYWYr?= =?utf-8?B?elZUOVI0YWM1ZEQ1Sk4zVUJ0RS9iWEtTMzJNMVNsY1poeHpPMVc1ZjBVYkls?= =?utf-8?B?UVZrZEhtOFVIeXZ1RkRxWGJsMUVGaDlSRllwUHJEK0s1Ky9HcmtLaU1ZRUdt?= =?utf-8?B?SytmcTV0Mm1sOVNoWEJJTTh3ZjJ6c3RLengrNlhBb0I1WmRkZzh0c1d0TUhW?= =?utf-8?B?QVkzWnE3MjRDclBWay9KOTdENS9JRGxjRXdJWk9udkhtbEN1Y0lNVGJ2d0NT?= =?utf-8?B?d2VRQ3NhSlN4VjMzREFpd2NlM3Z4eDJTakYwQVZDSjdVdG10azZaMjhSejdl?= =?utf-8?B?dk9TUzE2VzRwekU0ZmVwd2dpNTB5cVFFMGZwa2gvUHZrZVZnUm8zUEhxa3ZS?= =?utf-8?B?Zk5RbFkwNVMwaE1Pb3hIc2h4WGt5R2xSbnVHbWhocW9rQjJiWFF6aFJoS0dq?= =?utf-8?B?dTRFQmR2bmxyWHVqSnpqeXgwMDdtMzFsK2FGMXNiVEtVb3RHTlZVSTdRUzND?= =?utf-8?B?L3c5VGE3aHFkcS9ZWnhIbEQ4WEJuZmpPZFpKS1UzU0l3UE1rNzA4UW0xVC9k?= =?utf-8?B?TU5uWWhqUlJFMC9MV3hab2JQRGxmSmJIWjkwVjVLR05Lekw3Vy9raURteEIv?= =?utf-8?B?TUpHWGVUT2pVcUErbHEwTlQ5RjhGS0MvRG1CaWwwOWxQOE9LOEJHQzdZM0ZM?= =?utf-8?B?WGY1UUEzUjhJNmF5Z2p3dUM2cFYyTTJBenZZREhBNWlvWUFlVGlPc2F5ck4y?= =?utf-8?B?Nlp5RjlUTGFVSU1COXBHMW5EaFZNZEZ3ZWNrMytYMkw3YWQrOEI0cnJGL1Ev?= =?utf-8?B?NzRPQkhmY3d2L2N3N2dtVkJWTkxTYy9HM25WbWxHTGRqU0xzMis3Y2k2SU5w?= =?utf-8?B?U2tCN0FRMzc5NXVIQWI0TzhKQkp2Z3pCMHFuQ2I5SDludjVkVUkxb0ZCQnVt?= =?utf-8?B?bHdTZXByZCsxMlhxWVVyd0Q0dTNiWnFibGRwYUl1U0p1VWR3ZlIwdmcrMTRP?= =?utf-8?B?aGd4cHFLY3Eyck9HLzdSeVdNOHhqb3B3VE5WV0NRZ2lkRGx1RzVpMEVNakZW?= =?utf-8?B?bmRUWlJkQ3FxTFhZL21yNVlaYkRFVGZOSWI0eUdKQUUwS3NQN0pOUWpmM2hU?= =?utf-8?B?MCtxZTBsdENmbllnU1IvNG1RWThOTkFXNkdtTEtZeFdwOUFmUk1kdUI5RVV2?= =?utf-8?B?bFk0Zz09?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27bb2f17-2e7f-45b1-aef5-08d8c2b1dd61 X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2021 10:54:05.9827 (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: Qlin0AK2FkdeYdSrcuT/ut8QrkidWkUj98qK2EeXAH+tXMWxWNnVLVUZDFp0mbeX X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB3901 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-doc@vger.kernel.org, Szabolcs Nagy , dri-devel@lists.freedesktop.org, Andrei Vagin , Hui Su , Michel Lespinasse , Jonathan Corbet , Mauro Carvalho Chehab , Daniel Jordan , kernel-team@android.com, Alexey Dobriyan , linux-media@vger.kernel.org, Kees Cook , jannh@google.com, linaro-mm-sig@lists.linaro.org, linux-fsdevel@vger.kernel.org, Bernd Edlinger , surenb@google.com, Alexey Gladkov , linux-kernel@vger.kernel.org, minchan@kernel.org, Yafang Shao , "Eric W. Biederman" , gregkh@linuxfoundation.org, hridya@google.com, Andrew Morton , linux-api@vger.kernel.org Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMjcuMDEuMjEgdW0gMTA6MDUgc2NocmllYiBNaWNoYWwgSG9ja286Cj4gW0NjIGxpbnV4LWFw aSBhcyB0aGlzIGlzIGEgbmV3IHVzZXIgaW50ZXJmYWNlXQo+Cj4gT24gVHVlIDI2LTAxLTIxIDIy OjUxOjI4LCBLYWxlc2ggU2luZ2ggd3JvdGU6Cj4+IEluIG9yZGVyIHRvIG1lYXN1cmUgaG93IG11 Y2ggbWVtb3J5IGEgcHJvY2VzcyBhY3R1YWxseSBjb25zdW1lcywgaXQgaXMKPj4gbmVjZXNzYXJ5 IHRvIGluY2x1ZGUgdGhlIERNQSBidWZmZXIgc2l6ZXMgZm9yIHRoYXQgcHJvY2VzcyBpbiB0aGUg bWVtb3J5Cj4+IGFjY291bnRpbmcuIFNpbmNlIHRoZSBoYW5kbGUgdG8gRE1BIGJ1ZmZlcnMgYXJl IHJhdyBGRHMsIGl0IGlzIGltcG9ydGFudAo+PiB0byBiZSBhYmxlIHRvIGlkZW50aWZ5IHdoaWNo IHByb2Nlc3NlcyBoYXZlIEZEIHJlZmVyZW5jZXMgdG8gYSBETUEgYnVmZmVyLgo+Pgo+PiBDdXJy ZW50bHksIERNQSBidWZmZXIgRkRzIGNhbiBiZSBhY2NvdW50ZWQgdXNpbmcgL3Byb2MvPHBpZD4v ZmQvKiBhbmQKPj4gL3Byb2MvPHBpZD4vZmRpbmZvIC0tIGJvdGggb2Ygd2hpY2ggYXJlIG9ubHkg cm9vdCByZWFkYWJsZSwgYXMgZm9sbG93czoKPj4gICAgMS4gRG8gYSByZWFkbGluayBvbiBlYWNo IEZELgo+PiAgICAyLiBJZiB0aGUgdGFyZ2V0IHBhdGggYmVnaW5zIHdpdGggIi9kbWFidWYiLCB0 aGVuIHRoZSBGRCBpcyBhIGRtYWJ1ZiBGRC4KPj4gICAgMy4gc3RhdCB0aGUgZmlsZSB0byBnZXQg dGhlIGRtYWJ1ZiBpbm9kZSBudW1iZXIuCj4+ICAgIDQuIFJlYWQvIHByb2MvPHBpZD4vZmRpbmZv LzxmZD4sIHRvIGdldCB0aGUgRE1BIGJ1ZmZlciBzaXplLgo+Pgo+PiBBbmRyb2lkIGNhcHR1cmVz IHBlci1wcm9jZXNzIHN5c3RlbSBtZW1vcnkgc3RhdGUgd2hlbiBjZXJ0YWluIGxvdyBtZW1vcnkK Pj4gZXZlbnRzIChlLmcgYSBmb3JlZ3JvdW5kIGFwcCBraWxsKSBvY2N1ciwgdG8gaWRlbnRpZnkg cG90ZW50aWFsIG1lbW9yeQo+PiBob2dnZXJzLiBUbyBpbmNsdWRlIGEgcHJvY2Vzc+KAmXMgZG1h YnVmIHVzYWdlIGFzIHBhcnQgb2YgaXRzIG1lbW9yeSBzdGF0ZSwKPj4gdGhlIGRhdGEgY29sbGVj dGlvbiBuZWVkcyB0byBiZSBmYXN0IGVub3VnaCB0byByZWZsZWN0IHRoZSBtZW1vcnkgc3RhdGUg YXQKPj4gdGhlIHRpbWUgb2Ygc3VjaCBldmVudHMuCj4+Cj4+IFNpbmNlIHJlYWRpbmcgL3Byb2Mv PHBpZD4vZmQvIGFuZCAvcHJvYy88cGlkPi9mZGluZm8vIHJlcXVpcmVzIHJvb3QKPj4gcHJpdmls ZWdlcywgdGhpcyBhcHByb2FjaCBpcyBub3Qgc3VpdGFibGUgZm9yIHByb2R1Y3Rpb24gYnVpbGRz LiBHcmFudGluZwo+PiByb290IHByaXZpbGVnZXMgZXZlbiB0byBhIHN5c3RlbSBwcm9jZXNzIGlu Y3JlYXNlcyB0aGUgYXR0YWNrIHN1cmZhY2UgYW5kCj4+IGlzIGhpZ2hseSB1bmRlc2lyYWJsZS4g QWRkaXRpb25hbGx5IHRoaXMgaXMgc2xvdyBhcyBpdCByZXF1aXJlcyBtYW55Cj4+IGNvbnRleHQg c3dpdGNoZXMgZm9yIHNlYXJjaGluZyBhbmQgZ2V0dGluZyB0aGUgZG1hLWJ1ZiBpbmZvLgo+Pgo+ PiBXaXRoIHRoZSBhZGRpdGlvbiBvZiBwZXItYnVmZmVyIGRtYWJ1ZiBzdGF0cyBpbiBzeXNmcyBb MV0sIHRoZSBETUEgYnVmZmVyCj4+IGRldGFpbHMgY2FuIGJlIHF1ZXJpZWQgdXNpbmcgdGhlaXIg dW5pcXVlIGlub2RlIG51bWJlcnMuCgpXaGlsZSB0aGlzIGxvb2tzIHRlY2huaWNhbGx5IGNsZWFu IEkgaGF2ZSB0byBhZ3JlZSB3aXRoIERhbmllbCB0aGF0IHRoaXMgCmFwcHJvYWNoIGRvZXNuJ3Qg c291bmRzIGxpa2UgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvLiBUaGUgZnVuZGFtZW50YWwgCnByb2Js ZW0gZ29lcyBkZWVwZXIgdGhhbiB3aGF0J3MgcHJvcG9zZWQgaGVyZS4KCkluIGdlbmVyYWwgcHJv Y2Vzc2VzIGFyZSBjdXJyZW50bHkgbm90IGhlbGQgYWNjb3VudGFibGUgZm9yIG1lbW9yeSB0aGV5 IApyZWZlcmVuY2UgdGhyb3VnaCB0aGVpciBmaWxlIGRlc2NyaXB0b3JzLiBETUEtYnVmIGlzIGp1 c3Qgb25lIHNwZWNpYWwgY2FzZS4KCkluIG90aGVyIHdvcmRzIHlvdSBjYW4gY3VycmVudGx5IGRv IHNvbWV0aGluZyBsaWtlIHRoaXMKCmZkID0gbWVtZmRfY3JlYXRlKCJ0ZXN0IiwgMCk7CndoaWxl ICgxKQogwqDCoMKgIHdyaXRlKGZkLCBidWYsIDEwMjQpOwoKYW5kIHRoZSBPT00ga2lsbGVyIHdp bGwgdGVybWluYXRlIHJhbmRvbSBwcm9jZXNzZXMsIGJ1dCBuZXZlciB0aGUgb25lIApob2xkaW5n IHRoZSBtZW1mZCByZWZlcmVuY2UuCgpJdCBldmVuIGJlY29tZXMgd29yc2Ugd2l0aCBHUFUgYW5k IGFjY2VsZXJhdGlvbiBkcml2ZXJzIHdoZXJlIGVhc2lseSBhbGwgCm9mIHRoZSBzeXN0ZW0gbWVt b3J5IGlzIGFsbG9jYXRlZCBmb3IgZm9yIGdhbWVzIG9yIHNjaWVudGlmaWMgCmFwcGxpY2F0aW9u cyB3aXRob3V0IGJlaW5nIGFibGUgdG8gc2VlIHRoYXQgaW4gcHJvYyBvciBzeXNmcy4KClNvbWUg eWVhcnMgYWdvIEkndmUgcHJvcG9zZWQgYSB3YXkgdG8gYXQgbGVhc3QgaW1wcm92ZSB0aGUgT09N IGtpbGxlciAKZGVjaXNpb24gd2hpY2ggcHJvY2VzcyB0byB0ZXJtaW5hdGUsIGJ1dCB0aGF0IG5l dmVyIHdlbnQgc29tZXRoaW5nLgoKUmVnYXJkcywKQ2hyaXN0aWFuLgoKPj4KPj4gVGhpcyBwYXRj aCBwcm9wb3NlcyBhZGRpbmcgYSAvcHJvYy88cGlkPi90YXNrLzx0aWQ+L2RtYWJ1Zl9mZHMgaW50 ZXJmYWNlLgo+Pgo+PiAvcHJvYy88cGlkPi90YXNrLzx0aWQ+L2RtYWJ1Zl9mZHMgY29udGFpbnMg YSBsaXN0IG9mIGlub2RlIG51bWJlcnMgZm9yCj4+IGV2ZXJ5IERNQSBidWZmZXIgRkQgdGhhdCB0 aGUgdGFzayBoYXMuIEVudHJpZXMgd2l0aCB0aGUgc2FtZSBpbm9kZQo+PiBudW1iZXIgY2FuIGFw cGVhciBtb3JlIHRoYW4gb25jZSwgaW5kaWNhdGluZyB0aGUgdG90YWwgRkQgcmVmZXJlbmNlcwo+ PiBmb3IgdGhlIGFzc29jaWF0ZWQgRE1BIGJ1ZmZlci4KPj4KPj4gSWYgYSB0aHJlYWQgc2hhcmVz IHRoZSBzYW1lIGZpbGVzIGFzIHRoZSBncm91cCBsZWFkZXIgdGhlbiBpdHMKPj4gZG1hYnVmX2Zk cyBmaWxlIHdpbGwgYmUgZW1wdHksIGFzIHRoZXNlIGRtYWJ1ZnMgYXJlIHJlcG9ydGVkIGJ5IHRo ZQo+PiBncm91cCBsZWFkZXIuCj4+Cj4+IFRoZSBpbnRlcmZhY2UgcmVxdWlyZXMgUFRSQUNFX01P REVfUkVBRF9GU0NSRUQgKHNhbWUgYXMgL3Byb2MvPHBpZD4vbWFwcykKPj4gYW5kIGFsbG93cyB0 aGUgZWZmaWNpZW50IGFjY291bnRpbmcgb2YgcGVyLXByb2Nlc3MgRE1BIGJ1ZmZlciB1c2FnZSB3 aXRob3V0Cj4+IHJlcXVpcmluZyByb290IHByaXZpbGVnZXMuIChTZWUgZGF0YSBiZWxvdykKPj4K Pj4gUGVyZm9ybWFuY2UgQ29tcGFyaXNvbjoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4K Pj4gVGhlIGZvbGxvd2luZyBkYXRhIGNvbXBhcmVzIHRoZSB0aW1lIHRvIGNhcHR1cmUgdGhlIHNp emVzIG9mIGFsbCBETUEKPj4gYnVmZmVycyByZWZlcmVuY2VkIGJ5IEZEcyBmb3IgYWxsIHByb2Nl c3NlcyBvbiBhbiBhcm02NCBhbmRyb2lkIGRldmljZS4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAgICAgICAgICAgICAgICAg ICAgIHwgIENvcmUgMCAoTGl0dGxlKSAgfCAgQ29yZSA3IChCaWcpIHwKPj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+RnJvbSA8cGlk Pi9mZGluZm8gIHwgICAgICAzMTggbXMgICAgICAgfCAgICAgMTQ1IG1zICAgIHwKPj4gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBJbm9k ZXMgZnJvbSAgICAgICAgfCAgICAgIDExNCBtcyAgICAgICB8ICAgICAgMjcgbXMgICAgfAo+PiBk bWFidWZfZmRzOyAgICAgICAgfCAgICAoMi44eCAgXikgICAgICB8ICAgKDUuNHggIF4pICAgfAo+ PiBkYXRhIGZyb20gc3lzZnMgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg fAo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4+Cj4+IEl0IGNhbiBiZSBpbmZlcnJlZCB0aGF0IGluIHRoZSB3b3JzdCBjYXNlIHRoZXJl IGlzIGEgMi44eCBzcGVlZHVwIGZvcgo+PiBkZXRlcm1pbmluZyBwZXItcHJvY2VzcyBETUEgYnVm ZmVyIEZEIHNpemVzLCB3aGVuIHVzaW5nIHRoZSBwcm9wb3NlZAo+PiBpbnRlcmZhY2VzLgo+Pgo+ PiBbMV0gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJs PWh0dHBzJTNBJTJGJTJGbG9yZS5rZXJuZWwub3JnJTJGZHJpLWRldmVsJTJGMjAyMTAxMTkyMjU3 MjMuMzg4ODgzLTEtaHJpZHlhJTQwZ29vZ2xlLmNvbSUyRiZhbXA7ZGF0YT0wNCU3QzAxJTdDY2hy aXN0aWFuLmtvZW5pZyU0MGFtZC5jb20lN0NmYWZhZWNiMTg2YTg0MDhjMzA3MjA4ZDhjMmEyYjI2 NCU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTExYTgyZDk5NGUxODNkJTdDMCU3QzAlN0M2Mzc0NzMzNTE0 Mjg0MTY0NzUlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pR SWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMTAwMCZhbXA7c2Rh dGE9TkloR0xFNnlzRU5LSVpQTUthcmkyM3BjemVnWWw1eE53YnowZ3pLOHNqNCUzRCZhbXA7cmVz ZXJ2ZWQ9MAo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBLYWxlc2ggU2luZ2ggPGthbGVzaHNpbmdoQGdv b2dsZS5jb20+Cj4+IC0tLQo+PiAgIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy5yc3Qg fCAgMzAgKysrKysrCj4+ICAgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyAgICAgICAgICB8ICAg NyArLQo+PiAgIGZzL3Byb2MvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+PiAg IGZzL3Byb2MvYmFzZS5jICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwo+PiAgIGZzL3Byb2Mv ZG1hX2J1ZnMuYyAgICAgICAgICAgICAgICAgfCAxNTkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPj4gICBmcy9wcm9jL2ludGVybmFsLmggICAgICAgICAgICAgICAgIHwgICAxICsKPj4g ICBpbmNsdWRlL2xpbnV4L2RtYS1idWYuaCAgICAgICAgICAgIHwgICA1ICsKPj4gICA3IGZpbGVz IGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+PiAgIGNyZWF0ZSBt b2RlIDEwMDY0NCBmcy9wcm9jL2RtYV9idWZzLmMKPj4KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50 YXRpb24vZmlsZXN5c3RlbXMvcHJvYy5yc3QgYi9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3By b2MucnN0Cj4+IGluZGV4IDJmYTY5ZjcxMGUyYS4uNzU3ZGQ0N2FiNjc5IDEwMDY0NAo+PiAtLS0g YS9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3Byb2MucnN0Cj4+ICsrKyBiL0RvY3VtZW50YXRp b24vZmlsZXN5c3RlbXMvcHJvYy5yc3QKPj4gQEAgLTQ3LDYgKzQ3LDcgQEAgZml4ZXMvdXBkYXRl IHBhcnQgMS4xICBTdGVmYW5pIFNlaWJvbGQgPHN0ZWZhbmlAc2VpYm9sZC5uZXQ+ICAgIEp1bmUg OSAyMDA5Cj4+ICAgICAzLjEwICAvcHJvYy88cGlkPi90aW1lcnNsYWNrX25zIC0gVGFzayB0aW1l cnNsYWNrIHZhbHVlCj4+ICAgICAzLjExCS9wcm9jLzxwaWQ+L3BhdGNoX3N0YXRlIC0gTGl2ZXBh dGNoIHBhdGNoIG9wZXJhdGlvbiBzdGF0ZQo+PiAgICAgMy4xMgkvcHJvYy88cGlkPi9hcmNoX3N0 YXR1cyAtIFRhc2sgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGluZm9ybWF0aW9uCj4+ICsgIDMuMTMJ L3Byb2MvPHBpZD4vdGFzay88dGlkPi9kbWFidWZfZmRzIC0gRE1BIGJ1ZmZlcnMgcmVmZXJlbmNl ZCBieSBhbiBGRAo+PiAgIAo+PiAgICAgNAlDb25maWd1cmluZyBwcm9jZnMKPj4gICAgIDQuMQlN b3VudCBvcHRpb25zCj4+IEBAIC0yMTMxLDYgKzIxMzIsMzUgQEAgQVZYNTEyX2VsYXBzZWRfbXMK Pj4gICAgIHRoZSB0YXNrIGlzIHVubGlrZWx5IGFuIEFWWDUxMiB1c2VyLCBidXQgZGVwZW5kcyBv biB0aGUgd29ya2xvYWQgYW5kIHRoZQo+PiAgICAgc2NoZWR1bGluZyBzY2VuYXJpbywgaXQgYWxz byBjb3VsZCBiZSBhIGZhbHNlIG5lZ2F0aXZlIG1lbnRpb25lZCBhYm92ZS4KPj4gICAKPj4gKzMu MTMgL3Byb2MvPHBpZD4vdGFzay88dGlkPi9kbWFidWZfZmRzIC0gRE1BIGJ1ZmZlcnMgcmVmZXJl bmNlZCBieSBhbiBGRAo+PiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArVGhpcyBmaWxlICBleHBvc2Vz IGEgbGlzdCBvZiB0aGUgaW5vZGUgbnVtYmVycyBmb3IgZXZlcnkgRE1BIGJ1ZmZlcgo+PiArRkQg dGhhdCB0aGUgdGFzayBoYXMuCj4+ICsKPj4gK1RoZSBzYW1lIGlub2RlIG51bWJlciBjYW4gYXBw ZWFyIG1vcmUgdGhhbiBvbmNlLCBpbmRpY2F0aW5nIHRoZSB0b3RhbAo+PiArRkQgcmVmZXJlbmNl cyBmb3IgdGhlIGFzc29jaWF0ZWQgRE1BIGJ1ZmZlci4KPj4gKwo+PiArVGhlIGlub2RlIG51bWJl ciBjYW4gYmUgdXNlZCB0byBsb29rdXAgdGhlIERNQSBidWZmZXIgaW5mb3JtYXRpb24gaW4KPj4g K3RoZSBzeXNmcyBpbnRlcmZhY2UgL3N5cy9rZXJuZWwvZG1hYnVmL2J1ZmZlcnMvPGlub2RlLW5v Pi8uCj4+ICsKPj4gK0V4YW1wbGUgT3V0cHV0Cj4+ICt+fn5+fn5+fn5+fn5+fgo+PiArJCBjYXQg L3Byb2MvNjEyL3Rhc2svNjEyL2RtYWJ1Zl9mZHMKPj4gKzMwOTcyIDMwOTczIDQ1Njc4IDQ5MzI2 Cj4+ICsKPj4gK1Blcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgZmlsZSBpcyBnb3Zlcm5lZCBieSBh IHB0cmFjZSBhY2Nlc3MgbW9kZQo+PiArUFRSQUNFX01PREVfUkVBRF9GU0NSRURTLgo+PiArCj4+ ICtUaHJlYWRzIGNhbiBoYXZlIGRpZmZlcmVudCBmaWxlcyB3aGVuIGNyZWF0ZWQgd2l0aG91dCBz cGVjaWZ5aW5nCj4+ICt0aGUgQ0xPTkVfRklMRVMgZmxhZy4gRm9yIHRoaXMgcmVhc29uIHRoZSBp bnRlcmZhY2UgaXMgcHJlc2VudGVkIGFzCj4+ICsvcHJvYy88cGlkPi90YXNrLzx0aWQ+L2RtYWJ1 Zl9mZHMgYW5kIG5vdCAvcHJvYy88cGlkPi9kbWFidWZfZmRzLgo+PiArVGhpcyBzaW1wbGlmaWVz IGtlcm5lbCBjb2RlIGFuZCBhZ2dyZWdhdGlvbiBjYW4gYmUgaGFuZGxlZCBpbgo+PiArdXNlcnNw YWNlLgo+PiArCj4+ICtJZiBhIHRocmVhZCBoYXMgdGhlIHNhbWUgZmlsZXMgYXMgaXRzIGdyb3Vw IGxlYWRlciwgdGhlbiBpdHMgZG1hYnVmX2Zkcwo+PiArZmlsZSB3aWxsIGJlIGVtcHR5IGFzIHRo ZXNlIGRtYWJ1ZnMgYXJlIGFscmVhZHkgcmVwb3J0ZWQgYnkgdGhlCj4+ICtncm91cCBsZWFkZXIu Cj4+ICsKPj4gICBDaGFwdGVyIDQ6IENvbmZpZ3VyaW5nIHByb2Nmcwo+PiAgID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Cj4+ICAgCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYv ZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+PiBpbmRleCA5YWQ2Mzk3YWFh OTcuLjA2NjBjMDZiZTRjNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYu Ywo+PiArKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCj4+IEBAIC0yOSw4ICsyOSw2IEBA Cj4+ICAgI2luY2x1ZGUgPHVhcGkvbGludXgvZG1hLWJ1Zi5oPgo+PiAgICNpbmNsdWRlIDx1YXBp L2xpbnV4L21hZ2ljLmg+Cj4+ICAgCj4+IC1zdGF0aWMgaW5saW5lIGludCBpc19kbWFfYnVmX2Zp bGUoc3RydWN0IGZpbGUgKik7Cj4+IC0KPj4gICBzdHJ1Y3QgZG1hX2J1Zl9saXN0IHsKPj4gICAJ c3RydWN0IGxpc3RfaGVhZCBoZWFkOwo+PiAgIAlzdHJ1Y3QgbXV0ZXggbG9jazsKPj4gQEAgLTQz NCwxMCArNDMyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgZG1hX2J1 Zl9mb3BzID0gewo+PiAgIAkuc2hvd19mZGluZm8JPSBkbWFfYnVmX3Nob3dfZmRpbmZvLAo+PiAg IH07Cj4+ICAgCj4+IC0vKgo+PiAtICogaXNfZG1hX2J1Zl9maWxlIC0gQ2hlY2sgaWYgc3RydWN0 IGZpbGUqIGlzIGFzc29jaWF0ZWQgd2l0aCBkbWFfYnVmCj4+IC0gKi8KPj4gLXN0YXRpYyBpbmxp bmUgaW50IGlzX2RtYV9idWZfZmlsZShzdHJ1Y3QgZmlsZSAqZmlsZSkKPj4gK2ludCBpc19kbWFf YnVmX2ZpbGUoc3RydWN0IGZpbGUgKmZpbGUpCj4+ICAgewo+PiAgIAlyZXR1cm4gZmlsZS0+Zl9v cCA9PSAmZG1hX2J1Zl9mb3BzOwo+PiAgIH0KPj4gZGlmZiAtLWdpdCBhL2ZzL3Byb2MvTWFrZWZp bGUgYi9mcy9wcm9jL01ha2VmaWxlCj4+IGluZGV4IGJkMDg2MTZlZDhiYS4uOTFhNjdmNDNkZGY0 IDEwMDY0NAo+PiAtLS0gYS9mcy9wcm9jL01ha2VmaWxlCj4+ICsrKyBiL2ZzL3Byb2MvTWFrZWZp bGUKPj4gQEAgLTE2LDYgKzE2LDcgQEAgcHJvYy15CSs9IGNtZGxpbmUubwo+PiAgIHByb2MteQkr PSBjb25zb2xlcy5vCj4+ICAgcHJvYy15CSs9IGNwdWluZm8ubwo+PiAgIHByb2MteQkrPSBkZXZp Y2VzLm8KPj4gK3Byb2MteQkrPSBkbWFfYnVmcy5vCj4+ICAgcHJvYy15CSs9IGludGVycnVwdHMu bwo+PiAgIHByb2MteQkrPSBsb2FkYXZnLm8KPj4gICBwcm9jLXkJKz0gbWVtaW5mby5vCj4+IGRp ZmYgLS1naXQgYS9mcy9wcm9jL2Jhc2UuYyBiL2ZzL3Byb2MvYmFzZS5jCj4+IGluZGV4IGIzNDIy Y2RhMmE5MS4uYWYxNWE2MGI5ODMxIDEwMDY0NAo+PiAtLS0gYS9mcy9wcm9jL2Jhc2UuYwo+PiAr KysgYi9mcy9wcm9jL2Jhc2UuYwo+PiBAQCAtMzU5OCw2ICszNTk4LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBwaWRfZW50cnkgdGlkX2Jhc2Vfc3R1ZmZbXSA9IHsKPj4gICAjaWZkZWYgQ09ORklH X1NFQ0NPTVBfQ0FDSEVfREVCVUcKPj4gICAJT05FKCJzZWNjb21wX2NhY2hlIiwgU19JUlVTUiwg cHJvY19waWRfc2VjY29tcF9jYWNoZSksCj4+ICAgI2VuZGlmCj4+ICsJUkVHKCJkbWFidWZfZmRz IiwgMDQ0NCwgcHJvY190aWRfZG1hYnVmX2Zkc19vcGVyYXRpb25zKSwKPj4gICB9Owo+PiAgIAo+ PiAgIHN0YXRpYyBpbnQgcHJvY190aWRfYmFzZV9yZWFkZGlyKHN0cnVjdCBmaWxlICpmaWxlLCBz dHJ1Y3QgZGlyX2NvbnRleHQgKmN0eCkKPj4gZGlmZiAtLWdpdCBhL2ZzL3Byb2MvZG1hX2J1ZnMu YyBiL2ZzL3Byb2MvZG1hX2J1ZnMuYwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAw MDAwMDAwMDAwMDAuLjQ2ZWE5Y2Y5NjhlZAo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2ZzL3By b2MvZG1hX2J1ZnMuYwo+PiBAQCAtMCwwICsxLDE1OSBAQAo+PiArLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEdQTC0yLjAKPj4gKy8qCj4+ICsgKiBQZXItcHJvY2VzcyBETUEtQlVGIFN0YXRz Cj4+ICsgKgo+PiArICogQ29weXJpZ2h0IChDKSAyMDIxIEdvb2dsZSBMTEMuCj4+ICsgKi8KPj4g Kwo+PiArI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9mZHRh YmxlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcHRyYWNlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgv c2VxX2ZpbGUuaD4KPj4gKwo+PiArI2luY2x1ZGUgImludGVybmFsLmgiCj4+ICsKPj4gK3N0cnVj dCBkbWFidWZfZmRzX3ByaXZhdGUgewo+PiArCXN0cnVjdCBpbm9kZSAqaW5vZGU7Cj4+ICsJc3Ry dWN0IHRhc2tfc3RydWN0ICp0YXNrOwo+PiArCXN0cnVjdCBmaWxlICpkbWFidWZfZmlsZTsKPj4g K307Cj4+ICsKPj4gK3N0YXRpYyBsb2ZmX3QgKm5leHRfZG1hYnVmKHN0cnVjdCBkbWFidWZfZmRz X3ByaXZhdGUgKnByaXYsCj4+ICsJCWxvZmZfdCAqcG9zKQo+PiArewo+PiArCXN0cnVjdCBmZHRh YmxlICpmZHQ7Cj4+ICsJc3RydWN0IGZpbGUgKmZpbGU7Cj4+ICsKPj4gKwlyY3VfcmVhZF9sb2Nr KCk7Cj4+ICsJZmR0ID0gZmlsZXNfZmR0YWJsZShwcml2LT50YXNrLT5maWxlcyk7Cj4+ICsJZm9y ICg7ICpwb3MgPCBmZHQtPm1heF9mZHM7ICsrKnBvcykgewo+PiArCQlmaWxlID0gZmlsZXNfbG9v a3VwX2ZkX3JjdShwcml2LT50YXNrLT5maWxlcywgKHVuc2lnbmVkIGludCkgKnBvcyk7Cj4+ICsJ CWlmIChmaWxlICYmIGlzX2RtYV9idWZfZmlsZShmaWxlKSAmJiBnZXRfZmlsZV9yY3UoZmlsZSkp IHsKPj4gKwkJCXByaXYtPmRtYWJ1Zl9maWxlID0gZmlsZTsKPj4gKwkJCWJyZWFrOwo+PiArCQl9 Cj4+ICsJfQo+PiArCWlmICgqcG9zID49IGZkdC0+bWF4X2ZkcykKPj4gKwkJcG9zID0gTlVMTDsK Pj4gKwlyY3VfcmVhZF91bmxvY2soKTsKPj4gKwo+PiArCXJldHVybiBwb3M7Cj4+ICt9Cj4+ICsK Pj4gK3N0YXRpYyB2b2lkICpkbWFidWZfZmRzX3NlcV9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKnMs IGxvZmZfdCAqcG9zKQo+PiArewo+PiArCXN0cnVjdCBkbWFidWZfZmRzX3ByaXZhdGUgKnByaXYg PSBzLT5wcml2YXRlOwo+PiArCXN0cnVjdCBmaWxlc19zdHJ1Y3QgKmdyb3VwX2xlYWRlcl9maWxl czsKPj4gKwo+PiArCXByaXYtPnRhc2sgPSBnZXRfcHJvY190YXNrKHByaXYtPmlub2RlKTsKPj4g Kwo+PiArCWlmICghcHJpdi0+dGFzaykKPj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVTUkNIKTsKPj4g Kwo+PiArCS8qIEhvbGQgdGFzayBsb2NrIGZvciBkdXJhdGlvbiB0aGF0IGZpbGVzIG5lZWQgdG8g YmUgc3RhYmxlICovCj4+ICsJdGFza19sb2NrKHByaXYtPnRhc2spOwo+PiArCj4+ICsJLyoKPj4g KwkgKiBJZiB0aGlzIHRhc2sgaXMgbm90IHRoZSBncm91cCBsZWFkZXIgYnV0IHNoYXJlcyB0aGUg c2FtZSBmaWxlcywgbGVhdmUgZmlsZSBlbXB0eS4KPj4gKwkgKiBUaGVzZSBkbWFidWZzIGFyZSBh bHJlYWR5IHJlcG9ydGVkIGluIHRoZSBncm91cCBsZWFkZXIncyBkbWFidWZfZmRzLgo+PiArCSAq Lwo+PiArCWdyb3VwX2xlYWRlcl9maWxlcyA9IHByaXYtPnRhc2stPmdyb3VwX2xlYWRlci0+Zmls ZXM7Cj4+ICsJaWYgKHByaXYtPnRhc2sgIT0gcHJpdi0+dGFzay0+Z3JvdXBfbGVhZGVyICYmIHBy aXYtPnRhc2stPmZpbGVzID09IGdyb3VwX2xlYWRlcl9maWxlcykgewo+PiArCQl0YXNrX3VubG9j ayhwcml2LT50YXNrKTsKPj4gKwkJcHV0X3Rhc2tfc3RydWN0KHByaXYtPnRhc2spOwo+PiArCQlw cml2LT50YXNrID0gTlVMTDsKPj4gKwkJcmV0dXJuIE5VTEw7Cj4+ICsJfQo+PiArCj4+ICsJcmV0 dXJuIG5leHRfZG1hYnVmKHByaXYsIHBvcyk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkICpk bWFidWZfZmRzX3NlcV9uZXh0KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdiwgbG9mZl90ICpw b3MpCj4+ICt7Cj4+ICsJKysqcG9zOwo+PiArCXJldHVybiBuZXh0X2RtYWJ1ZihzLT5wcml2YXRl LCBwb3MpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBkbWFidWZfZmRzX3NlcV9zdG9wKHN0 cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKPj4gK3sKPj4gKwlzdHJ1Y3QgZG1hYnVmX2Zkc19w cml2YXRlICpwcml2ID0gcy0+cHJpdmF0ZTsKPj4gKwo+PiArCWlmIChwcml2LT50YXNrKSB7Cj4+ ICsJCXRhc2tfdW5sb2NrKHByaXYtPnRhc2spOwo+PiArCQlwdXRfdGFza19zdHJ1Y3QocHJpdi0+ dGFzayk7Cj4+ICsKPj4gKwl9Cj4+ICsJaWYgKHByaXYtPmRtYWJ1Zl9maWxlKQo+PiArCQlmcHV0 KHByaXYtPmRtYWJ1Zl9maWxlKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBkbWFidWZfZmRz X3NlcV9zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqdikKPj4gK3sKPj4gKwlzdHJ1Y3Qg ZG1hYnVmX2Zkc19wcml2YXRlICpwcml2ID0gcy0+cHJpdmF0ZTsKPj4gKwlzdHJ1Y3QgZmlsZSAq ZmlsZSA9IHByaXYtPmRtYWJ1Zl9maWxlOwo+PiArCXN0cnVjdCBkbWFfYnVmICpkbWFidWYgPSBm aWxlLT5wcml2YXRlX2RhdGE7Cj4+ICsKPj4gKwlpZiAoIWRtYWJ1ZikKPj4gKwkJcmV0dXJuIC1F U1JDSDsKPj4gKwo+PiArCXNlcV9wcmludGYocywgIiU4bHUgIiwgZmlsZV9pbm9kZShmaWxlKS0+ aV9pbm8pOwo+PiArCj4+ICsJZnB1dChwcml2LT5kbWFidWZfZmlsZSk7Cj4+ICsJcHJpdi0+ZG1h YnVmX2ZpbGUgPSBOVUxMOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRp YyBjb25zdCBzdHJ1Y3Qgc2VxX29wZXJhdGlvbnMgcHJvY190aWRfZG1hYnVmX2Zkc19zZXFfb3Bz ID0gewo+PiArCS5zdGFydCA9IGRtYWJ1Zl9mZHNfc2VxX3N0YXJ0LAo+PiArCS5uZXh0ICA9IGRt YWJ1Zl9mZHNfc2VxX25leHQsCj4+ICsJLnN0b3AgID0gZG1hYnVmX2Zkc19zZXFfc3RvcCwKPj4g Kwkuc2hvdyAgPSBkbWFidWZfZmRzX3NlcV9zaG93Cj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgaW50 IHByb2NfZG1hYnVmX2Zkc19vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpm aWxlLAo+PiArCQkgICAgIGNvbnN0IHN0cnVjdCBzZXFfb3BlcmF0aW9ucyAqb3BzKQo+PiArewo+ PiArCXN0cnVjdCBkbWFidWZfZmRzX3ByaXZhdGUgKnByaXY7Cj4+ICsJc3RydWN0IHRhc2tfc3Ry dWN0ICp0YXNrOwo+PiArCWJvb2wgYWxsb3dlZCA9IGZhbHNlOwo+PiArCj4+ICsJdGFzayA9IGdl dF9wcm9jX3Rhc2soaW5vZGUpOwo+PiArCWlmICghdGFzaykKPj4gKwkJcmV0dXJuIC1FU1JDSDsK Pj4gKwo+PiArCWFsbG93ZWQgPSBwdHJhY2VfbWF5X2FjY2Vzcyh0YXNrLCBQVFJBQ0VfTU9ERV9S RUFEX0ZTQ1JFRFMpOwo+PiArCXB1dF90YXNrX3N0cnVjdCh0YXNrKTsKPj4gKwo+PiArCWlmICgh YWxsb3dlZCkKPj4gKwkJcmV0dXJuIC1FQUNDRVM7Cj4+ICsKPj4gKwlwcml2ID0gX19zZXFfb3Bl bl9wcml2YXRlKGZpbGUsIG9wcywgc2l6ZW9mKCpwcml2KSk7Cj4+ICsJaWYgKCFwcml2KQo+PiAr CQlyZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArCXByaXYtPmlub2RlID0gaW5vZGU7Cj4+ICsJcHJp di0+dGFzayA9IE5VTEw7Cj4+ICsJcHJpdi0+ZG1hYnVmX2ZpbGUgPSBOVUxMOwo+PiArCj4+ICsJ cmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgcHJvY19kbWFidWZfZmRzX3JlbGVh c2Uoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbGUpCj4+ICt7Cj4+ICsJcmV0 dXJuIHNlcV9yZWxlYXNlX3ByaXZhdGUoaW5vZGUsIGZpbGUpOwo+PiArfQo+PiArCj4+ICtzdGF0 aWMgaW50IHRpZF9kbWFidWZfZmRzX29wZW4oc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZp bGUgKmZpbGUpCj4+ICt7Cj4+ICsJcmV0dXJuIHByb2NfZG1hYnVmX2Zkc19vcGVuKGlub2RlLCBm aWxlLAo+PiArCQkJJnByb2NfdGlkX2RtYWJ1Zl9mZHNfc2VxX29wcyk7Cj4+ICt9Cj4+ICsKPj4g K2NvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY190aWRfZG1hYnVmX2Zkc19vcGVyYXRp b25zID0gewo+PiArCS5vcGVuCQk9IHRpZF9kbWFidWZfZmRzX29wZW4sCj4+ICsJLnJlYWQJCT0g c2VxX3JlYWQsCj4+ICsJLmxsc2VlawkJPSBzZXFfbHNlZWssCj4+ICsJLnJlbGVhc2UJPSBwcm9j X2RtYWJ1Zl9mZHNfcmVsZWFzZSwKPj4gK307Cj4+ICsKPj4gZGlmZiAtLWdpdCBhL2ZzL3Byb2Mv aW50ZXJuYWwuaCBiL2ZzL3Byb2MvaW50ZXJuYWwuaAo+PiBpbmRleCBmNjBiMzc5ZGNkYzcuLjRj YTc0MjIwZGI5YyAxMDA2NDQKPj4gLS0tIGEvZnMvcHJvYy9pbnRlcm5hbC5oCj4+ICsrKyBiL2Zz L3Byb2MvaW50ZXJuYWwuaAo+PiBAQCAtMzAzLDYgKzMwMyw3IEBAIGV4dGVybiBjb25zdCBzdHJ1 Y3QgZmlsZV9vcGVyYXRpb25zIHByb2NfcGlkX3NtYXBzX29wZXJhdGlvbnM7Cj4+ICAgZXh0ZXJu IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY19waWRfc21hcHNfcm9sbHVwX29wZXJh dGlvbnM7Cj4+ICAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcHJvY19jbGVh cl9yZWZzX29wZXJhdGlvbnM7Cj4+ICAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgcHJvY19wYWdlbWFwX29wZXJhdGlvbnM7Cj4+ICtleHRlcm4gY29uc3Qgc3RydWN0IGZpbGVf b3BlcmF0aW9ucyBwcm9jX3RpZF9kbWFidWZfZmRzX29wZXJhdGlvbnM7Cj4+ICAgCj4+ICAgZXh0 ZXJuIHVuc2lnbmVkIGxvbmcgdGFza192c2l6ZShzdHJ1Y3QgbW1fc3RydWN0ICopOwo+PiAgIGV4 dGVybiB1bnNpZ25lZCBsb25nIHRhc2tfc3RhdG0oc3RydWN0IG1tX3N0cnVjdCAqLAo+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYu aAo+PiBpbmRleCBjZjcyNjk5Y2IyYmMuLjA4N2UxMWY3ZjE5MyAxMDA2NDQKPj4gLS0tIGEvaW5j bHVkZS9saW51eC9kbWEtYnVmLmgKPj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPj4g QEAgLTI3LDYgKzI3LDExIEBAIHN0cnVjdCBkZXZpY2U7Cj4+ICAgc3RydWN0IGRtYV9idWY7Cj4+ ICAgc3RydWN0IGRtYV9idWZfYXR0YWNobWVudDsKPj4gICAKPj4gKy8qKgo+PiArICogQ2hlY2sg aWYgc3RydWN0IGZpbGUqIGlzIGFzc29jaWF0ZWQgd2l0aCBkbWFfYnVmLgo+PiArICovCj4+ICtp bnQgaXNfZG1hX2J1Zl9maWxlKHN0cnVjdCBmaWxlICpmaWxlKTsKPj4gKwo+PiAgIC8qKgo+PiAg ICAqIHN0cnVjdCBkbWFfYnVmX29wcyAtIG9wZXJhdGlvbnMgcG9zc2libGUgb24gc3RydWN0IGRt YV9idWYKPj4gICAgKiBAdm1hcDogW29wdGlvbmFsXSBjcmVhdGVzIGEgdmlydHVhbCBtYXBwaW5n IGZvciB0aGUgYnVmZmVyIGludG8ga2VybmVsCj4+IC0tIAo+PiAyLjMwLjAuMjgwLmdhM2NlMjc5 MTJmLWdvb2cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=