From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v6] drm/i915: Add IOCTL Param to control data port coherency. Date: Mon, 16 Jul 2018 14:35:42 +0100 Message-ID: References: <1522163879-10837-1-git-send-email-tomasz.lis@intel.com> <1531746436-9696-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 mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id CCD676E154 for ; Mon, 16 Jul 2018 13:35:44 +0000 (UTC) In-Reply-To: <1531746436-9696-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 List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE2LzA3LzIwMTggMTQ6MDcsIFRvbWFzeiBMaXMgd3JvdGU6Cj4gVGhlIHBhdGNoIGFkZHMg 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 aW5nIHdoZXRoZXIgaGFyZHdhcmUgc3VwcG9ydHMgdGhlIGZlYXR1cmUuCj4gdjU6IFJlbmFtZWQg c29tZSBsb2NhbHMuIE1hZGUgdGhlIGZsYWcgd3JpdGUgdG8gYmUgbGF6eS4KPiAgICAgIFVwZGF0 ZWQgY29tbWVudHMgdG8gcmVtb3ZlIG1pc2NvbmNlcHRpb25zLiBBZGRlZCBnZW4xMSBzdXBwb3J0 Lgo+IHY2OiBNb3ZlZCB0aGUgZmxhZyB3cml0ZSB0byBnZW44X2VuaXRfZmx1c2hfcmVuZGVyKCku IFJlbmFtZWQgc29tZSBmdW5jdGlvbnMuCj4gICAgICBNb3ZlZCBhbGwgZmxhZ3MgY2hlY2tpbmcg dG8gb25lIHBsYWNlLiBBZGRlZCBtdXRleCBjaGVjay4KPiAKPiBDYzogSm9vbmFzIExhaHRpbmVu IDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8 dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KPiBDYzogTWljaGFsIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBp bnRlbC5jb20+Cj4gCj4gQnNwZWM6IDExNDE5Cj4gQnNwZWM6IDE5MTc1Cj4gU2lnbmVkLW9mZi1i eTogVG9tYXN6IExpcyA8dG9tYXN6Lmxpc0BpbnRlbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgMSArCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgfCAyOSArKysrKysrKysrKysrLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuaCB8IDE3ICsrKysrKysrKwo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgIHwgNjYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystCj4gICBpbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggICAgICAgICAg ICAgfCAgNyArKysrCj4gICA1IGZpbGVzIGNoYW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDRmYjkzNzMuLmJh ZTM5OTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjUyNCw2ICsyNTI0LDcg QEAgaW50ZWxfaW5mbyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g ICAjZGVmaW5lIEhBU19FRFJBTShkZXZfcHJpdikJKCEhKChkZXZfcHJpdiktPmVkcmFtX2NhcCAm IEVEUkFNX0VOQUJMRUQpKQo+ICAgI2RlZmluZSBIQVNfV1QoZGV2X3ByaXYpCSgoSVNfSEFTV0VM TChkZXZfcHJpdikgfHwgXAo+ICAgCQkJCSBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAmJiBIQVNf RURSQU0oZGV2X3ByaXYpKQo+ICsjZGVmaW5lIEhBU19EQVRBX1BPUlRfQ09IRVJFTkNZKGRldl9w cml2KQkoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ICAgCj4gICAjZGVmaW5lIEhXU19ORUVE U19QSFlTSUNBTChkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaHdzX25lZWRzX3BoeXNpY2Fs KQo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IGIx MDc3MGMuLjQ0ZWJjMzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jCj4gQEAgLTc4NCw2ICs3ODQsNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9kZXN0cm95X2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICBpbnQgaTkxNV9nZW1f Y29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAo+ICAgCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gICB7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGV2KTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf ZmlsZV9wcml2YXRlICpmaWxlX3ByaXYgPSBmaWxlLT5kcml2ZXJfcHJpdjsKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2NvbnRleHRfcGFyYW0gKmFyZ3MgPSBkYXRhOwo+ICAgCXN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHg7Cj4gQEAgLTgwNCwxMCArODA1LDEwIEBAIGludCBpOTE1X2dlbV9j b250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs Cj4gICAJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fR1RUX1NJWkU6Cj4gICAJCWlmIChjdHgtPnBw Z3R0KQo+ICAgCQkJYXJncy0+dmFsdWUgPSBjdHgtPnBwZ3R0LT52bS50b3RhbDsKPiAtCQllbHNl IGlmICh0b19pOTE1KGRldiktPm1tLmFsaWFzaW5nX3BwZ3R0KQo+IC0JCQlhcmdzLT52YWx1ZSA9 IHRvX2k5MTUoZGV2KS0+bW0uYWxpYXNpbmdfcHBndHQtPnZtLnRvdGFsOwo+ICsJCWVsc2UgaWYg KGk5MTUtPm1tLmFsaWFzaW5nX3BwZ3R0KQo+ICsJCQlhcmdzLT52YWx1ZSA9IGk5MTUtPm1tLmFs aWFzaW5nX3BwZ3R0LT52bS50b3RhbDsKPiAgIAkJZWxzZQo+IC0JCQlhcmdzLT52YWx1ZSA9IHRv X2k5MTUoZGV2KS0+Z2d0dC52bS50b3RhbDsKPiArCQkJYXJncy0+dmFsdWUgPSBpOTE1LT5nZ3R0 LnZtLnRvdGFsOwo+ICAgCQlicmVhazsKPiAgIAljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9OT19F UlJPUl9DQVBUVVJFOgo+ICAgCQlhcmdzLT52YWx1ZSA9IGk5MTVfZ2VtX2NvbnRleHRfbm9fZXJy b3JfY2FwdHVyZShjdHgpOwo+IEBAIC04MTgsNiArODE5LDEyIEBAIGludCBpOTE1X2dlbV9jb250 ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4g ICAJY2FzZSBJOTE1X0NPTlRFWFRfUEFSQU1fUFJJT1JJVFk6Cj4gICAJCWFyZ3MtPnZhbHVlID0g Y3R4LT5zY2hlZC5wcmlvcml0eTsKPiAgIAkJYnJlYWs7Cj4gKwljYXNlIEk5MTVfQ09OVEVYVF9Q QVJBTV9EQVRBX1BPUlRfQ09IRVJFTkNZOgo+ICsJCWlmICghSEFTX0RBVEFfUE9SVF9DT0hFUkVO Q1koaTkxNSkpCj4gKwkJCXJldCA9IC1FTk9ERVY7Cj4gKwkJZWxzZQo+ICsJCQlhcmdzLT52YWx1 ZSA9IGk5MTVfZ2VtX2NvbnRleHRfaXNfZGF0YV9wb3J0X2NvaGVyZW50KGN0eCk7Cj4gKwkJYnJl YWs7Cj4gICAJZGVmYXVsdDoKPiAgIAkJcmV0ID0gLUVJTlZBTDsKPiAgIAkJYnJlYWs7Cj4gQEAg LTgzMCw2ICs4MzcsNyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRwYXJhbV9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgaW50IGk5MTVfZ2VtX2NvbnRleHRf c2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJ CQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlKQo+ICAgewo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSB0b19pOTE1KGRldik7Cj4gICAJc3RydWN0IGRybV9pOTE1X2ZpbGVfcHJp dmF0ZSAqZmlsZV9wcml2ID0gZmlsZS0+ZHJpdmVyX3ByaXY7Cj4gICAJc3RydWN0IGRybV9pOTE1 X2dlbV9jb250ZXh0X3BhcmFtICphcmdzID0gZGF0YTsKPiAgIAlzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4Owo+IEBAIC04ODAsNyArODg4LDcgQEAgaW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0 cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAo+ICAg CQkJaWYgKGFyZ3MtPnNpemUpCj4gICAJCQkJcmV0ID0gLUVJTlZBTDsKPiAtCQkJZWxzZSBpZiAo ISh0b19pOTE1KGRldiktPmNhcHMuc2NoZWR1bGVyICYgSTkxNV9TQ0hFRFVMRVJfQ0FQX1BSSU9S SVRZKSkKPiArCQkJZWxzZSBpZiAoIShpOTE1LT5jYXBzLnNjaGVkdWxlciAmIEk5MTVfU0NIRURV TEVSX0NBUF9QUklPUklUWSkpCj4gICAJCQkJcmV0ID0gLUVOT0RFVjsKPiAgIAkJCWVsc2UgaWYg KHByaW9yaXR5ID4gSTkxNV9DT05URVhUX01BWF9VU0VSX1BSSU9SSVRZIHx8Cj4gICAJCQkJIHBy aW9yaXR5IDwgSTkxNV9DT05URVhUX01JTl9VU0VSX1BSSU9SSVRZKQo+IEBAIC04OTMsNiArOTAx LDE5IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X3NldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCX0KPiAgIAkJYnJlYWs7Cj4gICAKPiArCWNhc2Ug STkxNV9DT05URVhUX1BBUkFNX0RBVEFfUE9SVF9DT0hFUkVOQ1k6Cj4gKwkJaWYgKGFyZ3MtPnNp emUpCj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4gKwkJZWxzZSBpZiAoIUhBU19EQVRBX1BPUlRfQ09I RVJFTkNZKGk5MTUpKQo+ICsJCQlyZXQgPSAtRU5PREVWOwo+ICsJCWVsc2UgaWYgKGFyZ3MtPnZh bHVlID09IDEpCj4gKwkJCWk5MTVfZ2VtX2NvbnRleHRfc2V0X2RhdGFfcG9ydF9jb2hlcmVudChj dHgpOwo+ICsJCWVsc2UgaWYgKGFyZ3MtPnZhbHVlID09IDApCj4gKwkJCWk5MTVfZ2VtX2NvbnRl eHRfY2xlYXJfZGF0YV9wb3J0X2NvaGVyZW50KGN0eCk7Cj4gKwkJZWxzZQo+ICsJCQlyZXQgPSAt RUlOVkFMOwo+ICsJCWJyZWFrOwo+ICsKPiAgIAlkZWZhdWx0Ogo+ICAgCQlyZXQgPSAtRUlOVkFM Owo+ICAgCQlicmVhazsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCj4g aW5kZXggYjExNmU0OS4uOTMxMjM0MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmgKPiBAQCAtMTI2LDYgKzEyNiw4IEBAIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 IHsKPiAgICNkZWZpbmUgQ09OVEVYVF9CQU5OQUJMRQkJMwo+ICAgI2RlZmluZSBDT05URVhUX0JB Tk5FRAkJCTQKPiAgICNkZWZpbmUgQ09OVEVYVF9GT1JDRV9TSU5HTEVfU1VCTUlTU0lPTgk1Cj4g KyNkZWZpbmUgQ09OVEVYVF9EQVRBX1BPUlRfQ09IRVJFTlRfUkVRVUVTVEVECTYKPiArI2RlZmlu ZSBDT05URVhUX0RBVEFfUE9SVF9DT0hFUkVOVF9BQ1RJVkUJNwo+ICAgCj4gICAJLyoqCj4gICAJ ICogQGh3X2lkOiAtIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29udGV4dAo+IEBAIC0yNTcs NiArMjU5LDIxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9jb250ZXh0X3NldF9mb3Jj ZV9zaW5nbGVfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9nZW1fCj4gICAJX19zZXRfYml0KENPTlRF WFRfRk9SQ0VfU0lOR0xFX1NVQk1JU1NJT04sICZjdHgtPmZsYWdzKTsKPiAgIH0KPiAgIAo+ICtz dGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fY29udGV4dF9pc19kYXRhX3BvcnRfY29oZXJlbnQo c3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiArewo+ICsJcmV0dXJuIHRlc3RfYml0KENP TlRFWFRfREFUQV9QT1JUX0NPSEVSRU5UX1JFUVVFU1RFRCwgJmN0eC0+ZmxhZ3MpOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgaTkxNV9nZW1fY29udGV4dF9zZXRfZGF0YV9wb3J0X2Nv aGVyZW50KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gK3sKPiArCV9fc2V0X2JpdChD T05URVhUX0RBVEFfUE9SVF9DT0hFUkVOVF9SRVFVRVNURUQsICZjdHgtPmZsYWdzKTsKPiArfQo+ ICsKPiArc3RhdGljIGlubGluZSB2b2lkIGk5MTVfZ2VtX2NvbnRleHRfY2xlYXJfZGF0YV9wb3J0 X2NvaGVyZW50KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4gK3sKPiArCV9fY2xlYXJf Yml0KENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5UX1JFUVVFU1RFRCwgJmN0eC0+ZmxhZ3MpOwo+ ICt9Cj4gKwo+ICAgc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX2NvbnRleHRfaXNfZGVmYXVs dChjb25zdCBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqYykKPiAgIHsKPiAgIAlyZXR1cm4gYy0+ dXNlcl9oYW5kbGUgPT0gREVGQVVMVF9DT05URVhUX0hBTkRMRTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IGluZGV4IDZmZWY5ZDEuLjZhMDhlMTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwo+IEBAIC0yNTksNiArMjU5LDYzIEBAIGludGVsX2xyX2NvbnRleHRfZGVzY3JpcHRv cl91cGRhdGUoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgIAljZS0+bHJjX2Rlc2Mg PSBkZXNjOwo+ICAgfQo+ICAgCj4gK3N0YXRpYyBpbnQgZW1pdF9zZXRfZGF0YV9wb3J0X2NvaGVy ZW5jeShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSwgYm9vbCBlbmFibGUpCj4gK3sKPiArCXUzMiAq Y3M7Cj4gKwlpOTE1X3JlZ190IHJlZzsKPiArCj4gKwlHRU1fQlVHX09OKHJxLT5lbmdpbmUtPmNs YXNzICE9IFJFTkRFUl9DTEFTUyk7Cj4gKwlHRU1fQlVHX09OKElOVEVMX0dFTihycS0+aTkxNSkg PCA5KTsKPiArCj4gKwljcyA9IGludGVsX3JpbmdfYmVnaW4ocnEsIDQpOwo+ICsJaWYgKElTX0VS UihjcykpCj4gKwkJcmV0dXJuIFBUUl9FUlIoY3MpOwo+ICsKPiArCWlmIChJTlRFTF9HRU4ocnEt Pmk5MTUpID49IDExKQo+ICsJCXJlZyA9IElDTF9IRENfTU9ERTsKPiArCWVsc2UgaWYgKElOVEVM X0dFTihycS0+aTkxNSkgPj0gMTApCj4gKwkJcmVnID0gQ05MX0hEQ19DSElDS0VOMDsKPiArCWVs c2UKPiArCQlyZWcgPSBIRENfQ0hJQ0tFTjA7Cj4gKwo+ICsJKmNzKysgPSBNSV9MT0FEX1JFR0lT VEVSX0lNTSgxKTsKPiArCSpjcysrID0gaTkxNV9tbWlvX3JlZ19vZmZzZXQocmVnKTsKPiArCS8q IEVuYWJsaW5nIGNvaGVyZW5jeSBtZWFucyBkaXNhYmxpbmcgdGhlIGJpdCB3aGljaCBmb3JjZXMg aXQgb2ZmICovCj4gKwlpZiAoZW5hYmxlKQo+ICsJCSpjcysrID0gX01BU0tFRF9CSVRfRElTQUJM RShIRENfRk9SQ0VfTk9OX0NPSEVSRU5UKTsKPiArCWVsc2UKPiArCQkqY3MrKyA9IF9NQVNLRURf QklUX0VOQUJMRShIRENfRk9SQ0VfTk9OX0NPSEVSRU5UKTsKPiArCSpjcysrID0gTUlfTk9PUDsK PiArCj4gKwlpbnRlbF9yaW5nX2FkdmFuY2UocnEsIGNzKTsKPiArCj4gKwlyZXR1cm4gMDsKPiAr fQo+ICsKPiArc3RhdGljIGludAo+ICtpbnRlbF9scl9jb250ZXh0X3VwZGF0ZV9kYXRhX3BvcnRf Y29oZXJlbmN5KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9n ZW1fY29udGV4dCAqY3R4ID0gcnEtPmdlbV9jb250ZXh0Owo+ICsJYm9vbCBlbmFibGUgPSB0ZXN0 X2JpdChDT05URVhUX0RBVEFfUE9SVF9DT0hFUkVOVF9SRVFVRVNURUQsICZjdHgtPmZsYWdzKTsK PiArCWludCByZXQ7Cj4gKwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcnEtPmk5MTUtPmRybS5z dHJ1Y3RfbXV0ZXgpOwo+ICsKPiArCWlmICh0ZXN0X2JpdChDT05URVhUX0RBVEFfUE9SVF9DT0hF UkVOVF9BQ1RJVkUsICZjdHgtPmZsYWdzKSA9PSBlbmFibGUpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ ICsJcmV0ID0gZW1pdF9zZXRfZGF0YV9wb3J0X2NvaGVyZW5jeShycSwgZW5hYmxlKTsKPiArCj4g KwlpZiAoIXJldCkgewo+ICsJCWlmIChlbmFibGUpCj4gKwkJCV9fc2V0X2JpdChDT05URVhUX0RB VEFfUE9SVF9DT0hFUkVOVF9BQ1RJVkUsICZjdHgtPmZsYWdzKTsKPiArCQllbHNlCj4gKwkJCV9f Y2xlYXJfYml0KENPTlRFWFRfREFUQV9QT1JUX0NPSEVSRU5UX0FDVElWRSwgJmN0eC0+ZmxhZ3Mp Owo+ICsJfQo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gICBzdGF0aWMgc3RydWN0IGk5 MTVfcHJpb2xpc3QgKgo+ICAgbG9va3VwX3ByaW9saXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwgaW50IHByaW8pCj4gICB7Cj4gQEAgLTIxMzMsNyArMjE5MCw3IEBAIHN0YXRpYyBp bnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ ICAgCQlpOTE1X2dndHRfb2Zmc2V0KGVuZ2luZS0+c2NyYXRjaCkgKyAyICogQ0FDSEVMSU5FX0JZ VEVTOwo+ICAgCWJvb2wgdmZfZmx1c2hfd2EgPSBmYWxzZSwgZGNfZmx1c2hfd2EgPSBmYWxzZTsK PiAgIAl1MzIgKmNzLCBmbGFncyA9IDA7Cj4gLQlpbnQgbGVuOwo+ICsJaW50IGVyciwgbGVuOwo+ ICAgCj4gICAJZmxhZ3MgfD0gUElQRV9DT05UUk9MX0NTX1NUQUxMOwo+ICAgCj4gQEAgLTIxNjQs NiArMjIyMSwxMyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9mbHVzaF9yZW5kZXIoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcmVxdWVzdCwKPiAgIAkJLyogV2FGb3JHQU1IYW5nOmtibCAqLwo+ICAgCQlp ZiAoSVNfS0JMX1JFVklEKHJlcXVlc3QtPmk5MTUsIDAsIEtCTF9SRVZJRF9CMCkpCj4gICAJCQlk Y19mbHVzaF93YSA9IHRydWU7Cj4gKwo+ICsJCS8qIEVtaXQgdGhlIHN3aXRjaCBvZiBkYXRhIHBv cnQgY29oZXJlbmN5IHN0YXRlIGlmIG5lZWRlZCAqLwo+ICsJCWVyciA9IGludGVsX2xyX2NvbnRl eHRfdXBkYXRlX2RhdGFfcG9ydF9jb2hlcmVuY3kocmVxdWVzdCk7Cj4gKwkJaWYgKEdFTV9XQVJO X09OKGVycikpIHsKPiArCQkJRFJNX0RFQlVHKCJEYXRhIFBvcnQgQ29oZXJlbmN5IHRvZ2dsZSBm YWlsZWQuXG4iKTsKPiArCQkJcmV0dXJuIGVycjsKPiArCQl9Cj4gICAJfQo+ICAgCj4gICAJbGVu ID0gNjsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggN2Y1NjM0Yy4uNmVjZTc1OSAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmgKPiBAQCAtMTQ1Niw2ICsxNDU2LDEzIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1f Y29udGV4dF9wYXJhbSB7Cj4gICAjZGVmaW5lICAgSTkxNV9DT05URVhUX01BWF9VU0VSX1BSSU9S SVRZCTEwMjMgLyogaW5jbHVzaXZlICovCj4gICAjZGVmaW5lICAgSTkxNV9DT05URVhUX0RFRkFV TFRfUFJJT1JJVFkJCTAKPiAgICNkZWZpbmUgICBJOTE1X0NPTlRFWFRfTUlOX1VTRVJfUFJJT1JJ VFkJLTEwMjMgLyogaW5jbHVzaXZlICovCj4gKy8qCj4gKyAqIFdoZW4gZGF0YSBwb3J0IGxldmVs IGNvaGVyZW5jeSBpcyBlbmFibGVkLCB0aGUgR1BVIHdpbGwgdXBkYXRlIG1lbW9yeQo+ICsgKiBi dWZmZXJzIHNoYXJlZCB3aXRoIENQVSwgYnkgZm9yY2luZyBpbnRlcm5hbCBjYWNoZSB1bml0cyB0 byBzZW5kIG1lbW9yeQo+ICsgKiB3cml0ZXMgdG8gaGlnaGVyIGxldmVsIGNhY2hlcyBmYXN0ZXIu IEVuYWJsaW5nIGRhdGEgcG9ydCBjb2hlcmVuY3kgaGFzCj4gKyAqIGEgcGVyZm9ybWFuY2UgY29z dC4KPiArICovCj4gKyNkZWZpbmUgSTkxNV9DT05URVhUX1BBUkFNX0RBVEFfUE9SVF9DT0hFUkVO Q1kJMHg3Cj4gICAJX191NjQgdmFsdWU7Cj4gICB9Owo+ICAgCj4gCgpMb29rcyBnb29kIHRvIG1l IQoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ CgpSZWdhcmRzLAoKVHZydGtvCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK