From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 41CCDC43332 for ; Sat, 21 Mar 2020 23:26:45 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1FB4620776 for ; Sat, 21 Mar 2020 23:26:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1FB4620776 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A83616E21C; Sat, 21 Mar 2020 23:26:44 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 64ED66E21C for ; Sat, 21 Mar 2020 23:26:43 +0000 (UTC) IronPort-SDR: a+SP30F87Buza/KOi8X1EhCZyngvAwIgjnTDMj35CH/3W43N9nMzR7GybSIr65jwBrY2xY6dom jpnI8VJgTeJQ== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Mar 2020 16:26:42 -0700 IronPort-SDR: BaQ6FMrOomF2/Yq5M4SPgd2czHdLwkXJA7vauHi4KPm1k20PXYAgKe8BbnEEhNSff5Ka08x85c TbMHrXySkXwg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,290,1580803200"; d="scan'208";a="269474799" Received: from adixit-mobl.amr.corp.intel.com (HELO adixit-arch.intel.com) ([10.254.177.128]) by fmsmga004.fm.intel.com with ESMTP; 21 Mar 2020 16:26:42 -0700 Date: Sat, 21 Mar 2020 16:26:42 -0700 Message-ID: <87zhc9p9vx.wl-ashutosh.dixit@intel.com> From: "Dixit, Ashutosh" To: Umesh Nerlige Ramappa In-Reply-To: <20200319225203.29679-2-umesh.nerlige.ramappa@intel.com> References: <20200319225203.29679-1-umesh.nerlige.ramappa@intel.com> <20200319225203.29679-2-umesh.nerlige.ramappa@intel.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.8 EasyPG/1.0.0 Emacs/26 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Subject: Re: [Intel-gfx] [PATCH 1/3] drm/i915/perf: rework aging tail workaround X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVGh1LCAxOSBNYXIgMjAyMCAxNTo1MjowMSAtMDcwMCwgVW1lc2ggTmVybGlnZSBSYW1hcHBh IHdyb3RlOgo+Cj4gRnJvbTogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3ZXJsaW5A aW50ZWwuY29tPgo+Cj4gV2UncmUgYWJvdXQgdG8gaW50cm9kdWNlIGFuIG9wdGlvbnMgdG8gb3Bl biB0aGUgcGVyZiBzdHJlYW0sIGdpdmluZwo+IHRoZSB1c2VyIGFiaWxpdHkgdG8gY29uZmlndXJl IGhvdyBvZnRlbiBpdCB3YW50cyB0aGUga2VybmVsIHRvIHBvbGwKPiB0aGUgT0EgcmVnaXN0ZXJz IGZvciBhdmFpbGFibGUgZGF0YS4KPgo+IFJpZ2h0IG5vdyB0aGUgd29ya2Fyb3VuZCBhZ2FpbnN0 IHRoZSBPQSB0YWlsIHBvaW50ZXIgcmFjZSBjb25kaXRpb24KPiByZXF1aXJlcyBhdCBsZWFzdCB0 d2ljZSB0aGUgaW50ZXJuYWwga2VybmVsIHBvbGxpbmcgdGltZXIgdG8gbWFrZSBhbnkKPiBkYXRh IGF2YWlsYWJsZS4KPgo+IFRoaXMgY2hhbmdlcyBpbnRyb2R1Y2UgY2hlY2tzIG9uIHRoZSBPQSBk YXRhIHdyaXR0ZW4gaW50byB0aGUgY2lyY3VsYXIKPiBidWZmZXIgdG8gbWFrZSBhcyBtdWNoIGRh dGEgYXMgcG9zc2libGUgYXZhaWxhYmxlIG9uIHRoZSBmaXJzdAo+IGl0ZXJhdGlvbiBvZiB0aGUg cG9sbGluZyB0aW1lci4KCi9zbmlwLwoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9wZXJmLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+IGluZGV4 IDMyMjJmNmNkODI1NS4uYzE0MjlkM2FjYWY5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGVyZi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJm LmMKPiBAQCAtMjIzLDI2ICsyMjMsMTcgQEAKPiAgICoKPiAgICogQWx0aG91Z2ggdGhpcyBjYW4g YmUgb2JzZXJ2ZWQgZXhwbGljaXRseSB3aGlsZSBjb3B5aW5nIHJlcG9ydHMgdG8gdXNlcnNwYWNl Cj4gICAqIGJ5IGNoZWNraW5nIGZvciBhIHplcm9lZCByZXBvcnQtaWQgZmllbGQgaW4gdGFpbCBy ZXBvcnRzLCB3ZSB3YW50IHRvIGFjY291bnQKPiAtICogZm9yIHRoaXMgZWFybGllciwgYXMgcGFy dCBvZiB0aGUgb2FfYnVmZmVyX2NoZWNrIHRvIGF2b2lkIGxvdHMgb2YgcmVkdW5kYW50Cj4gLSAq IHJlYWQoKSBhdHRlbXB0cy4KPiAtICoKPiAtICogSW4gZWZmZWN0IHdlIGRlZmluZSBhIHRhaWwg cG9pbnRlciBmb3IgcmVhZGluZyB0aGF0IGxhZ3MgdGhlIHJlYWwgdGFpbAo+IC0gKiBwb2ludGVy IGJ5IGF0IGxlYXN0ICVPQV9UQUlMX01BUkdJTl9OU0VDIG5hbm9zZWNvbmRzLCB3aGljaCBnaXZl cyBlbm91Z2gKPiAtICogdGltZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcmVwb3J0cyB0byBiZWNv bWUgdmlzaWJsZSB0byB0aGUgQ1BVLgo+IC0gKgo+IC0gKiBUbyBtYW5hZ2UgdGhpcyB3ZSBhY3R1 YWxseSB0cmFjayB0d28gdGFpbCBwb2ludGVyczoKPiAtICogIDEpIEFuICdhZ2luZycgdGFpbCB3 aXRoIGFuIGFzc29jaWF0ZWQgdGltZXN0YW1wIHRoYXQgaXMgdHJhY2tlZCB1bnRpbCB3ZQo+IC0g KiAgICAgY2FuIHRydXN0IHRoZSBjb3JyZXNwb25kaW5nIGRhdGEgaXMgdmlzaWJsZSB0byB0aGUg Q1BVOyBhdCB3aGljaCBwb2ludAo+IC0gKiAgICAgaXQgaXMgY29uc2lkZXJlZCAnYWdlZCcuCj4g LSAqICAyKSBBbiAnYWdlZCcgdGFpbCB0aGF0IGNhbiBiZSB1c2VkIGZvciByZWFkKClpbmcuCj4g LSAqCj4gLSAqIFRoZSB0d28gc2VwYXJhdGUgcG9pbnRlcnMgbGV0IHVzIGRlY291cGxlIHJlYWQo KXMgZnJvbSB0YWlsIHBvaW50ZXIgYWdpbmcuCj4gLSAqCj4gLSAqIFRoZSB0YWlsIHBvaW50ZXJz IGFyZSBjaGVja2VkIGFuZCB1cGRhdGVkIGF0IGEgbGltaXRlZCByYXRlIHdpdGhpbiBhIGhydGlt ZXIKPiAtICogY2FsbGJhY2sgKHRoZSBzYW1lIGNhbGxiYWNrIHRoYXQgaXMgdXNlZCBmb3IgZGVs aXZlcmluZyBFUE9MTElOIGV2ZW50cykKPiAtICoKPiAtICogSW5pdGlhbGx5IHRoZSB0YWlscyBh cmUgbWFya2VkIGludmFsaWQgd2l0aCAlSU5WQUxJRF9UQUlMX1BUUiB3aGljaAo+IC0gKiBpbmRp Y2F0ZXMgdGhhdCBhbiB1cGRhdGVkIHRhaWwgcG9pbnRlciBpcyBuZWVkZWQuCj4gKyAqIGZvciB0 aGlzIGVhcmxpZXIsIGFzIHBhcnQgb2YgdGhlIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZCB0byBh dm9pZCBsb3RzIG9mCj4gKyAqIHJlZHVuZGFudCByZWFkKCkgYXR0ZW1wdHMuCj4gKyAqCj4gKyAq IFdlIHdvcmthcm91bmQgdGhpcyBpc3N1ZSBpbiBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoKSBi eSByZWFkaW5nIHRoZSByZXBvcnRzCj4gKyAqIGluIHRoZSBPQSBidWZmZXIsIHN0YXJ0aW5nIGZy b20gdGhlIHRhaWwgcmVwb3J0ZWQgYnkgdGhlIEhXIHVudGlsIHdlIGZpbmQgMgo+ICsgKiBjb25z ZWN1dGl2ZSByZXBvcnRzIHdpdGggdGhlaXIgZmlyc3QgMiBkd29yZHMgb2Ygbm90IGF0IDAuIFRo b3NlIGR3b3JkcyBhcmUKCnVudGlsIHdlIGZpbmQgYSByZXBvcnQgd2l0aCBpdHMgZmlyc3QgMiBk d29yZHMgbm90IDAgbWVhbmluZyBpdHMgcHJldmlvdXMKcmVwb3J0IGlzIGNvbXBsZXRlbHkgaW4g bWVtb3J5IGFuZCByZWFkeSB0byBiZSByZWFkLgoKPiArICogYWxzbyBzZXQgdG8gMCBvbmNlIHJl YWQgYW5kIHRoZSB3aG9sZSBidWZmZXIgaXMgY2xlYXJlZCB1cG9uIE9BIGJ1ZmZlcgo+ICsgKiBp bml0aWFsaXphdGlvbi4gVGhlIGZpcnN0IGR3b3JkIGlzIHRoZSByZWFzb24gZm9yIHRoaXMgcmVw b3J0IHdoaWxlIHRoZQo+ICsgKiBzZWNvbmQgaXMgdGhlIHRpbWVzdGFtcCwgbWFraW5nIHRoZSBj aGFuY2VzIG9mIGhhdmluZyB0aG9zZSAyIGZpZWxkcyBhdCAwCj4gKyAqIGZhaXJseSB1bmxpa2Vs eS4gQSBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIGlzIGF2YWlsYWJsZSBpbgo+ICsgKiBvYV9i dWZmZXJfY2hlY2tfdW5sb2NrZWQoKS4KCj4gQEAgLTQ3NywxNiArNDY4LDYgQEAgc3RhdGljIGJv b2wgb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0pCj4JICovCj4Jc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2Nr LCBmbGFncyk7Cj4KPglod190YWlsID0gc3RyZWFtLT5wZXJmLT5vcHMub2FfaHdfdGFpbF9yZWFk KHN0cmVhbSk7Cj4KPglod190YWlsICY9IH4ocmVwb3J0X3NpemUgLSAxKTsKPgo+IEBAIC00OTYs NjQgKzQ3Nyw2NCBAQCBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKPgo+CW5vdyA9IGt0aW1lX2dldF9tb25vX2Zhc3Rf bnMoKTsKPgo+ICsJaWYgKGh3X3RhaWwgPT0gc3RyZWFtLT5vYV9idWZmZXIuYWdpbmdfdGFpbCAm Jgo+ICsJICAgKG5vdyAtIHN0cmVhbS0+b2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCkgPiBPQV9U QUlMX01BUkdJTl9OU0VDKSB7Cj4gKwkJLyogSWYgdGhlIEhXIHRhaWwgaGFzbid0IG1vdmUgc2lu Y2UgdGhlIGxhc3QgY2hlY2sgYW5kIHRoZSBIVwo+ICsJCSAqIHRhaWwgaGFzIGJlZW4gYWdpbmcg Zm9yIGxvbmcgZW5vdWdoLCBkZWNsYXJlIGl0IHRoZSBuZXcKPiArCQkgKiB0YWlsLgo+ICsJCSAq Lwo+ICsJCXN0cmVhbS0+b2FfYnVmZmVyLnRhaWwgPSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190 YWlsOwo+ICsJfSBlbHNlIHsKPiArCQl1MzIgaGVhZCwgdGFpbDsKPgo+ICsJCS8qIE5COiBUaGUg aGVhZCB3ZSBvYnNlcnZlIGhlcmUgbWlnaHQgZWZmZWN0aXZlbHkgYmUgYSBsaXR0bGUKPiArCQkg KiBvdXQgb2YgZGF0ZS4gSWYgYSByZWFkKCkgaXMgaW4gcHJvZ3Jlc3MsIHRoZSBoZWFkIGNvdWxk IGJlCj4gKwkJICogYW55d2hlcmUgYmV0d2VlbiB0aGlzIGhlYWQgYW5kIHN0cmVhbS0+b2FfYnVm ZmVyLnRhaWwuCj4gKwkJICovCj4gKwkJaGVhZCA9IHN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgLSBn dHRfb2Zmc2V0Owo+Cj4gKwkJaHdfdGFpbCAtPSBndHRfb2Zmc2V0Owo+ICsJCXRhaWwgPSBod190 YWlsOwo+Cj4gKwkJLyogV2FsayB0aGUgc3RyZWFtIGJhY2t3YXJkIHVudGlsIHdlIGZpbmQgYSBy ZXBvcnQgd2l0aCBkd29yZCAwCj4gKwkJICogJiAxIG5vdCBhdCAwLiBTaW5jZSB0aGUgY2lyY3Vs YXIgYnVmZmVyIHBvaW50ZXJzIHByb2dyZXNzIGJ5Cj4gKwkJICogaW5jcmVtZW50cyBvZiA2NCBi eXRlcyBhbmQgdGhhdCByZXBvcnRzIGNhbiBiZSB1cCB0byAyNTYKPiArCQkgKiBieXRlcyBsb25n LCB3ZSBjYW4ndCB0ZWxsIHdoZXRoZXIgYSByZXBvcnQgaGFzIGZ1bGx5IGxhbmRlZAo+ICsJCSAq IGluIG1lbW9yeSBiZWZvcmUgdGhlIGZpcnN0IDIgZHdvcmRzIG9mIHRoZSBmb2xsb3dpbmcgcmVw b3J0Cj4gKwkJICogaGF2ZSBlZmZlY3RpdmVseSBsYW5kZWQuCj4gKwkJICoKPiArCQkgKiBUaGlz IGlzIGFzc3VtaW5nIHRoYXQgdGhlIHdyaXRlcyBvZiB0aGUgT0EgdW5pdCBsYW5kIGluCj4gKwkJ ICogbWVtb3J5IGluIHRoZSBvcmRlciB0aGV5IHdlcmUgd3JpdHRlbiB0by4KPiArCQkgKiBJZiBu b3QgOiAo4pWvwrDilqHCsO+8ieKVr++4tSDilLvilIHilLsKPgkJICovCj4gLQkJaWYgKGh3X3Rh aWwgPj0gZ3R0X29mZnNldCAmJgo+IC0JCSAgICBod190YWlsIDwgKGd0dF9vZmZzZXQgKyBPQV9C VUZGRVJfU0laRSkpIHsKPiAtCQkJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbIWFnZWRfaWR4XS5v ZmZzZXQgPQo+IC0JCQkJYWdpbmdfdGFpbCA9IGh3X3RhaWw7Cj4gLQkJCXN0cmVhbS0+b2FfYnVm ZmVyLmFnaW5nX3RpbWVzdGFtcCA9IG5vdzsKPiAtCQl9IGVsc2Ugewo+IC0JCQlkcm1fZXJyKCZz dHJlYW0tPnBlcmYtPmk5MTUtPmRybSwKPiAtCQkJCSJJZ25vcmluZyBzcHVyaW91cyBvdXQgb2Yg cmFuZ2UgT0EgYnVmZmVyIHRhaWwgcG9pbnRlciA9ICV4XG4iLAo+IC0JCQkJaHdfdGFpbCk7Cj4g KwkJd2hpbGUgKE9BX1RBS0VOKHRhaWwsIGhlYWQpID49IHJlcG9ydF9zaXplKSB7Cj4gKwkJCXUz MiBwcmV2aW91c190YWlsID0gKHRhaWwgLSByZXBvcnRfc2l6ZSkgJiAoT0FfQlVGRkVSX1NJWkUg LSAxKTsKPiArCQkJdTMyICpyZXBvcnQzMiA9ICh2b2lkICopKHN0cmVhbS0+b2FfYnVmZmVyLnZh ZGRyICsgcHJldmlvdXNfdGFpbCk7CgpTb3JyeSwgdGhpcyBpcyB3cm9uZy4gVGhpcyBzaG91bGQg anVzdCBiZToKCgkJCXRhaWwgPSAodGFpbCAtIHJlcG9ydF9zaXplKSAmIChPQV9CVUZGRVJfU0la RSAtIDEpOwoJCQlyZXBvcnQzMiA9ICh2b2lkICopKHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyICsg dGFpbCk7CgpPdGhlcndpc2Ugd2hlbiB3ZSBicmVhayBvdXQgb2YgdGhlIGxvb3AgYmVsb3cgdGFp bCBpcyBzdGlsbCBzZXQgb25lCnJlcG9ydF9zaXplIGFoZWFkLiBwcmV2aW91c190YWlsIGlzIG5v dCBuZWVkZWQuIChJbiB0aGUgcHJldmlvdXMgdmVyc2lvbiBvZgp0aGUgcGF0Y2ggdGhpcyB1c2Vk IHRvIHdvcmsgb3V0IGNvcnJlY3RseSkuCgo+ICsKPiArCQkJLyogSGVhZCBvZiB0aGUgcmVwb3J0 IGluZGljYXRlZCBieSB0aGUgSFcgdGFpbCByZWdpc3RlciBoYXMKPiArCQkJICogaW5kZWVkIGxh bmRlZCBpbnRvIG1lbW9yeS4KPiArCQkJICovCj4gKwkJCWlmIChyZXBvcnQzMlswXSAhPSAwIHx8 IHJlcG9ydDMyWzFdICE9IDApCj4gKwkJCQlicmVhazsKPiArCj4gKwkJCXRhaWwgPSBwcmV2aW91 c190YWlsOwo+CQl9Cj4gKwo+ICsJCWlmICgoKHRhaWwgLSBod190YWlsKSAmIChPQV9CVUZGRVJf U0laRSAtIDEpKSA+IHJlcG9ydF9zaXplICYmCgpuaXQ6IE9BX1RBS0VOKGh3X3RhaWwsIHRhaWwp ID4gcmVwb3J0X3NpemU/Cgo+ICsJCSAgICBfX3JhdGVsaW1pdCgmc3RyZWFtLT5wZXJmLT50YWls X3BvaW50ZXJfcmFjZSkpCj4gKwkJCURSTV9OT1RFKCJ1bmxhbmRlZCByZXBvcnQocykgaGVhZD0w eCV4ICIKPiArCQkJCSAidGFpbD0weCV4IGh3X3RhaWw9MHgleFxuIiwKPiArCQkJCSBoZWFkLCB0 YWlsLCBod190YWlsKTsKPiArCj4gKwkJc3RyZWFtLT5vYV9idWZmZXIudGFpbCA9IGd0dF9vZmZz ZXQgKyB0YWlsOwo+ICsJCXN0cmVhbS0+b2FfYnVmZmVyLmFnaW5nX3RhaWwgPSBndHRfb2Zmc2V0 ICsgaHdfdGFpbDsKPiArCQlzdHJlYW0tPm9hX2J1ZmZlci5hZ2luZ190aW1lc3RhbXAgPSBub3c7 Cj4JfQo+Cj4Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xv Y2ssIGZsYWdzKTsKPgo+IC0JcmV0dXJuIGFnZWRfdGFpbCA9PSBJTlZBTElEX1RBSUxfUFRSID8K PiAtCQlmYWxzZSA6IE9BX1RBS0VOKGFnZWRfdGFpbCwgaGVhZCkgPj0gcmVwb3J0X3NpemU7Cj4g KwlyZXR1cm4gT0FfVEFLRU4oc3RyZWFtLT5vYV9idWZmZXIudGFpbCAtIGd0dF9vZmZzZXQsCj4g KwkJCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgLSBndHRfb2Zmc2V0KSA+PSByZXBvcnRfc2l6ZTsK PiAgfQoKPiBAQCAtMzAzLDYgKzI5MiwxMiBAQCBzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSB7Cj4J CSAqIE9BIGJ1ZmZlciBkYXRhIHRvIHVzZXJzcGFjZS4KPgkJICovCj4JCXUzMiBoZWFkOwo+ICsK PiArCQkvKioKPiArCQkgKiBAdGFpbDogVGhlIGxhc3QgdGFpbCB2ZXJpZmllZCB0YWlsIHRoYXQg Y2FuIGJlIHJlYWQgYnkKClRoZSBsYXN0IHZlcmlmaWVkIHRhaWwKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==