From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.4 required=3.0 tests=DKIM_ADSP_ALL,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08CF4C3A5A4 for ; Tue, 27 Aug 2019 08:47:24 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C66F321872 for ; Tue, 27 Aug 2019 08:47:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amazon.de header.i=@amazon.de header.b="sjkkdXlW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C66F321872 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amazon.de Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i2X8C-0002Rt-9P; Tue, 27 Aug 2019 08:47:12 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i2X8A-0002Q1-7c for xen-devel@lists.xenproject.org; Tue, 27 Aug 2019 08:47:10 +0000 X-Inumbo-ID: 3f2e7b7a-c8a7-11e9-ae2e-12813bfff9fa Received: from smtp-fw-4101.amazon.com (unknown [72.21.198.25]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 3f2e7b7a-c8a7-11e9-ae2e-12813bfff9fa; Tue, 27 Aug 2019 08:47:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.de; i=@amazon.de; q=dns/txt; s=amazon201209; t=1566895625; x=1598431625; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=dW94w0VK+LehD7I95Cwa1JURYeG410XBQRYx+Pn2RiU=; b=sjkkdXlWL++9I2m2FwRflz77Af7XeezLaow0HnST/PpbuqqAo1guqK0T b6D+tng3DkYmxGWDS2uPbkYB97YibNBBGty0I/XR/gxYqVkTgIUMFsgmd S14y3s8kxxb78HPpuTBVqahJ1DHbjxR70yqlEwZscFyA7tXK428H8tEnH E=; X-IronPort-AV: E=Sophos;i="5.64,436,1559520000"; d="scan'208";a="781706789" Received: from iad6-co-svc-p1-lb1-vlan3.amazon.com (HELO email-inbound-relay-1a-715bee71.us-east-1.amazon.com) ([10.124.125.6]) by smtp-border-fw-out-4101.iad4.amazon.com with ESMTP; 27 Aug 2019 08:47:04 +0000 Received: from EX13MTAUEA001.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-1a-715bee71.us-east-1.amazon.com (Postfix) with ESMTPS id 11AE8A2514; Tue, 27 Aug 2019 08:47:04 +0000 (UTC) Received: from EX13D05EUB002.ant.amazon.com (10.43.166.45) by EX13MTAUEA001.ant.amazon.com (10.43.61.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:46:47 +0000 Received: from EX13MTAUEE001.ant.amazon.com (10.43.62.200) by EX13D05EUB002.ant.amazon.com (10.43.166.45) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Tue, 27 Aug 2019 08:46:45 +0000 Received: from dev-dsk-wipawel-1a-0c4e6d58.eu-west-1.amazon.com (10.4.134.33) by mail-relay.amazon.com (10.43.62.226) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Tue, 27 Aug 2019 08:46:43 +0000 From: Pawel Wieczorkiewicz To: , Date: Tue, 27 Aug 2019 08:46:17 +0000 Message-ID: <20190827084624.116917-6-wipawel@amazon.de> X-Mailer: git-send-email 2.16.5 In-Reply-To: <20190827084624.116917-1-wipawel@amazon.de> References: <20190821081931.90887-1-wipawel@amazon.de> <20190827084624.116917-1-wipawel@amazon.de> MIME-Version: 1.0 Precedence: Bulk Subject: [Xen-devel] [PATCH v2 05/12] livepatch: Add support for apply|revert action replacement hooks X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: wipawel@amazon.com, Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ross Lagerwall , Ian Jackson , mpohlack@amazon.com, Tim Deegan , Pawel Wieczorkiewicz , Julien Grall , Jan Beulich Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" QnkgZGVmYXVsdCwgaW4gdGhlIHF1aWVzY2luZyB6b25lLCBhIGhvdHBhdGNoIHBheWxvYWQgaXMg YXBwbGllZCB3aXRoCmFwcGx5X3BheWxvYWQoKSBhbmQgcmV2ZXJ0ZWQgd2l0aCByZXZlcnRfcGF5 bG9hZCgpIGZ1bmN0aW9ucy4gQm90aCBvZgp0aGUgZnVuY3Rpb25zIHJlY2VpdmUgdGhlIHBheWxv YWQgc3RydWN0IHBvaW50ZXIgYXMgYSBwYXJhbWV0ZXIuIFRoZQpmdW5jdGlvbnMgYXJlIGFsc28g YSBwbGFjZSB3aGVyZSBzdGFuZGFyZCAnbG9hZCcgYW5kICd1bmxvYWQnIG1vZHVsZQpob29rcyBh cmUgZXhlY3V0ZWQuCgpUbyBpbmNyZWFzZSBob3RwYXRjaGluZyBzeXN0ZW0ncyBhZ2lsaXR5IGFu ZCBwcm92aWRlIG1vcmUgZmxleGlhYmxlCmxvbmctdGVybSBob3RwYXRjaCBzb2x1dGlvbiwgYWxs b3cgdG8gb3ZlcndyaXRlIHRoZSBkZWZhdWx0IGFwcGx5CmFuZCByZXZlcnQgYWN0aW9uIGZ1bmN0 aW9ucyB3aXRoIGhvb2stbGlrZSBzdXBwbGllZCBhbHRlcm5hdGl2ZXMuClRoZSBhbHRlcm5hdGl2 ZSBmdW5jdGlvbnMgYXJlIG9wdGlvbmFsIGFuZCB0aGUgZGVmYXVsdCBmdW5jdGlvbnMgYXJlCnVz ZWQgYnkgZGVmYXVsdC4KClNpbmNlIHRoZSBhbHRlcm5hdGl2ZSBmdW5jdGlvbnMgaGF2ZSBkaXJl Y3QgYWNjZXNzIHRvIHRoZSBob3RwYXRjaApwYXlsb2FkIHN0cnVjdHVyZSwgdGhleSBjYW4gYmV0 dGVyIGNvbnRyb2wgY29udGV4dCBvZiB0aGUgJ2xvYWQnIGFuZAondW5sb2FkJyBob29rcyBleGVj dXRpb24gYXMgd2VsbCBhcyBleGFjdCBpbnN0cnVjdGlvbnMgcmVwbGFjZW1lbnQKd29ya2Zsb3dz LiBUaGV5IGNhbiBiZSBhbHNvIGVhc2lseSBleHRlbmRlZCB0byBzdXBwb3J0IGV4dHJhIGZlYXR1 cmVzCmluIHRoZSBmdXR1cmUuCgpUbyBzaW1wbGlmeSB0aGUgYWx0ZXJuYXRpdmUgZnVuY3Rpb24g Z2VuZXJhdGlvbiBtb3ZlIGNvZGUgcmVzcG9uc2libGUKZm9yIHBheWxvYWQgYW5kIGhvdHBhdGNo IHJlZ2lvbiByZWdpc3RyYXRpb24gb3V0c2lkZSBvZiB0aGUgZnVuY3Rpb24uClRoYXQgd2F5IGl0 IGlzIGd1YXJhbnRlZWQgdGhhdCB0aGUgcmVnaXN0cmF0aW9uIHN0ZXAgb2NjdXJzIGV2ZW4gZm9y Cm5ld2x5IHN1cHBsaWVkIGZ1bmN0aW9ucy4KClNpZ25lZC1vZmYtYnk6IFBhd2VsIFdpZWN6b3Jr aWV3aWN6IDx3aXBhd2VsQGFtYXpvbi5kZT4KUmV2aWV3ZWQtYnk6IFBldHJlIEVmdGltZSA8ZXBl dHJlQGFtYXpvbi5jb20+ClJldmlld2VkLWJ5OiBNYXJ0aW4gUG9obGFjayA8bXBvaGxhY2tAYW1h em9uLmNvbT4KUmV2aWV3ZWQtYnk6IE5vcmJlcnQgTWFudGhleSA8bm1hbnRoZXlAYW1hem9uLmNv bT4KUmV2aWV3ZWQtYnk6IEFuZHJhLUlyaW5hIFBhcmFzY2hpdiA8YW5kcmFwcnNAYW1hem9uLmNv bT4KUmV2aWV3ZWQtYnk6IEJqb2VybiBEb2ViZWwgPGRvZWJlbEBhbWF6b24uY29tPgotLS0KQ2hh bmdlZCBzaW5jZSB2MToKICAqIGFkZGVkIGNvcnJlc3BvbmRpbmcgZG9jdW1lbnRhdGlvbgogICog YWRkZWQgdGVzdHMKCiBkb2NzL21pc2MvbGl2ZXBhdGNoLnBhbmRvYyAgICAgICAgICAgIHwgIDIz ICsrKysrKysrCiB4ZW4vY29tbW9uL2xpdmVwYXRjaC5jICAgICAgICAgICAgICAgIHwgIDY2ICsr KysrKysrKysrKysrKysrKy0tLS0KIHhlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2hfcGF5bG9hZC5o ICAgfCAgMTAgKysrKwogeGVuL3Rlc3QvbGl2ZXBhdGNoL01ha2VmaWxlICAgICAgICAgICB8ICAx MCArKystCiB4ZW4vdGVzdC9saXZlcGF0Y2gveGVuX2FjdGlvbl9ob29rcy5jIHwgMTAwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgMTk4IGluc2Vy dGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi90ZXN0L2xp dmVwYXRjaC94ZW5fYWN0aW9uX2hvb2tzLmMKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MvbGl2ZXBh dGNoLnBhbmRvYyBiL2RvY3MvbWlzYy9saXZlcGF0Y2gucGFuZG9jCmluZGV4IGFlODU2NmViMzAu LjZmYWZiOWU0YjEgMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy9saXZlcGF0Y2gucGFuZG9jCisrKyBi L2RvY3MvbWlzYy9saXZlcGF0Y2gucGFuZG9jCkBAIC0yNzUsNiArMjc1LDcgQEAgVGhlIHBheWxv YWQgY29udGFpbnMgYXQgbGVhc3QgdGhyZWUgc2VjdGlvbnM6CiAgKiBgLmxpdmVwYXRjaC5mdW5j c2AgLSB3aGljaCBpcyBhbiBhcnJheSBvZiBsaXZlcGF0Y2hfZnVuYyBzdHJ1Y3R1cmVzLgogICAg YW5kL29yIGFueSBvZjoKICAqIGAubGl2ZXBhdGNoLmhvb2tzLntwcmVhcHBseSxwb3N0YXBwbHks cHJlcmV2ZXJ0LHBvc3RyZXZlcnR9JworICogYC5saXZlcGF0Y2guaG9va3Mue2FwcGx5LHJldmVy dH1gCiAgICAtIHdoaWNoIGFyZSBhIHBvaW50ZXIgdG8gYSBob29rIGZ1bmN0aW9uIHBvaW50ZXIu CiAKICAqIGAubGl2ZXBhdGNoLnhlbl9kZXBlbmRzYCAtIHdoaWNoIGlzIGFuIEVMRiBOb3RlIHRo YXQgZGVzY3JpYmVzIHdoYXQgWGVuCkBAIC0zNTYsNiArMzU3LDE0IEBAIG1ldC4KICAqIGAubGl2 ZXBhdGNoLmhvb2tzLntwcmVyZXZlcnQscG9zdHJldmVydH1gCiAgICAtIHdoaWNoIGFyZSBhIHBv aW50ZXIgdG8gYSBzaW5nbGUgaG9vayBmdW5jdGlvbiBwb2ludGVyLgogCitGaW5hbGx5LCBpdCBv cHRpb25hbGx5IG1heSBhbHNvIGNvbnRhaW4gdGhlIGFkZHJlc3Mgb2YgYXBwbHkgb3IgcmV2ZXJ0 IGFjdGlvbgoraG9va3MgdG8gYmUgY2FsbGVkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYXBwbHkg YW5kIHJldmVydCBwYXlsb2FkIGFjdGlvbnMKKyh3aGlsZSBhbGwgQ1BVcyBhcmUga2VwdCBpbiBx dWllc2Npbmcgem9uZSkuIFRoZXNlIGhvb2tzIGRvIGhhdmUgYWNjZXNzIHRvCitwYXlsb2FkIHN0 cnVjdHVyZS4KKworICogYC5saXZlcGF0Y2guaG9va3Mue2FwcGx5LHJldmVydH1gCisgICAtIHdo aWNoIGFyZSBhIHBvaW50ZXIgdG8gYSBzaW5nbGUgaG9vayBmdW5jdGlvbiBwb2ludGVyLgorCiAj IyMgRXhhbXBsZSBvZiAubGl2ZXBhdGNoLmZ1bmNzCiAKIEEgc2ltcGxlIGV4YW1wbGUgb2Ygd2hh dCBhIHBheWxvYWQgZmlsZSBjYW4gYmU6CkBAIC00NjksNiArNDc4LDIwIEBAIFRoZSB0eXBlIGRl ZmluaXRpb24gb2YgdGhlIGZ1bmN0aW9uIGFyZSBhcyBmb2xsb3c6CiAKICAgICB0eXBlZGVmIHZv aWQgbGl2ZXBhdGNoX3Bvc3RjYWxsX3QobGl2ZXBhdGNoX3BheWxvYWRfdCAqYXJnKTsKIAorIyMj IyAubGl2ZXBhdGNoLmhvb2tzLmFwcGx5IGFuZCAubGl2ZXBhdGNoLmhvb2tzLnJldmVydAorCitU aGlzIHNlY3Rpb24gY29udGFpbnMgYSBwb2ludGVyIHRvIGEgc2luZ2xlIGZ1bmN0aW9uIHBvaW50 ZXIgdG8gYmUgZXhlY3V0ZWQKK2luc3RlYWQgb2YgYSBkZWZhdWx0IGFwcGx5IChvciByZXZlcnQp IGFjdGlvbiBmdW5jdGlvbi4gVGhpcyBpcyB1c2VmdWwgdG8KK3JlcGxhY2Ugb3IgYXVnbWVudCBk ZWZhdWx0IGJlaGF2aW9yIG9mIHRoZSBhcHBseSAob3IgcmV2ZXJ0KSBhY3Rpb24gdGhhdAorcmVx dWlyZXMgYWxsIENQVXMgdG8gYmUgaW4gdGhlIHF1aWVzY2luZyB6b25lLgorVGhpcyB0eXBlIG9m IGhvb2tzIGRvIGhhdmUgYWNjZXNzIHRvIHBheWxvYWQgc3RydWN0dXJlLgorCitFYWNoIGVudHJ5 IGluIHRoaXMgYXJyYXkgaXMgZWlnaHQgYnl0ZXMuCisKK1RoZSB0eXBlIGRlZmluaXRpb24gb2Yg dGhlIGZ1bmN0aW9uIGFyZSBhcyBmb2xsb3c6CisKKyAgICB0eXBlZGVmIGludCBsaXZlcGF0Y2hf YWN0aW9uY2FsbF90KGxpdmVwYXRjaF9wYXlsb2FkX3QgKmFyZyk7CisKICMjIyAubGl2ZXBhdGNo Lnhlbl9kZXBlbmRzLCAubGl2ZXBhdGNoLmRlcGVuZHMgYW5kIC5ub3RlLmdudS5idWlsZC1pZAog CiBUbyBzdXBwb3J0IGRlcGVuZGVuY2llcyBjaGVja2luZyBhbmQgc2FmZSBsb2FkaW5nICh0byBs b2FkIHRoZQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9saXZlcGF0Y2guYyBiL3hlbi9jb21tb24v bGl2ZXBhdGNoLmMKaW5kZXggYzVkYWU4ODE0Zi4uNTc3YjkyNmJhNCAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9saXZlcGF0Y2guYworKysgYi94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCkBAIC01ODcs OCArNTg3LDExIEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpw YXlsb2FkLAogICAgIExJVkVQQVRDSF9BU1NJR05fTVVMVElfSE9PSyhlbGYsIHBheWxvYWQtPnVu bG9hZF9mdW5jcywgcGF5bG9hZC0+bl91bmxvYWRfZnVuY3MsICIubGl2ZXBhdGNoLmhvb2tzLnVu bG9hZCIpOwogCiAgICAgTElWRVBBVENIX0FTU0lHTl9TSU5HTEVfSE9PSyhlbGYsIHBheWxvYWQt Pmhvb2tzLmFwcGx5LnByZSwgIi5saXZlcGF0Y2guaG9va3MucHJlYXBwbHkiKTsKKyAgICBMSVZF UEFUQ0hfQVNTSUdOX1NJTkdMRV9IT09LKGVsZiwgcGF5bG9hZC0+aG9va3MuYXBwbHkuYWN0aW9u LCAiLmxpdmVwYXRjaC5ob29rcy5hcHBseSIpOwogICAgIExJVkVQQVRDSF9BU1NJR05fU0lOR0xF X0hPT0soZWxmLCBwYXlsb2FkLT5ob29rcy5hcHBseS5wb3N0LCAiLmxpdmVwYXRjaC5ob29rcy5w b3N0YXBwbHkiKTsKKwogICAgIExJVkVQQVRDSF9BU1NJR05fU0lOR0xFX0hPT0soZWxmLCBwYXls b2FkLT5ob29rcy5yZXZlcnQucHJlLCAiLmxpdmVwYXRjaC5ob29rcy5wcmVyZXZlcnQiKTsKKyAg ICBMSVZFUEFUQ0hfQVNTSUdOX1NJTkdMRV9IT09LKGVsZiwgcGF5bG9hZC0+aG9va3MucmV2ZXJ0 LmFjdGlvbiwgIi5saXZlcGF0Y2guaG9va3MucmV2ZXJ0Iik7CiAgICAgTElWRVBBVENIX0FTU0lH Tl9TSU5HTEVfSE9PSyhlbGYsIHBheWxvYWQtPmhvb2tzLnJldmVydC5wb3N0LCAiLmxpdmVwYXRj aC5ob29rcy5wb3N0cmV2ZXJ0Iik7CiAKICAgICBzZWMgPSBsaXZlcGF0Y2hfZWxmX3NlY19ieV9u YW1lKGVsZiwgRUxGX0JVSUxEX0lEX05PVEUpOwpAQCAtMTExNCw2ICsxMTE3LDExIEBAIHN0YXRp YyBpbnQgYXBwbHlfcGF5bG9hZChzdHJ1Y3QgcGF5bG9hZCAqZGF0YSkKIAogICAgIGFyY2hfbGl2 ZXBhdGNoX3Jldml2ZSgpOwogCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p ZCBhcHBseV9wYXlsb2FkX3RhaWwoc3RydWN0IHBheWxvYWQgKmRhdGEpCit7CiAgICAgLyoKICAg ICAgKiBXZSBuZWVkIFJDVSB2YXJpYW50ICh3aGljaCBoYXMgYmFycmllcnMpIGluIGNhc2Ugd2Ug Y3Jhc2ggaGVyZS4KICAgICAgKiBUaGUgYXBwbGllZF9saXN0IGlzIGl0ZXJhdGVkIGJ5IHRoZSB0 cmFwIGNvZGUuCkBAIC0xMTIxLDcgKzExMjksNyBAQCBzdGF0aWMgaW50IGFwcGx5X3BheWxvYWQo c3RydWN0IHBheWxvYWQgKmRhdGEpCiAgICAgbGlzdF9hZGRfdGFpbF9yY3UoJmRhdGEtPmFwcGxp ZWRfbGlzdCwgJmFwcGxpZWRfbGlzdCk7CiAgICAgcmVnaXN0ZXJfdmlydHVhbF9yZWdpb24oJmRh dGEtPnJlZ2lvbik7CiAKLSAgICByZXR1cm4gMDsKKyAgICBkYXRhLT5zdGF0ZSA9IExJVkVQQVRD SF9TVEFURV9BUFBMSUVEOwogfQogCiBzdGF0aWMgaW50IHJldmVydF9wYXlsb2FkKHN0cnVjdCBw YXlsb2FkICpkYXRhKQpAQCAtMTE1NCw2ICsxMTYyLDExIEBAIHN0YXRpYyBpbnQgcmV2ZXJ0X3Bh eWxvYWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCiAgICAgQVNTRVJUKCFsb2NhbF9pcnFfaXNfZW5h YmxlZCgpKTsKIAogICAgIGFyY2hfbGl2ZXBhdGNoX3Jldml2ZSgpOworICAgIHJldHVybiAwOwor fQorCitzdGF0aWMgaW5saW5lIHZvaWQgcmV2ZXJ0X3BheWxvYWRfdGFpbChzdHJ1Y3QgcGF5bG9h ZCAqZGF0YSkKK3sKIAogICAgIC8qCiAgICAgICogV2UgbmVlZCBSQ1UgdmFyaWFudCAod2hpY2gg aGFzIGJhcnJpZXJzKSBpbiBjYXNlIHdlIGNyYXNoIGhlcmUuCkBAIC0xMTYzLDcgKzExNzYsNyBA QCBzdGF0aWMgaW50IHJldmVydF9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpkYXRhKQogICAgIHVu cmVnaXN0ZXJfdmlydHVhbF9yZWdpb24oJmRhdGEtPnJlZ2lvbik7CiAKICAgICBkYXRhLT5yZXZl cnRlZCA9IHRydWU7Ci0gICAgcmV0dXJuIDA7CisgICAgZGF0YS0+c3RhdGUgPSBMSVZFUEFUQ0hf U1RBVEVfQ0hFQ0tFRDsKIH0KIAogLyoKQEAgLTExODMsMTUgKzExOTYsMzEgQEAgc3RhdGljIHZv aWQgbGl2ZXBhdGNoX2RvX2FjdGlvbih2b2lkKQogICAgIHN3aXRjaCAoIGxpdmVwYXRjaF93b3Jr LmNtZCApCiAgICAgewogICAgIGNhc2UgTElWRVBBVENIX0FDVElPTl9BUFBMWToKLSAgICAgICAg cmMgPSBhcHBseV9wYXlsb2FkKGRhdGEpOworICAgICAgICBpZiAoIGlzX2hvb2tfZW5hYmxlZChk YXRhLT5ob29rcy5hcHBseS5hY3Rpb24pICkKKyAgICAgICAgeworICAgICAgICAgICAgcHJpbnRr KFhFTkxPR19JTkZPIExJVkVQQVRDSCAiJXM6IENhbGxpbmcgYXBwbHkgYWN0aW9uIGhvb2sgZnVu Y3Rpb25cbiIsIGRhdGEtPm5hbWUpOworCisgICAgICAgICAgICByYyA9ICgqZGF0YS0+aG9va3Mu YXBwbHkuYWN0aW9uKShkYXRhKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAg ICByYyA9IGFwcGx5X3BheWxvYWQoZGF0YSk7CisKICAgICAgICAgaWYgKCByYyA9PSAwICkKLSAg ICAgICAgICAgIGRhdGEtPnN0YXRlID0gTElWRVBBVENIX1NUQVRFX0FQUExJRUQ7CisgICAgICAg ICAgICBhcHBseV9wYXlsb2FkX3RhaWwoZGF0YSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz ZSBMSVZFUEFUQ0hfQUNUSU9OX1JFVkVSVDoKLSAgICAgICAgcmMgPSByZXZlcnRfcGF5bG9hZChk YXRhKTsKKyAgICAgICAgaWYgKCBpc19ob29rX2VuYWJsZWQoZGF0YS0+aG9va3MucmV2ZXJ0LmFj dGlvbikgKQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGsoWEVOTE9HX0lORk8gTElWRVBB VENIICIlczogQ2FsbGluZyByZXZlcnQgYWN0aW9uIGhvb2sgZnVuY3Rpb25cbiIsIGRhdGEtPm5h bWUpOworCisgICAgICAgICAgICByYyA9ICgqZGF0YS0+aG9va3MucmV2ZXJ0LmFjdGlvbikoZGF0 YSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmMgPSByZXZlcnRfcGF5 bG9hZChkYXRhKTsKKwogICAgICAgICBpZiAoIHJjID09IDAgKQotICAgICAgICAgICAgZGF0YS0+ c3RhdGUgPSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRDsKKyAgICAgICAgICAgIHJldmVydF9wYXls b2FkX3RhaWwoZGF0YSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBMSVZFUEFUQ0hfQUNU SU9OX1JFUExBQ0U6CkBAIC0xMjAyLDkgKzEyMzEsMTggQEAgc3RhdGljIHZvaWQgbGl2ZXBhdGNo X2RvX2FjdGlvbih2b2lkKQogICAgICAgICAgKi8KICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRy eV9zYWZlX3JldmVyc2UgKCBvdGhlciwgdG1wLCAmYXBwbGllZF9saXN0LCBhcHBsaWVkX2xpc3Qg KQogICAgICAgICB7Ci0gICAgICAgICAgICBvdGhlci0+cmMgPSByZXZlcnRfcGF5bG9hZChvdGhl cik7CisgICAgICAgICAgICBpZiAoIGlzX2hvb2tfZW5hYmxlZChvdGhlci0+aG9va3MucmV2ZXJ0 LmFjdGlvbikgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0df SU5GTyBMSVZFUEFUQ0ggIiVzOiBDYWxsaW5nIHJldmVydCBhY3Rpb24gaG9vayBmdW5jdGlvblxu Iiwgb3RoZXItPm5hbWUpOworCisgICAgICAgICAgICAgICAgb3RoZXItPnJjID0gKCpvdGhlci0+ aG9va3MucmV2ZXJ0LmFjdGlvbikob3RoZXIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg ZWxzZQorICAgICAgICAgICAgICAgIG90aGVyLT5yYyA9IHJldmVydF9wYXlsb2FkKG90aGVyKTsK KworCiAgICAgICAgICAgICBpZiAoIG90aGVyLT5yYyA9PSAwICkKLSAgICAgICAgICAgICAgICBv dGhlci0+c3RhdGUgPSBMSVZFUEFUQ0hfU1RBVEVfQ0hFQ0tFRDsKKyAgICAgICAgICAgICAgICBy ZXZlcnRfcGF5bG9hZF90YWlsKG90aGVyKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CkBAIC0xMjE0LDkgKzEyNTIsMTcgQEAg c3RhdGljIHZvaWQgbGl2ZXBhdGNoX2RvX2FjdGlvbih2b2lkKQogCiAgICAgICAgIGlmICggcmMg PT0gMCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJjID0gYXBwbHlfcGF5bG9hZChkYXRhKTsK KyAgICAgICAgICAgIGlmICggaXNfaG9va19lbmFibGVkKGRhdGEtPmhvb2tzLmFwcGx5LmFjdGlv bikgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyBM SVZFUEFUQ0ggIiVzOiBDYWxsaW5nIGFwcGx5IGFjdGlvbiBob29rIGZ1bmN0aW9uXG4iLCBkYXRh LT5uYW1lKTsKKworICAgICAgICAgICAgICAgIHJjID0gKCpkYXRhLT5ob29rcy5hcHBseS5hY3Rp b24pKGRhdGEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgIHJjID0gYXBwbHlfcGF5bG9hZChkYXRhKTsKKwogICAgICAgICAgICAgaWYgKCByYyA9PSAw ICkKLSAgICAgICAgICAgICAgICBkYXRhLT5zdGF0ZSA9IExJVkVQQVRDSF9TVEFURV9BUFBMSUVE OworICAgICAgICAgICAgICAgIGFwcGx5X3BheWxvYWRfdGFpbChkYXRhKTsKICAgICAgICAgfQog ICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaF9w YXlsb2FkLmggYi94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoX3BheWxvYWQuaAppbmRleCBjZDIw OTQ0Y2M0Li5mZjE2YWYwZGQ2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNo X3BheWxvYWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vbGl2ZXBhdGNoX3BheWxvYWQuaApAQCAt MjIsMTEgKzIyLDEzIEBAIHR5cGVkZWYgdm9pZCBsaXZlcGF0Y2hfbG9hZGNhbGxfdCh2b2lkKTsK IHR5cGVkZWYgdm9pZCBsaXZlcGF0Y2hfdW5sb2FkY2FsbF90KHZvaWQpOwogCiB0eXBlZGVmIGlu dCBsaXZlcGF0Y2hfcHJlY2FsbF90KGxpdmVwYXRjaF9wYXlsb2FkX3QgKmFyZyk7Cit0eXBlZGVm IGludCBsaXZlcGF0Y2hfYWN0aW9uY2FsbF90KGxpdmVwYXRjaF9wYXlsb2FkX3QgKmFyZyk7CiB0 eXBlZGVmIHZvaWQgbGl2ZXBhdGNoX3Bvc3RjYWxsX3QobGl2ZXBhdGNoX3BheWxvYWRfdCAqYXJn KTsKIAogc3RydWN0IGxpdmVwYXRjaF9ob29rcyB7CiAgICAgc3RydWN0IHsKICAgICAgICAgbGl2 ZXBhdGNoX3ByZWNhbGxfdCAqY29uc3QgKnByZTsKKyAgICAgICAgbGl2ZXBhdGNoX2FjdGlvbmNh bGxfdCAqY29uc3QgKmFjdGlvbjsKICAgICAgICAgbGl2ZXBhdGNoX3Bvc3RjYWxsX3QgKmNvbnN0 ICpwb3N0OwogICAgIH0gYXBwbHksIHJldmVydDsKIH07CkBAIC05MSw2ICs5MywxMCBAQCBzdHJ1 Y3QgcGF5bG9hZCB7CiAgICAgbGl2ZXBhdGNoX3ByZWNhbGxfdCAqX19hdHRyaWJ1dGVfXygod2Vh aywgdXNlZCkpIFwKICAgICAgICAgY29uc3QgbGl2ZXBhdGNoX3ByZWFwcGx5X2RhdGFfIyNfZm4g X19zZWN0aW9uKCIubGl2ZXBhdGNoLmhvb2tzLnByZWFwcGx5IikgPSBfZm47CiAKKyNkZWZpbmUg TElWRVBBVENIX0FQUExZX0hPT0soX2ZuKSBcCisgICAgbGl2ZXBhdGNoX2FjdGlvbmNhbGxfdCAq X19hdHRyaWJ1dGVfXygod2VhaywgdXNlZCkpIFwKKyAgICAgICAgY29uc3QgbGl2ZXBhdGNoX2Fw cGx5X2RhdGFfIyNfZm4gX19zZWN0aW9uKCIubGl2ZXBhdGNoLmhvb2tzLmFwcGx5IikgPSBfZm47 CisKICNkZWZpbmUgTElWRVBBVENIX1BPU1RBUFBMWV9IT09LKF9mbikgXAogICAgIGxpdmVwYXRj aF9wb3N0Y2FsbF90ICpfX2F0dHJpYnV0ZV9fKCh3ZWFrLCB1c2VkKSkgXAogICAgICAgICBjb25z dCBsaXZlcGF0Y2hfcG9zdGFwcGx5X2RhdGFfIyNfZm4gX19zZWN0aW9uKCIubGl2ZXBhdGNoLmhv b2tzLnBvc3RhcHBseSIpID0gX2ZuOwpAQCAtOTksNiArMTA1LDEwIEBAIHN0cnVjdCBwYXlsb2Fk IHsKICAgICBsaXZlcGF0Y2hfcHJlY2FsbF90ICpfX2F0dHJpYnV0ZV9fKCh3ZWFrLCB1c2VkKSkg XAogICAgICAgICBjb25zdCBsaXZlcGF0Y2hfcHJlcmV2ZXJ0X2RhdGFfIyNfZm4gX19zZWN0aW9u KCIubGl2ZXBhdGNoLmhvb2tzLnByZXJldmVydCIpID0gX2ZuOwogCisjZGVmaW5lIExJVkVQQVRD SF9SRVZFUlRfSE9PSyhfZm4pIFwKKyAgICBsaXZlcGF0Y2hfYWN0aW9uY2FsbF90ICpfX2F0dHJp YnV0ZV9fKCh3ZWFrLCB1c2VkKSkgXAorICAgICAgICBjb25zdCBsaXZlcGF0Y2hfcmV2ZXJ0X2Rh dGFfIyNfZm4gX19zZWN0aW9uKCIubGl2ZXBhdGNoLmhvb2tzLnJldmVydCIpID0gX2ZuOworCiAj ZGVmaW5lIExJVkVQQVRDSF9QT1NUUkVWRVJUX0hPT0soX2ZuKSBcCiAgICAgbGl2ZXBhdGNoX3Bv c3RjYWxsX3QgKl9fYXR0cmlidXRlX18oKHdlYWssIHVzZWQpKSBcCiAgICAgICAgIGNvbnN0IGxp dmVwYXRjaF9wb3N0cmV2ZXJ0X2RhdGFfIyNfZm4gX19zZWN0aW9uKCIubGl2ZXBhdGNoLmhvb2tz LnBvc3RyZXZlcnQiKSA9IF9mbjsKZGlmZiAtLWdpdCBhL3hlbi90ZXN0L2xpdmVwYXRjaC9NYWtl ZmlsZSBiL3hlbi90ZXN0L2xpdmVwYXRjaC9NYWtlZmlsZQppbmRleCBhOTRiYzQ4NTM2Li4xMTZl NTJlNzc0IDEwMDY0NAotLS0gYS94ZW4vdGVzdC9saXZlcGF0Y2gvTWFrZWZpbGUKKysrIGIveGVu L3Rlc3QvbGl2ZXBhdGNoL01ha2VmaWxlCkBAIC0yMiw2ICsyMiw3IEBAIExJVkVQQVRDSF9OT1Ag Oj0geGVuX25vcC5saXZlcGF0Y2gKIExJVkVQQVRDSF9OT19YRU5fQlVJTERJRCA6PSB4ZW5fbm9f eGVuX2J1aWxkaWQubGl2ZXBhdGNoCiBMSVZFUEFUQ0hfUFJFUE9TVF9IT09LUyA6PSB4ZW5fcHJl cG9zdF9ob29rcy5saXZlcGF0Y2gKIExJVkVQQVRDSF9QUkVQT1NUX0hPT0tTX0ZBSUwgOj0geGVu X3ByZXBvc3RfaG9va3NfZmFpbC5saXZlcGF0Y2gKK0xJVkVQQVRDSF9BQ1RJT05fSE9PS1MgOj0g eGVuX2FjdGlvbl9ob29rcy5saXZlcGF0Y2gKIAogTElWRVBBVENIRVMgKz0gJChMSVZFUEFUQ0gp CiBMSVZFUEFUQ0hFUyArPSAkKExJVkVQQVRDSF9CWUUpCkBAIC0zMCw2ICszMSw3IEBAIExJVkVQ QVRDSEVTICs9ICQoTElWRVBBVENIX05PUCkKIExJVkVQQVRDSEVTICs9ICQoTElWRVBBVENIX05P X1hFTl9CVUlMRElEKQogTElWRVBBVENIRVMgKz0gJChMSVZFUEFUQ0hfUFJFUE9TVF9IT09LUykK IExJVkVQQVRDSEVTICs9ICQoTElWRVBBVENIX1BSRVBPU1RfSE9PS1NfRkFJTCkKK0xJVkVQQVRD SEVTICs9ICQoTElWRVBBVENIX0FDVElPTl9IT09LUykKIAogTElWRVBBVENIX0RFQlVHX0RJUiA/ PSAkKERFQlVHX0RJUikveGVuLWxpdmVwYXRjaAogCkBAIC0xNDQsNiArMTQ2LDEyIEBAIHhlbl9w cmVwb3N0X2hvb2tzX2ZhaWwubzogY29uZmlnLmgKICQoTElWRVBBVENIX1BSRVBPU1RfSE9PS1Nf RkFJTCk6IHhlbl9wcmVwb3N0X2hvb2tzX2ZhaWwubyB4ZW5faGVsbG9fd29ybGRfZnVuYy5vIG5v dGUubyB4ZW5fbm90ZS5vCiAJJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xpbmtlcikgLXIg LW8gJChMSVZFUEFUQ0hfUFJFUE9TVF9IT09LU19GQUlMKSAkXgogCit4ZW5fYWN0aW9uc19ob29r cy5vOiBjb25maWcuaAorCisuUEhPTlk6ICQoTElWRVBBVENIX0FDVElPTl9IT09LUykKKyQoTElW RVBBVENIX0FDVElPTl9IT09LUyk6IHhlbl9hY3Rpb25faG9va3MubyB4ZW5faGVsbG9fd29ybGRf ZnVuYy5vIG5vdGUubyB4ZW5fbm90ZS5vCisJJChMRCkgJChMREZMQUdTKSAkKGJ1aWxkX2lkX2xp bmtlcikgLXIgLW8gJChMSVZFUEFUQ0hfQUNUSU9OX0hPT0tTKSAkXgorCiAuUEhPTlk6IGxpdmVw YXRjaAogbGl2ZXBhdGNoOiAkKExJVkVQQVRDSCkgJChMSVZFUEFUQ0hfQllFKSAkKExJVkVQQVRD SF9SRVBMQUNFKSAkKExJVkVQQVRDSF9OT1ApICQoTElWRVBBVENIX05PX1hFTl9CVUlMRElEKSBc Ci0gICAgICAgICAgICQoTElWRVBBVENIX1BSRVBPU1RfSE9PS1MpICQoTElWRVBBVENIX1BSRVBP U1RfSE9PS1NfRkFJTCkKKyAgICAgICAgICAgJChMSVZFUEFUQ0hfUFJFUE9TVF9IT09LUykgJChM SVZFUEFUQ0hfUFJFUE9TVF9IT09LU19GQUlMKSAkKExJVkVQQVRDSF9BQ1RJT05fSE9PS1MpCmRp ZmYgLS1naXQgYS94ZW4vdGVzdC9saXZlcGF0Y2gveGVuX2FjdGlvbl9ob29rcy5jIGIveGVuL3Rl c3QvbGl2ZXBhdGNoL3hlbl9hY3Rpb25faG9va3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi5hOTQ3YWZjNDFmCi0tLSAvZGV2L251bGwKKysrIGIveGVuL3Rlc3QvbGl2 ZXBhdGNoL3hlbl9hY3Rpb25faG9va3MuYwpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHly aWdodCAoYykgMjAxOSBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmln aHRzIHJlc2VydmVkLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8 eGVuL2xpYi5oPgorI2luY2x1ZGUgPHhlbi90eXBlcy5oPgorI2luY2x1ZGUgPHhlbi92ZXJzaW9u Lmg+CisjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaC5oPgorI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2hf cGF5bG9hZC5oPgorCisjaW5jbHVkZSA8cHVibGljL3N5c2N0bC5oPgorCitzdGF0aWMgY29uc3Qg Y2hhciBoZWxsb193b3JsZF9wYXRjaF90aGlzX2ZuY1tdID0gInhlbl9leHRyYV92ZXJzaW9uIjsK K2V4dGVybiBjb25zdCBjaGFyICp4ZW5faGVsbG9fd29ybGQodm9pZCk7CisKK3N0YXRpYyB1bnNp Z25lZCBpbnQgYXBwbHlfY250Oworc3RhdGljIHVuc2lnbmVkIGludCByZXZlcnRfY250OworCitz dGF0aWMgaW50IGFwcGx5X2hvb2sobGl2ZXBhdGNoX3BheWxvYWRfdCAqcGF5bG9hZCkKK3sKKyAg ICBpbnQgaTsKKworICAgIHByaW50ayhLRVJOX0RFQlVHICIlczogSG9vayBzdGFydGluZy5cbiIs IF9fZnVuY19fKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBwYXlsb2FkLT5uZnVuY3M7IGkrKykK KyAgICB7CisgICAgICAgIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYyA9ICZwYXlsb2FkLT5m dW5jc1tpXTsKKworICAgICAgICBhcHBseV9jbnQrKzsKKworICAgICAgICBwcmludGsoS0VSTl9E RUJVRyAiJXM6IGFwcGx5aW5nOiAlc1xuIiwgX19mdW5jX18sIGZ1bmMtPm5hbWUpOworICAgIH0K KworICAgIHByaW50ayhLRVJOX0RFQlVHICIlczogSG9vayBkb25lLlxuIiwgX19mdW5jX18pOwor CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcmV2ZXJ0X2hvb2sobGl2ZXBhdGNoX3Bh eWxvYWRfdCAqcGF5bG9hZCkKK3sKKyAgICBpbnQgaTsKKworICAgIHByaW50ayhLRVJOX0RFQlVH ICIlczogSG9vayBzdGFydGluZy5cbiIsIF9fZnVuY19fKTsKKworICAgIGZvciAoaSA9IDA7IGkg PCBwYXlsb2FkLT5uZnVuY3M7IGkrKykKKyAgICB7CisgICAgICAgIHN0cnVjdCBsaXZlcGF0Y2hf ZnVuYyAqZnVuYyA9ICZwYXlsb2FkLT5mdW5jc1tpXTsKKworICAgICAgICByZXZlcnRfY250Kys7 CisKKyAgICAgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVzOiByZXZlcnRpbmc6ICVzXG4iLCBfX2Z1 bmNfXywgZnVuYy0+bmFtZSk7CisgICAgfQorCisgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBI b29rIGRvbmUuXG4iLCBfX2Z1bmNfXyk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZv aWQgcG9zdF9yZXZlcnRfaG9vayhsaXZlcGF0Y2hfcGF5bG9hZF90ICpwYXlsb2FkKQoreworICAg IGludCBpOworCisgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBIb29rIHN0YXJ0aW5nLlxuIiwg X19mdW5jX18pOworCisgICAgZm9yIChpID0gMDsgaSA8IHBheWxvYWQtPm5mdW5jczsgaSsrKQor ICAgIHsKKyAgICAgICAgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jID0gJnBheWxvYWQtPmZ1 bmNzW2ldOworCisgICAgICAgIHByaW50ayhLRVJOX0RFQlVHICIlczogcmV2ZXJ0ZWQ6ICVzXG4i LCBfX2Z1bmNfXywgZnVuYy0+bmFtZSk7CisgICAgfQorCisgICAgQlVHX09OKGFwcGx5X2NudCAh PSAxIHx8IHJldmVydF9jbnQgIT0gMSk7CisgICAgcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBIb29r IGRvbmUuXG4iLCBfX2Z1bmNfXyk7Cit9CisKK0xJVkVQQVRDSF9BUFBMWV9IT09LKGFwcGx5X2hv b2spOworTElWRVBBVENIX1JFVkVSVF9IT09LKHJldmVydF9ob29rKTsKKworTElWRVBBVENIX1BP U1RSRVZFUlRfSE9PSyhwb3N0X3JldmVydF9ob29rKTsKKworc3RydWN0IGxpdmVwYXRjaF9mdW5j IF9fc2VjdGlvbigiLmxpdmVwYXRjaC5mdW5jcyIpIGxpdmVwYXRjaF94ZW5faGVsbG9fd29ybGQg PSB7CisgICAgLnZlcnNpb24gPSBMSVZFUEFUQ0hfUEFZTE9BRF9WRVJTSU9OLAorICAgIC5uYW1l ID0gaGVsbG9fd29ybGRfcGF0Y2hfdGhpc19mbmMsCisgICAgLm5ld19hZGRyID0geGVuX2hlbGxv X3dvcmxkLAorICAgIC5vbGRfYWRkciA9IHhlbl9leHRyYV92ZXJzaW9uLAorICAgIC5uZXdfc2l6 ZSA9IE5FV19DT0RFX1NaLAorICAgIC5vbGRfc2l6ZSA9IE9MRF9DT0RFX1NaLAorfTsKKworLyoK KyAqIExvY2FsIHZhcmlhYmxlczoKKyAqIG1vZGU6IEMKKyAqIGMtZmlsZS1zdHlsZTogIkJTRCIK KyAqIGMtYmFzaWMtb2Zmc2V0OiA0CisgKiB0YWItd2lkdGg6IDQKKyAqIGluZGVudC10YWJzLW1v ZGU6IG5pbAorICogRW5kOgorICovCi0tIAoyLjE2LjUKCgoKCkFtYXpvbiBEZXZlbG9wbWVudCBD ZW50ZXIgR2VybWFueSBHbWJICktyYXVzZW5zdHIuIDM4CjEwMTE3IEJlcmxpbgpHZXNjaGFlZnRz ZnVlaHJ1bmc6IENocmlzdGlhbiBTY2hsYWVnZXIsIFJhbGYgSGVyYnJpY2gKRWluZ2V0cmFnZW4g YW0gQW10c2dlcmljaHQgQ2hhcmxvdHRlbmJ1cmcgdW50ZXIgSFJCIDE0OTE3MyBCClNpdHo6IEJl cmxpbgpVc3QtSUQ6IERFIDI4OSAyMzcgODc5CgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4v bGlzdGluZm8veGVuLWRldmVs