From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id F134589857 for ; Mon, 27 May 2019 10:20:35 +0000 (UTC) References: <20190524150334.15833-1-simon.ser@intel.com> <20190524150334.15833-2-simon.ser@intel.com> From: Martin Peres Message-ID: Date: Mon, 27 May 2019 13:20:28 +0300 MIME-Version: 1.0 In-Reply-To: <20190524150334.15833-2-simon.ser@intel.com> Content-Language: en-PH Subject: Re: [igt-dev] [PATCH i-g-t v2 1/9] tests/kms_chamelium: refactor audio test 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: Simon Ser , igt-dev@lists.freedesktop.org List-ID: T24gMjQvMDUvMjAxOSAxODowMywgU2ltb24gU2VyIHdyb3RlOgo+IEluc3RlYWQgb2Ygc2hhdmlu ZyBldmVyeXRoaW5nIGludG8gZG9fdGVzdF9kaXNwbGF5X2F1ZGlvLCBleHRyYWN0IHRoZSBsb2dp YyB0bwoKc2hvdmluZyA6KQoKPiBpbml0aWFsaXplLCBzdGFydCwgc3RvcCwgZmluaXNoIGFuIGF1 ZGlvIHRlc3QgaW4gaGVscGVyIGZ1bmN0aW9ucy4gVGhlIHN0cnVjdAo+IGF1ZGlvX3N0YXRlIG5v dyBjYXJyaWVzIGFsbCBhdWRpby1yZWxhdGVkIHN0YXRlLgo+IAo+IFRoaXMgd2lsbCBhbGxvdyB0 byBlYXNpbHkgYWRkIG1vcmUgYXVkaW8gdGVzdHMgdGhhdCBkb24ndCB1c2Ugc2luZSB3YXZlcyAo dmlhCj4gYXVkaW9fc2lnbmFsKS4gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIGZ1dHVyZSBkZWxheSBh bmQgYW1wbGl0dWRlIHRlc3RzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNpbW9uIFNlciA8c2ltb24u c2VyQGludGVsLmNvbT4KPiAtLS0KPiAgdGVzdHMva21zX2NoYW1lbGl1bS5jIHwgMzM2ICsrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwg MTk1IGluc2VydGlvbnMoKyksIDE0MSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVz dHMva21zX2NoYW1lbGl1bS5jIGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCj4gaW5kZXggOGRhNmVj MjA3NTllLi4xYTBhMDJjYTI4OTAgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2NoYW1lbGl1bS5j Cj4gKysrIGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCj4gQEAgLTgxMiwxNyArODEyLDE3OSBAQCBz dGF0aWMgY29uc3Qgc25kX3BjbV9mb3JtYXRfdCB0ZXN0X2Zvcm1hdHNbXSA9IHsKPiAgc3RhdGlj IGNvbnN0IHNpemVfdCB0ZXN0X2Zvcm1hdHNfY291bnQgPSBzaXplb2YodGVzdF9mb3JtYXRzKSAv IHNpemVvZih0ZXN0X2Zvcm1hdHNbMF0pOwo+ICAKPiAgc3RydWN0IGF1ZGlvX3N0YXRlIHsKPiAr CXN0cnVjdCBhbHNhICphbHNhOwo+ICsJc3RydWN0IGNoYW1lbGl1bSAqY2hhbWVsaXVtOwo+ICsJ c3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0Owo+ICsJc3RydWN0IGNoYW1lbGl1bV9zdHJlYW0g KnN0cmVhbTsKPiArCj4gKwkvKiBUaGUgY2FwdHVyZSBmb3JtYXQgaXMgb25seSBhdmFpbGFibGUg YWZ0ZXIgY2FwdHVyZSBoYXMgc3RhcnRlZC4gKi8KPiArCXN0cnVjdCB7Cj4gKwkJc25kX3BjbV9m b3JtYXRfdCBmb3JtYXQ7Cj4gKwkJaW50IGNoYW5uZWxzOwo+ICsJCWludCByYXRlOwo+ICsJfSBw bGF5YmFjaywgY2FwdHVyZTsKPiArCj4gIAlzdHJ1Y3QgYXVkaW9fc2lnbmFsICpzaWduYWw7Cj4g LQlzbmRfcGNtX2Zvcm1hdF90IGZvcm1hdDsKPiArCWludCBjaGFubmVsX21hcHBpbmdbOF07Cj4g Kwo+ICsJaW50IGR1bXBfZmQ7Cj4gKwljaGFyICpkdW1wX3BhdGg7Cj4gKwo+ICsJcHRocmVhZF90 IHRocmVhZDsKPiAgCWF0b21pY19ib29sIHJ1bjsKPiAgfTsKPiAgCj4gK3N0YXRpYyB2b2lkIGF1 ZGlvX3N0YXRlX2luaXQoc3RydWN0IGF1ZGlvX3N0YXRlICpzdGF0ZSwgZGF0YV90ICpkYXRhLAo+ ICsJCQkgICAgIHN0cnVjdCBhbHNhICphbHNhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQs Cj4gKwkJCSAgICAgc25kX3BjbV9mb3JtYXRfdCBmb3JtYXQsIGludCBjaGFubmVscywgaW50IHJh dGUpCj4gK3sKPiArCW1lbXNldChzdGF0ZSwgMCwgc2l6ZW9mKCpzdGF0ZSkpOwo+ICsJc3RhdGUt PmR1bXBfZmQgPSAtMTsKPiArCj4gKwlzdGF0ZS0+YWxzYSA9IGFsc2E7Cj4gKwlzdGF0ZS0+Y2hh bWVsaXVtID0gZGF0YS0+Y2hhbWVsaXVtOwo+ICsJc3RhdGUtPnBvcnQgPSBwb3J0Owo+ICsKPiAr CXN0YXRlLT5wbGF5YmFjay5mb3JtYXQgPSBmb3JtYXQ7Cj4gKwlzdGF0ZS0+cGxheWJhY2suY2hh bm5lbHMgPSBjaGFubmVsczsKPiArCXN0YXRlLT5wbGF5YmFjay5yYXRlID0gcmF0ZTsKPiArCj4g KwlhbHNhX2NvbmZpZ3VyZV9vdXRwdXQoYWxzYSwgZm9ybWF0LCBjaGFubmVscywgcmF0ZSk7Cj4g Kwo+ICsJc3RhdGUtPnN0cmVhbSA9IGNoYW1lbGl1bV9zdHJlYW1faW5pdCgpOwo+ICsJaWd0X2Fz c2VydChzdGF0ZS0+c3RyZWFtKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgYXVkaW9fc3RhdGVf ZmluaShzdHJ1Y3QgYXVkaW9fc3RhdGUgKnN0YXRlKQo+ICt7Cj4gKwljaGFtZWxpdW1fc3RyZWFt X2RlaW5pdChzdGF0ZS0+c3RyZWFtKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgKnJ1bl9hdWRp b190aHJlYWQodm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0IGFsc2EgKmFsc2EgPSBkYXRhOwo+ ICsKPiArCWFsc2FfcnVuKGFsc2EsIC0xKTsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBhdWRpb19zdGF0ZV9zdGFydChzdHJ1Y3QgYXVkaW9fc3RhdGUgKnN0YXRlKQo+ ICt7Cj4gKwlpbnQgcmV0Owo+ICsJYm9vbCBvazsKPiArCXNpemVfdCBpLCBqOwo+ICsJZW51bSBj aGFtZWxpdW1fc3RyZWFtX3JlYWx0aW1lX21vZGUgc3RyZWFtX21vZGU7Cj4gKwljaGFyIGR1bXBf c3VmZml4WzY0XTsKPiArCj4gKwlpZ3RfZGVidWcoIlN0YXJ0aW5nIHRlc3Qgd2l0aCBwbGF5YmFj ayBmb3JtYXQgJXMsIHNhbXBsaW5nIHJhdGUgJWQgSHogIgo+ICsJCSAgImFuZCAlZCBjaGFubmVs c1xuIiwKPiArCQkgIHNuZF9wY21fZm9ybWF0X25hbWUoc3RhdGUtPnBsYXliYWNrLmZvcm1hdCks Cj4gKwkJICBzdGF0ZS0+cGxheWJhY2sucmF0ZSwgc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxzKTsK PiArCj4gKwljaGFtZWxpdW1fc3RhcnRfY2FwdHVyaW5nX2F1ZGlvKHN0YXRlLT5jaGFtZWxpdW0s IHN0YXRlLT5wb3J0LCBmYWxzZSk7Cj4gKwo+ICsJc3RyZWFtX21vZGUgPSBDSEFNRUxJVU1fU1RS RUFNX1JFQUxUSU1FX1NUT1BfV0hFTl9PVkVSRkxPVzsKPiArCW9rID0gY2hhbWVsaXVtX3N0cmVh bV9kdW1wX3JlYWx0aW1lX2F1ZGlvKHN0YXRlLT5zdHJlYW0sIHN0cmVhbV9tb2RlKTsKPiArCWln dF9hc3NlcnQob2spOwo+ICsKPiArCS8qIFN0YXJ0IHBsYXlpbmcgYXVkaW8gKi8KPiArCXN0YXRl LT5ydW4gPSB0cnVlOwo+ICsJcmV0ID0gcHRocmVhZF9jcmVhdGUoJnN0YXRlLT50aHJlYWQsIE5V TEwsCj4gKwkJCSAgICAgcnVuX2F1ZGlvX3RocmVhZCwgc3RhdGUtPmFsc2EpOwo+ICsJaWd0X2Fz c2VydChyZXQgPT0gMCk7Cj4gKwo+ICsJLyogVGhlIENoYW1lbGl1bSBkZXZpY2Ugb25seSBzdXBw b3J0cyB0aGlzIFBDTSBmb3JtYXQuICovCj4gKwlzdGF0ZS0+Y2FwdHVyZS5mb3JtYXQgPSBTTkRf UENNX0ZPUk1BVF9TMzJfTEU7Cj4gKwo+ICsJLyogT25seSBhZnRlciB3ZSd2ZSBzdGFydGVkIHBs YXlpbmcgYXVkaW8sIHdlIGNhbiByZXRyaWV2ZSB0aGUgY2FwdHVyZQo+ICsJICogZm9ybWF0IHVz ZWQgYnkgdGhlIENoYW1lbGl1bSBkZXZpY2UuICovCj4gKwljaGFtZWxpdW1fZ2V0X2F1ZGlvX2Zv cm1hdChzdGF0ZS0+Y2hhbWVsaXVtLCBzdGF0ZS0+cG9ydCwKPiArCQkJCSAgICZzdGF0ZS0+Y2Fw dHVyZS5yYXRlLAo+ICsJCQkJICAgJnN0YXRlLT5jYXB0dXJlLmNoYW5uZWxzKTsKCklzIHRoaXMg YSBibG9ja2luZyBjYWxsPyBJZiBub3QsIHdlIGhhdmUgYSByYWNlIGNvbmRpdGlvbiBoZXJlLi4u Cgo+ICsJaWYgKHN0YXRlLT5jYXB0dXJlLnJhdGUgPT0gMCkgewo+ICsJCWlndF9kZWJ1ZygiQXVk aW8gcmVjZWl2ZXIgZG9lc24ndCBpbmRpY2F0ZSB0aGUgY2FwdHVyZSAiCj4gKwkJCSAic2FtcGxp bmcgcmF0ZSwgYXNzdW1pbmcgaXQncyAlZCBIelxuIiwKPiArCQkJIHN0YXRlLT5wbGF5YmFjay5y YXRlKTsKPiArCQlzdGF0ZS0+Y2FwdHVyZS5yYXRlID0gc3RhdGUtPnBsYXliYWNrLnJhdGU7Cj4g Kwl9Cj4gKwo+ICsJY2hhbWVsaXVtX2dldF9hdWRpb19jaGFubmVsX21hcHBpbmcoc3RhdGUtPmNo YW1lbGl1bSwgc3RhdGUtPnBvcnQsCj4gKwkJCQkJICAgIHN0YXRlLT5jaGFubmVsX21hcHBpbmcp Owo+ICsJLyogTWFrZSBzdXJlIHdlIGNhbiBjYXB0dXJlIGFsbCBjaGFubmVscyB3ZSBzZW5kLiAq Lwo+ICsJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5wbGF5YmFjay5jaGFubmVsczsgaSsrKSB7Cj4g KwkJb2sgPSBmYWxzZTsKPiArCQlmb3IgKGogPSAwOyBqIDwgc3RhdGUtPmNhcHR1cmUuY2hhbm5l bHM7IGorKykgewo+ICsJCQlpZiAoc3RhdGUtPmNoYW5uZWxfbWFwcGluZ1tqXSA9PSBpKSB7Cj4g KwkJCQlvayA9IHRydWU7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCX0KPiArCQlpZ3RfYXNz ZXJ0KG9rKTsKPiArCX0KCk5pY2UgY2hlY2shCgo+ICsKPiArCWlmIChpZ3RfZnJhbWVfZHVtcF9p c19lbmFibGVkKCkpIHsKCk1heWJlIHlvdSBzaG91bGQgcmVuYW1lIHRoaXMgZnVuY3Rpb24sIG5v dyB0aGF0IGl0IGlzIGFsc28gdXNlZCB0byBkdW1wCnNvdW5kLiBIb3cgYWJvdXQgaWd0X3Jlc291 cmNlX2R1bXBpbmdfaXNfZW5hYmxlZCgpPyBUaGlzIGRvZXMgbm90IGhhdmUKdG8gaGFwcGVuIGlu IHRoaXMgcGF0Y2ggdGhvdWdoLgoKVGhpcyBpcyBhIGdvb2QgcGF0Y2g6ClJldmlld2VkLWJ5OiBN YXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRlbC5jb20+CgpNYXJ0aW4KCj4gKwkJ c25wcmludGYoZHVtcF9zdWZmaXgsIHNpemVvZihkdW1wX3N1ZmZpeCksCj4gKwkJCSAiY2FwdHVy ZS0lcy0lZGNoLSVkSHoiLAo+ICsJCQkgc25kX3BjbV9mb3JtYXRfbmFtZShzdGF0ZS0+cGxheWJh Y2suZm9ybWF0KSwKPiArCQkJIHN0YXRlLT5wbGF5YmFjay5jaGFubmVscywgc3RhdGUtPnBsYXli YWNrLnJhdGUpOwo+ICsKPiArCQlzdGF0ZS0+ZHVtcF9mZCA9IGF1ZGlvX2NyZWF0ZV93YXZfZmls ZV9zMzJfbGUoZHVtcF9zdWZmaXgsCj4gKwkJCQkJCQkgICAgICBzdGF0ZS0+Y2FwdHVyZS5yYXRl LAo+ICsJCQkJCQkJICAgICAgc3RhdGUtPmNhcHR1cmUuY2hhbm5lbHMsCj4gKwkJCQkJCQkgICAg ICAmc3RhdGUtPmR1bXBfcGF0aCk7Cj4gKwkJaWd0X2Fzc2VydChzdGF0ZS0+ZHVtcF9mZCA+PSAw KTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIHZvaWQgYXVkaW9fc3RhdGVfc3RvcChzdHJ1Y3Qg YXVkaW9fc3RhdGUgKnN0YXRlLCBib29sIHN1Y2Nlc3MpCj4gK3sKPiArCWJvb2wgb2s7Cj4gKwlp bnQgcmV0Owo+ICsJc3RydWN0IGNoYW1lbGl1bV9hdWRpb19maWxlICphdWRpb19maWxlOwo+ICsK PiArCWlndF9kZWJ1ZygiU3RvcHBpbmcgYXVkaW8gcGxheWJhY2tcbiIpOwo+ICsJc3RhdGUtPnJ1 biA9IGZhbHNlOwo+ICsJcmV0ID0gcHRocmVhZF9qb2luKHN0YXRlLT50aHJlYWQsIE5VTEwpOwo+ ICsJaWd0X2Fzc2VydChyZXQgPT0gMCk7Cj4gKwo+ICsJb2sgPSBjaGFtZWxpdW1fc3RyZWFtX3N0 b3BfcmVhbHRpbWVfYXVkaW8oc3RhdGUtPnN0cmVhbSk7Cj4gKwlpZ3RfYXNzZXJ0KG9rKTsKPiAr Cj4gKwlhdWRpb19maWxlID0gY2hhbWVsaXVtX3N0b3BfY2FwdHVyaW5nX2F1ZGlvKHN0YXRlLT5j aGFtZWxpdW0sCj4gKwkJCQkJCSAgICBzdGF0ZS0+cG9ydCk7Cj4gKwlpZiAoYXVkaW9fZmlsZSkg ewo+ICsJCWlndF9kZWJ1ZygiQXVkaW8gZmlsZSBzYXZlZCBvbiB0aGUgQ2hhbWVsaXVtIGluICVz XG4iLAo+ICsJCQkgIGF1ZGlvX2ZpbGUtPnBhdGgpOwo+ICsJCWNoYW1lbGl1bV9kZXN0cm95X2F1 ZGlvX2ZpbGUoYXVkaW9fZmlsZSk7Cj4gKwl9Cj4gKwo+ICsJaWYgKHN0YXRlLT5kdW1wX2ZkID49 IDApIHsKPiArCQljbG9zZShzdGF0ZS0+ZHVtcF9mZCk7Cj4gKwkJc3RhdGUtPmR1bXBfZmQgPSAt MTsKPiArCj4gKwkJaWYgKHN1Y2Nlc3MpIHsKPiArCQkJLyogVGVzdCBzdWNjZWVkZWQsIG5vIG5l ZWQgdG8ga2VlcCB0aGUgY2FwdHVyZWQgZGF0YSAqLwo+ICsJCQl1bmxpbmsoc3RhdGUtPmR1bXBf cGF0aCk7Cj4gKwkJfSBlbHNlCj4gKwkJCWlndF9kZWJ1ZygiU2F2ZWQgY2FwdHVyZWQgYXVkaW8g ZGF0YSB0byAlc1xuIiwKPiArCQkJCSAgc3RhdGUtPmR1bXBfcGF0aCk7Cj4gKwkJZnJlZShzdGF0 ZS0+ZHVtcF9wYXRoKTsKPiArCQlzdGF0ZS0+ZHVtcF9wYXRoID0gTlVMTDsKPiArCX0KPiArCj4g KwlpZ3RfZGVidWcoIkF1ZGlvIHRlc3QgcmVzdWx0IGZvciBmb3JtYXQgJXMsIHNhbXBsaW5nIHJh dGUgJWQgSHogYW5kICIKPiArCQkgICIlZCBjaGFubmVsczogJXNcbiIsCj4gKwkJICBzbmRfcGNt X2Zvcm1hdF9uYW1lKHN0YXRlLT5wbGF5YmFjay5mb3JtYXQpLAo+ICsJCSAgc3RhdGUtPnBsYXli YWNrLnJhdGUsIHN0YXRlLT5wbGF5YmFjay5jaGFubmVscywKPiArCQkgIHN1Y2Nlc3MgPyAiQUxM IEdSRUVOIiA6ICJGQUlMRUQiKTsKPiArfQo+ICsKPiAgc3RhdGljIGludAo+ICBhdWRpb19vdXRw dXRfY2FsbGJhY2sodm9pZCAqZGF0YSwgdm9pZCAqYnVmZmVyLCBpbnQgc2FtcGxlcykKPiAgewo+ ICAJc3RydWN0IGF1ZGlvX3N0YXRlICpzdGF0ZSA9IGRhdGE7Cj4gIAo+IC0Jc3dpdGNoIChzdGF0 ZS0+Zm9ybWF0KSB7Cj4gKwlzd2l0Y2ggKHN0YXRlLT5wbGF5YmFjay5mb3JtYXQpIHsKPiAgCWNh c2UgU05EX1BDTV9GT1JNQVRfUzE2X0xFOgo+ICAJCWF1ZGlvX3NpZ25hbF9maWxsX3MxNl9sZShz dGF0ZS0+c2lnbmFsLCBidWZmZXIsIHNhbXBsZXMpOwo+ICAJCWJyZWFrOwo+IEBAIC04MzksNTUg KzEwMDEsMTkgQEAgYXVkaW9fb3V0cHV0X2NhbGxiYWNrKHZvaWQgKmRhdGEsIHZvaWQgKmJ1ZmZl ciwgaW50IHNhbXBsZXMpCj4gIAlyZXR1cm4gc3RhdGUtPnJ1biA/IDAgOiAtMTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgKgo+IC1ydW5fYXVkaW9fdGhyZWFkKHZvaWQgKmRhdGEpCj4gK3N0YXRp YyBib29sIGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhzdHJ1Y3QgYXVkaW9fc3RhdGUgKnN0YXRlKQo+ ICB7Cj4gLQlzdHJ1Y3QgYWxzYSAqYWxzYSA9IGRhdGE7Cj4gLQo+IC0JYWxzYV9ydW4oYWxzYSwg LTEpOwo+IC0JcmV0dXJuIE5VTEw7Cj4gLX0KPiAtCj4gLXN0YXRpYyBib29sCj4gLWRvX3Rlc3Rf ZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9ydCwK PiAtCQkgICAgICBzdHJ1Y3QgYWxzYSAqYWxzYSwgc25kX3BjbV9mb3JtYXRfdCBwbGF5YmFja19m b3JtYXQsCj4gLQkJICAgICAgaW50IHBsYXliYWNrX2NoYW5uZWxzLCBpbnQgcGxheWJhY2tfcmF0 ZSkKPiAtewo+IC0JaW50IHJldCwgY2FwdHVyZV9yYXRlLCBjYXB0dXJlX2NoYW5uZWxzLCBtc2Vj LCBmcmVxLCBzdGVwOwo+IC0Jc3RydWN0IGNoYW1lbGl1bV9hdWRpb19maWxlICphdWRpb19maWxl Owo+IC0Jc3RydWN0IGNoYW1lbGl1bV9zdHJlYW0gKnN0cmVhbTsKPiAtCWVudW0gY2hhbWVsaXVt X3N0cmVhbV9yZWFsdGltZV9tb2RlIHN0cmVhbV9tb2RlOwo+IC0Jc3RydWN0IGF1ZGlvX3NpZ25h bCAqc2lnbmFsOwo+ICsJaW50IG1zZWMsIGZyZXEsIHN0ZXA7Cj4gIAlpbnQzMl90ICpyZWN2LCAq YnVmOwo+ICAJZG91YmxlICpjaGFubmVsOwo+ICAJc2l6ZV90IGksIGosIHN0cmVhaywgcGFnZV9j b3VudDsKPiAgCXNpemVfdCByZWN2X2xlbiwgYnVmX2xlbiwgYnVmX2NhcCwgYnVmX3NpemUsIGNo YW5uZWxfbGVuOwo+ICAJYm9vbCBvaywgc3VjY2VzczsKPiAtCWNoYXIgZHVtcF9zdWZmaXhbNjRd Owo+IC0JY2hhciAqZHVtcF9wYXRoID0gTlVMTDsKPiAtCWludCBkdW1wX2ZkID0gLTE7Cj4gLQlw dGhyZWFkX3QgdGhyZWFkOwo+IC0Jc3RydWN0IGF1ZGlvX3N0YXRlIHN0YXRlID0ge307Cj4gLQlp bnQgY2hhbm5lbF9tYXBwaW5nWzhdLCBjYXB0dXJlX2NoYW47Cj4gLQo+IC0JaWd0X2RlYnVnKCJU ZXN0aW5nIHdpdGggcGxheWJhY2sgZm9ybWF0ICVzLCBzYW1wbGluZyByYXRlICVkIEh6IGFuZCAi Cj4gLQkJICAiJWQgY2hhbm5lbHNcbiIsCj4gLQkJICBzbmRfcGNtX2Zvcm1hdF9uYW1lKHBsYXli YWNrX2Zvcm1hdCksCj4gLQkJICBwbGF5YmFja19yYXRlLCBwbGF5YmFja19jaGFubmVscyk7Cj4g LQlhbHNhX2NvbmZpZ3VyZV9vdXRwdXQoYWxzYSwgcGxheWJhY2tfZm9ybWF0LAo+IC0JCQkgICAg ICBwbGF5YmFja19jaGFubmVscywgcGxheWJhY2tfcmF0ZSk7Cj4gKwlpbnQgY2FwdHVyZV9jaGFu Owo+ICAKPiAtCWNoYW1lbGl1bV9zdGFydF9jYXB0dXJpbmdfYXVkaW8oZGF0YS0+Y2hhbWVsaXVt LCBwb3J0LCBmYWxzZSk7Cj4gLQo+IC0Jc3RyZWFtID0gY2hhbWVsaXVtX3N0cmVhbV9pbml0KCk7 Cj4gLQlpZ3RfYXNzZXJ0KHN0cmVhbSk7Cj4gLQo+IC0Jc3RyZWFtX21vZGUgPSBDSEFNRUxJVU1f U1RSRUFNX1JFQUxUSU1FX1NUT1BfV0hFTl9PVkVSRkxPVzsKPiAtCW9rID0gY2hhbWVsaXVtX3N0 cmVhbV9kdW1wX3JlYWx0aW1lX2F1ZGlvKHN0cmVhbSwgc3RyZWFtX21vZGUpOwo+IC0JaWd0X2Fz c2VydChvayk7Cj4gLQo+IC0Jc2lnbmFsID0gYXVkaW9fc2lnbmFsX2luaXQocGxheWJhY2tfY2hh bm5lbHMsIHBsYXliYWNrX3JhdGUpOwo+IC0JaWd0X2Fzc2VydChzaWduYWwpOwo+ICsJc3RhdGUt PnNpZ25hbCA9IGF1ZGlvX3NpZ25hbF9pbml0KHN0YXRlLT5wbGF5YmFjay5jaGFubmVscywKPiAr CQkJCQkgIHN0YXRlLT5wbGF5YmFjay5yYXRlKTsKPiArCWlndF9hc3NlcnQoc3RhdGUtPnNpZ25h bCk7Cj4gIAo+ICAJLyogV2UnbGwgY2hvb3NlIGRpZmZlcmVudCBmcmVxdWVuY2llcyBwZXIgY2hh bm5lbCB0byBtYWtlIHN1cmUgdGhleSBhcmUKPiAgCSAqIGluZGVwZW5kZW50IGZyb20gZWFjaCBv dGhlci4gVG8gZG8gc28sIHdlJ2xsIGFkZCBhIGRpZmZlcmVudCBvZmZzZXQKPiBAQCAtOTAwLDYy ICsxMDI2LDIxIEBAIGRvX3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBj aGFtZWxpdW1fcG9ydCAqcG9ydCwKPiAgCSAqIGxhdGVyIG9uLiBXZSBjYW5ub3QgcmV0cmlldmUg dGhlIGNhcHR1cmUgcmF0ZSBiZWZvcmUgc3RhcnRpbmcKPiAgCSAqIHBsYXlpbmcgYXVkaW8sIHNv IHdlIGRvbid0IHJlYWxseSBoYXZlIHRoZSBjaG9pY2UuCj4gIAkgKi8KPiAtCXN0ZXAgPSAyICog cGxheWJhY2tfcmF0ZSAvIENBUFRVUkVfU0FNUExFUzsKPiArCXN0ZXAgPSAyICogc3RhdGUtPnBs YXliYWNrLnJhdGUgLyBDQVBUVVJFX1NBTVBMRVM7Cj4gIAlmb3IgKGkgPSAwOyBpIDwgdGVzdF9m cmVxdWVuY2llc19jb3VudDsgaSsrKSB7Cj4gLQkJZm9yIChqID0gMDsgaiA8IHBsYXliYWNrX2No YW5uZWxzOyBqKyspIHsKPiArCQlmb3IgKGogPSAwOyBqIDwgc3RhdGUtPnBsYXliYWNrLmNoYW5u ZWxzOyBqKyspIHsKPiAgCQkJZnJlcSA9IHRlc3RfZnJlcXVlbmNpZXNbaV0gKyBqICogc3RlcDsK PiAtCQkJYXVkaW9fc2lnbmFsX2FkZF9mcmVxdWVuY3koc2lnbmFsLCBmcmVxLCBqKTsKPiArCQkJ YXVkaW9fc2lnbmFsX2FkZF9mcmVxdWVuY3koc3RhdGUtPnNpZ25hbCwgZnJlcSwgaik7Cj4gIAkJ fQo+ICAJfQo+IC0JYXVkaW9fc2lnbmFsX3N5bnRoZXNpemUoc2lnbmFsKTsKPiArCWF1ZGlvX3Np Z25hbF9zeW50aGVzaXplKHN0YXRlLT5zaWduYWwpOwo+ICAKPiAtCXN0YXRlLnNpZ25hbCA9IHNp Z25hbDsKPiAtCXN0YXRlLmZvcm1hdCA9IHBsYXliYWNrX2Zvcm1hdDsKPiAtCXN0YXRlLnJ1biA9 IHRydWU7Cj4gLQlhbHNhX3JlZ2lzdGVyX291dHB1dF9jYWxsYmFjayhhbHNhLCBhdWRpb19vdXRw dXRfY2FsbGJhY2ssICZzdGF0ZSwKPiArCWFsc2FfcmVnaXN0ZXJfb3V0cHV0X2NhbGxiYWNrKHN0 YXRlLT5hbHNhLCBhdWRpb19vdXRwdXRfY2FsbGJhY2ssIHN0YXRlLAo+ICAJCQkJICAgICAgUExB WUJBQ0tfU0FNUExFUyk7Cj4gIAo+IC0JLyogU3RhcnQgcGxheWluZyBhdWRpbyAqLwo+IC0JcmV0 ID0gcHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgcnVuX2F1ZGlvX3RocmVhZCwgYWxzYSk7 Cj4gLQlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsKPiArCWF1ZGlvX3N0YXRlX3N0YXJ0KHN0YXRlKTsK PiAgCj4gLQkvKiBPbmx5IGFmdGVyIHdlJ3ZlIHN0YXJ0ZWQgcGxheWluZyBhdWRpbywgd2UgY2Fu IHJldHJpZXZlIHRoZSBjYXB0dXJlCj4gLQkgKiBmb3JtYXQgdXNlZCBieSB0aGUgQ2hhbWVsaXVt IGRldmljZS4gKi8KPiAtCWNoYW1lbGl1bV9nZXRfYXVkaW9fZm9ybWF0KGRhdGEtPmNoYW1lbGl1 bSwgcG9ydCwKPiAtCQkJCSAgICZjYXB0dXJlX3JhdGUsICZjYXB0dXJlX2NoYW5uZWxzKTsKPiAt CWlmIChjYXB0dXJlX3JhdGUgPT0gMCkgewo+IC0JCWlndF9kZWJ1ZygiQXVkaW8gcmVjZWl2ZXIg ZG9lc24ndCBpbmRpY2F0ZSB0aGUgY2FwdHVyZSAiCj4gLQkJCSAic2FtcGxpbmcgcmF0ZSwgYXNz dW1pbmcgaXQncyAlZCBIelxuIiwgcGxheWJhY2tfcmF0ZSk7Cj4gLQkJY2FwdHVyZV9yYXRlID0g cGxheWJhY2tfcmF0ZTsKPiAtCX0gZWxzZQo+IC0JCWlndF9hc3NlcnQoY2FwdHVyZV9yYXRlID09 IHBsYXliYWNrX3JhdGUpOwo+IC0KPiAtCWNoYW1lbGl1bV9nZXRfYXVkaW9fY2hhbm5lbF9tYXBw aW5nKGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwKPiAtCQkJCQkgICAgY2hhbm5lbF9tYXBwaW5nKTsK PiAtCS8qIE1ha2Ugc3VyZSB3ZSBjYW4gY2FwdHVyZSBhbGwgY2hhbm5lbHMgd2Ugc2VuZC4gKi8K PiAtCWZvciAoaSA9IDA7IGkgPCBwbGF5YmFja19jaGFubmVsczsgaSsrKSB7Cj4gLQkJb2sgPSBm YWxzZTsKPiAtCQlmb3IgKGogPSAwOyBqIDwgY2FwdHVyZV9jaGFubmVsczsgaisrKSB7Cj4gLQkJ CWlmIChjaGFubmVsX21hcHBpbmdbal0gPT0gaSkgewo+IC0JCQkJb2sgPSB0cnVlOwo+IC0JCQkJ YnJlYWs7Cj4gLQkJCX0KPiAtCQl9Cj4gLQkJaWd0X2Fzc2VydChvayk7Cj4gLQl9Cj4gLQo+IC0J aWYgKGlndF9mcmFtZV9kdW1wX2lzX2VuYWJsZWQoKSkgewo+IC0JCXNucHJpbnRmKGR1bXBfc3Vm Zml4LCBzaXplb2YoZHVtcF9zdWZmaXgpLAo+IC0JCQkgImNhcHR1cmUtJXMtJWRjaC0lZEh6IiwK PiAtCQkJIHNuZF9wY21fZm9ybWF0X25hbWUocGxheWJhY2tfZm9ybWF0KSwKPiAtCQkJIHBsYXli YWNrX2NoYW5uZWxzLCBwbGF5YmFja19yYXRlKTsKPiAtCj4gLQkJZHVtcF9mZCA9IGF1ZGlvX2Ny ZWF0ZV93YXZfZmlsZV9zMzJfbGUoZHVtcF9zdWZmaXgsCj4gLQkJCQkJCSAgICAgICBjYXB0dXJl X3JhdGUsCj4gLQkJCQkJCSAgICAgICBjYXB0dXJlX2NoYW5uZWxzLAo+IC0JCQkJCQkgICAgICAg JmR1bXBfcGF0aCk7Cj4gLQkJaWd0X2Fzc2VydChkdW1wX2ZkID49IDApOwo+IC0JfQo+ICsJaWd0 X2Fzc2VydChzdGF0ZS0+Y2FwdHVyZS5yYXRlID09IHN0YXRlLT5wbGF5YmFjay5yYXRlKTsKPiAg Cj4gIAkvKiBOZWVkcyB0byBiZSBhIG11bHRpcGxlIG9mIDEyOCwgYmVjYXVzZSB0aGF0J3MgdGhl IG51bWJlciBvZiBzYW1wbGVzCj4gIAkgKiB3ZSBnZXQgcGVyIGNoYW5uZWwgZWFjaCB0aW1lIHdl IHJlY2VpdmUgYW4gYXVkaW8gcGFnZSBmcm9tIHRoZQo+IEBAIC05NzAsNyArMTA1NSw3IEBAIGRv X3Rlc3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAq cG9ydCwKPiAgCWNoYW5uZWxfbGVuID0gQ0FQVFVSRV9TQU1QTEVTOwo+ICAJY2hhbm5lbCA9IG1h bGxvYyhzaXplb2YoZG91YmxlKSAqIGNoYW5uZWxfbGVuKTsKPiAgCj4gLQlidWZfY2FwID0gY2Fw dHVyZV9jaGFubmVscyAqIGNoYW5uZWxfbGVuOwo+ICsJYnVmX2NhcCA9IHN0YXRlLT5jYXB0dXJl LmNoYW5uZWxzICogY2hhbm5lbF9sZW47Cj4gIAlidWYgPSBtYWxsb2Moc2l6ZW9mKGludDMyX3Qp ICogYnVmX2NhcCk7Cj4gIAlidWZfbGVuID0gMDsKPiAgCj4gQEAgLTk4Miw3ICsxMDY3LDcgQEAg ZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwgc3RydWN0IGNoYW1lbGl1bV9wb3J0 ICpwb3J0LAo+ICAJbXNlYyA9IDA7Cj4gIAlpID0gMDsKPiAgCXdoaWxlICghc3VjY2VzcyAmJiBt c2VjIDwgQVVESU9fVElNRU9VVCkgewo+IC0JCW9rID0gY2hhbWVsaXVtX3N0cmVhbV9yZWNlaXZl X3JlYWx0aW1lX2F1ZGlvKHN0cmVhbSwKPiArCQlvayA9IGNoYW1lbGl1bV9zdHJlYW1fcmVjZWl2 ZV9yZWFsdGltZV9hdWRpbyhzdGF0ZS0+c3RyZWFtLAo+ICAJCQkJCQkJICAgICAmcGFnZV9jb3Vu dCwKPiAgCQkJCQkJCSAgICAgJnJlY3YsICZyZWN2X2xlbik7Cj4gIAkJaWd0X2Fzc2VydChvayk7 Cj4gQEAgLTk5NCwyNiArMTA3OSwyNyBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpk YXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCj4gIAkJCWNvbnRpbnVlOwo+ICAJCWln dF9hc3NlcnQoYnVmX2xlbiA9PSBidWZfY2FwKTsKPiAgCj4gLQkJaWYgKGR1bXBfZmQgPj0gMCkg ewo+ICsJCWlmIChzdGF0ZS0+ZHVtcF9mZCA+PSAwKSB7Cj4gIAkJCWJ1Zl9zaXplID0gYnVmX2xl biAqIHNpemVvZihpbnQzMl90KTsKPiAtCQkJaWd0X2Fzc2VydCh3cml0ZShkdW1wX2ZkLCBidWYs IGJ1Zl9zaXplKSA9PSBidWZfc2l6ZSk7Cj4gKwkJCWlndF9hc3NlcnQod3JpdGUoc3RhdGUtPmR1 bXBfZmQsIGJ1ZiwgYnVmX3NpemUpID09IGJ1Zl9zaXplKTsKPiAgCQl9Cj4gIAo+IC0JCW1zZWMg PSBpICogY2hhbm5lbF9sZW4gLyAoZG91YmxlKSBjYXB0dXJlX3JhdGUgKiAxMDAwOwo+ICsJCW1z ZWMgPSBpICogY2hhbm5lbF9sZW4gLyAoZG91YmxlKSBzdGF0ZS0+Y2FwdHVyZS5yYXRlICogMTAw MDsKPiAgCQlpZ3RfZGVidWcoIkRldGVjdGluZyBhdWRpbyBzaWduYWwsIHQ9JWQgbXNlY1xuIiwg bXNlYyk7Cj4gIAo+IC0JCWZvciAoaiA9IDA7IGogPCBwbGF5YmFja19jaGFubmVsczsgaisrKSB7 Cj4gLQkJCWNhcHR1cmVfY2hhbiA9IGNoYW5uZWxfbWFwcGluZ1tqXTsKPiArCQlmb3IgKGogPSAw OyBqIDwgc3RhdGUtPnBsYXliYWNrLmNoYW5uZWxzOyBqKyspIHsKPiArCQkJY2FwdHVyZV9jaGFu ID0gc3RhdGUtPmNoYW5uZWxfbWFwcGluZ1tqXTsKPiAgCQkJaWd0X2Fzc2VydChjYXB0dXJlX2No YW4gPj0gMCk7Cj4gIAkJCWlndF9kZWJ1ZygiUHJvY2Vzc2luZyBjaGFubmVsICV6dSAoY2FwdHVy ZWQgYXMgIgo+ICAJCQkJICAiY2hhbm5lbCAlZClcbiIsIGosIGNhcHR1cmVfY2hhbik7Cj4gIAo+ ICAJCQlhdWRpb19leHRyYWN0X2NoYW5uZWxfczMyX2xlKGNoYW5uZWwsIGNoYW5uZWxfbGVuLAo+ ICAJCQkJCQkgICAgIGJ1ZiwgYnVmX2xlbiwKPiAtCQkJCQkJICAgICBjYXB0dXJlX2NoYW5uZWxz LAo+ICsJCQkJCQkgICAgIHN0YXRlLT5jYXB0dXJlLmNoYW5uZWxzLAo+ICAJCQkJCQkgICAgIGNh cHR1cmVfY2hhbik7Cj4gIAo+IC0JCQlpZiAoYXVkaW9fc2lnbmFsX2RldGVjdChzaWduYWwsIGNh cHR1cmVfcmF0ZSwgaiwKPiArCQkJaWYgKGF1ZGlvX3NpZ25hbF9kZXRlY3Qoc3RhdGUtPnNpZ25h bCwKPiArCQkJCQkJc3RhdGUtPmNhcHR1cmUucmF0ZSwgaiwKPiAgCQkJCQkJY2hhbm5lbCwgY2hh bm5lbF9sZW4pKQo+ICAJCQkJc3RyZWFrKys7Cj4gIAkJCWVsc2UKPiBAQCAtMTAyMyw0OSArMTEw OSwxNSBAQCBkb190ZXN0X2Rpc3BsYXlfYXVkaW8oZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVs aXVtX3BvcnQgKnBvcnQsCj4gIAkJYnVmX2xlbiA9IDA7Cj4gIAkJaSsrOwo+ICAKPiAtCQlzdWNj ZXNzID0gc3RyZWFrID09IE1JTl9TVFJFQUsgKiBwbGF5YmFja19jaGFubmVsczsKPiArCQlzdWNj ZXNzID0gc3RyZWFrID09IE1JTl9TVFJFQUsgKiBzdGF0ZS0+cGxheWJhY2suY2hhbm5lbHM7Cj4g IAl9Cj4gIAo+IC0JaWd0X2RlYnVnKCJTdG9wcGluZyBhdWRpbyBwbGF5YmFja1xuIik7Cj4gLQlz dGF0ZS5ydW4gPSBmYWxzZTsKPiAtCXJldCA9IHB0aHJlYWRfam9pbih0aHJlYWQsIE5VTEwpOwo+ IC0JaWd0X2Fzc2VydChyZXQgPT0gMCk7Cj4gLQo+IC0JYWxzYV9jbG9zZV9vdXRwdXQoYWxzYSk7 Cj4gLQo+IC0JaWd0X2RlYnVnKCJBdWRpbyB0ZXN0IHJlc3VsdCBmb3IgZm9ybWF0ICVzLCBzYW1w bGluZyByYXRlICVkIEh6IGFuZCAiCj4gLQkJICAiJWQgY2hhbm5lbHM6ICVzXG4iLAo+IC0JCSAg c25kX3BjbV9mb3JtYXRfbmFtZShwbGF5YmFja19mb3JtYXQpLAo+IC0JCSAgcGxheWJhY2tfcmF0 ZSwgcGxheWJhY2tfY2hhbm5lbHMsCj4gLQkJICBzdWNjZXNzID8gIkFMTCBHUkVFTiIgOiAiRkFJ TEVEIik7Cj4gLQo+IC0JaWYgKGR1bXBfZmQgPj0gMCkgewo+IC0JCWNsb3NlKGR1bXBfZmQpOwo+ IC0JCWlmIChzdWNjZXNzKSB7Cj4gLQkJCS8qIFRlc3Qgc3VjY2VlZGVkLCBubyBuZWVkIHRvIGtl ZXAgdGhlIGNhcHR1cmVkIGRhdGEgKi8KPiAtCQkJdW5saW5rKGR1bXBfcGF0aCk7Cj4gLQkJfSBl bHNlCj4gLQkJCWlndF9kZWJ1ZygiU2F2ZWQgY2FwdHVyZWQgYXVkaW8gZGF0YSB0byAlc1xuIiwg ZHVtcF9wYXRoKTsKPiAtCQlmcmVlKGR1bXBfcGF0aCk7Cj4gLQl9Cj4gKwlhdWRpb19zdGF0ZV9z dG9wKHN0YXRlLCBzdWNjZXNzKTsKPiAgCj4gIAlmcmVlKHJlY3YpOwo+ICAJZnJlZShidWYpOwo+ ICAJZnJlZShjaGFubmVsKTsKPiAtCj4gLQlvayA9IGNoYW1lbGl1bV9zdHJlYW1fc3RvcF9yZWFs dGltZV9hdWRpbyhzdHJlYW0pOwo+IC0JaWd0X2Fzc2VydChvayk7Cj4gLQo+IC0JYXVkaW9fZmls ZSA9IGNoYW1lbGl1bV9zdG9wX2NhcHR1cmluZ19hdWRpbyhkYXRhLT5jaGFtZWxpdW0sCj4gLQkJ CQkJCSAgICBwb3J0KTsKPiAtCWlmIChhdWRpb19maWxlKSB7Cj4gLQkJaWd0X2RlYnVnKCJBdWRp byBmaWxlIHNhdmVkIG9uIHRoZSBDaGFtZWxpdW0gaW4gJXNcbiIsCj4gLQkJCSAgYXVkaW9fZmls ZS0+cGF0aCk7Cj4gLQkJY2hhbWVsaXVtX2Rlc3Ryb3lfYXVkaW9fZmlsZShhdWRpb19maWxlKTsK PiAtCX0KPiAtCj4gLQlhdWRpb19zaWduYWxfZmluaShzaWduYWwpOwo+IC0JY2hhbWVsaXVtX3N0 cmVhbV9kZWluaXQoc3RyZWFtKTsKPiArCWF1ZGlvX3NpZ25hbF9maW5pKHN0YXRlLT5zaWduYWwp Owo+ICAKPiAgCXJldHVybiBzdWNjZXNzOwo+ICB9Cj4gQEAgLTExMTIsNiArMTE2NCw3IEBAIHRl c3RfZGlzcGxheV9hdWRpbyhkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydCAqcG9y dCwKPiAgCWludCBmYl9pZCwgaSwgajsKPiAgCWludCBjaGFubmVscywgc2FtcGxpbmdfcmF0ZTsK PiAgCXNuZF9wY21fZm9ybWF0X3QgZm9ybWF0Owo+ICsJc3RydWN0IGF1ZGlvX3N0YXRlIHN0YXRl Owo+ICAKPiAgCWlndF9yZXF1aXJlKGFsc2FfaGFzX2V4Y2x1c2l2ZV9hY2Nlc3MoKSk7Cj4gIAo+ IEBAIC0xMTYxLDkgKzEyMTQsMTAgQEAgdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGFfdCAqZGF0YSwg c3RydWN0IGNoYW1lbGl1bV9wb3J0ICpwb3J0LAo+ICAKPiAgCQkJcnVuID0gdHJ1ZTsKPiAgCj4g LQkJCXN1Y2Nlc3MgJj0gZG9fdGVzdF9kaXNwbGF5X2F1ZGlvKGRhdGEsIHBvcnQsIGFsc2EsCj4g LQkJCQkJCQkgZm9ybWF0LCBjaGFubmVscywKPiAtCQkJCQkJCSBzYW1wbGluZ19yYXRlKTsKPiAr CQkJYXVkaW9fc3RhdGVfaW5pdCgmc3RhdGUsIGRhdGEsIGFsc2EsIHBvcnQsCj4gKwkJCQkJIGZv cm1hdCwgY2hhbm5lbHMsIHNhbXBsaW5nX3JhdGUpOwo+ICsJCQlzdWNjZXNzICY9IGRvX3Rlc3Rf ZGlzcGxheV9hdWRpbygmc3RhdGUpOwo+ICsJCQlhdWRpb19zdGF0ZV9maW5pKCZzdGF0ZSk7Cj4g IAo+ICAJCQlhbHNhX2Nsb3NlX291dHB1dChhbHNhKTsKPiAgCQl9Cj4gCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==