From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [PATCH v6 1/2] drm/bridge: Add Cadence DSI driver Date: Sun, 15 Apr 2018 13:39:44 +0530 Message-ID: References: <20180410130001.1234-1-boris.brezillon@bootlin.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180410130001.1234-1-boris.brezillon@bootlin.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Boris Brezillon , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org Cc: "Menon, Nishanth" , Mark Rutland , Rafal Ciepiela , Pawel Moll , Ian Campbell , Maxime Ripard , Simon Hatliff , Kumar Gala , Jyri Sarha , Rob Herring , Alan Douglas , Tomi Valkeinen , Boris Brezillon , Thomas Petazzoni , Suresh Punnoose , Richard Sproul , devicetree@vger.kernel.org List-Id: devicetree@vger.kernel.org SGksCgpPbiBUdWVzZGF5IDEwIEFwcmlsIDIwMTggMDY6MzAgUE0sIEJvcmlzIEJyZXppbGxvbiB3 cm90ZToKPiBGcm9tOiBCb3JpcyBCcmV6aWxsb24gPGJvcmlzLmJyZXppbGxvbkBmcmVlLWVsZWN0 cm9ucy5jb20+Cj4gCj4gQWRkIGEgZHJpdmVyIGZvciBDYWRlbmNlIERQSSAtPiBEU0kgYnJpZGdl Lgo+IAo+IFRoaXMgZHJpdmVyIG9ubHkgc3VwcG9ydCBhIHN1YnNldCBvZiBDYWRlbmNlIERTSSBi cmlkZ2UgY2FwYWJpbGl0aWVzLgo+IAo+IFRoaXMgZHJpdmVyIGhhcyBiZWVuIHRlc3RlZC9kZWJ1 Z2dlZCBpbiBhIHNpbXVsYXRlZCBlbnZpcm9ubWVudCB3aGljaAo+IGV4cGxhaW5zIHdoeSBzb21l IG9mIHRoZSBmZWF0dXJlcyBhcmUgbWlzc2luZy4gIEhlcmUgaXMgYQo+IG5vbi1leGhhdXN0aXZl IGxpc3Qgb2YgbWlzc2luZyBmZWF0dXJlczoKPiAgICogYnVyc3QgbW9kZQo+ICAgKiBEUEhZIGlu aXQvY29uZmlndXJhdGlvbiBzdGVwcwo+ICAgKiBzdXBwb3J0IGZvciBhZGRpdGlvbmFsIGlucHV0 IGludGVyZmFjZXMgKFNESSBpbnB1dCkKPiAKPiBEU0kgY29tbWFuZHMgYW5kIG5vbi1idXJzdCB2 aWRlbyBtb2RlIGhhdmUgYmVlbiB0ZXN0ZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogQm9yaXMgQnJl emlsbG9uIDxib3Jpcy5icmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29tPgo+IFJldmlld2VkLWJ5 OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgo+IEFja2VkLWJ5OiBFcmljIEFu aG9sdCA8ZXJpY0BhbmhvbHQubmV0Pgo+IC0tLQo+IEhlbGxvLAo+IAo+IFRoaXMgdmVyc2lvbiBp cyBzdGlsbCBtaXNzaW5nIERQSFkgY29uZmlnL2luaXQgY29kZSwgbWFpbmx5IGJlY2F1c2UgSQo+ IGRvbid0IGhhdmUgYSBEUEhZIChlaXRoZXIgcmVhbCBvciBlbXVsYXRlZCkgdG8gdGVzdCB3aXRo LiBCdXQgSSdtCj4gd29ya2luZyBvbiBhIERQSFkgYWJzdHJhY3Rpb24gbGF5ZXIgdG8gaGVscCBl eHRyYWN0IGNvbW1vbiBEUEhZCj4gb3BlcmF0aW9ucyBvdXQgb2YgRFNJIGRyaXZlcnMgc28gdGhh dCBEUEhZIGRyaXZlcnMgY2FuIGJlIHVzZWQgb3V0c2lkZQo+IG9mIHRoZSBEUk0gd29ybGQgKEkg a25vdyBELVBIWXMgY2FuIGJlIHVzZWQgd2l0aCBDU0kgd2hpY2ggYmVsb25ncyBpbgo+IFY0TCku Cj4gCj4gUmVnYXJkcywKPiAKPiBCb3Jpcwo+IAo+IFRoaXMgdmVyc2lvbiBpcyBzdGlsbCBtaXNz aW5nCj4gCj4gQ2hhbmdlcyBpbiB2NjoKPiAtIFVzZSBTUERYIGhlYWRlcgo+IC0gRG8gbm90IGVu YWJsZSB0aGUgc3lzX2NsayBpbiB0aGUgcHJvYmUgZnVuY3Rpb24KPiAtIFJlbW92ZSB1bm5lZWRl ZCB1ZGVsYXkoKQo+IC0gQWRkIGEgZnVuY3Rpb24gdG8gbWFrZSBzdXJlIHRoZSBQTEwgYW5kIHBp eGVsIGNsb2NrIGFyZSBjbG9zZSBlbm91Z2gKPiAgICB0byBiZSByZWNvdmVyYWJsZSBpZiB0aGV5 IGRvbid0IG1hdGNoIGV4YWN0bHkKPiAtIEFkZCB0aGUgRFBIWSBpbml0IHNlcXVlbmNlIHVzZWQg aW4gc2ltdWxhdGlvbiAobGlrZWx5IHRvIGJlIGRpZmZlcmVudAo+ICAgIGJhc2VkIG9uIGVhY2gg U29DIGludGVncmF0aW9uKQo+IAo+IENoYW5nZXMgaW4gdjU6Cj4gLSBBZGQgcnVudGltZSBQTSBz dXBwb3J0Cj4gCj4gQ2hhbmdlcyBpbiB2NDoKPiAtIEZpeCB0eXBvcwo+IC0gUmVuYW1lIGNsa3Mg YXMgc3VnZ2VzdGVkIGJ5IFRvbWkKPiAtIEZpeCBEU0kgc2V0dXAgZG9uZSBpbiBjZG5zX2RzaV9i cmlkZ2VfZW5hYmxlKCkKPiAtIEFkZCBhIHByZWNpc2lvbiBhYm91dCB3aGVyZSB0aGlzIGJyaWRn ZSBpcyBzdXBwb3NlZCB0byB1c2VkIHRvIHRoZQo+ICAgIEtjb25maWcgZW50cnkKPiAtIExldCBE Uk1fQ0ROU19EU0kgc2VsZWN0IERSTV9QQU5FTF9CUklER0UKPiAtIFJlbW92ZSB0aGUgSVAgdmVy c2lvbiBmcm9tIHRoZSBEVCBjb21wYXRpYmxlIG5hbWUKPiAtIEFkYXB0IHJlZ2lzdGVyIHRoZSBs YXlvdXQgdG8gbWF0Y2ggdGhlIG9uZSB1c2VkIGluIHRoZSBsYXN0IHJldmlzaW9uCj4gICAgb2Yg dGhlIElQIChob3BlZnVsbHkgdGhlIGZpbmFsIHZlcnNpb24pCj4gCj4gQ2hhbmdlcyBpbiB2MzoK PiAtIHJlcGxhY2UgbWFnaWMgdmFsdWVzIGJ5IHJlYWwgdGltaW5nIGNhbGN1bGF0aW9uLiBUaGUg RFBIWSBQTEwgY2xvY2sKPiAgICBpcyBzdGlsbCBoYXJkY29kZWQgc2luY2Ugd2UgZG9uJ3QgaGF2 ZSBhIHdvcmtpbmcgRFBIWSBibG9jayB5ZXQsIGFuZAo+ICAgIHRoaXMgaXMgdGhlIHBpZWNlIG9m IEhXIHdlIG5lZWQgdG8gZHluYW1pY2FsbHkgY29uZmlndXJlIHRoZSBQTEwKPiAgICByYXRlIGJh c2VkIG9uIHRoZSBkaXNwbGF5IHJlZnJlc2ggcmF0ZSBhbmQgdGhlIHJlc29sdXRpb24uCj4gLSBw YXJzZSBEU0kgZGV2aWNlcyByZXByZXNlbnRlZCB3aXRoIHRoZSBPRi1ncmFwaC4gVGhpcyBpcyBu ZWVkZWQgdG8KPiAgICBzdXBwb3J0IERTSSBkZXZpY2VzIGNvbnRyb2xsZWQgdGhyb3VnaCBhbiBl eHRlcm5hbCBidXMgbGlrZSBJMkMgb3IKPiAgICBTUEkuCj4gLSB1c2UgdGhlIERSTSBwYW5lbC1i cmlkZ2UgaW5mcmFzdHJ1Y3R1cmUgdG8gc2ltcGxpZnkgdGhlIERSTSBwYW5lbAo+ICAgIGxvZ2lj Cj4gCj4gQ2hhbmdlcyBpbiB2MjoKPiAtIHJlYmFzZSBvbiB2NC4xMi1yYzEgYW5kIGFkYXB0IHRv IGRyaXZlciB0byB0aGUgZHJtX2JyaWRnZSBBUEkgY2hhbmdlcwo+IC0gcmV0dXJuIHRoZSBjb3Jy ZWN0IGVycm9yIHdoZW4gZGV2bV9jbGtfZ2V0KHN5c2NsaykgZmFpbHMKPiAtIGFkZCBtaXNzaW5n IGRlcGVuZHMgb24gT0YgYW5kIHNlbGVjdCBEUk1fUEFORUwgaW4gdGhlIEtjb25maWcgZW50cnkK PiAKPiBEU0kgcnVudGltZSBQTQo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29u ZmlnICAgIHwgICAxMCArCj4gICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlICAgfCAg ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1kc2kuYyB8IDE2MjQgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxNjM1 IGluc2VydGlvbnMoKykKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL2NkbnMtZHNpLmMKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9L Y29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCj4gaW5kZXggM2FhNjViZGVj YjBlLi4xY2QyNjc4ODBiNTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9L Y29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9LY29uZmlnCj4gQEAgLTI1LDYg KzI1LDE2IEBAIGNvbmZpZyBEUk1fQU5BTE9HSVhfQU5YNzhYWAo+ICAgCSAgdGhlIEhETUkgb3V0 cHV0IG9mIGFuIGFwcGxpY2F0aW9uIHByb2Nlc3NvciB0byBNeURQCj4gICAJICBvciBEaXNwbGF5 UG9ydC4KPiAgIAo+ICtjb25maWcgRFJNX0NETlNfRFNJCj4gKwl0cmlzdGF0ZSAiQ2FkZW5jZSBE UEkvRFNJIGJyaWRnZSIKPiArCXNlbGVjdCBEUk1fS01TX0hFTFBFUgo+ICsJc2VsZWN0IERSTV9N SVBJX0RTSQo+ICsJc2VsZWN0IERSTV9QQU5FTF9CUklER0UKPiArCWRlcGVuZHMgb24gT0YKPiAr CWhlbHAKPiArCSAgU3VwcG9ydCBDYWRlbmNlIERQSSB0byBEU0kgYnJpZGdlLiBUaGlzIGlzIGFu IGludGVybmFsCj4gKwkgIGJyaWRnZSBhbmQgaXMgbWVhbnQgdG8gYmUgZGlyZWN0bHkgZW1iZWRk ZWQgaW4gYSBTb0MuCj4gKwo+ICAgY29uZmlnIERSTV9EVU1CX1ZHQV9EQUMKPiAgIAl0cmlzdGF0 ZSAiRHVtYiBWR0EgREFDIEJyaWRnZSBzdXBwb3J0Igo+ICAgCWRlcGVuZHMgb24gT0YKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvTWFrZWZpbGUKPiBpbmRleCAzNzNlYjI4ZjMxZWQuLmFlYTdjYmU5MDcwYiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL01ha2VmaWxlCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9NYWtlZmlsZQo+IEBAIC0xLDUgKzEsNiBAQAo+ICAgIyBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAo+ICAgb2JqLSQoQ09ORklHX0RSTV9BTkFMT0dJWF9B Tlg3OFhYKSArPSBhbmFsb2dpeC1hbng3OHh4Lm8KPiArb2JqLSQoQ09ORklHX0RSTV9DRE5TX0RT SSkgKz0gY2Rucy1kc2kubwo+ICAgb2JqLSQoQ09ORklHX0RSTV9EVU1CX1ZHQV9EQUMpICs9IGR1 bWItdmdhLWRhYy5vCj4gICBvYmotJChDT05GSUdfRFJNX0xWRFNfRU5DT0RFUikgKz0gbHZkcy1l bmNvZGVyLm8KPiAgIG9iai0kKENPTkZJR19EUk1fTUVHQUNISVBTX1NURFBYWFhYX0dFX0I4NTBW M19GVykgKz0gbWVnYWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5vCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvY2Rucy1kc2kuYwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAw Li5kNGNlYjk2MWY0NzUKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9jZG5zLWRzaS5jCj4gQEAgLTAsMCArMSwxNjI0IEBACj4gKy8vIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qCj4gKyAqIENvcHlyaWdodDogMjAxNyBDYWRlbmNlIERl c2lnbiBTeXN0ZW1zLCBJbmMuCj4gKyAqCj4gKyAqIEF1dGhvcjogQm9yaXMgQnJlemlsbG9uIDxi b3Jpcy5icmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29tPgo+ICsgKi8KPiArCj4gKyNpbmNsdWRl IDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fYnJpZGdlLmg+ Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJt X21pcGlfZHNpLmg+Cj4gKyNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Cj4gKyNpbmNsdWRlIDx2 aWRlby9taXBpX2Rpc3BsYXkuaD4KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L2lvcG9sbC5oPgo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZl9ncmFwaC5o Pgo+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gKyNpbmNsdWRlIDxsaW51 eC9wbV9ydW50aW1lLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9yZXNldC5oPgo+ICsKPiArI2RlZmlu ZSBJUF9DT05GCQkJCTB4MAo+ICsjZGVmaW5lIFNQX0hTX0ZJRk9fREVQVEgoeCkJCSgoKHgpICYg R0VOTUFTSygzMCwgMjYpKSA+PiAyNikKPiArI2RlZmluZSBTUF9MUF9GSUZPX0RFUFRIKHgpCQko KCh4KSAmIEdFTk1BU0soMjUsIDIxKSkgPj4gMjEpCj4gKyNkZWZpbmUgVlJTX0ZJRk9fREVQVEgo eCkJCSgoKHgpICYgR0VOTUFTSygyMCwgMTYpKSA+PiAxNikKPiArI2RlZmluZSBESVJDTURfRklG T19ERVBUSCh4KQkJKCgoeCkgJiBHRU5NQVNLKDE1LCAxMykpID4+IDEzKQo+ICsjZGVmaW5lIFNE SV9JRkFDRV8zMgkJCUJJVCgxMikKPiArI2RlZmluZSBJTlRFUk5BTF9EQVRBUEFUSF8zMgkJKDAg PDwgMTApCj4gKyNkZWZpbmUgSU5URVJOQUxfREFUQVBBVEhfMTYJCSgxIDw8IDEwKQo+ICsjZGVm aW5lIElOVEVSTkFMX0RBVEFQQVRIXzgJCSgzIDw8IDEwKQo+ICsjZGVmaW5lIElOVEVSTkFMX0RB VEFQQVRIX1NJWkUJCSgoeCkgJiBHRU5NQVNLKDExLCAxMCkpCj4gKyNkZWZpbmUgTlVNX0lGQUNF KHgpCQkJKCgoKHgpICYgR0VOTUFTSyg5LCA4KSkgPj4gOCkgKyAxKQo+ICsjZGVmaW5lIE1BWF9M QU5FX05CKHgpCQkJKCgoeCkgJiBHRU5NQVNLKDcsIDYpKSA+PiA2KQo+ICsjZGVmaW5lIFJYX0ZJ Rk9fREVQVEgoeCkJCSgoeCkgJiBHRU5NQVNLKDUsIDApKQo+ICsKPiArI2RlZmluZSBNQ1RMX01B SU5fREFUQV9DVEwJCTB4NAo+ICsjZGVmaW5lIFRFX01JUElfUE9MTElOR19FTgkJQklUKDI1KQo+ ICsjZGVmaW5lIFRFX0hXX1BPTExJTkdfRU4JCUJJVCgyNCkKPiArI2RlZmluZSBESVNQX0VPVF9H RU4JCQlCSVQoMTgpCj4gKyNkZWZpbmUgSE9TVF9FT1RfR0VOCQkJQklUKDE3KQo+ICsjZGVmaW5l IERJU1BfR0VOX0NIRUNLU1VNCQlCSVQoMTYpCj4gKyNkZWZpbmUgRElTUF9HRU5fRUNDCQkJQklU KDE1KQo+ICsjZGVmaW5lIEJUQV9FTgkJCQlCSVQoMTQpCj4gKyNkZWZpbmUgUkVBRF9FTgkJCQlC SVQoMTMpCj4gKyNkZWZpbmUgUkVHX1RFX0VOCQkJQklUKDEyKQo+ICsjZGVmaW5lIElGX1RFX0VO KHgpCQkJQklUKDggKyAoeCkpCj4gKyNkZWZpbmUgVFZHX1NFTAkJCQlCSVQoNikKPiArI2RlZmlu ZSBWSURfRU4JCQkJQklUKDUpCj4gKyNkZWZpbmUgSUZfVklEX1NFTEVDVCh4KQkJKCh4KSA8PCAy KQo+ICsjZGVmaW5lIElGX1ZJRF9TRUxFQ1RfTUFTSwkJR0VOTUFTSygzLCAyKQo+ICsjZGVmaW5l IElGX1ZJRF9NT0RFCQkJQklUKDEpCj4gKyNkZWZpbmUgTElOS19FTgkJCQlCSVQoMCkKPiArCj4g KyNkZWZpbmUgTUNUTF9NQUlOX1BIWV9DVEwJCTB4OAo+ICsjZGVmaW5lIEhTX0lOVkVSVF9EQVQo eCkJCUJJVCgxOSArICgoeCkgKiAyKSkKPiArI2RlZmluZSBTV0FQX1BJTlNfREFUKHgpCQlCSVQo MTggKyAoKHgpICogMikpCj4gKyNkZWZpbmUgSFNfSU5WRVJUX0NMSwkJCUJJVCgxNykKPiArI2Rl ZmluZSBTV0FQX1BJTlNfQ0xLCQkJQklUKDE2KQo+ICsjZGVmaW5lIEhTX1NLRVdDQUxfRU4JCQlC SVQoMTUpCj4gKyNkZWZpbmUgV0FJVF9CVVJTVF9USU1FKHgpCQkoKHgpIDw8IDEwKQo+ICsjZGVm aW5lIERBVEFfVUxQTV9FTih4KQkJCUJJVCg2ICsgKHgpKQo+ICsjZGVmaW5lIENMS19VTFBNX0VO CQkJQklUKDUpCj4gKyNkZWZpbmUgQ0xLX0NPTlRJTlVPVVMJCQlCSVQoNCkKPiArI2RlZmluZSBE QVRBX0xBTkVfRU4oeCkJCQlCSVQoKHgpIC0gMSkKPiArCj4gKyNkZWZpbmUgTUNUTF9NQUlOX0VO CQkJMHhjCj4gKyNkZWZpbmUgREFUQV9GT1JDRV9TVE9QCQkJQklUKDE3KQo+ICsjZGVmaW5lIENM S19GT1JDRV9TVE9QCQkJQklUKDE2KQo+ICsjZGVmaW5lIElGX0VOKHgpCQkJQklUKDEzICsgKHgp KQo+ICsjZGVmaW5lIERBVEFfTEFORV9VTFBNX1JFUShsKQkJQklUKDkgKyAobCkpCj4gKyNkZWZp bmUgQ0xLX0xBTkVfVUxQTV9SRVEJCUJJVCg4KQo+ICsjZGVmaW5lIERBVEFfTEFORV9TVEFSVCh4 KQkJQklUKDQgKyAoeCkpCj4gKyNkZWZpbmUgQ0xLX0xBTkVfRU4JCQlCSVQoMykKPiArI2RlZmlu ZSBQTExfU1RBUlQJCQlCSVQoMCkKPiArCj4gKyNkZWZpbmUgTUNUTF9EUEhZX0NGRzAJCQkweDEw Cj4gKyNkZWZpbmUgRFBIWV9DX1JTVEIJCQlCSVQoMjApCj4gKyNkZWZpbmUgRFBIWV9EX1JTVEIo eCkJCQlHRU5NQVNLKDE1ICsgKHgpLCAxNikKPiArI2RlZmluZSBEUEhZX1BMTF9QRE4JCQlCSVQo MTApCj4gKyNkZWZpbmUgRFBIWV9DTU5fUEROCQkJQklUKDkpCj4gKyNkZWZpbmUgRFBIWV9DX1BE TgkJCUJJVCg4KQo+ICsjZGVmaW5lIERQSFlfRF9QRE4oeCkJCQlHRU5NQVNLKDMgKyAoeCksIDQp Cj4gKyNkZWZpbmUgRFBIWV9BTExfRF9QRE4JCQlHRU5NQVNLKDcsIDQpCj4gKyNkZWZpbmUgRFBI WV9QTExfUFNPCQkJQklUKDEpCj4gKyNkZWZpbmUgRFBIWV9DTU5fUFNPCQkJQklUKDApCj4gKwo+ ICsjZGVmaW5lIE1DVExfRFBIWV9USU1FT1VUMQkJMHgxNAo+ICsjZGVmaW5lIEhTVFhfVElNRU9V VCh4KQkJCSgoeCkgPDwgNCkKPiArI2RlZmluZSBIU1RYX1RJTUVPVVRfTUFYCQlHRU5NQVNLKDE3 LCAwKQo+ICsjZGVmaW5lIENMS19ESVYoeCkJCQkoeCkKPiArI2RlZmluZSBDTEtfRElWX01BWAkJ CUdFTk1BU0soMywgMCkKPiArCj4gKyNkZWZpbmUgTUNUTF9EUEhZX1RJTUVPVVQyCQkweDE4Cj4g KyNkZWZpbmUgTFBSWF9USU1FT1VUKHgpCQkJKHgpCj4gKwo+ICsjZGVmaW5lIE1DVExfVUxQT1VU X1RJTUUJCTB4MWMKPiArI2RlZmluZSBEQVRBX0xBTkVfVUxQT1VUX1RJTUUoeCkJKCh4KSA8PCA5 KQo+ICsjZGVmaW5lIENMS19MQU5FX1VMUE9VVF9USU1FKHgpCQkoeCkKPiArCj4gKyNkZWZpbmUg TUNUTF8zRFZJREVPX0NUTAkJMHgyMAo+ICsjZGVmaW5lIFZJRF9WU1lOQ18zRF9FTgkJCUJJVCg3 KQo+ICsjZGVmaW5lIFZJRF9WU1lOQ18zRF9MUgkJCUJJVCg1KQo+ICsjZGVmaW5lIFZJRF9WU1lO Q18zRF9TRUNPTkRfRU4JCUJJVCg0KQo+ICsjZGVmaW5lIFZJRF9WU1lOQ18zREZPUk1BVF9MSU5F CQkoMCA8PCAyKQo+ICsjZGVmaW5lIFZJRF9WU1lOQ18zREZPUk1BVF9GUkFNRQkoMSA8PCAyKQo+ ICsjZGVmaW5lIFZJRF9WU1lOQ18zREZPUk1BVF9QSVhFTAkoMiA8PCAyKQo+ICsjZGVmaW5lIFZJ RF9WU1lOQ18zRE1PREVfT0ZGCQkwCj4gKyNkZWZpbmUgVklEX1ZTWU5DXzNETU9ERV9QT1JUUkFJ VAkxCj4gKyNkZWZpbmUgVklEX1ZTWU5DXzNETU9ERV9MQU5EU0NBUEUJMgo+ICsKPiArI2RlZmlu ZSBNQ1RMX01BSU5fU1RTCQkJMHgyNAo+ICsjZGVmaW5lIE1DVExfTUFJTl9TVFNfQ1RMCQkweDEz MAo+ICsjZGVmaW5lIE1DVExfTUFJTl9TVFNfQ0xSCQkweDE1MAo+ICsjZGVmaW5lIE1DVExfTUFJ Tl9TVFNfRkxBRwkJMHgxNzAKPiArI2RlZmluZSBIU19TS0VXQ0FMX0RPTkUJCQlCSVQoMTEpCj4g KyNkZWZpbmUgSUZfVU5URVJNX1BLVF9FUlIoeCkJCUJJVCg4ICsgKHgpKQo+ICsjZGVmaW5lIExQ UlhfVElNRU9VVF9FUlIJCUJJVCg3KQo+ICsjZGVmaW5lIEhTVFhfVElNRU9VVF9FUlIJCUJJVCg2 KQo+ICsjZGVmaW5lIERBVEFfTEFORV9SRFkobCkJCUJJVCgyICsgKGwpKQo+ICsjZGVmaW5lIENM S19MQU5FX1JEWQkJCUJJVCgxKQo+ICsjZGVmaW5lIFBMTF9MT0NLRUQJCQlCSVQoMCkKPiArCj4g KyNkZWZpbmUgTUNUTF9EUEhZX0VSUgkJCTB4MjgKPiArI2RlZmluZSBNQ1RMX0RQSFlfRVJSX0NU TDEJCTB4MTQ4Cj4gKyNkZWZpbmUgTUNUTF9EUEhZX0VSUl9DTFIJCTB4MTY4Cj4gKyNkZWZpbmUg TUNUTF9EUEhZX0VSUl9GTEFHCQkweDE4OAo+ICsjZGVmaW5lIEVSUl9DT05UX0xQKHgsIGwpCQlC SVQoMTggKyAoKHgpICogNCkgKyAobCkpCj4gKyNkZWZpbmUgRVJSX0NPTlRST0wobCkJCQlCSVQo MTQgKyAobCkpCj4gKyNkZWZpbmUgRVJSX1NZTkVTQyhsKQkJCUJJVCgxMCArIChsKSkKPiArI2Rl ZmluZSBFUlJfRVNDKGwpCQkJQklUKDYgKyAobCkpCj4gKwo+ICsjZGVmaW5lIE1DVExfRFBIWV9F UlJfQ1RMMgkJMHgxNGMKPiArI2RlZmluZSBFUlJfQ09OVF9MUF9FREdFKHgsIGwpCQlCSVQoMTIg KyAoKHgpICogNCkgKyAobCkpCj4gKyNkZWZpbmUgRVJSX0NPTlRST0xfRURHRShsKQkJQklUKDgg KyAobCkpCj4gKyNkZWZpbmUgRVJSX1NZTl9FU0NfRURHRShsKQkJQklUKDQgKyAobCkpCj4gKyNk ZWZpbmUgRVJSX0VTQ19FREdFKGwpCQkJQklUKDAgKyAobCkpCj4gKwo+ICsjZGVmaW5lIE1DVExf TEFORV9TVFMJCQkweDJjCj4gKyNkZWZpbmUgUFBJX0NfVFhfUkVBRFlfSFMJCUJJVCgxOCkKPiAr I2RlZmluZSBEUEhZX1BMTF9MT0NLCQkJQklUKDE3KQo+ICsjZGVmaW5lIFBQSV9EX1JYX1VMUFNf RVNDKHgpCQkoKCh4KSAmIEdFTk1BU0soMTUsIDEyKSkgPj4gMTIpCj4gKyNkZWZpbmUgTEFORV9T VEFURV9TVEFSVAkJMAo+ICsjZGVmaW5lIExBTkVfU1RBVEVfSURMRQkJCTEKPiArI2RlZmluZSBM QU5FX1NUQVRFX1dSSVRFCQkyCj4gKyNkZWZpbmUgTEFORV9TVEFURV9VTFBNCQkJMwo+ICsjZGVm aW5lIExBTkVfU1RBVEVfUkVBRAkJCTQKPiArI2RlZmluZSBEQVRBX0xBTkVfU1RBVEUobCwgdmFs KQkJXAo+ICsJKCgodmFsKSA+PiAoMiArIDIgKiAobCkgKyAoKGwpID8gMSA6IDApKSkgJiBHRU5N QVNLKChsKSA/IDEgOiAyLCAwKSkKPiArI2RlZmluZSBDTEtfTEFORV9TVEFURV9IUwkJMgo+ICsj ZGVmaW5lIENMS19MQU5FX1NUQVRFKHZhbCkJCSgodmFsKSAmIEdFTk1BU0soMSwgMCkpCj4gKwo+ ICsjZGVmaW5lIERTQ19NT0RFX0NUTAkJCTB4MzAKPiArI2RlZmluZSBEU0NfTU9ERV9FTgkJCUJJ VCgwKQo+ICsKPiArI2RlZmluZSBEU0NfQ01EX1NFTkQJCQkweDM0Cj4gKyNkZWZpbmUgRFNDX1NF TkRfUFBTCQkJQklUKDApCj4gKyNkZWZpbmUgRFNDX0VYRUNVVEVfUVVFVUUJCUJJVCgxKQo+ICsK PiArI2RlZmluZSBEU0NfUFBTX1dSREFUCQkJMHgzOAo+ICsKPiArI2RlZmluZSBEU0NfTU9ERV9T VFMJCQkweDNjCj4gKyNkZWZpbmUgRFNDX1BQU19ET05FCQkJQklUKDEpCj4gKyNkZWZpbmUgRFND X0VYRUNfRE9ORQkJCUJJVCgyKQo+ICsKPiArI2RlZmluZSBDTURfTU9ERV9DVEwJCQkweDcwCj4g KyNkZWZpbmUgSUZfTFBfRU4oeCkJCQlCSVQoOSArICh4KSkKPiArI2RlZmluZSBJRl9WQ0hBTl9J RCh4LCBjKQkJKChjKSA8PCAoKHgpICogMikpCj4gKwo+ICsjZGVmaW5lIENNRF9NT0RFX0NUTDIJ CQkweDc0Cj4gKyNkZWZpbmUgVEVfVElNRU9VVCh4KQkJCSgoeCkgPDwgMTEpCj4gKyNkZWZpbmUg RklMTF9WQUxVRSh4KQkJCSgoeCkgPDwgMykKPiArI2RlZmluZSBBUkJfSUZfV0lUSF9ISUdIRVNU X1BSSU9SSVRZKHgpCSgoeCkgPDwgMSkKPiArI2RlZmluZSBBUkJfUk9VTkRfUk9CSU5fTU9ERQkJ QklUKDApCj4gKwo+ICsjZGVmaW5lIENNRF9NT0RFX1NUUwkJCTB4NzgKPiArI2RlZmluZSBDTURf TU9ERV9TVFNfQ1RMCQkweDEzNAo+ICsjZGVmaW5lIENNRF9NT0RFX1NUU19DTFIJCTB4MTU0Cj4g KyNkZWZpbmUgQ01EX01PREVfU1RTX0ZMQUcJCTB4MTc0Cj4gKyNkZWZpbmUgRVJSX0lGX1VOREVS UlVOKHgpCQlCSVQoNCArICh4KSkKPiArI2RlZmluZSBFUlJfVU5XQU5URURfUkVBRAkJQklUKDMp Cj4gKyNkZWZpbmUgRVJSX1RFX01JU1MJCQlCSVQoMikKPiArI2RlZmluZSBFUlJfTk9fVEUJCQlC SVQoMSkKPiArI2RlZmluZSBDU01fUlVOTklORwkJCUJJVCgwKQo+ICsKPiArI2RlZmluZSBESVJF Q1RfQ01EX1NFTkQJCQkweDgwCj4gKwo+ICsjZGVmaW5lIERJUkVDVF9DTURfTUFJTl9TRVRUSU5H UwkweDg0Cj4gKyNkZWZpbmUgVFJJR0dFUl9WQUwoeCkJCQkoKHgpIDw8IDI1KQo+ICsjZGVmaW5l IENNRF9MUF9FTgkJCUJJVCgyNCkKPiArI2RlZmluZSBDTURfU0laRSh4KQkJCSgoeCkgPDwgMTYp Cj4gKyNkZWZpbmUgQ01EX1ZDSEFOX0lEKHgpCQkJKCh4KSA8PCAxNCkKPiArI2RlZmluZSBDTURf REFUQVRZUEUoeCkJCQkoKHgpIDw8IDgpCj4gKyNkZWZpbmUgQ01EX0xPTkcJCQlCSVQoMykKPiAr I2RlZmluZSBXUklURV9DTUQJCQkwCj4gKyNkZWZpbmUgUkVBRF9DTUQJCQkxCj4gKyNkZWZpbmUg VEVfUkVRCQkJCTQKPiArI2RlZmluZSBUUklHR0VSX1JFUQkJCTUKPiArI2RlZmluZSBCVEFfUkVR CQkJCTYKPiArCj4gKyNkZWZpbmUgRElSRUNUX0NNRF9TVFMJCQkweDg4Cj4gKyNkZWZpbmUgRElS RUNUX0NNRF9TVFNfQ1RMCQkweDEzOAo+ICsjZGVmaW5lIERJUkVDVF9DTURfU1RTX0NMUgkJMHgx NTgKPiArI2RlZmluZSBESVJFQ1RfQ01EX1NUU19GTEFHCQkweDE3OAo+ICsjZGVmaW5lIFJDVkRf QUNLX1ZBTCh2YWwpCQkoKHZhbCkgPj4gMTYpCj4gKyNkZWZpbmUgUkNWRF9UUklHR0VSX1ZBTCh2 YWwpCQkoKCh2YWwpICYgR0VOTUFTSygxNCwgMTEpKSA+PiAxMSkKPiArI2RlZmluZSBSRUFEX0NP TVBMRVRFRF9XSVRIX0VSUgkJQklUKDEwKQo+ICsjZGVmaW5lIEJUQV9GSU5JU0hFRAkJCUJJVCg5 KQo+ICsjZGVmaW5lIEJUQV9DT01QTEVURUQJCQlCSVQoOCkKPiArI2RlZmluZSBURV9SQ1ZECQkJ CUJJVCg3KQo+ICsjZGVmaW5lIFRSSUdHRVJfUkNWRAkJCUJJVCg2KQo+ICsjZGVmaW5lIEFDS19X SVRIX0VSUl9SQ1ZECQlCSVQoNSkKPiArI2RlZmluZSBBQ0tfUkNWRAkJCUJJVCg0KQo+ICsjZGVm aW5lIFJFQURfQ09NUExFVEVECQkJQklUKDMpCj4gKyNkZWZpbmUgVFJJR0dFUl9DT01QTEVURUQJ CUJJVCgyKQo+ICsjZGVmaW5lIFdSSVRFX0NPTVBMRVRFRAkJCUJJVCgxKQo+ICsjZGVmaW5lIFNF TkRJTkdfQ01ECQkJQklUKDApCj4gKwo+ICsjZGVmaW5lIERJUkVDVF9DTURfU1RPUF9SRUFECQkw eDhjCj4gKwo+ICsjZGVmaW5lIERJUkVDVF9DTURfV1JEQVRBCQkweDkwCj4gKwo+ICsjZGVmaW5l IERJUkVDVF9DTURfRklGT19SU1QJCTB4OTQKPiArCj4gKyNkZWZpbmUgRElSRUNUX0NNRF9SRERB VEEJCTB4YTAKPiArCj4gKyNkZWZpbmUgRElSRUNUX0NNRF9SRF9QUk9QUwkJMHhhNAo+ICsjZGVm aW5lIFJEX0RDUwkJCQlCSVQoMTgpCj4gKyNkZWZpbmUgUkRfVkNIQU5fSUQodmFsKQkJKCgodmFs KSA+PiAxNikgJiBHRU5NQVNLKDEsIDApKQo+ICsjZGVmaW5lIFJEX1NJWkUodmFsKQkJCSgodmFs KSAmIEdFTk1BU0soMTUsIDApKQo+ICsKPiArI2RlZmluZSBESVJFQ1RfQ01EX1JEX1NUUwkJMHhh OAo+ICsjZGVmaW5lIERJUkVDVF9DTURfUkRfU1RTX0NUTAkJMHgxM2MKPiArI2RlZmluZSBESVJF Q1RfQ01EX1JEX1NUU19DTFIJCTB4MTVjCj4gKyNkZWZpbmUgRElSRUNUX0NNRF9SRF9TVFNfRkxB RwkJMHgxN2MKPiArI2RlZmluZSBFUlJfRU9UX1dJVEhfRVJSCQlCSVQoOCkKPiArI2RlZmluZSBF UlJfTUlTU0lOR19FT1QJCQlCSVQoNykKPiArI2RlZmluZSBFUlJfV1JPTkdfTEVOR1RICQlCSVQo NikKPiArI2RlZmluZSBFUlJfT1ZFUlNJWkUJCQlCSVQoNSkKPiArI2RlZmluZSBFUlJfUkVDRUlW RQkJCUJJVCg0KQo+ICsjZGVmaW5lIEVSUl9VTkRFQ09EQUJMRQkJCUJJVCgzKQo+ICsjZGVmaW5l IEVSUl9DSEVDS1NVTQkJCUJJVCgyKQo+ICsjZGVmaW5lIEVSUl9VTkNPUlJFQ1RBQkxFCQlCSVQo MSkKPiArI2RlZmluZSBFUlJfRklYRUQJCQlCSVQoMCkKPiArCj4gKyNkZWZpbmUgVklEX01BSU5f Q1RMCQkJMHhiMAo+ICsjZGVmaW5lIFZJRF9JR05PUkVfTUlTU19WU1lOQwkJQklUKDMxKQo+ICsj ZGVmaW5lIFZJRF9GSUVMRF9TVwkJCUJJVCgyOCkKPiArI2RlZmluZSBWSURfSU5URVJMQUNFRF9F TgkJQklUKDI3KQo+ICsjZGVmaW5lIFJFQ09WRVJZX01PREUoeCkJCSgoeCkgPDwgMjUpCj4gKyNk ZWZpbmUgUkVDT1ZFUllfTU9ERV9ORVhUX0hTWU5DCTAKPiArI2RlZmluZSBSRUNPVkVSWV9NT0RF X05FWFRfU1RPUF9QT0lOVAkyCj4gKyNkZWZpbmUgUkVDT1ZFUllfTU9ERV9ORVhUX1ZTWU5DCTMK PiArI2RlZmluZSBSRUdfQkxLRU9MX01PREUoeCkJCSgoeCkgPDwgMjMpCj4gKyNkZWZpbmUgUkVH X0JMS0xJTkVfTU9ERSh4KQkJKCh4KSA8PCAyMSkKPiArI2RlZmluZSBSRUdfQkxLX01PREVfTlVM TF9QS1QJCTAKPiArI2RlZmluZSBSRUdfQkxLX01PREVfQkxBTktJTkdfUEtUCTEKPiArI2RlZmlu ZSBSRUdfQkxLX01PREVfTFAJCQkyCj4gKyNkZWZpbmUgU1lOQ19QVUxTRV9IT1JJWk9OVEFMCQlC SVQoMjApCj4gKyNkZWZpbmUgU1lOQ19QVUxTRV9BQ1RJVkUJCUJJVCgxOSkKPiArI2RlZmluZSBC VVJTVF9NT0RFCQkJQklUKDE4KQo+ICsjZGVmaW5lIFZJRF9QSVhFTF9NT0RFX01BU0sJCUdFTk1B U0soMTcsIDE0KQo+ICsjZGVmaW5lIFZJRF9QSVhFTF9NT0RFX1JHQjU2NQkJKDAgPDwgMTQpCj4g KyNkZWZpbmUgVklEX1BJWEVMX01PREVfUkdCNjY2X1BBQ0tFRAkoMSA8PCAxNCkKPiArI2RlZmlu ZSBWSURfUElYRUxfTU9ERV9SR0I2NjYJCSgyIDw8IDE0KQo+ICsjZGVmaW5lIFZJRF9QSVhFTF9N T0RFX1JHQjg4OAkJKDMgPDwgMTQpCj4gKyNkZWZpbmUgVklEX1BJWEVMX01PREVfUkdCMTAxMDEw CSg0IDw8IDE0KQo+ICsjZGVmaW5lIFZJRF9QSVhFTF9NT0RFX1JHQjEyMTIxMgkoNSA8PCAxNCkK PiArI2RlZmluZSBWSURfUElYRUxfTU9ERV9ZVVY0MjAJCSg4IDw8IDE0KQo+ICsjZGVmaW5lIFZJ RF9QSVhFTF9NT0RFX1lVVjQyMl9QQUNLRUQJKDkgPDwgMTQpCj4gKyNkZWZpbmUgVklEX1BJWEVM X01PREVfWVVWNDIyCQkoMTAgPDwgMTQpCj4gKyNkZWZpbmUgVklEX1BJWEVMX01PREVfWVVWNDIy XzI0QgkoMTEgPDwgMTQpCj4gKyNkZWZpbmUgVklEX1BJWEVMX01PREVfRFNDX0NPTVAJCSgxMiA8 PCAxNCkKPiArI2RlZmluZSBWSURfREFUQVRZUEUoeCkJCQkoKHgpIDw8IDgpCj4gKyNkZWZpbmUg VklEX1ZJUlRDSEFOX0lEKGlmYWNlLCB4KQkoKHgpIDw8ICg0ICsgKGlmYWNlKSAqIDIpKQo+ICsj ZGVmaW5lIFNUT1BfTU9ERSh4KQkJCSgoeCkgPDwgMikKPiArI2RlZmluZSBTVEFSVF9NT0RFKHgp CQkJKHgpCj4gKwo+ICsjZGVmaW5lIFZJRF9WU0laRTEJCQkweGI0Cj4gKyNkZWZpbmUgVkZQX0xF Tih4KQkJCSgoeCkgPDwgMTIpCj4gKyNkZWZpbmUgVkJQX0xFTih4KQkJCSgoeCkgPDwgNikKPiAr I2RlZmluZSBWU0FfTEVOKHgpCQkJKHgpCj4gKwo+ICsjZGVmaW5lIFZJRF9WU0laRTIJCQkweGI4 Cj4gKyNkZWZpbmUgVkFDVF9MRU4oeCkJCQkoeCkKPiArCj4gKyNkZWZpbmUgVklEX0hTSVpFMQkJ CTB4YzAKPiArI2RlZmluZSBIQlBfTEVOKHgpCQkJKCh4KSA8PCAxNikKPiArI2RlZmluZSBIU0Ff TEVOKHgpCQkJKHgpCj4gKwo+ICsjZGVmaW5lIFZJRF9IU0laRTIJCQkweGM0Cj4gKyNkZWZpbmUg SEZQX0xFTih4KQkJCSgoeCkgPDwgMTYpCj4gKyNkZWZpbmUgSEFDVF9MRU4oeCkJCQkoeCkKPiAr Cj4gKyNkZWZpbmUgVklEX0JMS1NJWkUxCQkJMHhjYwo+ICsjZGVmaW5lIEJMS19FT0xfUEtUX0xF Tih4KQkJKCh4KSA8PCAxNSkKPiArI2RlZmluZSBCTEtfTElORV9FVkVOVF9QS1RfTEVOKHgpCSh4 KQo+ICsKPiArI2RlZmluZSBWSURfQkxLU0laRTIJCQkweGQwCj4gKyNkZWZpbmUgQkxLX0xJTkVf UFVMU0VfUEtUX0xFTih4KQkoeCkKPiArCj4gKyNkZWZpbmUgVklEX1BLVF9USU1FCQkJMHhkOAo+ ICsjZGVmaW5lIEJMS19FT0xfRFVSQVRJT04oeCkJCSh4KQo+ICsKPiArI2RlZmluZSBWSURfRFBI WV9USU1FCQkJMHhkYwo+ICsjZGVmaW5lIFJFR19XQUtFVVBfVElNRSh4KQkJKCh4KSA8PCAxNykK PiArI2RlZmluZSBSRUdfTElORV9EVVJBVElPTih4KQkJKHgpCj4gKwo+ICsjZGVmaW5lIFZJRF9F UlJfQ09MT1IxCQkJMHhlMAo+ICsjZGVmaW5lIENPTF9HUkVFTih4KQkJCSgoeCkgPDwgMTIpCj4g KyNkZWZpbmUgQ09MX1JFRCh4KQkJCSh4KQo+ICsKPiArI2RlZmluZSBWSURfRVJSX0NPTE9SMgkJ CTB4ZTQKPiArI2RlZmluZSBQQURfVkFMKHgpCQkJKCh4KSA8PCAxMikKPiArI2RlZmluZSBDT0xf QkxVRSh4KQkJCSh4KQo+ICsKPiArI2RlZmluZSBWSURfVlBPUwkJCTB4ZTgKPiArI2RlZmluZSBM SU5FX1ZBTCh2YWwpCQkJKCgodmFsKSAmIEdFTk1BU0soMTQsIDIpKSA+PiAyKQo+ICsjZGVmaW5l IExJTkVfUE9TKHZhbCkJCQkoKHZhbCkgJiBHRU5NQVNLKDEsIDApKQo+ICsKPiArI2RlZmluZSBW SURfSFBPUwkJCTB4ZWMKPiArI2RlZmluZSBIT1JJWl9WQUwodmFsKQkJCSgoKHZhbCkgJiBHRU5N QVNLKDE3LCAzKSkgPj4gMykKPiArI2RlZmluZSBIT1JJWl9QT1ModmFsKQkJCSgodmFsKSAmIEdF Tk1BU0soMiwgMCkpCj4gKwo+ICsjZGVmaW5lIFZJRF9NT0RFX1NUUwkJCTB4ZjAKPiArI2RlZmlu ZSBWSURfTU9ERV9TVFNfQ1RMCQkweDE0MAo+ICsjZGVmaW5lIFZJRF9NT0RFX1NUU19DTFIJCTB4 MTYwCj4gKyNkZWZpbmUgVklEX01PREVfU1RTX0ZMQUcJCTB4MTgwCj4gKyNkZWZpbmUgVlNHX1JF Q09WRVJZCQkJQklUKDEwKQo+ICsjZGVmaW5lIEVSUl9WUlNfV1JPTkdfTEVOCQlCSVQoOSkKPiAr I2RlZmluZSBFUlJfTE9OR19SRUFECQkJQklUKDgpCj4gKyNkZWZpbmUgRVJSX0xJTkVfV1JJVEUJ CQlCSVQoNykKPiArI2RlZmluZSBFUlJfQlVSU1RfV1JJVEUJCQlCSVQoNikKPiArI2RlZmluZSBF UlJfU01BTExfSEVJR0hUCQlCSVQoNSkKPiArI2RlZmluZSBFUlJfU01BTExfTEVOCQkJQklUKDQp Cj4gKyNkZWZpbmUgRVJSX01JU1NJTkdfVlNZTkMJCUJJVCgzKQo+ICsjZGVmaW5lIEVSUl9NSVNT SU5HX0hTWU5DCQlCSVQoMikKPiArI2RlZmluZSBFUlJfTUlTU0lOR19EQVRBCQlCSVQoMSkKPiAr I2RlZmluZSBWU0dfUlVOTklORwkJCUJJVCgwKQo+ICsKPiArI2RlZmluZSBWSURfVkNBX1NFVFRJ TkcxCQkweGY0Cj4gKyNkZWZpbmUgQlVSU1RfTFAJCQlCSVQoMTYpCj4gKyNkZWZpbmUgTUFYX0JV UlNUX0xJTUlUKHgpCQkoeCkKPiArCj4gKyNkZWZpbmUgVklEX1ZDQV9TRVRUSU5HMgkJMHhmOAo+ ICsjZGVmaW5lIE1BWF9MSU5FX0xJTUlUKHgpCQkoKHgpIDw8IDE2KQo+ICsjZGVmaW5lIEVYQUNU X0JVUlNUX0xJTUlUKHgpCQkoeCkKPiArCj4gKyNkZWZpbmUgVFZHX0NUTAkJCQkweGZjCj4gKyNk ZWZpbmUgVFZHX1NUUklQRV9TSVpFKHgpCQkoKHgpIDw8IDUpCj4gKyNkZWZpbmUgVFZHX01PREVf TUFTSwkJCUdFTk1BU0soNCwgMykKPiArI2RlZmluZSBUVkdfTU9ERV9TSU5HTEVfQ09MT1IJCSgw IDw8IDMpCj4gKyNkZWZpbmUgVFZHX01PREVfVlNUUklQRVMJCSgyIDw8IDMpCj4gKyNkZWZpbmUg VFZHX01PREVfSFNUUklQRVMJCSgzIDw8IDMpCj4gKyNkZWZpbmUgVFZHX1NUT1BNT0RFX01BU0sJ CUdFTk1BU0soMiwgMSkKPiArI2RlZmluZSBUVkdfU1RPUE1PREVfRU9GCQkoMCA8PCAxKQo+ICsj ZGVmaW5lIFRWR19TVE9QTU9ERV9FT0wJCSgxIDw8IDEpCj4gKyNkZWZpbmUgVFZHX1NUT1BNT0RF X05PVwkJKDIgPDwgMSkKPiArI2RlZmluZSBUVkdfUlVOCQkJCUJJVCgwKQo+ICsKPiArI2RlZmlu ZSBUVkdfSU1HX1NJWkUJCQkweDEwMAo+ICsjZGVmaW5lIFRWR19OQkxJTkVTKHgpCQkJKCh4KSA8 PCAxNikKPiArI2RlZmluZSBUVkdfTElORV9TSVpFKHgpCQkoeCkKPiArCj4gKyNkZWZpbmUgVFZH X0NPTE9SMQkJCTB4MTA0Cj4gKyNkZWZpbmUgVFZHX0NPTDFfR1JFRU4oeCkJCSgoeCkgPDwgMTIp Cj4gKyNkZWZpbmUgVFZHX0NPTDFfUkVEKHgpCQkJKHgpCj4gKwo+ICsjZGVmaW5lIFRWR19DT0xP UjFfQklTCQkJMHgxMDgKPiArI2RlZmluZSBUVkdfQ09MMV9CTFVFKHgpCQkoeCkKPiArCj4gKyNk ZWZpbmUgVFZHX0NPTE9SMgkJCTB4MTBjCj4gKyNkZWZpbmUgVFZHX0NPTDJfR1JFRU4oeCkJCSgo eCkgPDwgMTIpCj4gKyNkZWZpbmUgVFZHX0NPTDJfUkVEKHgpCQkJKHgpCj4gKwo+ICsjZGVmaW5l IFRWR19DT0xPUjJfQklTCQkJMHgxMTAKPiArI2RlZmluZSBUVkdfQ09MMl9CTFVFKHgpCQkoeCkK PiArCj4gKyNkZWZpbmUgVFZHX1NUUwkJCQkweDExNAo+ICsjZGVmaW5lIFRWR19TVFNfQ1RMCQkJ MHgxNDQKPiArI2RlZmluZSBUVkdfU1RTX0NMUgkJCTB4MTY0Cj4gKyNkZWZpbmUgVFZHX1NUU19G TEFHCQkJMHgxODQKPiArI2RlZmluZSBUVkdfU1RTX1JVTk5JTkcJCQlCSVQoMCkKPiArCj4gKyNk ZWZpbmUgU1RTX0NUTF9FREdFKGUpCQkJKChlKSA8PCAxNikKPiArCj4gKyNkZWZpbmUgRFBIWV9M QU5FU19NQVAJCQkweDE5OAo+ICsjZGVmaW5lIERBVF9SRU1BUF9DRkcoYiwgbCkJCSgobCkgPDwg KChiKSAqIDgpKQo+ICsKPiArI2RlZmluZSBEUElfSVJRX0VOCQkJMHgxYTAKPiArI2RlZmluZSBE UElfSVJRX0NMUgkJCTB4MWE0Cj4gKyNkZWZpbmUgRFBJX0lSUV9TVFMJCQkweDFhOAo+ICsjZGVm aW5lIFBJWEVMX0JVRl9PVkVSRkxPVwkJQklUKDApCj4gKwo+ICsjZGVmaW5lIERQSV9DRkcJCQkJ MHgxYWMKPiArI2RlZmluZSBEUElfQ0ZHX0ZJRk9fREVQVEgoeCkJCSgoeCkgPj4gMTYpCj4gKyNk ZWZpbmUgRFBJX0NGR19GSUZPX0xFVkVMKHgpCQkoKHgpICYgR0VOTUFTSygxNSwgMCkpCj4gKwo+ ICsjZGVmaW5lIFRFU1RfR0VORVJJQwkJCTB4MWYwCj4gKyNkZWZpbmUgVEVTVF9TVEFUVVMoeCkJ CQkoKHgpID4+IDE2KQo+ICsjZGVmaW5lIFRFU1RfQ1RSTCh4KQkJCSh4KQo+ICsKPiArI2RlZmlu ZSBJRF9SRUcJCQkJMHgxZmMKPiArI2RlZmluZSBSRVZfVkVORE9SX0lEKHgpCQkoKCh4KSAmIEdF Tk1BU0soMzEsIDIwKSkgPj4gMjApCj4gKyNkZWZpbmUgUkVWX1BST0RVQ1RfSUQoeCkJCSgoKHgp ICYgR0VOTUFTSygxOSwgMTIpKSA+PiAxMikKPiArI2RlZmluZSBSRVZfSFcoeCkJCQkoKCh4KSAm IEdFTk1BU0soMTEsIDgpKSA+PiA4KQo+ICsjZGVmaW5lIFJFVl9NQUpPUih4KQkJCSgoKHgpICYg R0VOTUFTSyg3LCA0KSkgPj4gNCkKPiArI2RlZmluZSBSRVZfTUlOT1IoeCkJCQkoKHgpICYgR0VO TUFTSygzLCAwKSkKPiArCj4gKyNkZWZpbmUgRFNJX09VVFBVVF9QT1JUCQkJMAo+ICsjZGVmaW5l IERTSV9JTlBVVF9QT1JUKGlucHV0aWQpCQkoMSArIChpbnB1dGlkKSkKPiArCj4gKyNkZWZpbmUg RFNJX0hCUF9GUkFNRV9PVkVSSEVBRAkJMTIKPiArI2RlZmluZSBEU0lfSFNBX0ZSQU1FX09WRVJI RUFECQkxNAo+ICsjZGVmaW5lIERTSV9IRlBfRlJBTUVfT1ZFUkhFQUQJCTYKPiArI2RlZmluZSBE U0lfSFNTX1ZTU19WU0VfRlJBTUVfT1ZFUkhFQUQJNAo+ICsjZGVmaW5lIERTSV9CTEFOS0lOR19G UkFNRV9PVkVSSEVBRAk2Cj4gKyNkZWZpbmUgRFNJX05VTExfRlJBTUVfT1ZFUkhFQUQJCTYKPiAr I2RlZmluZSBEU0lfRU9UX1BLVF9TSVpFCQk0Cj4gKwo+ICsjZGVmaW5lIFJFR19XQUtFVVBfVElN RV9OUwkJODAwCj4gKyNkZWZpbmUgRFBIWV9QTExfUkFURV9IWgkJMTA4MDAwMDAwCj4gKwo+ICsv KiBEUEhZIHJlZ2lzdGVycyAqLwo+ICsjZGVmaW5lIERQSFlfUE1BX0NNTihyZWcpCQkocmVnKQo+ ICsjZGVmaW5lIERQSFlfUE1BX0xDTEsocmVnKQkJKDB4MTAwICsgKHJlZykpCj4gKyNkZWZpbmUg RFBIWV9QTUFfTERBVEEobGFuZSwgcmVnKQkoMHgyMDAgKyAoKGxhbmUpICogMHgxMDApICsgKHJl ZykpCj4gKyNkZWZpbmUgRFBIWV9QTUFfUkNMSyhyZWcpCQkoMHg2MDAgKyAocmVnKSkKPiArI2Rl ZmluZSBEUEhZX1BNQV9SREFUQShsYW5lLCByZWcpCSgweDcwMCArICgobGFuZSkgKiAweDEwMCkg KyAocmVnKSkKPiArI2RlZmluZSBEUEhZX1BDUyhyZWcpCQkJKDB4YjAwICsgKHJlZykpCj4gKwo+ ICsjZGVmaW5lIERQSFlfQ01OX1NTTQkJCURQSFlfUE1BX0NNTigweDIwKQo+ICsjZGVmaW5lIERQ SFlfQ01OX1NTTV9FTgkJCUJJVCgwKQo+ICsjZGVmaW5lIERQSFlfQ01OX1RYX01PREVfRU4JCUJJ VCg5KQo+ICsKPiArI2RlZmluZSBEUEhZX0NNTl9QV00JCQlEUEhZX1BNQV9DTU4oMHg0MCkKPiAr I2RlZmluZSBEUEhZX0NNTl9QV01fRElWKHgpCQkoKHgpIDw8IDIwKQo+ICsjZGVmaW5lIERQSFlf Q01OX1BXTV9MT1coeCkJCSgoeCkgPDwgMTApCj4gKyNkZWZpbmUgRFBIWV9DTU5fUFdNX0hJR0go eCkJCSh4KQo+ICsKPiArI2RlZmluZSBEUEhZX0NNTl9GQkRJVgkJCURQSFlfUE1BX0NNTigweDRj KQo+ICsjZGVmaW5lIERQSFlfQ01OX0ZCRElWX1ZBTChsb3csIGhpZ2gpCSgoKGhpZ2gpIDw8IDEx KSB8ICgobG93KSA8PCAyMikpCj4gKyNkZWZpbmUgRFBIWV9DTU5fRkJESVZfRlJPTV9SRUcJCShC SVQoMTApIHwgQklUKDIxKSkKPiArCj4gKyNkZWZpbmUgRFBIWV9DTU5fT1BJUERJVgkJRFBIWV9Q TUFfQ01OKDB4NTApCj4gKyNkZWZpbmUgRFBIWV9DTU5fSVBESVZfRlJPTV9SRUcJCUJJVCgwKQo+ ICsjZGVmaW5lIERQSFlfQ01OX0lQRElWKHgpCQkoKHgpIDw8IDEpCj4gKyNkZWZpbmUgRFBIWV9D TU5fT1BESVZfRlJPTV9SRUcJCUJJVCg2KQo+ICsjZGVmaW5lIERQSFlfQ01OX09QRElWKHgpCQko KHgpIDw8IDcpCj4gKwo+ICsjZGVmaW5lIERQSFlfUFNNX0NGRwkJCURQSFlfUENTKDB4NCkKPiAr I2RlZmluZSBEUEhZX1BTTV9DRkdfRlJPTV9SRUcJCUJJVCgwKQo+ICsjZGVmaW5lIERQSFlfUFNN X0NMS19ESVYoeCkJCSgoeCkgPDwgMSkKPiArCj4gK3N0cnVjdCBjZG5zX2RzaV9vdXRwdXQgewo+ ICsJc3RydWN0IG1pcGlfZHNpX2RldmljZSAqZGV2Owo+ICsJc3RydWN0IGRybV9wYW5lbCAqcGFu ZWw7Cj4gKwlzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlOwo+ICt9Owo+ICsKPiArZW51bSBjZG5z X2RzaV9pbnB1dF9pZCB7Cj4gKwlDRE5TX1NESV9JTlBVVCwKPiArCUNETlNfRFBJX0lOUFVULAo+ ICsJQ0ROU19EU0NfSU5QVVQsCj4gK307Cj4gKwo+ICtzdHJ1Y3QgY2Ruc19kcGh5X2NmZyB7Cj4g Kwl1OCBwbGxfaXBkaXY7Cj4gKwl1OCBwbGxfb3BkaXY7Cj4gKwl1MTYgcGxsX2ZiZGl2Owo+ICsJ dW5zaWduZWQgbG9uZyBsYW5lX2JwczsKPiArCXVuc2lnbmVkIGludCBubGFuZXM7Cj4gK307Cj4g Kwo+ICtzdHJ1Y3QgY2Ruc19kc2lfY2ZnIHsKPiArCXVuc2lnbmVkIGludCBoZnA7Cj4gKwl1bnNp Z25lZCBpbnQgaHNhOwo+ICsJdW5zaWduZWQgaW50IGhicDsKPiArCXVuc2lnbmVkIGludCBoYWN0 Owo+ICsJdW5zaWduZWQgaW50IGh0b3RhbDsKPiArfTsKPiArCj4gK3N0cnVjdCBjZG5zX2RwaHk7 Cj4gKwo+ICtlbnVtIGNkbnNfZHBoeV9jbGtfbGFuZV9jZmcgewo+ICsJRFBIWV9DTEtfQ0ZHX0xF RlRfRFJJVkVTX0FMTCA9IDAsCj4gKwlEUEhZX0NMS19DRkdfTEVGVF9EUklWRVNfUklHSFQgPSAx LAo+ICsJRFBIWV9DTEtfQ0ZHX0xFRlRfRFJJVkVTX0xFRlQgPSAyLAo+ICsJRFBIWV9DTEtfQ0ZH X1JJR0hUX0RSSVZFU19BTEwgPSAzLAo+ICt9Owo+ICsKPiArc3RydWN0IGNkbnNfZHBoeV9vcHMg ewo+ICsJaW50ICgqcHJvYmUpKHN0cnVjdCBjZG5zX2RwaHkgKmRwaHkpOwo+ICsJdm9pZCAoKnJl bW92ZSkoc3RydWN0IGNkbnNfZHBoeSAqZHBoeSk7Cj4gKwl2b2lkICgqc2V0X3BzbV9kaXYpKHN0 cnVjdCBjZG5zX2RwaHkgKmRwaHksIHU4IGRpdik7Cj4gKwl2b2lkICgqc2V0X2Nsa19sYW5lX2Nm Zykoc3RydWN0IGNkbnNfZHBoeSAqZHBoeSwKPiArCQkJCSBlbnVtIGNkbnNfZHBoeV9jbGtfbGFu ZV9jZmcgY2ZnKTsKPiArCXZvaWQgKCpzZXRfcGxsX2NmZykoc3RydWN0IGNkbnNfZHBoeSAqZHBo eSwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBjZG5zX2RwaHlfY2ZnICpjZmcpOwo+ICsJdW5zaWdu ZWQgbG9uZyAoKmdldF93YWtldXBfdGltZV9ucykoc3RydWN0IGNkbnNfZHBoeSAqZHBoeSk7Cj4g K307Cj4gKwo+ICtzdHJ1Y3QgY2Ruc19kcGh5IHsKPiArCXN0cnVjdCBjZG5zX2RwaHlfY2ZnIGNm ZzsKPiArCXZvaWQgX19pb21lbSAqcmVnczsKPiArCXN0cnVjdCBjbGsgKnBzbV9jbGs7Cj4gKwlz dHJ1Y3QgY2xrICpwbGxfcmVmX2NsazsKPiArCWNvbnN0IHN0cnVjdCBjZG5zX2RwaHlfb3BzICpv cHM7Cj4gK307Cj4gKwo+ICtzdHJ1Y3QgY2Ruc19kc2lfaW5wdXQgewo+ICsJZW51bSBjZG5zX2Rz aV9pbnB1dF9pZCBpZDsKPiArCXN0cnVjdCBkcm1fYnJpZGdlIGJyaWRnZTsKPiArfTsKPiArCj4g K3N0cnVjdCBjZG5zX2RzaSB7Cj4gKwlzdHJ1Y3QgbWlwaV9kc2lfaG9zdCBiYXNlOwo+ICsJdm9p ZCBfX2lvbWVtICpyZWdzOwo+ICsJc3RydWN0IGNkbnNfZHNpX2lucHV0IGlucHV0Owo+ICsJc3Ry dWN0IGNkbnNfZHNpX291dHB1dCBvdXRwdXQ7Cj4gKwl1bnNpZ25lZCBpbnQgZGlyZWN0X2NtZF9m aWZvX2RlcHRoOwo+ICsJdW5zaWduZWQgaW50IHJ4X2ZpZm9fZGVwdGg7Cj4gKwlzdHJ1Y3QgY29t cGxldGlvbiBkaXJlY3RfY21kX2NvbXA7Cj4gKwlzdHJ1Y3QgY2xrICpkc2lfcF9jbGs7Cj4gKwlz dHJ1Y3QgcmVzZXRfY29udHJvbCAqZHNpX3BfcnN0Owo+ICsJc3RydWN0IGNsayAqZHNpX3N5c19j bGs7Cj4gKwlib29sIGxpbmtfaW5pdGlhbGl6ZWQ7Cj4gKwlzdHJ1Y3QgY2Ruc19kcGh5ICpkcGh5 Owo+ICt9Owo+ICsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgY2Ruc19kc2kgKmlucHV0X3RvX2Rz aShzdHJ1Y3QgY2Ruc19kc2lfaW5wdXQgKmlucHV0KQo+ICt7Cj4gKwlyZXR1cm4gY29udGFpbmVy X29mKGlucHV0LCBzdHJ1Y3QgY2Ruc19kc2ksIGlucHV0KTsKPiArfQo+ICsKPiArc3RhdGljIGlu bGluZSBzdHJ1Y3QgY2Ruc19kc2kgKnRvX2NkbnNfZHNpKHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpo b3N0KQo+ICt7Cj4gKwlyZXR1cm4gY29udGFpbmVyX29mKGhvc3QsIHN0cnVjdCBjZG5zX2RzaSwg YmFzZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNkbnNfZHNpX2lucHV0ICoK PiArYnJpZGdlX3RvX2NkbnNfZHNpX2lucHV0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4g K3sKPiArCXJldHVybiBjb250YWluZXJfb2YoYnJpZGdlLCBzdHJ1Y3QgY2Ruc19kc2lfaW5wdXQs IGJyaWRnZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgY2Ruc19kc2lfZ2V0X2RwaHlfcGxsX2Nm ZyhzdHJ1Y3QgY2Ruc19kcGh5ICpkcGh5LAo+ICsJCQkJICAgICBzdHJ1Y3QgY2Ruc19kcGh5X2Nm ZyAqY2ZnLAo+ICsJCQkJICAgICB1bnNpZ25lZCBpbnQgZHBpX2h0b3RhbCwKPiArCQkJCSAgICAg dW5zaWduZWQgaW50IGRwaV9icHAsCj4gKwkJCQkgICAgIHVuc2lnbmVkIGludCBkcGlfaHosCj4g KwkJCQkgICAgIHVuc2lnbmVkIGludCBkc2lfaHRvdGFsLAo+ICsJCQkJICAgICB1bnNpZ25lZCBp bnQgZHNpX25sYW5lcywKPiArCQkJCSAgICAgdW5zaWduZWQgaW50ICpkc2lfaGZwX2V4dCkKPiAr ewo+ICsJdTY0IGRsYW5lX2JwcywgZGxhbmVfYnBzX21heCwgZmJkaXYsIGZiZGl2X21heCwgYWRq X2RzaV9odG90YWw7Cj4gKwl1bnNpZ25lZCBsb25nIHBsbF9yZWZfaHogPSBjbGtfZ2V0X3JhdGUo ZHBoeS0+cGxsX3JlZl9jbGspOwo+ICsKPiArCW1lbXNldChjZmcsIDAsIHNpemVvZigqY2ZnKSk7 Cj4gKwo+ICsJY2ZnLT5ubGFuZXMgPSBkc2lfbmxhbmVzOwo+ICsKPiArCWlmIChwbGxfcmVmX2h6 IDwgOTYwMDAwMCB8fCBwbGxfcmVmX2h6ID49IDE1MDAwMDAwMCkKPiArCQlyZXR1cm4gLUVJTlZB TDsKPiArCWVsc2UgaWYgKHBsbF9yZWZfaHogPCAxOTIwMDAwMCkKPiArCQljZmctPnBsbF9pcGRp diA9IDE7Cj4gKwllbHNlIGlmIChwbGxfcmVmX2h6IDwgMzg0MDAwMDApCj4gKwkJY2ZnLT5wbGxf aXBkaXYgPSAyOwo+ICsJZWxzZSBpZiAocGxsX3JlZl9oeiA8IDc2ODAwMDAwKQo+ICsJCWNmZy0+ cGxsX2lwZGl2ID0gNDsKPiArCWVsc2UKPiArCQljZmctPnBsbF9pcGRpdiA9IDg7Cj4gKwo+ICsJ LyoKPiArCSAqIE1ha2Ugc3VyZSBEU0kgaHRvdGFsIGlzIGFsaWduZWQgb24gYSBsYW5lIGJvdW5k YXJ5IHdoZW4gY2FsY3VsYXRpbmcKPiArCSAqIHRoZSBleHBlY3RlZCBkYXRhIHJhdGUuIFRoaXMg aXMgZG9uZSBieSBleHRlbmRpbmcgSEZQIGluIGNhc2Ugb2YKPiArCSAqIG1pc2FsaWdubWVudC4K PiArCSAqLwo+ICsJYWRqX2RzaV9odG90YWwgPSBkc2lfaHRvdGFsOwo+ICsJaWYgKGRzaV9odG90 YWwgJSBkc2lfbmxhbmVzKQo+ICsJCWFkal9kc2lfaHRvdGFsICs9IGRzaV9ubGFuZXMgLSAoZHNp X2h0b3RhbCAlIGRzaV9ubGFuZXMpOwo+ICsKPiArCWRsYW5lX2JwcyA9ICh1NjQpZHBpX2h6ICog YWRqX2RzaV9odG90YWw7Cj4gKwo+ICsJLyogZGF0YSByYXRlIGluIGJ5dGVzL3NlYyBpcyBub3Qg YW4gaW50ZWdlciwgcmVmdXNlIHRoZSBtb2RlLiAqLwo+ICsJaWYgKGRvX2RpdihkbGFuZV9icHMs IGRzaV9ubGFuZXMgKiBkcGlfaHRvdGFsKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwkv KiBkYXRhIHJhdGUgd2FzIGluIGJ5dGVzL3NlYywgY29udmVydCB0byBiaXRzL3NlYy4gKi8KPiAr CWRsYW5lX2JwcyAqPSA4Owo+ICsKPiArCWlmIChkbGFuZV9icHMgPiAyNTAwMDAwMDAwVUwgfHwg ZGxhbmVfYnBzIDwgMTYwMDAwMDAwVUwpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwllbHNlIGlm IChkbGFuZV9icHMgPj0gMTI1MDAwMDAwMCkKPiArCQljZmctPnBsbF9vcGRpdiA9IDE7Cj4gKwll bHNlIGlmIChkbGFuZV9icHMgPj0gNjMwMDAwMDAwKQo+ICsJCWNmZy0+cGxsX29wZGl2ID0gMjsK PiArCWVsc2UgaWYgKGRsYW5lX2JwcyA+PSAzMjAwMDAwMDApCj4gKwkJY2ZnLT5wbGxfb3BkaXYg PSA0Owo+ICsJZWxzZSBpZiAoZGxhbmVfYnBzID49IDE2MDAwMDAwMCkKPiArCQljZmctPnBsbF9v cGRpdiA9IDg7Cj4gKwo+ICsJLyoKPiArCSAqIEFsbG93IGEgZGV2aWF0aW9uIG9mIDAuMiUgb24g dGhlIHBlci1sYW5lIGRhdGEgcmF0ZSB0byB0cnkgdG8KPiArCSAqIHJlY292ZXIgYSBwb3RlbnRp YWwgbWlzbWF0Y2ggYmV0d2VlbiBEUEkgYW5kIFBQSSBjbGtzLgo+ICsJICovCj4gKwlkbGFuZV9i cHNfbWF4ID0gZGxhbmVfYnBzICsgKGRsYW5lX2JwcyAvIDUwMCk7CgprYnVpbGQgcmVwb3J0ZWQg YW4gZXJyb3IgZm9yIDMyIGJpdCBhcmNocy4gSSdtIGd1ZXNzaW5nIGl0J3MgYmVjYXVzZSBvZgp0 aGlzIGRpdmlkZSBhYm92ZT8KCgo+ICsKPiArCWZiZGl2X21heCA9IERJVl9ST1VORF9ET1dOX1VM TCgoZGxhbmVfYnBzICsgKGRsYW5lX2JwcyAvIDUwMCkpICogMiAqCgpZb3UgY291bGQgdXNlIGRs YW5lX2Jwc19tYXggaGVyZSBpbnN0ZWFkLgoKT3RoZXJ3aXNlLAoKUmV2aWV3ZWQtYnk6IEFyY2hp dCBUYW5lamEgPGFyY2hpdHRAY29kZWF1cm9yYS5vcmc+CgpUaGFua3MsCkFyY2hpdApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK