From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-it0-x242.google.com ([2607:f8b0:4001:c0b::242]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1ccY4R-0007WS-VN for barebox@lists.infradead.org; Sat, 11 Feb 2017 13:50:44 +0000 Received: by mail-it0-x242.google.com with SMTP id f200so6824033itf.3 for ; Sat, 11 Feb 2017 05:50:14 -0800 (PST) MIME-Version: 1.0 From: Vicente Bergas Date: Sat, 11 Feb 2017 14:50:12 +0100 Message-ID: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "barebox" Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [USB BOOT] Help needed To: barebox@lists.infradead.org SGVsbG8KCkJhY2tncm91bmQgb24gdGhlIGlzc3VlCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgpT b21lIHRpbWUgYWdvIGZ1bmN0aW9uYWxpdHkgd2FzIGFkZGVkIHRvIGVuYWJsZSBPTUFQNCB0byBi b290IG92ZXIgVVNCOgpodHRwczovL2dpdC5wZW5ndXRyb25peC5kZS9jZ2l0L2JhcmVib3gvY29t bWl0Lz9pZD02YjRkYzRkNGYxMjhiZDIyZGY0ZDAyMmFkMzcyODVjZTQ4NThlMWU4ClRoYXQgaW1w bGVtZW50YXRpb24gdXNlcyB0aGUgdXNiIGxpYnJhcnkgc3RvcmVkIGluIHRoZSBPTUFQNCBST00u ClRoZSB1c2Ugb2YgdGhlIE9NQVA0IFJPTSBpcyBwcm9ibGVtYXRpYyBhcyBpdCByZXF1aXJlcyBp bnRlcnJ1cHRzCmFuZCBhbHNvIGRvZXMgbm90IGFsbG93IHRoZSBNTVUgdG8gYmUgZW5hYmxlZC4K SW4gZmFjdCB0aGVyZSBpcyBhbiBvcGVuIGlzc3VlIHdpdGggaXQ6Cmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL3BpcGVybWFpbC9iYXJlYm94LzIwMTYtQXVndXN0LzAyNzg4MC5odG1sCgpNb3Jl IHJlY2VudGx5IGEgc2ltaWxhciBmdW5jdGlvbmFsaXR5IHdhcyBhZGRlZCB0byBPTUFQMzoKaHR0 cHM6Ly9naXQucGVuZ3V0cm9uaXguZGUvY2dpdC9iYXJlYm94L2NvbW1pdC8/aWQ9MWQ3YzhlYzE0 MzFhZWMxYzc1Yzc5ZGMxN2VjYWQwYWI4MDQzNTMxMQpUaGF0IGltcGxlbWVudGF0aW9uIGlzIHVz aW5nIGl0J3Mgb3duIHdheSB0byBhY2Nlc3MKdGhlIHVzYiBkZXZpY2UgYW5kIGhhcyBubyBkZXBl bmRlbmNpZXMgb24gdGhlIFJPTS4KClByb3Bvc2VkIGNoYW5nZXMKIyMjIyMjIyMjIyMjIyMjIwoK R2l2ZW4gdGhpcyBzY2VuYXJpbyBJIG1vZGlmaWVkIHRoZSBPTUFQNCBjb2RlIHRvIGFjY2VzcyB0 aGUKdXNiIGRldmljZSBkaXJlY3RseSwgYnlwYXNzaW5nIHRoZSBST00gbGlicmFyeSwgdGhlIHNh bWUgd2F5CnRoZSBPTUFQMyBjb2RlIGRvZXMuCkJvdGggT01BUDMgYW5kIE9NQVA0IHVzZSB0aGUg c2FtZSB1c2IgZGV2aWNlIChtdXNiLCBtZW50b3ItdXNiKSwKdGhlIG9ubHkgY2hhbmdlIGlzIHRo ZSBiYXNlIGFkZHJlc3MuClNvIHRoaXMgbW9kaWZpY2F0aW9uIHRyaWVzIHRvIG1ha2UgaXQgZ2Vu ZXJpYyBmb3IgYm90aCBPTUFQcywKYWx0aG91Z2ggaXQgaGFzIG5vdCBiZWVuIHRlc3RlZCBvbiBP TUFQMy4KVGhlIHBhdGNoIHdpdGggdGhpcyBtb2RpZmljYXRpb24gZm9sbG93cy4KCldoYXQgaXMg d3Jvbmcgd2l0aCBpdAojIyMjIyMjIyMjIyMjIyMjIyMjIyMKClVuZm9ydHVuYXRlbHksIHRoaXMg bW9kaWZpY2F0aW9uIGlzIG5vdCB3b3JraW5nLgpUaGUgb2JzZXJ2ZWQgYmVoYXZpb3VyIGlzOgox Li0gVGhlIGNvbnNvbGUgb3ZlciB1c2Igd29ya3MgZmluZSwgYXMgbG9uZyBhcwp0aGVyZSBpcyBj b25zdGFudCBhY3Rpdml0eS4gSWYgdGhlcmUgYXJlIG5vIHRyYW5zZmVycwpmb3IgYXBwcm94aW1h dGVseSA0IHNlY29uZHMgdGhlbiB0aGUgdXNiIGxpbmsgaXMgbG9zdC4KMi4tIFRoZSBmaWxlIHN5 c3RlbSBvdmVyIHVzYiB3b3JrcyBmaW5lLiBDaGVja2VkIE1ENSBzdW1zCm9mIGtlcm5lbCBpbWFn ZSBhbmQgaW5pdGlhbCByYW0gZGlzaywgYWxsIE9LLgozLi0gQmFyZWJveCByZWFjaGVzIHRoZSBz dGFydF9saW51eCBmdW5jdGlvbiBhbmQgZXhlY3V0ZXMKdGhlIGtlcm5lbCBmdW5jdGlvbiBwb2lu dGVyLCBzbywgY29udHJvbCBpcyB0cmFuc2ZlcnJlZAp0byBsaW51eC1sYW5kLiBCdXQgbGludXgg ZG9lcyBub3QgYm9vdCBhbmQKbm90aGluZyBpcyBwcmludGVkIG9uIHRoZSBzZXJpYWwgY29uc29s ZS4KCkhlbHAgbmVlZGVkCiMjIyMjIyMjIyMjCgpBcmUgdGhlcmUgYW55IHVzYiBleHBlcnRzIHdp bGxpbmcgdG8gaGVscCBmaXhpbmcgdGhpcz8KVGhlcmUgc2VlbXMgdG8gYmUgc29tZSAia2VlcC1h bGl2ZSIgdHJhbnNhY3Rpb25zIG92ZXIgdXNiCnRoYXQgd2hlbiBsb3N0IHRoZSB1c2IgbGluayBp cyByZXNldC4gVGhhdCBzZWVtcyB0byBjYXVzZQpwcm9ibGVtICgxLi0pIGRlc2NyaWJlZCBhYm92 ZS4KUHJvYmxlbSAoMy4tKSByZXF1aXJlcyBmdXJ0aGVyIGludmVzdGlnYXRpb24uIFRoZSBjdXJy ZW50bHkKb25seSBrbm93biBmYWN0IGlzIHRoYXQgaXQgd29ya3Mgd2l0aG91dCB0aGlzIHBhdGNo LgoKUmVnYXJkcywKICBWaWNlbsOnLgoKLS0tCiBhcmNoL2FybS9ib2FyZHMvYXJjaG9zZzkvYm9h cmQuYyAgICAgICAgICAgICAgICB8ICAgNyArLQogYXJjaC9hcm0vYm9hcmRzL2FyY2hvc2c5L2Vu di9pbml0L2F1dG9tb3VudDIgICAgfCAgIDIgKy0KIGFyY2gvYXJtL2NvbmZpZ3MvYXJjaG9zZzlf ZGVmY29uZmlnICAgICAgICAgICAgIHwgICA2ICstCiBhcmNoL2FybS9jb25maWdzL2FyY2hvc2c5 X3hsb2FkX2RlZmNvbmZpZyAgICAgICB8ICAgNiArLQogYXJjaC9hcm0vY3B1L2NwdS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgLS0KIGFyY2gvYXJtL21hY2gtb21hcC9LY29u ZmlnICAgICAgICAgICAgICAgICAgICAgIHwgICA5ICstCiBhcmNoL2FybS9tYWNoLW9tYXAvTWFr ZWZpbGUgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogYXJjaC9hcm0vbWFjaC1vbWFwL2lu Y2x1ZGUvbWFjaC9vbWFwNF9yb21fdXNiLmggfCAxNDQgLS0tLS0tLS0tLS0tLS0tLQogYXJjaC9h cm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC9vbWFwX3VzYmJvb3QuaCAgfCAgIDkgKwogYXJjaC9h cm0vbWFjaC1vbWFwL29tYXA0X2dlbmVyaWMuYyAgICAgICAgICAgICAgfCAgMjMgKy0tCiBhcmNo L2FybS9tYWNoLW9tYXAvb21hcDRfcm9tX3VzYi5jICAgICAgICAgICAgICB8IDE5NyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0KIGFyY2gvYXJtL21hY2gtb21hcC9vbWFwX3VzYmJvb3QuYyAgICAgICAg ICAgICAgIHwgMTA0ICsrKysrKysrKysrCiBhcmNoL2FybS9tYWNoLW9tYXAveGxvYWQuYyAgICAg ICAgICAgICAgICAgICAgICB8ICAxMiArLQogZHJpdmVycy9zZXJpYWwvS2NvbmZpZyAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDggKy0KIGRyaXZlcnMvc2VyaWFsL01ha2VmaWxlICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkcml2ZXJzL3NlcmlhbC9zZXJpYWxfb21hcDRf dXNiYm9vdC5jICAgICAgICAgICB8ICA3NyAtLS0tLS0tLS0KIGRyaXZlcnMvc2VyaWFsL3Nlcmlh bF9vbWFwX3VzYmJvb3QuYyAgICAgICAgICAgIHwgIDU0ICsrKysrKwogZnMvS2NvbmZpZyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0KIGZzL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBmcy9vbWFwNF91c2Ji b290ZnMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIxOSAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIGZzL29tYXBfdXNiYm9vdGZzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMjE5ICsrKysrKysrKysrKysrKysrKysrKysrKwogc2NyaXB0cy8uZ2l0aWdub3JlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNjcmlwdHMvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzY3JpcHRzL3tvbWFwNF91c2Jib290 LmMgPT4gb21hcF91c2Jib290LmN9ICAgICB8ICAgMAogMjQgZmlsZXMgY2hhbmdlZCwgNDI3IGlu c2VydGlvbnMoKyksIDcwMSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBhcmNoL2Fy bS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL29tYXA0X3JvbV91c2IuaAogY3JlYXRlIG1vZGUgMTAw NjQ0IGFyY2gvYXJtL21hY2gtb21hcC9pbmNsdWRlL21hY2gvb21hcF91c2Jib290LmgKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9tYWNoLW9tYXAvb21hcDRfcm9tX3VzYi5jCiBjcmVhdGUg bW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwL29tYXBfdXNiYm9vdC5jCiBkZWxldGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9zZXJpYWwvc2VyaWFsX29tYXA0X3VzYmJvb3QuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvc2VyaWFsL3NlcmlhbF9vbWFwX3VzYmJvb3QuYwogZGVsZXRlIG1v ZGUgMTAwNjQ0IGZzL29tYXA0X3VzYmJvb3Rmcy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZnMvb21h cF91c2Jib290ZnMuYwogcmVuYW1lIHNjcmlwdHMve29tYXA0X3VzYmJvb3QuYyA9PiBvbWFwX3Vz YmJvb3QuY30gKDEwMCUpCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2FyY2hvc2c5L2Jv YXJkLmMgYi9hcmNoL2FybS9ib2FyZHMvYXJjaG9zZzkvYm9hcmQuYwppbmRleCA1MmY3ZTg2ZmIu LmNmZjZiYTIxNCAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vYm9hcmRzL2FyY2hvc2c5L2JvYXJkLmMK KysrIGIvYXJjaC9hcm0vYm9hcmRzL2FyY2hvc2c5L2JvYXJkLmMKQEAgLTE3LDcgKzE3LDcgQEAK ICNpbmNsdWRlIDxnZW5lcmF0ZWQvbWFjaC10eXBlcy5oPgogI2luY2x1ZGUgPG1hY2gvb21hcDQt c2lsaWNvbi5oPgogI2luY2x1ZGUgPG1hY2gvb21hcDQtZGV2aWNlcy5oPgotI2luY2x1ZGUgPG1h Y2gvb21hcDRfcm9tX3VzYi5oPgorI2luY2x1ZGUgPG1hY2gvb21hcF91c2Jib290Lmg+CiAjaW5j bHVkZSA8bWFjaC9vbWFwLWZiLmg+CiAjaW5jbHVkZSA8bGludXgvc2l6ZXMuaD4KICNpbmNsdWRl IDxpMmMvaTJjLmg+CkBAIC00Niw5ICs0Niw4IEBAIHN0YXRpYyBpbnQgYXJjaG9zZzlfY29uc29s ZV9pbml0KHZvaWQpCiAgICAgYmFyZWJveF9zZXRfbW9kZWwoIkFyY2hvcyBHOSIpOwogICAgIGJh cmVib3hfc2V0X2hvc3RuYW1lKCJnOSIpOwoKLSAgICBpZiAoSVNfRU5BQkxFRChDT05GSUdfRFJJ VkVSX1NFUklBTF9PTUFQNF9VU0JCT09UKSAmJgotICAgICAgICAgICAgb21hcDRfdXNiYm9vdF9y ZWFkeSgpKSB7Ci0gICAgICAgIGFkZF9nZW5lcmljX2RldmljZSgic2VyaWFsX29tYXA0X3VzYmJv b3QiLCBERVZJQ0VfSURfRFlOQU1JQworICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19EUklWRVJf U0VSSUFMX09NQVBfVVNCQk9PVCkpIHsKKyAgICAgICAgYWRkX2dlbmVyaWNfZGV2aWNlKCJzZXJp YWxfb21hcF91c2Jib290IiwgREVWSUNFX0lEX0RZTkFNSUMKICAgICAgICAgICAgICwgTlVMTCwg MCwgMCwgMCwgTlVMTCk7CiAgICAgfQogICAgIGlmIChJU19FTkFCTEVEKENPTkZJR19EUklWRVJf U0VSSUFMX05TMTY1NTApKSB7CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvYXJjaG9zZzkv ZW52L2luaXQvYXV0b21vdW50MgpiL2FyY2gvYXJtL2JvYXJkcy9hcmNob3NnOS9lbnYvaW5pdC9h dXRvbW91bnQyCmluZGV4IGZhMTA0Mzk3ZS4uOWRjNTI0MDIwIDEwMDY0NAotLS0gYS9hcmNoL2Fy bS9ib2FyZHMvYXJjaG9zZzkvZW52L2luaXQvYXV0b21vdW50MgorKysgYi9hcmNoL2FybS9ib2Fy ZHMvYXJjaG9zZzkvZW52L2luaXQvYXV0b21vdW50MgpAQCAtNCw0ICs0LDQgQEAgbWtkaXIgLXAg L21udC9zZAogYXV0b21vdW50IC1kIC9tbnQvc2QgJ1sgLWUgL2Rldi9kaXNrMC4wIF0gJiYgbW91 bnQgL2Rldi9kaXNrMC4wIC9tbnQvc2QnCgogbWtkaXIgLXAgL21udC91c2IKLWF1dG9tb3VudCAt ZCAvbW50L3VzYiAnbW91bnQgLXQgb21hcDRfdXNiYm9vdGZzIG9tYXA0X3VzYmJvb3QgL21udC91 c2InCithdXRvbW91bnQgLWQgL21udC91c2IgJ21vdW50IC10IG9tYXBfdXNiYm9vdGZzIG9tYXBf dXNiYm9vdCAvbW50L3VzYicKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NvbmZpZ3MvYXJjaG9zZzlf ZGVmY29uZmlnCmIvYXJjaC9hcm0vY29uZmlncy9hcmNob3NnOV9kZWZjb25maWcKaW5kZXggOWE3 MTkyMTQ4Li43ZDM2ZmE2MDIgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXJjaG9zZzlf ZGVmY29uZmlnCisrKyBiL2FyY2gvYXJtL2NvbmZpZ3MvYXJjaG9zZzlfZGVmY29uZmlnCkBAIC0x LDUgKzEsNSBAQAogQ09ORklHX0FSQ0hfT01BUD15Ci1DT05GSUdfT01BUDRfVVNCQk9PVD15CitD T05GSUdfT01BUF9VU0JCT09UPXkKIENPTkZJR19NQUNIX0FSQ0hPU0c5PXkKIENPTkZJR19USFVN QjJfQkFSRUJPWD15CiBDT05GSUdfQVJNX0JPQVJEX0FQUEVORF9BVEFHPXkKQEAgLTY5LDcgKzY5 LDcgQEAgQ09ORklHX05FVF9ORVRDT05TT0xFPXkKIENPTkZJR19ORVRfUkVTT0xWPXkKIENPTkZJ R19EUklWRVJfU0VSSUFMX05TMTY1NTA9eQogQ09ORklHX0RSSVZFUl9TRVJJQUxfTlMxNjU1MF9P TUFQX0VYVEVOU0lPTlM9eQotQ09ORklHX0RSSVZFUl9TRVJJQUxfT01BUDRfVVNCQk9PVD15CitD T05GSUdfRFJJVkVSX1NFUklBTF9PTUFQX1VTQkJPT1Q9eQogQ09ORklHX05FVF9VU0I9eQogQ09O RklHX05FVF9VU0JfU01TQzk1WFg9eQogIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKQEAgLTkxLDcg KzkxLDcgQEAgQ09ORklHX0xFRF9UUklHR0VSUz15CiBDT05GSUdfS0VZQk9BUkRfR1BJTz15CiBD T05GSUdfS0VZQk9BUkRfVFdMNjAzMD15CiBDT05GSUdfRlNfVEZUUD15Ci1DT05GSUdfRlNfT01B UDRfVVNCQk9PVD15CitDT05GSUdfRlNfT01BUF9VU0JCT09UPXkKIENPTkZJR19GU19ORlM9eQog Q09ORklHX0ZTX0ZBVD15CiBDT05GSUdfRlNfRkFUX1dSSVRFPXkKZGlmZiAtLWdpdCBhL2FyY2gv YXJtL2NvbmZpZ3MvYXJjaG9zZzlfeGxvYWRfZGVmY29uZmlnCmIvYXJjaC9hcm0vY29uZmlncy9h cmNob3NnOV94bG9hZF9kZWZjb25maWcKaW5kZXggZGMxM2Y1NjlkLi5iZDRhYzJkNjcgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtL2NvbmZpZ3MvYXJjaG9zZzlfeGxvYWRfZGVmY29uZmlnCisrKyBiL2Fy Y2gvYXJtL2NvbmZpZ3MvYXJjaG9zZzlfeGxvYWRfZGVmY29uZmlnCkBAIC0yLDcgKzIsNyBAQCBD T05GSUdfQVJDSF9PTUFQPXkKIENPTkZJR19CQVJFQk9YX01BWF9JTUFHRV9TSVpFPTB4QzAwMAog IyBDT05GSUdfT01BUF9HUE1DIGlzIG5vdCBzZXQKIENPTkZJR19PTUFQX0JVSUxEX0lGVD15Ci1D T05GSUdfT01BUDRfVVNCQk9PVD15CitDT05GSUdfT01BUF9VU0JCT09UPXkKIENPTkZJR19NQUNI X0FSQ0hPU0c5PXkKIENPTkZJR19USFVNQjJfQkFSRUJPWD15CiAjIENPTkZJR19CQU5ORVIgaXMg bm90IHNldApAQCAtMTUsNyArMTUsNyBAQCBDT05GSUdfU0hFTExfTk9ORT15CiBDT05GSUdfQ09O U09MRV9TSU1QTEU9eQogQ09ORklHX0RSSVZFUl9TRVJJQUxfTlMxNjU1MD15CiBDT05GSUdfRFJJ VkVSX1NFUklBTF9OUzE2NTUwX09NQVBfRVhURU5TSU9OUz15Ci1DT05GSUdfRFJJVkVSX1NFUklB TF9PTUFQNF9VU0JCT09UPXkKK0NPTkZJR19EUklWRVJfU0VSSUFMX09NQVBfVVNCQk9PVD15CiAj IENPTkZJR19TUEkgaXMgbm90IHNldAogQ09ORklHX01DST15CiBDT05GSUdfTUNJX1NUQVJUVVA9 eQpAQCAtMjMsNSArMjMsNSBAQCBDT05GSUdfTUNJX1NUQVJUVVA9eQogQ09ORklHX01DSV9PTUFQ X0hTTU1DPXkKICMgQ09ORklHX0ZTX1JBTUZTIGlzIG5vdCBzZXQKICMgQ09ORklHX0ZTX0RFVkZT IGlzIG5vdCBzZXQKLUNPTkZJR19GU19PTUFQNF9VU0JCT09UPXkKK0NPTkZJR19GU19PTUFQX1VT QkJPT1Q9eQogQ09ORklHX0ZTX0ZBVD15CmRpZmYgLS1naXQgYS9hcmNoL2FybS9jcHUvY3B1LmMg Yi9hcmNoL2FybS9jcHUvY3B1LmMKaW5kZXggYjQ4MDQ2MzRiLi42ZTY1NTI1NWUgMTAwNjQ0Ci0t LSBhL2FyY2gvYXJtL2NwdS9jcHUuYworKysgYi9hcmNoL2FybS9jcHUvY3B1LmMKQEAgLTMxLDcg KzMxLDYgQEAKICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9tZW1vcnlfbGF5b3V0Lmg+CiAjaW5jbHVk ZSA8YXNtL2NwdXR5cGUuaD4KICNpbmNsdWRlIDxhc20vY2FjaGUuaD4KLSNpbmNsdWRlIDxhc20v cHRyYWNlLmg+CgogI2luY2x1ZGUgIm1tdS5oIgoKQEAgLTk4LDIzICs5NywxMCBAQCB2b2lkIG1t dV9kaXNhYmxlKHZvaWQpCiAgKi8KIHN0YXRpYyB2b2lkIGFyY2hfc2h1dGRvd24odm9pZCkKIHsK LSAgICB1aW50MzJfdCByOwotCiAjaWZkZWYgQ09ORklHX01NVQogICAgIG1tdV9kaXNhYmxlKCk7 CiAjZW5kaWYKICAgICBmbHVzaF9pY2FjaGUoKTsKLQotI2lmIF9fTElOVVhfQVJNX0FSQ0hfXyA8 PSA3Ci0gICAgLyoKLSAgICAgKiBiYXJlYm94IG5vcm1hbGx5IGRvZXMgbm90IHVzZSBpbnRlcnJ1 cHRzLCBidXQgc29tZSBmdW5jdGlvbmFsaXRpZXMKLSAgICAgKiAoZWcuIE9NQVA0X1VTQkJPT1Qp IHJlcXVpcmUgdGhlbSBlbmFibGVkLiBTbyBiZSBzdXJlIGludGVycnVwdHMgYXJlCi0gICAgICog ZGlzYWJsZWQgYmVmb3JlIGV4aXRpbmcuCi0gICAgICovCi0gICAgX19hc21fXyBfX3ZvbGF0aWxl X18oIm1ycyAlMCwgY3BzciIgOiAiPXIiKHIpKTsKLSAgICByIHw9IFBTUl9JX0JJVDsKLSAgICBf X2FzbV9fIF9fdm9sYXRpbGVfXygibXNyIGNwc3IsICUwIiA6IDogInIiKHIpKTsKLSNlbmRpZgog fQogYXJjaHNodXRkb3duX2V4aXRjYWxsKGFyY2hfc2h1dGRvd24pOwoKZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL21hY2gtb21hcC9LY29uZmlnIGIvYXJjaC9hcm0vbWFjaC1vbWFwL0tjb25maWcKaW5k ZXggOWM0MTc0MWI1Li4xY2MwZjc4YTAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb21hcC9L Y29uZmlnCisrKyBiL2FyY2gvYXJtL21hY2gtb21hcC9LY29uZmlnCkBAIC0xMjAsMTQgKzEyMCwx NSBAQCBjb25maWcgQU0zM1hYX05FVF9CT09UCiAgICAgZGVmYXVsdCBuCiAgICAgZGVwZW5kcyBv biBBUkNIX0FNMzNYWCAmJiBORVQKCi1jb25maWcgT01BUDRfVVNCQk9PVAorY29uZmlnIE9NQVBf VVNCQk9PVAogICAgIGJvb2wgImVuYWJsZSBib290aW5nIGZyb20gVVNCIgogICAgIGRlZmF1bHQg bgotICAgIGRlcGVuZHMgb24gQVJDSF9PTUFQNCAmJiAhTU1VCisgICAgZGVwZW5kcyBvbiBBUkNI X09NQVAzIHx8IEFSQ0hfT01BUDQKICAgICBoZWxwCiAgICAgICBTYXkgWSBoZXJlIGlmIHlvdSB3 YW50IHRvIGJlIGFibGUgdG8gYm9vdCBhbiBPTUFQNCBjcHUgZnJvbSBVU0IuCi0gICAgICBZb3Ug bmVlZCB0aGUgdXRpbGl0eSBwcm9ncmFtIG9tYXA0X3VzYmJvb3QgdG8gYm9vdCBmcm9tIFVTQi4K LSAgICAgIFBsZWFzZSByZWFkIG9tYXA0X3VzYl9ib290aW5nLnR4dCBmb3IgbW9yZSBpbmZvcm1h dGlvbi4KKyAgICAgIFlvdSBuZWVkIHRoZSB1dGlsaXR5IHByb2dyYW0gb21hcF91c2Jib290IHRv IGJvb3QgZnJvbSBVU0IuCisgICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWFkOgorICAgICAg aHR0cHM6Ly9naXQucGVuZ3V0cm9uaXguZGUvY2dpdC9iYXJlYm94L3BsYWluL0RvY3VtZW50YXRp b24vb21hcDRfdXNiX2Jvb3RpbmcudHh0P2lkPTk4MzYwYmUwZmVmZDU4YmYyN2RmMDNjNDdkODg3 ZGQ2NzZhMzFkNzMKCiBjb25maWcgT01BUDNfVVNCQk9PVAogICAgIGJvb2wgImVuYWJsZSBib290 aW5nIGZyb20gVVNCIgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwL01ha2VmaWxlIGIv YXJjaC9hcm0vbWFjaC1vbWFwL01ha2VmaWxlCmluZGV4IGE4NGU5NGVkNy4uODUyMzYzM2ZiIDEw MDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwL01ha2VmaWxlCkBAIC0zMCw3ICszMCw3IEBAIHBibC0kKENPTkZJR19BUkNIX09NQVAz KSArPSBvbWFwM19jbG9jay5vCiBvYmotJChDT05GSUdfT01BUF9HUE1DKSArPSBncG1jLm8gZGV2 aWNlcy1ncG1jLW5hbmQubwogb2JqLSQoQ09ORklHX1NIRUxMX05PTkUpICs9IHhsb2FkLm8KIG9i ai0kKENPTkZJR19NRkRfVFdMNjAzMCkgKz0gb21hcDRfdHdsNjAzMF9tbWMubwotb2JqLSQoQ09O RklHX09NQVA0X1VTQkJPT1QpICs9IG9tYXA0X3JvbV91c2Iubworb2JqLSQoQ09ORklHX09NQVBf VVNCQk9PVCkgKz0gb21hcF91c2Jib290Lm8KIG9iai0kKENPTkZJR19PTUFQM19VU0JCT09UKSAr PSBvbWFwM194bG9hZF91c2IubwogcGJsLSQoQ09ORklHX09NQVAzX1VTQkJPT1QpICs9IG9tYXAz X3hsb2FkX3VzYi5vCiBvYmotJChDT05GSUdfQ01EX0JPT1RfT1JERVIpICs9IGJvb3Rfb3JkZXIu bwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC9vbWFwNF9yb21f dXNiLmgKYi9hcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL29tYXA0X3JvbV91c2IuaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmY4YmQxNTlhLi4wMDAwMDAwMDAKLS0tIGEv YXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC9vbWFwNF9yb21fdXNiLmgKKysrIC9kZXYv bnVsbApAQCAtMSwxNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5k cm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRp b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0 aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3Ry aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAq IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB TEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig QU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVE IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0g KiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X RVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdM SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVT RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G Ci0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIF9PTUFQNF9ST01fVVNCX0hfCi0jZGVm aW5lIF9PTUFQNF9ST01fVVNCX0hfCi0KLS8qIHB1YmxpYyBhcGkgKi8KLSNkZWZpbmUgUFVCTElD X0FQSV9CQVNFXzQ0MzAgICAgICAgICgweDI4NDAwKQotI2RlZmluZSBQVUJMSUNfQVBJX0JBU0Vf NDQ2MCAgICAgICAgKDB4MzA0MDApCi0KLSNkZWZpbmUgUFVCTElDX0dFVF9EUklWRVJfTUVNX09G RlNFVCAoMHgwNCkKLSNkZWZpbmUgUFVCTElDX0dFVF9EUklWRVJfUEVSX09GRlNFVCAoMHgwOCkK LSNkZWZpbmUgUFVCTElDX0dFVF9ERVZJQ0VfTUVNX09GRlNFVCAoMHg4MCkKLSNkZWZpbmUgUFVC TElDX0dFVF9ERVZJQ0VfUEVSX09GRlNFVCAoMHg4NCkKLQotI2RlZmluZSBERVZJQ0VfTlVMTCAg ICAweDQwCi0jZGVmaW5lIERFVklDRV9VQVJUMSAgICAweDQxCi0jZGVmaW5lIERFVklDRV9VQVJU MiAgICAweDQyCi0jZGVmaW5lIERFVklDRV9VQVJUMyAgICAweDQzCi0jZGVmaW5lIERFVklDRV9V QVJUNCAgICAweDQ0Ci0jZGVmaW5lIERFVklDRV9VU0IgICAgMHg0NQotI2RlZmluZSBERVZJQ0Vf VVNCRVhUICAgIDB4NDYKLQotI2RlZmluZSBYRkVSX01PREVfQ1BVIDAKLSNkZWZpbmUgWEZFUl9N T0RFX0RNQSAxCi0KLSNkZWZpbmUgU1RBVFVTX09LQVkgICAgICAgIDAKLSNkZWZpbmUgU1RBVFVT X0ZBSUxFRCAgICAgICAgMQotI2RlZmluZSBTVEFUVVNfVElNRU9VVCAgICAgICAgMgotI2RlZmlu ZSBTVEFUVVNfQkFEX1BBUkFNICAgIDMKLSNkZWZpbmUgU1RBVFVTX1dBSVRJTkcgICAgICAgIDQK LSNkZWZpbmUgU1RBVFVTX05PX01FTU9SWSAgICA1Ci0jZGVmaW5lIFNUQVRVU19JTlZBTElEX1BU UiAgICA2Ci0KLS8qIE1lbW9yeSBST00gaW50ZXJmYWNlICovCi1zdHJ1Y3QgcmVhZF9kZXNjIHsK LSAgICB1MzIgc2VjdG9yX3N0YXJ0OwotICAgIHUzMiBzZWN0b3JfY291bnQ7Ci0gICAgdm9pZCAq ZGVzdGluYXRpb247Ci19OwotCi1zdHJ1Y3QgbWVtX2RldmljZSB7Ci0gICAgdTMyIGluaXRpYWxp emVkOwotICAgIHU4IGRldmljZV90eXBlOwotICAgIHU4IHRyaWFsc19jb3VudDsKLSAgICB1MzIg eGlwX2RldmljZTsKLSAgICB1MTYgc2VhcmNoX3NpemU7Ci0gICAgdTMyIGJhc2VfYWRkcmVzczsK LSAgICB1MTYgaHNfdG9jX21hc2s7Ci0gICAgdTE2IGdwX3RvY19tYXNrOwotICAgIHZvaWQgKmRl dmljZV9kYXRhOwotICAgIHUxNiAqYm9vdF9vcHRpb25zOwotfTsKLQotc3RydWN0IG1lbV9kcml2 ZXIgewotICAgIGludCAoKmluaXQpKHN0cnVjdCBtZW1fZGV2aWNlICptZCk7Ci0gICAgaW50ICgq cmVhZCkoc3RydWN0IG1lbV9kZXZpY2UgKm1kLCBzdHJ1Y3QgcmVhZF9kZXNjICpyZCk7Ci0gICAg aW50ICgqY29uZmlndXJlKShzdHJ1Y3QgbWVtX2RldmljZSAqbWQsIHZvaWQgKmNvbmZpZyk7Ci19 OwotCi0KLS8qIFBlcmlwaGVyYWwgUk9NIGludGVyZmFjZSAqLwotc3RydWN0IHBlcl9oYW5kbGUg ewotICAgIHZvaWQgKnNldF90b19udWxsOwotICAgIHZvaWQgKCpjYWxsYmFjaykoc3RydWN0IHBl cl9oYW5kbGUgKnJoKTsKLSAgICB2b2lkICpkYXRhOwotICAgIHUzMiBsZW5ndGg7Ci0gICAgdTE2 ICpvcHRpb25zOwotICAgIHUzMiB4ZmVyX21vZGU7Ci0gICAgdTMyIGRldmljZV90eXBlOwotICAg IHUzMiBzdGF0dXM7Ci0gICAgdTE2IGhzX3RvY19tYXNrOwotICAgIHUxNiBncF90b2NfbWFzazsK LSAgICB1MzIgY29uZmlnX3RpbWVvdXQ7Ci19OwotCi1zdHJ1Y3QgcGVyX2RyaXZlciB7Ci0gICAg aW50ICgqaW5pdCkoc3RydWN0IHBlcl9oYW5kbGUgKnJoKTsKLSAgICBpbnQgKCpyZWFkKShzdHJ1 Y3QgcGVyX2hhbmRsZSAqcmgpOwotICAgIGludCAoKndyaXRlKShzdHJ1Y3QgcGVyX2hhbmRsZSAq cmgpOwotICAgIGludCAoKmNsb3NlKShzdHJ1Y3QgcGVyX2hhbmRsZSAqcmgpOwotICAgIGludCAo KmNvbmZpZykoc3RydWN0IHBlcl9oYW5kbGUgKnJoLCB2b2lkICp4KTsKLX07Ci0KLSNkZWZpbmUg VVNCX1NFVENPTkZJR0RFU0NfQVRUUklCVVRFUyAgICAgICgwKQotI2RlZmluZSBVU0JfU0VUQ09O RklHREVTQ19NQVhQT1dFUiAgICAgICAgKDEpCi0jZGVmaW5lIFVTQl9TRVRTVVNQRU5EX0NBTExC QUNLICAgICAgICAgICAoMikKLXN0cnVjdCBwZXJfdXNiX2NvbmZpZyB7Ci0gICAgdTMyIGNvbmZp Z2lkOwotICAgIHUzMiB2YWx1ZTsKLX07Ci0KLSNkZWZpbmUgQVBJKG4pICgodm9pZCAqKSAoKigo dTMyICopIChuKSkpKQotLyogUk9NIEFQSSBFbmQgKi8KLQotc3RydWN0IG9tYXA0X3VzYmJvb3Qg ewotICAgIHN0cnVjdCBwZXJfaGFuZGxlIGRyZWFkOwotICAgIHN0cnVjdCBwZXJfaGFuZGxlIGR3 cml0ZTsKLSAgICBzdHJ1Y3QgcGVyX2RyaXZlciAqaW87Ci0gICAgaW50IHJlYWR5OwotfTsKLQot aW50IG9tYXA0X3VzYmJvb3Rfb3Blbih2b2lkKTsKLWludCBvbWFwNF91c2Jib290X3JlYWR5KHZv aWQpOwotdm9pZCBvbWFwNF91c2Jib290X2Nsb3NlKHZvaWQpOwotCi12b2lkIG9tYXA0X3VzYmJv b3RfcXVldWVfcmVhZCh2b2lkICpkYXRhLCB1bnNpZ25lZCBsZW4pOwotaW50IG9tYXA0X3VzYmJv b3Rfd2FpdF9yZWFkKHZvaWQpOwotaW50IG9tYXA0X3VzYmJvb3RfaXNfcmVhZF93YWl0aW5nKHZv aWQpOwotaW50IG9tYXA0X3VzYmJvb3RfaXNfcmVhZF9vayh2b2lkKTsKLQotdm9pZCBvbWFwNF91 c2Jib290X3F1ZXVlX3dyaXRlKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGxlbik7Ci1pbnQgb21hcDRf dXNiYm9vdF93YWl0X3dyaXRlKHZvaWQpOwotCi1pbnQgb21hcDRfdXNiYm9vdF9yZWFkKHZvaWQg KmRhdGEsIHVuc2lnbmVkIGxlbik7Ci1pbnQgb21hcDRfdXNiYm9vdF93cml0ZSh2b2lkICpkYXRh LCB1bnNpZ25lZCBsZW4pOwotdm9pZCBvbWFwNF91c2Jib290X3B1dHMoY29uc3QgY2hhciAqcyk7 Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwL2luY2x1ZGUvbWFjaC9v bWFwX3VzYmJvb3QuaApiL2FyY2gvYXJtL21hY2gtb21hcC9pbmNsdWRlL21hY2gvb21hcF91c2Ji b290LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi41YzllYzAzNmMKLS0t IC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9tYWNoLW9tYXAvaW5jbHVkZS9tYWNoL29tYXBfdXNi Ym9vdC5oCkBAIC0wLDAgKzEsOSBAQAorI2lmbmRlZiBPTUFQX1VTQkJPT1RfSAorI2RlZmluZSBP TUFQX1VTQkJPT1RfSAorCitpbnQgIG9tYXBfdXNiYm9vdF9hdmFpbGFibGVfYnl0ZXMgKHZvaWQp OworaW50ICBvbWFwX3VzYmJvb3RfcmVhZCAgICAgICAgICAgICh2b2lkICpkYXRhLCB1bnNpZ25l ZCBsZW4pOworaW50ICBvbWFwX3VzYmJvb3Rfd3JpdGUgICAgICAgICAgICh2b2lkICpkYXRhLCB1 bnNpZ25lZCBsZW4pOwordm9pZCBvbWFwX3VzYmJvb3RfcHV0cyAgICAgICAgICAgIChjb25zdCBj aGFyICpzKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9tYXAvb21hcDRf Z2VuZXJpYy5jCmIvYXJjaC9hcm0vbWFjaC1vbWFwL29tYXA0X2dlbmVyaWMuYwppbmRleCBhM2Yz NzBkZjguLjQ3NTNiNjAzNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwL29tYXA0X2dl bmVyaWMuYworKysgYi9hcmNoL2FybS9tYWNoLW9tYXAvb21hcDRfZ2VuZXJpYy5jCkBAIC05LDcg KzksNiBAQAogI2luY2x1ZGUgPG1hY2gvc3lzbGliLmg+CiAjaW5jbHVkZSA8bWFjaC9nZW5lcmlj Lmg+CiAjaW5jbHVkZSA8bWFjaC9ncG1jLmg+Ci0jaW5jbHVkZSA8bWFjaC9vbWFwNF9yb21fdXNi Lmg+CgogLyoKICAqICBUaGUgZm9sbG93aW5nIHNldmVyYWwgbGluZXMgYXJlIHRha2VuIGZyb20g VS1Cb290IHRvIHN1cHBvcnQKQEAgLTQ4NCwyMSArNDgzLDEzIEBAIGxhdGVfaW5pdGNhbGwod2F0 Y2hkb2dfaW5pdCk7Cgogc3RhdGljIGludCBvbWFwX3ZlY3Rvcl9pbml0KHZvaWQpCiB7Ci0gICAg LyoKLSAgICAgKiBvbWFwNCB1c2Jib290IGludGVyZmFjZXMgd2l0aCB0aGUgb21hcDQgUk9NIHRv IHJldXNlIHRoZSBVU0IgcG9ydAotICAgICAqIHVzZWQgZm9yIGJvb3RpbmcuCi0gICAgICogVGhl IFJPTSBjb2RlIHVzZXMgaW50ZXJydXB0cyBmb3IgdGhlIHRyYW5zZmVycywgc28gZG8gbm90IG1v ZGlmeSB0aGUKLSAgICAgKiBpbnRlcnJ1cHQgdmVjdG9ycyBpbiB0aGlzIGNhc2UuCi0gICAgICov Ci0gICAgaWYgKGJvb3Rzb3VyY2VfZ2V0KCkgIT0gQk9PVFNPVVJDRV9VU0IpIHsKLSAgICAgICAg X19hc21fXyBfX3ZvbGF0aWxlX18gKAotICAgICAgICAgICAgIm1vdiAgICByMCwgIzA7IgotICAg ICAgICAgICAgIm1jciAgICBwMTUsICMwLCByMCwgYzEyLCBjMCwgIzA7IgotICAgICAgICAgICAg OgotICAgICAgICAgICAgOgotICAgICAgICAgICAgOiAicjAiCi0gICAgICAgICk7Ci0gICAgfQor ICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgKKyAgICAgICAgIm1vdiAgICByMCwgIzA7IgorICAg ICAgICAibWNyICAgIHAxNSwgIzAsIHIwLCBjMTIsIGMwLCAjMDsiCisgICAgICAgIDoKKyAgICAg ICAgOgorICAgICAgICA6ICJyMCIKKyAgICApOwoKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21hY2gtb21hcC9vbWFwNF9yb21fdXNiLmMKYi9hcmNoL2FybS9tYWNoLW9t YXAvb21hcDRfcm9tX3VzYi5jCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMWQ5M2Mz NGUuLjAwMDAwMDAwMAotLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAvb21hcDRfcm9tX3VzYi5jCisr KyAvZGV2L251bGwKQEAgLTEsMTk3ICswLDAgQEAKLS8qCi0gKiBUaGlzIGNvZGUgaXMgYmFzZWQg b246Ci0gKiBnaXQ6Ly9naXRodWIuY29tL3N3ZXRsYW5kL29tYXA0Ym9vdC5naXQKLSAqLwotLyoK LSAqIENvcHlyaWdodCAoQykgMjAxMCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0g KiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g KiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0 YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9u cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns YWltZXIgaW4KLSAqICAgIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg cHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MKLSAqIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCi0gKiBDT1BZUklHSFQgT1dORVIg T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi0gKiBJ TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo SU5DTFVESU5HLAotICogQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTCi0gKiBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7 IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQKLSAqIEFORCBPTiBBTlkg VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU WSwKLSAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO RyBJTiBBTlkgV0FZIE9VVAotICogT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0j aW5jbHVkZSA8Y29tbW9uLmg+Ci0jaW5jbHVkZSA8bWFjaC9vbWFwNC1zaWxpY29uLmg+Ci0jaW5j bHVkZSA8bWFjaC9vbWFwNF9yb21fdXNiLmg+Ci0jaW5jbHVkZSA8bWFjaC9nZW5lcmljLmg+Ci0j aW5jbHVkZSA8aW5pdC5oPgotCi1zdGF0aWMgc3RydWN0IG9tYXA0X3VzYmJvb3Qgb21hcDRfdXNi Ym9vdF9kYXRhOwotCi1pbnQgb21hcDRfdXNiYm9vdF9vcGVuKHZvaWQpCi17Ci0gICAgaW50ICgq cm9tX2dldF9wZXJfZHJpdmVyKShzdHJ1Y3QgcGVyX2RyaXZlciAqKmlvLCB1MzIgZGV2aWNlX3R5 cGUpOwotICAgIGludCAoKnJvbV9nZXRfcGVyX2RldmljZSkoc3RydWN0IHBlcl9oYW5kbGUgKipy aCk7Ci0gICAgc3RydWN0IHBlcl9oYW5kbGUgKmJvb3Q7Ci0gICAgaW50IG47Ci0gICAgdTMyIGJh c2U7Ci0KLSAgICBpZiAob21hcDRfcmV2aXNpb24oKSA+PSBPTUFQNDQ2MF9FUzFfMCkKLSAgICAg ICAgYmFzZSA9IFBVQkxJQ19BUElfQkFTRV80NDYwOwotICAgIGVsc2UKLSAgICAgICAgYmFzZSA9 IFBVQkxJQ19BUElfQkFTRV80NDMwOwotCi0gICAgcm9tX2dldF9wZXJfZHJpdmVyID0gQVBJKGJh c2UgKyBQVUJMSUNfR0VUX0RSSVZFUl9QRVJfT0ZGU0VUKTsKLSAgICByb21fZ2V0X3Blcl9kZXZp Y2UgPSBBUEkoYmFzZSArIFBVQkxJQ19HRVRfREVWSUNFX1BFUl9PRkZTRVQpOwotCi0gICAgbiA9 IHJvbV9nZXRfcGVyX2RldmljZSgmYm9vdCk7Ci0gICAgaWYgKG4pCi0gICAgICAgIHJldHVybiBu OwotCi0gICAgaWYgKChib290LT5kZXZpY2VfdHlwZSAhPSBERVZJQ0VfVVNCKSAmJgotICAgICAg ICAoYm9vdC0+ZGV2aWNlX3R5cGUgIT0gREVWSUNFX1VTQkVYVCkpCi0gICAgICAgIHJldHVybiAw OwotCi0gICAgbWVtc2V0KCZvbWFwNF91c2Jib290X2RhdGEsIDAsIHNpemVvZihvbWFwNF91c2Ji b290X2RhdGEpKTsKLSAgICBuID0gcm9tX2dldF9wZXJfZHJpdmVyKCZvbWFwNF91c2Jib290X2Rh dGEuaW8sIGJvb3QtPmRldmljZV90eXBlKTsKLSAgICBpZiAobikKLSAgICAgICAgcmV0dXJuIG47 Ci0KLSAgICBvbWFwNF91c2Jib290X2RhdGEuZHJlYWQuc3RhdHVzID0gLTE7Ci0gICAgb21hcDRf dXNiYm9vdF9kYXRhLmRyZWFkLnhmZXJfbW9kZSA9IGJvb3QtPnhmZXJfbW9kZTsKLSAgICBvbWFw NF91c2Jib290X2RhdGEuZHJlYWQub3B0aW9ucyA9IGJvb3QtPm9wdGlvbnM7Ci0gICAgb21hcDRf dXNiYm9vdF9kYXRhLmRyZWFkLmRldmljZV90eXBlID0gYm9vdC0+ZGV2aWNlX3R5cGU7Ci0KLSAg ICBvbWFwNF91c2Jib290X2RhdGEuZHdyaXRlLnN0YXR1cyA9IC0xOwotICAgIG9tYXA0X3VzYmJv b3RfZGF0YS5kd3JpdGUueGZlcl9tb2RlID0gYm9vdC0+eGZlcl9tb2RlOwotICAgIG9tYXA0X3Vz YmJvb3RfZGF0YS5kd3JpdGUub3B0aW9ucyA9IGJvb3QtPm9wdGlvbnM7Ci0gICAgb21hcDRfdXNi Ym9vdF9kYXRhLmR3cml0ZS5kZXZpY2VfdHlwZSA9IGJvb3QtPmRldmljZV90eXBlOwotICAgIF9f YXNtX18gX192b2xhdGlsZV9fICgiY3BzaWUgaVxuIik7Ci0gICAgb21hcDRfdXNiYm9vdF9kYXRh LnJlYWR5ID0gMTsKLQotICAgIG9tYXA0X3VzYmJvb3RfcHV0cygiVVNCIGNvbW11bmljYXRpb25z IGluaXRpYWxpemVkXG4iKTsKLSAgICByZXR1cm4gMDsKLX0KLWNvcmVfaW5pdGNhbGwob21hcDRf dXNiYm9vdF9vcGVuKTsKLQotaW50IG9tYXA0X3VzYmJvb3RfcmVhZHkodm9pZCl7Ci0gICAgcmV0 dXJuIG9tYXA0X3VzYmJvb3RfZGF0YS5yZWFkeTsKLX0KLQotc3RhdGljIHZvaWQgcm9tX3JlYWRf Y2FsbGJhY2soc3RydWN0IHBlcl9oYW5kbGUgKnJoKQotewotICAgIG9tYXA0X3VzYmJvb3RfZGF0 YS5kcmVhZC5zdGF0dXMgPSByaC0+c3RhdHVzOwotICAgIHJldHVybjsKLX0KLQotdm9pZCBvbWFw NF91c2Jib290X3F1ZXVlX3JlYWQodm9pZCAqZGF0YSwgdW5zaWduZWQgbGVuKQotewotICAgIGlu dCBuOwotICAgIG9tYXA0X3VzYmJvb3RfZGF0YS5kcmVhZC5kYXRhID0gZGF0YTsKLSAgICBvbWFw NF91c2Jib290X2RhdGEuZHJlYWQubGVuZ3RoID0gbGVuOwotICAgIG9tYXA0X3VzYmJvb3RfZGF0 YS5kcmVhZC5zdGF0dXMgPSBTVEFUVVNfV0FJVElORzsKLSAgICBvbWFwNF91c2Jib290X2RhdGEu ZHJlYWQueGZlcl9tb2RlID0gMTsKLSAgICBvbWFwNF91c2Jib290X2RhdGEuZHJlYWQuY2FsbGJh Y2sgPSByb21fcmVhZF9jYWxsYmFjazsKLSAgICBuID0gb21hcDRfdXNiYm9vdF9kYXRhLmlvLT5y ZWFkKCZvbWFwNF91c2Jib290X2RhdGEuZHJlYWQpOwotICAgIGlmIChuKQotICAgICAgICBvbWFw NF91c2Jib290X2RhdGEuZHJlYWQuc3RhdHVzID0gbjsKLX0KLQotaW50IG9tYXA0X3VzYmJvb3Rf d2FpdF9yZWFkKHZvaWQpCi17Ci0gICAgaW50IHJldDsKLSAgICB3aGlsZSAob21hcDRfdXNiYm9v dF9kYXRhLmRyZWFkLnN0YXR1cyA9PSBTVEFUVVNfV0FJVElORykKLSAgICAgICAgLyogY3B1X3Jl bGF4KCk7ICovCi0gICAgICAgIGJhcnJpZXIoKTsKLSAgICByZXQgPSBvbWFwNF91c2Jib290X2Rh dGEuZHJlYWQuc3RhdHVzOwotICAgIG9tYXA0X3VzYmJvb3RfZGF0YS5kcmVhZC5zdGF0dXMgPSAt MTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1pbnQgb21hcDRfdXNiYm9vdF9pc19yZWFkX3dhaXRp bmcodm9pZCkKLXsKLSAgICBiYXJyaWVyKCk7Ci0gICAgcmV0dXJuIG9tYXA0X3VzYmJvb3RfZGF0 YS5kcmVhZC5zdGF0dXMgPT0gU1RBVFVTX1dBSVRJTkc7Ci19Ci0KLWludCBvbWFwNF91c2Jib290 X2lzX3JlYWRfb2sodm9pZCkKLXsKLSAgICBiYXJyaWVyKCk7Ci0gICAgcmV0dXJuIG9tYXA0X3Vz YmJvb3RfZGF0YS5kcmVhZC5zdGF0dXMgPT0gU1RBVFVTX09LQVk7Ci19Ci0KLXN0YXRpYyB2b2lk IHJvbV93cml0ZV9jYWxsYmFjayhzdHJ1Y3QgcGVyX2hhbmRsZSAqcmgpCi17Ci0gICAgb21hcDRf dXNiYm9vdF9kYXRhLmR3cml0ZS5zdGF0dXMgPSByaC0+c3RhdHVzOwotICAgIHJldHVybjsKLX0K LQotdm9pZCBvbWFwNF91c2Jib290X3F1ZXVlX3dyaXRlKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGxl bikKLXsKLSAgICBpbnQgbjsKLSAgICBvbWFwNF91c2Jib290X2RhdGEuZHdyaXRlLmRhdGEgPSBk YXRhOwotICAgIG9tYXA0X3VzYmJvb3RfZGF0YS5kd3JpdGUubGVuZ3RoID0gbGVuOwotICAgIG9t YXA0X3VzYmJvb3RfZGF0YS5kd3JpdGUuc3RhdHVzID0gU1RBVFVTX1dBSVRJTkc7Ci0gICAgb21h cDRfdXNiYm9vdF9kYXRhLmR3cml0ZS54ZmVyX21vZGUgPSAxOwotICAgIG9tYXA0X3VzYmJvb3Rf ZGF0YS5kd3JpdGUuY2FsbGJhY2sgPSByb21fd3JpdGVfY2FsbGJhY2s7Ci0gICAgbiA9IG9tYXA0 X3VzYmJvb3RfZGF0YS5pby0+d3JpdGUoJm9tYXA0X3VzYmJvb3RfZGF0YS5kd3JpdGUpOwotICAg IGlmIChuKQotICAgICAgICBvbWFwNF91c2Jib290X2RhdGEuZHdyaXRlLnN0YXR1cyA9IG47Ci19 Ci0KLWludCBvbWFwNF91c2Jib290X3dhaXRfd3JpdGUodm9pZCkKLXsKLSAgICBpbnQgcmV0Owot ICAgIHdoaWxlIChvbWFwNF91c2Jib290X2RhdGEuZHdyaXRlLnN0YXR1cyA9PSBTVEFUVVNfV0FJ VElORykKLSAgICAgICAgLyogY3B1X3JlbGF4KCk7ICovCi0gICAgICAgIGJhcnJpZXIoKTsKLSAg ICByZXQgPSBvbWFwNF91c2Jib290X2RhdGEuZHdyaXRlLnN0YXR1czsKLSAgICBvbWFwNF91c2Ji b290X2RhdGEuZHdyaXRlLnN0YXR1cyA9IC0xOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNkZWZp bmUgVVNCX01BWF9JTyA2NTUzNgotaW50IG9tYXA0X3VzYmJvb3RfcmVhZCh2b2lkICpkYXRhLCB1 bnNpZ25lZCBsZW4pCi17Ci0gICAgdW5zaWduZWQgeGZlcjsKLSAgICB1bnNpZ25lZCBjaGFyICp4 ID0gZGF0YTsKLSAgICBpbnQgbjsKLSAgICB3aGlsZSAobGVuID4gMCkgewotICAgICAgICB4ZmVy ID0gKGxlbiA+IFVTQl9NQVhfSU8pID8gVVNCX01BWF9JTyA6IGxlbjsKLSAgICAgICAgb21hcDRf dXNiYm9vdF9xdWV1ZV9yZWFkKHgsIHhmZXIpOwotICAgICAgICBuID0gb21hcDRfdXNiYm9vdF93 YWl0X3JlYWQoKTsKLSAgICAgICAgaWYgKG4pCi0gICAgICAgICAgICByZXR1cm4gbjsKLSAgICAg ICAgeCArPSB4ZmVyOwotICAgICAgICBsZW4gLT0geGZlcjsKLSAgICB9Ci0gICAgcmV0dXJuIDA7 Ci19Ci0KLWludCBvbWFwNF91c2Jib290X3dyaXRlKHZvaWQgKmRhdGEsIHVuc2lnbmVkIGxlbikK LXsKLSAgICBvbWFwNF91c2Jib290X3F1ZXVlX3dyaXRlKGRhdGEsIGxlbik7Ci0gICAgcmV0dXJu IG9tYXA0X3VzYmJvb3Rfd2FpdF93cml0ZSgpOwotfQotCi12b2lkIG9tYXA0X3VzYmJvb3RfY2xv c2Uodm9pZCkKLXsKLSAgICBvbWFwNF91c2Jib290X2RhdGEuaW8tPmNsb3NlKCZvbWFwNF91c2Ji b290X2RhdGEuZHJlYWQpOwotfQotCi12b2lkIG9tYXA0X3VzYmJvb3RfcHV0cyhjb25zdCBjaGFy ICpzKQotewotICAgIHUzMiBjOwotICAgIHdoaWxlICgoYyA9ICpzKyspKQotICAgICAgICBvbWFw NF91c2Jib290X3dyaXRlKCZjLCA0KTsKLX0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21h cC9vbWFwX3VzYmJvb3QuYwpiL2FyY2gvYXJtL21hY2gtb21hcC9vbWFwX3VzYmJvb3QuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmU4MDk0YTc3MAotLS0gL2Rldi9udWxs CisrKyBiL2FyY2gvYXJtL21hY2gtb21hcC9vbWFwX3VzYmJvb3QuYwpAQCAtMCwwICsxLDEwNCBA QAorI2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPGlvLmg+CisjaW5jbHVkZSA8bWFjaC9v bWFwMy1zaWxpY29uLmg+CisjaW5jbHVkZSA8bWFjaC9vbWFwNC1zaWxpY29uLmg+CisjaW5jbHVk ZSA8bWFjaC9nZW5lcmljLmg+CisKKyNkZWZpbmUgQlVMS19FTkRQT0lOVCAgICAgICAgMQorI2Rl ZmluZSBNVVNCX1RYQ1NSX1RYUEtUUkRZIDB4MDAwMQorI2RlZmluZSBNVVNCX1JYQ1NSX1JYUEtU UkRZIDB4MDAwMQorCisjZGVmaW5lIEw0X0NPUkVfQkFTRSAgIChjcHVfaXNfb21hcDMoKSA/IFwK KyAgICBPTUFQM19MNF9DT1JFX0JBU0UgOiBPTUFQNDRYWF9MNF9DT1JFX0JBU0UpCisjZGVmaW5l IE1VU0IwX0JBU0UgICAgIDB4QUIwMDAKKyNkZWZpbmUgTVVTQl9UWENTUiAgICAgMHgwMgorI2Rl ZmluZSBNVVNCX1JYQ1NSICAgICAweDA2CisjZGVmaW5lIE1VU0JfUlhDT1VOVCAgIDB4MDgKKyNk ZWZpbmUgVVNCX0VQKG4pICAgICAgKE1VU0IwX0JBU0UgKyAweDEwMCArIDB4MTAgKiAobikpCisj ZGVmaW5lIFVTQl9GSUZPKG4pICAgIChNVVNCMF9CQVNFICsgMHgwMjAgKyAweDA0ICogKG4pKQor I2RlZmluZSBVU0JfVFhDU1IobikgICAoVVNCX0VQKG4pICsgTVVTQl9UWENTUikKKyNkZWZpbmUg VVNCX1JYQ1NSKG4pICAgKFVTQl9FUChuKSArIE1VU0JfUlhDU1IpCisjZGVmaW5lIFVTQl9SWENP VU5UKG4pIChVU0JfRVAobikgKyBNVVNCX1JYQ09VTlQpCisKKyNkZWZpbmUgVVNCX01BWF9JTyAw eDEwMDAwCisKK3N0YXRpYyB1bnNpZ25lZCBhdmFpbGFibGVfYnl0ZXMgPSAwOworCitpbnQgb21h cF91c2Jib290X2F2YWlsYWJsZV9ieXRlcyh2b2lkKQoreworICAgIHZvaWQgX19pb21lbSAqY29u c3QgbDRfY29yZV9iYXNlID0gKHZvaWQgX19pb21lbSAqKUw0X0NPUkVfQkFTRTsKKyAgICB2b2lk IF9faW9tZW0gKmNvbnN0IHJ4Y3NyICAgPSBsNF9jb3JlX2Jhc2UrVVNCX1JYQ1NSICAoQlVMS19F TkRQT0lOVCk7CisgICAgdm9pZCBfX2lvbWVtICpjb25zdCByeGNvdW50ID0gbDRfY29yZV9iYXNl K1VTQl9SWENPVU5UKEJVTEtfRU5EUE9JTlQpOworCisgICAgaWYoYXZhaWxhYmxlX2J5dGVzKQor ICAgICAgICByZXR1cm4gYXZhaWxhYmxlX2J5dGVzOworCisgICAgaWYgKCEocmVhZHcocnhjc3Ip ICYgTVVTQl9SWENTUl9SWFBLVFJEWSkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJu IHJlYWR3KHJ4Y291bnQpOworfQorCitpbnQgb21hcF91c2Jib290X3JlYWQodm9pZCAqZGF0YSwg dW5zaWduZWQgbGVuKQoreworICAgIHZvaWQgX19pb21lbSAqY29uc3QgbDRfY29yZV9iYXNlID0g KHZvaWQgX19pb21lbSAqKUw0X0NPUkVfQkFTRTsKKyAgICB2b2lkIF9faW9tZW0gKmNvbnN0IHJ4 Y3NyICAgPSBsNF9jb3JlX2Jhc2UrVVNCX1JYQ1NSICAoQlVMS19FTkRQT0lOVCk7CisgICAgdm9p ZCBfX2lvbWVtICpjb25zdCByeGNvdW50ID0gbDRfY29yZV9iYXNlK1VTQl9SWENPVU5UKEJVTEtf RU5EUE9JTlQpOworICAgIHZvaWQgX19pb21lbSAqY29uc3QgZmlmbyAgICA9IGw0X2NvcmVfYmFz ZStVU0JfRklGTyAgIChCVUxLX0VORFBPSU5UKTsKKyAgICB1bnNpZ25lZCBjaGFyICpidWZmZXIg PSBkYXRhOworCisgICAgd2hpbGUobGVuKXsKKyAgICAgICAgdW5zaWduZWQgY291bnQ7CisgICAg ICAgIGlmKGF2YWlsYWJsZV9ieXRlcyl7CisgICAgICAgICAgICBjb3VudCA9IGF2YWlsYWJsZV9i eXRlczsKKyAgICAgICAgICAgIGF2YWlsYWJsZV9ieXRlcyA9IDA7CisgICAgICAgIH0KKyAgICAg ICAgZWxzZXsKKyAgICAgICAgICAgIHdoaWxlICghKHJlYWR3KHJ4Y3NyKSAmIE1VU0JfUlhDU1Jf UlhQS1RSRFkpKQorICAgICAgICAgICAgICAgIGJhcnJpZXIoKTsKKyAgICAgICAgICAgIGNvdW50 ID0gcmVhZHcocnhjb3VudCk7CisgICAgICAgIH0KKworICAgICAgICBpZihjb3VudD5sZW4pewor ICAgICAgICAgICAgYXZhaWxhYmxlX2J5dGVzID0gY291bnQgLSBsZW47CisgICAgICAgICAgICBj b3VudCA9IGxlbjsKKyAgICAgICAgfQorICAgICAgICBsZW4gLT0gY291bnQ7CisgICAgICAgIGZv cig7IGNvdW50OyAtLWNvdW50KQorICAgICAgICAgICAgKmJ1ZmZlcisrID0gcmVhZGIoZmlmbyk7 CisKKyAgICAgICAgaWYoIWF2YWlsYWJsZV9ieXRlcykKKyAgICAgICAgICAgIHdyaXRldyhyZWFk dyhyeGNzcikgJiB+TVVTQl9SWENTUl9SWFBLVFJEWSwgcnhjc3IpOworICAgIH0KKyAgICByZXR1 cm4gMDsKK30KKworaW50IG9tYXBfdXNiYm9vdF93cml0ZSh2b2lkICpkYXRhLCB1bnNpZ25lZCBs ZW4pCit7CisgICAgdm9pZCBfX2lvbWVtICpjb25zdCBsNF9jb3JlX2Jhc2UgPSAodm9pZCBfX2lv bWVtICopTDRfQ09SRV9CQVNFOworICAgIHZvaWQgX19pb21lbSAqY29uc3QgdHhjc3IgICA9IGw0 X2NvcmVfYmFzZStVU0JfVFhDU1IoQlVMS19FTkRQT0lOVCk7CisgICAgdm9pZCBfX2lvbWVtICpj b25zdCBmaWZvICAgID0gbDRfY29yZV9iYXNlK1VTQl9GSUZPIChCVUxLX0VORFBPSU5UKTsKKyAg ICB1bnNpZ25lZCBjaGFyICpidWZmZXIgPSBkYXRhOworCisgICAgd2hpbGUobGVuKXsKKyAgICAg ICAgdW5zaWduZWQgY291bnQgPSBsZW4+PVVTQl9NQVhfSU8gPyBVU0JfTUFYX0lPIDogbGVuOwor ICAgICAgICBsZW4gLT0gY291bnQ7CisKKyAgICAgICAgd2hpbGUgKHJlYWR3KHR4Y3NyKSAmIE1V U0JfVFhDU1JfVFhQS1RSRFkpCisgICAgICAgICAgICBiYXJyaWVyKCk7CisKKyAgICAgICAgZm9y ICg7IGNvdW50OyAtLWNvdW50KQorICAgICAgICAgICAgd3JpdGViKCpidWZmZXIrKywgZmlmbyk7 CisKKyAgICAgICAgd3JpdGV3KHJlYWR3KHR4Y3NyKSB8IE1VU0JfVFhDU1JfVFhQS1RSRFksIHR4 Y3NyKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBvbWFwX3VzYmJvb3RfcHV0 cyhjb25zdCBjaGFyICpzKQoreworICAgIHUzMiBjOworICAgIHdoaWxlICgoYyA9ICpzKyspKQor ICAgICAgICBvbWFwX3VzYmJvb3Rfd3JpdGUoJmMsIDQpOworfQpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vbWFjaC1vbWFwL3hsb2FkLmMgYi9hcmNoL2FybS9tYWNoLW9tYXAveGxvYWQuYwppbmRleCA4 MjIzODljMzguLjM0MjNhNTQ5NiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwL3hsb2Fk LmMKKysrIGIvYXJjaC9hcm0vbWFjaC1vbWFwL3hsb2FkLmMKQEAgLTE2NiwyMCArMTY2LDIwIEBA IHN0YXRpYyB2b2lkICpvbWFwX3hsb2FkX2Jvb3Rfc3BpKHN0cnVjdApvbWFwX2JhcmVib3hfcGFy dCAqcGFydCkKICAgICByZXR1cm4gcmVhZF9tdGRfYmFyZWJveCgieCIpOwogfQoKLXN0YXRpYyB2 b2lkICpvbWFwNF94bG9hZF9ib290X3VzYih2b2lkKXsKK3N0YXRpYyB2b2lkICpvbWFwX3hsb2Fk X2Jvb3RfdXNiKHZvaWQpewogICAgIGludCByZXQ7CiAgICAgdm9pZCAqYnVmOwogICAgIGludCBs ZW47CgotICAgIHJldCA9IG1vdW50KCJvbWFwNF91c2Jib290IiwgIm9tYXA0X3VzYmJvb3RmcyIs ICIvIiwgTlVMTCk7CisgICAgcmV0ID0gbW91bnQoIm9tYXBfdXNiYm9vdCIsICJvbWFwX3VzYmJv b3RmcyIsICIvIiwgTlVMTCk7CiAgICAgaWYgKHJldCkgewotICAgICAgICBwcmludGYoIlVuYWJs ZSB0byBtb3VudCBvbWFwNF91c2Jib290ZnMgKCVkKVxuIiwgcmV0KTsKKyAgICAgICAgcHJpbnRm KCJVbmFibGUgdG8gbW91bnQgb21hcF91c2Jib290ZnMgKCVkKVxuIiwgcmV0KTsKICAgICAgICAg cmV0dXJuIE5VTEw7CiAgICAgfQoKICAgICBidWYgPSByZWFkX2ZpbGUoIi9iYXJlYm94LmJpbiIs ICZsZW4pOwogICAgIGlmICghYnVmKQotICAgICAgICBwcmludGYoImNvdWxkIG5vdCByZWFkIGJh cmVib3guYmluIGZyb20gb21hcDRfdXNiYm9vdGZzXG4iKTsKKyAgICAgICAgcHJpbnRmKCJjb3Vs ZCBub3QgcmVhZCBiYXJlYm94LmJpbiBmcm9tIG9tYXBfdXNiYm9vdGZzXG4iKTsKCiAgICAgcmV0 dXJuIGJ1ZjsKIH0KQEAgLTMwNyw5ICszMDcsOSBAQCBzdGF0aWMgX19ub3JldHVybiBpbnQgb21h cF94bG9hZCh2b2lkKQogICAgICAgICBpZiAoSVNfRU5BQkxFRChDT05GSUdfT01BUDNfVVNCQk9P VCkgJiYgY3B1X2lzX29tYXAzKCkpIHsKICAgICAgICAgICAgIHByaW50ZigiYm9vdGluZyBmcm9t IFVTQlxuIik7CiAgICAgICAgICAgICBmdW5jID0gb21hcDNfeGxvYWRfYm9vdF91c2IoKTsKLSAg ICAgICAgfSBlbHNlIGlmIChJU19FTkFCTEVEKENPTkZJR19GU19PTUFQNF9VU0JCT09UKSkgewor ICAgICAgICB9IGVsc2UgaWYgKElTX0VOQUJMRUQoQ09ORklHX0ZTX09NQVBfVVNCQk9PVCkpIHsK ICAgICAgICAgICAgIHByaW50ZigiYm9vdGluZyBmcm9tIFVTQlxuIik7Ci0gICAgICAgICAgICBm dW5jID0gb21hcDRfeGxvYWRfYm9vdF91c2IoKTsKKyAgICAgICAgICAgIGZ1bmMgPSBvbWFwX3hs b2FkX2Jvb3RfdXNiKCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwcmludGYoImJv b3RpbmcgZnJvbSBVU0Igbm90IGVuYWJsZWRcbiIpOwogICAgICAgICAgICAgZnVuYyA9IE5VTEw7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9LY29uZmlnIGIvZHJpdmVycy9zZXJpYWwvS2Nv bmZpZwppbmRleCA0ZWFiNDM3ZWEuLmVmMDhmNjg1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zZXJp YWwvS2NvbmZpZworKysgYi9kcml2ZXJzL3NlcmlhbC9LY29uZmlnCkBAIC0xMjEsMTIgKzEyMSwx MiBAQCBjb25maWcgRFJJVkVSX1NFUklBTF9QWEEKICAgICBib29sICJQWEEgc2VyaWFsIGRyaXZl ciIKICAgICBkZXBlbmRzIG9uIEFSQ0hfUFhBCgotY29uZmlnIERSSVZFUl9TRVJJQUxfT01BUDRf VVNCQk9PVAotICAgIGJvb2wgInNlcmlhbCBkcml2ZXIgb3ZlciBvbWFwNCB1c2IiCitjb25maWcg RFJJVkVSX1NFUklBTF9PTUFQX1VTQkJPT1QKKyAgICBib29sICJzZXJpYWwgZHJpdmVyIG92ZXIg b21hcCB1c2IiCiAgICAgZGVmYXVsdCBuCi0gICAgZGVwZW5kcyBvbiBPTUFQNF9VU0JCT09UCisg ICAgZGVwZW5kcyBvbiBPTUFQX1VTQkJPT1QKICAgICBoZWxwCi0gICAgICBFbmFibGUgdGhpcyB0 byBnZXQgY29uc29sZSBzdXBwb3J0IG92ZXIgdGhlIHVzYiBidXMgdXNlZCB0byBib290IGFuIE9N QVA0CisgICAgICBFbmFibGUgdGhpcyB0byBnZXQgY29uc29sZSBzdXBwb3J0IG92ZXIgdGhlIHVz YiBidXMgdXNlZCB0byBib290IGFuIE9NQVAKCiBjb25maWcgRFJJVkVSX1NFUklBTF9DQURFTkNF CiAgICAgYm9vbCAiQ2FkZW5jZSBVQVJUIGRyaXZlciIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2Vy aWFsL01ha2VmaWxlIGIvZHJpdmVycy9zZXJpYWwvTWFrZWZpbGUKaW5kZXggN2QxYmFlMTk1Li4w MTQ2ZTI4NTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2VyaWFsL01ha2VmaWxlCisrKyBiL2RyaXZl cnMvc2VyaWFsL01ha2VmaWxlCkBAIC0xNSw3ICsxNSw3IEBAIG9iai0kKENPTkZJR19EUklWRVJf U0VSSUFMX1MzQykgICAgICAgICAgICArPSBzZXJpYWxfczNjLm8KIG9iai0kKENPTkZJR19EUklW RVJfU0VSSUFMX0FMVEVSQSkgICAgICAgICs9IHNlcmlhbF9hbHRlcmEubwogb2JqLSQoQ09ORklH X0RSSVZFUl9TRVJJQUxfQUxURVJBX0pUQUcpICAgICAgICArPSBzZXJpYWxfYWx0ZXJhX2p0YWcu bwogb2JqLSQoQ09ORklHX0RSSVZFUl9TRVJJQUxfUFhBKSAgICAgICAgICAgICs9IHNlcmlhbF9w eGEubwotb2JqLSQoQ09ORklHX0RSSVZFUl9TRVJJQUxfT01BUDRfVVNCQk9PVCkgICAgKz0gc2Vy aWFsX29tYXA0X3VzYmJvb3Qubworb2JqLSQoQ09ORklHX0RSSVZFUl9TRVJJQUxfT01BUF9VU0JC T09UKSAgICArPSBzZXJpYWxfb21hcF91c2Jib290Lm8KIG9iai0kKENPTkZJR19EUklWRVJfU0VS SUFMX0FVQVJUKSAgICAgICAgKz0gc2VyaWFsX2F1YXJ0Lm8KIG9iai0kKENPTkZJR19EUklWRVJf U0VSSUFMX0NBREVOQ0UpICAgICAgICArPSBzZXJpYWxfY2FkZW5jZS5vCiBvYmotJChDT05GSUdf RFJJVkVSX1NFUklBTF9FRklfU1RESU8pICAgICAgICArPSBlZmktc3RkaW8ubwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zZXJpYWwvc2VyaWFsX29tYXA0X3VzYmJvb3QuYwpiL2RyaXZlcnMvc2VyaWFs L3NlcmlhbF9vbWFwNF91c2Jib290LmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJl ZjAyNmMyNC4uMDAwMDAwMDAwCi0tLSBhL2RyaXZlcnMvc2VyaWFsL3NlcmlhbF9vbWFwNF91c2Ji b290LmMKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0vKgotICogVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMKLSAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAyIG9mCi0gKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICovCi0KLSNpbmNsdWRlIDxj b21tb24uaD4KLSNpbmNsdWRlIDxpbml0Lmg+Ci0jaW5jbHVkZSA8bWFsbG9jLmg+Ci0jaW5jbHVk ZSA8ZXJybm8uaD4KLSNpbmNsdWRlIDxtYWNoL29tYXA0X3JvbV91c2IuaD4KLQotc3RydWN0IHNl cmlhbF9vbWFwNF91c2Jib290X3ByaXYgewotICAgIHN0cnVjdCBjb25zb2xlX2RldmljZSBjZGV2 OwotICAgIHUzMiB2YWw7Ci19OwotCi1zdGF0aWMgdm9pZCBzZXJpYWxfb21hcDRfdXNiYm9vdF9w dXRjKHN0cnVjdCBjb25zb2xlX2RldmljZSAqY2RldiwgY2hhciBjKQotewotICAgIHVuc2lnbmVk IGIgPSBjOwotICAgIG9tYXA0X3VzYmJvb3Rfd3JpdGUoJmIsIDQpOwotfQotCi1zdGF0aWMgaW50 IHNlcmlhbF9vbWFwNF91c2Jib290X3RzdGMoc3RydWN0IGNvbnNvbGVfZGV2aWNlICpjZGV2KQot ewotICAgIHN0cnVjdCBzZXJpYWxfb21hcDRfdXNiYm9vdF9wcml2ICpwcml2ID0KLSAgICAgICAg Y29udGFpbmVyX29mKGNkZXYsIHN0cnVjdCBzZXJpYWxfb21hcDRfdXNiYm9vdF9wcml2LCBjZGV2 KTsKLSAgICBpZiAob21hcDRfdXNiYm9vdF9pc19yZWFkX3dhaXRpbmcoKSkKLSAgICAgICAgcmV0 dXJuIDA7Ci0gICAgZWxzZSBpZiAob21hcDRfdXNiYm9vdF9pc19yZWFkX29rKCkpCi0gICAgICAg IHJldHVybiAxOwotICAgIG9tYXA0X3VzYmJvb3RfcXVldWVfcmVhZCgmcHJpdi0+dmFsLCA0KTsK LSAgICB1ZGVsYXkoMTAwKTsKLSAgICBpZiAob21hcDRfdXNiYm9vdF9pc19yZWFkX3dhaXRpbmco KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgZWxzZSBpZiAob21hcDRfdXNiYm9vdF9pc19yZWFk X29rKCkpCi0gICAgICAgIHJldHVybiAxOwotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgaW50 IHNlcmlhbF9vbWFwNF91c2Jib290X2dldGMoc3RydWN0IGNvbnNvbGVfZGV2aWNlICpjZGV2KQot ewotICAgIHN0cnVjdCBzZXJpYWxfb21hcDRfdXNiYm9vdF9wcml2ICpwcml2ID0KLSAgICAgICAg Y29udGFpbmVyX29mKGNkZXYsIHN0cnVjdCBzZXJpYWxfb21hcDRfdXNiYm9vdF9wcml2LCBjZGV2 KTsKLSAgICBpZiAob21hcDRfdXNiYm9vdF9pc19yZWFkX3dhaXRpbmcoKSB8fCBvbWFwNF91c2Ji b290X2lzX3JlYWRfb2soKSkgewotICAgICAgICBvbWFwNF91c2Jib290X3dhaXRfcmVhZCgpOwot ICAgICAgICByZXR1cm4gcHJpdi0+dmFsOwotICAgIH0KLSAgICBvbWFwNF91c2Jib290X3JlYWQo JnByaXYtPnZhbCwgNCk7Ci0gICAgcmV0dXJuIHByaXYtPnZhbDsKLX0KLQotc3RhdGljIGludCBz ZXJpYWxfb21hcDRfdXNiYm9vdF9wcm9iZShzdHJ1Y3QgZGV2aWNlX2QgKmRldikKLXsKLSAgICBz dHJ1Y3Qgc2VyaWFsX29tYXA0X3VzYmJvb3RfcHJpdiAqcHJpdjsKLSAgICBwcml2ID0geHphbGxv YyhzaXplb2YoKnByaXYpKTsKLQotICAgIHByaXYtPmNkZXYuZGV2ID0gZGV2OwotICAgIHByaXYt PmNkZXYudHN0YyA9IHNlcmlhbF9vbWFwNF91c2Jib290X3RzdGM7Ci0gICAgcHJpdi0+Y2Rldi5w dXRjID0gc2VyaWFsX29tYXA0X3VzYmJvb3RfcHV0YzsKLSAgICBwcml2LT5jZGV2LmdldGMgPSBz ZXJpYWxfb21hcDRfdXNiYm9vdF9nZXRjOwotICAgIHByaXYtPmNkZXYuc2V0YnJnID0gTlVMTDsK LQotICAgIHJldHVybiBjb25zb2xlX3JlZ2lzdGVyKCZwcml2LT5jZGV2KTsKLX0KLQotc3RhdGlj IHN0cnVjdCBkcml2ZXJfZCBzZXJpYWxfb21hcDRfdXNiYm9vdF9kcml2ZXIgPSB7Ci0gICAgLm5h bWUgPSAic2VyaWFsX29tYXA0X3VzYmJvb3QiLAotICAgIC5wcm9iZSA9IHNlcmlhbF9vbWFwNF91 c2Jib290X3Byb2JlLAotfTsKLWNvbnNvbGVfcGxhdGZvcm1fZHJpdmVyKHNlcmlhbF9vbWFwNF91 c2Jib290X2RyaXZlcik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfb21hcF91 c2Jib290LmMKYi9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfb21hcF91c2Jib290LmMKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mNzMzYTQzYzcKLS0tIC9kZXYvbnVsbAorKysg Yi9kcml2ZXJzL3NlcmlhbC9zZXJpYWxfb21hcF91c2Jib290LmMKQEAgLTAsMCArMSw1NCBAQAor LyoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyAqLworCisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUg PG1hbGxvYy5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bWFjaC9vbWFwX3VzYmJv b3QuaD4KKworc3RhdGljIHZvaWQgc2VyaWFsX29tYXBfdXNiYm9vdF9wdXRjKHN0cnVjdCBjb25z b2xlX2RldmljZSAqY2RldiwgY2hhciBjKQoreworICAgIHVuc2lnbmVkIGIgPSBjOworICAgIG9t YXBfdXNiYm9vdF93cml0ZSgmYiwgNCk7Cit9CisKK3N0YXRpYyBpbnQgc2VyaWFsX29tYXBfdXNi Ym9vdF90c3RjKHN0cnVjdCBjb25zb2xlX2RldmljZSAqY2RldikKK3sKKyAgICByZXR1cm4gb21h cF91c2Jib290X2F2YWlsYWJsZV9ieXRlcygpID4gMDsKK30KKworc3RhdGljIGludCBzZXJpYWxf b21hcF91c2Jib290X2dldGMoc3RydWN0IGNvbnNvbGVfZGV2aWNlICpjZGV2KQoreworICAgIHVu c2lnbmVkIGM7CisgICAgb21hcF91c2Jib290X3JlYWQoJmMsIDQpOworICAgIHJldHVybiBjOwor fQorCitzdGF0aWMgaW50IHNlcmlhbF9vbWFwX3VzYmJvb3RfcHJvYmUoc3RydWN0IGRldmljZV9k ICpkZXYpCit7CisgICAgc3RydWN0IGNvbnNvbGVfZGV2aWNlICpjZGV2OworICAgIGNkZXYgPSB4 emFsbG9jKHNpemVvZigqY2RldikpOworCisgICAgY2Rldi0+ZGV2ID0gZGV2OworICAgIGNkZXYt PnRzdGMgPSBzZXJpYWxfb21hcF91c2Jib290X3RzdGM7CisgICAgY2Rldi0+cHV0YyA9IHNlcmlh bF9vbWFwX3VzYmJvb3RfcHV0YzsKKyAgICBjZGV2LT5nZXRjID0gc2VyaWFsX29tYXBfdXNiYm9v dF9nZXRjOworCisgICAgcmV0dXJuIGNvbnNvbGVfcmVnaXN0ZXIoY2Rldik7Cit9CisKK3N0YXRp YyBzdHJ1Y3QgZHJpdmVyX2Qgc2VyaWFsX29tYXBfdXNiYm9vdF9kcml2ZXIgPSB7CisgICAgLm5h bWUgPSAic2VyaWFsX29tYXBfdXNiYm9vdCIsCisgICAgLnByb2JlID0gc2VyaWFsX29tYXBfdXNi Ym9vdF9wcm9iZSwKK307Citjb25zb2xlX3BsYXRmb3JtX2RyaXZlcihzZXJpYWxfb21hcF91c2Ji b290X2RyaXZlcik7CmRpZmYgLS1naXQgYS9mcy9LY29uZmlnIGIvZnMvS2NvbmZpZwppbmRleCBj N2M0MmFjZDcuLjc5ZTg1MWVkOCAxMDA2NDQKLS0tIGEvZnMvS2NvbmZpZworKysgYi9mcy9LY29u ZmlnCkBAIC0zMSwxMCArMzEsMTAgQEAgY29uZmlnIEZTX1RGVFAKICAgICBwcm9tcHQgInRmdHAg c3VwcG9ydCIKICAgICBkZXBlbmRzIG9uIE5FVAoKLWNvbmZpZyBGU19PTUFQNF9VU0JCT09UCitj b25maWcgRlNfT01BUF9VU0JCT09UCiAgICAgYm9vbAogICAgIHByb21wdCAiRmlsZXN5c3RlbSBv dmVyIHVzYiBib290IgotICAgIGRlcGVuZHMgb24gT01BUDRfVVNCQk9PVAorICAgIGRlcGVuZHMg b24gT01BUF9VU0JCT09UCgogY29uZmlnIEZTX05GUwogICAgIGRlcGVuZHMgb24gTkVUCmRpZmYg LS1naXQgYS9mcy9NYWtlZmlsZSBiL2ZzL01ha2VmaWxlCmluZGV4IGYyYmI3MDI4NS4uZWZmYzY0 YzBlIDEwMDY0NAotLS0gYS9mcy9NYWtlZmlsZQorKysgYi9mcy9NYWtlZmlsZQpAQCAtNyw3ICs3 LDcgQEAgb2JqLSQoQ09ORklHX0ZTX0ZBVCkgICAgKz0gZmF0Lwogb2JqLXkgICAgKz0gZnMubwog b2JqLSQoQ09ORklHX0ZTX1VCSUZTKSAgICArPSB1Ymlmcy8KIG9iai0kKENPTkZJR19GU19URlRQ KSAgICArPSB0ZnRwLm8KLW9iai0kKENPTkZJR19GU19PTUFQNF9VU0JCT09UKSAgICArPSBvbWFw NF91c2Jib290ZnMubworb2JqLSQoQ09ORklHX0ZTX09NQVBfVVNCQk9PVCkgICAgKz0gb21hcF91 c2Jib290ZnMubwogb2JqLSQoQ09ORklHX0ZTX05GUykgICAgKz0gbmZzLm8gcGFyc2VvcHQubwog b2JqLSQoQ09ORklHX0ZTX0JQS0ZTKSArPSBicGtmcy5vCiBvYmotJChDT05GSUdfRlNfVUlNQUdF RlMpICAgICs9IHVpbWFnZWZzLm8KZGlmZiAtLWdpdCBhL2ZzL29tYXA0X3VzYmJvb3Rmcy5jIGIv ZnMvb21hcDRfdXNiYm9vdGZzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwODVi Y2E4NC4uMDAwMDAwMDAwCi0tLSBhL2ZzL29tYXA0X3VzYmJvb3Rmcy5jCisrKyAvZGV2L251bGwK QEAgLTEsMjE5ICswLDAgQEAKLS8qCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotICogcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSAqIHRo ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCi0gKi8KLQotI2luY2x1ZGUgPGNvbW1vbi5oPgotI2luY2x1ZGUg PG1hbGxvYy5oPgotI2luY2x1ZGUgPGZzLmg+Ci0jaW5jbHVkZSA8ZmNudGwuaD4KLSNpbmNsdWRl IDxpbml0Lmg+Ci0jaW5jbHVkZSA8bGludXgvc3RhdC5oPgotI2luY2x1ZGUgPGxpbnV4L2Vyci5o PgotI2luY2x1ZGUgPG1hY2gvb21hcDRfcm9tX3VzYi5oPgotCi0jZGVmaW5lIE9NQVA0X1VTQkJP T1RfRlNfTUFHSUMgICAgICAgIDB4NTU2MjQ2NEQKLSNkZWZpbmUgT01BUDRfVVNCQk9PVF9GU19D TURfT1BFTiAgICAweDQ2NTMwMDAwCi0jZGVmaW5lIE9NQVA0X1VTQkJPT1RfRlNfQ01EX0NMT1NF ICAgIDB4NDY1MzAwMDEKLSNkZWZpbmUgT01BUDRfVVNCQk9PVF9GU19DTURfUkVBRCAgICAweDQ2 NTMwMDAyCi0jZGVmaW5lIE9NQVA0X1VTQkJPT1RfRlNfQ01EX0VORCAgICAweDQ2NTNGRkZGCi0K LXN0cnVjdCBmaWxlX3ByaXYgewotICAgIHMzMiBpZDsKLSAgICB1MzIgc2l6ZTsKLX07Ci0vKgot c3RhdGljIGludCBvbWFwNF91c2Jib290ZnNfY3JlYXRlKAotICAgIHN0cnVjdCBkZXZpY2VfZCAq ZGV2LCBjb25zdCBjaGFyICpwYXRobmFtZSwgbW9kZV90IG1vZGUpCi17Ci0gICAgcmV0dXJuIC1F Tk9TWVM7Ci19Ci0KLXN0YXRpYyBpbnQgb21hcDRfdXNiYm9vdGZzX3VubGluayhzdHJ1Y3QgZGV2 aWNlX2QgKmRldiwgY29uc3QgY2hhciAqcGF0aG5hbWUpCi17Ci0gICAgcmV0dXJuIC1FTk9TWVM7 Ci19Ci0KLXN0YXRpYyBpbnQgb21hcDRfdXNiYm9vdGZzX21rZGlyKHN0cnVjdCBkZXZpY2VfZCAq ZGV2LCBjb25zdCBjaGFyICpwYXRobmFtZSkKLXsKLSAgICByZXR1cm4gLUVOT1NZUzsKLX0KLQot c3RhdGljIGludCBvbWFwNF91c2Jib290ZnNfcm1kaXIoc3RydWN0IGRldmljZV9kICpkZXYsIGNv bnN0IGNoYXIgKnBhdGhuYW1lKQotewotICAgIHJldHVybiAtRU5PU1lTOwotfQotCi1zdGF0aWMg aW50IG9tYXA0X3VzYmJvb3Rmc193cml0ZSgKLSAgICBzdHJ1Y3QgZGV2aWNlX2QgKl9kZXYsIEZJ TEUgKmYsIGNvbnN0IHZvaWQgKmluYnVmLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICByZXR1cm4gLUVO T1NZUzsKLX0KLQotc3RhdGljIGludCBvbWFwNF91c2Jib290ZnNfdHJ1bmNhdGUoc3RydWN0IGRl dmljZV9kICpkZXYsIEZJTEUgKmYsIHVsb25nIHNpemUpCi17Ci0gICAgcmV0dXJuIC1FTk9TWVM7 Ci19Ci0qLwotCi1zdGF0aWMgc3RydWN0IGZpbGVfcHJpdiAqb21hcDRfdXNiYm9vdGZzX2RvX29w ZW4oCi0gICAgc3RydWN0IGRldmljZV9kICpkZXYsIGludCBhY2Ntb2RlLCBjb25zdCBjaGFyICpm aWxlbmFtZSkKLXsKLSAgICBzdHJ1Y3QgZmlsZV9wcml2ICpwcml2OwotICAgIHUzMiBkYXRhOwot Ci0gICAgaWYgKGFjY21vZGUgJiBPX0FDQ01PREUpCi0gICAgICAgIHJldHVybiBFUlJfUFRSKC1F Tk9TWVMpOwotCi0gICAgcHJpdiA9IHh6YWxsb2Moc2l6ZW9mKCpwcml2KSk7Ci0gICAgaWYgKCFw cml2KQotICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKLQotICAgIGRhdGEgPSBPTUFQ NF9VU0JCT09UX0ZTX01BR0lDICAgIDsgb21hcDRfdXNiYm9vdF93cml0ZSgmZGF0YSwgNCk7Ci0g ICAgZGF0YSA9IE9NQVA0X1VTQkJPT1RfRlNfQ01EX09QRU47IG9tYXA0X3VzYmJvb3Rfd3JpdGUo JmRhdGEsIDQpOwotICAgIG9tYXA0X3VzYmJvb3RfcHV0cyhmaWxlbmFtZSk7Ci0gICAgZGF0YSA9 IE9NQVA0X1VTQkJPT1RfRlNfQ01EX0VORCAgICA7IG9tYXA0X3VzYmJvb3Rfd3JpdGUoJmRhdGEs IDQpOwotCi0gICAgaWYgKG9tYXA0X3VzYmJvb3RfcmVhZCgmcHJpdi0+aWQsIDQpIHx8Ci0gICAg ICAgIG9tYXA0X3VzYmJvb3RfcmVhZCgmcHJpdi0+c2l6ZSwgNCkKLSAgICApIHsKLSAgICAgICAg ZnJlZShwcml2KTsKLSAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVJTyk7Ci0gICAgfQotICAgIGlm IChwcml2LT5pZCA8IDApIHsKLSAgICAgICAgZnJlZShwcml2KTsKLSAgICAgICAgcmV0dXJuIEVS Ul9QVFIoLUVOT0VOVCk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHByaXY7Ci19Ci0KLXN0YXRpYyBp bnQgb21hcDRfdXNiYm9vdGZzX29wZW4oCi0gICAgc3RydWN0IGRldmljZV9kICpkZXYsIEZJTEUg KmZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQotewotICAgIHN0cnVjdCBmaWxlX3ByaXYgKnBy aXY7Ci0KLSAgICBwcml2ID0gb21hcDRfdXNiYm9vdGZzX2RvX29wZW4oZGV2LCBmaWxlLT5mbGFn cywgZmlsZW5hbWUpOwotICAgIGlmIChJU19FUlIocHJpdikpCi0gICAgICAgIHJldHVybiBQVFJf RVJSKHByaXYpOwotCi0gICAgZmlsZS0+cHJpdiA9IHByaXY7Ci0gICAgZmlsZS0+c2l6ZSA9IHBy aXYtPnNpemU7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludCBvbWFwNF91c2Jib290 ZnNfZG9fY2xvc2Uoc3RydWN0IGZpbGVfcHJpdiAqcHJpdikKLXsKLSAgICB1MzIgZGF0YTsKLSAg ICBkYXRhID0gT01BUDRfVVNCQk9PVF9GU19NQUdJQyAgICA7IG9tYXA0X3VzYmJvb3Rfd3JpdGUo JmRhdGEsIDQpOwotICAgIGRhdGEgPSBPTUFQNF9VU0JCT09UX0ZTX0NNRF9DTE9TRTsgb21hcDRf dXNiYm9vdF93cml0ZSgmZGF0YSwgNCk7Ci0gICAgb21hcDRfdXNiYm9vdF93cml0ZSgmcHJpdi0+ aWQsIDQpOwotICAgIGRhdGEgPSBPTUFQNF9VU0JCT09UX0ZTX0NNRF9FTkQgICAgOyBvbWFwNF91 c2Jib290X3dyaXRlKCZkYXRhLCA0KTsKLSAgICBmcmVlKHByaXYpOwotICAgIHJldHVybiAwOwot fQotCi1zdGF0aWMgaW50IG9tYXA0X3VzYmJvb3Rmc19jbG9zZShzdHJ1Y3QgZGV2aWNlX2QgKmRl diwgRklMRSAqZikKLXsKLSAgICBzdHJ1Y3QgZmlsZV9wcml2ICpwcml2ID0gZi0+cHJpdjsKLSAg ICByZXR1cm4gb21hcDRfdXNiYm9vdGZzX2RvX2Nsb3NlKHByaXYpOwotfQotCi1zdGF0aWMgaW50 IG9tYXA0X3VzYmJvb3Rmc19yZWFkKAotICAgIHN0cnVjdCBkZXZpY2VfZCAqZGV2LCBGSUxFICpm LCB2b2lkICpidWYsIHNpemVfdCBzaXplKQotewotICAgIHN0cnVjdCBmaWxlX3ByaXYgKnByaXYg PSBmLT5wcml2OwotICAgIHUzMiBkYXRhOwotCi0gICAgaWYgKHNpemUgPiBwcml2LT5zaXplIC0g Zi0+cG9zKQotICAgICAgICBzaXplID0gcHJpdi0+c2l6ZSAtIGYtPnBvczsKLSAgICBpZiAoIXNp emUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgZGF0YSA9IE9NQVA0X1VTQkJPT1RfRlNfTUFH SUMgICAgOyBvbWFwNF91c2Jib290X3dyaXRlKCZkYXRhLCA0KTsKLSAgICBkYXRhID0gT01BUDRf VVNCQk9PVF9GU19DTURfUkVBRDsgb21hcDRfdXNiYm9vdF93cml0ZSgmZGF0YSwgNCk7Ci0gICAg b21hcDRfdXNiYm9vdF93cml0ZSgmcHJpdi0+aWQsIDQpOwotICAgIG9tYXA0X3VzYmJvb3Rfd3Jp dGUoJmYtPnBvcywgNCk7Ci0gICAgb21hcDRfdXNiYm9vdF93cml0ZSgmc2l6ZSwgNCk7Ci0gICAg ZGF0YSA9IE9NQVA0X1VTQkJPT1RfRlNfQ01EX0VORCAgICA7IG9tYXA0X3VzYmJvb3Rfd3JpdGUo JmRhdGEsIDQpOwotCi0gICAgaWYgKG9tYXA0X3VzYmJvb3RfcmVhZChidWYsIHNpemUpKQotICAg ICAgICByZXR1cm4gLUVJTzsKLQotICAgIHJldHVybiBzaXplOwotfQotCi1zdGF0aWMgbG9mZl90 IG9tYXA0X3VzYmJvb3Rmc19sc2VlayhzdHJ1Y3QgZGV2aWNlX2QgKmRldiwgRklMRSAqZiwgbG9m Zl90IHBvcykKLXsKLSAgICBmLT5wb3MgPSBwb3M7Ci0gICAgcmV0dXJuIHBvczsKLX0KLQotc3Rh dGljIERJUiAqb21hcDRfdXNiYm9vdGZzX29wZW5kaXIoc3RydWN0IGRldmljZV9kICpkZXYsIGNv bnN0IGNoYXIgKnBhdGhuYW1lKQotewotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgaW50 IG9tYXA0X3VzYmJvb3Rmc19zdGF0KAotICAgIHN0cnVjdCBkZXZpY2VfZCAqZGV2LCBjb25zdCBj aGFyICpmaWxlbmFtZSwgc3RydWN0IHN0YXQgKnMpCi17Ci0gICAgc3RydWN0IGZpbGVfcHJpdiAq cHJpdjsKLQotICAgIHByaXYgPSBvbWFwNF91c2Jib290ZnNfZG9fb3BlbihkZXYsIE9fUkRPTkxZ LCBmaWxlbmFtZSk7Ci0gICAgaWYgKElTX0VSUihwcml2KSkKLSAgICAgICAgcmV0dXJuIFBUUl9F UlIocHJpdik7Ci0KLSAgICBzLT5zdF9tb2RlID0gU19JRlJFRyB8Ci0gICAgICAgICAgICAgICAg IFNfSVJVU1IgfCBTX0lSR1JQIHwgU19JUk9USCB8Ci0gICAgICAgICAgICAgICAgIFNfSVhVU1Ig fCBTX0lYR1JQIHwgU19JWE9USCA7Ci0gICAgcy0+c3Rfc2l6ZSA9IHByaXYtPnNpemU7Ci0KLSAg ICBvbWFwNF91c2Jib290ZnNfZG9fY2xvc2UocHJpdik7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQot c3RhdGljIGludCBvbWFwNF91c2Jib290ZnNfcHJvYmUoc3RydWN0IGRldmljZV9kICpkZXYpCi17 Ci0gICAgcmV0dXJuIDA7Ci19Ci1zdGF0aWMgdm9pZCBvbWFwNF91c2Jib290ZnNfcmVtb3ZlKHN0 cnVjdCBkZXZpY2VfZCAqZGV2KQotewotfQotCi1zdGF0aWMgc3RydWN0IGZzX2RyaXZlcl9kIG9t YXA0X3VzYmJvb3Rmc19kcml2ZXIgPSB7Ci0gICAgLm9wZW4gICAgPSBvbWFwNF91c2Jib290ZnNf b3BlbiwKLSAgICAuY2xvc2UgICA9IG9tYXA0X3VzYmJvb3Rmc19jbG9zZSwKLSAgICAucmVhZCAg ICA9IG9tYXA0X3VzYmJvb3Rmc19yZWFkLAotICAgIC5sc2VlayAgID0gb21hcDRfdXNiYm9vdGZz X2xzZWVrLAotICAgIC5vcGVuZGlyID0gb21hcDRfdXNiYm9vdGZzX29wZW5kaXIsCi0gICAgLnN0 YXQgICAgPSBvbWFwNF91c2Jib290ZnNfc3RhdCwKLS8qCi0gICAgLmNyZWF0ZSAgICA9IG9tYXA0 X3VzYmJvb3Rmc19jcmVhdGUsCi0gICAgLnVubGluayAgICA9IG9tYXA0X3VzYmJvb3Rmc191bmxp bmssCi0gICAgLm1rZGlyICAgID0gb21hcDRfdXNiYm9vdGZzX21rZGlyLAotICAgIC5ybWRpciAg ICA9IG9tYXA0X3VzYmJvb3Rmc19ybWRpciwKLSAgICAud3JpdGUgICAgPSBvbWFwNF91c2Jib290 ZnNfd3JpdGUsCi0gICAgLnRydW5jYXRlPSBvbWFwNF91c2Jib290ZnNfdHJ1bmNhdGUsCi0qLwot ICAgIC5mbGFncyAgICAgPSAwLAotICAgIC5kcnYgPSB7Ci0gICAgICAgIC5wcm9iZSAgICA9IG9t YXA0X3VzYmJvb3Rmc19wcm9iZSwKLSAgICAgICAgLnJlbW92ZSAgICA9IG9tYXA0X3VzYmJvb3Rm c19yZW1vdmUsCi0gICAgICAgIC5uYW1lICAgID0gIm9tYXA0X3VzYmJvb3RmcyIsCi0gICAgfQot fTsKLQotc3RhdGljIGludCBvbWFwNF91c2Jib290ZnNfaW5pdCh2b2lkKQotewotICAgIHJldHVy biByZWdpc3Rlcl9mc19kcml2ZXIoJm9tYXA0X3VzYmJvb3Rmc19kcml2ZXIpOwotfQotY29yZWRl dmljZV9pbml0Y2FsbChvbWFwNF91c2Jib290ZnNfaW5pdCk7CmRpZmYgLS1naXQgYS9mcy9vbWFw X3VzYmJvb3Rmcy5jIGIvZnMvb21hcF91c2Jib290ZnMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLmRmYmQwZGI5MgotLS0gL2Rldi9udWxsCisrKyBiL2ZzL29tYXBfdXNi Ym9vdGZzLmMKQEAgLTAsMCArMSwyMTkgQEAKKy8qCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KKworI2luY2x1ZGUgPGNvbW1vbi5oPgor I2luY2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPGZzLmg+CisjaW5jbHVkZSA8ZmNudGwuaD4K KyNpbmNsdWRlIDxpbml0Lmg+CisjaW5jbHVkZSA8bGludXgvc3RhdC5oPgorI2luY2x1ZGUgPGxp bnV4L2Vyci5oPgorI2luY2x1ZGUgPG1hY2gvb21hcF91c2Jib290Lmg+CisKKyNkZWZpbmUgT01B UF9VU0JCT09UX0ZTX01BR0lDICAgICAgIDB4NTU2MjQ2NEQKKyNkZWZpbmUgT01BUF9VU0JCT09U X0ZTX0NNRF9PUEVOICAweDQ2NTMwMDAwCisjZGVmaW5lIE9NQVBfVVNCQk9PVF9GU19DTURfQ0xP U0UgMHg0NjUzMDAwMQorI2RlZmluZSBPTUFQX1VTQkJPT1RfRlNfQ01EX1JFQUQgIDB4NDY1MzAw MDIKKyNkZWZpbmUgT01BUF9VU0JCT09UX0ZTX0NNRF9FTkQgICAweDQ2NTNGRkZGCisKK3N0cnVj dCBmaWxlX3ByaXYgeworICAgIHMzMiBpZDsKKyAgICB1MzIgc2l6ZTsKK307CisvKgorc3RhdGlj IGludCBvbWFwX3VzYmJvb3Rmc19jcmVhdGUoCisgICAgc3RydWN0IGRldmljZV9kICpkZXYsIGNv bnN0IGNoYXIgKnBhdGhuYW1lLCBtb2RlX3QgbW9kZSkKK3sKKyAgICByZXR1cm4gLUVOT1NZUzsK K30KKworc3RhdGljIGludCBvbWFwX3VzYmJvb3Rmc191bmxpbmsoc3RydWN0IGRldmljZV9kICpk ZXYsIGNvbnN0IGNoYXIgKnBhdGhuYW1lKQoreworICAgIHJldHVybiAtRU5PU1lTOworfQorCitz dGF0aWMgaW50IG9tYXBfdXNiYm9vdGZzX21rZGlyKHN0cnVjdCBkZXZpY2VfZCAqZGV2LCBjb25z dCBjaGFyICpwYXRobmFtZSkKK3sKKyAgICByZXR1cm4gLUVOT1NZUzsKK30KKworc3RhdGljIGlu dCBvbWFwX3VzYmJvb3Rmc19ybWRpcihzdHJ1Y3QgZGV2aWNlX2QgKmRldiwgY29uc3QgY2hhciAq cGF0aG5hbWUpCit7CisgICAgcmV0dXJuIC1FTk9TWVM7Cit9CisKK3N0YXRpYyBpbnQgb21hcF91 c2Jib290ZnNfd3JpdGUoCisgICAgc3RydWN0IGRldmljZV9kICpfZGV2LCBGSUxFICpmLCBjb25z dCB2b2lkICppbmJ1Ziwgc2l6ZV90IHNpemUpCit7CisgICAgcmV0dXJuIC1FTk9TWVM7Cit9CisK K3N0YXRpYyBpbnQgb21hcF91c2Jib290ZnNfdHJ1bmNhdGUoc3RydWN0IGRldmljZV9kICpkZXYs IEZJTEUgKmYsIHVsb25nIHNpemUpCit7CisgICAgcmV0dXJuIC1FTk9TWVM7Cit9CisqLworCitz dGF0aWMgc3RydWN0IGZpbGVfcHJpdiAqb21hcF91c2Jib290ZnNfZG9fb3BlbigKKyAgICBzdHJ1 Y3QgZGV2aWNlX2QgKmRldiwgaW50IGFjY21vZGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1lKQorewor ICAgIHN0cnVjdCBmaWxlX3ByaXYgKnByaXY7CisgICAgdTMyIGRhdGE7CisKKyAgICBpZiAoYWNj bW9kZSAmIE9fQUNDTU9ERSkKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT1NZUyk7CisKKyAg ICBwcml2ID0geHphbGxvYyhzaXplb2YoKnByaXYpKTsKKyAgICBpZiAoIXByaXYpCisgICAgICAg IHJldHVybiBFUlJfUFRSKC1FTk9NRU0pOworCisgICAgZGF0YSA9IE9NQVBfVVNCQk9PVF9GU19N QUdJQyAgIDsgb21hcF91c2Jib290X3dyaXRlKCZkYXRhLCA0KTsKKyAgICBkYXRhID0gT01BUF9V U0JCT09UX0ZTX0NNRF9PUEVOOyBvbWFwX3VzYmJvb3Rfd3JpdGUoJmRhdGEsIDQpOworICAgIG9t YXBfdXNiYm9vdF9wdXRzKGZpbGVuYW1lKTsKKyAgICBkYXRhID0gT01BUF9VU0JCT09UX0ZTX0NN RF9FTkQgOyBvbWFwX3VzYmJvb3Rfd3JpdGUoJmRhdGEsIDQpOworCisgICAgaWYgKG9tYXBfdXNi Ym9vdF9yZWFkKCZwcml2LT5pZCwgNCkgfHwKKyAgICAgICAgb21hcF91c2Jib290X3JlYWQoJnBy aXYtPnNpemUsIDQpCisgICAgKSB7CisgICAgICAgIGZyZWUocHJpdik7CisgICAgICAgIHJldHVy biBFUlJfUFRSKC1FSU8pOworICAgIH0KKyAgICBpZiAocHJpdi0+aWQgPCAwKSB7CisgICAgICAg IGZyZWUocHJpdik7CisgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9FTlQpOworICAgIH0KKwor ICAgIHJldHVybiBwcml2OworfQorCitzdGF0aWMgaW50IG9tYXBfdXNiYm9vdGZzX29wZW4oCisg ICAgc3RydWN0IGRldmljZV9kICpkZXYsIEZJTEUgKmZpbGUsIGNvbnN0IGNoYXIgKmZpbGVuYW1l KQoreworICAgIHN0cnVjdCBmaWxlX3ByaXYgKnByaXY7CisKKyAgICBwcml2ID0gb21hcF91c2Ji b290ZnNfZG9fb3BlbihkZXYsIGZpbGUtPmZsYWdzLCBmaWxlbmFtZSk7CisgICAgaWYgKElTX0VS Uihwcml2KSkKKyAgICAgICAgcmV0dXJuIFBUUl9FUlIocHJpdik7CisKKyAgICBmaWxlLT5wcml2 ID0gcHJpdjsKKyAgICBmaWxlLT5zaXplID0gcHJpdi0+c2l6ZTsKKworICAgIHJldHVybiAwOwor fQorCitzdGF0aWMgaW50IG9tYXBfdXNiYm9vdGZzX2RvX2Nsb3NlKHN0cnVjdCBmaWxlX3ByaXYg KnByaXYpCit7CisgICAgdTMyIGRhdGE7CisgICAgZGF0YSA9IE9NQVBfVVNCQk9PVF9GU19NQUdJ QyAgICA7IG9tYXBfdXNiYm9vdF93cml0ZSgmZGF0YSwgNCk7CisgICAgZGF0YSA9IE9NQVBfVVNC Qk9PVF9GU19DTURfQ0xPU0U7IG9tYXBfdXNiYm9vdF93cml0ZSgmZGF0YSwgNCk7CisgICAgb21h cF91c2Jib290X3dyaXRlKCZwcml2LT5pZCwgNCk7CisgICAgZGF0YSA9IE9NQVBfVVNCQk9PVF9G U19DTURfRU5EICA7IG9tYXBfdXNiYm9vdF93cml0ZSgmZGF0YSwgNCk7CisgICAgZnJlZShwcml2 KTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBvbWFwX3VzYmJvb3Rmc19jbG9zZShz dHJ1Y3QgZGV2aWNlX2QgKmRldiwgRklMRSAqZikKK3sKKyAgICBzdHJ1Y3QgZmlsZV9wcml2ICpw cml2ID0gZi0+cHJpdjsKKyAgICByZXR1cm4gb21hcF91c2Jib290ZnNfZG9fY2xvc2UocHJpdik7 Cit9CisKK3N0YXRpYyBpbnQgb21hcF91c2Jib290ZnNfcmVhZCgKKyAgICBzdHJ1Y3QgZGV2aWNl X2QgKmRldiwgRklMRSAqZiwgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBzdHJ1Y3Qg ZmlsZV9wcml2ICpwcml2ID0gZi0+cHJpdjsKKyAgICB1MzIgZGF0YTsKKworICAgIGlmIChzaXpl ID4gcHJpdi0+c2l6ZSAtIGYtPnBvcykKKyAgICAgICAgc2l6ZSA9IHByaXYtPnNpemUgLSBmLT5w b3M7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGRhdGEgPSBPTUFQ X1VTQkJPT1RfRlNfTUFHSUMgICA7IG9tYXBfdXNiYm9vdF93cml0ZSgmZGF0YSwgNCk7CisgICAg ZGF0YSA9IE9NQVBfVVNCQk9PVF9GU19DTURfUkVBRDsgb21hcF91c2Jib290X3dyaXRlKCZkYXRh LCA0KTsKKyAgICBvbWFwX3VzYmJvb3Rfd3JpdGUoJnByaXYtPmlkLCA0KTsKKyAgICBvbWFwX3Vz YmJvb3Rfd3JpdGUoJmYtPnBvcywgNCk7CisgICAgb21hcF91c2Jib290X3dyaXRlKCZzaXplLCA0 KTsKKyAgICBkYXRhID0gT01BUF9VU0JCT09UX0ZTX0NNRF9FTkQgOyBvbWFwX3VzYmJvb3Rfd3Jp dGUoJmRhdGEsIDQpOworCisgICAgaWYgKG9tYXBfdXNiYm9vdF9yZWFkKGJ1Ziwgc2l6ZSkpCisg ICAgICAgIHJldHVybiAtRUlPOworCisgICAgcmV0dXJuIHNpemU7Cit9CisKK3N0YXRpYyBsb2Zm X3Qgb21hcF91c2Jib290ZnNfbHNlZWsoc3RydWN0IGRldmljZV9kICpkZXYsIEZJTEUgKmYsIGxv ZmZfdCBwb3MpCit7CisgICAgZi0+cG9zID0gcG9zOworICAgIHJldHVybiBwb3M7Cit9CisKK3N0 YXRpYyBESVIgKm9tYXBfdXNiYm9vdGZzX29wZW5kaXIoc3RydWN0IGRldmljZV9kICpkZXYsIGNv bnN0IGNoYXIgKnBhdGhuYW1lKQoreworICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW50 IG9tYXBfdXNiYm9vdGZzX3N0YXQoCisgICAgc3RydWN0IGRldmljZV9kICpkZXYsIGNvbnN0IGNo YXIgKmZpbGVuYW1lLCBzdHJ1Y3Qgc3RhdCAqcykKK3sKKyAgICBzdHJ1Y3QgZmlsZV9wcml2ICpw cml2OworCisgICAgcHJpdiA9IG9tYXBfdXNiYm9vdGZzX2RvX29wZW4oZGV2LCBPX1JET05MWSwg ZmlsZW5hbWUpOworICAgIGlmIChJU19FUlIocHJpdikpCisgICAgICAgIHJldHVybiBQVFJfRVJS KHByaXYpOworCisgICAgcy0+c3RfbW9kZSA9IFNfSUZSRUcgfAorICAgICAgICAgICAgICAgICBT X0lSVVNSIHwgU19JUkdSUCB8IFNfSVJPVEggfAorICAgICAgICAgICAgICAgICBTX0lYVVNSIHwg U19JWEdSUCB8IFNfSVhPVEggOworICAgIHMtPnN0X3NpemUgPSBwcml2LT5zaXplOworCisgICAg b21hcF91c2Jib290ZnNfZG9fY2xvc2UocHJpdik7CisKKyAgICByZXR1cm4gMDsKK30KKworc3Rh dGljIGludCBvbWFwX3VzYmJvb3Rmc19wcm9iZShzdHJ1Y3QgZGV2aWNlX2QgKmRldikKK3sKKyAg ICByZXR1cm4gMDsKK30KK3N0YXRpYyB2b2lkIG9tYXBfdXNiYm9vdGZzX3JlbW92ZShzdHJ1Y3Qg ZGV2aWNlX2QgKmRldikKK3sKK30KKworc3RhdGljIHN0cnVjdCBmc19kcml2ZXJfZCBvbWFwX3Vz YmJvb3Rmc19kcml2ZXIgPSB7CisgICAgLm9wZW4gICAgPSBvbWFwX3VzYmJvb3Rmc19vcGVuLAor ICAgIC5jbG9zZSAgID0gb21hcF91c2Jib290ZnNfY2xvc2UsCisgICAgLnJlYWQgICAgPSBvbWFw X3VzYmJvb3Rmc19yZWFkLAorICAgIC5sc2VlayAgID0gb21hcF91c2Jib290ZnNfbHNlZWssCisg ICAgLm9wZW5kaXIgPSBvbWFwX3VzYmJvb3Rmc19vcGVuZGlyLAorICAgIC5zdGF0ICAgID0gb21h cF91c2Jib290ZnNfc3RhdCwKKy8qCisgICAgLmNyZWF0ZSAgPSBvbWFwX3VzYmJvb3Rmc19jcmVh dGUsCisgICAgLnVubGluayAgPSBvbWFwX3VzYmJvb3Rmc191bmxpbmssCisgICAgLm1rZGlyICAg PSBvbWFwX3VzYmJvb3Rmc19ta2RpciwKKyAgICAucm1kaXIgICA9IG9tYXBfdXNiYm9vdGZzX3Jt ZGlyLAorICAgIC53cml0ZSAgID0gb21hcF91c2Jib290ZnNfd3JpdGUsCisgICAgLnRydW5jYXRl PSBvbWFwX3VzYmJvb3Rmc190cnVuY2F0ZSwKKyovCisgICAgLmZsYWdzICA9IDAsCisgICAgLmRy diA9IHsKKyAgICAgICAgLnByb2JlICA9IG9tYXBfdXNiYm9vdGZzX3Byb2JlLAorICAgICAgICAu cmVtb3ZlID0gb21hcF91c2Jib290ZnNfcmVtb3ZlLAorICAgICAgICAubmFtZSAgID0gIm9tYXBf dXNiYm9vdGZzIiwKKyAgICB9Cit9OworCitzdGF0aWMgaW50IG9tYXBfdXNiYm9vdGZzX2luaXQo dm9pZCkKK3sKKyAgICByZXR1cm4gcmVnaXN0ZXJfZnNfZHJpdmVyKCZvbWFwX3VzYmJvb3Rmc19k cml2ZXIpOworfQorY29yZWRldmljZV9pbml0Y2FsbChvbWFwX3VzYmJvb3Rmc19pbml0KTsKZGlm ZiAtLWdpdCBhL3NjcmlwdHMvLmdpdGlnbm9yZSBiL3NjcmlwdHMvLmdpdGlnbm9yZQppbmRleCAy YTlhZTZiZGMuLjhkNWQ5MzE4YiAxMDA2NDQKLS0tIGEvc2NyaXB0cy8uZ2l0aWdub3JlCisrKyBi L3NjcmlwdHMvLmdpdGlnbm9yZQpAQCAtMjUsNCArMjUsNCBAQCBtay1hbTM1eHgtc3BpLWltYWdl CiBteHNpbWFnZQogbXhzYm9vdAogbXhzLXVzYi1sb2FkZXIKLW9tYXA0X3VzYmJvb3QKK29tYXBf dXNiYm9vdApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9NYWtlZmlsZSBiL3NjcmlwdHMvTWFrZWZpbGUK aW5kZXggN2YyNTI3ZDFjLi5lODEyYTYzNjkgMTAwNjQ0Ci0tLSBhL3NjcmlwdHMvTWFrZWZpbGUK KysrIGIvc2NyaXB0cy9NYWtlZmlsZQpAQCAtMjgsOSArMjgsOSBAQCBob3N0cHJvZ3MtJChDT05G SUdfQVJDSF9NWFNfVVNCTE9BREVSKSAgKz0gbXhzLXVzYi1sb2FkZXIKIEhPU1RDRkxBR1Nfb21h cDMtdXNiLWxvYWRlci5vID0gYHBrZy1jb25maWcgLS1jZmxhZ3MgbGlidXNiLTEuMGAKIEhPU1RM T0FETElCRVNfb21hcDMtdXNiLWxvYWRlciAgPSBgcGtnLWNvbmZpZyAtLWxpYnMgbGlidXNiLTEu MGAKIGhvc3Rwcm9ncy0kKENPTkZJR19PTUFQM19VU0JfTE9BREVSKSAgKz0gb21hcDMtdXNiLWxv YWRlcgotSE9TVENGTEFHU19vbWFwNF91c2Jib290Lm8gPSBgcGtnLWNvbmZpZyAtLWNmbGFncyBs aWJ1c2ItMS4wYAotSE9TVExPQURMSUJFU19vbWFwNF91c2Jib290ID0gLWxwdGhyZWFkIGBwa2ct Y29uZmlnIC0tbGlicyBsaWJ1c2ItMS4wYAotaG9zdHByb2dzLSQoQ09ORklHX09NQVA0X1VTQkJP T1QpICs9IG9tYXA0X3VzYmJvb3QKK0hPU1RDRkxBR1Nfb21hcF91c2Jib290Lm8gPSBgcGtnLWNv bmZpZyAtLWNmbGFncyBsaWJ1c2ItMS4wYAorSE9TVExPQURMSUJFU19vbWFwX3VzYmJvb3QgPSAt bHB0aHJlYWQgYHBrZy1jb25maWcgLS1saWJzIGxpYnVzYi0xLjBgCitob3N0cHJvZ3MtJChDT05G SUdfT01BUF9VU0JCT09UKSArPSBvbWFwX3VzYmJvb3QKCiBzdWJkaXIteSAgICAgICAgICAgICs9 IG1vZAogc3ViZGlyLSQoQ09ORklHX0FSQ0hfSU1YKSAgICArPSBpbXgKZGlmZiAtLWdpdCBhL3Nj cmlwdHMvb21hcDRfdXNiYm9vdC5jIGIvc2NyaXB0cy9vbWFwX3VzYmJvb3QuYwpzaW1pbGFyaXR5 IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gc2NyaXB0cy9vbWFwNF91c2Jib290LmMKcmVuYW1lIHRv IHNjcmlwdHMvb21hcF91c2Jib290LmMKLS0gCjIuMTEuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBtYWlsaW5nIGxpc3QKYmFyZWJveEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vYmFyZWJveAo=