From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C8EF8121E for ; Tue, 23 Jan 2024 20:10:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=140.211.166.133 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706040602; cv=none; b=p9w8gCh+ehmXLMUKNdV/cFLqvQ1bVkuOWa1u6LDXE86HM/Tx9p1AZD8vEky60DD9I754xWvkZ2p+y3BLD4AwS5IfYeTOLewtfKFF/c0lKPNIaoM1Mf20lbJqkKgDbj4nt6VfYyw7QR24MRBsgM6Vh/3xTyP6qxceo3T2T8P6j/I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706040602; c=relaxed/simple; bh=Gy2ZosMw33QWUPFe3CLGF4LeOxXT/dQS/f1OITEJhes=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=cMyYzMwvcrdxgdjcNXh6QwFqog7TJZbScl90+if9ZKwzgCICWcG9JJDMvZxs7qGRkf1G1P0Cs9BatLLjE9YLcY1bd73ZROeq18Cila+pZcenUTNeMdKUo1HJ9PUoaotCaOdgv1l0cD1FjkW9ubWNzYOjxr/FGg5XycJHc9Rp3k8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b=mo2Zx6Z0; arc=none smtp.client-ip=140.211.166.133 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.b="mo2Zx6Z0" Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id DA23340462 for ; Tue, 23 Jan 2024 20:09:59 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org DA23340462 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key) header.d=armlinux.org.uk header.i=@armlinux.org.uk header.a=rsa-sha256 header.s=pandora-2019 header.b=mo2Zx6Z0 X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -2.098 X-Spam-Level: Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2fkuQgcLNi57 for ; Tue, 23 Jan 2024 20:09:58 +0000 (UTC) Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [IPv6:2001:4d48:ad52:32c8:5054:ff:fe00:142]) by smtp2.osuosl.org (Postfix) with ESMTPS id 34BA5403FF for ; Tue, 23 Jan 2024 20:09:57 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 34BA5403FF DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version: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-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=VIjAJAiY6Q9G9FoJG4YRBh3btkbAjBGzI4MzzPeuFAc=; b=mo2Zx6Z0lCQ+Fn5V67qu2xgiGX Glqk/9IwtdbQRpWhKW+6yXdZQbtJFK1V7kjJTrjqejm/3gcOAlfcqaVJBh2jttQgu/6SoudEHU+nA jkvOWxwsHK1AxcH/WIkl2YmhTgeq59PPLxgFn5BXOfi/BZSbmdatafMWkHpoBXO5LvcysxYfPqAnF 5vNIlvv7sK/lMKvEJy61p/9wl5gzosZutRwPuL4Frt/jMgatZWEhry6YDuYEkEYqNguuCPYR9XVyP zS5mKoaVV05eNAtlqm8VtMMzC/1R4MjeukJPCGrch28HT6TPMW/1dwpLSfLeS+Z69nLev1FuAXr5q LpNfuuSA==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:33240) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rSN5Y-00031y-2n; Tue, 23 Jan 2024 20:09:40 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rSN5V-0002Do-8S; Tue, 23 Jan 2024 20:09:37 +0000 Date: Tue, 23 Jan 2024 20:09:37 +0000 From: "Russell King (Oracle)" To: "Rafael J. Wysocki" Cc: Jonathan Cameron , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, acpica-devel@lists.linuxfoundation.org, linux-csky@vger.kernel.org, linux-doc@vger.kernel.org, linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, Salil Mehta , Jean-Philippe Brucker , jianyong.wu@arm.com, justin.he@arm.com, James Morse Subject: Re: [PATCH RFC v3 05/21] ACPI: Rename ACPI_HOTPLUG_CPU to include 'present' Message-ID: References: <20240122180013.000016d5@Huawei.com> Precedence: bulk X-Mailing-List: acpica-devel@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Sender: Russell King (Oracle) On Tue, Jan 23, 2024 at 08:27:05PM +0100, Rafael J. Wysocki wrote: > On Tue, Jan 23, 2024 at 7:59 PM Russell King (Oracle) > wrote: > > > > On Tue, Jan 23, 2024 at 07:26:57PM +0100, Rafael J. Wysocki wrote: > > > On Tue, Jan 23, 2024 at 7:20 PM Russell King (Oracle) > > > wrote: > > > > > > > > On Tue, Jan 23, 2024 at 06:43:59PM +0100, Rafael J. Wysocki wrote: > > > > > On Tue, Jan 23, 2024 at 5:36 PM Russell King (Oracle) > > > > > wrote: > > > > > > > > > > > > On Tue, Jan 23, 2024 at 05:15:54PM +0100, Rafael J. Wysocki wrote: > > > > > > > On Tue, Jan 23, 2024 at 2:28 PM Russell King (Oracle) > > > > > > > wrote: > > > > > > > > > > > > > > > > On Mon, Jan 22, 2024 at 06:00:13PM +0000, Jonathan Cameron wrote: > > > > > > > > > On Mon, 18 Dec 2023 21:35:16 +0100 > > > > > > > > > "Rafael J. Wysocki" wrote: > > > > > > > > > > > > > > > > > > > On Wed, Dec 13, 2023 at 1:49 PM Russell King wrote: > > > > > > > > > > > > > > > > > > > > > > From: James Morse > > > > > > > > > > > > > > > > > > > > > > The code behind ACPI_HOTPLUG_CPU allows a not-present CPU to become > > > > > > > > > > > present. > > > > > > > > > > > > > > > > > > > > Right. > > > > > > > > > > > > > > > > > > > > > This isn't the only use of HOTPLUG_CPU. On arm64 and riscv > > > > > > > > > > > CPUs can be taken offline as a power saving measure. > > > > > > > > > > > > > > > > > > > > But still there is the case in which a non-present CPU can become > > > > > > > > > > present, isn't it there? > > > > > > > > > > > > > > > > > > Not yet defined by the architectures (and I'm assuming it probably never will be). > > > > > > > > > > > > > > > > > > The original proposal we took to ARM was to do exactly that - they pushed > > > > > > > > > back hard on the basis there was no architecturally safe way to implement it. > > > > > > > > > Too much of the ARM arch has to exist from the start of time. > > > > > > > > > > > > > > > > > > https://lore.kernel.org/linux-arm-kernel/cbaa6d68-6143-e010-5f3c-ec62f879ad95@arm.com/ > > > > > > > > > is one of the relevant threads of the kernel side of that discussion. > > > > > > > > > > > > > > > > > > Not to put specific words into the ARM architects mouths, but the > > > > > > > > > short description is that there is currently no demand for working > > > > > > > > > out how to make physical CPU hotplug possible, as such they will not > > > > > > > > > provide an architecturally compliant way to do it for virtual CPU hotplug and > > > > > > > > > another means is needed (which is why this series doesn't use the present bit > > > > > > > > > for that purpose and we have the Online capable bit in MADT/GICC) > > > > > > > > > > > > > > > > > > It was a 'fun' dance of several years to get to that clarification. > > > > > > > > > As another fun fact, the same is defined for x86, but I don't think > > > > > > > > > anyone has used it yet (GICC for ARM has an online capable bit in the flags to > > > > > > > > > enable this, which was remarkably similar to the online capable bit in the > > > > > > > > > flags of the Local APIC entries as added fairly recently). > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On arm64 an offline CPU may be disabled by firmware, preventing it from > > > > > > > > > > > being brought back online, but it remains present throughout. > > > > > > > > > > > > > > > > > > > > > > Adding code to prevent user-space trying to online these disabled CPUs > > > > > > > > > > > needs some additional terminology. > > > > > > > > > > > > > > > > > > > > > > Rename the Kconfig symbol CONFIG_ACPI_HOTPLUG_PRESENT_CPU to reflect > > > > > > > > > > > that it makes possible CPUs present. > > > > > > > > > > > > > > > > > > > > Honestly, I don't think that this change is necessary or even useful. > > > > > > > > > > > > > > > > > > Whilst it's an attempt to avoid future confusion, the rename is > > > > > > > > > not something I really care about so my advice to Russell is drop > > > > > > > > > it unless you are attached to it! > > > > > > > > > > > > > > > > While I agree that it isn't a necessity, I don't fully agree that it > > > > > > > > isn't useful. > > > > > > > > > > > > > > > > One of the issues will be that while Arm64 will support hotplug vCPU, > > > > > > > > it won't be setting ACPI_HOTPLUG_CPU because it doesn't support > > > > > > > > the present bit changing. So I can see why James decided to rename > > > > > > > > it - because with Arm64's hotplug vCPU, the idea that ACPI_HOTPLUG_CPU > > > > > > > > somehow enables hotplug CPU support is now no longer true. > > > > > > > > > > > > > > > > Keeping it as ACPI_HOTPLUG_CPU makes the code less obvious, because it > > > > > > > > leads one to assume that it ought to be enabled for Arm64's > > > > > > > > implementatinon, and that could well cause issues in the future if > > > > > > > > people make the assumption that "ACPI_HOTPLUG_CPU" means hotplug CPU > > > > > > > > is supported in ACPI. It doesn't anymore. > > > > > > > > > > > > > > On x86 there is no confusion AFAICS. It's always meant "as long as > > > > > > > the platform supports it". > > > > > > > > > > > > That's x86, which supports physical CPU hotplug. We're introducing > > > > > > support for Arm64 here which doesn't support physical CPU hotplug. > > > > > > > > > > > > ACPI-based Physical Virtual > > > > > > Arch HOTPLUG_CPU ACPI_HOTPLUG_CPU Hotplug Hotplug Hotplug > > > > > > Arm64 Y N Y N Y > > > > > > x86 Y Y Y Y Y > > > > > > > > > > > > So ACPI_HOTPLUG_CPU becomes totally misnamed with the introduction > > > > > > of hotplug on Arm64. > > > > > > > > > > > > If we want to just look at stuff from an x86 perspective, then yes, > > > > > > it remains correct to call it ACPI_HOTPLUG_CPU. It isn't correct as > > > > > > soon as we add Arm64, as I already said. > > > > > > > > > > And if you rename it, it becomes less confusing for ARM64, but more > > > > > confusing for x86, which basically is my point. > > > > > > > > > > IMO "hotplug" covers both cases well enough and "hotplug present" is > > > > > only accurate for one of them. > > > > > > > > > > > And honestly, a two line quip to my reasoned argument is not IMHO > > > > > > an acceptable reply. > > > > > > > > > > Well, I'm not even sure how to respond to this ... > > > > > > > > The above explanation you give would have been useful... > > > > > > > > I don't see how "hotplug" covers both cases. As I've tried to point > > > > out many times now, ACPI_HOTPLUG_CPU is N for Arm64, yet it supports > > > > ACPI based hotplug. How does ACPI_HOTPLUG_CPU cover Arm64 if it's > > > > N there? > > > > > > But IIUC this change is preliminary for changing it (or equivalent > > > option with a different name) to Y, isn't it? > > > > No. As I keep saying, ACPI_HOTPLUG_CPU ends up N on Arm64 even when > > it supports hotplug CPU via ACPI. > > > > Even with the full Arm64 patch set here, under arch/ we still only > > have: > > > > arch/loongarch/Kconfig: select ACPI_HOTPLUG_PRESENT_CPU if ACPI_PROCESSOR && HOTPLUG_CPU > > arch/x86/Kconfig: select ACPI_HOTPLUG_PRESENT_CPU if ACPI_PROCESSOR && HOTPLUG_CPU > > > > To say it yet again, ACPI_HOTPLUG_(PRESENT_)CPU is *never* set on > > Arm64. > > Allright, so ARM64 is not going to use the code that is conditional on > ACPI_HOTPLUG_CPU today. > > Fair enough. > > > > > IMHO it totally doesn't, and moreover, it goes against what > > > > one would logically expect - and this is why I have a problem with > > > > your effective NAK for this change. I believe you are basically > > > > wrong on this for the reasons I've given - that ACPI_HOTPLUG_CPU > > > > will be N for Arm64 despite it supporting ACPI-based CPU hotplug. > > > > > > So I still have to understand how renaming it for all architectures > > > (including x86) is supposed to help. > > > > > > It will still be the same option under a different name. How does > > > that change things technically? > > > > Do you think that it makes any sense to have support for ACPI-based > > hotplug CPU > > So this is all about what you and I mean by "ACPI-based hotplug CPU". > > > *and* having it functional with a configuration symbol > > named "ACPI_HOTPLUG_CPU" to be set to N ? That's essentially what > > you are advocating for... > > Setting ACPI_HOTPLUG_CPU to N means that you are not going to compile > the code that is conditional on it. > > That code allows the processor driver to be removed from CPUs and > arch_unregister_cpu() to be called from within acpi_bus_trim() (among > other things). On the way up, it allows arch_register_cpu() to be > called from within acpi_bus_scan(). If these things are not done, > what I mean by "ACPI-based hotplug CPU" is not supported. Even on Arm64, arch_register_cpu() and arch_unregister_cpu() will be called when the CPU in the VM is hot-removed or hot-added... -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last! 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 CBA5AC47DDB for ; Tue, 23 Jan 2024 20:10:10 +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:In-Reply-To:MIME-Version: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=YW+mjHnpGbyCFCixgpyDQD1kuDBkVF6+WpRdMoCppE4=; b=ptpJTZ6Uq9a6oJ famWNIe/O+l9t8EQh5Ajqpd8Wm+mTnEIb9zJprrZdQSiPEpUWmu5//dalit/2gGQrk2LMC4lUvZy+ frL0XcYAlDk+RMo9JU9wuQlb8YwLw4NjZihgp45my+g6MCdw1hfRRUOWndOh/sdVEMxtdank2EGKk rd4FArQJSPvV4Vx6lC/ycC2JPMhIYWr0FI/U+iVHgMUTdurVA+ZTUoxymuHWTDSRcTKJkll3lTZTz 71fCsutlgbzpQTCJy3JIXRBkmeC3hq47li9z6LzN4XQ3KD4+5M0W1H2IAypd+3mexz3MZ/hFBq9jV MXZkl7LJ3HkT/OaQ3Dww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSN5o-000Llv-0P; Tue, 23 Jan 2024 20:09:56 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rSN5j-000Ljg-2T; Tue, 23 Jan 2024 20:09:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version: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-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=VIjAJAiY6Q9G9FoJG4YRBh3btkbAjBGzI4MzzPeuFAc=; b=mo2Zx6Z0lCQ+Fn5V67qu2xgiGX Glqk/9IwtdbQRpWhKW+6yXdZQbtJFK1V7kjJTrjqejm/3gcOAlfcqaVJBh2jttQgu/6SoudEHU+nA jkvOWxwsHK1AxcH/WIkl2YmhTgeq59PPLxgFn5BXOfi/BZSbmdatafMWkHpoBXO5LvcysxYfPqAnF 5vNIlvv7sK/lMKvEJy61p/9wl5gzosZutRwPuL4Frt/jMgatZWEhry6YDuYEkEYqNguuCPYR9XVyP zS5mKoaVV05eNAtlqm8VtMMzC/1R4MjeukJPCGrch28HT6TPMW/1dwpLSfLeS+Z69nLev1FuAXr5q LpNfuuSA==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:33240) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rSN5Y-00031y-2n; Tue, 23 Jan 2024 20:09:40 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rSN5V-0002Do-8S; Tue, 23 Jan 2024 20:09:37 +0000 Date: Tue, 23 Jan 2024 20:09:37 +0000 From: "Russell King (Oracle)" To: "Rafael J. Wysocki" Cc: Jonathan Cameron , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, acpica-devel@lists.linuxfoundation.org, linux-csky@vger.kernel.org, linux-doc@vger.kernel.org, linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, Salil Mehta , Jean-Philippe Brucker , jianyong.wu@arm.com, justin.he@arm.com, James Morse Subject: Re: [PATCH RFC v3 05/21] ACPI: Rename ACPI_HOTPLUG_CPU to include 'present' Message-ID: References: <20240122180013.000016d5@Huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240123_120951_959244_CEEE1B75 X-CRM114-Status: GOOD ( 67.42 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDg6Mjc6MDVQTSArMDEwMCwgUmFmYWVsIEouIFd5c29j a2kgd3JvdGU6Cj4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgNzo1OeKAr1BNIFJ1c3NlbGwgS2lu ZyAoT3JhY2xlKQo+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4KPiA+IE9uIFR1 ZSwgSmFuIDIzLCAyMDI0IGF0IDA3OjI2OjU3UE0gKzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdy b3RlOgo+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA3OjIw4oCvUE0gUnVzc2VsbCBLaW5n IChPcmFjbGUpCj4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+Cj4g PiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDY6NDM6NTlQTSArMDEwMCwgUmFmYWVsIEou IFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA1OjM24oCv UE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4gPiA8bGludXhAYXJtbGludXgub3JnLnVr PiB3cm90ZToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQg MDU6MTU6NTRQTSArMDEwMCwgUmFmYWVsIEouIFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiA+ID4g T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMjoyOOKAr1BNIFJ1c3NlbGwgS2luZyAoT3JhY2xlKQo+ ID4gPiA+ID4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+IE9uIE1vbiwgSmFuIDIyLCAyMDI0IGF0IDA2OjAwOjEzUE0gKzAw MDAsIEpvbmF0aGFuIENhbWVyb24gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+IE9uIE1vbiwgMTgg RGVjIDIwMjMgMjE6MzU6MTYgKzAxMDAKPiA+ID4gPiA+ID4gPiA+ID4gIlJhZmFlbCBKLiBXeXNv Y2tpIiA8cmFmYWVsQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+IE9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDE6NDnigK9QTSBSdXNzZWxsIEtp bmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBKYW1lcyBNb3JzZSA8amFtZXMubW9yc2VA YXJtLmNvbT4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUg Y29kZSBiZWhpbmQgQUNQSV9IT1RQTFVHX0NQVSBhbGxvd3MgYSBub3QtcHJlc2VudCBDUFUgdG8g YmVjb21lCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBwcmVzZW50Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gUmlnaHQuCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IFRoaXMgaXNuJ3QgdGhlIG9ubHkgdXNlIG9mIEhPVFBMVUdfQ1BVLiBPbiBh cm02NCBhbmQgcmlzY3YKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IENQVXMgY2FuIGJlIHRha2VuIG9m ZmxpbmUgYXMgYSBwb3dlciBzYXZpbmcgbWVhc3VyZS4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gPiA+IEJ1dCBzdGlsbCB0aGVyZSBpcyB0aGUgY2FzZSBpbiB3aGljaCBhIG5v bi1wcmVzZW50IENQVSBjYW4gYmVjb21lCj4gPiA+ID4gPiA+ID4gPiA+ID4gcHJlc2VudCwgaXNu J3QgaXQgdGhlcmU/Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IE5vdCB5ZXQg ZGVmaW5lZCBieSB0aGUgYXJjaGl0ZWN0dXJlcyAoYW5kIEknbSBhc3N1bWluZyBpdCBwcm9iYWJs eSBuZXZlciB3aWxsIGJlKS4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gVGhl IG9yaWdpbmFsIHByb3Bvc2FsIHdlIHRvb2sgdG8gQVJNIHdhcyB0byBkbyBleGFjdGx5IHRoYXQg LSB0aGV5IHB1c2hlZAo+ID4gPiA+ID4gPiA+ID4gPiBiYWNrIGhhcmQgb24gdGhlIGJhc2lzIHRo ZXJlIHdhcyBubyBhcmNoaXRlY3R1cmFsbHkgc2FmZSB3YXkgdG8gaW1wbGVtZW50IGl0Lgo+ID4g PiA+ID4gPiA+ID4gPiBUb28gbXVjaCBvZiB0aGUgQVJNIGFyY2ggaGFzIHRvIGV4aXN0IGZyb20g dGhlIHN0YXJ0IG9mIHRpbWUuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvY2JhYTZkNjgtNjE0My1lMDEw LTVmM2MtZWM2MmY4NzlhZDk1QGFybS5jb20vCj4gPiA+ID4gPiA+ID4gPiA+IGlzIG9uZSBvZiB0 aGUgcmVsZXZhbnQgdGhyZWFkcyBvZiB0aGUga2VybmVsIHNpZGUgb2YgdGhhdCBkaXNjdXNzaW9u Lgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBOb3QgdG8gcHV0IHNwZWNpZmlj IHdvcmRzIGludG8gdGhlIEFSTSBhcmNoaXRlY3RzIG1vdXRocywgYnV0IHRoZQo+ID4gPiA+ID4g PiA+ID4gPiBzaG9ydCBkZXNjcmlwdGlvbiBpcyB0aGF0IHRoZXJlIGlzIGN1cnJlbnRseSBubyBk ZW1hbmQgZm9yIHdvcmtpbmcKPiA+ID4gPiA+ID4gPiA+ID4gb3V0IGhvdyB0byBtYWtlIHBoeXNp Y2FsIENQVSBob3RwbHVnIHBvc3NpYmxlLCBhcyBzdWNoIHRoZXkgd2lsbCBub3QKPiA+ID4gPiA+ ID4gPiA+ID4gcHJvdmlkZSBhbiBhcmNoaXRlY3R1cmFsbHkgY29tcGxpYW50IHdheSB0byBkbyBp dCBmb3IgdmlydHVhbCBDUFUgaG90cGx1ZyBhbmQKPiA+ID4gPiA+ID4gPiA+ID4gYW5vdGhlciBt ZWFucyBpcyBuZWVkZWQgKHdoaWNoIGlzIHdoeSB0aGlzIHNlcmllcyBkb2Vzbid0IHVzZSB0aGUg cHJlc2VudCBiaXQKPiA+ID4gPiA+ID4gPiA+ID4gZm9yIHRoYXQgcHVycG9zZSBhbmQgd2UgaGF2 ZSB0aGUgT25saW5lIGNhcGFibGUgYml0IGluIE1BRFQvR0lDQykKPiA+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4gSXQgd2FzIGEgJ2Z1bicgZGFuY2Ugb2Ygc2V2ZXJhbCB5ZWFycyB0 byBnZXQgdG8gdGhhdCBjbGFyaWZpY2F0aW9uLgo+ID4gPiA+ID4gPiA+ID4gPiBBcyBhbm90aGVy IGZ1biBmYWN0LCB0aGUgc2FtZSBpcyBkZWZpbmVkIGZvciB4ODYsIGJ1dCBJIGRvbid0IHRoaW5r Cj4gPiA+ID4gPiA+ID4gPiA+IGFueW9uZSBoYXMgdXNlZCBpdCB5ZXQgKEdJQ0MgZm9yIEFSTSBo YXMgYW4gb25saW5lIGNhcGFibGUgYml0IGluIHRoZSBmbGFncyB0bwo+ID4gPiA+ID4gPiA+ID4g PiBlbmFibGUgdGhpcywgd2hpY2ggd2FzIHJlbWFya2FibHkgc2ltaWxhciB0byB0aGUgb25saW5l IGNhcGFibGUgYml0IGluIHRoZQo+ID4gPiA+ID4gPiA+ID4gPiBmbGFncyBvZiB0aGUgTG9jYWwg QVBJQyBlbnRyaWVzIGFzIGFkZGVkIGZhaXJseSByZWNlbnRseSkuCj4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIGFybTY0IGFuIG9m ZmxpbmUgQ1BVIG1heSBiZSBkaXNhYmxlZCBieSBmaXJtd2FyZSwgcHJldmVudGluZyBpdCBmcm9t Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZWluZyBicm91Z2h0IGJhY2sgb25saW5lLCBidXQgaXQg cmVtYWlucyBwcmVzZW50IHRocm91Z2hvdXQuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gQWRkaW5nIGNvZGUgdG8gcHJldmVudCB1c2VyLXNwYWNlIHRyeWluZyB0 byBvbmxpbmUgdGhlc2UgZGlzYWJsZWQgQ1BVcwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbmVlZHMg c29tZSBhZGRpdGlvbmFsIHRlcm1pbm9sb2d5Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+ID4gPiA+IFJlbmFtZSB0aGUgS2NvbmZpZyBzeW1ib2wgQ09ORklHX0FDUElfSE9U UExVR19QUkVTRU5UX0NQVSB0byByZWZsZWN0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IGl0 IG1ha2VzIHBvc3NpYmxlIENQVXMgcHJlc2VudC4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+IEhvbmVzdGx5LCBJIGRvbid0IHRoaW5rIHRoYXQgdGhpcyBjaGFuZ2UgaXMg bmVjZXNzYXJ5IG9yIGV2ZW4gdXNlZnVsLgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ID4gPiBXaGlsc3QgaXQncyBhbiBhdHRlbXB0IHRvIGF2b2lkIGZ1dHVyZSBjb25mdXNpb24sIHRo ZSByZW5hbWUgaXMKPiA+ID4gPiA+ID4gPiA+ID4gbm90IHNvbWV0aGluZyBJIHJlYWxseSBjYXJl IGFib3V0IHNvIG15IGFkdmljZSB0byBSdXNzZWxsIGlzIGRyb3AKPiA+ID4gPiA+ID4gPiA+ID4g aXQgdW5sZXNzIHlvdSBhcmUgYXR0YWNoZWQgdG8gaXQhCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gV2hpbGUgSSBhZ3JlZSB0aGF0IGl0IGlzbid0IGEgbmVjZXNzaXR5LCBJIGRvbid0 IGZ1bGx5IGFncmVlIHRoYXQgaXQKPiA+ID4gPiA+ID4gPiA+IGlzbid0IHVzZWZ1bC4KPiA+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBPbmUgb2YgdGhlIGlzc3VlcyB3aWxsIGJlIHRoYXQg d2hpbGUgQXJtNjQgd2lsbCBzdXBwb3J0IGhvdHBsdWcgdkNQVSwKPiA+ID4gPiA+ID4gPiA+IGl0 IHdvbid0IGJlIHNldHRpbmcgQUNQSV9IT1RQTFVHX0NQVSBiZWNhdXNlIGl0IGRvZXNuJ3Qgc3Vw cG9ydAo+ID4gPiA+ID4gPiA+ID4gdGhlIHByZXNlbnQgYml0IGNoYW5naW5nLiBTbyBJIGNhbiBz ZWUgd2h5IEphbWVzIGRlY2lkZWQgdG8gcmVuYW1lCj4gPiA+ID4gPiA+ID4gPiBpdCAtIGJlY2F1 c2Ugd2l0aCBBcm02NCdzIGhvdHBsdWcgdkNQVSwgdGhlIGlkZWEgdGhhdCBBQ1BJX0hPVFBMVUdf Q1BVCj4gPiA+ID4gPiA+ID4gPiBzb21laG93IGVuYWJsZXMgaG90cGx1ZyBDUFUgc3VwcG9ydCBp cyBub3cgbm8gbG9uZ2VyIHRydWUuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gS2Vl cGluZyBpdCBhcyBBQ1BJX0hPVFBMVUdfQ1BVIG1ha2VzIHRoZSBjb2RlIGxlc3Mgb2J2aW91cywg YmVjYXVzZSBpdAo+ID4gPiA+ID4gPiA+ID4gbGVhZHMgb25lIHRvIGFzc3VtZSB0aGF0IGl0IG91 Z2h0IHRvIGJlIGVuYWJsZWQgZm9yIEFybTY0J3MKPiA+ID4gPiA+ID4gPiA+IGltcGxlbWVudGF0 aW5vbiwgYW5kIHRoYXQgY291bGQgd2VsbCBjYXVzZSBpc3N1ZXMgaW4gdGhlIGZ1dHVyZSBpZgo+ ID4gPiA+ID4gPiA+ID4gcGVvcGxlIG1ha2UgdGhlIGFzc3VtcHRpb24gdGhhdCAiQUNQSV9IT1RQ TFVHX0NQVSIgbWVhbnMgaG90cGx1ZyBDUFUKPiA+ID4gPiA+ID4gPiA+IGlzIHN1cHBvcnRlZCBp biBBQ1BJLiBJdCBkb2Vzbid0IGFueW1vcmUuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBP biB4ODYgdGhlcmUgaXMgbm8gY29uZnVzaW9uIEFGQUlDUy4gIEl0J3MgYWx3YXlzIG1lYW50ICJh cyBsb25nIGFzCj4gPiA+ID4gPiA+ID4gdGhlIHBsYXRmb3JtIHN1cHBvcnRzIGl0Ii4KPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gVGhhdCdzIHg4Niwgd2hpY2ggc3VwcG9ydHMgcGh5c2ljYWwgQ1BV IGhvdHBsdWcuIFdlJ3JlIGludHJvZHVjaW5nCj4gPiA+ID4gPiA+IHN1cHBvcnQgZm9yIEFybTY0 IGhlcmUgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHBoeXNpY2FsIENQVSBob3RwbHVnLgo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBQ1BJLWJhc2VkICAgICAgUGh5c2ljYWwgICAgICAgIFZpcnR1YWwKPiA+ID4gPiA+ ID4gQXJjaCAgICBIT1RQTFVHX0NQVSAgICAgQUNQSV9IT1RQTFVHX0NQVSAgICAgICAgSG90cGx1 ZyAgICAgICAgIEhvdHBsdWcgICAgICAgICBIb3RwbHVnCj4gPiA+ID4gPiA+IEFybTY0ICAgWSAg ICAgICAgICAgICAgIE4gICAgICAgICAgICAgICAgICAgICAgIFkgICAgICAgICAgICAgICBOICAg ICAgICAgICAgICAgWQo+ID4gPiA+ID4gPiB4ODYgICAgIFkgICAgICAgICAgICAgICBZICAgICAg ICAgICAgICAgICAgICAgICBZICAgICAgICAgICAgICAgWSAgICAgICAgICAgICAgIFkKPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gU28gQUNQSV9IT1RQTFVHX0NQVSBiZWNvbWVzIHRvdGFsbHkgbWlz bmFtZWQgd2l0aCB0aGUgaW50cm9kdWN0aW9uCj4gPiA+ID4gPiA+IG9mIGhvdHBsdWcgb24gQXJt NjQuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IElmIHdlIHdhbnQgdG8ganVzdCBsb29rIGF0IHN0 dWZmIGZyb20gYW4geDg2IHBlcnNwZWN0aXZlLCB0aGVuIHllcywKPiA+ID4gPiA+ID4gaXQgcmVt YWlucyBjb3JyZWN0IHRvIGNhbGwgaXQgQUNQSV9IT1RQTFVHX0NQVS4gSXQgaXNuJ3QgY29ycmVj dCBhcwo+ID4gPiA+ID4gPiBzb29uIGFzIHdlIGFkZCBBcm02NCwgYXMgSSBhbHJlYWR5IHNhaWQu Cj4gPiA+ID4gPgo+ID4gPiA+ID4gQW5kIGlmIHlvdSByZW5hbWUgaXQsIGl0IGJlY29tZXMgbGVz cyBjb25mdXNpbmcgZm9yIEFSTTY0LCBidXQgbW9yZQo+ID4gPiA+ID4gY29uZnVzaW5nIGZvciB4 ODYsIHdoaWNoIGJhc2ljYWxseSBpcyBteSBwb2ludC4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBJTU8g ImhvdHBsdWciIGNvdmVycyBib3RoIGNhc2VzIHdlbGwgZW5vdWdoIGFuZCAiaG90cGx1ZyBwcmVz ZW50IiBpcwo+ID4gPiA+ID4gb25seSBhY2N1cmF0ZSBmb3Igb25lIG9mIHRoZW0uCj4gPiA+ID4g Pgo+ID4gPiA+ID4gPiBBbmQgaG9uZXN0bHksIGEgdHdvIGxpbmUgcXVpcCB0byBteSByZWFzb25l ZCBhcmd1bWVudCBpcyBub3QgSU1ITwo+ID4gPiA+ID4gPiBhbiBhY2NlcHRhYmxlIHJlcGx5Lgo+ ID4gPiA+ID4KPiA+ID4gPiA+IFdlbGwsIEknbSBub3QgZXZlbiBzdXJlIGhvdyB0byByZXNwb25k IHRvIHRoaXMgLi4uCj4gPiA+ID4KPiA+ID4gPiBUaGUgYWJvdmUgZXhwbGFuYXRpb24geW91IGdp dmUgd291bGQgaGF2ZSBiZWVuIHVzZWZ1bC4uLgo+ID4gPiA+Cj4gPiA+ID4gSSBkb24ndCBzZWUg aG93ICJob3RwbHVnIiBjb3ZlcnMgYm90aCBjYXNlcy4gQXMgSSd2ZSB0cmllZCB0byBwb2ludAo+ ID4gPiA+IG91dCBtYW55IHRpbWVzIG5vdywgQUNQSV9IT1RQTFVHX0NQVSBpcyBOIGZvciBBcm02 NCwgeWV0IGl0IHN1cHBvcnRzCj4gPiA+ID4gQUNQSSBiYXNlZCBob3RwbHVnLiBIb3cgZG9lcyBB Q1BJX0hPVFBMVUdfQ1BVIGNvdmVyIEFybTY0IGlmIGl0J3MKPiA+ID4gPiBOIHRoZXJlPwo+ID4g Pgo+ID4gPiBCdXQgSUlVQyB0aGlzIGNoYW5nZSBpcyBwcmVsaW1pbmFyeSBmb3IgY2hhbmdpbmcg aXQgKG9yIGVxdWl2YWxlbnQKPiA+ID4gb3B0aW9uIHdpdGggYSBkaWZmZXJlbnQgbmFtZSkgdG8g WSwgaXNuJ3QgaXQ/Cj4gPgo+ID4gTm8uIEFzIEkga2VlcCBzYXlpbmcsIEFDUElfSE9UUExVR19D UFUgZW5kcyB1cCBOIG9uIEFybTY0IGV2ZW4gd2hlbgo+ID4gaXQgc3VwcG9ydHMgaG90cGx1ZyBD UFUgdmlhIEFDUEkuCj4gPgo+ID4gRXZlbiB3aXRoIHRoZSBmdWxsIEFybTY0IHBhdGNoIHNldCBo ZXJlLCB1bmRlciBhcmNoLyB3ZSBzdGlsbCBvbmx5Cj4gPiBoYXZlOgo+ID4KPiA+IGFyY2gvbG9v bmdhcmNoL0tjb25maWc6IHNlbGVjdCBBQ1BJX0hPVFBMVUdfUFJFU0VOVF9DUFUgaWYgQUNQSV9Q Uk9DRVNTT1IgJiYgSE9UUExVR19DUFUKPiA+IGFyY2gveDg2L0tjb25maWc6ICAgICAgIHNlbGVj dCBBQ1BJX0hPVFBMVUdfUFJFU0VOVF9DUFUgICAgICAgICBpZiBBQ1BJX1BST0NFU1NPUiAmJiBI T1RQTFVHX0NQVQo+ID4KPiA+IFRvIHNheSBpdCB5ZXQgYWdhaW4sIEFDUElfSE9UUExVR18oUFJF U0VOVF8pQ1BVIGlzICpuZXZlciogc2V0IG9uCj4gPiBBcm02NC4KPiAKPiBBbGxyaWdodCwgc28g QVJNNjQgaXMgbm90IGdvaW5nIHRvIHVzZSB0aGUgY29kZSB0aGF0IGlzIGNvbmRpdGlvbmFsIG9u Cj4gQUNQSV9IT1RQTFVHX0NQVSB0b2RheS4KPiAKPiBGYWlyIGVub3VnaC4KPiAKPiA+ID4gPiBJ TUhPIGl0IHRvdGFsbHkgZG9lc24ndCwgYW5kIG1vcmVvdmVyLCBpdCBnb2VzIGFnYWluc3Qgd2hh dAo+ID4gPiA+IG9uZSB3b3VsZCBsb2dpY2FsbHkgZXhwZWN0IC0gYW5kIHRoaXMgaXMgd2h5IEkg aGF2ZSBhIHByb2JsZW0gd2l0aAo+ID4gPiA+IHlvdXIgZWZmZWN0aXZlIE5BSyBmb3IgdGhpcyBj aGFuZ2UuIEkgYmVsaWV2ZSB5b3UgYXJlIGJhc2ljYWxseQo+ID4gPiA+IHdyb25nIG9uIHRoaXMg Zm9yIHRoZSByZWFzb25zIEkndmUgZ2l2ZW4gLSB0aGF0IEFDUElfSE9UUExVR19DUFUKPiA+ID4g PiB3aWxsIGJlIE4gZm9yIEFybTY0IGRlc3BpdGUgaXQgc3VwcG9ydGluZyBBQ1BJLWJhc2VkIENQ VSBob3RwbHVnLgo+ID4gPgo+ID4gPiBTbyBJIHN0aWxsIGhhdmUgdG8gdW5kZXJzdGFuZCBob3cg cmVuYW1pbmcgaXQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzCj4gPiA+IChpbmNsdWRpbmcgeDg2KSBp cyBzdXBwb3NlZCB0byBoZWxwLgo+ID4gPgo+ID4gPiBJdCB3aWxsIHN0aWxsIGJlIHRoZSBzYW1l IG9wdGlvbiB1bmRlciBhIGRpZmZlcmVudCBuYW1lLiAgSG93IGRvZXMKPiA+ID4gdGhhdCBjaGFu Z2UgdGhpbmdzIHRlY2huaWNhbGx5Pwo+ID4KPiA+IERvIHlvdSB0aGluayB0aGF0IGl0IG1ha2Vz IGFueSBzZW5zZSB0byBoYXZlIHN1cHBvcnQgZm9yIEFDUEktYmFzZWQKPiA+IGhvdHBsdWcgQ1BV Cj4gCj4gU28gdGhpcyBpcyBhbGwgYWJvdXQgd2hhdCB5b3UgYW5kIEkgbWVhbiBieSAiQUNQSS1i YXNlZCBob3RwbHVnIENQVSIuCj4gCj4gPiAqYW5kKiBoYXZpbmcgaXQgZnVuY3Rpb25hbCB3aXRo IGEgY29uZmlndXJhdGlvbiBzeW1ib2wKPiA+IG5hbWVkICJBQ1BJX0hPVFBMVUdfQ1BVIiB0byBi ZSBzZXQgdG8gTiA/IFRoYXQncyBlc3NlbnRpYWxseSB3aGF0Cj4gPiB5b3UgYXJlIGFkdm9jYXRp bmcgZm9yLi4uCj4gCj4gU2V0dGluZyBBQ1BJX0hPVFBMVUdfQ1BVIHRvIE4gbWVhbnMgdGhhdCB5 b3UgYXJlIG5vdCBnb2luZyB0byBjb21waWxlCj4gdGhlIGNvZGUgdGhhdCBpcyBjb25kaXRpb25h bCBvbiBpdC4KPiAKPiBUaGF0IGNvZGUgYWxsb3dzIHRoZSBwcm9jZXNzb3IgZHJpdmVyIHRvIGJl IHJlbW92ZWQgZnJvbSBDUFVzIGFuZAo+IGFyY2hfdW5yZWdpc3Rlcl9jcHUoKSB0byBiZSBjYWxs ZWQgZnJvbSB3aXRoaW4gYWNwaV9idXNfdHJpbSgpICAoYW1vbmcKPiBvdGhlciB0aGluZ3MpLiAg T24gdGhlIHdheSB1cCwgaXQgYWxsb3dzIGFyY2hfcmVnaXN0ZXJfY3B1KCkgdG8gYmUKPiBjYWxs ZWQgZnJvbSB3aXRoaW4gYWNwaV9idXNfc2NhbigpLiAgSWYgdGhlc2UgdGhpbmdzIGFyZSBub3Qg ZG9uZSwKPiB3aGF0IEkgbWVhbiBieSAiQUNQSS1iYXNlZCBob3RwbHVnIENQVSIgaXMgbm90IHN1 cHBvcnRlZC4KCkV2ZW4gb24gQXJtNjQsIGFyY2hfcmVnaXN0ZXJfY3B1KCkgYW5kIGFyY2hfdW5y ZWdpc3Rlcl9jcHUoKSB3aWxsIGJlCmNhbGxlZCB3aGVuIHRoZSBDUFUgaW4gdGhlIFZNIGlzIGhv dC1yZW1vdmVkIG9yIGhvdC1hZGRlZC4uLgoKLS0gClJNSydzIFBhdGNoIHN5c3RlbTogaHR0cHM6 Ly93d3cuYXJtbGludXgub3JnLnVrL2RldmVsb3Blci9wYXRjaGVzLwpGVFRQIGlzIGhlcmUhIDgw TWJwcyBkb3duIDEwTWJwcyB1cC4gRGVjZW50IGNvbm5lY3Rpdml0eSBhdCBsYXN0IQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtcmlzY3YgbWFp bGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yaXNjdgo= 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 1314CC47258 for ; Tue, 23 Jan 2024 20:10: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:In-Reply-To:MIME-Version: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=sRJGN1KLaCDidN5PTrXg8sRyUKbHk2jA1GJOf/2QDzk=; b=YOvDnobo1aVUhR lhkoq8u5lcU046+WZXcuCQBMJNAuKIaKNI6Z7566WFn5yroZuwmGHvKNuWdgzvQXWYSf6V4a6d5Iz rY6Beju2k4269T0XwKqcxiqVZuyrXVBqZ9G1ayb+Rec9Pe3HwVJKszy08MFHyurqe00lGeC+qBYYc o4Cq/q3KmSnKMkA4ieCyEUCUtNP0sAKBTVDHqdwPg+U+UIS6DltfrGu392V4xZYasZ2IAN6EpxGWa p/GAh2cje4vyepZdD/ST7D2tBKA2USLfXVwiWRRHKphKHuXNU5qhwjE9Y2jD+mcxFBfc20CG055wY wX1AQEjazCIPYhmyOBww==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rSN5n-000LlO-1S; Tue, 23 Jan 2024 20:09:55 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rSN5j-000Ljg-2T; Tue, 23 Jan 2024 20:09:53 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version: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-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=VIjAJAiY6Q9G9FoJG4YRBh3btkbAjBGzI4MzzPeuFAc=; b=mo2Zx6Z0lCQ+Fn5V67qu2xgiGX Glqk/9IwtdbQRpWhKW+6yXdZQbtJFK1V7kjJTrjqejm/3gcOAlfcqaVJBh2jttQgu/6SoudEHU+nA jkvOWxwsHK1AxcH/WIkl2YmhTgeq59PPLxgFn5BXOfi/BZSbmdatafMWkHpoBXO5LvcysxYfPqAnF 5vNIlvv7sK/lMKvEJy61p/9wl5gzosZutRwPuL4Frt/jMgatZWEhry6YDuYEkEYqNguuCPYR9XVyP zS5mKoaVV05eNAtlqm8VtMMzC/1R4MjeukJPCGrch28HT6TPMW/1dwpLSfLeS+Z69nLev1FuAXr5q LpNfuuSA==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:33240) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1rSN5Y-00031y-2n; Tue, 23 Jan 2024 20:09:40 +0000 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1rSN5V-0002Do-8S; Tue, 23 Jan 2024 20:09:37 +0000 Date: Tue, 23 Jan 2024 20:09:37 +0000 From: "Russell King (Oracle)" To: "Rafael J. Wysocki" Cc: Jonathan Cameron , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-riscv@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, acpica-devel@lists.linuxfoundation.org, linux-csky@vger.kernel.org, linux-doc@vger.kernel.org, linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, Salil Mehta , Jean-Philippe Brucker , jianyong.wu@arm.com, justin.he@arm.com, James Morse Subject: Re: [PATCH RFC v3 05/21] ACPI: Rename ACPI_HOTPLUG_CPU to include 'present' Message-ID: References: <20240122180013.000016d5@Huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240123_120951_959244_CEEE1B75 X-CRM114-Status: GOOD ( 67.42 ) 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 T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDg6Mjc6MDVQTSArMDEwMCwgUmFmYWVsIEouIFd5c29j a2kgd3JvdGU6Cj4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgNzo1OeKAr1BNIFJ1c3NlbGwgS2lu ZyAoT3JhY2xlKQo+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4KPiA+IE9uIFR1 ZSwgSmFuIDIzLCAyMDI0IGF0IDA3OjI2OjU3UE0gKzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdy b3RlOgo+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA3OjIw4oCvUE0gUnVzc2VsbCBLaW5n IChPcmFjbGUpCj4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+Cj4g PiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMDY6NDM6NTlQTSArMDEwMCwgUmFmYWVsIEou IFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiBPbiBUdWUsIEphbiAyMywgMjAyNCBhdCA1OjM24oCv UE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4gPiA8bGludXhAYXJtbGludXgub3JnLnVr PiB3cm90ZToKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gVHVlLCBKYW4gMjMsIDIwMjQgYXQg MDU6MTU6NTRQTSArMDEwMCwgUmFmYWVsIEouIFd5c29ja2kgd3JvdGU6Cj4gPiA+ID4gPiA+ID4g T24gVHVlLCBKYW4gMjMsIDIwMjQgYXQgMjoyOOKAr1BNIFJ1c3NlbGwgS2luZyAoT3JhY2xlKQo+ ID4gPiA+ID4gPiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+IE9uIE1vbiwgSmFuIDIyLCAyMDI0IGF0IDA2OjAwOjEzUE0gKzAw MDAsIEpvbmF0aGFuIENhbWVyb24gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+IE9uIE1vbiwgMTgg RGVjIDIwMjMgMjE6MzU6MTYgKzAxMDAKPiA+ID4gPiA+ID4gPiA+ID4gIlJhZmFlbCBKLiBXeXNv Y2tpIiA8cmFmYWVsQGtlcm5lbC5vcmc+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+IE9uIFdlZCwgRGVjIDEzLCAyMDIzIGF0IDE6NDnigK9QTSBSdXNzZWxsIEtp bmcgPHJtaytrZXJuZWxAYXJtbGludXgub3JnLnVrPiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tOiBKYW1lcyBNb3JzZSA8amFtZXMubW9yc2VA YXJtLmNvbT4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGUg Y29kZSBiZWhpbmQgQUNQSV9IT1RQTFVHX0NQVSBhbGxvd3MgYSBub3QtcHJlc2VudCBDUFUgdG8g YmVjb21lCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBwcmVzZW50Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gUmlnaHQuCj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IFRoaXMgaXNuJ3QgdGhlIG9ubHkgdXNlIG9mIEhPVFBMVUdfQ1BVLiBPbiBh cm02NCBhbmQgcmlzY3YKPiA+ID4gPiA+ID4gPiA+ID4gPiA+IENQVXMgY2FuIGJlIHRha2VuIG9m ZmxpbmUgYXMgYSBwb3dlciBzYXZpbmcgbWVhc3VyZS4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+ID4gPiA+IEJ1dCBzdGlsbCB0aGVyZSBpcyB0aGUgY2FzZSBpbiB3aGljaCBhIG5v bi1wcmVzZW50IENQVSBjYW4gYmVjb21lCj4gPiA+ID4gPiA+ID4gPiA+ID4gcHJlc2VudCwgaXNu J3QgaXQgdGhlcmU/Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IE5vdCB5ZXQg ZGVmaW5lZCBieSB0aGUgYXJjaGl0ZWN0dXJlcyAoYW5kIEknbSBhc3N1bWluZyBpdCBwcm9iYWJs eSBuZXZlciB3aWxsIGJlKS4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gVGhl IG9yaWdpbmFsIHByb3Bvc2FsIHdlIHRvb2sgdG8gQVJNIHdhcyB0byBkbyBleGFjdGx5IHRoYXQg LSB0aGV5IHB1c2hlZAo+ID4gPiA+ID4gPiA+ID4gPiBiYWNrIGhhcmQgb24gdGhlIGJhc2lzIHRo ZXJlIHdhcyBubyBhcmNoaXRlY3R1cmFsbHkgc2FmZSB3YXkgdG8gaW1wbGVtZW50IGl0Lgo+ID4g PiA+ID4gPiA+ID4gPiBUb28gbXVjaCBvZiB0aGUgQVJNIGFyY2ggaGFzIHRvIGV4aXN0IGZyb20g dGhlIHN0YXJ0IG9mIHRpbWUuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvY2JhYTZkNjgtNjE0My1lMDEw LTVmM2MtZWM2MmY4NzlhZDk1QGFybS5jb20vCj4gPiA+ID4gPiA+ID4gPiA+IGlzIG9uZSBvZiB0 aGUgcmVsZXZhbnQgdGhyZWFkcyBvZiB0aGUga2VybmVsIHNpZGUgb2YgdGhhdCBkaXNjdXNzaW9u Lgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBOb3QgdG8gcHV0IHNwZWNpZmlj IHdvcmRzIGludG8gdGhlIEFSTSBhcmNoaXRlY3RzIG1vdXRocywgYnV0IHRoZQo+ID4gPiA+ID4g PiA+ID4gPiBzaG9ydCBkZXNjcmlwdGlvbiBpcyB0aGF0IHRoZXJlIGlzIGN1cnJlbnRseSBubyBk ZW1hbmQgZm9yIHdvcmtpbmcKPiA+ID4gPiA+ID4gPiA+ID4gb3V0IGhvdyB0byBtYWtlIHBoeXNp Y2FsIENQVSBob3RwbHVnIHBvc3NpYmxlLCBhcyBzdWNoIHRoZXkgd2lsbCBub3QKPiA+ID4gPiA+ ID4gPiA+ID4gcHJvdmlkZSBhbiBhcmNoaXRlY3R1cmFsbHkgY29tcGxpYW50IHdheSB0byBkbyBp dCBmb3IgdmlydHVhbCBDUFUgaG90cGx1ZyBhbmQKPiA+ID4gPiA+ID4gPiA+ID4gYW5vdGhlciBt ZWFucyBpcyBuZWVkZWQgKHdoaWNoIGlzIHdoeSB0aGlzIHNlcmllcyBkb2Vzbid0IHVzZSB0aGUg cHJlc2VudCBiaXQKPiA+ID4gPiA+ID4gPiA+ID4gZm9yIHRoYXQgcHVycG9zZSBhbmQgd2UgaGF2 ZSB0aGUgT25saW5lIGNhcGFibGUgYml0IGluIE1BRFQvR0lDQykKPiA+ID4gPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gPiA+ID4gSXQgd2FzIGEgJ2Z1bicgZGFuY2Ugb2Ygc2V2ZXJhbCB5ZWFycyB0 byBnZXQgdG8gdGhhdCBjbGFyaWZpY2F0aW9uLgo+ID4gPiA+ID4gPiA+ID4gPiBBcyBhbm90aGVy IGZ1biBmYWN0LCB0aGUgc2FtZSBpcyBkZWZpbmVkIGZvciB4ODYsIGJ1dCBJIGRvbid0IHRoaW5r Cj4gPiA+ID4gPiA+ID4gPiA+IGFueW9uZSBoYXMgdXNlZCBpdCB5ZXQgKEdJQ0MgZm9yIEFSTSBo YXMgYW4gb25saW5lIGNhcGFibGUgYml0IGluIHRoZSBmbGFncyB0bwo+ID4gPiA+ID4gPiA+ID4g PiBlbmFibGUgdGhpcywgd2hpY2ggd2FzIHJlbWFya2FibHkgc2ltaWxhciB0byB0aGUgb25saW5l IGNhcGFibGUgYml0IGluIHRoZQo+ID4gPiA+ID4gPiA+ID4gPiBmbGFncyBvZiB0aGUgTG9jYWwg QVBJQyBlbnRyaWVzIGFzIGFkZGVkIGZhaXJseSByZWNlbnRseSkuCj4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIGFybTY0IGFuIG9m ZmxpbmUgQ1BVIG1heSBiZSBkaXNhYmxlZCBieSBmaXJtd2FyZSwgcHJldmVudGluZyBpdCBmcm9t Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiZWluZyBicm91Z2h0IGJhY2sgb25saW5lLCBidXQgaXQg cmVtYWlucyBwcmVzZW50IHRocm91Z2hvdXQuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gQWRkaW5nIGNvZGUgdG8gcHJldmVudCB1c2VyLXNwYWNlIHRyeWluZyB0 byBvbmxpbmUgdGhlc2UgZGlzYWJsZWQgQ1BVcwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbmVlZHMg c29tZSBhZGRpdGlvbmFsIHRlcm1pbm9sb2d5Lgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+ID4gPiA+IFJlbmFtZSB0aGUgS2NvbmZpZyBzeW1ib2wgQ09ORklHX0FDUElfSE9U UExVR19QUkVTRU5UX0NQVSB0byByZWZsZWN0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IGl0 IG1ha2VzIHBvc3NpYmxlIENQVXMgcHJlc2VudC4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+IEhvbmVzdGx5LCBJIGRvbid0IHRoaW5rIHRoYXQgdGhpcyBjaGFuZ2UgaXMg bmVjZXNzYXJ5IG9yIGV2ZW4gdXNlZnVsLgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ID4gPiBXaGlsc3QgaXQncyBhbiBhdHRlbXB0IHRvIGF2b2lkIGZ1dHVyZSBjb25mdXNpb24sIHRo ZSByZW5hbWUgaXMKPiA+ID4gPiA+ID4gPiA+ID4gbm90IHNvbWV0aGluZyBJIHJlYWxseSBjYXJl IGFib3V0IHNvIG15IGFkdmljZSB0byBSdXNzZWxsIGlzIGRyb3AKPiA+ID4gPiA+ID4gPiA+ID4g aXQgdW5sZXNzIHlvdSBhcmUgYXR0YWNoZWQgdG8gaXQhCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gV2hpbGUgSSBhZ3JlZSB0aGF0IGl0IGlzbid0IGEgbmVjZXNzaXR5LCBJIGRvbid0 IGZ1bGx5IGFncmVlIHRoYXQgaXQKPiA+ID4gPiA+ID4gPiA+IGlzbid0IHVzZWZ1bC4KPiA+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBPbmUgb2YgdGhlIGlzc3VlcyB3aWxsIGJlIHRoYXQg d2hpbGUgQXJtNjQgd2lsbCBzdXBwb3J0IGhvdHBsdWcgdkNQVSwKPiA+ID4gPiA+ID4gPiA+IGl0 IHdvbid0IGJlIHNldHRpbmcgQUNQSV9IT1RQTFVHX0NQVSBiZWNhdXNlIGl0IGRvZXNuJ3Qgc3Vw cG9ydAo+ID4gPiA+ID4gPiA+ID4gdGhlIHByZXNlbnQgYml0IGNoYW5naW5nLiBTbyBJIGNhbiBz ZWUgd2h5IEphbWVzIGRlY2lkZWQgdG8gcmVuYW1lCj4gPiA+ID4gPiA+ID4gPiBpdCAtIGJlY2F1 c2Ugd2l0aCBBcm02NCdzIGhvdHBsdWcgdkNQVSwgdGhlIGlkZWEgdGhhdCBBQ1BJX0hPVFBMVUdf Q1BVCj4gPiA+ID4gPiA+ID4gPiBzb21laG93IGVuYWJsZXMgaG90cGx1ZyBDUFUgc3VwcG9ydCBp cyBub3cgbm8gbG9uZ2VyIHRydWUuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gS2Vl cGluZyBpdCBhcyBBQ1BJX0hPVFBMVUdfQ1BVIG1ha2VzIHRoZSBjb2RlIGxlc3Mgb2J2aW91cywg YmVjYXVzZSBpdAo+ID4gPiA+ID4gPiA+ID4gbGVhZHMgb25lIHRvIGFzc3VtZSB0aGF0IGl0IG91 Z2h0IHRvIGJlIGVuYWJsZWQgZm9yIEFybTY0J3MKPiA+ID4gPiA+ID4gPiA+IGltcGxlbWVudGF0 aW5vbiwgYW5kIHRoYXQgY291bGQgd2VsbCBjYXVzZSBpc3N1ZXMgaW4gdGhlIGZ1dHVyZSBpZgo+ ID4gPiA+ID4gPiA+ID4gcGVvcGxlIG1ha2UgdGhlIGFzc3VtcHRpb24gdGhhdCAiQUNQSV9IT1RQ TFVHX0NQVSIgbWVhbnMgaG90cGx1ZyBDUFUKPiA+ID4gPiA+ID4gPiA+IGlzIHN1cHBvcnRlZCBp biBBQ1BJLiBJdCBkb2Vzbid0IGFueW1vcmUuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBP biB4ODYgdGhlcmUgaXMgbm8gY29uZnVzaW9uIEFGQUlDUy4gIEl0J3MgYWx3YXlzIG1lYW50ICJh cyBsb25nIGFzCj4gPiA+ID4gPiA+ID4gdGhlIHBsYXRmb3JtIHN1cHBvcnRzIGl0Ii4KPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gVGhhdCdzIHg4Niwgd2hpY2ggc3VwcG9ydHMgcGh5c2ljYWwgQ1BV IGhvdHBsdWcuIFdlJ3JlIGludHJvZHVjaW5nCj4gPiA+ID4gPiA+IHN1cHBvcnQgZm9yIEFybTY0 IGhlcmUgd2hpY2ggZG9lc24ndCBzdXBwb3J0IHBoeXNpY2FsIENQVSBob3RwbHVnLgo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBQ1BJLWJhc2VkICAgICAgUGh5c2ljYWwgICAgICAgIFZpcnR1YWwKPiA+ID4gPiA+ ID4gQXJjaCAgICBIT1RQTFVHX0NQVSAgICAgQUNQSV9IT1RQTFVHX0NQVSAgICAgICAgSG90cGx1 ZyAgICAgICAgIEhvdHBsdWcgICAgICAgICBIb3RwbHVnCj4gPiA+ID4gPiA+IEFybTY0ICAgWSAg ICAgICAgICAgICAgIE4gICAgICAgICAgICAgICAgICAgICAgIFkgICAgICAgICAgICAgICBOICAg ICAgICAgICAgICAgWQo+ID4gPiA+ID4gPiB4ODYgICAgIFkgICAgICAgICAgICAgICBZICAgICAg ICAgICAgICAgICAgICAgICBZICAgICAgICAgICAgICAgWSAgICAgICAgICAgICAgIFkKPiA+ID4g PiA+ID4KPiA+ID4gPiA+ID4gU28gQUNQSV9IT1RQTFVHX0NQVSBiZWNvbWVzIHRvdGFsbHkgbWlz bmFtZWQgd2l0aCB0aGUgaW50cm9kdWN0aW9uCj4gPiA+ID4gPiA+IG9mIGhvdHBsdWcgb24gQXJt NjQuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IElmIHdlIHdhbnQgdG8ganVzdCBsb29rIGF0IHN0 dWZmIGZyb20gYW4geDg2IHBlcnNwZWN0aXZlLCB0aGVuIHllcywKPiA+ID4gPiA+ID4gaXQgcmVt YWlucyBjb3JyZWN0IHRvIGNhbGwgaXQgQUNQSV9IT1RQTFVHX0NQVS4gSXQgaXNuJ3QgY29ycmVj dCBhcwo+ID4gPiA+ID4gPiBzb29uIGFzIHdlIGFkZCBBcm02NCwgYXMgSSBhbHJlYWR5IHNhaWQu Cj4gPiA+ID4gPgo+ID4gPiA+ID4gQW5kIGlmIHlvdSByZW5hbWUgaXQsIGl0IGJlY29tZXMgbGVz cyBjb25mdXNpbmcgZm9yIEFSTTY0LCBidXQgbW9yZQo+ID4gPiA+ID4gY29uZnVzaW5nIGZvciB4 ODYsIHdoaWNoIGJhc2ljYWxseSBpcyBteSBwb2ludC4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBJTU8g ImhvdHBsdWciIGNvdmVycyBib3RoIGNhc2VzIHdlbGwgZW5vdWdoIGFuZCAiaG90cGx1ZyBwcmVz ZW50IiBpcwo+ID4gPiA+ID4gb25seSBhY2N1cmF0ZSBmb3Igb25lIG9mIHRoZW0uCj4gPiA+ID4g Pgo+ID4gPiA+ID4gPiBBbmQgaG9uZXN0bHksIGEgdHdvIGxpbmUgcXVpcCB0byBteSByZWFzb25l ZCBhcmd1bWVudCBpcyBub3QgSU1ITwo+ID4gPiA+ID4gPiBhbiBhY2NlcHRhYmxlIHJlcGx5Lgo+ ID4gPiA+ID4KPiA+ID4gPiA+IFdlbGwsIEknbSBub3QgZXZlbiBzdXJlIGhvdyB0byByZXNwb25k IHRvIHRoaXMgLi4uCj4gPiA+ID4KPiA+ID4gPiBUaGUgYWJvdmUgZXhwbGFuYXRpb24geW91IGdp dmUgd291bGQgaGF2ZSBiZWVuIHVzZWZ1bC4uLgo+ID4gPiA+Cj4gPiA+ID4gSSBkb24ndCBzZWUg aG93ICJob3RwbHVnIiBjb3ZlcnMgYm90aCBjYXNlcy4gQXMgSSd2ZSB0cmllZCB0byBwb2ludAo+ ID4gPiA+IG91dCBtYW55IHRpbWVzIG5vdywgQUNQSV9IT1RQTFVHX0NQVSBpcyBOIGZvciBBcm02 NCwgeWV0IGl0IHN1cHBvcnRzCj4gPiA+ID4gQUNQSSBiYXNlZCBob3RwbHVnLiBIb3cgZG9lcyBB Q1BJX0hPVFBMVUdfQ1BVIGNvdmVyIEFybTY0IGlmIGl0J3MKPiA+ID4gPiBOIHRoZXJlPwo+ID4g Pgo+ID4gPiBCdXQgSUlVQyB0aGlzIGNoYW5nZSBpcyBwcmVsaW1pbmFyeSBmb3IgY2hhbmdpbmcg aXQgKG9yIGVxdWl2YWxlbnQKPiA+ID4gb3B0aW9uIHdpdGggYSBkaWZmZXJlbnQgbmFtZSkgdG8g WSwgaXNuJ3QgaXQ/Cj4gPgo+ID4gTm8uIEFzIEkga2VlcCBzYXlpbmcsIEFDUElfSE9UUExVR19D UFUgZW5kcyB1cCBOIG9uIEFybTY0IGV2ZW4gd2hlbgo+ID4gaXQgc3VwcG9ydHMgaG90cGx1ZyBD UFUgdmlhIEFDUEkuCj4gPgo+ID4gRXZlbiB3aXRoIHRoZSBmdWxsIEFybTY0IHBhdGNoIHNldCBo ZXJlLCB1bmRlciBhcmNoLyB3ZSBzdGlsbCBvbmx5Cj4gPiBoYXZlOgo+ID4KPiA+IGFyY2gvbG9v bmdhcmNoL0tjb25maWc6IHNlbGVjdCBBQ1BJX0hPVFBMVUdfUFJFU0VOVF9DUFUgaWYgQUNQSV9Q Uk9DRVNTT1IgJiYgSE9UUExVR19DUFUKPiA+IGFyY2gveDg2L0tjb25maWc6ICAgICAgIHNlbGVj dCBBQ1BJX0hPVFBMVUdfUFJFU0VOVF9DUFUgICAgICAgICBpZiBBQ1BJX1BST0NFU1NPUiAmJiBI T1RQTFVHX0NQVQo+ID4KPiA+IFRvIHNheSBpdCB5ZXQgYWdhaW4sIEFDUElfSE9UUExVR18oUFJF U0VOVF8pQ1BVIGlzICpuZXZlciogc2V0IG9uCj4gPiBBcm02NC4KPiAKPiBBbGxyaWdodCwgc28g QVJNNjQgaXMgbm90IGdvaW5nIHRvIHVzZSB0aGUgY29kZSB0aGF0IGlzIGNvbmRpdGlvbmFsIG9u Cj4gQUNQSV9IT1RQTFVHX0NQVSB0b2RheS4KPiAKPiBGYWlyIGVub3VnaC4KPiAKPiA+ID4gPiBJ TUhPIGl0IHRvdGFsbHkgZG9lc24ndCwgYW5kIG1vcmVvdmVyLCBpdCBnb2VzIGFnYWluc3Qgd2hh dAo+ID4gPiA+IG9uZSB3b3VsZCBsb2dpY2FsbHkgZXhwZWN0IC0gYW5kIHRoaXMgaXMgd2h5IEkg aGF2ZSBhIHByb2JsZW0gd2l0aAo+ID4gPiA+IHlvdXIgZWZmZWN0aXZlIE5BSyBmb3IgdGhpcyBj aGFuZ2UuIEkgYmVsaWV2ZSB5b3UgYXJlIGJhc2ljYWxseQo+ID4gPiA+IHdyb25nIG9uIHRoaXMg Zm9yIHRoZSByZWFzb25zIEkndmUgZ2l2ZW4gLSB0aGF0IEFDUElfSE9UUExVR19DUFUKPiA+ID4g PiB3aWxsIGJlIE4gZm9yIEFybTY0IGRlc3BpdGUgaXQgc3VwcG9ydGluZyBBQ1BJLWJhc2VkIENQ VSBob3RwbHVnLgo+ID4gPgo+ID4gPiBTbyBJIHN0aWxsIGhhdmUgdG8gdW5kZXJzdGFuZCBob3cg cmVuYW1pbmcgaXQgZm9yIGFsbCBhcmNoaXRlY3R1cmVzCj4gPiA+IChpbmNsdWRpbmcgeDg2KSBp cyBzdXBwb3NlZCB0byBoZWxwLgo+ID4gPgo+ID4gPiBJdCB3aWxsIHN0aWxsIGJlIHRoZSBzYW1l IG9wdGlvbiB1bmRlciBhIGRpZmZlcmVudCBuYW1lLiAgSG93IGRvZXMKPiA+ID4gdGhhdCBjaGFu Z2UgdGhpbmdzIHRlY2huaWNhbGx5Pwo+ID4KPiA+IERvIHlvdSB0aGluayB0aGF0IGl0IG1ha2Vz IGFueSBzZW5zZSB0byBoYXZlIHN1cHBvcnQgZm9yIEFDUEktYmFzZWQKPiA+IGhvdHBsdWcgQ1BV Cj4gCj4gU28gdGhpcyBpcyBhbGwgYWJvdXQgd2hhdCB5b3UgYW5kIEkgbWVhbiBieSAiQUNQSS1i YXNlZCBob3RwbHVnIENQVSIuCj4gCj4gPiAqYW5kKiBoYXZpbmcgaXQgZnVuY3Rpb25hbCB3aXRo IGEgY29uZmlndXJhdGlvbiBzeW1ib2wKPiA+IG5hbWVkICJBQ1BJX0hPVFBMVUdfQ1BVIiB0byBi ZSBzZXQgdG8gTiA/IFRoYXQncyBlc3NlbnRpYWxseSB3aGF0Cj4gPiB5b3UgYXJlIGFkdm9jYXRp bmcgZm9yLi4uCj4gCj4gU2V0dGluZyBBQ1BJX0hPVFBMVUdfQ1BVIHRvIE4gbWVhbnMgdGhhdCB5 b3UgYXJlIG5vdCBnb2luZyB0byBjb21waWxlCj4gdGhlIGNvZGUgdGhhdCBpcyBjb25kaXRpb25h bCBvbiBpdC4KPiAKPiBUaGF0IGNvZGUgYWxsb3dzIHRoZSBwcm9jZXNzb3IgZHJpdmVyIHRvIGJl IHJlbW92ZWQgZnJvbSBDUFVzIGFuZAo+IGFyY2hfdW5yZWdpc3Rlcl9jcHUoKSB0byBiZSBjYWxs ZWQgZnJvbSB3aXRoaW4gYWNwaV9idXNfdHJpbSgpICAoYW1vbmcKPiBvdGhlciB0aGluZ3MpLiAg T24gdGhlIHdheSB1cCwgaXQgYWxsb3dzIGFyY2hfcmVnaXN0ZXJfY3B1KCkgdG8gYmUKPiBjYWxs ZWQgZnJvbSB3aXRoaW4gYWNwaV9idXNfc2NhbigpLiAgSWYgdGhlc2UgdGhpbmdzIGFyZSBub3Qg ZG9uZSwKPiB3aGF0IEkgbWVhbiBieSAiQUNQSS1iYXNlZCBob3RwbHVnIENQVSIgaXMgbm90IHN1 cHBvcnRlZC4KCkV2ZW4gb24gQXJtNjQsIGFyY2hfcmVnaXN0ZXJfY3B1KCkgYW5kIGFyY2hfdW5y ZWdpc3Rlcl9jcHUoKSB3aWxsIGJlCmNhbGxlZCB3aGVuIHRoZSBDUFUgaW4gdGhlIFZNIGlzIGhv dC1yZW1vdmVkIG9yIGhvdC1hZGRlZC4uLgoKLS0gClJNSydzIFBhdGNoIHN5c3RlbTogaHR0cHM6 Ly93d3cuYXJtbGludXgub3JnLnVrL2RldmVsb3Blci9wYXRjaGVzLwpGVFRQIGlzIGhlcmUhIDgw TWJwcyBkb3duIDEwTWJwcyB1cC4gRGVjZW50IGNvbm5lY3Rpdml0eSBhdCBsYXN0IQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5l bCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=