From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 2/6] drm/i915: Tidy batch pool logic Date: Tue, 17 Mar 2015 17:42:12 +0000 Message-ID: <55086774.2010300@linux.intel.com> References: <1425894946-10351-1-git-send-email-chris@chris-wilson.co.uk> <1425894946-10351-2-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 1207E6E773 for ; Tue, 17 Mar 2015 10:42:15 -0700 (PDT) In-Reply-To: <1425894946-10351-2-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKVGlkeSBpcyBzbWFsbCB1bmRlcnN0YXRlbWVudCBidXQgT0suLiA6KSBpbmxpbmUuLgoK T24gMDMvMDkvMjAxNSAwOTo1NSBBTSwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IE1vdmUgdGhlIG1h ZHZpc2UgbG9naWMgb3V0IG9mIHRoZSBleGVjYnVmZmVyIG1haW4gcGF0aCBpbnRvIHRoZQo+IHJl bGF0aXZlbHkgcmFyZSBhbGxvY2F0aW9uIHBhdGgsIG1ha2luZyB0aGUgZXhlY2J1ZmZlciBtYW5p cHVsYXRpb24gbGVzcwo+IGZyYWdpbGUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfY21kX3BhcnNlci5jICAgICB8IDEyICsrKy0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5jIHwgMzkgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAx MyArKysrLS0tLS0tCj4gICAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDM3IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21k X3BhcnNlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKPiBpbmRl eCA5YTZkYTM1MzZhZTUuLjNlNWU4Y2I1NGE4OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfY21kX3BhcnNlci5jCj4gQEAgLTg2Niw2ICs4NjYsOSBAQCBzdGF0aWMgdTMyICpjb3B5X2Jh dGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpkZXN0X29iaiwKPiAgIAkgICAgYmF0Y2hf bGVuICsgYmF0Y2hfc3RhcnRfb2Zmc2V0ID4gc3JjX29iai0+YmFzZS5zaXplKQo+ICAgCQlyZXR1 cm4gRVJSX1BUUigtRTJCSUcpOwo+Cj4gKwlpZiAoV0FSTl9PTihkZXN0X29iai0+cGFnZXNfcGlu X2NvdW50ID09IDApKQo+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwo+ICsKPiAgIAlyZXQg PSBpOTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV9yZWFkKHNyY19vYmosICZuZWVkc19jbGZsdXNo KTsKPiAgIAlpZiAocmV0KSB7Cj4gICAJCURSTV9ERUJVR19EUklWRVIoIkNNRDogZmFpbGVkIHRv IHByZXBhcmUgc2hhZG93IGJhdGNoXG4iKTsKPiBAQCAtODc5LDEzICs4ODIsNiBAQCBzdGF0aWMg dTMyICpjb3B5X2JhdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpkZXN0X29iaiwKPiAg IAkJZ290byB1bnBpbl9zcmM7Cj4gICAJfQo+Cj4gLQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0 X3BhZ2VzKGRlc3Rfb2JqKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlEUk1fREVCVUdfRFJJVkVSKCJD TUQ6IEZhaWxlZCB0byBnZXQgcGFnZXMgZm9yIHNoYWRvdyBiYXRjaFxuIik7Cj4gLQkJZ290byB1 bm1hcF9zcmM7Cj4gLQl9Cj4gLQlpOTE1X2dlbV9vYmplY3RfcGluX3BhZ2VzKGRlc3Rfb2JqKTsK PiAtCj4gICAJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19jcHVfZG9tYWluKGRlc3Rfb2Jq LCB0cnVlKTsKPiAgIAlpZiAocmV0KSB7Cj4gICAJCURSTV9ERUJVR19EUklWRVIoIkNNRDogRmFp bGVkIHRvIHNldCBzaGFkb3cgYmF0Y2ggdG8gQ1BVXG4iKTsKPiBAQCAtODk1LDcgKzg5MSw2IEBA IHN0YXRpYyB1MzIgKmNvcHlfYmF0Y2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmRlc3Rf b2JqLAo+ICAgCWRzdCA9IHZtYXBfYmF0Y2goZGVzdF9vYmosIDAsIGJhdGNoX2xlbik7Cj4gICAJ aWYgKCFkc3QpIHsKPiAgIAkJRFJNX0RFQlVHX0RSSVZFUigiQ01EOiBGYWlsZWQgdG8gdm1hcCBz aGFkb3cgYmF0Y2hcbiIpOwo+IC0JCWk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhkZXN0X29i aik7Cj4gICAJCXJldCA9IC1FTk9NRU07Cj4gICAJCWdvdG8gdW5tYXBfc3JjOwo+ICAgCX0KCk15 IHRyZWUsIG9yIG1heWJlIHRoZSBjdXJyZW50IHRyZWUsIGhhcyBhbm90aGVyIHVucGluIHVuZGVy IHVucGluX3NyYyAKbGFiZWwsIHNvIHBlcmhhcHMgeW91J2xsIG5lZWQgdG8gcmViYXNlPwoKPiBA QCAtMTEyNiw3ICsxMTIxLDYgQEAgaW50IGk5MTVfcGFyc2VfY21kcyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLAo+ICAgCX0KPgo+ICAgCXZ1bm1hcChiYXRjaF9iYXNlKTsKPiAtCWk5MTVf Z2VtX29iamVjdF91bnBpbl9wYWdlcyhzaGFkb3dfYmF0Y2hfb2JqKTsKPgo+ICAgCXJldHVybiBy ZXQ7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Jh dGNoX3Bvb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwo+ IGluZGV4IDU2NGJlN2M1ZWE3ZS4uMjFmMzM1NmNjMGFiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuYwo+IEBAIC02NywyNSArNjcsMjMgQEAgdm9pZCBp OTE1X2dlbV9iYXRjaF9wb29sX2Zpbmkoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wp Cj4gICAJCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwKPiAgIAkJCQkJIGJhdGNoX3Bv b2xfbGlzdCk7Cj4KPiAtCQlXQVJOX09OKG9iai0+YWN0aXZlKTsKPiAtCj4gLQkJbGlzdF9kZWxf aW5pdCgmb2JqLT5iYXRjaF9wb29sX2xpc3QpOwo+ICsJCWxpc3RfZGVsKCZvYmotPmJhdGNoX3Bv b2xfbGlzdCk7Cj4gICAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmotPmJhc2UpOwo+ ICAgCX0KPiAgIH0KPgo+ICAgLyoqCj4gLSAqIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfZ2V0KCkgLSBz ZWxlY3QgYSBidWZmZXIgZnJvbSB0aGUgcG9vbAo+ICsgKiBpOTE1X2dlbV9iYXRjaF9wb29sX2dl dCgpIC0gYWxsb2NhdGUgYSBidWZmZXIgZnJvbSB0aGUgcG9vbAo+ICAgICogQHBvb2w6IHRoZSBi YXRjaCBidWZmZXIgcG9vbAo+ICAgICogQHNpemU6IHRoZSBtaW5pbXVtIGRlc2lyZWQgc2l6ZSBv ZiB0aGUgcmV0dXJuZWQgYnVmZmVyCj4gICAgKgo+IC0gKiBGaW5kcyBvciBhbGxvY2F0ZXMgYSBi YXRjaCBidWZmZXIgaW4gdGhlIHBvb2wgd2l0aCBhdCBsZWFzdCB0aGUgcmVxdWVzdGVkCj4gLSAq IHNpemUuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGFueSBkb21haW4sIGFjdGl2ZS9p bmFjdGl2ZSwgb3IKPiAtICogcHVyZ2VhYmlsaXR5IG1hbmFnZW1lbnQgZm9yIHRoZSByZXR1cm5l ZCBidWZmZXIuCj4gKyAqIFJldHVybnMgYW4gaW5hY3RpdmUgYnVmZmVyIGZyb20gQHBvb2wgd2l0 aCBhdCBsZWFzdCBAc2l6ZSBieXRlcywKPiArICogd2l0aCB0aGUgcGFnZXMgcGlubmVkLiBUaGUg Y2FsbGVyIG11c3QgaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKCkKPiArICogb24gdGhlIHJl dHVybmVkIG9iamVjdC4KPiAgICAqCj4gICAgKiBOb3RlOiBDYWxsZXJzIG11c3QgaG9sZCB0aGUg c3RydWN0X211dGV4Cj4gICAgKgo+IC0gKiBSZXR1cm46IHRoZSBzZWxlY3RlZCBiYXRjaCBidWZm ZXIgb2JqZWN0Cj4gKyAqIFJldHVybjogdGhlIGJ1ZmZlciBvYmplY3Qgb3IgYW4gZXJyb3IgcG9p bnRlcgo+ICAgICovCj4gICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCj4gICBpOTE1X2dl bV9iYXRjaF9wb29sX2dldChzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwKPiBAQCAt OTcsOCArOTUsNyBAQCBpOTE1X2dlbV9iYXRjaF9wb29sX2dldChzdHJ1Y3QgaTkxNV9nZW1fYmF0 Y2hfcG9vbCAqcG9vbCwKPiAgIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJnBvb2wtPmRldi0+ c3RydWN0X211dGV4KSk7Cj4KPiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodG1wLCBuZXh0 LAo+IC0JCQkmcG9vbC0+Y2FjaGVfbGlzdCwgYmF0Y2hfcG9vbF9saXN0KSB7Cj4gLQo+ICsJCQkJ ICZwb29sLT5jYWNoZV9saXN0LCBiYXRjaF9wb29sX2xpc3QpIHsKPiAgIAkJaWYgKHRtcC0+YWN0 aXZlKQo+ICAgCQkJY29udGludWU7Cj4KPiBAQCAtMTE0LDI1ICsxMTEsMjcgQEAgaTkxNV9nZW1f YmF0Y2hfcG9vbF9nZXQoc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgKnBvb2wsCj4gICAJCSAq IGJ1dCBub3QgJ3RvbyBtdWNoJyBiaWdnZXIuIEEgYmV0dGVyIHdheSB0byBkbyB0aGlzCj4gICAJ CSAqIG1pZ2h0IGJlIHRvIGJ1Y2tldCB0aGUgcG9vbCBvYmplY3RzIGJhc2VkIG9uIHNpemUuCj4g ICAJCSAqLwo+IC0JCWlmICh0bXAtPmJhc2Uuc2l6ZSA+PSBzaXplICYmCj4gLQkJICAgIHRtcC0+ YmFzZS5zaXplIDw9ICgyICogc2l6ZSkpIHsKPiArCQlpZiAodG1wLT5iYXNlLnNpemUgPj0gc2l6 ZSAmJiB0bXAtPmJhc2Uuc2l6ZSA8PSAyICogc2l6ZSkgewo+ICAgCQkJb2JqID0gdG1wOwo+ICAg CQkJYnJlYWs7Cj4gICAJCX0KPiAgIAl9Cj4KPiAtCWlmICghb2JqKSB7Cj4gKwlpZiAob2JqID09 IE5VTEwpIHsKPiArCQlpbnQgcmV0Owo+ICsKPiAgIAkJb2JqID0gaTkxNV9nZW1fYWxsb2Nfb2Jq ZWN0KHBvb2wtPmRldiwgc2l6ZSk7Cj4gLQkJaWYgKCFvYmopCj4gKwkJaWYgKG9iaiA9PSBOVUxM KQo+ICAgCQkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4KPiAtCQlsaXN0X2FkZF90YWlsKCZv YmotPmJhdGNoX3Bvb2xfbGlzdCwgJnBvb2wtPmNhY2hlX2xpc3QpOwo+IC0JfQo+IC0JZWxzZQo+ IC0JCS8qIEtlZXAgbGlzdCBpbiBMUlUgb3JkZXIgKi8KPiAtCQlsaXN0X21vdmVfdGFpbCgmb2Jq LT5iYXRjaF9wb29sX2xpc3QsICZwb29sLT5jYWNoZV9saXN0KTsKPiArCQlyZXQgPSBpOTE1X2dl bV9vYmplY3RfZ2V0X3BhZ2VzKG9iaik7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIEVSUl9Q VFIocmV0KTsKPgo+IC0Jb2JqLT5tYWR2ID0gSTkxNV9NQURWX1dJTExORUVEOwo+ICsJCW9iai0+ bWFkdiA9IEk5MTVfTUFEVl9ET05UTkVFRDsKPiArCX0KPgo+ICsJbGlzdF9tb3ZlX3RhaWwoJm9i ai0+YmF0Y2hfcG9vbF9saXN0LCAmcG9vbC0+Y2FjaGVfbGlzdCk7Cj4gKwlpOTE1X2dlbV9vYmpl Y3RfcGluX3BhZ2VzKG9iaik7Cj4gICAJcmV0dXJuIG9iajsKPiAgIH0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggNTg1MzcwNzlkM2Q3Li4zNmY4 ZjA1OTI4ZDEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhl Y2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jCj4gQEAgLTM3LDcgKzM3LDYgQEAKPiAgICNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfSEFTX0ZF TkNFICgxPDwzMCkKPiAgICNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfTkVFRFNfTUFQICgxPDwyOSkK PiAgICNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUyAoMTw8MjgpCj4gLSNkZWZpbmUg IF9fRVhFQ19PQkpFQ1RfUFVSR0VBQkxFICgxPDwyNykKPgo+ICAgI2RlZmluZSBCQVRDSF9PRkZT RVRfQklBUyAoMjU2KjEwMjQpCj4KPiBAQCAtMjI0LDEyICsyMjMsNyBAQCBpOTE1X2dlbV9leGVj YnVmZmVyX3VucmVzZXJ2ZV92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gICAJaWYgKGVudHJ5 LT5mbGFncyAmIF9fRVhFQ19PQkpFQ1RfSEFTX1BJTikKPiAgIAkJdm1hLT5waW5fY291bnQtLTsK Pgo+IC0JaWYgKGVudHJ5LT5mbGFncyAmIF9fRVhFQ19PQkpFQ1RfUFVSR0VBQkxFKQo+IC0JCW9i ai0+bWFkdiA9IEk5MTVfTUFEVl9ET05UTkVFRDsKPiAtCj4gLQllbnRyeS0+ZmxhZ3MgJj0gfihf X0VYRUNfT0JKRUNUX0hBU19GRU5DRSB8Cj4gLQkJCSAgX19FWEVDX09CSkVDVF9IQVNfUElOIHwK PiAtCQkJICBfX0VYRUNfT0JKRUNUX1BVUkdFQUJMRSk7Cj4gKwllbnRyeS0+ZmxhZ3MgJj0gfihf X0VYRUNfT0JKRUNUX0hBU19GRU5DRSB8IF9fRVhFQ19PQkpFQ1RfSEFTX1BJTik7Cj4gICB9Cj4K PiAgIHN0YXRpYyB2b2lkIGViX2Rlc3Ryb3koc3RydWN0IGViX3ZtYXMgKmViKQo+IEBAIC0xMTgx LDExICsxMTc1LDEzIEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcGFyc2Uoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKPiAgIAlpZiAocmV0KQo+ICAgCQlnb3RvIGVycjsKPgo+ICsJaTkxNV9n ZW1fb2JqZWN0X3VucGluX3BhZ2VzKHNoYWRvd19iYXRjaF9vYmopOwo+ICsKPiAgIAltZW1zZXQo c2hhZG93X2V4ZWNfZW50cnksIDAsIHNpemVvZigqc2hhZG93X2V4ZWNfZW50cnkpKTsKPgo+ICAg CXZtYSA9IGk5MTVfZ2VtX29ial90b19nZ3R0KHNoYWRvd19iYXRjaF9vYmopOwo+ICAgCXZtYS0+ ZXhlY19lbnRyeSA9IHNoYWRvd19leGVjX2VudHJ5Owo+IC0Jdm1hLT5leGVjX2VudHJ5LT5mbGFn cyA9IF9fRVhFQ19PQkpFQ1RfUFVSR0VBQkxFIHwgX19FWEVDX09CSkVDVF9IQVNfUElOOwo+ICsJ dm1hLT5leGVjX2VudHJ5LT5mbGFncyA9IF9fRVhFQ19PQkpFQ1RfSEFTX1BJTjsKPiAgIAlkcm1f Z2VtX29iamVjdF9yZWZlcmVuY2UoJnNoYWRvd19iYXRjaF9vYmotPmJhc2UpOwo+ICAgCWxpc3Rf YWRkX3RhaWwoJnZtYS0+ZXhlY19saXN0LCAmZWItPnZtYXMpOwo+Cj4gQEAgLTExOTQsNiArMTE5 MCw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcGFyc2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKPiAgIAlyZXR1cm4gc2hhZG93X2JhdGNoX29iajsKPgo+ICAgZXJyOgo+ICsJaTkxNV9n ZW1fb2JqZWN0X3VucGluX3BhZ2VzKHNoYWRvd19iYXRjaF9vYmopOwo+ICAgCWlmIChyZXQgPT0g LUVBQ0NFUykgLyogdW5oYW5kbGVkIGNoYWluZWQgYmF0Y2ggKi8KPiAgIAkJcmV0dXJuIGJhdGNo X29iajsKPiAgIAllbHNlCj4KCkxldHMgc2VlIGlmIEkgZ290IGl0IHJpZ2h0OiBCeSBtYWtpbmcg dGhlIHJldHVybmVkIG9iamVjdCBwaW5uZWQgYW5kIApoYXZpbmcgdGhlIGNhbGxlciB1bnBpbiB3 aGVuIGRvbmUgd2l0aCBpdCwgaXQgbm93IGNhbiBhbHdheXMgYmUgaW4gCiJkb250bmVlZCIgc3Rh dGUsIGFuZCB3aWxsIGJlIGEgc2hyaW5rZXIgY2FuZGlkYXRlIG9ubHkgKG9yIGFzIHNvb24pIAp3 aGVuIGl0IGlzIHVucGlubmVkLCBjb3JyZWN0PwoKSSBqdXN0IGRvbid0IGdldCBhdCB0aGUgbW9t ZW50LCBpZiBwcmV2aW91c2x5IHRoZXJlIHdhcyBzb21lIHJhY2Ugb3IgYmFkIAppbnRlcmFjdGlv biB3aXRoIGxlc3MgcGlubmluZyBhbmQgdGhhdCBzaWduYWxpbmcgdXNpbmcgCl9FWEVDX09CSkVD VF9QVVJHRUFCTEU/CgpSZWdhcmRzLAoKVHZydGtvCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=