From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v4 03/10] xen/arm: optee: add OP-TEE mediator skeleton Date: Fri, 15 Mar 2019 15:24:59 +0000 Message-ID: <3d22a401-36d7-59f0-e928-7c9bd1778dae@arm.com> References: <20190307210404.12346-1-volodymyr_babchuk@epam.com> <20190307210404.12346-4-volodymyr_babchuk@epam.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h4ohk-0001lU-91 for xen-devel@lists.xenproject.org; Fri, 15 Mar 2019 15:25:04 +0000 In-Reply-To: <20190307210404.12346-4-volodymyr_babchuk@epam.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Volodymyr Babchuk , "xen-devel@lists.xenproject.org" , "tee-dev@lists.linaro.org" Cc: Volodymyr Babchuk , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAwNy8wMy8yMDE5IDIxOjA0LCBWb2xvZHlteXIgQmFiY2h1ayB3cm90ZToKPiBGcm9t OiBWb2xvZHlteXIgQmFiY2h1ayA8dmxhZC5iYWJjaHVrQGdtYWlsLmNvbT4KPiAKPiBBZGQgdmVy eSBiYXNpYyBPUC1URUUgbWVkaWF0b3IuIEl0IGNhbiBwcm9iZSBmb3IgT1AtVEVFIHByZXNlbmNl LAo+IHRlbGwgaXQgYWJvdXQgZG9tYWluIGNyZWF0aW9uL2Rlc3RydWN0aW9uIGFuZCBmb3J3YXJk IGFsbCBrbm93bgo+IGNhbGxzLgo+IAo+IFRoaXMgaXMgYWxsIHdoYXQgaXMgbmVlZGVkIGZvciBE b20wIHRvIHdvcmsgd2l0aCBPUC1URUUgYXMgbG9uZyBhcwo+IERvbTAgc2hhcmVzIDE6MSBtYXBw ZWQgcGFnZXMgd2l0aCBPUC1URUUuIEFueSBhdHRlbXB0IHRvIGNhbGwgT1AtVEVFCj4gZnJvbSBE b21VIHdpbGwgZmFpbCBhbmQgd2lsbCBsZWFkIHRvIHJhbmRvbSBtZW1vcnkgY29ycnVwdGlvbi4g QnV0Cj4gdGhpcyBpcyBpbXBvc3NpYmxlLCBiZWNhdXNlIHRoZXJlIGlzIG5vIG1lYW5zIHRvIGVu YWJsZSBURUUgc3VwcG9ydAo+IGZvciBEb21VcyByaWdodCBub3cuIEFsc28sIHByb2JsZW1zIGNh biBhcmlzZSBpZiBEb20wIHVzZXMgcGFnZXMKPiBtYXBwZWQgZnJvbSBvdGhlciBkb21haW5zLiBU aGlzIHdpbGwgYmUgZml4ZWQgaW4gdGhlIGZvbGxvd2luZwo+IHBhdGNoZXMsIGFzIG1vcmUgb2Yg dGhlIG1lZGlhdG9yIGZ1bmN0aW9uYWxpdHkgd2lsbCBiZSBhZGRlZC4KPiAKPiBUaGlzIGNvZGUg aXNzdWVzIHR3byBub24tcHJlZW1wdGlibGUgY2FsbHMgdG8gT1AtVEVFOiB0byBjcmVhdGUgYW5k Cj4gdG8gZGVzdHJveSBjbGllbnQgY29udGV4dC4gVGhleSBjYW4ndCBibG9jayBpbiBPUC1URUUs IGFzIHRoZXkgYXJlCj4gY29uc2lkZXJlZCAiZmFzdCBjYWxscyIgaW4gdGVybXMgb2YgQVJNIFNN Q0NDLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFZvbG9keW15ciBCYWJjaHVrIDx2bGFkLmJhYmNodWtA Z21haWwuY29tPgo+IAo+IC0tLQo+IAo+ICAgQWxsIHRoZSBwYXRjaGVzIHRvIG9wdGVlLmMgc2hv dWxkIGJlIG1lcmdlZCB0b2dldGhlci4gVGhleSB3ZXJlCj4gICBzcGxpdCB0byBlYXNlIHVwIHJl dmlldy4gQnV0IHRoZXkgZGVwZW5kIGhlYXZpbHkgb24gZWFjaCBvdGhlci4KPiAKPiBDaGFuZ2Vz IGZyb20gdjM6Cj4gICAgLSBJbnRyb2R1Y2VkIG9wdGVlX3JlbGlucXVpc2hfcmVzb3VyY2VzKCkg ZnVuY3Rpb24gdG8gZnJlZQo+ICAgICAgbWVkaWF0b3IgcmVzb3VyY2VzIGluIGEgbW9yZSBjb250 cm9sbGFibGUgd2F5Cj4gCj4gQ2hhbmdlcyBmcm9tIHYyOgo+ICAgIC0gRml4ZWQgY29kaW5nIHN0 eWxlCj4gICAgLSBJbnRyb2R1Y2VkIHRlZS9LY29uZmlnCj4gICAgLSBGaXhlZCBlcnJvciBtZXNz YWdlcwo+IC0tLQo+ICAgeGVuL2FyY2gvYXJtL0tjb25maWcgICAgICAgICB8ICAgMiArCj4gICB4 ZW4vYXJjaC9hcm0vdGVlL0tjb25maWcgICAgIHwgICA0ICsKPiAgIHhlbi9hcmNoL2FybS90ZWUv TWFrZWZpbGUgICAgfCAgIDEgKwo+ICAgeGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jICAgICB8IDE3 MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgeGVuL2luY2x1ZGUvYXNt LWFybS9kb21haW4uaCB8ICAgMyArCj4gICA1IGZpbGVzIGNoYW5nZWQsIDE4MCBpbnNlcnRpb25z KCspCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL3RlZS9LY29uZmlnCj4gICBj cmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jCj4gCj4gZGlmZiAtLWdp dCBhL3hlbi9hcmNoL2FybS9LY29uZmlnIGIveGVuL2FyY2gvYXJtL0tjb25maWcKPiBpbmRleCBl NTI3YjJmODg1Li45OWU2ZjBlYmIyIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9LY29uZmln Cj4gKysrIGIveGVuL2FyY2gvYXJtL0tjb25maWcKPiBAQCAtMjM3LDMgKzIzNyw1IEBAIHNvdXJj ZSAiYXJjaC9hcm0vcGxhdGZvcm1zL0tjb25maWciCj4gICBzb3VyY2UgImNvbW1vbi9LY29uZmln Igo+ICAgCj4gICBzb3VyY2UgImRyaXZlcnMvS2NvbmZpZyIKPiArCj4gK3NvdXJjZSAiYXJjaC9h cm0vdGVlL0tjb25maWciCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90ZWUvS2NvbmZpZyBi L3hlbi9hcmNoL2FybS90ZWUvS2NvbmZpZwo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg MDAwMDAwMDAwMC4uNWI4MjlkYjJlOQo+IC0tLSAvZGV2L251bGwKPiArKysgYi94ZW4vYXJjaC9h cm0vdGVlL0tjb25maWcKPiBAQCAtMCwwICsxLDQgQEAKPiArY29uZmlnIE9QVEVFCj4gKwlib29s ICJFbmFibGUgT1AtVEVFIG1lZGlhdG9yIgo+ICsJZGVmYXVsdCBuCj4gKwlkZXBlbmRzIG9uIFRF RQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdGVlL01ha2VmaWxlIGIveGVuL2FyY2gvYXJt L3RlZS9NYWtlZmlsZQo+IGluZGV4IGM1NGQ0Nzk2ZmYuLjk4MmM4Nzk2ODQgMTAwNjQ0Cj4gLS0t IGEveGVuL2FyY2gvYXJtL3RlZS9NYWtlZmlsZQo+ICsrKyBiL3hlbi9hcmNoL2FybS90ZWUvTWFr ZWZpbGUKPiBAQCAtMSArMSwyIEBACj4gICBvYmoteSArPSB0ZWUubwo+ICtvYmotJChDT05GSUdf T1BURUUpICs9IG9wdGVlLm8KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5j IGIveGVuL2FyY2gvYXJtL3RlZS9vcHRlZS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwMDAwLi5iNTBjNTgxYWFmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3hlbi9hcmNo L2FybS90ZWUvb3B0ZWUuYwo+IEBAIC0wLDAgKzEsMTcwIEBACj4gKy8qCj4gKyAqIHhlbi9hcmNo L2FybS90ZWUvb3B0ZWUuYwo+ICsgKgo+ICsgKiBPUC1URUUgbWVkaWF0b3IKPiArICoKPiArICog Vm9sb2R5bXlyIEJhYmNodWsgPHZvbG9keW15cl9iYWJjaHVrQGVwYW0uY29tPgo+ICsgKiBDb3B5 cmlnaHQgKGMpIDIwMTggRVBBTSBTeXN0ZW1zLgo+ICsgKgo+ICsgKiBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+ICsg KiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZl cnNpb24gMiBhcwo+ICsgKiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bi4KCkkgdGhpbmsgeW91IGFyZSBtaXNzaW5nIHBhcnRzIG9mIHRoZSBHUEx2MiBoZXJlOgoKVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPHhlbi9kZXZpY2VfdHJlZS5oPgo+ICsjaW5jbHVk ZSA8eGVuL3NjaGVkLmg+Cj4gKwo+ICsjaW5jbHVkZSA8YXNtL3NtY2NjLmg+Cj4gKyNpbmNsdWRl IDxhc20vdGVlL3RlZS5oPgo+ICsjaW5jbHVkZSA8YXNtL3RlZS9vcHRlZV9tc2cuaD4KPiArI2lu Y2x1ZGUgPGFzbS90ZWUvb3B0ZWVfc21jLmg+Cj4gKwo+ICsjZGVmaW5lIE9QVEVFX0VOQUJMRUQg KCh2b2lkKikweDEpCgpQbGVhc2UgZG9uJ3QgZG8gdGhhdC4gSW50cm9kdWNlIGEgZHVtbXkgc3Ry dWN0dXJlIGluc3RlYWQgYW5kIGZpbGwgaXQgdXAgd2hlbiAKbmVlZGVkLgoKPiArCj4gKy8qIENs aWVudCBJRCAwIGlzIHJlc2VydmVkIGZvciBoeXBlcnZpc29yIGl0c2VsZiAqLwoKcy9mb3IvZm9y IHRoZS8KCj4gKyNkZWZpbmUgT1BURUVfQ0xJRU5UX0lEKGRvbWFpbikgKChkb21haW4pLT5kb21h aW5faWQgKyAxKQo+ICsKPiArc3RhdGljIGJvb2wgb3B0ZWVfcHJvYmUodm9pZCkKPiArewo+ICsg ICAgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlOwo+ICsgICAgc3RydWN0IGFybV9zbWNjY19y ZXMgcmVzcDsKPiArCj4gKyAgICAvKiBDaGVjayBmb3IgZW50cnkgaW4gZHRiICovCj4gKyAgICBu b2RlID0gZHRfZmluZF9jb21wYXRpYmxlX25vZGUoTlVMTCwgTlVMTCwgImxpbmFybyxvcHRlZS10 eiIpOwo+ICsgICAgaWYgKCAhbm9kZSApCj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICsKPiAr ICAgIC8qIENoZWNrIFVJRCAqLwo+ICsgICAgYXJtX3NtY2NjX3NtYyhBUk1fU01DQ0NfQ0FMTF9V SURfRklEKFRSVVNURURfT1NfRU5EKSwgJnJlc3ApOwo+ICsKPiArICAgIGlmICggKHVpbnQzMl90 KXJlc3AuYTAgIT0gT1BURUVfTVNHX1VJRF8wIHx8Cj4gKyAgICAgICAgICh1aW50MzJfdClyZXNw LmExICE9IE9QVEVFX01TR19VSURfMSB8fAo+ICsgICAgICAgICAodWludDMyX3QpcmVzcC5hMiAh PSBPUFRFRV9NU0dfVUlEXzIgfHwKPiArICAgICAgICAgKHVpbnQzMl90KXJlc3AuYTMgIT0gT1BU RUVfTVNHX1VJRF8zICkKPiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4gKwo+ICsgICAgcmV0dXJu IHRydWU7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgb3B0ZWVfZG9tYWluX2luaXQoc3RydWN0IGRv bWFpbiAqZCkKPiArewo+ICsgICAgc3RydWN0IGFybV9zbWNjY19yZXMgcmVzcDsKPiArCj4gKyAg ICAvKgo+ICsgICAgICogSW5mb3JtIE9QLVRFRSBhYm91dCBhIG5ldyBndWVzdC4KPiArICAgICAq IFRoaXMgaXMgYSAiRmFzdCIgY2FsbCBpbiB0ZXJtcyBvZiBPUC1URUUuIFRoaXMgYmFzaWNhbGx5 Cj4gKyAgICAgKiBtZWFucyB0aGF0IGl0IGNhbid0IGJlIHByZWVtcHRlZCwgYmVjYXVzZSB0aGVy ZSBpcyBubwo+ICsgICAgICogdGhyZWFkIGFsbG9jYXRlZCBmb3IgaXQgaW4gT1AtVEVFLiBJdCBp cyBjbG9zZSB0byBhdG9taWMKPiArICAgICAqIGNvbnRleHQgaW4gbGludXgga2VybmVsOiBFLmcu IG5vIGJsb2NraW5nIGNhbGxzIGNhbiBiZSBpc3N1ZWQuCgpUaGlzIGRvZXMgbm90IHJlYWxseSBt YWtlIHNlbnNlIHRvIGRlc2NyaWJlIExpbnV4IGhlcmUuIENhbid0IHlvdSBqdXN0IG1ha2UgdGhl IAp3b3JkaW5nIE9TIGFnbm9zdGljPwoKPiArICAgICAqIEFsc28sIGludGVycnVwdHMgYXJlIGRp c2FibGVkLgo+ICsgICAgICoKPiArICAgICAqIGE3IHNob3VsZCBiZSAwLCBzbyB3ZSBjYW4ndCBz a2lwIGxhc3QgNiBwYXJhbWV0ZXJzIG9mIGFybV9zbWNjY19zbWMoKQo+ICsgICAgICovCj4gKyAg ICBhcm1fc21jY2Nfc21jKE9QVEVFX1NNQ19WTV9DUkVBVEVELCBPUFRFRV9DTElFTlRfSUQoZCks IDAsIDAsIDAsIDAsIDAsIDAsCj4gKyAgICAgICAgICAgICAgICAgICZyZXNwKTsKPiArICAgIGlm ICggcmVzcC5hMCAhPSBPUFRFRV9TTUNfUkVUVVJOX09LICkKPiArICAgIHsKPiArICAgICAgICBn cHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiVW5hYmxlIHRvIGNyZWF0ZSBPUFRFRSBjbGllbnQ6IHJj ID0gMHglWFxuIiwKCmdwcmludGsgd2lsbCBwcmludCB0aGUgY3VycmVudCB2Q1BVIGFuZCBub3Qg dGhlIGRvbWFpbiBjcmVhdGVkLiBUaGlzIGlzIG5vdCB2ZXJ5IAp1c2VmdWwgdG8ga25vdyB0aGUg Y3VycmVudCBkb21haW4uIFNvIGl0IHdvdWxkIGJlIGJldHRlciB0byB1c2U6CgpwcmludGsoWEVO TE9HX0dfV0FSTklORywgIiVwZDogVW5hYmxlIHRvIGNyZWF0ZSBPUFRFRSBjbGllbnQ6IHJjIC4u LiIsIGQpOwoKPiArICAgICAgICAgICAgICAgICh1aW50MzJfdClyZXNwLmEwKTsKPiArCj4gKyAg ICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4gKyAgICB9Cj4gKwo+ICsgICAgZC0+YXJjaC50ZWUgPSBP UFRFRV9FTkFCTEVEOwo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9p ZCBmb3J3YXJkX2NhbGwoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCj4gK3sKPiArICAgIHN0 cnVjdCBhcm1fc21jY2NfcmVzIHJlc3A7Cj4gKwo+ICsgICAgYXJtX3NtY2NjX3NtYyhnZXRfdXNl cl9yZWcocmVncywgMCksCj4gKyAgICAgICAgICAgICAgICAgIGdldF91c2VyX3JlZyhyZWdzLCAx KSwKPiArICAgICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJlZ3MsIDIpLAo+ICsgICAgICAg ICAgICAgICAgICBnZXRfdXNlcl9yZWcocmVncywgMyksCj4gKyAgICAgICAgICAgICAgICAgIGdl dF91c2VyX3JlZyhyZWdzLCA0KSwKPiArICAgICAgICAgICAgICAgICAgZ2V0X3VzZXJfcmVnKHJl Z3MsIDUpLAo+ICsgICAgICAgICAgICAgICAgICBnZXRfdXNlcl9yZWcocmVncywgNiksCj4gKyAg ICAgICAgICAgICAgICAgIE9QVEVFX0NMSUVOVF9JRChjdXJyZW50LT5kb21haW4pLAo+ICsgICAg ICAgICAgICAgICAgICAmcmVzcCk7Cj4gKwo+ICsgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDAsIHJl c3AuYTApOwo+ICsgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDEsIHJlc3AuYTEpOwo+ICsgICAgc2V0 X3VzZXJfcmVnKHJlZ3MsIDIsIHJlc3AuYTIpOwo+ICsgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDMs IHJlc3AuYTMpOwo+ICsgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDQsIDApOwo+ICsgICAgc2V0X3Vz ZXJfcmVnKHJlZ3MsIDUsIDApOwo+ICsgICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDYsIDApOwo+ICsg ICAgc2V0X3VzZXJfcmVnKHJlZ3MsIDcsIDApOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IG9wdGVl X3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVjdCBkb21haW4gKmQpCj4gK3sKPiArICAgIHJldHVy biAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBvcHRlZV9kb21haW5fZGVzdHJveShzdHJ1Y3Qg ZG9tYWluICpkKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgYXJtX3NtY2NjX3JlcyByZXNwOwo+ICsKPiAr ICAgIGlmICggIWQtPmFyY2gudGVlICkKPiArICAgICAgICByZXR1cm47Cj4gKwo+ICsgICAgLyoK PiArICAgICAqIEluZm9ybSBPUC1URUUgdGhhdCBkb21haW4gaXMgc2h1dHRpbmcgZG93bi4gVGhp cyBpcwo+ICsgICAgICogYWxzbyBhIGZhc3QgU01DIGNhbGwsIGxpa2UgT1BURUVfU01DX1ZNX0NS RUFURUQsIHNvCj4gKyAgICAgKiBpdCBpcyBhbHNvIG5vbi1wcmVlbXB0aWJsZS4KPiArICAgICAq IEF0IHRoaXMgdGltZSBhbGwgZG9tYWluIFZDUFVzIHNob3VsZCBiZSBzdG9wcGVkLiBPUC1URUUK PiArICAgICAqIHJlbGllcyBvbiB0aGlzLgo+ICsgICAgICoKPiArICAgICAqIGE3IHNob3VsZCBi ZSAwLCBzbyB3ZSBjYW4ndCBza2lwIGxhc3QgNiBwYXJhbWV0ZXJzIG9kIGFybV9zbWNjY19zbWMo KQoKTklUOiBzL29kL29mLwoKPiArICAgICAqLwo+ICsgICAgYXJtX3NtY2NjX3NtYyhPUFRFRV9T TUNfVk1fREVTVFJPWUVELCBPUFRFRV9DTElFTlRfSUQoZCksIDAsIDAsIDAsIDAsIDAsIDAsCj4g KyAgICAgICAgICAgICAgICAgICZyZXNwKTsKCllvdXIgc3BsaXQgYmV0d2VlbiBkb21haW5fZGVz dHJveSBhbmQgcmVsaW5xdWlzaF9yZXNvdXJjZXMgbG9va3Mgd3JvbmcuIElmIHlvdSAKcmVsaW5x dWlzaCByZXNvdXJjZXMgYmVmb3JlIHRlbGxpbmcgT1AtVEVFIHRoZW4geW91IGFyZSBhdCByaXNr IHRoYXQgT1AtVEVFIHdpbGwgCnVzZSB0aG9zZSByZXNvdXJjZXMuCgpJbnN0ZWFkIHlvdSBzaG91 bGQgZmlyc3QgdGVsbCBPUC1URUUgdGhlIGRvbWFpbiBpcyBzaHV0dGluZyBkb3duLCB0aGVuIHJl bGVhc2UgCnRoZSByZXNvdXJjZXMuCgo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBvcHRlZV9oYW5k bGVfY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKPiArewo+ICsgICAgaWYgKCAhY3Vy cmVudC0+ZG9tYWluLT5hcmNoLnRlZSApCj4gKyAgICAgICAgcmV0dXJuIGZhbHNlOwo+ICsKPiAr ICAgIHN3aXRjaCAoIGdldF91c2VyX3JlZyhyZWdzLCAwKSApCj4gKyAgICB7Cj4gKyAgICBjYXNl IE9QVEVFX1NNQ19DQUxMU19DT1VOVDoKPiArICAgIGNhc2UgT1BURUVfU01DX0NBTExTX1VJRDoK PiArICAgIGNhc2UgT1BURUVfU01DX0NBTExTX1JFVklTSU9OOgo+ICsgICAgY2FzZSBPUFRFRV9T TUNfQ0FMTF9HRVRfT1NfVVVJRDoKPiArICAgIGNhc2UgT1BURUVfU01DX0ZVTkNJRF9HRVRfT1Nf UkVWSVNJT046Cj4gKyAgICBjYXNlIE9QVEVFX1NNQ19FTkFCTEVfU0hNX0NBQ0hFOgo+ICsgICAg Y2FzZSBPUFRFRV9TTUNfRElTQUJMRV9TSE1fQ0FDSEU6Cj4gKyAgICBjYXNlIE9QVEVFX1NNQ19H RVRfU0hNX0NPTkZJRzoKPiArICAgIGNhc2UgT1BURUVfU01DX0VYQ0hBTkdFX0NBUEFCSUxJVElF UzoKPiArICAgIGNhc2UgT1BURUVfU01DX0NBTExfV0lUSF9BUkc6Cj4gKyAgICBjYXNlIE9QVEVF X1NNQ19DQUxMX1JFVFVSTl9GUk9NX1JQQzoKPiArICAgICAgICBmb3J3YXJkX2NhbGwocmVncyk7 Cj4gKyAgICAgICAgcmV0dXJuIHRydWU7Cj4gKyAgICBkZWZhdWx0Ogo+ICsgICAgICAgIHJldHVy biBmYWxzZTsKPiArICAgIH0KPiArfQo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCB0ZWVfbWVk aWF0b3Jfb3BzIG9wdGVlX29wcyA9Cj4gK3sKPiArICAgIC5wcm9iZSA9IG9wdGVlX3Byb2JlLAo+ ICsgICAgLmRvbWFpbl9pbml0ID0gb3B0ZWVfZG9tYWluX2luaXQsCj4gKyAgICAuZG9tYWluX2Rl c3Ryb3kgPSBvcHRlZV9kb21haW5fZGVzdHJveSwKPiArICAgIC5yZWxpbnF1aXNoX3Jlc291cmNl cyA9IG9wdGVlX3JlbGlucXVpc2hfcmVzb3VyY2VzLAo+ICsgICAgLmhhbmRsZV9jYWxsID0gb3B0 ZWVfaGFuZGxlX2NhbGwsCj4gK307Cj4gKwo+ICtSRUdJU1RFUl9URUVfTUVESUFUT1Iob3B0ZWUs ICJPUC1URUUiLCAmb3B0ZWVfb3BzKTsKPiArCj4gKy8qCj4gKyAqIExvY2FsIHZhcmlhYmxlczoK PiArICogbW9kZTogQwo+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4gKyAqIGMtYmFzaWMtb2Zm c2V0OiA0Cj4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+ICsgKiBFbmQ6Cj4gKyAqLwo+IGRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNt LWFybS9kb21haW4uaAo+IGluZGV4IDBmMTUzNzIwOTguLjI5NjBhNTNlNjkgMTAwNjQ0Cj4gLS0t IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1h cm0vZG9tYWluLmgKPiBAQCAtOTgsNiArOTgsOSBAQCBzdHJ1Y3QgYXJjaF9kb21haW4KPiAgICAg ICBzdHJ1Y3QgdnBsMDExIHZwbDAxMTsKPiAgICNlbmRpZgo+ICAgCj4gKyNpZmRlZiBDT05GSUdf VEVFCj4gKyAgICB2b2lkICp0ZWU7Cj4gKyNlbmRpZgo+ICAgfSAgX19jYWNoZWxpbmVfYWxpZ25l ZDsKPiAgIAo+ICAgc3RydWN0IGFyY2hfdmNwdQo+IAoKQ2hlZXJzLAoKLS0gCkp1bGllbiBHcmFs bAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==