From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3CEF76E132 for ; Fri, 15 Mar 2019 01:27:13 +0000 (UTC) Date: Fri, 15 Mar 2019 03:27:08 +0200 From: Imre Deak Message-ID: <20190315012708.GE9133@ideak-desk.fi.intel.com> References: <20190313005945.19039-1-jose.souza@intel.com> <20190314165936.GC9133@ideak-desk.fi.intel.com> <79b72864c4a338312b8c425a24ac86a6975642c0.camel@intel.com> <20190314195748.GD9133@ideak-desk.fi.intel.com> <287aa9c3e52d6fb0b1c2344d5a011728c524b9ec.camel@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <287aa9c3e52d6fb0b1c2344d5a011728c524b9ec.camel@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t] tests/chamelium: Add test for hotplug workaround List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: imre.deak@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: "Souza, Jose" Cc: "igt-dev@lists.freedesktop.org" List-ID: T24gRnJpLCBNYXIgMTUsIDIwMTkgYXQgMDI6MDA6NDFBTSArMDIwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVGh1LCAyMDE5LTAzLTE0IGF0IDIxOjU3ICswMjAwLCBJbXJlIERlYWsgd3JvdGU6 Cj4gPiBPbiBUaHUsIE1hciAxNCwgMjAxOSBhdCAwNzo1OTozNFBNICswMjAwLCBTb3V6YSwgSm9z ZSB3cm90ZToKPiA+ID4gT24gVGh1LCAyMDE5LTAzLTE0IGF0IDE4OjU5ICswMjAwLCBJbXJlIERl YWsgd3JvdGU6Cj4gPiA+ID4gSGkgSm9zZSwKPiA+ID4gPiAKPiA+ID4gPiBPbiBUdWUsIE1hciAx MiwgMjAxOSBhdCAwNTo1OTo0NVBNIC0wNzAwLCBKb3PDqSBSb2JlcnRvIGRlIFNvdXphCj4gPiA+ ID4gd3JvdGU6Cj4gPiA+ID4gPiBJdCBpcyBrbm93IHRoYXQgc29tZSB1bnBvd2VyZWQgdHlwZS1j IGRvbmdsZXMgY2FuIHRha2Ugc29tZQo+ID4gPiA+ID4gdGltZSB0bwo+ID4gPiA+ID4gYm9vdCBh bmQgYmUgcmVzcG9uc2libGUgaW4gdGhlIEREQy9hdXggdHJhbnNhY3Rpb24gbGluZXMgc28gYQo+ ID4gPiA+ID4gd29ya2Fyb3VuZCB3YXMgaW1wbGVtZW50ZWQgaW4ga2VybmVsKGRybS9pOTE1OiBF bmFibGUgaG90cGx1Zwo+ID4gPiA+ID4gcmV0cnkpCj4gPiA+ID4gPiB0byBmaXggaXQgYnV0IGlz IHBvc3NpYmxlIHRoYXQgdGhpcyBjb3VsZCBoYXBwZW4gdG8gb3RoZXIgRFAKPiA+ID4gPiA+IHNp bmtzLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBTbyB0aGlzIHRlc3Qgd2lsbCB0cnkgdG8gc2ltdWxh dGUgdGhlIHNjZW5lYXJpbyBkZXNjcmliZWQKPiA+ID4gPiA+IGFib3ZlLCBpdAo+ID4gPiA+ID4g d2lsbCBkaXNhYmxlIHRoZSBEREMgbGluZXMgYW5kIHBsdWcgdGhlIGNvbm5lY3RvciwgdGhlIGhv dHBsdWcKPiA+ID4gPiA+IHNob3VsZAo+ID4gPiA+ID4gZmFpbCBhbmQgdGhlbiBlbmFibGluZyB0 aGUgRERDIGxpbmVzIGtlcm5lbCBzaG91bGQgcmVwb3J0IHRoZQo+ID4gPiA+ID4gY29ubmVjdG9y IGFzIGNvbm5lY3RlZC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gVGhlIHdvcmthcm91bmQgd2lsbCBy ZXByb2JlIGNvbm5lY3RvciBhZnRlciAxIHNlY29uZCBhZnRlcgo+ID4gPiA+ID4ga2VybmVsCj4g PiA+ID4gPiBnaXZlcyB1cCBvbiB0aGUgZmlyc3QgdHJ5IHRvIHByb2JlIHRoZSBjb25uZWN0b3Is IHNvIHRoYXQgaXMKPiA+ID4gPiA+IHdoeSBhCj4gPiA+ID4gPiBzbWFsbGVyIHRpbWVvdXQgdG8g ZGV0ZWN0IGhvdHBsdWcgd2FzIG5lZWRlZC4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gQ2M6IEltcmUg RGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEpvc8Op IFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiA+ID4gLS0tCj4g PiA+ID4gPiAgdGVzdHMva21zX2NoYW1lbGl1bS5jIHwgNzAKPiA+ID4gPiA+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ID4gPiA+ICAxIGZpbGUgY2hhbmdl ZCwgNzAgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4gCj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvdGVz dHMva21zX2NoYW1lbGl1bS5jIGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCj4gPiA+ID4gPiBpbmRl eCBjMjA5MDAzNy4uNTBhNTUzZjIgMTAwNjQ0Cj4gPiA+ID4gPiAtLS0gYS90ZXN0cy9rbXNfY2hh bWVsaXVtLmMKPiA+ID4gPiA+ICsrKyBiL3Rlc3RzL2ttc19jaGFtZWxpdW0uYwo+ID4gPiA+ID4g QEAgLTQ1LDYgKzQ1LDggQEAgdHlwZWRlZiBzdHJ1Y3Qgewo+ID4gPiA+ID4gIAo+ID4gPiA+ID4g ICNkZWZpbmUgSE9UUExVR19USU1FT1VUIDIwIC8qIHNlY29uZHMgKi8KPiA+ID4gPiA+ICAKPiA+ ID4gPiA+ICsjZGVmaW5lIEZBU1RfSE9UUExVR19TRUNfVElNRU9VVCAoMSkKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICAjZGVmaW5lIEhQRF9TVE9STV9QVUxTRV9JTlRFUlZBTF9EUCAxMDAgLyogbXMg Ki8KPiA+ID4gPiA+ICAjZGVmaW5lIEhQRF9TVE9STV9QVUxTRV9JTlRFUlZBTF9IRE1JIDIwMCAv KiBtcyAqLwo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gQEAgLTEwNyw2ICsxMDksMjEgQEAgcmVwcm9i ZV9jb25uZWN0b3IoZGF0YV90ICpkYXRhLCBzdHJ1Y3QKPiA+ID4gPiA+IGNoYW1lbGl1bV9wb3J0 ICpwb3J0KQo+ID4gPiA+ID4gIAlyZXR1cm4gc3RhdHVzOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ ICAKPiA+ID4gPiA+ICtzdGF0aWMgZHJtTW9kZUNvbm5lY3Rpb24KPiA+ID4gPiA+ICtjb25uZWN0 b3Jfc3RhdHVzX2dldChkYXRhX3QgKmRhdGEsIHN0cnVjdCBjaGFtZWxpdW1fcG9ydAo+ID4gPiA+ ID4gKnBvcnQpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlkcm1Nb2RlQ29ubmVjdG9yICpjb25u ZWN0b3I7Cj4gPiA+ID4gPiArCWRybU1vZGVDb25uZWN0aW9uIHN0YXR1czsKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsJaWd0X2RlYnVnKCJHZXR0aW5nIGNvbm5lY3RvciBzdGF0ZSAlcy4uLlxuIiwK PiA+ID4gPiA+IGNoYW1lbGl1bV9wb3J0X2dldF9uYW1lKHBvcnQpKTsKPiA+ID4gPiA+ICsJY29u bmVjdG9yID0gY2hhbWVsaXVtX3BvcnRfZ2V0X2Nvbm5lY3RvcihkYXRhLQo+ID4gPiA+ID4gPmNo YW1lbGl1bSwgcG9ydCwgZmFsc2UpOwo+ID4gPiA+ID4gKwlpZ3RfYXNzZXJ0KGNvbm5lY3Rvcik7 Cj4gPiA+ID4gPiArCXN0YXR1cyA9IGNvbm5lY3Rvci0+Y29ubmVjdGlvbjsKPiA+ID4gPiA+ICsK PiA+ID4gPiA+ICsJZHJtTW9kZUZyZWVDb25uZWN0b3IoY29ubmVjdG9yKTsKPiA+ID4gPiA+ICsJ cmV0dXJuIHN0YXR1czsKPiA+ID4gPiA+ICt9Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiAgc3RhdGlj IHZvaWQKPiA+ID4gPiA+ICB3YWl0X2Zvcl9jb25uZWN0b3IoZGF0YV90ICpkYXRhLCBzdHJ1Y3Qg Y2hhbWVsaXVtX3BvcnQgKnBvcnQsCj4gPiA+ID4gPiAgCQkgICBkcm1Nb2RlQ29ubmVjdGlvbiBz dGF0dXMpCj4gPiA+ID4gPiBAQCAtMjUzLDYgKzI3MCw1NiBAQCB0ZXN0X2Jhc2ljX2hvdHBsdWco ZGF0YV90ICpkYXRhLCBzdHJ1Y3QKPiA+ID4gPiA+IGNoYW1lbGl1bV9wb3J0ICpwb3J0LCBpbnQg dG9nZ2xlX2NvdW50KQo+ID4gPiA+ID4gIAlpZ3RfaHBkX3N0b3JtX3Jlc2V0KGRhdGEtPmRybV9m ZCk7Cj4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gIAo+ID4gPiA+ID4gKy8qCj4gPiA+ID4gPiArICog VGVzdCBrZXJuZWwgd29ya2Fyb3VuZCBmb3Igc2lua3MgdGhhdCB0YWtlcyBzb21lIHRpbWUgdG8K PiA+ID4gPiA+IGhhdmUgdGhlIEREQy9hdXgKPiA+ID4gPiA+ICsgKiBjaGFubmVsIHJlc3BvbnNp dmUgYWZ0ZXIgdGhlIGhvdHBsdWcKPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICtzdGF0aWMgdm9p ZAo+ID4gPiA+ID4gK3Rlc3RfbGF0ZV9hdXhfd2EoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVs aXVtX3BvcnQgKnBvcnQpCj4gPiA+ID4gPiArewo+ID4gPiA+ID4gKwlzdHJ1Y3QgdWRldl9tb25p dG9yICptb24gPSBpZ3Rfd2F0Y2hfaG90cGx1ZygpOwo+ID4gPiA+ID4gKwlkcm1Nb2RlQ29ubmVj dGlvbiBzdGF0dXM7Cj4gPiA+ID4gPiArCj4gPiA+ID4gPiArCS8qIFJlc2V0IHdpbGwgdW5wbHVn IGFsbCBjb25uZWN0b3JzICovCj4gPiA+ID4gPiArCXJlc2V0X3N0YXRlKGRhdGEsIE5VTEwpOwo+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gKwkvKiBDaGVjayBpZiBpdCBkZXZpY2UgY2FuIGFjdCBvbiBo b3RwbHVncyBmYXN0IGVub3VnaAo+ID4gPiA+ID4gZm9yIHRoaXMgdGVzdCAqLwo+ID4gPiA+ID4g KwlpZ3RfZmx1c2hfaG90cGx1Z3MobW9uKTsKPiA+ID4gPiA+ICsJY2hhbWVsaXVtX3BsdWcoZGF0 YS0+Y2hhbWVsaXVtLCBwb3J0KTsKPiA+ID4gPiA+ICsJaWd0X2Fzc2VydChpZ3RfaG90cGx1Z19k ZXRlY3RlZChtb24sCj4gPiA+ID4gPiBGQVNUX0hPVFBMVUdfU0VDX1RJTUVPVVQpKTsKPiA+ID4g PiA+ICsJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19nZXQoZGF0YSwgcG9ydCk7Cj4gPiA+ID4g PiArCWlndF9yZXF1aXJlKHN0YXR1cyA9PSBEUk1fTU9ERV9DT05ORUNURUQpOwo+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gKwlpZ3RfZmx1c2hfaG90cGx1Z3MobW9uKTsKPiA+ID4gPiA+ICsJY2hhbWVs aXVtX3VucGx1ZyhkYXRhLT5jaGFtZWxpdW0sIHBvcnQpOwo+ID4gPiA+ID4gKwlpZ3RfYXNzZXJ0 KGlndF9ob3RwbHVnX2RldGVjdGVkKG1vbiwKPiA+ID4gPiA+IEZBU1RfSE9UUExVR19TRUNfVElN RU9VVCkpOwo+ID4gPiA+ID4gKwlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2dldChkYXRhLCBw b3J0KTsKPiA+ID4gPiA+ICsJaWd0X3JlcXVpcmUoc3RhdHVzID09IERSTV9NT0RFX0RJU0NPTk5F Q1RFRCk7Cj4gPiA+ID4gCj4gPiA+ID4gRG8geW91IGtub3cgb24gd2hpY2ggcGxhdGZvcm1zIHRo ZSBob3RwbHVnIHByb2Nlc3NpbmcgaXMgdGhhdAo+ID4gPiA+IHNsb3cKPiA+ID4gPiBhbmQgd2hh dCBjb3VsZCBiZSB0aGUgcmVhc29uPwo+ID4gPiAKPiA+ID4gSSBoYXZlIHRlc3RlZCBvbiBJQ0wg YW5kIFdITCBhbmQgYm90aCBkb24ndCBuZWVkIG1vcmUgdGhhbiAxCj4gPiA+IHNlY29uZCwKPiA+ ID4gdGhlIDIwcyB0aW1lb3V0IHdhcyBzZXQgYnkgdGhlIGZpcnN0IHBhdGNoKGM5OWY4YjdhMykg YWRkaW5nCj4gPiA+IENoYW1lbGl1bQo+ID4gPiB0ZXN0cyBidXQgdGhlcmUgaXMgbm90IG90aGVy IGluZm9ybWF0aW9uIGFib3V0IHdoeSAyMHMoaW4gdGhlIGZpcnN0Cj4gPiA+IHZlcnNpb25zIG9m IHRoZSBwYXRjaCBpdCB3YXMgMzBzKS4KPiA+IAo+ID4gT2ssIHNvdW5kcyB0byBtZSB0aGF0IEhP VFBMVUdfVElNRU9VVCB3YXMgYWRkZWQgb25seSB0byBjaGVjayBpZgo+ID4gaG90cGx1Zwo+ID4g ZGV0ZWN0aW9uIHdvcmtzIGF0IGFsbCAoYWxsIHJlbGV2YW50IHBsYWNlcyB1c2luZyBpdCBoYXZl IGFuCj4gPiBpZ3RfYXNzZXJ0KCkgb24gaXQpLgo+ID4gCj4gPiBTdGlsbCBub3Qgc3VyZSBpZiB3 ZSBuZWVkIHRoZSBhYm92ZSB0d28gY2hlY2tzLCBzaW5jZSBJIHRoaW5rIHRoZQo+ID4gYXNzdW1w dGlvbnMvY2hlY2tzIGxhdGVyIGluIHRoZSBmdW5jdGlvbiBzaG91bGQgaG9sZCBhbnl3YXkuICBZ ZXMsIHdlCj4gPiBtYXkgbm90IGV4ZXJjaXNlIHRoZSBob3RwbHVnIHJldHJ5IHBhdGggaW4gdGhl IGRyaXZlciwgYnV0IEkgZG9uJ3QKPiA+IHRoaW5rCj4gPiB0aGVyZSBpcyBhIGdvb2Qgd2F5IHRv IGVuc3VyZSB0aGF0IGFueXdheSBhcyBJIHdyb3RlIGJlbG93Lgo+IAo+IFllYWggd2Ugc2hvdWxk IHJlbW92ZSB0aGUgaWd0X2Fzc2VydCgpIGZyb20gaWd0X2hvdHBsdWdfZGV0ZWN0ZWQoKSBpbgo+ IHRob3NlIHR3byBhYm92ZS4KPiAKPiA+IAo+ID4gPiBJIGNhbiBzZW5kIGFub3RoZXIgcGF0Y2gg cmVkdWNpbmcgdGhpcyB2YWx1ZSB0byAxcyBhbmQgaG9wZWZ1bGx5IGlmCj4gPiA+IGl0Cj4gPiA+ IGRvIG5vdCBjYXVzZXMgcmVncmVzc2lvbnMgd2UgbWVyZ2UgaXQuCj4gPiA+ID4gPiArCj4gPiA+ ID4gPiArCS8qIEl0IGlzIGZhc3QgZW5vdWdoLCBsZXRzIGRpc2FibGUgdGhlIEREQyBsaW5lcyBh bmQKPiA+ID4gPiA+IHBsdWcgYWdhaW4KPiA+ID4gPiA+ICovCj4gPiA+ID4gPiArCWlndF9mbHVz aF9ob3RwbHVncyhtb24pOwo+ID4gPiA+ID4gKwljaGFtZWxpdW1fcG9ydF9zZXRfZGRjX3N0YXRl KGRhdGEtPmNoYW1lbGl1bSwgcG9ydCwKPiA+ID4gPiA+IGZhbHNlKTsKPiA+ID4gPiA+ICsJY2hh bWVsaXVtX3BsdWcoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0KTsKPiA+ID4gPiA+ICsJaWd0X2Fzc2Vy dCghY2hhbWVsaXVtX3BvcnRfZ2V0X2RkY19zdGF0ZShkYXRhLQo+ID4gPiA+ID4gPmNoYW1lbGl1 bSwKPiA+ID4gPiA+IHBvcnQpKTsKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ ICsJICogR2l2ZSBzb21lIHRpbWUgdG8ga2VybmVsIHRyeSB0byBwcm9jZXNzIGhvdHBsdWcgYnV0 Cj4gPiA+ID4gPiBpdAo+ID4gPiA+ID4gc2hvdWxkIGZhaWwKPiA+ID4gPiA+ICsJICovCj4gPiA+ ID4gPiArCWlndF9ob3RwbHVnX2RldGVjdGVkKG1vbiwgRkFTVF9IT1RQTFVHX1NFQ19USU1FT1VU KTsKPiA+ID4gPiA+ICsJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19nZXQoZGF0YSwgcG9ydCk7 Cj4gPiA+ID4gPiArCWlndF9hc3NlcnQoc3RhdHVzID09IERSTV9NT0RFX0RJU0NPTk5FQ1RFRCk7 Cj4gPiA+ID4gCj4gPiA+ID4gSG0sIGhvdyBkb2VzIGEgc2Vjb25kIGRpc2Nvbm5lY3QgZXZlbnQg Z2V0IHNpZ25hbGVkIGhlcmU/IEFmdGVyCj4gPiA+ID4gdGhlCj4gPiA+ID4gcHJldmlvdXMgaG90 cGx1ZyBldmVudCBhYm92ZSB3aGVyZSB0aGUgc3RhdGUgd2FzIGRpc2Nvbm5lY3RlZAo+ID4gPiA+ IGFscmVhZHkKPiA+ID4gPiB0aGVyZQo+ID4gPiA+IHNob3VsZG4ndCBoYXZlIGJlZW4gYW55IGNo YW5nZSB0byB0aGUgc3RhdGUsIGhlbmNlIHRoZXJlCj4gPiA+ID4gc2hvdWxkbid0IGJlCj4gPiA+ ID4gYW55IGV2ZW50IHNlbnQgYnkgdGhlIGRyaXZlci4KPiA+ID4gCj4gPiA+IEl0IGlzIG5vdCBz aWduYWxlZCwgdGhhdCBJIHdoeSB0aGVyZSBpcyBub3QgaWd0X2Fzc2VydCgpIG9uIHRoaXMKPiA+ ID4gaWd0X2hvdHBsdWdfZGV0ZWN0ZWQoKSBidXQgY2FsbCBpdCB3aWxsIHBvbGwvc2xlZXAgZm9y IHRoZSB0aW1lIHdlCj4gPiA+IHdhbnQuCj4gPiAKPiA+IEJ1dCB0aGVuIEkgZG9uJ3Qgc2VlIGhv dyBpdCB3aWxsIHdvcmsuIFRoZSBzZXF1ZW5jZSBpczoKPiA+IAo+ID4gPGNvbm5lY3RvciBpcyBp biBkaXNjb25uZWN0ZWQgc3RhdGUsIGNvcnJlc3BvbmRpbmcgZXZlbnQgZGVsaXZlcmVkPgo+ID4g MS4gZGlzYWJsZSBEREMKPiA+IDIuIGdlbmVyYXRlIGEgcGx1ZyBldmVudAo+ID4gMy4gd2FpdCBm b3IgdGhlIHBsdWcgZXZlbnQgZGVsaXZlcnkgd2l0aCAxIHNlYyB0aW1lb3V0Cj4gPiA0LiByZS1l bmFibGUgRERDCj4gPiA1LiB3YWl0IGZvciB0aGUgcGx1ZyBldmVudCBkZWxpdmVyeSAodGhhdCBz aG91bGQgYmUgdHJpZ2dlcmVkIGJ5IHRoZQo+ID4gbmV3Cj4gPiAgICByZXRyeSBsb2dpYyBpbiB0 aGUgZHJpdmVyKQo+ID4gCj4gPiBTaW5jZSBhZnRlciAyLiBEREMgaXMgZGlzYWJsZWQgdGhlIGRy aXZlciBob3RwbHVnIGhhbmRsZXIgd2lsbAo+ID4gY29uY2x1ZGUKPiA+IHRoYXQgdGhlIGNvbm5l Y3RvciBpcyBzdGlsbCBkaXNjb25uZWN0ZWQgYW5kIGhlbmNlIGRvZXNuJ3QgZ2VuZXJhdGUKPiA+ IGFueQo+ID4gaG90cGx1ZyBldmVudC4gQi9jIG9mIHRoaXMgMy4gd2lsbCB0aW1lIG91dCBhZnRl ciAxIHNlYy4KPiA+IAo+ID4gU28gaW4gNC4gd2UnbGwgcmUtZW5hYmxlIEREQyBvbmx5IGFmdGVy IDEgc2VjIGFmdGVyIHRoZSBwbHVnIGV2ZW50Cj4gPiAoaW50ZXJydXB0KSBnZW5lcmF0ZWQgaW4g Mi4gU2luY2UgdGhlIHJldHJ5IGluIHRoZSBkcml2ZXIgaGFwcGVucwo+ID4gYWZ0ZXIKPiA+IDEg c2VjIGZyb20gdGhlIHBsdWcgaW50ZXJydXB0IGFzIHdlbGwgdGhlIHJldHJ5IHByb2Nlc3Npbmcg Y291bGQKPiA+IGVhc2lseQo+ID4gcmFjZSB3aXRoIHRoZSBEREMgcmUtZW5hYmxpbmcgaW4gNC4g YW5kIHRodXMgdGhlIGRldGVjdGlvbiBjb3VsZAo+ID4gZmFpbC4KPiAKPiBZb3UgYXJlIG5vdCB0 YWtpbmcgaW4gdGhlIGFjY291bnQgdGhlIHRpbWUgdGhhdCBrZXJuZWwgd2lsbCB0YWtlIHRvCj4g cHJvY2VzcyB0aGF0LCBJIG1lYXN1cmVkIGp1c3QgdGhlIHRpbWUgc3BlbmQgaW4gdGhlIGhvdHBs dWcoKSBob29rIG9uCj4gbXkgSUNMLgo+IAo+IFsxODU5NTAuMjEyMDM3XSBbZHJtOmludGVsX2Vu Y29kZXJfaG90cGx1ZyBbaTkxNV1dIFtDT05ORUNUT1I6MTk2OkRQLTFdIAo+IHN0YXR1cyB1cGRh dGVkIGZyb20gY29ubmVjdGVkIHRvIGRpc2Nvbm5lY3RlZAo+IFsxODU5NTAuMjEyMTA5XSBbZHJt Omk5MTVfaG90cGx1Z193b3JrX2Z1bmMgW2k5MTVdXSAgICAgaG90cGx1ZygpCj4gdG9vaz02NzMx MjM3MjUgbnNlYyg2NzMgbXNlYykgcmV0PTEKPiAKPiBbMTg1OTUwLjk1NjUzNl0gW2RybTppbnRl bF9lbmNvZGVyX2hvdHBsdWcgW2k5MTVdXSBbQ09OTkVDVE9SOjE5NjpEUC0xXSAKPiBzdGF0dXMg dXBkYXRlZCBmcm9tIGRpc2Nvbm5lY3RlZCB0byBjb25uZWN0ZWQKPiBbMTg1OTUwLjk1NzA2OF0g W2RybTppOTE1X2hvdHBsdWdfd29ya19mdW5jIFtpOTE1XV0gICAgIGhvdHBsdWcoKQo+IHRvb2s9 NjAyMjI5NTUgbnNlYyg2MCBtc2VjKSByZXQ9MQo+IAo+IAo+IFsxODU5NTMuNDgwODc3XSBbZHJt OmRybV9kcF9kcGNkX2FjY2Vzc10gVG9vIG1hbnkgcmV0cmllcywgZ2l2aW5nIHVwLgo+IEZpcnN0 IGVycm9yOiAtMTEwCj4gWzE4NTk1My40ODA5NjldIFtkcm06aW50ZWxfZW5jb2Rlcl9ob3RwbHVn IFtpOTE1XV0gW0NPTk5FQ1RPUjoxOTY6RFAtMV0gCj4gc3RhdHVzIHVwZGF0ZWQgZnJvbSBjb25u ZWN0ZWQgdG8gZGlzY29ubmVjdGVkCj4gWzE4NTk1My40ODEwMzhdIFtkcm06aTkxNV9ob3RwbHVn X3dvcmtfZnVuYyBbaTkxNV1dICAgICBob3RwbHVnKCkKPiB0b29rPTY3MjMwOTQ4NiBuc2VjKDY3 MiBtc2VjKSByZXQ9MQo+IAkKPiBNb3JlIHRoYW4gaGFsZiBvZiBhIHNlY29uZCByZXRyeWluZyB1 bnRpbCBpdCBnaXZlcyB1cCBhbmQgY2hhbmdlL2tlZXAKPiB0aGUgc3RhdHVzIHRvIGRpc2Nvbm5l Y3RlZC4KCjY3MG1zZWMgZm9yIGRldGVjdGlvbiB0byBmYWlsIHNvdW5kcyBzdHJhbmdlLCB3aGVy ZSBpcyB0aGF0IGNvbWluZyBmcm9tPwpBVVggcmVhZHMgc2hvdWxkIHRpbWUgb3V0IG11Y2ggZWFy bGllciBldmVuIHdpdGggYWxsIHRoZSByZXRyaWVzLgoKPiAKPiBTbyBpbiBteSByb3VnaCBlc3Rp bWF0aW9uOgo+IHQgMHMgPSBJR1QgZGlzYWJsZXMgRERDIGFuZCBkbyB0aGUgaG90cGx1ZygxIGFu ZCAyIGZyb20geW91ciBzZXF1ZW5jZSkKPiB0IDAuN3MgPSBrZXJuZWwgZ2l2ZXMgdXAgYW5kIGtl ZXAgY29ubmVjdG9yIGFzIGRpc2Nvbm5lY3RlZAo+IHQgMXMgPSBJR1QgcmVhZCBjb25uZWN0b3Ig YXMgZGlzY29ubmVjdGVkIGFuZCBlbmFibGVzIERDQygzIGFuZCA0IGZyb20KPiB5b3VyIHNlcXVl bmNlKQo+IHQgMS43ID0ga2VybmVsIHRyeSB0byBwcm9iZSBhZ2Fpbgo+IHQgMS44ID0ga2VybmVs IHByb2JlIGFuZCBtYXJrIGNvbm5lY3RvciBhcyBjb25uZWN0ZWQKPiB0IDJzID0gSUdUIHJlYWQg Y29ubmVjdG9yIGFzIGNvbm5lY3RlZCg1IGZyb20geW91ciBzZXF1ZW5jZSkKPiAKPiBNYXliZSB0 byBhdm9pZCB0ZXN0IGZhaWx1cmVzIHRoZSBzZWNvbmQgdGltZW91dCBzaG91bGQgYmUgYmlnZ2Vy Cj4gCj4gPiAKPiA+IFNpbmNlIEkgZG9uJ3Qgc2VlIGEgZ29vZCB3YXkgdG8gZW5zdXJlIHRoYXQg d2UgcmUtZW5hYmxlIEREQyBhZnRlcgo+ID4gdGhlCj4gPiBmaXJzdCBkZXRlY3Rpb24gY3ljbGUg cmFuIChidXQgbm90IHRvbyBsYXRlIG1pc3NpbmcgdGhlIHJldHJ5IGN5Y2xlKQo+ID4gSQo+ID4g d291bGQgcmF0aGVyIHN1Z2dlc3QgYSBzaW1wbGUgd2FpdCBhdCAzLiwgbGV0J3Mgc2F5IDUwMG1z ZWMuIFdpdGgKPiA+IHRoYXQKPiA+IHRoaW5ncyBzaG91bGQgYWx3YXlzIHdvcmsuIFdlIG1heSBu b3QgYWx3YXlzIGV4ZXJjaXNlIHRoZSBkcml2ZXIncwo+ID4gcmV0cnkKPiA+IHBhdGggaWYgdGhl cmUgd2FzIGEgbG9uZyBzY2hlZHVsaW5nIGRlbGF5LCBidXQgdGhhdCdzIHVubGlrZWx5Lgo+ID4g Cj4gPiBIb3dldmVyIGEgc2NoZWR1bGluZyBkZWxheSBhZnRlciAyLiBhbmQgYmVmb3JlIDQuIGNv dWxkIGNhdXNlIGEKPiA+IGRldGVjdGlvbiBmYWlsdXJlLiBUbyBhdm9pZCB0aGF0IEknZCBhbHNv IGNoZWNrIHRoZSBlbGFwc2VkIHRpbWUKPiA+IHN0YXJ0aW5nIGZyb20gcmlnaHQgYmVmb3JlIDIu IHVudGlsIHJpZ2h0IGFmdGVyIDQuIGFuZCBydW4gdGhlCj4gPiBzZXF1ZW5jZQo+ID4gYWdhaW4g aWYgdGhlIGVsYXBzZWQgdGltZSB3YXMgdG9vIGNsb3NlIHRvIDFzZWMgKGFuZCBoZW5jZSBkZXRl Y3Rpb24KPiA+IHBvc3NpYmx5IGZhaWxlZCBiZWNhdXNlIG9mIHRoZSByYWNlIGRlc2NyaWJlZCBh Ym92ZSkuCj4gPiAKPiA+ID4gPiA+ICsKPiA+ID4gPiA+ICsJLyoKPiA+ID4gPiA+ICsJICogRW5h YmxlIHRoZSBEREMgbGluZSBhbmQgdGhlIGtlcm5lbCB3b3JrYXJvdW5kIHNob3VsZAo+ID4gPiA+ ID4gcmVwcm9iZQo+ID4gPiA+ID4gYW5kCj4gPiA+ID4gPiArCSAqIHJlcG9ydCBhcyBjb25uZWN0 ZWQKPiA+ID4gPiA+ICsJICovCj4gPiA+ID4gPiArCWNoYW1lbGl1bV9wb3J0X3NldF9kZGNfc3Rh dGUoZGF0YS0+Y2hhbWVsaXVtLCBwb3J0LAo+ID4gPiA+ID4gdHJ1ZSk7Cj4gPiA+ID4gPiArCWln dF9hc3NlcnQoY2hhbWVsaXVtX3BvcnRfZ2V0X2RkY19zdGF0ZShkYXRhLQo+ID4gPiA+ID4gPmNo YW1lbGl1bSwKPiA+ID4gPiA+IHBvcnQpKTsKPiA+ID4gPiA+ICsJaWd0X2Fzc2VydChpZ3RfaG90 cGx1Z19kZXRlY3RlZChtb24sCj4gPiA+ID4gPiBGQVNUX0hPVFBMVUdfU0VDX1RJTUVPVVQpKTsK PiA+ID4gPiA+ICsJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19nZXQoZGF0YSwgcG9ydCk7Cj4g PiA+ID4gPiArCWlndF9hc3NlcnQoc3RhdHVzID09IERSTV9NT0RFX0NPTk5FQ1RFRCk7Cj4gPiA+ ID4gPiArfQo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gIHN0YXRpYyB2b2lkCj4gPiA+ID4gPiAgdGVz dF9lZGlkX3JlYWQoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgY2hhbWVsaXVtX3BvcnQgKnBvcnQsCj4g PiA+ID4gPiAgCSAgICAgICBpbnQgZWRpZF9pZCwgY29uc3QgdW5zaWduZWQgY2hhciAqZWRpZCkK PiA+ID4gPiA+IEBAIC0xMzA4LDYgKzEzNzUsOSBAQCBpZ3RfbWFpbgo+ID4gPiA+ID4gIAo+ID4g PiA+ID4gIAkJY29ubmVjdG9yX3N1YnRlc3QoImRwLWZyYW1lLWR1bXAiLCBEaXNwbGF5UG9ydCkK PiA+ID4gPiA+ICAJCQl0ZXN0X2Rpc3BsYXlfZnJhbWVfZHVtcCgmZGF0YSwgcG9ydCk7Cj4gPiA+ ID4gPiArCj4gPiA+ID4gPiArCQljb25uZWN0b3Jfc3VidGVzdCgiZHAtbGF0ZS1hdXgtd2EiLAo+ ID4gPiA+ID4gRGlzcGxheVBvcnQpCj4gPiA+ID4gPiArCQkJdGVzdF9sYXRlX2F1eF93YSgmZGF0 YSwgcG9ydCk7Cj4gPiAKPiA+IFRoaXMgYWxzbyBuZWVkcyB0aGUgcmV0cnkgbG9naWMgdG8gYmUg YWRkZWQgZm9yIERQIHBvcnRzIG9uIG9sZAo+ID4gcGxhdGZvcm1zIChpbnRlbF9kcF9ob3RwbHVn KCkgaW4gdGhlIGRyaXZlcikuCj4gPiAKPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gIAo+ID4gPiA+ ID4gIAlpZ3Rfc3VidGVzdF9ncm91cCB7Cj4gPiA+ID4gPiAtLSAKPiA+ID4gPiA+IDIuMjEuMAo+ ID4gPiA+ID4gCj4gPiAKPiA+IAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0 LWRldg==