From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v2 05/22] mini-os: add boot code for HVMlite support Date: Wed, 24 Aug 2016 12:11:27 +0200 Message-ID: <1472033504-23180-6-git-send-email-jgross@suse.com> References: <1472033504-23180-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1472033504-23180-1-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org Cc: Juergen Gross , samuel.thibault@ens-lyon.org, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org QSBIVk1saXRlIGRvbWFpbiBpcyBhbHdheXMgc3RhcnRpbmcgaW4gMzIgYml0IG1vZGUuIEFkZCB0 aGUgYXBwcm9wcmlhdGUKYm9vdCBjb2RlIHRvIGFyY2gveDg2IGZvciB0aGUgbm9uLXBhcmF2aXJ0 dWFsaXplZCBjYXNlLgoKRm9yIHRoaXMgYm9vdCBjb2RlIHRvIGJlY29tZSBhY3RpdmUgd2UgbmVl ZCB0byBzdXBwcmVzcyB0aGUgcHYgcmVsYXRlZAplbGZub3RlcyBhbmQgYWRkIGFuIGFwcHJvcHJp YXRlIGVsZm5vdGUgZm9yIEhWTWxpdGUuCgpBcyB0aGUgSFZNbGl0ZSBib290IGNvZGUgaXMgbW9y ZSBvciBsZXNzIHRoZSBzYW1lIGZvciAzMi0gYW5kIDY0LWJpdApNaW5pLU9TICNpbmNsdWRlIHRo ZSBuZXcgY29kZSBmcm9tIHg4Nl9bMzJ8NjRdLlMgaW4gb3JkZXIgdG8gYXZvaWQKZXJyb3IgcHJv bmUgY29kZSBkdXBsaWNhdGlvbi4gVGhlIHNwZWNpZmljIHBhcnRzIG9mIDMyLSBvciA2NC1iaXQg Y29kZQphcmUgYWRkZWQgdG8geDg2X1szMnw2NF0uUwoKVGhpcyBlbmFibGVzIE1pbmktT1MgdG8g c3RhcnQgdGhlIGJvb3QgcHJvY2VzcyBpbiBIVk1saXRlIG1vZGUgdW50aWwgaXQKZW50ZXJzIEMg Y29kZS4gVGhpcyBpcyB3b3JraW5nIGZvciAzMi0gYW5kIGZvciA2NC1iaXQgbW9kZS4KClNpZ25l ZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KLS0tClYyOiBhZGQgc29t ZSBjb21tZW50cyBhcyByZXF1ZXN0ZWQgYnkgU2FtdWVsIFRoaWJhdWx0Ci0tLQogTWFrZWZpbGUg ICAgICAgICAgIHwgICAyICstCiBhcmNoL3g4Ni9hcmNoLm1rICAgfCAgIDQgKwogYXJjaC94ODYv bW0uYyAgICAgIHwgIDMxICsrKysrCiBhcmNoL3g4Ni9zZXR1cC5jICAgfCAgIDQgKy0KIGFyY2gv eDg2L3g4Nl8zMi5TICB8ICAzMSArKysrLQogYXJjaC94ODYveDg2XzY0LlMgIHwgIDM1ICsrKyst CiBhcmNoL3g4Ni94ODZfaHZtLlMgfCAgODggKysrKysrKysrKysrKwogaW5jbHVkZS9jb21waWxl ci5oIHwgICAxICsKIGluY2x1ZGUveDg2L2Rlc2MuaCB8IDM2NyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS94ODYvb3MuaCAgIHwg ICA1ICsKIG1pbmlvcy5tayAgICAgICAgICB8ICAgMiArLQogMTEgZmlsZXMgY2hhbmdlZCwgNTU2 IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGFyY2gv eDg2L3g4Nl9odm0uUwogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUveDg2L2Rlc2MuaAoKZGlm ZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNzc5YmM5MS4uYjc4MzY4NCAxMDA2 NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTI0LDcgKzI0LDcgQEAgaW5jbHVk ZSBtaW5pb3MubWsKIExETElCUyA6PSAKIEFQUF9MRExJQlMgOj0gCiBMREFSQ0hMSUIgOj0gLUwk KE9CSl9ESVIpLyQoVEFSR0VUX0FSQ0hfRElSKSAtbCQoQVJDSF9MSUJfTkFNRSkKLUxERkxBR1Nf RklOQUwgOj0gLVQgJChUQVJHRVRfQVJDSF9ESVIpL21pbmlvcy0kKE1JTklPU19UQVJHRVRfQVJD SCkubGRzCitMREZMQUdTX0ZJTkFMIDo9IC1UICQoVEFSR0VUX0FSQ0hfRElSKS9taW5pb3MtJChN SU5JT1NfVEFSR0VUX0FSQ0gpLmxkcyAkKEFSQ0hfTERGTEFHU19GSU5BTCkKIAogIyBQcmVmaXgg Zm9yIGdsb2JhbCBBUEkgbmFtZXMuIEFsbCBvdGhlciBzeW1ib2xzIGFyZSBsb2NhbGlzZWQgYmVm b3JlCiAjIGxpbmtpbmcgd2l0aCBFWFRSQV9PQkpTLgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvYXJj aC5tayBiL2FyY2gveDg2L2FyY2gubWsKaW5kZXggODFlODExOC4uNjczYTE5ZCAxMDA2NDQKLS0t IGEvYXJjaC94ODYvYXJjaC5taworKysgYi9hcmNoL3g4Ni9hcmNoLm1rCkBAIC0yMCwzICsyMCw3 IEBAIEVYVFJBX0lOQyArPSAkKFRBUkdFVF9BUkNIX0ZBTSkvJChNSU5JT1NfVEFSR0VUX0FSQ0gp CiBFWFRSQV9TUkMgKz0gYXJjaC8kKEVYVFJBX0lOQykKIGVuZGlmCiAKK2lmZXEgKCQoQ09ORklH X1BBUkFWSVJUKSxuKQorQVJDSF9MREZMQUdTX0ZJTkFMIDo9IC0tb2Zvcm1hdD1lbGYzMi1pMzg2 CitBUkNIX0FTX0RFUFMgKz0geDg2X2h2bS5TCitlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv bW0uYyBiL2FyY2gveDg2L21tLmMKaW5kZXggODhhOTI4ZC4uZmUxOGY1MyAxMDA2NDQKLS0tIGEv YXJjaC94ODYvbW0uYworKysgYi9hcmNoL3g4Ni9tbS5jCkBAIC01Niw2ICs1NiwzNyBAQCB1bnNp Z25lZCBsb25nIG1mbl96ZXJvOwogZXh0ZXJuIGNoYXIgc3RhY2tbXTsKIGV4dGVybiB2b2lkIHBh Z2Vfd2Fsayh1bnNpZ25lZCBsb25nIHZhKTsKIAorI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKKyNp bmNsdWRlIDxtaW5pLW9zL2Rlc2MuaD4KK3VzZXJfZGVzYyBnZHRbTlJfR0RUX0VOVFJJRVNdID0K K3sKKyAgICBbR0RURV9DUzY0X0RQTDBdID0gSU5JVF9HRFRFX1NZTSgwLCAweGZmZmZmLCBDT01N T04sIENPREUsIERQTDAsIFIsIEwpLAorICAgIFtHRFRFX0NTMzJfRFBMMF0gPSBJTklUX0dEVEVf U1lNKDAsIDB4ZmZmZmYsIENPTU1PTiwgQ09ERSwgRFBMMCwgUiwgRCksCisgICAgW0dEVEVfRFMz Ml9EUEwwXSA9IElOSVRfR0RURV9TWU0oMCwgMHhmZmZmZiwgQ09NTU9OLCBEQVRBLCBEUEwwLCBC LCBXKSwKKworICAgIFtHRFRFX0NTNjRfRFBMM10gPSBJTklUX0dEVEVfU1lNKDAsIDB4ZmZmZmYs IENPTU1PTiwgQ09ERSwgRFBMMywgUiwgTCksCisgICAgW0dEVEVfQ1MzMl9EUEwzXSA9IElOSVRf R0RURV9TWU0oMCwgMHhmZmZmZiwgQ09NTU9OLCBDT0RFLCBEUEwzLCBSLCBEKSwKKyAgICBbR0RU RV9EUzMyX0RQTDNdID0gSU5JVF9HRFRFX1NZTSgwLCAweGZmZmZmLCBDT01NT04sIERBVEEsIERQ TDMsIEIsIFcpLAorCisgICAgLyogW0dEVEVfVFNTXSAgICAgKi8KKyAgICAvKiBbR0RURV9UU1Mg KyAxXSAqLworfTsKKworZGVzY19wdHIgZ2R0X3B0ciA9Cit7CisgICAgLmxpbWl0ID0gc2l6ZW9m KGdkdCkgLSAxLAorICAgIC5iYXNlID0gKHVuc2lnbmVkIGxvbmcpJmdkdCwKK307CisKK2dhdGVf ZGVzYyBpZHRbMjU2XSA9IHsgfTsKKworZGVzY19wdHIgaWR0X3B0ciA9Cit7CisgICAgLmxpbWl0 ID0gc2l6ZW9mKGlkdCkgLSAxLAorICAgIC5iYXNlID0gKHVuc2lnbmVkIGxvbmcpJmlkdCwKK307 CisjZW5kaWYKKwogLyoKICAqIE1ha2UgcHRfcGZuIGEgbmV3ICdsZXZlbCcgcGFnZSB0YWJsZSBm cmFtZSBhbmQgaG9vayBpdCBpbnRvIHRoZSBwYWdlCiAgKiB0YWJsZSBhdCBvZmZzZXQgaW4gcHJl dmlvdXMgbGV2ZWwgTUZOIChwcmVmX2xfbWZuKS4gcHRfcGZuIGlzIGEgZ3Vlc3QKZGlmZiAtLWdp dCBhL2FyY2gveDg2L3NldHVwLmMgYi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4IDVlODdkZDEuLjMw YTkxNDMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3NldHVwLmMKKysrIGIvYXJjaC94ODYvc2V0dXAu YwpAQCAtOTQsOSArOTQsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHNzZV9pbml0KHZvaWQpIHsK ICAqIElOSVRJQUwgQyBFTlRSWSBQT0lOVC4KICAqLwogdm9pZAotYXJjaF9pbml0KHN0YXJ0X2lu Zm9fdCAqc2kpCithcmNoX2luaXQodm9pZCAqcGFyKQogewogCXN0YXRpYyBjaGFyIGhlbGxvW10g PSAiQm9vdHN0cmFwcGluZy4uLlxuIjsKKwlzdGFydF9pbmZvX3QgKnNpOwogCiAJKHZvaWQpSFlQ RVJWSVNPUl9jb25zb2xlX2lvKENPTlNPTEVJT193cml0ZSwgc3RybGVuKGhlbGxvKSwgaGVsbG8p OwogCkBAIC0xMTEsNiArMTEyLDcgQEAgYXJjaF9pbml0KHN0YXJ0X2luZm9fdCAqc2kpCiAJLyog Q29weSB0aGUgc3RhcnRfaW5mbyBzdHJ1Y3QgdG8gYSBnbG9iYWxseS1hY2Nlc3NpYmxlIGFyZWEu ICovCiAJLyogV0FSTjogZG9uJ3QgZG8gcHJpbnRrIGJlZm9yZSBoZXJlLCBpdCB1c2VzIGluZm9y bWF0aW9uIGZyb20KIAkgICBzaGFyZWRfaW5mby4gVXNlIHhwcmludGsgaW5zdGVhZC4gKi8KKwlz aSA9IHBhcjsKIAltZW1jcHkoJnN0YXJ0X2luZm8sIHNpLCBzaXplb2YoKnNpKSk7CiAKIAkvKiBw cmludCBvdXQgc29tZSB1c2VmdWwgaW5mb3JtYXRpb24gICovCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni94ODZfMzIuUyBiL2FyY2gveDg2L3g4Nl8zMi5TCmluZGV4IDZkYzk4NWEuLjZmMzg3MDggMTAw NjQ0Ci0tLSBhL2FyY2gveDg2L3g4Nl8zMi5TCisrKyBiL2FyY2gveDg2L3g4Nl8zMi5TCkBAIC0x LDIwICsxLDMxIEBACiAjaW5jbHVkZSA8bWluaS1vcy9vcy5oPgogI2luY2x1ZGUgPG1pbmktb3Mv eDg2L2FyY2hfbGltaXRzLmg+CiAjaW5jbHVkZSA8bWluaS1vcy9hc21fbWFjcm9zLmg+CisjaW5j bHVkZSA8bWluaS1vcy9hcmNoX21tLmg+CisjaW5jbHVkZSA8bWluaS1vcy9kZXNjLmg+CisjaW5j bHVkZSA8eGVuL2FyY2gteDg2XzMyLmg+CiAjaW5jbHVkZSA8eGVuL2VsZm5vdGUuaD4KICNpbmNs dWRlIDx4ZW4vYXJjaC14ODZfMzIuaD4KIAorI2lmZGVmIENPTkZJR19QQVJBVklSVAogRUxGTk9U RShYZW4sIFhFTl9FTEZOT1RFX0dVRVNUX09TLCAuYXNjaXogIk1pbmktT1MiKQogRUxGTk9URShY ZW4sIFhFTl9FTEZOT1RFX0xPQURFUiwgLmFzY2l6ICJnZW5lcmljIikKIEVMRk5PVEUoWGVuLCBY RU5fRUxGTk9URV9IWVBFUkNBTExfUEFHRSwgX1dPUkQgaHlwZXJjYWxsX3BhZ2UpCiBFTEZOT1RF KFhlbiwgWEVOX0VMRk5PVEVfWEVOX1ZFUlNJT04sIC5hc2NpeiAieGVuLTMuMCIpCiBFTEZOT1RF KFhlbiwgWEVOX0VMRk5PVEVfUEFFX01PREUsIC5hc2NpeiAieWVzIikKKy50ZXh0CiAKLS5nbG9i bCBfc3RhcnQsIHNoYXJlZF9pbmZvLCBoeXBlcmNhbGxfcGFnZQorLmdsb2JsIF9zdGFydAogICAg ICAgICAgICAgICAgICAgICAgICAgCiBfc3RhcnQ6Ci0gICAgICAgIGNsZAogICAgICAgICBsc3Mg c3RhY2tfc3RhcnQsJWVzcAorI2Vsc2UKKworI2luY2x1ZGUgIng4Nl9odm0uUyIKKyAgICAgICAg bW92bCBzdGFja19zdGFydCwlZXNwCisKKyNlbmRpZgorICAgICAgICBjbGQKICAgICAgICAgYW5k bCAkKH4oX19TVEFDS19TSVpFLTEpKSwgJWVzcAogICAgICAgICBwdXNoICVlc2kgCiAgICAgICAg IGNhbGwgYXJjaF9pbml0CkBAIC0yMiwxNCArMzMsMTUgQEAgX3N0YXJ0Ogogc3RhY2tfc3RhcnQ6 CiAJLmxvbmcgc3RhY2srKDIqX19TVEFDS19TSVpFKSwgX19LRVJORUxfU1MKIAorLmdsb2JsIHNo YXJlZF9pbmZvLCBoeXBlcmNhbGxfcGFnZQogICAgICAgICAvKiBVbnBsZWFzYW50IC0tIHRoZSBQ VEUgdGhhdCBtYXBzIHRoaXMgcGFnZSBpcyBhY3R1YWxseSBvdmVyd3JpdHRlbiAqLwogICAgICAg ICAvKiB0byBtYXAgdGhlIHJlYWwgc2hhcmVkLWluZm8gcGFnZSEgOi0pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLwotICAgICAgICAub3JnIDB4MTAwMAorICAgICAgICAuYWxpZ24gX19Q QUdFX1NJWkUKIHNoYXJlZF9pbmZvOgotICAgICAgICAub3JnIDB4MjAwMAorICAgICAgICAuZmls bCBfX1BBR0VfU0laRSwxLDAKIAogaHlwZXJjYWxsX3BhZ2U6Ci0gICAgICAgIC5vcmcgMHgzMDAw CisgICAgICAgIC5maWxsIF9fUEFHRV9TSVpFLDEsMAogCiBFUwkJPSAweDIwCiBPUklHX0VBWAk9 IDB4MjQKQEAgLTMwMCwzICszMTIsMTIgQEAgRU5UUlkoX19hcmNoX3N3aXRjaF90aHJlYWRzKQog ICAgIHBvcGwgJWVieAogICAgIHBvcGwgJWVicAogICAgIHJldAorCisjaWZuZGVmIENPTkZJR19Q QVJBVklSVAorLmRhdGEKKy5nbG9ibCBwYWdlX3RhYmxlX2Jhc2UKKyAgICAgICAgLmFsaWduIF9f UEFHRV9TSVpFCitwYWdlX3RhYmxlX2Jhc2U6CisgICAgICAgIFBURShwYWdlX3RhYmxlX2wyICsg TDNfUFJPVCkKKyAgICAgICAgLmFsaWduIF9fUEFHRV9TSVpFLCAwCisjZW5kaWYKZGlmZiAtLWdp dCBhL2FyY2gveDg2L3g4Nl82NC5TIGIvYXJjaC94ODYveDg2XzY0LlMKaW5kZXggOGVkNDUyZi4u MzczZjQwMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYveDg2XzY0LlMKKysrIGIvYXJjaC94ODYveDg2 XzY0LlMKQEAgLTEsMTkgKzEsMjkgQEAKICNpbmNsdWRlIDxtaW5pLW9zL29zLmg+CiAjaW5jbHVk ZSA8bWluaS1vcy94ODYvYXJjaF9saW1pdHMuaD4KICNpbmNsdWRlIDxtaW5pLW9zL2FzbV9tYWNy b3MuaD4KKyNpbmNsdWRlIDxtaW5pLW9zL2FyY2hfbW0uaD4KKyNpbmNsdWRlIDxtaW5pLW9zL2Rl c2MuaD4KKyNpbmNsdWRlIDx4ZW4vZmVhdHVyZXMuaD4KICNpbmNsdWRlIDx4ZW4vZWxmbm90ZS5o PgogI2luY2x1ZGUgPHhlbi9mZWF0dXJlcy5oPgogCisjZGVmaW5lIEVOVFJZKFgpIC5nbG9ibCBY IDsgWCA6CisKKyNpZmRlZiBDT05GSUdfUEFSQVZJUlQKIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9U RV9HVUVTVF9PUywgLmFzY2l6ICJNaW5pLU9TIikKIEVMRk5PVEUoWGVuLCBYRU5fRUxGTk9URV9M T0FERVIsIC5hc2NpeiAiZ2VuZXJpYyIpCiBFTEZOT1RFKFhlbiwgWEVOX0VMRk5PVEVfSFlQRVJD QUxMX1BBR0UsIF9XT1JEIGh5cGVyY2FsbF9wYWdlKQogRUxGTk9URShYZW4sIFhFTl9FTEZOT1RF X1hFTl9WRVJTSU9OLCAuYXNjaXogInhlbi0zLjAiKQorLnRleHQKIAotI2RlZmluZSBFTlRSWShY KSAuZ2xvYmwgWCA7IFggOgotLmdsb2JsIF9zdGFydCwgc2hhcmVkX2luZm8sIGh5cGVyY2FsbF9w YWdlCi0KKy5nbG9ibCBfc3RhcnQKIAogX3N0YXJ0OgorI2Vsc2UKKworI2luY2x1ZGUgIng4Nl9o dm0uUyIKKworI2VuZGlmCiAgICAgICAgIGNsZAogICAgICAgICBtb3ZxIHN0YWNrX3N0YXJ0KCVy aXApLCVyc3AKICAgICAgICAgYW5kcSAkKH4oX19TVEFDS19TSVpFLTEpKSwgJXJzcApAQCAtMjMs MTQgKzMzLDE1IEBAIF9zdGFydDoKIHN0YWNrX3N0YXJ0OgogICAgICAgICAucXVhZCBzdGFjayso MipfX1NUQUNLX1NJWkUpCiAKKy5nbG9ibCBzaGFyZWRfaW5mbywgaHlwZXJjYWxsX3BhZ2UKICAg ICAgICAgLyogVW5wbGVhc2FudCAtLSB0aGUgUFRFIHRoYXQgbWFwcyB0aGlzIHBhZ2UgaXMgYWN0 dWFsbHkgb3ZlcndyaXR0ZW4gKi8KICAgICAgICAgLyogdG8gbWFwIHRoZSByZWFsIHNoYXJlZC1p bmZvIHBhZ2UhIDotKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgLm9y ZyAweDEwMDAKKyAgICAgICAgLmFsaWduIF9fUEFHRV9TSVpFCiBzaGFyZWRfaW5mbzoKLSAgICAg ICAgLm9yZyAweDIwMDAKKyAgICAgICAgLmZpbGwgX19QQUdFX1NJWkUsMSwwCiAKIGh5cGVyY2Fs bF9wYWdlOgotICAgICAgICAub3JnIDB4MzAwMAorICAgICAgICAuZmlsbCBfX1BBR0VfU0laRSwx LDAKIAogCiAjZGVmaW5lIFhFTl9HRVRfVkNQVV9JTkZPKHJlZykJbW92cSBIWVBFUlZJU09SX3No YXJlZF9pbmZvLHJlZwpAQCAtMzc4LDMgKzM4OSwxNSBAQCBFTlRSWShfX2FyY2hfc3dpdGNoX3Ro cmVhZHMpCiAJcG9wcSAlcmJ4CiAJcG9wcSAlcmJwCiAJcmV0CisKKyNpZm5kZWYgQ09ORklHX1BB UkFWSVJUCisuZGF0YQorLmdsb2JsIHBhZ2VfdGFibGVfYmFzZQorICAgICAgICAuYWxpZ24gX19Q QUdFX1NJWkUKK3BhZ2VfdGFibGVfbDM6CisgICAgICAgIFBURShwYWdlX3RhYmxlX2wyICsgTDNf UFJPVCkKKyAgICAgICAgLmFsaWduIF9fUEFHRV9TSVpFLCAwCitwYWdlX3RhYmxlX2Jhc2U6Cisg ICAgICAgIFBURShwYWdlX3RhYmxlX2wzICsgTDRfUFJPVCkKKyAgICAgICAgLmFsaWduIF9fUEFH RV9TSVpFLCAwCisjZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3g4Nl9odm0uUyBiL2FyY2gv eDg2L3g4Nl9odm0uUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZThhZDk4 Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC94ODYveDg2X2h2bS5TCkBAIC0wLDAgKzEsODggQEAK Ky8qIEluY2x1ZGVkIGJ5IHg4Nl9bMzJ8NjRdLlMgKi8KKworICAgICAgICBFTEZOT1RFKFhlbiwg WEVOX0VMRk5PVEVfUEhZUzMyX0VOVFJZLCAubG9uZyBfc3RhcnQpCisudGV4dAorICAgICAgICAu Y29kZTMyICAgICAgICAgICAgICAgICAvKiBBbHdheXMgc3RhcnRzIGluIDMyYml0IGZsYXQgbW9k ZS4gKi8KKworLmdsb2JsIF9zdGFydAorCitfc3RhcnQ6CisgICAgICAgIG1vdiAkKFg4Nl9DUjRf UEFFIHwgWDg2X0NSNF9PU0ZYU1IpLCAlZWF4CisgICAgICAgIG1vdiAlZWF4LCAlY3I0CisgICAg ICAgIG1vdiAkcGFnZV90YWJsZV9iYXNlLCAlZWF4CisgICAgICAgIG1vdiAlZWF4LCAlY3IzCisK KyNpZmRlZiBfX3g4Nl82NF9fICAgICAgICAgICAgICAgLyogRUZFUi5MTUUgPSAxICovCisgICAg ICAgIG1vdiAkTVNSX0VGRVIsICVlY3gKKyAgICAgICAgcmRtc3IKKyAgICAgICAgYnRzICRfRUZF Ul9MTUUsICVlYXgKKyAgICAgICAgd3Jtc3IKKyNlbmRpZiAvKiBfX3g4Nl82NF9fICovCisKKyAg ICAgICAgbW92ICVjcjAsICVlYXgKKyAgICAgICAgb3IgJFg4Nl9DUjBfUEcsICVlYXgKKyAgICAg ICAgbW92ICVlYXgsICVjcjAKKworICAgICAgICBsZ2R0IGdkdF9wdHIKKworICAgICAgICAvKiBM b2FkIGNvZGUgc2VnbWVudC4gKi8KKyAgICAgICAgbGptcCAkX19LRVJOX0NTLCAkMWYKKyNpZmRl ZiBfX3g4Nl82NF9fCisgICAgICAgIC5jb2RlNjQKKyNlbmRpZgorCisgICAgICAgIC8qIExvYWQg ZGF0YSBzZWdtZW50cy4gKi8KKzE6CisgICAgICAgIG1vdiAkX19VU0VSX0RTLCAlZWF4CisgICAg ICAgIG1vdiAlZWF4LCAlZHMKKyAgICAgICAgbW92ICVlYXgsICVlcworICAgICAgICBtb3YgJWVh eCwgJWZzCisgICAgICAgIG1vdiAlZWF4LCAlZ3MKKyAgICAgICAgbW92ICRfX0tFUk5fRFMsICVl YXgKKyAgICAgICAgbW92ICVlYXgsICVzcworCisgICAgICAgIG1vdiAlZWJ4LCAlZXNpCisKKy5k YXRhCisvKgorICogTWFjcm8gdG8gY3JlYXRlIGEgc2VxdWVuY2Ugb2YgcGFnZSB0YWJsZSBlbnRy aWVzLgorICogQXMgYSBsb29wIGNhbiBiZSBkb25lIHZpYSByZWN1cnNpb24gb25seSBhbmQgdGhl IG5lc3RpbmcgbGV2ZWwgaXMgbGltaXRlZAorICogd2UgdHJlYXQgdGhlIGZpcnN0IDMyIFBURXMg aW4gYSBzcGVjaWFsIHdheSBsaW1pdGluZyBuZXN0aW5nIGxldmVsIHRvIDY0CisgKiBpbiBjYXNl IG9mIGEgY29tcGxldGUgcGFnZSB0YWJsZSAoNTEyIFBURXMpIHRvIGJlIGZpbGxlZC4KKyAqIHBy b3Q6IHByb3RlY3Rpb24gYml0cyBpbiBhbGwgUFRFcworICogYWRkcjogcGh5c2ljYWwgYWRkcmVz cyBvZiB0aGUgYXJlYSB0byBtYXAKKyAqIGluY3I6IGluY3JlbWVudCBvZiBhZGRyZXNzIGZvciBl YWNoIFBURQorICogaWR4OiAgaW5kZXggb2YgZmlyc3QgUFRFIGluIHBhZ2UgdGFibGUKKyAqIGVu ZDogIGluZGV4IG9mIGxhc3QgUFRFIGluIHBhZ2UgdGFibGUgKyAxCisgKi8KKyAgICAgICAgLm1h Y3JvIFBURVMgcHJvdCwgYWRkciwgaW5jciwgaWR4LCBlbmQKKyAgICAgICAgLmlmZ3QgXGVuZC1c aWR4LTMyCisgICAgICAgIFBURVMgXHByb3QsIFxhZGRyLCBcaW5jciwgXGlkeCwgIihcaWR4KzMy KSIKKyAgICAgICAgUFRFUyBccHJvdCwgIihcYWRkciszMipcaW5jcikiLCBcaW5jciwgIihcaWR4 KzMyKSIsIFxlbmQKKyAgICAgICAgLmVsc2UKKyAgICAgICAgUFRFKFxhZGRyICsgXHByb3QpCisg ICAgICAgIC5pZiBcZW5kLVxpZHgtMQorICAgICAgICBQVEVTIFxwcm90LCAiKFxhZGRyK1xpbmNy KSIsIFxpbmNyLCAiKFxpZHgrMSkiLCBcZW5kCisgICAgICAgIC5lbmRpZgorICAgICAgICAuZW5k aWYKKyAgICAgICAgLmVuZG0KKyAgICAgICAgLmFsaWduIF9fUEFHRV9TSVpFCitwYWdlX3RhYmxl X3ZpcnRfbDE6CisgICAgICAgIFBURSgwKQorICAgICAgICAuYWxpZ24gX19QQUdFX1NJWkUsIDAK K3BhZ2VfdGFibGVfbDE6CisgICAgICAgIFBURVMgTDFfUFJPVCwgMHgwMDAwMDAwMCwgMHgwMDAw MTAwMCwgMCwgTDFfUEFHRVRBQkxFX0VOVFJJRVMKKyAgICAgICAgLmFsaWduIF9fUEFHRV9TSVpF LCAwCitwYWdlX3RhYmxlX2wyOgorICAgICAgICAvKiBNYXAgdGhlIGZpcnN0IDFHQiBvZiBtZW1v cnkgKG9uIDMyIGJpdCAxNk1CIGxlc3MpLiAqLworICAgICAgICBQVEUocGFnZV90YWJsZV9sMSAr IEwyX1BST1QpCisjaWZkZWYgX194ODZfNjRfXworICAgICAgICBQVEVTIEwyX1BST1R8X1BBR0Vf UFNFLCAweDAwMjAwMDAwLCAweDAwMjAwMDAwLCAxLCBMMl9QQUdFVEFCTEVfRU5UUklFUworI2Vs c2UKKyAgICAgICAgLyogQXQgM2YwMDAwMDAgdmlydHVhbCBrZXJuZWwgYXJlYSBpcyBzdGFydGlu Zy4gKi8KKyAgICAgICAgUFRFUyBMMl9QUk9UfF9QQUdFX1BTRSwgMHgwMDIwMDAwMCwgMHgwMDIw MDAwMCwgMSwgbDJfdGFibGVfb2Zmc2V0KFZJUlRfS0VSTkVMX0FSRUEpCisgICAgICAgIFBURShw YWdlX3RhYmxlX3ZpcnRfbDEgKyBMMl9QUk9UKQorI2VuZGlmCisgICAgICAgIC5hbGlnbiBfX1BB R0VfU0laRSwgMAorCisudGV4dApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jb21waWxlci5oIGIvaW5j bHVkZS9jb21waWxlci5oCmluZGV4IDQxODgyNzcuLjBjYmFkOTggMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvY29tcGlsZXIuaAorKysgYi9pbmNsdWRlL2NvbXBpbGVyLmgKQEAgLTYsNSArNiw2IEBACiAj ZW5kaWYKICNkZWZpbmUgdW5saWtlbHkoeCkgIF9fYnVpbHRpbl9leHBlY3QoISEoeCksMCkKICNk ZWZpbmUgbGlrZWx5KHgpICAgIF9fYnVpbHRpbl9leHBlY3QoISEoeCksMSkKKyNkZWZpbmUgX19w YWNrZWQgICAgIF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18pKQogCiAjZW5kaWYgLyogX19NSU5J T1NfQ09NUElMRVJfSF8gKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUveDg2L2Rlc2MuaCBiL2luY2x1 ZGUveDg2L2Rlc2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWI5MjFi Ci0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS94ODYvZGVzYy5oCkBAIC0wLDAgKzEsMzY3IEBA CisvKiAtKi0gIE1vZGU6QzsgYy1iYXNpYy1vZmZzZXQ6NDsgdGFiLXdpZHRoOjQgLSotCisgKgor ICogKEMpIDIwMTYgLSBKdWVyZ2VuIEdyb3NzLCBTVVNFIExpbnV4IEdtYkgKKyAqIGJhc2VkIG9u IHNvbWUgaGVhZGVyIGZpbGVzIGZyb20gWGVuIFRlc3QgRnJhbWV3b3JrIGJ5IEFuZHJldyBDb29w ZXIKKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8KKyAqIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKKyAqIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl IGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0 YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAqIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisgKiBERUFMSU5HUyBJTiBU SEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBfREVTQ19IXworI2RlZmluZSBfREVTQ19IXwor CisvKgorICogQ291bnQgdGhlIG51bWJlciBvZiB2YXJhZGljIGFyZ3VtZW50cyBwcm92aWRlZC4K KyAqCisgKiA8cHJlPgorICogICBWQV9OQVJHUygpICAgICA9PiAwCisgKiAgIFZBX05BUkdTKHgp ICAgID0+IDEKKyAqICAgVkFfTkFSR1MoeCwgeSkgPT4gMgorICogPC9wcmU+CisgKgorICogQ3Vy cmVudGx5IGZ1bmN0aW9ucyBmb3IgMCB0byAxMSBhcmd1bWVudHMuCisgKi8KKyNkZWZpbmUgVkFf TkFSR1NfKF8xLCBfMiwgXzMsIF80LCBfNSwgXzYsIF83LCBfOCwgXzksIF8xMCwgXzExLCBfMTIs IE4sIC4uLikgTgorI2RlZmluZSBWQV9OQVJHUyguLi4pIFwKKyAgICBWQV9OQVJHU18oWCwjI19f VkFfQVJHU19fLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApCisKKy8qCisg KiBDYWxsIGEgbWFjcm8gdmFyaWF0aW9uLCBiYXNlZCBvbiB0aGUgbnVtYmVyIG9mIHZhcmFkaWMg YXJndW1lbnRzLgorICoKKyAqIEBwYXJhbSBtYWNybyBQYXJ0aWFsIHRva2VuIHRvIGNhbGwgYSB2 YXJpYXRpb24gb2YuCisgKiBAcGFyYW0gYzEgICAgQ29uc3RhbnQgcGFyYW1ldGVyIHRvIHBhc3Mg dGhyb3VnaC4KKyAqIEBwYXJhbSAuLi4gICBWYXJhZGljIGFyZ3VtZW50cyB0byBwYXNzIHRocm91 Z2guCisgKgorICogVG9rZW5pc2VzICdtYWNybycgd2l0aCB0aGUgY291bnQgb2YgdmFyYWRpYyBh cmd1bWVudHMsIHBhc3NpbmcgJ2MxJyBhbmQgdGhlCisgKiB2YXJhZGljIGFyZ3VtZW50cy4KKyAq CisgKiA8cHJlPgorICogICBWQVJfTUFDUk9fQzEobSwgYykgICAgICAgICAgPT4gbTAoYykKKyAq ICAgVkFSX01BQ1JPX0MxKG0sIGMsIHgpICAgICAgID0+IG0xKGMsIHgpCisgKiAgIFZBUl9NQUNS T19DMShtLCBjLCB4LCB5KSAgICA9PiBtMihjLCB4LCB5KQorICogICBWQVJfTUFDUk9fQzEobSwg YywgeCwgeSwgeikgPT4gbTMoYywgeCwgeSwgeikKKyAqIDwvcHJlPgorICovCisjZGVmaW5lIFZB Ul9NQUNST19DMV9fKG1hY3JvLCBjMSwgY291bnQsIC4uLikgbWFjcm8jI2NvdW50KGMxLCAjI19f VkFfQVJHU19fKQorI2RlZmluZSBWQVJfTUFDUk9fQzFfKG1hY3JvLCBjMSwgY291bnQsIC4uLikg ICAgICAgIFwKKyAgICBWQVJfTUFDUk9fQzFfXyhtYWNybywgYzEsIGNvdW50LCAjI19fVkFfQVJH U19fKQorI2RlZmluZSBWQVJfTUFDUk9fQzEobWFjcm8sIGMxLCAuLi4pICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcCisgICAgVkFSX01BQ1JPX0MxXyhtYWNybywgYzEsIFZBX05BUkdT KF9fVkFfQVJHU19fKSwgIyNfX1ZBX0FSR1NfXykKKworLyoKKyAqIEdEVCBsYXlvdXQ6CisgKgor ICogIDAgLSBudWxsCisgKiAgMSAtIDY0Yml0IHN1cGVydmlzb3IgY29kZQorICogIDIgLSAzMmJp dCBzdXBlcnZpc29yIGNvZGUKKyAqICAzIC0gMzJiaXQgc3VwZXJ2aXNvciBkYXRhCisgKiAgNCAt IDY0Yml0IHVzZXJzcGFjZSBjb2RlCisgKiAgNSAtIDMyYml0IHVzZXJzcGFjZSBjb2RlCisgKiAg NiAtIDMyYml0IHVzZXJzcGFjZSBkYXRhCisgKiAgNyAtIFRTUyAodHdvIHNsb3RzIGluIGxvbmcg bW9kZSkKKyAqCisgKiAgOS0xMiAtIEF2YWlsYWJsZSBmb3IgdGVzdCB1c2UKKyAqLworCisjZGVm aW5lIEdEVEVfQ1M2NF9EUEwwIDEKKyNkZWZpbmUgR0RURV9DUzMyX0RQTDAgMgorI2RlZmluZSBH RFRFX0RTMzJfRFBMMCAzCisjZGVmaW5lIEdEVEVfQ1M2NF9EUEwzIDQKKyNkZWZpbmUgR0RURV9D UzMyX0RQTDMgNQorI2RlZmluZSBHRFRFX0RTMzJfRFBMMyA2CisKKyNkZWZpbmUgR0RURV9UU1Mg NworCisjZGVmaW5lIEdEVEVfQVZBSUwwICAgICA5CisjZGVmaW5lIEdEVEVfQVZBSUwxICAgIDEw CisjZGVmaW5lIEdEVEVfQVZBSUwyICAgIDExCisjZGVmaW5lIEdEVEVfQVZBSUwzICAgIDEyCisK KyNkZWZpbmUgTlJfR0RUX0VOVFJJRVMgMTMKKworI2lmZGVmIF9feDg2XzY0X18KKworI2RlZmlu ZSBfX0tFUk5fQ1MgKEdEVEVfQ1M2NF9EUEwwICogOCkKKyNkZWZpbmUgX19LRVJOX0RTICgwKQor I2RlZmluZSBfX1VTRVJfQ1MgKEdEVEVfQ1M2NF9EUEwzICogOCArIDMpCisjZGVmaW5lIF9fVVNF Ul9EUyAoR0RURV9EUzMyX0RQTDMgKiA4ICsgMykKKworI2Vsc2UgLyogX194ODZfNjRfXyAqLwor CisjZGVmaW5lIF9fS0VSTl9DUyAoR0RURV9DUzMyX0RQTDAgKiA4KQorI2RlZmluZSBfX0tFUk5f RFMgKEdEVEVfRFMzMl9EUEwwICogOCkKKyNkZWZpbmUgX19VU0VSX0NTIChHRFRFX0NTMzJfRFBM MyAqIDggKyAzKQorI2RlZmluZSBfX1VTRVJfRFMgKEdEVEVfRFMzMl9EUEwzICogOCArIDMpCisK KyNlbmRpZiAvKiBfX3g4Nl82NF9fICovCisKKyNpZm5kZWYgX19BU1NFTUJMWV9fCisvKiA4IGJ5 dGUgdXNlciBzZWdtZW50IGRlc2NyaXB0b3IgKEdEVC9MRFQgZW50cmllcyB3aXRoIC5zID0gMSkg Ki8KK3N0cnVjdCBfX3BhY2tlZCBzZWdfZGVzYzMyIHsKKyAgICB1bmlvbiB7CisgICAgICAgIC8q IFJhdyBiYWNraW5nIGludGVnZXJzLiAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAg dWludDMyX3QgbG8sIGhpOworICAgICAgICB9OworICAgICAgICAvKiBDb21tb24gbmFtZWQgZmll bGRzLiAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDE2X3QgbGltaXQwOwor ICAgICAgICAgICAgdWludDE2X3QgYmFzZTA7CisgICAgICAgICAgICB1aW50OF90ICBiYXNlMTsK KyAgICAgICAgICAgIHVuc2lnbmVkIHR5cGU6IDQ7CisgICAgICAgICAgICB1bnNpZ25lZCBzOiAx LCBkcGw6IDIsIHA6IDE7CisgICAgICAgICAgICB1bnNpZ25lZCBsaW1pdDogNDsKKyAgICAgICAg ICAgIHVuc2lnbmVkIGF2bDogMSwgbDogMSwgZDogMSwgZzogMTsKKyAgICAgICAgICAgIHVpbnQ4 X3QgYmFzZTI7CisgICAgICAgIH07CisgICAgICAgIC8qIENvZGUgc2VnbWVudCBzcGVjaWZpYyBm aWVsZCBuYW1lcy4gKi8KKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQxNl90IGxp bWl0MDsKKyAgICAgICAgICAgIHVpbnQxNl90IGJhc2UwOworICAgICAgICAgICAgdWludDhfdCAg YmFzZTE7CisgICAgICAgICAgICB1bnNpZ25lZCBhOiAxLCByOiAxLCBjOiAxLCB4OiAxOworICAg ICAgICAgICAgdW5zaWduZWQgczogMSwgZHBsOiAyLCBwOiAxOworICAgICAgICAgICAgdW5zaWdu ZWQgbGltaXQ6IDQ7CisgICAgICAgICAgICB1bnNpZ25lZCBhdmw6IDEsIGw6IDEsIGQ6IDEsIGc6 IDE7CisgICAgICAgICAgICB1aW50OF90IGJhc2UyOworICAgICAgICB9IGNvZGU7CisgICAgICAg IC8qIERhdGEgc2VnbWVudCBzcGVjaWZpYyBmaWVsZCBuYW1lcy4gKi8KKyAgICAgICAgc3RydWN0 IHsKKyAgICAgICAgICAgIHVpbnQxNl90IGxpbWl0MDsKKyAgICAgICAgICAgIHVpbnQxNl90IGJh c2UwOworICAgICAgICAgICAgdWludDhfdCAgYmFzZTE7CisgICAgICAgICAgICB1bnNpZ25lZCBh OiAxLCB3OiAxLCBlOiAxLCB4OiAxOworICAgICAgICAgICAgdW5zaWduZWQgczogMSwgZHBsOiAy LCBwOiAxOworICAgICAgICAgICAgdW5zaWduZWQgbGltaXQ6IDQ7CisgICAgICAgICAgICB1bnNp Z25lZCBhdmw6IDEsIF9yMDogMSwgYjogMSwgZzogMTsKKyAgICAgICAgICAgIHVpbnQ4X3QgYmFz ZTI7CisgICAgICAgIH0gZGF0YTsKKyAgICB9OworfTsKKworLyogOC1ieXRlIGdhdGUgLSBQcm90 ZWN0ZWQgbW9kZSBJRFQgZW50cnksIEdEVCB0YXNrL2NhbGwgZ2F0ZS4gKi8KK3N0cnVjdCBfX3Bh Y2tlZCBzZWdfZ2F0ZTMyIHsKKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAg ICAgICB1aW50MzJfdCBsbywgaGk7CisgICAgICAgIH07CisgICAgICAgIHN0cnVjdCB7CisgICAg ICAgICAgICB1aW50MTZfdCBvZmZzZXQwOworICAgICAgICAgICAgdWludDE2X3Qgc2VsZWN0b3I7 CisgICAgICAgICAgICB1aW50OF90ICBfcjA7CisgICAgICAgICAgICB1bnNpZ25lZCB0eXBlOiA0 LCBzOiAxLCBkcGw6IDIsIHA6IDE7CisgICAgICAgICAgICB1aW50MTZfdCBvZmZzZXQxOworICAg ICAgICB9OworICAgIH07Cit9OworCisvKiAxNi1ieXRlIGdhdGUgLSBMb25nIG1vZGUgSURUIGVu dHJ5LiAqLworc3RydWN0IF9fcGFja2VkIHNlZ19nYXRlNjQgeworICAgIHVuaW9uIHsKKyAgICAg ICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGxvLCBoaTsKKyAgICAgICAgfTsKKyAg ICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQxNl90IG9mZnNldDA7CisgICAgICAgICAg ICB1aW50MTZfdCBzZWxlY3RvcjsKKyAgICAgICAgICAgIHVuc2lnbmVkIGlzdDogMywgX3IwOiA1 LCB0eXBlOiA0LCBzOiAxLCBkcGw6IDIsIHA6IDE7CisgICAgICAgICAgICB1aW50MTZfdCBvZmZz ZXQxOworICAgICAgICAgICAgdWludDMyX3Qgb2Zmc2V0MjsKKyAgICAgICAgICAgIHVpbnQzMl90 IF9yMTsKKyAgICAgICAgfTsKKyAgICB9OworfTsKKworLyogR0RUL0xEVCBhdHRyaWJ1dGUgZmxh Z3MgZm9yIHVzZXIgc2VnbWVudHMgKi8KKworLyogQ29tbW9uICovCisjZGVmaW5lIFNFR19BVFRS X0cgICAgICAweDgwMDAgLyogR3JhbnVsYXJpdHkgb2YgbGltaXQgKDAgPSAxLCAxID0gNEspICov CisjZGVmaW5lIFNFR19BVFRSX0FWTCAgICAweDEwMDAgLyogQXZhaWxhYmxlIGZvciBzb2Z0d2Fy ZSB1c2UgKi8KKyNkZWZpbmUgU0VHX0FUVFJfUCAgICAgIDB4MDA4MCAvKiBQcmVzZW50PyAqLwor I2RlZmluZSBTRUdfQVRUUl9TICAgICAgMHgwMDEwIC8qICFTeXN0ZW0gZGVzYyAoMCA9IHN5c3Rl bSwgMSA9IHVzZXIpICovCisjZGVmaW5lIFNFR19BVFRSX0EgICAgICAweDAwMDEgLyogQWNjZXNz ZWQ/IChzZXQgYnkgaGFyZHdhcmUpICovCisKKyNkZWZpbmUgU0VHX0FUVFJfQ09NTU9OIDB4ODA5 MSAvKiBDb21tb25seSBzZXQgYml0cyAoRyBQIFMgQSkgKi8KKworI2RlZmluZSBTRUdfQVRUUl9E UEwwICAgMHgwMDAwIC8qIERlc2NyaXB0b3IgcHJpdmlsZWdlIGxldmVsIDAgKi8KKyNkZWZpbmUg U0VHX0FUVFJfRFBMMSAgIDB4MDAyMCAvKiBEZXNjcmlwdG9yIHByaXZpbGVnZSBsZXZlbCAxICov CisjZGVmaW5lIFNFR19BVFRSX0RQTDIgICAweDAwNDAgLyogRGVzY3JpcHRvciBwcml2aWxlZ2Ug bGV2ZWwgMiAqLworI2RlZmluZSBTRUdfQVRUUl9EUEwzICAgMHgwMDYwIC8qIERlc2NyaXB0b3Ig cHJpdmlsZWdlIGxldmVsIDMgKi8KKyNkZWZpbmUgU0VHX0FUVFJfQ09ERSAgIDB4MDAwOCAvKiBU eXBlICgwID0gZGF0YSwgMSA9IGNvZGUpICAgICovCisjZGVmaW5lIFNFR19BVFRSX0RBVEEgICAw eDAwMDAgLyogVHlwZSAoMCA9IGRhdGEsIDEgPSBjb2RlKSAgICAqLworCisvKiBDb2RlIHNlZ21l bnRzICovCisjZGVmaW5lIFNFR19BVFRSX0QgICAgICAweDQwMDAgLyogRGVmYXVsdCBvcGVyYW5k IHNpemUgKDAgPSAxNmJpdCwgMSA9IDMyYml0KSAqLworI2RlZmluZSBTRUdfQVRUUl9MICAgICAg MHgyMDAwIC8qIExvbmcgc2VnbWVudD8gKDEgPSA2NGJpdCkgKi8KKyNkZWZpbmUgU0VHX0FUVFJf QyAgICAgIDB4MDAwNCAvKiBDb25mb3JtaW5nPyAoMCA9IG5vbiwgMSA9IGNvbmZvcm1pbmcpICov CisjZGVmaW5lIFNFR19BVFRSX1IgICAgICAweDAwMDIgLyogUmVhZGFibGU/ICgwID0gWE8gc2Vn LCAxID0gUlggc2VnKSAqLworCisvKiBEYXRhIHNlZ21lbnRzICovCisjZGVmaW5lIFNFR19BVFRS X0IgICAgICAweDQwMDAgLyogJ0JpZycgZmxhZy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKiAgICAtIEZvciAlc3MsIGRlZmF1bHQgb3BlcmFuZCBzaXplLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqICAgIC0gRm9yIGV4cGFuZC1kb3duIHNlZ21lbnQsIHNldHMg dXBwZXIgYm91bmQuICovCisjZGVmaW5lIFNFR19BVFRSX0UgICAgICAweDAwMDQgLyogRXhwYW5k LWRvd24/ICgwID0gbm9ybWFsLCAxID0gZXhwYW5kLWRvd24pICovCisjZGVmaW5lIFNFR19BVFRS X1cgICAgICAweDAwMDIgLyogV3JpdGFibGU/ICgwID0gUk8gc2VnLCAxID0gUlcgc2VnKSAqLwor CisvKgorICogSW5pdGlhbGlzZSBhbiBMRFQvR0RUIGVudHJ5IHVzaW5nIGEgcmF3IGF0dHJpYnV0 ZSBudW1iZXIuCisgKgorICogQHBhcmFtIGJhc2UgIFNlZ21lbnQgYmFzZS4KKyAqIEBwYXJhbSBs aW1pdCBTZWdtZW50IGxpbWl0LgorICogQHBhcmFtIGF0dHIgIFNlZ21lbnQgYXR0cmlidXRlcy4K KyAqLworI2RlZmluZSBJTklUX0dEVEUoYmFzZSwgbGltaXQsIGF0dHIpIHsgeyB7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgLmxvID0gKCgoYmFzZSkgJiAweGZmZmYpIDw8IDE2 KSB8ICgobGltaXQpICYgMHhmZmZmKSwgICAgICAgICAgICBcCisgICAgIC5oaSA9ICgoYmFzZSkg JiAweGZmMDAwMDAwKSB8ICgobGltaXQpICYgMHhmMDAwMCkgfCAgICAgICAgICAgICAgXAorICAg ICAgICAgICAoKChhdHRyKSAmIDB4ZjBmZikgPDwgOCkgfCAoKChiYXNlKSAmIDB4ZmYwMDAwKSA+ PiAxNikgICAgIFwKKyAgICAgfSB9IH0KKworLyoKKyAqIFRva2VuaXNlIGFuZCBPUiB0b2dldGhl ci4KKyAqCisgKiBGb3IgZWFjaCB2YXJhZGljIHBhcmFtZXRlciwgdG9rZW5pc2Ugd2l0aCAndCcg YW5kIE9SIHRvZ2V0aGVyLgorICoKKyAqIEBwYXJhbSB0ICAgQ29tbW9uIHN0ZW0gcGFydGlhbCB0 b2tlbi4KKyAqIEBwYXJhbSAuLi4gUGFydGlhbCB0b2tlbnMuCisgKgorICogRXhhbXBsZToKKyAq IDxwcmU+CisgKiAgIFRPS19PUih0LCB4LCB5KSAgICA9PiAodCAjIyB4IHwgdCAjIyB5KQorICog ICBUT0tfT1IodCwgeCwgeSwgeikgPT4gKHQgIyMgeCB8IHQgIyMgeSB8IHQgIyMgeikKKyAqIDwv cHJlPgorICovCisjZGVmaW5lIFRPS19PUjAodCkgICAgICAgICAoMCkKKyNkZWZpbmUgVE9LX09S MSh0LCB4KSAgICAgICh0ICMjIHgpCisjZGVmaW5lIFRPS19PUjIodCwgeCwgLi4uKSAodCAjIyB4 IHwgVE9LX09SMSh0LCAjI19fVkFfQVJHU19fKSkKKyNkZWZpbmUgVE9LX09SMyh0LCB4LCAuLi4p ICh0ICMjIHggfCBUT0tfT1IyKHQsICMjX19WQV9BUkdTX18pKQorI2RlZmluZSBUT0tfT1I0KHQs IHgsIC4uLikgKHQgIyMgeCB8IFRPS19PUjModCwgIyNfX1ZBX0FSR1NfXykpCisjZGVmaW5lIFRP S19PUjUodCwgeCwgLi4uKSAodCAjIyB4IHwgVE9LX09SNCh0LCAjI19fVkFfQVJHU19fKSkKKyNk ZWZpbmUgVE9LX09SNih0LCB4LCAuLi4pICh0ICMjIHggfCBUT0tfT1I1KHQsICMjX19WQV9BUkdT X18pKQorI2RlZmluZSBUT0tfT1I3KHQsIHgsIC4uLikgKHQgIyMgeCB8IFRPS19PUjYodCwgIyNf X1ZBX0FSR1NfXykpCisjZGVmaW5lIFRPS19PUjgodCwgeCwgLi4uKSAodCAjIyB4IHwgVE9LX09S Nyh0LCAjI19fVkFfQVJHU19fKSkKKyNkZWZpbmUgVE9LX09SKHQsIC4uLikgICAgIFZBUl9NQUNS T19DMShUT0tfT1IsIHQsICMjX19WQV9BUkdTX18pCisKKy8qCisgKiBJbml0aWFsaXNlIGFuIExE VC9HRFQgZW50cnkgdXNpbmcgU0VHX0FUVFJfIG1uZW1vbmljcy4KKyAqCisgKiBAcGFyYW0gYmFz ZSAgU2VnbWVudCBiYXNlLgorICogQHBhcmFtIGxpbWl0IFNlZ21lbnQgbGltaXQuCisgKiBAcGFy YW0gLi4uICAgUGFydGlhbCBTRUdfQVRUUl8gdG9rZW5zIGZvciBhdHRyaWJ1dGVzLgorICoKKyAq IEV4YW1wbGUgdXNhZ2U6CisgKiAtIElOSVRfR0RURV9TWU0oMCwgMHhmZmZmZiwgUCkKKyAqICAg LSB1c2VzIEByZWYgU0VHX0FUVFJfUAorICoKKyAqIC0gSU5JVF9HRFRFX1NZTSgwLCAweGZmZmZm LCBDT0RFLCBMKQorICogICAtIHVzZXMgQHJlZiBTRUdfQVRUUl9DT0RFIGFuZCBAcmVmIFNFR19B VFRSX0wKKyAqLworI2RlZmluZSBJTklUX0dEVEVfU1lNKGJhc2UsIGxpbWl0LCAuLi4pIFwKKyAg ICBJTklUX0dEVEUoYmFzZSwgbGltaXQsIFRPS19PUihTRUdfQVRUUl8sICMjX19WQV9BUkdTX18p KQorCisvKiBMb25nIG1vZGUgbGdkdC9saWR0IHRhYmxlIHBvaW50ZXIuICovCitzdHJ1Y3QgX19w YWNrZWQgZGVzY19wdHI2NCB7CisgICAgdWludDE2X3QgbGltaXQ7CisgICAgdWludDY0X3QgYmFz ZTsKK307CisKKy8qIFByb3RlY3RlZCBtb2RlIGxnZHQvbGlkdCB0YWJsZSBwb2ludGVyLiAqLwor c3RydWN0IF9fcGFja2VkIGRlc2NfcHRyMzIgeworICAgIHVpbnQxNl90IGxpbWl0OworICAgIHVp bnQzMl90IGJhc2U7Cit9OworCitzdHJ1Y3QgX19wYWNrZWQgaHdfdHNzMzIgeworICAgIHVpbnQx Nl90IGxpbms7IHVpbnQxNl90IF9yMDsKKworICAgIHVpbnQzMl90IGVzcDA7CisgICAgdWludDE2 X3Qgc3MwOyB1aW50MTZfdCBfcjE7CisKKyAgICB1aW50MzJfdCBlc3AxOworICAgIHVpbnQxNl90 IHNzMTsgdWludDE2X3QgX3IyOworCisgICAgdWludDMyX3QgZXNwMjsKKyAgICB1aW50MTZfdCBz czI7IHVpbnQxNl90IF9yMzsKKworICAgIHVpbnQzMl90IGNyMzsKKyAgICB1aW50MzJfdCBlaXA7 CisgICAgdWludDMyX3QgZWZsYWdzOworICAgIHVpbnQzMl90IGVheDsKKyAgICB1aW50MzJfdCBl Y3g7CisgICAgdWludDMyX3QgZWR4OworICAgIHVpbnQzMl90IGVieDsKKyAgICB1aW50MzJfdCBl c3A7CisgICAgdWludDMyX3QgZWJwOworICAgIHVpbnQzMl90IGVzaTsKKyAgICB1aW50MzJfdCBl ZGk7CisKKyAgICB1aW50MTZfdCBlczsgdWludDE2X3QgX3I0OworICAgIHVpbnQxNl90IGNzOyB1 aW50MTZfdCBfcjU7CisgICAgdWludDE2X3Qgc3M7IHVpbnQxNl90IF9yNjsKKyAgICB1aW50MTZf dCBkczsgdWludDE2X3QgX3I3OworICAgIHVpbnQxNl90IGZzOyB1aW50MTZfdCBfcjg7CisgICAg dWludDE2X3QgZ3M7IHVpbnQxNl90IF9yOTsKKyAgICB1aW50MTZfdCBsZHRyOyB1aW50MTZfdCBf cjEwOworICAgIHVpbnQxNl90IHQ7IHVpbnQxNl90IGlvcGI7Cit9OworCitzdHJ1Y3QgX19wYWNr ZWQgaHdfdHNzNjQgeworICAgIHVpbnQxNl90IGxpbms7IHVpbnQxNl90IF9yMDsKKworICAgIHVp bnQ2NF90IHJzcDA7CisgICAgdWludDY0X3QgcnNwMTsKKyAgICB1aW50NjRfdCByc3AyOworCisg ICAgdWludDY0X3QgX3IxOworCisgICAgdWludDY0X3QgaXN0WzddOyAvKiAxLWJhc2VkIHN0cnVj dHVyZSAqLworCisgICAgdWludDY0X3QgX3IyOworCisgICAgdWludDE2X3QgdDsKKyAgICB1aW50 MTZfdCBpb3BiOworfTsKKworI2RlZmluZSBYODZfVFNTX0lOVkFMSURfSU9fQklUTUFQIDB4ODAw MAorCisjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorCit0eXBlZGVmIHN0cnVjdCBkZXNjX3B0cjY0 IGRlc2NfcHRyOwordHlwZWRlZiBzdHJ1Y3Qgc2VnX2Rlc2MzMiB1c2VyX2Rlc2M7Cit0eXBlZGVm IHN0cnVjdCBzZWdfZ2F0ZTY0IGdhdGVfZGVzYzsKK3R5cGVkZWYgc3RydWN0IGh3X3RzczY0IGh3 X3RzczsKKworI2VsaWYgZGVmaW5lZChfX2kzODZfXykKKwordHlwZWRlZiBzdHJ1Y3QgZGVzY19w dHIzMiBkZXNjX3B0cjsKK3R5cGVkZWYgc3RydWN0IHNlZ19kZXNjMzIgdXNlcl9kZXNjOwordHlw ZWRlZiBzdHJ1Y3Qgc2VnX2dhdGUzMiBnYXRlX2Rlc2M7Cit0eXBlZGVmIHN0cnVjdCBod190c3Mz MiBod190c3M7CisKKyNlbmRpZgorCitleHRlcm4gdXNlcl9kZXNjIGdkdFtOUl9HRFRfRU5UUklF U107CitleHRlcm4gZGVzY19wdHIgIGdkdF9wdHI7CisKK2V4dGVybiBnYXRlX2Rlc2MgaWR0WzI1 Nl07CitleHRlcm4gZGVzY19wdHIgIGlkdF9wdHI7CisKK2V4dGVybiBod190c3MgdHNzOworCisj ZW5kaWYKKworI2VuZGlmIC8qIF9ERVNDX0hfICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL3g4Ni9v cy5oIGIvaW5jbHVkZS94ODYvb3MuaAppbmRleCBlZTkwNTBiLi5lZWVmYmUyIDEwMDY0NAotLS0g YS9pbmNsdWRlL3g4Ni9vcy5oCisrKyBiL2luY2x1ZGUveDg2L29zLmgKQEAgLTI0LDcgKzI0LDEy IEBACiAjZW5kaWYKICNpbmNsdWRlIDx4ZW4veGVuLmg+CiAKKyNkZWZpbmUgTVNSX0VGRVIgICAg ICAgICAgMHhjMDAwMDA4MAorI2RlZmluZSBfRUZFUl9MTUUgICAgICAgICA4ICAgICAgICAgICAg IC8qIExvbmcgbW9kZSBlbmFibGUgKi8KIAorI2RlZmluZSBYODZfQ1IwX1BHICAgICAgICAweDgw MDAwMDAwICAgIC8qIFBhZ2luZyAqLworI2RlZmluZSBYODZfQ1I0X1BBRSAgICAgICAweDAwMDAw MDIwICAgIC8qIGVuYWJsZSBwaHlzaWNhbCBhZGRyZXNzIGV4dGVuc2lvbnMgKi8KKyNkZWZpbmUg WDg2X0NSNF9PU0ZYU1IgICAgMHgwMDAwMDIwMCAgICAvKiBlbmFibGUgZmFzdCBGUFUgc2F2ZSBh bmQgcmVzdG9yZSAqLwogCiAjZGVmaW5lIF9fS0VSTkVMX0NTICBGTEFUX0tFUk5FTF9DUwogI2Rl ZmluZSBfX0tFUk5FTF9EUyAgRkxBVF9LRVJORUxfRFMKZGlmZiAtLWdpdCBhL21pbmlvcy5tayBi L21pbmlvcy5tawppbmRleCAxZDFjYzk5Li45ZmY2YmY3IDEwMDY0NAotLS0gYS9taW5pb3MubWsK KysrIGIvbWluaW9zLm1rCkBAIC02OCw3ICs2OCw3IEBAIEhFQURfT0JKIDo9ICQoT0JKX0RJUikv JChUQVJHRVRfQVJDSF9ESVIpLyQoSEVBRF9BUkNIX09CSikKICQoT0JKX0RJUikvJS5vOiAlLmMg JChIRFJTKSBNYWtlZmlsZSAkKEVYVFJBX0RFUFMpCiAJJChDQykgJChDRkxBR1MpICQoQ1BQRkxB R1MpIC1jICQ8IC1vICRACiAKLSQoT0JKX0RJUikvJS5vOiAlLlMgJChIRFJTKSBNYWtlZmlsZSAk KEVYVFJBX0RFUFMpCiskKE9CSl9ESVIpLyUubzogJS5TICQoSERSUykgTWFrZWZpbGUgJChFWFRS QV9ERVBTKSAkKEFSQ0hfQVNfREVQUykKIAkkKENDKSAkKEFTRkxBR1MpICQoQ1BQRkxBR1MpIC1j ICQ8IC1vICRACiAKIAotLSAKMi42LjYKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK