From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 2/2] kms_rotation_crc: Adding test for 90/270 rotation Date: Wed, 22 Apr 2015 10:34:04 +0100 Message-ID: <55376B0C.2060602@linux.intel.com> References: <1428395344-12303-1-git-send-email-sonika.jindal@intel.com> <1428395344-12303-2-git-send-email-sonika.jindal@intel.com> <55363A92.3090408@linux.intel.com> <553728EE.8090203@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 9B0FC6E142 for ; Wed, 22 Apr 2015 02:34:06 -0700 (PDT) In-Reply-To: <553728EE.8090203@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Jindal, Sonika" , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA0LzIyLzIwMTUgMDU6NTEgQU0sIEppbmRhbCwgU29uaWthIHdyb3RlOgo+PiBPbiAwNC8w Ny8yMDE1IDA5OjI5IEFNLCBTb25pa2EgSmluZGFsIHdyb3RlOgo+Pj4gQWRkaW5nIDkwLzI3MCBy b3RhdGlvbiB0ZXN0Y2FzZSBmb3IgcHJpbWFyeSBhbmQgc3ByaXRlIHBsYW5lcy4KPj4+Cj4+PiB2 MjogQWRkZWQgcG9zaXRpb24gdGVzdCBmb3Igc3ByaXRlLiBDaGVja2luZyBmb3IgZ2VuID4gOSBm b3IgOTAvMjcwLgo+Pj4gU29tZSBjbGVhbnVwIGFuZCByZWJhc2UuCj4+PiB2MzogQWRkZWQgdGVz dCBmb3IgdW5zdXBwb3J0ZWQgdGlsaW5nIGFuZCB1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQgZm9y Cj4+PiA5MC8yNzAKPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBTb25pa2EgSmluZGFsIDxzb25pa2Eu amluZGFsQGludGVsLmNvbT4KPj4+IC0tLQo+Pj4gICB0ZXN0cy9rbXNfcm90YXRpb25fY3JjLmMg fCAgMjQ4Cj4+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t Cj4+PiAgIDEgZmlsZSBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0p Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYyBiL3Rlc3RzL2tt c19yb3RhdGlvbl9jcmMuYwo+Pj4gaW5kZXggZTExZDdhOS4uNDhhZmFhMSAxMDA2NDQKPj4+IC0t LSBhL3Rlc3RzL2ttc19yb3RhdGlvbl9jcmMuYwo+Pj4gKysrIGIvdGVzdHMva21zX3JvdGF0aW9u X2NyYy5jCj4+PiBAQCAtMjgsMTQgKzI4LDIxIEBACj4+PiAgICNpbmNsdWRlICJpZ3RfZGVidWdm cy5oIgo+Pj4gICAjaW5jbHVkZSAiaWd0X2ttcy5oIgo+Pj4gICAjaW5jbHVkZSAiaWd0X2NvcmUu aCIKPj4+ICsjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgo+Pj4KPj4+ICAgdHlwZWRlZiBzdHJ1 Y3Qgewo+Pj4gICAgICAgaW50IGdmeF9mZDsKPj4+ICAgICAgIGlndF9kaXNwbGF5X3QgZGlzcGxh eTsKPj4+ICAgICAgIHN0cnVjdCBpZ3RfZmIgZmI7Cj4+PiAgICAgICBzdHJ1Y3QgaWd0X2ZiIGZi X2N1cnNvcjsKPj4+ICsgICAgc3RydWN0IGlndF9mYiBmYl9mdWxsOwo+Pj4gKyAgICBzdHJ1Y3Qg aWd0X2ZiIGZiXzU2NTsKPj4+ICsgICAgc3RydWN0IGlndF9mYiBmYl90aWxpbmc7Cj4+Cj4+IENv dWxkIHlvdSBkbyB3aXRoIGp1c3QgZmIgYW5kIG5vdCBoYXZpbmcgZmJfNTY1IGFuZCBmYl90aWxp bmcgc2luY2UgSQo+PiB0aGluayB5b3Ugb25seSB1c2Ugb25lIGF0IGEgdGltZT8KPj4KPiBZZXMg SSBjYW4sIGJ1dCB0aGVuIEknbCBoYXZlIHRvIGNyZWF0ZSBhbmQgcmVtb3ZlIGZiIGR1cmluZyB0 aGUgdGVzdC4KPiBTaW5jZSB0aGlzIGlzIGp1c3Qgb25lIG5lZ2F0aXZlIHRlc3QgKGZvciA1NjUg Zm9ybWF0IGFuZCB0aWxpbmcpIEkKPiB3YW50ZWQgdG8gYWRkLCBJIHRob3VnaHQgaXQgd2lsbCBs b29rIGJldHRlciB0aGlzIHdheS4KCkkgdGhpbmsgdGhleSBzaG91bGQgZ28gc2luY2UsIGlmIHlv dSBsb29rLCB0aGVuIGRvbid0IGJlbG9uZyB0byBkYXRhIGF0IAphbGwsIG5vIGNvZGUgdGFrZXMg ZGF0YSBhbmQgdXNlcyB0aGVtIGZyb20gdGhlcmUgYnV0IG9ubHkgdGhlIG5lZ2F0aXZlIAp0ZXN0 cyB1c2VzIHRoZW0gb25seSBsb2NhbGx5LiBTbyBJIHRoaW5rIGxvY2FsIGlndF9mYiBpbiAKdGVz dF91bnN1cHBvcnRlZF90aWxpbmdfcGl4ZWxfZm9ybWF0IHdvdWxkIGJlIG1vcmUgYXBwcm9wcmlh dGUuCgo+Pj4gICAgICAgaWd0X2NyY190IHJlZl9jcmM7Cj4+PiAgICAgICBpZ3RfcGlwZV9jcmNf dCAqcGlwZV9jcmM7Cj4+PiArICAgIGlndF9yb3RhdGlvbl90IHJvdGF0aW9uOwo+Pj4gKyAgICBp bnQgcG9zX3g7Cj4+PiArICAgIGludCBwb3NfeTsKPj4+ICAgfSBkYXRhX3Q7Cj4+Pgo+Pj4gICBz dGF0aWMgdm9pZAo+Pj4gQEAgLTYzLDE4ICs3MCw0NiBAQCBwYWludF9zcXVhcmVzKGRhdGFfdCAq ZGF0YSwgc3RydWN0IGlndF9mYiAqZmIsCj4+PiBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCj4+PiAg ICAgICAgICAgdyA9IG1vZGUtPmhkaXNwbGF5Owo+Pj4gICAgICAgICAgIGggPSBtb2RlLT52ZGlz cGxheTsKPj4+Cj4+PiAtICAgICAgICBjciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmdmeF9m ZCwgJmRhdGEtPmZiKTsKPj4+ICsgICAgICAgIGNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ Z2Z4X2ZkLCBmYik7Cj4+Pgo+Pj4gICAgICAgICAgIGlmIChyb3RhdGlvbiA9PSBJR1RfUk9UQVRJ T05fMTgwKSB7Cj4+PiAgICAgICAgICAgICAgIGNhaXJvX3RyYW5zbGF0ZShjciwgdywgaCk7Cj4+ PiAgICAgICAgICAgICAgIGNhaXJvX3JvdGF0ZShjciwgTV9QSSk7Cj4+PiAgICAgICAgICAgfQo+ Pj4KPj4+IC0gICAgICAgIC8qIFBhaW50IHdpdGggNCBzcXVhcmVzIG9mIFJlZCwgR3JlZW4sIFdo aXRlLCBCbHVlIENsb2Nrd2lzZSAqLwo+Pj4gLSAgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCAw LCAwLCB3IC8gMiwgaCAvIDIsIDEuMCwgMC4wLCAwLjApOwo+Pj4gLSAgICAgICAgaWd0X3BhaW50 X2NvbG9yKGNyLCB3IC8gMiwgMCwgdyAvIDIsIGggLyAyLCAwLjAsIDEuMCwgMC4wKTsKPj4+IC0g ICAgICAgIGlndF9wYWludF9jb2xvcihjciwgMCwgaCAvIDIsIHcgLyAyLCBoIC8gMiwgMC4wLCAw LjAsIDEuMCk7Cj4+PiAtICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIHcgLyAyLCBoIC8gMiwg dyAvIDIsIGggLyAyLCAxLjAsIDEuMCwgMS4wKTsKPj4+ICsgICAgICAgIC8qCj4+PiArICAgICAg ICAgKiAicm90YXRpb24iIGlzIHVzZWQgZm9yIGNyZWF0aW5nIHJlZiByb3RhdGVkIGZiIGFuZAo+ Pj4gKyAgICAgICAgICogImRhdGEtPnJvdGF0aW9uIiBpcyB1c2VkIHRvIGRldGVybWluZSB0aGUg cmVxdWlyZWQgc2l6ZQo+Pj4gKyAgICAgICAgICogd2hpbGUgY3JlYXRpbmcgdW5yb3RhdGVkIGZi Lgo+Pj4gKyAgICAgICAgICovCj4+Cj4+IFRoaXMgY29tbWVudCBhbmQgdGhlIHNldHVwIGJlbG93 IGlzIG5vdCB0aGUgbW9zdCBzdHJhaWdodGZvcndhcmQgdG8KPj4gdW5kZXJzdGFuZC4KPj4KPj4g SWYgSSBnb3QgaXQgcmlnaHQgeW91IHdhbnQgcm90YXRpb24gdG8gZHJhdyBhIHJvdGF0ZWQgaW1h Z2UsIGFuZAo+PiBlZmZlY3RpdmVseSBhIGZsYWcgdG8gc2F5IHdoZXRoZXIgdGhlIGRyYXduIGlt YWdlIGlzIHRvIGJlIG92ZXIgZnVsbCBmYgo+PiBvciBpbiBhIHNxdWFyZS4KPj4KPj4gVGhlbiB3 aGF0IGFib3V0IGhhdmluZyBzb21ldGhpbmcgbGlrZSBhICJzcXVhcmVfaW1hZ2UiIGJvb2xlYW4g ZmxhZwo+PiBpbnN0ZWFkIG9mIHR3byByb3RhdGlvbiBwYXJhbWV0ZXJzPwo+IGRhdGEtPnJvdGF0 aW9uIGhhcyB0aGUgcm90YXRpb24gdmFsdWUgd2hpY2ggd2Ugd2FudCBvdXIgdGVzdCB0byByb3Rh dGUKPiB0aGUgZmIgd2l0aC4KPiBOb3cgcGFpbnRfc3F1YXJlcyBnZXRzIGNhbGxlZCB0d28gdGlt ZXMgaW4gYSB0ZXN0Cj4gKiBGaXJzdCB0byBwYWludCB0aGUgcm90YXRlZCByZWZlcmVuY2UgZmIg dG8gY29sbGVjdCB0aGUgc3cgcm90YXRlZCBjcmMuCj4gRm9yIHRoaXMgd2Ugc2V0IHRoZSBhcHBy b3ByaWF0ZSByb3RhdGlvbiBpbiB0aGUgcm90YXRpb24gcGFyYW1ldGVyIHRvCj4gcGFpbnRfc3F1 YXJlcy4gKFN0ZXAgMSBpbiB0aGUgdGVzdCkKPiAqIE5leHQgaXQgaXMgY2FsbGVkIHRvIHBhaW50 IGFuIHVucm90YXRlZCBmYiBmb3IgdGhlIEhXIHRvIHJvdGF0ZSBpdAo+IHVzaW5nIHNldF9wcm9w ZXJ0eS4gVG8gZHJhdyB1bnJvdGF0ZWQgZmIsIHdlIHBhc3MgSUdUX1JPVEFUSU9OXzAgaW4KPiBy b3RhdGlvbiBwYXJhbWV0ZXIgdG8gcGFpbnRfc3F1YXJlcy4oU3RlcCAyIGluIHRoZSB0ZXN0KS4K Pgo+IE9ubHkgZm9yIDkwLzI3MCwgSSBzdGFydGVkIHVzaW5nIGRhdGEtPnJvdGF0aW9uIGluc2lk ZSB0aGlzIGZ1bmN0aW9uLgo+IE90aGVyd2lzZSB3ZSB3ZXJlIG5vdCB1c2luZyBpdC4KPiBUaGlz IGZ1bmN0aW9uIGlzIGp1c3QgdG8gcGFpbnQgdGhlIGZiIGJhc2VkIHVwb24gdGhlIHJvdGF0aW9u LgoKWWVzIEkgZ2V0IHdoYXQgaXQgZG9lcyA6KSBteSBwb2ludCB3YXMgdGhhdCBpdCB1c2VzIHRo ZSBzZWNvbmQgcm90YXRpb24gCnRvIGRlY2lkZSB3aGV0aGVyIHRvIHBhaW50IGEgcmVjdGFuZ3Vs YXIgKGZ1bGwgZmIpIG9yIHNxdWFyZSAoc3ViLWZiKSAKaW1hZ2UgYW5kIHRoYXQgaXQgd291bGQg YmUgbW9yZSBvYnZpb3VzIGlmIHRoZSBwYXJhbWV0ZXIgc2FpZCBzby4KCj4+Cj4+PiArICAgICAg ICBpZiAocm90YXRpb24gPT0gSUdUX1JPVEFUSU9OXzkwKSB7Cj4+PiArICAgICAgICAgICAgLyog UGFpbnQgNCBzcXVhcmVzIHdpdGggd2lkdGggPT0gaGVpZ2h0IGluIEJsdWUsIFJlZCwKPj4+ICsg ICAgICAgICAgICBHcmVlbiwgV2hpdGUgQ2xvY2t3aXNlIG9yZGVyIHRvIGxvb2sgbGlrZSA5MCBk ZWdyZWUKPj4+IHJvdGF0ZWQqLwo+Pj4gKyAgICAgICAgICAgIHcgPSBoID0gbW9kZS0+dmRpc3Bs YXk7Cj4+PiArICAgICAgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCAwLCAwLCB3IC8gMiwgaCAv IDIsIDAuMCwgMC4wLCAxLjApOwo+Pj4gKyAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwg dyAvIDIsIDAsIHcgLyAyLCBoIC8gMiwgMS4wLCAwLjAsIDAuMCk7Cj4+PiArICAgICAgICAgICAg aWd0X3BhaW50X2NvbG9yKGNyLCAwLCBoIC8gMiwgdyAvIDIsIGggLyAyLCAxLjAsIDEuMCwgMS4w KTsKPj4+ICsgICAgICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIHcgLyAyLCBoIC8gMiwgdyAv IDIsIGggLyAyLCAwLjAsIDEuMCwKPj4+IDAuMCk7Cj4+PiArCj4+PiArICAgICAgICB9IGVsc2Ug aWYgKHJvdGF0aW9uID09IElHVF9ST1RBVElPTl8yNzApIHsKPj4+ICsgICAgICAgICAgICAvKiBQ YWludCA0IHNxdWFyZXMgd2l0aCB3aWR0aCA9PSBoZWlnaHQgaW4gR3JlZW4sIFdoaXRlLAo+Pj4g KyAgICAgICAgICAgIEJsdWUsIFJlZCBDbG9ja3dpc2Ugb3JkZXIgdG8gbG9vayBsaWtlIDI3MCBk ZWdyZWUgcm90YXRlZCovCj4+PiArICAgICAgICAgICAgdyA9IGggPSBtb2RlLT52ZGlzcGxheTsK Pj4+ICsgICAgICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIDAsIHcgLyAyLCBoIC8gMiwg MC4wLCAxLjAsIDAuMCk7Cj4+PiArICAgICAgICAgICAgaWd0X3BhaW50X2NvbG9yKGNyLCB3IC8g MiwgMCwgdyAvIDIsIGggLyAyLCAxLjAsIDEuMCwgMS4wKTsKPj4+ICsgICAgICAgICAgICBpZ3Rf cGFpbnRfY29sb3IoY3IsIDAsIGggLyAyLCB3IC8gMiwgaCAvIDIsIDEuMCwgMC4wLCAwLjApOwo+ Pj4gKyAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwgdyAvIDIsIGggLyAyLCB3IC8gMiwg aCAvIDIsIDAuMCwgMC4wLAo+Pj4gMS4wKTsKPj4+ICsKPj4+ICsgICAgICAgIH0gZWxzZSB7Cj4+ PiArICAgICAgICAgICAgaWYgKGRhdGEtPnJvdGF0aW9uID09IElHVF9ST1RBVElPTl85MCB8fAo+ Pj4gKyAgICAgICAgICAgICAgICBkYXRhLT5yb3RhdGlvbiA9PSBJR1RfUk9UQVRJT05fMjcwKQo+ Pj4gKyAgICAgICAgICAgICAgICB3ID0gaCA9IG1vZGUtPnZkaXNwbGF5Owo+Pj4gKyAgICAgICAg ICAgIC8qIFBhaW50IHdpdGggNCBzcXVhcmVzIG9mIFJlZCwgR3JlZW4sIFdoaXRlLCBCbHVlCj4+ PiBDbG9ja3dpc2UgKi8KPj4+ICsgICAgICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIDAs IHcgLyAyLCBoIC8gMiwgMS4wLCAwLjAsIDAuMCk7Cj4+PiArICAgICAgICAgICAgaWd0X3BhaW50 X2NvbG9yKGNyLCB3IC8gMiwgMCwgdyAvIDIsIGggLyAyLCAwLjAsIDEuMCwgMC4wKTsKPj4+ICsg ICAgICAgICAgICBpZ3RfcGFpbnRfY29sb3IoY3IsIDAsIGggLyAyLCB3IC8gMiwgaCAvIDIsIDAu MCwgMC4wLCAxLjApOwo+Pj4gKyAgICAgICAgICAgIGlndF9wYWludF9jb2xvcihjciwgdyAvIDIs IGggLyAyLCB3IC8gMiwgaCAvIDIsIDEuMCwgMS4wLAo+Pj4gMS4wKTsKPj4+ICsgICAgICAgIH0K Pj4+ICAgICAgIH0KPj4+ICAgICAgIGNhaXJvX2Rlc3Ryb3koY3IpOwo+Pj4gICB9Cj4+PiBAQCAt ODQsNyArMTE5LDEyIEBAIHN0YXRpYyB2b2lkIHByZXBhcmVfY3J0YyhkYXRhX3QgKmRhdGEsCj4+ PiBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBwaXBlIHBpcGUsCj4+PiAgIHsKPj4+ICAgICAg IGRybU1vZGVNb2RlSW5mbyAqbW9kZTsKPj4+ICAgICAgIGlndF9kaXNwbGF5X3QgKmRpc3BsYXkg PSAmZGF0YS0+ZGlzcGxheTsKPj4+IC0gICAgaW50IGZiX2lkLCBmYl9jdXJzb3JfaWQ7Cj4+PiAr ICAgIGludCBmYl9pZCwgZmJfY3Vyc29yX2lkLCBmYl9mdWxsX2lkOwo+Pj4gKyAgICBpbnQgdywg aDsKPj4+ICsgICAgdWludDY0X3QgdGlsaW5nID0gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORTsK Pj4+ICsgICAgZW51bSBpZ3RfY29tbWl0X3N0eWxlIGNvbW1pdCA9IENPTU1JVF9MRUdBQ1k7Cj4+ PiArICAgIGludCBvbGRfcm90YXRpb247Cj4+PiArICAgIGlndF9wbGFuZV90ICpwcmltYXJ5Owo+ Pj4KPj4+ICAgICAgIGlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPj4+Cj4+PiBA QCAtOTQsMTAgKzEzNCw0NSBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlX2NydGMoZGF0YV90ICpkYXRh LAo+Pj4gaWd0X291dHB1dF90ICpvdXRwdXQsIGVudW0gcGlwZSBwaXBlLAo+Pj4KPj4+ICAgICAg IG1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4+Pgo+Pj4gKyAgICB3ID0gbW9k ZS0+aGRpc3BsYXk7Cj4+PiArICAgIGggPSBtb2RlLT52ZGlzcGxheTsKPj4+ICsKPj4+ICsgICAg ZmJfZnVsbF9pZCA9IGlndF9jcmVhdGVfZmIoZGF0YS0+Z2Z4X2ZkLAo+Pj4gKyAgICAgICAgICAg IHcsIGgsCj4+PiArICAgICAgICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKPj4+ICsgICAgICAg ICAgICB0aWxpbmcsCj4+PiArICAgICAgICAgICAgJmRhdGEtPmZiX2Z1bGwpOwo+Pj4gKyAgICBp Z3RfYXNzZXJ0KGZiX2Z1bGxfaWQpOwo+Pj4gKwo+Pj4gKyAgICAvKgo+Pj4gKyAgICAgKiBXaXRo IGlndF9kaXNwbGF5X2NvbW1pdDIgYW5kIENPTU1JVF9VTklWRVJTQUwsIHdlIGNhbGwganVzdCB0 aGUKPj4+ICsgICAgICogc2V0cGxhbmUgd2l0aG91dCBhIG1vZGVzZXQuIFNvLCB0byBiZSBhYmxl IHRvIGNhbGwKPj4+ICsgICAgICogaWd0X2Rpc3BsYXlfY29tbWl0IGFuZCB1bHRpbWF0ZWx5IHNl dGNydGMgdG8gZG8gdGhlIGZpcnN0Cj4+PiBtb2Rlc2V0LAo+Pj4gKyAgICAgKiB3ZSBjcmVhdGUg YW4gZmIgY292ZXJpbmcgdGhlIGNydGMgYW5kIGNhbGwgY29tbWl0Cj4+PiArICAgICAqLwo+Pj4g Kwo+Pj4gKyAgICBvbGRfcm90YXRpb24gPSBkYXRhLT5yb3RhdGlvbjsKPj4+ICsgICAgZGF0YS0+ cm90YXRpb24gPSBJR1RfUk9UQVRJT05fMDsKPj4+ICsgICAgcHJpbWFyeSA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lKG91dHB1dCwgSUdUX1BMQU5FX1BSSU1BUlkpOwo+Pj4gKyAgICBwYWludF9zcXVh cmVzKGRhdGEsICZkYXRhLT5mYl9mdWxsLCBtb2RlLCBJR1RfUk9UQVRJT05fMCwgcHJpbWFyeSk7 Cj4+PiArICAgIGlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiX2Z1bGwpOwo+Pj4g KyAgICBpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7Cj4+PiArICAgIGRhdGEtPnJvdGF0aW9u ID0gb2xkX3JvdGF0aW9uOwo+Pj4gKwo+Pj4gKyAgICAvKgo+Pj4gKyAgICAgKiBGb3IgOTAvMjcw LCB3ZSB3aWxsIHVzZSBjcmVhdGUgc21hbGxlciBmYiBzbyB0aGF0IHRoZSByb3RhdGVkCj4+PiAr ICAgICAqIGZyYW1lIGNhbiBmaXQgaW4KPj4+ICsgICAgICovCj4+PiArICAgIGlmIChkYXRhLT5y b3RhdGlvbiA9PSBJR1RfUk9UQVRJT05fOTAgfHwKPj4+ICsgICAgICAgIGRhdGEtPnJvdGF0aW9u ID09IElHVF9ST1RBVElPTl8yNzApIHsKPj4+ICsgICAgICAgIHRpbGluZyA9IExPQ0FMX0k5MTVf Rk9STUFUX01PRF9ZX1RJTEVEOwo+Pj4gKyAgICAgICAgdyA9IGggPSAgbW9kZS0+dmRpc3BsYXk7 Cj4+PiArICAgIH0KPj4+ICsKPj4+ICAgICAgIGZiX2lkID0gaWd0X2NyZWF0ZV9mYihkYXRhLT5n ZnhfZmQsCj4+PiAtICAgICAgICAgICAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAo+ Pj4gKyAgICAgICAgICAgIHcsIGgsCj4+PiAgICAgICAgICAgICAgIERSTV9GT1JNQVRfWFJHQjg4 ODgsCj4+PiAtICAgICAgICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPj4+ICsgICAg ICAgICAgICB0aWxpbmcsCj4+PiAgICAgICAgICAgICAgICZkYXRhLT5mYik7Cj4+PiAgICAgICBp Z3RfYXNzZXJ0KGZiX2lkKTsKPj4+Cj4+PiBAQCAtMTEwLDI3ICsxODUsMjAgQEAgc3RhdGljIHZv aWQgcHJlcGFyZV9jcnRjKGRhdGFfdCAqZGF0YSwKPj4+IGlndF9vdXRwdXRfdCAqb3V0cHV0LCBl bnVtIHBpcGUgcGlwZSwKPj4+Cj4+PiAgICAgICAvKiBTdGVwIDE6IGNyZWF0ZSBhIHJlZmVyZW5j ZSBDUkMgZm9yIGEgc29mdHdhcmUtcm90YXRlZCBmYiAqLwo+Pj4KPj4+IC0gICAgLyoKPj4+IC0g ICAgICogWFhYOiBXZSBhbHdheXMgc2V0IHRoZSBwcmltYXJ5IHBsYW5lIHRvIGFjdHVhbGx5IGVu YWJsZSB0aGUKPj4+IHBpcGUgYXMKPj4+IC0gICAgICogdGhlcmUncyBubyB3YXkgKHRoYXQgd29y a3MpIHRvIGxpZ2h0IHVwIGEgcGlwZSB3aXRoIG9ubHkgYQo+Pj4gc3ByaXRlCj4+PiAtICAgICAq IHBsYW5lIGVuYWJsZWQgYXQgdGhlIG1vbWVudC4KPj4+IC0gICAgICovCj4+PiAtICAgIGlmICgh cGxhbmUtPmlzX3ByaW1hcnkpIHsKPj4+IC0gICAgICAgIGlndF9wbGFuZV90ICpwcmltYXJ5Owo+ Pj4gLQo+Pj4gLSAgICAgICAgcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwg SUdUX1BMQU5FX1BSSU1BUlkpOwo+Pj4gLSAgICAgICAgcGFpbnRfc3F1YXJlcyhkYXRhLCAmZGF0 YS0+ZmIsIG1vZGUsIElHVF9ST1RBVElPTl8xODAsCj4+PiBwcmltYXJ5KTsKPj4+IC0gICAgICAg IGlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiKTsKPj4+IC0gICAgfQo+Pj4gLQo+ Pj4gICAgICAgaWYgKHBsYW5lLT5pc19jdXJzb3IpIHsKPj4+IC0gICAgICAgIHBhaW50X3NxdWFy ZXMoZGF0YSwgJmRhdGEtPmZiX2N1cnNvciwgbW9kZSwgSUdUX1JPVEFUSU9OXzE4MCwKPj4+IHBs YW5lKTsKPj4+ICsgICAgICAgIHBhaW50X3NxdWFyZXMoZGF0YSwgJmRhdGEtPmZiX2N1cnNvciwg bW9kZSwgZGF0YS0+cm90YXRpb24sCj4+PiBwbGFuZSk7Cj4+PiAgICAgICAgICAgaWd0X3BsYW5l X3NldF9mYihwbGFuZSwgJmRhdGEtPmZiX2N1cnNvcik7Cj4+PiAgICAgICB9IGVsc2Ugewo+Pj4g LSAgICAgICAgcGFpbnRfc3F1YXJlcyhkYXRhLCAmZGF0YS0+ZmIsIG1vZGUsIElHVF9ST1RBVElP Tl8xODAsIHBsYW5lKTsKPj4+ICsgICAgICAgIHBhaW50X3NxdWFyZXMoZGF0YSwgJmRhdGEtPmZi LCBtb2RlLCBkYXRhLT5yb3RhdGlvbiwgcGxhbmUpOwo+Pj4gICAgICAgICAgIGlndF9wbGFuZV9z ZXRfZmIocGxhbmUsICZkYXRhLT5mYik7Cj4+PiArICAgICAgICBpZ3RfcGxhbmVfc2V0X3Bvc2l0 aW9uKHBsYW5lLCBkYXRhLT5wb3NfeCwgZGF0YS0+cG9zX3kpOwo+Pj4gICAgICAgfQo+Pj4gLSAg ICBpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7Cj4+PiArICAgIGlmIChwbGFuZS0+aXNfcHJp bWFyeSB8fCBwbGFuZS0+aXNfY3Vyc29yKSB7Cj4+PiArICAgICAgICBpZ3RfcmVxdWlyZShkYXRh LT5kaXNwbGF5Lmhhc191bml2ZXJzYWxfcGxhbmVzKTsKPj4+ICsgICAgICAgIGNvbW1pdCA9IENP TU1JVF9VTklWRVJTQUw7Cj4+PiArICAgIH0KPj4+ICsKPj4+ICsgICAgaWd0X2Rpc3BsYXlfY29t bWl0MihkaXNwbGF5LCBjb21taXQpOwo+Pj4gICAgICAgaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3Jj KGRhdGEtPnBpcGVfY3JjLCAmZGF0YS0+cmVmX2NyYyk7Cj4+Pgo+Pj4gICAgICAgLyoKPj4+IEBA IC0xNTUsNiArMjIzLDcgQEAgc3RhdGljIHZvaWQgY2xlYW51cF9jcnRjKGRhdGFfdCAqZGF0YSwK Pj4+IGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUpCj4+Pgo+Pj4gICAg ICAgaWd0X3JlbW92ZV9mYihkYXRhLT5nZnhfZmQsICZkYXRhLT5mYik7Cj4+PiAgICAgICBpZ3Rf cmVtb3ZlX2ZiKGRhdGEtPmdmeF9mZCwgJmRhdGEtPmZiX2N1cnNvcik7Cj4+PiArICAgIGlndF9y ZW1vdmVfZmIoZGF0YS0+Z2Z4X2ZkLCAmZGF0YS0+ZmJfZnVsbCk7Cj4+Pgo+Pj4gICAgICAgLyog WFhYOiBzZWUgdGhlIG5vdGUgaW4gcHJlcGFyZV9jcnRjKCkgKi8KPj4+ICAgICAgIGlmICghcGxh bmUtPmlzX3ByaW1hcnkpIHsKPj4+IEBAIC0xNzAsNiArMjM5LDY5IEBAIHN0YXRpYyB2b2lkIGNs ZWFudXBfY3J0YyhkYXRhX3QgKmRhdGEsCj4+PiBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3Bs YW5lX3QgKnBsYW5lKQo+Pj4gICAgICAgaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3BsYXkpOwo+Pj4g ICB9Cj4+Pgo+Pj4gK3N0YXRpYyB2b2lkIHRlc3RfdW5zdXBwb3J0ZWRfdGlsaW5nX3BpeGVsX2Zv cm1hdChkYXRhX3QgKmRhdGEsIGVudW0KPj4+IGlndF9wbGFuZSBwbGFuZV90eXBlKQo+Pj4gK3sK Pj4KPj4gSWYgdGhlIGZ1bmN0aW9uIGJvZHkgaGVyZSBpcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBh cwo+PiB0ZXN0X3BsYW5lX3JvdGF0aW9uLCBjb3VsZCB5b3UgYXZvaWQgYWRkaW5nIGR1cGxpY2F0 aW5nIGNvZGUgYnkgcGFzc2luZwo+PiBpbiB0aWxpbmcgYW5kIHBpeGVsIGZvcm1hdCB0byB0ZXN0 X3BsYW5lX3JvdGF0aW9uIChtYXliZSB2aWEgZGF0YSk/IFdpdGgKPj4gYSAiZXhwZWN0IGZhaWwi IGZsYWcsIG9yIGV2ZW4ganVzdCBlbWJlZGRpbmcgdGhlIGtub3dsZWRnZSB3b3VsZCB3b3JrLgo+ Pgo+IFRoZXkgYXJlIG5vdCBzYW1lLiBXZSBkb24ndCBuZWVkIGZldyB0aGluZ3MgZnJvbSB0ZXN0 X3BsYW5lX3JvdGF0aW9uIGluCj4gdGhpcyBvbmUgbGlrZSBwcmVwYXJlX2NydGMuIFNvLCBpbnN0 ZWFkIG9mIHVzaW5nIGlmL2Vsc2UgYXQgbXVsdGlwbGUKPiBwbGFjZXMsIEkgZmluZCBpdCBjbGVh bmVyIHRvIGhhdmUgYSBkaWZmZXJlbnQgZnVuY3Rpb24gZm9yIG5lZ2F0aXZlIHRlc3RzLgoKVG8g bWUgdGhhdCdzIG1hcmdpbmFsIHNpbmNlIEkgdGhpbmsgdGhleSBjb3VsZCBiZSBpZGVudGljYWwg d2l0aCBqdXN0IApvbmUgaWYvZWxzZSB3aGVuIGl0IGNoZWNrcyB3aGF0IHRvIGFzc2VydCBmb3Iu IEJ1dCBuZXZlciBtaW5kLgoKQmlnZ2VyIGlzc3VlIEkgaGF2ZSBpcyBuZWdhdGl2ZSB0ZXN0cyBm YWlsIG9uIG15IGJveC4gOikKClJlZ2FyZHMsCgpUdnJ0a28KCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK