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.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 E0B14C433E0 for ; Wed, 12 Aug 2020 18:49:31 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 A086120774 for ; Wed, 12 Aug 2020 18:49:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="RqEePFem"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=linux.microsoft.com header.i=@linux.microsoft.com header.b="lglW0NET" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A086120774 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.microsoft.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=dDMMHRphXeM3iFojNhUPTrUe3FlTz5K1aQZ6dNz/+Yw=; b=RqEePFem4hGBWVWxwX2W9fjpq TZ5aH+IZqqxhyHkHz2EPohf+Tew/rl5fUCIOhU4zqbP1oKI4lIwPG8LbIvVm8JszbReQWwTjaJsv7 8vQPxeRqo5rsyv7cFktye/+lIwh3qfdUWvXKNFskEzyIgroZ4tBU3NtGl1N1ojbkvC5Xy2+z6nnq4 sQtcaBVK4j6BlLsrthFym9zWoFng6UrpbPZxforhGIqzDpKlttACTgVdg2I53hKYYOolOFnn7C/cI LLwCbsRziT7K+pezPrKb00deg0WcELClMpJZfzBwDSwf1KOS3T8qxi20NhSvJEcXCJ4zQ+a6G19S6 y2xZ/L9+g==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k5vmn-0006gB-Jj; Wed, 12 Aug 2020 18:47:41 +0000 Received: from linux.microsoft.com ([13.77.154.182]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1k5vmj-0006fj-Va for linux-arm-kernel@lists.infradead.org; Wed, 12 Aug 2020 18:47:39 +0000 Received: from [192.168.254.32] (unknown [47.187.206.220]) by linux.microsoft.com (Postfix) with ESMTPSA id 9B3FF20B4908; Wed, 12 Aug 2020 11:47:35 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9B3FF20B4908 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1597258056; bh=ZEYJ2skMtGmgwMikDvI3uIWWgJOx/B8qnK+vU4Qzxfs=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=lglW0NETwS/sXrB4/K4MPBOK8R2Ar9WMk5JjHbAx93S7Ot8eDgoXiDoFR1CsUeIlR +1mTZkcYO4PWflsNOqdNmk00M1NDxBnFedUApWhrRyj3nVl41/nw29KYBqi596QwW5 8Qp8XRV6IFf4T7w3Pq6k8K/kwHXpfh+WyRhdHYoE= Subject: Re: [PATCH v1 0/4] [RFC] Implement Trampoline File Descriptor To: Mark Rutland References: <20200728131050.24443-1-madvenka@linux.microsoft.com> <20200731180955.GC67415@C02TD0UTHF1T.local> <6236adf7-4bed-534e-0956-fddab4fd96b6@linux.microsoft.com> <20200804143018.GB7440@C02TD0UTHF1T.local> <20200812100650.GB28154@C02TD0UTHF1T.local> From: "Madhavan T. Venkataraman" Message-ID: Date: Wed, 12 Aug 2020 13:47:34 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200812100650.GB28154@C02TD0UTHF1T.local> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200812_144738_303499_82B59CAB X-CRM114-Status: GOOD ( 49.97 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kernel-hardening@lists.openwall.com, linux-api@vger.kernel.org, x86@kernel.org, linux-kernel@vger.kernel.org, oleg@redhat.com, linux-security-module@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-integrity@vger.kernel.org, linux-arm-kernel@lists.infradead.org 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 CgpPbiA4LzEyLzIwIDU6MDYgQU0sIE1hcmsgUnV0bGFuZCB3cm90ZToKPiBbLi5dCj4+Cj4+IFRo ZSBnZW5lcmFsIHByaW5jaXBsZSBvZiB0aGUgbWl0aWdhdGlvbiBpcyBXXlguIEkgd291bGQgYXJn dWUgdGhhdAo+PiB0aGUgYWJvdmUgb3B0aW9ucyBhcmUgdmlvbGF0aW9ucyBvZiB0aGUgV15YIHBy aW5jaXBsZS4gSWYgdGhleSBhcmUKPj4gYWxsb3dlZCB0b2RheSwgdGhleSBtdXN0IGJlIGZpeGVk LiBBbmQgdGhleSB3aWxsIGJlLiBTbywgd2UgY2Fubm90Cj4+IHJlbHkgb24gdGhlbS4KPiAKPiBI b2xkIG9uLgo+IAo+IENvbnRlbXBvcmFyeSBXXlggbWVhbnMgdGhhdCBhIGdpdmVuIHZpcnR1YWwg YWxpYXMgY2Fubm90IGJlIHdyaXRlYWJsZQo+IGFuZCBleGVjdXRlYWJsZSBzaW11bHRhbmVvdXNs eSwgcGVybWl0dGluZyAoYSkgYW5kIChiKS4gSWYgeW91IHJlYWQgdGhlCj4gcmVmZXJlbmNlcyBv biB0aGUgV2lraXBlZGlhIHBhZ2UgZm9yIFdeWCB5b3UnbGwgc2VlIHRoZSBPcGVuQlNEIDMuMwo+ IHJlbGVhc2Ugbm90ZXMgYW5kIHJlbGF0ZWQgcHJlc2VudGF0aW9uIG1ha2UgdGhpcyBjbGVhciwg YW5kIGZ1cnRoZXIgdGhleQo+IGV4cGVjdCAoYikgdG8gb2NjdXIgd2l0aCBKSVRTIGZsaXBwaW5n IFcvWCB3aXRoIG1wcm90ZWN0KCkuCj4gCj4gUGxlYXNlIGRvbid0IGNvbmZsYXRlIHlvdXIgYXNz dW1lZCBzdHJvbmdlciBzZW1hbnRpY3Mgd2l0aCB0aGUgZ2VuZXJhbAo+IHByaW5jaXBsZS4gSXQg bm90IG1hdGNoaW5nIHlvdSBleHBlY3RhdGlvbnMgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbgo+ IHRoYXQgaXQgaXMgd3JvbmcuCj4gCj4gSWYgeW91IHdhbnQgYSBzdHJvbmdlciBXXlggc2VtYW50 aWNzLCBwbGVhc2UgcmVmZXIgdG8gdGhpcyBzcGVjaWZpY2FsbHkKPiB3aXRoIGEgZGlzdGluY3Qg bmFtZS4KCk9LLiBGYWlyIGVub3VnaC4gV2UgY2FuIGdpdmUgYSBkaWZmZXJlbnQgbmFtZSB0byB0 aGUgc3Ryb25nZXIgcmVxdWlyZW1lbnQuCkp1c3QgZm9yIHRoZSBzYWtlIG9mIHRoaXMgZGlzY3Vz c2lvbiBhbmQgZm9yIHRoZSB3YW50IG9mIGEgYmV0dGVyIG5hbWUsCmxldCB1cyBjYWxsIGl0IFdY Mi4KCgo+IAo+PiBhKSBUaGlzIHJlcXVpcmVzIGEgcmVtYXAgb3BlcmF0aW9uLiBUd28gbWFwcGlu Z3MgcG9pbnQgdG8gdGhlIHNhbWUKPj4gwqDCoMKgwqAgcGh5c2ljYWwgcGFnZS4gT25lIG1hcHBp bmcgaGFzIFcgYW5kIHRoZSBvdGhlciBvbmUgaGFzIFguIFRoaXMKPj4gwqDCoMKgwqAgaXMgYSB2 aW9sYXRpb24gb2YgV15YLgo+Pgo+PiBiKSBUaGlzIGlzIGFnYWluIGEgdmlvbGF0aW9uLiBUaGUg a2VybmVsIHNob3VsZCByZWZ1c2UgdG8gZ2l2ZSBleGVjdXRlCj4+IMKgwqDCoMKgIHBlcm1pc3Np b24gdG8gYSBwYWdlIHRoYXQgd2FzIHdyaXRlYWJsZSBpbiB0aGUgcGFzdCBhbmQgcmVmdXNlIHRv Cj4+IMKgwqDCoMKgIGdpdmUgd3JpdGUgcGVybWlzc2lvbiB0byBhIHBhZ2UgdGhhdCB3YXMgZXhl Y3V0YWJsZSBpbiB0aGUgcGFzdC4KPj4KPj4gYykgVGhpcyBpcyBqdXN0IGEgdmFyaWF0aW9uIG9m IChhKS4KPiAKPiBBcyBhYm92ZSwgdGhpcyBpcyBub3QgdHJ1ZS4KPiAKPiBJZiB5b3UgaGF2ZSBh IHJhdGlvbmFsZSBmb3Igd2h5IHRoaXMgaXMgZGVzaXJhYmxlIG9yIG5lY2Vzc2FyeSwgcGxlYXNl Cj4ganVzdGlmeSB0aGF0IGJlZm9yZSB1c2luZyB0aGlzIGFzIGp1c3RpZmljYXRpb24gZm9yIGFk ZGl0aW9uYWwgZmVhdHVyZXMuCj4gCgpJIGFscmVhZHkgc3VwcGxpZWQgdGhlIGp1c3RpZmljYXRp b24uIEFueSB1c2VyIGxldmVsIG1ldGhvZCBjYW4gcG90ZW50aWFsbHkKYmUgaGlqYWNrZWQgYnkg YW4gYXR0YWNrZXIgZm9yIGhpcyBwdXJwb3NlLgoKV1ggZG9lcyBub3QgcHJldmVudCBhbGwgb2Yg dGhlIG1ldGhvZHMuIFdlIG5lZWQgV1gyLgoKCj4+IEluIGdlbmVyYWwsIHRoZSBwcm9ibGVtIHdp dGggdXNlci1sZXZlbCBtZXRob2RzIHRvIG1hcCBhbmQgZXhlY3V0ZQo+PiBkeW5hbWljIGNvZGUg aXMgdGhhdCB0aGUga2VybmVsIGNhbm5vdCB0ZWxsIGlmIGEgZ2VudWluZSBhcHBsaWNhdGlvbiBp cwo+PiB1c2luZyB0aGVtIG9yIGFuIGF0dGFja2VyIGlzIHVzaW5nIHRoZW0gb3IgcGlnZ3ktYmFj a2luZyBvbiB0aGVtLgo+IAo+IFllcywgYW5kIGFzIEkgcG9pbnRlZCBvdXQgdGhlIHNhbWUgaXMg dHJ1ZSBmb3IgdHJhbXBmZCB1bmxlc3MgeW91IGNhbgo+IHNvbWVob3cgYXV0aGVudGljYXRlIHRo ZSBjYWxscyBhcmUgbGVnaXRpbWF0ZSAoaW4gYm90aCBjYWxsc2l0ZSBhbmQgdGhlCj4gc2V0IG9m IGFyZ3VtZW50cyksIGFuZCBJIGRvbid0IHNlZSBhbnkgcmVhc29uYWJsZSB3YXkgb2YgZG9pbmcg dGhhdC4KPiAKCkkgYW0gYWZyYWlkIEkgYW0gbm90IGluIGFncmVlbWVudCB3aXRoIHRoaXMuIElm IFdYMiBpcyBub3QgaW1wbGVtZW50ZWQsCmFuIGF0dGFja2VyIGNhbiBoYWNrIGJvdGggY29kZSBh bmQgZGF0YS4gSWYgV1gyIGlzIGltcGxlbWVudGVkLCBhbiBhdHRhY2tlcgpjYW4gb25seSBhdHRh Y2sgZGF0YS4gVGhlIGF0dGFjayBzdXJmYWNlIGlzIHJlZHVjZWQuCgpBbHNvLCB0cmFtcGZkIGNh bGxzIGNvbWluZyBmcm9tIGNvZGUgZnJvbSBhIHNpZ25lZCBmaWxlIGNhbiBiZSBhdXRoZW50aWNh dGVkLgp0cmFtcGZkIGNhbGxzIGNvbWluZyBmcm9tIGFuIGF0dGFja2VyJ3MgZ2VuZXJhdGVkIGNv ZGUgY2Fubm90IGJlIGF1dGhlbnRpY2F0ZWQuCgoKPiBJZiB5b3UgcmVsYXggeW91ciB0aHJlYXQg bW9kZWwgdG8gYW4gYXR0YWNrZXIgbm90IGJlaW5nIGFibGUgdG8gbWFrZQo+IGFyYml0cmFyeSBz eXNjYWxscywgdGhlbiB5b3VyIHN1Z2dlc3Rpb24gdGhhdCB1c2Vyc3BhY2UgY2FuIHBlcm9ybQo+ IGNoY2VrcyBiZXR3ZWVuIHN5c2NhbGxzIG1heSBiZSBzdWZmaWNpZW50LCBidXQgYXMgSSBwb2lu dGVkIG91dCB0aGF0J3MKPiBlcXVhbGx5IHRydWUgZm9yIGEgc2VhbGVkIG1lbWZkIG9yIHNpbWls YXIuCj4gCgpBY3R1YWxseSwgSSBkaWQgbm90IHN1Z2dlc3QgdGhhdCB1c2Vyc3BhY2UgY2FuIHBl cmZvcm0gY2hlY2tzLiBJIHNhaWQgdGhhdAp0aGUga2VybmVsIGNhbiBwZXJmb3JtIGNoZWNrcy4K ClVzZXIgc3BhY2UgY2Fubm90IHJlbGlhYmx5IHBlcmZvcm0gY2hlY2tzIGJldHdlZW4gY2FsbHMu IEEgY2xldmVyIGhhY2tlcgpjYW4gY292ZXIgaGlzIHRyYWNrcy4KCkluIGFueSBjYXNlLCB0aGUg a2VybmVsIGhhcyBubyBrbm93bGVkZ2Ugb2YgdGhlc2UgY2hlY2tzLiBTbywgd2hlbiBleGVjdXRl CnBlcm1pc3Npb25zIGFyZSByZXF1ZXN0ZWQgZm9yIGEgcGFnZSwgYSBwcm9wZXJseSBpbXBsZW1l bnRlZCBXWDIgY2FuIHJlZnVzZS4KCgo+PiBPZmYgdGhlIHRvcCBvZiBteSBoZWFkLCBJIGhhdmUg dHJpZWQgdG8gaWRlbnRpZnkgc29tZSBleGFtcGxlcwo+PiB3aGVyZSB3ZSBjYW4gaGF2ZSBtb3Jl IHRydXN0IG9uIGR5bmFtaWMgY29kZSBhbmQgaGF2ZSB0aGUga2VybmVsCj4+IHBlcm1pdCBpdHMg ZXhlY3V0aW9uLgo+Pgo+PiAxLiBJZiB0aGUga2VybmVsIGNhbiBkbyB0aGUgam9iLCB0aGVuIHRo YXQgaXMgb25lIHNhZmUgd2F5LiBIZXJlLCB0aGUga2VybmVsCj4+IMKgwqDCoCBpcyB0aGUgY29k ZS4gVGhlcmUgaXMgbm8gY29kZSBnZW5lcmF0aW9uIGludm9sdmVkLiBUaGlzIGlzIHdoYXQgSQo+ PiDCoMKgwqAgaGF2ZSBwcmVzZW50ZWQgaW4gdGhlIHBhdGNoIHNlcmllcyBhcyB0aGUgZmlyc3Qg Y3V0Lgo+IAo+IFRoaXMgaXMgc2xlaWdodC1vZi1oYW5kOyBpdCBkb2Vzbid0IG1hdHRlciB3aGVy ZSB0aGUgbG9naWMgaXMgcGVyZm9ybWVkCj4gaWYgdGhlIHBvd2VyIGlzIGlkZW50aWNhbC4gUHJh Y3RpY2FsbHkgc3BlYWtpbmcgdGhpcyBpcyBlcXVpdmFsZW50IHRvCj4gc29tZSBkeW5hbWljIGNv ZGUgZ2VuZXJhdGlvbi4KPiAKPiBJIHRoaW5rIHRoYXQgaXQncyBtaXNsZWFkaW5nIHRvIHNheSB0 aGF0IGJlY2F1c2UgdGhlIGtlcm5lbCBlbXVsYXRlcwo+IHNvbWV0aGluZyBpdCBpcyBzYWZlIHdo ZW4gdGhlIHByb3ZlbmFuY2Ugb2YgdGhlIHN5c2NhbGwgYXJndW1lbnRzIGNhbm5vdAo+IGJlIHZl cmlmaWVkLgoKCkkgc3VibWl0IHRoYXQgdGhlcmUgYXJlIHR3byBhc3BlY3RzIC0gY29kZSBhbmQg ZGF0YS4gSW4gb25lIGNhc2UsIGJvdGgKY29kZSBhbmQgZGF0YSBjYW4gYmUgaGFja2VkLiBTbywg YW4gYXR0YWNrZXIgY2FuIG1vZGlmeSBib3RoIGNvZGUKYW5kIGRhdGEuIEluIHRoZSBvdGhlciBj YXNlLCB0aGUgYXR0YWNrZXIgY2FuIG9ubHkgbW9kaWZ5IGRhdGEuClRoZSBwb3dlciBpcyBub3Qg aWRlbnRpY2FsLiBUaGUgYXR0YWNrIHN1cmZhY2UgaXMgbm90IHRoZSBzYW1lLgoKTW9zdCBvZiB0 aGUgdGltZXMsIHNlY3VyaXR5IG1lYXN1cmVzIGFyZSBtaXRpZ2F0aW9ucy4gVGhleSBhcmUgbm90 IGEgMTAwJS4KVGhpcyBhcHByb2FjaCBvZiBub3QgYWxsb3dpbmcgdGhlIHVzZXIgdG8gZG8gY2Vy dGFpbiB0aGluZ3MgdGhhdCBjYW4gYmUKZXhwbG9pdGVkIGFuZCBoYXZpbmcgdGhlIGtlcm5lbCBk b2luZyB0aGVtIGluY3JlYXNlcyBvdXIgY29uZmlkZW5jZS4KRnJvbSB0aGF0IHBlcnNwZWN0aXZl LCB0aGUgdHdvIGFwcHJvYWNoZXMgYXJlIGRpZmZlcmVudCBhbmQgaXQgaXMgd29ydGgKcHVyc3Vp bmcgYSBrZXJuZWwgYmFzZWQgbWl0aWdhdGlvbi4KCgo+IAo+IFsuLi5dCj4gCj4+IEFueXdheSwg dGhlc2UgYXJlIGp1c3QgZXhhbXBsZXMuIFRoZSBwcmluY2lwbGUgaXMgLSBpZiB3ZSBjYW4gaWRl bnRpZnkKPj4gZHluYW1pYyBjb2RlIHRoYXQgaGFzIGEgY2VydGFpbiBtZWFzdXJlIG9mIHRydXN0 LCBjYW4gdGhlIGtlcm5lbAo+PiBwZXJtaXQgdGhlaXIgZXhlY3V0aW9uPwo+IAo+IE15IHBvaW50 IGdlbmVyYWxseSBpcyB0aGF0IHRoZSBrZXJuZWwgY2Fubm90IGlkZW50aWZ5IHRoaXMsIGFuZCBp Zgo+IHVzcnNwYWNlIGNvZGUgaXMgdHJ1c3RlZCB0byBkeW5hbWljYWxseSBnZW5lcmF0ZSB0cmFt cGZkIGFyZ3VtZW50cyBpdAo+IGNhbiBlcXVhbGx5IGJlIHRydXN0ZWQgdG8gZHluY2FtaWxseSBn ZW5lcmF0ZSBjb2RlLgoKSSBhbSBhZnJhaWQgbm90LiBTZWUgbXkgcHJldmlvdXMgcmVzcG9uc2Uu IEFiaWxpdHkgdG8gaGFjayBvbmx5IGRhdGEKZ2l2ZXMgYW4gYXR0YWNrZXIgZmV3ZXIgb3B0aW9u cyBhcyBjb21wYXJlZCB0byB0aGUgYWJpbGl0eSB0byBoYWNrCmJvdGggY29kZSBhbmQgZGF0YS4K Cj4gCj4gWy4uLl0KPiAKPj4gQXMgSSBoYXZlIG1lbnRpb25lZCBhYm92ZSwgSSBpbnRlbmQgdG8g aGF2ZSB0aGUga2VybmVsIGdlbmVyYXRlIGNvZGUKPj4gb25seSBpZiB0aGUgY29kZSBnZW5lcmF0 aW9uIGlzIHNpbXBsZSBlbm91Z2guIEZvciBtb3JlIGNvbXBsaWNhdGVkIGNhc2VzLAo+PiBJIHBs YW4gdG8gdXNlIGEgdXNlci1sZXZlbCBjb2RlIGdlbmVyYXRvciB0aGF0IGlzIGZvciBleGNsdXNp dmUga2VybmVsIHVzZS4KPj4gSSBoYXZlIHlldCB0byB3b3JrIG91dCB0aGUgZGV0YWlscyBvbiBo b3cgdGhpcyB3b3VsZCB3b3JrLiBOZWVkIHRpbWUuCj4gCj4gVGhpcyByZWFkcyB0byBtZSBsaWtl IHRyYW1wZmQgaXMgb25seSBkZWFsaW5nIHdpdGggYSBmZXcgc3BlY2lhbCBjYXNlcwo+IGFuZCB3 ZSBrbm93IHRoYXQgd2UgbmVlZCBhIG1vcmUgZ2VuZXJhbCBzb2x1dGlvbi4KPiAKPiBJIGhvcGUg SSBhbSBtaXN0YWtlbiwgYnV0IEkgZ2V0IHRoZSBzdHJvbmcgaW1wcmVzc2lvbiB0aGF0IHlvdSdy ZSB0cnlpbmcKPiB0byBqdXN0aWZ5IHlvdXIgZXhpc3Rpbmcgc29sdXRpb24gcmF0aGVyIHRoYW4g dHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlCj4gcHJvYmxlbSBzcGFjZS4KPiAKCkkgZG8gdW5kZXJz dGFuZCB0aGUgcHJvYmxlbSBzcGFjZS4gSSB3YW50ZWQgdG8gYWRkcmVzcyBkeW5hbWljIGNvZGUg aW4gMwpkaWZmZXJlbnQgd2F5cyBpbiBzZXBhcmF0ZSBwaGFzZXMgc3RhcnRpbmcgZnJvbSB0aGUg ZWFzaWVzdCBhbmQgd29ya2luZwpteSB3YXkgdXAgdG8gdGhlIG1vcmUgZGlmZmljdWx0IG9uZXMu CgoxLiBSZW1vdmUgZHluYW1pYyBjb2RlIHdoZXJlIHBvc3NpYmxlCgogICBJZiB0aGUga2VybmVs IGNhbiByZXBsYWNlIHVzZXIgbGV2ZWwgZHluYW1pYyBjb2RlLCB0aGVuIGRvIGl0LgogICBUaGlz IGlzIHdoYXQgSSBkaWQgaW4gdmVyc2lvbiAxLgoKMi4gUmVwbGFjZSBkeW5hbWljIGNvZGUgd2l0 aCBzdGF0aWMgY29kZQoKICAgV2hlcmUgeW91IGNhbm5vdCBkbyAoMSksIHJlcGxhY2UgZHluYW1p YyBjb2RlIHdpdGggc3RhdGljIGNvZGUgd2l0aAogICB0aGUga2VybmVsJ3MgaGVscC4gSSB3YW50 ZWQgdG8gZG8gdGhpcyBsYXRlci4gQnV0IEkgaGF2ZSBkZWNpZGVkIHRvCiAgIGRvIHRoaXMgaW4g dmVyc2lvbiAyLiBUaGlzIGNvbWJpbmVkIHdpdGggc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBvZgog ICBmaWxlcyBhZGRzIGEgbWVhc3VyZSBvciB0cnVzdCBpbiB0aGUgY29kZS4KCjMuIERlYWwgd2l0 aCBKSVQsIERCVCwgZXRjCgogICBJbiAoMSkgYW5kICgyKSwgd2UgZGVhbCB3aXRoIG1hY2hpbmUg Y29kZS4gSW4gKDMpLCB0aGVyZSBpcyBzb21lIHNvdXJjZQogICBmcm9tIHdoaWNoIGR5bmFtaWMg Y29kZSBuZWVkcyB0byBiZSBnZW5lcmF0ZWQgdXNpbmcgYSBjb2RlIGdlbmVyYXRvci4KICAgRS5n LiwgSklUIGNvZGUgZnJvbSBKYXZhIGJ5dGUgY29kZS4gSGVyZSwgdGhlIHNvbHV0aW9uIEkgaGFk IGluIG1pbmQKICAgaGFkIHR3byBwYXJ0czoKCiAgICAgICAtIE1ha2UgdGhlIHNvdXJjZSBtb3Jl IHRydXN0d29ydGh5IGJ5IHJlcXVpcmluZyBpdCB0byBiZSBwYXJ0CiAgICAgICAgIG9mIGEgc2ln bmVkIGZpbGUKICAgICAgIC0gRGVzaWduIGEgY29kZSBnZW5lcmF0b3IgdHJ1c3RlZCBhbmQgdXNl ZCBleGNsdXNpdmVseSBieSB0aGUga2VybmVsCgpJbiB0aGlzIHBhdGNoc2V0LCBJIHdhbnRlZCB0 byBsYXkgYSBmb3VuZGF0aW9uIGZvciBhbGwgMyBhbmQgYXR0ZW1wdCB0bwpzb2x2ZSAoMSkgZmly c3QuIE9uY2UgdGhpcyB3YXMgaW4gcGxhY2UsIEkgd2FudGVkIHRvIGRvICgyKSBhbmQgdGhlbiAo MykuCgpJbiByZXRyb3NwZWN0LCBJIHNob3VsZCBoYXZlIHByb2JhYmx5IHN0YXJ0ZWQgd2l0aCB0 aGUgYmlnIHBpY3R1cmUgZmlyc3QKaW5zdGVhZCBvZiBzdGFydGluZyB3aXRoIGp1c3QgaXRlbSAo MSkuIEJ1dCBJIGFsd2F5cyBoYWQgdGhlIGJpZyBwaWN0dXJlCmluIG1pbmQuIFRoYXQgc2FpZCwg SSBkaWQgbm90IG5lY2Vzc2FyaWx5IGhhdmUgYWxsIHRoZSBkZXRhaWxzIGZsZXNoZWQKb3V0IGZv ciBhbGwgdGhlIHBoYXNlcy4gKDMpIGlzIGNvbXBsZXguCgpNeSBmb2N1cyB3YXMgdG8gZGVmaW5l IHRoZSBBUEkgaW4gYSBnZW5lcmljIGVub3VnaCBmYXNoaW9uIHNvIHRoYXQgYWxsCjMgcGhhc2Vz IGNhbiBiZSBpbXBsZW1lbnRlZC4gQnV0IEkgcmVhbGl6ZSB0aGF0IGl0IGlzIGEgaGFyZCBzZWxs IGF0IHRoaXMKcG9pbnQgdG8gY29udmluY2UgcGVvcGxlIHRoYXQgdGhlIEFQSSBpcyBhZGVxdWF0 ZSBmb3IgcGhhc2UgMy4gU28sCkkgaGF2ZSBkZWNpZGVkIHRvIGRvICgxKSBhbmQgKDIpLiAoMykg aGFzIHRvIGJlIGRvbmUgc2VwYXJhdGVseSB3aXRoCm1vcmUgdGhvdWdodCBhbmQgZGV0YWlscyBw dXQgaW50byBpdC4KCkFsc28sIGl0IG1heSBiZSB0aGUgY2FzZSB0aGF0IHRoZXJlIGFyZSBzb21l IGV4YW1wbGVzIG9mIGR5bmFtaWMgY29kZQpvdXQgdGhlcmUgdGhhbiBjYW4gbmV2ZXIgYmUgYWRk cmVzc2VkLiBNeSBnb2FsIGlzIHRvIHRyeSB0byBhZGRyZXNzIGEKbWFqb3JpdHkgb2YgdGhlIGR5 bmFtaWMgY29kZSBvdXQgdGhlcmUuCgoKPiBUbyBiZSBjbGVhciwgbXkgc3Ryb25nIG9waW5pb24g aXMgdGhhdCB3ZSBzaG91bGQgbm90IGJlIHRyeWluZyB0byBkbwo+IHRoaXMgc29ydCBvZiBlbXVs YXRpb24gb3IgY29kZSBnZW5lcmF0aW9uIHdpdGhpbiB0aGUga2VybmVsLiBJIGRvIHRoaW5rCj4g aXQncyB3b3J0aHdoaWxlIHRvIGxvb2sgYXQgbWVjaGFuaXNtcyB0byBtYWtlIGl0IGhhcmRlciB0 byBzdWJ2ZXJ0Cj4gZHluYW1pYyB1c2Vyc3BhY2UgY29kZSBnZW5lcmF0aW9uLCBidXQgSSB0aGlu ayB0aGUgY29kZSBnZW5lcmF0aW9uCj4gaXRzZWxmIG5lZWRzIHRvIGxpdmUgaW4gdXNlcnNwYWNl IChlLmcuIGZvciBBQkkgcmVhc29ucyBJIHByZXZpb3VzbHkKPiBtZW50aW9uZWQpLgo+IAoKSSBj b21wbGV0ZWx5IGFncmVlIHRoYXQgdGhlIGtlcm5lbCBzaG91bGQgbm90IGRlYWwgd2l0aCB0aGUg Y29tcGxleGl0aWVzCm9mIGNvZGUgZ2VuZXJhdGlvbiBhbmQgQUJJIGRldGFpbHMuIE15IHZlcnNp b24gMSBkaWQgbm90IGhhdmUgYW55IGNvZGUKZ2VuZXJhdGlvbi4gQnV0IHNpbmNlIGEgcGVyZm9y bWFuY2UgaXNzdWUgd2FzIHJhaXNlZCwgSSBleHBsb3JlZCB0aGUgaWRlYQpvZiBrZXJuZWwgY29k ZSBnZW5lcmF0aW9uLiBUbyBiZSBob25lc3QsIEkgd2FzIG5vdCByZWFsbHkgdGhhdApjb21mb3J0 YWJsZSB3aXRoIHRoZSBpZGVhLgoKVGhhdCBpcyB3aHkgSSBoYXZlIGRlY2lkZWQgdG8gaW1wbGVt ZW50IHRoZSBzZWNvbmQgcGllY2UgSSBoYWQgaW4KbXkgcGxhbiBub3cuIFRoaXMgcGllY2UgZG9l cyBub3QgaGF2ZSB0aGUgY29kZSBnZW5lcmF0aW9uIGNvbXBsZXhpdGllcwpvciBBQkkgaXNzdWVz LiBUaGlzIHBpZWNlIGNhbiBiZSB1c2VkIHRvIHNvbHZlIGxpYmZmaSwgR0NDLCBldGMuCkkgd2ls bCBzdGlsbCB3cml0ZSB0aGUgY29kZSBpbiBzdWNoIGEgd2F5IHRoYXQgSSBjYW4gdXNlIHRoZSBm aXJzdAphcHByb2FjaCBpbiB0aGUgZnV0dXJlIGlmIEkgcmVhbGx5IG5lZWQgaXQuIEJ1dCBpdCB3 aWxsIG5vdCBpbnZvbHZlIGFueQpjb2RlIGdlbmVyYXRpb24gZnJvbSB0aGUga2VybmVsLiBJdCB3 aWxsIG9ubHkgYmUgdXNlZCBmb3IgY2FzZXMgdGhhdApkb24ndCBtaW5kIHRoZSBleHRyYSB0cmlw IHRvIHRoZSBrZXJuZWwuCgpNYWRoYXZhbgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJt LWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=