From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= Subject: Re: [PATCH v3 5/5] libxl: add options to enable/disable emulated devices Date: Thu, 21 Jan 2016 11:01:43 +0100 Message-ID: <56A0AC87.8060405@citrix.com> References: <1453291044-83976-1-git-send-email-roger.pau@citrix.com> <1453291044-83976-6-git-send-email-roger.pau@citrix.com> <1453294881.26343.112.camel@citrix.com> <569FD316.3090202@citrix.com> <1453369180.26343.181.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1aMC4x-0007a8-Bl for xen-devel@lists.xenproject.org; Thu, 21 Jan 2016 10:02:59 +0000 In-Reply-To: <1453369180.26343.181.camel@citrix.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: Ian Campbell , xen-devel@lists.xenproject.org Cc: Wei Liu , Ian Jackson List-Id: xen-devel@lists.xenproject.org RWwgMjEvMDEvMTYgYSBsZXMgMTAuMzksIElhbiBDYW1wYmVsbCBoYSBlc2NyaXQ6Cj4gT24gV2Vk LCAyMDE2LTAxLTIwIGF0IDE5OjMzICswMTAwLCBSb2dlciBQYXUgTW9ubsOpIHdyb3RlOgo+PiBF bCAyMC8wMS8xNiBhIGxlcyAxNC4wMSwgSWFuIENhbXBiZWxsIGhhIGVzY3JpdDoKPj4+IE9uIFdl ZCwgMjAxNi0wMS0yMCBhdCAxMjo1NyArMDEwMCwgUm9nZXIgUGF1IE1vbm5lIHdyb3RlOgo+Pj4+ IEFsbG93IGVuYWJsaW5nIG9yIGRpc2FibGluZyBlbXVsYXRlZCBkZXZpY2VzIGZyb20gdGhlIGxp YnhsIGRvbWFpbgo+Pj4+IGNvbmZpZ3VyYXRpb24gZmlsZS4gRm9yIEhWTSBndWVzdHMgd2l0aCBh IGRldmljZSBtb2RlbCBhbGwgdGhlCj4+Pj4gZW11bGF0ZWQKPj4+PiBkZXZpY2VzIGFyZSBlbmFi bGVkLiBGb3IgSFZNIGd1ZXN0cyB3aXRob3V0IGEgZGV2aWNlIG1vZGVsIG5vIGRldmljZXMKPj4+ PiBhcmUKPj4+PiBlbmFibGVkIGJ5IGRlZmF1bHQsIGFsdGhvdWdoIHRoZXkgY2FuIGJlIGVuYWJs ZWQgdXNpbmcgdGhlIG9wdGlvbnMKPj4+PiBwcm92aWRlZC4KPj4+PiBUaGUgYXJiaXRlciBvZiB3 aGV0aGVyIGEgY29tYmluYXRpb24gaXMgcG9zaWJsZSBvciBub3QgaXMgYWx3YXlzIFhlbiwKPj4+ PiBsaWJ4bAo+Pj4+IGRvZXNuJ3QgZG8gYW55IGtpbmQgb2YgY2hlY2suCj4+Pj4KPj4+PiBUaGlz IHNldCBvZiBvcHRpb25zIGlzIGFsc28gcHJvcGFnYXRlZCBpbnNpZGUgb2YgdGhlIGxpYnhsIG1p Z3JhdGlvbgo+Pj4+IHJlY29yZAo+Pj4+IGFzIHBhcnQgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBs aWJ4bF9kb21haW5fYnVpbGRfaW5mbyBzdHJ1Y3QuCj4+Pgo+Pj4gLi4uIGFuZCB0aGlzIGlzIHRo ZSByZWFsIG1vdGl2YXRpb24gZm9yIHRoaXMgY2hhbmdlLCBub3QgYWN0dWFsbHkKPj4+IGFsbG93 aW5nCj4+PiB1c2VycyB0byBjb250cm9sIGFsbCB0aGlzIEFJVUkuCj4+Pgo+Pj4gRGlkIHlvdSBj aGVjayB0aGF0IHRoZSBmaWVsZHMgdXBkYXRlZCB1c2luZyBsaWJ4bF9kZWZib29sX3NldGRlZmF1 bHQKPj4+IGFyZQo+Pj4gYWN0dWFsbHkgdXBkYXRlZCBpbiB0aGUgSlNPTiBjb3B5IGFuZCB0aGVy ZWZvcmUgcHJvcGFnYXRlZCB0byB0aGUgb3RoZXIKPj4+IHNpZGUgb2YgYSBtaWdyYXRpb24gYXMg c3BlY2lmaWMgdmFsdWVzIGFuZCBub3QgYXMgInBpY2sgYSBkZWZhdWx0Ij8gSQo+Pj4gdGhpbmsK Pj4+IHdlIGRvbid0IHdhbnQgdGhlc2UgY2hhbmdpbmcgb24gbWlncmF0aW9uLiBJIHRoaW5rL2hv cGUgYWxsIHRoaXMgd2FzCj4+PiBhdXRvbWF0aWNhbGx5IGhhbmRsZWQgYnkgdGhlIHdvcmsgV2Vp IGRpZCBpbiB0aGUgbGFzdCByZWxlYXNlIGN5Y2xlLgo+Pgo+PiBObywgdmFsdWVzIHBvcHVsYXRl ZCBieSB0aGUge2J1aWxkL2NyZWF0ZX1faW5mb19zZXRkZWZhdWx0IGZ1bmN0aW9ucyBhcmUKPj4g bm90IHByb3BhZ2F0ZWQsIE9UT0ggdmFsdWVzIG1hbnVhbGx5IHNldCBieSB0aGUgdXNlciBpbiB0 aGUgY29uZmlnIGZpbGUKPj4gYXJlIGluZGVlZCBwcm9wYWdhdGVkLiBEbyB3ZSBoYXZlIGFueSBn dWFyYW50ZWUgdGhhdCBfc2V0ZGVmYXVsdCBpcwo+PiBhbHdheXMgZ29pbmcgdG8gYmVoYXZlIGlu IHRoZSBzYW1lIHdheT8KPiAKPiBObywgcGFydCBvZiB0aGUgcHVycG9zZSBvZiBkZWZib29sIGFu ZCB0aGUgb3RoZXIgImRvIHRoZSBkZWZhdWx0IiB2YWx1ZXMgaXMKPiB0aGF0IHdlIGNhbiBldm9s dmUgdGhpbmdzIG92ZXIgdGltZS4KPgo+PiBJZiB3ZSBkb24ndCBoYXZlIHRoYXQgZ3VhcmFudGVl IEkgdGhpbmsgdGhpcyBpcyBhbHJlYWR5IGEgYnVnLCBhbmQgd2UKPj4gc2hvdWxkIGNhbGwgX3Nl dGRlZmF1bHQgYmVmb3JlIHNlbmRpbmcgdGhlIGRvbWFpbiBpbmZvIHRvIHRoZSBvdGhlciBlbmQu Cj4+IEluIGZhY3QgSSBoYXZlIGEgcGF0Y2ggdGhhdCBkb2VzIGV4YWN0bHkgdGhhdCwgYnV0IEkn bSB1bnN1cmUgaWYgaXQncwo+PiBuZWVkZWQgYmVjYXVzZSBJIGRvbid0IGtub3cgdGhlIHBvbGlj eSByZWdhcmRpbmcgZGVmYXVsdCB2YWx1ZXMgaW4gbGlieGwuCj4gCj4gV2VpLCBpc24ndCB0aGlz ICh0dXJuaW5nIHRoZSBkZWZhdWx0cyBpbnRvIGNvbmNyZXRlIHZhbHVlcykgc3VwcG9zZWQgdG8g YmUKPiB0YWtlbiBjYXJlIG9mIGJ5IHRoZSBKU09OIG1hbmdsaW5nIHdoaWNoIHlvdSBhZGRlZD8K CkhlaCwgSSB0aGluayB5b3UgbWVhbiB0aGUgSlNPTiBtYW5nbGluZyBhZGRlZCBieSBXZWkuIElu IG9yZGVyIHRvIApwcm9wYWdhdGUgdGhlIHZhbHVlcyBmaWxsZWQgYnkgZGVmYXVsdCBpbiBsaWJ4 bF9kb21haW5fY29uZmlnIEkgaGFkIHRvIAphZGQgdGhlIGZvbGxvd2luZyBwYXRjaCwgd2hpY2gg YmFzaWNhbGx5IGNhbGxzIHRoZSBfc2V0ZGVmYXVsdCAKZnVuY3Rpb25zIGJlZm9yZSBjb252ZXJ0 aW5nIHRoZSBkb21haW5fY29uZmlnIGludG8gSlNPTi4gSSdtIHBsYW5uaW5nIAp0byBtYWtlIGl0 IHBhcnQgb2YgdGhpcyBzZXJpZXMgaW4gdGhlIG5leHQgaXRlcmF0aW9uOgoKLS0tCmNvbW1pdCBi MWIyY2VhNGI2MWNlOWJkMDU3OTdkM2RjNWZmMGY1ZmZmY2NmZDA1CkF1dGhvcjogUm9nZXIgUGF1 IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KRGF0ZTogICBXZWQgSmFuIDIwIDE5OjA2OjUw IDIwMTYgKzAxMDAKCiAgICBsaWJ4bDogaW50cm9kdWNlIGxpYnhsX2RvbWFpbl9pbmZvX3NldGRl ZmF1bHQgdG8gdGhlIHB1YmxpYyBBUEkKICAgIAogICAgVGhlIG5ld2x5IGludHJvZHVjZWQgZnVu Y3Rpb24gcG9wdWxhdGVzIHRoZSBsaWJ4bF9kb21haW5fY29uZmlnIHdpdGggdGhlaXIKICAgIGRl ZmF1bHQgdmFsdWVzLCBqdXN0IGxpa2UgaXQncyBkb25lIGR1cmluZyBkb21haW4gY3JlYXRpb24u CiAgICAKICAgIFRoaXMgaXMgbmVlZGVkIHNvIHRoZSBsaWJ4bF9kb21haW5fY29uZmlnIHNlbnQg dG8gdGhlIHJlc3RvcmUgc2lkZSBkdXJpbmcKICAgIG1pZ3JhdGlvbiBpcyBhY2N1cmF0ZSwgc2lu Y2UgZGVmYXVsdCB2YWx1ZXMgbWlnaHQgY2hhbmdlIGJldHdlZW4gbGlieGwKICAgIHZlcnNpb25z LgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KICAgIC0tLQogICAgLS0tCiAgICBOQjogSSdtIHVuc3VyZSB3aGV0aGVyIHRoaXMg aXMgYSBidWcgb3Igbm90LiBJTUhPIEkgdGhpbmsgaXQgaXMsIGJlY2F1c2UKICAgIHRoZXJlJ3Mg bm8gZ3VhcmFudGVlIHRoYXQgdGhlIGRlZmF1bHQgdmFsdWVzIHdpbGwgc3RheSB0aGUgc2FtZSBi ZXR3ZWVuCiAgICBsaWJ4bCB2ZXJzaW9ucywgc28gYSBkb21haW4gY3JlYXRlZCB3aXRoIGFuIG9s ZCBsaWJ4bCB2ZXJzaW9uIG1pZ2h0IHNlZQogICAgZGlmZmVyZW5jZXMgd2hlbiBtaWdyYXRlZCB0 byBhIG5ld2VyIGxpYnhsIHZlcnNpb24uCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwu aCBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKaW5kZXggMTU3ZjA3Yy4uNzBiYjZlMSAxMDA2NDQKLS0t IGEvdG9vbHMvbGlieGwvbGlieGwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bC5oCkBAIC04ODYs NiArODg2LDE1IEBAIHZvaWQgbGlieGxfbWFjX2NvcHkobGlieGxfY3R4ICpjdHgsIGxpYnhsX21h YyAqZHN0LCBsaWJ4bF9tYWMgKnNyYyk7CiAgKi8KICNkZWZpbmUgTElCWExfSEFWRV9WR0FfSU5U RVJGQUNFX1RZUEVfVU5LTk9XTiAxCiAKKy8qCisgKiBMSUJYTF9IQVZFX0RPTUFJTl9JTkZPX1NF VERFRkFVTFQKKyAqCisgKiBJbiB0aGUgY2FzZSB0aGF0IExJQlhMX0hBVkVfRE9NQUlOX0lORk9f U0VUREVGQVVMVCBpcyBzZXQgbGlieGwKKyAqIHByb3ZpZGVzIHRoZSBsaWJ4bF9kb21haW5faW5m b19zZXRkZWZhdWx0IGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQKKyAqIHRvIHNldCB0aGUgbGli eGxfZG9tYWluX2NvbmZpZyBmaWVsZHMgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZXMuCisgKi8KKyNk ZWZpbmUgTElCWExfSEFWRV9ET01BSU5fSU5GT19TRVRERUZBVUxUIDEKKwogdHlwZWRlZiBjaGFy ICoqbGlieGxfc3RyaW5nX2xpc3Q7CiB2b2lkIGxpYnhsX3N0cmluZ19saXN0X2Rpc3Bvc2UobGli eGxfc3RyaW5nX2xpc3QgKnNsKTsKIGludCBsaWJ4bF9zdHJpbmdfbGlzdF9sZW5ndGgoY29uc3Qg bGlieGxfc3RyaW5nX2xpc3QgKnNsKTsKQEAgLTEyMDIsNiArMTIxMSw5IEBAIGludCBsaWJ4bF9k b21haW5fc29mdF9yZXNldChsaWJ4bF9jdHggKmN0eCwKIHZvaWQgbGlieGxfZG9tYWluX2NvbmZp Z19pbml0KGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnKTsKIHZvaWQgbGlieGxfZG9tYWlu X2NvbmZpZ19kaXNwb3NlKGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnKTsKIAorLyogRmls bCB0aGUgbGlieGxfZG9tYWluX2NvbmZpZyBzdHJ1Y3Qgd2l0aCB0aGVpciBkZWZhdWx0IHZhbHVl cy4gKi8KK2ludCBsaWJ4bF9kb21haW5faW5mb19zZXRkZWZhdWx0KGxpYnhsX2N0eCAqY3R4LCBs aWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZpZyk7CisKIC8qCiAgKiBSZXRyaWV2ZSBkb21haW4g Y29uZmlndXJhdGlvbiBhbmQgZmlsbGVkIGl0IGluIGRfY29uZmlnLiBUaGUKICAqIHJldHVybmVk IGNvbmZpZ3VyYXRpb24gY2FuIGJlIHVzZWQgdG8gcmVidWlsZCBhIGRvbWFpbi4gSXQgb25seQpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgYi90b29scy9saWJ4bC9saWJ4 bF9jcmVhdGUuYwppbmRleCBjNzcwMGE3Li5jOTg4YzJlIDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC9saWJ4bF9jcmVhdGUuYworKysgYi90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYwpAQCAtODg2 LDE3ICs4ODYsMTAgQEAgc3RhdGljIHZvaWQgaW5pdGlhdGVfZG9tYWluX2NyZWF0ZShsaWJ4bF9f ZWdjICplZ2MsCiAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OwogICAgIH0KIAotICAgIHJldCA9IGxp YnhsX19kb21haW5fY3JlYXRlX2luZm9fc2V0ZGVmYXVsdChnYywgJmRfY29uZmlnLT5jX2luZm8p OwotICAgIGlmIChyZXQpIHsKLSAgICAgICAgTE9HKEVSUk9SLCAiVW5hYmxlIHRvIHNldCBkb21h aW4gY3JlYXRlIGluZm8gZGVmYXVsdHMiKTsKLSAgICAgICAgZ290byBlcnJvcl9vdXQ7Ci0gICAg fQotCi0gICAgcmV0ID0gbGlieGxfX2RvbWFpbl9idWlsZF9pbmZvX3NldGRlZmF1bHQoZ2MsICZk X2NvbmZpZy0+Yl9pbmZvKTsKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIExPRyhFUlJPUiwgIlVu YWJsZSB0byBzZXQgZG9tYWluIGJ1aWxkIGluZm8gZGVmYXVsdHMiKTsKKyAgICByZXQgPSBsaWJ4 bF9kb21haW5faW5mb19zZXRkZWZhdWx0KENUWCwgZF9jb25maWcpOworICAgIGlmIChyZXQpCisg ICAgICAgIC8qIGxpYnhsX2RvbWFpbl9pbmZvX3NldGRlZmF1bHQgYWxyZWFkeSBsb2dzIGVycm9y cy4gKi8KICAgICAgICAgZ290byBlcnJvcl9vdXQ7Ci0gICAgfQogCiAgICAgcmV0ID0gbGlieGxf X2RvbWFpbl9tYWtlKGdjLCBkX2NvbmZpZywgJmRvbWlkLCAmc3RhdGUtPmNvbmZpZyk7CiAgICAg aWYgKHJldCkgewpAQCAtMTgwNCw2ICsxNzk3LDI2IEBAIGludCBsaWJ4bF9kb21haW5fc29mdF9y ZXNldChsaWJ4bF9jdHggKmN0eCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW9w X2NvbnNvbGVfaG93KTsKIH0KIAoraW50IGxpYnhsX2RvbWFpbl9pbmZvX3NldGRlZmF1bHQobGli eGxfY3R4ICpjdHgsIGxpYnhsX2RvbWFpbl9jb25maWcgKmRfY29uZmlnKQoreworICAgIEdDX0lO SVQoY3R4KTsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGxpYnhsX19kb21haW5fY3JlYXRlX2lu Zm9fc2V0ZGVmYXVsdChnYywgJmRfY29uZmlnLT5jX2luZm8pOworICAgIGlmIChyYykgeworICAg ICAgICBMT0coRVJST1IsICJVbmFibGUgdG8gc2V0IGRvbWFpbiBjcmVhdGUgaW5mbyBkZWZhdWx0 cyIpOworICAgICAgICByZXR1cm4gcmM7CisgICAgfQorICAgIHJjID0gbGlieGxfX2RvbWFpbl9i dWlsZF9pbmZvX3NldGRlZmF1bHQoZ2MsICZkX2NvbmZpZy0+Yl9pbmZvKTsKKyAgICBpZiAocmMp IHsKKyAgICAgICAgTE9HKEVSUk9SLCAiVW5hYmxlIHRvIHNldCBkb21haW4gYnVpbGQgaW5mbyBk ZWZhdWx0cyIpOworICAgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgICAgR0NfRlJFRTsKKyAg ICByZXR1cm4gMDsKK30KKwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlm ZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGlt cGwuYwppbmRleCAyNTUwN2M3Li4wNDU0ZWZhIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC94bF9j bWRpbXBsLmMKKysrIGIvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCkBAIC00MDQ0LDYgKzQwNDQs MTQgQEAgc3RhdGljIHZvaWQgc2F2ZV9kb21haW5fY29yZV9iZWdpbih1aW50MzJfdCBkb21pZCwK ICAgICAgICAgfQogICAgIH0KIAorI2lmZGVmIExJQlhMX0hBVkVfRE9NQUlOX0lORk9fU0VUREVG QVVMVAorICAgIHJjID0gbGlieGxfZG9tYWluX2luZm9fc2V0ZGVmYXVsdChjdHgsICZkX2NvbmZp Zyk7CisgICAgaWYgKHJjKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAidW5hYmxlIHRvIHNl dCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdmFsdWVzXG4iKTsKKyAgICAgICAgZXhpdCgyKTsKKyAg ICB9CisjZW5kaWYKKwogICAgIGNvbmZpZ19jID0gbGlieGxfZG9tYWluX2NvbmZpZ190b19qc29u KGN0eCwgJmRfY29uZmlnKTsKICAgICBpZiAoIWNvbmZpZ19jKSB7CiAgICAgICAgIGZwcmludGYo c3RkZXJyLCAidW5hYmxlIHRvIGNvbnZlcnQgY29uZmlnIGZpbGUgdG8gSlNPTlxuIik7CgoKCgo+ Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXgu Y29tPgo+Pj4+IC0tLQo+Pj4+IENjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4 LmNvbT4KPj4+PiBDYzogSWFuIENhbXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4KPj4+ PiBDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KPj4+PiAtLS0KPj4+PiAgZG9jcy9t YW4veGwuY2ZnLnBvZC41ICAgICAgIHwgMzkKPj4+PiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKPj4+PiAgdG9vbHMvbGlieGwvbGlieGwuaCAgICAgICAgIHwgMTEgKysr KysrKysrKysKPj4+PiAgdG9vbHMvbGlieGwvbGlieGxfY3JlYXRlLmMgIHwgMjEgKysrKysrKysr KysrKysrKysrKystCj4+Pj4gIHRvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCB8ICA2ICsrKysr Kwo+Pj4+ICB0b29scy9saWJ4bC9saWJ4bF94ODYuYyAgICAgfCAzMyArKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KPj4+PiAgdG9vbHMvbGlieGwveGxfY21kaW1wbC5jICAgIHwgIDcg KysrKysrKwo+Pj4+ICA2IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCA2IGRlbGV0 aW9ucygtKQo+Pj4+IGRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKPj4+ PiBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAo+Pj4+IGluZGV4IDkyYzk1ZTUuLjhhMjFj ZGEgMTAwNjQ0Cj4+Pj4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCj4+Pj4gKysr IGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCj4+Pj4gQEAgLTUxOSw2ICs1MTksMTIgQEAg bGlieGxfZG9tYWluX2J1aWxkX2luZm8gPQo+Pj4+IFN0cnVjdCgiZG9tYWluX2J1aWxkX2luZm8i LFsKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJzZXJpYWxf bGlzdCIsICAgICAgbGlieGxfc3QKPj4+PiByaW5nX2xpc3QpLAo+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoInJkbSIsIGxpYnhsX3JkbV9yZXNlcnZlKSwKPj4+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJyZG1fbWVtX2JvdW5k YXJ5X21lbWtiIiwKPj4+PiBNZW1LQiksCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgibGFwaWMiLCAgICAgICAgICAgIGxpYnhsX2RlCj4+Pj4gZmJvb2wpLAo+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImlvYXBpYyIsICAg ICAgICAgICBsaWJ4bF9kZQo+Pj4+IGZib29sKSwKPj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKCJydGMiLCAgICAgICAgICAgICAgbGlieGxfZGUKPj4+PiBmYm9v bCksCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgicG93ZXJf bWFuYWdlbWVudCIsCj4+Pj4gbGlieGxfZGVmYm9vbCksCj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgicGljIiwgICAgICAgICAgICAgIGxpYnhsX2RlCj4+Pj4g ZmJvb2wpLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInBp dCIsICAgICAgICAgICAgICBsaWJ4bF9kZQo+Pj4+IGZib29sKSwKPj4+Cj4+PiBJIHdvbmRlciBp ZiB0aGVzZSBzaG91bGQgZ28gaW4gYSBzdWItc3RydWN0LiBBbHRob3VnaCB5b3UgbWlnaHQKPj4+ IHJlYXNvbmFibHkKPj4+IGFyZ3VlIHRoYXQgdGhpcyBpcyBhbHJlYWR5IHN1Y2ggYSBkdW1waW5n IGdyb3VuZCBpdCBkb2Vzbid0IG1hdHRlci4uLgo+Pgo+PiBSaWdodCwgVEJIIEkgc2F3IHRoYXQg QVJNIGFkZGVkIGFuIGFyY2hfYXJtIHN1Yi1zdHJ1Y3QsIHdoaWNoIHNvdW5kcwo+PiBmaW5lIGFu ZCBzaG91bGQgaGF2ZSBiZWVuIGRvbmUgZWFybGllci4gTm93IHRoZSBodm0gc3ViLXN0cnVjdCBp cwo+PiBhbHJlYWR5IHNvIHg4NiBzcGVjaWZpYyB0aGF0LCBhcyB5b3Ugc2FpZCwgSSBkb24ndCB0 aGluayBpdCBtYXR0ZXJzIG11Y2guCj4gCj4gSSBtZWFudCBhIHN1YnN0cnVjdCBvZiBodm0gKGku ZS4gdmhtLmVtdWxfb3B0cyksIGJ1dCB5b3VyIHBvaW50IGlzIGFsc28KPiB2YWxpZC4KCkkgd291 bGQgcHJvYmFibHkgcGxhY2UgdGhlbSBpbiB0aGUgaHZtIHN0cnVjdCwgc2luY2UgaXQgYWxyZWFk eSAKY29udGFpbnMgYSBocGV0IGRlZmJvb2wuCgo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBdKSksCj4+Pj4gICAgICAgICAgICAgICAgICAgKCJwdiIsIFN0cnVj dChOb25lLCBbKCJrZXJuZWwiLCBzdHJpbmcpLAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgic2xhY2tfbWVta2IiLCBNZW1LQiksCj4+Pj4gZGlmZiAtLWdpdCBh L3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKPj4+PiBp bmRleCA0NmNmYWZiLi45MmYyNWZkIDEwMDY0NAo+Pj4+IC0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhs X3g4Ni5jCj4+Pj4gKysrIGIvdG9vbHMvbGlieGwvbGlieGxfeDg2LmMKPj4+PiBAQCAtNywxNSAr NywzOCBAQCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX3ByZXBhcmVfY29uZmlnKGxpYnhsX19nYyAq Z2MsCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9t YWluX2NvbmZpZyAqZF9jb25maWcsCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgeGNfZG9tYWluX2NvbmZpZ3VyYXRpb25fdAo+Pj4+ICp4Y19jb25maWcpCj4+Pj4g IHsKPj4+PiArICAgIHN0cnVjdCBsaWJ4bF9kb21haW5fYnVpbGRfaW5mbyAqaW5mbyA9ICZkX2Nv bmZpZy0+Yl9pbmZvOwo+Pj4+ICAKPj4+PiAtICAgIGlmIChkX2NvbmZpZy0+Y19pbmZvLnR5cGUg PT0gTElCWExfRE9NQUlOX1RZUEVfSFZNICYmCj4+Pj4gLSAgICAgICAgZF9jb25maWctPmJfaW5m by5kZXZpY2VfbW9kZWxfdmVyc2lvbiAhPQo+Pj4+IC0gICAgICAgIExJQlhMX0RFVklDRV9NT0RF TF9WRVJTSU9OX05PTkUpIHsKPj4+PiAtICAgICAgICAvKiBIVk0gZG9tYWlucyB3aXRoIGEgZGV2 aWNlIG1vZGVsLiAqLwo+Pj4KPj4+IFNvLCBJJ20gbm90IDEwMCUgY2xlYXIgb24gd2h5IHRoaXMg Y2hlY2sgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGxvZ2ljIHRvIHNldAo+Pj4geGNfY29uZmlnLT5l bXVsYXRpb25fZmxhZ3MgaXMgbm90IGFsc28gc3VmZmljaWVudCBmb3IgYWZ0ZXIgbWlncmF0aW9u Lgo+Pj4gQ291bGQgeW91IGV4cGxhaW4gKGFuZCBsaWtlbHkgZXZlbnR1YWxseSBhZGQgdGhlIHJh dGlvbmFsZSB0byB0aGUgY29tbWl0Cj4+PiBtZXNzYWdlKS4KPj4KPj4gQXMgSSB1bmRlcnN0YW5k IHRoaXMsIHdlIHdhbnQgdG8gYXZvaWQgaGF2aW5nIHR3byBkaWZmZXJlbnQgcGxhY2VzIHdoZXJl Cj4+IHRoZSBwb2xpY3kgKGllOiB0aGUgc2V0IG9mIGVuYWJsZWQgZGV2aWNlcykgaXMgZW5mb3Jj ZWQuCj4gCj4gQnV0IGl0IG11c3QgX2Fsd2F5c18gYmUgZW5mb3JjZWQgYnkgWGVuIGFzIHRoZSBs YXN0IHJlc29ydC4KClllcywgdGhhdCdzIGFscmVhZHkgZG9uZSwgWGVuIGFsd2F5cyBoYXMgdGhl IGxhc3Qgd29yZCBvbiB3aGF0IGdldHMgCmVuYWJsZWQgb3Igbm90LgoKPiAKPj4gV2l0aCB0aGUg Y3VycmVudCBjb2RlLCBsaWJ4bCBiYXNpY2FsbHkgbGltaXRzIHRoZSBzZXQgb2YgYWxsb3dlZCBt YXNrcwo+PiB0byB3aGF0IGl0IGtub3dzLiBBZnRlciB0aGUgY2hhbmdlIGxpYnhsIGp1c3QgYmVj b21lcyBhIHByb3h5IGZvcgo+PiB0cmFuc21pdHRpbmcgd2hhdCB0aGUgdXNlciBoYXMgc2VsZWN0 ZWQgdG8gWGVuLCBhbmQgWGVuIGVpdGhlciBhY2NlcHRzCj4+IG9yIHJlZnVzZXMgaXQsIGJhc2lj YWxseSBtYWtpbmcgWGVuIHRoZSBvbmx5IGFyYml0ZXIgdGhhdCBkZWNpZGVzIHdoaWNoCj4+IGVt dWxhdGVkIGRldmljZXMgZ2V0IGVuYWJsZWQgb3Igbm90LiBUaGlzIG1lYW5zIHRoYXQgaWYgd2Ug d2FudCB0byBtYWtlCj4+IG1vcmUgZW11bGF0ZWQgZGV2aWNlcyBhdmFpbGFibGUgdG8gdGhlIGd1 ZXN0IGluIHRoZSBmdXR1cmUgbm8gbGlieGwKPj4gY2hhbmdlcyB3aWxsIGJlIHJlcXVpcmVkLgo+ IAo+IFdlIHdvdWxkIG5lZWQgdG8gYWRkIGEgbmV3IGRlZmJvb2wgZm9yIHRoZSBuZXcgZmVhdHVy ZS4KClllcywgYnV0IEkgd2FzIHRoaW5raW5nIG1vcmUgaW4gdGhlIGRpcmVjdGlvbiBvZiBlbmFi bGluZyB0aGVtLCByYXRoZXIgCnRoYW4gYWRkaW5nIG5ldyBvbmVzLgoKPiAKPj4gSXQgYWxzbyBt ZWFucyB0aGF0IEhWTWxpdGUgZ3Vlc3RzIGNyZWF0ZWQgd2l0aCBjdXJyZW50IFhlbiB3aWxsIGJl Cj4+IGNhcGFibGUgb2YgbWlncmF0aW5nIHRvIG5ld2VyIHZlcnNpb24gb2YgWGVuLCB0aGF0IG1p Z2h0IGhhdmUgYQo+PiBkaWZmZXJlbnQgZGVmYXVsdCBwb2xpY3kuIEZvciBleGFtcGxlIGluIHRo ZSBmdXR1cmUgd2UgbWlnaHQgd2FudCB0bwo+PiBlbmFibGUgdGhlIGxhcGljIGJ5IGRlZmF1bHQs IHNvIGlmIGEgZ3Vlc3QgaXMgY3JlYXRlZCB3aXRoIHRoZSBjdXJyZW50Cj4+IFhlbiB2ZXJzaW9u IGl0IGRvZXNuJ3QgZ2V0IGEgbGFwaWMgYXQgYWxsLCBhbmQgdGhlbiB3aGVuIG1pZ3JhdGVkIHRv Cj4+IG5ld2VyIHZlcnNpb25zIGEgbGFwaWMgd291bGQgbWFnaWNhbGx5IGFwcGVhciBhZnRlciB0 aGUgbWlncmF0aW9uLCB3aGljaAo+PiBpcyBub3QgZGVzaXJlZC4KPiAKPiAuLi4gYW5kIHRoZSBy ZWFzb24gdGhlc2UgZGV0YWlscyBjYW4ndCBiZSBwcm9wYWdhdGVkIHZpYSB0aGUgWGVuIGJsb2Ig aXMKPiB0aGF0IHRoaXMgZW11bCBzdHVmZiBuZWVkcyB0byBiZSBzZXQgZXhhY3RseSBvbmNlIGF0 IGRvbWFpbiBjcmVhdGUgdGltZSBJCj4gc3VwcG9zZT8gQ2hhbmdpbmcgaXQgdG8gYmUgbGF0ZXIg YmluZGluZyBpcyBjb25zaWRlcmVkIHRvIGJlIHRvbyBoYXJkL3Rvbwo+IGJpZyBhIHlhaz8KClJp Z2h0LCBlbXVsYXRlZCBkZXZpY2VzIGFyZSBpbml0aWFsaXNlZCBhcyBwYXJ0IG9mIHRoZSAKWEVO X0RPTUNUTF9jcmVhdGVkb21haW4gaHlwZXJjYWxsLiBBbGxvd2luZyB0aGVtIHRvIGJlIGFkZGVk IGxhdGVyIG9uIAphbmQgaW50cm9kdWNpbmcgYSBraW5kIG9mIGludGVybWVkaWF0ZSBkb21haW4g YnVpbGRpbmcgcGhhc2Ugd2hlcmUgb25seSAKYSBjZXJ0YWluIHNldCBvZiBoeXBlcmNhbGxzIGFy ZSB2YWxpZCBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgQW5kcmV3IAphbHJlYWR5IHBvaW50ZWQgb3V0 LCBob3dldmVyIHRoaXMgc2VlbXMgbGlrZSBhIHZlcnkgYmlnIHByb2plY3QuCgo+IEV2ZW4gd2l0 aCB0aGUgc2V0IG9mIGRldmljZXMgc2V0IGF0IGRvbWFpbiBjcmVhdGlvbiB0aW1lIFhlbiBuZWVk cyB0byB0YWtlCj4gY2FyZSB3aGVuIHJlYWRpbmcgaXRzIGJsb2IsIGFuZCBub3QgZmFsbCBhcGFy dCAoZnJvbSBhIHNlY3VyaXR5IFBvViwgaXQncwo+IGFsbG93ZWQgdG8gZmFpbCB0aGUgc3RhdGUg bG9hZCkgd2hlbiBwcmVzZW50ZWQgd2l0aCBhIHNhdmUgcmVjb3JkIHJlbGF0aW5nCj4gdG8gc29t ZXRoaW5nIHdoaWNoIGlzIHN1cHBvc2VkbHkgZGlzYWJsZWQuIEhhcyB0aGlzIGJlZW4gY2hlY2tl ZD8KClllcywgdHJ5aW5nIHRvIGxvYWQgYSBzdGF0ZSBpbnRvIGEgZGlzYWJsZSBkZXZpY2Ugd2ls bCByZXN1bHQgaW4gCi1FTk9ERVYuCgpSb2dlci4KCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==