From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 86B896E882 for ; Fri, 29 Mar 2019 08:55:41 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id a25so1327899edc.8 for ; Fri, 29 Mar 2019 01:55:41 -0700 (PDT) Date: Fri, 29 Mar 2019 09:55:37 +0100 From: Daniel Vetter Message-ID: <20190329085537.GF2665@phenom.ffwll.local> References: <20190328151728.16183-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190328151728.16183-1-stanislav.lisovskiy@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v1] igt/tests: kms_atomic_transition improvements. 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: Stanislav Lisovskiy Cc: igt-dev@lists.freedesktop.org, ville.syrjala@intel.com, martin.peres@intel.com List-ID: T24gVGh1LCBNYXIgMjgsIDIwMTkgYXQgMDU6MTc6MjhQTSArMDIwMCwgU3RhbmlzbGF2IExpc292 c2tpeSB3cm90ZToKPiBGaXhlczoKPiAgICAtIFdpdGggc29tZSB1cGNvbWluZyBjaGFuZ2VzIGk5 MTUgbWlnaHQgbm90IGFsbG93Cj4gICAgICBhbGwgc3ByaXRlIHBsYW5lcyBlbmFibGVkLCBkZXBl bmRpbmcgb24gYXZhaWxhYmxlCj4gICAgICBiYW5kd2lkdGggbGltaXRhdGlvbi4gVGh1cyB0aGUg dGVzdCBuZWVkIHRvIGRlY3JlbWVudAo+ICAgICAgYW1vdW50IG9mIHBsYW5lcyBhbmQgdHJ5IGFn YWluLCBpbnN0ZWFkIG9mIHBhbmlja2luZy4KPiAgICAtIFJlbW92ZWQgdW5uZWVkZWQgb3Zlcmxh eXMgdmFyaWFibGUsIGNoYW5nZWQgdGhlIHBhcm1zCj4gICAgICBpbml0aWFsaXphdGlvbiBjeWNs ZSB0aGF0IGl0IGluaXRpYWxpemVzIGFsc28gaXRlcl9tYXNrCj4gICAgICBhbmQgcGFybXNbaV0u bWFzayBhdCB0aGUgc2FtZSB0aW1lLCBmdWxsZmlsaW5nIHRoZSBzYW1lCj4gICAgICByZXF1aXJl bWVudHMoaS5lIGFsd2F5cyB1c2UgcHJpbWFyeSwgY3Vyc29yIGFuZCBvbmUgc3ByaXRlCj4gICAg ICBwbGFuZSwgZm9yIHRoZSByZXN0IHBhcm1zW2ldLm1hc2sgaXMgcmFuZG9taXplZCkuCj4gICAg LSBXaGlsZSBmaXhpbmcgdXNlZCBhbW91bnQgb2YgcGxhbmVzLCBkaXNjb3ZlcmVkIHRoYXQgaWYK PiAgICAgIHdtX3NldHVwX3BsYW5lIGlzIGNhbGxlZCB3aXRoIDAgcGxhbmVzKG1pZ2h0IGhhcHBl biBkdXJpbmcKPiAgICAgIG1haW4gdGVzdGluZyBjeWNsZSwgYXMgcGFybXNbaV0ubWFzayBjYW4g YmUgMCBkdWUgdG8gcmFuZG9taXphdGlvbikKPiAgICAgIHRoZW4gc3Vic2VxdWVudCB3YWl0X3Ry YW5zaXRpb24gZmFpbHMgaW4gYXNzZXJ0aW9uIG9uIGZkX2NvbXBsZXRlZC4KPiAgICAgIFNvIGFk ZGVkIHJldHVybiB2YWx1ZSB0byB3bV9zZXR1cF9wbGFuZSwgd2hpY2ggd291bGQgYWxsb3cgdG8K PiAgICAgIGRldGVybWluZSwgaWYgd2UgbmVlZCB0byBza2lwIHRoaXMgc3RlcC4KClNvdW5kcyBs aWtlIDMgcGF0Y2hlcyBjcmFtbWVkIGludG8gb25lLiBDYW4geW91IHBscyBzcGxpdCB1cD8KClRo YW5rcywgRGFuaWVsCj4gCj4gU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExpc292c2tpeSA8c3Rh bmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+Cj4gLS0tCj4gIHRlc3RzL2ttc19hdG9taWNfdHJh bnNpdGlvbi5jIHwgODUgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPiAgMSBm aWxlIGNoYW5nZWQsIDQ3IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS90ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRpb24uYyBiL3Rlc3RzL2ttc19hdG9taWNf dHJhbnNpdGlvbi5jCj4gaW5kZXggMThmNzMzMTcuLmE3NWU5OGI1IDEwMDY0NAo+IC0tLSBhL3Rl c3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jCj4gKysrIGIvdGVzdHMva21zX2F0b21pY190cmFu c2l0aW9uLmMKPiBAQCAtMTE4LDExICsxMTgsMTIgQEAgc3RhdGljIHZvaWQgY29uZmlndXJlX2Zl bmNpbmcoaWd0X3BsYW5lX3QgKnBsYW5lKQo+ICAJaWd0X2Fzc2VydF9lcShyZXQsIDApOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZAo+ICtzdGF0aWMgaW50Cj4gIHdtX3NldHVwX3BsYW5lKGlndF9k aXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLAo+ICAJICAgICAgIHVpbnQzMl90IG1h c2ssIHN0cnVjdCBwbGFuZV9wYXJtcyAqcGFybXMsIGJvb2wgZmVuY2luZykKPiAgewo+ICAJaWd0 X3BsYW5lX3QgKnBsYW5lOwo+ICsJaW50IHBsYW5lc19zZXRfdXAgPSAwOwo+ICAKPiAgCS8qCj4g IAkqIE1ha2Ugc3VyZSB0aGVzZSBidWZmZXJzIGFyZSBzdWl0ZWQgZm9yIGRpc3BsYXkgdXNlCj4g QEAgLTEzMyw4ICsxMzQsMTAgQEAgd21fc2V0dXBfcGxhbmUoaWd0X2Rpc3BsYXlfdCAqZGlzcGxh eSwgZW51bSBwaXBlIHBpcGUsCj4gIAkJaW50IGkgPSBwbGFuZS0+aW5kZXg7Cj4gIAo+ICAJCWlm ICghbWFzayB8fCAhKHBhcm1zW2ldLm1hc2sgJiBtYXNrKSkgewo+IC0JCQlpZiAocGxhbmUtPnZh bHVlc1tJR1RfUExBTkVfRkJfSURdKQo+ICsJCQlpZiAocGxhbmUtPnZhbHVlc1tJR1RfUExBTkVf RkJfSURdKSB7Cj4gIAkJCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBOVUxMKTsKPiArCQkJCXBs YW5lc19zZXRfdXArKzsKPiArCQkJfQo+ICAJCQljb250aW51ZTsKPiAgCQl9Cj4gIAo+IEBAIC0x NDQsNyArMTQ3LDEwIEBAIHdtX3NldHVwX3BsYW5lKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVu dW0gcGlwZSBwaXBlLAo+ICAJCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIHBhcm1zW2ldLmZiKTsK PiAgCQlpZ3RfZmJfc2V0X3NpemUocGFybXNbaV0uZmIsIHBsYW5lLCBwYXJtc1tpXS53aWR0aCwg cGFybXNbaV0uaGVpZ2h0KTsKPiAgCQlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIHBhcm1zW2ld LndpZHRoLCBwYXJtc1tpXS5oZWlnaHQpOwo+ICsKPiArCQlwbGFuZXNfc2V0X3VwKys7Cj4gIAl9 Cj4gKwlyZXR1cm4gcGxhbmVzX3NldF91cDsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZXZfcGFn ZV9mbGlwKGludCBmZCwgdW5zaWduZWQgc2VxLCB1bnNpZ25lZCB0dl9zZWMsIHVuc2lnbmVkIHR2 X3VzZWMsIHZvaWQgKnVzZXJfZGF0YSkKPiBAQCAtMjA2LDkgKzIxMiwxMCBAQCBzdGF0aWMgdm9p ZCBzZXR1cF9wYXJtcyhpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwKPiAg CXVuc2lnbmVkIHNwcml0ZV93aWR0aCwgc3ByaXRlX2hlaWdodCwgcHJldl93LCBwcmV2X2g7Cj4g IAlib29sIG1heF9zcHJpdGVfd2lkdGgsIG1heF9zcHJpdGVfaGVpZ2h0LCBhbHBoYSA9IHRydWU7 Cj4gIAl1aW50MzJfdCBuX3BsYW5lcyA9IGRpc3BsYXktPnBpcGVzW3BpcGVdLm5fcGxhbmVzOwo+ IC0JdWludDMyX3Qgbl9vdmVybGF5cyA9IDAsIG92ZXJsYXlzW25fcGxhbmVzXTsKPiArCXVpbnQz Ml90IG5fb3ZlcmxheXM7Cj4gIAlpZ3RfcGxhbmVfdCAqcGxhbmU7Cj4gLQl1aW50MzJfdCBpdGVy X21hc2sgPSAzOwo+ICsJdWludDMyX3QgaXRlcl9tYXNrOwo+ICsJaW50IHJldHJpZXMgPSBuX3Bs YW5lcyAtIDE7Cj4gIAo+ICAJZG9fb3JfZGllKGRybUdldENhcChkaXNwbGF5LT5kcm1fZmQsIERS TV9DQVBfQ1VSU09SX1dJRFRILCAmY3Vyc29yX3dpZHRoKSk7Cj4gIAlpZiAoY3Vyc29yX3dpZHRo ID49IG1vZGUtPmhkaXNwbGF5KQo+IEBAIC0yMTcsNiArMjI0LDkgQEAgc3RhdGljIHZvaWQgc2V0 dXBfcGFybXMoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUsCj4gIAlkb19v cl9kaWUoZHJtR2V0Q2FwKGRpc3BsYXktPmRybV9mZCwgRFJNX0NBUF9DVVJTT1JfSEVJR0hULCAm Y3Vyc29yX2hlaWdodCkpOwo+ICAJaWYgKGN1cnNvcl9oZWlnaHQgPj0gbW9kZS0+dmRpc3BsYXkp Cj4gIAkJY3Vyc29yX2hlaWdodCA9IG1vZGUtPnZkaXNwbGF5Owo+ICtyZXRyeToKPiArCW5fb3Zl cmxheXMgPSAwOwo+ICsJaXRlcl9tYXNrID0gMDsKPiAgCj4gIAlmb3JfZWFjaF9wbGFuZV9vbl9w aXBlKGRpc3BsYXksIHBpcGUsIHBsYW5lKSB7Cj4gIAkJaW50IGkgPSBwbGFuZS0+aW5kZXg7Cj4g QEAgLTIyNSwzNiArMjM1LDIxIEBAIHN0YXRpYyB2b2lkIHNldHVwX3Bhcm1zKGlndF9kaXNwbGF5 X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLAo+ICAJCQlwYXJtc1tpXS5mYiA9IHByaW1hcnlf ZmI7Cj4gIAkJCXBhcm1zW2ldLndpZHRoID0gbW9kZS0+aGRpc3BsYXk7Cj4gIAkJCXBhcm1zW2ld LmhlaWdodCA9IG1vZGUtPnZkaXNwbGF5Owo+IC0JCQlwYXJtc1tpXS5tYXNrID0gMSA8PCAwOwo+ ICAJCX0gZWxzZSBpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7Cj4g IAkJCXBhcm1zW2ldLmZiID0gYXJnYl9mYjsKPiAgCQkJcGFybXNbaV0ud2lkdGggPSBjdXJzb3Jf d2lkdGg7Cj4gIAkJCXBhcm1zW2ldLmhlaWdodCA9IGN1cnNvcl9oZWlnaHQ7Cj4gLQkJCXBhcm1z W2ldLm1hc2sgPSAxIDw8IDE7Cj4gIAkJfSBlbHNlIHsKPiAgCQkJcGFybXNbaV0uZmIgPSBzcHJp dGVfZmI7Cj4gLQkJCXBhcm1zW2ldLm1hc2sgPSAxIDw8IDI7Cj4gLQo+IC0JCQlpdGVyX21hc2sg fD0gMSA8PCAyOwo+IC0KPiAtCQkJb3ZlcmxheXNbbl9vdmVybGF5cysrXSA9IGk7Cj4gKwkJCW5f b3ZlcmxheXMrKzsKPiAgCQl9Cj4gLQl9Cj4gLQo+IC0JaWYgKG5fb3ZlcmxheXMgPj0gMikgewo+ IC0JCXVpbnQzMl90IGk7Cj4gLQo+IC0JCS8qCj4gLQkJICogQ3JlYXRlIDIgZ3JvdXBzIGZvciBv dmVybGF5cywgbWFrZSBzdXJlIDEgcGxhbmUgaXMgcHV0Cj4gLQkJICogaW4gZWFjaCB0aGVuIHNw cmVhZCB0aGUgcmVzdCBvdXQuCj4gLQkJICovCj4gLQkJaXRlcl9tYXNrIHw9IDEgPDwgMzsKPiAt CQlwYXJtc1tvdmVybGF5c1tuX292ZXJsYXlzIC0gMV1dLm1hc2sgPSAxIDw8IDM7Cj4gLQo+IC0J CWZvciAoaSA9IDE7IGkgPCBuX292ZXJsYXlzIC0gMTsgaSsrKSB7Cj4gLQkJCWludCB2YWwgPSBo YXJzX3BldHJ1c2thX2Y1NF8xX3JhbmRvbV91bnNhZmVfbWF4KDIpOwo+IC0KPiAtCQkJcGFybXNb b3ZlcmxheXNbaV1dLm1hc2sgPSAxIDw8ICgyICsgdmFsKTsKPiArCQlpdGVyX21hc2sgfD0gMSA8 PCBpOwo+ICsJCWlmIChpIDw9IDIpIHsKPiArCQkJLyogYWx3YXlzIGxlYXZlIG9uZSBwbGFuZSBh cyBpbiBvcmlnaW5hbCBhbGdvcml0aG0gKi8KPiArCQkJcGFybXNbaV0ubWFzayA9IDEgPDwgaTsK PiArCQl9Cj4gKwkJZWxzZSB7Cj4gKwkJCXBhcm1zW2ldLm1hc2sgPSBoYXJzX3BldHJ1c2thX2Y1 NF8xX3JhbmRvbV91bnNhZmVfbWF4KDIpIDw8IGk7Cj4gIAkJfQo+ICAJfQo+ICAKPiBAQCAtMjcy LDcgKzI2Nyw2IEBAIHN0YXRpYyB2b2lkIHNldHVwX3Bhcm1zKGlndF9kaXNwbGF5X3QgKmRpc3Bs YXksIGVudW0gcGlwZSBwaXBlLAo+ICAJICogUHJlIGdlbjkgbm90IGFsbCBzaXplcyBhcmUgc3Vw cG9ydGVkLCBmaW5kIHRoZSBiaWdnZXN0IHBvc3NpYmxlCj4gIAkgKiBzaXplIHRoYXQgY2FuIGJl IGVuYWJsZWQgb24gYWxsIHNwcml0ZSBwbGFuZXMuCj4gIAkgKi8KPiAtcmV0cnk6Cj4gIAlwcmV2 X3cgPSBzcHJpdGVfd2lkdGggPSBjdXJzb3Jfd2lkdGg7Cj4gIAlwcmV2X2ggPSBzcHJpdGVfaGVp Z2h0ID0gY3Vyc29yX2hlaWdodDsKPiAgCj4gQEAgLTI5MiwxMiArMjg2LDIyIEBAIHJldHJ5Ogo+ ICAJCWlmIChpc19hdG9taWNfY2hlY2tfcGxhbmVfc2l6ZV9lcnJubyhyZXQpKSB7Cj4gIAkJCWlm IChjdXJzb3Jfd2lkdGggPT0gc3ByaXRlX3dpZHRoICYmCj4gIAkJCSAgICBjdXJzb3JfaGVpZ2h0 ID09IHNwcml0ZV9oZWlnaHQpIHsKPiAtCQkJCWlndF9hc3NlcnRfZihhbHBoYSwKPiAtCQkJCQkg ICAgICAiQ2Fubm90IGNvbmZpZ3VyZSB0aGUgdGVzdCB3aXRoIGFsbCBzcHJpdGUgcGxhbmVzIGVu YWJsZWRcbiIpOwo+IC0KPiAtCQkJCS8qIHJldHJ5IG9uY2Ugd2l0aCBYUkdCIGZvcm1hdC4gKi8K PiAtCQkJCWFscGhhID0gZmFsc2U7Cj4gLQkJCQlnb3RvIHJldHJ5Owo+ICsJCQkJaWYgKC0tcmV0 cmllcyA+PSAwKSB7Cj4gKwkJCQkJLyogcmV0cnkgb25jZSB3aXRoIFhSR0IgZm9ybWF0LiAqLwo+ ICsJCQkJCWlmIChhbHBoYSkgewo+ICsJCQkJCQlhbHBoYSA9IGZhbHNlOwo+ICsJCQkJCX0KPiAr CQkJCQllbHNlIGlmIChkaXNwbGF5LT5waXBlc1twaXBlXS5uX3BsYW5lcyA+IDApIHsKPiArCQkJ CQkJZGlzcGxheS0+cGlwZXNbcGlwZV0ubl9wbGFuZXMtLTsKPiArCQkJCQkJaWd0X2luZm8oIlJl ZHVjZWQgYXZhaWxhYmxlIHBsYW5lcyB0byAlZFxuIiwKPiArCQkJCQkJCSAgICBkaXNwbGF5LT5w aXBlc1twaXBlXS5uX3BsYW5lcyk7Cj4gKwkJCQkJfQo+ICsJCQkJCW5fcGxhbmVzID0gZGlzcGxh eS0+cGlwZXNbcGlwZV0ubl9wbGFuZXM7Cj4gKwkJCQkJaWd0X2Fzc2VydF9mKG5fcGxhbmVzID4g MCwgIk5vIHBsYW5lcyBsZWZ0IHRvIHByb2NlZWQgd2l0aCEiKTsKPiArCQkJCQlnb3RvIHJldHJ5 Owo+ICsJCQkJfQo+ICsJCQkJaWd0X2Fzc2VydF9mKHJldHJpZXMgPiAwLAo+ICsJCQkJICAgICAg IkNhbm5vdCBjb25maWd1cmUgdGhlIHRlc3Qgd2l0aCBhbGwgc3ByaXRlIHBsYW5lcyBlbmFibGVk XG4iKTsKPiAgCQkJfQo+ICAKPiAgCQkJc3ByaXRlX3dpZHRoID0gcHJldl93Owo+IEBAIC01NDQs NyArNTQ4LDggQEAgcnVuX3RyYW5zaXRpb25fdGVzdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBl bnVtIHBpcGUgcGlwZSwgaWd0X291dHB1dF90ICpvdXRwdXQKPiAgCj4gIAkJaWd0X291dHB1dF9z ZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ICAKPiAtCQl3bV9zZXR1cF9wbGFuZShkaXNwbGF5LCBw aXBlLCBpLCBwYXJtcywgZmVuY2luZyk7Cj4gKwkJaWYgKCF3bV9zZXR1cF9wbGFuZShkaXNwbGF5 LCBwaXBlLCBpLCBwYXJtcywgZmVuY2luZykpCj4gKwkJCWNvbnRpbnVlOwo+ICAKPiAgCQlhdG9t aWNfY29tbWl0KGRpc3BsYXksIHBpcGUsIGZsYWdzLCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKWks IGZlbmNpbmcpOwo+ICAJCXdhaXRfZm9yX3RyYW5zaXRpb24oZGlzcGxheSwgcGlwZSwgbm9uYmxv Y2tpbmcsIGZlbmNpbmcpOwo+IEBAIC01NTIsNyArNTU3LDggQEAgcnVuX3RyYW5zaXRpb25fdGVz dChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwgaWd0X291dHB1dF90ICpv dXRwdXQKPiAgCQlpZiAodHlwZSA9PSBUUkFOU0lUSU9OX01PREVTRVRfRElTQUJMRSkgewo+ICAJ CQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKPiAgCj4gLQkJCXdtX3Nl dHVwX3BsYW5lKGRpc3BsYXksIHBpcGUsIDAsIHBhcm1zLCBmZW5jaW5nKTsKPiArCQkJaWYgKCF3 bV9zZXR1cF9wbGFuZShkaXNwbGF5LCBwaXBlLCAwLCBwYXJtcywgZmVuY2luZykpCj4gKwkJCQlj b250aW51ZTsKPiAgCj4gIAkJCWF0b21pY19jb21taXQoZGlzcGxheSwgcGlwZSwgZmxhZ3MsICh2 b2lkICopIDBVTCwgZmVuY2luZyk7Cj4gIAkJCXdhaXRfZm9yX3RyYW5zaXRpb24oZGlzcGxheSwg cGlwZSwgbm9uYmxvY2tpbmcsIGZlbmNpbmcpOwo+IEBAIC01NjgsNyArNTc0LDggQEAgcnVuX3Ry YW5zaXRpb25fdGVzdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwgaWd0 X291dHB1dF90ICpvdXRwdXQKPiAgCQkJCSAgICBuX2VuYWJsZV9wbGFuZXMgPCBwaXBlX29iai0+ bl9wbGFuZXMpCj4gIAkJCQkJY29udGludWU7Cj4gIAo+IC0JCQkJd21fc2V0dXBfcGxhbmUoZGlz cGxheSwgcGlwZSwgaiwgcGFybXMsIGZlbmNpbmcpOwo+ICsJCQkJaWYgKCF3bV9zZXR1cF9wbGFu ZShkaXNwbGF5LCBwaXBlLCBqLCBwYXJtcywgZmVuY2luZykpCj4gKwkJCQkJY29udGludWU7Cj4g IAo+ICAJCQkJaWYgKHR5cGUgPj0gVFJBTlNJVElPTl9NT0RFU0VUKQo+ICAJCQkJCWlndF9vdXRw dXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsICZvdmVycmlkZV9tb2RlKTsKPiBAQCAtNTc2LDcgKzU4 Myw5IEBAIHJ1bl90cmFuc2l0aW9uX3Rlc3QoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51bSBw aXBlIHBpcGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0Cj4gIAkJCQlhdG9taWNfY29tbWl0KGRpc3Bs YXksIHBpcGUsIGZsYWdzLCAodm9pZCAqKSh1bnNpZ25lZCBsb25nKSBqLCBmZW5jaW5nKTsKPiAg CQkJCXdhaXRfZm9yX3RyYW5zaXRpb24oZGlzcGxheSwgcGlwZSwgbm9uYmxvY2tpbmcsIGZlbmNp bmcpOwo+ICAKPiAtCQkJCXdtX3NldHVwX3BsYW5lKGRpc3BsYXksIHBpcGUsIGksIHBhcm1zLCBm ZW5jaW5nKTsKPiArCQkJCWlmICghd21fc2V0dXBfcGxhbmUoZGlzcGxheSwgcGlwZSwgaSwgcGFy bXMsIGZlbmNpbmcpKQo+ICsJCQkJCWNvbnRpbnVlOwo+ICsKPiAgCQkJCWlmICh0eXBlID49IFRS QU5TSVRJT05fTU9ERVNFVCkKPiAgCQkJCQlpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUob3V0cHV0 LCBOVUxMKTsKPiAgCj4gLS0gCj4gMi4xNy4xCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBpZ3QtZGV2IG1haWxpbmcgbGlzdAo+IGlndC1kZXZA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pZ3QtZGV2CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0 LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2