From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH] drm/i915: sync dp link status checks against atomic commmits Date: Wed, 8 Nov 2017 10:09:32 -0800 Message-ID: <20171108180930.GA12726@intel.com> References: <20171108105450.20339-2-daniel.vetter@ffwll.ch> <20171108125750.1663-1-daniel.vetter@ffwll.ch> <20171108130458.GA10981@intel.com> <20171108131146.2m3e4opmxgoaplb7@phenom.ffwll.local> <20171108132615.GB10981@intel.com> <20171108132823.ymycbii6aw4jkd65@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20171108132823.ymycbii6aw4jkd65@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , DRI Development , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMDgsIDIwMTcgYXQgMDI6Mjg6MjNQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIE5vdiAwOCwgMjAxNyBhdCAwMzoyNjoxNVBNICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIE5vdiAwOCwgMjAxNyBhdCAwMjoxMTo0NlBNICsw MTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBXZWQsIE5vdiAwOCwgMjAxNyBhdCAw MzowNDo1OFBNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBO b3YgMDgsIDIwMTcgYXQgMDE6NTc6NTBQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ ID4gPiA+IFR3byBiaXRzOgo+ID4gPiA+ID4gLSBjaGVjayBhY3R1YWwgYXRvbWljIHN0YXRlLCB0 aGUgbGVnYWN5IHN0dWZmIGNhbiBvbmx5IGJlIGxvb2tlZCBhdAo+ID4gPiA+ID4gICBmcm9tIHdp dGhpbiB0aGUgYXRvbWljX2NvbW1pdF90YWlsIGZ1bmN0aW9uLCBzaW5jZSBpdCdzIG9ubHkKPiA+ ID4gPiA+ICAgcHJvdGVjdGVkIGJ5IG9yZGVyaW5nIGFuZCBub3QgYnkgYW55IGxvY2tzLgo+ID4g PiA+ID4gCj4gPiA+ID4gPiAtIE1ha2Ugc3VyZSB3ZSBkb24ndCB3cmVhayB0aGUgd29yayBhbiBv bmdvaW5nIG5vbmJsb2NraW5nIGNvbW1pdCBpcwo+ID4gPiA+ID4gICBkb2luZy4KPiA+ID4gPiAK PiA+ID4gPiBJIHN0aWxsIHRoaW5rIHdlIG5lZWQgdG8gbW92ZSB0aGUgcmV0cmFpbmluZyB0byB0 aGUgaG90cGx1ZyB3b3JrLgo+ID4gPiAKPiA+ID4gV2h5PyBPbmUgb2YgdGhlIHBhdGNoIHNlcmll cyBNYWFydGVuIG1lbnRpb25lZCBzYXlzIHRoZXJlJ3MgYSBkZWFkbG9jawo+ID4gPiB3aXRoIGRw IGF1eCwgYnV0IGl0IHNlZW1zIHRvIGJlIGFsbCBqdXN0IGZpbmUgd2hlbiBDSSByZXRyYWlucy4K ClRoaXMgcmV0cmFpbmluZyBoZXJlIHdvdWxkIGJlIG5vdCBiZWNhdXNlIG9mIHRoZSB0cmFpbmlu ZyBmYWlsaW5nIGluIHRoZSBjb21taXQgYnV0CndoZW4gd2UgZ2V0IGEgc2hvcnQgcHVsc2Ugcmln aHQgc28gd2hlbiB0aGUgbGluayB3YXMgYWxyZWFkeSB1cCBhbmQgcnVubmluZz8KCj4gPiAKPiA+ IEkgZ3Vlc3MgdGhlIGRlYWRsb2NrIGlzIHBvc3NpYmxlIG9ubHkgd2l0aCBNU1QsIG1heWJlLiBD dXJyZW50bHkgTVNUCj4gPiBoYXMgaXQncyBvd24gY29weSBvZiB0aGUgcmV0cmFpbmluZyBjb2Rl IHdpdGhvdXQgdGhlIGxvY2tzLgo+ID4gCj4gPiBBdCBvbmUgcG9pbnQgSSBzdGFydGVkIHRvIHJl d3JpdGUgdGhlIGVudGlyZSBzaW5rIGlycSBoYW5kbGluZyBpbnRvIGEKPiA+IG11Y2ggbmljZXIg c2hhcGUsIGFsc28gdW5pZnlpbmcgdGhlIGFwcHJvYWNoIGJldHdlZW4gTVNUIGFuZCBTU1QuIElJ UkMKPiA+IEkgZGlkIHN0aWxsIG1ha2UgdGhlIG1pc3Rha2Ugb2YgaGF2aW5nIHNvbWUga2luZCBv ZiBoaWdoZXIgbGV2ZWwgTVNUCj4gPiB2cy4gU1NUIHNwbGl0LCBidXQgSSB0aGluayB0aGUgcHJv cGVyIHNvbHV0aW9uIGlzIHRvIGNvbWJpbmUgdGhlIHR3bwo+ID4gYWxtb3N0IGVudGlyZWx5LiBJ IHRoaW5rIHdlIHNob3VsZCBldmVuIGJlIHVzaW5nIHRoZSBFU0kgcmVnaXN0ZXJzCj4gPiB3aXRo IFNTVCBmb3IgRFBDRCAxLjIrLiBDdXJyZW50bHkgd2UgdXNlIEVTSSBmb3IgTVNUIGFuZCBub24t RVNJIGZvcgo+ID4gU1NULiBTYWRseSBJJ3ZlIG5vdCBmb3VuZCB0aGUgdGltZSB0byBjb250aW51 ZSB0aGF0IHdvcmsgKHNhbWUgc3RvcnkKPiA+IHdpdGggdGhlICJzaHV0ZG93biBkaXNwbGF5cyBw cmlvciB0byByZWJvb3RpbmcgdG8ga2VlcCBEZWxsIE1TVAo+ID4gbW9uaXRvcnMgd29ya2luZyIg dGhpbmcpLgo+IAo+IFllYWgsIG1lcmdpbmcgc3N0IGFuZCBtc3QgbW9yZSBkZWZpbml0ZWx5IHNv dW5kcyBsaWtlIGEgZ29vZCBpZGVhLiBJJ3ZlCj4gYWxzbyBiZWVuIHRveWluZyB3aXRoIGl0IHNp bmNlIGZvcmV2ZXIuCj4gCj4gPiA+IEFuZCBldmVuIGlmIHRoZXJlIGlzIGEgZGVhZGxvY2ssIGl0 J3MgdGhlcmUgYWxyZWFkeSwgc28gbm90IHN1cmUgd2h5IHdlCj4gPiA+IG5lZWQgdG8gYmxvY2sg dGhpcyBidWdmaXggb24gYSBkaWZmZXJlbnQgYnVnZml4LiBXaGljaCBzZWVtcyB0byBiZSB3aGF0 Cj4gPiA+IHlvdSdyZSBzdWdnZXN0aW5nIGhlcmUgKGJ1dCBpdCdzIGEgYml0IHNwYXJzZSkuCj4g PiAKPiA+IEkgZ3Vlc3Mgd2hhdCBJJ20gcmVhbGx5IHNheWluZyBpcyB0aGF0IHdlIHNob3VsZG4n dCBzdG9wIGhlcmUuCj4gCj4gRnVsbHkgYWdyZWVkLgo+IC1EYW5pZWwKPiAKPiA+IAo+ID4gPiAt RGFuaWVsCj4gPiA+IAo+ID4gPiA+ID4gdjI6IFdlIG5lZWQgdGhlIGNydGMgbG9jayB0b28sIGJl Y2F1c2UgYSBwbGFuZSB1cGRhdGUgbWlnaHQgY2hhbmdlIGl0Cj4gPiA+ID4gPiB3aXRob3V0IGhh dmluZyB0byBhY3F1aXJlIHRoZSBjb25uZWN0aW9uX211dGV4IChNYWFydGVuKS4gVXNlCj4gPiA+ ID4gPiBNYWFydGVuJ3MgY2hhbmdlcyBmb3IgdGhpcyBsb2NraW5nLCB3aGlsZSBrZWVwaW5nIHRo ZSBsb2dpYyB0aGF0IHVzZXMKPiA+ID4gPiA+IHRoZSBjb25uZWN0aW9uLT5jb21taXQtPmh3X2Rv bmUgc2lnbmFsIGZvciBzeW5jaW5nIHdpdGggbm9uYmxvY2tpbmcKPiA+ID4gPiA+IGNvbW1pdHMu Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVA aW50ZWwuY29tPgo+ID4gPiA+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmto b3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+IFJlZmVyZW5jZXM6IGh0dHBzOi8v YnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzMzNgo+ID4gPiA+ID4gQnVn emlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTk5Mjcy Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGlu dGVsLmNvbT4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gPiA+IGlu ZGV4IGQyN2MwMTQ1YWM5MS4uN2NkN2FiNGZiNDMxIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gQEAgLTQzMTksNiArNDMxOSw4IEBAIHN0YXRp YyB2b2lkCj4gPiA+ID4gPiAgaW50ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZTsKCkkg ZG9udCB0aGluayB3ZSBuZWVkIGludGVsX2VuY29kZXIsIGNhbiB3ZSByZW1vdmUgdGhpcz8KCk1h bmFzaQoKPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUg PQo+ID4gPiA+ID4gKwkJaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFzZS5zdGF0ZTsK PiA+ID4gPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRl bF9kcCk7Cj4gPiA+ID4gPiAgCXU4IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJWkVdOwo+ ID4gPiA+ID4gIAo+ID4gPiA+ID4gQEAgLTQzMjksMTAgKzQzMzEsMTUgQEAgaW50ZWxfZHBfY2hl Y2tfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiA+ICAJCXJl dHVybjsKPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gLQlpZiAoIWludGVsX2Vu Y29kZXItPmJhc2UuY3J0YykKPiA+ID4gPiA+ICsJaWYgKCFjb25uX3N0YXRlLT5jcnRjKQo+ID4g PiA+ID4gIAkJcmV0dXJuOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gLQlpZiAoIXRvX2ludGVsX2Ny dGMoaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjKS0+YWN0aXZlKQo+ID4gPiA+ID4gKwlXQVJOX09O KCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmNvbm5fc3RhdGUtPmNydGMtPm11dGV4KSk7Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArCWlmICghY29ubl9zdGF0ZS0+Y3J0Yy0+c3RhdGUtPmFjdGl2ZSkK PiA+ID4gPiA+ICsJCXJldHVybjsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJaWYgKCF0cnlfd2Fp dF9mb3JfY29tcGxldGlvbigmY29ubl9zdGF0ZS0+Y29tbWl0LT5od19kb25lKSkKPiA+ID4gPiA+ ICAJCXJldHVybjsKPiA+ID4gPiA+ICAKPiA+ID4gPiA+ICAJLyoKPiA+ID4gPiA+IEBAIC00MzY4 LDcgKzQzNzUsNiBAQCBpbnRlbF9kcF9jaGVja19saW5rX3N0YXR1cyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gPiA+ID4gIHN0YXRpYyBib29sCj4gPiA+ID4gPiAgaW50ZWxfZHBfc2hv cnRfcHVsc2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiA+ICB7Cj4gPiA+ID4g PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9ICZkcF90b19k aWdfcG9ydChpbnRlbF9kcCktPmJhc2U7Cj4gPiA+ID4gPiAgCXU4IHNpbmtfaXJxX3ZlY3RvciA9 IDA7Cj4gPiA+ID4gPiAgCXU4IG9sZF9zaW5rX2NvdW50ID0gaW50ZWxfZHAtPnNpbmtfY291bnQ7 Cj4gPiA+ID4gPiBAQCAtNDQwOCw5ICs0NDE0LDggQEAgaW50ZWxfZHBfc2hvcnRfcHVsc2Uoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ID4gPiA+ICAJCQlEUk1fREVCVUdfRFJJVkVSKCJD UCBvciBzaW5rIHNwZWNpZmljIGlycSB1bmhhbmRsZWRcbiIpOwo+ID4gPiA+ID4gIAl9Cj4gPiA+ ID4gPiAgCj4gPiA+ID4gPiAtCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29u bmVjdGlvbl9tdXRleCwgTlVMTCk7Cj4gPiA+ID4gPiAgCWludGVsX2RwX2NoZWNrX2xpbmtfc3Rh dHVzKGludGVsX2RwKTsKPiA+ID4gPiA+IC0JZHJtX21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVf Y29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIAlpZiAoaW50 ZWxfZHAtPmNvbXBsaWFuY2UudGVzdF90eXBlID09IERQX1RFU1RfTElOS19UUkFJTklORykgewo+ ID4gPiA+ID4gIAkJRFJNX0RFQlVHX0tNUygiTGluayBUcmFpbmluZyBDb21wbGlhbmNlIFRlc3Qg cmVxdWVzdGVkXG4iKTsKPiA+ID4gPiA+ICAJCS8qIFNlbmQgYSBIb3RwbHVnIFVldmVudCB0byB1 c2Vyc3BhY2UgdG8gc3RhcnQgbW9kZXNldCAqLwo+ID4gPiA+ID4gQEAgLTQ4NjAsOCArNDg2NSwx OSBAQCBpbnRlbF9kcF9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ ID4gPiA+ICAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKPiA+ ID4gPiA+ICAKPiA+ID4gPiA+ICAJLyogSWYgZnVsbCBkZXRlY3QgaXMgbm90IHBlcmZvcm1lZCB5 ZXQsIGRvIGEgZnVsbCBkZXRlY3QgKi8KPiA+ID4gPiA+IC0JaWYgKCFpbnRlbF9kcC0+ZGV0ZWN0 X2RvbmUpCj4gPiA+ID4gPiArCWlmICghaW50ZWxfZHAtPmRldGVjdF9kb25lKSB7Cj4gPiA+ID4g PiArCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiA+ID4gPiArCQlpbnQgcmV0Owo+ID4gPiA+ ID4gKwo+ID4gPiA+ID4gKwkJY3J0YyA9IGNvbm5lY3Rvci0+c3RhdGUtPmNydGM7Cj4gPiA+ID4g PiArCQlpZiAoY3J0Yykgewo+ID4gPiA+ID4gKwkJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNy dGMtPm11dGV4LCBjdHgpOwo+ID4gPiA+ID4gKwkJCWlmIChyZXQpCj4gPiA+ID4gPiArCQkJCXJl dHVybiByZXQ7Cj4gPiA+ID4gPiArCQl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgCQlzdGF0dXMg PSBpbnRlbF9kcF9sb25nX3B1bHNlKGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3IpOwo+ID4g PiA+ID4gKwl9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCWludGVsX2RwLT5kZXRlY3RfZG9uZSA9 IGZhbHNlOwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gQEAgLTUxNDYsMTAgKzUxNjIsMzggQEAgaW50 ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 LCBib29sIGxvbmdfaHBkKQo+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCWlm ICghaW50ZWxfZHAtPmlzX21zdCkgewo+ID4gPiA+ID4gKwkJc3RydWN0IGRybV9tb2Rlc2V0X2Fj cXVpcmVfY3R4IGN0eDsKPiA+ID4gPiA+ICsJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSAmaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFzZTsKPiA+ID4gPiA+ICsJCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+ID4gPiA+ICsJCWludCBpcmV0Owo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gKwkJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZjdHgsIDApOwo+ID4gPiA+ID4g K3JldHJ5Ogo+ID4gPiA+ID4gKwkJaXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9j b25maWcuY29ubmVjdGlvbl9tdXRleCwgJmN0eCk7Cj4gPiA+ID4gPiArCQlpZiAoaXJldCkKPiA+ ID4gPiA+ICsJCQlnb3RvIGVycjsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJCWNydGMgPSBjb25u ZWN0b3ItPnN0YXRlLT5jcnRjOwo+ID4gPiA+ID4gKwkJaWYgKGNydGMpIHsKPiA+ID4gPiA+ICsJ CQlpcmV0ID0gZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+bXV0ZXgsICZjdHgpOwo+ID4gPiA+ID4g KwkJCWlmIChpcmV0KQo+ID4gPiA+ID4gKwkJCQlnb3RvIGVycjsKPiA+ID4gPiA+ICsJCX0KPiA+ ID4gPiA+ICsKPiA+ID4gPiA+ICAJCWlmICghaW50ZWxfZHBfc2hvcnRfcHVsc2UoaW50ZWxfZHAp KSB7Cj4gPiA+ID4gPiAgCQkJaW50ZWxfZHAtPmRldGVjdF9kb25lID0gZmFsc2U7Cj4gPiA+ID4g PiAgCQkJZ290byBwdXRfcG93ZXI7Cj4gPiA+ID4gPiAgCQl9Cj4gPiA+ID4gPiArCj4gPiA+ID4g PiArZXJyOgo+ID4gPiA+ID4gKwkJaWYgKGlyZXQgPT0gLUVERUFETEspIHsKPiA+ID4gPiA+ICsJ CQlkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwo+ID4gPiA+ID4gKwkJCWdvdG8gcmV0cnk7Cj4g PiA+ID4gPiArCQl9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCQlkcm1fbW9kZXNldF9kcm9wX2xv Y2tzKCZjdHgpOwo+ID4gPiA+ID4gKwkJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwo+ ID4gPiA+ID4gKwkJV0FSTihpcmV0LCAiQWNxdWlyaW5nIG1vZGVzZXQgbG9ja3MgZmFpbGVkIHdp dGggJWlcbiIsIGlyZXQpOwo+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiAgCj4gPiA+ID4gPiAgCXJl dCA9IElSUV9IQU5ETEVEOwo+ID4gPiA+ID4gLS0gCj4gPiA+ID4gPiAyLjE1LjAKPiA+ID4gPiAK PiA+ID4gPiAtLSAKPiA+ID4gPiBWaWxsZSBTeXJqw6Rsw6QKPiA+ID4gPiBJbnRlbCBPVEMKPiA+ ID4gCj4gPiA+IC0tIAo+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPiA+IFNvZnR3YXJlIEVuZ2luZWVy LCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4gCj4gPiAt LSAKPiA+IFZpbGxlIFN5cmrDpGzDpAo+ID4gSW50ZWwgT1RDCj4gCj4gLS0gCj4gRGFuaWVsIFZl dHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=