From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chanwoo Choi Subject: Re: [PATCH v3 2/4] drivers: devfreq: events: extend events by type of counted data Date: Thu, 2 May 2019 10:25:36 +0900 Message-ID: References: <1555681688-19643-1-git-send-email-l.luba@partner.samsung.com> <1555681688-19643-3-git-send-email-l.luba@partner.samsung.com> <3557d507-0463-89de-4025-fbeaaef78bed@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Lukasz Luba , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: mark.rutland@arm.com, willy.mh.wolff.ml@gmail.com, kgene@kernel.org, b.zolnierkie@samsung.com, krzk@kernel.org, kyungmin.park@samsung.com, robh+dt@kernel.org, myungjoo.ham@samsung.com, s.nawrocki@samsung.com, m.szyprowski@samsung.com List-Id: devicetree@vger.kernel.org SGkgTHVrYXN6LAoKT24gMTkuIDUuIDEuIOyYpOyghCA2OjE5LCBMdWthc3ogTHViYSB3cm90ZToK PiBIaSBDaGFud29vLAo+IAo+IE9uIDQvMzAvMTkgOTozNCBBTSwgQ2hhbndvbyBDaG9pIHdyb3Rl Ogo+PiBIaSBMdWthc3osCj4+Cj4+IE9uIDE5LiA0LiAxOS4g7Jik7ZuEIDEwOjQ4LCBMdWthc3og THViYSB3cm90ZToKPj4+IFRoaXMgcGF0Y2ggYWRkcyBwb3NpYmlsaXR5IHRvIGNob29zZSB3aGF0 IHR5cGUgb2YgZGF0YSBzaG91bGQgYmUgY291bnRlZAo+Pj4gYnkgdGhlIFBQTVUgY291bnRlci4g Tm93IHRoZSB0eXBlIGNvbWVzIGZyb20gRFQgd2hlcmUgdGhlIGV2ZW50IGhhcyBiZWVuCj4+PiBk ZWZpbmVkLiBXaGVuIHRoZXJlIGlzIG5vICdldmVudC1kYXRhLXR5cGUnIHRoZSBkZWZhdWx0IHZh bHVlIGlzIHVzZWQsCj4+PiB3aGljaCBpcyAncmVhZCBkYXRhIGluIGJ5dGVzJy4KPj4+IEl0IGlz IG5lZWRlZCB3aGVuIHlvdSB3YW50IHRvIGtub3cgbm90IG9ubHkgcmVhZCt3cml0ZSBkYXRhIGJ5 dGVzIGJ1dAo+Pj4gaS5lLiBvbmx5IHdyaXRlIGRhdGEgaW4gYnl0ZSwgb3IgbnVtYmVyIG9mIHJl YWQgcmVxdWVzdHMsIGV0Yy4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBMdWthc3ogTHViYSA8bC5s dWJhQHBhcnRuZXIuc2Ftc3VuZy5jb20+Cj4+PiAtLS0KPj4+ICAgZHJpdmVycy9kZXZmcmVxL2V2 ZW50L2V4eW5vcy1wcG11LmMgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tCj4+PiAgIGluY2x1ZGUvbGludXgvZGV2ZnJlcS1ldmVudC5oICAgICAgIHwgIDYgKysrKwo+ Pj4gICAyIGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQo+ Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RldmZyZXEvZXZlbnQvZXh5bm9zLXBwbXUuYyBi L2RyaXZlcnMvZGV2ZnJlcS9ldmVudC9leHlub3MtcHBtdS5jCj4+PiBpbmRleCBjNjFkZTBiLi4w NzNiZjJjIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9kZXZmcmVxL2V2ZW50L2V4eW5vcy1wcG11 LmMKPj4+ICsrKyBiL2RyaXZlcnMvZGV2ZnJlcS9ldmVudC9leHlub3MtcHBtdS5jCj4+PiBAQCAt MTU0LDkgKzE1NCw5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX3BwbXVfc2V0X2V2ZW50KHN0cnVjdCBk ZXZmcmVxX2V2ZW50X2RldiAqZWRldikKPj4+ICAgCWlmIChyZXQgPCAwKQo+Pj4gICAJCXJldHVy biByZXQ7Cj4+PiAgIAo+Pj4gLQkvKiBTZXQgdGhlIGV2ZW50IG9mIFJlYWQvV3JpdGUgZGF0YSBj b3VudCAgKi8KPj4+ICsJLyogU2V0IHRoZSBldmVudCBvZiBwcm9wZXIgZGF0YSB0eXBlIG1vbml0 b3JpbmcgKi8KPj4+ICAgCXJldCA9IHJlZ21hcF93cml0ZShpbmZvLT5yZWdtYXAsIFBQTVVfQkVW VHhTRUwoaWQpLAo+Pj4gLQkJCQlQUE1VX1JPX0RBVEFfQ05UIHwgUFBNVV9XT19EQVRBX0NOVCk7 Cj4+PiArCQkJICAgZWRldi0+ZGVzYy0+ZGF0YV90eXBlKTsKPj4+ICAgCWlmIChyZXQgPCAwKQo+ Pj4gICAJCXJldHVybiByZXQ7Cj4+PiAgIAo+Pj4gQEAgLTM2OCwyMyArMzY4LDExIEBAIHN0YXRp YyBpbnQgZXh5bm9zX3BwbXVfdjJfc2V0X2V2ZW50KHN0cnVjdCBkZXZmcmVxX2V2ZW50X2RldiAq ZWRldikKPj4+ICAgCWlmIChyZXQgPCAwKQo+Pj4gICAJCXJldHVybiByZXQ7Cj4+PiAgIAo+Pj4g LQkvKiBTZXQgdGhlIGV2ZW50IG9mIFJlYWQvV3JpdGUgZGF0YSBjb3VudCAgKi8KPj4+IC0Jc3dp dGNoIChpZCkgewo+Pj4gLQljYXNlIFBQTVVfUE1OQ05UMDoKPj4+IC0JY2FzZSBQUE1VX1BNTkNO VDE6Cj4+PiAtCWNhc2UgUFBNVV9QTU5DTlQyOgo+Pj4gLQkJcmV0ID0gcmVnbWFwX3dyaXRlKGlu Zm8tPnJlZ21hcCwgUFBNVV9WMl9DSF9FVnhfVFlQRShpZCksCj4+PiAtCQkJCVBQTVVfVjJfUk9f REFUQV9DTlQgfCBQUE1VX1YyX1dPX0RBVEFfQ05UKTsKPj4+IC0JCWlmIChyZXQgPCAwKQo+Pj4g LQkJCXJldHVybiByZXQ7Cj4+PiAtCQlicmVhazsKPj4+IC0JY2FzZSBQUE1VX1BNTkNOVDM6Cj4+ PiAtCQlyZXQgPSByZWdtYXBfd3JpdGUoaW5mby0+cmVnbWFwLCBQUE1VX1YyX0NIX0VWeF9UWVBF KGlkKSwKPj4+IC0JCQkJUFBNVV9WMl9FVlQzX1JXX0RBVEFfQ05UKTsKPj4+IC0JCWlmIChyZXQg PCAwKQo+Pj4gLQkJCXJldHVybiByZXQ7Cj4+PiAtCQlicmVhazsKPj4+IC0JfQo+Pj4gKwkvKiBT ZXQgdGhlIGV2ZW50IG9mIHByb3BlciBkYXRhIHR5cGUgbW9uaXRvcmluZyAqLwo+Pj4gKwlyZXQg PSByZWdtYXBfd3JpdGUoaW5mby0+cmVnbWFwLCBQUE1VX1YyX0NIX0VWeF9UWVBFKGlkKSwKPj4+ ICsJCQkgICBlZGV2LT5kZXNjLT5kYXRhX3R5cGUpOwo+Pj4gKwlpZiAocmV0IDwgMCkKPj4+ICsJ CXJldHVybiByZXQ7Cj4+PiAgIAo+Pj4gICAJLyogUmVzZXQgY3ljbGUgY291bnRlci9wZXJmb3Jt YW5jZSBjb3VudGVyIGFuZCBlbmFibGUgUFBNVSAqLwo+Pj4gICAJcmV0ID0gcmVnbWFwX3JlYWQo aW5mby0+cmVnbWFwLCBQUE1VX1YyX1BNTkMsICZwbW5jKTsKPj4+IEBAIC01MDgsNiArNDk2LDcg QEAgc3RhdGljIGludCBvZl9nZXRfZGV2ZnJlcV9ldmVudHMoc3RydWN0IGRldmljZV9ub2RlICpu cCwKPj4+ICAgCXN0cnVjdCBkZXZpY2UgKmRldiA9IGluZm8tPmRldjsKPj4+ICAgCXN0cnVjdCBk ZXZpY2Vfbm9kZSAqZXZlbnRzX25wLCAqbm9kZTsKPj4+ICAgCWludCBpLCBqLCBjb3VudDsKPj4+ ICsJaW50IHJldDsKPj4+ICAgCj4+PiAgIAlldmVudHNfbnAgPSBvZl9nZXRfY2hpbGRfYnlfbmFt ZShucCwgImV2ZW50cyIpOwo+Pj4gICAJaWYgKCFldmVudHNfbnApIHsKPj4+IEBAIC01NDQsNiAr NTMzLDQwIEBAIHN0YXRpYyBpbnQgb2ZfZ2V0X2RldmZyZXFfZXZlbnRzKHN0cnVjdCBkZXZpY2Vf bm9kZSAqbnAsCj4+PiAgIAkJZGVzY1tqXS5kcml2ZXJfZGF0YSA9IGluZm87Cj4+PiAgIAo+Pj4g ICAJCW9mX3Byb3BlcnR5X3JlYWRfc3RyaW5nKG5vZGUsICJldmVudC1uYW1lIiwgJmRlc2Nbal0u bmFtZSk7Cj4+PiArCQlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihub2RlLCAiZXZlbnQtZGF0 YS10eXBlIiwKPj4+ICsJCQkJCSAgICZkZXNjW2pdLmRhdGFfdHlwZSk7Cj4+PiArCQlpZiAocmV0 KSB7Cj4+PiArCQkJLyogU2V0IHRoZSBldmVudCBvZiBwcm9wZXIgZGF0YSB0eXBlIGNvdW50aW5n Lgo+Pj4gKwkJCSAqIENoZWNrIGlmIHRoZSBkYXRhIHR5cGUgaGFzIGJlZW4gZGVmaW5lZCBpbiBE VCwKPj4+ICsJCQkgKiB1c2UgZGVmYXVsdCBpZiBub3QuCj4+PiArCQkJICovCj4+PiArCQkJaWYg KG9mX2RldmljZV9pc19jb21wYXRpYmxlKG5wLAo+Pj4gKwkJCQkJInNhbXN1bmcsZXh5bm9zLXBw bXUtdjIiKSkgewo+Pgo+PiBJdCBpcyBub3QgcHJvcGVyIHRvIGNvbXBhcmUgdGhlIGNvbXBhdGli bGUgc3RyaW5nIGFnYWluCj4+IGluIHRoZSBkZXZpY2UgZHJpdmVyLiBJbnN0ZWFkLCB5b3UgY2Fu IGRlZmluZSB0aGUgcHBtdSBkZXZpY2UgdHlwZQo+PiBhcyBmb2xsb3dpbmcgYW5kIHRoZW4gdXNl ICdzdHJ1Y3Qgb2ZfZGV2aWNlX2lkJyBpbiBvcmRlciB0bwo+PiBpZGVudGlmeSB0aGUgZGV2aWNl IHR5cGUuCj4gSSBoYXZlIGJlZW4gdGhpbmtpbmcgYWJvdXQgbW9kaWZ5aW5nIHRoZSBjb2RlIGlu IHNpbWlsYXIgZmFzaGlvbiBhcyB5b3UKPiBkaWQuIEdvb2QgdG8gc2VlIHNpbWlsYXIgYXBwcm9h Y2guIEknbGwgdGFrZSB5b3VyIGNoYW5nZXMgd2l0aCBhIHNtYWxsCj4gYWRkaXRpb25hbCBjb2Rl LCB3aGljaCBzZXRzIHRoZSAnaW5mby0+cHBtdV90eXBlJyBiZWZvcmUgdGhlIGZvcgo+IGxvb3As IGFzIGFuIGFkZGl0aW9uYWwgcGF0Y2guIFdvdWxkIGl0IGJlIE9LIGlmIEkgYWRkIHlvdSBhcyBh biBhdXRob3IKPiBhbmQgYWRkIFNpZ24tb2ZmLWJ5OiBDaGFud29vIENob2kgPGN3MDAuY2hvaUBz YW1zdW5nLmNvbT4/CgpJZiB5b3UgYWdyZWUsIGp1c3QgYWRkIHRoZSBteSBzaWduZWQtb2ZmLWJ5 IG9uIHNlY29uZCBsaW5lLgoKPiAKPiBSZWdhcmRzLAo+IEx1a2Fzego+Pgo+PiAJZW51bSBleHlu b3NfcHBtdV90eXBlIHsKPj4gCQlFWFlOT1NfVFlQRV9QUE1VLAo+PiAJCUVYWU5PU19UWVBFX1BQ TVVfVjIsCj4+IAl9Owo+Pgo+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGV4 eW5vc19wcG11X2lkX21hdGNoW10gPSB7Cj4+ICAgICAgICAgIHsKPj4gICAgICAgICAgICAgICAg ICAuY29tcGF0aWJsZSA9ICJzYW1zdW5nLGV4eW5vcy1wcG11IiwKPj4gLSAgICAgICAgICAgICAg IC5kYXRhID0gKHZvaWQgKikmZXh5bm9zX3BwbXVfb3BzLAo+PiArICAgICAgICAgICAgICAgLmRh dGEgPSAodm9pZCAqKUVYWU5PU19UWVBFX1BQTVUsCj4+ICAgICAgICAgIH0sIHsKPj4gICAgICAg ICAgICAgICAgICAuY29tcGF0aWJsZSA9ICJzYW1zdW5nLGV4eW5vcy1wcG11LXYyIiwKPj4gLSAg ICAgICAgICAgICAgIC5kYXRhID0gKHZvaWQgKikmZXh5bm9zX3BwbXVfdjJfb3BzLAo+PiArICAg ICAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKUVYWU5PU19UWVBFX1BQTVVfVjIsCj4+ICAgICAg ICAgIH0sCj4+Cj4+Cj4+IFRoZSBtYW55IGRldmljZSBkcml2ZXJzIGluIHRoZSBtYWlubGluZSB1 c2VzIHRoaXMgY29kZQo+PiBpbiBvcmRlciB0byBnZXQgdGhlIGRldmljZSB0eXBlLiBZb3UgY2Fu IHJlZmVyIHRoZSBleGFtcGxlCj4+IGluIHRoZSBkcml2ZXJzL21mZC9tYXgxNDU3Ny5jLgo+Pgo+ PiAoc25pcCkKPj4KPj4KPj4gRXhhbXBsZSwgSSBhZGQgdGhlIGV4YW1wbGUuIGJ1dCBpdCBpcyBu b3QgdGVzdGVkLgo+Pgo+PiAtLS0gYS9kcml2ZXJzL2RldmZyZXEvZXZlbnQvZXh5bm9zLXBwbXUu Ywo+PiArKysgYi9kcml2ZXJzL2RldmZyZXEvZXZlbnQvZXh5bm9zLXBwbXUuYwo+PiBAQCAtMTYs NiArMTYsNyBAQAo+PiAgICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPj4gICAjaW5jbHVkZSA8 bGludXgvbW9kdWxlLmg+Cj4+ICAgI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3MuaD4KPj4gKyNp bmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4KPj4gICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1f ZGV2aWNlLmg+Cj4+ICAgI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgo+PiAgICNpbmNsdWRlIDxs aW51eC9zdXNwZW5kLmg+Cj4+IEBAIC0yMyw2ICsyNCwxMSBAQAo+PiAgIAo+PiAgICNpbmNsdWRl ICJleHlub3MtcHBtdS5oIgo+PiAgIAo+PiArZW51bSBleHlub3NfcHBtdV90eXBlIHsKPj4gKyAg ICAgICBFWFlOT1NfVFlQRV9QUE1VLAo+PiArICAgICAgIEVYWU5PU19UWVBFX1BQTVVfVjIsCj4+ ICt9Owo+PiArCj4+ICAgc3RydWN0IGV4eW5vc19wcG11X2RhdGEgewo+PiAgICAgICAgICBzdHJ1 Y3QgY2xrICpjbGs7Cj4+ICAgfTsKPj4gQEAgLTM2LDYgKzQyLDcgQEAgc3RydWN0IGV4eW5vc19w cG11IHsKPj4gICAgICAgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwOwo+PiAgIAo+PiAgICAgICAg ICBzdHJ1Y3QgZXh5bm9zX3BwbXVfZGF0YSBwcG11Owo+PiArICAgICAgIGVudW0gZXh5bm9zX3Bw bXVfdHlwZSBwcG11X3R5cGU7Cj4+ICAgfTsKPj4gICAKPj4gICAjZGVmaW5lIFBQTVVfRVZFTlQo bmFtZSkgICAgICAgICAgICAgICAgICAgICAgIFwKPj4gICAKPj4gICAgICAgICAgLyogUmVzZXQg Y3ljbGUgY291bnRlci9wZXJmb3JtYW5jZSBjb3VudGVyIGFuZCBlbmFibGUgUFBNVSAqLwo+PiAg ICAgICAgICByZXQgPSByZWdtYXBfcmVhZChpbmZvLT5yZWdtYXAsIFBQTVVfVjJfUE1OQywgJnBt bmMpOwo+PiBAQCAtNDgzLDMxICs0NzYsMjMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZmcmVx X2V2ZW50X29wcyBleHlub3NfcHBtdV92Ml9vcHMgPSB7Cj4+ICAgc3RhdGljIGNvbnN0IHN0cnVj dCBvZl9kZXZpY2VfaWQgZXh5bm9zX3BwbXVfaWRfbWF0Y2hbXSA9IHsKPj4gICAgICAgICAgewo+ PiAgICAgICAgICAgICAgICAgIC5jb21wYXRpYmxlID0gInNhbXN1bmcsZXh5bm9zLXBwbXUiLAo+ PiAtICAgICAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKSZleHlub3NfcHBtdV9vcHMsCj4+ICsg ICAgICAgICAgICAgICAuZGF0YSA9ICh2b2lkICopRVhZTk9TX1RZUEVfUFBNVSwKPj4gICAgICAg ICAgfSwgewo+PiAgICAgICAgICAgICAgICAgIC5jb21wYXRpYmxlID0gInNhbXN1bmcsZXh5bm9z LXBwbXUtdjIiLAo+PiAtICAgICAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKSZleHlub3NfcHBt dV92Ml9vcHMsCj4+ICsgICAgICAgICAgICAgICAuZGF0YSA9ICh2b2lkICopRVhZTk9TX1RZUEVf UFBNVV9WMiwKPj4gICAgICAgICAgfSwKPj4gICAgICAgICAgeyAvKiBzZW50aW5lbCAqLyB9LAo+ PiAgIH07Cj4+ICAgTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZXh5bm9zX3BwbXVfaWRfbWF0Y2gp Owo+PiAgIAo+PiAtc3RhdGljIHN0cnVjdCBkZXZmcmVxX2V2ZW50X29wcyAqZXh5bm9zX2J1c19n ZXRfb3BzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnApCj4+IC17Cj4+IC0gICAgICAgY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7Cj4+IC0KPj4gLSAgICAgICBtYXRjaCA9IG9mX21hdGNo X25vZGUoZXh5bm9zX3BwbXVfaWRfbWF0Y2gsIG5wKTsKPj4gLSAgICAgICByZXR1cm4gKHN0cnVj dCBkZXZmcmVxX2V2ZW50X29wcyAqKW1hdGNoLT5kYXRhOwo+PiAtfQo+PiAtCj4+ICAgc3RhdGlj IGludCBvZl9nZXRfZGV2ZnJlcV9ldmVudHMoc3RydWN0IGRldmljZV9ub2RlICpucCwKPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBleHlub3NfcHBtdSAqaW5mbykK Pj4gICB7Cj4+ICAgICAgICAgIHN0cnVjdCBkZXZmcmVxX2V2ZW50X2Rlc2MgKmRlc2M7Cj4+IC0g ICAgICAgc3RydWN0IGRldmZyZXFfZXZlbnRfb3BzICpldmVudF9vcHM7Cj4+ICAgICAgICAgIHN0 cnVjdCBkZXZpY2UgKmRldiA9IGluZm8tPmRldjsKPj4gICAgICAgICAgc3RydWN0IGRldmljZV9u b2RlICpldmVudHNfbnAsICpub2RlOwo+PiAgICAgICAgICBpbnQgaSwgaiwgY291bnQ7Cj4+ICAg Cj4+ICAgICAgICAgIGV2ZW50c19ucCA9IG9mX2dldF9jaGlsZF9ieV9uYW1lKG5wLCAiZXZlbnRz Iik7Cj4+ICAgICAgICAgIGlmICghZXZlbnRzX25wKSB7Cj4+IEBAIC01MTUsNyArNTAwLDYgQEAg c3RhdGljIGludCBvZl9nZXRfZGV2ZnJlcV9ldmVudHMoc3RydWN0IGRldmljZV9ub2RlICpucCwK Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gZ2V0IGNoaWxkIG5vZGUgb2Yg ZGV2ZnJlcS1ldmVudCBkZXZpY2VzXG4iKTsKPj4gICAgICAgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKPj4gICAgICAgICAgfQo+PiAtICAgICAgIGV2ZW50X29wcyA9IGV4eW5vc19idXNfZ2V0 X29wcyhucCk7Cj4+ICAgCj4+ICAgICAgICAgIGNvdW50ID0gb2ZfZ2V0X2NoaWxkX2NvdW50KGV2 ZW50c19ucCk7Cj4+ICAgICAgICAgIGRlc2MgPSBkZXZtX2tjYWxsb2MoZGV2LCBjb3VudCwgc2l6 ZW9mKCpkZXNjKSwgR0ZQX0tFUk5FTCk7Cj4+IEBAIC01NDAsMTEgKzUyNCwzOCBAQCBzdGF0aWMg aW50IG9mX2dldF9kZXZmcmVxX2V2ZW50cyhzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4+ICAgICAgICAgICAgICAgICAgfQo+PiAg IAo+PiAtICAgICAgICAgICAgICAgZGVzY1tqXS5vcHMgPSBldmVudF9vcHM7Cj4+ICsgICAgICAg ICAgICAgICBzd2l0Y2ggKGluZm8tPnBwbXVfdHlwZSkgewo+PiArICAgICAgICAgICAgICAgY2Fz ZSBFWFlOT1NfVFlQRV9QUE1VOgo+PiArICAgICAgICAgICAgICAgICAgICAgICBkZXNjW2pdLm9w cyA9ICZleHlub3NfcHBtdV9vcHM7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ PiArICAgICAgICAgICAgICAgY2FzZSBFWFlOT1NfVFlQRV9QUE1VX1YyOgo+PiArICAgICAgICAg ICAgICAgICAgICAgICBkZXNjW2pdLm9wcyA9ICZleHlub3NfcHBtdV92Ml9vcHM7Cj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+PiArICAgICAgICAgICAgICAgfQo+PiArCj4+Cj4+ Cj4gCj4gCgoKLS0gCkJlc3QgUmVnYXJkcywKQ2hhbndvbyBDaG9pClNhbXN1bmcgRWxlY3Ryb25p Y3MKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFk Lm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFy bS1rZXJuZWwK