From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Antoine, Peter" Subject: Re: [PATCH v3] drm/i915 : Added Programming of the MOCS Date: Wed, 17 Jun 2015 15:02:31 +0000 Message-ID: <1434553347.15415.21.camel@peterant-linux> References: <1433442442-512-1-git-send-email-peter.antoine@intel.com> <1433923936-20014-1-git-send-email-peter.antoine@intel.com> <20150610103734.GC26371@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id A9A626EAA4 for ; Wed, 17 Jun 2015 08:03:29 -0700 (PDT) In-Reply-To: <20150610103734.GC26371@nuc-i3427.alporthouse.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "chris@chris-wilson.co.uk" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE1LTA2LTEwIGF0IDExOjM3ICswMTAwLCBDaHJpcyBXaWxzb24gd3JvdGU6DQo+ IE9uIFdlZCwgSnVuIDEwLCAyMDE1IGF0IDA5OjEyOjE2QU0gKzAxMDAsIFBldGVyIEFudG9pbmUg d3JvdGU6DQo+ID4gVGhpcyBjaGFuZ2UgYWRkcyB0aGUgcHJvZ3JhbW1pbmcgb2YgdGhlIE1PQ1Mg cmVnaXN0ZXJzIHRvIHRoZSBnZW4gOSsNCj4gPiBwbGF0Zm9ybXMuIFRoaXMgY2hhbmdlIHNldCBw cm9ncmFtcyB0aGUgTU9DUyByZWdpc3RlciB2YWx1ZXMgdG8gYSBzZXQNCj4gPiBvZiB2YWx1ZXMg dGhhdCBhcmUgZGVmaW5lZCB0byBiZSBvcHRpbWFsLg0KPiA+IA0KPiA+IEl0IGNyZWF0ZXMgYSBm aXhlZCByZWdpc3RlciBzZXQgdGhhdCBpcyBwcm9ncmFtbWVkIGFjcm9zcyB0aGUgZGlmZmVyZW50 DQo+ID4gZW5naW5lcyBzbyB0aGF0IGFsbCBlbmdpbmVzIGhhdmUgdGhlIHNhbWUgdGFibGUuIFRo aXMgaXMgZG9uZSBhcyB0aGUNCj4gPiBtYWluIFJDUyBjb250ZXh0IG9ubHkgaG9sZHMgdGhlIHJl Z2lzdGVycyBmb3IgaXRzZWxmIGFuZCB0aGUgc2hhcmVkDQo+ID4gTDMgdmFsdWVzLiBCeSB0cnlp bmcgdG8ga2VlcCB0aGUgcmVnaXN0ZXJzIGNvbnNpc3RlbnQgYWNyb3NzIHRoZQ0KPiA+IGRpZmZl cmVudCBlbmdpbmVzIGl0IHNob3VsZCBtYWtlIHRoZSBwcm9ncmFtbWluZyBmb3IgdGhlIHJlZ2lz dGVycw0KPiA+IGNvbnNpc3RlbnQuDQo+ID4gDQo+ID4gdjI6DQo+ID4gLSdzdGF0aWMgY29uc3Qn IGZvciBwcml2YXRlIGRhdGEgc3RydWN0dXJlcyBhbmQgc3R5bGUgY2hhbmdlcy4oTWF0dCBUdXJu ZXIpDQo+ID4gdjM6DQo+ID4gLSBNYWtlIHRoZSB0YWJsZXMgInNsaWdodGx5IiBtb3JlIHJlYWRh YmxlLiAoRGFtaWVuIExlc3BpYXUpDQo+ID4gLSBVcGRhdGVkIHRhYmxlcyBmaXggcGVyZm9ybWFu Y2UgcmVncmVzc2lvbi4NCj4gPiANCj4gPiANCj4gPiBTaWduZWQtb2ZmLWJ5OiBQZXRlciBBbnRv aW5lIDxwZXRlci5hbnRvaW5lQGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvTWFrZWZpbGUgICAgIHwgICAzICstDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmggICB8ICAgOSArKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9s cmMuYyAgfCAgNjggKysrKysrKysrKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9t b2NzLmMgfCAyNTIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5oIHwgMTE5ICsrKysrKysrKysrKysrKysr Kw0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDQ1MCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p DQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2Nz LmMNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21v Y3MuaA0KPiA+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlDQo+ID4gaW5kZXggYjdkZGY0OC4uY2Q3 YjkxMCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQ0KPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlDQo+ID4gQEAgLTM2LDcgKzM2LDgg QEAgaTkxNS15ICs9IGk5MTVfY21kX3BhcnNlci5vIFwNCj4gPiAgCSAgaTkxNV90cmFjZV9wb2lu dHMubyBcDQo+ID4gIAkgIGludGVsX2xyYy5vIFwNCj4gPiAgCSAgaW50ZWxfcmluZ2J1ZmZlci5v IFwNCj4gPiAtCSAgaW50ZWxfdW5jb3JlLm8NCj4gPiArCSAgaW50ZWxfdW5jb3JlLm8gXA0KPiA+ ICsJICBpbnRlbF9tb2NzLm8NCj4gDQo+IFBsZWFzZSBrZWVwIGl0IGFscGhhYmV0aWNhbC4NCmRv bmUuDQo+IA0KPiA+ICAjIGF1dG9nZW5lcmF0ZWQgbnVsbCByZW5kZXIgc3RhdGUNCj4gPiAgaTkx NS15ICs9IGludGVsX3JlbmRlcnN0YXRlX2dlbjYubyBcDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oDQo+ID4gaW5kZXggNzIxMzIyNC4uM2E0MzViNSAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaA0KPiA+IEBAIC03ODI5LDQgKzc4MjksMTMgQEAgZW51bSBza2xfZGlzcF9wb3dl cl93ZWxscyB7DQo+ID4gICNkZWZpbmUgX1BBTEVUVEVfQSAoZGV2X3ByaXYtPmluZm8uZGlzcGxh eV9tbWlvX29mZnNldCArIDB4YTAwMCkNCj4gPiAgI2RlZmluZSBfUEFMRVRURV9CIChkZXZfcHJp di0+aW5mby5kaXNwbGF5X21taW9fb2Zmc2V0ICsgMHhhODAwKQ0KPiA+ICANCj4gPiArLyogTU9D UyAoTWVtb3J5IE9iamVjdCBDb250cm9sIFN0YXRlKSByZWdpc3RlcnMgKi8NCj4gPiArI2RlZmlu ZSBHRU45X0xOQ0ZDTU9DUzAJCSgweEIwMjApCS8qIEwzIENhY2hlIENvbnRyb2wgYmFzZSAqLw0K PiA+ICsNCj4gPiArI2RlZmluZSBHRU45X0dGWF9NT0NTXzAJCSgweGM4MDApCS8qIEdyYXBoaWNz IE1PQ1MgYmFzZSByZWdpc3RlciovDQo+ID4gKyNkZWZpbmUgR0VOOV9NRlgwX01PQ1NfMAkoMHhj OTAwKQkvKiBNZWRpYSAwIE1PQ1MgYmFzZSByZWdpc3RlciovDQo+ID4gKyNkZWZpbmUgR0VOOV9N RlgxX01PQ1NfMAkoMHhjQTAwKQkvKiBNZWRpYSAxIE1PQ1MgYmFzZSByZWdpc3RlciovDQo+ID4g KyNkZWZpbmUgR0VOOV9WRUJPWF9NT0NTXzAJKDB4Y0IwMCkJLyogVmlkZW8gTU9DUyBiYXNlIHJl Z2lzdGVyKi8NCj4gPiArI2RlZmluZSBHRU45X0JMVF9NT0NTXzAJCSgweGNjMDApCS8qIEJsaXR0 ZXIgTU9DUyBiYXNlIHJlZ2lzdGVyKi8NCj4gPiArDQo+ID4gICNlbmRpZiAvKiBfSTkxNV9SRUdf SF8gKi8NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYw0KPiA+IGluZGV4IDlmNTQ4NWQuLmM4 NzU1NjkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMN Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYw0KPiA+IEBAIC0xMzUs NiArMTM1LDcgQEANCj4gPiAgI2luY2x1ZGUgPGRybS9kcm1QLmg+DQo+ID4gICNpbmNsdWRlIDxk cm0vaTkxNV9kcm0uaD4NCj4gPiAgI2luY2x1ZGUgImk5MTVfZHJ2LmgiDQo+ID4gKyNpbmNsdWRl ICJpbnRlbF9tb2NzLmgiDQo+ID4gIA0KPiA+ICAjZGVmaW5lIEdFTjlfTFJfQ09OVEVYVF9SRU5E RVJfU0laRSAoMjIgKiBQQUdFX1NJWkUpDQo+ID4gICNkZWZpbmUgR0VOOF9MUl9DT05URVhUX1JF TkRFUl9TSVpFICgyMCAqIFBBR0VfU0laRSkNCj4gPiBAQCAtMTM3MCw2ICsxMzcxLDY3IEBAIG91 dDoNCj4gPiAgCXJldHVybiByZXQ7DQo+ID4gIH0NCj4gPiAgDQo+ID4gKy8qDQo+ID4gKyAqIGk5 MTVfZ2VtX3Byb2dyYW1fbW9jcygpIC0gcHJvZ3JhbSB0aGUgTU9DUyByZWdpc3Rlci4NCj4gPiAr ICoNCj4gPiArICogcmluZzoJVGhlIHJpbmcgdGhhdCB0aGUgcHJvZ3JhbW1pbmcgYmF0Y2ggd2ls bCBiZSBydW4gaW4uDQo+ID4gKyAqIGN0eDoJCVRoZSBpbnRlbF9jb250ZXh0IHRvIGJlIHVzZWQu DQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgZnVuY3Rpb24gd2lsbCBlbWl0IGEgYmF0Y2ggYnVmZmVy IHdpdGggdGhlIHZhbHVlcyByZXF1aXJlZCBmb3INCj4gPiArICogcHJvZ3JhbW1pbmcgdGhlIE1P Q1MgcmVnaXN0ZXIgdmFsdWVzIGZvciBhbGwgdGhlIGN1cnJlbmx5IHN1cHBvcnRlZA0KPiA+ICsg KiByaW5ncy4NCj4gPiArICoNCj4gPiArICogUmV0dXJuOiAwIG9uIHN1Y2Nlc3MsIG90aGVyd2lz ZSB0aGUgZXJyb3Igc3RhdHVzLg0KPiA+ICsgKi8NCj4gPiArc3RhdGljIGludCBpOTE1X2dlbV9w cm9ncmFtX21vY3Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywNCj4gPiArCQkJICBzdHJ1 Y3QgaW50ZWxfY29udGV4dCAqY3R4KQ0KPiANCj4gT2RkIGZ1bmN0aW9uIG5hbWUuIGdlbjhfaW5p dF9tb2NzX3RhYmxlcygpDQpOYW1lIGZpeGVkLiBnZW45XyoNCg0KPiANCj4gPiArew0KPiA+ICsJ aW50IHJldCA9IDA7DQo+ID4gKw0KPiA+ICsJc3RydWN0IGRybV9pOTE1X21vY3NfdGFibGUgdDsN Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7DQo+ID4gKwlzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVm Ow0KPiA+ICsNCj4gPiArCWlmIChnZXRfbW9jc19zZXR0aW5ncyhkZXYsICZ0KSkgew0KPiANCj4g V29yc2UsIHRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgcHVsbGVkIGluIGZyb20gYW5vdGhlciBmaWxl IHNvIG5lZWRzIGENCj4gcHJvcGVyIGZ1bmN0aW9uIG5hZW0uIEp1c3QgcmV0dXJuIHRoZSB0YWJs ZSBwb2ludGVyLg0KPiANCmZ1bmN0aW9uIGNhbGxzIGJhY2sgd2VyZSB0aGV5IGJlbG9uZy4NCg0K PiA+ICsJCXUzMiB0YWJsZV9zaXplOw0KPiA+ICsNCj4gPiArCQkvKg0KPiA+ICsJCSAqIE9LLiBG b3IgZWFjaCBzdXBwb3J0ZWQgcmluZzoNCj4gPiArCQkgKiAgdGFibGVfc2l6ZSAqIDIgZHdvcmRz IGZvciBlYWNoIGNvbnRyb2xfdmFsdWUNCj4gPiArCQkgKiAgcGx1cyB0YWJsZS8yIGR3b3JkcyBm b3IgbDNjYyB2YWx1ZXMuDQo+ID4gKwkJICoNCj4gPiArCQkgKiAgUGx1cyAxIGZvciB0aGUgbG9h ZCBjb21tYW5kIGFuZCAxIGZvciB0aGUgTk9PUCBwZXIgcmluZw0KPiA+ICsJCSAqICBhbmQgdGhl IGwzY2MgcHJvZ3JhbW1pbmcuDQo+ID4gKwkJICovDQo+ID4gKwkJdGFibGVfc2l6ZSA9IEdFTjlf TlVNX01PQ1NfUklOR1MgKiAoKDIgKiB0LnNpemUpICsgMikgKw0KPiA+ICsJCQkJdC5zaXplICsg MjsNCj4gPiArCQlyZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocmluZ2J1ZiwgY3R4LCB0 YWJsZV9zaXplKTsNCj4gPiArCQlpZiAocmV0KSB7DQo+ID4gKwkJCURSTV9FUlJPUigiaW50ZWxf bG9naWNhbF9yaW5nX2JlZ2luIGZhaWxlZCAlZFxuIiwgcmV0KTsNCj4gDQo+IEVycm9yPyBEb2Vz IHRoaXMgaGVscCB0aGUgdXNlciBpbiBhbnkgd2F5LCBlc3BlY2lhbGx5IGFzIG5vdCBlbmFibGlu Zw0KPiBtb2NzIGlzIG5vdCBjcml0aWNhbD8NCk5vLiBDaGFuZ2VkIHRvIERFQlVHLg0KPiANCj4g PiArCQkJcmV0dXJuIHJldDsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJCS8qIHByb2dyYW0gdGhl IGNvbnRyb2wgcmVnaXN0ZXJzICovDQo+ID4gKwkJZW1pdF9tb2NzX2NvbnRyb2xfdGFibGUocmlu Z2J1ZiwgJnQsIEdFTjlfR0ZYX01PQ1NfMCk7DQo+ID4gKwkJZW1pdF9tb2NzX2NvbnRyb2xfdGFi bGUocmluZ2J1ZiwgJnQsIEdFTjlfTUZYMF9NT0NTXzApOw0KPiA+ICsJCWVtaXRfbW9jc19jb250 cm9sX3RhYmxlKHJpbmdidWYsICZ0LCBHRU45X01GWDFfTU9DU18wKTsNCj4gPiArCQllbWl0X21v Y3NfY29udHJvbF90YWJsZShyaW5nYnVmLCAmdCwgR0VOOV9WRUJPWF9NT0NTXzApOw0KPiA+ICsJ CWVtaXRfbW9jc19jb250cm9sX3RhYmxlKHJpbmdidWYsICZ0LCBHRU45X0JMVF9NT0NTXzApOw0K PiANCj4gU28gd2h5IGFyZSBwcm9ncmFtbWluZyBvdGhlciByaW5ncyBvbiBSQ1Mgd2l0aG91dCBl eHBsaWNpdCBpbnRlci1lbmdpbmUNCj4gb3JkZXJpbmc/DQpCYXNpY2FsbHkgdGhlIHNhbWUgYXMg dGhlIHdvcmthcm91bmRzIChhbmQgdGhlIG51bGwgY29udGV4dCkgc2V0IHRoZXNlDQp1cCB3aGVu IHRoZSB0aGUgUkNTIGlzIGxvYWRlZC4gQXMgdGhlIG90aGVyIGVuZ2luZXMgRE8gTk9UIGhhdmUg dGhlc2UNCnJlZ2lzdGVycyBpbiB0aGVpciBjb250ZXh0IGl0IGlzIGRvbmUgaGVyZS4gQUxTTywg YXMgdGhlIGwzY2MgcmVnaXN0ZXJzDQphcmUgaW5kZXhlZCBieSB0aGUgc2FtZSBpbmRleCB2YWx1 ZSAod2hlbiB1c2luZyB0aGUgTU9DUykgYXMgcGFydCBvZiB0aGUNCmNhY2hpbmcsIHRoZXkgbmVl ZCB0byBtYXRjaCBzbyB0aGlzIGlzIHdoeSB0aGV5IGFyZSBkb25lIGF0IHRoZSBzYW1lDQp0aW1l Lg0KDQpJIGhhdmUgY2hhbmdlZCB0aGUgY29tbWVudHMgdG8gbWFrZSB0aGlzIGEgbGl0dGxlIGNs ZWFyZXIuDQo+IA0KPiA+ICsNCj4gPiArCQkvKiBub3cgcHJvZ3JhbSB0aGUgbDNjYyByZWdpc3Rl cnMgKi8NCj4gPiArCQllbWl0X21vY3NfbDNjY190YWJsZShyaW5nYnVmLCAmdCk7DQo+ID4gKw0K PiA+ICsJCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOw0KPiA+ICsNCj4gPiAr CQlEUk1fSU5GTygiTU9DUzogVGFibGUgc2V0IGluIENvbnRleHRcbiIpOw0KPiA+ICsJfSBlbHNl IHsNCj4gPiArCQlEUk1fSU5GTygiTU9DUzogVGFibGUgTm90IHN1cHBvcnRlZCBvbiBwbGF0Zm9y bVxuIik7DQo+IA0KPiBJbmZvPyBKdXN0IGRlYnVnLCB0aGVzZSBhcmUgbm90IGhlbHBmdWwgdXNl ciBtZXNzYWdlcy4NCkNoYW5nZSB0byBERUJVRy4NCj4gDQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJ cmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArDQo+ID4gIHN0YXRpYyBpbnQgZ2VuOF9p bml0X3Jjc19jb250ZXh0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsDQo+ID4gIAkJICAg ICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpDQo+ID4gIHsNCj4gPiBAQCAtMTM3OSw2ICsx NDQxLDEyIEBAIHN0YXRpYyBpbnQgZ2VuOF9pbml0X3Jjc19jb250ZXh0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsDQo+ID4gIAlpZiAocmV0KQ0KPiA+ICAJCXJldHVybiByZXQ7DQo+ID4g IA0KPiA+ICsJLyoNCj4gPiArCSAqIEZhaWxpbmcgdG8gcHJvZ3JhbSB0aGUgTU9DUyBpcyBub24t ZmF0YWwuVGhlIHN5c3RlbSB3aWxsIG5vdA0KPiA+ICsJICogcnVuIGF0IHBlYWsgcGVyZm9ybWFu Y2UuIFNvIGdlbmVyYXRlIGEgd2FybmluZyBhbmQgY2Fycnkgb24uDQo+ID4gKwkgKi8NCj4gPiAr CVdBUk5fT04oaTkxNV9nZW1fcHJvZ3JhbV9tb2NzKHJpbmcsIGN0eCkgIT0gMCk7DQo+IA0KPiBX YXJuPyBKdXN0IE5PVElDRSBzaW5jZSBpdCBpcyBub3QgYSB1c2VmdWwgdXNlciBlcnJvciBtZXNz YWdlIGFuZCBhDQo+IG5vbi1jcml0aWNhbCBlcnJvciB0byBib290Lg0KQ2hhbmdlZCB0byBEUk1f RVJST1Igb24gZmFpbC4NCj4gDQo+ID4gIAlyZXR1cm4gaW50ZWxfbHJfY29udGV4dF9yZW5kZXJf c3RhdGVfaW5pdChyaW5nLCBjdHgpOw0KPiA+ICB9DQo+ID4gIA0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9tb2NzLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAu Ljg0MTkzMmENCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbW9jcy5jDQo+ID4gQEAgLTAsMCArMSwyNTIgQEANCj4gPiArLyoNCj4gPiArICog Q29weXJpZ2h0IChjKSAyMDE1IEludGVsIENvcnBvcmF0aW9uDQo+ID4gKyAqDQo+ID4gKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhDQo+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksDQo+ID4gKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24NCj4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2Us IHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsDQo+ID4gKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQ0K PiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOiAqDQo+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQNCj4gPiArICog cGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZQ0KPiA+ICsgKiBTb2Z0d2FyZS4NCj4gPiArICoNCj4gPiArICogVEhF IFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJ TkQsIEVYUFJFU1MgT1INCj4gPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksDQo+ID4gKyAqIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVO VCBTSEFMTA0KPiA+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFC TEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUg0KPiA+ICsgKiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lO RyBGUk9NLA0KPiA+ICsgKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQ0KPiA+ICsgKiBTT0ZUV0FSRS4N Cj4gPiArICoNCj4gPiArICogQXV0aG9yczoNCj4gPiArICogICAgUGV0ZXIgQW50b2luZSA8cGV0 ZXIuYW50b2luZUBpbnRlbC5jb20+DQo+IA0KPiBXZSBkb24ndCBlbmNvdXJhZ2UgQXV0aG9yczog c2luY2UgZ2l0IGRvZXMgYSBiZXR0ZXIgam9iLg0KUmVtb3ZlZC4gV2FzIGluIHRoZSBmaWxlIGhl YWRlciB0aGF0IEkgbG9va2VkIGF0Lg0KPiANCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVk ZSAiaW50ZWxfbW9jcy5oIg0KPiA+ICsjaW5jbHVkZSAiaW50ZWxfbHJjLmgiDQo+ID4gKyNpbmNs dWRlICJpbnRlbF9yaW5nYnVmZmVyLmgiDQo+ID4gKw0KPiA+ICsvKg0KPiA+ICsgKiBNT0NTIHRh Ymxlcw0KPiA+ICsgKg0KPiA+ICsgKiBUaGVzZSBhcmUgdGhlIE1PQ1MgdGFibGVzIHRoYXQgYXJl IHByb2dyYW1tZWQgYWNyb3NzIGFsbCB0aGUgcmluZ3MuDQo+ID4gKyAqIFRoZSBjb250cm9sIHZh bHVlIGlzIHByb2dyYW1tZWQgdG8gYWxsIHRoZSByaW5ncyB0aGF0IHN1cHBvcnQgdGhlDQo+ID4g KyAqIE1PQ1MgcmVnaXN0ZXJzLiBXaGlsZSB0aGUgbDNjY192YWx1ZXMgYXJlIG9ubHkgcHJvZ3Jh bW1lZCB0byB0aGUNCj4gPiArICogTE5DRkNNT0NTMCAtIExOQ0ZDTU9DUzMyIHJlZ2lzdGVycy4N Cj4gPiArICoNCj4gPiArICogTk9URTogVGhlc2UgdGFibGVzIE1VU1Qgc3RhcnQgd2l0aCBiZWlu ZyB1bmNhY2hlZCB7MCwwfSBhbmQgdGhlDQo+ID4gKyAqICAgICAgIHRoZSBsZW5ndGggTVVTVCBi ZSBsZXNzIHRoYW4gNjMgYXMgdGhlIGxhc3QgdHdvIHJlZ2lzdGVycyBhcmUNCj4gPiArICogICAg ICAgcmVzZXJ2ZWQgYnkgdGhlIGhhcmR3YXJlLg0KPiA+ICsgKi8NCj4gPiArc3RydWN0IGRybV9p OTE1X21vY3NfZW50cnkgc2t5bGFrZV9tb2NzX3RhYmxlW10gPSB7DQo+IA0KPiBzdGF0aWMgY29u c3QgLi4uDQpkb25lLg0KPiANCj4gPiArCSAvKiB7MHgwMDAwMDAwOSwgMHgwMDEwfSAqLw0KPiA+ ICsJeyhNT0NTX0NBQ0hFQUJJTElUWShFRFJBTV9VQykgfCBNT0NTX1RHVF9DQUNIRShMTENfRUxM QykgfA0KPiA+ICsJCU1PQ1NfTFJVTSgwKSB8IE1PQ1NfQU9NKDApIHwgTU9DU19MRUNDX0VTQygw KSB8IE1PQ1NfU0NDKDApIHwNCj4gPiArCQlNT0NfUEZNKDApIHwgTU9DU19TQ0YoMCkpLA0KPiA+ ICsJCShNT0NTX0VTQygwKSB8IE1PQ1NfU0NDKDApIHwgTU9DU19MM19DQUNIRUFCSUxJVFkoTDNf VUMpKX0sDQo+IA0KPiBXaGl0ZXNwYWNlIGFuZCBhbGlnbm1lbnQgc2hvdWxkIGJlIHRyZWF0ZWQg YXMgb3VyIGZyaWVuZHMgYW5kIG5vdA0KPiBlbmVtaWVzLg0KPiANCj4gI2RlZmluZSBTS1lMQUtF X01PQ1MoY2FjaGUsIGVsbGMsIGxydW0sIGwzKSB7IFwNCj4gCShNT0NTX0NBQ0hFQUJJTElUWShj YWNoZSkgfCBcDQo+IAkgTU9DU19UR1RfQ0FDSEUoZWxsYykgfCBcDQo+IAkgTU9DU19MUlVNKGxy dW0pIHwgXA0KPiAJIE1PQ1NfQU9NKDApIHwgXA0KPiAJIE1PQ1NfTEVDQ19FU0MoMCkgfCBcDQo+ IAkgTU9DU19TQ0MoMCkgfCBcDQo+IAkgTU9DX1BGTSgwKSB8IFwNCj4gCSBNT0NTX1NDRigwKSkp LCBcDQo+IAkoTU9DU19FU0MoMCkgfCBcDQo+IAkgTU9TQ19TQ0MoMCkgfCBcDQo+IAkgTU9DU19M M19DQUNIRUFCSUxJVFkobDMpKSBcDQo+IH0NCj4gDQo+IHdvdWxkIGhlbHAgY2xhcmlmeSB0aGVz ZSBldmVuIGZ1cnRoZXIsIG9yIGF0IHRoZSB2ZXJ5IGxlYXN0IGJlaW5nDQo+IGNvbnNpc3RlbnQg aW4gbGF5b3V0IG9mIHRoZSB0YWJsZXMgd291bGQgaW1wcm92ZSByZWFkaWJsaXR5IGFuZCBiZWlu Zw0KPiBhYmxlIHRvIGNyb3NzLWNoZWNrLg0KTWFkZSB0YWJsZSBtb3JlIGNvbnNpc3RlbnQuDQo+ IA0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIGdldF9tb2NzX3NldHRpbmdzDQo+ID4gKyAqDQo+ ID4gKyAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gdGhlIHZhbHVlcyBvZiB0aGUgTU9DUyB0 YWJsZSB0aGF0IG5lZWRzIHRvDQo+ID4gKyAqIGJlIHByb2dyYW1tZWQgZm9yIHRoZSBwbGF0Zm9y bS4gSXQgd2lsbCByZXR1cm4gdGhlIHZhbHVlcyB0aGF0IG5lZWQNCj4gPiArICogdG8gYmUgcHJv Z3JhbW1lZCBhbmQgaWYgdGhleSBuZWVkIHRvIGJlIHByb2dyYW1tZWQuDQo+ID4gKyAqDQo+ID4g KyAqIElmIHRoZSByZXR1cm4gdmFsdWVzIGlzIGZhbHNlIHRoZW4gdGhlIHJlZ2lzdGVycyBkbyBu b3QgbmVlZCBwcm9ncmFtbWluZy4NCj4gPiArICovDQo+ID4gK2Jvb2wgZ2V0X21vY3Nfc2V0dGlu Z3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4gPiArCQkJICAgICAgc3RydWN0IGRybV9pOTE1 X21vY3NfdGFibGUgKnRhYmxlKSB7DQo+IA0KPiBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfbW9jc190 YWJsZSAqDQo+IGdlbjhfbG9va3VwX21vY3NfdGFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpOw0KPiANCj4gPiArLyoqDQo+ID4gKyAqIGVtaXRfbW9jc19jb250cm9sX3RhYmxlKCkg LSBlbWl0IHRoZSBtb2NzIGNvbnRyb2wgdGFibGUNCj4gPiArICogQHJpbmdidWY6CURSTSBkZXZp Y2UuDQo+ID4gKyAqIEB0YWJsZToJVGhlIHZhbHVlcyB0byBwcm9ncmFtIGludG8gdGhlIGNvbnRy b2wgcmVncy4NCj4gPiArICogQHJlZ19iYXNlOglUaGUgYmFzZSBmb3IgdGhlIEVuZ2luZSB0aGF0 IG5lZWRzIHRvIGJlIHByb2dyYW1tZWQuDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgZnVuY3Rpb24g c2ltcGx5IGVtaXRzIGEgTUlfTE9BRF9SRUdJU1RFUl9JTU0gY29tbWFuZCBmb3IgdGhlDQo+ID4g KyAqIGdpdmVuIHRhYmxlIHN0YXJ0aW5nIGF0IHRoZSBnaXZlbiBhZGRyZXNzLg0KPiA+ICsgKg0K PiA+ICsgKiBSZXR1cm46IE5vdGhpbmcuDQo+ID4gKyAqLw0KPiA+ICt2b2lkIGVtaXRfbW9jc19j b250cm9sX3RhYmxlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmLA0KPiA+ICsJCQkJ ICAgIHN0cnVjdCBkcm1faTkxNV9tb2NzX3RhYmxlICp0YWJsZSwNCj4gPiArCQkJCSAgICB1MzIg cmVnX2Jhc2UpDQo+IA0KPiBnZW44X2VtaXRfbW9jc190YWJsZSguLi4pDQo+IGV0Yw0KZnVuY3Rp b25zIGludGVybmFsIGFnYWluLg0KPiANCj4gPiArLyogRGVmaW5lcyBmb3IgdGhlIHRhYmxlcyAo WFhYX01PQ1NfMCAtIFhYWF9NT0NTXzYzKSAqLw0KPiA+ICsjZGVmaW5lCU1PQ1NfQ0FDSEVBQklM SVRZKHZhbHVlKQkoKHZhbHVlICYgMHgwMykgPDwgMCkNCj4gDQo+IHZhbHVlICYgbWFzaz8gVGhl c2UgbWFjcm9zIHNob3VsZCBvbmx5IGJlIGZlZWQgZW51bXMgc28gdGhlIG1hc2tpbmcgb2YNCj4g dGhlIGlucHV0IGlzIHN1cGVyZmx1b3VzIGFuZCBpbmRpY2F0aXZlIG9mIGEgcHJvZ3JhbW1pbmcg YnVnLg0KU3VwZXJmbHVvdXMgeWVzLCBidXQgaXQgbGV0cyB0aGUgY29kZXIga25vdyB0aGUgbGF5 b3V0IG9mIHRoZSBmaWVsZCwgYnV0DQptYXkgaGlkZSBhIHByb2dyYW1taW5nIGJ1ZyBidXQgZG9l cyBub3QgaW5kaWNhdGUgb25lIChvdGhlciBjb2RpbmcNCnN0YW5kYXJkcyAoZm9yIHNhZmUgc3lz dGVtcykgdGhhdCBJIGhhdmUgdXNlZCByZXF1aXJlIHRoaXMgYXMgaXQgcmVkdWNlcw0KdGhlIGlt cGFjdCBvZiBjb2RpbmcgZXJyb3JzKS4NCg0KSSBoYXZlIHJlbW92ZWQgdGhlbS4NCj4gLUNocmlz DQo+IA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=