From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [igt-dev] [PATCH i-g-t 24/25] gem_wsim: Discover engines Date: Fri, 17 May 2019 13:19:18 +0100 Message-ID: References: <20190517112526.6738-1-tvrtko.ursulin@linux.intel.com> <20190517112526.6738-25-tvrtko.ursulin@linux.intel.com> <20190517121034.GE2556@intel.intel> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190517121034.GE2556@intel.intel> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Andi Shyti Cc: igt-dev@lists.freedesktop.org, Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE3LzA1LzIwMTkgMTM6MTAsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gT24gRnJpLCBNYXkgMTcs IDIwMTkgYXQgMTI6MjU6MjVQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+IEZyb206 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+Cj4+IEluc3RlYWQg b2YgaGFyZGNvZGluZyB0aGUgVkNTIGJhbGFuY2luZyBlbmdpbmVzLCBkaXNjb3ZlciwgYm90aCB3 aXRoIHRoZQo+PiBuZXcgZW5naW5lcyBxdWVyeSwgb3Igd2l0aCB0aGUgbGVnYWN5IGdldF9wYXJh bSBpbiB0aGUgZmFsbGJhY2sgY2FzZSwgc28KPj4gY2xhc3MgYmFzZWQgYWRkcmVzc2luZyBhbHdh eXMgd29ya3MuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIGJlbmNobWFya3MvZ2VtX3dzaW0uYyB8IDE4MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPj4gICAxIGZpbGUgY2hh bmdlZCwgMTczIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQg YS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKPj4gaW5kZXgg ZDQzZTdjNzY3ODAxLi41MzlkZTI0M2Y2ZTggMTAwNjQ0Cj4+IC0tLSBhL2JlbmNobWFya3MvZ2Vt X3dzaW0uYwo+PiArKysgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKPj4gQEAgLTM2NSwzNCArMzY1 LDE5OCBAQCBzdGF0aWMgaW50IHN0cl90b19lbmdpbmUoY29uc3QgY2hhciAqc3RyKQo+PiAgIAly ZXR1cm4gLTE7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIGJvb2wgX19lbmdpbmVzX3F1ZXJpZWQ7 Cj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IF9fbnVtX2VuZ2luZXM7Cj4+ICtzdGF0aWMgc3RydWN0 IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlICpfX2VuZ2luZXM7Cj4+ICsKPj4gK3N0YXRpYyBp bnQKPj4gK19faTkxNV9xdWVyeShpbnQgaTkxNSwgc3RydWN0IGRybV9pOTE1X3F1ZXJ5ICpxKQo+ PiArewo+PiArCWlmIChpZ3RfaW9jdGwoaTkxNSwgRFJNX0lPQ1RMX0k5MTVfUVVFUlksIHEpKQo+ PiArCQlyZXR1cm4gLWVycm5vOwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMg aW50Cj4+ICtfX2k5MTVfcXVlcnlfaXRlbXMoaW50IGk5MTUsIHN0cnVjdCBkcm1faTkxNV9xdWVy eV9pdGVtICppdGVtcywgdWludDMyX3Qgbl9pdGVtcykKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnkgcSA9IHsKPj4gKwkJLm51bV9pdGVtcyA9IG5faXRlbXMsCj4+ICsJCS5pdGVtc19w dHIgPSB0b191c2VyX3BvaW50ZXIoaXRlbXMpLAo+PiArCX07Cj4+ICsJcmV0dXJuIF9faTkxNV9x dWVyeShpOTE1LCAmcSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkCj4+ICtpOTE1X3F1ZXJ5 X2l0ZW1zKGludCBpOTE1LCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSAqaXRlbXMsIHVpbnQz Ml90IG5faXRlbXMpCj4+ICt7Cj4+ICsJaWd0X2Fzc2VydF9lcShfX2k5MTVfcXVlcnlfaXRlbXMo aTkxNSwgaXRlbXMsIG5faXRlbXMpLCAwKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGJvb2wgaGFz X3F1ZXJ5KGludCBpOTE1KQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkxNV9xdWVyeSBxdWVyeSA9 IHt9Owo+PiArCj4+ICsJcmV0dXJuIF9faTkxNV9xdWVyeShpOTE1LCAmcXVlcnkpID09IDA7Cj4+ ICt9Cj4+ICsKPj4gK3N0YXRpYyBib29sIGhhc19lbmdpbmVfcXVlcnkoaW50IGk5MTUpCj4+ICt7 Cj4+ICsJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsKPj4gKwkJLnF1ZXJ5X2lk ID0gRFJNX0k5MTVfUVVFUllfRU5HSU5FX0lORk8sCj4+ICsJfTsKPj4gKwo+PiArCXJldHVybiBf X2k5MTVfcXVlcnlfaXRlbXMoaTkxNSwgJml0ZW0sIDEpID09IDAgJiYgaXRlbS5sZW5ndGggPiAw Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBxdWVyeV9lbmdpbmVzKHZvaWQpCj4+ICt7Cj4+ ICsJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplbmdpbmVzOwo+PiArCXVuc2ln bmVkIGludCBudW07Cj4+ICsKPj4gKwlpZiAoX19lbmdpbmVzX3F1ZXJpZWQpCj4+ICsJCXJldHVy bjsKPj4gKwo+PiArCV9fZW5naW5lc19xdWVyaWVkID0gdHJ1ZTsKPj4gKwo+PiArCWlmICghaGFz X3F1ZXJ5KGZkKSB8fCAhaGFzX2VuZ2luZV9xdWVyeShmZCkpIHsKPiAKPiBPbmUgcXVlc3Rpb24s IHN0aWxsLiBXaGF0IGlzIHRoZSByZWFsIHVzZSBvZiB0aGlzIGNoZWNrIGFuZAo+ICdoYXNfcXVl cnknIHRoYXQgaXMgdXNlZCBvbmx5IGhlcmUuCj4gCj4gSSBtZWFuLi4uIGhlcmUgeW91IHdhbnQg dG8gY2hlY2sgd2hldGhlciB0aGUgImlvY3RsIGlzIG5vdAo+IGltcGxlbWVudGVkIiBvciAiaW9j dGwgaXMgbm90IGltcGxlbWVudGVkIGFuZCBsZW5ndGggIGlzIDAiLgo+IAo+IFdvdWxkbid0IGlu IHRoaXMgY2FzZSBqdXN0ICchaGFzX2VuZ2luZV9xdWVyeSgpJyBiZSBlbm91Z2g/IG9yCj4gaGF2 ZSBJIG1pc3NlZCBhbnkgY2FzZT8KCllvdSBoYXZlbid0IG1pc3NlZCBhbnl0aGluZy4gSSBoYXZl IGJlZW4gcG9pbnRsZXNzbHkgdmVyYm9zZSBhbmQgYSBiaXQgCmxhenkgYnkgY29weS1wYXN0aW5n IGEgbG90LgoKaGFzX2VuZ2luZV9xdWVyeSBpcyBhIHN1cGVyc2V0IG9mIGhhc19xdWVyeSBmb3Ig dGhlIHB1cnBvc2Ugb2YgaW9jdGwgCmRldGVjdGlvbi4KCj4gCj4+ICsJCXVuc2lnbmVkIGludCBu dW1fYnNkID0gZ2VtX2hhc19ic2QoZmQpICsgZ2VtX2hhc19ic2QyKGZkKTsKPj4gKwkJdW5zaWdu ZWQgaW50IGkgPSAwOwo+PiArCj4+ICsJCWlndF9hc3NlcnQobnVtKTsKPj4gKwo+PiArCQludW0g PSAxICsgbnVtX2JzZDsKPiAKPiBkaWQgeW91IG1lYW4gdGhlIGFib3ZlIHR3byBsaW5lcyBzd2Fw cGVkPwoKTm8sIEkgd2FudCB0byBhdm9pZCBydW5uaW5nIG9uIHBsYXRmb3JtcyB3aXRoIG5vIHZj cyBlbmdpbmVzIHNpbmNlIG5vIApvbmUgZXZlciB0ZXN0ZWQgZ2VtX3dzaW0gdGhlcmUuCgo+PiAr Cj4+ICsJCWlmIChnZW1faGFzX2JsdChmZCkpCj4+ICsJCQludW0rKzsKPj4gKwo+PiArCQlpZiAo Z2VtX2hhc192ZWJveChmZCkpCj4+ICsJCQludW0rKzsKPj4gKwo+PiArCQllbmdpbmVzID0gY2Fs bG9jKG51bSwKPj4gKwkJCQkgc2l6ZW9mKHN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5j ZSkpOwo+PiArCQlpZ3RfYXNzZXJ0KGVuZ2luZXMpOwo+PiArCj4+ICsJCWVuZ2luZXNbaV0uZW5n aW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSOwo+PiArCQllbmdpbmVzW2ldLmVu Z2luZV9pbnN0YW5jZSA9IDA7Cj4+ICsJCWkrKzsKPj4gKwo+PiArCQlpZiAoZ2VtX2hhc19ibHQo ZmQpKSB7Cj4+ICsJCQllbmdpbmVzW2ldLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNT X0NPUFk7Cj4+ICsJCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5jZSA9IDA7Cj4+ICsJCQlpKys7 Cj4+ICsJCX0KPj4gKwo+PiArCQlpZiAoZ2VtX2hhc19ic2QoZmQpKSB7Cj4+ICsJCQllbmdpbmVz W2ldLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPOwo+PiArCQkJZW5naW5l c1tpXS5lbmdpbmVfaW5zdGFuY2UgPSAwOwo+PiArCQkJaSsrOwo+PiArCQl9Cj4+ICsKPj4gKwkJ aWYgKGdlbV9oYXNfYnNkMihmZCkpIHsKPj4gKwkJCWVuZ2luZXNbaV0uZW5naW5lX2NsYXNzID0g STkxNV9FTkdJTkVfQ0xBU1NfVklERU87Cj4+ICsJCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5j ZSA9IDE7Cj4+ICsJCQlpKys7Cj4+ICsJCX0KPj4gKwo+PiArCQlpZiAoZ2VtX2hhc192ZWJveChm ZCkpIHsKPj4gKwkJCWVuZ2luZXNbaV0uZW5naW5lX2NsYXNzID0KPj4gKwkJCQlJOTE1X0VOR0lO RV9DTEFTU19WSURFT19FTkhBTkNFOwo+PiArCQkJZW5naW5lc1tpXS5lbmdpbmVfaW5zdGFuY2Ug PSAwOwo+PiArCQkJaSsrOwo+PiArCQl9Cj4gCj4gbW1oaGguLi4gaXNuJ3QgdGhpcyB0aGUgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTJbXT8gWWV0IGFub3RoZXIKPiB3YXkgZm9yIGhhdmluZyBlbmdp bmUgbGlzdC4uLiBpbiB0aGUgbG9uZyBydW4sIHVwZGF0aW5nIGhlcmUgKGFzCj4gd2VsbCkgd29u J3QgYmUgZWFzeSB0byByZW1lbWJlci4KCk5vdCBoZXJlLCBnZW1fd3NpbSB1c2VzIHNvbWUgb2Yg dGhlIElHVCBsaWJyYXJpZXMsIGJ1dCBzaG91bGQga2VlcCBpdCBhdCAKbWluaW11bS4gU28gSSB0 aGluayB3ZSBkb24ndCB3YW50IHRvIHB1bGwgaW4gdGhlIGVuZ2luZSBhcnJheSBldGMuCgpSZWdh cmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: References: <20190517112526.6738-1-tvrtko.ursulin@linux.intel.com> <20190517112526.6738-25-tvrtko.ursulin@linux.intel.com> <20190517121034.GE2556@intel.intel> From: Tvrtko Ursulin Message-ID: Date: Fri, 17 May 2019 13:19:18 +0100 MIME-Version: 1.0 In-Reply-To: <20190517121034.GE2556@intel.intel> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 24/25] gem_wsim: Discover engines List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Andi Shyti Cc: igt-dev@lists.freedesktop.org, Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: Ck9uIDE3LzA1LzIwMTkgMTM6MTAsIEFuZGkgU2h5dGkgd3JvdGU6Cj4gT24gRnJpLCBNYXkgMTcs IDIwMTkgYXQgMTI6MjU6MjVQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4+IEZyb206 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+Cj4+IEluc3RlYWQg b2YgaGFyZGNvZGluZyB0aGUgVkNTIGJhbGFuY2luZyBlbmdpbmVzLCBkaXNjb3ZlciwgYm90aCB3 aXRoIHRoZQo+PiBuZXcgZW5naW5lcyBxdWVyeSwgb3Igd2l0aCB0aGUgbGVnYWN5IGdldF9wYXJh bSBpbiB0aGUgZmFsbGJhY2sgY2FzZSwgc28KPj4gY2xhc3MgYmFzZWQgYWRkcmVzc2luZyBhbHdh eXMgd29ya3MuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIGJlbmNobWFya3MvZ2VtX3dzaW0uYyB8IDE4MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPj4gICAxIGZpbGUgY2hh bmdlZCwgMTczIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQg YS9iZW5jaG1hcmtzL2dlbV93c2ltLmMgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKPj4gaW5kZXgg ZDQzZTdjNzY3ODAxLi41MzlkZTI0M2Y2ZTggMTAwNjQ0Cj4+IC0tLSBhL2JlbmNobWFya3MvZ2Vt X3dzaW0uYwo+PiArKysgYi9iZW5jaG1hcmtzL2dlbV93c2ltLmMKPj4gQEAgLTM2NSwzNCArMzY1 LDE5OCBAQCBzdGF0aWMgaW50IHN0cl90b19lbmdpbmUoY29uc3QgY2hhciAqc3RyKQo+PiAgIAly ZXR1cm4gLTE7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIGJvb2wgX19lbmdpbmVzX3F1ZXJpZWQ7 Cj4+ICtzdGF0aWMgdW5zaWduZWQgaW50IF9fbnVtX2VuZ2luZXM7Cj4+ICtzdGF0aWMgc3RydWN0 IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlICpfX2VuZ2luZXM7Cj4+ICsKPj4gK3N0YXRpYyBp bnQKPj4gK19faTkxNV9xdWVyeShpbnQgaTkxNSwgc3RydWN0IGRybV9pOTE1X3F1ZXJ5ICpxKQo+ PiArewo+PiArCWlmIChpZ3RfaW9jdGwoaTkxNSwgRFJNX0lPQ1RMX0k5MTVfUVVFUlksIHEpKQo+ PiArCQlyZXR1cm4gLWVycm5vOwo+PiArCXJldHVybiAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMg aW50Cj4+ICtfX2k5MTVfcXVlcnlfaXRlbXMoaW50IGk5MTUsIHN0cnVjdCBkcm1faTkxNV9xdWVy eV9pdGVtICppdGVtcywgdWludDMyX3Qgbl9pdGVtcykKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcXVlcnkgcSA9IHsKPj4gKwkJLm51bV9pdGVtcyA9IG5faXRlbXMsCj4+ICsJCS5pdGVtc19w dHIgPSB0b191c2VyX3BvaW50ZXIoaXRlbXMpLAo+PiArCX07Cj4+ICsJcmV0dXJuIF9faTkxNV9x dWVyeShpOTE1LCAmcSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkCj4+ICtpOTE1X3F1ZXJ5 X2l0ZW1zKGludCBpOTE1LCBzdHJ1Y3QgZHJtX2k5MTVfcXVlcnlfaXRlbSAqaXRlbXMsIHVpbnQz Ml90IG5faXRlbXMpCj4+ICt7Cj4+ICsJaWd0X2Fzc2VydF9lcShfX2k5MTVfcXVlcnlfaXRlbXMo aTkxNSwgaXRlbXMsIG5faXRlbXMpLCAwKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIGJvb2wgaGFz X3F1ZXJ5KGludCBpOTE1KQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkxNV9xdWVyeSBxdWVyeSA9 IHt9Owo+PiArCj4+ICsJcmV0dXJuIF9faTkxNV9xdWVyeShpOTE1LCAmcXVlcnkpID09IDA7Cj4+ ICt9Cj4+ICsKPj4gK3N0YXRpYyBib29sIGhhc19lbmdpbmVfcXVlcnkoaW50IGk5MTUpCj4+ICt7 Cj4+ICsJc3RydWN0IGRybV9pOTE1X3F1ZXJ5X2l0ZW0gaXRlbSA9IHsKPj4gKwkJLnF1ZXJ5X2lk ID0gRFJNX0k5MTVfUVVFUllfRU5HSU5FX0lORk8sCj4+ICsJfTsKPj4gKwo+PiArCXJldHVybiBf X2k5MTVfcXVlcnlfaXRlbXMoaTkxNSwgJml0ZW0sIDEpID09IDAgJiYgaXRlbS5sZW5ndGggPiAw Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBxdWVyeV9lbmdpbmVzKHZvaWQpCj4+ICt7Cj4+ ICsJc3RydWN0IGk5MTVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplbmdpbmVzOwo+PiArCXVuc2ln bmVkIGludCBudW07Cj4+ICsKPj4gKwlpZiAoX19lbmdpbmVzX3F1ZXJpZWQpCj4+ICsJCXJldHVy bjsKPj4gKwo+PiArCV9fZW5naW5lc19xdWVyaWVkID0gdHJ1ZTsKPj4gKwo+PiArCWlmICghaGFz X3F1ZXJ5KGZkKSB8fCAhaGFzX2VuZ2luZV9xdWVyeShmZCkpIHsKPiAKPiBPbmUgcXVlc3Rpb24s IHN0aWxsLiBXaGF0IGlzIHRoZSByZWFsIHVzZSBvZiB0aGlzIGNoZWNrIGFuZAo+ICdoYXNfcXVl cnknIHRoYXQgaXMgdXNlZCBvbmx5IGhlcmUuCj4gCj4gSSBtZWFuLi4uIGhlcmUgeW91IHdhbnQg dG8gY2hlY2sgd2hldGhlciB0aGUgImlvY3RsIGlzIG5vdAo+IGltcGxlbWVudGVkIiBvciAiaW9j dGwgaXMgbm90IGltcGxlbWVudGVkIGFuZCBsZW5ndGggIGlzIDAiLgo+IAo+IFdvdWxkbid0IGlu IHRoaXMgY2FzZSBqdXN0ICchaGFzX2VuZ2luZV9xdWVyeSgpJyBiZSBlbm91Z2g/IG9yCj4gaGF2 ZSBJIG1pc3NlZCBhbnkgY2FzZT8KCllvdSBoYXZlbid0IG1pc3NlZCBhbnl0aGluZy4gSSBoYXZl IGJlZW4gcG9pbnRsZXNzbHkgdmVyYm9zZSBhbmQgYSBiaXQgCmxhenkgYnkgY29weS1wYXN0aW5n IGEgbG90LgoKaGFzX2VuZ2luZV9xdWVyeSBpcyBhIHN1cGVyc2V0IG9mIGhhc19xdWVyeSBmb3Ig dGhlIHB1cnBvc2Ugb2YgaW9jdGwgCmRldGVjdGlvbi4KCj4gCj4+ICsJCXVuc2lnbmVkIGludCBu dW1fYnNkID0gZ2VtX2hhc19ic2QoZmQpICsgZ2VtX2hhc19ic2QyKGZkKTsKPj4gKwkJdW5zaWdu ZWQgaW50IGkgPSAwOwo+PiArCj4+ICsJCWlndF9hc3NlcnQobnVtKTsKPj4gKwo+PiArCQludW0g PSAxICsgbnVtX2JzZDsKPiAKPiBkaWQgeW91IG1lYW4gdGhlIGFib3ZlIHR3byBsaW5lcyBzd2Fw cGVkPwoKTm8sIEkgd2FudCB0byBhdm9pZCBydW5uaW5nIG9uIHBsYXRmb3JtcyB3aXRoIG5vIHZj cyBlbmdpbmVzIHNpbmNlIG5vIApvbmUgZXZlciB0ZXN0ZWQgZ2VtX3dzaW0gdGhlcmUuCgo+PiAr Cj4+ICsJCWlmIChnZW1faGFzX2JsdChmZCkpCj4+ICsJCQludW0rKzsKPj4gKwo+PiArCQlpZiAo Z2VtX2hhc192ZWJveChmZCkpCj4+ICsJCQludW0rKzsKPj4gKwo+PiArCQllbmdpbmVzID0gY2Fs bG9jKG51bSwKPj4gKwkJCQkgc2l6ZW9mKHN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0YW5j ZSkpOwo+PiArCQlpZ3RfYXNzZXJ0KGVuZ2luZXMpOwo+PiArCj4+ICsJCWVuZ2luZXNbaV0uZW5n aW5lX2NsYXNzID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSOwo+PiArCQllbmdpbmVzW2ldLmVu Z2luZV9pbnN0YW5jZSA9IDA7Cj4+ICsJCWkrKzsKPj4gKwo+PiArCQlpZiAoZ2VtX2hhc19ibHQo ZmQpKSB7Cj4+ICsJCQllbmdpbmVzW2ldLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNT X0NPUFk7Cj4+ICsJCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5jZSA9IDA7Cj4+ICsJCQlpKys7 Cj4+ICsJCX0KPj4gKwo+PiArCQlpZiAoZ2VtX2hhc19ic2QoZmQpKSB7Cj4+ICsJCQllbmdpbmVz W2ldLmVuZ2luZV9jbGFzcyA9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPOwo+PiArCQkJZW5naW5l c1tpXS5lbmdpbmVfaW5zdGFuY2UgPSAwOwo+PiArCQkJaSsrOwo+PiArCQl9Cj4+ICsKPj4gKwkJ aWYgKGdlbV9oYXNfYnNkMihmZCkpIHsKPj4gKwkJCWVuZ2luZXNbaV0uZW5naW5lX2NsYXNzID0g STkxNV9FTkdJTkVfQ0xBU1NfVklERU87Cj4+ICsJCQllbmdpbmVzW2ldLmVuZ2luZV9pbnN0YW5j ZSA9IDE7Cj4+ICsJCQlpKys7Cj4+ICsJCX0KPj4gKwo+PiArCQlpZiAoZ2VtX2hhc192ZWJveChm ZCkpIHsKPj4gKwkJCWVuZ2luZXNbaV0uZW5naW5lX2NsYXNzID0KPj4gKwkJCQlJOTE1X0VOR0lO RV9DTEFTU19WSURFT19FTkhBTkNFOwo+PiArCQkJZW5naW5lc1tpXS5lbmdpbmVfaW5zdGFuY2Ug PSAwOwo+PiArCQkJaSsrOwo+PiArCQl9Cj4gCj4gbW1oaGguLi4gaXNuJ3QgdGhpcyB0aGUgaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZTJbXT8gWWV0IGFub3RoZXIKPiB3YXkgZm9yIGhhdmluZyBlbmdp bmUgbGlzdC4uLiBpbiB0aGUgbG9uZyBydW4sIHVwZGF0aW5nIGhlcmUgKGFzCj4gd2VsbCkgd29u J3QgYmUgZWFzeSB0byByZW1lbWJlci4KCk5vdCBoZXJlLCBnZW1fd3NpbSB1c2VzIHNvbWUgb2Yg dGhlIElHVCBsaWJyYXJpZXMsIGJ1dCBzaG91bGQga2VlcCBpdCBhdCAKbWluaW11bS4gU28gSSB0 aGluayB3ZSBkb24ndCB3YW50IHRvIHB1bGwgaW4gdGhlIGVuZ2luZSBhcnJheSBldGMuCgpSZWdh cmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==