From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v7 21/24] xsplice: Stacking build-id dependency checking. Date: Sun, 10 Apr 2016 17:14:53 -0400 Message-ID: <1460322896-1115-22-git-send-email-konrad.wilk@oracle.com> References: <1460322896-1115-1-git-send-email-konrad.wilk@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 1apMhv-0000Ia-HB for xen-devel@lists.xenproject.org; Sun, 10 Apr 2016 21:15:47 +0000 In-Reply-To: <1460322896-1115-1-git-send-email-konrad.wilk@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, konrad@kernel.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org V2Ugbm93IGV4cGVjdCB0aGF0IHRoZSBFTEYgcGF5bG9hZHMgYmUgYnVpbHQgd2l0aCB0aGUKLS1i dWlsZC1pZC4KCkFsc28gdGhlIC54c3BsaWNlLmRlcHMgc2VjdGlvbiBoYXMgdG8gaGF2ZSB0aGUg Y29udGVudHMKb2YgdGhlIGh5cGVydmlzb3IgKG9yIGEgcHJlY2VkaW5nIHBheWxvYWQpIGJ1aWxk LWlkLgoKV2UgYWxyZWFkeSBoYXZlIHRoZSBjb2RlIHRvIHZlcmlmeSB0aGUgRWxmX05vdGUgYnVp bGQtaWQKc28gZXhwb3J0IHBhcnRzIG9mIGl0LgoKVGhpcyBkZXBlbmRlbmN5IG1lYW5zIHRoZSBo eXBlcnZpc29yIE1VU1QgYmUgY29tcGlsZWQgd2l0aAotLWJ1aWxkLWlkIC0gc28gd2UgZ2F0ZSB0 aGUgYnVpbGQgb2YgeFNwbGljZSBvbiB0aGUgYXZhaWxhYmlsaXR5Cm9mIHNhaWQgZnVuY3Rpb25h bGl0eS4KClRoaXMgZG9lcyBub3QgaW1wYWN0IHRoZSBvcmRlcmluZyBvZiBob3cgdGhlIHBheWxv YWRzIGNhbgpiZSBsb2FkZWQsIGJ1dCBpdCBkb2VzIGVuZm9yY2UgYW4gU1RSSUNUIG9yZGVyaW5n IHdoZW4gdGhlCnBheWxvYWRzIGFyZSBhcHBsaWVkLiBBbHNvIHRoZSBSRVBMQUNFIGlzIHNwZWNp YWwgLSB3ZSBuZWVkCnRvIGNoZWNrIHRoYXQgaXRzIGRlcGVuZGVuY3kgYWdhaW5zdCB0aGUgaHlw ZXJ2aXNvciAtIG5vdAp0aGUgbGFzdCBhcHBsaWVkIHBhdGNoLgoKVG8gbWFrZSB0aGlzIGVhc2ll ciB0byB0ZXN0IHdlIGFsc28gYWRkIGFuIGV4dHJhIHRlc3QtY2FzZQp0byBiZSB1c2VkIC0gd2hp Y2ggY2FuIG9ubHkgYmUgYXBwbGllZCBvbiB0b3Agb2YgdGhlCnhlbl9oZWxsb193b3JsZCBwYXls b2FkLgoKQXMgaW4sIG9uZSBjYW4gYXBwbHkgeGVuX2hlbGxvX3dvcmxkIGFuZCB0aGVuIHhlbl9i eWVfd29ybGQKb24gdG9wIG9mIHRoYXQuIE5vdCB0aGUgb3RoZXIgd2F5LgoKV2UgYWxzbyBwcmlu dCB0aGUgZGVwZW5kZW5jeSBhbmQgcGF5bG9hZHMgYnVpbGRfaW4gdGhlIGtleWhhbmRsZXIuCgpT aWduZWQtb2ZmLWJ5OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5j b20+ClJldmlld2VkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgoKLS0tCkNjOiBLZWlyIEZyYXNlciA8a2VpckB4ZW4ub3JnPgpDYzogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KCnYzOiBGaXJzdCB0aW1lIGluY2x1ZGVkLgp2NDogQW5kcmV3IGZpeCBhZ2FpbnN0IHRo ZSBidWlsZF9pZC5vIG11dGlsYXRpb25zLgogICAgQW5kcmV3IGZpeCB0byBub3QgaW5jbHVkZSBl eHRyYSBzeW1ib2xzIGluIGJpbmFyeS5pZAp2NTogcy9zc2l6ZV90L3Vuc2lnbmVkIGludC8KdjY6 IHMvYW4gTlRfR05VLi4vYSBOVF9HTlUvCiAgIC0gU3F1YXNoICJ4c3BsaWNlOiBQcmludCBkZXBl bmRlbmN5IGFuZCBwYXlsb2FkcyBidWlsZF9pZCBpbiB0aGUga2V5aGFuZGxlciIKICAgICBpbiB0 aGlzIHBhdGNoLgogICAtIEFkZCBpbiB4ZW5fYnVpbGRfaWRfY2hlY2sgc2l6ZSBvZiBzZWN0aW9u IGZvciBiZXR0ZXIgY2hlY2tpbmcuCnY3OiBBZGRlZCBBbmRyZXcncyByZXZpZXdlZC1ieS4KICAg IENoYW5nZSB0aGUgLm5hbWUgaW4gdGVzdC1jYXNlIHRvIGFkaGVyZSB0byBzcGVjLgogICAgRHJv cHBlZCBOVF9HTlVfQlVJTERfSUQgYW5kIG1vdmVkIHRoYXQgdG8gZWFybGllciBwYXRjaAogICAg KGJ1aWxkX2lkOiBQcm92aWRlIGxkLWVtYmVkZGVkIGJ1aWxkLWlkcykKICAgIEFtZW5kZWQgc3Bl YyBhbmQgY29kZSB0byBvbmx5IGhhdmUgb25lIG9mIC54c3BsaWNlLmRlcGVuZHMgYW5kCiAgICAu bm90ZS5nbnUuYnVpbGQtaWQKICAgIEV4cGFuZGVkIGNvbW1lbnQgYWJvdXQgbm90ZS5vIGFuZCB3 aHkgd2UgZG9uJ3QgdXNlIGFyY2gveDg2L25vdGUuby5iaW4KICAgIE1vdmVkIHhlbl9idWlsZF9p ZF9jaGVjayBkZWZpbml0aW9uIHRvIHhzcGxpY2UuaCBmcm9tIHZlcnNpb24uaAogICAgKGFuZCBk cm9wcGluZyB0aGUgI2luY2x1ZGUncyBpbiB2ZXJzaW9uLmgpCiAgICBTb3J0IGhlYWRlciBmaWxl cyBpbiB0ZXN0cy4KLS0tCi0tLQogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDEgKwogQ29uZmlnLm1rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogZG9jcy9taXNjL3hzcGxpY2UubWFya2Rvd24gICAgICAgICAgICAgfCAgOTkgKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUgICAgICAgICAg ICAgfCAgNDUgKysrKysrKysrKystLQogeGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5j ICAgICAgfCAgMzQgKysrKysrKysrKwogeGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZF9m dW5jLmMgfCAgMjQgKysrKysrKwogeGVuL2NvbW1vbi9LY29uZmlnICAgICAgICAgICAgICAgICAg ICAgfCAgIDYgKy0KIHhlbi9jb21tb24vdmVyc2lvbi5jICAgICAgICAgICAgICAgICAgIHwgIDQy ICsrKysrKysrLS0tLQogeGVuL2NvbW1vbi94c3BsaWNlLmMgICAgICAgICAgICAgICAgICAgfCAx MTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vaW5jbHVkZS94ZW4veHNw bGljZS5oICAgICAgICAgICAgICB8ICAgMiArCiAxMCBmaWxlcyBjaGFuZ2VkLCAzMTYgaW5zZXJ0 aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gveDg2 L3Rlc3QveGVuX2J5ZV93b3JsZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gveDg2L3Rl c3QveGVuX2J5ZV93b3JsZF9mdW5jLmMKCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGln bm9yZQppbmRleCA0YTgxZjQzLi44OGNlYzFkIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBi Ly5naXRpZ25vcmUKQEAgLTI0OCw2ICsyNDgsNyBAQCB4ZW4vYXJjaC94ODYvZWZpL2Rpc2FibGVk CiB4ZW4vYXJjaC94ODYvZWZpL21rcmVsb2MKIHhlbi9hcmNoL3g4Ni90ZXN0L2NvbmZpZy5oCiB4 ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGQueHNwbGljZQoreGVuL2FyY2gveDg2L3Rl c3QveGVuX2J5ZV93b3JsZC54c3BsaWNlCiB4ZW4vYXJjaC8qL2VmaS9ib290LmMKIHhlbi9hcmNo LyovZWZpL2NvbXBhdC5jCiB4ZW4vYXJjaC8qL2VmaS9lZmkuaApkaWZmIC0tZ2l0IGEvQ29uZmln Lm1rIGIvQ29uZmlnLm1rCmluZGV4IGRiNzA2MzguLjRiNmYzZjUgMTAwNjQ0Ci0tLSBhL0NvbmZp Zy5taworKysgYi9Db25maWcubWsKQEAgLTEzNCw2ICsxMzQsNyBAQCBpZmVxICgkKGNhbGwgbGQt dmVyLWJ1aWxkLWlkLCQoTEQpKSxuKQogYnVpbGRfaWRfbGlua2VyIDo9CiBlbHNlCiBDRkxBR1Mg Kz0gLURCVUlMRF9JRAorZXhwb3J0IFhFTl9IQVNfQlVJTERfSUQ9eQogYnVpbGRfaWRfbGlua2Vy IDo9IC0tYnVpbGQtaWQ9c2hhMQogZW5kaWYKIApkaWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hzcGxp Y2UubWFya2Rvd24gYi9kb2NzL21pc2MveHNwbGljZS5tYXJrZG93bgppbmRleCBjOWMzMmI3Li4y YWI0Y2EwIDEwMDY0NAotLS0gYS9kb2NzL21pc2MveHNwbGljZS5tYXJrZG93bgorKysgYi9kb2Nz L21pc2MveHNwbGljZS5tYXJrZG93bgpAQCAtMjgzLDggKzI4MywxNyBAQCBUaGUgeFNwbGljZSBj b3JlIGNvZGUgbG9hZHMgdGhlIHBheWxvYWQgYXMgYSBzdGFuZGFyZCBFTEYgYmluYXJ5LCByZWxv Y2F0ZXMgaXQKIGFuZCBoYW5kbGVzIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmYyBzZWN0aW9ucyBh cyBuZWVkZWQuIFRoaXMgcHJvY2VzcyBpcyBtdWNoCiBsaWtlIHdoYXQgdGhlIExpbnV4IGtlcm5l bCBtb2R1bGUgbG9hZGVyIGRvZXMuCiAKLVRoZSBwYXlsb2FkIGNvbnRhaW5zIGEgc2VjdGlvbiAo eHNwbGljZV9wYXRjaF9mdW5jKSB3aXRoIGFuIGFycmF5IG9mIHN0cnVjdHVyZXMKLWRlc2NyaWJp bmcgdGhlIGZ1bmN0aW9ucyB0byBiZSBwYXRjaGVkOgorVGhlIHBheWxvYWQgY29udGFpbnMgYXQg bGVhc3QgdGhyZWUgc2VjdGlvbnM6CisKKyAqIGAueHNwbGljZS5mdW5jc2AgLSB3aGljaCBpcyBh biBhcnJheSBvZiB4c3BsaWNlX3BhdGNoX2Z1bmMgc3RydWN0dXJlcy4KKyAqIGAueHNwbGljZS5k ZXBlbmRzYCAtIHdoaWNoIGlzIGFuIEVMRiBOb3RlIHRoYXQgZGVzY3JpYmVzIHdoYXQgdGhlIHBh eWxvYWQKKyAgICBkZXBlbmRzIG9uLiAqKk1VU1QqKiBoYXZlIG9uZS4KKyAqICBgLm5vdGUuZ251 LmJ1aWxkLWlkYCAtIHRoZSBidWlsZC1pZCBvZiB0aGlzIHBheWxvYWQuICoqTVVTVCoqIGhhdmUg b25lLgorCisjIyMgLnhzcGxpY2UuZnVuY3MKKworVGhlIGAueHNwbGljZS5mdW5jc2AgY29udGFp bnMgYW4gYXJyYXkgb2YgeHNwbGljZV9wYXRjaF9mdW5jIHN0cnVjdHVyZXMKK3doaWNoIGRlc2Ny aWJlIHRoZSBmdW5jdGlvbnMgdG8gYmUgcGF0Y2hlZDoKIAogPHByZT4KIHN0cnVjdCB4c3BsaWNl X3BhdGNoX2Z1bmMgeyAgCkBAIC0zNjcsNiArMzc2LDIzIEBAIHN0cnVjdCB4c3BsaWNlX3BhdGNo X2Z1bmMgeHNwbGljZV9oZWxsb193b3JsZCA9IHsKIAogQ29kZSBtdXN0IGJlIGNvbXBpbGVkIHdp dGggLWZQSUMuCiAKKyMjIyAueHNwbGljZS5kZXBlbmRzIGFuZCAubm90ZS5nbnUuYnVpbGQtaWQK KworVG8gc3VwcG9ydCBkZXBlbmRlbmNpZXMgY2hlY2tpbmcgYW5kIHNhZmUgbG9hZGluZyAodG8g bG9hZCB0aGUKK2FwcHJvcGlhdGUgcGF5bG9hZCBhZ2FpbnN0IHRoZSByaWdodCBoeXBlcnZpc29y KSB0aGVyZSBpcyBhIG5lZWQKK3RvIGVtYmJlZCBhbiBidWlsZC1pZCBkZXBlbmRlbmN5LgorCitU aGlzIGlzIGRvbmUgYnkgdGhlIHBheWxvYWQgY29udGFpbmluZyBhbiBzZWN0aW9uIGAueHNwbGlj ZS5kZXBlbmRzYAord2hpY2ggZm9sbG93cyB0aGUgZm9ybWF0IG9mIGFuIEVMRiBOb3RlLiBUaGUg Y29udGVudHMgb2YgdGhpcworKG5hbWUsIGFuZCBkZXNjcmlwdGlvbikgYXJlIHNwZWNpZmljIHRv IHRoZSBsaW5rZXIgdXRpbGl6ZWQgdG8KK2J1aWxkIHRoZSBoeXBldmlzb3IgYW5kIHBheWxvYWQu CisKK0lmIEdOVSBsaW5rZXIgaXMgdXNlZCB0aGVuIHRoZSBuYW1lIGlzIGBHTlVgIGFuZCB0aGUg ZGVzY3JpcHRpb24KK2lzIGEgTlRfR05VX0JVSUxEX0lEIHR5cGUgSUQuIFRoZSBkZXNjcmlwdGlv biBjYW4gYmUgYW4gU0hBMQorY2hlY2tzdW0sIE1ENSBjaGVja3N1bSBvciBhbnkgdW5pcXVlIHZh bHVlLgorCitUaGUgc2l6ZSBvZiB0aGVzZSBzdHJ1Y3R1cmVzIHZhcmllcyB3aXRoIHRoZSAtLWJ1 aWxkLWlkIGxpbmtlciBvcHRpb24uCisKICMjIEh5cGVyY2FsbHMKIAogV2Ugd2lsbCBlbXBsb3kg dGhlIHN1YiBvcGVyYXRpb25zIG9mIHRoZSBzeXN0ZW0gbWFuYWdlbWVudCBoeXBlcmNhbGwgKHN5 c2N0bCkuCkBAIC04NjIsNiArODg4LDQyIEBAIFRoaXMgaXMgaW1wbGVtZW50ZWQgaW4gdGhlIFhl biBQcm9qZWN0IGh5cGVydmlzb3IuCiAKIE9ubHkgdGhlIHByaXZpbGVnZWQgZG9tYWluIHNob3Vs ZCBiZSBhbGxvd2VkIHRvIGRvIHRoaXMgb3BlcmF0aW9uLgogCisjIyMgeFNwbGljZSBpbnRlcmRl cGVuZGVuY2llcworCit4U3BsaWNlIHBhdGNoZXMgaW50ZXJkZXBlbmRlbmNpZXMgYXJlIHRyaWNr eS4KKworVGhlcmUgYXJlIHRoZSB3YXlzIHRoaXMgY2FuIGJlIGFkZHJlc3NlZDoKKyAqIEEgc2lu Z2xlIGxhcmdlIHBhdGNoIHRoYXQgc3Vic3VtZXMgYW5kIHJlcGxhY2VzIGFsbCBwcmV2aW91cyBv bmVzLgorICAgT3ZlciB0aGUgbGlmZS10aW1lIG9mIHBhdGNoaW5nIHRoZSBoeXBlcnZpc29yIHRo aXMgbGFyZ2UgcGF0Y2gKKyAgIGdyb3dzIHRvIGFjY3VtdWxhdGUgYWxsIHRoZSBjb2RlIGNoYW5n ZXMuCisgKiBIb3RwYXRjaCBzdGFjayAtIHdoZXJlIGFuIG1lY2hhbmlzbSBleGlzdHMgdGhhdCBs b2FkcyB0aGUgaG90cGF0Y2hlcworICAgaW4gdGhlIHNhbWUgb3JkZXIgdGhleSB3ZXJlIGJ1aWx0 IGluLiBXZSB3b3VsZCBuZWVkIGFuIGJ1aWxkLWlkCisgICBvZiB0aGUgaHlwZXZpc29yIHRvIG1h a2Ugc3VyZSB0aGUgaG90LXBhdGNoZXMgYXJlIGJ1aWxkIGFnYWluc3QgdGhlCisgICBjb3JyZWN0 IGJ1aWxkLgorICogUGF5bG9hZCBjb250YWluaW5nIHRoZSBvbGQgY29kZSB0byBjaGVjayBhZ2Fp bnN0IHRoYXQuIFRoYXQgYWxsb3dzCisgICB0aGUgaG90cGF0Y2hlcyB0byBiZSBsb2FkZWQgaW5k ZXBlZGVudGx5IChpZiB0aGV5IGRvbid0IG92ZXJsYXApIC0gb3IKKyAgIGlmIHRoZSBvbGQgY29k ZSBhbHNvIGNvbnRhaW5zdCBwcmV2aW91c2x5IHBhdGNoZWQgY29kZSAtIGV2ZW4gaWYgdGhleQor ICAgb3ZlcmxhcC4KKworVGhlIGRpc2FkdmFudGFnZSBvZiB0aGUgZmlyc3QgbGFyZ2UgcGF0Y2gg aXMgdGhhdCBpdCBjYW4gZ3JvdyBvdmVyCit0aW1lIGFuZCBub3QgcHJvdmlkZSBhbiBiaXNlY3Rp b24gbWVjaGFuaXNtIHRvIGlkZW50aWZ5IGZhdWx0eSBwYXRjaGVzLgorCitUaGUgaG90LXBhdGNo IHN0YWNrIHB1dHMgc3RyaWN0cyByZXF1aXJlbWVudHMgb24gdGhlIG9yZGVyIG9mIHRoZSBwYXRj aGVzCitiZWluZyBsb2FkZWQgYW5kIHJlcXVpcmVzIGFuIGh5cGVydmlzb3IgYnVpbGQtaWQgdG8g bWF0Y2ggYWdhaW5zdC4KKworVGhlIG9sZCBjb2RlIGFsbG93cyBtdWNoIG1vcmUgZmxleGliaWxp dHkgYW5kIGFuIGFkZGl0aW9uYWwgZ3VhcmQsCitidXQgaXMgbW9yZSBjb21wbGV4IHRvIGltcGxl bWVudC4KKworVGhlIHNlY29uZCBvcHRpb24gd2hpY2ggcmVxdWlyZXMgYW4gYnVpbGQtaWQgb2Yg dGhlIGh5cGVydmlzb3IKK2lzIGltcGxlbWVudGVkIGluIHRoZSBYZW4gUHJvamVjdCBoeXBlcnZp c29yLgorCitTcGVjaWZpY2FsbHkgZWFjaCBwYXlsb2FkIGhhcyB0d28gYnVpbGQtaWQgRUxGIG5v dGVzOgorICogVGhlIGJ1aWxkLWlkIG9mIHRoZSBwYXlsb2FkIGl0c2VsZiAoZ2VuZXJhdGVkIHZp YSAtLWJ1aWxkLWlkKS4KKyAqIFRoZSBidWlsZC1pZCBvZiB0aGUgcGF5bG9hZCBpdCBkZXBlbmRz IG9uIChleHRyYWN0ZWQgZnJvbSB0aGUKKyAgIHRoZSBwcmV2aW91cyBwYXlsb2FkIG9yIGh5cGVy dmlzb3IgZHVyaW5nIGJ1aWxkIHRpbWUpLgorCitUaGlzIG1lYW5zIHRoYXQgdGhlIHZlcnkgZmly c3QgcGF5bG9hZCBkZXBlbmRzIG9uIHRoZSBoeXBlcnZpc29yCitidWlsZC1pZC4KIAogIyBOb3Qg WWV0IERvbmUKIApAQCAtODc5LDEzICs5NDEsNiBAQCBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCBh bHNvIGhhdmUgYSBtZWNoYW5pc20gZm9yIChpbiBubyBwYXJ0aWN1bGFyIG9yZGVyKToKICAgIFNw ZWNpZmljYWxseSB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHhTcGxpY2UgY29kZXBhdGhzIGNh bm5vdCBiZSBwYXRjaGVkLgogICogTk9QIG91dCB0aGUgY29kZSBzZXF1ZW5jZSBpZiBgbmV3X3Np emVgIGlzIHplcm8uCiAgKiBEZWFsIHdpdGggb3RoZXIgcmVsb2NhdGlvbiB0eXBlczogIFJfWDg2 XzY0X1s4LDE2LDMyLDMyU10sIFJfWDg2XzY0X1BDWzgsMTYsNjRdIGluIHBheWxvYWQgZmlsZS4K LSAqIEFuIGRlcGVuZGVuY3kgbWVjaGFuaXNtIGZvciB0aGUgcGF5bG9hZHMuIFRvIHVzZSB0aGF0 IGluZm9ybWF0aW9uIHRvIGxvYWQ6Ci0gICAgLSBUaGUgYXBwcm9waWF0ZSBwYXlsb2FkLiBUbyB2 ZXJpZnkgdGhhdCBwYXlsb2FkIGlzIGJ1aWx0IGFnYWluc3QgdGhlCi0gICAgICBoeXBlcnZpc29y LiBUaGlzIGNhbiBiZSBkb25lIHZpYSB0aGUgYGJ1aWxkLWlkYAotICAgICAgb3IgdmlhIHByb3Zp ZGluZyBhbiBjb3B5IG9mIHRoZSBvbGQgY29kZSAtIHNvIHRoYXQgdGhlIGh5cGVydmlzb3IgY2Fu Ci0gICAgICAgdmVyaWZ5IGl0IGFnYWluc3QgdGhlIGNvZGUgaW4gbWVtb3J5LgotICAgIC0gVG8g Y29uc3RydWN0IGFuIGFwcHJvcGlhdGUgb3JkZXIgb2YgcGF5bG9hZHMgdG8gbG9hZCBpbiBjYXNl IHRoZXkKLSAgICAgIGRlcGVuZCBvbiBlYWNoIG90aGVyLgogCiAjIyMgSGFuZGxlIGlubGluZWQg X19MSU5FX18KIApAQCAtOTUwLDMyICsxMDA1LDYgQEAgdGhlIGZ1bmN0aW9uIGl0c2VsZi4KIFNp bWlsYXIgY29uc2lkZXJhdGlvbnMgYXJlIHRydWUgdG8gYSBsZXNzZXIgZXh0ZW50IGZvciBfX0ZJ TEVfXywgYnV0IGl0CiBjb3VsZCBiZSBhcmd1ZWQgdGhhdCBmaWxlIHJlbmFtaW5nIHNob3VsZCBi ZSBkb25lIG91dHNpZGUgb2YgaG90cGF0Y2hlcy4KIAotIyMjIHhTcGxpY2UgaW50ZXJkZXBlbmRl bmNpZXMKLQoteFNwbGljZSBwYXRjaGVzIGludGVyZGVwZW5kZW5jaWVzIGFyZSB0cmlja3kuCi0K LVRoZXJlIGFyZSB0aGUgd2F5cyB0aGlzIGNhbiBiZSBhZGRyZXNzZWQ6Ci0gKiBBIHNpbmdsZSBs YXJnZSBwYXRjaCB0aGF0IHN1YnN1bWVzIGFuZCByZXBsYWNlcyBhbGwgcHJldmlvdXMgb25lcy4K LSAgIE92ZXIgdGhlIGxpZmUtdGltZSBvZiBwYXRjaGluZyB0aGUgaHlwZXJ2aXNvciB0aGlzIGxh cmdlIHBhdGNoCi0gICBncm93cyB0byBhY2N1bXVsYXRlIGFsbCB0aGUgY29kZSBjaGFuZ2VzLgot ICogSG90cGF0Y2ggc3RhY2sgLSB3aGVyZSBhbiBtZWNoYW5pc20gZXhpc3RzIHRoYXQgbG9hZHMg dGhlIGhvdHBhdGNoZXMKLSAgIGluIHRoZSBzYW1lIG9yZGVyIHRoZXkgd2VyZSBidWlsdCBpbi4g V2Ugd291bGQgbmVlZCBhbiBidWlsZC1pZAotICAgb2YgdGhlIGh5cGV2aXNvciB0byBtYWtlIHN1 cmUgdGhlIGhvdC1wYXRjaGVzIGFyZSBidWlsZCBhZ2FpbnN0IHRoZQotICAgY29ycmVjdCBidWls ZC4KLSAqIFBheWxvYWQgY29udGFpbmluZyB0aGUgb2xkIGNvZGUgdG8gY2hlY2sgYWdhaW5zdCB0 aGF0LiBUaGF0IGFsbG93cwotICAgdGhlIGhvdHBhdGNoZXMgdG8gYmUgbG9hZGVkIGluZGVwZWRl bnRseSAoaWYgdGhleSBkb24ndCBvdmVybGFwKSAtIG9yCi0gICBpZiB0aGUgb2xkIGNvZGUgYWxz byBjb250YWluc3QgcHJldmlvdXNseSBwYXRjaGVkIGNvZGUgLSBldmVuIGlmIHRoZXkKLSAgIG92 ZXJsYXAuCi0KLVRoZSBkaXNhZHZhbnRhZ2Ugb2YgdGhlIGZpcnN0IGxhcmdlIHBhdGNoIGlzIHRo YXQgaXQgY2FuIGdyb3cgb3ZlcgotdGltZSBhbmQgbm90IHByb3ZpZGUgYW4gYmlzZWN0aW9uIG1l Y2hhbmlzbSB0byBpZGVudGlmeSBmYXVsdHkgcGF0Y2hlcy4KLQotVGhlIGhvdC1wYXRjaCBzdGFj ayBwdXRzIHN0cmljdHMgcmVxdWlyZW1lbnRzIG9uIHRoZSBvcmRlciBvZiB0aGUgcGF0Y2hlcwot YmVpbmcgbG9hZGVkIGFuZCByZXF1aXJlcyBhbiBoeXBlcnZpc29yIGJ1aWxkLWlkIHRvIG1hdGNo IGFnYWluc3QuCi0KLVRoZSBvbGQgY29kZSBhbGxvd3MgbXVjaCBtb3JlIGZsZXhpYmlsaXR5IGFu ZCBhbiBhZGRpdGlvbmFsIGd1YXJkLAotYnV0IGlzIG1vcmUgY29tcGxleCB0byBpbXBsZW1lbnQu Ci0KICMjIFNpZ25hdHVyZSBjaGVja2luZyByZXF1aXJlbWVudHMuCiAKIFRoZSBzaWduYXR1cmUg Y2hlY2tpbmcgcmVxdWlyZXMgdGhhdCB0aGUgbGF5b3V0IG9mIHRoZSBkYXRhIGluIG1lbW9yeQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvdGVz dC9NYWtlZmlsZQppbmRleCBiYWE0ODIwLi43ZDczMTg0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvdGVzdC9NYWtlZmlsZQorKysgYi94ZW4vYXJjaC94ODYvdGVzdC9NYWtlZmlsZQpAQCAtNiwx NyArNiwyMCBAQCBDT0RFX1NaPSQoc2hlbGwgbm0gLS1kZWZpbmVkIC1TICQoMSkgfCBncmVwICQo MikgfCBhd2sgJ3sgcHJpbnQgIjB4IiQkMn0nKQogLlBIT05ZOiBkZWZhdWx0CiAKIFhTUExJQ0Ug Oj0geGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKK1hTUExJQ0VfQllFIDo9IHhlbl9ieWVfd29ybGQu eHNwbGljZQogCiBkZWZhdWx0OiB4c3BsaWNlCiAKIGluc3RhbGw6IHhzcGxpY2UKIAkkKElOU1RB TExfREFUQSkgJChYU1BMSUNFKSAkKERFU1RESVIpJChERUJVR19ESVIpLyQoWFNQTElDRSkKKwkk KElOU1RBTExfREFUQSkgJChYU1BMSUNFX0JZRSkgJChERVNURElSKSQoREVCVUdfRElSKS8kKFhT UExJQ0VfQllFKQogdW5pbnN0YWxsOgogCXJtIC1mICQoREVTVERJUikkKERFQlVHX0RJUikvJChY U1BMSUNFKQorCXJtIC1mICQoREVTVERJUikkKERFQlVHX0RJUikvJChYU1BMSUNFX0JZRSkKIAog LlBIT05ZOiBjbGVhbgogY2xlYW46OgotCXJtIC1mICoubyAuKi5vLmQgJChYU1BMSUNFKSBjb25m aWcuaAorCXJtIC1mICoubyAuKi5vLmQgJChYU1BMSUNFKSBjb25maWcuaCBub3RlLm8KIAogIwog IyBUbyBjb21wdXRlIHRoZXNlIHZhbHVlcyB3ZSBuZWVkIHRoZSBiaW5hcnkgZmlsZXM6IHhlbi1z eW1zCkBAIC0yOCwxNSArMzEsNDcgQEAgY2xlYW46OgogLlBIT05ZOiBjb25maWcuaAogY29uZmln Lmg6IE9MRF9DT0RFX1NaPSQoY2FsbCBDT0RFX1NaLCQoQkFTRURJUikveGVuLXN5bXMseGVuX2V4 dHJhX3ZlcnNpb24pCiBjb25maWcuaDogTkVXX0NPREVfU1o9JChjYWxsIENPREVfU1osJDwseGVu X2hlbGxvX3dvcmxkKQotY29uZmlnLmg6IHhlbl9oZWxsb193b3JsZF9mdW5jLm8KK2NvbmZpZy5o OiB4ZW5faGVsbG9fd29ybGRfZnVuYy5vIHhlbl9ieWVfd29ybGRfZnVuYy5vCiAJKHNldCAtZTsg XAogCSBlY2hvICIjZGVmaW5lIE5FV19DT0RFX1NaICQoTkVXX0NPREVfU1opIjsgXAogCSBlY2hv ICIjZGVmaW5lIE9MRF9DT0RFX1NaICQoT0xEX0NPREVfU1opIikgPiAkQAogCisjCisjIFRoaXMg dGFyZ2V0IGlzIG9ubHkgYWNjZXNzaWJsZSBpZiBDT05GSUdfWFNQTElDRSBpcyBkZWZpbmVkLCB3 aGljaAorIyBkZXBlbmRzIG9uICQoYnVpbGRfaWRfbGlua2VyKSBiZWluZyBhdmFpbGFibGUuIEhl bmNlIHdlIGRvIG5vdAorIyBuZWVkIGFueSBjaGVja3MuCisjCisjIE4uQi4gVGhlIHJlYXNvbiB3 ZSBkb24ndCB1c2UgYXJjaC94ODYvbm90ZS5vIGlzIHRoYXQgaXQgbWF5CisjIG5vdCBiZSBidWls dCAoaXQgaXMgZm9yIEVGSSBidWlsZHMpLCBhbmQgdGhhdCB3ZSBkbyBub3QgaGF2ZQorIyB0aGUg bm90ZS5vLmJpbiB0byBtdWNrIHdpdGggKGFzIGl0IGdldHMgZGVsZXRlZCkKKyMKKy5QSE9OWTog bm90ZS5vCitub3RlLm86CisJJChPQkpDT1BZKSAtTyBiaW5hcnkgLS1vbmx5LXNlY3Rpb249Lm5v dGUuZ251LmJ1aWxkLWlkICQoQkFTRURJUikveGVuLXN5bXMgJEAuYmluCisJJChPQkpDT1BZKSAt SSBiaW5hcnkgLU8gZWxmNjQteDg2LTY0IC1CIGkzODY6eDg2LTY0IFwKKwkJICAgLS1yZW5hbWUt c2VjdGlvbj0uZGF0YT0ueHNwbGljZS5kZXBlbmRzIC1TICRALmJpbiAkQAorCXJtIC1mICRALmJp bgorCisjCisjIEV4dHJhY3QgdGhlIGJ1aWxkLWlkIG9mIHRoZSB4ZW5faGVsbG9fd29ybGQueHNw bGljZQorIyAod2hpY2ggeGVuX2J5ZV93b3JsZCB3aWxsIGRlcGVuZCBvbikuCisjCisuUEhPTlk6 IGhlbGxvX3dvcmxkX25vdGUubworaGVsbG9fd29ybGRfbm90ZS5vOgorCSQoT0JKQ09QWSkgLU8g YmluYXJ5IC0tb25seS1zZWN0aW9uPS5ub3RlLmdudS5idWlsZC1pZCAkKFhTUExJQ0UpICRALmJp bgorCSQoT0JKQ09QWSkgIC1JIGJpbmFyeSAtTyBlbGY2NC14ODYtNjQgLUIgaTM4Njp4ODYtNjQg XAorCQkgICAtLXJlbmFtZS1zZWN0aW9uPS5kYXRhPS54c3BsaWNlLmRlcGVuZHMgLVMgJEAuYmlu ICRACisJcm0gLWYgJEAuYmluCisKIC5QSE9OWTogeHNwbGljZQoteHNwbGljZTogY29uZmlnLmgK K3hzcGxpY2U6IGNvbmZpZy5oIG5vdGUubwogCSMgTmVlZCB0byBoYXZlIHRoZXNlIGRvbmUgaW4g c2VxdWVudGlhbCBvcmRlcgogCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayB4ZW5faGVs bG9fd29ybGRfZnVuYy5vCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rIHhlbl9oZWxs b193b3JsZC5vCi0JJChMRCkgJChMREZMQUdTKSAtciAtbyAkKFhTUExJQ0UpIHhlbl9oZWxsb193 b3JsZF9mdW5jLm8gXAotCQl4ZW5faGVsbG9fd29ybGQubworCSQoTEQpICQoTERGTEFHUykgJChi dWlsZF9pZF9saW5rZXIpIC1yIC1vICQoWFNQTElDRSkgXAorCQl4ZW5faGVsbG9fd29ybGRfZnVu Yy5vIHhlbl9oZWxsb193b3JsZC5vIG5vdGUubworCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxl cy5tayB4ZW5fYnllX3dvcmxkX2Z1bmMubworCSQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5t ayB4ZW5fYnllX3dvcmxkLm8KKwkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgaGVsbG9f d29ybGRfbm90ZS5vCisJJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtlcikgLXIgLW8g JChYU1BMSUNFX0JZRSkgXAorCQl4ZW5fYnllX3dvcmxkX2Z1bmMubyB4ZW5fYnllX3dvcmxkLm8g aGVsbG9fd29ybGRfbm90ZS5vCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnll X3dvcmxkLmMgYi94ZW4vYXJjaC94ODYvdGVzdC94ZW5fYnllX3dvcmxkLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJmMjViZAotLS0gL2Rldi9udWxsCisrKyBiL3hlbi9h cmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGQuYwpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29w eXJpZ2h0IChjKSAyMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMg cmVzZXJ2ZWQuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDx4ZW4v bGliLmg+CisjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CisjaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4K Kworc3RhdGljIGNoYXIgYnllX3dvcmxkX3BhdGNoX3RoaXNfZm5jW10gPSAieGVuX2V4dHJhX3Zl cnNpb24iOworZXh0ZXJuIGNvbnN0IGNoYXIgKnhlbl9ieWVfd29ybGQodm9pZCk7CisKKy8qIEV4 dGVybmFsIHN5bWJvbC4gKi8KK2V4dGVybiBjb25zdCBjaGFyICp4ZW5fZXh0cmFfdmVyc2lvbih2 b2lkKTsKKworc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyBfX3NlY3Rpb24oIi54c3BsaWNlLmZ1 bmNzIikgeHNwbGljZV94ZW5fYnllX3dvcmxkID0geworICAgIC52ZXJzaW9uID0gWFNQTElDRV9Q QVlMT0FEX1ZFUlNJT04sCisgICAgLm5hbWUgPSBieWVfd29ybGRfcGF0Y2hfdGhpc19mbmMsCisg ICAgLm5ld19hZGRyID0gKHVuc2lnbmVkIGxvbmcpKHhlbl9ieWVfd29ybGQpLAorICAgIC5vbGRf YWRkciA9ICh1bnNpZ25lZCBsb25nKSh4ZW5fZXh0cmFfdmVyc2lvbiksCisgICAgLm5ld19zaXpl ID0gTkVXX0NPREVfU1osCisgICAgLm9sZF9zaXplID0gT0xEX0NPREVfU1osCit9OworCisvKgor ICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0eWxlOiAiQlNEIgor ICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5kZW50LXRhYnMtbW9k ZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9i eWVfd29ybGRfZnVuYy5jIGIveGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZF9mdW5jLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjZjNTgyZgotLS0gL2Rldi9udWxs CisrKyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5jCkBAIC0wLDAgKzEs MjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgT3JhY2xlIGFuZC9vciBpdHMgYWZmaWxp YXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKi8KKworI2luY2x1ZGUgPHhlbi90eXBl cy5oPgorI2luY2x1ZGUgPGFzbS9ub3BzLmg+CisjaW5jbHVkZSA8YXNtL2FsdGVybmF0aXZlLmg+ CisKKy8qIE91ciByZXBsYWNlbWVudCBmdW5jdGlvbiBmb3IgeGVuX2hlbGxvX3dvcmxkLiAqLwor Y29uc3QgY2hhciAqeGVuX2J5ZV93b3JsZCh2b2lkKQoreworICAgIHJldHVybiAiQnllIFdvcmxk ISI7Cit9CisKKy8qCisgKiBMb2NhbCB2YXJpYWJsZXM6CisgKiBtb2RlOiBDCisgKiBjLWZpbGUt c3R5bGU6ICJCU0QiCisgKiBjLWJhc2ljLW9mZnNldDogNAorICogdGFiLXdpZHRoOiA0CisgKiBp bmRlbnQtdGFicy1tb2RlOiBuaWwKKyAqIEVuZDoKKyAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9LY29uZmlnIGIveGVuL2NvbW1vbi9LY29uZmlnCmluZGV4IGZlYTMzZDMuLjE0NDQ0YmMgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vS2NvbmZpZworKysgYi94ZW4vY29tbW9uL0tjb25maWcKQEAg LTYwLDYgKzYwLDEwIEBAIGNvbmZpZyBIQVNfR0RCU1gKIGNvbmZpZyBIQVNfSU9QT1JUUwogCWJv b2wKIAorY29uZmlnIEhBU19CVUlMRF9JRAorCXN0cmluZworCW9wdGlvbiBlbnY9IlhFTl9IQVNf QlVJTERfSUQiCisKICMgRW5hYmxlL0Rpc2FibGUga2V4ZWMgc3VwcG9ydAogY29uZmlnIEtFWEVD CiAJYm9vbCAia2V4ZWMgc3VwcG9ydCIKQEAgLTE5Miw3ICsxOTYsNyBAQCBlbmRtZW51CiBjb25m aWcgWFNQTElDRQogCWJvb2wgInhTcGxpY2UgbGl2ZSBwYXRjaGluZyBzdXBwb3J0IgogCWRlZmF1 bHQgbgotCWRlcGVuZHMgb24gWDg2CisJZGVwZW5kcyBvbiBYODYgJiYgSEFTX0JVSUxEX0lEID0g InkiCiAJLS0taGVscC0tLQogCSAgQWxsb3dzIGEgcnVubmluZyBYZW4gaHlwZXJ2aXNvciB0byBi ZSBkeW5hbWljYWxseSBwYXRjaGVkIHVzaW5nCiAJICBiaW5hcnkgcGF0Y2hlcyB3aXRob3V0IHJl Ym9vdGluZy4gVGhpcyBpcyBwcmltYXJpbHkgdXNlZCB0byBiaW5hcmlseQpkaWZmIC0tZ2l0IGEv eGVuL2NvbW1vbi92ZXJzaW9uLmMgYi94ZW4vY29tbW9uL3ZlcnNpb24uYwppbmRleCAwMWQ5NDA5 Li45YjlhZTQ4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3ZlcnNpb24uYworKysgYi94ZW4vY29t bW9uL3ZlcnNpb24uYwpAQCAtODQsOSArODQsMzggQEAgaW50IHhlbl9idWlsZF9pZChjb25zdCB2 b2lkICoqcCwgdW5zaWduZWQgaW50ICpsZW4pCiAvKiBEZWZpbmVkIGluIGxpbmtlciBzY3JpcHQu ICovCiBleHRlcm4gY29uc3QgRWxmX05vdGUgX19ub3RlX2dudV9idWlsZF9pZF9zdGFydFtdLCBf X25vdGVfZ251X2J1aWxkX2lkX2VuZFtdOwogCitpbnQgeGVuX2J1aWxkX2lkX2NoZWNrKGNvbnN0 IEVsZl9Ob3RlICpuLCB1bnNpZ25lZCBpbnQgbl9zeiwKKyAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgdm9pZCAqKnAsIHVuc2lnbmVkIGludCAqbGVuKQoreworICAgIC8qIENoZWNrIGlmIHdl IHJlYWxseSBoYXZlIGEgYnVpbGQtaWQuICovCisgICAgaWYgKCBOVF9HTlVfQlVJTERfSUQgIT0g bi0+dHlwZSApCisgICAgICAgIHJldHVybiAtRU5PREFUQTsKKworICAgIGlmICggbi0+bmFtZXN6 ID49IG5fc3ogKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggbi0+ZGVzY3N6 ID49IG5fc3ogKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggbi0+bmFtZXN6 ICsgbi0+ZGVzY3N6ID49IG5fc3ogKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIC8q IFNhbml0eSBjaGVjaywgbmFtZSBzaG91bGQgYmUgIkdOVSIgZm9yIGxkLWdlbmVyYXRlZCBidWls ZC1pZC4gKi8KKyAgICBpZiAoIHN0cm5jbXAoRUxGTk9URV9OQU1FKG4pLCAiR05VIiwgbi0+bmFt ZXN6KSAhPSAwICkKKyAgICAgICAgcmV0dXJuIC1FTk9EQVRBOworCisgICAgaWYgKCBsZW4gKQor ICAgICAgICAqbGVuID0gbi0+ZGVzY3N6OworICAgIGlmICggcCApCisgICAgICAgICpwID0gRUxG Tk9URV9ERVNDKG4pOworCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgX19pbml0IHhl bl9idWlsZF9pbml0KHZvaWQpCiB7CiAgICAgY29uc3QgRWxmX05vdGUgKm4gPSBfX25vdGVfZ251 X2J1aWxkX2lkX3N0YXJ0OworICAgIHNpemVfdCBzejsKIAogICAgIC8qIC0tYnVpbGQtaWQgaW52 b2tlZCB3aXRoIHdyb25nIHBhcmFtZXRlcnMuICovCiAgICAgaWYgKCBfX25vdGVfZ251X2J1aWxk X2lkX2VuZCA8PSAmblswXSApCkBAIC05NiwxOCArMTI1LDkgQEAgc3RhdGljIGludCBfX2luaXQg eGVuX2J1aWxkX2luaXQodm9pZCkKICAgICBpZiAoICZuWzFdID4gX19ub3RlX2dudV9idWlsZF9p ZF9lbmQgKQogICAgICAgICByZXR1cm4gLUVOT0RBVEE7OwogCi0gICAgLyogQ2hlY2sgaWYgd2Ug cmVhbGx5IGhhdmUgYSBidWlsZC1pZC4gKi8KLSAgICBpZiAoIE5UX0dOVV9CVUlMRF9JRCAhPSBu LT50eXBlICkKLSAgICAgICAgcmV0dXJuIC1FTk9EQVRBOwotCi0gICAgLyogU2FuaXR5IGNoZWNr LCBuYW1lIHNob3VsZCBiZSAiR05VIiBmb3IgbGQtZ2VuZXJhdGVkIGJ1aWxkLWlkLiAqLwotICAg IGlmICggc3RybmNtcChFTEZOT1RFX05BTUUobiksICJHTlUiLCBuLT5uYW1lc3opICE9IDAgKQot ICAgICAgICByZXR1cm4gLUVOT0RBVEE7Ci0KLSAgICBidWlsZF9pZF9sZW4gPSBuLT5kZXNjc3o7 Ci0gICAgYnVpbGRfaWRfcCA9IEVMRk5PVEVfREVTQyhuKTsKKyAgICBzeiA9IChzaXplX3QpX19u b3RlX2dudV9idWlsZF9pZF9lbmQgLSAoc2l6ZV90KSZuWzBdOwogCi0gICAgcmV0dXJuIDA7Cisg ICAgcmV0dXJuIHhlbl9idWlsZF9pZF9jaGVjayhuLCBzeiwgJmJ1aWxkX2lkX3AsICZidWlsZF9p ZF9sZW4pOwogfQogX19pbml0Y2FsbCh4ZW5fYnVpbGRfaW5pdCk7CiAjZW5kaWYKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24veHNwbGljZS5jIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKaW5kZXggMjFl NTZhNS4uYTBjYzM0NSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNlLmMKKysrIGIveGVu L2NvbW1vbi94c3BsaWNlLmMKQEAgLTQsNiArNCw3IEBACiAgKi8KIAogI2luY2x1ZGUgPHhlbi9j cHUuaD4KKyNpbmNsdWRlIDx4ZW4vZWxmLmg+CiAjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1 ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KICNpbmNsdWRlIDx4ZW4va2V5aGFuZGxlci5oPgpAQCAt NDEsNiArNDIsMTIgQEAgc3RhdGljIExJU1RfSEVBRChhcHBsaWVkX2xpc3QpOwogc3RhdGljIHVu c2lnbmVkIGludCBwYXlsb2FkX2NudDsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGF5bG9hZF92ZXJz aW9uID0gMTsKIAorLyogVG8gY29udGFpbiB0aGUgRUxGIE5vdGUgaGVhZGVyLiAqLworc3RydWN0 IHhzcGxpY2VfYnVpbGRfaWQgeworICAgY29uc3Qgdm9pZCAqcDsKKyAgIHVuc2lnbmVkIGludCBs ZW47Cit9OworCiBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgdWludDMyX3Qgc3RhdGU7ICAgICAgICAg ICAgICAgICAgICAgIC8qIE9uZSBvZiB0aGUgWFNQTElDRV9TVEFURV8qLiAqLwogICAgIGludDMy X3QgcmM7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwIG9yIC1YRU5fRVhYLiAqLwpAQCAt NjAsNiArNjcsOCBAQCBzdHJ1Y3QgcGF5bG9hZCB7CiAgICAgc3RydWN0IHhzcGxpY2Vfc3ltYm9s ICpzeW10YWI7ICAgICAgIC8qIEFsbCBzeW1ib2xzLiAqLwogICAgIGNoYXIgKnN0cnRhYjsgICAg ICAgICAgICAgICAgICAgICAgICAvKiBQb2ludGVyIHRvIC5zdHJ0YWIuICovCiAgICAgdW5zaWdu ZWQgaW50IG5zeW1zOyAgICAgICAgICAgICAgICAgIC8qIE5yIG9mIGVudHJpZXMgaW4gLnN0cnRh YiBhbmQgc3ltYm9scy4gKi8KKyAgICBzdHJ1Y3QgeHNwbGljZV9idWlsZF9pZCBpZDsgICAgICAg ICAgLyogRUxGTk9URV9ERVNDKC5ub3RlLmdudS5idWlsZC1pZCkgb2YgdGhlIHBheWxvYWQuICov CisgICAgc3RydWN0IHhzcGxpY2VfYnVpbGRfaWQgZGVwOyAgICAgICAgIC8qIEVMRk5PVEVfREVT QygueHNwbGljZS5kZXBlbmRzKS4gKi8KICAgICBjaGFyIG5hbWVbWEVOX1hTUExJQ0VfTkFNRV9T SVpFXTsgICAgLyogTmFtZSBvZiBpdC4gKi8KIH07CiAKQEAgLTM5Nyw4ICs0MDYsMTAgQEAgc3Rh dGljIGludCBzZWN1cmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwgc3RydWN0IHhz cGxpY2VfZWxmICplbGYpCiBzdGF0aWMgaW50IGNoZWNrX3NwZWNpYWxfc2VjdGlvbnMoY29uc3Qg c3RydWN0IHhzcGxpY2VfZWxmICplbGYpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7Ci0gICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7ICIueHNwbGljZS5mdW5jcyIgfTsKLSAg ICB1bnNpZ25lZCBpbnQgY291bnRbQVJSQVlfU0laRShuYW1lcyldID0geyAwIH07CisgICAgc3Rh dGljIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWVzW10gPSB7ICIueHNwbGljZS5mdW5jcyIgLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLnhzcGxpY2UuZGVwZW5kcyIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIubm90ZS5nbnUuYnVp bGQtaWQifTsKKyAgICB1bnNpZ25lZCBpbnQgY291bnRbQVJSQVlfU0laRShuYW1lcyldID0geyAw LCAwLCAwIH07CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUobmFtZXMpOyBpKysg KQogICAgIHsKQEAgLTQzOCw2ICs0NDksNyBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChz dHJ1Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICB1bnNpZ25lZCBpbnQgaTsKICAgICBzdHJ1Y3Qg eHNwbGljZV9wYXRjaF9mdW5jX2ludGVybmFsICpmOwogICAgIHN0cnVjdCB2aXJ0dWFsX3JlZ2lv biAqcmVnaW9uOworICAgIEVsZl9Ob3RlICpuOwogCiAgICAgc2VjID0geHNwbGljZV9lbGZfc2Vj X2J5X25hbWUoZWxmLCAiLnhzcGxpY2UuZnVuY3MiKTsKICAgICBBU1NFUlQoc2VjKTsKQEAgLTQ5 OSw2ICs1MTEsMzUgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQg KnBheWxvYWQsCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNf YnlfbmFtZShlbGYsICIubm90ZS5nbnUuYnVpbGQtaWQiKTsKKyAgICBpZiAoIHNlYyApCisgICAg eworICAgICAgICBuID0gc2VjLT5sb2FkX2FkZHI7CisgICAgICAgIGlmICggc2VjLT5zZWMtPnNo X3NpemUgPD0gc2l6ZW9mKCpuKSApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAg ICAgICBpZiAoIHhlbl9idWlsZF9pZF9jaGVjayhuLCBzZWMtPnNlYy0+c2hfc2l6ZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBheWxvYWQtPmlkLnAsICZwYXlsb2FkLT5pZC5s ZW4pICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgICAgIGlmICggIXBheWxv YWQtPmlkLmxlbiB8fCAhcGF5bG9hZC0+aWQucCApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsKKyAgICB9CisKKyAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShlbGYsICIueHNw bGljZS5kZXBlbmRzIik7CisgICAgeworICAgICAgICBuID0gc2VjLT5sb2FkX2FkZHI7CisgICAg ICAgIGlmICggc2VjLT5zZWMtPnNoX3NpemUgPD0gc2l6ZW9mKCpuKSApCisgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKKworICAgICAgICBpZiAoIHhlbl9idWlsZF9pZF9jaGVjayhuLCBzZWMt PnNlYy0+c2hfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBheWxvYWQt PmRlcC5wLCAmcGF5bG9hZC0+ZGVwLmxlbikgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CisKKyAgICAgICAgaWYgKCAhcGF5bG9hZC0+ZGVwLmxlbiB8fCAhcGF5bG9hZC0+ZGVwLnAgKQor ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCiAgICAgLyogU2V0dXAgdGhlIHZp cnR1YWwgcmVnaW9uIHdpdGggcHJvcGVyIGRhdGEuICovCiAgICAgcmVnaW9uID0gJnBheWxvYWQt PnJlZ2lvbjsKIApAQCAtMTIwMiw2ICsxMjQzLDU0IEBAIHZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vf d29yayh2b2lkKQogICAgIH0KIH0KIAorLyoKKyAqIE9ubHkgYWxsb3cgZGVwZW5kZW50IHBheWxv YWQgaXMgYXBwbGllZCBvbiB0b3Agb2YgdGhlIGNvcnJlY3QKKyAqIGJ1aWxkLWlkLgorICoKKyAq IFRoaXMgZW5mb3JjZXMgYW4gc3RhY2tpbmcgb3JkZXIgLSB0aGUgZmlyc3QgcGF5bG9hZCBNVVNU IGJlIGFnYWluc3QgdGhlCisgKiBoeXBlcnZpc29yLiBUaGUgc2Vjb25kIGFnYWluc3QgdGhlIGZp cnN0IHBheWxvYWQsIGFuZCBzbyBvbi4KKyAqCisgKiBVbmxlc3MgdGhlICdpbnRlcm5hbCcgcGFy YW1ldGVyIGlzIHVzZWQgLSBpbiB3aGljaCBjYXNlIHdlIG9ubHkKKyAqIGNoZWNrIGFnYWluc3Qg dGhlIGh5cGVydmlzb3IuCisgKi8KK3N0YXRpYyBpbnQgYnVpbGRfaWRfZGVwKHN0cnVjdCBwYXls b2FkICpwYXlsb2FkLCBib29sX3QgaW50ZXJuYWwpCit7CisgICAgY29uc3Qgdm9pZCAqaWQgPSBO VUxMOworICAgIHVuc2lnbmVkIGludCBsZW4gPSAwOworICAgIGludCByYzsKKyAgICBjb25zdCBj aGFyICpuYW1lID0gImh5cGVydmlzb3IiOworCisgICAgQVNTRVJUKHBheWxvYWQtPmRlcC5sZW4g JiYgcGF5bG9hZC0+ZGVwLnApOworCisgICAgLyogRmlyc3QgdGltZSB1c2VyIGlzIGFnYWluc3Qg aHlwZXJ2aXNvci4gKi8KKyAgICBpZiAoIGludGVybmFsICkKKyAgICB7CisgICAgICAgIHJjID0g eGVuX2J1aWxkX2lkKCZpZCwgJmxlbik7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAg cmV0dXJuIHJjOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKiBXZSBzaG91bGQg YmUgYWdhaW5zdCB0aGUgbGFzdCBhcHBsaWVkIG9uZS4gKi8KKyAgICAgICAgc3RydWN0IHBheWxv YWQgKmRhdGEgPSBsaXN0X2xhc3RfZW50cnkoJmFwcGxpZWRfbGlzdCwgc3RydWN0IHBheWxvYWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpZWRf bGlzdCk7CisKKyAgICAgICAgaWQgPSBkYXRhLT5pZC5wOworICAgICAgICBsZW4gPSBkYXRhLT5p ZC5sZW47CisgICAgICAgIG5hbWUgPSBkYXRhLT5uYW1lOworICAgIH0KKworICAgIGlmICggcGF5 bG9hZC0+ZGVwLmxlbiAhPSBsZW4gfHwKKyAgICAgICAgIG1lbWNtcChpZCwgcGF5bG9hZC0+ZGVw LnAsIGxlbikgKQorICAgIHsKKyAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsICIlcyVzOiBj aGVjayBhZ2FpbnN0ICVzIGJ1aWxkLWlkIGZhaWxlZCFcbiIsCisgICAgICAgICAgICAgICAgWFNQ TElDRSwgcGF5bG9hZC0+bmFtZSwgbmFtZSk7CisgICAgICAgIHJldHVybiAtRUlOVkFMOworICAg IH0KKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50IHhzcGxpY2VfYWN0aW9uKHhlbl9z eXNjdGxfeHNwbGljZV9hY3Rpb25fdCAqYWN0aW9uKQogewogICAgIHN0cnVjdCBwYXlsb2FkICpk YXRhOwpAQCAtMTI0OCw2ICsxMzM3LDE4IEBAIHN0YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24oeGVu X3N5c2N0bF94c3BsaWNlX2FjdGlvbl90ICphY3Rpb24pCiAgICAgY2FzZSBYU1BMSUNFX0FDVElP Tl9SRVZFUlQ6CiAgICAgICAgIGlmICggZGF0YS0+c3RhdGUgPT0gWFNQTElDRV9TVEFURV9BUFBM SUVEICkKICAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHBheWxvYWQgKnAgPSBsaXN0X2xh c3RfZW50cnkoJmFwcGxpZWRfbGlzdCwgc3RydWN0IHBheWxvYWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWVkX2xpc3QpOworCisgICAg ICAgICAgICBBU1NFUlQocCk7CisgICAgICAgICAgICAvKiBXZSBzaG91bGQgYmUgdGhlIGxhc3Qg YXBwbGllZCBvbmUuICovCisgICAgICAgICAgICBpZiAoIHAgIT0gZGF0YSApCisgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsICIlcyVzOiBjYW4ndCB1 bmxvYWQuIFRvcCBpcyAlcyFcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBYU1BMSUNFLCBk YXRhLT5uYW1lLCBwLT5uYW1lKTsKKyAgICAgICAgICAgICAgICByYyA9IC1FQlVTWTsKKyAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRhdGEtPnJjID0g LUVBR0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29yayhkYXRhLCBhY3Rpb24tPmNt ZCwgYWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTI1Niw2ICsxMzU3LDkgQEAgc3Rh dGljIGludCB4c3BsaWNlX2FjdGlvbih4ZW5fc3lzY3RsX3hzcGxpY2VfYWN0aW9uX3QgKmFjdGlv bikKICAgICBjYXNlIFhTUExJQ0VfQUNUSU9OX0FQUExZOgogICAgICAgICBpZiAoIGRhdGEtPnN0 YXRlID09IFhTUExJQ0VfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsKKyAgICAgICAgICAgIHJj ID0gYnVpbGRfaWRfZGVwKGRhdGEsIGxpc3RfZW1wdHkoJmFwcGxpZWRfbGlzdCkpOworICAgICAg ICAgICAgaWYgKCByYyApCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkYXRh LT5yYyA9IC1FQUdBSU47CiAgICAgICAgICAgICByYyA9IHNjaGVkdWxlX3dvcmsoZGF0YSwgYWN0 aW9uLT5jbWQsIGFjdGlvbi0+dGltZW91dCk7CiAgICAgICAgIH0KQEAgLTEyNjQsNiArMTM2OCw5 IEBAIHN0YXRpYyBpbnQgeHNwbGljZV9hY3Rpb24oeGVuX3N5c2N0bF94c3BsaWNlX2FjdGlvbl90 ICphY3Rpb24pCiAgICAgY2FzZSBYU1BMSUNFX0FDVElPTl9SRVBMQUNFOgogICAgICAgICBpZiAo IGRhdGEtPnN0YXRlID09IFhTUExJQ0VfU1RBVEVfQ0hFQ0tFRCApCiAgICAgICAgIHsKKyAgICAg ICAgICAgIHJjID0gYnVpbGRfaWRfZGVwKGRhdGEsIDEgLyogYWdhaW5zdCBoeXBlcnZpc29yLiAq Lyk7CisgICAgICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIGRhdGEtPnJjID0gLUVBR0FJTjsKICAgICAgICAgICAgIHJjID0gc2NoZWR1bGVfd29y ayhkYXRhLCBhY3Rpb24tPmNtZCwgYWN0aW9uLT50aW1lb3V0KTsKICAgICAgICAgfQpAQCAtMTM2 NCw2ICsxNDcxLDExIEBAIHN0YXRpYyB2b2lkIHhzcGxpY2VfcHJpbnRhbGwodW5zaWduZWQgY2hh ciBrZXkpCiAgICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZwYXlsb2FkX2xvY2spOwogICAgICAg ICAgICAgfQogICAgICAgICB9CisgICAgICAgIGlmICggZGF0YS0+aWQubGVuICkKKyAgICAgICAg ICAgIHByaW50aygiYnVpbGQtaWQ9JSpwaE5cbiIsIGRhdGEtPmlkLmxlbiwgZGF0YS0+aWQucCk7 CisKKyAgICAgICAgaWYgKCBkYXRhLT5kZXAubGVuICkKKyAgICAgICAgICAgIHByaW50aygiZGVw ZW5kLW9uPSUqcGhOXG4iLCBkYXRhLT5kZXAubGVuLCBkYXRhLT5kZXAucCk7CiAgICAgfQogCiAg ICAgc3Bpbl91bmxvY2soJnBheWxvYWRfbG9jayk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94 ZW4veHNwbGljZS5oIGIveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaAppbmRleCA5M2IzMzc0Li5k ZTk4ZDU1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oCisrKyBiL3hlbi9p bmNsdWRlL3hlbi94c3BsaWNlLmgKQEAgLTc3LDYgKzc3LDggQEAgaW50IHhzcGxpY2Vfb3Aoc3Ry dWN0IHhlbl9zeXNjdGxfeHNwbGljZV9vcCAqKTsKIHZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vfd29y ayh2b2lkKTsKIGJvb2xfdCBpc19wYXRjaChjb25zdCB2b2lkICphZGRyKTsKIHVuc2lnbmVkIGxv bmcgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpOwor aW50IHhlbl9idWlsZF9pZF9jaGVjayhjb25zdCBFbGZfTm90ZSAqbiwgdW5zaWduZWQgaW50IG5f c3osCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKipwLCB1bnNpZ25lZCBpbnQg Kmxlbik7CiAKIC8qIEFyY2ggaG9va3MuICovCiBpbnQgYXJjaF94c3BsaWNlX3ZlcmlmeV9lbGYo Y29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmICplbGYpOwotLSAKMi41LjAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=