From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 1/4] drm/i915: Make atomic use in-flight state for CRTC active value Date: Thu, 9 Apr 2015 07:49:45 -0700 Message-ID: <20150409144945.GN11603@intel.com> References: <1428544614-28082-1-git-send-email-matthew.d.roper@intel.com> <1428544614-28082-2-git-send-email-matthew.d.roper@intel.com> <20150409124236.GI12038@phenom.ffwll.local> <20150409140031.GK11603@intel.com> <20150409144504.GQ12038@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 6936E720FC for ; Thu, 9 Apr 2015 07:49:46 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150409144504.GQ12038@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMDksIDIwMTUgYXQgMDQ6NDU6MDRQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIEFwciAwOSwgMjAxNSBhdCAwNzowMDozMUFNIC0wNzAwLCBNYXR0IFJv cGVyIHdyb3RlOgo+ID4gT24gVGh1LCBBcHIgMDksIDIwMTUgYXQgMDI6NDI6MzZQTSArMDIwMCwg RGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gT24gV2VkLCBBcHIgMDgsIDIwMTUgYXQgMDY6NTY6 NTFQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90ZToKPiA+ID4gPiBPdXIgYXRvbWljIHBsYW5lIGNv ZGUgY3VycmVudGx5IHVzZXMgaW50ZWxfY3J0Yy0+YWN0aXZlIHRvIGRldGVybWluZQo+ID4gPiA+ IGhvdy93aGVuIHRvIHVwZGF0ZSBzb21lIGRlcml2ZWQgc3RhdGUgdmFsdWVzLiAgVGhpcyB3b3Jr cyBmaW5lIGZvciBwdXJlCj4gPiA+ID4gcGxhbmUgdXBkYXRlcyBhdCB0aGUgbW9tZW50IHNpbmNl IHRoZSBDUlRDIHN0YXRlIGl0c2VsZiBpc24ndCBjaGFuZ2VkIGFzCj4gPiA+ID4gcGFydCBvZiB0 aGUgb3BlcmF0aW9uLiAgSG93ZXZlciBhcyB3ZSBjb252ZXJ0IG1vcmUgb2Ygb3VyIGRyaXZlcgo+ ID4gPiA+IGludGVybmFscyBvdmVyIHRvIGF0b21pYyBtb2Rlc2V0dGluZywgd2UgbmVlZCB0byBs b29rIGF0IHdoZXRoZXIgdGhlCj4gPiA+ID4gQ1JUQyB3aWxsIGJlIGFjdGl2ZSBhdCB0aGUgKmVu ZCogb2YgdGhlIGF0b21pYyB0cmFuc2FjdGlvbiAod2hpY2ggbWF5Cj4gPiA+ID4gbm90IG1hdGNo IHRoZSBjdXJyZW50bHkgY29tbWl0dGVkIHN0YXRlKS4KPiA+ID4gPiAKPiA+ID4gPiBUaGUgaW4t ZmxpZ2h0IHZhbHVlIHdlIHdhbnQgdG8gdXNlIGlzIGdlbmVyYWxseSBpbiBhIGNydGNfc3RhdGUg b2JqZWN0Cj4gPiA+ID4gYXNzb2NpYXRlZCB3aXRoIG91ciB0b3AtbGV2ZWwgYXRvbWljIHRyYW5z YWN0aW9uLiAgSG93ZXZlciB0aGVyZSBhcmUgYQo+ID4gPiA+IGZldyBjYXNlcyB3aGVyZSB0aGlz IGlzbid0IHRoZSBjYXNlOgo+ID4gPiA+IAo+ID4gPiA+ICAqIFdoaWxlIHVzaW5nIHRyYW5zaXRp b25hbCBhdG9taWMgaGVscGVycyAoYXMgd2UgYXJlIGF0IHRoZSBtb21lbnQpLAo+ID4gPiA+ICAg IFNldFBsYW5lKCkgY2FsbHMgd2lsbCBvcGVyYXRlIG9uIG9ycGhhbmVkIHBsYW5lIHN0YXRlcyB0 aGF0IGFyZW4ndAo+ID4gPiA+ICAgIHBhcnQgb2YgYSB0b3AtbGV2ZWwgYXRvbWljIHRyYW5zYWN0 aW9uLiAgSW4gdGhpcyBjYXNlLCB3ZSdyZSBub3QKPiA+ID4gPiAgICB0b3VjaGluZyB0aGUgQ1JU QyBzdGF0ZSwgc28gaXQncyBmaW5lIHRvIHVzZSB0aGUgYWxyZWFkeS1jb21taXR0ZWQKPiA+ID4g PiAgICB2YWx1ZSBmcm9tIGNydGMtPnN0YXRlLgo+ID4gPiA+IAo+ID4gPiA+ICAqIFdoaWxlIHVw ZGF0aW5nIHByb3BlcnRpZXMgb2YgYSBkaXNhYmxlZCBwbGFuZSwgd2UnbGwgaGF2ZSBhIHRvcC1s ZXZlbAo+ID4gPiA+ICAgIGF0b21pYyBzdGF0ZSwgYnV0IGl0IG1heSBub3QgY29udGFpbiB0aGUg Q1JUQyBzdGF0ZSB3ZSdyZSBsb29raW5nCj4gPiA+ID4gICAgZm9yLiAgT25jZSBhZ2FpbiwgdGhp cyBtZWFucyB3ZSdyZSBub3QgYWN0dWFsbHkgdG91Y2hpbmcgYW55IENSVEMKPiA+ID4gPiAgICBz dGF0ZSBzbyBpdCdzIHNhZmUgdG8gdXNlIHRoZSB2YWx1ZSBmcm9tIGNydGMtPnN0YXRlIGRpcmVj dGx5Lgo+ID4gPiA+IAo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcu ZC5yb3BlckBpbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pY19wbGFuZS5jIHwgMTEgKysrLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCA3MyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAg ICAgIHwgIDMgKysKPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMg ICAgICAgfCAxNiArKysrKy0tCj4gPiA+ID4gIDQgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9u cygrKSwgMTAgZGVsZXRpb25zKC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiA+ID4gPiBpbmRleCA5NzZiODkxLi45MGM0YTgyIDEw MDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFu ZS5jCj4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5l LmMKPiA+ID4gPiBAQCAtMTExLDEyICsxMTEsMTcgQEAgc3RhdGljIGludCBpbnRlbF9wbGFuZV9h dG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiA+ID4gIHsKPiA+ID4gPiAg CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5jcnRjOwo+ID4gPiA+ICAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGM7Cj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq aW50ZWxfY3J0Y19zdGF0ZTsKPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxh bmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmVf c3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoc3RhdGUpOwo+ID4gPiA+ ICsJYm9vbCBhY3RpdmU7Cj4gPiA+ID4gIAo+ID4gPiA+ICAJY3J0YyA9IGNydGMgPyBjcnRjIDog cGxhbmUtPmNydGM7Cj4gPiA+ID4gIAlpbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiA+ID4gPiAgCj4gPiA+ID4gKwlpbnRlbF9jcnRjX3N0YXRlID0gaW50ZWxfY3J0Y19zdGF0ZV9m b3JfcGxhbmUoaW50ZWxfc3RhdGUpOwo+ID4gPiA+ICsJYWN0aXZlID0gaW50ZWxfY3J0Y19zdGF0 ZS0+YmFzZS5lbmFibGU7Cj4gPiA+ID4gKwo+ID4gPiA+ICAJLyoKPiA+ID4gPiAgCSAqIEJvdGgg Y3J0YyBhbmQgcGxhbmUtPmNydGMgY291bGQgYmUgTlVMTCBpZiB3ZSdyZSB1cGRhdGluZyBhCj4g PiA+ID4gIAkgKiBwcm9wZXJ0eSB3aGlsZSB0aGUgcGxhbmUgaXMgZGlzYWJsZWQuICBXZSBkb24n dCBhY3R1YWxseSBoYXZlCj4gPiA+ID4gQEAgLTE0MywxMCArMTQ4LDggQEAgc3RhdGljIGludCBp bnRlbF9wbGFuZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiA+ID4g IAkvKiBDbGlwIGFsbCBwbGFuZXMgdG8gQ1JUQyBzaXplLCBvciAweDAgaWYgQ1JUQyBpcyBkaXNh YmxlZCAqLwo+ID4gPiA+ICAJaW50ZWxfc3RhdGUtPmNsaXAueDEgPSAwOwo+ID4gPiA+ICAJaW50 ZWxfc3RhdGUtPmNsaXAueTEgPSAwOwo+ID4gPiA+IC0JaW50ZWxfc3RhdGUtPmNsaXAueDIgPQo+ ID4gPiA+IC0JCWludGVsX2NydGMtPmFjdGl2ZSA/IGludGVsX2NydGMtPmNvbmZpZy0+cGlwZV9z cmNfdyA6IDA7Cj4gPiA+ID4gLQlpbnRlbF9zdGF0ZS0+Y2xpcC55MiA9Cj4gPiA+ID4gLQkJaW50 ZWxfY3J0Yy0+YWN0aXZlID8gaW50ZWxfY3J0Yy0+Y29uZmlnLT5waXBlX3NyY19oIDogMDsKPiA+ ID4gPiArCWludGVsX3N0YXRlLT5jbGlwLngyID0gYWN0aXZlID8gaW50ZWxfY3J0Y19zdGF0ZS0+ cGlwZV9zcmNfdyA6IDA7Cj4gPiA+ID4gKwlpbnRlbF9zdGF0ZS0+Y2xpcC55MiA9IGFjdGl2ZSA/ IGludGVsX2NydGNfc3RhdGUtPnBpcGVfc3JjX2ggOiAwOwo+ID4gPiA+ICAKPiA+ID4gPiAgCS8q Cj4gPiA+ID4gIAkgKiBEaXNhYmxpbmcgYSBwbGFuZSBpcyBhbHdheXMgb2theTsgd2UganVzdCBu ZWVkIHRvIHVwZGF0ZQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ ID4gPiBpbmRleCA3YmZlMmFmLi44OGIwZjY5IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiA+IEBAIC0xMjU2Miw2ICsxMjU2Miw1MyBAQCBp bnRlbF9jbGVhbnVwX3BsYW5lX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gPiA+ICAJ fQo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICsvKioKPiA+ID4gPiArICogaW50ZWxfY3J0 Y19zdGF0ZV9mb3JfcGxhbmUgLSBPYnRhaW4gQ1JUQyBzdGF0ZSBmb3IgYSBwbGFuZQo+ID4gPiA+ ICsgKiBAcHN0YXRlOiBwbGFuZSBzdGF0ZSB0byBsb29rdXAgY29ycmVzcG9uZGluZyBjcnRjIHN0 YXRlIGZvcgo+ID4gPiA+ICsgKgo+ID4gPiA+ICsgKiBXaGVuIHdvcmtpbmcgd2l0aCBhIHRvcC1s ZXZlbCBhdG9taWMgdHJhbnNhY3Rpb24gKGRybV9hdG9taWNfc3RhdGUpLAo+ID4gPiA+ICsgKiBh IENSVEMgc3RhdGUgc2hvdWxkIGJlIHByZXNlbnQgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgcHJv dmlkZWQKPiA+ID4gPiArICogcGxhbmUgc3RhdGU7IHRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYSBx dWljayB3YXkgdG8gZmV0Y2ggdGhhdAo+ID4gPiA+ICsgKiBDUlRDIHN0YXRlLiAgSW4gY2FzZXMg d2hlcmUgd2UgaGF2ZSBhIHBsYW5lIHN0YXRlIHVuYXNzb2NpYXRlZCB3aXRoIGFueQo+ID4gPiA+ ICsgKiB0b3AtbGV2ZWwgYXRvbWljIHRyYW5zYWN0aW9uIChlLmcuLCB3aGlsZSB1c2luZyB0aGUg dHJhbnNpdGlvbmFsIGF0b21pYwo+ID4gPiA+ICsgKiBoZWxwZXJzKSwgdGhlIGN1cnJlbnQgQ1JU QyBzdGF0ZSBmcm9tIGNydGMtPnN0YXRlIHdpbGwgYmUgcmV0dXJuZWQKPiA+ID4gPiArICogaW5z dGVhZC4KPiA+ID4gPiArICovCj4gPiA+ID4gK3N0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICoKPiA+ ID4gPiAraW50ZWxfY3J0Y19zdGF0ZV9mb3JfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpwc3RhdGUpCj4gPiA+ID4gK3sKPiA+ID4gPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IHBzdGF0ZS0+YmFzZS5zdGF0ZTsKPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUgPSB0b19pbnRlbF9wbGFuZShwc3RhdGUtPmJhc2UucGxhbmUpOwo+ID4gPiA+ICsJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUocHN0YXRlLT5iYXNl LnBsYW5lLT5kZXYsCj4gPiA+ID4gKwkJCQkJCQlwbGFuZS0+cGlwZSk7Cj4gPiA+ID4gKwlpbnQg aTsKPiA+ID4gPiArCj4gPiA+ID4gKwkvKgo+ID4gPiA+ICsJICogV2hpbGUgdXNpbmcgdHJhbnNp dGlvbmFsIHBsYW5lIGhlbHBlcnMsIHdlIG1heSBub3QgaGF2ZSBhIHRvcC1sZXZlbAo+ID4gPiA+ ICsJICogYXRvbWljIHRyYW5zYWN0aW9uLiAgT2YgY291cnNlIHRoYXQgYWxzbyBtZWFucyB0aGF0 IHdlJ3JlIG5vdAo+ID4gPiA+ICsJICogYWN0dWFsbHkgdG91Y2hpbmcgQ1JUQyBzdGF0ZSwgc28g anVzdCByZXR1cm4gdGhlIGN1cnJlbnRseQo+ID4gPiA+ICsJICogY29tbWl0dGVkIHN0YXRlLgo+ ID4gPiA+ICsJICovCj4gPiA+IAo+ID4gPiBJbW8gdGhpcyBuZWVkcyBhIGJpZyBGSVhNRSBhdCB0 aGUgdG9wIG9mIHRoZSBjb21tZW50IDstKQo+ID4gPiAKPiA+ID4gPiArCWlmICghc3RhdGUpCj4g PiA+ID4gKwkJcmV0dXJuIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ID4gPiA+ ICsKPiA+ID4gPiArCWZvciAoaSA9IDA7IGkgPCBzdGF0ZS0+ZGV2LT5tb2RlX2NvbmZpZy5udW1f Y3J0YzsgaSsrKSB7Cj4gPiA+ID4gKwkJaWYgKCFzdGF0ZS0+Y3J0Y3NbaV0pCj4gPiA+ID4gKwkJ CWNvbnRpbnVlOwo+ID4gPiA+ICsKPiA+ID4gPiArCQlpZiAodG9faW50ZWxfY3J0YyhzdGF0ZS0+ Y3J0Y3NbaV0pLT5waXBlID09IHBsYW5lLT5waXBlKQo+ID4gPiA+ICsJCQlyZXR1cm4gdG9faW50 ZWxfY3J0Y19zdGF0ZShzdGF0ZS0+Y3J0Y19zdGF0ZXNbaV0pOwo+ID4gPiA+ICsJfQo+ID4gPiA+ ICsKPiA+ID4gPiArCS8qCj4gPiA+ID4gKwkgKiBXZSBtYXkgaGF2ZSBhIHBsYW5lIHN0YXRlIHdp dGhvdXQgYSBjb3JyZXNwb25kaW5nIENSVEMgc3RhdGUgaWYKPiA+ID4gPiArCSAqIHdlJ3JlIHVw ZGF0aW5nIGEgcHJvcGVydHkgb2YgYSBkaXNhYmxlZCBwbGFuZS4gIEFnYWluLCBqdXN0IHVzaW5n Cj4gPiA+ID4gKwkgKiB0aGUgYWxyZWFkeS1jb21taXR0ZWQgc3RhdGUgZm9yIHRoaXMgcGxhbmUn cyBDUlRDIHNob3VsZCBiZSBmaW5lCj4gPiA+ID4gKwkgKiBzaW5jZSB3ZSdyZSBub3QgYWN0dWFs bHkgdG91Y2hpbmcgdGhlIENSVEMgaGVyZS4KPiA+ID4gPiArCSAqLwo+ID4gPiAKPiA+ID4gSXMg dGhpcyByZWFsbHkgc3RpbGwgdHJ1ZSB3aXRoIEFuZGVyJ3MgcGF0Y2hlcz8gSWYgdGhlIHVkcGF0 ZSBpcyBwYXJ0IG9mIGEKPiA+ID4gZHJtX2F0b21pY19zdGF0ZSBzdHJ1Y3R1cmUsIHRoZW4gd2Ug c2hvdWxkIGFsd2F5cyBoYXZlIHRoZSBjb3JyZXNwb25kaW5nCj4gPiA+IGNydGMgc3RhdGUgaGFu ZHkgSSB0aGluay4gV2hpY2ggY2FzZXMgc3RpbGwgZmFpbCB0aGlzIGFzc3VtcHRpb24/Cj4gPiAK PiA+IEFueSB0aW1lIGEgdHJhbnNhY3Rpb24gdXBkYXRlcyBhIHBsYW5lLCB0aGUgY29ycmVzcG9u ZGluZyBDUlRDIHN0YXRlIChhcwo+ID4gZGVmaW5lZCBieSBwbGFuZV9zdGF0ZS0+Y3J0Yykgc2hv dWxkIGdldCBhZGRlZCB0byB0aGUgdHJhbnNhY3Rpb24gYnkgdGhlCj4gPiBhdG9taWMgY29yZSBj b2RlIChzcGVjaWZpY2FsbHkgaW4gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUpLiAgQnV0IHdo ZW4KPiA+IGEgcGxhbmUgaXMgZGlzYWJsZWQsIHN0YXRlLT5jcnRjIGlzIE5VTEwgc28gdGhlcmUg c2ltcGx5IGlzIG5vCj4gPiBhc3NvY2lhdGVkIENSVEMgdG8gYWRkIChhdCBsZWFzdCBhcyBmYXIg YXMgdGhlIGNvcmUgaXMgY29uY2VybmVkKS4gIFNvCj4gPiB5b3Ugd2luZCB1cCB3aXRoIGp1c3Qg YSBwbGFuZSBzdGF0ZSBiZWluZyBhZGRlZCB0byB0aGUgdG9wLWxldmVsIGF0b21pYwo+ID4gc3Rh dGUgaW4gdGhhdCBjYXNlLgo+IAo+IFdlIGFkZCBib3RoIHRoZSBvbGQgYW5kIHRoZSBuZXcgY3J0 YyBzdGF0ZSwgc28gd2hlbiB5b3UgZGlzYWJsZSBhIHBsYW5lCj4geW91IHNob3VsZCBoYXZlIHRo ZSBjcnRjIHN0YXRlIGF0IGhhbmQuIEV4Y2VwdCB3aGVuIGEgcGxhbmUgaXMgYWxyZWFkeQo+IGRp c2FibGUsIGJ1dCBJIGd1ZXNzIGluIHRoYXQgY2FzZSB3ZSBzaG91bGQganVzdCBub3QgY2FsbCBh bnkgb2YgdGhlCj4gY2FsbGJhY2tzPwo+IC1EYW5pZWwKClJpZ2h0LCBpZiBib3RoIG9sZCBhbmQg bmV3IHN0YXRlIGJvdGggaGF2ZSBOVUxMIENSVEMncywgdGhlbiBubyBzdGF0ZQpnZXRzIGFkZGVk LiAgVGhhdCB0eXBpY2FsbHkgaGFwcGVucyB3aGVuIHlvdSB1cGRhdGUgYSBwcm9wZXJ0eSBvZiBh CmRpc2FibGVkIHBsYW5lIHRoYXQgc3RheXMgZGlzYWJsZWQgKHdoaWNoIGlzIGVhc2lseSBzZWVu IHdpdGggZmJkZXYKcmVzdG9yYXRpb24gcmVzZXR0aW5nIHJvdGF0aW9uIGZvciBhbGwgcGxhbmVz LCBldmVuIHRoZSBkaXNhYmxlZCBvbmVzKS4KClRoZSBkcml2ZXIncyBjaGVjayBmdW5jdGlvbiBz dGlsbCBnZXRzIGNhbGxlZCBpbiB0aGlzIGNhc2UsIGJ1dCBpOTE1Cmp1c3QgYmFpbHMgb3V0IGJl Y2F1c2Ugd2UgZG9uJ3QgaGF2ZSBhbnkgZHJpdmVyLXNwZWNpZmljIGNoZWNraW5nIHRoYXQKbmVl ZHMgdG8gYmUgZG9uZS4KCgpNYXR0Cgo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBF bmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0gCk1h dHQgUm9wZXIKR3JhcGhpY3MgU29mdHdhcmUgRW5naW5lZXIKSW9URyBQbGF0Zm9ybSBFbmFibGlu ZyAmIERldmVsb3BtZW50CkludGVsIENvcnBvcmF0aW9uCig5MTYpIDM1Ni0yNzk1Cl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==