From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/chv: Use 16 and 32 for low and high drain latency precision. Date: Mon, 27 Oct 2014 14:17:34 +0200 Message-ID: <20141027121734.GK4284@intel.com> References: <1413558308-1669-1-git-send-email-rodrigo.vivi@intel.com> <20141022065706.GO4284@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id DE60D8997E for ; Mon, 27 Oct 2014 05:17:37 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20141022065706.GO4284@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjIsIDIwMTQgYXQgMDk6NTc6MDZBTSArMDMwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIEZyaSwgT2N0IDE3LCAyMDE0IGF0IDA4OjA1OjA4QU0gLTA3MDAsIFJvZHJp Z28gVml2aSB3cm90ZToKPiA+IEN1cnJlbnQgY2h2IHNwZWMgdGVlbHMgd2UgY2FuIG9ubHkgdXNl IGVpdGhlciAxNiBvciAzMiBiaXRzIGFzIHByZWNpc2lvbi4KPiA+IAo+ID4gQWx0aG91Z2ggaW4g dGhlIHBhc3QgVkxWIHdlbnQgZnJvbSAxNi8zMiB0byAzMi82NCBhbmQgc3BlYyBtaWdodCBub3Qg YmUgdXBkYXRlZCwKPiA+IHRoZXNlIHByZWNpc2lvbiB2YWx1ZXMgYnJpbmdzIHN0YWJpbGl0eSBh bmQgZml4ZXMgc29tZSBpc3N1ZXMgV2F5bmUgd2FzIGZhY2luZy4KPiAKPiBMaWVzLCBkYW1uZWQg bGllcywgc3BlY3MhCj4gCj4gV2VsbCBpbiB0aGlzIGNhc2UgSSBndWVzcyB0aGUgc3BlYyBtaWdo dCBiZSBjb3JyZWN0IHNpbmNlIGl0IGhlbHBzCj4gV2F5bmUuCj4gCj4gPiAKPiA+IENjOiBXYXlu ZSBCb3llciA8d2F5bmUuYm95ZXJAaW50ZWwuY29tPgo+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdv IFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oIHwgMTMgKysrKysrKy0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgfCA0MCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlv bnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVn LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBpbmRleCA2ZGIzNjlhLi5k Y2Q1NjUwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gQEAgLTQwNTQsMTcg KzQwNTQsMTggQEAgZW51bSBwdW5pdF9wb3dlcl93ZWxsIHsKPiA+ICAjZGVmaW5lICAgRFNQRldf UExBTkVBX1dNMV9ISV9NQVNLCSgxPDwwKQo+ID4gIAo+ID4gIC8qIGRyYWluIGxhdGVuY3kgcmVn aXN0ZXIgdmFsdWVzKi8KPiA+ICsjZGVmaW5lIERSQUlOX0xBVEVOQ1lfUFJFQ0lTSU9OXzE2CTE2 Cj4gPiAgI2RlZmluZSBEUkFJTl9MQVRFTkNZX1BSRUNJU0lPTl8zMgkzMgo+ID4gICNkZWZpbmUg RFJBSU5fTEFURU5DWV9QUkVDSVNJT05fNjQJNjQKPiAKPiBXaGlsZSB5b3UncmUgcG9raW5nIGF0 IHRoaXMgc3R1ZmYsIGNvdWxkIEkgdHJvdWJsZSB5b3UgdG8gcmVtb3ZlIHRoZXNlCj4gZGVmaW5l cyBhbmQganVzdCB1c2UgdGhlIHZhbHVlcyBkaXJlY3RseT8gQ291bGQgYmUgYSBzZXBhcmF0ZSBw YXRjaCBpZgo+IHlvdSBwcmVmZXIuCj4gCj4gPiAgI2RlZmluZSBWTFZfRERMKHBpcGUpCQkJKFZM Vl9ESVNQTEFZX0JBU0UgKyAweDcwMDUwICsgNCAqIChwaXBlKSkKPiA+IC0jZGVmaW5lIERETF9D VVJTT1JfUFJFQ0lTSU9OXzY0CQkoMTw8MzEpCj4gPiAtI2RlZmluZSBERExfQ1VSU09SX1BSRUNJ U0lPTl8zMgkJKDA8PDMxKQo+ID4gKyNkZWZpbmUgRERMX0NVUlNPUl9QUkVDSVNJT05fSElHSAko MTw8MzEpCj4gPiArI2RlZmluZSBERExfQ1VSU09SX1BSRUNJU0lPTl9MT1cJKDA8PDMxKQo+ID4g ICNkZWZpbmUgRERMX0NVUlNPUl9TSElGVAkJMjQKPiA+IC0jZGVmaW5lIERETF9TUFJJVEVfUFJF Q0lTSU9OXzY0KHNwcml0ZSkJKDE8PCgxNSs4KihzcHJpdGUpKSkKPiA+IC0jZGVmaW5lIERETF9T UFJJVEVfUFJFQ0lTSU9OXzMyKHNwcml0ZSkJKDA8PCgxNSs4KihzcHJpdGUpKSkKPiA+ICsjZGVm aW5lIERETF9TUFJJVEVfUFJFQ0lTSU9OX0hJR0goc3ByaXRlKQkoMTw8KDE1KzgqKHNwcml0ZSkp KQo+ID4gKyNkZWZpbmUgRERMX1NQUklURV9QUkVDSVNJT05fTE9XKHNwcml0ZSkJKDA8PCgxNSs4 KihzcHJpdGUpKSkKPiA+ICAjZGVmaW5lIERETF9TUFJJVEVfU0hJRlQoc3ByaXRlKQkoOCs4Kihz cHJpdGUpKQo+ID4gLSNkZWZpbmUgRERMX1BMQU5FX1BSRUNJU0lPTl82NAkJKDE8PDcpCj4gPiAt I2RlZmluZSBERExfUExBTkVfUFJFQ0lTSU9OXzMyCQkoMDw8NykKPiA+ICsjZGVmaW5lIERETF9Q TEFORV9QUkVDSVNJT05fSElHSAkoMTw8NykKPiA+ICsjZGVmaW5lIERETF9QTEFORV9QUkVDSVNJ T05fTE9XCQkoMDw8NykKPiA+ICAjZGVmaW5lIERETF9QTEFORV9TSElGVAkJCTAKPiA+ICAjZGVm aW5lIERSQUlOX0xBVEVOQ1lfTUFTSwkJMHg3Zgo+ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCj4gPiBpbmRleCBkYWE5OWU3Li41MGMzNTEyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+ID4gQEAgLTEzNDUsNiArMTM0NSw3IEBAIHN0YXRpYyBib29sIHZsdl9jb21wdXRl X2RyYWluX2xhdGVuY3koc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAkJCQkgICAgICBpbnQg KnByZWNfbXVsdCwKPiA+ICAJCQkJICAgICAgaW50ICpkcmFpbl9sYXRlbmN5KQo+ID4gIHsKPiA+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiA+ICAJaW50IGVudHJpZXM7 Cj4gPiAgCWludCBjbG9jayA9IHRvX2ludGVsX2NydGMoY3J0YyktPmNvbmZpZy5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2s7Cj4gPiAgCj4gPiBAQCAtMTM1NSw4ICsxMzU2LDEyIEBAIHN0YXRpYyBi b29sIHZsdl9jb21wdXRlX2RyYWluX2xhdGVuY3koc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4g IAkJcmV0dXJuIGZhbHNlOwo+ID4gIAo+ID4gIAllbnRyaWVzID0gRElWX1JPVU5EX1VQKGNsb2Nr LCAxMDAwKSAqIHBpeGVsX3NpemU7Cj4gPiAtCSpwcmVjX211bHQgPSAoZW50cmllcyA+IDEyOCkg PyBEUkFJTl9MQVRFTkNZX1BSRUNJU0lPTl82NCA6Cj4gPiAtCQkJCSAgICAgICBEUkFJTl9MQVRF TkNZX1BSRUNJU0lPTl8zMjsKPiA+ICsJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKPiA+ICsJCSpw cmVjX211bHQgPSAoZW50cmllcyA+IDEyOCkgPyBEUkFJTl9MQVRFTkNZX1BSRUNJU0lPTl8zMiA6 Cj4gPiArCQkJCQkgICAgICAgRFJBSU5fTEFURU5DWV9QUkVDSVNJT05fMTY7Cj4gPiArCWVsc2UK PiA+ICsJCSpwcmVjX211bHQgPSAoZW50cmllcyA+IDEyOCkgPyBEUkFJTl9MQVRFTkNZX1BSRUNJ U0lPTl82NCA6Cj4gPiArCQkJCQkgICAgICAgRFJBSU5fTEFURU5DWV9QUkVDSVNJT05fMzI7CgpB Y3R1YWxseSBsZXQgbWUgdGFrZSB0aGF0IHItYiBiYWNrIGEgYml0LiBUaGF0IDEyOCBuZWVkcyB0 byBiZSBjaGFuZ2VkIGZvciBDSFYKYXMgd2VsbC4KCkkgdGhpbmsgd2Ugd2FudCB0byByZWFycmFu Z2UgdGhpcyBjb2RlIGEgYml0IHRvIGtpbGwgdGhhdCBtYWdpYyBjb25zdGFudAphbmQgZG8gdGhp bmdzIGluIHRoZSBvYnZpb3VzIHdheS4gU28gc29tZXRoaW5nIGxpa2UgdGhpcyB3b3VsZCBiZSBm YWlybHkKc3RyYWlnaHRmb3J3YXJkIEkgdGhpbms6CgpwcmVjX211bHQgPSBJU19DSFYgPyAzMiA6 IDY0OwpkcmFpbl9sYXRlbmN5ID0gNjQgKiBwcmVjX211bHQgKiA0IC8gZW50cmllczsKaWYgKGRy YWluX2xhdGVuY3kgPiBEUkFJTl9MQVRFTkNZX01BU0spIHsKCXByZWNfbXVsdCAvPSAyOwoJZHJh aW5fbGF0ZW5jeSA9IDY0ICogcHJlY19tdWx0ICogNCAvIGVudHJpZXM7Cn0KaWYgKGRyYWluX2xh dGVuY3kgPiBEUkFJTl9MQVRFTkNZX01BU0spCglkcmFpbl9sYXRlbmN5ID0gRFJBSU5fTEFURU5D WV9NQVNLOwoKPiA+ICAJKmRyYWluX2xhdGVuY3kgPSAoNjQgKiAoKnByZWNfbXVsdCkgKiA0KSAv IGVudHJpZXM7Cj4gPiAgCj4gPiAgCWlmICgqZHJhaW5fbGF0ZW5jeSA+IERSQUlOX0xBVEVOQ1lf TUFTSykKPiA+IEBAIC0xMzc1LDE1ICsxMzgwLDE4IEBAIHN0YXRpYyBib29sIHZsdl9jb21wdXRl X2RyYWluX2xhdGVuY3koc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAo+ID4gIHN0YXRpYyB2 b2lkIHZsdl91cGRhdGVfZHJhaW5fbGF0ZW5jeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAg ewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRl dl9wcml2YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7 Cj4gPiAgCWludCBwaXhlbF9zaXplOwo+ID4gIAlpbnQgZHJhaW5fbGF0ZW5jeTsKPiA+ICAJZW51 bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gIAlpbnQgcGxhbmVfcHJlYywgcHJl Y19tdWx0LCBwbGFuZV9kbDsKPiA+ICsJaW50IGhpZ2hfcHJlY2lzaW9uID0gSVNfQ0hFUlJZVklF VyhkZXYpID8gRFJBSU5fTEFURU5DWV9QUkVDSVNJT05fMzIgOgo+ID4gKwkJCQkJCSAgRFJBSU5f TEFURU5DWV9QUkVDSVNJT05fNjQ7Cj4gCj4gTWF5YmUgY29uc3QganVzdCBoZWxwIHRoZSByZWFk ZXIgcmVtZW1iZXIgdGhhdCBpdCdzIGEgY29uc3RhbnQuCj4gCj4gPiAgCj4gPiAtCXBsYW5lX2Rs ID0gSTkxNV9SRUFEKFZMVl9EREwocGlwZSkpICYgfihERExfUExBTkVfUFJFQ0lTSU9OXzY0IHwK PiA+IC0JCSAgIERSQUlOX0xBVEVOQ1lfTUFTSyB8IERETF9DVVJTT1JfUFJFQ0lTSU9OXzY0IHwK PiA+ICsJcGxhbmVfZGwgPSBJOTE1X1JFQUQoVkxWX0RETChwaXBlKSkgJiB+KERETF9QTEFORV9Q UkVDSVNJT05fSElHSCB8Cj4gPiArCQkgICBEUkFJTl9MQVRFTkNZX01BU0sgfCBERExfQ1VSU09S X1BSRUNJU0lPTl9ISUdIIHwKPiA+ICAJCSAgIChEUkFJTl9MQVRFTkNZX01BU0sgPDwgRERMX0NV UlNPUl9TSElGVCkpOwo+ID4gIAo+ID4gIAlpZiAoIWludGVsX2NydGNfYWN0aXZlKGNydGMpKSB7 Cj4gPiBAQCAtMTM5NCw5ICsxNDAyLDkgQEAgc3RhdGljIHZvaWQgdmx2X3VwZGF0ZV9kcmFpbl9s YXRlbmN5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ICAJLyogUHJpbWFyeSBwbGFuZSBEcmFp biBMYXRlbmN5ICovCj4gPiAgCXBpeGVsX3NpemUgPSBjcnRjLT5wcmltYXJ5LT5mYi0+Yml0c19w ZXJfcGl4ZWwgLyA4OwkvKiBCUFAgKi8KPiA+ICAJaWYgKHZsdl9jb21wdXRlX2RyYWluX2xhdGVu Y3koY3J0YywgcGl4ZWxfc2l6ZSwgJnByZWNfbXVsdCwgJmRyYWluX2xhdGVuY3kpKSB7Cj4gPiAt CQlwbGFuZV9wcmVjID0gKHByZWNfbXVsdCA9PSBEUkFJTl9MQVRFTkNZX1BSRUNJU0lPTl82NCkg Pwo+ID4gLQkJCQkJICAgRERMX1BMQU5FX1BSRUNJU0lPTl82NCA6Cj4gPiAtCQkJCQkgICBERExf UExBTkVfUFJFQ0lTSU9OXzMyOwo+ID4gKwkJcGxhbmVfcHJlYyA9IChwcmVjX211bHQgPT0gaGln aF9wcmVjaXNpb24pID8KPiA+ICsJCQkJCSAgIERETF9QTEFORV9QUkVDSVNJT05fSElHSCA6Cj4g PiArCQkJCQkgICBERExfUExBTkVfUFJFQ0lTSU9OX0xPVzsKPiA+ICAJCXBsYW5lX2RsIHw9IHBs YW5lX3ByZWMgfCBkcmFpbl9sYXRlbmN5Owo+ID4gIAl9Cj4gPiAgCj4gPiBAQCAtMTQwOCw5ICsx NDE2LDkgQEAgc3RhdGljIHZvaWQgdmx2X3VwZGF0ZV9kcmFpbl9sYXRlbmN5KHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKPiA+ICAJLyogUHJvZ3JhbSBjdXJzb3IgREwgb25seSBpZiBpdCBpcyBlbmFi bGVkICovCj4gPiAgCWlmIChpbnRlbF9jcnRjLT5jdXJzb3JfYmFzZSAmJgo+ID4gIAkgICAgdmx2 X2NvbXB1dGVfZHJhaW5fbGF0ZW5jeShjcnRjLCBwaXhlbF9zaXplLCAmcHJlY19tdWx0LCAmZHJh aW5fbGF0ZW5jeSkpIHsKPiA+IC0JCXBsYW5lX3ByZWMgPSAocHJlY19tdWx0ID09IERSQUlOX0xB VEVOQ1lfUFJFQ0lTSU9OXzY0KSA/Cj4gPiAtCQkJCQkgICBERExfQ1VSU09SX1BSRUNJU0lPTl82 NCA6Cj4gPiAtCQkJCQkgICBERExfQ1VSU09SX1BSRUNJU0lPTl8zMjsKPiA+ICsJCXBsYW5lX3By ZWMgPSAocHJlY19tdWx0ID09IGhpZ2hfcHJlY2lzaW9uKSA/Cj4gPiArCQkJCQkgICBERExfQ1VS U09SX1BSRUNJU0lPTl9ISUdIIDoKPiA+ICsJCQkJCSAgIERETF9DVVJTT1JfUFJFQ0lTSU9OX0xP VzsKPiA+ICAJCXBsYW5lX2RsIHw9IHBsYW5lX3ByZWMgfCAoZHJhaW5fbGF0ZW5jeSA8PCBERExf Q1VSU09SX1NISUZUKTsKPiA+ICAJfQo+ID4gIAo+ID4gQEAgLTE1NzgsMTUgKzE1ODYsMTcgQEAg c3RhdGljIHZvaWQgdmFsbGV5dmlld191cGRhdGVfc3ByaXRlX3dtKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAo+ID4gIAlpbnQgcGxhbmVfcHJlYzsKPiA+ICAJaW50IHNwcml0ZV9kbDsKPiA+ICAJ aW50IHByZWNfbXVsdDsKPiA+ICsJaW50IGhpZ2hfcHJlY2lzaW9uID0gSVNfQ0hFUlJZVklFVyhk ZXYpID8gRFJBSU5fTEFURU5DWV9QUkVDSVNJT05fMzIgOgo+ID4gKwkJCQkJCSAgRFJBSU5fTEFU RU5DWV9QUkVDSVNJT05fNjQ7Cj4gCj4gQ291bGQgYWxzbyBiZSBjb25zdC4KPiAKPiBPdGhlcndp c2UgbG9va3MgZ29vZCwgc286Cj4gUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4gPiAgCj4gPiAtCXNwcml0ZV9kbCA9IEk5MTVf UkVBRChWTFZfRERMKHBpcGUpKSAmIH4oRERMX1NQUklURV9QUkVDSVNJT05fNjQoc3ByaXRlKSB8 Cj4gPiArCXNwcml0ZV9kbCA9IEk5MTVfUkVBRChWTFZfRERMKHBpcGUpKSAmIH4oRERMX1NQUklU RV9QUkVDSVNJT05fSElHSChzcHJpdGUpIHwKPiA+ICAJCSAgICAoRFJBSU5fTEFURU5DWV9NQVNL IDw8IERETF9TUFJJVEVfU0hJRlQoc3ByaXRlKSkpOwo+ID4gIAo+ID4gIAlpZiAoZW5hYmxlZCAm JiB2bHZfY29tcHV0ZV9kcmFpbl9sYXRlbmN5KGNydGMsIHBpeGVsX3NpemUsICZwcmVjX211bHQs Cj4gPiAgCQkJCQkJICZkcmFpbl9sYXRlbmN5KSkgewo+ID4gLQkJcGxhbmVfcHJlYyA9IChwcmVj X211bHQgPT0gRFJBSU5fTEFURU5DWV9QUkVDSVNJT05fNjQpID8KPiA+IC0JCQkJCSAgIERETF9T UFJJVEVfUFJFQ0lTSU9OXzY0KHNwcml0ZSkgOgo+ID4gLQkJCQkJICAgRERMX1NQUklURV9QUkVD SVNJT05fMzIoc3ByaXRlKTsKPiA+ICsJCXBsYW5lX3ByZWMgPSAocHJlY19tdWx0ID09IGhpZ2hf cHJlY2lzaW9uKSA/Cj4gPiArCQkJCQkgICBERExfU1BSSVRFX1BSRUNJU0lPTl9ISUdIKHNwcml0 ZSkgOgo+ID4gKwkJCQkJICAgRERMX1NQUklURV9QUkVDSVNJT05fTE9XKHNwcml0ZSk7Cj4gPiAg CQlzcHJpdGVfZGwgfD0gcGxhbmVfcHJlYyB8Cj4gPiAgCQkJICAgICAoZHJhaW5fbGF0ZW5jeSA8 PCBERExfU1BSSVRFX1NISUZUKHNwcml0ZSkpOwo+ID4gIAl9Cj4gPiAtLSAKPiA+IDEuOS4zCj4g Cj4gLS0gCj4gVmlsbGUgU3lyasOkbMOkCj4gSW50ZWwgT1RDCgotLSAKVmlsbGUgU3lyasOkbMOk CkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=