From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [RFC] Unicore Subproject Proposal Date: Thu, 7 Sep 2017 14:24:15 +0100 Message-ID: <452a24eb-0d35-b45f-6e45-0363d60e82ea@citrix.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Felipe Huici , "committers@xenproject.org" , "xen-devel@lists.xenproject.org" , "xen-api@lists.xenproject.org" , "mirageos-devel@lists.xenproject.org" , "minios-devel@lists.xenproject.org" Cc: "julian.chesterfield@onapp.com" , "rshaposhnik@pivotal.io" , Lars Kurth , Saverio Niccolini , "stefano@aporeto.com" , "alexander.dubinin@gmail.com" , "julien.grall@arm.com" , Simon Kuenzer , "volodymyr_babchuk@epam.com" List-Id: xen-devel@lists.xenproject.org T24gMDcvMDkvMTcgMTE6MjUsIEZlbGlwZSBIdWljaSB3cm90ZToKPiBCYWNrZ3JvdW5kCj4gLS0t LS0tLS0tLQo+IEluIHJlY2VudCB5ZWFycywgc2V2ZXJhbCBwYXBlcnMgYW5kIHByb2plY3RzIGRl ZGljYXRlZCB0byB1bmlrZXJuZWxzIGhhdmUKPiBzaG93biB0aGUgaW1tZW5zZSBwb3RlbnRpYWwg Zm9yIHBlcmZvcm1hbmNlIGdhaW5zIHRoYXQgdGhlc2UgaGF2ZS4gQnkKPiBsZXZlcmFnaW5nIHNw ZWNpYWxpemF0aW9uIGFuZCB0aGUgdXNlIG9mIG1pbmltYWxpc3RpYyBPU2VzLCB1bmlrZXJuZWxz IGFyZQo+IGFibGUgdG8geWllbGQgaW1wcmVzc2l2ZSBudW1iZXJzLCBpbmNsdWRpbmcgZmFzdCBp bnN0YW50aWF0aW9uIHRpbWVzICh0ZW5zCj4gb2YgbWlsbGlzZWNvbmRzIG9yIGxlc3MpLCB0aW55 IG1lbW9yeSBmb290cHJpbnRzIChhIGZldyBNQnMgb3IgZXZlbiBLQnMpLAo+IGhpZ2ggbmV0d29y ayB0aHJvdWdocHV0ICgxMC00MCBHYi9zKSwgYW5kIGhpZ2ggY29uc29saWRhdGlvbiAoZS5nLiwg YmVpbmcKPiBhYmxlIHRvIHJ1biB0aG91c2FuZHMgb2YgaW5zdGFuY2VzIG9uIGEgc2luZ2xlIGNv bW1vZGl0eSBzZXJ2ZXIpLCBub3QgdG8KPiBtZW50aW9uIGEgcmVkdWNlZCBhdHRhY2sgc3VyZmFj ZSBhbmQgdGhlIHBvdGVudGlhbCBmb3IgZWFzaWVyCj4gY2VydGlmaWNhdGlvbi4gVW5pa2VybmVs IHByb2plY3RzIHdvcnRoeSBvZiBtZW50aW9uIGluY2x1ZGUgTWlyYWdlT1MsCj4gQ2xpY2tPUywg RXJsYW5nIG9uIFhlbiwgT1N2LCBIQUxWTSwgYW5kIE1pbmljYWNoZSwgYW1vbmcgb3RoZXJzLgo+ Cj4gVGhlIGZ1bmRhbWVudGFsIGRyYXdiYWNrIG9mIHVuaWtlcm5lbHMgaXMgdGhhdCB0aGV5IHJl cXVpcmUgdGhhdAo+IGFwcGxpY2F0aW9ucyBiZSBtYW51YWxseSBwb3J0ZWQgdG8gdGhlIHVuZGVy bHlpbmcgbWluaW1hbGlzdGljIE9TIChlLmcuCj4gaGF2aW5nIHRvIHBvcnQgbmdpbngsIHNub3J0 LCBteXNxbCBvciBtZW1jYWNoZWQgdG8gTWluaU9TIG9yIE9Tdik7IHRoaXMKPiByZXF1aXJlcyBi b3RoIGV4cGVydCB3b3JrIGFuZCBvZnRlbiBjb25zaWRlcmFibGUgYW1vdW50IG9mIHRpbWUuIElu Cj4gZXNzZW5jZSwgd2UgbmVlZCB0byBwaWNrIGJldHdlZW4gZWl0aGVyIGhpZ2ggcGVyZm9ybWFu Y2Ugd2l0aCB1bmlrZXJuZWxzLAo+IG9yIG5vIHBvcnRpbmcgZWZmb3J0IGJ1dCBkZWNyZWFzZWQg cGVyZm9ybWFuY2UgYW5kIGRlY3JlYXNlZCBlZmZpY2llbmN5Cj4gd2l0aCBzdGFuZGFyZCBPUy9W TSBpbWFnZXMuIFRoZSBnb2FsIG9mIHRoaXMgcHJvcG9zYWwgaXMgdG8gY2hhbmdlIHRoaXMKPiBz dGF0dXMgcXVvIGJ5IHByb3ZpZGluZyBhIGhpZ2hseSBjb25maWd1cmFibGUgdW5pa2VybmVsIGNv ZGUgYmFzZTsgd2UgY2FsbAo+IHRoaXMgYmFzZSBVbmljb3JlLgo+Cj4gVGhpcyBwcm9qZWN0IGFs c28gYWltcyB0byBjb25jZW50cmF0ZSB0aGUgdmFyaW91cyBlZmZvcnRzIGN1cnJlbnRseSBnb2lu Zwo+IG9uIGluIHRoZSBYZW4gY29tbXVuaXR5IHJlZ2FyZGluZyBtaW5pbWFsaXN0aWMgT1NlcyAo ZXNzZW50aWFsbHkgZGlmZmVyZW50Cj4gdmFyaWFudHMgb2YgTWluaU9TKS4gV2UgdGhpbmsgdGhh dCBzcGxpdHRpbmcgdGhlIGNvbW11bml0eSBhY3Jvc3MgdGhlc2UKPiB2YXJpYW50cyBpcyBjb3Vu dGVyLXByb2R1Y3RpdmUgYW5kIGhvcGUgdGhhdCBVbmljb3JlIHdpbGwgcHJvdmlkZSBhIGNvbW1v bgo+IHBsYWNlIGZvciBhbGwgb3IgbW9zdCBpbXByb3ZlbWVudHMgYW5kIGN1c3RvbWl6YXRpb25z IG9mIG1pbmltYWxpc3RpYwo+IE9TZXMuIFRoZSBsb25nIHRlcm0gZ29hbCBpcyB0byByZXBsYWNl IHNvbWV0aGluZyBsaWtlIE1pbmlPUyB3aXRoIGEgdG9vbAo+IHRoYXQgY2FuIGF1dG9tYXRpY2Fs bHkgYnVpbGQgc3VjaCBhIG1pbmltYWxpc3RpYyBPUy4KCkkgdGhvcm91Z2hseSBhcHByb3ZlIG9m IGEgcHJvamVjdCBhbG9uZyB0aGVzZSBsaW5lcy4gIE1pY3Jva2VybmVscyBoYXZlCmh1Z2UgcG90 ZW50aWFsIHRvIG9mZmVyLCBidXQgdGhleSBhcmUgc3VmZmljaWVudGx5IGNvbXBsaWNhdGVkIHRv IHdvcmsKd2l0aCB0aGF0IHZlcnkgZmV3IHBlb3BsZSBjYW4uCgo+Cj4gVW5pY29yZSAtIFRoZSAi VW5pa2VybmVsIENvcmUiCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVGhl IGhpZ2ggbGV2ZWwgZ29hbCBvZiBVbmljb3JlIGlzIHRvIGJlIGFibGUgdG8gYnVpbGQgdW5pa2Vy bmVscyB0YXJnZXRlZAo+IGF0IHNwZWNpZmljIGFwcGxpY2F0aW9ucyB3aXRob3V0IHJlcXVpcmlu ZyB0aGUgdGltZS1jb25zdW1pbmcsIGV4cGVydCB3b3JrCj4gdGhhdCBidWlsZGluZyBzdWNoIGEg dW5pa2VybmVsIHJlcXVpcmVzIHRvZGF5LiBBbiBhZGRpdGlvbmFsIGdvYWwgKG9yCj4gaG9wZSkg b2YgVW5pY29yZSBpcyB0aGF0IGFsbCBkZXZlbG9wZXJzIGludGVyZXN0ZWQgaW4gdW5pa2VybmVs Cj4gZGV2ZWxvcG1lbnQgd291bGQgY29udHJpYnV0ZSBieSBzdXBwbHlpbmcgbGlicmFyaWVzIHJh dGhlciB0aGFuIHdvcmtpbmcgb24KPiBpbmRlcGVuZGVudCBwcm9qZWN0cyB3aXRoIGRpZmZlcmVu dCBjb2RlIGJhc2VzIGFzIGl0IGlzIGRvbmUgbm93LiBUaGUgbWFpbgo+IGlkZWEgYmVoaW5kIFVu aWNvcmUgaXMgZGVwaWN0ZWQgaW4gRmlndXJlIDEgYW5kIGNvbnNpc3RzIG9mIHR3byBiYXNpYwo+ IGNvbXBvbmVudHM6CgpIYXZlIHlvdSBlbmNvdW50ZXJlZCB0aGUgbmV0YnNkIHJ1bXBrZXJuZWwg cHJvamVjdD8gIEkgZG9uJ3QgaXQKcmVmZXJlbmNlZCBpbiB5b3VyIHRleHQgKGFwb2xvZ2llcyBp ZiBJJ3ZlIG1pc3NlZCBpdCkuCgpodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0 ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy94ZHBzMTUtdGFsay1maW5hbF8wLnBkZgppcyBhIHByZXNl bnRhdGlvbiBvbiBmcm9tIGEgcHJldmlvdXMgWGVuIERldmVsb3BlciBTdW1taXQsIGFuZAoKT25l IHBhcnRpY3VsYXIgbmVlZCBidWlsZCBzb2x1dGlvbiB0aGVyZSB3YXMgdG8gbm90IGFsdGVyIHRo ZSBidWlsZApzeXN0ZW0gb2YgdGhlIGluZGl2aWR1YWwgYXBwcywgYW5kIHBhc3MgaW4gdGhlIHJl c3Qgb2YgdGhlIG1pY3Jva2VybmVsCmFzIGEgY3Jvc3MtY29tcGlsZSBlbnZpcm9ubWVudC4gIEl0 J3Mgbm90IGVudGlyZWx5IGNsZWFyIGhvdyB5b3UgcGxhbiB0bwpkbyB0aGlzIHBhcnQgb2YgdGhl IGJ1aWxkaW5nLCBidXQgYW55dGhpbmcgd2hpY2ggaW52b2x2ZXMgbW9kaWZ5aW5nIHRoZQplbmQg YXBwbGljYXRpb25zIGlzIGdvaW5nIHRvIGNhdXNlIGEgbm9uLXRyaXZpYWwgbWFpbnRlbmFuY2Ug YnVyZGVuLgoKPiAgCj4KPiBbQXR0YWNobWVudDogdW5pY29yZS1vbmVzbGlkZXIucGRmXQo+Cj4K PiBGaWd1cmUgMS4gVW5pY29yZSBhcmNoaXRlY3R1cmUuCj4KPiAgCj4gTGlicmFyeSBwb29scyB3 b3VsZCBjb250YWluIGxpYnJhcmllcyB0aGF0IHRoZSB1c2VyIG9mIFVuaWNvcmUgY2FuIHNlbGVj dAo+IGZyb20gdG8gY3JlYXRlIHRoZSB1bmlrZXJuZWwuIEZyb20gdGhlIGJvdHRvbSB1cCwgbGli cmFyeSBwb29scyBhcmUKPiBvcmdhbml6ZWQgaW50byAoMSkgdGhlIGFyY2hpdGVjdHVyZSBsaWJy YXJ5IHRvb2wsIGNvbnRhaW5pbmcgbGlicmFyaWVzCj4gc3BlY2lmaWMgdG8gYSBjb21wdXRlciBh cmNoaXRlY3R1cmUgKGUuZy4sIHg4Nl82NCwgQVJNMzIgb3IgTUlQUyk7ICgyKSB0aGUKPiBwbGF0 Zm9ybSB0b29sLCB3aGVyZSB0YXJnZXQgcGxhdGZvcm1zIGNhbiBiZSBYZW4sIEtWTSwgYmFyZSBt ZXRhbCAoaS5lLiBubwo+IHZpcnR1YWxpemF0aW9uKSBhbmQgdXNlci1zcGFjZSBMaW51eDsKCk9u IHRoZSB4ODYgWGVuIHNpZGUgb2YgdGhpbmdzLCB5b3Ugc2hvdWxkIHRyZWF0IFBWIGFuZCBIVk0g Z3Vlc3RzIGFzCmRpZmZlcmVudCBwbGF0Zm9ybXMsIGFuZCB0aGVpciB0cmFkZW9mZnMgYXJlIHF1 aXRlIGRpZmZlcmVudC4KClRoZSBvbmUgc2VtaS1zdXBwb3J0ZWQgbWljcm9rZXJuZWwgaW4gdGhl IFhlbiB3b3JsZCBpcyBzdHViLXFlbXUsIGFuZCBpbgpwcmluY2lwbGUgdGhpcyBkb2VzIGdpdmUg YmV0dGVyIGlzb2xhdGlvbiB0aGFuIHFlbXUgcnVubmluZyBpbiBkb20wLCBidXQKaXQgYWxzbyBl eHBvc2VzIG90aGVyIGF0dGFjayBzdXJmYWNlcy4gIElmIHlvdSBhc3N1bWUgYW4gSFZNIGd1ZXN0 IGhhcwpjb21wcm9taXNlZCBpdHMgc3R1Yi1xZW11LCBpdCBtZWFucyB0aGF0IHNlY3VyaXR5IGlz c3VlcyBleHBvc2VkIG9ubHkgdG8KUFYgZ3Vlc3RzIGFyZSB3aXRoaW4gdGhlIHJlYWNoIG9mIGFu IEhWTSBndWVzdC4gIEluIHRoaXMgY2lyY3Vtc3RhbmNlLApoYXZpbmcgYW4gSFZNIHN0dWIgcWVt dSB3b3VsZCBnaXZlIHRoZSBzeXN0ZW0gYSByZWR1Y2VkIGF0dGFjayBzdXJmYWNlCmNvbXBhcmVk IHRvIGEgUFYgc3R1YiBxZW11LgoKPiAgYW5kICgzKSB0aGUgbWFpbiBsaWJyYXJ5IHBvb2wsCj4g Y29udGFpbmluZyBhIHJpY2ggc2V0IG9mIGZ1bmN0aW9uYWxpdHkgdG8gYnVpbGQgdGhlIHVuaWtl cm5lbCBmcm9tLiBUaGlzCj4gbGFzdCBsaWJyYXJ5IGluY2x1ZGVzIGRyaXZlcnMgKGJvdGggdmly dHVhbCBzdWNoIGFzIG5ldGJhY2svbmV0ZnJvbnQgYW5kCj4gcGh5c2ljYWwgc3VjaCBhcyBpeGdi ZSksIGZpbGVzeXN0ZW1zLCBtZW1vcnkgYWxsb2NhdG9ycywgc2NoZWR1bGVycywKPiBuZXR3b3Jr IHN0YWNrcywgc3RhbmRhcmQgbGlicyAoZS5nLiBsaWJjLCBvcGVuc3NsLCBldGMuKSwgcnVudGlt ZXMgKGUuZy4gYQo+IFB5dGhvbiBpbnRlcnByZXRlciBhbmQgZGVidWdnaW5nIGFuZCBwcm9maWxp bmcgdG9vbHMuIFRoZXNlIHBvb2xzIG9mCj4gbGlicmFyaWVzIGNvbnN0aXR1dGUgYSBjb2RlIGJh c2UgZm9yIGNyZWF0aW5nIHVuaWtlcm5lbHMuIEFzIHNob3duLCBhCj4gbGlicmFyeSBjYW4gYmUg cmVsYXRpdmVseSBsYXJnZSAoZS5nIGxpYmMpIG9yIHF1aXRlIHNtYWxsIChhIHNjaGVkdWxlciks Cj4gd2hpY2ggc2hvdWxkIGFsbG93IGZvciBhIGZhaXIgYW1vdW50IG9mIGN1c3RvbWl6YXRpb24g Zm9yIHRoZSB1bmlrZXJuZWwuCj4gIAo+Cj4gVGhlIFVuaWNvcmUgYnVpbGQgdG9vbCBpcyBpbiBj aGFyZ2Ugb2YgY29tcGlsaW5nIHRoZSBhcHBsaWNhdGlvbiBhbmQgdGhlCj4gc2VsZWN0ZWQgbGli cmFyaWVzIHRvZ2V0aGVyIHRvIGNyZWF0ZSBhIGJpbmFyeSBmb3IgYSBzcGVjaWZpYyBwbGF0Zm9y bSBhbmQKPiBhcmNoaXRlY3R1cmUgKGUuZy4sIFhlbiBvbiB4ODZfNjQpLiBUaGUgdG9vbCBpcyBj dXJyZW50bHkgaW5zcGlyZWQgYnkKPiBMaW51eOKAmXMga2NvbmZpZyBzeXN0ZW0gYW5kIGNvbnNp c3RzIG9mIGEgc2V0IG9mIE1ha2VmaWxlcy4gSXQgYWxsb3dzIHVzZXJzCj4gdG8gc2VsZWN0IGxp YnJhcmllcywgdG8gY29uZmlndXJlIHRoZW0sIGFuZCB0byB3YXJuIHRoZW0gd2hlbiBsaWJyYXJ5 Cj4gZGVwZW5kZW5jaWVzIGFyZSBub3QgbWV0LiBJbiBhZGRpdGlvbiwgdGhlIHRvb2wgY2FuIGFs c28gc2ltdWx0YW5lb3VzbHkKPiBnZW5lcmF0ZSBiaW5hcmllcyBmb3IgbXVsdGlwbGUgcGxhdGZv cm1zLgo+Cj4gIAo+IEFzIGFuIGV4YW1wbGUsIGltYWdpbmUgYSB1c2VyIHdhbnRpbmcgdG8gZ2Vu ZXJhdGUgYSBuZXR3b3JrIGRyaXZlciBkb21haW4KPiB1bmlrZXJuZWwuIEluIHRoaXMgY2FzZSwg d2Ugd291bGQgYXNzdW1lIHRoZSDigJxhcHBsaWNhdGlvbuKAnSB0byBiZSB0aGUKPiBuZXRiYWNr IGRyaXZlci4gVG8gc2VsZWN0IHRoaXMgYXBwbGljYXRpb24sIHRoZSB1c2VyIHdvdWxkIGZpcnN0 IHJ1biDigJxtYWtlCj4gbWVudWNvbmZpZ+KAnSBmcm9tIHdpdGhpbiB0aGUgbmV0YmFjayBhcHBs aWNhdGlvbiBmb2xkZXIuIFRoZSBNYWtlZmlsZSB0aGVyZQo+IHdvdWxkIHNldCBhIHZhcmlhYmxl IHRvIGluZGljYXRlIHdoYXQgdGhlIGFwcGxpY2F0aW9uIGlzLCBhbmQgd291bGQKPiBpbmNsdWRl IHRoZSBtYWluIFVuaWNvcmUgTWFrZWZpbGVzIHNvIHRoYXQgdGhlIHVuaWtlcm5lbCBjYW4gYmUg YnVpbHQKPiAoU3RlcCAxIGluIHRoZSBmaWd1cmUpLiBVc2luZyB0aGUgbWVudS1iYXNlZCBzeXN0 ZW0sIHRoZSB1c2VyIGNob29zZXMgdGhlCj4gcmVsZXZhbnQgbGlicmFyaWVzOyBmb3IgYSBYZW4g ZHJpdmVyIGRvbWFpbiB0aGlzIHdvdWxkIGluY2x1ZGUgYSBwaHlzaWNhbAo+IG5ldHdvcmsgZHJp dmVyLCB0aGUgbmV0YmFjayBkcml2ZXIsIHRoZSBsaWJ4ZW5wbGF0IGxpYnJhcnkgYW5kIGEgbGli cmFyeQo+IGZyb20gdGhlIGFyY2hpdGVjdHVyZSBsaWJyYXJ5IHBvb2wgc3VjaCBhcyBsaWJ4ODZf NjRhcmNoIChTdGVwIDIgaW4gdGhlCj4gZmlndXJlKS4gV2l0aCB0aGlzIGluIHBsYWNlLCB0aGUg dXNlciBzYXZlcyB0aGUgY29uZmlndXJhdGlvbiBhbmQgdHlwZXMKPiDigJxtYWtl4oCdIHRvIGJ1 aWxkIHRoZSB1bmlrZXJuZWwgKFN0ZXAgMykgYW5kIHhsIGNyZWF0ZSB0byBydW4gaXQgKFN0ZXAg NCkuCj4KPiAgCj4gQSBub3RlIG9uIHRoZSBBQkkvQVBJOiBiZWNhdXNlIFVuaWNvcmUgYWxsb3dz IGZvciBjdXN0b21pemF0aW9uIG9mIHRoZQo+IHVuaWtlcm5lbHMsIHRoZSBBQkkgKG9yIEFQSSBz aW5jZSB0aGVyZSBpcyBubyBrZXJuZWwpIHdvdWxkIGJlIGN1c3RvbSwKPiB0aGF0IGlzLCBkZWZp bmVkIGJ5IHRoZSBsaWJyYXJpZXMgdGhlIHVzZXIgc2VsZWN0ZWQuIEhhdmluZyBzYWlkIHRoYXQs IGl0Cj4gd291bGQgYmUgcGVyZmVjdGx5IHBvc3NpYmxlLCBmb3IgaW5zdGFuY2UsIHRvIGJ1aWxk IFBPU0lYLWNvbXBsaWFudAo+IHVuaWtlcm5lbHMgd2l0aCBpdC4KPgo+Cj4gUmVsZXZhbmNlIHRv IFhlbiBhbmQgaXRzIENvbW11bml0eQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gVW5pa2VybmVscyBhcmUgaW1wb3J0YW50IHRvIGEgbnVtYmVyIG9mIGFyZWFzIHJlbGV2 YW50IHRvIHRoZSBYZW4KPiBjb21tdW5pdHksIGluY2x1ZGluZyBJb1QsIGF1dG9tb3RpdmUsIHN0 dWIgZG9tYWlucyBhbmQgZHJpdmVyIGRvbWFpbgo+IGRpc2FnZ3JlZ2F0aW9uLiBVbmljb3JlIGNv dWxkIGhlbHAgYm9vc3QgdGhlIHByb2dyZXNzIGluIGFsbCBvZiB0aGVzZQo+IGFyZWFzIGJ5IHF1 aWNrbHkgcHJvdmlkaW5nIHRoZSBuZWNlc3NhcnkgdG9vbHMgdG8gY3JlYXRlICB1bmlrZXJuZWxz IGZvcgo+IHRoZW0uIEZvciBpbnN0YW5jZSwgZm9yIGEgZHJpdmVyIGRvbWFpbiwgdGhlIHVzZXIg d291bGQgaW5jbHVkZSB0aGUKPiDigJxsaWJyYXJ54oCdIGNvbnRhaW5pbmcgdGhlIHJlbGV2YW50 IGhhcmR3YXJlIGRyaXZlciBhbmQgY29ycmVzcG9uZGluZwo+IGJhY2stZW5kIGRyaXZlciwgYW5k IGluIHByaW5jaXBsZSBVbmljb3JlIHdvdWxkIHRha2UgY2FyZSBvZiB0aGUgcmVzdC4KPgo+IElu IGFkZGl0aW9uLCBVbmljb3JlIGNvdWxkIGV2ZW50dWFsbHkgcmVwbGFjZSBNaW5pLU9TLCBwcm92 aWRpbmcgYQo+IGNsZWFuZXIsIG1vcmUgc3RhYmxlIGFuZCBmbGV4aWJsZSBiYXNlIGZyb20gd2hp Y2ggdG8gYnVpbGQgdW5pa2VybmVscyBmb3IKPiBwcm9qZWN0cyAodGhlIG1vZHVsYXJpemF0aW9u IG9mIE1pbmktT1MgaXMgaW4gZmFjdCBhbHJlYWR5IHRha2luZyBwbGFjZSkuCj4KPgo+IEN1cnJl bnQgU3RhdHVzCj4gLS0tLS0tLS0tLS0tLS0KPiBVbmljb3JlIGlzIGF0IGFuIGVhcmx5IHN0YWdl LiBGb3Igbm93IGl0IGluY2x1ZGVzIHNvbWUgYmFzZSBsaWJyYXJpZXMgd2l0aAo+IGNvZGUgZXh0 cmFjdGVkIGZyb20gTWluaS1PUyBhcyB3ZWxsIGFzIGEgYnVpbGQgdG9vbCBpbnNwaXJlZCBieQo+ IExpbnV4J3MgS0NvbmZpZyBzeXN0ZW0uIFVuaWNvcmUgaXMgY3VycmVudGx5IGFibGUgdG8gYnVp bGQgImhlbGxvIHdvcmxkIgo+IHVuaWtlcm5lbHMgZm9yIFhlbiBhbmQgTGludXggdXNlciBzcGFj ZSBvbiB4ODZfNjQgYW5kIEFSTXY3LgoKSXMgdGhlIGNvZGUgYW55d2hlcmUgdG8gYmUgcGxheWVk IHdpdGg/Cgp+QW5kcmV3CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK