From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915/lspcon: Add workaround for resuming in PCON mode Date: Fri, 21 Oct 2016 11:51:18 +0300 Message-ID: <87vawmozjt.fsf@intel.com> References: <1476983187-27216-1-git-send-email-imre.deak@intel.com> <1476983187-27216-2-git-send-email-imre.deak@intel.com> <87y41iq3vm.fsf@intel.com> <87r37aq0wp.fsf@intel.com> <1476992610.15304.29.camel@intel.com> <87oa2epwwx.fsf@intel.com> <1476999650.15304.50.camel@intel.com> <1477034447.28449.23.camel@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 ESMTPS id 57B576EC9C for ; Fri, 21 Oct 2016 08:52:19 +0000 (UTC) In-Reply-To: <1477034447.28449.23.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: imre.deak@intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMSBPY3QgMjAxNiwgSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPiB3cm90 ZToKPiBPbiBGcmksIDIwMTYtMTAtMjEgYXQgMDA6NDAgKzAzMDAsIEltcmUgRGVhayB3cm90ZToK Pj4gT24gVGh1LCAyMDE2LTEwLTIwIGF0IDIzOjUwICswMzAwLCBKYW5pIE5pa3VsYSB3cm90ZToK Pj4gPiBPbiBUaHUsIDIwIE9jdCAyMDE2LCBJbXJlIERlYWsgPGltcmUuZGVha0BpbnRlbC5jb20+ IHdyb3RlOgo+PiA+ID4gT24gVGh1LCAyMDE2LTEwLTIwIGF0IDIyOjI0ICswMzAwLCBKYW5pIE5p a3VsYSB3cm90ZToKPj4gPiA+ID4gT24gVGh1LCAyMCBPY3QgMjAxNiwgSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4gd3JvdGU6Cj4+ID4gPiA+ID4gT24gVGh1LCAyMCBPY3QgMjAx NiwgSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPiB3cm90ZToKPj4gPiA+ID4gPiA+IE9u IG15IEFQTCB0aGUgTFNQQ09OIGZpcm13YXJlIHJlc3VtZXMgaW4gUENPTiBtb2RlIGFzCj4+ID4g PiA+ID4gPiBvcHBvc2VkIHRvIHRoZQo+PiA+ID4gPiA+ID4gZXhwZWN0ZWQgTFMgbW9kZS4gSXQg YWxzbyBhcHBlYXJzIHRvIGJlIGluIGEgc3RhdGUgd2hlcmUKPj4gPiA+ID4gPiA+IEFVWCBEUENE IHJlYWRzCj4+ID4gPiA+ID4gPiB3aWxsIHN1Y2NlZWQgYnV0IHJldHVybiBnYXJiYWdlIHJlY292 ZXJpbmcgb25seSBhZnRlciBhIGZldwo+PiA+ID4gPiA+ID4gaHVuZHJlZHMgb2YKPj4gPiA+ID4g PiA+IG1pbGxpc2Vjb25kcy4gQWZ0ZXIgdGhlIHJlY292ZXJ5IHRpbWUgRFBDRCByZWFkcyB3aWxs Cj4+ID4gPiA+ID4gPiByZXN1bHQgaW4gdGhlCj4+ID4gPiA+ID4gPiBjb3JyZWN0IHZhbHVlcyBh bmQgdGhpbmdzIHdpbGwgY29udGludWUgdG8gd29yay4gSWYgSTJDCj4+ID4gPiA+ID4gPiBvdmVy IEFVWCBpcwo+PiA+ID4gPiA+ID4gYXR0ZW1wdGVkIGR1cmluZyB0aGlzIHJlY292ZXJ5IHRpbWUg KGltcGx5aW5nIGFuIEFVWCB3cml0ZQo+PiA+ID4gPiA+ID4gdHJhbnNhY3Rpb24pCj4+ID4gPiA+ ID4gPiB0aGUgZmlybXdhcmUgd29uJ3QgcmVjb3ZlciBhbmQgd2lsbCBzdGF5IGluIHRoaXMgYnJv a2VuCj4+ID4gPiA+ID4gPiBzdGF0ZS4KPj4gPiA+ID4gPiA+IAo+PiA+ID4gPiA+ID4gQXMgYSB3 b3JrYXJvdW5kIGNoZWNrIGlmIHRoZSBmaXJtd2FyZSBpcyBpbiBQQ09OIHN0YXRlCj4+ID4gPiA+ ID4gPiBhZnRlciByZXN1bWUgYW5kCj4+ID4gPiA+ID4gPiBpZiBzbyB3YWl0IHVudGlsIHRoZSBj b3JyZWN0IERQQ0QgdmFsdWVzIGFyZSByZXR1cm5lZC4gRm9yCj4+ID4gPiA+ID4gPiB0aGlzIHdl Cj4+ID4gPiA+ID4gPiBjb21wYXJlIHRoZSBicmFuY2ggZGVzY3JpcHRvciB3aXRoIHRoZSBvbmUg d2UgY2FjaGVkIGR1cmluZwo+PiA+ID4gPiA+ID4gaW5pdCB0aW1lLgo+PiA+ID4gPiA+ID4gSWYg dGhlIGZpcm13YXJlIHdhcyBpbiB0aGUgTFMgc3RhdGUsIHdlIHNraXAgdGhlIHcvYSBhbmQKPj4g PiA+ID4gPiA+IGNvbnRpbnVlIGFzCj4+ID4gPiA+ID4gPiBiZWZvcmUuCj4+ID4gPiA+ID4gPiAK Pj4gPiA+ID4gPiA+IENjOiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5j b20+Cj4+ID4gPiA+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPj4gPiA+ID4gPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50 ZWwuY29tPgo+PiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtA aW50ZWwuY29tPgo+PiA+ID4gPiA+ID4gLS0tCj4+ID4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmPCoMKgwqDCoMKgfMKgwqAyICstCj4+ID4gPiA+ID4gPiDCoGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5owqDCoMKgwqB8wqDCoDYgKysrKy0KPj4gPiA+ID4g PiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgfCA1Mgo+PiA+ID4gPiA+ ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+PiA+ID4gPiA+ID4gwqAz IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+PiA+ID4g PiA+ID4gCj4+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+PiA+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4+ ID4gPiA+ID4gPiBpbmRleCBlOTAyMTFlLi5lYzAzMWRiIDEwMDY0NAo+PiA+ID4gPiA+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiA+ID4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiA+ID4gPiA+ID4gQEAgLTM0ODcsNyArMzQ4 Nyw3IEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxfZHAKPj4gPiA+ID4gPiA+ICpp bnRlbF9kcCkKPj4gPiA+ID4gPiA+IMKgCWludGVsX2RwLT5EUCA9IERQOwo+PiA+ID4gPiA+ID4g wqB9Cj4+ID4gPiA+ID4gPiDCoAo+PiA+ID4gPiA+ID4gLXN0YXRpYyBib29sCj4+ID4gPiA+ID4g PiArYm9vbAo+PiA+ID4gPiA+ID4gwqBpbnRlbF9kcF9yZWFkX2RwY2Qoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPj4gPiA+ID4gPiA+IMKgewo+PiA+ID4gPiA+ID4gwqAJaWYgKGRybV9kcF9k cGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIDB4MDAwLAo+PiA+ID4gPiA+ID4gaW50ZWxfZHAtPmRw Y2QsCj4+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPj4gPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4g PiA+ID4gPiA+IGluZGV4IGEzNWUyNDEuLjlhMjM2NmUgMTAwNjQ0Cj4+ID4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiA+ID4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPj4gPiA+ID4gPiA+IEBAIC05NzIsNyArOTcy LDkgQEAgc3RydWN0IGludGVsX2RwIHsKPj4gPiA+ID4gPiA+IMKgc3RydWN0IGludGVsX2xzcGNv biB7Cj4+ID4gPiA+ID4gPiDCoAlib29sIGFjdGl2ZTsKPj4gPiA+ID4gPiA+IMKgCWVudW0gZHJt X2xzcGNvbl9tb2RlIG1vZGU7Cj4+ID4gPiA+ID4gPiAtCXN0cnVjdCBkcm1fZHBfYXV4ICphdXg7 Cj4+ID4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7Cj4+ID4gPiA+ID4gPiAr CWJvb2wgZGVzY192YWxpZDsKPj4gPiA+ID4gPiA+ICsJc3RydWN0IGludGVsX2RwX2Rlc2MgZGVz YzsKPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiBJIGd1ZXNzIHdlIGNvdWxkIGNhY2hlIHRoZSBkZXNj IGluIGludGVsX2RwIGRpcmVjdGx5Lgo+PiA+ID4gPiA+IEluZGVwZW5kZW50IG9mCj4+ID4gPiA+ ID4gdGhpcyBwYXRjaC4KPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiBBbHNvLCBJJ20gd29uZGVyaW5n IGlmIHdlIGNvdWxkIHN0aWNrIHdpdGgganVzdCBhdXggaGVyZSwgYW5kCj4+ID4gPiA+ID4gcmVh ZAo+PiA+ID4gPiA+IHNvbWV0aGluZyBlbHNlIGZyb20gZHBjZCBpbnN0ZWFkLgo+PiA+ID4gPiA+ IAo+PiA+ID4gPiA+ID4gwqB9Owo+PiA+ID4gPiA+ID4gwqAKPj4gPiA+ID4gPiA+IMKgc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCB7Cj4+ID4gPiA+ID4gPiBAQCAtMTQ2OSw2ICsxNDcxLDggQEAg c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKPj4gPiA+ID4gPiA+IGludGVsX2RwX3VudXNlZF9s YW5lX21hc2soaW50IGxhbmVfY291bnQpCj4+ID4gPiA+ID4gPiDCoH0KPj4gPiA+ID4gPiA+IMKg Cj4+ID4gPiA+ID4gPiDCoGJvb2wKPj4gPiA+ID4gPiA+ICtpbnRlbF9kcF9yZWFkX2RwY2Qoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4+ID4gPiA+ID4gPiArYm9vbAo+PiA+ID4gPiA+ID4g wqBpbnRlbF9kcF9yZWFkX2Rlc2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgc3RydWN0Cj4+ ID4gPiA+ID4gPiBpbnRlbF9kcF9kZXNjICpkZXNjKTsKPj4gPiA+ID4gPiA+IMKgdm9pZAo+PiA+ ID4gPiA+ID4gwqBpbnRlbF9kcF9wcmludF9kZXNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs IHN0cnVjdAo+PiA+ID4gPiA+ID4gaW50ZWxfZHBfZGVzYyAqZGVzYyk7Cj4+ID4gPiA+ID4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPj4gPiA+ID4g PiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPj4gPiA+ID4gPiA+IGlu ZGV4IGQyYzhjYjIuLjU0YzYxNzMgMTAwNjQ0Cj4+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9sc3Bjb24uYwo+PiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPj4gPiA+ID4gPiA+IEBAIC0zMCw3ICszMCw3IEBACj4+ ID4gPiA+ID4gPiDCoHN0YXRpYyBlbnVtIGRybV9sc3Bjb25fbW9kZSBsc3Bjb25fZ2V0X2N1cnJl bnRfbW9kZShzdHJ1Y3QKPj4gPiA+ID4gPiA+IGludGVsX2xzcGNvbiAqbHNwY29uKQo+PiA+ID4g PiA+ID4gwqB7Cj4+ID4gPiA+ID4gPiDCoAllbnVtIGRybV9sc3Bjb25fbW9kZSBjdXJyZW50X21v ZGUgPQo+PiA+ID4gPiA+ID4gRFJNX0xTUENPTl9NT0RFX0lOVkFMSUQ7Cj4+ID4gPiA+ID4gPiAt CXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9ICZsc3Bjb24tPmF1eC0+ZGRjOwo+PiA+ID4g PiA+ID4gKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPSAmbHNwY29uLT5pbnRlbF9kcC0K Pj4gPiA+ID4gPiA+ID5hdXguZGRjOwo+PiA+ID4gPiA+ID4gwqAKPj4gPiA+ID4gPiA+IMKgCWlm IChkcm1fbHNwY29uX2dldF9tb2RlKGFkYXB0ZXIsIMKkdF9tb2RlKSkKPj4gPiA+ID4gPiA+IMKg CQlEUk1fRVJST1IoIkVycm9yIHJlYWRpbmcgTFNQQ09OIG1vZGVcbiIpOwo+PiA+ID4gPiA+ID4g QEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIGludCBsc3Bjb25fY2hhbmdlX21vZGUoc3RydWN0Cj4+ ID4gPiA+ID4gPiBpbnRlbF9sc3Bjb24gKmxzcGNvbiwKPj4gPiA+ID4gPiA+IMKgewo+PiA+ID4g PiA+ID4gwqAJaW50IGVycjsKPj4gPiA+ID4gPiA+IMKgCWVudW0gZHJtX2xzcGNvbl9tb2RlIGN1 cnJlbnRfbW9kZTsKPj4gPiA+ID4gPiA+IC0Jc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyID0g JmxzcGNvbi0+YXV4LT5kZGM7Cj4+ID4gPiA+ID4gPiArCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRh cHRlciA9ICZsc3Bjb24tPmludGVsX2RwLQo+PiA+ID4gPiA+ID4gPmF1eC5kZGM7Cj4+ID4gPiA+ ID4gPiDCoAo+PiA+ID4gPiA+ID4gwqAJZXJyID0gZHJtX2xzcGNvbl9nZXRfbW9kZShhZGFwdGVy LCDCpHRfbW9kZSk7Cj4+ID4gPiA+ID4gPiDCoAlpZiAoZXJyKSB7Cj4+ID4gPiA+ID4gPiBAQCAt NzIsNyArNzIsNyBAQCBzdGF0aWMgaW50IGxzcGNvbl9jaGFuZ2VfbW9kZShzdHJ1Y3QKPj4gPiA+ ID4gPiA+IGludGVsX2xzcGNvbiAqbHNwY29uLAo+PiA+ID4gPiA+ID4gwqBzdGF0aWMgYm9vbCBs c3Bjb25fcHJvYmUoc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uKQo+PiA+ID4gPiA+ID4gwqB7 Cj4+ID4gPiA+ID4gPiDCoAllbnVtIGRybV9kcF9kdWFsX21vZGVfdHlwZSBhZGFwdG9yX3R5cGU7 Cj4+ID4gPiA+ID4gPiAtCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlciA9ICZsc3Bjb24tPmF1 eC0+ZGRjOwo+PiA+ID4gPiA+ID4gKwlzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIgPSAmbHNw Y29uLT5pbnRlbF9kcC0KPj4gPiA+ID4gPiA+ID5hdXguZGRjOwo+PiA+ID4gPiA+ID4gwqAKPj4g PiA+ID4gPiA+IMKgCS8qIExldHMgcHJvYmUgdGhlIGFkYXB0b3IgYW5kIGNoZWNrIGl0cyB0eXBl ICovCj4+ID4gPiA+ID4gPiDCoAlhZGFwdG9yX3R5cGUgPSBkcm1fZHBfZHVhbF9tb2RlX2RldGVj dChhZGFwdGVyKTsKPj4gPiA+ID4gPiA+IEBAIC04OSw4ICs4OSw0MiBAQCBzdGF0aWMgYm9vbCBs c3Bjb25fcHJvYmUoc3RydWN0Cj4+ID4gPiA+ID4gPiBpbnRlbF9sc3Bjb24gKmxzcGNvbikKPj4g PiA+ID4gPiA+IMKgCXJldHVybiB0cnVlOwo+PiA+ID4gPiA+ID4gwqB9Cj4+ID4gPiA+ID4gPiDC oAo+PiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGxzcGNvbl9yZXN1bWVfaW5fcGNvbl93YShzdHJ1 Y3QgaW50ZWxfbHNwY29uCj4+ID4gPiA+ID4gPiAqbHNwY29uKQo+PiA+ID4gPiA+ID4gK3sKPj4g PiA+ID4gPiA+ICsJdW5zaWduZWQgbG9uZyBzdGFydCA9IGppZmZpZXM7Cj4+ID4gPiA+ID4gPiAr Cj4+ID4gPiA+ID4gPiArCWlmICghbHNwY29uLT5kZXNjX3ZhbGlkKQo+PiA+ID4gPiA+ID4gKwkJ cmV0dXJuOwo+PiA+ID4gPiA+ID4gKwo+PiA+ID4gPiA+ID4gKwl3aGlsZSAoMSkgewo+PiA+ID4g PiA+ID4gKwkJc3RydWN0IGludGVsX2RwX2Rlc2MgZGVzYzsKPj4gPiA+ID4gPiA+ICsKPj4gPiA+ ID4gPiA+ICsJCS8qCj4+ID4gPiA+ID4gPiArCQnCoCogVGhlIHcvYSBvbmx5IGFwcGxpZXMgaW4g UENPTiBtb2RlIGFuZAo+PiA+ID4gPiA+ID4gd2UgZG9uJ3QgZXhwZWN0IGFueQo+PiA+ID4gPiA+ ID4gKwkJwqAqIEFVWCBlcnJvcnMuCj4+ID4gPiA+ID4gPiArCQnCoCovCj4+ID4gPiA+ID4gPiAr CQlpZiAoIWludGVsX2RwX3JlYWRfZGVzYyhsc3Bjb24tPmludGVsX2RwLAo+PiA+ID4gPiA+ID4g JmRlc2MpKQo+PiA+ID4gPiA+ID4gKwkJCXJldHVybjsKPj4gPiA+ID4gPiA+ICsKPj4gPiA+ID4g PiA+ICsJCWlmICghbWVtY21wKCZsc3Bjb24tPmRlc2MsICZkZXNjLAo+PiA+ID4gPiA+ID4gc2l6 ZW9mKGRlc2MpKSkgewo+PiA+ID4gPiA+ID4gKwkJCURSTV9ERUJVR19LTVMoIkxTUENPTiByZWNv dmVyaW5nCj4+ID4gPiA+ID4gPiBpbiBQQ09OIG1vZGUgYWZ0ZXIgJXUgbXNcbiIsCj4+ID4gPiA+ ID4gPiArCQkJCcKgwqDCoMKgwqDCoGppZmZpZXNfdG9fbXNlY3MoamlmCj4+ID4gPiA+ID4gPiBm aWVzIC0gc3RhcnQpKTsKPj4gPiA+ID4gPiA+ICsJCQlyZXR1cm47Cj4+ID4gPiA+ID4gPiArCQl9 Cj4+ID4gPiA+ID4gPiArCj4+ID4gPiA+ID4gPiArCQlpZiAodGltZV9hZnRlcihqaWZmaWVzLCBz dGFydCArCj4+ID4gPiA+ID4gPiBtc2Vjc190b19qaWZmaWVzKDEwMDApKSkKPj4gPiA+ID4gPiA+ ICsJCQlicmVhazsKPj4gPiA+ID4gPiA+ICsKPj4gPiA+ID4gPiA+ICsJCW1zbGVlcCgxMCk7Cj4+ ID4gPiA+ID4gPiArCX0KPj4gPiA+ID4gPiA+ICsKPj4gPiA+ID4gPiA+ICsJRFJNX0RFQlVHX0tN UygiTFNQQ09OIERQIGRlc2NyaXB0b3IgbWlzbWF0Y2ggYWZ0ZXIKPj4gPiA+ID4gPiA+IHJlc3Vt ZVxuIik7Cj4+ID4gPiA+ID4gPiArfQo+PiA+ID4gPiA+IAo+PiA+ID4gPiA+IEkgdGhpbmsgd2Ug bmVlZCB0byBnbyB0aHJvdWdoIHRoZSBMU1BDT04gc3BlYyBvbmNlIG1vcmUKPj4gPiA+ID4gPiBi ZWZvcmUgd2UgbWVyZ2UKPj4gPiA+ID4gPiB0aGlzLiBNYXliZSB3ZSBkb24ndCByZXNldCB0aGUg TFNQQ09OIHByb3Blcmx5LiBNYXliZSB3ZQo+PiA+ID4gPiA+IGRvbid0IGhhbmRsZQo+PiA+ID4g PiA+IHRoZSByZXN1bWUgcHJvcGVybHkuIE1heWJlIHRoaXMgaXNuJ3QgYSAid29ya2Fyb3VuZCIg YWZ0ZXIKPj4gPiA+ID4gPiBhbGwuCj4+ID4gPiA+IAo+PiA+ID4gPiBMb29rcyBsaWtlIHRoaXMg c3R1ZmYgaXMgbm9ybWFsIGJlaGF2aW91ciBpZiB0aGUgTFNQQ09OIGhhcwo+PiA+ID4gPiBiZWVu IGluIGxvdwo+PiA+ID4gPiBwb3dlciBzdGF0ZSwgYW5kIHdlIG5lZWQgdG8gd2FrZSBpdCB1cC4g SW4gUENPTiBtb2RlLCB0aGlzIGlzCj4+ID4gPiA+IGRvbmUgdXNpbmcKPj4gPiA+ID4gRFBfU0VU X1BPV0VSLiBBbmQgd2hpbGUgd2FraW5nIHVwLCBpdCdsbCBpc3N1ZSBBVVggREVGRVIsIGFzIHdl Cj4+ID4gPiA+IGNhbiBzZWUKPj4gPiA+ID4gZnJvbSB0aGUgbG9ncy4KPj4gPiA+IAo+PiA+ID4g SSBkaWQgdGhpbmsgYWJvdXQgdGhhdCwgYnV0IHdha2luZyB0aGUgZGV2aWNlIHZpYQo+PiA+ID4g RFBfU0VUX1BPV0VSKEQwKQo+PiA+ID4gZGlkbid0IGhlbHAuIERvaW5nIGFueSBBVVggd3JpdGUg dHJhbnNhY3Rpb25zIGFjdHVhbGx5IGdldHMgdGhlCj4+ID4gPiBkZXZpY2UKPj4gPiA+IGludG8g YSBzdHVjayBzdGF0ZSBmb3IgZ29vZCAodW50aWwgbmV4dCByZWJvb3Qgb24gQVBMKS4KPj4gPiA+ IAo+PiA+ID4gTW9yZSBvdmVyLCB3ZSBkb24ndCBnZXQgQVVYIERFRkVScyB0aGUgQVVYIHRyYW5z YWN0aW9ucyBzdWNjZWVkLAo+PiA+ID4gaXQncwo+PiA+ID4gb25seSB0aGF0IHJlYWRzIHdpbGwg cmV0dXJuIGNvcnJ1cHRlZCB2YWx1ZXMgZm9yIHRoZSBnaXZlbiB0aW1lCj4+ID4gPiBwZXJpb2Qu Cj4+ID4gCj4+ID4gVGhlIGJ1ZyBhdCBoYW5kIGhhcyBuYXRpdmUgZGVmZXJzCj4+ID4gaHR0cHM6 Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgzNTMKPj4gCj4+IEZvciBJ MkMtb3Zlci1BVVggSSBhbHNvIGdldCBkZWZlcnMsIGJ1dCBub3QgZm9yIERQQ0QgdHJhbnNhY3Rp b25zIGZvcgo+PiBuYXRpdmUgQVVYIHJlZ2lzdGVycyBmb3IgaW5zdGFuY2UgRFBfU0VUX1BPV0VS IG9yIHRoZSBPVUksIGRldmljZS1JRAo+PiByZWdpc3RlcnMuIEkgYWxzbyB0cmllZCB0aGUgTFMg bW9kZSB3YWtlLXVwIHNlcXVlbmNlIHZpYQo+PiBJMkMtb3Zlci1BVVggKG9mZnNldCAweDIwKSwg YnV0IGRpZG4ndCBoZWxwIGVpdGhlci4KPj4gCj4+IFRoZSBidWcgYWJvdmUgY291bGQgYmUgYSBk aWZmZXJlbnQgaXNzdWUsIGFsdGhvdWdoIEkgZGlkIHNlZSB0aGlzCj4+IHBhcnRpY3VsYXIgc2Nl bmFyaW8gZ2V0dGluZyBmaXhlZCBvbiB0aGUgc2FtZSBtYWNoaW5lIHNlZQo+PiAvYXJjaGl2ZS9y ZXN1bHRzL0NJX0lHVF90ZXN0L1BhdGNod29ya18yNzc4Lwo+Cj4gSSB0cmllZCB0aGlzIG5vdyBv biB0aGUgZmktc2tsLTY3MDBocSBtYWNoaW5lIGluIHRoZSBidWcgcmVwb3J0IGFuZCBpdAo+IHNl ZW1zIHRvIGJlIHRoZSBzYW1lIGZhaWx1cmUgbW9kZSBhcyB0aGUgQVBMIG9uZS4gVGhlcmUgaXMg b25lCj4gZGlmZmVyZW5jZSBpbiB0aGF0IG9uIHRoZSBTS0wgbWFjaGluZSBvbmNlIHRoZSBmaXJt d2FyZSBpcyBpbiB0aGUgc3R1Y2sKPiBzdGF0ZSBhZnRlciBzdXNwZW5kL3Jlc3VtZSwgYSB3YXJt IHJlYm9vdCBtYXkgbm90IHJlY292ZXIgaXQsIHNvIGR1cmluZwo+IHRoZSBuZXh0IGJvb3QgdGhl IExTUENPTiBwcm9iZSB3aWxsIGZhaWwuIEkgZ3Vlc3MgdGhhdCBkdXJpbmcgd2FybQo+IHJlYm9v dCBMU1BDT04gbWF5IGNvbnRpbnVlIHRvIGJlIHBvd2VyZWQsIHNvIHRvIGZ1bGx5IHJlc2V0IGl0 IGEgcG93ZXIKPiBjeWNsZSBpcyBuZWVkZWQuIEluIGFueSBjYXNlIHRoaXMgcGF0Y2ggZml4ZXMg cmVzdW1lIG9uIHRoYXQgbWFjaGluZQo+IHRvbywgc28gSSBjb3VsZG4ndCByZXByb2R1Y2UgdGhl IHByb2JsZW0gd2l0aCBpdCBldmVuIGFjcm9zcyBtdWx0aXBsZQo+IHJlYm9vdHMsIHdoZXJlYXMg d2l0aG91dCBpdCBpdCdzIDEwMCUgcmVwcm9kdWNpYmxlLgoKQSBxdWljayB0aG91Z2h0LCB3aGVu IHdlIGRvIG1vZHVsZSB1bmxvYWQgb3Igc3VzcGVuZCwgcGVyaGFwcyB3ZSBzaG91bGQKcHV0IHRo ZSBMU1BDT04gdG8gdGhlIHN0YXRlIGluIHdoaWNoIHdlIGV4cGVjdCB0byBmaW5kIGl0IG9uCnBy b2JlL3Jlc3VtZT8gSW4gY2FzZSBpdCBkb2Vzbid0IGdldCByZXNldC4KCkJSLApKYW5pLgoKCj4K PiAtLUltcmUKCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==