From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Cui, Flora" Subject: Re: [PATCH v2] tests/amdgpu: add deadlock test for sdma Date: Fri, 15 Mar 2019 08:09:53 +0000 Message-ID: <715db527-6931-ddb5-28ff-49da78fdcf4d@amd.com> References: <1551854219-4458-1-git-send-email-flora.cui@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: <8DFEA76E9E48A64AA1F386DD34F0C1AA@namprd12.prod.outlook.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Deucher, Alexander" , "Cui, Flora" , "amd-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org SGkgQWxleCwNCg0KY291bGQgeW91IGhlbHAgdG8gc3VibWl0IHRoaXMgcGF0Y2ggdXBzdHJlYW0/ DQoNCuWcqCAzLzYvMjAxOSA0OjA4IFBNLCBDaHJpc3RpYW4gS8O2bmlnIOWGmemBkzoNCj4gQW0g MDYuMDMuMTkgdW0gMDc6Mzcgc2NocmllYiBDdWksIEZsb3JhOg0KPj4gZGVhZGxvY2sgdGVzdCBm b3Igc2RtYSB3aWxsIGNhdXNlIGdwdSByZWNvdmVydHkuDQo+PiBkaXNhYmxlIHRoZSB0ZXN0IGZv ciBub3cgdW50aWwgR1BVIHJlc2V0IHJlY292ZXJ5IGNvdWxkIHN1cnZpdmUgYXQgbGVhc3QNCj4+ IDEwMDAgdGltZXMgdGVzdC4NCj4+DQo+PiB2MjogYWRkIG1vZHByb2JlIHBhcmFtZXRlcg0KPj4N Cj4+IENoYW5nZS1JZDogSTlhZGFjNjNjNjJkYjIyMTA3MzQ1ZWRkYjMwZTdkODFhMWJkYTgzOGMN Cj4+IFNpZ25lZC1vZmYtYnk6IEZsb3JhIEN1aSA8ZmxvcmEuY3VpQGFtZC5jb20+DQo+DQo+IEFj a2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+DQo+DQo+ PiAtLS0NCj4+IMKgIHRlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jwqDCoMKgIHzCoMKgIDQgKysN Cj4+IMKgIHRlc3RzL2FtZGdwdS9kZWFkbG9ja190ZXN0cy5jIHwgMTAzIA0KPj4gKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQo+PiDCoCAyIGZpbGVzIGNoYW5nZWQs IDEwNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL3Rl c3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMNCj4+ IGluZGV4IGViZjQ0MDkuLjM4YjhhNjggMTAwNjQ0DQo+PiAtLS0gYS90ZXN0cy9hbWRncHUvYW1k Z3B1X3Rlc3QuYw0KPj4gKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMNCj4+IEBAIC00 MjYsNiArNDI2LDEwIEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kaXNhYmxlX3N1aXRlcygpDQo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiY29tcHV0ZSByaW5nIGJsb2NrIHRlc3QgKHNldCAN Cj4+IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCBDVV9GQUxTRSkpDQo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgZnByaW50ZihzdGRlcnIsICJ0ZXN0IGRlYWN0aXZhdGlvbiBmYWlsZWQgLSAlc1xu IiwgDQo+PiBDVV9nZXRfZXJyb3JfbXNnKCkpOw0KPj4gwqAgK8KgwqDCoCBpZiAoYW1kZ3B1X3Nl dF90ZXN0X2FjdGl2ZShERUFETE9DS19URVNUU19TVFIsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICJzZG1hIHJpbmcgYmxvY2sgdGVzdCAoc2V0IA0KPj4gYW1kZ3B1LmxvY2t1 cF90aW1lb3V0PTUwKSIsIENVX0ZBTFNFKSkNCj4+ICvCoMKgwqDCoMKgwqDCoCBmcHJpbnRmKHN0 ZGVyciwgInRlc3QgZGVhY3RpdmF0aW9uIGZhaWxlZCAtICVzXG4iLCANCj4+IENVX2dldF9lcnJv cl9tc2coKSk7DQo+PiArDQo+PiDCoMKgwqDCoMKgIGlmIChhbWRncHVfc2V0X3Rlc3RfYWN0aXZl KEJPX1RFU1RTX1NUUiwgIk1ldGFkYXRhIiwgQ1VfRkFMU0UpKQ0KPj4gwqDCoMKgwqDCoMKgwqDC oMKgIGZwcmludGYoc3RkZXJyLCAidGVzdCBkZWFjdGl2YXRpb24gZmFpbGVkIC0gJXNcbiIsIA0K Pj4gQ1VfZ2V0X2Vycm9yX21zZygpKTsNCj4+IMKgIGRpZmYgLS1naXQgYS90ZXN0cy9hbWRncHUv ZGVhZGxvY2tfdGVzdHMuYyANCj4+IGIvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMNCj4+ IGluZGV4IGE2YzI2MzUuLjkxMzY4YzEgMTAwNjQ0DQo+PiAtLS0gYS90ZXN0cy9hbWRncHUvZGVh ZGxvY2tfdGVzdHMuYw0KPj4gKysrIGIvdGVzdHMvYW1kZ3B1L2RlYWRsb2NrX3Rlc3RzLmMNCj4+ IEBAIC05Niw2ICs5Niw5IEBADQo+PiDCoCDCoCAjZGVmaW5lIG1tVk1fQ09OVEVYVDBfUEFHRV9U QUJMRV9CQVNFX0FERFIgMHg1NGYNCj4+IMKgICsjZGVmaW5lIFNETUFfUEtUX0hFQURFUl9PUCh4 KcKgwqDCoCAoeCAmIDB4ZmYpDQo+PiArI2RlZmluZSBTRE1BX09QX1BPTExfUkVHTUVNwqAgOA0K Pj4gKw0KPj4gwqAgc3RhdGljwqAgYW1kZ3B1X2RldmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZTsN Cj4+IMKgIHN0YXRpY8KgIHVpbnQzMl90wqAgbWFqb3JfdmVyc2lvbjsNCj4+IMKgIHN0YXRpY8Kg IHVpbnQzMl90wqAgbWlub3JfdmVyc2lvbjsNCj4+IEBAIC0xMTAsNiArMTEzLDcgQEAgc3RhdGlj IHZvaWQgYW1kZ3B1X2RlYWRsb2NrX2dmeCh2b2lkKTsNCj4+IMKgIHN0YXRpYyB2b2lkIGFtZGdw dV9kZWFkbG9ja19jb21wdXRlKHZvaWQpOw0KPj4gwqAgc3RhdGljIHZvaWQgYW1kZ3B1X2lsbGVn YWxfcmVnX2FjY2VzcygpOw0KPj4gwqAgc3RhdGljIHZvaWQgYW1kZ3B1X2lsbGVnYWxfbWVtX2Fj Y2VzcygpOw0KPj4gK3N0YXRpYyB2b2lkIGFtZGdwdV9kZWFkbG9ja19zZG1hKHZvaWQpOw0KPj4g wqAgwqAgQ1VfQk9PTCBzdWl0ZV9kZWFkbG9ja190ZXN0c19lbmFibGUodm9pZCkNCj4+IMKgIHsN Cj4+IEBAIC0xNzEsNiArMTc1LDcgQEAgaW50IHN1aXRlX2RlYWRsb2NrX3Rlc3RzX2NsZWFuKHZv aWQpDQo+PiDCoCBDVV9UZXN0SW5mbyBkZWFkbG9ja190ZXN0c1tdID0gew0KPj4gwqDCoMKgwqDC oCB7ICJnZnggcmluZyBibG9jayB0ZXN0IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIs IA0KPj4gYW1kZ3B1X2RlYWRsb2NrX2dmeCB9LA0KPj4gwqDCoMKgwqDCoCB7ICJjb21wdXRlIHJp bmcgYmxvY2sgdGVzdCAoc2V0IGFtZGdwdS5sb2NrdXBfdGltZW91dD01MCkiLCANCj4+IGFtZGdw dV9kZWFkbG9ja19jb21wdXRlIH0sDQo+PiArwqDCoMKgIHsgInNkbWEgcmluZyBibG9jayB0ZXN0 IChzZXQgYW1kZ3B1LmxvY2t1cF90aW1lb3V0PTUwKSIsIA0KPj4gYW1kZ3B1X2RlYWRsb2NrX3Nk bWEgfSwNCj4+IMKgwqDCoMKgwqAgeyAiaWxsZWdhbCByZWcgYWNjZXNzIHRlc3QiLCBhbWRncHVf aWxsZWdhbF9yZWdfYWNjZXNzIH0sDQo+PiDCoMKgwqDCoMKgIHsgImlsbGVnYWwgbWVtIGFjY2Vz cyB0ZXN0IChzZXQgYW1kZ3B1LnZtX2ZhdWx0X3N0b3A9MikiLCANCj4+IGFtZGdwdV9pbGxlZ2Fs X21lbV9hY2Nlc3MgfSwNCj4+IMKgwqDCoMKgwqAgQ1VfVEVTVF9JTkZPX05VTEwsDQo+PiBAQCAt MjYwLDcgKzI2NSw2IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9kZWFkbG9ja19oZWxwZXIodW5zaWdu ZWQgaXBfdHlwZSkNCj4+IMKgwqDCoMKgwqAgaWJzX3JlcXVlc3QuaWJzID0gJmliX2luZm87DQo+ PiDCoMKgwqDCoMKgIGlic19yZXF1ZXN0LnJlc291cmNlcyA9IGJvX2xpc3Q7DQo+PiDCoMKgwqDC oMKgIGlic19yZXF1ZXN0LmZlbmNlX2luZm8uaGFuZGxlID0gTlVMTDsNCj4+IC0NCj4+IMKgwqDC oMKgwqAgZm9yIChpID0gMDsgaSA8IDIwMDsgaSsrKSB7DQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg ciA9IGFtZGdwdV9jc19zdWJtaXQoY29udGV4dF9oYW5kbGUsIDAsJmlic19yZXF1ZXN0LCAxKTsN Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBDVV9BU1NFUlRfRVFVQUwoKHIgPT0gMCB8fCByID09IC1F Q0FOQ0VMRUQpLCAxKTsNCj4+IEBAIC0yOTEsNiArMjk1LDEwMyBAQCBzdGF0aWMgdm9pZCBhbWRn cHVfZGVhZGxvY2tfaGVscGVyKHVuc2lnbmVkIA0KPj4gaXBfdHlwZSkNCj4+IMKgwqDCoMKgwqAg Q1VfQVNTRVJUX0VRVUFMKHIsIDApOw0KPj4gwqAgfQ0KPj4gwqAgK3N0YXRpYyB2b2lkIGFtZGdw dV9kZWFkbG9ja19zZG1hKHZvaWQpDQo+PiArew0KPj4gK8KgwqDCoCBhbWRncHVfY29udGV4dF9o YW5kbGUgY29udGV4dF9oYW5kbGU7DQo+PiArwqDCoMKgIGFtZGdwdV9ib19oYW5kbGUgaWJfcmVz dWx0X2hhbmRsZTsNCj4+ICvCoMKgwqAgdm9pZCAqaWJfcmVzdWx0X2NwdTsNCj4+ICvCoMKgwqAg dWludDY0X3QgaWJfcmVzdWx0X21jX2FkZHJlc3M7DQo+PiArwqDCoMKgIHN0cnVjdCBhbWRncHVf Y3NfcmVxdWVzdCBpYnNfcmVxdWVzdDsNCj4+ICvCoMKgwqAgc3RydWN0IGFtZGdwdV9jc19pYl9p bmZvIGliX2luZm87DQo+PiArwqDCoMKgIHN0cnVjdCBhbWRncHVfY3NfZmVuY2UgZmVuY2Vfc3Rh dHVzOw0KPj4gK8KgwqDCoCB1aW50MzJfdCBleHBpcmVkOw0KPj4gK8KgwqDCoCBpbnQgaSwgcjsN Cj4+ICvCoMKgwqAgYW1kZ3B1X2JvX2xpc3RfaGFuZGxlIGJvX2xpc3Q7DQo+PiArwqDCoMKgIGFt ZGdwdV92YV9oYW5kbGUgdmFfaGFuZGxlOw0KPj4gK8KgwqDCoCBzdHJ1Y3QgZHJtX2FtZGdwdV9p bmZvX2h3X2lwIGluZm87DQo+PiArwqDCoMKgIHVpbnQzMl90IHJpbmdfaWQ7DQo+PiArDQo+PiAr wqDCoMKgIHIgPSBhbWRncHVfcXVlcnlfaHdfaXBfaW5mbyhkZXZpY2VfaGFuZGxlLCBBTURHUFVf SFdfSVBfRE1BLCAwLCANCj4+ICZpbmZvKTsNCj4+ICvCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIs IDApOw0KPj4gKw0KPj4gK8KgwqDCoCByID0gYW1kZ3B1X2NzX2N0eF9jcmVhdGUoZGV2aWNlX2hh bmRsZSwgJmNvbnRleHRfaGFuZGxlKTsNCj4+ICvCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDAp Ow0KPj4gKw0KPj4gK8KgwqDCoCBmb3IgKHJpbmdfaWQgPSAwOyAoMSA8PCByaW5nX2lkKSAmIGlu Zm8uYXZhaWxhYmxlX3JpbmdzOyANCj4+IHJpbmdfaWQrKykgew0KPj4gK8KgwqDCoMKgwqDCoMKg IHIgPSBwdGhyZWFkX2NyZWF0ZSgmc3RyZXNzX3RocmVhZCwgTlVMTCwgd3JpdGVfbWVtX2FkZHJl c3MsIA0KPj4gTlVMTCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDAp Ow0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIHIgPSBhbWRncHVfYm9fYWxsb2NfYW5kX21hcF9y YXcoZGV2aWNlX2hhbmRsZSwgNDA5NiwgNDA5NiwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQU1ER1BVX0dFTV9ET01BSU5fR1RULCAwLCB1c2VfdWNfbXR5cGUgPyANCj4+IEFN REdQVV9WTV9NVFlQRV9VQyA6IDAsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmliX3Jlc3VsdF9oYW5kbGUsICZpYl9y ZXN1bHRfY3B1LA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICZpYl9yZXN1bHRfbWNfYWRkcmVzcywgJnZhX2hhbmRsZSk7 DQo+PiArwqDCoMKgwqDCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOw0KPj4gKw0KPj4gK8Kg wqDCoMKgwqDCoMKgIHIgPSBhbWRncHVfZ2V0X2JvX2xpc3QoZGV2aWNlX2hhbmRsZSwgaWJfcmVz dWx0X2hhbmRsZSwgTlVMTCwNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAmYm9fbGlzdCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgQ1VfQVNTRVJUX0VRVUFM KHIsIDApOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIHB0ciA9IGliX3Jlc3VsdF9jcHU7DQo+ PiArwqDCoMKgwqDCoMKgwqAgaSA9IDA7DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgcHRyW2kr K10gPSBTRE1BX1BLVF9IRUFERVJfT1AoU0RNQV9PUF9QT0xMX1JFR01FTSkgfA0KPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoMCA8PCAyNikgfCAvKiBXQUlUX1JFR19NRU0gKi8N Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKDQgPDwgMjgpIHwgLyogIT0gKi8N Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKDEgPDwgMzEpOyAvKiBtZW1vcnkg Ki8NCj4+ICvCoMKgwqDCoMKgwqDCoCBwdHJbaSsrXSA9IChpYl9yZXN1bHRfbWNfYWRkcmVzcyAr IDI1Nio0KSAmIDB4ZmZmZmZmZmM7DQo+PiArwqDCoMKgwqDCoMKgwqAgcHRyW2krK10gPSAoKGli X3Jlc3VsdF9tY19hZGRyZXNzICsgMjU2KjQpID4+IDMyKSAmIDB4ZmZmZmZmZmY7DQo+PiArwqDC oMKgwqDCoMKgwqAgcHRyW2krK10gPSAweDAwMDAwMDAwOyAvKiByZWZlcmVuY2UgdmFsdWUgKi8N Cj4+ICvCoMKgwqDCoMKgwqDCoCBwdHJbaSsrXSA9IDB4ZmZmZmZmZmY7IC8qIGFuZCBtYXNrICov DQo+PiArwqDCoMKgwqDCoMKgwqAgcHRyW2krK10gPcKgIDQgfCAvKiBwb2xsIGludGVydmFsICov DQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgweGZmZiA8PCAxNik7IC8qIHJl dHJ5IGNvdW50ICovDQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgZm9yICg7IGkgPCAxNjsgaSsr KQ0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHRyW2ldID0gMDsNCj4+ICsNCj4+ICvCoMKg wqDCoMKgwqDCoCBwdHJbMjU2XSA9IDB4MDsgLyogdGhlIG1lbW9yeSB3ZSB3YWl0IG9uIHRvIGNo YW5nZSAqLw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIG1lbXNldCgmaWJfaW5mbywgMCwgc2l6 ZW9mKHN0cnVjdCBhbWRncHVfY3NfaWJfaW5mbykpOw0KPj4gK8KgwqDCoMKgwqDCoMKgIGliX2lu Zm8uaWJfbWNfYWRkcmVzcyA9IGliX3Jlc3VsdF9tY19hZGRyZXNzOw0KPj4gK8KgwqDCoMKgwqDC oMKgIGliX2luZm8uc2l6ZSA9IDE2Ow0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIG1lbXNldCgm aWJzX3JlcXVlc3QsIDAsIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2NzX3JlcXVlc3QpKTsNCj4+ICvC oMKgwqDCoMKgwqDCoCBpYnNfcmVxdWVzdC5pcF90eXBlID0gQU1ER1BVX0hXX0lQX0RNQTsNCj4+ ICvCoMKgwqDCoMKgwqDCoCBpYnNfcmVxdWVzdC5yaW5nID0gcmluZ19pZDsNCj4+ICvCoMKgwqDC oMKgwqDCoCBpYnNfcmVxdWVzdC5udW1iZXJfb2ZfaWJzID0gMTsNCj4+ICvCoMKgwqDCoMKgwqDC oCBpYnNfcmVxdWVzdC5pYnMgPSAmaWJfaW5mbzsNCj4+ICvCoMKgwqDCoMKgwqDCoCBpYnNfcmVx dWVzdC5yZXNvdXJjZXMgPSBib19saXN0Ow0KPj4gK8KgwqDCoMKgwqDCoMKgIGlic19yZXF1ZXN0 LmZlbmNlX2luZm8uaGFuZGxlID0gTlVMTDsNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCBmb3Ig KGkgPSAwOyBpIDwgMjAwOyBpKyspIHsNCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHIgPSBh bWRncHVfY3Nfc3VibWl0KGNvbnRleHRfaGFuZGxlLCAwLCZpYnNfcmVxdWVzdCwgMSk7DQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBDVV9BU1NFUlRfRVFVQUwoKHIgPT0gMCB8fCByID09IC1F Q0FOQ0VMRUQpLCAxKTsNCj4+ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCB9DQo+PiArDQo+PiArwqDC oMKgwqDCoMKgwqAgbWVtc2V0KCZmZW5jZV9zdGF0dXMsIDAsIHNpemVvZihzdHJ1Y3QgYW1kZ3B1 X2NzX2ZlbmNlKSk7DQo+PiArwqDCoMKgwqDCoMKgwqAgZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBj b250ZXh0X2hhbmRsZTsNCj4+ICvCoMKgwqDCoMKgwqDCoCBmZW5jZV9zdGF0dXMuaXBfdHlwZSA9 IEFNREdQVV9IV19JUF9ETUE7DQo+PiArwqDCoMKgwqDCoMKgwqAgZmVuY2Vfc3RhdHVzLmlwX2lu c3RhbmNlID0gMDsNCj4+ICvCoMKgwqDCoMKgwqDCoCBmZW5jZV9zdGF0dXMucmluZyA9IHJpbmdf aWQ7DQo+PiArwqDCoMKgwqDCoMKgwqAgZmVuY2Vfc3RhdHVzLmZlbmNlID0gaWJzX3JlcXVlc3Qu c2VxX25vOw0KPj4gKw0KPj4gK8KgwqDCoMKgwqDCoMKgIHIgPSBhbWRncHVfY3NfcXVlcnlfZmVu Y2Vfc3RhdHVzKCZmZW5jZV9zdGF0dXMsDQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIEFNREdQVV9USU1FT1VUX0lORklOSVRFLDAsICZleHBpcmVkKTsNCj4+ICvCoMKgwqDCoMKg wqDCoCBDVV9BU1NFUlRfRVFVQUwoKHIgPT0gMCB8fCByID09IC1FQ0FOQ0VMRUQpLCAxKTsNCj4+ ICsNCj4+ICvCoMKgwqDCoMKgwqDCoCBwdGhyZWFkX2pvaW4oc3RyZXNzX3RocmVhZCwgTlVMTCk7 DQo+PiArDQo+PiArwqDCoMKgwqDCoMKgwqAgciA9IGFtZGdwdV9ib19saXN0X2Rlc3Ryb3koYm9f bGlzdCk7DQo+PiArwqDCoMKgwqDCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOw0KPj4gKw0K Pj4gK8KgwqDCoMKgwqDCoMKgIHIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2ZyZWUoaWJfcmVzdWx0 X2hhbmRsZSwgdmFfaGFuZGxlLA0KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpYl9yZXN1bHRfbWNfYWRkcmVzcywgNDA5Nik7DQo+PiArwqDCoMKg wqDCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOw0KPj4gK8KgwqDCoCB9DQo+PiArwqDCoMKg IHIgPSBhbWRncHVfY3NfY3R4X2ZyZWUoY29udGV4dF9oYW5kbGUpOw0KPj4gK8KgwqDCoCBDVV9B U1NFUlRfRVFVQUwociwgMCk7DQo+PiArfQ0KPj4gKw0KPj4gwqAgc3RhdGljIHZvaWQgYmFkX2Fj Y2Vzc19oZWxwZXIoaW50IHJlZ19hY2Nlc3MpDQo+PiDCoCB7DQo+PiDCoMKgwqDCoMKgIGFtZGdw dV9jb250ZXh0X2hhbmRsZSBjb250ZXh0X2hhbmRsZTsNCj4NCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA==