From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 01/10] arm: remove the ARM HDLCD driver Date: Mon, 21 May 2018 17:53:19 -0700 Message-ID: <1526950408-18219-1-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: julien.grall@arm.com Cc: artem_mygaiev@epam.com, lars.kurth@citrix.com, sstabellini@kernel.org, andrii_anisov@epam.com, dfaggioli@suse.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org VGhlIEFSTSBIRExDRCBkcml2ZXIgaXMgdW51c2VkLiBUaGUgZGV2aWNlIGl0c2VsZiBjYW4gb25s eSBiZSBmb3VuZCBvbgpWaXJ0dWFsIEV4cHJlc3MgYm9hcmRzIHRoYXQgYXJlIGZvciBlYXJseSBk ZXZlbG9wbWVudCBvbmx5LiBSZW1vdmUgdGhlCmRyaXZlci4KClN1Z2dlc3RlZC1ieTogSnVsaWVu IEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KU2lnbmVkLW9mZi1ieTogU3RlZmFubyBTdGFi ZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgotLS0KQ2hhbmdlcyBpbiB2MjoKLSBwYXRj aCBhZGRlZAotLS0KIHhlbi9hcmNoL2FybS9LY29uZmlnICAgICAgICAgIHwgICAxIC0KIHhlbi9k cml2ZXJzL3ZpZGVvL0tjb25maWcgICAgIHwgICAzIC0KIHhlbi9kcml2ZXJzL3ZpZGVvL01ha2Vm aWxlICAgIHwgICAxIC0KIHhlbi9kcml2ZXJzL3ZpZGVvL2FybV9oZGxjZC5jIHwgMjgxIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAy ODYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgeGVuL2RyaXZlcnMvdmlkZW8vYXJt X2hkbGNkLmMKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vS2NvbmZpZyBiL3hlbi9hcmNoL2Fy bS9LY29uZmlnCmluZGV4IDgxNzRjMGMuLmNiZDlmMWIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2Fy bS9LY29uZmlnCisrKyBiL3hlbi9hcmNoL2FybS9LY29uZmlnCkBAIC0xNyw3ICsxNyw2IEBAIGNv bmZpZyBBUk1fNjQKIGNvbmZpZyBBUk0KIAlkZWZfYm9vbCB5CiAJc2VsZWN0IEhBU19BTFRFUk5B VElWRQotCXNlbGVjdCBIQVNfQVJNX0hETENECiAJc2VsZWN0IEhBU19ERVZJQ0VfVFJFRQogCXNl bGVjdCBIQVNfTUVNX0FDQ0VTUwogCXNlbGVjdCBIQVNfUEFTU1RIUk9VR0gKZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3ZpZGVvL0tjb25maWcgYi94ZW4vZHJpdmVycy92aWRlby9LY29uZmlnCmlu ZGV4IDUyZThjZTYuLjQxY2E1MDMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3ZpZGVvL0tjb25m aWcKKysrIGIveGVuL2RyaXZlcnMvdmlkZW8vS2NvbmZpZwpAQCAtMTEsNiArMTEsMyBAQCBjb25m aWcgVkdBCiAJICBFbmFibGUgVkdBIG91dHB1dCBmb3IgdGhlIFhlbiBoeXBlcnZpc29yLgogCiAJ ICBJZiB1bnN1cmUsIHNheSBZLgotCi1jb25maWcgSEFTX0FSTV9IRExDRAotCWJvb2wKZGlmZiAt LWdpdCBhL3hlbi9kcml2ZXJzL3ZpZGVvL01ha2VmaWxlIGIveGVuL2RyaXZlcnMvdmlkZW8vTWFr ZWZpbGUKaW5kZXggMmJiOTFkNi4uMmIzZmM3NiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvdmlk ZW8vTWFrZWZpbGUKKysrIGIveGVuL2RyaXZlcnMvdmlkZW8vTWFrZWZpbGUKQEAgLTQsNCArNCwz IEBAIG9iai0kKENPTkZJR19WSURFTykgKz0gZm9udF84eDE2Lm8KIG9iai0kKENPTkZJR19WSURF TykgKz0gZm9udF84eDgubwogb2JqLSQoQ09ORklHX1ZJREVPKSArPSBsZmIubwogb2JqLSQoQ09O RklHX1ZHQSkgKz0gdmVzYS5vCi1vYmotJChDT05GSUdfSEFTX0FSTV9IRExDRCkgKz0gYXJtX2hk bGNkLm8KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZpZGVvL2FybV9oZGxjZC5jIGIveGVuL2Ry aXZlcnMvdmlkZW8vYXJtX2hkbGNkLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUx MTc0YjIuLjAwMDAwMDAKLS0tIGEveGVuL2RyaXZlcnMvdmlkZW8vYXJtX2hkbGNkLmMKKysrIC9k ZXYvbnVsbApAQCAtMSwyODEgKzAsMCBAQAotLyoKLSAqIHhlbi9kcml2ZXJzL3ZpZGVvL2FybV9o ZGxjZC5jCi0gKgotICogRHJpdmVyIGZvciBBUk0gSERMQ0QgQ29udHJvbGxlcgotICoKLSAqIFN0 ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5jb20+Ci0gKiBD b3B5cmlnaHQgKGMpIDIwMTMgQ2l0cml4IFN5c3RlbXMuCi0gKgotICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSAq IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5Ci0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gKiBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICovCi0KLSNpbmNsdWRlIDxhc20v ZGVsYXkuaD4KLSNpbmNsdWRlIDxhc20vdHlwZXMuaD4KLSNpbmNsdWRlIDxhc20vcGxhdGZvcm1z L3ZleHByZXNzLmg+Ci0jaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+Ci0jaW5jbHVkZSA8eGVu L2xpYmZkdC9saWJmZHQuaD4KLSNpbmNsdWRlIDx4ZW4vaW5pdC5oPgotI2luY2x1ZGUgPHhlbi9t bS5oPgotI2luY2x1ZGUgImZvbnQuaCIKLSNpbmNsdWRlICJsZmIuaCIKLSNpbmNsdWRlICJtb2Rl bGluZXMuaCIKLQotI2RlZmluZSBIRExDRCAoKHZvbGF0aWxlIHVpbnQzMl90ICopIEZJWE1BUF9B RERSKEZJWE1BUF9NSVNDKSkKLQotI2RlZmluZSBIRExDRF9JTlRNQVNLICAgICAgICgweDE4LzQp Ci0jZGVmaW5lIEhETENEX0ZCQkFTRSAgICAgICAgKDB4MTAwLzQpCi0jZGVmaW5lIEhETENEX0xJ TkVMRU5HVEggICAgKDB4MTA0LzQpCi0jZGVmaW5lIEhETENEX0xJTkVDT1VOVCAgICAgKDB4MTA4 LzQpCi0jZGVmaW5lIEhETENEX0xJTkVQSVRDSCAgICAgKDB4MTBDLzQpCi0jZGVmaW5lIEhETENE X0JVUyAgICAgICAgICAgKDB4MTEwLzQpCi0jZGVmaW5lIEhETENEX1ZTWU5DICAgICAgICAgKDB4 MjAwLzQpCi0jZGVmaW5lIEhETENEX1ZCQUNLICAgICAgICAgKDB4MjA0LzQpCi0jZGVmaW5lIEhE TENEX1ZEQVRBICAgICAgICAgKDB4MjA4LzQpCi0jZGVmaW5lIEhETENEX1ZGUk9OVCAgICAgICAg KDB4MjBDLzQpCi0jZGVmaW5lIEhETENEX0hTWU5DICAgICAgICAgKDB4MjEwLzQpCi0jZGVmaW5l IEhETENEX0hCQUNLICAgICAgICAgKDB4MjE0LzQpCi0jZGVmaW5lIEhETENEX0hEQVRBICAgICAg ICAgKDB4MjE4LzQpCi0jZGVmaW5lIEhETENEX0hGUk9OVCAgICAgICAgKDB4MjFDLzQpCi0jZGVm aW5lIEhETENEX1BPTEFSSVRJRVMgICAgKDB4MjIwLzQpCi0jZGVmaW5lIEhETENEX0NPTU1BTkQg ICAgICAgKDB4MjMwLzQpCi0jZGVmaW5lIEhETENEX1BGICAgICAgICAgICAgKDB4MjQwLzQpCi0j ZGVmaW5lIEhETENEX1JFRCAgICAgICAgICAgKDB4MjQ0LzQpCi0jZGVmaW5lIEhETENEX0dSRUVO ICAgICAgICAgKDB4MjQ4LzQpCi0jZGVmaW5lIEhETENEX0JMVUUgICAgICAgICAgKDB4MjRDLzQp Ci0KLXN0cnVjdCBjb2xvcl9tYXNrcyB7Ci0gICAgaW50IHJlZF9zaGlmdDsKLSAgICBpbnQgcmVk X3NpemU7Ci0gICAgaW50IGdyZWVuX3NoaWZ0OwotICAgIGludCBncmVlbl9zaXplOwotICAgIGlu dCBibHVlX3NoaWZ0OwotICAgIGludCBibHVlX3NpemU7Ci19OwotCi1zdHJ1Y3QgcGl4ZWxfY29s b3JzIHsKLSAgICBjb25zdCBjaGFyKiBicHA7Ci0gICAgc3RydWN0IGNvbG9yX21hc2tzIGNvbG9y czsKLX07Ci0KLXN0cnVjdCBwaXhlbF9jb2xvcnMgX19pbml0ZGF0YSBjb2xvcnNbXSA9IHsKLSAg ICB7ICIxNiIsIHsgMCwgNSwgMTEsIDUsIDYsIDUgfSB9LAotICAgIHsgIjI0IiwgeyAwLCA4LCAx NiwgOCwgOCwgOCB9IH0sCi0gICAgeyAiMzIiLCB7IDAsIDgsIDE2LCA4LCA4LCA4IH0gfSwKLX07 Ci0KLXN0YXRpYyB2b2lkIHZnYV9ub29wX3B1dHMoY29uc3QgY2hhciAqcykge30KLXZvaWQgKCp2 aWRlb19wdXRzKShjb25zdCBjaGFyICopID0gdmdhX25vb3BfcHV0czsKLQotc3RhdGljIHZvaWQg aGRsY2RfZmx1c2godm9pZCkKLXsKLSAgICBkc2Ioc3kpOwotfQotCi1zdGF0aWMgaW50IF9faW5p dCBnZXRfY29sb3JfbWFza3MoY29uc3QgY2hhciogYnBwLCBzdHJ1Y3QgY29sb3JfbWFza3MgKipt YXNrcykKLXsKLSAgICBpbnQgaTsKLSAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZX1NJWkUoY29s b3JzKTsgaSsrICkKLSAgICB7Ci0gICAgICAgIGlmICggIXN0cm5jbXAoY29sb3JzW2ldLmJwcCwg YnBwLCAyKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgICptYXNrcyA9ICZjb2xvcnNbaV0uY29s b3JzOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJu IC0xOwotfQotCi1zdGF0aWMgdm9pZCBfX2luaXQgc2V0X3BpeGNsb2NrKHVpbnQzMl90IHBpeGNs b2NrKQotewotICAgIGlmICggZHRfZmluZF9jb21wYXRpYmxlX25vZGUoTlVMTCwgTlVMTCwgImFy bSx2ZXhwcmVzcyIpICkKLSAgICAgICAgICAgIHZleHByZXNzX3N5c2NmZygxLCBWMk1fU1lTX0NG R19PU0NfRlVOQywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBWMk1fU1lTX0NGR19PU0M1 LCAmcGl4Y2xvY2spOwotfQotCi12b2lkIF9faW5pdCB2aWRlb19pbml0KHZvaWQpCi17Ci0gICAg c3RydWN0IGxmYl9wcm9wIGxmYnA7Ci0gICAgdW5zaWduZWQgY2hhciAqbGZiOwotICAgIHBhZGRy X3QgaGRsY2Rfc3RhcnQsIGhkbGNkX3NpemU7Ci0gICAgcGFkZHJfdCBmcmFtZWJ1ZmZlcl9zdGFy dCwgZnJhbWVidWZmZXJfc2l6ZTsKLSAgICBjb25zdCBjaGFyICptb2RlX3N0cmluZzsKLSAgICBj aGFyIF9tb2RlX3N0cmluZ1sxNl07Ci0gICAgaW50IGJ5dGVzX3Blcl9waXhlbCA9IDQ7Ci0gICAg c3RydWN0IGNvbG9yX21hc2tzICpjID0gTlVMTDsKLSAgICBzdHJ1Y3QgbW9kZWxpbmUgKnZpZGVv bW9kZSA9IE5VTEw7Ci0gICAgaW50IGk7Ci0gICAgY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2Rl ICpkZXY7Ci0gICAgY29uc3QgX19iZTMyICpjZWxsczsKLSAgICB1MzIgbGVucDsKLSAgICBpbnQg cmVzOwotCi0gICAgZGV2ID0gZHRfZmluZF9jb21wYXRpYmxlX25vZGUoTlVMTCwgTlVMTCwgImFy bSxoZGxjZCIpOwotCi0gICAgaWYgKCAhZGV2ICkKLSAgICB7Ci0gICAgICAgIHByaW50aygiSERM Q0Q6IENhbm5vdCBmaW5kIG5vZGUgY29tcGF0aWJsZSB3aXRoIFwiYXJtLGhkY2xkXCJcbiIpOwot ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcmVzID0gZHRfZGV2aWNlX2dldF9hZGRyZXNz KGRldiwgMCwgJmhkbGNkX3N0YXJ0LCAmaGRsY2Rfc2l6ZSk7Ci0gICAgaWYgKCAhcmVzICkKLSAg ICB7Ci0gICAgICAgIHByaW50aygiSERMQ0Q6IFVuYWJsZSB0byByZXRyaWV2ZSBNTUlPIGJhc2Ug YWRkcmVzc1xuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjZWxscyA9IGR0X2dl dF9wcm9wZXJ0eShkZXYsICJmcmFtZWJ1ZmZlciIsICZsZW5wKTsKLSAgICBpZiAoICFjZWxscyAp Ci0gICAgewotICAgICAgICBwcmludGsoIkhETENEOiBVbmFibGUgdG8gcmV0cmlldmUgZnJhbWVi dWZmZXIgcHJvcGVydHlcbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZnJhbWVi dWZmZXJfc3RhcnQgPSBkdF9uZXh0X2NlbGwoZHRfbl9hZGRyX2NlbGxzKGRldiksICZjZWxscyk7 Ci0gICAgZnJhbWVidWZmZXJfc2l6ZSA9IGR0X25leHRfY2VsbChkdF9uX3NpemVfY2VsbHMoZGV2 KSwgJmNlbGxzKTsKLQotICAgIGlmICggIWhkbGNkX3N0YXJ0ICkKLSAgICB7Ci0gICAgICAgIHBy aW50ayhLRVJOX0VSUiAiSERMQ0Q6IGFkZHJlc3MgbWlzc2luZyBmcm9tIGRldmljZSB0cmVlLCBk aXNhYmxpbmcgZHJpdmVyXG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICgg IWZyYW1lYnVmZmVyX3N0YXJ0ICkKLSAgICB7Ci0gICAgICAgIHByaW50ayhLRVJOX0VSUiAiSERM Q0Q6IGZyYW1lYnVmZmVyIGFkZHJlc3MgbWlzc2luZyBmcm9tIGRldmljZSB0cmVlLCBkaXNhYmxp bmcgZHJpdmVyXG4iKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHJlcyA9IGR0X3By b3BlcnR5X3JlYWRfc3RyaW5nKGRldiwgIm1vZGUiLCAmbW9kZV9zdHJpbmcpOwotICAgIGlmICgg cmVzICkKLSAgICB7Ci0gICAgICAgIGdldF9jb2xvcl9tYXNrcygiMzIiLCAmYyk7Ci0gICAgICAg IG1lbWNweShfbW9kZV9zdHJpbmcsICIxMjgweDEwMjRANjAiLCBzdHJsZW4oIjEyODB4MTAyNEA2 MCIpICsgMSk7Ci0gICAgICAgIGJ5dGVzX3Blcl9waXhlbCA9IDQ7Ci0gICAgfQotICAgIGVsc2Ug aWYgKCBzdHJsZW4obW9kZV9zdHJpbmcpIDwgc3RybGVuKCI4MDB4NjAwQDYwIikgfHwKLSAgICAg ICAgICAgIHN0cmxlbihtb2RlX3N0cmluZykgPiBzaXplb2YoX21vZGVfc3RyaW5nKSAtIDEgKQot ICAgIHsKLSAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJIRExDRDogaW52YWxpZCBtb2RlbGluZT0l c1xuIiwgbW9kZV9zdHJpbmcpOwotICAgICAgICByZXR1cm47Ci0gICAgfSBlbHNlIHsKLSAgICAg ICAgY2hhciAqcyA9IHN0cmNocihtb2RlX3N0cmluZywgJy0nKTsKLSAgICAgICAgaWYgKCAhcyAp Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8gIkhETENEOiBicHAgbm90 IGZvdW5kIGluIG1vZGVsaW5lICVzLCBhc3N1bWUgMzIgYnBwXG4iLAotICAgICAgICAgICAgICAg ICAgICAgICAgIG1vZGVfc3RyaW5nKTsKLSAgICAgICAgICAgIGdldF9jb2xvcl9tYXNrcygiMzIi LCAmYyk7Ci0gICAgICAgICAgICBtZW1jcHkoX21vZGVfc3RyaW5nLCBtb2RlX3N0cmluZywgc3Ry bGVuKG1vZGVfc3RyaW5nKSArIDEpOwotICAgICAgICAgICAgYnl0ZXNfcGVyX3BpeGVsID0gNDsK LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmICggc3RybGVuKHMpIDwgNiApCi0gICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJIRExDRDogaW52YWxp ZCBtb2RlICVzXG4iLCBtb2RlX3N0cmluZyk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg ICAgICAgICAgfQotICAgICAgICAgICAgcysrOwotICAgICAgICAgICAgaWYgKCBnZXRfY29sb3Jf bWFza3MocywgJmMpIDwgMCApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRr KEtFUk5fV0FSTklORyAiSERMQ0Q6IHVuc3VwcG9ydGVkIGJwcCAlc1xuIiwgcyk7Ci0gICAgICAg ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnl0ZXNfcGVyX3Bp eGVsID0gc2ltcGxlX3N0cnRvbGwocywgTlVMTCwgMTApIC8gODsKLSAgICAgICAgfQotICAgICAg ICBpID0gcyAtIG1vZGVfc3RyaW5nIC0gMTsKLSAgICAgICAgbWVtY3B5KF9tb2RlX3N0cmluZywg bW9kZV9zdHJpbmcsIGkpOwotICAgICAgICBtZW1jcHkoX21vZGVfc3RyaW5nICsgaSwgbW9kZV9z dHJpbmcgKyBpICsgMywgNCk7Ci0gICAgfQotCi0gICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9T SVpFKHZpZGVvbW9kZXMpOyBpKysgKSB7Ci0gICAgICAgIGlmICggIXN0cmNtcChfbW9kZV9zdHJp bmcsIHZpZGVvbW9kZXNbaV0ubW9kZSkgKQotICAgICAgICB7Ci0gICAgICAgICAgICB2aWRlb21v ZGUgPSAmdmlkZW9tb2Rlc1tpXTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg fQotICAgIGlmICggIXZpZGVvbW9kZSApCi0gICAgewotICAgICAgICBwcmludGsoS0VSTl9XQVJO SU5HICJIRExDRDogdW5zdXBwb3J0ZWQgdmlkZW9tb2RlICVzXG4iLAotICAgICAgICAgICAgICAg X21vZGVfc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICggZnJhbWVi dWZmZXJfc2l6ZSA8IGJ5dGVzX3Blcl9waXhlbCAqIHZpZGVvbW9kZS0+eHJlcyAqIHZpZGVvbW9k ZS0+eXJlcyApCi0gICAgewotICAgICAgICBwcmludGsoS0VSTl9FUlIgIkhETENEOiB0aGUgZnJh bWVidWZmZXIgaXMgdG9vIHNtYWxsLCBkaXNhYmxpbmcgdGhlIEhETENEIGRyaXZlclxuIik7Ci0g ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwcmludGsoS0VSTl9JTkZPICJJbml0aWFsaXpp bmcgSERMQ0QgZHJpdmVyXG4iKTsKLQotICAgIGxmYiA9IGlvcmVtYXBfd2MoZnJhbWVidWZmZXJf c3RhcnQsIGZyYW1lYnVmZmVyX3NpemUpOwotICAgIGlmICggIWxmYiApCi0gICAgewotICAgICAg ICBwcmludGsoS0VSTl9FUlIgIkNvdWxkbid0IG1hcCB0aGUgZnJhbWVidWZmZXJcbiIpOwotICAg ICAgICByZXR1cm47Ci0gICAgfQotICAgIG1lbXNldChsZmIsIDB4MDAsIGJ5dGVzX3Blcl9waXhl bCAqIHZpZGVvbW9kZS0+eHJlcyAqIHZpZGVvbW9kZS0+eXJlcyk7Ci0KLSAgICAvKiB1c2VzIEZJ WE1BUF9NSVNDICovCi0gICAgc2V0X3BpeGNsb2NrKHZpZGVvbW9kZS0+cGl4Y2xvY2spOwotCi0g ICAgc2V0X2ZpeG1hcChGSVhNQVBfTUlTQywgbWFkZHJfdG9fbWZuKGhkbGNkX3N0YXJ0KSwgUEFH RV9IWVBFUlZJU09SX05PQ0FDSEUpOwotICAgIEhETENEW0hETENEX0NPTU1BTkRdID0gMDsKLQot ICAgIEhETENEW0hETENEX0xJTkVMRU5HVEhdID0gdmlkZW9tb2RlLT54cmVzICogYnl0ZXNfcGVy X3BpeGVsOwotICAgIEhETENEW0hETENEX0xJTkVDT1VOVF0gPSB2aWRlb21vZGUtPnlyZXMgLSAx OwotICAgIEhETENEW0hETENEX0xJTkVQSVRDSF0gPSB2aWRlb21vZGUtPnhyZXMgKiBieXRlc19w ZXJfcGl4ZWw7Ci0gICAgSERMQ0RbSERMQ0RfUEZdID0gKChieXRlc19wZXJfcGl4ZWwgLSAxKSA8 PCAzKTsKLSAgICBIRExDRFtIRExDRF9JTlRNQVNLXSA9IDA7Ci0gICAgSERMQ0RbSERMQ0RfRkJC QVNFXSA9IGZyYW1lYnVmZmVyX3N0YXJ0OwotICAgIEhETENEW0hETENEX0JVU10gPSAweGYwMCB8 ICgxIDw8IDQpOwotICAgIEhETENEW0hETENEX1ZCQUNLXSA9IHZpZGVvbW9kZS0+dmJhY2sgLSAx OwotICAgIEhETENEW0hETENEX1ZTWU5DXSA9IHZpZGVvbW9kZS0+dnN5bmMgLSAxOwotICAgIEhE TENEW0hETENEX1ZEQVRBXSA9IHZpZGVvbW9kZS0+eXJlcyAtIDE7Ci0gICAgSERMQ0RbSERMQ0Rf VkZST05UXSA9IHZpZGVvbW9kZS0+dmZyb250IC0gMTsKLSAgICBIRExDRFtIRExDRF9IQkFDS10g PSB2aWRlb21vZGUtPmhiYWNrIC0gMTsKLSAgICBIRExDRFtIRExDRF9IU1lOQ10gPSB2aWRlb21v ZGUtPmhzeW5jIC0gMTsKLSAgICBIRExDRFtIRExDRF9IREFUQV0gPSB2aWRlb21vZGUtPnhyZXMg LSAxOwotICAgIEhETENEW0hETENEX0hGUk9OVF0gPSB2aWRlb21vZGUtPmhmcm9udCAtIDE7Ci0g ICAgSERMQ0RbSERMQ0RfUE9MQVJJVElFU10gPSAoMSA8PCAyKSB8ICgxIDw8IDMpOwotICAgIEhE TENEW0hETENEX1JFRF0gPSAoYy0+cmVkX3NpemUgPDwgOCkgfCBjLT5yZWRfc2hpZnQ7Ci0gICAg SERMQ0RbSERMQ0RfR1JFRU5dID0gKGMtPmdyZWVuX3NpemUgPDwgOCkgfCBjLT5ncmVlbl9zaGlm dDsKLSAgICBIRExDRFtIRExDRF9CTFVFXSA9IChjLT5ibHVlX3NpemUgPDwgOCkgfCBjLT5ibHVl X3NoaWZ0OwotICAgIEhETENEW0hETENEX0NPTU1BTkRdID0gMTsKLSAgICBjbGVhcl9maXhtYXAo RklYTUFQX01JU0MpOwotCi0gICAgbGZicC5waXhlbF9vbiA9ICgoKDEgPDwgYy0+cmVkX3NpemUp IC0gMSkgPDwgYy0+cmVkX3NoaWZ0KSB8Ci0gICAgICAgICgoKDEgPDwgYy0+Z3JlZW5fc2l6ZSkg LSAxKSA8PCBjLT5ncmVlbl9zaGlmdCkgfAotICAgICAgICAoKCgxIDw8IGMtPmJsdWVfc2l6ZSkg LSAxKSA8PCBjLT5ibHVlX3NoaWZ0KTsKLSAgICBsZmJwLmxmYiA9IGxmYjsKLSAgICBsZmJwLmZv bnQgPSAmZm9udF92Z2FfOHgxNjsKLSAgICBsZmJwLmJpdHNfcGVyX3BpeGVsID0gYnl0ZXNfcGVy X3BpeGVsKjg7Ci0gICAgbGZicC5ieXRlc19wZXJfbGluZSA9IGJ5dGVzX3Blcl9waXhlbCp2aWRl b21vZGUtPnhyZXM7Ci0gICAgbGZicC53aWR0aCA9IHZpZGVvbW9kZS0+eHJlczsKLSAgICBsZmJw LmhlaWdodCA9IHZpZGVvbW9kZS0+eXJlczsKLSAgICBsZmJwLmZsdXNoID0gaGRsY2RfZmx1c2g7 Ci0gICAgbGZicC50ZXh0X2NvbHVtbnMgPSB2aWRlb21vZGUtPnhyZXMgLyA4OwotICAgIGxmYnAu dGV4dF9yb3dzID0gdmlkZW9tb2RlLT55cmVzIC8gMTY7Ci0gICAgaWYgKCBsZmJfaW5pdCgmbGZi cCkgPCAwICkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB2aWRlb19wdXRzID0gbGZiX3Njcm9s bF9wdXRzOwotfQotCi12b2lkIF9faW5pdCB2aWRlb19lbmRib290KHZvaWQpIHsgfQotCi0vKgot ICogTG9jYWwgdmFyaWFibGVzOgotICogbW9kZTogQwotICogYy1maWxlLXN0eWxlOiAiQlNEIgot ICogYy1iYXNpYy1vZmZzZXQ6IDQKLSAqIGluZGVudC10YWJzLW1vZGU6IG5pbAotICogRW5kOgot ICovCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=