From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrcIN-0008eG-3a for kexec@lists.infradead.org; Mon, 29 Nov 2021 08:45:57 +0000 Message-ID: <46fda107-56f9-0052-892a-932875447b0a@linux.ibm.com> Date: Mon, 29 Nov 2021 14:15:09 +0530 Subject: Re: [RFC v1 0/8] RFC v1: Kernel handling of CPU and memory hot un/plug for crash Content-Language: en-US References: <20211118174948.37435-1-eric.devolder@oracle.com> From: Sourabh Jain In-Reply-To: <20211118174948.37435-1-eric.devolder@oracle.com> MIME-Version: 1.0 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: Eric DeVolder , linux-kernel@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, ebiederm@xmission.com, dyoung@redhat.com, bhe@redhat.com, vgoyal@redhat.com Cc: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, nramas@linux.microsoft.com, thomas.lendacky@amd.com, robh@kernel.org, efault@gmx.de, rppt@kernel.org, konrad.wilk@oracle.com, boris.ostrovsky@oracle.com SGVsbG8gRXJpYywKCk9uIDE4LzExLzIxIDIzOjE5LCBFcmljIERlVm9sZGVyIHdyb3RlOgo+IFdo ZW4gdGhlIGtkdW1wIHNlcnZpY2UgaXMgbG9hZGVkLCBpZiBhIENQVSBvciBtZW1vcnkgaXMgaG90 Cj4gdW4vcGx1Z2dlZCwgdGhlIGNyYXNoIGVsZmNvcmVoZHIgd2hpY2ggZGVzY3JpYmVzIHRoZSBD UFVzIGFuZCBtZW1vcnkKPiBpbiB0aGUgc3lzdGVtLCBtdXN0IGFsc28gYmUgdXBkYXRlZCwgZWxz ZSB0aGUgcmVzdWx0aW5nIHZtY29yZSBpcwo+IGluYWNjdXJhdGUgKGVnLiBtaXNzaW5nIGVpdGhl ciBDUFUgY29udGV4dCBvciBtZW1vcnkgcmVnaW9ucykuCj4KPiBUaGUgY3VycmVudCBzb2x1dGlv biB1dGlsaXplcyB1ZGV2IHRvIGluaXRpYXRlIGFuIHVubG9hZC10aGVuLXJlbG9hZAo+IG9mIHRo ZSBrZHVtcCBpbWFnZSAoZS4ga2VybmVsLCBpbml0cmQsIGJvb3RfcGFyYW1zLCBwdXJhdG9yeSBh bmQKPiBlbGZjb3JlaGRyKSBieSB0aGUgdXNlcnNwYWNlIGtleGVjIHV0aWxpdHkuCj4KPiBJbiB0 aGUgcG9zdCBodHRwczovL2xrbWwub3JnL2xrbWwvMjAyMC8xMi8xNC81MzIgSSBvdXRsaW5lZCB0 d28KPiBwcm9ibGVtcyB3aXRoIHRoaXMgdXNlcnNwYWNlLWluaXRpYXRlZCB1bmxvYWQtdGhlbi1y ZWxvYWQgYXBwcm9hY2ggYXMKPiBpdCBwZXJ0YWlucyB0byBzdXBwb3J0aW5nIENQVSBhbmQgbWVt b3J5IGhvdCB1bi9wbHVnIGZvciBrZHVtcC4KPiAoTm90ZSBpbiB0aGF0IHBvc3QsIEkgZXJyb25l b3VzbHkgY2FsbGVkIHRoZSBlbGZjb3JlaGRyIHRoZSB2bWNvcmVpbmZvCj4gc3RydWN0dXJlLiBU aGVyZSBpcyBhIHZtY29yZWluZm8gc3RydWN0dXJlLCBidXQgaXQgaGFzIGEgZGlmZmVyZW50Cj4g cHVycG9zZS4gU28gaW4gdGhhdCBwb3N0IHN1YnN0aXR1dGUgImVsZmNvcmVoZHIiIGZvciAidm1j b3JlaW5mbyIuKQo+Cj4gVGhlIGZpcnN0IHByb2JsZW0gYmVpbmcgdGhlIHRpbWUgbmVlZGVkIHRv IGNvbXBsZXRlIHRoZSB1bmxvYWQtdGhlbi0KPiByZWxvYWQgb2YgdGhlIGtkdW1wIGltYWdlLCBh bmQgdGhlIHNlY29uZCBiZWluZyB0aGUgZWZmZWN0aXZlIHJhY2UKPiB3aW5kb3cgdGhhdCB1bmxv YWQtdGhlbi1yZWxvYWQgZWZmb3J0IGNyZWF0ZXMuCj4KPiBUaGUgc2NlbmFyaW8gSSBtZWFzdXJl ZCB3YXMgYSAzMkdpQiBndWVzdCBiZWluZyByZXNpemVkIHRvIDUxMkdpQiBhbmQKPiBvYnNlcnZp bmcgaXQgdG9vayBvdmVyIDQgbWludXRlcyBmb3IgdWRldiB0byAic2V0dGxlIGRvd24iIGFuZAo+ IGNvbXBsZXRlIHRoZSB1bmxvYWQtdGhlbi1yZWxvYWQgb2YgdGhlIHJlc3VsdGluZyAzODQwIGhv dCBwbHVnIGV2ZW50cy4KPiBFbXBpcmljYWwgZXZpZGVuY2Ugd2l0aGluIG91ciBmbGVldCBzdWJz dGFudGlhdGVzIHRoaXMgcHJvYmxlbS4KPgo+IEVhY2ggdW5sb2FkLXRoZW4tcmVsb2FkIGNyZWF0 ZXMgYSByYWNlIHdpbmRvdyB0aGUgc2l6ZSBvZiB3aGljaCBpcyB0aGUKPiB0aW1lIGl0IHRha2Vz IHRvIHJlbG9hZCB0aGUgY29tcGxldGUga2R1bXAgaW1hZ2UuIFdpdGhpbiB0aGUgcmFjZQo+IHdp bmRvdywga2R1bXAgaXMgbm90IGxvYWRlZCBhbmQgc2hvdWxkIGEgcGFuaWMgb2NjdXIsIHRoZSBr ZXJuZWwgaGFsdHMKPiByYXRoZXIgdGhhbiBkdW1waW5nIGNvcmUgdmlhIGtkdW1wLgo+Cj4gVGhp cyBwYXRjaHNldCBzaWduaWZpY2FudGx5IGltcHJvdmVzIHVwb24gdGhlIGN1cnJlbnQgc29sdXRp b24gYnkKPiBlbmFibGluZyB0aGUga2VybmVsIHRvIHVwZGF0ZSBvbmx5IHRoZSBuZWNlc3Nhcnkg aXRlbXMgb2YgdGhlIGtkdW1wCj4gaW1hZ2UuIEluIHRoZSBjYXNlIG9mIHg4Nl82NCwgdGhhdCBp cyBqdXN0IHRoZSBlbGZjb3JlaGRyIGFuZCB0aGUKPiBwdXJnYXRvcnkgc2VnbWVudHMuIFRoZXNl IHVwZGF0ZXMgb2NjdXIgYXMgZmFzdCBhcyB0aGUgaG90IHVuL3BsdWcKPiBldmVudHMgYW5kIHNp Z25pZmljYW50bHkgcmVkdWNlIHRoZSBzaXplIG9mIHRoZSByYWNlIHdpbmRvdy4KPgo+IFRoaXMg cGF0Y2hzZXQgaW50cm9kdWNlcyBhIGdlbmVyaWMgY3Jhc2ggaG90IHVuL3BsdWcgaGFuZGxlciB0 aGF0Cj4gcmVnaXN0ZXJzIHdpdGggdGhlIENQVSBhbmQgbWVtb3J5IG5vdGlmaWVycy4gVXBvbiBD UFUgb3IgbWVtb3J5Cj4gY2hhbmdlcywgdGhpcyBnZW5lcmljIGhhbmRsZXIgaXMgaW52b2tlZCBh bmQgcGVyZm9ybXMgaW1wb3J0YW50Cj4gaG91c2VrZWVwaW5nLCBmb3IgZXhhbXBsZSBvYnRhaW5p bmcgdGhlIGFwcHJvcHJpYXRlIGxvY2ssIGFuZCB0aGVuCj4gaW52b2tlcyBhbiBhcmNoaXRlY3R1 cmUgc3BlY2lmaWMgaGFuZGxlciB0byBkbyB0aGUgYXBwcm9wcmlhdGUKPiB1cGRhdGVzLgo+Cj4g SW4gdGhlIGNhc2Ugb2YgeDg2XzY0LCB0aGUgYXJjaCBzcGVjaWZpYyBoYW5kbGVyIGdlbmVyYXRl cyBhIG5ldwo+IGVsZmNvcmVoZHIsIHdoaWNoIHJlZmxlY3RzIHRoZSBjdXJyZW50IENQVXMgYW5k IG1lbW9yeSByZWdpb25zLCBpbnRvIGEKPiBidWZmZXIuIFNpbmNlIHB1cmdhdG9yeSBhbHNvIGRv ZXMgYW4gaW50ZWdyaXR5IGNoZWNrIHZpYSBoYXNoIGRpZ2VzdHMKPiBvZiB0aGUgbG9hZGVkIHNl Z21lbnRzLCBwdXJnYXRvcnkgbXVzdCBhbHNvIGJlIHVwZGF0ZWQgd2l0aCB0aGUgbmV3Cj4gZGln ZXN0cy4gVGhlIGFyY2ggaGFuZGxlciBhbHNvIGdlbmVyYXRlcyBhIG5ldyBwdXJnYXRvcnkgaW50 byBhCj4gYnVmZmVyLCBwZXJmb3JtcyB0aGUgaGFzaCBkaWdlc3RzIG9mIHRoZSBuZXcgbWVtb3J5 IHNlZ21lbnRzLCBhbmQgdGhlbgo+IHBhdGNoZXMgcHVyZ2F0b3J5IHdpdGggdGhlIG5ldyBkaWdl c3RzLiAgSWYgYWxsIHN1Y2NlZWRzLCB0aGVuIHRoZQo+IGVsZmNvcmVoZHIgYW5kIHB1cmdhdG9y eSBidWZmZXJzIG92ZXIgd3JpdGUgdGhlIGV4aXN0aW5nIGJ1ZmZlcnMgYW5kCj4gdGhlIG5ldyBr ZHVtcCBpbWFnZSBpcyBsaXZlIGFuZCByZWFkeSB0byBnby4gTm8gaW52b2x2ZW1lbnQgd2l0aAo+ IHVzZXJzcGFjZSBhdCBhbGwuCj4KPiBUbyBhY2NvbW1vZGF0ZSBhIGdyb3dpbmcgbnVtYmVyIG9m IHJlc291cmNlcyB2aWEgaG90cGx1ZywgdGhlCj4gZWxmY29yZWhkciBtZW1vcnkgbXVzdCBiZSBz dWZmaWNpZW50bHkgbGFyZ2UgZW5vdWdoIHRvIGFjY29tbW9kYXRlCj4gY2hhbmdlcy4gVGhlIENS QVNIX0hPVFBMVUdfRUxGQ09SRUhEUl9TWiBjb25maWd1cmUgaXRlbSBkb2VzIGp1c3QKPiB0aGlz Lgo+Cj4gVG8gcmVhbGl6ZSB0aGUgYmVuZWZpdHMvdGVzdCB0aGlzIHBhdGNoc2V0LCBvbmUgbXVz dCBtYWtlIGEgY291cGxlCj4gb2YgbWlub3IgY2hhbmdlcyB0byB1c2Vyc3BhY2U6Cj4KPiAgIC0g RGlzYWJsZSB0aGUgdWRldiBydWxlIGZvciB1cGRhdGluZyBrZHVtcCBvbiBob3QgdW4vcGx1ZyBj aGFuZ2VzCj4gICAgIEVnLiBvbiBSSEVMOiBybSAtZiAvdXNyL2xpYi91ZGV2L3J1bGVzLmQvOTgt a2V4ZWMucnVsZXMKPiAgICAgb3Igb3RoZXIgdGVjaG5pcXVlIHRvIG5ldXRlciB0aGUgcnVsZS4K Pgo+ICAgLSBDaGFuZ2UgdG8gdGhlIGtleGVjX2ZpbGVfbG9hZCBmb3IgbG9hZGluZyB0aGUga2R1 bXAga2VybmVsOgo+ICAgICBFZy4gb24gUkhFTDogaW4gL3Vzci9iaW4va2R1bXBjdGwsIGNoYW5n ZSB0bzoKPiAgICAgIHN0YW5kYXJkX2tleGVjX2FyZ3M9Ii1wIC1kIC1zIgo+ICAgICB3aGljaCBh ZGRzIHRoZSAtcyB0byBzZWxlY3Qga2V4ZWNfZmlsZV9sb2FkIHN5c2NhbGwuCj4KPiBUaGlzIHdv cmsgaGFzIHJhaXNlZCB0aGUgZm9sbG93aW5nIHF1ZXN0aW9ucyBmb3IgbWU6Cj4KPiBGaXJzdCBh bmQgZm9yZW1vc3QsIHRoaXMgcGF0Y2ggb25seSB3b3JrcyBmb3IgdGhlIGtleGVjX2ZpbGVfbG9h ZAo+IHN5c2NhbGwgcGF0aCAodmlhICJrZXhlYyAtcyAtcCIgdXRpbGl0eSkuIFRoZSByZWFzb24g YmVpbmcgdGhhdCwgZm9yCj4geDg2XzY0IGFueXdheSwgdGhlIHB1cmdhdG9yeSBibG9iIHByb3Zp ZGVkIGJ5IHVzZXJzcGFjZSBjYW4gbm90IGJlCj4gcmVhZGlseSBkZWNvZGVkIGluIG9yZGVyIHRv IHVwZGF0ZSB0aGUgaGFzaCBkaWdlc3QuIChUaGUKPiBrZXhlY19maWxlX2xvYWQgcHVyZ2F0b3J5 IGlzIGFjdHVhbGx5IGEgc21hbGwgRUxGIG9iamVjdCB3aXRoIHN5bWJvbHMsCj4gc28gY2FuIGJl IHBhdGNoZWQgYXQgcnVuIHRpbWUuKSBXaXRoIG5vIHdheSB0byB1cGRhdGUgcHVyZ2F0b3J5LCB0 aGUKPiBpbnRlZ3JpdHkgY2hlY2sgd2lsbCBhbHdheXMgZmFpbCBhbmQgYW5kIGNhdXNlIHB1cmdh dG9yeSB0byBoYW5nIGF0Cj4gcGFuaWMgdGltZS4KCgpXZSBhcmUgZGVzaWduaW5nIGEgc29sdXRp b24gZm9yIGEgc2ltaWxhciBwcm9ibGVtIGluIFBvd2VyUEMuIEFncmVlIHRoYXQKbWFuaXB1bGF0 aW5nIGtleGVjIHNlZ21lbnQgaW4gdGhlIGtlcm5lbCBmb3Iga2V4ZWNfbG9hZCBzeXN0ZW0gY2Fs bCBpcwpiaXQgY29tcGxleCBjb21wYXJlIHRvIGtleGVjX2ZpbGVfbG9hZCBzeXN0ZW0gY2FsbCBk dWUgdG8gU0hBIHZlcmlmaWNhdGlvbgppbiBwdXJnYXRvcnkuCgpXaGF0IGlmIHdlIGhhdmUgYSBw cmUtYWxsb2NhdGVkIG1lbW9yeSBob2xlIGZvciB0aGUga2V4ZWMgc2VnbWVudAphbmQgYXNrIGtl eGVjIHRvIHVzZSB0aGF0IGFuZCBza2lwIHRoZSBTSEEgdmVyaWZpY2F0aW9uIGZvciB0aGUgc2Ft ZS4KRm9yIGV4YW1wbGUsIG9uIFBvd2VyUEMsIGFsbCB0aGUgQ1BVcyBhbmQgbWVtb3J5LXJlbGF0 ZWQgaW5mbyBpcyBwYXJ0Cm9mIEZEVC4gV2hlbmV2ZXIgdGhlcmUgaXMgaG90cGx1ZyBldmVudCB3 ZSBoYXZlIHRvIHVwZGF0ZSB0aGUga2R1bXAKIMKgRkRUIHNlZ21lbnQgdG8gcHJvdmlkZSBjb3Jy ZWN0IGRldGFpbHMgdG8gdGhlIGtkdW1wIGtlcm5lbC4KCiDCoE9uZSB3YXkgdG8ga2VlcCB0aGUg a2R1bXAgRkRUIHVwLXRvLWRhdGUgd2l0aCB0aGUgbGF0ZXN0IENQVSBhbmQgbWVtb3J5CmlzIHRv IGxvYWQgdGhlIGtkdW1wIEZEVCB0byB0aGUgcHJlLWFsbG9jYXRlZCBtZW1vcnkgaG9sZSBmb3Ig Ym90aCAKa2V4ZWNfbG9hZAphbmQga2V4ZWNfZmlsZV9sYW9kIHN5c3RlbSBjYWxsIGFuZCBsZXQg dGhlIGtlcm5lbCBrZWVwIHVwZGF0aW5nIHRoZSBGRFQKb24gaG90cGx1ZyBldmVudC4KCkFkYXB0 aW5nIHRoZSBhYm92ZSBzb2x1dGlvbiBmb3IgdGhlIGtleGVjX2ZpbGVfbG9hZCBjYXNlIGlzIGVh c3kgYmVjYXVzZQp3ZSBkbyBldmVyeXRoaW5nIGluIHRoZSBrZXJuZWwuIEJ1dCB3aGF0IGFib3V0 IHRoZSBrZXhlY19sb2FkIHN5c3RlbSAKY2FsbD8gSG93CmtleGVjIHRvb2wgd2lsbCBrbm93IGFi b3V0IHRoaXMgcHJlLWFsbG9jYXRlZCBtZW1vcnkgaG9sZT8gV2hhdCB3aWxsIGhhcHBlbgp0byBk aWdlc3QgdmVyaWZpY2F0aW9uIGlmIHRoZSBrZXJuZWwgdXBkYXRlcyB0aGUga2R1bXAgRkRUIHNl Z21lbnQgcG9zdCAKa2R1bXAKbG9hZD8KClRoZSBrZXJuZWwgd2lsbCBleHBvc2UgdGhlIHByZS1h bGxvY2F0ZWQgbWVtb3J5IHRvIHVzZXJzcGFjZSB2aWEgYSAKc3lzZnMuIFdoZW4ga2V4ZWMKdG9v bCBsb2FkcyB0aGUga2V4ZWMgc2VnbWVudHMgaXQgd2lsbCBjaGVjayBmb3IgdGhpcyBwcmUtYWxs b2NhdGVkIAptZW1vcnkgZm9yCmtkdW1wIEZEVCBhbmQgaWYgYXZhaWxhYmxlIGl0IHdpbGwgdXNl IGl0IGFuZCBza2lwIHRoZSBTSEEgdmVyaWZpY2F0aW9uCmZvciB0aGUgc2FtZS4KCiDCoFBsZWFz ZSBwcm92aWRlIHlvdXIgaW5wdXQgb24gdGhlIGFib3ZlIG1ldGhvZCBvZiBoYW5kbGluZyB0aGlu Z3MgZm9yIAp0aGUga2V4ZWNfZmlsZSBzeXN0ZW0gY2FsbD8KCiDCoEkgYW0gc3RpbGwgcmV2aWV3 aW5nIHlvdXIgcGF0Y2ggc2VyaWVzLgoKVGhhbmtzLApTb3VyYWJoIEphaW4KCj4gVGhhdCBiZWlu ZyBzYWlkLCBJIGFjdHVhbGx5IGRldmVsb3BlZCB0aGlzIGFnYWluc3QgdGhlIGtleGVjX2xvYWQg cGF0aAo+IGFuZCBkaWQgaGF2ZSB0aGF0IHdvcmtpbmcgYnkgbWFraW5nIHR3byBvbmUtbGluZSBj aGFuZ2VzIHRvIHVzZXJzcGFjZQo+IGtleGVjIHV0aWxpdHk6IG9uZSBjaGFuZ2UgdGhhdCBlZmZl Y3RpdmVseSBpcwo+IENSQVNIX0hPVFBMVUdfRUxGQ09SRUhEUl9TWiBhbmQgdGhlIG90aGVyIHRv IGRpc2FibGUgdGhlIGludGVncml0eQo+IGNoZWNrLiBCdXQgdGhhdCBkb2VzIG5vdCBzZWVtIHRv IGJlIGEgbG9uZyB0ZXJtIHNvbHV0aW9uLiBBIHBvc3NpYmxlCj4gbG9uZyB0ZXJtIHNvbHV0aW9u IHdvdWxkIGJlIHRvIGFsbG93IHRoZSB1c2Ugb2YgdGhlIGtleGVjX2ZpbGVfbG9hZAo+IHB1cmdh dG9yeSBFTEYgb2JqZWN0IHdpdGggdGhlIGtleGVjX2xvYWQgcGF0aC4gV2hpbGUgSSBiZWxpZXZl IHRoYXQKPiB3b3VsZCB3b3JrLCBJIGFtIHVuc3VyZSBpZiB0aGVyZSBhcmUgYW55IGRvd25zaWRl cyB0byBkb2luZyBzby4KPgo+IFRoZSBzZWNvbmQgcHJvYmxlbSBpcyB0aGUgdXNlIG9mIENQVUhQ X0FQX09OTElORV9EWU4uICBUaGUKPiBjcHVocF9zZXR1cF9zdGF0ZV9ub2NhbGxzKCkgaXMgaW52 b2tlZCB3aXRoIHBhcmFtZXRlcgo+IENQVUhQX0FQX09OTElORV9EWU4uIFdoaWxlIHRoaXMgd29y a3MsIHdoZW4gYSBDUFUgaXMgYmVpbmcgdW5wbHVnZ2VkLAo+IHRoZSBDUFUgc3RpbGwgc2hvd3Mg dXAgaW4gZm9yZWFjaF9wcmVzZW50X2NwdSgpIGR1cmluZyB0aGUKPiByZWdlbmVyYXRpb24gb2Yg dGhlIGVsZmNvcmVoZHIsIHRodXMgdGhlIG5lZWQgdG8gZXhwbGljaXRseSBjaGVjayBhbmQKPiBl eGNsdWRlIHRoZSBzb29uLXRvLWJlIG9mZmxpbmVkIENQVSBpbiBjcmFzaF9wcmVwYXJlX2VsZjY0 X2hlYWRlcnMoKS4KPiBQZXJoYXBzIGlmIHZhbHVlKHMpIG5ldy9kaWZmZXJlbnQgdGhhbiBDUFVI UF9BUF9PTkxJTkVfRFlOIHRvCj4gY3B1aHBfc2V0dXBfc3RhdGUoKSB3YXMgdXRpbGl6ZWQsIHRo ZW4gdGhlIG9mZmxpbmUgY3B1IHdvdWxkIG5vIGxvbmdlcgo+IGJlIGluIGZvcmVhY2hfcHJlc2Vu dF9jcHUoKSwgYW5kIHRoaXMgY2hhbmdlIGNvdWxkIGJlIGVsaW1pbmF0ZWQuIEkgZG8KPiBub3Qg dW5kZXJzdGFuZCBjcHVocF9zZXR1cF9zdGF0ZSgpIHdlbGwgZW5vdWdoIHRvIGNob29zZSwgb3Ig Y3JlYXRlLAo+IGFwcHJvcHJpYXRlIHZhbHVlKHMpLgo+Cj4gVGhlIHRoaXJkIHByb2JsZW0gaXMg dGhlIG51bWJlciBvZiBtZW1vcnkgaG90IHVuL3BsdWcgZXZlbnRzLiAgSWYsIGZvcgo+IGV4YW1w bGUsIGEgMUdpQiBESU1NIGlzIGhvdHBsdWdnZWQsIHRoYXQgZ2VuZXJhdGUgOCBtZW1vcnkgZXZl bnRzLCBvbmUKPiBmb3IgZWFjaCAxMjhNaUIgbWVtYmxvY2ssIHlldCB0aGUgd2Fsa19zeXN0ZW1f cmFtX3JlcygpIHRoYXQgaXMgdXNlZAo+IHRvIG9idGFpbiB0aGUgbGlzdCBvZiBtZW1vcnkgcmVn aW9ucyByZXBvcnRzIHRoZSBzaW5nbGUgMUdpQjsgdGh1cwo+IHRoZXJlIGFyZSA3IHVuLW5lY2Vz c2FyeSB0cmlwcyB0aHJvdWdoIHRoaXMgY3Jhc2ggaG90cGx1ZyBoYW5kbGVyLgo+IFBlcmhhcHMg dGhlcmUgaXMgYW5vdGhlciB3YXkgb2YgaGFuZGxpbmcgbWVtb3J5IGV2ZW50cyB0aGF0IHdvdWxk IHNlZQo+IHRoZSBzaW5nbGUgMUdpQiBESU1NIHJhdGhlciB0aGFuIGVhY2ggbWVtYmxvY2s/Cj4K PiBSZWdhcmRzLAo+IGVyaWMKPgo+IEVyaWMgRGVWb2xkZXIgKDgpOgo+ICAgIGNyYXNoOiBmaXgg bWlub3IgdHlwby9idWcgaW4gZGVidWcgbWVzc2FnZQo+ICAgIGNyYXNoIGhwOiBJbnRyb2R1Y2Ug Q1JBU0hfSE9UUExVRyBjb25maWd1cmF0aW9uIG9wdGlvbnMKPiAgICBjcmFzaCBocDogZGVmaW5p dGlvbnMgYW5kIHByb3RvdHlwZXMgZm9yIGNyYXNoIGhvdHBsdWcgc3VwcG9ydAo+ICAgIGNyYXNo IGhwOiBnZW5lcmljIGNyYXNoIGhvdHBsdWcgc3VwcG9ydCBpbmZyYXN0cnVjdHVyZQo+ICAgIGNy YXNoIGhwOiBrZXhlY19maWxlIGNoYW5nZXMgZm9yIHVzZSBieSBjcmFzaCBob3RwbHVnIGhhbmRs ZXIKPiAgICBjcmFzaCBocDogQWRkIHg4NiBjcmFzaCBob3RwbHVnIHN0YXRlIGl0ZW1zIHRvIGtp bWFnZQo+ICAgIGNyYXNoIGhwOiBBZGQgeDg2IGNyYXNoIGhvdHBsdWcgc3VwcG9ydCBmb3Iga2V4 ZWNfZmlsZV9sb2FkCj4gICAgY3Jhc2ggaHA6IEFkZCB4ODYgY3Jhc2ggaG90cGx1ZyBzdXBwb3J0 IGZvciBiekltYWdlCj4KPiAgIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICB8ICAy NiArKysKPiAgIGFyY2gveDg2L2luY2x1ZGUvYXNtL2tleGVjLmggICAgICB8ICAxMCArKwo+ICAg YXJjaC94ODYva2VybmVsL2NyYXNoLmMgICAgICAgICAgIHwgMjU3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrLQo+ICAgYXJjaC94ODYva2VybmVsL2tleGVjLWJ6aW1hZ2U2NC5jIHwgIDEy ICsrCj4gICBpbmNsdWRlL2xpbnV4L2tleGVjLmggICAgICAgICAgICAgfCAgMjIgKystCj4gICBr ZXJuZWwvY3Jhc2hfY29yZS5jICAgICAgICAgICAgICAgfCAxMTggKysrKysrKysrKysrKysKPiAg IGtlcm5lbC9rZXhlY19maWxlLmMgICAgICAgICAgICAgICB8ICAxOSArKy0KPiAgIDcgZmlsZXMg Y2hhbmdlZCwgNDU1IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCj4KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmtleGVjIG1haWxpbmcgbGlzdApr ZXhlY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8va2V4ZWMK