From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: eDP Panel Power sequencing Date: Wed, 06 May 2015 18:05:44 +0300 Message-ID: <87vbg5d9vb.fsf@intel.com> References: <55471087.30502@intel.com> <1430723216-13930-1-git-send-email-vandana.kannan@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 ESMTP id BAABD6E6D8 for ; Wed, 6 May 2015 08:07:18 -0700 (PDT) In-Reply-To: <1430723216-13930-1-git-send-email-vandana.kannan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Vandana Kannan , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAwNCBNYXkgMjAxNSwgVmFuZGFuYSBLYW5uYW4gPHZhbmRhbmEua2FubmFuQGludGVs LmNvbT4gd3JvdGU6Cj4gQ2hhbmdlcyBiYXNlZCBvbiBmdXR1cmUgcGxhdGZvcm0gcmVhZGluZXNz IHBhdGNoZXMgcmVsYXRlZCB0bwo+IEhBU19QQ0hfU1BMSVQoKS4gVXNlIEhBU19HTUNIX0RJU1BM QVkoKSBpbnN0ZWFkIG9mIEhBU19QQ0hfU1BMSVQuCgpUaGlzIG5lZWRzIGFuIHVwZGF0ZSB0byBy ZWZsZWN0IHRoZSBwYXRjaC4KCj4gQlhUIGRvZXMgbm90IGhhdmUgUFBfRElWIHJlZ2lzdGVyLiBN YWtpbmcgY2hhbmdlcyB0byBoYW5kbGUgdGhpcy4KPiBTZWNvbmQgc2V0IG9mIFBQUyByZWdpc3Rl cnMgaGF2ZSBiZWVuIGRlZmluZWQgYnV0IHdpbGwgYmUgdXNlZCB3aGVuIFZCVAo+IHByb3ZpZGVz IGEgc2VsZWN0aW9uIGJldHdlZW4gdGhlIDIgc2V0cyBvZiByZWdpc3RlcnMuCj4KPiB2MjoKPiBb SmFuaV0gQWRkZWQgMm5kIHNldCBvZiBQUFMgcmVnaXN0ZXJzIGFuZCB0aGUgbWFjcm8KPiBKYW5p J3MgcmV2aWV3IGNvbW1lbnRzCj4gCS0gcmVtb3ZlIHJlZmVyZW5jZSBpbiBpOTE1X3N1c3BlbmQu Ywo+IAktIFVzZSBCWFQgUFAgbWFjcm8KPiBTcXVhc2hpbmcgYWxsIFBQUyByZWxhdGVkIHBhdGNo ZXMgaW50byBvbmUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBWYW5kYW5hIEthbm5hbiA8dmFuZGFuYS5r YW5uYW5AaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEEuU3VuaWwgS2FtYXRoIDxzdW5pbC5r YW1hdGhAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o IHwgMTMgKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDY5ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdl ZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiBpbmRleCAzNjgwNWI2Li5lOGQ5M2VhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl Zy5oCj4gQEAgLTYzMTUsNiArNjMxNSw4IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+ ICAjZGVmaW5lIFBDSF9QUF9DT05UUk9MCQkweGM3MjA0Cj4gICNkZWZpbmUgIFBBTkVMX1VOTE9D S19SRUdTCSgweGFiY2QgPDwgMTYpCj4gICNkZWZpbmUgIFBBTkVMX1VOTE9DS19NQVNLCSgweGZm ZmYgPDwgMTYpCj4gKyNkZWZpbmUgIEJYVF9QT1dFUl9DWUNMRV9ERUxBWV9NQVNLCSgweDFmMCkK PiArI2RlZmluZSAgQlhUX1BPV0VSX0NZQ0xFX0RFTEFZX1NISUZUCTQKPiAgI2RlZmluZSAgRURQ X0ZPUkNFX1ZERAkJKDEgPDwgMykKPiAgI2RlZmluZSAgRURQX0JMQ19FTkFCTEUJCSgxIDw8IDIp Cj4gICNkZWZpbmUgIFBBTkVMX1BPV0VSX1JFU0VUCSgxIDw8IDEpCj4gQEAgLTYzNDMsNiArNjM0 NSwxNyBAQCBlbnVtIHNrbF9kaXNwX3Bvd2VyX3dlbGxzIHsKPiAgI2RlZmluZSAgUEFORUxfUE9X RVJfQ1lDTEVfREVMQVlfTUFTSwkoMHgxZikKPiAgI2RlZmluZSAgUEFORUxfUE9XRVJfQ1lDTEVf REVMQVlfU0hJRlQJMAo+ICAKPiArLyogQlhUIFBQUyBjaGFuZ2VzIC0gMm5kIHNldCBvZiBQUFMg cmVnaXN0ZXJzICovCj4gKyNkZWZpbmUgX0JYVF9QUF9TVEFUVVMyCQkweGM3MzAwCj4gKyNkZWZp bmUgX0JYVF9QUF9DT05UUk9MMiAJMHhjNzMwNAo+ICsjZGVmaW5lIF9CWFRfUFBfT05fREVMQVlT MgkweGM3MzA4Cj4gKyNkZWZpbmUgX0JYVF9QUF9PRkZfREVMQVlTMgkweGM3MzBjCj4gKwo+ICsj ZGVmaW5lIEJYVF9QUF9TVEFUVVMobikJKCghbikgPyBQQ0hfUFBfU1RBVFVTIDogX0JYVF9QUF9T VEFUVVMyKQo+ICsjZGVmaW5lIEJYVF9QUF9DT05UUk9MKG4pCSgoIW4pID8gUENIX1BQX0NPTlRS T0wgOiBfQlhUX1BQX0NPTlRST0wyKQo+ICsjZGVmaW5lIEJYVF9QUF9PTl9ERUxBWVMobikJKCgh bikgPyBQQ0hfUFBfT05fREVMQVlTIDogX0JYVF9QUF9PTl9ERUxBWVMyKQo+ICsjZGVmaW5lIEJY VF9QUF9PRkZfREVMQVlTKG4pCSgoIW4pID8gUENIX1BQX09GRl9ERUxBWVMgOiBfQlhUX1BQX09G Rl9ERUxBWVMyKQo+ICsKPiAgI2RlZmluZSBQQ0hfRFBfQgkJMHhlNDEwMAo+ICAjZGVmaW5lIFBD SF9EUEJfQVVYX0NIX0NUTAkweGU0MTEwCj4gICNkZWZpbmUgUENIX0RQQl9BVVhfQ0hfREFUQTEJ MHhlNDExNAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IDkzN2JhMzEuLmZkOTEwMDYg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNTU5LDcgKzU1OSw5IEBAIHN0YXRp YyB1MzIgX3BwX2N0cmxfcmVnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIHsKPiAgCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ICAKPiAt CWlmIChIQVNfUENIX1NQTElUKGRldikpCj4gKwlpZiAoSVNfQlJPWFRPTihkZXYpKQo+ICsJCXJl dHVybiBCWFRfUFBfQ09OVFJPTCgwKTsKPiArCWVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkK PiAgCQlyZXR1cm4gUENIX1BQX0NPTlRST0w7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIFZMVl9QSVBF X1BQX0NPTlRST0wodmx2X3Bvd2VyX3NlcXVlbmNlcl9waXBlKGludGVsX2RwKSk7Cj4gQEAgLTU2 OSw3ICs1NzEsOSBAQCBzdGF0aWMgdTMyIF9wcF9zdGF0X3JlZyhzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2 KGludGVsX2RwKTsKPiAgCj4gLQlpZiAoSEFTX1BDSF9TUExJVChkZXYpKQo+ICsJaWYgKElTX0JS T1hUT04oZGV2KSkKPiArCQlyZXR1cm4gQlhUX1BQX1NUQVRVUygwKTsKPiArCWVsc2UgaWYgKEhB U19QQ0hfU1BMSVQoZGV2KSkKPiAgCQlyZXR1cm4gUENIX1BQX1NUQVRVUzsKPiAgCWVsc2UKPiAg CQlyZXR1cm4gVkxWX1BJUEVfUFBfU1RBVFVTKHZsdl9wb3dlcl9zZXF1ZW5jZXJfcGlwZShpbnRl bF9kcCkpOwo+IEBAIC00OTU0LDggKzQ5NTgsOCBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2Vy X3NlcXVlbmNlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBlZHBfcG93ZXJf c2VxIGN1ciwgdmJ0LCBzcGVjLAo+ICAJCSpmaW5hbCA9ICZpbnRlbF9kcC0+cHBzX2RlbGF5czsK PiAtCXUzMiBwcF9vbiwgcHBfb2ZmLCBwcF9kaXYsIHBwOwo+IC0JaW50IHBwX2N0cmxfcmVnLCBw cF9vbl9yZWcsIHBwX29mZl9yZWcsIHBwX2Rpdl9yZWc7Cj4gKwl1MzIgcHBfb24sIHBwX29mZiwg cHBfZGl2ID0gMCwgcHBfY3RsID0gMCwgcHA7Cj4gKwlpbnQgcHBfY3RybF9yZWcsIHBwX29uX3Jl ZywgcHBfb2ZmX3JlZywgcHBfZGl2X3JlZyA9IDA7CgpOb3RlIHRoYXQgcHAgaXMgYWN0dWFsbHkg dXNlZCBmb3IgcHBfY3RsLiBZb3UgY2FuIHJlbmFtZSB0aGF0IGlmIHlvdQp3YW50LgoKPiAgCj4g IAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiAgCj4gQEAgLTQ5 NjMsNyArNDk2NywxNiBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJaWYgKGZpbmFsLT50MTFfdDEyICE9IDApCj4gIAkJcmV0 dXJuOwo+ICAKPiAtCWlmIChIQVNfUENIX1NQTElUKGRldikpIHsKPiArCWlmIChJU19CUk9YVE9O KGRldikpIHsKPiArCQkvKgo+ICsJCSAqIFRPRE86IEJYVCBoYXMgMiBzZXRzIG9mIFBQUyByZWdp c3RlcnMuCj4gKwkJICogQ29ycmVjdCBSZWdpc3RlciBmb3IgQnJveHRvbiBuZWVkIHRvIGJlIGlk ZW50aWZpZWQKPiArCQkgKiB1c2luZyBWQlQuIGhhcmRjb2RpbmcgZm9yIG5vdwo+ICsJCSAqLwo+ ICsJCXBwX2N0cmxfcmVnID0gQlhUX1BQX0NPTlRST0woMCk7Cj4gKwkJcHBfb25fcmVnID0gQlhU X1BQX09OX0RFTEFZUygwKTsKPiArCQlwcF9vZmZfcmVnID0gQlhUX1BQX09GRl9ERUxBWVMoMCk7 Cj4gKwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewo+ICAJCXBwX2N0cmxfcmVnID0g UENIX1BQX0NPTlRST0w7Cj4gIAkJcHBfb25fcmVnID0gUENIX1BQX09OX0RFTEFZUzsKPiAgCQlw cF9vZmZfcmVnID0gUENIX1BQX09GRl9ERUxBWVM7Cj4gQEAgLTQ5ODQsNyArNDk5NywxMCBAQCBp bnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAKPiAgCXBwX29uID0gSTkxNV9SRUFEKHBwX29uX3JlZyk7Cj4gIAlwcF9vZmYgPSBJOTE1 X1JFQUQocHBfb2ZmX3JlZyk7Cj4gLQlwcF9kaXYgPSBJOTE1X1JFQUQocHBfZGl2X3JlZyk7Cj4g KwlpZiAoIUlTX0JST1hUT04oZGV2KSkKPiArCQlwcF9kaXYgPSBJOTE1X1JFQUQocHBfZGl2X3Jl Zyk7Cj4gKwllbHNlCj4gKwkJcHBfY3RsID0gSTkxNV9SRUFEKHBwX2N0cmxfcmVnKTsKCllvdSBh bHJlYWR5IGhhdmUgcHBfY3RsIGluIHBwIGF0IHRoaXMgcG9pbnQuIEl0IGlzIHJlYWQgdXNpbmcK aXJvbmxha2VfZ2V0X3BwX2NvbnRyb2wsIHdoaWNoIGFsc28gbmVlZHMgYW4gdXBkYXRlIGZvciBi eHQsIGFzIEFGQUlDVApwYW5lbCB1bmxvY2sgaXMgbm8gbG9uZ2VyIG5lZWRlZCBhbmQgTUJaLgoK PiAgCj4gIAkvKiBQdWxsIHRpbWluZyB2YWx1ZXMgb3V0IG9mIHJlZ2lzdGVycyAqLwo+ICAJY3Vy LnQxX3QzID0gKHBwX29uICYgUEFORUxfUE9XRVJfVVBfREVMQVlfTUFTSykgPj4KPiBAQCAtNDk5 OSw3ICs1MDE1LDExIEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gIAljdXIudDEwID0gKHBwX29mZiAmIFBBTkVMX1BPV0VSX0RP V05fREVMQVlfTUFTSykgPj4KPiAgCQlQQU5FTF9QT1dFUl9ET1dOX0RFTEFZX1NISUZUOwo+ICAK PiAtCWN1ci50MTFfdDEyID0gKChwcF9kaXYgJiBQQU5FTF9QT1dFUl9DWUNMRV9ERUxBWV9NQVNL KSA+Pgo+ICsJaWYgKElTX0JST1hUT04oZGV2KSkKPiArCQljdXIudDExX3QxMiA9ICgoKHBwX2N0 bCAmIEJYVF9QT1dFUl9DWUNMRV9ERUxBWV9NQVNLKSA+Pgo+ICsJCQlCWFRfUE9XRVJfQ1lDTEVf REVMQVlfU0hJRlQpIC0gMSkgKiAxMDAwOwo+ICsJZWxzZQo+ICsJCWN1ci50MTFfdDEyID0gKChw cF9kaXYgJiBQQU5FTF9QT1dFUl9DWUNMRV9ERUxBWV9NQVNLKSA+Pgo+ICAJCSAgICAgICBQQU5F TF9QT1dFUl9DWUNMRV9ERUxBWV9TSElGVCkgKiAxMDAwOwo+ICAKPiAgCURSTV9ERUJVR19LTVMo ImN1ciB0MV90MyAlZCB0OCAlZCB0OSAlZCB0MTAgJWQgdDExX3QxMiAlZFxuIiwKPiBAQCAtNTA1 NywxMyArNTA3NywyMyBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdp c3RlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAl1MzIgcHBfb24sIHBwX29mZiwgcHBf ZGl2LCBwb3J0X3NlbCA9IDA7Cj4gIAlpbnQgZGl2ID0gSEFTX1BDSF9TUExJVChkZXYpID8gaW50 ZWxfcGNoX3Jhd2NsayhkZXYpIDogaW50ZWxfaHJhd2NsayhkZXYpOwo+IC0JaW50IHBwX29uX3Jl ZywgcHBfb2ZmX3JlZywgcHBfZGl2X3JlZzsKPiArCWludCBwcF9vbl9yZWcsIHBwX29mZl9yZWcs IHBwX2Rpdl9yZWcgPSAwLCBwcF9jdHJsX3JlZzsKPiAgCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0Owo+ICAJY29uc3Qgc3RydWN0IGVkcF9wb3dlcl9zZXEg KnNlcSA9ICZpbnRlbF9kcC0+cHBzX2RlbGF5czsKPiAgCj4gIAlsb2NrZGVwX2Fzc2VydF9oZWxk KCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiAgCj4gLQlpZiAoSEFTX1BDSF9TUExJVChkZXYpKSB7 Cj4gKwlpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gKwkJLyoKPiArCQkgKiBUT0RPOiBCWFQgaGFz IDIgc2V0cyBvZiBQUFMgcmVnaXN0ZXJzLgo+ICsJCSAqIENvcnJlY3QgUmVnaXN0ZXIgZm9yIEJy b3h0b24gbmVlZCB0byBiZSBpZGVudGlmaWVkCj4gKwkJICogdXNpbmcgVkJULiBoYXJkY29kaW5n IGZvciBub3cKPiArCQkgKi8KPiArCQlwcF9jdHJsX3JlZyA9IEJYVF9QUF9DT05UUk9MKDApOwo+ ICsJCXBwX29uX3JlZyA9IEJYVF9QUF9PTl9ERUxBWVMoMCk7Cj4gKwkJcHBfb2ZmX3JlZyA9IEJY VF9QUF9PRkZfREVMQVlTKDApOwo+ICsKPiArCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXYp KSB7Cj4gIAkJcHBfb25fcmVnID0gUENIX1BQX09OX0RFTEFZUzsKPiAgCQlwcF9vZmZfcmVnID0g UENIX1BQX09GRl9ERUxBWVM7Cj4gIAkJcHBfZGl2X3JlZyA9IFBDSF9QUF9ESVZJU09SOwo+IEBA IC01MDg5LDkgKzUxMTksMTYgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJf cmVnaXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJIChzZXEtPnQxMCA8PCBQQU5F TF9QT1dFUl9ET1dOX0RFTEFZX1NISUZUKTsKPiAgCS8qIENvbXB1dGUgdGhlIGRpdmlzb3IgZm9y IHRoZSBwcCBjbG9jaywgc2ltcGx5IG1hdGNoIHRoZSBCc3BlYwo+ICAJICogZm9ybXVsYS4gKi8K PiAtCXBwX2RpdiA9ICgoMTAwICogZGl2KS8yIC0gMSkgPDwgUFBfUkVGRVJFTkNFX0RJVklERVJf U0hJRlQ7Cj4gLQlwcF9kaXYgfD0gKERJVl9ST1VORF9VUChzZXEtPnQxMV90MTIsIDEwMDApCj4g LQkJCTw8IFBBTkVMX1BPV0VSX0NZQ0xFX0RFTEFZX1NISUZUKTsKPiArCWlmIChJU19CUk9YVE9O KGRldikpIHsKPiArCQlwcF9kaXYgPSBJOTE1X1JFQUQocHBfY3RybF9yZWcpOwo+ICsJCXBwX2Rp diAmPSB+QlhUX1BPV0VSX0NZQ0xFX0RFTEFZX01BU0s7Cj4gKwkJcHBfZGl2IHw9IChESVZfUk9V TkRfVVAoKHNlcS0+dDExX3QxMiArIDEpLCAxMDAwKQo+ICsJCQkJPDwgQlhUX1BPV0VSX0NZQ0xF X0RFTEFZX1NISUZUKTsKPiArCX0gZWxzZSB7Cj4gKwkJcHBfZGl2ID0gKCgxMDAgKiBkaXYpLzIg LSAxKSA8PCBQUF9SRUZFUkVOQ0VfRElWSURFUl9TSElGVDsKPiArCQlwcF9kaXYgfD0gKERJVl9S T1VORF9VUChzZXEtPnQxMV90MTIsIDEwMDApCj4gKwkJCQk8PCBQQU5FTF9QT1dFUl9DWUNMRV9E RUxBWV9TSElGVCk7Cj4gKwl9Cj4gIAo+ICAJLyogSGFzd2VsbCBkb2Vzbid0IGhhdmUgYW55IHBv cnQgc2VsZWN0aW9uIGJpdHMgZm9yIHRoZSBwYW5lbAo+ICAJICogcG93ZXIgc2VxdWVuY2VyIGFu eSBtb3JlLiAqLwo+IEBAIC01MTA4LDExICs1MTQ1LDE3IEBAIGludGVsX2RwX2luaXRfcGFuZWxf cG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAg CUk5MTVfV1JJVEUocHBfb25fcmVnLCBwcF9vbik7Cj4gIAlJOTE1X1dSSVRFKHBwX29mZl9yZWcs IHBwX29mZik7Cj4gLQlJOTE1X1dSSVRFKHBwX2Rpdl9yZWcsIHBwX2Rpdik7Cj4gKwlpZiAoSVNf QlJPWFRPTihkZXYpKQo+ICsJCUk5MTVfV1JJVEUocHBfY3RybF9yZWcsIHBwX2Rpdik7Cj4gKwll bHNlCj4gKwkJSTkxNV9XUklURShwcF9kaXZfcmVnLCBwcF9kaXYpOwo+ICAKPiAgCURSTV9ERUJV R19LTVMoInBhbmVsIHBvd2VyIHNlcXVlbmNlciByZWdpc3RlciBzZXR0aW5nczogUFBfT04gJSN4 LCBQUF9PRkYgJSN4LCBQUF9ESVYgJSN4XG4iLAo+ICAJCSAgICAgIEk5MTVfUkVBRChwcF9vbl9y ZWcpLAo+ICAJCSAgICAgIEk5MTVfUkVBRChwcF9vZmZfcmVnKSwKPiArCQkgICAgICBJU19CUk9Y VE9OKGRldikgPwo+ICsJCSAgICAgICgoSTkxNV9SRUFEKHBwX2N0cmxfcmVnKSAmJiBCWFRfUE9X RVJfQ1lDTEVfREVMQVlfTUFTSykKClNob3VsZCBiZSAmIG5vdCAmJi4gTm90IHN1cmUgaWYgdGhl IHNoaWZ0IGlzIG5lZWRlZCByZWFsbHkuCgpCUiwKSmFuaS4KCj4gKwkJICAgICAgID4+IEJYVF9Q T1dFUl9DWUNMRV9ERUxBWV9TSElGVCkgOgo+ICAJCSAgICAgIEk5MTVfUkVBRChwcF9kaXZfcmVn KSk7Cj4gIH0KPiAgCj4gLS0gCj4gMi4wLjEKPgoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBPcGVu IFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=