From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH libdrm 7/7] add syncobj timeline tests v3 Date: Thu, 16 May 2019 16:16:53 +0800 Message-ID: References: <20190516080714.14980-1-david1.zhou@amd.com> <20190516080714.14980-7-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-eopbgr680078.outbound.protection.outlook.com [40.107.68.78]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7E720891A6 for ; Thu, 16 May 2019 08:17:02 +0000 (UTC) In-Reply-To: <20190516080714.14980-7-david1.zhou@amd.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chunming Zhou , Christian.Koenig@amd.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SSB3YXMgYWJsZSB0byBwdXNoIGNoYW5nZXMgdG8gbGliZHJtLCBidXQgbm93IHNlZW1zIGFmdGVy IGxpYmRybSBpcyAKbWlncmF0ZWQgdG8gZ2l0bGFiLCBJIGNhbm5vdCB5ZXQuIFdoYXQgc3RlcCBk byBJIG5lZWQgdG8gZ2V0IGJhY2sgbXkgCnBlcm1pc3Npb24/IEkgYWxyZWFkeSBjYW4gbG9naW4g aW50byBnaXRsYWIgd2l0aCBvbGQgZnJlZWRlc2t0b3AgYWNjb3VudC4KCkBDaHJpc3RpYW4sIENh biB5b3UgaGVscCBzdWJtaXQgdGhpcyBwYXRjaCBzZXQgdG8gbGliZHJtIGZpcnN0PwoKClRoYW5r cywKCi1EYXZpZAoKCk9uIDIwMTnlubQwNeaciDE25pelIDE2OjA3LCBDaHVubWluZyBaaG91IHdy b3RlOgo+IHYyOiBkcm9wIERSTV9TWU5DT0JKX0NSRUFURV9UWVBFX1RJTUVMSU5FLCBmaXggdGlt ZW91dCBjYWxjdWxhdGlvbiwKPiAgICAgIGZpeCBzb21lIHdhcm5pbmdzCj4gdjM6IGFkZCBleHBv cnQvaW1wb3J0IGFuZCBjcHUgc2lnbmFsIHRlc3RpbmcgY2FzZXMKPgo+IFNpZ25lZC1vZmYtYnk6 IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+Cj4gQWNrZWQtYnk6IENocmlzdGlh biBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPiBBY2tlZC1ieTogTGlvbmVsIExh bmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5AaW50ZWwuY29tPgo+IC0tLQo+ICAgdGVzdHMv YW1kZ3B1L01ha2VmaWxlLmFtICAgICB8ICAgMyArLQo+ICAgdGVzdHMvYW1kZ3B1L2FtZGdwdV90 ZXN0LmMgICB8ICAxMSArKwo+ICAgdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmggICB8ICAyMSAr KysKPiAgIHRlc3RzL2FtZGdwdS9tZXNvbi5idWlsZCAgICAgfCAgIDIgKy0KPiAgIHRlc3RzL2Ft ZGdwdS9zeW5jb2JqX3Rlc3RzLmMgfCAyOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKPiAgIDUgZmlsZXMgY2hhbmdlZCwgMzI1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYwo+ Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbSBiL3Rlc3RzL2FtZGdwdS9N YWtlZmlsZS5hbQo+IGluZGV4IDQ4Mjc4ODQ4Li45MjA4ODJkMCAxMDA2NDQKPiAtLS0gYS90ZXN0 cy9hbWRncHUvTWFrZWZpbGUuYW0KPiArKysgYi90ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0KPiBA QCAtMzQsNCArMzQsNSBAQCBhbWRncHVfdGVzdF9TT1VSQ0VTID0gXAo+ICAgCXV2ZV9pYi5oIFwK PiAgIAlkZWFkbG9ja190ZXN0cy5jIFwKPiAgIAl2bV90ZXN0cy5jCVwKPiAtCXJhc190ZXN0cy5j Cj4gKwlyYXNfdGVzdHMuYyBcCj4gKwlzeW5jb2JqX3Rlc3RzLmMKPiBkaWZmIC0tZ2l0IGEvdGVz dHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMgYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuYwo+IGlu ZGV4IDM1YzhiZjZjLi43MzQwM2ZiNCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9hbWRncHUvYW1kZ3B1 X3Rlc3QuYwo+ICsrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCj4gQEAgLTU3LDYgKzU3 LDcgQEAKPiAgICNkZWZpbmUgREVBRExPQ0tfVEVTVFNfU1RSICJEZWFkbG9jayBUZXN0cyIKPiAg ICNkZWZpbmUgVk1fVEVTVFNfU1RSICJWTSBUZXN0cyIKPiAgICNkZWZpbmUgUkFTX1RFU1RTX1NU UiAiUkFTIFRlc3RzIgo+ICsjZGVmaW5lIFNZTkNPQkpfVElNRUxJTkVfVEVTVFNfU1RSICJTWU5D T0JKIFRJTUVMSU5FIFRlc3RzIgo+ICAgCj4gICAvKioKPiAgICAqICBPcGVuIGhhbmRsZXMgZm9y IGFtZGdwdSBkZXZpY2VzCj4gQEAgLTEyMyw2ICsxMjQsMTIgQEAgc3RhdGljIENVX1N1aXRlSW5m byBzdWl0ZXNbXSA9IHsKPiAgIAkJLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3Jhc190ZXN0c19jbGVh biwKPiAgIAkJLnBUZXN0cyA9IHJhc190ZXN0cywKPiAgIAl9LAo+ICsJewo+ICsJCS5wTmFtZSA9 IFNZTkNPQkpfVElNRUxJTkVfVEVTVFNfU1RSLAo+ICsJCS5wSW5pdEZ1bmMgPSBzdWl0ZV9zeW5j b2JqX3RpbWVsaW5lX3Rlc3RzX2luaXQsCj4gKwkJLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3N5bmNv YmpfdGltZWxpbmVfdGVzdHNfY2xlYW4sCj4gKwkJLnBUZXN0cyA9IHN5bmNvYmpfdGltZWxpbmVf dGVzdHMsCj4gKwl9LAo+ICAgCj4gICAJQ1VfU1VJVEVfSU5GT19OVUxMLAo+ICAgfTsKPiBAQCAt MTc2LDYgKzE4MywxMCBAQCBzdGF0aWMgU3VpdGVzX0FjdGl2ZV9TdGF0dXMgc3VpdGVzX2FjdGl2 ZV9zdGF0W10gPSB7Cj4gICAJCQkucE5hbWUgPSBSQVNfVEVTVFNfU1RSLAo+ICAgCQkJLnBBY3Rp dmUgPSBzdWl0ZV9yYXNfdGVzdHNfZW5hYmxlLAo+ICAgCQl9LAo+ICsJCXsKPiArCQkJLnBOYW1l ID0gU1lOQ09CSl9USU1FTElORV9URVNUU19TVFIsCj4gKwkJCS5wQWN0aXZlID0gc3VpdGVfc3lu Y29ial90aW1lbGluZV90ZXN0c19lbmFibGUsCj4gKwkJfSwKPiAgIH07Cj4gICAKPiAgIAo+IGRp ZmYgLS1naXQgYS90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaCBiL3Rlc3RzL2FtZGdwdS9hbWRn cHVfdGVzdC5oCj4gaW5kZXggYmNkMGJjN2UuLjM2Njc1ZWEzIDEwMDY0NAo+IC0tLSBhL3Rlc3Rz L2FtZGdwdS9hbWRncHVfdGVzdC5oCj4gKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmgK PiBAQCAtMjE2LDYgKzIxNiwyNyBAQCBDVV9CT09MIHN1aXRlX3Jhc190ZXN0c19lbmFibGUodm9p ZCk7Cj4gICBleHRlcm4gQ1VfVGVzdEluZm8gcmFzX3Rlc3RzW107Cj4gICAKPiAgIAo+ICsvKioK PiArICogSW5pdGlhbGl6ZSBzeW5jb2JqIHRpbWVsaW5lIHRlc3Qgc3VpdGUKPiArICovCj4gK2lu dCBzdWl0ZV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3RzX2luaXQoKTsKPiArCj4gKy8qKgo+ICsgKiBE ZWluaXRpYWxpemUgc3luY29iaiB0aW1lbGluZSB0ZXN0IHN1aXRlCj4gKyAqLwo+ICtpbnQgc3Vp dGVfc3luY29ial90aW1lbGluZV90ZXN0c19jbGVhbigpOwo+ICsKPiArLyoqCj4gKyAqIERlY2lk ZSBpZiB0aGUgc3VpdGUgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIG5vdC4KPiArICovCj4gK0NV X0JPT0wgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUodm9pZCk7Cj4gKwo+ICsv KioKPiArICogVGVzdHMgaW4gc3luY29iaiB0aW1lbGluZSB0ZXN0IHN1aXRlCj4gKyAqLwo+ICtl eHRlcm4gQ1VfVGVzdEluZm8gc3luY29ial90aW1lbGluZV90ZXN0c1tdOwo+ICsKPiArCj4gICAv KioKPiAgICAqIEhlbHBlciBmdW5jdGlvbnMKPiAgICAqLwo+IGRpZmYgLS1naXQgYS90ZXN0cy9h bWRncHUvbWVzb24uYnVpbGQgYi90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQKPiBpbmRleCA5NWVk OTMwNS4uMTcyNmNiNDMgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCj4g KysrIGIvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCj4gQEAgLTI0LDcgKzI0LDcgQEAgaWYgZGVw X2N1bml0LmZvdW5kKCkKPiAgICAgICBmaWxlcygKPiAgICAgICAgICdhbWRncHVfdGVzdC5jJywg J2Jhc2ljX3Rlc3RzLmMnLCAnYm9fdGVzdHMuYycsICdjc190ZXN0cy5jJywKPiAgICAgICAgICd2 Y2VfdGVzdHMuYycsICd1dmRfZW5jX3Rlc3RzLmMnLCAndmNuX3Rlc3RzLmMnLCAnZGVhZGxvY2tf dGVzdHMuYycsCj4gLSAgICAgICd2bV90ZXN0cy5jJywgJ3Jhc190ZXN0cy5jJywKPiArICAgICAg J3ZtX3Rlc3RzLmMnLCAncmFzX3Rlc3RzLmMnLCAnc3luY29ial90ZXN0cy5jJywKPiAgICAgICAp LAo+ICAgICAgIGRlcGVuZGVuY2llcyA6IFtkZXBfY3VuaXQsIGRlcF90aHJlYWRzXSwKPiAgICAg ICBpbmNsdWRlX2RpcmVjdG9yaWVzIDogW2luY19yb290LCBpbmNfZHJtLCBpbmNsdWRlX2RpcmVj dG9yaWVzKCcuLi8uLi9hbWRncHUnKV0sCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2FtZGdwdS9zeW5j b2JqX3Rlc3RzLmMgYi90ZXN0cy9hbWRncHUvc3luY29ial90ZXN0cy5jCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMC4uYTBjNjI3ZDcKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYwo+IEBAIC0wLDAgKzEsMjkwIEBACj4gKy8q Cj4gKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KPiArICoK PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVh bCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQg bGltaXRhdGlvbgo+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwg cHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAq IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6Cj4gKyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCj4gKyAqIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCj4gKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgo+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIg SU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKPiArICogQVJJU0lO RyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SCj4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KPiArICoKPiArKi8K PiArCj4gKyNpbmNsdWRlICJDVW5pdC9CYXNpYy5oIgo+ICsKPiArI2luY2x1ZGUgImFtZGdwdV90 ZXN0LmgiCj4gKyNpbmNsdWRlICJhbWRncHVfZHJtLmgiCj4gKyNpbmNsdWRlICJhbWRncHVfaW50 ZXJuYWwuaCIKPiArI2luY2x1ZGUgPHB0aHJlYWQuaD4KPiArCj4gK3N0YXRpYyAgYW1kZ3B1X2Rl dmljZV9oYW5kbGUgZGV2aWNlX2hhbmRsZTsKPiArc3RhdGljICB1aW50MzJfdCAgbWFqb3JfdmVy c2lvbjsKPiArc3RhdGljICB1aW50MzJfdCAgbWlub3JfdmVyc2lvbjsKPiArCj4gK3N0YXRpYyB2 b2lkIGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Qodm9pZCk7Cj4gKwo+ICtDVV9CT09MIHN1 aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVzdHNfZW5hYmxlKHZvaWQpCj4gK3sKPiArCXJldHVybiBD VV9UUlVFOwo+ICt9Cj4gKwo+ICtpbnQgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19pbml0 KHZvaWQpCj4gK3sKPiArCWludCByOwo+ICsKPiArCXIgPSBhbWRncHVfZGV2aWNlX2luaXRpYWxp emUoZHJtX2FtZGdwdVswXSwgJm1ham9yX3ZlcnNpb24sCj4gKwkJCQkgICAmbWlub3JfdmVyc2lv biwgJmRldmljZV9oYW5kbGUpOwo+ICsKPiArCWlmIChyKSB7Cj4gKwkJaWYgKChyID09IC1FQUND RVMpICYmIChlcnJubyA9PSBFQUNDRVMpKQo+ICsJCQlwcmludGYoIlxuXG5FcnJvcjolcy4gIgo+ ICsJCQkJIkhpbnQ6VHJ5IHRvIHJ1biB0aGlzIHRlc3QgcHJvZ3JhbSBhcyByb290LiIsCj4gKwkJ CQlzdHJlcnJvcihlcnJubykpOwo+ICsJCXJldHVybiBDVUVfU0lOSVRfRkFJTEVEOwo+ICsJfQo+ ICsKPiArCXJldHVybiBDVUVfU1VDQ0VTUzsKPiArfQo+ICsKPiAraW50IHN1aXRlX3N5bmNvYmpf dGltZWxpbmVfdGVzdHNfY2xlYW4odm9pZCkKPiArewo+ICsJaW50IHIgPSBhbWRncHVfZGV2aWNl X2RlaW5pdGlhbGl6ZShkZXZpY2VfaGFuZGxlKTsKPiArCj4gKwlpZiAociA9PSAwKQo+ICsJCXJl dHVybiBDVUVfU1VDQ0VTUzsKPiArCWVsc2UKPiArCQlyZXR1cm4gQ1VFX1NDTEVBTl9GQUlMRUQ7 Cj4gK30KPiArCj4gKwo+ICtDVV9UZXN0SW5mbyBzeW5jb2JqX3RpbWVsaW5lX3Rlc3RzW10gPSB7 Cj4gKwl7ICJzeW5jb2JqIHRpbWVsaW5lIHRlc3QiLCAgYW1kZ3B1X3N5bmNvYmpfdGltZWxpbmVf dGVzdCB9LAo+ICsJQ1VfVEVTVF9JTkZPX05VTEwsCj4gK307Cj4gKwo+ICsjZGVmaW5lIEdGWF9D T01QVVRFX05PUCAgMHhmZmZmMTAwMAo+ICsjZGVmaW5lIFNETUFfTk9QICAweDAKPiArc3RhdGlj IGludCBzeW5jb2JqX2NvbW1hbmRfc3VibWlzc2lvbl9oZWxwZXIodWludDMyX3Qgc3luY29ial9o YW5kbGUsIGJvb2wKPiArCQkJCQkgICAgIHdhaXRfb3Jfc2lnbmFsLCB1aW50NjRfdCBwb2ludCkK PiArewo+ICsJYW1kZ3B1X2NvbnRleHRfaGFuZGxlIGNvbnRleHRfaGFuZGxlOwo+ICsJYW1kZ3B1 X2JvX2hhbmRsZSBpYl9yZXN1bHRfaGFuZGxlOwo+ICsJdm9pZCAqaWJfcmVzdWx0X2NwdTsKPiAr CXVpbnQ2NF90IGliX3Jlc3VsdF9tY19hZGRyZXNzOwo+ICsJc3RydWN0IGRybV9hbWRncHVfY3Nf Y2h1bmsgY2h1bmtzWzJdOwo+ICsJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfZGF0YSBjaHVu a19kYXRhOwo+ICsJc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmtfc3luY29iaiBzeW5jb2JqX2Rh dGE7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlIGZlbmNlX3N0YXR1czsKPiArCWFtZGdwdV9i b19saXN0X2hhbmRsZSBib19saXN0Owo+ICsJYW1kZ3B1X3ZhX2hhbmRsZSB2YV9oYW5kbGU7Cj4g Kwl1aW50MzJfdCBleHBpcmVkLCBmbGFnczsKPiArCWludCBpLCByOwo+ICsJdWludDY0X3Qgc2Vx X25vOwo+ICsJc3RhdGljIHVpbnQzMl90ICpwdHI7Cj4gKwo+ICsJciA9IGFtZGdwdV9jc19jdHhf Y3JlYXRlKGRldmljZV9oYW5kbGUsICZjb250ZXh0X2hhbmRsZSk7Cj4gKwlDVV9BU1NFUlRfRVFV QUwociwgMCk7Cj4gKwo+ICsJciA9IGFtZGdwdV9ib19hbGxvY19hbmRfbWFwKGRldmljZV9oYW5k bGUsIDQwOTYsIDQwOTYsCj4gKwkJCQkgICAgQU1ER1BVX0dFTV9ET01BSU5fR1RULCAwLAo+ICsJ CQkJICAgICZpYl9yZXN1bHRfaGFuZGxlLCAmaWJfcmVzdWx0X2NwdSwKPiArCQkJCSAgICAmaWJf cmVzdWx0X21jX2FkZHJlc3MsICZ2YV9oYW5kbGUpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp Owo+ICsKPiArCXIgPSBhbWRncHVfZ2V0X2JvX2xpc3QoZGV2aWNlX2hhbmRsZSwgaWJfcmVzdWx0 X2hhbmRsZSwgTlVMTCwKPiArCQkJICAgICAgICZib19saXN0KTsKPiArCUNVX0FTU0VSVF9FUVVB TChyLCAwKTsKPiArCj4gKwlwdHIgPSBpYl9yZXN1bHRfY3B1Owo+ICsKPiArCWZvciAoaSA9IDA7 IGkgPCAxNjsgKytpKQo+ICsJCXB0cltpXSA9IHdhaXRfb3Jfc2lnbmFsID8gR0ZYX0NPTVBVVEVf Tk9QOiBTRE1BX05PUDsKPiArCj4gKwljaHVua3NbMF0uY2h1bmtfaWQgPSBBTURHUFVfQ0hVTktf SURfSUI7Cj4gKwljaHVua3NbMF0ubGVuZ3RoX2R3ID0gc2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1 X2NzX2NodW5rX2liKSAvIDQ7Cj4gKwljaHVua3NbMF0uY2h1bmtfZGF0YSA9ICh1aW50NjRfdCko dWludHB0cl90KSZjaHVua19kYXRhOwo+ICsJY2h1bmtfZGF0YS5pYl9kYXRhLl9wYWQgPSAwOwo+ ICsJY2h1bmtfZGF0YS5pYl9kYXRhLnZhX3N0YXJ0ID0gaWJfcmVzdWx0X21jX2FkZHJlc3M7Cj4g KwljaHVua19kYXRhLmliX2RhdGEuaWJfYnl0ZXMgPSAxNiAqIDQ7Cj4gKwljaHVua19kYXRhLmli X2RhdGEuaXBfdHlwZSA9IHdhaXRfb3Jfc2lnbmFsID8gQU1ER1BVX0hXX0lQX0dGWCA6Cj4gKwkJ QU1ER1BVX0hXX0lQX0RNQTsKPiArCWNodW5rX2RhdGEuaWJfZGF0YS5pcF9pbnN0YW5jZSA9IDA7 Cj4gKwljaHVua19kYXRhLmliX2RhdGEucmluZyA9IDA7Cj4gKwljaHVua19kYXRhLmliX2RhdGEu ZmxhZ3MgPSAwOwo+ICsKPiArCWNodW5rc1sxXS5jaHVua19pZCA9IHdhaXRfb3Jfc2lnbmFsID8K PiArCQlBTURHUFVfQ0hVTktfSURfU1lOQ09CSl9USU1FTElORV9XQUlUIDoKPiArCQlBTURHUFVf Q0hVTktfSURfU1lOQ09CSl9USU1FTElORV9TSUdOQUw7Cj4gKwljaHVua3NbMV0ubGVuZ3RoX2R3 ID0gc2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmopIC8gNDsKPiArCWNo dW5rc1sxXS5jaHVua19kYXRhID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpJnN5bmNvYmpfZGF0YTsK PiArCXN5bmNvYmpfZGF0YS5oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsKPiArCXN5bmNvYmpfZGF0 YS5wb2ludCA9IHBvaW50Owo+ICsJc3luY29ial9kYXRhLmZsYWdzID0gRFJNX1NZTkNPQkpfV0FJ VF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQ7Cj4gKwo+ICsJciA9IGFtZGdwdV9jc19zdWJtaXRfcmF3 KGRldmljZV9oYW5kbGUsCj4gKwkJCQkgY29udGV4dF9oYW5kbGUsCj4gKwkJCQkgYm9fbGlzdCwK PiArCQkJCSAyLAo+ICsJCQkJIGNodW5rcywKPiArCQkJCSAmc2VxX25vKTsKPiArCUNVX0FTU0VS VF9FUVVBTChyLCAwKTsKPiArCj4gKwo+ICsJbWVtc2V0KCZmZW5jZV9zdGF0dXMsIDAsIHNpemVv ZihzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlKSk7Cj4gKwlmZW5jZV9zdGF0dXMuY29udGV4dCA9IGNv bnRleHRfaGFuZGxlOwo+ICsJZmVuY2Vfc3RhdHVzLmlwX3R5cGUgPSB3YWl0X29yX3NpZ25hbCA/ IEFNREdQVV9IV19JUF9HRlg6Cj4gKwkJQU1ER1BVX0hXX0lQX0RNQTsKPiArCWZlbmNlX3N0YXR1 cy5pcF9pbnN0YW5jZSA9IDA7Cj4gKwlmZW5jZV9zdGF0dXMucmluZyA9IDA7Cj4gKwlmZW5jZV9z dGF0dXMuZmVuY2UgPSBzZXFfbm87Cj4gKwo+ICsJciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9z dGF0dXMoJmZlbmNlX3N0YXR1cywKPiArCQkJQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsMCwgJmV4 cGlyZWQpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiArCXIgPSBhbWRncHVfYm9f bGlzdF9kZXN0cm95KGJvX2xpc3QpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiAr CXIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2ZyZWUoaWJfcmVzdWx0X2hhbmRsZSwgdmFfaGFuZGxl LAo+ICsJCQkJICAgICBpYl9yZXN1bHRfbWNfYWRkcmVzcywgNDA5Nik7Cj4gKwlDVV9BU1NFUlRf RVFVQUwociwgMCk7Cj4gKwo+ICsJciA9IGFtZGdwdV9jc19jdHhfZnJlZShjb250ZXh0X2hhbmRs ZSk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4gKwo+ICsJcmV0dXJuIHI7Cj4gK30KPiAr Cj4gK3N0cnVjdCBzeW5jb2JqX3BvaW50IHsKPiArCXVpbnQzMl90IHN5bmNvYmpfaGFuZGxlOwo+ ICsJdWludDY0X3QgcG9pbnQ7Cj4gK307Cj4gKwo+ICtzdGF0aWMgdm9pZCAqc3luY29ial93YWl0 KHZvaWQgKmRhdGEpCj4gK3sKPiArCXN0cnVjdCBzeW5jb2JqX3BvaW50ICpzcCA9IChzdHJ1Y3Qg c3luY29ial9wb2ludCAqKWRhdGE7Cj4gKwlpbnQgcjsKPiArCj4gKwlyID0gc3luY29ial9jb21t YW5kX3N1Ym1pc3Npb25faGVscGVyKHNwLT5zeW5jb2JqX2hhbmRsZSwgdHJ1ZSwKPiArCQkJCQkg ICAgICBzcC0+cG9pbnQpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiArCXJldHVy biAodm9pZCAqKShsb25nKXI7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkICpzeW5jb2JqX3NpZ25h bCh2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3luY29ial9wb2ludCAqc3AgPSAoc3RydWN0 IHN5bmNvYmpfcG9pbnQgKilkYXRhOwo+ICsJaW50IHI7Cj4gKwo+ICsJciA9IHN5bmNvYmpfY29t bWFuZF9zdWJtaXNzaW9uX2hlbHBlcihzcC0+c3luY29ial9oYW5kbGUsIGZhbHNlLAo+ICsJCQkJ CSAgICAgIHNwLT5wb2ludCk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4gKwo+ICsJcmV0 dXJuICh2b2lkICopKGxvbmcpcjsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgYW1kZ3B1X3N5bmNv YmpfdGltZWxpbmVfdGVzdCh2b2lkKQo+ICt7Cj4gKwlzdGF0aWMgcHRocmVhZF90IHdhaXRfdGhy ZWFkOwo+ICsJc3RhdGljIHB0aHJlYWRfdCBzaWduYWxfdGhyZWFkOwo+ICsJc3RhdGljIHB0aHJl YWRfdCBjX3RocmVhZDsKPiArCXN0cnVjdCBzeW5jb2JqX3BvaW50IHNwMSwgc3AyLCBzcDM7Cj4g Kwl1aW50MzJfdCBzeW5jb2JqX2hhbmRsZTsKPiArCXVpbnQ2NF90IHBheWxvYWQ7Cj4gKwl1aW50 NjRfdCB3YWl0X3BvaW50LCBzaWduYWxfcG9pbnQ7Cj4gKwl1aW50NjRfdCB0aW1lb3V0Owo+ICsJ c3RydWN0IHRpbWVzcGVjIHRwOwo+ICsJaW50IHIsIHN5bmNfZmQ7Cj4gKwl2b2lkICp0bXA7Cj4g Kwo+ICsJciA9ICBhbWRncHVfY3NfY3JlYXRlX3N5bmNvYmoyKGRldmljZV9oYW5kbGUsIDAsICZz eW5jb2JqX2hhbmRsZSk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4gKwo+ICsJLy8gd2Fp dCBvbiBwb2ludCA1Cj4gKwlzcDEuc3luY29ial9oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsKPiAr CXNwMS5wb2ludCA9IDU7Cj4gKwlyID0gcHRocmVhZF9jcmVhdGUoJndhaXRfdGhyZWFkLCBOVUxM LCBzeW5jb2JqX3dhaXQsICZzcDEpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsKPiAr CS8vIHNpZ25hbCBvbiBwb2ludCAxMAo+ICsJc3AyLnN5bmNvYmpfaGFuZGxlID0gc3luY29ial9o YW5kbGU7Cj4gKwlzcDIucG9pbnQgPSAxMDsKPiArCXIgPSBwdGhyZWFkX2NyZWF0ZSgmc2lnbmFs X3RocmVhZCwgTlVMTCwgc3luY29ial9zaWduYWwsICZzcDIpOwo+ICsJQ1VfQVNTRVJUX0VRVUFM KHIsIDApOwo+ICsKPiArCXIgPSBwdGhyZWFkX2pvaW4od2FpdF90aHJlYWQsICZ0bXApOwo+ICsJ Q1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7Cj4gKwo+ ICsJciA9IHB0aHJlYWRfam9pbihzaWduYWxfdGhyZWFkLCAmdG1wKTsKPiArCUNVX0FTU0VSVF9F UVVBTChyLCAwKTsKPiArCUNVX0FTU0VSVF9FUVVBTCh0bXAsIDApOwo+ICsKPiArCS8vcXVlcnkg dGltZWxpbmUgcGF5bG9hZAo+ICsJciA9IGFtZGdwdV9jc19zeW5jb2JqX3F1ZXJ5KGRldmljZV9o YW5kbGUsICZzeW5jb2JqX2hhbmRsZSwKPiArCQkJCSAgICAmcGF5bG9hZCwgMSk7Cj4gKwlDVV9B U1NFUlRfRVFVQUwociwgMCk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwocGF5bG9hZCwgMTApOwo+ICsK PiArCS8vc2lnbmFsIG9uIHBvaW50IDE2Cj4gKwlzcDMuc3luY29ial9oYW5kbGUgPSBzeW5jb2Jq X2hhbmRsZTsKPiArCXNwMy5wb2ludCA9IDE2Owo+ICsJciA9IHB0aHJlYWRfY3JlYXRlKCZjX3Ro cmVhZCwgTlVMTCwgc3luY29ial9zaWduYWwsICZzcDMpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIs IDApOwo+ICsJLy9DUFUgd2FpdCBvbiBwb2ludCAxNgo+ICsJd2FpdF9wb2ludCA9IDE2Owo+ICsJ dGltZW91dCA9IDA7Cj4gKwljbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRwKTsKPiAr CXRpbWVvdXQgPSB0cC50dl9zZWMgKiAxMDAwMDAwMDAwVUxMICsgdHAudHZfbnNlYzsKPiArCXRp bWVvdXQgKz0gMHgxMDAwMDAwMDAwMDsgLy8xMHMKPiArCXIgPSBhbWRncHVfY3Nfc3luY29ial90 aW1lbGluZV93YWl0KGRldmljZV9oYW5kbGUsICZzeW5jb2JqX2hhbmRsZSwKPiArCQkJCQkgICAg JndhaXRfcG9pbnQsIDEsIHRpbWVvdXQsCj4gKwkJCQkJICAgIERSTV9TWU5DT0JKX1dBSVRfRkxB R1NfV0FJVF9BTEwgfAo+ICsJCQkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9S X1NVQk1JVCwKPiArCQkJCQkgICAgTlVMTCk7Cj4gKwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDAp Owo+ICsJciA9IHB0aHJlYWRfam9pbihjX3RocmVhZCwgJnRtcCk7Cj4gKwlDVV9BU1NFUlRfRVFV QUwociwgMCk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwodG1wLCAwKTsKPiArCj4gKwkvLyBleHBvcnQg cG9pbnQgMTYgYW5kIGltcG9ydCB0byBwb2ludCAxOAo+ICsJciA9IGFtZGdwdV9jc19zeW5jb2Jq X2V4cG9ydF9zeW5jX2ZpbGUyKGRldmljZV9oYW5kbGUsIHN5bmNvYmpfaGFuZGxlLAo+ICsJCQkJ CQkxNiwKPiArCQkJCQkJRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQsCj4g KwkJCQkJCSZzeW5jX2ZkKTsKPiArCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsKPiArCXIgPSBhbWRn cHVfY3Nfc3luY29ial9pbXBvcnRfc3luY19maWxlMihkZXZpY2VfaGFuZGxlLCBzeW5jb2JqX2hh bmRsZSwKPiArCQkJCQkJMTgsIHN5bmNfZmQpOwo+ICsJQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+ ICsJciA9IGFtZGdwdV9jc19zeW5jb2JqX3F1ZXJ5KGRldmljZV9oYW5kbGUsICZzeW5jb2JqX2hh bmRsZSwKPiArCQkJCSAgICAmcGF5bG9hZCwgMSk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7 Cj4gKwlDVV9BU1NFUlRfRVFVQUwocGF5bG9hZCwgMTgpOwo+ICsKPiArCS8vIENQVSBzaWduYWwg b24gcG9pbnQgMjAKPiArCXNpZ25hbF9wb2ludCA9IDIwOwo+ICsJciA9IGFtZGdwdV9jc19zeW5j b2JqX3RpbWVsaW5lX3NpZ25hbChkZXZpY2VfaGFuZGxlLCAmc3luY29ial9oYW5kbGUsCj4gKwkJ CQkJICAgICAgJnNpZ25hbF9wb2ludCwgMSk7Cj4gKwlDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4g KwlyID0gYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRsZSwgJnN5bmNvYmpfaGFu ZGxlLAo+ICsJCQkJICAgICZwYXlsb2FkLCAxKTsKPiArCUNVX0FTU0VSVF9FUVVBTChyLCAwKTsK PiArCUNVX0FTU0VSVF9FUVVBTChwYXlsb2FkLCAyMCk7Cj4gKwo+ICsJciA9IGFtZGdwdV9jc19k ZXN0cm95X3N5bmNvYmooZGV2aWNlX2hhbmRsZSwgc3luY29ial9oYW5kbGUpOwo+ICsJQ1VfQVNT RVJUX0VRVUFMKHIsIDApOwo+ICsKPiArfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVs