From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Use SWF06 to figure out max cdclk for BDW Date: Tue, 23 Feb 2016 16:26:45 +0200 Message-ID: <20160223142645.GI23290@intel.com> References: <1455289567-30451-1-git-send-email-ville.syrjala@linux.intel.com> <56C27EA9.9030502@intel.com> <20160216100521.GD23290@intel.com> <56CC39D1.2030503@intel.com> <20160223110547.GF23290@intel.com> <56CC5A4D.6080709@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id CEB8C6E349 for ; Tue, 23 Feb 2016 14:26:48 +0000 (UTC) Content-Disposition: inline In-Reply-To: <56CC5A4D.6080709@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Thulasimani, Sivakumar" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMjMsIDIwMTYgYXQgMDY6NDA6MzdQTSArMDUzMCwgVGh1bGFzaW1hbmksIFNp dmFrdW1hciB3cm90ZToKPiAKPiAKPiBPbiAyLzIzLzIwMTYgNDozNSBQTSwgVmlsbGUgU3lyasOk bMOkIHdyb3RlOgo+ID4gT24gVHVlLCBGZWIgMjMsIDIwMTYgYXQgMDQ6MjI6MDFQTSArMDUzMCwg VGh1bGFzaW1hbmksIFNpdmFrdW1hciB3cm90ZToKPiA+Pgo+ID4+IE9uIDIvMTYvMjAxNiAzOjM1 IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPj4+IE9uIFR1ZSwgRmViIDE2LCAyMDE2IGF0 IDA3OjEzOjA1QU0gKzA1MzAsIFRodWxhc2ltYW5pLCBTaXZha3VtYXIgd3JvdGU6Cj4gPj4+PiBP biAyLzEyLzIwMTYgODozNiBQTSwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gPj4+Pj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+Pj4+Pgo+ID4+Pj4+IEJzcGVjIHRlbGxzIHVzIHRoYXQgd2UgY2FuIGFsbG93IGNk Y2xrIHVwIHRvIDU0ME1oeiBvbiBCRFcgVUxYLCBvcgo+ID4+Pj4+IHVwIHRvIDY3NSBNSHogb24g VUxULCBidSBvbmx5IGlmIGV4dHJhIGNvb2xpbmcgaXMgcHJvdmlkZWQuIFRoZXJlCj4gPj4+Pj4g ZG9uJ3Qgc2VlbSB0byBiZSBhbnkgc3RyYXAgb3IgVkJUIGJpdHMgdG8gdGVsbHMgdXMgdGhpcyBo b3dldmVyLgo+ID4+Pj4+Cj4gPj4+Pj4gQnV0IEkgZGlkIHNwb3Qgc29tZXRoaW5nIHBvdGVudGlh bGx5IHJlbGV2YW50IGluCj4gPj4+Pj4gVkJJT1NfR09QX0RyaXZlcl9TV0ZfUmVnaXN0ZXJzLnBk Zi4gQXBwYXJlbnRseSBWQklPUy9HT1AgY2FuIHBhc3MKPiA+Pj4+PiB0aGUgbWF4IGNkY2xrIGZy ZXF1ZW55IGluIFNXRjA2IHRvIHRoZSBkcml2ZXIuIExldCdzIGFzc3VtZSB0aGUgZmlybXdhcmUK PiA+Pj4+PiBrbm93cyB3aGF0IGl0cyBkb2luZyBhbmQgdHJ1c3QgdGhlIG1heCBjZGNsayBpbiBT V0YwNiBpZiBpdCdzIGhpZ2hlcgo+ID4+Pj4+IHRoYW4gdGhlIGJhc2ljIGxpbWl0IHNwZWNpZmll ZCBpbiBCc3BlYy4gVG8gYXZvaWQgcmVncmVzc2luZyBhbnl0aGluZwo+ID4+Pj4+IGxldCdzIGln bm9yZSBTV0YwNiBpZiBpdCBpbmRpY2F0ZXMgYSBsb3dlciBsaW1pdCB0aGFuIEJzcGVjLgo+ID4+ Pj4+Cj4gPj4+Pj4gQ2M6IENsaW50IFRheWxvciA8Y2xpbnRvbi5hLnRheWxvckBpbnRlbC5jb20+ Cj4gPj4+Pj4gQ2M6ICJUaHVsYXNpbWFuaSwgU2l2YWt1bWFyIiA8c2l2YWt1bWFyLnRodWxhc2lt YW5pQGludGVsLmNvbT4KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4+Pj4+IC0tLQo+ID4+Pj4+Cj4gPj4+Pj4g SSdtIG5vdCBhdCBhbGwgc3VyZSBpZiB0aGlzIGlzIHRoZSByaWdodCB3YXkgdG8gZ28gYWJvdXQg aXQuIFNpdmFrdW1hciwKPiA+Pj4+PiBzaW5jZSB5b3Ugc2VlbSB0byBoYXZlIHNvbWUgaWRlYXMg b24gdGhpcyBtYXliZSB5b3UgY2FuIGhhdmUgYSBsb29rLgo+ID4+Pj4+IEknbSBub3QgYXdhcmUg b2YgYW55IGNvbXBsYWludHMgc28gZmFyIHRoYXQgcGVvcGxlIGNhbid0IGdldCB0aGUgY2RjbGsK PiA+Pj4+PiBhcyBoaWdoIGlzIHRoZXkgc2hvdWxkIG9uIHNwZWNpZmljIG1hY2hpbmVzLCBzbyBu b3Qgc3VyZSBpZiB0aGlzIGlzIHJlYWxseQo+ID4+Pj4+IGV2ZW4gbmVlZGVkLgo+ID4+Pj4+Cj4g Pj4+Pj4gVGhlIG90aGVyIG9wZW4gcXVlc3Rpb24gaXMgd2hhdCB3ZSBzaG91bGQgZG8gaWYgdGhl IFZCSU9TIGxpbWl0IGlzCj4gPj4+Pj4gbG93ZXIgdGhhbiB3aGF0IHdlJ2QgZXhwZWN0IGJhc2Vk IG9uIEJTcGVjLiBTaG91bGQgd2Ugc3RpbGwgdHJ1c3QgaXQ/Cj4gPj4+Pj4gU2FkbHkgd2UgY2Fu J3QgdmVyaWZ5IHRoZSBTV0YwNiBjZGNsayB2YWx1ZSBpbiBhbnkgd2F5IHNpbmNlIGl0Cj4gPj4+ Pj4gb25seSBoYXMgdHdvIGJpdHMgYW5kIHdlIGhhdmUgZm91ciBwb3NzaWJsZSBjZGNsayB2YWx1 ZXMuCj4gPj4+PiBUaGUgdmFsdWUgc3RvcmVkIGluIFNXRjA2IGlzIHRoZSBDRCBDbG9jayBWQklP Uy9HT1Agc2VlcyBkdXJpbmcgYm9vdC4gc28KPiA+Pj4+IGl0IGp1c3QgYmFja3MgdXAgdGhlIENE IENsb2NrIGJlZm9yZSBpdCBvcHRpbWl6ZXMgZm9yIHRoZSBhdmFpbGFibGUgTEZQLgo+ID4+Pj4g aWYgd2UKPiA+Pj4+IGFyZSB0cnVzdGluZyBmb3IgaGlnaGVyIHZhbHVlIHdlIHNob3VsZCB0cnVz dCBpdCBmb3IgbG93ZXIgdmFsdWUgdG9vLgo+ID4+Pj4gVGhlIE9FTSBtaWdodCBoYXZlIGRpZCB0 aGlzIHRvIGVpdGhlciByZWR1Y2UgbWF4IHJlc29sdXRpb24gZm9yIGNoZWFwZXIKPiA+Pj4+IHBy b2R1Y3RzIG9yIG1pZ2h0IGhhdmUgcmVtb3ZlZCBzb21lIGNvb2xpbmcgbWVjaGFuaXNtcyBmb3Ig dGhpbm5lcgo+ID4+Pj4gZGVzaWducyBzaW5jZSB3ZSBjYW5ub3Qgc2F5IHdoaWNoIG9mIHRoZSBy ZWFzb25zIHdlIHNob3VsZCB0cnVzdCB0aGUKPiA+Pj4+IGxvd2VyIHZhbHVlIHRvby4KPiA+Pj4+ Cj4gPj4+PiBub3cgY29tZXMgdG8gdG91Z2ggcGFydCA6KCwgdGhpcyBTV0YwNiBpcyBzYXZlZCBi eSBWQklPUy9HT1AgZHJpdmVyCj4gPj4+PiBmcm9tIGludGVsIGFsb25lKGl0IGlzIG5vdCBwcm9n cmFtbWVkIGZyb20gVkJUKSwKPiA+Pj4+IHNpbmNlIEdPUCBkcml2ZXIgY2FuIGJlIGltcGxlbWVu dGVkIGJ5IGFueW9uZSBhbmQKPiA+Pj4+IGlmIGFueW9uZSBpbXBsZW1lbnRzIHRoZWlyIG93biBH T1AgZHJpdmVyIHdlIGNhbm5vdCBiZSBzdXJlIGlmIHRoZQo+ID4+Pj4gdmFsdWUgaXMgdmFsaWQg b3Igbm90LiBwbGVhc2UgY2hlY2sgaWYgd2UgY2FuIGNoZWNrIGZvciAiSW50ZWwgR09QIGRyaXZl ciIuCj4gPj4+PiBBbmQgaWYgIkludGVsIEdPUCBkcml2ZXIiIHdhcyB1c2VkIGR1cmluZyBib290 LCB3ZSBjYW4gdHJ1c3QgdGhlIHZhbHVlCj4gPj4+PiAxMDAlLiAgaSBhbSBub3Qgc3VyZSBob3cg dGhpcyBjYW4gYmUgZG9uZSwgc28gaSB3b3VsZCByZWNvbW1lbmQKPiA+Pj4+IHRydXN0aW5nIHRo ZSB2YWx1ZXMgd2l0aCBjbGVhciBkZWJ1ZyBtZXNzYWdlcyBhcyBkb25lIGJlbG93IGFscmVhZHku Cj4gPj4+IFdlIGRlZmluaXRlbHkgbmVlZCBhIHdheSB0byB2YWxpZGF0ZSB0aGUgcmVnaXN0ZXIg dmFsdWUgYmVmb3JlIHdlIHRydXN0Cj4gPj4+IGl0IGZvciBsb3dlciB2YWx1ZXMuIEkgc3VwcG9z ZSB3ZSBtaWdodCBiZSBhYmxlIHRvIGxvb2sgYXQgYml0cyAzMToxNgo+ID4+PiBzaW5jZSB0aG9z ZSBzaG91bGQgc3RvcmUgdGhlIGN1cnJlbnQgY2RjbGsgImRlY2ltYWwiIHZhbHVlLiBJZiB0aGF0 IHBhcnQKPiA+Pj4gbG9va3MgcmVhc29uYWJsZSwgd2UgbWlnaHQgYmUgYWJsZSB0byB0cnVzdCB0 aGUgIm1heCBjZGNsayIgYml0cyBhcyB3ZWxsLgo+ID4+IGl0IHNlZW1zIHRoZSBiaXRzIDMxOjE2 IGFyZSB1c2VkIG9ubHkgYnkgVkJJT1MgYW5kIG5vdCBHT1AsIHNvIHRoYXQgd29udAo+ID4+IGhl bHAuCj4gPj4gd2UgbmVlZCB0byBjb21lIHVwIHdpdGggc29tZSBvdGhlciBtZXRob2QgdG8gY29u ZmlybSB0aGUgdmFsdWUgb3IgdmVyaWZ5Cj4gPj4gaWYgaW50ZWwgZ29wIGlzIGxvYWRlZC4gaSB3 aWxsIGdldCBiYWNrIGlmIGkgY2FuIGZpbmQgc3VjaCBhIG1lY2hhbmlzbS4KPiA+IE9oLCB0aGF0 J3MgdW5mb3J0dW5hdGUuIElJUkMgd2UgdXNlIHNvbWUgb3RoZXIgU1dGIHJlZ2lzdGVyIHRvIGNo ZWNrIGlmCj4gPiBzb21ldGhpbmcgYWxyZWFkeSBpbml0aWFsaXplZCB0aGluZ3MgaW4gdGhlIGNk Y2xrIHNhbml0YXRpb24gcGF0aC4KPiA+IE5vdCBzdXJlIGlmIHRoZSBzYW1lIGNvdWxkIGJlIHVz ZWQgaGVyZS4KPiBpIGFtIG5vdCBhd2FyZSBvZiBhbnkgb3RoZXIgU1dGIHJlZ2lzdGVyIHVzZWQg Zm9yIGNkY2xrIHJlbGF0ZWQgZmxvdyBzbyAKPiBjYW50IGhlbHAgdGhlcmUuCgpJIHRoaW5rIHRo ZSByZWdpc3RlciB3YXMgbW9yZSBvZiBhIGNhbmFyeSBhbmQgbm90IGRpcmVjdGx5IHJlbGF0ZWQg dG8KY2RjbGsuIEFuZCBpdCB3YXMuLi4gU1dGMTguIEhtbS4gQmFzZWQgb24gdGhlIHNwZWMgdGhh dCB3b3VsZCBpbmRpY2F0ZQpzb21lIGtpbmQgb2YgaW5pdGlhbCBwaXBlLT5jb25uZWN0b3IgbWFw cGluZy4gU28gaWYgdGhlcmUgYXJlIG5vCmRpc3BsYXlzIGNvbm5lY3RlZCwgSSBzdXBwb3NlIGl0 IG1pZ2h0IGVuZCB1cCBzaG93aW5nIG5vdGhpbmcgZWl0aGVyLgpTbyB5ZWFoLCBwcm9iYWJseSBu b3Qgc3VpdGFibGUgZm9yIHRoaXMgc3R1ZmYgYWZ0ZXIgYWxsIDooCgo+IGhhZCBhIGRpc2N1c3Np b24gd2l0aCBsb2NhbCBmb2xrcyBhbmQgaXQgc2VlbXMgbGlrZSAgdGhlcmUgaXMKPiBubyBlYXN5 IHdheSBvdXQgYXRsZWFzdCBmb3IgQkRXLgo+IAo+IFNLTCByZWdpc3RlciB1c2luZyBsaXRlcmFs IHZhbHVlcyBpcyBoZWxwZnVsIGluCj4gdmVyaWZ5aW5nIGFnYWluc3QgYXZhaWxhYmxlIHNldC4K PiAKPiBteSBiZXN0IGd1ZXNzIHdvdWxkIGJlIHRvIGhhbmRsZSBpdCBmb3IgQkRXIGlzIGFzIGZv bGxvd3MKPiBpZiBCSVQwOjEgPT0gMCAmJiBjdXJyZW50X2NkY2xrICE9IDQ1ME1Iego+ICAgICAg ICAgICAgd2UgYXJlIG5vdCBpbiBpbnRlbCBHT1AgZHJpdmVyIHNvIHRha2UgdGhlIGN1cnJlbnQg Y2xvY2sgYXMgbWF4Cj4gaWYgQklUMDoxID09IDAgJiYgY3VycmVudF9jZGNsayA9PSA0NTBNSHoK PiAgICAgICAgICBjYW50IHNheSB3aGljaCBHT1AgZHJpdmVyIHdhcyB1c2VkLCBzbyBsaW1pdCB0 byBjdXJyZW50IGNsb2NrIAo+IGFzIG1heAo+IGlmIEJJVDA6MSAhPSAwCj4gICAgICAgICBwcm9i YWJpbGl0eSBvZiBzb21lIG90aGVyIGNvbXBvbmVudCBzZXR0aW5nIHRoZXNlIHR3byBiaXRzIGlz IAo+IHZlcnkgbG93IDopCj4gICAgICAgICBzbyBhc3N1bWUgdGhhdCB3ZSBhcmUgaW4gaW50ZWwg Z29wIGRyaXZlciBhbmQgdHJ1c3QgdGhlIHZhbHVlLgo+ICAgICAgICAgIHdlIGhhdmUgY2hlY2tz IHRvIGxpbWl0IGNsb2NrIGZvciB0aGUgU0tVIHNvIGl0IHNob3VsZCBub3QgYmUgYSAKPiBwcm9i bGVtCj4gICAgICAgICB0byB0cnVzdCB0aGUgdmFsdWUgaW4gcmVnaXN0ZXIuCj4gCj4gCj4gcmVn YXJkcywKPiBTaXZha3VtYXIKPiA+Pj4+IEFzIG1lbnRpb25lZCBpbiBhbm90aGVyIHRocmVhZCwg dGhpcyBuZWVkcyB0byBiZSBkb25lIGZvciBTS0wgdG9vLgo+ID4+Pj4gaSBkb250IGhhdmUgYSBT S0wgc3lzdGVtIHNvIGlmIG5vIG9uZSBlbHNlIGNhbiBtYWtlIGEgcGF0Y2ggZm9yIGl0Cj4gPj4+ PiBpIHdpbGwgaGF2ZSB0byBzaGFyZSBhbiB1bnRlc3RlZCBwYXRjaCBmb3IgaXQgOikuCj4gPj4+ IEZvciBTS0wgaXQgc2VlbXMgYSBiaXQgZWFzaWVyLCBzaW5jZSBpdCBhcHBhcmVudGx5IGp1c3Qg c3RvcmVzIHRoZSBtYXgKPiA+Pj4gY2RjbGsgaW4gMTAuMSBkZWNpbWFsIGZpeGVkIHBvaW50IGlu IGJpdHMgMTA6MC4gU28gaW52YWxpZC91bmluaXRpYWxpemVkCj4gPj4+IHZhbHVlcyB3b3VsZCBi ZSBlYXNpZXIgdG8gc3BvdC4KPiA+Pj4KPiA+Pj4gSG1tLiAxMSBiaXRzIGFuZCAxMC4xIGZpeGVk IHBvaW50IGZvcm1hdCwgSSB3b25kZXIgaWYgaXQncyByZWFsbHkKPiA+Pj4gZGVjaW1hbCBhbmQg bm90IGJpbmFyeSBmaXhlZCBwb2ludC4uLgo+ID4+IGl0IHVzZXMgdGhlIHNhbWUgdmFsdWUgcHJv Z3JhbW1lZCBpbiBDRENMS19DVEwgcmVnaXN0ZXIuCj4gPj4gaS5lIDAxIDAwMTEgMDAxMSAxYiAg ICA9IDMwOC41N01Iego+ID4gT0ssIHNvIGJpbmFyeSBmaXhlZCBwb2ludC4gTWF5YmUgSSBzaG91 bGQgZmlsZSBhIGJ1ZyBhZ2FpbnN0IGJzcGVjIHRvCj4gPiByZW1vdmUgdGhpcyBjb25mdXNpbmcg ImRlY2ltYWwiIG5hbWluZyBzY2hlbWUgZnJvbSB0aGUgY2RjbGsgc3R1ZmYuLi4KPiA+Cj4gPj4g cmVnYXJkcywKPiA+PiBTaXZha3VtYXIKPiA+Pj4+PiAgICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgNjAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t Cj4gPj4+Pj4gICAgIDEgZmlsZSBjaGFuZ2VkLCA0NyBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlv bnMoLSkKPiA+Pj4+Pgo+ID4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ Pj4+PiBpbmRleCA4MzZiYmRjMjM5YjYuLjFkNzBmNmJmMjkzNCAxMDA2NDQKPiA+Pj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+Pj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+Pj4+PiBAQCAtNTQwNywyMSArNTQw Nyw1NSBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPj4+Pj4gICAgIAkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAw MDsKPiA+Pj4+PiAgICAgCQllbHNlCj4gPj4+Pj4gICAgIAkJCWRldl9wcml2LT5tYXhfY2RjbGtf ZnJlcSA9IDMzNzUwMDsKPiA+Pj4+PiAtCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldikpICB7 Cj4gPj4+Pj4gKwl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKSB7Cj4gPj4+Pj4gKwkJaW50 IGJpb3NfbWF4X2NkY2xrX2ZyZXEsIG1heF9jZGNsa19mcmVxOwo+ID4+Pj4+ICsKPiA+Pj4+PiAg ICAgCQkvKgo+ID4+Pj4+IC0JCSAqIEZJWE1FIHdpdGggZXh0cmEgY29vbGluZyB3ZSBjYW4gYWxs b3cKPiA+Pj4+PiAtCQkgKiA1NDAgTUh6IGZvciBVTFggYW5kIDY3NSBNaHogZm9yIFVMVC4KPiA+ Pj4+PiAtCQkgKiBIb3cgY2FuIHdlIGtub3cgaWYgZXh0cmEgY29vbGluZyBpcwo+ID4+Pj4+IC0J CSAqIGF2YWlsYWJsZT8gUENJIElELCBWVEIsIHNvbWV0aGluZyBlbHNlPwo+ID4+Pj4+ICsJCSAq IFdpdGggZXh0cmEgY29vbGluZyB3ZSBjYW4gYWxsb3cgNTQwIE1IeiBmb3IKPiA+Pj4+PiArCQkg KiBVTFggYW5kIDY3NSBNaHogZm9yIFVMVC4gQXNzdW1lIFZCSU9TL0dPUAo+ID4+Pj4+ICsJCSAq IHBhc3NlcyB0aGF0IGluZm9ybWF0aW9uIGluIFNXRjA2Lgo+ID4+Pj4+ICAgICAJCSAqLwo+ID4+ Pj4+IC0JCWlmIChJOTE1X1JFQUQoRlVTRV9TVFJBUCkgJiBIU1dfQ0RDTEtfTElNSVQpCj4gPj4+ Pj4gLQkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPiA+Pj4+PiAtCQllbHNl IGlmIChJU19CRFdfVUxYKGRldikpCj4gPj4+Pj4gLQkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJl cSA9IDQ1MDAwMDsKPiA+Pj4+PiAtCQllbHNlIGlmIChJU19CRFdfVUxUKGRldikpCj4gPj4+Pj4g LQkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDU0MDAwMDsKPiA+Pj4+PiAtCQllbHNlCj4g Pj4+Pj4gLQkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDY3NTAwMDsKPiA+Pj4+PiArCQlz d2l0Y2ggKEk5MTVfUkVBRChTV0ZfSUxLKDB4MDYpKSAmIDB4Mykgewo+ID4+Pj4+ICsJCWNhc2Ug MDoKPiA+Pj4+PiArCQkJYmlvc19tYXhfY2RjbGtfZnJlcSA9IDQ1MDAwMDsKPiA+Pj4+PiArCQkJ YnJlYWs7Cj4gPj4+Pj4gKwkJY2FzZSAxOgo+ID4+Pj4+ICsJCQliaW9zX21heF9jZGNsa19mcmVx ID0gNTQwMDAwOwo+ID4+Pj4+ICsJCQlicmVhazsKPiA+Pj4+PiArCQljYXNlIDI6Cj4gPj4+Pj4g KwkJCWJpb3NfbWF4X2NkY2xrX2ZyZXEgPSAzMzc1MDA7Cj4gPj4+Pj4gKwkJCWJyZWFrOwo+ID4+ Pj4+ICsJCWNhc2UgMzoKPiA+Pj4+PiArCQkJYmlvc19tYXhfY2RjbGtfZnJlcSA9IDY3NTAwMDsK PiA+Pj4+PiArCQkJYnJlYWs7Cj4gPj4+Pj4gKwkJfQo+ID4+Pj4+ICsKPiA+Pj4+PiArCQlpZiAo STkxNV9SRUFEKEZVU0VfU1RSQVApICYgSFNXX0NEQ0xLX0xJTUlUKSB7Cj4gPj4+Pj4gKwkJCWlm IChXQVJOX09OKGJpb3NfbWF4X2NkY2xrX2ZyZXEgIT0gNDUwMDAwKSkKPiA+Pj4+PiArCQkJCWJp b3NfbWF4X2NkY2xrX2ZyZXEgPSA0NTAwMDA7Cj4gPj4+Pj4gKwkJCW1heF9jZGNsa19mcmVxID0g NDUwMDAwOwo+ID4+Pj4+ICsJCX0gZWxzZSBpZiAoSVNfQkRXX1VMWChkZXZfcHJpdikpIHsKPiA+ Pj4+PiArCQkJaWYgKFdBUk5fT04oYmlvc19tYXhfY2RjbGtfZnJlcSA+IDU0MDAwMCkpCj4gPj4+ Pj4gKwkJCQliaW9zX21heF9jZGNsa19mcmVxID0gNTQwMDAwOwo+ID4+Pj4+ICsJCQltYXhfY2Rj bGtfZnJlcSA9IDQ1MDAwMDsKPiA+Pj4+PiArCQl9IGVsc2UgaWYgKElTX0JEV19VTFQoZGV2X3By aXYpKSB7Cj4gPj4+Pj4gKwkJCW1heF9jZGNsa19mcmVxID0gNTQwMDAwOwo+ID4+Pj4+ICsJCX0g ZWxzZSB7Cj4gPj4+Pj4gKwkJCW1heF9jZGNsa19mcmVxID0gNjc1MDAwOwo+ID4+Pj4+ICsJCX0K PiA+Pj4+PiArCj4gPj4+Pj4gKwkJaWYgKGJpb3NfbWF4X2NkY2xrX2ZyZXEgPiBtYXhfY2RjbGtf ZnJlcSkgewo+ID4+Pj4+ICsJCQlEUk1fREVCVUdfS01TKCJWQklPUy9HT1AgbWF4IGNkY2xrICgl ZCBrSHopIGhpZ2hlciB0aGFuIGJhc2ljIGxpbWl0ICglZCBrSHopLCAiCj4gPj4+Pj4gKwkJCQkg ICAgICAiYXNzdW1pbmcgZXh0cmEgY29vbGluZyBpcyBwcmVzZW50XG4iLAo+ID4+Pj4+ICsJCQkJ ICAgICAgYmlvc19tYXhfY2RjbGtfZnJlcSwgbWF4X2NkY2xrX2ZyZXEpOwo+ID4+Pj4+ICsJCQlt YXhfY2RjbGtfZnJlcSA9IGJpb3NfbWF4X2NkY2xrX2ZyZXE7Cj4gPj4+Pj4gKwkJfSBlbHNlIGlm IChiaW9zX21heF9jZGNsa19mcmVxIDwgbWF4X2NkY2xrX2ZyZXEpIHsKPiA+Pj4+PiArCQkJRFJN X0RFQlVHX0tNUygiVkJJT1MvR09QIG1heCBjZGNsayAoJWQga0h6KSBsb3dlciB0aGFuIGJhc2lj IGxpbWl0ICglZCBrSHopLCAiCj4gPj4+Pj4gKwkJCQkgICAgICAiaWdub3JpbmcgaXRcbiIsCj4g Pj4+Pj4gKwkJCQkgICAgICBiaW9zX21heF9jZGNsa19mcmVxLCBtYXhfY2RjbGtfZnJlcSk7Cj4g Pj4+Pj4gKwkJfQo+ID4+Pj4gZm9yIHRoZSByZWFzb25zIG1lbnRpb25lZCBhYm92ZSwgaSB3b3Vs ZCBmYXZvciB0cnVzdGluZyBsb3dlciB2YWx1ZXMgdG9vLgo+ID4+Pj4KPiA+Pj4+IHJlZ2FyZHMs Cj4gPj4+PiBTaXZha3VtYXIKPiA+Pj4+PiArCj4gPj4+Pj4gKwkJZGV2X3ByaXYtPm1heF9jZGNs a19mcmVxID0gbWF4X2NkY2xrX2ZyZXE7Cj4gPj4+Pj4gICAgIAl9IGVsc2UgaWYgKElTX0NIRVJS WVZJRVcoZGV2KSkgewo+ID4+Pj4+ICAgICAJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDMy MDAwMDsKPiA+Pj4+PiAgICAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7CgotLSAK VmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK