From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH 1/5] drm/i915: Enable edp psr error interrupts on hsw Date: Fri, 23 Mar 2018 00:01:56 +0000 Message-ID: <1521764770.9511.46.camel@dk-H97M-D3H> References: <20180320224151.6009-1-dhinakaran.pandiyan@intel.com> <20180320224151.6009-2-dhinakaran.pandiyan@intel.com> <20180321185913.GA5453@intel.com> <1521661444.19788.9.camel@dk-H97M-D3H> <20180321192944.GB5453@intel.com> <1521683012.19788.40.camel@dk-H97M-D3H> <20180322113310.GH5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7DEA06E251 for ; Fri, 23 Mar 2018 00:01:58 +0000 (UTC) In-Reply-To: <20180322113310.GH5453@intel.com> Content-Language: en-US Content-ID: <88C3F10B6D68714698121FA89D42F38D@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "Vetter, Daniel" , "daniel.vetter@ffwll.ch" , "intel-gfx@lists.freedesktop.org" , "Vivi, Rodrigo" List-Id: intel-gfx@lists.freedesktop.org DQoNCg0KT24gVGh1LCAyMDE4LTAzLTIyIGF0IDEzOjMzICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qg d3JvdGU6DQo+IE9uIFRodSwgTWFyIDIyLCAyMDE4IGF0IDAxOjE5OjE5QU0gKzAwMDAsIFBhbmRp eWFuLCBEaGluYWthcmFuIHdyb3RlOg0KPiA+IA0KPiA+IA0KPiA+IA0KPiA+IE9uIFdlZCwgMjAx OC0wMy0yMSBhdCAyMToyOSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOg0KPiA+ID4gT24g V2VkLCBNYXIgMjEsIDIwMTggYXQgMDc6MTk6NTNQTSArMDAwMCwgUGFuZGl5YW4sIERoaW5ha2Fy YW4gd3JvdGU6DQo+ID4gPiA+IA0KPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IE9uIFdlZCwg MjAxOC0wMy0yMSBhdCAyMDo1OSArMDIwMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOg0KPiA+ID4g PiA+IE9uIFR1ZSwgTWFyIDIwLCAyMDE4IGF0IDAzOjQxOjQ3UE0gLTA3MDAsIERoaW5ha2FyYW4g UGFuZGl5YW4gd3JvdGU6DQo+ID4gPiA+ID4gPiBGcm9tOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBUaGUgZGVmaW5pdGlv bnMgZm9yIHRoZSBlcnJvciByZWdpc3RlciBzaG91bGQgYmUgdmFsaWQgb24gYmR3L3NrbCB0b28s DQo+ID4gPiA+ID4gPiBidXQgdGhlcmUgd2UgaGF2ZW4ndCBldmVuIGVuYWJsZWQgREVfTUlTQyBo YW5kbGluZyB5ZXQuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFNvbWV3aGF0IGNvbmZ1c2lu ZyB0aGUgdGhlIG1vdmVkIHJlZ2lzdGVyIG9mZnNldCBvbiBiZHcgaXMgb25seSBmb3INCj4gPiA+ ID4gPiA+IHRoZSBfQ1RML19BVVggcmVnaXN0ZXIsIGFuZCB0aGF0IF9JSVIvSU1SIHN0YXllZCB3 aGVyZSB0aGV5IGhhdmUgYmVlbg0KPiA+ID4gPiA+ID4gb24gYmR3Lg0KPiA+ID4gPiA+ID4gDQo+ ID4gPiA+ID4gPiB2MjogRml4ZXMgZnJvbSBWaWxsZS4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gdjM6IEZyb20gREsNCj4gPiA+ID4gPiA+ICAqIFJlYmFzZWQgb24gZHJtLXRpcA0KPiA+ID4g PiA+ID4gICogUmVtb3ZlZCBCRFcgSUlSIGJpdCBkZWZpbml0aW9uLCBsb29rcyBsaWtlIGFuIHVu aW50ZW50aW9uYWwgY2hhbmdlIHRoYXQNCj4gPiA+ID4gPiA+IHNob3VsZCBiZSBpbiB0aGUgZm9s bG93aW5nIHBhdGNoLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBDYzogVmlsbGUgU3lyasOk bMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCj4gPiA+ID4gPiA+IENjOiBSb2Ry aWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogRGFuaWVs IFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTaWduZWQtb2Zm LWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ IFNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5A aW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYyAgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr DQo+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgfCAgOCArKysr KysrKw0KPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIHwgIDMg KystDQo+ID4gPiA+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEu Yw0KPiA+ID4gPiA+ID4gaW5kZXggNDRlZWYzNTVlMTJjLi5lOTRhODM1Yjc1MTUgMTAwNjQ0DQo+ ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jDQo+ID4gPiA+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jDQo+ID4gPiA+ID4gPiBA QCAtMjM5Miw2ICsyMzkyLDI2IEBAIHN0YXRpYyB2b2lkIGlsa19kaXNwbGF5X2lycV9oYW5kbGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPiA+ID4gPiA+ICAJCWlyb25s YWtlX3Jwc19jaGFuZ2VfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOw0KPiA+ID4gPiA+ID4gIH0NCj4g PiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBoc3dfZWRwX3Bzcl9pcnFfaGFu ZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4gPiA+ID4gPiArew0K PiA+ID4gPiA+ID4gKwl1MzIgZWRwX3Bzcl9paXIgPSBJOTE1X1JFQUQoRURQX1BTUl9JSVIpOw0K PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlpZiAoZWRwX3Bzcl9paXIgJiBFRFBfUFNSX0VS Uk9SKQ0KPiA+ID4gPiA+ID4gKwkJRFJNX0RFQlVHX0tNUygiUFNSIGVycm9yXG4iKTsNCj4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKGVkcF9wc3JfaWlyICYgRURQX1BTUl9QUkVfRU5U UlkpIHsNCj4gPiA+ID4gPiA+ICsJCURSTV9ERUJVR19LTVMoIlBTUiBwcmVwYXJlIGVudHJ5IGlu IDIgdmJsYW5rc1xuIik7DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gSSBkb3VidCB3ZSB3YW50IHRv IGhhdmUgdGhlIGVudHJ5L2V4aXQgaW50ZXJydXB0cyBnZW5lcmF0ZSBhbGwgdGhpcw0KPiA+ID4g PiA+IG5vaXNlIGluIGRtZXNnIGFsbCB0aGUgdGltZS4gV2Ugc2hvdWxkIHByb2JhYmx5IG9ubHkg ZW5hYmxlIHRoZQ0KPiA+ID4gPiA+IGludGVycnVwdHMgZm9yIHRlc3RpbmcuIFRoZSBlcnJvciBp bnRlcnJ1cHQgSSBzdXBwb3NlIHdlIHdhbnQgYWx3YXlzLA0KPiA+ID4gPiA+IG1pZ2h0IGV2ZW4g d2FudCBEUk1fRVJST1Igb24gaXQuDQo+ID4gPiA+IA0KPiA+ID4gPiBJIGltcGxlbWVudCBkZWJ1 Z2ZzIGNvbnRyb2wgaW4gUGF0Y2ggNC81LCBhZ3JlZWQgb24gRFJNX0VSUk9SLg0KPiA+ID4gDQo+ ID4gPiBSaWdodC4gSXQncyBhIGJpdCBoYXJkIHRvIHJlYWQgdGhpcyB3aXRoIHN0dWZmIGdldHRp bmcNCj4gPiA+IGFkZGVkL3JlbW92ZS9tb3ZlZCBtb3JlIG9yIGxlc3MgcmFuZG9tbHkuDQo+ID4g PiANCj4gPiA+ID4gDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiArCQlJOTE1X1dSSVRFKEVEUF9Q U1JfSU1SLCBFRFBfUFNSX1BSRV9FTlRSWSk7DQo+ID4gPiA+ID4gPiArCX0NCj4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ICsJaWYgKGVkcF9wc3JfaWlyICYgRURQX1BTUl9QT1NUX0VYSVQpIHsN Cj4gPiA+ID4gPiA+ICsJCURSTV9ERUJVR19LTVMoIlBTUiBleGl0IGNvbXBsZXRlZFxuIik7DQo+ ID4gPiA+ID4gPiArCQlJOTE1X1dSSVRFKEVEUF9QU1JfSU1SLCAwKTsNCj4gPiA+ID4gPiA+ICsJ fQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlJOTE1X1dSSVRFKEVEUF9QU1JfSUlSLCBl ZHBfcHNyX2lpcik7DQo+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g IHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwNCj4gPiA+ID4gPiA+ICAJCQkJICAgIHUzMiBkZV9paXIpDQo+ID4gPiA+ ID4gPiAgew0KPiA+ID4gPiA+ID4gQEAgLTI0MDQsNiArMjQyNCw5IEBAIHN0YXRpYyB2b2lkIGl2 Yl9kaXNwbGF5X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwN Cj4gPiA+ID4gPiA+ICAJaWYgKGRlX2lpciAmIERFX0VSUl9JTlRfSVZCKQ0KPiA+ID4gPiA+ID4g IAkJaXZiX2Vycl9pbnRfaGFuZGxlcihkZXZfcHJpdik7DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ ID4gPiArCWlmIChkZV9paXIgJiBERV9FRFBfUFNSX0lOVF9IU1cpDQo+ID4gPiA+ID4gPiArCQlo c3dfZWRwX3Bzcl9pcnFfaGFuZGxlcihkZXZfcHJpdik7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gPiAgCWlmIChkZV9paXIgJiBERV9BVVhfQ0hBTk5FTF9BX0lWQikNCj4gPiA+ID4gPiA+ICAJ CWRwX2F1eF9pcnFfaGFuZGxlcihkZXZfcHJpdik7DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4g PiBAQCAtMzI1Miw2ICszMjc1LDExIEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2lycV9yZXNldChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPiA+ID4gPiA+ID4gIAlpZiAoSVNfR0VONyhkZXZfcHJp dikpDQo+ID4gPiA+ID4gPiAgCQlJOTE1X1dSSVRFKEdFTjdfRVJSX0lOVCwgMHhmZmZmZmZmZik7 DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiArCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSkg ew0KPiA+ID4gPiA+ID4gKwkJSTkxNV9XUklURShFRFBfUFNSX0lNUiwgMHhmZmZmZmZmZik7DQo+ ID4gPiA+ID4gPiArCQlJOTE1X1dSSVRFKEVEUF9QU1JfSUlSLCAweGZmZmZmZmZmKTsNCj4gPiA+ ID4gPiA+ICsJfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gIAlnZW41X2d0X2lycV9yZXNl dChkZXZfcHJpdik7DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiAgCWlieF9pcnFfcmVzZXQo ZGV2X3ByaXYpOw0KPiA+ID4gPiA+ID4gQEAgLTM2NjMsNiArMzY5MSwxMiBAQCBzdGF0aWMgaW50 IGlyb25sYWtlX2lycV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPiA+ID4g PiA+ID4gIAkJCSAgICAgIERFX0RQX0FfSE9UUExVRyk7DQo+ID4gPiA+ID4gPiAgCX0NCj4gPiA+ ID4gPiA+ICANCj4gPiA+ID4gPiA+ICsJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7DQo+ID4g PiA+ID4gPiArCQlnZW4zX2Fzc2VydF9paXJfaXNfemVybyhkZXZfcHJpdiwgRURQX1BTUl9JSVIp Ow0KPiA+ID4gPiA+ID4gKwkJSTkxNV9XUklURShFRFBfUFNSX0lNUiwgMCk7DQo+ID4gPiA+ID4g PiArCQlkaXNwbGF5X21hc2sgfD0gREVfRURQX1BTUl9JTlRfSFNXOw0KPiA+ID4gPiA+ID4gKwl9 DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAgCWRldl9wcml2LT5pcnFfbWFzayA9IH5kaXNw bGF5X21hc2s7DQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiAgCWlieF9pcnFfcHJlX3Bvc3Rp bnN0YWxsKGRldik7DQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgNCj4gPiA+ID4g PiA+IGluZGV4IDFlMDAwZjMwMDRjYi4uMzQ0N2YwM2VhYzNkIDEwMDY0NA0KPiA+ID4gPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiA+ID4gPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaA0KPiA+ID4gPiA+ID4gQEAgLTM4MjgsNiAr MzgyOCwxMyBAQCBlbnVtIHsNCj4gPiA+ID4gPiA+ICAjZGVmaW5lICAgRURQX1BTUl9UUDFfVElN RV8wdXMJCQkoMzw8NCkNCj4gPiA+ID4gPiA+ICAjZGVmaW5lICAgRURQX1BTUl9JRExFX0ZSQU1F X1NISUZUCQkwDQo+ID4gPiA+ID4gPiAgDQo+ID4gPiA+ID4gPiArLyogQnNwZWMgY2xhaW1zIHRo b3NlIGFyZW4ndCBzaGlmdGVkIGJ1dCBzdGF5IGF0IDB4NjQ4MDAgKi8NCj4gPiA+ID4gPiA+ICsj ZGVmaW5lIEVEUF9QU1JfSU1SCQkJCV9NTUlPKDB4NjQ4MzQpDQo+ID4gPiA+ID4gPiArI2RlZmlu ZSBFRFBfUFNSX0lJUgkJCQlfTU1JTygweDY0ODM4KQ0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgICBF RFBfUFNSX0VSUk9SCQkJCSgxPDwyKQ0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgICBFRFBfUFNSX1BP U1RfRVhJVAkJCSgxPDwxKQ0KPiA+ID4gPiA+ID4gKyNkZWZpbmUgICBFRFBfUFNSX1BSRV9FTlRS WQkJCSgxPDwwKQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gICNkZWZpbmUgRURQX1BTUl9B VVhfQ1RMCQkJCV9NTUlPKGRldl9wcml2LT5wc3JfbW1pb19iYXNlICsgMHgxMCkNCj4gPiA+ID4g PiA+ICAjZGVmaW5lIEVEUF9QU1JfQVVYX0RBVEEoaSkJCQlfTU1JTyhkZXZfcHJpdi0+cHNyX21t aW9fYmFzZSArIDB4MTQgKyAoaSkgKiA0KSAvKiA1IHJlZ2lzdGVycyAqLw0KPiA+ID4gPiA+ID4g IA0KPiA+ID4gPiA+ID4gQEAgLTY2MjgsNiArNjYzNSw3IEBAIGVudW0gew0KPiA+ID4gPiA+ID4g ICNkZWZpbmUgREVfUENIX0VWRU5UX0lWQgkJKDE8PDI4KQ0KPiA+ID4gPiA+ID4gICNkZWZpbmUg REVfRFBfQV9IT1RQTFVHX0lWQgkJKDE8PDI3KQ0KPiA+ID4gPiA+ID4gICNkZWZpbmUgREVfQVVY X0NIQU5ORUxfQV9JVkIJCSgxPDwyNikNCj4gPiA+ID4gPiA+ICsjZGVmaW5lIERFX0VEUF9QU1Jf SU5UX0hTVwkJKDE8PDE5KQ0KPiA+ID4gPiA+ID4gICNkZWZpbmUgREVfU1BSSVRFQ19GTElQX0RP TkVfSVZCCSgxPDwxNCkNCj4gPiA+ID4gPiA+ICAjZGVmaW5lIERFX1BMQU5FQ19GTElQX0RPTkVf SVZCCQkoMTw8MTMpDQo+ID4gPiA+ID4gPiAgI2RlZmluZSBERV9QSVBFQ19WQkxBTktfSVZCCQko MTw8MTApDQo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYw0KPiA+ID4gPiA+ID4g aW5kZXggMzE3Y2I0YTEyNjkzLi4yN2RmZDUwN2E0ZjcgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYw0KPiA+ID4gPiA+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMNCj4gPiA+ID4gPiA+IEBAIC02MTMsNyArNjEz LDggQEAgc3RhdGljIHZvaWQgaHN3X3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsDQo+ID4gPiA+ID4gPiAgCQlJOTE1X1dSSVRFKEVEUF9QU1JfREVCVUcsDQo+ID4g PiA+ID4gPiAgCQkJICAgRURQX1BTUl9ERUJVR19NQVNLX01FTVVQIHwNCj4gPiA+ID4gPiA+ICAJ CQkgICBFRFBfUFNSX0RFQlVHX01BU0tfSFBEIHwNCj4gPiA+ID4gPiA+IC0JCQkgICBFRFBfUFNS X0RFQlVHX01BU0tfTFBTUCk7DQo+ID4gPiA+ID4gPiArCQkJICAgRURQX1BTUl9ERUJVR19NQVNL X0xQU1AgfA0KPiA+ID4gPiA+ID4gKwkJCSAgIEVEUF9QU1JfREVCVUdfTUFTS19SRUdfV1JJVEUp Ow0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgRGFuaWVsJ3Mgb3JpZ2luYWwg aGFkIHRoaXMgYWN0dWFsbHkuIEkgdGhpbmsgSSBhZGRlZCBpdA0KPiA+ID4gPiA+IGJlY2F1c2Ug SSBkaWRuJ3Qgd2FudCBtbWlvIHRvIG1lc3MgdXAgbXkgdGVzdGluZy4NCj4gPiA+ID4gDQo+ID4g PiA+IEl0IGdldHMgcmVtb3ZlZCBpbiBhIHNlcGFyYXRlIHBhdGNoICgyLzUpLiBTbyBJIGFzc3Vt ZWQgRGFuaWVsIGFkZGVkIGl0DQo+ID4gPiA+IGFuZCB5b3UgcmVtb3ZlZCBpdC4NCj4gPiA+IA0K PiA+ID4gSG1tLiBUaGF0IGNvdWxkIGluZGVlZCBiZSB0aGUgY2FzZS4NCj4gPiA+IA0KPiA+ID4g PiANCj4gPiA+ID4gDQo+ID4gPiA+ID4gSW4gZ2VuZXJhbCBJJ2QgcmVhbGx5DQo+ID4gPiA+ID4g cHJlZmVyIHRvIG1hc2sgZXZlcnl0aGluZyBzbyB0aGF0IHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhl IFBTUiBleGl0cw0KPiA+ID4gPiA+IGhhcHBlbiB3aGVuIHdlIHdhbnQvbmVlZCB0aGVtIGFuZCBu b3QgcmFuZG9tbHkgZHVlIHRvIG90aGVyIGFjdGl2aXR5Lg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ IElmIGFueSByYW5kb20gbW1pbyBjYW4gY2F1c2UgYSBQU1IgZXhpdCBpdCdzIGdvaW5nIHRvIGhh cmQgdG8gcHJvdmUgdGhhdA0KPiA+ID4gPiA+IHdlJ3JlIGRvaW5nIHRoZSBjb3JyZWN0IHRoaW5n LiBBbHNvIHNlZW1zIHByZXR0eSB3YXN0ZWZ1bCBpZiBlZy4gR1QNCj4gPiA+ID4gPiBpbnRlcnJ1 cHRzIGNhbiBjYXVzZSBQU1IgZXhpdHMgZm9yIG5vIGdvb2QgcmVhc29uLiBJIG5ldmVyIHRlc3Rl ZCB0byBzZWUNCj4gPiA+ID4gPiB3aGljaCByZWdpc3RlcnMgY2F1c2UgdGhlIFBTUiBleGl0LiBU aGF0IHdvdWxkIGJlIGdvb2QgdG8ga25vdy4NCj4gPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+ IFRoZSBzYW1lIGJpdCBvbiBTS0wrIGlzIGNhbGxlZCAiTWFzayBEaXNwbGF5IFJlZyBXcml0ZSIs IHNvIGl0IGVpdGhlcg0KPiA+ID4gPiBtZWFucw0KPiA+ID4gPiAxKSBIU1cgYW5kIEJEVyBleGl0 IG9ubHkgb24gZGlzcGxheSByZWdpc3RlciB3cml0ZXMgYW5kIHRoZSBic3BlYw0KPiA+ID4gPiBk ZXNjcmlwdGlvbiBpcyBhbWJpZ3VvdXMgb3IgDQo+ID4gPiANCj4gPiA+IFRoZSBwcm9ibGVtIGlz IHRoYXQgZWcuIHNvbWUgb2YgdGhlIGludGVycnVwdCByZWdpc3RlcnMgbGl2ZSBpbiB0aGUNCj4g PiA+IGRpc3BsYXkgYmxvY2suIEhlbmNlIGFueSBpbnRlcnJ1cHQgY291bGQgcG90ZW50aWFsbHkg Y2F1c2UgdGhlIFBTUiBleGl0Lg0KPiA+ID4gQXMgY291bGQgYW55IHJlZ2lzdGVyIHJlYWQgd2Ug ZG8gZm9yIGRlYnVnIHB1cnBvc2UgZXRjLiBTbyBhdCBsZWFzdCBJDQo+ID4gPiB3b3VsZCBmZWVs IHNhZmVyIGlmIFBTUiBjYW4gYmUgbWFkZSB0byB3b3JrIHJlbGlhYmx5IHdpdGggbW9yZSBvciBs ZXNzDQo+ID4gPiBldmVyeXRoaW5nIG1hc2tlZC4NCj4gPiA+IA0KPiA+IFRoZSBpZGVhIGlzIHRv IG1vdmUgdG93YXJkcyBoYXJkd2FyZSB0cmlnZ2VyZWQgZXhpdHMgc2luY2UgdGhhdCdzIHdoYXQN Cj4gPiBpcyBuZWNlc3NhcnkgZm9yIFBTUjIgc2VsZWN0aXZlIHVwZGF0ZXNbMV0uIE1vcmUgaW1w b3J0YW50bHksIHRoZXJlIGFyZQ0KPiA+IHBsYWNlcyBpbiB0aGUgZHJpdmVyIHdoZXJlIHdlIGNh bid0IG1hbnVhbGx5IGV4aXQgUFNSIHdpdGhvdXQNCj4gPiBjaXJjdW12ZW50aW5nIGxvY2tpbmcg aXNzdWVzIC0gZnJvbSB2YmxhbmsgZW5hYmxlIGZvciBpbnN0YW5jZS4gUmVseWluZw0KPiA+IG9u IGhhcmR3YXJlIHRyaWdnZXJlZCBleGl0cyBpbiB0aGUgbW9kZXNldC9jb21taXQgcGF0aCBrZWVw cyBpdA0KPiA+IGNvbnNpc3RlbnQgSU1PLg0KPiANCj4gV2hhdCdzIHRoZSBkaWZmZXJlbmNlIGJl dHdlZW4gdGhlIGhhcmR3YXJlIGJlaGF2aW91ciBiZXR3ZWVuICJ3cml0ZSBhbnkNCj4gcmFuZG9t IG1taW8gdG8gdHJpZ2dlciBhbiBleGl0IiB2cy4gIndyaXRlIHNvbWUgc3BlY2lmaWMgcmVnaXN0 ZXIgdG8NCj4gdHJpZ2dlciBhbiBleGl0Ii4gSSBwcmVzdW1lIHRoZXJlIGlzIGEgd2F5IHRvIHRy aWdnZXIgdGhlIGV4aXQNCj4gZXhwbGljaXRseT8NCj4gDQoNCkkgc3VwcG9zZSB3ZSBjb3VsZCB3 cml0ZSB0byB0aGUgQ1VSX1NVUkZfTElWRV9TVEFUVVMgKG9yIHNvbWV0aGluZyBsaWtlDQp0aGF0 KSBhbmQgc3RpbGwgbWFzayAiRGlzcGxheSByZWcgd3JpdGUiLiBDYW4ndCB0ZWxsIHdpdGhvdXQg dGVzdGluZyBpdA0Kb24gYWxsIG9mIHRoZW0gLSBIU1csIEJEVyBhbmQgU0tMLiBUaGVyZSBpcyBu byBjaGFuZ2UgaW4gdGhlIG1hc2sgZHVlIHRvDQp0aGlzIHNlcmllcy4gQ2hhbmdlIGluIHRoaXMg cGF0Y2ggZ2V0cyB1bmRvbmUgaW4gdGhlIG5leHQuIExldCdzIGdvDQphaGVhZCB3aXRoIHRoaXMg c2VyaWVzIGFuZCBJJ2xsIGNvbWUgYmFjayB0byB0aGUgbWFza3MgYWZ0ZXIgdGhhdC4NCg0KDQoN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=