From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6ADD2C4332F for ; Tue, 21 Sep 2021 08:41:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4F05F61268 for ; Tue, 21 Sep 2021 08:41:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231279AbhIUIme (ORCPT ); Tue, 21 Sep 2021 04:42:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41274 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230497AbhIUImd (ORCPT ); Tue, 21 Sep 2021 04:42:33 -0400 Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4953CC061574 for ; Tue, 21 Sep 2021 01:41:05 -0700 (PDT) Received: by mail-wr1-x42b.google.com with SMTP id w17so28690893wrv.10 for ; Tue, 21 Sep 2021 01:41:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=Jpo5hVx8FocmwTc1vBarjOAvcclKIu4PIomViQO7n7o=; b=sXGd/CWVpW8T0oDZMr7aFCXoqz8iL5jce66I3q3miAC0b3bP2wp9kbmEO0y+bNhIhM eJbm7KcynwZQ4Ncg6SOVssxvJOMntvanrOGx7BLr+OS2gtjCXhIzgL8pPRxXgUufNEpO SfUv8Cwj91XCM1jMIrtjcJvbqmybo9mVbR1LBtZLwomkFTJCUPY51CzHLrCAdjpo2rRx Yz8kkMt/4/JdBlYt26/EI79Kf2xP6gbcRu1gRZZyTb6vCK5QyJ0P//dCYv+6Av0Ko5vv 8BjOZ5SxtwRzhZkBo8/ySVYiluiK85TWRTXut+FwhGPMASjaojRaacV90LRCtxecb1my eCZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Jpo5hVx8FocmwTc1vBarjOAvcclKIu4PIomViQO7n7o=; b=7TbgUsi59Gqw0jSw28/BEabSzHq4xr+8151FhUZugsPi09wawyCkzKhqw119f01wnS RTxm5xEiTjzH9GiX3JSA9/XxO/nxii/6HRqjnxs7XJ2Zyh2fg2D0CZ0i3+vWH1DR0fCM VN8c8+NmQXQ731TkCtTqb1YauVz2IHFQcqhIs9kex1BnCbrR/+cTAz91/hWO5wnrAqda uufSzZwJCeyVbd/FRvSEAn9cXa8k2HJwiGOw02AlIbVEttLQKuU9W+v+jdjwesIb/5l2 y4vAMPVxBg6cadf/ZUrvd3qrTZ8mUiMOA3PM5PR5V9ywBymPiJ9ChkJ3sQrBoVIwQrFU 7c5w== X-Gm-Message-State: AOAM533hmBxTRCZ8Nb13kFKaDxE63GxqVYdR57a5jeBGUBj0XjcyJjSx y8T1a0DPMwJjCwnFLndBpFt75z2116XLzQ== X-Google-Smtp-Source: ABdhPJyVa4q4Tr9xInJmFQ4KLGfuU0f32NWO99Wuwos1Hr/1lN0IZskRsr47p4hltHVfBz5jFqK1zw== X-Received: by 2002:a5d:4e90:: with SMTP id e16mr33059922wru.243.1632213663872; Tue, 21 Sep 2021 01:41:03 -0700 (PDT) Received: from google.com ([95.148.6.233]) by smtp.gmail.com with ESMTPSA id y197sm2403557wmc.18.2021.09.21.01.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Sep 2021 01:41:03 -0700 (PDT) Date: Tue, 21 Sep 2021 09:41:01 +0100 From: Lee Jones To: Krzysztof Kozlowski Cc: Will McVicker , Catalin Marinas , Will Deacon , Sylwester Nawrocki , Tomasz Figa , Chanwoo Choi , Michael Turquette , Stephen Boyd , Linus Walleij , Alessandro Zummo , Alexandre Belloni , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, linux-rtc@vger.kernel.org Subject: Re: [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs Message-ID: References: <20210920190350.3860821-1-willmcvicker@google.com> <7735b09c-cf1c-5e37-a737-9a330fbacf1e@canonical.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote: > On 21/09/2021 10:11, Lee Jones wrote: > > On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote: > > > >> On 20/09/2021 21:03, Will McVicker wrote: > >>> This patch series tries to address the issue of ARCH_EXYNOS force selecting > >>> a handful of drivers without allowing the vendor to override any of the > >>> default configs. This takes away from the flexibilty of compiling a generic > >>> kernel with exynos kernel modules. For example, it doesn't allow vendors to > >>> modularize these drivers out of the core kernel in order to share a generic > >>> kernel image across multiple devices that require device-specific kernel > >>> modules. > >> > >> You do not address the issue in these patches. The problem you describe > >> is that drivers are not modules and you are not changing them into modules. > > > > The wording is unfortunate. The reason for this change doesn't have > > much to do with kernel modules. > > > > Let's go back in time 18 months or so when Greg KH submitted this [0] > > patch, which you Acked. Greg was trying to solve the problem of not > > having to enable ARCH_EXYNOS on kernels which are designed to be > > platform agnostic (sometimes called Generic Kernels). For some reason > > SERIAL_SAMSUNG is the only symbol with these dependencies, so the > > solution seemed simple and straight forward at the time. > > > > However, For sound reasons Geert NACKed the patch. > > > > Quoting from [1] he says: > > > > "A generic kernel will include Samsung SoC support, hence > > PLAT_SAMSUNG or ARCH_EXYNOS will be enabled." > > Yes, it's correct reasoning. There is also one more use-case - > non-upstreamed (out of tree) platform which wants to use Exynos-specific > drivers. Something like was happening with Apple M1 except that it got > upstreamed and we do not care much about out-of-tree. > > > However, since the entry for ARCH_EXYNOS *insists* on building-in a > > bunch of other symbols (via 'select') which will be unused in most > > cases, this is not a currently acceptable approach for many Generic > > Kernels due to size constraints. > > In the mainline kernel there is no such use case. If you want to have > Exynos-whatever-driver (e.g. SERIAL_SAMSUNG or S3C RTC), you should > select ARCH_EXYNOS because otherwise it does not make any sense. Zero > sense. Such kernel won't work. > > It makes sense only if there is some other work, hidden here, where > someone might want to have SERIAL_SAMSUNG or S3C RTC without > ARCH_EXYNOS. Although GKI is not that work because GKI kernel will > select ARCH_EXYNOS. It must select ARCH_EXYNOS if it wants to support > Exynos platforms. > > Therefore I expect first to bring this "some other work, hidden here" to > broader audience, so we can review its use case. AFAIA, there really isn't any GKI specific code. Everything that can be upstreamed, is upstreamed. The delta consists of some vendor over-rides (implemented using trace events/hooks spread out over the code-base), lots of function exports (non-upstreamable due to no upstream user) and some defconfig/fragments. There really is nothing else to share/upstream/unhide. The only thing GKI needs is a little Kconfig flexibility above what is currently offered. > > What this patch does is migrates those symbols from being 'select'ed > > (always built-in with no recourse) to 'default y'. Where the former > > cannot be over-ridden, but the latter can be via a vendor's > > defconfig/fragment. > > It cannot be overridden by vendor fragment because options are not > visible. You cannot change them. > > The patch does nothing in this regard (making them selectable/possible > to disable), which is why I complained. 100% agree. As I commented in the other patch, this was a good point that should be addressed > > I doubt many (any?) of these symbols can be converted to kernel > > modules anyway, as they are required very early on in the boot > > sequence. > > True, some could, some not. Also some platforms are set up via > bootloader, so actually could "survive" till module is loaded from some > initrd. If these could be turned into modules, that would be even better! -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 594EEC433FE for ; Tue, 21 Sep 2021 08:42:48 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 1B08E61131 for ; Tue, 21 Sep 2021 08:42:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 1B08E61131 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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=az3cREsyXFWtucWNNFUo6BNTht5vJIstBjV4TG3TLzY=; b=MfY7Lp5It/kvqs mcbK8NwP+mIi6NGjZI5yEFUq2QghVXuvYSN+Ut+ngBTcKgAuGeugO7lOvFq9DvsvviJqtVVj828Xm BhP7utjEl25lsy7QK9rCzao7vLsa2Ek73ShX1E9mS62m1Y/Q+6uNtVDDBEtwKbcK1iQoOZmqHffCs +ZuOPH8EPCas4gB8d546ts/7ED3dhmQAPhIoF+5tCFwvjVaJTUlmRawlz63Jo2c9VLJW2rafvWIrp CXs3PJ+5js49NsgU/UOCUqyNYXN8ozaH2gOXwXvbmkb0rVJLYju3lp+fL0n1lz7NW6qUk5U2OJYiH +RxihKIJTt54PrpC2g1w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mSbKu-003y9E-Vu; Tue, 21 Sep 2021 08:41:09 +0000 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mSbKr-003y8n-Cd for linux-arm-kernel@lists.infradead.org; Tue, 21 Sep 2021 08:41:07 +0000 Received: by mail-wr1-x42b.google.com with SMTP id w29so36819092wra.8 for ; Tue, 21 Sep 2021 01:41:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=Jpo5hVx8FocmwTc1vBarjOAvcclKIu4PIomViQO7n7o=; b=sXGd/CWVpW8T0oDZMr7aFCXoqz8iL5jce66I3q3miAC0b3bP2wp9kbmEO0y+bNhIhM eJbm7KcynwZQ4Ncg6SOVssxvJOMntvanrOGx7BLr+OS2gtjCXhIzgL8pPRxXgUufNEpO SfUv8Cwj91XCM1jMIrtjcJvbqmybo9mVbR1LBtZLwomkFTJCUPY51CzHLrCAdjpo2rRx Yz8kkMt/4/JdBlYt26/EI79Kf2xP6gbcRu1gRZZyTb6vCK5QyJ0P//dCYv+6Av0Ko5vv 8BjOZ5SxtwRzhZkBo8/ySVYiluiK85TWRTXut+FwhGPMASjaojRaacV90LRCtxecb1my eCZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Jpo5hVx8FocmwTc1vBarjOAvcclKIu4PIomViQO7n7o=; b=yXbJkC143cjSZJbdKm2BUNkFo55kT79C5IEGpBF6bh/RSri7SeWJk/rK1gFmacA4Ab CrQqVGdD5pBlUCN5YgnxROedlgSMvN2vT3W0GWR/7qc8xyXjmjCJrig9EobE7NCYBdqL C1oe45bmcad4XIH0tNt+UKmZ9gjjX5+GwRJH19BcZclMbJ/TdfDs8bdzCDC3OWwx9NIt d5Ye35hO3RZLQ95N+kaQPqOvQ5jhofJRrhqgBcqauPagaFiHU7MgXS2qwLyBvluVj418 KZ1q85Nu1C4XpZcXRc94Cp2ypUnFxk1eHhyR+LRaZ/TNnJo1lHXy6+3EI/gG6OWNbKKp L57w== X-Gm-Message-State: AOAM5306e9r7ZH/pk9CE7hwI5qU9irxNZKkS7pddZz92FgPalaYX4SIJ LwD16C9klSwNnwC0tqLrH+HJog== X-Google-Smtp-Source: ABdhPJyVa4q4Tr9xInJmFQ4KLGfuU0f32NWO99Wuwos1Hr/1lN0IZskRsr47p4hltHVfBz5jFqK1zw== X-Received: by 2002:a5d:4e90:: with SMTP id e16mr33059922wru.243.1632213663872; Tue, 21 Sep 2021 01:41:03 -0700 (PDT) Received: from google.com ([95.148.6.233]) by smtp.gmail.com with ESMTPSA id y197sm2403557wmc.18.2021.09.21.01.41.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Sep 2021 01:41:03 -0700 (PDT) Date: Tue, 21 Sep 2021 09:41:01 +0100 From: Lee Jones To: Krzysztof Kozlowski Cc: Will McVicker , Catalin Marinas , Will Deacon , Sylwester Nawrocki , Tomasz Figa , Chanwoo Choi , Michael Turquette , Stephen Boyd , Linus Walleij , Alessandro Zummo , Alexandre Belloni , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-clk@vger.kernel.org, linux-gpio@vger.kernel.org, linux-rtc@vger.kernel.org Subject: Re: [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs Message-ID: References: <20210920190350.3860821-1-willmcvicker@google.com> <7735b09c-cf1c-5e37-a737-9a330fbacf1e@canonical.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-20210921_014105_488170_45668407 X-CRM114-Status: GOOD ( 43.06 ) 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 T24gVHVlLCAyMSBTZXAgMjAyMSwgS3J6eXN6dG9mIEtvemxvd3NraSB3cm90ZToKCj4gT24gMjEv MDkvMjAyMSAxMDoxMSwgTGVlIEpvbmVzIHdyb3RlOgo+ID4gT24gVHVlLCAyMSBTZXAgMjAyMSwg S3J6eXN6dG9mIEtvemxvd3NraSB3cm90ZToKPiA+IAo+ID4+IE9uIDIwLzA5LzIwMjEgMjE6MDMs IFdpbGwgTWNWaWNrZXIgd3JvdGU6Cj4gPj4+IFRoaXMgcGF0Y2ggc2VyaWVzIHRyaWVzIHRvIGFk ZHJlc3MgdGhlIGlzc3VlIG9mIEFSQ0hfRVhZTk9TIGZvcmNlIHNlbGVjdGluZwo+ID4+PiBhIGhh bmRmdWwgb2YgZHJpdmVycyB3aXRob3V0IGFsbG93aW5nIHRoZSB2ZW5kb3IgdG8gb3ZlcnJpZGUg YW55IG9mIHRoZQo+ID4+PiBkZWZhdWx0IGNvbmZpZ3MuIFRoaXMgdGFrZXMgYXdheSBmcm9tIHRo ZSBmbGV4aWJpbHR5IG9mIGNvbXBpbGluZyBhIGdlbmVyaWMKPiA+Pj4ga2VybmVsIHdpdGggZXh5 bm9zIGtlcm5lbCBtb2R1bGVzLiBGb3IgZXhhbXBsZSwgaXQgZG9lc24ndCBhbGxvdyB2ZW5kb3Jz IHRvCj4gPj4+IG1vZHVsYXJpemUgdGhlc2UgZHJpdmVycyBvdXQgb2YgdGhlIGNvcmUga2VybmVs IGluIG9yZGVyIHRvIHNoYXJlIGEgZ2VuZXJpYwo+ID4+PiBrZXJuZWwgaW1hZ2UgYWNyb3NzIG11 bHRpcGxlIGRldmljZXMgdGhhdCByZXF1aXJlIGRldmljZS1zcGVjaWZpYyBrZXJuZWwKPiA+Pj4g bW9kdWxlcy4KPiA+Pgo+ID4+IFlvdSBkbyBub3QgYWRkcmVzcyB0aGUgaXNzdWUgaW4gdGhlc2Ug cGF0Y2hlcy4gVGhlIHByb2JsZW0geW91IGRlc2NyaWJlCj4gPj4gaXMgdGhhdCBkcml2ZXJzIGFy ZSBub3QgbW9kdWxlcyBhbmQgeW91IGFyZSBub3QgY2hhbmdpbmcgdGhlbSBpbnRvIG1vZHVsZXMu Cj4gPiAKPiA+IFRoZSB3b3JkaW5nIGlzIHVuZm9ydHVuYXRlLiAgVGhlIHJlYXNvbiBmb3IgdGhp cyBjaGFuZ2UgZG9lc24ndCBoYXZlCj4gPiBtdWNoIHRvIGRvIHdpdGgga2VybmVsIG1vZHVsZXMu Cj4gPiAKPiA+IExldCdzIGdvIGJhY2sgaW4gdGltZSAxOCBtb250aHMgb3Igc28gd2hlbiBHcmVn IEtIIHN1Ym1pdHRlZCB0aGlzIFswXQo+ID4gcGF0Y2gsIHdoaWNoIHlvdSBBY2tlZC4gIEdyZWcg d2FzIHRyeWluZyB0byBzb2x2ZSB0aGUgcHJvYmxlbSBvZiBub3QKPiA+IGhhdmluZyB0byBlbmFi bGUgQVJDSF9FWFlOT1Mgb24ga2VybmVscyB3aGljaCBhcmUgZGVzaWduZWQgdG8gYmUKPiA+IHBs YXRmb3JtIGFnbm9zdGljIChzb21ldGltZXMgY2FsbGVkIEdlbmVyaWMgS2VybmVscykuICBGb3Ig c29tZSByZWFzb24KPiA+IFNFUklBTF9TQU1TVU5HIGlzIHRoZSBvbmx5IHN5bWJvbCB3aXRoIHRo ZXNlIGRlcGVuZGVuY2llcywgc28gdGhlCj4gPiBzb2x1dGlvbiBzZWVtZWQgc2ltcGxlIGFuZCBz dHJhaWdodCBmb3J3YXJkIGF0IHRoZSB0aW1lLgo+ID4gCj4gPiBIb3dldmVyLCBGb3Igc291bmQg cmVhc29ucyBHZWVydCBOQUNLZWQgdGhlIHBhdGNoLgo+ID4gCj4gPiBRdW90aW5nIGZyb20gWzFd IGhlIHNheXM6Cj4gPiAKPiA+ICAgIkEgZ2VuZXJpYyBrZXJuZWwgd2lsbCBpbmNsdWRlIFNhbXN1 bmcgU29DIHN1cHBvcnQsIGhlbmNlCj4gPiAgIFBMQVRfU0FNU1VORyBvciBBUkNIX0VYWU5PUyB3 aWxsIGJlIGVuYWJsZWQuIgo+IAo+IFllcywgaXQncyBjb3JyZWN0IHJlYXNvbmluZy4gVGhlcmUg aXMgYWxzbyBvbmUgbW9yZSB1c2UtY2FzZSAtCj4gbm9uLXVwc3RyZWFtZWQgKG91dCBvZiB0cmVl KSBwbGF0Zm9ybSB3aGljaCB3YW50cyB0byB1c2UgRXh5bm9zLXNwZWNpZmljCj4gZHJpdmVycy4g U29tZXRoaW5nIGxpa2Ugd2FzIGhhcHBlbmluZyB3aXRoIEFwcGxlIE0xIGV4Y2VwdCB0aGF0IGl0 IGdvdAo+IHVwc3RyZWFtZWQgYW5kIHdlIGRvIG5vdCBjYXJlIG11Y2ggYWJvdXQgb3V0LW9mLXRy ZWUuCj4gCj4gPiBIb3dldmVyLCBzaW5jZSB0aGUgZW50cnkgZm9yIEFSQ0hfRVhZTk9TICppbnNp c3RzKiBvbiBidWlsZGluZy1pbiBhCj4gPiBidW5jaCBvZiBvdGhlciBzeW1ib2xzICh2aWEgJ3Nl bGVjdCcpIHdoaWNoIHdpbGwgYmUgdW51c2VkIGluIG1vc3QKPiA+IGNhc2VzLCB0aGlzIGlzIG5v dCBhIGN1cnJlbnRseSBhY2NlcHRhYmxlIGFwcHJvYWNoIGZvciBtYW55IEdlbmVyaWMKPiA+IEtl cm5lbHMgZHVlIHRvIHNpemUgY29uc3RyYWludHMuCj4gCj4gSW4gdGhlIG1haW5saW5lIGtlcm5l bCB0aGVyZSBpcyBubyBzdWNoIHVzZSBjYXNlLiBJZiB5b3Ugd2FudCB0byBoYXZlCj4gRXh5bm9z LXdoYXRldmVyLWRyaXZlciAoZS5nLiBTRVJJQUxfU0FNU1VORyBvciBTM0MgUlRDKSwgeW91IHNo b3VsZAo+IHNlbGVjdCBBUkNIX0VYWU5PUyBiZWNhdXNlIG90aGVyd2lzZSBpdCBkb2VzIG5vdCBt YWtlIGFueSBzZW5zZS4gWmVybwo+IHNlbnNlLiBTdWNoIGtlcm5lbCB3b24ndCB3b3JrLgo+IAo+ IEl0IG1ha2VzIHNlbnNlIG9ubHkgaWYgdGhlcmUgaXMgc29tZSBvdGhlciB3b3JrLCBoaWRkZW4g aGVyZSwgd2hlcmUKPiBzb21lb25lIG1pZ2h0IHdhbnQgdG8gaGF2ZSBTRVJJQUxfU0FNU1VORyBv ciBTM0MgUlRDIHdpdGhvdXQKPiBBUkNIX0VYWU5PUy4gQWx0aG91Z2ggR0tJIGlzIG5vdCB0aGF0 IHdvcmsgYmVjYXVzZSBHS0kga2VybmVsIHdpbGwKPiBzZWxlY3QgQVJDSF9FWFlOT1MuIEl0IG11 c3Qgc2VsZWN0IEFSQ0hfRVhZTk9TIGlmIGl0IHdhbnRzIHRvIHN1cHBvcnQKPiBFeHlub3MgcGxh dGZvcm1zLgo+IAo+IFRoZXJlZm9yZSBJIGV4cGVjdCBmaXJzdCB0byBicmluZyB0aGlzICJzb21l IG90aGVyIHdvcmssIGhpZGRlbiBoZXJlIiB0bwo+IGJyb2FkZXIgYXVkaWVuY2UsIHNvIHdlIGNh biByZXZpZXcgaXRzIHVzZSBjYXNlLgoKQUZBSUEsIHRoZXJlIHJlYWxseSBpc24ndCBhbnkgR0tJ IHNwZWNpZmljIGNvZGUuICBFdmVyeXRoaW5nIHRoYXQgY2FuCmJlIHVwc3RyZWFtZWQsIGlzIHVw c3RyZWFtZWQuICBUaGUgZGVsdGEgY29uc2lzdHMgb2Ygc29tZSB2ZW5kb3IKb3Zlci1yaWRlcyAo aW1wbGVtZW50ZWQgdXNpbmcgdHJhY2UgZXZlbnRzL2hvb2tzIHNwcmVhZCBvdXQgb3ZlciB0aGUK Y29kZS1iYXNlKSwgbG90cyBvZiBmdW5jdGlvbiBleHBvcnRzIChub24tdXBzdHJlYW1hYmxlIGR1 ZSB0byBubwp1cHN0cmVhbSB1c2VyKSBhbmQgc29tZSBkZWZjb25maWcvZnJhZ21lbnRzLiAgVGhl cmUgcmVhbGx5IGlzIG5vdGhpbmcKZWxzZSB0byBzaGFyZS91cHN0cmVhbS91bmhpZGUuCgpUaGUg b25seSB0aGluZyBHS0kgbmVlZHMgaXMgYSBsaXR0bGUgS2NvbmZpZyBmbGV4aWJpbGl0eSBhYm92 ZSB3aGF0IGlzCmN1cnJlbnRseSBvZmZlcmVkLgoKPiA+IFdoYXQgdGhpcyBwYXRjaCBkb2VzIGlz IG1pZ3JhdGVzIHRob3NlIHN5bWJvbHMgZnJvbSBiZWluZyAnc2VsZWN0J2VkCj4gPiAoYWx3YXlz IGJ1aWx0LWluIHdpdGggbm8gcmVjb3Vyc2UpIHRvICdkZWZhdWx0IHknLiAgV2hlcmUgdGhlIGZv cm1lcgo+ID4gY2Fubm90IGJlIG92ZXItcmlkZGVuLCBidXQgdGhlIGxhdHRlciBjYW4gYmUgdmlh IGEgdmVuZG9yJ3MKPiA+IGRlZmNvbmZpZy9mcmFnbWVudC4KPiAKPiBJdCBjYW5ub3QgYmUgb3Zl cnJpZGRlbiBieSB2ZW5kb3IgZnJhZ21lbnQgYmVjYXVzZSBvcHRpb25zIGFyZSBub3QKPiB2aXNp YmxlLiBZb3UgY2Fubm90IGNoYW5nZSB0aGVtLgo+IAo+IFRoZSBwYXRjaCBkb2VzIG5vdGhpbmcg aW4gdGhpcyByZWdhcmQgKG1ha2luZyB0aGVtIHNlbGVjdGFibGUvcG9zc2libGUKPiB0byBkaXNh YmxlKSwgd2hpY2ggaXMgd2h5IEkgY29tcGxhaW5lZC4KCjEwMCUgYWdyZWUuICBBcyBJIGNvbW1l bnRlZCBpbiB0aGUgb3RoZXIgcGF0Y2gsIHRoaXMgd2FzIGEgZ29vZCBwb2ludAp0aGF0IHNob3Vs ZCBiZSBhZGRyZXNzZWQgCgo+ID4gSSBkb3VidCBtYW55IChhbnk/KSBvZiB0aGVzZSBzeW1ib2xz IGNhbiBiZSBjb252ZXJ0ZWQgdG8ga2VybmVsCj4gPiBtb2R1bGVzIGFueXdheSwgYXMgdGhleSBh cmUgcmVxdWlyZWQgdmVyeSBlYXJseSBvbiBpbiB0aGUgYm9vdAo+ID4gc2VxdWVuY2UuCj4gCj4g VHJ1ZSwgc29tZSBjb3VsZCwgc29tZSBub3QuIEFsc28gc29tZSBwbGF0Zm9ybXMgYXJlIHNldCB1 cCB2aWEKPiBib290bG9hZGVyLCBzbyBhY3R1YWxseSBjb3VsZCAic3Vydml2ZSIgdGlsbCBtb2R1 bGUgaXMgbG9hZGVkIGZyb20gc29tZQo+IGluaXRyZC4KCklmIHRoZXNlIGNvdWxkIGJlIHR1cm5l ZCBpbnRvIG1vZHVsZXMsIHRoYXQgd291bGQgYmUgZXZlbiBiZXR0ZXIhCgotLSAKTGVlIEpvbmVz IFvmnY7nkLzmlq9dClNlbmlvciBUZWNobmljYWwgTGVhZCAtIERldmVsb3BlciBTZXJ2aWNlcwpM aW5hcm8ub3JnIOKUgiBPcGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3IgQXJtIFNvQ3MKRm9sbG93IExp bmFybzogRmFjZWJvb2sgfCBUd2l0dGVyIHwgQmxvZwoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=