From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v4] drm/i915: Add IOCTL Param to control data port coherency. Date: Mon, 9 Jul 2018 17:28:02 +0100 Message-ID: References: <1521463055-5325-2-git-send-email-tomasz.lis@intel.com> <1531142457-4232-1-git-send-email-tomasz.lis@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id B232489144 for ; Mon, 9 Jul 2018 16:28:08 +0000 (UTC) In-Reply-To: <1531142457-4232-1-git-send-email-tomasz.lis@intel.com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tomasz Lis , intel-gfx@lists.freedesktop.org Cc: bartosz.dunajski@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA5LzA3LzIwMTggMTQ6MjAsIFRvbWFzeiBMaXMgd3JvdGU6Cj4gVGhlIHBhdGNoIGFkZHMg YSBwYXJhbWV0ZXIgdG8gY29udHJvbCB0aGUgZGF0YSBwb3J0IGNvaGVyZW5jeSBmdW5jdGlvbmFs aXR5Cj4gb24gYSBwZXItY29udGV4dCBsZXZlbC4gV2hlbiB0aGUgSU9DVEwgaXMgY2FsbGVkLCBh IGNvbW1hbmQgdG8gc3dpdGNoIGRhdGEKPiBwb3J0IGNvaGVyZW5jeSBzdGF0ZSBpcyBhZGRlZCB0 byB0aGUgb3JkZXJlZCBsaXN0LiBBbGwgcHJpb3IgcmVxdWVzdHMgYXJlCj4gZXhlY3V0ZWQgb24g b2xkIGNvaGVyZW5jeSBzZXR0aW5ncywgYW5kIGFsbCBleGVjIHJlcXVlc3RzIGFmdGVyIHRoZSBJ T0NUTAo+IHdpbGwgdXNlIG5ldyBzZXR0aW5ncy4KPiAKPiBSYXRpb25hbGU6Cj4gCj4gVGhlIE9w ZW5DTCBkcml2ZXIgZGV2ZWxwZXJzIHJlcXVlc3RlZCBhIGZ1bmN0aW9uYWxpdHkgdG8gY29udHJv bCBjYWNoZQo+IGNvaGVyZW5jeSBhdCBkYXRhIHBvcnQgbGV2ZWwuIEtlZXBpbmcgdGhlIGNvaGVy ZW5jeSBhdCB0aGF0IGxldmVsIGlzIGRpc2FibGVkCj4gYnkgZGVmYXVsdCBkdWUgdG8gaXRzIHBl cmZvcm1hbmNlIGNvc3RzLiBPcGVuQ0wgZHJpdmVyIGlzIHBsYW5uaW5nIHRvCj4gZW5hYmxlIGl0 IGZvciBhIHNtYWxsIHN1YnNldCBvZiBzdWJtaXNzaW9ucywgd2hlbiBzdWNoIGZ1bmN0aW9uYWxp dHkgaXMKPiByZXF1aXJlZC4gQmVsb3cgYXJlIGFuc3dlcnMgdG8gYmFzaWMgcXVlc3Rpb24gZXhw bGFpbmluZyBiYWNrZ3JvdW5kCj4gb2YgdGhlIGZ1bmN0aW9uYWxpdHkgYW5kIHJlYXNvbmluZyBm b3IgdGhlIHByb3Bvc2VkIGltcGxlbWVudGF0aW9uOgo+IAo+IDEuIFdoeSBkbyB3ZSBuZWVkIGEg Y29oZXJlbmN5IGVuYWJsZS9kaXNhYmxlIHN3aXRjaCBmb3IgbWVtb3J5IHRoYXQgaXMgc2hhcmVk Cj4gYmV0d2VlbiBDUFUgYW5kIEdFTiAoR1BVKT8KPiAKPiBNZW1vcnkgY29oZXJlbmN5IGJldHdl ZW4gQ1BVIGFuZCBHRU4sIHdoaWxlIGJlaW5nIGEgZ3JlYXQgZmVhdHVyZSB0aGF0IGVuYWJsZXMK PiBDTF9NRU1fU1ZNX0ZJTkVfR1JBSU5fQlVGRkVSIE9DTCBjYXBhYmlsaXR5IG9uIEludGVsIEdF TiBhcmNoaXRlY3R1cmUsIGFkZHMKPiBvdmVyaGVhZCByZWxhdGVkIHRvIHRyYWNraW5nIChzbm9v cGluZykgbWVtb3J5IGluc2lkZSBkaWZmZXJlbnQgY2FjaGUgdW5pdHMKPiAoTDEkLCBMMiQsIEwz JCwgTExDJCwgZXRjLikuIEF0IHRoZSBzYW1lIHRpbWUsIG1pbm9yaXR5IG9mIG1vZGVybiBPQ0wK PiBhcHBsaWNhdGlvbnMgYWN0dWFsbHkgdXNlIENMX01FTV9TVk1fRklORV9HUkFJTl9CVUZGRVIg KGFuZCBoZW5jZSByZXF1aXJlCj4gbWVtb3J5IGNvaGVyZW5jeSBiZXR3ZWVuIENQVSBhbmQgR1BV KS4gVGhlIGdvYWwgb2YgY29oZXJlbmN5IGVuYWJsZS9kaXNhYmxlCj4gc3dpdGNoIGlzIHRvIHJl bW92ZSBvdmVyaGVhZCBvZiBtZW1vcnkgY29oZXJlbmN5IHdoZW4gbWVtb3J5IGNvaGVyZW5jeSBp cyBub3QKPiBuZWVkZWQuCj4gCj4gMi4gV2h5IGRvIHdlIG5lZWQgYSBnbG9iYWwgY29oZXJlbmN5 IHN3aXRjaD8KPiAKPiBJbiBvcmRlciB0byBzdXBwb3J0IEkvTyBjb21tYW5kcyBmcm9tIHdpdGhp biBFVXMgKEV4ZWN1dGlvbiBVbml0cyksIEludGVsIEdFTgo+IElTQSAoR0VOIEluc3RydWN0aW9u IFNldCBBc3NlbWJseSkgY29udGFpbnMgZGVkaWNhdGVkICJzZW5kIiBpbnN0cnVjdGlvbnMuCj4g VGhlc2Ugc2VuZCBpbnN0cnVjdGlvbnMgcHJvdmlkZSBzZXZlcmFsIGFkZHJlc3NpbmcgbW9kZWxz LiBPbmUgb2YgdGhlc2UKPiBhZGRyZXNzaW5nIG1vZGVscyAobmFtZWQgInN0YXRlbGVzcyIpIHBy b3ZpZGVzIG1vc3QgZmxleGlibGUgSS9PIHVzaW5nIHBsYWluCj4gdmlydHVhbCBhZGRyZXNzZXMg KGFzIG9wcG9zZWQgdG8gYnVmZmVyX2hhbmRsZStvZmZzZXQgbW9kZWxzKS4gVGhpcyAic3RhdGVs ZXNzIgo+IG1vZGVsIGlzIHNpbWlsYXIgdG8gcmVndWxhciBtZW1vcnkgbG9hZC9zdG9yZSBvcGVy YXRpb25zIGF2YWlsYWJsZSBvbiB0eXBpY2FsCj4gQ1BVcy4gU2luY2UgdGhpcyBtb2RlbCBwcm92 aWRlcyBJL08gdXNpbmcgYXJiaXRyYXJ5IHZpcnR1YWwgYWRkcmVzc2VzLCBpdAo+IGVuYWJsZXMg YWxnb3JpdGhtaWMgZGVzaWducyB0aGF0IGFyZSBiYXNlZCBvbiBwb2ludGVyLXRvLXBvaW50ZXIg KGUuZy4gYnVmZmVyCj4gb2YgcG9pbnRlcnMpIGNvbmNlcHRzLiBGb3IgaW5zdGFuY2UsIGl0IGFs bG93cyBjcmVhdGluZyB0cmVlLWxpa2UgZGF0YQo+IHN0cnVjdHVyZXMgc3VjaCBhczoKPiAgICAg ICAgICAgICAgICAgICAgIF9fX19fX19fX19fX19fX18KPiAgICAgICAgICAgICAgICAgICAgfCAg ICAgIE5PREUxICAgICB8Cj4gICAgICAgICAgICAgICAgICAgIHwgdWludDY0X3QgZGF0YSAgfAo+ ICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLXwKPiAgICAgICAgICAgICAgICAg ICAgfCBOT0RFKiAgfCAgTk9ERSp8Cj4gICAgICAgICAgICAgICAgICAgICstLS0tLS0tLSstLS0t LS0tKwo+ICAgICAgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgIFwKPiAgICAgX19fX19f X19fX19fX19fXy8gICAgICAgICAgICAgICAgXF9fX19fX19fX19fX19fX18KPiAgICB8ICAgICAg Tk9ERTIgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgIE5PREUzICAgICB8Cj4gICAgfCB1aW50 NjRfdCBkYXRhICB8ICAgICAgICAgICAgICAgIHwgdWludDY0X3QgZGF0YSAgfAo+ICAgICstLS0t LS0tLS0tLS0tLS0tfCAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLXwKPiAgICB8IE5P REUqICB8ICBOT0RFKnwgICAgICAgICAgICAgICAgfCBOT0RFKiAgfCAgTk9ERSp8Cj4gICAgKy0t LS0tLS0tKy0tLS0tLS0rICAgICAgICAgICAgICAgICstLS0tLS0tLSstLS0tLS0tKwo+IAo+IFBs ZWFzZSBub3RlIHRoYXQgcG9pbnRlcnMgaW5zaWRlIHN1Y2ggc3RydWN0dXJlcyBjYW4gcG9pbnQg dG8gbWVtb3J5IGxvY2F0aW9ucwo+IGluIGRpZmZlcmVudCBPQ0wgYWxsb2NhdGlvbnMgIC0gZS5n LiBOT0RFMSBhbmQgTk9ERTIgY2FuIHJlc2lkZSBpbiBvbmUgT0NMCj4gYWxsb2NhdGlvbiB3aGls ZSBOT0RFMyByZXNpZGVzIGluIGEgY29tcGxldGVseSBzZXBhcmF0ZSBPQ0wgYWxsb2NhdGlvbi4K PiBBZGRpdGlvbmFsbHksIHN1Y2ggcG9pbnRlcnMgY2FuIGJlIHNoYXJlZCB3aXRoIENQVSAoaS5l LiB1c2luZyBTVk0gLSBTaGFyZWQKPiBWaXJ0dWFsIE1lbW9yeSBmZWF0dXJlKS4gVXNpbmcgcG9p bnRlcnMgZnJvbSBkaWZmZXJlbnQgYWxsb2NhdGlvbnMgZG9lc24ndAo+IGFmZmVjdCB0aGUgc3Rh dGVsZXNzIGFkZHJlc3NpbmcgbW9kZWwgd2hpY2ggZXZlbiBhbGxvd3Mgc2NhdHRlcmVkIHJlYWRp bmcgZnJvbQo+IGRpZmZlcmVudCBhbGxvY2F0aW9ucyBhdCB0aGUgc2FtZSB0aW1lIChpLmUuIGJ5 IHV0aWxpemluZyBTSU1ELW5hdHVyZSBvZiBzZW5kCj4gaW5zdHJ1Y3Rpb25zKS4KPiAKPiBXaGVu IGl0IGNvbWVzIHRvIGNvaGVyZW5jeSBwcm9ncmFtbWluZywgc2VuZCBpbnN0cnVjdGlvbnMgaW4g c3RhdGVsZXNzIG1vZGVsCj4gY2FuIGJlIGVuY29kZWQgKGF0IElTQSBsZXZlbCkgdG8gZWl0aGVy IHVzZSBvciBkaXNhYmxlIGNvaGVyZW5jeS4gSG93ZXZlciwgZm9yCj4gZ2VuZXJpYyBPQ0wgYXBw bGljYXRpb25zIChzdWNoIGFzIGV4YW1wbGUgd2l0aCB0cmVlLWxpa2UgZGF0YSBzdHJ1Y3R1cmUp LCBPQ0wKPiBjb21waWxlciBpcyBub3QgYWJsZSB0byBkZXRlcm1pbmUgb3JpZ2luIG9mIG1lbW9y eSBwb2ludGVkIHRvIGJ5IGFuIGFyYml0cmFyeQo+IHBvaW50ZXIgLSBpLmUuIGlzIG5vdCBhYmxl IHRvIHRyYWNrIGdpdmVuIHBvaW50ZXIgYmFjayB0byBhIHNwZWNpZmljCj4gYWxsb2NhdGlvbi4g QXMgc3VjaCwgaXQncyBub3QgYWJsZSB0byBkZWNpZGUgd2hldGhlciBjb2hlcmVuY3kgaXMgbmVl ZGVkIG9yIG5vdAo+IGZvciBzcGVjaWZpYyBwb2ludGVyIChvciBmb3Igc3BlY2lmaWMgSS9PIGlu c3RydWN0aW9uKS4gQXMgYSByZXN1bHQsIGNvbXBpbGVyCj4gZW5jb2RlcyBhbGwgc3RhdGVsZXNz IHNlbmRzIGFzIGNvaGVyZW50IChkb2luZyBvdGhlcndpc2Ugd291bGQgbGVhZCB0bwo+IGZ1bmN0 aW9uYWwgaXNzdWVzIHJlc3VsdGluZyBmcm9tIGRhdGEgY29ycnVwdGlvbikuIFBsZWFzZSBub3Rl IHRoYXQgaXQgd291bGQgYmUKPiBwb3NzaWJsZSB0byB3b3JrYXJvdW5kIHRoaXMgKGUuZy4gYmFz ZWQgb24gYWxsb2NhdGlvbnMgbWFwIGFuZCBwb2ludGVyIGJvdW5kcwo+IGNoZWNraW5nIHByaW9y IHRvIGVhY2ggSS9PIGluc3RydWN0aW9uKSBidXQgdGhlIHBlcmZvcm1hbmNlIGNvc3Qgb2Ygc3Vj aAo+IHdvcmthcm91bmQgd291bGQgYmUgbWFueSB0aW1lcyBncmVhdGVyIHRoYW4gdGhlIGNvc3Qg b2Yga2VlcGluZyBjb2hlcmVuY3kKPiBhbHdheXMgZW5hYmxlZC4gQXMgc3VjaCwgZW5hYmxpbmcv ZGlzYWJsaW5nIG1lbW9yeSBjb2hlcmVuY3kgYXQgR0VOIElTQSBsZXZlbAo+IGlzIG5vdCBmZWFz aWJsZSBhbmQgYWx0ZXJuYXRpdmUgbWV0aG9kIGlzIG5lZWRlZC4KPiAKPiBTdWNoIGFsdGVybmF0 aXZlIHNvbHV0aW9uIGlzIHRvIGhhdmUgYSBnbG9iYWwgY29oZXJlbmN5IHN3aXRjaCB0aGF0IGFs bG93cwo+IGRpc2FibGluZyBjb2hlcmVuY3kgZm9yIHNpbmdsZSAodGhvdWdoIGVudGlyZSkgR1BV IHN1Ym1pc3Npb24uIFRoaXMgaXMKPiBiZW5lZmljaWFsIGJlY2F1c2UgdGhpcyB3YXkgd2U6Cj4g KiBjYW4gZW5hYmxlIChhbmQgcGF5IGZvcikgY29oZXJlbmN5IG9ubHkgaW4gc3VibWlzc2lvbnMg dGhhdCBhY3R1YWxseSBuZWVkCj4gY29oZXJlbmN5IChzdWJtaXNzaW9ucyB0aGF0IHVzZSBDTF9N RU1fU1ZNX0ZJTkVfR1JBSU5fQlVGRkVSIHJlc291cmNlcykKPiAqIGRvbid0IGNhcmUgYWJvdXQg Y29oZXJlbmN5IGF0IEdFTiBJU0EgZ3JhbnVsYXJpdHkgKG5vIHBlcmZvcm1hbmNlIGltcGFjdCkK PiAKPiAzLiBXaWxsIGNvaGVyZW5jeSBzd2l0Y2ggYmUgdXNlZCBmcmVxdWVudGx5Pwo+IAo+IFRo ZXJlIGFyZSBzY2VuYXJpb3MgdGhhdCB3aWxsIHJlcXVpcmUgZnJlcXVlbnQgdG9nZ2xpbmcgb2Yg dGhlIGNvaGVyZW5jeQo+IHN3aXRjaC4KPiBFLmcuIGFuIGFwcGxpY2F0aW9uIGhhcyB0d28gT0NM IGNvbXB1dGUga2VybmVsczoga2Vybl9tYXN0ZXIgYW5kIGtlcm5fd29ya2VyLgo+IGtlcm5fbWFz dGVyIHVzZXMsIGNvbmN1cnJlbnRseSB3aXRoIENQVSwgc29tZSBmaW5lIGdyYWluIFNWTSByZXNv dXJjZXMKPiAoQ0xfTUVNX1NWTV9GSU5FX0dSQUlOX0JVRkZFUikuIFRoZXNlIHJlc291cmNlcyBj b250YWluIGRlc2NyaXB0b3JzIG9mCj4gY29tcHV0YXRpb25hbCB3b3JrIHRoYXQgbmVlZHMgdG8g YmUgZXhlY3V0ZWQuIGtlcm5fbWFzdGVyIGFuYWx5emVzIGluY29taW5nCj4gd29yayBkZXNjcmlw dG9ycyBhbmQgcG9wdWxhdGVzIGEgcGxhaW4gT0NMIGJ1ZmZlciAobm9uLWZpbmUtZ3JhaW4pIHdp dGggcGF5bG9hZAo+IGZvciBrZXJuX3dvcmtlci4gT25jZSBrZXJuX21hc3RlciBpcyBkb25lLCBr ZXJuX3dvcmtlciBraWNrcy1pbiBhbmQgcHJvY2Vzc2VzCj4gdGhlIHBheWxvYWQgdGhhdCBrZXJu X21hc3RlciBwcm9kdWNlZC4gVGhlc2UgdHdvIGtlcm5lbHMgd29yayBpbiBhIGxvb3AsIG9uZQo+ IGFmdGVyIGFub3RoZXIuIFNpbmNlIG9ubHkga2Vybl9tYXN0ZXIgcmVxdWlyZXMgY29oZXJlbmN5 LCBrZXJuX3dvcmtlciBzaG91bGQKPiBub3QgYmUgZm9yY2VkIHRvIHBheSBmb3IgaXQuIFRoaXMg bWVhbnMgdGhhdCB3ZSBuZWVkIHRvIGhhdmUgdGhlIGFiaWxpdHkgdG8KPiB0b2dnbGUgY29oZXJl bmN5IHN3aXRjaCBvbiBvciBvZmYgcGVyIGVhY2ggR1BVIHN1Ym1pc3Npb246Cj4gKEVOQUJMRSBD T0hFUkVOQ1kpIGtlcm5fbWFzdGVyIC0+IChESVNBQkxFIENPSEVSRU5DWSlrZXJuX3dvcmtlciAt PiAoRU5BQkxFCj4gQ09IRVJFTkNZKSBrZXJuX21hc3RlciAtPiAoRElTQUJMRSBDT0hFUkVOQ1kp a2Vybl93b3JrZXIgLT4gLi4uCj4gCj4gdjI6IEZpeGVkIGNvbXBpbGF0aW9uIHdhcm5pbmcuCj4g djM6IFJlZmFjdG9yZWQgdGhlIHBhdGNoIHRvIGFkZCBJT0NUTCBpbnN0ZWFkIG9mIGV4ZWMgZmxh Zy4KPiB2NDogUmVuYW1lZCBhbmQgZG9jdW1lbnRlZCB0aGUgQVBJIGZsYWcuIFVzZWQgc3RyaWN0 IHZhbHVlcy4KPiAgICAgIFJlbW92ZWQgcmVkdW5kYW50IEdFTV9XQVJOX09OKClzLiBJbXByb3Zl ZCB0byBjb2Rpbmcgc3RhbmRhcmQuCj4gICAgICBJbnRyb2R1Y2VkIGEgbWFjcm8gZm9yIGNoZWNr aW5nIHdoZXRoZXIgaGFyZHdhcmUgc3VwcG9ydHMgdGhlIGZlYXR1cmUuCj4gCj4gQ2M6IEpvb25h cyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KPiBDYzogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IE1pY2hhbCBXaW5pYXJza2kgPG1pY2hhbC53 aW5pYXJza2lAaW50ZWwuY29tPgo+IAo+IEJzcGVjOiAxMTQxOQo+IFNpZ25lZC1vZmYtYnk6IFRv bWFzeiBMaXMgPHRvbWFzei5saXNAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fY29udGV4dC5jIHwgNDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmggfCAgNiArKysrCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCA0OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAg ICAgICB8ICA0ICsrKwo+ICAgaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAg IHwgIDYgKysrKwo+ICAgNiBmaWxlcyBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDA5YWIxMjQuLjdkNGJiZDUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjUyNCw2ICsyNTI0LDcgQEAgaW50ZWxfaW5mbyhjb25z dCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAjZGVmaW5lIEhBU19FRFJB TShkZXZfcHJpdikJKCEhKChkZXZfcHJpdiktPmVkcmFtX2NhcCAmIEVEUkFNX0VOQUJMRUQpKQo+ ICAgI2RlZmluZSBIQVNfV1QoZGV2X3ByaXYpCSgoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgXAo+ ICAgCQkJCSBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAmJiBIQVNfRURSQU0oZGV2X3ByaXYpKQo+ ICsjZGVmaW5lIEhBU19EQVRBX1BPUlRfQ09IRVJFTkNZKGRldl9wcml2KQkoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KQo+ICAgCj4gICAjZGVmaW5lIEhXU19ORUVEU19QSFlTSUNBTChkZXZfcHJp dikJKChkZXZfcHJpdiktPmluZm8uaHdzX25lZWRzX3BoeXNpY2FsKQo+ICAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGIxMDc3MGMuLjZkYjM1MmUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gQEAgLTcxMSw2ICs3 MTEsMjYgQEAgc3RhdGljIGJvb2wgY2xpZW50X2lzX2Jhbm5lZChzdHJ1Y3QgZHJtX2k5MTVfZmls ZV9wcml2YXRlICpmaWxlX3ByaXYpCj4gICAJcmV0dXJuIGF0b21pY19yZWFkKCZmaWxlX3ByaXYt PmJhbl9zY29yZSkgPj0gSTkxNV9DTElFTlRfU0NPUkVfQkFOTkVEOwo+ICAgfQo+ICAgCj4gK3N0 YXRpYyBpbnQgaTkxNV9nZW1fY29udGV4dF9zZXRfZGF0YV9wb3J0X2NvaGVyZW50KHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gaW50 ZWxfbHJfY29udGV4dF9tb2RpZnlfZGF0YV9wb3J0X2NvaGVyZW5jeShjdHgsIHRydWUpOwo+ICsJ aWYgKCFyZXQpCj4gKwkJX19zZXRfYml0KENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5ULCAmY3R4 LT5mbGFncyk7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGk5MTVfZ2Vt X2NvbnRleHRfY2xlYXJfZGF0YV9wb3J0X2NvaGVyZW50KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgpCj4gK3sKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gaW50ZWxfbHJfY29udGV4dF9t b2RpZnlfZGF0YV9wb3J0X2NvaGVyZW5jeShjdHgsIGZhbHNlKTsKPiArCWlmICghcmV0KQo+ICsJ CV9fY2xlYXJfYml0KENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5ULCAmY3R4LT5mbGFncyk7Cj4g KwlyZXR1cm4gcmV0OwoKSXMgdGhlcmUgYSBnb29kIHJlYXNvbiB5b3UgYWxsb3cgdXNlcnNwYWNl IHRvIGtlZXAgZW1pdHRpbmcgdW5saW1pdGVkIApudW1iZXIgb2YgY29tbWFuZHMgd2hpY2ggYWN0 dWFsbHkgZG8gbm90IGNoYW5nZSB0aGUgc3RhdHVzPyBJZiBub3QgCnBsZWFzZSBjb25zaWRlciBn YXRpbmcgdGhlIGNvbW1hbmQgZW1pc3Npb24gd2l0aCAKdGVzdF9hbmRfc2V0X2JpdC90ZXN0X2Fu ZF9jbGVhcl9iaXQuIEhtLi4gYXBhcnQgZXZlbiB3aXRoIHRoYXQgdGhleSAKY291bGQga2VlcCB0 b2dnbGluZyBhZCBpbmZpbml0dW0gd2l0aCBubyByZWFsIHdvcmsgaW4gYmV0d2Vlbi4gSGFzIGl0 IApiZWVuIGNvbnNpZGVyZWQgdG8gb25seSBzYXZlIHRoZSBkZXNpcmVkIHN0YXRlIGluIHNldCBw YXJhbSBhbmQgdGhlbiAKZW1pdCBpdCwgaWYgbmVlZGVkLCBiZWZvcmUgbmV4dCBleGVjYnVmPyBN aW5vciB0aGluZyBpbiBhbnkgY2FzZSwganVzdCAKY3VyaW91cyBzaW5jZSBJIHdhc24ndCBmb2xs b3dpbmcgdGhlIHRocmVhZHMuCgo+ICt9Cj4gKwo+ICAgaW50IGk5MTVfZ2VtX2NvbnRleHRfY3Jl YXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCQkJICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gICB7Cj4gQEAgLTc4NCw2ICs4MDQsNyBAQCBpbnQgaTkx NV9nZW1fY29udGV4dF9kZXN0cm95X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCj4gICBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGUpCj4gICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CgpGZWVsIGZyZWUgdG8gdXNlIHRoZSBsb2NhbCBmb3IgdGhlIG90aGVyIGV4aXN0aW5n IHRvX2k5MTUoZGV2KSBjYWxsIApzaXRlcyBpbiBoZXJlLgoKQWxzbyB1c2UgaTkxNSBmb3IgdGhl IGxvY2FsIG5hbWUuIFVubGVzcyBJOTE1X1JFQUQvV1JJVEUgaXMgdXNlZCBpOTE1IGlzIApwcmVm ZXJyZWQgbm93YWRheXMuCgo+ICAgCXN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVf cHJpdiA9IGZpbGUtPmRyaXZlcl9wcml2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4 dF9wYXJhbSAqYXJncyA9IGRhdGE7Cj4gICAJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsK PiBAQCAtODE4LDYgKzgzOSwxMiBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCWNhc2UgSTkxNV9DT05U RVhUX1BBUkFNX1BSSU9SSVRZOgo+ICAgCQlhcmdzLT52YWx1ZSA9IGN0eC0+c2NoZWQucHJpb3Jp dHk7Cj4gICAJCWJyZWFrOwo+ICsJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fREFUQV9QT1JUX0NP SEVSRU5DWToKPiArCQlpZiAoIUhBU19EQVRBX1BPUlRfQ09IRVJFTkNZKGRldl9wcml2KSkKPiAr CQkJcmV0ID0gLUVOT0RFVjsKPiArCQllbHNlCj4gKwkJCWFyZ3MtPnZhbHVlID0gaTkxNV9nZW1f Y29udGV4dF9pc19kYXRhX3BvcnRfY29oZXJlbnQoY3R4KTsKPiArCQlicmVhazsKPiAgIAlkZWZh dWx0Ogo+ICAgCQlyZXQgPSAtRUlOVkFMOwo+ICAgCQlicmVhazsKPiBAQCAtODMwLDYgKzg1Nyw3 IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCj4gICBpbnQgaTkxNV9nZW1fY29udGV4dF9zZXRwYXJhbV9pb2N0 bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQkJCSAgICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUpCj4gICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CgpBcyB3aXRoIGdldF9wYXJhbS4KCj4gICAJc3RydWN0IGRybV9p OTE1X2ZpbGVfcHJpdmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7Cj4gICAJc3Ry dWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3BhcmFtICphcmdzID0gZGF0YTsKPiAgIAlzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqY3R4Owo+IEBAIC04OTMsNiArOTIxLDE5IEBAIGludCBpOTE1X2dl bV9jb250ZXh0X3NldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCj4gICAJCX0KPiAgIAkJYnJlYWs7Cj4gICAKPiArCWNhc2UgSTkxNV9DT05URVhUX1BBUkFN X0RBVEFfUE9SVF9DT0hFUkVOQ1k6Cj4gKwkJaWYgKGFyZ3MtPnNpemUpCj4gKwkJCXJldCA9IC1F SU5WQUw7Cj4gKwkJZWxzZSBpZiAoIUhBU19EQVRBX1BPUlRfQ09IRVJFTkNZKGRldl9wcml2KSkK PiArCQkJcmV0ID0gLUVOT0RFVjsKPiArCQllbHNlIGlmIChhcmdzLT52YWx1ZSA9PSAxKQo+ICsJ CQlyZXQgPSBpOTE1X2dlbV9jb250ZXh0X3NldF9kYXRhX3BvcnRfY29oZXJlbnQoY3R4KTsKPiAr CQllbHNlIGlmIChhcmdzLT52YWx1ZSA9PSAwKQo+ICsJCQlyZXQgPSBpOTE1X2dlbV9jb250ZXh0 X2NsZWFyX2RhdGFfcG9ydF9jb2hlcmVudChjdHgpOwo+ICsJCWVsc2UKPiArCQkJcmV0ID0gLUVJ TlZBTDsKPiArCQlicmVhazsKPiArCj4gICAJZGVmYXVsdDoKPiAgIAkJcmV0ID0gLUVJTlZBTDsK PiAgIAkJYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2NvbnRleHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaAo+IGlu ZGV4IGIxMTZlNDkuLmU4Y2NiNzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fY29udGV4dC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f Y29udGV4dC5oCj4gQEAgLTEyNiw2ICsxMjYsNyBAQCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCB7 Cj4gICAjZGVmaW5lIENPTlRFWFRfQkFOTkFCTEUJCTMKPiAgICNkZWZpbmUgQ09OVEVYVF9CQU5O RUQJCQk0Cj4gICAjZGVmaW5lIENPTlRFWFRfRk9SQ0VfU0lOR0xFX1NVQk1JU1NJT04JNQo+ICsj ZGVmaW5lIENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5UCTYKPiAgIAo+ICAgCS8qKgo+ICAgCSAq IEBod19pZDogLSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGNvbnRleHQKPiBAQCAtMjU3LDYg KzI1OCwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fY29udGV4dF9zZXRfZm9yY2Vf c2luZ2xlX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZ2VtXwo+ICAgCV9fc2V0X2JpdChDT05URVhU X0ZPUkNFX1NJTkdMRV9TVUJNSVNTSU9OLCAmY3R4LT5mbGFncyk7Cj4gICB9Cj4gICAKPiArc3Rh dGljIGlubGluZSBib29sIGk5MTVfZ2VtX2NvbnRleHRfaXNfZGF0YV9wb3J0X2NvaGVyZW50KHN0 cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gK3sKPiArCXJldHVybiB0ZXN0X2JpdChDT05U RVhUX0RBVEFfUE9SVF9DT0hFUkVOVCwgJmN0eC0+ZmxhZ3MpOwo+ICt9Cj4gKwo+ICAgc3RhdGlj IGlubGluZSBib29sIGk5MTVfZ2VtX2NvbnRleHRfaXNfZGVmYXVsdChjb25zdCBzdHJ1Y3QgaTkx NV9nZW1fY29udGV4dCAqYykKPiAgIHsKPiAgIAlyZXR1cm4gYy0+dXNlcl9oYW5kbGUgPT0gREVG QVVMVF9DT05URVhUX0hBTkRMRTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IGluZGV4IGFi ODlkYWIuLjFmMDM3ZTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0yNTks NiArMjU5LDU1IEBAIGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRvcl91cGRhdGUoc3RydWN0IGk5 MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgIAljZS0+bHJjX2Rlc2MgPSBkZXNjOwo+ICAgfQo+ICAg Cj4gK3N0YXRpYyBpbnQgZW1pdF9zZXRfZGF0YV9wb3J0X2NvaGVyZW5jeShzdHJ1Y3QgaTkxNV9y ZXF1ZXN0ICpyZXEsIGJvb2wgZW5hYmxlKQoKQWZ0ZXIgbXVjaCBkaXNhZ3JlZW1lbnQgd2UgZW5k ZWQgdXAgd2l0aCBycSBhcyB0aGUgY29uc2lzdGVudCBuYW1pbmcgZm9yIApyZXF1ZXN0cy4KCj4g K3sKPiArCXUzMiAqY3M7Cj4gKwlpOTE1X3JlZ190IHJlZzsKPiArCj4gKwlHRU1fQlVHX09OKHJl cS0+ZW5naW5lLT5jbGFzcyAhPSBSRU5ERVJfQ0xBU1MpOwo+ICsJR0VNX0JVR19PTihJTlRFTF9H RU4ocmVxLT5pOTE1KSA8IDkpOwo+ICsKPiArCWNzID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDQp Owo+ICsJaWYgKElTX0VSUihjcykpCj4gKwkJcmV0dXJuIFBUUl9FUlIoY3MpOwo+ICsKPiArCWlm IChJTlRFTF9HRU4ocmVxLT5pOTE1KSA+PSAxMCkKPiArCQlyZWcgPSBDTkxfSERDX0NISUNLRU4w Owo+ICsJZWxzZQo+ICsJCXJlZyA9IEhEQ19DSElDS0VOMDsKPiArCj4gKwkqY3MrKyA9IE1JX0xP QURfUkVHSVNURVJfSU1NKDEpOwo+ICsJKmNzKysgPSBpOTE1X21taW9fcmVnX29mZnNldChyZWcp Owo+ICsJLyogRW5hYmxpbmcgY29oZXJlbmN5IG1lYW5zIGRpc2FibGluZyB0aGUgYml0IHdoaWNo IGZvcmNlcyBpdCBvZmYgKi8KPiArCWlmIChlbmFibGUpCj4gKwkJKmNzKysgPSBfTUFTS0VEX0JJ VF9ESVNBQkxFKEhEQ19GT1JDRV9OT05fQ09IRVJFTlQpOwo+ICsJZWxzZQo+ICsJCSpjcysrID0g X01BU0tFRF9CSVRfRU5BQkxFKEhEQ19GT1JDRV9OT05fQ09IRVJFTlQpOwo+ICsJKmNzKysgPSBN SV9OT09QOwo+ICsKPiArCWludGVsX3JpbmdfYWR2YW5jZShyZXEsIGNzKTsKPiArCj4gKwlyZXR1 cm4gMDsKPiArfQo+ICsKPiAraW50Cj4gK2ludGVsX2xyX2NvbnRleHRfbW9kaWZ5X2RhdGFfcG9y dF9jb2hlcmVuY3koc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiArCQkJCQkgICAgYm9v bCBlbmFibGUpCj4gK3sKPiArCXN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcTsKCnJxIGFzIGFib3Zl LgoKPiArCWludCByZXQ7Cj4gKwo+ICsJcmVxID0gaTkxNV9yZXF1ZXN0X2FsbG9jKGN0eC0+aTkx NS0+ZW5naW5lW1JDU10sIGN0eCk7Cj4gKwlpZiAoSVNfRVJSKHJlcSkpCj4gKwkJcmV0dXJuIFBU Ul9FUlIocmVxKTsKPiArCj4gKwlyZXQgPSBlbWl0X3NldF9kYXRhX3BvcnRfY29oZXJlbmN5KHJl cSwgZW5hYmxlKTsKPiArCj4gKwlpOTE1X3JlcXVlc3RfYWRkKHJlcSk7Cj4gKwo+ICsJcmV0dXJu IHJldDsKPiArfQo+ICsKPiAgIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wcmlvbGlzdCAqCj4gICBsb29r dXBfcHJpb2xpc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgcHJpbykKPiAg IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IGluZGV4IDE1OTMxOTQuLmY2OTY1YWUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAo+IEBAIC0xMDQsNCArMTA0LDggQEAgc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQ7Cj4gICAKPiAgIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXN1bWUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIAo+ICtpbnQKPiAraW50ZWxf bHJfY29udGV4dF9tb2RpZnlfZGF0YV9wb3J0X2NvaGVyZW5jeShzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4LAo+ICsJCQkJCSAgICBib29sIGVuYWJsZSk7Cj4gKwo+ICAgI2VuZGlmIC8qIF9J TlRFTF9MUkNfSF8gKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5o IGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggN2Y1NjM0Yy4uZTY3N2JlYSAx MDA2NDQKPiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiArKysgYi9pbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmgKPiBAQCAtMTQ1Niw2ICsxNDU2LDEyIEBAIHN0cnVjdCBkcm1f aTkxNV9nZW1fY29udGV4dF9wYXJhbSB7Cj4gICAjZGVmaW5lICAgSTkxNV9DT05URVhUX01BWF9V U0VSX1BSSU9SSVRZCTEwMjMgLyogaW5jbHVzaXZlICovCj4gICAjZGVmaW5lICAgSTkxNV9DT05U RVhUX0RFRkFVTFRfUFJJT1JJVFkJCTAKPiAgICNkZWZpbmUgICBJOTE1X0NPTlRFWFRfTUlOX1VT RVJfUFJJT1JJVFkJLTEwMjMgLyogaW5jbHVzaXZlICovCj4gKy8qCj4gKyAqIFdoZW4gZGF0YSBw b3J0IGxldmVsIGNvaGVyZW5jeSBpcyBlbmFibGVkLCB0aGUgR1BVIHdpbGwgdXBkYXRlIG1lbW9y eQo+ICsgKiBidWZmZXJzIHNoYXJlZCB3aXRoIENQVSwgYnkgZm9yY2luZyBpbnRlcm5hbCBjYWNo ZSB1bml0cyB0byBzZW5kIG1lbW9yeQo+ICsgKiB3cml0ZXMgdG8gcmVhbCBSQU0gZmFzdGVyLiBL ZWVwaW5nIHN1Y2ggY29oZXJlbmN5IGhhcyBwZXJmb3JtYW5jZSBjb3N0LgoKSXMgdGhpcyBjb21t ZW50IGNvcnJlY3Q/IElzIGl0IGFjdHVhbGx5IHNlbmRpbmcgbWVtb3J5IHdyaXRlcyB0byBfUkFN XywgCm9yIGp1c3QgdGhlIGNvaGVyZW5jeSBtb2RlIGVuYWJsZWQsIGV2ZW4gaWYgb25seSB0YXJn ZXR0aW5nIENQVSBvciAKc2hhcmVkIGNhY2hlLCB3aGljaCBhZGRzIGEgY29zdD8KCnMvS2VlcGlu ZyBzdWNoIGNvaGVyZW5jeSBoYXMgcGVyZm9ybWFuY2UgY29zdC4vRW5hYmxpbmcgZGF0YSBwb3J0 IApjb2hlcmVuY3kgaGFzIGEgcGVyZm9ybWFuY2UgY29zdC4vID8gT3IgImNhbiBoYXZlIGEgcGVy Zm9ybWFuY2UgY29zdCI/Cgo+ICsgKi8KPiArI2RlZmluZSBJOTE1X0NPTlRFWFRfUEFSQU1fREFU QV9QT1JUX0NPSEVSRU5DWQkweDcKPiAgIAlfX3U2NCB2YWx1ZTsKPiAgIH07Cj4gICAKPiAKClNp bmNlIEkgdW5kZXJzdGFuZCB0aGlzIGRlc2lnbiBoYXMgYmVlbiBhcHByb3ZlZCBhbHJlYWR5IG9u IHRoZSBoaWdoIApsZXZlbCwgYW5kIGFzIHlvdSBjYW4gc2VlIEkgb25seSBoYWQgc29tZSBtaW5v ciBjb21tZW50cyB0byBhZGQsIEkgY2FuIApzYXkgdGhhdCB0aGUgcGF0Y2ggaW4gcHJpbmNpcGxl IGxvb2tzIG9rYXkgdG8gbWUuCgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=