From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v9 07/13] x86: add multiboot2 protocol support for EFI platforms Date: Thu, 29 Sep 2016 23:42:36 +0200 Message-ID: <1475185362-14198-8-git-send-email-daniel.kiper@oracle.com> References: <1475185362-14198-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bpj7D-0003S0-Ob for xen-devel@lists.xenproject.org; Thu, 29 Sep 2016 21:43:39 +0000 In-Reply-To: <1475185362-14198-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+Ci0t LQp2OSAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHVzZSAuTCBsYWJlbHMgaW5zdGVhZCBvZiBu dW1lcmljIG9uZXMgaW4gbXVsdGlib290MiBkYXRhIHNjYW5uaW5nIGxvb3BzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkuCgp2OCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHVzZSBf X2Jzc19zdGFydCglcmlwKS9fX2Jzc19lbmQoJXJpcCkgaW5zdGVhZCBvZgogICAgIG9mIC5zdGFy dG9mLiguYnNzKSglcmlwKS8kLnNpemVvZi4oLmJzcykgYmVjYXVzZQogICAgIGxhdHRlciBpcyBu b3QgdGVzdGVkIGV4dGVuc2l2ZWx5IGluIGRpZmZlcmVudAogICAgIGJ1aWx0IGVudmlyb25tZW50 cyB5ZXQKICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAtIGZpeCBtdWx0aWJv b3QyIGRhdGEgc2Nhbm5pbmcgbG9vcCBpbiB4ODZfMzIgY29kZQogICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLAogICAtIGFkZCBjaGVjayBmb3IgZXh0cmEgbWVtIGZvciBtYmkgZGF0YSBp ZiBYZW4gaXMgbG9hZGVkCiAgICAgdmlhIG11bHRpYm9vdDIgcHJvdG9jb2wgb24gRUZJIHBsYXRm b3JtCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50 cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjcgLSBzdWdnZXN0aW9ucy9maXhl czoKICAgLSBkbyBub3QgYWxsb2NhdGUgdHdpY2UgbWVtb3J5IGZvciB0cmFtcG9saW5lIGlmIHdl IHdlcmUKICAgICBsb2FkZWQgdmlhIG11bHRpYm9vdDIgcHJvdG9jb2wgb24gRUZJIHBsYXRmb3Jt LAogICAtIHdyYXAgbG9uZyBsaW5lCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjYg LSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBpbXByb3ZlIGxhYmVsIG5hbWVzIGluIGFzc2VtYmx5 CiAgICAgZXJyb3IgcHJpbnRpbmcgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgLSB2YXJpb3VzIG1pbm9yIGNsZWFudXBzIGFuZCBmaXhlcwogICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLgoKdjQgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSByZW1vdmUgcmVkdW5k YW50IEJTUyBhbGlnbm1lbnQsCiAgIC0gdXBkYXRlIEJTUyBhbGlnbm1lbnQgY2hlY2ssCiAgIC0g dXNlIF9fc2V0X2JpdCgpIGluc3RlYWQgb2Ygc2V0X2JpdCgpIGlmIHBvc3NpYmxlCiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gY2FsbCBlZmlfYXJjaF9jcHUoKSBmcm9tIGVm aV9tdWx0aWJvb3QyKCkKICAgICBldmVuIGlmIHRoZSBzYW1lIHdvcmsgaXMgZG9uZSBsYXRlciBp bgogICAgIG90aGVyIHBsYWNlIHJpZ2h0IG5vdwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jOmVmaV9tdWx0aWJvb3QyKCkKICAgICBm YWlsIHByb3Blcmx5IG9uIEVGSSBwbGF0Zm9ybXMsCiAgIC0gZG8gbm90IHJlYWQgZGF0YSBiZXlv bmQgdGhlIGVuZCBvZiBtdWx0aWJvb3QyCiAgICAgaW5mb3JtYXRpb24gaW4geGVuL2FyY2gveDg2 L2Jvb3QvaGVhZC5TCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIDMy LWJpdCByZWdpc3RlcnMgaW4geDg2XzY0IGNvZGUgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKSwKICAgLSBtdWx0aWJvb3QyIGluZm9ybWF0aW9uIGFkZHJlc3MgaXMg NjQtYml0CiAgICAgaW4geDg2XzY0IGNvZGUsIHNvLCB0cmVhdCBpdCBpcyBhcyBpcwogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSBjbW92Y2MgaWYgcG9zc2libGUsCiAg IC0gbGVhdmUgb25seSBvbmUgc3BhY2UgYmV0d2VlbiByZXAgYW5kIHN0b3NxCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBlcnJvciBoYW5kbGluZywKICAgLSBp bXByb3ZlIGVhcmx5IGVycm9yIG1lc3NhZ2VzLAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIGltcHJvdmUgZWFybHkgZXJyb3IgbWVzc2FnZXMgcHJpbnRpbmcgY29kZSwKICAg LSBpbXByb3ZlIGxhYmVsIG5hbWVzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAt IHZhcmlvdXMgbWlub3IgY2xlYW51cHMuCgp2MyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHRh a2UgaW50byBhY2NvdW50IGFsaWdubWVudCB3aGVuIHNraXBwaW5nIG11bHRpYm9vdDIgZml4ZWQg cGFydAogICAgIChzdWdnZXN0ZWQgYnkgS29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXBy b3ZlIHNlZ21lbnQgcmVnaXN0ZXJzIGluaXRpYWxpemF0aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2ggYW5kIEtvbnJhZCBSemVzenV0ZWsgV2lsayksCiAgIC0gaW1wcm92ZSBjb21taXQg bWVzc2FnZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjIgLSBzdWdnZXN0aW9u cy9maXhlczoKICAgLSBnZW5lcmF0ZSBtdWx0aWJvb3QyIGhlYWRlciB1c2luZyBtYWNyb3MKICAg ICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBzd2l0Y2ggQ1BVIHRvIHg4Nl8zMiBt b2RlIGJlZm9yZQogICAgIGp1bXBpbmcgdG8gMzItYml0IGNvZGUKICAgICAoc3VnZ2VzdGVkIGJ5 IEFuZHJldyBDb29wZXIpLAogICAtIHJlZHVjZSBjb2RlIGNoYW5nZXMgdG8gaW5jcmVhc2UgcGF0 Y2ggcmVhZGFiaWxpdHkKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXBy b3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaWdub3Jl IE1VTFRJQk9PVDJfVEFHX1RZUEVfQkFTSUNfTUVNSU5GTyB0YWcgb24gRUZJIHBsYXRmb3JtCiAg ICAgYW5kIGZpbmQgb24gbXkgb3duIG11bHRpYm9vdDIubWVtX2xvd2VyIHZhbHVlLAogICAtIHN0 b3AgZXhlY3V0aW9uIGlmIEVGSSBwbGF0Zm9ybSBpcyBkZXRlY3RlZAogICAgIGluIGxlZ2FjeSBC SU9TIHBhdGguCi0tLQogeGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TICAgICAgICAgIHwgIDI2MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiB4ZW4vYXJjaC94ODYvZWZpL2Vm aS1ib290LmggICAgICAgfCAgIDU0ICsrKysrKystCiB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYyAg ICAgICAgICAgfCAgIDM4ICsrKysrKwogeGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5j IHwgICAgMiArCiB4ZW4vYXJjaC94ODYveGVuLmxkcy5TICAgICAgICAgICAgfCAgICA0ICstCiB4 ZW4vY29tbW9uL2VmaS9ib290LmMgICAgICAgICAgICAgfCAgIDExICsrCiA2IGZpbGVzIGNoYW5n ZWQsIDM0NiBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvYm9vdC9oZWFkLlMgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKaW5kZXggZDQy M2ZkOC4uMDE1NWIzMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCisrKyBi L3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwpAQCAtODksNiArODksMTMgQEAgbXVsdGlib290Ml9o ZWFkZXJfc3RhcnQ6CiAgICAgICAgICAgICAgICAgICAgMCwgLyogTnVtYmVyIG9mIHRoZSBsaW5l cyAtIG5vIHByZWZlcmVuY2UuICovIFwKICAgICAgICAgICAgICAgICAgICAwICAvKiBOdW1iZXIg b2YgYml0cyBwZXIgcGl4ZWwgLSBubyBwcmVmZXJlbmNlLiAqLwogCisgICAgICAgIC8qIEluaGli aXQgYm9vdGxvYWRlciBmcm9tIGNhbGxpbmcgRXhpdEJvb3RTZXJ2aWNlcygpLiAqLworICAgICAg ICBtYjJodF9pbml0IE1CMl9IVChFRklfQlMpLCBNQjJfSFQoT1BUSU9OQUwpCisKKyAgICAgICAg LyogRUZJNjQgZW50cnkgcG9pbnQuICovCisgICAgICAgIG1iMmh0X2luaXQgTUIyX0hUKEVOVFJZ X0FERFJFU1NfRUZJNjQpLCBNQjJfSFQoT1BUSU9OQUwpLCBcCisgICAgICAgICAgICAgICAgICAg c3ltX3BoeXMoX19lZmk2NF9zdGFydCkKKwogICAgICAgICAvKiBNdWx0aWJvb3QyIGhlYWRlciBl bmQgdGFnLiAqLwogICAgICAgICBtYjJodF9pbml0IE1CMl9IVChFTkQpLCBNQjJfSFQoUkVRVUlS RUQpCiAuTG11bHRpYm9vdDJfaGVhZGVyX2VuZDoKQEAgLTEwMCwyMCArMTA3LDQ5IEBAIG11bHRp Ym9vdDJfaGVhZGVyX3N0YXJ0OgogZ2R0X2Jvb3RfZGVzY3I6CiAgICAgICAgIC53b3JkICAgNio4 LTEKICAgICAgICAgLmxvbmcgICBzeW1fcGh5cyh0cmFtcG9saW5lX2dkdCkKKyAgICAgICAgLmxv bmcgICAwIC8qIE5lZWRlZCBmb3IgNjQtYml0IGxnZHQgKi8KKworY3MzMl9zd2l0Y2hfYWRkcjoK KyAgICAgICAgLmxvbmcgICBzeW1fcGh5cyhjczMyX3N3aXRjaCkKKyAgICAgICAgLndvcmQgICBC T09UX0NTMzIKKworICAgICAgICAuYWxpZ24gNAordmdhX3RleHRfYnVmZmVyOgorICAgICAgICAu bG9uZyAgIDB4YjgwMDAKIAogLkxiYWRfY3B1X21zZzogLmFzY2l6ICJFUlI6IE5vdCBhIDY0LWJp dCBDUFUhIgogLkxiYWRfbGRyX21zZzogLmFzY2l6ICJFUlI6IE5vdCBhIE11bHRpYm9vdCBib290 bG9hZGVyISIKKy5MYmFkX2xkcl9uYnM6IC5hc2NpeiAiRVJSOiBCb290bG9hZGVyIHNodXRkb3du IEVGSSB4NjQgYm9vdCBzZXJ2aWNlcyEiCisuTGJhZF9sZHJfbnN0OiAuYXNjaXogIkVSUjogRUZJ IFN5c3RlbVRhYmxlIGlzIG5vdCBwcm92aWRlZCBieSBib290bG9hZGVyISIKKy5MYmFkX2xkcl9u aWg6IC5hc2NpeiAiRVJSOiBFRkkgSW1hZ2VIYW5kbGUgaXMgbm90IHByb3ZpZGVkIGJ5IGJvb3Rs b2FkZXIhIgorLkxiYWRfZWZpX21zZzogLmFzY2l6ICJFUlI6IEVGSSBJQS0zMiBwbGF0Zm9ybXMg YXJlIG5vdCBzdXBwb3J0ZWQhIgogCiAgICAgICAgIC5zZWN0aW9uIC5pbml0LnRleHQsICJheCIs IEBwcm9nYml0cwogCiBiYWRfY3B1OgogICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRf Y3B1X21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCi0gICAgICAgIGptcCAgICAgcHJpbnRfZXJy CisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCiBub3RfbXVsdGlib290OgogICAgICAgICBtb3Yg ICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX21zZykpLCVlc2kgIyBFcnJvciBtZXNzYWdlCi1wcmlu dF9lcnI6Ci0gICAgICAgIG1vdiAgICAgJDB4QjgwMDAsJWVkaSAgIyBWR0EgZnJhbWVidWZmZXIK LTE6ICAgICAgbW92ICAgICAoJWVzaSksJWJsCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisu TG1iMl9ub19zdDoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uc3QpKSwl ZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0YgorLkxtYjJfbm9f aWg6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9sZHJfbmloKSksJWVzaSAjIEVy cm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAuTGdldF92dGIKKy5MbWIyX25vX2JzOgorICAg ICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25icykpLCVlc2kgIyBFcnJvciBtZXNz YWdlCisgICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5v IFZHQSB0ZXh0IGJ1ZmZlcgorICAgICAgICBqbXAgICAgIC5Mc2VuZF9jaHIKKy5MbWIyX2VmaV9p YV8zMjoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2VmaV9tc2cpKSwlZXNpICMg RXJyb3IgbWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAgICAgICAgICAg ICAgICAgIyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCisu TGdldF92dGI6CisgICAgICAgIG1vdiAgICAgc3ltX3BoeXModmdhX3RleHRfYnVmZmVyKSwlZWRp CisuTHNlbmRfY2hyOgorICAgICAgICBtb3YgICAgICglZXNpKSwlYmwKICAgICAgICAgdGVzdCAg ICAlYmwsJWJsICAgICAgICAjIFRlcm1pbmF0ZSBvbiAnXDAnIHNlbnRpbmVsCiAgICAgICAgIGpl ICAgICAgLkxoYWx0CiAgICAgICAgIG1vdiAgICAgJDB4M2Y4KzUsJWR4ICAgIyBVQVJUIExpbmUg U3RhdHVzIFJlZ2lzdGVyCkBAIC0xMjMsMTMgKzE1OSwxODIgQEAgcHJpbnRfZXJyOgogICAgICAg ICBtb3YgICAgICQweDNmOCswLCVkeCAgICMgVUFSVCBUcmFuc21pdCBIb2xkaW5nIFJlZ2lzdGVy CiAgICAgICAgIG1vdiAgICAgJWJsLCVhbAogICAgICAgICBvdXQgICAgICVhbCwlZHggICAgICAg ICMgU2VuZCBhIGNoYXJhY3RlciBvdmVyIHRoZSBzZXJpYWwgbGluZQotICAgICAgICBtb3ZzYiAg ICAgICAgICAgICAgICAgICMgV3JpdGUgYSBjaGFyYWN0ZXIgdG8gdGhlIFZHQSBmcmFtZWJ1ZmZl cgorICAgICAgICB0ZXN0ICAgICVlZGksJWVkaSAgICAgICMgSXMgdGhlIFZHQSB0ZXh0IGJ1ZmZl ciBhdmFpbGFibGU/CisgICAgICAgIGp6ICAgICAgLkxzZW5kX2NocgorICAgICAgICBtb3ZzYiAg ICAgICAgICAgICAgICAgICMgV3JpdGUgYSBjaGFyYWN0ZXIgdG8gdGhlIFZHQSB0ZXh0IGJ1ZmZl cgogICAgICAgICBtb3YgICAgICQ3LCVhbAotICAgICAgICBzdG9zYiAgICAgICAgICAgICAgICAg ICMgV3JpdGUgYW4gYXR0cmlidXRlIHRvIHRoZSBWR0EgZnJhbWVidWZmZXIKLSAgICAgICAgam1w ICAgICAxYgorICAgICAgICBzdG9zYiAgICAgICAgICAgICAgICAgICMgV3JpdGUgYW4gYXR0cmli dXRlIHRvIHRoZSBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCiAu TGhhbHQ6IGhsdAogICAgICAgICBqbXAgICAgIC5MaGFsdAogCisgICAgICAgIC5jb2RlNjQKKwor X19lZmk2NF9zdGFydDoKKyAgICAgICAgY2xkCisKKyAgICAgICAgLyogVkdBIGlzIG5vdCBhdmFp bGFibGUgb24gRUZJIHBsYXRmb3Jtcy4gKi8KKyAgICAgICAgbW92bCAgICQwLHZnYV90ZXh0X2J1 ZmZlciglcmlwKQorCisgICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIu ICovCisgICAgICAgIGNtcCAgICAgJE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4Cisg ICAgICAgIGplICAgICAgLkxlZmlfbXVsdGlib290Ml9wcm90bworCisgICAgICAgIC8qIEp1bXAg dG8gbm90X211bHRpYm9vdCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwor ICAgICAgICBsZWEgICAgIG5vdF9tdWx0aWJvb3QoJXJpcCksJWVkaQorICAgICAgICBqbXAgICAg IHg4Nl8zMl9zd2l0Y2gKKworLkxlZmlfbXVsdGlib290Ml9wcm90bzoKKyAgICAgICAgLyogWmVy byBFRkkgU3lzdGVtVGFibGUgYW5kIEVGSSBJbWFnZUhhbmRsZSBhZGRyZXNzZXMuICovCisgICAg ICAgIHhvciAgICAgJWVzaSwlZXNpCisgICAgICAgIHhvciAgICAgJWVkaSwlZWRpCisKKyAgICAg ICAgLyogU2tpcCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCisgICAgICAg IGxlYSAgICAgKE1CMl9maXhlZF9zaXplb2YrTVVMVElCT09UMl9UQUdfQUxJR04tMSkoJXJieCks JWVjeAorICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKwor LkxlZmlfbWIyX3RzaXplOgorICAgICAgICAvKiBDaGVjayBNdWx0aWJvb3QyIGluZm9ybWF0aW9u IHRvdGFsIHNpemUuICovCisgICAgICAgIG1vdiAgICAgJWVjeCwlcjhkCisgICAgICAgIHN1YiAg ICAgJWVieCwlcjhkCisgICAgICAgIGNtcCAgICAgJXI4ZCxNQjJfZml4ZWRfdG90YWxfc2l6ZSgl cmJ4KQorICAgICAgICBqYmUgICAgIHJ1bl9icworCisgICAgICAgIC8qIEFyZSBFRkkgYm9vdCBz ZXJ2aWNlcyBhdmFpbGFibGU/ICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZ UEVfRUZJX0JTLE1CMl90YWdfdHlwZSglcmN4KQorICAgICAgICBqbmUgICAgIC5MZWZpX21iMl9z dAorCisgICAgICAgIC8qCisgICAgICAgICAqIFllcywgc3RvcmUgdGhhdCBpbmZvIGluIHNraXBf cmVhbG1vZGUgdmFyaWFibGUuIEkgYWdyZWUgdGhhdAorICAgICAgICAgKiBpdHMgbmFtZSBpcyBh IGJpdCB1bmZvcnR1bmF0ZSBpbiB0aGlzIGNvbnRleHQsIGhvd2V2ZXIsIGJ5IHRoZQorICAgICAg ICAgKiB3YXkgd2UgZGlzYWJsZSByZWFsIG1vZGUgYW5kIG90aGVyIGxlZ2FjeSBzdHVmZiB3aGlj aCBzaG91bGQKKyAgICAgICAgICogbm90IGJlIHJ1biBvbiBFRkkgcGxhdGZvcm1zLgorICAgICAg ICAgKi8KKyAgICAgICAgaW5jYiAgICBza2lwX3JlYWxtb2RlKCVyaXApCisgICAgICAgIGptcCAg ICAgLkxlZmlfbWIyX25leHRfdGFnCisKKy5MZWZpX21iMl9zdDoKKyAgICAgICAgLyogR2V0IEVG SSBTeXN0ZW1UYWJsZSBhZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KKyAg ICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJXJj eCkKKyAgICAgICAgY21vdmUgICBNQjJfZWZpNjRfc3QoJXJjeCksJXJzaQorICAgICAgICBqZSAg ICAgIC5MZWZpX21iMl9uZXh0X3RhZworCisgICAgICAgIC8qIEdldCBFRkkgSW1hZ2VIYW5kbGUg YWRkcmVzcyBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwgICAg JE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjRfSUgsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAg IGNtb3ZlICAgTUIyX2VmaTY0X2loKCVyY3gpLCVyZGkKKyAgICAgICAgamUgICAgICAuTGVmaV9t YjJfbmV4dF90YWcKKworICAgICAgICAvKiBJcyBpdCB0aGUgZW5kIG9mIE11bHRpYm9vdDIgaW5m b3JtYXRpb24/ICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRU5ELE1C Ml90YWdfdHlwZSglcmN4KQorICAgICAgICBqZSAgICAgIHJ1bl9icworCisuTGVmaV9tYjJfbmV4 dF90YWc6CisgICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGlib290MiBpbmZvcm1hdGlvbiB0YWcu ICovCisgICAgICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVyY3gpLCVlY3gKKyAgICAgICAgYWRk ICAgICAkKE1VTFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAgICAgICAgYW5kICAgICAkfihN VUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisgICAgICAgIGptcCAgICAgLkxlZmlfbWIyX3Rz aXplCisKK3J1bl9iczoKKyAgICAgICAgLyogQXJlIEVGSSBib290IHNlcnZpY2VzIGF2YWlsYWJs ZT8gKi8KKyAgICAgICAgY21wYiAgICAkMCxza2lwX3JlYWxtb2RlKCVyaXApCisgICAgICAgIGpu eiAgICAgMGYKKworICAgICAgICAvKiBKdW1wIHRvIC5MbWIyX25vX2JzIGFmdGVyIHN3aXRjaGlu ZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgLkxtYjJfbm9fYnMoJXJp cCksJWVkaQorICAgICAgICBqbXAgICAgIHg4Nl8zMl9zd2l0Y2gKKworMDoKKyAgICAgICAgLyog SXMgRUZJIFN5c3RlbVRhYmxlIGFkZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisg ICAgICAgIHRlc3QgICAgJXJzaSwlcnNpCisgICAgICAgIGpueiAgICAgMWYKKworICAgICAgICAv KiBKdW1wIHRvIC5MbWIyX25vX3N0IGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUu ICovCisgICAgICAgIGxlYSAgICAgLkxtYjJfbm9fc3QoJXJpcCksJWVkaQorICAgICAgICBqbXAg ICAgIHg4Nl8zMl9zd2l0Y2gKKworMToKKyAgICAgICAgLyogSXMgRUZJIEltYWdlSGFuZGxlIGFk ZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJkaSwl cmRpCisgICAgICAgIGpueiAgICAgMmYKKworICAgICAgICAvKiBKdW1wIHRvIC5MbWIyX25vX2lo IGFmdGVyIHN3aXRjaGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAg LkxtYjJfbm9faWgoJXJpcCksJWVkaQorICAgICAgICBqbXAgICAgIHg4Nl8zMl9zd2l0Y2gKKwor MjoKKyAgICAgICAgcHVzaCAgICAlcmF4CisgICAgICAgIHB1c2ggICAgJXJkaQorCisgICAgICAg IC8qCisgICAgICAgICAqIEluaXRpYWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKS4KKyAg ICAgICAgICogSXQgbXVzdCBiZSBkb25lIGVhcmxpZXIgdGhhbiBpbiBCSU9TIGNhc2UKKyAgICAg ICAgICogYmVjYXVzZSBlZmlfbXVsdGlib290MigpIHRvdWNoZXMgaXQuCisgICAgICAgICAqLwor ICAgICAgICBsZWEgICAgIF9fYnNzX3N0YXJ0KCVyaXApLCVlZGkKKyAgICAgICAgbGVhICAgICBf X2Jzc19lbmQoJXJpcCksJWVjeAorICAgICAgICBzdWIgICAgICVlZGksJWVjeAorICAgICAgICBz aHIgICAgICQzLCVlY3gKKyAgICAgICAgeG9yICAgICAlZWF4LCVlYXgKKyAgICAgICAgcmVwIHN0 b3NxCisKKyAgICAgICAgcG9wICAgICAlcmRpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogZWZp X211bHRpYm9vdDIoKSBpcyBjYWxsZWQgYWNjb3JkaW5nIHRvIFN5c3RlbSBWIEFNRDY0IEFCSToK KyAgICAgICAgICogICAtIElOOiAlcmRpIC0gRUZJIEltYWdlSGFuZGxlLCAlcnNpIC0gRUZJIFN5 c3RlbVRhYmxlLAorICAgICAgICAgKiAgIC0gT1VUOiAlcmF4IC0gaGlnaGVzdCB1c2FibGUgbWVt b3J5IGFkZHJlc3MgYmVsb3cgMSBNaUI7CisgICAgICAgICAqICAgICAgICAgICAgICAgICBtZW1v cnkgYWJvdmUgdGhpcyBhZGRyZXNzIGlzIHJlc2VydmVkIGZvciB0cmFtcG9saW5lOworICAgICAg ICAgKiAgICAgICAgICAgICAgICAgbWVtb3J5IGJlbG93IHRoaXMgYWRkcmVzcyBpcyB1c2VkIGFz IGEgc3RvcmFnZSBmb3IKKyAgICAgICAgICogICAgICAgICAgICAgICAgIG1iaSBzdHJ1Y3QgY3Jl YXRlZCBpbiByZWxvYygpLgorICAgICAgICAgKgorICAgICAgICAgKiBNVUxUSUJPT1QyX1RBR19U WVBFX0JBU0lDX01FTUlORk8gdGFnIGlzIG5vdCBwcm92aWRlZAorICAgICAgICAgKiBvbiBFRkkg cGxhdGZvcm1zLiBIZW5jZSwgaXQgY291bGQgbm90IGJlIHVzZWQgbGlrZQorICAgICAgICAgKiBv biBsZWdhY3kgQklPUyBwbGF0Zm9ybXMuCisgICAgICAgICAqLworICAgICAgICBjYWxsICAgIGVm aV9tdWx0aWJvb3QyCisKKyAgICAgICAgLyogQ29udmVydCBtZW1vcnkgYWRkcmVzcyB0byBieXRl cy8xNiBhbmQgc3RvcmUgaXQgaW4gc2FmZSBwbGFjZS4gKi8KKyAgICAgICAgc2hyICAgICAkNCwl ZWF4CisgICAgICAgIG1vdiAgICAgJWVheCwlZWN4CisKKyAgICAgICAgcG9wICAgICAlcmF4CisK KyAgICAgICAgLyogSnVtcCB0byB0cmFtcG9saW5lX3NldHVwIGFmdGVyIHN3aXRjaGluZyBDUFUg dG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgdHJhbXBvbGluZV9zZXR1cCglcmlw KSwlZWRpCisKK3g4Nl8zMl9zd2l0Y2g6CisgICAgICAgIGNsaQorCisgICAgICAgIC8qIEluaXRp YWxpemUgR0RUUi4gKi8KKyAgICAgICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQorCisg ICAgICAgIC8qIFJlbG9hZCBjb2RlIHNlbGVjdG9yLiAqLworICAgICAgICBsam1wbCAgICpjczMy X3N3aXRjaF9hZGRyKCVyaXApCisKKyAgICAgICAgLmNvZGUzMgorCitjczMyX3N3aXRjaDoKKyAg ICAgICAgLyogSW5pdGlhbGl6ZSBiYXNpYyBkYXRhIHNlZ21lbnRzLiAqLworICAgICAgICBtb3Yg ICAgICRCT09UX0RTLCVlZHgKKyAgICAgICAgbW92ICAgICAlZWR4LCVkcworICAgICAgICBtb3Yg ICAgICVlZHgsJWVzCisgICAgICAgIG1vdiAgICAgJWVkeCwlc3MKKyAgICAgICAgLyogJWVzcCBp cyBpbml0aWFsaXplZCBsYXRlci4gKi8KKworICAgICAgICAvKiBMb2FkIG51bGwgZGVzY3JpcHRv ciB0byB1bnVzZWQgc2VnbWVudCByZWdpc3RlcnMuICovCisgICAgICAgIHhvciAgICAgJWVkeCwl ZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZnMKKyAgICAgICAgbW92ICAgICAlZWR4LCVncwor CisgICAgICAgIC8qIERpc2FibGUgcGFnaW5nLiAqLworICAgICAgICBtb3YgICAgICVjcjAsJWVk eAorICAgICAgICBhbmQgICAgICQoflg4Nl9DUjBfUEcpLCVlZHgKKyAgICAgICAgbW92ICAgICAl ZWR4LCVjcjAKKworICAgICAgICAvKiBKdW1wIHRvIGVhcmxpZXIgbG9hZGVkIGFkZHJlc3MuICov CisgICAgICAgIGptcCAgICAgKiVlZGkKKwogX19zdGFydDoKICAgICAgICAgY2xkCiAgICAgICAg IGNsaQpAQCAtMTU3LDcgKzM2Miw3IEBAIF9fc3RhcnQ6CiAKICAgICAgICAgLyogTm90IGF2YWls YWJsZT8gQkRBIHZhbHVlIHdpbGwgYmUgZmluZS4gKi8KICAgICAgICAgY21vdm56ICBNQl9tZW1f bG93ZXIoJWVieCksJWVkeAotICAgICAgICBqbXAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAg ICAgam1wICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAogLkxtdWx0aWJvb3QyX3Byb3RvOgog ICAgICAgICAvKiBTa2lwIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gZml4ZWQgcGFydC4gKi8KQEAg LTE2OSwyNCArMzc0LDMzIEBAIF9fc3RhcnQ6CiAgICAgICAgIG1vdiAgICAgJWVjeCwlZWRpCiAg ICAgICAgIHN1YiAgICAgJWVieCwlZWRpCiAgICAgICAgIGNtcCAgICAgJWVkaSxNQjJfZml4ZWRf dG90YWxfc2l6ZSglZWJ4KQotICAgICAgICBqYmUgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAg ICAgamJlICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAogICAgICAgICAvKiBHZXQgbWVtX2xv d2VyIGZyb20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KICAgICAgICAgY21wbCAgICAkTVVM VElCT09UMl9UQUdfVFlQRV9CQVNJQ19NRU1JTkZPLE1CMl90YWdfdHlwZSglZWN4KQogICAgICAg ICBjbW92ZSAgIE1CMl9tZW1fbG93ZXIoJWVjeCksJWVkeAotICAgICAgICBqZSAgICAgIHRyYW1w b2xpbmVfc2V0dXAKKyAgICAgICAgamUgICAgICAuTG1iMl9uZXh0X3RhZworCisgICAgICAgIC8q IEVGSSBJQS0zMiBwbGF0Zm9ybXMgYXJlIG5vdCBzdXBwb3J0ZWQuICovCisgICAgICAgIGNtcGwg ICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJMzIsTUIyX3RhZ190eXBlKCVlY3gpCisgICAgICAg IGplICAgICAgLkxtYjJfZWZpX2lhXzMyCisKKyAgICAgICAgLyogQm9vdGxvYWRlciBzaHV0ZG93 biBFRkkgeDY0IGJvb3Qgc2VydmljZXMuICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJf VEFHX1RZUEVfRUZJNjQsTUIyX3RhZ190eXBlKCVlY3gpCisgICAgICAgIGplICAgICAgLkxtYjJf bm9fYnMKIAogICAgICAgICAvKiBJcyBpdCB0aGUgZW5kIG9mIE11bHRpYm9vdDIgaW5mb3JtYXRp b24/ICovCiAgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRU5ELE1CMl90YWdf dHlwZSglZWN4KQotICAgICAgICBqZSAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAgICAgamUg ICAgICB0cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAorLkxtYjJfbmV4dF90YWc6CiAgICAgICAgIC8q IEdvIHRvIG5leHQgTXVsdGlib290MiBpbmZvcm1hdGlvbiB0YWcuICovCiAgICAgICAgIGFkZCAg ICAgTUIyX3RhZ19zaXplKCVlY3gpLCVlY3gKICAgICAgICAgYWRkICAgICAkKE1VTFRJQk9PVDJf VEFHX0FMSUdOLTEpLCVlY3gKICAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1QyX1RBR19BTElH Ti0xKSwlZWN4CiAgICAgICAgIGptcCAgICAgLkxtYjJfdHNpemUKIAotdHJhbXBvbGluZV9zZXR1 cDoKK3RyYW1wb2xpbmVfYmlvc19zZXR1cDoKICAgICAgICAgLyogU2V0IHVwIHRyYW1wb2xpbmUg c2VnbWVudCA2NGsgYmVsb3cgRUJEQSAqLwogICAgICAgICBtb3Z6d2wgIDB4NDBlLCVlY3ggICAg ICAgICAgLyogRUJEQSBzZWdtZW50ICovCiAgICAgICAgIGNtcCAgICAgJDB4YTAwMCwlZWN4ICAg ICAgICAvKiBzYW5pdHkgY2hlY2sgKGhpZ2gpICovCkBAIC0yMDIsMTYgKzQxNiwxOSBAQCB0cmFt cG9saW5lX3NldHVwOgogICAgICAgICAgKiBtdWx0aWJvb3Qgc3RydWN0dXJlIChpZiBhdmFpbGFi bGUpIGFuZCB1c2UgdGhlIHNtYWxsZXN0LgogICAgICAgICAgKi8KICAgICAgICAgY21wICAgICAk MHgxMDAsJWVkeCAgICAgICAgIC8qIGlzIHRoZSBtdWx0aWJvb3QgdmFsdWUgdG9vIHNtYWxsPyAq LwotICAgICAgICBqYiAgICAgIDJmICAgICAgICAgICAgICAgICAgLyogaWYgc28sIGRvIG5vdCB1 c2UgaXQgKi8KKyAgICAgICAgamIgICAgICB0cmFtcG9saW5lX3NldHVwICAgIC8qIGlmIHNvLCBk byBub3QgdXNlIGl0ICovCiAgICAgICAgIHNobCAgICAgJDEwLTQsJWVkeAogICAgICAgICBjbXAg ICAgICVlY3gsJWVkeCAgICAgICAgICAgLyogY29tcGFyZSB3aXRoIEJEQSB2YWx1ZSAqLwogICAg ICAgICBjbW92YiAgICVlZHgsJWVjeCAgICAgICAgICAgLyogYW5kIHVzZSB0aGUgc21hbGxlciAq LwogCi0yOiAgICAgIC8qIFJlc2VydmUgNjRrYiBmb3IgdGhlIHRyYW1wb2xpbmUgKi8KKyAgICAg ICAgLyogUmVzZXJ2ZSA2NGtiIGZvciB0aGUgdHJhbXBvbGluZS4gKi8KICAgICAgICAgc3ViICAg ICAkMHgxMDAwLCVlY3gKIAogICAgICAgICAvKiBGcm9tIGFyY2gveDg2L3NtcGJvb3QuYzogc3Rh cnRfZWlwIGhhZCBiZXR0ZXIgYmUgcGFnZS1hbGlnbmVkISAqLwogICAgICAgICB4b3IgICAgICVj bCwgJWNsCisKK3RyYW1wb2xpbmVfc2V0dXA6CisgICAgICAgIC8qIFNhdmUgdHJhbXBvbGluZSBh ZGRyZXNzIGZvciBsYXRlciB1c2UuICovCiAgICAgICAgIHNobCAgICAgJDQsICVlY3gKICAgICAg ICAgbW92ICAgICAlZWN4LHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cykKIApAQCAtMjIzLDcgKzQ0 MCwxNCBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBjYWxsICAgIHJlbG9jCiAgICAgICAg IG1vdiAgICAgJWVheCxzeW1fcGh5cyhtdWx0aWJvb3RfcHRyKQogCi0gICAgICAgIC8qIEluaXRp YWxpemUgQlNTIChubyBuYXN0eSBzdXJwcmlzZXMhKSAqLworICAgICAgICAvKgorICAgICAgICAg KiBEbyBub3QgemVybyBCU1Mgb24gRUZJIHBsYXRmb3JtIGhlcmUuCisgICAgICAgICAqIEl0IHdh cyBpbml0aWFsaXplZCBlYXJsaWVyLgorICAgICAgICAgKi8KKyAgICAgICAgY21wYiAgICAkMCxz eW1fcGh5cyhza2lwX3JlYWxtb2RlKQorICAgICAgICBqbnogICAgIDFmCisKKyAgICAgICAgLyog SW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNlcyEpLiAqLwogICAgICAgICBtb3YgICAg ICRzeW1fcGh5cyhfX2Jzc19zdGFydCksJWVkaQogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhf X2Jzc19lbmQpLCVlY3gKICAgICAgICAgc3ViICAgICAlZWRpLCVlY3gKQEAgLTIzMSw2ICs0NTUs NyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBzaHIgICAgICQyLCVlY3gKICAgICAgICAg cmVwIHN0b3NsCiAKKzE6CiAgICAgICAgIC8qIEludGVycm9nYXRlIENQVSBleHRlbmRlZCBmZWF0 dXJlcyB2aWEgQ1BVSUQuICovCiAgICAgICAgIG1vdiAgICAgJDB4ODAwMDAwMDAsJWVheAogICAg ICAgICBjcHVpZApAQCAtMjgyLDggKzUwNywxMyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAg ICBjbXAgICAgICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfc2VnX3N0b3ApLCVlZGkKICAgICAgICAg amIgICAgICAxYgogCisgICAgICAgIC8qIERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24gRUZJ IHBsYXRmb3JtIGhlcmUuICovCisgICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoc2tpcF9yZWFs bW9kZSkKKyAgICAgICAgam56ICAgICAxZgorCiAgICAgICAgIGNhbGwgICAgY21kbGluZV9wYXJz ZV9lYXJseQogCisxOgogICAgICAgICAvKiBTd2l0Y2ggdG8gbG93LW1lbW9yeSBzdGFjay4gICov CiAgICAgICAgIG1vdiAgICAgc3ltX3BoeXModHJhbXBvbGluZV9waHlzKSwlZWRpCiAgICAgICAg IGxlYSAgICAgMHgxMDAwMCglZWRpKSwlZXNwCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZWZp L2VmaS1ib290LmggYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKaW5kZXggNjJjMDEwZS4u ZGM4NTdkOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCisrKyBiL3hl bi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaApAQCAtMTQ2LDYgKzE0Niw4IEBAIHN0YXRpYyB2b2lk IF9faW5pdCBlZmlfYXJjaF9wcm9jZXNzX21lbW9yeV9tYXAoRUZJX1NZU1RFTV9UQUJMRSAqU3lz dGVtVGFibGUsCiB7CiAgICAgc3RydWN0IGU4MjBlbnRyeSAqZTsKICAgICB1bnNpZ25lZCBpbnQg aTsKKyAgICAvKiBDaGVjayBmb3IgZXh0cmEgbWVtIGZvciBtYmkgZGF0YSBpZiBYZW4gaXMgbG9h ZGVkIHZpYSBtdWx0aWJvb3QyIHByb3RvY29sLiAqLworICAgIFVJTlROIGV4dHJhX21lbSA9IGVm aV9lbmFibGVkKEVGSV9MT0FERVIpID8gMCA6ICg2NCA8PCAxMCk7CiAKICAgICAvKiBQb3B1bGF0 ZSBFODIwIHRhYmxlIGFuZCBjaGVjayB0cmFtcG9saW5lIGFyZWEgYXZhaWxhYmlsaXR5LiAqLwog ICAgIGUgPSBlODIwbWFwIC0gMTsKQEAgLTE2OCw3ICsxNzAsOCBAQCBzdGF0aWMgdm9pZCBfX2lu aXQgZWZpX2FyY2hfcHJvY2Vzc19tZW1vcnlfbWFwKEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRh YmxlLAogICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCiAgICAgICAgIGNhc2UgRWZpQ29u dmVudGlvbmFsTWVtb3J5OgogICAgICAgICAgICAgaWYgKCAhdHJhbXBvbGluZV9waHlzICYmIGRl c2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gPD0gMHgxMDAwMDAgJiYKLSAgICAgICAgICAgICAgICAg bGVuID49IGNmZy5zaXplICYmIGRlc2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gPiBjZmcuYWRkciAp CisgICAgICAgICAgICAgICAgIGxlbiA+PSBjZmcuc2l6ZSArIGV4dHJhX21lbSAmJgorICAgICAg ICAgICAgICAgICBkZXNjLT5QaHlzaWNhbFN0YXJ0ICsgbGVuID4gY2ZnLmFkZHIgKQogICAgICAg ICAgICAgICAgIGNmZy5hZGRyID0gKGRlc2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gLSBjZmcuc2l6 ZSkgJiBQQUdFX01BU0s7CiAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICAgICAg Y2FzZSBFZmlMb2FkZXJDb2RlOgpAQCAtMjEwLDEyICsyMTMsMTQgQEAgc3RhdGljIHZvaWQgKl9f aW5pdCBlZmlfYXJjaF9hbGxvY2F0ZV9tbWFwX2J1ZmZlcihVSU5UTiBtYXBfc2l6ZSkKIAogc3Rh dGljIHZvaWQgX19pbml0IGVmaV9hcmNoX3ByZV9leGl0X2Jvb3Qodm9pZCkKIHsKLSAgICBpZiAo ICF0cmFtcG9saW5lX3BoeXMgKQotICAgIHsKLSAgICAgICAgaWYgKCAhY2ZnLmFkZHIgKQotICAg ICAgICAgICAgYmxleGl0KEwiTm8gbWVtb3J5IGZvciB0cmFtcG9saW5lIik7CisgICAgaWYgKCB0 cmFtcG9saW5lX3BoeXMgKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoICFjZmcuYWRkciAp CisgICAgICAgIGJsZXhpdChMIk5vIG1lbW9yeSBmb3IgdHJhbXBvbGluZSIpOworCisgICAgaWYg KCBlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCiAgICAgICAgIHJlbG9jYXRlX3RyYW1wb2xpbmUo Y2ZnLmFkZHIpOwotICAgIH0KIH0KIAogc3RhdGljIHZvaWQgX19pbml0IG5vcmV0dXJuIGVmaV9h cmNoX3Bvc3RfZXhpdF9ib290KHZvaWQpCkBAIC02NTMsNiArNjU4LDQzIEBAIHN0YXRpYyBib29s X3QgX19pbml0IGVmaV9hcmNoX3VzZV9jb25maWdfZmlsZShFRklfU1lTVEVNX1RBQkxFICpTeXN0 ZW1UYWJsZSkKIAogc3RhdGljIHZvaWQgZWZpX2FyY2hfZmx1c2hfZGNhY2hlX2FyZWEoY29uc3Qg dm9pZCAqdmFkZHIsIFVJTlROIHNpemUpIHsgfQogCitwYWRkcl90IF9faW5pdCBlZmlfbXVsdGli b290MihFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJs ZSkKK3sKKyAgICBFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3A7CisgICAgVUlOVE4g Y29scywgZ29wX21vZGUgPSB+MCwgcm93czsKKworICAgIF9fc2V0X2JpdChFRklfQk9PVCwgJmVm aV9mbGFncyk7CisgICAgX19zZXRfYml0KEVGSV9SUywgJmVmaV9mbGFncyk7CisKKyAgICBlZmlf aW5pdChJbWFnZUhhbmRsZSwgU3lzdGVtVGFibGUpOworCisgICAgZWZpX2NvbnNvbGVfc2V0X21v ZGUoKTsKKworICAgIGlmICggU3RkT3V0LT5RdWVyeU1vZGUoU3RkT3V0LCBTdGRPdXQtPk1vZGUt Pk1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29scywgJnJvd3MpID09IEVGSV9T VUNDRVNTICkKKyAgICAgICAgZWZpX2FyY2hfY29uc29sZV9pbml0KGNvbHMsIHJvd3MpOworCisg ICAgZ29wID0gZWZpX2dldF9nb3AoKTsKKworICAgIGlmICggZ29wICkKKyAgICAgICAgZ29wX21v ZGUgPSBlZmlfZmluZF9nb3BfbW9kZShnb3AsIDAsIDAsIDApOworCisgICAgZWZpX2FyY2hfZWRk KCk7CisgICAgZWZpX2FyY2hfY3B1KCk7CisKKyAgICBlZmlfdGFibGVzKCk7CisgICAgc2V0dXBf ZWZpX3BjaSgpOworICAgIGVmaV92YXJpYWJsZXMoKTsKKworICAgIGlmICggZ29wICkKKyAgICAg ICAgZWZpX3NldF9nb3BfbW9kZShnb3AsIGdvcF9tb2RlKTsKKworICAgIGVmaV9leGl0X2Jvb3Qo SW1hZ2VIYW5kbGUsIFN5c3RlbVRhYmxlKTsKKworICAgIC8qIFJldHVybiBoaWdoZXN0IHVzYWJs ZSBtZW1vcnkgYWRkcmVzcyBiZWxvdyAxIE1pQi4gKi8KKyAgICByZXR1cm4gY2ZnLmFkZHI7Cit9 CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvZWZpL3N0dWIuYyBiL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCmluZGV4IDQxNTgx MjQuLjZlYTZhYTEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCisrKyBiL3hl bi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCkBAIC0zLDYgKzMsNDQgQEAKICNpbmNsdWRlIDx4ZW4vaW5p dC5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgorI2luY2x1 ZGUgPGFzbS9lZmliaW5kLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWRlZi5oPgorI2luY2x1ZGUgPGVm aS9lZmljYXBzdWxlLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWNvbi5oPgorI2luY2x1ZGUgPGVmaS9l ZmlkZXZwLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWFwaS5oPgorCisvKgorICogSGVyZSB3ZSBhcmUg aW4gRUZJIHN0dWIuIEVGSSBjYWxscyBhcmUgbm90IHN1cHBvcnRlZCBkdWUgdG8gbGFjaworICog b2YgcmVsZXZhbnQgZnVuY3Rpb25hbGl0eSBpbiBjb21waWxlciBhbmQvb3IgbGlua2VyLgorICoK KyAqIGVmaV9tdWx0aWJvb3QyKCkgaXMgYW4gZXhjZXB0aW9uLiBQbGVhc2UgbG9vayBiZWxvdyBm b3IgbW9yZSBkZXRhaWxzLgorICovCisKK3BhZGRyX3QgX19pbml0IG5vcmV0dXJuIGVmaV9tdWx0 aWJvb3QyKEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKK3sKKyAgICBDSEFS MTYgKmVyciA9IEwiWGVuIGRvZXMgbm90IGhhdmUgRUZJIGNvZGUgYnVpbGQgaW4hISFcclxuU3lz dGVtIGhhbHRlZCEhIVxyXG4iOworICAgIFNJTVBMRV9URVhUX09VVFBVVF9JTlRFUkZBQ0UgKlN0 ZEVycjsKKworICAgIFN0ZEVyciA9IFN5c3RlbVRhYmxlLT5TdGRFcnIgPyBTeXN0ZW1UYWJsZS0+ U3RkRXJyIDogU3lzdGVtVGFibGUtPkNvbk91dDsKKworICAgIC8qCisgICAgICogUHJpbnQgZXJy b3IgbWVzc2FnZSBhbmQgaGFsdCB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICogV2UgaGF2ZSB0 byBvcGVuIGNvZGUgTVMgeDY0IGNhbGxpbmcgY29udmVudGlvbgorICAgICAqIGluIGFzc2VtYmx5 IGJlY2F1c2UgaGVyZSB0aGlzIGNvbnZlbnRpb24gbWF5CisgICAgICogbm90IGJlIGRpcmVjdGx5 IHN1cHBvcnRlZCBieSBDIGNvbXBpbGVyLgorICAgICAqLworICAgIGFzbSB2b2xhdGlsZSgKKyAg ICAiICAgIGNhbGwgJTIgICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgIjA6ICBobHQgICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIgICAgam1wICAwYiAgICAgICAgICAgICAg ICAgICAgICBcbiIKKyAgICAgICA6ICIrYyIgKFN0ZEVyciksICIrZCIgKGVycikgOiAiZyIgKFN0 ZEVyci0+T3V0cHV0U3RyaW5nKQorICAgICAgIDogInJheCIsICJyOCIsICJyOSIsICJyMTAiLCAi cjExIiwgIm1lbW9yeSIpOworCisgICAgdW5yZWFjaGFibGUoKTsKK30KIAogYm9vbCBlZmlfZW5h YmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94 ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYwpp bmRleCBiNDM3YThmLi4yYTIyNjU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2Fz bS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCkBAIC0x NzUsNiArMTc1LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUIyX3RhZ190 eXBlLCBtdWx0aWJvb3QyX3RhZ190LCB0eXBlKTsKICAgICBPRkZTRVQoTUIyX3RhZ19zaXplLCBt dWx0aWJvb3QyX3RhZ190LCBzaXplKTsKICAgICBPRkZTRVQoTUIyX21lbV9sb3dlciwgbXVsdGli b290Ml90YWdfYmFzaWNfbWVtaW5mb190LCBtZW1fbG93ZXIpOworICAgIE9GRlNFVChNQjJfZWZp NjRfc3QsIG11bHRpYm9vdDJfdGFnX2VmaTY0X3QsIHBvaW50ZXIpOworICAgIE9GRlNFVChNQjJf ZWZpNjRfaWgsIG11bHRpYm9vdDJfdGFnX2VmaTY0X2loX3QsIHBvaW50ZXIpOwogICAgIEJMQU5L KCk7CiAKICAgICBPRkZTRVQoRE9NQUlOX3ZtX2Fzc2lzdCwgc3RydWN0IGRvbWFpbiwgdm1fYXNz aXN0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgYi94ZW4vYXJjaC94ODYv eGVuLmxkcy5TCmluZGV4IGIwYjFjOWIuLmUwZTI1MjkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwpAQCAtMzMxLDUgKzMzMSw1 IEBAIEFTU0VSVChJU19BTElHTkVEKF9faW5pdF9lbmQsICAgUEFHRV9TSVpFKSwgIl9faW5pdF9l bmQgbWlzYWxpZ25lZCIpCiAKIEFTU0VSVChJU19BTElHTkVEKHRyYW1wb2xpbmVfc3RhcnQsIDQp LCAidHJhbXBvbGluZV9zdGFydCBtaXNhbGlnbmVkIikKIEFTU0VSVChJU19BTElHTkVEKHRyYW1w b2xpbmVfZW5kLCAgIDQpLCAidHJhbXBvbGluZV9lbmQgbWlzYWxpZ25lZCIpCi1BU1NFUlQoSVNf QUxJR05FRChfX2Jzc19zdGFydCwgICAgICA0KSwgIl9fYnNzX3N0YXJ0IG1pc2FsaWduZWQiKQot QVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAgICAgNCksICJfX2Jzc19lbmQgbWlzYWxp Z25lZCIpCitBU1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA4KSwgIl9fYnNzX3N0 YXJ0IG1pc2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAgICAgOCks ICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2VmaS9ib290 LmMgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKaW5kZXggNDY1NTlmMC4uNmUyY2MyMyAxMDA2NDQK LS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jCisrKyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYwpA QCAtNzksNiArNzksMTcgQEAgc3RhdGljIHNpemVfdCB3c3RybGVuKGNvbnN0IENIQVIxNiAqIHMp Owogc3RhdGljIGludCBzZXRfY29sb3IodTMyIG1hc2ssIGludCBicHAsIHU4ICpwb3MsIHU4ICpz eik7CiBzdGF0aWMgYm9vbF90IG1hdGNoX2d1aWQoY29uc3QgRUZJX0dVSUQgKmd1aWQxLCBjb25z dCBFRklfR1VJRCAqZ3VpZDIpOwogCitzdGF0aWMgdm9pZCBlZmlfaW5pdChFRklfSEFORExFIElt YWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSk7CitzdGF0aWMgdm9pZCBl ZmlfY29uc29sZV9zZXRfbW9kZSh2b2lkKTsKK3N0YXRpYyBFRklfR1JBUEhJQ1NfT1VUUFVUX1BS T1RPQ09MICplZmlfZ2V0X2dvcCh2b2lkKTsKK3N0YXRpYyBVSU5UTiBlZmlfZmluZF9nb3BfbW9k ZShFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3AsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVUlOVE4gY29scywgVUlOVE4gcm93cywgVUlOVE4gZGVwdGgpOworc3RhdGlj IHZvaWQgZWZpX3RhYmxlcyh2b2lkKTsKK3N0YXRpYyB2b2lkIHNldHVwX2VmaV9wY2kodm9pZCk7 CitzdGF0aWMgdm9pZCBlZmlfdmFyaWFibGVzKHZvaWQpOworc3RhdGljIHZvaWQgZWZpX3NldF9n b3BfbW9kZShFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3AsIFVJTlROIGdvcF9tb2Rl KTsKK3N0YXRpYyB2b2lkIGVmaV9leGl0X2Jvb3QoRUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJ X1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpOworCiBzdGF0aWMgY29uc3QgRUZJX0JPT1RfU0VS VklDRVMgKl9faW5pdGRhdGEgZWZpX2JzOwogc3RhdGljIFVJTlQzMiBfX2luaXRkYXRhIGVmaV9i c19yZXZpc2lvbjsKIHN0YXRpYyBFRklfSEFORExFIF9faW5pdGRhdGEgZWZpX2loOwotLSAKMS43 LjEwLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK