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 F3E0AC38A02 for ; Fri, 28 Oct 2022 15:51:04 +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=fvRK+nlLxbLrm50hnGVvMv+a7l1WSQ23qPLwDaT21OI=; b=m9TDiGZVyjFnu6 TFolfA4QFgJEFiUGZI0oVIArH+8Yspbt9sSpDmeePfDNyVdSR4/epG/SVQshowngpmdnNtSD7BhtM Onuv3DoUSKUjL4XRYfNrGRn8CHsQZvvW0bBEXUjj4mkDZIRL+qjMCDk4DONcX6PfRamXAM/9F4/Wv dG/9G0EQPI5dNpBA6JUcHm20VPUX+34cNvC2LcLMsEhkotN3fjK5cp1Z+0HRoi2hnPFBKmucE5scm Td9xOVmHFfmfXb8SeNyhw4b5x5wnSdPMlO8CWQb+OjIUY95an5NOrVBqtD5Xx/Nbzo1GkBuAkxqTX hLTRvt04ZsF+JhaxF98g==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ooRc7-000ecA-Vl; Fri, 28 Oct 2022 15:49:46 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ooRav-000dnX-Us for linux-arm-kernel@lists.infradead.org; Fri, 28 Oct 2022 15:48:32 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 72690B828BB; Fri, 28 Oct 2022 15:48:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 89522C433D7; Fri, 28 Oct 2022 15:48:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666972106; bh=mbsamtltS2Ok1xD4XGUo5XVr08mORwKCj3h7gL77wtE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=PhgYRVh7IiSgjtHX78yN+gF0O7dN9D0wYe6lTZit8UB5ZsjbINuqNmLXC7OqILGd8 a4lOF1WfjNLeWgNWRsqpJWnYlV2+ZlKfl9H0yBo21N/Qj0swZA9u0nfZANO2rnxOUI BgE9+UdANNDLAg0VRvyjq6GZSZWQ25HLN/cPcabYlcbiIxGQwM0w0i0f9tkGCPTlX7 ke9JCz1MT+m5oC/VITm2IuuhR56j54SrL9s96vi3SwRftWz4SrxsnLeMq1T0nTzhhl 2K7BgwmW3rK18IDRBZRlyahDX0YAZsRZLQKeDar6kH+qloekx7ZPnBGrbp0udumbiV PpHLAk+J18kjg== Date: Fri, 28 Oct 2022 08:48:23 -0700 From: Nathan Chancellor To: Rodrigo Siqueira Jordao Cc: Ao Zhong , Harry Wentland , Leo Li , Arnd Bergmann , Alex Deucher , Stephen Rothwell , Christian =?iso-8859-1?Q?K=F6nig?= , amd-gfx@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v3 1/1] drm/amd/display: add DCN support for ARM64 Message-ID: References: <20221027195227.5312-1-hacc1225@gmail.com> <20221027195227.5312-2-hacc1225@gmail.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-20221028_084830_329268_6CDC7F1E X-CRM114-Status: GOOD ( 41.04 ) 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 SGkgUm9kcmlnbywKCk9uIEZyaSwgT2N0IDI4LCAyMDIyIGF0IDExOjM1OjMyQU0gLTA0MDAsIFJv ZHJpZ28gU2lxdWVpcmEgSm9yZGFvIHdyb3RlOgo+IAo+IAo+IE9uIDIwMjItMTAtMjggMTE6MDks IE5hdGhhbiBDaGFuY2VsbG9yIHdyb3RlOgo+ID4gSGkgQW8sCj4gPiAKPiA+IE9uIFRodSwgT2N0 IDI3LCAyMDIyIGF0IDA5OjUyOjI5UE0gKzAyMDAsIEFvIFpob25nIHdyb3RlOgo+ID4gPiBBZnRl ciBtb3ZpbmcgYWxsIEZQVSBjb2RlIHRvIHRoZSBETUwgZm9sZGVyLCB3ZSBjYW4gZW5hYmxlIERD TiBzdXBwb3J0Cj4gPiA+IGZvciB0aGUgQVJNNjQgcGxhdGZvcm0uIFJlbW92ZSB0aGUgLW1nZW5l cmFsLXJlZ3Mtb25seSBDRkxBRyBmcm9tIHRoZQo+ID4gPiBjb2RlIGluIHRoZSBETUwgZm9sZGVy IHRoYXQgbmVlZHMgdG8gdXNlIGhhcmR3YXJlIEZQVSwgYW5kIGFkZCBhIGNvbnRyb2wKPiA+ID4g bWVjaGFuaXNtIGZvciBBUk0gTmVvbi4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEFvIFpo b25nIDxoYWNjMTIyNUBnbWFpbC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvZGlzcGxheS9LY29uZmlnICAgICAgICAgICB8ICAyICstCj4gPiA+ICAgLi4uL2dwdS9k cm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2RjX2ZwdS5jICAgIHwgIDYgKysrKysrCj4gPiA+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9NYWtlZmlsZSAgIHwgMjAgKysrKysr KysrKysrKysrLS0tLQo+ID4gPiAgIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2Rpc3BsYXkvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9LY29uZmln Cj4gPiA+IGluZGV4IDAxNDJhZmZjZGFhMy4uYTdmMWM0ZTUxNzE5IDEwMDY0NAo+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvS2NvbmZpZwo+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2Rpc3BsYXkvS2NvbmZpZwo+ID4gPiBAQCAtNiw3ICs2LDcgQEAgY29uZmln IERSTV9BTURfREMKPiA+ID4gICAJYm9vbCAiQU1EIERDIC0gRW5hYmxlIG5ldyBkaXNwbGF5IGVu Z2luZSIKPiA+ID4gICAJZGVmYXVsdCB5Cj4gPiA+ICAgCXNlbGVjdCBTTkRfSERBX0NPTVBPTkVO VCBpZiBTTkRfSERBX0NPUkUKPiA+ID4gLQlzZWxlY3QgRFJNX0FNRF9EQ19EQ04gaWYgKFg4NiB8 fCBQUEM2NCkKPiA+ID4gKwlzZWxlY3QgRFJNX0FNRF9EQ19EQ04gaWYgKFg4NiB8fCBQUEM2NCB8 fCAoQVJNNjQgJiYgS0VSTkVMX01PREVfTkVPTikpCj4gPiA+ICAgCWhlbHAKPiA+ID4gICAJICBD aG9vc2UgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBuZXcgZGlzcGxheSBlbmdp bmUKPiA+ID4gICAJICBzdXBwb3J0IGZvciBBTURHUFUuIFRoaXMgYWRkcyByZXF1aXJlZCBzdXBw b3J0IGZvciBWZWdhIGFuZAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9kY19mcHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9h bWRncHVfZG0vZGNfZnB1LmMKPiA+ID4gaW5kZXggYWIwYzZkMTkxMDM4Li4xNzQzY2EwYTM2NDEg MTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0v ZGNfZnB1LmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9kY19mcHUuYwo+ID4gPiBAQCAtMzEsNiArMzEsOCBAQAo+ID4gPiAgICNlbGlmIGRlZmluZWQo Q09ORklHX1BQQzY0KQo+ID4gPiAgICNpbmNsdWRlIDxhc20vc3dpdGNoX3RvLmg+Cj4gPiA+ICAg I2luY2x1ZGUgPGFzbS9jcHV0YWJsZS5oPgo+ID4gPiArI2VsaWYgZGVmaW5lZChDT05GSUdfQVJN NjQpCj4gPiA+ICsjaW5jbHVkZSA8YXNtL25lb24uaD4KPiA+ID4gICAjZW5kaWYKPiA+ID4gICAv KioKPiA+ID4gQEAgLTk5LDYgKzEwMSw4IEBAIHZvaWQgZGNfZnB1X2JlZ2luKGNvbnN0IGNoYXIg KmZ1bmN0aW9uX25hbWUsIGNvbnN0IGludCBsaW5lKQo+ID4gPiAgIAkJCXByZWVtcHRfZGlzYWJs ZSgpOwo+ID4gPiAgIAkJCWVuYWJsZV9rZXJuZWxfZnAoKTsKPiA+ID4gICAJCX0KPiA+ID4gKyNl bGlmIGRlZmluZWQoQ09ORklHX0FSTTY0KQo+ID4gPiArCQlrZXJuZWxfbmVvbl9iZWdpbigpOwo+ ID4gPiAgICNlbmRpZgo+ID4gPiAgIAl9Cj4gPiA+IEBAIC0xMzYsNiArMTQwLDggQEAgdm9pZCBk Y19mcHVfZW5kKGNvbnN0IGNoYXIgKmZ1bmN0aW9uX25hbWUsIGNvbnN0IGludCBsaW5lKQo+ID4g PiAgIAkJCWRpc2FibGVfa2VybmVsX2ZwKCk7Cj4gPiA+ICAgCQkJcHJlZW1wdF9lbmFibGUoKTsK PiA+ID4gICAJCX0KPiA+ID4gKyNlbGlmIGRlZmluZWQoQ09ORklHX0FSTTY0KQo+ID4gPiArCQlr ZXJuZWxfbmVvbl9lbmQoKTsKPiA+ID4gICAjZW5kaWYKPiA+ID4gICAJfQo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2RjL2RtbC9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvZGlzcGxheS9kYy9kbWwvTWFrZWZpbGUKPiA+ID4gaW5kZXggZDBjNmNm NjFjNjc2Li5kNGU5M2JlZDFjOGUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvZGlzcGxheS9kYy9kbWwvTWFrZWZpbGUKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9kaXNwbGF5L2RjL2RtbC9NYWtlZmlsZQo+ID4gPiBAQCAtMzMsNiArMzMsMTAgQEAgaWZkZWYg Q09ORklHX1BQQzY0Cj4gPiA+ICAgZG1sX2NjZmxhZ3MgOj0gLW1oYXJkLWZsb2F0IC1tYWx0aXZl Ywo+ID4gPiAgIGVuZGlmCj4gPiA+ICtpZmRlZiBDT05GSUdfQVJNNjQKPiA+ID4gK2RtbF9yY2Zs YWdzIDo9IC1tZ2VuZXJhbC1yZWdzLW9ubHkKPiA+ID4gK2VuZGlmCj4gPiA+ICsKPiA+ID4gICBp ZmRlZiBDT05GSUdfQ0NfSVNfR0NDCj4gPiA+ICAgaWZlcSAoJChjYWxsIGNjLWlmdmVyc2lvbiwg LWx0LCAwNzAxLCB5KSwgeSkKPiA+ID4gICBJU19PTERfR0NDID0gMQo+ID4gPiBAQCAtNTUsOCAr NTksNiBAQCBmcmFtZV93YXJuX2ZsYWcgOj0gLVdmcmFtZS1sYXJnZXItdGhhbj0yMDQ4Cj4gPiA+ ICAgZW5kaWYKPiA+ID4gICBDRkxBR1NfJChBTUREQUxQQVRIKS9kYy9kbWwvZGlzcGxheV9tb2Rl X2xpYi5vIDo9ICQoZG1sX2NjZmxhZ3MpCj4gPiA+IC0KPiA+ID4gLWlmZGVmIENPTkZJR19EUk1f QU1EX0RDX0RDTgo+ID4gPiAgIENGTEFHU18kKEFNRERBTFBBVEgpL2RjL2RtbC9kaXNwbGF5X21v ZGVfdmJhLm8gOj0gJChkbWxfY2NmbGFncykKPiA+ID4gICBDRkxBR1NfJChBTUREQUxQQVRIKS9k Yy9kbWwvZGNuMTAvZGNuMTBfZnB1Lm8gOj0gJChkbWxfY2NmbGFncykKPiA+ID4gICBDRkxBR1Nf JChBTUREQUxQQVRIKS9kYy9kbWwvZGNuMjAvZGNuMjBfZnB1Lm8gOj0gJChkbWxfY2NmbGFncykK PiA+ID4gQEAgLTg4LDcgKzkwLDYgQEAgQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZG1sL2NhbGNz L2Rjbl9jYWxjcy5vIDo9ICQoZG1sX2NjZmxhZ3MpCj4gPiA+ICAgQ0ZMQUdTXyQoQU1EREFMUEFU SCkvZGMvZG1sL2NhbGNzL2Rjbl9jYWxjX2F1dG8ubyA6PSAkKGRtbF9jY2ZsYWdzKQo+ID4gPiAg IENGTEFHU18kKEFNRERBTFBBVEgpL2RjL2RtbC9jYWxjcy9kY25fY2FsY19tYXRoLm8gOj0gJChk bWxfY2NmbGFncykgLVduby10YXV0b2xvZ2ljYWwtY29tcGFyZQo+ID4gPiAgIENGTEFHU19SRU1P VkVfJChBTUREQUxQQVRIKS9kYy9kbWwvZGlzcGxheV9tb2RlX3ZiYS5vIDo9ICQoZG1sX3JjZmxh Z3MpCj4gPiA+IC1DRkxBR1NfUkVNT1ZFXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RjbjJ4L2RjbjJ4 Lm8gOj0gJChkbWxfcmNmbGFncykKPiA+ID4gICBDRkxBR1NfUkVNT1ZFXyQoQU1EREFMUEFUSCkv ZGMvZG1sL2RjbjIwL2Rpc3BsYXlfbW9kZV92YmFfMjAubyA6PSAkKGRtbF9yY2ZsYWdzKQo+ID4g PiAgIENGTEFHU19SRU1PVkVfJChBTUREQUxQQVRIKS9kYy9kbWwvZGNuMjAvZGlzcGxheV9ycV9k bGdfY2FsY18yMC5vIDo9ICQoZG1sX3JjZmxhZ3MpCj4gPiA+ICAgQ0ZMQUdTX1JFTU9WRV8kKEFN RERBTFBBVEgpL2RjL2RtbC9kY24yMC9kaXNwbGF5X21vZGVfdmJhXzIwdjIubyA6PSAkKGRtbF9y Y2ZsYWdzKQo+ID4gPiBAQCAtMTA1LDcgKzEwNiwxOCBAQCBDRkxBR1NfUkVNT1ZFXyQoQU1EREFM UEFUSCkvZGMvZG1sL2RjbjMyL2Rpc3BsYXlfbW9kZV92YmFfdXRpbF8zMi5vIDo9ICQoZG1sX3Jj Zgo+ID4gPiAgIENGTEFHU19SRU1PVkVfJChBTUREQUxQQVRIKS9kYy9kbWwvZGNuMzAxL2RjbjMw MV9mcHUubyA6PSAkKGRtbF9yY2ZsYWdzKQo+ID4gPiAgIENGTEFHU19SRU1PVkVfJChBTUREQUxQ QVRIKS9kYy9kbWwvZGlzcGxheV9tb2RlX2xpYi5vIDo9ICQoZG1sX3JjZmxhZ3MpCj4gPiA+ICAg Q0ZMQUdTX1JFTU9WRV8kKEFNRERBTFBBVEgpL2RjL2RtbC9kc2MvcmNfY2FsY19mcHUubyAgOj0g JChkbWxfcmNmbGFncykKPiA+ID4gLWVuZGlmCj4gPiA+ICtDRkxBR1NfUkVNT1ZFXyQoQU1EREFM UEFUSCkvZGMvZG1sL2RjbjEwL2RjbjEwX2ZwdS5vIDo9ICQoZG1sX3JjZmxhZ3MpCj4gPiA+ICtD RkxBR1NfUkVNT1ZFXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RjbjIwL2RjbjIwX2ZwdS5vIDo9ICQo ZG1sX3JjZmxhZ3MpCj4gPiA+ICtDRkxBR1NfUkVNT1ZFXyQoQU1EREFMUEFUSCkvZGMvZG1sL2Rj bjMxNC9kaXNwbGF5X21vZGVfdmJhXzMxNC5vIDo9ICQoZG1sX3JjZmxhZ3MpCj4gPiA+ICtDRkxB R1NfUkVNT1ZFXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RjbjMxNC9kaXNwbGF5X3JxX2RsZ19jYWxj XzMxNC5vIDo9ICQoZG1sX3JjZmxhZ3MpCj4gPiA+ICtDRkxBR1NfUkVNT1ZFXyQoQU1EREFMUEFU SCkvZGMvZG1sL2RjbjMxNC9kY24zMTRfZnB1Lm8gOj0gJChkbWxfcmNmbGFncykKPiA+ID4gK0NG TEFHU19SRU1PVkVfJChBTUREQUxQQVRIKS9kYy9kbWwvZGNuMzAvZGNuMzBfZnB1Lm8gOj0gJChk bWxfcmNmbGFncykKPiA+ID4gK0NGTEFHU19SRU1PVkVfJChBTUREQUxQQVRIKS9kYy9kbWwvZGNu MzIvZGNuMzJfZnB1Lm8gOj0gJChkbWxfcmNmbGFncykKPiA+ID4gK0NGTEFHU19SRU1PVkVfJChB TUREQUxQQVRIKS9kYy9kbWwvZGNuMzIxL2RjbjMyMV9mcHUubyA6PSAkKGRtbF9yY2ZsYWdzKQo+ ID4gPiArQ0ZMQUdTX1JFTU9WRV8kKEFNRERBTFBBVEgpL2RjL2RtbC9kY24zMS9kY24zMV9mcHUu byA6PSAkKGRtbF9yY2ZsYWdzKQo+ID4gPiArQ0ZMQUdTX1JFTU9WRV8kKEFNRERBTFBBVEgpL2Rj L2RtbC9kY24zMDIvZGNuMzAyX2ZwdS5vIDo9ICQoZG1sX3JjZmxhZ3MpCj4gPiA+ICtDRkxBR1Nf UkVNT1ZFXyQoQU1EREFMUEFUSCkvZGMvZG1sL2RjbjMwMy9kY24zMDNfZnB1Lm8gOj0gJChkbWxf cmNmbGFncykKPiA+ID4gK0NGTEFHU19SRU1PVkVfJChBTUREQUxQQVRIKS9kYy9kbWwvY2FsY3Mv ZGNuX2NhbGNfbWF0aC5vIDo9ICQoZG1sX3JjZmxhZ3MpCj4gPiA+ICAgQ0ZMQUdTXyQoQU1EREFM UEFUSCkvZGMvZG1sL2RtbDFfZGlzcGxheV9ycV9kbGdfY2FsYy5vIDo9ICQoZG1sX2NjZmxhZ3Mp Cj4gPiA+ICAgQ0ZMQUdTXyQoQU1EREFMUEFUSCkvZGMvZG1sL2Rpc3BsYXlfcnFfZGxnX2hlbHBl cnMubyA6PSAkKGRtbF9jY2ZsYWdzKQo+ID4gPiAgIENGTEFHU19SRU1PVkVfJChBTUREQUxQQVRI KS9kYy9kbWwvZG1sMV9kaXNwbGF5X3JxX2RsZ19jYWxjLm8gOj0gJChkbWxfcmNmbGFncykKPiA+ ID4gLS0gCj4gPiA+IDIuMzcuNAo+ID4gPiAKPiA+IAo+ID4gRW5hYmxpbmcgdGhpcyBjb2RlIGZv ciBhcm02NCByZXZlYWxzIHRoZSBmb2xsb3dpbmcgd2FybmluZ3Mgd2hlbgo+ID4gYnVpbGRpbmcg YWxsbW9kY29uZmlnIHdpdGggY2xhbmcuIEEgdmVyeSByZWNlbnQgY2hhbmdlIGluIExMVk0gYWRk ZWQgdGhlCj4gPiB2YXJpYWJsZSBhbmQgc3BpbGwgaW5mb3JtYXRpb24gc28gdGhhdCB3aWxsIG5v dCBiZSBzZWVuIHdpdGggb2xkZXIKPiA+IHZlcnNpb25zIGJ1dCBJIGFsc28gc2F3IHRoZSB3YXJu aW5ncyB3aXRoIGNsYW5nIDE1LjAuMCBmcm9tIEZlZG9yYS4KPiA+IAo+ID4gICAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZGNuMzAvZGlzcGxheV9tb2RlX3Zi YV8zMC5jOjE4NTI6MTM6IGVycm9yOiBzdGFjayBmcmFtZSBzaXplICgyMTEyKSBleGNlZWRzIGxp bWl0ICgyMDQ4KSBpbiAnRElTUENMS0RQUENMS0RDRkNMS0RlZXBTbGVlcFByZWZldGNoUGFyYW1l dGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5jZUNhbGN1bGF0aW9uJyBbLVdlcnJvciwtV2ZyYW1l LWxhcmdlci10aGFuXQo+ID4gICAgc3RhdGljIHZvaWQgRElTUENMS0RQUENMS0RDRkNMS0RlZXBT bGVlcFByZWZldGNoUGFyYW1ldGVyc1dhdGVybWFya3NBbmRQZXJmb3JtYW5jZUNhbGN1bGF0aW9u KAo+ID4gICAgICAgICAgICAgICAgXgo+ID4gICAgMTE1Mi8yMTEyICg1NC41NSUpIHNwaWxscywg OTYwLzIxMTIgKDQ1LjQ1JSkgdmFyaWFibGVzCj4gPiAKPiA+ICAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZG1sL2RjbjMwL2Rpc3BsYXlfbW9kZV92YmFfMzAuYzoz NTQyOjY6IGVycm9yOiBzdGFjayBmcmFtZSBzaXplICgyMjQwKSBleGNlZWRzIGxpbWl0ICgyMDQ4 KSBpbiAnZG1sMzBfTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1cmF0aW9uRnVsbCcgWy1XZXJy b3IsLVdmcmFtZS1sYXJnZXItdGhhbl0KPiA+ICAgIHZvaWQgZG1sMzBfTW9kZVN1cHBvcnRBbmRT eXN0ZW1Db25maWd1cmF0aW9uRnVsbChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIp Cj4gPiAgICAgICAgXgo+ID4gICAgMTQ1MS8yMjQwICg2NC43OCUpIHNwaWxscywgNzg5LzIyNDAg KDM1LjIyJSkgdmFyaWFibGVzCj4gPiAKPiA+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 Ly4uL2Rpc3BsYXkvZGMvZG1sL2RjbjMxL2Rpc3BsYXlfbW9kZV92YmFfMzEuYzozNzkxOjY6IGVy cm9yOiBzdGFjayBmcmFtZSBzaXplICgyNzM2KSBleGNlZWRzIGxpbWl0ICgyMDQ4KSBpbiAnZG1s MzFfTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25maWd1cmF0aW9uRnVsbCcgWy1XZXJyb3IsLVdmcmFt ZS1sYXJnZXItdGhhbl0KPiA+ICAgIHZvaWQgZG1sMzFfTW9kZVN1cHBvcnRBbmRTeXN0ZW1Db25m aWd1cmF0aW9uRnVsbChzdHJ1Y3QgZGlzcGxheV9tb2RlX2xpYiAqbW9kZV9saWIpCj4gPiAgICAg ICAgXgo+ID4gICAgMTM0Mi8yNzM2ICg0OS4wNSUpIHNwaWxscywgMTM5NC8yNzM2ICg1MC45NSUp IHZhcmlhYmxlcwo+ID4gCj4gPiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNw bGF5L2RjL2RtbC9kY24zMTQvZGlzcGxheV9tb2RlX3ZiYV8zMTQuYzozODkwOjY6IGVycm9yOiBz dGFjayBmcmFtZSBzaXplICgyNzIwKSBleGNlZWRzIGxpbWl0ICgyMDQ4KSBpbiAnZG1sMzE0X01v ZGVTdXBwb3J0QW5kU3lzdGVtQ29uZmlndXJhdGlvbkZ1bGwnIFstV2Vycm9yLC1XZnJhbWUtbGFy Z2VyLXRoYW5dCj4gPiAgICB2b2lkIGRtbDMxNF9Nb2RlU3VwcG9ydEFuZFN5c3RlbUNvbmZpZ3Vy YXRpb25GdWxsKHN0cnVjdCBkaXNwbGF5X21vZGVfbGliICptb2RlX2xpYikKPiA+ICAgICAgICBe Cj4gPiAgICAxMzI1LzI3MjAgKDQ4LjcxJSkgc3BpbGxzLCAxMzk1LzI3MjAgKDUxLjI5JSkgdmFy aWFibGVzCj4gPiAKPiA+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv ZGMvZG1sL2RjbjMyL2Rpc3BsYXlfbW9kZV92YmFfMzIuYzo1OToxMzogZXJyb3I6IHN0YWNrIGZy YW1lIHNpemUgKDIyMDgpIGV4Y2VlZHMgbGltaXQgKDIwNDgpIGluICdESVNQQ0xLRFBQQ0xLRENG Q0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJrc0FuZFBlcmZvcm1hbmNlQ2Fs Y3VsYXRpb24nIFstV2Vycm9yLC1XZnJhbWUtbGFyZ2VyLXRoYW5dCj4gPiAgICBzdGF0aWMgdm9p ZCBESVNQQ0xLRFBQQ0xLRENGQ0xLRGVlcFNsZWVwUHJlZmV0Y2hQYXJhbWV0ZXJzV2F0ZXJtYXJr c0FuZFBlcmZvcm1hbmNlQ2FsY3VsYXRpb24oCj4gPiAgICAgICAgICAgICAgICBeCj4gPiAgICAx Mzk3LzIyMDggKDYzLjI3JSkgc3BpbGxzLCA4MTEvMjIwOCAoMzYuNzMlKSB2YXJpYWJsZXMKPiA+ IAo+ID4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kbWwvZGNu MzIvZGlzcGxheV9tb2RlX3ZiYV8zMi5jOjE2ODE6NjogZXJyb3I6IHN0YWNrIGZyYW1lIHNpemUg KDI0OTYpIGV4Y2VlZHMgbGltaXQgKDIwNDgpIGluICdkbWwzMl9Nb2RlU3VwcG9ydEFuZFN5c3Rl bUNvbmZpZ3VyYXRpb25GdWxsJyBbLVdlcnJvciwtV2ZyYW1lLWxhcmdlci10aGFuXQo+ID4gICAg dm9pZCBkbWwzMl9Nb2RlU3VwcG9ydEFuZFN5c3RlbUNvbmZpZ3VyYXRpb25GdWxsKHN0cnVjdCBk aXNwbGF5X21vZGVfbGliICptb2RlX2xpYikKPiA+ICAgICAgICBeCj4gPiAgICAxNTA0LzI0OTYg KDYwLjI2JSkgc3BpbGxzLCA5OTIvMjQ5NiAoMzkuNzQlKSB2YXJpYWJsZXMKPiA+IAo+ID4gSSBj YW4gdHJ5IHRvIHRha2UgYSBsb29rIGF0IHRoZXNlIG5leHQgd2VlaywgYXMgSSBoYXZlIHByaW9y IG9ibGlnYXRpb25zCj4gPiB0b2RheSwgdW5sZXNzIG90aGVycyB3YW50ZWQgdG8gaGVscCBtZSBv dXQgOykKPiAKPiBIaSBOYXRoYW4sCj4gCj4gVGhhbmtzIGEgbG90IGZvciBjaGVja2luZyB0aGlz Lgo+IAo+IEFib3V0IHRob3NlIHN0YWNrIGZyYW1lIGlzc3VlcywgSSBndWVzcyB0aGV5IGFyZSBn ZW5lcmljLCByaWdodD8gSSBtZWFuLCBJCj4gZG9uJ3Qgc2VlIHdoeSB3ZSBvbmx5IHNlZSBpdCBp ZiB3ZSBlbmFibGUgYXJtNjQuCgpJIGRvIG5vdCBzZWUgdGhlc2Ugd2FybmluZ3Mgb24geDg2XzY0 IGFzIEkgaGFkIHRvIHRhY2tsZSB0aGVtIGZvciA2LjAuCnBvd2VycGMgYWxsbW9kY29uZmlnIGlz IGFscmVhZHkgYnJva2VuIHdpdGggY2xhbmcgZm9yIG90aGVyIHJlYXNvbnMgc28gSQphbSBub3Qg c3VyZSBpZiB0aGVzZSB3YXJuaW5ncyBhcmUgdGhlcmU7IEkgY2FuIHRyeSB0byB0ZXN0IHRoYXQu IEkgYW0Kbm90IHN1cmUgd2h5IHRoaW5ncyBhcmUgZ29pbmcgc2lkZXdheXMgZm9yIGFybTY0IHdp dGggY2xhbmcgaGVyZSBidXQgSQp3b3VsZCByZWFsbHkgbGlrZSB0byBrZWVwIGFsbG1vZGNvbmZp ZyBidWlsZGluZyB3aXRob3V0IGFueSBpc3N1ZXMsIGFzCnRoYXQgaXMgYSBnb29kIHRhcmdldCBm b3IgY2F0Y2hpbmcgbmV3IHdhcm5pbmdzIGR1ZSB0byAtV2Vycm9yLgoKPiA+IEFkZGl0aW9uYWxs eSwgSSBzZWUgdGhlIGZvbGxvd2luZyBlcnJvcnMgd2l0aCBHQ0MgMTIuMi4xIGZyb20gRmVkb3Jh Cj4gPiB3aGVuIGJ1aWxkaW5nIGFsbG1vZGNvbmZpZy4gU2VlbXMgbGlrZSBzb21lICQoZG1sX3Jj ZmxhZ3MpIG1pZ2h0IGJlCj4gPiBtaXNzaW5nLgo+ID4gCj4gPiAgICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjbjEwL2RjbjEwX3Jlc291cmNlLmM6IEluIGZ1bmN0 aW9uIOKAmGRjbjEwX3Jlc291cmNlX2NvbnN0cnVjdF9mcOKAmToKPiA+ICAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYzoxMzEz OjUyOiBlcnJvcjog4oCYLW1nZW5lcmFsLXJlZ3Mtb25seeKAmSBpcyBpbmNvbXBhdGlibGUgd2l0 aCB0aGUgdXNlIG9mIGZsb2F0aW5nLXBvaW50IHR5cGVzCj4gPiAgICAxMzEzIHwgICAgICAgICAg ICAgICAgIGRjbl9zb2MtPmRyYW1fY2xvY2tfY2hhbmdlX2xhdGVuY3kgPSAyMzsKPiA+ICAgICAg ICAgIHwgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ Xn5+fgo+ID4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY24x MC9kY24xMF9yZXNvdXJjZS5jOjEzMTc6NDU6IGVycm9yOiDigJgtbWdlbmVyYWwtcmVncy1vbmx5 4oCZIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSB1c2Ugb2YgZmxvYXRpbmctcG9pbnQgdHlwZXMK PiA+ICAgIDEzMTcgfCAgICAgICAgICAgICAgICAgZGMtPmRjbl9zb2MtPnVyZ2VudF9sYXRlbmN5 ID0gMzsKPiA+ICAgICAgICAgIHwgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5efn4KPiA+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkv ZGMvZGNuMTAvZGNuMTBfcmVzb3VyY2UuYzoxMzE5OjY0OiBlcnJvcjog4oCYLW1nZW5lcmFsLXJl Z3Mtb25seeKAmSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgdXNlIG9mIGZsb2F0aW5nLXBvaW50 IHR5cGVzCj4gPiAgICAxMzE5IHwgICAgICAgICAgICAgICAgIGRjLT5kY25fc29jLT5mYWJyaWNf YW5kX2RyYW1fYmFuZHdpZHRoX3ZtYXgwcDkgPSA0MS42MGY7Cj4gPiAgICAgICAgICB8ICAgICAg ICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fl5+fn5+fn5+Cj4gPiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2Rj L2RjbjEwL2RjbjEwX3Jlc291cmNlLmM6MTMyOTo2NDogZXJyb3I6IOKAmC1tZ2VuZXJhbC1yZWdz LW9ubHnigJkgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIHVzZSBvZiBmbG9hdGluZy1wb2ludCB0 eXBlcwo+ID4gICAgMTMyOSB8ICAgICAgICAgICAgICAgICBkYy0+ZGNuX3NvYy0+ZmFicmljX2Fu ZF9kcmFtX2JhbmR3aWR0aF92bWF4MHA5ID0gMTkuMmY7Cj4gPiAgICAgICAgICB8ICAgICAgICAg ICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5+ fn5+fn4KPiA+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNu MTAvZGNuMTBfcmVzb3VyY2UuYzoxMzMwOjY0OiBlcnJvcjog4oCYLW1nZW5lcmFsLXJlZ3Mtb25s eeKAmSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgdXNlIG9mIGZsb2F0aW5nLXBvaW50IHR5cGVz Cj4gPiAgICAxMzMwIHwgICAgICAgICAgICAgICAgIGRjLT5kY25fc29jLT5mYWJyaWNfYW5kX2Ry YW1fYmFuZHdpZHRoX3Zub20wcDggPSAxNy4wNjZmOwo+ID4gICAgICAgICAgfCAgICAgICAgICAg ICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5efn5+ fn5+fn4KPiA+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNu MTAvZGNuMTBfcmVzb3VyY2UuYzoxMzMxOjY1OiBlcnJvcjog4oCYLW1nZW5lcmFsLXJlZ3Mtb25s eeKAmSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgdXNlIG9mIGZsb2F0aW5nLXBvaW50IHR5cGVz Cj4gPiAgICAxMzMxIHwgICAgICAgICAgICAgICAgIGRjLT5kY25fc29jLT5mYWJyaWNfYW5kX2Ry YW1fYmFuZHdpZHRoX3ZtaWQwcDcyID0gMTQuOTMzZjsKPiA+ICAgICAgICAgIHwgICAgICAgICAg ICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5+ fn5+fn5+fgo+ID4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9k Y24xMC9kY24xMF9yZXNvdXJjZS5jOjEzMzI6NjU6IGVycm9yOiDigJgtbWdlbmVyYWwtcmVncy1v bmx54oCZIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSB1c2Ugb2YgZmxvYXRpbmctcG9pbnQgdHlw ZXMKPiA+ICAgIDEzMzIgfCAgICAgICAgICAgICAgICAgZGMtPmRjbl9zb2MtPmZhYnJpY19hbmRf ZHJhbV9iYW5kd2lkdGhfdm1pbjBwNjUgPSAxMi44ZjsKPiA+ICAgICAgICAgIHwgICAgICAgICAg ICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5+ fn5+fn4KPiA+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1Ly4uL2Rpc3BsYXkvZGMvZGNu MTAvZGNuMTBfcmVzb3VyY2UuYzoxMzM0OjcyOiBlcnJvcjog4oCYLW1nZW5lcmFsLXJlZ3Mtb25s eeKAmSBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgdXNlIG9mIGZsb2F0aW5nLXBvaW50IHR5cGVz Cj4gPiAgICAxMzM0IHwgICAgICAgICAgICAgICAgICAgICAgICAgZGMtPmRjbl9zb2MtPmZhYnJp Y19hbmRfZHJhbV9iYW5kd2lkdGhfdm1heDBwOSA9IDIwLjgwZjsKPiA+ICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5efn5+fn5+fgo+ID4gICAgbWFrZVs2XTogKioqIFtzY3JpcHRzL01ha2VmaWxl LmJ1aWxkOjI1MDogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY24x MC9kY24xMF9yZXNvdXJjZS5vXSBFcnJvciAxCj4gPiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS8uLi9kaXNwbGF5L2RjL2RjbjMyL2RjbjMyX3Jlc291cmNlLmM6IEluIGZ1bmN0aW9uIOKA mGRjbjMyX3BvcHVsYXRlX2RtbF9waXBlc19mcm9tX2NvbnRleHTigJk6Cj4gPiAgICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjbjMyL2RjbjMyX3Jlc291cmNlLmM6 MTkyMTo3MDogZXJyb3I6IOKAmC1tZ2VuZXJhbC1yZWdzLW9ubHnigJkgaXMgaW5jb21wYXRpYmxl IHdpdGggdGhlIHVzZSBvZiBmbG9hdGluZy1wb2ludCB0eXBlcwo+ID4gICAgMTkyMSB8ICAgICAg ICAgICAgICAgICBwaXBlc1twaXBlX2NudF0ucGlwZS5zcmMuZGNjX2ZyYWN0aW9uX29mX3pzX3Jl cV9sdW1hID0gMDsKPiA+ICAgICAgICAgIHwgICAgICAgICAgICAgICAgIH5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Xn5+Cj4gPiAgICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS8uLi9kaXNwbGF5L2RjL2RjbjMyL2RjbjMyX3Jlc291cmNlLmM6 MTkyMjo3MjogZXJyb3I6IOKAmC1tZ2VuZXJhbC1yZWdzLW9ubHnigJkgaXMgaW5jb21wYXRpYmxl IHdpdGggdGhlIHVzZSBvZiBmbG9hdGluZy1wb2ludCB0eXBlcwo+ID4gICAgMTkyMiB8ICAgICAg ICAgICAgICAgICBwaXBlc1twaXBlX2NudF0ucGlwZS5zcmMuZGNjX2ZyYWN0aW9uX29mX3pzX3Jl cV9jaHJvbWEgPSAwOwo+ID4gICAgICAgICAgfCAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fl5+fgo+ID4gICAgbWFr ZVs2XTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjI1MDogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvLi4vZGlzcGxheS9kYy9kY24zMi9kY24zMl9yZXNvdXJjZS5vXSBFcnJvciAxCj4g Cj4gQ291bGQgeW91IGNoZWNrIGlmIHlvdSBoYXZlIHRoaXMgY29tbWl0IGluIHlvdXIgYnJhbmNo Pwo+IAo+IGRybS9hbWQvZGlzcGxheTogbW92ZSByZW1haW5pbmcgRlBVIGNvZGUgdG8gZG1sIGZv bGRlcgo+IAo+IGlpcmMsIEkgbWVyZ2VkIGl0IGFyb3VuZCBUdWU6Cj4gaHR0cHM6Ly9naXRsYWIu ZnJlZWRlc2t0b3Aub3JnL2FnZDVmL2xpbnV4Ly0vY29tbWl0cy9hbWQtc3RhZ2luZy1kcm0tbmV4 dAoKQWggc29ycnksIEkgaGFkIHRvIHVzZSB0aGUgZHJtLW5leHQgYnJhbmNoIGJlY2F1c2UgYW1k LXN0YWdpbmctZHJtLW5leHQKaXMgYmFzZWQgb24gNS4xOCwgbWVhbmluZyBpdCBkb2VzIG5vdCBo YXZlIHN1cHBvcnQgZm9yIGEgcmVjZW50IHBhaG9sZQpmbGFnIHRoYXQgaXMgb24gYnkgZGVmYXVs dCwgd2hpY2ggYnJlYWtzIGFsbCBvZiBteSBidWlsZHMuIFRoYXQgc3VwcG9ydAp3YXMgZW5hYmxl ZCBpbiA2LjAgaWYgSSByZW1lbWJlciBjb3JyZWN0bHk7IGRybS1uZXh0IGlzIGJhc2VkIG9uIDYu MS1yYzEKc28gZXZlcnl0aGluZyB3b3JrcyBmaW5lIHRoZXJlLiBZb3UgY2FuIGp1c3QgaWdub3Jl IHRoaXMgZXJyb3Igc2luY2UgaXQKd2FzIGFscmVhZHkgZml4ZWQuCgpDaGVlcnMsCk5hdGhhbgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=