From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH i-g-t v7] lib/igt_kms: Add COMMIT_ATOMIC to igt_display_commit2() Date: Wed, 09 Mar 2016 16:14:34 +0000 Message-ID: <1457540074.19252.18.camel@gmail.com> References: <1457345934-28943-1-git-send-email-pratik.vishwakarma@intel.com> <56DD78FE.2090000@gmail.com> <56DEF62E.1080401@linux.intel.com> <56DEF9A6.90808@gmail.com> <56E03257.8080608@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x243.google.com (mail-wm0-x243.google.com [IPv6:2a00:1450:400c:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9056E6E41C for ; Wed, 9 Mar 2016 16:14:38 +0000 (UTC) Received: by mail-wm0-x243.google.com with SMTP id 1so11035551wmg.2 for ; Wed, 09 Mar 2016 08:14:38 -0800 (PST) In-Reply-To: <56E03257.8080608@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mayuresh Gharpure , Maarten Lankhorst , Pratik Vishwakarma , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhhbmtzLAoKSXQgc2VlbXMgdGhlwqBpZ3RfYXRvbWljX3ByZXBhcmVfcGxhbmVfY29tbWl0KCkg ZnVuY3Rpb24gc3RpbGwgbmVlZHMgdG8KcmVzZXQgdGhlIHBsYW5lLT5yb3RhdGlvbl9jaGFuZ2Vk IGZpZWxkIChpdCB3YXMgYXQgdGhlIGJvdHRvbSBvZiBteQpwcmV2aW91cyBlbWFpbCwgc29ycnkg Zm9yIHRoYXQpLgoKVGhlIHdheSBzdXBwb3J0ZWQgcHJvcGVydHkgaWRzIGFyZSBsaXN0ZWQgZnJv bSB0aGUgZHJpdmVyIGlzbid0CmRpZmZlcmVudCBpbiB0aGUgYXRvbWljIGFuZCBub24gYXRvbWlj IGNhc2VzLgpUaGUgaWd0X2F0b21pY19maWxsX3Byb3BzIGFuZMKgaWd0X2F0b21pY19maWxsX3Bs YW5lX3Byb3BzIGZ1bmN0aW9ucyBhcmUKbm90IGF0b21pYyBzcGVjaWZpYy4KV2hhdCBJIHdhcyBz dWdnZXN0aW5nIGlzIHRvIGhhdmUgYSB1bmlmaWVkIHdheSBvZiBsaXN0aW5nIHRoZQpwcm9wZXJ0 aWVzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB3ZSdyZSBjb21taXR0aW5nIHRoaW5ncyBhdG9taWNh bGx5IG9yCm5vdCBhbmQganVzdCBoYXZlIHRoZSBjb21taXQgZnVuY3Rpb24gZG8gYSBzcGVjaWFs IGNhc2UgZm9yIGF0b21pYy4KClRoYXQgd2F5IGl0IGJlY29tZXMgZWFzaWVyIHRvIGFkZCBuZXcg cHJvcGVydGllcy4KCgotCkxpb25lbAoKT24gV2VkLCAyMDE2LTAzLTA5IGF0IDE5OjU1ICswNTMw LCBNYXl1cmVzaCBHaGFycHVyZSB3cm90ZToKPiBIaSBMaW9uZWwsCj4gCj4gSSd2ZSBpbmNvcnBv cmF0ZWQgeW91ciBjb21tZW50cyB1c2luZyB0aGUgZGlmZiBwYXRjaCBzdWJtaXR0ZWQgYnkKPiBN YWFydGVuIGFuZCBzdWJtaXR0ZWQgdGhlIGNoYW5nZXMKPiAKPiBodHRwczovL3BhdGNod29yay5m cmVlZGVza3RvcC5vcmcvc2VyaWVzLzQyNzQvwqAKPiAKPiBBbHNvLCBwbGVhc2UgZmluZCBteSBj b21tZW50cyBpbmxpbmUKPiAKPiBSZWdhcmRzLAo+IE1heXVyZXNoCj4gCj4gT24gMy84LzIwMTYg OTo0MSBQTSwgTGlvbmVsIExhbmR3ZXJsaW4gd3JvdGU6Cj4gPiBIaSBNYWFydGVuLMKgCj4gPiAK PiA+IFllYWggdGhhdCB3b3VsZCBiZSBtdWNoIHNpbXBsZXIgSSB0aGluay4KPiA+IAo+ID4gRGFt aWVuIGFsc28gbG9va2VkIGF0IHRoaXMgcGF0Y2ggb3ZlciBteSBzaG91bGRlciBhbmQgaGFkCj4g PiBhZGRpdGlvbmFsIGNvbW1lbnRzLgo+ID4gU28gbW9yZSBvciBsZXNzIHByb3h5aW5nIDoKPiA+ IAo+ID4gLSBOb3Qgc3VyZSB3aHkgd2UncmUgZXhwb3NpbmcgdGhlIG5ldyBlbnVtcyBhbmQgdGhl Cj4gPiBpZ3RfYXRvbWljX3BvcHVwbGF0ZV8qIG1hY3JvcyBpbiBpZ3Rfa21zLmguCj4gPiDCoCBB ZnRlciBhbGwgd2UncmUgbm90IHVzaW5nIHRoZW0gYW55d2hlcmUgb3V0c2lkZSBpZ3Rfa21zLmMu Cj4gwqBNYWNyb3MgYXJlIGp1c3QgdG8gaW1wcm92ZSByZWFkYWJpbGl0eS4gSW4gY2FzZSBzb21l IG5ldyBmZWF0dXJlCj4gbmVlZHMgdG8gYmUgYWRkZWQsIHdlIGNhbiBqdXN0IGFkZCBhbiBlbnVt IGFuZCB1c2UgdGhlIG1hY3JvIHRvCj4gcG9wdWxhdGUgaXQgaW4gY2FsbCB0byBJT0NUTC4KPiBU aGVzZSB3ZXJlIGFkZGVkIGluIGluaXRpYWwgaW1wbGVtZW50YXRpb24gYnkgTWFyaXVzLsKgCj4g Cj4gPiAKPiA+IC0gV2UgaGF2ZSBhIGNvdXBsZSBvZiBwcm9wZXJ0aWVzIGlkcyBzdG9yZWQgaW4g aWd0X2ttcy5oCj4gPiAoYmFja2dyb3VuZF9wcm9wZXJ0eSAmIHJvdGF0aW9uX3Byb3BlcnR5KSwg aXQgd291bGQgbWFrZSBzZW5zZSB0bwo+ID4gZ2V0IHJpZCBvZiB0aG9zZSBhbmQgdXNlIHRoZSBu ZXcgY3JlYXRlZCBhcnJheXMgaW5zdGVhZC4KPiDCoFRoZXNlIGFyZSB1c2VkIGJ5IHRoZSBDT01N SVRfTEVHQUNZIGFuZCBDT01NSVRfVU5JVkVSU0FMIHN0eWxlCj4gY2FsbHMuIFNvIGtlZXBpbmcg aXQgYXMgaXMsIGFzIGNoYW5naW5nIHRoaXMgbWF5IG5lZWQgYSBjaGFuZ2UgaW4KPiBtYW55IGV4 aXN0aW5nIHRlc3RzCj4gPiAKPiA+IENoZWVycywKPiA+IAo+ID4gLQo+ID4gTGlvbmVswqAKPiA+ IAo+ID4gT24gMDgvMDMvMTYgMTU6NTYsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ID4gPiBP cCAwNy0wMy0xNiBvbSAxMzo1MCBzY2hyZWVmIExpb25lbCBMYW5kd2VybGluOgo+ID4gPiA+IEhp IFByYXRpaywKPiA+ID4gPiAKPiA+ID4gPiBJJ20gcmVhbGx5IGxvb2tpbmcgZm9yd2FyZCB0byBn ZXQgdGhpcyBtZXJnZWQuCj4gPiA+ID4gSnVzdCBhIGZldyBjb21tZW50cyBvbiB0aGUgcGxhbmUg Y29tbWl0IHBhcnQgYmVsb3cuCj4gPiA+IFdvdWxkIHRoZSBmb2xsb3dpbmcgZGlmZiB0byB0aGUg cGF0Y2ggc2F0aXNmeSB5b3U/IEl0IHdvdWxkIGNsZWFuCj4gPiA+IHVwIHRoaW5ncyBhIGxvdC4K PiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2lndF9rbXMuYwo+ ID4gPiBpbmRleCAxZjczOGUxNGY1MmYuLjQ1NGZmNzU1MmI0YSAxMDA2NDQKPiA+ID4gLS0tIGEv bGliL2lndF9rbXMuYwo+ID4gPiArKysgYi9saWIvaWd0X2ttcy5jCj4gPiA+IEBAIC0xNTM0LDE0 ICsxNTM0LDYgQEAKPiA+ID4gaWd0X2F0b21pY19wcmVwYXJlX3BsYW5lX2NvbW1pdChpZ3RfcGxh bmVfdCAqcGxhbmUsIGlndF9vdXRwdXRfdAo+ID4gPiAqb3V0cHV0LAo+ID4gPiDCoAo+ID4gPiDC oAlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gb3V0cHV0LT5kaXNwbGF5Owo+ID4gPiDCoAl1aW50 MzJfdCBmYl9pZCwgY3J0Y19pZDsKPiA+ID4gLQl1aW50MzJfdCBzcmNfeDsKPiA+ID4gLQl1aW50 MzJfdCBzcmNfeTsKPiA+ID4gLQl1aW50MzJfdCBzcmNfdzsKPiA+ID4gLQl1aW50MzJfdCBzcmNf aDsKPiA+ID4gLQlpbnQzMl90IGNydGNfeDsKPiA+ID4gLQlpbnQzMl90IGNydGNfeTsKPiA+ID4g LQl1aW50MzJfdCBjcnRjX3c7Cj4gPiA+IC0JdWludDMyX3QgY3J0Y19oOwo+ID4gPiDCoAo+ID4g PiDCoAlpZ3RfYXNzZXJ0KHBsYW5lLT5kcm1fcGxhbmUpOwo+ID4gPiDCoAo+ID4gPiBAQCAtMTU1 Miw1NCArMTU0NCwzMCBAQAo+ID4gPiBpZ3RfYXRvbWljX3ByZXBhcmVfcGxhbmVfY29tbWl0KGln dF9wbGFuZV90ICpwbGFuZSwgaWd0X291dHB1dF90Cj4gPiA+ICpvdXRwdXQsCj4gPiA+IMKgCWZi X2lkID0gaWd0X3BsYW5lX2dldF9mYl9pZChwbGFuZSk7Cj4gPiA+IMKgCWNydGNfaWQgPSBvdXRw dXQtPmNvbmZpZy5jcnRjLT5jcnRjX2lkOwo+ID4gPiDCoAo+ID4gPiAtCWlmICgocGxhbmUtPmZi X2NoYW5nZWQgfHwgcGxhbmUtPnNpemVfY2hhbmdlZCkgJiYgZmJfaWQKPiA+ID4gPT0gMCkgewo+ ID4gPiAtCj4gPiA+IC0JCUxPRyhkaXNwbGF5LAo+ID4gPiAtCQnCoMKgwqDCoCIlczogcG9wdWxh dGluZyBwbGFuZSBkYXRhOiBwaXBlICVzLCBwbGFuZQo+ID4gPiAlZCwgZGlzYWJsaW5nXG4iLAo+ ID4gPiAtCQnCoMKgwqDCoMKgaWd0X291dHB1dF9uYW1lKG91dHB1dCksCj4gPiA+IC0JCcKgwqDC oMKgwqBrbXN0ZXN0X3BpcGVfbmFtZShvdXRwdXQtPmNvbmZpZy5waXBlKSwKPiA+ID4gLQkJwqDC oMKgwqDCoHBsYW5lLT5pbmRleCk7Cj4gPiA+IC0KPiA+ID4gLQkJLyogcG9wdWxhdGUgcGxhbmUg cmVxICovCj4gPiA+IC0JCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUs Cj4gPiA+IElHVF9QTEFORV9DUlRDX0lELCAwKTsKPiA+ID4gLQkJaWd0X2F0b21pY19wb3B1bGF0 ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwKPiA+ID4gSUdUX1BMQU5FX0ZCX0lELCAwKTsKPiA+ID4g LQo+ID4gPiAtCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLAo+ID4g PiBJR1RfUExBTkVfU1JDX1gsIElHVF9GSVhFRCgwLCAwKSk7Cj4gPiA+IC0JCWlndF9hdG9taWNf cG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUsCj4gPiA+IElHVF9QTEFORV9TUkNfWSwgSUdU X0ZJWEVEKDAsIDApKTsKPiA+ID4gLQkJaWd0X2F0b21pY19wb3B1bGF0ZV9wbGFuZV9yZXEocmVx LCBwbGFuZSwKPiA+ID4gSUdUX1BMQU5FX1NSQ19XLCBJR1RfRklYRUQoMCwgMCkpOwo+ID4gPiAt CQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLAo+ID4gPiBJR1RfUExB TkVfU1JDX0gsIElHVF9GSVhFRCgwLCAwKSk7Cj4gPiA+IC0KPiA+ID4gLQkJaWd0X2F0b21pY19w b3B1bGF0ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwKPiA+ID4gSUdUX1BMQU5FX0NSVENfWCwgMCk7 Cj4gPiA+IC0JCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUsCj4gPiA+ IElHVF9QTEFORV9DUlRDX1ksIDApOwo+ID4gPiAtCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5l X3JlcShyZXEsIHBsYW5lLAo+ID4gPiBJR1RfUExBTkVfQ1JUQ19XLCAwKTsKPiA+ID4gLQkJaWd0 X2F0b21pY19wb3B1bGF0ZV9wbGFuZV9yZXEocmVxLCBwbGFuZSwKPiA+ID4gSUdUX1BMQU5FX0NS VENfSCwgMCk7Cj4gPiA+IC0KPiA+ID4gLQl9IGVsc2UgaWYgKHBsYW5lLT5mYl9jaGFuZ2VkIHx8 IHBsYW5lLT5wb3NpdGlvbl9jaGFuZ2VkCj4gPiA+IHx8Cj4gPiA+IC0JCQlwbGFuZS0+c2l6ZV9j aGFuZ2VkKSB7Cj4gPiA+IC0KPiA+ID4gLQkJc3JjX3ggPSBJR1RfRklYRUQocGxhbmUtPmZiLT5z cmNfeCwgMCk7IC8qIHNyY194Cj4gPiA+ICovCj4gPiA+IC0JCXNyY195ID0gSUdUX0ZJWEVEKHBs YW5lLT5mYi0+c3JjX3ksIDApOyAvKiBzcmNfeQo+ID4gPiAqLwo+ID4gPiAtCQlzcmNfdyA9IElH VF9GSVhFRChwbGFuZS0+ZmItPnNyY193LCAwKTsgLyogc3JjX3cKPiA+ID4gKi8KPiA+ID4gLQkJ c3JjX2ggPSBJR1RfRklYRUQocGxhbmUtPmZiLT5zcmNfaCwgMCk7IC8qIHNyY19oCj4gPiA+ICov Cj4gPiA+IC0JCWNydGNfeCA9IHBsYW5lLT5jcnRjX3g7Cj4gPiA+IC0JCWNydGNfeSA9IHBsYW5l LT5jcnRjX3k7Cj4gPiA+IC0JCWNydGNfdyA9IHBsYW5lLT5jcnRjX3c7Cj4gPiA+IC0JCWNydGNf aCA9IHBsYW5lLT5jcnRjX2g7Cj4gPiA+IC0KPiA+ID4gLQkJTE9HKGRpc3BsYXksCj4gPiA+IC0J CcKgwqDCoMKgIiVzOiBwb3B1bGF0aW5nIHBsYW5lIGRhdGE6ICVzLiVkLCBmYiAldSwKPiA+ID4g c3JjID0gKCVkLCAlZCkgIgo+ID4gPiAtCQnCoMKgwqDCoCIldXgldSBkc3QgPSAoJXUsICV1KSAl dXgldVxuIiwKPiA+ID4gLQkJwqDCoMKgwqBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KSwKPiA+ID4g LQkJwqDCoMKgwqBrbXN0ZXN0X3BpcGVfbmFtZShvdXRwdXQtPmNvbmZpZy5waXBlKSwKPiA+ID4g LQkJwqDCoMKgwqBwbGFuZS0+aW5kZXgsCj4gPiA+IC0JCcKgwqDCoMKgZmJfaWQsCj4gPiA+IC0J CcKgwqDCoMKgc3JjX3ggPj4gMTYsIHNyY195ID4+IDE2LCBzcmNfdyA+PiAxNiwgc3JjX2gKPiA+ ID4gPj4gMTYsCj4gPiA+IC0JCcKgwqDCoMKgY3J0Y194LCBjcnRjX3ksIGNydGNfdywgY3J0Y19o KTsKPiA+ID4gLQo+ID4gPiAtCj4gPiA+IC0JCS8qIHBvcHVsYXRlIHBsYW5lIHJlcSAqLwo+ID4g PiAtCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLAo+ID4gPiBJR1Rf UExBTkVfQ1JUQ19JRCwgY3J0Y19pZCk7Cj4gPiA+ICsJTE9HKGRpc3BsYXksCj4gPiA+ICsJwqDC oMKgwqAiJXM6IHBvcHVsYXRpbmcgcGxhbmUgZGF0YTogJXMuJWQsIGZiICV1LCBzcmMgPSAoJWQs Cj4gPiA+ICVkKSAiCj4gPiA+ICsJwqDCoMKgwqAiJXV4JXUgZHN0ID0gKCV1LCAldSkgJXV4JXVc biIsCj4gPiA+ICsJwqDCoMKgwqBpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KSwKPiA+ID4gKwnCoMKg wqDCoGttc3Rlc3RfcGlwZV9uYW1lKG91dHB1dC0+Y29uZmlnLnBpcGUpLAo+ID4gPiArCcKgwqDC oMKgcGxhbmUtPmluZGV4LAo+ID4gPiArCcKgwqDCoMKgZmJfaWQsCj4gPiA+ICsJwqDCoMKgwqBz cmNfeCA+PiAxNiwgc3JjX3kgPj4gMTYsIHNyY193ID4+IDE2LCBzcmNfaCA+PiAxNiwKPiA+ID4g KwnCoMKgwqDCoGNydGNfeCwgY3J0Y195LCBjcnRjX3csIGNydGNfaCk7Cj4gPiA+ICsKPiA+ID4g KwlpZiAocGxhbmUtPmZiX2NoYW5nZWQpIHsKPiA+ID4gKwkJaWd0X2F0b21pY19wb3B1bGF0ZV9w bGFuZV9yZXEocmVxLCBwbGFuZSwKPiA+ID4gSUdUX1BMQU5FX0NSVENfSUQsIGZiX2lkID8gY3J0 Y19pZCA6IDApOwo+ID4gPiDCoAkJaWd0X2F0b21pY19wb3B1bGF0ZV9wbGFuZV9yZXEocmVxLCBw bGFuZSwKPiA+ID4gSUdUX1BMQU5FX0ZCX0lELCBmYl9pZCk7Cj4gPiA+ICsJfQo+ID4gPiArCj4g PiA+ICsJaWYgKHBsYW5lLT5wb3NpdGlvbl9jaGFuZ2VkIHx8IHBsYW5lLT5zaXplX2NoYW5nZWQp IHsKPiA+ID4gKwkJdWludDMyX3Qgc3JjX3ggPSBJR1RfRklYRUQocGxhbmUtPmZiLT5zcmNfeCwg MCk7Cj4gPiA+IC8qIHNyY194ICovCj4gPiA+ICsJCXVpbnQzMl90IHNyY195ID0gSUdUX0ZJWEVE KHBsYW5lLT5mYi0+c3JjX3ksIDApOwo+ID4gPiAvKiBzcmNfeSAqLwo+ID4gPiArCQl1aW50MzJf dCBzcmNfdyA9IElHVF9GSVhFRChwbGFuZS0+ZmItPnNyY193LCAwKTsKPiA+ID4gLyogc3JjX3cg Ki8KPiA+ID4gKwkJdWludDMyX3Qgc3JjX2ggPSBJR1RfRklYRUQocGxhbmUtPmZiLT5zcmNfaCwg MCk7Cj4gPiA+IC8qIHNyY19oICovCj4gPiA+ICsJCWludDMyX3QgY3J0Y194ID0gcGxhbmUtPmNy dGNfeDsKPiA+ID4gKwkJaW50MzJfdCBjcnRjX3kgPSBwbGFuZS0+Y3J0Y195Owo+ID4gPiArCQl1 aW50MzJfdCBjcnRjX3cgPSBwbGFuZS0+Y3J0Y193Owo+ID4gPiArCQl1aW50MzJfdCBjcnRjX2gg PSBwbGFuZS0+Y3J0Y19oOwo+ID4gPiDCoAo+ID4gPiDCoAkJaWd0X2F0b21pY19wb3B1bGF0ZV9w bGFuZV9yZXEocmVxLCBwbGFuZSwKPiA+ID4gSUdUX1BMQU5FX1NSQ19YLCBzcmNfeCk7Cj4gPiA+ IMKgCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLAo+ID4gPiBJR1Rf UExBTkVfU1JDX1ksIHNyY195KTsKPiA+ID4gQEAgLTE2MTAsMTggKzE1NzgsMTUgQEAKPiA+ID4g aWd0X2F0b21pY19wcmVwYXJlX3BsYW5lX2NvbW1pdChpZ3RfcGxhbmVfdCAqcGxhbmUsIGlndF9v dXRwdXRfdAo+ID4gPiAqb3V0cHV0LAo+ID4gPiDCoAkJaWd0X2F0b21pY19wb3B1bGF0ZV9wbGFu ZV9yZXEocmVxLCBwbGFuZSwKPiA+ID4gSUdUX1BMQU5FX0NSVENfWSwgY3J0Y195KTsKPiA+ID4g wqAJCWlndF9hdG9taWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwgcGxhbmUsCj4gPiA+IElHVF9Q TEFORV9DUlRDX1csIGNydGNfdyk7Cj4gPiA+IMKgCQlpZ3RfYXRvbWljX3BvcHVsYXRlX3BsYW5l X3JlcShyZXEsIHBsYW5lLAo+ID4gPiBJR1RfUExBTkVfQ1JUQ19ILCBjcnRjX2gpOwo+ID4gPiAt Cj4gPiA+IC0JCWlmIChwbGFuZS0+cm90YXRpb25fY2hhbmdlZCkKPiA+ID4gLQkJCWlndF9hdG9t aWNfcG9wdWxhdGVfcGxhbmVfcmVxKHJlcSwKPiA+ID4gcGxhbmUsCj4gPiA+IC0JCQkJSUdUX1BM QU5FX1JPVEFUSU9OLCBwbGFuZS0KPiA+ID4gPnJvdGF0aW9uKTsKPiA+ID4gLQo+ID4gPiDCoAl9 Cj4gPiA+IMKgCj4gPiA+ICsJaWYgKHBsYW5lLT5yb3RhdGlvbl9jaGFuZ2VkKQo+ID4gPiArCQlp Z3RfYXRvbWljX3BvcHVsYXRlX3BsYW5lX3JlcShyZXEsIHBsYW5lLAo+ID4gPiArCQkJSUdUX1BM QU5FX1JPVEFUSU9OLCBwbGFuZS0+cm90YXRpb24pOwo+ID4gPiArCj4gPiA+IMKgCXBsYW5lLT5m Yl9jaGFuZ2VkID0gZmFsc2U7Cj4gPiA+IMKgCXBsYW5lLT5wb3NpdGlvbl9jaGFuZ2VkID0gZmFs c2U7Cj4gPiA+IMKgCXBsYW5lLT5zaXplX2NoYW5nZWQgPSBmYWxzZTsKPiA+IMKgCj4gPiBJIG1p c3NlZCB0aGF0LCBidXQgSSB0aGluayB3ZSBuZWVkIHJvdGF0aW9uX2NoYW5nZWQgPSBmYWxzZTsg aGVyZQo+ID4gdG9vLgo+ID4gCj4gPiA+IC0KPiA+ID4gLQlyZXR1cm47Cj4gPiA+IMKgfQo+ID4g PiDCoAo+ID4gPiDCoAo+ID4gPiAKPiA+IMKgCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IMKgCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=