From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v4 6/6] drm/i915: Add skl_check_nv12_surface for NV12 Date: Thu, 19 Apr 2018 16:19:54 +0200 Message-ID: References: <1524024493-23173-1-git-send-email-vidya.srinivas@intel.com> <1524024493-23173-7-git-send-email-vidya.srinivas@intel.com> <20180418153256.GV17795@intel.com> <9be96a32-cffa-5517-3363-461e882380be@linux.intel.com> <20180418183556.GY17795@intel.com> <20180419112250.GC17795@intel.com> <6142ae0b-a9da-f553-2726-632d44d83168@linux.intel.com> <20180419115007.GF17795@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2D98F6E045 for ; Thu, 19 Apr 2018 14:19:59 +0000 (UTC) In-Reply-To: <20180419115007.GF17795@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T3AgMTktMDQtMTggb20gMTM6NTAgc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gT24gVGh1LCBB cHIgMTksIDIwMTggYXQgMDE6MzA6MzJQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6 Cj4+IE9wIDE5LTA0LTE4IG9tIDEzOjIyIHNjaHJlZWYgVmlsbGUgU3lyasOkbMOkOgo+Pj4gT24g VGh1LCBBcHIgMTksIDIwMTggYXQgMDI6MzY6NDJBTSArMDAwMCwgU3Jpbml2YXMsIFZpZHlhIHdy b3RlOgo+Pj4+Cj4+Pj4KPj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPj4+Pj4gRnJv bTogVmlsbGUgU3lyasOkbMOkIFttYWlsdG86dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb21d Cj4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBBcHJpbCAxOSwgMjAxOCAxMjowNiBBTQo+Pj4+PiBUbzog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4+ Pj4gQ2M6IFNyaW5pdmFzLCBWaWR5YSA8dmlkeWEuc3Jpbml2YXNAaW50ZWwuY29tPjsgaW50ZWwt Cj4+Pj4+IGdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4gU3ViamVjdDogUmU6IFtJbnRl bC1nZnhdIFtQQVRDSCB2NCA2LzZdIGRybS9pOTE1OiBBZGQKPj4+Pj4gc2tsX2NoZWNrX252MTJf c3VyZmFjZSBmb3IgTlYxMgo+Pj4+PiBPbiBXZWQsIEFwciAxOCwgMjAxOCBhdCAwODowNjo1N1BN ICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPj4+Pj4+IE9wIDE4LTA0LTE4IG9tIDE3 OjMyIHNjaHJlZWYgVmlsbGUgU3lyasOkbMOkOgo+Pj4+Pj4+IE9uIFdlZCwgQXByIDE4LCAyMDE4 IGF0IDA5OjM4OjEzQU0gKzA1MzAsIFZpZHlhIFNyaW5pdmFzIHdyb3RlOgo+Pj4+Pj4+PiBGcm9t OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPG1h aWx0bzptYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Pgo+Pj4+Pj4+PiBXZSBza2lw IHNyYyB0cnVuY3Rpb24vYWRqdXN0bWVudHMgZm9yCj4+Pj4+Pj4+IE5WMTIgY2FzZSBhbmQgaGFu ZGxlIHRoZSBzaXplcyBkaXJlY3RseS4KPj4+Pj4+Pj4gV2l0aG91dCB0aGlzLCBwaXBlIGZpZm8g dW5kZXJydW5zIGFyZSBzZWVuIG9uIEFQTC9LQkwuCj4+Pj4+Pj4+IHYyOiBGb3IgTlYxMiwgbWFr aW5nIHRoZSBzcmMgY29vcmRpbmF0ZXMgbXVsdGlwbGllciBvZiA0Cj4+Pj4+Pj4+IHYzOiBNb3Zp bmcgYWxsIHRoZSBzcmMgY29vcmRzIGhhbmRsaW5nIGNvZGUgZm9yIE5WMTIgdG8KPj4+Pj4+Pj4g c2tsX2NoZWNrX252MTJfc3VyZmFjZQo+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExh bmtob3JzdAo+Pj4+Pj4+PiA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPG1haWx0 bzptYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Pgo+Pj4+Pj4+PiBTaWduZWQtb2Zm LWJ5OiBWaWR5YSBTcmluaXZhcyA8dmlkeWEuc3Jpbml2YXNAaW50ZWwuY29tPG1haWx0bzp2aWR5 YS5zcmluaXZhc0BpbnRlbC5jb20+Pgo+Pj4+Pj4+PiAtLS0KPj4+Pj4+Pj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDM5Cj4+Pj4+Pj4+ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+Pj4+Pj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf c3ByaXRlLmMgIHwgMTUgKysrKysrKysrKy0tLS0KPj4+Pj4+Pj4gIDIgZmlsZXMgY2hhbmdlZCwg NTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKPj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4+Pj4+PiBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+Pj4+Pj4+PiBpbmRleCA5MjU0MDJlLi5iOGRiYWNh IDEwMDY0NAo+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ Pj4+Pj4+IEBAIC0zMTE4LDYgKzMxMTgsNDIgQEAgc3RhdGljIGludCBza2xfY2hlY2tfbWFpbl9z dXJmYWNlKGNvbnN0Cj4+Pj4+IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ Pj4+Pj4+PiAgcmV0dXJuIDA7Cj4+Pj4+Pj4+ICB9Cj4+Pj4+Pj4+ICtzdGF0aWMgaW50Cj4+Pj4+ Pj4+ICtza2xfY2hlY2tfbnYxMl9zdXJmYWNlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkgewo+Pj4+Pj4+PiAr ICAgICAgICAgICAgICAgIGludCBjcnRjX3gyID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y194ICsg cGxhbmVfc3RhdGUtPmJhc2UuY3J0Y193Owo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgIGludCBj cnRjX3kyID0gcGxhbmVfc3RhdGUtPmJhc2UuY3J0Y195ICsKPj4+Pj4+Pj4gK3BsYW5lX3N0YXRl LT5iYXNlLmNydGNfaDsKPj4+Pj4+Pj4gKwo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgIGlmICgo KHBsYW5lX3N0YXRlLT5iYXNlLnNyY194ID4+IDE2KSAlIDQpICE9IDAgfHwKPj4+Pj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgKChwbGFuZV9zdGF0ZS0+YmFzZS5zcmNfeSA+PiAxNikgJSA0KSAh PSAwIHx8Cj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICgocGxhbmVfc3RhdGUtPmJhc2Uu c3JjX3cgPj4gMTYpICUgNCkgIT0gMCB8fAo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAo KHBsYW5lX3N0YXRlLT5iYXNlLnNyY19oID4+IDE2KSAlIDQpICE9IDApIHsKPj4+Pj4+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX0RFQlVHX0tNUygic3JjIGNvb3JkcyBt dXN0IGJlIG11bHRpcGxlIG9mIDQgZm9yCj4+Pj4+IE5WMTJcbiIpOwo+Pj4+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+Pj4+Pj4gKyAgICAg ICAgICAgICAgICB9Cj4+Pj4+Pj4gSSBkb24ndCByZWFsbHkgc2VlIHdoeSB3ZSBzaG91bGQgY2hl Y2sgdGhlc2UuIFRoZSBjbGlwcGVkCj4+Pj4+Pj4gY29vcmRpbmF0ZXMgYXJlIHdoYXQgbWF0dGVy cy4KPj4+Pj4+IFRvIHByb3BhZ2F0ZSBvdXIgbGltaXRzIHRvIHRoZSB1c2Vyc3BhY2UuIEkgdGhp bmsgd2Ugc2hvdWxkIGRvIGl0IGZvcgo+Pj4+Pj4gYWxsIGZvcm1hdHMsIGJ1dCBOVjEyIGlzIHRo ZSBmaXJzdCBZVVYgZm9ybWF0IHdlIGhhdmUgdGVzdHMgZm9yLiBJZiB3ZQo+Pj4+Pj4gY291bGQg d2Ugc2hvdWxkIGRvIHNvbWV0aGluZyBzaW1pbGFyIGZvciB0aGUgb3RoZXIgWVVWIGZvcm1hdHMs IGJ1dCB0aGV5Cj4+Pj4+IGhhdmUgZGlmZmVyZW50IHJlcXVpcmVtZW50cy4KPj4+Pj4+IEluIGNh c2Ugb2YgTlYxMiB3ZSBkb24ndCBoYXZlIGV4aXN0aW5nIHVzZXJzcGFjZSwgdGhlcmUgd2lsbCBi ZQo+Pj4+Pj4gbm90aGluZyB0aGF0IGJyZWFrcyBpZiB3ZSBlbmZvcmNlIGxpbWl0cyBmcm9tIHRo ZSBzdGFydC4KPj4+Pj4gQnV0IHdoYXQgYWJvdXQgc3ViLXBpeGVsIGNvb3JkaW5hdGVzPyBZb3Un cmUgdG90YWxseSBpZ25vcmluZyB0aGVtIGhlcmUuCj4+Pj4+IFdlIG5lZWQgdG8gY29tZSB1cCB3 aXRoIHNvbWUgcHJvcGVyIHJ1bGVzIGZvciB0aGlzIHN0dWZmLgo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ ICsgICAgICAgICAgICAgICAgLyogQ2xpcHBpbmcgd291bGQgY2F1c2UgYSAxLTMgcGl4ZWwgZ2Fw IGF0IHRoZSBlZGdlIG9mIHRoZSBzY3JlZW4/ICovCj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAg aWYgKChjcnRjX3gyID4gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdyAmJiBjcnRjX3N0YXRlLT5waXBl X3NyY193ICUKPj4+Pj4gNCkgfHwKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgKGNydGNf eTIgPiBjcnRjX3N0YXRlLT5waXBlX3NyY19oICYmIGNydGNfc3RhdGUtPnBpcGVfc3JjX2ggJSA0 KSkKPj4+Pj4gewo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1f REVCVUdfS01TKCJJdCdzIG5vdCBwb3NzaWJsZSB0byBjbGlwICV1LCV1IHRvCj4+Pj4+ICV1LCV1 XG4iLAo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3J0Y194MiwgY3J0Y195MiwKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNydGNfc3RhdGUtPnBpcGVfc3Jj X3csIGNydGNfc3RhdGUtPnBpcGVfc3JjX2gpOwo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICB9 Cj4+Pj4+Pj4gV2h5IHNob3VsZCB3ZSBjYXJlPyBUaGUgY3VycmVudCBjb2RlIGFscmVhZHkgcGxh eXMgaXQgZmFzdCBhbmQgbG9vc2UKPj4+Pj4+PiBhbmQgYWxsb3dzIHRoZSBkc3QgcmVjdGFuZ2xl IHRvIHNocmluayB0byBhY2NvbW9kYXRlIHRoZSBodyBsaW1pdHMuCj4+Pj4+Pj4gSWYgd2Ugd2Fu dCB0byBjaGFuZ2UgdGhhdCB3ZSBzaG91bGQgY2hhbmdlIGl0IHVuaXZlcnNhbGx5Lgo+Pj4+Pj4g VW5mb3J0dW5hdGVseSBmb3IgdGhlIG90aGVyIGZvcm1hdHMgd2UgYWxyZWFkeSBoYXZlIGFuIGV4 aXN0aW5nCj4+Pj4+PiB1c2Vyc3BhY2UKPj4+Pj4+IChYLm9yZykgdGhhdCBkb2Vzbid0IHBlcmZv cm0gYW55IHZhbGlkYXRpb24uIFdlIGNhbid0IGNoYW5nZSBpdCBmb3IKPj4+Pj4+IHRoYXQsIGJ1 dCB3ZSBjYW4gcHJldmVudCBmdXR1cmUgbWlzdGFrZXMuCj4+Pj4+IFdlIHNob3VsZCBkbyBpdCB1 bmlmb3JtbHkuIE5vdCBwZXItZm9ybWF0LiBUaGF0IHdpbGwgbWFrZSB0aGUgY29kZQo+Pj4+PiB1 bm1haW50YWluYWJsZSByZWFsIHF1aWNrLgo+Pj4+Pj4+PiArCj4+Pj4+Pj4+ICsgICAgICAgICAg ICAgICAgcGxhbmVfc3RhdGUtPmJhc2Uuc3JjLngxID0KPj4+Pj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRElWX1JPVU5EX0NMT1NFU1QocGxhbmVfc3RhdGUtPmJhc2Uuc3Jj LngxLCAxIDw8IDE4KSA8PAo+Pj4+PiAxODsKPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICBwbGFu ZV9zdGF0ZS0+YmFzZS5zcmMueDIgPQo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBESVZfUk9VTkRfQ0xPU0VTVChwbGFuZV9zdGF0ZS0+YmFzZS5zcmMueDIsIDEgPDwg MTgpIDw8Cj4+Pj4+IDE4Owo+Pj4+Pj4+PiArICAgICAgICAgICAgICAgIHBsYW5lX3N0YXRlLT5i YXNlLnNyYy55MSA9Cj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJ Vl9ST1VORF9DTE9TRVNUKHBsYW5lX3N0YXRlLT5iYXNlLnNyYy55MSwgMSA8PCAxOCkgPDwKPj4+ Pj4gMTg7Cj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgcGxhbmVfc3RhdGUtPmJhc2Uuc3JjLnky ID0KPj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRElWX1JPVU5EX0NM T1NFU1QocGxhbmVfc3RhdGUtPmJhc2Uuc3JjLnkyLCAxIDw8IDE4KSA8PAo+Pj4+PiAxODsKPj4+ Pj4+PiBTaW5jZSB0aGlzIGNhbiBub3cgaW5jcmVhc2UgdGhlIHNpemUgb2YgdGhlIHNvdXJjZSBy ZWN0YW5nbGUgb3VyCj4+Pj4+Pj4gc2NhbGluZyBmYWN0b3IgY2hlY2tzIGFyZSBubyBsb25nZXIg MTAwJSB2YWxpZC4gV2UgbWlnaHQgZW5kIHVwIHdpdGgKPj4+Pj4+PiBhIHNjYWxpbmcgZmFjdG9y IHRoYXQgaXMgdG9vIGhpZ2guCj4+Pj4+Pj4gSSBkb24ndCByZWFsbHkgbGlrZSBhbnkgb2YgdGhl c2UgImxldCdzIG1ha2UgTlYxMiBiZWhhdmUgc3BlY2lhbCIKPj4+Pj4+PiB0cmlja3MuIFdlIHNo b3VsZCBtYWtlIHRoZSBjb2RlIGJlaGF2ZSB0aGUgc2FtZSB3YXkgZm9yIGFsbCBwaXhlbAo+Pj4+ Pj4+IGZvcm1hdHMgaW5zdGVhZCBvZiBhZGRpbmcgZm9ybWF0IHNwZWNpZmljIGhhY2tzLgo+Pj4+ Pj4gVGhpcyBpcyBub3Qgbml2YWxpZCBiZWNhdXNlIHdlIHJlc3RyaWN0IHRoZSBvcmlnaW5hbCBz cmMgY29vcmRpbmF0ZXMKPj4+Pj4+IHRvIGJlIGEgbXVsdGlwbGUgb2YgNCwgeW91IGNhbiBvbmx5 IGNsaXAgdG8gc29tZXRoaW5nIHNtYWxsZXIsIG5vdCB0bwo+Pj4+Pj4gc29tZXRoaW5nIGJpZ2dl ci4gOikKPj4+Pj4gVGhlIGNsaXBwZWQgY29vcmRpbmF0ZXMgY2FuIGJlIHdoYXRldmVyIHRoYW5r cyB0byBzY2FsaW5nL2V0Yy4KPj4+Pj4gQWxzbyB3aHkgYXJlIHdlIHRyeWluZyB0byBtYWtlIGV2 ZXJ5dGhpbmcgYSBtdWx0aXBsZSBvZiBmb3VyPyBJIGRvbid0Cj4+Pj4+IHJlbWVtYmVyIGFueSBo dyByZXN0cmljdGlvbnMgbGlrZSB0aGF0Lgo+Pj4+Cj4+Pj4gSGkKPj4+Pgo+Pj4+Cj4+Pj4gQXMg cGVyIFdBMTEwNiwgRGlzcGxheSBjb3JydXB0aW9uL2NvbG9yIHNoaWZ0IG9ic2VydmVkIHdoZW4g dXNpbmcgTlYxMiB3aXRoIDI3MCByb3RhdGlvbiBvciA5MCByb3RhdGlvbiArIGhvcml6b250YWwg ZmxpcC4KPj4+Pgo+Pj4+IFdBOiBOVjEyIHdpdGggMjcwIHJvdGF0aW9uIG9yIDkwIHJvdGF0aW9u ICsgaG9yaXpvbnRhbCBmbGlwIHJlcXVpcmVzIHRoZSBwcm9ncmFtbWVkIHBsYW5lIGhlaWdodCB0 byBiZSBhIG11bHRpcGxlIG9mIDQuCj4+PiBEb2VzIHBsYW5lIGhlaWdodCBoZXJlIG1lYW4gc3Jj IGhlaWdodCBvciBkc3QgaGVpZ2h0Pwo+Pj4KPj4+IEVpdGhlciB3YXkgSSBkb24ndCBzZWUgd2h5 IHdlIGFyZW4ndCBqdXN0IGNoZWNraW5nIGZvciB0aGUgcmlnaHQgdGhpbmcKPj4+IGluc3RlYWQg b2YgdHJ5aW5nIHRvIG1hbmRhdGUgYSBmb3VyIHBpeGVsIGFsaWdubWVudCBldmVyeXdoZXJlLgo+ Pj4KPj4gQWdyZWVkLCB3aGF0IGFib3V0IHRoZSBiZWxvdyBkaWZmLCB3b3VsZCB0aGlzIGJlIGFj Y2VwdGFibGUgdG8geW91PyBJIGRlbGliZXJhdGVseSBpZ25vcmUgdGhlIGxhc3QgMTYgYml0cyBh cyB0aGF0IGlzIHdoYXQgd2UgY3VycmVudGx5IGRvIGFueXdheSBmb3IgYWxsIGZvcm1hdHMuCj4+ Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggNGIzNzM1NzIwZmVl Li4zZmY3YjU0OTE0NDYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK Pj4gQEAgLTMwOTAsNiArMzA5MCwzMSBAQCBzdGF0aWMgaW50IHNrbF9jaGVja19tYWluX3N1cmZh Y2UoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAJcmV0dXJu IDA7Cj4+ICB9Cj4+ICAKPj4gK3N0YXRpYyBpbnQKPj4gK3NrbF9jaGVja19udjEyX3N1cmZhY2Uo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICsJCSAgICAgICBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+PiArewo+PiArCS8qIERpc3Bs YXkgV0EgIzExMDYgKi8KPj4gKwlpZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRpb24gIT0gKERS TV9NT0RFX1JFRkxFQ1RfWCB8IERSTV9NT0RFX1JPVEFURV85MCkgJiYKPj4gKwkgICAgcGxhbmVf c3RhdGUtPmJhc2Uucm90YXRpb24gIT0gRFJNX01PREVfUk9UQVRFXzI3MCkKPj4gKwkJcmV0dXJu IDA7Cj4gSG1tLiBJIHdvbmRlciBpZiB0aGF0J3Mgd2hhdCB0aGUgc3BlYyBhY3R1YWxseSBtZWFu cy4gVGhlIEhTRHMgb25seQo+IHRhbGsgYWJvdXQgMjcwIGRlZ3JlZSByb3RhdGlvbi4gU28gSSBn dWVzcyB0aGlzIGludGVycHJldGF0aW9uIGNvdWxkCj4gYmUgY29ycmVjdC4KPgo+PiArCj4+ICsJ LyogQmVjYXVzZSB4L3kgYXJlIHNyYyBjb29yZGluYXRlcyB3aWxsIGJlIHJvdGF0ZWQsIHdlIGxv b2sgYXQgeC93aWR0aCBoZXJlLiAqLwo+PiArCWlmICgoKHBsYW5lX3N0YXRlLT5iYXNlLnNyY194 ID4+IDE2KSAlIDQpICE9IDAgfHwKPj4gKwkgICAgKChwbGFuZV9zdGF0ZS0+YmFzZS5zcmNfdyA+ PiAxNikgJSA0KSAhPSAwKSB7Cj4+ICsJCURSTV9ERUJVR19LTVMoInNyYyB4L3cgbXVzdCBiZSBt dWx0aXBsZSBvZiA0IGZvciByb3RhdGVkIE5WMTJcbiIpOwo+PiArCQlyZXR1cm4gLUVJTlZBTDsK Pj4gKwl9Cj4+ICsKPj4gKwkvKiBBbmQgcm91bmQgeSBoZXJlICovCj4+ICsJcGxhbmVfc3RhdGUt PmJhc2Uuc3JjLnkxID0KPj4gKwkJRElWX1JPVU5EX0NMT1NFU1QocGxhbmVfc3RhdGUtPmJhc2Uu c3JjLnkxLCAxIDw8IDE4KSA8PCAxODsKPj4gKwlwbGFuZV9zdGF0ZS0+YmFzZS5zcmMueTIgPQo+ PiArCQlESVZfUk9VTkRfQ0xPU0VTVChwbGFuZV9zdGF0ZS0+YmFzZS5zcmMueTIsIDEgPDwgMTgp IDw8IDE4Owo+IFdoeSBub3QganVzdCBhIHNpbXBsZQo+Cj4gaWYgKGRybV9yZWN0X2hlaWdodChz cmMpID4+IDE2ICUgNCAhPSAwKQo+IAlyZXR1cm4gLUVJTlZBTDsKPgpTbyBsZXRzIGRvIHRoYXQs IGJ1dCB3ZSBoYXZlIHRvIGZpeCB0aGUgcm91bmRpbmcgZXJyb3JzIGluIGk5MTUgdG8gbWFrZSBp dCB1c2VmdWw6Cgp1cHNjYWxpbmcgMTZ4MTYgdG8gMjU2MHgxNDQwOgooa21zX3BsYW5lX3NjYWxp bmc6MTE3MikgaWd0X2ttcy1ERUJVRzogcGxhbmUgQS4xOiBTZXR0aW5nIHByb3BlcnR5ICJTUkNf VyIgdG8gMHgxMDAwMDAvMTA0ODU3Ngooa21zX3BsYW5lX3NjYWxpbmc6MTE3MikgaWd0X2ttcy1E RUJVRzogcGxhbmUgQS4xOiBTZXR0aW5nIHByb3BlcnR5ICJTUkNfSCIgdG8gMHgxMDAwMDAvMTA0 ODU3Ngooa21zX3BsYW5lX3NjYWxpbmc6MTE3MikgaWd0X2ttcy1ERUJVRzogcGxhbmUgQS4xOiBT ZXR0aW5nIHByb3BlcnR5ICJDUlRDX1giIHRvIDB4MC8wCihrbXNfcGxhbmVfc2NhbGluZzoxMTcy KSBpZ3Rfa21zLURFQlVHOiBwbGFuZSBBLjE6IFNldHRpbmcgcHJvcGVydHkgIkNSVENfWSIgdG8g MHgwLzAKKGttc19wbGFuZV9zY2FsaW5nOjExNzIpIGlndF9rbXMtREVCVUc6IHBsYW5lIEEuMTog U2V0dGluZyBwcm9wZXJ0eSAiQ1JUQ19XIiB0byAweGEwMC8yNTYwCihrbXNfcGxhbmVfc2NhbGlu ZzoxMTcyKSBpZ3Rfa21zLURFQlVHOiBwbGFuZSBBLjE6IFNldHRpbmcgcHJvcGVydHkgIkNSVENf SCIgdG8gMHg1YTAvMTQ0MAoKW8KgIDI5MC43NjY1NTVdIFtkcm06ZHJtX2lvY3RsIFtkcm1dXSBw aWQ9MTE3MiwgZGV2PTB4ZTIwMCwgYXV0aD0xLCBEUk1fSU9DVExfTU9ERV9BVE9NSUMKLi4uClvC oCAyOTAuNzY3Mjc2XSBbZHJtOnNrbF91cGRhdGVfc2NhbGVyIFtpOTE1XV0gTlYxMjogc3JjIGRp bWVuc2lvbnMgbm90IG1ldDogMTUgPCAxNgpbwqAgMjkwLjc2NzI4NF0gW2RybTpkcm1fYXRvbWlj X2hlbHBlcl9jaGVja19wbGFuZXMgW2RybV9rbXNfaGVscGVyXV0gW1BMQU5FOjMzOnBsYW5lIDJB XSBhdG9taWMgZHJpdmVyIGNoZWNrIGZhaWxlZApbwqAgMjkwLjc2NzQyMl0gW2RybTpkcm1faW9j dGwgW2RybV1dIHBpZD0xMTcyLCByZXQgPSAtMjIKCklmIHdlIHdhbnQgdG8gZ28gd2l0aCB0aGF0 IHBhdGNoLCBJJ2xsIGNvbW1pdCBpdCBidXQgbGV0IHRoZSB0ZXN0cyBmYWlsIHNpbmNlIHJvdW5k aW5nIGlzIG5vdCBhIE5WMTIgc3BlY2lmaWMgZXJyb3IuCgp+TWFhcnRlbgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK