From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Um9nZXIgUGF1IE1vbm7DqQ==?= Subject: Re: RFC: very initial PVH design document Date: Tue, 16 Sep 2014 11:36:54 +0200 Message-ID: <541804B6.50505@citrix.com> References: <53F759CC.7090406@citrix.com> <20140826173321.0f632d3e@mantra.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20140826173321.0f632d3e@mantra.us.oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Mukesh Rathor Cc: David Vrabel , Jan Beulich , xen-devel List-Id: xen-devel@lists.xenproject.org RWwgMjcvMDgvMTQgYSBsZXMgMi4zMywgTXVrZXNoIFJhdGhvciBoYSBlc2NyaXQ6Cj4gT24gRnJp LCAyMiBBdWcgMjAxNCAxNjo1NTowOCArMDIwMAo+IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBh dUBjaXRyaXguY29tPiB3cm90ZToKPiAKPj4gSGVsbG8sCj4+Cj4+IEkndmUgc3RhcnRlZCB3cml0 aW5nIGEgZG9jdW1lbnQgaW4gb3JkZXIgdG8gZGVzY3JpYmUgdGhlIGludGVyZmFjZSAKPj4gZXhw b3NlZCBieSBYZW4gdG8gUFZIIGd1ZXN0cywgYW5kIGhvdyBpdCBzaG91bGQgYmUgdXNlZCAoYnkg Z3Vlc3QgCj4+IE9TZXMpLiBUaGUgZG9jdW1lbnQgaXMgZmFyIGZyb20gY29tcGxldGUgKHNlZSB0 aGUgYW1vdW50IG9mIFRPRE9zIAo+PiBzY2F0dGVyZWQgYXJvdW5kKSwgYnV0IGdpdmVuIHRoZSBs YWNrIG9mIGRvY3VtZW50YXRpb24gcmVnYXJkaW5nIFBWSAo+PiBJIHRoaW5rIGl0J3MgYSBnb29k IHN0YXJ0aW5nIHBvaW50LiBUaGUgYWltIG9mIHRoaXMgaXMgdGhhdCBpdCBzaG91bGQKPj4gYmUg Y29tbWl0dGVkIHRvIHRoZSBYZW4gcmVwb3NpdG9yeSBvbmNlIGl0J3MgcmVhZHkuIEdpdmVuIHRo YXQgdGhpcwo+PiBpcyBzdGlsbCBhICp2ZXJ5KiBlYXJseSB2ZXJzaW9uIEknbSBub3QgZXZlbiBw b3N0aW5nIGl0IGFzIGEgcGF0Y2guCj4+Cj4+IFBsZWFzZSBjb21tZW50LCBhbmQgdHJ5IHRvIGZp bGwgdGhlIGhvbGVzIGlmIHBvc3NpYmxlIDspLgo+Pgo+PiBSb2dlci4KPj4KPj4gLS0tCj4+ICMg UFZIIFNwZWNpZmljYXRpb24gIwo+Pgo+PiAjIyBSYXRpb25hbGUgIyMKPj4KPj4gUFZIIGlzIGEg bmV3IGtpbmQgb2YgZ3Vlc3QgdGhhdCBoYXMgYmVlbiBpbnRyb2R1Y2VkIG9uIFhlbiA0LjQgYXMg YQo+PiBEb21VLCBhbmQgb24gWGVuIDQuNSBhcyBhIERvbTAuIFRoZSBhaW0gb2YgUFZIIGlzIHRv IG1ha2UgdXNlIG9mIHRoZQo+PiBoYXJkd2FyZSB2aXJ0dWFsaXphdGlvbiBleHRlbnNpb25zIHBy ZXNlbnQgaW4gbW9kZXJuIHg4NiBDUFVzIGluCj4+IG9yZGVyIHRvIGltcHJvdmUgcGVyZm9ybWFu Y2UuCj4+Cj4+IFBWSCBpcyBjb25zaWRlcmVkIGEgbWl4IGJldHdlZW4gUFYgYW5kIEhWTSwgYW5k IGNhbiBiZSBzZWVuIGFzIGEgUFYKPj4gZ3Vlc3QgdGhhdCBydW5zIGluc2lkZSBvZiBhbiBIVk0g Y29udGFpbmVyLCBvciBhcyBhIFBWSFZNIGd1ZXN0Cj4+IHdpdGhvdXQgYW55IGVtdWxhdGVkIGRl dmljZXMuIFRoZSBkZXNpZ24gZ29hbCBvZiBQVkggaXMgdG8gcHJvdmlkZQo+PiB0aGUgYmVzdCBw ZXJmb3JtYW5jZSBwb3NzaWJsZSBhbmQgdG8gcmVkdWNlIHRoZSBhbW91bnQgb2YKPj4gbW9kaWZp Y2F0aW9ucyBuZWVkZWQgZm9yIGEgZ3Vlc3QgT1MgdG8gcnVuIGluIHRoaXMgbW9kZSAoY29tcGFy ZWQgdG8KPj4gcHVyZSBQVikuCj4+Cj4+IFRoaXMgZG9jdW1lbnQgdHJpZXMgdG8gZGVzY3JpYmUg dGhlIGludGVyZmFjZXMgdXNlZCBieSBQVkggZ3Vlc3RzLAo+PiBmb2N1c2luZyBvbiBob3cgYW4g T1Mgc2hvdWxkIG1ha2UgdXNlIG9mIHRoZW0gaW4gb3JkZXIgdG8gc3VwcG9ydCBQVkguCj4+Cj4+ ICMjIEVhcmx5IGJvb3QgIyMKPj4KPj4gUFZIIGd1ZXN0cyB1c2UgdGhlIFBWIGJvb3QgbWVjaGFu aXNtLCB0aGF0IG1lYW5zIHRoYXQgdGhlIGtlcm5lbCBpcwo+PiBsb2FkZWQgYW5kIGRpcmVjdGx5 IGxhdW5jaGVkIGJ5IFhlbiAoYnkganVtcGluZyBpbnRvIHRoZSBlbnRyeQo+PiBwb2ludCkuIElu IG9yZGVyIHRvIGRvIHRoaXMgWGVuIEVMRiBOb3RlcyBuZWVkIHRvIGJlIGFkZGVkIHRvIHRoZQo+ PiBndWVzdCBrZXJuZWwsIHNvIHRoYXQgdGhleSBjb250YWluIHRoZSBpbmZvcm1hdGlvbiBuZWVk ZWQgYnkgWGVuLgo+PiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdGhlIEVMRiBOb3RlcyBhZGRlZCB0 byB0aGUgRnJlZUJTRCBhbWQ2NCBrZXJuZWwKPj4gaW4gb3JkZXIgdG8gYm9vdCBhcyBQVkg6Cj4+ Cj4+ICAgICBFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfR1VFU1RfT1MsICAgICAgIC5hc2Npeiwg IkZyZWVCU0QiKQo+PiAgICAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX0dVRVNUX1ZFUlNJT04s ICAuYXNjaXosCj4+IF9fWFNUUklORyhfX0ZyZWVCU0RfdmVyc2lvbikpIEVMRk5PVEUoWGVuLAo+ PiBYRU5fRUxGTk9URV9YRU5fVkVSU0lPTiwgICAgLmFzY2l6LCAieGVuLTMuMCIpIEVMRk5PVEUo WGVuLAo+PiBYRU5fRUxGTk9URV9WSVJUX0JBU0UsICAgICAgLnF1YWQsICBLRVJOQkFTRSkgRUxG Tk9URShYZW4sCj4+IFhFTl9FTEZOT1RFX1BBRERSX09GRlNFVCwgICAucXVhZCwgIEtFUk5CQVNF KSBFTEZOT1RFKFhlbiwKPj4gWEVOX0VMRk5PVEVfRU5UUlksICAgICAgICAgIC5xdWFkLCAgeGVu X3N0YXJ0KSBFTEZOT1RFKFhlbiwKPj4gWEVOX0VMRk5PVEVfSFlQRVJDQUxMX1BBR0UsIC5xdWFk LCAgaHlwZXJjYWxsX3BhZ2UpIEVMRk5PVEUoWGVuLAo+PiBYRU5fRUxGTk9URV9IVl9TVEFSVF9M T1csICAgLnF1YWQsICBIWVBFUlZJU09SX1ZJUlRfU1RBUlQpCj4+IEVMRk5PVEUoWGVuLCBYRU5f RUxGTk9URV9GRUFUVVJFUywgICAgICAgLmFzY2l6LAo+PiAid3JpdGFibGVfZGVzY3JpcHRvcl90 YWJsZXN8YXV0b190cmFuc2xhdGVkX3BoeXNtYXB8c3VwZXJ2aXNvcl9tb2RlX2tlcm5lbHxodm1f Y2FsbGJhY2tfdmVjdG9yIikKPj4gRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX1BBRV9NT0RFLCAg ICAgICAuYXNjaXosICJ5ZXMiKSBFTEZOT1RFKFhlbiwKPj4gWEVOX0VMRk5PVEVfTDFfTUZOX1ZB TElELCAgIC5sb25nLCAgUEdfViwgUEdfVikgRUxGTk9URShYZW4sCj4+IFhFTl9FTEZOT1RFX0xP QURFUiwgICAgICAgICAuYXNjaXosICJnZW5lcmljIikgRUxGTk9URShYZW4sCj4+IFhFTl9FTEZO T1RFX1NVU1BFTkRfQ0FOQ0VMLCAubG9uZywgIDApIEVMRk5PVEUoWGVuLAo+PiBYRU5fRUxGTk9U RV9CU0RfU1lNVEFCLCAgICAgLmFzY2l6LCAieWVzIikKPiAKPiBJdCB3aWxsIGJlIGhlbHBmdWwg dG8gYWRkOgo+IAo+IE9uIHRoZSBsaW51eCBzaWRlLCB0aGUgYWJvdmUgY2FuIGJlIGZvdW5kIGlu IGFyY2gveDg2L3hlbi94ZW4taGVhZC5TLgoKRG9uZSwgYWx0aG91Z2ggSSB3b3VsZCBwcmVmZXIg dG8gbGltaXQgdGhlIG51bWJlciBvZiBjb2RlIGV4YW1wbGVzCnBpY2tlZCBmcm9tIExpbnV4IChv ciB0byBhdCBsZWFzdCB0cnkgcHJvdmlkZSBhbHRlcm5hdGUgZXhhbXBsZXMgdW5kZXIgYQptb3Jl IGxpYmVyYWwgbGljZW5zZSkuCgo+PiBJdCBpcyBpbXBvcnRhbnQgdG8gaGlnaGxpZ2h0IHRoZSBm b2xsb3dpbmcgbm90ZXM6Cj4+Cj4+ICAgKiBYRU5fRUxGTk9URV9FTlRSWTogY29udGFpbnMgdGhl IG1lbW9yeSBhZGRyZXNzIG9mIHRoZSBrZXJuZWwKPj4gZW50cnkgcG9pbnQuCj4+ICAgKiBYRU5f RUxGTk9URV9IWVBFUkNBTExfUEFHRTogY29udGFpbnMgdGhlIG1lbW9yeSBhZGRyZXNzIG9mIHRo ZQo+PiBoeXBlcmNhbGwgcGFnZSBpbnNpZGUgb2YgdGhlIGd1ZXN0IGtlcm5lbCAodGhpcyBtZW1v cnkgcmVnaW9uIHdpbGwgYmUKPj4gZmlsbGVkIGJ5IFhlbiBwcmlvciB0byBib290aW5nKS4KPj4g ICAqIFhFTl9FTEZOT1RFX0ZFQVRVUkVTOiBjb250YWlucyB0aGUgbGlzdCBvZiBmZWF0dXJlcyBz dXBwb3J0ZWQgYnkKPj4gdGhlIGtlcm5lbC4gSW4gdGhpcyBjYXNlIHRoZSBrZXJuZWwgaXMgb25s eSBhYmxlIHRvIGJvb3QgYXMgYSBQVkgKPj4gZ3Vlc3QsIGJ1dCB0aG9zZSBvcHRpb25zIGNhbiBi ZSBtaXhlZCB3aXRoIHRoZSBvbmVzIHVzZWQgYnkgcHVyZSBQVgo+PiBndWVzdHMgaW4gb3JkZXIg dG8gaGF2ZSBhIGtlcm5lbCB0aGF0IHN1cHBvcnRzIGJvdGggUFYgYW5kIFBWSCAobGlrZQo+PiBM aW51eCkuIFRoZSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGNhbiBiZSBmb3VuZCBpbiB0aGUK Pj4gYGZlYXR1cmVzLmhgIHB1YmxpYyBoZWFkZXIuCj4gCj4gSG1tLi4uIGZvciBsaW51eCBJJ2Qg d29yZCB0aGF0IGFzIGZvbGxvd3M6Cj4gCj4gQSBQVkggZ3Vlc3QgaXMgc3RhcnRlZCBieSBzcGVj aWZ5aW5nIHB2aD0xIGluIHRoZSBjb25maWcgZmlsZS4gSG93ZXZlciwKPiBmb3IgdGhlIGd1ZXN0 IHRvIGJlIGxhdW5jaGVkIGFzIGEgUFZIIGd1ZXN0LCBpdCBtdXN0IG1pbmltYWxseSBhZHZlcnRp c2UgCj4gY2VydGFpbiBmZWF0dXJlcyB3aGljaCBhcmU6IGF1dG9fdHJhbnNsYXRlZF9waHlzbWFw LCBodm1fY2FsbGJhY2tfdmVjdG9yLCAKPiB3cml0YWJsZV9kZXNjcmlwdG9yX3RhYmxlcywgYW5k IHN1cGVydmlzb3JfbW9kZV9rZXJuZWwuIFRoaXMgaXMgZG9uZQo+IHZpYSBYRU5fRUxGTk9URV9G RUFUVVJFUyBhbmQgWEVOX0VMRk5PVEVfU1VQUE9SVEVEX0ZFQVRVUkVTLiBTZWUKPiBsaW51eDph cmNoL3g4Ni94ZW4veGVuLWhlYWQuUyBmb3IgbW9yZSBpbmZvLiBBIGxpc3Qgb2YgYWxsIHhlbiBm ZWF0dXJlcwo+IGNhbiBiZSBmb3VuZCBpbiB4ZW46aW5jbHVkZS9wdWJsaWMvZmVhdHVyZXMuaC4g SG93ZXZlciwgYXQgcHJlc2VudAo+IHRoZSBhYnNlbmNlIG9mIHRoZXNlIGZlYXR1cmVzIGRvZXMg bm90IG1ha2UgaXQgYXV0b21hdGljYWxseSBib290IGluIFBWCj4gbW9kZSwgYnV0IHRoYXQgbWF5 IGNoYW5nZSBpbiBmdXR1cmUuIFRoZSB1bHRpbWF0ZSBnb2FsIGlzLCBpZiBhIGd1ZXN0Cj4gc3Vw cG9ydHMgdGhlc2UgZmVhdHVyZXMsIHRoZW4gYm9vdCBpdCBhdXRvbWF0aWNhbGx5IGluIFBWSCBt b2RlLCBvdGhlcndpc2UKPiBib290IGl0IGluIFBWIG1vZGUuCgpJIGRvbid0IHRoaW5rIHdlIHNo b3VsZCBhZGQgdG9vbC1zaWRlIHN0dWZmIGhlcmUgKGxpa2Ugc2V0dGluZyBwdmg9MSBvbgp0aGUg Y29uZmlnIGZpbGUpLiBJIHdhbnRlZCB0aGlzIGRvY3VtZW50IHRvIGJlIGEgc3BlY2lmaWNhdGlv biBhYm91dCB0aGUKaW50ZXJmYWNlcyB1c2VkIGJ5IGEgUFZIIGd1ZXN0LCBmcm9tIHRoZSBPUyBw b2ludCBvZiB2aWV3LiBYZW4gc3VwcG9ydHMKYSB3aWRlIHZhcmlldHkgb2YgdG9vbHN0YWNrcywg YW5kIEkgYmV0IHNvbWUgb2YgdGhlbSB3aWxsIHJlcXVpcmUgYQpkaWZmZXJlbnQgbWV0aG9kIGlu IG9yZGVyIHRvIGJvb3QgYXMgUFZILgoKPiBbWW91IGNhbiBsZWF2ZSBvdXQgdGhlIGxhc3QgcGFy dCBpZiB5b3Ugd2FudCwgb3IganVzdCB0YWtlIHdoYXRldmVyIGZyb20KPiBhYm92ZV0uCj4gCj4+ IFhlbiB3aWxsIGp1bXAgaW50byB0aGUga2VybmVsIGVudHJ5IHBvaW50IGRlZmluZWQgaW4KPj4g YFhFTl9FTEZOT1RFX0VOVFJZYCB3aXRoIHBhZ2luZyBlbmFibGVkIChlaXRoZXIgbG9uZyBvciBw cm90ZWN0ZWQKPj4gbW9kZSBkZXBlbmRpbmcgb24gdGhlIGtlcm5lbCBiaXRuZXNzKSBhbmQgc29t ZSBiYXNpYyBwYWdlIHRhYmxlcwo+PiBzZXR1cC4KPiAKPiBJZiBJIG1heSByZXBocmFzZToKPiAK PiBHdWVzdCBpcyBsYXVuY2hlZCBhdCB0aGUgZW50cnkgcG9pbnQgc3BlY2lmaWVkIGluIFhFTl9F TEZOT1RFX0VOVFJZCj4gd2l0aCBwYWdpbmcsIFBBRSwgYW5kIGxvbmcgbW9kZSBlbmFibGVkLiBB dCBwcmVzZW50IG9ubHkgNjRiaXQgbW9kZQo+IGlzIHN1cHBvcnRlZCwgaG93ZXZlciwgaW4gZnV0 dXJlIGNvbXBhdCBtb2RlIHN1cHBvcnQgd2lsbCBiZSBhZGRlZC4KPiBBbiBpbXBvcnRhbnQgZGlz dGluY3Rpb24gZm9yIGEgNjRiaXQgUFZIIGlzIHRoYXQgaXQgaXMgbGF1bmNoZWQgYXQKPiBwcml2 aWxlZ2UgbGV2ZWwgMCBhcyBvcHBvc2VkIHRvIGEgNjRiaXQgUFYgZ3Vlc3Qgd2hpY2ggaXMgbGF1 bmNoZWQgYXQKPiBwcml2aWxlZ2UgbGV2ZWwgMy4KCkkndmUgaW50ZWdyYXRlZCBhIHBhcnQgb2Yg dGhpcyBwYXJhZ3JhcGgsIGJ1dCBJIHRoaW5rIHNvbWUgb2YgdGhpcwpjb250ZW50cyB3b3VsZCBn byBpbnRvIHRoZSBpMzg2IHNlY3Rpb24gb25jZSB3ZSBoYXZlIHN1cHBvcnQgZm9yIDMyYml0ClBW SCBndWVzdHMuCgo+PiBBbHNvLCB0aGUgYHJzaWAgKGBlc2lgIG9uIDMyYml0cykgcmVnaXN0ZXIg aXMgZ29pbmcgdG8gY29udGFpbiB0aGUKPj4gdmlydHVhbCBtZW1vcnkgYWRkcmVzcyB3ZXJlIFhl biBoYXMgcGxhY2VkIHRoZSBzdGFydF9pbmZvIHN0cnVjdHVyZS4KPj4gVGhlIGByc3BgIChgZXNw YCBvbiAzMmJpdHMpIHdpbGwgY29udGFpbiBhIHN0YWNrLCB0aGF0IGNhbiBiZSB1c2VkIGJ5Cj4+ IHRoZSBndWVzdCBrZXJuZWwuIFRoZSBzdGFydF9pbmZvIHN0cnVjdHVyZSBjb250YWlucyBhbGwg dGhlIGluZm8gdGhlCj4+IGd1ZXN0IG5lZWRzIGluIG9yZGVyIHRvIGluaXRpYWxpemUuIE1vcmUg aW5mb3JtYXRpb24gYWJvdXQgdGhlCj4+IGNvbnRlbnRzIGNhbiBiZSBmb3VuZCBvbiB0aGUgYHhl bi5oYCBwdWJsaWMgaGVhZGVyLgo+IAo+IFNpbmNlIHRoZSBhYm92ZSBpcyBhbGwgdHJ1ZSBmb3Ig UFYgZ3Vlc3QsIHlvdSBjb3VsZCBiZWdpbiBpdCB3aXRoOgo+IAo+IEp1c3QgbGlrZSBhIFBWIGd1 ZXN0LCB0aGUgcnNpIC4uLi4KPiAKPj4KPj4gIyMjIEluaXRpYWwgYW1kNjQgY29udHJvbCByZWdp c3RlcnMgdmFsdWVzICMjIwo+Pgo+PiBJbml0aWFsIHZhbHVlcyBmb3IgdGhlIGNvbnRyb2wgcmVn aXN0ZXJzIGFyZSBzZXQgdXAgYnkgWGVuIGJlZm9yZQo+PiBib290aW5nIHRoZSBndWVzdCBrZXJu ZWwuIFRoZSBndWVzdCBrZXJuZWwgY2FuIGV4cGVjdCB0byBmaW5kIHRoZQo+PiBmb2xsb3dpbmcg ZmVhdHVyZXMgZW5hYmxlZCBieSBYZW4uCj4+Cj4+IE9uIGBDUjBgIHRoZSBmb2xsb3dpbmcgYml0 cyBhcmUgc2V0IGJ5IFhlbjoKPj4KPj4gICAqIFBFIChiaXQgMCk6IHByb3RlY3RlZCBtb2RlIGVu YWJsZS4KPj4gICAqIEVUIChiaXQgNCk6IDgwMzg3IGV4dGVybmFsIG1hdGggY29wcm9jZXNzb3Iu Cj4+ICAgKiBQRyAoYml0IDMxKTogcGFnaW5nIGVuYWJsZWQuCj4+Cj4+IE9uIGBDUjRgIHRoZSBm b2xsb3dpbmcgYml0cyBhcmUgc2V0IGJ5IFhlbjoKPj4KPj4gICAqIFBBRSAoYml0IDUpOiBQQUUg ZW5hYmxlZC4KPj4KPj4gQW5kIGZpbmFsbHkgb24gYEVGRVJgIHRoZSBmb2xsb3dpbmcgZmVhdHVy ZXMgYXJlIGVuYWJsZWQ6Cj4+Cj4+ICAgKiBMTUUgKGJpdCA4KTogTG9uZyBtb2RlIGVuYWJsZS4K Pj4gICAqIExNQSAoYml0IDEwKTogTG9uZyBtb2RlIGFjdGl2ZS4KPj4KPj4gKlRPRE8qOiBkbyB3 ZSBleHBlY3QgdGhpcyBmbGFncyB0byBjaGFuZ2U/IEFyZSB0aGVyZSBvdGhlciBmbGFncyB0aGF0 Cj4+IG1pZ2h0IGJlIGVuYWJsZWQgZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSB3ZSBhcmUgcnVu bmluZyBvbj8KPiAKPiBDYW4ndCB0aGluayBvZiBhbnl0aGluZy4uLgo+IAo+IAo+PiAjIyBNZW1v cnkgIyMKPj4KPj4gU2luY2UgUFZIIGd1ZXN0cyByZWx5IG9uIHZpcnR1YWxpemF0aW9uIGV4dGVu c2lvbnMgcHJvdmlkZWQgYnkgdGhlCj4+IENQVSwgdGhleSBoYXZlIGFjY2VzcyB0byBhIGhhcmR3 YXJlIHZpcnR1YWxpemVkIE1NVSwgd2hpY2ggbWVhbnMKPj4gcGFnZS10YWJsZSByZWxhdGVkIG9w ZXJhdGlvbnMgc2hvdWxkIHVzZSB0aGUgc2FtZSBpbnN0cnVjdGlvbnMgdXNlZAo+PiBvbiBuYXRp dmUuCj4gCj4gRG8geW91IHdhbm5hIGV4cGFuZCBhIGJpdCBzaW5jZSB0aGlzIGlzIGFub3RoZXIg YmlnIGRpc3RpbmN0aW9uIGZyb20KPiBhIFBWIGd1ZXN0Pwo+IAo+IHdoaWNoIG1lYW5zIHRoYXQg cGFnZSB0YWJsZXMgYXJlIG5hdGl2ZSBhbmQgZ3Vlc3QgbWFuYWdlZC4gCj4gVGhpcyBhbHNvIGlt cGxpZXMgdGhhdCBtbXVfdXBkYXRlIGh5cGVyY2FsbCBpcyBub3QgYXZhaWxhYmxlIHRvIGEgUFZI Cj4gZ3Vlc3QsIHVubGlrZSBhIFBWIGd1ZXN0LiAgVGhlIGd1ZXN0IGlzIGNvbmZpZ3VyZWQgYXQg c3RhcnQgc28gaXQgY2FuIAo+IGFjY2VzcyBhbGwgcGFnZXMgdXB0byBzdGFydF9pbmZvLT5ucl9w YWdlcy4KClRoaXMgaXMgYWxyZWFkeSBleHBsYWluZWQgaW4gdGhlIGxhc3QgcGFyYWdyYXBoIG9m IHRoaXMgc2VjdGlvbiwgYW5kCnNpbmNlIE1NVSBoeXBlcmNhbGxzIGFyZSBub3QgYXZhaWxhYmxl IHRvIFBWSCBndWVzdHMgSSBkb24ndCB0aGluayB3ZQpzaG91bGQgZXZlbiBtZW50aW9uIHRoZW0u CgpJIGxpa2UgdG8gc2VlIHRoaXMgZG9jdW1lbnQgYXMgc29tZXRoaW5nIHRoYXQgY2FuIGJlIHVz ZWQgdG8gYWRkIFBWSApzdXBwb3J0IGZyb20gc2NyYXRjaCwgbm90IHNvbWV0aGluZyB3cml0dGVu IHRvIGJlIHVzZWQgdG8gbWlncmF0ZSBmcm9tClBWIHRvIFBWSCAoYWx0aG91Z2ggSSB0aGluayBp dCBhbHNvIHNlcnZlcyB0aGlzIHB1cnBvc2UpLgoKPiAKPj4gVGhlcmUgYXJlIGhvd2V2ZXIgc29t ZSBkaWZmZXJlbmNlcyB3aXRoIG5hdGl2ZS4gVGhlIHVzYWdlIG9mIG5hdGl2ZQo+PiBNVFJSIG9w ZXJhdGlvbnMgaXMgZm9yYmlkZGVuLCBhbmQgYFhFTlBGXypfbWVtdHlwZWAgaHlwZXJjYWxscyBz aG91bGQKPj4gYmUgdXNlZCBpbnN0ZWFkLiBUaGlzIGNhbiBiZSBhdm9pZGVkIGJ5IHNpbXBseSBu b3QgdXNpbmcgTVRSUiBhbmQKPj4gc2V0dGluZyBhbGwgdGhlIG1lbW9yeSBhdHRyaWJ1dGVzIHVz aW5nIFBBVCwgd2hpY2ggZG9lc24ndCByZXF1aXJlCj4+IHRoZSB1c2FnZSBvZiBhbnkgaHlwZXJj YWxscy4KPj4KPj4gU2luY2UgUFZIIGRvZXNuJ3QgdXNlIGEgQklPUyBpbiBvcmRlciB0byBib290 LCB0aGUgcGh5c2ljYWwgbWVtb3J5Cj4+IG1hcCBoYXMgdG8gYmUgcmV0cmlldmVkIHVzaW5nIHRo ZSBgWEVOTUVNX21lbW9yeV9tYXBgIGh5cGVyY2FsbCwKPj4gd2hpY2ggd2lsbCByZXR1cm4gYW4g ZTgyMCBtYXAuIFRoaXMgbWVtb3J5IG1hcCBtaWdodCBjb250YWluIGhvbGVzCj4+IHRoYXQgZGVz Y3JpYmUgTU1JTyByZWdpb25zLCB0aGF0IHdpbGwgYmUgYWxyZWFkeSBzZXR1cCBieSBYZW4uCj4+ Cj4+ICpUT0RPKjogd2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBNTUlPIHJl Z2lvbnMsIHJpZ2h0IG5vdwo+PiBYZW4gc2V0cyBhbGwgdGhlIGhvbGVzIGluIHRoZSBuYXRpdmUg ZTgyMCB0byBNTUlPIHJlZ2lvbnMgZm9yIERvbTAgdXAKPj4gdG8gNEdCLiBXZSBuZWVkIHRvIGRl Y2lkZSB3aGF0IHRvIGRvIHdpdGggTU1JTyByZWdpb25zIGFib3ZlIDRHQiBvbgo+PiBEb20wLCBh bmQgd2hhdCB0byBkbyBmb3IgUFZIIERvbVVzIHdpdGggcGNpLXBhc3N0aHJvdWdoLgo+IAo+IFdl IG1hcCBhbGwgbm9uLXJhbSByZWdpb25zIGZvciBkb20wIDE6MSB0aWxsIHRoZSBoaWdoZXN0IG5v bi1yYW0gZTgyMAo+IGVudHJ5LiBJZiB0aGVyZSBpcyBhbnl0aGluZyB0aGF0IGlzIGJleW9uZCB0 aGUgbGFzdCBlODIwIGVudHJ5LAo+IGl0IHdpbGwgcmVtYWluIHVubWFwcGVkLgo+IAo+IENvcnJl Y3QsIHBhc3N0aHJ1IG5lZWRzIHRvIGJlIGZpZ3VyZWQuCj4gCj4+IEluIHRoZSBjYXNlIG9mIGEg Z3Vlc3Qgc3RhcnRlZCB3aXRoIG1lbW9yeSAhPSBtYXhtZW0sIHRoZSBlODIwIG1lbW9yeQo+PiBt YXAgcmV0dXJuZWQgYnkgWGVuIHdpbGwgY29udGFpbiB0aGUgbWVtb3J5IHVwIHRvIG1heG1lbS4g VGhlIGd1ZXN0Cj4+IGhhcyB0byBiZSB2ZXJ5IGNhcmVmdWwgdG8gb25seSB1c2UgdGhlIGxvd2Vy IG1lbW9yeSBwYWdlcyB1cCB0byB0aGUKPj4gdmFsdWUgY29udGFpbmVkIGluIGBzdGFydF9pbmZv LT5ucl9wYWdlc2AgYmVjYXVzZSBhbnkgbWVtb3J5IHBhZ2UKPj4gYWJvdmUgdGhhdCB2YWx1ZSB3 aWxsIG5vdCBiZSBwb3B1bGF0ZWQuCj4+Cj4+ICMjIFBoeXNpY2FsIGRldmljZXMgIyMKPj4KPj4g V2hlbiBydW5uaW5nIGFzIERvbTAgdGhlIGd1ZXN0IE9TIGhhcyB0aGUgYWJpbGl0eSB0byBpbnRl cmFjdCB3aXRoCj4+IHRoZSBwaHlzaWNhbCBkZXZpY2VzIHByZXNlbnQgaW4gdGhlIHN5c3RlbS4g QSBub3RlIHNob3VsZCBiZSBtYWRlCj4+IHRoYXQgUFZIIGd1ZXN0cyByZXF1aXJlIGEgd29ya2lu ZyBJT01NVSBpbiBvcmRlciB0byBpbnRlcmFjdCB3aXRoCj4+IHBoeXNpY2FsIGRldmljZXMuCj4+ Cj4+IFRoZSBmaXJzdCBzdGVwIGluIG9yZGVyIHRvIG1hbmlwdWxhdGUgdGhlIGRldmljZXMgaXMg dG8gbWFrZSBYZW4KPj4gYXdhcmUgb2YgdGhlbS4gRHVlIHRvIHRoZSBmYWN0IHRoYXQgYWxsIHRo ZSBoYXJkd2FyZSBkZXNjcmlwdGlvbiBvbgo+PiB4ODYgY29tZXMgZnJvbSBBQ1BJLCBEb20wIGlz IHJlc3BvbnNpYmxlIG9mIHBhcnNpbmcgdGhlIEFDUEkgdGFibGVzCj4+IGFuZCBub3RpZnkgWGVu IGFib3V0IHRoZSBkZXZpY2VzIGl0IGZpbmRzLiBUaGlzIGlzIGRvbmUgd2l0aCB0aGUKPj4gYFBI WVNERVZPUF9wY2lfZGV2aWNlX2FkZGAgaHlwZXJjYWxsLgo+Pgo+PiAqVE9ETyo6IGV4cGxhaW4g dGhlIHdheSB0byByZWdpc3RlciB0aGUgZGlmZmVyZW50IGtpbmRzIG9mIFBDSQo+PiBkZXZpY2Vz LCBsaWtlIGRldmljZXMgd2l0aCB2aXJ0dWFsIGZ1bmN0aW9ucy4KPj4KPj4gIyMgSW50ZXJydXB0 cyAjIwo+Pgo+PiBBbGwgaW50ZXJydXB0cyBvbiBQVkggZ3Vlc3RzIGFyZSByb3V0ZWQgb3ZlciBl dmVudCBjaGFubmVscywgc2VlCj4+IFtFdmVudCBDaGFubmVsIEludGVybmFsc11bZXZlbnRfY2hh bm5lbHNdIGZvciBtb3JlIGRldGFpbGVkCj4+IGluZm9ybWF0aW9uIGFib3V0IGV2ZW50IGNoYW5u ZWxzLiBJbiBvcmRlciB0byBpbmplY3QgaW50ZXJydXB0cyBpbnRvCj4+IHRoZSBndWVzdCBhbiBJ RFQgdmVjdG9yIGlzIHVzZWQuIFRoaXMgaXMgdGhlIHNhbWUgbWVjaGFuaXNtIHVzZWQgb24KPj4g UFZIVk0gZ3Vlc3RzLCBhbmQgYWxsb3dzIGhhdmluZyBwZXItY3B1IGludGVycnVwdHMgdGhhdCBj YW4gYmUgdXNlZAo+PiB0byBkZWxpdmVyIHRpbWVycyBvciBJUElzLgo+Pgo+PiBJbiBvcmRlciB0 byByZWdpc3RlciB0aGUgY2FsbGJhY2sgSURUIHZlY3RvciB0aGUgYEhWTU9QX3NldF9wYXJhbWAK Pj4gaHlwZXJjYWxsIGlzIHVzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHZhbHVlczoKPj4KPj4gICAg IGRvbWlkID0gRE9NSURfU0VMRgo+PiAgICAgaW5kZXggPSBIVk1fUEFSQU1fQ0FMTEJBQ0tfSVJR Cj4+ICAgICB2YWx1ZSA9ICgweDIgPDwgNTYpIHwgdmVjdG9yX3ZhbHVlCj4+Cj4+IEluIG9yZGVy IHRvIGtub3cgd2hpY2ggZXZlbnQgY2hhbm5lbCBoYXMgZmlyZWQsIHdlIG5lZWQgdG8gbG9vayBp bnRvCj4+IHRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBpbiB0aGUgYHNoYXJlZF9pbmZvYCBzdHJ1 Y3R1cmUuIFRoZQo+PiBgZXZ0Y2huX3BlbmRpbmdgIGFycmF5IGlzIHVzZWQgYXMgYSBiaXRtYXAg aW4gb3JkZXIgdG8gZmluZCBvdXQgd2hpY2gKPj4gZXZlbnQgY2hhbm5lbCBoYXMgZmlyZWQuIEV2 ZW50IGNoYW5uZWxzIGNhbiBhbHNvIGJlIG1hc2tlZCBieSBzZXR0aW5nCj4+IGl0J3MgcG9ydCB2 YWx1ZSBpbiB0aGUgYHNoYXJlZF9pbmZvLT5ldnRjaG5fbWFza2AgYml0bWFwLgo+Pgo+PiAqVE9E Tyo6IHByb3ZpZGUgYSByZWZlcmVuY2UgYWJvdXQgaG93IHRvIGludGVyYWN0IHdpdGggRklGTyBl dmVudAo+PiBjaGFubmVscz8KPj4KPj4gIyMjIEludGVycnVwdHMgZnJvbSBwaHlzaWNhbCBkZXZp Y2VzICMjIwo+Pgo+PiBXaGVuIHJ1bm5pbmcgYXMgRG9tMCAob3Igd2hlbiB1c2luZyBwY2ktcGFz c3Rocm91Z2gpIGludGVycnVwdHMgZnJvbQo+PiBwaHlzaWNhbCBkZXZpY2VzIGFyZSByb3V0ZWQg b3ZlciBldmVudCBjaGFubmVscy4gVGhlcmUgYXJlIDMKPj4gZGlmZmVyZW50IGtpbmQgb2YgcGh5 c2ljYWwgaW50ZXJydXB0cyB0aGF0IGNhbiBiZSByb3V0ZWQgb3ZlciBldmVudAo+PiBjaGFubmVs cyBieSBYZW46IElPIEFQSUMsIE1TSSBhbmQgTVNJLVggaW50ZXJydXB0cy4KPj4KPj4gU2luY2Ug cGh5c2ljYWwgaW50ZXJydXB0cyB1c3VhbGx5IG5lZWQgRU9JIChFbmQgT2YgSW50ZXJydXB0KSwg WGVuCj4+IGFsbG93cyB0aGUgcmVnaXN0cmF0aW9uIG9mIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHdp bGwgY29udGFpbiB3aGV0aGVyCj4+IGEgcGh5c2ljYWwgaW50ZXJydXB0IG5lZWRzIEVPSSBmcm9t IHRoZSBndWVzdCBvciBub3QuIFRoaXMgaXMgZG9uZQo+PiB3aXRoIHRoZSBgUEhZU0RFVk9QX3Bp cnFfZW9pX2dtZm5fdjJgIGh5cGVyY2FsbCB0aGF0IHRha2VzIGEKPj4gcGFyYW1ldGVyIGNvbnRh aW5pbmcgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBwYWdlIHRoYXQKPj4gd2ls bCBhY3QgYXMgYSBiaXRtYXAuIFRoZW4gaW4gb3JkZXIgdG8gZmluZCBvdXQgaWYgYW4gSVJRIG5l ZWRzIEVPSQo+PiBvciBub3QsIHRoZSBPUyBjYW4gcGVyZm9ybSBhIHNpbXBsZSBiaXQgdGVzdCBv biB0aGUgbWVtb3J5IHBhZ2UgdXNpbmcKPj4gdGhlIFBJUlEgdmFsdWUuCj4+Cj4+ICMjIyBJTyBB UElDIGludGVycnVwdCByb3V0aW5nICMjIwo+Pgo+PiBJTyBBUElDIGludGVycnVwdHMgY2FuIGJl IHJvdXRlZCBvdmVyIGV2ZW50IGNoYW5uZWxzIHVzaW5nIGBQSFlTREVWT1BgCj4+IGh5cGVyY2Fs bHMuIEZpcnN0IHRoZSBJUlEgaXMgcmVnaXN0ZXJlZCB1c2luZyB0aGUgYFBIWVNERVZPUF9tYXBf cGlycWAKPj4gaHlwZXJjYWxsLCBhcyBhbiBleGFtcGxlIElSUSM5IGlzIHVzZWQgaGVyZToKPj4K Pj4gICAgIGRvbWlkID0gRE9NSURfU0VMRgo+PiAgICAgdHlwZSA9IE1BUF9QSVJRX1RZUEVfR1NJ Cj4+ICAgICBpbmRleCA9IDkKPj4gICAgIHBpcnEgPSA5Cj4+Cj4+IEFmdGVyIHRoaXMgaHlwZXJj YWxsLCBgUEhZU0RFVk9QX2FsbG9jX2lycV92ZWN0b3JgIGlzIHVzZWQgdG8KPj4gYWxsb2NhdGUg YSB2ZWN0b3I6Cj4+Cj4+ICAgICBpcnEgPSA5Cj4+ICAgICB2ZWN0b3IgPSAwCj4+Cj4+ICpUT0RP KjogSSdtIG5vdCBzdXJlIHdoeSB3ZSBuZWVkIHRob3NlIHR3byBoeXBlcmNhbGxzLCBhbmQgaXQn cyB1c2FnZQo+PiBpcyBub3QgZG9jdW1lbnRlZCBhbnl3aGVyZS4gTmVlZCB0byBjbGFyaWZ5IHdo YXQgdGhlIHBhcmFtZXRlcnMgbWVhbgo+PiBhbmQgd2hhdCBlZmZlY3QgdGhleSBoYXZlLgo+Pgo+ PiBUaGUgSVJRIzkgaXMgbm93IHJlZ2lzdGVyZWQgYXMgUElSUSM5LiBUaGUgdHJpZ2dlcmluZyBh bmQgcG9sYXJpdHkKPj4gY2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYFBIWVNERVZP UF9zZXR1cF9nc2lgIGh5cGVyY2FsbDoKPj4KPj4gICAgIGdzaSA9IDkgIyBUaGlzIGlzIHRoZSBJ UlEgdmFsdWUuCj4+ICAgICB0cmlnZ2VyaW5nID0gMAo+PiAgICAgcG9sYXJpdHkgPSAwCj4+Cj4+ IEluIHRoaXMgZXhhbXBsZSB0aGUgSVJRIHdvdWxkIGJlIGNvbmZpZ3VyZWQgdG8gdXNlIGVkZ2Ug dHJpZ2dlcmluZwo+PiBhbmQgaGlnaCBwb2xhcml0eS4KPj4KPj4gRmluYWxseSB0aGUgUElSUSBj YW4gYmUgYm91bmQgdG8gYW4gZXZlbnQgY2hhbm5lbCB1c2luZyB0aGUKPj4gYEVWVENITk9QX2Jp bmRfcGlycWAsIHRoYXQgd2lsbCByZXR1cm4gdGhlIGV2ZW50IGNoYW5uZWwgcG9ydCB0aGUKPj4g UElSUSBoYXMgYmVlbiBhc3NpZ25lZC4gQWZ0ZXIgdGhpcyB0aGUgZXZlbnQgY2hhbm5lbCB3aWxs IGJlIHJlYWR5Cj4+IGZvciBkZWxpdmVyeS4KPj4KPj4gKk5PVEUqOiB3aGVuIHJ1bm5pbmcgYXMg RG9tMCwgdGhlIGd1ZXN0IGhhcyB0byBwYXJzZSB0aGUgaW50ZXJydXB0Cj4+IG92ZXJ3cml0ZXMg Zm91bmQgb24gdGhlIEFDUEkgdGFibGVzIGFuZCBub3RpZnkgWGVuIGFib3V0IHRoZW0uCj4+Cj4+ ICMjIyBNU0kgIyMjCj4+Cj4+IEluIG9yZGVyIHRvIGNvbmZpZ3VyZSBNU0kgaW50ZXJydXB0cyBm b3IgYSBkZXZpY2UsIFhlbiBtdXN0IGJlIG1hZGUKPj4gYXdhcmUgb2YgaXQncyBwcmVzZW5jZSBm aXJzdCBieSB1c2luZyB0aGUgYFBIWVNERVZPUF9wY2lfZGV2aWNlX2FkZGAKPj4gYXMgZGVzY3Jp YmVkIGFib3ZlLiBUaGVuIHRoZSBgUEhZU0RFVk9QX21hcF9waXJxYCBoeXBlcmNhbGwgaXMgdXNl ZDoKPj4KPj4gICAgIGRvbWlkID0gRE9NSURfU0VMRgo+PiAgICAgdHlwZSA9IE1BUF9QSVJRX1RZ UEVfTVNJX1NFRyBvciBNQVBfUElSUV9UWVBFX01VTFRJX01TSQo+PiAgICAgaW5kZXggPSAtMQo+ PiAgICAgcGlycSA9IC0xCj4+ICAgICBidXMgPSBwY2lfZGV2aWNlX2J1cwo+PiAgICAgZGV2Zm4g PSBwY2lfZGV2aWNlX2Z1bmN0aW9uCj4+ICAgICBlbnRyeV9uciA9IG51bWJlciBvZiBNU0kgaW50 ZXJydXB0cwo+Pgo+PiBUaGUgdHlwZSBoYXMgdG8gYmUgc2V0IHRvIGBNQVBfUElSUV9UWVBFX01T SV9TRUdgIGlmIG9ubHkgb25lIE1TSQo+PiBpbnRlcnJ1cHQgc291cmNlIGlzIGJlaW5nIGNvbmZp Z3VyZWQuIE9uIGRldmljZXMgdGhhdCBzdXBwb3J0IE1TSQo+PiBpbnRlcnJ1cHQgZ3JvdXBzIGBN QVBfUElSUV9UWVBFX01VTFRJX01TSWAgY2FuIGJlIHVzZWQgdG8gY29uZmlndXJlCj4+IHRoZW0g YnkgYWxzbyBwbGFjaW5nIHRoZSBudW1iZXIgb2YgTVNJIGludGVycnVwdHMgaW4gdGhlIGBlbnRy eV9ucmAKPj4gZmllbGQuCj4+Cj4+IFRoZSB2YWx1ZXMgaW4gdGhlIGBidXNgIGFuZCBgZGV2Zm5g IGZpZWxkIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUKPj4gb25lcyB1c2VkIHdoZW4gcmVnaXN0 ZXJpbmcgdGhlIGRldmljZSB3aXRoIGBQSFlTREVWT1BfcGNpX2RldmljZV9hZGRgLgo+Pgo+PiAj IyMgTVNJLVggIyMjCj4+Cj4+ICpUT0RPKjogaG93IHRvIHJlZ2lzdGVyL3VzZSB0aGVtLgo+Pgo+ PiAjIyBFdmVudCB0aW1lcnMgYW5kIHRpbWVjb3VudGVycyAjIwo+Pgo+PiBTaW5jZSBzb21lIGhh cmR3YXJlIGlzIG5vdCBhdmFpbGFibGUgb24gUFZIIChsaWtlIHRoZSBsb2NhbCBBUElDKSwKPj4g WGVuIHByb3ZpZGVzIHRoZSBPUyB3aXRoIHN1aXRhYmxlIHJlcGxhY2VtZW50cyBpbiBvcmRlciB0 byBnZXQgdGhlCj4+IHNhbWUgZnVuY3Rpb25hbGl0eS4gT25lIG9mIHRoZW0gaXMgdGhlIHRpbWVy IGludGVyZmFjZS4gVXNpbmcgYSBzZXQKPj4gb2YgaHlwZXJjYWxscywgYSBndWVzdCBPUyBjYW4g c2V0IGV2ZW50IHRpbWVycyB0aGF0IHdpbGwgZGVsaXZlciBhbmQKPj4gZXZlbnQgY2hhbm5lbCBp bnRlcnJ1cHQgdG8gdGhlIGd1ZXN0Lgo+Pgo+PiBJbiBvcmRlciB0byB1c2UgdGhlIHRpbWVyIHBy b3ZpZGVkIGJ5IFhlbiB0aGUgZ3Vlc3QgT1MgZmlyc3QgbmVlZHMgdG8KPj4gcmVnaXN0ZXIgYSBW SVJRIGV2ZW50IGNoYW5uZWwgdG8gYmUgdXNlZCBieSB0aGUgdGltZXIgdG8gZGVsaXZlciB0aGUK Pj4gaW50ZXJydXB0cy4gVGhlIGV2ZW50IGNoYW5uZWwgaXMgcmVnaXN0ZXJlZCB1c2luZyB0aGUK Pj4gYEVWVENITk9QX2JpbmRfdmlycWAgaHlwZXJjYWxsLCB0aGF0IG9ubHkgdGFrZXMgdHdvIHBh cmFtZXRlcnM6Cj4+Cj4+ICAgICB2aXJxID0gVklSUV9USU1FUgo+PiAgICAgdmNwdSA9IHZjcHVf aWQKPj4KPj4gVGhlIHBvcnQgdGhhdCdzIGdvaW5nIHRvIGJlIHVzZWQgYnkgWGVuIGluIG9yZGVy IHRvIGRlbGl2ZXIgdGhlCj4+IGludGVycnVwdCBpcyByZXR1cm5lZCBpbiB0aGUgYHBvcnRgIGZp ZWxkLiBPbmNlIHRoZSBpbnRlcnJ1cHQgaXMgc2V0LAo+PiB0aGUgdGltZXIgY2FuIGJlIHByb2dy YW1tZWQgdXNpbmcgdGhlIGBWQ1BVT1Bfc2V0X3NpbmdsZXNob3RfdGltZXJgCj4+IGh5cGVyY2Fs bC4KPj4KPj4gICAgIGZsYWdzID0gVkNQVV9TU0hPVFRNUl9mdXR1cmUKPj4gICAgIHRpbWVvdXRf YWJzX25zID0gYWJzb2x1dGUgdmFsdWUgd2hlbiB0aGUgdGltZXIgc2hvdWxkIGZpcmUKPj4KPj4g SXQgaXMgaW1wb3J0YW50IHRvIG5vdGljZSB0aGF0IHRoZSBgVkNQVU9QX3NldF9zaW5nbGVzaG90 X3RpbWVyYAo+PiBoeXBlcmNhbGwgbXVzdCBiZSBleGVjdXRlZCBmcm9tIHRoZSBzYW1lIHZDUFUg d2hlcmUgdGhlIHRpbWVyIHNob3VsZAo+PiBmaXJlLCBvciBlbHNlIFhlbiB3aWxsIHJlZnVzZSB0 byBzZXQgaXQuIFRoaXMgaXMgYSBzaW5nbGUtc2hvdCB0aW1lciwKPj4gc28gaXQgbXVzdCBiZSBz ZXQgYnkgdGhlIE9TIGV2ZXJ5IHRpbWUgaXQgZmlyZXMgaWYgYSBwZXJpb2RpYyB0aW1lcgo+PiBp cyBkZXNpcmVkLgo+Pgo+PiBYZW4gYWxzbyBzaGFyZXMgYSBtZW1vcnkgcmVnaW9uIHdpdGggdGhl IGd1ZXN0IE9TIHRoYXQgY29udGFpbnMgdGltZQo+PiByZWxhdGVkIHZhbHVlcyB0aGF0IGFyZSB1 cGRhdGVkIHBlcmlvZGljYWxseS4gVGhpcyB2YWx1ZXMgY2FuIGJlIHVzZWQKPj4gdG8gaW1wbGVt ZW50IGEgdGltZWNvdW50ZXIgb3IgdG8gb2J0YWluIHRoZSBjdXJyZW50IHRpbWUuIFRoaXMKPj4g aW5mb3JtYXRpb24gaXMgcGxhY2VkIGluc2lkZSBvZgo+PiBgc2hhcmVkX2luZm8tPnZjcHVfaW5m b1t2Y3B1X2lkXS50aW1lYC4gVGhlIHVwdGltZSAodGltZSBzaW5jZSB0aGUKPj4gZ3Vlc3QgaGFz IGJlZW4gbGF1bmNoZWQpIGNhbiBiZSBjYWxjdWxhdGVkIHVzaW5nIHRoZSBmb2xsb3dpbmcKPj4g ZXhwcmVzc2lvbiBhbmQgdGhlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIGB2Y3B1X3RpbWVfaW5mb2Ag c3RydWN0Ogo+Pgo+PiAgICAgc3lzdGVtX3RpbWUgKyAoKCgodHNjIC0gdHNjX3RpbWVzdGFtcCkg PDwgdHNjX3NoaWZ0KSAqCj4+IHRzY190b19zeXN0ZW1fbXVsKSA+PiAzMikKPj4KPj4gVGhlIHRp bWVvdXQgdGhhdCBpcyBwYXNzZWQgdG8gYFZDUFVPUF9zZXRfc2luZ2xlc2hvdF90aW1lcmAgaGFz IHRvIGJlCj4+IGNhbGN1bGF0ZWQgdXNpbmcgdGhlIGFib3ZlIHZhbHVlLCBwbHVzIHRoZSB0aW1l b3V0IHRoZSBzeXN0ZW0gd2FudHMKPj4gdG8gc2V0Lgo+Pgo+PiBJZiB0aGUgT1MgYWxzbyB3YW50 cyB0byBvYnRhaW4gdGhlIGN1cnJlbnQgd2FsbGNsb2NrIHRpbWUsIHRoZSB2YWx1ZQo+PiBjYWxj dWxhdGVkIGFib3ZlIGhhcyB0byBiZSBhZGRlZCB0byB0aGUgdmFsdWVzIGZvdW5kIGluCj4+IGBz aGFyZWRfaW5mby0+d2Nfc2VjYCBhbmQgYHNoYXJlZF9pbmZvLT53Y19uc2VjYC4KPiAKPiBBbGwg dGhlIGFib3ZlIGlzIGdyZWF0IGluZm8sIG5vdCBQVkggc3BlY2lmaWMgdGhvLiBNYXkgd2FubmEg bWVudGlvbgo+IGl0IGZ3aXcuIAo+IAo+PiAjIyBTTVAgZGlzY292ZXIgYW5kIGJyaW5nIHVwICMj Cj4+Cj4+IFRoZSBwcm9jZXNzIG9mIGJyaW5naW5nIHVwIHNlY29uZGFyeSBDUFVzIGlzIG9idmlv dXNseSBkaWZmZXJlbnQgZnJvbQo+PiBuYXRpdmUsIHNpbmNlIFBWSCBkb2Vzbid0IGhhdmUgYSBs b2NhbCBBUElDLiBUaGUgZmlyc3QgdGhpbmcgdG8gZG8gaXMKPj4gdG8gZmlndXJlIG91dCBob3cg bWFueSB2Q1BVcyB0aGUgZ3Vlc3QgaGFzLiBUaGlzIGlzIGRvbmUgdXNpbmcgdGhlCj4+IGBWQ1BV T1BfaXNfdXBgIGh5cGVyY2FsbCwgdXNpbmcgZm9yIGV4YW1wbGUgdGhpcyBzaW1wbGUgbG9vcDoK Pj4KPj4gICAgIGZvciAoaSA9IDA7IGkgPCBNQVhDUFU7IGkrKykgewo+PiAgICAgICAgIHJldCA9 IEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfaXNfdXAsIGksIE5VTEwpOwo+PiAgICAgICAgIGlm IChyZXQgPj0gMCkKPj4gICAgICAgICAgICAgLyogdkNQVSNpIGlzIHByZXNlbnQgKi8KPj4gICAg IH0KPj4KPj4gTm90ZSB0aGFuIHdoZW4gcnVubmluZyBhcyBEb20wLCB0aGUgQUNQSSB0YWJsZXMg bWlnaHQgcmVwb3J0IGEKPj4gZGlmZmVyZW50IG51bWJlciBvZiBhdmFpbGFibGUgQ1BVcy4gVGhp cyBpcyBiZWNhdXNlIHRoZSB2YWx1ZSBvbiB0aGUKPj4gQUNQSSB0YWJsZXMgaXMgdGhlIG51bWJl ciBvZiBwaHlzaWNhbCBDUFVzIHRoZSBob3N0IGhhcywgYW5kIGl0IG1pZ2h0Cj4+IGJlYXIgbm8g cmVzZW1ibGFuY2Ugd2l0aCB0aGUgbnVtYmVyIG9mIHZDUFVzIERvbTAgYWN0dWFsbHkgaGFzIHNv IGl0Cj4+IHNob3VsZCBiZSBpZ25vcmVkLgo+Pgo+PiBJbiBvcmRlciB0byBicmluZyB1cCB0aGUg c2Vjb25kYXJ5IHZDUFVzIHRoZXkgbXVzdCBiZSBjb25maWd1cmVkCj4+IGZpcnN0LiBUaGlzIGlz IGFjaGlldmVkIHVzaW5nIHRoZSBgVkNQVU9QX2luaXRpYWxpc2VgIGh5cGVyY2FsbC4gQQo+PiB2 YWxpZCBjb250ZXh0IGhhcyB0byBiZSBwYXNzZWQgdG8gdGhlIHZDUFUgaW4gb3JkZXIgdG8gYm9v dC4gVGhlCj4+IHJlbGV2YW50IGZpZWxkcyBmb3IgUFZIIGd1ZXN0cyBhcmUgdGhlIGZvbGxvd2lu ZzoKPj4KPj4gICAqIGBmbGFnc2A6IGNvbnRhaW5zIFZHQ0ZfKiBmbGFncyAoc2VlIGBhcmNoLXg4 Ni94ZW4uaGAgcHVibGljCj4+IGhlYWRlcikuCj4+ICAgKiBgdXNlcl9yZWdzYDogc3RydWN0IHRo YXQgY29udGFpbnMgdGhlIHJlZ2lzdGVyIHZhbHVlcyB0aGF0IHdpbGwKPj4gYmUgc2V0IG9uIHRo ZSB2Q1BVIGJlZm9yZSBib290aW5nLiBUaGUgbW9zdCByZWxldmFudCBvbmVzIGFyZSBgcmlwYAo+ PiBhbmQgYHJzcGAgaW4gb3JkZXIgdG8gc2V0IHRoZSBzdGFydCBhZGRyZXNzIGFuZCB0aGUgc3Rh Y2suCj4+ICAgKiBgY3RybHJlZ1szXWA6IGNvbnRhaW5zIHRoZSBhZGRyZXNzIG9mIHRoZSBwYWdl IHRhYmxlcyB0aGF0IHdpbGwKPj4gYmUgdXNlZCBieSB0aGUgdkNQVS4KPj4KPj4gQWZ0ZXIgdGhl IHZDUFUgaXMgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgcHJvcGVyIHZhbHVlcywgaXQgY2FuIGJlCj4+ IHN0YXJ0ZWQgYnkgdXNpbmcgdGhlIGBWQ1BVT1BfdXBgIGh5cGVyY2FsbC4gVGhlIHZhbHVlcyBv ZiB0aGUgb3RoZXIKPj4gY29udHJvbCByZWdpc3RlcnMgb2YgdGhlIHZDUFUgd2lsbCBiZSB0aGUg c2FtZSBhcyB0aGUgb25lcyBkZXNjcmliZWQKPj4gaW4gdGhlIGBjb250cm9sIHJlZ2lzdGVyc2Ag c2VjdGlvbi4KPiAKPiBJZiB5b3Ugd2FudCwgeW91IGNvdWxkIHB1dCBsaW51eCByZWZlcmVuY2Ug aGVyZToKPiAKPiBGb3IgYW4gZXhhbXBsZSwgcGxlYXNlIHNlZSBjcHVfaW5pdGlhbGl6ZV9jb250 ZXh0KCkgaW4gYXJjaC94ODYveGVuL3NtcC5jCj4gaW4gbGludXguCgpEb25lLCB0aGFua3MgZm9y IHRoZSBjb21tZW50cy4KCj4+ICMjIENvbnRyb2wgb3BlcmF0aW9ucyAocmVib290L3NodXRkb3du KSAjIwo+Pgo+PiBSZWJvb3QgYW5kIHNodXRkb3duIG9wZXJhdGlvbnMgb24gUFZIIGd1ZXN0cyBh cmUgcGVyZm9ybWVkIHVzaW5nCj4+IGh5cGVyY2FsbHMuIEluIG9yZGVyIHRvIGlzc3VlIGEgcmVi b290LCBhIGd1ZXN0IG11c3QgdXNlIHRoZQo+PiBgU0hVVERPV05fcmVib290YCBoeXBlcmNhbGwu IEluIG9yZGVyIHRvIHBlcmZvcm0gYSBwb3dlciBvZmYgZnJvbSBhCj4+IGd1ZXN0IERvbVUsIHRo ZSBgU0hVVERPV05fcG93ZXJvZmZgIGh5cGVyY2FsbCBzaG91bGQgYmUgdXNlZC4KPj4KPj4gVGhl IHdheSB0byBwZXJmb3JtIGEgZnVsbCBzeXN0ZW0gcG93ZXIgb2ZmIGZyb20gRG9tMCBpcyBkaWZm ZXJlbnQKPj4gdGhhbiB3aGF0J3MgZG9uZSBpbiBhIERvbVUgZ3Vlc3QuIEluIG9yZGVyIHRvIHBl cmZvcm0gYSBwb3dlciBvZmYKPj4gZnJvbSBEb20wIHRoZSBuYXRpdmUgQUNQSSBwYXRoIHNob3Vs ZCBiZSBmb2xsb3dlZCwgYnV0IHRoZSBndWVzdAo+PiBzaG91bGQgbm90IHdyaXRlIHRoZSBTTFBf RU4gYml0IHRvIHRoZSBQbTFDb250cm9sIHJlZ2lzdGVyLiBJbnN0ZWFkCj4+IHRoZSBgWEVOUEZf ZW50ZXJfYWNwaV9zbGVlcGAgaHlwZXJjYWxsIHNob3VsZCBiZSB1c2VkLCBmaWxsaW5nIHRoZQo+ PiBmb2xsb3dpbmcgZGF0YSBpbiB0aGUgYHhlbl9wbGF0Zm9ybV9vcGAgc3RydWN0Ogo+Pgo+PiAg ICAgY21kID0gWEVOUEZfZW50ZXJfYWNwaV9zbGVlcAo+PiAgICAgaW50ZXJmYWNlX3ZlcnNpb24g PSBYRU5QRl9JTlRFUkZBQ0VfVkVSU0lPTgo+PiAgICAgdS5lbnRlcl9hY3BpX3NsZWVwLnBtMWFf Y250X3ZhbCA9IFBtMWFDb250cm9sVmFsdWUKPj4gICAgIHUuZW50ZXJfYWNwaV9zbGVlcC5wbTFi X2NudF92YWwgPSBQbTFiQ29udHJvbFZhbHVlCj4+Cj4+IFRoaXMgd2lsbCBhbGxvdyBYZW4gdG8g ZG8gaXQncyBjbGVhbiB1cCBhbmQgdG8gcG93ZXIgb2ZmIHRoZSBzeXN0ZW0uCj4+IElmIHRoZSBo b3N0IGlzIHVzaW5nIGhhcmR3YXJlIHJlZHVjZWQgQUNQSSwgdGhlIGZvbGxvd2luZyBmaWVsZAo+ PiBzaG91bGQgYWxzbyBiZSBzZXQ6Cj4+Cj4+ICAgICB1LmVudGVyX2FjcGlfc2xlZXAuZmxhZ3Mg PSBYRU5QRl9BQ1BJX1NMRUVQX0VYVEVOREVEICgweDEpCj4+Cj4+ICMjIENQVUlEICMjCj4+Cj4+ ICpURE9EKjogZGVzY3JpYmUgd2hpY2ggY3B1aWQgZmxhZ3MgYSBndWVzdCBzaG91bGQgaWdub3Jl IGFuZCBhbHNvCj4+IHdoaWNoIGZsYWdzIGRlc2NyaWJlIGZlYXR1cmVzIGNhbiBiZSB1c2VkLiBJ dCB3b3VsZCBhbHNvIGJlIGdvb2QgdG8KPj4gZGVzY3JpYmUgdGhlIHNldCBvZiBjcHVpZCBmbGFn cyB0aGF0IHdpbGwgYWx3YXlzIGJlIHByZXNlbnQgd2hlbgo+PiBydW5uaW5nIGFzIFBWSC4KPj4K Pj4gIyMgRmluYWwgbm90ZXMgIyMKPj4KPj4gQWxsIHRoZSBvdGhlciBoYXJkd2FyZSBmdW5jdGlv bmFsaXR5IG5vdCBkZXNjcmliZWQgaW4gdGhpcyBkb2N1bWVudAo+PiBzaG91bGQgYmUgYXNzdW1l ZCB0byBiZSBwZXJmb3JtZWQgaW4gdGhlIHNhbWUgd2F5IGFzIG5hdGl2ZS4KPj4KPj4gW2V2bmV0 X2NoYW5uZWxzXTogaHR0cDovL3dpa2kueGVuLm9yZy93aWtpL0V2ZW50X0NoYW5uZWxfSW50ZXJu YWxzCj4gCj4gCj4gR3JlYXQgd29yayBSb2dlciEgVGhhbmtzIGEgbG90IGZvciB3cml0aW5nIGl0 Lgo+IAo+IE11a2VzaAo+IAo+IAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==