From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BAF00EB64D9 for ; Tue, 27 Jun 2023 08:48:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=lTBMuzmUjJhVVVHzb8GBCcvtniQPJSkqc5IVUiR/Aj0=; b=RejP4hhNSo8pHNt0f9szdjVLIx edY66m+EZX7DJxSjwJEOVDvuvIdO9goIXwhHeflPkIYAB0RzxXvUmpt50wLCEPYuxyx/sHkDEaoKE zfG1utPhTis3CYWzEUSNQH1dKfPConrHRDVEp79Mgm2dPlFYzjuL+YIWcqRp7CylZiD8oYyrPJIYM kmrCqmQj6yYNYxH/bqyE2Ls7OH6wv2xipTKktwsOeeUBOQxb+l7sZlFNFFDlSe9emQRAXV/bKdrgH 5N9tOpm9HAtF4aX6CA5/cveqE8e2yeoHv1r/VA/vGLOZZDaVAuEBrukTF3v9Axqu3VC5ZxXubufeM l5VJAz2A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qE4N4-00Cbfq-2y; Tue, 27 Jun 2023 08:48:23 +0000 Received: from mail-bn7nam10on20616.outbound.protection.outlook.com ([2a01:111:f400:7e8a::616] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qE4N0-00CbfA-2E; Tue, 27 Jun 2023 08:48:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=U+587KSQ4qr1OU5Mm1VlQi3RPs/muqfYyH4JNPD20HELIDI1A9LMM+ck8jJ50ysJAbEETgcQqt4k7A4mjKrYThLQMT/c/9/pBr5PTmXIU2JS8ZoxfvyLAH6rOvsBugw9lH0qE/yT8ju9ggPt9C0RYT3SdM/mTizhaKSLVAPxHg74F9XrUb6OGpzJQPTeiLBbZg1YoDJhxQHjW21wcc1HhFDiBl5LTpA7KRf/eJiDDcXn6DcryzDhWkX1RQ9mVoEUqze802GD6GreER8ANmmMGkrl/HU3+CnUmskqRDIn/2vNU2yYjBFBjVqoLCVlYKtlF9BWtz1+xkYdr1QyS1X3KA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZmzM2lgvd4aD6PrEewGvIeQpsCrxd1nd7nUenOJ2SoE=; b=NoBnhpbzySvuJnLkFCmGSwohyTdOA7TC24GhH/yaaBPZha39gKKO/t+CCoXw83/1V+a/OMnsizJDwW1JVFaHuRZ71V0/rLayQQIeYlIAvCCJK0NhzYgB0/F+pKWpqeYf/sEIklLU/K/Jn6cO+MRMY9DpP8+A5gANgyd0/BZoRznadixqZcu1Dv7J2XYtSprvqQACVrPKvzAtlrfgrEUMM44NMzb01lck9Gu5oH+6/r57SrKCnMCZHjJRauAQlRUJwopMxAwqjG5HqvXM8UXmS/fpAp3ko0VsGxmZyFohcU6izgeu4yZYgjBPmuYs5JukNUJtgKeu+ik0PcvJUDex3g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=synaptics.com; dmarc=pass action=none header.from=synaptics.com; dkim=pass header.d=synaptics.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Synaptics.onmicrosoft.com; s=selector2-Synaptics-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZmzM2lgvd4aD6PrEewGvIeQpsCrxd1nd7nUenOJ2SoE=; b=i8BpMiioWaLIl0HYSA39RyxT6MaX+89Z7IoIAF3GCN7o3XJr1x0kr32TaSKoH/NuCpAE8NmhJ7RtqdaSk5pASZBFcboFZyUCyIqo+F88CO/z9zIwzcJSB5QPWy1HFQhjwQCPsVeZHVbnB1r6hPG66cvtVPtT4BBPmmFq4hD9flE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=synaptics.com; Received: from DM6PR03MB5196.namprd03.prod.outlook.com (2603:10b6:5:24a::19) by SJ2PR03MB7111.namprd03.prod.outlook.com (2603:10b6:a03:4f4::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Tue, 27 Jun 2023 08:48:09 +0000 Received: from DM6PR03MB5196.namprd03.prod.outlook.com ([fe80::6882:b9c1:2b2d:998d]) by DM6PR03MB5196.namprd03.prod.outlook.com ([fe80::6882:b9c1:2b2d:998d%5]) with mapi id 15.20.6521.023; Tue, 27 Jun 2023 08:48:08 +0000 Message-ID: <3b22fda9-4a0e-2c03-2f12-19e5e3239235@synaptics.com> Date: Tue, 27 Jun 2023 16:47:44 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.12.0 Subject: Re: [PATCH v3 10/11] media: v4l2: Add DELETE_BUF ioctl Content-Language: en-GB To: Benjamin Gaignard Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, p.zabel@pengutronix.de, ming.qian@nxp.com, hverkuil-cisco@xs4all.nl, gregkh@linuxfoundation.org, ezequiel@vanguardiasur.com.ar, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-arm-msm@vger.kernel.org, linux-rockchip@lists.infradead.org, nicolas.dufresne@collabora.com, linux-staging@lists.linux.dev, kernel@collabora.com, mchehab@kernel.org, tfiga@chromium.org, m.szyprowski@samsung.com References: <20230622131349.144160-1-benjamin.gaignard@collabora.com> <20230622131349.144160-11-benjamin.gaignard@collabora.com> <80a03c29-6f3d-43f1-755c-10f3ae2c2756@synaptics.com> <42a45bad-09c7-ffb6-49cb-29ec0826599d@collabora.com> From: Hsia-Jun Li In-Reply-To: <42a45bad-09c7-ffb6-49cb-29ec0826599d@collabora.com> X-ClientProxiedBy: BY5PR13CA0005.namprd13.prod.outlook.com (2603:10b6:a03:180::18) To DM6PR03MB5196.namprd03.prod.outlook.com (2603:10b6:5:24a::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR03MB5196:EE_|SJ2PR03MB7111:EE_ X-MS-Office365-Filtering-Correlation-Id: 2108a130-5418-4b49-619c-08db76eb3b30 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cormfmfg78i2mzOUxHOn4bWT8JtYLUUB0tpyPCdmCMh5qSI51TK4i+D/+A3USN5xxcs3p3W2M6edaXFzkODEB5Yr+qGUwCaQHvWJLqnRyLMIkzSOPf46GvyWuCSjXn1DeKyAjt0UvgdCnfr/oX067pAb96Y2dynObWTaXjUDXYjI9K4CZ2FEE98pNnN3vuZCd+ab/mOwioa7gLzzEVHcQCdHSt/JIRiou5Z5XaTGejVM6kgoU9NxMjYAc5+yRBZ5EChZMgbenSr99twskZuMAqgLGlTn/yHBqdKezCxVB9tKAHSvjtDIzj08A3Y2DruNXKDTCa7QMNXeTkGWAKweaxUe/sHClMXgz/LFGF6BEz8Bl928hzUCoZU/hfVbLHCMIKrzNqanPjuVKYeuxYsMZgOI903NjPo1I0A83TSCi92UZQ2o0SwrPlmp5Gu4DaPVgu77qkblfzuzQRyOWMyHXNeRq0aP1UsMoFwVXWsnYeOyiOdC17py52rWbPbTiJUS03PCqg4h5KPDe0lWfud4KMObhh0taxIjIODQQGzkh+3w/H98DdiJkRJ7ocIJDMOBBUwXWTmsfmCekFaNEPAp6b5Soa/Wm+/gE1L1wyTZouEeuGABk4ky0cX0ar1Umuyf+3wu2uPwwlPBp8nPZ9OyexM+pX4XyM0/QZ5KwJ5uQFC40wkaSmQBAyxXF3qgvOT1 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR03MB5196.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(376002)(136003)(346002)(366004)(39860400002)(451199021)(6506007)(36756003)(66574015)(6486002)(478600001)(52116002)(2616005)(6666004)(83380400001)(2906002)(53546011)(26005)(6512007)(186003)(30864003)(5660300002)(316002)(86362001)(7416002)(66476007)(38100700002)(38350700002)(66946007)(41300700001)(8936002)(4326008)(6916009)(8676002)(66556008)(31696002)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VFFyQkd0RkJCZ1lHVTBlWml2WWtFVitvNzl3WDByaWNHdDhBVGtXd1lZUFJZ?= =?utf-8?B?OS8zMDQ5Y1ZZMFhvMnhYRXppUWEwb3REblRyWk9PdEl0MVFMZFVua0wxRU8x?= =?utf-8?B?SEhXK3dGQW5hd1pmV0RZV05lNE1uaUxlamcwUCtoK091aVp4QTdBSU5KN0pp?= =?utf-8?B?VTN4endtSFBaTUhzRXV6RnRQSE1Ja21YOHEyKzNRa0tENWdoV2V0UjNuejZq?= =?utf-8?B?Wnk2V2w1UnE0SFJicG1DelUrUHdjZVd2RG9vbjlrVXB2R2dTTXJUcXR6Q09B?= =?utf-8?B?b0RTN01XbVZWZHFocStSdEdjRkhzWjVOZ09HbVdpaFZJQmFacDRYS3NBL3ZO?= =?utf-8?B?NGwrZ1lReW5vb2UrM2UyTnhBa2tQQmxBMU12OC9DTzJjbHpweW5OUG1EVFhJ?= =?utf-8?B?Ri9XUWZ1MDN4NEE4N0VHWjhMbnVuTEFHdG9xYUFDMktIQ2RRQlVtNGVRVUV5?= =?utf-8?B?S3ZJTnJuWFF1ZXd5MWI1QnhZSkNrTGhsR3I4cEMzTDAyZHM5K21OU2djdngz?= =?utf-8?B?UHFGMUx5VFNJNVJPZWFtblovVExja1BTZGl6dm9JOWZ6cGpKOTRyYmRPL3Zu?= =?utf-8?B?Rk1jWnRjNjFMY25RTlplT1VaUWgzUFc2dDdjY2E4dnF3eldRanp1MG8ydDJO?= =?utf-8?B?WkJDdk9rQmFXN0wzL1hmT1A1TFVmallOOHUrM2tBd3RzbG9FVHc1VUF2YzNq?= =?utf-8?B?bS9Nc29HUyt3WElvRUJ4cTQ1TTFQQXdQS2NzTnVFMzNjaVVTRlFnWm5pZWF3?= =?utf-8?B?QVNUMTVCTEZ0Sm1xdTNJc1owZTlSRDNPYjVxdkhQU0tJRHcvMWxKekxKcVho?= =?utf-8?B?VERZMEVqc1lWc3FXYjVWVHorbVBPbnpFY1FwNkhoUzRRMHNPTXBJYzM3N3Bt?= =?utf-8?B?UHZVVE9EOXN4MG13aEc5MDhwV3FNTlY0SnI5bXdCbjVZV2krRUd3dUtlbGxm?= =?utf-8?B?cGd6QkVnOXVWMTFjbUs3YXYxc1hiR1ArRmszSVdQY3kxdTErQjc2OUVEakRz?= =?utf-8?B?TVMwZ1hyd1FPM2o3dFpCYlZIT2RBSkZqb2hLcjFEVnZteVdYdVo5YWFjc1hi?= =?utf-8?B?Mk1zYTEvcmZKcWY4K2gzZDVnVWRmZ2tFMUViOTZLRlNhQTNQYzVleW9lOXpD?= =?utf-8?B?Q1pDcVZUZnFsaUtRZjZvOEw5UXo1T2FRck9zSk5WTWdoZUk5ZlFVQXZ6bFlH?= =?utf-8?B?ZVk1dWhxbUF5T0laTzAzTW9iNlE3NU9EU1hTMmhVYmQ0eVhTWGVGTU1DV0Ru?= =?utf-8?B?SEZLTEZqc21acXRWQldlcUNXT1JiWXo1S0FBOEpJdEdqa1BNTURKZnVYS2dp?= =?utf-8?B?K3hwV2hacUtEOU85Y0dTSkxaa0VXRDBrWVlGVnlRRG9xZE96emdyZWVUeDRE?= =?utf-8?B?L0ozSU5JbVRvZjk0UlFzTnVPQlNYSzliaVNzdkJidTNKM2NOT2hTQ0E3d3Vu?= =?utf-8?B?SmFiYzFBZnI1dldSdE9aalo2M3NkaSszUllZcVEvaTErZWc3WmxtUGw5bWpP?= =?utf-8?B?MGt5RGNSbElOMjRyRUYrdzBNQUF3MTYyYVFhUTdzU1lxNW0ybVRFeStCVmVo?= =?utf-8?B?L0tmM1Jxd0NRcUZ1dkYyQW1acGd6OXBWWTZ2dGpycGovYVBESTY0YUlMY09y?= =?utf-8?B?czVVZHBMdEcyUVJ1QUpyTXB1M2NiZXdXTXRuTGZXbXhvNitvblhLTlpEdGhS?= =?utf-8?B?Yjcwa0VVUzVNTTF6ckR6dm52N1BnSnJkQzFWeE1hWC9VSWppS0EyNDdCM2E0?= =?utf-8?B?UlJrbTV6NDFDV3VZS2FRamdqZ3VqcFk0VWs0b3d2NEpleWdLc1VNWFJLLzhS?= =?utf-8?B?RmFjbHZ1V3BNRlBPZ2xram5ZMG4vSll0b25UZk5JV3hrVG1ZeXdpRGt1OGI2?= =?utf-8?B?MTJvTldBVEx5VSs0OHBSM1VOSmJSZUhUN3g0ekoxMThxeXN0elNCR0kydnNC?= =?utf-8?B?SW1ua2swOTJsaVNtR0hkY2FBekJhM0hBblg1TkQ3M0lFTnBhQ1Fwak1WMEUz?= =?utf-8?B?Tlo0Nk0rMUJ1SC9aTzlHelZEMnNsTXZ4Y1JEZjlSTFVlUm4yZUdKT3kyNHpu?= =?utf-8?B?UW1pUmY3TWFGU0xwL1hDeDNkdGlJZ2NUV0dzY2c5ZUdwQUdKZWF0Snlqb09q?= =?utf-8?Q?mhDQDK1ewp7SmJupPLbiVZYA2?= X-OriginatorOrg: synaptics.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2108a130-5418-4b49-619c-08db76eb3b30 X-MS-Exchange-CrossTenant-AuthSource: DM6PR03MB5196.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2023 08:48:08.6684 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 335d1fbc-2124-4173-9863-17e7051a2a0e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lUfq7ERZuGy3ETDi5dc93pHsMZEs3q7P/8IWvUNymh0WJqyZYrOwcnJ0UU2gCvfG6axrWEeiUHUSXSXsOECgvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR03MB7111 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230627_014818_803423_A475AC54 X-CRM114-Status: GOOD ( 20.90 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org Ck9uIDYvMjcvMjMgMTY6NDMsIEJlbmphbWluIEdhaWduYXJkIHdyb3RlOgo+IENBVVRJT046IEVt YWlsIG9yaWdpbmF0ZWQgZXh0ZXJuYWxseSwgZG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gCj4g YXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNvZ25pemUgdGhlIHNlbmRlciBhbmQga25vdyB0aGUg Y29udGVudCBpcyBzYWZlLgo+Cj4KPiBMZSAyNy8wNi8yMDIzIMOgIDA5OjMwLCBIc2lhLUp1biBM aSBhIMOpY3JpdCA6Cj4+Cj4+IE9uIDYvMjIvMjMgMjE6MTMsIEJlbmphbWluIEdhaWduYXJkIHdy b3RlOgo+Pj4gQ0FVVElPTjogRW1haWwgb3JpZ2luYXRlZCBleHRlcm5hbGx5LCBkbyBub3QgY2xp Y2sgbGlua3Mgb3Igb3Blbgo+Pj4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSByZWNvZ25pemUgdGhl IHNlbmRlciBhbmQga25vdyB0aGUgY29udGVudCBpcwo+Pj4gc2FmZS4KPj4+Cj4+Pgo+Pj4gVklE SU9DX0RFTEVURV9CVUYgaW9jdGwgYWxsb3dzIHRvIGRlbGV0ZSBhIGJ1ZmZlciBmcm9tIGEgcXVl dWUuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQmVuamFtaW4gR2FpZ25hcmQgPGJlbmphbWluLmdh aWduYXJkQGNvbGxhYm9yYS5jb20+Cj4+PiAtLS0KPj4+IMKgIC4uLi91c2Vyc3BhY2UtYXBpL21l ZGlhL3Y0bC91c2VyLWZ1bmMucnN0wqDCoMKgwqAgfMKgIDEgKwo+Pj4gwqAgLi4uL21lZGlhL3Y0 bC92aWRpb2MtZGVsZXRlLWJ1Zi5yc3TCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDUxIAo+Pj4gKysr KysrKysrKysrKysrKysrKwo+Pj4gwqAgLi4uL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9i dWYyLWNvcmUuY8KgwqAgfCAzMyArKysrKysrKysrKysKPj4+IMKgIC4uLi9tZWRpYS9jb21tb24v dmlkZW9idWYyL3ZpZGVvYnVmMi12NGwyLmPCoMKgIHzCoCA2ICsrKwo+Pj4gwqAgZHJpdmVycy9t ZWRpYS92NGwyLWNvcmUvdjRsMi1kZXYuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+ Pj4gwqAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1pb2N0bC5jwqDCoMKgwqDCoMKgwqDC oMKgIHwgMTAgKysrKwo+Pj4gwqAgaW5jbHVkZS9tZWRpYS92NGwyLWlvY3RsLmjCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgNCArKwo+Pj4gwqAgaW5jbHVkZS9tZWRp YS92aWRlb2J1ZjItY29yZS5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA5ICsr KysKPj4+IMKgIGluY2x1ZGUvbWVkaWEvdmlkZW9idWYyLXY0bDIuaMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB8IDExICsrKysKPj4+IMKgIGluY2x1ZGUvdWFwaS9saW51eC92aWRlb2Rl djIuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMiArCj4+PiDCoCAxMCBmaWxl cyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKQo+Pj4gwqAgY3JlYXRlIG1vZGUgMTAwNjQ0Cj4+ PiBEb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVkaWEvdjRsL3ZpZGlvYy1kZWxldGUtYnVm LnJzdAo+Pj4KPj4+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3VzZXJzcGFjZS1hcGkvbWVk aWEvdjRsL3VzZXItZnVuYy5yc3QKPj4+IGIvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21l ZGlhL3Y0bC91c2VyLWZ1bmMucnN0Cj4+PiBpbmRleCAxNWZmMGJmN2JiZTYuLjhjNzQwMTZlMTJm ZCAxMDA2NDQKPj4+IC0tLSBhL0RvY3VtZW50YXRpb24vdXNlcnNwYWNlLWFwaS9tZWRpYS92NGwv dXNlci1mdW5jLnJzdAo+Pj4gKysrIGIvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlh L3Y0bC91c2VyLWZ1bmMucnN0Cj4+PiBAQCAtMTcsNiArMTcsNyBAQCBGdW5jdGlvbiBSZWZlcmVu Y2UKPj4+IMKgwqDCoMKgwqAgdmlkaW9jLWRiZy1nLWNoaXAtaW5mbwo+Pj4gwqDCoMKgwqDCoCB2 aWRpb2MtZGJnLWctcmVnaXN0ZXIKPj4+IMKgwqDCoMKgwqAgdmlkaW9jLWRlY29kZXItY21kCj4+ PiArwqDCoMKgIHZpZGlvYy1kZWxldGUtYnVmCj4+PiDCoMKgwqDCoMKgIHZpZGlvYy1kcWV2ZW50 Cj4+PiDCoMKgwqDCoMKgIHZpZGlvYy1kdi10aW1pbmdzLWNhcAo+Pj4gwqDCoMKgwqDCoCB2aWRp b2MtZW5jb2Rlci1jbWQKPj4+IGRpZmYgLS1naXQKPj4+IGEvRG9jdW1lbnRhdGlvbi91c2Vyc3Bh Y2UtYXBpL21lZGlhL3Y0bC92aWRpb2MtZGVsZXRlLWJ1Zi5yc3QKPj4+IGIvRG9jdW1lbnRhdGlv bi91c2Vyc3BhY2UtYXBpL21lZGlhL3Y0bC92aWRpb2MtZGVsZXRlLWJ1Zi5yc3QKPj4+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjBlN2NlNThmOTFiYwo+Pj4g LS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvRG9jdW1lbnRhdGlvbi91c2Vyc3BhY2UtYXBpL21lZGlh L3Y0bC92aWRpb2MtZGVsZXRlLWJ1Zi5yc3QKPj4+IEBAIC0wLDAgKzEsNTEgQEAKPj4+ICsuLiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR0ZETC0xLjEtbm8taW52YXJpYW50cy1vci1sYXRlcgo+ Pj4gKy4uIGM6bmFtZXNwYWNlOjogVjRMCj4+PiArCj4+PiArLi4gX1ZJRElPQ19ERUxFVEVfQlVG Ogo+Pj4gKwo+Pj4gKyoqKioqKioqKioqKioqKioqKioqKioqKgo+Pj4gK2lvY3RsIFZJRElPQ19E RUxFVEVfQlVGCj4+PiArKioqKioqKioqKioqKioqKioqKioqKioqCj4+PiArCj4+PiArTmFtZQo+ Pj4gKz09PT0KPj4+ICsKPj4+ICtWSURJT0NfREVMRVRFX0JVRiAtIERlbGV0ZSBhIGJ1ZmZlciBm cm9tIGEgcXVldWUKPj4+ICsKPj4+ICtTeW5vcHNpcwo+Pj4gKz09PT09PT09Cj4+PiArCj4+PiAr Li4gYzptYWNybzo6IFZJRElPQ19ERUxFVEVfQlVGCj4+PiArCj4+PiArYGBpbnQgaW9jdGwoaW50 IGZkLCBWSURJT0NfREVMRVRFX0JVRiwgc3RydWN0IHY0bDJfYnVmZmVyICphcmdwKWBgCj4+PiAr Cj4+PiArQXJndW1lbnRzCj4+PiArPT09PT09PT09Cj4+PiArCj4+PiArYGBmZGBgCj4+PiArwqDC oMKgIEZpbGUgZGVzY3JpcHRvciByZXR1cm5lZCBieSA6YzpmdW5jOmBvcGVuKClgLgo+Pj4gKwo+ Pj4gK2BgYXJncGBgCj4+PiArwqDCoMKgIFBvaW50ZXIgdG8gc3RydWN0IDpjOnR5cGU6YHY0bDJf YnVmZmVyYC4KPj4+ICsKPj4+ICtEZXNjcmlwdGlvbgo+Pj4gKz09PT09PT09PT09Cj4+PiArCj4+ PiArQXBwbGljYXRpb25zIGNhbiBvcHRpb25hbGx5IGNhbGwgdGhlIDpyZWY6YFZJRElPQ19ERUxF VEVfQlVGYCBpb2N0bCB0bwo+Pj4gK2RlbGV0ZSBhIGJ1ZmZlciBmcm9tIGEgcXVldWUuCj4+PiAr Cj4+PiArVGhlIHN0cnVjdCA6Yzp0eXBlOmB2NGwyX2J1ZmZlcmAgc3RydWN0dXJlIGlzIHNwZWNp ZmllZCBpbgo+Pj4gKzpyZWY6YGJ1ZmZlcmAuCj4+PiArCj4+PiArUmV0dXJuIFZhbHVlCj4+PiAr PT09PT09PT09PT09Cj4+PiArCj4+PiArT24gc3VjY2VzcyAwIGlzIHJldHVybmVkLCBvbiBlcnJv ciAtMSBhbmQgdGhlIGBgZXJybm9gYCB2YXJpYWJsZSBpcyAKPj4+IHNldAo+Pj4gK2FwcHJvcHJp YXRlbHkuIFRoZSBnZW5lcmljIGVycm9yIGNvZGVzIGFyZSBkZXNjcmliZWQgYXQgdGhlCj4+PiAr OnJlZjpgR2VuZXJpYyBFcnJvciBDb2RlcyA8Z2VuLWVycm9ycz5gIGNoYXB0ZXIuCj4+PiArCj4+ PiArRUJVU1kKPj4+ICvCoMKgwqAgRmlsZSBJL08gaXMgaW4gcHJvZ3Jlc3MuCj4+PiArCj4+PiAr RUlOVkFMCj4+PiArwqDCoMKgIFRoZSBidWZmZXIgYGBpbmRleGBgIGRvZXNuJ3QgZXhpc3QgaW4g dGhlIHF1ZXVlLgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVm Mi92aWRlb2J1ZjItY29yZS5jCj4+PiBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92 aWRlb2J1ZjItY29yZS5jCj4+PiBpbmRleCA4OTk3ODNmNjc1ODAuLmFhNTQ2Yzk3MmMzZCAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVmMi92aWRlb2J1ZjItY29y ZS5jCj4+PiArKysgYi9kcml2ZXJzL21lZGlhL2NvbW1vbi92aWRlb2J1ZjIvdmlkZW9idWYyLWNv cmUuYwo+Pj4gQEAgLTE2MzcsNiArMTYzNywzOSBAQCBpbnQgdmIyX2NvcmVfcHJlcGFyZV9idWYo c3RydWN0IHZiMl9xdWV1ZSAqcSwKPj4+IHVuc2lnbmVkIGludCBpbmRleCwgdm9pZCAqcGIpCj4+ PiDCoCB9Cj4+PiDCoCBFWFBPUlRfU1lNQk9MX0dQTCh2YjJfY29yZV9wcmVwYXJlX2J1Zik7Cj4+ Pgo+Pj4gK2ludCB2YjJfY29yZV9kZWxldGVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIHVuc2ln bmVkIGludCBpbmRleCkKPj4+ICt7Cj4+PiArwqDCoMKgwqDCoMKgIHN0cnVjdCB2YjJfYnVmZmVy ICp2YjsKPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqAgdmIgPSB2YjJfZ2V0X2J1ZmZlcihxLCBpbmRl eCk7Cj4+PiArwqDCoMKgwqDCoMKgIGlmICghdmIpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGRwcmludGsocSwgMSwgImludmFsaWQgYnVmZmVyIGluZGV4ICVkXG4iLCBpbmRl eCk7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4+ ICvCoMKgwqDCoMKgwqAgfQo+Pj4gKwo+Pj4gK8KgwqDCoMKgwqDCoCBpZiAodmItPnN0YXRlICE9 IFZCMl9CVUZfU1RBVEVfREVRVUVVRUQpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGRwcmludGsocSwgMSwgImNhbid0IGRlbGV0ZSBub24gZGVxdWV1ZWQgYnVmZmVyIGluZGV4 Cj4+PiAlZFxuIiwgaW5kZXgpOwo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIC1FSU5WQUw7Cj4+PiArwqDCoMKgwqDCoMKgIH0KPj4+ICsKPj4gSSBrbm93IHRoZSBkcml2 ZXIgY291bGQgaW1wbGVtZW50IGl0cyBvd24KPj4gdjRsMl9pb2N0bF9vcHMtPnZpZGlvY19kZWxl dGVfYnVmKCkgdGhhdCBjaGVjayB3aGV0aGVyIGEgYnVmZmVyIGlzCj4+IHVzZWQgYnkgdGhlIGhh cmR3YXJlIGFzIGEgZnV0dXJlIHJlZmVyZW5jZSBmcmFtZS4KPj4gQnV0IEkgdGhpbmsgd2UgbmVl ZCBhIGZsYWcgdG8gbGV0IHRoZSB1c2VyIGtub3cgd2hpY2ggYnVmZmVyIGlzIHN0aWxsCj4+IHVz ZWQgYnkgdGhlIGhhcmR3YXJlLgo+PiBBbHRlcm5hdGl2ZSByZWYgY2FzZSBpcyBzYWZlLCB3ZSBv bmx5IGtub3cgaXQncyBleGlzdGluZyB3aGVuIGl0IGlzCj4+IGRlcXVldWVkIGluIGN1cnJlbnQg VjRMMiBidWZmZXIgbWVjaGFuaXNtLgo+PiBXaGlsZSB0aGUgR29sZGVuIHJlZmVyZW5jZSBmcmFt ZSwgc3VjaCBsb25nIHRlcm0gcmVmZXJlbmNlIGZyYW1lIGNvdWxkCj4+IGxhc3QgbXVjaCBsb25n ZXIuCj4KPiBJdCBpcyB1cCB0byB1c2VybGFuZCBzdGFjayB0byBrbm93IGZyYW1lcyBsaWZlIHRp bWUsIGl0IGdvdCB0aGUgCj4gaW5mb3JtYXRpb24gZm9yIHRoYXQuCgpUaGF0IGlzIHRydWUgZm9y IHRoZSBzdGF0ZWxlc3MgY29kZWMgZHJpdmVyLgoKV2hpbGUgYXBwbGljYXRpb24gZm9yIHN0YXRl ZnVsIGRlY29kZXIgY291bGQgbmV2ZXIgZG8gdGhhdC4gSXQgYWxzbyAKYnJlYWtzIHdoYXQgdGhl IGRvY3VtZW50IHNhaWQ6CgoiVGhlIGJhY2tpbmcgbWVtb3J5IG9mIHxDQVBUVVJFfCBidWZmZXJz IHRoYXQgYXJlIHVzZWQgYXMgcmVmZXJlbmNlIApmcmFtZXMgYnkgdGhlIHN0cmVhbSBtYXkgYmUg cmVhZCBieSB0aGUgaGFyZHdhcmUgZXZlbiBhZnRlciB0aGV5IGFyZSAKZGVxdWV1ZWQuIENvbnNl cXVlbnRseSwgdGhlIGNsaWVudCBzaG91bGQgYXZvaWQgd3JpdGluZyBpbnRvIHRoaXMgbWVtb3J5 IAp3aGlsZSB0aGUgfENBUFRVUkV8IHF1ZXVlIGlzIHN0cmVhbWluZy4gRmFpbHVyZSB0byBvYnNl cnZlIHRoaXMgbWF5IApyZXN1bHQgaW4gY29ycnVwdGlvbiBvZiBkZWNvZGVkIGZyYW1lcy4iCgo+ Cj4+PiArwqDCoMKgwqDCoMKgIGlmICh2Yi0+cGxhbmVzWzBdLm1lbV9wcml2KQo+Pj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2FsbF92b2lkX3ZiX3FvcCh2YiwgYnVmX2NsZWFudXAs IHZiKTsKPj4+ICsKPj4+ICvCoMKgwqDCoMKgwqAgLyogRnJlZSBNTUFQIGJ1ZmZlcnMgb3IgcmVs ZWFzZSBVU0VSUFRSIGJ1ZmZlcnMgKi8KPj4+ICvCoMKgwqDCoMKgwqAgaWYgKHEtPm1lbW9yeSA9 PSBWQjJfTUVNT1JZX01NQVApCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBfX3Zi Ml9idWZfbWVtX2ZyZWUodmIpOwo+Pj4gK8KgwqDCoMKgwqDCoCBlbHNlIGlmIChxLT5tZW1vcnkg PT0gVkIyX01FTU9SWV9ETUFCVUYpCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBf X3ZiMl9idWZfZG1hYnVmX3B1dCh2Yik7Cj4+PiArwqDCoMKgwqDCoMKgIGVsc2UKPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIF9fdmIyX2J1Zl91c2VycHRyX3B1dCh2Yik7Cj4+PiAr Cj4+PiArwqDCoMKgwqDCoMKgIHZiMl9xdWV1ZV9yZW1vdmVfYnVmZmVyKHEsIHZiKTsKPj4+ICvC oMKgwqDCoMKgwqAga2ZyZWUodmIpOwo+Pj4gKwo+Pj4gK8KgwqDCoMKgwqDCoCBkcHJpbnRrKHEs IDIsICJidWZmZXIgJWQgZGVsZXRlZFxuIiwgaW5kZXgpOwo+Pj4gK8KgwqDCoMKgwqDCoCByZXR1 cm4gMDsKPj4+ICt9Cj4+PiArCj4+PiDCoCAvKgo+Pj4gwqDCoCAqIHZiMl9zdGFydF9zdHJlYW1p bmcoKSAtIEF0dGVtcHQgdG8gc3RhcnQgc3RyZWFtaW5nLgo+Pj4gwqDCoCAqIEBxOsKgwqDCoMKg wqDCoMKgwqAgdmlkZW9idWYyIHF1ZXVlCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9j b21tb24vdmlkZW9idWYyL3ZpZGVvYnVmMi12NGwyLmMKPj4+IGIvZHJpdmVycy9tZWRpYS9jb21t b24vdmlkZW9idWYyL3ZpZGVvYnVmMi12NGwyLmMKPj4+IGluZGV4IDcyNDEzNWQ0MWY3Zi4uY2Vh NjY2YzE3YjQxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9jb21tb24vdmlkZW9idWYy L3ZpZGVvYnVmMi12NGwyLmMKPj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvY29tbW9uL3ZpZGVvYnVm Mi92aWRlb2J1ZjItdjRsMi5jCj4+PiBAQCAtNzUxLDYgKzc1MSwxMiBAQCBpbnQgdmIyX3ByZXBh cmVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVjdAo+Pj4gbWVkaWFfZGV2aWNlICptZGV2 LAo+Pj4gwqAgfQo+Pj4gwqAgRVhQT1JUX1NZTUJPTF9HUEwodmIyX3ByZXBhcmVfYnVmKTsKPj4+ Cj4+PiAraW50IHZiMl9kZWxldGVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVjdCB2NGwy X2J1ZmZlciAqYikKPj4+ICt7Cj4+PiArwqDCoMKgwqDCoMKgIHJldHVybiB2YjJfY29yZV9kZWxl dGVfYnVmKHEsIGItPmluZGV4KTsKPj4+ICt9Cj4+PiArRVhQT1JUX1NZTUJPTF9HUEwodmIyX2Rl bGV0ZV9idWYpOwo+Pj4gKwo+Pj4gwqAgaW50IHZiMl9jcmVhdGVfYnVmcyhzdHJ1Y3QgdmIyX3F1 ZXVlICpxLCBzdHJ1Y3QgdjRsMl9jcmVhdGVfYnVmZmVycwo+Pj4gKmNyZWF0ZSkKPj4+IMKgIHsK Pj4+IMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgcmVxdWVzdGVkX3BsYW5lcyA9IDE7Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1kZXYuYwo+Pj4gYi9kcml2 ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWRldi5jCj4+PiBpbmRleCBmODEyNzk0OTI2ODIuLjgw YWNlMmUxZTkzMiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDIt ZGV2LmMKPj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItZGV2LmMKPj4+IEBA IC03MjAsNiArNzIwLDcgQEAgc3RhdGljIHZvaWQgZGV0ZXJtaW5lX3ZhbGlkX2lvY3RscyhzdHJ1 Y3QKPj4+IHZpZGVvX2RldmljZSAqdmRldikKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIFNFVF9WQUxJRF9JT0NUTChvcHMsIFZJRElPQ19QUkVQQVJFX0JVRiwKPj4+IHZpZGlv Y19wcmVwYXJlX2J1Zik7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBTRVRf VkFMSURfSU9DVEwob3BzLCBWSURJT0NfU1RSRUFNT04sIAo+Pj4gdmlkaW9jX3N0cmVhbW9uKTsK Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFNFVF9WQUxJRF9JT0NUTChvcHMs IFZJRElPQ19TVFJFQU1PRkYsCj4+PiB2aWRpb2Nfc3RyZWFtb2ZmKTsKPj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIFNFVF9WQUxJRF9JT0NUTChvcHMsIFZJRElPQ19ERUxFVEVfQlVG LAo+Pj4gdmlkaW9jX2RlbGV0ZV9idWYpOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoCB9Cj4+Pgo+Pj4g wqDCoMKgwqDCoMKgwqDCoCBpZiAoaXNfdmlkIHx8IGlzX3ZiaSB8fCBpc19tZXRhKSB7Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1pb2N0bC5jCj4+PiBiL2Ry aXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwuYwo+Pj4gaW5kZXggYTg1OGFjZWE2NTQ3 Li4xYzczNzI3OWQzZWYgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92 NGwyLWlvY3RsLmMKPj4+ICsrKyBiL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItaW9jdGwu Ywo+Pj4gQEAgLTIxNTYsNiArMjE1NiwxNSBAQCBzdGF0aWMgaW50IHY0bF9wcmVwYXJlX2J1Zihj b25zdCBzdHJ1Y3QKPj4+IHY0bDJfaW9jdGxfb3BzICpvcHMsCj4+PiDCoMKgwqDCoMKgwqDCoMKg IHJldHVybiByZXQgPyByZXQgOiBvcHMtPnZpZGlvY19wcmVwYXJlX2J1ZihmaWxlLCBmaCwgYik7 Cj4+PiDCoCB9Cj4+Pgo+Pj4gK3N0YXRpYyBpbnQgdjRsX2RlbGV0ZV9idWYoY29uc3Qgc3RydWN0 IHY0bDJfaW9jdGxfb3BzICpvcHMsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwgdm9pZCAqYXJn KQo+Pj4gK3sKPj4+ICvCoMKgwqDCoMKgwqAgc3RydWN0IHY0bDJfYnVmZmVyICpiID0gYXJnOwo+ Pj4gK8KgwqDCoMKgwqDCoCBpbnQgcmV0ID0gY2hlY2tfZm10KGZpbGUsIGItPnR5cGUpOwo+Pj4g Kwo+Pj4gK8KgwqDCoMKgwqDCoCByZXR1cm4gcmV0ID8gcmV0IDogb3BzLT52aWRpb2NfZGVsZXRl X2J1ZihmaWxlLCBmaCwgYik7Cj4+PiArfQo+Pj4gKwo+Pj4gwqAgc3RhdGljIGludCB2NGxfZ19w YXJtKGNvbnN0IHN0cnVjdCB2NGwyX2lvY3RsX29wcyAqb3BzLAo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qg ZmlsZSAqZmlsZSwgdm9pZCAqZmgsIHZvaWQgCj4+PiAqYXJnKQo+Pj4gwqAgewo+Pj4gQEAgLTI5 MDUsNiArMjkxNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdjRsMl9pb2N0bF9pbmZvCj4+PiB2 NGwyX2lvY3Rsc1tdID0gewo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBJT0NUTF9JTkZPKFZJRElPQ19F TlVNX0ZSRVFfQkFORFMsIHY0bF9lbnVtX2ZyZXFfYmFuZHMsCj4+PiB2NGxfcHJpbnRfZnJlcV9i YW5kLCAwKSwKPj4+IMKgwqDCoMKgwqDCoMKgwqAgSU9DVExfSU5GTyhWSURJT0NfREJHX0dfQ0hJ UF9JTkZPLCB2NGxfZGJnX2dfY2hpcF9pbmZvLAo+Pj4gdjRsX3ByaW50X2RiZ19jaGlwX2luZm8s IElORk9fRkxfQ0xFQVIodjRsMl9kYmdfY2hpcF9pbmZvLCBtYXRjaCkpLAo+Pj4gwqDCoMKgwqDC oMKgwqDCoCBJT0NUTF9JTkZPKFZJRElPQ19RVUVSWV9FWFRfQ1RSTCwgdjRsX3F1ZXJ5X2V4dF9j dHJsLAo+Pj4gdjRsX3ByaW50X3F1ZXJ5X2V4dF9jdHJsLCBJTkZPX0ZMX0NUUkwgfAo+Pj4gSU5G T19GTF9DTEVBUih2NGwyX3F1ZXJ5X2V4dF9jdHJsLCBpZCkpLAo+Pj4gK8KgwqDCoMKgwqDCoCBJ T0NUTF9JTkZPKFZJRElPQ19ERUxFVEVfQlVGLCB2NGxfZGVsZXRlX2J1ZiwKPj4+IHY0bF9wcmlu dF9idWZmZXIsIElORk9fRkxfUVVFVUUpLAo+Pj4gwqAgfTsKPj4+IMKgICNkZWZpbmUgVjRMMl9J T0NUTFMgQVJSQVlfU0laRSh2NGwyX2lvY3RscykKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9tZWRpYS92NGwyLWlvY3RsLmggYi9pbmNsdWRlL21lZGlhL3Y0bDItaW9jdGwuaAo+Pj4gaW5k ZXggZWRiNzMzZjIxNjA0Li4yZjIzMmVkODg0YzcgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL21l ZGlhL3Y0bDItaW9jdGwuaAo+Pj4gKysrIGIvaW5jbHVkZS9tZWRpYS92NGwyLWlvY3RsLmgKPj4+ IEBAIC0xNjMsNiArMTYzLDggQEAgc3RydWN0IHY0bDJfZmg7Cj4+PiDCoMKgICrCoMKgwqDCoCA6 cmVmOmBWSURJT0NfQ1JFQVRFX0JVRlMgPHZpZGlvY19jcmVhdGVfYnVmcz5gIGlvY3RsCj4+PiDC oMKgICogQHZpZGlvY19wcmVwYXJlX2J1ZjogcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gdGhhdCBp bXBsZW1lbnRzCj4+PiDCoMKgICrCoMKgwqDCoCA6cmVmOmBWSURJT0NfUFJFUEFSRV9CVUYgPHZp ZGlvY19wcmVwYXJlX2J1Zj5gIGlvY3RsCj4+PiArICogQHZpZGlvY19kZWxldGVfYnVmOiBwb2lu dGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMKPj4+ICsgKsKgwqDCoMKgIDpyZWY6 YFZJRElPQ19ERUxFVEVfQlVGIDx2aWRpb2NfZGVsZXRlX2J1Zj5gIGlvY3RsCj4+PiDCoMKgICog QHZpZGlvY19vdmVybGF5OiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGltcGxlbWVudHMK Pj4+IMKgwqAgKsKgwqDCoMKgIDpyZWY6YFZJRElPQ19PVkVSTEFZIDx2aWRpb2Nfb3ZlcmxheT5g IGlvY3RsCj4+PiDCoMKgICogQHZpZGlvY19nX2ZidWY6IHBvaW50ZXIgdG8gdGhlIGZ1bmN0aW9u IHRoYXQgaW1wbGVtZW50cwo+Pj4gQEAgLTQyMiw2ICs0MjQsOCBAQCBzdHJ1Y3QgdjRsMl9pb2N0 bF9vcHMgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHY0bDJfY3JlYXRlX2J1ZmZlcnMgKmIpOwo+ Pj4gwqDCoMKgwqDCoMKgwqDCoCBpbnQgKCp2aWRpb2NfcHJlcGFyZV9idWYpKHN0cnVjdCBmaWxl ICpmaWxlLCB2b2lkICpmaCwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB2NGwyX2J1ZmZlciAqYik7 Cj4+PiArwqDCoMKgwqDCoMKgIGludCAoKnZpZGlvY19kZWxldGVfYnVmKShzdHJ1Y3QgZmlsZSAq ZmlsZSwgdm9pZCAqZmgsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHY0bDJfYnVmZmVyICpiKTsKPj4+Cj4+ PiDCoMKgwqDCoMKgwqDCoMKgIGludCAoKnZpZGlvY19vdmVybGF5KShzdHJ1Y3QgZmlsZSAqZmls ZSwgdm9pZCAqZmgsIHVuc2lnbmVkCj4+PiBpbnQgaSk7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIGlu dCAoKnZpZGlvY19nX2ZidWYpKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpmaCwKPj4+IGRpZmYg LS1naXQgYS9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi1jb3JlLmgKPj4+IGIvaW5jbHVkZS9tZWRp YS92aWRlb2J1ZjItY29yZS5oCj4+PiBpbmRleCAwODBiNzgzZDYwOGQuLjBmOWU2OGY3NmI3NyAx MDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvbWVkaWEvdmlkZW9idWYyLWNvcmUuaAo+Pj4gKysrIGIv aW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItY29yZS5oCj4+PiBAQCAtODQwLDYgKzg0MCwxNSBAQCBp bnQgdmIyX2NvcmVfY3JlYXRlX2J1ZnMoc3RydWN0IHZiMl9xdWV1ZSAqcSwKPj4+IGVudW0gdmIy X21lbW9yeSBtZW1vcnksCj4+PiDCoMKgICovCj4+PiDCoCBpbnQgdmIyX2NvcmVfcHJlcGFyZV9i dWYoc3RydWN0IHZiMl9xdWV1ZSAqcSwgdW5zaWduZWQgaW50IGluZGV4LAo+Pj4gdm9pZCAqcGIp Owo+Pj4KPj4+ICsvKioKPj4+ICsgKiB2YjJfY29yZV9kZWxldGVfYnVmKCkgLQo+Pj4gKyAqIEBx OiBwb2ludGVyIHRvICZzdHJ1Y3QgdmIyX3F1ZXVlIHdpdGggdmlkZW9idWYyIHF1ZXVlLgo+Pj4g KyAqIEBpbmRleDrCoMKgwqDCoCBpZCBudW1iZXIgb2YgdGhlIGJ1ZmZlci4KPj4+ICsgKgo+Pj4g KyAqwqAgUmV0dXJuOiByZXR1cm5zIHplcm8gb24gc3VjY2VzczsgYW4gZXJyb3IgY29kZSBvdGhl cndpc2UuCj4+PiArICovCj4+PiAraW50IHZiMl9jb3JlX2RlbGV0ZV9idWYoc3RydWN0IHZiMl9x dWV1ZSAqcSwgdW5zaWduZWQgaW50IGluZGV4KTsKPj4+ICsKPj4+IMKgIC8qKgo+Pj4gwqDCoCAq IHZiMl9jb3JlX3FidWYoKSAtIFF1ZXVlIGEgYnVmZmVyIGZyb20gdXNlcnNwYWNlCj4+PiDCoMKg ICoKPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL21lZGlhL3ZpZGVvYnVmMi12NGwyLmgKPj4+IGIv aW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItdjRsMi5oCj4+PiBpbmRleCA4OGE3YTU2NTE3MGUuLjNi ZWViNGM3MzVmMCAxMDA2NDQKPj4+IC0tLSBhL2luY2x1ZGUvbWVkaWEvdmlkZW9idWYyLXY0bDIu aAo+Pj4gKysrIGIvaW5jbHVkZS9tZWRpYS92aWRlb2J1ZjItdjRsMi5oCj4+PiBAQCAtMTE0LDYg KzExNCwxNyBAQCBpbnQgdmIyX2NyZWF0ZV9idWZzKHN0cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVj dAo+Pj4gdjRsMl9jcmVhdGVfYnVmZmVycyAqY3JlYXRlKTsKPj4+IMKgwqAgKi8KPj4+IMKgIGlu dCB2YjJfcHJlcGFyZV9idWYoc3RydWN0IHZiMl9xdWV1ZSAqcSwgc3RydWN0IG1lZGlhX2Rldmlj ZSAqbWRldiwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3Ry dWN0IHY0bDJfYnVmZmVyICpiKTsKPj4+ICsvKioKPj4+ICsgKiB2YjJfZGVsZXRlX2J1ZigpIC0g RGVsZXRlIHRoZSBidWZmZXIgZnJvbSB0aGUgcXVldWUKPj4+ICsgKgo+Pj4gKyAqIEBxOsKgwqDC oMKgwqDCoMKgwqAgcG9pbnRlciB0byAmc3RydWN0IHZiMl9xdWV1ZSB3aXRoIHZpZGVvYnVmMiBx dWV1ZS4KPj4+ICsgKiBAYjrCoMKgwqDCoMKgwqDCoMKgIGJ1ZmZlciBzdHJ1Y3R1cmUgcGFzc2Vk IGZyb20gdXNlcnNwYWNlIHRvCj4+PiArICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnY0bDJf aW9jdGxfb3BzLT52aWRpb2NfZGVsZXRlX2J1ZiBoYW5kbGVyIGluIGRyaXZlcgo+Pj4gKyAqCj4+ PiArICogVGhlIHJldHVybiB2YWx1ZXMgZnJvbSB0aGlzIGZ1bmN0aW9uIGFyZSBpbnRlbmRlZCB0 byBiZSBkaXJlY3RseQo+Pj4gcmV0dXJuZWQKPj4+ICsgKiBmcm9tICZ2NGwyX2lvY3RsX29wcy0+ dmlkaW9jX2RlbGV0ZV9idWYgaGFuZGxlciBpbiBkcml2ZXIuCj4+PiArICovCj4+PiAraW50IHZi Ml9kZWxldGVfYnVmKHN0cnVjdCB2YjJfcXVldWUgKnEsIHN0cnVjdCB2NGwyX2J1ZmZlciAqYik7 Cj4+Pgo+Pj4gwqAgLyoqCj4+PiDCoMKgICogdmIyX3FidWYoKSAtIFF1ZXVlIGEgYnVmZmVyIGZy b20gdXNlcnNwYWNlCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L3ZpZGVvZGV2 Mi5oCj4+PiBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+Pj4gaW5kZXggYWVlNzVl YjllNjg2Li4zMWJiYTE5MTU2NDIgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL3VhcGkvbGludXgv dmlkZW9kZXYyLmgKPj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9saW51eC92aWRlb2RldjIuaAo+Pj4g QEAgLTI3MDIsNiArMjcwMiw4IEBAIHN0cnVjdCB2NGwyX2NyZWF0ZV9idWZmZXJzIHsKPj4+IMKg ICNkZWZpbmUgVklESU9DX0RCR19HX0NISVBfSU5GT8KgIF9JT1dSKCdWJywgMTAyLCBzdHJ1Y3QK Pj4+IHY0bDJfZGJnX2NoaXBfaW5mbykKPj4+Cj4+PiDCoCAjZGVmaW5lIFZJRElPQ19RVUVSWV9F WFRfQ1RSTMKgIF9JT1dSKCdWJywgMTAzLCBzdHJ1Y3QKPj4+IHY0bDJfcXVlcnlfZXh0X2N0cmwp Cj4+PiArI2RlZmluZSBWSURJT0NfREVMRVRFX0JVRsKgwqDCoMKgwqAgX0lPV1IoJ1YnLCAxMDQs IHN0cnVjdCB2NGwyX2J1ZmZlcikKPj4+ICsKPj4+Cj4+PiDCoCAvKiBSZW1pbmRlcjogd2hlbiBh ZGRpbmcgbmV3IGlvY3RscyBwbGVhc2UgYWRkIHN1cHBvcnQgZm9yIHRoZW0gdG8KPj4+IMKgwqDC oMKgIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3Y0bDItY29tcGF0LWlvY3RsMzIuYyBhcyB3ZWxs ISAqLwo+Pj4gLS0gCj4+PiAyLjM5LjIKPj4+Ci0tIApIc2lhLUp1bihSYW5keSkgTGkKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1yb2NrY2hp cCBtYWlsaW5nIGxpc3QKTGludXgtcm9ja2NoaXBAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8v bGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJvY2tjaGlwCg==