From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915: Make 48bit full ppgtt configuration generic (v2) Date: Thu, 6 Sep 2018 14:10:35 -0700 Message-ID: <20180906211035.GL2277@intel.com> References: <20180831154704.3800568-1-bob.j.paauwe@intel.com> <20180906200409.4069910-1-bob.j.paauwe@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id DBA716E75C for ; Thu, 6 Sep 2018 21:10:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180906200409.4069910-1-bob.j.paauwe@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Bob Paauwe Cc: intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMDYsIDIwMTggYXQgMDE6MDQ6MDlQTSAtMDcwMCwgQm9iIFBhYXV3ZSB3cm90 ZToKPiA0OCBiaXQgcHBndHQgZGV2aWNlIGNvbmZpZ3VyYXRpb24gaXMgcmVhbGx5IGp1c3QgZXh0 ZW5kZWQgYWRkcmVzcwo+IHJhbmdlIGZ1bGwgcHBndHQgYW5kIG1heSBhY3R1YWxseSBiZSBzb21l dGhpbmcgb3RoZXIgdGhhbiA0OCBiaXRzLgo+IAo+IENoYW5nZSBVU0VTX0ZVTExfNDhCSVRfUFBH VFQoKSB0byBVU0VTX0ZVTExfNExWTF9QUEdUVCgpIHRvIGJldHRlcgo+IGRlc2NyaWJlIHRoYXQg YSA0IGxldmVsIHdhbGsgdGFibGUgZXh0ZW5kZWQgcmFuZ2UgUFBHVFQgaXMgYmVpbmcKPiB1c2Vk LiBBZGQgYSBuZXcgZGV2aWNlIGluZm8gZmllbGQgdGhhdCBzcGVjaWZpZXMgdGhlIG51bWJlciBv Zgo+IGJpdHMgdG8gcHJlcGFyZSBmb3IgY2FzZXMgd2hlcmUgdGhlIHJhbmdlIGlzIG5vdCAzMiBv ciA0OCBiaXRzLgo+IAo+IHYyOiBrZWVwIFVTRVNfRlVMTF9QUEdUVCgpIHVuY2hhbmdlZCAoQ2hy aXMpCj4gCj4gU2lnbmVkLW9mZi1ieTogQm9iIFBhYXV3ZSA8Ym9iLmoucGFhdXdlQGludGVsLmNv bT4KPiBDQzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IENDOiBNaWNo ZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IENDOiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgICAgIHwgMTkgKysrKysrKysrKy0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgICAgICAgICAgICAgICAgfCAgNyAr KysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmggICAgICAg ICB8ICAzICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5j ICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1f ZGV2aWNlLmMgfCAgMiArKwo+ICA2IGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDEz IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDVhNGRhNWI3 MjNmZC4uYTM2NzY4NmZkNzM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI1 NjksNyArMjU2OSw3IEBAIGludGVsX2luZm8oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAKPiAgI2RlZmluZSBVU0VTX1BQR1RUKGRldl9wcml2KQkJKGk5MTVfbW9k cGFyYW1zLmVuYWJsZV9wcGd0dCkKPiAgI2RlZmluZSBVU0VTX0ZVTExfUFBHVFQoZGV2X3ByaXYp CShpOTE1X21vZHBhcmFtcy5lbmFibGVfcHBndHQgPj0gMikKPiAtI2RlZmluZSBVU0VTX0ZVTExf NDhCSVRfUFBHVFQoZGV2X3ByaXYpCShpOTE1X21vZHBhcmFtcy5lbmFibGVfcHBndHQgPT0gMykK PiArI2RlZmluZSBVU0VTX0ZVTExfNExWTF9QUEdUVChkZXZfcHJpdikJKChkZXZfcHJpdiktPmlu Zm8uZnVsbF9wcGd0dF9iaXRzID4gMzIpCj4gICNkZWZpbmUgSEFTX1BBR0VfU0laRVMoZGV2X3By aXYsIHNpemVzKSAoeyBcCj4gIAlHRU1fQlVHX09OKChzaXplcykgPT0gMCk7IFwKPiAgCSgoc2l6 ZXMpICYgfihkZXZfcHJpdiktPmluZm8ucGFnZV9zaXplcykgPT0gMDsgXAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggZWIwZTQ0NmQ2NDgyLi41MzBhNGMxNDUyYjMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC0xMzcsMTggKzEzNywxOCBA QCBpbnQgaW50ZWxfc2FuaXRpemVfZW5hYmxlX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQkJICAgICAgIAlpbnQgZW5hYmxlX3BwZ3R0KQo+ICB7Cj4gIAlib29s IGhhc19mdWxsX3BwZ3R0Owo+IC0JYm9vbCBoYXNfZnVsbF80OGJpdF9wcGd0dDsKPiArCWJvb2wg aGFzX2Z1bGxfNGx2bF9wcGd0dDsKPiAgCj4gIAlpZiAoIWRldl9wcml2LT5pbmZvLmhhc19hbGlh c2luZ19wcGd0dCkKPiAgCQlyZXR1cm4gMDsKPiAgCj4gIAloYXNfZnVsbF9wcGd0dCA9IGRldl9w cml2LT5pbmZvLmhhc19mdWxsX3BwZ3R0Owo+IC0JaGFzX2Z1bGxfNDhiaXRfcHBndHQgPSBkZXZf cHJpdi0+aW5mby5oYXNfZnVsbF80OGJpdF9wcGd0dDsKPiArCWhhc19mdWxsXzRsdmxfcHBndHQg PSBVU0VTX0ZVTExfNExWTF9QUEdUVChkZXZfcHJpdik7Cj4gIAo+ICAJaWYgKGludGVsX3ZncHVf YWN0aXZlKGRldl9wcml2KSkgewo+ICAJCS8qIEdWVC1nIGhhcyBubyBzdXBwb3J0IGZvciAzMmJp dCBwcGd0dCAqLwo+ICAJCWhhc19mdWxsX3BwZ3R0ID0gZmFsc2U7Cj4gLQkJaGFzX2Z1bGxfNDhi aXRfcHBndHQgPSBpbnRlbF92Z3B1X2hhc19mdWxsXzQ4Yml0X3BwZ3R0KGRldl9wcml2KTsKPiAr CQloYXNfZnVsbF80bHZsX3BwZ3R0ID0gaW50ZWxfdmdwdV9oYXNfZnVsbF80OGJpdF9wcGd0dChk ZXZfcHJpdik7CgpJIHdvbmRlciBpZiB3ZSBzaG91bGQgYWxyZWFkeSByZW5hbWUgdGhpcyBmdW5j dGlvbiB0byBtYXRjaCA0bHZsIGluc3RlYWQKb2YgZnVsbCBhbmQvb3IgNDhiaXQgb24gaXQuCgo+ ICAJfQo+ICAKPiAgCS8qCj4gQEAgLTE2NCw3ICsxNjQsNyBAQCBpbnQgaW50ZWxfc2FuaXRpemVf ZW5hYmxlX3BwZ3R0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWlmIChl bmFibGVfcHBndHQgPT0gMiAmJiBoYXNfZnVsbF9wcGd0dCkKPiAgCQlyZXR1cm4gMjsKPiAgCj4g LQlpZiAoZW5hYmxlX3BwZ3R0ID09IDMgJiYgaGFzX2Z1bGxfNDhiaXRfcHBndHQpCj4gKwlpZiAo ZW5hYmxlX3BwZ3R0ID09IDMgJiYgaGFzX2Z1bGxfNGx2bF9wcGd0dCkKPiAgCQlyZXR1cm4gMzsK PiAgCj4gIAkvKiBEaXNhYmxlIHBwZ3R0IG9uIFNOQiBpZiBWVC1kIGlzIG9uLiAqLwo+IEBAIC0x NzMsNyArMTczLDcgQEAgaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9wcGd0dChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+IC0JaWYg KGhhc19mdWxsXzQ4Yml0X3BwZ3R0KQo+ICsJaWYgKGhhc19mdWxsXzRsdmxfcHBndHQpCj4gIAkJ cmV0dXJuIDM7Cj4gIAo+ICAJaWYgKGhhc19mdWxsX3BwZ3R0KQo+IEBAIC0xNjQ3LDkgKzE2NDcs MTAgQEAgc3RhdGljIHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpnZW44X3BwZ3R0X2NyZWF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCXBwZ3R0LT52bS5pOTE1ID0gaTkxNTsKPiAg CXBwZ3R0LT52bS5kbWEgPSAmaTkxNS0+ZHJtLnBkZXYtPmRldjsKPiAgCj4gLQlwcGd0dC0+dm0u dG90YWwgPSBVU0VTX0ZVTExfNDhCSVRfUFBHVFQoaTkxNSkgPwo+IC0JCTFVTEwgPDwgNDggOgo+ IC0JCTFVTEwgPDwgMzI7Cj4gKwlpZiAoKGk5MTVfbW9kcGFyYW1zLmVuYWJsZV9wcGd0dCA8IDMp ICYmIFVTRVNfRlVMTF80TFZMX1BQR1RUKGk5MTUpKQo+ICsJCXBwZ3R0LT52bS50b3RhbCA9IDFV TEwgPDwgMzI7Cj4gKwllbHNlCj4gKwkJcHBndHQtPnZtLnRvdGFsID0gMVVMTCA8PCBpOTE1LT5p bmZvLmZ1bGxfcHBndHRfYml0czsKPiAgCj4gIAkvKgo+ICAJICogRnJvbSBiZHcsIHRoZXJlIGlz IHN1cHBvcnQgZm9yIHJlYWQtb25seSBwYWdlcyBpbiB0aGUgUFBHVFQuCj4gQEAgLTE3ODgsNyAr MTc4OSw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiAgCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+ICAKPiAgCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewo+IC0JCXUzMiBmb3VyX2xldmVs ID0gVVNFU19GVUxMXzQ4QklUX1BQR1RUKGRldl9wcml2KSA/Cj4gKwkJdTMyIGZvdXJfbGV2ZWwg PSBVU0VTX0ZVTExfNExWTF9QUEdUVChkZXZfcHJpdikgPwo+ICAJCQkJIEdFTjhfR0ZYX1BQR1RU XzQ4QiA6IDA7Cj4gIAkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdpbmUpLAo+ICAJCQkg ICBfTUFTS0VEX0JJVF9FTkFCTEUoR0ZYX1BQR1RUX0VOQUJMRSB8IGZvdXJfbGV2ZWwpKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBpbmRleCBkNmY3YjlmZTFkMjYuLmE5OWMxZjZkZTY0ZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+IEBAIC0yOTksNiArMjk5LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9zYW5keWJyaWRnZV9tX2d0Ml9p bmZvID0gewo+ICAJLmhhc19yYzZwID0gMSwgXAo+ICAJLmhhc19hbGlhc2luZ19wcGd0dCA9IDEs IFwKPiAgCS5oYXNfZnVsbF9wcGd0dCA9IDEsIFwKPiArCS5mdWxsX3BwZ3R0X2JpdHMgPSAzMiwg XAo+ICAJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsIFwKPiAgCUdFTl9ERUZBVUxUX1BBR0VfU0la RVMsIFwKPiAgCUlWQl9DVVJTT1JfT0ZGU0VUUwo+IEBAIC0zNTMsNiArMzU0LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF92YWxsZXl2aWV3X2luZm8gPSB7 Cj4gIAkuaGFzX2hvdHBsdWcgPSAxLAo+ICAJLmhhc19hbGlhc2luZ19wcGd0dCA9IDEsCj4gIAku aGFzX2Z1bGxfcHBndHQgPSAxLAo+ICsJLmZ1bGxfcHBndHRfYml0cyA9IDMyLCBcCj4gIAkuaGFz X3Nub29wID0gdHJ1ZSwKPiAgCS5oYXNfY29oZXJlbnRfZ2d0dCA9IGZhbHNlLAo+ICAJLnJpbmdf bWFzayA9IFJFTkRFUl9SSU5HIHwgQlNEX1JJTkcgfCBCTFRfUklORywKPiBAQCAtMzk5LDcgKzQw MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaGFzd2Vs bF9ndDNfaW5mbyA9IHsKPiAgCS5wYWdlX3NpemVzID0gSTkxNV9HVFRfUEFHRV9TSVpFXzRLIHwg XAo+ICAJCSAgICAgIEk5MTVfR1RUX1BBR0VfU0laRV8yTSwgXAo+ICAJLmhhc19sb2dpY2FsX3Jp bmdfY29udGV4dHMgPSAxLCBcCj4gLQkuaGFzX2Z1bGxfNDhiaXRfcHBndHQgPSAxLCBcCj4gKwku ZnVsbF9wcGd0dF9iaXRzID0gNDgsIFwKPiAgCS5oYXNfNjRiaXRfcmVsb2MgPSAxLCBcCj4gIAku aGFzX3Jlc2V0X2VuZ2luZSA9IDEKPiAgCj4gQEAgLTQ0NSw2ICs0NDcsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2NoZXJyeXZpZXdfaW5mbyA9IHsKPiAg CS5oYXNfZ21jaF9kaXNwbGF5ID0gMSwKPiAgCS5oYXNfYWxpYXNpbmdfcHBndHQgPSAxLAo+ICAJ Lmhhc19mdWxsX3BwZ3R0ID0gMSwKPiArCS5mdWxsX3BwZ3R0X2JpdHMgPSAzMiwgXAo+ICAJLmhh c19yZXNldF9lbmdpbmUgPSAxLAo+ICAJLmhhc19zbm9vcCA9IHRydWUsCj4gIAkuaGFzX2NvaGVy ZW50X2dndHQgPSBmYWxzZSwKPiBAQCAtNTIwLDcgKzUyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfc2t5bGFrZV9ndDRfaW5mbyA9IHsKPiAgCS5oYXNf Z3VjID0gMSwgXAo+ICAJLmhhc19hbGlhc2luZ19wcGd0dCA9IDEsIFwKPiAgCS5oYXNfZnVsbF9w cGd0dCA9IDEsIFwKPiAtCS5oYXNfZnVsbF80OGJpdF9wcGd0dCA9IDEsIFwKPiArCS5mdWxsX3Bw Z3R0X2JpdHMgPSA0OCwgXAo+ICAJLmhhc19yZXNldF9lbmdpbmUgPSAxLCBcCj4gIAkuaGFzX3Nu b29wID0gdHJ1ZSwgXAo+ICAJLmhhc19jb2hlcmVudF9nZ3R0ID0gZmFsc2UsIFwKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmgKPiBpbmRleCA2ZWVjZDY0NzM0ZDUuLjA4 MzU5MGU5ODE5NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZp Y2VfaW5mby5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8u aAo+IEBAIC0xODIsNiArMTgyLDkgQEAgc3RydWN0IGludGVsX2RldmljZV9pbmZvIHsKPiAgCQl1 MTYgZGVnYW1tYV9sdXRfc2l6ZTsKPiAgCQl1MTYgZ2FtbWFfbHV0X3NpemU7Cj4gIAl9IGNvbG9y Owo+ICsKPiArCS8qIFBQR1RUIGJpdCBzaXplICovCj4gKwlpbnQgZnVsbF9wcGd0dF9iaXRzOwo+ ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX2RyaXZlcl9jYXBzIHsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9odWdlX3BhZ2VzLmMKPiBpbmRleCBlMjcyMTI3NzgzZmUuLjlmNzQy NDRlZjNlMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVn ZV9wYWdlcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFn ZXMuYwo+IEBAIC0xNDM0LDcgKzE0MzQsNyBAQCBzdGF0aWMgaW50IGlndF9wcGd0dF9waW5fdXBk YXRlKHZvaWQgKmFyZykKPiAgCSAqIGh1Z2UtZ3R0LXBhZ2VzLgo+ICAJICovCj4gIAo+IC0JaWYg KCFVU0VTX0ZVTExfNDhCSVRfUFBHVFQoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoIVVTRVNfRlVMTF80 TFZMX1BQR1RUKGRldl9wcml2KSkgewo+ICAJCXByX2luZm8oIjQ4YiBQUEdUVCBub3Qgc3VwcG9y dGVkLCBza2lwcGluZ1xuIik7Cj4gIAkJcmV0dXJuIDA7Cj4gIAl9Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwo+IGluZGV4IDQzZWQ4YjI4 YWVhYS4uMzNkNzIyNWVkYmJiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwo+IEBAIC0xODEsNiArMTgxLDggQEAgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKm1vY2tfZ2VtX2RldmljZSh2b2lkKQo+ICAJCUk5MTVfR1RUX1BBR0Vf U0laRV82NEsgfAo+ICAJCUk5MTVfR1RUX1BBR0VfU0laRV8yTTsKPiAgCj4gKwlta3dyaXRlX2Rl dmljZV9pbmZvKGk5MTUpLT5mdWxsX3BwZ3R0X2JpdHMgPSA0ODsKPiArCj4gIAltb2NrX3VuY29y ZV9pbml0KGk5MTUpOwo+ICAJaTkxNV9nZW1faW5pdF9fbW0oaTkxNSk7Cj4gIAo+IC0tIAo+IDIu MTQuNAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK