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 C9D7DC07C79 for ; Mon, 22 Apr 2024 13:30:24 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=WBRONfrb8kcjkavanq7RSF51TmyIgRNhIQy6oySi5IU=; b=P8LR291pV/qQ2U Dvz+P1TLWe3dOsiTaNFbMpX6S4rjYZGkRA2ZwfyZfPvw2a2SlvzbqT0YmTDNzydPOlnLxoLvGCYOH 1R1ya5FMgfahMcKTIn1LcUnNCgrr0SgjC+wu9d39HOxa+s92Dgb9Dx5zdIVLuX4Yjw/5kgwdlGG3H gcdt1Z7olkgG8Ueh42DZrL+Qs4yT/L8IdtZWxdMg3BtYPZZ3Vg1DGZHMP1yy3DUqX9ljUoVSOlOGa wBrYQSIw04Hxr0nrElNzx9i2QZe4Cs0Tk0PmlDkS6JIbxuGvD/Jh5TIKu3axpQcU9VVUo8Vt+GRNb TVAFEYMFbI5oxuCHkv6w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rytkH-0000000Dk4c-2W3k; Mon, 22 Apr 2024 13:30:09 +0000 Received: from mail-mw2nam12on20601.outbound.protection.outlook.com ([2a01:111:f403:200a::601] helo=NAM12-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rytkE-0000000Dk38-1wBX for linux-arm-kernel@lists.infradead.org; Mon, 22 Apr 2024 13:30:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=URgQd/ak4jnSIFTexNxBM4IQfYnEK18XN1ZJLLc/gX8nafJ4jJf4FhvMPWPhN0JD3Gdq+KsFTpQoYnKDB54ulYuOWeB+dfGVCYJvXpnXFO389ZBemtuuHYwT3LkLtac/L/hxmEX7+xp9ryQDxccHD1Tx5EUwxmo2dr/UpSTP+dshWjc8BV8YUJpf2YZOMNxxw6U4izolp0NRnrmO03LFxk0ZE8E7l5HudO1nKkUt9KtJa5pkt8fenxTRqojwMJE/k9QOb8rHcezjR5UgTgsE03Zz1UGycx9v9aNypJTxukl4aHbhswjbLKHBFwPgePU+BgZzmVv+GRCFitM6SaGIQQ== 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=Ni38pAcb/DinRyhSO5LRd7j8b48yt6a4VO2/2I02rIg=; b=caVTmiYPmwfXQzMnPWYD4NhGL+cORlwYtmfn3XKIIFgJOztvAzjXuX8OH9KuNUN4sWsA4V4+4POLlo/kgMHgpwgm7lqSCWJNrDO0H0rWqocRXP0s1XyHNib0X0+SpMtqfx+OFHZ885wzUQFCcZv2UIL/do3AKwkxVIfHwudZ9nNGgpoTroK+JeY43SOq3DI39wdf3ycqLaXtuR1WQMpXOGUwo39/IXOFhMx+e3uH9DrI4SRBBqhwXdJ0dlygil8IQAEUjD25iPM+fsjDZjYOi6II71CxcEp77Xi2SUonmPwqXpJH2R4tKuuDMQDdLVqmlcy8PEouyWrlA2fPr3BaHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ni38pAcb/DinRyhSO5LRd7j8b48yt6a4VO2/2I02rIg=; b=GB0AJqrN2pODiRledKCZbUvQ7Rjy74qUy6YK1yiI17NgnD7K7iocylTImt+2U6P0N/tAix6GPjswnfV95H+OpY8s12wPhL618+V2z72W86C2y+wyq8KHelqWxs5nhhqotR4tDvsvpXQGU4DYSxrHrzCU9m1pC96+wj3X+oUc3pbzXkMdn/awHIxo+eQ+MsYrn9lANDnPomnT0ZPmmOn4FyyqP0JGa6VccSpWtFyQegID7NhaJz3tD2OIIXCtIH53Kw57XS7zUR1p3yjEPLaMqT5UgBy+X+VVCk4RfhtUZIQNsO3cXZvgRpdlpUUH7Y1k7cIThEwvKYdqzfQICUC55A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) by IA0PR12MB8085.namprd12.prod.outlook.com (2603:10b6:208:400::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.44; Mon, 22 Apr 2024 13:29:57 +0000 Received: from DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222]) by DM6PR12MB3849.namprd12.prod.outlook.com ([fe80::6aec:dbca:a593:a222%5]) with mapi id 15.20.7472.044; Mon, 22 Apr 2024 13:29:56 +0000 Date: Mon, 22 Apr 2024 10:29:54 -0300 From: Jason Gunthorpe To: Mostafa Saleh Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Eric Auger , Moritz Fischer , Moritz Fischer , Michael Shavit , Nicolin Chen , patches@lists.linux.dev, Shameerali Kolothum Thodi Subject: Re: [PATCH v7 2/9] iommu/arm-smmu-v3: Make CD programming use arm_smmu_write_entry() Message-ID: <20240422132954.GB49823@nvidia.com> References: <0-v7-cb149db3a320+3b5-smmuv3_newapi_p2_jgg@nvidia.com> <2-v7-cb149db3a320+3b5-smmuv3_newapi_p2_jgg@nvidia.com> Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: MN2PR19CA0008.namprd19.prod.outlook.com (2603:10b6:208:178::21) To DM6PR12MB3849.namprd12.prod.outlook.com (2603:10b6:5:1c7::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6PR12MB3849:EE_|IA0PR12MB8085:EE_ X-MS-Office365-Filtering-Correlation-Id: 1818f9fa-3db8-4c3a-a0cb-08dc62d04cd4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RW9pY29ObzFqRkNUS2dmdm8rUytLZlVmVkFkNzhzM1JsTWFiL3RyWlVBNHlG?= =?utf-8?B?b0hENy9mT1FkYlI5NUZlVDdDL1pMajh2a0Q2Z2E2NFNXdGVYYjgxM2VxZXh2?= =?utf-8?B?NjRPZTFUKzludzdWZFdhb0tUc0dvUHlQRFZLTGlCS0VKaTZXUlM1UGtiOVQ0?= =?utf-8?B?NVh3YmJnYVU5cW5VVEo1cGFyVGlDWFoxY09GS0tCUmlZRVliNjZFZXJ0VG9M?= =?utf-8?B?eUtBcE9YZ1NMQ3BmdGozZ1RUcmFaK1NPT2NpV3VaM0RYRXUrYlptcVNta1U3?= =?utf-8?B?d1pNdlVKM3ZxSk1idjFzcjE2bGJnSjN6cDRWa1orRGtOY3dKZzZPT3VJQkRR?= =?utf-8?B?eFlxVzAwVCtnOXAwT0dJVHFCUXlhRElDanNpc3FnTjZ2QXNlc1NEOXlRa0NC?= =?utf-8?B?TFA5VDBSRFdWT2hrK1dDY1lxZnhpRmRCRjN2cG5QZmk1eHB2QUpNcmNoZ3JC?= =?utf-8?B?YzM1dUN0cW9IVnRWWjZubkpnbWdWNTRDVUQ1ZUxMb0ZqLzhQMExjTTNEakV0?= =?utf-8?B?dVhIUWIrRlNSWm10VFVsWExHdDNZVzJKT3o0ajh1Sk1RWFFsTldPQ0xqUUNi?= =?utf-8?B?cXZvVXl0ZFpHUVU5M1Z5YStNZWc5QU56bFJYc000MzNCRWZqSnlRK3IrRmZ4?= =?utf-8?B?UGsyV1pmN3N5K20rMEtwVStoUjA4dW16OXlZOXoyS0VxeUMzSDlwZDFoUXhm?= =?utf-8?B?ZkRsUlVlTjArMHNuaktXZkJhaitHSWNuYWVob1ZnNkhsTjlqTWp5a1NZNFhh?= =?utf-8?B?MTBmeU0rN0FCaTJOalNlQTh6MTVzUmV4RkxsNlh2Wkx5ZlV5aDNuenpaWlZp?= =?utf-8?B?LzFnM3BraENxM0xXbm1wdGlhNFVHcEliOWl0cFNvbFg0b25RMWtZZVREbEc2?= =?utf-8?B?aWVGUzVROFExS3BGOU9ueXRmMjZzSjloV2NCdmlnSFI5cEpERC90ZkRFMHNl?= =?utf-8?B?cU9JOUxoTVErdC9MeVFORWc2bVU5dm96ZUEyKy9nM0w5WUd6aXVwc2RBa0Qr?= =?utf-8?B?UEt2Nk9KdnFGakFxMFBYaHZkd3p4RGoxMFdjQW9jWTk3d2kzbVZuQkZlbWp0?= =?utf-8?B?TDI5b2Nkc3FSMjNla3pIMEZRWHNkeUFITVNGcGpMdzAyaklKQTJoTENEMUxs?= =?utf-8?B?M2xVVTR6WWlQSWxEbFpEZHMzcWJubEJrSGdCWjNzSXZGWk9uR25STmZuazlL?= =?utf-8?B?Z1p1TUxuNGxMTkFvbkVDQlpCNGY5cStyTkttTFlKL1lKZ0FmTyt1WmE5NjU1?= =?utf-8?B?Z2Q4RVRTL01XQ3lIYkMrc2p5ZmkyRWNjWW9zR2xVcjBMWWRrWFhHNncwWUs1?= =?utf-8?B?K3VoQ1M0ellyZzJoNVppZWFZUU55UHA4NFkwak8yQTQ1V3craTBRKzQvRG5G?= =?utf-8?B?bWU2ZDhnOTlYQnRrM2FyMjRoZGpyRXB4a2s1ZkRyMm4wanF2dEZlWWM1UUlL?= =?utf-8?B?N2tRdVVLc1RZaENVdlJPN3BWUm9lWlRXR0VDcVZwMU1QMEgvcXVQSS9HMVRM?= =?utf-8?B?cndDNDlFbkhkc1pYTkJZSmYrYW51ZE1kRGpIbEo4TlJ4NjUvUWprYXlmQklw?= =?utf-8?B?ZElNWWxaTC9LOFhsdXNjY0hKZWg5VkVjcWt5eUdUR2U1RHJwaHpTYVFRU2hn?= =?utf-8?B?RU5WWkhKcXdVWGJtVm9CR3M2Zm0wRy9EZlYxM1NCSWdMT0hDTWw5V1k1MlFm?= =?utf-8?B?NlRyVHdoOEVlazE1dit2OVhnOTg5WGd6anhZZ3ZjaGtBT0w2Qmd1Y1pBPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3849.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(376005)(7416005)(1800799015);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UE5LR3hrSzZLcHFlVGRaTHdSTHdBUjdLZ0p3amRBQ2QvUDdrcy9NY2c4VjR1?= =?utf-8?B?dkx2SE1WUVNaWUtpU2FUY1FOaWZqN3dsbnc1SklmMHVGZlRTZEkxeFFxVHJw?= =?utf-8?B?ako5cUNjemhRemUyQlpGb3Ywc3cxM0tnMlk2Z2RTRjhrYlhvNkcxUlRVS0h2?= =?utf-8?B?eEtnSUV5OVFuN0VTaW01WW10d0dYZ044ZC83UStHMTcyd1dtb29uMXIzWFZG?= =?utf-8?B?ck4vUHB2S2ZLUmlEaDc4K2FiN2o2bnVEZ2hNbHRvMzJTczBpRzlEYVFmUWQ3?= =?utf-8?B?RmRqKzJkZXRqM2hBR3FqZldqK1NZZEtVVG5NMFdLUGJwbmRUc3FvM2FIanV0?= =?utf-8?B?VzdVT21pL3JHd1lEUDZCZWlTSVJLaHJ3K2pLRHVLMm9obnlSTitMWGJuK01s?= =?utf-8?B?VHFITVpRVko2RTdlcGRtNnA0VUJJT09jbWZ0dzJobEROWlNadG84Y0VKL3lF?= =?utf-8?B?bGFCWGNGVVlPdXIrYXRqZCtmWVBaeTZXQUtiUmRoUW9jVmIvTS8zaXBnTUYv?= =?utf-8?B?NGJNUVpTL3o5aEhzZzJNaU5lOVlTNjkzRVc0MndJYmM3K05MM1VoZ0dsR0JU?= =?utf-8?B?akwzYUo5d210MXBmVzZERXVTN0hmcWVYVWN1cGp4OGNtcXdZMCtmV2duODZM?= =?utf-8?B?d2NkSXJwSUJZR0pWcmxUOExNZ1MzTDVkZXlraUhic1QySlpYSFR2RjJOVGU2?= =?utf-8?B?OGF5N1ppMW1mNGJ3ZDNIaUZNRitYM3VUN1FvbU5FY3E2OXFQUVlHS1FVVStO?= =?utf-8?B?c25sWTB6RFZzZVVZaDZ6dFhWU3RZMWx2SzdUT0dzR0dVS2VCQUlvanNjVzQy?= =?utf-8?B?UTZKWkZ0YTJwdVFoRlVpTDVVZUdyNmtKd1Y0aU5xU1pGNlh5OFJYbi9wazc4?= =?utf-8?B?SDVCK2NKajJpblFKZ3ZaL2JSRXpBc1BLYlR4STlzOFpnS0k5eWdDc3BWa2N5?= =?utf-8?B?MTBKNUlUaXVDcDRyd3dRNmJhWTk3d3ZzdjVwZGtBbldpbEUxd0NSTlgvSlo3?= =?utf-8?B?bDQrTU0weXdWYTVBKzFWT21qanZGTGN1anRXZURUNGlHL08yakZLU2xYMzJq?= =?utf-8?B?bUtFaVFNOHFCZHpGemJRSzRoQlA4Y3dQWE91SzFpRi80UjUveTRKU0JxYVZ5?= =?utf-8?B?TldVRXNJd01MTEZLczduYTV1M3YybGt5TmE3V0M3S3hXYmY3dUpNL1NWUEdv?= =?utf-8?B?cWxwbTlhMTA0TUNsM3JxckU2UkdqL0VVU2NXb3g3UlR3OVI1dVpGRld1NDZh?= =?utf-8?B?dTBiQjJtWVlqaHpFRWM3ajRyL3JEZlR6c3l4OWkzL3RSVncyQURuRWZoS2RE?= =?utf-8?B?aU81aGNkV2JINWN4VkNVMWlJbVZuYU9kYU5ETGt6bkZ4WGgyNkp2NXEraUx4?= =?utf-8?B?SUVQSGZyM200SVhRT1ozby94dU9WVG9MOXA4aG10QUNScDNVYTN5TVFpdUpL?= =?utf-8?B?NGVBUkV3Zlc1aXpMekx0Q1dyKzdmNCtybSszZUo2VXhuM1pncUJyV3VkOTR3?= =?utf-8?B?RytGcXBETCtMSEw3VCtod25RTG1xU3FDQ1c0M2hPZWl5dEtqcWdTak1kVzVQ?= =?utf-8?B?eEJDVkFVVG9xUzRiT2lULzgwUzF0aGdGbmY2RVZsTXRTVUsybHVwR2huNjIw?= =?utf-8?B?UFM2NEdUcTRBRVJxWE1GaklqbDZJdHJwU2hpQlpEQnRXMWt0TGNXQVBBam91?= =?utf-8?B?aUxhTzVmQmJqRmZGT2ZRLzhJalp6YzFreUR4bjNmRm5xQUg4QWgxOFpnTG9E?= =?utf-8?B?bG1XdkxRbm9FUjgyVmFiMmNURmZIbEsxcnNYNU9NOFAvdjh3eU5XN25SblBv?= =?utf-8?B?ZlkwZTZ2bU43UnFQd0V6U1pCaXRzVUNCb0loeEhIcVVMWmhkcWtrYXUwSWhQ?= =?utf-8?B?SFBGZzNOeXZjdjAwVW50cCtTQXlweWRWc0gxSWhQSnZsMTErTUszRENJTVZY?= =?utf-8?B?ZDBucFJCTlBhZldWZC9peGZVbEh5NGRYVWZRd2pLdWg2VTgxZ09Ic3RWL2NH?= =?utf-8?B?MDg4Z1B0WXpDclMxQndKb05PUk5vUVplN3lkbTJjV0RrT09GalRvVkgvZmpI?= =?utf-8?B?Znk0VVRBaUZTOTVJM1hXTnZBRnJuTS95b05HRmowRUllWEJRZXh6cjg1UWgx?= =?utf-8?Q?tKLje/IObOFSXA7cc0k+AEDdW?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1818f9fa-3db8-4c3a-a0cb-08dc62d04cd4 X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3849.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Apr 2024 13:29:56.2907 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U/SrHYIoy6AkNrKXwoTAC+XaOzFyFW4PrUcZog9mwQx//YZ5QC/19i7kMlvXFGdx X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8085 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240422_063006_546570_735820C5 X-CRM114-Status: GOOD ( 29.27 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBcHIgMTksIDIwMjQgYXQgMDk6MDc6MTlQTSArMDAwMCwgTW9zdGFmYSBTYWxlaCB3 cm90ZToKPiA+IC0JY2RwdHIgPSBhcm1fc21tdV9nZXRfY2RfcHRyKG1hc3Rlciwgc3NpZCk7Cj4g PiAtCWlmICghY2RwdHIpCj4gPiArCWNkX3RhYmxlX2VudHJ5ID0gYXJtX3NtbXVfZ2V0X2NkX3B0 cihtYXN0ZXIsIHNzaWQpOwo+ID4gKwlpZiAoIWNkX3RhYmxlX2VudHJ5KQo+ID4gIAkJcmV0dXJu IC1FTk9NRU07Cj4gPiAgCj4gPiArCXRhcmdldCA9ICpjZF90YWJsZV9lbnRyeTsKPiAKPiBBcyB0 aGlzIGNoYW5nZXMgdGhlIGxvZ2ljIHdoZXJlIGFsbCBDRCBtYW5pcHVsYXRpb24gaXMgbm90IG9u IHRoZSBhY3R1YWwKPiBDRCwgSSBiZWxpZXZlIGEgY29tbWVudCB3b3VsZCBiZSBoZWxwZnVsIGhl cmUuCgpUaGlzIGlzIGFsbCBkZWxldGVkIGluIGEgZmV3IHBhdGNoZXMsIGRvZXNuJ3Qgc2VlbSB3 b3J0aCBpdCB0bwptZS4gVGhlc2Ugc3RlcHMgZXhpc3Qgb25seSBmb3IgYmlzZWN0aW9uLgoKPiA+ IEBAIC0xMjk5LDE4ICsxMzU3LDE0IEBAIGludCBhcm1fc21tdV93cml0ZV9jdHhfZGVzYyhzdHJ1 Y3QgYXJtX3NtbXVfbWFzdGVyICptYXN0ZXIsIGludCBzc2lkLAo+ID4gIAkJaWYgKGNkX3RhYmxl LT5zdGFsbF9lbmFibGVkKQo+ID4gIAkJCXZhbCB8PSBDVFhERVNDX0NEXzBfUzsKPiA+ICAJfQo+ ID4gLQo+ID4gKwljZHB0ci0+ZGF0YVswXSA9IGNwdV90b19sZTY0KHZhbCk7Cj4gPiAgCS8qCj4g PiAtCSAqIFRoZSBTTU1VIGFjY2Vzc2VzIDY0LWJpdCB2YWx1ZXMgYXRvbWljYWxseS4gU2VlIElI STAwNzBDYSAzLjIxLjMKPiA+IC0JICogIkNvbmZpZ3VyYXRpb24gc3RydWN0dXJlcyBhbmQgY29u ZmlndXJhdGlvbiBpbnZhbGlkYXRpb24gY29tcGxldGlvbiIKPiA+IC0JICoKPiA+IC0JICogICBU aGUgc2l6ZSBvZiBzaW5nbGUtY29weSBhdG9taWMgcmVhZHMgbWFkZSBieSB0aGUgU01NVSBpcwo+ ID4gLQkgKiAgIElNUExFTUVOVEFUSU9OIERFRklORUQgYnV0IG11c3QgYmUgYXQgbGVhc3QgNjQg Yml0cy4gQW55IHNpbmdsZQo+ID4gLQkgKiAgIGZpZWxkIHdpdGhpbiBhbiBhbGlnbmVkIDY0LWJp dCBzcGFuIG9mIGEgc3RydWN0dXJlIGNhbiBiZSBhbHRlcmVkCj4gPiAtCSAqICAgd2l0aG91dCBm aXJzdCBtYWtpbmcgdGhlIHN0cnVjdHVyZSBpbnZhbGlkLgo+ID4gKwkgKiBTaW5jZSB0aGUgYWJv dmUgaXMgdXBkYXRpbmcgdGhlIENEIGVudHJ5IGJhc2VkIG9uIHRoZSBjdXJyZW50IHZhbHVlCj4g PiArCSAqIHdpdGhvdXQgemVyb2luZyB1bnVzZWQgYml0cyBpdCBuZWVkcyBmaXhpbmcgYmVmb3Jl IGJlaW5nIHBhc3NlZCB0bwo+ID4gKwkgKiB0aGUgcHJvZ3JhbW1pbmcgbG9naWMuCj4gPiAgCSAq Lwo+ID4gLQlXUklURV9PTkNFKGNkcHRyLT5kYXRhWzBdLCBjcHVfdG9fbGU2NCh2YWwpKTsKPiA+ IC0JYXJtX3NtbXVfc3luY19jZChtYXN0ZXIsIHNzaWQsIHRydWUpOwo+ID4gKwlhcm1fc21tdV9j bGVhbl9jZF9lbnRyeSgmdGFyZ2V0KTsKPiAKPiBJIGFtIG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB0 aGUgbG9naWMgaGVyZSwgaXMgdGhhdCBvbmx5IG5lZWRlZCBmb3IgZW50cnlbMF0KPiBBcyBJIHNl ZSB0aGUgb3RoZXIgZW50cmllcyBhcmUgc2V0IGFuZCBub3QgcmV1c2VkLgoKSSdtIG5vdCBzdXJl IHdoYXQgeW91IGFyZSBhc2tpbmc/CgpUaGUgaXNzdWUgaXMgdGhlIG9sZCBsb2dpYyBjb25zdHJ1 Y3RzIHRoZSBuZXcgQ0QgYnkgbWFuaXB1bGF0aW5nIHRoZQpleGlzdGluZyBDRCBpbiB2YXJpb3Vz IHdheXMgImluIHBsYWNlIiB0aGF0IGVuZHMgdXAgY3JlYXRpbmcgQ0RzIHRoYXQKZG9uJ3QgbWVl dCB0aGUgcmVxdWlyZW1lbnRzIGZvciB0aGUgbmV3IHByb2dyYW1tZXIuIEZvciBpbnN0YW5jZSBF UEQwCndpbGwgYmUgc2V0IGFuZCB0aGUgVFRCMCB3aWxsIGFsc28gYmUgbGVmdCBwcm9ncmFtbWVk LgoKPiBJZiBzbywgSSB0aGluayBpdOKAmWQgYmUgYmV0dGVyIHRvIG1ha2UgdGhhdCBjbGVhciwg YWxzbyBhcyB1c2VkX2JpdHMKPiBhcmUgYWx3YXlzIDB4ZmYgZm9yIGFsbCBjYXNlcywgSSBiZWxp ZXZlIHRoZSBFUEQwIGxvZ2ljIHNob3VsZCBiZQo+IGludGVncmF0ZWQgaW4gcG9wdWxhdGluZyB0 aGUgQ0Qgc28gaXQgaXMgY29ycmVjdCBieSBjb25zdHJ1Y3Rpb24sIGFzCj4gdGhpcyBsb29rcyBs aWtlIGEgaGFjayB0byBtZS4KClllcywgdGhpcyBpcyB3aGF0IGhhcHBlbnMsIGluIGEgZmV3IG1v cmUgc3RlcHMuIFdlIGhhdmUgdG8gZ28gYW5kCmJ1aWxkIHRoZSBtaXNzaW5nIG1ha2UgZnVuY3Rp b25zIGZpcnN0LgoKVGhlcmUgaXMgYSBiaXQgb2YgYSBjaXJjdWxhciBwcm9ibGVtIGhlcmU6IHRo ZSBuZXcgc2NoZW1lIGV4cGVjdHMgdGhhdAp0aGUgQ0QgaXMgb25seSBwcm9ncmFtbWVkIGJ5IHRo ZSBuZXcgc2NoZW1lIGFuZCBmb2xsb3dzIHRoZSBydWxlcyAtIGVnCm5vIHVudXNlZCBiaXRzIHNl dC4gV2hpbGUgdGhlIG9sZCBzY2hlbWUgZG9lc24ndCBmb2xsb3cgdGhlIHJ1bGVzLgoKU28gdGhp cyBwYXRjaCBtYWtlcyB0aGUgb2xkIHNjaGVtZSBmb2xsb3cgdGhlIHJ1bGVzIGFuZCBiZSBjb21w YXRpYmxlCndpdGggdGhlIG5ldyBzY2hlbWUgdGhlbiB3ZSBnbyBwbGFjZSBieSBwbGFjZSBhbmQg Y29udmVydCB0byB0aGUgbmV3CnNjaGVtZS4gVGhlbiB3ZSByZW1vdmUgdGhlIG9sZCBzY2hlbWUg ZW50aXJlbHkuIExvb2sgYXQgdGhlICJNb3ZlIHRoZQpDRCBnZW5lcmF0aW9uIGZvciBTVkEgaW50 byBhIGZ1bmN0aW9uIiBwYXRjaC4KClllcywgdGhpcyBpcyBhIG1pbmltYWwgaGFjayB0byBsZXQg dGhlIG5leHQgZmV3IHBhdGNoZXMgd29yayBvdXQKY29ycmVjdGx5IHdpdGhvdXQgYnJlYWtpbmcg YmlzZWN0aW9uLgoKSG93IGFib3V0IGEgbmV3IGNvbW1pdCBtZXNzYWdlOgoKaW9tbXUvYXJtLXNt bXUtdjM6IE1ha2UgQ0QgcHJvZ3JhbW1pbmcgdXNlIGFybV9zbW11X3dyaXRlX2VudHJ5KCkKCkNE IHRhYmxlIGVudHJpZXMgYW5kIFNURSdzIGhhdmUgdGhlIHNhbWUgZXNzZW50aWFsIHByb2dyYW1t aW5nIHNlcXVlbmNlLApqdXN0IHdpdGggZGlmZmVyZW50IHR5cGVzLiBVc2UgdGhlIG5ldyBvcHMg aW5kaXJlY3Rpb24gdG8gbGluayBDRApwcm9ncmFtbWluZyB0byB0aGUgY29tbW9uIHdyaXRlci4K CkluIGEgZmV3IG1vcmUgcGF0Y2hlcyBhbGwgQ0Qgd3JpdGVycyB3aWxsIGNhbGwgYW4gYXBwcm9w cmlhdGUgbWFrZQpmdW5jdGlvbiBhbmQgdGhlbiBkaXJlY3RseSBjYWxsIGFybV9zbW11X3dyaXRl X2NkX2VudHJ5KCkuCmFybV9zbW11X3dyaXRlX2N0eF9kZXNjKCkgd2lsbCBiZSByZW1vdmVkLgoK VW50aWwgdGhlbiBsaWdodGx5IHR3ZWFrIGFybV9zbW11X3dyaXRlX2N0eF9kZXNjKCkgdG8gYWxz byB1c2UgdGhlIG5ldwpwcm9ncmFtbWVyIGJ5IHVzaW5nIHRoZSBzYW1lIGxvZ2ljIGFzIHJpZ2h0 IG5vdyB0byBidWlsZCB0aGUgdGFyZ2V0IENEIG9uCnRoZSBzdGFjaywgc2FuaXRpemluZyBpdCB0 byBtZWV0IHRoZSB1c2VkIHJ1bGVzLCBhbmQgdGhlbiB1c2luZyB0aGUKd3JpdGVyLgoKVGhpcyBp cyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgd3JpdGVyIGV4cGVjdHMgdGhhdCB0aGUgY3VycmVudGx5 IHByb2dyYW1tZWQKQ0QgZm9sbG93cyB0aGUgdXNlZCBydWxlcy4gTmV4dCBwYXRjaGVzIGFkZCBu ZXcgbWFrZSBmdW5jdGlvbnMgYW5kIG5ldwpkaXJlY3QgY2FsbHMgdG8gYXJtX3NtbXVfd3JpdGVf Y2RfZW50cnkoKSB3aGljaCB3aWxsIHJlcXVpcmUgdGhpcy4KCkphc29uCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==