From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH RFC 00/39] x86/KVM: Xen HVM guest support Date: Mon, 8 Apr 2019 17:35:11 -0700 (PDT) Message-ID: References: <20190220201609.28290-1-joao.m.martins@oracle.com> <35051310-c497-8ad5-4434-1b8426a317d2@redhat.com> <8b1f4912-4f92-69ae-ae01-d899d5640572@oracle.com> <3ee91f33-2973-c2db-386f-afbf138081b4@redhat.com> <59676804-786d-3df8-7752-8e45dec6d65b@oracle.com> <94738323-ebdf-d58e-55b6-313e27c923b0@oracle.com> <585163c2-8dea-728d-7556-9cb3559f0eca@suse.com> <97808492-58ee-337f-c894-900b34b7b1a5@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hDejS-0003LT-05 for xen-devel@lists.xenproject.org; Tue, 09 Apr 2019 00:35:22 +0000 In-Reply-To: <97808492-58ee-337f-c894-900b34b7b1a5@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Joao Martins Cc: Juergen Gross , Artem_Mygaiev@epam.com, Stefano Stabellini , xen-devel@lists.xenproject.org, kvm@vger.kernel.org, =?UTF-8?Q?Radim_Kr=C4=8Dm=C3=A1=C5=99?= , x86@kernel.org, linux-kernel@vger.kernel.org, Ankur Arora , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Paolo Bonzini , Boris Ostrovsky , Thomas Gleixner List-Id: xen-devel@lists.xenproject.org T24gTW9uLCA4IEFwciAyMDE5LCBKb2FvIE1hcnRpbnMgd3JvdGU6Cj4gT24gNC84LzE5IDExOjQy IEFNLCBKdWVyZ2VuIEdyb3NzIHdyb3RlOgo+ID4gT24gMDgvMDQvMjAxOSAxMjozNiwgSm9hbyBN YXJ0aW5zIHdyb3RlOgo+ID4+IE9uIDQvOC8xOSA3OjQ0IEFNLCBKdWVyZ2VuIEdyb3NzIHdyb3Rl Ogo+ID4+PiBPbiAxMi8wMy8yMDE5IDE4OjE0LCBKb2FvIE1hcnRpbnMgd3JvdGU6Cj4gPj4+PiBP biAyLzIyLzE5IDQ6NTkgUE0sIFBhb2xvIEJvbnppbmkgd3JvdGU6Cj4gPj4+Pj4gT24gMjEvMDIv MTkgMTI6NDUsIEpvYW8gTWFydGlucyB3cm90ZToKPiA+Pj4+Pj4gT24gMi8yMC8xOSA5OjA5IFBN LCBQYW9sbyBCb256aW5pIHdyb3RlOgo+ID4+Pj4+Pj4gT24gMjAvMDIvMTkgMjE6MTUsIEpvYW8g TWFydGlucyB3cm90ZToKPiA+Pj4+Pj4+PiAgMi4gUFYgRHJpdmVyIHN1cHBvcnQgKHBhdGNoZXMg MTcgLSAzOSkKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ICBXZSBzdGFydCBieSByZWRpcmVjdGluZyBo eXBlcmNhbGxzIGZyb20gdGhlIGJhY2tlbmQgdG8gcm91dGluZXMKPiA+Pj4+Pj4+PiAgd2hpY2gg ZW11bGF0ZSB0aGUgYmVoYXZpb3VyIHRoYXQgUFYgYmFja2VuZHMgZXhwZWN0IGkuZS4gZ3JhbnQK PiA+Pj4+Pj4+PiAgdGFibGUgYW5kIGludGVyZG9tYWluIGV2ZW50cy4gTmV4dCwgd2UgYWRkIHN1 cHBvcnQgZm9yIGxhdGUKPiA+Pj4+Pj4+PiAgaW5pdGlhbGl6YXRpb24gb2YgeGVuYnVzLCBmb2xs b3dlZCBieSBpbXBsZW1lbnRpbmcKPiA+Pj4+Pj4+PiAgZnJvbnRlbmQvYmFja2VuZCBjb21tdW5p Y2F0aW9uIG1lY2hhbmlzbXMgKGkuZS4gZ3JhbnQgdGFibGVzIGFuZAo+ID4+Pj4+Pj4+ICBpbnRl cmRvbWFpbiBldmVudCBjaGFubmVscykuIEZpbmFsbHksIGludHJvZHVjZSB4ZW4tc2hpbS5rbywK PiA+Pj4+Pj4+PiAgd2hpY2ggd2lsbCBzZXR1cCBhIGxpbWl0ZWQgWGVuIGVudmlyb25tZW50LiBU aGlzIHVzZXMgdGhlIGFkZGVkCj4gPj4+Pj4+Pj4gIGZ1bmN0aW9uYWxpdHkgb2YgWGVuIHNwZWNp ZmljIHNoYXJlZCBtZW1vcnkgKGdyYW50IHRhYmxlcykgYW5kCj4gPj4+Pj4+Pj4gIG5vdGlmaWNh dGlvbnMgKGV2ZW50IGNoYW5uZWxzKS4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBJIGFtIGEgYml0IHdv cnJpZWQgYnkgdGhlIGxhc3QgcGF0Y2hlcywgdGhleSBzZWVtIHJlYWxseSBicml0dGxlIGFuZAo+ ID4+Pj4+Pj4gcHJvbmUgdG8gYnJlYWthZ2UuICBJIGRvbid0IGtub3cgWGVuIHdlbGwgZW5vdWdo IHRvIHVuZGVyc3RhbmQgaWYgdGhlCj4gPj4+Pj4+PiBsYWNrIG9mIHN1cHBvcnQgZm9yIEdOVE1B UF9ob3N0X21hcCBpcyBmaXhhYmxlLCBidXQgaWYgbm90LCB5b3UgaGF2ZSB0bwo+ID4+Pj4+Pj4g ZGVmaW5lIGEgY29tcGxldGVseSBkaWZmZXJlbnQgaHlwZXJjYWxsLgo+ID4+Pj4+Pj4KPiA+Pj4+ Pj4gSSBndWVzcyBBbmt1ciBhbHJlYWR5IGFuc3dlcmVkIHRoaXM7IHNvIGp1c3QgdG8gc3RhY2sg dGhpcyBvbiB0b3Agb2YgaGlzIGNvbW1lbnQuCj4gPj4+Pj4+Cj4gPj4+Pj4+IFRoZSB4ZW5fc2hp bV9kb21haW4oKSBpcyBvbmx5IG1lYW50IHRvIGhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgYmFj a2VuZAo+ID4+Pj4+PiBoYXMvY2FuLWhhdmUgZnVsbCBhY2Nlc3MgdG8gZ3Vlc3QgbWVtb3J5IFtp LmUuIG5ldGJhY2sgYW5kIGJsa2JhY2sgd291bGQgd29yawo+ID4+Pj4+PiB3aXRoIHNpbWlsYXIg YXNzdW1wdGlvbnMgYXMgdmhvc3Q/XS4gRm9yIHRoZSBub3JtYWwgY2FzZSwgd2hlcmUgYSBiYWNr ZW5kICppbiBhCj4gPj4+Pj4+IGd1ZXN0KiBtYXBzIGFuZCB1bm1hcHMgb3RoZXIgZ3Vlc3QgbWVt b3J5LCB0aGlzIGlzIG5vdCBhcHBsaWNhYmxlIGFuZCB0aGVzZQo+ID4+Pj4+PiBjaGFuZ2VzIGRv bid0IGFmZmVjdCB0aGF0IGNhc2UuCj4gPj4+Pj4+Cj4gPj4+Pj4+IElPVywgdGhlIFBWIGJhY2tl bmQgaGVyZSBzaXRzIG9uIHRoZSBoeXBlcnZpc29yLCBhbmQgdGhlIGh5cGVyY2FsbHMgYXJlbid0 Cj4gPj4+Pj4+IGFjdHVhbCBoeXBlcmNhbGxzIGJ1dCByYXRoZXIgaW52b2tpbmcgc2hpbV9oeXBl cmNhbGwoKS4gVGhlIGNhbGwgY2hhaW4gd291bGQgZ28KPiA+Pj4+Pj4gbW9yZSBvciBsZXNzIGxp a2U6Cj4gPj4+Pj4+Cj4gPj4+Pj4+IDxuZXRiYWNrfGJsa2JhY2t8c2NzaWJhY2s+Cj4gPj4+Pj4+ ICBnbnR0YWJfbWFwX3JlZnMobWFwX29wcywgcGFnZXMpCj4gPj4+Pj4+ICAgIEhZUEVSVklTT1Jf Z3JhbnRfdGFibGVfb3AoR05UVEFCT1BfbWFwX2dyYW50X3JlZiwuLi4pCj4gPj4+Pj4+ICAgICAg c2hpbV9oeXBlcmNhbGwoKQo+ID4+Pj4+PiAgICAgICAgc2hpbV9oY2FsbF9nbnRtYXAoKQo+ID4+ Pj4+Pgo+ID4+Pj4+PiBPdXIgcmVhc29uaW5nIHdhcyB0aGF0IGdpdmVuIHdlIGFyZSBhbHJlYWR5 IGluIEtWTSwgd2h5IG1hcHBpbmcgYSBwYWdlIGlmIHRoZQo+ID4+Pj4+PiB1c2VyIChpLmUuIHRo ZSBrZXJuZWwgUFYgYmFja2VuZCkgaXMgaGltc2VsZj8gVGhlIGxhY2sgb2YgR05UTUFQX2hvc3Rf bWFwIGlzIGhvdwo+ID4+Pj4+PiB0aGUgc2hpbSBkZXRlcm1pbmVzIGl0cyB1c2VyIGRvZXNuJ3Qg d2FudCB0byBtYXAgdGhlIHBhZ2UuIEFsc28sIHRoZXJlJ3MgYW5vdGhlcgo+ID4+Pj4+PiBpc3N1 ZSB3aGVyZSBQViBiYWNrZW5kcyBhbHdheXMgbmVlZCBhIHN0cnVjdCBwYWdlIHRvIHJlZmVyZW5j ZSB0aGUgZGV2aWNlCj4gPj4+Pj4+IGluZmxpZ2h0IGRhdGEgYXMgQW5rdXIgcG9pbnRlZCBvdXQu Cj4gPj4+Pj4KPiA+Pj4+PiBVbHRpbWF0ZWx5IGl0J3MgdXAgdG8gdGhlIFhlbiBwZW9wbGUuICBJ dCBkb2VzIG1ha2UgdGhlaXIgQVBJIHVnbGllciwKPiA+Pj4+PiBlc3BlY2lhbGx5IHRoZSBpbi9v dXQgY2hhbmdlIGZvciB0aGUgcGFyYW1ldGVyLiAgSWYgeW91IGNhbiBhdCBsZWFzdAo+ID4+Pj4+ IGF2b2lkIHRoYXQsIGl0IHdvdWxkIGFsbGV2aWF0ZSBteSBjb25jZXJucyBxdWl0ZSBhIGJpdC4K PiA+Pj4+Cj4gPj4+PiBJbiBteSB2aWV3LCB3ZSBoYXZlIHR3byBvcHRpb25zIG92ZXJhbGw6Cj4g Pj4+Pgo+ID4+Pj4gMSkgTWFrZSBpdCBleHBsaWNpdCwgdGhlIGNoYW5nZXMgdGhlIFBWIGRyaXZl cnMgd2UgaGF2ZSB0byBtYWtlIGluCj4gPj4+PiBvcmRlciB0byBzdXBwb3J0IHhlbl9zaGltX2Rv bWFpbigpLiBUaGlzIGNvdWxkIG1lYW4gZS5nLiBhKSBhZGQgYSBjYWxsYmFjawo+ID4+Pj4gYXJn dW1lbnQgdG8gZ250dGFiX21hcF9yZWZzKCkgdGhhdCBpcyBpbnZva2VkIGZvciBldmVyeSBwYWdl IHRoYXQgZ2V0cyBsb29rZWQgdXAKPiA+Pj4+IHN1Y2Nlc3NmdWxseSwgYW5kIGluc2lkZSB0aGlz IGNhbGxiYWNrIHRoZSBQViBkcml2ZXIgbWF5IHVwZGF0ZSBpdCdzIHRyYWNraW5nCj4gPj4+PiBw YWdlLiBIZXJlIHdlIG5vIGxvbmdlciBoYXZlIHRoaXMgaW4vb3V0IHBhcmFtZXRlciBpbiBnbnR0 YWJfbWFwX3JlZnMsIGFuZCBhbGwKPiA+Pj4+IHNoaW1fZG9tYWluIHNwZWNpZmljIGJpdHMgd291 bGQgYmUgYSBsaXR0bGUgbW9yZSBhYnN0cmFjdGVkIGZyb20gWGVuIFBWCj4gPj4+PiBiYWNrZW5k cy4gU2VlIG5ldGJhY2sgZXhhbXBsZSBiZWxvdyB0aGUgc2Npc3NvcnMgbWFyay4gT3IgYikgaGF2 ZSBzb3J0IG9mIGEKPiA+Pj4+IHRyYW5zbGF0ZV9ncmVmKCkgYW5kIHB1dF9ncmVmKCkgQVBJIHRo YXQgWGVuIFBWIGRyaXZlcnMgdXNlIHdoaWNoIG1ha2UgaXQgZXZlbgo+ID4+Pj4gbW9yZSBleHBs aWNpdCB0aGF0IHRoZXJlJ3Mgbm8gZ3JhbnQgb3BzIGludm9sdmVkLiBUaGUgbGF0dGVyIGlzIG1v cmUgaW52YXNpdmUuCj4gPj4+Pgo+ID4+Pj4gMikgVGhlIHNlY29uZCBvcHRpb24gaXMgdG8gc3Vw cG9ydCBndWVzdCBncmFudCBtYXBwaW5nL3VubWFwcGluZyBbKl0gdG8gYWxsb3cKPiA+Pj4+IGhv c3RpbmcgUFYgYmFja2VuZHMgaW5zaWRlIHRoZSBndWVzdC4gVGhpcyB3b3VsZCByZW1vdmUgdGhl IFhlbiBjaGFuZ2VzIGluIHRoaXMKPiA+Pj4+IHNlcmllcyBjb21wbGV0ZWx5LiBCdXQgaXQgd291 bGQgcmVxdWlyZSBhbm90aGVyIGd1ZXN0IGJlaW5nIHVzZWQKPiA+Pj4+IGFzIG5ldGJhY2svYmxr YmFjay94ZW5zdG9yZWQsIGFuZCBsZXNzIHBlcmZvcm1hbmNlIHRoYW4gMSkgKHRob3VnaCwgaW4g dGhlb3J5LAo+ID4+Pj4gaXQgd291bGQgYmUgZXF1aXZhbGVudCB0byB3aGF0IGRvZXMgWGVuIHdp dGggZ3JhbnRzL2V2ZW50cykuIFRoZSBvbmx5IGNoYW5nZXMgaW4KPiA+Pj4+IExpbnV4IFhlbiBj b2RlIGlzIGFkZGluZyB4ZW5zdG9yZWQgZG9tYWluIHN1cHBvcnQsIGJ1dCB0aGF0IGlzIHVzZWZ1 bCBvbiBpdHMgb3duCj4gPj4+PiBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGlzIHdvcmsuCj4gPj4+ Pgo+ID4+Pj4gSSB0aGluayB0aGVyZSdzIHZhbHVlIG9uIGJvdGg7IDEpIGlzIHByb2JhYmx5IG1v cmUgZmFtaWxpYXIgZm9yIEtWTSB1c2Vycwo+ID4+Pj4gcGVyaGFwcyAoYXMgaXQgaXMgc2ltaWxh ciB0byB3aGF0IHZob3N0IGRvZXM/KSB3aGlsZSAgMikgZXF1YXRlcyB0byBpbXBsZW1lbnRpbmcK PiA+Pj4+IFhlbiBkaXNhZ3JlZ2F0aW9uIGNhcGFiaWxpdGllcyBpbiBLVk0uCj4gPj4+Pgo+ID4+ Pj4gVGhvdWdodHM/IFhlbiBtYWludGFpbmVycyB3aGF0J3MgeW91ciB0YWtlIG9uIHRoaXM/Cj4g Pj4+Cj4gPj4+IFdoYXQgSSdkIGxpa2UgYmVzdCB3b3VsZCBiZSBhIG5ldyBoYW5kbGUgKGUuZy4g eGVuaG9zdF90ICopIHVzZWQgYXMgYW4KPiA+Pj4gYWJzdHJhY3Rpb24gbGF5ZXIgZm9yIHRoaXMg a2luZCBvZiBzdHVmZi4gSXQgc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUKPiA+Pj4gYmFja2VuZHMg YW5kIHRob3NlIHdvdWxkIHBhc3MgaXQgb24gdG8gbG93LWxldmVsIFhlbiBkcml2ZXJzICh4ZW5i dXMsCj4gPj4+IGV2ZW50IGNoYW5uZWxzLCBncmFudCB0YWJsZSwgLi4uKS4KPiA+Pj4KPiA+PiBT byBpZiBJSVJDIGJhY2tlbmRzIHdvdWxkIHVzZSB0aGUgeGVuaG9zdCBsYXllciB0byBhY2Nlc3Mg Z3JhbnRzIG9yIGZyYW1lcwo+ID4+IHJlZmVyZW5jZWQgYnkgZ3JhbnRzLCBhbmQgdGhhdCB3b3Vs ZCBncm9rIGludG8gc29tZSBvZiB0aGlzLiBJT1csIHlvdSB3b3VsZCBoYXZlCj4gPj4gdHdvIGlt cGxlbWVudG9ycyBvZiB4ZW5ob3N0OiBvbmUgZm9yIG5lc3RlZCByZW1vdGUvbG9jYWwgZXZlbnRz K2dyYW50cyBhbmQKPiA+PiBhbm90aGVyIGZvciB0aGlzICJzaGltIGRvbWFpbiIgPwo+ID4gCj4g PiBBcyBJJ2QgbmVlZCB0aGF0IGZvciBuZXN0ZWQgWGVuIEkgZ3Vlc3MgdGhhdCB3b3VsZCBtYWtl IGl0IDMgdmFyaWFudHMuCj4gPiBQcm9iYWJseSB0aGUgeGVuLXNoaW0gdmFyaWFudCB3b3VsZCBu ZWVkIG1vcmUgaG9va3MsIGJ1dCB0aGF0IHNob3VsZCBiZQo+ID4gbm8gcHJvYmxlbS4KPiA+IAo+ IEkgcHJvYmFibHkgbWVzc2VkIHVwIGluIHRoZSBzaG9ydCBkZXNjcmlwdGlvbiBidXQgIm5lc3Rl ZCByZW1vdGUvbG9jYWwKPiBldmVudHMrZ3JhbnRzIiB3YXMgcmVmZXJyaW5nIHRvIG5lc3RlZCBY ZW4gKEZXSVcgcmVtb3RlIG1lYW50IEwwIGFuZCBsb2NhbCBMMSkuCj4gU28gbWF5YmUgb25seSAy IHZhcmlhbnRzIGFyZSBuZWVkZWQ/Cj4gCj4gPj4+IEkgd2FzIHBsYW5uaW5nIHRvIGRvIHRoYXQg KHRoZSB4ZW5ob3N0X3QgKiBzdHVmZikgc29vbiBpbiBvcmRlciB0byBhZGQKPiA+Pj4gc3VwcG9y dCBmb3IgbmVzdGVkIFhlbiB1c2luZyBQViBkZXZpY2VzICh5b3UgbmVlZCB0d28gWGVuc3RvcmVz IGZvciB0aGF0Cj4gPj4+IGFzIHRoZSBuZXN0ZWQgZG9tMCBpcyBhY3RpbmcgYXMgWGVuIGJhY2tl bmQgc2VydmVyLCB3aGlsZSB1c2luZyBQVgo+ID4+PiBmcm9udGVuZHMgZm9yIGFjY2Vzc2luZyB0 aGUgInJlYWwiIHdvcmxkIG91dHNpZGUpLgo+ID4+Pgo+ID4+PiBUaGUgeGVuaG9zdF90IHNob3Vs ZCBiZSB1c2VkIGZvcjoKPiA+Pj4KPiA+Pj4gLSBhY2Nlc3NpbmcgWGVuc3RvcmUKPiA+Pj4gLSBp c3N1aW5nIGFuZCByZWNlaXZpbmcgZXZlbnRzCj4gPj4+IC0gZG9pbmcgaHlwZXJjYWxscwo+ID4+ PiAtIGdyYW50IHRhYmxlIG9wZXJhdGlvbnMKPiA+Pj4KPiA+Pgo+ID4+IEluIHRoZSB0ZXh0IGFi b3ZlLCBJIHNvcnQgb2Ygc3VnZ2VzdGVkIGEgc2xpY2Ugb2YgdGhpcyBvbiAxLmIpIHdpdGggYQo+ ID4+IHRyYW5zbGF0ZV9ncmVmKCkgYW5kIHB1dF9ncmVmKCkgQVBJIC0tIHRvIGdldCB0aGUgcGFn ZSBmcm9tIGEgZ3JlZi4gVGhpcyB3YXMKPiA+PiBiZWNhdXNlIG9mIHRoZSBmbGFnc3xob3N0X2Fk ZHIgaHVyZGxlIHdlIGRlcGljdGVkIGFib3ZlIHdydCB0byB1c2luZyB1c2luZyBncmFudAo+ID4+ IG1hcHMvdW5tYXBzLiBZb3UgdGhpbmsgc29tZSBvZiB0aGUgeGVuaG9zdCBsYXllciB3b3VsZCBi ZSBhbW1lbmFibGUgdG8gc3VwcG9ydAo+ID4+IHRoaXMgY2FzZT8KPiA+IAo+ID4gSSB0aGluayBz bywgeWVzLgo+ID4gCj4gPj4KPiA+Pj4gU28gZXhhY3RseSB0aGUga2luZCBvZiBzdHVmZiB5b3Ug d2FudCB0byBkbywgdG9vLgo+ID4+Pgo+ID4+IENvb2wgaWRlYSEKPiA+IAo+ID4gSW4gdGhlIGVu ZCB5b3UgbWlnaHQgbWFrZSBteSBsaWZlIGVhc2llciBmb3IgbmVzdGVkIFhlbi4gOi0pCj4gPiAK PiBIZWhlIDopCj4gCj4gPiBEbyB5b3Ugd2FudCB0byBoYXZlIGEgdHJ5IHdpdGggdGhhdCBpZGVh IG9yIHNob3VsZCBJIGRvIHRoYXQ/IEkgbWlnaHQgYmUKPiA+IGFibGUgdG8gc3RhcnQgd29ya2lu ZyBvbiB0aGF0IGluIGFib3V0IGEgbW9udGguCj4gPiAKPiBBbmt1ciAoQ0MnZWQpIHdpbGwgZ2l2 ZSBhIHNob3QgYXQgaXQsIGFuZCBzaG91bGQgc3RhcnQgYSBuZXcgdGhyZWFkIG9uIHRoaXMKPiB4 ZW5ob3N0IGFic3RyYWN0aW9uIGxheWVyLgoKSWYgeW91IGFyZSB1cCBmb3IgaXQsIGl0IHdvdWxk IGJlIGdyZWF0IHRvIHdyaXRlIHNvbWUgZG9jdW1lbnRhdGlvbiB0b28uCldlIGFyZSBzdGFydGlu ZyB0byBoYXZlIGRlY2VudCBkb2NzIGZvciBzb21lIFBWIHByb3RvY29scywgZGVzY3JpYmluZyBh CnNwZWNpZmljIFBWIGludGVyZmFjZSwgYnV0IHdlIGFyZSBsYWNraW5nIGRvY3MgYWJvdXQgdGhl IGJhc2ljIGJ1aWxkaW5nCmJsb2NrcyB0byBicmluZyB1cCBQViBkcml2ZXJzIGluIGdlbmVyYWwu IFRoZXkgd291bGQgYmUgZXh0cmVtZWx5CnVzZWZ1bC4gR2l2ZW4gdGhhdCB5b3UgaGF2ZSBqdXN0 IGRvbmUgdGhlIHdvcmssIHlvdSBhcmUgaW4gYSBncmVhdApwb3NpdGlvbiB0byB3cml0ZSB0aG9z ZSBkb2NzLiBFdmVuIGJhZCBFbmdsaXNoIHdvdWxkIGJlIGZpbmUsIEkgYW0gc3VyZQpzb21lYm9k eSBlbHNlIGNvdWxkIHZvbHVudGVlciB0byBjbGVhbi11cCB0aGUgbGFuZ3VhZ2UuIEFueXRoaW5n IHdvdWxkCmhlbHAgOi0pCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs