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=-4.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham 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 8908AC04AB3 for ; Mon, 27 May 2019 13:15:55 +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 65B3D2054F for ; Mon, 27 May 2019 13:15:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 65B3D2054F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com 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 1hVFTW-0004zy-ED; Mon, 27 May 2019 13:15:38 +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 1hVFTU-0004zt-N0 for xen-devel@lists.xenproject.org; Mon, 27 May 2019 13:15:36 +0000 X-Inumbo-ID: 810acf1c-8081-11e9-b648-df8e3b235797 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 810acf1c-8081-11e9-b648-df8e3b235797; Mon, 27 May 2019 13:15:32 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Mon, 27 May 2019 07:15:31 -0600 Message-Id: <5CEBE2EF0200007800232C94@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.1 Date: Mon, 27 May 2019 07:15:27 -0600 From: "Jan Beulich" To: "Roger Pau Monne" References: <20190522164530.33147-1-roger.pau@citrix.com> <5CE66AC302000078002319E6@prv1-mh.provo.novell.com> <20190527123941.nqzuyv6jqxk25hsj@Air-de-Roger> In-Reply-To: <20190527123941.nqzuyv6jqxk25hsj@Air-de-Roger> Mime-Version: 1.0 Content-Disposition: inline Subject: Re: [Xen-devel] [PATCH v2] x86: fix alternative_callN usage of ALTERNATIVE asm macro X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Wei Liu , xen-devel Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190527131527.mOMuM2cBf-6aCrDXR3ycligOkqf1604oN5OvW3DkiA8@z> Pj4+IE9uIDI3LjA1LjE5IGF0IDE0OjM5LCA8cm9nZXIucGF1QGNpdHJpeC5jb20+IHdyb3RlOgo+ IE9uIFRodSwgTWF5IDIzLCAyMDE5IGF0IDAzOjQxOjIzQU0gLTA2MDAsIEphbiBCZXVsaWNoIHdy b3RlOgo+PiA+Pj4gT24gMjIuMDUuMTkgYXQgMTg6NDUsIDxyb2dlci5wYXVAY2l0cml4LmNvbT4g d3JvdGU6Cj4+ID4gYWx0ZXJuYXRpdmVfY2FsbE4gdXNpbmcgaW5saW5lIGFzc2VtYmx5IHRvIGdl bmVyYXRlIHRoZSBhbHRlcm5hdGl2ZQo+PiA+IHBhdGNoIHNpdGVzIHNob3VsZCBiZSB1c2luZyB0 aGUgQUxURVJOQVRJVkUgQyBwcmVwcm9jZXNzb3IgbWFjcm8KPj4gPiByYXRoZXIgdGhhbiB0aGUg QUxURVJOQVRJVkUgYXNzZW1ibHkgbWFjcm8sCj4+IAo+PiBXaHk/IFNlZSBJTkRJUkVDVF97Q0FM TCxKTVB9LiBNeSBnb2FsLCBhcyBzYWlkIG9uIGlyYywgd291bGQgYmUKPj4gdG8gZXZlbnR1YWxs eSBlbGltaW5hdGUgdGhlIHJlZHVuZGFudCBDIG1hY3JvcywgaW4gZmF2b3Igb2YganVzdCB1c2lu Zwo+PiB0aGUgYXNzZW1ibGVyIG9uZXMuCj4gCj4gVXNpbmcgdGhlIGN1cnJlbnQgYXNzZW1ibHkg bWFjcm9zIGZvciBpbmxpbmUgYXNtIGFsdGVybmF0aXZlcyB3b3VsZAo+IHJlZ3Jlc3MgdGhlIGJ1 aWxkIG9uIGxsdm0gYmFzZWQgdG9vbGNoYWlucy4gSWYgdGhhdCdzIGluZGVlZCB0aGUgcGF0aAo+ IGZvcndhcmQgSSB3aWxsIGhhdmUgdG8gbG9vayBpbnRvIG1ha2luZyB0aG9zZSB3b3JrIGluIGlu bGluZSBhc3NlbWJseQo+IGluc3RhbmNlcy4KCldlbGwsIEknbSBvcGVuIHRvIGFyZ3VtZW50cyB0 byB0aGUgY29udHJhcnkgKGkuZS4gc3VwcG9ydGluZyB0aGUKY3VycmVudCByZWR1bmRhbmN5KS4K Cj4+ID4gdGhlIG1vcmUgdGhhdCB1c2luZyB0aGUKPj4gPiBhc3NlbWJseSBtYWNybyBpbiBhbiBp bmxpbmUgYXNzZW1ibHkgaW5zdGFuY2UgY2F1c2VzIHRoZSBmb2xsb3dpbmcKPj4gPiBlcnJvciBv biBsbHZtIGJhc2VkIHRvb2xjaGFpbnM6Cj4+ID4gCj4+ID4gPGluc3RhbnRpYXRpb24+OjE6MTog ZXJyb3I6IGludmFsaWQgc3ltYm9sIHJlZGVmaW5pdGlvbgo+PiA+IC5MMF9vcmlnX3M6IGNhbGwg KmdlbmFwaWMrNjQoJXJpcCk7IC5MMF9vcmlnX2U6IC5MMF9kaWZmID0gKC5MMF9yZXBsX2UxIC0g Cj4+ID4gLkwwX3JlcGxfczEpIC0gKC4uLgo+PiAKPj4gVGhlIHVuZGVyc3RhbmRpbmcgSSBnZXQg aXMgdGhhdCBjbGFuZyBkb2Vzbid0IHByb3Blcmx5IHN1cHBvcnQgdGhlCj4+IFxAIGNvbnN0cnVj dCwgZXhwYW5kaW5nIGl0IHRvIHplcm8gZXZlcnkgdGltZS4KPiAKPiBZZXMsIHRoYXQncyBteSB1 bmRlcnN0YW5kaW5nIGFsc28uIEkndmUgYWxyZWFkeSBmaWxsZWQgYSBidWcgcmVwb3J0Ogo+IAo+ IGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIwMzQgCj4gCj4+IFRoYXQn cyBhIGNsYW5nIGJ1Zwo+PiBpbW8sIGFuZCBoZW5jZSB0aGUgd29yZGluZyBoZXJlIHNob3VsZCBy ZWZsZWN0IHRoaXMsIHJhdGhlciB0aGFuCj4+IHN1Z2dlc3RpbmcgdGhlIGNvZGUgaXMgYnJva2Vu LihJIHNlZW0gdG8gdmFndWVseSByZWNhbGwgYW4gaXNzdWUKPj4gd2l0aCBjbGFuZyBpbnN0YW50 aWF0aW5nIGEgbmV3IGFzc2VtYmx5IGVudmlyb25tZW50IGV2ZXJ5IHRpbWUKPj4gaXQgZW5jb3Vu dGVycyBhbiBhc20oKS4pCj4gCj4gSUlSQyBJJ3ZlIGZpeGVkIHRoYXQgb25lIHVwc3RyZWFtIHF1 aXRlIHNvbWUgdGltZSBhZ28sIGFuZCBzaG91bGQgYmUKPiBmaXhlZCBpbiB2ZXJzaW9ucyA+PSA2 LgoKWWV0IEkgdW5kZXJzdGFuZCB3ZSB3YW50IHRvIHN1cHBvcnQgb2xkZXIgdmVyc2lvbnMgYXMg d2VsbC4KCj4+IFdpdGhvdXQgY2xhbmcgZml4ZWQsIGFuZCB3aXRoIHVzIHdhbnRpbmcKPj4gdG8g YmUgYWJsZSB0byBjb250aW51ZSB0byBidWlsZCB3aXRoIGNsYW5nLCB0aGlzIHRoZW4gdm9pZHMg dGhlIGVudGlyZQo+PiBwdXJwb3NlIG9mIGY4NTA2MTk2OTIgKCJ4ODYvYWx0ZXJuYXRpdmVzOiBh bGxvdyB1c2luZyBhc3NlbWJsZXIKPj4gbWFjcm9zIGluIGZhdm9yIG9mIEMgb25lcyIpLCB3aGlj aCBpcmMgd2FzIG9yaWdpbmFsbHkgcGFydCBvZiB0aGUKPj4gc2VyaWVzLCBidXQgd2VudCBpbiBt dWNoIGFoZWFkIG9mIGl0Lgo+IAo+IEkgY2FuIGxvb2sgaW50byB3b3JrYXJvdW5kcyB0byB0aGlz LCB0aGUgb25lIHRoYXQgY29tZXMgdG8gbWluZCBpcwo+IHVzaW5nIC5hbHRtYWNybyBhbmQgTE9D QUwgaW4gb3JkZXIgdG8gY3JlYXRlIHVuaXF1ZSBsYWJlbHMgaW4gdGhlCj4gbWFjcm8uIEkgY2Fu IHRlc3QgaWYgc3VjaCBhcHByb2FjaCB3b3VsZCB3b3JrIGlmIHRoZSBwbGFuIGlzIHRvIG9ubHkK PiByZWx5IG9uIHRoZSBhc3NlbWJseSBhbHRlcm5hdGl2ZSBjb2RlLgoKSSdtIHN1cnByaXNlZCB0 aGV5IHN1cHBvcnQgLmFsdG1hY3JvLiBJIHdvbmRlciB3aGV0aGVyLCBhcyBhbgphbHRlcm5hdGl2 ZSwgdGhlcmUgd291bGRuJ3QgYmUgYSB3YXkgdG8gc3Vic3RpdHV0ZSB0aGUgKGFzc3NlbWJsZXIK ZXhwYW5lZCkgXEAgZm9yIHRoZSAoY29tcGlsZXIgZXhwYW5kZWQpICU9IHdoZW4gdXNpbmcgdGhl Cm1hY3JvcyBmcm9tIGFzbSgpLgoKPj4gPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVy bmF0aXZlLmgKPj4gPiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgKPj4g PiBAQCAtMjAyLDkgKzIwMiw4IEBAIGV4dGVybiB2b2lkIGFsdGVybmF0aXZlX2JyYW5jaGVzKHZv aWQpOwo+PiA+ICAgICAgcmV0dHlwZSByZXRfOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAo+PiA+ICAgICAgcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBy MTBfIGFzbSgicjEwIik7ICAgICAgICAgICAgICAgICAgICAgICAgXAo+PiA+ICAgICAgcmVnaXN0 ZXIgdW5zaWduZWQgbG9uZyByMTFfIGFzbSgicjExIik7ICAgICAgICAgICAgICAgICAgICAgICAg XAo+PiA+IC0gICAgYXNtIHZvbGF0aWxlIChfX3N0cmluZ2lmeShBTFRFUk5BVElWRSAiY2FsbCAq JWNbYWRkcl0oJSVyaXApIiwgXAo+PiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiY2FsbCAuIiwgICAgICAgICAgICAgICAgXAo+PiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYODZfRkVBVFVSRV9BTFdBWVMpICAgICAgXAo+ PiA+ICsgICAgYXNtIHZvbGF0aWxlIChBTFRFUk5BVElWRSgiY2FsbCAqJWNbYWRkcl0oJSVyaXAp IiwgImNhbGwgLiIsICAgXAo+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYODZf RkVBVFVSRV9BTFdBWVMpICAgICAgICAgICAgICAgICAgXAo+PiA+ICAgICAgICAgICAgICAgICAg ICA6IEFMVF9DQUxMICMjIG4gIyMgX09VVCwgIj1hIiAocmV0XyksICAgICAgICAgICAgXAo+PiA+ ICAgICAgICAgICAgICAgICAgICAgICI9ciIgKHIxMF8pLCAiPXIiIChyMTFfKSBBU01fQ0FMTF9D T05TVFJBSU5UICAgXAo+PiA+ICAgICAgICAgICAgICAgICAgICA6IFthZGRyXSAiaSIgKCYoZnVu YykpLCAiZyIgKGZ1bmMpICAgICAgICAgICAgICAgXAo+PiAKPj4gT2theSwgbHVja2lseSB0aGUg Y29kZSBjaGFuZ2UgaXRzZWxmIGlzIHNpbXBsZSBlbm91Z2gsIHNvIGl0IHJlYWxseQo+PiB3YXNu J3QgdGhhdCBJIGhhZCB0byB1c2UgdGhlIHZhcmlhbnQgdXNlZCB0byBtYWtlIHRoaW5ncyB3b3Jr IGF0Cj4+IGFsbC4KPiAKPiBTaW5jZSB0aGUgb25seSBjaGFuZ2UgcmVxdWVzdGVkIGlzIHJlbGF0 ZWQgdG8gdGhlIGNvbW1pdCBtZXNzYWdlLAo+IHdvdWxkIHlvdSBiZSBPSyB0byB1cGRhdGUgdGhl IGNvbW1pdCBtZXNzYWdlIHRvOgo+IAo+IC0tLTg8LS0tCj4geDg2OiByZW1vdmUgYWx0ZXJuYXRp dmVfY2FsbE4gdXNhZ2Ugb2YgQUxURVJOQVRJVkUgYXNtIG1hY3JvCj4gCj4gYWx0ZXJuYXRpdmVf Y2FsbE4gdXNpbmcgaW5saW5lIGFzc2VtYmx5IHRvIGdlbmVyYXRlIHRoZSBhbHRlcm5hdGl2ZQo+ IHBhdGNoIHNpdGVzIHNob3VsZCBiZSB1c2luZyB0aGUgQUxURVJOQVRJVkUgQyBwcmVwcm9jZXNz b3IgbWFjcm8KPiByYXRoZXIgdGhhbiB0aGUgQUxURVJOQVRJVkUgYXNzZW1ibHkgbWFjcm8sIHRo ZSBtb3JlIHRoYXQgdXNpbmcgdGhlCj4gYXNzZW1ibHkgbWFjcm8gaW4gYW4gaW5saW5lIGFzc2Vt Ymx5IGluc3RhbmNlIHRyaWdnZXJzIHRoZSBmb2xsb3dpbmcKPiBidWcgb24gbGx2bSBiYXNlZCB0 b29sY2hhaW5zOgoKV2VsbCwgdGhpcyBzdGlsbCBtYWtlcyBpdCBzb3VuZCBhcyBpZiB0aGUgaXNz dWUgd2FzIGEgc2hvcnRjb21pbmcgb2YgdGhlCmNvbW1pdCBpbiBxdWVzdGlvbi4gSG93IGFib3V0 IHB1bGxpbmcgdXAgdGhlIHBhcmFncmFwaCBmdXJ0aGVyIGRvd24KYWhlYWQgb2YgdGhlIHRleHQg YWJvdmUsIHNsaWdodGx5IGFkanVzdGVkIHRvCgoiVGhlcmUgaXMgYSBidWcgaW4gbGx2bSB0aGF0 IG5lZWRzIHRvIGJlIGZpeGVkIGJlZm9yZSBzd2l0Y2hpbmcgdG8gdXNlCiB0aGUgYWx0ZXJuYXRp dmUgYXNzZW1ibHkgbWFjcm9zIGluIGlubGluZSBhc3NlbWJseSBjYWxsIHNpdGVzLiBUaGVyZWZv cmUKIC4uLiIKCihwZXJoYXBzIGFsc28gcmVwbGFjaW5nICJ0aGUgbW9yZSIgdGhlbik/CgpKYW4K Cj4gPGluc3RhbnRpYXRpb24+OjE6MTogZXJyb3I6IGludmFsaWQgc3ltYm9sIHJlZGVmaW5pdGlv bgo+IC5MMF9vcmlnX3M6IGNhbGwgKmdlbmFwaWMrNjQoJXJpcCk7IC5MMF9vcmlnX2U6IC5MMF9k aWZmID0gKC5MMF9yZXBsX2UxIC0gCj4gLkwwX3JlcGxfczEpIC0gKC4uLgo+IF4KPiA8aW5zdGFu dGlhdGlvbj46MTozNzogZXJyb3I6IGludmFsaWQgc3ltYm9sIHJlZGVmaW5pdGlvbgo+IC5MMF9v cmlnX3M6IGNhbGwgKmdlbmFwaWMrNjQoJXJpcCk7IC5MMF9vcmlnX2U6IC5MMF9kaWZmID0gKC5M MF9yZXBsX2UxIC0gCj4gLkwwX3JlcGxfczEpIC0gKC4uLgo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KPiA8aW5zdGFudGlhdGlvbj46MTo2MDogZXJyb3I6IGludmFsaWQg cmVhc3NpZ25tZW50IG9mIG5vbi1hYnNvbHV0ZSB2YXJpYWJsZSAKPiAnLkwwX2RpZmYnCj4gLkww X29yaWdfczogY2FsbCAqZ2VuYXBpYys2NCglcmlwKTsgLkwwX29yaWdfZTogLkwwX2RpZmYgPSAo LkwwX3JlcGxfZTEgLSAKPiAuTDBfcmVwbF9zMSkgLSAoLi4uCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4gPGlubGluZSBhc20+ OjE6Mjogbm90ZTogd2hpbGUgaW4gbWFjcm8gaW5zdGFudGlhdGlvbgo+ICAgICAgICAgQUxURVJO QVRJVkUgImNhbGwgKmdlbmFwaWMrNjQoJXJpcCkiLCAiY2FsbCAuIiwgWDg2X0ZFQVRVUkVfTE0K PiAgICAgICAgIF4KPiA8aW5zdGFudGlhdGlvbj46MToxNTY6IGVycm9yOiBpbnZhbGlkIHN5bWJv bCByZWRlZmluaXRpb24KPiAgIC4uLi0gKC5MMF9vcmlnX2UgLSAuTDBfb3JpZ19zKTsgbWtub3Bz ICgoLSguTDBfZGlmZiA+IDApKSAqIC5MMF9kaWZmKTsgCj4gLkwwX29yaWdfcDoKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgo+IDxpbnN0YW50aWF0aW9uPjoxODo1OiBlcnJvcjogaW52YWxpZCBzeW1ib2wg cmVkZWZpbml0aW9uCj4gICAgIC5MMF9yZXBsX3MxOiBjYWxsIC47IC5MMF9yZXBsX2UxOgo+ICAg ICBeCj4gPGluc3RhbnRpYXRpb24+OjE4OjI2OiBlcnJvcjogaW52YWxpZCBzeW1ib2wgcmVkZWZp bml0aW9uCj4gICAgIC5MMF9yZXBsX3MxOiBjYWxsIC47IC5MMF9yZXBsX2UxOgo+ICAgICAgICAg ICAgICAgICAgICAgICAgICBeCj4gPGluc3RhbnRpYXRpb24+OjE6MTogZXJyb3I6IGludmFsaWQg c3ltYm9sIHJlZGVmaW5pdGlvbgo+IC5MMF9vcmlnX3M6IGNhbGwgKmdlbmFwaWMrNjQoJXJpcCk7 IC5MMF9vcmlnX2U6IC5MMF9kaWZmID0gKC5MMF9yZXBsX2UxIC0gCj4gLkwwX3JlcGxfczEpIC0g KC4uLgo+IF4KPiA8aW5zdGFudGlhdGlvbj46MTozNzogZXJyb3I6IGludmFsaWQgc3ltYm9sIHJl ZGVmaW5pdGlvbgo+IC5MMF9vcmlnX3M6IGNhbGwgKmdlbmFwaWMrNjQoJXJpcCk7IC5MMF9vcmln X2U6IC5MMF9kaWZmID0gKC5MMF9yZXBsX2UxIC0gCj4gLkwwX3JlcGxfczEpIC0gKC4uLgo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiA8aW5zdGFudGlhdGlvbj46MTo2 MDogZXJyb3I6IGludmFsaWQgcmVhc3NpZ25tZW50IG9mIG5vbi1hYnNvbHV0ZSB2YXJpYWJsZSAK PiAnLkwwX2RpZmYnCj4gLkwwX29yaWdfczogY2FsbCAqZ2VuYXBpYys2NCglcmlwKTsgLkwwX29y aWdfZTogLkwwX2RpZmYgPSAoLkwwX3JlcGxfZTEgLSAKPiAuTDBfcmVwbF9zMSkgLSAoLi4uCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCj4gPGlubGluZSBhc20+OjE6Mjogbm90ZTogd2hpbGUgaW4gbWFjcm8gaW5zdGFudGlhdGlv bgo+ICAgICAgICAgQUxURVJOQVRJVkUgImNhbGwgKmdlbmFwaWMrNjQoJXJpcCkiLCAiY2FsbCAu IiwgWDg2X0ZFQVRVUkVfTE0KPiAgICAgICAgIF4KPiA8aW5zdGFudGlhdGlvbj46MToxNTY6IGVy cm9yOiBpbnZhbGlkIHN5bWJvbCByZWRlZmluaXRpb24KPiAgIC4uLi0gKC5MMF9vcmlnX2UgLSAu TDBfb3JpZ19zKTsgbWtub3BzICgoLSguTDBfZGlmZiA+IDApKSAqIC5MMF9kaWZmKTsgCj4gLkww X29yaWdfcDoKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo+IDxpbnN0YW50aWF0aW9uPjoxODo1OiBlcnJv cjogaW52YWxpZCBzeW1ib2wgcmVkZWZpbml0aW9uCj4gICAgIC5MMF9yZXBsX3MxOiBjYWxsIC47 IC5MMF9yZXBsX2UxOgo+ICAgICBeCj4gPGluc3RhbnRpYXRpb24+OjE4OjI2OiBlcnJvcjogaW52 YWxpZCBzeW1ib2wgcmVkZWZpbml0aW9uCj4gICAgIC5MMF9yZXBsX3MxOiBjYWxsIC47IC5MMF9y ZXBsX2UxOgo+ICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4gPGluc3RhbnRpYXRpb24+OjE6 MTogZXJyb3I6IGludmFsaWQgc3ltYm9sIHJlZGVmaW5pdGlvbgo+IC5MMF9vcmlnX3M6IGNhbGwg KmdlbmFwaWMrNjQoJXJpcCk7IC5MMF9vcmlnX2U6IC5MMF9kaWZmID0gKC5MMF9yZXBsX2UxIC0g Cj4gLkwwX3JlcGxfczEpIC0gKC4uLgo+IF4KPiA8aW5zdGFudGlhdGlvbj46MTozNzogZXJyb3I6 IGludmFsaWQgc3ltYm9sIHJlZGVmaW5pdGlvbgo+IC5MMF9vcmlnX3M6IGNhbGwgKmdlbmFwaWMr NjQoJXJpcCk7IC5MMF9vcmlnX2U6IC5MMF9kaWZmID0gKC5MMF9yZXBsX2UxIC0gCj4gLkwwX3Jl cGxfczEpIC0gKC4uLgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KPiA8 aW5zdGFudGlhdGlvbj46MTo2MDogZXJyb3I6IGludmFsaWQgcmVhc3NpZ25tZW50IG9mIG5vbi1h YnNvbHV0ZSB2YXJpYWJsZSAKPiAnLkwwX2RpZmYnCj4gLkwwX29yaWdfczogY2FsbCAqZ2VuYXBp Yys2NCglcmlwKTsgLkwwX29yaWdfZTogLkwwX2RpZmYgPSAoLkwwX3JlcGxfZTEgLSAKPiAuTDBf cmVwbF9zMSkgLSAoLi4uCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCj4gPGlubGluZSBhc20+OjE6Mjogbm90ZTogd2hpbGUgaW4g bWFjcm8gaW5zdGFudGlhdGlvbgo+ICAgICAgICAgQUxURVJOQVRJVkUgImNhbGwgKmdlbmFwaWMr NjQoJXJpcCkiLCAiY2FsbCAuIiwgWDg2X0ZFQVRVUkVfTE0KPiAgICAgICAgIF4KPiA8aW5zdGFu dGlhdGlvbj46MToxNTY6IGVycm9yOiBpbnZhbGlkIHN5bWJvbCByZWRlZmluaXRpb24KPiAgIC4u Li0gKC5MMF9vcmlnX2UgLSAuTDBfb3JpZ19zKTsgbWtub3BzICgoLSguTDBfZGlmZiA+IDApKSAq IC5MMF9kaWZmKTsgCj4gLkwwX29yaWdfcDoKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgo+IDxpbnN0YW50 aWF0aW9uPjoxODo1OiBlcnJvcjogaW52YWxpZCBzeW1ib2wgcmVkZWZpbml0aW9uCj4gICAgIC5M MF9yZXBsX3MxOiBjYWxsIC47IC5MMF9yZXBsX2UxOgo+ICAgICBeCj4gPGluc3RhbnRpYXRpb24+ OjE4OjI2OiBlcnJvcjogaW52YWxpZCBzeW1ib2wgcmVkZWZpbml0aW9uCj4gICAgIC5MMF9yZXBs X3MxOiBjYWxsIC47IC5MMF9yZXBsX2UxOgo+ICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4g Cj4gVGhpcyBpcyBhIGJ1ZyBpbiBsbHZtIHRoYXQgbmVlZHMgdG8gYmUgZml4ZWQgYmVmb3JlIHN3 aXRjaGluZyB0byB1c2UKPiB0aGUgYWx0ZXJuYXRpdmUgYXNzZW1ibHkgbWFjcm9zIGluIGlubGlu ZSBhc3NlbWJseSBjYWxsIHNpdGVzLgo+IAo+IEZpeGVzOiA2N2QwMWNkYjUgKCJ4ODY6IGluZnJh c3RydWN0dXJlIHRvIGFsbG93IGNvbnZlcnRpbmcgY2VydGFpbiBpbmRpcmVjdCBjYWxscyB0byBk aXJlY3Qgb25lcyIpCj4gU2lnbmVkLW9mZi1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1 QGNpdHJpeC5jb20+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA==