From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH] drm/i915: Add tracking for CDCLK bypass frequency Date: Thu, 18 Jan 2018 16:21:49 +0200 Message-ID: <20180118142149.jrtbqcffns5godml@ideak-desk.fi.intel.com> References: <20180117172508.15993-1-imre.deak@intel.com> <20180117175622.GO10981@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 76A7E6E5BB for ; Thu, 18 Jan 2018 14:21:52 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180117175622.GO10981@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMTcsIDIwMTggYXQgMDc6NTY6MjJQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgSmFuIDE3LCAyMDE4IGF0IDA3OjI1OjA4UE0gKzAyMDAsIEltcmUg RGVhayB3cm90ZToKPiA+IFRoZSBDRENMSyBieXBhc3MgZnJlcXVlbmN5IGNhbiB2YXJ5IG9uIHVw Y29taW5nIHBsYXRmb3Jtcywgc28gcHJlcGFyZQo+ID4gZm9yIHRoYXQgbm93IGJ5IHRyYWNraW5n IGl0cyB2YWx1ZSBpbiB0aGUgQ0RDTEsgc3RhdGUuCj4gPiAKPiA+IEN1cnJlbnRseSBvbiBCRFcr IHRoZSBieXBhc3MgZnJlcXVlbmN5IGlzIGFsd2F5cyB0aGUgcmVmZXJlbmNlIGNsb2NrIGFuZAo+ ID4gSSBkaWRuJ3QgYm90aGVyIHdpdGggZWFybGllciBwbGF0Zm9ybXMgc2luY2UgaXQncyBub3Qg YWxsIHRoYXQgY2xlYXIKPiA+IHdoYXQncyB0aGUgYnlwYXNzIGNsb2NrIG9uIHRob3NlLgo+ID4g Cj4gPiBJIGFsc28gZGlkbid0IGJvdGhlciBhZGRpbmcgc3VwcG9ydCBmb3IgY2hhbmdpbmcgdGhp cyBmcmVxdWVuY3ksIHNpbmNlCj4gPiBhdG0gSSBkb24ndCBzZWUgYW55IG5lZWQgZm9yIGl0Lgo+ ID4gCj4gPiBTdWdnZXN0ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cj4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVs LmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgfCAg MiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMgfCAzNSArKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5z ZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+ID4gaW5kZXggYzQyMDE1YjA1YjQ3Li40OWNjZmMzOTdmZWIgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMTc5MSw3ICsxNzkxLDcgQEAgc3RydWN0IGk5MTVfb2Ff b3BzIHsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSB7Cj4gPiAt CXVuc2lnbmVkIGludCBjZGNsaywgdmNvLCByZWY7Cj4gPiArCXVuc2lnbmVkIGludCBjZGNsaywg dmNvLCByZWYsIGJ5cGFzczsKPiA+ICAJdTggdm9sdGFnZV9sZXZlbDsKPiA+ICB9Owo+ID4gIAo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gPiBpbmRleCBjYTM2MzIxZWFmYWMuLmY0 NmE2MWQ0MjNhMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nk Y2xrLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKPiA+IEBA IC04NTgsNyArODU4LDcgQEAgc3RhdGljIHZvaWQgc2tsX2dldF9jZGNsayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCj4gPiAgCXNrbF9kcGxsMF91cGRhdGUoZGV2X3By aXYsIGNkY2xrX3N0YXRlKTsKPiA+ICAKPiA+IC0JY2RjbGtfc3RhdGUtPmNkY2xrID0gY2RjbGtf c3RhdGUtPnJlZjsKPiA+ICsJY2RjbGtfc3RhdGUtPmNkY2xrID0gY2RjbGtfc3RhdGUtPmJ5cGFz cyA9IGNkY2xrX3N0YXRlLT5yZWY7Cj4gCj4gTXkgZmlyc3QgaW5zdGluY3Qgd291bGQgaGF2ZSBi ZWVuIHRvIHBvcHVsYXRlIGJ5cGFzcyBpbiB0aGUgUExMCj4gcmVhZG91dCBmdW5jdGlvbi4gSSBn dWVzcyBJIGp1c3QgdGhpbmsgb2YgdGhlIGJ5cGFzcyBjbG9jayBtb3JlCj4gYXMgYSBmZWF0dXJl IG9mIHRoZSBQTEwuIEJ1dCBJIHN1cHBvc2UgaXQgcmVhbGx5IGRvZXNuJ3QgbWF0dGVyCj4gd2hl cmUgd2UgZG8gdGhpcy4KPiAKPiBSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCk15IHRoaW5raW5nIHdhcyB0aGF0IGl0J3MgQ0RDTEsg Y2hvb3NpbmcgZWl0aGVyIHRoZSBQTEwgb3V0cHV0IG9yIHRoZQpieXBhc3MgY2xvY2sgYXMgYSBz b3VyY2UgKHdoaWxlIHJlZmNsayBpcyBjb25uZWN0ZWQgZGlyZWN0bHkgYm90aCB0bwp0aGUgUExM IGFuZCB0aGUgQ0RDTEsgYXMgYSBzb3VyY2UpOyBidXQgeWVzIGRvZXNuJ3QgbWF0dGVyIGluIHBy YWN0aWNlCndoZXJlIGl0J3MgaW5pdGVkLCBJIGxlYXZlIGl0IGFzLWlzIGZvciBub3cuCgpUaGFu a3MgZm9yIHRoZSByZXZpZXcsIHB1c2hlZCB0byBkcm0tdGlwLgoKLS1JbXJlCgo+IAo+ID4gIAo+ ID4gIAlpZiAoY2RjbGtfc3RhdGUtPnZjbyA9PSAwKQo+ID4gIAkJZ290byBvdXQ7Cj4gPiBAQCAt MTAwNiw3ICsxMDA2LDcgQEAgc3RhdGljIHZvaWQgc2tsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCS8qIENob29zZSBmcmVxdWVuY3kgZm9yIHRoaXMg Y2RjbGsgKi8KPiA+ICAJc3dpdGNoIChjZGNsaykgewo+ID4gIAlkZWZhdWx0Ogo+ID4gLQkJV0FS Tl9PTihjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmKTsKPiA+ICsJCVdBUk5fT04oY2Rj bGsgIT0gZGV2X3ByaXYtPmNkY2xrLmh3LmJ5cGFzcyk7Cj4gPiAgCQlXQVJOX09OKHZjbyAhPSAw KTsKPiA+ICAJCS8qIGZhbGwgdGhyb3VnaCAqLwo+ID4gIAljYXNlIDMwODU3MToKPiA+IEBAIC0x MDg1LDcgKzEwODUsNyBAQCBzdGF0aWMgdm9pZCBza2xfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAo+ID4gIAkvKiBJcyBQTEwgZW5hYmxlZCBh bmQgbG9ja2VkID8gKi8KPiA+ICAJaWYgKGRldl9wcml2LT5jZGNsay5ody52Y28gPT0gMCB8fAo+ ID4gLQkgICAgZGV2X3ByaXYtPmNkY2xrLmh3LmNkY2xrID09IGRldl9wcml2LT5jZGNsay5ody5y ZWYpCj4gPiArCSAgICBkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xr Lmh3LmJ5cGFzcykKPiA+ICAJCWdvdG8gc2FuaXRpemU7Cj4gPiAgCj4gPiAgCS8qIERQTEwgb2th eTsgdmVyaWZ5IHRoZSBjZGNsb2NrCj4gPiBAQCAtMTE1OSw3ICsxMTU5LDcgQEAgdm9pZCBza2xf dW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICB7Cj4g PiAgCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSBjZGNsa19zdGF0ZSA9IGRldl9wcml2LT5jZGNs ay5odzsKPiA+ICAKPiA+IC0JY2RjbGtfc3RhdGUuY2RjbGsgPSBjZGNsa19zdGF0ZS5yZWY7Cj4g PiArCWNkY2xrX3N0YXRlLmNkY2xrID0gY2RjbGtfc3RhdGUuYnlwYXNzOwo+ID4gIAljZGNsa19z dGF0ZS52Y28gPSAwOwo+ID4gIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gc2tsX2NhbGNf dm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7Cj4gPiAgCj4gPiBAQCAtMTE5OSw3ICsx MTk5LDcgQEAgc3RhdGljIGludCBieHRfZGVfcGxsX3ZjbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGludCBjZGNsaykKPiA+ICB7Cj4gPiAgCWludCByYXRpbzsKPiA+ICAKPiA+ IC0JaWYgKGNkY2xrID09IGRldl9wcml2LT5jZGNsay5ody5yZWYpCj4gPiArCWlmIChjZGNsayA9 PSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKQo+ID4gIAkJcmV0dXJuIDA7Cj4gPiAgCj4gPiAg CXN3aXRjaCAoY2RjbGspIHsKPiA+IEBAIC0xMjI0LDcgKzEyMjQsNyBAQCBzdGF0aWMgaW50IGds a19kZV9wbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xr KQo+ID4gIHsKPiA+ICAJaW50IHJhdGlvOwo+ID4gIAo+ID4gLQlpZiAoY2RjbGsgPT0gZGV2X3By aXYtPmNkY2xrLmh3LnJlZikKPiA+ICsJaWYgKGNkY2xrID09IGRldl9wcml2LT5jZGNsay5ody5i eXBhc3MpCj4gPiAgCQlyZXR1cm4gMDsKPiA+ICAKPiA+ICAJc3dpdGNoIChjZGNsaykgewo+ID4g QEAgLTEyNjgsNyArMTI2OCw3IEBAIHN0YXRpYyB2b2lkIGJ4dF9nZXRfY2RjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAo+ID4gIAlieHRfZGVfcGxsX3VwZGF0ZShk ZXZfcHJpdiwgY2RjbGtfc3RhdGUpOwo+ID4gIAo+ID4gLQljZGNsa19zdGF0ZS0+Y2RjbGsgPSBj ZGNsa19zdGF0ZS0+cmVmOwo+ID4gKwljZGNsa19zdGF0ZS0+Y2RjbGsgPSBjZGNsa19zdGF0ZS0+ YnlwYXNzID0gY2RjbGtfc3RhdGUtPnJlZjsKPiA+ICAKPiA+ICAJaWYgKGNkY2xrX3N0YXRlLT52 Y28gPT0gMCkKPiA+ICAJCWdvdG8gb3V0Owo+ID4gQEAgLTEzNTIsNyArMTM1Miw3IEBAIHN0YXRp YyB2b2lkIGJ4dF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gIAkvKiBjZGNsayA9IHZjbyAvIDIgLyBkaXZ7MSwxLjUsMiw0fSAqLwo+ID4gIAlzd2l0Y2gg KERJVl9ST1VORF9DTE9TRVNUKHZjbywgY2RjbGspKSB7Cj4gPiAgCWRlZmF1bHQ6Cj4gPiAtCQlX QVJOX09OKGNkY2xrICE9IGRldl9wcml2LT5jZGNsay5ody5yZWYpOwo+ID4gKwkJV0FSTl9PTihj ZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKTsKPiA+ICAJCVdBUk5fT04odmNvICE9 IDApOwo+ID4gIAkJLyogZmFsbCB0aHJvdWdoICovCj4gPiAgCWNhc2UgMjoKPiA+IEBAIC0xNDI1 LDcgKzE0MjUsNyBAQCBzdGF0aWMgdm9pZCBieHRfc2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAlpbnRlbF9kdW1wX2NkY2xrX3N0YXRlKCZkZXZf cHJpdi0+Y2RjbGsuaHcsICJDdXJyZW50IENEQ0xLIik7Cj4gPiAgCj4gPiAgCWlmIChkZXZfcHJp di0+Y2RjbGsuaHcudmNvID09IDAgfHwKPiA+IC0JICAgIGRldl9wcml2LT5jZGNsay5ody5jZGNs ayA9PSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmKQo+ID4gKwkgICAgZGV2X3ByaXYtPmNkY2xrLmh3 LmNkY2xrID09IGRldl9wcml2LT5jZGNsay5ody5ieXBhc3MpCj4gPiAgCQlnb3RvIHNhbml0aXpl Owo+ID4gIAo+ID4gIAkvKiBEUExMIG9rYXk7IHZlcmlmeSB0aGUgY2RjbG9jawo+ID4gQEAgLTE1 MTQsNyArMTUxNCw3IEBAIHZvaWQgYnh0X3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgY2Rj bGtfc3RhdGUgPSBkZXZfcHJpdi0+Y2RjbGsuaHc7Cj4gPiAgCj4gPiAtCWNkY2xrX3N0YXRlLmNk Y2xrID0gY2RjbGtfc3RhdGUucmVmOwo+ID4gKwljZGNsa19zdGF0ZS5jZGNsayA9IGNkY2xrX3N0 YXRlLmJ5cGFzczsKPiA+ICAJY2RjbGtfc3RhdGUudmNvID0gMDsKPiA+ICAJY2RjbGtfc3RhdGUu dm9sdGFnZV9sZXZlbCA9IGJ4dF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGsp Owo+ID4gIAo+ID4gQEAgLTE1NzQsNyArMTU3NCw3IEBAIHN0YXRpYyB2b2lkIGNubF9nZXRfY2Rj bGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAo+ID4gIAljbmxfY2Rj bGtfcGxsX3VwZGF0ZShkZXZfcHJpdiwgY2RjbGtfc3RhdGUpOwo+ID4gIAo+ID4gLQljZGNsa19z dGF0ZS0+Y2RjbGsgPSBjZGNsa19zdGF0ZS0+cmVmOwo+ID4gKwljZGNsa19zdGF0ZS0+Y2RjbGsg PSBjZGNsa19zdGF0ZS0+YnlwYXNzID0gY2RjbGtfc3RhdGUtPnJlZjsKPiA+ICAKPiA+ICAJaWYg KGNkY2xrX3N0YXRlLT52Y28gPT0gMCkKPiA+ICAJCWdvdG8gb3V0Owo+ID4gQEAgLTE2NjAsNyAr MTY2MCw3IEBAIHN0YXRpYyB2b2lkIGNubF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ID4gIAkvKiBjZGNsayA9IHZjbyAvIDIgLyBkaXZ7MSwyfSAqLwo+ID4g IAlzd2l0Y2ggKERJVl9ST1VORF9DTE9TRVNUKHZjbywgY2RjbGspKSB7Cj4gPiAgCWRlZmF1bHQ6 Cj4gPiAtCQlXQVJOX09OKGNkY2xrICE9IGRldl9wcml2LT5jZGNsay5ody5yZWYpOwo+ID4gKwkJ V0FSTl9PTihjZGNsayAhPSBkZXZfcHJpdi0+Y2RjbGsuaHcuYnlwYXNzKTsKPiA+ICAJCVdBUk5f T04odmNvICE9IDApOwo+ID4gIAkJLyogZmFsbCB0aHJvdWdoICovCj4gPiAgCWNhc2UgMjoKPiA+ IEBAIC0xNzA1LDcgKzE3MDUsNyBAQCBzdGF0aWMgaW50IGNubF9jZGNsa19wbGxfdmNvKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrKQo+ID4gIHsKPiA+ICAJaW50 IHJhdGlvOwo+ID4gIAo+ID4gLQlpZiAoY2RjbGsgPT0gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZikK PiA+ICsJaWYgKGNkY2xrID09IGRldl9wcml2LT5jZGNsay5ody5ieXBhc3MpCj4gPiAgCQlyZXR1 cm4gMDsKPiA+ICAKPiA+ICAJc3dpdGNoIChjZGNsaykgewo+ID4gQEAgLTE3MzIsNyArMTczMiw3 IEBAIHN0YXRpYyB2b2lkIGNubF9zYW5pdGl6ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gPiAgCWludGVsX2R1bXBfY2RjbGtfc3RhdGUoJmRldl9wcml2LT5jZGNs ay5odywgIkN1cnJlbnQgQ0RDTEsiKTsKPiA+ICAKPiA+ICAJaWYgKGRldl9wcml2LT5jZGNsay5o dy52Y28gPT0gMCB8fAo+ID4gLQkgICAgZGV2X3ByaXYtPmNkY2xrLmh3LmNkY2xrID09IGRldl9w cml2LT5jZGNsay5ody5yZWYpCj4gPiArCSAgICBkZXZfcHJpdi0+Y2RjbGsuaHcuY2RjbGsgPT0g ZGV2X3ByaXYtPmNkY2xrLmh3LmJ5cGFzcykKPiA+ICAJCWdvdG8gc2FuaXRpemU7Cj4gPiAgCj4g PiAgCS8qIERQTEwgb2theTsgdmVyaWZ5IHRoZSBjZGNsb2NrCj4gPiBAQCAtMTgwNSw3ICsxODA1 LDcgQEAgdm9pZCBjbmxfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSBjZGNsa19zdGF0ZSA9 IGRldl9wcml2LT5jZGNsay5odzsKPiA+ICAKPiA+IC0JY2RjbGtfc3RhdGUuY2RjbGsgPSBjZGNs a19zdGF0ZS5yZWY7Cj4gPiArCWNkY2xrX3N0YXRlLmNkY2xrID0gY2RjbGtfc3RhdGUuYnlwYXNz Owo+ID4gIAljZGNsa19zdGF0ZS52Y28gPSAwOwo+ID4gIAljZGNsa19zdGF0ZS52b2x0YWdlX2xl dmVsID0gY25sX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7Cj4gPiAgCj4g PiBAQCAtMTg0Niw5ICsxODQ2LDEwIEBAIGJvb2wgaW50ZWxfY2RjbGtfY2hhbmdlZChjb25zdCBz dHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmEsCj4gPiAgdm9pZCBpbnRlbF9kdW1wX2NkY2xrX3N0 YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCj4gPiAgCQkJ ICAgIGNvbnN0IGNoYXIgKmNvbnRleHQpCj4gPiAgewo+ID4gLQlEUk1fREVCVUdfRFJJVkVSKCIl cyAlZCBrSHosIFZDTyAlZCBrSHosIHJlZiAlZCBrSHosIHZvbHRhZ2UgbGV2ZWwgJWRcbiIsCj4g PiArCURSTV9ERUJVR19EUklWRVIoIiVzICVkIGtIeiwgVkNPICVkIGtIeiwgcmVmICVkIGtIeiwg YnlwYXNzICVkIGtIeiwgdm9sdGFnZSBsZXZlbCAlZFxuIiwKPiA+ICAJCQkgY29udGV4dCwgY2Rj bGtfc3RhdGUtPmNkY2xrLCBjZGNsa19zdGF0ZS0+dmNvLAo+ID4gLQkJCSBjZGNsa19zdGF0ZS0+ cmVmLCBjZGNsa19zdGF0ZS0+dm9sdGFnZV9sZXZlbCk7Cj4gPiArCQkJIGNkY2xrX3N0YXRlLT5y ZWYsIGNkY2xrX3N0YXRlLT5ieXBhc3MsCj4gPiArCQkJIGNkY2xrX3N0YXRlLT52b2x0YWdlX2xl dmVsKTsKPiA+ICB9Cj4gPiAgCj4gPiAgLyoqCj4gPiAtLSAKPiA+IDIuMTMuMgo+IAo+IC0tIAo+ IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK