From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtp16.mail.ru ([94.100.176.153]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1ScvZi-000238-1N for barebox@lists.infradead.org; Fri, 08 Jun 2012 09:33:49 +0000 From: Alexander Shiyan Date: Fri, 8 Jun 2012 13:33:28 +0400 Message-Id: <1339148008-16248-1-git-send-email-shc_work@mail.ru> MIME-Version: 1.0 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-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: [PATCH] =?UTF-8?q?ARM:=20initial=20ConnectCore=C2=AE=20i.MX51=20board=20support?= To: barebox@lists.infradead.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIENvbm5lY3RDb3Jlwq4gaS5NWDUxIGJvYXJkIGZy b20gRGlnaSBJbnRlcm5hdGlvbmFsLgpBIHNlcGFyYXRlIG9wdGlvbiBpbmNsdWRlcyBzdXBwb3J0 IGZvciBkZWJ1Z2dpbmcgYm9hcmQgZm9yIHRoaXMgbW9kdWxlLgpTb21lIGNvZGUgdGFrZW4gZnJv bSB0aGUgYm9vdGxvYWRlciB1LWJvb3QuCldvcmtpbmcgd2l0aCBFdGhlcm5ldCBub3QgdGVzdGVk IHlldC4KCmJhcmVib3ggMjAxMi4wNS4wLTAwMzE2LWc0MDI0ZDljLWRpcnR5ICMwIFdlZCBKdW4g NiAxMzowODoyNSBNU0sgMjAxMgoKQm9hcmQ6IENvbm5lY3RDb3JlIGkuTVg1MQpNb2R1bGUgVmFy aWFudDogaS5NWDUxNUA2MDBNSHosIFBIWSwgQWNjZWxlcm9tdGVyICgweDBiKQpNb2R1bGUgSFcg UmV2IDogMDIKTW9kdWxlIFNlcmlhbCA6IEIxMTExNTY3ODkKbWMxM3h4eC1zcGlAbWMxM3h4eC1z cGkwOiBGb3VuZCBNQzEzODkyIElEOiAweDAwNDVkMCBbUmV2OiAyLjBhXQpOQU5EIGRldmljZTog TWFudWZhY3R1cmVyIElEOiAweDJjLCBDaGlwIElEOiAweGRhIChNaWNyb24gTkFORCAyNTZNaUIg MywzViA4LWJpdCkKQmFkIGJsb2NrIHRhYmxlIGZvdW5kIGF0IHBhZ2UgMTMxMDA4LCB2ZXJzaW9u IDB4MDEKQmFkIGJsb2NrIHRhYmxlIGZvdW5kIGF0IHBhZ2UgMTMwOTQ0LCB2ZXJzaW9uIDB4MDEK bmFuZF9yZWFkX2JidDogQmFkIGJsb2NrIGF0IDB4MDBjZTAwMDAKbmFuZF9yZWFkX2JidDogQmFk IGJsb2NrIGF0IDB4MDViYzAwMDAKbmFuZF9yZWFkX2JidDogQmFkIGJsb2NrIGF0IDB4MGJjNDAw MDAKZWhjaUBlaGNpMDogVVNCIEVIQ0kgMS4wMApkZXRlY3RlZCBpLk1YNTEgcmV2IDMuMAppbXgt ZXNkaGNAbWNpMDogcmVnaXN0ZXJlZCBhcyBtY2kwCmlteC1lc2RoY0BtY2kxOiByZWdpc3RlcmVk IGFzIG1jaTEKTWFsbG9jIHNwYWNlOiAweDk1ZjAwMDAwIC0+IDB4OTdlZmZmZmYgKHNpemUgMzIg TUIpClN0YWNrIHNwYWNlIDogMHg5NWVmODAwMCAtPiAweDk1ZjAwMDAwIChzaXplIDMyIGtCKQpl bnZmczogd3JvbmcgbWFnaWMgb24gL2Rldi9lbnYwCm5vIHZhbGlkIGVudmlyb25tZW50IGZvdW5k IG9uIC9kZXYvZW52MC4gVXNpbmcgZGVmYXVsdCBlbnZpcm9ubWVudApydW5uaW5nIC9lbnYvYmlu L2luaXQuLi4KCkhpdCBhbnkga2V5IHRvIHN0b3AgYXV0b2Jvb3Q6ICAzCmJhcmVib3hAQ29ubmVj dENvcmUgaS5NWDUxOi8KClNpZ25lZC1vZmYtYnk6IEFsZXhhbmRlciBTaGl5YW4gPHNoY193b3Jr QG1haWwucnU+Ci0tLQogYXJjaC9hcm0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDMgKy0KIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL01ha2VmaWxlICAgICAgICAgICAg fCAgICAyICsKIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTEuYyAgICAgICAgICAgfCAg NDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEv Y2N4bXg1MS5kb3ggICAgICAgICB8ICAgIDcgKwogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4 bXg1MS5oICAgICAgICAgICB8ICAgMzUgKysKIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14 NTFqcy5jICAgICAgICAgfCAgIDkwICsrKysrCiBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jb25m aWcuaCAgICAgICAgICAgIHwgICAyNCArKwogYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2Nv bmZpZyAgICAgICAgICB8ICAgMzcgKysKIGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2ZsYXNoX2hl YWRlci5jICAgICAgfCAgIDg0ICsrKysrCiBhcmNoL2FybS9jb25maWdzL2NjbXg1MV9kZWZjb25m aWcgICAgICAgICAgIHwgICA1NiArKysrCiBhcmNoL2FybS9tYWNoLWlteC9LY29uZmlnICAgICAg ICAgICAgICAgICAgIHwgICAxOSArCiBhcmNoL2FybS9tYWNoLWlteC9pbmNsdWRlL21hY2gvaW9t dXgtbXg1MS5oIHwgICAgNCArLQogMTIgZmlsZXMgY2hhbmdlZCwgODM0IGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14 NTEvTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9j Y3hteDUxLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3ht eDUxLmRveAogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14 NTEuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFq cy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY29uZmlnLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9lbnYvY29uZmlnCiBj cmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZmxhc2hfaGVhZGVyLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBhcmNoL2FybS9jb25maWdzL2NjbXg1MV9kZWZjb25maWcKCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9NYWtlZmlsZSBiL2FyY2gvYXJtL01ha2VmaWxlCmluZGV4IGJk Njg0ZGMuLjM4YzE4MWYgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL01ha2VmaWxlCisrKyBiL2FyY2gv YXJtL01ha2VmaWxlCkBAIC0yMCw3ICsyMCw3IEBAIGNvbW1hID0gLAogIyBtYWNybywgYnV0IGlu c3RlYWQgZGVmaW5lcyBhIHdob2xlIHNlcmllcyBvZiBtYWNyb3Mgd2hpY2ggbWFrZXMKICMgdGVz dGluZyBmb3IgYSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgb3IgbGF0ZXIgcmF0aGVyIGltcG9zc2li bGUuCiBhcmNoLSQoQ09ORklHX0NQVV8zMnY3KQkJOj0tRF9fTElOVVhfQVJNX0FSQ0hfXz03ICQo Y2FsbCBjYy1vcHRpb24sLW1hcmNoPWFybXY3LWEsLW1hcmNoPWFybXY1dCAtV2EkKGNvbW1hKS1t YXJjaD1hcm12Ny1hKQotYXJjaC0kKENPTkZJR19DUFVfMzJ2NikgICAgICAgICAgICA6PS1EX19M SU5VWF9BUk1fQVJDSF9fPTYgJChjYWxsIGNjLW9wdGlvbiwtbWFyY2g9YXJtdjYsLW1hcmNoPWFy bXY1dCAtV2EkKGNvbW1hKS1tYXJjaD1hcm12NikKK2FyY2gtJChDT05GSUdfQ1BVXzMydjYpCQk6 PS1EX19MSU5VWF9BUk1fQVJDSF9fPTYgJChjYWxsIGNjLW9wdGlvbiwtbWFyY2g9YXJtdjYsLW1h cmNoPWFybXY1dCAtV2EkKGNvbW1hKS1tYXJjaD1hcm12NikKIGFyY2gtJChDT05GSUdfQ1BVXzMy djUpCQk6PS1EX19MSU5VWF9BUk1fQVJDSF9fPTUgJChjYWxsIGNjLW9wdGlvbiwtbWFyY2g9YXJt djV0ZSwtbWFyY2g9YXJtdjR0KQogYXJjaC0kKENPTkZJR19DUFVfMzJ2NFQpCTo9LURfX0xJTlVY X0FSTV9BUkNIX189NCAtbWFyY2g9YXJtdjR0CiAKQEAgLTc1LDYgKzc1LDcgQEAgYm9hcmQtJChD T05GSUdfTUFDSF9BVDkxU0FNOUcxMEVLKQkJOj0gYXQ5MXNhbTkyNjFlawogYm9hcmQtJChDT05G SUdfTUFDSF9BVDkxU0FNOUcyMEVLKQkJOj0gYXQ5MXNhbTkyNjBlawogYm9hcmQtJChDT05GSUdf TUFDSF9BVDkxU0FNOVg1RUspCQk6PSBhdDkxc2FtOXg1ZWsKIGJvYXJkLSQoQ09ORklHX01BQ0hf QVQ5MVNBTTlNMTBHNDVFSykJCTo9IGF0OTFzYW05bTEwZzQ1ZWsKK2JvYXJkLSQoQ09ORklHX01B Q0hfQ0NNWDUxKQkJCTo9IGNjeG14NTEKIGJvYXJkLSQoQ09ORklHX01BQ0hfRFNTMTEpCQkJOj0g ZHNzMTEKIGJvYXJkLSQoQ09ORklHX01BQ0hfRURCOTMwMSkJCQk6PSBlZGI5M3h4CiBib2FyZC0k KENPTkZJR19NQUNIX0VEQjkzMDIpCQkJOj0gZWRiOTN4eApkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v Ym9hcmRzL2NjeG14NTEvTWFrZWZpbGUgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9NYWtlZmls ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDk5MjdlCi0tLSAvZGV2L251 bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvTWFrZWZpbGUKQEAgLTAsMCArMSwyIEBA CitvYmoteQkJCQkJKz0gZmxhc2hfaGVhZGVyLm8gY2N4bXg1MS5vCitvYmotJChDT05GSUdfTUFD SF9DQ01YNTFfQkFTRUJPQVJEKQkrPSBjY3hteDUxanMubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v Ym9hcmRzL2NjeG14NTEvY2N4bXg1MS5jIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1 MS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNDFlNGUKLS0tIC9kZXYv bnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmMKQEAgLTAsMCArMSw0 NzYgQEAKKy8qCisgKiAoQykgQ29weXJpZ2h0IDIwMDktMjAxMCBEaWdpIEludGVybmF0aW9uYWws IEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNyBTYXNjaGEgSGF1ZXIsIFBlbmd1dHJvbml4Cisg KiAoYykgMjAxMSBFdWtyZWEgRWxlY3Ryb21hdGlxdWUsIEVyaWMgQsOpbmFyZCA8ZXJpY0BldWty ZWEuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzCisgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZgorICogdGhlIExpY2Vuc2Us IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9n cmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQorICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDU5 IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sCisgKiBNQSAwMjExMS0xMzA3IFVTQQor ICovCisKKyNpbmNsdWRlIDxjb21tb24uaD4KKyNpbmNsdWRlIDxuZXQuaD4KKyNpbmNsdWRlIDxp bml0Lmg+CisjaW5jbHVkZSA8ZW52aXJvbm1lbnQuaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1yZWdz Lmg+CisjaW5jbHVkZSA8ZmVjLmg+CisjaW5jbHVkZSA8bWFjaC9ncGlvLmg+CisjaW5jbHVkZSA8 YXNtL2FybWxpbnV4Lmg+CisjaW5jbHVkZSA8Z2VuZXJhdGVkL21hY2gtdHlwZXMuaD4KKyNpbmNs dWRlIDxwYXJ0aXRpb24uaD4KKyNpbmNsdWRlIDxmcy5oPgorI2luY2x1ZGUgPGZjbnRsLmg+Cisj aW5jbHVkZSA8c2l6ZXMuaD4KKyNpbmNsdWRlIDxuYW5kLmg+CisjaW5jbHVkZSA8bm90aWZpZXIu aD4KKyNpbmNsdWRlIDxzcGkvc3BpLmg+CisjaW5jbHVkZSA8bWZkL21jMTN4eHguaD4KKyNpbmNs dWRlIDxhc20vaW8uaD4KKyNpbmNsdWRlIDxtYWNoL2lteC1uYW5kLmg+CisjaW5jbHVkZSA8bWFj aC9zcGkuaD4KKyNpbmNsdWRlIDxtYWNoL2dlbmVyaWMuaD4KKyNpbmNsdWRlIDxtYWNoL2lvbXV4 LW14NTEuaD4KKyNpbmNsdWRlIDxtYWNoL2RldmljZXMtaW14NTEuaD4KKyNpbmNsdWRlIDxtYWNo L2lpbS5oPgorI2luY2x1ZGUgPG1hY2gvY2xvY2staW14NTFfNTMuaD4KKyNpbmNsdWRlIDxtYWNo L2lteDUuaD4KKworI2luY2x1ZGUgImNjeG14NTEuaCIKKworc3RhdGljIHN0cnVjdCBjY3hteDUx X2lkZW50IGNjeG14NTFfaWRzW10gPSB7CisvKiAweDAwICovCXsgIlVua25vd24iLAkJCQkJCTAs ICAgICAgIDAsIDAsIDAsIDAgfSwKKy8qIDB4MDEgKi8JeyAiTm90IHN1cHBvcnRlZCIsCQkJCQkw LCAgICAgICAwLCAwLCAwLCAwIH0sCisvKiAweDAyICovCXsgImkuTVg1MTVAODAwTUh6LCBXaXJl bGVzcywgUEhZLCBFeHQuIEV0aCwgQWNjZWwiLAlTWl81MTJNLCAwLCAxLCAxLCAxIH0sCisvKiAw eDAzICovCXsgImkuTVg1MTVAODAwTUh6LCBQSFksIEV4dC4gRXRoLCBBY2NlbCIsCQlTWl81MTJN LCAwLCAxLCAxLCAwIH0sCisvKiAweDA0ICovCXsgImkuTVg1MTVANjAwTUh6LCBXaXJlbGVzcywg UEhZLCBFeHQuIEV0aCwgQWNjZWwiLAlTWl81MTJNLCAxLCAxLCAxLCAxIH0sCisvKiAweDA1ICov CXsgImkuTVg1MTVANjAwTUh6LCBQSFksIEV4dC4gRXRoLCBBY2NlbCIsCQlTWl81MTJNLCAxLCAx LCAxLCAwIH0sCisvKiAweDA2ICovCXsgImkuTVg1MTVAODAwTUh6LCBXaXJlbGVzcywgUEhZLCBB Y2NlbCIsCQlTWl81MTJNLCAwLCAxLCAwLCAxIH0sCisvKiAweDA3ICovCXsgImkuTVg1MTVAODAw TUh6LCBQSFksIEFjY2VsZXJvbXRlciIsCQkJU1pfNTEyTSwgMCwgMSwgMCwgMCB9LAorLyogMHgw OCAqLwl7ICJpLk1YNTE1QDgwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfMjU2TSwg MCwgMSwgMCwgMSB9LAorLyogMHgwOSAqLwl7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBBY2NlbGVy b210ZXIiLAkJCVNaXzI1Nk0sIDAsIDEsIDAsIDAgfSwKKy8qIDB4MGEgKi8JeyAiaS5NWDUxNUA2 MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzI1Nk0sIDEsIDEsIDAsIDEgfSwKKy8q IDB4MGIgKi8JeyAiaS5NWDUxNUA2MDBNSHosIFBIWSwgQWNjZWxlcm9tdGVyIiwJCQlTWl8yNTZN LCAxLCAxLCAwLCAwIH0sCisvKiAweDBjICovCXsgImkuTVg1MTVAODAwTUh6LCBXaXJlbGVzcywg UEhZLCBBY2NlbCIsCQlTWl8xMjhNLCAwLCAxLCAwLCAxIH0sCisvKiAweDBkICovCXsgImkuTVg1 MTJAODAwTUh6IiwJCQkJCVNaXzEyOE0sIDAsIDAsIDAsIDAgfSwKKy8qIDB4MGUgKi8JeyAiaS5N WDUxNUA4MDBNSHosIFdpcmVsZXNzLCBQSFksIEFjY2VsIiwJCVNaXzUxMk0sIDAsIDEsIDAsIDEg fSwKKy8qIDB4MGYgKi8JeyAiaS5NWDUxNUA2MDBNSHosIFBIWSwgQWNjZWwiLAkJCQlTWl8xMjhN LCAxLCAxLCAwLCAwIH0sCisvKiAweDEwICovCXsgImkuTVg1MTVANjAwTUh6LCBXaXJlbGVzcywg UEhZLCBBY2NlbCIsCQlTWl8xMjhNLCAxLCAxLCAwLCAxIH0sCisvKiAweDExICovCXsgImkuTVg1 MTVAODAwTUh6LCBQSFksIEFjY2VsIiwJCQkJU1pfMTI4TSwgMCwgMSwgMCwgMCB9LAorLyogMHgx MiAqLwl7ICJpLk1YNTE1QDYwME1IeiwgV2lyZWxlc3MsIFBIWSwgQWNjZWwiLAkJU1pfNTEyTSwg MSwgMSwgMCwgMSB9LAorLyogMHgxMyAqLwl7ICJpLk1YNTE1QDgwME1IeiwgUEhZLCBBY2NlbCIs CQkJCVNaXzUxMk0sIDAsIDEsIDAsIDAgfSwKK307CisKK3N0cnVjdCBjY3hteDUxX2lkZW50ICpj Y3hteDUxX2lkOworCitzdHJ1Y3QgaW14X25hbmRfcGxhdGZvcm1fZGF0YSBuYW5kX2luZm8gPSB7 CisJLndpZHRoCQk9IDEsCisJLmh3X2VjYwkJPSAxLAorCS5mbGFzaF9iYnQJPSAxLAorfTsKKwor I2lmZGVmIENPTkZJR19EUklWRVJfTkVUX0ZFQ19JTVgKK3N0YXRpYyBzdHJ1Y3QgZmVjX3BsYXRm b3JtX2RhdGEgZmVjX2luZm8gPSB7CisJLnhjdl90eXBlCT0gTUlJMTAwLAorCS5waHlfYWRkcgk9 IDcsCit9OworI2VuZGlmCisKK3N0YXRpYyBpb211eF92M19jZmdfdCBjY3hteDUxX3BhZHNbXSA9 IHsKKwkvKiBVQVJUMSAqLworCU1YNTFfUEFEX1VBUlQxX1JYRF9fVUFSVDFfUlhELAorCU1YNTFf UEFEX1VBUlQxX1RYRF9fVUFSVDFfVFhELAorCS8qIFVBUlQyICovCisJTVg1MV9QQURfVUFSVDJf UlhEX19VQVJUMl9SWEQsCisJTVg1MV9QQURfVUFSVDJfVFhEX19VQVJUMl9UWEQsCisJLyogVUFS VDMgKi8KKwlNWDUxX1BBRF9VQVJUM19SWERfX1VBUlQzX1JYRCwKKwlNWDUxX1BBRF9VQVJUM19U WERfX1VBUlQzX1RYRCwKKwkvKiBJMkMyICovCisJTVg1MV9QQURfR1BJTzFfMl9fSTJDMl9TQ0ws CisJTVg1MV9QQURfR1BJTzFfM19fSTJDMl9TREEsCisJLyogZUNTUEkxICovCisJTVg1MV9QQURf Q1NQSTFfTU9TSV9fRUNTUEkxX01PU0ksCisJTVg1MV9QQURfQ1NQSTFfTUlTT19fRUNTUEkxX01J U08sCisJTVg1MV9QQURfQ1NQSTFfU0NMS19fRUNTUEkxX1NDTEssCisJTVg1MV9QQURfQ1NQSTFf UkRZX19FQ1NQSTFfUkRZLAorCU1YNTFfUEFEX0NTUEkxX1NTMF9fRUNTUEkxX1NTMCwKKwlNWDUx X1BBRF9DU1BJMV9TUzFfX0VDU1BJMV9TUzEsCisJLyogRkVDICovCisJTVg1MV9QQURfRElTUDJf REFUMTRfX0ZFQ19SREFUQTAsCisJTVg1MV9QQURfREkyX0RJU1BfQ0xLX19GRUNfUkRBVEExLAor CU1YNTFfUEFEX0RJX0dQNF9fRkVDX1JEQVRBMiwKKwlNWDUxX1BBRF9ESVNQMl9EQVQwX19GRUNf UkRBVEEzLAorCU1YNTFfUEFEX0RJU1AyX0RBVDE1X19GRUNfVERBVEEwLAorCU1YNTFfUEFEX0RJ U1AyX0RBVDZfX0ZFQ19UREFUQTEsCisJTVg1MV9QQURfRElTUDJfREFUN19fRkVDX1REQVRBMiwK KwlNWDUxX1BBRF9ESVNQMl9EQVQ4X19GRUNfVERBVEEzLAorCU1YNTFfUEFEX0RJU1AyX0RBVDlf X0ZFQ19UWF9FTiwKKwlNWDUxX1BBRF9ESVNQMl9EQVQxMF9fRkVDX0NPTCwKKwlNWDUxX1BBRF9E SVNQMl9EQVQxMV9fRkVDX1JYX0NMSywKKwlNWDUxX1BBRF9ESVNQMl9EQVQxMl9fRkVDX1JYX0RW LAorCU1YNTFfUEFEX0RJU1AyX0RBVDEzX19GRUNfVFhfQ0xLLAorCU1YNTFfUEFEX0RJMl9QSU4y X19GRUNfTURDLAorCU1YNTFfUEFEX0RJMl9QSU40X19GRUNfQ1JTLAorCU1YNTFfUEFEX0RJMl9Q SU4zX19GRUNfTURJTywKKwlNWDUxX1BBRF9ESV9HUDNfX0ZFQ19UWF9FUiwKKwlNWDUxX1BBRF9E SVNQMl9EQVQxX19GRUNfUlhfRVIsCisJLyogV0VJTSAqLworCU1YNTFfUEFEX0VJTV9EQTBfX0VJ TV9EQTAsCisJTVg1MV9QQURfRUlNX0RBMV9fRUlNX0RBMSwKKwlNWDUxX1BBRF9FSU1fREEyX19F SU1fREEyLAorCU1YNTFfUEFEX0VJTV9EQTNfX0VJTV9EQTMsCisJTVg1MV9QQURfRUlNX0RBNF9f RUlNX0RBNCwKKwlNWDUxX1BBRF9FSU1fREE1X19FSU1fREE1LAorCU1YNTFfUEFEX0VJTV9EQTZf X0VJTV9EQTYsCisJTVg1MV9QQURfRUlNX0RBN19fRUlNX0RBNywKKwlNWDUxX1BBRF9FSU1fRDE2 X19FSU1fRDE2LAorCU1YNTFfUEFEX0VJTV9EMTdfX0VJTV9EMTcsCisJTVg1MV9QQURfRUlNX0Qx OF9fRUlNX0QxOCwKKwlNWDUxX1BBRF9FSU1fRDE5X19FSU1fRDE5LAorCU1YNTFfUEFEX0VJTV9E MjBfX0VJTV9EMjAsCisJTVg1MV9QQURfRUlNX0QyMV9fRUlNX0QyMSwKKwlNWDUxX1BBRF9FSU1f RDIyX19FSU1fRDIyLAorCU1YNTFfUEFEX0VJTV9EMjNfX0VJTV9EMjMsCisJTVg1MV9QQURfRUlN X0QyNF9fRUlNX0QyNCwKKwlNWDUxX1BBRF9FSU1fRDI1X19FSU1fRDI1LAorCU1YNTFfUEFEX0VJ TV9EMjZfX0VJTV9EMjYsCisJTVg1MV9QQURfRUlNX0QyN19fRUlNX0QyNywKKwlNWDUxX1BBRF9F SU1fRDI4X19FSU1fRDI4LAorCU1YNTFfUEFEX0VJTV9EMjlfX0VJTV9EMjksCisJTVg1MV9QQURf RUlNX0QzMF9fRUlNX0QzMCwKKwlNWDUxX1BBRF9FSU1fRDMxX19FSU1fRDMxLAorCU1YNTFfUEFE X0VJTV9PRV9fRUlNX09FLAorCU1YNTFfUEFEX0VJTV9DUzVfX0VJTV9DUzUsCisJLyogTkFORCAq LworCU1YNTFfUEFEX05BTkRGX0QwX19OQU5ERl9EMCwKKwlNWDUxX1BBRF9OQU5ERl9EMV9fTkFO REZfRDEsCisJTVg1MV9QQURfTkFOREZfRDJfX05BTkRGX0QyLAorCU1YNTFfUEFEX05BTkRGX0Qz X19OQU5ERl9EMywKKwlNWDUxX1BBRF9OQU5ERl9ENF9fTkFOREZfRDQsCisJTVg1MV9QQURfTkFO REZfRDVfX05BTkRGX0Q1LAorCU1YNTFfUEFEX05BTkRGX0Q2X19OQU5ERl9ENiwKKwlNWDUxX1BB RF9OQU5ERl9EN19fTkFOREZfRDcsCisJTVg1MV9QQURfTkFOREZfQUxFX19OQU5ERl9BTEUsCisJ TVg1MV9QQURfTkFOREZfQ0xFX19OQU5ERl9DTEUsCisJTVg1MV9QQURfTkFOREZfUkVfQl9fTkFO REZfUkVfQiwKKwlNWDUxX1BBRF9OQU5ERl9XRV9CX19OQU5ERl9XRV9CLAorCU1YNTFfUEFEX05B TkRGX1dQX0JfX05BTkRGX1dQX0IsCisJTVg1MV9QQURfTkFOREZfQ1MwX19OQU5ERl9DUzAsCisJ TVg1MV9QQURfTkFOREZfUkIwX19OQU5ERl9SQjAsCisJLyogTEFOOTIyMSBJUlEgKEdQSU8xLjkp ICovCisJTVg1MV9QQURfR1BJTzFfOV9fR1BJTzFfOSwKKwkvKiBNQzEzODkyIElSUSAoR1BJTzEu NSkgKi8KKwlNWDUxX1BBRF9HUElPMV81X19HUElPMV81LAorCS8qIE1NQTc0NTVMUiBJUlExIChH UElPMS43KSAqLworCU1YNTFfUEFEX0dQSU8xXzdfX0dQSU8xXzcsCisJLyogTU1BNzQ1NUxSIElS UTIgKEdQSU8xLjYpICovCisJTVg1MV9QQURfR1BJTzFfNl9fR1BJTzFfNiwKK307CisKKyNkZWZp bmUgQ0NYTVg1MV9FQ1NQSTFfQ1MwCUlNWF9HUElPX05SKDQsIDI0KQorI2RlZmluZSBDQ1hNWDUx X0VDU1BJMV9DUzEJSU1YX0dQSU9fTlIoNCwgMjUpCisKK3N0YXRpYyBpbnQgZWNzcGlfMF9jc1td ID0geyBDQ1hNWDUxX0VDU1BJMV9DUzAsIENDWE1YNTFfRUNTUEkxX0NTMSwgfTsKKworc3RhdGlj IHN0cnVjdCBzcGlfaW14X21hc3RlciBlY3NwaV8wX2RhdGEgPSB7CisJLmNoaXBzZWxlY3QJPSBl Y3NwaV8wX2NzLAorCS5udW1fY2hpcHNlbGVjdAk9IEFSUkFZX1NJWkUoZWNzcGlfMF9jcyksCit9 OworCitzdGF0aWMgY29uc3Qgc3RydWN0IHNwaV9ib2FyZF9pbmZvIGNjeG14NTFfc3BpX2JvYXJk X2luZm9bXSA9IHsKKwl7CisJCS5uYW1lCQk9ICJtYzEzeHh4LXNwaSIsCisJCS5tYXhfc3BlZWRf aHoJPSA2MDAwMDAwLAorCQkuYnVzX251bQk9IDAsCisJCS5jaGlwX3NlbGVjdAk9IDAsCisJfSwK K307CisKK3N0YXRpYyBpbnQgY2N4bXg1MV9tZW1faW5pdCh2b2lkKQoreworCS8qIEFkZCBtaW5p bWFsIFNEUkFNIGZpcnN0ICovCisJYXJtX2FkZF9tZW1fZGV2aWNlKCJyYW0wIiwgTVg1MV9DU0Qw X0JBU0VfQUREUiwgU1pfMTI4TSk7CisKKwlyZXR1cm4gMDsKK30KK21lbV9pbml0Y2FsbChjY3ht eDUxX21lbV9pbml0KTsKKworc3RhdGljIHZvaWQgY2N4bXg1MV9vdGdob3N0X2luaXQodm9pZCkK K3sKKyNkZWZpbmUgTVg1MV9VU0JPVEhFUl9SRUdTX09GRlNFVAkJMHg4MDAKKyNkZWZpbmUgTVg1 MV9VU0JDVFJMX09GRlNFVAkJCTB4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCisjZGVmaW5lIE1YNTFfVVNCX1BIWV9DVFJfRlVOQ19PRkZTRVQJCTB4OCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTVg1 MV9VU0JfUEhZX0NUUl9GVU5DMl9PRkZTRVQJCTB4YworI2RlZmluZSBNWDUxX1VTQl9VVE1JX1BI WUNUUkwxX1BMTERJVl9NQVNLCTB4MworI2RlZmluZSBNWDUxX1VTQl9QTExfRElWXzE5XzJfTUha CQkweDAwCisjZGVmaW5lIE1YNTFfVVNCX1BMTF9ESVZfMjRfTUhaCQkJMHgwMQorI2RlZmluZSBN WDUxX1VTQl9QTExfRElWXzI2X01IWgkJCTB4MDIKKyNkZWZpbmUgTVg1MV9VU0JfUExMX0RJVl8y N19NSFoJCQkweDAzCisjZGVmaW5lIE1YNTFfT1RHX1BIWUNUUkxfT0NfRElTX0JJVAkJKDEgPDwg OCkKKyNkZWZpbmUgTVg1MV9PVEdfVUNUUkxfT1dJRV9CSVQJCQkoMSA8PCAyNykKKyNkZWZpbmUg TVg1MV9PVEdfVUNUUkxfT1BNX0JJVAkJCSgxIDw8IDI0KQorCisjZGVmaW5lIFVTQk9USEVSX0JB U0UJCQkJKE1YNTFfT1RHX0JBU0VfQUREUiArIE1YNTFfVVNCT1RIRVJfUkVHU19PRkZTRVQpCisK Kwl1MzIgcmVnOworCisJLyogU2V0IHN5c2Nsb2NrIHRvIDI0IE1IeiAqLworCXJlZyA9IHJlYWRs KFVTQk9USEVSX0JBU0UgKyBNWDUxX1VTQl9QSFlfQ1RSX0ZVTkMyX09GRlNFVCk7CisJcmVnICY9 IH5NWDUxX1VTQl9VVE1JX1BIWUNUUkwxX1BMTERJVl9NQVNLOworCXJlZyB8PSBNWDUxX1VTQl9Q TExfRElWXzI0X01IWjsKKwl3cml0ZWwocmVnLCBVU0JPVEhFUl9CQVNFICsgTVg1MV9VU0JfUEhZ X0NUUl9GVU5DMl9PRkZTRVQpOworCisJLyogT0MgaXMgbm90IHVzZWQgKi8KKwlyZWcgPSByZWFk bChVU0JPVEhFUl9CQVNFICsgTVg1MV9VU0JfUEhZX0NUUl9GVU5DX09GRlNFVCk7CisJcmVnIHw9 IE1YNTFfT1RHX1BIWUNUUkxfT0NfRElTX0JJVDsKKwl3cml0ZWwocmVnLCBVU0JPVEhFUl9CQVNF ICsgTVg1MV9VU0JfUEhZX0NUUl9GVU5DX09GRlNFVCk7CisKKwkvKiBXYWtldXAgYW5kIHBvd2Vy IHBpbnMgZW5hYmxlICovCisJcmVnID0gcmVhZGwoVVNCT1RIRVJfQkFTRSArIE1YNTFfVVNCQ1RS TF9PRkZTRVQpOworCXJlZyB8PSBNWDUxX09UR19VQ1RSTF9PV0lFX0JJVCB8IE1YNTFfT1RHX1VD VFJMX09QTV9CSVQ7CisJd3JpdGVsKHJlZywgVVNCT1RIRVJfQkFTRSArIE1YNTFfVVNCQ1RSTF9P RkZTRVQpOworCisJLyogU2V0dXAgUE9SVFNDICovCisJcmVnID0gcmVhZGwoTVg1MV9PVEdfQkFT RV9BRERSICsgMHgxODQpOworCXJlZyAmPSB+KDMgPDwgMzApOworCXJlZyB8PSAxIDw8IDI4Owor CXdyaXRlbChyZWcsIE1YNTFfT1RHX0JBU0VfQUREUiArIDB4MTg0KTsKKworCW1kZWxheSgxMCk7 CisKKwlhZGRfZ2VuZXJpY191c2JfZWhjaV9kZXZpY2UoMCwgTVg1MV9PVEdfQkFTRV9BRERSLCBO VUxMKTsKK30KKworc3RhdGljIGludCBjY3hteDUxX3Bvd2VyX2luaXQodm9pZCkKK3sKKwlzdHJ1 Y3QgbWMxM3h4eCAqbWMxM3h4eF9kZXY7CisJdTMyIHZhbDsKKworCW1jMTN4eHhfZGV2ID0gbWMx M3h4eF9nZXQoKTsKKwlpZiAoIW1jMTN4eHhfZGV2KQorCQlyZXR1cm4gLTE7CisKKwltYzEzeHh4 X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCAzNCwgJnZhbCk7CisJLyogUmVzZXQgZGV2aWNlcyBieSBj bGVhcmluZyBHUDAxLUdQTzQgKi8KKwl2YWwgJj0gfigoMSA8PCAyMSkgfCAoMyA8PCAxMikgfCAo MyA8PCAxMCkgfCAoMyA8PCA4KSB8ICgzIDw8IDYpKTsKKwkvKiBTd2l0Y2hpbmcgb2ZmIHRoZSBQ V0dUMVNQSUVOICovCisJdmFsIHw9ICgxIDw8IDE1KTsKKwkvKiBTd2l0Y2hpbmcgb24gdGhlIFBX R1QyU1BJRU4gKi8KKwl2YWwgJj0gfigxIDw8IDE2KTsKKwkvKiBFbmFibGUgc2hvcnQgY2lyY3Vp dCBwcm90ZWN0aW9uICovCisJdmFsIHw9ICgxIDw8IDApOworCW1jMTN4eHhfcmVnX3dyaXRlKG1j MTN4eHhfZGV2LCAzNCwgdmFsKTsKKworCS8qIEFsbG93IGNoYXJnZXIgdG8gY2hhcmdlICg0LjJW IGFuZCA1NjBtQSkgKi8KKwl2YWwgPSAweDIzODAzMzsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEz eHh4X2RldiwgNDgsIHZhbCk7CisKKwkvKiBTZXQgY29yZSB2b2x0YWdlIChTVzEpIHRvIDEuMVYg Ki8KKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCAyNCwgJnZhbCk7CisJdmFsICY9IH4w eDAwMDAxZjsKKwl2YWwgfD0gIDB4MDAwMDE0OworCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhf ZGV2LCAyNCwgdmFsKTsKKworCWlmIChpbXhfc2lsaWNvbl9yZXZpc2lvbigpIDwgSU1YX0NISVBf UkVWXzNfMCkgeworCQkvKiBTZXR1cCBWQ0MgKFNXMikgdG8gMS4yNSAqLworCQltYzEzeHh4X3Jl Z19yZWFkKG1jMTN4eHhfZGV2LCAyNSwgJnZhbCk7CisJCXZhbCAmPSB+MHgwMDAwMWY7CisJCXZh bCB8PSAgMHgwMDAwMWE7CisJCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCAyNSwgdmFs KTsKKworCQkvKiBTZXR1cCAxVjJfRElHMSAoU1czKSB0byAxLjI1ICovCisJCW1jMTN4eHhfcmVn X3JlYWQobWMxM3h4eF9kZXYsIDI2LCAmdmFsKTsKKwkJdmFsICY9IH4weDAwMDAxZjsKKwkJdmFs IHw9ICAweDAwMDAxYTsKKwkJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIDI2LCB2YWwp OworCX0gZWxzZSB7CisJCS8qIFNldHVwIFZDQyAoU1cyKSB0byAxLjIyNSAqLworCQltYzEzeHh4 X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCAyNSwgJnZhbCk7CisJCXZhbCAmPSB+MHgwMDAwMWY7CisJ CXZhbCB8PSAgMHgwMDAwMTk7CisJCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCAyNSwg dmFsKTsKKworCQkvKiBTZXR1cCAxVjJfRElHMSAoU1czKSB0byAxLjIgKi8KKwkJbWMxM3h4eF9y ZWdfcmVhZChtYzEzeHh4X2RldiwgMjYsICZ2YWwpOworCQl2YWwgJj0gfjB4MDAwMDFmOworCQl2 YWwgfD0gIDB4MDAwMDE4OworCQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgMjYsIHZh bCk7CisJfQorCisJaWYgKG1jMTN4eHhfZGV2LT5yZXZpc2lvbiA8PSBNQzEzODkyX1JFVklTSU9O XzJfMCkgeworCQkvKiBTZXQgc3dpdGNoZXJzIGluIFBXTSBtb2RlIGZvciBBdGxhcyAyLjAgYW5k IGxvd2VyICovCisJCS8qIFNldHVwIHRoZSBzd2l0Y2hlciBtb2RlIGZvciBTVzEgJiBTVzIqLwor CQltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCAyOCwgJnZhbCk7CisJCXZhbCAmPSB+MHgw MDNjMGY7CisJCXZhbCB8PSAgMHgwMDE0MDU7CisJCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhf ZGV2LCAyOCwgdmFsKTsKKworCQkvKiBTZXR1cCB0aGUgc3dpdGNoZXIgbW9kZSBmb3IgU1czICYg U1c0ICovCisJCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIDI5LCAmdmFsKTsKKwkJdmFs ICY9IH4weDAwMGYwZjsKKwkJdmFsIHw9ICAweDAwMDUwNTsKKwkJbWMxM3h4eF9yZWdfd3JpdGUo bWMxM3h4eF9kZXYsIDI5LCB2YWwpOworCX0gZWxzZSB7CisJCS8qIFNldCBzd2l0Y2hlcnMgaW4g QXV0byBpbiBOT1JNQUwgbW9kZSAmIFNUQU5EQlkgbW9kZSBmb3IgQXRsYXMgMi4wYSAqLworCQkv KiBTZXR1cCB0aGUgc3dpdGNoZXIgbW9kZSBmb3IgU1cxICYgU1cyKi8KKwkJbWMxM3h4eF9yZWdf cmVhZChtYzEzeHh4X2RldiwgMjgsICZ2YWwpOworCQl2YWwgJj0gfjB4MDAzYzBmOworCQl2YWwg fD0gIDB4MDAyMDA4OworCQltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgMjgsIHZhbCk7 CisKKwkJLyogU2V0dXAgdGhlIHN3aXRjaGVyIG1vZGUgZm9yIFNXMyAmIFNXNCAqLworCQltYzEz eHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCAyOSwgJnZhbCk7CisJCXZhbCAmPSB+MHgwMDBmMGY7 CisJCXZhbCB8PSAgMHgwMDA4MDg7CisJCW1jMTN4eHhfcmVnX3dyaXRlKG1jMTN4eHhfZGV2LCAy OSwgdmFsKTsKKwl9CisKKwkvKiBTZXQgVlZJREVPIHRvIDIuNzc1ViwgVkFVRElPIHRvIDNWLCBW U0QgdG8gMy4xNVYgKi8KKwltYzEzeHh4X3JlZ19yZWFkKG1jMTN4eHhfZGV2LCAzMSwgJnZhbCk7 CisJdmFsICY9IH4weDAwMDFmYzsKKwl2YWwgfD0gIDB4MDAwMWY0OworCW1jMTN4eHhfcmVnX3dy aXRlKG1jMTN4eHhfZGV2LCAzMSwgdmFsKTsKKworCS8qIENvbmZpZ3VyZSBWR0VOMyBhbmQgVkNB TSByZWd1bGF0b3JzIHRvIHVzZSBleHRlcm5hbCBQTlAgKi8KKwl2YWwgPSAweDAwMDIwODsKKwlt YzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgMzMsIHZhbCk7CisJdWRlbGF5KDIwMCk7CisK KwkvKiBTZXQgVkdFTjMgdG8gMS44ViAqLworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYs IDMwLCAmdmFsKTsKKwl2YWwgJj0gfigxIDw8IDE0KTsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEz eHh4X2RldiwgMzAsIHZhbCk7CisKKwkvKiBFbmFibGUgVkdFTjMsIFZDQU0sIFZBVURJTywgVlZJ REVPLCBWU0QgcmVndWxhdG9ycyAqLworCXZhbCA9IDB4MDQ5MjQ5OworCW1jMTN4eHhfcmVnX3dy aXRlKG1jMTN4eHhfZGV2LCAzMywgdmFsKTsKKworCS8qIEVuYWJsZSBVU0IxIGNoYXJnZXIgKi8K Kwl2YWwgPSAweDAwMDQwOTsKKwltYzEzeHh4X3JlZ193cml0ZShtYzEzeHh4X2RldiwgNTAsIHZh bCk7CisKKwkvKiBTZXQgVkNPSU4gdG8gMy4wViBhbmQgRW5hYmxlIEl0ICovCisJbWMxM3h4eF9y ZWdfcmVhZChtYzEzeHh4X2RldiwgMTMsICZ2YWwpOworCXZhbCAmPSB+KDcgPDwgMjApOworCXZh bCB8PSAoNCA8PCAyMCkgfCAoMSA8PCAyMyk7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9k ZXYsIDEzLCB2YWwpOworCS8qIEtlZXBzIFZTUlRDIGFuZCBDTEszMktNQ1UgKi8KKwl2YWwgfD0g KDEgPDwgNCk7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9kZXYsIDEzLCB2YWwpOworCisJ LyogRGUtYXNzZXJ0IHJlc2V0IG9mIGV4dGVybmFsIGRldmljZXMgb24gR1AwMSwgR1BPMiwgR1BP MyBhbmQgR1BPNCAqLworCW1jMTN4eHhfcmVnX3JlYWQobWMxM3h4eF9kZXYsIDM0LCAmdmFsKTsK KwkvKiBHUE8xIC0gRXh0ZXJuYWwgKi8KKwkvKiBHUDAyIC0gTEFOOTIyMSAgKi8KKwkvKiBHUDAz IC0gRkVDICAgICAgKi8KKwkvKiBHUDA0IC0gV2lyZWxlc3MgKi8KKwlpZiAoSVNfRU5BQkxFRChD T05GSUdfRFJJVkVSX05FVF9TTUM5MTFYKSAmJiBjY3hteDUxX2lkLT5ldGgwKQorCQl2YWwgfD0g KDEgPDwgOCk7CisJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSSVZFUl9ORVRfRkVDX0lNWCkgJiYg Y2N4bXg1MV9pZC0+ZXRoMSkKKwkJdmFsIHw9ICgxIDw8IDEwKTsKKwlpZiAoY2N4bXg1MV9pZC0+ d2xlc3MpCisJCXZhbCB8PSAoMSA8PCAxMik7CisJbWMxM3h4eF9yZWdfd3JpdGUobWMxM3h4eF9k ZXYsIDM0LCB2YWwpOworCisJdWRlbGF5KDEwMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBjY3hteDUxX2RldmljZXNfaW5pdCh2b2lkKQoreworCXU4IGh3aWRbNl07CisJaW50IHJl dDsKKwljaGFyIG1hbmxvYzsKKworCWlmICgoaW14X2lpbV9yZWFkKDEsIDksIGh3aWQsIDYpICE9 IDYpIHx8IChod2lkWzBdIDwgMHgwMikgfHwgKGh3aWRbMF0gPiAweDEzKSkKKwkJbWVtc2V0KGh3 aWQsIDB4MDAsIDYpOworCisJY2N4bXg1MV9pZCA9ICZjY3hteDUxX2lkc1tod2lkWzBdXTsKKwlw cmludGYoIk1vZHVsZSBWYXJpYW50OiAlcyAoMHglMDJ4KVxuIiwgY2N4bXg1MV9pZC0+aWRfc3Ry aW5nLCBod2lkWzBdKTsKKworCWlmIChod2lkWzBdKSB7CisJCXByaW50ZigiTW9kdWxlIEhXIFJl diA6ICUwMnhcbiIsIGh3aWRbMV0pOworCQltYW5sb2MgPSBod2lkWzJdICYgMHhjMDsKKwkJcHJp bnRmKCJNb2R1bGUgU2VyaWFsIDogJWMlZFxuIiwgKG1hbmxvYyA9PSAwKSA/ICdCJyA6IChtYW5s b2MgPT0gMHg0MCkgPyAnVycgOiAobWFubG9jID09IDB4ODApID8gJ1MnIDogJ04nLCAoKGh3aWRb Ml0gJiAweDNmKSA8PCAyNCkgfCAoaHdpZFszXSA8PCAxNikgfCAoaHdpZFs0XSA8PCA4KSB8IGh3 aWRbNV0pOworCQlpZiAoKGNjeG14NTFfaWQtPm1lbV9zeiAtIFNaXzEyOE0pID4gMCkKKwkJCWFy bV9hZGRfbWVtX2RldmljZSgicmFtMSIsIE1YNTFfQ1NEMF9CQVNFX0FERFIgKyBTWl8xMjhNLCBj Y3hteDUxX2lkLT5tZW1fc3ogLSBTWl8xMjhNKTsKKwl9CisKKwlpbXg1MV9hZGRfdWFydDEoKTsK KwlpbXg1MV9hZGRfdWFydDIoKTsKKworCXNwaV9yZWdpc3Rlcl9ib2FyZF9pbmZvKGNjeG14NTFf c3BpX2JvYXJkX2luZm8sIEFSUkFZX1NJWkUoY2N4bXg1MV9zcGlfYm9hcmRfaW5mbykpOworCWlt eDUxX2FkZF9zcGkwKCZlY3NwaV8wX2RhdGEpOworCisJcmV0ID0gY2N4bXg1MV9wb3dlcl9pbml0 KCk7CisJY29uc29sZV9mbHVzaCgpOworCWlteDUxX2luaXRfbG93bGV2ZWwoKGNjeG14NTFfaWQt PmluZHVzdHJpYWwgfHwgcmV0KSA/IDYwMCA6IDgwMCk7CisJY2xvY2tfbm90aWZpZXJfY2FsbF9j aGFpbigpOworCWlmIChyZXQpCisJCXByaW50ZigiQ291bGQgbm90IHNldHVwIFBNSUMuIENsb2Nr cyBub3QgYWRqdXN0ZWQuXG4iKTsKKworCWlteDUxX2FkZF9pMmMxKE5VTEwpOworCisJaW14NTFf YWRkX25hbmQoJm5hbmRfaW5mbyk7CisJZGV2ZnNfYWRkX3BhcnRpdGlvbigibmFuZDAiLCAweDAw MDAwLCAweDYwMDAwLCBERVZGU19QQVJUSVRJT05fRklYRUQsICJzZWxmX3JhdyIpOworCWRldl9h ZGRfYmJfZGV2KCJzZWxmX3JhdyIsICJzZWxmMCIpOworCWRldmZzX2FkZF9wYXJ0aXRpb24oIm5h bmQwIiwgMHg2MDAwMCwgMHgyMDAwMCwgREVWRlNfUEFSVElUSU9OX0ZJWEVELCAiZW52X3JhdyIp OworCWRldl9hZGRfYmJfZGV2KCJlbnZfcmF3IiwgImVudjAiKTsKKworI2lmZGVmIENPTkZJR19E UklWRVJfTkVUX0ZFQ19JTVgKKwlpZiAoY2N4bXg1MV9pZC0+ZXRoMCkgeworCQlpbXg1MV9hZGRf ZmVjKCZmZWNfaW5mbyk7CisJCWV0aF9yZWdpc3Rlcl9ldGhhZGRyKDAsIGh3aWQpOworCX0KKyNl bmRpZgorCisjaWZkZWYgQ09ORklHX0RSSVZFUl9ORVRfU01DOTExWAorCWlmIChjY3hteDUxX2lk LT5ldGgxKSB7CisJCS8qIENvbmZpZ3VyZSB0aGUgV0VJTSBDUzUgdGltbWluZywgYnVzIHdpZHRo LCBldGMgKi8KKwkJLyogMTYgYml0IG9uIERBVEFbMzEuLjE2XSwgbm90IG11bHRpcGxleGVkLCBh c3luYyAqLworCQl3cml0ZWwoMHgwMDQyMDA4MSwgTVg1MV9XRUlNX0JBU0VfQUREUiArIFdFSU1f Q1N4R0NSMSg1KSk7CisJCS8qIEFESCBoYXMgbm90IGVmZmVjdCBvbiBub24gbXV4ZWQgYnVzICov CisJCXdyaXRlbCgwLCBNWDUxX1dFSU1fQkFTRV9BRERSICsgV0VJTV9DU3hHQ1IyKDUpKTsKKwkJ LyogUldTQz01MCwgUkFEVkE9MiwgUkFEVk49NiwgT0VBPTAsIE9FTj0wLCBSQ1NBPTAsIFJDU049 MCAqLworCQl3cml0ZWwoMHgzMjI2MDAwMCwgTVg1MV9XRUlNX0JBU0VfQUREUiArIFdFSU1fQ1N4 UkNSMSg1KSk7CisJCS8qIEFQUj0wICovCisJCXdyaXRlbCgwLCBNWDUxX1dFSU1fQkFTRV9BRERS ICsgV0VJTV9DU3hSQ1IyKDUpKTsKKwkJLyogV0FMPTAsIFdCRUQ9MSwgV1dTQz01MCwgV0FEVkE9 MiwgV0FEVk49NiwgV0VBPTAsIFdFTj0wLCBXQ1NBPTAgKi8KKwkJd3JpdGVsKDB4NzIwODBmMDAs IE1YNTFfV0VJTV9CQVNFX0FERFIgKyBXRUlNX0NTeFdDUjEoNSkpOworCisJCS8qIExBTjkyMjEg bmV0d29yayBjb250cm9sbGVyICovCisJCWFkZF9nZW5lcmljX2RldmljZSgic21jOTExeCIsIDEs IE5VTEwsIE1YNTFfQ1M1X0JBU0VfQUREUiwgU1pfNEssIElPUkVTT1VSQ0VfTUVNLCBOVUxMKTsK Kwl9CisjZW5kaWYKKworCWNjeG14NTFfb3RnaG9zdF9pbml0KCk7CisKKwlhcm1saW51eF9zZXRf Ym9vdHBhcmFtcygodm9pZCAqKShNWDUxX0NTRDBfQkFTRV9BRERSICsgMHgxMDApKTsKKworCWFy bWxpbnV4X3NldF9hcmNoaXRlY3R1cmUoY2N4bXg1MV9pZC0+d2xlc3MgPyBNQUNIX1RZUEVfQ0NX TVg1MSA6IE1BQ0hfVFlQRV9DQ01YNTEpOworCisJcmV0dXJuIDA7Cit9CitkZXZpY2VfaW5pdGNh bGwoY2N4bXg1MV9kZXZpY2VzX2luaXQpOworCitzdGF0aWMgaW50IGNjeG14NTFfY29uc29sZV9p bml0KHZvaWQpCit7CisJbXhjX2lvbXV4X3YzX3NldHVwX211bHRpcGxlX3BhZHMoY2N4bXg1MV9w YWRzLCBBUlJBWV9TSVpFKGNjeG14NTFfcGFkcykpOworCisJaW14NTFfYWRkX3VhcnQwKCk7CisK KwlyZXR1cm4gMDsKK30KK2NvbnNvbGVfaW5pdGNhbGwoY2N4bXg1MV9jb25zb2xlX2luaXQpOwpk aWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5kb3ggYi9hcmNoL2Fy bS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmRveApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5jYzI4ZThkCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14 NTEvY2N4bXg1MS5kb3gKQEAgLTAsMCArMSw3IEBACisvKiogQHBhZ2UgY2N4bXg1MSBEaWdpIENv bm5lY3RDb3JlIGJvYXJkCisKK1RoaXMgYm9hcmRzIGlzIGJhc2VkIG9uIGEgRnJlZXNjYWxlIGku TVg1MSBDUFUuIFRoZSBib2FyZCBpcyBzaGlwcGVkIHdpdGg6CistIFVwIHRvIDggR0IgTkFORCBG bGFzaC4KKy0gVXAgdG8gNTEyIE1CIEREUjIgUkFNLgorCisqLwpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vYm9hcmRzL2NjeG14NTEvY2N4bXg1MS5oIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY2N4 bXg1MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZWFjYWMKLS0tIC9k ZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxLmgKQEAgLTAsMCAr MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEwIERpZ2kgSW50ZXJuYXRpb25hbCBJbmMuIEFs bCBSaWdodHMgUmVzZXJ2ZWQuCisgKi8KKworLyoKKyAqIFRoZSBjb2RlIGNvbnRhaW5lZCBoZXJl aW4gaXMgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZS4g WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor ICogVmVyc2lvbiAyIG9yIGxhdGVyIGF0IHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgorICoKKyAq IGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLWxpY2Vuc2UuaHRtbAorICog aHR0cDovL3d3dy5nbnUub3JnL2NvcHlsZWZ0L2dwbC5odG1sCisgKi8KKworI2lmbmRlZiBfQ0NY TVg1MV9IXworI2RlZmluZSBfQ0NYTVg1MV9IXworCitzdHJ1Y3QgY2N4bXg1MV9od2lkIHsKKwl1 OAkJdmFyaWFudDsKKwl1OAkJdmVyc2lvbjsKKwl1MzIJCXNuOworCWNoYXIJCW1sb2M7Cit9Owor CitzdHJ1Y3QgY2N4bXg1MV9pZGVudCB7CisJY29uc3QgY2hhcgkqaWRfc3RyaW5nOworCWNvbnN0 IGludAltZW1fc3o7CisJY29uc3QgY2hhcglpbmR1c3RyaWFsOworCWNvbnN0IGNoYXIJZXRoMDsK Kwljb25zdCBjaGFyCWV0aDE7CisJY29uc3QgY2hhcgl3bGVzczsKK307CisKK2V4dGVybiBzdHJ1 Y3QgY2N4bXg1MV9pZGVudCAqY2N4bXg1MV9pZDsKKworI2VuZGlmCS8qIF9DQ1hNWDUxX0hfICov CmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9jY3hteDUxanMuYyBiL2FyY2gv YXJtL2JvYXJkcy9jY3hteDUxL2NjeG14NTFqcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmYwNDYxNWQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4 bXg1MS9jY3hteDUxanMuYwpAQCAtMCwwICsxLDkwIEBACisvKgorICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMK KyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mCisgKiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy ZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3Rv biwKKyAqIE1BIDAyMTExLTEzMDcgVVNBCisgKi8KKworI2luY2x1ZGUgPGNvbW1vbi5oPgorI2lu Y2x1ZGUgPGlvLmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUgPG1jaS5oPgorI2luY2x1 ZGUgPGFzbS9hcm1saW51eC5oPgorI2luY2x1ZGUgPG1hY2gvaW14LXJlZ3MuaD4KKyNpbmNsdWRl IDxtYWNoL2lvbXV4LW14NTEuaD4KKyNpbmNsdWRlIDxtYWNoL2RldmljZXMtaW14NTEuaD4KKyNp bmNsdWRlIDxnZW5lcmF0ZWQvbWFjaC10eXBlcy5oPgorCisjaW5jbHVkZSAiY2N4bXg1MS5oIgor CitzdGF0aWMgaW9tdXhfdjNfY2ZnX3QgY2N4bXg1MWpzX3BhZHNbXSA9IHsKKwkvKiBTRDEgKi8K KwlNWDUxX1BBRF9TRDFfQ0xLX19TRDFfQ0xLLAorCU1YNTFfUEFEX1NEMV9DTURfX1NEMV9DTUQs CisJTVg1MV9QQURfU0QxX0RBVEEwX19TRDFfREFUQTAsCisJTVg1MV9QQURfU0QxX0RBVEExX19T RDFfREFUQTEsCisJTVg1MV9QQURfU0QxX0RBVEEyX19TRDFfREFUQTIsCisJTVg1MV9QQURfU0Qx X0RBVEEzX19TRDFfREFUQTMsCisJLyogU0QzICovCisJTVg1MV9QQURfTkFOREZfQ1M3X19TRDNf Q0xLLAorCU1YNTFfUEFEX05BTkRGX1JEWV9JTlRfX1NEM19DTUQsCisJTVg1MV9QQURfTkFOREZf RDhfX1NEM19EQVRBMCwKKwlNWDUxX1BBRF9OQU5ERl9EOV9fU0QzX0RBVEExLAorCU1YNTFfUEFE X05BTkRGX0QxMF9fU0QzX0RBVEEyLAorCU1YNTFfUEFEX05BTkRGX0QxMV9fU0QzX0RBVEEzLAor CU1YNTFfUEFEX05BTkRGX0QxMl9fU0QzX0RBVDQsCisJTVg1MV9QQURfTkFOREZfRDEzX19TRDNf REFUNSwKKwlNWDUxX1BBRF9OQU5ERl9EMTRfX1NEM19EQVQ2LAorCU1YNTFfUEFEX05BTkRGX0Qx NV9fU0QzX0RBVDcsCisJLyogVVNCIEhPU1QxICovCisJTVg1MV9QQURfVVNCSDFfQ0xLX19VU0JI MV9DTEssCisJTVg1MV9QQURfVVNCSDFfRElSX19VU0JIMV9ESVIsCisJTVg1MV9QQURfVVNCSDFf TlhUX19VU0JIMV9OWFQsCisJTVg1MV9QQURfVVNCSDFfU1RQX19VU0JIMV9TVFAsCisJTVg1MV9Q QURfVVNCSDFfREFUQTBfX1VTQkgxX0RBVEEwLAorCU1YNTFfUEFEX1VTQkgxX0RBVEExX19VU0JI MV9EQVRBMSwKKwlNWDUxX1BBRF9VU0JIMV9EQVRBMl9fVVNCSDFfREFUQTIsCisJTVg1MV9QQURf VVNCSDFfREFUQTNfX1VTQkgxX0RBVEEzLAorCU1YNTFfUEFEX1VTQkgxX0RBVEE0X19VU0JIMV9E QVRBNCwKKwlNWDUxX1BBRF9VU0JIMV9EQVRBNV9fVVNCSDFfREFUQTUsCisJTVg1MV9QQURfVVNC SDFfREFUQTZfX1VTQkgxX0RBVEE2LAorCU1YNTFfUEFEX1VTQkgxX0RBVEE3X19VU0JIMV9EQVRB NywKK307CisKK3N0YXRpYyBzdHJ1Y3QgZXNkaGNfcGxhdGZvcm1fZGF0YSBzZGhjMV9wZGF0YSA9 IHsKKwkuY2RfdHlwZQk9IEVTREhDX0NEX05PTkUsCisJLndwX3R5cGUJPSBFU0RIQ19XUF9OT05F LAorCS5jYXBzCQk9IE1NQ19NT0RFXzRCSVQsCit9OworCitzdGF0aWMgc3RydWN0IGVzZGhjX3Bs YXRmb3JtX2RhdGEgc2RoYzNfcGRhdGEgPSB7CisJLmNkX3R5cGUJPSBFU0RIQ19DRF9OT05FLAor CS53cF90eXBlCT0gRVNESENfV1BfTk9ORSwKKwkuY2FwcwkJPSBNTUNfTU9ERV80QklUIHwgTU1D X01PREVfOEJJVCwKK307CisKK3N0YXRpYyBpbnQgY2N4bXg1MWpzX2luaXQodm9pZCkKK3sKKwlt eGNfaW9tdXhfdjNfc2V0dXBfbXVsdGlwbGVfcGFkcyhjY3hteDUxanNfcGFkcywgQVJSQVlfU0la RShjY3hteDUxanNfcGFkcykpOworCisJaWYgKElTX0VOQUJMRUQoQ09ORklHX01DSV9JTVhfRVNE SEMpKSB7CisJCWlteDUxX2FkZF9tbWMwKCZzZGhjMV9wZGF0YSk7CisJCWlteDUxX2FkZF9tbWMy KCZzZGhjM19wZGF0YSk7CisJfQorCisJYXJtbGludXhfc2V0X2FyY2hpdGVjdHVyZShjY3hteDUx X2lkLT53bGVzcyA/IE1BQ0hfVFlQRV9DQ1dNWDUxSlMgOiBNQUNIX1RZUEVfQ0NNWDUxSlMpOwor CisJcmV0dXJuIDA7Cit9CisKK2xhdGVfaW5pdGNhbGwoY2N4bXg1MWpzX2luaXQpOwpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY29uZmlnLmggYi9hcmNoL2FybS9ib2FyZHMv Y2N4bXg1MS9jb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZGYy ZjgxCi0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvY29uZmlnLmgK QEAgLTAsMCArMSwyNCBAQAorLyoqCisgKiBAZmlsZQorICogQGJyaWVmIEdsb2JhbCBkZWZpbnRp b25zIGZvciB0aGUgQVJNIGkuTVg1MSBiYXNlZCBjY214NTEgYm9hcmQKKyAqCisgKiBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDIgb2YKKyAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4JIFNlZSB0aGUKKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl IFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMz MCwgQm9zdG9uLAorICogTUEgMDIxMTEtMTMwNyBVU0EKKyAqLworCisjaWZuZGVmIF9fQ09ORklH X0gKKyNkZWZpbmUgX19DT05GSUdfSAorCisjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vYm9hcmRzL2NjeG14NTEvZW52L2NvbmZpZyBiL2FyY2gvYXJtL2JvYXJk cy9jY3hteDUxL2Vudi9jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YmIyNWNhZgotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2Vudi9j b25maWcKQEAgLTAsMCArMSwzNyBAQAorIyEvYmluL3NoCisKK21hY2hpbmU9Y2NteDUxCisKKyMg dXNlICdkaGNwJyB0byBkbyBkaGNwIGluIGJhcmVib3ggYW5kIGluIGtlcm5lbAorIyB1c2UgJ25v bmUnIGlmIHlvdSB3YW50IHRvIHNraXAga2VybmVsIGlwIGF1dG9jb25maWd1cmF0aW9uCitpcD1u b25lCisKKyMgb3Igc2V0IHlvdXIgbmV0d29ya2luZyBwYXJhbWV0ZXJzIGhlcmUKKyNldGgwLmlw YWRkcj1hLmIuYy5kCisjZXRoMC5uZXRtYXNrPWEuYi5jLmQKKyNldGgwLmdhdGV3YXk9YS5iLmMu ZAorI2V0aDAuc2VydmVyaXA9YS5iLmMuZAorCisjIGNhbiBiZSBlaXRoZXIgJ25mcycsICd0ZnRw JyBvciAnbmFuZCcKK2tlcm5lbF9sb2M9bmFuZAorIyBjYW4gYmUgZWl0aGVyICduZXQnLCAnbmFu ZCcgb3IgJ2luaXRyZCcKK3Jvb3Rmc19sb2M9bmFuZAorCisjIHJvb3Rmcworcm9vdGZzX3R5cGU9 Y3JhbWZzCisKKyMga2VybmVsCitrZXJuZWxpbWFnZV90eXBlPXppbWFnZQora2VybmVsX2ltZz0v ZGV2L25hbmQwLmtlcm5lbAorCithdXRvYm9vdF90aW1lb3V0PTMKKworYm9vdGFyZ3M9ImNvbnNv bGU9dHR5bXhjMCwxMTUyMDAiCisKK2RldmljZV90eXBlPSJuYW5kIgorbmFuZF9kZXZpY2U9Im14 Y19uYW5kIgorbmFuZF9wYXJ0cz0iMzg0ayhiYXJlYm94KXJvLDEyOGsoYmFyZWJveGVudiksMzU4 NGsoa2VybmVsKSwtKHJvb3QpIgorcm9vdGZzX210ZGJsb2NrX25hbmQ9MworCisjIHNldCBhIGZh bmN5IHByb21wdCAoaWYgc3VwcG9ydCBpcyBjb21waWxlZCBpbikKK1BTMT0iXGVbMTszMm1iYXJl Ym94QFxlWzE7MzFtXGg6XHdcZVswbSAiCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvY2N4 bXg1MS9mbGFzaF9oZWFkZXIuYyBiL2FyY2gvYXJtL2JvYXJkcy9jY3hteDUxL2ZsYXNoX2hlYWRl ci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxNDhlZWEKLS0tIC9kZXYv bnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvY2N4bXg1MS9mbGFzaF9oZWFkZXIuYwpAQCAtMCww ICsxLDg0IEBACisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8bWFjaC9pbXgtZmxhc2gt aGVhZGVyLmg+CisjaW5jbHVkZSA8YXNtL2JhcmVib3gtYXJtLWhlYWQuaD4KKwordm9pZCBfX25h a2VkIF9fZmxhc2hfaGVhZGVyX3N0YXJ0IGdvKHZvaWQpCit7CisJYmFyZWJveF9hcm1faGVhZCgp OworfQorCitzdHJ1Y3QgaW14X2RjZF9lbnRyeSBfX2RjZF9lbnRyeV9zZWN0aW9uIGRjZF9lbnRy eVtdID0geworCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4OGEwLCAudmFsID0gMHgw MDAwMDIwMCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODUwYywgLnZhbCA9 IDB4MDAwMDIwYzUsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg1MTAsIC52 YWwgPSAweDAwMDAyMGM1LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4ODNj LCAudmFsID0gMHgwMDAwMDAwMiwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2Zh ODg0OCwgLnZhbCA9IDB4MDAwMDAwMDIsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4 NzNmYTg0YjgsIC52YWwgPSAweDAwMDAwMGU3LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIg PSAweDczZmE4NGJjLCAudmFsID0gMHgwMDAwMDA0NSwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5h ZGRyID0gMHg3M2ZhODRjMCwgLnZhbCA9IDB4MDAwMDAwNDUsIH0sCisJeyAucHRyX3R5cGUgPSA0 LCAuYWRkciA9IDB4NzNmYTg0YzQsIC52YWwgPSAweDAwMDAwMDQ1LCB9LAorCXsgLnB0cl90eXBl ID0gNCwgLmFkZHIgPSAweDczZmE4NGM4LCAudmFsID0gMHgwMDAwMDA0NSwgfSwKKwl7IC5wdHJf dHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODgyMCwgLnZhbCA9IDB4MDAwMDAwMDAsIH0sCisJeyAu cHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg0YTQsIC52YWwgPSAweDAwMDAwMDAzLCB9LAor CXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4NGE4LCAudmFsID0gMHgwMDAwMDAwMywg fSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODRhYywgLnZhbCA9IDB4MDAwMDAw ZTMsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg0YjAsIC52YWwgPSAweDAw MDAwMGUzLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4NGI0LCAudmFsID0g MHgwMDAwMDBlMywgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3M2ZhODRjYywgLnZh bCA9IDB4MDAwMDAwZTMsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4NzNmYTg0ZDAs IC52YWwgPSAweDAwMDAwMGUyLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDczZmE4 ODJjLCAudmFsID0gMHgwMDAwMDAwNCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg3 M2ZhODhhNCwgLnZhbCA9IDB4MDAwMDAwMDQsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9 IDB4NzNmYTg4YWMsIC52YWwgPSAweDAwMDAwMDA0LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFk ZHIgPSAweDczZmE4OGI4LCAudmFsID0gMHgwMDAwMDAwNCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQs IC5hZGRyID0gMHg4M2ZkOTAwMCwgLnZhbCA9IDB4ODJhMjAwMDAsIH0sCisJeyAucHRyX3R5cGUg PSA0LCAuYWRkciA9IDB4ODNmZDkwMDgsIC52YWwgPSAweDgyYTIwMDAwLCB9LAorCXsgLnB0cl90 eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDEwLCAudmFsID0gMHgwMDBhZDBkMCwgfSwKKwl7IC5w dHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAwNCwgLnZhbCA9IDB4M2YzNTg0YWIsIH0sCisJ eyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMGMsIC52YWwgPSAweDNmMzU4NGFiLCB9 LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgwNDAwODAw OCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDAw MDgwMWEsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAw eDAwMDA4MDFiLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFs ID0gMHgwMDQ0ODAxOSwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwg LnZhbCA9IDB4MDczMjgwMTgsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkw MTQsIC52YWwgPSAweDA0MDA4MDA4LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgz ZmQ5MDE0LCAudmFsID0gMHgwMDAwODAxMCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0g MHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDAwMDgwMTAsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRk ciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDA2MzI4MDE4LCB9LAorCXsgLnB0cl90eXBlID0gNCwg LmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgwMzgwODAxOSwgfSwKKwl7IC5wdHJfdHlwZSA9 IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDA0MDgwMTksIH0sCisJeyAucHRyX3R5 cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDAwMDA4MDAwLCB9LAorCXsgLnB0 cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgwNDAwODAwYywgfSwKKwl7 IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDAwMDgwMWUsIH0s CisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDAwMDA4MDFm LCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAudmFsID0gMHgwMDAw ODAxZCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4 MDczMjgwMWMsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTQsIC52YWwg PSAweDA0MDA4MDBjLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDE0LCAu dmFsID0gMHgwMDAwODAxNCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAx NCwgLnZhbCA9IDB4MDAwMDgwMTQsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAuYWRkciA9IDB4ODNm ZDkwMTQsIC52YWwgPSAweDA2MzI4MDFjLCB9LAorCXsgLnB0cl90eXBlID0gNCwgLmFkZHIgPSAw eDgzZmQ5MDE0LCAudmFsID0gMHgwMzgwODAxZCwgfSwKKwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRy ID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDA0MDgwMWQsIH0sCisJeyAucHRyX3R5cGUgPSA0LCAu YWRkciA9IDB4ODNmZDkwMTQsIC52YWwgPSAweDAwMDA4MDA0LCB9LAorCXsgLnB0cl90eXBlID0g NCwgLmFkZHIgPSAweDgzZmQ5MDAwLCAudmFsID0gMHhiMmEyMDAwMCwgfSwKKwl7IC5wdHJfdHlw ZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAwOCwgLnZhbCA9IDB4YjJhMjAwMDAsIH0sCisJeyAucHRy X3R5cGUgPSA0LCAuYWRkciA9IDB4ODNmZDkwMTAsIC52YWwgPSAweDAwMGFkNmQwLCB9LAorCXsg LnB0cl90eXBlID0gNCwgLmFkZHIgPSAweDgzZmQ5MDM0LCAudmFsID0gMHg5MDAwMDAwMCwgfSwK Kwl7IC5wdHJfdHlwZSA9IDQsIC5hZGRyID0gMHg4M2ZkOTAxNCwgLnZhbCA9IDB4MDAwMDAwMDAs IH0sCit9OworCisjZGVmaW5lIEFQUF9ERVNUCTB4OTAwMDAwMDAKKworc3RydWN0IGlteF9mbGFz aF9oZWFkZXIgX19mbGFzaF9oZWFkZXJfc2VjdGlvbiBmbGFzaF9oZWFkZXIgPSB7CisJLmFwcF9j b2RlX2p1bXBfdmVjdG9yCT0gQVBQX0RFU1QgKyAweDEwMDAsCisJLmFwcF9jb2RlX2Jhcmtlcgk9 IEFQUF9DT0RFX0JBUktFUiwKKwkuYXBwX2NvZGVfY3NmCQk9IDAsCisJLmRjZF9wdHJfcHRyCQk9 IEFQUF9ERVNUICsgMHg0MDAgKyBvZmZzZXRvZihzdHJ1Y3QgaW14X2ZsYXNoX2hlYWRlciwgZGNk KSwKKwkuc3VwZXJfcm9vdF9rZXkJCT0gMCwKKwkuZGNkCQkJPSBBUFBfREVTVCArIDB4NDAwICsg b2Zmc2V0b2Yoc3RydWN0IGlteF9mbGFzaF9oZWFkZXIsIGRjZF9iYXJrZXIpLAorCS5hcHBfZGVz dAkJPSBBUFBfREVTVCwKKwkuZGNkX2JhcmtlcgkJPSBEQ0RfQkFSS0VSLAorCS5kY2RfYmxvY2tf bGVuCQk9IHNpemVvZiAoZGNkX2VudHJ5KSwKK307CisKK3Vuc2lnbmVkIGxvbmcgX19pbWFnZV9s ZW5fc2VjdGlvbiBiYXJlYm94X2xlbiA9IERDRF9CQVJFQk9YX1NJWkU7CisKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL2NvbmZpZ3MvY2NteDUxX2RlZmNvbmZpZyBiL2FyY2gvYXJtL2NvbmZpZ3MvY2Nt eDUxX2RlZmNvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MTU4ZDNj Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vY29uZmlncy9jY214NTFfZGVmY29uZmlnCkBA IC0wLDAgKzEsNTYgQEAKK0NPTkZJR19BUkNIX0lNWD15CitDT05GSUdfQVJDSF9JTVg1MT15CitD T05GSUdfTUFDSF9DQ01YNTE9eQorQ09ORklHX0FFQUJJPXkKK0NPTkZJR19BUk1fT1BUSU1aRURf U1RSSU5HX0ZVTkNUSU9OUz15CitDT05GSUdfTUFMTE9DX1NJWkU9MHgyMDAwMDAwCitDT05GSUdf TE9OR0hFTFA9eQorQ09ORklHX0dMT0I9eQorQ09ORklHX0hVU0hfRkFOQ1lfUFJPTVBUPXkKK0NP TkZJR19DTURMSU5FX0VESVRJTkc9eQorQ09ORklHX0FVVE9fQ09NUExFVEU9eQorQ09ORklHX1BB UlRJVElPTj15CitDT05GSUdfREVGQVVMVF9FTlZJUk9OTUVOVF9HRU5FUklDPXkKK0NPTkZJR19E RUZBVUxUX0VOVklST05NRU5UX1BBVEg9ImRlZmF1bHRlbnYgYXJjaC9hcm0vYm9hcmRzL2NjeG14 NTEvZW52IgorQ09ORklHX0NNRF9FRElUPXkKK0NPTkZJR19DTURfU0xFRVA9eQorQ09ORklHX0NN RF9TQVZFRU5WPXkKK0NPTkZJR19DTURfTE9BREVOVj15CitDT05GSUdfQ01EX0VYUE9SVD15CitD T05GSUdfQ01EX1BSSU5URU5WPXkKK0NPTkZJR19DTURfUkVBRExJTkU9eQorQ09ORklHX0NNRF9F Q0hPX0U9eQorQ09ORklHX0NNRF9NRU1JTkZPPXkKK0NPTkZJR19DTURfTVRFU1Q9eQorQ09ORklH X0NNRF9GTEFTSD15CitDT05GSUdfQ01EX0JPT1RNX1pMSUI9eQorQ09ORklHX0NNRF9CT09UTV9C WkxJQj15CitDT05GSUdfQ01EX0JPT1RNX1NIT1dfVFlQRT15CitDT05GSUdfQ01EX1JFU0VUPXkK K0NPTkZJR19DTURfR089eQorQ09ORklHX0NNRF9USU1FT1VUPXkKK0NPTkZJR19DTURfUEFSVElU SU9OPXkKK0NPTkZJR19DTURfR1BJTz15CitDT05GSUdfQ01EX1VOTFpPPXkKK0NPTkZJR19DTURf STJDPXkKK0NPTkZJR19ORVQ9eQorQ09ORklHX05FVF9ESENQPXkKK0NPTkZJR19ORVRfUElORz15 CitDT05GSUdfTkVUX1RGVFA9eQorQ09ORklHX0RSSVZFUl9ORVRfU01DOTExWD15CitDT05GSUdf RFJJVkVSX05FVF9GRUNfSU1YPXkKK0NPTkZJR19EUklWRVJfU1BJX0lNWD15CitDT05GSUdfSTJD PXkKK0NPTkZJR19JMkNfSU1YPXkKK0NPTkZJR19NVEQ9eQorQ09ORklHX05BTkQ9eQorQ09ORklH X05BTkRfSU1YPXkKK0NPTkZJR19VU0I9eQorQ09ORklHX1VTQl9FSENJPXkKK0NPTkZJR19NQ0k9 eQorIyBDT05GSUdfTUNJX1dSSVRFIGlzIG5vdCBzZXQKK0NPTkZJR19NQ0lfSU1YX0VTREhDPXkK K0NPTkZJR19JMkNfTUMxMzg5Mj15CitDT05GSUdfRlNfQ1JBTUZTPXkKK0NPTkZJR19GU19GQVQ9 eQorQ09ORklHX0ZTX0ZBVF9MRk49eQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1pbXgvS2Nv bmZpZyBiL2FyY2gvYXJtL21hY2gtaW14L0tjb25maWcKaW5kZXggNTY0ZTJmZS4uMTViN2JmYiAx MDA2NDQKLS0tIGEvYXJjaC9hcm0vbWFjaC1pbXgvS2NvbmZpZworKysgYi9hcmNoL2FybS9tYWNo LWlteC9LY29uZmlnCkBAIC0yNiw2ICsyNiw3IEBAIGNvbmZpZyBBUkNIX1RFWFRfQkFTRQogCWRl ZmF1bHQgMHg3ZmYwMDAwMCBpZiBNQUNIX1RRTUE1MwogCWRlZmF1bHQgMHg5N2YwMDAwMCBpZiBN QUNIX1RYNTEKIAlkZWZhdWx0IDB4NGZjMDAwMDAgaWYgTUFDSF9NWDZRX0FSTTIKKwlkZWZhdWx0 IDB4OTdmMDAwMDAgaWYgTUFDSF9DQ01YNTEKIAogY29uZmlnIEJPQVJESU5GTwogCWRlZmF1bHQg IkV1a3JlYSBDUFVJTVgyNSIgaWYgTUFDSF9FVUtSRUFfQ1BVSU1YMjUKQEAgLTUwLDYgKzUxLDcg QEAgY29uZmlnIEJPQVJESU5GTwogCWRlZmF1bHQgIlRRIHRxbWE1MyIgaWYgTUFDSF9UUU1BNTMK IAlkZWZhdWx0ICJLYS1SbyB0eDUxIiBpZiBNQUNIX1RYNTEKIAlkZWZhdWx0ICJGcmVlc2NhbGUg aS5NWDZxIGFybWFkaWxsbzIiIGlmIE1BQ0hfTVg2UV9BUk0yCisJZGVmYXVsdCAiQ29ubmVjdENv cmUgaS5NWDUxIiBpZiBNQUNIX0NDTVg1MQogCiBjaG9pY2UKIAlwcm9tcHQgIlNlbGVjdCBib290 IG1vZGUiCkBAIC00MDUsNiArNDA3LDIzIEBAIGNvbmZpZyBNQUNIX1RYNTEKIAloZWxwCiAJICBT YXkgWSBoZXJlIGlmIHlvdSBhcmUgdXNpbmcgdGhlIEthLVJvIHR4NTEgYm9hcmQKIAorY29uZmln IE1BQ0hfQ0NNWDUxCisJYm9vbCAiQ29ubmVjdENvcmUgaS5NWDUxIgorCXNlbGVjdCBJTVhfSUlN CisJc2VsZWN0IFNQSQorCXNlbGVjdCBEUklWRVJfU1BJX0lNWAorCXNlbGVjdCBNRkRfTUMxM1hY WAorCWhlbHAKKwkgIFNheSBZIGhlcmUgaWYgeW91IGFyZSB1c2luZyBEaWdpIENvbm5lY3RDb3Jl IChXKWktaS5NWDUxCisJICBlcXVpcHBlZCB3aXRoIGEgRnJlZXNjYWxlIGkuTVg1MSBQcm9jZXNz b3IKKworY29uZmlnIE1BQ0hfQ0NNWDUxX0JBU0VCT0FSRAorCWJvb2wgIkRpZ2kgZGV2ZWxvcG1l bnQgYm9hcmQgZm9yIENDTVg1MSBtb2R1bGUiCisJZGVwZW5kcyBvbiBNQUNIX0NDTVg1MQorCWRl ZmF1bHQgeQorCWhlbHAKKwkgIFRoaXMgYWRkcyBib2FyZCBzcGVjaWZpYyBkZXZpY2VzIHRoYXQg Y2FuIGJlIGZvdW5kIG9uIERpZ2kKKwkgIGV2YWx1YXRpb24gYm9hcmQgZm9yIENDTVg1MSBtb2R1 bGUuCiAKIGVuZGNob2ljZQogCmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLWlteC9pbmNsdWRl L21hY2gvaW9tdXgtbXg1MS5oIGIvYXJjaC9hcm0vbWFjaC1pbXgvaW5jbHVkZS9tYWNoL2lvbXV4 LW14NTEuaAppbmRleCBjN2Y1MTY5Li44ZmJlOTI2IDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNo LWlteC9pbmNsdWRlL21hY2gvaW9tdXgtbXg1MS5oCisrKyBiL2FyY2gvYXJtL21hY2gtaW14L2lu Y2x1ZGUvbWFjaC9pb211eC1teDUxLmgKQEAgLTI1Niw3ICsyNTYsNyBAQAogI2RlZmluZSBNWDUx X1BBRF9OQU5ERl9SQjFfX0dQSU8zXzkJCUlPTVVYX1BBRCgweDRmYywgMHgxMjAsIDMsIF9fTkFf LCAwLCBNWDUxX0dQSU9fUEFEX0NUUkwpCiAjZGVmaW5lIE1YNTFfUEFEX05BTkRGX1JCMV9fTkFO REZfUkIxCQlJT01VWF9QQUQoMHg0ZmMsIDB4MTIwLCAwLCBfX05BXywgMCwgTk9fUEFEX0NUUkwp CiAjZGVmaW5lIE1YNTFfUEFEX05BTkRGX1JCMV9fUEFUQV9JT1JEWQkJSU9NVVhfUEFEKDB4NGZj LCAweDEyMCwgMSwgX19OQV8sIDAsIE5PX1BBRF9DVFJMKQotI2RlZmluZSBNWDUxX1BBRF9OQU5E Rl9SQjFfX1NENF9DTUQJCUlPTVVYX1BBRCgweDRmYywgMHgxMjAsIDUsIF9fTkFfLCAwLCBNWDUx X1NESENJX1BBRF9DVFJMKQorI2RlZmluZSBNWDUxX1BBRF9OQU5ERl9SQjFfX1NENF9DTUQJCUlP TVVYX1BBRCgweDRmYywgMHgxMjAsIDB4MTUsIF9fTkFfLCAwLCBNWDUxX1NESENJX1BBRF9DVFJM KQogI2RlZmluZSBNWDUxX1BBRF9OQU5ERl9SQjJfX0RJU1AyX1dBSVQJCUlPTVVYX1BBRCgweDUw MCwgMHgxMjQsIDUsIDB4OWE4LCAwLCBOT19QQURfQ1RSTCkKICNkZWZpbmUgTVg1MV9QQURfTkFO REZfUkIyX19FQ1NQSTJfU0NMSwkJSU9NVVhfUEFEKDB4NTAwLCAweDEyNCwgMiwgX19OQV8sIDAs IE1YNTFfRUNTUElfUEFEX0NUUkwpCiAjZGVmaW5lIE1YNTFfUEFEX05BTkRGX1JCMl9fRkVDX0NP TAkJSU9NVVhfUEFEKDB4NTAwLCAweDEyNCwgMSwgMHg5NGMsIDAsIE1YNTFfUEFEX0NUUkxfMikK QEAgLTMxNiw3ICszMTYsNyBAQAogI2RlZmluZSBNWDUxX1BBRF9OQU5ERl9SRFlfSU5UX19GRUNf VFhfQ0xLCUlPTVVYX1BBRCgweDUzOCwgMHgxNTAsIDEsIDB4OTc0LCAwLCBNWDUxX1BBRF9DVFJM XzQpCiAjZGVmaW5lIE1YNTFfUEFEX05BTkRGX1JEWV9JTlRfX0dQSU8zXzI0CUlPTVVYX1BBRCgw eDUzOCwgMHgxNTAsIDMsIF9fTkFfLCAwLCBNWDUxX0dQSU9fUEFEX0NUUkwpCiAjZGVmaW5lIE1Y NTFfUEFEX05BTkRGX1JEWV9JTlRfX05BTkRGX1JEWV9JTlQJSU9NVVhfUEFEKDB4NTM4LCAweDE1 MCwgMCwgMHg5MzgsIDAsIE5PX1BBRF9DVFJMKQotI2RlZmluZSBNWDUxX1BBRF9OQU5ERl9SRFlf SU5UX19TRDNfQ01ECQlJT01VWF9QQUQoMHg1MzgsIDB4MTUwLCA1LCBfX05BXywgMCwgTVg1MV9T REhDSV9QQURfQ1RSTCkKKyNkZWZpbmUgTVg1MV9QQURfTkFOREZfUkRZX0lOVF9fU0QzX0NNRAkJ SU9NVVhfUEFEKDB4NTM4LCAweDE1MCwgMHgxNSwgX19OQV8sIDAsIE1YNTFfU0RIQ0lfUEFEX0NU UkwpCiAjZGVmaW5lIE1YNTFfUEFEX05BTkRGX0QxNV9fRUNTUEkyX01PU0kJCUlPTVVYX1BBRCgw eDUzYywgMHgxNTQsIDIsIF9fTkFfLCAwLCBNWDUxX0VDU1BJX1BBRF9DVFJMKQogI2RlZmluZSBN WDUxX1BBRF9OQU5ERl9EMTVfX0dQSU8zXzI1CQlJT01VWF9QQUQoMHg1M2MsIDB4MTU0LCAzLCBf X05BXywgMCwgTVg1MV9HUElPX1BBRF9DVFJMKQogI2RlZmluZSBNWDUxX1BBRF9OQU5ERl9EMTVf X05BTkRGX0QxNQkJSU9NVVhfUEFEKDB4NTNjLCAweDE1NCwgMCwgX19OQV8sIDAsIE5PX1BBRF9D VFJMKQotLSAKMS43LjMuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmJhcmVib3ggbWFpbGluZyBsaXN0CmJhcmVib3hAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2JhcmVib3gK