From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v15 05/10] x86: add multiboot2 protocol support for EFI platforms Date: Tue, 14 Feb 2017 19:33:24 +0100 Message-ID: <1487097209-19552-6-git-send-email-daniel.kiper@oracle.com> References: <1487097209-19552-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cdhvy-0002B1-Vx for xen-devel@lists.xenproject.org; Tue, 14 Feb 2017 18:34:39 +0000 In-Reply-To: <1487097209-19552-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, 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 LQp2MTUgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0gcmVhcnJhbmdlIGlubGluZSBhc3NlbWJs eSBhcmd1bWVudHMgaW4KICAgICAgeGVuL2FyY2gveDg2L2VmaS9zdHViLmM6ZWZpX211bHRpYm9v dDIoKQogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgIC0gaW1wcm92ZSBjb21t ZW50cyBpbiBlcnJvciBoYW5kbGluZyBpbgogICAgICBsZWdhY3kgQklPUyBNdWx0aWJvb3QyIHNj YW5uaW5nIGxvb3AKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MTQgLSBzdWdn ZXN0aW9ucy9maXhlczoKICAgIC0gbWFyayAuaW5pdC5kYXRhIHNlY3Rpb24gYXMgd3JpdGFibGU7 IGJ5IHRoZSB3YXkgd2UgbXVzdCBjaGFuZ2UKICAgICAgc2ltaWxhciBkZWZpbml0aW9uIGluIHhl bi9hcmNoL3g4Ni9ib290L3g4Nl82NC5TIGJlY2F1c2Ugb3RoZXJ3aXNlCiAgICAgIGNvbXBpbGVy IGNvbXBsYWlucyBhYm91dCBzZWN0aW9uIHR5cGVzIGNvbmZsaWN0cwogICAgICAoc3VnZ2VzdGVk IGJ5IEphbiBCZXVsaWNoKSwKICAgIC0gdXNlICVyMTUgaW5zdGVhZCBvZiAlcjE1ZAogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgIC0gcmVtb3ZlIHJlZHVuZGFudCBhZGQgZnJv bSBVRUZJIHN0YWNrIGFsaWdubWVudAogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgIC0gdXNlICJtb3YgKCVyc3ApLCVyZGkiIGluc3RlYWQgb2YgInBvcCAlcmRpL3B1c2ggJXJk aSIKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgICAtIHJldHVybiB2b2lkIGlu c3RlYWQgb2YgcGFkZHJfdCBmcm9tIGVmaV9tdWx0aWJvb3QyKCkKICAgICAgYW5kIHRoZW4gc2lt cGxpZnkgYSBiaXQgdHJhbXBvbGluZSBzZXR1cCBhc3NlbWJseQogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKSwKICAgIC0gcmVtb3ZlICIoWEVOKSIgZnJvbSBlZmlfbXVsdGlib290Migp IHN0dWIgZXJyb3IgbWVzc2FnZXMKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg ICAtIG1vdmUgZXJyIGZyb20gaW5saW5lIGFzc2VtYmx5IE91dHB1dE9wZXJhbmRzIHRvIElucHV0 T3BlcmFuZHMgaW4KICAgICAgc3R1Yi5jOmVmaV9tdWx0aWJvb3QyKCk7IHRoaXMgd2F5IHdlIGF2 b2lkIGZvbGxvd2luZyBjb21waWxlIHRpbWUgZXJyb3I6CiAgICAgIHN0dWIuYzogSW4gZnVuY3Rp b24g4oCYZWZpX211bHRpYm9vdDLigJk6CiAgICAgIHN0dWIuYzozNjo1OiBlcnJvcjogcmVhZC1v bmx5IHZhcmlhYmxlIOKAmGVycuKAmSB1c2VkIGFzIOKAmGFzbeKAmSBvdXRwdXQKICAgICAgICAg ICBhc20gdm9sYXRpbGUoCiAgICAgICAgICAgXn5+CiAgICAgIGlzc3VlIHdhcyBpbnRyb2R1Y2Vk IGJ5IGNoYW5naW5nIGVyciB0eXBlIHRvICJzdGF0aWMgY29uc3QgQ0hBUjE2IF9faW5pdGNvbnN0 IjsKICAgICAgcG90ZW50aWFsbHkgd2UgY2FuIHJldmVydCB0aGlzIGNoYW5nZSBidXQgbW92ZSB0 byBJbnB1dE9wZXJhbmRzIGxvb2tzIGJldHRlciBJTU87CiAgICAgIGV2ZW4gaWYgd2UgYXJlIG5v dCBhYmxlIHRvIHNwZWNpZnkgJXJkeCBpbiBDbG9iYmVyczsgc2ltcGx5IHdlIGRvIG5vdCBjYXJl CiAgICAgIGJlY2F1c2UgbmV4dCBpbnN0cnVjdGlvbiBhZnRlciBjYWxsIGlzIGhsdAogICAgICAo ZGlzY292ZXJlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGsgYW5kIE1hcmNvcyBNYXRzdW5hZ2Ep LAogICAgLSB0YWtlIGludG8gYWNjb3VudCBNQklfU1BBQ0VfTUlOIGluIEFTU0VSVCgodHJhbXBv bGluZV9lbmQgLSB0cmFtcG9saW5lX3N0YXJ0KSA8IC4uLikKICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgICAtIGltcHJvdmUgY29tbWVudHMKICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkuCgp2MTMgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0gbW92ZSB2Z2FfdGV4 dF9idWZmZXIgYW5kIGVmaV9wbGF0Zm9ybSB0byAuaW5pdC5kYXRhIHNlY3Rpb24KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgICAtIHJlZHVjZSBudW1iZXIgb2YgZXJyb3IgYnJh bmNoZXMgaW4gRUZJIGNvZGUgaW4geGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCiAgICAgIChzdWdn ZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSByZW5hbWUgcnVuX2JzIGxhYmVsIHRvIC5McnVu X2JzCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSBhbGlnbiB0aGUgc3Rh Y2sgYXMgVUVGSSBzcGVjIHJlcXVpcmVzCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAgLSBjaGFuZ2UgdHJhbXBvbGluZSByZWdpb24gbWVtb3J5IGxheW91dAogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgIC0gcmV2ZXJ0IGNoYW5nZXMgaW4gZWZpX2FyY2hf cHJlX2V4aXRfYm9vdCgpCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSBy ZWxvY2F0ZV90cmFtcG9saW5lKCkgbXVzdCBzZXQgdHJhbXBvbGluZV9waHlzIGZvciBhbGwgYm9v dGxvYWRlcnM7CiAgICAgIG90aGVyd2lzZSBmYWxsYmFjayBhbGxvY2F0b3IgaXMgYWx3YXlzIHVz ZWQgaWYgWGVuIHdhcyBsb2FkZWQgd2l0aAogICAgICBNdWx0aWJvb3QyIHByb3RvY29sLAogICAg LSBjaGFuZ2UgZXJyIHR5cGUgaW4gZWZpX211bHRpYm9vdDIoKSB0byAic3RhdGljIGNvbnN0IENI QVIxNiBfX2luaXRjb25zdCIKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgICAt IGNoYW5nZSBhc20gImciIGNvbnN0cmFpbnQgdG8gInJtIiBpbiBlZmlfbXVsdGlib290MigpCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2ggYW5kIERvdWcgR29sZHN0ZWluKS4KCnYxMiAt IHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAgLSByZW5hbWUgX19lZmk2NF9zdGFydCB0byBfX2VmaTY0 X21iMl9zdGFydAogICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAgLSB1c2Ug ZWZpX2FyY2hfbWVtb3J5X3NldHVwKCkgbWFjaGluZXJ5IGFzIHRyYW1wb2xpbmUKICAgICAgZXQg Y29uc29ydGVzIG1haW4gbWVtb3J5IGFsbG9jYXRvcgogICAgICAoc3VnZ2VzdGVkIGJ5IERvdWcg R29sZHN0ZWluKSwKICAgIC0gYWxsb2NhdGUgc3BhY2UgZm9yIG1iaSBzdHJ1Y3QgaW4gZWZpX2Fy Y2hfbWVtb3J5X3NldHVwKCkgdG9vOwogICAgICB0aGlzIHRoaW5nIHdhcyBub3QgdGFrZW4gaW50 byBhY2NvdW50IGluIGVhcmxpZXIgcmVsZWFzZXMsCiAgICAtIHJldmVydCB0cmFtcG9saW5lIGV0 IGNvbnNvcnRlcyBmYWxsYmFjayBtZW1vcnkgYWxsb2NhdG9yIGNvZGUKICAgICAgaW4gZWZpX2Fy Y2hfcHJvY2Vzc19tZW1vcnlfbWFwKCkgdG8gY3VycmVudCB1cHN0cmVhbSBzdGF0ZQogICAgICAo c3VnZ2VzdGVkIGJ5IERvdWcgR29sZHN0ZWluKSwKICAgIC0gZnVydGhlciBzaW1wbGlmeSBlZmlf YXJjaF9wcmVfZXhpdF9ib290KCkgY29kZSwKICAgIC0gY2FsbCBlZmlfYXJjaF9tZW1vcnlfc2V0 dXAoKSBmcm9tIGVmaV9tdWx0aWJvb3QyKCkKICAgICAgKHN1Z2dlc3RlZCBieSBEb3VnIEdvbGRz dGVpbiksCiAgICAtIGZpeCBhc2VtYmx5IGNhbGwgYXJndW1lbnQgaW4geGVuL2FyY2gveDg2L2Vm aS9zdHViLmMKICAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKSwKICAgIC0gYWRkIEFT U0VSVCgpIGZvciB0cmFtcG9saW5lIHNpemUKICAgICAgKHN1Z2dlc3RlZCBieSBEb3VnIEdvbGRz dGVpbiksCiAgICAtIGFkZCBLQigpIG1hY3JvCiAgICAgIChzdWdnZXN0ZWQgYnkgRG91ZyBHb2xk c3RlaW4pLAogICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3 IENvb3BlciBhbmQgRG91ZyBHb2xkc3RlaW4pLgoKdjEwIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAg ICAtIHJlcGxhY2UgbGptcGwgd2l0aCBscmV0cQogICAgICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBD b29wZXIpLAogICAgLSBpbnRyb2R1Y2UgZWZpX3BsYXRmb3JtIHRvIGluY3JlYXNlIGNvZGUgcmVh ZGFiaWxpdHkKICAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKS4KCnY5IC0gc3VnZ2Vz dGlvbnMvZml4ZXM6CiAgIC0gdXNlIC5MIGxhYmVscyBpbnN0ZWFkIG9mIG51bWVyaWMgb25lcyBp biBtdWx0aWJvb3QyIGRhdGEgc2Nhbm5pbmcgbG9vcHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKS4KCnY4IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdXNlIF9fYnNzX3N0YXJ0KCVy aXApL19fYnNzX2VuZCglcmlwKSBpbnN0ZWFkIG9mCiAgICAgb2YgLnN0YXJ0b2YuKC5ic3MpKCVy aXApLyQuc2l6ZW9mLiguYnNzKSBiZWNhdXNlCiAgICAgbGF0dGVyIGlzIG5vdCB0ZXN0ZWQgZXh0 ZW5zaXZlbHkgaW4gZGlmZmVyZW50CiAgICAgYnVpbHQgZW52aXJvbm1lbnRzIHlldAogICAgIChz dWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlciksCiAgIC0gZml4IG11bHRpYm9vdDIgZGF0YSBzY2Fu bmluZyBsb29wIGluIHg4Nl8zMiBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gYWRkIGNoZWNrIGZvciBleHRyYSBtZW0gZm9yIG1iaSBkYXRhIGlmIFhlbiBpcyBsb2Fk ZWQKICAgICB2aWEgbXVsdGlib290MiBwcm90b2NvbCBvbiBFRkkgcGxhdGZvcm0KICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIGRvIG5v dCBhbGxvY2F0ZSB0d2ljZSBtZW1vcnkgZm9yIHRyYW1wb2xpbmUgaWYgd2Ugd2VyZQogICAgIGxv YWRlZCB2aWEgbXVsdGlib290MiBwcm90b2NvbCBvbiBFRkkgcGxhdGZvcm0sCiAgIC0gd3JhcCBs b25nIGxpbmUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNv bW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2NiAtIHN1Z2dlc3Rpb25z L2ZpeGVzOgogICAtIGltcHJvdmUgbGFiZWwgbmFtZXMgaW4gYXNzZW1ibHkKICAgICBlcnJvciBw cmludGluZyBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92 ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHZhcmlvdXMg bWlub3IgY2xlYW51cHMgYW5kIGZpeGVzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCku Cgp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJlbW92ZSByZWR1bmRhbnQgQlNTIGFsaWdu bWVudCwKICAgLSB1cGRhdGUgQlNTIGFsaWdubWVudCBjaGVjaywKICAgLSB1c2UgX19zZXRfYml0 KCkgaW5zdGVhZCBvZiBzZXRfYml0KCkgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgLSBjYWxsIGVmaV9hcmNoX2NwdSgpIGZyb20gZWZpX211bHRpYm9vdDIo KQogICAgIGV2ZW4gaWYgdGhlIHNhbWUgd29yayBpcyBkb25lIGxhdGVyIGluCiAgICAgb3RoZXIg cGxhY2UgcmlnaHQgbm93CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0geGVu L2FyY2gveDg2L2VmaS9zdHViLmM6ZWZpX211bHRpYm9vdDIoKQogICAgIGZhaWwgcHJvcGVybHkg b24gRUZJIHBsYXRmb3JtcywKICAgLSBkbyBub3QgcmVhZCBkYXRhIGJleW9uZCB0aGUgZW5kIG9m IG11bHRpYm9vdDIKICAgICBpbmZvcm1hdGlvbiBpbiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgMzItYml0IHJlZ2lzdGVy cyBpbiB4ODZfNjQgY29kZSBpZiBwb3NzaWJsZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAtIG11bHRpYm9vdDIgaW5mb3JtYXRpb24gYWRkcmVzcyBpcyA2NC1iaXQKICAgICBp biB4ODZfNjQgY29kZSwgc28sIHRyZWF0IGl0IGlzIGFzIGlzCiAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCksCiAgIC0gdXNlIGNtb3ZjYyBpZiBwb3NzaWJsZSwKICAgLSBsZWF2ZSBvbmx5 IG9uZSBzcGFjZSBiZXR3ZWVuIHJlcCBhbmQgc3Rvc3EKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKSwKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nLAogICAtIGltcHJvdmUgZWFybHkg ZXJyb3IgbWVzc2FnZXMsCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1w cm92ZSBlYXJseSBlcnJvciBtZXNzYWdlcyBwcmludGluZyBjb2RlLAogICAtIGltcHJvdmUgbGFi ZWwgbmFtZXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNv bW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5v ciBjbGVhbnVwcy4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gdGFrZSBpbnRvIGFjY291 bnQgYWxpZ25tZW50IHdoZW4gc2tpcHBpbmcgbXVsdGlib290MiBmaXhlZCBwYXJ0CiAgICAgKHN1 Z2dlc3RlZCBieSBLb25yYWQgUnplc3p1dGVrIFdpbGspLAogICAtIGltcHJvdmUgc2VnbWVudCBy ZWdpc3RlcnMgaW5pdGlhbGl6YXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCBhbmQg S29ucmFkIFJ6ZXN6dXRlayBXaWxrKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBtZXNzYWdlCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCgp2MiAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAt IGdlbmVyYXRlIG11bHRpYm9vdDIgaGVhZGVyIHVzaW5nIG1hY3JvcwogICAgIChzdWdnZXN0ZWQg YnkgSmFuIEJldWxpY2gpLAogICAtIHN3aXRjaCBDUFUgdG8geDg2XzMyIG1vZGUgYmVmb3JlCiAg ICAganVtcGluZyB0byAzMi1iaXQgY29kZQogICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3Bl ciksCiAgIC0gcmVkdWNlIGNvZGUgY2hhbmdlcyB0byBpbmNyZWFzZSBwYXRjaCByZWFkYWJpbGl0 eQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpZ25vcmUgTVVMVElCT09UMl9U QUdfVFlQRV9CQVNJQ19NRU1JTkZPIHRhZyBvbiBFRkkgcGxhdGZvcm0KICAgICBhbmQgZmluZCBv biBteSBvd24gbXVsdGlib290Mi5tZW1fbG93ZXIgdmFsdWUsCiAgIC0gc3RvcCBleGVjdXRpb24g aWYgRUZJIHBsYXRmb3JtIGlzIGRldGVjdGVkCiAgICAgaW4gbGVnYWN5IEJJT1MgcGF0aC4KLS0t CiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgICAgICAgICAgfCAgMzA1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMgICAgICAg ICB8ICAgIDIgKy0KIHhlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaCAgICAgICB8ICAgNDkgKysr KystCiB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYyAgICAgICAgICAgfCAgIDM5ICsrKysrCiB4ZW4v YXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMgfCAgICAyICsKIHhlbi9hcmNoL3g4Ni94ZW4u bGRzLlMgICAgICAgICAgICB8ICAgIDcgKy0KIHhlbi9jb21tb24vZWZpL2Jvb3QuYyAgICAgICAg ICAgICB8ICAgMTEgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmggICAgICB8ICAgIDUg KwogeGVuL2luY2x1ZGUveGVuL2NvbmZpZy5oICAgICAgICAgIHwgICAgMSArCiA5IGZpbGVzIGNo YW5nZWQsIDM5OSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMgYi94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKaW5kZXgg ODRjZjQ0ZC4uZWI3MzhkNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Jvb3QvaGVhZC5TCisr KyBiL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwpAQCAtODksNiArODksMTMgQEAgbXVsdGlib290 Ml9oZWFkZXJfc3RhcnQ6CiAgICAgICAgICAgICAgICAgICAgMCwgLyogTnVtYmVyIG9mIHRoZSBs aW5lcyAtIG5vIHByZWZlcmVuY2UuICovIFwKICAgICAgICAgICAgICAgICAgICAwICAvKiBOdW1i ZXIgb2YgYml0cyBwZXIgcGl4ZWwgLSBubyBwcmVmZXJlbmNlLiAqLwogCisgICAgICAgIC8qIFJl cXVlc3QgdGhhdCBFeGl0Qm9vdFNlcnZpY2VzKCkgbm90IGJlIGNhbGxlZC4gKi8KKyAgICAgICAg bWIyaHRfaW5pdCBNQjJfSFQoRUZJX0JTKSwgTUIyX0hUKE9QVElPTkFMKQorCisgICAgICAgIC8q IEVGSTY0IE11bHRpYm9vdDIgZW50cnkgcG9pbnQuICovCisgICAgICAgIG1iMmh0X2luaXQgTUIy X0hUKEVOVFJZX0FERFJFU1NfRUZJNjQpLCBNQjJfSFQoT1BUSU9OQUwpLCBcCisgICAgICAgICAg ICAgICAgICAgc3ltX3BoeXMoX19lZmk2NF9tYjJfc3RhcnQpCisKICAgICAgICAgLyogTXVsdGli b290MiBoZWFkZXIgZW5kIHRhZy4gKi8KICAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5EKSwg TUIyX0hUKFJFUVVJUkVEKQogLkxtdWx0aWJvb3QyX2hlYWRlcl9lbmQ6CkBAIC0xMDAsMjAgKzEw Nyw1MCBAQCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFydDoKIGdkdF9ib290X2Rlc2NyOgogICAgICAg ICAud29yZCAgIDYqOC0xCiAgICAgICAgIC5sb25nICAgc3ltX3BoeXModHJhbXBvbGluZV9nZHQp CisgICAgICAgIC5sb25nICAgMCAvKiBOZWVkZWQgZm9yIDY0LWJpdCBsZ2R0ICovCiAKIC5MYmFk X2NwdV9tc2c6IC5hc2NpeiAiRVJSOiBOb3QgYSA2NC1iaXQgQ1BVISIKIC5MYmFkX2xkcl9tc2c6 IC5hc2NpeiAiRVJSOiBOb3QgYSBNdWx0aWJvb3QgYm9vdGxvYWRlciEiCisuTGJhZF9sZHJfbmJz OiAuYXNjaXogIkVSUjogQm9vdGxvYWRlciBzaHV0ZG93biBFRkkgeDY0IGJvb3Qgc2VydmljZXMh IgorLkxiYWRfbGRyX25zdDogLmFzY2l6ICJFUlI6IEVGSSBTeXN0ZW1UYWJsZSBpcyBub3QgcHJv dmlkZWQgYnkgYm9vdGxvYWRlciEiCisuTGJhZF9sZHJfbmloOiAuYXNjaXogIkVSUjogRUZJIElt YWdlSGFuZGxlIGlzIG5vdCBwcm92aWRlZCBieSBib290bG9hZGVyISIKKy5MYmFkX2VmaV9tc2c6 IC5hc2NpeiAiRVJSOiBFRkkgSUEtMzIgcGxhdGZvcm1zIGFyZSBub3Qgc3VwcG9ydGVkISIKKwor ICAgICAgICAuc2VjdGlvbiAuaW5pdC5kYXRhLCAiYXciLCBAcHJvZ2JpdHMKKyAgICAgICAgLmFs aWduIDQKKwordmdhX3RleHRfYnVmZmVyOgorICAgICAgICAubG9uZyAgIDB4YjgwMDAKKworZWZp X3BsYXRmb3JtOgorICAgICAgICAuYnl0ZSAgIDAKIAogICAgICAgICAuc2VjdGlvbiAuaW5pdC50 ZXh0LCAiYXgiLCBAcHJvZ2JpdHMKIAogYmFkX2NwdToKICAgICAgICAgbW92ICAgICAkKHN5bV9w aHlzKC5MYmFkX2NwdV9tc2cpKSwlZXNpICMgRXJyb3IgbWVzc2FnZQotICAgICAgICBqbXAgICAg IHByaW50X2VycgorICAgICAgICBqbXAgICAgIC5MZ2V0X3Z0Ygogbm90X211bHRpYm9vdDoKICAg ICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9tc2cpKSwlZXNpICMgRXJyb3IgbWVz c2FnZQotcHJpbnRfZXJyOgotICAgICAgICBtb3YgICAgICQweEI4MDAwLCVlZGkgICMgVkdBIGZy YW1lYnVmZmVyCi0xOiAgICAgIG1vdiAgICAgKCVlc2kpLCVibAorICAgICAgICBqbXAgICAgIC5M Z2V0X3Z0YgorLkxtYjJfbm9fc3Q6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9s ZHJfbnN0KSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAuTGdldF92dGIK Ky5MbWIyX25vX2loOgorICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25paCkp LCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisuTG1iMl9u b19iczoKKyAgICAgICAgbW92ICAgICAkKHN5bV9waHlzKC5MYmFkX2xkcl9uYnMpKSwlZXNpICMg RXJyb3IgbWVzc2FnZQorICAgICAgICB4b3IgICAgICVlZGksJWVkaSAgICAgICAgICAgICAgICAg ICAgICAgIyBObyBWR0EgdGV4dCBidWZmZXIKKyAgICAgICAgam1wICAgICAuTHNlbmRfY2hyCisu TG1iMl9lZmlfaWFfMzI6CisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9lZmlfbXNn KSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgeG9yICAgICAlZWRpLCVlZGkgICAgICAg ICAgICAgICAgICAgICAgICMgTm8gVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxz ZW5kX2NocgorLkxnZXRfdnRiOgorICAgICAgICBtb3YgICAgIHN5bV9waHlzKHZnYV90ZXh0X2J1 ZmZlciksJWVkaQorLkxzZW5kX2NocjoKKyAgICAgICAgbW92ICAgICAoJWVzaSksJWJsCiAgICAg ICAgIHRlc3QgICAgJWJsLCVibCAgICAgICAgIyBUZXJtaW5hdGUgb24gJ1wwJyBzZW50aW5lbAog ICAgICAgICBqZSAgICAgIC5MaGFsdAogICAgICAgICBtb3YgICAgICQweDNmOCs1LCVkeCAgICMg VUFSVCBMaW5lIFN0YXR1cyBSZWdpc3RlcgpAQCAtMTIzLDEzICsxNjAsMTkyIEBAIHByaW50X2Vy cjoKICAgICAgICAgbW92ICAgICAkMHgzZjgrMCwlZHggICAjIFVBUlQgVHJhbnNtaXQgSG9sZGlu ZyBSZWdpc3RlcgogICAgICAgICBtb3YgICAgICVibCwlYWwKICAgICAgICAgb3V0ICAgICAlYWws JWR4ICAgICAgICAjIFNlbmQgYSBjaGFyYWN0ZXIgb3ZlciB0aGUgc2VyaWFsIGxpbmUKLSAgICAg ICAgbW92c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0Eg ZnJhbWVidWZmZXIKKyAgICAgICAgdGVzdCAgICAlZWRpLCVlZGkgICAgICAjIElzIHRoZSBWR0Eg dGV4dCBidWZmZXIgYXZhaWxhYmxlPworICAgICAgICBqeiAgICAgIC5Mc2VuZF9jaHIKKyAgICAg ICAgbW92c2IgICAgICAgICAgICAgICAgICAjIFdyaXRlIGEgY2hhcmFjdGVyIHRvIHRoZSBWR0Eg dGV4dCBidWZmZXIKICAgICAgICAgbW92ICAgICAkNywlYWwKLSAgICAgICAgc3Rvc2IgICAgICAg ICAgICAgICAgICAjIFdyaXRlIGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIGZyYW1lYnVmZmVyCi0g ICAgICAgIGptcCAgICAgMWIKKyAgICAgICAgc3Rvc2IgICAgICAgICAgICAgICAgICAjIFdyaXRl IGFuIGF0dHJpYnV0ZSB0byB0aGUgVkdBIHRleHQgYnVmZmVyCisgICAgICAgIGptcCAgICAgLkxz ZW5kX2NocgogLkxoYWx0OiBobHQKICAgICAgICAgam1wICAgICAuTGhhbHQKIAorICAgICAgICAu Y29kZTY0CisKK19fZWZpNjRfbWIyX3N0YXJ0OgorICAgICAgICAvKgorICAgICAgICAgKiBNdWx0 aWJvb3QyIHNwZWMgc2F5cyB0aGF0IGhlcmUgQ1BVIGlzIGluIDY0LWJpdCBtb2RlLiBIb3dldmVy LAorICAgICAgICAgKiB0aGVyZSBpcyBhbHNvIGd1YXJhbnRlZSB0aGF0IGFsbCBjb2RlIGFuZCBk YXRhIGlzIGFsd2F5cyBwdXQKKyAgICAgICAgICogYnkgdGhlIGJvb3Rsb2FkZXIgYmVsb3cgNCBH aUIuIEhlbmNlLCB3ZSBjYW4gc2FmZWx5IHRydW5jYXRlCisgICAgICAgICAqIGFkZHJlc3NlcyB0 byAzMi1iaXRzIGluIG1vc3QgY2FzZXMgYmVsb3cuCisgICAgICAgICAqLworCisgICAgICAgIGNs ZAorCisgICAgICAgIC8qIFZHQSBpcyBub3QgYXZhaWxhYmxlIG9uIEVGSSBwbGF0Zm9ybXMuICov CisgICAgICAgIG1vdmwgICAkMCx2Z2FfdGV4dF9idWZmZXIoJXJpcCkKKworICAgICAgICAvKiBD aGVjayBmb3IgTXVsdGlib290MiBib290bG9hZGVyLiAqLworICAgICAgICBjbXAgICAgICRNVUxU SUJPT1QyX0JPT1RMT0FERVJfTUFHSUMsJWVheAorICAgICAgICBqZSAgICAgIC5MZWZpX211bHRp Ym9vdDJfcHJvdG8KKworICAgICAgICAvKiBKdW1wIHRvIG5vdF9tdWx0aWJvb3QgYWZ0ZXIgc3dp dGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVhICAgICBub3RfbXVsdGli b290KCVyaXApLCVyMTUKKyAgICAgICAgam1wICAgICB4ODZfMzJfc3dpdGNoCisKKy5MZWZpX211 bHRpYm9vdDJfcHJvdG86CisgICAgICAgIC8qIFplcm8gRUZJIFN5c3RlbVRhYmxlIGFuZCBFRkkg SW1hZ2VIYW5kbGUgYWRkcmVzc2VzLiAqLworICAgICAgICB4b3IgICAgICVlc2ksJWVzaQorICAg ICAgICB4b3IgICAgICVlZGksJWVkaQorCisgICAgICAgIC8qIFNraXAgTXVsdGlib290MiBpbmZv cm1hdGlvbiBmaXhlZCBwYXJ0LiAqLworICAgICAgICBsZWEgICAgIChNQjJfZml4ZWRfc2l6ZW9m K01VTFRJQk9PVDJfVEFHX0FMSUdOLTEpKCVyYngpLCVlY3gKKyAgICAgICAgYW5kICAgICAkfihN VUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CisKKy5MZWZpX21iMl90c2l6ZToKKyAgICAgICAg LyogQ2hlY2sgTXVsdGlib290MiBpbmZvcm1hdGlvbiB0b3RhbCBzaXplLiAqLworICAgICAgICBt b3YgICAgICVlY3gsJXI4ZAorICAgICAgICBzdWIgICAgICVlYngsJXI4ZAorICAgICAgICBjbXAg ICAgICVyOGQsTUIyX2ZpeGVkX3RvdGFsX3NpemUoJXJieCkKKyAgICAgICAgamJlICAgICAuTHJ1 bl9icworCisgICAgICAgIC8qIEFyZSBFRkkgYm9vdCBzZXJ2aWNlcyBhdmFpbGFibGU/ICovCisg ICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJX0JTLE1CMl90YWdfdHlwZSgl cmN4KQorICAgICAgICBqbmUgICAgIC5MZWZpX21iMl9zdAorCisgICAgICAgIC8qIFdlIGFyZSBv biBFRkkgcGxhdGZvcm0gYW5kIEVGSSBib290IHNlcnZpY2VzIGFyZSBhdmFpbGFibGUuICovCisg ICAgICAgIGluY2IgICAgZWZpX3BsYXRmb3JtKCVyaXApCisKKyAgICAgICAgLyoKKyAgICAgICAg ICogRGlzYWJsZSByZWFsIG1vZGUgYW5kIG90aGVyIGxlZ2FjeSBzdHVmZiB3aGljaCBzaG91bGQg bm90CisgICAgICAgICAqIGJlIHJ1biBvbiBFRkkgcGxhdGZvcm1zLgorICAgICAgICAgKi8KKyAg ICAgICAgaW5jYiAgICBza2lwX3JlYWxtb2RlKCVyaXApCisgICAgICAgIGptcCAgICAgLkxlZmlf bWIyX25leHRfdGFnCisKKy5MZWZpX21iMl9zdDoKKyAgICAgICAgLyogR2V0IEVGSSBTeXN0ZW1U YWJsZSBhZGRyZXNzIGZyb20gTXVsdGlib290MiBpbmZvcm1hdGlvbi4gKi8KKyAgICAgICAgY21w bCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFnX3R5cGUoJXJjeCkKKyAgICAg ICAgY21vdmUgICBNQjJfZWZpNjRfc3QoJXJjeCksJXJzaQorICAgICAgICBqZSAgICAgIC5MZWZp X21iMl9uZXh0X3RhZworCisgICAgICAgIC8qIEdldCBFRkkgSW1hZ2VIYW5kbGUgYWRkcmVzcyBm cm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9P VDJfVEFHX1RZUEVfRUZJNjRfSUgsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAgIGNtb3ZlICAg TUIyX2VmaTY0X2loKCVyY3gpLCVyZGkKKyAgICAgICAgamUgICAgICAuTGVmaV9tYjJfbmV4dF90 YWcKKworICAgICAgICAvKiBJcyBpdCB0aGUgZW5kIG9mIE11bHRpYm9vdDIgaW5mb3JtYXRpb24/ ICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRU5ELE1CMl90YWdfdHlw ZSglcmN4KQorICAgICAgICBqZSAgICAgIC5McnVuX2JzCisKKy5MZWZpX21iMl9uZXh0X3RhZzoK KyAgICAgICAgLyogR28gdG8gbmV4dCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIHRhZy4gKi8KKyAg ICAgICAgYWRkICAgICBNQjJfdGFnX3NpemUoJXJjeCksJWVjeAorICAgICAgICBhZGQgICAgICQo TVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAorICAgICAgICBhbmQgICAgICR+KE1VTFRJQk9P VDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAgICAgICAgam1wICAgICAuTGVmaV9tYjJfdHNpemUKKwor LkxydW5fYnM6CisgICAgICAgIC8qIEFyZSBFRkkgYm9vdCBzZXJ2aWNlcyBhdmFpbGFibGU/ICov CisgICAgICAgIGNtcGIgICAgJDAsZWZpX3BsYXRmb3JtKCVyaXApCisKKyAgICAgICAgLyogSnVt cCB0byAuTG1iMl9ub19icyBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLwor ICAgICAgICBsZWEgICAgIC5MbWIyX25vX2JzKCVyaXApLCVyMTUKKyAgICAgICAganogICAgICB4 ODZfMzJfc3dpdGNoCisKKyAgICAgICAgLyogSXMgRUZJIFN5c3RlbVRhYmxlIGFkZHJlc3MgcHJv dmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJzaSwlcnNpCisKKyAg ICAgICAgLyogSnVtcCB0byAuTG1iMl9ub19zdCBhZnRlciBzd2l0Y2hpbmcgQ1BVIHRvIHg4Nl8z MiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIC5MbWIyX25vX3N0KCVyaXApLCVyMTUKKyAgICAg ICAganogICAgICB4ODZfMzJfc3dpdGNoCisKKyAgICAgICAgLyogSXMgRUZJIEltYWdlSGFuZGxl IGFkZHJlc3MgcHJvdmlkZWQgYnkgYm9vdCBsb2FkZXI/ICovCisgICAgICAgIHRlc3QgICAgJXJk aSwlcmRpCisKKyAgICAgICAgLyogSnVtcCB0byAuTG1iMl9ub19paCBhZnRlciBzd2l0Y2hpbmcg Q1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIC5MbWIyX25vX2loKCVyaXAp LCVyMTUKKyAgICAgICAganogICAgICB4ODZfMzJfc3dpdGNoCisKKyAgICAgICAgLyoKKyAgICAg ICAgICogQWxpZ24gdGhlIHN0YWNrIGFzIFVFRkkgc3BlYyByZXF1aXJlcy4gS2VlcCBpdCBhbGln bmVkCisgICAgICAgICAqIGJlZm9yZSBlZmlfbXVsdGlib290MigpIGNhbGwgYnkgcHVzaGluZy9w b3BwaW5nIGV2ZW4KKyAgICAgICAgICogbnVtYmVycyBvZiBpdGVtcyBvbiBpdC4KKyAgICAgICAg ICovCisgICAgICAgIGFuZCAgICAgJH4xNSwlcnNwCisKKyAgICAgICAgLyogU2F2ZSBNdWx0aWJv b3QyIG1hZ2ljIG9uIHRoZSBzdGFjay4gKi8KKyAgICAgICAgcHVzaCAgICAlcmF4CisKKyAgICAg ICAgLyogU2F2ZSBFRkkgSW1hZ2VIYW5kbGUgb24gdGhlIHN0YWNrLiAqLworICAgICAgICBwdXNo ICAgICVyZGkKKworICAgICAgICAvKgorICAgICAgICAgKiBJbml0aWFsaXplIEJTUyAobm8gbmFz dHkgc3VycHJpc2VzISkuCisgICAgICAgICAqIEl0IG11c3QgYmUgZG9uZSBlYXJsaWVyIHRoYW4g aW4gQklPUyBjYXNlCisgICAgICAgICAqIGJlY2F1c2UgZWZpX211bHRpYm9vdDIoKSB0b3VjaGVz IGl0LgorICAgICAgICAgKi8KKyAgICAgICAgbGVhICAgICBfX2Jzc19zdGFydCglcmlwKSwlZWRp CisgICAgICAgIGxlYSAgICAgX19ic3NfZW5kKCVyaXApLCVlY3gKKyAgICAgICAgc3ViICAgICAl ZWRpLCVlY3gKKyAgICAgICAgc2hyICAgICAkMywlZWN4CisgICAgICAgIHhvciAgICAgJWVheCwl ZWF4CisgICAgICAgIHJlcCBzdG9zcQorCisgICAgICAgIC8qIEtlZXAgdGhlIHN0YWNrIGFsaWdu ZWQuIERvIG5vdCBwb3AgYSBzaW5nbGUgaXRlbSBvZmYgaXQuICovCisgICAgICAgIG1vdiAgICAg KCVyc3ApLCVyZGkKKworICAgICAgICAvKgorICAgICAgICAgKiBlZmlfbXVsdGlib290MigpIGlz IGNhbGxlZCBhY2NvcmRpbmcgdG8gU3lzdGVtIFYgQU1ENjQgQUJJOgorICAgICAgICAgKiAgIC0g SU46ICAlcmRpIC0gRUZJIEltYWdlSGFuZGxlLCAlcnNpIC0gRUZJIFN5c3RlbVRhYmxlLgorICAg ICAgICAgKi8KKyAgICAgICAgY2FsbCAgICBlZmlfbXVsdGlib290MgorCisgICAgICAgIC8qIEp1 c3QgcG9wIGFuIGl0ZW0gZnJvbSB0aGUgc3RhY2suICovCisgICAgICAgIHBvcCAgICAgJXJheAor CisgICAgICAgIC8qIFJlc3RvcmUgTXVsdGlib290MiBtYWdpYy4gKi8KKyAgICAgICAgcG9wICAg ICAlcmF4CisKKyAgICAgICAgLyogSnVtcCB0byB0cmFtcG9saW5lX3NldHVwIGFmdGVyIHN3aXRj aGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgdHJhbXBvbGluZV9z ZXR1cCglcmlwKSwlcjE1CisKK3g4Nl8zMl9zd2l0Y2g6CisgICAgICAgIG1vdiAgICAgJXIxNSwl cmRpCisKKyAgICAgICAgY2xpCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBHRFRSLiAqLworICAg ICAgICBsZ2R0ICAgIGdkdF9ib290X2Rlc2NyKCVyaXApCisKKyAgICAgICAgLyogUmVsb2FkIGNv ZGUgc2VsZWN0b3IuICovCisgICAgICAgIHB1c2hxICAgJEJPT1RfQ1MzMgorICAgICAgICBsZWEg ICAgIGNzMzJfc3dpdGNoKCVyaXApLCVlZHgKKyAgICAgICAgcHVzaCAgICAlcmR4CisgICAgICAg IGxyZXRxCisKKyAgICAgICAgLmNvZGUzMgorCitjczMyX3N3aXRjaDoKKyAgICAgICAgLyogSW5p dGlhbGl6ZSBiYXNpYyBkYXRhIHNlZ21lbnRzLiAqLworICAgICAgICBtb3YgICAgICRCT09UX0RT LCVlZHgKKyAgICAgICAgbW92ICAgICAlZWR4LCVkcworICAgICAgICBtb3YgICAgICVlZHgsJWVz CisgICAgICAgIG1vdiAgICAgJWVkeCwlc3MKKyAgICAgICAgLyogJWVzcCBpcyBpbml0aWFsaXpl ZCBsYXRlci4gKi8KKworICAgICAgICAvKiBMb2FkIG51bGwgZGVzY3JpcHRvciB0byB1bnVzZWQg c2VnbWVudCByZWdpc3RlcnMuICovCisgICAgICAgIHhvciAgICAgJWVkeCwlZWR4CisgICAgICAg IG1vdiAgICAgJWVkeCwlZnMKKyAgICAgICAgbW92ICAgICAlZWR4LCVncworCisgICAgICAgIC8q IERpc2FibGUgcGFnaW5nLiAqLworICAgICAgICBtb3YgICAgICVjcjAsJWVkeAorICAgICAgICBh bmQgICAgICQoflg4Nl9DUjBfUEcpLCVlZHgKKyAgICAgICAgbW92ICAgICAlZWR4LCVjcjAKKwor ICAgICAgICAvKiBKdW1wIHRvIGVhcmxpZXIgbG9hZGVkIGFkZHJlc3MuICovCisgICAgICAgIGpt cCAgICAgKiVlZGkKKwogX19zdGFydDoKICAgICAgICAgY2xkCiAgICAgICAgIGNsaQpAQCAtMTU3 LDcgKzM3Myw3IEBAIF9fc3RhcnQ6CiAKICAgICAgICAgLyogTm90IGF2YWlsYWJsZT8gQkRBIHZh bHVlIHdpbGwgYmUgZmluZS4gKi8KICAgICAgICAgY21vdm56ICBNQl9tZW1fbG93ZXIoJWVieCks JWVkeAotICAgICAgICBqbXAgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAgICAgam1wICAgICB0 cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAogLkxtdWx0aWJvb3QyX3Byb3RvOgogICAgICAgICAvKiBT a2lwIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gZml4ZWQgcGFydC4gKi8KQEAgLTE2OSwyNCArMzg1 LDQxIEBAIF9fc3RhcnQ6CiAgICAgICAgIG1vdiAgICAgJWVjeCwlZWRpCiAgICAgICAgIHN1YiAg ICAgJWVieCwlZWRpCiAgICAgICAgIGNtcCAgICAgJWVkaSxNQjJfZml4ZWRfdG90YWxfc2l6ZSgl ZWJ4KQotICAgICAgICBqYmUgICAgIHRyYW1wb2xpbmVfc2V0dXAKKyAgICAgICAgamJlICAgICB0 cmFtcG9saW5lX2Jpb3Nfc2V0dXAKIAogICAgICAgICAvKiBHZXQgbWVtX2xvd2VyIGZyb20gTXVs dGlib290MiBpbmZvcm1hdGlvbi4gKi8KICAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdf VFlQRV9CQVNJQ19NRU1JTkZPLE1CMl90YWdfdHlwZSglZWN4KQogICAgICAgICBjbW92ZSAgIE1C Ml9tZW1fbG93ZXIoJWVjeCksJWVkeAotICAgICAgICBqZSAgICAgIHRyYW1wb2xpbmVfc2V0dXAK KyAgICAgICAgamUgICAgICAuTG1iMl9uZXh0X3RhZworCisgICAgICAgIC8qIEVGSSBJQS0zMiBw bGF0Zm9ybXMgYXJlIG5vdCBzdXBwb3J0ZWQuICovCisgICAgICAgIGNtcGwgICAgJE1VTFRJQk9P VDJfVEFHX1RZUEVfRUZJMzIsTUIyX3RhZ190eXBlKCVlY3gpCisgICAgICAgIC8qCisgICAgICAg ICAqIEhlcmUgd2Ugc2hvdWxkIHphcCB2Z2FfdGV4dF9idWZmZXIuIEhvd2V2ZXIsIHdlIGNhbiBk aXNhYmxlCisgICAgICAgICAqIFZHQSB1cGRhdGVzIGluIHNpbXBsZXIgYW5kIG1vcmUgcmVsaWFi bGUgd2F5IGxhdGVyLgorICAgICAgICAgKi8KKyAgICAgICAgamUgICAgICAuTG1iMl9lZmlfaWFf MzIKKworICAgICAgICAvKiBCb290bG9hZGVyIHNodXRkb3duIEVGSSB4NjQgYm9vdCBzZXJ2aWNl cy4gKi8KKyAgICAgICAgY21wbCAgICAkTVVMVElCT09UMl9UQUdfVFlQRV9FRkk2NCxNQjJfdGFn X3R5cGUoJWVjeCkKKyAgICAgICAgLyoKKyAgICAgICAgICogSGVyZSB3ZSBzaG91bGQgemFwIHZn YV90ZXh0X2J1ZmZlci4gSG93ZXZlciwgd2UgY2FuIGRpc2FibGUKKyAgICAgICAgICogVkdBIHVw ZGF0ZXMgaW4gc2ltcGxlciBhbmQgbW9yZSByZWxpYWJsZSB3YXkgbGF0ZXIuCisgICAgICAgICAq LworICAgICAgICBqZSAgICAgIC5MbWIyX25vX2JzCiAKICAgICAgICAgLyogSXMgaXQgdGhlIGVu ZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLwogICAgICAgICBjbXBsICAgICRNVUxUSUJP T1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKLSAgICAgICAgamUgICAgICB0cmFt cG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGluZV9iaW9zX3NldHVwCiAKKy5M bWIyX25leHRfdGFnOgogICAgICAgICAvKiBHbyB0byBuZXh0IE11bHRpYm9vdDIgaW5mb3JtYXRp b24gdGFnLiAqLwogICAgICAgICBhZGQgICAgIE1CMl90YWdfc2l6ZSglZWN4KSwlZWN4CiAgICAg ICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwlZWN4CiAgICAgICAgIGFuZCAg ICAgJH4oTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAogICAgICAgICBqbXAgICAgIC5MbWIy X3RzaXplCiAKLXRyYW1wb2xpbmVfc2V0dXA6Cit0cmFtcG9saW5lX2Jpb3Nfc2V0dXA6CiAgICAg ICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJlbG93IEVCREEgKi8KICAgICAg ICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEgc2VnbWVudCAqLwogICAgICAg ICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5IGNoZWNrIChoaWdoKSAqLwpA QCAtMjA3LDIzICs0NDAsNTQgQEAgdHJhbXBvbGluZV9zZXR1cDoKICAgICAgICAgY21wICAgICAl ZWN4LCVlZHggICAgICAgICAgIC8qIGNvbXBhcmUgd2l0aCBCREEgdmFsdWUgKi8KICAgICAgICAg Y21vdmIgICAlZWR4LCVlY3ggICAgICAgICAgIC8qIGFuZCB1c2UgdGhlIHNtYWxsZXIgKi8KIAot MjogICAgICAvKiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9saW5lICovCi0gICAgICAgIHN1 YiAgICAgJDB4MTAwMCwlZWN4CisyOgorICAgICAgICAvKiBSZXNlcnZlIG1lbW9yeSBmb3IgdGhl IHRyYW1wb2xpbmUgYW5kIHRoZSBsb3ctbWVtb3J5IHN0YWNrLiAqLworICAgICAgICBzdWIgICAg ICQoKFRSQU1QT0xJTkVfU1BBQ0UrVFJBTVBPTElORV9TVEFDS19TUEFDRSk+PjQpLCVlY3gKIAog ICAgICAgICAvKiBGcm9tIGFyY2gveDg2L3NtcGJvb3QuYzogc3RhcnRfZWlwIGhhZCBiZXR0ZXIg YmUgcGFnZS1hbGlnbmVkISAqLwogICAgICAgICB4b3IgICAgICVjbCwgJWNsCiAgICAgICAgIHNo bCAgICAgJDQsICVlY3gKICAgICAgICAgbW92ICAgICAlZWN4LHN5bV9waHlzKHRyYW1wb2xpbmVf cGh5cykKIAordHJhbXBvbGluZV9zZXR1cDoKKyAgICAgICAgbW92ICAgICBzeW1fcGh5cyh0cmFt cG9saW5lX3BoeXMpLCVlY3gKKworICAgICAgICAvKiBHZXQgYm90dG9tLW1vc3QgbG93LW1lbW9y eSBzdGFjayBhZGRyZXNzLiAqLworICAgICAgICBhZGQgICAgICRUUkFNUE9MSU5FX1NQQUNFLCVl Y3gKKwogICAgICAgICAvKiBTYXZlIHRoZSBNdWx0aWJvb3QgaW5mbyBzdHJ1Y3QgKGFmdGVyIHJl bG9jYXRpb24pIGZvciBsYXRlciB1c2UuICovCiAgICAgICAgIG1vdiAgICAgJHN5bV9waHlzKGNw dTBfc3RhY2spKzEwMjQsJWVzcAotICAgICAgICBwdXNoICAgICVlY3ggICAgICAgICAgICAgICAg LyogQm9vdCB0cmFtcG9saW5lIGFkZHJlc3MuICovCisgICAgICAgIHB1c2ggICAgJWVjeCAgICAg ICAgICAgICAgICAvKiBCb3R0b20tbW9zdCBsb3ctbWVtb3J5IHN0YWNrIGFkZHJlc3MuICovCiAg ICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAgICAvKiBNdWx0aWJvb3QgaW5mb3JtYXRp b24gYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAlZWF4ICAgICAgICAgICAgICAgIC8qIE11 bHRpYm9vdCBtYWdpYy4gKi8KICAgICAgICAgY2FsbCAgICByZWxvYwogICAgICAgICBtb3YgICAg ICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKIAotICAgICAgICAvKiBJbml0aWFsaXplIEJT UyAobm8gbmFzdHkgc3VycHJpc2VzISkgKi8KKyAgICAgICAgLyoKKyAgICAgICAgICogTm93IHRy YW1wb2xpbmVfcGh5cyBwb2ludHMgdG8gdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmUgKGxvd2VzdCBh ZGRyZXNzCisgICAgICAgICAqIGlzIGF0IHRoZSBib3R0b20pOgorICAgICAgICAgKgorICAgICAg ICAgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgKiB8IFRSQU1QT0xJTkVf U1RBQ0tfU1BBQ0UgfAorICAgICAgICAgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAg ICAgICAgKiB8ICAgICAgICBtYmkgZGF0YSAgICAgICAgfAorICAgICAgICAgKiArLSAtIC0gLSAt IC0gLSAtIC0gLSAtIC0gKworICAgICAgICAgKiB8ICAgIFRSQU1QT0xJTkVfU1BBQ0UgICAgfAor ICAgICAgICAgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAgICAgKgorICAgICAg ICAgKiBtYmkgZGF0YSBncm93cyBkb3dud2FyZHMgZnJvbSB0aGUgaGlnaGVzdCBhZGRyZXNzIG9m IFRSQU1QT0xJTkVfU1BBQ0UKKyAgICAgICAgICogcmVnaW9uIHRvIHRoZSBlbmQgb2YgdGhlIHRy YW1wb2xpbmUuIFRoZSByZXN0IG9mIFRSQU1QT0xJTkVfU1BBQ0UgaXMKKyAgICAgICAgICogcmVz ZXJ2ZWQgZm9yIHRyYW1wb2xpbmUgY29kZSBhbmQgZGF0YS4KKyAgICAgICAgICovCisKKyAgICAg ICAgLyoKKyAgICAgICAgICogRG8gbm90IHplcm8gQlNTIG9uIEVGSSBwbGF0Zm9ybSBoZXJlLgor ICAgICAgICAgKiBJdCB3YXMgaW5pdGlhbGl6ZWQgZWFybGllci4KKyAgICAgICAgICovCisgICAg ICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoZWZpX3BsYXRmb3JtKQorICAgICAgICBqbnogICAgIDFm CisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5IHN1cnByaXNlcyEpLiAqLwog ICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19zdGFydCksJWVkaQogICAgICAgICBtb3Yg ICAgICRzeW1fcGh5cyhfX2Jzc19lbmQpLCVlY3gKICAgICAgICAgc3ViICAgICAlZWRpLCVlY3gK QEAgLTIzMSw2ICs0OTUsNyBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBzaHIgICAgICQy LCVlY3gKICAgICAgICAgcmVwIHN0b3NsCiAKKzE6CiAgICAgICAgIC8qIEludGVycm9nYXRlIENQ VSBleHRlbmRlZCBmZWF0dXJlcyB2aWEgQ1BVSUQuICovCiAgICAgICAgIG1vdiAgICAgJDB4ODAw MDAwMDAsJWVheAogICAgICAgICBjcHVpZApAQCAtMjgyLDYgKzU0NywxMCBAQCB0cmFtcG9saW5l X3NldHVwOgogICAgICAgICBjbXAgICAgICRzeW1fcGh5cyhfX3RyYW1wb2xpbmVfc2VnX3N0b3Ap LCVlZGkKICAgICAgICAgamIgICAgICAxYgogCisgICAgICAgIC8qIERvIG5vdCBwYXJzZSBjb21t YW5kIGxpbmUgb24gRUZJIHBsYXRmb3JtIGhlcmUuICovCisgICAgICAgIGNtcGIgICAgJDAsc3lt X3BoeXMoZWZpX3BsYXRmb3JtKQorICAgICAgICBqbnogICAgIDFmCisKICAgICAgICAgLyogQmFp bCBpZiB0aGVyZSBpcyBubyBjb21tYW5kIGxpbmUgdG8gcGFyc2UuICovCiAgICAgICAgIG1vdiAg ICAgc3ltX3BoeXMobXVsdGlib290X3B0ciksJWVieAogICAgICAgICB0ZXN0bCAgICRNQklfQ01E TElORSxNQl9mbGFncyglZWJ4KQpAQCAtMjkyLDkgKzU2MSw5IEBAIHRyYW1wb2xpbmVfc2V0dXA6 CiAgICAgICAgIGNhbGwgICAgY21kbGluZV9wYXJzZV9lYXJseQogCiAxOgotICAgICAgICAvKiBT d2l0Y2ggdG8gbG93LW1lbW9yeSBzdGFjay4gICovCisgICAgICAgIC8qIFN3aXRjaCB0byBsb3ct bWVtb3J5IHN0YWNrIHdoaWNoIGxpdmVzIGF0IHRoZSBlbmQgb2YgdHJhbXBvbGluZSByZWdpb24u ICovCiAgICAgICAgIG1vdiAgICAgc3ltX3BoeXModHJhbXBvbGluZV9waHlzKSwlZWRpCi0gICAg ICAgIGxlYSAgICAgMHgxMDAwMCglZWRpKSwlZXNwCisgICAgICAgIGxlYSAgICAgVFJBTVBPTElO RV9TUEFDRStUUkFNUE9MSU5FX1NUQUNLX1NQQUNFKCVlZGkpLCVlc3AKICAgICAgICAgbGVhICAg ICB0cmFtcG9saW5lX2Jvb3RfY3B1X2VudHJ5LXRyYW1wb2xpbmVfc3RhcnQoJWVkaSksJWVheAog ICAgICAgICBwdXNobCAgICRCT09UX0NTMzIKICAgICAgICAgcHVzaCAgICAlZWF4CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jIGIveGVuL2FyY2gveDg2L2Jvb3QvcmVsb2Mu YwppbmRleCA5MWZhYjlkLi5iOTkyNjc4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9y ZWxvYy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMKQEAgLTE2LDcgKzE2LDcgQEAK ICAqIFRoaXMgZW50cnkgcG9pbnQgaXMgZW50ZXJlZCBmcm9tIHhlbi9hcmNoL3g4Ni9ib290L2hl YWQuUyB3aXRoOgogICogICAtIDB4NCglZXNwKSA9IE1VTFRJQk9PVF9NQUdJQywKICAqICAgLSAw eDgoJWVzcCkgPSBNVUxUSUJPT1RfSU5GT1JNQVRJT05fQUREUkVTUywKLSAqICAgLSAweGMoJWVz cCkgPSBCT09UX1RSQU1QT0xJTkVfQUREUkVTUy4KKyAqICAgLSAweGMoJWVzcCkgPSBUT1BNT1NU X0xPV19NRU1PUllfU1RBQ0tfQUREUkVTUy4KICAqLwogYXNtICgKICAgICAiICAgIC50ZXh0ICAg ICAgICAgICAgICAgICAgICAgICAgIFxuIgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2VmaS9l ZmktYm9vdC5oIGIveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oCmluZGV4IDYyYzAxMGUuLjk0 NDE4YmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvZWZpLWJvb3QuaAorKysgYi94ZW4v YXJjaC94ODYvZWZpL2VmaS1ib290LmgKQEAgLTEwMSw2ICsxMDEsMTAgQEAgc3RhdGljIHZvaWQg X19pbml0IHJlbG9jYXRlX3RyYW1wb2xpbmUodW5zaWduZWQgbG9uZyBwaHlzKQogICAgIGNvbnN0 IHMzMiAqdHJhbXBvbGluZV9wdHI7CiAKICAgICB0cmFtcG9saW5lX3BoeXMgPSBwaHlzOworCisg ICAgaWYgKCAhZWZpX2VuYWJsZWQoRUZJX0xPQURFUikgKQorICAgICAgICByZXR1cm47CisKICAg ICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byB0cmFtcG9saW5lLiAqLwogICAgIGZvciAoIHRyYW1w b2xpbmVfcHRyID0gX190cmFtcG9saW5lX3JlbF9zdGFydDsKICAgICAgICAgICB0cmFtcG9saW5l X3B0ciA8IF9fdHJhbXBvbGluZV9yZWxfc3RvcDsKQEAgLTU1MCw3ICs1NTQsMTIgQEAgc3RhdGlj IHZvaWQgX19pbml0IGVmaV9hcmNoX21lbW9yeV9zZXR1cCh2b2lkKQogCiAgICAgLyogQWxsb2Nh dGUgc3BhY2UgZm9yIHRyYW1wb2xpbmUgKGluIGZpcnN0IE1iKS4gKi8KICAgICBjZmcuYWRkciA9 IDB4MTAwMDAwOwotICAgIGNmZy5zaXplID0gdHJhbXBvbGluZV9lbmQgLSB0cmFtcG9saW5lX3N0 YXJ0OworCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCisgICAgICAgIGNmZy5z aXplID0gdHJhbXBvbGluZV9lbmQgLSB0cmFtcG9saW5lX3N0YXJ0OworICAgIGVsc2UKKyAgICAg ICAgY2ZnLnNpemUgPSBUUkFNUE9MSU5FX1NQQUNFICsgVFJBTVBPTElORV9TVEFDS19TUEFDRTsK KwogICAgIHN0YXR1cyA9IGVmaV9icy0+QWxsb2NhdGVQYWdlcyhBbGxvY2F0ZU1heEFkZHJlc3Ms IEVmaUxvYWRlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9V UChjZmcuc2l6ZSksICZjZmcuYWRkcik7CiAgICAgaWYgKCBzdGF0dXMgPT0gRUZJX1NVQ0NFU1Mg KQpAQCAtNTYxLDYgKzU3MCw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlZmlfYXJjaF9tZW1vcnlf c2V0dXAodm9pZCkKICAgICAgICAgUHJpbnRTdHIoTCJUcmFtcG9saW5lIHNwYWNlIGNhbm5vdCBi ZSBhbGxvY2F0ZWQ7IHdpbGwgdHJ5IGZhbGxiYWNrLlxyXG4iKTsKICAgICB9CiAKKyAgICBpZiAo ICFlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCisgICAgICAgIHJldHVybjsKKwogICAgIC8qIElu aXRpYWxpc2UgTDIgaWRlbnRpdHktbWFwIGFuZCBib290LW1hcCBwYWdlIHRhYmxlIGVudHJpZXMg KDE2TUIpLiAqLwogICAgIGZvciAoIGkgPSAwOyBpIDwgODsgKytpICkKICAgICB7CkBAIC02NTMs NiArNjY1LDQxIEBAIHN0YXRpYyBib29sX3QgX19pbml0IGVmaV9hcmNoX3VzZV9jb25maWdfZmls ZShFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKIAogc3RhdGljIHZvaWQgZWZpX2FyY2hf Zmx1c2hfZGNhY2hlX2FyZWEoY29uc3Qgdm9pZCAqdmFkZHIsIFVJTlROIHNpemUpIHsgfQogCit2 b2lkIF9faW5pdCBlZmlfbXVsdGlib290MihFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lT VEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKK3sKKyAgICBFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RP Q09MICpnb3A7CisgICAgVUlOVE4gY29scywgZ29wX21vZGUgPSB+MCwgcm93czsKKworICAgIF9f c2V0X2JpdChFRklfQk9PVCwgJmVmaV9mbGFncyk7CisgICAgX19zZXRfYml0KEVGSV9SUywgJmVm aV9mbGFncyk7CisKKyAgICBlZmlfaW5pdChJbWFnZUhhbmRsZSwgU3lzdGVtVGFibGUpOworCisg ICAgZWZpX2NvbnNvbGVfc2V0X21vZGUoKTsKKworICAgIGlmICggU3RkT3V0LT5RdWVyeU1vZGUo U3RkT3V0LCBTdGRPdXQtPk1vZGUtPk1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAm Y29scywgJnJvd3MpID09IEVGSV9TVUNDRVNTICkKKyAgICAgICAgZWZpX2FyY2hfY29uc29sZV9p bml0KGNvbHMsIHJvd3MpOworCisgICAgZ29wID0gZWZpX2dldF9nb3AoKTsKKworICAgIGlmICgg Z29wICkKKyAgICAgICAgZ29wX21vZGUgPSBlZmlfZmluZF9nb3BfbW9kZShnb3AsIDAsIDAsIDAp OworCisgICAgZWZpX2FyY2hfZWRkKCk7CisgICAgZWZpX2FyY2hfY3B1KCk7CisKKyAgICBlZmlf dGFibGVzKCk7CisgICAgc2V0dXBfZWZpX3BjaSgpOworICAgIGVmaV92YXJpYWJsZXMoKTsKKyAg ICBlZmlfYXJjaF9tZW1vcnlfc2V0dXAoKTsKKworICAgIGlmICggZ29wICkKKyAgICAgICAgZWZp X3NldF9nb3BfbW9kZShnb3AsIGdvcF9tb2RlKTsKKworICAgIGVmaV9leGl0X2Jvb3QoSW1hZ2VI YW5kbGUsIFN5c3RlbVRhYmxlKTsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1v ZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jIGIveGVuL2FyY2gveDg2 L2VmaS9zdHViLmMKaW5kZXggNDE1ODEyNC4uMTdkYTA1MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2VmaS9zdHViLmMKKysrIGIveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKQEAgLTMsNiArMyw0 NSBAQAogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1 ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL2VmaWJpbmQuaD4KKyNpbmNsdWRlIDxlZmkv ZWZpZGVmLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWNhcHN1bGUuaD4KKyNpbmNsdWRlIDxlZmkvZWZp Y29uLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWRldnAuaD4KKyNpbmNsdWRlIDxlZmkvZWZpYXBpLmg+ CisKKy8qCisgKiBIZXJlIHdlIGFyZSBpbiBFRkkgc3R1Yi4gRUZJIGNhbGxzIGFyZSBub3Qgc3Vw cG9ydGVkIGR1ZSB0byBsYWNrCisgKiBvZiByZWxldmFudCBmdW5jdGlvbmFsaXR5IGluIGNvbXBp bGVyIGFuZC9vciBsaW5rZXIuCisgKgorICogZWZpX211bHRpYm9vdDIoKSBpcyBhbiBleGNlcHRp b24uIFBsZWFzZSBsb29rIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisgKi8KKwordm9pZCBfX2lu aXQgbm9yZXR1cm4gZWZpX211bHRpYm9vdDIoRUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRh YmxlKQoreworICAgIHN0YXRpYyBjb25zdCBDSEFSMTYgX19pbml0Y29uc3QgZXJyW10gPQorICAg ICAgICBMIlhlbiBkb2VzIG5vdCBoYXZlIEVGSSBjb2RlIGJ1aWxkIGluIVxyXG5TeXN0ZW0gaGFs dGVkIVxyXG4iOworICAgIFNJTVBMRV9URVhUX09VVFBVVF9JTlRFUkZBQ0UgKlN0ZEVycjsKKwor ICAgIFN0ZEVyciA9IFN5c3RlbVRhYmxlLT5TdGRFcnIgPyBTeXN0ZW1UYWJsZS0+U3RkRXJyIDog U3lzdGVtVGFibGUtPkNvbk91dDsKKworICAgIC8qCisgICAgICogUHJpbnQgZXJyb3IgbWVzc2Fn ZSBhbmQgaGFsdCB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICogV2UgaGF2ZSB0byBvcGVuIGNv ZGUgTVMgeDY0IGNhbGxpbmcgY29udmVudGlvbgorICAgICAqIGluIGFzc2VtYmx5IGJlY2F1c2Ug aGVyZSB0aGlzIGNvbnZlbnRpb24gbWF5CisgICAgICogbm90IGJlIGRpcmVjdGx5IHN1cHBvcnRl ZCBieSBDIGNvbXBpbGVyLgorICAgICAqLworICAgIGFzbSB2b2xhdGlsZSgKKyAgICAiICAgIGNh bGwgKiUzICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgIjA6ICBobHQgICAgICAgICAgICAg ICAgICAgICAgICAgIFxuIgorICAgICIgICAgam1wICAwYiAgICAgICAgICAgICAgICAgICAgICBc biIKKyAgICAgICA6ICIrYyIgKFN0ZEVyciksICI9ZCIgKFN0ZEVycikgOiAiMSIgKGVyciksICJy bSIgKFN0ZEVyci0+T3V0cHV0U3RyaW5nKQorICAgICAgIDogInJheCIsICJyOCIsICJyOSIsICJy MTAiLCAicjExIiwgIm1lbW9yeSIpOworCisgICAgdW5yZWFjaGFibGUoKTsKK30KIAogYm9vbCBl ZmlfZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNl dHMuYwppbmRleCA5MmY1ZDgxLi5mMTM1NjU0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2 XzY0L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9hc20tb2Zmc2V0cy5j CkBAIC0xNzUsNiArMTc1LDggQEAgdm9pZCBfX2R1bW15X18odm9pZCkKICAgICBPRkZTRVQoTUIy X3RhZ190eXBlLCBtdWx0aWJvb3QyX3RhZ190LCB0eXBlKTsKICAgICBPRkZTRVQoTUIyX3RhZ19z aXplLCBtdWx0aWJvb3QyX3RhZ190LCBzaXplKTsKICAgICBPRkZTRVQoTUIyX21lbV9sb3dlciwg bXVsdGlib290Ml90YWdfYmFzaWNfbWVtaW5mb190LCBtZW1fbG93ZXIpOworICAgIE9GRlNFVChN QjJfZWZpNjRfc3QsIG11bHRpYm9vdDJfdGFnX2VmaTY0X3QsIHBvaW50ZXIpOworICAgIE9GRlNF VChNQjJfZWZpNjRfaWgsIG11bHRpYm9vdDJfdGFnX2VmaTY0X2loX3QsIHBvaW50ZXIpOwogICAg IEJMQU5LKCk7CiAKICAgICBPRkZTRVQoRE9NQUlOX3ZtX2Fzc2lzdCwgc3RydWN0IGRvbWFpbiwg dm1fYXNzaXN0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgYi94ZW4vYXJj aC94ODYveGVuLmxkcy5TCmluZGV4IGIwYjFjOWIuLjc2ZTE4YWIgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwpAQCAtMzMxLDUg KzMzMSw4IEBAIEFTU0VSVChJU19BTElHTkVEKF9faW5pdF9lbmQsICAgUEFHRV9TSVpFKSwgIl9f aW5pdF9lbmQgbWlzYWxpZ25lZCIpCiAKIEFTU0VSVChJU19BTElHTkVEKHRyYW1wb2xpbmVfc3Rh cnQsIDQpLCAidHJhbXBvbGluZV9zdGFydCBtaXNhbGlnbmVkIikKIEFTU0VSVChJU19BTElHTkVE KHRyYW1wb2xpbmVfZW5kLCAgIDQpLCAidHJhbXBvbGluZV9lbmQgbWlzYWxpZ25lZCIpCi1BU1NF UlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA0KSwgIl9fYnNzX3N0YXJ0IG1pc2FsaWdu ZWQiKQotQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAgICAgNCksICJfX2Jzc19lbmQg bWlzYWxpZ25lZCIpCitBU1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA4KSwgIl9f YnNzX3N0YXJ0IG1pc2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAg ICAgOCksICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCisKK0FTU0VSVCgodHJhbXBvbGluZV9lbmQg LSB0cmFtcG9saW5lX3N0YXJ0KSA8IFRSQU1QT0xJTkVfU1BBQ0UgLSBNQklfU1BBQ0VfTUlOLAor ICAgICJub3QgZW5vdWdoIHJvb20gZm9yIHRyYW1wb2xpbmUgYW5kIG1iaSBkYXRhIikKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYwppbmRl eCAzNmRiYjcxLi5iNmNiZGFkIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2VmaS9ib290LmMKKysr IGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jCkBAIC03OSw2ICs3OSwxNyBAQCBzdGF0aWMgc2l6ZV90 IHdzdHJsZW4oY29uc3QgQ0hBUjE2ICogcyk7CiBzdGF0aWMgaW50IHNldF9jb2xvcih1MzIgbWFz aywgaW50IGJwcCwgdTggKnBvcywgdTggKnN6KTsKIHN0YXRpYyBib29sX3QgbWF0Y2hfZ3VpZChj b25zdCBFRklfR1VJRCAqZ3VpZDEsIGNvbnN0IEVGSV9HVUlEICpndWlkMik7CiAKK3N0YXRpYyB2 b2lkIGVmaV9pbml0KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5 c3RlbVRhYmxlKTsKK3N0YXRpYyB2b2lkIGVmaV9jb25zb2xlX3NldF9tb2RlKHZvaWQpOworc3Rh dGljIEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmVmaV9nZXRfZ29wKHZvaWQpOworc3Rh dGljIFVJTlROIGVmaV9maW5kX2dvcF9tb2RlKEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wg KmdvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVSU5UTiBjb2xzLCBVSU5UTiBy b3dzLCBVSU5UTiBkZXB0aCk7CitzdGF0aWMgdm9pZCBlZmlfdGFibGVzKHZvaWQpOworc3RhdGlj IHZvaWQgc2V0dXBfZWZpX3BjaSh2b2lkKTsKK3N0YXRpYyB2b2lkIGVmaV92YXJpYWJsZXModm9p ZCk7CitzdGF0aWMgdm9pZCBlZmlfc2V0X2dvcF9tb2RlKEVGSV9HUkFQSElDU19PVVRQVVRfUFJP VE9DT0wgKmdvcCwgVUlOVE4gZ29wX21vZGUpOworc3RhdGljIHZvaWQgZWZpX2V4aXRfYm9vdChF RklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSk7CisK IHN0YXRpYyBjb25zdCBFRklfQk9PVF9TRVJWSUNFUyAqX19pbml0ZGF0YSBlZmlfYnM7CiBzdGF0 aWMgVUlOVDMyIF9faW5pdGRhdGEgZWZpX2JzX3JldmlzaW9uOwogc3RhdGljIEVGSV9IQU5ETEUg X19pbml0ZGF0YSBlZmlfaWg7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZp Zy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaAppbmRleCA2ZmQ4NGU3Li5iOWE2ZDk0 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZpZy5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvY29uZmlnLmgKQEAgLTczLDYgKzczLDExIEBACiAjZGVmaW5lIFNUQUNLX09S REVSIDMKICNkZWZpbmUgU1RBQ0tfU0laRSAgKFBBR0VfU0laRSA8PCBTVEFDS19PUkRFUikKIAor I2RlZmluZSBUUkFNUE9MSU5FX1NUQUNLX1NQQUNFICBQQUdFX1NJWkUKKyNkZWZpbmUgVFJBTVBP TElORV9TUEFDRSAgICAgICAgKEtCKDY0KSAtIFRSQU1QT0xJTkVfU1RBQ0tfU1BBQ0UpCisKKyNk ZWZpbmUgTUJJX1NQQUNFX01JTiAgICAgICAgICAgKDIgKiBQQUdFX1NJWkUpCisKIC8qIFByaW1h cnkgc3RhY2sgaXMgcmVzdHJpY3RlZCB0byA4a0IgYnkgZ3VhcmQgcGFnZXMuICovCiAjZGVmaW5l IFBSSU1BUllfU1RBQ0tfU0laRSA4MTkyCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9j b25maWcuaCBiL3hlbi9pbmNsdWRlL3hlbi9jb25maWcuaAppbmRleCA0NzNjNWU4Li4wNGU0ZGE1 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vY29uZmlnLmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL2NvbmZpZy5oCkBAIC03MCw2ICs3MCw3IEBACiAjZGVmaW5lIF9fZm9yY2UKICNkZWZpbmUg X19iaXR3aXNlCiAKKyNkZWZpbmUgS0IoX2tiKSAgICAgKF9BQyhfa2IsIFVMTCkgPDwgMTApCiAj ZGVmaW5lIE1CKF9tYikgICAgIChfQUMoX21iLCBVTEwpIDw8IDIwKQogI2RlZmluZSBHQihfZ2Ip ICAgICAoX0FDKF9nYiwgVUxMKSA8PCAzMCkKIAotLSAKMS43LjEwLjQKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK