From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH xf86-video-intel v5] sna: Added AYUV format support for textured and sprite video adapters. Date: Thu, 1 Nov 2018 20:07:55 +0200 Message-ID: <20181101180755.GK9144@intel.com> References: <20181012150023.20100-1-stanislav.lisovskiy@intel.com> <20181015073835.11833-1-stanislav.lisovskiy@intel.com> <20181101173939.GI9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id AC67B6E459 for ; Thu, 1 Nov 2018 18:07:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181101173939.GI9144@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Stanislav Lisovskiy Cc: intel-gfx@lists.freedesktop.org, ville.syrjala@intel.com, martin.peres@intel.com, juha-pekka.heikkila@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMDEsIDIwMTggYXQgMDc6Mzk6MzlQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIE1vbiwgT2N0IDE1LCAyMDE4IGF0IDEwOjM4OjM1QU0gKzAzMDAsIFN0YW5p c2xhdiBMaXNvdnNraXkgd3JvdGU6Cj4gPiB2MjogUmVuYW1lZCBEUk1fRk9STUFUX1hZVVYgdG8g RFJNX0ZPUk1BVF9YWVVWODg4OC4KPiA+ICAgICBBZGRlZCBjb21tZW50IGFib3V0IEFZVVYgYnl0 ZSBvcmRlcmluZyBpbiBHc3RyZWFtZXIuCj4gPiAKPiA+IHYzOiBSZW1vdmVkIHNuYV9jb21wb3Np dGVfb3AgZmxhZ3MgcmVsYXRlZCBjaGFuZ2UgdG8gdGhlIHNlcGFyYXRlIHBhdGNoLgo+ID4gCj4g PiB2NDogRml4ZWQgcmV2aWV3IGNvbW1lbnRzLCBkb25lIGNvZGUgcmVmYWN0b3JpbmcKPiA+IAo+ ID4gdjU6IEZpeGVkIGZvbGxvd2luZyByZXZpZXcgY29tbWVudHM6Cj4gPiAgICAgLSBGaXhlZCBj b21tZW50IGluIHNoYWRlciBjb2RlIGZvciBheXV2IGtlcm5lbC4KPiA+ICAgICAtIEZpeGVkIG5h bWluZyB0byBWSURFT19BWVVWX0JUNjAxL0JUNzA5IGZvciBheXV2IGtlcm5lbHMuCj4gPiAgICAg LSBSZW1vdmVkIGR1cGxpY2F0ZSBnZW45X2tlcm5lbCBwYXJhbWV0ZXIsIGxlZnQgZnJvbSBwcmV2 aW91cyBwYXRjaGVzCj4gPiAgICAgLSBBZGRlZCBjb2xvcnNwYWNlIGhhbmRsaW5nIGZvciBuZXcg QVlVViBrZXJuZWwKPiA+ICAgICAtIEZpeGVkIG5hbWluZyBvZiBzbmFfY29weV9wYWNrZWRfZGF0 YV9heXV2IHRvIHNuYV9jb3B5X2F5dXZfZGF0YQo+ID4gICAgIC0gU3RhcnRlZCB1c2luZyBzdGFu ZGFyZCBic3dhcF8zMiBmdW5jdGlvbiBmb3IgYnl0ZSBzd2FwcGluZyBpbiBzbmFfY29weV9heXV2 X2RhdGEKPiA+ICAgICAtIFJlbW92ZWQgcmVkdW5kYW50IGNvZGUgaW4gc25hX2NvcHlfYXl1dl9k YXRhIHNvIHRoYXQgaXQgbG9va3MgbW9yZSBuZWF0Cj4gPiAgICAgLSBGaXhlZCBYVklNQUdFX0FZ VVYgc3RydWN0dXJlIGluaXRpYWxpemF0aW9uIHRvIGNvbnRhaW4gcHJvcGVyIGJ5dGUgc2VxdWVu Y2UgZm9yIEdTVAo+ID4gICAgIC0gRml4ZWQgYm9ndXMgY29tbWVudCBhYm91dCBzdWJzYW1wbGlu ZyBmb3IgRFJNX0ZPUk1BVF9YWVVWODg4OAo+ID4gICAgIC0gRml4ZWQgQVlVViBhZHZlcnRpc2Vt ZW50IGZvciBhbGwgcGxhdGZvcm1zCj4gPiAgICAgLSBSZW1vdmVkIHVubmVjZXNzYXJ5IFJHQjg4 OCBkZWNsYXJhdGlvbi4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExpc292c2tp eSA8c3RhbmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBzcmMvcmVuZGVy X3Byb2dyYW0vTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgfCAgIDIgKwo+ID4gIC4uLi9leGFf d21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhhICAgICAgICAgICB8ICA2NiArKysrKysrKysrCj4g PiAgLi4uL2V4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGIgICAgICAgICAgIHwgICA2ICsK PiA+ICBzcmMvc25hL2dlbjlfcmVuZGVyLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjQg KysrLQo+ID4gIHNyYy9zbmEvc25hX3JlbmRlci5oICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMyArCj4gPiAgc3JjL3NuYS9zbmFfdmlkZW8uYyAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMTE3ICsrKysrKysrKysrKysrKysrKwo+ID4gIHNyYy9zbmEvc25hX3ZpZGVvLmggICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAyMCArKysKPiA+ICBzcmMvc25hL3NuYV92aWRlb19zcHJp dGUuYyAgICAgICAgICAgICAgICAgICAgfCAgMjIgKysrLQo+ID4gIHNyYy9zbmEvc25hX3ZpZGVv X3RleHR1cmVkLmMgICAgICAgICAgICAgICAgICB8ICAgNyArKwo+ID4gIDkgZmlsZXMgY2hhbmdl ZCwgMjYyIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCj4gPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9yZW5kZXJfcHJvZ3JhbS9leGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhhCj4g PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9yZW5kZXJfcHJvZ3JhbS9leGFfd21fc3JjX3NhbXBs ZV9hcmdiX2F5dXYuZzhiCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9zcmMvcmVuZGVyX3Byb2dyYW0v TWFrZWZpbGUuYW0gYi9zcmMvcmVuZGVyX3Byb2dyYW0vTWFrZWZpbGUuYW0KPiA+IGluZGV4IGRj NTgxMzhmLi5lMzVmZmE1MiAxMDA2NDQKPiA+IC0tLSBhL3NyYy9yZW5kZXJfcHJvZ3JhbS9NYWtl ZmlsZS5hbQo+ID4gKysrIGIvc3JjL3JlbmRlcl9wcm9ncmFtL01ha2VmaWxlLmFtCj4gPiBAQCAt MTk2LDYgKzE5Niw3IEBAIElOVEVMX0c3QiA9CQkJCVwKPiA+ICBJTlRFTF9HOEEgPQkJCQlcCj4g PiAgCWV4YV93bV9zcmNfYWZmaW5lLmc4YSAJCVwKPiA+ICAJZXhhX3dtX3NyY19zYW1wbGVfYXJn Yi5nOGEgCVwKPiA+ICsJZXhhX3dtX3NyY19zYW1wbGVfYXJnYl9heXV2Lmc4YSBcCj4gPiAgCWV4 YV93bV9zcmNfc2FtcGxlX252MTIuZzhhIAlcCj4gPiAgCWV4YV93bV9zcmNfc2FtcGxlX3BsYW5h ci5nOGEgCVwKPiA+ICAJZXhhX3dtX3dyaXRlLmc4YSAJCVwKPiA+IEBAIC0yMDUsNiArMjA2LDcg QEAgSU5URUxfRzhBID0JCQkJXAo+ID4gIAo+ID4gIElOVEVMX0c4QiA9CQkJCVwKPiA+ICAJZXhh X3dtX3NyY19hZmZpbmUuZzhiIAkJXAo+ID4gKwlleGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5dXYu ZzhiIFwKPiA+ICAJZXhhX3dtX3NyY19zYW1wbGVfYXJnYi5nOGIgCVwKPiA+ICAJZXhhX3dtX3Ny Y19zYW1wbGVfbnYxMi5nOGIgCVwKPiA+ICAJZXhhX3dtX3NyY19zYW1wbGVfcGxhbmFyLmc4YiAJ XAo+ID4gZGlmZiAtLWdpdCBhL3NyYy9yZW5kZXJfcHJvZ3JhbS9leGFfd21fc3JjX3NhbXBsZV9h cmdiX2F5dXYuZzhhIGIvc3JjL3JlbmRlcl9wcm9ncmFtL2V4YV93bV9zcmNfc2FtcGxlX2FyZ2Jf YXl1di5nOGEKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwMC4uMTZj ZDU0YzYKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL3NyYy9yZW5kZXJfcHJvZ3JhbS9leGFf d21fc3JjX3NhbXBsZV9hcmdiX2F5dXYuZzhhCj4gPiBAQCAtMCwwICsxLDY2IEBACj4gPiArLyoK PiA+ICsgKiBDb3B5cmlnaHQgwqkgMjAwNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gKyAqCj4gPiAr ICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBw ZXJzb24gb2J0YWluaW5nIGEKPiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29j aWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ID4gKyAqIHRvIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24KPiA+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiA+ICsgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUK PiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgo+ID4gKyAqCj4gPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ID4g KyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUKPiA+ICsgKiBTb2Z0d2FyZS4KPiA+ICsgKgo+ID4gKyAqIFRI RSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBL SU5ELCBFWFBSRVNTIE9SCj4gPiArICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRF RCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4gPiArICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5U IFNIQUxMCj4gPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiA+ICsgKiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ ID4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiA+ICsgKiBJTiBUSEUgU09GVFdBUkUuCj4gPiAr ICoKPiA+ICsgKiBBdXRob3JzOgo+ID4gKyAqICAgIFdhbmcgWmhlbnl1IDx6aGVueXUuei53YW5n QGludGVsLmNvbT4KPiA+ICsgKiAgICBLZWl0aCBQYWNrYXJkIDxrZWl0aHBAa2VpdGhwLmNvbT4K PiA+ICsgKi8KPiA+ICsKPiA+ICsvKiBTYW1wbGUgdGhlIHNyYyBzdXJmYWNlICovCj4gPiArCj4g PiAraW5jbHVkZShgZXhhX3dtLmc0aScpCj4gPiArCj4gPiArdW5kZWZpbmUoYHNyY19tc2cnKQo+ ID4gK3VuZGVmaW5lKGBzcmNfbXNnX2luZCcpCj4gPiArCj4gPiArZGVmaW5lKGBzcmNfbXNnJywg ICAgICAgYGc2NScpCj4gPiArZGVmaW5lKGBzcmNfbXNnX2luZCcsICAgYDY1JykKPiA+ICsKPiA+ ICsvKiBwcmVwYXJlIHNhbXBsZXIgcmVhZCBiYWNrIGdYIHJlZ2lzdGVyLCB3aGljaCB3b3VsZCBi ZSB3cml0dGVuIGJhY2sgdG8gb3V0cHV0ICovCj4gPiArCj4gPiArLyogdXNlIHNpbWQxNiBzYW1w bGVyLCBwYXJhbSAwIGlzIHUsIHBhcmFtIDEgaXMgdi4gKi8KPiA+ICsvKiAncGF5bG9hZCcgbG9h ZGluZywgYXNzdW1pbmcgdGV4IGNvb3JkIHN0YXJ0IGZyb20gZzQgKi8KPiA+ICsKPiA+ICsvKiBs b2FkIGFyZ2IgKi8KPiA+ICttb3YgKDEpIGcwLjg8MT5VRAkweDAwMDAwMDAwVUQgeyBhbGlnbjEg bWFza19kaXNhYmxlIH07Cj4gPiArbW92ICg4KSBzcmNfbXNnPDE+VUQgZzA8OCw4LDE+VUQgeyBh bGlnbjEgfTsgLyogY29weSB0byBtc2cgc3RhcnQgcmVnKi8KPiA+ICsKPiA+ICsvKiBzcmNfbXNn IHdpbGwgYmUgY29waWVkIHdpdGggZzAsIGFzIGl0IGNvbnRhaW5zIHNlbmQgZGVzYyAqLwo+ID4g Ky8qIGVtaXQgc2FtcGxlciAnc2VuZCcgY21kICovCj4gPiArc2VuZCAoMTYpIHNyY19tc2dfaW5k CS8qIG1zZyByZWcgaW5kZXggKi8KPiA+ICsJc3JjX3NhbXBsZV9iYXNlPDE+VVcgLyogcmVhZGJh Y2sgKi8KPiA+ICsJbnVsbAo+ID4gKwlzYW1wbGVyICgxLDAsRikJLyogc2FtcGxlciBtZXNzYWdl IGRlc2NyaXB0aW9uLCAoYmluZGluZ190YWJsZSxzYW1wbGVyX2luZGV4LGRhdGF0eXBlKQo+ID4g KwkJCQkvKiBoZXJlKHNyYy0+ZHN0KSB3ZSBzaG91bGQgdXNlIHNyY19zYW1wbGVyIGFuZCBzcmNf c3VyZmFjZSAqLwo+ID4gKwltbGVuIDUgcmxlbiA4IHsgYWxpZ24xIH07ICAgLyogcmVxdWlyZWQg bWVzc2FnZSBsZW4gNSwgcmVhZGJhY2sgbGVuIDggKi8KPiA+ICsKPiA+ICsKPiA+ICsvKgo+ID4g KyAqIEhhdmUgdG8gY2hhbmdlIGJ5dGVzIG9yZGVyLCBiZWNhdXNlIHRoZSBvbmx5Cj4gPiArICog cGxheWVyIHdoaWNoIHN1cHBvcnRzIEFZVVYgZm9ybWF0IGN1cnJlbnRseSBpcwo+ID4gKyAqIEdz dHJlYW1lciBhbmQgaXQgc3VwcG9ydHMgaW4gYmFkIHdheSwgZXZlbiB0aG91Z2gKPiA+ICsgKiBz cGVjIHNheXMgTVNCOkFZVVYsIHdlIGdldCB0aGUgYnl0ZXMgb3Bwb3NpdGUgd2F5Lgo+ID4gKyAq Lwo+ID4gK21vdiAoMTYpIHNyY19zYW1wbGVfYjwxPlVEIHNyY19zYW1wbGVfcjwxPlVEICB7IGFs aWduMSB9Owo+ID4gK21vdiAoMTYpIHNyY19zYW1wbGVfcjwxPlVEIHNyY19zYW1wbGVfYTwxPlVE ICB7IGFsaWduMSB9Owo+ID4gK21vdiAoMTYpIHNyY19zYW1wbGVfYTwxPkYgMS4wRjsKPiA+ICsK PiA+IGRpZmYgLS1naXQgYS9zcmMvcmVuZGVyX3Byb2dyYW0vZXhhX3dtX3NyY19zYW1wbGVfYXJn Yl9heXV2Lmc4YiBiL3NyYy9yZW5kZXJfcHJvZ3JhbS9leGFfd21fc3JjX3NhbXBsZV9hcmdiX2F5 dXYuZzhiCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAuLjRmNDM5 MTQxCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9zcmMvcmVuZGVyX3Byb2dyYW0vZXhhX3dt X3NyY19zYW1wbGVfYXJnYl9heXV2Lmc4Ygo+ID4gQEAgLTAsMCArMSw2IEBACj4gPiArICAgeyAw eDAwMDAwMDAxLCAweDIwMDgwNjBjLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwIH0sCj4gPiArICAg eyAweDAwNjAwMDAxLCAweDI4MjAwMjA4LCAweDAwOGQwMDAwLCAweDAwMDAwMDAwIH0sCj4gPiAr ICAgeyAweDAyODAwMDMxLCAweDIxYzAwYTQ4LCAweDA2MDAwODIwLCAweDBhOGMwMDAxIH0sCj4g PiArICAgeyAweDAwODAwMDAxLCAweDIyNDAwMjA4LCAweDAwMjAwMWMwLCAweDAwMDAwMDAwIH0s Cj4gPiArICAgeyAweDAwODAwMDAxLCAweDIxYzAwMjA4LCAweDAwMjAwMjgwLCAweDAwMDAwMDAw IH0sCj4gPiArICAgeyAweDAwODAwMDAxLCAweDIyODAzZWU4LCAweDM4MDAwMDAwLCAweDNmODAw MDAwIH0sCj4gPiBkaWZmIC0tZ2l0IGEvc3JjL3NuYS9nZW45X3JlbmRlci5jIGIvc3JjL3NuYS9n ZW45X3JlbmRlci5jCj4gPiBpbmRleCBlYjIyYjY0Mi4uYzJjNDVlMWUgMTAwNjQ0Cj4gPiAtLS0g YS9zcmMvc25hL2dlbjlfcmVuZGVyLmMKPiA+ICsrKyBiL3NyYy9zbmEvZ2VuOV9yZW5kZXIuYwo+ ID4gQEAgLTEyOSw2ICsxMjksMjAgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHBzX2tlcm5lbF9w bGFuYXJfYnQ3MDlbXVs0XSA9IHsKPiA+ICAjaW5jbHVkZSAiZXhhX3dtX3dyaXRlLmc4YiIKPiA+ ICB9Owo+ID4gIAo+ID4gK3N0YXRpYyBjb25zdCB1aW50MzJfdCBwc19rZXJuZWxfYXl1dl9idDYw MVtdWzRdID0gewo+ID4gKyNpbmNsdWRlICJleGFfd21fc3JjX2FmZmluZS5nOGIiCj4gPiArI2lu Y2x1ZGUgImV4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGIiCj4gPiArI2luY2x1ZGUgImV4 YV93bV95dXZfcmdiX2J0NjAxLmc4YiIKPiA+ICsjaW5jbHVkZSAiZXhhX3dtX3dyaXRlLmc4YiIK PiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCB1aW50MzJfdCBwc19rZXJuZWxfYXl1dl9i dDcwOVtdWzRdID0gewo+ID4gKyNpbmNsdWRlICJleGFfd21fc3JjX2FmZmluZS5nOGIiCj4gPiAr I2luY2x1ZGUgImV4YV93bV9zcmNfc2FtcGxlX2FyZ2JfYXl1di5nOGIiCj4gPiArI2luY2x1ZGUg ImV4YV93bV95dXZfcmdiX2J0NzA5Lmc4YiIKPiA+ICsjaW5jbHVkZSAiZXhhX3dtX3dyaXRlLmc4 YiIKPiA+ICt9Owo+ID4gKwo+ID4gIHN0YXRpYyBjb25zdCB1aW50MzJfdCBwc19rZXJuZWxfbnYx Ml9idDcwOVtdWzRdID0gewo+ID4gICNpbmNsdWRlICJleGFfd21fc3JjX2FmZmluZS5nOGIiCj4g PiAgI2luY2x1ZGUgImV4YV93bV9zcmNfc2FtcGxlX252MTIuZzhiIgo+ID4gQEAgLTE3Nyw2ICsx OTEsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHdtX2tlcm5lbF9pbmZvIHsKPiA+ICAJS0VSTkVM KFZJREVPX1BMQU5BUl9CVDcwOSwgcHNfa2VybmVsX3BsYW5hcl9idDcwOSwgNyksCj4gPiAgCUtF Uk5FTChWSURFT19OVjEyX0JUNzA5LCBwc19rZXJuZWxfbnYxMl9idDcwOSwgNyksCj4gPiAgCUtF Uk5FTChWSURFT19QQUNLRURfQlQ3MDksIHBzX2tlcm5lbF9wYWNrZWRfYnQ3MDksIDIpLAo+ID4g KwlLRVJORUwoVklERU9fQVlVVl9CVDYwMSwgcHNfa2VybmVsX2F5dXZfYnQ2MDEsIDIpLAo+ID4g KwlLRVJORUwoVklERU9fQVlVVl9CVDcwOSwgcHNfa2VybmVsX2F5dXZfYnQ3MDksIDIpLAo+ID4g IAlLRVJORUwoVklERU9fUkdCLCBwc19rZXJuZWxfcmdiLCAyKSwKPiA+ICAjZW5kaWYKPiA+ICB9 Owo+ID4gQEAgLTI1NTIsNyArMjU2OCw2IEBAIGdlbjlfcmVuZGVyX2NvbXBvc2l0ZShzdHJ1Y3Qg c25hICpzbmEsCj4gPiAgCQkJCQkJCSAgICAgdG1wLT5tYXNrLmJvICE9IE5VTEwsCj4gPiAgCQkJ CQkJCSAgICAgdG1wLT5oYXNfY29tcG9uZW50X2FscGhhLAo+ID4gIAkJCQkJCQkgICAgIHRtcC0+ aXNfYWZmaW5lKTsKPiA+IC0KPiA+ICAJdG1wLT5ibHQgICA9IGdlbjlfcmVuZGVyX2NvbXBvc2l0 ZV9ibHQ7Cj4gPiAgCXRtcC0+Ym94ICAgPSBnZW45X3JlbmRlcl9jb21wb3NpdGVfYm94Owo+ID4g IAl0bXAtPmJveGVzID0gZ2VuOV9yZW5kZXJfY29tcG9zaXRlX2JveGVzX19ibHQ7Cj4gPiBAQCAt Mzg1Myw2ICszODY4LDggQEAgc3RhdGljIHZvaWQgZ2VuOV9lbWl0X3ZpZGVvX3N0YXRlKHN0cnVj dCBzbmEgKnNuYSwKPiA+ICAJCQlzcmNfc3VyZl9mb3JtYXRbMF0gPSBTVVJGQUNFRk9STUFUX0I4 RzhSOFg4X1VOT1JNOwo+ID4gIAkJZWxzZSBpZiAoZnJhbWUtPmlkID09IEZPVVJDQ19VWVZZKQo+ ID4gIAkJCXNyY19zdXJmX2Zvcm1hdFswXSA9IFNVUkZBQ0VGT1JNQVRfWUNSQ0JfU1dBUFk7Cj4g PiArCQllbHNlIGlmIChpc19heXV2X2ZvdXJjYyhmcmFtZS0+aWQpKQo+ID4gKwkJCXNyY19zdXJm X2Zvcm1hdFswXSA9IFNVUkZBQ0VGT1JNQVRfQjhHOFI4QThfVU5PUk07Cj4gCj4gWW91IGlnbm9y ZSB0aGUgYWxwaGEgaW4gdGhlIHNoYWRlciwgc28gbWlnaHQgYXMgd2VsbCB1c2UgQjhHOFI4WDhf VU5PUk0gZm9yCj4gdGhpcyBvbmUgYXMgd2VsbC4KPiAKPiA+ICAJCWVsc2UKPiA+ICAJCQlzcmNf c3VyZl9mb3JtYXRbMF0gPSBTVVJGQUNFRk9STUFUX1lDUkNCX05PUk1BTDsKPiA+ICAKPiA+IEBA IC0zOTAzLDYgKzM5MjAsMTEgQEAgc3RhdGljIHVuc2lnbmVkIHNlbGVjdF92aWRlb19rZXJuZWwo Y29uc3Qgc3RydWN0IHNuYV92aWRlbyAqdmlkZW8sCj4gPiAgCWNhc2UgRk9VUkNDX1JHQjU2NToK PiA+ICAJCXJldHVybiBHRU45X1dNX0tFUk5FTF9WSURFT19SR0I7Cj4gPiAgCj4gPiArCWNhc2Ug Rk9VUkNDX0FZVVY6Cj4gPiArCQlyZXR1cm4gdmlkZW8tPmNvbG9yc3BhY2UgPwo+ID4gKwkJCUdF TjlfV01fS0VSTkVMX1ZJREVPX0FZVVZfQlQ3MDkgOgo+ID4gKwkJCUdFTjlfV01fS0VSTkVMX1ZJ REVPX0FZVVZfQlQ2MDE7Cj4gPiArCj4gPiAgCWRlZmF1bHQ6Cj4gPiAgCQlyZXR1cm4gdmlkZW8t PmNvbG9yc3BhY2UgPwo+ID4gIAkJCUdFTjlfV01fS0VSTkVMX1ZJREVPX1BBQ0tFRF9CVDcwOSA6 Cj4gPiBkaWZmIC0tZ2l0IGEvc3JjL3NuYS9zbmFfcmVuZGVyLmggYi9zcmMvc25hL3NuYV9yZW5k ZXIuaAo+ID4gaW5kZXggYTRlNWI1NmEuLjg5MWZjOTA1IDEwMDY0NAo+ID4gLS0tIGEvc3JjL3Nu YS9zbmFfcmVuZGVyLmgKPiA+ICsrKyBiL3NyYy9zbmEvc25hX3JlbmRlci5oCj4gPiBAQCAtNjE3 LDYgKzYxNyw5IEBAIGVudW0gewo+ID4gIAlHRU45X1dNX0tFUk5FTF9WSURFT19OVjEyX0JUNzA5 LAo+ID4gIAlHRU45X1dNX0tFUk5FTF9WSURFT19QQUNLRURfQlQ3MDksCj4gPiAgCj4gPiArCUdF TjlfV01fS0VSTkVMX1ZJREVPX0FZVVZfQlQ2MDEsCj4gPiArCUdFTjlfV01fS0VSTkVMX1ZJREVP X0FZVVZfQlQ3MDksCj4gPiArCj4gPiAgCUdFTjlfV01fS0VSTkVMX1ZJREVPX1JHQiwKPiA+ICAJ R0VOOV9XTV9LRVJORUxfQ09VTlQKPiA+ICB9Owo+ID4gZGlmZiAtLWdpdCBhL3NyYy9zbmEvc25h X3ZpZGVvLmMgYi9zcmMvc25hL3NuYV92aWRlby5jCj4gPiBpbmRleCA1NTQwNWY4MS4uNzViZGM3 ZDAgMTAwNjQ0Cj4gPiAtLS0gYS9zcmMvc25hL3NuYV92aWRlby5jCj4gPiArKysgYi9zcmMvc25h L3NuYV92aWRlby5jCj4gPiBAQCAtNTksNiArNTksNyBAQAo+ID4gICNpbmNsdWRlICJpbnRlbF9v cHRpb25zLmgiCj4gPiAgCj4gPiAgI2luY2x1ZGUgPHhmODZ4di5oPgo+ID4gKyNpbmNsdWRlIDxi eXRlc3dhcC5oPgo+ID4gIAo+ID4gICNpZmRlZiBTTkFfWFZNQwo+ID4gICNkZWZpbmUgX1NOQV9Y Vk1DX1NFUlZFUl8KPiA+IEBAIC0yODEsNiArMjgyLDcgQEAgc25hX3ZpZGVvX2ZyYW1lX3NldF9y b3RhdGlvbihzdHJ1Y3Qgc25hX3ZpZGVvICp2aWRlbywKPiA+ICAJfSBlbHNlIHsKPiA+ICAJCXN3 aXRjaCAoZnJhbWUtPmlkKSB7Cj4gPiAgCQljYXNlIEZPVVJDQ19SR0I4ODg6Cj4gPiArCQljYXNl IEZPVVJDQ19BWVVWOgo+ID4gIAkJCWlmIChyb3RhdGlvbiAmIChSUl9Sb3RhdGVfOTAgfCBSUl9S b3RhdGVfMjcwKSkgewo+ID4gIAkJCQlmcmFtZS0+cGl0Y2hbMF0gPSBBTElHTigoaGVpZ2h0IDw8 IDIpLCBhbGlnbik7Cj4gPiAgCQkJCWZyYW1lLT5zaXplID0gKGludClmcmFtZS0+cGl0Y2hbMF0g KiB3aWR0aDsKPiA+IEBAIC01ODQsNiArNTg2LDExOCBAQCBzbmFfY29weV9wYWNrZWRfZGF0YShz dHJ1Y3Qgc25hX3ZpZGVvICp2aWRlbywKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMg dm9pZAo+ID4gK3NuYV9jb3B5X2F5dXZfZGF0YShzdHJ1Y3Qgc25hX3ZpZGVvICp2aWRlbywKPiA+ ICsJCSAgIGNvbnN0IHN0cnVjdCBzbmFfdmlkZW9fZnJhbWUgKmZyYW1lLAo+ID4gKwkJICAgY29u c3QgdWludDhfdCAqYnVmLAo+ID4gKwkJICAgdWludDhfdCAqZHN0KQo+ID4gK3sKPiA+ICsJaW50 IHBpdGNoID0gZnJhbWUtPndpZHRoIDw8IDI7Cj4gPiArCWNvbnN0IHVpbnQ4X3QgKnNyYywgKnM7 Cj4gPiArCWNvbnN0IHVpbnQzMl90ICpzcmNfZHc7Cj4gPiArCXVpbnQzMl90ICpkc3RfZHcgPSAo dWludDMyX3QgKilkc3Q7Cj4gPiArCWludCB4LCB5LCB3LCBoOwo+ID4gKwlpbnQgaSwgajsKPiA+ ICsKPiA+ICsJaWYgKHZpZGVvLT50ZXh0dXJlZCkgewo+ID4gKwkJLyogWFhYIHN1cHBvcnQgY29w eWluZyBjcm9wcGVkIGV4dGVudHMgKi8KPiA+ICsJCXggPSB5ID0gMDsKPiA+ICsJCXcgPSBmcmFt ZS0+d2lkdGg7Cj4gPiArCQloID0gZnJhbWUtPmhlaWdodDsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJ CXggPSBmcmFtZS0+aW1hZ2UueDE7Cj4gPiArCQl5ID0gZnJhbWUtPmltYWdlLnkxOwo+ID4gKwkJ dyA9IGZyYW1lLT5pbWFnZS54MiAtIGZyYW1lLT5pbWFnZS54MTsKPiA+ICsJCWggPSBmcmFtZS0+ aW1hZ2UueTIgLSBmcmFtZS0+aW1hZ2UueTE7Cj4gPiArCX0KPiA+ICsKPiA+ICsJc3JjID0gYnVm ICsgKHkgKiBwaXRjaCkgKyAoeCA8PCAyKTsKPiA+ICsJc3JjX2R3ID0gKHVpbnQzMl90ICopc3Jj Owo+ID4gKwlzd2l0Y2ggKGZyYW1lLT5yb3RhdGlvbikgewo+ID4gKwljYXNlIFJSX1JvdGF0ZV8w Ogo+ID4gKwkJZm9yIChpID0gMDsgaSA8IGg7IGkrKykgewo+ID4gKwkJCWZvciAoaiA9IDA7IGog PCB3OyBqKyspIHsKPiA+ICsJCQkJdWludDMyX3QgcmV2ZXJzZV9kdywgZHcgPSBzcmNfZHdbaSAq IHcgKyBqXTsKPiA+ICsJCQkJaWYgKCF2aWRlby0+dGV4dHVyZWQpIHsKPiA+ICsJCQkJCS8qCj4g PiArCQkJCQkgKiBGb3IgdGV4dHVyZWQgd2UgZG8gYnl0ZSByZXZlcnNpbmcgaW4gc2hhZGVyLgo+ ID4gKwkJCQkJICogSGF2ZSB0byByZXZlcnNlIGJ5dGVzIG9yZGVyLCBiZWNhdXNlIHRoZSBvbmx5 Cj4gPiArCQkJCQkgKiBwbGF5ZXIgd2hpY2ggc3VwcG9ydHMgQVlVViBmb3JtYXQgY3VycmVudGx5 IGlzCj4gPiArCQkJCQkgKiBHc3RyZWFtZXIgYW5kIGl0IHN1cHBvcnRzIGluIGJhZCB3YXksIGV2 ZW4gdGhvdWdoCj4gPiArCQkJCQkgKiBzcGVjIHNheXMgTVNCOkFZVVYsIHdlIGdldCB0aGUgYnl0 ZXMgb3Bwb3NpdGUgd2F5Lgo+ID4gKwkJCQkJICovCj4gPiArCQkJCQlyZXZlcnNlX2R3ID0gYnN3 YXBfMzIoZHcpOwo+ID4gKwkJCQl9Cj4gPiArCQkJCWVsc2UKPiA+ICsJCQkJCXJldmVyc2VfZHcg PSBkdzsKPiAKPiBJIHRoaW5rIEkgc2FpZCBiZWZvcmUgdGhhdCBpdCBtaWdodCBiZSBiZXR0ZXIg dG8ganVzdCBieXRlc3dhcCBldmVyeQo+IHRpbWUuIE5vIGV4dHJhIGJyYW5jaCBpbiB0aGUgaW5u ZXIgbG9vcCB0aGF0IHdheS4KPiAKPiBJdCB3b3VsZCBhbHNvIGxpbWl0IHRoZSAiZ3N0IGlzIG51 dHMiIHdvcmthcm91bmQgaW50byBvbmUgcGxhY2UKPiBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0 IHNldmVyYWwgdGltZXMuIFRoZSBvbmUgZG93bnNpZGUgaXMgdGhhdAo+IHdlIGFsd2F5cyBuZWVk IHRvIHRha2UgdGhpcyBwYXRoIGZvciBBWVVWLiBCdXQgd2UgbmVlZCB0byBkbyB0aGF0Cj4gZm9y IHRoZSBzcHJpdGUgYWRhcHRvciBhbnl3YXkgc28gSSB0aGluayBpdCB3b3VsZCBiZSBmaW5lLgo+ IAo+IEluZGNpZGVudGFsbHkgeW91IHNlZW0gdG8gYmUgbWlzc2luZyB0aGUgcHdyaXRlL21lbWNw eSBwYXRoIGZvcgo+IEFZVVYgaW4gc25hX3ZpZGVvX2NvcHlfZGF0YSgpIGJ1dCB5b3UgZG9uJ3Qg Y2hlY2sgZm9yIHRoYXQuCj4gU28gSSB0aGluayB3ZSBuZWVkIHNvbWV0aGluZyBhbG9uZyB0aGUg bGluZXMgb2YKPiAtIGlmIChmcmFtZS0+cm90YXRpb24gPT0gUlJfUm90YXRlXzAgJiYgIXZpZGVv LT50aWxlZCkgewo+ICsgaWYgKGZyYW1lLT5yb3RhdGlvbiA9PSBSUl9Sb3RhdGVfMCAmJiAhdmlk ZW8tPnRpbGVkICYmICFpc19heXV2KCkpIHsKPiAKPiA+ICsJCQkJZHN0X2R3W2kgKiB3ICsgal0g PSByZXZlcnNlX2R3Owo+ID4gKwkJCX0KPiA+ICsJCX0KPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNl IFJSX1JvdGF0ZV85MDoKPiA+ICsJCWZvciAoaSA9IDA7IGkgPCBoOyBpKyspIHsKPiA+ICsJCQlm b3IgKGogPSAwO2ogPCB3OyBqKyspIHsKPiA+ICsJCQkJdWludDMyX3QgcmV2ZXJzZV9kdywgZHcg PSBzcmNfZHdbaSAqIHcgKyBqXTsKPiA+ICsJCQkJaWYgKCF2aWRlby0+dGV4dHVyZWQpIHsKPiA+ ICsJCQkJCS8qCj4gPiArCQkJCQkgKiBGb3IgdGV4dHVyZWQgd2UgZG8gYnl0ZSByZXZlcnNpbmcg aW4gc2hhZGVyLgo+ID4gKwkJCQkJICogSGF2ZSB0byByZXZlcnNlIGJ5dGVzIG9yZGVyLCBiZWNh dXNlIHRoZSBvbmx5Cj4gPiArCQkJCQkgKiBwbGF5ZXIgd2hpY2ggc3VwcG9ydHMgQVlVViBmb3Jt YXQgY3VycmVudGx5IGlzCj4gPiArCQkJCQkgKiBHc3RyZWFtZXIgYW5kIGl0IHN1cHBvcnRzIGlu IGJhZCB3YXksIGV2ZW4gdGhvdWdoCj4gPiArCQkJCQkgKiBzcGVjIHNheXMgTVNCOkFZVVYsIHdl IGdldCB0aGUgYnl0ZXMgb3Bwb3NpdGUgd2F5Lgo+ID4gKwkJCQkJICovCj4gPiArCQkJCQlyZXZl cnNlX2R3ID0gYnN3YXBfMzIoZHcpOwo+ID4gKwkJCQl9Cj4gPiArCQkJCWVsc2UKPiA+ICsJCQkJ CXJldmVyc2VfZHcgPSBkdzsKPiA+ICsJCQkJZHN0X2R3Wyh3IC0gaiAtIDEpICogaCArIGldID0g cmV2ZXJzZV9kdzsKPiA+ICsJCQl9Cj4gPiArCQl9Cj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBS Ul9Sb3RhdGVfMTgwOgo+ID4gKwkJZm9yIChpID0gMDsgaSA8IGg7IGkrKykgewo+ID4gKwkJCWZv ciAoaiA9IDA7IGogPCB3OyBqKyspIHsKPiA+ICsJCQkJdWludDMyX3QgcmV2ZXJzZV9kdywgZHcg PSBzcmNfZHdbaSAqIHcgKyBqXTsKPiA+ICsJCQkJLyogQ29sdW1ucyBpbiByZXZlcnNlIG9yZGVy LCByb3dzIGluIHJldmVyc2Ugb3JkZXIgKi8KPiA+ICsJCQkJaWYgKCF2aWRlby0+dGV4dHVyZWQp IHsKPiA+ICsJCQkJCS8qCj4gPiArCQkJCQkgKiBGb3IgdGV4dHVyZWQgd2UgZG8gYnl0ZSByZXZl cnNpbmcgaW4gc2hhZGVyLgo+ID4gKwkJCQkJICogSGF2ZSB0byByZXZlcnNlIGJ5dGVzIG9yZGVy LCBiZWNhdXNlIHRoZSBvbmx5Cj4gPiArCQkJCQkgKiBwbGF5ZXIgd2hpY2ggc3VwcG9ydHMgQVlV ViBmb3JtYXQgY3VycmVudGx5IGlzCj4gPiArCQkJCQkgKiBHc3RyZWFtZXIgYW5kIGl0IHN1cHBv cnRzIGluIGJhZCB3YXksIGV2ZW4gdGhvdWdoCj4gPiArCQkJCQkgKiBzcGVjIHNheXMgTVNCOkFZ VVYsIHdlIGdldCB0aGUgYnl0ZXMgb3Bwb3NpdGUgd2F5Lgo+ID4gKwkJCQkJICovCj4gPiArCQkJ CQlyZXZlcnNlX2R3ID0gYnN3YXBfMzIoZHcpOwo+ID4gKwkJCQl9Cj4gPiArCQkJCWVsc2UKPiA+ ICsJCQkJCXJldmVyc2VfZHcgPSBkdzsKPiA+ICsJCQkJZHN0X2R3WyhoIC0gaSAtIDEpICogdyAr IHcgLSBqIC0gMV0gPSByZXZlcnNlX2R3Owo+ID4gKwkJCX0KPiA+ICsJCX0KPiA+ICsJCWJyZWFr Owo+ID4gKwljYXNlIFJSX1JvdGF0ZV8yNzA6Cj4gPiArCQlmb3IgKGkgPSAwOyBpIDwgaDsgaSsr KSB7Cj4gPiArCQkJZm9yIChqID0gMDsgaiA8IHc7IGorKykgewo+ID4gKwkJCQl1aW50MzJfdCBy ZXZlcnNlX2R3LCBkdyA9IHNyY19kd1tpICogdyArIGpdOzsKPiA+ICsJCQkJaWYgKCF2aWRlby0+ dGV4dHVyZWQpIHsKPiA+ICsJCQkJCS8qCj4gPiArCQkJCQkgKiBGb3IgdGV4dHVyZWQgd2UgZG8g Ynl0ZSByZXZlcnNpbmcgaW4gc2hhZGVyLgo+ID4gKwkJCQkJICogSGF2ZSB0byByZXZlcnNlIGJ5 dGVzIG9yZGVyLCBiZWNhdXNlIHRoZSBvbmx5Cj4gPiArCQkJCQkgKiBwbGF5ZXIgd2hpY2ggc3Vw cG9ydHMgQVlVViBmb3JtYXQgY3VycmVudGx5IGlzCj4gPiArCQkJCQkgKiBHc3RyZWFtZXIgYW5k IGl0IHN1cHBvcnRzIGluIGJhZCB3YXksIGV2ZW4gdGhvdWdoCj4gPiArCQkJCQkgKiBzcGVjIHNh eXMgTVNCOkFZVVYsIHdlIGdldCB0aGUgYnl0ZXMgb3Bwb3NpdGUgd2F5Lgo+ID4gKwkJCQkJICov Cj4gPiArCQkJCQlyZXZlcnNlX2R3ID0gYnN3YXBfMzIoZHcpOwo+ID4gKwkJCQl9Cj4gPiArCQkJ CWVsc2UKPiA+ICsJCQkJCXJldmVyc2VfZHcgPSBkdzsKPiA+ICsJCQkJZHN0X2R3Wyh3IC0gaiAt IDEpICogaCArIGldID0gcmV2ZXJzZV9kdzsKPiA+ICsJCQl9Cj4gPiArCQl9Cj4gPiArCQlicmVh azsKPiA+ICsJfQo+ID4gK30KPiA+ICsKPiA+ICBib29sCj4gPiAgc25hX3ZpZGVvX2NvcHlfZGF0 YShzdHJ1Y3Qgc25hX3ZpZGVvICp2aWRlbywKPiA+ICAJCSAgICBzdHJ1Y3Qgc25hX3ZpZGVvX2Zy YW1lICpmcmFtZSwKPiA+IEBAIC03MDksNiArODIzLDkgQEAgdXNlX2d0dDogLyogY29weSBkYXRh LCBtdXN0IHVzZSBHVFQgc28gdGhhdCB3ZSBrZWVwIHRoZSBvdmVybGF5IHVuY2FjaGVkICovCj4g PiAgCQlzbmFfY29weV9udjEyX2RhdGEodmlkZW8sIGZyYW1lLCBidWYsIGRzdCk7Cj4gPiAgCWVs c2UgaWYgKGlzX3BsYW5hcl9mb3VyY2MoZnJhbWUtPmlkKSkKPiA+ICAJCXNuYV9jb3B5X3BsYW5h cl9kYXRhKHZpZGVvLCBmcmFtZSwgYnVmLCBkc3QpOwo+ID4gKwllbHNlIGlmIChpc19heXV2X2Zv dXJjYyhmcmFtZS0+aWQpKQo+ID4gKwkJLyogU29tZSBoYXJkY29kaW5nIGlzIGRvbmUgaW4gZGVm YXVsdCBzbmFfY29weV9wYWNrZWRfZGF0YSwgc28gYWRkZWQgYSBzcGVjaWZpYyBmdW5jdGlvbiAq Lwo+IAo+IHNuYV9jb3B5X3BhY2tlZF9kYXRhKCkgaXMgbWVhbnQgZm9yIHBhY2tlZCBZVVYgNDoy OjIgZm9ybWF0cywKPiBzbyB0aGUgZmFjdCB0aGF0IGl0IGNhbid0IGJlIHVzZWQgaXMgc2VsZiBl dmlkZW50LiBTbyBqdXN0Cj4gZHJvcCB0aGUgY29tbWl0IElNTy4KPiAKPiA+ICsJCXNuYV9jb3B5 X2F5dXZfZGF0YSh2aWRlbywgZnJhbWUsIGJ1ZiwgZHN0KTsKPiA+ICAJZWxzZQo+ID4gIAkJc25h X2NvcHlfcGFja2VkX2RhdGEodmlkZW8sIGZyYW1lLCBidWYsIGRzdCk7Cj4gPiAgCj4gPiBkaWZm IC0tZ2l0IGEvc3JjL3NuYS9zbmFfdmlkZW8uaCBiL3NyYy9zbmEvc25hX3ZpZGVvLmgKPiA+IGlu ZGV4IGJiZDNmMGZkLi4zZTY3NWY4NCAxMDA2NDQKPiA+IC0tLSBhL3NyYy9zbmEvc25hX3ZpZGVv LmgKPiA+ICsrKyBiL3NyYy9zbmEvc25hX3ZpZGVvLmgKPiA+IEBAIC0zOSw2ICszOSw3IEBAIFRI RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ID4gICNkZWZpbmUgRk9V UkNDX1JHQjU2NSAoKDE2IDw8IDI0KSArICgnQicgPDwgMTYpICsgKCdHJyA8PCA4KSArICdSJykK PiA+ICAjZGVmaW5lIEZPVVJDQ19SR0I4ODggKCgyNCA8PCAyNCkgKyAoJ0InIDw8IDE2KSArICgn RycgPDwgOCkgKyAnUicpCj4gPiAgI2RlZmluZSBGT1VSQ0NfTlYxMiAoKCcyJyA8PCAyNCkgKyAo JzEnIDw8IDE2KSArICgnVicgPDwgOCkgKyAnTicpCj4gPiArI2RlZmluZSBGT1VSQ0NfQVlVViAo KCdWJyA8PCAyNCkgKyAoJ1UnIDw8IDE2KSArICgnWScgPDwgOCkgKyAnQScpCj4gPiAgCj4gPiAg LyoKPiA+ICAgKiBCZWxvdywgYSBkdW1teSBwaWN0dXJlIHR5cGUgdGhhdCBpcyB1c2VkIGluIFh2 UHV0SW1hZ2UKPiA+IEBAIC03OSw2ICs4MCwxNSBAQCBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdT IElOIFRIRSBTT0ZUV0FSRS4KPiA+ICAJWHZUb3BUb0JvdHRvbSBcCj4gPiAgfQo+ID4gIAo+ID4g KyNkZWZpbmUgWFZJTUFHRV9BWVVWIHsgXAo+ID4gKwlGT1VSQ0NfQVlVViwgWHZZVVYsIExTQkZp cnN0LCBcCj4gPiArCXsnQScsICdZJywgJ1UnLCAnVicsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MTAs IDB4ODAsIDB4MDAsIDB4MDAsIDB4QUEsIDB4MDAsIDB4MzgsIDB4OUIsIDB4NzF9LCBcCj4gPiAr CTMyLCBYdlBhY2tlZCwgMSwgMCwgMCwgMCwgMCwgOCwgOCwgOCwgMSwgMiwgMiwgMSwgMiwgMiwg XAo+IAo+IFRoZSAycyBzaG91bGQgYmUgMXMuIFRoZXJlIGlzIG5vIGNocm9tYSBzdWJzYW1wbGlu ZyB3aXRoIHRoaXMgZm9ybWF0Lgo+IAo+ID4gKwl7J0EnLCAnWScsICdVJywgJ1YnLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw LCAwLCAwLCAwLCAwLCAwLCAwfSwgXAo+ID4gKwlYdlRvcFRvQm90dG9tIFwKPiA+ICt9Cj4gPiAr Cj4gPiArCj4gPiAgc3RydWN0IHNuYV92aWRlbyB7Cj4gPiAgCXN0cnVjdCBzbmEgKnNuYTsKPiA+ ICAKPiA+IEBAIC0xODksNiArMTk5LDE2IEBAIHN0YXRpYyBpbmxpbmUgaW50IGlzX252MTJfZm91 cmNjKGludCBpZCkKPiA+ICAJfQo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgaW5saW5lIGludCBp c19heXV2X2ZvdXJjYyhpbnQgaWQpCj4gPiArewo+ID4gKwlzd2l0Y2ggKGlkKSB7Cj4gPiArCWNh c2UgRk9VUkNDX0FZVVY6Cj4gPiArCQlyZXR1cm4gMTsKPiA+ICsJZGVmYXVsdDoKPiA+ICsJCXJl dHVybiAwOwo+ID4gKwl9Cj4gPiArfQo+ID4gKwo+ID4gIGJvb2wKPiA+ICBzbmFfdmlkZW9fY2xp cF9oZWxwZXIoc3RydWN0IHNuYV92aWRlbyAqdmlkZW8sCj4gPiAgCQkgICAgICBzdHJ1Y3Qgc25h X3ZpZGVvX2ZyYW1lICpmcmFtZSwKPiA+IGRpZmYgLS1naXQgYS9zcmMvc25hL3NuYV92aWRlb19z cHJpdGUuYyBiL3NyYy9zbmEvc25hX3ZpZGVvX3Nwcml0ZS5jCj4gPiBpbmRleCA4YjdhZThhZS4u YWU0OTNkYWEgMTAwNjQ0Cj4gPiAtLS0gYS9zcmMvc25hL3NuYV92aWRlb19zcHJpdGUuYwo+ID4g KysrIGIvc3JjL3NuYS9zbmFfdmlkZW9fc3ByaXRlLmMKPiA+IEBAIC00Nyw3ICs0Nyw3IEBACj4g PiAgI2RlZmluZSBEUk1fRk9STUFUX1lVWVYgICAgICAgICBmb3VyY2NfY29kZSgnWScsICdVJywg J1knLCAnVicpIC8qIFszMTowXSBDcjA6WTE6Q2IwOlkwIDg6ODo4OjggbGl0dGxlIGVuZGlhbiAq Lwo+ID4gICNkZWZpbmUgRFJNX0ZPUk1BVF9VWVZZICAgICAgICAgZm91cmNjX2NvZGUoJ1UnLCAn WScsICdWJywgJ1knKSAvKiBbMzE6MF0gWTE6Q3IwOlkwOkNiMCA4Ojg6ODo4IGxpdHRsZSBlbmRp YW4gKi8KPiA+ICAjZGVmaW5lIERSTV9GT1JNQVRfTlYxMiAgICAgICAgIGZvdXJjY19jb2RlKCdO JywgJ1YnLCAnMScsICcyJykgLyogMngyIHN1YnNhbXBsZWQgQ3I6Q2IgcGxhbmUgKi8KPiA+IC0K PiA+ICsjZGVmaW5lIERSTV9GT1JNQVRfWFlVVjg4ODggICAgIGZvdXJjY19jb2RlKCdYJywgJ1kn LCAnVScsICdWJykgLyogWzMxOjBdIHg6WTpVOlYgODo4Ojg6OCBsaXR0bGUgZW5kaWFuICovCj4g PiAgI2RlZmluZSBoYXNfaHdfc2NhbGluZyhzbmEsIHZpZGVvKSAoKHNuYSktPmtnZW0uZ2VuIDwg MDcxIHx8IFwKPiA+ICAJCQkJICAgIChzbmEpLT5rZ2VtLmdlbiA+PSAwMTEwKQo+ID4gIAo+ID4g QEAgLTc2LDkgKzc2LDExIEBAIHN0YXRpYyBYdkZvcm1hdFJlYyBmb3JtYXRzW10gPSB7IHsxNX0s IHsxNn0sIHsyNH0gfTsKPiA+ICBzdGF0aWMgY29uc3QgWHZJbWFnZVJlYyBpbWFnZXNbXSA9IHsg WFZJTUFHRV9ZVVkyLCBYVklNQUdFX1VZVlksCj4gPiAgCQkJCSAgICAgWFZNQ19SR0I4ODggfTsK PiA+ICBzdGF0aWMgY29uc3QgWHZJbWFnZVJlYyBpbWFnZXNfcmdiNTY1W10gPSB7IFhWSU1BR0Vf WVVZMiwgWFZJTUFHRV9VWVZZLAo+ID4gLQkJCQkJICAgIFhWTUNfUkdCODg4LCBYVk1DX1JHQjU2 NSB9Owo+ID4gKwkJCQkJICAgIFhWTUNfUkdCODg4LCBYVk1DX1JHQjU2NSwgWFZJTUFHRV9BWVVW IH07Cj4gPiAgc3RhdGljIGNvbnN0IFh2SW1hZ2VSZWMgaW1hZ2VzX252MTJbXSA9IHsgWFZJTUFH RV9ZVVkyLCBYVklNQUdFX1VZVlksCj4gPiAtCQkJCQkgIFhWSU1BR0VfTlYxMiwgWFZNQ19SR0I4 ODgsIFhWTUNfUkdCNTY1IH07Cj4gPiArCQkJCQkgIFhWSU1BR0VfTlYxMiwgWFZNQ19SR0I4ODgs IFhWTUNfUkdCNTY1LCBYVklNQUdFX0FZVVYgfTsKPiAKPiBUaGVzZSBzaG91bGQgcmVtYWluIHVu Y2hhbmdlZC4KPiAKPiA+ICtzdGF0aWMgY29uc3QgWHZJbWFnZVJlYyBpbWFnZXNfeHl1djg4ODhb XSA9IHsgWFZJTUFHRV9ZVVkyLCBYVklNQUdFX1VZVlksCj4gPiArCQkJCQkgIFhWSU1BR0VfTlYx MiwgWFZNQ19SR0I4ODgsIFhWTUNfUkdCNTY1LCBYVklNQUdFX0FZVVYgfTsKPiAKPiBJJ2QgY2Fs bCB0aGlzIGltYWdlc19heXV2W10gc2luY2UgdGhpcyBpcyBhYm91dCB4dmltYWdlcyBhbmQgbm90 Cj4gZHJtIGZvdXJjY3MuIEFuZCBJJ2QgcHV0IEFZVVYgYmVmb3JlIHRoZSBSR0IgZm9ybWF0cyBp biB0aGUgbGlzdC4gCj4gCj4gPiAgc3RhdGljIGNvbnN0IFh2QXR0cmlidXRlUmVjIGF0dHJpYnNb XSA9IHsKPiA+ICAJeyBYdlNldHRhYmxlIHwgWHZHZXR0YWJsZSwgMCwgMSwgKGNoYXIgKikiWFZf Q09MT1JTUEFDRSIgfSwgLyogQlQuNjAxLCBCVC43MDkgKi8KPiA+ICAJeyBYdlNldHRhYmxlIHwg WHZHZXR0YWJsZSwgMCwgMHhmZmZmZmYsIChjaGFyICopIlhWX0NPTE9SS0VZIiB9LAo+ID4gQEAg LTM2NCw2ICszNjYsMTAgQEAgc25hX3ZpZGVvX3Nwcml0ZV9zaG93KHN0cnVjdCBzbmEgKnNuYSwK PiA+ICAJCWNhc2UgRk9VUkNDX1VZVlk6Cj4gPiAgCQkJZi5waXhlbF9mb3JtYXQgPSBEUk1fRk9S TUFUX1VZVlk7Cj4gPiAgCQkJYnJlYWs7Cj4gPiArCQljYXNlIEZPVVJDQ19BWVVWOgo+ID4gKwkJ CS8qIGk5MTUgZG9lc24ndCBzdXBwb3J0IGFscGhhLCBzbyB3ZSB1c2UgWFlVViAqLwo+ID4gKwkJ CWYucGl4ZWxfZm9ybWF0ID0gRFJNX0ZPUk1BVF9YWVVWODg4ODsKPiA+ICsJCQlicmVhazsKPiA+ ICAJCWNhc2UgRk9VUkNDX1lVWTI6Cj4gPiAgCQlkZWZhdWx0Ogo+ID4gIAkJCWYucGl4ZWxfZm9y bWF0ID0gRFJNX0ZPUk1BVF9ZVVlWOwo+ID4gQEAgLTcwNSw3ICs3MTEsMTIgQEAgc3RhdGljIGlu dCBzbmFfdmlkZW9fc3ByaXRlX3F1ZXJ5KGRkUXVlcnlJbWFnZUF0dHJpYnV0ZXNfQVJHUykKPiA+ ICAJCXRtcCAqPSAoKmggPj4gMSk7Cj4gPiAgCQlzaXplICs9IHRtcDsKPiA+ICAJCWJyZWFrOwo+ ID4gLQo+ID4gKwljYXNlIEZPVVJDQ19BWVVWOgo+ID4gKwkJdG1wID0gKncgPDwgMjsKPiA+ICsJ CWlmIChwaXRjaGVzKQo+ID4gKwkJCXBpdGNoZXNbMF0gPSB0bXA7Cj4gPiArCQlzaXplID0gKmgg KiB0bXA7Cj4gPiArCQlicmVhazsKPiA+ICAJZGVmYXVsdDoKPiA+ICAJCSp3ID0gKCp3ICsgMSkg JiB+MTsKPiA+ICAJCSpoID0gKCpoICsgMSkgJiB+MTsKPiA+IEBAIC04MTEsNiArODIyLDkgQEAg dm9pZCBzbmFfdmlkZW9fc3ByaXRlX3NldHVwKHN0cnVjdCBzbmEgKnNuYSwgU2NyZWVuUHRyIHNj cmVlbikKPiA+ICAJfSBlbHNlIGlmIChzbmFfaGFzX3Nwcml0ZV9mb3JtYXQoc25hLCBEUk1fRk9S TUFUX1JHQjU2NSkpIHsKPiA+ICAJCWFkYXB0b3ItPnBJbWFnZXMgPSAoWHZJbWFnZVJlYyAqKWlt YWdlc19yZ2I1NjU7Cj4gPiAgCQlhZGFwdG9yLT5uSW1hZ2VzID0gQVJSQVlfU0laRShpbWFnZXNf cmdiNTY1KTsKPiA+ICsJfSBlbHNlIGlmIChzbmFfaGFzX3Nwcml0ZV9mb3JtYXQoc25hLCBEUk1f Rk9STUFUX1hZVVY4ODg4KSkgewo+ID4gKwkJYWRhcHRvci0+cEltYWdlcyA9IChYdkltYWdlUmVj ICopaW1hZ2VzX3h5dXY4ODg4Owo+ID4gKwkJYWRhcHRvci0+bkltYWdlcyA9IEFSUkFZX1NJWkUo aW1hZ2VzX3h5dXY4ODg4KTsKPiAKPiBUaGlzIG5lZWRzIHRvIGJlIGNoZWNrZWQgYmVmb3JlIDU2 NS9udjEyLiBPdGhlcndpc2Ugd2UnbGwgbmV2ZXIgcGljawo+IHRoaXMgb25lIG9uIG1vc3QgU0tM KyBwbGFuZXMuCgpBY3R1YWxseSB3ZSdkIG5ldmVyIHBpY2sgdGhpcywgc28gZGVmaW5pdGx5IG5l ZWRzIHRvIGNvbWUgZmlyc3QuCgo+IAo+ID4gIAl9IGVsc2Ugewo+ID4gIAkJYWRhcHRvci0+cElt YWdlcyA9IChYdkltYWdlUmVjICopaW1hZ2VzOwo+ID4gIAkJYWRhcHRvci0+bkltYWdlcyA9IEFS UkFZX1NJWkUoaW1hZ2VzKTsKPiA+IGRpZmYgLS1naXQgYS9zcmMvc25hL3NuYV92aWRlb190ZXh0 dXJlZC5jIGIvc3JjL3NuYS9zbmFfdmlkZW9fdGV4dHVyZWQuYwo+ID4gaW5kZXggYTc4NGZlMmUu LjQ2YzIxM2VmIDEwMDY0NAo+ID4gLS0tIGEvc3JjL3NuYS9zbmFfdmlkZW9fdGV4dHVyZWQuYwo+ ID4gKysrIGIvc3JjL3NuYS9zbmFfdmlkZW9fdGV4dHVyZWQuYwo+ID4gQEAgLTY4LDYgKzY4LDcg QEAgc3RhdGljIGNvbnN0IFh2SW1hZ2VSZWMgZ2VuNF9JbWFnZXNbXSA9IHsKPiA+ICAJWFZJTUFH RV9JNDIwLAo+ID4gIAlYVklNQUdFX05WMTIsCj4gPiAgCVhWSU1BR0VfVVlWWSwKPiA+ICsJWFZJ TUFHRV9BWVVWLAo+ID4gIAlYVk1DX1lVViwKPiA+ICB9Owo+ID4gIAo+ID4gQEAgLTMzNyw2ICsz MzgsMTIgQEAgc25hX3ZpZGVvX3RleHR1cmVkX3F1ZXJ5KGRkUXVlcnlJbWFnZUF0dHJpYnV0ZXNf QVJHUykKPiA+ICAJCQlwaXRjaGVzWzBdID0gc2l6ZTsKPiA+ICAJCXNpemUgKj0gKmg7Cj4gPiAg CQlicmVhazsKPiA+ICsJY2FzZSBGT1VSQ0NfQVlVVjoKPiA+ICsJCXNpemUgPSAqdyA8PCAyOwo+ ID4gKwkJaWYgKHBpdGNoZXMpCj4gPiArCQkJcGl0Y2hlc1swXSA9IHNpemU7Cj4gPiArCQlzaXpl ICo9ICpoOwo+ID4gKwkJYnJlYWs7Cj4gPiAgCWNhc2UgRk9VUkNDX1hWTUM6Cj4gPiAgCQkqaCA9 ICgqaCArIDEpICYgfjE7Cj4gPiAgCQlzaXplID0gc2l6ZW9mKHVpbnQzMl90KTsKPiA+IC0tIAo+ ID4gMi4xNy4xCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCgot LSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=