From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v16 4/9] x86: add multiboot2 protocol support for EFI platforms Date: Tue, 21 Feb 2017 20:19:53 +0100 Message-ID: <1487704799-21162-5-git-send-email-daniel.kiper@oracle.com> References: <1487704799-21162-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cgFzT-0001pL-OF for xen-devel@lists.xenproject.org; Tue, 21 Feb 2017 19:20:48 +0000 In-Reply-To: <1487704799-21162-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 LQp2MTYgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0gaW1wcm92ZSBjb21tZW50cyBpbiBlcnJv ciBoYW5kbGluZwogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnYxNSAtIHN1Z2dl c3Rpb25zL2ZpeGVzOgogICAgLSByZWFycmFuZ2UgaW5saW5lIGFzc2VtYmx5IGFyZ3VtZW50cyBp bgogICAgICB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYzplZmlfbXVsdGlib290MigpCiAgICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSBpbXByb3ZlIGNvbW1lbnRzIGluIGVycm9y IGhhbmRsaW5nIGluCiAgICAgIGxlZ2FjeSBCSU9TIE11bHRpYm9vdDIgc2Nhbm5pbmcgbG9vcAog ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnYxNCAtIHN1Z2dlc3Rpb25zL2ZpeGVz OgogICAgLSBtYXJrIC5pbml0LmRhdGEgc2VjdGlvbiBhcyB3cml0YWJsZTsgYnkgdGhlIHdheSB3 ZSBtdXN0IGNoYW5nZQogICAgICBzaW1pbGFyIGRlZmluaXRpb24gaW4geGVuL2FyY2gveDg2L2Jv b3QveDg2XzY0LlMgYmVjYXVzZSBvdGhlcndpc2UKICAgICAgY29tcGlsZXIgY29tcGxhaW5zIGFi b3V0IHNlY3Rpb24gdHlwZXMgY29uZmxpY3RzCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxp Y2gpLAogICAgLSB1c2UgJXIxNSBpbnN0ZWFkIG9mICVyMTVkCiAgICAgIChzdWdnZXN0ZWQgYnkg SmFuIEJldWxpY2gpLAogICAgLSByZW1vdmUgcmVkdW5kYW50IGFkZCBmcm9tIFVFRkkgc3RhY2sg YWxpZ25tZW50CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAgLSB1c2UgIm1v diAoJXJzcCksJXJkaSIgaW5zdGVhZCBvZiAicG9wICVyZGkvcHVzaCAlcmRpIgogICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgIC0gcmV0dXJuIHZvaWQgaW5zdGVhZCBvZiBwYWRk cl90IGZyb20gZWZpX211bHRpYm9vdDIoKQogICAgICBhbmQgdGhlbiBzaW1wbGlmeSBhIGJpdCB0 cmFtcG9saW5lIHNldHVwIGFzc2VtYmx5CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAgLSByZW1vdmUgIihYRU4pIiBmcm9tIGVmaV9tdWx0aWJvb3QyKCkgc3R1YiBlcnJvciBt ZXNzYWdlcwogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgIC0gbW92ZSBlcnIg ZnJvbSBpbmxpbmUgYXNzZW1ibHkgT3V0cHV0T3BlcmFuZHMgdG8gSW5wdXRPcGVyYW5kcyBpbgog ICAgICBzdHViLmM6ZWZpX211bHRpYm9vdDIoKTsgdGhpcyB3YXkgd2UgYXZvaWQgZm9sbG93aW5n IGNvbXBpbGUgdGltZSBlcnJvcjoKICAgICAgc3R1Yi5jOiBJbiBmdW5jdGlvbiDigJhlZmlfbXVs dGlib290MuKAmToKICAgICAgc3R1Yi5jOjM2OjU6IGVycm9yOiByZWFkLW9ubHkgdmFyaWFibGUg 4oCYZXJy4oCZIHVzZWQgYXMg4oCYYXNt4oCZIG91dHB1dAogICAgICAgICAgIGFzbSB2b2xhdGls ZSgKICAgICAgICAgICBefn4KICAgICAgaXNzdWUgd2FzIGludHJvZHVjZWQgYnkgY2hhbmdpbmcg ZXJyIHR5cGUgdG8gInN0YXRpYyBjb25zdCBDSEFSMTYgX19pbml0Y29uc3QiOwogICAgICBwb3Rl bnRpYWxseSB3ZSBjYW4gcmV2ZXJ0IHRoaXMgY2hhbmdlIGJ1dCBtb3ZlIHRvIElucHV0T3BlcmFu ZHMgbG9va3MgYmV0dGVyIElNTzsKICAgICAgZXZlbiBpZiB3ZSBhcmUgbm90IGFibGUgdG8gc3Bl Y2lmeSAlcmR4IGluIENsb2JiZXJzOyBzaW1wbHkgd2UgZG8gbm90IGNhcmUKICAgICAgYmVjYXVz ZSBuZXh0IGluc3RydWN0aW9uIGFmdGVyIGNhbGwgaXMgaGx0CiAgICAgIChkaXNjb3ZlcmVkIGJ5 IEtvbnJhZCBSemVzenV0ZWsgV2lsayBhbmQgTWFyY29zIE1hdHN1bmFnYSksCiAgICAtIHRha2Ug aW50byBhY2NvdW50IE1CSV9TUEFDRV9NSU4gaW4gQVNTRVJUKCh0cmFtcG9saW5lX2VuZCAtIHRy YW1wb2xpbmVfc3RhcnQpIDwgLi4uKQogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4K CnYxMyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAgLSBtb3ZlIHZnYV90ZXh0X2J1ZmZlciBhbmQg ZWZpX3BsYXRmb3JtIHRvIC5pbml0LmRhdGEgc2VjdGlvbgogICAgICAoc3VnZ2VzdGVkIGJ5IEph biBCZXVsaWNoKSwKICAgIC0gcmVkdWNlIG51bWJlciBvZiBlcnJvciBicmFuY2hlcyBpbiBFRkkg Y29kZSBpbiB4ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCksCiAgICAtIHJlbmFtZSBydW5fYnMgbGFiZWwgdG8gLkxydW5fYnMKICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgICAtIGFsaWduIHRoZSBzdGFjayBhcyBVRUZJIHNw ZWMgcmVxdWlyZXMKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgICAtIGNoYW5n ZSB0cmFtcG9saW5lIHJlZ2lvbiBtZW1vcnkgbGF5b3V0CiAgICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLAogICAgLSByZXZlcnQgY2hhbmdlcyBpbiBlZmlfYXJjaF9wcmVfZXhpdF9ib290 KCkKICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgICAtIHJlbG9jYXRlX3RyYW1w b2xpbmUoKSBtdXN0IHNldCB0cmFtcG9saW5lX3BoeXMgZm9yIGFsbCBib290bG9hZGVyczsKICAg ICAgb3RoZXJ3aXNlIGZhbGxiYWNrIGFsbG9jYXRvciBpcyBhbHdheXMgdXNlZCBpZiBYZW4gd2Fz IGxvYWRlZCB3aXRoCiAgICAgIE11bHRpYm9vdDIgcHJvdG9jb2wsCiAgICAtIGNoYW5nZSBlcnIg dHlwZSBpbiBlZmlfbXVsdGlib290MigpIHRvICJzdGF0aWMgY29uc3QgQ0hBUjE2IF9faW5pdGNv bnN0IgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgIC0gY2hhbmdlIGFzbSAi ZyIgY29uc3RyYWludCB0byAicm0iIGluIGVmaV9tdWx0aWJvb3QyKCkKICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgICAtIGltcHJvdmUgY29tbWVudHMKICAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCBhbmQgRG91ZyBHb2xkc3RlaW4pLgoKdjEyIC0gc3VnZ2VzdGlvbnMv Zml4ZXM6CiAgICAtIHJlbmFtZSBfX2VmaTY0X3N0YXJ0IHRvIF9fZWZpNjRfbWIyX3N0YXJ0CiAg ICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlciksCiAgICAtIHVzZSBlZmlfYXJjaF9tZW1v cnlfc2V0dXAoKSBtYWNoaW5lcnkgYXMgdHJhbXBvbGluZQogICAgICBldCBjb25zb3J0ZXMgbWFp biBtZW1vcnkgYWxsb2NhdG9yCiAgICAgIChzdWdnZXN0ZWQgYnkgRG91ZyBHb2xkc3RlaW4pLAog ICAgLSBhbGxvY2F0ZSBzcGFjZSBmb3IgbWJpIHN0cnVjdCBpbiBlZmlfYXJjaF9tZW1vcnlfc2V0 dXAoKSB0b287CiAgICAgIHRoaXMgdGhpbmcgd2FzIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4g ZWFybGllciByZWxlYXNlcywKICAgIC0gcmV2ZXJ0IHRyYW1wb2xpbmUgZXQgY29uc29ydGVzIGZh bGxiYWNrIG1lbW9yeSBhbGxvY2F0b3IgY29kZQogICAgICBpbiBlZmlfYXJjaF9wcm9jZXNzX21l bW9yeV9tYXAoKSB0byBjdXJyZW50IHVwc3RyZWFtIHN0YXRlCiAgICAgIChzdWdnZXN0ZWQgYnkg RG91ZyBHb2xkc3RlaW4pLAogICAgLSBmdXJ0aGVyIHNpbXBsaWZ5IGVmaV9hcmNoX3ByZV9leGl0 X2Jvb3QoKSBjb2RlLAogICAgLSBjYWxsIGVmaV9hcmNoX21lbW9yeV9zZXR1cCgpIGZyb20gZWZp X211bHRpYm9vdDIoKQogICAgICAoc3VnZ2VzdGVkIGJ5IERvdWcgR29sZHN0ZWluKSwKICAgIC0g Zml4IGFzZW1ibHkgY2FsbCBhcmd1bWVudCBpbiB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwogICAg ICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLAogICAgLSBhZGQgQVNTRVJUKCkgZm9yIHRy YW1wb2xpbmUgc2l6ZQogICAgICAoc3VnZ2VzdGVkIGJ5IERvdWcgR29sZHN0ZWluKSwKICAgIC0g YWRkIEtCKCkgbWFjcm8KICAgICAgKHN1Z2dlc3RlZCBieSBEb3VnIEdvbGRzdGVpbiksCiAgICAt IGltcHJvdmUgY29tbWVudHMKICAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyIGFuZCBE b3VnIEdvbGRzdGVpbikuCgp2MTAgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgIC0gcmVwbGFjZSBs am1wbCB3aXRoIGxyZXRxCiAgICAgIChzdWdnZXN0ZWQgYnkgQW5kcmV3IENvb3BlciksCiAgICAt IGludHJvZHVjZSBlZmlfcGxhdGZvcm0gdG8gaW5jcmVhc2UgY29kZSByZWFkYWJpbGl0eQogICAg ICAoc3VnZ2VzdGVkIGJ5IEFuZHJldyBDb29wZXIpLgoKdjkgLSBzdWdnZXN0aW9ucy9maXhlczoK ICAgLSB1c2UgLkwgbGFiZWxzIGluc3RlYWQgb2YgbnVtZXJpYyBvbmVzIGluIG11bHRpYm9vdDIg ZGF0YSBzY2FubmluZyBsb29wcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjgg LSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSB1c2UgX19ic3Nfc3RhcnQoJXJpcCkvX19ic3NfZW5k KCVyaXApIGluc3RlYWQgb2YKICAgICBvZiAuc3RhcnRvZi4oLmJzcykoJXJpcCkvJC5zaXplb2Yu KC5ic3MpIGJlY2F1c2UKICAgICBsYXR0ZXIgaXMgbm90IHRlc3RlZCBleHRlbnNpdmVseSBpbiBk aWZmZXJlbnQKICAgICBidWlsdCBlbnZpcm9ubWVudHMgeWV0CiAgICAgKHN1Z2dlc3RlZCBieSBB bmRyZXcgQ29vcGVyKSwKICAgLSBmaXggbXVsdGlib290MiBkYXRhIHNjYW5uaW5nIGxvb3AgaW4g eDg2XzMyIGNvZGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBhZGQgY2hl Y2sgZm9yIGV4dHJhIG1lbSBmb3IgbWJpIGRhdGEgaWYgWGVuIGlzIGxvYWRlZAogICAgIHZpYSBt dWx0aWJvb3QyIHByb3RvY29sIG9uIEVGSSBwbGF0Zm9ybQogICAgIChzdWdnZXN0ZWQgYnkgSmFu IEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBC ZXVsaWNoKS4KCnY3IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gZG8gbm90IGFsbG9jYXRlIHR3 aWNlIG1lbW9yeSBmb3IgdHJhbXBvbGluZSBpZiB3ZSB3ZXJlCiAgICAgbG9hZGVkIHZpYSBtdWx0 aWJvb3QyIHByb3RvY29sIG9uIEVGSSBwbGF0Zm9ybSwKICAgLSB3cmFwIGxvbmcgbGluZQogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY2IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0g aW1wcm92ZSBsYWJlbCBuYW1lcyBpbiBhc3NlbWJseQogICAgIGVycm9yIHByaW50aW5nIGNvZGUK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5vciBjbGVhbnVw cyBhbmQgZml4ZXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY0IC0gc3VnZ2Vz dGlvbnMvZml4ZXM6CiAgIC0gcmVtb3ZlIHJlZHVuZGFudCBCU1MgYWxpZ25tZW50LAogICAtIHVw ZGF0ZSBCU1MgYWxpZ25tZW50IGNoZWNrLAogICAtIHVzZSBfX3NldF9iaXQoKSBpbnN0ZWFkIG9m IHNldF9iaXQoKSBpZiBwb3NzaWJsZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAog ICAtIGNhbGwgZWZpX2FyY2hfY3B1KCkgZnJvbSBlZmlfbXVsdGlib290MigpCiAgICAgZXZlbiBp ZiB0aGUgc2FtZSB3b3JrIGlzIGRvbmUgbGF0ZXIgaW4KICAgICBvdGhlciBwbGFjZSByaWdodCBu b3cKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB4ZW4vYXJjaC94ODYvZWZp L3N0dWIuYzplZmlfbXVsdGlib290MigpCiAgICAgZmFpbCBwcm9wZXJseSBvbiBFRkkgcGxhdGZv cm1zLAogICAtIGRvIG5vdCByZWFkIGRhdGEgYmV5b25kIHRoZSBlbmQgb2YgbXVsdGlib290Mgog ICAgIGluZm9ybWF0aW9uIGluIHhlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwogICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVzZSAzMi1iaXQgcmVnaXN0ZXJzIGluIHg4Nl82NCBj b2RlIGlmIHBvc3NpYmxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gbXVs dGlib290MiBpbmZvcm1hdGlvbiBhZGRyZXNzIGlzIDY0LWJpdAogICAgIGluIHg4Nl82NCBjb2Rl LCBzbywgdHJlYXQgaXQgaXMgYXMgaXMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwK ICAgLSB1c2UgY21vdmNjIGlmIHBvc3NpYmxlLAogICAtIGxlYXZlIG9ubHkgb25lIHNwYWNlIGJl dHdlZW4gcmVwIGFuZCBzdG9zcQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAt IGltcHJvdmUgZXJyb3IgaGFuZGxpbmcsCiAgIC0gaW1wcm92ZSBlYXJseSBlcnJvciBtZXNzYWdl cywKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGVhcmx5IGVy cm9yIG1lc3NhZ2VzIHByaW50aW5nIGNvZGUsCiAgIC0gaW1wcm92ZSBsYWJlbCBuYW1lcwogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVudHMKICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB2YXJpb3VzIG1pbm9yIGNsZWFudXBzLgoK djMgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSB0YWtlIGludG8gYWNjb3VudCBhbGlnbm1lbnQg d2hlbiBza2lwcGluZyBtdWx0aWJvb3QyIGZpeGVkIHBhcnQKICAgICAoc3VnZ2VzdGVkIGJ5IEtv bnJhZCBSemVzenV0ZWsgV2lsayksCiAgIC0gaW1wcm92ZSBzZWdtZW50IHJlZ2lzdGVycyBpbml0 aWFsaXphdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUg Y29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoIGFuZCBLb25yYWQgUnplc3p1 dGVrIFdpbGspLAogICAtIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKS4KCnYyIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gZ2VuZXJhdGUgbXVs dGlib290MiBoZWFkZXIgdXNpbmcgbWFjcm9zCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gc3dpdGNoIENQVSB0byB4ODZfMzIgbW9kZSBiZWZvcmUKICAgICBqdW1waW5nIHRv IDMyLWJpdCBjb2RlCiAgICAgKHN1Z2dlc3RlZCBieSBBbmRyZXcgQ29vcGVyKSwKICAgLSByZWR1 Y2UgY29kZSBjaGFuZ2VzIHRvIGluY3JlYXNlIHBhdGNoIHJlYWRhYmlsaXR5CiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGlnbm9yZSBNVUxUSUJPT1QyX1RBR19UWVBFX0JBU0lD X01FTUlORk8gdGFnIG9uIEVGSSBwbGF0Zm9ybQogICAgIGFuZCBmaW5kIG9uIG15IG93biBtdWx0 aWJvb3QyLm1lbV9sb3dlciB2YWx1ZSwKICAgLSBzdG9wIGV4ZWN1dGlvbiBpZiBFRkkgcGxhdGZv cm0gaXMgZGV0ZWN0ZWQKICAgICBpbiBsZWdhY3kgQklPUyBwYXRoLgotLS0KIHhlbi9hcmNoL3g4 Ni9ib290L2hlYWQuUyAgICAgICAgICB8ICAzMTEgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLQogeGVuL2FyY2gveDg2L2Jvb3QvcmVsb2MuYyAgICAgICAgIHwgICAgMiArLQog eGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oICAgICAgIHwgICA0OSArKysrKy0KIHhlbi9hcmNo L3g4Ni9lZmkvc3R1Yi5jICAgICAgICAgICB8ICAgMzkgKysrKysKIHhlbi9hcmNoL3g4Ni94ODZf NjQvYXNtLW9mZnNldHMuYyB8ICAgIDIgKwogeGVuL2FyY2gveDg2L3hlbi5sZHMuUyAgICAgICAg ICAgIHwgICAgNyArLQogeGVuL2NvbW1vbi9lZmkvYm9vdC5jICAgICAgICAgICAgIHwgICAxMSAr KwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaCAgICAgIHwgICAgNSArCiB4ZW4vaW5jbHVk ZS94ZW4vY29uZmlnLmggICAgICAgICAgfCAgICAxICsKIDkgZmlsZXMgY2hhbmdlZCwgNDA1IGlu c2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9i b290L2hlYWQuUyBiL3hlbi9hcmNoL3g4Ni9ib290L2hlYWQuUwppbmRleCA2YmNkMDVhLi5hMjE3 N2MzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9oZWFkLlMKKysrIGIveGVuL2FyY2gv eDg2L2Jvb3QvaGVhZC5TCkBAIC04OCw2ICs4OCwxMyBAQCBtdWx0aWJvb3QyX2hlYWRlcl9zdGFy dDoKICAgICAgICAgICAgICAgICAgICAwLCAvKiBOdW1iZXIgb2YgdGhlIGxpbmVzIC0gbm8gcHJl ZmVyZW5jZS4gKi8gXAogICAgICAgICAgICAgICAgICAgIDAgIC8qIE51bWJlciBvZiBiaXRzIHBl ciBwaXhlbCAtIG5vIHByZWZlcmVuY2UuICovCiAKKyAgICAgICAgLyogUmVxdWVzdCB0aGF0IEV4 aXRCb290U2VydmljZXMoKSBub3QgYmUgY2FsbGVkLiAqLworICAgICAgICBtYjJodF9pbml0IE1C Ml9IVChFRklfQlMpLCBNQjJfSFQoT1BUSU9OQUwpCisKKyAgICAgICAgLyogRUZJNjQgTXVsdGli b290MiBlbnRyeSBwb2ludC4gKi8KKyAgICAgICAgbWIyaHRfaW5pdCBNQjJfSFQoRU5UUllfQURE UkVTU19FRkk2NCksIE1CMl9IVChPUFRJT05BTCksIFwKKyAgICAgICAgICAgICAgICAgICBzeW1f cGh5cyhfX2VmaTY0X21iMl9zdGFydCkKKwogICAgICAgICAvKiBNdWx0aWJvb3QyIGhlYWRlciBl bmQgdGFnLiAqLwogICAgICAgICBtYjJodF9pbml0IE1CMl9IVChFTkQpLCBNQjJfSFQoUkVRVUlS RUQpCiAuTG11bHRpYm9vdDJfaGVhZGVyX2VuZDoKQEAgLTk5LDIwICsxMDYsNjQgQEAgbXVsdGli b290Ml9oZWFkZXJfc3RhcnQ6CiBnZHRfYm9vdF9kZXNjcjoKICAgICAgICAgLndvcmQgICA2Kjgt MQogICAgICAgICAubG9uZyAgIHN5bV9waHlzKHRyYW1wb2xpbmVfZ2R0KQorICAgICAgICAubG9u ZyAgIDAgLyogTmVlZGVkIGZvciA2NC1iaXQgbGdkdCAqLwogCiAuTGJhZF9jcHVfbXNnOiAuYXNj aXogIkVSUjogTm90IGEgNjQtYml0IENQVSEiCiAuTGJhZF9sZHJfbXNnOiAuYXNjaXogIkVSUjog Tm90IGEgTXVsdGlib290IGJvb3Rsb2FkZXIhIgorLkxiYWRfbGRyX25iczogLmFzY2l6ICJFUlI6 IEJvb3Rsb2FkZXIgc2h1dGRvd24gRUZJIHg2NCBib290IHNlcnZpY2VzISIKKy5MYmFkX2xkcl9u c3Q6IC5hc2NpeiAiRVJSOiBFRkkgU3lzdGVtVGFibGUgaXMgbm90IHByb3ZpZGVkIGJ5IGJvb3Rs b2FkZXIhIgorLkxiYWRfbGRyX25paDogLmFzY2l6ICJFUlI6IEVGSSBJbWFnZUhhbmRsZSBpcyBu b3QgcHJvdmlkZWQgYnkgYm9vdGxvYWRlciEiCisuTGJhZF9lZmlfbXNnOiAuYXNjaXogIkVSUjog RUZJIElBLTMyIHBsYXRmb3JtcyBhcmUgbm90IHN1cHBvcnRlZCEiCisKKyAgICAgICAgLnNlY3Rp b24gLmluaXQuZGF0YSwgImF3IiwgQHByb2diaXRzCisgICAgICAgIC5hbGlnbiA0CisKK3ZnYV90 ZXh0X2J1ZmZlcjoKKyAgICAgICAgLmxvbmcgICAweGI4MDAwCisKK2VmaV9wbGF0Zm9ybToKKyAg ICAgICAgLmJ5dGUgICAwCiAKICAgICAgICAgLnNlY3Rpb24gLmluaXQudGV4dCwgImF4IiwgQHBy b2diaXRzCiAKIGJhZF9jcHU6CiAgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJhZF9jcHVf bXNnKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKLSAgICAgICAgam1wICAgICBwcmludF9lcnIKKyAg ICAgICAgam1wICAgICAuTGdldF92dGIKIG5vdF9tdWx0aWJvb3Q6CiAgICAgICAgIG1vdiAgICAg JChzeW1fcGh5cyguTGJhZF9sZHJfbXNnKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKLXByaW50X2Vy cjoKLSAgICAgICAgbW92ICAgICAkMHhCODAwMCwlZWRpICAjIFZHQSBmcmFtZWJ1ZmZlcgotMTog ICAgICBtb3YgICAgICglZXNpKSwlYmwKKyAgICAgICAgam1wICAgICAuTGdldF92dGIKKy5MbWIy X25vX3N0OgorICAgICAgICAvKgorICAgICAgICAgKiBIZXJlIHdlIGFyZSBvbiBFRkkgcGxhdGZv cm0uIHZnYV90ZXh0X2J1ZmZlciB3YXMgemFwcGVkIGVhcmxpZXIKKyAgICAgICAgICogYmVjYXVz ZSB0aGVyZSBpcyBwcmV0dHkgZ29vZCBjaGFuY2UgdGhhdCBWR0EgaXMgdW5hdmFpbGFibGUuCisg ICAgICAgICAqLworICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfbGRyX25zdCkpLCVl c2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIGptcCAgICAgLkxnZXRfdnRiCisuTG1iMl9ub19p aDoKKyAgICAgICAgLyogRGl0dG8uICovCisgICAgICAgIG1vdiAgICAgJChzeW1fcGh5cyguTGJh ZF9sZHJfbmloKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAgam1wICAgICAuTGdldF92 dGIKKy5MbWIyX25vX2JzOgorICAgICAgICAvKgorICAgICAgICAgKiBEaXR0by4gQWRkaXRpb25h bGx5LCBoZXJlIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgWGVuIHdhcyBzdGFydGVkCisgICAgICAg ICAqIHZpYSBzdGFydCBsYWJlbC4gVGhlbiByZWxpYWJsZSB2Z2FfdGV4dF9idWZmZXIgemFwIGlz IGltcG9zc2libGUKKyAgICAgICAgICogaW4gTXVsdGlib290MiBzY2FubmluZyBsb29wIGFuZCB3 ZSBoYXZlIHRvIHplcm8gJWVkaSBiZWxvdy4KKyAgICAgICAgICovCisgICAgICAgIG1vdiAgICAg JChzeW1fcGh5cyguTGJhZF9sZHJfbmJzKSksJWVzaSAjIEVycm9yIG1lc3NhZ2UKKyAgICAgICAg eG9yICAgICAlZWRpLCVlZGkgICAgICAgICAgICAgICAgICAgICAgICMgTm8gVkdBIHRleHQgYnVm ZmVyCisgICAgICAgIGptcCAgICAgLkxzZW5kX2NocgorLkxtYjJfZWZpX2lhXzMyOgorICAgICAg ICAvKgorICAgICAgICAgKiBIZXJlIHdlIGFyZSBvbiBFRkkgSUEtMzIgcGxhdGZvcm0uIFRoZW4g cmVsaWFibGUgdmdhX3RleHRfYnVmZmVyIHphcCBpcworICAgICAgICAgKiBpbXBvc3NpYmxlIGlu IE11bHRpYm9vdDIgc2Nhbm5pbmcgbG9vcCBhbmQgd2UgaGF2ZSB0byB6ZXJvICVlZGkgYmVsb3cu CisgICAgICAgICAqLworICAgICAgICBtb3YgICAgICQoc3ltX3BoeXMoLkxiYWRfZWZpX21zZykp LCVlc2kgIyBFcnJvciBtZXNzYWdlCisgICAgICAgIHhvciAgICAgJWVkaSwlZWRpICAgICAgICAg ICAgICAgICAgICAgICAjIE5vIFZHQSB0ZXh0IGJ1ZmZlcgorICAgICAgICBqbXAgICAgIC5Mc2Vu ZF9jaHIKKy5MZ2V0X3Z0YjoKKyAgICAgICAgbW92ICAgICBzeW1fcGh5cyh2Z2FfdGV4dF9idWZm ZXIpLCVlZGkKKy5Mc2VuZF9jaHI6CisgICAgICAgIG1vdiAgICAgKCVlc2kpLCVibAogICAgICAg ICB0ZXN0ICAgICVibCwlYmwgICAgICAgICMgVGVybWluYXRlIG9uICdcMCcgc2VudGluZWwKICAg ICAgICAgamUgICAgICAuTGhhbHQKICAgICAgICAgbW92ICAgICAkMHgzZjgrNSwlZHggICAjIFVB UlQgTGluZSBTdGF0dXMgUmVnaXN0ZXIKQEAgLTEyMiwxMyArMTczLDE5MiBAQCBwcmludF9lcnI6 CiAgICAgICAgIG1vdiAgICAgJDB4M2Y4KzAsJWR4ICAgIyBVQVJUIFRyYW5zbWl0IEhvbGRpbmcg UmVnaXN0ZXIKICAgICAgICAgbW92ICAgICAlYmwsJWFsCiAgICAgICAgIG91dCAgICAgJWFsLCVk eCAgICAgICAgIyBTZW5kIGEgY2hhcmFjdGVyIG92ZXIgdGhlIHNlcmlhbCBsaW5lCi0gICAgICAg IG1vdnNiICAgICAgICAgICAgICAgICAgIyBXcml0ZSBhIGNoYXJhY3RlciB0byB0aGUgVkdBIGZy YW1lYnVmZmVyCisgICAgICAgIHRlc3QgICAgJWVkaSwlZWRpICAgICAgIyBJcyB0aGUgVkdBIHRl eHQgYnVmZmVyIGF2YWlsYWJsZT8KKyAgICAgICAganogICAgICAuTHNlbmRfY2hyCisgICAgICAg IG1vdnNiICAgICAgICAgICAgICAgICAgIyBXcml0ZSBhIGNoYXJhY3RlciB0byB0aGUgVkdBIHRl eHQgYnVmZmVyCiAgICAgICAgIG1vdiAgICAgJDcsJWFsCi0gICAgICAgIHN0b3NiICAgICAgICAg ICAgICAgICAgIyBXcml0ZSBhbiBhdHRyaWJ1dGUgdG8gdGhlIFZHQSBmcmFtZWJ1ZmZlcgotICAg ICAgICBqbXAgICAgIDFiCisgICAgICAgIHN0b3NiICAgICAgICAgICAgICAgICAgIyBXcml0ZSBh biBhdHRyaWJ1dGUgdG8gdGhlIFZHQSB0ZXh0IGJ1ZmZlcgorICAgICAgICBqbXAgICAgIC5Mc2Vu ZF9jaHIKIC5MaGFsdDogaGx0CiAgICAgICAgIGptcCAgICAgLkxoYWx0CiAKKyAgICAgICAgLmNv ZGU2NAorCitfX2VmaTY0X21iMl9zdGFydDoKKyAgICAgICAgLyoKKyAgICAgICAgICogTXVsdGli b290MiBzcGVjIHNheXMgdGhhdCBoZXJlIENQVSBpcyBpbiA2NC1iaXQgbW9kZS4gSG93ZXZlciwK KyAgICAgICAgICogdGhlcmUgaXMgYWxzbyBndWFyYW50ZWUgdGhhdCBhbGwgY29kZSBhbmQgZGF0 YSBpcyBhbHdheXMgcHV0CisgICAgICAgICAqIGJ5IHRoZSBib290bG9hZGVyIGJlbG93IDQgR2lC LiBIZW5jZSwgd2UgY2FuIHNhZmVseSB0cnVuY2F0ZQorICAgICAgICAgKiBhZGRyZXNzZXMgdG8g MzItYml0cyBpbiBtb3N0IGNhc2VzIGJlbG93LgorICAgICAgICAgKi8KKworICAgICAgICBjbGQK KworICAgICAgICAvKiBWR0EgaXMgbm90IGF2YWlsYWJsZSBvbiBFRkkgcGxhdGZvcm1zLiAqLwor ICAgICAgICBtb3ZsICAgJDAsdmdhX3RleHRfYnVmZmVyKCVyaXApCisKKyAgICAgICAgLyogQ2hl Y2sgZm9yIE11bHRpYm9vdDIgYm9vdGxvYWRlci4gKi8KKyAgICAgICAgY21wICAgICAkTVVMVElC T09UMl9CT09UTE9BREVSX01BR0lDLCVlYXgKKyAgICAgICAgamUgICAgICAuTGVmaV9tdWx0aWJv b3QyX3Byb3RvCisKKyAgICAgICAgLyogSnVtcCB0byBub3RfbXVsdGlib290IGFmdGVyIHN3aXRj aGluZyBDUFUgdG8geDg2XzMyIG1vZGUuICovCisgICAgICAgIGxlYSAgICAgbm90X211bHRpYm9v dCglcmlwKSwlcjE1CisgICAgICAgIGptcCAgICAgeDg2XzMyX3N3aXRjaAorCisuTGVmaV9tdWx0 aWJvb3QyX3Byb3RvOgorICAgICAgICAvKiBaZXJvIEVGSSBTeXN0ZW1UYWJsZSBhbmQgRUZJIElt YWdlSGFuZGxlIGFkZHJlc3Nlcy4gKi8KKyAgICAgICAgeG9yICAgICAlZXNpLCVlc2kKKyAgICAg ICAgeG9yICAgICAlZWRpLCVlZGkKKworICAgICAgICAvKiBTa2lwIE11bHRpYm9vdDIgaW5mb3Jt YXRpb24gZml4ZWQgcGFydC4gKi8KKyAgICAgICAgbGVhICAgICAoTUIyX2ZpeGVkX3NpemVvZitN VUxUSUJPT1QyX1RBR19BTElHTi0xKSglcmJ4KSwlZWN4CisgICAgICAgIGFuZCAgICAgJH4oTVVM VElCT09UMl9UQUdfQUxJR04tMSksJWVjeAorCisuTGVmaV9tYjJfdHNpemU6CisgICAgICAgIC8q IENoZWNrIE11bHRpYm9vdDIgaW5mb3JtYXRpb24gdG90YWwgc2l6ZS4gKi8KKyAgICAgICAgbW92 ICAgICAlZWN4LCVyOGQKKyAgICAgICAgc3ViICAgICAlZWJ4LCVyOGQKKyAgICAgICAgY21wICAg ICAlcjhkLE1CMl9maXhlZF90b3RhbF9zaXplKCVyYngpCisgICAgICAgIGpiZSAgICAgLkxydW5f YnMKKworICAgICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMgYXZhaWxhYmxlPyAqLworICAg ICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSV9CUyxNQjJfdGFnX3R5cGUoJXJj eCkKKyAgICAgICAgam5lICAgICAuTGVmaV9tYjJfc3QKKworICAgICAgICAvKiBXZSBhcmUgb24g RUZJIHBsYXRmb3JtIGFuZCBFRkkgYm9vdCBzZXJ2aWNlcyBhcmUgYXZhaWxhYmxlLiAqLworICAg ICAgICBpbmNiICAgIGVmaV9wbGF0Zm9ybSglcmlwKQorCisgICAgICAgIC8qCisgICAgICAgICAq IERpc2FibGUgcmVhbCBtb2RlIGFuZCBvdGhlciBsZWdhY3kgc3R1ZmYgd2hpY2ggc2hvdWxkIG5v dAorICAgICAgICAgKiBiZSBydW4gb24gRUZJIHBsYXRmb3Jtcy4KKyAgICAgICAgICovCisgICAg ICAgIGluY2IgICAgc2tpcF9yZWFsbW9kZSglcmlwKQorICAgICAgICBqbXAgICAgIC5MZWZpX21i Ml9uZXh0X3RhZworCisuTGVmaV9tYjJfc3Q6CisgICAgICAgIC8qIEdldCBFRkkgU3lzdGVtVGFi bGUgYWRkcmVzcyBmcm9tIE11bHRpYm9vdDIgaW5mb3JtYXRpb24uICovCisgICAgICAgIGNtcGwg ICAgJE1VTFRJQk9PVDJfVEFHX1RZUEVfRUZJNjQsTUIyX3RhZ190eXBlKCVyY3gpCisgICAgICAg IGNtb3ZlICAgTUIyX2VmaTY0X3N0KCVyY3gpLCVyc2kKKyAgICAgICAgamUgICAgICAuTGVmaV9t YjJfbmV4dF90YWcKKworICAgICAgICAvKiBHZXQgRUZJIEltYWdlSGFuZGxlIGFkZHJlc3MgZnJv bSBNdWx0aWJvb3QyIGluZm9ybWF0aW9uLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1Qy X1RBR19UWVBFX0VGSTY0X0lILE1CMl90YWdfdHlwZSglcmN4KQorICAgICAgICBjbW92ZSAgIE1C Ml9lZmk2NF9paCglcmN4KSwlcmRpCisgICAgICAgIGplICAgICAgLkxlZmlfbWIyX25leHRfdGFn CisKKyAgICAgICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAq LworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUo JXJjeCkKKyAgICAgICAgamUgICAgICAuTHJ1bl9icworCisuTGVmaV9tYjJfbmV4dF90YWc6Cisg ICAgICAgIC8qIEdvIHRvIG5leHQgTXVsdGlib290MiBpbmZvcm1hdGlvbiB0YWcuICovCisgICAg ICAgIGFkZCAgICAgTUIyX3RhZ19zaXplKCVyY3gpLCVlY3gKKyAgICAgICAgYWRkICAgICAkKE1V TFRJQk9PVDJfVEFHX0FMSUdOLTEpLCVlY3gKKyAgICAgICAgYW5kICAgICAkfihNVUxUSUJPT1Qy X1RBR19BTElHTi0xKSwlZWN4CisgICAgICAgIGptcCAgICAgLkxlZmlfbWIyX3RzaXplCisKKy5M cnVuX2JzOgorICAgICAgICAvKiBBcmUgRUZJIGJvb3Qgc2VydmljZXMgYXZhaWxhYmxlPyAqLwor ICAgICAgICBjbXBiICAgICQwLGVmaV9wbGF0Zm9ybSglcmlwKQorCisgICAgICAgIC8qIEp1bXAg dG8gLkxtYjJfbm9fYnMgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIgbW9kZS4gKi8KKyAg ICAgICAgbGVhICAgICAuTG1iMl9ub19icyglcmlwKSwlcjE1CisgICAgICAgIGp6ICAgICAgeDg2 XzMyX3N3aXRjaAorCisgICAgICAgIC8qIElzIEVGSSBTeXN0ZW1UYWJsZSBhZGRyZXNzIHByb3Zp ZGVkIGJ5IGJvb3QgbG9hZGVyPyAqLworICAgICAgICB0ZXN0ICAgICVyc2ksJXJzaQorCisgICAg ICAgIC8qIEp1bXAgdG8gLkxtYjJfbm9fc3QgYWZ0ZXIgc3dpdGNoaW5nIENQVSB0byB4ODZfMzIg bW9kZS4gKi8KKyAgICAgICAgbGVhICAgICAuTG1iMl9ub19zdCglcmlwKSwlcjE1CisgICAgICAg IGp6ICAgICAgeDg2XzMyX3N3aXRjaAorCisgICAgICAgIC8qIElzIEVGSSBJbWFnZUhhbmRsZSBh ZGRyZXNzIHByb3ZpZGVkIGJ5IGJvb3QgbG9hZGVyPyAqLworICAgICAgICB0ZXN0ICAgICVyZGks JXJkaQorCisgICAgICAgIC8qIEp1bXAgdG8gLkxtYjJfbm9faWggYWZ0ZXIgc3dpdGNoaW5nIENQ VSB0byB4ODZfMzIgbW9kZS4gKi8KKyAgICAgICAgbGVhICAgICAuTG1iMl9ub19paCglcmlwKSwl cjE1CisgICAgICAgIGp6ICAgICAgeDg2XzMyX3N3aXRjaAorCisgICAgICAgIC8qCisgICAgICAg ICAqIEFsaWduIHRoZSBzdGFjayBhcyBVRUZJIHNwZWMgcmVxdWlyZXMuIEtlZXAgaXQgYWxpZ25l ZAorICAgICAgICAgKiBiZWZvcmUgZWZpX211bHRpYm9vdDIoKSBjYWxsIGJ5IHB1c2hpbmcvcG9w cGluZyBldmVuCisgICAgICAgICAqIG51bWJlcnMgb2YgaXRlbXMgb24gaXQuCisgICAgICAgICAq LworICAgICAgICBhbmQgICAgICR+MTUsJXJzcAorCisgICAgICAgIC8qIFNhdmUgTXVsdGlib290 MiBtYWdpYyBvbiB0aGUgc3RhY2suICovCisgICAgICAgIHB1c2ggICAgJXJheAorCisgICAgICAg IC8qIFNhdmUgRUZJIEltYWdlSGFuZGxlIG9uIHRoZSBzdGFjay4gKi8KKyAgICAgICAgcHVzaCAg ICAlcmRpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5 IHN1cnByaXNlcyEpLgorICAgICAgICAgKiBJdCBtdXN0IGJlIGRvbmUgZWFybGllciB0aGFuIGlu IEJJT1MgY2FzZQorICAgICAgICAgKiBiZWNhdXNlIGVmaV9tdWx0aWJvb3QyKCkgdG91Y2hlcyBp dC4KKyAgICAgICAgICovCisgICAgICAgIGxlYSAgICAgX19ic3Nfc3RhcnQoJXJpcCksJWVkaQor ICAgICAgICBsZWEgICAgIF9fYnNzX2VuZCglcmlwKSwlZWN4CisgICAgICAgIHN1YiAgICAgJWVk aSwlZWN4CisgICAgICAgIHNociAgICAgJDMsJWVjeAorICAgICAgICB4b3IgICAgICVlYXgsJWVh eAorICAgICAgICByZXAgc3Rvc3EKKworICAgICAgICAvKiBLZWVwIHRoZSBzdGFjayBhbGlnbmVk LiBEbyBub3QgcG9wIGEgc2luZ2xlIGl0ZW0gb2ZmIGl0LiAqLworICAgICAgICBtb3YgICAgICgl cnNwKSwlcmRpCisKKyAgICAgICAgLyoKKyAgICAgICAgICogZWZpX211bHRpYm9vdDIoKSBpcyBj YWxsZWQgYWNjb3JkaW5nIHRvIFN5c3RlbSBWIEFNRDY0IEFCSToKKyAgICAgICAgICogICAtIElO OiAgJXJkaSAtIEVGSSBJbWFnZUhhbmRsZSwgJXJzaSAtIEVGSSBTeXN0ZW1UYWJsZS4KKyAgICAg ICAgICovCisgICAgICAgIGNhbGwgICAgZWZpX211bHRpYm9vdDIKKworICAgICAgICAvKiBKdXN0 IHBvcCBhbiBpdGVtIGZyb20gdGhlIHN0YWNrLiAqLworICAgICAgICBwb3AgICAgICVyYXgKKwor ICAgICAgICAvKiBSZXN0b3JlIE11bHRpYm9vdDIgbWFnaWMuICovCisgICAgICAgIHBvcCAgICAg JXJheAorCisgICAgICAgIC8qIEp1bXAgdG8gdHJhbXBvbGluZV9zZXR1cCBhZnRlciBzd2l0Y2hp bmcgQ1BVIHRvIHg4Nl8zMiBtb2RlLiAqLworICAgICAgICBsZWEgICAgIHRyYW1wb2xpbmVfc2V0 dXAoJXJpcCksJXIxNQorCit4ODZfMzJfc3dpdGNoOgorICAgICAgICBtb3YgICAgICVyMTUsJXJk aQorCisgICAgICAgIGNsaQorCisgICAgICAgIC8qIEluaXRpYWxpemUgR0RUUi4gKi8KKyAgICAg ICAgbGdkdCAgICBnZHRfYm9vdF9kZXNjciglcmlwKQorCisgICAgICAgIC8qIFJlbG9hZCBjb2Rl IHNlbGVjdG9yLiAqLworICAgICAgICBwdXNocSAgICRCT09UX0NTMzIKKyAgICAgICAgbGVhICAg ICBjczMyX3N3aXRjaCglcmlwKSwlZWR4CisgICAgICAgIHB1c2ggICAgJXJkeAorICAgICAgICBs cmV0cQorCisgICAgICAgIC5jb2RlMzIKKworY3MzMl9zd2l0Y2g6CisgICAgICAgIC8qIEluaXRp YWxpemUgYmFzaWMgZGF0YSBzZWdtZW50cy4gKi8KKyAgICAgICAgbW92ICAgICAkQk9PVF9EUywl ZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlZHMKKyAgICAgICAgbW92ICAgICAlZWR4LCVlcwor ICAgICAgICBtb3YgICAgICVlZHgsJXNzCisgICAgICAgIC8qICVlc3AgaXMgaW5pdGlhbGl6ZWQg bGF0ZXIuICovCisKKyAgICAgICAgLyogTG9hZCBudWxsIGRlc2NyaXB0b3IgdG8gdW51c2VkIHNl Z21lbnQgcmVnaXN0ZXJzLiAqLworICAgICAgICB4b3IgICAgICVlZHgsJWVkeAorICAgICAgICBt b3YgICAgICVlZHgsJWZzCisgICAgICAgIG1vdiAgICAgJWVkeCwlZ3MKKworICAgICAgICAvKiBE aXNhYmxlIHBhZ2luZy4gKi8KKyAgICAgICAgbW92ICAgICAlY3IwLCVlZHgKKyAgICAgICAgYW5k ICAgICAkKH5YODZfQ1IwX1BHKSwlZWR4CisgICAgICAgIG1vdiAgICAgJWVkeCwlY3IwCisKKyAg ICAgICAgLyogSnVtcCB0byBlYXJsaWVyIGxvYWRlZCBhZGRyZXNzLiAqLworICAgICAgICBqbXAg ICAgIColZWRpCisKIF9fc3RhcnQ6CiAgICAgICAgIGNsZAogICAgICAgICBjbGkKQEAgLTE1Niw3 ICszODYsNyBAQCBfX3N0YXJ0OgogCiAgICAgICAgIC8qIE5vdCBhdmFpbGFibGU/IEJEQSB2YWx1 ZSB3aWxsIGJlIGZpbmUuICovCiAgICAgICAgIGNtb3ZueiAgTUJfbWVtX2xvd2VyKCVlYngpLCVl ZHgKLSAgICAgICAgam1wICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGptcCAgICAgdHJh bXBvbGluZV9iaW9zX3NldHVwCiAKIC5MbXVsdGlib290Ml9wcm90bzoKICAgICAgICAgLyogU2tp cCBNdWx0aWJvb3QyIGluZm9ybWF0aW9uIGZpeGVkIHBhcnQuICovCkBAIC0xNjgsMjQgKzM5OCwz MyBAQCBfX3N0YXJ0OgogICAgICAgICBtb3YgICAgICVlY3gsJWVkaQogICAgICAgICBzdWIgICAg ICVlYngsJWVkaQogICAgICAgICBjbXAgICAgICVlZGksTUIyX2ZpeGVkX3RvdGFsX3NpemUoJWVi eCkKLSAgICAgICAgamJlICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGpiZSAgICAgdHJh bXBvbGluZV9iaW9zX3NldHVwCiAKICAgICAgICAgLyogR2V0IG1lbV9sb3dlciBmcm9tIE11bHRp Ym9vdDIgaW5mb3JtYXRpb24uICovCiAgICAgICAgIGNtcGwgICAgJE1VTFRJQk9PVDJfVEFHX1RZ UEVfQkFTSUNfTUVNSU5GTyxNQjJfdGFnX3R5cGUoJWVjeCkKICAgICAgICAgY21vdmUgICBNQjJf bWVtX2xvd2VyKCVlY3gpLCVlZHgKLSAgICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisg ICAgICAgIGplICAgICAgLkxtYjJfbmV4dF90YWcKKworICAgICAgICAvKiBFRkkgSUEtMzIgcGxh dGZvcm1zIGFyZSBub3Qgc3VwcG9ydGVkLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1Qy X1RBR19UWVBFX0VGSTMyLE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIy X2VmaV9pYV8zMgorCisgICAgICAgIC8qIEJvb3Rsb2FkZXIgc2h1dGRvd24gRUZJIHg2NCBib290 IHNlcnZpY2VzLiAqLworICAgICAgICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VGSTY0 LE1CMl90YWdfdHlwZSglZWN4KQorICAgICAgICBqZSAgICAgIC5MbWIyX25vX2JzCiAKICAgICAg ICAgLyogSXMgaXQgdGhlIGVuZCBvZiBNdWx0aWJvb3QyIGluZm9ybWF0aW9uPyAqLwogICAgICAg ICBjbXBsICAgICRNVUxUSUJPT1QyX1RBR19UWVBFX0VORCxNQjJfdGFnX3R5cGUoJWVjeCkKLSAg ICAgICAgamUgICAgICB0cmFtcG9saW5lX3NldHVwCisgICAgICAgIGplICAgICAgdHJhbXBvbGlu ZV9iaW9zX3NldHVwCiAKKy5MbWIyX25leHRfdGFnOgogICAgICAgICAvKiBHbyB0byBuZXh0IE11 bHRpYm9vdDIgaW5mb3JtYXRpb24gdGFnLiAqLwogICAgICAgICBhZGQgICAgIE1CMl90YWdfc2l6 ZSglZWN4KSwlZWN4CiAgICAgICAgIGFkZCAgICAgJChNVUxUSUJPT1QyX1RBR19BTElHTi0xKSwl ZWN4CiAgICAgICAgIGFuZCAgICAgJH4oTVVMVElCT09UMl9UQUdfQUxJR04tMSksJWVjeAogICAg ICAgICBqbXAgICAgIC5MbWIyX3RzaXplCiAKLXRyYW1wb2xpbmVfc2V0dXA6Cit0cmFtcG9saW5l X2Jpb3Nfc2V0dXA6CiAgICAgICAgIC8qIFNldCB1cCB0cmFtcG9saW5lIHNlZ21lbnQgNjRrIGJl bG93IEVCREEgKi8KICAgICAgICAgbW92endsICAweDQwZSwlZWN4ICAgICAgICAgIC8qIEVCREEg c2VnbWVudCAqLwogICAgICAgICBjbXAgICAgICQweGEwMDAsJWVjeCAgICAgICAgLyogc2FuaXR5 IGNoZWNrIChoaWdoKSAqLwpAQCAtMjA2LDIzICs0NDUsNTQgQEAgdHJhbXBvbGluZV9zZXR1cDoK ICAgICAgICAgY21wICAgICAlZWN4LCVlZHggICAgICAgICAgIC8qIGNvbXBhcmUgd2l0aCBCREEg dmFsdWUgKi8KICAgICAgICAgY21vdmIgICAlZWR4LCVlY3ggICAgICAgICAgIC8qIGFuZCB1c2Ug dGhlIHNtYWxsZXIgKi8KIAotMjogICAgICAvKiBSZXNlcnZlIDY0a2IgZm9yIHRoZSB0cmFtcG9s aW5lICovCi0gICAgICAgIHN1YiAgICAgJDB4MTAwMCwlZWN4CisyOgorICAgICAgICAvKiBSZXNl cnZlIG1lbW9yeSBmb3IgdGhlIHRyYW1wb2xpbmUgYW5kIHRoZSBsb3ctbWVtb3J5IHN0YWNrLiAq LworICAgICAgICBzdWIgICAgICQoKFRSQU1QT0xJTkVfU1BBQ0UrVFJBTVBPTElORV9TVEFDS19T UEFDRSk+PjQpLCVlY3gKIAogICAgICAgICAvKiBGcm9tIGFyY2gveDg2L3NtcGJvb3QuYzogc3Rh cnRfZWlwIGhhZCBiZXR0ZXIgYmUgcGFnZS1hbGlnbmVkISAqLwogICAgICAgICB4b3IgICAgICVj bCwgJWNsCiAgICAgICAgIHNobCAgICAgJDQsICVlY3gKICAgICAgICAgbW92ICAgICAlZWN4LHN5 bV9waHlzKHRyYW1wb2xpbmVfcGh5cykKIAordHJhbXBvbGluZV9zZXR1cDoKKyAgICAgICAgbW92 ICAgICBzeW1fcGh5cyh0cmFtcG9saW5lX3BoeXMpLCVlY3gKKworICAgICAgICAvKiBHZXQgYm90 dG9tLW1vc3QgbG93LW1lbW9yeSBzdGFjayBhZGRyZXNzLiAqLworICAgICAgICBhZGQgICAgICRU UkFNUE9MSU5FX1NQQUNFLCVlY3gKKwogICAgICAgICAvKiBTYXZlIHRoZSBNdWx0aWJvb3QgaW5m byBzdHJ1Y3QgKGFmdGVyIHJlbG9jYXRpb24pIGZvciBsYXRlciB1c2UuICovCiAgICAgICAgIG1v diAgICAgJHN5bV9waHlzKGNwdTBfc3RhY2spKzEwMjQsJWVzcAotICAgICAgICBwdXNoICAgICVl Y3ggICAgICAgICAgICAgICAgLyogQm9vdCB0cmFtcG9saW5lIGFkZHJlc3MuICovCisgICAgICAg IHB1c2ggICAgJWVjeCAgICAgICAgICAgICAgICAvKiBCb3R0b20tbW9zdCBsb3ctbWVtb3J5IHN0 YWNrIGFkZHJlc3MuICovCiAgICAgICAgIHB1c2ggICAgJWVieCAgICAgICAgICAgICAgICAvKiBN dWx0aWJvb3QgaW5mb3JtYXRpb24gYWRkcmVzcy4gKi8KICAgICAgICAgcHVzaCAgICAlZWF4ICAg ICAgICAgICAgICAgIC8qIE11bHRpYm9vdCBtYWdpYy4gKi8KICAgICAgICAgY2FsbCAgICByZWxv YwogICAgICAgICBtb3YgICAgICVlYXgsc3ltX3BoeXMobXVsdGlib290X3B0cikKIAotICAgICAg ICAvKiBJbml0aWFsaXplIEJTUyAobm8gbmFzdHkgc3VycHJpc2VzISkgKi8KKyAgICAgICAgLyoK KyAgICAgICAgICogTm93IHRyYW1wb2xpbmVfcGh5cyBwb2ludHMgdG8gdGhlIGZvbGxvd2luZyBz dHJ1Y3R1cmUgKGxvd2VzdCBhZGRyZXNzCisgICAgICAgICAqIGlzIGF0IHRoZSBib3R0b20pOgor ICAgICAgICAgKgorICAgICAgICAgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgICAg ICAgKiB8IFRSQU1QT0xJTkVfU1RBQ0tfU1BBQ0UgfAorICAgICAgICAgKiArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKworICAgICAgICAgKiB8ICAgICAgICBtYmkgZGF0YSAgICAgICAgfAorICAg ICAgICAgKiArLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gKworICAgICAgICAgKiB8ICAgIFRSQU1Q T0xJTkVfU1BBQ0UgICAgfAorICAgICAgICAgKiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwor ICAgICAgICAgKgorICAgICAgICAgKiBtYmkgZGF0YSBncm93cyBkb3dud2FyZHMgZnJvbSB0aGUg aGlnaGVzdCBhZGRyZXNzIG9mIFRSQU1QT0xJTkVfU1BBQ0UKKyAgICAgICAgICogcmVnaW9uIHRv IHRoZSBlbmQgb2YgdGhlIHRyYW1wb2xpbmUuIFRoZSByZXN0IG9mIFRSQU1QT0xJTkVfU1BBQ0Ug aXMKKyAgICAgICAgICogcmVzZXJ2ZWQgZm9yIHRyYW1wb2xpbmUgY29kZSBhbmQgZGF0YS4KKyAg ICAgICAgICovCisKKyAgICAgICAgLyoKKyAgICAgICAgICogRG8gbm90IHplcm8gQlNTIG9uIEVG SSBwbGF0Zm9ybSBoZXJlLgorICAgICAgICAgKiBJdCB3YXMgaW5pdGlhbGl6ZWQgZWFybGllci4K KyAgICAgICAgICovCisgICAgICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoZWZpX3BsYXRmb3JtKQor ICAgICAgICBqbnogICAgIDFmCisKKyAgICAgICAgLyogSW5pdGlhbGl6ZSBCU1MgKG5vIG5hc3R5 IHN1cnByaXNlcyEpLiAqLwogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19zdGFydCks JWVkaQogICAgICAgICBtb3YgICAgICRzeW1fcGh5cyhfX2Jzc19lbmQpLCVlY3gKICAgICAgICAg c3ViICAgICAlZWRpLCVlY3gKQEAgLTIzMCw2ICs1MDAsNyBAQCB0cmFtcG9saW5lX3NldHVwOgog ICAgICAgICBzaHIgICAgICQyLCVlY3gKICAgICAgICAgcmVwIHN0b3NsCiAKKzE6CiAgICAgICAg IC8qIEludGVycm9nYXRlIENQVSBleHRlbmRlZCBmZWF0dXJlcyB2aWEgQ1BVSUQuICovCiAgICAg ICAgIG1vdiAgICAgJDB4ODAwMDAwMDAsJWVheAogICAgICAgICBjcHVpZApAQCAtMjgxLDYgKzU1 MiwxMCBAQCB0cmFtcG9saW5lX3NldHVwOgogICAgICAgICBjbXAgICAgICRzeW1fcGh5cyhfX3Ry YW1wb2xpbmVfc2VnX3N0b3ApLCVlZGkKICAgICAgICAgamIgICAgICAxYgogCisgICAgICAgIC8q IERvIG5vdCBwYXJzZSBjb21tYW5kIGxpbmUgb24gRUZJIHBsYXRmb3JtIGhlcmUuICovCisgICAg ICAgIGNtcGIgICAgJDAsc3ltX3BoeXMoZWZpX3BsYXRmb3JtKQorICAgICAgICBqbnogICAgIDFm CisKICAgICAgICAgLyogQmFpbCBpZiB0aGVyZSBpcyBubyBjb21tYW5kIGxpbmUgdG8gcGFyc2Uu ICovCiAgICAgICAgIG1vdiAgICAgc3ltX3BoeXMobXVsdGlib290X3B0ciksJWVieAogICAgICAg ICB0ZXN0bCAgICRNQklfQ01ETElORSxNQl9mbGFncyglZWJ4KQpAQCAtMjkxLDkgKzU2Niw5IEBA IHRyYW1wb2xpbmVfc2V0dXA6CiAgICAgICAgIGNhbGwgICAgY21kbGluZV9wYXJzZV9lYXJseQog CiAxOgotICAgICAgICAvKiBTd2l0Y2ggdG8gbG93LW1lbW9yeSBzdGFjay4gICovCisgICAgICAg IC8qIFN3aXRjaCB0byBsb3ctbWVtb3J5IHN0YWNrIHdoaWNoIGxpdmVzIGF0IHRoZSBlbmQgb2Yg dHJhbXBvbGluZSByZWdpb24uICovCiAgICAgICAgIG1vdiAgICAgc3ltX3BoeXModHJhbXBvbGlu ZV9waHlzKSwlZWRpCi0gICAgICAgIGxlYSAgICAgMHgxMDAwMCglZWRpKSwlZXNwCisgICAgICAg IGxlYSAgICAgVFJBTVBPTElORV9TUEFDRStUUkFNUE9MSU5FX1NUQUNLX1NQQUNFKCVlZGkpLCVl c3AKICAgICAgICAgbGVhICAgICB0cmFtcG9saW5lX2Jvb3RfY3B1X2VudHJ5LXRyYW1wb2xpbmVf c3RhcnQoJWVkaSksJWVheAogICAgICAgICBwdXNobCAgICRCT09UX0NTMzIKICAgICAgICAgcHVz aCAgICAlZWF4CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jIGIveGVuL2Fy Y2gveDg2L2Jvb3QvcmVsb2MuYwppbmRleCA5MWZhYjlkLi5iOTkyNjc4IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvYm9vdC9yZWxvYy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9ib290L3JlbG9jLmMK QEAgLTE2LDcgKzE2LDcgQEAKICAqIFRoaXMgZW50cnkgcG9pbnQgaXMgZW50ZXJlZCBmcm9tIHhl bi9hcmNoL3g4Ni9ib290L2hlYWQuUyB3aXRoOgogICogICAtIDB4NCglZXNwKSA9IE1VTFRJQk9P VF9NQUdJQywKICAqICAgLSAweDgoJWVzcCkgPSBNVUxUSUJPT1RfSU5GT1JNQVRJT05fQUREUkVT UywKLSAqICAgLSAweGMoJWVzcCkgPSBCT09UX1RSQU1QT0xJTkVfQUREUkVTUy4KKyAqICAgLSAw eGMoJWVzcCkgPSBUT1BNT1NUX0xPV19NRU1PUllfU1RBQ0tfQUREUkVTUy4KICAqLwogYXNtICgK ICAgICAiICAgIC50ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5oIGIveGVuL2FyY2gveDg2L2VmaS9lZmktYm9vdC5o CmluZGV4IDYyYzAxMGUuLjk0NDE4YmYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkvZWZp LWJvb3QuaAorKysgYi94ZW4vYXJjaC94ODYvZWZpL2VmaS1ib290LmgKQEAgLTEwMSw2ICsxMDEs MTAgQEAgc3RhdGljIHZvaWQgX19pbml0IHJlbG9jYXRlX3RyYW1wb2xpbmUodW5zaWduZWQgbG9u ZyBwaHlzKQogICAgIGNvbnN0IHMzMiAqdHJhbXBvbGluZV9wdHI7CiAKICAgICB0cmFtcG9saW5l X3BoeXMgPSBwaHlzOworCisgICAgaWYgKCAhZWZpX2VuYWJsZWQoRUZJX0xPQURFUikgKQorICAg ICAgICByZXR1cm47CisKICAgICAvKiBBcHBseSByZWxvY2F0aW9ucyB0byB0cmFtcG9saW5lLiAq LwogICAgIGZvciAoIHRyYW1wb2xpbmVfcHRyID0gX190cmFtcG9saW5lX3JlbF9zdGFydDsKICAg ICAgICAgICB0cmFtcG9saW5lX3B0ciA8IF9fdHJhbXBvbGluZV9yZWxfc3RvcDsKQEAgLTU1MCw3 ICs1NTQsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IGVmaV9hcmNoX21lbW9yeV9zZXR1cCh2b2lk KQogCiAgICAgLyogQWxsb2NhdGUgc3BhY2UgZm9yIHRyYW1wb2xpbmUgKGluIGZpcnN0IE1iKS4g Ki8KICAgICBjZmcuYWRkciA9IDB4MTAwMDAwOwotICAgIGNmZy5zaXplID0gdHJhbXBvbGluZV9l bmQgLSB0cmFtcG9saW5lX3N0YXJ0OworCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfTE9BREVS KSApCisgICAgICAgIGNmZy5zaXplID0gdHJhbXBvbGluZV9lbmQgLSB0cmFtcG9saW5lX3N0YXJ0 OworICAgIGVsc2UKKyAgICAgICAgY2ZnLnNpemUgPSBUUkFNUE9MSU5FX1NQQUNFICsgVFJBTVBP TElORV9TVEFDS19TUEFDRTsKKwogICAgIHN0YXR1cyA9IGVmaV9icy0+QWxsb2NhdGVQYWdlcyhB bGxvY2F0ZU1heEFkZHJlc3MsIEVmaUxvYWRlckRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBGTl9VUChjZmcuc2l6ZSksICZjZmcuYWRkcik7CiAgICAgaWYgKCBzdGF0 dXMgPT0gRUZJX1NVQ0NFU1MgKQpAQCAtNTYxLDYgKzU3MCw5IEBAIHN0YXRpYyB2b2lkIF9faW5p dCBlZmlfYXJjaF9tZW1vcnlfc2V0dXAodm9pZCkKICAgICAgICAgUHJpbnRTdHIoTCJUcmFtcG9s aW5lIHNwYWNlIGNhbm5vdCBiZSBhbGxvY2F0ZWQ7IHdpbGwgdHJ5IGZhbGxiYWNrLlxyXG4iKTsK ICAgICB9CiAKKyAgICBpZiAoICFlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCisgICAgICAgIHJl dHVybjsKKwogICAgIC8qIEluaXRpYWxpc2UgTDIgaWRlbnRpdHktbWFwIGFuZCBib290LW1hcCBw YWdlIHRhYmxlIGVudHJpZXMgKDE2TUIpLiAqLwogICAgIGZvciAoIGkgPSAwOyBpIDwgODsgKytp ICkKICAgICB7CkBAIC02NTMsNiArNjY1LDQxIEBAIHN0YXRpYyBib29sX3QgX19pbml0IGVmaV9h cmNoX3VzZV9jb25maWdfZmlsZShFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKIAogc3Rh dGljIHZvaWQgZWZpX2FyY2hfZmx1c2hfZGNhY2hlX2FyZWEoY29uc3Qgdm9pZCAqdmFkZHIsIFVJ TlROIHNpemUpIHsgfQogCit2b2lkIF9faW5pdCBlZmlfbXVsdGlib290MihFRklfSEFORExFIElt YWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKK3sKKyAgICBFRklfR1JB UEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3A7CisgICAgVUlOVE4gY29scywgZ29wX21vZGUgPSB+ MCwgcm93czsKKworICAgIF9fc2V0X2JpdChFRklfQk9PVCwgJmVmaV9mbGFncyk7CisgICAgX19z ZXRfYml0KEVGSV9SUywgJmVmaV9mbGFncyk7CisKKyAgICBlZmlfaW5pdChJbWFnZUhhbmRsZSwg U3lzdGVtVGFibGUpOworCisgICAgZWZpX2NvbnNvbGVfc2V0X21vZGUoKTsKKworICAgIGlmICgg U3RkT3V0LT5RdWVyeU1vZGUoU3RkT3V0LCBTdGRPdXQtPk1vZGUtPk1vZGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAmY29scywgJnJvd3MpID09IEVGSV9TVUNDRVNTICkKKyAgICAgICAg ZWZpX2FyY2hfY29uc29sZV9pbml0KGNvbHMsIHJvd3MpOworCisgICAgZ29wID0gZWZpX2dldF9n b3AoKTsKKworICAgIGlmICggZ29wICkKKyAgICAgICAgZ29wX21vZGUgPSBlZmlfZmluZF9nb3Bf bW9kZShnb3AsIDAsIDAsIDApOworCisgICAgZWZpX2FyY2hfZWRkKCk7CisgICAgZWZpX2FyY2hf Y3B1KCk7CisKKyAgICBlZmlfdGFibGVzKCk7CisgICAgc2V0dXBfZWZpX3BjaSgpOworICAgIGVm aV92YXJpYWJsZXMoKTsKKyAgICBlZmlfYXJjaF9tZW1vcnlfc2V0dXAoKTsKKworICAgIGlmICgg Z29wICkKKyAgICAgICAgZWZpX3NldF9nb3BfbW9kZShnb3AsIGdvcF9tb2RlKTsKKworICAgIGVm aV9leGl0X2Jvb3QoSW1hZ2VIYW5kbGUsIFN5c3RlbVRhYmxlKTsKK30KKwogLyoKICAqIExvY2Fs IHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1 Yi5jIGIveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKaW5kZXggNDE1ODEyNC4uMTdkYTA1MCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKKysrIGIveGVuL2FyY2gveDg2L2VmaS9z dHViLmMKQEAgLTMsNiArMyw0NSBAQAogI2luY2x1ZGUgPHhlbi9pbml0Lmg+CiAjaW5jbHVkZSA8 eGVuL2xpYi5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL2VmaWJpbmQu aD4KKyNpbmNsdWRlIDxlZmkvZWZpZGVmLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWNhcHN1bGUuaD4K KyNpbmNsdWRlIDxlZmkvZWZpY29uLmg+CisjaW5jbHVkZSA8ZWZpL2VmaWRldnAuaD4KKyNpbmNs dWRlIDxlZmkvZWZpYXBpLmg+CisKKy8qCisgKiBIZXJlIHdlIGFyZSBpbiBFRkkgc3R1Yi4gRUZJ IGNhbGxzIGFyZSBub3Qgc3VwcG9ydGVkIGR1ZSB0byBsYWNrCisgKiBvZiByZWxldmFudCBmdW5j dGlvbmFsaXR5IGluIGNvbXBpbGVyIGFuZC9vciBsaW5rZXIuCisgKgorICogZWZpX211bHRpYm9v dDIoKSBpcyBhbiBleGNlcHRpb24uIFBsZWFzZSBsb29rIGJlbG93IGZvciBtb3JlIGRldGFpbHMu CisgKi8KKwordm9pZCBfX2luaXQgbm9yZXR1cm4gZWZpX211bHRpYm9vdDIoRUZJX0hBTkRMRSBJ bWFnZUhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVGSV9TWVNU RU1fVEFCTEUgKlN5c3RlbVRhYmxlKQoreworICAgIHN0YXRpYyBjb25zdCBDSEFSMTYgX19pbml0 Y29uc3QgZXJyW10gPQorICAgICAgICBMIlhlbiBkb2VzIG5vdCBoYXZlIEVGSSBjb2RlIGJ1aWxk IGluIVxyXG5TeXN0ZW0gaGFsdGVkIVxyXG4iOworICAgIFNJTVBMRV9URVhUX09VVFBVVF9JTlRF UkZBQ0UgKlN0ZEVycjsKKworICAgIFN0ZEVyciA9IFN5c3RlbVRhYmxlLT5TdGRFcnIgPyBTeXN0 ZW1UYWJsZS0+U3RkRXJyIDogU3lzdGVtVGFibGUtPkNvbk91dDsKKworICAgIC8qCisgICAgICog UHJpbnQgZXJyb3IgbWVzc2FnZSBhbmQgaGFsdCB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICog V2UgaGF2ZSB0byBvcGVuIGNvZGUgTVMgeDY0IGNhbGxpbmcgY29udmVudGlvbgorICAgICAqIGlu IGFzc2VtYmx5IGJlY2F1c2UgaGVyZSB0aGlzIGNvbnZlbnRpb24gbWF5CisgICAgICogbm90IGJl IGRpcmVjdGx5IHN1cHBvcnRlZCBieSBDIGNvbXBpbGVyLgorICAgICAqLworICAgIGFzbSB2b2xh dGlsZSgKKyAgICAiICAgIGNhbGwgKiUzICAgICAgICAgICAgICAgICAgICAgXG4iCisgICAgIjA6 ICBobHQgICAgICAgICAgICAgICAgICAgICAgICAgIFxuIgorICAgICIgICAgam1wICAwYiAgICAg ICAgICAgICAgICAgICAgICBcbiIKKyAgICAgICA6ICIrYyIgKFN0ZEVyciksICI9ZCIgKFN0ZEVy cikgOiAiMSIgKGVyciksICJybSIgKFN0ZEVyci0+T3V0cHV0U3RyaW5nKQorICAgICAgIDogInJh eCIsICJyOCIsICJyOSIsICJyMTAiLCAicjExIiwgIm1lbW9yeSIpOworCisgICAgdW5yZWFjaGFi bGUoKTsKK30KIAogYm9vbCBlZmlfZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKIHsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvYXNtLW9mZnNldHMuYyBiL3hlbi9hcmNoL3g4 Ni94ODZfNjQvYXNtLW9mZnNldHMuYwppbmRleCA2YWViNTUwLi5iMmI1OWYxIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYveDg2XzY0L2FzbS1vZmZzZXRzLmMKKysrIGIveGVuL2FyY2gveDg2L3g4 Nl82NC9hc20tb2Zmc2V0cy5jCkBAIC0xNzQsNiArMTc0LDggQEAgdm9pZCBfX2R1bW15X18odm9p ZCkKICAgICBPRkZTRVQoTUIyX3RhZ190eXBlLCBtdWx0aWJvb3QyX3RhZ190LCB0eXBlKTsKICAg ICBPRkZTRVQoTUIyX3RhZ19zaXplLCBtdWx0aWJvb3QyX3RhZ190LCBzaXplKTsKICAgICBPRkZT RVQoTUIyX21lbV9sb3dlciwgbXVsdGlib290Ml90YWdfYmFzaWNfbWVtaW5mb190LCBtZW1fbG93 ZXIpOworICAgIE9GRlNFVChNQjJfZWZpNjRfc3QsIG11bHRpYm9vdDJfdGFnX2VmaTY0X3QsIHBv aW50ZXIpOworICAgIE9GRlNFVChNQjJfZWZpNjRfaWgsIG11bHRpYm9vdDJfdGFnX2VmaTY0X2lo X3QsIHBvaW50ZXIpOwogICAgIEJMQU5LKCk7CiAKICAgICBPRkZTRVQoRE9NQUlOX3ZtX2Fzc2lz dCwgc3RydWN0IGRvbWFpbiwgdm1fYXNzaXN0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94 ZW4ubGRzLlMgYi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCmluZGV4IDRmMDZkYTEuLjA2NmFjYTYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hl bi5sZHMuUwpAQCAtMzMwLDUgKzMzMCw4IEBAIEFTU0VSVChJU19BTElHTkVEKF9faW5pdF9lbmQs ICAgUEFHRV9TSVpFKSwgIl9faW5pdF9lbmQgbWlzYWxpZ25lZCIpCiAKIEFTU0VSVChJU19BTElH TkVEKHRyYW1wb2xpbmVfc3RhcnQsIDQpLCAidHJhbXBvbGluZV9zdGFydCBtaXNhbGlnbmVkIikK IEFTU0VSVChJU19BTElHTkVEKHRyYW1wb2xpbmVfZW5kLCAgIDQpLCAidHJhbXBvbGluZV9lbmQg bWlzYWxpZ25lZCIpCi1BU1NFUlQoSVNfQUxJR05FRChfX2Jzc19zdGFydCwgICAgICA0KSwgIl9f YnNzX3N0YXJ0IG1pc2FsaWduZWQiKQotQVNTRVJUKElTX0FMSUdORUQoX19ic3NfZW5kLCAgICAg ICAgNCksICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCitBU1NFUlQoSVNfQUxJR05FRChfX2Jzc19z dGFydCwgICAgICA4KSwgIl9fYnNzX3N0YXJ0IG1pc2FsaWduZWQiKQorQVNTRVJUKElTX0FMSUdO RUQoX19ic3NfZW5kLCAgICAgICAgOCksICJfX2Jzc19lbmQgbWlzYWxpZ25lZCIpCisKK0FTU0VS VCgodHJhbXBvbGluZV9lbmQgLSB0cmFtcG9saW5lX3N0YXJ0KSA8IFRSQU1QT0xJTkVfU1BBQ0Ug LSBNQklfU1BBQ0VfTUlOLAorICAgICJub3QgZW5vdWdoIHJvb20gZm9yIHRyYW1wb2xpbmUgYW5k IG1iaSBkYXRhIikKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZWZpL2Jvb3QuYyBiL3hlbi9jb21t b24vZWZpL2Jvb3QuYwppbmRleCAzNmRiYjcxLi5iNmNiZGFkIDEwMDY0NAotLS0gYS94ZW4vY29t bW9uL2VmaS9ib290LmMKKysrIGIveGVuL2NvbW1vbi9lZmkvYm9vdC5jCkBAIC03OSw2ICs3OSwx NyBAQCBzdGF0aWMgc2l6ZV90IHdzdHJsZW4oY29uc3QgQ0hBUjE2ICogcyk7CiBzdGF0aWMgaW50 IHNldF9jb2xvcih1MzIgbWFzaywgaW50IGJwcCwgdTggKnBvcywgdTggKnN6KTsKIHN0YXRpYyBi b29sX3QgbWF0Y2hfZ3VpZChjb25zdCBFRklfR1VJRCAqZ3VpZDEsIGNvbnN0IEVGSV9HVUlEICpn dWlkMik7CiAKK3N0YXRpYyB2b2lkIGVmaV9pbml0KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVG SV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKTsKK3N0YXRpYyB2b2lkIGVmaV9jb25zb2xlX3Nl dF9tb2RlKHZvaWQpOworc3RhdGljIEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmVmaV9n ZXRfZ29wKHZvaWQpOworc3RhdGljIFVJTlROIGVmaV9maW5kX2dvcF9tb2RlKEVGSV9HUkFQSElD U19PVVRQVVRfUFJPVE9DT0wgKmdvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBV SU5UTiBjb2xzLCBVSU5UTiByb3dzLCBVSU5UTiBkZXB0aCk7CitzdGF0aWMgdm9pZCBlZmlfdGFi bGVzKHZvaWQpOworc3RhdGljIHZvaWQgc2V0dXBfZWZpX3BjaSh2b2lkKTsKK3N0YXRpYyB2b2lk IGVmaV92YXJpYWJsZXModm9pZCk7CitzdGF0aWMgdm9pZCBlZmlfc2V0X2dvcF9tb2RlKEVGSV9H UkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCwgVUlOVE4gZ29wX21vZGUpOworc3RhdGljIHZv aWQgZWZpX2V4aXRfYm9vdChFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxF ICpTeXN0ZW1UYWJsZSk7CisKIHN0YXRpYyBjb25zdCBFRklfQk9PVF9TRVJWSUNFUyAqX19pbml0 ZGF0YSBlZmlfYnM7CiBzdGF0aWMgVUlOVDMyIF9faW5pdGRhdGEgZWZpX2JzX3JldmlzaW9uOwog c3RhdGljIEVGSV9IQU5ETEUgX19pbml0ZGF0YSBlZmlfaWg7CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L2NvbmZpZy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jb25maWcuaAppbmRl eCA2ZmQ4NGU3Li5iOWE2ZDk0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NvbmZp Zy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY29uZmlnLmgKQEAgLTczLDYgKzczLDExIEBA CiAjZGVmaW5lIFNUQUNLX09SREVSIDMKICNkZWZpbmUgU1RBQ0tfU0laRSAgKFBBR0VfU0laRSA8 PCBTVEFDS19PUkRFUikKIAorI2RlZmluZSBUUkFNUE9MSU5FX1NUQUNLX1NQQUNFICBQQUdFX1NJ WkUKKyNkZWZpbmUgVFJBTVBPTElORV9TUEFDRSAgICAgICAgKEtCKDY0KSAtIFRSQU1QT0xJTkVf U1RBQ0tfU1BBQ0UpCisKKyNkZWZpbmUgTUJJX1NQQUNFX01JTiAgICAgICAgICAgKDIgKiBQQUdF X1NJWkUpCisKIC8qIFByaW1hcnkgc3RhY2sgaXMgcmVzdHJpY3RlZCB0byA4a0IgYnkgZ3VhcmQg cGFnZXMuICovCiAjZGVmaW5lIFBSSU1BUllfU1RBQ0tfU0laRSA4MTkyCiAKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3hlbi9jb25maWcuaCBiL3hlbi9pbmNsdWRlL3hlbi9jb25maWcuaAppbmRl eCA5ZjM5Njg3Li5hMWQwZjk3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vY29uZmlnLmgK KysrIGIveGVuL2luY2x1ZGUveGVuL2NvbmZpZy5oCkBAIC03MCw2ICs3MCw3IEBACiAjZGVmaW5l IF9fZm9yY2UKICNkZWZpbmUgX19iaXR3aXNlCiAKKyNkZWZpbmUgS0IoX2tiKSAgICAgKF9BQyhf a2IsIFVMTCkgPDwgMTApCiAjZGVmaW5lIE1CKF9tYikgICAgIChfQUMoX21iLCBVTEwpIDw8IDIw KQogI2RlZmluZSBHQihfZ2IpICAgICAoX0FDKF9nYiwgVUxMKSA8PCAzMCkKIAotLSAKMS43LjEw LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK