From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 42FAC8972D for ; Mon, 25 Feb 2019 13:49:46 +0000 (UTC) Date: Mon, 25 Feb 2019 14:49:43 +0100 From: Katarzyna Dec Message-ID: <20190225134943.GD20992@kdec5-desk.ger.corp.intel.com> References: <20190221144109.28220-1-dhinakaran.pandiyan@intel.com> <20190221144109.28220-3-dhinakaran.pandiyan@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190221144109.28220-3-dhinakaran.pandiyan@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 2/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 , Ville =?utf-8?B?U3lyasOkbMOk?= , lukasz.kalamarz@intel.com Cc: igt-dev@lists.freedesktop.org List-ID: T24gVGh1LCBGZWIgMjEsIDIwMTkgYXQgMDY6NDE6MDRBTSAtMDgwMCwgRGhpbmFrYXJhbiBQYW5k 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 KSAqIDgpICsKPiArCSAgICAgICAoeCAmIDB4Zik7Ckl0IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSBj b21tZW50cyBvbiB0aGVzZSBeXl4gdmFsdWVzIChlLmcuIHkgJiA/PykuIEkgaGF2ZSBubwppZGVh IHdoYXQgYXJlIHRoZXkuIElmIHNvbWV0aGluZyBnb2VzIHdyb25nIGFuZCBsZXNzIGV4cGVyaWVu Y2VkIHBlcnNvbiB3aWxsIGJlCmRlYnVnZ2luZyBpdCBjYW4gdGFrZSBhZ2VzLgoKRm9yIG1vcmUg ZGV0YWlsZWQgcmV2aWV3IEx1a2FzeiBLYWxhbWFyeiB3aWxsIGJlIGJldHRlciBwZXJzb24uCkth c2lhIDopCj4gK30KPiAgCj4gLQlpZ3RfYXNzZXJ0X2VxKHBvc2l4X21lbWFsaWduKCZsaW5lYXIs IDE2LCBidWYtPmJvLT5zaXplKSwgMCk7Cj4gK3N0YXRpYyB2b2lkIGNvcHlfbGluZWFyX3RvX3lm KGRhdGFfdCAqZGF0YSwgc3RydWN0IGlndF9idWYgKmJ1ZiwgY29uc3QgdWludDMyX3QgKmxpbmVh cikKPiArewo+ICsJaW50IGhlaWdodCA9IGlndF9idWZfaGVpZ2h0KGJ1Zik7Cj4gKwlpbnQgd2lk dGggPSBpZ3RfYnVmX3dpZHRoKGJ1Zik7Cj4gKwl2b2lkICptYXA7Cj4gKwo+ICsJZ2VtX3NldF9k b21haW4oZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsCj4gKwkJICAgICAgIEk5MTVfR0VN X0RPTUFJTl9DUFUsIEk5MTVfR0VNX0RPTUFJTl9DUFUpOwo+ICsJbWFwID0gZ2VtX21tYXBfX2Nw dShkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRsZSwgMCwKPiArCQkJICAgIGJ1Zi0+Ym8tPnNp emUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwo+ICsKPiArCWZvciAoaW50IHkgPSAwOyB5IDwg aGVpZ2h0OyB5KyspIHsKPiArCQlmb3IgKGludCB4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKPiAr CQkJdWludDMyX3QgKnB0ciA9IHlmX3B0cihtYXAsIHgsIHksIGJ1Zi0+c3RyaWRlLCA0KTsKPiAr Cj4gKwkJCSpwdHIgPSBsaW5lYXJbeSAqIHdpZHRoICsgeF07Cj4gKwkJfQo+ICsJfQo+ICsKPiAr CW11bm1hcChtYXAsIGJ1Zi0+Ym8tPnNpemUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb3B5 X3lmX3RvX2xpbmVhcihkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsIHVpbnQzMl90 ICpsaW5lYXIpCj4gK3sKPiArCWludCBoZWlnaHQgPSBpZ3RfYnVmX2hlaWdodChidWYpOwo+ICsJ aW50IHdpZHRoID0gaWd0X2J1Zl93aWR0aChidWYpOwo+ICsJdm9pZCAqbWFwOwo+ICsKPiArCWdl bV9zZXRfZG9tYWluKGRhdGEtPmRybV9mZCwgYnVmLT5iby0+aGFuZGxlLAo+ICsJCSAgICAgICBJ OTE1X0dFTV9ET01BSU5fQ1BVLCAwKTsKPiArCW1hcCA9IGdlbV9tbWFwX19jcHUoZGF0YS0+ZHJt X2ZkLCBidWYtPmJvLT5oYW5kbGUsIDAsCj4gKwkJCSAgICBidWYtPmJvLT5zaXplLCBQUk9UX1JF QUQpOwo+ICsKPiArCWZvciAoaW50IHkgPSAwOyB5IDwgaGVpZ2h0OyB5KyspIHsKPiArCQlmb3Ig KGludCB4ID0gMDsgeCA8IHdpZHRoOyB4KyspIHsKPiArCQkJdWludDMyX3QgKnB0ciA9IHlmX3B0 cihtYXAsIHgsIHksIGJ1Zi0+c3RyaWRlLCA0KTsKPiArCj4gKwkJCWxpbmVhclt5ICogd2lkdGgg KyB4XSA9ICpwdHI7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCW11bm1hcChtYXAsIGJ1Zi0+Ym8tPnNp emUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb3B5X2xpbmVhcl90b19ndHQoZGF0YV90ICpk YXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLCBjb25zdCB1aW50MzJfdCAqbGluZWFyKQo+ICt7Cj4g Kwl2b2lkICptYXA7Cj4gKwo+ICsJZ2VtX3NldF9kb21haW4oZGF0YS0+ZHJtX2ZkLCBidWYtPmJv LT5oYW5kbGUsCj4gKwkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJ Tl9HVFQpOwo+ICsKPiArCW1hcCA9IGdlbV9tbWFwX19ndHQoZGF0YS0+ZHJtX2ZkLCBidWYtPmJv LT5oYW5kbGUsCj4gKwkJCSAgICBidWYtPmJvLT5zaXplLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRF KTsKPiArCj4gKwltZW1jcHkobWFwLCBsaW5lYXIsIGJ1Zi0+Ym8tPnNpemUpOwo+ICsKPiArCW11 bm1hcChtYXAsIGJ1Zi0+Ym8tPnNpemUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjb3B5X2d0 dF90b19saW5lYXIoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLCB1aW50MzJfdCAq bGluZWFyKQo+ICt7Cj4gKwl2b2lkICptYXA7Cj4gIAo+ICAJZ2VtX3NldF9kb21haW4oZGF0YS0+ ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsCj4gIAkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQs IDApOwo+IEBAIC04Nyw2ICsxNjEsMTggQEAgc3RhdGljIHZvaWQgKmxpbmVhcl9jb3B5KGRhdGFf dCAqZGF0YSwgc3RydWN0IGlndF9idWYgKmJ1ZikKPiAgCWlndF9tZW1jcHlfZnJvbV93YyhsaW5l YXIsIG1hcCwgYnVmLT5iby0+c2l6ZSk7Cj4gIAo+ICAJbXVubWFwKG1hcCwgYnVmLT5iby0+c2l6 ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkICpsaW5lYXJfY29weShkYXRhX3QgKmRhdGEsIHN0 cnVjdCBpZ3RfYnVmICpidWYpCj4gK3sKPiArCXZvaWQgKmxpbmVhcjsKPiArCj4gKwlpZ3RfYXNz ZXJ0X2VxKHBvc2l4X21lbWFsaWduKCZsaW5lYXIsIDE2LCBidWYtPmJvLT5zaXplKSwgMCk7Cj4g Kwo+ICsJaWYgKGJ1Zi0+dGlsaW5nID09IEk5MTVfVElMSU5HX1lmKQo+ICsJCWNvcHlfeWZfdG9f bGluZWFyKGRhdGEsIGJ1ZiwgbGluZWFyKTsKPiArCWVsc2UKPiArCQljb3B5X2d0dF90b19saW5l YXIoZGF0YSwgYnVmLCBsaW5lYXIpOwo+ICAKPiAgCXJldHVybiBsaW5lYXI7Cj4gIH0KPiBAQCAt MTczLDcgKzI1OSw3IEBAIHN0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2RyYXdfcGF0dGVybihkYXRh X3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsCj4gIAljYWlyb19zdXJmYWNlX3QgKnN1cmZh Y2U7Cj4gIAljYWlyb19wYXR0ZXJuX3QgKnBhdDsKPiAgCWNhaXJvX3QgKmNyOwo+IC0Jdm9pZCAq bWFwLCAqbGluZWFyOwo+ICsJdm9pZCAqbGluZWFyOwo+ICAKPiAgCWxpbmVhciA9IGxpbmVhcl9j b3B5KGRhdGEsIGJ1Zik7Cj4gIAo+IEBAIC0yMTYsMTUgKzMwMiwxMCBAQCBzdGF0aWMgdm9pZCBz Y3JhdGNoX2J1Zl9kcmF3X3BhdHRlcm4oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVm LAo+ICAKPiAgCWNhaXJvX3N1cmZhY2VfZGVzdHJveShzdXJmYWNlKTsKPiAgCj4gLQlnZW1fc2V0 X2RvbWFpbihkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRsZSwKPiAtCQkgICAgICAgSTkxNV9H RU1fRE9NQUlOX0dUVCwgSTkxNV9HRU1fRE9NQUlOX0dUVCk7Cj4gLQo+IC0JbWFwID0gZ2VtX21t YXBfX2d0dChkYXRhLT5kcm1fZmQsIGJ1Zi0+Ym8tPmhhbmRsZSwKPiAtCQkJICAgIGJ1Zi0+Ym8t PnNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwo+IC0KPiAtCW1lbWNweShtYXAsIGxpbmVh ciwgYnVmLT5iby0+c2l6ZSk7Cj4gLQo+IC0JbXVubWFwKG1hcCwgYnVmLT5iby0+c2l6ZSk7Cj4g KwlpZiAoYnVmLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWWYpCj4gKwkJY29weV9saW5lYXJfdG9f eWYoZGF0YSwgYnVmLCBsaW5lYXIpOwo+ICsJZWxzZQo+ICsJCWNvcHlfbGluZWFyX3RvX2d0dChk YXRhLCBidWYsIGxpbmVhcik7Cj4gIAo+ICAJZnJlZShsaW5lYXIpOwo+ICB9Cj4gQEAgLTIzNiwz NiArMzE3LDU5IEBAIHNjcmF0Y2hfYnVmX2NvcHkoZGF0YV90ICpkYXRhLAo+ICB7Cj4gIAlpbnQg d2lkdGggPSBpZ3RfYnVmX3dpZHRoKGRzdCk7Cj4gIAlpbnQgaGVpZ2h0ICA9IGlndF9idWZfaGVp Z2h0KGRzdCk7Cj4gLQl1aW50MzJfdCAqbGluZWFyX2RzdCwgKmxpbmVhcl9zcmM7Cj4gKwl1aW50 MzJfdCAqbGluZWFyX2RzdDsKPiAgCj4gIAlpZ3RfYXNzZXJ0X2VxKGlndF9idWZfd2lkdGgoZHN0 KSwgaWd0X2J1Zl93aWR0aChzcmMpKTsKPiAgCWlndF9hc3NlcnRfZXEoaWd0X2J1Zl9oZWlnaHQo ZHN0KSwgaWd0X2J1Zl9oZWlnaHQoc3JjKSk7Cj4gIAlpZ3RfYXNzZXJ0X2VxKGRzdC0+Ym8tPnNp emUsIHNyYy0+Ym8tPnNpemUpOwo+ICAKPiArCXcgPSBtaW4odywgd2lkdGggLSBzeCk7Cj4gKwl3 ID0gbWluKHcsIHdpZHRoIC0gZHgpOwo+ICsKPiArCWggPSBtaW4oaCwgaGVpZ2h0IC0gc3kpOwo+ ICsJaCA9IG1pbihoLCBoZWlnaHQgLSBkeSk7Cj4gKwo+ICAJZ2VtX3NldF9kb21haW4oZGF0YS0+ ZHJtX2ZkLCBkc3QtPmJvLT5oYW5kbGUsCj4gIAkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQs IEk5MTVfR0VNX0RPTUFJTl9HVFQpOwo+IC0JZ2VtX3NldF9kb21haW4oZGF0YS0+ZHJtX2ZkLCBz cmMtPmJvLT5oYW5kbGUsCj4gLQkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIDApOwo+IC0K PiAgCWxpbmVhcl9kc3QgPSBnZW1fbW1hcF9fZ3R0KGRhdGEtPmRybV9mZCwgZHN0LT5iby0+aGFu ZGxlLAo+ICAJCQkJICAgZHN0LT5iby0+c2l6ZSwgUFJPVF9XUklURSk7Cj4gLQlsaW5lYXJfc3Jj ID0gZ2VtX21tYXBfX2d0dChkYXRhLT5kcm1fZmQsIHNyYy0+Ym8tPmhhbmRsZSwKPiAtCQkJCSAg IHNyYy0+Ym8tPnNpemUsIFBST1RfUkVBRCk7Cj4gIAo+IC0JdyA9IG1pbih3LCB3aWR0aCAtIHN4 KTsKPiAtCXcgPSBtaW4odywgd2lkdGggLSBkeCk7Cj4gKwlpZiAoc3JjLT50aWxpbmcgPT0gSTkx NV9USUxJTkdfWWYpIHsKPiArCQl2b2lkICptYXA7Cj4gIAo+IC0JaCA9IG1pbihoLCBoZWlnaHQg LSBzeSk7Cj4gLQloID0gbWluKGgsIGhlaWdodCAtIGR5KTsKPiArCQlnZW1fc2V0X2RvbWFpbihk YXRhLT5kcm1fZmQsIHNyYy0+Ym8tPmhhbmRsZSwKPiArCQkJICAgICAgIEk5MTVfR0VNX0RPTUFJ Tl9DUFUsIDApOwo+ICsJCW1hcCA9IGdlbV9tbWFwX19jcHUoZGF0YS0+ZHJtX2ZkLCBzcmMtPmJv LT5oYW5kbGUsIDAsCj4gKwkJCQkgICAgc3JjLT5iby0+c2l6ZSwgUFJPVF9SRUFEKTsKPiArCj4g KwkJZm9yIChpbnQgeSA9IDA7IHkgPCBoOyB5KyspIHsKPiArCQkJZm9yIChpbnQgeCA9IDA7IHgg PCB3OyB4KyspIHsKPiArCQkJCWNvbnN0IHVpbnQzMl90ICpwdHIgPSB5Zl9wdHIobWFwLCBzeCt4 LCBzeSt5LCBzcmMtPnN0cmlkZSwgNCk7Cj4gKwo+ICsJCQkJbGluZWFyX2RzdFsoZHkreSkgKiB3 aWR0aCArIGR4K3hdID0gKnB0cjsKPiArCQkJfQo+ICsJCX0KPiArCj4gKwkJbXVubWFwKG1hcCwg c3JjLT5iby0+c2l6ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCXVpbnQzMl90ICpsaW5lYXJfc3JjOwo+ ICsKPiArCQlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIHNyYy0+Ym8tPmhhbmRsZSwKPiAr CQkJICAgICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQsIDApOwo+ICAKPiAtCWZvciAoaW50IHkgPSAw OyB5IDwgaDsgeSsrKSB7Cj4gLQkJaWd0X21lbWNweV9mcm9tX3djKCZsaW5lYXJfZHN0WyhkeSt5 KSAqIHdpZHRoICsgZHhdLAo+IC0JCQkJICAgJmxpbmVhcl9zcmNbKHN5K3kpICogd2lkdGggKyBz eF0sCj4gLQkJCQkgICB3ICogNCk7Cj4gKwkJbGluZWFyX3NyYyA9IGdlbV9tbWFwX19ndHQoZGF0 YS0+ZHJtX2ZkLCBzcmMtPmJvLT5oYW5kbGUsCj4gKwkJCQkJICAgc3JjLT5iby0+c2l6ZSwgUFJP VF9SRUFEKTsKPiArCj4gKwkJZm9yIChpbnQgeSA9IDA7IHkgPCBoOyB5KyspIHsKPiArCQkJaWd0 X21lbWNweV9mcm9tX3djKCZsaW5lYXJfZHN0WyhkeSt5KSAqIHdpZHRoICsgZHhdLAo+ICsJCQkJ CSAgICZsaW5lYXJfc3JjWyhzeSt5KSAqIHdpZHRoICsgc3hdLAo+ICsJCQkJCSAgIHcgKiA0KTsK PiArCQl9Cj4gKwo+ICsJCW11bm1hcChsaW5lYXJfc3JjLCBzcmMtPmJvLT5zaXplKTsKPiAgCX0K PiAgCj4gIAltdW5tYXAobGluZWFyX2RzdCwgZHN0LT5iby0+c2l6ZSk7Cj4gLQltdW5tYXAobGlu ZWFyX3NyYywgc3JjLT5iby0+c2l6ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHNjcmF0Y2hf YnVmX2luaXQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2J1ZiAqYnVmLAo+IEBAIC0yODIsNyAr Mzg2LDggQEAgc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfaW5pdChkYXRhX3QgKmRhdGEsIHN0cnVj dCBpZ3RfYnVmICpidWYsCj4gIAkJaW50IHNpemU7Cj4gIAo+ICAJCWlndF9yZXF1aXJlKGludGVs X2dlbihkYXRhLT5kZXZpZCkgPj0gOSk7Cj4gLQkJaWd0X2Fzc2VydF9lcSh0aWxpbmcsIEk5MTVf VElMSU5HX1kpOwo+ICsJCWlndF9hc3NlcnQodGlsaW5nID09IEk5MTVfVElMSU5HX1kgfHwKPiAr CQkJICAgdGlsaW5nID09IEk5MTVfVElMSU5HX1lmKTsKPiAgCj4gIAkJYnVmLT5zdHJpZGUgPSBB TElHTih3aWR0aCAqIDQsIDEyOCk7Cj4gIAkJYnVmLT5zaXplID0gYnVmLT5zdHJpZGUgKiBoZWln aHQ7Cj4gQEAgLTI5OSw4ICs0MDQsMjEgQEAgc3RhdGljIHZvaWQgc2NyYXRjaF9idWZfaW5pdChk YXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3RfYnVmICpidWYsCj4gIAo+ICAJCWJ1Zi0+Ym8gPSBkcm1f aW50ZWxfYm9fYWxsb2MoZGF0YS0+YnVmbWdyLCAiIiwgc2l6ZSwgNDA5Nik7Cj4gIAo+IC0JCWRy bV9pbnRlbF9ib19zZXRfdGlsaW5nKGJ1Zi0+Ym8sICZ0aWxpbmcsIGJ1Zi0+c3RyaWRlKTsKPiAt CQlpZ3RfYXNzZXJ0X2VxKHRpbGluZywgcmVxX3RpbGluZyk7Cj4gKwkJaWYgKHRpbGluZyA9PSBJ OTE1X1RJTElOR19ZKSB7Cj4gKwkJCWRybV9pbnRlbF9ib19zZXRfdGlsaW5nKGJ1Zi0+Ym8sICZ0 aWxpbmcsIGJ1Zi0+c3RyaWRlKTsKPiArCQkJaWd0X2Fzc2VydF9lcSh0aWxpbmcsIHJlcV90aWxp bmcpOwo+ICsJCX0KPiArCX0gZWxzZSBpZiAocmVxX3RpbGluZyA9PSBJOTE1X1RJTElOR19ZZikg ewo+ICsJCWludCBzaXplOwo+ICsKPiArCQlidWYtPnN0cmlkZSA9IEFMSUdOKHdpZHRoICogNCwg MTI4KTsKPiArCQlidWYtPnNpemUgPSBidWYtPnN0cmlkZSAqIGhlaWdodDsKPiArCQlidWYtPnRp bGluZyA9IHRpbGluZzsKPiArCQlidWYtPmJwcCA9IDMyOwo+ICsKPiArCQlzaXplID0gYnVmLT5z dHJpZGUgKiBBTElHTihoZWlnaHQsIDMyKTsKPiArCj4gKwkJYnVmLT5ibyA9IGRybV9pbnRlbF9i b19hbGxvYyhkYXRhLT5idWZtZ3IsICIiLCBzaXplLCA0MDk2KTsKPiAgCX0gZWxzZSB7Cj4gIAkJ YnVmLT5ibyA9IGRybV9pbnRlbF9ib19hbGxvY190aWxlZChkYXRhLT5idWZtZ3IsICIiLAo+ICAJ CQkJCQkgICB3aWR0aCwgaGVpZ2h0LCA0LAo+IEBAIC0zOTYsNyArNTE0LDcgQEAgc3RhdGljIHZv aWQgc2NyYXRjaF9idWZfYXV4X2NoZWNrKGRhdGFfdCAqZGF0YSwKPiAgCQkgICAgICJBdXggc3Vy ZmFjZSBpbmRpY2F0ZXMgdGhhdCBub3RoaW5nIHdhcyBjb21wcmVzc2VkXG4iKTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgYm9vbCB0 ZXN0X2NjcykKPiArc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGlu ZywgdWludDY0X3QgY2NzX21vZGlmaWVyKQo+ICB7Cj4gIAlzdHJ1Y3QgaWd0X2J1ZiBkc3QsIGNj cywgcmVmOwo+ICAJc3RydWN0IHsKPiBAQCAtNDA0LDcgKzUyMiw3IEBAIHN0YXRpYyB2b2lkIHRl c3QoZGF0YV90ICpkYXRhLCB1aW50MzJfdCB0aWxpbmcsIGJvb2wgdGVzdF9jY3MpCj4gIAkJY29u c3QgY2hhciAqZmlsZW5hbWU7Cj4gIAkJdWludDMyX3QgdGlsaW5nOwo+ICAJCWludCB4LCB5Owo+ IC0JfSBzcmNbM10gPSB7Cj4gKwl9IHNyY1tdID0gewo+ICAJCXsKPiAgCQkJLmZpbGVuYW1lID0g InNvdXJjZS1saW5lYXIucG5nIiwKPiAgCQkJLnRpbGluZyA9IEk5MTVfVElMSU5HX05PTkUsCj4g QEAgLTQyMCwxOCArNTM4LDMxIEBAIHN0YXRpYyB2b2lkIHRlc3QoZGF0YV90ICpkYXRhLCB1aW50 MzJfdCB0aWxpbmcsIGJvb2wgdGVzdF9jY3MpCj4gIAkJCS50aWxpbmcgPSBJOTE1X1RJTElOR19Z LAo+ICAJCQkueCA9IFdJRFRILzIrMSwgLnkgPSAxLAo+ICAJCX0sCj4gKwkJewo+ICsJCQkuZmls ZW5hbWUgPSAic291cmNlLXlmLXRpbGVkLnBuZyIsCj4gKwkJCS50aWxpbmcgPSBJOTE1X1RJTElO R19ZZiwKPiArCQkJLnggPSAxLCAueSA9IDEsCj4gKwkJfSwKPiAgCX07Cj4gIAo+ICAJaW50IG9w dF9kdW1wX2F1YiA9IGlndF9hdWJfZHVtcF9lbmFibGVkKCk7Cj4gKwlpbnQgbnVtX3NyYyA9IEFS UkFZX1NJWkUoc3JjKTsKPiArCj4gKwkvKiBubyBZZiBiZWZvcmUgZ2VuOSAqLwo+ICsJaWYgKGlu dGVsX2dlbihkYXRhLT5kZXZpZCkgPCA5KQo+ICsJCW51bV9zcmMtLTsKPiArCj4gKwlpZiAodGls aW5nID09IEk5MTVfVElMSU5HX1lmIHx8IGNjc19tb2RpZmllcikKPiArCQlpZ3RfcmVxdWlyZShp bnRlbF9nZW4oZGF0YS0+ZGV2aWQpID49IDkpOwo+ICAKPiAtCWZvciAoaW50IGkgPSAwOyBpIDwg QVJSQVlfU0laRShzcmMpOyBpKyspCj4gKwlmb3IgKGludCBpID0gMDsgaSA8IG51bV9zcmM7IGkr KykKPiAgCQlzY3JhdGNoX2J1Zl9pbml0KGRhdGEsICZzcmNbaV0uYnVmLCBXSURUSCwgSEVJR0hU LCBzcmNbaV0udGlsaW5nLCBmYWxzZSk7Cj4gIAlzY3JhdGNoX2J1Zl9pbml0KGRhdGEsICZkc3Qs IFdJRFRILCBIRUlHSFQsIHRpbGluZywgZmFsc2UpOwo+IC0JaWYgKHRlc3RfY2NzKQo+IC0JCXNj cmF0Y2hfYnVmX2luaXQoZGF0YSwgJmNjcywgV0lEVEgsIEhFSUdIVCwgSTkxNV9USUxJTkdfWSwg dHJ1ZSk7Cj4gKwlpZiAoY2NzX21vZGlmaWVyKQo+ICsJCXNjcmF0Y2hfYnVmX2luaXQoZGF0YSwg JmNjcywgV0lEVEgsIEhFSUdIVCwgY2NzX21vZGlmaWVyLCB0cnVlKTsKPiAgCXNjcmF0Y2hfYnVm X2luaXQoZGF0YSwgJnJlZiwgV0lEVEgsIEhFSUdIVCwgSTkxNV9USUxJTkdfTk9ORSwgZmFsc2Up Owo+ICAKPiAtCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShzcmMpOyBpKyspCj4gKwlm b3IgKGludCBpID0gMDsgaSA8IG51bV9zcmM7IGkrKykKPiAgCQlzY3JhdGNoX2J1Zl9kcmF3X3Bh dHRlcm4oZGF0YSwgJnNyY1tpXS5idWYsCj4gIAkJCQkJIDAsIDAsIFdJRFRILCBIRUlHSFQsCj4g IAkJCQkJIDAsIDAsIFdJRFRILCBIRUlHSFQsIHRydWUpOwo+IEBAIC00NDIsMTMgKzU3MywxMyBA QCBzdGF0aWMgdm9pZCB0ZXN0KGRhdGFfdCAqZGF0YSwgdWludDMyX3QgdGlsaW5nLCBib29sIHRl c3RfY2NzKQo+ICAJc2NyYXRjaF9idWZfY29weShkYXRhLAo+ICAJCQkgJmRzdCwgMCwgMCwgV0lE VEgsIEhFSUdIVCwKPiAgCQkJICZyZWYsIDAsIDApOwo+IC0JZm9yIChpbnQgaSA9IDA7IGkgPCBB UlJBWV9TSVpFKHNyYyk7IGkrKykKPiArCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX3NyYzsgaSsr KQo+ICAJCXNjcmF0Y2hfYnVmX2NvcHkoZGF0YSwKPiAgCQkJCSAmc3JjW2ldLmJ1ZiwgV0lEVEgv NCwgSEVJR0hULzQsIFdJRFRILzItMiwgSEVJR0hULzItMiwKPiAgCQkJCSAmcmVmLCBzcmNbaV0u eCwgc3JjW2ldLnkpOwo+ICAKPiAgCWlmIChvcHRfZHVtcF9wbmcpIHsKPiAtCQlmb3IgKGludCBp ID0gMDsgaSA8IEFSUkFZX1NJWkUoc3JjKTsgaSsrKQo+ICsJCWZvciAoaW50IGkgPSAwOyBpIDwg bnVtX3NyYzsgaSsrKQo+ICAJCQlzY3JhdGNoX2J1Zl93cml0ZV90b19wbmcoZGF0YSwgJnNyY1tp XS5idWYsIHNyY1tpXS5maWxlbmFtZSk7Cj4gIAkJc2NyYXRjaF9idWZfd3JpdGVfdG9fcG5nKGRh dGEsICZkc3QsICJkZXN0aW5hdGlvbi5wbmciKTsKPiAgCQlzY3JhdGNoX2J1Zl93cml0ZV90b19w bmcoZGF0YSwgJnJlZiwgInJlZmVyZW5jZS5wbmciKTsKPiBAQCAtNDY4LDI0ICs1OTksMjQgQEAg c3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90IHRpbGluZywgYm9vbCB0ZXN0 X2NjcykKPiAgCSAqCSB8ZHN0fHNyY3wKPiAgCSAqCSAgLS0tLS0tLQo+ICAJICovCj4gLQlpZiAo dGVzdF9jY3MpCj4gKwlpZiAoY2NzX21vZGlmaWVyKQo+ICAJCWRhdGEtPnJlbmRlcl9jb3B5KGRh dGEtPmJhdGNoLCBOVUxMLAo+ICAJCQkJICAmZHN0LCAwLCAwLCBXSURUSCwgSEVJR0hULAo+ICAJ CQkJICAmY2NzLCAwLCAwKTsKPiAgCj4gLQlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJWkUo c3JjKTsgaSsrKQo+ICsJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fc3JjOyBpKyspCj4gIAkJZGF0 YS0+cmVuZGVyX2NvcHkoZGF0YS0+YmF0Y2gsIE5VTEwsCj4gIAkJCQkgICZzcmNbaV0uYnVmLCBX SURUSC80LCBIRUlHSFQvNCwgV0lEVEgvMi0yLCBIRUlHSFQvMi0yLAo+IC0JCQkJICB0ZXN0X2Nj cyA/ICZjY3MgOiAmZHN0LCBzcmNbaV0ueCwgc3JjW2ldLnkpOwo+ICsJCQkJICBjY3NfbW9kaWZp ZXIgPyAmY2NzIDogJmRzdCwgc3JjW2ldLngsIHNyY1tpXS55KTsKPiAgCj4gLQlpZiAodGVzdF9j Y3MpCj4gKwlpZiAoY2NzX21vZGlmaWVyKQo+ICAJCWRhdGEtPnJlbmRlcl9jb3B5KGRhdGEtPmJh dGNoLCBOVUxMLAo+ICAJCQkJICAmY2NzLCAwLCAwLCBXSURUSCwgSEVJR0hULAo+ICAJCQkJICAm ZHN0LCAwLCAwKTsKPiAgCj4gIAlpZiAob3B0X2R1bXBfcG5nKXsKPiAgCQlzY3JhdGNoX2J1Zl93 cml0ZV90b19wbmcoZGF0YSwgJmRzdCwgInJlc3VsdC5wbmciKTsKPiAtCQlpZiAodGVzdF9jY3Mp IHsKPiArCQlpZiAoY2NzX21vZGlmaWVyKSB7Cj4gIAkJCXNjcmF0Y2hfYnVmX3dyaXRlX3RvX3Bu ZyhkYXRhLCAmY2NzLCAiY29tcHJlc3NlZC5wbmciKTsKPiAgCQkJc2NyYXRjaF9idWZfYXV4X3dy aXRlX3RvX3BuZyhkYXRhLCAmY2NzLCAiY29tcHJlc3NlZC1hdXgucG5nIik7Cj4gIAkJfQo+IEBA IC01MDUsNyArNjM2LDcgQEAgc3RhdGljIHZvaWQgdGVzdChkYXRhX3QgKmRhdGEsIHVpbnQzMl90 IHRpbGluZywgYm9vbCB0ZXN0X2NjcykKPiAgCQlzY3JhdGNoX2J1Zl9jaGVjayhkYXRhLCAmZHN0 LCAmcmVmLCBXSURUSCAtIDEwLCBIRUlHSFQgLSAxMCk7Cj4gIAl9Cj4gIAo+IC0JaWYgKHRlc3Rf Y2NzKQo+ICsJaWYgKGNjc19tb2RpZmllcikKPiAgCQlzY3JhdGNoX2J1Zl9hdXhfY2hlY2soZGF0 YSwgJmNjcyk7Cj4gIH0KPiAgCj4gQEAgLTU0NiwxOCArNjc3LDMxIEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKPiAgCX0KPiAgCj4gIAlpZ3Rfc3VidGVzdCgibGluZWFyIikKPiAt CQl0ZXN0KCZkYXRhLCBJOTE1X1RJTElOR19OT05FLCBmYWxzZSk7Cj4gKwkJdGVzdCgmZGF0YSwg STkxNV9USUxJTkdfTk9ORSwgMCk7Cj4gIAlpZ3Rfc3VidGVzdCgieC10aWxlZCIpCj4gLQkJdGVz dCgmZGF0YSwgSTkxNV9USUxJTkdfWCwgZmFsc2UpOwo+ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElM SU5HX1gsIDApOwo+ICAJaWd0X3N1YnRlc3QoInktdGlsZWQiKQo+IC0JCXRlc3QoJmRhdGEsIEk5 MTVfVElMSU5HX1ksIGZhbHNlKTsKPiArCQl0ZXN0KCZkYXRhLCBJOTE1X1RJTElOR19ZLCAwKTsK PiArCWlndF9zdWJ0ZXN0KCJ5Zi10aWxlZCIpCj4gKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdf WWYsIDApOwo+ICAKPiAgCWlndF9zdWJ0ZXN0KCJ5LXRpbGVkLWNjcy10by1saW5lYXIiKQo+IC0J CXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX05PTkUsIHRydWUpOwo+ICsJCXRlc3QoJmRhdGEsIEk5 MTVfVElMSU5HX05PTkUsIEk5MTVfVElMSU5HX1kpOwo+ICAJaWd0X3N1YnRlc3QoInktdGlsZWQt Y2NzLXRvLXgtdGlsZWQiKQo+IC0JCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1gsIHRydWUpOwo+ ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1gsIEk5MTVfVElMSU5HX1kpOwo+ICAJaWd0X3N1 YnRlc3QoInktdGlsZWQtY2NzLXRvLXktdGlsZWQiKQo+IC0JCXRlc3QoJmRhdGEsIEk5MTVfVElM SU5HX1ksIHRydWUpOwo+ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5HX1ksIEk5MTVfVElMSU5H X1kpOwo+ICsJaWd0X3N1YnRlc3QoInktdGlsZWQtY2NzLXRvLXlmLXRpbGVkIikKPiArCQl0ZXN0 KCZkYXRhLCBJOTE1X1RJTElOR19ZZiwgSTkxNV9USUxJTkdfWSk7Cj4gKwo+ICsJaWd0X3N1YnRl c3QoInlmLXRpbGVkLWNjcy10by1saW5lYXIiKQo+ICsJCXRlc3QoJmRhdGEsIEk5MTVfVElMSU5H X05PTkUsIEk5MTVfVElMSU5HX1lmKTsKPiArCWlndF9zdWJ0ZXN0KCJ5Zi10aWxlZC1jY3MtdG8t eC10aWxlZCIpCj4gKwkJdGVzdCgmZGF0YSwgSTkxNV9USUxJTkdfWCwgSTkxNV9USUxJTkdfWWYp Owo+ICsJaWd0X3N1YnRlc3QoInlmLXRpbGVkLWNjcy10by15LXRpbGVkIikKPiArCQl0ZXN0KCZk YXRhLCBJOTE1X1RJTElOR19ZLCBJOTE1X1RJTElOR19ZZik7Cj4gKwlpZ3Rfc3VidGVzdCgieWYt dGlsZWQtY2NzLXRvLXlmLXRpbGVkIikKPiArCQl0ZXN0KCZkYXRhLCBJOTE1X1RJTElOR19ZZiwg STkxNV9USUxJTkdfWWYpOwo+ICAKPiAgCWlndF9maXh0dXJlIHsKPiAgCQlpbnRlbF9iYXRjaGJ1 ZmZlcl9mcmVlKGRhdGEuYmF0Y2gpOwo+IC0tIAo+IDIuMTcuMQo+IApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=