From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C06C089F31 for ; Tue, 5 Mar 2019 14:27:02 +0000 (UTC) Date: Tue, 5 Mar 2019 15:26:59 +0100 From: Katarzyna Dec Message-ID: <20190305142659.GD8924@kdec5-desk.ger.corp.intel.com> References: <20190305014742.3598-1-dhinakaran.pandiyan@intel.com> <20190305014742.3598-3-dhinakaran.pandiyan@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190305014742.3598-3-dhinakaran.pandiyan@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 3/7] tests/gem_render_copy: Test Yf tiling List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Dhinakaran Pandiyan , igt-dev@lists.freedesktop.org List-ID: T24gTW9uLCBNYXIgMDQsIDIwMTkgYXQgMDU6NDc6MzhQTSAtMDgwMCwgRGhpbmFrYXJhbiBQYW5k aXlhbiB3cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+IAo+IExldCdzIHRlc3QgWWYgdGlsaW5nIG5vdyB0aGF0IHJlbmRlcmNvcHkg Y2FuIGhhbmRsZSBpdC4KPiAKPiB2MjogRnJvbSBESwo+ICBTZXQgYnBwIGZvciBZZiBidWZmZXIg YW5kIHJlYmFzZS4KPiAKPiBDYzogTHVrYXN6IEthbGFtYXJ6IDxsdWthc3oua2FsYW1hcnpAaW50 ZWwuY29tPgo+IENjOiBLYXRhcnp5bmEgRGVjIDxrYXRhcnp5bmEuZGVjQGludGVsLmNvbT4KPiBT aWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IFNpZ25lZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFu ZGl5YW5AaW50ZWwuY29tPgo+IC0tLQo+ICB0ZXN0cy9pOTE1L2dlbV9yZW5kZXJfY29weS5jIHwg MjQ2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2Vk LCAxOTUgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Rl c3RzL2k5MTUvZ2VtX3JlbmRlcl9jb3B5LmMgYi90ZXN0cy9pOTE1L2dlbV9yZW5kZXJfY29weS5j Cj4gaW5kZXggMGNkNGU1MGYuLmFmZTJkZjA1IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2k5MTUvZ2Vt X3JlbmRlcl9jb3B5LmMKPiArKysgYi90ZXN0cy9pOTE1L2dlbV9yZW5kZXJfY29weS5jCj4gQEAg LTcyLDExICs3Miw4NSBAQCBzdGF0aWMgY29uc3QgY2hhciAqbWFrZV9maWxlbmFtZShjb25zdCBj aGFyICpmaWxlbmFtZSkKPiAgCXJldHVybiBidWY7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkICps aW5lYXJfY29weShkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYpCj4gK3N0YXRpYyB2 b2lkICp5Zl9wdHIodm9pZCAqcHRyLAo+ICsJCSAgICB1bnNpZ25lZCBpbnQgeCwgdW5zaWduZWQg aW50IHksCj4gKwkJICAgIHVuc2lnbmVkIGludCBzdHJpZGUsIHVuc2lnbmVkIGludCBjcHApCj4g IHsKPiAtCXZvaWQgKm1hcCwgKmxpbmVhcjsKPiArICAgICAgIHggKj0gY3BwOwo+ICsKPiArICAg ICAgIHJldHVybiBwdHIgKwo+ICsJICAgICAgICgoeSAmIH4weDFmKSAqIHN0cmlkZSkgKwo+ICsJ ICAgICAgICgoeSAmIDB4MTApICogNjQpICsKPiArCSAgICAgICAoKHkgJiAweDgpICogMzIpICsK PiArCSAgICAgICAoKHkgJiAweDcpICogMTYpICsKPiArCSAgICAgICAoKHggJiB+MHgzZikgKiAz MikgKwo+ICsJICAgICAgICgoeCAmIDB4MjApICogMTYpICsKPiArCSAgICAgICAoKHggJiAweDEw KSAqIDgpICsKPiArCSAgICAgICAoeCAmIDB4Zik7Cj4gK30KSSBsb29rZWQgdGhyb3VnaCBkb2N1 bWVudGF0aW9uIGFuZCB0aGVzZSBeIHZhbHVlcyBlLmcuIH4weDFmIG90aGVycyB4L3kgJiA/IGFy ZQpzdGlsbCBteXN0ZXJpb3VzLiBNYXliZSB5b3UgY2FuIGRvY3VtZW50IHRoZW0gc29tZWhvdz8K Cj4gIAo+IC0JaWd0X2Fzc2VydF9lcShwb3NpeF9tZW1hbGlnbigmbGluZWFyLCAxNiwgYnVmLT5i by0+c2l6ZSksIDApOwo+ICtzdGF0aWMgdm9pZCBjb3B5X2xpbmVhcl90b195ZihkYXRhX3QgKmRh dGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsIGNvbnN0IHVpbnQzMl90ICpsaW5lYXIpCkl0IHdvdWxk IGJlIGJldHRlciB0byBtb3ZlICdjb25zdCB1aW4zMl90ICpsaW5lYXInIHRvIG5leHQgbGluZSAo YWxpZ25lZCB3aXRoCm90aGVycykuCj4gK3sKPiArCWludCBoZWlnaHQgPSBpZ3RfYnVmX2hlaWdo dChidWYpOwo+ICsJaW50IHdpZHRoID0gaWd0X2J1Zl93aWR0aChidWYpOwo+ICsJdm9pZCAqbWFw Owo+ICsKPiArCWdlbV9zZXRfZG9tYWluKGRhdGEtPmRybV9mZCwgYnVmLT5iby0+aGFuZGxlLAo+ ICsJCSAgICAgICBJOTE1X0dFTV9ET01BSU5fQ1BVLCBJOTE1X0dFTV9ET01BSU5fQ1BVKTsKPiAr CW1hcCA9IGdlbV9tbWFwX19jcHUoZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsIDAsCj4g KwkJCSAgICBidWYtPmJvLT5zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKPiArCj4gKwlm b3IgKGludCB5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7Cj4gKwkJZm9yIChpbnQgeCA9IDA7IHgg PCB3aWR0aDsgeCsrKSB7Cj4gKwkJCXVpbnQzMl90ICpwdHIgPSB5Zl9wdHIobWFwLCB4LCB5LCBi dWYtPnN0cmlkZSwgNCk7ClZhbHVlICc0JyBoZXJlIGlzIGEgY3BwLiBJcyBpdCBjb2xvciBwZXIg cGl4ZWw/IE1heWJlIHdlIGNhbiBkZWZpbmUgdGhpcyB2YWx1ZQpzb21laG93PyBJIHdhbnQgdG8g YXZvaWQgc2l0dWF0aW9uIHdoZW4gdGhlcmUgd2lsbCBiZSBubyBwZW9wbGUgdW5kZXJzdGFuZGlu Zwp0aGlzIGNvZGUgb25ib2FyZC4KPiArCj4gKwkJCSpwdHIgPSBsaW5lYXJbeSAqIHdpZHRoICsg eF07Cj4gKwkJfQo+ICsJfQo+ICsKPiArCW11bm1hcChtYXAsIGJ1Zi0+Ym8tPnNpemUpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb3B5X3lmX3RvX2xpbmVhcihkYXRhX3QgKmRhdGEsIHN0cnVj dCBpZ3RfYnVmICpidWYsIHVpbnQzMl90ICpsaW5lYXIpCj4gK3sKPiArCWludCBoZWlnaHQgPSBp Z3RfYnVmX2hlaWdodChidWYpOwo+ICsJaW50IHdpZHRoID0gaWd0X2J1Zl93aWR0aChidWYpOwo+ ICsJdm9pZCAqbWFwOwo+ICsKPiArCWdlbV9zZXRfZG9tYWluKGRhdGEtPmRybV9mZCwgYnVmLT5i by0+aGFuZGxlLAo+ICsJCSAgICAgICBJOTE1X0dFTV9ET01BSU5fQ1BVLCAwKTsKPiArCW1hcCA9 IGdlbV9tbWFwX19jcHUoZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsIDAsCj4gKwkJCSAg ICBidWYtPmJvLT5zaXplLCBQUk9UX1JFQUQpOwo+ICsKPiArCWZvciAoaW50IHkgPSAwOyB5IDwg aGVpZ2h0OyB5KyspIHsKPiArCQlmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKPiAr CQkJdWludDMyX3QgKnB0ciA9IHlmX3B0cihtYXAsIHgsIHksIGJ1Zi0+c3RyaWRlLCA0KTsKPiAr Cj4gKwkJCWxpbmVhclt5ICogd2lkdGggKyB4XSA9ICpwdHI7Cj4gKwkJfQo+ICsJfQo+ICsKPiAr CW11bm1hcChtYXAsIGJ1Zi0+Ym8tPnNpemUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb3B5 X2xpbmVhcl90b19ndHQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLCBjb25zdCB1 aW50MzJfdCAqbGluZWFyKQo+ICt7Cj4gKwl2b2lkICptYXA7Cj4gKwo+ICsJZ2VtX3NldF9kb21h aW4oZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsCj4gKwkJICAgICAgIEk5MTVfR0VNX0RP TUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOwo+ICsKPiArCW1hcCA9IGdlbV9tbWFwX19n dHQoZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsCj4gKwkJCSAgICBidWYtPmJvLT5zaXpl LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKPiArCj4gKwltZW1jcHkobWFwLCBsaW5lYXIsIGJ1 Zi0+Ym8tPnNpemUpOwo+ICsKPiArCW11bm1hcChtYXAsIGJ1Zi0+Ym8tPnNpemUpOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZCBjb3B5X2d0dF90b19saW5lYXIoZGF0YV90ICpkYXRhLCBzdHJ1Y3Qg aWd0X2J1ZiAqYnVmLCB1aW50MzJfdCAqbGluZWFyKQo+ICt7Cj4gKwl2b2lkICptYXA7Cj4gIAo+ ICAJZ2VtX3NldF9kb21haW4oZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsCj4gIAkJICAg ICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIDApOwo+IEBAIC04Nyw2ICsxNjEsMTggQEAgc3RhdGlj IHZvaWQgKmxpbmVhcl9jb3B5KGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9idWYgKmJ1ZikKPiAg CWlndF9tZW1jcHlfZnJvbV93YyhsaW5lYXIsIG1hcCwgYnVmLT5iby0+c2l6ZSk7Cj4gIAo+ICAJ bXVubWFwKG1hcCwgYnVmLT5iby0+c2l6ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkICpsaW5l YXJfY29weShkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYpCj4gK3sKPiArCXZvaWQg KmxpbmVhcjsKPiArCj4gKwlpZ3RfYXNzZXJ0X2VxKHBvc2l4X21lbWFsaWduKCZsaW5lYXIsIDE2 LCBidWYtPmJvLT5zaXplKSwgMCk7ClRoZXJlIGlzIG5vdCBzaWxseSBxdWVzdGlvbnMsIEkgYmVs aWV2ZSwgd2hhdCBpcyAnMTYnIF4gYWJvdmU/IElzIHRoaXMgc2l6ZQpmaXhlZCBzb21laG93PyBJ IHdvdWxkIHByZWZlciBkZWZpbmluZyBpdCBpbiBzb21lIHdheS4KPiArCj4gKwlpZiAoYnVmLT50 aWxpbmcgPT0gSTkxNV9USUxJTkdfWWYpCj4gKwkJY29weV95Zl90b19saW5lYXIoZGF0YSwgYnVm LCBsaW5lYXIpOwo+ICsJZWxzZQo+ICsJCWNvcHlfZ3R0X3RvX2xpbmVhcihkYXRhLCBidWYsIGxp bmVhcik7Cj4gIAo+ICAJcmV0dXJuIGxpbmVhcjsKPiAgfQo+IEBAIC0xNzMsNyArMjU5LDcgQEAg c3RhdGljIHZvaWQgc2NyYXRjaF9idWZfZHJhd19wYXR0ZXJuKGRhdGFfdCAqZGF0YSwgc3RydWN0 IGlndF9idWYgKmJ1ZiwKPiAgCWNhaXJvX3N1cmZhY2VfdCAqc3VyZmFjZTsKPiAgCWNhaXJvX3Bh dHRlcm5fdCAqcGF0Owo+ICAJY2Fpcm9fdCAqY3I7Cj4gLQl2b2lkICptYXAsICpsaW5lYXI7Cj4g Kwl2b2lkICpsaW5lYXI7Cj4gIAo+ICAJbGluZWFyID0gbGluZWFyX2NvcHkoZGF0YSwgYnVmKTsK PiAgCj4gQEAgLTIxNiwxNSArMzAyLDEwIEBAIHN0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2RyYXdf cGF0dGVybihkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsCj4gIAo+ICAJY2Fpcm9f c3VyZmFjZV9kZXN0cm95KHN1cmZhY2UpOwo+ICAKPiAtCWdlbV9zZXRfZG9tYWluKGRhdGEtPmRy bV9mZCwgYnVmLT5iby0+aGFuZGxlLAo+IC0JCSAgICAgICBJOTE1X0dFTV9ET01BSU5fR1RULCBJ OTE1X0dFTV9ET01BSU5fR1RUKTsKPiAtCj4gLQltYXAgPSBnZW1fbW1hcF9fZ3R0KGRhdGEtPmRy bV9mZCwgYnVmLT5iby0+aGFuZGxlLAo+IC0JCQkgICAgYnVmLT5iby0+c2l6ZSwgUFJPVF9SRUFE IHwgUFJPVF9XUklURSk7Cj4gLQo+IC0JbWVtY3B5KG1hcCwgbGluZWFyLCBidWYtPmJvLT5zaXpl KTsKPiAtCj4gLQltdW5tYXAobWFwLCBidWYtPmJvLT5zaXplKTsKPiArCWlmIChidWYtPnRpbGlu ZyA9PSBJOTE1X1RJTElOR19ZZikKPiArCQljb3B5X2xpbmVhcl90b195ZihkYXRhLCBidWYsIGxp bmVhcik7Cj4gKwllbHNlCj4gKwkJY29weV9saW5lYXJfdG9fZ3R0KGRhdGEsIGJ1ZiwgbGluZWFy KTsKPiAgCj4gIAlmcmVlKGxpbmVhcik7Cj4gIH0KPiBAQCAtMjM2LDM2ICszMTcsNTkgQEAgc2Ny YXRjaF9idWZfY29weShkYXRhX3QgKmRhdGEsCj4gIHsKPiAgCWludCB3aWR0aCA9IGlndF9idWZf d2lkdGgoZHN0KTsKPiAgCWludCBoZWlnaHQgID0gaWd0X2J1Zl9oZWlnaHQoZHN0KTsKPiAtCXVp bnQzMl90ICpsaW5lYXJfZHN0LCAqbGluZWFyX3NyYzsKPiArCXVpbnQzMl90ICpsaW5lYXJfZHN0 Owo+ICAKPiAgCWlndF9hc3NlcnRfZXEoaWd0X2J1Zl93aWR0aChkc3QpLCBpZ3RfYnVmX3dpZHRo KHNyYykpOwo+ICAJaWd0X2Fzc2VydF9lcShpZ3RfYnVmX2hlaWdodChkc3QpLCBpZ3RfYnVmX2hl aWdodChzcmMpKTsKPiAgCWlndF9hc3NlcnRfZXEoZHN0LT5iby0+c2l6ZSwgc3JjLT5iby0+c2l6 ZSk7Cj4gIAo+ICsJdyA9IG1pbih3LCB3aWR0aCAtIHN4KTsKPiArCXcgPSBtaW4odywgd2lkdGgg LSBkeCk7Cj4gKwo+ICsJaCA9IG1pbihoLCBoZWlnaHQgLSBzeSk7Cj4gKwloID0gbWluKGgsIGhl aWdodCAtIGR5KTsKPiArCj4gIAlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIGRzdC0+Ym8t PmhhbmRsZSwKPiAgCQkgICAgICAgSTkxNV9HRU1fRE9NQUlOX0dUVCwgSTkxNV9HRU1fRE9NQUlO X0dUVCk7Cj4gLQlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIHNyYy0+Ym8tPmhhbmRsZSwK PiAtCQkgICAgICAgSTkxNV9HRU1fRE9NQUlOX0dUVCwgMCk7Cj4gLQo+ICAJbGluZWFyX2RzdCA9 IGdlbV9tbWFwX19ndHQoZGF0YS0+ZHJtX2ZkLCBkc3QtPmJvLT5oYW5kbGUsCj4gIAkJCQkgICBk c3QtPmJvLT5zaXplLCBQUk9UX1dSSVRFKTsKPiAtCWxpbmVhcl9zcmMgPSBnZW1fbW1hcF9fZ3R0 KGRhdGEtPmRybV9mZCwgc3JjLT5iby0+aGFuZGxlLAo+IC0JCQkJICAgc3JjLT5iby0+c2l6ZSwg UFJPVF9SRUFEKTsKPiAgCj4gLQl3ID0gbWluKHcsIHdpZHRoIC0gc3gpOwo+IC0JdyA9IG1pbih3 LCB3aWR0aCAtIGR4KTsKPiArCWlmIChzcmMtPnRpbGluZyA9PSBJOTE1X1RJTElOR19ZZikgewo+ ICsJCXZvaWQgKm1hcDsKPiAgCj4gLQloID0gbWluKGgsIGhlaWdodCAtIHN5KTsKPiAtCWggPSBt aW4oaCwgaGVpZ2h0IC0gZHkpOwo+ICsJCWdlbV9zZXRfZG9tYWluKGRhdGEtPmRybV9mZCwgc3Jj LT5iby0+aGFuZGxlLAo+ICsJCQkgICAgICAgSTkxNV9HRU1fRE9NQUlOX0NQVSwgMCk7Cj4gKwkJ bWFwID0gZ2VtX21tYXBfX2NwdShkYXRhLT5kcm1fZmQsIHNyYy0+Ym8tPmhhbmRsZSwgMCwKPiAr CQkJCSAgICBzcmMtPmJvLT5zaXplLCBQUk9UX1JFQUQpOwo+ICsKPiArCQlmb3IgKGludCB5ID0g MDsgeSA8IGg7IHkrKykgewo+ICsJCQlmb3IgKGludCB4ID0gMDsgeCA8IHc7IHgrKykgewo+ICsJ CQkJY29uc3QgdWludDMyX3QgKnB0ciA9IHlmX3B0cihtYXAsIHN4K3gsIHN5K3ksIHNyYy0+c3Ry aWRlLCA0KTsKU2FtZSBjb21tZW50IGFzIGFib3ZlIGFjY29yZGluZyAnNCcuCj4gKwo+ICsJCQkJ bGluZWFyX2RzdFsoZHkreSkgKiB3aWR0aCArIGR4K3hdID0gKnB0cjsKPiArCQkJfQo+ICsJCX0K PiArCj4gKwkJbXVubWFwKG1hcCwgc3JjLT5iby0+c2l6ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCXVp bnQzMl90ICpsaW5lYXJfc3JjOwo+ICsKPiArCQlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQs IHNyYy0+Ym8tPmhhbmRsZSwKPiArCQkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIDApOwo+ ICAKPiAtCWZvciAoaW50IHkgPSAwOyB5IDwgaDsgeSsrKSB7Cj4gLQkJaWd0X21lbWNweV9mcm9t X3djKCZsaW5lYXJfZHN0WyhkeSt5KSAqIHdpZHRoICsgZHhdLAo+IC0JCQkJICAgJmxpbmVhcl9z cmNbKHN5K3kpICogd2lkdGggKyBzeF0sCj4gLQkJCQkgICB3ICogNCk7CkhvdyBjYW4geW91IG1h a2Ugc3VyZSB0aGF0IHcqNCBpcyBlbm91Z2g/IChBZ2FpbiAtIHRoaXMgY2FuIGJlIGEgc2lsbHkK cXVlc3Rpb24pLiBBcyBJIHNlZSBiZWxvdyBpdCBjYW4gYmUgY29ubmVjdGVkIHdpdGggc3RyaWRl LCBpcyBpdD8KCkthc2lhCj4gKwkJbGluZWFyX3NyYyA9IGdlbV9tbWFwX19ndHQoZGF0YS0+ZHJt X2ZkLCBzcmMtPmJvLT5oYW5kbGUsCj4gKwkJCQkJICAgc3JjLT5iby0+c2l6ZSwgUFJPVF9SRUFE KTsKPiArCj4gKwkJZm9yIChpbnQgeSA9IDA7IHkgPCBoOyB5KyspIHsKPiArCQkJaWd0X21lbWNw eV9mcm9tX3djKCZsaW5lYXJfZHN0WyhkeSt5KSAqIHdpZHRoICsgZHhdLAo+ICsJCQkJCSAgICZs aW5lYXJfc3JjWyhzeSt5KSAqIHdpZHRoICsgc3hdLAo+ICsJCQkJCSAgIHcgKiA0KTsKPiArCQl9 Cj4gKwo+ICsJCW11bm1hcChsaW5lYXJfc3JjLCBzcmMtPmJvLT5zaXplKTsKPiAgCX0KPiAgCj4g IAltdW5tYXAobGluZWFyX2RzdCwgZHN0LT5iby0+c2l6ZSk7Cj4gLQltdW5tYXAobGluZWFyX3Ny Yywgc3JjLT5iby0+c2l6ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2lu aXQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAo+IEBAIC0yODIsNyArMzg2LDgg QEAgc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfaW5pdChkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3Rf YnVmICpidWYsCj4gIAkJaW50IHNpemU7Cj4gIAo+ICAJCWlndF9yZXF1aXJlKGludGVsX2dlbihk YXRhLT5kZXZpZCkgPj0gOSk7Cj4gLQkJaWd0X2Fzc2VydF9lcSh0aWxpbmcsIEk5MTVfVElMSU5H X1kpOwo+ICsJCWlndF9hc3NlcnQodGlsaW5nID09IEk5MTVfVElMSU5HX1kgfHwKPiArCQkJICAg dGlsaW5nID09IEk5MTVfVElMSU5HX1lmKTsKPiAgCj4gIAkJYnVmLT5zdHJpZGUgPSBBTElHTih3 aWR0aCAqIDQsIDEyOCk7Cj4gIAkJYnVmLT5zaXplID0gYnVmLT5zdHJpZGUgKiBoZWlnaHQ7Cj4g QEAgLTI5OSw4ICs0MDQsMjEgQEAgc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfaW5pdChkYXRhX3Qg KmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsCj4gIAo+ICAJCWJ1Zi0+Ym8gPSBkcm1faW50ZWxf Ym9fYWxsb2MoZGF0YS0+YnVmbWdyLCAiIiwgc2l6ZSwgNDA5Nik7Cj4gIAo+IC0JCWRybV9pbnRl bF9ib19zZXRfdGlsaW5nKGJ1Zi0+Ym8sICZ0aWxpbmcsIGJ1Zi0+c3RyaWRlKTsKPiAtCQlpZ3Rf YXNzZXJ0X2VxKHRpbGluZywgcmVxX3RpbGluZyk7Cj4gKwkJaWYgKHRpbGluZyA9PSBJOTE1X1RJ TElOR19ZKSB7Cj4gKwkJCWRybV9pbnRlbF9ib19zZXRfdGlsaW5nKGJ1Zi0+Ym8sICZ0aWxpbmcs IGJ1Zi0+c3RyaWRlKTsKPiArCQkJaWd0X2Fzc2VydF9lcSh0aWxpbmcsIHJlcV90aWxpbmcpOwo+ ICsJCX0KPiArCX0gZWxzZSBpZiAocmVxX3RpbGluZyA9PSBJOTE1X1RJTElOR19ZZikgewo+ICsJ CWludCBzaXplOwo+ICsKPiArCQlidWYtPnN0cmlkZSA9IEFMSUdOKHdpZHRoICogNCwgMTI4KTsK PiArCQlidWYtPnNpemUgPSBidWYtPnN0cmlkZSAqIGhlaWdodDsKPiArCQlidWYtPnRpbGluZyA9 IHRpbGluZzsKPiArCQlidWYtPmJwcCA9IDMyOwo+ICsKPiArCQlzaXplID0gYnVmLT5zdHJpZGUg KiBBTElHTihoZWlnaHQsIDMyKTsKPiArCj4gKwkJYnVmLT5ibyA9IGRybV9pbnRlbF9ib19hbGxv YyhkYXRhLT5idWZtZ3IsICIiLCBzaXplLCA0MDk2KTsKPiAgCX0gZWxzZSB7Cj4gIAkJYnVmLT5i byA9IGRybV9pbnRlbF9ib19hbGxvY190aWxlZChkYXRhLT5idWZtZ3IsICIiLAo+ICAJCQkJCQkg ICB3aWR0aCwgaGVpZ2h0LCA0LAo+IEBAIC0zOTYsNyArNTE0LDcgQEAgc3RhdGljIHZvaWQgc2Ny YXRjaF9idWZfYXV4X2NoZWNrKGRhdGFfdCAqZGF0YSwKPiAgCQkgICAgICJBdXggc3VyZmFjZSBp bmRpY2F0ZXMgdGhhdCBub3RoaW5nIHdhcyBjb21wcmVzc2VkXG4iKTsKPiAgfQo+ICAKPiAtc3Rh dGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgYm9vbCB0ZXN0X2Nj cykKPiArc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgdWlu dDY0X3QgY2NzX21vZGlmaWVyKQo+ICB7Cj4gIAlzdHJ1Y3QgaWd0X2J1ZiBkc3QsIGNjcywgcmVm Owo+ICAJc3RydWN0IHsKPiBAQCAtNDA0LDcgKzUyMiw3IEBAIHN0YXRpYyB2b2lkIHRlc3QoZGF0 YV90ICpkYXRhLCB1aW50MzJfdCB0aWxpbmcsIGJvb2wgdGVzdF9jY3MpCj4gIAkJY29uc3QgY2hh ciAqZmlsZW5hbWU7Cj4gIAkJdWludDMyX3QgdGlsaW5nOwo+ICAJCWludCB4LCB5Owo+IC0JfSBz cmNbM10gPSB7Cj4gKwl9IHNyY1tdID0gewo+ICAJCXsKPiAgCQkJLmZpbGVuYW1lID0gInNvdXJj ZS1saW5lYXIucG5nIiwKPiAgCQkJLnRpbGluZyA9IEk5MTVfVElMSU5HX05PTkUsCj4gQEAgLTQy MCwxOCArNTM4LDMxIEBAIHN0YXRpYyB2b2lkIHRlc3QoZGF0YV90ICpkYXRhLCB1aW50MzJfdCB0 aWxpbmcsIGJvb2wgdGVzdF9jY3MpCj4gIAkJCS50aWxpbmcgPSBJOTE1X1RJTElOR19ZLAo+ICAJ CQkueCA9IFdJRFRILzIrMSwgLnkgPSAxLAo+ICAJCX0sCj4gKwkJewo+ICsJCQkuZmlsZW5hbWUg PSAic291cmNlLXlmLXRpbGVkLnBuZyIsCj4gKwkJCS50aWxpbmcgPSBJOTE1X1RJTElOR19ZZiwK PiArCQkJLnggPSAxLCAueSA9IDEsCj4gKwkJfSwKPiAgCX07Cj4gIAo+ICAJaW50IG9wdF9kdW1w X2F1YiA9IGlndF9hdWJfZHVtcF9lbmFibGVkKCk7Cj4gKwlpbnQgbnVtX3NyYyA9IEFSUkFZX1NJ WkUoc3JjKTsKPiArCj4gKwkvKiBubyBZZiBiZWZvcmUgZ2VuOSAqLwo+ICsJaWYgKGludGVsX2dl bihkYXRhLT5kZXZpZCkgPCA5KQo+ICsJCW51bV9zcmMtLTsKPiArCj4gKwlpZiAodGlsaW5nID09 IEk5MTVfVElMSU5HX1lmIHx8IGNjc19tb2RpZmllcikKPiArCQlpZ3RfcmVxdWlyZShpbnRlbF9n ZW4oZGF0YS0+ZGV2aWQpID49IDkpOwo+ICAKPiAtCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlf U0laRShzcmMpOyBpKyspCj4gKwlmb3IgKGludCBpID0gMDsgaSA8IG51bV9zcmM7IGkrKykKPiAg CQlzY3JhdGNoX2J1Zl9pbml0KGRhdGEsICZzcmNbaV0uYnVmLCBXSURUSCwgSEVJR0hULCBzcmNb aV0udGlsaW5nLCBmYWxzZSk7Cj4gIAlzY3JhdGNoX2J1Zl9pbml0KGRhdGEsICZkc3QsIFdJRFRI LCBIRUlHSFQsIHRpbGluZywgZmFsc2UpOwo+IC0JaWYgKHRlc3RfY2NzKQo+IC0JCXNjcmF0Y2hf YnVmX2luaXQoZGF0YSwgJmNjcywgV0lEVEgsIEhFSUdIVCwgSTkxNV9USUxJTkdfWSwgdHJ1ZSk7 Cj4gKwlpZiAoY2NzX21vZGlmaWVyKQo+ICsJCXNjcmF0Y2hfYnVmX2luaXQoZGF0YSwgJmNjcywg V0lEVEgsIEhFSUdIVCwgY2NzX21vZGlmaWVyLCB0cnVlKTsKPiAgCXNjcmF0Y2hfYnVmX2luaXQo ZGF0YSwgJnJlZiwgV0lEVEgsIEhFSUdIVCwgSTkxNV9USUxJTkdfTk9ORSwgZmFsc2UpOwo+ICAK PiAtCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShzcmMpOyBpKyspCj4gKwlmb3IgKGlu dCBpID0gMDsgaSA8IG51bV9zcmM7IGkrKykKPiAgCQlzY3JhdGNoX2J1Zl9kcmF3X3BhdHRlcm4o ZGF0YSwgJnNyY1tpXS5idWYsCj4gIAkJCQkJIDAsIDAsIFdJRFRILCBIRUlHSFQsCj4gIAkJCQkJ IDAsIDAsIFdJRFRILCBIRUlHSFQsIHRydWUpOwo+IEBAIC00NDIsMTMgKzU3MywxMyBAQCBzdGF0 aWMgdm9pZCB0ZXN0KGRhdGFfdCAqZGF0YSwgdWludDMyX3QgdGlsaW5nLCBib29sIHRlc3RfY2Nz KQo+ICAJc2NyYXRjaF9idWZfY29weShkYXRhLAo+ICAJCQkgJmRzdCwgMCwgMCwgV0lEVEgsIEhF SUdIVCwKPiAgCQkJICZyZWYsIDAsIDApOwo+IC0JZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9T SVpFKHNyYyk7IGkrKykKPiArCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3NyYzsgaSsrKQo+ICAJ CXNjcmF0Y2hfYnVmX2NvcHkoZGF0YSwKPiAgCQkJCSAmc3JjW2ldLmJ1ZiwgV0lEVEgvNCwgSEVJ R0hULzQsIFdJRFRILzItMiwgSEVJR0hULzItMiwKPiAgCQkJCSAmcmVmLCBzcmNbaV0ueCwgc3Jj W2ldLnkpOwo+ICAKPiAgCWlmIChvcHRfZHVtcF9wbmcpIHsKPiAtCQlmb3IgKGludCBpID0gMDsg aSA8IEFSUkFZX1NJWkUoc3JjKTsgaSsrKQo+ICsJCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3Ny YzsgaSsrKQo+ICAJCQlzY3JhdGNoX2J1Zl93cml0ZV90b19wbmcoZGF0YSwgJnNyY1tpXS5idWYs IHNyY1tpXS5maWxlbmFtZSk7Cj4gIAkJc2NyYXRjaF9idWZfd3JpdGVfdG9fcG5nKGRhdGEsICZk c3QsICJkZXN0aW5hdGlvbi5wbmciKTsKPiAgCQlzY3JhdGNoX2J1Zl93cml0ZV90b19wbmcoZGF0 YSwgJnJlZiwgInJlZmVyZW5jZS5wbmciKTsKPiBAQCAtNDY4LDI0ICs1OTksMjQgQEAgc3RhdGlj IHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgYm9vbCB0ZXN0X2NjcykK PiAgCSAqCSB8ZHN0fHNyY3wKPiAgCSAqCSAgLS0tLS0tLQo+ICAJICovCj4gLQlpZiAodGVzdF9j Y3MpCj4gKwlpZiAoY2NzX21vZGlmaWVyKQo+ICAJCWRhdGEtPnJlbmRlcl9jb3B5KGRhdGEtPmJh dGNoLCBOVUxMLAo+ICAJCQkJICAmZHN0LCAwLCAwLCBXSURUSCwgSEVJR0hULAo+ICAJCQkJICAm Y2NzLCAwLCAwKTsKPiAgCj4gLQlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoc3JjKTsg aSsrKQo+ICsJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fc3JjOyBpKyspCj4gIAkJZGF0YS0+cmVu ZGVyX2NvcHkoZGF0YS0+YmF0Y2gsIE5VTEwsCj4gIAkJCQkgICZzcmNbaV0uYnVmLCBXSURUSC80 LCBIRUlHSFQvNCwgV0lEVEgvMi0yLCBIRUlHSFQvMi0yLAo+IC0JCQkJICB0ZXN0X2NjcyA/ICZj Y3MgOiAmZHN0LCBzcmNbaV0ueCwgc3JjW2ldLnkpOwo+ICsJCQkJICBjY3NfbW9kaWZpZXIgPyAm Y2NzIDogJmRzdCwgc3JjW2ldLngsIHNyY1tpXS55KTsKPiAgCj4gLQlpZiAodGVzdF9jY3MpCj4g KwlpZiAoY2NzX21vZGlmaWVyKQo+ICAJCWRhdGEtPnJlbmRlcl9jb3B5KGRhdGEtPmJhdGNoLCBO VUxMLAo+ICAJCQkJICAmY2NzLCAwLCAwLCBXSURUSCwgSEVJR0hULAo+ICAJCQkJICAmZHN0LCAw LCAwKTsKPiAgCj4gIAlpZiAob3B0X2R1bXBfcG5nKXsKPiAgCQlzY3JhdGNoX2J1Zl93cml0ZV90 b19wbmcoZGF0YSwgJmRzdCwgInJlc3VsdC5wbmciKTsKPiAtCQlpZiAodGVzdF9jY3MpIHsKPiAr CQlpZiAoY2NzX21vZGlmaWVyKSB7Cj4gIAkJCXNjcmF0Y2hfYnVmX3dyaXRlX3RvX3BuZyhkYXRh LCAmY2NzLCAiY29tcHJlc3NlZC5wbmciKTsKPiAgCQkJc2NyYXRjaF9idWZfYXV4X3dyaXRlX3Rv X3BuZyhkYXRhLCAmY2NzLCAiY29tcHJlc3NlZC1hdXgucG5nIik7Cj4gIAkJfQo+IEBAIC01MDUs NyArNjM2LDcgQEAgc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGlu ZywgYm9vbCB0ZXN0X2NjcykKPiAgCQlzY3JhdGNoX2J1Zl9jaGVjayhkYXRhLCAmZHN0LCAmcmVm LCBXSURUSCAtIDEwLCBIRUlHSFQgLSAxMCk7Cj4gIAl9Cj4gIAo+IC0JaWYgKHRlc3RfY2NzKQo+ ICsJaWYgKGNjc19tb2RpZmllcikKPiAgCQlzY3JhdGNoX2J1Zl9hdXhfY2hlY2soZGF0YSwgJmNj cyk7Cj4gIH0KPiAgCj4gQEAgLTU0NiwxOCArNjc3LDMxIEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKPiAgCX0KPiAgCj4gIAlpZ3Rfc3VidGVzdCgibGluZWFyIikKPiAtCQl0ZXN0 KCZkYXRhLCBJOTE1X1RJTElOR19OT05FLCBmYWxzZSk7Cj4gKwkJdGVzdCgmZGF0YSwgSTkxNV9U SUxJTkdfTk9ORSwgMCk7Cj4gIAlpZ3Rfc3VidGVzdCgieC10aWxlZCIpCj4gLQkJdGVzdCgmZGF0 YSwgSTkxNV9USUxJTkdfWCwgZmFsc2UpOwo+ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1gs IDApOwo+ICAJaWd0X3N1YnRlc3QoInktdGlsZWQiKQo+IC0JCXRlc3QoJmRhdGEsIEk5MTVfVElM SU5HX1ksIGZhbHNlKTsKPiArCQl0ZXN0KCZkYXRhLCBJOTE1X1RJTElOR19ZLCAwKTsKPiArCWln dF9zdWJ0ZXN0KCJ5Zi10aWxlZCIpCj4gKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWWYsIDAp Owo+ICAKPiAgCWlndF9zdWJ0ZXN0KCJ5LXRpbGVkLWNjcy10by1saW5lYXIiKQo+IC0JCXRlc3Qo JmRhdGEsIEk5MTVfVElMSU5HX05PTkUsIHRydWUpOwo+ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElM SU5HX05PTkUsIEk5MTVfVElMSU5HX1kpOwo+ICAJaWd0X3N1YnRlc3QoInktdGlsZWQtY2NzLXRv LXgtdGlsZWQiKQo+IC0JCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1gsIHRydWUpOwo+ICsJCXRl c3QoJmRhdGEsIEk5MTVfVElMSU5HX1gsIEk5MTVfVElMSU5HX1kpOwo+ICAJaWd0X3N1YnRlc3Qo InktdGlsZWQtY2NzLXRvLXktdGlsZWQiKQo+IC0JCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1ks IHRydWUpOwo+ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1ksIEk5MTVfVElMSU5HX1kpOwo+ ICsJaWd0X3N1YnRlc3QoInktdGlsZWQtY2NzLXRvLXlmLXRpbGVkIikKPiArCQl0ZXN0KCZkYXRh LCBJOTE1X1RJTElOR19ZZiwgSTkxNV9USUxJTkdfWSk7Cj4gKwo+ICsJaWd0X3N1YnRlc3QoInlm LXRpbGVkLWNjcy10by1saW5lYXIiKQo+ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX05PTkUs IEk5MTVfVElMSU5HX1lmKTsKPiArCWlndF9zdWJ0ZXN0KCJ5Zi10aWxlZC1jY3MtdG8teC10aWxl ZCIpCj4gKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWCwgSTkxNV9USUxJTkdfWWYpOwo+ICsJ aWd0X3N1YnRlc3QoInlmLXRpbGVkLWNjcy10by15LXRpbGVkIikKPiArCQl0ZXN0KCZkYXRhLCBJ OTE1X1RJTElOR19ZLCBJOTE1X1RJTElOR19ZZik7Cj4gKwlpZ3Rfc3VidGVzdCgieWYtdGlsZWQt Y2NzLXRvLXlmLXRpbGVkIikKPiArCQl0ZXN0KCZkYXRhLCBJOTE1X1RJTElOR19ZZiwgSTkxNV9U SUxJTkdfWWYpOwo+ICAKPiAgCWlndF9maXh0dXJlIHsKPiAgCQlpbnRlbF9iYXRjaGJ1ZmZlcl9m cmVlKGRhdGEuYmF0Y2gpOwo+IC0tIAo+IDIuMTcuMQo+IApfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXY=