From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [Intel-gfx] [PATCH 4/4] drm/i915: Determine DP++ type 1 DVI adaptor presence based on VBT Date: Fri, 1 Apr 2016 17:45:34 +0300 Message-ID: <20160401144534.GS4329@intel.com> References: <1456245988-19442-1-git-send-email-ville.syrjala@linux.intel.com> <1456245988-19442-5-git-send-email-ville.syrjala@linux.intel.com> <1459461996.2369.7.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1459461996.2369.7.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Zanoni, Paulo R" Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMzEsIDIwMTYgYXQgMTA6MDY6MzdQTSArMDAwMCwgWmFub25pLCBQYXVsbyBS IHdyb3RlOgo+IEVtIFRlciwgMjAxNi0wMi0yMyDDoHMgMTg6NDYgKzAyMDAsIHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tCj4gZXNjcmV2ZXU6Cj4gPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gCj4gPiBEUCBkdWFsIG1vZGUgdHlw ZSAxIERWSSBhZGFwdG9ycyBhcmVuJ3QgcmVxdWlyZWQgdG8gaW1wbGVtZW50IGFueQo+ID4gcmVn aXN0ZXJzLCBzbyBpdCdzIGEgYml0IGhhcmQgdG8gZGV0ZWN0IHRoZW0uIFRoZSBiZXN0IHdheSB3 b3VsZAo+ID4gYmUgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZSBDT05GSUcxIHBpbiwgYnV0IHdl IGhhdmUgbm8gd2F5IHRvCj4gPiBkbyB0aGF0LiBTbyBhcyBhIGxhc3QgcmVzb3J0LCBjaGVjayB0 aGUgVkJUIHRvIHNlZSBpZiB0aGUgSERNSQo+ID4gcG9ydCBpcyBpbiBmYWN0IGEgZHVhbCBtb2Rl IGNhcGFibGUgRFAgcG9ydC4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9iaW9zLmggfMKgwqAzICsrKwo+ID4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jwqDCoMKgfCAyOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4g PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoHzCoMKgMSArCj4gPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8IDIzICsrKysrKysrKysrKysrKysrKysr Ky0tCj4gPiDCoDQgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo LSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3Mu aAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmgKPiA+IGluZGV4IDM1MGQ0 ZTBmNzVhNC4uNTBkMTY1OWVmZTQ3IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYmlvcy5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9z LmgKPiA+IEBAIC03MzAsNiArNzMwLDcgQEAgc3RydWN0IGJkYl9wc3Igewo+ID4gwqAjZGVmaW5l CcKgREVWSUNFX1RZUEVfSU5UX1RWCTB4MTAwOQo+ID4gwqAjZGVmaW5lCcKgREVWSUNFX1RZUEVf SERNSQkweDYwRDIKPiA+IMKgI2RlZmluZQnCoERFVklDRV9UWVBFX0RQCQkweDY4QzYKPiA+ICsj ZGVmaW5lCcKgREVWSUNFX1RZUEVfRFBfRFVBTF9NT0RFCTB4NjBENgo+ID4gwqAjZGVmaW5lCcKg REVWSUNFX1RZUEVfZURQCTB4NzhDNgo+ID4gwqAKPiA+IMKgI2RlZmluZcKgwqBERVZJQ0VfVFlQ RV9DTEFTU19FWFRFTlNJT04JKDEgPDwgMTUpCj4gPiBAQCAtNzY0LDYgKzc2NSw4IEBAIHN0cnVj dCBiZGJfcHNyIHsKPiA+IMKgCcKgREVWSUNFX1RZUEVfRElTUExBWVBPUlRfT1VUUFVUIHwgXAo+ ID4gwqAJwqBERVZJQ0VfVFlQRV9BTkFMT0dfT1VUUFVUKQo+ID4gwqAKPiA+ICsjZGVmaW5lIERF VklDRV9UWVBFX0RQX0RVQUxfTU9ERV9CSVRTIH5ERVZJQ0VfVFlQRV9OT1RfSERNSV9PVVRQVVQK PiA+ICsKPiA+IMKgLyogZGVmaW5lIHRoZSBEVk8gcG9ydCBmb3IgSERNSSBvdXRwdXQgdHlwZSAq Lwo+ID4gwqAjZGVmaW5lCQlEVk9fQgkJMQo+ID4gwqAjZGVmaW5lCQlEVk9fQwkJMgo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXggY2JjMDY1OTY2NTlhLi5mM2VkYWNmNTE3 YWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtNTEwNCw2ICs1MTA0 LDM0IEBAIGJvb2wgaW50ZWxfZHBfaXNfZWRwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiBl bnVtIHBvcnQgcG9ydCkKPiA+IMKgCXJldHVybiBmYWxzZTsKPiA+IMKgfQo+ID4gwqAKPiA+ICti b29sIGludGVsX2RwX2lzX2R1YWxfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0KPiA+IHBvcnQgcG9ydCkKPiA+ICt7Cj4gPiArCWNvbnN0IHVuaW9uIGNoaWxkX2Rl dmljZV9jb25maWcgKnBfY2hpbGQ7Cj4gPiArCWludCBpOwo+ID4gKwlzdGF0aWMgY29uc3Qgc2hv cnQgcG9ydF9tYXBwaW5nW10gPSB7Cj4gPiArCQlbUE9SVF9CXSA9IERWT19QT1JUX0RQQiwKPiA+ ICsJCVtQT1JUX0NdID0gRFZPX1BPUlRfRFBDLAo+ID4gKwkJW1BPUlRfRF0gPSBEVk9fUE9SVF9E UEQsCj4gPiArCQlbUE9SVF9FXSA9IERWT19QT1JUX0RQRSwKPiA+ICsJfTsKPiA+ICsKPiA+ICsJ aWYgKHBvcnQgPT0gUE9SVF9BIHx8IHBvcnQgPj0gQVJSQVlfU0laRShwb3J0X21hcHBpbmcpKQo+ ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwlpZiAoIWRldl9wcml2LT52YnQuY2hpbGRf ZGV2X251bSkKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsKPiA+ICsJZm9yIChpID0gMDsgaSA8 IGRldl9wcml2LT52YnQuY2hpbGRfZGV2X251bTsgaSsrKSB7Cj4gPiArCQlwX2NoaWxkID0gJmRl dl9wcml2LT52YnQuY2hpbGRfZGV2W2ldOwo+ID4gKwo+ID4gKwkJaWYgKHBfY2hpbGQtPmNvbW1v bi5kdm9fcG9ydCA9PSBwb3J0X21hcHBpbmdbcG9ydF0KPiA+ICYmCj4gPiArCQnCoMKgwqDCoChw X2NoaWxkLT5jb21tb24uZGV2aWNlX3R5cGUgJgo+ID4gREVWSUNFX1RZUEVfRFBfRFVBTF9NT0RF X0JJVFMpID09Cj4gPiArCQnCoMKgwqDCoChERVZJQ0VfVFlQRV9EUF9EVUFMX01PREUgJgo+ID4g REVWSUNFX1RZUEVfRFBfRFVBTF9NT0RFX0JJVFMpKQo+ID4gKwkJCXJldHVybiB0cnVlOwo+ID4g Kwl9Cj4gCj4gU29tZSB0aG91Z2h0czoKPiAKPiBUaGlzIGlzIGdvaW5nIHRvIGJlIGltcGxlbWVu dGVkIGZvciBhbGwgVkJUIHZlcnNpb25zLiBTaW5jZSB0aGVyZSdzIG5vCj4gcmVhbCBoaXN0b3J5 IGFib3V0IGFueXRoaW5nIGJlZm9yZSB2ZXJzaW9uIDE1NSwgaXMgdGhpcyByZWFsbHkgd2hhdCB3 ZQo+IHdhbnQ/IEEgaHVnZSBwYXJ0IG9mIHRoZSAid2UgZG9uJ3QgdHJ1c3QgdGhlIFZCVCIgY3Vs dHVyZSB3ZSBoYXZlIG9uCj4gb3VyIHRlYW0gaXMgYmVjYXVzZSBvZiB0aG9zZSBvbGQgdmVyc2lv bnMgYmVpbmcgY29tcGxldGVseSB1bnJlbGlhYmxlLgo+IElmIHRoaXMgaXMgdGhlIGNhc2UsIHdl IGNvdWxkIG1ha2UgdGhpcyBpbXBsZW1lbnRhdGlvbiBqdXN0IGJlIGEgc21hbGwKPiBwYXRjaCBp biBwYXJzZV9kZGlfcG9ydCgpLiBJJ20ga2luZGEgYWZyYWlkIHdlIG1heSBzb21laG93IGJyZWFr IG9sZAo+IG1hY2hpbmVzIHlldCBhZ2Fpbi4KCkkgZG9uJ3QgdGhpbmsgaXQgbWF0dGVycyBtdWNo LiBJTEsgYmVpbmcgdGhlIG9sZGVzdCBwbGF0Zm9ybSB3aXRoIERQKysKY2FwYWJsZSBvZiA+MTY1 TUh6LCBhbmQgYXQgbGVhc3QgbXkgSUxLIGhlcmUgYWxyZWFkeSBoYXMgVkJUIHZlcnNpb24KMTYz LiBBbHNvIHRoaXMgZGV2aWNlIHR5cGUgc3R1ZmYgd2FzIHRoZXJlIGJlZm9yZSAxNTUgYWxyZWFk eS4gQW5kCnRoZSBpc19lZHAoKSB0aGluZyBoYXMgd29ya2VkIGZvciB1cyBtb3N0bHkgZmluZSBz byBpZiB3ZSB0aGluZ3MgdGhlCnNhbWUgd2F5IGl0IHNlZW1zIHVubGlrZWx5IHdlIGdldCB0b28g bWFueSBwcm9ibGVtcy4KCj4gCj4gLSBJbnN0ZWFkIG9mIGNyZWF0aW5nIHRoZXNlIGNvbXBsaWNh dGVkIGJpdCBtYXNrcywgd2h5IGRvbid0IHdlIGp1c3QKPiBzcGVjaWZpY2FsbHkgY2hlY2sgImlm IGJpdCAyIGFuZCBiaXQgNCBhcmUgZW5hYmxlZCwgd2UncmUgdXNpbmcgYW4KPiBhZGFwdG9yIj8g TXVjaCBzaW1wbGVyIElNSE8uCgpJJ20gbm90IHN1cmUgaXQncyBhIGdvb2QgaWRlYSB0byB0cnVz dCB0aGF0IHNvbWUgY3JhcHB5IEJJT1MgZG9lc24ndApqdXN0IHNldCB3aGF0ZXZlciByYW5kb20g Yml0cyBvbiBhIHJhbmRvbSBwb3J0LiBTbyBhIG1vcmUKY29uc2VydmF0aXZlIGFwcHJvYWNoIHNl ZW1zIGxpa2UgYSBiZXR0ZXIgaWRlYSB0byBtZS4gQWxzbyBpdCBtYXRjaGVzCmhvdyB3ZSBkbyB0 aGUgaXNfZWRwKCkgY2hlY2suCgo+IAo+IC0gSmFuaSdzIHJlY2VudCBwYXRjaCBzdWdnZXN0cyB5 b3UgbWF5IHdhbnQgdG8gbW92ZSB0aGlzIGZ1bmN0aW9uIHRvCj4gaW50ZWxfYmlvcy5jIGluIG9y ZGVyIHRvIGF2b2lkIGluY2x1ZGluZyBpbnRlbF92YnRfZGVmcy5oIGZyb20KPiBpbnRlbF9oZG1p LmMuIEFueXdheSwgeW91J2xsIGhhdmUgdG8gcmViYXNlLgo+IAo+ID4gKwlyZXR1cm4gZmFsc2U7 Cj4gPiArfQo+ID4gKwo+ID4gwqB2b2lkCj4gPiDCoGludGVsX2RwX2FkZF9wcm9wZXJ0aWVzKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHN0cnVjdAo+ID4gZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ID4gwqB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IDNj YTI5YTE4MWU2NC4uYzdkMWVhNGRiZTQyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCj4gPiBAQCAtMTI0OCw2ICsxMjQ4LDcgQEAgaW50IGludGVsX2RwX3NpbmtfY3JjKHN0cnVj dCBpbnRlbF9kcAo+ID4gKmludGVsX2RwLCB1OCAqY3JjKTsKPiA+IMKgYm9vbCBpbnRlbF9kcF9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+IMKgCQkJwqDC oMKgwqDCoHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gPiDCoGJvb2wg aW50ZWxfZHBfaXNfZWRwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcG9ydCBwb3J0KTsK PiA+ICtib29sIGludGVsX2RwX2lzX2R1YWxfbW9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGVudW0KPiA+IHBvcnQgcG9ydCk7Cj4gPiDCoGVudW0gaXJxcmV0dXJuIGludGVs X2RwX2hwZF9wdWxzZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiAqaW50ZWxfZGlnX3Bv cnQsCj4gPiDCoAkJCQnCoMKgYm9vbCBsb25nX2hwZCk7Cj4gPiDCoHZvaWQgaW50ZWxfZWRwX2Jh Y2tsaWdodF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRtaS5jCj4gPiBpbmRleCA2NjBhNjVmNDhmZDguLjE0NzZmM2FmYjdlMiAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBAQCAtMTM5MCwxNCArMTM5MCwz MyBAQCBpbnRlbF9oZG1pX3Vuc2V0X2VkaWQoc3RydWN0IGRybV9jb25uZWN0b3IKPiA+ICpjb25u ZWN0b3IpCj4gPiDCoH0KPiA+IMKgCj4gPiDCoHN0YXRpYyB2b2lkCj4gPiAtaW50ZWxfaGRtaV9k cF9kdWFsX21vZGVfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAr aW50ZWxfaGRtaV9kcF9kdWFsX21vZGVfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsIGJvb2wKPiA+IGhhc19lZGlkKQo+ID4gwqB7Cj4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+ZGV2KTsKPiA+IMKgCXN0cnVj dCBpbnRlbF9oZG1pICpoZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwo+ID4g KwllbnVtIHBvcnQgcG9ydCA9IGhkbWlfdG9fZGlnX3BvcnQoaGRtaSktPnBvcnQ7Cj4gPiDCoAlz dHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPQo+ID4gwqAJCWludGVsX2dtYnVzX2dldF9hZGFw dGVyKGRldl9wcml2LCBoZG1pLT5kZGNfYnVzKTsKPiA+IMKgCWVudW0gZHJtX2RwX2R1YWxfbW9k ZV90eXBlIHR5cGUgPQo+ID4gZHJtX2RwX2R1YWxfbW9kZV9kZXRlY3QoYWRhcHRlcik7Cj4gPiDC oAo+ID4gKwkvKgo+ID4gKwnCoCogVHlwZSAxIERWSSBhZGFwdG9ycyBhcmUgbm90IHJlcXVpcmVk IHRvIGltcGxlbWVudCBhbnkKPiA+ICsJwqAqIHJlZ2lzdGVycywgc28gd2UgY2FuJ3QgYWx3YXlz IGRldGVjdCB0aGVpciBwcmVzZW5jZS4KPiA+ICsJwqAqIElkZWFsbHkgd2Ugc2hvdWxkIGJlIGFi bGUgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoZQo+ID4gKwnCoCogQ09ORklHMSBwaW4sIGJ1dCBu byBzdWNoIGx1Y2sgb24gb3VyIGhhcmR3YXJlLgo+ID4gKwnCoCoKPiA+ICsJwqAqIFRoZSBvbmx5 IG1ldGhvZCBsZWZ0IHRvIHVzIGlzIHRvIGNoZWNrIHRoZSBWQlQgdG8gc2VlCj4gPiArCcKgKiBp ZiB0aGUgcG9ydCBpcyBhIGR1YWwgbW9kZSBjYXBhYmxlIERQIHBvcnQuIEJ1dCBsZXQncwo+ID4g KwnCoCogb25seSBkbyB0aGF0IHdoZW4gd2Ugc3VjZXNmdWxseSByZWFkIHRoZSBFRElELCB0byBh dm9pZAo+ID4gKwnCoCogY29uZnVzaW5nIGxvZyBtZXNzYWdlcyBhYm91dCBEUCBkdWFsIG1vZGUg YWRhcHRvcnMgd2hlbgo+ID4gKwnCoCogdGhlcmUncyBub3RoaW5nIGNvbm5lY3RlZCB0byB0aGUg cG9ydC4KPiA+ICsJwqAqLwo+ID4gKwlpZiAodHlwZSA9PSBEUk1fRFBfRFVBTF9NT0RFX05PTkUg JiYgaGFzX2VkaWQgJiYKPiA+ICsJwqDCoMKgwqBpbnRlbF9kcF9pc19kdWFsX21vZGUoZGV2X3By aXYsIHBvcnQpKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJBc3N1bWluZyBEUCBkdWFsIG1vZGUg YWRhcHRvcgo+ID4gcHJlc2VuY2UgYmFzZWQgb24gVkJUXG4iKTsKPiA+ICsJCXR5cGUgPSBEUk1f RFBfRFVBTF9NT0RFX1RZUEUxX0RWSTsKPiA+ICsJfQo+ID4gKwo+ID4gwqAJaWYgKHR5cGUgPT0g RFJNX0RQX0RVQUxfTU9ERV9OT05FKQo+ID4gwqAJCXJldHVybjsKPiA+IMKgCj4gPiBAQCAtMTQ0 MSw3ICsxNDYwLDcgQEAgaW50ZWxfaGRtaV9zZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ ID4gKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+IMKgCQkJCcKgwqDCoMKgaW50ZWxfZ21idXNf Z2V0X2FkYXB0ZXIoZGV2X3ByaXYKPiA+ICwKPiA+IMKgCQkJCcKgwqDCoMKgaW50ZWxfaGRtaS0+ ZGRjX2J1cykpOwo+ID4gwqAKPiA+IC0JCWludGVsX2hkbWlfZHBfZHVhbF9tb2RlX2RldGVjdChj b25uZWN0b3IpOwo+ID4gKwkJaW50ZWxfaGRtaV9kcF9kdWFsX21vZGVfZGV0ZWN0KGNvbm5lY3Rv ciwgZWRpZCAhPQo+ID4gTlVMTCk7Cj4gPiDCoAo+ID4gwqAJCWludGVsX2Rpc3BsYXlfcG93ZXJf cHV0KGRldl9wcml2LAo+ID4gUE9XRVJfRE9NQUlOX0dNQlVTKTsKPiA+IMKgCX0KCi0tIApWaWxs ZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2RyaS1kZXZlbAo=