From mboxrd@z Thu Jan 1 00:00:00 1970 From: Neil Armstrong Subject: Re: [PATCH] drm/fb_helper: Allow leaking fbdev smem_start Date: Mon, 24 Sep 2018 10:44:05 +0200 Message-ID: <42c4c2b7-c067-9ce4-77dd-bc6fb899d700@baylibre.com> References: <1537448652-17780-1-git-send-email-narmstrong@baylibre.com> <20180921140740.j7u7etiuqcih5t2m@flea> <20180922085617.GL11082@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id A09996E027 for ; Mon, 24 Sep 2018 08:44:08 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id z3-v6so6946052wrr.13 for ; Mon, 24 Sep 2018 01:44:08 -0700 (PDT) In-Reply-To: <20180922085617.GL11082@phenom.ffwll.local> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Maxime Ripard Cc: Bartlomiej Zolnierkiewicz , Daniel Vetter , dri-devel@lists.freedesktop.org, =?UTF-8?Q?Christian_K=c3=b6nig?= List-Id: dri-devel@lists.freedesktop.org SGkgTWF4aW1lLCBEYW5pZWwsCgpPbiAyMi8wOS8yMDE4IDEwOjU2LCBEYW5pZWwgVmV0dGVyIHdy b3RlOgo+IE9uIEZyaSwgU2VwIDIxLCAyMDE4IGF0IDA0OjA3OjQwUE0gKzAyMDAsIE1heGltZSBS aXBhcmQgd3JvdGU6Cj4+IEhpLAo+Pgo+PiBPbiBUaHUsIFNlcCAyMCwgMjAxOCBhdCAwMzowNDox MlBNICswMjAwLCBOZWlsIEFybXN0cm9uZyB3cm90ZToKPj4+IFNpbmNlICJkcm0vZmI6IFN0b3Ag bGVha2luZyBwaHlzaWNhbCBhZGRyZXNzIiwgdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mCj4+PiB0 aGUgRFJNIGZiZGV2IGVtdWxhdGlvbiBpcyB0byBzZXQgdGhlIHNtZW1fYmFzZSB0byAwIGFuZCBw YXNzIHRoZSBuZXcKPj4+IEZCSU5GT19ISURFX1NNRU1fU1RBUlQgZmxhZy4KPj4+Cj4+PiBUaGUg bWFpbiByZWFzb24gaXMgdG8gYXZvaWQgbGVha2luZyBwaHlzaWNhbCBhZGRyZXNzZSB0byB1c2Vy LXNwYWNlLCBhbmQKPj4+IGl0IGZvbGxvd3MgYSBnZW5lcmFsIG1vdmUgb3ZlciB0aGUga2VybmVs IGNvZGUgdG8gYXZvaWQgdXNlci1zcGFjZSB0bwo+Pj4gbWFuaXB1bGF0ZSBwaHlzaWNhbCBhZGRy ZXNzZXMgYW5kIHRoZW4gdXNlIHNvbWUgb3RoZXIgbWVjaGFuaXNtcyBsaWtlCj4+PiBkbWEtYnVm IHRvIHRyYW5zZmVyIHBoeXNpY2FsIGJ1ZmZlciBoYW5kbGVzIG92ZXIgbXVsdGlwbGUgc3Vic3lz dGVtcy4KPj4+Cj4+PiBCdXQsIGEgbG90IG9mIGRldmljZXMgZGVwZW5kcyBvbiBjbG9zZWQgc291 cmNlcyBiaW5hcmllcyB0byBlbmFibGUKPj4+IE9wZW5HTCBoYXJkd2FyZSBhY2NlbGVyYXRpb24g dGhhdCB1c2VzIHRoaXMgc21lbV9zdGFydCB2YWx1ZSB0bwo+Pj4gcGFzcyBwaHlzaWNhbCBhZGRy ZXNzZXMgdG8gb3V0LW9mLXRyZWUgbW9kdWxlcyBpbiBvcmRlciB0byByZW5kZXIKPj4+IGludG8g dGhlc2UgcGh5c2ljYWwgYWRyZXNzZXMuIFRoZXNlIHNob3VsZCB1c2UgZG1hLWJ1ZiBidWZmZXJz IGFsbG9jYXRlZAo+Pj4gZnJvbSB0aGUgRFJNIGRpc3BsYXkgZGV2aWNlIGluc3RlYWQgYW5kIHN0 b3AgcmVseWluZyBvbiBmYmRldiBvdmVyYWxsb2NhdGlvbgo+Pj4gdG8gZ2F0aGVyIERNQSBtZW1v cnkgKHNvbWUgSFcgdmVuZG9ycyBkZWxpdmVycyBHQk0gYW5kIFdheWxhbmQgY2FwYWJsZQo+Pj4g YmluYXJpZXMsIGJ1dCBvbGRlciB1bnN1cHBvcnRlZCBkZXZpY2VzIHdvbid0IGhhdmUgdGhlc2Ug bmV3IGJpbmFyaWVzCj4+PiBhbmQgYXJlIGRvb21lZCB1bnRpbCBhbiBPcGVuIFNvdXJjZSBzb2x1 dGlvbiBsaWtlIExpbWEgZmluYWxpemVzKS4KPj4+Cj4+PiBTaW5jZSB0aGVzZSBkZXZpY2VzIGhl YXZpbHkgZGVwZW5kcyBvbiB0aGlzIGtpbmQgb2Ygc29mdHdhcmUgYW5kIGJlY2F1c2UKPj4+IHRo ZSBzbWVtX3N0YXJ0IHBvcHVsYXRpb24gd2FzIGF2YWlsYWJsZSBmb3IgeWVhcnMsIGl0J3MgYSBi cmVha2FnZSB0bwo+Pj4gc3RvcCBsZWFraW5nIHNtZW1fc3RhcnQgd2l0aG91dCBhbnkgYWx0ZXJu YXRpdmUgc29sdXRpb25zLgo+Pj4KPj4+IFRoaXMgcGF0Y2ggYWRkcyBhIEtjb25maWcgZGVwZW5k aW5nIG9uIHRoZSBFWFBFUlQgY29uZmlnIGFuZCBhbiB1bnNhZmUKPj4+IGtlcm5lbCBtb2R1bGUg cGFyYW1ldGVyIHRhaW50aW5nIHRoZSBrZXJuZWwgd2hlbiBlbmFibGVkLgo+Pj4KPj4+IEEgY2xl YXIgY29tbWVudCBhbmQgS2NvbmZpZyBoZWxwIHRleHQgd2FzIGFkZGVkIHRvIGNsYXJpZnkgd2h5 IGFuZCB3aGVuCj4+PiB0aGlzIHBhdGNoIHNob3VsZCBiZSByZXZlcnRlZCwgYnV0IGluIHRoZSBt ZWFudGltZSBpdCdzIGEgbmVjZXNzYXJ5Cj4+PiBmZWF0dXJlIHRvIGtlZXAuCj4+Pgo+Pj4gQ2M6 IERhdmUgQWlybGllIDxhaXJsaWVkQGdtYWlsLmNvbT4KPj4+IENjOiBEYW5pZWwgVmV0dGVyIDxk YW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+Pj4gQ2M6IEJhcnRsb21pZWogWm9sbmllcmtpZXdpY3og PGIuem9sbmllcmtpZUBzYW1zdW5nLmNvbT4KPj4+IENjOiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFs ZkB0cm9ubmVzLm9yZz4KPj4+IENjOiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3Rs aW4uY29tPgo+Pj4gQ2M6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+Cj4+PiBDYzogTHVj YXMgU3RhY2ggPGwuc3RhY2hAcGVuZ3V0cm9uaXguZGU+Cj4+PiBDYzogUm9iIENsYXJrIDxyb2Jk Y2xhcmtAZ21haWwuY29tPgo+Pj4gQ2M6IEJlbiBTa2VnZ3MgPHNrZWdnc2JAZ21haWwuY29tPgo+ Pj4gQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+IFNp Z25lZC1vZmYtYnk6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KPj4+ IC0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9LY29uZmlnICAgICAgICAgfCAxNSArKysrKysrKysr KysrKysKPj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jIHwgMzMgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tCj4+PiAgMiBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCj4+PiBpbmRleCA4ODcxYjNmLi5i MDdjMjk4IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKPj4+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9LY29uZmlnCj4+PiBAQCAtMTEwLDYgKzExMCwyMSBAQCBjb25maWcg RFJNX0ZCREVWX09WRVJBTExPQwo+Pj4gIAkgIGlzIDEwMC4gVHlwaWNhbCB2YWx1ZXMgZm9yIGRv dWJsZSBidWZmZXJpbmcgd2lsbCBiZSAyMDAsCj4+PiAgCSAgdHJpcGxlIGJ1ZmZlcmluZyAzMDAu Cj4+PiAgCj4+PiArY29uZmlnIERSTV9GQkRFVl9MRUFLX1BIWVNfU01FTQo+Pj4gKwlib29sICJT aGFtZWxlc3NseSBhbGxvdyBsZWFraW5nIG9mIGZiZGV2IHBoeXNpY2FsIGFkZHJlc3MgKERBTkdF Uk9VUykiCj4+PiArCWRlcGVuZHMgb24gRFJNX0ZCREVWX0VNVUxBVElPTiAmJiBFWFBFUlQKPj4+ ICsJZGVmYXVsdCBuCj4+PiArCWhlbHAKPj4+ICsJICBJbiBvcmRlciB0byBrZWVwIHVzZXItc3Bh Y2UgY29tcGF0aWJpbGl0eSwgd2Ugd2FudCBpbiBjZXJ0YWluCj4+PiArCSAgdXNlLWNhc2VzIHRv IGtlZXAgbGVha2luZyB0aGUgZmJkZXYgcGh5c2ljYWwgYWRkcmVzcyB0byB0aGUKPj4+ICsJICB1 c2VyLXNwYWNlIHByb2dyYW0gaGFuZGxpbmcgdGhlIGZiZGV2IGJ1ZmZlci4KPj4+ICsJICBUaGlz IG9wdGlvbiBpcyBhIHNoYW1lIGFuZCBzaG91bGQgYmUgcmVtb3ZlZCBhcyBzb29uIGFzIHBvc3Np YmxlCj4+PiArCSAgYW5kIGJlIGNvbnNpZGVyZWQgYXMgYSBicm9rZW4gYW5kIGxlZ2FjeSBiZWhh dmlvdXIgZnJvbSBhIG1vZGVybgo+Pj4gKwkgIGZiZGV2IGRldmljZSBkcml2ZXIuCj4gCj4gcy9z aGFtZS9ub3Qgc3VwcG9ydGVkIGJ5IHVwc3RyZWFtIGRldmVsb3BlcnMvCgpBY2sKCj4gCj4gQW5k IG1heWJlIGFkZCAiUGxlYXNlIHNlbmQgYW55IGJ1ZyByZXBvcnRzIHdoZW4gdXNpbmcgdGhpcyB0 byB5b3VyCj4gcHJvcHJpZXRhcnkgc29mdHdhcmUgdmVuZG9yIHRoYXQgcmVxdWlyZXMgdGhpcy4i CgpJdCdzIChzb21laG93KSBvbiB0aGUgZm9sbG93aW5nIGxpbmUgOgoKPj4+ICsJICBJZiBpbiBk b3VidCwgc2F5ICJOIiBvciBzcHJlYWQgdGhlIHdvcmQgdG8geW91ciBjbG9zZWQgc291cmNlCj4+ PiArCSAgbGlicmFyeSB2ZW5kb3IuCgpJIHdpbGwgbWFrZSBpdCBldmVuIHNjYXJpZXIgIQoKPiAK PiBJJ2QgYWxzbyBiZSBpbiBmYXZvdXIgb2YganVzdCBjYWxsaW5nIHRoaXMgdGhlIEFSTSBNYWxp IGJsb2Igb24KPiAkYWZmZWN0ZWRfZGV2aWNlcy4gTWFrZXMgaXQgZWFzaWVyIGZvciBwZW9wbGUg dG8gZmluZCB0aGUgbWFnaWMga25vYgo+IHRoZXkncmUgbG9va2luZyBmb3IsIGlmIHRoZXkncmUg dW5sdWNreSBlbm91Z2ggdG8gaGF2ZSBzdWNoIGEgc29jLgoKSSdtIG5vdCBzdXJlIGl0J3Mgb25s eSBmb3IgTWFsaS4uLiBBbnl3YXkgSSdsbCBhZGQgIk1hbGkiIHRvIGhlbHAKcGVvcGxlIGZpbmRp bmQgaXQuCgo+IAo+Pj4gKwo+Pj4gKwkgIElmIGluIGRvdWJ0LCBzYXkgIk4iIG9yIHNwcmVhZCB0 aGUgd29yZCB0byB5b3VyIGNsb3NlZCBzb3VyY2UKPj4+ICsJICBsaWJyYXJ5IHZlbmRvci4KPj4+ ICsKPj4+ICBjb25maWcgRFJNX0xPQURfRURJRF9GSVJNV0FSRQo+Pj4gIAlib29sICJBbGxvdyB0 byBzcGVjaWZ5IGFuIEVESUQgZGF0YSBzZXQgaW5zdGVhZCBvZiBwcm9iaW5nIGZvciBpdCIKPj4+ ICAJZGVwZW5kcyBvbiBEUk0KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Zi X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+Pj4gaW5kZXggYmYy MTkwYy4uYTM1NDk0NCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVs cGVyLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPj4+IEBAIC01 Niw2ICs1NiwyNSBAQCBNT0RVTEVfUEFSTV9ERVNDKGRybV9mYmRldl9vdmVyYWxsb2MsCj4+PiAg CQkgIk92ZXJhbGxvY2F0aW9uIG9mIHRoZSBmYmRldiBidWZmZXIgKCUpIFtkZWZhdWx0PSIKPj4+ ICAJCSBfX01PRFVMRV9TVFJJTkcoQ09ORklHX0RSTV9GQkRFVl9PVkVSQUxMT0MpICJdIik7Cj4+ PiAgCj4+PiArLyoKPj4+ICsgKiBJbiBvcmRlciB0byBrZWVwIHVzZXItc3BhY2UgY29tcGF0aWJp bGl0eSwgd2Ugd2FudCBpbiBjZXJ0YWluIHVzZS1jYXNlcwo+Pj4gKyAqIHRvIGtlZXAgbGVha2lu ZyB0aGUgZmJkZXYgcGh5c2ljYWwgYWRkcmVzcyB0byB0aGUgdXNlci1zcGFjZSBwcm9ncmFtCj4+ PiArICogaGFuZGxpbmcgdGhlIGZiZGV2IGJ1ZmZlci4KPj4+ICsgKiBUaGlzIGlzIGEgYmFkIGhh Yml0IGVzc2VudGlhbGx5IGtlcHQgaW50byBjbG9zZWQgc291cmNlIG9wZW5nbCBkcml2ZXIKPj4+ ICsgKiB0aGF0IHNob3VsZCByZWFsbHkgYmUgbW92ZWQgaW50byBvcGVuLXNvdXJjZSB1cHN0cmVh bSBwcm9qZWN0cyBpbnN0ZWFkCj4+PiArICogb2YgdXNpbmcgbGVnYWN5IHBoeXNpY2FsIGFkZHJl c3NlcyBpbiB1c2VyIHNwYWNlIHRvIGNvbW11bmljYXRlIHdpdGgKPj4+ICsgKiBvdGhlciBvdXQt b2YtdHJlZSBrZXJuZWwgbW9kdWxlcy4KPj4+ICsgKgo+Pj4gKyAqIFRoaXMgbW9kdWxlX3BhcmFt ICpzaG91bGQqIGJlIHJlbW92ZWQgYXMgc29vbiBhcyBwb3NzaWJsZSBhbmQgYmUKPj4+ICsgKiBj b25zaWRlcmVkIGFzIGEgYnJva2VuIGFuZCBsZWdhY3kgYmVoYXZpb3VyIGZyb20gYSBtb2Rlcm4g ZmJkZXYgZGV2aWNlLgo+Pj4gKyAqLwo+Pj4gKyNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fRkJE RVZfTEVBS19QSFlTX1NNRU0pCj4+PiArc3RhdGljIGJvb2wgZHJtX2xlYWtfZmJkZXZfc21lbSA9 IGZhbHNlOwo+Pj4gK21vZHVsZV9wYXJhbV91bnNhZmUoZHJtX2xlYWtfZmJkZXZfc21lbSwgYm9v bCwgMDYwMCk7Cj4+PiArTU9EVUxFX1BBUk1fREVTQyhmYmRldl9lbXVsYXRpb24sCj4+PiArCQkg IkFsbG93IHVuc2FmZSBsZWFraW5nIGZiZGV2IHBoeXNpY2FsIHNtZW0gYWRkcmVzcyBbZGVmYXVs dD1mYWxzZV0iKTsKPj4+ICsjZW5kaWYKPj4+ICsKPj4+ICBzdGF0aWMgTElTVF9IRUFEKGtlcm5l bF9mYl9oZWxwZXJfbGlzdCk7Cj4+PiAgc3RhdGljIERFRklORV9NVVRFWChrZXJuZWxfZmJfaGVs cGVyX2xvY2spOwo+Pj4gIAo+Pj4gQEAgLTI2NzMsOCArMjY5MiwxMiBAQCBfX2RybV9mYl9oZWxw ZXJfaW5pdGlhbF9jb25maWdfYW5kX3VubG9jayhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVs cGVyLAo+Pj4gIAo+Pj4gIAlpbmZvID0gZmJfaGVscGVyLT5mYmRldjsKPj4+ICAJaW5mby0+dmFy LnBpeGNsb2NrID0gMDsKPj4+IC0JLyogZG9uJ3QgbGVhayBhbnkgcGh5c2ljYWwgYWRkcmVzc2Vz IHRvIHVzZXJzcGFjZSAqLwo+Pj4gLQlpbmZvLT5mbGFncyB8PSBGQklORk9fSElERV9TTUVNX1NU QVJUOwo+Pj4gKwkvKiBTaGFtZWxlc3NseSBhbGxvdyBwaHlzaWNhbCBhZGRyZXNzIGxlYWtpbmcg dG8gdXNlcnNwYWNlICovCj4+PiArI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9GQkRFVl9MRUFL X1BIWVNfU01FTSkKPj4+ICsJaWYgKCFkcm1fbGVha19mYmRldl9zbWVtKQo+Pj4gKyNlbmRpZgo+ Pgo+PiBZb3UgY2FuIHVzZSB0aGUgSVNfRU5BQkxFRCBkaXJlY3R5IHdpdGhpbiB0aGUgaWYgc3Rh dGVtZW50LiBJdCB3b3VsZAo+PiBtYWtlIHRoZSBjb2RlIGEgYml0IG5pY2VyLgoKSXQgd291bGQs IGJ1dCAwMS5vcmcgc2VuZCBtZSB1Z2x5IG1haWxzIHdpdGggdW5kZWNsYXJlZCBlcnJvcnMuLi4K Cj4+Cj4+PiArCQkvKiBkb24ndCBsZWFrIGFueSBwaHlzaWNhbCBhZGRyZXNzZXMgdG8gdXNlcnNw YWNlICovCj4+PiArCQlpbmZvLT5mbGFncyB8PSBGQklORk9fSElERV9TTUVNX1NUQVJUOwo+Pj4g IAo+Pj4gIAkvKiBOZWVkIHRvIGRyb3AgbG9ja3MgdG8gYXZvaWQgcmVjdXJzaXZlIGRlYWRsb2Nr IGluCj4+PiAgCSAqIHJlZ2lzdGVyX2ZyYW1lYnVmZmVyLiBUaGlzIGlzIG9rIGJlY2F1c2UgdGhl IG9ubHkgdGhpbmcgbGVmdCB0byBkbyBpcwo+Pj4gQEAgLTMwODMsNiArMzEwNiwxMiBAQCBpbnQg ZHJtX2ZiX2hlbHBlcl9nZW5lcmljX3Byb2JlKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxw ZXIsCj4+PiAgCWZiaS0+ZmJvcHMgPSAmZHJtX2ZiZGV2X2ZiX29wczsKPj4+ICAJZmJpLT5zY3Jl ZW5fc2l6ZSA9IGZiLT5oZWlnaHQgKiBmYi0+cGl0Y2hlc1swXTsKPj4+ICAJZmJpLT5maXguc21l bV9sZW4gPSBmYmktPnNjcmVlbl9zaXplOwo+Pj4gKwkvKiBTaGFtZWxlc3NseSBsZWFrIHRoZSBw aHlzaWNhbCBhZGRyZXNzIHRvIHVzZXItc3BhY2UgKi8KPj4+ICsjaWYgSVNfRU5BQkxFRChDT05G SUdfRFJNX0ZCREVWX0xFQUtfUEhZU19TTUVNKQo+Pj4gKwlpZiAoZHJtX2xlYWtfZmJkZXZfc21l bSkKPj4+ICsJCWZiaS0+Zml4LnNtZW1fc3RhcnQgPQo+Pj4gKwkJCXBhZ2VfdG9fcGh5cyh2aXJ0 X3RvX3BhZ2UoZmJpLT5zY3JlZW5fYnVmZmVyKSk7Cj4+PiArI2VuZGlmCj4+Cj4+IGZiaS0+c2Ny ZWVuX2J1ZmZlciBpcyBvbmx5IHNldC4uCj4+Cj4+PiAgCWZiaS0+c2NyZWVuX2J1ZmZlciA9IGJ1 ZmZlci0+dmFkZHI7Cj4+Cj4+IC4uIGF0IHRoZSBuZXh0IGxpbmUuIE1vdmluZyB0aGF0IGxpbmUg YmVmb3JlIHRoZSBpZiBzdGF0ZW1lbnQgd29ya3MuCgpPb3BzLCB3aWxsIGZpeC4uLgoKPj4KPj4g V2l0aCB0aGF0IGZpeGVkLCBhbmQgdGhlIElTX0VOQUJMRUQgaW4gdGhlIGlmCj4+Cj4+IFJldmll d2VkLWJ5OiBNYXhpbWUgUmlwYXJkIDxtYXhpbWUucmlwYXJkQGJvb3RsaW4uY29tPgo+PiBUZXN0 ZWQtYnk6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAYm9vdGxpbi5jb20+Cj4gCj4gSSB0 aGluayBhbGwgdGhlIGhlbHAgdGV4dCBpcyBzdWZmaWNpZW50bHkgdG8gc2NhcmUgcGVvcGxlIGF3 YXkgZnJvbSB1c2luZwo+IHRoaXMgYnkgYWNjaWRlbnQuCj4gCj4gQWNrZWQtYnk6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpUaGFua3MsCk5laWwKCj4+Cj4+IFRoYW5r cyEKPj4gTWF4aW1lCj4+Cj4+IC0tIAo+PiBNYXhpbWUgUmlwYXJkLCBCb290bGluCj4+IEVtYmVk ZGVkIExpbnV4IGFuZCBLZXJuZWwgZW5naW5lZXJpbmcKPj4gaHR0cHM6Ly9ib290bGluLmNvbQo+ IAo+IAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==