From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v9 6/6] drm/dp_mst: Add helpers for MST DSC and virtual DPCD aux Date: Tue, 27 Aug 2019 17:52:38 +0300 Message-ID: <877e6y8xu1.fsf@intel.com> References: <20190827141329.30767-1-David.Francis@amd.com> <20190827141329.30767-7-David.Francis@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id B0201896C4 for ; Tue, 27 Aug 2019 14:52:41 +0000 (UTC) In-Reply-To: <20190827141329.30767-7-David.Francis@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: David Francis List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAyNyBBdWcgMjAxOSwgRGF2aWQgRnJhbmNpcyA8RGF2aWQuRnJhbmNpc0BhbWQuY29t PiB3cm90ZToKPiBBZGQgZHJtX2RwX21zdF9kc2NfYXV4X2Zvcl9wb3J0LiBUbyBlbmFibGUgRFND LCB0aGUgRFNDX0VOQUJMRUQKPiByZWdpc3RlciBtaWdodCBoYXZlIHRvIGJlIHdyaXR0ZW4gb24g dGhlIGxlYWYgcG9ydCdzIERQQ0QsCj4gaXRzIHBhcmVudCdzIERQQ0QsIG9yIHRoZSBNU1QgbWFu YWdlcidzIERQQ0QuIFRoaXMgZnVuY3Rpb24KPiBmaW5kcyB0aGUgY29ycmVjdCBhdXggZm9yIHRo ZSBqb2IuCj4KPiBBcyBwYXJ0IG9mIHRoaXMsIGFkZCBkcm1fZHBfbXN0X2lzX3ZpcnR1YWxfZHBj ZC4gVmlydHVhbCBEUENECj4gaXMgYSBEUCBmZWF0dXJlIG5ldyBpbiBEUCB2MS40LCB3aGljaCBl eHBvc2VzIGNlcnRhaW4gRFBDRAo+IHJlZ2lzdGVycyBvbiB2aXJ0dWFsIHBvcnRzLgo+Cj4gdjI6 IFJlbWVtYmVyIHRvIHVubG9jayBtdXRleCBvbiBhbGwgcGF0aHMKPiB2MzogUmVmYWN0b3IgdG8g bWF0Y2ggY29kaW5nIHN0eWxlIGFuZCBpbmNyZWFzZSBicmV2aXR5Cj4KPiBDYzogTHl1ZGUgUGF1 bCA8bHl1ZGVAcmVkaGF0LmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4 LmludGVsLmNvbT4KPiBDYzogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+ Cj4gUmV2aWV3ZWQtYnk6IFdlbmppbmcgTGl1IDxXZW5qaW5nLkxpdUBhbWQuY29tPgo+IFNpZ25l ZC1vZmYtYnk6IERhdmlkIEZyYW5jaXMgPERhdmlkLkZyYW5jaXNAYW1kLmNvbT4KPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyB8IDE1MyArKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICBpbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oICAgICAgIHwg ICAyICsKPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNTUgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2RwX21zdF90b3BvbG9neS5jCj4gaW5kZXggNTAyOTIzYzI0NDUwLi5lMjRkYmEyNzYx MTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKPiBAQCAtNDE1MCwz ICs0MTUwLDE1NiBAQCBzdGF0aWMgdm9pZCBkcm1fZHBfbXN0X3VucmVnaXN0ZXJfaTJjX2J1cyhz dHJ1Y3QgZHJtX2RwX2F1eCAqYXV4KQo+ICB7Cj4gIAlpMmNfZGVsX2FkYXB0ZXIoJmF1eC0+ZGRj KTsKPiAgfQo+ICsKPiArLyoqCj4gKyAqIGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKCkgLSBJ cyB0aGUgZ2l2ZW4gcG9ydCBhIHZpcnR1YWwgRFAgUGVlciBEZXZpY2UKPiArICogQHBvcnQ6IFRo ZSBwb3J0IHRvIGNoZWNrCj4gKyAqCj4gKyAqIEEgc2luZ2xlIHBoeXNpY2FsIE1TVCBodWIgb2Jq ZWN0IGNhbiBiZSByZXByZXNlbnRlZCBpbiB0aGUgdG9wb2xvZ3kKPiArICogYnkgbXVsdGlwbGUg YnJhbmNoZXMsIHdpdGggdmlydHVhbCBwb3J0cyBiZXR3ZWVuIHRob3NlIGJyYW5jaGVzLgo+ICsg Kgo+ICsgKiBBcyBvZiBEUDEuNCwgQW4gTVNUIGh1YiB3aXRoIGludGVybmFsICh2aXJ0dWFsKSBw b3J0cyBtdXN0IGV4cG9zZQo+ICsgKiBjZXJ0YWluIERQQ0QgcmVnaXN0ZXJzIG92ZXIgdGhvc2Ug cG9ydHMuIFNlZSBzZWN0aW9ucyAyLjYuMS4xLjEKPiArICogYW5kIDIuNi4xLjEuMiBvZiBEaXNw bGF5IFBvcnQgc3BlY2lmaWNhdGlvbiB2MS40IGZvciBkZXRhaWxzLgo+ICsgKgo+ICsgKiBNYXkg YWNxdWlyZSBtZ3ItPmxvY2sKPiArICoKPiArICogUmV0dXJuczoKPiArICogdHJ1ZSBpZiB0aGUg cG9ydCBpcyBhIHZpcnR1YWwgRFAgcGVlciBkZXZpY2UsIGZhbHNlIG90aGVyd2lzZQo+ICsgKi8K PiArc3RhdGljIGJvb2wgZHJtX2RwX21zdF9pc192aXJ0dWFsX2RwY2Qoc3RydWN0IGRybV9kcF9t c3RfcG9ydCAqcG9ydCkKPiArewo+ICsJc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqZG93bnN0cmVh bV9wb3J0Owo+ICsKPiArCWlmICghcG9ydCB8fCBwb3J0LT5kcGNkX3JldiA8IERQX0RQQ0RfUkVW XzE0KQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwkvKiBWaXJ0dWFsIERQIFNpbmsgKEludGVy bmFsIERpc3BsYXkgUGFuZWwpICovCj4gKwlpZiAocG9ydC0+cG9ydF9udW0gPj0gOCkKPiArCQly ZXR1cm4gdHJ1ZTsKPiArCj4gKwkvKiBEUC10by1IRE1JIFByb3RvY29sIENvbnZlcnRlciAqLwo+ ICsJaWYgKHBvcnQtPnBkdCA9PSBEUF9QRUVSX0RFVklDRV9EUF9MRUdBQ1lfQ09OViAmJgo+ICsJ ICAgICFwb3J0LT5tY3MgJiYKPiArCSAgICBwb3J0LT5sZHBzKQo+ICsJCXJldHVybiB0cnVlOwo+ ICsKPiArCS8qIERQLXRvLURQICovCj4gKwltdXRleF9sb2NrKCZwb3J0LT5tZ3ItPmxvY2spOwo+ ICsJaWYgKHBvcnQtPnBkdCA9PSBEUF9QRUVSX0RFVklDRV9NU1RfQlJBTkNISU5HICYmCj4gKwkg ICAgcG9ydC0+bXN0YiAmJgo+ICsJICAgIHBvcnQtPm1zdGItPm51bV9wb3J0cyA9PSAyKSB7Cj4g KwkJbGlzdF9mb3JfZWFjaF9lbnRyeShkb3duc3RyZWFtX3BvcnQsICZwb3J0LT5tc3RiLT5wb3J0 cywgbmV4dCkgewo+ICsJCQlpZiAoZG93bnN0cmVhbV9wb3J0LT5wZHQgPT0gRFBfUEVFUl9ERVZJ Q0VfU1NUX1NJTksgJiYKPiArCQkJICAgICFkb3duc3RyZWFtX3BvcnQtPmlucHV0KSB7Cj4gKwkJ CQltdXRleF91bmxvY2soJnBvcnQtPm1nci0+bG9jayk7Cj4gKwkJCQlyZXR1cm4gdHJ1ZTsKPiAr CQkJfQo+ICsJCX0KPiArCX0KPiArCW11dGV4X3VubG9jaygmcG9ydC0+bWdyLT5sb2NrKTsKPiAr Cj4gKwlyZXR1cm4gZmFsc2U7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBkcm1fZHBfbXN0X2RzY19h dXhfZm9yX3BvcnQoKSAtIEZpbmQgdGhlIGNvcnJlY3QgYXV4IGZvciBEU0MKPiArICogQHBvcnQ6 IFRoZSBwb3J0IHRvIGNoZWNrLiBBIGxlYWYgb2YgdGhlIE1TVCB0cmVlIHdpdGggYW4gYXR0YWNo ZWQgZGlzcGxheS4KPiArICoKPiArICogRGVwZW5kaW5nIG9uIHRoZSBzaXR1YXRpb24sIERTQyBt YXkgYmUgZW5hYmxlZCB2aWEgdGhlIGVuZHBvaW50IGF1eCwKPiArICogdGhlIGltbWVkaWF0ZWx5 IHVwc3RyZWFtIGF1eCwgb3IgdGhlIGNvbm5lY3RvcidzIHBoeXNpY2FsIGF1eC4KPiArICoKPiAr ICogVGhpcyBpcyBib3RoIHRoZSBjb3JyZWN0IGF1eCB0byByZWFkIERTQ19DQVBBQklMSVRZIGFu ZCB0aGUKPiArICogY29ycmVjdCBhdXggdG8gd3JpdGUgRFNDX0VOQUJMRUQuCj4gKyAqCj4gKyAq IFRoaXMgb3BlcmF0aW9uIGNhbiBiZSBleHBlbnNpdmUgKHVwIHRvIGZvdXIgYXV4IHJlYWRzKSwg c28KPiArICogdGhlIGNhbGxlciBzaG91bGQgY2FjaGUgdGhlIHJldHVybi4KPiArICoKPiArICog UmV0dXJuczoKPiArICogTlVMTCBpZiBEU0MgY2Fubm90IGJlIGVuYWJsZWQgb24gdGhpcyBwb3J0 LCBvdGhlcndpc2UgdGhlIGF1eCBkZXZpY2UKPiArICovCj4gK3N0cnVjdCBkcm1fZHBfYXV4ICpk cm1fZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQoc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqcG9ydCkK PiArewo+ICsJc3RydWN0IGRybV9kcF9tc3RfcG9ydCAqaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQ7 Cj4gKwlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpmZWNfcG9ydDsKPiArCXN0cnVjdCBkcm1fZHBf ZGVzYyAqZGVzYyA9IE5VTEw7Cj4gKwo+ICsJaWYgKCFwb3J0KQo+ICsJCXJldHVybiBOVUxMOwo+ ICsKPiArCWlmIChwb3J0LT5wYXJlbnQpCj4gKwkJaW1tZWRpYXRlX3Vwc3RyZWFtX3BvcnQgPSBw b3J0LT5wYXJlbnQtPnBvcnRfcGFyZW50Owo+ICsJZWxzZQo+ICsJCWltbWVkaWF0ZV91cHN0cmVh bV9wb3J0ID0gTlVMTDsKPiArCj4gKwlmZWNfcG9ydCA9IGltbWVkaWF0ZV91cHN0cmVhbV9wb3J0 Owo+ICsJd2hpbGUgKGZlY19wb3J0KSB7Cj4gKwkJLyoKPiArCQkgKiBFYWNoIHBoeXNpY2FsIGxp bmsgKGkuZS4gbm90IGEgdmlydHVhbCBwb3J0KSBiZXR3ZWVuIHRoZQo+ICsJCSAqIG91dHB1dCBh bmQgdGhlIHByaW1hcnkgZGV2aWNlIG11c3Qgc3VwcG9ydCBGRUMKPiArCQkgKi8KPiArCQlpZiAo IWRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKGZlY19wb3J0KSAmJgo+ICsJCQkJIWZlY19wb3J0 LT5mZWNfY2FwYWJsZSkKPiArCQkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJCWZlY19wb3J0ID0gZmVj X3BvcnQtPnBhcmVudC0+cG9ydF9wYXJlbnQ7Cj4gKwl9Cj4gKwo+ICsJLyogRFAtdG8tRFAgcGVl ciBkZXZpY2UgKi8KPiArCWlmIChkcm1fZHBfbXN0X2lzX3ZpcnR1YWxfZHBjZChpbW1lZGlhdGVf dXBzdHJlYW1fcG9ydCkpIHsKPiArCQl1OCB1cHN0cmVhbV9kc2M7Cj4gKwkJdTggZW5kcG9pbnRf ZHNjOwo+ICsJCXU4IGVuZHBvaW50X2ZlYzsKPiArCj4gKwkJaWYgKGRybV9kcF9kcGNkX3JlYWQo JnBvcnQtPmF1eCwKPiArCQkJCSAgICAgRFBfRFNDX1NVUFBPUlQsICZlbmRwb2ludF9kc2MsIDEp IDwgMCkKPiArCQkJcmV0dXJuIE5VTEw7Cj4gKwkJaWYgKGRybV9kcF9kcGNkX3JlYWQoJnBvcnQt PmF1eCwKPiArCQkJCSAgICAgRFBfRkVDX0NBUEFCSUxJVFksICZlbmRwb2ludF9mZWMsIDEpIDwg MCkKPiArCQkJcmV0dXJuIE5VTEw7Cj4gKwkJaWYgKGRybV9kcF9kcGNkX3JlYWQoJmltbWVkaWF0 ZV91cHN0cmVhbV9wb3J0LT5hdXgsCj4gKwkJCQkgICAgIERQX0RTQ19TVVBQT1JULCAmdXBzdHJl YW1fZHNjLCAxKSA8IDApCj4gKwkJCXJldHVybiBOVUxMOwo+ICsKPiArCQkvKiBFbnBvaW50IGRl Y29tcHJlc3Npb24gd2l0aCBEUC10by1EUCBwZWVyIGRldmljZSAqLwo+ICsJCWlmICgoZW5kcG9p bnRfZHNjICYgRFBfRFNDX0RFQ09NUFJFU1NJT05fSVNfU1VQUE9SVEVEKSAmJgo+ICsJCSAgICAo ZW5kcG9pbnRfZmVjICYgRFBfRkVDX0NBUEFCTEUpICYmCj4gKwkJICAgICh1cHN0cmVhbV9kc2Mg JiAweDIpIC8qIERTQyBwYXNzdGhyb3VnaCAqLykKPiArCQkJcmV0dXJuICZwb3J0LT5hdXg7Cj4g Kwo+ICsJCS8qIFZpcnR1YWwgRFBDRCBkZWNvbXByZXNzaW9uIHdpdGggRFAtdG8tRFAgcGVlciBk ZXZpY2UgKi8KPiArCQlyZXR1cm4gJmltbWVkaWF0ZV91cHN0cmVhbV9wb3J0LT5hdXg7Cj4gKwl9 Cj4gKwo+ICsJLyogVmlydHVhbCBEUENEIGRlY29tcHJlc3Npb24gd2l0aCBEUC10by1IRE1JIG9y IFZpcnR1YWwgRFAgU2luayAqLwo+ICsJaWYgKGRybV9kcF9tc3RfaXNfdmlydHVhbF9kcGNkKHBv cnQpKQo+ICsJCXJldHVybiAmcG9ydC0+YXV4Owo+ICsKPiArCS8qCj4gKwkgKiBTeW5hcHRpY3Mg cXVpcmsKPiArCSAqIEFwcGxpZXMgdG8gcG9ydHMgZm9yIHdoaWNoOgo+ICsJICogLSBQaHlzaWNh bCBhdXggaGFzIFN5bmFwdGljcyBPVUkKPiArCSAqIC0gRFB2MS40IG9yIGhpZ2hlcgo+ICsJICog LSBQb3J0IGlzIG9uIHByaW1hcnkgYnJhbmNoIGRldmljZQo+ICsJICogLSBOb3QgYSBWR0EgYWRh cHRlciAoRFBfRFdOX1NUUk1fUE9SVF9UWVBFX0FOQUxPRykKPiArCSAqLwo+ICsJaWYgKCFkcm1f ZHBfcmVhZF9kZXNjKHBvcnQtPm1nci0+YXV4LCBkZXNjLCB0cnVlKSkKPiArCQlyZXR1cm4gZmFs c2U7Cj4gKwo+ICsJaWYgKGRybV9kcF9oYXNfcXVpcmsoZGVzYywgRFBfRFBDRF9RVUlSS19EU0Nf V0lUSE9VVF9WSVJUVUFMX0RQQ0QgJiYKPiArCSAgICBwb3J0LT5tZ3ItPmRwY2RbRFBfRFBDRF9S RVZdID49IERQX0RQQ0RfUkVWXzE0KSAmJgo+ICsJICAgIHBvcnQtPnBhcmVudCA9PSBwb3J0LT5t Z3ItPm1zdF9wcmltYXJ5KSB7Cj4gKwkJdTggZG93bnN0cmVhbXBvcnQ7Cj4gKwo+ICsJCWRybV9k cF9kcGNkX3JlYWQoJnBvcnQtPmF1eCwgRFBfRE9XTlNUUkVBTVBPUlRfUFJFU0VOVCwKPiArCQkJ CSAmZG93bnN0cmVhbXBvcnQsIDEpOwo+ICsKPiArCQlpZiAoKGRvd25zdHJlYW1wb3J0ICYgRFBf RFdOX1NUUk1fUE9SVF9QUkVTRU5UKSAmJgo+ICsJCSAgICgoZG93bnN0cmVhbXBvcnQgJiBEUF9E V05fU1RSTV9QT1JUX1RZUEVfTUFTSykKPiArCQkgICAgICE9IERQX0RXTl9TVFJNX1BPUlRfVFlQ RV9BTkFMT0cpKQo+ICsJCQlyZXR1cm4gcG9ydC0+bWdyLT5hdXg7Cj4gKwl9CgpJIHdvdWxkJ3Zl IHB1dCB0aGUgcXVpcmsgZGVmaW5pdGlvbiBmcm9tIHBhdGNoIDUgYW5kIHRoZSBxdWlyayBoYW5k bGluZwphYm92ZSB0b2dldGhlciBpbnRvIGEgc2VwYXJhdGUgcGF0Y2guIFRoZSBjdXJyZW50IHBh dGNoIHdvdWxkIGJlIGFib3V0CmhvdyB0aGluZ3Mgc2hvdWxkIHdvcmsgaW4gdGhlb3J5LCBhbmQg YW5vdGhlciBwYXRjaCBvbiB0b3Agd291bGQgYmUKYWJvdXQgaG93IHJlYWxpdHkgaW50ZXJmZXJl cyB3aXRoIHRoZW9yeSwgYW5kIHlvdSBoYXZlIHRvIHF1aXJrIHN0dWZmIHRvCm1ha2UgaXQgYWN0 dWFsbHkgd29yay4KClRoZSB3aG9sZSBwb2ludCBhYm91dCBzcGxpdHRpbmcgdGhlIHF1aXJrIG9m ZiB3YXMgdGhhdCBpdCdzIGEgc2VwYXJhdGUKZnVuY3Rpb25hbCBjaGFuZ2UuIFdoYXQgaWYgdGhl IHF1aXJrIHR1cm5zIG91dCB0byBiZSBhIG1pc3Rha2U/ICBKdXN0CnJldmVydCB0aGUgd2hvbGUg dGhpbmcuIFRoYXQgd291bGQgYmUgaW1wb3NzaWJsZSB3aXRoIHRoaXMgc3BsaXQuCgpJIGRvbid0 IGtub3cgaWYgSSBjYXJlIGVub3VnaCB0byBpbnNpc3QuICpzaHJ1ZyoKCgpCUiwKSmFuaS4KCgoK PiArCj4gKwlyZXR1cm4gTlVMTDsKPiArfQo+ICtFWFBPUlRfU1lNQk9MKGRybV9kcF9tc3RfZHNj X2F1eF9mb3JfcG9ydCk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVs cGVyLmggYi9pbmNsdWRlL2RybS9kcm1fZHBfbXN0X2hlbHBlci5oCj4gaW5kZXggZjExM2FlMDRm YTg4Li40Y2Y3Mzg1NDVkZmIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX21zdF9o ZWxwZXIuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kcF9tc3RfaGVscGVyLmgKPiBAQCAtNjcz LDYgKzY3Myw4IEBAIGludCBfX211c3RfY2hlY2sgZHJtX2RwX21zdF9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiAgdm9pZCBkcm1fZHBfbXN0X2dldF9wb3J0 X21hbGxvYyhzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KTsKPiAgdm9pZCBkcm1fZHBfbXN0 X3B1dF9wb3J0X21hbGxvYyhzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0KTsKPiAgCj4gK3N0 cnVjdCBkcm1fZHBfYXV4ICpkcm1fZHBfbXN0X2RzY19hdXhfZm9yX3BvcnQoc3RydWN0IGRybV9k cF9tc3RfcG9ydCAqcG9ydCk7Cj4gKwo+ICBleHRlcm4gY29uc3Qgc3RydWN0IGRybV9wcml2YXRl X3N0YXRlX2Z1bmNzIGRybV9kcF9tc3RfdG9wb2xvZ3lfc3RhdGVfZnVuY3M7Cj4gIAo+ICAvKioK Ci0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgR3JhcGhpY3MgQ2VudGVyCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==