From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?TXlsw6huZQ==?= Josserand Subject: Re: [PATCH v3 1/7] ARM: sun8i: smp: Add support for A83T Date: Thu, 22 Feb 2018 08:47:57 +0100 Message-ID: <20180222084757.29e6f370@dell-desktop.home> References: <20180219081837.15482-1-mylene.josserand@bootlin.com> <20180219081837.15482-2-mylene.josserand@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Chen-Yu Tsai Cc: Mark Rutland , devicetree , quentin.schulz@bootlin.com, Maxime Ripard , Russell King , linux-kernel , Rob Herring , LABBE Corentin , thomas.petazzoni@bootlin.com, linux-arm-kernel List-Id: devicetree@vger.kernel.org SGVsbG8gQ2hlbi1ZdSwKCk9uIFR1ZSwgMjAgRmViIDIwMTggMTE6MzI6MDMgKzA4MDAKQ2hlbi1Z dSBUc2FpIDx3ZW5zQGNzaWUub3JnPiB3cm90ZToKCj4gT24gTW9uLCBGZWIgMTksIDIwMTggYXQg NDoxOCBQTSwgTXlsw6huZSBKb3NzZXJhbmQKPiA8bXlsZW5lLmpvc3NlcmFuZEBib290bGluLmNv bT4gd3JvdGU6Cj4gPiBBZGQgdGhlIHN1cHBvcnQgZm9yIEE4M1QuCj4gPgo+ID4gQTgzVCBTb0Mg aGFzIGFuIGFkZGl0aW9uYWwgcmVnaXN0ZXIgdGhhbiBBODAgdG8gaGFuZGxlIENQVSBjb25maWd1 cmF0aW9uczoKPiA+IFJfQ1BVU19DRkcuIEluZm9ybWF0aW9uIGFib3V0IHRoZSByZWdpc3RlciBj b21lcyBmcm9tIEFsbHdpbm5lcidzIEJTUAo+ID4gZHJpdmVyLgo+ID4gQW4gaW1wb3J0YW50IGRp ZmZlcmVuY2UgaXMgdGhlIFBvd2VyIE9mZiBHYXRpbmcgcmVnaXN0ZXIgZm9yIGNsdXN0ZXJzCj4g PiB3aGljaCBpcyBCSVQoNCkgaW4gY2FzZSBvZiBTVU45SS1BODAgYW5kIEJJVCgwKSBpbiBjYXNl IG9mIFNVTjhJLUE4M1QuCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogTXlsw6huZSBKb3NzZXJhbmQg PG15bGVuZS5qb3NzZXJhbmRAYm9vdGxpbi5jb20+Cj4gPiAtLS0KPiA+ICBhcmNoL2FybS9tYWNo LXN1bnhpL0tjb25maWcgIHwgICAyICstCj4gPiAgYXJjaC9hcm0vbWFjaC1zdW54aS9tY19zbXAu YyB8IDIzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tICAKPiAK PiBUaGUgc2FtZSBoaWdoLWxldmVsIGNvbW1lbnRzIGFzIE1heGltZS4gU3BsaXR0aW5nIHRoZSBw YXRjaAo+IHdpbGwgbWFrZSB0aGlzIG11Y2ggZWFzaWVyIHRvIHVuZGVyc3RhbmQuCgpZZXAsIEkg d2lsbCBkbyBpdCBpbiBuZXh0IHZlcnNpb24uCgo+IAo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTk4 IGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9hcmNo L2FybS9tYWNoLXN1bnhpL0tjb25maWcgYi9hcmNoL2FybS9tYWNoLXN1bnhpL0tjb25maWcKPiA+ IGluZGV4IGNlNTNjZWFmNGNjNS4uYTBhZDM1YzQxYzAyIDEwMDY0NAo+ID4gLS0tIGEvYXJjaC9h cm0vbWFjaC1zdW54aS9LY29uZmlnCj4gPiArKysgYi9hcmNoL2FybS9tYWNoLXN1bnhpL0tjb25m aWcKPiA+IEBAIC01MSw3ICs1MSw3IEBAIGNvbmZpZyBNQUNIX1NVTjlJCj4gPiAgY29uZmlnIEFS Q0hfU1VOWElfTUNfU01QCj4gPiAgICAgICAgIGJvb2wKPiA+ICAgICAgICAgZGVwZW5kcyBvbiBT TVAKPiA+IC0gICAgICAgZGVmYXVsdCBNQUNIX1NVTjlJCj4gPiArICAgICAgIGRlZmF1bHQgeSBp ZiBNQUNIX1NVTjlJIHx8IE1BQ0hfU1VOOEkKPiA+ICAgICAgICAgc2VsZWN0IEFSTV9DQ0k0MDBf UE9SVF9DVFJMCj4gPiAgICAgICAgIHNlbGVjdCBBUk1fQ1BVX1NVU1BFTkQKPiA+Cj4gPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1zdW54aS9tY19zbXAuYyBiL2FyY2gvYXJtL21hY2gtc3Vu eGkvbWNfc21wLmMKPiA+IGluZGV4IDExZTQ2YzZlZmI5MC4uZmVjNTkyYmY2OGI0IDEwMDY0NAo+ ID4gLS0tIGEvYXJjaC9hcm0vbWFjaC1zdW54aS9tY19zbXAuYwo+ID4gKysrIGIvYXJjaC9hcm0v bWFjaC1zdW54aS9tY19zbXAuYwo+ID4gQEAgLTU1LDIwICs1NSwyOSBAQAo+ID4gICNkZWZpbmUg Q1BVQ0ZHX0NYX1JTVF9DVFJMX0wyX1JTVCAgICAgIEJJVCg4KQo+ID4gICNkZWZpbmUgQ1BVQ0ZH X0NYX1JTVF9DVFJMX0NYX1JTVChuKSAgIEJJVCg0ICsgKG4pKQo+ID4gICNkZWZpbmUgQ1BVQ0ZH X0NYX1JTVF9DVFJMX0NPUkVfUlNUKG4pIEJJVChuKQo+ID4gKyNkZWZpbmUgQ1BVQ0ZHX0NYX1JT VF9DVFJMX0NPUkVfUlNUX0FMTCAgICAgICAgKDB4ZiA8PCAwKQo+ID4KPiA+ICAjZGVmaW5lIFBS Q01fQ1BVX1BPX1JTVF9DVFJMKGMpICAgICAgICAgICAgICAgICgweDQgKyAweDQgKiAoYykpCj4g PiAgI2RlZmluZSBQUkNNX0NQVV9QT19SU1RfQ1RSTF9DT1JFKG4pICAgQklUKG4pCj4gPiAgI2Rl ZmluZSBQUkNNX0NQVV9QT19SU1RfQ1RSTF9DT1JFX0FMTCAgMHhmCj4gPiAgI2RlZmluZSBQUkNN X1BXUk9GRl9HQVRJTkdfUkVHKGMpICAgICAgKDB4MTAwICsgMHg0ICogKGMpKQo+ID4gLSNkZWZp bmUgUFJDTV9QV1JPRkZfR0FUSU5HX1JFR19DTFVTVEVSIEJJVCg0KQo+ID4gKy8qIFRoZSBwb3dl ciBvZmYgcmVnaXN0ZXIgZm9yIGNsdXN0ZXJzIGFyZSBkaWZmZXJlbnQgZnJvbSBTVU45SSBhbmQg U1VOOEkgKi8KPiA+ICsjZGVmaW5lIFBSQ01fUFdST0ZGX0dBVElOR19SRUdfQ0xVU1RFUl9TVU44 SSAgIEJJVCgwKQo+ID4gKyNkZWZpbmUgUFJDTV9QV1JPRkZfR0FUSU5HX1JFR19DTFVTVEVSX1NV TjlJICAgQklUKDQpCj4gPiAgI2RlZmluZSBQUkNNX1BXUk9GRl9HQVRJTkdfUkVHX0NPUkUobikg QklUKG4pCj4gPiAgI2RlZmluZSBQUkNNX1BXUl9TV0lUQ0hfUkVHKGMsIGNwdSkgICAgKDB4MTQw ICsgMHgxMCAqIChjKSArIDB4NCAqIChjcHUpKQo+ID4gICNkZWZpbmUgUFJDTV9DUFVfU09GVF9F TlRSWV9SRUcgICAgICAgICAgICAgICAgMHgxNjQKPiA+Cj4gPiArLyogUl9DUFVDRkcgcmVnaXN0 ZXJzLCBzcGVjaWZpYyB0byBTVU44SSAqLwo+ID4gKyNkZWZpbmUgUl9DUFVDRkdfQ0xVU1RFUl9Q T19SU1RfQ1RSTChjKSAgICAgICAgKDB4MzAgKyAoYykgKiAweDQpCj4gPiArI2RlZmluZSBSX0NQ VUNGR19DTFVTVEVSX1BPX1JTVF9DVFJMX0NPUkUobikgICBCSVQobikKPiA+ICsjZGVmaW5lIFJf Q1BVQ0ZHX0NQVV9TT0ZUX0VOVFJZX1JFRyAgICAweDAxYTQKPiA+ICsKPiA+ICAjZGVmaW5lIENQ VTBfU1VQUE9SVF9IT1RQTFVHX01BR0lDMCAgICAweEZBNTAzOTJGCj4gPiAgI2RlZmluZSBDUFUw X1NVUFBPUlRfSE9UUExVR19NQUdJQzEgICAgMHg3OTBEQ0EzQQo+ID4KPiA+ICBzdGF0aWMgdm9p ZCBfX2lvbWVtICpjcHVjZmdfYmFzZTsKPiA+ICtzdGF0aWMgdm9pZCBfX2lvbWVtICpyX2NwdWNm Z19iYXNlOwo+ID4gIHN0YXRpYyB2b2lkIF9faW9tZW0gKnByY21fYmFzZTsKPiA+ICBzdGF0aWMg dm9pZCBfX2lvbWVtICpzcmFtX2Jfc21wX2Jhc2U7Cj4gPgo+ID4gQEAgLTE1Nyw2ICsxNjYsMTYg QEAgc3RhdGljIGludCBzdW54aV9jcHVfcG93ZXJ1cCh1bnNpZ25lZCBpbnQgY3B1LCB1bnNpZ25l ZCBpbnQgY2x1c3RlcikKPiA+ICAgICAgICAgcmVnICY9IH5QUkNNX0NQVV9QT19SU1RfQ1RSTF9D T1JFKGNwdSk7Cj4gPiAgICAgICAgIHdyaXRlbChyZWcsIHByY21fYmFzZSArIFBSQ01fQ1BVX1BP X1JTVF9DVFJMKGNsdXN0ZXIpKTsKPiA+Cj4gPiArICAgICAgIGlmIChyX2NwdWNmZ19iYXNlKSB7 Cj4gPiArICAgICAgICAgICAgICAgLyogYXNzZXJ0IGNwdSBwb3dlci1vbiByZXNldCAqLwo+ID4g KyAgICAgICAgICAgICAgIHJlZyAgPSByZWFkbChyX2NwdWNmZ19iYXNlICsKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUl9DUFVDRkdfQ0xVU1RFUl9QT19SU1RfQ1RSTChjbHVzdGVy KSk7Cj4gPiArICAgICAgICAgICAgICAgcmVnICY9IH4oUl9DUFVDRkdfQ0xVU1RFUl9QT19SU1Rf Q1RSTF9DT1JFKGNwdSkpOwo+ID4gKyAgICAgICAgICAgICAgIHdyaXRlbChyZWcsIHJfY3B1Y2Zn X2Jhc2UgKwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBSX0NQVUNGR19DTFVTVEVSX1BPX1JT VF9DVFJMKGNsdXN0ZXIpKTsKPiA+ICsgICAgICAgICAgICAgICB1ZGVsYXkoMTApOwo+ID4gKyAg ICAgICB9Cj4gPiArCj4gPiAgICAgICAgIC8qIENvcnRleC1BNzogaG9sZCBMMSByZXNldCBkaXNh YmxlIHNpZ25hbCBsb3cgKi8KPiA+ICAgICAgICAgaWYgKCFzdW54aV9jb3JlX2lzX2NvcnRleF9h MTUoY3B1LCBjbHVzdGVyKSkgewo+ID4gICAgICAgICAgICAgICAgIHJlZyA9IHJlYWRsKGNwdWNm Z19iYXNlICsgQ1BVQ0ZHX0NYX0NUUkxfUkVHMChjbHVzdGVyKSk7Cj4gPiBAQCAtMTgwLDE3ICsx OTksMzcgQEAgc3RhdGljIGludCBzdW54aV9jcHVfcG93ZXJ1cCh1bnNpZ25lZCBpbnQgY3B1LCB1 bnNpZ25lZCBpbnQgY2x1c3RlcikKPiA+ICAgICAgICAgLyogb3BlbiBwb3dlciBzd2l0Y2ggKi8K PiA+ICAgICAgICAgc3VueGlfY3B1X3Bvd2VyX3N3aXRjaF9zZXQoY3B1LCBjbHVzdGVyLCB0cnVl KTsKPiA+Cj4gPiArICAgICAgIC8qIEhhbmRsZSBBODNUIGJpdCBzd2FwICovCj4gPiArICAgICAg IGlmIChvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUoImFsbHdpbm5lcixzdW44aS1hODN0IikpIHsK PiA+ICsgICAgICAgICAgICAgICBpZiAoY3B1ID09IDApCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBjcHUgPSA0Owo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiAgICAgICAgIC8qIGNsZWFyIHBy b2Nlc3NvciBwb3dlciBnYXRlICovCj4gPiAgICAgICAgIHJlZyA9IHJlYWRsKHByY21fYmFzZSAr IFBSQ01fUFdST0ZGX0dBVElOR19SRUcoY2x1c3RlcikpOwo+ID4gICAgICAgICByZWcgJj0gflBS Q01fUFdST0ZGX0dBVElOR19SRUdfQ09SRShjcHUpOwo+ID4gICAgICAgICB3cml0ZWwocmVnLCBw cmNtX2Jhc2UgKyBQUkNNX1BXUk9GRl9HQVRJTkdfUkVHKGNsdXN0ZXIpKTsKPiA+ICAgICAgICAg dWRlbGF5KDIwKTsKPiA+Cj4gPiArICAgICAgIGlmIChvZl9tYWNoaW5lX2lzX2NvbXBhdGlibGUo ImFsbHdpbm5lcixzdW44aS1hODN0IikpIHsKPiA+ICsgICAgICAgICAgICAgICBpZiAoY3B1ID09 IDQpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBjcHUgPSAwOwo+ID4gKyAgICAgICB9Cj4g PiArCj4gPiAgICAgICAgIC8qIGRlLWFzc2VydCBwcm9jZXNzb3IgcG93ZXItb24gcmVzZXQgKi8K PiA+ICAgICAgICAgcmVnID0gcmVhZGwocHJjbV9iYXNlICsgUFJDTV9DUFVfUE9fUlNUX0NUUkwo Y2x1c3RlcikpOwo+ID4gICAgICAgICByZWcgfD0gUFJDTV9DUFVfUE9fUlNUX0NUUkxfQ09SRShj cHUpOwo+ID4gICAgICAgICB3cml0ZWwocmVnLCBwcmNtX2Jhc2UgKyBQUkNNX0NQVV9QT19SU1Rf Q1RSTChjbHVzdGVyKSk7Cj4gPgo+ID4gKyAgICAgICBpZiAocl9jcHVjZmdfYmFzZSkgewo+ID4g KyAgICAgICAgICAgICAgIHJlZyAgPSByZWFkbChyX2NwdWNmZ19iYXNlICsKPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUl9DUFVDRkdfQ0xVU1RFUl9QT19SU1RfQ1RSTChjbHVzdGVy KSk7Cj4gPiArICAgICAgICAgICAgICAgcmVnIHw9IFJfQ1BVQ0ZHX0NMVVNURVJfUE9fUlNUX0NU UkxfQ09SRShjcHUpOwo+ID4gKyAgICAgICAgICAgICAgIHdyaXRlbChyZWcsIHJfY3B1Y2ZnX2Jh c2UgKwo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBSX0NQVUNGR19DTFVTVEVSX1BPX1JTVF9D VFJMKGNsdXN0ZXIpKTsKPiA+ICsgICAgICAgICAgICAgICB1ZGVsYXkoMTApOwo+ID4gKyAgICAg ICB9Cj4gPiArCj4gPiAgICAgICAgIC8qIGRlLWFzc2VydCBhbGwgcHJvY2Vzc29yIHJlc2V0cyAq Lwo+ID4gICAgICAgICByZWcgPSByZWFkbChjcHVjZmdfYmFzZSArIENQVUNGR19DWF9SU1RfQ1RS TChjbHVzdGVyKSk7Cj4gPiAgICAgICAgIHJlZyB8PSBDUFVDRkdfQ1hfUlNUX0NUUkxfREJHX1JT VChjcHUpOwo+ID4gQEAgLTIxMiw2ICsyNTEsMTQgQEAgc3RhdGljIGludCBzdW54aV9jbHVzdGVy X3Bvd2VydXAodW5zaWduZWQgaW50IGNsdXN0ZXIpCj4gPiAgICAgICAgIGlmIChjbHVzdGVyID49 IFNVTlhJX05SX0NMVVNURVJTKQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ ID4KPiA+ICsgICAgICAgLyogRm9yIEE4M1QsIGFzc2VydCBjbHVzdGVyIGNvcmVzIHJlc2V0cyAq Lwo+ID4gKyAgICAgICBpZiAob2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJhbGx3aW5uZXIsc3Vu OGktYTgzdCIpKSB7Cj4gPiArICAgICAgICAgICAgICAgcmVnID0gcmVhZGwoY3B1Y2ZnX2Jhc2Ug KyBDUFVDRkdfQ1hfUlNUX0NUUkwoY2x1c3RlcikpOwo+ID4gKyAgICAgICAgICAgICAgIHJlZyAm PSB+Q1BVQ0ZHX0NYX1JTVF9DVFJMX0NPUkVfUlNUX0FMTDsgICAvKiBDb3JlIFJlc2V0ICAgICov Cj4gPiArICAgICAgICAgICAgICAgd3JpdGVsKHJlZywgY3B1Y2ZnX2Jhc2UgKyBDUFVDRkdfQ1hf UlNUX0NUUkwoY2x1c3RlcikpOwo+ID4gKyAgICAgICAgICAgICAgIHVkZWxheSgxMCk7Cj4gPiAr ICAgICAgIH0KPiA+ICsKPiA+ICAgICAgICAgLyogYXNzZXJ0IEFDSU5BQ1RNICovCj4gPiAgICAg ICAgIHJlZyA9IHJlYWRsKGNwdWNmZ19iYXNlICsgQ1BVQ0ZHX0NYX0NUUkxfUkVHMShjbHVzdGVy KSk7Cj4gPiAgICAgICAgIHJlZyB8PSBDUFVDRkdfQ1hfQ1RSTF9SRUcxX0FDSU5BQ1RNOwo+ID4g QEAgLTIyMiw2ICsyNjksMTYgQEAgc3RhdGljIGludCBzdW54aV9jbHVzdGVyX3Bvd2VydXAodW5z aWduZWQgaW50IGNsdXN0ZXIpCj4gPiAgICAgICAgIHJlZyAmPSB+UFJDTV9DUFVfUE9fUlNUX0NU UkxfQ09SRV9BTEw7Cj4gPiAgICAgICAgIHdyaXRlbChyZWcsIHByY21fYmFzZSArIFBSQ01fQ1BV X1BPX1JTVF9DVFJMKGNsdXN0ZXIpKTsKPiA+Cj4gPiArICAgICAgIC8qIGFzc2VydCBjbHVzdGVy IGNvcmVzIHJlc2V0cyAqLwo+ID4gKyAgICAgICBpZiAocl9jcHVjZmdfYmFzZSkgewo+ID4gKyAg ICAgICAgICAgICAgIHJlZyAgPSByZWFkbChyX2NwdWNmZ19iYXNlICsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUl9DUFVDRkdfQ0xVU1RFUl9QT19SU1RfQ1RSTChjbHVzdGVyKSk7 Cj4gPiArICAgICAgICAgICAgICAgcmVnICY9IH5DUFVDRkdfQ1hfUlNUX0NUUkxfQ09SRV9SU1Rf QUxMOwo+ID4gKyAgICAgICAgICAgICAgIHdyaXRlbChyZWcsIHJfY3B1Y2ZnX2Jhc2UgKwo+ID4g KyAgICAgICAgICAgICAgICAgICAgICBSX0NQVUNGR19DTFVTVEVSX1BPX1JTVF9DVFJMKGNsdXN0 ZXIpKTsKPiA+ICsgICAgICAgICAgICAgICB1ZGVsYXkoMTApOwo+ID4gKyAgICAgICB9Cj4gPiAr Cj4gPiAgICAgICAgIC8qIGFzc2VydCBjbHVzdGVyIHJlc2V0cyAqLwo+ID4gICAgICAgICByZWcg PSByZWFkbChjcHVjZmdfYmFzZSArIENQVUNGR19DWF9SU1RfQ1RSTChjbHVzdGVyKSk7Cj4gPiAg ICAgICAgIHJlZyAmPSB+Q1BVQ0ZHX0NYX1JTVF9DVFJMX0RCR19TT0NfUlNUOwo+ID4gQEAgLTI1 Miw3ICszMDksMTAgQEAgc3RhdGljIGludCBzdW54aV9jbHVzdGVyX3Bvd2VydXAodW5zaWduZWQg aW50IGNsdXN0ZXIpCj4gPgo+ID4gICAgICAgICAvKiBjbGVhciBjbHVzdGVyIHBvd2VyIGdhdGUg Ki8KPiA+ICAgICAgICAgcmVnID0gcmVhZGwocHJjbV9iYXNlICsgUFJDTV9QV1JPRkZfR0FUSU5H X1JFRyhjbHVzdGVyKSk7Cj4gPiAtICAgICAgIHJlZyAmPSB+UFJDTV9QV1JPRkZfR0FUSU5HX1JF R19DTFVTVEVSOwo+ID4gKyAgICAgICBpZiAob2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJhbGx3 aW5uZXIsc3VuOGktYTgzdCIpKQo+ID4gKyAgICAgICAgICAgICAgIHJlZyAmPSB+UFJDTV9QV1JP RkZfR0FUSU5HX1JFR19DTFVTVEVSX1NVTjhJOwo+ID4gKyAgICAgICBlbHNlCj4gPiArICAgICAg ICAgICAgICAgcmVnICY9IH5QUkNNX1BXUk9GRl9HQVRJTkdfUkVHX0NMVVNURVJfU1VOOUk7Cj4g PiAgICAgICAgIHdyaXRlbChyZWcsIHByY21fYmFzZSArIFBSQ01fUFdST0ZGX0dBVElOR19SRUco Y2x1c3RlcikpOwo+ID4gICAgICAgICB1ZGVsYXkoMjApOwo+ID4KPiA+IEBAIC01MTYsNyArNTc2 LDEwIEBAIHN0YXRpYyBpbnQgc3VueGlfY2x1c3Rlcl9wb3dlcmRvd24odW5zaWduZWQgaW50IGNs dXN0ZXIpCj4gPiAgICAgICAgIC8qIGdhdGUgY2x1c3RlciBwb3dlciAqLwo+ID4gICAgICAgICBw cl9kZWJ1ZygiJXM6IGdhdGUgY2x1c3RlciBwb3dlclxuIiwgX19mdW5jX18pOwo+ID4gICAgICAg ICByZWcgPSByZWFkbChwcmNtX2Jhc2UgKyBQUkNNX1BXUk9GRl9HQVRJTkdfUkVHKGNsdXN0ZXIp KTsKPiA+IC0gICAgICAgcmVnIHw9IFBSQ01fUFdST0ZGX0dBVElOR19SRUdfQ0xVU1RFUjsKPiA+ ICsgICAgICAgaWYgKG9mX21hY2hpbmVfaXNfY29tcGF0aWJsZSgiYWxsd2lubmVyLHN1bjhpLWE4 M3QiKSkKPiA+ICsgICAgICAgICAgICAgICByZWcgfD0gUFJDTV9QV1JPRkZfR0FUSU5HX1JFR19D TFVTVEVSX1NVTjhJOwo+ID4gKyAgICAgICBlbHNlCj4gPiArICAgICAgICAgICAgICAgcmVnIHw9 IFBSQ01fUFdST0ZGX0dBVElOR19SRUdfQ0xVU1RFUl9TVU45STsKPiA+ICAgICAgICAgd3JpdGVs KHJlZywgcHJjbV9iYXNlICsgUFJDTV9QV1JPRkZfR0FUSU5HX1JFRyhjbHVzdGVyKSk7Cj4gPiAg ICAgICAgIHVkZWxheSgyMCk7Cj4gPgo+ID4gQEAgLTY4NCwzNyArNzQ3LDI1IEBAIHN0YXRpYyBp bnQgX19pbml0IHN1bnhpX21jX3NtcF9sb29rYmFjayh2b2lkKQo+ID4gICAgICAgICByZXR1cm4g cmV0Owo+ID4gIH0KPiA+Cj4gPiAtc3RhdGljIGludCBfX2luaXQgc3VueGlfbWNfc21wX2luaXQo dm9pZCkKPiA+ICtzdGF0aWMgaW50IHN1bjlpX2R0X3BhcnNpbmcoc3RydWN0IHJlc291cmNlIHJl cykKPiA+ICB7Cj4gPiAtICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqY3B1Y2ZnX25vZGUsICpz cmFtX25vZGUsICpub2RlOwo+ID4gLSAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgcmVzOwo+ID4gKyAg ICAgICBzdHJ1Y3QgZGV2aWNlX25vZGUgKnByY21fbm9kZSwgKmNwdWNmZ19ub2RlLCAqc3JhbV9u b2RlOwo+ID4gICAgICAgICBpbnQgcmV0Owo+ID4KPiA+IC0gICAgICAgaWYgKCFvZl9tYWNoaW5l X2lzX2NvbXBhdGlibGUoImFsbHdpbm5lcixzdW45aS1hODAiKSkKPiA+IC0gICAgICAgICAgICAg ICByZXR1cm4gLUVOT0RFVjsKPiA+IC0KPiA+IC0gICAgICAgaWYgKCFzdW54aV9tY19zbXBfY3B1 X3RhYmxlX2luaXQoKSkKPiA+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+IC0K PiA+IC0gICAgICAgaWYgKCFjY2lfcHJvYmVkKCkpIHsKPiA+IC0gICAgICAgICAgICAgICBwcl9l cnIoIiVzOiBDQ0ktNDAwIG5vdCBhdmFpbGFibGVcbiIsIF9fZnVuY19fKTsKPiA+IC0gICAgICAg ICAgICAgICByZXR1cm4gLUVOT0RFVjsKPiA+IC0gICAgICAgfQo+ID4gLQo+ID4gLSAgICAgICBu b2RlID0gb2ZfZmluZF9jb21wYXRpYmxlX25vZGUoTlVMTCwgTlVMTCwgImFsbHdpbm5lcixzdW45 aS1hODAtcHJjbSIpOwo+ID4gLSAgICAgICBpZiAoIW5vZGUpIHsKPiA+IC0gICAgICAgICAgICAg ICBwcl9lcnIoIiVzOiBQUkNNIG5vdCBhdmFpbGFibGVcbiIsIF9fZnVuY19fKTsKPiA+ICsgICAg ICAgcHJjbV9ub2RlID0gb2ZfZmluZF9jb21wYXRpYmxlX25vZGUoTlVMTCwgTlVMTCwKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGx3aW5uZXIsc3VuOWktYTgw LXByY20iKTsKPiA+ICsgICAgICAgaWYgKCFwcmNtX25vZGUpCj4gPiAgICAgICAgICAgICAgICAg cmV0dXJuIC1FTk9ERVY7Cj4gPiAtICAgICAgIH0KPiA+Cj4gPiAgICAgICAgIC8qCj4gPiAgICAg ICAgICAqIFVuZm9ydHVuYXRlbHkgd2UgY2FuIG5vdCByZXF1ZXN0IHRoZSBJL08gcmVnaW9uIGZv ciB0aGUgUFJDTS4KPiA+ICAgICAgICAgICogSXQgaXMgc2hhcmVkIHdpdGggdGhlIFBSQ00gY2xv Y2suCj4gPiAgICAgICAgICAqLwo+ID4gLSAgICAgICBwcmNtX2Jhc2UgPSBvZl9pb21hcChub2Rl LCAwKTsKPiA+IC0gICAgICAgb2Zfbm9kZV9wdXQobm9kZSk7Cj4gPiArICAgICAgIHByY21fYmFz ZSA9IG9mX2lvbWFwKHByY21fbm9kZSwgMCk7Cj4gPiArICAgICAgIG9mX25vZGVfcHV0KHByY21f bm9kZSk7Cj4gPiAgICAgICAgIGlmICghcHJjbV9iYXNlKSB7Cj4gPiAgICAgICAgICAgICAgICAg cHJfZXJyKCIlczogZmFpbGVkIHRvIG1hcCBQUkNNIHJlZ2lzdGVyc1xuIiwgX19mdW5jX18pOwo+ ID4gKyAgICAgICAgICAgICAgIGlvdW5tYXAocHJjbV9iYXNlKTsgIAo+IAo+IFdoeSBhcmUgeW91 IHRyeWluZyB0byB1bm1hcCB0aGUgcG9pbnRlciB0aGF0IHlvdSBhbHJlYWR5IGZhaWxlZCB0byBt YXA/CgpPb3BzLCBpbmRlZWQuCgo+IAo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVN Owo+ID4gICAgICAgICB9Cj4gPgo+ID4gQEAgLTc0OCwzNSArNzk5LDg4IEBAIHN0YXRpYyBpbnQg X19pbml0IHN1bnhpX21jX3NtcF9pbml0KHZvaWQpCj4gPiAgICAgICAgICAgICAgICAgZ290byBl cnJfcHV0X3NyYW1fbm9kZTsKPiA+ICAgICAgICAgfQo+ID4KPiA+IC0gICAgICAgLyogQ29uZmln dXJlIENDSS00MDAgZm9yIGJvb3QgY2x1c3RlciAqLwo+ID4gLSAgICAgICByZXQgPSBzdW54aV9t Y19zbXBfbG9va2JhY2soKTsKPiA+IC0gICAgICAgaWYgKHJldCkgewo+ID4gLSAgICAgICAgICAg ICAgIHByX2VycigiJXM6IGZhaWxlZCB0byBjb25maWd1cmUgYm9vdCBjbHVzdGVyOiAlZFxuIiwK PiA+IC0gICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIHJldCk7Cj4gPiAtICAgICAgICAg ICAgICAgZ290byBlcnJfdW5tYXBfcmVsZWFzZV9zZWN1cmVfc3JhbTsKPiA+IC0gICAgICAgfQo+ ID4gKyAgICAgICByX2NwdWNmZ19iYXNlID0gTlVMTDsgIAo+IAo+IFRoaXMgaXMgbm90IG5lZWRl ZC4gR2xvYmFsIHN0YXRpYyB2YXJpYWJsZXMgd2l0aG91dCBpbml0aWFsIHZhbHVlcyBhcmUKPiBh bHdheXMgaW5pdGlhbGl6ZWQgdG8gMC4KCk9rYXksIEkgd2lsbCByZW1vdmUgaXQuCgo+IAo+ID4K PiA+ICAgICAgICAgLyogV2UgZG9uJ3QgbmVlZCB0aGUgQ1BVQ0ZHIGFuZCBTUkFNIGRldmljZSBu b2RlcyBhbnltb3JlICovCj4gPiAgICAgICAgIG9mX25vZGVfcHV0KGNwdWNmZ19ub2RlKTsKPiA+ ICAgICAgICAgb2Zfbm9kZV9wdXQoc3JhbV9ub2RlKTsKPiA+Cj4gPiAtICAgICAgIC8qIFNldCB0 aGUgaGFyZHdhcmUgZW50cnkgcG9pbnQgYWRkcmVzcyAqLwo+ID4gLSAgICAgICB3cml0ZWwoX19w YV9zeW1ib2woc3VueGlfbWNfc21wX3NlY29uZGFyeV9zdGFydHVwKSwKPiA+IC0gICAgICAgICAg ICAgIHByY21fYmFzZSArIFBSQ01fQ1BVX1NPRlRfRU5UUllfUkVHKTsKPiA+IC0KPiA+IC0gICAg ICAgLyogQWN0dWFsbHkgZW5hYmxlIG11bHRpIGNsdXN0ZXIgU01QICovCj4gPiAtICAgICAgIHNt cF9zZXRfb3BzKCZzdW54aV9tY19zbXBfc21wX29wcyk7Cj4gPiAtCj4gPiAtICAgICAgIHByX2lu Zm8oInN1bnhpIG11bHRpIGNsdXN0ZXIgU01QIHN1cHBvcnQgaW5zdGFsbGVkXG4iKTsKPiA+IC0K PiA+ICAgICAgICAgcmV0dXJuIDA7Cj4gPgo+ID4gLWVycl91bm1hcF9yZWxlYXNlX3NlY3VyZV9z cmFtOgo+ID4gLSAgICAgICBpb3VubWFwKHNyYW1fYl9zbXBfYmFzZSk7Cj4gPiAtICAgICAgIG9m X2FkZHJlc3NfdG9fcmVzb3VyY2Uoc3JhbV9ub2RlLCAwLCAmcmVzKTsKPiA+ICtlcnJfdW5tYXBf cmVsZWFzZV9jcHVjZmc6Cj4gPiArICAgICAgIGlvdW5tYXAoY3B1Y2ZnX2Jhc2UpOwo+ID4gKyAg ICAgICBvZl9hZGRyZXNzX3RvX3Jlc291cmNlKGNwdWNmZ19ub2RlLCAwLCAmcmVzKTsKPiA+ICAg ICAgICAgcmVsZWFzZV9tZW1fcmVnaW9uKHJlcy5zdGFydCwgcmVzb3VyY2Vfc2l6ZSgmcmVzKSk7 Cj4gPiAgZXJyX3B1dF9zcmFtX25vZGU6Cj4gPiAgICAgICAgIG9mX25vZGVfcHV0KHNyYW1fbm9k ZSk7Cj4gPiArZXJyX3B1dF9jcHVjZmdfbm9kZToKPiA+ICsgICAgICAgb2Zfbm9kZV9wdXQoY3B1 Y2ZnX25vZGUpOwo+ID4gK2Vycl91bm1hcF9wcmNtOgo+ID4gKyAgICAgICBpb3VubWFwKHByY21f YmFzZSk7Cj4gPiArCj4gPiArICAgICAgIHJldHVybiByZXQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0 YXRpYyBpbnQgc3VuOGlfZHRfcGFyc2luZyhzdHJ1Y3QgcmVzb3VyY2UgcmVzKQo+ID4gK3sKPiA+ ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICpub2RlLCAqY3B1Y2ZnX25vZGU7Cj4gPiArICAg ICAgIGludCByZXQ7Cj4gPiArCj4gPiArICAgICAgIG5vZGUgPSBvZl9maW5kX2NvbXBhdGlibGVf bm9kZShOVUxMLCBOVUxMLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImFsbHdpbm5lcixzdW44aS1hODN0LXByY20iKTsKPiA+ICsgICAgICAgaWYgKCFub2RlKQo+ ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOwo+ID4gKwo+ID4gKyAgICAgICAvKgo+ ID4gKyAgICAgICAgKiBVbmZvcnR1bmF0ZWx5IHdlIGNhbiBub3QgcmVxdWVzdCB0aGUgSS9PIHJl Z2lvbiBmb3IgdGhlIFBSQ00uCj4gPiArICAgICAgICAqIEl0IGlzIHNoYXJlZCB3aXRoIHRoZSBQ UkNNIGNsb2NrLgo+ID4gKyAgICAgICAgKi8KPiA+ICsgICAgICAgcHJjbV9iYXNlID0gb2ZfaW9t YXAobm9kZSwgMCk7Cj4gPiArICAgICAgIG9mX25vZGVfcHV0KG5vZGUpOwo+ID4gKyAgICAgICBp ZiAoIXByY21fYmFzZSkgewo+ID4gKyAgICAgICAgICAgICAgIHByX2VycigiJXM6IGZhaWxlZCB0 byBtYXAgUFJDTSByZWdpc3RlcnNcbiIsIF9fZnVuY19fKTsKPiA+ICsgICAgICAgICAgICAgICBp b3VubWFwKHByY21fYmFzZSk7Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4g PiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgY3B1Y2ZnX25vZGUgPSBvZl9maW5kX2NvbXBh dGlibGVfbm9kZShOVUxMLCBOVUxMLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJhbGx3aW5uZXIsc3VuOGktYTgzdC1jcHVjZmciKTsKPiA+ICsgICAg ICAgaWYgKCFjcHVjZmdfbm9kZSkgewo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IC1FTk9ERVY7 Cj4gPiArICAgICAgICAgICAgICAgcHJfZXJyKCIlczogQ1BVQ0ZHIG5vdCBhdmFpbGFibGVcbiIs IF9fZnVuY19fKTsKPiA+ICsgICAgICAgICAgICAgICBnb3RvIGVycl91bm1hcF9wcmNtOwo+ID4g KyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIGNwdWNmZ19iYXNlID0gb2ZfaW9fcmVxdWVzdF9h bmRfbWFwKGNwdWNmZ19ub2RlLCAwLCAic3VueGktbWMtc21wIik7Cj4gPiArICAgICAgIGlmIChJ U19FUlIoY3B1Y2ZnX2Jhc2UpKSB7Cj4gPiArICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihj cHVjZmdfYmFzZSk7Cj4gPiArICAgICAgICAgICAgICAgcHJfZXJyKCIlczogZmFpbGVkIHRvIG1h cCBDUFVDRkcgcmVnaXN0ZXJzOiAlZFxuIiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgX19m dW5jX18sIHJldCk7Cj4gPiArICAgICAgICAgICAgICAgZ290byBlcnJfcHV0X2NwdWNmZ19ub2Rl Owo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIG5vZGUgPSBvZl9maW5kX2NvbXBhdGli bGVfbm9kZShOVUxMLCBOVUxMLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImFsbHdpbm5lcixzdW44aS1hODN0LXItY3B1Y2ZnIik7Cj4gPiArICAgICAgIGlmICgh bm9kZSkgewo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IC1FTk9ERVY7Cj4gPiArICAgICAgICAg ICAgICAgZ290byBlcnJfdW5tYXBfcmVsZWFzZV9jcHVjZmc7Cj4gPiArICAgICAgIH0KPiA+ICsK PiA+ICsgICAgICAgcl9jcHVjZmdfYmFzZSA9IG9mX2lvbWFwKG5vZGUsIDApOwo+ID4gKyAgICAg ICBpZiAoIXJfY3B1Y2ZnX2Jhc2UpIHsKPiA+ICsgICAgICAgICAgICAgICBwcl9lcnIoIiVzOiBm YWlsZWQgdG8gbWFwIFItQ1BVQ0ZHIHJlZ2lzdGVyc1xuIiwKPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgX19mdW5jX18pOwo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IC1FTk9NRU07Cj4gPiAr ICAgICAgICAgICAgICAgZ290byBlcnJfcHV0X25vZGU7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ ICsgICAgICAgLyogV2UgZG9uJ3QgbmVlZCB0aGUgQ1BVQ0ZHIGRldmljZSBub2RlIGFueW1vcmUg Ki8KPiA+ICsgICAgICAgb2Zfbm9kZV9wdXQoY3B1Y2ZnX25vZGUpOwo+ID4gKyAgICAgICBvZl9u b2RlX3B1dChub2RlKTsKPiA+ICsKPiA+ICsgICAgICAgcmV0dXJuIDA7Cj4gPiArZXJyX3B1dF9u b2RlOgo+ID4gKyAgICAgICBvZl9ub2RlX3B1dChub2RlKTsKPiA+ICBlcnJfdW5tYXBfcmVsZWFz ZV9jcHVjZmc6Cj4gPiAgICAgICAgIGlvdW5tYXAoY3B1Y2ZnX2Jhc2UpOwo+ID4gICAgICAgICBv Zl9hZGRyZXNzX3RvX3Jlc291cmNlKGNwdWNmZ19ub2RlLCAwLCAmcmVzKTsKPiA+IEBAIC03ODUs NiArODg5LDU3IEBAIHN0YXRpYyBpbnQgX19pbml0IHN1bnhpX21jX3NtcF9pbml0KHZvaWQpCj4g PiAgICAgICAgIG9mX25vZGVfcHV0KGNwdWNmZ19ub2RlKTsKPiA+ICBlcnJfdW5tYXBfcHJjbToK PiA+ICAgICAgICAgaW91bm1hcChwcmNtX2Jhc2UpOwo+ID4gKwo+ID4gKyAgICAgICByZXR1cm4g cmV0Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IF9faW5pdCBzdW54aV9tY19zbXBfaW5p dCh2b2lkKQo+ID4gK3sKPiA+ICsgICAgICAgc3RydWN0IHJlc291cmNlIHJlczsKPiA+ICsgICAg ICAgaW50IHJldDsKPiA+ICsKPiA+ICsgICAgICAgaWYgKCFvZl9tYWNoaW5lX2lzX2NvbXBhdGli bGUoImFsbHdpbm5lcixzdW45aS1hODAiKSAmJgo+ID4gKyAgICAgICAgICAgIW9mX21hY2hpbmVf aXNfY29tcGF0aWJsZSgiYWxsd2lubmVyLHN1bjhpLWE4M3QiKSkKPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gLUVOT0RFVjsKPiA+ICsKPiA+ICsgICAgICAgaWYgKCFzdW54aV9tY19zbXBfY3B1 X3RhYmxlX2luaXQoKSkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ICsK PiA+ICsgICAgICAgaWYgKCFjY2lfcHJvYmVkKCkpIHsKPiA+ICsgICAgICAgICAgICAgICBwcl9l cnIoIiVzOiBDQ0ktNDAwIG5vdCBhdmFpbGFibGVcbiIsIF9fZnVuY19fKTsKPiA+ICsgICAgICAg ICAgICAgICByZXR1cm4gLUVOT0RFVjsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBp ZiAob2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJhbGx3aW5uZXIsc3VuOWktYTgwIikpCj4gPiAr ICAgICAgICAgICAgICAgcmV0ID0gc3VuOWlfZHRfcGFyc2luZyhyZXMpOwo+ID4gKyAgICAgICBl bHNlCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gc3VuOGlfZHRfcGFyc2luZyhyZXMpOwo+ID4g KyAgICAgICBpZiAocmV0KSB7Cj4gPiArICAgICAgICAgICAgICAgcHJfZXJyKCIlczogZmFpbGVk IHRvIHBhcnNlIERUOiAlZFxuIiwgX19mdW5jX18sIHJldCk7Cj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIHJldDsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICAvKiBDb25maWd1cmUg Q0NJLTQwMCBmb3IgYm9vdCBjbHVzdGVyICovCj4gPiArICAgICAgIHJldCA9IHN1bnhpX21jX3Nt cF9sb29rYmFjaygpOwo+ID4gKyAgICAgICBpZiAocmV0KSB7Cj4gPiArICAgICAgICAgICAgICAg cHJfZXJyKCIlczogZmFpbGVkIHRvIGNvbmZpZ3VyZSBib290IGNsdXN0ZXI6ICVkXG4iLAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgcmV0KTsKPiA+ICsgICAgICAgICAgICAg ICByZXR1cm4gcmV0OyAvKiBNWU1ZOiBOZWVkIHRvIGhhbmRsZSB0aGlzIGVycm9yIGNhc2UgKi8g IAo+IAo+IFBsZWFzZSBhZGQgZnVuY3Rpb25zIHRvIHJlbGVhc2UgdGhlIHJlc291cmNlcy4gVGhl eSB3aWxsIG5lZWQgdG8gYmUKPiBwbGF0Zm9ybSBzcGVjaWZpYywgc2luY2UgaXQgcmVxdWlyZXMg eW91IHRvIGZpbmQgdGhlIGRldmljZSBub2RlIHRvCj4gZ2V0IHRoZSByZXNvdXJjZSB0aGF0IHlv dSB3YW50IHRvIHJlbGVhc2UgKGZvciBDUFVDRkcgLyBSLUNQVUNGRykuCj4gRm9yIHN1bjlpIGRv IGl0IGluIHRoZSByZWZhY3RvciBwYXRjaC4gRm9yIEE4M1QgZG8gaXQgaW4gdGhlIHBhdGNoCj4g eW91IGFkZCBzdXBwb3J0LgoKSXQgc2VlbXMgdGhhdCBJIGZvcmdvdCB0byBoYW5kbGUgdGhpcyBl cnJvciBjYXNlICh0aGUgY29tbWVudCB3YXMKYSBraW5kIG9mICJUT0RPIiBmb3IgbXlzZWxmKS4g VGhhbmsgeW91IGZvciBwb2ludGluZyBpdCBvdXQgdG8gbWUuCgpUaGFua3MgZm9yIHRoZSByZXZp ZXchCgpCZXN0IHJlZ2FyZHMsCgpNeWzDqG5lCgo+IAo+ID4gKyAgICAgICB9Cj4gPiArCj4gPiAr ICAgICAgIC8qIFNldCB0aGUgaGFyZHdhcmUgZW50cnkgcG9pbnQgYWRkcmVzcyAqLwo+ID4gKyAg ICAgICBpZiAob2ZfbWFjaGluZV9pc19jb21wYXRpYmxlKCJhbGx3aW5uZXIsc3VuOWktYTgwIikp Cj4gPiArICAgICAgICAgICAgICAgd3JpdGVsKF9fcGFfc3ltYm9sKHN1bnhpX21jX3NtcF9zZWNv bmRhcnlfc3RhcnR1cCksCj4gPiArICAgICAgICAgICAgICAgICAgICAgIHByY21fYmFzZSArIFBS Q01fQ1BVX1NPRlRfRU5UUllfUkVHKTsKPiA+ICsgICAgICAgZWxzZQo+ID4gKyAgICAgICAgICAg ICAgIHdyaXRlbChfX3BhX3N5bWJvbChzdW54aV9tY19zbXBfc2Vjb25kYXJ5X3N0YXJ0dXApLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICByX2NwdWNmZ19iYXNlICsgUl9DUFVDRkdfQ1BVX1NP RlRfRU5UUllfUkVHKTsKPiA+ICsKPiA+ICsgICAgICAgLyogQWN0dWFsbHkgZW5hYmxlIG11bHRp IGNsdXN0ZXIgU01QICovCj4gPiArICAgICAgIHNtcF9zZXRfb3BzKCZzdW54aV9tY19zbXBfc21w X29wcyk7Cj4gPiArCj4gPiArICAgICAgIHByX2luZm8oInN1bnhpIG11bHRpIGNsdXN0ZXIgU01Q IHN1cHBvcnQgaW5zdGFsbGVkXG4iKTsKPiA+ICsKPiA+ICAgICAgICAgcmV0dXJuIHJldDsKPiA+ ICB9Cj4gPgo+ID4gLS0KPiA+IDIuMTEuMAo+ID4gIAoKLS0gCk15bMOobmUgSm9zc2VyYW5kLCBC b290bGluIChmb3JtZXJseSBGcmVlIEVsZWN0cm9ucykKRW1iZWRkZWQgTGludXggYW5kIEtlcm5l bCBlbmdpbmVlcmluZwpodHRwOi8vYm9vdGxpbi5jb20KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK