From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 3/5] drm: add timeline support for syncobj export/import Date: Fri, 2 Nov 2018 09:46:13 +0100 Message-ID: <8dcbdee2-0c0a-2b59-b120-d0a3d9fd63b9@gmail.com> References: <20181102082517.4456-1-david1.zhou@amd.com> <20181102082517.4456-3-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-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5DAC589F2E for ; Fri, 2 Nov 2018 08:46:16 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id d17-v6so1109131wre.11 for ; Fri, 02 Nov 2018 01:46:16 -0700 (PDT) In-Reply-To: <20181102082517.4456-3-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 , dri-devel@lists.freedesktop.org Cc: Dave Airlie , Daniel Rakos , =?UTF-8?Q?Christian_K=c3=b6nig?= , Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org QW0gMDIuMTEuMTggdW0gMDk6MjUgc2NocmllYiBDaHVubWluZyBaaG91Ogo+IHVzZXIgc3BhY2Ug Y2FuIHNwZWNpZnkgdGltZWxpbmUgcG9pbnQgZmVuY2UgdG8gZXhwb3J0L2ltcG9ydC4KPgo+IFNp Z25lZC1vZmYtYnk6IENodW5taW5nIFpob3UgPGRhdmlkMS56aG91QGFtZC5jb20+Cj4gQ2M6IERh bmllbCBSYWtvcyA8RGFuaWVsLlJha29zQGFtZC5jb20+Cj4gQ2M6IEphc29uIEVrc3RyYW5kIDxq YXNvbkBqbGVrc3RyYW5kLm5ldD4KPiBDYzogQmFzIE5pZXV3ZW5odWl6ZW4gPGJhc0BiYXNuaWV1 d2VuaHVpemVuLm5sPgo+IENjOiBEYXZlIEFpcmxpZSA8YWlybGllZEByZWRoYXQuY29tPgo+IENj OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gQ2M6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgoKIEZyb20gdGhlIGNvZGluZyBpdCBs b29rcyBnb29kIHRvIG1lLCBidXQgSSBjYW4ndCBqdWRnZSBpZiB0aGF0IHJlYWxseSAKbWFrZXMg c2Vuc2UgdG8gZXhwb3J0L2ltcG9ydCBpbmRpdmlkdWFsIHBvaW50cy4KCkkgd291bGQgaGF2ZSBy YXRoZXIgZXhwZWN0ZWQgdGhhdCBhbHdheXMgdGhlIHdob2xlIHRpbWVsaW5lIGlzIApleHBvcnRl ZC9pbXBvcnRlZC4gT3RoZXJ3aXNlIHRoZSB3aG9sZSB0aGluZyB3aXRoIHdhaXRpbmcgZm9yIHN5 bmMgCnBvaW50cyB0byBhcHBlYXIgZG9lc24ndCByZWFsbHkgbWFrZSBzZW5zZSB0byBtZS4KCkNo cmlzdGlhbi4KCj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggfCAgNCAr Kwo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jICAgIHwgIDQgKysKPiAgIGRyaXZlcnMv Z3B1L2RybS9kcm1fc3luY29iai5jICB8IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KPiAgIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICAgICB8IDExICsrKysrCj4gICA0 IGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJt L2RybV9pbnRlcm5hbC5oCj4gaW5kZXggOWM0ODI2NDExYTNjLi41YWQ2Y2JkYjY4YWIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gQEAgLTE4MSw2ICsxODEsMTAgQEAgaW50IGRybV9zeW5j b2JqX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAo+ICAgCQkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKPiAgIGludCBkcm1f c3luY29ial9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAq ZGF0YSwKPiAgIAkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7Cj4gK2ludCBk cm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCj4gKwkJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwo+ICtp bnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+ICsJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsK PiAgIGludCBkcm1fc3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCj4gICAJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7Cj4gICBp bnQgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiBpbmRleCA3NTc4ZWY2ZGMxZDEuLjM2NGQy NmU5NDljZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiBAQCAtNjczLDYgKzY3MywxMCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKPiAgIAkJICAg ICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAo+ICAgCURSTV9JT0NUTF9ERUYoRFJN X0lPQ1RMX1NZTkNPQkpfRkRfVE9fSEFORExFLCBkcm1fc3luY29ial9mZF90b19oYW5kbGVfaW9j dGwsCj4gICAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKPiArCURSTV9J T0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfSEFORExFX1RPX0ZEMiwgZHJtX3N5bmNvYmpfaGFu ZGxlX3RvX2ZkX2lvY3RsMiwKPiArCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExP VyksCj4gKwlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RPX0hBTkRMRTIsIGRy bV9zeW5jb2JqX2ZkX3RvX2hhbmRsZV9pb2N0bDIsCj4gKwkJICAgICAgRFJNX1VOTE9DS0VEfERS TV9SRU5ERVJfQUxMT1cpLAo+ICAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfV0FJ VCwgZHJtX3N5bmNvYmpfd2FpdF9pb2N0bCwKPiAgIAkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9S RU5ERVJfQUxMT1cpLAo+ICAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJ TkVfV0FJVCwgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bCwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNv YmouYwo+IGluZGV4IDlhZDU4ZDBkMjFjZC4uZGZmYzQyYmEyZjkxIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9z eW5jb2JqLmMKPiBAQCAtNjc3LDcgKzY3Nyw3IEBAIHN0YXRpYyBpbnQgZHJtX3N5bmNvYmpfZmRf dG9faGFuZGxlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlLAo+ICAgfQo+ICAgCj4gICBz dGF0aWMgaW50IGRybV9zeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGVfZmVuY2Uoc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXZhdGUsCj4gLQkJCQkJICAgICAgaW50IGZkLCBpbnQgaGFuZGxlKQo+ICsJ CQkJCSAgICAgIGludCBmZCwgaW50IGhhbmRsZSwgdWludDY0X3QgcG9pbnQpCj4gICB7Cj4gICAJ c3RydWN0IGRtYV9mZW5jZSAqZmVuY2UgPSBzeW5jX2ZpbGVfZ2V0X2ZlbmNlKGZkKTsKPiAgIAlz dHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmo7Cj4gQEAgLTY5MSwxNCArNjkxLDE0IEBAIHN0YXRp YyBpbnQgZHJtX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZV9mZW5jZShzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdmF0ZSwKPiAgIAkJcmV0dXJuIC1FTk9FTlQ7Cj4gICAJfQo+ICAgCj4gLQlkcm1f c3luY29ial9yZXBsYWNlX2ZlbmNlKHN5bmNvYmosIDAsIGZlbmNlKTsKPiArCWRybV9zeW5jb2Jq X3JlcGxhY2VfZmVuY2Uoc3luY29iaiwgcG9pbnQsIGZlbmNlKTsKPiAgIAlkbWFfZmVuY2VfcHV0 KGZlbmNlKTsKPiAgIAlkcm1fc3luY29ial9wdXQoc3luY29iaik7Cj4gICAJcmV0dXJuIDA7Cj4g ICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgZHJtX3N5bmNvYmpfZXhwb3J0X3N5bmNfZmlsZShzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKPiAtCQkJCQlpbnQgaGFuZGxlLCBpbnQgKnBfZmQp Cj4gKwkJCQkJaW50IGhhbmRsZSwgdWludDY0X3QgcG9pbnQsIGludCAqcF9mZCkKPiAgIHsKPiAg IAlpbnQgcmV0Owo+ICAgCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+IEBAIC03MDgsNyArNzA4 LDcgQEAgc3RhdGljIGludCBkcm1fc3luY29ial9leHBvcnRfc3luY19maWxlKHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2YXRlLAo+ICAgCWlmIChmZCA8IDApCj4gICAJCXJldHVybiBmZDsKPiAg IAo+IC0JcmV0ID0gZHJtX3N5bmNvYmpfZmluZF9mZW5jZShmaWxlX3ByaXZhdGUsIGhhbmRsZSwg MCwgMCwgJmZlbmNlKTsKPiArCXJldCA9IGRybV9zeW5jb2JqX2ZpbmRfZmVuY2UoZmlsZV9wcml2 YXRlLCBoYW5kbGUsIHBvaW50LCAwLCAmZmVuY2UpOwo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8g ZXJyX3B1dF9mZDsKPiAgIAo+IEBAIC04MTcsOSArODE3LDE0IEBAIGRybV9zeW5jb2JqX2hhbmRs ZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCSAg ICBhcmdzLT5mbGFncyAhPSBEUk1fU1lOQ09CSl9IQU5ETEVfVE9fRkRfRkxBR1NfRVhQT1JUX1NZ TkNfRklMRSkKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gICAKPiAtCWlmIChhcmdzLT5mbGFncyAm IERSTV9TWU5DT0JKX0hBTkRMRV9UT19GRF9GTEFHU19FWFBPUlRfU1lOQ19GSUxFKQo+ICsJaWYg KGFyZ3MtPmZsYWdzICYgRFJNX1NZTkNPQkpfSEFORExFX1RPX0ZEX0ZMQUdTX0VYUE9SVF9TWU5D X0ZJTEUpIHsKPiArCQlzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmogPSBkcm1fc3luY29ial9m aW5kKGZpbGVfcHJpdmF0ZSwKPiArCQkJCQkJCSAgICAgICBhcmdzLT5oYW5kbGUpOwo+ICsJCWlm ICghc3luY29iaiB8fCBzeW5jb2JqLT50eXBlICE9IERSTV9TWU5DT0JKX1RZUEVfQklOQVJZKQo+ ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAkJcmV0dXJuIGRybV9zeW5jb2JqX2V4cG9ydF9zeW5j X2ZpbGUoZmlsZV9wcml2YXRlLCBhcmdzLT5oYW5kbGUsCj4gLQkJCQkJCSAgICAmYXJncy0+ZmQp Owo+ICsJCQkJCQkgICAgMCwgJmFyZ3MtPmZkKTsKPiArCX0KPiAgIAo+ICAgCXJldHVybiBkcm1f c3luY29ial9oYW5kbGVfdG9fZmQoZmlsZV9wcml2YXRlLCBhcmdzLT5oYW5kbGUsCj4gICAJCQkJ CSZhcmdzLT5mZCk7Cj4gQEAgLTg0MSwxNSArODQ2LDcyIEBAIGRybV9zeW5jb2JqX2ZkX3RvX2hh bmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCSAgICBh cmdzLT5mbGFncyAhPSBEUk1fU1lOQ09CSl9GRF9UT19IQU5ETEVfRkxBR1NfSU1QT1JUX1NZTkNf RklMRSkKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gICAKPiArCWlmIChhcmdzLT5mbGFncyAmIERS TV9TWU5DT0JKX0ZEX1RPX0hBTkRMRV9GTEFHU19JTVBPUlRfU1lOQ19GSUxFKSB7Cj4gKwkJc3Ry dWN0IGRybV9zeW5jb2JqICpzeW5jb2JqID0gZHJtX3N5bmNvYmpfZmluZChmaWxlX3ByaXZhdGUs Cj4gKwkJCQkJCQkgICAgICAgYXJncy0+aGFuZGxlKTsKPiArCQlpZiAoIXN5bmNvYmogfHwgc3lu Y29iai0+dHlwZSAhPSBEUk1fU1lOQ09CSl9UWVBFX0JJTkFSWSkKPiArCQkJcmV0dXJuIC1FSU5W QUw7Cj4gKwkJcmV0dXJuIGRybV9zeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGVfZmVuY2UoZmlsZV9w cml2YXRlLAo+ICsJCQkJCQkJICBhcmdzLT5mZCwKPiArCQkJCQkJCSAgYXJncy0+aGFuZGxlLAo+ ICsJCQkJCQkJICAwKTsKPiArCX0KPiArCj4gKwlyZXR1cm4gZHJtX3N5bmNvYmpfZmRfdG9faGFu ZGxlKGZpbGVfcHJpdmF0ZSwgYXJncy0+ZmQsCj4gKwkJCQkJJmFyZ3MtPmhhbmRsZSk7Cj4gK30K PiArCj4gK2ludAo+ICtkcm1fc3luY29ial9oYW5kbGVfdG9fZmRfaW9jdGwyKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gKwkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdmF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZTIgKmFyZ3MgPSBkYXRh Owo+ICsKPiArCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9TWU5DT0JK KSkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpZiAoYXJncy0+cGFkKQo+ICsJCXJldHVy biAtRUlOVkFMOwo+ICsKPiArCWlmIChhcmdzLT5mbGFncyAhPSAwICYmCj4gKwkgICAgYXJncy0+ ZmxhZ3MgIT0gRFJNX1NZTkNPQkpfSEFORExFX1RPX0ZEX0ZMQUdTX0VYUE9SVF9TWU5DX0ZJTEUp Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJaWYgKGFyZ3MtPmZsYWdzICYgRFJNX1NZTkNP QkpfSEFORExFX1RPX0ZEX0ZMQUdTX0VYUE9SVF9TWU5DX0ZJTEUpCj4gKwkJcmV0dXJuIGRybV9z eW5jb2JqX2V4cG9ydF9zeW5jX2ZpbGUoZmlsZV9wcml2YXRlLCBhcmdzLT5oYW5kbGUsCj4gKwkJ CQkJCSAgICBhcmdzLT5wb2ludCwgJmFyZ3MtPmZkKTsKPiArCj4gKwlyZXR1cm4gZHJtX3N5bmNv YmpfaGFuZGxlX3RvX2ZkKGZpbGVfcHJpdmF0ZSwgYXJncy0+aGFuZGxlLAo+ICsJCQkJCSZhcmdz LT5mZCk7Cj4gK30KPiArCj4gK2ludAo+ICtkcm1fc3luY29ial9mZF90b19oYW5kbGVfaW9jdGwy KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gKwkJCQkgICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdmF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZTIg KmFyZ3MgPSBkYXRhOwo+ICsKPiArCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERS SVZFUl9TWU5DT0JKKSkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpZiAoYXJncy0+cGFk KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlmIChhcmdzLT5mbGFncyAhPSAwICYmCj4g KwkgICAgYXJncy0+ZmxhZ3MgIT0gRFJNX1NZTkNPQkpfRkRfVE9fSEFORExFX0ZMQUdTX0lNUE9S VF9TWU5DX0ZJTEUpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICAgCWlmIChhcmdzLT5mbGFn cyAmIERSTV9TWU5DT0JKX0ZEX1RPX0hBTkRMRV9GTEFHU19JTVBPUlRfU1lOQ19GSUxFKQo+ICAg CQlyZXR1cm4gZHJtX3N5bmNvYmpfaW1wb3J0X3N5bmNfZmlsZV9mZW5jZShmaWxlX3ByaXZhdGUs Cj4gICAJCQkJCQkJICBhcmdzLT5mZCwKPiAtCQkJCQkJCSAgYXJncy0+aGFuZGxlKTsKPiArCQkJ CQkJCSAgYXJncy0+aGFuZGxlLAo+ICsJCQkJCQkJICBhcmdzLT5wb2ludCk7Cj4gICAKPiAgIAly ZXR1cm4gZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlKGZpbGVfcHJpdmF0ZSwgYXJncy0+ZmQsCj4g ICAJCQkJCSZhcmdzLT5oYW5kbGUpOwo+ICAgfQo+ICAgCj4gKwo+ICAgc3RydWN0IHN5bmNvYmpf d2FpdF9lbnRyeSB7Cj4gICAJc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrOwo+ICAgCXN0cnVjdCBk bWFfZmVuY2UgKmZlbmNlOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIv aW5jbHVkZS91YXBpL2RybS9kcm0uaAo+IGluZGV4IDIzYzQ5NzlkOGExYy4uZGE1ZGYyYTQyZmMz IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiArKysgYi9pbmNsdWRlL3Vh cGkvZHJtL2RybS5oCj4gQEAgLTczNSw2ICs3MzUsMTUgQEAgc3RydWN0IGRybV9zeW5jb2JqX2hh bmRsZSB7Cj4gICAJX19zMzIgZmQ7Cj4gICAJX191MzIgcGFkOwo+ICAgfTsKPiArc3RydWN0IGRy bV9zeW5jb2JqX2hhbmRsZTIgewo+ICsJX191MzIgaGFuZGxlOwo+ICsJX191MzIgZmxhZ3M7Cj4g KwlfX3U2NCBwb2ludDsKPiArCj4gKwlfX3MzMiBmZDsKPiArCV9fdTMyIHBhZDsKPiArfTsKPiAr Cj4gICAKPiAgICNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCAoMSA8PCAw KQo+ICAgI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCAoMSA8 PCAxKQo+IEBAIC05MzgsNiArOTQ3LDggQEAgZXh0ZXJuICJDIiB7Cj4gICAKPiAgICNkZWZpbmUg RFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVfV0FJVAlEUk1fSU9XUigweENBLCBzdHJ1Y3QgZHJt X3N5bmNvYmpfdGltZWxpbmVfd2FpdCkKPiAgICNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfUVVF UlkJCURSTV9JT1dSKDB4Q0IsIHN0cnVjdCBkcm1fc3luY29ial90aW1lbGluZV9xdWVyeSkKPiAr I2RlZmluZSBEUk1fSU9DVExfU1lOQ09CSl9IQU5ETEVfVE9fRkQyCURSTV9JT1dSKDB4Q0MsIHN0 cnVjdCBkcm1fc3luY29ial9oYW5kbGUyKQo+ICsjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX0ZE X1RPX0hBTkRMRTIJRFJNX0lPV1IoMHhDRCwgc3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZTIpCj4g ICAKPiAgIC8qKgo+ICAgICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBp biB0aGVpciByZXNwZWN0aXZlIGhlYWRlcnMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=