From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergej Proskurin Subject: [PATCH v3 36/38] altp2m: Allow specifying external-only use-case Date: Wed, 17 Aug 2016 00:17:12 +0200 Message-ID: <20160816221714.22041-37-proskurin@sec.in.tum.de> References: <20160816221714.22041-1-proskurin@sec.in.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bZmfs-0002cI-EL for xen-devel@lists.xenproject.org; Tue, 16 Aug 2016 22:17:32 +0000 In-Reply-To: <20160816221714.22041-1-proskurin@sec.in.tum.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , Tamas K Lengyel , Ian Jackson , Sergej Proskurin , Jan Beulich , Andrew Cooper , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org RnJvbTogVGFtYXMgSyBMZW5neWVsIDx0YW1hcy5sZW5neWVsQHplbnRpZmljLmNvbT4KCkN1cnJl bnRseSBzZXR0aW5nIGFsdHAybWh2bT0xIGluIHRoZSBkb21haW4gY29uZmlndXJhdGlvbiBhbGxv d3MgYWNjZXNzIHRvIHRoZQphbHRwMm0gaW50ZXJmYWNlIGZvciBib3RoIGluLWd1ZXN0IGFuZCBl eHRlcm5hbCBwcml2aWxlZ2VkIHRvb2xzLiBUaGlzIHBvc2VzCmEgcHJvYmxlbSBmb3IgdXNlLWNh c2VzIHdoZXJlIG9ubHkgZXh0ZXJuYWwgYWNjZXNzIHNob3VsZCBiZSBhbGxvd2VkLCByZXF1aXJp bmcKdGhlIHVzZXIgdG8gY29tcGlsZSBYZW4gd2l0aCBYU00gZW5hYmxlZCB0byBiZSBhYmxlIHRv IGFwcHJvcHJpYXRlbHkgcmVzdHJpY3QKYWNjZXNzLgoKSW4gdGhpcyBwYXRjaCB3ZSBkZXByZWNh dGUgdGhlIGFsdHAybWh2bSBkb21haW4gY29uZmlndXJhdGlvbiBvcHRpb24gYW5kCmludHJvZHVj ZSB0aGUgYWx0cDJtIG9wdGlvbiwgd2hpY2ggYWxsb3dzIHNwZWNpZnlpbmcgaWYgYnkgZGVmYXVs dCB0aGUgYWx0cDJtCmludGVyZmFjZSBzaG91bGQgYmUgZXh0ZXJuYWwtb25seS4gVGhlIGluZm9y bWF0aW9uIGlzIHN0b3JlZCBpbgpIVk1fUEFSQU1fQUxUUDJNIHdoaWNoIHdlIG5vdyBkZWZpbmUg d2l0aCBzcGVjaWZpYyBYRU5fQUxUUDJNXyogbW9kZXMuCklmIGV4dGVybmFsX29ubHkgbW9kZSBp cyBzZWxlY3RlZCwgdGhlIFhTTSBjaGVjayBpcyBzaGlmdGVkIHRvIHVzZSBYU01fRE1fUFJJVgp0 eXBlIGNoZWNrLCB0aHVzIHJlc3RyaWN0aW5nIGFjY2VzcyB0byB0aGUgaW50ZXJmYWNlIGJ5IHRo ZSBndWVzdCBpdHNlbGYuIE5vdGUKdGhhdCB3ZSBrZWVwIHRoZSBkZWZhdWx0IFhTTSBwb2xpY3kg dW50b3VjaGVkLiBVc2VycyBvZiBYU00gd2hvIHdpc2ggdG8gZW5mb3JjZQpleHRlcm5hbF9vbmx5 IG1vZGUgZm9yIGFsdHAybSBjYW4gZG8gc28gYnkgYWRqdXN0aW5nIHRoZWlyIFhTTSBwb2xpY3kg ZGlyZWN0bHksCmFzIHRoaXMgZG9tYWluIGNvbmZpZyBvcHRpb24gZG9lcyBub3Qgb3ZlcnJpZGUg YW4gYWN0aXZlIFhTTSBwb2xpY3kuCgpBbHNvLCBhcyBwYXJ0IG9mIHRoaXMgcGF0Y2ggd2UgYWRq dXN0IHRoZSBodm1vcCBoYW5kbGVyIHRvIHJlcXVpcmUKSFZNX1BBUkFNX0FMVFAyTSB0byBiZSBv ZiBhIHR5cGUgb3RoZXIgdGhlbiBkaXNhYmxlZCBmb3IgYWxsIG9wcy4gVGhpcyBoYXMgYmVlbgpw cmV2aW91c2x5IG9ubHkgcmVxdWlyZWQgZm9yIGdldC9zZXQgYWx0cDJtIGRvbWFpbiBzdGF0ZSwg YWxsIG90aGVyIG9wdGlvbnMKd2VyZSBnYXRlZCBvbiBhbHRwMm1fZW5hYmxlZC4gU2luY2UgYWx0 cDJtX2VuYWJsZWQgb25seSBnZXRzIHNldCBkdXJpbmcgc2V0CmFsdHAybSBkb21haW4gc3RhdGUs IHRoaXMgY2hhbmdlIGludHJvZHVjZXMgbm8gbmV3IHJlcXVpcmVtZW50cyB0byB0aGUgb3RoZXIK b3BzIGJ1dCBtYWtlcyBpdCBtb3JlIGNsZWFyIHRoYXQgaXQgaXMgcmVxdWlyZWQgZm9yIGFsbCBv cHMuCgpTaWduZWQtb2ZmLWJ5OiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzLmxlbmd5ZWxAemVudGlm aWMuY29tPgpTaWduZWQtb2ZmLWJ5OiBTZXJnZWogUHJvc2t1cmluIDxwcm9za3VyaW5Ac2VjLmlu LnR1bS5kZT4KLS0tCkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4K Q2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgpDYzogRGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3JhQHR5Y2hvLm5zYS5nb3Y+Cgp2MjogUmVuYW1l IEhWTUFMVFAyTV8qIHRvIFhFTl9BTFRQMk1fKgogICAgUmVsYXggeHNtIGNoZWNrIHRvIFhTTV9E TV9QUklWIGZvciBleHRlcm5hbC1vbmx5IG1vZGUKCnYzOiBJbnRyb2R1Y2UgbWFjcm8gTElCWExf SEFWRV9BUk1fQUxUUDJNIGluIHBhcmFsbGVsIHRvIHRoZSBmb3JtZXIKICAgIExJQlhMX0hBVkVf QUxUUDJNIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBhbHRwMm0gZm9yIHg4NiBhbmQgYW5kCiAg ICBhbHRwMm0gZm9yIEFSTSBhcmNoaXRlY3R1cmVzLgoKICAgIERvY3VtZW50IHRoZSBvcHRpb24g ImFsdHAybSIgaW4gLi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4uCgogICAgTWFpbnRhaW4gdGhl IGxlZ2FjeSBpbmZvLT51Lmh2bS5hbHRwMm0gZmllbGQgZm9yIHg4NiBIVk0gZG9tYWlucyBpbgog ICAgcGFyYWxsZWwgdG8gdGhlIGludHJvZHVjZWQgaW5mby0+YWx0cDJtIGZpZWxkIGZvciB4ODYg SFZNIGFuZCBBUk0KICAgIGRvbWFpbnMuCi0tLQogZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluICAg ICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHRvb2xzL2xp YnhsL2xpYnhsLmggICAgICAgICAgICAgfCAxMCArKysrKysrKystCiB0b29scy9saWJ4bC9saWJ4 bF9jcmVhdGUuYyAgICAgIHwgIDcgKysrKystLQogdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgICAg ICAgICB8IDMwICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogdG9vbHMvbGlieGwvbGli eGxfdHlwZXMuaWRsICAgICB8IDEzICsrKysrKysrKysrKysKIHRvb2xzL2xpYnhsL3hsX2NtZGlt cGwuYyAgICAgICAgfCAyNSArKysrKysrKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC9hcm0v aHZtLmMgICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9odm0v aHZtLmMgICAgICAgICAgfCAyMCArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvcHVi bGljL2h2bS9wYXJhbXMuaCB8IDEwICsrKysrKysrKy0KIHhlbi9pbmNsdWRlL3hzbS9kdW1teS5o ICAgICAgICAgfCAxNCArKysrKysrKysrKy0tLQogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAg ICAgICB8ICA2ICsrKy0tLQogeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAgICB8ICAyICst CiAxMiBmaWxlcyBjaGFuZ2VkLCAxNjIgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluIGIvZG9jcy9tYW4veGwuY2ZnLnBv ZC41LmluCmluZGV4IDQ4YzljMGQuLmJmOWE0OGEgMTAwNjQ0Ci0tLSBhL2RvY3MvbWFuL3hsLmNm Zy5wb2QuNS5pbgorKysgYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KQEAgLTEyNjgsNiArMTI2 OCwzNyBAQCBlbmFibGVkIGJ5IGRlZmF1bHQgYW5kIHlvdSBzaG91bGQgdXN1YWxseSBvbWl0IGl0 LiBJdCBtYXkgYmUgbmVjZXNzYXJ5CiB0byBkaXNhYmxlIHRoZSBIUEVUIGluIG9yZGVyIHRvIGlt cHJvdmUgY29tcGF0aWJpbGl0eSB3aXRoIGd1ZXN0CiBPcGVyYXRpbmcgU3lzdGVtcyAoWDg2IG9u bHkpCiAKKz1pdGVtIEI8YWx0cDJtPU1PREU+CisKK1NwZWNpZmllcyBhY2Nlc3MgbW9kZSB0byB0 aGUgYWx0ZXJuYXRlLXAybSBjYXBhYmlsaXR5LiBBbHRlcm5hdGUtcDJtIGFsbG93cyBhCitndWVz dCB0byBtYW5hZ2UgbXVsdGlwbGUgcDJtIGd1ZXN0IHBoeXNpY2FsICJtZW1vcnkgdmlld3MiIChh cyBvcHBvc2VkIHRvIGEKK3NpbmdsZSBwMm0pLiBUaGlzIG9wdGlvbiBpcyBkaXNhYmxlZCBieSBk ZWZhdWx0IGFuZCBpcyBhdmFpbGFibGUgdG8geDg2IGh2bSBhbmQKK0FSTSBkb21haW5zLiBZb3Ug bWF5IHdhbnQgdGhpcyBvcHRpb24gaWYgeW91IHdhbnQgdG8gYWNjZXNzLWNvbnRyb2wvaXNvbGF0 ZQorYWNjZXNzIHRvIHNwZWNpZmljIGd1ZXN0IHBoeXNpY2FsIG1lbW9yeSBwYWdlcyBhY2Nlc3Nl ZCBieSB0aGUgZ3Vlc3QsIGUuZy4gZm9yCitkb21haW4gbWVtb3J5IGludHJvc3BlY3Rpb24gb3Ig Zm9yIGlzb2xhdGlvbi9hY2Nlc3MtY29udHJvbCBvZiBtZW1vcnkgYmV0d2VlbgorY29tcG9uZW50 cyB3aXRoaW4gYSBzaW5nbGUgZ3Vlc3QgZG9tYWluLgorCitUaGUgdmFsaWQgdmFsdWVzIGFyZSBh cyBmb2xsb3dzOgorCis9b3ZlciA0CisKKz1pdGVtIEI8ImRpc2FibGVkIj4KKworQWx0cDJtIGlz IGRpc2FibGVkIGZvciB0aGUgZG9tYWluIChkZWZhdWx0KS4KKworPWl0ZW0gQjwibWl4ZWQiPgor CitUaGUgbWl4ZWQgbW9kZSBhbGxvd3MgYWNjZXNzIHRvIHRoZSBhbHRwMm0gaW50ZXJmYWNlIGZv ciBib3RoIGluLWd1ZXN0CithbmQgZXh0ZXJuYWwgdG9vbHMgYXMgd2VsbC4KKworPWl0ZW0gQjwi ZXh0ZXJuYWxfb25seSI+CisKK0VuYWJsZXMgYWNjZXNzIHRvIHRoZSBhbHRlcm5hdGUtcDJtIGNh cGFiaWxpdHkgZm9yIGh2bSBndWVzdHMgb25seQorYnkgZXh0ZXJuYWwgcHJpdmlsZWdlZCB0b29s cy4gTm90ZTogaWYgWFNNIGlzIGVuYWJsZWQgdGhlbiB0aGUgWFNNIHBvbGljeQorc2hvdWxkIGJl IHVzZWQgdG8gc3BlY2lmeSBleHRlcm5hbC1vbmx5IGFjY2VzcyB0byB0aGUgaW50ZXJmYWNlLgor Cis9YmFjaworCiA9aXRlbSBCPGFsdHAybWh2bT1CT09MRUFOPgogCiBFbmFibGVzIG9yIGRpc2Fi bGVzIGh2bSBndWVzdCBhY2Nlc3MgdG8gYWx0ZXJuYXRlLXAybSBjYXBhYmlsaXR5LgpAQCAtMTI3 OCw3ICsxMzA5LDExIEBAIFlvdSBtYXkgd2FudCB0aGlzIG9wdGlvbiBpZiB5b3Ugd2FudCB0byBh Y2Nlc3MtY29udHJvbC9pc29sYXRlCiBhY2Nlc3MgdG8gc3BlY2lmaWMgZ3Vlc3QgcGh5c2ljYWwg bWVtb3J5IHBhZ2VzIGFjY2Vzc2VkIGJ5CiB0aGUgZ3Vlc3QsIGUuZy4gZm9yIEhWTSBkb21haW4g bWVtb3J5IGludHJvc3BlY3Rpb24gb3IKIGZvciBpc29sYXRpb24vYWNjZXNzLWNvbnRyb2wgb2Yg bWVtb3J5IGJldHdlZW4gY29tcG9uZW50cyB3aXRoaW4KLWEgc2luZ2xlIGd1ZXN0IGh2bSBkb21h aW4uCithIHNpbmdsZSBndWVzdCBodm0gZG9tYWluLiBUaGlzIG9wdGlvbiBpcyBkZXByZWNhdGVk LCB1c2UgdGhlIG9wdGlvbgorImFsdHAybSIgaW5zdGVhZC4KKworTm90ZTogV2hpbGUgdGhlIG9w dGlvbiAiYWx0cDJtaHZtIiBpcyBkZXByZWNhdGVkLCBsZWdhY3kgYXBwbGljYXRpb25zIGZvcgor eDg2IHN5c3RlbXMgd2lsbCBjb250aW51ZSB0byB3b3JrIHVzaW5nIGl0LgogCiA9aXRlbSBCPG5l c3RlZGh2bT1CT09MRUFOPgogCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIvdG9v bHMvbGlieGwvbGlieGwuaAppbmRleCBhZTIxMzAyLi5mNzhkNjNlIDEwMDY0NAotLS0gYS90b29s cy9saWJ4bC9saWJ4bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTg0NywxMSArODQ3 LDE5IEBAIHR5cGVkZWYgc3RydWN0IGxpYnhsX19jdHggbGlieGxfY3R4OwogCiAvKgogICogTElC WExfSEFWRV9BTFRQMk0KLSAqIElmIHRoaXMgaXMgZGVmaW5lZCwgdGhlbiBsaWJ4bCBzdXBwb3J0 cyBhbHRlcm5hdGUgcDJtIGZ1bmN0aW9uYWxpdHkuCisgKiBJZiB0aGlzIGlzIGRlZmluZWQsIHRo ZW4gbGlieGwgc3VwcG9ydHMgYWx0ZXJuYXRlIHAybSBmdW5jdGlvbmFsaXR5IGZvcgorICogeDg2 IEhWTSBndWVzdHMuCiAgKi8KICNkZWZpbmUgTElCWExfSEFWRV9BTFRQMk0gMQogCiAvKgorICog TElCWExfSEFWRV9BUk1fQUxUUDJNCisgKiBJZiB0aGlzIGlzIGRlZmluZWQsIHRoZW4gbGlieGwg c3VwcG9ydHMgYWx0ZXJuYXRlIHAybSBmdW5jdGlvbmFsaXR5IGZvcgorICogQVJNIGd1ZXN0cy4K KyAqLworI2RlZmluZSBMSUJYTF9IQVZFX0FSTV9BTFRQMk0gMQorCisvKgogICogTElCWExfSEFW RV9SRU1VUwogICogSWYgdGhpcyBpcyBkZWZpbmVkLCB0aGVuIGxpYnhsIHN1cHBvcnRzIHJlbXVz LgogICovCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xzL2xp YnhsL2xpYnhsX2NyZWF0ZS5jCmluZGV4IDA0ZjhhZTkuLjIxZTMyYzkgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5j CkBAIC00MDYsNiArNDA2LDcgQEAgaW50IGxpYnhsX19kb21haW5fYnVpbGRfaW5mb19zZXRkZWZh dWx0KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICBsaWJ4bF9kb21haW5fdHlwZV90b19zdHJp bmcoYl9pbmZvLT50eXBlKSk7CiAgICAgICAgIHJldHVybiBFUlJPUl9JTlZBTDsKICAgICB9CisK ICAgICByZXR1cm4gMDsKIH0KIApAQCAtOTE4LDggKzkxOSwxMCBAQCBzdGF0aWMgdm9pZCBpbml0 aWF0ZV9kb21haW5fY3JlYXRlKGxpYnhsX19lZ2MgKmVnYywKIAogICAgIGlmIChkX2NvbmZpZy0+ Y19pbmZvLnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfSFZNICYmCiAgICAgICAgIChsaWJ4bF9k ZWZib29sX3ZhbChkX2NvbmZpZy0+Yl9pbmZvLnUuaHZtLm5lc3RlZF9odm0pICYmCi0gICAgICAg ICBsaWJ4bF9kZWZib29sX3ZhbChkX2NvbmZpZy0+Yl9pbmZvLnUuaHZtLmFsdHAybSkpKSB7Ci0g ICAgICAgIExPRyhFUlJPUiwgIm5lc3RlZGh2bSBhbmQgYWx0cDJtaHZtIGNhbm5vdCBiZSB1c2Vk IHRvZ2V0aGVyIik7CisgICAgICAgIC8qIENhbm5vdCBjb21iaW5lIG5lc3RlZF9odm0gd2l0aCBh bHRwMm0gb3IgYWx0cDJtaHZtIHBhcmFtcy4gKi8KKyAgICAgICAgKGxpYnhsX2RlZmJvb2xfdmFs KGRfY29uZmlnLT5iX2luZm8udS5odm0uYWx0cDJtKSB8fAorICAgICAgICAoZF9jb25maWctPmJf aW5mby5hbHRwMm0gIT0gTElCWExfQUxUUDJNX01PREVfRElTQUJMRUQpKSkpIHsKKyAgICAgICAg TE9HKEVSUk9SLCAibmVzdGVkaHZtIGFuZCBhbHRwMm0gY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIi KTsKICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS90b29scy9s aWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCmluZGV4IGVlZjUwNDUu LjMyYWY3NTcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCisrKyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2RvbS5jCkBAIC0yOTEsOCArMjkxLDYgQEAgc3RhdGljIHZvaWQgaHZtX3Nl dF9jb25mX3BhcmFtcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwgdWludDMyX3QgZG9taWQsCiAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLnZwdF9hbGlnbikp OwogICAgIHhjX2h2bV9wYXJhbV9zZXQoaGFuZGxlLCBkb21pZCwgSFZNX1BBUkFNX05FU1RFREhW TSwKICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoaW5mby0+dS5odm0ubmVz dGVkX2h2bSkpOwotICAgIHhjX2h2bV9wYXJhbV9zZXQoaGFuZGxlLCBkb21pZCwgSFZNX1BBUkFN X0FMVFAyTSwKLSAgICAgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoaW5mby0+dS5o dm0uYWx0cDJtKSk7CiB9CiAKIGludCBsaWJ4bF9fYnVpbGRfcHJlKGxpYnhsX19nYyAqZ2MsIHVp bnQzMl90IGRvbWlkLApAQCAtMzAxLDYgKzI5OSw3IEBAIGludCBsaWJ4bF9fYnVpbGRfcHJlKGxp YnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZv ICpjb25zdCBpbmZvID0gJmRfY29uZmlnLT5iX2luZm87CiAgICAgbGlieGxfY3R4ICpjdHggPSBs aWJ4bF9fZ2Nfb3duZXIoZ2MpOwogICAgIGNoYXIgKnhzX2RvbWlkLCAqY29uX2RvbWlkOworICAg IGJvb2wgYWx0cDJtX3N1cHBvcnQgPSBmYWxzZTsKICAgICBpbnQgcmM7CiAKICAgICBpZiAoeGNf ZG9tYWluX21heF92Y3B1cyhjdHgtPnhjaCwgZG9taWQsIGluZm8tPm1heF92Y3B1cykgIT0gMCkg ewpAQCAtNDM0LDYgKzQzMywzMyBAQCBpbnQgbGlieGxfX2J1aWxkX3ByZShsaWJ4bF9fZ2MgKmdj LCB1aW50MzJfdCBkb21pZCwKICNlbmRpZgogICAgIH0KIAorI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykKKyAgICAvKiBBbHRlcm5hdGUgcDJtIHN1cHBvcnQgb24g eDg2IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBIVk0gZ3Vlc3RzLiAqLworICAgIGlmIChpbmZvLT50 eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkKKyAgICAgICAgYWx0cDJtX3N1cHBvcnQgPSB0 cnVlOworI2VsaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAg IC8qIEFsdGVybmF0ZSBwMm0gc3VwcG9ydCBvbiBBUk0gaXMgYXZhaWxhYmxlIGZvciBhbGwgZ3Vl c3RzLiAqLworICAgIGFsdHAybV9zdXBwb3J0ID0gdHJ1ZTsKKyNlbmRpZgorCisgICAgaWYgKGFs dHAybV9zdXBwb3J0KSB7CisgICAgICAgIC8qIFRoZSBjb25maWcgcGFyYW1ldGVyICJhbHRwMm0i IHJlcGxhY2VzIHRoZSBwYXJhbWV0ZXIgImFsdHAybWh2bSIuIEZvcgorICAgICAgICAgKiBsZWdh Y3kgcmVhc29ucywgYm90aCBwYXJhbWV0ZXJzIGFyZSBhY2NlcHRlZCBvbiB4ODYgSFZNIGd1ZXN0 cyAob25seQorICAgICAgICAgKiAiYWx0cDJtIiBpcyBhY2NlcHRlZCBvbiBBUk0gZ3Vlc3RzKS4K KyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGxlZ2FjeSBmaWVsZCBpbmZvLT51Lmh2bS5h bHRwMm0gaXMgc2V0LCBhY3RpdmF0ZSBhbHRwMm0uCisgICAgICAgICAqIE90aGVyd2lzZSBzZXQg YWx0cDJtIGJhc2VkIG9uIHRoZSBmaWVsZCBpbmZvLT5hbHRwMm0uICovCisjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgICAgICBpZiAoaW5mby0+YWx0cDJt ID09IExJQlhMX0FMVFAyTV9NT0RFX0RJU0FCTEVEICYmCisgICAgICAgICAgICBsaWJ4bF9kZWZi b29sX3ZhbChpbmZvLT51Lmh2bS5hbHRwMm0pKQorICAgICAgICAgICAgeGNfaHZtX3BhcmFtX3Nl dChjdHgtPnhjaCwgZG9taWQsIEhWTV9QQVJBTV9BTFRQMk0sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLmFsdHAybSkpOworICAgICAg ICBlbHNlCisjZW5kaWYKKyAgICAgICAgICAgIHhjX2h2bV9wYXJhbV9zZXQoY3R4LT54Y2gsIGRv bWlkLCBIVk1fUEFSQU1fQUxUUDJNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZv LT5hbHRwMm0pOworICAgIH0KKwogICAgIHJjID0gbGlieGxfX2FyY2hfZG9tYWluX2NyZWF0ZShn YywgZF9jb25maWcsIGRvbWlkKTsKIAogICAgIHJldHVybiByYzsKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL2xpYnhsX3R5cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAppbmRl eCBlZjYxNGJlLi44NzhkNWFlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5p ZGwKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC00MzksNiArNDM5LDEzIEBA IGxpYnhsX3JkbV9yZXNlcnZlID0gU3RydWN0KCJyZG1fcmVzZXJ2ZSIsIFsKICAgICAoInBvbGlj eSIsICAgICAgbGlieGxfcmRtX3Jlc2VydmVfcG9saWN5KSwKICAgICBdKQogCisjIENvbnNpc3Rl bnQgd2l0aCB0aGUgdmFsdWVzIGRlZmluZWQgZm9yIEhWTV9QQVJBTV9BTFRQMk0KK2xpYnhsX2Fs dHAybV9tb2RlID0gRW51bWVyYXRpb24oImFsdHAybV9tb2RlIiwgWworICAgICgwLCAiZGlzYWJs ZWQiKSwKKyAgICAoMSwgIm1peGVkIiksCisgICAgKDIsICJleHRlcm5hbF9vbmx5IiksCisgICAg XSwgaW5pdF92YWwgPSAiTElCWExfQUxUUDJNX01PREVfRElTQUJMRUQiKQorCiBsaWJ4bF9kb21h aW5fYnVpbGRfaW5mbyA9IFN0cnVjdCgiZG9tYWluX2J1aWxkX2luZm8iLFsKICAgICAoIm1heF92 Y3B1cyIsICAgICAgIGludGVnZXIpLAogICAgICgiYXZhaWxfdmNwdXMiLCAgICAgbGlieGxfYml0 bWFwKSwKQEAgLTUxMiw2ICs1MTksOSBAQCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyA9IFN0cnVj dCgiZG9tYWluX2J1aWxkX2luZm8iLFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgibW1pb19ob2xlX21lbWtiIiwgIE1lbUtCKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgidGltZXJfbW9kZSIsICAgICAgIGxpYnhsX3RpbWVyX21vZGUp LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJuZXN0ZWRfaHZtIiwg ICAgICAgbGlieGxfZGVmYm9vbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjIFRoZSB1Lmh2bS5hbHRwMm0gZmllbGQgaXMgdXNlZCBzb2xlbHkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZm9yIHg4NiBIVk0gZ3Vlc3RzIGFuZCBpcyBt YWludGFpbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvciBs ZWdhY3kgcHVycG9zZXMuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo ImFsdHAybSIsICAgICAgICAgICBsaWJ4bF9kZWZib29sKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgic21iaW9zX2Zpcm13YXJlIiwgIHN0cmluZyksCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImFjcGlfZmlybXdhcmUiLCAgICBzdHJp bmcpLApAQCAtNTYxLDYgKzU3MSw5IEBAIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvID0gU3RydWN0 KCJkb21haW5fYnVpbGRfaW5mbyIsWwogCiAgICAgKCJhcmNoX2FybSIsIFN0cnVjdChOb25lLCBb KCJnaWNfdmVyc2lvbiIsIGxpYnhsX2dpY192ZXJzaW9uKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF0pKSwKKyAgICAjIEFsdGVybmF0ZSBwMm0gaXMgbm90IGJvdW5kIHRvIGFueSBh cmNoaXRlY3R1cmUgb3IgZ3Vlc3QgdHlwZSwgYXMgaXQgaXMKKyAgICAjIHN1cHBvcnRlZCBieSB4 ODYgSFZNIGFuZCBBUk0gZG9tYWlucy4KKyAgICAoImFsdHAybSIsIGxpYnhsX2FsdHAybV9tb2Rl KSwKIAogICAgIF0sIGRpcj1ESVJfSU4KICkKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2Nt ZGltcGwuYyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwppbmRleCA3Zjk2MWUzLi4xNWY0YWI2 IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKKysrIGIvdG9vbHMvbGlieGwv eGxfY21kaW1wbC5jCkBAIC0xNjY3LDcgKzE2NjcsMTQgQEAgc3RhdGljIHZvaWQgcGFyc2VfY29u ZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKIAogICAgICAgICB4bHVfY2ZnX2dl dF9kZWZib29sKGNvbmZpZywgIm5lc3RlZGh2bSIsICZiX2luZm8tPnUuaHZtLm5lc3RlZF9odm0s IDApOwogCi0gICAgICAgIHhsdV9jZmdfZ2V0X2RlZmJvb2woY29uZmlnLCAiYWx0cDJtaHZtIiwg JmJfaW5mby0+dS5odm0uYWx0cDJtLCAwKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogVGhlIGNv bmZpZyBwYXJhbWV0ZXIgImFsdHAybWh2bSIgaXMgY29uc2lkZXJlZCBkZXByZWNhdGVkLCBob3dl dmVyCisgICAgICAgICAqIGZ1cnRoZXIgY29uc2lkZXJlZCBiZWNhdXNlIG9mIGxlZ2FjeSByZWFz b25zLiBUaGUgY29uZmlnIHBhcmFtZXRlcgorICAgICAgICAgKiAiYWx0cDJtIiBzaGFsbCBiZSB1 c2VkIGluc3RlYWQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIXhsdV9jZmdfZ2V0X2RlZmJv b2woY29uZmlnLCAiYWx0cDJtaHZtIiwgJmJfaW5mby0+dS5odm0uYWx0cDJtLCAwKSkKKyAgICAg ICAgICAgIGZwcmludGYoc3RkZXJyLCAiV0FSTklORzogU3BlY2lmeWluZyBcImFsdHAybWh2bVwi IGlzIGRlcHJlY2F0ZWQuICIKKyAgICAgICAgICAgICAgICAgICAgIlBsZWFzZSB1c2UgXCJhbHRw Mm1cIiBpbnN0ZWFkLlxuIik7CiAKICAgICAgICAgeGx1X2NmZ19yZXBsYWNlX3N0cmluZyhjb25m aWcsICJzbWJpb3NfZmlybXdhcmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZi X2luZm8tPnUuaHZtLnNtYmlvc19maXJtd2FyZSwgMCk7CkBAIC0xNzI3LDYgKzE3MzQsMjIgQEAg c3RhdGljIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwK ICAgICAgICAgYWJvcnQoKTsKICAgICB9CiAKKyAgICBpZiAoIXhsdV9jZmdfZ2V0X2xvbmcoY29u ZmlnLCAiYWx0cDJtIiwgJmwsIDApKSB7CisgICAgICAgIGlmIChsIDwgTElCWExfQUxUUDJNX01P REVfRElTQUJMRUQgfHwKKyAgICAgICAgICAgIGwgPiBMSUJYTF9BTFRQMk1fTU9ERV9FWFRFUk5B TF9PTkxZKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVSUk9SOiBpbnZhbGlkIHZh bHVlICVsZCBmb3IgXCJhbHRwMm1cIlxuIiwgbCk7CisgICAgICAgICAgICBleGl0ICgxKTsKKyAg ICAgICAgfQorCisgICAgICAgIGJfaW5mby0+YWx0cDJtID0gbDsKKyAgICB9IGVsc2UgaWYgKCF4 bHVfY2ZnX2dldF9zdHJpbmcoY29uZmlnLCAiYWx0cDJtIiwgJmJ1ZiwgMCkpIHsKKyAgICAgICAg aWYgKGxpYnhsX2FsdHAybV9tb2RlX2Zyb21fc3RyaW5nKGJ1ZiwgJmJfaW5mby0+YWx0cDJtKSkg eworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogaW52YWxpZCB2YWx1ZSBcIiVz XCIgZm9yIFwiYWx0cDJtXCJcbiIsCisgICAgICAgICAgICAgICAgICAgIGJ1Zik7CisgICAgICAg ICAgICBleGl0ICgxKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmICgheGx1X2NmZ19nZXRf bGlzdChjb25maWcsICJpb3BvcnRzIiwgJmlvcG9ydHMsICZudW1faW9wb3J0cywgMCkpIHsKICAg ICAgICAgYl9pbmZvLT5udW1faW9wb3J0cyA9IG51bV9pb3BvcnRzOwogICAgICAgICBiX2luZm8t PmlvcG9ydHMgPSBjYWxsb2MobnVtX2lvcG9ydHMsIHNpemVvZigqYl9pbmZvLT5pb3BvcnRzKSk7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vaHZtLmMgYi94ZW4vYXJjaC9hcm0vaHZtLmMKaW5k ZXggYzc1NGFkMS4uNDAxOGU5YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2h2bS5jCisrKyBi L3hlbi9hcmNoL2FybS9odm0uYwpAQCAtNzIsNyArNzIsOCBAQCBzdGF0aWMgaW50IGRvX2FsdHAy bV9vcChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgZ290byBvdXQ7 CiAgICAgfQogCi0gICAgaWYgKCAocmMgPSB4c21faHZtX2FsdHAybWh2bV9vcChYU01fVEFSR0VU LCBkKSkgKQorICAgIGlmICggKHJjID0geHNtX2h2bV9hbHRwMm1odm1fb3AoWFNNX09USEVSLCBk LAorICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX0FM VFAyTV0pKSApCiAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgc3dpdGNoICggYS5jbWQgKQpAQCAt MjMyLDYgKzIzMywxNyBAQCBsb25nIGRvX2h2bV9vcCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VF U1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICAgICAgICAgIGlmICggcmMgKQogICAgICAg ICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAgICBzd2l0Y2ggKCBhLmluZGV4ICkKKyAgICAg ICAgICAgIHsKKyAgICAgICAgICAgIGNhc2UgSFZNX1BBUkFNX0FMVFAyTToKKyAgICAgICAgICAg ICAgICByYyA9IHhzbV9odm1fcGFyYW1fYWx0cDJtaHZtKFhTTV9QUklWLCBkKTsKKyAgICAgICAg ICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICAgICAgaWYgKCBhLnZhbHVlID4gWEVOX0FMVFAyTV9leHRlcm5hbF9vbmx5ICkKKyAgICAgICAg ICAgICAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgfQorCiAgICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW2EuaW5kZXhd ID0gYS52YWx1ZTsKICAgICAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAwMTgwZjI2Li5jZTQ4 ZjhhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMKQEAgLTUwNDIsNyArNTA0Miw3IEBAIHN0YXRpYyBpbnQgaHZtb3Bfc2V0X3Bh cmFtKAogICAgICAgICByYyA9IHhzbV9odm1fcGFyYW1fYWx0cDJtaHZtKFhTTV9QUklWLCBkKTsK ICAgICAgICAgaWYgKCByYyApCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgaWYgKCBhLnZh bHVlID4gMSApCisgICAgICAgIGlmICggYS52YWx1ZSA+IFhFTl9BTFRQMk1fZXh0ZXJuYWxfb25s eSApCiAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CiAgICAgICAgIGlmICggYS52YWx1ZSAmJgog ICAgICAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX05FU1RFREhW TV0gKQpAQCAtNTIzOCwxOCArNTIzOCwxOSBAQCBzdGF0aWMgaW50IGRvX2FsdHAybV9vcCgKICAg ICAgICAgZ290byBvdXQ7CiAgICAgfQogCi0gICAgaWYgKCAocmMgPSB4c21faHZtX2FsdHAybWh2 bV9vcChYU01fVEFSR0VULCBkKSkgKQorICAgIGlmICggIWQtPmFyY2guaHZtX2RvbWFpbi5wYXJh bXNbSFZNX1BBUkFNX0FMVFAyTV0gKQorICAgIHsKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAg ICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBpZiAoIChyYyA9IHhzbV9odm1fYWx0cDJtaHZt X29wKFhTTV9PVEhFUiwgZCwKKyAgICAgICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFy YW1zW0hWTV9QQVJBTV9BTFRQMk1dKSkgKQogICAgICAgICBnb3RvIG91dDsKIAogICAgIHN3aXRj aCAoIGEuY21kICkKICAgICB7CiAgICAgY2FzZSBIVk1PUF9hbHRwMm1fZ2V0X2RvbWFpbl9zdGF0 ZToKLSAgICAgICAgaWYgKCAhZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fQUxU UDJNXSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKLSAgICAgICAgICAg IGJyZWFrOwotICAgICAgICB9Ci0KICAgICAgICAgYS51LmRvbWFpbl9zdGF0ZS5zdGF0ZSA9IGFs dHAybV9hY3RpdmUoZCk7CiAgICAgICAgIHJjID0gX19jb3B5X3RvX2d1ZXN0KGFyZywgJmEsIDEp ID8gLUVGQVVMVCA6IDA7CiAgICAgICAgIGJyZWFrOwpAQCAtNTI1OSw4ICs1MjYwLDcgQEAgc3Rh dGljIGludCBkb19hbHRwMm1fb3AoCiAgICAgICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgICAgICBi b29sX3Qgb3N0YXRlOwogCi0gICAgICAgIGlmICggIWQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNb SFZNX1BBUkFNX0FMVFAyTV0gfHwKLSAgICAgICAgICAgICBuZXN0ZWRodm1fZW5hYmxlZChkKSAp CisgICAgICAgIGlmICggbmVzdGVkaHZtX2VuYWJsZWQoZCkgKQogICAgICAgICB7CiAgICAgICAg ICAgICByYyA9IC1FSU5WQUw7CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL3B1YmxpYy9odm0vcGFyYW1zLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFt cy5oCmluZGV4IGY3MzM4YTMuLjNmZmMzM2IgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1Ymxp Yy9odm0vcGFyYW1zLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaApAQCAt MjI1LDggKzIyNSwxNiBAQAogLyogTG9jYXRpb24gb2YgdGhlIFZNIEdlbmVyYXRpb24gSUQgaW4g Z3Vlc3QgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZS4gKi8KICNkZWZpbmUgSFZNX1BBUkFNX1ZNX0dF TkVSQVRJT05fSURfQUREUiAzNAogCi0vKiBCb29sZWFuOiBFbmFibGUgYWx0cDJtICovCisvKgor ICogU2V0IG1vZGUgZm9yIGFsdHAybToKKyAqICBkaXNhYmxlZDogZG9uJ3QgYWN0aXZhdGUgYWx0 cDJtIChkZWZhdWx0KQorICogIG1peGVkOiBhbGxvdyBhY2Nlc3MgdG8gYWx0cDJtIGZvciBib3Ro IGluLWd1ZXN0IGFuZCBleHRlcm5hbCB0b29scworICogIGV4dGVybmFsX29ubHk6IGFsbG93IGFj Y2VzcyB0byBleHRlcm5hbCBwcml2aWxlZ2VkIHRvb2xzIG9ubHkKKyAqLwogI2RlZmluZSBIVk1f UEFSQU1fQUxUUDJNICAgICAgIDM1CisjZGVmaW5lIFhFTl9BTFRQMk1fZGlzYWJsZWQgICAgICAw CisjZGVmaW5lIFhFTl9BTFRQMk1fbWl4ZWQgICAgICAgICAxCisjZGVmaW5lIFhFTl9BTFRQMk1f ZXh0ZXJuYWxfb25seSAyCiAKIC8qCiAgKiBTaXplIG9mIHRoZSB4ODcgRlBVIEZJUC9GRFAgcmVn aXN0ZXJzIHRoYXQgdGhlIGh5cGVydmlzb3IgbmVlZHMgdG8KZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL3hzbS9kdW1teS5oIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKaW5kZXggNDA2Y2QxOC4u YTBmNmI3MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKKysrIGIveGVuL2lu Y2x1ZGUveHNtL2R1bW15LmgKQEAgLTU1NCwxMCArNTU0LDE4IEBAIHN0YXRpYyBYU01fSU5MSU5F IGludCB4c21faHZtX3BhcmFtX2FsdHAybWh2bShYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFp biAqZCkKICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9t YWluLCBkKTsKIH0KIAotc3RhdGljIFhTTV9JTkxJTkUgaW50IHhzbV9odm1fYWx0cDJtaHZtX29w KFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkKQorc3RhdGljIFhTTV9JTkxJTkUgaW50 IHhzbV9odm1fYWx0cDJtaHZtX29wKFhTTV9ERUZBVUxUX0FSRyBzdHJ1Y3QgZG9tYWluICpkLCBp bnQgbW9kZSkKIHsKLSAgICBYU01fQVNTRVJUX0FDVElPTihYU01fVEFSR0VUKTsKLSAgICByZXR1 cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlvbiwgY3VycmVudC0+ZG9tYWluLCBkKTsKKyAgICBY U01fQVNTRVJUX0FDVElPTihYU01fT1RIRVIpOworICAgIHN3aXRjaCAoIG1vZGUgKQorICAgIHsK KyAgICBjYXNlIFhFTl9BTFRQMk1fbWl4ZWQ6CisgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9h Y3Rpb24oWFNNX1RBUkdFVCwgY3VycmVudC0+ZG9tYWluLCBkKTsKKyAgICBjYXNlIFhFTl9BTFRQ Mk1fZXh0ZXJuYWxfb25seToKKyAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01f RE1fUFJJViwgY3VycmVudC0+ZG9tYWluLCBkKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1 cm4gLUVQRVJNOworICAgIH07CiB9CiAKIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21fdm1fZXZl bnRfY29udHJvbChYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCwgaW50IG1vZGUsIGlu dCBvcCkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS94c20uaCBiL3hlbi9pbmNsdWRlL3hz bS94c20uaAppbmRleCA1ZGM1OWRkLi40ZjUzYjI3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94 c20veHNtLmgKKysrIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCkBAIC0xNDAsNyArMTQwLDcgQEAg c3RydWN0IHhzbV9vcGVyYXRpb25zIHsKICAgICBpbnQgKCpodm1fY29udHJvbCkgKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgb3ApOwogICAgIGludCAoKmh2bV9wYXJhbV9uZXN0ZWQp IChzdHJ1Y3QgZG9tYWluICpkKTsKICAgICBpbnQgKCpodm1fcGFyYW1fYWx0cDJtaHZtKSAoc3Ry dWN0IGRvbWFpbiAqZCk7Ci0gICAgaW50ICgqaHZtX2FsdHAybWh2bV9vcCkgKHN0cnVjdCBkb21h aW4gKmQpOworICAgIGludCAoKmh2bV9hbHRwMm1odm1fb3ApIChzdHJ1Y3QgZG9tYWluICpkLCBp bnQgbW9kZSk7CiAgICAgaW50ICgqZ2V0X3ZudW1haW5mbykgKHN0cnVjdCBkb21haW4gKmQpOwog CiAgICAgaW50ICgqdm1fZXZlbnRfY29udHJvbCkgKHN0cnVjdCBkb21haW4gKmQsIGludCBtb2Rl LCBpbnQgb3ApOwpAQCAtNTgzLDkgKzU4Myw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV9odm1f cGFyYW1fYWx0cDJtaHZtICh4c21fZGVmYXVsdF90IGRlZiwgc3RydWN0IGRvbWFpbiAqZCkKICAg ICByZXR1cm4geHNtX29wcy0+aHZtX3BhcmFtX2FsdHAybWh2bShkKTsKIH0KIAotc3RhdGljIGlu bGluZSBpbnQgeHNtX2h2bV9hbHRwMm1odm1fb3AgKHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3Qg ZG9tYWluICpkKQorc3RhdGljIGlubGluZSBpbnQgeHNtX2h2bV9hbHRwMm1odm1fb3AgKHhzbV9k ZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbW9kZSkKIHsKLSAgICByZXR1cm4g eHNtX29wcy0+aHZtX2FsdHAybWh2bV9vcChkKTsKKyAgICByZXR1cm4geHNtX29wcy0+aHZtX2Fs dHAybWh2bV9vcChkLCBtb2RlKTsKIH0KIAogc3RhdGljIGlubGluZSBpbnQgeHNtX2dldF92bnVt YWluZm8gKHhzbV9kZWZhdWx0X3QgZGVmLCBzdHJ1Y3QgZG9tYWluICpkKQpkaWZmIC0tZ2l0IGEv eGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IGVjNmY1 YjQuLmI5NzM5NmUgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYworKysgYi94ZW4v eHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTExOTcsNyArMTE5Nyw3IEBAIHN0YXRpYyBpbnQgZmxhc2tf aHZtX3BhcmFtX2FsdHAybWh2bShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHJldHVybiBjdXJyZW50 X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0hWTSwgSFZNX19BTFRQMk1IVk0pOwogfQogCi1zdGF0aWMg aW50IGZsYXNrX2h2bV9hbHRwMm1odm1fb3Aoc3RydWN0IGRvbWFpbiAqZCkKK3N0YXRpYyBpbnQg Zmxhc2tfaHZtX2FsdHAybWh2bV9vcChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgbW9kZSkKIHsKICAg ICByZXR1cm4gY3VycmVudF9oYXNfcGVybShkLCBTRUNDTEFTU19IVk0sIEhWTV9fQUxUUDJNSFZN X09QKTsKIH0KLS0gCjIuOS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==