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 B7E1FC2D0B1 for ; Tue, 4 Feb 2020 09:21:45 +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 87A002166E for ; Tue, 4 Feb 2020 09:21:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 87A002166E 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 1iyuOZ-0008OM-7W; Tue, 04 Feb 2020 09:21:23 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iyuOY-0008OH-DP for xen-devel@lists.xenproject.org; Tue, 04 Feb 2020 09:21:22 +0000 X-Inumbo-ID: b43a4abe-472f-11ea-8396-bc764e2007e4 Received: from mx2.suse.de (unknown [195.135.220.15]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b43a4abe-472f-11ea-8396-bc764e2007e4; Tue, 04 Feb 2020 09:21:20 +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 317F9AC9A; Tue, 4 Feb 2020 09:21:19 +0000 (UTC) To: Jan Beulich References: <20200121084330.18309-1-jgross@suse.com> <20200121084330.18309-5-jgross@suse.com> <05b9770e-1554-1f71-3757-4feb9c1fa247@suse.com> <2ecc4058-a350-d67b-f860-0b2bf26ee5ca@suse.com> From: =?UTF-8?B?SsO8cmdlbiBHcm/Dnw==?= Message-ID: Date: Tue, 4 Feb 2020 10:21:18 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1 MIME-Version: 1.0 In-Reply-To: <2ecc4058-a350-d67b-f860-0b2bf26ee5ca@suse.com> 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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gMDQuMDIuMjAgMDk6NDgsIEphbiBCZXVsaWNoIHdyb3RlOgo+IE9uIDA0LjAyLjIwMjAgMDc6 NDMsIErDvHJnZW4gR3Jvw58gd3JvdGU6Cj4+IE9uIDAzLjAyLjIwIDE2OjA3LCBKYW4gQmV1bGlj aCB3cm90ZToKPj4+IE9uIDIxLjAxLjIwMjAgMDk6NDMsIEp1ZXJnZW4gR3Jvc3Mgd3JvdGU6Cj4+ Pj4gK3N0YXRpYyBpbnQgaHlwZnNfcmVhZChjb25zdCBzdHJ1Y3QgaHlwZnNfZW50cnkgKmVudHJ5 LAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lk KSB1YWRkciwgdW5zaWduZWQgbG9uZyB1bGVuKQo+Pj4+ICt7Cj4+Pj4gKyAgICBzdHJ1Y3QgeGVu X2h5cGZzX2RpcmVudHJ5IGU7Cj4+Pj4gKyAgICBsb25nIHJldCA9IC1FSU5WQUw7Cj4+Pj4gKwo+ Pj4+ICsgICAgaWYgKCB1bGVuIDwgc2l6ZW9mKGUpICkKPj4+PiArICAgICAgICBnb3RvIG91dDsK Pj4+PiArCj4+Pj4gKyAgICBlLmZsYWdzID0gZW50cnktPndyaXRlID8gWEVOX0hZUEZTX1dSSVRF QUJMRSA6IDA7Cj4+Pj4gKyAgICBlLnR5cGUgPSBlbnRyeS0+dHlwZTsKPj4+PiArICAgIGUuZW5j b2RpbmcgPSBlbnRyeS0+ZW5jb2Rpbmc7Cj4+Pj4gKyAgICBlLmNvbnRlbnRfbGVuID0gZW50cnkt PnNpemU7Cj4+Pj4gKwo+Pj4+ICsgICAgcmV0ID0gLUVGQVVMVDsKPj4+PiArICAgIGlmICggY29w eV90b19ndWVzdCh1YWRkciwgJmUsIDEpICkKPj4+PiArICAgICAgICBnb3RvIG91dDsKPj4+PiAr Cj4+Pj4gKyAgICByZXQgPSAwOwo+Pj4+ICsgICAgaWYgKCB1bGVuIDwgZW50cnktPnNpemUgKyBz aXplb2YoZSkgKQo+Pj4+ICsgICAgICAgIGdvdG8gb3V0Owo+Pj4KPj4+IFNvIHlvdSByZXR1cm4g InN1Y2Nlc3MiIGV2ZW4gaWYgdGhlIG9wZXJhdGlvbiBkaWRuJ3QgY29tcGxldGUKPj4+IHN1Y2Nl c3NmdWxseS4gVGhpcyBpc24ndCB2ZXJ5IG5pY2UsIHBsdXMgLi4uCj4+Cj4+IFRoZSBkaXJlbnRy eSBjb250YWlucyB0aGUgbmVlZGVkIHNpemUuIFRoZSBjYWxsZXIgc2hvdWxkIGtub3cgdGhlCj4+ IHNpemUgaGUgcGFzc2VkIHRvIFhlbi4KPj4KPj4+Cj4+Pj4gKyAgICBndWVzdF9oYW5kbGVfYWRk X29mZnNldCh1YWRkciwgc2l6ZW9mKGUpKTsKPj4+PiArCj4+Pj4gKyAgICByZXQgPSBlbnRyeS0+ cmVhZChlbnRyeSwgdWFkZHIpOwo+Pj4KPj4+IC4uLiBob3cgaXMgdGhlIGNhbGxlciB0byBrbm93 IHdoZXRoZXIgZGlyZW50cnkgd2FzIGF0IGxlYXN0Cj4+PiBjb3BpZWQgaWYgdGhpcyB0aGVuIGZh aWxzPwo+Pgo+PiBJcyB0aGlzIHJlYWxseSBpbXBvcnRhbnQ/IE5vcm1hbGx5IC1FRkFVTFQgc2hv dWxkIGp1c3Qgbm90IGhhcHBlbi4gSW4KPj4gY2FzZSBpdCBkb2VzIEkgZG9uJ3QgdGhpbmsgdGhl IGNhbGxlciBjYW4gbWFrZSByZWFsIHVzZSBvZiB0aGUgZGlyZW50cnkuCj4gCj4gIkltcG9ydGFu dCIgaGFzIHZhcmlvdXMgcG9zc2libGUgbWVhbmluZ3MuIFRoZSBzdWNjZXNzL2ZhaWx1cmUKPiBp bmRpY2F0aW9uIHRvIHRoZSBjYWxsZXIgc2hvdWxkIGF0IGxlYXN0IGJlIHJhdGlvbmFsLiAiSWYg dGhlCj4gZGF0YSBidWZmZXIgd2FzIG5vdCBsYXJnZSBlbm91Z2ggZm9yIGFsbCB0aGUgZGF0YSBu byBlbnRyeSBkYXRhCj4gaXMgcmV0dXJuZWQsIGJ1dCB0aGUgZGlyZW50cnkgd2lsbCBjb250YWlu IHRoZSBuZWVkZWQgc2l6ZSBmb3IKPiB0aGUgcmV0dXJuZWQgZGF0YSIgaXMgZmluZSB0byBiZSBz dGF0ZWQgaW4gdGhlIHB1YmxpYyBoZWFkZXIsCj4gYnV0IEkgdGhpbmsgdGhpcyB3YW50cyB0byBi ZSAtRU5PQlVGUyB0aGVuLCBub3QgMCAoc3VjY2VzcykuCgpJIHdvdWxkIGJlIGZpbmUgd2l0aCB0 aGlzLCBidXQgdGhpcyBjb250cmFkaWN0cyB5b3VyIHByZXZpb3VzIGRlbWFuZApub3QgdG8gZW51 bWVyYXRlIHRoZSBwb3NzaWJsZSBmYWlsdXJlIGNhc2VzLCB3aGljaCB3b3VsZCBiZSBlc3NlbnRp YWwKZm9yIHRoaXMgY2FzZS4KCj4gCj4+PiBBbnl3YXksIHRoaXMgYW5kIC4uLgo+Pj4KPj4+PiAr IG91dDoKPj4+PiArICAgIHhmcmVlKGJ1Zik7Cj4+Pj4gKyAgICByZXR1cm4gcmV0Owo+Pj4+ICt9 Cj4+Pj4gKwo+Pj4+ICtpbnQgaHlwZnNfd3JpdGVfYm9vbChzdHJ1Y3QgaHlwZnNfZW50cnlfbGVh ZiAqbGVhZiwKPj4+PiArICAgICAgICAgICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJB TSh2b2lkKSB1YWRkciwgdW5zaWduZWQgbG9uZyB1bGVuKQo+Pj4+ICt7Cj4+Pgo+Pj4gLi4uIHRo aXMgZnVuY3Rpb24gYXJlbid0IHZlcnkgaGVscGZ1bCB0byByZXZpZXcgd2l0aG91dCB0aGVyZQo+ Pj4gYmVpbmcgYSBjYWxsZXIuIENvdWxkIHRoZXNlIGJlIGludHJvZHVjZWQgYXQgdGhlIHRpbWUg YSBmaXJzdAo+Pj4gY2FsbGVyIGFwcGVhcnM/Cj4+Cj4+IE9mIGNvdXJzZS4gUXVlc3Rpb24gaXMg d2hlcmUgdG8gc3RvcC4gSSB3YW50ZWQgdG8gaGF2ZSB0aGUgYmFzaWMgaHlwZnMKPj4gc3VwcG9y dCBpbiBvbmUgcGF0Y2guIEFyZSB5b3UgZmluZSB3aXRoIGp1c3QgdGhvc2UgdHdvIGZ1bmN0aW9u cyBiZWluZwo+PiBtb3ZlZCB0byB0aGUgcnVudGltZSBwYXJhbWV0ZXIgcGF0Y2g/Cj4gCj4gTGV0 IG1lIHB1dCBpdCB0aGlzIHdheTogRm9yIGFueXRoaW5nIHRoZSBwYXRjaCBhZGRzIGJ1dCB0aGVy ZSdzCj4gbm8gdXNhZ2UgYXQgYWxsIChpLmUuIG5vdCBldmVuIGluIGEgbWFjcm8sIHdoZXJlIGF0 IGxlYXN0IHRoZQo+IHVzYWdlIGludGVudGlvbnMgZ2V0IHN1ZmZpY2llbnRseSBjbGFyaWZpZWQp LCB0aGUgZGVzY3JpcHRpb24KPiBzaG91bGQgY292ZXIgZm9yIHRoaXMgbGFjayBvZiBzdWZmaWNp ZW50IGNvbnRleHQuIFRoZXJlZm9yZSBJJ2QKPiBhbHNvIGJlIGZpbmUgd2l0aCB0aGUgdHdvIGZ1 bmN0aW9ucyByZW1haW5pbmcgaGVyZSwgYXMgbG9uZyBhcwo+IHJlYWRlcnMgKHJldmlld2Vycykg Y2FuIHVuZGVyc3RhbmQgdGhlIGludGVudGlvbnMuIEl0IG1pZ2h0Cj4gc3RpbGwgYmUgX2Vhc2ll cl8gZm9yIGV2ZXJ5b25lIHRvIGhhdmUgdGhlbSBpbiBhIGxhdGVyIHBhdGNoLgo+IEJ1dCB0aGVu IHRoZSBzYW1lIHN0aWxsIGdvZXMgZm9yIG90aGVyIGZ1bmN0aW9ucyB0aGF0IGhhdmUgbm8KPiB1 c2VycyBoZXJlLiAoVGhlIGhlbHBlciBtYWNyb3MgSFlQRlNfKl9JTklUKCksIG90b2gsIGFyZSBj bGVhcgo+IGVub3VnaCB0aGUgd2F5IHRoZXkgYXJlIGltbywgYW5kIGhlbmNlIGFyZSBmaW5lIHRv IHJlbWFpbiwgcGx1cwo+IHRoZXkgc2VydmUgYXMgdXNhZ2UgZXhwbGFuYXRpb24gZm9yIGh5cGZz X3JlYWRfe2xlYWYsZGlyfSgpLAo+IHdoaWNoIGFzIGl0IGxvb2tzIHdvdWxkIG90aGVyd2lzZSB0 b28gYmUgb3JwaGFuZWQuKQoKRmFpciBlbm91Z2guCgo+IAo+Pj4+ICsgICAgdW5pb24gewo+Pj4+ ICsgICAgICAgIGNoYXIgYnVmWzhdOwo+Pj4+ICsgICAgICAgIHVpbnQ4X3QgdTg7Cj4+Pj4gKyAg ICAgICAgdWludDE2X3QgdTE2Owo+Pj4+ICsgICAgICAgIHVpbnQzMl90IHUzMjsKPj4+PiArICAg ICAgICB1aW50NjRfdCB1NjQ7Cj4+Pj4gKyAgICB9IHU7Cj4+Pj4gKwo+Pj4+ICsgICAgQVNTRVJU KGxlYWYtPmUudHlwZSA9PSBYRU5fSFlQRlNfVFlQRV9VSU5UICYmIGxlYWYtPmUuc2l6ZSA8PSA4 KTsKPj4+PiArCj4+Pj4gKyAgICBpZiAoIHVsZW4gIT0gbGVhZi0+ZS5zaXplICkKPj4+PiArICAg ICAgICByZXR1cm4gLUVET007Cj4+Pgo+Pj4gSXMgdGhpcyByZXN0cmljdGlvbiByZWFsbHkgbmVj ZXNzYXJ5PyBTZXR0aW5nIGUuZy4gYSA0LWJ5dGUKPj4+IGZpZWxkIGZyb20gMS1ieXRlIGlucHV0 IGlzIG5vIHByb2JsZW0gYXQgYWxsLiBUaGlzIGJlaW5nIGZvcgo+Pj4gYm9vbGVhbnMgSSBhbnl3 YXkgd29uZGVyIHdoeSBpbnB1dCBtaWdodCBiZSBoZWxwZnVsIHRvIGhhdmUKPj4+IGxhcmdlciB0 aGFuIGEgc2luZ2xlIGJ5dGUuIEJ1dCBtYXliZSBhbGwgb2YgdGhpcyBpcyBhZ2FpbiBhCj4+PiBy ZXN1bHQgb2Ygbm90IHNlZWluZyB3aGF0IGEgdXNlciBvZiB0aGUgZnVuY3Rpb24gd291bGQgbG9v awo+Pj4gbGlrZS4KPj4KPj4gSSB3YW50ZWQgdG8gaGF2ZSBhcyBsaXR0bGUgZnVuY3Rpb25hbGl0 eSBhcyBwb3NzaWJsZSBpbiB0aGUgaHlwZXJ2aXNvci4KPj4gSXQgaXMgbm8gcHJvYmxlbSBmb3Ig dGhlIGxpYnJhcnkgdG8gcGFzcyBhIHByb3Blcmx5IHNpemVkIGJ1ZmZlci4KPj4KPj4gQWxsb3dp bmcgbGFyZ2VyIHZhcmlhYmxlcyBmb3IgYm9vbGVhbnMgaXMganVzdCBhIGNvbnNlcXVlbmNlIG9m IHRoZQo+PiBoeXBlcnZpc29yIHBhcmFtZXRlcnMgYWxsb3dpbmcgdGhhdC4KPiAKPiBCdXQgdGhl IGNhbGxlciBzaG91bGRuJ3QgYmUgY29uY2VybmVkIG9mIHRoZSBoeXBlcnZpc29yCj4gaW1wbGVt ZW50YXRpb24gZGV0YWlsIG9mIHdoYXQgdGhlIGNob3NlIHdpZHRoIGlzLiBPdmVyIHRpbWUgd2UK PiBlLmcuIGNvbnZlcnQgaW50IChhbG9uZyB3aXRoIGJvb2xfdCkgdG8gYm9vbCB3aGVuIGl0J3Mg dXNlZCBpbgo+IGEgYm9vbGVhbiB3YXkuIFRoaXMgc2hvdWxkIG5vdCByZXN1bHQgaW4gdGhlIGNh bGxlciBuZWVkaW5nIHRvCj4gY2hhbmdlLCBkZXNwaXRlIHRoZSB3aWR0aCBjaGFuZ2Ugb2YgdGhl IHZhcmlhYmxlLgoKVGhpcyBpcyBiYXNpY2FsbHkgYSBjb25zZXF1ZW5jZSBvZiBub3cgcGFzc2lu ZyBiaW5hcnkgdmFsdWVzIHRvIGFuZCBmcm9tCnRoZSBoeXBlcnZpc29yLgoKVGhlIG5vcm1hbCB3 YXkgb2YgaGFuZGxpbmcgdGhpcyAoYXMgY2FuIGJlIHNlZW4gaW4gbGlieGVuaHlwZnMpIGlzIHRv CnF1ZXJ5IHRoZSBoeXBlcnZpc29yIGZvciB0aGUgc2l6ZSBvZiB0aGUgdmFsdWUgKG5vIG1hdHRl ciB3aGV0aGVyIGl0cwppbnQsIHVpbnQgb3IgYm9vbCkgYW5kIHRoZW4gdG8gZG8gdGhlIGNvbnZl cnNpb24gYmV0d2VlbiBBU0NJSSBhbmQgdGhlCmJpbmFyeSB2YWx1ZSBhdCB0aGUgY2FsbGVyJ3Mg c2lkZS4KCj4gCj4+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1Ymxp Yy9oeXBmcy5oCj4+Pj4gQEAgLTAsMCArMSwxMjQgQEAKPj4+PiArLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgo+Pj4+ICsgKiBYZW4gSHlwZXJ2aXNvciBGaWxlc3lzdGVtCj4+Pj4gKyAqCj4+Pj4gKyAq IENvcHlyaWdodCAoYykgMjAxOSwgU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJI Cj4+Pj4gKyAqCj4+Pj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPj4+PiArICogb2YgdGhpcyBz b2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJl IiksIHRvCj4+Pj4gKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24s IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCj4+Pj4gKyAqIHJpZ2h0cyB0byB1c2Us IGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFu ZC9vcgo+Pj4+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQg cGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+Pj4+ICsgKiBmdXJuaXNoZWQgdG8gZG8g c28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+Pj4+ICsgKgo+Pj4+ICsg KiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBz aGFsbCBiZSBpbmNsdWRlZCBpbgo+Pj4+ICsgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBv cnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPj4+PiArICoKPj4+PiArICogVEhFIFNPRlRXQVJFIElT IFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Mg T1IKPj4+PiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+Pj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQo+ Pj4+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+Pj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+Pj4gKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIKPj4+PiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+Pj4+ICsgKgo+Pj4+ ICsgKi8KPj4+PiArCj4+Pj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0hZUEZTX0hfXwo+Pj4+ICsj ZGVmaW5lIF9fWEVOX1BVQkxJQ19IWVBGU19IX18KPj4+PiArCj4+Pj4gKyNpbmNsdWRlICJ4ZW4u aCIKPj4+PiArCj4+Pj4gKy8qCj4+Pj4gKyAqIERlZmluaXRpb25zIGZvciB0aGUgX19IWVBFUlZJ U09SX2h5cGZzX29wIGh5cGVyY2FsbC4KPj4+PiArICovCj4+Pj4gKwo+Pj4+ICsvKiBIaWdoZXN0 IHZlcnNpb24gbnVtYmVyIG9mIHRoZSBoeXBmcyBpbnRlcmZhY2UgY3VycmVudGx5IGRlZmluZWQu ICovCj4+Pj4gKyNkZWZpbmUgWEVOX0hZUEZTX1ZFUlNJT04gICAgICAxCj4+Pgo+Pj4gRm9yIHRo aXMgYW5kIHRoZSBhY2NvbXBhbnlpbmcgWEVOX0hZUEZTX09QX2dldF92ZXJzaW9uLCBhdCBsZWFz dAo+Pj4gdGhlIGRvYyBhZGRlZCBieSBwYXRjaCAzIGNvdWxkIGFjdHVhbGx5IGRvIHdpdGggbWVu dGlvbmluZyB0aGUKPj4+IGludGVudGlvbnMgeW91IGhhdmUgd2l0aCB0aGlzLgo+Pgo+PiBPa2F5 Lgo+Pgo+Pj4KPj4+PiArLyogTWF4aW11bSBsZW5ndGggb2YgYSBwYXRoIGluIHRoZSBmaWxlc3lz dGVtLiAqLwo+Pj4+ICsjZGVmaW5lIFhFTl9IWVBGU19NQVhfUEFUSExFTiAxMDI0Cj4+Pj4gKwo+ Pj4+ICtzdHJ1Y3QgeGVuX2h5cGZzX2RpcmVudHJ5IHsKPj4+PiArICAgIHVpbnQxNl90IGZsYWdz Owo+Pj4+ICsjZGVmaW5lIFhFTl9IWVBGU19XUklURUFCTEUgICAgMHgwMDAxCj4+Pj4gKyAgICB1 aW50OF90IHR5cGU7Cj4+Pj4gKyNkZWZpbmUgWEVOX0hZUEZTX1RZUEVfRElSICAgICAweDAwMDAK Pj4+PiArI2RlZmluZSBYRU5fSFlQRlNfVFlQRV9CTE9CICAgIDB4MDAwMQo+Pj4+ICsjZGVmaW5l IFhFTl9IWVBGU19UWVBFX1NUUklORyAgMHgwMDAyCj4+Pj4gKyNkZWZpbmUgWEVOX0hZUEZTX1RZ UEVfVUlOVCAgICAweDAwMDMKPj4+PiArI2RlZmluZSBYRU5fSFlQRlNfVFlQRV9JTlQgICAgIDB4 MDAwNAo+Pj4+ICsjZGVmaW5lIFhFTl9IWVBGU19UWVBFX0JPT0wgICAgMHgwMDA1Cj4+Pj4gKyAg ICB1aW50OF90IGVuY29kaW5nOwo+Pj4+ICsjZGVmaW5lIFhFTl9IWVBGU19FTkNfUExBSU4gICAg MHgwMDAwCj4+Pj4gKyNkZWZpbmUgWEVOX0hZUEZTX0VOQ19HWklQICAgICAweDAwMDEKPj4+Cj4+ PiBNZWFuaW5nIEkgY2FuIGUuZy4gaGF2ZSBhIGd6aXAtZWQgc3RyaW5nIG9yIGJvb2wgKG9yIGV2 ZW4gZGlyKT8KPj4+IElmIHRoaXMgaXMganVzdCBmb3IgImJsb2IiLCB3aHkgaGF2ZSBzZXBhcmF0 ZSBmaWVsZHMgaW5zdGVhZCBvZgo+Pj4gZS5nLiBCTE9CX1JBVyBhbmQgQkxPQl9HWklQIG9yIHNv bWUgc3VjaD8KPj4KPj4gZ3ppcC1lZCBzdHJpbmcgb3IgYmxvYiBhcmUgdGhlIHByaW1hcnkgdGFy Z2V0cy4KPj4KPj4gTWF5YmUgd2Ugd2FudCB0byBoYXZlIG90aGVyIGVuY29kaW5nIHMgbGF0ZXIg KEFuZHJldyBhc2tlZCBmb3IgdGhhdAo+PiBwb3NzaWJpbGl0eSB3aGVuIEkgcG9zdGVkIHRoZSBw YXRjaCBmb3IgcmV0cmlldmluZyB0aGUgLmNvbmZpZyBmaWxlCj4+IGNvbnRlbnRzIGVhcmx5IGxh c3QgeWVhcikuCj4gCj4gVG8gbWUgaXQgd291bGQgc2VlbSBwcmVmZXJhYmxlIGlmIHRoZSBjb250 ZW50cyBvZiBhIGJsb2IKPiBpZGVudGlmaWVkIGl0c2VsZiBhcyB0byBpdHMgZm9ybWF0LiBCdXQg c2luY2UgdGhpcyBsZWF2ZXMKPiByb29tIGZvciBhbWJpZ3VpdGllcyBJIGFjY2VwdCB0aGF0IHRo ZSBmb3JtYXQgbmVlZHMKPiBzcGVjaWZ5aW5nLiBIb3dldmVyLCB0byBtZSBhIGd6aXAtZWQgc3Ry aW5nIGlzIGFzIGdvb2QgYXMgYQo+IGd6aXAtZWQgYmxvYiwgYW5kIGhlbmNlIEkgc3RpbGwgdGhp bmsgc3ViLWRpdmlkaW5nICJibG9iIiBpcwo+IHRoZSB3YXkgdG8gZ28sIHdpdGggbm8gc2VwYXJh dGUgImVuY29kaW5nIi4gT3RoZXJ3aXNlIGF0IHRoZQo+IHZlcnkgbGVhc3QgYSBjb21tZW50IGhl cmUgd291bGQgbmVlZCBhZGRpbmcgdG8gY2xhcmlmeSB3aGF0Cj4gY29tYmluYXRpb25zIGFyZSB2 YWxpZCAvIHRvIGJlIGV4cGVjdGVkIGJ5IGNhbGxlcnMuCgpsaWJ4ZW5oeXBmcyBpcyBhYmxlIHRv IGhhbmRsZSBhbGwgcG9zc2libGUgY29tYmluYXRpb25zLiBJIGp1c3QgZG9uJ3QKdGhpbmsgc29t ZSBvZiB0aGUgY29tYmluYXRpb25zIGFyZSBtYWtpbmcgc2Vuc2UgKGd6aXAtaW5nIGEgYmluYXJ5 CnZhbHVlIG9mIDQgYnl0ZXMgZS5nLiBpcyBub25zZW5zZSkuCgpPVE9IIGluIGNhc2Ugd2UnbGwg YWRkIGxhcmdlIGFycmF5cyBvZiBsb25ncyBpbiB0aGUgZnV0dXJlIGl0IG1pZ2h0IGJlCmJlbmVm aWNpYWwgdG8gY29tcHJlc3MgdGhlbSBpbiBzb21lIHdheS4gU28gSSdkIGxpa2UgdG8ga2VlcCB0 eXBlIGFuZAplbmNvZGluZyBhcyBzZXBhcmF0ZSBpbmZvcm1hdGlvbi4KCj4gCj4+Pj4gKyNkZWZp bmUgSFlQRlNfRElSX0lOSVQodmFyLCBuYW0pICAgICAgICAgICAgICAgIFwKPj4+PiArICAgIHN0 cnVjdCBoeXBmc19lbnRyeV9kaXIgdmFyID0geyAgICAgICAgICAgICAgXAo+Pj4+ICsgICAgICAg IC5lLnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9ESVIsICAgICAgICAgICBcCj4+Pj4gKyAgICAgICAg LmUuZW5jb2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCAgICAgIFwKPj4+PiArICAgICAgICAu ZS5uYW1lID0gbmFtLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+Pj4+ICsgICAgICAgIC5l LnNpemUgPSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4+Pj4gKyAgICAgICAgLmUu bGlzdCA9IExJU1RfSEVBRF9JTklUKHZhci5lLmxpc3QpLCAgIFwKPj4+PiArICAgICAgICAuZS5y ZWFkID0gaHlwZnNfcmVhZF9kaXIsICAgICAgICAgICAgICAgXAo+Pj4+ICsgICAgICAgIC5kaXJs aXN0ID0gTElTVF9IRUFEX0lOSVQodmFyLmRpcmxpc3QpLCBcCj4+Pj4gKyAgICB9Cj4+Pj4gKwo+ Pj4+ICsvKiBDb250ZW50IGFuZCBzaXplIG5lZWQgdG8gYmUgc2V0IHZpYSBoeXBmc19zdHJpbmdf c2V0KCkuICovCj4+Pj4gKyNkZWZpbmUgSFlQRlNfU1RSSU5HX0lOSVQodmFyLCBuYW0pICAgICAg ICAgICAgIFwKPj4+PiArICAgIHN0cnVjdCBoeXBmc19lbnRyeV9sZWFmIHZhciA9IHsgICAgICAg ICAgICAgXAo+Pj4+ICsgICAgICAgIC5lLnR5cGUgPSBYRU5fSFlQRlNfVFlQRV9TVFJJTkcsICAg ICAgICBcCj4+Pj4gKyAgICAgICAgLmUuZW5jb2RpbmcgPSBYRU5fSFlQRlNfRU5DX1BMQUlOLCAg ICAgIFwKPj4+PiArICAgICAgICAuZS5uYW1lID0gbmFtLCAgICAgICAgICAgICAgICAgICAgICAg ICAgXAo+Pj4+ICsgICAgICAgIC5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYsICAgICAgICAgICAg ICBcCj4+Pj4gKyAgICB9Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgaW5saW5lIHZvaWQgaHlwZnNfc3Ry aW5nX3NldChzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiAqbGVhZiwKPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3RyKQo+Pj4+ICt7Cj4+Pj4gKyAg ICBsZWFmLT5jb250ZW50ID0gc3RyOwo+Pj4+ICsgICAgbGVhZi0+ZS5zaXplID0gc3RybGVuKHN0 cikgKyAxOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICsjZGVmaW5lIEhZUEZTX1VJTlRfSU5JVCh2YXIs IG5hbSwgdWludCkgICAgICAgICBcCj4+Pj4gKyAgICBzdHJ1Y3QgaHlwZnNfZW50cnlfbGVhZiB2 YXIgPSB7ICAgICAgICAgICAgIFwKPj4+PiArICAgICAgICAuZS50eXBlID0gWEVOX0hZUEZTX1RZ UEVfVUlOVCwgICAgICAgICAgXAo+Pj4+ICsgICAgICAgIC5lLmVuY29kaW5nID0gWEVOX0hZUEZT X0VOQ19QTEFJTiwgICAgICBcCj4+Pj4gKyAgICAgICAgLmUubmFtZSA9IG5hbSwgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKPj4+PiArICAgICAgICAuZS5zaXplID0gc2l6ZW9mKHVpbnQpLCAg ICAgICAgICAgICAgICAgXAo+Pj4+ICsgICAgICAgIC5lLnJlYWQgPSBoeXBmc19yZWFkX2xlYWYs ICAgICAgICAgICAgICBcCj4+Pj4gKyAgICAgICAgLmNvbnRlbnQgPSAmdWludCwgICAgICAgICAg ICAgICAgICAgICAgIFwKPj4+PiArICAgIH0KPj4+Cj4+PiBTbyB5b3UndmUgZ290IHN1Y2ggaGVs cGVyIG1hY3JvcyBmb3IgZGlyLCBzdHJpbmcsIGFuZCB1aW50LiBXaHkKPj4+IG5vdCBlLmcuIGlu dCBhbmQgYm9vbD8KPj4KPj4gVGhlcmUgYXJlIG5vIHVzZXJzIGluIG15IHNlcmllcyB5ZXQuCj4g Cj4gSG1tLCBhcyBwZXIgYWJvdmUgc3RyaWN0bHkgc3BlYWtpbmcgaXQgaXMgdGhpcyBwYXRjaCB3 aGljaAo+IG1hdHRlcnMsIG5vdCB0aGUgZW50aXJlIHNlcmllcy4gSGVuY2UgSSB0aGluayB5b3Ug ZWl0aGVyIHdhbnQKPiB0byBzdXBwbHkgYSBmdWxsIHNldCBvZiBoZWxwZXIgbWFjcm9zIGhlcmUs IG9yIGludHJvZHVjZSB0aGUKPiBvbmVzIGFjdHVhbGx5IG5lZWRlZCBpbiB0aGUgcGF0Y2hlcyB3 aGVyZSB0aGV5IGdldCBmaXJzdCB1c2VkLgoKT2theSwgSSdsbCBnbyB3aXRoIHRoZSBmdWxsIHNl dCBvZiBoZWxwZXJzLgoKPiAKPj4+PiArc3RydWN0IGh5cGZzX2VudHJ5ICpoeXBmc19nZXRfZW50 cnkoY29uc3QgY2hhciAqcGF0aCk7Cj4+Pgo+Pj4gRG9lcyB0aGUgb25seSBjYWxsZXIgcmVhbGx5 IG5lZWQgYSBub24tY29uc3QgcmV0dXJuIHR5cGU/IEV2ZW4KPj4+IGh5cGZzX3dyaXRlKCkgZG9l c24ndCBsb29rIHRvIG1vZGlmeSB3aGF0IGl0cyBsZWFmIHBhcmFtZXRlcgo+Pj4gcG9pbnRzIGF0 Lgo+Pgo+PiBUaGlzIG1pZ2h0IGNoYW5nZSB3aGVuIHN1cHBvcnQgZm9yIGR5bmFtaWNhbGx5IGFs bG9jYXRlZCBzdHJpbmdzIG9yCj4+IGJsb2JzIGlzIGFkZGVkIChJIGhhdmUgbm8gcGxhbnMgdG8g ZG8gdGhpcyByaWdodCBub3csIGJ1dCBpdHMgZWFzeQo+PiB0byB0aGluayBhYm91dCB0aGUgbmVl ZCkuCj4+Cj4+Pgo+Pj4gQW5kIGlzIHRoZXJlIGluZGVlZCBhbiBleHBlY3RhdGlvbiBmb3IgdGhp cyB0byBiZSB1c2VkIGZyb20KPj4+IG91dHNpZGUgb2YgdGhlIHNvdXJjZSBmaWxlIGl0J3MgZGVm aW5lZCBpbj8KPj4KPj4gWWVzLiBBcyBzb29uIGFzIHN1cHBvcnQgZm9yIGUuZy4gcGVyLWRvbWFp biBvciBwZXItY3B1cG9vbCBub2RlcyBpcwo+PiBhZGRlZCB0aGlzIHdpbGwgYmUgbmVlZGVkLgo+ IAo+IFVudGlsIHRoZW4sIG1ha2UgdGhlIGZ1bmN0aW9uIGJvdGggc3RhdGljIGFuZCByZXR1cm4g cHRyLXRvLWNvbnN0Pwo+IFN1Y2ggdGhhdCB3aGVuIHRoaXMgY2hhbmdlcywgdGhlIG5lZWQgZm9y IGVpdGhlciBjYW4gYWN0dWFsbHkgYmUKPiBzZWVuPwoKRmluZSB3aXRoIG1lLgoKCkp1ZXJnZW4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=