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 4F436C2D0B1 for ; Tue, 4 Feb 2020 08:49:07 +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 2067C2084E for ; Tue, 4 Feb 2020 08:49:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2067C2084E 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 1iytt0-00056x-H3; Tue, 04 Feb 2020 08:48:46 +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 1iytsy-00056s-Ln for xen-devel@lists.xenproject.org; Tue, 04 Feb 2020 08:48:44 +0000 X-Inumbo-ID: 24af4f6b-472b-11ea-8eee-12813bfff9fa Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 24af4f6b-472b-11ea-8eee-12813bfff9fa; Tue, 04 Feb 2020 08:48:41 +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 3DF62AD0F; Tue, 4 Feb 2020 08:48:40 +0000 (UTC) To: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= References: <20200121084330.18309-1-jgross@suse.com> <20200121084330.18309-5-jgross@suse.com> <05b9770e-1554-1f71-3757-4feb9c1fa247@suse.com> From: Jan Beulich Message-ID: <2ecc4058-a350-d67b-f860-0b2bf26ee5ca@suse.com> Date: Tue, 4 Feb 2020 09:48:46 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v3 4/9] xen: add basic hypervisor filesystem support 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: Stefano Stabellini , Julien Grall , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , xen-devel@lists.xenproject.org, Volodymyr Babchuk , =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gMDQuMDIuMjAyMCAwNzo0MywgSsO8cmdlbiBHcm/DnyB3cm90ZToKPiBPbiAwMy4wMi4yMCAx NjowNywgSmFuIEJldWxpY2ggd3JvdGU6Cj4+IE9uIDIxLjAxLjIwMjAgMDk6NDMsIEp1ZXJnZW4g R3Jvc3Mgd3JvdGU6Cj4+PiArc3RhdGljIGludCBoeXBmc19yZWFkKGNvbnN0IHN0cnVjdCBoeXBm c19lbnRyeSAqZW50cnksCj4+PiArICAgICAgICAgICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0odm9pZCkgdWFkZHIsIHVuc2lnbmVkIGxvbmcgdWxlbikKPj4+ICt7Cj4+PiArICAg IHN0cnVjdCB4ZW5faHlwZnNfZGlyZW50cnkgZTsKPj4+ICsgICAgbG9uZyByZXQgPSAtRUlOVkFM Owo+Pj4gKwo+Pj4gKyAgICBpZiAoIHVsZW4gPCBzaXplb2YoZSkgKQo+Pj4gKyAgICAgICAgZ290 byBvdXQ7Cj4+PiArCj4+PiArICAgIGUuZmxhZ3MgPSBlbnRyeS0+d3JpdGUgPyBYRU5fSFlQRlNf V1JJVEVBQkxFIDogMDsKPj4+ICsgICAgZS50eXBlID0gZW50cnktPnR5cGU7Cj4+PiArICAgIGUu ZW5jb2RpbmcgPSBlbnRyeS0+ZW5jb2Rpbmc7Cj4+PiArICAgIGUuY29udGVudF9sZW4gPSBlbnRy eS0+c2l6ZTsKPj4+ICsKPj4+ICsgICAgcmV0ID0gLUVGQVVMVDsKPj4+ICsgICAgaWYgKCBjb3B5 X3RvX2d1ZXN0KHVhZGRyLCAmZSwgMSkgKQo+Pj4gKyAgICAgICAgZ290byBvdXQ7Cj4+PiArCj4+ PiArICAgIHJldCA9IDA7Cj4+PiArICAgIGlmICggdWxlbiA8IGVudHJ5LT5zaXplICsgc2l6ZW9m KGUpICkKPj4+ICsgICAgICAgIGdvdG8gb3V0Owo+Pgo+PiBTbyB5b3UgcmV0dXJuICJzdWNjZXNz IiBldmVuIGlmIHRoZSBvcGVyYXRpb24gZGlkbid0IGNvbXBsZXRlCj4+IHN1Y2Nlc3NmdWxseS4g VGhpcyBpc24ndCB2ZXJ5IG5pY2UsIHBsdXMgLi4uCj4gCj4gVGhlIGRpcmVudHJ5IGNvbnRhaW5z IHRoZSBuZWVkZWQgc2l6ZS4gVGhlIGNhbGxlciBzaG91bGQga25vdyB0aGUKPiBzaXplIGhlIHBh c3NlZCB0byBYZW4uCj4gCj4+Cj4+PiArICAgIGd1ZXN0X2hhbmRsZV9hZGRfb2Zmc2V0KHVhZGRy LCBzaXplb2YoZSkpOwo+Pj4gKwo+Pj4gKyAgICByZXQgPSBlbnRyeS0+cmVhZChlbnRyeSwgdWFk ZHIpOwo+Pgo+PiAuLi4gaG93IGlzIHRoZSBjYWxsZXIgdG8ga25vdyB3aGV0aGVyIGRpcmVudHJ5 IHdhcyBhdCBsZWFzdAo+PiBjb3BpZWQgaWYgdGhpcyB0aGVuIGZhaWxzPwo+IAo+IElzIHRoaXMg cmVhbGx5IGltcG9ydGFudD8gTm9ybWFsbHkgLUVGQVVMVCBzaG91bGQganVzdCBub3QgaGFwcGVu LiBJbgo+IGNhc2UgaXQgZG9lcyBJIGRvbid0IHRoaW5rIHRoZSBjYWxsZXIgY2FuIG1ha2UgcmVh bCB1c2Ugb2YgdGhlIGRpcmVudHJ5LgoKIkltcG9ydGFudCIgaGFzIHZhcmlvdXMgcG9zc2libGUg bWVhbmluZ3MuIFRoZSBzdWNjZXNzL2ZhaWx1cmUKaW5kaWNhdGlvbiB0byB0aGUgY2FsbGVyIHNo b3VsZCBhdCBsZWFzdCBiZSByYXRpb25hbC4gIklmIHRoZQpkYXRhIGJ1ZmZlciB3YXMgbm90IGxh cmdlIGVub3VnaCBmb3IgYWxsIHRoZSBkYXRhIG5vIGVudHJ5IGRhdGEKaXMgcmV0dXJuZWQsIGJ1 dCB0aGUgZGlyZW50cnkgd2lsbCBjb250YWluIHRoZSBuZWVkZWQgc2l6ZSBmb3IKdGhlIHJldHVy bmVkIGRhdGEiIGlzIGZpbmUgdG8gYmUgc3RhdGVkIGluIHRoZSBwdWJsaWMgaGVhZGVyLApidXQg SSB0aGluayB0aGlzIHdhbnRzIHRvIGJlIC1FTk9CVUZTIHRoZW4sIG5vdCAwIChzdWNjZXNzKS4K Cj4+IEFueXdheSwgdGhpcyBhbmQgLi4uCj4+Cj4+PiArIG91dDoKPj4+ICsgICAgeGZyZWUoYnVm KTsKPj4+ICsgICAgcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArCj4+PiAraW50IGh5cGZzX3dyaXRl X2Jvb2woc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsCj4+PiArICAgICAgICAgICAgICAg ICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSB1YWRkciwgdW5zaWduZWQgbG9uZyB1 bGVuKQo+Pj4gK3sKPj4KPj4gLi4uIHRoaXMgZnVuY3Rpb24gYXJlbid0IHZlcnkgaGVscGZ1bCB0 byByZXZpZXcgd2l0aG91dCB0aGVyZQo+PiBiZWluZyBhIGNhbGxlci4gQ291bGQgdGhlc2UgYmUg aW50cm9kdWNlZCBhdCB0aGUgdGltZSBhIGZpcnN0Cj4+IGNhbGxlciBhcHBlYXJzPwo+IAo+IE9m IGNvdXJzZS4gUXVlc3Rpb24gaXMgd2hlcmUgdG8gc3RvcC4gSSB3YW50ZWQgdG8gaGF2ZSB0aGUg YmFzaWMgaHlwZnMKPiBzdXBwb3J0IGluIG9uZSBwYXRjaC4gQXJlIHlvdSBmaW5lIHdpdGgganVz dCB0aG9zZSB0d28gZnVuY3Rpb25zIGJlaW5nCj4gbW92ZWQgdG8gdGhlIHJ1bnRpbWUgcGFyYW1l dGVyIHBhdGNoPwoKTGV0IG1lIHB1dCBpdCB0aGlzIHdheTogRm9yIGFueXRoaW5nIHRoZSBwYXRj aCBhZGRzIGJ1dCB0aGVyZSdzCm5vIHVzYWdlIGF0IGFsbCAoaS5lLiBub3QgZXZlbiBpbiBhIG1h Y3JvLCB3aGVyZSBhdCBsZWFzdCB0aGUKdXNhZ2UgaW50ZW50aW9ucyBnZXQgc3VmZmljaWVudGx5 IGNsYXJpZmllZCksIHRoZSBkZXNjcmlwdGlvbgpzaG91bGQgY292ZXIgZm9yIHRoaXMgbGFjayBv ZiBzdWZmaWNpZW50IGNvbnRleHQuIFRoZXJlZm9yZSBJJ2QKYWxzbyBiZSBmaW5lIHdpdGggdGhl IHR3byBmdW5jdGlvbnMgcmVtYWluaW5nIGhlcmUsIGFzIGxvbmcgYXMKcmVhZGVycyAocmV2aWV3 ZXJzKSBjYW4gdW5kZXJzdGFuZCB0aGUgaW50ZW50aW9ucy4gSXQgbWlnaHQKc3RpbGwgYmUgX2Vh c2llcl8gZm9yIGV2ZXJ5b25lIHRvIGhhdmUgdGhlbSBpbiBhIGxhdGVyIHBhdGNoLgpCdXQgdGhl biB0aGUgc2FtZSBzdGlsbCBnb2VzIGZvciBvdGhlciBmdW5jdGlvbnMgdGhhdCBoYXZlIG5vCnVz ZXJzIGhlcmUuIChUaGUgaGVscGVyIG1hY3JvcyBIWVBGU18qX0lOSVQoKSwgb3RvaCwgYXJlIGNs ZWFyCmVub3VnaCB0aGUgd2F5IHRoZXkgYXJlIGltbywgYW5kIGhlbmNlIGFyZSBmaW5lIHRvIHJl bWFpbiwgcGx1cwp0aGV5IHNlcnZlIGFzIHVzYWdlIGV4cGxhbmF0aW9uIGZvciBoeXBmc19yZWFk X3tsZWFmLGRpcn0oKSwKd2hpY2ggYXMgaXQgbG9va3Mgd291bGQgb3RoZXJ3aXNlIHRvbyBiZSBv cnBoYW5lZC4pCgo+Pj4gKyAgICB1bmlvbiB7Cj4+PiArICAgICAgICBjaGFyIGJ1Zls4XTsKPj4+ ICsgICAgICAgIHVpbnQ4X3QgdTg7Cj4+PiArICAgICAgICB1aW50MTZfdCB1MTY7Cj4+PiArICAg ICAgICB1aW50MzJfdCB1MzI7Cj4+PiArICAgICAgICB1aW50NjRfdCB1NjQ7Cj4+PiArICAgIH0g dTsKPj4+ICsKPj4+ICsgICAgQVNTRVJUKGxlYWYtPmUudHlwZSA9PSBYRU5fSFlQRlNfVFlQRV9V SU5UICYmIGxlYWYtPmUuc2l6ZSA8PSA4KTsKPj4+ICsKPj4+ICsgICAgaWYgKCB1bGVuICE9IGxl YWYtPmUuc2l6ZSApCj4+PiArICAgICAgICByZXR1cm4gLUVET007Cj4+Cj4+IElzIHRoaXMgcmVz dHJpY3Rpb24gcmVhbGx5IG5lY2Vzc2FyeT8gU2V0dGluZyBlLmcuIGEgNC1ieXRlCj4+IGZpZWxk IGZyb20gMS1ieXRlIGlucHV0IGlzIG5vIHByb2JsZW0gYXQgYWxsLiBUaGlzIGJlaW5nIGZvcgo+ PiBib29sZWFucyBJIGFueXdheSB3b25kZXIgd2h5IGlucHV0IG1pZ2h0IGJlIGhlbHBmdWwgdG8g aGF2ZQo+PiBsYXJnZXIgdGhhbiBhIHNpbmdsZSBieXRlLiBCdXQgbWF5YmUgYWxsIG9mIHRoaXMg aXMgYWdhaW4gYQo+PiByZXN1bHQgb2Ygbm90IHNlZWluZyB3aGF0IGEgdXNlciBvZiB0aGUgZnVu Y3Rpb24gd291bGQgbG9vawo+PiBsaWtlLgo+IAo+IEkgd2FudGVkIHRvIGhhdmUgYXMgbGl0dGxl IGZ1bmN0aW9uYWxpdHkgYXMgcG9zc2libGUgaW4gdGhlIGh5cGVydmlzb3IuCj4gSXQgaXMgbm8g cHJvYmxlbSBmb3IgdGhlIGxpYnJhcnkgdG8gcGFzcyBhIHByb3Blcmx5IHNpemVkIGJ1ZmZlci4K PiAKPiBBbGxvd2luZyBsYXJnZXIgdmFyaWFibGVzIGZvciBib29sZWFucyBpcyBqdXN0IGEgY29u c2VxdWVuY2Ugb2YgdGhlCj4gaHlwZXJ2aXNvciBwYXJhbWV0ZXJzIGFsbG93aW5nIHRoYXQuCgpC dXQgdGhlIGNhbGxlciBzaG91bGRuJ3QgYmUgY29uY2VybmVkIG9mIHRoZSBoeXBlcnZpc29yCmlt cGxlbWVudGF0aW9uIGRldGFpbCBvZiB3aGF0IHRoZSBjaG9zZSB3aWR0aCBpcy4gT3ZlciB0aW1l IHdlCmUuZy4gY29udmVydCBpbnQgKGFsb25nIHdpdGggYm9vbF90KSB0byBib29sIHdoZW4gaXQn cyB1c2VkIGluCmEgYm9vbGVhbiB3YXkuIFRoaXMgc2hvdWxkIG5vdCByZXN1bHQgaW4gdGhlIGNh bGxlciBuZWVkaW5nIHRvCmNoYW5nZSwgZGVzcGl0ZSB0aGUgd2lkdGggY2hhbmdlIG9mIHRoZSB2 YXJpYWJsZS4KCj4+PiAtLS0gL2Rldi9udWxsCj4+PiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMv aHlwZnMuaAo+Pj4gQEAgLTAsMCArMSwxMjQgQEAKPj4+ICsvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Cj4+PiArICogWGVuIEh5cGVydmlzb3IgRmlsZXN5c3RlbQo+Pj4gKyAqCj4+PiArICogQ29weXJp Z2h0IChjKSAyMDE5LCBTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJtYW55IEdtYkgKPj4+ICsg Kgo+Pj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0 byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPj4+ICsgKiBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KPj4+ ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+Pj4gKyAqIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgo+Pj4gKyAq IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlIFNvZnR3YXJlIGlzCj4+PiArICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4+ICsgKgo+Pj4gKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVk IGluCj4+PiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m dHdhcmUuCj4+PiArICoKPj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwg V0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+Pj4gKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAo+Pj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+Pj4gKyAqIEFVVEhPUlMgT1IgQ09Q WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIK Pj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORwo+Pj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKPj4+ICsgKiBERUFMSU5H UyBJTiBUSEUgU09GVFdBUkUuCj4+PiArICoKPj4+ICsgKi8KPj4+ICsKPj4+ICsjaWZuZGVmIF9f WEVOX1BVQkxJQ19IWVBGU19IX18KPj4+ICsjZGVmaW5lIF9fWEVOX1BVQkxJQ19IWVBGU19IX18K Pj4+ICsKPj4+ICsjaW5jbHVkZSAieGVuLmgiCj4+PiArCj4+PiArLyoKPj4+ICsgKiBEZWZpbml0 aW9ucyBmb3IgdGhlIF9fSFlQRVJWSVNPUl9oeXBmc19vcCBoeXBlcmNhbGwuCj4+PiArICovCj4+ PiArCj4+PiArLyogSGlnaGVzdCB2ZXJzaW9uIG51bWJlciBvZiB0aGUgaHlwZnMgaW50ZXJmYWNl IGN1cnJlbnRseSBkZWZpbmVkLiAqLwo+Pj4gKyNkZWZpbmUgWEVOX0hZUEZTX1ZFUlNJT04gICAg ICAxCj4+Cj4+IEZvciB0aGlzIGFuZCB0aGUgYWNjb21wYW55aW5nIFhFTl9IWVBGU19PUF9nZXRf dmVyc2lvbiwgYXQgbGVhc3QKPj4gdGhlIGRvYyBhZGRlZCBieSBwYXRjaCAzIGNvdWxkIGFjdHVh bGx5IGRvIHdpdGggbWVudGlvbmluZyB0aGUKPj4gaW50ZW50aW9ucyB5b3UgaGF2ZSB3aXRoIHRo aXMuCj4gCj4gT2theS4KPiAKPj4KPj4+ICsvKiBNYXhpbXVtIGxlbmd0aCBvZiBhIHBhdGggaW4g dGhlIGZpbGVzeXN0ZW0uICovCj4+PiArI2RlZmluZSBYRU5fSFlQRlNfTUFYX1BBVEhMRU4gMTAy NAo+Pj4gKwo+Pj4gK3N0cnVjdCB4ZW5faHlwZnNfZGlyZW50cnkgewo+Pj4gKyAgICB1aW50MTZf dCBmbGFnczsKPj4+ICsjZGVmaW5lIFhFTl9IWVBGU19XUklURUFCTEUgICAgMHgwMDAxCj4+PiAr ICAgIHVpbnQ4X3QgdHlwZTsKPj4+ICsjZGVmaW5lIFhFTl9IWVBGU19UWVBFX0RJUiAgICAgMHgw MDAwCj4+PiArI2RlZmluZSBYRU5fSFlQRlNfVFlQRV9CTE9CICAgIDB4MDAwMQo+Pj4gKyNkZWZp bmUgWEVOX0hZUEZTX1RZUEVfU1RSSU5HICAweDAwMDIKPj4+ICsjZGVmaW5lIFhFTl9IWVBGU19U WVBFX1VJTlQgICAgMHgwMDAzCj4+PiArI2RlZmluZSBYRU5fSFlQRlNfVFlQRV9JTlQgICAgIDB4 MDAwNAo+Pj4gKyNkZWZpbmUgWEVOX0hZUEZTX1RZUEVfQk9PTCAgICAweDAwMDUKPj4+ICsgICAg dWludDhfdCBlbmNvZGluZzsKPj4+ICsjZGVmaW5lIFhFTl9IWVBGU19FTkNfUExBSU4gICAgMHgw MDAwCj4+PiArI2RlZmluZSBYRU5fSFlQRlNfRU5DX0daSVAgICAgIDB4MDAwMQo+Pgo+PiBNZWFu aW5nIEkgY2FuIGUuZy4gaGF2ZSBhIGd6aXAtZWQgc3RyaW5nIG9yIGJvb2wgKG9yIGV2ZW4gZGly KT8KPj4gSWYgdGhpcyBpcyBqdXN0IGZvciAiYmxvYiIsIHdoeSBoYXZlIHNlcGFyYXRlIGZpZWxk cyBpbnN0ZWFkIG9mCj4+IGUuZy4gQkxPQl9SQVcgYW5kIEJMT0JfR1pJUCBvciBzb21lIHN1Y2g/ Cj4gCj4gZ3ppcC1lZCBzdHJpbmcgb3IgYmxvYiBhcmUgdGhlIHByaW1hcnkgdGFyZ2V0cy4KPiAK PiBNYXliZSB3ZSB3YW50IHRvIGhhdmUgb3RoZXIgZW5jb2RpbmcgcyBsYXRlciAoQW5kcmV3IGFz a2VkIGZvciB0aGF0Cj4gcG9zc2liaWxpdHkgd2hlbiBJIHBvc3RlZCB0aGUgcGF0Y2ggZm9yIHJl dHJpZXZpbmcgdGhlIC5jb25maWcgZmlsZQo+IGNvbnRlbnRzIGVhcmx5IGxhc3QgeWVhcikuCgpU byBtZSBpdCB3b3VsZCBzZWVtIHByZWZlcmFibGUgaWYgdGhlIGNvbnRlbnRzIG9mIGEgYmxvYgpp ZGVudGlmaWVkIGl0c2VsZiBhcyB0byBpdHMgZm9ybWF0LiBCdXQgc2luY2UgdGhpcyBsZWF2ZXMK cm9vbSBmb3IgYW1iaWd1aXRpZXMgSSBhY2NlcHQgdGhhdCB0aGUgZm9ybWF0IG5lZWRzCnNwZWNp ZnlpbmcuIEhvd2V2ZXIsIHRvIG1lIGEgZ3ppcC1lZCBzdHJpbmcgaXMgYXMgZ29vZCBhcyBhCmd6 aXAtZWQgYmxvYiwgYW5kIGhlbmNlIEkgc3RpbGwgdGhpbmsgc3ViLWRpdmlkaW5nICJibG9iIiBp cwp0aGUgd2F5IHRvIGdvLCB3aXRoIG5vIHNlcGFyYXRlICJlbmNvZGluZyIuIE90aGVyd2lzZSBh dCB0aGUKdmVyeSBsZWFzdCBhIGNvbW1lbnQgaGVyZSB3b3VsZCBuZWVkIGFkZGluZyB0byBjbGFy aWZ5IHdoYXQKY29tYmluYXRpb25zIGFyZSB2YWxpZCAvIHRvIGJlIGV4cGVjdGVkIGJ5IGNhbGxl cnMuCgo+Pj4gKyNkZWZpbmUgSFlQRlNfRElSX0lOSVQodmFyLCBuYW0pICAgICAgICAgICAgICAg IFwKPj4+ICsgICAgc3RydWN0IGh5cGZzX2VudHJ5X2RpciB2YXIgPSB7ICAgICAgICAgICAgICBc Cj4+PiArICAgICAgICAuZS50eXBlID0gWEVOX0hZUEZTX1RZUEVfRElSLCAgICAgICAgICAgXAo+ Pj4gKyAgICAgICAgLmUuZW5jb2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCAgICAgIFwKPj4+ ICsgICAgICAgIC5lLm5hbWUgPSBuYW0sICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4+PiAr ICAgICAgICAuZS5zaXplID0gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+Pj4gKyAg ICAgICAgLmUubGlzdCA9IExJU1RfSEVBRF9JTklUKHZhci5lLmxpc3QpLCAgIFwKPj4+ICsgICAg ICAgIC5lLnJlYWQgPSBoeXBmc19yZWFkX2RpciwgICAgICAgICAgICAgICBcCj4+PiArICAgICAg ICAuZGlybGlzdCA9IExJU1RfSEVBRF9JTklUKHZhci5kaXJsaXN0KSwgXAo+Pj4gKyAgICB9Cj4+ PiArCj4+PiArLyogQ29udGVudCBhbmQgc2l6ZSBuZWVkIHRvIGJlIHNldCB2aWEgaHlwZnNfc3Ry aW5nX3NldCgpLiAqLwo+Pj4gKyNkZWZpbmUgSFlQRlNfU1RSSU5HX0lOSVQodmFyLCBuYW0pICAg ICAgICAgICAgIFwKPj4+ICsgICAgc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgdmFyID0geyAgICAg ICAgICAgICBcCj4+PiArICAgICAgICAuZS50eXBlID0gWEVOX0hZUEZTX1RZUEVfU1RSSU5HLCAg ICAgICAgXAo+Pj4gKyAgICAgICAgLmUuZW5jb2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCAg ICAgIFwKPj4+ICsgICAgICAgIC5lLm5hbWUgPSBuYW0sICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4+PiArICAgICAgICAuZS5yZWFkID0gaHlwZnNfcmVhZF9sZWFmLCAgICAgICAgICAgICAg XAo+Pj4gKyAgICB9Cj4+PiArCj4+PiArc3RhdGljIGlubGluZSB2b2lkIGh5cGZzX3N0cmluZ19z ZXQoc3RydWN0IGh5cGZzX2VudHJ5X2xlYWYgKmxlYWYsCj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3RyKQo+Pj4gK3sKPj4+ICsgICAgbGVhZi0+ Y29udGVudCA9IHN0cjsKPj4+ICsgICAgbGVhZi0+ZS5zaXplID0gc3RybGVuKHN0cikgKyAxOwo+ Pj4gK30KPj4+ICsKPj4+ICsjZGVmaW5lIEhZUEZTX1VJTlRfSU5JVCh2YXIsIG5hbSwgdWludCkg ICAgICAgICBcCj4+PiArICAgIHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmIHZhciA9IHsgICAgICAg ICAgICAgXAo+Pj4gKyAgICAgICAgLmUudHlwZSA9IFhFTl9IWVBGU19UWVBFX1VJTlQsICAgICAg ICAgIFwKPj4+ICsgICAgICAgIC5lLmVuY29kaW5nID0gWEVOX0hZUEZTX0VOQ19QTEFJTiwgICAg ICBcCj4+PiArICAgICAgICAuZS5uYW1lID0gbmFtLCAgICAgICAgICAgICAgICAgICAgICAgICAg XAo+Pj4gKyAgICAgICAgLmUuc2l6ZSA9IHNpemVvZih1aW50KSwgICAgICAgICAgICAgICAgIFwK Pj4+ICsgICAgICAgIC5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsICAgICAgICAgICAgICBcCj4+ PiArICAgICAgICAuY29udGVudCA9ICZ1aW50LCAgICAgICAgICAgICAgICAgICAgICAgXAo+Pj4g KyAgICB9Cj4+Cj4+IFNvIHlvdSd2ZSBnb3Qgc3VjaCBoZWxwZXIgbWFjcm9zIGZvciBkaXIsIHN0 cmluZywgYW5kIHVpbnQuIFdoeQo+PiBub3QgZS5nLiBpbnQgYW5kIGJvb2w/Cj4gCj4gVGhlcmUg YXJlIG5vIHVzZXJzIGluIG15IHNlcmllcyB5ZXQuCgpIbW0sIGFzIHBlciBhYm92ZSBzdHJpY3Rs eSBzcGVha2luZyBpdCBpcyB0aGlzIHBhdGNoIHdoaWNoCm1hdHRlcnMsIG5vdCB0aGUgZW50aXJl IHNlcmllcy4gSGVuY2UgSSB0aGluayB5b3UgZWl0aGVyIHdhbnQKdG8gc3VwcGx5IGEgZnVsbCBz ZXQgb2YgaGVscGVyIG1hY3JvcyBoZXJlLCBvciBpbnRyb2R1Y2UgdGhlCm9uZXMgYWN0dWFsbHkg bmVlZGVkIGluIHRoZSBwYXRjaGVzIHdoZXJlIHRoZXkgZ2V0IGZpcnN0IHVzZWQuCgo+Pj4gK3N0 cnVjdCBoeXBmc19lbnRyeSAqaHlwZnNfZ2V0X2VudHJ5KGNvbnN0IGNoYXIgKnBhdGgpOwo+Pgo+ PiBEb2VzIHRoZSBvbmx5IGNhbGxlciByZWFsbHkgbmVlZCBhIG5vbi1jb25zdCByZXR1cm4gdHlw ZT8gRXZlbgo+PiBoeXBmc193cml0ZSgpIGRvZXNuJ3QgbG9vayB0byBtb2RpZnkgd2hhdCBpdHMg bGVhZiBwYXJhbWV0ZXIKPj4gcG9pbnRzIGF0Lgo+IAo+IFRoaXMgbWlnaHQgY2hhbmdlIHdoZW4g c3VwcG9ydCBmb3IgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHN0cmluZ3Mgb3IKPiBibG9icyBpcyBh ZGRlZCAoSSBoYXZlIG5vIHBsYW5zIHRvIGRvIHRoaXMgcmlnaHQgbm93LCBidXQgaXRzIGVhc3kK PiB0byB0aGluayBhYm91dCB0aGUgbmVlZCkuCj4gCj4+Cj4+IEFuZCBpcyB0aGVyZSBpbmRlZWQg YW4gZXhwZWN0YXRpb24gZm9yIHRoaXMgdG8gYmUgdXNlZCBmcm9tCj4+IG91dHNpZGUgb2YgdGhl IHNvdXJjZSBmaWxlIGl0J3MgZGVmaW5lZCBpbj8KPiAKPiBZZXMuIEFzIHNvb24gYXMgc3VwcG9y dCBmb3IgZS5nLiBwZXItZG9tYWluIG9yIHBlci1jcHVwb29sIG5vZGVzIGlzCj4gYWRkZWQgdGhp cyB3aWxsIGJlIG5lZWRlZC4KClVudGlsIHRoZW4sIG1ha2UgdGhlIGZ1bmN0aW9uIGJvdGggc3Rh dGljIGFuZCByZXR1cm4gcHRyLXRvLWNvbnN0PwpTdWNoIHRoYXQgd2hlbiB0aGlzIGNoYW5nZXMs IHRoZSBuZWVkIGZvciBlaXRoZXIgY2FuIGFjdHVhbGx5IGJlCnNlZW4/CgpKYW4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=