From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v3] docs: add PVH specification Date: Thu, 18 Sep 2014 19:19:24 +0200 Message-ID: <1411060764-4016-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1XUfMh-0008DE-I9 for xen-devel@lists.xenproject.org; Thu, 18 Sep 2014 17:19:31 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: David Vrabel , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgZG9jdW1lbnQgdGhhdCBkZXNjcmliZXMgdGhlIGludGVyZmFjZXMgdXNlZCBv biBQVkguIFRoaXMKZG9jdW1lbnQgaGFzIGJlZW4gZGVzaWduZWQgZnJvbSBhIGd1ZXN0IE9TIHBv aW50IG9mIHZpZXcgKGkuZS46IHdoYXQgYSBndWVzdApuZWVkcyB0byBkbyBpbiBvcmRlciB0byBz dXBwb3J0IFBWSCkuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVA Y2l0cml4LmNvbT4KQWNrZWQtYnk6IERhdmlkIFZyYWJlbCA8ZGF2aWQudnJhYmVsQGNpdHJpeC5j b20+CkNjOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNjOiBNdWtlc2ggUmF0aG9y IDxtdWtlc2gucmF0aG9yQG9yYWNsZS5jb20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtv bnJhZC53aWxrQG9yYWNsZS5jb20+CkNjOiBEYXZpZCBWcmFiZWwgPGRhdmlkLnZyYWJlbEBjaXRy aXguY29tPgotLS0KVGhlIGRvY3VtZW50IGlzIHN0aWxsIGZhciBmcm9tIGNvbXBsZXRlIElNSE8s IGJ1dCBpdCBtaWdodCBiZSBiZXN0IHRvIGp1c3QKY29tbWl0IHdoYXQgd2UgY3VycmVudGx5IGhh dmUgcmF0aGVyIHRoYW4gd2FpdCBmb3IgYSBmdWxsIGRvY3VtZW50LgoKSSB3aWxsIHRyeSB0byBm aWxsIHRoZSBnYXBzIGFzIEkgZ28gaW1wbGVtZW50aW5nIG5ldyBmZWF0dXJlcyBvbiBGcmVlQlNE LgoKSSd2ZSByZXRhaW5lZCBEYXZpZCdzIEFjayBmcm9tIHYyIGluIHRoaXMgdmVyc2lvbi4KLS0t CiBkb2NzL21pc2MvcHZoLm1hcmtkb3duIHwgMzY3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAzNjcgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvY3MvbWlzYy9wdmgubWFya2Rvd24KCmRpZmYgLS1naXQg YS9kb2NzL21pc2MvcHZoLm1hcmtkb3duIGIvZG9jcy9taXNjL3B2aC5tYXJrZG93bgpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjBlZGU3Ci0tLSAvZGV2L251bGwKKysrIGIv ZG9jcy9taXNjL3B2aC5tYXJrZG93bgpAQCAtMCwwICsxLDM2NyBAQAorIyBQVkggU3BlY2lmaWNh dGlvbiAjCisKKyMjIFJhdGlvbmFsZSAjIworCitQVkggaXMgYSBuZXcga2luZCBvZiBndWVzdCB0 aGF0IGhhcyBiZWVuIGludHJvZHVjZWQgb24gWGVuIDQuNCBhcyBhIERvbVUsIGFuZAorb24gWGVu IDQuNSBhcyBhIERvbTAuIFRoZSBhaW0gb2YgUFZIIGlzIHRvIG1ha2UgdXNlIG9mIHRoZSBoYXJk d2FyZQordmlydHVhbGl6YXRpb24gZXh0ZW5zaW9ucyBwcmVzZW50IGluIG1vZGVybiB4ODYgQ1BV cyBpbiBvcmRlciB0bworaW1wcm92ZSBwZXJmb3JtYW5jZS4KKworUFZIIGlzIGNvbnNpZGVyZWQg YSBtaXggYmV0d2VlbiBQViBhbmQgSFZNLCBhbmQgY2FuIGJlIHNlZW4gYXMgYSBQViBndWVzdAor dGhhdCBydW5zIGluc2lkZSBvZiBhbiBIVk0gY29udGFpbmVyLCBvciBhcyBhIFBWSFZNIGd1ZXN0 IHdpdGhvdXQgYW55IGVtdWxhdGVkCitkZXZpY2VzLiBUaGUgZGVzaWduIGdvYWwgb2YgUFZIIGlz IHRvIHByb3ZpZGUgdGhlIGJlc3QgcGVyZm9ybWFuY2UgcG9zc2libGUgYW5kCit0byByZWR1Y2Ug dGhlIGFtb3VudCBvZiBtb2RpZmljYXRpb25zIG5lZWRlZCBmb3IgYSBndWVzdCBPUyB0byBydW4g aW4gdGhpcyBtb2RlCisoY29tcGFyZWQgdG8gcHVyZSBQVikuCisKK1RoaXMgZG9jdW1lbnQgdHJp ZXMgdG8gZGVzY3JpYmUgdGhlIGludGVyZmFjZXMgdXNlZCBieSBQVkggZ3Vlc3RzLCBmb2N1c2lu Zworb24gaG93IGFuIE9TIHNob3VsZCBtYWtlIHVzZSBvZiB0aGVtIGluIG9yZGVyIHRvIHN1cHBv cnQgUFZILgorCisjIyBFYXJseSBib290ICMjCisKK1BWSCBndWVzdHMgdXNlIHRoZSBQViBib290 IG1lY2hhbmlzbSwgdGhhdCBtZWFucyB0aGF0IHRoZSBrZXJuZWwgaXMgbG9hZGVkIGFuZAorZGly ZWN0bHkgbGF1bmNoZWQgYnkgWGVuIChieSBqdW1waW5nIGludG8gdGhlIGVudHJ5IHBvaW50KS4g SW4gb3JkZXIgdG8gZG8gdGhpcworWGVuIEVMRiBOb3RlcyBuZWVkIHRvIGJlIGFkZGVkIHRvIHRo ZSBndWVzdCBrZXJuZWwsIHNvIHRoYXQgdGhleSBjb250YWluIHRoZQoraW5mb3JtYXRpb24gbmVl ZGVkIGJ5IFhlbi4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIHRoZSBFTEYgTm90ZXMgYWRkZWQgdG8g dGhlCitGcmVlQlNEIGFtZDY0IGtlcm5lbCBpbiBvcmRlciB0byBib290IGFzIFBWSDoKKworICAg IEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9HVUVTVF9PUywgICAgICAgLmFzY2l6LCAiRnJlZUJT RCIpCisgICAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX0dVRVNUX1ZFUlNJT04sICAuYXNjaXos IF9fWFNUUklORyhfX0ZyZWVCU0RfdmVyc2lvbikpCisgICAgRUxGTk9URShYZW4sIFhFTl9FTEZO T1RFX1hFTl9WRVJTSU9OLCAgICAuYXNjaXosICJ4ZW4tMy4wIikKKyAgICBFTEZOT1RFKFhlbiwg WEVOX0VMRk5PVEVfVklSVF9CQVNFLCAgICAgIC5xdWFkLCAgS0VSTkJBU0UpCisgICAgRUxGTk9U RShYZW4sIFhFTl9FTEZOT1RFX1BBRERSX09GRlNFVCwgICAucXVhZCwgIEtFUk5CQVNFKQorICAg IEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9FTlRSWSwgICAgICAgICAgLnF1YWQsICB4ZW5fc3Rh cnQpCisgICAgRUxGTk9URShYZW4sIFhFTl9FTEZOT1RFX0hZUEVSQ0FMTF9QQUdFLCAucXVhZCwg IGh5cGVyY2FsbF9wYWdlKQorICAgIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9IVl9TVEFSVF9M T1csICAgLnF1YWQsICBIWVBFUlZJU09SX1ZJUlRfU1RBUlQpCisgICAgRUxGTk9URShYZW4sIFhF Tl9FTEZOT1RFX0ZFQVRVUkVTLCAgICAgICAuYXNjaXosICJ3cml0YWJsZV9kZXNjcmlwdG9yX3Rh Ymxlc3xhdXRvX3RyYW5zbGF0ZWRfcGh5c21hcHxzdXBlcnZpc29yX21vZGVfa2VybmVsfGh2bV9j YWxsYmFja192ZWN0b3IiKQorICAgIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9QQUVfTU9ERSwg ICAgICAgLmFzY2l6LCAieWVzIikKKyAgICBFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfTDFfTUZO X1ZBTElELCAgIC5sb25nLCAgUEdfViwgUEdfVikKKyAgICBFTEZOT1RFKFhlbiwgWEVOX0VMRk5P VEVfTE9BREVSLCAgICAgICAgIC5hc2NpeiwgImdlbmVyaWMiKQorICAgIEVMRk5PVEUoWGVuLCBY RU5fRUxGTk9URV9TVVNQRU5EX0NBTkNFTCwgLmxvbmcsICAwKQorICAgIEVMRk5PVEUoWGVuLCBY RU5fRUxGTk9URV9CU0RfU1lNVEFCLCAgICAgLmFzY2l6LCAieWVzIikKKworT24gdGhlIGxpbnV4 IHNpZGUsIHRoZSBhYm92ZSBjYW4gYmUgZm91bmQgaW4gYGFyY2gveDg2L3hlbi94ZW4taGVhZC5T YC4KKworSXQgaXMgaW1wb3J0YW50IHRvIGhpZ2hsaWdodCB0aGUgZm9sbG93aW5nIG5vdGVzOgor CisgICogYFhFTl9FTEZOT1RFX0VOVFJZYDogY29udGFpbnMgdGhlIHZpcnR1YWwgbWVtb3J5IGFk ZHJlc3Mgb2YgdGhlIGtlcm5lbCBlbnRyeQorICAgIHBvaW50LgorICAqIGBYRU5fRUxGTk9URV9I WVBFUkNBTExfUEFHRWA6IGNvbnRhaW5zIHRoZSB2aXJ0dWFsIG1lbW9yeSBhZGRyZXNzIG9mIHRo ZQorICAgIGh5cGVyY2FsIHBhZ2UgaW5zaWRlIG9mIHRoZSBndWVzdCBrZXJuZWwgKHRoaXMgbWVt b3J5IHJlZ2lvbiB3aWxsIGJlIGZpbGxlZAorICAgIGJ5IFhlbiBwcmlvciB0byBib290aW5nKS4K KyAgKiBgWEVOX0VMRk5PVEVfRkVBVFVSRVNgOiBjb250YWlucyB0aGUgbGlzdCBvZiBmZWF0dXJl cyBzdXBwb3J0ZWQgYnkgdGhlIGtlcm5lbC4KKyAgICBJbiB0aGUgZXhhbXBsZSBhYm92ZSB0aGUg a2VybmVsIGlzIG9ubHkgYWJsZSB0byBib290IGFzIGEgUFZIIGd1ZXN0LCBidXQKKyAgICB0aG9z ZSBvcHRpb25zIGNhbiBiZSBtaXhlZCB3aXRoIHRoZSBvbmVzIHVzZWQgYnkgcHVyZSBQViBndWVz dHMgaW4gb3JkZXIgdG8KKyAgICBoYXZlIGEga2VybmVsIHRoYXQgc3VwcG9ydHMgYm90aCBQViBh bmQgUFZIIChsaWtlIExpbnV4KS4gVGhlIGxpc3Qgb2YKKyAgICBvcHRpb25zIGF2YWlsYWJsZSBj YW4gYmUgZm91bmQgaW4gdGhlIGBmZWF0dXJlcy5oYCBwdWJsaWMgaGVhZGVyLgorCitYZW4gd2ls bCBqdW1wIGludG8gdGhlIGtlcm5lbCBlbnRyeSBwb2ludCBkZWZpbmVkIGluIGBYRU5fRUxGTk9U RV9FTlRSWWAgd2l0aAorcGFnaW5nIGVuYWJsZWQgKGVpdGhlciBsb25nIG1vZGUgb3IgcHJvdGVj dGVkIG1vZGUgd2l0aCBwYWdpbmcgdHVybmVkIG9uCitkZXBlbmRpbmcgb24gdGhlIGtlcm5lbCBi aXRuZXNzKSBhbmQgc29tZSBiYXNpYyBwYWdlIHRhYmxlcyBzZXR1cC4gQW4gaW1wb3J0YW50Citk aXN0aW5jdGlvbiBmb3IgYSA2NGJpdCBQVkggaXMgdGhhdCBpdCBpcyBsYXVuY2hlZCBhdCBwcml2 aWxlZ2UgbGV2ZWwgMCBhcworb3Bwb3NlZCB0byBhIDY0Yml0IFBWIGd1ZXN0IHdoaWNoIGlzIGxh dW5jaGVkIGF0IHByaXZpbGVnZSBsZXZlbCAzLgorCitBbHNvLCB0aGUgYHJzaWAgKGBlc2lgIG9u IDMyYml0cykgcmVnaXN0ZXIgaXMgZ29pbmcgdG8gY29udGFpbiB0aGUgdmlydHVhbAorbWVtb3J5 IGFkZHJlc3Mgd2VyZSBYZW4gaGFzIHBsYWNlZCB0aGUgYHN0YXJ0X2luZm9gIHN0cnVjdHVyZS4g VGhlIGByc3BgIChgZXNwYAorb24gMzJiaXRzKSB3aWxsIHBvaW50IHRvIHRoZSB0b3Agb2YgYW4g aW5pdGlhbCBzaW5nbGUgcGFnZSBzdGFjaywgdGhhdCBjYW4gYmUKK3VzZWQgYnkgdGhlIGd1ZXN0 IGtlcm5lbC4gVGhlIGBzdGFydF9pbmZvYCBzdHJ1Y3R1cmUgY29udGFpbnMgYWxsIHRoZSBpbmZv IHRoZQorZ3Vlc3QgbmVlZHMgaW4gb3JkZXIgdG8gaW5pdGlhbGl6ZS4gTW9yZSBpbmZvcm1hdGlv biBhYm91dCB0aGUgY29udGVudHMgY2FuIGJlCitmb3VuZCBvbiB0aGUgYHhlbi5oYCBwdWJsaWMg aGVhZGVyLgorCisjIyMgSW5pdGlhbCBhbWQ2NCBjb250cm9sIHJlZ2lzdGVycyB2YWx1ZXMgIyMj CisKK0luaXRpYWwgdmFsdWVzIGZvciB0aGUgY29udHJvbCByZWdpc3RlcnMgYXJlIHNldCB1cCBi eSBYZW4gYmVmb3JlIGJvb3RpbmcgdGhlCitndWVzdCBrZXJuZWwuIFRoZSBndWVzdCBrZXJuZWwg Y2FuIGV4cGVjdCB0byBmaW5kIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXMKK2VuYWJsZWQgYnkgWGVu LgorCitgQ1IwYCBoYXMgdGhlIGZvbGxvd2luZyBiaXRzIHNldCBieSBYZW46CisKKyAgKiBQRSAo Yml0IDApOiBwcm90ZWN0ZWQgbW9kZSBlbmFibGUuCisgICogRVQgKGJpdCA0KTogMzg3IG9yIG5l d2VyIHByb2Nlc3Nvci4KKyAgKiBQRyAoYml0IDMxKTogcGFnaW5nIGVuYWJsZWQuCisKK2BDUjRg IGhhcyB0aGUgZm9sbG93aW5nIGJpdHMgc2V0IGJ5IFhlbjoKKworICAqIFBBRSAoYml0IDUpOiBQ QUUgZW5hYmxlZC4KKworQW5kIGZpbmFsbHkgaW4gYEVGRVJgIHRoZSBmb2xsb3dpbmcgZmVhdHVy ZXMgYXJlIGVuYWJsZWQ6CisKKyAgKiBMTUUgKGJpdCA4KTogTG9uZyBtb2RlIGVuYWJsZS4KKyAg KiBMTUEgKGJpdCAxMCk6IExvbmcgbW9kZSBhY3RpdmUuCisKK0F0IGxlYXN0IHRoZSBmb2xsb3dp bmcgZmxhZ3MgaW4gYEVGRVJgIGFyZSBndWFyYW50ZWVkIHRvIGJlIGRpc2FibGVkOgorCisgICog U0NFIChiaXQgMCk6IFN5c3RlbSBjYWxsIGV4dGVuc2lvbnMgZGlzYWJsZWQuCisgICogTlhFIChi aXQgMTEpOiBOby1FeGVjdXRlIGRpc2FibGVkLgorCitUaGVyZSdzIG5vIGd1YXJhbnRlZSBhYm91 dCB0aGUgc3RhdGUgb2YgdGhlIG90aGVyIGJpdHMgaW4gdGhlIGBFRkVSYCByZWdpc3Rlci4KKwor QWxsIHRoZSBzZWdtZW50cyBzZWxlY3RvcnMgYXJlIHNldCB3aXRoIGEgZmxhdCBiYXNlIGF0IHpl cm8uCisKK1RoZSBgY3NgIHNlZ21lbnQgc2VsZWN0b3IgYXR0cmlidXRlcyBhcmUgc2V0IHRvIDB4 MGEwOWIsIHdoaWNoIGRlc2NyaWJlcyBhbgorZXhlY3V0YWJsZSBhbmQgcmVhZGFibGUgY29kZSBz ZWdtZW50IG9ubHkgYWNjZXNzaWJsZSBieSB0aGUgbW9zdCBwcml2aWxlZ2VkCitsZXZlbC4gVGhl IHNlZ21lbnQgaXMgYWxzbyBzZXQgYXMgYSA2NC1iaXQgY29kZSBzZWdtZW50IChgTGAgZmxhZyBz ZXQsIGBEYCBmbGFnCit1bnNldCkuCisKK1RoZSByZW1haW5pbmcgc2VnbWVudCBzZWxlY3RvcnMg KGBkc2AsIGBzc2AsIGBlc2AsIGBmc2AgYW5kIGBnc2ApIGFyZSBhbGwgc2V0Cit0byB0aGUgc2Ft ZSB2YWx1ZXMuIFRoZSBhdHRyaWJ1dGVzIGFyZSBzZXQgdG8gMHgwYzA5Mywgd2hpY2ggaW1wbGll cyBhIHJlYWQgYW5kCit3cml0ZSBkYXRhIHNlZ21lbnQgb25seSBhY2Nlc3NpYmxlIGJ5IHRoZSBt b3N0IHByaXZpbGVnZWQgbGV2ZWwuCisKK1RoZSBgRlMuYmFzZWAgYW5kIGBHUy5iYXNlYCBNU1Jz IGFyZSB6ZXJvZWQgb3V0LgorCitUaGUgYElEVGAgYW5kIGBHRFRgIGFyZSBhbHNvIHplcm9lZCwg c28gdGhlIGd1ZXN0IG11c3QgYmUgc3BlY2lhbGx5IGNhcmVmdWwgdG8KK25vdCB0cmlnZ2VyIGEg ZmF1bHQgdW50aWwgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gcHJvcGVybHkgc2V0LiBUaGUgd2F5IG9m IHNldHRpbmcKK3RoZSBJRFQgYW5kIHRoZSBHRFQgaXMgdXNpbmcgdGhlIG5hdGl2ZSBpbnN0cnVj dGlvbnMgYXMgd291bGQgYmUgZG9uZSBvbiBiYXJlCittZXRhbC4KKworVGhlIGBSRkxBR1NgIHJl Z2lzdGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgY2xlYXIgd2hlbiBqdW1waW5nIGludG8gdGhlIGtl cm5lbAorZW50cnkgcG9pbnQsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0aGUgcmVzZXJ2ZWQgYml0 IDEgc2V0LgorCisjIyBNZW1vcnkgIyMKKworU2luY2UgUFZIIGd1ZXN0cyByZWx5IG9uIHZpcnR1 YWxpemF0aW9uIGV4dGVuc2lvbnMgcHJvdmlkZWQgYnkgdGhlIENQVSwgdGhleQoraGF2ZSBhY2Nl c3MgdG8gYSBoYXJkd2FyZSB2aXJ0dWFsaXplZCBNTVUsIHdoaWNoIG1lYW5zIHBhZ2UtdGFibGUg cmVsYXRlZAorb3BlcmF0aW9ucyBzaG91bGQgdXNlIHRoZSBzYW1lIGluc3RydWN0aW9ucyB1c2Vk IG9uIG5hdGl2ZS4KKworVGhlcmUgYXJlIGhvd2V2ZXIgc29tZSBkaWZmZXJlbmNlcyB3aXRoIG5h dGl2ZS4gVGhlIHVzYWdlIG9mIG5hdGl2ZSBNVFJSCitvcGVyYXRpb25zIGlzIGZvcmJpZGRlbiwg YW5kIGBYRU5QRl8qX21lbXR5cGVgIGh5cGVyY2FsbHMgc2hvdWxkIGJlIHVzZWQKK2luc3RlYWQu IFRoaXMgY2FuIGJlIGF2b2lkZWQgYnkgc2ltcGx5IG5vdCB1c2luZyBNVFJSIGFuZCBzZXR0aW5n IGFsbCB0aGUKK21lbW9yeSBhdHRyaWJ1dGVzIHVzaW5nIFBBVCwgd2hpY2ggZG9lc24ndCByZXF1 aXJlIHRoZSB1c2FnZSBvZiBhbnkgaHlwZXJjYWxscy4KKworU2luY2UgUFZIIGRvZXNuJ3QgdXNl IGEgQklPUyBpbiBvcmRlciB0byBib290LCB0aGUgcGh5c2ljYWwgbWVtb3J5IG1hcCBoYXMKK3Rv IGJlIHJldHJpZXZlZCB1c2luZyB0aGUgYFhFTk1FTV9tZW1vcnlfbWFwYCBoeXBlcmNhbGwsIHdo aWNoIHdpbGwgcmV0dXJuCithbiBlODIwIG1hcC4gVGhpcyBtZW1vcnkgbWFwIG1pZ2h0IGNvbnRh aW4gaG9sZXMgdGhhdCBkZXNjcmliZSBNTUlPIHJlZ2lvbnMsCit0aGF0IHdpbGwgYmUgYWxyZWFk eSBzZXR1cCBieSBYZW4uCisKKypUT0RPKjogd2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdG8g ZG8gd2l0aCBNTUlPIHJlZ2lvbnMsIHJpZ2h0IG5vdyBYZW4KK3NldHMgYWxsIHRoZSBob2xlcyBp biB0aGUgbmF0aXZlIGU4MjAgdG8gTU1JTyByZWdpb25zIGZvciBEb20wIHVwIHRvIDRHQi4gV2UK K25lZWQgdG8gZGVjaWRlIHdoYXQgdG8gZG8gd2l0aCBNTUlPIHJlZ2lvbnMgYWJvdmUgNEdCIG9u IERvbTAsIGFuZCB3aGF0IHRvIGRvCitmb3IgUFZIIERvbVVzIHdpdGggcGNpLXBhc3N0aHJvdWdo LgorCitJbiB0aGUgY2FzZSBvZiBhIGd1ZXN0IHN0YXJ0ZWQgd2l0aCBtZW1vcnkgIT0gbWF4bWVt LCB0aGUgZTgyMCBtZW1vcnkgbWFwCityZXR1cm5lZCBieSBYZW4gd2lsbCBjb250YWluIHRoZSBt ZW1vcnkgdXAgdG8gbWF4bWVtLiBUaGUgZ3Vlc3QgaGFzIHRvIGJlIHZlcnkKK2NhcmVmdWwgdG8g b25seSB1c2UgdGhlIGxvd2VyIG1lbW9yeSBwYWdlcyB1cCB0byB0aGUgdmFsdWUgY29udGFpbmVk IGluCitgc3RhcnRfaW5mby0+bnJfcGFnZXNgIGJlY2F1c2UgYW55IG1lbW9yeSBwYWdlIGFib3Zl IHRoYXQgdmFsdWUgd2lsbCBub3QgYmUKK3BvcHVsYXRlZC4KKworIyMgUGh5c2ljYWwgZGV2aWNl cyAjIworCitXaGVuIHJ1bm5pbmcgYXMgRG9tMCB0aGUgZ3Vlc3QgT1MgaGFzIHRoZSBhYmlsaXR5 IHRvIGludGVyYWN0IHdpdGggdGhlIHBoeXNpY2FsCitkZXZpY2VzIHByZXNlbnQgaW4gdGhlIHN5 c3RlbS4gQSBub3RlIHNob3VsZCBiZSBtYWRlIHRoYXQgUFZIIGd1ZXN0cyByZXF1aXJlCithIHdv cmtpbmcgSU9NTVUgaW4gb3JkZXIgdG8gaW50ZXJhY3Qgd2l0aCBwaHlzaWNhbCBkZXZpY2VzLgor CitUaGUgZmlyc3Qgc3RlcCBpbiBvcmRlciB0byBtYW5pcHVsYXRlIHRoZSBkZXZpY2VzIGlzIHRv IG1ha2UgWGVuIGF3YXJlIG9mCit0aGVtLiBEdWUgdG8gdGhlIGZhY3QgdGhhdCBhbGwgdGhlIGhh cmR3YXJlIGRlc2NyaXB0aW9uIG9uIHg4NiBjb21lcyBmcm9tCitBQ1BJLCBEb20wIGlzIHJlc3Bv bnNpYmxlIG9mIHBhcnNpbmcgdGhlIEFDUEkgdGFibGVzIGFuZCBub3RpZnkgWGVuIGFib3V0IHRo ZQorZGV2aWNlcyBpdCBmaW5kcy4gVGhpcyBpcyBkb25lIHdpdGggdGhlIGBQSFlTREVWT1BfcGNp X2RldmljZV9hZGRgIGh5cGVyY2FsbC4KKworKlRPRE8qOiBleHBsYWluIHRoZSB3YXkgdG8gcmVn aXN0ZXIgdGhlIGRpZmZlcmVudCBraW5kcyBvZiBQQ0kgZGV2aWNlcywgbGlrZQorZGV2aWNlcyB3 aXRoIHZpcnR1YWwgZnVuY3Rpb25zLgorCisjIyBJbnRlcnJ1cHRzICMjCisKK0FsbCBpbnRlcnJ1 cHRzIG9uIFBWSCBndWVzdHMgYXJlIHJvdXRlZCBvdmVyIGV2ZW50IGNoYW5uZWxzLCBzZWUKK1tF dmVudCBDaGFubmVsIEludGVybmFsc11bZXZlbnRfY2hhbm5lbHNdIGZvciBtb3JlIGRldGFpbGVk IGluZm9ybWF0aW9uIGFib3V0CitldmVudCBjaGFubmVscy4gSW4gb3JkZXIgdG8gaW5qZWN0IGlu dGVycnVwdHMgaW50byB0aGUgZ3Vlc3QgYW4gSURUIHZlY3RvciBpcwordXNlZC4gVGhpcyBpcyB0 aGUgc2FtZSBtZWNoYW5pc20gdXNlZCBvbiBQVkhWTSBndWVzdHMsIGFuZCBhbGxvd3MgaGF2aW5n CitwZXItY3B1IGludGVycnVwdHMgdGhhdCBjYW4gYmUgdXNlZCB0byBkZWxpdmVyIHRpbWVycyBv ciBJUElzLgorCitJbiBvcmRlciB0byByZWdpc3RlciB0aGUgY2FsbGJhY2sgSURUIHZlY3RvciB0 aGUgYEhWTU9QX3NldF9wYXJhbWAgaHlwZXJjYWxsCitpcyB1c2VkIHdpdGggdGhlIGZvbGxvd2lu ZyB2YWx1ZXM6CisKKyAgICBkb21pZCA9IERPTUlEX1NFTEYKKyAgICBpbmRleCA9IEhWTV9QQVJB TV9DQUxMQkFDS19JUlEKKyAgICB2YWx1ZSA9ICgweDIgPDwgNTYpIHwgdmVjdG9yX3ZhbHVlCisK K0luIG9yZGVyIHRvIGtub3cgd2hpY2ggZXZlbnQgY2hhbm5lbCBoYXMgZmlyZWQsIHdlIG5lZWQg dG8gbG9vayBpbnRvIHRoZQoraW5mb3JtYXRpb24gcHJvdmlkZWQgaW4gdGhlIGBzaGFyZWRfaW5m b2Agc3RydWN0dXJlLiBUaGUgYGV2dGNobl9wZW5kaW5nYAorYXJyYXkgaXMgdXNlZCBhcyBhIGJp dG1hcCBpbiBvcmRlciB0byBmaW5kIG91dCB3aGljaCBldmVudCBjaGFubmVsIGhhcworZmlyZWQu IEV2ZW50IGNoYW5uZWxzIGNhbiBhbHNvIGJlIG1hc2tlZCBieSBzZXR0aW5nIGl0J3MgcG9ydCB2 YWx1ZSBpbiB0aGUKK2BzaGFyZWRfaW5mby0+ZXZ0Y2huX21hc2tgIGJpdG1hcC4KKworIyMjIElu dGVycnVwdHMgZnJvbSBwaHlzaWNhbCBkZXZpY2VzICMjIworCitXaGVuIHJ1bm5pbmcgYXMgRG9t MCAob3Igd2hlbiB1c2luZyBwY2ktcGFzc3Rocm91Z2gpIGludGVycnVwdHMgZnJvbSBwaHlzaWNh bAorZGV2aWNlcyBhcmUgcm91dGVkIG92ZXIgZXZlbnQgY2hhbm5lbHMuIFRoZXJlIGFyZSAzIGRp ZmZlcmVudCBraW5kIG9mCitwaHlzaWNhbCBpbnRlcnJ1cHRzIHRoYXQgY2FuIGJlIHJvdXRlZCBv dmVyIGV2ZW50IGNoYW5uZWxzIGJ5IFhlbjogSU8gQVBJQywKK01TSSBhbmQgTVNJLVggaW50ZXJy dXB0cy4KKworU2luY2UgcGh5c2ljYWwgaW50ZXJydXB0cyB1c3VhbGx5IG5lZWQgRU9JIChFbmQg T2YgSW50ZXJydXB0KSwgWGVuIGFsbG93cyB0aGUKK3JlZ2lzdHJhdGlvbiBvZiBhIG1lbW9yeSBy ZWdpb24gdGhhdCB3aWxsIGNvbnRhaW4gd2hldGhlciBhIHBoeXNpY2FsIGludGVycnVwdAorbmVl ZHMgRU9JIGZyb20gdGhlIGd1ZXN0IG9yIG5vdC4gVGhpcyBpcyBkb25lIHdpdGggdGhlCitgUEhZ U0RFVk9QX3BpcnFfZW9pX2dtZm5fdjJgIGh5cGVyY2FsbCB0aGF0IHRha2VzIGEgcGFyYW1ldGVy IGNvbnRhaW5pbmcgdGhlCitwaHlzaWNhbCBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgcGFnZSB0aGF0 IHdpbGwgYWN0IGFzIGEgYml0bWFwLiBUaGVuIGluIG9yZGVyIHRvCitmaW5kIG91dCBpZiBhbiBJ UlEgbmVlZHMgRU9JIG9yIG5vdCwgdGhlIE9TIGNhbiBwZXJmb3JtIGEgc2ltcGxlIGJpdCB0ZXN0 IG9uIHRoZQorbWVtb3J5IHBhZ2UgdXNpbmcgdGhlIFBJUlEgdmFsdWUuCisKKyMjIyBJTyBBUElD IGludGVycnVwdCByb3V0aW5nICMjIworCitJTyBBUElDIGludGVycnVwdHMgY2FuIGJlIHJvdXRl ZCBvdmVyIGV2ZW50IGNoYW5uZWxzIHVzaW5nIGBQSFlTREVWT1BgCitoeXBlcmNhbGxzLiBGaXJz dCB0aGUgSVJRIGlzIHJlZ2lzdGVyZWQgdXNpbmcgdGhlIGBQSFlTREVWT1BfbWFwX3BpcnFgCito eXBlcmNhbGwsIGFzIGFuIGV4YW1wbGUgSVJRIzkgaXMgdXNlZCBoZXJlOgorCisgICAgZG9taWQg PSBET01JRF9TRUxGCisgICAgdHlwZSA9IE1BUF9QSVJRX1RZUEVfR1NJCisgICAgaW5kZXggPSA5 CisgICAgcGlycSA9IDkKKworVGhlIElSUSM5IGlzIG5vdyByZWdpc3RlcmVkIGFzIFBJUlEjOS4g VGhlIHRyaWdnZXJpbmcgYW5kIHBvbGFyaXR5IGNhbiBhbHNvCitiZSBjb25maWd1cmVkIHVzaW5n IHRoZSBgUEhZU0RFVk9QX3NldHVwX2dzaWAgaHlwZXJjYWxsOgorCisgICAgZ3NpID0gOSAjIFRo aXMgaXMgdGhlIElSUSB2YWx1ZS4KKyAgICB0cmlnZ2VyaW5nID0gMAorICAgIHBvbGFyaXR5ID0g MAorCitJbiB0aGlzIGV4YW1wbGUgdGhlIElSUSB3b3VsZCBiZSBjb25maWd1cmVkIHRvIHVzZSBl ZGdlIHRyaWdnZXJpbmcgYW5kIGhpZ2gKK3BvbGFyaXR5LgorCitGaW5hbGx5IHRoZSBQSVJRIGNh biBiZSBib3VuZCB0byBhbiBldmVudCBjaGFubmVsIHVzaW5nIHRoZQorYEVWVENITk9QX2JpbmRf cGlycWAsIHRoYXQgd2lsbCByZXR1cm4gdGhlIGV2ZW50IGNoYW5uZWwgcG9ydCB0aGUgUElSUSBo YXMgYmVlbgorYXNzaWduZWQuIEFmdGVyIHRoaXMgdGhlIGV2ZW50IGNoYW5uZWwgd2lsbCBiZSBy ZWFkeSBmb3IgZGVsaXZlcnkuCisKKypOT1RFKjogd2hlbiBydW5uaW5nIGFzIERvbTAsIHRoZSBn dWVzdCBoYXMgdG8gcGFyc2UgdGhlIGludGVycnVwdCBvdmVycmlkZXMKK2ZvdW5kIG9uIHRoZSBB Q1BJIHRhYmxlcyBhbmQgbm90aWZ5IFhlbiBhYm91dCB0aGVtLgorCisjIyMgTVNJICMjIworCitJ biBvcmRlciB0byBjb25maWd1cmUgTVNJIGludGVycnVwdHMgZm9yIGEgZGV2aWNlLCBYZW4gbXVz dCBiZSBtYWRlIGF3YXJlIG9mCitpdCdzIHByZXNlbmNlIGZpcnN0IGJ5IHVzaW5nIHRoZSBgUEhZ U0RFVk9QX3BjaV9kZXZpY2VfYWRkYCBhcyBkZXNjcmliZWQgYWJvdmUuCitUaGVuIHRoZSBgUEhZ U0RFVk9QX21hcF9waXJxYCBoeXBlcmNhbGwgaXMgdXNlZDoKKworICAgIGRvbWlkID0gRE9NSURf U0VMRgorICAgIHR5cGUgPSBNQVBfUElSUV9UWVBFX01TSV9TRUcgb3IgTUFQX1BJUlFfVFlQRV9N VUxUSV9NU0kKKyAgICBpbmRleCA9IC0xCisgICAgcGlycSA9IC0xCisgICAgYnVzID0gcGNpX2Rl dmljZV9idXMKKyAgICBkZXZmbiA9IHBjaV9kZXZpY2VfZnVuY3Rpb24KKyAgICBlbnRyeV9uciA9 IG51bWJlciBvZiBNU0kgaW50ZXJydXB0cworCitUaGUgdHlwZSBoYXMgdG8gYmUgc2V0IHRvIGBN QVBfUElSUV9UWVBFX01TSV9TRUdgIGlmIG9ubHkgb25lIE1TSSBpbnRlcnJ1cHQKK3NvdXJjZSBp cyBiZWluZyBjb25maWd1cmVkLiBPbiBkZXZpY2VzIHRoYXQgc3VwcG9ydCBNU0kgaW50ZXJydXB0 IGdyb3VwcworYE1BUF9QSVJRX1RZUEVfTVVMVElfTVNJYCBjYW4gYmUgdXNlZCB0byBjb25maWd1 cmUgdGhlbSBieSBhbHNvIHBsYWNpbmcgdGhlCitudW1iZXIgb2YgTVNJIGludGVycnVwdHMgaW4g dGhlIGBlbnRyeV9ucmAgZmllbGQuCisKK1RoZSB2YWx1ZXMgaW4gdGhlIGBidXNgIGFuZCBgZGV2 Zm5gIGZpZWxkIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgb25lcyB1c2VkCit3aGVuIHJlZ2lz dGVyaW5nIHRoZSBkZXZpY2Ugd2l0aCBgUEhZU0RFVk9QX3BjaV9kZXZpY2VfYWRkYC4KKworIyMj IE1TSS1YICMjIworCisqVE9ETyo6IGhvdyB0byByZWdpc3Rlci91c2UgdGhlbS4KKworIyMgRXZl bnQgdGltZXJzIGFuZCB0aW1lY291bnRlcnMgIyMKKworU2luY2Ugc29tZSBoYXJkd2FyZSBpcyBu b3QgYXZhaWxhYmxlIG9uIFBWSCAobGlrZSB0aGUgbG9jYWwgQVBJQyksIFhlbiBwcm92aWRlcwor dGhlIE9TIHdpdGggc3VpdGFibGUgcmVwbGFjZW1lbnRzIGluIG9yZGVyIHRvIGdldCB0aGUgc2Ft ZSBmdW5jdGlvbmFsaXR5LiBPbmUKK29mIHRoZW0gaXMgdGhlIHRpbWVyIGludGVyZmFjZS4gVXNp bmcgYSBzZXQgb2YgaHlwZXJjYWxscywgYSBndWVzdCBPUyBjYW4gc2V0CitldmVudCB0aW1lcnMg dGhhdCB3aWxsIGRlbGl2ZXIgYW5kIGV2ZW50IGNoYW5uZWwgaW50ZXJydXB0IHRvIHRoZSBndWVz dC4KKworSW4gb3JkZXIgdG8gdXNlIHRoZSB0aW1lciBwcm92aWRlZCBieSBYZW4gdGhlIGd1ZXN0 IE9TIGZpcnN0IG5lZWRzIHRvIHJlZ2lzdGVyCithIFZJUlEgZXZlbnQgY2hhbm5lbCB0byBiZSB1 c2VkIGJ5IHRoZSB0aW1lciB0byBkZWxpdmVyIHRoZSBpbnRlcnJ1cHRzLiBUaGUKK2V2ZW50IGNo YW5uZWwgaXMgcmVnaXN0ZXJlZCB1c2luZyB0aGUgYEVWVENITk9QX2JpbmRfdmlycWAgaHlwZXJj YWxsLCB0aGF0Citvbmx5IHRha2VzIHR3byBwYXJhbWV0ZXJzOgorCisgICAgdmlycSA9IFZJUlFf VElNRVIKKyAgICB2Y3B1ID0gdmNwdV9pZAorCitUaGUgcG9ydCB0aGF0J3MgZ29pbmcgdG8gYmUg dXNlZCBieSBYZW4gaW4gb3JkZXIgdG8gZGVsaXZlciB0aGUgaW50ZXJydXB0IGlzCityZXR1cm5l ZCBpbiB0aGUgYHBvcnRgIGZpZWxkLiBPbmNlIHRoZSBpbnRlcnJ1cHQgaXMgc2V0LCB0aGUgdGlt ZXIgY2FuIGJlCitwcm9ncmFtbWVkIHVzaW5nIHRoZSBgVkNQVU9QX3NldF9zaW5nbGVzaG90X3Rp bWVyYCBoeXBlcmNhbGwuCisKKyAgICBmbGFncyA9IFZDUFVfU1NIT1RUTVJfZnV0dXJlCisgICAg dGltZW91dF9hYnNfbnMgPSBhYnNvbHV0ZSB2YWx1ZSB3aGVuIHRoZSB0aW1lciBzaG91bGQgZmly ZQorCitJdCBpcyBpbXBvcnRhbnQgdG8gbm90aWNlIHRoYXQgdGhlIGBWQ1BVT1Bfc2V0X3Npbmds ZXNob3RfdGltZXJgIGh5cGVyY2FsbCBtdXN0CitiZSBleGVjdXRlZCBmcm9tIHRoZSBzYW1lIHZD UFUgd2hlcmUgdGhlIHRpbWVyIHNob3VsZCBmaXJlLCBvciBlbHNlIFhlbiB3aWxsCityZWZ1c2Ug dG8gc2V0IGl0LiBUaGlzIGlzIGEgc2luZ2xlLXNob3QgdGltZXIsIHNvIGl0IG11c3QgYmUgc2V0 IGJ5IHRoZSBPUworZXZlcnkgdGltZSBpdCBmaXJlcyBpZiBhIHBlcmlvZGljIHRpbWVyIGlzIGRl c2lyZWQuCisKK1hlbiBhbHNvIHNoYXJlcyBhIG1lbW9yeSByZWdpb24gd2l0aCB0aGUgZ3Vlc3Qg T1MgdGhhdCBjb250YWlucyB0aW1lIHJlbGF0ZWQKK3ZhbHVlcyB0aGF0IGFyZSB1cGRhdGVkIHBl cmlvZGljYWxseS4gVGhpcyB2YWx1ZXMgY2FuIGJlIHVzZWQgdG8gaW1wbGVtZW50IGEKK3RpbWVj b3VudGVyIG9yIHRvIG9idGFpbiB0aGUgY3VycmVudCB0aW1lLiBUaGlzIGluZm9ybWF0aW9uIGlz IHBsYWNlZCBpbnNpZGUgb2YKK2BzaGFyZWRfaW5mby0+dmNwdV9pbmZvW3ZjcHVfaWRdLnRpbWVg LiBUaGUgdXB0aW1lICh0aW1lIHNpbmNlIHRoZSBndWVzdCBoYXMKK2JlZW4gbGF1bmNoZWQpIGNh biBiZSBjYWxjdWxhdGVkIHVzaW5nIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBhbmQgdGhlIHZh bHVlcworc3RvcmVkIGluIHRoZSBgdmNwdV90aW1lX2luZm9gIHN0cnVjdDoKKworICAgIHN5c3Rl bV90aW1lICsgKCgoKHRzYyAtIHRzY190aW1lc3RhbXApIDw8IHRzY19zaGlmdCkgKiB0c2NfdG9f c3lzdGVtX211bCkgPj4gMzIpCisKK1RoZSB0aW1lb3V0IHRoYXQgaXMgcGFzc2VkIHRvIGBWQ1BV T1Bfc2V0X3NpbmdsZXNob3RfdGltZXJgIGhhcyB0byBiZQorY2FsY3VsYXRlZCB1c2luZyB0aGUg YWJvdmUgdmFsdWUsIHBsdXMgdGhlIHRpbWVvdXQgdGhlIHN5c3RlbSB3YW50cyB0byBzZXQuCisK K0lmIHRoZSBPUyBhbHNvIHdhbnRzIHRvIG9idGFpbiB0aGUgY3VycmVudCB3YWxsY2xvY2sgdGlt ZSwgdGhlIHZhbHVlIGNhbGN1bGF0ZWQKK2Fib3ZlIGhhcyB0byBiZSBhZGRlZCB0byB0aGUgdmFs dWVzIGZvdW5kIGluIGBzaGFyZWRfaW5mby0+d2Nfc2VjYCBhbmQKK2BzaGFyZWRfaW5mby0+d2Nf bnNlY2AuCisKKyMjIFNNUCBkaXNjb3ZlciBhbmQgYnJpbmcgdXAgIyMKKworVGhlIHByb2Nlc3Mg b2YgYnJpbmdpbmcgdXAgc2Vjb25kYXJ5IENQVXMgaXMgb2J2aW91c2x5IGRpZmZlcmVudCBmcm9t IG5hdGl2ZSwKK3NpbmNlIFBWSCBkb2Vzbid0IGhhdmUgYSBsb2NhbCBBUElDLiBUaGUgZmlyc3Qg dGhpbmcgdG8gZG8gaXMgdG8gZmlndXJlIG91dAoraG93IG1hbnkgdkNQVXMgdGhlIGd1ZXN0IGhh cy4gVGhpcyBpcyBkb25lIHVzaW5nIHRoZSBgVkNQVU9QX2lzX3VwYCBoeXBlcmNhbGwsCit1c2lu ZyBmb3IgZXhhbXBsZSB0aGlzIHNpbXBsZSBsb29wOgorCisgICAgZm9yIChpID0gMDsgaSA8IE1B WENQVTsgaSsrKSB7CisgICAgICAgIHJldCA9IEhZUEVSVklTT1JfdmNwdV9vcChWQ1BVT1BfaXNf dXAsIGksIE5VTEwpOworICAgICAgICBpZiAocmV0ID49IDApCisgICAgICAgICAgICAvKiB2Q1BV I2kgaXMgcHJlc2VudCAqLworICAgIH0KKworTm90ZSB0aGFuIHdoZW4gcnVubmluZyBhcyBEb20w LCB0aGUgQUNQSSB0YWJsZXMgbWlnaHQgcmVwb3J0IGEgZGlmZmVyZW50IG51bWJlcgorb2YgYXZh aWxhYmxlIENQVXMuIFRoaXMgaXMgYmVjYXVzZSB0aGUgdmFsdWUgb24gdGhlIEFDUEkgdGFibGVz IGlzIHRoZQorbnVtYmVyIG9mIHBoeXNpY2FsIENQVXMgdGhlIGhvc3QgaGFzLCBhbmQgaXQgbWln aHQgYmVhciBubyByZXNlbWJsYW5jZSB3aXRoIHRoZQorbnVtYmVyIG9mIHZDUFVzIERvbTAgYWN0 dWFsbHkgaGFzIHNvIGl0IHNob3VsZCBiZSBpZ25vcmVkLgorCitJbiBvcmRlciB0byBicmluZyB1 cCB0aGUgc2Vjb25kYXJ5IHZDUFVzIHRoZXkgbXVzdCBiZSBjb25maWd1cmVkIGZpcnN0LiBUaGlz IGlzCithY2hpZXZlZCB1c2luZyB0aGUgYFZDUFVPUF9pbml0aWFsaXNlYCBoeXBlcmNhbGwuIEEg dmFsaWQgY29udGV4dCBoYXMgdG8gYmUKK3Bhc3NlZCB0byB0aGUgdkNQVSBpbiBvcmRlciB0byBi b290LiBUaGUgcmVsZXZhbnQgZmllbGRzIGZvciBQVkggZ3Vlc3RzIGFyZQordGhlIGZvbGxvd2lu ZzoKKworICAqIGBmbGFnc2A6IGNvbnRhaW5zIGBWR0NGXypgIGZsYWdzIChzZWUgYGFyY2gteDg2 L3hlbi5oYCBwdWJsaWMgaGVhZGVyKS4KKyAgKiBgdXNlcl9yZWdzYDogc3RydWN0IHRoYXQgY29u dGFpbnMgdGhlIHJlZ2lzdGVyIHZhbHVlcyB0aGF0IHdpbGwgYmUgc2V0IG9uCisgICAgdGhlIHZD UFUgYmVmb3JlIGJvb3RpbmcuIEFsbCBHUFJzIGFyZSBhdmFpbGFibGUgdG8gYmUgc2V0LCBob3dl dmVyLCB0aGUKKyAgICBtb3N0IHJlbGV2YW50IG9uZXMgYXJlIGByaXBgIGFuZCBgcnNwYCBpbiBv cmRlciB0byBzZXQgdGhlIHN0YXJ0IGFkZHJlc3MKKyAgICBhbmQgdGhlIHN0YWNrLiBQbGVhc2Ug bm90ZSwgYWxsIHNlbGVjdG9ycyBtdXN0IGJlIG51bGwuCisgICogYGN0cmxyZWdbM11gOiBjb250 YWlucyB0aGUgYWRkcmVzcyBvZiB0aGUgcGFnZSB0YWJsZXMgdGhhdCB3aWxsIGJlIHVzZWQgYnkK KyAgICB0aGUgdkNQVS4gT3RoZXIgY29udHJvbCByZWdpc3RlcnMgc2hvdWxkIGJlIHNldCB0byB6 ZXJvLCBvciBlbHNlIHRoZQorICAgIGh5cGVyY2FsbCB3aWxsIGZhaWwgd2l0aCAtRUlOVkFMLgor CitBZnRlciB0aGUgdkNQVSBpcyBpbml0aWFsaXplZCB3aXRoIHRoZSBwcm9wZXIgdmFsdWVzLCBp dCBjYW4gYmUgc3RhcnRlZCBieQordXNpbmcgdGhlIGBWQ1BVT1BfdXBgIGh5cGVyY2FsbC4gVGhl IHZhbHVlcyBvZiB0aGUgb3RoZXIgY29udHJvbCByZWdpc3RlcnMgb2YKK3RoZSB2Q1BVIHdpbGwg YmUgdGhlIHNhbWUgYXMgdGhlIG9uZXMgZGVzY3JpYmVkIGluIHRoZSBgY29udHJvbCByZWdpc3Rl cnNgCitzZWN0aW9uLgorCitFeGFtcGxlcyBhYm91dCBob3cgdG8gYnJpbmcgdXAgc2Vjb25kYXJ5 IENQVXMgY2FuIGJlIGZvdW5kIG9uIHRoZSBGcmVlQlNECitjb2RlIGJhc2UgaW4gYHN5cy94ODYv eGVuL3B2LmNgIGFuZCBvbiBMaW51eCBgYXJjaC94ODYveGVuL3NtcC5jYC4KKworIyMgQ29udHJv bCBvcGVyYXRpb25zIChyZWJvb3Qvc2h1dGRvd24pICMjCisKK1JlYm9vdCBhbmQgc2h1dGRvd24g b3BlcmF0aW9ucyBvbiBQVkggZ3Vlc3RzIGFyZSBwZXJmb3JtZWQgdXNpbmcgaHlwZXJjYWxscy4K K0luIG9yZGVyIHRvIGlzc3VlIGEgcmVib290LCBhIGd1ZXN0IG11c3QgdXNlIHRoZSBgU0hVVERP V05fcmVib290YCBoeXBlcmNhbGwuCitJbiBvcmRlciB0byBwZXJmb3JtIGEgcG93ZXIgb2ZmIGZy b20gYSBndWVzdCBEb21VLCB0aGUgYFNIVVRET1dOX3Bvd2Vyb2ZmYAoraHlwZXJjYWxsIHNob3Vs ZCBiZSB1c2VkLgorCitUaGUgd2F5IHRvIHBlcmZvcm0gYSBmdWxsIHN5c3RlbSBwb3dlciBvZmYg ZnJvbSBEb20wIGlzIGRpZmZlcmVudCB0aGFuIHdoYXQncworZG9uZSBpbiBhIERvbVUgZ3Vlc3Qu IEluIG9yZGVyIHRvIHBlcmZvcm0gYSBwb3dlciBvZmYgZnJvbSBEb20wIHRoZSBuYXRpdmUKK0FD UEkgcGF0aCBzaG91bGQgYmUgZm9sbG93ZWQsIGJ1dCB0aGUgZ3Vlc3Qgc2hvdWxkIG5vdCB3cml0 ZSB0aGUgYFNMUF9FTmAKK2JpdCB0byB0aGUgUG0xQ29udHJvbCByZWdpc3Rlci4gSW5zdGVhZCB0 aGUgYFhFTlBGX2VudGVyX2FjcGlfc2xlZXBgIGh5cGVyY2FsbAorc2hvdWxkIGJlIHVzZWQsIGZp bGxpbmcgdGhlIGZvbGxvd2luZyBkYXRhIGluIHRoZSBgeGVuX3BsYXRmb3JtX29wYCBzdHJ1Y3Q6 CisKKyAgICBjbWQgPSBYRU5QRl9lbnRlcl9hY3BpX3NsZWVwCisgICAgaW50ZXJmYWNlX3ZlcnNp b24gPSBYRU5QRl9JTlRFUkZBQ0VfVkVSU0lPTgorICAgIHUuZW50ZXJfYWNwaV9zbGVlcC5wbTFh X2NudF92YWwgPSBQbTFhQ29udHJvbFZhbHVlCisgICAgdS5lbnRlcl9hY3BpX3NsZWVwLnBtMWJf Y250X3ZhbCA9IFBtMWJDb250cm9sVmFsdWUKKworVGhpcyB3aWxsIGFsbG93IFhlbiB0byBkbyBp dCdzIGNsZWFuIHVwIGFuZCB0byBwb3dlciBvZmYgdGhlIHN5c3RlbS4gSWYgdGhlCitob3N0IGlz IHVzaW5nIGhhcmR3YXJlIHJlZHVjZWQgQUNQSSwgdGhlIGZvbGxvd2luZyBmaWVsZCBzaG91bGQg YWxzbyBiZSBzZXQ6CisKKyAgICB1LmVudGVyX2FjcGlfc2xlZXAuZmxhZ3MgPSBYRU5QRl9BQ1BJ X1NMRUVQX0VYVEVOREVEICgweDEpCisKKyMjIENQVUlEICMjCisKKypURE9EKjogZGVzY3JpYmUg d2hpY2ggY3B1aWQgZmxhZ3MgYSBndWVzdCBzaG91bGQgaWdub3JlIGFuZCBhbHNvIHdoaWNoIGZs YWdzCitkZXNjcmliZSBmZWF0dXJlcyBjYW4gYmUgdXNlZC4gSXQgd291bGQgYWxzbyBiZSBnb29k IHRvIGRlc2NyaWJlIHRoZSBzZXQgb2YKK2NwdWlkIGZsYWdzIHRoYXQgd2lsbCBhbHdheXMgYmUg cHJlc2VudCB3aGVuIHJ1bm5pbmcgYXMgUFZILgorCisjIyBGaW5hbCBub3RlcyAjIworCitBbGwg dGhlIG90aGVyIGhhcmR3YXJlIGZ1bmN0aW9uYWxpdHkgbm90IGRlc2NyaWJlZCBpbiB0aGlzIGRv Y3VtZW50IHNob3VsZCBiZQorYXNzdW1lZCB0byBiZSBwZXJmb3JtZWQgaW4gdGhlIHNhbWUgd2F5 IGFzIG5hdGl2ZS4KKworW2V2ZW50X2NoYW5uZWxzXTogaHR0cDovL3dpa2kueGVuLm9yZy93aWtp L0V2ZW50X0NoYW5uZWxfSW50ZXJuYWxzCi0tIAoxLjguNS4yIChBcHBsZSBHaXQtNDgpCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK