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=-2.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no 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 3C094C3F2CD for ; Wed, 4 Mar 2020 15:07:48 +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 0A17E20848 for ; Wed, 4 Mar 2020 15:07:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0A17E20848 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 1j9VcW-0000AT-DR; Wed, 04 Mar 2020 15:07:36 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1j9VcV-0000AL-9S for xen-devel@lists.xenproject.org; Wed, 04 Mar 2020 15:07:35 +0000 X-Inumbo-ID: e05abc80-5e29-11ea-b52f-bc764e2007e4 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id e05abc80-5e29-11ea-b52f-bc764e2007e4; Wed, 04 Mar 2020 15:07:34 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 25488B042; Wed, 4 Mar 2020 15:07:33 +0000 (UTC) To: Jan Beulich References: <20200226124705.29212-1-jgross@suse.com> <20200226124705.29212-10-jgross@suse.com> <61640156-0e35-6808-829a-2eb8accbfb94@suse.com> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Message-ID: <1a6e1c6c-7e88-3396-885b-62371bb24db4@suse.com> Date: Wed, 4 Mar 2020 16:07:31 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <61640156-0e35-6808-829a-2eb8accbfb94@suse.com> Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v6 09/12] xen: add runtime parameter access support to hypfs 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: Kevin Tian , Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Jackson , George Dunlap , Jun Nakajima , xen-devel@lists.xenproject.org, Volodymyr Babchuk , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gMDQuMDMuMjAgMTI6MzIsIEphbiBCZXVsaWNoIHdyb3RlOgo+IE9uIDI2LjAyLjIwMjAgMTM6 NDcsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6Cj4+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Zt Y3MuYwo+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMKPj4gQEAgLTcwLDYgKzcw LDMwIEBAIGludGVnZXJfcGFyYW0oInBsZV93aW5kb3ciLCBwbGVfd2luZG93KTsKPj4gICBzdGF0 aWMgYm9vbCBfX3JlYWRfbW9zdGx5IG9wdF9lcHRfcG1sID0gdHJ1ZTsKPj4gICBzdGF0aWMgczgg X19yZWFkX21vc3RseSBvcHRfZXB0X2FkID0gLTE7Cj4+ICAgaW50OF90IF9fcmVhZF9tb3N0bHkg b3B0X2VwdF9leGVjX3NwID0gLTE7Cj4+ICtzdGF0aWMgY2hhciBvcHRfZXB0X3NldHRpbmdbMTZd Owo+IAo+IEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyBxdWl0ZSBiaWcgZW5vdWdoLgoKWWVzLCB5b3Ug YXJlIHJpZ2h0LgoKPiAKPj4gK3N0YXRpYyB2b2lkIHVwZGF0ZV9lcHRfcGFyYW1fYXBwZW5kKGNv bnN0IGNoYXIgKnN0ciwgaW50IHZhbCkKPj4gK3sKPj4gKyAgICBjaGFyICpwb3MgPSBvcHRfZXB0 X3NldHRpbmcgKyBzdHJsZW4ob3B0X2VwdF9zZXR0aW5nKTsKPj4gKwo+PiArICAgIHNucHJpbnRm KHBvcywgc2l6ZW9mKG9wdF9lcHRfc2V0dGluZykgLSAocG9zIC0gb3B0X2VwdF9zZXR0aW5nKSwK Pj4gKyAgICAgICAgICAgICAiLCVzPSVkIiwgc3RyLCB2YWwpOwo+PiArfQo+PiArCj4+ICtzdGF0 aWMgdm9pZCB1cGRhdGVfZXB0X3BhcmFtKHZvaWQpCj4+ICt7Cj4+ICsgICAgc25wcmludGYob3B0 X2VwdF9zZXR0aW5nLCBzaXplb2Yob3B0X2VwdF9zZXR0aW5nKSwgInBtbD0lZCIsIG9wdF9lcHRf cG1sKTsKPj4gKyAgICBpZiAoIG9wdF9lcHRfYWQgPj0gMCApCj4+ICsgICAgICAgIHVwZGF0ZV9l cHRfcGFyYW1fYXBwZW5kKCJhZCIsIG9wdF9lcHRfYWQpOwo+IAo+IFRoaXMgd29uJ3QgY29ycmVj dGx5IHJlZmxlY3QgcmVhbGl0eTogSWYgeW91IGxvb2sgYXQKPiB2bXhfaW5pdF92bWNzX2NvbmZp ZygpLCBldmVuIGEgbmVnYXRpdmUgdmFsdWUgbWVhbnMgInRydWUiIGhlcmUsCj4gdW5sZXNzIG9u IGEgc3BlY2lmaWMgQXRvbSBtb2RlbC4gSSB0aGluayBpbml0X2VwdF9wYXJhbSgpIHdhbnRzCj4g dG8gaGF2ZSB0aGF0IGVycmF0dW0gd29ya2Fyb3VuZCBsb2dpYyBtb3ZlZCB0aGVyZSwgc3VjaCB0 aGF0Cj4geW91IGNhbiB0aGVuIGFzc21lIHRoZSB2YWx1ZSB0byBiZSBub24tbmVnYXRpdmUgaGVy ZS4KCkJ1dCBpc24ndCBub3QgbWVudGlvbmluZyBpdCBpbiB0aGUgLTEgY2FzZSBjb3JyZWN0PyAt MSBtZWFuczogZG8gdGhlCmNvcnJlY3QgdGhpbmcgb24gdGhlIGN1cnJlbnQgaGFyZHdhcmUuCgpJ biBjYXNlIHdlIHdhbnQgdG8gcmVwb3J0IGFuIGV4cGxpY2l0IHZhbHVlIGZvciAiYWQiIHdlIHNo b3VsZCBhZGQgYQpub2RlIGZvciB0aGF0IHB1cnBvc2UuCgo+PiArICAgIGlmICggb3B0X2VwdF9l eGVjX3NwID49IDAgKQo+PiArICAgICAgICB1cGRhdGVfZXB0X3BhcmFtX2FwcGVuZCgiZXhlYy1z cCIsIG9wdF9lcHRfZXhlY19zcCk7Cj4gCj4gSSBhZ3JlZSBmb3IgdGhpcyBvbmUgLSBpZiB0aGUg dmFsdWUgaXMgc3RpbGwgLTEsIGl0IGhhcyBuZWl0aGVyCj4gYmVlbiBzZXQgbm9yIGlzIGl0cyB2 YWx1ZSBvZiBhbnkgaW50ZXJlc3QuCj4gCj4+ICtzdGF0aWMgdm9pZCBfX2luaXQgaW5pdF9lcHRf cGFyYW0oc3RydWN0IHBhcmFtX2h5cGZzICpwYXIpCj4+ICt7Cj4+ICsgICAgY3VzdG9tX3J1bnRp bWVfc2V0X3ZhcihwYXIsIG9wdF9lcHRfc2V0dGluZyk7Cj4+ICsgICAgdXBkYXRlX2VwdF9wYXJh bSgpOwo+PiArfQo+PiAgIAo+PiAgIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX2VwdF9wYXJhbShj b25zdCBjaGFyICpzKQo+PiAgIHsKPj4gQEAgLTkzLDYgKzExNyw4IEBAIHN0YXRpYyBpbnQgX19p bml0IHBhcnNlX2VwdF9wYXJhbShjb25zdCBjaGFyICpzKQo+PiAgICAgICAgICAgcyA9IHNzICsg MTsKPj4gICAgICAgfSB3aGlsZSAoICpzcyApOwo+PiAgIAo+PiArICAgIHVwZGF0ZV9lcHRfcGFy YW0oKTsKPiAKPiBJc24ndCB0aGlzIHJlZHVuZGFudCB3aXRoIHRoZSB1c2UgaW4gaW5pdF9lcHRf cGFyYW0oKSAob3IgdGhlCj4gb3RoZXIgd2F5IGFyb3VuZCAtIHRoZXJlIHNob3VsZCBiZSBjbGVh ciBvcmRlcmluZyBiZXR3ZWVuIHRoZQo+IGNvbW1hbmQgbGluZSBwYXJzaW5nIGZ1bmN0aW9ucyBh bmQgdGhlIHBhcmFtLWluaXQgb25lcywgSSB3b3VsZAo+IHN1cHBvc2UpPwoKWW91IGFyZSByaWdo dC4gSSBjYW4gZHJvcCB0aGlzIGNhbGwsIGFzIHRoZSBwYXJhbS1pbml0IGNhbGwgd2lsbApjb21l IGxhdGVyLgoKPiAKPj4gLS0tIGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCj4+ICsrKyBiL3hl bi9hcmNoL3g4Ni9wdi9kb21haW4uYwo+PiBAQCAtMjAsOCArMjAsMjcgQEAgc3RhdGljIF9fcmVh ZF9tb3N0bHkgZW51bSB7Cj4+ICAgICAgIFBDSURfT0ZGLAo+PiAgICAgICBQQ0lEX0FMTCwKPj4g ICAgICAgUENJRF9YUFRJLAo+PiAtICAgIFBDSURfTk9YUFRJCj4+ICsgICAgUENJRF9OT1hQVEks Cj4+ICsgICAgUENJRF9FTkQKPj4gICB9IG9wdF9wY2lkID0gUENJRF9YUFRJOwo+PiArc3RhdGlj IGNvbnN0IGNoYXIgKm9wdF9wY2lkXzJfc3RyaW5nW1BDSURfRU5EXSA9IHsKPiAKPiBZb3UgZWl0 aGVyIHdhbnQgYW5vdGhlciBjb25zdCBoZXJlLCBvciAobW9yZSBzcGFjZSBlZmZpY2llbnQpIHlv dQo+IHdhbnQgdG8gdXNlIGNvbnN0IGNoYXJbUENJRF9FTkRdWzddLgoKQWgsIHJpZ2h0LCBnb29k IGlkZWEuCgo+IAo+PiArICAgIFtQQ0lEX09GRl0gPSAib2ZmIiwKPj4gKyAgICBbUENJRF9BTExd ID0gIm9uIiwKPj4gKyAgICBbUENJRF9YUFRJXSA9ICJ4cHRpIiwKPj4gKyAgICBbUENJRF9OT1hQ VEldID0gIm5veHB0aSIKPj4gK307Cj4+ICtzdGF0aWMgY2hhciBvcHRfcGNpZF92YWxbN107Cj4+ ICsKPj4gK3N0YXRpYyB2b2lkIHVwZGF0ZV9vcHRfcGNpZCh2b2lkKQo+PiArewo+PiArICAgIHN0 cmxjcHkob3B0X3BjaWRfdmFsLCBvcHRfcGNpZF8yX3N0cmluZ1tvcHRfcGNpZF0sIHNpemVvZihv cHRfcGNpZF92YWwpKTsKPiAKPiBJbnN0ZWFkIG9mIGNvcHlpbmcsIGNvdWxkbid0IHlvdSBtYWtl IHRoZSBoeXBmcyBlbnRyeSBwb2ludAo+IGludG8gdGhlIGFycmF5IGFib3ZlLCBieSB1c2luZyBj dXN0b21fcnVudGltZV9zZXRfdmFyKCkgaGVyZT8KCkhtbSwgcHJvYmFibHkgeWVzLgoKPiAKPj4g QEAgLTU1LDkgKzc0LDEyIEBAIHN0YXRpYyBpbnQgcGFyc2VfcGNpZChjb25zdCBjaGFyICpzKQo+ PiAgICAgICAgICAgYnJlYWs7Cj4+ICAgICAgIH0KPj4gICAKPj4gKyAgICBpZiAoICFyYyApCj4+ ICsgICAgICAgIHVwZGF0ZV9vcHRfcGNpZCgpOwo+IAo+IFBlcnNvbmFsbHkgSSdkIGF2b2lkIHRo ZSBpZigpIGhlcmUgLSB0aGVyZSdzIG5vIGhhcm0gdXBkYXRpbmcKPiB0aGUgaHlwZnMgZW50cnkg YW55d2F5LgoKT2theS4KCj4gCj4+IC0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwo+PiAr KysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKPj4gQEAgLTg1LDggKzg1LDEwIEBAIHN0cnVj dCBncmFudF90YWJsZSB7Cj4+ICAgICAgIHN0cnVjdCBncmFudF90YWJsZV9hcmNoIGFyY2g7Cj4+ ICAgfTsKPj4gICAKPj4gLXN0YXRpYyBpbnQgcGFyc2VfZ250dGFiX2xpbWl0KGNvbnN0IGNoYXIg KnBhcmFtLCBjb25zdCBjaGFyICphcmcsCj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgKnZhbHApCj4+ICsjZGVmaW5lIEdSQU5UX0NVU1RPTV9WQUxfU1ogIDEy Cj4+ICsKPj4gK3N0YXRpYyBpbnQgcGFyc2VfZ250dGFiX2xpbWl0KGNvbnN0IGNoYXIgKmFyZywg dW5zaWduZWQgaW50ICp2YWxwLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh ciAqcGFydmFsKQo+PiAgIHsKPj4gICAgICAgY29uc3QgY2hhciAqZTsKPj4gICAgICAgdW5zaWdu ZWQgbG9uZyB2YWw7Cj4+IEBAIC05OSwyOCArMTAxLDQ3IEBAIHN0YXRpYyBpbnQgcGFyc2VfZ250 dGFiX2xpbWl0KGNvbnN0IGNoYXIgKnBhcmFtLCBjb25zdCBjaGFyICphcmcsCj4+ICAgICAgICAg ICByZXR1cm4gLUVSQU5HRTsKPj4gICAKPj4gICAgICAgKnZhbHAgPSB2YWw7Cj4+ICsgICAgc25w cmludGYocGFydmFsLCBHUkFOVF9DVVNUT01fVkFMX1NaLCAiJWx1IiwgdmFsKTsKPj4gICAKPj4g ICAgICAgcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIAo+PiAgIHVuc2lnbmVkIGludCBfX3JlYWRfbW9z dGx5IG9wdF9tYXhfZ3JhbnRfZnJhbWVzID0gNjQ7Cj4+ICtzdGF0aWMgY2hhciBfX3JlYWRfbW9z dGx5IG9wdF9tYXhfZ3JhbnRfZnJhbWVzX3ZhbFtHUkFOVF9DVVNUT01fVkFMX1NaXTsKPj4gKwo+ PiArc3RhdGljIHZvaWQgX19pbml0IGdudHRhYl9tYXhfZnJhbWVzX2luaXQoc3RydWN0IHBhcmFt X2h5cGZzICpwYXIpCj4+ICt7Cj4+ICsgICAgY3VzdG9tX3J1bnRpbWVfc2V0X3ZhcihwYXIsIG9w dF9tYXhfZ3JhbnRfZnJhbWVzX3ZhbCk7Cj4gCj4gWW91IHN0aWxsIHVzZSBhIGN1c3RvbSBzdHJp bmcgYnVmZmVyIGhlcmUuIENhbiB0aGlzICJzZXQtdmFyIgo+IG9wZXJhdGlvbiByZWNvcmQgdGhh dCB0aGUgdmFyaWFibGUgKGZvciBwcmVzZW50YXRpb24gcHVycG9zZXMpCj4gaXMgc2ltcGx5IG9m IFVJTlQgdHlwZSwgaGFuZGluZyBhIHBvaW50ZXIgdG8gdGhlIGFjdHVhbAo+IHZhcmlhYmxlPwoK Tm8sIHRoaXMgd291bGQgcmVzdWx0IGluIHRoZSBuZWVkIHRvIHNldCBhIGN1c3RvbSBwYXJhbWV0 ZXIgdmlhIGEKYmluYXJ5IHZhbHVlIHBhc3NlZCBpbiBmcm9tIHVzZXIgbGFuZC4gU28gSSdkIG5l ZWQgdG8gY29udmVydCB0aGlzCmJpbmFyeSBpbnRvIGEgc3RyaW5nIHRvIGJlIHBhcnNlYWJsZSBi eSB0aGUgY3VzdG9tIGZ1bmN0aW9uLgoKPiAKPj4gLS0tIGEveGVuL2NvbW1vbi9oeXBmcy5jCj4+ ICsrKyBiL3hlbi9jb21tb24vaHlwZnMuYwo+PiBAQCAtMTAsNiArMTAsNyBAQAo+PiAgICNpbmNs dWRlIDx4ZW4vaHlwZXJjYWxsLmg+Cj4+ICAgI2luY2x1ZGUgPHhlbi9oeXBmcy5oPgo+PiAgICNp bmNsdWRlIDx4ZW4vbGliLmg+Cj4+ICsjaW5jbHVkZSA8eGVuL3BhcmFtLmg+Cj4+ICAgI2luY2x1 ZGUgPHhlbi9yd2xvY2suaD4KPj4gICAjaW5jbHVkZSA8cHVibGljL2h5cGZzLmg+Cj4+ICAgCj4+ IEBAIC0yODEsNiArMjgyLDMzIEBAIGludCBoeXBmc193cml0ZV9ib29sKHN0cnVjdCBoeXBmc19l bnRyeV9sZWFmICpsZWFmLAo+PiAgICAgICByZXR1cm4gMDsKPj4gICB9Cj4+ICAgCj4+ICtpbnQg aHlwZnNfd3JpdGVfY3VzdG9tKHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmICpsZWFmLAo+PiArICAg ICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIHVhZGRyLCB1 bnNpZ25lZCBsb25nIHVsZW4pCj4+ICt7Cj4+ICsgICAgc3RydWN0IHBhcmFtX2h5cGZzICpwOwo+ PiArICAgIGNoYXIgKmJ1ZjsKPj4gKyAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgYnVmID0geHph bGxvY19hcnJheShjaGFyLCB1bGVuKTsKPj4gKyAgICBpZiAoICFidWYgKQo+PiArICAgICAgICBy ZXR1cm4gLUVOT01FTTsKPj4gKwo+PiArICAgIHJldCA9IC1FRkFVTFQ7Cj4+ICsgICAgaWYgKCBj b3B5X2Zyb21fZ3Vlc3QoYnVmLCB1YWRkciwgdWxlbikgKQo+PiArICAgICAgICBnb3RvIG91dDsK Pj4gKwo+PiArICAgIHJldCA9IC1FRE9NOwo+PiArICAgIGlmICggIW1lbWNocihidWYsIDAsIHVs ZW4pICkKPiAKPiBPbmNlIGFnYWluICIgIT0gYnVmICsgdWxlbiAtIDEiPyAoRURPTSBhbHNvIGxv b2tzIGxpa2UgYW4gb2RkCj4gZXJyb3IgY29kZSB0byB1c2UgaW4gdGhpcyBjYXNlLCBidXQgSSBn dWVzcyB0aGVyZSdzIG5vIHJlYWxseQo+IGdvb2Qgb25lLikKCiIgIT0gYnVmICsgdWxlbiAtIDEi IGlzIGEgbG9naWNhbCBjaG9pY2Ugd2l0aCB0aGUgY2hhbmdlIG9mIHBhdGNoIDQuCgo+IAo+PiAt LS0gYS94ZW4vZHJpdmVycy9jaGFyL2NvbnNvbGUuYwo+PiArKysgYi94ZW4vZHJpdmVycy9jaGFy L2NvbnNvbGUuYwo+PiBAQCAtNzUsMTIgKzc1LDM2IEBAIGVudW0gY29uX3RpbWVzdGFtcF9tb2Rl Cj4+ICAgICAgIFRTTV9EQVRFX01TLCAgICAgICAvKiBbWVlZWS1NTS1ERCBISDpNTTpTUy5tbW1d ICovCj4+ICAgICAgIFRTTV9CT09ULCAgICAgICAgICAvKiBbU1NTU1NTLnV1dXV1dV0gKi8KPj4g ICAgICAgVFNNX1JBVywgICAgICAgICAgIC8qIFtYWFhYWFhYWFhYWFhYWFhYXSAqLwo+PiArICAg IFRTTV9FTkQKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyBjb25zdCBjaGFyICpjb25fdGltZXN0YW1w X21vZGVfMl9zdHJpbmdbVFNNX0VORF0gPSB7Cj4+ICsgICAgW1RTTV9OT05FXSA9ICJub25lIiwK Pj4gKyAgICBbVFNNX0RBVEVdID0gImRhdGUiLAo+PiArICAgIFtUU01fREFURV9NU10gPSAiZGF0 ZW1zIiwKPj4gKyAgICBbVFNNX0JPT1RdID0gImJvb3QiLAo+PiArICAgIFtUU01fUkFXXSA9ICJy YXciCj4+ICAgfTsKPj4gICAKPj4gICBzdGF0aWMgZW51bSBjb25fdGltZXN0YW1wX21vZGUgX19y ZWFkX21vc3RseSBvcHRfY29uX3RpbWVzdGFtcF9tb2RlID0gVFNNX05PTkU7Cj4+ICtzdGF0aWMg Y2hhciBjb25fdGltZXN0YW1wX21vZGVfdmFsWzddOwo+PiArCj4+ICtzdGF0aWMgdm9pZCB1cGRh dGVfY29uX3RpbWVzdGFtcF9tb2RlKHZvaWQpCj4+ICt7Cj4+ICsgICAgc3RybGNweShjb25fdGlt ZXN0YW1wX21vZGVfdmFsLAo+PiArICAgICAgICAgICAgY29uX3RpbWVzdGFtcF9tb2RlXzJfc3Ry aW5nW29wdF9jb25fdGltZXN0YW1wX21vZGVdLAo+PiArICAgICAgICAgICAgc2l6ZW9mKGNvbl90 aW1lc3RhbXBfbW9kZV92YWwpKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgX19pbml0IGNv bl90aW1lc3RhbXBfbW9kZV9pbml0KHN0cnVjdCBwYXJhbV9oeXBmcyAqcGFyKQo+PiArewo+PiAr ICAgIGN1c3RvbV9ydW50aW1lX3NldF92YXIocGFyLCBjb25fdGltZXN0YW1wX21vZGVfdmFsKTsK Pj4gKyAgICB1cGRhdGVfY29uX3RpbWVzdGFtcF9tb2RlKCk7Cj4+ICt9Cj4+ICAgCj4+ICAgc3Rh dGljIGludCBwYXJzZV9jb25zb2xlX3RpbWVzdGFtcHMoY29uc3QgY2hhciAqcyk7Cj4+IC1jdXN0 b21fcnVudGltZV9wYXJhbSgiY29uc29sZV90aW1lc3RhbXBzIiwgcGFyc2VfY29uc29sZV90aW1l c3RhbXBzKTsKPj4gK2N1c3RvbV9ydW50aW1lX3BhcmFtKCJjb25zb2xlX3RpbWVzdGFtcHMiLCBw YXJzZV9jb25zb2xlX3RpbWVzdGFtcHMsCj4+ICsgICAgICAgICAgICAgICAgICAgICBjb25fdGlt ZXN0YW1wX21vZGVfaW5pdCk7Cj4gCj4gU2FtZSByZW1hcmsgYXMgZm9yIHRoZSBQQ0lEIG9wdGlv biwgYW5kIHRoZW4gYWxzbyBmb3IgdGhlIGxvZyBsZXZlbAo+IG9uZXMgZnVydGhlciBkb3duLiBN eSBtYWluIGNvbmNlcm4gd2l0aCBob3cgdGhpbmdzIGFyZSBjdXJyZW50bHkgaXMKPiB0aGF0IHRo ZSBhbW91bnQgb2YgbG9naWMgbmVlZGVkIGZvciBjdXN0b20gcGFyYW1zIHNlZW1zIG92ZXJseQo+ IGxhcmdlLgo+IAo+PiBAQCAtNzksNDEgKzg4LDk0IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qga2Vy bmVsX3BhcmFtIF9fcGFyYW1fc3RhcnRbXSwgX19wYXJhbV9lbmRbXTsKPj4gICAgICAgICAgICAg LnR5cGUgPSBPUFRfSUdOT1JFIH0KPj4gICAKPj4gICAjZGVmaW5lIF9fcnRwYXJhbSAgICAgICAg IF9fcGFyYW0oX19kYXRhcGFyYW0pCj4+ICsjZGVmaW5lIF9fcGFyYW1mcyAgICAgICAgIHN0YXRp YyBfX3BhcmFtaHlwZnMgXAo+PiArICAgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKHNpemVv Zih2b2lkICopKSkpIHN0cnVjdCBwYXJhbV9oeXBmcwo+PiAgIAo+PiAtI2RlZmluZSBjdXN0b21f cnVudGltZV9vbmx5X3BhcmFtKF9uYW1lLCBfdmFyKSBcCj4+ICsjZGVmaW5lIGN1c3RvbV9ydW50 aW1lX3NldF92YXIocGFyZnMsIHZhcikgXAo+PiArICAgIHsgXAo+PiArICAgICAgICAocGFyZnMp LT5oeXBmcy53cml0ZV9wdHIgPSAmKHZhcik7IFwKPj4gKyAgICAgICAgKHBhcmZzKS0+aHlwZnMu ZS5zaXplID0gc2l6ZW9mKHZhcik7IFwKPiAKPiBBbGwgdXNlcnMgb2YgdGhpcyB1c2UgY2hhcltd LiBXaHkgc2l6ZW9mKCkgcmF0aGVyIHRoYW4gc3RybGVuKCksCgpUaGF0IGlzIHRoZSBtYXhpbXVt IHN0cmluZyBsZW5ndGguIE90aGVyd2lzZSBJIHdvdWxkbid0IGtub3cgSSBhbQphbGxvd2VkIHRv IHJlcGxhY2UgZS5nLiAib24iIGJ5ICJub3hwdGkiLgoKPiBhbmQgd2h5IHRha2luZyB0aGUgYWRk cmVzcyBpbnN0ZWFkIG9mIGVuZm9yY2luZyB0aGlzIHRvIGJlIG9mCj4gKGF0IGxlYXN0KSBhcnJh eSAocG90ZW50aWFsbHkgYWxzbyAib2YgY2hhciIpIHR5cGU/IERvIHlvdQo+IGVudmlzaW9uIHRo aXMgdG8gYmUgbmVlZGVkIGZvciBhbnl0aGluZyB3aGVyZSB0aGUgdmFsdWUgaXNuJ3QKPiBpbiBz dHJpbmcgZm9ybSwgYnV0IHN0aWxsIG5lZWRzIGR5bmFtaWNhbGx5IGNhbGN1bGF0aW5nPyAoQXMg cGVyCj4gYWJvdmUgdGhlcmUgbWF5IGFscmVhZHkgYmUgY2FzZXMgd2hlcmUgbm9uLXN0cmluZyB2 YXJpYWJsZXMgbWF5Cj4gd2FudCBwYXNzaW5nIGludG8gaGVyZS4pCgpBaCwgdGhpcyBpcyBhIGxl ZnRvdmVyIGZyb20gdGhlIGZhaWxlZCBleHBlcmltZW50IHRvIGFsbG93IG90aGVyCnR5cGVzIHRo YW4gc3RyaW5ncy4gSSdsbCBjaGFuZ2UgaXQgYWNjb3JkaW5nbHkuCgoKSnVlcmdlbgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==