From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v7 08/14] x86: add multiboot2 protocol support for EFI platforms Date: Fri, 23 Sep 2016 23:47:33 +0200 Message-ID: <1474667259-27290-9-git-send-email-daniel.kiper@oracle.com> References: <1474667259-27290-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnYL0-00041h-Lr for xen-devel@lists.xenproject.org; Fri, 23 Sep 2016 21:48:54 +0000 In-Reply-To: <1474667259-27290-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org VGhpcyB3YXkgWGVuIGNhbiBiZSBsb2FkZWQgb24gRUZJIHBsYXRmb3JtcyB1c2luZyBHUlVCMiBh bmQKb3RoZXIgYm9vdCBsb2FkZXJzIHdoaWNoIHN1cHBvcnQgbXVsdGlib290MiBwcm90b2NvbC4K ClNpZ25lZC1vZmYtYnk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+CkFj a2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NyAtIHN1Z2dlc3Rp b25zL2ZpeGVzOgogICAtIGRvIG5vdCBhbGxvY2F0ZSB0d2ljZSBtZW1vcnkgZm9yIHRyYW1wb2xp bmUgaWYgd2Ugd2VyZQogICAgIGxvYWRlZCB2aWEgbXVsdGlib290MiBwcm90b2NvbCBvbiBFRkkg cGxhdGZvcm0sCiAgIC0gd3JhcCBsb25nIGxpbmUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCkuCgp2NiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGltcHJvdmUgbGFiZWwgbmFtZXMgaW4g YXNzZW1ibHkKICAgICBlcnJvciBwcmludGluZyBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJl dWxpY2gpLAogICAtIHZhcmlvdXMgbWlub3IgY2xlYW51cHMgYW5kIGZpeGVzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJlbW92 ZSByZWR1bmRhbnQgQlNTIGFsaWdubWVudCwKICAgLSB1cGRhdGUgQlNTIGFsaWdubWVudCBjaGVj aywKICAgLSB1c2UgX19zZXRfYml0KCkgaW5zdGVhZCBvZiBzZXRfYml0KCkgaWYgcG9zc2libGUK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBjYWxsIGVmaV9hcmNoX2NwdSgp IGZyb20gZWZpX211bHRpYm9vdDIoKQogICAgIGV2ZW4gaWYgdGhlIHNhbWUgd29yayBpcyBkb25l IGxhdGVyIGluCiAgICAgb3RoZXIgcGxhY2UgcmlnaHQgbm93CiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0geGVuL2FyY2gveDg2L2VmaS9zdHViLmM6ZWZpX211bHRpYm9vdDIo KQogICAgIGZhaWwgcHJvcGVybHkgb24gRUZJIHBsYXRmb3JtcywKICAgLSBkbyBub3QgcmVhZCBk YXRhIGJleW9uZCB0aGUgZW5kIG9mIG11bHRpYm9vdDIKICAgICBpbmZvcm1hdGlvbiBpbiB4ZW4v YXJjaC94ODYvYm9vdC9oZWFkLlMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSB1c2UgMzItYml0IHJlZ2lzdGVycyBpbiB4ODZfNjQgY29kZSBpZiBwb3NzaWJsZQogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIG11bHRpYm9vdDIgaW5mb3JtYXRpb24gYWRk cmVzcyBpcyA2NC1iaXQKICAgICBpbiB4ODZfNjQgY29kZSwgc28sIHRyZWF0IGl0IGlzIGFzIGlz CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIGNtb3ZjYyBpZiBwb3Nz aWJsZSwKICAgLSBsZWF2ZSBvbmx5IG9uZSBzcGFjZSBiZXR3ZWVuIHJlcCBhbmQgc3Rvc3EKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5n LAogICAtIGltcHJvdmUgZWFybHkgZXJyb3IgbWVzc2FnZXMsCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBlYXJseSBlcnJvciBtZXNzYWdlcyBwcmludGluZyBj b2RlLAogICAtIGltcHJvdmUgbGFiZWwgbmFtZXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gdmFyaW91cyBtaW5vciBjbGVhbnVwcy4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6 CiAgIC0gdGFrZSBpbnRvIGFjY291bnQgYWxpZ25tZW50IHdoZW4gc2tpcHBpbmcgbXVsdGlib290 MiBmaXhlZCBwYXJ0CiAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAog ICAtIGltcHJvdmUgc2VnbWVudCByZWdpc3RlcnMgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCBhbmQgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3Zl IGNvbW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MiAtIHN1 Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGdlbmVyYXRlIG11bHRpYm9vdDIgaGVhZGVyIHVzaW5nIG1h Y3JvcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHN3aXRjaCBDUFUgdG8g eDg2XzMyIG1vZGUgYmVmb3JlCiAgICAganVtcGluZyB0byAzMi1iaXQgY29kZQogICAgIChzdWdn ZXN0ZWQgYnkgQW5kcmV3IENvb3BlciksCiAgIC0gcmVkdWNlIGNvZGUgY2hhbmdlcyB0byBpbmNy ZWFzZSBwYXRjaCByZWFkYWJpbGl0eQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSBpZ25vcmUgTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBvbiBFRkkgcGxh dGZvcm0KICAgICBhbmQgZmluZCBvbiBteSBvd24gbXVsdGlib290Mi5tZW1fbG93ZXIgdmFsdWUs CiAgIC0gc3RvcCBleGVjdXRpb24gaWYgRUZJIHBsYXRmb3JtIGlzIGRldGVjdGVkCiAgICAgaW4g bGVnYWN5IEJJT1MgcGF0aC4KLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAgICAg fCAgMjU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4 Ni9lZmkvZWZpLWJvb3QuaCAgICAgICB8ICAgNDkgKysrKysrLQogeGVuL2FyY2gveDg2L2VmaS9z dHViLmMgICAgICAgICAgIHwgICAzOCArKysrKysKIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9m ZnNldHMuYyB8ICAgIDIgKwogeGVuL2FyY2gveDg2L3hlbi5sZHMuUyAgICAgICAgICAgIHwgICAg NCArLQogeGVuL2NvbW1vbi9lZmkvYm9vdC5jICAgICAgICAgICAgIHwgICAxMSArKwogNiBmaWxl cyBjaGFuZ2VkLCAzNDAgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmlu ZGV4IDM4M2ZmNzkuLmEzNzFjZGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQu UworKysgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTg5LDYgKzg5LDEzIEBAIG11bHRp Ym9vdDJfaGVhZGVyX3N0YXJ0OgogICAgICAgICAgICAgICAgICAgIDAsIC8qIE51bWJlciBvZiB0 aGUgbGluZXMgLSBubyBwcmVmZXJlbmNlLiAqLyBcCiAgICAgICAgICAgICAgICAgICAgMCAgLyog TnVtYmVyIG9mIGJpdHMgcGVyIHBpeGVsIC0gbm8gcHJlZmVyZW5jZS4gKi8KIAorICAgICAgICAv KiBJbmhpYml0IGJvb3Rsb2FkZXIgZnJvbSBjYWxsaW5nIEV4aXRCb290U2VydmljZXMoKS4gKi8K KyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRUZJX0JTKSwgTUIyX0hUKE9QVElPTkFMKQorCisg ICAgICAgIC8qIEVGSTY0IGVudHJ5IHBvaW50LiAqLworICAgICAgICBtYjJodF9pbml0IE1CMl9I VChFTlRSWV9BRERSRVNTX0VGSTY0KSwgTUIyX0hUKE9QVElPTkFMKSwgXAorICAgICAgICAgICAg ICAgICAgIHN5bV9waHlzKF9fZWZpNjRfc3RhcnQpCisKICAgICAgICAgLyogTXVsdGlib290MiBo ZWFkZXIgZW5kIHRhZy4gKi8KICAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5EKSwgTUIyX0hU KFJFUVVJUkVEKQogLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQ6CkBAIC0xMDAsMjAgKzEwNyw0OSBA QCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFydDoKIGdkdF9ib290X2Rlc2NyOgogICAgICAgICAud29y ZCAgIDYqOC0xCiAgICAgICAgIC5sb25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCisgICAg ICAgIC5sb25nICAgMCAvKiBOZWVkZWQgZm9yIDY0LWJpdCBsZ2R0ICovCisKK2NzMzJfc3dpdGNo X2FkZHI6CisgICAgICAgIC5sb25nICAgc3ltX3BoeXMoY3MzMl9zd2l0Y2gpCisgICAgICAgIC53 b3JkICAgQk9PVF9DUzMyCisKKyAgICAgICAgLmFsaWduIDQKK3ZnYV90ZXh0X2J1ZmZlcjoKKyAg ICAgICAgLmxvbmcgICAweGI4MDAwCiAKIC5MYmFkX2NwdV9tc2c6IC5hc2NpeiAiRVJSOiBOb3Qg YSA2NC1iaXQgQ1BVISIKIC5MYmFkX2xkcl9tc2c6IC5hc2NpeiAiRVJSOiBOb3QgYSBNdWx0aWJv b3QgYm9vdGxvYWRlciEiCisuTGJhZF9sZHJfbmJzOiAuYXNjaXogIkVSUjogQm9vdGxvYWRlciBz aHV0ZG93biBFRkkgeDY0IGJvb3Qgc2VydmljZXMhIgorLkxiYWRfbGRyX25zdDogLmFzY2l6ICJF UlI6IEVGSSBTeXN0ZW1UYWJsZSBpcyBub3QgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciEiCisuTGJh ZF9sZHJfbmloOiAuYXNjaXogIkVSUjogRUZJIEltYWdlSGFuZGxlIGlzIG5vdCBwcm92aWRlZCBi eSBib290bG9hZGVyISIKKy5MYmFkX2VmaV9tc2c6IC5hc2NpeiAiRVJSOiBFRkkgSUEtMzIgcGxh dGZvcm1zIGFyZSBub3Qgc3VwcG9ydGVkISIKIAogICAgICAgICAuc2VjdGlvbiAuaW5pdC50ZXh0 LCAiYXgiLCBAcHJvZ2JpdHMKIAogYmFkX2NwdToKICAgICAgICAgbW92ICAgICAkKHN5bV9waHlz KC5MYmFkX2NwdV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAgICAgICBqbXAgICAgIHBy aW50X2VycgorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211bHRpYm9vdDoKICAgICAg ICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2Fn ZQotcHJpbnRfZXJyOgotICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICMgVkdBIGZyYW1l YnVmZmVyCi0xOiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAorICAgICAgICBqbXAgICAgIC5MZ2V0 X3Z0YgorLkxtYjJfbm9fc3Q6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJf bnN0KSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAuTGdldF92dGIKKy5M bWIyX25vX2loOgorICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25paCkpLCVl c2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisuTG1iMl9ub19i czoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNpICMgRXJy b3IgbWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAgICAgICAgICAgICAg ICAgIyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCisuTG1i Ml9lZmlfaWFfMzI6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9lZmlfbXNnKSks JWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgeG9yICAgICAlZWRpLCVlZGkgICAgICAgICAg ICAgICAgICAgICAgICMgTm8gVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5k X2NocgorLkxnZXRfdnRiOgorICAgICAgICBtb3YgICAgIHN5bV9waHlzKHZnYV90ZXh0X2J1ZmZl ciksJWVkaQorLkxzZW5kX2NocjoKKyAgICAgICAgbW92ICAgICAoJWVzaSksJWJsCiAgICAgICAg IHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBzZW50aW5lbAogICAg ICAgICBqZSAgICAgIC5MaGFsdAogICAgICAgICBtb3YgICAgICQweDNmOCs1LCVkeCAgICMgVUFS VCBMaW5lIFN0YXR1cyBSZWdpc3RlcgpAQCAtMTIzLDEzICsxNTksMTgxIEBAIHByaW50X2VycjoK ICAgICAgICAgbW92ICAgICAkMHgzZjgrMCwlZHggICAjIFVBUlQgVHJhbnNtaXQgSG9sZGluZyBS ZWdpc3RlcgogICAgICAgICBtb3YgICAgICVibCwlYWwKICAgICAgICAgb3V0ICAgICAlYWwsJWR4 ICAgICAgICAjIFNlbmQgYSBjaGFyYWN0ZXIgb3ZlciB0aGUgc2VyaWFsIGxpbmUKLSAgICAgICAg bW92c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgZnJh bWVidWZmZXIKKyAgICAgICAgdGVzdCAgICAlZWRpLCVlZGkgICAgICAjIElzIHRoZSBWR0EgdGV4 dCBidWZmZXIgYXZhaWxhYmxlPworICAgICAgICBqeiAgICAgIC5Mc2VuZF9jaHIKKyAgICAgICAg bW92c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0EgdGV4 dCBidWZmZXIKICAgICAgICAgbW92ICAgICAkNywlYWwKLSAgICAgICAgc3Rvc2IgICAgICAgICAg ICAgICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIGZyYW1lYnVmZmVyCi0gICAg ICAgIGptcCAgICAgMWIKKyAgICAgICAgc3Rvc2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGFu IGF0dHJpYnV0ZSB0byB0aGUgVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5k X2NocgogLkxoYWx0OiBobHQKICAgICAgICAgam1wICAgICAuTGhhbHQKIAorICAgICAgICAuY29k ZTY0CisKK19fZWZpNjRfc3RhcnQ6CisgICAgICAgIGNsZAorCisgICAgICAgIC8qIFZHQSBpcyBu b3QgYXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCisgICAgICAgIG1vdmwgICAkMCx2Z2Ff dGV4dF9idWZmZXIoJXJpcCkKKworICAgICAgICAvKiBDaGVjayBmb3IgTXVsdGlib290MiBib290 bG9hZGVyLiAqLworICAgICAgICBjbXAgICAgICRNVUxUSUJPT1QyX0JPT1RMT0FERVJfTUFHSUMs JWVheAorICAgICAgICBqZSAgICAgIC5MZWZpX211bHRpYm9vdDJfcHJvdG8KKworICAgICAgICAv KiBKdW1wIHRvIG5vdF9tdWx0aWJvb3QgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9k ZS4gKi8KKyAgICAgICAgbGVhICAgICBub3RfbXVsdGlib290KCVyaXApLCVlZGkKKyAgICAgICAg am1wICAgICB4ODZfMzJfc3dpdGNoCisKKy5MZWZpX211bHRpYm9vdDJfcHJvdG86CisgICAgICAg IC8qIFplcm8gRUZJIFN5c3RlbVRhYmxlIGFuZCBFRkkgSW1hZ2VIYW5kbGUgYWRkcmVzc2VzLiAq LworICAgICAgICB4b3IgICAgICVlc2ksJWVzaQorICAgICAgICB4b3IgICAgICVlZGksJWVkaQor CisgICAgICAgIC8qIFNraXAgTXVsdGlib290MiBpbmZvcm1hdGlvbiBmaXhlZCBwYXJ0LiAqLwor ICAgICAgICBsZWEgICAgIChNQjJfZml4ZWRfc2l6ZW9mK01VTFRJQk9PVDJfVEFHX0FMSUdOLTEp KCVyYngpLCVlY3gKKyAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwl ZWN4CisKKzA6CisgICAgICAgIC8qIENoZWNrIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdG90YWwg c2l6ZS4gKi8KKyAgICAgICAgbW92ICAgICAlZWN4LCVyOGQKKyAgICAgICAgc3ViICAgICAlZWJ4 LCVyOGQKKyAgICAgICAgY21wICAgICAlcjhkLE1CMl9maXhlZF90b3RhbF9zaXplKCVyYngpCisg ICAgICAgIGpiZSAgICAgcnVuX2JzCisKKyAgICAgICAgLyogQXJlIEVGSSBib290IHNlcnZpY2Vz IGF2YWlsYWJsZT8gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRklf QlMsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGpuZSAgICAgMWYKKworICAgICAgICAvKgor ICAgICAgICAgKiBZZXMsIHN0b3JlIHRoYXQgaW5mbyBpbiBza2lwX3JlYWxtb2RlIHZhcmlhYmxl LiBJIGFncmVlIHRoYXQKKyAgICAgICAgICogaXRzIG5hbWUgaXMgYSBiaXQgdW5mb3J0dW5hdGUg aW4gdGhpcyBjb250ZXh0LCBob3dldmVyLCBieSB0aGUKKyAgICAgICAgICogd2F5IHdlIGRpc2Fi bGUgcmVhbCBtb2RlIGFuZCBvdGhlciBsZWdhY3kgc3R1ZmYgd2hpY2ggc2hvdWxkCisgICAgICAg ICAqIG5vdCBiZSBydW4gb24gRUZJIHBsYXRmb3Jtcy4KKyAgICAgICAgICovCisgICAgICAgIGlu Y2IgICAgc2tpcF9yZWFsbW9kZSglcmlwKQorICAgICAgICBqbXAgICAgIDlmCisKKzE6CisgICAg ICAgIC8qIEdldCBFRkkgU3lzdGVtVGFibGUgYWRkcmVzcyBmcm9tIE11bHRpYm9vdDIgaW5mb3Jt YXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjQsTUIy X3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNtb3ZlICAgTUIyX2VmaTY0X3N0KCVyY3gpLCVyc2kK KyAgICAgICAgamUgICAgICA5ZgorCisgICAgICAgIC8qIEdldCBFRkkgSW1hZ2VIYW5kbGUgYWRk cmVzcyBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1V TFRJQk9PVDJfVEFHX1RZUEVfRUZJNjRfSUgsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNt b3ZlICAgTUIyX2VmaTY0X2loKCVyY3gpLCVyZGkKKyAgICAgICAgamUgICAgICA5ZgorCisgICAg ICAgIC8qIElzIGl0IHRoZSBlbmQgb2YgTXVsdGlib290MiBpbmZvcm1hdGlvbj8gKi8KKyAgICAg ICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FTkQsTUIyX3RhZ190eXBlKCVyY3gpCisg ICAgICAgIGplICAgICAgcnVuX2JzCisKKzk6CisgICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGli b290MiBpbmZvcm1hdGlvbiB0YWcuICovCisgICAgICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVy Y3gpLCVlY3gKKyAgICAgICAgYWRkICAgICAkKE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gK KyAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisgICAgICAg IGptcCAgICAgMGIKKworcnVuX2JzOgorICAgICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMg YXZhaWxhYmxlPyAqLworICAgICAgICBjbXBiICAgICQwLHNraXBfcmVhbG1vZGUoJXJpcCkKKyAg ICAgICAgam56ICAgICAwZgorCisgICAgICAgIC8qIEp1bXAgdG8gLkxtYjJfbm9fYnMgYWZ0ZXIg c3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVhICAgICAuTG1iMl9u b19icyglcmlwKSwlZWRpCisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3aXRjaAorCiswOgorICAg ICAgICAvKiBJcyBFRkkgU3lzdGVtVGFibGUgYWRkcmVzcyBwcm92aWRlZCBieSBib290IGxvYWRl cj8gKi8KKyAgICAgICAgdGVzdCAgICAlcnNpLCVyc2kKKyAgICAgICAgam56ICAgICAxZgorCisg ICAgICAgIC8qIEp1bXAgdG8gLkxtYjJfbm9fc3QgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZf MzIgbW9kZS4gKi8KKyAgICAgICAgbGVhICAgICAuTG1iMl9ub19zdCglcmlwKSwlZWRpCisgICAg ICAgIGptcCAgICAgeDg2XzMyX3N3aXRjaAorCisxOgorICAgICAgICAvKiBJcyBFRkkgSW1hZ2VI YW5kbGUgYWRkcmVzcyBwcm92aWRlZCBieSBib290IGxvYWRlcj8gKi8KKyAgICAgICAgdGVzdCAg ICAlcmRpLCVyZGkKKyAgICAgICAgam56ICAgICAyZgorCisgICAgICAgIC8qIEp1bXAgdG8gLkxt YjJfbm9faWggYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAg bGVhICAgICAuTG1iMl9ub19paCglcmlwKSwlZWRpCisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3 aXRjaAorCisyOgorICAgICAgICBwdXNoICAgICVyYXgKKyAgICAgICAgcHVzaCAgICAlcmRpCisK KyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNl cyEpLgorICAgICAgICAgKiBJdCBtdXN0IGJlIGRvbmUgZWFybGllciB0aGFuIGluIEJJT1MgY2Fz ZQorICAgICAgICAgKiBiZWNhdXNlIGVmaV9tdWx0aWJvb3QyKCkgdG91Y2hlcyBpdC4KKyAgICAg ICAgICovCisgICAgICAgIGxlYSAgICAgLnN0YXJ0b2YuKC5ic3MpKCVyaXApLCVlZGkKKyAgICAg ICAgbW92ICAgICAkLnNpemVvZi4oLmJzcyksJWVjeAorICAgICAgICBzaHIgICAgICQzLCVlY3gK KyAgICAgICAgeG9yICAgICAlZWF4LCVlYXgKKyAgICAgICAgcmVwIHN0b3NxCisKKyAgICAgICAg cG9wICAgICAlcmRpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogZWZpX211bHRpYm9vdDIoKSBp cyBjYWxsZWQgYWNjb3JkaW5nIHRvIFN5c3RlbSBWIEFNRDY0IEFCSToKKyAgICAgICAgICogICAt IElOOiAlcmRpIC0gRUZJIEltYWdlSGFuZGxlLCAlcnNpIC0gRUZJIFN5c3RlbVRhYmxlLAorICAg ICAgICAgKiAgIC0gT1VUOiAlcmF4IC0gaGlnaGVzdCB1c2FibGUgbWVtb3J5IGFkZHJlc3MgYmVs b3cgMSBNaUI7CisgICAgICAgICAqICAgICAgICAgICAgICAgICBtZW1vcnkgYWJvdmUgdGhpcyBh ZGRyZXNzIGlzIHJlc2VydmVkIGZvciB0cmFtcG9saW5lOworICAgICAgICAgKiAgICAgICAgICAg ICAgICAgbWVtb3J5IGJlbG93IHRoaXMgYWRkcmVzcyBpcyB1c2VkIGZvciBzdGFjayBhbmQgYXMK KyAgICAgICAgICogICAgICAgICAgICAgICAgIGEgc3RvcmFnZSBmb3IgYm9vdCBkYXRhLgorICAg ICAgICAgKgorICAgICAgICAgKiBNVUxUSUJPT1QyX1RBR19UWVBFX0JBU0lDX01FTUlORk8gdGFn IGlzIG5vdCBwcm92aWRlZAorICAgICAgICAgKiBvbiBFRkkgcGxhdGZvcm1zLiBIZW5jZSwgaXQg Y291bGQgbm90IGJlIHVzZWQgbGlrZQorICAgICAgICAgKiBvbiBsZWdhY3kgQklPUyBwbGF0Zm9y bXMuCisgICAgICAgICAqLworICAgICAgICBjYWxsICAgIGVmaV9tdWx0aWJvb3QyCisKKyAgICAg ICAgLyogQ29udmVydCBtZW1vcnkgYWRkcmVzcyB0byBieXRlcy8xNiBhbmQgc3RvcmUgaXQgaW4g c2FmZSBwbGFjZS4gKi8KKyAgICAgICAgc2hyICAgICAkNCwlZWF4CisgICAgICAgIG1vdiAgICAg JWVheCwlZWN4CisKKyAgICAgICAgcG9wICAgICAlcmF4CisKKyAgICAgICAgLyogSnVtcCB0byB0 cmFtcG9saW5lX3NldHVwIGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisg ICAgICAgIGxlYSAgICAgdHJhbXBvbGluZV9zZXR1cCglcmlwKSwlZWRpCisKK3g4Nl8zMl9zd2l0 Y2g6CisgICAgICAgIGNsaQorCisgICAgICAgIC8qIEluaXRpYWxpemUgR0RUUi4gKi8KKyAgICAg ICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQorCisgICAgICAgIC8qIFJlbG9hZCBjb2Rl IHNlbGVjdG9yLiAqLworICAgICAgICBsam1wbCAgICpjczMyX3N3aXRjaF9hZGRyKCVyaXApCisK KyAgICAgICAgLmNvZGUzMgorCitjczMyX3N3aXRjaDoKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBi YXNpYyBkYXRhIHNlZ21lbnRzLiAqLworICAgICAgICBtb3YgICAgICRCT09UX0RTLCVlZHgKKyAg ICAgICAgbW92ICAgICAlZWR4LCVkcworICAgICAgICBtb3YgICAgICVlZHgsJWVzCisgICAgICAg IG1vdiAgICAgJWVkeCwlc3MKKyAgICAgICAgLyogJWVzcCBpcyBpbml0aWFsaXplZCBsYXRlci4g Ki8KKworICAgICAgICAvKiBMb2FkIG51bGwgZGVzY3JpcHRvciB0byB1bnVzZWQgc2VnbWVudCBy ZWdpc3RlcnMuICovCisgICAgICAgIHhvciAgICAgJWVkeCwlZWR4CisgICAgICAgIG1vdiAgICAg JWVkeCwlZnMKKyAgICAgICAgbW92ICAgICAlZWR4LCVncworCisgICAgICAgIC8qIERpc2FibGUg cGFnaW5nLiAqLworICAgICAgICBtb3YgICAgICVjcjAsJWVkeAorICAgICAgICBhbmQgICAgICQo flg4Nl9DUjBfUEcpLCVlZHgKKyAgICAgICAgbW92ICAgICAlZWR4LCVjcjAKKworICAgICAgICAv KiBKdW1wIHRvIGVhcmxpZXIgbG9hZGVkIGFkZHJlc3MuICovCisgICAgICAgIGptcCAgICAgKiVl ZGkKKwogX19zdGFydDoKICAgICAgICAgY2xkCiAgICAgICAgIGNsaQpAQCAtMTU3LDcgKzM2MSw3 IEBAIF9fc3RhcnQ6CiAKICAgICAgICAgLyogTm90IGF2YWlsYWJsZT8gQkRBIHZhbHVlIHdpbGwg YmUgZmluZS4gKi8KICAgICAgICAgY21vdm56ICBNQl9tZW1fbG93ZXIoJWVieCksJWVkeAotICAg ICAgICBqbXAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAgICAgam1wICAgICB0cmFtcG9saW5l X2Jpb3Nfc2V0dXAKIAogLkxtdWx0aWJvb3QyX3Byb3RvOgogICAgICAgICAvKiBTa2lwIE11bHRp Ym9vdDIgaW5mb3JtYXRpb24gZml4ZWQgcGFydC4gKi8KQEAgLTE2OSwxNiArMzczLDI0IEBAIF9f c3RhcnQ6CiAgICAgICAgIG1vdiAgICAgJWVjeCwlZWRpCiAgICAgICAgIHN1YiAgICAgJWVieCwl ZWRpCiAgICAgICAgIGNtcCAgICAgJWVkaSxNQjJfZml4ZWRfdG90YWxfc2l6ZSglZWJ4KQotICAg ICAgICBqYmUgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAgICAgamJlICAgICB0cmFtcG9saW5l X2Jpb3Nfc2V0dXAKIAogICAgICAgICAvKiBHZXQgbWVtX2xvd2VyIGZyb20gTXVsdGlib290MiBp bmZvcm1hdGlvbi4gKi8KICAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9CQVNJ Q19NRU1JTkZPLE1CMl90YWdfdHlwZSglZWN4KQogICAgICAgICBjbW92ZSAgIE1CMl9tZW1fbG93 ZXIoJWVjeCksJWVkeAotICAgICAgICBqZSAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAgICAg amUgICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKKworICAgICAgICAvKiBFRkkgSUEtMzIgcGxh dGZvcm1zIGFyZSBub3Qgc3VwcG9ydGVkLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1Qy X1RBR19UWVBFX0VGSTMyLE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIy X2VmaV9pYV8zMgorCisgICAgICAgIC8qIEJvb3Rsb2FkZXIgc2h1dGRvd24gRUZJIHg2NCBib290 IHNlcnZpY2VzLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTY0 LE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIyX25vX2JzCiAKICAgICAg ICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLwogICAgICAg ICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKLSAg ICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGlu ZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3QyIGluZm9ybWF0 aW9uIHRhZy4gKi8KICAgICAgICAgYWRkICAgICBNQjJfdGFnX3NpemUoJWVjeCksJWVjeApAQCAt MTg2LDcgKzM5OCw3IEBAIF9fc3RhcnQ6CiAgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9U QUdfQUxJR04tMSksJWVjeAogICAgICAgICBqbXAgICAgIDBiCiAKLXRyYW1wb2xpbmVfc2V0dXA6 Cit0cmFtcG9saW5lX2Jpb3Nfc2V0dXA6CiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNl Z21lbnQgNjRrIGJlbG93IEVCREEgKi8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAg ICAgIC8qIEVCREEgc2VnbWVudCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAg ICAgLyogc2FuaXR5IGNoZWNrIChoaWdoKSAqLwpAQCAtMjAyLDE2ICs0MTQsMTkgQEAgdHJhbXBv bGluZV9zZXR1cDoKICAgICAgICAgICogbXVsdGlib290IHN0cnVjdHVyZSAoaWYgYXZhaWxhYmxl KSBhbmQgdXNlIHRoZSBzbWFsbGVzdC4KICAgICAgICAgICovCiAgICAgICAgIGNtcCAgICAgJDB4 MTAwLCVlZHggICAgICAgICAvKiBpcyB0aGUgbXVsdGlib290IHZhbHVlIHRvbyBzbWFsbD8gKi8K LSAgICAgICAgamIgICAgICAyZiAgICAgICAgICAgICAgICAgIC8qIGlmIHNvLCBkbyBub3QgdXNl IGl0ICovCisgICAgICAgIGpiICAgICAgdHJhbXBvbGluZV9zZXR1cCAgICAvKiBpZiBzbywgZG8g bm90IHVzZSBpdCAqLwogICAgICAgICBzaGwgICAgICQxMC00LCVlZHgKICAgICAgICAgY21wICAg ICAlZWN4LCVlZHggICAgICAgICAgIC8qIGNvbXBhcmUgd2l0aCBCREEgdmFsdWUgKi8KICAgICAg ICAgY21vdmIgICAlZWR4LCVlY3ggICAgICAgICAgIC8qIGFuZCB1c2UgdGhlIHNtYWxsZXIgKi8K IAotMjogICAgICAvKiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9saW5lICovCisgICAgICAg IC8qIFJlc2VydmUgNjRrYiBmb3IgdGhlIHRyYW1wb2xpbmUuICovCiAgICAgICAgIHN1YiAgICAg JDB4MTAwMCwlZWN4CiAKICAgICAgICAgLyogRnJvbSBhcmNoL3g4Ni9zbXBib290LmM6IHN0YXJ0 X2VpcCBoYWQgYmV0dGVyIGJlIHBhZ2UtYWxpZ25lZCEgKi8KICAgICAgICAgeG9yICAgICAlY2ws ICVjbAorCit0cmFtcG9saW5lX3NldHVwOgorICAgICAgICAvKiBTYXZlIHRyYW1wb2xpbmUgYWRk cmVzcyBmb3IgbGF0ZXIgdXNlLiAqLwogICAgICAgICBzaGwgICAgICQ0LCAlZWN4CiAgICAgICAg IG1vdiAgICAgJWVjeCxzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpCiAKQEAgLTIyMyw3ICs0Mzgs MTQgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgY2FsbCAgICByZWxvYwogICAgICAgICBt b3YgICAgICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKIAotICAgICAgICAvKiBJbml0aWFs aXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkgKi8KKyAgICAgICAgLyoKKyAgICAgICAgICog RG8gbm90IHplcm8gQlNTIG9uIEVGSSBwbGF0Zm9ybSBoZXJlLgorICAgICAgICAgKiBJdCB3YXMg aW5pdGlhbGl6ZWQgZWFybGllci4KKyAgICAgICAgICovCisgICAgICAgIGNtcGIgICAgJDAsc3lt X3BoeXMoc2tpcF9yZWFsbW9kZSkKKyAgICAgICAgam56ICAgICAxZgorCisgICAgICAgIC8qIElu aXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKS4gKi8KICAgICAgICAgbW92ICAgICAk c3ltX3BoeXMoX19ic3Nfc3RhcnQpLCVlZGkKICAgICAgICAgbW92ICAgICAkc3ltX3BoeXMoX19i c3NfZW5kKSwlZWN4CiAgICAgICAgIHN1YiAgICAgJWVkaSwlZWN4CkBAIC0yMzEsNiArNDUzLDcg QEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgc2hyICAgICAkMiwlZWN4CiAgICAgICAgIHJl cCBzdG9zbAogCisxOgogICAgICAgICAvKiBJbnRlcnJvZ2F0ZSBDUFUgZXh0ZW5kZWQgZmVhdHVy ZXMgdmlhIENQVUlELiAqLwogICAgICAgICBtb3YgICAgICQweDgwMDAwMDAwLCVlYXgKICAgICAg ICAgY3B1aWQKQEAgLTI4Miw4ICs1MDUsMTMgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAg Y21wICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5lX3NlZ19zdG9wKSwlZWRpCiAgICAgICAgIGpi ICAgICAgMWIKIAorICAgICAgICAvKiBEbyBub3QgcGFyc2UgY29tbWFuZCBsaW5lIG9uIEVGSSBw bGF0Zm9ybSBoZXJlLiAqLworICAgICAgICBjbXBiICAgICQwLHN5bV9waHlzKHNraXBfcmVhbG1v ZGUpCisgICAgICAgIGpueiAgICAgMWYKKwogICAgICAgICBjYWxsICAgIGNtZGxpbmVfcGFyc2Vf ZWFybHkKIAorMToKICAgICAgICAgLyogU3dpdGNoIHRvIGxvdy1tZW1vcnkgc3RhY2suICAqLwog ICAgICAgICBtb3YgICAgIHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cyksJWVkaQogICAgICAgICBs ZWEgICAgIDB4MTAwMDAoJWVkaSksJWVzcApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2VmaS9l ZmktYm9vdC5oIGIveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCmluZGV4IDYyYzAxMGUuLjI4 NGNmOTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaAorKysgYi94ZW4v YXJjaC94ODYvZWZpL2VmaS1ib290LmgKQEAgLTIxMCwxMiArMjEwLDE0IEBAIHN0YXRpYyB2b2lk ICpfX2luaXQgZWZpX2FyY2hfYWxsb2NhdGVfbW1hcF9idWZmZXIoVUlOVE4gbWFwX3NpemUpCiAK IHN0YXRpYyB2b2lkIF9faW5pdCBlZmlfYXJjaF9wcmVfZXhpdF9ib290KHZvaWQpCiB7Ci0gICAg aWYgKCAhdHJhbXBvbGluZV9waHlzICkKLSAgICB7Ci0gICAgICAgIGlmICggIWNmZy5hZGRyICkK LSAgICAgICAgICAgIGJsZXhpdChMIk5vIG1lbW9yeSBmb3IgdHJhbXBvbGluZSIpOworICAgIGlm ICggdHJhbXBvbGluZV9waHlzICkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCAhY2ZnLmFk ZHIgKQorICAgICAgICBibGV4aXQoTCJObyBtZW1vcnkgZm9yIHRyYW1wb2xpbmUiKTsKKworICAg IGlmICggZWZpX2VuYWJsZWQoRUZJX0xPQURFUikgKQogICAgICAgICByZWxvY2F0ZV90cmFtcG9s aW5lKGNmZy5hZGRyKTsKLSAgICB9CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBub3JldHVybiBl ZmlfYXJjaF9wb3N0X2V4aXRfYm9vdCh2b2lkKQpAQCAtNjUzLDYgKzY1NSw0MyBAQCBzdGF0aWMg Ym9vbF90IF9faW5pdCBlZmlfYXJjaF91c2VfY29uZmlnX2ZpbGUoRUZJX1NZU1RFTV9UQUJMRSAq U3lzdGVtVGFibGUpCiAKIHN0YXRpYyB2b2lkIGVmaV9hcmNoX2ZsdXNoX2RjYWNoZV9hcmVhKGNv bnN0IHZvaWQgKnZhZGRyLCBVSU5UTiBzaXplKSB7IH0KIAorcGFkZHJfdCBfX2luaXQgZWZpX211 bHRpYm9vdDIoRUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVt VGFibGUpCit7CisgICAgRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wOworICAgIFVJ TlROIGNvbHMsIGdvcF9tb2RlID0gfjAsIHJvd3M7CisKKyAgICBfX3NldF9iaXQoRUZJX0JPT1Qs ICZlZmlfZmxhZ3MpOworICAgIF9fc2V0X2JpdChFRklfUlMsICZlZmlfZmxhZ3MpOworCisgICAg ZWZpX2luaXQoSW1hZ2VIYW5kbGUsIFN5c3RlbVRhYmxlKTsKKworICAgIGVmaV9jb25zb2xlX3Nl dF9tb2RlKCk7CisKKyAgICBpZiAoIFN0ZE91dC0+UXVlcnlNb2RlKFN0ZE91dCwgU3RkT3V0LT5N b2RlLT5Nb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbHMsICZyb3dzKSA9PSBF RklfU1VDQ0VTUyApCisgICAgICAgIGVmaV9hcmNoX2NvbnNvbGVfaW5pdChjb2xzLCByb3dzKTsK KworICAgIGdvcCA9IGVmaV9nZXRfZ29wKCk7CisKKyAgICBpZiAoIGdvcCApCisgICAgICAgIGdv cF9tb2RlID0gZWZpX2ZpbmRfZ29wX21vZGUoZ29wLCAwLCAwLCAwKTsKKworICAgIGVmaV9hcmNo X2VkZCgpOworICAgIGVmaV9hcmNoX2NwdSgpOworCisgICAgZWZpX3RhYmxlcygpOworICAgIHNl dHVwX2VmaV9wY2koKTsKKyAgICBlZmlfdmFyaWFibGVzKCk7CisKKyAgICBpZiAoIGdvcCApCisg ICAgICAgIGVmaV9zZXRfZ29wX21vZGUoZ29wLCBnb3BfbW9kZSk7CisKKyAgICBlZmlfZXhpdF9i b290KEltYWdlSGFuZGxlLCBTeXN0ZW1UYWJsZSk7CisKKyAgICAvKiBSZXR1cm4gaGlnaGVzdCB1 c2FibGUgbWVtb3J5IGFkZHJlc3MgYmVsb3cgMSBNaUIuICovCisgICAgcmV0dXJuIGNmZy5hZGRy OworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2VmaS9zdHViLmMgYi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwppbmRleCBi Yzk5MTljLi4yMzJkZDEyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYworKysg Yi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwpAQCAtMyw2ICszLDQ0IEBACiAjaW5jbHVkZSA8eGVu L2luaXQuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNp bmNsdWRlIDxhc20vZWZpYmluZC5oPgorI2luY2x1ZGUgPGVmaS9lZmlkZWYuaD4KKyNpbmNsdWRl IDxlZmkvZWZpY2Fwc3VsZS5oPgorI2luY2x1ZGUgPGVmaS9lZmljb24uaD4KKyNpbmNsdWRlIDxl ZmkvZWZpZGV2cC5oPgorI2luY2x1ZGUgPGVmaS9lZmlhcGkuaD4KKworLyoKKyAqIEhlcmUgd2Ug YXJlIGluIEVGSSBzdHViLiBFRkkgY2FsbHMgYXJlIG5vdCBzdXBwb3J0ZWQgZHVlIHRvIGxhY2sK KyAqIG9mIHJlbGV2YW50IGZ1bmN0aW9uYWxpdHkgaW4gY29tcGlsZXIgYW5kL29yIGxpbmtlci4K KyAqCisgKiBlZmlfbXVsdGlib290MigpIGlzIGFuIGV4Y2VwdGlvbi4gUGxlYXNlIGxvb2sgYmVs b3cgZm9yIG1vcmUgZGV0YWlscy4KKyAqLworCitwYWRkcl90IF9faW5pdCBub3JldHVybiBlZmlf bXVsdGlib290MihFRklfSEFORExFIEltYWdlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCit7CisgICAg Q0hBUjE2ICplcnIgPSBMIlhlbiBkb2VzIG5vdCBoYXZlIEVGSSBjb2RlIGJ1aWxkIGluISEhXHJc blN5c3RlbSBoYWx0ZWQhISFcclxuIjsKKyAgICBTSU1QTEVfVEVYVF9PVVRQVVRfSU5URVJGQUNF ICpTdGRFcnI7CisKKyAgICBTdGRFcnIgPSBTeXN0ZW1UYWJsZS0+U3RkRXJyID8gU3lzdGVtVGFi bGUtPlN0ZEVyciA6IFN5c3RlbVRhYmxlLT5Db25PdXQ7CisKKyAgICAvKgorICAgICAqIFByaW50 IGVycm9yIG1lc3NhZ2UgYW5kIGhhbHQgdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIFdlIGhh dmUgdG8gb3BlbiBjb2RlIE1TIHg2NCBjYWxsaW5nIGNvbnZlbnRpb24KKyAgICAgKiBpbiBhc3Nl bWJseSBiZWNhdXNlIGhlcmUgdGhpcyBjb252ZW50aW9uIG1heQorICAgICAqIG5vdCBiZSBkaXJl Y3RseSBzdXBwb3J0ZWQgYnkgQyBjb21waWxlci4KKyAgICAgKi8KKyAgICBhc20gdm9sYXRpbGUo CisgICAgIiAgICBjYWxsICUyICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIwOiAgaGx0 ICAgICAgICAgICAgICAgICAgICAgICAgICBcbiIKKyAgICAiICAgIGptcCAgMGIgICAgICAgICAg ICAgICAgICAgICAgXG4iCisgICAgICAgOiAiK2MiIChTdGRFcnIpLCAiK2QiIChlcnIpIDogImci IChTdGRFcnItPk91dHB1dFN0cmluZykKKyAgICAgICA6ICJyYXgiLCAicjgiLCAicjkiLCAicjEw IiwgInIxMSIsICJtZW1vcnkiKTsKKworICAgIHVucmVhY2hhYmxlKCk7Cit9CiAKIGJvb2wgZWZp X2VuYWJsZWQodW5zaWduZWQgaW50IGZlYXR1cmUpCiB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRz LmMKaW5kZXggYjQzN2E4Zi4uMmEyMjY1OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82 NC9hc20tb2Zmc2V0cy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpA QCAtMTc1LDYgKzE3NSw4IEBAIHZvaWQgX19kdW1teV9fKHZvaWQpCiAgICAgT0ZGU0VUKE1CMl90 YWdfdHlwZSwgbXVsdGlib290Ml90YWdfdCwgdHlwZSk7CiAgICAgT0ZGU0VUKE1CMl90YWdfc2l6 ZSwgbXVsdGlib290Ml90YWdfdCwgc2l6ZSk7CiAgICAgT0ZGU0VUKE1CMl9tZW1fbG93ZXIsIG11 bHRpYm9vdDJfdGFnX2Jhc2ljX21lbWluZm9fdCwgbWVtX2xvd2VyKTsKKyAgICBPRkZTRVQoTUIy X2VmaTY0X3N0LCBtdWx0aWJvb3QyX3RhZ19lZmk2NF90LCBwb2ludGVyKTsKKyAgICBPRkZTRVQo TUIyX2VmaTY0X2loLCBtdWx0aWJvb3QyX3RhZ19lZmk2NF9paF90LCBwb2ludGVyKTsKICAgICBC TEFOSygpOwogCiAgICAgT0ZGU0VUKERPTUFJTl92bV9hc3Npc3QsIHN0cnVjdCBkb21haW4sIHZt X2Fzc2lzdCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveGVuLmxkcy5TIGIveGVuL2FyY2gv eDg2L3hlbi5sZHMuUwppbmRleCAzOGJhZWEzLi5mNGI0ZTk5IDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYveGVuLmxkcy5TCisrKyBiL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKQEAgLTMzNCw1ICsz MzQsNSBAQCBBU1NFUlQoSVNfQUxJR05FRChfX2luaXRfZW5kLCAgIFBBR0VfU0laRSksICJfX2lu aXRfZW5kIG1pc2FsaWduZWQiKQogCiBBU1NFUlQoSVNfQUxJR05FRCh0cmFtcG9saW5lX3N0YXJ0 LCA0KSwgInRyYW1wb2xpbmVfc3RhcnQgbWlzYWxpZ25lZCIpCiBBU1NFUlQoSVNfQUxJR05FRCh0 cmFtcG9saW5lX2VuZCwgICA0KSwgInRyYW1wb2xpbmVfZW5kIG1pc2FsaWduZWQiKQotQVNTRVJU KElTX0FMSUdORUQoX19ic3Nfc3RhcnQsICAgICAgNCksICJfX2Jzc19zdGFydCBtaXNhbGlnbmVk IikKLUFTU0VSVChJU19BTElHTkVEKF9fYnNzX2VuZCwgICAgICAgIDQpLCAiX19ic3NfZW5kIG1p c2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQoX19ic3Nfc3RhcnQsICAgICAgOCksICJfX2Jz c19zdGFydCBtaXNhbGlnbmVkIikKK0FTU0VSVChJU19BTElHTkVEKF9fYnNzX2VuZCwgICAgICAg IDgpLCAiX19ic3NfZW5kIG1pc2FsaWduZWQiKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9lZmkv Ym9vdC5jIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jCmluZGV4IDkxZGY5YjUuLjdlMTlmOGEgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYworKysgYi94ZW4vY29tbW9uL2VmaS9ib290 LmMKQEAgLTgzLDYgKzgzLDE3IEBAIHN0YXRpYyBib29sX3QgbWF0Y2hfZ3VpZChjb25zdCBFRklf R1VJRCAqZ3VpZDEsIGNvbnN0IEVGSV9HVUlEICpndWlkMik7CiBzdGF0aWMgdm9pZCAqZWJtYWxs b2Moc2l6ZV90IHNpemUpOwogI2VuZGlmCiAKK3N0YXRpYyB2b2lkIGVmaV9pbml0KEVGSV9IQU5E TEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKTsKK3N0YXRpYyB2 b2lkIGVmaV9jb25zb2xlX3NldF9tb2RlKHZvaWQpOworc3RhdGljIEVGSV9HUkFQSElDU19PVVRQ VVRfUFJPVE9DT0wgKmVmaV9nZXRfZ29wKHZvaWQpOworc3RhdGljIFVJTlROIGVmaV9maW5kX2dv cF9tb2RlKEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBVSU5UTiBjb2xzLCBVSU5UTiByb3dzLCBVSU5UTiBkZXB0aCk7Citz dGF0aWMgdm9pZCBlZmlfdGFibGVzKHZvaWQpOworc3RhdGljIHZvaWQgc2V0dXBfZWZpX3BjaSh2 b2lkKTsKK3N0YXRpYyB2b2lkIGVmaV92YXJpYWJsZXModm9pZCk7CitzdGF0aWMgdm9pZCBlZmlf c2V0X2dvcF9tb2RlKEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCwgVUlOVE4gZ29w X21vZGUpOworc3RhdGljIHZvaWQgZWZpX2V4aXRfYm9vdChFRklfSEFORExFIEltYWdlSGFuZGxl LCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSk7CisKIHN0YXRpYyBjb25zdCBFRklfQk9P VF9TRVJWSUNFUyAqX19pbml0ZGF0YSBlZmlfYnM7CiBzdGF0aWMgVUlOVDMyIF9faW5pdGRhdGEg ZWZpX2JzX3JldmlzaW9uOwogc3RhdGljIEVGSV9IQU5ETEUgX19pbml0ZGF0YSBlZmlfaWg7Ci0t IAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=