From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gordan Bobic Subject: Re: =?utf-8?q?HVM_support_for_e820=5Fhost_=28Was=3A_Bug?= =?utf-8?q?=3A_Limitation_of_=3C=3D2GB_RAM_in_domU_persists_with_4=2E3=2E0?= =?utf-8?q?=29?= Date: Thu, 05 Sep 2013 10:41:09 +0100 Message-ID: <767df7cabb6b0f7198e98a4f034948a7@mail.shatteredsilicon.net> References: "\"<1374798084.10269.2.camel@hastur.hellion.org.uk> <20130729180431.GQ5848@phenom.dumpdata.com> " <20130903145934.GC1487@konrad-lan.dumpdata.com>" <52263CBD.1090402@bobich.net> "\"<52264826.3010402@bobich.net> <20130903210833.GB13777@phenom.dumpdata.com>" " <20130905020442.GA2459@phenom.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20130905020442.GA2459@phenom.dumpdata.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Konrad Rzeszutek Wilk Cc: xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org IEhtbS4uLgoKIGdjYyAtTzIgLWZvbWl0LWZyYW1lLXBvaW50ZXIgLW02NCAtZm5vLXN0cmljdC1h bGlhc2luZyAtc3RkPWdudTk5IC1XYWxsIAogLVdzdHJpY3QtcHJvdG90eXBlcyAtV2RlY2xhcmF0 aW9uLWFmdGVyLXN0YXRlbWVudCAKIC1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUgICAtRE5E RUJVRyAtZm5vLWJ1aWx0aW4gLWZuby1jb21tb24gCiAtV3JlZHVuZGFudC1kZWNscyAtaXdpdGhw cmVmaXggaW5jbHVkZSAtV2Vycm9yIC1Xbm8tcG9pbnRlci1hcml0aCAtcGlwZSAKIC1JL3Jvb3Qv cnBtYnVpbGQvQlVJTEQveGVuLTQuMy4wL3hlbi9pbmNsdWRlICAKIC1JL3Jvb3QvcnBtYnVpbGQv QlVJTEQveGVuLTQuMy4wL3hlbi9pbmNsdWRlL2FzbS14ODYvbWFjaC1nZW5lcmljIAogLUkvcm9v dC9ycG1idWlsZC9CVUlMRC94ZW4tNC4zLjAveGVuL2luY2x1ZGUvYXNtLXg4Ni9tYWNoLWRlZmF1 bHQgCiAtbXNvZnQtZmxvYXQgLWZuby1zdGFjay1wcm90ZWN0b3IgLWZuby1leGNlcHRpb25zIC1X bmVzdGVkLWV4dGVybnMgCiAtbW5vLXJlZC16b25lIC1tbm8tc3NlIC1mcGljIC1mbm8tYXN5bmNo cm9ub3VzLXVud2luZC10YWJsZXMgCiAtREdDQ19IQVNfVklTSUJJTElUWV9BVFRSSUJVVEUgLW5v c3RkaW5jIC1nIC1EX19YRU5fXyAtaW5jbHVkZSAKIC9yb290L3JwbWJ1aWxkL0JVSUxEL3hlbi00 LjMuMC94ZW4vaW5jbHVkZS94ZW4vY29uZmlnLmggLURIQVNfQUNQSSAKIC1ESEFTX0dEQlNYIC1E SEFTX1BBU1NUSFJPVUdIIC1NTUQgLU1GIC5kZWJ1Zy5vLmQgLWMgZGVidWcuYyAtbyBkZWJ1Zy5v CiBnY2MgLU8yIC1mb21pdC1mcmFtZS1wb2ludGVyIC1tNjQgLWZuby1zdHJpY3QtYWxpYXNpbmcg LXN0ZD1nbnU5OSAtV2FsbCAKIC1Xc3RyaWN0LXByb3RvdHlwZXMgLVdkZWNsYXJhdGlvbi1hZnRl ci1zdGF0ZW1lbnQgCiAtV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlICAgLUROREVCVUcgLWZu by1idWlsdGluIC1mbm8tY29tbW9uIAogLVdyZWR1bmRhbnQtZGVjbHMgLWl3aXRocHJlZml4IGlu Y2x1ZGUgLVdlcnJvciAtV25vLXBvaW50ZXItYXJpdGggLXBpcGUgCiAtSS9yb290L3JwbWJ1aWxk L0JVSUxEL3hlbi00LjMuMC94ZW4vaW5jbHVkZSAgCiAtSS9yb290L3JwbWJ1aWxkL0JVSUxEL3hl bi00LjMuMC94ZW4vaW5jbHVkZS9hc20teDg2L21hY2gtZ2VuZXJpYyAKIC1JL3Jvb3QvcnBtYnVp bGQvQlVJTEQveGVuLTQuMy4wL3hlbi9pbmNsdWRlL2FzbS14ODYvbWFjaC1kZWZhdWx0IAogLW1z b2Z0LWZsb2F0IC1mbm8tc3RhY2stcHJvdGVjdG9yIC1mbm8tZXhjZXB0aW9ucyAtV25lc3RlZC1l eHRlcm5zIAogLW1uby1yZWQtem9uZSAtbW5vLXNzZSAtZnBpYyAtZm5vLWFzeW5jaHJvbm91cy11 bndpbmQtdGFibGVzIAogLURHQ0NfSEFTX1ZJU0lCSUxJVFlfQVRUUklCVVRFIC1ub3N0ZGluYyAt ZyAtRF9fWEVOX18gLWluY2x1ZGUgCiAvcm9vdC9ycG1idWlsZC9CVUlMRC94ZW4tNC4zLjAveGVu L2luY2x1ZGUveGVuL2NvbmZpZy5oIC1ESEFTX0FDUEkgCiAtREhBU19HREJTWCAtREhBU19QQVNT VEhST1VHSCAtTU1EIC1NRiAuZG9tYWluLm8uZCAtYyBkb21haW4uYyAtbyAKIGRvbWFpbi5vCiBk b21haW4uYzogSW4gZnVuY3Rpb24g4oCYYXJjaF9kb21haW5fZGVzdHJveeKAmToKIGRvbWFpbi5j OjU5NTogZXJyb3I6IOKAmHN0cnVjdCBwdl9kb21haW7igJkgaGFzIG5vIG1lbWJlciBuYW1lZCDi gJhlODIw4oCZCiBtYWtlWzRdOiAqKiogW2RvbWFpbi5vXSBFcnJvciAxCgogSXQgd291bGQgc2Vl bSB5b3Ugb21pdHRlZCB0aGlzIGJsb2NrIGZyb20gdGhlIG9yaWdpbmFsIHBhdGNoOgoKID09PQog QEAgLTU5Miw4ICs1OTIsOCBAQCB2b2lkIGFyY2hfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFp biAqZCkKICB7CiAgICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCiAgICAgICAgICBodm1fZG9t YWluX2Rlc3Ryb3koZCk7CiAtICAgIGVsc2UKIC0gICAgICAgIHhmcmVlKGQtPmFyY2gucHZfZG9t YWluLmU4MjApOwogKwogKyAgICB4ZnJlZShkLT5hcmNoLmU4MjApOwoKICAgICAgZnJlZV9kb21h aW5fcGlycXMoZCk7CiAgICAgIGlmICggIWlzX2lkbGVfZG9tYWluKGQpICkKID09PQoKIFdhcyB0 aGF0IGludGVudGlvbmFsPyBEb2VzIHRoYXQgYmxvY2sgbG9vayBPSyB0byB5b3U/IFNob3VsZCBJ IHJlLWFkZCAKIGl0PwoKIEdvcmRhbgoKIE9uIFdlZCwgNCBTZXAgMjAxMyAyMjowNDo0MiAtMDQw MCwgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIAogPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+IHdyb3Rl Ogo+IE9uIFdlZCwgU2VwIDA0LCAyMDEzIGF0IDAyOjExOjA2UE0gKzAxMDAsIEdvcmRhbiBCb2Jp YyB3cm90ZToKPj4gSSBoYXZlIHRoaXMgYXQgdGhlIHBvaW50IHdoZXJlIGl0IGFjdHVhbGx5IGJ1 aWxkcy4KPj4gT3RoZXJ3aXNlIGNvbXBsZXRlbHkgdW50ZXN0ZWQgKHdpbGwgZG8gdGhhdCBsYXRl ciB0b2RheSkuCj4+Cj4+IEF0dGFjaGVkIGFyZToKPj4KPj4gMSkgbGlieGwgcGF0Y2gKPj4gTW9k aWZpZWQgZnJvbSB0aGUgb3JpZ2luYWwgcGF0Y2ggdG8gX25vdF8gaW1wbGljaXRseSBlbmFibGUK Pj4gZTgyMF9ob3N0IHdoZW4gUENJIGRldmljZXMgYXJlIHBhc3NlZC4KPj4KPj4gMikgTXVrZXNo J3MgaHlwZXJ2aXNvciBlODIwIHBhdGNoIGZyb20gaGVyZToKPj4gaHR0cDovL2xpc3RzLnhlbi5v cmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxMy0wNS9tc2cwMTYwMy5odG1sCj4+IE1vZGlm aWVkIHNsaWdodGx5IHRvIGF0dGVtcHQgdG8gYWRkcmVzcyBKYW4ncyBjb21tZW50IG9uIHRoZSBz YW1lCj4+IHRocmVhZCwgYW5kIHRvIGFkanVzdCB0aGUgZGlmZiBsaW5lIHBvaW50ZXJzIHRvIG1h dGNoIGFnYWluc3QKPj4gNC4zLjAgcmVsZWFzZSBjb2RlLgo+Cj4gSSB0aGluayB0aGF0IHdhcyB0 aGUgb2xkIHZlcnNpb24uIEkgc3BvdHRlZCBhIGJ1ZyBpbiBpdCB0aGF0Cj4gd2FzIGNhdXNpbmcg YSBoYW5nLiBBbmQgYWxzbyB0aGUgb25lIHRoYXQgZXhwbGFpbnMgd2h5IGxpYnhsCj4gd291bGQg cmVmdXNlIHRvIHNldHVwIHRoZSBFODIwLgo+Cj4gVGhlIHByb2JsZW0gd2FzIHRoYXQgaW4gdGhl IFhFTk1FTV9zZXRfbWVtb3J5X21hcCB0aGVyZSB3YXMKPiBhIGNoZWNrIHRvIG1ha2Ugc3VyZSB0 aGF0IHRoZSBndWVzdCBsYXVuY2hlZCB3YXMgbm90IEhWTS4KPgo+IEFsc28gdGhlcmUgd2FzIGJ1 ZyBpbiB0aGUgaW5pdGlhbCBkb21haW4gY3JlYXRpb24gd2hlcmUKPiB0aGUgc3BpbmxvY2sgd2Fz IG9ubHkgc2V0IGZvciBQViBhbmQgbm90IGZvciBIVk0uCj4KPj4KPj4gMykgQSBwYXRjaCBiYXNl ZCBvbiBLb25yYWQncyBlYXJsaWVyIGluIHRoaXMgdGhyZWFkLCB3aXRoCj4+IGEgZmV3IGFkZGl0 aW9ucyBhbmQgY2hhbmdlcyB0byBtYWtlIGl0IGFsbCBjb21waWxlLgo+Pgo+PiBTb21lIHBlZXIg cmV2aWV3IHdvdWxkIGJlIG1vc3Qgd2VsY29tZSAtIHRoaXMgaXMgbXkgZmlyc3QKPj4gdmVudHVy ZSBpbnRvIFhlbiBjb2RlLCBzbyBwbGVhc2UgZG8gYXNzdW1lIHRoYXQgSSBoYXZlCj4+IG5vIGlk ZWEgd2hhdCBJJ20gZG9pbmcgYXQgdGhlIG1vbWVudC4gOikKPj4KPj4gSSBhZGRlZCB5ZXQgYW5v dGhlciBFODIwTUFYICNkZWZpbmUsIHRoaXMgdGltZSB0bwo+PiB0b29scy9maXJtd2FyZS9odm1s b2FkZXIvZTgyMC5oCj4+Cj4+IElmIHRoZXJlIGlzIGEgYmV0dGVyIHBsYWNlIHRvICNpbmNsdWRl IHRoYXQgdmlhIGZyb20KPj4gZTgyMC5jLCBwbGVhc2UgcG9pbnQgbWUgaW4gdGhlIHJpZ2h0IGRp cmVjdGlvbi4KPgo+IEkgdGhpbmsgSSBzYXcgdGhhdCAjZGVmaW5lIGluIHRvb2xzL2xpYnhjL3hl bmN0cmwuaC4gQnV0IHNpbmNlCj4gdGhlIHRvb2xzL2Zpcm13YXJlIGNhbm5vdCBsaW5rIHRvIHRo ZSBsaWJ4YyAoYi9jIGl0IGlzIGEgCj4gTWluaWNvbnRhaW5lZAo+IE9TKSBJIGJlbGlldmUganVz dCBoYXZpbmcgdGhlICNkZWZpbmUgaW4gaHZtbG9hZGVyL2U4MjAuaCBpcwo+IHRoZSByaWdodCBj YWxsLgo+Cj4gR29vZCBmaXJzdCBwYXNzLiBJIGFsdGVyZWQgaXQgYSBiaXQgYW5kIGdvdCBpbiB0 aGUgSFZNIGd1ZXN0Cj4gdGhlIEU4MjAgZW50cmllcyBwcmludGVkIG91dC4gSGVyZSBpcyBhIGJp ZyBnaWFudCBkaWZmOgo+Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9l ODIwLmMKPiBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9lODIwLmMKPiBpbmRleCAyZTA1ZTkz Li4zYzgwMjQxIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9lODIwLmMK PiArKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvZTgyMC5jCj4gQEAgLTIyLDYgKzIyLDkg QEAKPgo+ICAjaW5jbHVkZSAiY29uZmlnLmgiCj4gICNpbmNsdWRlICJ1dGlsLmgiCj4gKyNpbmNs dWRlICJoeXBlcmNhbGwuaCIKPiArI2luY2x1ZGUgPHhlbi9tZW1vcnkuaD4KPiArI2luY2x1ZGUg PGVycm5vLmg+Cj4KPiAgdm9pZCBkdW1wX2U4MjBfdGFibGUoc3RydWN0IGU4MjBlbnRyeSAqZTgy MCwgdW5zaWduZWQgaW50IG5yKQo+ICB7Cj4gQEAgLTc0LDEwICs3NywyMCBAQCBpbnQgYnVpbGRf ZTgyMF90YWJsZShzdHJ1Y3QgZTgyMGVudHJ5ICplODIwLAo+ICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgYmlvc19pbWFnZV9iYXNlKQo+ICB7Cj4gICAgICB1bnNpZ25lZCBpbnQg bnIgPSAwOwo+ICsgICAgc3RydWN0IHhlbl9tZW1vcnlfbWFwIG9wOwo+ICsgICAgc3RydWN0IGU4 MjBlbnRyeSBtYXBbRTgyME1BWF07Cj4gKyAgICBpbnQgcmM7Cj4KPiAgICAgIGlmICggIWxvd21l bV9yZXNlcnZlZF9iYXNlICkKPiAgICAgICAgICAgICAgbG93bWVtX3Jlc2VydmVkX2Jhc2UgPSAw eEEwMDAwOwo+Cj4gKyAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShvcC5idWZmZXIsIG1hcCk7Cj4g Kwo+ICsgICAgcmMgPSBoeXBlcmNhbGxfbWVtb3J5X29wICggWEVOTUVNX21lbW9yeV9tYXAsICZv cCk7Cj4gKyAgICBpZiAoIHJjICE9IC1FTk9TWVMpIHsgLyogSXQgd29ya3MhPyAqLwo+ICsgICAg ICAgIHByaW50ZigiJXM6JWQgZ290ICVkIG9wLm5yX2VudHJpZXMgXG4iLCBfX2Z1bmNfXywgX19M SU5FX18sCj4gb3AubnJfZW50cmllcyk7Cj4gKyAgICAgICAgZHVtcF9lODIwX3RhYmxlKCZtYXBb MF0sIG9wLm5yX2VudHJpZXMpOwo+ICsgICAgfQo+ICAgICAgLyogTG93bWVtIG11c3QgYmUgYXQg bGVhc3QgNTEySyB0byBrZWVwIFdpbmRvd3MgaGFwcHkpICovCj4gICAgICBBU1NFUlQgKCBsb3dt ZW1fcmVzZXJ2ZWRfYmFzZSA+IDUxMjw8MTAgKTsKPgo+IGRpZmYgLS1naXQgYS90b29scy9maXJt d2FyZS9odm1sb2FkZXIvZTgyMC5oCj4gYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvZTgyMC5o Cj4gaW5kZXggYjJlYWQ3Zi4uMmZhNzAwZCAxMDA2NDQKPiAtLS0gYS90b29scy9maXJtd2FyZS9o dm1sb2FkZXIvZTgyMC5oCj4gKysrIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2U4MjAuaAo+ IEBAIC04LDYgKzgsOSBAQAo+ICAjZGVmaW5lIEU4MjBfUkVTRVJWRUQgICAgIDIKPiAgI2RlZmlu ZSBFODIwX0FDUEkgICAgICAgICAzCj4gICNkZWZpbmUgRTgyMF9OVlMgICAgICAgICAgNAo+ICsj ZGVmaW5lIEU4MjBfVU5VU0FCTEUgICAgIDUKPiArCj4gKyNkZWZpbmUgRTgyME1BWCAgICAgICAg IDEyOAo+Cj4gIHN0cnVjdCBlODIwZW50cnkgewo+ICAgICAgdWludDY0X3QgYWRkcjsKPiBkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29scy9saWJ4bC9saWJ4bF9j cmVhdGUuYwo+IGluZGV4IDBjMzJkMGIuLmQ4ZTIzNDYgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGli eGwvbGlieGxfY3JlYXRlLmMKPiArKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwo+IEBA IC0yMDgsNiArMjA4LDggQEAgaW50IGxpYnhsX19kb21haW5fYnVpbGRfaW5mb19zZXRkZWZhdWx0 KGxpYnhsX19nYyAKPiAqZ2MsCj4KPiAgICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9p bmZvLT5kaXNhYmxlX21pZ3JhdGUsIGZhbHNlKTsKPgo+ICsgICAgbGlieGxfZGVmYm9vbF9zZXRk ZWZhdWx0KCZiX2luZm8tPmU4MjBfaG9zdCwgZmFsc2UpOwo+ICsKPiAgICAgIHN3aXRjaCAoYl9p bmZvLT50eXBlKSB7Cj4gICAgICBjYXNlIExJQlhMX0RPTUFJTl9UWVBFX0hWTToKPiAgICAgICAg ICBpZiAoYl9pbmZvLT5zaGFkb3dfbWVta2IgPT0gTElCWExfTUVNS0JfREVGQVVMVCkKPiBAQCAt MjgwLDcgKzI4Miw2IEBAIGludCBsaWJ4bF9fZG9tYWluX2J1aWxkX2luZm9fc2V0ZGVmYXVsdChs aWJ4bF9fZ2MgCj4gKmdjLAo+Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICBjYXNlIExJQlhMX0RP TUFJTl9UWVBFX1BWOgo+IC0gICAgICAgIGxpYnhsX2RlZmJvb2xfc2V0ZGVmYXVsdCgmYl9pbmZv LT51LnB2LmU4MjBfaG9zdCwgZmFsc2UpOwo+ICAgICAgICAgIGlmIChiX2luZm8tPnNoYWRvd19t ZW1rYiA9PSBMSUJYTF9NRU1LQl9ERUZBVUxUKQo+ICAgICAgICAgICAgICBiX2luZm8tPnNoYWRv d19tZW1rYiA9IDA7Cj4gICAgICAgICAgaWYgKGJfaW5mby0+dS5wdi5zbGFja19tZW1rYiA9PSBM SUJYTF9NRU1LQl9ERUZBVUxUKQo+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBl cy5pZGwgCj4gYi90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKPiBpbmRleCA4NTM0MWEwLi5m ZDYzODlhIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAo+ICsrKyBi L3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAo+IEBAIC0yOTksNiArMjk5LDggQEAgbGlieGxf ZG9tYWluX2J1aWxkX2luZm8gPSAKPiBTdHJ1Y3QoImRvbWFpbl9idWlsZF9pbmZvIixbCj4gICAg ICAoImlycXMiLCAgICAgICAgICAgICBBcnJheSh1aW50MzIsICJudW1faXJxcyIpKSwKPiAgICAg ICgiaW9tZW0iLCAgICAgICAgICAgIEFycmF5KGxpYnhsX2lvbWVtX3JhbmdlLCAibnVtX2lvbWVt IikpLAo+ICAgICAgKCJjbGFpbV9tb2RlIiwJICAgICBsaWJ4bF9kZWZib29sKSwKPiArICAgICMg VXNlIGhvc3QncyBFODIwIGZvciBQQ0kgcGFzc3Rocm91Z2guCj4gKyAgICAoImU4MjBfaG9zdCIs ICAgICAgICBsaWJ4bF9kZWZib29sKSwKPiAgICAgICgidSIsIEtleWVkVW5pb24oTm9uZSwgbGli eGxfZG9tYWluX3R5cGUsICJ0eXBlIiwKPiAgICAgICAgICAgICAgICAgIFsoImh2bSIsIFN0cnVj dChOb25lLCBbKCJmaXJtd2FyZSIsICAgICAgICAgc3RyaW5nKSwKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKCJiaW9zIiwKPiBsaWJ4bF9iaW9zX3R5cGUpLAo+IEBA IC0zNDUsOCArMzQ3LDYgQEAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gPSAKPiBTdHJ1Y3QoImRv bWFpbl9idWlsZF9pbmZvIixbCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKCJjbWRsaW5lIiwgc3RyaW5nKSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoInJhbWRpc2siLCBzdHJpbmcpLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgiZmVhdHVyZXMiLCBzdHJpbmcsIHsnY29uc3QnOiAKPiBUcnVlfSksCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVc2UgaG9zdCdzIEU4MjAg Zm9yIFBDSSAKPiBwYXNzdGhyb3VnaC4KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoImU4MjBfaG9zdCIsIGxpYnhsX2RlZmJvb2wpLAo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF0pKSwKPiAgICAgICAgICAgICAgICAgICAoImludmFsaWQi LCBTdHJ1Y3QoTm9uZSwgW10pKSwKPiAgICAgICAgICAgICAgICAgICBdLCBrZXl2YXJfaW5pdF92 YWwgPSAiTElCWExfRE9NQUlOX1RZUEVfSU5WQUxJRCIpKSwKPiBkaWZmIC0tZ2l0IGEvdG9vbHMv bGlieGwvbGlieGxfeDg2LmMgYi90b29scy9saWJ4bC9saWJ4bF94ODYuYwo+IGluZGV4IGE3OGM5 MWQuLjk0NTE1YTUgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKPiArKysg Yi90b29scy9saWJ4bC9saWJ4bF94ODYuYwo+IEBAIC0yMTYsMjggKzIxNiw0MSBAQCBzdGF0aWMg aW50IGxpYnhsX19lODIwX2FsbG9jKGxpYnhsX19nYyAqZ2MsCj4gdWludDMyX3QgZG9taWQsCj4g ICAgICBzdHJ1Y3QgZTgyMGVudHJ5IG1hcFtFODIwTUFYXTsKPiAgICAgIGxpYnhsX2RvbWFpbl9i dWlsZF9pbmZvICpiX2luZm87Cj4KPiAtICAgIGlmIChkX2NvbmZpZyA9PSBOVUxMIHx8IGRfY29u ZmlnLT5jX2luZm8udHlwZSA9PSAKPiBMSUJYTF9ET01BSU5fVFlQRV9IVk0pCj4gLSAgICAgICAg cmV0dXJuIEVSUk9SX0lOVkFMOwo+IC0KPiAgICAgIGJfaW5mbyA9ICZkX2NvbmZpZy0+Yl9pbmZv Owo+IC0gICAgaWYgKCFsaWJ4bF9kZWZib29sX3ZhbChiX2luZm8tPnUucHYuZTgyMF9ob3N0KSkK PiArICAgIGlmICghbGlieGxfZGVmYm9vbF92YWwoYl9pbmZvLT5lODIwX2hvc3QpKSB7Cj4gKyAg ICAgICAgTElCWExfX0xPR19FUlJOTyhjdHgsIExJQlhMX19MT0dfRVJST1IsICIlczolZC4iLF9f ZnVuY19fLAo+IF9fTElORV9fKTsKPiAgICAgICAgICByZXR1cm4gRVJST1JfSU5WQUw7Cj4gLQo+ ICsgICAgfQo+ICAgICAgcmMgPSB4Y19nZXRfbWFjaGluZV9tZW1vcnlfbWFwKGN0eC0+eGNoLCBt YXAsIEU4MjBNQVgpOwo+ICAgICAgaWYgKHJjIDwgMCkgewo+ICsgICAgICAgIExJQlhMX19MT0df RVJSTk8oY3R4LCBMSUJYTF9fTE9HX0VSUk9SLCAiJXM6JWQuIixfX2Z1bmNfXywKPiBfX0xJTkVf Xyk7Cj4gICAgICAgICAgZXJybm8gPSByYzsKPiAgICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsK PiAgICAgIH0KPiAgICAgIG5yID0gcmM7Cj4gLSAgICByYyA9IGU4MjBfc2FuaXRpemUoY3R4LCBt YXAsICZuciwgYl9pbmZvLT50YXJnZXRfbWVta2IsCj4gLSAgICAgICAgICAgICAgICAgICAgICAg KGJfaW5mby0+bWF4X21lbWtiIC0gYl9pbmZvLT50YXJnZXRfbWVta2IpICsKPiAtICAgICAgICAg ICAgICAgICAgICAgICBiX2luZm8tPnUucHYuc2xhY2tfbWVta2IpOwo+ICsgICAgTElCWExfX0xP R19FUlJOTyhjdHgsIExJQlhMX19MT0dfRVJST1IsICIlczolZC5ucjolZCIsX19mdW5jX18sCj4g X19MSU5FX18sIG5yKTsKPiArICAgIGlmIChkX2NvbmZpZyA9PSBOVUxMIHx8IGRfY29uZmlnLT5j X2luZm8udHlwZSA9PQo+IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgewo+ICsgICAgICAgIHJjID0g ZTgyMF9zYW5pdGl6ZShjdHgsIG1hcCwgJm5yLCBiX2luZm8tPnRhcmdldF9tZW1rYiwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGJfaW5mby0+bWF4X21lbWtiIC0gCj4gYl9pbmZvLT50 YXJnZXRfbWVta2IpKTsKPiArICAgICAgICBMSUJYTF9fTE9HX0VSUk5PKGN0eCwgTElCWExfX0xP R19FUlJPUiwKPiAiJXM6JWQucmMlZCIsX19mdW5jX18sIF9fTElORV9fLCByYyk7Cj4gKyAgICB9 IGVsc2UgaWYgKGRfY29uZmlnLT5jX2luZm8udHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9QVikg ewo+ICsgICAgICAgIHJjID0gZTgyMF9zYW5pdGl6ZShjdHgsIG1hcCwgJm5yLCBiX2luZm8tPnRh cmdldF9tZW1rYiwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJfaW5mby0+bWF4X21l bWtiIC0gCj4gYl9pbmZvLT50YXJnZXRfbWVta2IpICsKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgYl9pbmZvLT51LnB2LnNsYWNrX21lbWtiKTsKPiArICAgICAgICBMSUJYTF9fTE9HX0VS Uk5PKGN0eCwgTElCWExfX0xPR19FUlJPUiwKPiAiJXM6JWQucmMlZCIsX19mdW5jX18sIF9fTElO RV9fLCByYyk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgICAgIExJQlhMX19MT0dfRVJSTk8oY3R4LCBM SUJYTF9fTE9HX0VSUk9SLAo+ICIlczolZC5yYyVkIixfX2Z1bmNfXywgX19MSU5FX18sIHJjKTsK PiAgICAgIGlmIChyYykKPiAgICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsKPgo+ICsgICAgICAg IExJQlhMX19MT0dfRVJSTk8oY3R4LCBMSUJYTF9fTE9HX0VSUk9SLCAiJXM6JWQucmMlZCwKPiBu cjolZCIsX19mdW5jX18sIF9fTElORV9fLCByYywgbnIpOwo+ICsKPiAgICAgIHJjID0geGNfZG9t YWluX3NldF9tZW1vcnlfbWFwKGN0eC0+eGNoLCBkb21pZCwgbWFwLCBucik7Cj4KPiArICAgICAg ICBMSUJYTF9fTE9HX0VSUk5PKGN0eCwgTElCWExfX0xPR19FUlJPUiwKPiAiJXM6JWQucmMlZCIs X19mdW5jX18sIF9fTElORV9fLCByYyk7Cj4gICAgICBpZiAocmMgPCAwKSB7Cj4gKyAgICAgICAg TElCWExfX0xPR19FUlJOTyhjdHgsIExJQlhMX19MT0dfRVJST1IsCj4gIiVzOiVkLnJjJWQiLF9f ZnVuY19fLCBfX0xJTkVfXywgcmMpOwo+ICAgICAgICAgIGVycm5vICA9IHJjOwo+ICAgICAgICAg IHJldHVybiBFUlJPUl9GQUlMOwo+ICAgICAgfQo+IEBAIC0yOTYsOCArMzA5LDcgQEAgaW50IGxp YnhsX19hcmNoX2RvbWFpbl9jcmVhdGUobGlieGxfX2djICpnYywKPiBsaWJ4bF9kb21haW5fY29u ZmlnICpkX2NvbmZpZywKPiAgICAgICAgICB4Y19zaGFkb3dfY29udHJvbChjdHgtPnhjaCwgZG9t aWQsCj4gWEVOX0RPTUNUTF9TSEFET1dfT1BfU0VUX0FMTE9DQVRJT04sIE5VTEwsIDAsICZzaGFk b3csIDAsIE5VTEwpOwo+ICAgICAgfQo+Cj4gLSAgICBpZiAoZF9jb25maWctPmNfaW5mby50eXBl ID09IExJQlhMX0RPTUFJTl9UWVBFX1BWICYmCj4gLSAgICAgICAgICAgIGxpYnhsX2RlZmJvb2xf dmFsKGRfY29uZmlnLT5iX2luZm8udS5wdi5lODIwX2hvc3QpKSB7Cj4gKyAgICBpZiAobGlieGxf ZGVmYm9vbF92YWwoZF9jb25maWctPmJfaW5mby5lODIwX2hvc3QpKSB7Cj4gICAgICAgICAgcmV0 ID0gbGlieGxfX2U4MjBfYWxsb2MoZ2MsIGRvbWlkLCBkX2NvbmZpZyk7Cj4gICAgICAgICAgaWYg KHJldCkgewo+ICAgICAgICAgICAgICBMSUJYTF9fTE9HX0VSUk5PKGdjLT5vd25lciwgTElCWExf X0xPR19FUlJPUiwKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jIGIvdG9v bHMvbGlieGwveGxfY21kaW1wbC5jCj4gaW5kZXggZWQ5OTYyMi4uZDk4Y2EyNCAxMDA2NDQKPiAt LS0gYS90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKPiArKysgYi90b29scy9saWJ4bC94bF9jbWRp bXBsLmMKPiBAQCAtMTI5MSwxMSArMTI5MSw3IEBAIHNraXBfdmZiOgo+ICAgICAgaWYgKCF4bHVf Y2ZnX2dldF9sb25nIChjb25maWcsICJwY2lfcGVybWlzc2l2ZSIsICZsLCAwKSkKPiAgICAgICAg ICBwY2lfcGVybWlzc2l2ZSA9IGw7Cj4KPiAtICAgIC8qIFRvIGJlIHJld29ya2VkIChhdXRvbWF0 aWNhbGx5IGVuYWJsZWQpIG9uY2UgdGhlIGF1dG8gCj4gYmFsbG9vbmluZwo+IC0gICAgICogYWZ0 ZXIgZ3Vlc3Qgc3RhcnRzIGlzIGRvbmUgKHdpdGggUENJIGRldmljZXMgcGFzc2VkIGluKS4gKi8K PiAtICAgIGlmIChjX2luZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFYpIHsKPiAtICAg ICAgICB4bHVfY2ZnX2dldF9kZWZib29sKGNvbmZpZywgImU4MjBfaG9zdCIsCj4gJmJfaW5mby0+ dS5wdi5lODIwX2hvc3QsIDApOwo+IC0gICAgfQo+ICsgICAgeGx1X2NmZ19nZXRfZGVmYm9vbChj b25maWcsICJlODIwX2hvc3QiLCAmYl9pbmZvLT5lODIwX2hvc3QsIDApOwo+Cj4gICAgICBpZiAo IXhsdV9jZmdfZ2V0X2xpc3QgKGNvbmZpZywgInBjaSIsICZwY2lzLCAwLCAwKSkgewo+ICAgICAg ICAgIGRfY29uZmlnLT5udW1fcGNpZGV2cyA9IDA7Cj4gQEAgLTEzMTQsNyArMTMxMCw3IEBAIHNr aXBfdmZiOgo+ICAgICAgICAgICAgICAgICAgZF9jb25maWctPm51bV9wY2lkZXZzKys7Cj4gICAg ICAgICAgfQo+ICAgICAgICAgIGlmIChkX2NvbmZpZy0+bnVtX3BjaWRldnMgJiYgY19pbmZvLT50 eXBlID09IAo+IExJQlhMX0RPTUFJTl9UWVBFX1BWKQo+IC0gICAgICAgICAgICBsaWJ4bF9kZWZi b29sX3NldCgmYl9pbmZvLT51LnB2LmU4MjBfaG9zdCwgdHJ1ZSk7Cj4gKyAgICAgICAgICAgIGxp YnhsX2RlZmJvb2xfc2V0KCZiX2luZm8tPmU4MjBfaG9zdCwgdHJ1ZSk7Cj4gICAgICB9Cj4KPiAg ICAgIHN3aXRjaCAoeGx1X2NmZ19nZXRfbGlzdChjb25maWcsICJjcHVpZCIsICZjcHVpZHMsIDAs IDEpKSB7Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX3N4cC5jIGIvdG9vbHMvbGlieGwv eGxfc3hwLmMKPiBpbmRleCBhMTZhMDI1Li5mMzRmMGJhIDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2xp YnhsL3hsX3N4cC5jCj4gKysrIGIvdG9vbHMvbGlieGwveGxfc3hwLmMKPiBAQCAtODcsNiArODcs MTAgQEAgdm9pZCBwcmludGZfaW5mb19zZXhwKGludCBkb21pZCwKPiBsaWJ4bF9kb21haW5fY29u ZmlnICpkX2NvbmZpZykKPiAgICAgICAgICB9Cj4gICAgICB9Cj4KPiArICAgIHByaW50ZigiXHQo ZTgyMF9ob3N0ICVzKVxuIiwKPiArICAgICAgICAgICBsaWJ4bF9kZWZib29sX3RvX3N0cmluZyhi X2luZm8tPmU4MjBfaG9zdCkpOwo+ICsKPiArCj4gICAgICBwcmludGYoIlx0KGltYWdlXG4iKTsK PiAgICAgIHN3aXRjaCAoY19pbmZvLT50eXBlKSB7Cj4gICAgICBjYXNlIExJQlhMX0RPTUFJTl9U WVBFX0hWTToKPiBAQCAtMTUwLDggKzE1NCw2IEBAIHZvaWQgcHJpbnRmX2luZm9fc2V4cChpbnQg ZG9taWQsCj4gbGlieGxfZG9tYWluX2NvbmZpZyAqZF9jb25maWcpCj4gICAgICAgICAgcHJpbnRm KCJcdFx0XHQoa2VybmVsICVzKVxuIiwgYl9pbmZvLT51LnB2Lmtlcm5lbCk7Cj4gICAgICAgICAg cHJpbnRmKCJcdFx0XHQoY21kbGluZSAlcylcbiIsIGJfaW5mby0+dS5wdi5jbWRsaW5lKTsKPiAg ICAgICAgICBwcmludGYoIlx0XHRcdChyYW1kaXNrICVzKVxuIiwgYl9pbmZvLT51LnB2LnJhbWRp c2spOwo+IC0gICAgICAgIHByaW50ZigiXHRcdFx0KGU4MjBfaG9zdCAlcylcbiIsCj4gLSAgICAg ICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdG9fc3RyaW5nKGJfaW5mby0+dS5wdi5lODIwX2hvc3Qp KTsKPiAgICAgICAgICBwcmludGYoIlx0XHQpXG4iKTsKPiAgICAgICAgICBicmVhazsKPiAgICAg IGRlZmF1bHQ6Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYyBiL3hlbi9hcmNo L3g4Ni9kb21haW4uYwo+IGluZGV4IDg3NDc0MmMuLjQ3OTYyMjEgMTAwNjQ0Cj4gLS0tIGEveGVu L2FyY2gveDg2L2RvbWFpbi5jCj4gKysrIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCj4gQEAgLTU2 NiwxMCArNTY2LDkgQEAgaW50IGFyY2hfZG9tYWluX2NyZWF0ZShzdHJ1Y3QgZG9tYWluICpkLAo+ IHVuc2lnbmVkIGludCBkb21jcl9mbGFncykKPiAgICAgIHsKPiAgICAgICAgICAvKiA2NC1iaXQg UFYgZ3Vlc3QgYnkgZGVmYXVsdC4gKi8KPiAgICAgICAgICBkLT5hcmNoLmlzXzMyYml0X3B2ID0g ZC0+YXJjaC5oYXNfMzJiaXRfc2hpbmZvID0gMDsKPiAtCj4gLSAgICAgICAgc3Bpbl9sb2NrX2lu aXQoJmQtPmFyY2gucHZfZG9tYWluLmU4MjBfbG9jayk7Cj4gICAgICB9Cj4KPiArICAgIHNwaW5f bG9ja19pbml0KCZkLT5hcmNoLmU4MjBfbG9jayk7Cj4gICAgICAvKiBpbml0aWFsaXplIGRlZmF1 bHQgdHNjIGJlaGF2aW9yIGluIGNhc2UgdG9vbHMgZG9uJ3QgKi8KPiAgICAgIHRzY19zZXRfaW5m byhkLCBUU0NfTU9ERV9ERUZBVUxULCAwVUwsIDAsIDApOwo+ICAgICAgc3Bpbl9sb2NrX2luaXQo JmQtPmFyY2gudnRzY19sb2NrKTsKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0u YyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPiBpbmRleCA1NGIxZTZhLi42YzliNThjIDEwMDY0 NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZt L2h2bS5jCj4gQEAgLTMxNDIsMTAgKzMxNDIsMTAgQEAgc3RhdGljIGxvbmcgaHZtX21lbW9yeV9v cChpbnQgY21kLAo+IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQo+Cj4gICAgICBz d2l0Y2ggKCBjbWQgJiBNRU1PUF9DTURfTUFTSyApCj4gICAgICB7Cj4gLSAgICBjYXNlIFhFTk1F TV9tZW1vcnlfbWFwOgo+ICAgICAgY2FzZSBYRU5NRU1fbWFjaGluZV9tZW1vcnlfbWFwOgo+ICAg ICAgY2FzZSBYRU5NRU1fbWFjaHBoeXNfbWFwcGluZzoKPiAgICAgICAgICByZXR1cm4gLUVOT1NZ UzsKPiArICAgIGNhc2UgWEVOTUVNX21lbW9yeV9tYXA6Cj4gICAgICBjYXNlIFhFTk1FTV9kZWNy ZWFzZV9yZXNlcnZhdGlvbjoKPiAgICAgICAgICByYyA9IGRvX21lbW9yeV9vcChjbWQsIGFyZyk7 Cj4gICAgICAgICAgY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4ucWVtdV9tYXBjYWNo ZV9pbnZhbGlkYXRlID0gCj4gMTsKPiBAQCAtMzIxNywxMCArMzIxNywxMCBAQCBzdGF0aWMgbG9u ZyBodm1fbWVtb3J5X29wX2NvbXBhdDMyKGludCBjbWQsCj4gWEVOX0dVRVNUX0hBTkRMRV9QQVJB TSh2b2lkKSBhcmcpCj4KPiAgICAgIHN3aXRjaCAoIGNtZCAmIE1FTU9QX0NNRF9NQVNLICkKPiAg ICAgIHsKPiAtICAgIGNhc2UgWEVOTUVNX21lbW9yeV9tYXA6Cj4gICAgICBjYXNlIFhFTk1FTV9t YWNoaW5lX21lbW9yeV9tYXA6Cj4gICAgICBjYXNlIFhFTk1FTV9tYWNocGh5c19tYXBwaW5nOgo+ ICAgICAgICAgIHJldHVybiAtRU5PU1lTOwo+ICsgICAgY2FzZSBYRU5NRU1fbWVtb3J5X21hcDoK PiAgICAgIGNhc2UgWEVOTUVNX2RlY3JlYXNlX3Jlc2VydmF0aW9uOgo+ICAgICAgICAgIHJjID0g Y29tcGF0X21lbW9yeV9vcChjbWQsIGFyZyk7Cj4gICAgICAgICAgY3VycmVudC0+ZG9tYWluLT5h cmNoLmh2bV9kb21haW4ucWVtdV9tYXBjYWNoZV9pbnZhbGlkYXRlID0gCj4gMTsKPiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwo+IGluZGV4IGU3ZjBl MTMuLjRjM2NlOWEgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L21tLmMKPiArKysgYi94ZW4v YXJjaC94ODYvbW0uYwo+IEBAIC00NzQwLDE5ICs0NzQwLDEzIEBAIGxvbmcgYXJjaF9tZW1vcnlf b3AoaW50IG9wLAo+IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQo+ICAgICAgICAg ICAgICByZXR1cm4gcmM7Cj4gICAgICAgICAgfQo+Cj4gLSAgICAgICAgaWYgKCBpc19odm1fZG9t YWluKGQpICkKPiAtICAgICAgICB7Cj4gLSAgICAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQp Owo+IC0gICAgICAgICAgICByZXR1cm4gLUVQRVJNOwo+IC0gICAgICAgIH0KPiAtCj4gICAgICAg ICAgZTgyMCA9IHhtYWxsb2NfYXJyYXkoZTgyMGVudHJ5X3QsIGZtYXAubWFwLm5yX2VudHJpZXMp Owo+ICAgICAgICAgIGlmICggZTgyMCA9PSBOVUxMICkKPiAgICAgICAgICB7Cj4gICAgICAgICAg ICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOwo+ICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsK PiAgICAgICAgICB9Cj4gLQo+ICsKPiAgICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChlODIw LCBmbWFwLm1hcC5idWZmZXIsIAo+IGZtYXAubWFwLm5yX2VudHJpZXMpICkKPiAgICAgICAgICB7 Cj4gICAgICAgICAgICAgIHhmcmVlKGU4MjApOwo+IEBAIC00NzYwLDExICs0NzU0LDExIEBAIGxv bmcgYXJjaF9tZW1vcnlfb3AoaW50IG9wLAo+IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkg YXJnKQo+ICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKPiAgICAgICAgICB9Cj4KPiAtICAg ICAgICBzcGluX2xvY2soJmQtPmFyY2gucHZfZG9tYWluLmU4MjBfbG9jayk7Cj4gLSAgICAgICAg eGZyZWUoZC0+YXJjaC5wdl9kb21haW4uZTgyMCk7Cj4gLSAgICAgICAgZC0+YXJjaC5wdl9kb21h aW4uZTgyMCA9IGU4MjA7Cj4gLSAgICAgICAgZC0+YXJjaC5wdl9kb21haW4ubnJfZTgyMCA9IGZt YXAubWFwLm5yX2VudHJpZXM7Cj4gLSAgICAgICAgc3Bpbl91bmxvY2soJmQtPmFyY2gucHZfZG9t YWluLmU4MjBfbG9jayk7Cj4gKyAgICAgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmU4MjBfbG9jayk7 Cj4gKyAgICAgICAgeGZyZWUoZC0+YXJjaC5lODIwKTsKPiArICAgICAgICBkLT5hcmNoLmU4MjAg PSBlODIwOwo+ICsgICAgICAgIGQtPmFyY2gubnJfZTgyMCA9IGZtYXAubWFwLm5yX2VudHJpZXM7 Cj4gKyAgICAgICAgc3Bpbl91bmxvY2soJmQtPmFyY2guZTgyMF9sb2NrKTsKPgo+ICAgICAgICAg IHJjdV91bmxvY2tfZG9tYWluKGQpOwo+ICAgICAgICAgIHJldHVybiByYzsKPiBAQCAtNDc3OCwy NiArNDc3MiwyNiBAQCBsb25nIGFyY2hfbWVtb3J5X29wKGludCBvcCwKPiBYRU5fR1VFU1RfSEFO RExFX1BBUkFNKHZvaWQpIGFyZykKPiAgICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmbWFw LCBhcmcsIDEpICkKPiAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Cj4KPiAtICAgICAgICBz cGluX2xvY2soJmQtPmFyY2gucHZfZG9tYWluLmU4MjBfbG9jayk7Cj4gKyAgICAgICAgc3Bpbl9s b2NrKCZkLT5hcmNoLmU4MjBfbG9jayk7Cj4KPiAgICAgICAgICAvKiBCYWNrd2FyZHMgY29tcGF0 aWJpbGl0eS4gKi8KPiAtICAgICAgICBpZiAoIChkLT5hcmNoLnB2X2RvbWFpbi5ucl9lODIwID09 IDApIHx8Cj4gLSAgICAgICAgICAgICAoZC0+YXJjaC5wdl9kb21haW4uZTgyMCA9PSBOVUxMKSAp Cj4gKyAgICAgICAgaWYgKCAoZC0+YXJjaC5ucl9lODIwID09IDApIHx8Cj4gKyAgICAgICAgICAg ICAoZC0+YXJjaC5lODIwID09IE5VTEwpICkKPiAgICAgICAgICB7Cj4gLSAgICAgICAgICAgIHNw aW5fdW5sb2NrKCZkLT5hcmNoLnB2X2RvbWFpbi5lODIwX2xvY2spOwo+ICsgICAgICAgICAgICBz cGluX3VubG9jaygmZC0+YXJjaC5lODIwX2xvY2spOwo+ICAgICAgICAgICAgICByZXR1cm4gLUVO T1NZUzsKPiAgICAgICAgICB9Cj4KPiAtICAgICAgICBtYXAubnJfZW50cmllcyA9IG1pbihtYXAu bnJfZW50cmllcywgCj4gZC0+YXJjaC5wdl9kb21haW4ubnJfZTgyMCk7Cj4gLSAgICAgICAgaWYg KCBjb3B5X3RvX2d1ZXN0KG1hcC5idWZmZXIsIGQtPmFyY2gucHZfZG9tYWluLmU4MjAsCj4gKyAg ICAgICAgbWFwLm5yX2VudHJpZXMgPSBtaW4obWFwLm5yX2VudHJpZXMsIGQtPmFyY2gubnJfZTgy MCk7Cj4gKyAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0KG1hcC5idWZmZXIsIGQtPmFyY2guZTgy MCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwLm5yX2VudHJpZXMpIHx8Cj4gICAg ICAgICAgICAgICBfX2NvcHlfdG9fZ3Vlc3QoYXJnLCAmbWFwLCAxKSApCj4gICAgICAgICAgewo+ IC0gICAgICAgICAgICBzcGluX3VubG9jaygmZC0+YXJjaC5wdl9kb21haW4uZTgyMF9sb2NrKTsK PiArICAgICAgICAgICAgc3Bpbl91bmxvY2soJmQtPmFyY2guZTgyMF9sb2NrKTsKPiAgICAgICAg ICAgICAgcmV0dXJuIC1FRkFVTFQ7Cj4gICAgICAgICAgfQo+Cj4gLSAgICAgICAgc3Bpbl91bmxv Y2soJmQtPmFyY2gucHZfZG9tYWluLmU4MjBfbG9jayk7Cj4gKyAgICAgICAgc3Bpbl91bmxvY2so JmQtPmFyY2guZTgyMF9sb2NrKTsKPiAgICAgICAgICByZXR1cm4gMDsKPiAgICAgIH0KPgo+IGRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIAo+IGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9kb21haW4uaAo+IGluZGV4IGQ3OTQ2NGQuLmMzZjlmOGUgMTAwNjQ0Cj4gLS0tIGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYv ZG9tYWluLmgKPiBAQCAtMjM0LDExICsyMzQsNiBAQCBzdHJ1Y3QgcHZfZG9tYWluCj4KPiAgICAg IC8qIG1hcF9kb21haW5fcGFnZSgpIG1hcHBpbmcgY2FjaGUuICovCj4gICAgICBzdHJ1Y3QgbWFw Y2FjaGVfZG9tYWluIG1hcGNhY2hlOwo+IC0KPiAtICAgIC8qIFBzZXVkb3BoeXNpY2FsIGU4MjAg bWFwIChYRU5NRU1fbWVtb3J5X21hcCkuICAqLwo+IC0gICAgc3BpbmxvY2tfdCBlODIwX2xvY2s7 Cj4gLSAgICBzdHJ1Y3QgZTgyMGVudHJ5ICplODIwOwo+IC0gICAgdW5zaWduZWQgaW50IG5yX2U4 MjA7Cj4gIH07Cj4KPiAgc3RydWN0IGFyY2hfZG9tYWluCj4gQEAgLTMxMyw2ICszMDgsMTEgQEAg c3RydWN0IGFyY2hfZG9tYWluCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBv c3NpYmx5IG90aGVyIGNhc2VzIGluIHRoZSBmdXR1cmUgCj4gKi8KPiAgICAgIHVpbnQ2NF90IHZ0 c2Nfa2VybmNvdW50OyAvKiBmb3IgaHZtLCBjb3VudHMgYWxsIHZ0c2MgKi8KPiAgICAgIHVpbnQ2 NF90IHZ0c2NfdXNlcmNvdW50OyAvKiBub3QgdXNlZCBmb3IgaHZtICovCj4gKwo+ICsgICAgLyog UHNldWRvcGh5c2ljYWwgZTgyMCBtYXAgKFhFTk1FTV9tZW1vcnlfbWFwKS4gICovCj4gKyAgICBz cGlubG9ja190IGU4MjBfbG9jazsKPiArICAgIHN0cnVjdCBlODIwZW50cnkgKmU4MjA7Cj4gKyAg ICB1bnNpZ25lZCBpbnQgbnJfZTgyMDsKPiAgfSBfX2NhY2hlbGluZV9hbGlnbmVkOwo+Cj4gICNk ZWZpbmUgaGFzX2FyY2hfcGRldnMoZCkgICAgKCFsaXN0X2VtcHR5KCYoZCktPmFyY2gucGRldl9s aXN0KSkKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gWGVuLWRldmVsIG1haWxpbmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gaHR0 cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK