From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/komeda: Adds VRR support Date: Wed, 3 Jul 2019 12:01:49 +0200 Message-ID: <20190703100149.GF15868@phenom.ffwll.local> References: <1562138723-29546-1-git-send-email-lowry.li@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x542.google.com (mail-ed1-x542.google.com [IPv6:2a00:1450:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4C9A889097 for ; Wed, 3 Jul 2019 10:01:55 +0000 (UTC) Received: by mail-ed1-x542.google.com with SMTP id w20so1490172edd.2 for ; Wed, 03 Jul 2019 03:01:55 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1562138723-29546-1-git-send-email-lowry.li@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Lowry Li (Arm Technology China)" Cc: nd , "airlied@linux.ie" , Liviu Dudau , "Jonathan Chai (Arm Technology China)" , "linux-kernel@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "Julien Yin (Arm Technology China)" , "james qian wang (Arm Technology China)" , "seanpaul@chromium.org" , Ayan Halder List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMDc6MjY6MTZBTSArMDAwMCwgTG93cnkgTGkgKEFybSBU ZWNobm9sb2d5IENoaW5hKSB3cm90ZToKPiBBZGRzIGEgbmV3IGRybSBwcm9wZXJ0eSAidnJyIiBh bmQgInZycl9lbmFibGUiIGFuZCBpbXBsZW1lbnRlZAo+IHRoZSBzZXQvZ2V0IGZ1bmN0aW9ucywg dGhyb3VnaCB3aGljaCB1c2Vyc3BhY2UgY291bGQgc2V0IHZmcAo+IGRhdGEgdG8ga29tZWRhLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IExvd3J5IExpIChBcm0gVGVjaG5vbG9neSBDaGluYSkgPGxvd3J5 LmxpQGFybS5jb20+Cj4gLS0tCj4gIC4uLi9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEv ZDcxX2NvbXBvbmVudC5jIHwgIDYgKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9r b21lZGEva29tZWRhX2NydGMuYyAgIHwgNjIgKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2 ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuaCAgICB8IDEyICsrKysr Cj4gIC4uLi9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUuaCAgIHwg IDQgKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcx L2Q3MV9jb21wb25lbnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEvZDcx L2Q3MV9jb21wb25lbnQuYwo+IGluZGV4IGVkM2YyNzMuLmMxMzU1ZjUgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVudC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9kNzEvZDcxX2NvbXBvbmVu dC5jCj4gQEAgLTEwNjUsNiArMTA2NSw3IEBAIHN0YXRpYyB2b2lkIGQ3MV90aW1pbmdfY3RybHJf dXBkYXRlKHN0cnVjdCBrb21lZGFfY29tcG9uZW50ICpjLAo+ICAJCQkJICAgIHN0cnVjdCBrb21l ZGFfY29tcG9uZW50X3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjcnRjX3N0ID0gc3RhdGUtPmNydGMtPnN0YXRlOwo+ICsJc3RydWN0IGtvbWVkYV9jcnRjX3N0 YXRlICprY3J0Y19zdCA9IHRvX2tjcnRjX3N0KGNydGNfc3QpOwo+ICAJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUgPSAmY3J0Y19zdC0+YWRqdXN0ZWRfbW9kZTsKPiAgCXUzMiBfX2lvbWVt ICpyZWcgPSBjLT5yZWc7Cj4gIAl1MzIgaGFjdGl2ZSwgaGZyb250X3BvcmNoLCBoYmFja19wb3Jj aCwgaHN5bmNfbGVuOwo+IEBAIC0xMTAyLDYgKzExMDMsOSBAQCBzdGF0aWMgdm9pZCBkNzFfdGlt aW5nX2N0cmxyX3VwZGF0ZShzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCAqYywKPiAgCQl2YWx1ZSB8 PSBCU19DVFJMX0RMOwo+ICAJfQo+ICAKPiArCWlmIChrY3J0Y19zdC0+ZW5fdnJyKQo+ICsJCW1h bGlkcF93cml0ZTMyX21hc2socmVnLCBCU19WSU5URVJWQUxTLCAweDNGRkYsIGtjcnRjX3N0LT52 ZnApOwo+ICsKPiAgCW1hbGlkcF93cml0ZTMyKHJlZywgQkxLX0NPTlRST0wsIHZhbHVlKTsKPiAg fQo+ICAKPiBAQCAtMTE3MSw2ICsxMTc1LDggQEAgc3RhdGljIGludCBkNzFfdGltaW5nX2N0cmxy X2luaXQoc3RydWN0IGQ3MV9kZXYgKmQ3MSwKPiAgCWN0cmxyID0gdG9fY3RybHIoYyk7Cj4gIAo+ ICAJY3RybHItPnN1cHBvcnRzX2R1YWxfbGluayA9IHRydWU7Cj4gKwljdHJsci0+c3VwcG9ydHNf dnJyID0gdHJ1ZTsKPiArCXNldF9yYW5nZSgmY3RybHItPnZmcF9yYW5nZSwgMCwgMHgzRkYpOwo+ ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hcm0v ZGlzcGxheS9rb21lZGEva29tZWRhX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxh eS9rb21lZGEva29tZWRhX2NydGMuYwo+IGluZGV4IDRmNTgwYjAuLjM3NDRlNmQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfY3J0Yy5jCj4g QEAgLTQ2Nyw2ICs0NjcsOCBAQCBzdGF0aWMgdm9pZCBrb21lZGFfY3J0Y19yZXNldChzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJc3RhdGUgPSBremFsbG9jKHNpemVvZigqc3RhdGUpLCBH RlBfS0VSTkVMKTsKPiAgCWlmIChzdGF0ZSkgewo+ICsJCXN0YXRlLT52ZnAgPSAwOwo+ICsJCXN0 YXRlLT5lbl92cnIgPSAwOwo+ICAJCWNydGMtPnN0YXRlID0gJnN0YXRlLT5iYXNlOwo+ICAJCWNy dGMtPnN0YXRlLT5jcnRjID0gY3J0YzsKPiAgCX0KPiBAQCAtNDg3LDYgKzQ4OSw4IEBAIHN0YXRp YyB2b2lkIGtvbWVkYV9jcnRjX3Jlc2V0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCW5ldy0+ YWZmZWN0ZWRfcGlwZXMgPSBvbGQtPmFjdGl2ZV9waXBlczsKPiAgCW5ldy0+Y2xvY2tfcmF0aW8g PSBvbGQtPmNsb2NrX3JhdGlvOwo+ICAJbmV3LT5tYXhfc2xhdmVfem9yZGVyID0gb2xkLT5tYXhf c2xhdmVfem9yZGVyOwo+ICsJbmV3LT52ZnAgPSBvbGQtPnZmcDsKPiArCW5ldy0+ZW5fdnJyID0g b2xkLT5lbl92cnI7Cj4gIAo+ICAJcmV0dXJuICZuZXctPmJhc2U7Cj4gIH0KPiBAQCAtNTI1LDYg KzUyOSwzMCBAQCBzdGF0aWMgdm9pZCBrb21lZGFfY3J0Y192YmxhbmtfZGlzYWJsZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gIAo+ICAJaWYgKHByb3BlcnR5ID09IGtjcnRjLT5jbG9ja19yYXRp b19wcm9wZXJ0eSkgewo+ICAJCSp2YWwgPSBrY3J0Y19zdC0+Y2xvY2tfcmF0aW87Cj4gKwl9IGVs c2UgaWYgKHByb3BlcnR5ID09IGtjcnRjLT52cnJfcHJvcGVydHkpIHsKPiArCQkqdmFsID0ga2Ny dGNfc3QtPnZmcDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0ga2NydGMtPnZycl9lbmFibGVf cHJvcGVydHkpIHsKPiArCQkqdmFsID0ga2NydGNfc3QtPmVuX3ZycjsKPiArCX0gZWxzZSB7Cj4g KwkJRFJNX0RFQlVHX0RSSVZFUigiVW5rbm93biBwcm9wZXJ0eSAlc1xuIiwgcHJvcGVydHktPm5h bWUpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgaW50IGtvbWVkYV9jcnRjX2F0b21pY19zZXRfcHJvcGVydHkoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ICsJCQkJCSAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCj4g KwkJCQkJICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gKwkJCQkJICAgdWludDY0 X3QgdmFsKQo+ICt7Cj4gKwlzdHJ1Y3Qga29tZWRhX2NydGMgKmtjcnRjID0gdG9fa2NydGMoY3J0 Yyk7Cj4gKwlzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgKmtjcnRjX3N0ID0gdG9fa2NydGNfc3Qo c3RhdGUpOwo+ICsKPiArCWlmIChwcm9wZXJ0eSA9PSBrY3J0Yy0+dnJyX3Byb3BlcnR5KSB7Cj4g KwkJa2NydGNfc3QtPnZmcCA9IHZhbDsKPiArCX0gZWxzZSBpZiAocHJvcGVydHkgPT0ga2NydGMt PnZycl9lbmFibGVfcHJvcGVydHkpIHsKPiArCQlrY3J0Y19zdC0+ZW5fdnJyID0gdmFsOwo+ICAJ fSBlbHNlIHsKPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJVbmtub3duIHByb3BlcnR5ICVzXG4iLCBw cm9wZXJ0eS0+bmFtZSk7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTU0NCw2ICs1NzIsNyBA QCBzdGF0aWMgdm9pZCBrb21lZGFfY3J0Y192YmxhbmtfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIAkuZW5hYmxlX3ZibGFuawkJPSBrb21lZGFfY3J0Y192YmxhbmtfZW5hYmxlLAo+ ICAJLmRpc2FibGVfdmJsYW5rCQk9IGtvbWVkYV9jcnRjX3ZibGFua19kaXNhYmxlLAo+ICAJLmF0 b21pY19nZXRfcHJvcGVydHkJPSBrb21lZGFfY3J0Y19hdG9taWNfZ2V0X3Byb3BlcnR5LAo+ICsJ LmF0b21pY19zZXRfcHJvcGVydHkJPSBrb21lZGFfY3J0Y19hdG9taWNfc2V0X3Byb3BlcnR5LAo+ ICB9Owo+ICAKPiAgaW50IGtvbWVkYV9rbXNfc2V0dXBfY3J0Y3Moc3RydWN0IGtvbWVkYV9rbXNf ZGV2ICprbXMsCj4gQEAgLTYxMyw2ICs2NDIsMzUgQEAgc3RhdGljIGludCBrb21lZGFfY3J0Y19j cmVhdGVfc2xhdmVfcGxhbmVzX3Byb3BlcnR5KHN0cnVjdCBrb21lZGFfY3J0YyAqa2NydGMpCj4g IAlyZXR1cm4gMDsKPiAgfQo+ICAKPiArc3RhdGljIGludCBrb21lZGFfY3J0Y19jcmVhdGVfdnJy X3Byb3BlcnR5KHN0cnVjdCBrb21lZGFfY3J0YyAqa2NydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9ICZrY3J0Yy0+YmFzZTsKPiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7 Cj4gKwlzdHJ1Y3Qga29tZWRhX3RpbWluZ19jdHJsciAqY3RybHIgPSBrY3J0Yy0+bWFzdGVyLT5j dHJscjsKPiArCj4gKwlpZiAoIWN0cmxyLT5zdXBwb3J0c192cnIpCj4gKwkJcmV0dXJuIDA7Cj4g Kwo+ICsJcHJvcCA9IGRybV9wcm9wZXJ0eV9jcmVhdGVfcmFuZ2UoY3J0Yy0+ZGV2LCBEUk1fTU9E RV9QUk9QX0FUT01JQywgInZyciIsCj4gKwkJCQkJIGN0cmxyLT52ZnBfcmFuZ2Uuc3RhcnQsCj4g KwkJCQkJIGN0cmxyLT52ZnBfcmFuZ2UuZW5kKTsKPiArCWlmICghcHJvcCkKPiArCQlyZXR1cm4g LUVOT01FTTsKPiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY3J0Yy0+YmFzZSwg cHJvcCwgMCk7Cj4gKwlrY3J0Yy0+dnJyX3Byb3BlcnR5ID0gcHJvcDsKPiArCj4gKwlwcm9wID0g ZHJtX3Byb3BlcnR5X2NyZWF0ZV9ib29sKGNydGMtPmRldiwgRFJNX01PREVfUFJPUF9BVE9NSUMs Cj4gKwkJCQkJImVuYWJsZV92cnIiKTsKClVoLCB3aGF0IGV4YWN0bHkgYXJlIHlvdSBkb2luZyBy ZWludmVudGluZyB1YXBpIHByb3BlcnRpZXMgdGhhdCB3ZSBhbHJlYWR5CnN0YW5kYXJkaXplZD8K Cj4gKwlpZiAoIXByb3ApCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsJZHJtX29iamVjdF9h dHRhY2hfcHJvcGVydHkoJmNydGMtPmJhc2UsIHByb3AsIDApOwo+ICsJa2NydGMtPnZycl9lbmFi bGVfcHJvcGVydHkgPSBwcm9wOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMg c3RydWN0IGRybV9wbGFuZSAqCj4gIGdldF9jcnRjX3ByaW1hcnkoc3RydWN0IGtvbWVkYV9rbXNf ZGV2ICprbXMsIHN0cnVjdCBrb21lZGFfY3J0YyAqY3J0YykKPiAgewo+IEBAIC02NTksNiArNzE3 LDEwIEBAIHN0YXRpYyBpbnQga29tZWRhX2NydGNfYWRkKHN0cnVjdCBrb21lZGFfa21zX2RldiAq a21zLAo+ICAJaWYgKGVycikKPiAgCQlyZXR1cm4gZXJyOwo+ICAKPiArCWVyciA9IGtvbWVkYV9j cnRjX2NyZWF0ZV92cnJfcHJvcGVydHkoa2NydGMpOwo+ICsJaWYgKGVycikKPiArCQlyZXR1cm4g ZXJyOwo+ICsKPiAgCXJldHVybiBlcnI7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5oIGIvZHJpdmVycy9ncHUvZHJt L2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmgKPiBpbmRleCBkYzFkNDM2Li5kMGNmODM4 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRh X2ttcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFf a21zLmgKPiBAQCAtOTgsNiArOTgsMTIgQEAgc3RydWN0IGtvbWVkYV9jcnRjIHsKPiAgCj4gIAkv KiogQHNsYXZlX3BsYW5lc19wcm9wZXJ0eTogcHJvcGVydHkgZm9yIHNsYXZlcyBvZiB0aGUgcGxh bmVzICovCj4gIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpzbGF2ZV9wbGFuZXNfcHJvcGVydHk7CgpB bmQgdGhpcyBzZWVtcyB0byBub3QgYmUgdGhlIGZpcnN0IHRpbWUgdGhpcyBoYXBwZW5lZC4gTG9v a2luZyBhdCBrb21lZGEKd2l0aCBhIHF1aWNrIGdpdCBncmVwIG9uIHByb3BlcnRpZXMgeW91J3Zl IGFjdHVhbGx5IGFjY3VtdWxhdGVkIHF1aXRlIGEKcGlsZSBvZiBzdWNoIGRyaXZlciBwcm9wZXJ0 aWVzIGFscmVhZHkuIFdoZXJlJ3MgdGhlIHVzZXJzcGFjZSBmb3IgdGhpcz8KV2hlcmUncyB0aGUg dWFwaSBkaXNjdXNzaW9ucyBmb3IgdGhpcyBzdHVmZj8gV2hlcmUncyB0aGUgaWd0IHRlc3RzIGZv cgp0aGlzICh5ZXMgYSBidW5jaCBhcmUgYWZ0ZXIgd2UgYWdyZWVkIHRvIGhhdmUgdGVzdGNhc2Vz IGZvciB0aGlzKS4KCkkga25vdyB0aGF0IGluIHRoZSBwYXN0IHdlJ3ZlIGJlZW4gc29tZXdoYXQg c2xvcHB5IHByb3BlcnRpZXMsIGJ1dCB0aGF0CndhcyBhIG1pc3Rha2UgYW5kIHdlJ3ZlIGNyYW5r ZWQgZG93biBvbiB0aGlzIGhhcmQuIFByb2JhYmx5IG5lZWQgdG8gZml4CnRoaXMgd2l0aCBhIHBp bGUgb2YgcmV2ZXJ0cyBhbmQgc3RhcnQgb3Zlci4KLURhbmllbAoKPiArCj4gKwkvKiogQHZycl9w cm9wZXJ0eTogcHJvcGVydHkgZm9yIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZSAqLwo+ICsJc3RydWN0 IGRybV9wcm9wZXJ0eSAqdnJyX3Byb3BlcnR5Owo+ICsKPiArCS8qKiBAdnJyX2VuYWJsZV9wcm9w ZXJ0eTogcHJvcGVydHkgZm9yIGVuYWJsZS9kaXNhYmxlIHRoZSB2cnIgKi8KPiArCXN0cnVjdCBk cm1fcHJvcGVydHkgKnZycl9lbmFibGVfcHJvcGVydHk7Cj4gIH07Cj4gIAo+ICAvKioKPiBAQCAt MTI2LDYgKzEzMiwxMiBAQCBzdHJ1Y3Qga29tZWRhX2NydGNfc3RhdGUgewo+ICAKPiAgCS8qKiBA bWF4X3NsYXZlX3pvcmRlcjogdGhlIG1heGltdW0gb2Ygc2xhdmUgem9yZGVyICovCj4gIAl1MzIg bWF4X3NsYXZlX3pvcmRlcjsKPiArCj4gKwkvKiogQHZmcDogdGhlIHZhbHVlIG9mIHZlcnRpY2Fs IGZyb250IHBvcmNoICovCj4gKwl1MzIgdmZwOwo+ICsKPiArCS8qKiBAZW5fdnJyOiBlbmFibGUg c3RhdHVzIG9mIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZSAqLwo+ICsJdTggZW5fdnJyIDogMTsKPiAg fTsKPiAgCj4gIC8qKiBzdHJ1Y3Qga29tZWRhX2ttc19kZXYgLSBmb3IgZ2F0aGVyIEtNUyByZWxh dGVkIHRoaW5ncyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkv a29tZWRhL2tvbWVkYV9waXBlbGluZS5oIGIvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tv bWVkYS9rb21lZGFfcGlwZWxpbmUuaAo+IGluZGV4IDAwZTgwODMuLjY2ZDc2NjQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfcGlwZWxpbmUu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX3BpcGVs aW5lLmgKPiBAQCAtMzM2LDcgKzMzNiw5IEBAIHN0cnVjdCBrb21lZGFfaW1wcm9jX3N0YXRlIHsK PiAgLyogZGlzcGxheSB0aW1pbmcgY29udHJvbGxlciAqLwo+ICBzdHJ1Y3Qga29tZWRhX3RpbWlu Z19jdHJsciB7Cj4gIAlzdHJ1Y3Qga29tZWRhX2NvbXBvbmVudCBiYXNlOwo+IC0JdTggc3VwcG9y dHNfZHVhbF9saW5rIDogMTsKPiArCXU4IHN1cHBvcnRzX2R1YWxfbGluayA6IDEsCj4gKwkgICBz dXBwb3J0c192cnIgOiAxOwo+ICsJc3RydWN0IG1hbGlkcF9yYW5nZSB2ZnBfcmFuZ2U7Cj4gIH07 Cj4gIAo+ICBzdHJ1Y3Qga29tZWRhX3RpbWluZ19jdHJscl9zdGF0ZSB7Cj4gLS0gCj4gMS45LjEK PiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWw=