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=-4.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,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 EDF63C2B9F8 for ; Tue, 25 May 2021 17:00:51 +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 A944161417 for ; Tue, 25 May 2021 17:00:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A944161417 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ciyoM4mkkM2Rhg0wy1R+Psa2X3UNWV+BrWXhJOPrlZo=; b=qDF2qCNbhQ/9Qn KRAvkPKwunlQHLUgqe167xkdc7BuijtF23w+lHuLsgtvjRLWyduhsT4sqCMoUSc4+CU9ZOFdkH/t8 UiapA7ODrs/NqZCdTlDYfE8fRmplOmm5GpnSBwle/zadxNrX8G1Q7jpi1zl/UFllUeUQO8r0IzRoA EBMGtweTiXIqAOgvS0qruAw19ahtTmSPZaZZY1awu6wPeFEwUTXkoaD7+JZ3JgFA+Ha845iBEladq dt6l6dXAgK+3y/KEW/I3rw1z8rYLlVJT73c32SVvUfyF981J4UT/C88qZIc+7IyoreoO+mZTiaPUb 0wNhHtQSXVPB8rdmqnwg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1llaO3-006eWh-6U; Tue, 25 May 2021 16:58:36 +0000 Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1llaAS-006XJZ-EI; Tue, 25 May 2021 16:44:35 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id CD1F66141C; Tue, 25 May 2021 16:44:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1621961071; bh=5oN3EtTdmL5Px8suEvZdMe7wkPt2RTqTyoOe/6b1hCE=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=bIuSWTh2ApRCba9KkZA1aDoOEmOFb28i8aBYXKixozE5dfV2Zw4bdvo77GXgphFxg MlpZ1HUJB8bFV6KhSYQCKtynQ6qOo1IqYbdW9i0HiHlfckIyddVjne9ELJl+1GmWF+ HS+/0CXcm9U5YlVpB0rO+v6nWNAyqEt4KnGuW8fFaz1NDET9Tt5v2N7BW4VrgZc4X2 mI2gpGRWIkUAjRMryN5D8owK0Fy2qlS+sYUaoRoBdnWJPGDQdPtyU4RBXrH26cuGH6 yHuiM3f9sNOSjLn9NDeNT9v5tmQdFL98jXFWi4zj3ToMO8AGel654CDIXMrhkToBzT tbuoD6invOitQ== Received: by mail-ot1-f47.google.com with SMTP id 36-20020a9d0ba70000b02902e0a0a8fe36so29156260oth.8; Tue, 25 May 2021 09:44:31 -0700 (PDT) X-Gm-Message-State: AOAM531Y7ShkLlPS3b3CvPkEEQtuWWSpjApnxipbgqHwcio4U04zCpX3 rVmUB758/vVElIZVplIwXlCTq6QR+VtTWHSDEgQ= X-Google-Smtp-Source: ABdhPJxHcNV5E9Aq9DmI16kg0bRM1CAhH1vBGGpDq2HROnSwgPSmRHmBz0qJhBCX8wEvSgsbv20ccxJqBXg7taXDqHs= X-Received: by 2002:a05:6830:4da:: with SMTP id s26mr23175972otd.77.1621961071046; Tue, 25 May 2021 09:44:31 -0700 (PDT) MIME-Version: 1.0 References: <7a1e2ebc-f7d8-8431-d844-41a9c36a8911@arm.com> <01efd004-1c50-25ca-05e4-7e4ef96232e2@arm.com> <87eedxbtkn.fsf@stealth> <877djnaq11.fsf@stealth> In-Reply-To: From: Ard Biesheuvel Date: Tue, 25 May 2021 18:44:19 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [BUG] rockpro64: PCI BAR reassignment broken by commit 9d57e61bf723 ("of/pci: Add IORESOURCE_MEM_64 to resource flags for 64-bit memory addresses") To: Peter Geis Cc: Punit Agrawal , Robin Murphy , Alexandru Elisei , Linux Kernel Mailing List , "open list:ARM/Rockchip SoC..." , arm-mail-list , Heiko Stuebner , Leonardo Bras , Rob Herring , PCI , =?UTF-8?Q?Christian_K=C3=B6nig?= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210525_094432_589108_EB6A74BC X-CRM114-Status: GOOD ( 59.03 ) 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 T24gVHVlLCAyNSBNYXkgMjAyMSBhdCAxODoyMywgUGV0ZXIgR2VpcyA8cGd3aXBlb3V0QGdtYWls LmNvbT4gd3JvdGU6Cj4KPiBPbiBUdWUsIE1heSAyNSwgMjAyMSBhdCAxMTo1NSBBTSBBcmQgQmll c2hldXZlbCA8YXJkYkBrZXJuZWwub3JnPiB3cm90ZToKPiA+Cj4gPiBPbiBUdWUsIDI1IE1heSAy MDIxIGF0IDE3OjM0LCBQZXRlciBHZWlzIDxwZ3dpcGVvdXRAZ21haWwuY29tPiB3cm90ZToKPiA+ ID4KPiA+ID4gT24gVHVlLCBNYXkgMjUsIDIwMjEgYXQgOTo1NyBBTSBBcmQgQmllc2hldXZlbCA8 YXJkYkBrZXJuZWwub3JnPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IE9uIFR1ZSwgMjUgTWF5IDIw MjEgYXQgMTU6NDIsIFB1bml0IEFncmF3YWwgPHB1bml0YWdyYXdhbEBnbWFpbC5jb20+IHdyb3Rl Ogo+ID4gPiA+ID4KPiA+ID4gPiA+IEhpIEFyZCwKPiA+ID4gPiA+Cj4gPiA+ID4gPiBBcmQgQmll c2hldXZlbCA8YXJkYkBrZXJuZWwub3JnPiB3cml0ZXM6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBP biBTdW4sIDIzIE1heSAyMDIxIGF0IDEzOjA2LCBQdW5pdCBBZ3Jhd2FsIDxwdW5pdGFncmF3YWxA Z21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiBSb2JpbiBNdXJwaHkg PHJvYmluLm11cnBoeUBhcm0uY29tPiB3cml0ZXM6Cj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4g PiBbICtsaW51eC1wY2kgZm9yIHZpc2liaWxpdHkgXQo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4g Pj4gPiBPbiAyMDIxLTA1LTE4IDEwOjA5LCBBbGV4YW5kcnUgRWxpc2VpIHdyb3RlOgo+ID4gPiA+ ID4gPj4gPj4gQWZ0ZXIgZG9pbmcgYSBnaXQgYmlzZWN0IEkgd2FzIGFibGUgdG8gdHJhY2UgdGhl IGZvbGxvd2luZyBlcnJvciB3aGVuIGJvb3RpbmcgbXkKPiA+ID4gPiA+ID4+ID4+IHJvY2twcm82 NCB2MiAocmszMzk5IFNvQykgd2l0aCBhIFBDSUUgTlZNRSBleHBhbnNpb24gY2FyZDoKPiA+ID4g PiA+ID4+ID4+IFsuLl0KPiA+ID4gPiA+ID4+ID4+IFsgICAgMC4zMDUxODNdIHJvY2tjaGlwLXBj aWUgZjgwMDAwMDAucGNpZTogaG9zdCBicmlkZ2UgL3BjaWVAZjgwMDAwMDAgcmFuZ2VzOgo+ID4g PiA+ID4gPj4gPj4gWyAgICAwLjMwNTI0OF0gcm9ja2NoaXAtcGNpZSBmODAwMDAwMC5wY2llOiAg ICAgIE1FTSAweDAwZmEwMDAwMDAuLjB4MDBmYmRmZmZmZiAtPgo+ID4gPiA+ID4gPj4gPj4gMHgw MGZhMDAwMDAwCj4gPiA+ID4gPiA+PiA+PiBbICAgIDAuMzA1Mjg1XSByb2NrY2hpcC1wY2llIGY4 MDAwMDAwLnBjaWU6ICAgICAgIElPIDB4MDBmYmUwMDAwMC4uMHgwMGZiZWZmZmZmIC0+Cj4gPiA+ ID4gPiA+PiA+PiAweDAwZmJlMDAwMDAKPiA+ID4gPiA+ID4+ID4+IFsgICAgMC4zMDYyMDFdIHJv Y2tjaGlwLXBjaWUgZjgwMDAwMDAucGNpZTogc3VwcGx5IHZwY2llMXY4IG5vdCBmb3VuZCwgdXNp bmcgZHVtbXkKPiA+ID4gPiA+ID4+ID4+IHJlZ3VsYXRvcgo+ID4gPiA+ID4gPj4gPj4gWyAgICAw LjMwNjMzNF0gcm9ja2NoaXAtcGNpZSBmODAwMDAwMC5wY2llOiBzdXBwbHkgdnBjaWUwdjkgbm90 IGZvdW5kLCB1c2luZyBkdW1teQo+ID4gPiA+ID4gPj4gPj4gcmVndWxhdG9yCj4gPiA+ID4gPiA+ PiA+PiBbICAgIDAuMzczNzA1XSByb2NrY2hpcC1wY2llIGY4MDAwMDAwLnBjaWU6IFBDSSBob3N0 IGJyaWRnZSB0byBidXMgMDAwMDowMAo+ID4gPiA+ID4gPj4gPj4gWyAgICAwLjM3MzczMF0gcGNp X2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbYnVzIDAwLTFmXQo+ID4gPiA+ID4gPj4g Pj4gWyAgICAwLjM3Mzc1MV0gcGNpX2J1cyAwMDAwOjAwOiByb290IGJ1cyByZXNvdXJjZSBbbWVt IDB4ZmEwMDAwMDAtMHhmYmRmZmZmZiA2NGJpdF0KPiA+ID4gPiA+ID4+ID4+IFsgICAgMC4zNzM3 NzddIHBjaV9idXMgMDAwMDowMDogcm9vdCBidXMgcmVzb3VyY2UgW2lvICAweDAwMDAtMHhmZmZm Zl0gKGJ1cwo+ID4gPiA+ID4gPj4gPj4gYWRkcmVzcyBbMHhmYmUwMDAwMC0weGZiZWZmZmZmXSkK PiA+ID4gPiA+ID4+ID4+IFsgICAgMC4zNzM4MzldIHBjaSAwMDAwOjAwOjAwLjA6IFsxZDg3OjAx MDBdIHR5cGUgMDEgY2xhc3MgMHgwNjA0MDAKPiA+ID4gPiA+ID4+ID4+IFsgICAgMC4zNzM5NzNd IHBjaSAwMDAwOjAwOjAwLjA6IHN1cHBvcnRzIEQxCj4gPiA+ID4gPiA+PiA+PiBbICAgIDAuMzcz OTkyXSBwY2kgMDAwMDowMDowMC4wOiBQTUUjIHN1cHBvcnRlZCBmcm9tIEQwIEQxIEQzaG90Cj4g PiA+ID4gPiA+PiA+PiBbICAgIDAuMzc4NTE4XSBwY2kgMDAwMDowMDowMC4wOiBicmlkZ2UgY29u ZmlndXJhdGlvbiBpbnZhbGlkIChbYnVzIDAwLTAwXSksCj4gPiA+ID4gPiA+PiA+PiByZWNvbmZp Z3VyaW5nCj4gPiA+ID4gPiA+PiA+PiBbICAgIDAuMzc4NzY1XSBwY2kgMDAwMDowMTowMC4wOiBb MTQ0ZDphODA4XSB0eXBlIDAwIGNsYXNzIDB4MDEwODAyCj4gPiA+ID4gPiA+PiA+PiBbICAgIDAu Mzc4ODY5XSBwY2kgMDAwMDowMTowMC4wOiByZWcgMHgxMDogW21lbSAweDAwMDAwMDAwLTB4MDAw MDNmZmYgNjRiaXRdCj4gPiA+ID4gPiA+PiA+PiBbICAgIDAuMzc5MDUxXSBwY2kgMDAwMDowMTow MC4wOiBNYXggUGF5bG9hZCBTaXplIHNldCB0byAyNTYgKHdhcyAxMjgsIG1heCAyNTYpCj4gPiA+ ID4gPiA+PiA+PiBbICAgIDAuMzc5NjYxXSBwY2kgMDAwMDowMTowMC4wOiA4LjAwMCBHYi9zIGF2 YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieQo+ID4gPiA+ID4gPj4gPj4gMi41IEdU L3MgUENJZSB4NCBsaW5rIGF0IDAwMDA6MDA6MDAuMCAoY2FwYWJsZSBvZiAzMS41MDQgR2IvcyB3 aXRoIDguMCBHVC9zIFBDSWUKPiA+ID4gPiA+ID4+ID4+IHg0IGxpbmspCj4gPiA+ID4gPiA+PiA+ PiBbICAgIDAuMzkzMjY5XSBwY2lfYnVzIDAwMDA6MDE6IGJ1c25fcmVzOiBbYnVzIDAxLTFmXSBl bmQgaXMgdXBkYXRlZCB0byAwMQo+ID4gPiA+ID4gPj4gPj4gWyAgICAwLjM5MzMxMV0gcGNpIDAw MDA6MDA6MDAuMDogQkFSIDE0OiBubyBzcGFjZSBmb3IgW21lbSBzaXplIDB4MDAxMDAwMDBdCj4g PiA+ID4gPiA+PiA+PiBbICAgIDAuMzkzMzMzXSBwY2kgMDAwMDowMDowMC4wOiBCQVIgMTQ6IGZh aWxlZCB0byBhc3NpZ24gW21lbSBzaXplIDB4MDAxMDAwMDBdCj4gPiA+ID4gPiA+PiA+PiBbICAg IDAuMzkzMzU2XSBwY2kgMDAwMDowMTowMC4wOiBCQVIgMDogbm8gc3BhY2UgZm9yIFttZW0gc2l6 ZSAweDAwMDA0MDAwIDY0Yml0XQo+ID4gPiA+ID4gPj4gPj4gWyAgICAwLjM5MzM3NV0gcGNpIDAw MDA6MDE6MDAuMDogQkFSIDA6IGZhaWxlZCB0byBhc3NpZ24gW21lbSBzaXplIDB4MDAwMDQwMDAg NjRiaXRdCj4gPiA+ID4gPiA+PiA+PiBbICAgIDAuMzkzMzk3XSBwY2kgMDAwMDowMDowMC4wOiBQ Q0kgYnJpZGdlIHRvIFtidXMgMDFdCj4gPiA+ID4gPiA+PiA+PiBbICAgIDAuMzkzODM5XSBwY2ll cG9ydCAwMDAwOjAwOjAwLjA6IFBNRTogU2lnbmFsaW5nIHdpdGggSVJRIDc4Cj4gPiA+ID4gPiA+ PiA+PiBbICAgIDAuMzk0MTY1XSBwY2llcG9ydCAwMDAwOjAwOjAwLjA6IEFFUjogZW5hYmxlZCB3 aXRoIElSUSA3OAo+ID4gPiA+ID4gPj4gPj4gWy4uXQo+ID4gPiA+ID4gPj4gPj4gdG8gdGhlIGNv bW1pdCA5ZDU3ZTYxYmY3MjMgKCJvZi9wY2k6IEFkZCBJT1JFU09VUkNFX01FTV82NCB0bwo+ID4g PiA+ID4gPj4gPj4gcmVzb3VyY2UgZmxhZ3MgZm9yCj4gPiA+ID4gPiA+PiA+PiA2NC1iaXQgbWVt b3J5IGFkZHJlc3NlcyIpLgo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiBGV0ZXLCBteSBo dW5jaCBpcyB0aGF0IHRoZSBob3N0IGJyaWRnZSBhZHZlcnRpc2luZyBubyAzMi1iaXQgbWVtb3J5 Cj4gPiA+ID4gPiA+PiA+IHJlc291cmNlLCBvbmx5IG9ubHkgYSBzaW5nbGUgNjQtYml0IG5vbi1w cmVmZXRjaGFibGUgb25lIChldmVuIHRob3VnaAo+ID4gPiA+ID4gPj4gPiBpdCdzIGVudGlyZWx5 IGJlbG93IDRHQikgbWlnaHQgYmUgYSBiaXQgd2VpcmQgYW5kIHRyaXBwaW5nIHNvbWV0aGluZwo+ ID4gPiA+ID4gPj4gPiB1cCBpbiB0aGUgcmVzb3VyY2UgYXNzaWdubWVudCBjb2RlLiBJdCBjZXJ0 YWlubHkgc2VlbXMgbGlrZSB0aGUgdGhpbmcKPiA+ID4gPiA+ID4+ID4gbW9zdCBkaXJlY3RseSBy ZWxhdGVkIHRvIHRoZSBvZmZlbmRpbmcgY29tbWl0Lgo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4g Pj4gPiBJJ2QgYmUgdGVtcHRlZCB0byB0cnkgZmlkZGxpbmcgd2l0aCB0aGF0IGluIHRoZSBEVCAo aS5lLiBjaGFuZ2luZwo+ID4gPiA+ID4gPj4gPiAweDgzMDAwMDAwIHRvIDB4ODIwMDAwMDAgaW4g dGhlIFBDSWUgbm9kZSdzICJyYW5nZXMiIHByb3BlcnR5KSB0byBzZWUKPiA+ID4gPiA+ID4+ID4g aWYgaXQgbWFrZXMgYW55IGRpZmZlcmVuY2UuIE5vdGUgdGhhdCBldmVuIGlmIGl0IGhlbHBzLCB0 aG91Z2gsIEkKPiA+ID4gPiA+ID4+ID4gZG9uJ3Qga25vdyB3aGV0aGVyIHRoYXQncyB0aGUgY29y cmVjdCBmaXggb3IganVzdCBhIGJvZGdlIGFyb3VuZCBhCj4gPiA+ID4gPiA+PiA+IGNvcm5lci1j YXNlIGJ1ZyBzb21ld2hlcmUgaW4gdGhlIHJlc291cmNlIGNvZGUuCj4gPiA+ID4gPiA+Pgo+ID4g PiA+ID4gPj4gRnJvbSBkaWdnaW5nIGludG8gdGhpcyBmdXJ0aGVyIHRoZSBmYWlsdXJlIHNlZW1z IHRvIGJlIGR1ZSB0byBhIG1pc21hdGNoCj4gPiA+ID4gPiA+PiBvZiBmbGFncyB3aGVuIGFsbG9j YXRpbmcgcmVzb3VyY2VzIGluIHBjaV9idXNfYWxsb2NfZnJvbV9yZWdpb24oKSAtCj4gPiA+ID4g PiA+Pgo+ID4gPiA+ID4gPj4gICAgIGlmICgocmVzLT5mbGFncyBeIHItPmZsYWdzKSAmIHR5cGVf bWFzaykKPiA+ID4gPiA+ID4+ICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gPiA+ID4gPj4KPiA+ ID4gPiA+ID4+IFRob3VnaCBJIGFtIGFsc28gbm90IHN1cmUgd2h5IHRoZSBmYWlsdXJlIGlzIG9u bHkgYmVpbmcgcmVwb3J0ZWQgb24KPiA+ID4gPiA+ID4+IFJLMzM5OSAtIGRvZXMgYSBzaW5nbGUg NjQtYml0IHdpbmRvdyBoYXZlIGFueXRoaW5nIHRvIGRvIHdpdGggaXQ/Cj4gPiA+ID4gPiA+Pgo+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBUaGUgTlZNZSBpbiB0aGUgZXhhbXBsZSBleHBvc2VzIGEg c2luZ2xlIDY0LWJpdCBub24tcHJlZmV0Y2hhYmxlIEJBUi4KPiA+ID4gPiA+ID4gU3VjaCBCQVJz IGNhbiBub3QgYmUgYWxsb2NhdGVkIGluIGEgcHJlZmV0Y2hhYmxlIGhvc3QgYnJpZGdlIHdpbmRv dwo+ID4gPiA+ID4gPiAodW5saWtlIHRoZSBjb252ZXJzZSwgaS5lLiwgYWxsb2NhdGluZyBhIHBy ZWZldGNoYWJsZSBCQVIgaW4gYQo+ID4gPiA+ID4gPiBub24tcHJlZmV0Y2hhYmxlIGhvc3QgYnJp ZGdlIHdpbmRvdyBpcyBmaW5lKQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA2NC1iaXQgbm9uLXBy ZWZldGNoYWJsZSBob3N0IGJyaWRnZSB3aW5kb3dzIGNhbm5vdCBiZSBmb3J3YXJkZWQgYnkgUENJ Cj4gPiA+ID4gPiA+IHRvIFBDSSBicmlkZ2VzLCB0aGV5IHNpbXBseSBsYWNrIHRoZSBCQVIgcmVn aXN0ZXJzIHRvIGRlc2NyaWJlIHRoZW0uCj4gPiA+ID4gPiA+IFRoZXJlZm9yZSwgbm9uLXByZWZl dGNoYWJsZSBlbmRwb2ludCBCQVJzIChldmVuIDY0LWJpdCBvbmVzKSBuZWVkIHRvCj4gPiA+ID4g PiA+IGJlIGNhcnZlZCBvdXQgb2YgYSBob3N0IGJyaWRnZSdzIG5vbi1wcmVmZXRjaGFibGUgMzIt Yml0IHdpbmRvdyBpZgo+ID4gPiA+ID4gPiB0aGV5IG5lZWQgdG8gcGFzcyB0aHJvdWdoIGEgYnJp ZGdlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoYW5rIHlvdSBmb3IgdGhlIGV4cGxhbmF0aW9uLiBJ IGFsc28gbG9va2VkIGF0IHRoZSBQQ0ktdG8tUENJIEJyaWRnZQo+ID4gPiA+ID4gc3BlYyB0byB1 bmRlcnN0YW5kIHdoZXJlIHNvbWUgb2YgdGhlIGxpbWl0YXRpb25zIGFyZSBjb21pbmcgZnJvbS4K PiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFNvIHRoZSBlcnJvciBzZWVtcyB0byBiZSBoZXJlIHRoYXQg dGhlIGhvc3QgYnJpZGdlJ3MgMzItYml0Cj4gPiA+ID4gPiA+IG5vbi1wcmVmZXRjaGFibGUgd2lu ZG93IGhhcyB0aGUgNjQtYml0IGF0dHJpYnV0ZSBzZXQsIGV2ZW4gdGhvdWdoIGl0Cj4gPiA+ID4g PiA+IHJlc2lkZXMgYmVsb3cgNCBHQiBlbnRpcmVseS4gSSBzdXBwb3NlIHRoYXQgdGhlIHJlc291 cmNlIGFsbG9jYXRpb24KPiA+ID4gPiA+ID4gY291bGQgYmUgbWFkZSBtb3JlIGZvcmdpdmluZyAo YW5kIGl0IHdhcyBpbiB0aGUgcGFzdCwgYmVmb3JlIGNvbW1pdAo+ID4gPiA+ID4gPiA5ZDU3ZTYx YmY3MjMgd2FzIGFwcGxpZWQpLiBIb3dldmVyLCBJIHdvdWxkIHN0cm9uZ2x5IHJlY29tbWVuZCBu b3QKPiA+ID4gPiA+ID4gZGV2aWF0aW5nIGZyb20gY29tbW9uIHByYWN0aWNlLCBhbmQganVzdCBk ZXNjcmliZSB0aGUgMzItYml0Cj4gPiA+ID4gPiA+IGFkZHJlc3NhYmxlIG5vbi1wcmVmZXRjaGFi bGUgcmVzb3VyY2Ugd2luZG93IGFzIHN1Y2guCj4gPiA+ID4gPgo+ID4gPiA+ID4gSUlVQywgdGhl IGhvc3QgYnJpZGdlJ3MgY29uZmlndXJhdGlvbiAoNjQtYml0IG9uIG5vbi1wcmVmZXRjaGFibGUK PiA+ID4gPiA+IHdpbmRvdykgaXMgYmFzZWQgb24gd2hhdCB0aGUgaGFyZHdhcmUgYWR2ZXJ0aXNl cy4KPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBXaGF0IGRvIHlvdSBtZWFuIGJ5ICd3aGF0IHRo ZSBoYXJkd2FyZSBhZHZlcnRpc2VzJz8gVGhlIGhvc3QgYnJpZGdlIGlzCj4gPiA+ID4gYXBwYXJl bnRseSBjb25maWd1cmVkIHRvIGRlY29kZSBhIDMyLWJpdCBhZGRyZXNzYWJsZSB3aW5kb3cgYXMg TU1JTywKPiA+ID4gPiBhbmQgdGhlIHF1ZXN0aW9uIGlzIHdoeSB0aGlzIHdpbmRvdyBoYXMgdGhl IDY0LWJpdCBhdHRyaWJ1dGUgc2V0IGluCj4gPiA+ID4gdGhlIERUIGRlc2NyaXB0aW9uLgo+ID4g PiA+Cj4gPiA+ID4gPiBDYW4geW91IGVsYWJvcmF0ZSBvbiB3aGF0IHlvdSBoYXZlIGluIG1pbmQg dG8gY29ycmVjdCB0aGUKPiA+ID4gPiA+IG5vbi1wcmVmZXRjaGFibGUgcmVzb3VyY2Ugd2luZG93 PyBBcmUgeW91IHRoaW5raW5nIG9mIGFkZGluZyBhIHF1aXJrCj4gPiA+ID4gPiBzb21ld2hlcmUg dG8gYWRkcmVzcyB0aGlzPwo+ID4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IE5vLiBKdXN0IGZpeCB0 aGUgRFQuCj4gPiA+Cj4gPiA+IEdvb2QgTW9ybmluZywKPiA+ID4KPiA+ID4gSSBiZWxpZXZlIFJv YmluIGlzIGNvcnJlY3QgdGhhdCB0aGVyZSBpcyBtb3JlIHRvIHRoaXMuCj4gPiA+IFdoaWxlIGF0 dGVtcHRpbmcgdG8gd29yayBvdXQgd2h5IGRHUFVzIHdvbid0IHdvcmsgd2l0aCB0aGUgcmszNTZ4 Cj4gPiA+IHNlcmllcyBQQ0llIGNvbnRyb2xsZXJzLCBDaHJpc3RpYW4gS8O2bmlnIGZyb20gdGhl IGFtZC1ncHUgZHJpdmVyCj4gPiA+IG1haWxpbmcgbGlzdCBub3RpY2VkIHRoZSBncHUgd2FzIGlu Y29ycmVjdGx5IGFsbG9jYXRlZCBhIDY0Yml0Cj4gPiA+IG5vbi1wcmVmZXRjaGFibGUgQkFSIHdo aWNoIHNob3VsZCBpbnN0ZWFkIGJlIGEgMzIgbm9uLXByZWZldGNoYWJsZQo+ID4gPiBCQVIuCj4g PiA+Cj4gPgo+ID4gVGhpcyBpcyBkdWUgdG8gdGhlIHRyYW5zbGF0aW9uLiBGb3Igc29tZSByZWFz b24sIGxzcGNpIHRyYW5zbGF0ZXMgdGhlCj4gPiBCQVIgdmFsdWVzIHRvIENQVSBhZGRyZXNzZXMs IGJ1dCB0aGUgUENJIHNpZGUgYWRkcmVzc2VzIGFyZSB3aXRoaW4KPiA+IDMyLWJpdHMuCj4KPiBU aGUga2VybmVsIGxvZyByZXBvcnRzIHRoZSBzYW1lIHRoaW5nOgo+IFsgICAgNi42NjIxNDFdIHBj aSAwMDAwOjAxOjAwLjA6IHJlZyAweDEwOiBbbWVtIDB4MDAwMDAwMDAtMHgwZmZmZmZmZgo+IDY0 Yml0IHByZWZdCj4gWyAgICA2LjY2Mjk2M10gcGNpIDAwMDA6MDE6MDAuMDogcmVnIDB4MTg6IFtt ZW0gMHgwMDAwMDAwMC0weDAwMDFmZmZmIDY0Yml0XQo+Cj4gWW91IGFyZSBzYXlpbmcgdGhpcyBp cyBhIGRpc3BsYXkgb25seSBpc3N1ZT8KPgoKWWVzLiBXaGF0IGRvIHRoZSAncm9vdCBidXMgcmVz b3VyY2UnIGxvZyBsaW5lcyBzYXkgZm9yIHRoZXNlIHJlZ2lvbnM/ClRob3NlIHNob3VsZCBnaXZl IHlvdSBib3RoIHRoZSBDUFUgYWRkcmVzcyBhcyB3ZWxsIGFzIHRoZSBidXMgYWRkcmVzcy4KCgo+ ID4KPiA+IEFyZSB5b3Ugc3VyZSB0aGUgYW1kZ3B1IGRyaXZlciBjYW4gZXZlbiBkZWFsIHdpdGgg bm9uLTE6MSBob3N0IGJyaWRnZXM/Cj4KPiBJIGNhbm5vdCBhbnN3ZXIgdGhpcyBhcyBJJ20gbm90 IGFuIGFtZGdwdSBkZXYuCj4KPiA+Cj4gPiA+IFRoZSByYW5nZXMgY3VycmVudGx5IHNldCBhcmU6 Cj4gPiA+IHJhbmdlcyA9IDwweDgxMDAwMDAwIDB4MCAweDAwODAwMDAwIDB4MyAweDAwODAwMDAw IDB4MCAweDAwMTAwMDAwCj4gPiA+IDB4ODIwMDAwMDAgMHgwIDB4MDA5MDAwMDAgMHgzIDB4MDA5 MDAwMDAgMHgwIDB4M2Y3MDAwMDA+Owo+ID4gPgo+ID4KPiA+IFNvIHlvdSBoYXZlIHR3byByYW5n ZXMgaGVyZS4KPgo+IFRoZSBJTyBhbmQgUENJIG1lbW9yeSByYW5nZXMuCj4KPiBUaGVyZSBpcyBh IHRoaXJkIHJhbmdlLCB0aGUgY29uZmlndXJhdGlvbiByYW5nZSwgd2hpY2ggaXMgZGVmaW5lZCBp bgo+IHRoZSByZWcgYmxvY2s6Cj4gPDB4MyAweDAwMDAwMDAwIDB4MCAweDgwMDAwMD4KPiBBbGwg dGhyZWUgYXJlIHNoYXJlZCBpbiB0aGUgc2FtZSAxR0Igd2luZG93IG9uIHRoZSByazM1NnguCj4K CkJ1dCB0aGUgcmVnIGJsb2NrIGlzIG5vdCBhIHJlc291cmNlIHdpbmRvdywgaXQgaXMgYSBjb25m aWd1cmF0aW9uCnJhbmdlIHRvIHByb2dyYW0gdGhlIGhvc3QgYnJpZGdlLgoKPiBodHRwczovL2Vs aXhpci5ib290bGluLmNvbS9saW51eC92NS4xMy1yYzMvc291cmNlL0RvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy9wY2kvZGVzaWdud2FyZS1wY2llLnR4dCNMMTIKPgo+ID4KPiA+ID4g YnV0IHRoZSBmaW5hbCBhbGxvY2F0aW9uIHdhczoKPiA+ID4KPiA+ID4gbHNwY2kgLXYKPiA+ID4g MDA6MDAuMCBQQ0kgYnJpZGdlOiBGdXpob3UgUm9ja2NoaXAgRWxlY3Ryb25pY3MgQ28uLCBMdGQg RGV2aWNlIDM1NjYKPiA+ID4gKHJldiAwMSkgKHByb2ctaWYgMDAgW05vcm1hbCBkZWNvZGVdKQo+ ID4gPiAgICAgICAgIEZsYWdzOiBidXMgbWFzdGVyLCBmYXN0IGRldnNlbCwgbGF0ZW5jeSAwLCBJ UlEgOTYKPiA+ID4gICAgICAgICBCdXM6IHByaW1hcnk9MDAsIHNlY29uZGFyeT0wMSwgc3Vib3Jk aW5hdGU9ZmYsIHNlYy1sYXRlbmN5PTAKPiA+ID4gICAgICAgICBJL08gYmVoaW5kIGJyaWRnZTog MDAwMDEwMDAtMDAwMDFmZmYgW3NpemU9NEtdCj4gPiA+ICAgICAgICAgTWVtb3J5IGJlaGluZCBi cmlkZ2U6IDAwOTAwMDAwLTAwOWZmZmZmIFtzaXplPTFNXQo+ID4gPiAgICAgICAgIFByZWZldGNo YWJsZSBtZW1vcnkgYmVoaW5kIGJyaWRnZToKPiA+ID4gMDAwMDAwMDAxMDAwMDAwMC0wMDAwMDAw MDFmZmZmZmZmIFtzaXplPTI1Nk1dCj4gPgo+ID4gQnV0IHRoZSBob3N0IGJyaWRnZS9yb290IHBv cnQgZGVjb2RlcyB0d28gZGlzam9pbnQgcmVnaW9ucz8/Cj4gPgo+ID4gPiAgICAgICAgIEV4cGFu c2lvbiBST00gYXQgMzAwYTAwMDAwIFt2aXJ0dWFsXSBbZGlzYWJsZWRdIFtzaXplPTY0S10KPiA+ ID4gICAgICAgICBDYXBhYmlsaXRpZXM6IFs0MF0gUG93ZXIgTWFuYWdlbWVudCB2ZXJzaW9uIDMK PiA+ID4gICAgICAgICBDYXBhYmlsaXRpZXM6IFs1MF0gTVNJOiBFbmFibGUrIENvdW50PTEvMzIg TWFza2FibGUtIDY0Yml0Kwo+ID4gPiAgICAgICAgIENhcGFiaWxpdGllczogWzcwXSBFeHByZXNz IFJvb3QgUG9ydCAoU2xvdC0pLCBNU0kgMDAKPiA+ID4gICAgICAgICBDYXBhYmlsaXRpZXM6IFti MF0gTVNJLVg6IEVuYWJsZS0gQ291bnQ9MSBNYXNrZWQtCj4gPiA+ICAgICAgICAgQ2FwYWJpbGl0 aWVzOiBbMTAwXSBBZHZhbmNlZCBFcnJvciBSZXBvcnRpbmcKPiA+ID4gICAgICAgICBDYXBhYmls aXRpZXM6IFsxNDhdIFNlY29uZGFyeSBQQ0kgRXhwcmVzcwo+ID4gPiAgICAgICAgIENhcGFiaWxp dGllczogWzE2MF0gTDEgUE0gU3Vic3RhdGVzCj4gPiA+ICAgICAgICAgQ2FwYWJpbGl0aWVzOiBb MTcwXSBWZW5kb3IgU3BlY2lmaWMgSW5mb3JtYXRpb246IElEPTAwMDIgUmV2PTQKPiA+ID4gTGVu PTEwMCA8Pz4KPiA+ID4gICAgICAgICBLZXJuZWwgZHJpdmVyIGluIHVzZTogcGNpZXBvcnQKPiA+ ID4KPiA+ID4gMDE6MDAuMCBWR0EgY29tcGF0aWJsZSBjb250cm9sbGVyOiBBZHZhbmNlZCBNaWNy byBEZXZpY2VzLCBJbmMuCj4gPiA+IFtBTUQvQVRJXSBUdXJrcyBQUk8gW1JhZGVvbiBIRCA3NTcw XSAocHJvZy1pZiAwMCBbVkdBIGNvbnRyb2xsZXJdKQo+ID4gPiAgICAgICAgIFN1YnN5c3RlbTog RGVsbCBUdXJrcyBQUk8gW1JhZGVvbiBIRCA3NTcwXQo+ID4gPiAgICAgICAgIEZsYWdzOiBidXMg bWFzdGVyLCBmYXN0IGRldnNlbCwgbGF0ZW5jeSAwLCBJUlEgOTUKPiA+ID4gICAgICAgICBNZW1v cnkgYXQgMzEwMDAwMDAwICg2NC1iaXQsIHByZWZldGNoYWJsZSkgW3NpemU9MjU2TV0KPiA+ID4g ICAgICAgICBNZW1vcnkgYXQgMzAwOTAwMDAwICg2NC1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtz aXplPTEyOEtdCj4gPiA+ICAgICAgICAgSS9PIHBvcnRzIGF0IDEwMDAgW3NpemU9MjU2XQo+ID4g PiAgICAgICAgIEV4cGFuc2lvbiBST00gYXQgMzAwOTIwMDAwIFtkaXNhYmxlZF0gW3NpemU9MTI4 S10KPiA+ID4gICAgICAgICBDYXBhYmlsaXRpZXM6IFs1MF0gUG93ZXIgTWFuYWdlbWVudCB2ZXJz aW9uIDMKPiA+ID4gICAgICAgICBDYXBhYmlsaXRpZXM6IFs1OF0gRXhwcmVzcyBMZWdhY3kgRW5k cG9pbnQsIE1TSSAwMAo+ID4gPiAgICAgICAgIENhcGFiaWxpdGllczogW2EwXSBNU0k6IEVuYWJs ZS0gQ291bnQ9MS8xIE1hc2thYmxlLSA2NGJpdCsKPiA+ID4gICAgICAgICBDYXBhYmlsaXRpZXM6 IFsxMDBdIFZlbmRvciBTcGVjaWZpYyBJbmZvcm1hdGlvbjogSUQ9MDAwMSBSZXY9MQo+ID4gPiBM ZW49MDEwIDw/Pgo+ID4gPiAgICAgICAgIENhcGFiaWxpdGllczogWzE1MF0gQWR2YW5jZWQgRXJy b3IgUmVwb3J0aW5nCj4gPiA+ICAgICAgICAgS2VybmVsIGRyaXZlciBpbiB1c2U6IHJhZGVvbgo+ ID4gPgo+ID4gPiAwMTowMC4xIEF1ZGlvIGRldmljZTogQWR2YW5jZWQgTWljcm8gRGV2aWNlcywg SW5jLiBbQU1EL0FUSV0gVHVya3MKPiA+ID4gSERNSSBBdWRpbyBbUmFkZW9uIEhEIDY1MDAvNjYw MCAvIDY3MDBNIFNlcmllc10KPiA+ID4gICAgICAgICBTdWJzeXN0ZW06IERlbGwgVHVya3MgSERN SSBBdWRpbyBbUmFkZW9uIEhEIDY1MDAvNjYwMCAvIDY3MDBNIFNlcmllc10KPiA+ID4gICAgICAg ICBGbGFnczogYnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDk4Cj4gPiA+ ICAgICAgICAgTWVtb3J5IGF0IDMwMDk0MDAwMCAoNjQtYml0LCBub24tcHJlZmV0Y2hhYmxlKSBb c2l6ZT0xNktdCj4gPiA+ICAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNTBdIFBvd2VyIE1hbmFnZW1l bnQgdmVyc2lvbiAzCj4gPiA+ICAgICAgICAgQ2FwYWJpbGl0aWVzOiBbNThdIEV4cHJlc3MgTGVn YWN5IEVuZHBvaW50LCBNU0kgMDAKPiA+ID4gICAgICAgICBDYXBhYmlsaXRpZXM6IFthMF0gTVNJ OiBFbmFibGUrIENvdW50PTEvMSBNYXNrYWJsZS0gNjRiaXQrCj4gPiA+ICAgICAgICAgQ2FwYWJp bGl0aWVzOiBbMTAwXSBWZW5kb3IgU3BlY2lmaWMgSW5mb3JtYXRpb246IElEPTAwMDEgUmV2PTEK PiA+ID4gTGVuPTAxMCA8Pz4KPiA+ID4gICAgICAgICBDYXBhYmlsaXRpZXM6IFsxNTBdIEFkdmFu Y2VkIEVycm9yIFJlcG9ydGluZwo+ID4gPiAgICAgICAgIEtlcm5lbCBkcml2ZXIgaW4gdXNlOiBz bmRfaGRhX2ludGVsCj4gPiA+Cj4gPiA+IFRoaXMgd2lsbCBvYnZpb3VzbHkgY2xvYmJlciByZWdp c3RlcnMgZHVyaW5nIHdyaXRlcy4KPiA+Cj4gPiBJIGRvbid0IGZvbGxvdy4gV2hpY2ggd3JpdGVz IHdpbGwgY2xvYmJlciB3aGljaCByZWdpc3RlcnMsIGFuZCBob3cgaXMKPiA+IGl0IG9idmlvdXM/ Cj4KPiBXcml0aW5nIGEgNjQgYml0IHdvcmQgaW50byBhIDMyIGJpdCByZWdpc3RlciB3aWxsIGVp dGhlciBjbG9iYmVyIHRoZQo+IG5leHQgaGlnaGVyIDMyIGJpdCByZWdpc3Rlci4KPiBRdW90aW5n IENocmlzdGlhbjoKPiAiV2hlbiB5b3UgcHJvZ3JhbSBhIDMyYml0IEJBUiBhcyA2NGJpdCB5b3Ug b3ZlcndyaXRlIHRoZSByZWdpc3RlciBiZWhpbmQKPiB0aGUgQkFSIGFkZHJlc3Mgd2l0aCB0aGUg dXBwZXIgMzJiaXRzIG9mIHRoZSA2NGJpdCBhZGRyZXNzIHZhbHVlLgo+IFNvIGV2ZW4gaWYgdGhl IGFsbG9jYXRpb24gZml0cyBpbnRvIDMyYml0cywgdGhlIGV4dHJhIHJlZ2lzdGVyIHdyaXRlCj4g d2lsbCBjZXJ0YWlubHkgcHV0IHlvdXIgZGV2aWNlIGludG8gYSBiYW5hbmEgc3RhdGUuIgo+Cj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMvYW1kLWdmeC8yMDIxLU1heS8w NjQyMzIuaHRtbAo+CgpJIHNlcmlvdXNseSBkb3VidCB0aGF0IHRoaXMgaXMgd2hhdCBpcyBnb2lu ZyBvbiBoZXJlLgoKbHNwY2kgLXggd2lsbCBnaXZlIHlvdSB0aGUgYmFyZSBCQVIgdmFsdWVzIC0g SSBzdXNwZWN0IHRoYXQgdGhvc2UgYXJlCnByb2JhYmx5IGZpbmUuCgoKPiA+Cj4gPiA+IEFsc28s IGlmIDwweDgyMDAwMDAwPiAoMzIgYml0KSBpcyBjaGFuZ2VkIHRvIDwweDgzMDAwMDAwPiAoNjQg Yml0KSwKPiA+ID4gbW9zdCBvZiB0aGUgYWxsb2NhdGlvbnMgZm9yIHRoZSBkR1BVIGZhaWwgZHVl IHRvIG5vIHZhbGlkIHJlZ2lvbnMKPiA+ID4gYXZhaWxhYmxlLgo+ID4gPgo+ID4KPiA+IEJ1dCB3 YXNuJ3QgdGhlIG9yaWdpbmFsIHByb2JsZW0gdGhhdCB0aGUgcmVzb3VyY2Ugd2luZG93IHdhcyA2 NC1iaXQgdG8KPiA+IGJlZ2luIHdpdGg/IEFyZSB5b3Ugc3VyZSB3ZSBhcmUgdGFsa2luZyBhYm91 dCB0aGUgc2FtZSBwcm9ibGVtIGhlcmU/Cj4KPiBUaGUgcmszMzk5IGluIHRoZSBvcmlnaW5hbCBy ZXBvcnQgaGFzIGEgMzJNQiBtZW1vcnkgd2luZG93IGluIHRoZQo+IHVwcGVyIGVuZCBvZiB0aGUg NEdCIHJhbmdlLgo+IFRoZSByazM1NnggaGFzIGEgc2ltaWxhciBsYXlvdXQsIG9yIGl0IGNhbiB1 c2UgYSAxR0Igd2luZG93IGF2YWlsYWJsZQo+IGF0IDwweDMgMHgwMDAwMDAwMD4uCj4gUm9ja2No aXAncyBkZWZhdWx0IHdpbmRvd3MgYXJlIGRlZmluZWQgYXMgNjRiaXQuCj4KPiBUaGUgcmszMzk5 IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggc3BhY2UgdG8gcmVhc29uYWJseSBkZWZpbmUgdHdvIHdpbmRv d3MsCj4gb25lIDMyYml0LCBvbmUgNjRiaXQsIHRvIHdvcmsgYXJvdW5kIGFuIGFsbG9jYXRpb24g YnVnLgo+IFRoZXNlIGFyZSB0aGUgZGVmaW5lZCByZWdpb25zIGluIHRoZSByazMzOTk6Cj4gcmFu Z2VzID0gPDB4ODMwMDAwMDAgMHgwIDB4ZmEwMDAwMDAgMHgwIDB4ZmEwMDAwMDAgMHgwIDB4MWUw MDAwMD4sCj4gPDB4ODEwMDAwMDAgMHgwIDB4ZmJlMDAwMDAgMHgwIDB4ZmJlMDAwMDAgMHgwIDB4 MTAwMDAwPjsKPgoKQWxsIHlvdSByZWFsbHkgbmVlZCBpcyBhIDMyLWJpdCBub24tcHJlZmV0Y2hh YmxlIHJlc291cmNlIHdpbmRvdzogYW55CkJBUiBjYW4gYmUgYWxsb2NhdGVkIGZyb20gdGhhdC4g QSA2NC1iaXQgQkFSIGNhbiBjYXJyeSBhIDMyLWJpdCBudW1iZXIKKGp1c3QgYWRkIHplcm9lcyBh dCB0aGUgdG9wKSwgYW5kIGEgcHJlZmV0Y2hhYmxlIEJBUiBjYW4gaGFwcGlseSBsaXZlCmluIGEg bm9uLXByZWZldGNoYWJsZSB3aW5kb3csIHdpdGggYSB0aGVvcmV0aWNhbCBwZXJmb3JtYW5jZSBp bXBhY3QgaWYKdGhlIE9TIGFjdHVhbGx5IGRvZXMgdXNlIGRpZmZlcmVudCBtZW1vcnkgYXR0cmli dXRlcyBmb3IgdGhlCnByZWZldGNoYWJsZSB3aW5kb3cgKGJ1dCBJIGRvbid0IHRoaW5rIExpbnV4 IGV2ZXIgaGFuZGxlcyBpdCB0aGlzIHdheSkKCgo+Cj4gPgo+ID4KPiA+ID4gPgo+ID4gPiA+ID4g SSBhbSBoYXBweSB0byBwdXQgc29tZXRoaW5nIHRvZ2V0aGVyIG9uY2UgSSB1bmRlcnN0YW5kIHRo ZSBwcmVmZXJyZWQgd2F5Cj4gPiA+ID4gPiB0byBnbyBhYm91dCBpdC4KPiA+ID4gPiA+Cj4gPiA+ ID4gPiBUaGFua3MsCj4gPiA+ID4gPiBQdW5pdAo+ID4gPiA+ID4KPiA+ID4gPiA+IFsuLi5dCj4g PiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiA+ID4gPiBMaW51eC1yb2NrY2hpcCBtYWlsaW5nIGxpc3QKPiA+ID4g PiBMaW51eC1yb2NrY2hpcEBsaXN0cy5pbmZyYWRlYWQub3JnCj4gPiA+ID4gaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1yb2NrY2hpcAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBt YWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9s aXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=