From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH libdrm 7/7] add syncobj timeline tests v3 Date: Thu, 16 May 2019 12:09:29 +0200 Message-ID: <212b7506-58cc-fd48-a0cf-4e6098d0d4b1@gmail.com> References: <20190516080714.14980-1-david1.zhou@amd.com> <20190516080714.14980-7-david1.zhou@amd.com> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by gabe.freedesktop.org (Postfix) with ESMTPS id 56B12892E3 for ; Thu, 16 May 2019 10:09:32 +0000 (UTC) Received: by mail-wm1-x342.google.com with SMTP id t5so1487956wmh.3 for ; Thu, 16 May 2019 03:09:32 -0700 (PDT) In-Reply-To: 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: zhoucm1 , Chunming Zhou , Christian.Koenig@amd.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMTYuMDUuMTkgdW0gMTA6MTYgc2NocmllYiB6aG91Y20xOgo+IEkgd2FzIGFibGUgdG8gcHVz aCBjaGFuZ2VzIHRvIGxpYmRybSwgYnV0IG5vdyBzZWVtcyBhZnRlciBsaWJkcm0gaXMgCj4gbWln cmF0ZWQgdG8gZ2l0bGFiLCBJIGNhbm5vdCB5ZXQuIFdoYXQgc3RlcCBkbyBJIG5lZWQgdG8gZ2V0 IGJhY2sgbXkgCj4gcGVybWlzc2lvbj8gSSBhbHJlYWR5IGNhbiBsb2dpbiBpbnRvIGdpdGxhYiB3 aXRoIG9sZCBmcmVlZGVza3RvcCBhY2NvdW50Lgo+Cj4gQENocmlzdGlhbiwgQ2FuIHlvdSBoZWxw IHN1Ym1pdCB0aGlzIHBhdGNoIHNldCB0byBsaWJkcm0gZmlyc3Q/CgpEb25lLiBBbmQgSSB0aGlu ayB5b3UgY2FuIG5vdyByZXF1ZXN0IHdyaXRlIHBlcm1pc3Npb24gdG8gYSByZXBvc2l0b3J5IAp0 aHJvdWdoIHRoZSB3ZWItaW50ZXJmYWNlIGFuZCBhbGwgdGhlICJvd25lcnMiIG9mIHRoZSBwcm9q ZWN0IGNhbiBncmFudCAKdGhhdCB0byB5b3UuCgpDaHJpc3RpYW4uCgo+Cj4KPiBUaGFua3MsCj4K PiAtRGF2aWQKPgo+Cj4gT24gMjAxOeW5tDA15pyIMTbml6UgMTY6MDcsIENodW5taW5nIFpob3Ug d3JvdGU6Cj4+IHYyOiBkcm9wIERSTV9TWU5DT0JKX0NSRUFURV9UWVBFX1RJTUVMSU5FLCBmaXgg dGltZW91dCBjYWxjdWxhdGlvbiwKPj4gwqDCoMKgwqAgZml4IHNvbWUgd2FybmluZ3MKPj4gdjM6 IGFkZCBleHBvcnQvaW1wb3J0IGFuZCBjcHUgc2lnbmFsIHRlc3RpbmcgY2FzZXMKPj4KPj4gU2ln bmVkLW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KPj4gQWNrZWQt Ynk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4gQWNrZWQt Ynk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KPj4g LS0tCj4+IMKgIHRlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbcKgwqDCoMKgIHzCoMKgIDMgKy0KPj4g wqAgdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmPCoMKgIHzCoCAxMSArKwo+PiDCoCB0ZXN0cy9h bWRncHUvYW1kZ3B1X3Rlc3QuaMKgwqAgfMKgIDIxICsrKwo+PiDCoCB0ZXN0cy9hbWRncHUvbWVz b24uYnVpbGTCoMKgwqDCoCB8wqDCoCAyICstCj4+IMKgIHRlc3RzL2FtZGdwdS9zeW5jb2JqX3Rl c3RzLmMgfCAyOTAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gwqAgNSBm aWxlcyBjaGFuZ2VkLCAzMjUgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPj4gwqAgY3Jl YXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2FtZGdwdS9zeW5jb2JqX3Rlc3RzLmMKPj4KPj4gZGlmZiAt LWdpdCBhL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5hbSBiL3Rlc3RzL2FtZGdwdS9NYWtlZmlsZS5h bQo+PiBpbmRleCA0ODI3ODg0OC4uOTIwODgyZDAgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL2FtZGdw dS9NYWtlZmlsZS5hbQo+PiArKysgYi90ZXN0cy9hbWRncHUvTWFrZWZpbGUuYW0KPj4gQEAgLTM0 LDQgKzM0LDUgQEAgYW1kZ3B1X3Rlc3RfU09VUkNFUyA9IFwKPj4gwqDCoMKgwqDCoCB1dmVfaWIu aCBcCj4+IMKgwqDCoMKgwqAgZGVhZGxvY2tfdGVzdHMuYyBcCj4+IMKgwqDCoMKgwqAgdm1fdGVz dHMuY8KgwqDCoCBcCj4+IC3CoMKgwqAgcmFzX3Rlc3RzLmMKPj4gK8KgwqDCoCByYXNfdGVzdHMu YyBcCj4+ICvCoMKgwqAgc3luY29ial90ZXN0cy5jCj4+IGRpZmYgLS1naXQgYS90ZXN0cy9hbWRn cHUvYW1kZ3B1X3Rlc3QuYyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5jCj4+IGluZGV4IDM1 YzhiZjZjLi43MzQwM2ZiNCAxMDA2NDQKPj4gLS0tIGEvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0 LmMKPj4gKysrIGIvdGVzdHMvYW1kZ3B1L2FtZGdwdV90ZXN0LmMKPj4gQEAgLTU3LDYgKzU3LDcg QEAKPj4gwqAgI2RlZmluZSBERUFETE9DS19URVNUU19TVFIgIkRlYWRsb2NrIFRlc3RzIgo+PiDC oCAjZGVmaW5lIFZNX1RFU1RTX1NUUiAiVk0gVGVzdHMiCj4+IMKgICNkZWZpbmUgUkFTX1RFU1RT X1NUUiAiUkFTIFRlc3RzIgo+PiArI2RlZmluZSBTWU5DT0JKX1RJTUVMSU5FX1RFU1RTX1NUUiAi U1lOQ09CSiBUSU1FTElORSBUZXN0cyIKPj4gwqAgwqAgLyoqCj4+IMKgwqAgKsKgIE9wZW4gaGFu ZGxlcyBmb3IgYW1kZ3B1IGRldmljZXMKPj4gQEAgLTEyMyw2ICsxMjQsMTIgQEAgc3RhdGljIENV X1N1aXRlSW5mbyBzdWl0ZXNbXSA9IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC5wQ2xlYW51cEZ1 bmMgPSBzdWl0ZV9yYXNfdGVzdHNfY2xlYW4sCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAucFRlc3Rz ID0gcmFzX3Rlc3RzLAo+PiDCoMKgwqDCoMKgIH0sCj4+ICvCoMKgwqAgewo+PiArwqDCoMKgwqDC oMKgwqAgLnBOYW1lID0gU1lOQ09CSl9USU1FTElORV9URVNUU19TVFIsCj4+ICvCoMKgwqDCoMKg wqDCoCAucEluaXRGdW5jID0gc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19pbml0LAo+PiAr wqDCoMKgwqDCoMKgwqAgLnBDbGVhbnVwRnVuYyA9IHN1aXRlX3N5bmNvYmpfdGltZWxpbmVfdGVz dHNfY2xlYW4sCj4+ICvCoMKgwqDCoMKgwqDCoCAucFRlc3RzID0gc3luY29ial90aW1lbGluZV90 ZXN0cywKPj4gK8KgwqDCoCB9LAo+PiDCoCDCoMKgwqDCoMKgIENVX1NVSVRFX0lORk9fTlVMTCwK Pj4gwqAgfTsKPj4gQEAgLTE3Niw2ICsxODMsMTAgQEAgc3RhdGljIFN1aXRlc19BY3RpdmVfU3Rh dHVzIHN1aXRlc19hY3RpdmVfc3RhdFtdIAo+PiA9IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLnBOYW1lID0gUkFTX1RFU1RTX1NUUiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLnBBY3RpdmUgPSBzdWl0ZV9yYXNfdGVzdHNfZW5hYmxlLAo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgfSwKPj4gK8KgwqDCoMKgwqDCoMKgIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnBO YW1lID0gU1lOQ09CSl9USU1FTElORV9URVNUU19TVFIsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC5wQWN0aXZlID0gc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUsCj4+ICvC oMKgwqDCoMKgwqDCoCB9LAo+PiDCoCB9Owo+PiDCoCDCoCBkaWZmIC0tZ2l0IGEvdGVzdHMvYW1k Z3B1L2FtZGdwdV90ZXN0LmggYi90ZXN0cy9hbWRncHUvYW1kZ3B1X3Rlc3QuaAo+PiBpbmRleCBi Y2QwYmM3ZS4uMzY2NzVlYTMgMTAwNjQ0Cj4+IC0tLSBhL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVz dC5oCj4+ICsrKyBiL3Rlc3RzL2FtZGdwdS9hbWRncHVfdGVzdC5oCj4+IEBAIC0yMTYsNiArMjE2 LDI3IEBAIENVX0JPT0wgc3VpdGVfcmFzX3Rlc3RzX2VuYWJsZSh2b2lkKTsKPj4gwqAgZXh0ZXJu IENVX1Rlc3RJbmZvIHJhc190ZXN0c1tdOwo+PiDCoCDCoCArLyoqCj4+ICsgKiBJbml0aWFsaXpl IHN5bmNvYmogdGltZWxpbmUgdGVzdCBzdWl0ZQo+PiArICovCj4+ICtpbnQgc3VpdGVfc3luY29i al90aW1lbGluZV90ZXN0c19pbml0KCk7Cj4+ICsKPj4gKy8qKgo+PiArICogRGVpbml0aWFsaXpl IHN5bmNvYmogdGltZWxpbmUgdGVzdCBzdWl0ZQo+PiArICovCj4+ICtpbnQgc3VpdGVfc3luY29i al90aW1lbGluZV90ZXN0c19jbGVhbigpOwo+PiArCj4+ICsvKioKPj4gKyAqIERlY2lkZSBpZiB0 aGUgc3VpdGUgaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9yIG5vdC4KPj4gKyAqLwo+PiArQ1VfQk9P TCBzdWl0ZV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3RzX2VuYWJsZSh2b2lkKTsKPj4gKwo+PiArLyoq Cj4+ICsgKiBUZXN0cyBpbiBzeW5jb2JqIHRpbWVsaW5lIHRlc3Qgc3VpdGUKPj4gKyAqLwo+PiAr ZXh0ZXJuIENVX1Rlc3RJbmZvIHN5bmNvYmpfdGltZWxpbmVfdGVzdHNbXTsKPj4gKwo+PiArCj4+ IMKgIC8qKgo+PiDCoMKgICogSGVscGVyIGZ1bmN0aW9ucwo+PiDCoMKgICovCj4+IGRpZmYgLS1n aXQgYS90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQgYi90ZXN0cy9hbWRncHUvbWVzb24uYnVpbGQK Pj4gaW5kZXggOTVlZDkzMDUuLjE3MjZjYjQzIDEwMDY0NAo+PiAtLS0gYS90ZXN0cy9hbWRncHUv bWVzb24uYnVpbGQKPj4gKysrIGIvdGVzdHMvYW1kZ3B1L21lc29uLmJ1aWxkCj4+IEBAIC0yNCw3 ICsyNCw3IEBAIGlmIGRlcF9jdW5pdC5mb3VuZCgpCj4+IMKgwqDCoMKgwqAgZmlsZXMoCj4+IMKg wqDCoMKgwqDCoMKgICdhbWRncHVfdGVzdC5jJywgJ2Jhc2ljX3Rlc3RzLmMnLCAnYm9fdGVzdHMu YycsICdjc190ZXN0cy5jJywKPj4gwqDCoMKgwqDCoMKgwqAgJ3ZjZV90ZXN0cy5jJywgJ3V2ZF9l bmNfdGVzdHMuYycsICd2Y25fdGVzdHMuYycsIAo+PiAnZGVhZGxvY2tfdGVzdHMuYycsCj4+IC3C oMKgwqDCoMKgICd2bV90ZXN0cy5jJywgJ3Jhc190ZXN0cy5jJywKPj4gK8KgwqDCoMKgwqAgJ3Zt X3Rlc3RzLmMnLCAncmFzX3Rlc3RzLmMnLCAnc3luY29ial90ZXN0cy5jJywKPj4gwqDCoMKgwqDC oCApLAo+PiDCoMKgwqDCoMKgIGRlcGVuZGVuY2llcyA6IFtkZXBfY3VuaXQsIGRlcF90aHJlYWRz XSwKPj4gwqDCoMKgwqDCoCBpbmNsdWRlX2RpcmVjdG9yaWVzIDogW2luY19yb290LCBpbmNfZHJt LCAKPj4gaW5jbHVkZV9kaXJlY3RvcmllcygnLi4vLi4vYW1kZ3B1JyldLAo+PiBkaWZmIC0tZ2l0 IGEvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYyBiL3Rlc3RzL2FtZGdwdS9zeW5jb2JqX3Rl c3RzLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMDAuLmEwYzYyN2Q3 Cj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvdGVzdHMvYW1kZ3B1L3N5bmNvYmpfdGVzdHMuYwo+ PiBAQCAtMCwwICsxLDI5MCBAQAo+PiArLyoKPj4gKyAqIENvcHlyaWdodCAyMDE3IEFkdmFuY2Vk IE1pY3JvIERldmljZXMsIEluYy4KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiAKPj4gb2J0YWluaW5nIGEKPj4g KyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp bGVzICh0aGUgCj4+ICJTb2Z0d2FyZSIpLAo+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgCj4+IGxpbWl0YXRpb24KPj4g KyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0 cmlidXRlLCAKPj4gc3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIAo+PiB0aGUKPj4gKyAqIFNv ZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNv bmRpdGlvbnM6Cj4+ICsgKgo+PiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgCj4+IGluY2x1ZGVkIGluCj4+ICsgKiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KPj4gKyAqCj4+ ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgCj4+IEVYUFJFU1MgT1IKPj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQg Tk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgCj4+IE1FUkNIQU5UQUJJTElUWSwKPj4g KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu wqAgSU4gTk8gCj4+IEVWRU5UIFNIQUxMCj4+ICsgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBP UiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIAo+PiBEQU1BR0VTIE9SCj4+ICsg KiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIAo+PiBPVEhFUldJU0UsCj4+ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05O RUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSAKPj4gVVNFIE9SCj4+ICsgKiBPVEhFUiBE RUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCj4+ICsgKgo+PiArKi8KPj4gKwo+PiArI2luY2x1ZGUg IkNVbml0L0Jhc2ljLmgiCj4+ICsKPj4gKyNpbmNsdWRlICJhbWRncHVfdGVzdC5oIgo+PiArI2lu Y2x1ZGUgImFtZGdwdV9kcm0uaCIKPj4gKyNpbmNsdWRlICJhbWRncHVfaW50ZXJuYWwuaCIKPj4g KyNpbmNsdWRlIDxwdGhyZWFkLmg+Cj4+ICsKPj4gK3N0YXRpY8KgIGFtZGdwdV9kZXZpY2VfaGFu ZGxlIGRldmljZV9oYW5kbGU7Cj4+ICtzdGF0aWPCoCB1aW50MzJfdMKgIG1ham9yX3ZlcnNpb247 Cj4+ICtzdGF0aWPCoCB1aW50MzJfdMKgIG1pbm9yX3ZlcnNpb247Cj4+ICsKPj4gK3N0YXRpYyB2 b2lkIGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Qodm9pZCk7Cj4+ICsKPj4gK0NVX0JPT0wg c3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19lbmFibGUodm9pZCkKPj4gK3sKPj4gK8KgwqDC oCByZXR1cm4gQ1VfVFJVRTsKPj4gK30KPj4gKwo+PiAraW50IHN1aXRlX3N5bmNvYmpfdGltZWxp bmVfdGVzdHNfaW5pdCh2b2lkKQo+PiArewo+PiArwqDCoMKgIGludCByOwo+PiArCj4+ICvCoMKg wqAgciA9IGFtZGdwdV9kZXZpY2VfaW5pdGlhbGl6ZShkcm1fYW1kZ3B1WzBdLCAmbWFqb3JfdmVy c2lvbiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmbWlub3JfdmVy c2lvbiwgJmRldmljZV9oYW5kbGUpOwo+PiArCj4+ICvCoMKgwqAgaWYgKHIpIHsKPj4gK8KgwqDC oMKgwqDCoMKgIGlmICgociA9PSAtRUFDQ0VTKSAmJiAoZXJybm8gPT0gRUFDQ0VTKSkKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJpbnRmKCJcblxuRXJyb3I6JXMuICIKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiSGludDpUcnkgdG8gcnVuIHRoaXMgdGVzdCBwcm9ncmFt IGFzIHJvb3QuIiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJlcnJvcihl cnJubykpOwo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIENVRV9TSU5JVF9GQUlMRUQ7Cj4+ICvC oMKgwqAgfQo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIENVRV9TVUNDRVNTOwo+PiArfQo+PiArCj4+ ICtpbnQgc3VpdGVfc3luY29ial90aW1lbGluZV90ZXN0c19jbGVhbih2b2lkKQo+PiArewo+PiAr wqDCoMKgIGludCByID0gYW1kZ3B1X2RldmljZV9kZWluaXRpYWxpemUoZGV2aWNlX2hhbmRsZSk7 Cj4+ICsKPj4gK8KgwqDCoCBpZiAociA9PSAwKQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIENV RV9TVUNDRVNTOwo+PiArwqDCoMKgIGVsc2UKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBDVUVf U0NMRUFOX0ZBSUxFRDsKPj4gK30KPj4gKwo+PiArCj4+ICtDVV9UZXN0SW5mbyBzeW5jb2JqX3Rp bWVsaW5lX3Rlc3RzW10gPSB7Cj4+ICvCoMKgwqAgeyAic3luY29iaiB0aW1lbGluZSB0ZXN0IizC oCBhbWRncHVfc3luY29ial90aW1lbGluZV90ZXN0IH0sCj4+ICvCoMKgwqAgQ1VfVEVTVF9JTkZP X05VTEwsCj4+ICt9Owo+PiArCj4+ICsjZGVmaW5lIEdGWF9DT01QVVRFX05PUMKgIDB4ZmZmZjEw MDAKPj4gKyNkZWZpbmUgU0RNQV9OT1DCoCAweDAKPj4gK3N0YXRpYyBpbnQgc3luY29ial9jb21t YW5kX3N1Ym1pc3Npb25faGVscGVyKHVpbnQzMl90IAo+PiBzeW5jb2JqX2hhbmRsZSwgYm9vbAo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdhaXRf b3Jfc2lnbmFsLCB1aW50NjRfdCBwb2ludCkKPj4gK3sKPj4gK8KgwqDCoCBhbWRncHVfY29udGV4 dF9oYW5kbGUgY29udGV4dF9oYW5kbGU7Cj4+ICvCoMKgwqAgYW1kZ3B1X2JvX2hhbmRsZSBpYl9y ZXN1bHRfaGFuZGxlOwo+PiArwqDCoMKgIHZvaWQgKmliX3Jlc3VsdF9jcHU7Cj4+ICvCoMKgwqAg dWludDY0X3QgaWJfcmVzdWx0X21jX2FkZHJlc3M7Cj4+ICvCoMKgwqAgc3RydWN0IGRybV9hbWRn cHVfY3NfY2h1bmsgY2h1bmtzWzJdOwo+PiArwqDCoMKgIHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2No dW5rX2RhdGEgY2h1bmtfZGF0YTsKPj4gK8KgwqDCoCBzdHJ1Y3QgZHJtX2FtZGdwdV9jc19jaHVu a19zeW5jb2JqIHN5bmNvYmpfZGF0YTsKPj4gK8KgwqDCoCBzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNl IGZlbmNlX3N0YXR1czsKPj4gK8KgwqDCoCBhbWRncHVfYm9fbGlzdF9oYW5kbGUgYm9fbGlzdDsK Pj4gK8KgwqDCoCBhbWRncHVfdmFfaGFuZGxlIHZhX2hhbmRsZTsKPj4gK8KgwqDCoCB1aW50MzJf dCBleHBpcmVkLCBmbGFnczsKPj4gK8KgwqDCoCBpbnQgaSwgcjsKPj4gK8KgwqDCoCB1aW50NjRf dCBzZXFfbm87Cj4+ICvCoMKgwqAgc3RhdGljIHVpbnQzMl90ICpwdHI7Cj4+ICsKPj4gK8KgwqDC oCByID0gYW1kZ3B1X2NzX2N0eF9jcmVhdGUoZGV2aWNlX2hhbmRsZSwgJmNvbnRleHRfaGFuZGxl KTsKPj4gK8KgwqDCoCBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+ICsKPj4gK8KgwqDCoCByID0g YW1kZ3B1X2JvX2FsbG9jX2FuZF9tYXAoZGV2aWNlX2hhbmRsZSwgNDA5NiwgNDA5NiwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFNREdQVV9HRU1fRE9NQUlOX0dU VCwgMCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZpYl9yZXN1 bHRfaGFuZGxlLCAmaWJfcmVzdWx0X2NwdSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICZpYl9yZXN1bHRfbWNfYWRkcmVzcywgJnZhX2hhbmRsZSk7Cj4+ICvCoMKg wqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+PiArCj4+ICvCoMKgwqAgciA9IGFtZGdwdV9nZXRf Ym9fbGlzdChkZXZpY2VfaGFuZGxlLCBpYl9yZXN1bHRfaGFuZGxlLCBOVUxMLAo+PiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZib19saXN0KTsKPj4gK8KgwqDCoCBDVV9B U1NFUlRfRVFVQUwociwgMCk7Cj4+ICsKPj4gK8KgwqDCoCBwdHIgPSBpYl9yZXN1bHRfY3B1Owo+ PiArCj4+ICvCoMKgwqAgZm9yIChpID0gMDsgaSA8IDE2OyArK2kpCj4+ICvCoMKgwqDCoMKgwqDC oCBwdHJbaV0gPSB3YWl0X29yX3NpZ25hbCA/IEdGWF9DT01QVVRFX05PUDogU0RNQV9OT1A7Cj4+ ICsKPj4gK8KgwqDCoCBjaHVua3NbMF0uY2h1bmtfaWQgPSBBTURHUFVfQ0hVTktfSURfSUI7Cj4+ ICvCoMKgwqAgY2h1bmtzWzBdLmxlbmd0aF9kdyA9IHNpemVvZihzdHJ1Y3QgZHJtX2FtZGdwdV9j c19jaHVua19pYikgLyA0Owo+PiArwqDCoMKgIGNodW5rc1swXS5jaHVua19kYXRhID0gKHVpbnQ2 NF90KSh1aW50cHRyX3QpJmNodW5rX2RhdGE7Cj4+ICvCoMKgwqAgY2h1bmtfZGF0YS5pYl9kYXRh Ll9wYWQgPSAwOwo+PiArwqDCoMKgIGNodW5rX2RhdGEuaWJfZGF0YS52YV9zdGFydCA9IGliX3Jl c3VsdF9tY19hZGRyZXNzOwo+PiArwqDCoMKgIGNodW5rX2RhdGEuaWJfZGF0YS5pYl9ieXRlcyA9 IDE2ICogNDsKPj4gK8KgwqDCoCBjaHVua19kYXRhLmliX2RhdGEuaXBfdHlwZSA9IHdhaXRfb3Jf c2lnbmFsID8gQU1ER1BVX0hXX0lQX0dGWCA6Cj4+ICvCoMKgwqDCoMKgwqDCoCBBTURHUFVfSFdf SVBfRE1BOwo+PiArwqDCoMKgIGNodW5rX2RhdGEuaWJfZGF0YS5pcF9pbnN0YW5jZSA9IDA7Cj4+ ICvCoMKgwqAgY2h1bmtfZGF0YS5pYl9kYXRhLnJpbmcgPSAwOwo+PiArwqDCoMKgIGNodW5rX2Rh dGEuaWJfZGF0YS5mbGFncyA9IDA7Cj4+ICsKPj4gK8KgwqDCoCBjaHVua3NbMV0uY2h1bmtfaWQg PSB3YWl0X29yX3NpZ25hbCA/Cj4+ICvCoMKgwqDCoMKgwqDCoCBBTURHUFVfQ0hVTktfSURfU1lO Q09CSl9USU1FTElORV9XQUlUIDoKPj4gK8KgwqDCoMKgwqDCoMKgIEFNREdQVV9DSFVOS19JRF9T WU5DT0JKX1RJTUVMSU5FX1NJR05BTDsKPj4gK8KgwqDCoCBjaHVua3NbMV0ubGVuZ3RoX2R3ID0g c2l6ZW9mKHN0cnVjdCBkcm1fYW1kZ3B1X2NzX2NodW5rX3N5bmNvYmopIAo+PiAvIDQ7Cj4+ICvC oMKgwqAgY2h1bmtzWzFdLmNodW5rX2RhdGEgPSAodWludDY0X3QpKHVpbnRwdHJfdCkmc3luY29i al9kYXRhOwo+PiArwqDCoMKgIHN5bmNvYmpfZGF0YS5oYW5kbGUgPSBzeW5jb2JqX2hhbmRsZTsK Pj4gK8KgwqDCoCBzeW5jb2JqX2RhdGEucG9pbnQgPSBwb2ludDsKPj4gK8KgwqDCoCBzeW5jb2Jq X2RhdGEuZmxhZ3MgPSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVDsKPj4g Kwo+PiArwqDCoMKgIHIgPSBhbWRncHVfY3Nfc3VibWl0X3JhdyhkZXZpY2VfaGFuZGxlLAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGV4dF9oYW5kbGUsCj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib19saXN0LAo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgMiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGNodW5rcywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZzZXFfbm8pOwo+ PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4gKwo+PiArCj4+ICvCoMKgwqAgbWVt c2V0KCZmZW5jZV9zdGF0dXMsIDAsIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2NzX2ZlbmNlKSk7Cj4+ ICvCoMKgwqAgZmVuY2Vfc3RhdHVzLmNvbnRleHQgPSBjb250ZXh0X2hhbmRsZTsKPj4gK8KgwqDC oCBmZW5jZV9zdGF0dXMuaXBfdHlwZSA9IHdhaXRfb3Jfc2lnbmFsID8gQU1ER1BVX0hXX0lQX0dG WDoKPj4gK8KgwqDCoMKgwqDCoMKgIEFNREdQVV9IV19JUF9ETUE7Cj4+ICvCoMKgwqAgZmVuY2Vf c3RhdHVzLmlwX2luc3RhbmNlID0gMDsKPj4gK8KgwqDCoCBmZW5jZV9zdGF0dXMucmluZyA9IDA7 Cj4+ICvCoMKgwqAgZmVuY2Vfc3RhdHVzLmZlbmNlID0gc2VxX25vOwo+PiArCj4+ICvCoMKgwqAg ciA9IGFtZGdwdV9jc19xdWVyeV9mZW5jZV9zdGF0dXMoJmZlbmNlX3N0YXR1cywKPj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BVX1RJTUVPVVRfSU5GSU5JVEUsMCwgJmV4cGlyZWQpOwo+ PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4gKwo+PiArwqDCoMKgIHIgPSBhbWRn cHVfYm9fbGlzdF9kZXN0cm95KGJvX2xpc3QpOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChy LCAwKTsKPj4gKwo+PiArwqDCoMKgIHIgPSBhbWRncHVfYm9fdW5tYXBfYW5kX2ZyZWUoaWJfcmVz dWx0X2hhbmRsZSwgdmFfaGFuZGxlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBpYl9yZXN1bHRfbWNfYWRkcmVzcywgNDA5Nik7Cj4+ICvCoMKgwqAgQ1VfQVNT RVJUX0VRVUFMKHIsIDApOwo+PiArCj4+ICvCoMKgwqAgciA9IGFtZGdwdV9jc19jdHhfZnJlZShj b250ZXh0X2hhbmRsZSk7Cj4+ICvCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+PiArCj4+ ICvCoMKgwqAgcmV0dXJuIHI7Cj4+ICt9Cj4+ICsKPj4gK3N0cnVjdCBzeW5jb2JqX3BvaW50IHsK Pj4gK8KgwqDCoCB1aW50MzJfdCBzeW5jb2JqX2hhbmRsZTsKPj4gK8KgwqDCoCB1aW50NjRfdCBw b2ludDsKPj4gK307Cj4+ICsKPj4gK3N0YXRpYyB2b2lkICpzeW5jb2JqX3dhaXQodm9pZCAqZGF0 YSkKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1Y3Qgc3luY29ial9wb2ludCAqc3AgPSAoc3RydWN0IHN5 bmNvYmpfcG9pbnQgKilkYXRhOwo+PiArwqDCoMKgIGludCByOwo+PiArCj4+ICvCoMKgwqAgciA9 IHN5bmNvYmpfY29tbWFuZF9zdWJtaXNzaW9uX2hlbHBlcihzcC0+c3luY29ial9oYW5kbGUsIHRy dWUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzcC0+cG9pbnQpOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4gKwo+PiAr wqDCoMKgIHJldHVybiAodm9pZCAqKShsb25nKXI7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lk ICpzeW5jb2JqX3NpZ25hbCh2b2lkICpkYXRhKQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBzeW5j b2JqX3BvaW50ICpzcCA9IChzdHJ1Y3Qgc3luY29ial9wb2ludCAqKWRhdGE7Cj4+ICvCoMKgwqAg aW50IHI7Cj4+ICsKPj4gK8KgwqDCoCByID0gc3luY29ial9jb21tYW5kX3N1Ym1pc3Npb25faGVs cGVyKHNwLT5zeW5jb2JqX2hhbmRsZSwgZmFsc2UsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzcC0+cG9pbnQpOwo+PiArwqDCoMKgIENVX0FT U0VSVF9FUVVBTChyLCAwKTsKPj4gKwo+PiArwqDCoMKgIHJldHVybiAodm9pZCAqKShsb25nKXI7 Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGFtZGdwdV9zeW5jb2JqX3RpbWVsaW5lX3Rlc3Qo dm9pZCkKPj4gK3sKPj4gK8KgwqDCoCBzdGF0aWMgcHRocmVhZF90IHdhaXRfdGhyZWFkOwo+PiAr wqDCoMKgIHN0YXRpYyBwdGhyZWFkX3Qgc2lnbmFsX3RocmVhZDsKPj4gK8KgwqDCoCBzdGF0aWMg cHRocmVhZF90IGNfdGhyZWFkOwo+PiArwqDCoMKgIHN0cnVjdCBzeW5jb2JqX3BvaW50IHNwMSwg c3AyLCBzcDM7Cj4+ICvCoMKgwqAgdWludDMyX3Qgc3luY29ial9oYW5kbGU7Cj4+ICvCoMKgwqAg dWludDY0X3QgcGF5bG9hZDsKPj4gK8KgwqDCoCB1aW50NjRfdCB3YWl0X3BvaW50LCBzaWduYWxf cG9pbnQ7Cj4+ICvCoMKgwqAgdWludDY0X3QgdGltZW91dDsKPj4gK8KgwqDCoCBzdHJ1Y3QgdGlt ZXNwZWMgdHA7Cj4+ICvCoMKgwqAgaW50IHIsIHN5bmNfZmQ7Cj4+ICvCoMKgwqAgdm9pZCAqdG1w Owo+PiArCj4+ICvCoMKgwqAgciA9wqAgYW1kZ3B1X2NzX2NyZWF0ZV9zeW5jb2JqMihkZXZpY2Vf aGFuZGxlLCAwLCAmc3luY29ial9oYW5kbGUpOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChy LCAwKTsKPj4gKwo+PiArwqDCoMKgIC8vIHdhaXQgb24gcG9pbnQgNQo+PiArwqDCoMKgIHNwMS5z eW5jb2JqX2hhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOwo+PiArwqDCoMKgIHNwMS5wb2ludCA9IDU7 Cj4+ICvCoMKgwqAgciA9IHB0aHJlYWRfY3JlYXRlKCZ3YWl0X3RocmVhZCwgTlVMTCwgc3luY29i al93YWl0LCAmc3AxKTsKPj4gK8KgwqDCoCBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+ICsKPj4g K8KgwqDCoCAvLyBzaWduYWwgb24gcG9pbnQgMTAKPj4gK8KgwqDCoCBzcDIuc3luY29ial9oYW5k bGUgPSBzeW5jb2JqX2hhbmRsZTsKPj4gK8KgwqDCoCBzcDIucG9pbnQgPSAxMDsKPj4gK8KgwqDC oCByID0gcHRocmVhZF9jcmVhdGUoJnNpZ25hbF90aHJlYWQsIE5VTEwsIHN5bmNvYmpfc2lnbmFs LCAmc3AyKTsKPj4gK8KgwqDCoCBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+ICsKPj4gK8KgwqDC oCByID0gcHRocmVhZF9qb2luKHdhaXRfdGhyZWFkLCAmdG1wKTsKPj4gK8KgwqDCoCBDVV9BU1NF UlRfRVFVQUwociwgMCk7Cj4+ICvCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHRtcCwgMCk7Cj4+ICsK Pj4gK8KgwqDCoCByID0gcHRocmVhZF9qb2luKHNpZ25hbF90aHJlYWQsICZ0bXApOwo+PiArwqDC oMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4gK8KgwqDCoCBDVV9BU1NFUlRfRVFVQUwodG1w LCAwKTsKPj4gKwo+PiArwqDCoMKgIC8vcXVlcnkgdGltZWxpbmUgcGF5bG9hZAo+PiArwqDCoMKg IHIgPSBhbWRncHVfY3Nfc3luY29ial9xdWVyeShkZXZpY2VfaGFuZGxlLCAmc3luY29ial9oYW5k bGUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmcGF5bG9hZCwg MSk7Cj4+ICvCoMKgwqAgQ1VfQVNTRVJUX0VRVUFMKHIsIDApOwo+PiArwqDCoMKgIENVX0FTU0VS VF9FUVVBTChwYXlsb2FkLCAxMCk7Cj4+ICsKPj4gK8KgwqDCoCAvL3NpZ25hbCBvbiBwb2ludCAx Ngo+PiArwqDCoMKgIHNwMy5zeW5jb2JqX2hhbmRsZSA9IHN5bmNvYmpfaGFuZGxlOwo+PiArwqDC oMKgIHNwMy5wb2ludCA9IDE2Owo+PiArwqDCoMKgIHIgPSBwdGhyZWFkX2NyZWF0ZSgmY190aHJl YWQsIE5VTEwsIHN5bmNvYmpfc2lnbmFsLCAmc3AzKTsKPj4gK8KgwqDCoCBDVV9BU1NFUlRfRVFV QUwociwgMCk7Cj4+ICvCoMKgwqAgLy9DUFUgd2FpdCBvbiBwb2ludCAxNgo+PiArwqDCoMKgIHdh aXRfcG9pbnQgPSAxNjsKPj4gK8KgwqDCoCB0aW1lb3V0ID0gMDsKPj4gK8KgwqDCoCBjbG9ja19n ZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnRwKTsKPj4gK8KgwqDCoCB0aW1lb3V0ID0gdHAudHZf c2VjICogMTAwMDAwMDAwMFVMTCArIHRwLnR2X25zZWM7Cj4+ICvCoMKgwqAgdGltZW91dCArPSAw eDEwMDAwMDAwMDAwOyAvLzEwcwo+PiArwqDCoMKgIHIgPSBhbWRncHVfY3Nfc3luY29ial90aW1l bGluZV93YWl0KGRldmljZV9oYW5kbGUsICZzeW5jb2JqX2hhbmRsZSwKPj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJndhaXRfcG9pbnQsIDEsIHRpbWVv dXQsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERS TV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgfAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9S X1NVQk1JVCwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgTlVMTCk7Cj4+ICsKPj4gK8KgwqDCoCBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+ICvCoMKg wqAgciA9IHB0aHJlYWRfam9pbihjX3RocmVhZCwgJnRtcCk7Cj4+ICvCoMKgwqAgQ1VfQVNTRVJU X0VRVUFMKHIsIDApOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTCh0bXAsIDApOwo+PiArCj4+ ICvCoMKgwqAgLy8gZXhwb3J0IHBvaW50IDE2IGFuZCBpbXBvcnQgdG8gcG9pbnQgMTgKPj4gK8Kg wqDCoCByID0gYW1kZ3B1X2NzX3N5bmNvYmpfZXhwb3J0X3N5bmNfZmlsZTIoZGV2aWNlX2hhbmRs ZSwgCj4+IHN5bmNvYmpfaGFuZGxlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAxNiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZzeW5jX2Zk KTsKPj4gK8KgwqDCoCBDVV9BU1NFUlRfRVFVQUwociwgMCk7Cj4+ICvCoMKgwqAgciA9IGFtZGdw dV9jc19zeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGUyKGRldmljZV9oYW5kbGUsIAo+PiBzeW5jb2Jq X2hhbmRsZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgMTgsIHN5bmNfZmQpOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4gK8Kg wqDCoCByID0gYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRsZSwgJnN5bmNvYmpf aGFuZGxlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnBheWxv YWQsIDEpOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4gK8KgwqDCoCBDVV9B U1NFUlRfRVFVQUwocGF5bG9hZCwgMTgpOwo+PiArCj4+ICvCoMKgwqAgLy8gQ1BVIHNpZ25hbCBv biBwb2ludCAyMAo+PiArwqDCoMKgIHNpZ25hbF9wb2ludCA9IDIwOwo+PiArwqDCoMKgIHIgPSBh bWRncHVfY3Nfc3luY29ial90aW1lbGluZV9zaWduYWwoZGV2aWNlX2hhbmRsZSwgCj4+ICZzeW5j b2JqX2hhbmRsZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICZzaWduYWxfcG9pbnQsIDEpOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChy LCAwKTsKPj4gK8KgwqDCoCByID0gYW1kZ3B1X2NzX3N5bmNvYmpfcXVlcnkoZGV2aWNlX2hhbmRs ZSwgJnN5bmNvYmpfaGFuZGxlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgJnBheWxvYWQsIDEpOwo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4g K8KgwqDCoCBDVV9BU1NFUlRfRVFVQUwocGF5bG9hZCwgMjApOwo+PiArCj4+ICvCoMKgwqAgciA9 IGFtZGdwdV9jc19kZXN0cm95X3N5bmNvYmooZGV2aWNlX2hhbmRsZSwgc3luY29ial9oYW5kbGUp Owo+PiArwqDCoMKgIENVX0FTU0VSVF9FUVVBTChyLCAwKTsKPj4gKwo+PiArfQo+Cj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFp bGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=