From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v5 07/25] xen/arm: don't add duplicate boot modules, introduce domU flag Date: Tue, 30 Oct 2018 11:50:11 +0000 Message-ID: <866f291e-ceff-3f43-e101-a146d87f993c@arm.com> References: <1540260184-11294-7-git-send-email-sstabellini@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1540260184-11294-7-git-send-email-sstabellini@kernel.org> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefano Stabellini Cc: Stefano Stabellini , Achin.Gupta@arm.com, andrii_anisov@epam.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SGkgU3RlZmFubywKCk9uIDIzLzEwLzIwMTggMDM6MDIsIFN0ZWZhbm8gU3RhYmVsbGluaSB3cm90 ZToKPiBEb24ndCBhZGQgZHVwbGljYXRlIGJvb3QgbW9kdWxlcyAoc2FtZSBraW5kIGFuZCBzYW1l IHN0YXJ0IGFkZHJlc3MpLAo+IHRoZXkgYXJlIGZyZWVkIGxhdGVyLCB3ZSBkb24ndCB3YW50IHRv IGludHJvZHVjZSBkb3VibGUtZnJlZSBlcnJvcnMuCj4gCj4gSW50cm9kdWNlIGEgZG9tVSBmbGFn IGluIHN0cnVjdCBib290bW9kdWxlIGFuZCBzdHJ1Y3QgYm9vdGNtZGxpbmUuIFNldAo+IGl0IGZv ciBrZXJuZWxzIGFuZCByYW1kaXNrcyBvZiAieGVuLGRvbWFpbiIgbm9kZXMgdG8gYXZvaWQgZ2V0 dGluZwo+IGNvbmZ1c2VkIGluIGtlcm5lbF9wcm9iZSwgd2hlcmUgd2UgdHJ5IHRvIGd1ZXNzIHdo aWNoIGlzIHRoZSBkb20wIGtlcm5lbAo+IGFuZCBpbml0cmQgdG8gYmUgY29tcGF0aWJsZSB3aXRo IGFsbCB2ZXJzaW9ucyBvZiB0aGUgbXVsdGlib290IHNwZWMuCj4gCj4gYm9vdF9tb2R1bGVfZmlu ZF9ieV9raW5kIGFuZCBib290X2NtZGxpbmVfZmluZF9ieV9raW5kIGF1dG9tYXRpY2FsbHkKPiBj aGVjayBmb3IgIWRvbVUgZW50cmllcyAodGhleSBhcmUgb25seSB1c2VkIGZvciBub24tZG9tVSBt b2R1bGVzKS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9z QHhpbGlueC5jb20+Cj4gCj4gLS0tCj4gQ2hhbmdlcyBpbiB2NToKPiAtIGltcHJvdmUgY29tbWl0 IG1lc3NhZ2UKPiAtIGFkZCBpbi1jb2RlIGNvbW1lbnRzCj4gCj4gQ2hhbmdlcyBpbiB2NDoKPiAt IHVzZSB1bnNpZ25lZCBpbnQKPiAtIGJldHRlciBjb21taXQgbWVzc2FnZQo+IC0gaW50cm9kdWNl IGRvbVUgZmxhZyBhbmQgdXNhZ2UKPiAKPiBDaGFuZ2VzIGluIHYyOgo+IC0gbmV3IHBhdGNoCj4g LS0tCj4gICB4ZW4vYXJjaC9hcm0vYm9vdGZkdC5jICAgICAgfCAxMSArKysrKysrLS0tLQo+ICAg eGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgIHwgMzAgKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tCj4gICB4ZW4vaW5jbHVkZS9hc20tYXJtL3NldHVwLmggfCAxMiArKysrKysrKysrLS0K PiAgIDMgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9ib290ZmR0LmMgYi94ZW4vYXJjaC9hcm0vYm9v dGZkdC5jCj4gaW5kZXggY2I2Zjc3ZC4uYzMyNWI2ZSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9h cm0vYm9vdGZkdC5jCj4gKysrIGIveGVuL2FyY2gvYXJtL2Jvb3RmZHQuYwo+IEBAIC0xNzUsNiAr MTc1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHByb2Nlc3NfbXVsdGlib290X25vZGUoY29uc3Qg dm9pZCAqZmR0LCBpbnQgbm9kZSwKPiAgICAgICBpbnQgbGVuID0gc2l6ZW9mKCIvY2hvc2VuIik7 Cj4gICAgICAgY2hhciBwYXRoWzhdOyAvKiBzaXplb2YgIi9jaG9zZW4iICovCj4gICAgICAgaW50 IHBhcmVudF9ub2RlLCByZXQ7Cj4gKyAgICBib29sIGRvbVU7Cj4gICAKPiAgICAgICBwYXJlbnRf bm9kZSA9IGZkdF9wYXJlbnRfb2Zmc2V0KGZkdCwgbm9kZSk7Cj4gICAgICAgQVNTRVJUKHBhcmVu dF9ub2RlID49IDApOwo+IEBAIC0yMjksMTIgKzIzMCwxNCBAQCBzdGF0aWMgdm9pZCBfX2luaXQg cHJvY2Vzc19tdWx0aWJvb3Rfbm9kZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAo+ICAgICAg ICAgICAgICAga2luZCA9IEJPT1RNT0RfWFNNOwo+ICAgICAgIH0KPiAgIAo+IC0gICAgYWRkX2Jv b3RfbW9kdWxlKGtpbmQsIHN0YXJ0LCBzaXplKTsKPiArICAgIGRvbVUgPSBmZHRfbm9kZV9jaGVj a19jb21wYXRpYmxlKGZkdCwgcGFyZW50X25vZGUsICJ4ZW4sZG9tYWluIikgPT0gMDsKPiArICAg IGFkZF9ib290X21vZHVsZShraW5kLCBzdGFydCwgc2l6ZSwgZG9tVSk7Cj4gICAKPiAgICAgICBw cm9wID0gZmR0X2dldF9wcm9wZXJ0eShmZHQsIG5vZGUsICJib290YXJncyIsICZsZW4pOwo+ICAg ICAgIGlmICggIXByb3AgKQo+ICAgICAgICAgICByZXR1cm47Cj4gLSAgICBhZGRfYm9vdF9jbWRs aW5lKGZkdF9nZXRfbmFtZShmZHQsIHBhcmVudF9ub2RlLCAmbGVuKSwgcHJvcC0+ZGF0YSwga2lu ZCk7Cj4gKyAgICBhZGRfYm9vdF9jbWRsaW5lKGZkdF9nZXRfbmFtZShmZHQsIHBhcmVudF9ub2Rl LCAmbGVuKSwgcHJvcC0+ZGF0YSwKPiArICAgICAgICAgICAgICAgICAgICAga2luZCwgZG9tVSk7 Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIF9faW5pdCBwcm9jZXNzX2Nob3Nlbl9ub2RlKGNv bnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCj4gQEAgLTI4MCw3ICsyODMsNyBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgcHJvY2Vzc19jaG9zZW5fbm9kZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAo+ ICAgCj4gICAgICAgcHJpbnRrKCJJbml0cmQgJSJQUklwYWRkciItJSJQUklwYWRkciJcbiIsIHN0 YXJ0LCBlbmQpOwo+ICAgCj4gLSAgICBhZGRfYm9vdF9tb2R1bGUoQk9PVE1PRF9SQU1ESVNLLCBz dGFydCwgZW5kLXN0YXJ0KTsKPiArICAgIGFkZF9ib290X21vZHVsZShCT09UTU9EX1JBTURJU0ss IHN0YXJ0LCBlbmQtc3RhcnQsIGZhbHNlKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGludCBfX2lu aXQgZWFybHlfc2Nhbl9ub2RlKGNvbnN0IHZvaWQgKmZkdCwKPiBAQCAtMzUxLDcgKzM1NCw3IEBA IHNpemVfdCBfX2luaXQgYm9vdF9mZHRfaW5mbyhjb25zdCB2b2lkICpmZHQsIHBhZGRyX3QgcGFk ZHIpCj4gICAgICAgaWYgKCByZXQgPCAwICkKPiAgICAgICAgICAgcGFuaWMoIk5vIHZhbGlkIGRl dmljZSB0cmVlXG4iKTsKPiAgIAo+IC0gICAgYWRkX2Jvb3RfbW9kdWxlKEJPT1RNT0RfRkRULCBw YWRkciwgZmR0X3RvdGFsc2l6ZShmZHQpKTsKPiArICAgIGFkZF9ib290X21vZHVsZShCT09UTU9E X0ZEVCwgcGFkZHIsIGZkdF90b3RhbHNpemUoZmR0KSwgZmFsc2UpOwo+ICAgCj4gICAgICAgZGV2 aWNlX3RyZWVfZm9yX2VhY2hfbm9kZSgodm9pZCAqKWZkdCwgZWFybHlfc2Nhbl9ub2RlLCBOVUxM KTsKPiAgICAgICBlYXJseV9wcmludF9pbmZvKCk7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKPiBpbmRleCAyMDk4NTkxLi43MmIxMmY5 IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9zZXR1cC5jCj4gKysrIGIveGVuL2FyY2gvYXJt L3NldHVwLmMKPiBAQCAtMjAxLDEwICsyMDEsMTIgQEAgdm9pZCBfX2luaXQgZHRfdW5yZXNlcnZl ZF9yZWdpb25zKHBhZGRyX3QgcywgcGFkZHJfdCBlLAo+ICAgfQo+ICAgCj4gICBzdHJ1Y3QgYm9v dG1vZHVsZSBfX2luaXQgKmFkZF9ib290X21vZHVsZShib290bW9kdWxlX2tpbmQga2luZCwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBzdGFydCwg cGFkZHJfdCBzaXplKQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgZG9tVSkKPiAgIHsKPiAgICAgICBzdHJ1Y3QgYm9vdG1v ZHVsZXMgKm1vZHMgPSAmYm9vdGluZm8ubW9kdWxlczsKPiAgICAgICBzdHJ1Y3QgYm9vdG1vZHVs ZSAqbW9kOwo+ICsgICAgdW5zaWduZWQgaW50IGk7Cj4gICAKPiAgICAgICBpZiAoIG1vZHMtPm5y X21vZHMgPT0gTUFYX01PRFVMRVMgKQo+ICAgICAgIHsKPiBAQCAtMjEyLDE1ICsyMTQsMjkgQEAg c3RydWN0IGJvb3Rtb2R1bGUgX19pbml0ICphZGRfYm9vdF9tb2R1bGUoYm9vdG1vZHVsZV9raW5k IGtpbmQsCj4gICAgICAgICAgICAgICAgICBib290X21vZHVsZV9raW5kX2FzX3N0cmluZyhraW5k KSwgc3RhcnQsIHN0YXJ0ICsgc2l6ZSk7Cj4gICAgICAgICAgIHJldHVybiBOVUxMOwo+ICAgICAg IH0KPiArICAgIGZvciAoIGkgPSAwIDsgaSA8IG1vZHMtPm5yX21vZHMgOyBpKysgKQo+ICsgICAg ewo+ICsgICAgICAgIG1vZCA9ICZtb2RzLT5tb2R1bGVbaV07Cj4gKyAgICAgICAgaWYgKCBtb2Qt PmtpbmQgPT0ga2luZCAmJiBtb2QtPnN0YXJ0ID09IHN0YXJ0ICkKPiArICAgICAgICB7Cj4gKyAg ICAgICAgICAgIGlmICggIWRvbVUgKQo+ICsgICAgICAgICAgICAgICAgbW9kLT5kb21VID0gZmFs c2U7Cj4gKyAgICAgICAgICAgIHJldHVybiBtb2Q7Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICAg Cj4gICAgICAgbW9kID0gJm1vZHMtPm1vZHVsZVttb2RzLT5ucl9tb2RzKytdOwo+ICAgICAgIG1v ZC0+a2luZCA9IGtpbmQ7Cj4gICAgICAgbW9kLT5zdGFydCA9IHN0YXJ0Owo+ICAgICAgIG1vZC0+ c2l6ZSA9IHNpemU7Cj4gKyAgICBtb2QtPmRvbVUgPSBkb21VOwo+ICAgCj4gICAgICAgcmV0dXJu IG1vZDsKPiAgIH0KPiAgIAo+ICsvKgo+ICsgKiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgdXNlZCB0 byBmaW5kIGRvbTAgbW9kdWxlcywgc28gY2hlY2sgZm9yICFtb2QtPmRvbVUKClRoaXMgY29tbWVu dCBpcyBtaXNsZWFkaW5nLiBUaGUgZnVuY3Rpb24gaXMgdXNlZCBub3Qgb25seSB0byBmaW5kIERv bTAgTW9kdWxlcyAKYnV0IGFsc28gWFNNICYgY28uCgpIb3cgYWJvdXQ6CgoiYm9vdF9tb2R1bGVf ZmluZF9ieV9raW5kIGNhbiBvbmx5IGJlIHVzZWQgdG8gcmV0dXJuIFhlbiBtb2R1bGVzIChlLmcg WFNNLCBEVEIpIApvciBEb20wIG1vZHVsZXMuIFRoaXMgaXMgbm90IHN1aXRhYmxlIGZvciBsb29r aW5nIHVwIGZvciBndWVzdCBtb2R1bGVzLiIKCj4gKyAqLwo+ICAgc3RydWN0IGJvb3Rtb2R1bGUg KiBfX2luaXQgYm9vdF9tb2R1bGVfZmluZF9ieV9raW5kKGJvb3Rtb2R1bGVfa2luZCBraW5kKQo+ ICAgewo+ICAgICAgIHN0cnVjdCBib290bW9kdWxlcyAqbW9kcyA9ICZib290aW5mby5tb2R1bGVz Owo+IEBAIC0yMjksMTQgKzI0NSwxNCBAQCBzdHJ1Y3QgYm9vdG1vZHVsZSAqIF9faW5pdCBib290 X21vZHVsZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVsZV9raW5kIGtpbmQpCj4gICAgICAgZm9yIChp ID0gMCA7IGkgPCBtb2RzLT5ucl9tb2RzIDsgaSsrICkKPiAgICAgICB7Cj4gICAgICAgICAgIG1v ZCA9ICZtb2RzLT5tb2R1bGVbaV07Cj4gLSAgICAgICAgaWYgKCBtb2QtPmtpbmQgPT0ga2luZCAp Cj4gKyAgICAgICAgaWYgKCBtb2QtPmtpbmQgPT0ga2luZCAmJiAhbW9kLT5kb21VICkKPiAgICAg ICAgICAgICAgIHJldHVybiBtb2Q7Cj4gICAgICAgfQo+ICAgICAgIHJldHVybiBOVUxMOwo+ICAg fQo+ICAgCj4gICB2b2lkIF9faW5pdCBhZGRfYm9vdF9jbWRsaW5lKGNvbnN0IGNoYXIgKm5hbWUs IGNvbnN0IGNoYXIgKmNtZGxpbmUsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v dG1vZHVsZV9raW5kIGtpbmQpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdG1v ZHVsZV9raW5kIGtpbmQsIGJvb2wgZG9tVSkKPiAgIHsKPiAgICAgICBzdHJ1Y3QgYm9vdGNtZGxp bmVzICpjbWRzID0gJmJvb3RpbmZvLmNtZGxpbmVzOwo+ICAgICAgIHN0cnVjdCBib290Y21kbGlu ZSAqY21kOwo+IEBAIC0yNDksNiArMjY1LDcgQEAgdm9pZCBfX2luaXQgYWRkX2Jvb3RfY21kbGlu ZShjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpjbWRsaW5lLAo+ICAgCj4gICAgICAgY21k ID0gJmNtZHMtPmNtZGxpbmVbY21kcy0+bnJfbW9kcysrXTsKPiAgICAgICBjbWQtPmtpbmQgPSBr aW5kOwo+ICsgICAgY21kLT5kb21VID0gZG9tVTsKPiAgIAo+ICAgICAgIEFTU0VSVChzdHJsZW4o bmFtZSkgPD0gRFRfTUFYX05BTUUpOwo+ICAgICAgIHNhZmVfc3RyY3B5KGNtZC0+ZHRfbmFtZSwg bmFtZSk7Cj4gQEAgLTI1OCw2ICsyNzUsOSBAQCB2b2lkIF9faW5pdCBhZGRfYm9vdF9jbWRsaW5l KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKmNtZGxpbmUsCj4gICAgICAgc2FmZV9zdHJj cHkoY21kLT5jbWRsaW5lLCBjbWRsaW5lKTsKPiAgIH0KPiAgIAo+ICsvKgo+ICsgKiBUaGlzIGZ1 bmN0aW9uIGlzIG9ubHkgdXNlZCB0byBmaW5kIGRvbTAgbW9kdWxlcywgc28gY2hlY2sgZm9yICFt b2QtPmRvbVUKPiArICovCgpTYW1lIGhlcmUuCgo+ICAgc3RydWN0IGJvb3RjbWRsaW5lICogX19p bml0IGJvb3RfY21kbGluZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVsZV9raW5kIGtpbmQpCj4gICB7 Cj4gICAgICAgc3RydWN0IGJvb3RjbWRsaW5lcyAqY21kcyA9ICZib290aW5mby5jbWRsaW5lczsK PiBAQCAtMjY3LDcgKzI4Nyw3IEBAIHN0cnVjdCBib290Y21kbGluZSAqIF9faW5pdCBib290X2Nt ZGxpbmVfZmluZF9ieV9raW5kKGJvb3Rtb2R1bGVfa2luZCBraW5kKQo+ICAgICAgIGZvciAoIGkg PSAwIDsgaSA8IGNtZHMtPm5yX21vZHMgOyBpKysgKQo+ICAgICAgIHsKPiAgICAgICAgICAgY21k ID0gJmNtZHMtPmNtZGxpbmVbaV07Cj4gLSAgICAgICAgaWYgKCBjbWQtPmtpbmQgPT0ga2luZCAp Cj4gKyAgICAgICAgaWYgKCBjbWQtPmtpbmQgPT0ga2luZCAmJiAhY21kLT5kb21VICkKPiAgICAg ICAgICAgICAgIHJldHVybiBjbWQ7Cj4gICAgICAgfQo+ICAgICAgIHJldHVybiBOVUxMOwo+IEBA IC03NjEsNyArNzgxLDcgQEAgdm9pZCBfX2luaXQgc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgYm9v dF9waHlzX29mZnNldCwKPiAgICAgICAvKiBSZWdpc3RlciBYZW4ncyBsb2FkIGFkZHJlc3MgYXMg YSBib290IG1vZHVsZS4gKi8KPiAgICAgICB4ZW5fYm9vdG1vZHVsZSA9IGFkZF9ib290X21vZHVs ZShCT09UTU9EX1hFTiwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZGRyX3Qp KHVpbnRwdHJfdCkoX3N0YXJ0ICsgYm9vdF9waHlzX29mZnNldCksCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHBhZGRyX3QpKHVpbnRwdHJfdCkoX2VuZCAtIF9zdGFydCArIDEpKTsK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFkZHJfdCkodWludHB0cl90KShfZW5k IC0gX3N0YXJ0ICsgMSksIGZhbHNlKTsKPiAgICAgICBCVUdfT04oIXhlbl9ib290bW9kdWxlKTsK PiAgIAo+ICAgICAgIHhlbl9wYWRkciA9IGdldF94ZW5fcGFkZHIoKTsKPiBkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5o Cj4gaW5kZXggNzU4MDAwNy4uM2EzMDMyOSAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20t YXJtL3NldHVwLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3NldHVwLmgKPiBAQCAtMzAs OSArMzAsMTYgQEAgc3RydWN0IG1lbWluZm8gewo+ICAgICAgIHN0cnVjdCBtZW1iYW5rIGJhbmtb TlJfTUVNX0JBTktTXTsKPiAgIH07Cj4gICAKPiArLyoKPiArICogVGhlIGRvbVUgZmxhZyBpcyBz ZXQgZm9yIGtlcm5lbHMgYW5kIHJhbWRpc2tzIG9mICJ4ZW4sZG9tYWluIiBub2Rlcy4KPiArICog VGhlIHB1cnBvc2Ugb2YgdGhlIGRvbVUgZmxhZyBpcyB0byBhdm9pZCBnZXR0aW5nIGNvbmZ1c2Vk IGluCj4gKyAqIGtlcm5lbF9wcm9iZSwgd2hlcmUgd2UgdHJ5IHRvIGd1ZXNzIHdoaWNoIGlzIHRo ZSBkb20wIGtlcm5lbCBhbmQKPiArICogaW5pdHJkIHRvIGJlIGNvbXBhdGlibGUgd2l0aCBhbGwg dmVyc2lvbnMgb2YgdGhlIG11bHRpYm9vdCBzcGVjLgo+ICsgKi8KPiAgICNkZWZpbmUgQk9PVE1P RF9NQVhfQ01ETElORSAxMDI0Cj4gICBzdHJ1Y3QgYm9vdG1vZHVsZSB7Cj4gICAgICAgYm9vdG1v ZHVsZV9raW5kIGtpbmQ7Cj4gKyAgICBib29sIGRvbVU7Cj4gICAgICAgcGFkZHJfdCBzdGFydDsK PiAgICAgICBwYWRkcl90IHNpemU7Cj4gICB9Owo+IEBAIC00MSw2ICs0OCw3IEBAIHN0cnVjdCBi b290bW9kdWxlIHsKPiAgICNkZWZpbmUgRFRfTUFYX05BTUUgNDEKPiAgIHN0cnVjdCBib290Y21k bGluZSB7Cj4gICAgICAgYm9vdG1vZHVsZV9raW5kIGtpbmQ7Cj4gKyAgICBib29sIGRvbVU7Cj4g ICAgICAgY2hhciBkdF9uYW1lW0RUX01BWF9OQU1FXTsKPiAgICAgICBjaGFyIGNtZGxpbmVbQk9P VE1PRF9NQVhfQ01ETElORV07Cj4gICB9Owo+IEBAIC05MSwxMCArOTksMTAgQEAgc2l6ZV90IF9f aW5pdCBib290X2ZkdF9pbmZvKGNvbnN0IHZvaWQgKmZkdCwgcGFkZHJfdCBwYWRkcik7Cj4gICBj b25zdCBjaGFyIF9faW5pdCAqYm9vdF9mZHRfY21kbGluZShjb25zdCB2b2lkICpmZHQpOwo+ICAg Cj4gICBzdHJ1Y3QgYm9vdG1vZHVsZSAqYWRkX2Jvb3RfbW9kdWxlKGJvb3Rtb2R1bGVfa2luZCBr aW5kLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3Qgc3RhcnQs IHBhZGRyX3Qgc2l6ZSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFk ZHJfdCBzdGFydCwgcGFkZHJfdCBzaXplLCBib29sIGRvbVUpOwo+ICAgc3RydWN0IGJvb3Rtb2R1 bGUgKmJvb3RfbW9kdWxlX2ZpbmRfYnlfa2luZChib290bW9kdWxlX2tpbmQga2luZCk7Cj4gICB2 b2lkIGFkZF9ib290X2NtZGxpbmUoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY21kbGlu ZSwKPiAtICAgICAgICAgICAgICAgICAgICAgIGJvb3Rtb2R1bGVfa2luZCBraW5kKTsKPiArICAg ICAgICAgICAgICAgICAgICAgIGJvb3Rtb2R1bGVfa2luZCBraW5kLCBib29sIGRvbVUpOwo+ICAg c3RydWN0IGJvb3RjbWRsaW5lICpib290X2NtZGxpbmVfZmluZF9ieV9raW5kKGJvb3Rtb2R1bGVf a2luZCBraW5kKTsKPiAgIGNvbnN0IGNoYXIgKiBfX2luaXQgYm9vdF9tb2R1bGVfa2luZF9hc19z dHJpbmcoYm9vdG1vZHVsZV9raW5kIGtpbmQpOwo+ICAgCj4gCgpDaGVlcnMsCgotLSAKSnVsaWVu IEdyYWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs