From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [PATCH 2/2] drm/panel: Add driver for sitronix ST7789V panel Date: Fri, 3 Feb 2017 19:53:58 +0100 Message-ID: <6c4db243-59fc-f7a4-96e0-8fefef253bac@tronnes.org> References: <8194211279dd2d1b1c2e88a3c17d154c356bbbc7.1486115846.git-series.maxime.ripard@free-electrons.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <8194211279dd2d1b1c2e88a3c17d154c356bbbc7.1486115846.git-series.maxime.ripard@free-electrons.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Maxime Ripard , Rob Herring , Mark Rutland , Thierry Reding Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: devicetree@vger.kernel.org CkRlbiAwMy4wMi4yMDE3IDEwLjU5LCBza3JldiBNYXhpbWUgUmlwYXJkOgo+IFNpZ25lZC1vZmYt Ynk6IE1heGltZSBSaXBhcmQgPG1heGltZS5yaXBhcmRAZnJlZS1lbGVjdHJvbnMuY29tPgo+IC0t LQo+ICAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcgICAgICAgICAgICAgICAgICB8ICAg NCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlICAgICAgICAgICAgICAgICB8 ICAgMSArLQo+ICAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLXNpdHJvbml4LXN0Nzc4OXYu YyB8IDQzNSArKysrKysrKysrKysrKysrKystCj4gICAzIGZpbGVzIGNoYW5nZWQsIDQ0MCBpbnNl cnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv Z3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMKPgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9LY29u ZmlnCj4gaW5kZXggNjJhYmE5NzZlNzQ0Li5kMDdiOTk2YTA3YjggMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3BhbmVsL0tjb25maWcKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv S2NvbmZpZwo+IEBAIC04MSw0ICs4MSw4IEBAIGNvbmZpZyBEUk1fUEFORUxfU0hBUlBfTFMwNDNU MUxFMDEKPiAgIAkgIFNheSBZIGhlcmUgaWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9y IFNoYXJwIExTMDQzVDFMRTAxIHFIRAo+ICAgCSAgKDU0MHg5NjApIERTSSBwYW5lbCBhcyBmb3Vu ZCBvbiB0aGUgUXVhbGNvbW0gQVBRODA3NCBEcmFnb25ib2FyZAo+ICAgCj4gK2NvbmZpZyBEUk1f UEFORUxfU0lUUk9OSVhfU1Q3Nzg5Vgo+ICsJdHJpc3RhdGUgIlNpdHJvbnggU1Q3Nzg5ViBwYW5l bCIKPiArCWRlcGVuZHMgb24gT0YgJiYgU1BJCj4gKwo+ICAgZW5kbWVudQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv TWFrZWZpbGUKPiBpbmRleCBhNWM3ZWMwMjM2ZTAuLjQxYjI0NWQzOTk4NCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v cGFuZWwvTWFrZWZpbGUKPiBAQCAtNiwzICs2LDQgQEAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9T QU1TVU5HX0xEOTA0MCkgKz0gcGFuZWwtc2Ftc3VuZy1sZDkwNDAubwo+ICAgb2JqLSQoQ09ORklH X0RSTV9QQU5FTF9TQU1TVU5HX1M2RThBQTApICs9IHBhbmVsLXNhbXN1bmctczZlOGFhMC5vCj4g ICBvYmotJChDT05GSUdfRFJNX1BBTkVMX1NIQVJQX0xRMTAxUjFTWDAxKSArPSBwYW5lbC1zaGFy cC1scTEwMXIxc3gwMS5vCj4gICBvYmotJChDT05GSUdfRFJNX1BBTkVMX1NIQVJQX0xTMDQzVDFM RTAxKSArPSBwYW5lbC1zaGFycC1sczA0M3QxbGUwMS5vCj4gK29iai0kKENPTkZJR19EUk1fUEFO RUxfU0lUUk9OSVhfU1Q3Nzg5VikgKz0gcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5vCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1zaXRyb25peC1zdDc3ODl2LmMgYi9k cml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5di5jCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmFhYjgxN2I1NWFhNgo+IC0tLSAvZGV2 L251bGwKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtc2l0cm9uaXgtc3Q3Nzg5 di5jCj4gQEAgLTAsMCArMSw0MzUgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IChDKSAyMDE3IEZy ZWUgRWxlY3Ryb25zCj4gKyAqCj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbgo+ICsgKiAyIGFz IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKi8KPiArCj4g KyNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5oPgo+ICsK PiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3Nw aS9zcGkuaD4KPiArCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9TTFBJTl9DTUQJCTB4MTAKPiArCj4gKyNk ZWZpbmUgU1Q3Nzg5Vl9TTFBPVVRfQ01ECQkweDExCj4gKwo+ICsjZGVmaW5lIFNUNzc4OVZfSU5W T05fQ01ECQkweDIxCj4gKwo+ICsjZGVmaW5lIFNUNzc4OVZfRElTUE9GRl9DTUQJCTB4MjgKPiAr Cj4gKyNkZWZpbmUgU1Q3Nzg5Vl9ESVNQT05fQ01ECQkweDI5Cj4gKwo+ICsjZGVmaW5lIFNUNzc4 OVZfTUFEQ1RMX0NNRAkJMHgzNgo+ICsKPiArI2RlZmluZSBTVDc3ODlWX0NPTE1PRF9DTUQJCTB4 M2EKCllvdSBjYW4gdXNlIHRoZXNlIGZyb20gaW5jbHVkZS92aWRlby9taXBpX2Rpc3BsYXkuaDoK CiAgICAgICAgIE1JUElfRENTX0VOVEVSX1NMRUVQX01PREUgICAgICAgPSAweDEwLAogICAgICAg ICBNSVBJX0RDU19FWElUX1NMRUVQX01PREUgICAgICAgID0gMHgxMSwKICAgICAgICAgTUlQSV9E Q1NfRU5URVJfSU5WRVJUX01PREUgICAgICA9IDB4MjEsCiAgICAgICAgIE1JUElfRENTX1NFVF9E SVNQTEFZX09GRiAgICAgICAgPSAweDI4LAogICAgICAgICBNSVBJX0RDU19TRVRfRElTUExBWV9P TiAgICAgICAgID0gMHgyOSwKICAgICAgICAgTUlQSV9EQ1NfU0VUX0FERFJFU1NfTU9ERSAgICAg ICA9IDB4MzYsCiAgICAgICAgIE1JUElfRENTX1NFVF9QSVhFTF9GT1JNQVQgICAgICAgPSAweDNB LAoKCk5vcmFsZi4KCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9DT0xNT0RfUkdCX0ZNVF8xOEJJVFMJCSg2 IDw8IDQpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9DT0xNT0RfQ1RSTF9GTVRfMThCSVRTCQkoNiA8PCAw KQo+ICsKPiArI2RlZmluZSBTVDc3ODlWX1JBTUNUUkxfQ01ECQkweGIwCj4gKyNkZWZpbmUgU1Q3 Nzg5Vl9SQU1DVFJMX1JNX1JHQgkJCUJJVCg0KQo+ICsjZGVmaW5lIFNUNzc4OVZfUkFNQ1RSTF9E TV9SR0IJCQlCSVQoMCkKPiArI2RlZmluZSBTVDc3ODlWX1JBTUNUUkxfTUFHSUMJCQkoMyA8PCA2 KQo+ICsjZGVmaW5lIFNUNzc4OVZfUkFNQ1RSTF9FUEYobikJCQkoKChuKSAmIDMpIDw8IDQpCj4g Kwo+ICsjZGVmaW5lIFNUNzc4OVZfUkdCQ1RSTF9DTUQJCTB4YjEKPiArI2RlZmluZSBTVDc3ODlW X1JHQkNUUkxfV08JCQlCSVQoNykKPiArI2RlZmluZSBTVDc3ODlWX1JHQkNUUkxfUkNNKG4pCQkJ KCgobikgJiAzKSA8PCA1KQo+ICsjZGVmaW5lIFNUNzc4OVZfUkdCQ1RSTF9WU1lOQ19ISUdICQlC SVQoMykKPiArI2RlZmluZSBTVDc3ODlWX1JHQkNUUkxfSFNZTkNfSElHSAkJQklUKDIpCj4gKyNk ZWZpbmUgU1Q3Nzg5Vl9SR0JDVFJMX1BDTEtfSElHSAkJQklUKDEpCj4gKyNkZWZpbmUgU1Q3Nzg5 Vl9SR0JDVFJMX1ZCUChuKQkJCSgobikgJiAweDdmKQo+ICsjZGVmaW5lIFNUNzc4OVZfUkdCQ1RS TF9IQlAobikJCQkoKG4pICYgMHgxZikKPiArCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QT1JDVFJMX0NN RAkJMHhiMgo+ICsjZGVmaW5lIFNUNzc4OVZfUE9SQ1RSTF9JRExFX0JQKG4pCQkoKChuKSAmIDB4 ZikgPDwgNCkKPiArI2RlZmluZSBTVDc3ODlWX1BPUkNUUkxfSURMRV9GUChuKQkJKChuKSAmIDB4 ZikKPiArI2RlZmluZSBTVDc3ODlWX1BPUkNUUkxfUEFSVElBTF9CUChuKQkJKCgobikgJiAweGYp IDw8IDQpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QT1JDVFJMX1BBUlRJQUxfRlAobikJCSgobikgJiAw eGYpCj4gKwo+ICsjZGVmaW5lIFNUNzc4OVZfR0NUUkxfQ01ECQkweGI3Cj4gKyNkZWZpbmUgU1Q3 Nzg5Vl9HQ1RSTF9WR0hTKG4pCQkJKCgobikgJiA3KSA8PCA0KQo+ICsjZGVmaW5lIFNUNzc4OVZf R0NUUkxfVkdMUyhuKQkJCSgobikgJiA3KQo+ICsKPiArI2RlZmluZSBTVDc3ODlWX1ZDT01TX0NN RAkJMHhiYgo+ICsKPiArI2RlZmluZSBTVDc3ODlWX0xDTUNUUkxfQ01ECQkweGMwCj4gKyNkZWZp bmUgU1Q3Nzg5Vl9MQ01DVFJMX1hCR1IJCQlCSVQoNSkKPiArI2RlZmluZSBTVDc3ODlWX0xDTUNU UkxfWE1YCQkJQklUKDMpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9MQ01DVFJMX1hNSAkJCUJJVCgyKQo+ ICsKPiArI2RlZmluZSBTVDc3ODlWX1ZEVlZSSEVOX0NNRAkJMHhjMgo+ICsjZGVmaW5lIFNUNzc4 OVZfVkRWVlJIRU5fQ01ERU4JCQlCSVQoMCkKPiArCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9WUkhTX0NN RAkJMHhjMwo+ICsKPiArI2RlZmluZSBTVDc3ODlWX1ZEVlNfQ01ECQkweGM0Cj4gKwo+ICsjZGVm aW5lIFNUNzc4OVZfRlJDVFJMMl9DTUQJCTB4YzYKPiArCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QV0NU UkwxX0NNRAkJMHhkMAo+ICsjZGVmaW5lIFNUNzc4OVZfUFdDVFJMMV9NQUdJQwkJCTB4YTQKPiAr I2RlZmluZSBTVDc3ODlWX1BXQ1RSTDFfQVZERChuKQkJCSgoKG4pICYgMykgPDwgNikKPiArI2Rl ZmluZSBTVDc3ODlWX1BXQ1RSTDFfQVZDTChuKQkJCSgoKG4pICYgMykgPDwgNCkKPiArI2RlZmlu ZSBTVDc3ODlWX1BXQ1RSTDFfVkRTKG4pCQkJKChuKSAmIDMpCj4gKwo+ICsjZGVmaW5lIFNUNzc4 OVZfUFZHQU1DVFJMX0NNRAkJMHhlMAo+ICsjZGVmaW5lIFNUNzc4OVZfUFZHQU1DVFJMX0pQMChu KQkJKCgobikgJiAzKSA8PCA0KQo+ICsjZGVmaW5lIFNUNzc4OVZfUFZHQU1DVFJMX0pQMShuKQkJ KCgobikgJiAzKSA8PCA0KQo+ICsjZGVmaW5lIFNUNzc4OVZfUFZHQU1DVFJMX1ZQMChuKQkJKChu KSAmIDB4ZikKPiArI2RlZmluZSBTVDc3ODlWX1BWR0FNQ1RSTF9WUDEobikJCSgobikgJiAweDNm KQo+ICsjZGVmaW5lIFNUNzc4OVZfUFZHQU1DVFJMX1ZQMihuKQkJKChuKSAmIDB4M2YpCj4gKyNk ZWZpbmUgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlA0KG4pCQkoKG4pICYgMHgxZikKPiArI2RlZmluZSBT VDc3ODlWX1BWR0FNQ1RSTF9WUDYobikJCSgobikgJiAweDFmKQo+ICsjZGVmaW5lIFNUNzc4OVZf UFZHQU1DVFJMX1ZQMTMobikJCSgobikgJiAweGYpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QVkdBTUNU UkxfVlAyMChuKQkJKChuKSAmIDB4N2YpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlAy NyhuKQkJKChuKSAmIDcpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlAzNihuKQkJKCgo bikgJiA3KSA8PCA0KQo+ICsjZGVmaW5lIFNUNzc4OVZfUFZHQU1DVFJMX1ZQNDMobikJCSgobikg JiAweDdmKQo+ICsjZGVmaW5lIFNUNzc4OVZfUFZHQU1DVFJMX1ZQNTAobikJCSgobikgJiAweGYp Cj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlA1NyhuKQkJKChuKSAmIDB4MWYpCj4gKyNk ZWZpbmUgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlA1OShuKQkJKChuKSAmIDB4MWYpCj4gKyNkZWZpbmUg U1Q3Nzg5Vl9QVkdBTUNUUkxfVlA2MShuKQkJKChuKSAmIDB4M2YpCj4gKyNkZWZpbmUgU1Q3Nzg5 Vl9QVkdBTUNUUkxfVlA2MihuKQkJKChuKSAmIDB4M2YpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9QVkdB TUNUUkxfVlA2MyhuKQkJKCgobikgJiAweGYpIDw8IDQpCj4gKwo+ICsjZGVmaW5lIFNUNzc4OVZf TlZHQU1DVFJMX0NNRAkJMHhlMQo+ICsjZGVmaW5lIFNUNzc4OVZfTlZHQU1DVFJMX0pOMChuKQkJ KCgobikgJiAzKSA8PCA0KQo+ICsjZGVmaW5lIFNUNzc4OVZfTlZHQU1DVFJMX0pOMShuKQkJKCgo bikgJiAzKSA8PCA0KQo+ICsjZGVmaW5lIFNUNzc4OVZfTlZHQU1DVFJMX1ZOMChuKQkJKChuKSAm IDB4ZikKPiArI2RlZmluZSBTVDc3ODlWX05WR0FNQ1RSTF9WTjEobikJCSgobikgJiAweDNmKQo+ ICsjZGVmaW5lIFNUNzc4OVZfTlZHQU1DVFJMX1ZOMihuKQkJKChuKSAmIDB4M2YpCj4gKyNkZWZp bmUgU1Q3Nzg5Vl9OVkdBTUNUUkxfVk40KG4pCQkoKG4pICYgMHgxZikKPiArI2RlZmluZSBTVDc3 ODlWX05WR0FNQ1RSTF9WTjYobikJCSgobikgJiAweDFmKQo+ICsjZGVmaW5lIFNUNzc4OVZfTlZH QU1DVFJMX1ZOMTMobikJCSgobikgJiAweGYpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9OVkdBTUNUUkxf Vk4yMChuKQkJKChuKSAmIDB4N2YpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9OVkdBTUNUUkxfVk4yNyhu KQkJKChuKSAmIDcpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9OVkdBTUNUUkxfVk4zNihuKQkJKCgobikg JiA3KSA8PCA0KQo+ICsjZGVmaW5lIFNUNzc4OVZfTlZHQU1DVFJMX1ZONDMobikJCSgobikgJiAw eDdmKQo+ICsjZGVmaW5lIFNUNzc4OVZfTlZHQU1DVFJMX1ZONTAobikJCSgobikgJiAweGYpCj4g KyNkZWZpbmUgU1Q3Nzg5Vl9OVkdBTUNUUkxfVk41NyhuKQkJKChuKSAmIDB4MWYpCj4gKyNkZWZp bmUgU1Q3Nzg5Vl9OVkdBTUNUUkxfVk41OShuKQkJKChuKSAmIDB4MWYpCj4gKyNkZWZpbmUgU1Q3 Nzg5Vl9OVkdBTUNUUkxfVk42MShuKQkJKChuKSAmIDB4M2YpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9O VkdBTUNUUkxfVk42MihuKQkJKChuKSAmIDB4M2YpCj4gKyNkZWZpbmUgU1Q3Nzg5Vl9OVkdBTUNU UkxfVk42MyhuKQkJKCgobikgJiAweGYpIDw8IDQpCj4gKwo+ICtzdHJ1Y3Qgc3Q3Nzg5diB7Cj4g KwlzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOwo+ICsJc3RydWN0IHNwaV9kZXZpY2UgKnNwaTsKPiAr CXN0cnVjdCBncGlvX2Rlc2MgKnJlc2V0Owo+ICsJc3RydWN0IGJhY2tsaWdodF9kZXZpY2UgKmJh Y2tsaWdodDsKPiArfTsKPiArCj4gK2VudW0gc3Q3Nzg5dl9wcmVmaXggewo+ICsJU1Q3Nzg5Vl9D T01NQU5EID0gMCwKPiArCVNUNzc4OVZfREFUQSA9IDEsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW5s aW5lIHN0cnVjdCBzdDc3ODl2ICpwYW5lbF90b19zdDc3ODl2KHN0cnVjdCBkcm1fcGFuZWwgKnBh bmVsKQo+ICt7Cj4gKwlyZXR1cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3Qgc3Q3Nzg5diwg cGFuZWwpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHN0Nzc4OXZfc3BpX3dyaXRlKHN0cnVjdCBz dDc3ODl2ICpjdHgsIHU4IHByZWZpeCwgdTggZGF0YSkKPiArewo+ICsJc3RydWN0IHNwaV90cmFu c2ZlciB4ZmVyID0geyB9Owo+ICsJc3RydWN0IHNwaV9tZXNzYWdlIG1zZzsKPiArCXUxNiB0eGJ1 ZiA9ICgocHJlZml4ICYgMSkgPDwgOCkgfCBkYXRhOwo+ICsKPiArCXNwaV9tZXNzYWdlX2luaXQo Jm1zZyk7Cj4gKwo+ICsJeGZlci50eF9idWYgPSAmdHhidWY7Cj4gKwl4ZmVyLmJpdHNfcGVyX3dv cmQgPSA5Owo+ICsJeGZlci5sZW4gPSBzaXplb2YodHhidWYpOwo+ICsKPiArCXNwaV9tZXNzYWdl X2FkZF90YWlsKCZ4ZmVyLCAmbXNnKTsKPiArCXJldHVybiBzcGlfc3luYyhjdHgtPnNwaSwgJm1z Zyk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgc3Q3Nzg5dl93cml0ZV9jb21tYW5kKHN0cnVjdCBz dDc3ODl2ICpjdHgsIHU4IGNtZCkKPiArewo+ICsJcmV0dXJuIHN0Nzc4OXZfc3BpX3dyaXRlKGN0 eCwgU1Q3Nzg5Vl9DT01NQU5ELCBjbWQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IHN0Nzc4OXZf d3JpdGVfZGF0YShzdHJ1Y3Qgc3Q3Nzg5diAqY3R4LCB1OCBjbWQpCj4gK3sKPiArCXJldHVybiBz dDc3ODl2X3NwaV93cml0ZShjdHgsIFNUNzc4OVZfREFUQSwgY21kKTsKPiArfQo+ICsKPiArc3Rh dGljIGludCBzdDc3ODl2X3dyaXRlX2NvbW1hbmRfZGF0YShzdHJ1Y3Qgc3Q3Nzg5diAqY3R4LCB1 OCBjbWQsCj4gKwkJCQkgICAgICB1bnNpZ25lZCBsb25nIG5fZGF0YSwgLi4uKQo+ICt7Cj4gKwl2 YV9saXN0IGFwOwo+ICsJaW50IGk7Cj4gKwo+ICsJc3Q3Nzg5dl93cml0ZV9jb21tYW5kKGN0eCwg Y21kKTsKPiArCj4gKwl2YV9zdGFydChhcCwgbl9kYXRhKTsKPiArCWZvciAoaSA9IDA7IGkgPCBu X2RhdGE7IGkrKykKPiArCQlzdDc3ODl2X3dyaXRlX2RhdGEoY3R4LCB2YV9hcmcoYXAsIGludCkp Owo+ICsJdmFfZW5kKGFwKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGRlZmF1bHRfbW9kZSA9IHsKPiArCS5jbG9jayA9 IDcwMDAsCj4gKwkuaGRpc3BsYXkgPSAyNDAsCj4gKwkuaHN5bmNfc3RhcnQgPSAyNDAgKyAzOCwK PiArCS5oc3luY19lbmQgPSAyNDAgKyAzOCArIDEwLAo+ICsJLmh0b3RhbCA9IDI0MCArIDM4ICsg MTAgKyAxMCwKPiArCS52ZGlzcGxheSA9IDMyMCwKPiArCS52c3luY19zdGFydCA9IDMyMCArIDgs Cj4gKwkudnN5bmNfZW5kID0gMzIwICsgOCArIDQsCj4gKwkudnRvdGFsID0gMzIwICsgOCArIDQg KyA0LAo+ICsJLnZyZWZyZXNoID0gNjAsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IHN0Nzc4OXZf Z2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gcGFuZWwtPmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlOwo+ICsKPiArCW1vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUocGFuZWwt PmRybSwgJmRlZmF1bHRfbW9kZSk7Cj4gKwlpZiAoIW1vZGUpIHsKPiArCQlkZXZfZXJyKHBhbmVs LT5kcm0tPmRldiwgImZhaWxlZCB0byBhZGQgbW9kZSAldXgldXhAJXVcbiIsCj4gKwkJCWRlZmF1 bHRfbW9kZS5oZGlzcGxheSwgZGVmYXVsdF9tb2RlLnZkaXNwbGF5LAo+ICsJCQlkZWZhdWx0X21v ZGUudnJlZnJlc2gpOwo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJfQo+ICsKPiArCWRybV9tb2Rl X3NldF9uYW1lKG1vZGUpOwo+ICsKPiArCW1vZGUtPnR5cGUgPSBEUk1fTU9ERV9UWVBFX0RSSVZF UiB8IERSTV9NT0RFX1RZUEVfUFJFRkVSUkVEOwo+ICsJZHJtX21vZGVfcHJvYmVkX2FkZChjb25u ZWN0b3IsIG1vZGUpOwo+ICsKPiArCXBhbmVsLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mby53aWR0 aF9tbSA9IDYxOwo+ICsJcGFuZWwtPmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhlaWdodF9tbSA9 IDEwMzsKPiArCj4gKwlyZXR1cm4gMTsKPiArfQo+ICsKPiArI2RlZmluZSBOVU1BUkdTKC4uLikg IChzaXplb2YoKGludFtdKXtfX1ZBX0FSR1NfX30pIC8gc2l6ZW9mKGludCkpCj4gKyNkZWZpbmUg c3Q3Nzg5dl9zZW5kKGN0eCwgY21kLCAuLi4pCQkJCQlcCj4gKwlzdDc3ODl2X3dyaXRlX2NvbW1h bmRfZGF0YShjdHgsIGNtZCwgTlVNQVJHUyhfX1ZBX0FSR1NfXyksCVwKPiArCQkJCSAgICMjX19W QV9BUkdTX18pCj4gKwo+ICtzdGF0aWMgaW50IHN0Nzc4OXZfcHJlcGFyZShzdHJ1Y3QgZHJtX3Bh bmVsICpwYW5lbCkKPiArewo+ICsJc3RydWN0IHN0Nzc4OXYgKmN0eCA9IHBhbmVsX3RvX3N0Nzc4 OXYocGFuZWwpOwo+ICsKPiArCWdwaW9kX3NldF92YWx1ZShjdHgtPnJlc2V0LCAxKTsKPiArCW1z bGVlcCgzMCk7Cj4gKwlncGlvZF9zZXRfdmFsdWUoY3R4LT5yZXNldCwgMCk7Cj4gKwltc2xlZXAo MTIwKTsKPiArCj4gKwlzdDc3ODl2X3NlbmQoY3R4LCBTVDc3ODlWX1NMUE9VVF9DTUQpOwo+ICsK PiArCS8qIFdlIG5lZWQgdG8gd2FpdCAxMjBtcyBhZnRlciBhIHNsZWVwIG91dCBjb21tYW5kICov Cj4gKwltc2xlZXAoMTIwKTsKPiArCj4gKwlzdDc3ODl2X3NlbmQoY3R4LCBTVDc3ODlWX01BRENU TF9DTUQsIDApOwo+ICsKPiArCXN0Nzc4OXZfc2VuZChjdHgsIFNUNzc4OVZfQ09MTU9EX0NNRCwK PiArCQkgICAgIFNUNzc4OVZfQ09MTU9EX0NUUkxfRk1UXzE4QklUUyB8Cj4gKwkJICAgICBTVDc3 ODlWX0NPTE1PRF9SR0JfRk1UXzE4QklUUyk7Cj4gKwo+ICsJc3Q3Nzg5dl9zZW5kKGN0eCwgU1Q3 Nzg5Vl9QT1JDVFJMX0NNRCwKPiArCQkgICAgIDB4YywJCS8qIEJhY2twb3JjaCwgbm9ybWFsIG1v ZGUqLwo+ICsJCSAgICAgMHhjLAkJLyogRnJvbnRwb3JjaCwgbm9ybWFsIG1vZGUgKi8KPiArCQkg ICAgIDAsCQkJLyogRGlzYWJsZSBzZXBhcmF0ZSBwb3JjaCBjb250cm9sICovCj4gKwkJICAgICBT VDc3ODlWX1BPUkNUUkxfSURMRV9CUCgzKSB8Cj4gKwkJICAgICBTVDc3ODlWX1BPUkNUUkxfSURM RV9GUCgzKSwKPiArCQkgICAgIFNUNzc4OVZfUE9SQ1RSTF9QQVJUSUFMX0JQKDMpIHwKPiArCQkg ICAgIFNUNzc4OVZfUE9SQ1RSTF9QQVJUSUFMX0ZQKDMpKTsKPiArCj4gKwlzdDc3ODl2X3NlbmQo Y3R4LCBTVDc3ODlWX0dDVFJMX0NNRCwKPiArCQkgICAgIFNUNzc4OVZfR0NUUkxfVkdMUyg1KSB8 IFNUNzc4OVZfR0NUUkxfVkdIUygzKSk7Cj4gKwo+ICsJc3Q3Nzg5dl9zZW5kKGN0eCwgU1Q3Nzg5 Vl9WQ09NU19DTUQsIDB4MmIpOwo+ICsKPiArCXN0Nzc4OXZfc2VuZChjdHgsIFNUNzc4OVZfTENN Q1RSTF9DTUQsIFNUNzc4OVZfTENNQ1RSTF9YTUggfAo+ICsJCSAgICAgU1Q3Nzg5Vl9MQ01DVFJM X1hNWCB8IFNUNzc4OVZfTENNQ1RSTF9YQkdSKTsKPiArCj4gKwlzdDc3ODl2X3NlbmQoY3R4LCBT VDc3ODlWX1ZEVlZSSEVOX0NNRCwgU1Q3Nzg5Vl9WRFZWUkhFTl9DTURFTik7Cj4gKwo+ICsJc3Q3 Nzg5dl9zZW5kKGN0eCwgU1Q3Nzg5Vl9WUkhTX0NNRCwgMHhmKTsKPiArCj4gKwlzdDc3ODl2X3Nl bmQoY3R4LCBTVDc3ODlWX1ZEVlNfQ01ELCAweDIwKTsKPiArCj4gKwlzdDc3ODl2X3NlbmQoY3R4 LCBTVDc3ODlWX0ZSQ1RSTDJfQ01ELCAweGYpOwo+ICsKPiArCXN0Nzc4OXZfc2VuZChjdHgsIFNU Nzc4OVZfUFdDVFJMMV9DTUQsIFNUNzc4OVZfUFdDVFJMMV9NQUdJQywKPiArCQkgICAgIFNUNzc4 OVZfUFdDVFJMMV9BVkREKDIpIHwgU1Q3Nzg5Vl9QV0NUUkwxX0FWQ0woMikgfAo+ICsJCSAgICAg U1Q3Nzg5Vl9QV0NUUkwxX1ZEUygxKSk7Cj4gKwo+ICsJc3Q3Nzg5dl9zZW5kKGN0eCwgU1Q3Nzg5 Vl9QVkdBTUNUUkxfQ01ELAo+ICsJCSAgICAgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlA2MygweGQpLAo+ ICsJCSAgICAgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlAxKDB4Y2EpLAo+ICsJCSAgICAgU1Q3Nzg5Vl9Q VkdBTUNUUkxfVlAyKDB4ZSksCj4gKwkJICAgICBTVDc3ODlWX1BWR0FNQ1RSTF9WUDQoOCksCj4g KwkJICAgICBTVDc3ODlWX1BWR0FNQ1RSTF9WUDYoOSksCj4gKwkJICAgICBTVDc3ODlWX1BWR0FN Q1RSTF9WUDEzKDcpLAo+ICsJCSAgICAgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlAyMCgweDJkKSwKPiAr CQkgICAgIFNUNzc4OVZfUFZHQU1DVFJMX1ZQMjcoMHhiKSB8IFNUNzc4OVZfUFZHQU1DVFJMX1ZQ MzYoMyksCj4gKwkJICAgICBTVDc3ODlWX1BWR0FNQ1RSTF9WUDQzKDB4M2QpLAo+ICsJCSAgICAg U1Q3Nzg5Vl9QVkdBTUNUUkxfSlAxKDMpIHwgU1Q3Nzg5Vl9QVkdBTUNUUkxfVlA1MCg0KSwKPiAr CQkgICAgIFNUNzc4OVZfUFZHQU1DVFJMX1ZQNTcoMHhhKSwKPiArCQkgICAgIFNUNzc4OVZfUFZH QU1DVFJMX1ZQNTkoMHhhKSwKPiArCQkgICAgIFNUNzc4OVZfUFZHQU1DVFJMX1ZQNjEoMHgxYiks Cj4gKwkJICAgICBTVDc3ODlWX1BWR0FNQ1RSTF9WUDYyKDB4MjgpKTsKPiArCj4gKwlzdDc3ODl2 X3NlbmQoY3R4LCBTVDc3ODlWX05WR0FNQ1RSTF9DTUQsCj4gKwkJICAgICBTVDc3ODlWX05WR0FN Q1RSTF9WTjYzKDB4ZCksCj4gKwkJICAgICBTVDc3ODlWX05WR0FNQ1RSTF9WTjEoMHhjYSksCj4g KwkJICAgICBTVDc3ODlWX05WR0FNQ1RSTF9WTjIoMHhmKSwKPiArCQkgICAgIFNUNzc4OVZfTlZH QU1DVFJMX1ZONCg4KSwKPiArCQkgICAgIFNUNzc4OVZfTlZHQU1DVFJMX1ZONig4KSwKPiArCQkg ICAgIFNUNzc4OVZfTlZHQU1DVFJMX1ZOMTMoNyksCj4gKwkJICAgICBTVDc3ODlWX05WR0FNQ1RS TF9WTjIwKDB4MmUpLAo+ICsJCSAgICAgU1Q3Nzg5Vl9OVkdBTUNUUkxfVk4yNygweGMpIHwgU1Q3 Nzg5Vl9OVkdBTUNUUkxfVk4zNig1KSwKPiArCQkgICAgIFNUNzc4OVZfTlZHQU1DVFJMX1ZONDMo MHg0MCksCj4gKwkJICAgICBTVDc3ODlWX05WR0FNQ1RSTF9KTjEoMykgfCBTVDc3ODlWX05WR0FN Q1RSTF9WTjUwKDQpLAo+ICsJCSAgICAgU1Q3Nzg5Vl9OVkdBTUNUUkxfVk41Nyg5KSwKPiArCQkg ICAgIFNUNzc4OVZfTlZHQU1DVFJMX1ZONTkoMHhiKSwKPiArCQkgICAgIFNUNzc4OVZfTlZHQU1D VFJMX1ZONjEoMHgxYiksCj4gKwkJICAgICBTVDc3ODlWX05WR0FNQ1RSTF9WTjYyKDB4MjgpKTsK PiArCj4gKwlzdDc3ODl2X3NlbmQoY3R4LCBTVDc3ODlWX0lOVk9OX0NNRCk7Cj4gKwo+ICsJc3Q3 Nzg5dl9zZW5kKGN0eCwgU1Q3Nzg5Vl9SQU1DVFJMX0NNRCwKPiArCQkgICAgIFNUNzc4OVZfUkFN Q1RSTF9ETV9SR0IgfCBTVDc3ODlWX1JBTUNUUkxfUk1fUkdCLAo+ICsJCSAgICAgU1Q3Nzg5Vl9S QU1DVFJMX0VQRigzKSB8IFNUNzc4OVZfUkFNQ1RSTF9NQUdJQyk7Cj4gKwo+ICsJc3Q3Nzg5dl9z ZW5kKGN0eCwgU1Q3Nzg5Vl9SR0JDVFJMX0NNRCwKPiArCQkgICAgIFNUNzc4OVZfUkdCQ1RSTF9X TyB8IFNUNzc4OVZfUkdCQ1RSTF9SQ00oMikgfAo+ICsJCSAgICAgU1Q3Nzg5Vl9SR0JDVFJMX1ZT WU5DX0hJR0ggfCBTVDc3ODlWX1JHQkNUUkxfSFNZTkNfSElHSCB8Cj4gKwkJICAgICBTVDc3ODlW X1JHQkNUUkxfUENMS19ISUdILAo+ICsJCSAgICAgU1Q3Nzg5Vl9SR0JDVFJMX1ZCUCg4KSwgU1Q3 Nzg5Vl9SR0JDVFJMX0hCUCgyMCkpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgaW50IHN0Nzc4OXZfZW5hYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICt7Cj4gKwlz dHJ1Y3Qgc3Q3Nzg5diAqY3R4ID0gcGFuZWxfdG9fc3Q3Nzg5dihwYW5lbCk7Cj4gKwo+ICsJaWYg KGN0eC0+YmFja2xpZ2h0KSB7Cj4gKwkJY3R4LT5iYWNrbGlnaHQtPnByb3BzLnN0YXRlICY9IH5C TF9DT1JFX0ZCQkxBTks7Cj4gKwkJY3R4LT5iYWNrbGlnaHQtPnByb3BzLnBvd2VyID0gRkJfQkxB TktfVU5CTEFOSzsKPiArCQliYWNrbGlnaHRfdXBkYXRlX3N0YXR1cyhjdHgtPmJhY2tsaWdodCk7 Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHN0Nzc4OXZfc2VuZChjdHgsIFNUNzc4OVZfRElTUE9OX0NN RCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgc3Q3Nzg5dl9kaXNhYmxlKHN0cnVjdCBkcm1fcGFu ZWwgKnBhbmVsKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3Q3Nzg5diAqY3R4ID0gcGFuZWxfdG9fc3Q3Nzg5 dihwYW5lbCk7Cj4gKwo+ICsJc3Q3Nzg5dl9zZW5kKGN0eCwgU1Q3Nzg5Vl9ESVNQT0ZGX0NNRCk7 Cj4gKwo+ICsJaWYgKGN0eC0+YmFja2xpZ2h0KSB7Cj4gKwkJY3R4LT5iYWNrbGlnaHQtPnByb3Bz LnBvd2VyID0gRkJfQkxBTktfUE9XRVJET1dOOwo+ICsJCWN0eC0+YmFja2xpZ2h0LT5wcm9wcy5z dGF0ZSB8PSBCTF9DT1JFX0ZCQkxBTks7Cj4gKwkJYmFja2xpZ2h0X3VwZGF0ZV9zdGF0dXMoY3R4 LT5iYWNrbGlnaHQpOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMg aW50IHN0Nzc4OXZfdW5wcmVwYXJlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ICt7Cj4gKwlz dHJ1Y3Qgc3Q3Nzg5diAqY3R4ID0gcGFuZWxfdG9fc3Q3Nzg5dihwYW5lbCk7Cj4gKwo+ICsJc3Q3 Nzg5dl9zZW5kKGN0eCwgU1Q3Nzg5Vl9TTFBJTl9DTUQpOwo+ICsKPiArCXJldHVybiAwOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wYW5lbF9mdW5jcyBzdDc3ODl2X2RybV9m dW5jcyA9IHsKPiArCS5kaXNhYmxlCT0gc3Q3Nzg5dl9kaXNhYmxlLAo+ICsJLmVuYWJsZQkJPSBz dDc3ODl2X2VuYWJsZSwKPiArCS5nZXRfbW9kZXMJPSBzdDc3ODl2X2dldF9tb2RlcywKPiArCS5w cmVwYXJlCT0gc3Q3Nzg5dl9wcmVwYXJlLAo+ICsJLnVucHJlcGFyZQk9IHN0Nzc4OXZfdW5wcmVw YXJlLAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBzdDc3ODl2X3Byb2JlKHN0cnVjdCBzcGlfZGV2 aWNlICpzcGkpCj4gK3sKPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqYmFja2xpZ2h0Owo+ICsJc3Ry dWN0IHN0Nzc4OXYgKmN0eDsKPiArCWludCByZXQ7Cj4gKwo+ICsJY3R4ID0gZGV2bV9remFsbG9j KCZzcGktPmRldiwgc2l6ZW9mKCpjdHgpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghY3R4KQo+ICsJ CXJldHVybiAtRU5PTUVNOwo+ICsKPiArCXNwaV9zZXRfZHJ2ZGF0YShzcGksIGN0eCk7Cj4gKwlj dHgtPnNwaSA9IHNwaTsKPiArCj4gKwljdHgtPnBhbmVsLmRldiA9ICZzcGktPmRldjsKPiArCWN0 eC0+cGFuZWwuZnVuY3MgPSAmc3Q3Nzg5dl9kcm1fZnVuY3M7Cj4gKwo+ICsJY3R4LT5yZXNldCA9 IGRldm1fZ3Bpb2RfZ2V0KCZzcGktPmRldiwgInJlc2V0IiwgR1BJT0RfT1VUX0xPVyk7Cj4gKwlp ZiAoSVNfRVJSKGN0eC0+cmVzZXQpKSB7Cj4gKwkJZGV2X2Vycigmc3BpLT5kZXYsICJDb3VsZG4n dCBnZXQgb3VyIHJlc2V0IGxpbmVcbiIpOwo+ICsJCXJldHVybiBQVFJfRVJSKGN0eC0+cmVzZXQp Owo+ICsJfQo+ICsKPiArCWJhY2tsaWdodCA9IG9mX3BhcnNlX3BoYW5kbGUoc3BpLT5kZXYub2Zf bm9kZSwgImJhY2tsaWdodCIsIDApOwo+ICsJaWYgKGJhY2tsaWdodCkgewo+ICsJCWN0eC0+YmFj a2xpZ2h0ID0gb2ZfZmluZF9iYWNrbGlnaHRfYnlfbm9kZShiYWNrbGlnaHQpOwo+ICsJCW9mX25v ZGVfcHV0KGJhY2tsaWdodCk7Cj4gKwo+ICsJCWlmICghY3R4LT5iYWNrbGlnaHQpCj4gKwkJCXJl dHVybiAtRVBST0JFX0RFRkVSOwo+ICsJfQo+ICsKPiArCXJldCA9IGRybV9wYW5lbF9hZGQoJmN0 eC0+cGFuZWwpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJZ290byBlcnJfZnJlZV9iYWNrbGlnaHQ7 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gKwo+ICtlcnJfZnJlZV9iYWNrbGlnaHQ6Cj4gKwlpZiAoY3R4 LT5iYWNrbGlnaHQpCj4gKwkJcHV0X2RldmljZSgmY3R4LT5iYWNrbGlnaHQtPmRldik7Cj4gKwo+ ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBzdDc3ODl2X3JlbW92ZShzdHJ1 Y3Qgc3BpX2RldmljZSAqc3BpKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3Q3Nzg5diAqY3R4ID0gc3BpX2dl dF9kcnZkYXRhKHNwaSk7Cj4gKwo+ICsJZHJtX3BhbmVsX2RldGFjaCgmY3R4LT5wYW5lbCk7Cj4g Kwlkcm1fcGFuZWxfcmVtb3ZlKCZjdHgtPnBhbmVsKTsKPiArCj4gKwlpZiAoY3R4LT5iYWNrbGln aHQpCj4gKwkJcHV0X2RldmljZSgmY3R4LT5iYWNrbGlnaHQtPmRldik7Cj4gKwo+ICsJcmV0dXJu IDA7Cj4gK30KPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0Nzc4OXZf b2ZfbWF0Y2hbXSA9IHsKPiArCXsgLmNvbXBhdGlibGUgPSAic2l0cm9uaXgsc3Q3Nzg5diIgfSwK PiArCXsgfQo+ICt9Owo+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdDc3ODl2X29mX21hdGNo KTsKPiArCj4gK3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBzdDc3ODl2X2RyaXZlciA9IHsKPiAr CS5wcm9iZSA9IHN0Nzc4OXZfcHJvYmUsCj4gKwkucmVtb3ZlID0gc3Q3Nzg5dl9yZW1vdmUsCj4g KwkuZHJpdmVyID0gewo+ICsJCS5uYW1lID0gInN0Nzc4OXYiLAo+ICsJCS5vZl9tYXRjaF90YWJs ZSA9IHN0Nzc4OXZfb2ZfbWF0Y2gsCj4gKwl9LAo+ICt9Owo+ICttb2R1bGVfc3BpX2RyaXZlcihz dDc3ODl2X2RyaXZlcik7Cj4gKwo+ICtNT0RVTEVfQVVUSE9SKCJNYXhpbWUgUmlwYXJkIDxtYXhp bWUucmlwYXJkQGZyZWUtZWxlY3Ryb25zLmNvbT4iKTsKPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJT aXRyb25peCBzdDc3ODl2IExDRCBEcml2ZXIiKTsKPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIp OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRl dmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==