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=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 A0888C2B9F4 for ; Fri, 25 Jun 2021 19:10:38 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 42C4B61921 for ; Fri, 25 Jun 2021 19:10:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 42C4B61921 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D17836EE48; Fri, 25 Jun 2021 19:10:36 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 52FA06EE3B; Fri, 25 Jun 2021 19:10:35 +0000 (UTC) IronPort-SDR: cJsAsLxDXouYy5iBBF6Yb5YL1+RMUsJcy8mhDUGg/ZH2HU8bVpjGVFeD1xWmtbi/gvcO4Uumtq N9ENsog0aJOg== X-IronPort-AV: E=McAfee;i="6200,9189,10026"; a="268860560" X-IronPort-AV: E=Sophos;i="5.83,299,1616482800"; d="scan'208";a="268860560" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2021 12:10:33 -0700 IronPort-SDR: luD4NLN+lf94H+ZSeAtx7SAjPEFMWlPbXqmNBpunhNe5LMbRKr7Cr+SB+RbyMurhF26QxZUgFj 5TZUmFXOy6OA== X-IronPort-AV: E=Sophos;i="5.83,299,1616482800"; d="scan'208";a="455538511" Received: from liordavi-mobl.ger.corp.intel.com (HELO [10.249.254.242]) ([10.249.254.242]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jun 2021 12:10:31 -0700 To: "Ruhl, Michael J" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" References: <20210624183110.22582-1-thomas.hellstrom@linux.intel.com> <20210624183110.22582-5-thomas.hellstrom@linux.intel.com> <5304ae661abb43a0816a485db9d3bbb5@intel.com> <5e9a46340f254928be6264e4e61eeab8@intel.com> <8cffb2f2-4401-2cdf-1ab3-98cc2d879b00@linux.intel.com> <6ca4bd4f3fde427ea8e2b0de61bbde65@intel.com> <3aa6d76f-eb4e-c2c7-0e8c-f87960cbff00@linux.intel.com> From: =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= Message-ID: <694e0c7a-4878-8ac4-3a09-6fd453b6811b@linux.intel.com> Date: Fri, 25 Jun 2021 21:10:29 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 4/4] drm/i915/gem: Migrate to system at dma-buf map time X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Auld, Matthew" Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Ck9uIDYvMjUvMjEgOTowNyBQTSwgUnVobCwgTWljaGFlbCBKIHdyb3RlOgo+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxz dHJvbUBsaW51eC5pbnRlbC5jb20+Cj4+IFNlbnQ6IEZyaWRheSwgSnVuZSAyNSwgMjAyMSAyOjUw IFBNCj4+IFRvOiBSdWhsLCBNaWNoYWVsIEogPG1pY2hhZWwuai5ydWhsQGludGVsLmNvbT47IGlu dGVsLQo+PiBnZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4+IENjOiBBdWxkLCBNYXR0aGV3IDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgo+ PiBTdWJqZWN0OiBSZTogW1BBVENIIDQvNF0gZHJtL2k5MTUvZ2VtOiBNaWdyYXRlIHRvIHN5c3Rl bSBhdCBkbWEtYnVmIG1hcAo+PiB0aW1lCj4+Cj4+IEhpLCBNaWtlLAo+Pgo+PiBPbiA2LzI1LzIx IDc6NTcgUE0sIFJ1aGwsIE1pY2hhZWwgSiB3cm90ZToKPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQo+Pj4+IEZyb206IFRob21hcyBIZWxsc3Ryw7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxp bnV4LmludGVsLmNvbT4KPj4+PiBTZW50OiBGcmlkYXksIEp1bmUgMjUsIDIwMjEgMTo1MiBQTQo+ Pj4+IFRvOiBSdWhsLCBNaWNoYWVsIEogPG1pY2hhZWwuai5ydWhsQGludGVsLmNvbT47IGludGVs LQo+Pj4+IGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKPj4+PiBDYzogQXVsZCwgTWF0dGhldyA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4K Pj4+PiBTdWJqZWN0OiBSZTogW1BBVENIIDQvNF0gZHJtL2k5MTUvZ2VtOiBNaWdyYXRlIHRvIHN5 c3RlbSBhdCBkbWEtYnVmCj4+IG1hcAo+Pj4+IHRpbWUKPj4+Pgo+Pj4+Cj4+Pj4gT24gNi8yNS8y MSA3OjM4IFBNLCBSdWhsLCBNaWNoYWVsIEogd3JvdGU6Cj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQo+Pj4+Pj4gRnJvbTogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ry b21AbGludXguaW50ZWwuY29tPgo+Pj4+Pj4gU2VudDogRnJpZGF5LCBKdW5lIDI1LCAyMDIxIDEy OjE4IFBNCj4+Pj4+PiBUbzogUnVobCwgTWljaGFlbCBKIDxtaWNoYWVsLmoucnVobEBpbnRlbC5j b20+OyBpbnRlbC0KPj4+Pj4+IGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+IENjOiBBdWxkLCBNYXR0aGV3IDxtYXR0aGV3LmF1 bGRAaW50ZWwuY29tPgo+Pj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCA0LzRdIGRybS9pOTE1L2dl bTogTWlncmF0ZSB0byBzeXN0ZW0gYXQgZG1hLWJ1Zgo+Pj4+IG1hcAo+Pj4+Pj4gdGltZQo+Pj4+ Pj4KPj4+Pj4+IEhpLCBNaWNoYWVsLAo+Pj4+Pj4KPj4+Pj4+IHRoYW5rcyBmb3IgbG9va2luZyBh dCB0aGlzLgo+Pj4+Pj4KPj4+Pj4+IE9uIDYvMjUvMjEgNjowMiBQTSwgUnVobCwgTWljaGFlbCBK IHdyb3RlOgo+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+Pj4+Pj4+PiBGcm9t OiBkcmktZGV2ZWwgPGRyaS1kZXZlbC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gT24K Pj4gQmVoYWxmCj4+Pj4gT2YKPj4+Pj4+Pj4gVGhvbWFzIEhlbGxzdHLDtm0KPj4+Pj4+Pj4gU2Vu dDogVGh1cnNkYXksIEp1bmUgMjQsIDIwMjEgMjozMSBQTQo+Pj4+Pj4+PiBUbzogaW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ Pj4+Pj4+PiBDYzogVGhvbWFzIEhlbGxzdHLDtm0gPHRob21hcy5oZWxsc3Ryb21AbGludXguaW50 ZWwuY29tPjsgQXVsZCwKPj4+Pj4+IE1hdHRoZXcKPj4+Pj4+Pj4gPG1hdHRoZXcuYXVsZEBpbnRl bC5jb20+Cj4+Pj4+Pj4+IFN1YmplY3Q6IFtQQVRDSCA0LzRdIGRybS9pOTE1L2dlbTogTWlncmF0 ZSB0byBzeXN0ZW0gYXQgZG1hLWJ1Zgo+PiBtYXAKPj4+Pj4+IHRpbWUKPj4+Pj4+Pj4gVW50aWwg d2Ugc3VwcG9ydCBwMnAgZG1hIG9yIGFzIGEgY29tcGxlbWVudCB0byB0aGF0LCBtaWdyYXRlIGRh dGEKPj4+Pj4+Pj4gdG8gc3lzdGVtIG1lbW9yeSBhdCBkbWEtYnVmIG1hcCB0aW1lIGlmIHBvc3Np YmxlLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSGVsbHN0csO2bQo+ PiA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+Cj4+Pj4+Pj4+IC0tLQo+Pj4+Pj4+ PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZG1hYnVmLmMgfCA5ICsrKysrKysr LQo+Pj4+Pj4+PiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v aTkxNV9nZW1fZG1hYnVmLmMKPj4+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fZG1hYnVmLmMKPj4+Pj4+Pj4gaW5kZXggNjE2YzNhMmYxYmFmLi5hNTJmODg1YmMwOWEg MTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9k bWFidWYuYwo+Pj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f ZG1hYnVmLmMKPj4+Pj4+Pj4gQEAgLTI1LDcgKzI1LDE0IEBAIHN0YXRpYyBzdHJ1Y3Qgc2dfdGFi bGUKPj4+Pj4+ICppOTE1X2dlbV9tYXBfZG1hX2J1ZihzdHJ1Y3QKPj4+Pj4+Pj4gZG1hX2J1Zl9h dHRhY2htZW50ICphdHRhY2htZQo+Pj4+Pj4+PiAJc3RydWN0IHNjYXR0ZXJsaXN0ICpzcmMsICpk c3Q7Cj4+Pj4+Pj4+IAlpbnQgcmV0LCBpOwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtCXJldCA9IGk5MTVf Z2VtX29iamVjdF9waW5fcGFnZXNfdW5sb2NrZWQob2JqKTsKPj4+Pj4+Pj4gKwlyZXQgPSBpOTE1 X2dlbV9vYmplY3RfbG9ja19pbnRlcnJ1cHRpYmxlKG9iaiwgTlVMTCk7Cj4+Pj4+Pj4gSG1tLCBJ IGJlbGlldmUgaW4gbW9zdCBjYXNlcyB0aGF0IHRoZSBjYWxsZXIgc2hvdWxkIGJlIGhvbGRpbmcg dGhlCj4+Pj4+Pj4gbG9jayAob2JqZWN0IGRtYS1yZXN2KSBvbiB0aGlzIG9iamVjdCBhbHJlYWR5 Lgo+Pj4+Pj4gWWVzLCBJIGFncmVlLCBJbiBwYXJ0aWN1bGFyIGZvciBvdGhlciBpbnN0YW5jZXMg b2Ygb3VyIG93biBkcml2ZXIswqAgYXQKPj4+Pj4+IGxlYXN0IHNpbmNlIHRoZSBkbWFfcmVzdiBp bnRyb2R1Y3Rpb24uCj4+Pj4+Pgo+Pj4+Pj4gQnV0IEkgYWxzbyB0aGluayB0aGF0J3MgYSBwcmUt ZXhpc3RpbmcgYnVnLCBzaW5jZQo+Pj4+Pj4gaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlc191bmxv Y2tlZCgpIHdpbGwgYWxzbyB0YWtlIHRoZSBsb2NrLgo+Pj4+PiBPdWNoIHllcy4gIE1pc3NlZCB0 aGF0Lgo+Pj4+Pgo+Pj4+Pj4gSSBUaGluayB3ZSBuZWVkIHRvIGluaXRpYWxseSBtYWtlIHRoZSBl eHBvcnRlciBkeW5hbWljLWNhcGFibGUgdG8KPj4+Pj4+IHJlc29sdmUgdGhpcywgYW5kIGRyb3Ag dGhlIGxvY2tpbmcgaGVyZSBjb21wbGV0ZWx5LCBhcyBkbWEtYnVmIGRvY3Mgc2F5cwo+Pj4+Pj4g dGhhdCB3ZSdyZSB0aGVuIGd1YXJhbnRlZWQgdG8gZ2V0IGNhbGxlZCB3aXRoIHRoZSBvYmplY3Qg bG9jayBoZWxkLgo+Pj4+Pj4KPj4+Pj4+IEkgZmlndXJlIGlmIHdlIG1ha2UgdGhlIGV4cG9ydGVy IGR5bmFtaWMsIHdlIG5lZWQgdG8gbWlncmF0ZSBhbHJlYWR5IGF0Cj4+Pj4+PiBkbWFfYnVmX3Bp biB0aW1lIHNvIHdlIGRvbid0IHBpbiB0aGUgb2JqZWN0IGluIHRoZSB3cm9uZyBsb2NhdGlvbi4K Pj4+Pj4gVGhlIGV4cG9ydGVyIGFzIGR5bmFtaWMgIChvcHMtPnBpbiBpcyBhdmFpbGFibGUpIGlz IG9wdGlvbmFsLCBidXQgaW1wb3J0ZXIKPj4+Pj4gZHluYW1pYyAob3BzLT5tb3ZlX25vdGlmeSkg aXMgcmVxdWlyZWQuCj4+Pj4+Cj4+Pj4+IFdpdGggdGhhdCBpbiBtaW5kLCBpdCB3b3VsZCBzZWVt IHRoYXQgdGhlcmUgYXJlIHRocmVlIHBvc3NpYmxlCj4+IGNvbWJpbmF0aW9ucwo+Pj4+PiBmb3Ig dGhlIG1pZ3JhdGUgdG8gYmUgYXR0ZW1wdGVkOgo+Pj4+Pgo+Pj4+PiAxKSBpbiB0aGUgb3BzLT5w aW4gZnVuY3Rpb24gKGV4cG9ydF9keW5hbWljICE9IGltcG9ydF9keW5hbWljLCBkdXJpbmcKPj4+ PiBhdHRhY2gpCj4+Pj4+IDIpIGluIHRoZSBvcHMtPnBpbiBmdW5jdGlvbiAoZXhwb3J0X2R5bmFt aWMgYW5kCj4+Pj4gIUNPTkZJR19ETUFCVUZfTU9WRV9OT1RJRlkpIGR1cmluZyBtYXBwaW5nCj4+ Pj4+IDMpIGFuZCBwb3NzaWJseSBpbiBvcHMtPm1hcF9kbWFfYnVmIChleG9ydF9keW5hbWljIGlh bmQKPj4+PiBDT05GSUdfRE1BQlVGX01PVkVfTk9USUZZKQo+Pj4+PiBTaW5jZSBvbmUgcG9zc2li aWxpdHkgaGFzIHRvIGJlIGluIHRoZSBtYXBwaW5nIGZ1bmN0aW9uLCBpdCBzZWVtcyB0aGF0IGlm IHdlCj4+Pj4+IGNhbiBmaWd1cmUgb3V0IHRoZSBsb2NraW5nLCB0aGF0IHRoZSBtaWdyYXRlIHNo b3VsZCBwcm9iYWJseSBiZSBhdmFpbGFibGUKPj4+PiBoZXJlLgo+Pj4+PiBNaWtlCj4+Pj4gU28g cGVyaGFwcyBqdXN0IHRvIGluaXRpYWxseSBmaXggdGhlIGJ1Zywgd2UgY291bGQganVzdCBpbXBs ZW1lbnQgTk9QCj4+Pj4gcGluKCkgYW5kIHVucGluKCkgY2FsbGJhY2tzIGFuZCBkcm9wIHRoZSBs b2NraW5nIGluIG1hcF9hdHRhY2goKSBhbmQKPj4+PiByZXBsYWNlIGl0IHdpdGggYW4gYXNzZXJ0 X29iamVjdF9oZWxkKCk7Cj4+PiBUaGF0IGlzIHRoZSBzdGlja3kgcGFydCBvZiB0aGUgbW92ZSBu b3RpZnkgQVBJLgo+Pj4KPj4+IElmIHlvdSBkbyB0aGUgYXR0YWNoX2R5bmFtaWMgeW91IGhhdmUg dG8gaGF2ZSBhbiBvcHMgd2l0aCBtb3ZlX25vdGlmeS4KPj4+Cj4+PiAoaHR0cHM6Ly9lbGl4aXIu Ym9vdGxpbi5jb20vbGludXgvdjUuMTMtcmM3L3NvdXJjZS9kcml2ZXJzL2RtYS1idWYvZG1hLQo+ PiBidWYuYyNMNzMwKQo+Pj4gSWYgeW91IGRvbid0IGhhdmUgdGhhdCwgaS5lLiBqdXN0IHRoZSBw aW4gaW50ZXJmYWNlLCB0aGUgYXR0YWNoIHdpbGwgYmUKPj4+IHJlamVjdGVkLCBhbmQgeW91IHdp bGwgbm90IGdldCB0aGUgY2FsbGJhY2tzLgo+PiBJIHVuZGVyc3Rvb2QgdGhhdCBhcyB0aGUgcmVx dWlyZW1lbnQgZm9yIG1vdmVfbm90aWZ5IGlzIG9ubHkgaWYgdGhlCj4+ICppbXBvcnRlciogZGVj bGFyZXMgZHluYW1pYy4gQSBkeW5hbWljIGV4cG9ydGVyIGNvdWxkIGNob29zZSB3aGV0aGVyIHRv Cj4+IGNhbGwgbW92ZV9ub3RpZnkoKSBvbiBldmljdGlvbiBvciB0byBwaW4gYW5kIG5ldmVyIGV2 aWN0LiBJZiB0aGUKPj4gaW1wb3J0ZXIgaXMgbm9uLWR5bmFtaWMsIHRoZSBjb3JlIGNhbGxzIHBp bigpIGFuZCB0aGUgb25seSBjaG9pY2UgaXMgdG8KPj4gcGluIGFuZCBuZXZlciBldmljdC4KPj4K Pj4gU28gaWYgd2UgdGVtcG9yYXJpbHkgY2hvb3NlIHRvIHBpbiBhbmQgbmV2ZXIgZXZpY3QgZm9y ICpldmVyeXRoaW5nKiwgKGFzCj4+IHRoZSBjdXJyZW50IGNvZGUgZG9lcyBub3cpLCBJIHRoaW5r IHdlIHNob3VsZCBiZSBnb29kIGZvciBub3csIGFuZCB0aGVuCj4+IHdlIGNhbiBpbXBsZW1lbnQg YWxsIGZhbmN5IHAycCBhbmQgbW92ZV9ub3RpZnkgc3R1ZmYgb24gdG9wIG9mIHRoYXQuCj4gL3Np Z2guCj4KPiBZb3UgYXJlIGNvcnJlY3QuICBJIHdhcyBtaXN0YWtlbmx5IHBsYWNpbmcgdGhlIHBp biBBUEkgKGRtYV9idWZfb3BzKSBpbiB0aGUKPiBhdHRhY2hfb3BzLiDwn5iQIE11c3QgYmUgRnJp ZGF5Lgo+Cj4gVXBvbiBmdXJ0aGVyIHJlZmxlY3Rpb24sIEkgdGhpbmsgdGhhdCB5b3VyIHBhdGgg d2lsbCB3b3JrLgo+Cj4gSG93ZXZlciwgaXMgZG9pbmcgYSBwaW4gKHdpdGggbm8gbG9ja2luZykg ZnJvbSB0aGUgZG1hX2J1Zl9tYXBwaW5nIGFueSBkaWZmZXJlbnQKPiBmcm9tIHVzaW5nIHRoZSBw aW4gQVBJICsgZXhwb3J0X2R5bmFtaWM/Cj4KPiBNCgpZZXMsIGl0J3MgZGlmZmVyZW50IGZvciBk eW5hbWljIGltcG9ydGVycyBvbmx5IHRoYXQgd291bGQgb3RoZXJ3aXNlIApuZXZlciBwaW4sIGFu ZCB3ZSBjb3VsZCBtaXN0YWtlbmx5IGV2aWN0IHRoZSBvYmplY3Qgd2l0aG91dCBoYXZpbmcgCmlt cGxlbWVudGVkIGNhbGxpbmcgbW92ZV9ub3RpZnkuIElmIHdlIHBpbiwgd2UgbmV2ZXIgZXZpY3Qu CgovVGhvbWFzCgoKCj4+IC9UaG9tYXMKPj4KPj4KPj4+IFNvIEkgdGhpbmsgdGhhdCB0aGUgb25s eSB0aGluZyB3ZSBjYW4gZG8gZm9yIG5vdyBpcyB0byBkb3AgdGhlIGxvY2tpbmcgYW5kIGFkZAo+ PiB0aGUKPj4+IGFzc2VydF9vYmplY3RfaGVsZCgpOwo+Pj4KPj4+IE0KPj4KPj4KPj4+PiAvVGhv bWFzCj4+Pj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==