From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 68419892DC for ; Thu, 21 Feb 2019 00:02:14 +0000 (UTC) Message-ID: <87aecf52d3dc7513201e77168a9b5903899508ed.camel@intel.com> From: Dhinakaran Pandiyan Date: Wed, 20 Feb 2019 16:01:59 -0800 In-Reply-To: <1550499727-25316-1-git-send-email-juhapekka.heikkila@gmail.com> References: <1550499727-25316-1-git-send-email-juhapekka.heikkila@gmail.com> Mime-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] tests/kms_available_modes_crc limit tested fb formats List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: dhinakaran.pandiyan@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Juha-Pekka Heikkila , igt-dev@lists.freedesktop.org List-ID: T24gTW9uLCAyMDE5LTAyLTE4IGF0IDE2OjIyICswMjAwLCBKdWhhLVBla2thIEhlaWtraWxhIHdy b3RlOgo+IFRoaXMgdGVzdCBpcyBjYXVzaW5nIHRvbyBtdWNoIHVzZWxlc3Mgbm9pc2UuIExpbWl0 IHRlc3RlZAo+IGZiIGZvcm1hdHMgdG8gRFJNX0ZPUk1BVF9DOCBhbmQgRFJNX0ZPUk1BVF9YQkdS MjEwMTAxMCBmb3Igbm93Lgo+IFRoZXNlIHR3byBmb3JtYXRzIGFyZSBjdXJyZW50bHkgbm90IHRl c3RlZCBvdGhlcndpc2UgdGh1cwo+IHRoZXkncmUgbGVmdCBoZXJlIGZvciBub3cuIERSTV9GT1JN QVRfWEJHUjIxMDEwMTAgbmVlZCB0byBiZQo+IGluY2x1ZGVkIGludG8gSUdUIHN1cHBvcnRlZCBm b3JtYXRzIGFuZCBEUk1fRk9STUFUX0M4IHRlc3QgbmVlZAo+IHRvIGJlIG1vdmVkIGVsc2V3aGVy ZSwgbWF5YmUgaW50byBrbXNfcGxhbmUuCgpUaGFua3MgZm9yIGRvaW5nIHRoaXMuCgo+IAo+IFNp Z25lZC1vZmYtYnk6IEp1aGEtUGVra2EgSGVpa2tpbGEgPGp1aGFwZWtrYS5oZWlra2lsYUBnbWFp bC5jb20+Cj4gLS0tCj4gIHRlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNfY3JjLmMgfCAyMTcgKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdl ZCwgODMgaW5zZXJ0aW9ucygrKSwgMTM0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS90 ZXN0cy9rbXNfYXZhaWxhYmxlX21vZGVzX2NyYy5jCj4gYi90ZXN0cy9rbXNfYXZhaWxhYmxlX21v ZGVzX2NyYy5jCj4gaW5kZXggN2ZmMzg1Zi4uYTUxMDA2YiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9r bXNfYXZhaWxhYmxlX21vZGVzX2NyYy5jCj4gKysrIGIvdGVzdHMva21zX2F2YWlsYWJsZV9tb2Rl c19jcmMuYwo+IEBAIC0xMDEsMTcgKzEwMSwxNyBAQCBzdGF0aWMgdm9pZCBnZW5lcmF0ZV9jb21w YXJpc29uX2NyY19saXN0KGRhdGFfdAo+ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKPiAg CWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPnByaW1hcnlfZmIpOwo+ICAJaWd0X2Rp c3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0KTsKPiAgCj4gKwlpZ3Rf cGlwZV9jcmNfZHJhaW4oZGF0YS0+cGlwZV9jcmMpOwo+ICAJaWd0X3BpcGVfY3JjX2dldF9jdXJy ZW50KGRhdGEtPmdmeF9mZCwgZGF0YS0+cGlwZV9jcmMsICZkYXRhLQo+ID5jdXJzb3JfY3JjKTsK PiAgCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7Cj4gIAlpZ3RfZGlzcGxheV9jb21t aXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQpOwo+ICAKPiAtCWludGVsX2dlbihpbnRl bF9nZXRfZHJtX2RldmlkKGRhdGEtPmdmeF9mZCkpIDwgOSA/Cj4gLQkJICBpZ3RfcGFpbnRfY29s b3IoY3IsIDAsIDAsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLQo+ID52ZGlzcGxheSwgMS4wLCAxLjAs IDEuMCkgOgo+IC0JCSAgaWd0X3BhaW50X2NvbG9yX2FscGhhKGNyLCAwLCAwLCBtb2RlLT5oZGlz cGxheSwgbW9kZS0KPiA+dmRpc3BsYXksIDEuMCwgMS4wLCAxLjAsIDEuMCk7Cj4gKwlpZ3RfcGFp bnRfY29sb3IoY3IsIDAsIDAsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwgMS4wLAo+ IDEuMCwgMS4wKTsKPiAgCj4gIAlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5wcmlt YXJ5X2ZiKTsKPiAgCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIGRhdGEtPmNv bW1pdCk7Cj4gIAo+ICsJaWd0X3BpcGVfY3JjX2RyYWluKGRhdGEtPnBpcGVfY3JjKTsKPiAgCWln dF9waXBlX2NyY19nZXRfY3VycmVudChkYXRhLT5nZnhfZmQsIGRhdGEtPnBpcGVfY3JjLCAmZGF0 YS0KPiA+ZnVsbHNjcmVlbl9jcmMpOwo+ICAKPiAgCWNhaXJvX2Rlc3Ryb3koY3IpOwo+IEBAIC0x MjIsNDggKzEyMiwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKPiAgCXVpbnQzMl90CWZvdXJj YzsKPiAgCWNoYXIJCXplcm9wYWRkaW5nOwo+ICAJZW51bQkJeyBCWVRFU19QUF8xPTEsCj4gLQkJ CQlCWVRFU19QUF8yPTIsCj4gLQkJCQlCWVRFU19QUF80PTQsCj4gLQkJCQlOVjEyLAo+IC0JCQkJ UDAxMCwKPiAtCQkJCVNLSVA0IH0gYnBwOwo+ICsJCQkJQllURVNfUFBfND00fSBicHA7Cj4gIAl1 aW50MzJfdAl2YWx1ZTsKPiAgfSBmaWxsZXJzW10gPSB7Cj4gIAl7IERSTV9GT1JNQVRfQzgsIDAs IEJZVEVTX1BQXzEsIDB4ZmZ9LAo+IC0JeyBEUk1fRk9STUFUX1JHQjU2NSwgMCwgQllURVNfUFBf MiwgMHhmZmZmfSwKPiAtCXsgRFJNX0ZPUk1BVF9YUkdCODg4OCwgMCwgQllURVNfUFBfNCwgMHhm ZmZmZmZmZn0sCj4gLQl7IERSTV9GT1JNQVRfWEJHUjg4ODgsIDAsIEJZVEVTX1BQXzQsIDB4ZmZm ZmZmZmZ9LAo+IC0KPiAtCS8qCj4gLQkgKiBmb2xsb3dpbmcgdHdvIGFyZSBza2lwcGVkIGJlY2F1 c2UgYmxlbmRpbmcgc2VlbXMgdG8gd29yawo+IC0JICogaW5jb3JyZWN0bHkgd2l0aCBleGNlcHRp b24gb2YgQVIyNCBvbiBjdXJzb3IgcGxhbmUuCj4gLQkgKiBUZXN0IHN0aWxsIGNyZWF0ZXMgdGhl IHBsYW5lcywganVzdCBmaWxsaW5nIHBsYW5lCj4gLQkgKiBhbmQgZ2V0dGluZyBjcmMgaXMgc2tp cHBlZC4KPiAtCSAqLwo+IC0JeyBEUk1fRk9STUFUX0FSR0I4ODg4LCAwLCBTS0lQNCwgMHhmZmZm ZmZmZn0sCj4gLQl7IERSTV9GT1JNQVRfQUJHUjg4ODgsIDAsIFNLSVA0LCAweDAwZmZmZmZmfSwK PiAtCj4gLQl7IERSTV9GT1JNQVRfWFJHQjIxMDEwMTAsIDAsIEJZVEVTX1BQXzQsIDB4ZmZmZmZm ZmZ9LAo+ICAJeyBEUk1fRk9STUFUX1hCR1IyMTAxMDEwLCAwLCBCWVRFU19QUF80LCAweGZmZmZm ZmZmfSwKPiAtCj4gLQl7IERSTV9GT1JNQVRfWVVZViwgMCwgQllURVNfUFBfNCwgMHg4MGViODBl Yn0sCj4gLQl7IERSTV9GT1JNQVRfWVZZVSwgMCwgQllURVNfUFBfNCwgMHg4MGViODBlYn0sCj4g LQl7IERSTV9GT1JNQVRfVllVWSwgMCwgQllURVNfUFBfNCwgMHhlYjgwZWI4MH0sCj4gLQl7IERS TV9GT1JNQVRfVVlWWSwgMCwgQllURVNfUFBfNCwgMHhlYjgwZWI4MH0sCj4gLQo+IC0JLyoKPiAt CSAqIChzZW1pLSlwbGFuYXIgZm9ybWF0cwo+IC0JICovCj4gLQl7IERSTV9GT1JNQVRfTlYxMiwg MCwgTlYxMiwgMHg4MGVifSwKPiAtI2lmZGVmIERSTV9GT1JNQVRfUDAxMAo+IC0JeyBEUk1fRk9S TUFUX1AwMTAsIDAsIFAwMTAsIDB4ODAwMGViMDB9LAo+IC0jZW5kaWYKPiAtI2lmZGVmIERSTV9G T1JNQVRfUDAxMgo+IC0JeyBEUk1fRk9STUFUX1AwMTIsIDAsIFAwMTAsIDB4ODAwMGViMDB9LAo+ IC0jZW5kaWYKPiAtI2lmZGVmIERSTV9GT1JNQVRfUDAxNgo+IC0JeyBEUk1fRk9STUFUX1AwMTYs IDAsIFAwMTAsIDB4ODAwMGViMDB9LAo+IC0jZW5kaWYKPiAgCXsgMCwgMCwgMCwgMCB9Cj4gIH07 Cj4gIAo+IEBAIC0xNzUsMTAgKzEzOCw5IEBAIHN0YXRpYyBib29sIGZpbGxfaW5fZmIoZGF0YV90 ICpkYXRhLAo+IGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4gIAkJ ICAgICAgIHVpbnQzMl90IGZvcm1hdCkKPiAgewo+ICAJc2lnbmVkIGksIGMsIHdyaXRlc2l6ZTsK PiAtCXVuc2lnbmVkIHNob3J0KiBwdGVtcF8xNl9idWY7Cj4gIAl1bnNpZ25lZCBpbnQqIHB0ZW1w XzMyX2J1ZjsKPiAgCj4gLQlmb3IoIGkgPSAwOyBmaWxsZXJzW2ldLmZvdXJjYyAhPSAwOyBpKysg KSB7Cj4gKwlmb3IoIGkgPSAwOyBpIDwgQVJSQVlfU0laRShmaWxsZXJzKS0xOyBpKysgKSB7Cj4g IAkJaWYoIGZpbGxlcnNbaV0uZm91cmNjID09IGZvcm1hdCApCj4gIAkJCWJyZWFrOwo+ICAJfQo+ IEBAIC0xOTAsNTMgKzE1MiwxMCBAQCBzdGF0aWMgYm9vbCBmaWxsX2luX2ZiKGRhdGFfdCAqZGF0 YSwKPiBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAo+ICAJCQlwdGVt cF8zMl9idWZbY10gPSBmaWxsZXJzW2ldLnZhbHVlOwo+ICAJCXdyaXRlc2l6ZSA9IGRhdGEtPnNp emU7Cj4gIAkJYnJlYWs7Cj4gLQljYXNlIEJZVEVTX1BQXzI6Cj4gLQkJcHRlbXBfMTZfYnVmID0g KHVuc2lnbmVkIHNob3J0KilkYXRhLT5idWY7Cj4gLQkJZm9yIChjID0gMDsgYyA8IGRhdGEtPnNp emUvMjsgYysrKQo+IC0JCQlwdGVtcF8xNl9idWZbY10gPSAodW5zaWduZWQKPiBzaG9ydClmaWxs ZXJzW2ldLnZhbHVlOwo+IC0JCXdyaXRlc2l6ZSA9IGRhdGEtPnNpemU7Cj4gLQkJYnJlYWs7Cj4g IAljYXNlIEJZVEVTX1BQXzE6Cj4gIAkJbWVtc2V0KCh2b2lkICopZGF0YS0+YnVmLCBmaWxsZXJz W2ldLnZhbHVlLCBkYXRhLQo+ID5zaXplKTsKPiAgCQl3cml0ZXNpemUgPSBkYXRhLT5zaXplOwo+ ICAJCWJyZWFrOwo+IC0JY2FzZSBOVjEyOgo+IC0JCW1lbXNldCgodm9pZCAqKWRhdGEtPmJ1Ziwg ZmlsbGVyc1tpXS52YWx1ZSYweGZmLAo+IC0JCSAgICAgICBkYXRhLT5mYi5vZmZzZXRzWzFdKTsK PiAtCj4gLQkJbWVtc2V0KCh2b2lkICopKGRhdGEtPmJ1ZitkYXRhLT5mYi5vZmZzZXRzWzFdKSwK PiAtCQkgICAgICAgKGZpbGxlcnNbaV0udmFsdWU+PjgpJjB4ZmYsCj4gLQkJICAgICAgIGRhdGEt PnNpemUgLSBkYXRhLT5mYi5vZmZzZXRzWzFdKTsKPiAtCj4gLQkJd3JpdGVzaXplID0gZGF0YS0+ c2l6ZTsKPiAtCQlicmVhazsKPiAtCWNhc2UgUDAxMDoKPiAtCQlwdGVtcF8xNl9idWYgPSAodW5z aWduZWQgc2hvcnQqKWRhdGEtPmJ1ZjsKPiAtCQlmb3IgKGMgPSAwOyBjIDwgZGF0YS0+c2l6ZS8y OyBjKyspCj4gLQkJCXB0ZW1wXzE2X2J1ZltjXSA9ICh1bnNpZ25lZAo+IHNob3J0KWZpbGxlcnNb aV0udmFsdWUmMHhmZmZmOwo+IC0KPiAtCQlwdGVtcF8xNl9idWYgPSAodW5zaWduZWQgc2hvcnQq KShkYXRhLT5idWYrZGF0YS0+c2l6ZSk7Cj4gLQkJZm9yIChjID0gMDsgYyA8IGRhdGEtPnNpemUv MjsgYysrKQo+IC0JCQlwdGVtcF8xNl9idWZbY10gPSAodW5zaWduZWQKPiBzaG9ydCkoZmlsbGVy c1tpXS52YWx1ZT4+MTYpJjB4ZmZmZjsKPiAtCj4gLQkJd3JpdGVzaXplID0gZGF0YS0+c2l6ZStk YXRhLT5zaXplLzI7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIFNLSVA0Ogo+IC0JCWlmIChmaWxsZXJz W2ldLmZvdXJjYyA9PSBEUk1fRk9STUFUX0FSR0I4ODg4ICYmCj4gLQkJICAgIHBsYW5lLT50eXBl ID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+IC0JCS8qCj4gLQkJICogc3BlY2lhbCBmb3Ig Y3Vyc29yIHBsYW5lIHdoZXJlIGJsZW5kaW5nIHdvcmtzCj4gY29ycmVjdGx5Lgo+IC0JCSAqLwo+ IC0JCQlwdGVtcF8zMl9idWYgPSAodW5zaWduZWQgaW50KilkYXRhLT5idWY7Cj4gLQkJCWZvciAo YyA9IDA7IGMgPCBkYXRhLT5zaXplLzQ7IGMrKykKPiAtCQkJCXB0ZW1wXzMyX2J1ZltjXSA9IGZp bGxlcnNbaV0udmFsdWU7Cj4gLQkJCXdyaXRlc2l6ZSA9IGRhdGEtPnNpemU7Cj4gLQkJCWJyZWFr Owo+IC0JCX0KPiAtCQlpZ3RfaW5mbygiRm9ybWF0ICVzIENSQyBjb21wYXJpc29uIHNraXBwZWQg YnkKPiBkZXNpZ24uXG4iLAo+IC0JCQkgKGNoYXIqKSZmaWxsZXJzW2ldLmZvdXJjYyk7Cj4gLQo+ IC0JCXJldHVybiBmYWxzZTsKPiAgCWRlZmF1bHQ6Cj4gIAkJaWd0X2luZm8oIlVuc3VwcG9ydGVk IG1vZGUgZm9yIHRlc3QgJXNcbiIsCj4gIAkJCSAoY2hhciopJmZpbGxlcnNbaV0uZm91cmNjKTsK PiBAQCAtMjcxLDI2ICsxOTAsMjAgQEAgc3RhdGljIGJvb2wgc2V0dXBfZmIoZGF0YV90ICpkYXRh LCBpZ3Rfb3V0cHV0X3QKPiAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcGxhbmUsCj4gIAkJdGlsaW5n ID0gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORTsKPiAgCX0KPiAgCj4gLQlmb3IgKGkgPSAwOyBm aWxsZXJzW2ldLmZvdXJjYyAhPSAwOyBpKyspIHsKPiAtCQlpZiAoZmlsbGVyc1tpXS5mb3VyY2Mg PT0gZm9ybWF0KQo+ICsJZm9yKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmlsbGVycyktMTsgaSsr ICkgewo+ICsJCWlmKCBmaWxsZXJzW2ldLmZvdXJjYyA9PSBmb3JtYXQgKQo+ICAJCQlicmVhazsK PiAgCX0KPiAgCj4gIAlzd2l0Y2ggKGZpbGxlcnNbaV0uYnBwKSB7Cj4gLQljYXNlIE5WMTI6Cj4g IAljYXNlIEJZVEVTX1BQXzE6Cj4gIAkJYnBwID0gODsKPiAgCQlicmVhazsKPiAtCj4gLQljYXNl IFAwMTA6Cj4gLQljYXNlIEJZVEVTX1BQXzI6Cj4gLQkJYnBwID0gMTY7Cj4gLQkJYnJlYWs7Cj4g LQo+IC0JY2FzZSBTS0lQNDoKPiAgCWNhc2UgQllURVNfUFBfNDoKPiAgCQlicHAgPSAzMjsKPiAg CQlicmVhazsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuIGZhbHNlOwoKSG1tLCB3ZSBzaG91bGQg bmV2ZXIgaGl0IHRoaXMgY29uZGl0aW9uLiBNYXJrIHRoaXMgYXMgYSBmYWlsdXJlIHNvIHRoYXQK dGhlIHRlc3QgZ2V0cyBmaXhlZD8KCj4gIAl9Cj4gIAo+ICAJaWd0X2dldF9mYl90aWxlX3NpemUo ZGF0YS0+Z2Z4X2ZkLCB0aWxpbmcsIGJwcCwKPiBAQCAtMjk5LDE3ICsyMTIsNiBAQCBzdGF0aWMg Ym9vbCBzZXR1cF9mYihkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdAo+ICpvdXRwdXQsIGlndF9w bGFuZV90ICpwbGFuZSwKPiAgCWRhdGEtPmZiLnN0cmlkZXNbMF0gPSBBTElHTih3ICogYnBwIC8g OCwgdGlsZV93aWR0aCk7Cj4gIAlnZW1zaXplID0gZGF0YS0+c2l6ZSA9IGRhdGEtPmZiLnN0cmlk ZXNbMF0gKiBBTElHTihoLAo+IHRpbGVfaGVpZ2h0KTsKPiAgCj4gLQlpZiAoZmlsbGVyc1tpXS5i cHAgPT0gUDAxMCB8fCBmaWxsZXJzW2ldLmJwcCA9PSBOVjEyKSB7Cj4gLQkJZGF0YS0+ZmIub2Zm c2V0c1sxXSA9IGRhdGEtPnNpemU7Cj4gLQkJZGF0YS0+ZmIuc3RyaWRlc1sxXSA9IGRhdGEtPmZi LnN0cmlkZXNbMF07Cj4gLQkJZ2Vtc2l6ZSA9IGRhdGEtPnNpemUgKiAyOwo+IC0KPiAtCQlpZiAo ZmlsbGVyc1tpXS5icHAgPT0gTlYxMikKPiAtCQkJZGF0YS0+c2l6ZSArPSBkYXRhLT5mYi5zdHJp ZGVzWzFdICogQUxJR04oaC8yLAo+IHRpbGVfaGVpZ2h0KTsKPiAtCj4gLQkJbnVtX3BsYW5lcyA9 IDI7Cj4gLQl9Cj4gLQo+ICAJZGF0YS0+Z2VtX2hhbmRsZSA9IGdlbV9jcmVhdGUoZGF0YS0+Z2Z4 X2ZkLCBnZW1zaXplKTsKPiAgCXJldCA9IF9fZ2VtX3NldF90aWxpbmcoZGF0YS0+Z2Z4X2ZkLCBk YXRhLT5nZW1faGFuZGxlLAo+ICAJCQkgICAgICAgaWd0X2ZiX21vZF90b190aWxpbmcodGlsaW5n KSwKPiBAQCAtMzg2LDEyICsyODgsMjMgQEAgc3RhdGljIGJvb2wgcHJlcGFyZV9jcnRjKGRhdGFf dCAqZGF0YSwKPiBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKPiAgCj4gIHN0YXRpYyBpbnQKPiAgdGVz dF9vbmVfbW9kZShkYXRhX3QqIGRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBpZ3RfcGxhbmVf dCoKPiBwbGFuZSwKPiAtCSAgICAgIGludCBtb2RlKQo+ICsJICAgICAgaW50IG1vZGUsIGVudW0g cGlwZSBwaXBlKQpzL21vZGUvZm9ybWF0CkNvbW1lbnQgYXBwbGllcyB0byBvdGhlciBwbGFjZXMg dG9vLgoKCj4gIHsKPiAgCWlndF9jcmNfdCBjdXJyZW50X2NyYzsKPiAgCXNpZ25lZCByVmFsID0g MDsKPiAgCWJvb2wgZG9fY3JjOwo+IC0JY2hhciogY3JjY29tcGFyZVsyXTsKPiArCWludCBpOwo+ ICsKPiArCS8qCj4gKwkgKiBMaW1pdCB0ZXN0cyBvbmx5IHRvIHRob3NlIGZiIGZvcm1hdHMgbGlz dGVkIGluIGZpbGxlcnMgdGFibGUKPiArCSAqLwo+ICsJZm9yKCBpID0gMDsgaSA8IEFSUkFZX1NJ WkUoZmlsbGVycyktMTsgaSsrICkgewo+ICsJCWlmKCBmaWxsZXJzW2ldLmZvdXJjYyA9PSBtb2Rl ICkKPiArCQkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJaWYoZmlsbGVyc1tpXS5icHAgPT0gMCkKPiAr CQlyZXR1cm4gZmFsc2U7Ci5icHAgaXMgYWx3YXlzIHZhbGlkIGZvciB0aGUgdHdvIGZvcm1hdHMg dGhhdCBhcmUgdGVzdGVkLCBpc24ndCBpdD8gSW4KdGhhdCBjYXNlIC5icHAgPT0gMCBpcyBhIHRl c3QgZmFpbHVyZS4KCj4gIAo+ICAJaWYgKHByZXBhcmVfY3J0YyhkYXRhLCBvdXRwdXQsIHBsYW5l LCBtb2RlKSl7Cj4gIAkJLyoKPiBAQCAtNDEyLDI5ICszMjUsMzAgQEAgdGVzdF9vbmVfbW9kZShk YXRhX3QqIGRhdGEsIGlndF9vdXRwdXRfdAo+ICpvdXRwdXQsIGlndF9wbGFuZV90KiBwbGFuZSwK PiAgCQkJaWYgKHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewo+ICAJCQkJ aWYgKCFpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjdXJyZW50X2NyYywKPiAgCQkJCQkmZGF0YS0+ZnVs bHNjcmVlbl9jcmMpKSB7Cj4gLQkJCQkJY3JjY29tcGFyZVswXSA9Cj4gaWd0X2NyY190b19zdHJp bmcoJmN1cnJlbnRfY3JjKTsKPiAtCQkJCQljcmNjb21wYXJlWzFdID0KPiBpZ3RfY3JjX3RvX3N0 cmluZygmZGF0YS0+ZnVsbHNjcmVlbl9jcmMpOwo+IC0JCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0 Y2guIHRhcmdldAo+ICUuOHMsIHJlc3VsdCAlLjhzLlxuIiwgY3JjY29tcGFyZVswXSwgY3JjY29t cGFyZVsxXSk7Cj4gLQkJCQkJZnJlZShjcmNjb21wYXJlWzBdKTsKPiAtCQkJCQlmcmVlKGNyY2Nv bXBhcmVbMV0pOwo+ICsJCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2guCj4gY29ubmVjdG9yICVz IHVzaW5nIHBpcGUgJXMiIFwKPiArCQkJCQkJIiBwbGFuZSBpbmRleCAlZCBtb2RlCj4gJS40c1xu IiwKPiArCQkJCQkJaWd0X291dHB1dF9uYW1lKG91dHB1dCkKPiAsCj4gKwkJCQkJCWttc3Rlc3Rf cGlwZV9uYW1lKHBpcGUpCj4gLAo+ICsJCQkJCQlwbGFuZS0+aW5kZXgsCj4gKwkJCQkJCShjaGFy KikmbW9kZSk7Cj4gIAkJCQkJclZhbCsrOwo+ICAJCQkJfQo+ICAJCQl9IGVsc2Ugewo+ICAJCQkJ aWYgKCFpZ3RfY2hlY2tfY3JjX2VxdWFsKCZjdXJyZW50X2NyYywKPiAgCQkJCQkmZGF0YS0+Y3Vy c29yX2NyYykpIHsKPiAtCQkJCQljcmNjb21wYXJlWzBdID0KPiBpZ3RfY3JjX3RvX3N0cmluZygm Y3VycmVudF9jcmMpOwo+IC0JCQkJCWNyY2NvbXBhcmVbMV0gPQo+IGlndF9jcmNfdG9fc3RyaW5n KCZkYXRhLT5jdXJzb3JfY3JjKTsKPiAtCQkJCQlpZ3Rfd2FybigiY3JjIG1pc21hdGNoLiB0YXJn ZXQKPiAlLjhzLCByZXN1bHQgJS44cy5cbiIsIGNyY2NvbXBhcmVbMF0sIGNyY2NvbXBhcmVbMV0p Owo+IC0JCQkJCWZyZWUoY3JjY29tcGFyZVswXSk7Cj4gLQkJCQkJZnJlZShjcmNjb21wYXJlWzFd KTsKPiArCQkJCQlpZ3Rfd2FybigiY3JjIG1pc21hdGNoLgo+IGNvbm5lY3RvciAlcyB1c2luZyBw aXBlICVzIiBcCj4gKwkJCQkJCSIgcGxhbmUgaW5kZXggJWQgbW9kZQo+ICUuNHNcbiIsCj4gKwkJ CQkJCWlndF9vdXRwdXRfbmFtZShvdXRwdXQpCj4gLAo+ICsJCQkJCQlrbXN0ZXN0X3BpcGVfbmFt ZShwaXBlKQo+ICwKPiArCQkJCQkJcGxhbmUtPmluZGV4LAo+ICsJCQkJCQkoY2hhciopJm1vZGUp Owo+ICAJCQkJCXJWYWwrKzsKPiAgCQkJCX0KPiAgCQkJfQo+ICAJCX0KPiAtCQlyZW1vdmVfZmIo ZGF0YSwgb3V0cHV0LCBwbGFuZSk7Cj4gLQkJcmV0dXJuIHJWYWw7Cj4gIAl9Cj4gLQlyZXR1cm4g MTsKPiArCXJlbW92ZV9mYihkYXRhLCBvdXRwdXQsIHBsYW5lKTsKPiArCXJldHVybiByVmFsOwo+ ICB9Cj4gIAo+ICAKPiBAQCAtNDQ1LDE0ICszNTksNDQgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMo ZGF0YV90KiBkYXRhKQo+ICAJaWd0X3BsYW5lX3QgKnBsYW5lOwo+ICAJaW50IG1vZGVpbmRleDsK PiAgCWVudW0gcGlwZSBwaXBlOwo+IC0JaW50IGludmFsaWRzID0gMDsKPiArCWludCBpbnZhbGlk cyA9IDAsIGksIGx1dF9zaXplOwo+ICAJZHJtTW9kZVBsYW5lICptb2RlUGxhbmU7Cj4gLQljaGFy IHBsYW5ldHlwZVszXVs4XSA9IHsiT1ZFUkxBWVwwIiwgIlBSSU1BUllcMCIsICJDVVJTT1JcMCIg fTsKPiArCj4gKwlzdHJ1Y3Qgewo+ICsJICAgIHVpbnQxNl90IHJlZDsKPiArCSAgICB1aW50MTZf dCBncmVlbjsKPiArCSAgICB1aW50MTZfdCBibHVlOwo+ICsJICAgIHVpbnQxNl90IHJlc2VydmVk Owo+ICsJfSAqbHV0ID0gTlVMTDsKPiAgCj4gIAlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0 cHV0KCZkYXRhLT5kaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKPiAgCQlpZ3Rfb3V0cHV0X3NldF9w aXBlKG91dHB1dCwgcGlwZSk7Cj4gIAkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxh eSwgZGF0YS0+Y29tbWl0KTsKPiAgCj4gKwkJaWYgKGlndF9waXBlX29ial9oYXNfcHJvcCgmZGF0 YS0+ZGlzcGxheS5waXBlc1twaXBlXSwKPiBJR1RfQ1JUQ19HQU1NQV9MVVRfU0laRSkpIHsKPiAr CQkJbHV0X3NpemUgPSBpZ3RfcGlwZV9nZXRfcHJvcCgmZGF0YS0+ZGlzcGxheSwKPiBwaXBlLAo+ ICsJCQkJCQkgICAgIElHVF9DUlRDX0dBTU1BX0xVVAo+IF9TSVpFKTsKPiArCj4gKwkJCWx1dCA9 IGNhbGxvYyhzaXplb2YoKmx1dCksIGx1dF9zaXplKTsKPiArCj4gKwkJCWZvciAoaSA9IDA7IGkg PCBsdXRfc2l6ZTsgaSsrKSB7Cj4gKwkJCQlsdXRbaV0ucmVkID0gKGkgKiAweGZmZmYgLyAobHV0 X3NpemUgLQo+IDEpKSAmIDB4ODAwMDsKPiArCQkJCWx1dFtpXS5ncmVlbiA9IChpICogMHhmZmZm IC8gKGx1dF9zaXplCj4gLSAxKSkgJiAweDgwMDA7Cj4gKwkJCQlsdXRbaV0uYmx1ZSA9IChpICog MHhmZmZmIC8gKGx1dF9zaXplIC0KPiAxKSkgJiAweDgwMDA7Cj4gKwkJCX0KPiArCj4gKwkJCWln dF9waXBlX3JlcGxhY2VfcHJvcF9ibG9iKCZkYXRhLT5kaXNwbGF5LAo+IHBpcGUsCj4gKwkJCQkJ CSAgIElHVF9DUlRDX0dBTU1BX0xVVCwKPiArCQkJCQkJICAgbHV0LCBzaXplb2YoKmx1dCkgKgo+ IGx1dF9zaXplKTsKPiArCQkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0 YS0KPiA+Y29tbWl0KTsKPiArCj4gKwkJCWZvciAoaSA9IDA7IGkgPCBsdXRfc2l6ZTsgaSsrKSB7 Cj4gKwkJCQlsdXRbaV0ucmVkID0gaSAqIDB4ZmZmZiAvIChsdXRfc2l6ZSAtCj4gMSk7Cj4gKwkJ CQlsdXRbaV0uZ3JlZW4gPSBpICogMHhmZmZmIC8gKGx1dF9zaXplIC0KPiAxKTsKPiArCQkJCWx1 dFtpXS5ibHVlID0gaSAqIDB4ZmZmZiAvIChsdXRfc2l6ZSAtCj4gMSk7Cj4gKwkJCX0KPiArCQl9 Cj4gKwo+ICAJCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLT5nZnhfZmQs IHBpcGUsCj4gIAkJCQkJCSAgSU5URUxfUElQRV9DUkNfU09VUkNFCj4gX0FVVE8pOwo+ICAKPiBA QCAtNDY3LDI5ICs0MTEsMzQgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0YV90KiBkYXRhKQo+ ICAJCQltb2RlUGxhbmUgPSBkcm1Nb2RlR2V0UGxhbmUoZGF0YS0+Z2Z4X2ZkLAo+ICAJCQkJCQkg ICAgcGxhbmUtPmRybV9wbGFuZS0KPiA+cGxhbmVfaWQpOwo+ICAKPiArCQkJaWYgKHBsYW5lLT50 eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiAgCQkJ Zm9yIChtb2RlaW5kZXggPSAwOwo+ICAJCQkgICAgIG1vZGVpbmRleCA8IG1vZGVQbGFuZS0+Y291 bnRfZm9ybWF0czsKPiAgCQkJICAgICBtb2RlaW5kZXgrKykgewo+ICAJCQkJZGF0YS0+Zm9ybWF0 LmR3b3JkID0gbW9kZVBsYW5lLQo+ID5mb3JtYXRzW21vZGVpbmRleF07Cj4gIAo+IC0JCQkJaWd0 X2luZm8oIlRlc3RpbmcgY29ubmVjdG9yICVzIHVzaW5nCj4gcGlwZSAlcyIgXAo+IC0JCQkJCSAi IHBsYW5lIGluZGV4ICVkIHR5cGUgJXMgbW9kZQo+ICVzXG4iLAo+IC0JCQkJCSBpZ3Rfb3V0cHV0 X25hbWUob3V0cHV0KSwKPiAtCQkJCQkga21zdGVzdF9waXBlX25hbWUocGlwZSksCj4gLQkJCQkJ IHBsYW5lLT5pbmRleCwKPiAtCQkJCQkgcGxhbmV0eXBlW3BsYW5lLT50eXBlXSwKPiAtCQkJCQkg KGNoYXIqKSZkYXRhLT5mb3JtYXQubmFtZSk7CgpOb3Qgc3VyZSB3aHkgdGhpcyB3YXMgcmVtb3Zl ZCwgcGVyaGFwcyBjb252ZXJ0IGl0IHRvIGlndF9kZWJ1ZygpPyBJdCdzCmhhcmQgdG8gdGVsbCB3 aGF0IGlzIGJlaW5nIHRlc3RlZCBub3cgZXZlbiB3aXRoIHRoZSAtLWRlYnVnIG9wdGlvbi4KCklm IHlvdSB3YW50IHRvIGFkZHJlc3MgdGhlIGNvbW1lbnRzIGluIGEgc2VwYXJhdGUgcGF0Y2gsIGZl ZWwgZnJlZSB0bwphZGQgClJldmlld2VkLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWth cmFuLnBhbmRpeWFuQGludGVsLmNvbT4KCgo+IC0KPiAgCQkJCWludmFsaWRzICs9IHRlc3Rfb25l X21vZGUoZGF0YSwgb3V0cHV0LAo+ICAJCQkJCQkJICBwbGFuZSwKPiAtCQkJCQkJCSAgbW9kZVBs YW5lLQo+ID5mb3JtYXRzW21vZGVpbmRleF0pOwo+ICsJCQkJCQkJICBtb2RlUGxhbmUtCj4gPmZv cm1hdHNbbW9kZWluZGV4XSwKPiArCQkJCQkJCSAgcGlwZSk7Cj4gIAkJCX0KPiAgCQkJZHJtTW9k ZUZyZWVQbGFuZShtb2RlUGxhbmUpOwo+ICAJCX0KPiAgCQlpZ3RfcGlwZV9jcmNfc3RvcChkYXRh LT5waXBlX2NyYyk7Cj4gIAkJaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9jcmMpOwo+IC0J CWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIGRhdGEtPmNvbW1pdCk7Cj4gKwo+ ICsJCWlmIChsdXQgIT0gTlVMTCkgewo+ICsJCQlpZ3RfcGlwZV9yZXBsYWNlX3Byb3BfYmxvYigm ZGF0YS0+ZGlzcGxheSwKPiBwaXBlLAo+ICsJCQkJCQkgICBJR1RfQ1JUQ19HQU1NQV9MVVQsCj4g KwkJCQkJCSAgIGx1dCwgc2l6ZW9mKCpsdXQpICoKPiBsdXRfc2l6ZSk7Cj4gKwkJCWZyZWUobHV0 KTsKPiArCQkJbHV0ID0gTlVMTDsKPiArCQl9Cj4gKwo+ICAJCWlndF9vdXRwdXRfc2V0X3BpcGUo b3V0cHV0LCBQSVBFX05PTkUpOwo+ICsJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3Bs YXksIGRhdGEtPmNvbW1pdCk7Cj4gIAl9Cj4gIAlpZ3RfYXNzZXJ0KGludmFsaWRzID09IDApOwo+ ICB9CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3Qt ZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=