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 1AD14CD1296 for ; Wed, 10 Apr 2024 07:38:07 +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:To:References:Message-Id:Cc:Date: In-Reply-To:From:Subject:Mime-Version:Reply-To:Content-ID:Content-Description :Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=aAIR7p7nG5Ph2X8YM5j6Pb181a114kDr1OgS4Z43AiY=; b=fqbPb6goZO377z /faGRZfybrOsZ++cp7DhoWza5uvOZ4zhxhUoCVNxvMoDW/CrnEREyDZMXYtSlKt9haXI+ndxSC+Ex MbLEZE3Zw8U2auRrJg4EM7JBLUzNJB8QSC5ujAEesy+I99CwTQwNs71/AeFvMvcL/JJwZC1a1Z88H B23eAgam7JyNGH4kIHDER21vGMEI9o7+43vTIXqzBZay5VdeHMYmzDQtDnRHurfKkVcfO5Z1sV9lF gewNim4BNMC4ZeCW5un5wh3k7CzLukYLlhQq78p8JmEGqaiujmfAq8ojS4akZjcKYtDXdguNBOGMi AApbD7Zy6/Po+T2pBZsw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruSWk-00000005dvK-0dWY; Wed, 10 Apr 2024 07:37:50 +0000 Received: from out-180.mta0.migadu.com ([91.218.175.180]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ruSWf-00000005dsh-3teN for linux-arm-kernel@lists.infradead.org; Wed, 10 Apr 2024 07:37:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1712734660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=eLTFOoafi0GJYkWU6Rlyr2mCweEmEadpOTxcbs+JWnk=; b=Id6sA/GMQZ7FdYZXDPS9290xt3/Y7ercFjDKqBy0eJzmjj+DPgmR5V/rKWvLqPHexANL62 MCDdViUhgiM7iHn/qgxd/WSlbp5kaz+1DZ1n3p25QwzwCLT//LbSXu826SbN1ehXj15FDp fw5YoPUEu3LEYSdC8hirspYPOutoTKQ= Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.400.31\)) Subject: Re: [PATCH v2 0/4] Speed up boot with faster linear map creation X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Itaru Kitayama In-Reply-To: Date: Wed, 10 Apr 2024 16:37:19 +0900 Cc: Ryan Roberts , Catalin Marinas , Will Deacon , Mark Rutland , Ard Biesheuvel , Donald Dutile , Eric Chanudet , Linux ARM , "linux-kernel@vger.kernel.org" Message-Id: References: <20240404143308.2224141-1-ryan.roberts@arm.com> <533adb77-8c2b-40db-84cb-88de77ab92bb@arm.com> <1d5abb48-08a8-4d83-a681-6915bc7b6907@arm.com> <268FBD1C-B102-4726-A7F4-1125123BDA7A@linux.dev> <5e4dc2fe-2945-4fc5-a533-c8b2d04668a0@redhat.com> <156cf812-a2de-4480-80dc-31c38ca0eb57@redhat.com> <8AA82C6E-F7E7-40A3-952D-392735E1405A@linux.dev> <1E3DBD5D-0EF2-472B-8164-DBC1368C22B4@linux.dev> To: David Hildenbrand X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240410_003746_497714_CDA95259 X-CRM114-Status: GOOD ( 33.79 ) 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 Cgo+IE9uIEFwciAxMCwgMjAyNCwgYXQgMTY6MTAsIERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEBy ZWRoYXQuY29tPiB3cm90ZToKPiAKPiBPbiAxMC4wNC4yNCAwODo0NywgSXRhcnUgS2l0YXlhbWEg d3JvdGU6Cj4+PiBPbiBBcHIgMTAsIDIwMjQsIGF0IDg6MzAsIEl0YXJ1IEtpdGF5YW1hIDxpdGFy dS5raXRheWFtYUBsaW51eC5kZXY+IHdyb3RlOgo+Pj4gCj4+PiBIaSBEYXZpZCwKPj4+IAo+Pj4+ IE9uIEFwciA5LCAyMDI0LCBhdCAyMzo0NSwgRGF2aWQgSGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhh dC5jb20+IHdyb3RlOgo+Pj4+IAo+Pj4+IE9uIDA5LjA0LjI0IDE2OjM5LCBSeWFuIFJvYmVydHMg d3JvdGU6Cj4+Pj4+IE9uIDA5LzA0LzIwMjQgMTU6MjksIERhdmlkIEhpbGRlbmJyYW5kIHdyb3Rl Ogo+Pj4+Pj4gT24gMDkuMDQuMjQgMTY6MTMsIFJ5YW4gUm9iZXJ0cyB3cm90ZToKPj4+Pj4+PiBP biAwOS8wNC8yMDI0IDEyOjUxLCBEYXZpZCBIaWxkZW5icmFuZCB3cm90ZToKPj4+Pj4+Pj4gT24g MDkuMDQuMjQgMTM6MjksIERhdmlkIEhpbGRlbmJyYW5kIHdyb3RlOgo+Pj4+Pj4+Pj4gT24gMDku MDQuMjQgMTM6MjIsIERhdmlkIEhpbGRlbmJyYW5kIHdyb3RlOgo+Pj4+Pj4+Pj4+IE9uIDA5LjA0 LjI0IDEyOjEzLCBJdGFydSBLaXRheWFtYSB3cm90ZToKPj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4+ IAo+Pj4+Pj4+Pj4+Pj4gT24gQXByIDksIDIwMjQsIGF0IDE5OjA0LCBSeWFuIFJvYmVydHMgPHJ5 YW4ucm9iZXJ0c0Bhcm0uY29tPiB3cm90ZToKPj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4gT24g MDkvMDQvMjAyNCAwMToxMCwgSXRhcnUgS2l0YXlhbWEgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4gSGkg UnlhbiwKPj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4gT24gQXByIDgsIDIwMjQsIGF0IDE2 OjMwLCBSeWFuIFJvYmVydHMgPHJ5YW4ucm9iZXJ0c0Bhcm0uY29tPiB3cm90ZToKPj4+Pj4+Pj4+ Pj4+Pj4gCj4+Pj4+Pj4+Pj4+Pj4+IE9uIDA2LzA0LzIwMjQgMTE6MzEsIEl0YXJ1IEtpdGF5YW1h IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+Pj4gSGkgUnlhbiwKPj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+ Pj4+Pj4+Pj4gT24gU2F0LCBBcHIgMDYsIDIwMjQgYXQgMDk6MzI6MzRBTSArMDEwMCwgUnlhbiBS b2JlcnRzIHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+Pj4+IEhpIEl0YXJ1LAo+Pj4+Pj4+Pj4+Pj4+Pj4+ IAo+Pj4+Pj4+Pj4+Pj4+Pj4+IE9uIDA1LzA0LzIwMjQgMDg6MzksIEl0YXJ1IEtpdGF5YW1hIHdy b3RlOgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBPbiBUaHUsIEFwciAwNCwgMjAyNCBhdCAwMzozMzowNFBN ICswMTAwLCBSeWFuIFJvYmVydHMgd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBIaSBBbGwsCj4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEl0IHR1cm5zIG91dCB0aGF0IGNy ZWF0aW5nIHRoZSBsaW5lYXIgbWFwIGNhbiB0YWtlIGEgc2lnbmlmaWNhbnQKPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+IHByb3BvcnRpb24gb2YKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHRoZSB0b3RhbCBib290IHRp bWUsIGVzcGVjaWFsbHkgd2hlbiByb2RhdGE9ZnVsbC4gQW5kIG1vc3Qgb2YgdGhlCj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiB0aW1lIGlzIHNwZW50Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiB3YWl0aW5nIG9uIHN1 cGVyZmx1b3VzIHRsYiBpbnZhbGlkYXRpb24gYW5kIG1lbW9yeSBiYXJyaWVycy4gVGhpcwo+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gc2VyaWVzIHJld29ya3MKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHRoZSBrZXJu ZWwgcGd0YWJsZSBnZW5lcmF0aW9uIGNvZGUgdG8gc2lnbmlmaWNhbnRseSByZWR1Y2UgdGhlIG51 bWJlcgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gb2YgdGhvc2UKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRMQklz LCBJU0JzIGFuZCBEU0JzLiBTZWUgZWFjaCBwYXRjaCBmb3IgZGV0YWlscy4KPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gVGhlIGJlbG93IHNob3dzIHRoZSBleGVjdXRpb24g dGltZSBvZiBtYXBfbWVtKCkgYWNyb3NzIGEgY291cGxlIG9mCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBk aWZmZXJlbnQKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHN5c3RlbXMgd2l0aCBkaWZmZXJlbnQgUkFNIGNv bmZpZ3VyYXRpb25zLiBXZSBtZWFzdXJlIGFmdGVyIGFwcGx5aW5nCj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiBlYWNoIHBhdGNoCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBhbmQgc2hvdyB0aGUgaW1wcm92ZW1lbnQg cmVsYXRpdmUgdG8gYmFzZSAodjYuOS1yYzIpOgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICB8IEFwcGxlIE0yIFZNIHwgQW1wZXJlIEFsdHJh fCBBbXBlcmUgQWx0cmF8IEFtcGVyZQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQWx0cmEKPj4+Pj4+Pj4+ Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgIHwgVk0sIDE2RyAgICAgfCBWTSwgNjRHICAgICB8 IFZNLCAyNTZHICAgIHwgTWV0YWwsCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiA1MTJHCj4+Pj4+Pj4+Pj4+ Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0t LS0tLS0tLS18LS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAg ICAgfCAgIG1zICAgICglKSB8ICAgbXMgICAgKCUpIHwgICBtcyAgICAoJSkgfAo+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gbXMgICAgKCUpCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS18LS0t LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLQo+Pj4+ Pj4+Pj4+Pj4+Pj4+Pj4gYmFzZSAgICAgICAgICAgfCAgMTUzICAgKDAlKSB8IDIyMjcgICAoMCUp IHwgODc5OCAgICgwJSkgfCAxNzQ0Mgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKDAlKQo+Pj4+Pj4+Pj4+ Pj4+Pj4+Pj4gbm8tY29udC1yZW1hcCAgfCAgIDc3ICgtNDklKSB8ICA0MzEgKC04MSUpIHwgMTcy NyAoLTgwJSkgfCAgMzc5Ngo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKC03OCUpCj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiBiYXRjaC1iYXJyaWVycyB8ICAgMTMgKC05MiUpIHwgIDE2MiAoLTkzJSkgfCAgNjU1ICgt OTMlKSB8ICAxNjU2Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAoLTkxJSkKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ IG5vLWFsbG9jLXJlbWFwIHwgICAxMSAoLTkzJSkgfCAgMTA5ICgtOTUlKSB8ICA0NDkgKC05NSUp IHwgIDEyNTcKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICgtOTMlKQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gbGF6 eS11bm1hcCAgICAgfCAgICA2ICgtOTYlKSB8ICAgNjEgKC05NyUpIHwgIDI1NyAoLTk3JSkgfCAg IDgzOAo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gKC05NSUpCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+IFRoaXMgc2VyaWVzIGFwcGxpZXMgb24gdG9wIG9mIHY2LjktcmMyLiBBbGwg bW0gc2VsZnRlc3RzIHBhc3MuIEkndmUKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGNvbXBpbGUgYW5kCj4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiBib290IHRlc3RlZCB2YXJpb3VzIFBBR0VfU0laRSBhbmQgVkEgc2l6 ZSBjb25maWdzLgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0KPj4+ Pj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gQ2hhbmdlcyBzaW5jZSB2MSBbMV0K Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+ID09PT09PT09PT09PT09PT09PT09Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+ PiAKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgICAgLSBBZGRlZCBUZXN0ZWQtYnkgdGFncyAodGhhbmtz IHRvIEVyaWMgYW5kIEl0YXJ1KQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAtIFJlbmFtZWQgX19f c2V0X3B0ZSgpIC0+IF9fc2V0X3B0ZV9ub3N5bmMoKSAocGVyIEFyZCkKPj4+Pj4+Pj4+Pj4+Pj4+ Pj4+ICAgICAgLSBSZW9yZGVyZWQgcGF0Y2hlcyAoYmlnZ2VzdCBpbXBhY3QgJiBsZWFzdCBjb250 cm92ZXJzaWFsIGZpcnN0KQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAtIFJlb3JkZXJlZCBhbGxv Yy9tYXAvdW5tYXAgZnVuY3Rpb25zIGluIG1tdS5jIHRvIGFpZCByZWFkZXIKPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+ICAgICAgLSBwdGVfY2xlYXIoKSAtPiBfX3B0ZV9jbGVhcigpIGluIGNsZWFyX2ZpeG1h cF9ub3N5bmMoKQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gICAgICAtIFJldmVydGVkIGdlbmVyaWMgcDRk X2luZGV4KCkgd2hpY2ggY2F1c2VkIHg4NiBidWlsZCBlcnJvci4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ IFJlcGxhY2VkIHdpdGgKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+ICAgICAgICB1bmNvbmRpdGlvbmFsIHA0 ZF9pbmRleCgpIGRlZmluZSB1bmRlciBhcm02NC4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+ Pj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBbMV0KPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGh0 dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LWFybS1rZXJuZWwvMjAyNDAzMjYxMDE0NDguMzQ1 MzYyNi0xLXJ5YW4ucm9iZXJ0c0Bhcm0uY29tLzxodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51 eC1hcm0ta2VybmVsLzIwMjQwMzI2MTAxNDQ4LjM0NTM2MjYtMS1yeWFuLnJvYmVydHNAYXJtLmNv bS8+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IFRoYW5rcywKPj4+Pj4+ Pj4+Pj4+Pj4+Pj4+IFJ5YW4KPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBSeWFuIFJvYmVydHMgKDQpOgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g ICAgICBhcm02NDogbW06IERvbid0IHJlbWFwIHBndGFibGVzIHBlci1jb250KHB0ZXxwbWQpIGJs b2NrCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgICAgIGFybTY0OiBtbTogQmF0Y2ggZHNiIGFuZCBpc2Ig d2hlbiBwb3B1bGF0aW5nIHBndGFibGVzCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiAgICAgIGFybTY0OiBt bTogRG9uJ3QgcmVtYXAgcGd0YWJsZXMgZm9yIGFsbG9jYXRlIHZzIHBvcHVsYXRlCj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiAgICAgIGFybTY0OiBtbTogTGF6aWx5IGNsZWFyIHB0ZSB0YWJsZSBtYXBwaW5n cyBmcm9tIGZpeG1hcAo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiBhcmNo L2FybTY0L2luY2x1ZGUvYXNtL2ZpeG1hcC5oICB8ICAgNSArLQo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4g YXJjaC9hcm02NC9pbmNsdWRlL2FzbS9tbXUuaCAgICAgfCAgIDggKwo+Pj4+Pj4+Pj4+Pj4+Pj4+ Pj4gYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9wZ3RhYmxlLmggfCAgMTMgKy0KPj4+Pj4+Pj4+Pj4+ Pj4+Pj4+IGFyY2gvYXJtNjQva2VybmVsL2NwdWZlYXR1cmUuYyAgIHwgIDEwICstCj4+Pj4+Pj4+ Pj4+Pj4+Pj4+PiBhcmNoL2FybTY0L21tL2ZpeG1hcC5jICAgICAgICAgICB8ICAxMSArCj4+Pj4+ Pj4+Pj4+Pj4+Pj4+PiBhcmNoL2FybTY0L21tL21tdS5jICAgICAgICAgICAgICB8IDM3NyArKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4+Pj4+Pj4+Pj4+Pj4+Pj4+PiA2IGZpbGVzIGNo YW5nZWQsIDMxOSBpbnNlcnRpb25zKCspLCAxMDUgZGVsZXRpb25zKC0pCj4+Pj4+Pj4+Pj4+Pj4+ Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tIAo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gMi4yNS4xCj4+ Pj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IEkn dmUgYnVpbGQgYW5kIGJvb3QgdGVzdGVkIHRoZSB2MiBvbiBGVlAsIGJhc2UgaXMgdGFrZW4gZnJv bSB5b3VyCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGxpbnV4LXJyIHJlcG8uIFJ1bm5pbmcgcnVuX3ZtdGVz dHMuc2ggb24gdjIgbGVmdCBzb21lIGd1cCBsb25ndGVybSBub3QKPj4+Pj4+Pj4+Pj4+Pj4+Pj4g b2tzLCB3b3VsZCB5b3UgdGFrZSBhIGxvb2sgYXQgaXQ/IFRoZSBtbSBrc2VmbHRlc3RzIHVzZWQg aXMgZnJvbSB5b3VyCj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGxpbnV4LXJyIHJlcG8gdG9vLgo+Pj4+Pj4+ Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+IFRoYW5rcyBmb3IgdGFraW5nIGEgbG9vayBhdCB0 aGlzLgo+Pj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+IEkgY2FuJ3QgcmVwcm9kdWNl IHlvdXIgaXNzdWUgdW5mb3J0dW5hdGVseTsgc3RlcHMgYXMgZm9sbG93cyBvbiBBcHBsZQo+Pj4+ Pj4+Pj4+Pj4+Pj4+IE0yIFZNOgo+Pj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+IENv bmZpZzogYXJtNjQgZGVmY29uZmlnICsgdGhlIGZvbGxvd2luZzoKPj4+Pj4+Pj4+Pj4+Pj4+PiAK Pj4+Pj4+Pj4+Pj4+Pj4+PiAjIFNxdWFzaGZzIGZvciBzbmFwcywgeGZzIGZvciBsYXJnZSBmaWxl IGZvbGlvcy4KPj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxlIENPTkZJ R19TUVVBU0hGU19MWjQKPj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5hYmxl IENPTkZJR19TUVVBU0hGU19MWk8KPj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0t ZW5hYmxlIENPTkZJR19TUVVBU0hGU19YWgo+Pj4+Pj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25m aWcgLS1lbmFibGUgQ09ORklHX1NRVUFTSEZTX1pTVEQKPj4+Pj4+Pj4+Pj4+Pj4+PiAuL3Njcmlw dHMvY29uZmlnIC0tZW5hYmxlIENPTkZJR19YRlNfRlMKPj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+ Pj4+Pj4+Pj4+PiAjIEZvciBnZW5lcmFsIG1tIGRlYnVnLgo+Pj4+Pj4+Pj4+Pj4+Pj4+IC4vc2Ny aXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNCj4+Pj4+Pj4+Pj4+Pj4+Pj4gLi9z Y3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfREVCVUdfVk1fTUFQTEVfVFJFRQo+Pj4+Pj4+ Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklHX0RFQlVHX1ZNX1JCCj4+ Pj4+Pj4+Pj4+Pj4+Pj4gLi9zY3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfREVCVUdfVk1f UEdGTEFHUwo+Pj4+Pj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25maWcgLS1lbmFibGUgQ09ORklH X0RFQlVHX1ZNX1BHVEFCTEUKPj4+Pj4+Pj4+Pj4+Pj4+PiAuL3NjcmlwdHMvY29uZmlnIC0tZW5h YmxlIENPTkZJR19QQUdFX1RBQkxFX0NIRUNLCj4+Pj4+Pj4+Pj4+Pj4+Pj4gCj4+Pj4+Pj4+Pj4+ Pj4+Pj4gIyBGb3IgbW0gc2VsZnRlc3RzLgo+Pj4+Pj4+Pj4+Pj4+Pj4+IC4vc2NyaXB0cy9jb25m aWcgLS1lbmFibGUgQ09ORklHX1VTRVJGQVVMVEZECj4+Pj4+Pj4+Pj4+Pj4+Pj4gLi9zY3JpcHRz L2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfVEVTVF9WTUFMTE9DCj4+Pj4+Pj4+Pj4+Pj4+Pj4gLi9z Y3JpcHRzL2NvbmZpZyAtLWVuYWJsZSBDT05GSUdfR1VQX1RFU1QKPj4+Pj4+Pj4+Pj4+Pj4+PiAK Pj4+Pj4+Pj4+Pj4+Pj4+PiBSdW5uaW5nIG9uIFZNIHdpdGggMTJHIG1lbW9yeSwgc3BsaXQgYWNy b3NzIDIgKGVtdWxhdGVkKSBOVU1BIG5vZGVzCj4+Pj4+Pj4+Pj4+Pj4+Pj4gKG5lZWRlZCBieQo+ Pj4+Pj4+Pj4+Pj4+Pj4+IHNvbWUgbW0gc2VsZnRlc3RzKSwgd2l0aCBrZXJuZWwgY29tbWFuZCBs aW5lIHRvIHJlc2VydmUgaHVnZXRsYnMgYW5kCj4+Pj4+Pj4+Pj4+Pj4+Pj4gb3RoZXIKPj4+Pj4+ Pj4+Pj4+Pj4+PiBmZWF0dXJlcyByZXF1aXJlZCBieSBzb21lIG1tIHNlbGZ0ZXN0czoKPj4+Pj4+ Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+PiAiCj4+Pj4+Pj4+Pj4+Pj4+Pj4gdHJhbnNwYXJl bnRfaHVnZXBhZ2U9bWFkdmlzZSBlYXJseWNvbiByb290PS9kZXYvdmRhMiBzZWNyZXRtZW0uZW5h YmxlCj4+Pj4+Pj4+Pj4+Pj4+Pj4gaHVnZXBhZ2Vzej0xRyBodWdlcGFnZXM9MDoyLDE6MiBodWdl cGFnZXN6PTMyTSBodWdlcGFnZXM9MDoyLDE6Mgo+Pj4+Pj4+Pj4+Pj4+Pj4+IGRlZmF1bHRfaHVn ZXBhZ2Vzej0yTSBodWdlcGFnZXM9MDo2NCwxOjY0IGh1Z2VwYWdlc3o9NjRLCj4+Pj4+Pj4+Pj4+ Pj4+Pj4gaHVnZXBhZ2VzPTA6MiwxOjIKPj4+Pj4+Pj4+Pj4+Pj4+PiAiCj4+Pj4+Pj4+Pj4+Pj4+ Pj4gCj4+Pj4+Pj4+Pj4+Pj4+Pj4gVWJ1bnR1IHVzZXJzcGFjZSBydW5uaW5nIG9mZiBYRlMgcm9v dGZzLiBCdWlsZCBhbmQgcnVuIG1tIHNlbGZ0ZXN0cwo+Pj4+Pj4+Pj4+Pj4+Pj4+IGZyb20gc2Ft ZQo+Pj4+Pj4+Pj4+Pj4+Pj4+IGdpdCB0cmVlLgo+Pj4+Pj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+ Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4+Pj4+IEFsdGhvdWdoIEkgZG9uJ3QgdGhpbmsgYW55IG9mIHRo aXMgY29uZmlnIHNob3VsZCBtYWtlIGEgZGlmZmVyZW5jZSB0bwo+Pj4+Pj4+Pj4+Pj4+Pj4+IGd1 cF9sb25ndGVybS4KPj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+PiBMb29rcyBsaWtl IHlvdXIgZXJyb3JzIGFyZSBhbGwgImZ0cnVuY2F0ZSgpIGZhaWxlZCIuIEkndmUgc2VlbiB0aGlz Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gcHJvYmxlbSBvbgo+Pj4+Pj4+Pj4+Pj4+Pj4+IG91ciBDSSBzeXN0 ZW0uIFRoZXJlIGl0IGlzIGR1ZSB0byBydW5uaW5nIHRoZSB0ZXN0cyBmcm9tIE5GUyBmaWxlCj4+ Pj4+Pj4+Pj4+Pj4+Pj4gc3lzdGVtLiBXaGF0Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gZmlsZXN5c3RlbSBh cmUgeW91IHVzaW5nPyBQZXJoYXBzIHlvdSBhcmUgc2hhcmluZyBpbnRvIHRoZSBGVlAgdXNpbmcK Pj4+Pj4+Pj4+Pj4+Pj4+PiA5cD8gVGhhdAo+Pj4+Pj4+Pj4+Pj4+Pj4+IG1pZ2h0IGFsc28gYmUg cHJvYmxlbWF0aWMuCj4+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4+IFRoYXQgd2FzIGl0 LiBUaGlzIHRpbWUgSSBib290ZWQgdXAgdGhlIGtlcm5lbCBpbmNsdWRpbmcgeW91ciBzZXJpZXMg b24KPj4+Pj4+Pj4+Pj4+Pj4+IFFFTVUgb24gbXkgTTEgYW5kIGV4ZWN1dGVkIHRoZSBndXBfbG9u Z3Rlcm0gcHJvZ3JhbSB3aXRob3V0IHRoZSBmdHJ1bmNhdGUKPj4+Pj4+Pj4+Pj4+Pj4+IGZhaWx1 cmVzLiBXaGVuIHRlc3RpbmcgeW91ciBrZXJuZWwgb24gRlZQLCBJIHdhcyBleGVjdXRpbmcgdGhl IHNjcmlwdAo+Pj4+Pj4+Pj4+Pj4+Pj4gZnJvbSB0aGUgRlZQJ3MgaG9zdCBmaWxlc3lzdGVtIHVz aW5nIDlwLgo+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+Pj4gSSdtIG5vdCBzdXJlIGV4YWN0 bHkgd2hhdCB0aGUgcm9vdCBjYXVzZSBpcy4gUGVyaGFwcyB0aGVyZSBpc24ndCBlbm91Z2gKPj4+ Pj4+Pj4+Pj4+Pj4gc3BhY2Ugb24KPj4+Pj4+Pj4+Pj4+Pj4gdGhlIGRpc2s/IEl0IG1pZ2h0IGJl IHdvcnRoIGVuaGFuY2luZyB0aGUgZXJyb3IgbG9nIHRvIHByb3ZpZGUgdGhlCj4+Pj4+Pj4+Pj4+ Pj4+IGVycm5vIGluCj4+Pj4+Pj4+Pj4+Pj4+IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL21tL2d1 cF9sb25ndGVybS5jLgo+Pj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+Pj4+ PiBBdHRhY2hlZCBpcyB0aGUgc3RyYWNl4oCZZCBndXBfbG9uZ3Rlcm0gZXhlY3V0aW9uZyBsb2cg b24geW91cgo+Pj4+Pj4+Pj4+Pj4+IHBndGFibGUtYm9vdC1zcGVlZHVwLXYyIGtlcm5lbC4KPj4+ Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+Pj4gU29ycnkgYXJlIHlvdSBzYXlpbmcgdGhhdCBpdCBvbmx5 IGZhaWxzIHdpdGggdGhlIHBndGFibGUtYm9vdC1zcGVlZHVwLXYyCj4+Pj4+Pj4+Pj4+PiBwYXRj aAo+Pj4+Pj4+Pj4+Pj4gc2V0IGFwcGxpZWQ/IEkgdGhvdWdodCB3ZSBwcmV2aW91c2x5IGNvbmNs dWRlZCB0aGF0IGl0IHdhcyBpbmRlcGVuZGVudCBvZgo+Pj4+Pj4+Pj4+Pj4gdGhhdD8KPj4+Pj4+ Pj4+Pj4+IEkgd2FzIHVuZGVyIHRoZSBpbXByZXNzaW9uIHRoYXQgaXQgd2FzIGZpbGVzeXN0ZW0g cmVsYXRlZCBhbmQgbm90IHNvbWV0aGluZwo+Pj4+Pj4+Pj4+Pj4gdGhhdAo+Pj4+Pj4+Pj4+Pj4g SSB3YXMgcGxhbm5pbmcgdG8gaW52ZXN0aWdhdGUuCj4+Pj4+Pj4+Pj4+IAo+Pj4+Pj4+Pj4+PiBO bywgaXJyZXNwZWN0aXZlIG9mIHRoZSBrZXJuZWwsIGlmIHVzaW5nIDlwIG9uIEZWUCB0aGUgdGVz dCBwcm9ncmFtIGZhaWxzLgo+Pj4+Pj4+Pj4+PiBJdCBpcyBpbmRlZWQgOXAgZmlsZXN5c3RlbSBy ZWxhdGVkLCBhcyBJIHN3aXRjaGVkIHRvIHVzaW5nIE5GUyBhbGwgdGhlCj4+Pj4+Pj4+Pj4+IGlz c3VlcyBhcmUgZ29uZS4KPj4+Pj4+Pj4+PiAKPj4+Pj4+Pj4+PiBEaWQgaXQgbmV2ZXIgd29yayBv biA5cD8gSWYgc28sIHdlIG1pZ2h0IGhhdmUgdG8gU0tJUCB0aGF0IHRlc3QuCj4+Pj4+Pj4+Pj4g Cj4+Pj4+Pj4+Pj4gb3BlbmF0KEFUX0ZEQ1dELCAiZ3VwX2xvbmd0ZXJtLmNfdG1wZmlsZV9CTGJv T3QiLCBPX1JEV1J8T19DUkVBVHxPX0VYQ0wsCj4+Pj4+Pj4+Pj4gMDYwMCkgPSAzCj4+Pj4+Pj4+ Pj4gdW5saW5rYXQoQVRfRkRDV0QsICJndXBfbG9uZ3Rlcm0uY190bXBmaWxlX0JMYm9PdCIsIDAp ID0gMAo+Pj4+Pj4+Pj4+IGZzdGF0ZnMoMywgMHhmZmZmZTUwNWE4NDApICAgICAgICAgICAgICA9 IC0xIEVPUE5PVFNVUFAgKE9wZXJhdGlvbiBub3QKPj4+Pj4+Pj4+PiBzdXBwb3J0ZWQpCj4+Pj4+ Pj4+Pj4gZnRydW5jYXRlKDMsIDQwOTYpICAgICAgICAgICAgICAgICAgICAgID0gLTEgRU5PRU5U IChObyBzdWNoIGZpbGUgb3IKPj4+Pj4+Pj4+PiBkaXJlY3RvcnkpCj4+Pj4+Pj4+PiAKPj4+Pj4+ Pj4+IE5vdGU6IEknbSB3b25kZXJpbmcgaWYgdGhlIHVubGlua2F0IGhlcmUgaXMgdGhlIHByb2Js ZW0gdGhhdCBtYWtlcwo+Pj4+Pj4+Pj4gZnRydW5jYXRlKCkgd2l0aCA5cCByZXN1bHQgaW4gd2Vp cmQgZXJyb3JzIChlLmcuLCB0aGUgaHlwZXJ2aXNvcgo+Pj4+Pj4+Pj4gdW5saW5rZWQgdGhlIGZp bGUgYW5kIGNhbm5vdCByZW9wZW4gaXQgZm9yIHRoZSBmc3RhdGZzL2Z0cnVuY2F0ZS4gLi4uCj4+ Pj4+Pj4+PiB3aGljaCBnaXZlcyB1cyB3ZWlyZCBlcnJvcnMgaGVyZSkuCj4+Pj4+Pj4+PiAKPj4+ Pj4+Pj4+IFRoZW4sIHdlIHNob3VsZCBsb29rdXAgdGhlIGZzIHR5cGUgaW4gcnVuX3dpdGhfbG9j YWxfdG1wZmlsZSgpIGJlZm9yZQo+Pj4+Pj4+Pj4gdGhlIHVubGluaygpIGFuZCBzaW1wbHkgc2tp cCB0aGUgdGVzdCBpZiBpdCBpcyA5cC4KPj4+Pj4+Pj4gCj4+Pj4+Pj4+IFRoZSB1bmxpbmsgd2l0 aCA5cCBtb3N0IGNlcnRhaW5seSB3YXMgYSBrbm93biBpc3N1ZSBpbiB0aGUgcGFzdDoKPj4+Pj4+ Pj4gCj4+Pj4+Pj4+IGh0dHBzOi8vZ2l0bGFiLmNvbS9xZW11LXByb2plY3QvcWVtdS8tL2lzc3Vl cy8xMDMKPj4+Pj4+Pj4gCj4+Pj4+Pj4+IE1heWJlIGl0J3Mgc3RpbGwgYW4gaXNzdWUgd2l0aCBv bGRlciBoeXBlcnZpc29ycyAoUUVNVT8pPyBPciBpdCB3YXMgbmV2ZXIKPj4+Pj4+Pj4gY29tcGxl dGVseSByZXNvbHZlZD8KPj4+Pj4+PiAKPj4+Pj4+PiBJIGJlbGlldmUgSXRhcnUgaXMgcnVubmlu ZyBvbiBGVlAgKEZpeGVkIFZpcnR1YWwgUGxhdGZvcm0gLSAiZmFzdCBtb2RlbCIgLQo+Pj4+Pj4+ IEFybSdzIGFyY2hpdGVjdHVyZSBlbXVsYXRvcikuIFNvIFFFTVUgd29uJ3QgYmUgaW52b2x2ZWQg aGVyZS4gVGhlIEZWUCBlbXVsYXRlcwo+Pj4+Pj4+IGEgOXAgZGV2aWNlLCBzbyBwZXJoYXBzIHRo ZSBidWcgaXMgaW4gdGhlcmUuCj4+Pj4+PiAKPj4+Pj4+IFZlcnkgbGlrZWx5Lgo+Pj4+Pj4gCj4+ Pj4+Pj4gCj4+Pj4+Pj4gTm90ZSB0aGF0IEkgc2VlIGxvdHMgb2YgImZhbGxvY2F0ZSgpIGZhaWxl ZCIgZmFpbHVyZXMgaW4gZ3VwX2xvbmd0ZXJtIHdoZW4KPj4+Pj4+PiBydW5uaW5nIG9uIG91ciBD SSBzeXN0ZW0uIFRoaXMgaXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZXR1cDsgUmVhbCBIVyB3 aXRoCj4+Pj4+Pj4gTGludXggcnVubmluZyBiYXJlIG1ldGFsIHVzaW5nIGFuIE5GUyByb290ZnMu IEknbSBub3Qgc3VyZSBpZiB0aGlzIGlzIHJlbGF0ZWQuCj4+Pj4+Pj4gTG9ncyBzaG93IGl0IGZh aWxpbmcgY29uc2lzdGVudGx5IGZvciB0aGUgInRtcGZpbGUiIGFuZCAibG9jYWwgdG1wZmlsZSIg dGVzdAo+Pj4+Pj4+IGNvbmZpZ3MuIEkgYWxzbyBzZWUgYSBjb3VwbGUgb2YgdGhlc2UgZmFpbHMg aW4gdGhlIGNvdyB0ZXN0cy4KPj4+Pj4+IAo+Pj4+Pj4gV2hhdCBpcyB0aGUgZmFsbG9jYXRlKCkg ZXJybm8geW91IGFyZSBnZXR0aW5nPyBzdHJhY2UgbG9nIHdvdWxkIGhlbHAgKHRvIHNlZSBpZgo+ Pj4+Pj4gc3RhdGZzIGFsc28gZmFpbHMgYWxyZWFkeSkhIExpa2VseSBhIHNpbWlsYXIgTkZTIGlz c3VlLgo+Pj4+PiBVbmZvcnR1bmF0ZWx5IHRoaXMgaXMgYSBzeXN0ZW0gSSBkb24ndCBoYXZlIGFj Y2VzcyB0by4gSSd2ZSByZXF1ZXN0ZWQgc29tZSBvZgo+Pj4+PiB0aGlzIHRyaWFnZSB0byBiZSBk b25lLCBidXQgaXRzIGZhaXJseSBsb3cgcHJpb3JpdHkgdW5mb3J0dW5hdGVseS4KPj4+PiAKPj4+ PiBUbyB3b3JrIGFyb3VuZCB0aGVzZSBCVUdzICg/KSBlbHNld2hlcmUsIHdlIGNvdWxkIHNpbXBs eSBza2lwIHRoZSB0ZXN0IGlmIGdldF9mc190eXBlKCkgaXMgbm90IGFibGUgdG8gZGV0ZWN0IHRo ZSBGUyB0eXBlLiBMaWtlbHkgdGhhdCdzIGFuIGVhcmx5IGluZGljYXRvciB0aGF0IHRoZSB1bmxp bmsoKSBtZXNzZWQgc29tZXRoaW5nIHVwLgo+Pj4+IAo+Pj4+IC4uLiBkb2Vzbid0IGZlZWwgcmln aHQsIHRob3VnaC4KPj4+IAo+Pj4gSSB0aGluayBpdOKAmXMgYSBnb29kIGlkZWEgc28gdGhhdCB0 aGUgbW0ga3NlbGZ0ZXN0cyByZXN1bHRzIGxvb2sgcmVhc29uYWJsZS4KPiAKPiBZZWFoLCBidXQg dGhpcyB3aWxsIGhpZGUgQlVHcyBlbHNld2hlcmUuIEkgc3VzcGVjdCB0aGF0IGluIFJ5YW4ncyBO RlMgc2V0dXAgaXMKPiBhbHNvIGEgQlVHIGx1cmtpbmcgc29tZXdoZXJlIGluIHRoZSBORlMgaW1w bGVtZW50YXRpb24uIEJ1dCB0aGF0J3MganVzdCBhIGd1ZXNzCj4gdW50aWwgd2UgaGF2ZSBtb3Jl IGRldGFpbHMuCj4gCgpPay4KCj4+PiBTaW5jZSB5b3XigJlyZSBhbiBleHBlcnQgb24gR1VQLWZh c3QgKG9yIGZhc3QtR1VQPyksIHdoZW4geW91IHVwZGF0ZSB0aGUgY29kZSwgY291bGQgeW91IHBy aW50IG91dCBlcnJubyBhcyB3ZWxsIGxpa2UgdGhlIHNwbGl0X2h1Z2VfcGFnZV90ZXN0LmMgZG9l cwo+IAo+IFdoaWxlIHdlIGNvdWxkLCBJIGRvbid0IHNlZSBtdWNoIHZhbHVlIGluIHRoYXQgZm9y IHNlbGZ0ZXN0cy4gc3RyYWNlIGxvZyBpcyBvZiBtdWNoCj4gbW9yZSB2YWx1YWJsZSB0byB1bmRl cnN0YW5kIHdoYXQgaXMgYWN0dWFsbHkgaGFwcGVuaW5nIChlLmcuLCBmc3RhdGZzIGZhaWxpbmcp LCBhbmQKPiBxdWl0ZSBlYXN5IHRvIG9idGFpbi4KCk9rLgoKPiAKPj4+IFRoYW5rcywKPj4+IEl0 YXJ1Lgo+PiBEYXZpZCwgYXR0YWNoZWQgaXMgdGhlIHN0cmFjZWQgZXhlY3V0aW9uIGxvZyBvZiB0 aGUgZ3VwX2xvbmd0ZXJtIGtzZWxmdGVzdCBvdmVyIHRoZSBORlMgY2FzZS4KPj4gSeKAmW0gcnVu bmluZyB0aGUgcHJvZ3JhbSBvbiBGVlAsIGxldCBtZSBrbm93IGlmIHlvdSBuZWVkIG90aGVyIGxv Z3Mgb3IgdGVzdCByZXN1bHRzLgo+IAo+IEZvciB5b3VyIHJ1biwgaXQgYWxsIGxvb2tzIGdvb2Q6 Cj4gCj4gb3BlbmF0KEFUX0ZEQ1dELCAiL3RtcCIsIE9fUkRXUnxPX0VYQ0x8T19UTVBGSUxFLCAw NjAwKSA9IDMKPiBmY250bCgzLCBGX0dFVEZMKSAgICAgICAgICAgICAgICAgICAgICAgPSAweDQy NDAwMiAoZmxhZ3MgT19SRFdSfE9fTEFSR0VGSUxFfE9fVE1QRklMRSkKPiBmc3RhdGZzKDMsIHtm X3R5cGU9VE1QRlNfTUFHSUMsIGZfYnNpemU9NDA5NiwgZl9ibG9ja3M9NDE2MDE1LCBmX2JmcmVl PTQxNTk5NywgZl9iYXZhaWw9NDE1OTk3LCBmX2ZpbGVzPTQxNjAxNSwgZl9mZnJlZT00MTYwMDks IGZfZnNpZD17dmFsPVsweDhlNmI3Y2U2LCAweGUxNzM3NDQwXX0sIGZfbmFtZWxlbj0yNTUsIGZf ZnJzaXplPTQwOTYsIGZfZmxhZ3M9U1RfVkFMSUR8U1RfUkVMQVRJTUV9KSA9IDAKPiBmdHJ1bmNh dGUoMywgNDA5NikgICAgICAgICAgICAgICAgICAgICAgPSAwCj4gZmFsbG9jYXRlKDMsIDAsIDAs IDQwOTYpICAgICAgICAgICAgICAgID0gMAo+IAo+IC0+IFRNUEZTL1NITUVNLCB3b3JrcyBhcyBl eHBlY3RlZAo+IAo+IG9wZW5hdChBVF9GRENXRCwgImd1cF9sb25ndGVybS5jX3RtcGZpbGVfV01M VE5mIiwgT19SRFdSfE9fQ1JFQVR8T19FWENMLCAwNjAwKSA9IDMKPiB1bmxpbmthdChBVF9GRENX RCwgImd1cF9sb25ndGVybS5jX3RtcGZpbGVfV01MVE5mIiwgMCkgPSAwCj4gZnN0YXRmcygzLCB7 Zl90eXBlPU5GU19TVVBFUl9NQUdJQywgZl9ic2l6ZT0xMDQ4NTc2LCBmX2Jsb2Nrcz0xMTIyMDAs IGZfYmZyZWU9Mjc5NTQsIGZfYmF2YWlsPTIzMjk2LCBmX2ZpbGVzPTczMDcyNjQsIGZfZmZyZWU9 NDcyNDgxNSwgZl9mc2lkPXt2YWw9WzAsIDBdfSwgZl9uYW1lbGVuPTI1NSwgZl9mcnNpemU9MTA0 ODU3NiwgZl9mbGFncz1TVF9WQUxJRHxTVF9SRUxBVElNRX0pID0gMAo+IGZ0cnVuY2F0ZSgzLCA0 MDk2KSAgICAgICAgICAgICAgICAgICAgICA9IDAKPiBmYWxsb2NhdGUoMywgMCwgMCwgNDA5Nikg ICAgICAgICAgICAgICAgPSAwCj4gCj4gLT4gTkZTLCB3b3JrcyBhcyBleHBlY3RlZAo+IAo+IE5v dGUgdGhhdCB5b3UgZ2V0IGFsbCBza2lwcyAobm90IGZhaWxzKSwgYmVjYXVzZSB5b3VyIGtlcm5l bCBpcyBub3QgY29tcGlsZWQgd2l0aCBDT05GSUdfR1VQX1RFU1QuCj4gCj4gb2sgMSAjIFNLSVAg Z3VwX3Rlc3Qgbm90IGF2YWlsYWJsZQoKSSByZWJ1aWx0IHRoZSB2Ni45LXJjMyBrZXJuZWwgd2l0 aCB0aGF0IG9wdGlvbiBlbmFibGVkLiBUaGlzIHRpbWUgU0tJUHMgYXJlIGR1ZSB0byDigJxuZWVk IG1vcmUgZnJlZSBodWdlIHBhZ2Vz4oCdLCBJ4oCZbGwgY2hlY2sgZXZlbiBvbiBhIGxpbWl0ZWQg bWVtb3J5IHNpemUgc3lzdGVtIHByZXBhcmluZyBlbm91Z2ggaHVnZSBwYWdlcyBpcyBwb3NzaWJs ZS4KClRoYW5rcywKSXRhcnUuIAoKPiAKPiAtLSAKPiBDaGVlcnMsCj4gCj4gRGF2aWQgLyBkaGls ZGVuYgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwps aW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1hcm0ta2VybmVsCg==