From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chih-Chiang Chang Subject: Re: [PATCH] ASoC: Add support for NAU8824 codec to ASoC Date: Wed, 4 Mar 2015 20:35:52 +0800 Message-ID: <54F6FC28.4030403@nuvoton.com> References: <1423986570-6355-1-git-send-email-Vincent.wan@amd.com> <20150224141314.GI6236@finisterre.sirena.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from maillog.nuvoton.com (maillog.nuvoton.com [202.39.227.15]) by alsa0.perex.cz (Postfix) with ESMTP id 0B0CE265050 for ; Wed, 4 Mar 2015 13:35:56 +0100 (CET) In-Reply-To: <20150224141314.GI6236@finisterre.sirena.org.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Mark Brown Cc: "alsa-devel@alsa-project.org" , "mcuos.com@gmail.com" , "tiwai@suse.de" , "lgirdwood@gmail.com" , "linux-kernel@vger.kernel.org" , liam.r.girdwood@intel.com List-Id: alsa-devel@alsa-project.org CgpPbiAyMDE1LzIvMjQg5LiL5Y2IIDEwOjEzLCBNYXJrIEJyb3duIHdyb3RlOgo+IE9uIFN1biwg RmViIDE1LCAyMDE1IGF0IDAzOjQ5OjMwUE0gKzA4MDAsIFdhbiBab25nc2h1biB3cm90ZToKPgo+ PiArICAgIC8qIFNQIENsYXNzLUQgbXV0ZSBjb250cm9sICovCj4+ICsgICAgU09DX0RPVUJMRSgi SFAgUGxheWJhY2sgU3dpdGNoIiwgTkFVODgyNF9IUF9NVVRFLCBOQVU4ODI0X0xfTVVURV9TRlQs Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFVODgyNF9SX01VVEVfU0ZULCAxLCAx KSwKPj4gKyAgICBTT0NfU0lOR0xFX1RMVigiSFAgTGVmdCBWb2x1bWUiLCBOQVU4ODI0X0hQX1ZP TCwgTkFVODgyNF9MX1ZPTF9TRlQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFV ODgyNF9WT0xfUlNDTF9SQU5HRSwgMSwgb3V0X2hwX3ZvbF90bHYpLAo+PiArICAgIFNPQ19TSU5H TEVfVExWKCJIUCBSaWdodCBWb2x1bWUiLCBOQVU4ODI0X0hQX1ZPTCwgTkFVODgyNF9SX1ZPTF9T RlQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFVODgyNF9WT0xfUlNDTF9SQU5H RSwgMSwgb3V0X2hwX3ZvbF90bHYpLAo+Cj4gSSB3b3VsZCBoYXZlIGV4cGVjdGVkIHRoZSBoZWFk cGhvbmUgdm9sdW1lIGNvbnRyb2wgdG8gYmUgYSBzdGVyZW8KPiAoZG91YmxlKSBjb250cm9sIC0g c2FtZSBmb3Igc3BlYWtlcnMuClRoZSBuYXU4ODI0IHJlbGF0ZWQgcmVnaXN0ZXJzIHdoaWNoIGNv bnRyb2wgbGVmdC9yaWdodCB2b2x1bWUgYXJlIGxvY2F0ZWQKaW4gZGlmZmVyZW50IGFkZHJlc3Nl cyBhbmQgZGlmZmVyZW50IHNoaWZ0IGJpdHMuIFNpbmNlIHRoZXJlIGlzIG5vIGF2YWlsYWJsZQpw cmVwcm9jZXNzb3IgbWFjcm8gdG8gbWVldCBvdXIgcmVxdWlyZW1lbnRzLCB0aGUgZHJpdmVyIGNv bnNpc3RzIG9mIGxlZnQvcmlnaHQKdm9sdW1lIGNvbnRyb2wgc2VwYXJhdGVseS4KPgo+PiArICAg IC8qIERNSUMgY29udHJvbCAqLwo+PiArICAgIFNPQ19ET1VCTEUoIkRNSUMgTCBSIFN3aXRjaCIs IE5BVTg4MjRfRU5BX0NUUkwsIE5BVTg4MjRfRE1JQ19DSDBfU0ZULAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5BVTg4MjRfRE1JQ19DSDFfU0ZULCAxLCAwKSwKPj4gKyAgICBTT0Nf U0lOR0xFKCJETUlDIEVuYWJsZSIsIE5BVTg4MjRfQklBU19BREosIE5BVTg4MjRfRE1JQzFfU0ZU LCAxLCAwKSwKPj4gKyAgICBTT0NfU0lOR0xFKCJWTUlEIFN3aXRjaCIsIE5BVTg4MjRfQklBU19B REosIE5BVTg4MjRfVk1JRF9TRlQsIDEsIDApLAo+PiArICAgIFNPQ19TSU5HTEUoIkJJQVMgU3dp dGNoIiwgTkFVODgyNF9CT09TVCwgTkFVODgyNF9HX0JJQVNfU0ZULCAxLCAwKSwKPgo+IFRoaXMg YWxsIGxvb2tzIGxpa2Ugc3R1ZmYgdGhhdCBzaG91bGQgYmUgZG9uZSB3aXRoIERBUE0uLi4KVGhl IGFib3ZlIGNvbnRyb2xzIGhhdmUgYmVlbiBkb25lIHdpdGggREFQTSBpbiBuZXh0IHBhdGNoIHN1 Ym1pdC4KPgo+PiArICAgIFNPQ19ET1VCTEVfUl9UTFYoIk1JQyBMIFIgR2FpbiIsIE5BVTg4MjRf QURDX0NIMF9ER0FJTl9DVFJMLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BVTg4 MjRfQURDX0NIMV9ER0FJTl9DVFJMLCAwLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5BVTg4MjRfQURDX1ZPTF9SU0NMX1JBTkdFLCAgICAgMCwgYWRjX3ZvbF90bHYpLAo+Cj4gQWxs IHZvbHVtZSBjb250cm9scyBzaG91bGQgYmUgY2FsbGVkIFZvbHVtZS4KVGhlIG5hbWluZyBoYXMg YmVlbiBjaGFuZ2VkLgo+Cj4+ICtzdGF0aWMgaW50IHNldF9kbWljX2NsayhzdHJ1Y3Qgc25kX3Nv Y19kYXBtX3dpZGdldCAqdywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg c25kX2tjb250cm9sICprY29udHJvbCwgaW50IGV2ZW50KQo+PiArewo+PiArICAgIHN0cnVjdCBz bmRfc29jX2NvZGVjICpjb2RlYyA9IHctPmNvZGVjOwo+Cj4gdy0+Y29kZWMgaXMgZ29pbmcgYXdh eSwgdXNlIHNuZF9zb2NfZGFwbV90b19jb2RlYygpLiAgWW91IHNob3VsZCBhbHdheXMKPiBzdWJt aXQgYWdhaW5zdCBjdXJyZW50IGNvZGUuCk1vZGlmaWVkIGRvbmUgaW4gbmV4dCBwYXRjaCBzdWJt aXQuCj4KPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBuYXU4ODI0X3Jl Y19sX21peFtdID0gewo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNPQ19EQVBNX1NJ TkdMRSgiQlNUMSBTd2l0Y2giLCBTTkRfU09DX05PUE0sCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCwgMCwgMCksCj4+ICt9Owo+Cj4gUGxlYXNlIHVzZSBub3JtYWwgaW5kZW50YXRp b24sIGEgc2luZ2xlIHRhYiBpcyBlbm91Z2guCk1vZGlmaWVkIGRvbmUgaW4gbmV4dCBwYXRjaCBz dWJtaXQuCj4KPj4gK3N0YXRpYyBpbnQgbmF1ODgyNF9ocF9ldmVudChzdHJ1Y3Qgc25kX3NvY19k YXBtX3dpZGdldCAqdywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc25k X2tjb250cm9sICprY29udHJvbCwgaW50IGV2ZW50KQo+PiArewo+PiArICAgIHJldHVybiAwOwo+ PiArfQo+Cj4gUmVtb3ZlIGVtcHR5IGZ1bmN0aW9ucy4KTW9kaWZpZWQgZG9uZSBpbiBuZXh0IHBh dGNoIHN1Ym1pdC4KPgo+PiArICAgIHN3aXRjaCAoZm10ICYgU05EX1NPQ19EQUlGTVRfTUFTVEVS X01BU0spIHsKPj4gKyAgICBjYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRk06Cj4+ICsgICAgICAg ICAgICByZWdfdmFsXzIgfD0gTkFVODgyNF9JMlNfTVNfTTsKPj4gKyAgICAgICAgICAgIGJyZWFr Owo+PiArICAgIGNhc2UgU05EX1NPQ19EQUlGTVRfQ0JTX0NGUzoKPj4gKyAgICAgICAgICAgIGJy ZWFrOwo+PiArICAgIGNhc2UgU05EX1NPQ19EQUlGTVRfQ0JTX0NGTToKPj4gKyAgICAgICAgICAg IGJyZWFrOwo+Cj4gVGhlc2UgdHdvIGNsb2NraW5nIGNvbmZpZ3VyYXRpb25zIGFwcGVhciBub3Qg dG8gZGlmZmVyIGluIHRlcm1zIG9mIHdoYXQKPiB3ZSBkbyB0byB0aGUgZGV2aWNlIC0gdGhpcyBz dWdnZXN0cyB0aGF0IG9ubHkgb25lIG9mIHRoZW0gaXMgYWN0dWFsbHkKPiBzdXBwb3J0ZWQuCk1v ZGlmaWVkIGRvbmUgaW4gbmV4dCBwYXRjaCBzdWJtaXQuCj4KPj4gK3N0YXRpYyBpbnQgbmF1ODgy NF9GTExfZnJlZXJ1bl9tb2RlKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IElzRW5h YmxlKQo+PiArewo+PiArICAgIGlmIChJc0VuYWJsZSA9PSB0cnVlKSB7Cj4KPiBUaGlzIGRvZXNu J3QgbG9vayBsaWtlIExpbnV4IGNvZGluZyBzdHlsZS4uLgpSZW1vdmUgdGhpcyBmdW5jdGlvbgo+ Cj4+ICt2b2lkIHNldF9zeXNfY2xrKHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYywgaW50IHN5 c19jbGspCj4+ICt7Cj4+ICsgICAgcHJfZGVidWcoIiVzIHN5c19jbGs9JXhcbiIsIF9fZnVuY19f LCBzeXNfY2xrKTsKPj4gKyAgICBzd2l0Y2ggKHN5c19jbGspIHsKPj4gKyAgICBjYXNlIE5BVTg4 MjRfSU5URVJOQUxDTE9DSzoKPj4gKyAgICAgICAgICAgIG5hdTg4MjRfRkxMX2ZyZWVydW5fbW9k ZShjb2RlYywgdHJ1ZSk7Cj4+ICsgICAgICAgICAgICBicmVhazsKPj4gKwo+PiArICAgIGNhc2Ug TkFVODgyNF9NQ0xLOgo+PiArICAgIGRlZmF1bHQ6Cj4+ICsgICAgICAgICAgICBuYXU4ODI0X0ZM TF9mcmVlcnVuX21vZGUoY29kZWMsIGZhbHNlKTsKPj4gKyAgICAgICAgICAgIGJyZWFrOwo+PiAr ICAgIH0KPj4gK30KPgo+IC4uLmFuZCBJIGRvbid0IGVudGlyZWx5IHNlZSB3aHkgaXQncyBhIHNl cGFyYXRlIGZ1bmN0aW9uIHRvIHRoaXMgKHdoaWNoCj4gaXMgaXRzZWxmIGFuIGludGVybmFsIHdy YXBwZXIgZnVuY3Rpb24gd2hpY2ggcG9zc2libHkgc2hvdWxkbid0IGV4aXN0KT4KUmVtb3ZlICJu YXU4ODI0X0ZMTF9mcmVlcnVuX21vZGUoKSIgZnVuY3Rpb24KPgo+PiArc3RhdGljIGludCBuYXU4 ODI0X3NldF9zeXNjbGsoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAo+PiArICAgICAgICAg ICAgaW50IGNsa19pZCwgaW50IHNvdXJjZSwgdW5zaWduZWQgaW50IGZyZXEsIGludCBkaXIpCj4+ ICt7Cj4+ICsgICAgaW50IGRpdmlkZXIgPSAxOwo+PiArCj4+ICsgICAgaWYgKGNsa19pZCA9PSBO QVU4ODI0X01DTEspIHsKPj4gKyAgICAgICAgICAgIHNldF9zeXNfY2xrKGNvZGVjLCBOQVU4ODI0 X01DTEspOwo+PiArICAgICAgICAgICAgZGV2X2RiZyhjb2RlYy0+ZGV2LCAiJXM6IGlucHV0IGZy ZXEgPSAlZCBkaXZpZGVyID0gJWQiLAo+PiArICAgICAgICAgICAgX19mdW5jX18sIGZyZXEsIGRp dmlkZXIpOwo+PiArCj4+ICsgICAgfSBlbHNlIGlmIChjbGtfaWQgPT0gTkFVODgyNF9JTlRFUk5B TENMT0NLKSB7Cj4+ICsgICAgICAgICAgICBzZXRfc3lzX2Nsayhjb2RlYywgTkFVODgyNF9JTlRF Uk5BTENMT0NLKTsKPj4gKyAgICB9IGVsc2Ugewo+PiArICAgICAgICAgICAgZGV2X2Vycihjb2Rl Yy0+ZGV2LCAiV3JvbmcgY2xvY2sgc3JjXG4iKTsKPj4gKyAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+PiArICAgIH0KPgo+IFVzZSBzd2l0Y2ggc3RhdGVtZW50cyByYXRoZXIgdGhhbiBpZiB0 cmVlcyBsaWtlIG90aGVyIGRyaXZlcnMuICBJdCBsb29rcwo+IGxpa2UgY2xrX2lkIHNob3VsZCBh Y3R1YWxseSBiZSBzb3VyY2Ugc2luY2Ugd2UncmUgc2VsZWN0aW5nIHRoZSBjbG9jayB0bwo+IHVz ZSByYXRoZXIgdGhhbiBzZWxlY3Rpbmcgd2hpY2ggY2xvY2sgdG8gY29uZmlndXJlLgpNb2RpZmll ZCBkb25lIGluIG5leHQgcGF0Y2ggc3VibWl0Lgo+Cj4+ICtzdGF0aWMgaW50IG5hdTg4MjRfc2V0 X2JpYXNfbGV2ZWwoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVudW0gc25kX3NvY19iaWFzX2xldmVsIGxldmVsKQo+PiArewo+PiAr ICAgIGRldl9kYmcoY29kZWMtPmRldiwgIiMjIG5hdTg4MjRfc2V0X2JpYXNfbGV2ZWwgJWRcbiIs IGxldmVsKTsKPj4gKyAgICBpZiAobGV2ZWwgPT0gY29kZWMtPmRhcG0uYmlhc19sZXZlbCkgewo+ PiArICAgICAgICAgICAgZGV2X2RiZyhjb2RlYy0+ZGV2LCAiIyNzZXRfYmlhc19sZXZlbDogbGV2 ZWwgcmV0dXJuaW5nLi4uXHJcbiIpOwo+PiArICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ ICsgICAgfQo+Cj4gV2h5IGlzIHRoaXMgaGVyZSAtIG90aGVyIGRyaXZlcnMgZG9uJ3QgZG8gdGhp cyBhbmQgaXQgZG9lc24ndCBsb29rCj4gZGV2aWNlIHNwZWNpZmljPwpSZW1vdmUgaXQKPgo+PiAr ICAgIHN3aXRjaCAobGV2ZWwpIHsKPj4gKyAgICBjYXNlIFNORF9TT0NfQklBU19PTjoKPj4gKyAg ICAgICAgICAgIC8qIEFsbCBwb3dlciBpcyBkcml2ZW4gYnkgREFQTSBzeXN0ZW0qLwo+PiArICAg ICAgICAgICAgZGV2X2RiZyhjb2RlYy0+ZGV2LCAiIyMjbmF1ODgyNF9zZXRfYmlhc19sZXZlbCBC SUFTX09OXG4iKTsKPj4gKyAgICAgICAgICAgIHNuZF9zb2NfdXBkYXRlX2JpdHMoY29kZWMsIE5B VTg4MjRfQklBU19BREosCj4+ICsgICAgICAgICAgICAgICAgICAgIE5BVTg4MjRfVk1JRF9NQVNL LCBOQVU4ODI0X1ZNSURfRU4pOwo+PiArICAgICAgICAgICAgc25kX3NvY191cGRhdGVfYml0cyhj b2RlYywgTkFVODgyNF9CT09TVCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQVU4 ODI0X0dfQklBU19NQVNLLCBOQVU4ODI0X0dfQklBU19FTik7Cj4KPiBXZSB0dXJuIG9uIFZNSUQg bGFzdD8gIFRoYXQncyBhIHN0cmFuZ2UgdGhpbmcgdG8gZG8uLi4KSW4gbmF1ODgyNCwgVk1JRF9F TiBpcyB0byBlbmFibGUgVnJlZmYgcGluCj4KPj4gK3N0YXRpYyBpbnQgbmF1ODgyNF9zdXNwZW5k KHN0cnVjdCBzbmRfc29jX2NvZGVjICpjb2RlYykKPj4gK3sKPj4gKyAgICBkZXZfZGJnKGNvZGVj LT5kZXYsICIlczogRW50ZXJlZFxuIiwgX19mdW5jX18pOwo+PiArICAgIG5hdTg4MjRfc2V0X2Jp YXNfbGV2ZWwoY29kZWMsIFNORF9TT0NfQklBU19PRkYpOwo+PiArICAgIGRldl9kYmcoY29kZWMt PmRldiwgIiVzOiBFeGl0aW5nXG4iLCBfX2Z1bmNfXyk7Cj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9 Cj4KPiBTZXQgaWRsZV9iaWFzX29mZiAod2hpY2ggaXQgbG9va3MgbGlrZSB5b3Ugc2hvdWxkIGJl IGRvaW5nKSBhbmQgdGhpcwo+IGJlY29tZXMgcmVkdW5kYW50LiAgSWYgeW91J3JlICpub3QqIHVz aW5nIGlkbGVfYmlhc19vZmYgZm9yIHNvbWUgcmVhc29uCj4gdGhlbiB0aGUgc2V0X2JpYXNfbGV2 ZWwoKSB3b3JrIGRvbmUgaW4gX09OIHNob3VsZCBiZSB1bmRvbmUgaW4gYXQgbGVhc3QKPiBfU1VT UEVORCByYXRoZXIgdGhhbiBfT0ZGIHNvIHdlIHNhdmUgcG93ZXIgb24gaWRsZS4KUmVtb3ZlIHN1 c3BlbmQgZnVuY3Rpb24KPgo+PiArc3RydWN0IG5hdTg4MjRfaW5pdF9yZWcgewo+PiArICAgIHU4 IHJlZzsKPj4gKyAgICB1MTYgdmFsOwo+PiArfTsKPgo+IFRoaXMgbG9va3MgbGlrZSB5b3UncmUg cmVpbXBsZW1lbnRpbmcgcmVnbWFwJ3MgcmVnaXN0ZXIgc2VxdWVuY2UKPiBzdHVmZi4uLiAgSXQn cyBhbHNvIGEgKnZlcnkqIGxhcmdlIHNlcXVlbmNlIHlvdSBoYXZlLCBhcmUgeW91IHN1cmUgaXQn cwo+IGFsbCByZXF1aXJlZD8gIEl0IHNlZW1zIGxpa2UgdGhpcyBtYXkgYmUgZG9pbmcgYSBidW5j aCBvZiBtYWNoaW5lCj4gc3BlY2lmaWMgY29uZmlndXJhdGlvbiBidXQgc2luY2UgaXQncyBhbGwg bWFnaWMgbnVtYmVycyBpdCdzIGhhcmQgdG8KPiB0ZWxsLgpJbml0aWFsIHNldHRpbmdzIGFyZSBh cnJhbmdlZCBpbiBvcmRlcgo+Cj4+ICsjZGVmaW5lIE5BVTg4MjRfSU5JVF9SRUdfTEVOIEFSUkFZ X1NJWkUoaW5pdF9saXN0KQo+Cj4gSnVzdCB1c2UgQVJSQVlfU0laRSgpLgpNb2RpZmllZCBkb25l IGluIG5leHQgcGF0Y2ggc3VibWl0Lgo+Cj4+ICtzdGF0aWMgaW50IG5hdTg4MjRfcmVnX2luaXQo c3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQo+PiArewo+PiArICAgIGludCBpOwo+PiArCj4+ ICsgICAgbWRlbGF5KDEpOwo+PiArICAgIGZvciAoaSA9IDA7IGkgPCBOQVU4ODI0X0lOSVRfUkVH X0xFTjsgaSsrKSB7Cj4+ICsgICAgICAgICAgICBpZiAoaW5pdF9saXN0W2ldLnJlZyA9PSAweEZG RkYpCj4+ICsgICAgICAgICAgICAgICAgICAgIG1kZWxheSgxKTsKPj4gKyAgICAgICAgICAgIGVs c2UKPj4gKyAgICAgICAgICAgICAgICAgICAgc25kX3NvY193cml0ZShjb2RlYywgaW5pdF9saXN0 W2ldLnJlZywKPj4gKyAgICAgICAgICAgICAgICAgICAgaW5pdF9saXN0W2ldLnZhbCk7Cj4+ICsg ICAgfQo+Cj4gVXNlIHRoZSBzdGFuZGFyZCByZWdtYXAgcGF0Y2ggc3R1ZmYuICBJZiB5b3UgbmVl ZCB0aGUgZGVsYXlzIGluIHRoZQo+IHNlcXVlbmNlIGltcGxlbWVudCB0aGF0IGluIHRoZSBjb3Jl LCB0aG91Z2ggSSBndWVzcyB5b3UgZG9uJ3Qgc2luY2UKPiByZWcgaXMgYSB1OCBhbmQgeW91J3Jl IGxvb2tpbmcgZm9yIDB4ZmZmZiBpbiBpdC4uLgpNb2RpZmllZCBkb25lIGluIG5leHQgcGF0Y2gg c3VibWl0Lgo+Cj4+ICsgICAgLyogRHluYW1pYyBIZWFkc2V0IGRldGVjdGlvbiBlbmFibGVkICov Cj4+ICsgICAgc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgMHgwMSwgMHg0MDAsIDB4NDAwKTsK Pj4gKyAgICBzbmRfc29jX3VwZGF0ZV9iaXRzKGNvZGVjLCAweDAyLCAweDAwMDgsIDB4MDAwOCk7 Cj4+ICsgICAgc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywgMHgwZiwgMHgwMzAwLCAweDAxMDAp Owo+PiArICAgIHNuZF9zb2Nfd3JpdGUoY29kZWMsIDB4MDksIDB4RTAwMCk7Cj4+ICsgICAgc25k X3NvY193cml0ZShjb2RlYywgTkFVODgyNF9JUlFfU0VUVElORywgMHgxMDA2KTsKPj4gKyAgICBz bmRfc29jX3dyaXRlKGNvZGVjLCAweDEzLCAweDE2MTUpOwo+PiArICAgIHNuZF9zb2Nfd3JpdGUo Y29kZWMsIDB4MTUsIDB4MDQxNCk7Cj4+ICsgICAgc25kX3NvY191cGRhdGVfYml0cyhjb2RlYywg MHgxNiwgMHhGRjAwLCAweDU5MDApOwo+PiArICAgIHNuZF9zb2NfdXBkYXRlX2JpdHMoY29kZWMs IDB4NjYsIDB4MDA3MCwgMHgwMDYwKTsKPgo+IFRvbyBtYW55IG1hZ2ljIG51bWJlcnMgaGVyZSBJ IHRoaW5rIGFuZCB0aGlzIGxvb2tzIGxpa2UgaXQgc2hvdWxkIGJlCj4gY29uZmlndXJlZCB1c2lu ZyBwbGF0Zm9ybSBkYXRhIGFuZC9vciB0aGUgbWFjaGluZSBkcml2ZXIgKHdoYXQgaWYgdGhlCj4g aGVhZHBob25lIGRldGVjdGlvbi9JUlEgYXJlbid0IHdpcmVkIHVwPykuICBJJ2QgYWxzbyBleHBl Y3QgdG8gc2VlCj4gcmVwb3J0aW5nIHZpYSB0aGUgc3RhbmRhcmQgaW50ZXJmYWNlcyBmb3IgamFj ayByZXBvcnRpbmcuClRoZSBhYm92ZSBpbml0aWFsIHNldHRpbmdzIGFyZSBmb3IgamFjayBkZXRl Y3Rpb24uIEFzIGZvciBvdGhlciBqYWNrCmRldGVjdGlvbiBmbG93LCBpdCB3aWxsIGJlIGltcGxl bWVudGVkIGluIG1hY2hpbmUgZHJpdmVyIGJ1dCBub3QgYmUgaW5jbHVkZWQgaW4KdGhpcyBhcHBs aWNhdGlvbi4KPgo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIG5hdTg4MjRf aTJjX2lkW10gPSB7Cj4+ICsgICAgeyAibmF1ODgyNCIsIDB9LAo+PiArICAgIHsiMTA1MDg4MjQ6 MDAiLCAwfSwKPj4gKyAgICB7IjEwNTA4ODI0IiwgMH0sCj4+ICsgICAgeyB9Cj4+ICt9Owo+Cj4g SXQgbG9va3MgbGlrZSB5b3UndmUgcHV0IHNvbWUgQUNQSSBJRHMgaW4gdGhlIEkyQyBJRCB0YWJs ZSBoZXJlLiAgQXQKPiBsZWFzdCBJIGhvcGUgdGhhdCdzIHdoYXQgdGhlIGxhc3QgdHdvIGVudHJp ZXMgYXJlLi4uICBpZiB0aGV5IGFyZSBBQ1BJCj4gSURzIHRoZXkgc2hvdWxkIGJlIHJlZ2lzdGVy ZWQgYXMgc3VjaC4gIElmIHRoZXkncmUgc29tZXRoaW5nIGVsc2UgdGhlbgo+IHdoYXQgYXJlIHRo ZXk/ClllcywgdGhlcmUgYXJlIEFDUEkgSUQgdGFibGUgYW5kIHJlZ2lzdGVyZWQgaW4gdGhlIGRl ZGljYXRlZCBwbGF0Zm9ybSBCSU9TLgo+Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClRoZSBwcml2aWxlZ2VkIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4g dGhpcyBlbWFpbCBpcyBpbnRlbmRlZCBmb3IgdXNlIG9ubHkgYnkgdGhlIGFkZHJlc3NlZXMgYXMg aW5kaWNhdGVkIGJ5IHRoZSBvcmlnaW5hbCBzZW5kZXIgb2YgdGhpcyBlbWFpbC4gSWYgeW91IGFy ZSBub3QgdGhlIGFkZHJlc3NlZSBpbmRpY2F0ZWQgaW4gdGhpcyBlbWFpbCBvciBhcmUgbm90IHJl c3BvbnNpYmxlIGZvciBkZWxpdmVyeSBvZiB0aGUgZW1haWwgdG8gc3VjaCBhIHBlcnNvbiwgcGxl YXNlIGtpbmRseSByZXBseSB0byB0aGUgc2VuZGVyIGluZGljYXRpbmcgdGhpcyBmYWN0IGFuZCBk ZWxldGUgYWxsIGNvcGllcyBvZiBpdCBmcm9tIHlvdXIgY29tcHV0ZXIgYW5kIG5ldHdvcmsgc2Vy dmVyIGltbWVkaWF0ZWx5LiBZb3VyIGNvb3BlcmF0aW9uIGlzIGhpZ2hseSBhcHByZWNpYXRlZC4g SXQgaXMgYWR2aXNlZCB0aGF0IGFueSB1bmF1dGhvcml6ZWQgdXNlIG9mIGNvbmZpZGVudGlhbCBp bmZvcm1hdGlvbiBvZiBOdXZvdG9uIGlzIHN0cmljdGx5IHByb2hpYml0ZWQ7IGFuZCBhbnkgaW5m b3JtYXRpb24gaW4gdGhpcyBlbWFpbCBpcnJlbGV2YW50IHRvIHRoZSBvZmZpY2lhbCBidXNpbmVz cyBvZiBOdXZvdG9uIHNoYWxsIGJlIGRlZW1lZCBhcyBuZWl0aGVyIGdpdmVuIG5vciBlbmRvcnNl ZCBieSBOdXZvdG9uLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpBbHNhLWRldmVsIG1haWxpbmcgbGlzdApBbHNhLWRldmVsQGFsc2EtcHJvamVjdC5vcmcK aHR0cDovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Fsc2EtZGV2 ZWwK