From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8105F6E1FC for ; Tue, 23 Oct 2018 16:42:46 +0000 (UTC) Date: Tue, 23 Oct 2018 12:13:34 +0000 From: Tarun Vyas Message-ID: <20181023121334.GA30824@otc-arch-ivb-06> References: <20181022214118.19823-1-tarun.vyas@intel.com> <87a7n5dp20.fsf@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <87a7n5dp20.fsf@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t] tools/dpcd_reg: Add dump all functionality List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Jani Nikula Cc: igt-dev@lists.freedesktop.org, dhinakaran.pandiyan@intel.com, Rodrigo Vivi List-ID: T24gVHVlLCBPY3QgMjMsIDIwMTggYXQgMTE6NTA6NDdBTSArMDMwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gTW9uLCAyMiBPY3QgMjAxOCwgVGFydW4gVnlhcyA8dGFydW4udnlhc0BpbnRlbC5j b20+IHdyb3RlOgo+ID4gRnJvbTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t Pgo+ID4KPiA+IEFuZCBtYWtlIGl0IHRoZSBkZWZhdWx0IHdoZW4gbm8gb3BlcmF0aW9uIG9yIGRl dmljZSBpcyBnaXZlbi4KPiA+Cj4gPiBTbywgdGhpcyB3aWxsIHJlcGxhY2UgaTkxNV9kcGNkIGZv ciBub3cgYnV0IGNhbiBiZSBleHBhbmRlZAo+ID4gbGF0ZXIuCj4gPgo+ID4gQ3VycmVudCBkZWJ1 Z2ZzOgo+ID4KPiA+ICQgc3VkbyBjYXQgL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAvRFAtMS9pOTE1 X2RwY2QKPiA+IDAwMDA6IDEyIDE0IGM0IDAxIDAxIDAwIDAxIDAwIDAyIDAyIDA2IDAwIDAwIDAw IDAyCj4gPiAwMDcwOiAwMCAwMAo+ID4gMDA4MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAKPiA+IDAxMDA6IDE0IDg0IDAwIDA2IDA2IDA2IDA2IDAwIDAx IDA0IDAwCj4gPiAwMjAwOiA0MSAwMCA3NyA3NyAwMSAwMyAyMiAyMgo+ID4gMDYwMDogMDEKPiA+ IDA3MDA6IDAxCj4gPiAwNzAxOiAwMCAwMCAwMCAwMAo+ID4gMDcyMDogMDAgMDEgMDAgMDAgMDAg MDEgMDEgMDAgMDAgMDAgMDAgMDAgMDEgMDAgMDAgMDEKPiA+IDA3MzI6IDAwIDAwCj4gPgo+ID4g JCBzdWRvIGNhdCAvc3lzL2tlcm5lbC9kZWJ1Zy9kcmkvMC9lRFAtMS9pOTE1X2RwY2QKPiA+IDAw MDA6IDEyIDE0IDg0IDQwIDAwIDAwIDAxIDAxIDAyIDAwIDAwIDAwIDAwIDBiIDAwCj4gPiAwMDcw OiAwMSAwMAo+ID4gMDA4MDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAKPiA+IDAxMDA6IDE0IDA0IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwCj4gPiAw MjAwOiA0MSAwMCAwMCAwMCA4MCAwMCA2NiA2Ngo+ID4gMDYwMDogMDEKPiA+IDA3MDA6IDAyCj4g PiAwNzAxOiA5ZiA0MCAwMCAwMAo+ID4gMDcyMDogMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDEgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAKPiA+IDA3MzI6IDAwIDAwCj4gPgo+ID4gbmV3IHRvb2w6Cj4g Pgo+ID4gJCBzdWRvIHRvb2xzL2RwY2RfcmVnCj4gPgo+ID4gRHVtcGluZyBEUEREQy1CCj4gPiAw eDAwMDA6IDEyIDE0IGM0IDAxIDAxIDAwIDAxIDAwIDAyIDAyIDA2IDAwIDAwIDAwIDAyCj4gPiAw eDAwNzA6IDAwIDAwCj4gPiAweDAwODA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwCj4gPiAweDAxMDA6IDE0IDg0IDAwIDA2IDA2IDA2IDA2IDAwIDAxIDA0 IDAwCj4gPiAweDAyMDA6IDQxIDAwIDc3IDc3IDAxIDAzIDIyIDIyCj4gPiAweDA2MDA6IDAxCj4g PiAweDA3MDA6IDAxCj4gPiAweDA3MDE6IDAwIDAwIDAwIDAwCj4gPiAweDA3MjA6IDAwIDAxIDAw IDAwIDAwIDAxIDAxIDAwIDAwIDAwIDAwIDAwIDAxIDAwIDAwIDAxCj4gPiAweDA3MzI6IDAwIDAw Cj4gPiAweDIwMDg6IDAwCj4gPgo+ID4gRHVtcGluZyBEUEREQy1BCj4gPiAweDAwMDA6ICAxNCAw YSA4MiA0MSAwMCAwMCAwMSBjMCAwMiAwMCAwMCAwMCAwZiAwOSA4MAo+ID4gMHgwMDcwOiAgMDMg MWIKPiA+IDB4MDA4MDogIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwCj4gPiAweDAxMDA6ICAwMCA4MiAwMCAwMCAwMCAwMCAwMCAwMCAwMSAwOCAwMAo+ID4g MHgwMjAwOiAgMDEgMDAgMDAgMDAgMDAgMDEgMDAgMDAKPiA+IDB4MDYwMDogIDAxCj4gPiAweDA3 MDA6ICAwNAo+ID4gMHgwNzAxOiAgZmIgZmYgMDAgMDAKPiA+IDB4MDcyMDogIDAxIDAzIGZmIGZm IDEwIDBhIDEwIDAwIDAxIDAwIDAxIDAwIDAwIGMwIDAwIDAwCj4gPiAweDA3MzI6ICAwMCAxNAo+ ID4gMHgyMDA4OiAgMDIKPiA+Cj4gPiBDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJh bi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJv ZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBUYXJ1biBWeWFzIDx0YXJ1 bi52eWFzQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIHRvb2xzL2RwY2RfcmVnLmMgfCA5MiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4g IDEgZmlsZSBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gPgo+ID4g ZGlmZiAtLWdpdCBhL3Rvb2xzL2RwY2RfcmVnLmMgYi90b29scy9kcGNkX3JlZy5jCj4gPiBpbmRl eCAyNzYxMTY4ZC4uNTFjZWM4NWYgMTAwNjQ0Cj4gPiAtLS0gYS90b29scy9kcGNkX3JlZy5jCj4g PiArKysgYi90b29scy9kcGNkX3JlZy5jCj4gPiBAQCAtMzUsNiArMzUsNyBAQAo+ID4gICNpbmNs dWRlIDx1bmlzdGQuaD4KPiA+ICAjaW5jbHVkZSA8bGltaXRzLmg+Cj4gPiAgI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KPiA+ICsjaW5jbHVkZSA8ZGlyZW50Lmg+Cj4gPiAgCj4gPiAgI2RlZmluZSBNQVhf RFBfT0ZGU0VUCTB4ZmZmZmYKPiA+ICAjZGVmaW5lIERSTV9BVVhfTUlOT1JTCTI1Ngo+ID4gQEAg LTEwOSw2ICsxMTAsMzUgQEAgc3RhdGljIGlubGluZSBib29sIHN0cnRvbF9lcnJfdXRpbChjaGFy ICplbmRwdHIsIGxvbmcgKnZhbCkKPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gIH0KPiA+ICAKPiA+ ICtzdGF0aWMgdm9pZCBjb25uZWN0b3JfbmFtZShjaGFyICpmX25hbWUsIGNoYXIgKmRwY2RfbmFt ZSkKPiA+ICt7Cj4gPiArCWNoYXIgc3lzZnNfcGF0aFtQQVRIX01BWF07Cj4gPiArCWludCBzeXNm c19mZCwgcmV0Owo+ID4gKwo+ID4gKwlzbnByaW50ZihzeXNmc19wYXRoLCBQQVRIX01BWCwKPiA+ ICsJCSAiL3N5cy9jbGFzcy9kcm1fZHBfYXV4X2Rldi8lcy9uYW1lIiwKPiA+ICsJCSBmX25hbWUp Owo+ID4gKwlzeXNmc19mZCA9IG9wZW4oc3lzZnNfcGF0aCwgT19SRE9OTFkpOwo+ID4gKwlpZiAo c3lzZnNfZmQgPCAwKSB7Cj4gPiArCQlmcHJpbnRmKHN0ZGVyciwKPiA+ICsJCQkiZmFpbCB0byBv cGVuICVzXG4iLCBzeXNmc19wYXRoKTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gKwo+ID4g KwlyZXQgPSByZWFkKHN5c2ZzX2ZkLCBkcGNkX25hbWUsIHNpemVvZihkcGNkX25hbWUpIC0gMSk7 Cj4gCj4gU2VyaW91cyBidWcgIzEuIFRoZSBzaXplb2YgZG9lc24ndCBkbyB3aGF0IHlvdSBpbnRl bmQuCj4KWWVzLCB0aGF0IHdhcyBzdHVwaWQuIFRoZSBvcmlnaW5hbCBwYXRjaCB3YXMgZG9pbmcg aXQgcmlnaHQgd2hlcmUgdGhlIGFycmF5IHdhcyBkZWNsYXJlZC4gSSBtZXNzZWQgaXQgdXAgd2hp bGUgY3JlYXRpbmcgYSBuZXcgZnVuY3Rpb24gb3V0IG9mIGl0Lgo+IFJlZ3VsYXIgQyBidWcuIHJl YWQoKSBtYXkgcmV0dXJuIGEgcG9zaXRpdmUgcmVzdWx0IHNtYWxsZXIgdGhhbgo+IHJlcXVlc3Rl ZC4gU2VlIHJlYWROKCkgaW4gaWd0X3N5c2ZzLmMuCj4gCj4gClllcywgYnV0LCBpZiB0aGUgcmVh ZCB3YXMgcGFydGlhbCAob3IgemVybykgLCB0aGVuIHdlIHdvdWxkIHN0aWxsIGxpa2UgdG8gdHJl YXQgaXQgYXMgYSBmYWlsdXJlLCBpbiB0aGlzIHNwZWNpZmljIGNhc2UsIHJpZ2h0ID8KPiA+ICsJ aWYgKHJldCA8IDApIHsKPiA+ICsJCWZwcmludGYoc3RkZXJyLAo+ID4gKwkJCSJmYWlsIHRvIHJl YWQgZHBjZCBuYW1lIGZyb20gJXNcblxuIiwgc3lzZnNfcGF0aCk7Cj4gCj4gVHdvIG5ld2xpbmVz IGlzIHVubmVjZXNzYXJ5Lgo+IApPay4KPiA+ICsJCWdvdG8gY2xlYW51cDsKPiA+ICsJfQo+ID4g Kwo+ID4gKwlkcGNkX25hbWVbcmV0XSA9ICdcMCc7Cj4gPiArCXByaW50ZigiJXNcbiIsIGRwY2Rf bmFtZSk7Cj4gCj4gV2h5IGRvZXMgdGhpcyBmdW5jdGlvbiBib3RoIHJldHJpZXZlIHRoZSBuYW1l IHRvIHRoZSBjYWxsZXIgYW5kIHByaW50Cj4gaXQ/IFRob3NlIGFyZSB0d28gdGhpbmdzIHRoYXQg c2hvdWxkIHN0YXkgb3J0aG9nb25hbC4KPiAKSSBrZXB0IHRoZW0gc2VwYXJhdGUgb3JpZ2luYWxs eS4uLndpbGwgd29yayBvbiBpdCBpbiB0aGUgbmV4dCB2ZXJzaW9uLgo+ID4gKwo+ID4gK2NsZWFu dXA6Cj4gPiArCWNsb3NlKHN5c2ZzX2ZkKTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGludCBw YXJzZV9vcHRzKHN0cnVjdCBkcGNkX2RhdGEgKmRwY2QsIGludCBhcmdjLCBjaGFyICoqYXJndikK PiA+ICB7Cj4gPiAgCWludCByZXQsIHZmbGFnID0gMDsKPiA+IEBAIC0yODAsMTMgKzMxMCw2MSBA QCBzdGF0aWMgaW50IGRwY2RfZHVtcChpbnQgZmQpCj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ ID4gIAo+ID4gK3N0YXRpYyBpbnQgZHBjZF9kdW1wX2FsbCh2b2lkKQo+ID4gK3sKPiA+ICsJc3Ry dWN0IGRpcmVudCAqZGlyZW50Owo+ID4gKwlESVIgKmRpcjsKPiA+ICsJY2hhciBkZXZfcGF0aFtQ QVRIX01BWF07Cj4gPiArCWludCBkZXZfZmQsIHJldCA9IDA7Cj4gPiArCWNoYXIgZHBjZF9uYW1l WzhdOwo+ID4gKwljaGFyIGRpc2NhcmQ7Cj4gPiArCj4gPiArCWRpciA9IG9wZW5kaXIoIi9zeXMv Y2xhc3MvZHJtX2RwX2F1eF9kZXYvIik7Cj4gPiArCWlmICghZGlyKSB7Cj4gPiArCQlmcHJpbnRm KHN0ZGVyciwgImZhaWwgdG8gcmVhZCAvZGV2XG4iKTsKPiA+ICsJCXJldHVybiBFTk9FTlQ7Cj4g PiArCX0KPiA+ICsKPiA+ICsJd2hpbGUgKChkaXJlbnQgPSByZWFkZGlyKGRpcikpKSB7Cj4gPiAr CQlpZiAoc3RybmNtcChkaXJlbnQtPmRfbmFtZSwgImRybV9kcF9hdXgiLCAxMCkgPT0gMCkgewo+ ID4gKwkJCXNucHJpbnRmKGRldl9wYXRoLCBQQVRIX01BWCwKPiA+ICsJCQkJIi9kZXYvJXMiLCBk aXJlbnQtPmRfbmFtZSk7Cj4gPiArCj4gPiArCQkJZGV2X2ZkID0gb3BlbihkZXZfcGF0aCwgT19S RE9OTFkpOwo+ID4gKwkJCWlmIChkZXZfZmQgPCAwKSB7Cj4gPiArCQkJCWZwcmludGYoc3RkZXJy LAo+ID4gKwkJCQkJImZhaWwgdG8gb3BlbiAlc1xuIiwgZGV2X3BhdGgpOwo+ID4gKwkJCQljb250 aW51ZTsKPiA+ICsJCQl9Cj4gPiArCj4gPiArCQkJcHJpbnRmKCJcbkR1bXBpbmcgIik7Cj4gPiAr CQkJY29ubmVjdG9yX25hbWUoZGlyZW50LT5kX25hbWUsIGRwY2RfbmFtZSk7Cj4gCj4gQW5kIHdo YXQgaWYgY29ubmVjdG9yX25hbWUoKSBmYWlscz8KPiAKSSBoYWQgY29ubmVjdG9yX25hbWUoKSBy ZXR1cm4gYW4gaW50IGJ1dCB0aGVuIGNoYW5nZWQgaXQgdG8gdm9pZCBiL2MgSSB3YXMgbGlrZSwK SSdkIHN0aWxsIHdhbnQgdG8gZHVtcCB0aGUgcmVnaXN0ZXJzIHJlZ2FyZGxlc3Mgb2YgY29ubmVj dG9yX25hbWUuCkRvIHdlIHdhbm5hIHNraXAgaXQgYWxsIGlmIHdlIGNhbnQgZ2V0IHRoZSBjb25u ZWN0b3JfbmFtZSA/Cj4gPiArCj4gPiArCQkJLyogRHVtbXkgcmVhZCB0byBjaGVjayBpZiBkcGNk IGlzIGF2YWlsYWJsZSAqLwo+ID4gKwkJCXJldCA9IHJlYWQoZGV2X2ZkLCAmZGlzY2FyZCwgMSk7 Cj4gCj4gU2VyaW91cyBidWcgIzIuIFRoaXMgcmVhZCBib3RjaGVzIHVwIHRoZSB3aG9sZSBkdW1w Lgo+IApIbW0uIHdlIHNob3VsZCBza2lwIHRoZSBkdW1wIG9ubHkgaWYgdGhlIHJlYWQgcmV0dXJu IGEgLXZlLi4uCj4gPiArCQkJaWYgKHJldCAhPSAxKSB7Cj4gPiArCQkJCXByaW50ZigiRFBDRCAl cyBzZWVtcyBub3QgYXZhaWxhYmxlLiBza2lwcGluZy4uLlxuIiwKPiA+ICsJCQkJCWRwY2RfbmFt ZSk7Cj4gPiArCQkJCWNvbnRpbnVlOwo+ID4gKwkJCX0KPiA+ICsKPiA+ICsJCQlkcGNkX2R1bXAo ZGV2X2ZkKTsKPiA+ICsJCQljbG9zZShkZXZfZmQpOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4g PiArCWNsb3NlZGlyKGRpcik7Cj4gPiArCj4gPiArCXJldHVybiBFWElUX1NVQ0NFU1M7Cj4gPiAr fQo+ID4gIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiA+ICB7Cj4gPiAgCWNoYXIg ZGV2X25hbWVbMjBdOwo+ID4gKwljaGFyIHN5c19uYW1lWzE2XSwgZHBjZF9uYW1lWzhdOwo+ID4g IAlpbnQgcmV0LCBmZDsKPiA+ICAKPiA+ICAJc3RydWN0IGRwY2RfZGF0YSBkcGNkID0gewo+ID4g LQkJLmRldmlkID0gMCwKPiA+ICsJCS5kZXZpZCA9IC0xLAo+ID4gIAkJLmZpbGVfb3AgPSBPX1JE T05MWSwKPiA+ICAJCS5ydy5vZmZzZXQgPSAweDAsCj4gPiAgCQkucncuY291bnQgPSAxLAo+ID4g QEAgLTI5Nyw3ICszNzUsMTYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ID4g IAlpZiAocmV0ICE9IEVYSVRfU1VDQ0VTUykKPiA+ICAJCXJldHVybiByZXQ7Cj4gPiAgCj4gPiAr CWlmIChkcGNkLmRldmlkIDwgMCkgewo+ID4gKwkJaWYgKGRwY2QuY21kID09IERVTVApCj4gPiAr CQkJcmV0dXJuIGRwY2RfZHVtcF9hbGwoKTsKPiA+ICsKPiA+ICsJCWRwY2QuZGV2aWQgPSAwOwo+ ID4gKwl9Cj4gPiArCj4gPiAgCXNucHJpbnRmKGRldl9uYW1lLCBzdHJsZW4oYXV4X2RldikgKyA0 LCAiJXMlZCIsIGF1eF9kZXYsIGRwY2QuZGV2aWQpOwo+IAo+IFRoYXQncyBub3QgcGFydCBvZiB0 aGlzIHBhdGNoLCBidXQgd2hhdCBvbiBlYXJ0aCBkb2VzIHN0cmxlbihhdXhfZGV2KQo+IGhhdmUg dG8gZG8gd2l0aCBob3cgbXVjaCBmaXRzIGludG8gZGV2X25hbWU/IT8KPiAKWWVzLiBXaWxsIGZp eCBpdC4KPiA+ICsJc25wcmludGYoc3lzX25hbWUsIDE2LCAiZHJtX2RwX2F1eCVkIiwgZHBjZC5k ZXZpZCk7Cj4gCj4gc2l6ZW9mLgo+ClJpZ2h0IAo+ID4gKwo+IAo+IFN1cGVyZmx1b3VzIG5ld2xp bmUuCj4gCk9rCj4gPiAgCj4gPiAgCWZkID0gb3BlbihkZXZfbmFtZSwgZHBjZC5maWxlX29wKTsK PiA+ICAJaWYgKGZkIDwgMCkgewo+ID4gQEAgLTMwNyw2ICszOTQsOSBAQCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCj4gPiAgCQlyZXR1cm4gZXJybm87Cj4gPiAgCX0KPiA+ICAKPiA+ ICsJcHJpbnRmKCJcbiIpOwo+ID4gKwljb25uZWN0b3JfbmFtZShzeXNfbmFtZSwgZHBjZF9uYW1l KTsKPiA+ICsKPiAKPiBXaHkgaXMgdGhlIG91dHB1dCBkaWZmZXJlbnQgZm9yIG9uZSB2cy4gYWxs IGRldmljZXMgZHVtcGluZz8gRHVtcGluZyBvbmUKPiBzcGVjaWZpZWQgZGV2aWNlIHNob3VsZCBs b29rIGV4YWN0bHkgdGhlIHNhbWUgYXMgZHVtcGluZyBhbGwgZGV2aWNlcwo+IHdoZW4gdGhlcmUn cyBqdXN0IG9uZSBhdmFpbGFibGUgZGV2aWNlLiBNYXliZSB0aGlzIHNob3VsZG4ndCBiZQo+IGR1 cGxpY2F0ZWQuIE1heWJlIHRoZSBkdW1wIHBhdGggc2hvdWxkbid0IGJlIGluICphbnkqIHdheSBk aWZmZXJlbnQgZm9yCj4gbXVsdGlwbGUgdnMgb25lIGRldmljZS4gTWF5YmUgeW91IGNvdWxkIHdy aXRlIGEgZHVtcCB3cmFwcGVyIHRoYXQgdGFrZXMKPiB0aGUgYXV4IGRldiBuYW1lIHBhdHRlcm4g YXMgaW5wdXQsIGFuZCBpbiB0aGUgc3BlY2lmaWVkIGNhc2UgaXQgc2hvdWxkCj4gb25seSBtYXRj aCBvbmUuIFdvdWxkIG1ha2UgdGhlIHdob2xlIHRoaW5nIG11Y2ggbmVhdGVyLgo+IAo+IEJSLAo+ IEphbmkuCj4gCk15IHRob3VnaHQgd2FzIHRoYXQgYXQgdGhpcyBwb2ludCwgaXQgd29udCBiZSBh IGR1bXAgYW55bW9yZS4KSSBtZWFudCB0aGlzIHNwZWNpZmljYWxseSBmb3IgcmVhZHMvd3JpdGVz IG9mIGJ5dGUocyksIHRvIGEgc3BlY2lmaWMgZGV2aWNlLgpUaGF0J3Mgd2h5IEkgY2hhbmdlZCB0 aGUgY29ubmVjdG9yX25hbWUoKSB0byBpbmNsdWRlIHByaW50aW5nIHRoZSBkcGNkX25hbWUgCihi dXQgdGhhdCdzIGp1c3Qgbm90IHJpZ2h0KS4gQnV0LCB5ZWEsIHRoZSBpZGVhIHdhcyB0byBtYWtl IHRoaXMgbG9vayBkaWZmZXJlbnQKdGhhbiBhIHJlZ3VsYXIgZHVtcCBvZiBhbGwgcmVnaXN0ZXJz LCBiL2MgaGVyZSB3ZSBqdXN0IHdhbnQgdG8gcHJpbnQgdGhlIGNvbm5lY3RvcgpuYW1lIGZvciB0 aGUgZGV2aWNlIHdlIGFyZSBsb29raW5nIGF0LgoKVGhhbmtzIGZvciB0aGUgcmV2aWV3IEphbmku CgotIFRhcnVuCj4gPiAgCXN3aXRjaCAoZHBjZC5jbWQpIHsKPiA+ICAJY2FzZSBSRUFEOgo+ID4g IAkJcmV0ID0gZHBjZF9yZWFkKGZkLCBkcGNkLnJ3Lm9mZnNldCwgZHBjZC5ydy5jb3VudCk7Cj4g Cj4gLS0gCj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1h aWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK