From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v2 2/5] vm_event: Implement ARM SMC events Date: Wed, 4 May 2016 14:26:10 +0100 Message-ID: <5729F872.8000809@arm.com> References: <1461953253-32043-1-git-send-email-tamas@tklengyel.com> <1461953253-32043-2-git-send-email-tamas@tklengyel.com> <57288C27.6060600@arm.com> <5729CF9F.7080907@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1axwoj-0003hY-FU for xen-devel@lists.xenproject.org; Wed, 04 May 2016 13:26:17 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Tamas K Lengyel Cc: Stefano Stabellini , Keir Fraser , Razvan Cojocaru , Stefano Stabellini , Andrew Cooper , Ian Jackson , Jan Beulich , Xen-devel , wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org SGkgVGFtYXMsCgpJIGhhdmUganVzdCBub3RpY2VkIHRoYXQgeW91IHVzZSBhbiBvbGQgZW1haWwg YWRkcmVzcyBmb3IgU3RlZmFuby4gClBsZWFzZSBjaGVjayBNQUlOVEFJTkVSUyBmaWxlIGZvciBh bnkgdXBkYXRlIG9uIGVtYWlsIGFkZHJlc3MsIG5ldyAKbWFpbnRhaW5lcnMuCgpPbiAwNC8wNS8y MDE2IDEzOjQyLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4KPiAgPiBPbiAwMy8wNS8yMDE2IDE5 OjQ4LCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4gID4+Cj4gID4+Cj4gID4+Cj4gID4+IE9uIFR1 ZSwgTWF5IDMsIDIwMTYgYXQgNTozMSBBTSwgSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJt LmNvbQo+IDxtYWlsdG86anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gID4+IDxtYWlsdG86anVsaWVu LmdyYWxsQGFybS5jb20gPG1haWx0bzpqdWxpZW4uZ3JhbGxAYXJtLmNvbT4+PiB3cm90ZToKPiAg Pj4gICAgIE9uIDI5LzA0LzE2IDE5OjA3LCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4gID4+Cj4g ID4+ICAgICAgICAgVGhlIEFSTSBTTUMgaW5zdHJ1Y3Rpb25zIGFyZSBhbHJlYWR5IGNvbmZpZ3Vy ZWQgdG8gdHJhcCB0byBYZW4KPiAgPj4gICAgICAgICBieSBkZWZhdWx0LiBJbgo+ICA+PiAgICAg ICAgIHRoaXMgcGF0Y2ggd2UgYWxsb3cgYSB1c2VyLXNwYWNlIHByb2Nlc3MgaW4gYSBwcml2aWxl Z2VkIGRvbWFpbgo+ICA+PiAgICAgICAgIHRvIHJlY2VpdmUKPiAgPj4gICAgICAgICBub3RpZmlj YXRpb24gb2Ygd2hlbiBzdWNoIGV2ZW50IGhhcHBlbnMgdGhyb3VnaCB0aGUgdm1fZXZlbnQKPiAg Pj4gICAgICAgICBzdWJzeXN0ZW0gYnkKPiAgPj4gICAgICAgICBpbnRyb2R1Y2luZyB0aGUgUFJJ VklMRUdFRF9DQUxMIHR5cGUuCj4gID4+Cj4gID4+ICAgICAgICAgU2lnbmVkLW9mZi1ieTogVGFt YXMgSyBMZW5neWVsIDx0YW1hc0B0a2xlbmd5ZWwuY29tCj4gPG1haWx0bzp0YW1hc0B0a2xlbmd5 ZWwuY29tPgo+ICA+PiAgICAgICAgIDxtYWlsdG86dGFtYXNAdGtsZW5neWVsLmNvbSA8bWFpbHRv OnRhbWFzQHRrbGVuZ3llbC5jb20+Pj4KPiAgPj4KPiAgPj4gICAgICAgICAtLS0KPiAgPj4gICAg ICAgICBDYzogUmF6dmFuIENvam9jYXJ1IDxyY29qb2NhcnVAYml0ZGVmZW5kZXIuY29tCj4gPG1h aWx0bzpyY29qb2NhcnVAYml0ZGVmZW5kZXIuY29tPgo+ICA+PiAgICAgICAgIDxtYWlsdG86cmNv am9jYXJ1QGJpdGRlZmVuZGVyLmNvbQo+IDxtYWlsdG86cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNv bT4+Pgo+ICA+PiAgICAgICAgIENjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4 LmNvbQo+IDxtYWlsdG86aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KPiAgPj4gICAgICAgICA8 bWFpbHRvOmlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20KPiA8bWFpbHRvOmlhbi5qYWNrc29uQGV1 LmNpdHJpeC5jb20+Pj4KPiAgPj4gICAgICAgICBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVm YW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4LmNvbQo+IDxtYWlsdG86c3RlZmFuby5zdGFiZWxsaW5p QGV1LmNpdHJpeC5jb20+Cj4gID4+ICAgICAgICAgPG1haWx0bzpzdGVmYW5vLnN0YWJlbGxpbmlA ZXUuY2l0cml4LmNvbQo+IDxtYWlsdG86c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5jb20+ Pj4KPiAgPj4gICAgICAgICBDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbQo+IDxtYWls dG86d2VpLmxpdTJAY2l0cml4LmNvbT4gPG1haWx0bzp3ZWkubGl1MkBjaXRyaXguY29tCj4gPG1h aWx0bzp3ZWkubGl1MkBjaXRyaXguY29tPj4+Cj4gID4+ICAgICAgICAgQ2M6IEp1bGllbiBHcmFs bCA8anVsaWVuLmdyYWxsQGFybS5jb20KPiA8bWFpbHRvOmp1bGllbi5ncmFsbEBhcm0uY29tPgo+ ICA+PiAgICAgICAgIDxtYWlsdG86anVsaWVuLmdyYWxsQGFybS5jb20gPG1haWx0bzpqdWxpZW4u Z3JhbGxAYXJtLmNvbT4+Pgo+ICA+PiAgICAgICAgIENjOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4u b3JnIDxtYWlsdG86a2VpckB4ZW4ub3JnPgo+IDxtYWlsdG86a2VpckB4ZW4ub3JnIDxtYWlsdG86 a2VpckB4ZW4ub3JnPj4+Cj4gID4+ICAgICAgICAgQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbQo+IDxtYWlsdG86amJldWxpY2hAc3VzZS5jb20+IDxtYWlsdG86amJldWxpY2hAc3Vz ZS5jb20KPiA8bWFpbHRvOmpiZXVsaWNoQHN1c2UuY29tPj4+Cj4gID4+ICAgICAgICAgQ2M6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20KPiA8bWFpbHRvOmFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+Cj4gID4+ICAgICAgICAgPG1haWx0bzphbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tCj4gPG1haWx0bzphbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPj4+Cj4gID4+Cj4g ID4+Cj4gID4+ICAgICAgICAgdjI6IGludHJvZHVjZSBWTV9FVkVOVF9SRUFTT05fUFJJVkVMRUdF RF9DQUxMCj4gID4+ICAgICAgICAgICAgICAgYWFyY2g2NCBzdXBwb3J0Cj4gID4+ICAgICAgICAg LS0tCj4gID4+ICAgICAgICAgICAgTUFJTlRBSU5FUlMgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDYgKy0KPiAgPj4gICAgICAgICAgICB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAg ICAgICB8ICAgMiArCj4gID4+ICAgICAgICAgICAgdG9vbHMvbGlieGMveGNfbW9uaXRvci5jICAg ICAgICAgICAgfCAgMjYgKysrKysrKy0KPiAgPj4gICAgICAgICAgICB0b29scy90ZXN0cy94ZW4t YWNjZXNzL3hlbi1hY2Nlc3MuYyB8ICAzMSArKysrKysrKy0KPiAgPj4gICAgICAgICAgICB4ZW4v YXJjaC9hcm0vTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAgMiArCj4gID4+ICAgICAgICAgICAg eGVuL2FyY2gvYXJtL21vbml0b3IuYyAgICAgICAgICAgICAgfCAgODAKPiArKysrKysrKysrKysr KysrKysrKysrKwo+ICA+PiAgICAgICAgICAgIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAg ICAgICAgIHwgIDIwICsrKysrLQo+ICA+PiAgICAgICAgICAgIHhlbi9hcmNoL2FybS92bV9ldmVu dC5jICAgICAgICAgICAgIHwgMTI3Cj4gID4+ICAgICAgICAgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCj4gID4+ICAgICAgICAgICAgeGVuL2FyY2gveDg2L2h2bS9ldmVudC5j ICAgICAgICAgICAgfCAgIDIgKwo+ICA+PiAgICAgICAgICAgIHhlbi9jb21tb24vdm1fZXZlbnQu YyAgICAgICAgICAgICAgIHwgICAxIC0KPiAgPj4gICAgICAgICAgICB4ZW4vaW5jbHVkZS9hc20t YXJtL2RvbWFpbi5oICAgICAgICB8ICAgNSArKwo+ICA+PiAgICAgICAgICAgIHhlbi9pbmNsdWRl L2FzbS1hcm0vbW9uaXRvci5oICAgICAgIHwgIDIwICsrLS0tLQo+ICA+PiAgICAgICAgICAgIHhl bi9pbmNsdWRlL2FzbS1hcm0vdm1fZXZlbnQuaCAgICAgIHwgIDE2ICsrLS0tCj4gID4+ICAgICAg ICAgICAgeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oICAgICAgICAgfCAgIDEgKwo+ICA+PiAg ICAgICAgICAgIHhlbi9pbmNsdWRlL3B1YmxpYy92bV9ldmVudC5oICAgICAgIHwgIDI3ICsrKysr KysrCj4gID4+ICAgICAgICAgICAgMTUgZmlsZXMgY2hhbmdlZCwgMzMzIGluc2VydGlvbnMoKyks IDMzIGRlbGV0aW9ucygtKQo+ICA+PiAgICAgICAgICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4v YXJjaC9hcm0vbW9uaXRvci5jCj4gID4+ICAgICAgICAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhl bi9hcmNoL2FybS92bV9ldmVudC5jCj4gID4+Cj4gID4+Cj4gID4+ICAgICBUaGlzIHBhdGNoIGlz IGRvaW5nIGxvdHMgb2YgdGhpbmdzOgo+ICA+PiAgICAgICAgICAgICAgLSBBZGQgc3VwcG9ydCBm b3IgbW9uaXRvcmluZwo+ICA+PiAgICAgICAgICAgICAgLSBBZGQgc3VwcG9ydCBmb3Igdm1fZXZl bnQKPiAgPj4gICAgICAgICAgICAgIC0gTW9uaXRvciBTTUMKPiAgPj4gICAgICAgICAgICAgIC0g TW92ZSBjb21tb24gY29kZSB0byBhcmNoIHNwZWNpZmljIGNvZGUKPiAgPj4KPiAgPj4gICAgIEFz IGZhciBhcyBJIGNhbiB0ZWxsLCBhbGwgYXJlIGRpc3RpbmN0IGZyb20gZWFjaCBvdGhlci4gQ2Fu IHlvdQo+ICA+PiAgICAgcGxlYXNlIHNwbGl0IHRoaXMgcGF0Y2ggaW4gc21hbGxlciBvbmVzPwo+ ICA+Pgo+ICA+Pgo+ICA+PiBXaGlsZSBJIGNhbiBzcGxpdCBvZmYgc29tZSBwYXJ0cyBpbnRvIHNl cGFyYXRlIHBhdGNoZXMsIGxpa2UKPiAgPj4gZ2V0dGluZy9zZXR0aW5nIEFSTSByZWdpc3RlcnMg dGhyb3VnaCBWTSBldmVudHMgYW5kIHRoZSB0b29scyBwYXRjaGVzLAo+ICA+PiB0aGUgb3RoZXIg Y29tcG9uZW50cyBhcmUgcHJldHR5IHRpZ2h0bHkgY291cGxlZCBhbmQgZG9uJ3QgYWN0dWFsbHkg bWFrZQo+ICA+PiBzZW5zZSB0byBzcGxpdCB0aGVtLiBGb3IgZXhhbXBsZSwgZW5hYmxpbmcgYSBt b25pdG9yIGRvbWN0bCBmb3IgYW4gZXZlbnQKPiAgPj4gd2l0aG91dCB0aGUgVk0gZXZlbnQgY29t cG9uZW50cyBkb2Vzbid0IG1ha2UgbXVjaCBzZW5zZS4gVmljZSB2ZXJzZSBmb3IKPiAgPj4gdGhl IHZtX2V2ZW50IHBhcnRzIHdpdGhvdXQgYmVpbmcgYWJsZSB0byBlbmFibGUgdGhlbS4KPiAgPgo+ ICA+Cj4gID4gV2VsbCwgdGhlIGNvbW1pdCBtZXNzYWdlIGRvZXMgbm90IG1lbnRpb24gaGFsZiBv ZiB0aGUgY2hhbmdlcyBvZiB0aGlzCj4gcGF0Y2guIFNvbWUgY2hhbmdlcyBsaWtlIG1vdmluZyBj b21tb24gY29kZSB0byBhcmNoIHNwZWNpZmljIGNvZGUKPiBjbGVhcmx5IG5lZWRzIGV4cGxhbmF0 aW9uLiBJdCBpcyB0aGUgc2FtZSBmb3IgdGhlIGZhY3QgdGhhdCB5b3Ugb25seQo+IHByZXNlbnQg YSByZWR1Y2Ugc2V0IG9mIHJlZ2lzdGVycyB0byB2bSBldmVudCBmb3IgQUFyY2g2NC4KPgo+IFRo aXMgSU1ITyBpcyBub3Qgb3V0c3RhbmRpbmcsIGl0J3MgdGhlIHNhbWUgb24geDg2LgoKSXQgZG9j dW1lbnRzIHRoZSBjb2RlIGFuZCB3aWxsIGhlbHAgZnV0dXJlIHJlYWRlciB0byB1bmRlcnN0YW5k IHdoeSB3ZSAKY2hvb3NlIHRvIG9ubHkgZXhwb3NlIGEgc21hbGxlciBzZXQgb2YgcmVnaXN0ZXJz LgoKTm90ZSB0aGF0IHRoZSB4ODYgc3RydWN0dXJlIGlzIGRvY3VtZW50ZWQgd2l0aDogIlVzaW5n IGEgY3VzdG9tIHN0cnVjdCAKKG5vIGh2bV9od19jcHUpIHNvIGFzIHRvIG5vdCBmaWxsIHRoZSB2 bV9ldmVudCByaW5nIGJ1ZmZlciB0b28gcXVpY2tseSIuIApUaGlzIGlzIG5vdCB0aGUgY2FzZSBm b3IgdGhlIEFSTSBzdHJ1Y3R1cmUgdG9kYXkuCgo+ICA+Cj4gID4gWy4uLl0KPiAgPgo+ICA+Cj4g ID4+ICAgICAgICAgKyAgICBpZiAoCj4gY3VycmVudC0+ZG9tYWluLT5hcmNoLm1vbml0b3IucHJp dmlsZWdlZF9jYWxsX2VuYWJsZWQgKQo+ICA+PiAgICAgICAgICsgICAgewo+ICA+PiAgICAgICAg ICsgICAgICAgIHJjID0gbW9uaXRvcl9zbWMocmVncyk7Cj4gID4+ICAgICAgICAgKyAgICB9Cj4g ID4+Cj4gID4+Cj4gID4+ICAgICBUaGUgYnJhY2tldCBhcmUgbm90IG5lY2Vzc2FyeS4KPiAgPj4K PiAgPj4KPiAgPj4gQWNrLgo+ICA+Pgo+ICA+Pgo+ICA+PiAgICAgICAgICsKPiAgPj4gICAgICAg ICArICAgIGlmICggcmMgIT0gMSApCj4gID4+Cj4gID4+Cj4gID4+ICAgICBJIHRoaW5rIHRoZSBj b2RlIHdvdWxkIGJlIGNsZWFyZXIgaWYgeW91IGludHJvZHVjZSBhIGRlZmluZSBmb3IgIjEiLgo+ ICA+Pgo+ICA+Pgo+ICA+PiBNYXliZSBub3QgYSBkZWZpbmUgYnV0IGNhbGxpbmcgdGhlIHZhcmlh YmxlICJoYW5kbGVkIiBhcyB3ZSBkbyBvbiB4ODYKPiAgPj4gd291bGQgYmUgbW9yZSBkZXNjcmlw dGl2ZS4KPiAgPgo+ICA+Cj4gID4gSUhNTywgImhhbmRsZWQiIGluZmVycyB0aGF0IHRoZSB2YXJp YWJsZSBpcyBib29sZWFuLiBUaGlzIGlzIG5vdCB0aGUKPiBjYXNlIGhlcmUgYXMgeW91IGNvdWxk IGhhdmUgbmVnYXRpdmUgdmFsdWUuCj4KPiBJdCBtYXkgYmUgYnV0IHRoYXRzIHRoZSBjb252ZW50 aW9uIHdlIGhhdmUgZm9yIHRoaXMgb24geDg2IHNvIHN5bW1ldHJ5Cj4gaXMgYmV0dGVyIHRoZW4g aW50cm9kdWNpbmcgYSBuZXcgZGVmaW5lIGp1c3QgZm9yIHRoZSBBUk0gY2FzZS4KCldoaWxzdCBJ IGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSB0aGUgc2FtZSBjb252ZW50aW9uIGFjcm9zcyBhbGwg dGhlIAphcmNoaXRlY3R1cmVzLCBub3RoaW5nIHByZXZlbnRzIHlvdSB0byB1cGRhdGUgdGhlIHg4 NiBjb2RlIGFuZCB1c2UgdGhlIApuZXcgZGVmaW5lLgoKSXQgZG9lcyBub3QgbWFrZSBtdWNoIHNl bnNlIHRvIGludHJvZHVjZSBjb2RlIG9uIEFSTSB0aGF0IG1heSBub3QgYmUgCmNsZWFyZXIganVz dCBiZWNhdXNlIHg4NiBkaWQgaXQuCgpBbnl3YXksIFN0ZWZhbm8gbWF5IGhhdmUgYSBkaWZmZXJl bnQgdmlldyBvbiB0aGlzLgoKWy4uLl0KCj4gID4KPiAgPiBbLi4uXQo+ICA+Cj4gID4KPiAgPj4g ICAgIEFBcmNoNjQgcHJvdmlkZXMgMzEgZ2VuZXJhdGUtcHVycG9zZSByZWdpc3RlcnMuIEFsdGhv dWdoLCB4MjkgYW5kCj4gID4+ICAgICB4MzAgYXJlIHJlc3BlY3RpdmVseSB1c2VkIGZvciBmcCBh bmQgbHIuCj4gID4+Cj4gID4+Cj4gID4+IEZvciB2bV9ldmVudCBpdCdzIG5vdCBuZWNlc3Nhcnkg dG8gZ2V0IGFsbCByZWdpc3RlcnMsIHJhdGhlciBpdCdzIGp1c3QgYQo+ICA+PiBoYW5kZnVsIG9m IHNlbGVjdGlvbiB0aGF0IG1heSBiZSBlc3BlY2lhbGx5ICJ1c2VmdWwiIGZvciBpbnRyb3NwZWN0 aW9uLgo+ICA+Cj4gID4KPiAgPiBIb3cgZGlkIHlvdSBkZWNpZGUgdGhhdCBvbmx5IHRoZSBmaXJz dCB0byB4TiByZWdpc3RlcnMgYXJlIHVzZWZ1bD8gSXQKPiB3b3VsZCBiZSB2YWxpZCB0byBoYXZl IGFuIFNNQyBjYWxsIHVzaW5nIHgyMCBmb3IgYW4gYXJndW1lbnRzLgo+ICA+Cj4gID4gU2ltaWxh cmx5LCB0aGUgaHlwZXJjYWxsIGNvbnZlbnRpb24gZm9yIEFBcmNoNjQgbWFrZXMgdXNlIG9mIHgx Ngo+IHdoaWNoIGlzIG5vdCBleHBvc2VkIHRvIHRoZSB2bSBldmVudCBzdWJzeXN0ZW0uCj4KPiBD ZXJ0YWlubHksIGFzIEkgc2FpZCwgaWYgYSBmdXR1cmUgYXBwbGljYXRpb24gbmVlZHMgb3RoZXIg cmVnaXN0ZXJzIHRvCj4gYmUgc2VudCBoZXJlIGFuZCBjYW4ganVzdGlmeSBpdCwgdGhpcyBjYW4g YmUgYWRqdXN0ZWQuCQo+Cj4gID4KPiAgPgo+ICA+PiBJdCdzIGFsc28gaW1wb3J0YW50IG5vdCB0 byBmaWxsIHVwIHRoZSB2bV9ldmVudCBtb25pdG9yIHJpbmcgd2l0aCBodWdlCj4gID4+IHJlcXVl c3QvcmVzcG9uc2Ugc3RydWN0cyBzbyBldmVuIG9uIHg4NiB3ZSBvbmx5IGhhdmUgYSBzdWJzZXQg b2YgdGhlCj4gID4+IHJlZ2lzdGVycy4gQXMgcmlnaHQgbm93IHRoZXJlIGFyZSBubyBhcHBsaWNh dGlvbnMgZm9yIGFhcmNoNjQsIGl0J3Mgb25seQo+ICA+PiBhIGd1ZXNzIG9mIHdoYXQgcmVnaXN0 ZXJzIHdvdWxkIGJlICJ1c2VmdWwiIGFuZCBtYXkgYmUgYWRqdXN0ZWQgaW4KPiAgPj4gZnV0dXJl IHZlcnNpb25zIGFzIHdlIHN0YXJ0IHRvIGhhdmUgYXBwbGljYXRpb25zIHVzaW5nIHRoaXMuCj4g ID4KPiAgPgo+ICA+IEd1ZXNzaW5nIHRoZSBzZXQgb2YgdXNlZnVsIHJlZ2lzdGVycyBpcyB1c3Vh bGx5IG5vdCBhIGdvb2QgaWRlYSAoc2VlCj4gd2h5IGFib3ZlKS4KPiAgPgo+Cj4gUmVtZW1iZXIs IHRoZSBzdWJzY3JpYmVyIGNhbiBhbHdheXMgZ2V0L3NldCB0aGUgZnVsbCBzZXQgb2YgcmVnaXN0 ZXJzCj4gd2hlbiBpdCBuZWVkcyB0bywgc28gY29tcGxldGVuZXNzIGhlcmUgaXMgbm90IGNyaXRp Y2FsLiBZb3UgYXJlIG1pc3NpbmcKPiB0aGUgcG9pbnQgdGhhdCB0aGUgc3BhY2Ugb24gdGhlIHJp bmcgaXMgbGltaXRlZCBhbmQgaXQgY2FuIGZpbGwgdXAgZmFzdAo+IHdoZW4gdGhlIGZ1bGwgdkNQ VSBjb250ZXh0IGlzIHB1c2hlZCBvbiBpdCBmb3IgYWxsIGV2ZW50cy4gUmlnaHQgbm93IHRoZQo+ IHg4NiBzaWRlIGlzIHN0aWxsIGxhcmdlciBzbyB3ZSBoYXZlIHNvbWUgcm9vbSBmb3IgYWRkaXRp b25hbCByZWdpc3RlcnMKPiB0byBiZSBzZW50IHdoZW4gdXNlcnMgb2YgdGhpcyBzeXN0ZW0gaGF2 ZSBhIGJldHRlciB2aWV3IGludG8gd2hhdCB0aGV5Cj4gZmluZCBpbXBvcnRhbnQuIFdoaWNoIGlz IElNSE8gbm90IG5vdy4KCkkgbWF5IG1pc3VuZGVyc3RhbmQgc29tZSBwYXJ0cyBvZiB0aGUgdm0g ZXZlbnQgc3Vic3lzdGVtLiBUbyBnZXQvc2V0IHRoZSAKZnVsbCBzZXQgb2YgcmVnaXN0ZXJzLCB0 aGUgdXNlciB3aWxsIGhhdmUgdG8gdXNlIHRoZSAKRE9NQ1RMX3tzZXQsZ2V0fXZjcHVjb250ZXh0 LCBjb3JyZWN0PyBTbyB3aHkgZG9lcyBYZW4gZXhwb3NlIGEgcGFydCBvZiAKdGhlIHZDUFUgY29u dGV4dCB0aHJvdWdoIHRoZSB2bV9ldmVudD8KClJlZ2FyZHMsCgotLSAKSnVsaWVuIEdyYWxsCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=