From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v7 12/14] x86: make Xen early boot code relocatable Date: Fri, 23 Sep 2016 23:47:37 +0200 Message-ID: <1474667259-27290-13-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnYLN-0004NG-Ad for xen-devel@lists.xenproject.org; Fri, 23 Sep 2016 21:49:17 +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 RXZlcnkgbXVsdGlib290IHByb3RvY29sIChyZWdhcmRsZXNzIG9mIHZlcnNpb24pIGNvbXBhdGli bGUgaW1hZ2UgbXVzdApzcGVjaWZ5IGl0cyBsb2FkIGFkZHJlc3MgKGluIEVMRiBvciBtdWx0aWJv b3QgaGVhZGVyKS4gTXVsdGlib290IHByb3RvY29sCmNvbXBhdGlibGUgbG9hZGVyIGhhdmUgdG8g bG9hZCBpbWFnZSBhdCBzcGVjaWZpZWQgYWRkcmVzcy4gSG93ZXZlciwgdGhlcmUKaXMgbm8gZ3Vh cmFudGVlIHRoYXQgdGhlIHJlcXVlc3RlZCBtZW1vcnkgcmVnaW9uIChpbiBjYXNlIG9mIFhlbiBp dCBzdGFydHMKYXQgMiBNaUIgYW5kIGVuZHMgYXQgfjUgTWlCKSB3aGVyZSBpbWFnZSBzaG91bGQg YmUgbG9hZGVkIGluaXRpYWxseSBpcyBhIFJBTQphbmQgaXQgaXMgZnJlZSAobGVnYWN5IEJJT1Mg cGxhdGZvcm1zIGFyZSBtZXJjaWZ1bCBmb3IgWGVuIGJ1dCBJIGZvdW5kIGF0CmxlYXN0IG9uZSBF RkkgcGxhdGZvcm0gb24gd2hpY2ggWGVuIGxvYWQgYWRkcmVzcyBjb25mbGljdHMgd2l0aCBFRkkg Ym9vdApzZXJ2aWNlczsgaXQgaXMgRGVsbCBQb3dlckVkZ2UgUjgyMCB3aXRoIGxhdGVzdCBmaXJt d2FyZSkuIFRvIGNvcGUgd2l0aCB0aGF0CnByb2JsZW0gd2UgbXVzdCBtYWtlIFhlbiBlYXJseSBi b290IGNvZGUgcmVsb2NhdGFibGUgYW5kIGhlbHAgYm9vdCBsb2FkZXIgdG8KcmVsb2NhdGUgaW1h Z2UgaW4gcHJvcGVyIHdheSBieSBzdWdnZXN0aW5nLCBub3QgcmVxdWVzdGluZyBzcGVjaWZpYyBs b2FkCmFkZHJlc3NlcyBhcyBpdCBpcyByaWdodCBub3csIGFsbG93ZWQgYWRkcmVzcyByYW5nZXMu IFRoaXMgcGF0Y2ggZG9lcyBmb3JtZXIuCkl0IGRvZXMgbm90IGFkZCBtdWx0aWJvb3QyIHByb3Rv Y29sIGludGVyZmFjZSB3aGljaCBpcyBkb25lIGluICJ4ODY6IGFkZAptdWx0aWJvb3QyIHByb3Rv Y29sIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGltYWdlcyIgcGF0Y2guCgpUaGlzIHBhdGNoIGNo YW5nZXMgZm9sbG93aW5nIHRoaW5nczoKICAtICVlc2kgYW5kICVyMTVkIHJlZ2lzdGVycyBhcmUg dXNlZCBhcyBhIHN0b3JhZ2UgZm9yIFhlbiBpbWFnZSBsb2FkIGJhc2UKICAgIGFkZHJlc3MgKCVy MTVkIHNob3J0bHkgYmVjYXVzZSAlcnNpIGlzIHVzZWQgZm9yIEVGSSBTeXN0ZW1UYWJsZSBhZGRy ZXNzCiAgICBpbiA2NC1iaXQgY29kZSk7IGJvdGggcmVnaXN0ZXJzIGFyZSAoJWVzaSBpcyBtb3N0 bHkpIHVudXNlZCBpbiBlYXJseQogICAgYm9vdCBjb2RlIGFuZCBwcmVzZXJ2ZWQgZHVyaW5nIEMg ZnVuY3Rpb25zIGNhbGxzICglZXNpIGluIDMyLWJpdCBjb2RlCiAgICBhbmQgJXIxNWQgaW4gNjQt Yml0IGNvZGUpLAogIC0gJWZzIGlzIHVzZWQgYXMgYmFzZSBmb3IgWGVuIGRhdGEgcmVsYXRpdmUg YWRkcmVzc2luZyBpbiAzMi1iaXQgY29kZQogICAgaWYgaXQgaXMgcG9zc2libGU7ICVlc2kgaXMg dXNlZCBmb3IgdGhhdCB0aGluZyBkdXJpbmcgZXJyb3IgcHJpbnRpbmcKICAgIGJlY2F1c2UgaXQg aXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBwcm9wZXJseSBhbmQgZWZmaWNpZW50bHkKICAgIGlu aXRpYWxpemUgJWZzLgoKU2lnbmVkLW9mZi1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJA b3JhY2xlLmNvbT4KLS0tCnY2IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gbGVhdmUgc3RhdGlj IG1hcHBpbmcgb2YgZmlyc3QKICAgICAxNiBNaUIgaW4gbDJfaWRlbnRtYXAgYXMgaXMKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgeGVuX3BoeXNfc3RhcnQgaW5zdGVh ZCBvZiB4ZW5faW1nX2xvYWRfYmFzZV9hZGRyCiAgICAgKHN1Z2dlc3RlZCBieSBEYW5pZWwgS2lw ZXIgYW5kIEphbiBCZXVsaWNoKSwKICAgLSBzaW1wbGlmeSBCT09UX0ZTIHNlZ21lbnQgZGVzY3Jp cHRvcgogICAgIGJhc2UgYWRkcmVzcyBpbml0aWFsaXphdGlvbgogICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLAogICAtIGZpeCBCT09UX0ZTIHNlZ21lbnQgbGltaXQKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBkbyBub3QgcmVuYW1lIHN5bV9waHlzIGluIHRoaXMg cGF0Y2gKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSByZW5hbWUgZXNpX29m ZnNldC9mc19vZmZzZXQgdG8KICAgICBzeW1fZXNpL3N5bV9mcyByZXNwZWN0aXZlbHkKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgYWRkIGluc3RlYWQgb2YgbGVhIGlu IGFzc2VtYmx5CiAgICAgZXJyb3IgcHJpbnRpbmcgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5vciBjbGVhbnVwcyBhbmQgZml4ZXMKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY0IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0g ZG8gbm90IHJlbG9jYXRlIFhlbiBpbWFnZSBpZiBib290IGxvYWRlciBkaWQgd29yayBmb3IgdXMK ICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIgYW5kIEphbiBCZXVsaWNoKSwKICAgLSBp bml0aWFsaXplIHhlbl9pbWdfbG9hZF9iYXNlX2FkZHIgaW4gRUZJIGJvb3QgY29kZSB0b28sCiAg IC0gcHJvcGVybHkgaW5pdGlhbGl6ZSB0cmFtcG9saW5lX3hlbl9waHlzX3N0YXJ0LAogICAtIGNh bGN1bGF0ZSBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MgaW4KICAgICB4ODZfNjQgY29kZSBv dXJzZWx2ZXMsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gY2hhbmdlIGhv dyBhbmQgd2hlbiBYZW4gaW1hZ2UgYmFzZSBhZGRyZXNzIGlzIHByaW50ZWQsCiAgIC0gdXNlICVm cyBpbnN0ZWFkIG9mICVlc2kgZm9yIHJlbGF0aXZlIGFkZHJlc3NpbmcKICAgICAoc3VnZ2VzdGVk IGJ5IEFuZHJldyBDb29wZXIgYW5kIEphbiBCZXVsaWNoKSwKICAgLSBjcmVhdGUgZXNpX29mZnNl dCBhbmQgZnNfb2Zmc2V0KCkgbWFjcm9zIGluIGFzc2VtYmx5LAogICAtIGNhbGN1bGF0ZSA8Zmlu YWwtZXhlYy1hZGRyPiBta2VsZjMyIGFyZ3VtZW50IGF1dG9tYXRpY2FsbHksCiAgIC0gb3B0aW1p emUgYW5kIGNsZWFudXAgY29kZSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzLAogICAtIGltcHJvdmUg Y29tbWl0IG1lc3NhZ2UuCgp2MyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGltcHJvdmUgc2Vn bWVudCByZWdpc3RlcnMgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBzaW1wbGlmeSBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MgY2FsY3VsYXRp b24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgJWVzaSBhbmQgJXIx NWQgaW5zdGVhZCBvZiAlZWJwIHRvIHN0b3JlCiAgICAgWGVuIGltYWdlIGxvYWQgYmFzZSBhZGRy ZXNzLAogICAtIHVzZSAlZXNpIGluc3RlYWQgb2YgJWZzIGZvciByZWxhdGl2ZSBhZGRyZXNzaW5n OwogICAgIHRoaXMgd2F5IHdlIGdldCBzaG9ydGVyIGFuZCBzaW1wbGVyIGNvZGUsCiAgIC0gcmVu YW1lIHNvbWUgdmFyaWFibGVzIGFuZCBjb25zdGFudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBLb25yYWQg Unplc3p1dGVrIFdpbGspLAogICAtIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKS4KLS0tCiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAg ICAgfCAgMTYzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNo L3g4Ni9ib290L3RyYW1wb2xpbmUuUyAgICB8ICAgIDUgKysKIHhlbi9hcmNoL3g4Ni9ib290L3g4 Nl82NC5TICAgICAgICB8ICAgMjYgKysrLS0tCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAg ICAgICAgfCAgIDE0ICsrLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyB8ICAg IDMgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmggICAgICAgIHwgICAgMiArLQogNiBmaWxl cyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TIGIveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCmlu ZGV4IGMzMDE0NjQuLjliMWZkMGUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQu UworKysgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKQEAgLTEzLDEyICsxMywxNSBAQAogICAg ICAgICAuY29kZTMyCiAKICNkZWZpbmUgc3ltX3BoeXMoc3ltKSAgICAgKChzeW0pIC0gX19YRU5f VklSVF9TVEFSVCkKKyNkZWZpbmUgc3ltX2VzaShzeW0pICAgICAgc3ltX3BoeXMoc3ltKSglZXNp KQorI2RlZmluZSBzeW1fZnMoc3ltKSAgICAgICAlZnM6c3ltX3BoeXMoc3ltKQogCiAjZGVmaW5l IEJPT1RfQ1MzMiAgICAgICAgMHgwMDA4CiAjZGVmaW5lIEJPT1RfQ1M2NCAgICAgICAgMHgwMDEw CiAjZGVmaW5lIEJPT1RfRFMgICAgICAgICAgMHgwMDE4CiAjZGVmaW5lIEJPT1RfUFNFVURPUk1f Q1MgMHgwMDIwCiAjZGVmaW5lIEJPT1RfUFNFVURPUk1fRFMgMHgwMDI4CisjZGVmaW5lIEJPT1Rf RlMgICAgICAgICAgMHgwMDMwCiAKICNkZWZpbmUgTUIyX0hUKG5hbWUpICAgICAgKE1VTFRJQk9P VDJfSEVBREVSX1RBR18jI25hbWUpCiAjZGVmaW5lIE1CMl9UVChuYW1lKSAgICAgIChNVUxUSUJP T1QyX1RBR19UWVBFXyMjbmFtZSkKQEAgLTEwNSw3ICsxMDgsOCBAQCBtdWx0aWJvb3QyX2hlYWRl cl9zdGFydDoKIAogICAgICAgICAud29yZCAgIDAKIGdkdF9ib290X2Rlc2NyOgotICAgICAgICAu d29yZCAgIDYqOC0xCisgICAgICAgIC53b3JkICAgNyo4LTEKK2dkdF9ib290X2Jhc2U6CiAgICAg ICAgIC5sb25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQpCiAgICAgICAgIC5sb25nICAgMCAv KiBOZWVkZWQgZm9yIDY0LWJpdCBsZ2R0ICovCiAKQEAgLTEyNywyNyArMTMxLDI3IEBAIHZnYV90 ZXh0X2J1ZmZlcjoKICAgICAgICAgLnNlY3Rpb24gLmluaXQudGV4dCwgImF4IiwgQHByb2diaXRz CiAKIGJhZF9jcHU6Ci0gICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9jcHVfbXNnKSks JWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgYWRkICAgICAkc3ltX3BoeXMoLkxiYWRfY3B1 X21zZyksJWVzaSAgICMgRXJyb3IgbWVzc2FnZQogICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygog bm90X211bHRpYm9vdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cp KSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9s ZHJfbXNnKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRi CiAuTG1iMl9ub19zdDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uc3Qp KSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9s ZHJfbnN0KSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRi CiAuTG1iMl9ub19paDoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uaWgp KSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9s ZHJfbmloKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIGptcCAgICAgLkxnZXRfdnRi CiAuTG1iMl9ub19iczoKLSAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMp KSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAgICRzeW1fcGh5cyguTGJhZF9s ZHJfbmJzKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAgIHhvciAgICAgJWVkaSwlZWRp ICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgogICAgICAgICBqbXAg ICAgIC5Mc2VuZF9jaHIKIC5MbWIyX2VmaV9pYV8zMjoKLSAgICAgICAgbW92ICAgICAkKHN5bV9w aHlzKC5MYmFkX2VmaV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQorICAgICAgICBhZGQgICAg ICRzeW1fcGh5cyguTGJhZF9lZmlfbXNnKSwlZXNpICAgIyBFcnJvciBtZXNzYWdlCiAgICAgICAg IHhvciAgICAgJWVkaSwlZWRpICAgICAgICAgICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1 ZmZlcgogICAgICAgICBqbXAgICAgIC5Mc2VuZF9jaHIKIC5MZ2V0X3Z0YjoKLSAgICAgICAgbW92 ICAgICBzeW1fcGh5cyh2Z2FfdGV4dF9idWZmZXIpLCVlZGkKKyAgICAgICAgbW92ICAgICBzeW1f ZXNpKHZnYV90ZXh0X2J1ZmZlciksJWVkaQogLkxzZW5kX2NocjoKICAgICAgICAgbW92ICAgICAo JWVzaSksJWJsCiAgICAgICAgIHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24g J1wwJyBzZW50aW5lbApAQCAtMTc2LDYgKzE4MCw5IEBAIF9fZWZpNjRfc3RhcnQ6CiAgICAgICAg IC8qIFZHQSBpcyBub3QgYXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICovCiAgICAgICAgIG1v dmwgICAkMCx2Z2FfdGV4dF9idWZmZXIoJXJpcCkKIAorICAgICAgICAvKiBMb2FkIFhlbiBpbWFn ZSBsb2FkIGJhc2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbGVhICAgICBfX2ltYWdlX2Jhc2VfXygl cmlwKSwlcjE1ZAorCiAgICAgICAgIC8qIENoZWNrIGZvciBNdWx0aWJvb3QyIGJvb3Rsb2FkZXIu ICovCiAgICAgICAgIGNtcCAgICAgJE1VTFRJQk9PVDJfQk9PVExPQURFUl9NQUdJQywlZWF4CiAg ICAgICAgIGplICAgICAgLkxlZmlfbXVsdGlib290Ml9wcm90bwpAQCAtMjk5LDYgKzMwNiw5IEBA IHJ1bl9iczoKIAogICAgICAgICBwb3AgICAgICVyYXgKIAorICAgICAgICAvKiBTdG9yZSBYZW4g aW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MgaW4gcGxhY2UgYWNjZXNzaWJsZSBmb3IgMzItYml0IGNv ZGUuICovCisgICAgICAgIG1vdiAgICAgJXIxNWQsJWVzaQorCiAgICAgICAgIC8qIEp1bXAgdG8g dHJhbXBvbGluZV9zZXR1cCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwog ICAgICAgICBsZWEgICAgIHRyYW1wb2xpbmVfc2V0dXAoJXJpcCksJWVkaQogCkBAIC0zMDYsOSAr MzE2LDExIEBAIHg4Nl8zMl9zd2l0Y2g6CiAgICAgICAgIGNsaQogCiAgICAgICAgIC8qIEluaXRp YWxpemUgR0RUUi4gKi8KKyAgICAgICAgYWRkICAgICAlZXNpLGdkdF9ib290X2Jhc2UoJXJpcCkK ICAgICAgICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQogCiAgICAgICAgIC8qIFJlbG9h ZCBjb2RlIHNlbGVjdG9yLiAqLworICAgICAgICBhZGQgICAgICVlc2ksY3MzMl9zd2l0Y2hfYWRk ciglcmlwKQogICAgICAgICBsam1wbCAgICpjczMyX3N3aXRjaF9hZGRyKCVyaXApCiAKICAgICAg ICAgLmNvZGUzMgpAQCAtMzM4LDEyICszNTAsOCBAQCBfX3N0YXJ0OgogICAgICAgICBjbGQKICAg ICAgICAgY2xpCiAKLSAgICAgICAgLyogSW5pdGlhbGlzZSBHRFQgYW5kIGJhc2ljIGRhdGEgc2Vn bWVudHMuICovCi0gICAgICAgIGxnZHQgICAgJWNzOnN5bV9waHlzKGdkdF9ib290X2Rlc2NyKQot ICAgICAgICBtb3YgICAgICRCT09UX0RTLCVlY3gKLSAgICAgICAgbW92ICAgICAlZWN4LCVkcwot ICAgICAgICBtb3YgICAgICVlY3gsJWVzCi0gICAgICAgIG1vdiAgICAgJWVjeCwlc3MKKyAgICAg ICAgLyogTG9hZCBkZWZhdWx0IFhlbiBpbWFnZSBsb2FkIGJhc2UgYWRkcmVzcy4gKi8KKyAgICAg ICAgbW92ICAgICAkc3ltX3BoeXMoX19pbWFnZV9iYXNlX18pLCVlc2kKIAogICAgICAgICAvKiBC b290bG9hZGVycyBtYXkgc2V0IG11bHRpYm9vdHsxLDJ9Lm1lbV9sb3dlciB0byBhIG5vbnplcm8g dmFsdWUuICovCiAgICAgICAgIHhvciAgICAgJWVkeCwlZWR4CkBAIC0zOTksNiArNDA3LDI1IEBA IF9fc3RhcnQ6CiAgICAgICAgIGptcCAgICAgMGIKIAogdHJhbXBvbGluZV9iaW9zX3NldHVwOgor ICAgICAgICAvKgorICAgICAgICAgKiBDYWxsZWQgb24gbGVnYWN5IEJJT1MgcGxhdGZvcm1zIG9u bHkuCisgICAgICAgICAqCisgICAgICAgICAqIEluaXRpYWxpemUgR0RUUiBhbmQgYmFzaWMgZGF0 YSBzZWdtZW50cy4KKyAgICAgICAgICovCisgICAgICAgIGFkZCAgICAgJWVzaSxzeW1fZXNpKGdk dF9ib290X2Jhc2UpCisgICAgICAgIGxnZHQgICAgc3ltX2VzaShnZHRfYm9vdF9kZXNjcikKKwor ICAgICAgICBtb3YgICAgICRCT09UX0RTLCVlY3gKKyAgICAgICAgbW92ICAgICAlZWN4LCVkcwor ICAgICAgICBtb3YgICAgICVlY3gsJWVzCisgICAgICAgIG1vdiAgICAgJWVjeCwlc3MKKyAgICAg ICAgLyogJWVzcCBpcyBpbml0aWFsaXplZCBsYXRlci4gKi8KKworICAgICAgICAvKiBMb2FkIG51 bGwgZGVzY3JpcHRvciB0byB1bnVzZWQgc2VnbWVudCByZWdpc3RlcnMuICovCisgICAgICAgIHhv ciAgICAgJWVjeCwlZWN4CisgICAgICAgIG1vdiAgICAgJWVjeCwlZnMKKyAgICAgICAgbW92ICAg ICAlZWN4LCVncworCiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJl bG93IEVCREEgKi8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEg c2VnbWVudCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5 IGNoZWNrIChoaWdoKSAqLwpAQCAtNDI2LDMyICs0NTMsNjUgQEAgdHJhbXBvbGluZV9iaW9zX3Nl dHVwOgogICAgICAgICB4b3IgICAgICVjbCwgJWNsCiAKIHRyYW1wb2xpbmVfc2V0dXA6CisgICAg ICAgIC8qCisgICAgICAgICAqIENhbGxlZCBvbiBsZWdhY3kgQklPUyBhbmQgRUZJIHBsYXRmb3Jt cy4KKyAgICAgICAgICoKKyAgICAgICAgICogSW5pdGlhbGl6ZSAwLTE1IGJpdHMgb2YgQk9PVF9G UyBzZWdtZW50IGRlc2NyaXB0b3IgYmFzZSBhZGRyZXNzLgorICAgICAgICAgKi8KKyAgICAgICAg bW92ICAgICAlc2ksQk9PVF9GUysyK3N5bV9lc2kodHJhbXBvbGluZV9nZHQpCisKKyAgICAgICAg LyogSW5pdGlhbGl6ZSAxNi0yMyBiaXRzIG9mIEJPT1RfRlMgc2VnbWVudCBkZXNjcmlwdG9yIGJh c2UgYWRkcmVzcy4gKi8KKyAgICAgICAgbW92ICAgICAlZXNpLCVlZHgKKyAgICAgICAgc2hyICAg ICAkMTYsJWVkeAorICAgICAgICBtb3YgICAgICVkbCxCT09UX0ZTKzQrc3ltX2VzaSh0cmFtcG9s aW5lX2dkdCkKKworICAgICAgICAvKiBJbml0aWFsaXplIDI0LTMxIGJpdHMgb2YgQk9PVF9GUyBz ZWdtZW50IGRlc2NyaXB0b3IgYmFzZSBhZGRyZXNzLiAqLworICAgICAgICBtb3YgICAgICVkaCxC T09UX0ZTKzcrc3ltX2VzaSh0cmFtcG9saW5lX2dkdCkKKworICAgICAgICAvKgorICAgICAgICAg KiBJbml0aWFsaXplICVmcyBhbmQgbGF0ZXIgdXNlIGl0IHRvIGFjY2VzcyBYZW4gZGF0YSBpZiBw b3NzaWJsZS4KKyAgICAgICAgICogQWNjb3JkaW5nIHRvIEludGVsIDY0IGFuZCBJQS0zMiBBcmNo aXRlY3R1cmVzIFNvZnR3YXJlIERldmVsb3BlcidzCisgICAgICAgICAqIE1hbnVhbCBpdCBpcyBz YWZlIHRvIGRvIHRoYXQgd2l0aG91dCByZWxvYWRpbmcgR0RUUiBiZWZvcmUuCisgICAgICAgICAq LworICAgICAgICBtb3YgICAgICRCT09UX0ZTLCVlZHgKKyAgICAgICAgbW92ICAgICAlZWR4LCVm cworCiAgICAgICAgIC8qIFNhdmUgdHJhbXBvbGluZSBhZGRyZXNzIGZvciBsYXRlciB1c2UuICov CiAgICAgICAgIHNobCAgICAgJDQsICVlY3gKLSAgICAgICAgbW92ICAgICAlZWN4LHN5bV9waHlz KHRyYW1wb2xpbmVfcGh5cykKKyAgICAgICAgbW92ICAgICAlZWN4LHN5bV9mcyh0cmFtcG9saW5l X3BoeXMpCisKKyAgICAgICAgLyogU2F2ZSBYZW4gaW1hZ2UgbG9hZCBiYXNlIGFkZHJlc3MgZm9y IGxhdGVyIHVzZS4gKi8KKyAgICAgICAgbW92ICAgICAlZXNpLHN5bV9mcyh4ZW5fcGh5c19zdGFy dCkKKyAgICAgICAgbW92ICAgICAlZXNpLHN5bV9mcyh0cmFtcG9saW5lX3hlbl9waHlzX3N0YXJ0 KQorCisgICAgICAgIC8qIFNldHVwIHN0YWNrLiAlc3Mgd2FzIGluaXRpYWxpemVkIGVhcmxpZXIu ICovCisgICAgICAgIGxlYSAgICAgMTAyNCtzeW1fZXNpKGNwdTBfc3RhY2spLCVlc3AKIAogICAg ICAgICAvKiBTYXZlIHRoZSBNdWx0aWJvb3QgaW5mbyBzdHJ1Y3QgKGFmdGVyIHJlbG9jYXRpb24p IGZvciBsYXRlciB1c2UuICovCi0gICAgICAgIG1vdiAgICAgJHN5bV9waHlzKGNwdTBfc3RhY2sp KzEwMjQsJWVzcAogICAgICAgICBwdXNoICAgICVlY3ggICAgICAgICAgICAgICAgLyogQm9vdCB0 cmFtcG9saW5lIGFkZHJlc3MuICovCiAgICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAg ICAvKiBNdWx0aWJvb3QgaW5mb3JtYXRpb24gYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAl ZWF4ICAgICAgICAgICAgICAgIC8qIE11bHRpYm9vdCBtYWdpYy4gKi8KICAgICAgICAgY2FsbCAg ICByZWxvYwotICAgICAgICBtb3YgICAgICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKKyAg ICAgICAgbW92ICAgICAlZWF4LHN5bV9mcyhtdWx0aWJvb3RfcHRyKQogCiAgICAgICAgIC8qCiAg ICAgICAgICAqIERvIG5vdCB6ZXJvIEJTUyBvbiBFRkkgcGxhdGZvcm0gaGVyZS4KICAgICAgICAg ICogSXQgd2FzIGluaXRpYWxpemVkIGVhcmxpZXIuCiAgICAgICAgICAqLwotICAgICAgICBjbXBi ICAgICQwLHN5bV9waHlzKHNraXBfcmVhbG1vZGUpCisgICAgICAgIGNtcGIgICAgJDAsc3ltX2Zz KHNraXBfcmVhbG1vZGUpCiAgICAgICAgIGpueiAgICAgMWYKIAogICAgICAgICAvKiBJbml0aWFs aXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkuICovCiAgICAgICAgIG1vdiAgICAgJHN5bV9w aHlzKF9fYnNzX3N0YXJ0KSwlZWRpCiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKF9fYnNzX2Vu ZCksJWVjeAorICAgICAgICBwdXNoICAgICVmcworICAgICAgICBwb3AgICAgICVlcwogICAgICAg ICBzdWIgICAgICVlZGksJWVjeAogICAgICAgICB4b3IgICAgICVlYXgsJWVheAogICAgICAgICBz aHIgICAgICQyLCVlY3gKICAgICAgICAgcmVwIHN0b3NsCisgICAgICAgIHB1c2ggICAgJWRzCisg ICAgICAgIHBvcCAgICAgJWVzCiAKIDE6CiAgICAgICAgIC8qIEludGVycm9nYXRlIENQVSBleHRl bmRlZCBmZWF0dXJlcyB2aWEgQ1BVSUQuICovCkBAIC00NjUsOCArNTI1LDggQEAgdHJhbXBvbGlu ZV9zZXR1cDoKICAgICAgICAgamJlICAgICAxZgogICAgICAgICBtb3YgICAgICQweDgwMDAwMDAx LCVlYXgKICAgICAgICAgY3B1aWQKLTE6ICAgICAgbW92ICAgICAlZWR4LHN5bV9waHlzKGNwdWlk X2V4dF9mZWF0dXJlcykKLSAgICAgICAgbW92ICAgICAlZWR4LHN5bV9waHlzKGJvb3RfY3B1X2Rh dGEpK0NQVUlORk9fRkVBVFVSRV9PRkZTRVQoWDg2X0ZFQVRVUkVfTE0pCisxOiAgICAgIG1vdiAg ICAgJWVkeCxzeW1fZnMoY3B1aWRfZXh0X2ZlYXR1cmVzKQorICAgICAgICBtb3YgICAgICVlZHgs c3ltX2ZzKGJvb3RfY3B1X2RhdGEpK0NQVUlORk9fRkVBVFVSRV9PRkZTRVQoWDg2X0ZFQVRVUkVf TE0pCiAKICAgICAgICAgLyogQ2hlY2sgZm9yIGF2YWlsYWJpbGl0eSBvZiBsb25nIG1vZGUuICov CiAgICAgICAgIGJ0ICAgICAgJGNwdWZlYXRfYml0KFg4Nl9GRUFUVVJFX0xNKSwlZWR4CkBAIC00 NzQsMjMgKzUzNCw1MyBAQCB0cmFtcG9saW5lX3NldHVwOgogCiAgICAgICAgIC8qIFN0YXNoIFRT QyB0byBjYWxjdWxhdGUgYSBnb29kIGFwcHJveGltYXRpb24gb2YgdGltZS1zaW5jZS1ib290ICov CiAgICAgICAgIHJkdHNjCi0gICAgICAgIG1vdiAgICAgJWVheCxzeW1fcGh5cyhib290X3RzY19z dGFtcCkKLSAgICAgICAgbW92ICAgICAlZWR4LHN5bV9waHlzKGJvb3RfdHNjX3N0YW1wKzQpCisg ICAgICAgIG1vdiAgICAgJWVheCxzeW1fZnMoYm9vdF90c2Nfc3RhbXApCisgICAgICAgIG1vdiAg ICAgJWVkeCxzeW1fZnMoYm9vdF90c2Nfc3RhbXApKzQKKworICAgICAgICAvKgorICAgICAgICAg KiBVcGRhdGUgZnJhbWUgYWRkcmVzc2VzIGluIHBhZ2UgdGFibGVzIGV4Y2x1ZGluZyBsMl9pZGVu dG1hcAorICAgICAgICAgKiB3aXRob3V0IGl0cyBmaXJzdCBlbnRyeSB3aGljaCBwb2ludHMgdG8g bDFfaWRlbnRtYXAuCisgICAgICAgICAqLworICAgICAgICBtb3YgICAgICQoKF9fcGFnZV90YWJs ZXNfZW5kLV9fcGFnZV90YWJsZXNfc3RhcnQpLzgpLCVlY3gKKyAgICAgICAgbW92ICAgICAkKCgo bDJfaWRlbnRtYXAtX19wYWdlX3RhYmxlc19zdGFydCkvOCkrMiksJWVkeAorMTogICAgICBjbXAg ICAgICQoKGwyX2lkZW50bWFwK2wyX2lkZW50bWFwX3NpemVvZi1fX3BhZ2VfdGFibGVzX3N0YXJ0 KS84KSwlZWN4CisgICAgICAgIGNtb3ZlICAgJWVkeCwlZWN4CisgICAgICAgIGplICAgICAgMmYK KyAgICAgICAgdGVzdGwgICAkX1BBR0VfUFJFU0VOVCxzeW1fZnMoX19wYWdlX3RhYmxlc19zdGFy dCktOCgsJWVjeCw4KQorICAgICAgICBqeiAgICAgIDJmCisgICAgICAgIGFkZCAgICAgJWVzaSxz eW1fZnMoX19wYWdlX3RhYmxlc19zdGFydCktOCgsJWVjeCw4KQorMjogICAgICBsb29wICAgIDFi CisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBMMiBib290LW1hcC9kaXJlY3QgbWFwIHBhZ2UgdGFi bGUgZW50cmllcyAoMTRNQikuICovCisgICAgICAgIGxlYSAgICAgc3ltX2VzaShzdGFydCksJWVi eAorICAgICAgICBsZWEgICAgICgxPDxMMl9QQUdFVEFCTEVfU0hJRlQpKjcrKFBBR0VfSFlQRVJW SVNPUnxfUEFHRV9QU0UpKCVlYngpLCVlYXgKKyAgICAgICAgc2hyICAgICAkKEwyX1BBR0VUQUJM RV9TSElGVC0zKSwlZWJ4CisgICAgICAgIG1vdiAgICAgJDgsJWVjeAorMTogICAgICBtb3YgICAg ICVlYXgsc3ltX2ZzKGwyX2Jvb3RtYXApLTgoJWVieCwlZWN4LDgpCisgICAgICAgIG1vdiAgICAg JWVheCxzeW1fZnMobDJfaWRlbnRtYXApLTgoJWVieCwlZWN4LDgpCisgICAgICAgIHN1YiAgICAg JCgxPDxMMl9QQUdFVEFCTEVfU0hJRlQpLCVlYXgKKyAgICAgICAgbG9vcCAgICAxYgorCisgICAg ICAgIC8qIEluaXRpYWxpemUgTDMgYm9vdC1tYXAgcGFnZSBkaXJlY3RvcnkgZW50cnkuICovCisg ICAgICAgIGxlYSAgICAgX19QQUdFX0hZUEVSVklTT1IrKEwyX1BBR0VUQUJMRV9FTlRSSUVTKjgp KjMrc3ltX2VzaShsMl9ib290bWFwKSwlZWF4CisgICAgICAgIG1vdiAgICAgJDQsJWVjeAorMTog ICAgICBtb3YgICAgICVlYXgsc3ltX2ZzKGwzX2Jvb3RtYXApLTgoLCVlY3gsOCkKKyAgICAgICAg c3ViICAgICAkKEwyX1BBR0VUQUJMRV9FTlRSSUVTKjgpLCVlYXgKKyAgICAgICAgbG9vcCAgICAx YgogCiAgICAgICAgIC8qCiAgICAgICAgICAqIER1cmluZyBib290LCBob29rIDRrQiBtYXBwaW5n cyBvZiBmaXJzdCAyTUIgb2YgbWVtb3J5IGludG8gTDIuCi0gICAgICAgICAqIFRoaXMgYXZvaWRz IG1peGluZyBjYWNoYWJpbGl0eSBmb3IgdGhlIGxlZ2FjeSBWR0EgcmVnaW9uLCBhbmQgaXMKLSAg ICAgICAgICogY29ycmVjdGVkIHdoZW4gWGVuIHJlbG9jYXRlcyBpdHNlbGYuCisgICAgICAgICAq IFRoaXMgYXZvaWRzIG1peGluZyBjYWNoYWJpbGl0eSBmb3IgdGhlIGxlZ2FjeSBWR0EgcmVnaW9u LgogICAgICAgICAgKi8KLSAgICAgICAgbW92ICAgICAkc3ltX3BoeXMobDFfaWRlbnRtYXApK19f UEFHRV9IWVBFUlZJU09SLCVlZGkKLSAgICAgICAgbW92ICAgICAlZWRpLHN5bV9waHlzKGwyX3hl bm1hcCkKKyAgICAgICAgbGVhICAgICBfX1BBR0VfSFlQRVJWSVNPUitzeW1fZXNpKGwxX2lkZW50 bWFwKSwlZWRpCisgICAgICAgIG1vdiAgICAgJWVkaSxzeW1fZnMobDJfYm9vdG1hcCkKIAogICAg ICAgICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byBib290c3RyYXAgdHJhbXBvbGluZS4gKi8KLSAg ICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVlZHgKKyAgICAgICAgbW92 ICAgICBzeW1fZnModHJhbXBvbGluZV9waHlzKSwlZWR4CiAgICAgICAgIG1vdiAgICAgJHN5bV9w aHlzKF9fdHJhbXBvbGluZV9yZWxfc3RhcnQpLCVlZGkKIDE6Ci0gICAgICAgIG1vdiAgICAgKCVl ZGkpLCVlYXgKLSAgICAgICAgYWRkICAgICAlZWR4LCglZWRpLCVlYXgpCisgICAgICAgIG1vdiAg ICAgJWZzOiglZWRpKSwlZWF4CisgICAgICAgIGFkZCAgICAgJWVkeCwlZnM6KCVlZGksJWVheCkK ICAgICAgICAgYWRkICAgICAkNCwlZWRpCiAgICAgICAgIGNtcCAgICAgJHN5bV9waHlzKF9fdHJh bXBvbGluZV9yZWxfc3RvcCksJWVkaQogICAgICAgICBqYiAgICAgIDFiCkBAIC00OTksMjggKzU4 OSwyOSBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBzaHIgICAgICQ0LCVlZHgKICAgICAg ICAgbW92ICAgICAkc3ltX3BoeXMoX190cmFtcG9saW5lX3NlZ19zdGFydCksJWVkaQogMToKLSAg ICAgICAgbW92ICAgICAoJWVkaSksJWVheAotICAgICAgICBtb3YgICAgICVkeCwoJWVkaSwlZWF4 KQorICAgICAgICBtb3YgICAgICVmczooJWVkaSksJWVheAorICAgICAgICBtb3YgICAgICVkeCwl ZnM6KCVlZGksJWVheCkKICAgICAgICAgYWRkICAgICAkNCwlZWRpCiAgICAgICAgIGNtcCAgICAg JHN5bV9waHlzKF9fdHJhbXBvbGluZV9zZWdfc3RvcCksJWVkaQogICAgICAgICBqYiAgICAgIDFi CiAKICAgICAgICAgLyogRG8gbm90IHBhcnNlIGNvbW1hbmQgbGluZSBvbiBFRkkgcGxhdGZvcm0g aGVyZS4gKi8KLSAgICAgICAgY21wYiAgICAkMCxzeW1fcGh5cyhza2lwX3JlYWxtb2RlKQorICAg ICAgICBjbXBiICAgICQwLHN5bV9mcyhza2lwX3JlYWxtb2RlKQogICAgICAgICBqbnogICAgIDFm CiAKICAgICAgICAgLyogQmFpbCBpZiB0aGVyZSBpcyBubyBjb21tYW5kIGxpbmUgdG8gcGFyc2Uu ICovCi0gICAgICAgIG1vdiAgICAgc3ltX3BoeXMobXVsdGlib290X3B0ciksJWVieAorICAgICAg ICBtb3YgICAgIHN5bV9mcyhtdWx0aWJvb3RfcHRyKSwlZWJ4CiAgICAgICAgIHRlc3RsICAgJE1C SV9DTURMSU5FLE1CX2ZsYWdzKCVlYngpCiAgICAgICAgIGp6ICAgICAgMWYKIAotICAgICAgICBw dXNobCAgICRzeW1fcGh5cyhlYXJseV9ib290X29wdHMpCisgICAgICAgIGxlYSAgICAgc3ltX2Vz aShlYXJseV9ib290X29wdHMpLCVlYXgKKyAgICAgICAgcHVzaCAgICAlZWF4CiAgICAgICAgIHB1 c2hsICAgTUJfY21kbGluZSglZWJ4KQogICAgICAgICBjYWxsICAgIGNtZGxpbmVfcGFyc2VfZWFy bHkKIAogMToKICAgICAgICAgLyogU3dpdGNoIHRvIGxvdy1tZW1vcnkgc3RhY2suICAqLwotICAg ICAgICBtb3YgICAgIHN5bV9waHlzKHRyYW1wb2xpbmVfcGh5cyksJWVkaQorICAgICAgICBtb3Yg ICAgIHN5bV9mcyh0cmFtcG9saW5lX3BoeXMpLCVlZGkKICAgICAgICAgbGVhICAgICAweDEwMDAw KCVlZGkpLCVlc3AKICAgICAgICAgbGVhICAgICB0cmFtcG9saW5lX2Jvb3RfY3B1X2VudHJ5LXRy YW1wb2xpbmVfc3RhcnQoJWVkaSksJWVheAogICAgICAgICBwdXNobCAgICRCT09UX0NTMzIKQEAg LTUyOSw3ICs2MjAsNyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICAvKiBDb3B5IGJvb3Rz dHJhcCB0cmFtcG9saW5lIHRvIGxvdyBtZW1vcnksIGJlbG93IDFNQi4gKi8KICAgICAgICAgbW92 ICAgICAkc3ltX3BoeXModHJhbXBvbGluZV9zdGFydCksJWVzaQogICAgICAgICBtb3YgICAgICQo KHRyYW1wb2xpbmVfZW5kIC0gdHJhbXBvbGluZV9zdGFydCkgLyA0KSwlZWN4Ci0gICAgICAgIHJl cCBtb3ZzbAorICAgICAgICByZXAgbW92c2wgJWZzOiglZXNpKSwlZXM6KCVlZGkpCiAKICAgICAg ICAgLyogSnVtcCBpbnRvIHRoZSByZWxvY2F0ZWQgdHJhbXBvbGluZS4gKi8KICAgICAgICAgbHJl dApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2Jvb3QvdHJhbXBvbGluZS5TIGIveGVuL2FyY2gv eDg2L2Jvb3QvdHJhbXBvbGluZS5TCmluZGV4IDI3MTVkMTcuLjY0ZjhlZmQgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9ib290L3RyYW1wb2xpbmUuUworKysgYi94ZW4vYXJjaC94ODYvYm9vdC90 cmFtcG9saW5lLlMKQEAgLTU0LDYgKzU0LDExIEBAIHRyYW1wb2xpbmVfZ2R0OgogICAgICAgICAv KiAweDAwMjg6IHJlYWwtbW9kZSBkYXRhIEAgQk9PVF9UUkFNUE9MSU5FICovCiAgICAgICAgIC5s b25nICAgMHgwMDAwZmZmZgogICAgICAgICAubG9uZyAgIDB4MDAwMDkyMDAKKyAgICAgICAgLyoK KyAgICAgICAgICogMHgwMDMwOiByaW5nIDAgWGVuIGRhdGEsIDE2IE1pQiBzaXplLCBiYXNlCisg ICAgICAgICAqIGFkZHJlc3MgaXMgY29tcHV0ZWQgZHVyaW5nIHJ1bnRpbWUuCisgICAgICAgICAq LworICAgICAgICAucXVhZCAgIDB4MDBjMDkyMDAwMDAwMGZmZgogCiAgICAgICAgIC5wdXNoc2Vj dGlvbiAudHJhbXBvbGluZV9yZWwsICJhIgogICAgICAgICAubG9uZyAgIHRyYW1wb2xpbmVfZ2R0 ICsgQk9PVF9QU0VVRE9STV9DUyArIDIgLSAuCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9v dC94ODZfNjQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCmluZGV4IDEzOWIyY2EuLjcz OTIwMDQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TCisrKyBiL3hlbi9h cmNoL3g4Ni9ib290L3g4Nl82NC5TCkBAIC04MSw3ICs4MSw2IEBAIEdMT0JBTChib290X2NwdV9j b21wYXRfZ2R0X3RhYmxlKQogICAgICAgICAucXVhZCAweDAwMDA5MTAwMDAwMDAwMDAgICAgIC8q IHBlci1DUFUgZW50cnkgKGxpbWl0ID09IGNwdSkgICAgICAqLwogICAgICAgICAuYWxpZ24gUEFH RV9TSVpFLCAwCiAKLUdMT0JBTChfX3BhZ2VfdGFibGVzX3N0YXJ0KQogLyoKICAqIE1hcHBpbmcg b2YgZmlyc3QgMiBtZWdhYnl0ZXMgb2YgbWVtb3J5LiBUaGlzIGlzIG1hcHBlZCB3aXRoIDRrQiBt YXBwaW5ncwogICogdG8gYXZvaWQgdHlwZSBjb25mbGljdHMgd2l0aCBmaXhlZC1yYW5nZSBNVFJS cyBjb3ZlcmluZyB0aGUgbG93ZXN0IG1lZ2FieXRlCkBAIC0xMDIsNiArMTAxLDEzIEBAIGwxX2lk ZW50bWFwOgogICAgICAgICAuc2l6ZSBsMV9pZGVudG1hcCwgLiAtIGwxX2lkZW50bWFwCiAKIC8q CisgKiBfX3BhZ2VfdGFibGVzX3N0YXJ0IGRvZXMgbm90IGNvdmVyIGwxX2lkZW50bWFwIGJlY2F1 c2UgaXQgKGwxX2lkZW50bWFwKQorICogY29udGFpbnMgMS0xIG1hcHBpbmdzLiBUaGlzIG1lYW5z IHRoYXQgZnJhbWUgYWRkcmVzc2VzIG9mIHRoZXNlIG1hcHBpbmdzCisgKiBhcmUgc3RhdGljIGFu ZCBzaG91bGQgbm90IGJlIHVwZGF0ZWQgZHVyaW5nIHJ1bnRpbWUuCisgKi8KK0dMT0JBTChfX3Bh Z2VfdGFibGVzX3N0YXJ0KQorCisvKgogICogU3BhY2UgZm9yIG1hcHBpbmcgdGhlIGZpcnN0IDRH QiBvZiBtZW1vcnksIHdpdGggdGhlIGZpcnN0IDE2IG1lZ2FieXRlcwogICogYWN0dWFseSBtYXBw ZWQgKG1vc3RseSB1c2luZyBzdXBlcnBhZ2VzKS4gIFVzZXMgNHggNGsgcGFnZXMuCiAgKi8KQEAg LTEyMSw4ICsxMjcsOSBAQCBHTE9CQUwobDJfaWRlbnRtYXApCiAgKiBwYWdlLgogICovCiBHTE9C QUwobDJfeGVubWFwKQotICAgICAgICBpZHggPSAwCi0gICAgICAgIC5yZXB0IDgKKyAgICAgICAg LnF1YWQgMAorICAgICAgICBpZHggPSAxCisgICAgICAgIC5yZXB0IDcKICAgICAgICAgLnF1YWQg c3ltX3BoeXMoX19pbWFnZV9iYXNlX18pICsgKGlkeCA8PCBMMl9QQUdFVEFCTEVfU0hJRlQpICsg KFBBR0VfSFlQRVJWSVNPUiB8IF9QQUdFX1BTRSkKICAgICAgICAgaWR4ID0gaWR4ICsgMQogICAg ICAgICAuZW5kcgpAQCAtMTg1LDIxICsxOTIsMTQgQEAgR0xPQkFMKGlkbGVfcGdfdGFibGUpCiAK IEdMT0JBTChfX3BhZ2VfdGFibGVzX2VuZCkKIAotLyogSW5pdCBwYWdldGFibGVzLiAgRW5vdWdo IHBhZ2UgZGlyZWN0b3JpZXMgdG8gbWFwIGludG8gdGhlIGJvdHRvbSAxR0IuICovCisvKiBJbml0 IHBhZ2V0YWJsZXMuIEVub3VnaCBwYWdlIGRpcmVjdG9yaWVzIHRvIG1hcCBpbnRvIDRHQi4gKi8K ICAgICAgICAgLnNlY3Rpb24gLmluaXQuZGF0YSwgImEiLCBAcHJvZ2JpdHMKICAgICAgICAgLmFs aWduIFBBR0VfU0laRSwgMAogCiBHTE9CQUwobDJfYm9vdG1hcCkKLSAgICAgICAgLnF1YWQgc3lt X3BoeXMobDFfaWRlbnRtYXApICsgX19QQUdFX0hZUEVSVklTT1IKLSAgICAgICAgaWR4ID0gMQot ICAgICAgICAucmVwdCA3Ci0gICAgICAgIC5xdWFkIChpZHggPDwgTDJfUEFHRVRBQkxFX1NISUZU KSB8IF9fUEFHRV9IWVBFUlZJU09SIHwgX1BBR0VfUFNFCi0gICAgICAgIGlkeCA9IGlkeCArIDEK LSAgICAgICAgLmVuZHIKLSAgICAgICAgLmZpbGwgTDJfUEFHRVRBQkxFX0VOVFJJRVMgLSA4LCA4 LCAwCisgICAgICAgIC5maWxsIDQgKiBMMl9QQUdFVEFCTEVfRU5UUklFUywgOCwgMAogICAgICAg ICAuc2l6ZSBsMl9ib290bWFwLCAuIC0gbDJfYm9vdG1hcAogCiBHTE9CQUwobDNfYm9vdG1hcCkK LSAgICAgICAgLnF1YWQgc3ltX3BoeXMobDJfYm9vdG1hcCkgKyBfX1BBR0VfSFlQRVJWSVNPUgot ICAgICAgICAuZmlsbCBMM19QQUdFVEFCTEVfRU5UUklFUyAtIDEsIDgsIDAKKyAgICAgICAgLmZp bGwgTDNfUEFHRVRBQkxFX0VOVFJJRVMsIDgsIDAKICAgICAgICAgLnNpemUgbDNfYm9vdG1hcCwg LiAtIGwzX2Jvb3RtYXAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2Fy Y2gveDg2L3NldHVwLmMKaW5kZXggY2ExYTk3YS4uZTZlMDVmOSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAgLTI4Niw5ICsyODYs NiBAQCBzdGF0aWMgdm9pZCAqX19pbml0IGJvb3RzdHJhcF9tYXAoY29uc3QgbW9kdWxlX3QgKm1v ZCkKICAgICBpZiAoIHN0YXJ0ID49IGVuZCApCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAg aWYgKCBlbmQgPD0gQk9PVFNUUkFQX01BUF9CQVNFICkKLSAgICAgICAgcmV0dXJuICh2b2lkICop KHVuc2lnbmVkIGxvbmcpc3RhcnQ7Ci0KICAgICByZXQgPSAodm9pZCAqKShtYXBfY3VyICsgKHVu c2lnbmVkIGxvbmcpKHN0YXJ0ICYgbWFzaykpOwogICAgIHN0YXJ0ICY9IH5tYXNrOwogICAgIGVu ZCA9IChlbmQgKyBtYXNrKSAmIH5tYXNrOwpAQCAtNjc0LDYgKzY3MSw4IEBAIHZvaWQgX19pbml0 IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICBwcmludGso IkNvbW1hbmQgbGluZTogJXNcbiIsIGNtZGxpbmUpOwogCisgICAgcHJpbnRrKCJYZW4gaW1hZ2Ug bG9hZCBiYXNlIGFkZHJlc3M6IDB4JTA4bHhcbiIsIHhlbl9waHlzX3N0YXJ0KTsKKwogICAgIHBy aW50aygiVmlkZW8gaW5mb3JtYXRpb246XG4iKTsKIAogICAgIC8qIFByaW50IFZHQSBkaXNwbGF5 IG1vZGUgaW5mb3JtYXRpb24uICovCkBAIC05MzEsNyArOTMwLDcgQEAgdm9pZCBfX2luaXQgbm9y ZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICAgICAgICAgICAgICAg ICAgLyogTm90IHByZXNlbnQsIDFHQiBtYXBwaW5nLCBvciBhbHJlYWR5IHJlbG9jYXRlZD8gKi8K ICAgICAgICAgICAgICAgICAgICAgaWYgKCAhKGwzZV9nZXRfZmxhZ3MoKnBsM2UpICYgX1BBR0Vf UFJFU0VOVCkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAobDNlX2dldF9mbGFncygqcGwz ZSkgJiBfUEFHRV9QU0UpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKGwzZV9nZXRfcGZu KCpwbDNlKSA+IDB4MTAwMCkgKQorICAgICAgICAgICAgICAgICAgICAgICAgIChsM2VfZ2V0X3Bm bigqcGwzZSkgPiBQRk5fRE9XTih4ZW5fcGh5c19zdGFydCkpICkKICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAqcGwzZSA9IGwzZV9mcm9tX2lu dHB0ZShsM2VfZ2V0X2ludHB0ZSgqcGwzZSkgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB4ZW5fcGh5c19zdGFydCk7CkBAIC05NDEsNyArOTQwLDcgQEAgdm9p ZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIE5vdCBwcmVzZW50LCBQU0UsIG9yIGFscmVhZHkgcmVsb2Nh dGVkPyAqLwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCAhKGwyZV9nZXRfZmxhZ3MoKnBs MmUpICYgX1BBR0VfUFJFU0VOVCkgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGwy ZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFNFKSB8fAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobDJlX2dldF9wZm4oKnBsMmUpID4gMHgxMDAwKSApCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsMmVfZ2V0X3BmbigqcGwyZSkgPiBQRk5fRE9XTih4ZW5fcGh5c19zdGFy dCkpICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg ICAgICAgICAgICAgICpwbDJlID0gbDJlX2Zyb21faW50cHRlKGwyZV9nZXRfaW50cHRlKCpwbDJl KSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4ZW5f cGh5c19zdGFydCk7CkBAIC05NjQsNyArOTYzLDggQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19z dGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CiAKLSAgICAgICAgICAgICAgICBpZiAoICEobDJlX2dl dF9mbGFncygqcGwyZSkgJiBfUEFHRV9QUkVTRU5UKSApCisgICAgICAgICAgICAgICAgaWYgKCAh KGwyZV9nZXRfZmxhZ3MoKnBsMmUpICYgX1BBR0VfUFJFU0VOVCkgfHwKKyAgICAgICAgICAgICAg ICAgICAgIChsMmVfZ2V0X3BmbigqcGwyZSkgPiBQRk5fRE9XTih4ZW5fcGh5c19zdGFydCkpICkK ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICBpZiAoICF1 c2luZ18yTV9tYXBwaW5nKCkgKQpAQCAtMTAxOCw2ICsxMDE4LDggQEAgdm9pZCBfX2luaXQgbm9y ZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICAgICAgICAgICAgICA6 ICJtZW1vcnkiICk7CiAKICAgICAgICAgICAgIGJvb3RzdHJhcF9tYXAoTlVMTCk7CisKKyAgICAg ICAgICAgIHByaW50aygiTmV3IFhlbiBpbWFnZSBiYXNlIGFkZHJlc3M6ICUjMDhseFxuIiwgeGVu X3BoeXNfc3RhcnQpOwogICAgICAgICB9CiAKICAgICAgICAgLyogSXMgdGhlIHJlZ2lvbiBzdWl0 YWJsZSBmb3IgcmVsb2NhdGluZyB0aGUgbXVsdGlib290IG1vZHVsZXM/ICovCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0 L2FzbS1vZmZzZXRzLmMKaW5kZXggMmEyMjY1OS4uNWQ3YThlNSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNt LW9mZnNldHMuYwpAQCAtMTc5LDUgKzE3OSw4IEBAIHZvaWQgX19kdW1teV9fKHZvaWQpCiAgICAg T0ZGU0VUKE1CMl9lZmk2NF9paCwgbXVsdGlib290Ml90YWdfZWZpNjRfaWhfdCwgcG9pbnRlcik7 CiAgICAgQkxBTksoKTsKIAorICAgIERFRklORShsMl9pZGVudG1hcF9zaXplb2YsIHNpemVvZihs Ml9pZGVudG1hcCkpOworICAgIEJMQU5LKCk7CisKICAgICBPRkZTRVQoRE9NQUlOX3ZtX2Fzc2lz dCwgc3RydWN0IGRvbWFpbiwgdm1fYXNzaXN0KTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L2FzbS14ODYvcGFnZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKaW5kZXggYWY3ZDNl OC4uYTU0ZmRkMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgKQEAgLTI4OCw3ICsyODgsNyBAQCBleHRlcm4gcm9v dF9wZ2VudHJ5X3QgaWRsZV9wZ190YWJsZVtST09UX1BBR0VUQUJMRV9FTlRSSUVTXTsKIGV4dGVy biBsMl9wZ2VudHJ5X3QgICpjb21wYXRfaWRsZV9wZ190YWJsZV9sMjsKIGV4dGVybiB1bnNpZ25l ZCBpbnQgICBtMnBfY29tcGF0X3ZzdGFydDsKIGV4dGVybiBsMl9wZ2VudHJ5X3QgbDJfeGVubWFw W0wyX1BBR0VUQUJMRV9FTlRSSUVTXSwKLSAgICBsMl9ib290bWFwW0wyX1BBR0VUQUJMRV9FTlRS SUVTXTsKKyAgICBsMl9ib290bWFwWzQqTDJfUEFHRVRBQkxFX0VOVFJJRVNdOwogZXh0ZXJuIGwz X3BnZW50cnlfdCBsM19ib290bWFwW0wzX1BBR0VUQUJMRV9FTlRSSUVTXTsKIGV4dGVybiBsMl9w Z2VudHJ5X3QgbDJfaWRlbnRtYXBbNCpMMl9QQUdFVEFCTEVfRU5UUklFU107CiBleHRlcm4gbDFf cGdlbnRyeV90IGwxX2ZpeG1hcFtMMV9QQUdFVEFCTEVfRU5UUklFU107Ci0tIAoxLjcuMTAuNAoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=