From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 1/9] drm: Introduce the blend-func property Date: Wed, 20 Jan 2016 16:12:43 -0800 Message-ID: <20160121001243.GG10214@intel.com> References: <1453130143-7228-1-git-send-email-vandita.kulkarni@intel.com> <1453130143-7228-2-git-send-email-vandita.kulkarni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 0A7836E1A8 for ; Wed, 20 Jan 2016 16:12:43 -0800 (PST) Content-Disposition: inline In-Reply-To: <1453130143-7228-2-git-send-email-vandita.kulkarni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Vandita Kulkarni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMTgsIDIwMTYgYXQgMDg6NDU6MzVQTSArMDUzMCwgVmFuZGl0YSBLdWxrYXJu aSB3cm90ZToKPiBGcm9tOiBEYW1pZW4gTGVzcGlhdSA8ZGFtaWVuLmxlc3BpYXVAaW50ZWwuY29t Pgo+IAo+IFdlJ2QgbGlrZSB0byBiZSBhYmxlIHRvIHByb2dyYW0gdGhlIGJsZW5kaW5nIG1vZGVz IG9mIGRpc3BsYXkgcGxhbmVzLgo+IFZpbGxlIHN1Z2dlc3RlZCB0byB1c2Ugc29tZXRoaW5nIHNp bWlsYXIgdG8gdGhlIEdMIGJsZW5kIHN0YXRlcywgd2hpY2gKPiBkb2VzIHNlZW0gbGlrZSBhIGdv b2QgaWRlYS4KPiAKPiBGb3Igbm93LCB3ZSBvbmx5IGNvbnNpZGVyIGJsZW5kIGZhY3RvcnMsIGJ1 dCByb29tIGlzIGxlZnQgZm9yCj4gZXh0ZW5zaW9uczogYmxlbmQgZXF1YXRpb24sIHNlcGFyYXRl IHJnYi9hbHBoYSBibGVuZCBmYWN0b3JzLCBibGVuZAo+IGNvbG9yLgo+IAo+IFYyOiBBZGRlZCB0 aGUgYmVsbmQgZnVuYyBwcm9wZXJ0eSBzdXBwb3J0IGluIGdldCBwcm9wZXJ0eS4KPiAKPiBTdWdn ZXN0ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cj4gU2lnbmVkLW9mZi1ieTogRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGludGVsLmNv bT4KPiBTaWduZWQtb2ZmLWJ5OiBWYW5kaXRhIEt1bGthcm5pIDx2YW5kaXRhLmt1bGthcm5pQGlu dGVsLmNvbT4KCllvdSdsbCB3YW50IGEgQ2M6IGRyaS1kZXZlbCBoZXJlIGFzIHdlbGwgZm9yIHN0 dWZmIGxpa2UgdGhpcyB0aGF0CnRvdWNoZXMgdGhlIERSTSBjb3JlLgoKPiAtLS0KPiAgRG9jdW1l bnRhdGlvbi9Eb2NCb29rL2dwdS50bXBsIHwgMTEgKysrKysrKysrLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWMuYyAgIHwgMTQgKysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJt L2RybV9jcnRjLmMgICAgIHwgIDUgKysrKysKPiAgaW5jbHVkZS9kcm0vZHJtX2NydGMuaCAgICAg ICAgIHwgMjAgKysrKysrKysrKysrKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L0RvY0Jvb2svZ3B1LnRtcGwgYi9Eb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1LnRtcGwKPiBpbmRl eCAzNTFlODAxLi4yMDE3MTYyIDEwMDY0NAo+IC0tLSBhL0RvY3VtZW50YXRpb24vRG9jQm9vay9n cHUudG1wbAo+ICsrKyBiL0RvY3VtZW50YXRpb24vRG9jQm9vay9ncHUudG1wbAo+IEBAIC0xODE2 LDcgKzE4MTYsNyBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAk8dGQgdmFsaWduPSJ0b3AiID5EZXNjcmlwdGlvbi9SZXN0cmljdGlvbnM8L3RkPgo+ICAJ PC90cj4KPiAgCTx0cj4KPiAtCTx0ZCByb3dzcGFuPSIzNyIgdmFsaWduPSJ0b3AiID5EUk08L3Rk Pgo+ICsJPHRkIHJvd3NwYW49IjM4IiB2YWxpZ249InRvcCIgPkRSTTwvdGQ+Cj4gIAk8dGQgdmFs aWduPSJ0b3AiID5HZW5lcmljPC90ZD4KPiAgCTx0ZCB2YWxpZ249InRvcCIgPuKAnHJvdGF0aW9u 4oCdPC90ZD4KPiAgCTx0ZCB2YWxpZ249InRvcCIgPkJJVE1BU0s8L3RkPgo+IEBAIC0xODY4LDcg KzE4NjgsNyBAQCB2b2lkIGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g IAk8dGQgdmFsaWduPSJ0b3AiID5DUlRDIHRoYXQgY29ubmVjdG9yIGlzIGF0dGFjaGVkIHRvIChh dG9taWMpPC90ZD4KPiAgCTwvdHI+Cj4gIAk8dHI+Cj4gLQk8dGQgcm93c3Bhbj0iMTEiIHZhbGln bj0idG9wIiA+UGxhbmU8L3RkPgo+ICsJPHRkIHJvd3NwYW49IjEyIiB2YWxpZ249InRvcCIgPlBs YW5lPC90ZD4KPiAgCTx0ZCB2YWxpZ249InRvcCIgPuKAnHR5cGXigJ08L3RkPgo+ICAJPHRkIHZh bGlnbj0idG9wIiA+RU5VTSB8IElNTVVUQUJMRTwvdGQ+Cj4gIAk8dGQgdmFsaWduPSJ0b3AiID57 ICJPdmVybGF5IiwgIlByaW1hcnkiLCAiQ3Vyc29yIiB9PC90ZD4KPiBAQCAtMTk0Niw2ICsxOTQ2 LDEzIEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCTx0 ZCB2YWxpZ249InRvcCIgPkNSVEMgdGhhdCBwbGFuZSBpcyBhdHRhY2hlZCB0byAoYXRvbWljKTwv dGQ+Cj4gIAk8L3RyPgo+ICAJPHRyPgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+4oCcYmxlbmRfZnVu Y+KAnTwvdGQ+Cj4gKwk8dGQgdmFsaWduPSJ0b3AiID5Ob25lPC90ZD4KPiArCTx0ZCB2YWxpZ249 InRvcCIgPkRSTV9CTEVORF9GVU5DKCk8L3RkPgoKU2hvdWxkbid0IHRoZXNlIHR3byBiZSB0eXBl ICdyYW5nZScgd2l0aCB2YWx1ZXMgMHgwLTB4RkZGRkZGRkY/ICBZb3VyCmRlc2NyaXB0aW9uIGZp ZWxkIGJlbG93IHdvdWxkIHRoZW4gZXhwbGFpbiB0aGUgYWN0dWFsIG1lYW5pbmcgb2YgdGhlCmhp Z2gvbG93IDE2LWJpdHMuCgo+ICsJPHRkIHZhbGlnbj0idG9wIiA+UGxhbmU8L3RkPgo+ICsJPHRk IHZhbGlnbj0idG9wIiA+U291cmNlIGFuZCBkZXN0aW5hdGlvbiBibGVuZGluZyBmYWN0b3JzPC90 ZD4KCkkgZmVlbCBsaWtlIGEgYml0IG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gaGVyZSB3b3Vs ZCBiZSB3b3J0aHdoaWxlLgoKQWN0dWFsbHksIGdpdmVuIHRoYXQgd2UncmUgcHJlc3VtYWJseSBv bmx5IHVzaW5nIHRoaXMgdmlhIGF0b21pYywgaXQKZG9lc24ndCBzZWVtIHVucmVhc29uYWJsZSB0 byBtZSB0byBzcGxpdCB0aGlzIGludG8gdHdvIHNlcGFyYXRlIGVudW0KcHJvcGVydGllcy4gIFRo YXQgd291bGQgYmUgYSBsaXR0bGUgYml0IG1vcmUgc2VsZi1leHBsYW5hdG9yeSBhbmQgdGhlCmF0 b21pYyBjaGVjayBjb2RlIGNvdWxkIHN0aWxsIGVuc3VyZSB0aGF0IHdlIGRvbid0IHdpbmQgdXAg d2l0aCBpbnZhbGlkCmNvbWJpbmF0aW9ucyBvZiBzcmMvZGVzdCBmYWN0b3JzLiAgUGx1cyBpdCB3 aWxsIG1ha2UgaXQgYSBsaXR0bGUgZWFzaWVyCmZvciB1cyB0byBhZGQgYWRkaXRpb25hbCBibGVu ZGluZyBmYWN0b3JzIGluIHRoZSBmdXR1cmUuCgo+ICsJPC90cj4KPiArCTx0cj4KPiAgCTx0ZCBy b3dzcGFuPSIyIiB2YWxpZ249InRvcCIgPkRWSS1JPC90ZD4KPiAgCTx0ZCB2YWxpZ249InRvcCIg PuKAnHN1YmNvbm5lY3RvcuKAnTwvdGQ+Cj4gIAk8dGQgdmFsaWduPSJ0b3AiID5FTlVNPC90ZD4K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPiBpbmRleCAzZjc0MTkzLi4wYzE2NWM2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4gQEAgLTYzMCw2ICs2MzAsMTggQEAgaW50IGRybV9hdG9taWNfcGxhbmVfc2V0 X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCXN0YXRlLT5zcmNfaCA9IHZh bDsKPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5yb3RhdGlvbl9wcm9wZXJ0eSkg ewo+ICAJCXN0YXRlLT5yb3RhdGlvbiA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT5wcm9wX2JsZW5kX2Z1bmMpIHsKPiArCQllbnVtIGRybV9ibGVuZF9mYWN0b3Igc3Jj X2ZhY3RvciwgZHN0X2ZhY3RvcjsKPiArCj4gKwkJc3JjX2ZhY3RvciA9IERSTV9CTEVORF9GVU5D X1NSQ19GQUNUT1IodmFsKTsKPiArCQlkc3RfZmFjdG9yID0gRFJNX0JMRU5EX0ZVTkNfRFNUX0ZB Q1RPUih2YWwpOwo+ICsKPiArCQlpZiAoc3JjX2ZhY3RvciAhPSBkc3RfZmFjdG9yICYmCj4gKwkJ ICAgIChzcmNfZmFjdG9yID09IERSTV9CTEVORF9GQUNUT1JfQVVUTyB8fAo+ICsJCSAgICAgZHN0 X2ZhY3RvciA9PSBEUk1fQkxFTkRfRkFDVE9SX0FVVE8pKQo+ICsJCQlyZXR1cm4gLUVJTlZBTDsK Ck1pZ2h0IGJlIGJldHRlciB0byBkZWZlciB0aGlzIHVudGlsIHRoZSBhdG9taWMgY2hlY2sgcGhh c2Ugc2luY2UgdGhhdCdzCndoZXJlIHdlIGRvIG1vc3Qgb2Ygb3VyIG90aGVyIHRlc3RzIGFuZCB3 aGVyZSB3ZSBleHBlY3QgdG8gZ2V0IGZhaWx1cmVzLgpUaGlzIGZ1bmN0aW9uIGlzIG1vcmUgYWJv dXQgc2hvdmluZyB2YWx1ZXMgaW50byBzdGF0ZSBvYmplY3RzIChhbmQgb3RoZXIKdGFza3MgbGlr ZSByZWZjb3VudGluZyB3aGVyZSBuZWNlc3NhcnkpIHdpdGhvdXQgZG9pbmcgYW55dGhpbmcgZWxz ZS4KCj4gKwo+ICsJCXN0YXRlLT5ibGVuZF9tb2RlLmZ1bmMgPSB2YWwgJiBHRU5NQVNLKDMxLCAw KTsKClRoaXMgY2hlY2sgc2hvdWxkIGFsc28gbW92ZSB0byB0aGUgYXRvbWljIGNoZWNrIHBoYXNl LCBidXQgcmFpc2UgYQpmYWlsdXJlIGlmIHdlIGhhdmUgYW55IHVud2FudGVkIGJpdHMuICBJZiB3 ZSBsZXQgdXNlcnNwYWNlIGJlIHNsb3BweQpyaWdodCBub3cgYW5kIHB1dCBnYXJiYWdlIHRoZXJl LCB0aGVuIHdlIGNhbid0IHJlYWxseSBnaXZlIHRob3NlIGJpdHMKbmV3IG1lYW5pbmcgaW4gdGhl IGZ1dHVyZSB3aXRob3V0IGJyZWFraW5nIGV4aXN0aW5nIHVzZXJzcGFjZS4KCgo+ICAJfSBlbHNl IGlmIChwbGFuZS0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gcGxh bmUtPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KHBsYW5lLCBzdGF0ZSwKPiAgCQkJCXByb3Bl cnR5LCB2YWwpOwo+IEBAIC02ODYsNiArNjk4LDggQEAgZHJtX2F0b21pY19wbGFuZV9nZXRfcHJv cGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAkJKnZhbCA9IHN0YXRlLT5zcmNfaDsK PiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5yb3RhdGlvbl9wcm9wZXJ0eSkgewo+ ICAJCSp2YWwgPSBzdGF0ZS0+cm90YXRpb247Cj4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNv bmZpZy0+cHJvcF9ibGVuZF9mdW5jKSB7Cj4gKwkJKnZhbCA9IHN0YXRlLT5ibGVuZF9tb2RlLmZ1 bmM7Cj4gIAl9IGVsc2UgaWYgKHBsYW5lLT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eSkgewo+ ICAJCXJldHVybiBwbGFuZS0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkocGxhbmUsIHN0YXRl LCBwcm9wZXJ0eSwgdmFsKTsKPiAgCX0gZWxzZSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBpbmRleCA2MmZh OTVmLi5iOGRkZTA2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiBAQCAtMTU0Miw2ICsxNTQyLDExIEBA IHN0YXRpYyBpbnQgZHJtX21vZGVfY3JlYXRlX3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiAgCWRldi0+bW9kZV9jb25maWcu cHJvcF9tb2RlX2lkID0gcHJvcDsKPiAgCj4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9y YW5nZShkZXYsIDAsICJibGVuZF9mdW5jIiwgMCwgVTMyX01BWCk7CgpJJ2QgYWRkIHRoZSBEUk1f TU9ERV9QUk9QX0FUT01JQyBmbGFnIHRvIHRoaXMuICBJIHRoaW5rIHdlIGhhdmUgYQpkaXJlY3Rp b24gdGhhdCBhbGwgbmV3IGZ1bmN0aW9uYWxpdHkgb25seSBiZSBleHBvc2VkIHZpYSB0aGUgYXRv bWljCmludGVyZmFjZXMuCgoKTWF0dAoKPiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4gLUVOT01F TTsKPiArCWRldi0+bW9kZV9jb25maWcucHJvcF9ibGVuZF9mdW5jID0gcHJvcDsKPiArCj4gIAly ZXR1cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NydGMuaCBi L2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCBjNjVhMjEyLi45Y2ZlNjAxIDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fY3J0 Yy5oCj4gQEAgLTk5LDYgKzk5LDIzIEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3QgSTY0MlU2NChp bnQ2NF90IHZhbCkKPiAgI2RlZmluZSBEUk1fUkVGTEVDVF9YCTQKPiAgI2RlZmluZSBEUk1fUkVG TEVDVF9ZCTUKPiAgCj4gK2VudW0gZHJtX2JsZW5kX2ZhY3RvciB7Cj4gKwlEUk1fQkxFTkRfRkFD VE9SX0FVVE8sCj4gKwlEUk1fQkxFTkRfRkFDVE9SX1pFUk8sCj4gKwlEUk1fQkxFTkRfRkFDVE9S X09ORSwKPiArCURSTV9CTEVORF9GQUNUT1JfU1JDX0FMUEhBLAo+ICsJRFJNX0JMRU5EX0ZBQ1RP Ul9PTkVfTUlOVVNfU1JDX0FMUEhBLAo+ICt9Owo+ICsKPiArI2RlZmluZSBEUk1fQkxFTkRfRlVO QyhzcmNfZmFjdG9yLCBkc3RfZmFjdG9yKQkJXAo+ICsJKERSTV9CTEVORF9GQUNUT1JfIyNzcmNf ZmFjdG9yIDw8IDE2IHwgRFJNX0JMRU5EX0ZBQ1RPUl8jI2RzdF9mYWN0b3IpCj4gKyNkZWZpbmUg RFJNX0JMRU5EX0ZVTkNfU1JDX0ZBQ1RPUih2YWwpCSgoKHZhbCkgPj4gMTYpICYgMHhmZmZmKQo+ ICsjZGVmaW5lIERSTV9CTEVORF9GVU5DX0RTVF9GQUNUT1IodmFsKQkoKHZhbCkgJiAweGZmZmYp Cj4gKwo+ICtzdHJ1Y3QgZHJtX2JsZW5kX21vZGUgewo+ICsJdWludDY0X3QgZnVuYzsKPiArfTsK PiArCj4gIGVudW0gZHJtX2Nvbm5lY3Rvcl9mb3JjZSB7Cj4gIAlEUk1fRk9SQ0VfVU5TUEVDSUZJ RUQsCj4gIAlEUk1fRk9SQ0VfT0ZGLAo+IEBAIC0xMjY3LDYgKzEyODQsOCBAQCBzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlIHsKPiAgCS8qIFBsYW5lIHJvdGF0aW9uICovCj4gIAl1bnNpZ25lZCBpbnQg cm90YXRpb247Cj4gIAo+ICsJc3RydWN0IGRybV9ibGVuZF9tb2RlIGJsZW5kX21vZGU7Cj4gKwo+ ICAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ICB9Owo+ICAKPiBAQCAtMjA5OSw2 ICsyMTE4LDcgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyB7Cj4gIAlzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICpwcm9wX2NydGNfaWQ7Cj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wX2FjdGl2ZTsK PiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BfbW9kZV9pZDsKPiArCXN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3BfYmxlbmRfZnVuYzsKPiAgCj4gIAkvKiBEVkktSSBwcm9wZXJ0aWVzICovCj4g IAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpkdmlfaV9zdWJjb25uZWN0b3JfcHJvcGVydHk7Cj4gLS0g Cj4gMS45LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAoKLS0gCk1hdHQgUm9wZXIKR3JhcGhpY3MgU29mdHdhcmUgRW5naW5lZXIKSW9URyBQ bGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50CkludGVsIENvcnBvcmF0aW9uCig5MTYpIDM1 Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==