From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dirk Behme Subject: Re: [PATCH v4] xen/arm: Add a clock property Date: Thu, 14 Jul 2016 08:31:39 +0200 Message-ID: <7df784ab-d0c0-939b-393e-214535c4b191__17012.1738956825$1468477990$gmane$org@de.bosch.com> References: <1468309605-19522-1-git-send-email-dirk.behme@de.bosch.com> <146836236759.73491.11707389619985827497@resonance> <57868EDE.6060406@gmail.com> <146844380895.73491.4867379517577413421@resonance> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1bNaBS-0006RN-Eu for xen-devel@lists.xenproject.org; Thu, 14 Jul 2016 06:31:42 +0000 In-Reply-To: <146844380895.73491.4867379517577413421@resonance> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Michael Turquette , Dirk Behme , Stefano Stabellini Cc: Mark Rutland , devicetree@vger.kernel.org, Stephen Boyd , Julien Grall , xen-devel@lists.xenproject.org, linux-clk@vger.kernel.org, linux-arm-kernel@lists.infradead.org List-Id: xen-devel@lists.xenproject.org T24gMTMuMDcuMjAxNiAyMzowMywgTWljaGFlbCBUdXJxdWV0dGUgd3JvdGU6Cj4gUXVvdGluZyBE aXJrIEJlaG1lICgyMDE2LTA3LTEzIDExOjU2OjMwKQo+PiBPbiAxMy4wNy4yMDE2IDIwOjQzLCBT dGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6Cj4+PiBPbiBXZWQsIDEzIEp1bCAyMDE2LCBEaXJrIEJl aG1lIHdyb3RlOgo+Pj4+IE9uIDEzLjA3LjIwMTYgMDA6MjYsIE1pY2hhZWwgVHVycXVldHRlIHdy b3RlOgo+Pj4+PiBRdW90aW5nIERpcmsgQmVobWUgKDIwMTYtMDctMTIgMDA6NDY6NDUpCj4+Pj4+ PiBDbG9ja3MgZGVzY3JpYmVkIGJ5IHRoaXMgcHJvcGVydHkgYXJlIHJlc2VydmVkIGZvciB1c2Ug YnkgWGVuLCBhbmQgdGhlIE9TCj4+Pj4+PiBtdXN0IG5vdCBhbHRlciB0aGVpciBzdGF0ZSBhbnkg d2F5LCBzdWNoIGFzIGRpc2FibGluZyBvciBnYXRpbmcgYSBjbG9jaywKPj4+Pj4+IG9yIG1vZGlm eWluZyBpdHMgcmF0ZS4gRW5zdXJpbmcgdGhpcyBtYXkgaW1wb3NlIGNvbnN0cmFpbnRzIG9uIHBh cmVudAo+Pj4+Pj4gY2xvY2tzIG9yIG90aGVyIHJlc291cmNlcyB1c2VkIGJ5IHRoZSBjbG9jayB0 cmVlLgo+Pj4+Pgo+Pj4+PiBOb3RlIHRoYXQgY2xrX3ByZXBhcmVfZW5hYmxlIHdpbGwgbm90IHBy ZXZlbnQgdGhlIHJhdGUgZnJvbSBjaGFuZ2luZwo+Pj4+PiAoY2xrX3NldF9yYXRlKSBvciBhIHBh cmVudCBmcm9tIGNoYW5naW5nIChjbGtfc2V0X3BhcmVudCkuIFRoZSBvbmx5IHdheQo+Pj4+PiB0 byBkbyB0aGlzIGN1cnJlbnRseSB3b3VsZCBiZSB0byBzZXQgdGhlIGZvbGxvd2luZyBmbGFncyBv biB0aGUgZWZmZWN0ZWQKPj4+Pj4gY2xvY2tzOgo+Pj4+Pgo+Pj4+PiAgICAgQ0xLX1NFVF9SQVRF X0dBVEUKPj4+Pj4gICAgIENMS19TRVRfUEFSRU5UX0dBVEUKPj4+Pgo+Pj4+Cj4+Pj4KPj4+PiBS ZWdhcmRpbmcgc2V0dGluZyBmbGFncywgSSB0aGluayB3ZSBhbHJlYWR5IHRhbGtlZCBhYm91dCB0 aGF0LiBJIHRoaW5rIHRoZQo+Pj4+IGNvbmNsdXNpb24gd2FzIHRoYXQgaW4gb3VyIGNhc2UgaXRz IG5vdCBwb3NzaWJsZSB0byBtYW5pcHVsYXRlIHRoZSBmbGFncyBpbgo+Pj4+IHRoZSBPUyBhcyB0 aGlzIGlzbid0IGludGVuZGVkIHRvIGJlIGRvbmUgaW4gY2FzZXMgbGlrZSBvdXJzLiBUaGVyZWZv cmUgbm8gQVBJCj4+Pj4gaXMgZXhwb3J0ZWQgZm9yIHRoaXMuCj4+Pj4KPj4+PiBJLmUuIGlmIHdl IG5lZWQgdG8gc2V0IHRoZXNlIGZsYWdzLCB3ZSBoYXZlIHRvIGRvIHRoYXQgaW4gWGVuIHdoZXJl IHdlIGFkZCB0aGUKPj4+PiBjbG9ja3MgdG8gdGhlIGh5cGVydmlzb3Igbm9kZSBpbiB0aGUgZGV2 aWNlIHRyZWUuIEFuZCBub3QgaW4gdGhlIGtlcm5lbCBwYXRjaAo+Pj4+IGRpc2N1c3NlZCBoZXJl Lgo+Pj4KPj4+IFRoZXNlIGFyZSBpbnRlcm5hbCBMaW51eCBmbGFncywgYXJlbid0IHRoZXk/Cj4+ Cj4+Cj4+IEkndmUgYmVlbiB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGF0IHlvdSBjYW4gc2V0IGNs b2NrICJmbGFncyIgdmlhIHRoZQo+PiBkZXZpY2UgdHJlZS4gU2VlbXMgSSBuZWVkIHRvIHJlLWNo ZWNrIHRoYXQgOykKPgo+IFJpZ2h0LCB5b3UgY2Fubm90IHNldCBmbGFncyBmcm9tIHRoZSBkZXZp Y2UgdHJlZS4gQWxzbywgc2V0dGluZyB0aGVzZQo+IGZsYWdzIGlzIGRvbmUgYnkgdGhlIGNsb2Nr IHByb3ZpZGVyIGRyaXZlciwgbm90IGEgY29uc3VtZXIuIFhlbiBpcyB0aGUKPiBjb25zdW1lci4K CgpPaywgdGhhbmtzLCB0aGVuIEkgdGhpbmsgd2UgY2FuIGZvcmdldCBhYm91dCB1c2luZyBmbGFn cyBmb3IgdGhlIGlzc3VlIAp3ZSBhcmUgZGlzY3Vzc2luZyBoZXJlLgoKQmVzdCByZWdhcmRzCgpE aXJrCgpQLlMuOiBXb3VsZCBpdCBiZSBhbiBvcHRpb24gdG8gbWVyZ2UgdGhlIHY0IHBhdGNoIHdl IGFyZSBkaXNjdXNzaW5nIApoZXJlLCB0aGVuPyBGcm9tIHRoZSBkaXNjdXNzaW9uIHVudGlsIGhl cmUsIGl0IHNvdW5kcyB0byBtZSB0aGF0IGl0J3MgCnRoZSBiZXN0IG9wdGlvbiB3ZSBoYXZlIGF0 IHRoZSBtb21lbnQuIE1heWJlIGltcHJvdmluZyBpdCBpbiB0aGUgZnV0dXJlLCAKdGhlbi4KCgo+ Pj4gVGhleSBjYW5ub3QgYmUgc2V0IGluIFhlbi4KPj4+Cj4+PiBJZiB0aGUgb25seSB3YXkgdG8g bWFrZSBzdXJlIHRoYXQgY2xrX3NldF9yYXRlIGFuZCBjbGtfc2V0X3BhcmVudCBmYWlsCj4+PiBv biBvbmUgb2YgdGhlIGNsb2NrcyAib3duZWQiIGJ5IFhlbiBpcyB0byBzZXQgQ0xLX1NFVF9SQVRF X0dBVEUgYW5kCj4+PiBDTEtfU0VUX1BBUkVOVF9HQVRFLCB3ZSdsbCBoYXZlIHRvIGRvIHRoYXQu IEV2ZW4gaWYgaXQgbWVhbnMgaW50cm9kdWNpbmcKPj4+IGEgbmV3IGludGVybmFsIExpbnV4IEFQ SS4KPj4+Cj4+Pgo+Pj4+PiBBbmQgdGhlbiBlbmFibGUgdGhlIGNsb2Nrcy4gQWxsIGNhbGxzIHRv IGNsa19zZXRfcGFyZW50IGFuZCBjbGtfc2V0X3JhdGUKPj4+Pj4gd2l0aCB0aG9zZSBjbG9ja3Mg aW4gdGhlIHBhdGggd2lsbCBmYWlsLCBzbyBsb25nIGFzIHRoZXkgYXJlIHByZXBhcmVkCj4+Pj4+ IGFuZCBlbmFibGVkLiBUaGlzIGltcGxlbWVudGF0aW9uIGRldGFpbCBpcyBzcGVjaWZpYyB0byBM aW51eCBhbmQKPj4+Pj4gZGVmaW5pdGVseSBzaG91bGQgbm90IGdvIGludG8gdGhlIGJpbmRpbmcu Cj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIHRvIHByb3h5IGNsb2Nr cyBmb3IgZGV2aWNlcyBYZW4gaGFzIHRha2VuIG93bmVyc2hpcAo+Pj4+Pj4gb2YsIHN1Y2ggYXMg VUFSVHMsIGZvciB3aGljaCB0aGUgYXNzb2NpYXRlZCBjbG9jayBjb250cm9sbGVyKHMpIHJlbWFp bgo+Pj4+Pj4gdW5kZXIgdGhlIGNvbnRyb2wgb2YgRG9tMC4KPj4+Pj4KPj4+Pj4gSSdtIHN0aWxs IG5vdCBjb21wbGV0ZWx5IHN1cmUgYWJvdXQgdGhpcyB0eXBlIG9mIGxheWVyaW5nIGFuZCB3aGV0 aGVyIG9yCj4+Pj4+IG5vdCBpdCBpcyBzYW5lLiBJZiB5b3Ugd2FudCBYZW4gdG8gbWFuYWdlIHRo ZSBjbG9jayBjb250cm9sbGVyLCBBTkQgeW91Cj4+Pj4+IHdhbnQgTGludXggZ3Vlc3RzIG9yIGRv bTAgdG8gY29uc3VtZSB0aG9zZSBjbG9ja3MgYW5kIG1hbmlwdWxhdGUgdGhlbSBpbgo+Pj4+PiBv dGhlciBkcml2ZXJzLCB0aGVuIHRoaXMgc29sdXRpb24gd29uJ3Qgd29yay4KPj4+Pj4KPj4+Pj4g UmVnYXJkcywKPj4+Pj4gTWlrZQo+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IFVwIHRvIG5vdywgdGhlIHdv cmthcm91bmQgZm9yIHRoaXMgaGFzIGJlZW4gdG8gdXNlIHRoZSBMaW51eCBrZXJuZWwKPj4+Pj4+ IGNvbW1hbmQgbGluZSBwYXJhbWV0ZXIgJ2Nsa19pZ25vcmVfdW51c2VkJy4gU2VlIFhlbiBidWcK Pj4+Pj4+Cj4+Pj4+PiBodHRwOi8vYnVncy54ZW5wcm9qZWN0Lm9yZy94ZW4vYnVnLzQ1Cj4+Pj4+ Pgo+Pj4+Pj4gdG9vLgo+Pj4+Pj4KPj4+Pj4+IFNpZ25lZC1vZmYtYnk6IERpcmsgQmVobWUgPGRp cmsuYmVobWVAZGUuYm9zY2guY29tPgo+Pj4+Pj4gLS0tCj4+Pj4+PiBDaGFuZ2VzIGluIHY0OiBT d2l0Y2ggdG8gdGhlIHhlbi50eHQgZGVzY3JpcHRpb24gcHJvcG9zZWQgYnkgTWFyazoKPj4+Pj4+ ICAgICAgICAgICAgICAgICBodHRwczovL3d3dy5zcGluaWNzLm5ldC9saXN0cy9hcm0ta2VybmVs L21zZzUxNjE1OC5odG1sCj4+Pj4+Pgo+Pj4+Pj4gQ2hhbmdlcyBpbiB2MzogVXNlIHRoZSB4ZW4u dHh0IGRlc2NyaXB0aW9uIHByb3Bvc2VkIGJ5IE1pY2hhZWwuIFRoYW5rcyEKPj4+Pj4+Cj4+Pj4+ PiBDaGFuZ2VzIGluIHYyOiBEcm9wIHRoZSBMaW51eCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGxp a2UKPj4+Pj4+IGNsa19kaXNhYmxlX3VudXNlZAo+Pj4+Pj4gICAgICAgICAgICAgICAgIGluIHhl bi50eHQuCj4+Pj4+Pgo+Pj4+Pj4gICBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3Mv YXJtL3hlbi50eHQgfCAxMiArKysrKysrCj4+Pj4+PiAgIGFyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4u YyAgICAgICAgICAgICAgICAgICAgICB8IDQ3Cj4+Pj4+PiArKysrKysrKysrKysrKysrKysrKysr KysrKysKPj4+Pj4+ICAgMiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspCj4+Pj4+Pgo+ Pj4+Pj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0v eGVuLnR4dAo+Pj4+Pj4gYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3hl bi50eHQKPj4+Pj4+IGluZGV4IGM5YjkzMjEuLjQzN2U1MGIgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9E b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3hlbi50eHQKPj4+Pj4+ICsrKyBi L0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0veGVuLnR4dAo+Pj4+Pj4gQEAg LTE3LDYgKzE3LDE4IEBAIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKPj4+Pj4+ICAgICBBIEdJ QyBub2RlIGlzIGFsc28gcmVxdWlyZWQuCj4+Pj4+PiAgICAgVGhpcyBwcm9wZXJ0eSBpcyB1bm5l Y2Vzc2FyeSB3aGVuIGJvb3RpbmcgRG9tMCB1c2luZyBBQ1BJLgo+Pj4+Pj4KPj4+Pj4+ICtPcHRp b25hbCBwcm9wZXJ0aWVzOgo+Pj4+Pj4gKwo+Pj4+Pj4gKy0gY2xvY2tzOiBhIGxpc3Qgb2YgcGhh bmRsZSArIGNsb2NrLXNwZWNpZmllciBwYWlycwo+Pj4+Pj4gKyAgQ2xvY2tzIGRlc2NyaWJlZCBi eSB0aGlzIHByb3BlcnR5IGFyZSByZXNlcnZlZCBmb3IgdXNlIGJ5IFhlbiwgYW5kIHRoZQo+Pj4+ Pj4gKyAgT1MgbXVzdCBub3QgYWx0ZXIgdGhlaXIgc3RhdGUgYW55IHdheSwgc3VjaCBhcyBkaXNh Ymxpbmcgb3IgZ2F0aW5nIGEKPj4+Pj4+ICsgIGNsb2NrLCBvciBtb2RpZnlpbmcgaXRzIHJhdGUu IEVuc3VyaW5nIHRoaXMgbWF5IGltcG9zZSBjb25zdHJhaW50cyBvbgo+Pj4+Pj4gKyAgcGFyZW50 IGNsb2NrcyBvciBvdGhlciByZXNvdXJjZXMgdXNlZCBieSB0aGUgY2xvY2sgdHJlZS4KPj4+Pj4+ ICsKPj4+Pj4+ICsgIE5vdGU6IHRoaXMgcHJvcGVydHkgaXMgdXNlZCB0byBwcm94eSBjbG9ja3Mg Zm9yIGRldmljZXMgWGVuIGhhcyB0YWtlbgo+Pj4+Pj4gKyAgb3duZXJzaGlwIG9mLCBzdWNoIGFz IFVBUlRzLCBmb3Igd2hpY2ggdGhlIGFzc29jaWF0ZWQgY2xvY2sKPj4+Pj4+ICsgIGNvbnRyb2xs ZXIocykgcmVtYWluIHVuZGVyIHRoZSBjb250cm9sIG9mIERvbTAuCj4+Pj4+PiArCj4+Pj4+PiAg IFRvIHN1cHBvcnQgVUVGSSBvbiBYZW4gQVJNIHZpcnR1YWwgcGxhdGZvcm1zLCBYZW4gcG9wdWxh dGVzIHRoZSBGRFQKPj4+Pj4+ICJ1ZWZpIiBub2RlCj4+Pj4+PiAgIHVuZGVyIC9oeXBlcnZpc29y IHdpdGggZm9sbG93aW5nIHBhcmFtZXRlcnM6Cj4+Pj4+Pgo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYyBiL2FyY2gvYXJtL3hlbi9lbmxpZ2h0ZW4uYwo+Pj4+Pj4g aW5kZXggNDdhY2IzNi4uNWM1NDZkMCAxMDA2NDQKPj4+Pj4+IC0tLSBhL2FyY2gvYXJtL3hlbi9l bmxpZ2h0ZW4uYwo+Pj4+Pj4gKysrIGIvYXJjaC9hcm0veGVuL2VubGlnaHRlbi5jCj4+Pj4+PiBA QCAtMjQsNiArMjQsNyBAQAo+Pj4+Pj4gICAjaW5jbHVkZSA8bGludXgvb2ZfZmR0Lmg+Cj4+Pj4+ PiAgICNpbmNsdWRlIDxsaW51eC9vZl9pcnEuaD4KPj4+Pj4+ICAgI2luY2x1ZGUgPGxpbnV4L29m X2FkZHJlc3MuaD4KPj4+Pj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLXByb3ZpZGVyLmg+Cj4+Pj4+ PiAgICNpbmNsdWRlIDxsaW51eC9jcHVpZGxlLmg+Cj4+Pj4+PiAgICNpbmNsdWRlIDxsaW51eC9j cHVmcmVxLmg+Cj4+Pj4+PiAgICNpbmNsdWRlIDxsaW51eC9jcHUuaD4KPj4+Pj4+IEBAIC00NDQs NiArNDQ1LDUyIEBAIHN0YXRpYyBpbnQgX19pbml0IHhlbl9wbV9pbml0KHZvaWQpCj4+Pj4+PiAg IH0KPj4+Pj4+ICAgbGF0ZV9pbml0Y2FsbCh4ZW5fcG1faW5pdCk7Cj4+Pj4+Pgo+Pj4+Pj4gKy8q Cj4+Pj4+PiArICogQ2hlY2sgaWYgd2Ugd2FudCB0byByZWdpc3RlciBzb21lIGNsb2NrcywgdGhh dCB0aGV5Cj4+Pj4+PiArICogYXJlIG5vdCBmcmVlZCBiZWNhdXNlIHVudXNlZCBieSBjbGtfZGlz YWJsZV91bnVzZWQoKS4KPj4+Pj4+ICsgKiBFLmcuIHRoZSBzZXJpYWwgY29uc29sZSBjbG9jay4K Pj4+Pj4+ICsgKi8KPj4+Pj4+ICtzdGF0aWMgaW50IF9faW5pdCB4ZW5fYXJtX3JlZ2lzdGVyX2Ns a3Modm9pZCkKPj4+Pj4+ICt7Cj4+Pj4+PiArICAgICAgIHN0cnVjdCBjbGsgKmNsazsKPj4+Pj4+ ICsgICAgICAgc3RydWN0IGRldmljZV9ub2RlICp4ZW5fbm9kZTsKPj4+Pj4+ICsgICAgICAgdW5z aWduZWQgaW50IGksIGNvdW50Owo+Pj4+Pj4gKyAgICAgICBpbnQgcmV0ID0gMDsKPj4+Pj4+ICsK Pj4+Pj4+ICsgICAgICAgeGVuX25vZGUgPSBvZl9maW5kX2NvbXBhdGlibGVfbm9kZShOVUxMLCBO VUxMLCAieGVuLHhlbiIpOwo+Pj4+Pj4gKyAgICAgICBpZiAoIXhlbl9ub2RlKSB7Cj4+Pj4+PiAr ICAgICAgICAgICAgICAgcHJfZXJyKCJYZW4gc3VwcG9ydCB3YXMgZGV0ZWN0ZWQgYmVmb3JlLCBi dXQgaXQgaGFzCj4+Pj4+PiBkaXNhcHBlYXJlZFxuIik7Cj4+Pj4+PiArICAgICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7Cj4+Pj4+PiArICAgICAgIH0KPj4+Pj4+ICsKPj4+Pj4+ICsgICAgICAg Y291bnQgPSBvZl9jbGtfZ2V0X3BhcmVudF9jb3VudCh4ZW5fbm9kZSk7Cj4+Pj4+PiArICAgICAg IGlmICghY291bnQpCj4+Pj4+PiArICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4+Pj4+PiArCj4+ Pj4+PiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7Cj4+Pj4+PiArICAgICAg ICAgICAgICAgY2xrID0gb2ZfY2xrX2dldCh4ZW5fbm9kZSwgaSk7Cj4+Pj4+PiArICAgICAgICAg ICAgICAgaWYgKElTX0VSUihjbGspKSB7Cj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICBw cl9lcnIoIlhlbiBmYWlsZWQgdG8gcmVnaXN0ZXIgY2xvY2sgJWkuIEVycm9yOgo+Pj4+Pj4gJWxp XG4iLAo+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksIFBUUl9FUlIoY2xr KSk7Cj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBQVFJfRVJSKGNsayk7Cj4+ Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKPj4+Pj4+ICsgICAgICAgICAg ICAgICB9Cj4+Pj4+PiArCj4+Pj4+PiArICAgICAgICAgICAgICAgcmV0ID0gY2xrX3ByZXBhcmVf ZW5hYmxlKGNsayk7Cj4+Pj4+PiArICAgICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKPj4+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAgIHByX2VycigiWGVuIGZhaWxlZCB0byBlbmFibGUgY2xv Y2sgJWkuIEVycm9yOgo+Pj4+Pj4gJWlcbiIsCj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaSwgcmV0KTsKPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0 Owo+Pj4+Pj4gKyAgICAgICAgICAgICAgIH0KPj4+Pj4+ICsgICAgICAgfQo+Pj4+Pj4gKwo+Pj4+ Pj4gKyAgICAgICByZXQgPSAwOwo+Pj4+Pj4gKwo+Pj4+Pj4gK291dDoKPj4+Pj4+ICsgICAgICAg b2Zfbm9kZV9wdXQoeGVuX25vZGUpOwo+Pj4+Pj4gKyAgICAgICByZXR1cm4gcmV0Owo+Pj4+Pj4g K30KPj4+Pj4+ICtsYXRlX2luaXRjYWxsKHhlbl9hcm1fcmVnaXN0ZXJfY2xrcyk7Cj4+Pj4+Pgo+ Pj4+Pj4gICAvKiBlbXB0eSBzdHVicyAqLwo+Pj4+Pj4gICB2b2lkIHhlbl9hcmNoX3ByZV9zdXNw ZW5kKHZvaWQpIHsgfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw czovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==