From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915/kbl: Introduce Kabylake platform defition. Date: Wed, 28 Oct 2015 21:18:15 +0200 Message-ID: <878u6m4xag.fsf@intel.com> References: <87611rp6gy.fsf@intel.com> <1446031005-1725-1-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 1089D6E2DF for ; Wed, 28 Oct 2015 12:18:42 -0700 (PDT) In-Reply-To: <1446031005-1725-1-git-send-email-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyOCBPY3QgMjAxNSwgUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29t PiB3cm90ZToKPiBLYWJ5bGFrZSBpcyBhIEludGVswq4gUHJvY2Vzc29yIGNvbnRhaW5pbmcgSW50 ZWzCriBIRCBHcmFwaGljcwo+IGZvbGxvd2luZyBTa3lsYWtlLgo+Cj4gSXQgaXMgR2VuOXA1LCBz byBpdCBpbmhlcml0cyBldmVyeXRoaW5nIGZyb20gU2t5bGFrZS4KPgo+IExldCdzIHN0YXJ0IGJ5 IGFkZGluZyB0aGUgcGxhdGZvcm0gc2VwYXJhdGVkIGZyb20gU2t5bGFrZQo+IGJ1dCByZXVzaW5n IG1vc3Qgb2YgYWxsIGZlYXR1cmVzLCBmdW5jdGlvbnMgZXRjLiBMYXRlciB3ZQo+IHJlYmFzZSB0 aGUgUENJLUlEIHBhdGNoIHdpdGhvdXQgaXNfc2t5bGFrZT0xCj4gc28gd2UgZG9uJ3QgcmVwbGFj ZSB3aGF0IG9yaWdpbmFsIEF1dGhvciBkaWQgdGhlcmUuCj4KPiBGZXcgSVNfU0tZTEFLRXMgaWYg c3RhdGVtZW50cyBhcmUgbm90IGJlaW5nIGNvdmVyZWQgYnkgdGhpcyBwYXRjaAo+IG9uIHB1cnBv c2U6Cj4gICAgLSBXb3JrYXJvdW5kczogS2FieWxha2UgaXMgZGVyaXZhdGVkIGZyb20gU2t5bGFr ZSBIMCBzbyBubwo+ICAgICAgCQkgIFcvQXMgYXBwbHkgaGVyZS4KPiAgICAtIEd1QzogQSBmb2xs b3dpbmcgcGF0Y2ggcmVtb3ZlcyBLYWJ5bGFrZSBzdXBwb3J0IHdpdGggYW4KPiAgICAgIAkgIGV4 cGxhbmF0aW9uOiBObyBmaXJtd2FyZSBhdmFpbGFibGUgeWV0Lgo+ICAgIC0gRE1DL0NTUjogRG9u ZSBpbiBhIHNlcGFyYXRlZCBwYXRjaCBzaW5jZSB3ZSBuZWVkIHRvIGJlIGNhcmVmdWxsCj4gICAg ICAJICAgICAgYW5kIGxvYWQgdGhlIHZlcnNpb24gZm9yIHJldmlzaW9uIDcgc2luY2UKPiAJICAg ICAgS2FieWxha2UgaXMgU2t5bGFrZSBIMC4KPgo+IHYyOiByZWxhdGl2ZSBjbGVhbmVyIGNvbW1p dCBtZXNzYWdlIGFuZCBhZGRlZCB0aGUgbWlzc2VkCj4gICAgIElTX0tBQllMQUtFIHRvIGludGVs X2kyYy5jIGFzIHBvaW50ZWQgb3V0IGJ5IEphbmkuCj4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmku bmlrdWxhQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28u dml2aUBpbnRlbC5jb20+CgpSZXZpZXdlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGlu dGVsLmNvbT4KCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAg ICAgfCAxNiArKysrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAg ICAgICAgIHwgIDMgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAg ICB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgNiArKystLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9zdG9sZW4uYyAgfCAgMyArKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXVkaW8uYyAgICAgIHwgIDkgKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYyAgICAgICAgfCAxNiArKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgMTIgKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMgICAgICAgICB8ICA2ICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiYy5jICAgICAgICB8ICAzICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9pMmMuYyAgICAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9j cy5jICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg ICAgIHwgMTEgKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVf cG0uYyB8ICAyICstCj4gIDE0IGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDQ3IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBlY2E5 NGQwLi41MTI1YWE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAt MTI1MiwxOCArMTI1MiwyMSBAQCBzdGF0aWMgaW50IGk5MTVfZnJlcXVlbmN5X2luZm8oc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gIAo+ICAJCW1heF9mcmVxID0gKElTX0JST1hU T04oZGV2KSA/IHJwX3N0YXRlX2NhcCA+PiAwIDoKPiAgCQkJICAgIHJwX3N0YXRlX2NhcCA+PiAx NikgJiAweGZmOwo+IC0JCW1heF9mcmVxICo9IChJU19TS1lMQUtFKGRldikgPyBHRU45X0ZSRVFf U0NBTEVSIDogMSk7Cj4gKwkJbWF4X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZ TEFLRShkZXYpID8KPiArCQkJICAgICBHRU45X0ZSRVFfU0NBTEVSIDogMSk7Cj4gIAkJc2VxX3By aW50ZihtLCAiTG93ZXN0IChSUE4pIGZyZXF1ZW5jeTogJWRNSHpcbiIsCj4gIAkJCSAgIGludGVs X2dwdV9mcmVxKGRldl9wcml2LCBtYXhfZnJlcSkpOwo+ICAKPiAgCQltYXhfZnJlcSA9IChycF9z dGF0ZV9jYXAgJiAweGZmMDApID4+IDg7Cj4gLQkJbWF4X2ZyZXEgKj0gKElTX1NLWUxBS0UoZGV2 KSA/IEdFTjlfRlJFUV9TQ0FMRVIgOiAxKTsKPiArCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFLRShk ZXYpIHx8IElTX0tBQllMQUtFKGRldikgPwo+ICsJCQkgICAgIEdFTjlfRlJFUV9TQ0FMRVIgOiAx KTsKPiAgCQlzZXFfcHJpbnRmKG0sICJOb21pbmFsIChSUDEpIGZyZXF1ZW5jeTogJWRNSHpcbiIs Cj4gIAkJCSAgIGludGVsX2dwdV9mcmVxKGRldl9wcml2LCBtYXhfZnJlcSkpOwo+ICAKPiAgCQlt YXhfZnJlcSA9IChJU19CUk9YVE9OKGRldikgPyBycF9zdGF0ZV9jYXAgPj4gMTYgOgo+ICAJCQkg ICAgcnBfc3RhdGVfY2FwID4+IDApICYgMHhmZjsKPiAtCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFL RShkZXYpID8gR0VOOV9GUkVRX1NDQUxFUiA6IDEpOwo+ICsJCW1heF9mcmVxICo9IChJU19TS1lM QUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSA/Cj4gKwkJCSAgICAgR0VOOV9GUkVRX1NDQUxF UiA6IDEpOwo+ICAJCXNlcV9wcmludGYobSwgIk1heCBub24tb3ZlcmNsb2NrZWQgKFJQMCkgZnJl cXVlbmN5OiAlZE1IelxuIiwKPiAgCQkJICAgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9m cmVxKSk7Cj4gIAkJc2VxX3ByaW50ZihtLCAiTWF4IG92ZXJjbG9ja2VkIGZyZXF1ZW5jeTogJWRN SHpcbiIsCj4gQEAgLTE4MDEsNyArMTgwNCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9yaW5nX2ZyZXFf dGFibGUoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gIAlpZiAocmV0KQo+ICAJ CWdvdG8gb3V0Owo+ICAKPiAtCWlmIChJU19TS1lMQUtFKGRldikpIHsKPiArCWlmIChJU19TS1lM QUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+ICAJCS8qIENvbnZlcnQgR1QgZnJlcXVl bmN5IHRvIDUwIEhaIHVuaXRzICovCj4gIAkJbWluX2dwdV9mcmVxID0KPiAgCQkJZGV2X3ByaXYt PnJwcy5taW5fZnJlcV9zb2Z0bGltaXQgLyBHRU45X0ZSRVFfU0NBTEVSOwo+IEBAIC0xODIxLDcg KzE4MjQsOCBAQCBzdGF0aWMgaW50IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqdW51c2VkKQo+ICAJCQkJICAgICAgICZpYV9mcmVxKTsKPiAgCQlzZXFfcHJp bnRmKG0sICIlZFx0XHQlZFx0XHRcdFx0JWRcbiIsCj4gIAkJCSAgIGludGVsX2dwdV9mcmVxKGRl dl9wcml2LCAoZ3B1X2ZyZXEgKgo+IC0JCQkJKElTX1NLWUxBS0UoZGV2KSA/IEdFTjlfRlJFUV9T Q0FMRVIgOiAxKSkpLAo+ICsJCQkJKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYp ID8KPiArCQkJCSBHRU45X0ZSRVFfU0NBTEVSIDogMSkpKSwKPiAgCQkJICAgKChpYV9mcmVxID4+ IDApICYgMHhmZikgKiAxMDAsCj4gIAkJCSAgICgoaWFfZnJlcSA+PiA4KSAmIDB4ZmYpICogMTAw KTsKPiAgCX0KPiBAQCAtNTAyOSw3ICs1MDMzLDcgQEAgc3RhdGljIHZvaWQgZ2VuOV9zc2V1X2Rl dmljZV9zdGF0dXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCj4gIAkJc3RhdC0+c2xpY2Vf dG90YWwrKzsKPiAgCj4gLQkJaWYgKElTX1NLWUxBS0UoZGV2KSkKPiArCQlpZiAoSVNfU0tZTEFL RShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gIAkJCXNzX2NudCA9IElOVEVMX0lORk8oZGV2 KS0+c3Vic2xpY2VfcGVyX3NsaWNlOwo+ICAKPiAgCQlmb3IgKHNzID0gMDsgc3MgPCBzc19tYXg7 IHNzKyspIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiBpbmRleCAyMzM2YWY5Li5kZGQxZDQ2 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCj4gQEAgLTY2OCw3ICs2NjgsOCBAQCBzdGF0 aWMgdm9pZCBnZW45X3NzZXVfaW5mb19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkg KiBzdXBwb3J0cyBFVSBwb3dlciBnYXRpbmcgb24gZGV2aWNlcyB3aXRoIG1vcmUgdGhhbiBvbmUg RVUKPiAgCSAqIHBhaXIgcGVyIHN1YnNsaWNlLgo+ICAJKi8KPiAtCWluZm8tPmhhc19zbGljZV9w ZyA9IChJU19TS1lMQUtFKGRldikgJiYgKGluZm8tPnNsaWNlX3RvdGFsID4gMSkpOwo+ICsJaW5m by0+aGFzX3NsaWNlX3BnID0gKChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkg JiYKPiArCQkJICAgICAgIChpbmZvLT5zbGljZV90b3RhbCA+IDEpKTsKPiAgCWluZm8tPmhhc19z dWJzbGljZV9wZyA9IChJU19CUk9YVE9OKGRldikgJiYgKGluZm8tPnN1YnNsaWNlX3RvdGFsID4g MSkpOwo+ICAJaW5mby0+aGFzX2V1X3BnID0gKGluZm8tPmV1X3Blcl9zdWJzbGljZSA+IDIpOwo+ ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggNzBmOWQzZC4uYzllODBmYiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IEBAIC0zOTUsNiArMzk1LDM2IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfYnJveHRvbl9pbmZvID0gewo+ICAJ SVZCX0NVUlNPUl9PRkZTRVRTLAo+ICB9Owo+ICAKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRl bF9kZXZpY2VfaW5mbyBpbnRlbF9rYWJ5bGFrZV9pbmZvID0gewo+ICsJLmlzX3ByZWxpbWluYXJ5 ID0gMSwKPiArCS5pc19rYWJ5bGFrZSA9IDEsCj4gKwkuZ2VuID0gOSwKPiArCS5udW1fcGlwZXMg PSAzLAo+ICsJLm5lZWRfZ2Z4X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkucmluZ19t YXNrID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORywKPiAr CS5oYXNfbGxjID0gMSwKPiArCS5oYXNfZGRpID0gMSwKPiArCS5oYXNfZnBnYV9kYmcgPSAxLAo+ ICsJLmhhc19mYmMgPSAxLAo+ICsJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4gKwlJVkJfQ1VS U09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rldmlj ZV9pbmZvIGludGVsX2thYnlsYWtlX2d0M19pbmZvID0gewo+ICsJLmlzX3ByZWxpbWluYXJ5ID0g MSwKPiArCS5pc19rYWJ5bGFrZSA9IDEsCj4gKwkuZ2VuID0gOSwKPiArCS5udW1fcGlwZXMgPSAz LAo+ICsJLm5lZWRfZ2Z4X2h3cyA9IDEsIC5oYXNfaG90cGx1ZyA9IDEsCj4gKwkucmluZ19tYXNr ID0gUkVOREVSX1JJTkcgfCBCU0RfUklORyB8IEJMVF9SSU5HIHwgVkVCT1hfUklORyB8IEJTRDJf UklORywKPiArCS5oYXNfbGxjID0gMSwKPiArCS5oYXNfZGRpID0gMSwKPiArCS5oYXNfZnBnYV9k YmcgPSAxLAo+ICsJLmhhc19mYmMgPSAxLAo+ICsJR0VOX0RFRkFVTFRfUElQRU9GRlNFVFMsCj4g KwlJVkJfQ1VSU09SX09GRlNFVFMsCj4gK307Cj4gKwo+ICAvKgo+ICAgKiBNYWtlIHN1cmUgYW55 IGRldmljZSBtYXRjaGVzIGhlcmUgYXJlIGZyb20gbW9zdCBzcGVjaWZpYyB0byBtb3N0Cj4gICAq IGdlbmVyYWwuICBGb3IgZXhhbXBsZSwgc2luY2UgdGhlIFF1YW50YSBtYXRjaCBpcyBiYXNlZCBv biB0aGUgc3Vic3lzdGVtCj4gQEAgLTQ2NCw3ICs0OTQsNyBAQCBzdGF0aWMgZW51bSBpbnRlbF9w Y2ggaW50ZWxfdmlydF9kZXRlY3RfcGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAl9IGVs c2UgaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkgewo+ICAJCXJldCA9 IFBDSF9MUFQ7Cj4gIAkJRFJNX0RFQlVHX0tNUygiQXNzdW1pbmcgTHlueFBvaW50IFBDSFxuIik7 Cj4gLQl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19TS1lM QUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+ICAJCXJldCA9IFBDSF9TUFQ7Cj4gIAkJ RFJNX0RFQlVHX0tNUygiQXNzdW1pbmcgU3VucmlzZVBvaW50IFBDSFxuIik7Cj4gIAl9Cj4gQEAg LTUyNywxMSArNTU3LDEzIEBAIHZvaWQgaW50ZWxfZGV0ZWN0X3BjaChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAJCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9TUFRfREVWSUNFX0lEX1RZ UEUpIHsKPiAgCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9TUFQ7Cj4gIAkJCQlEUk1fREVC VUdfS01TKCJGb3VuZCBTdW5yaXNlUG9pbnQgUENIXG4iKTsKPiAtCQkJCVdBUk5fT04oIUlTX1NL WUxBS0UoZGV2KSk7Cj4gKwkJCQlXQVJOX09OKCFJU19TS1lMQUtFKGRldikgJiYKPiArCQkJCQkh SVNfS0FCWUxBS0UoZGV2KSk7Cj4gIAkJCX0gZWxzZSBpZiAoaWQgPT0gSU5URUxfUENIX1NQVF9M UF9ERVZJQ0VfSURfVFlQRSkgewo+ICAJCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX1NQVDsK PiAgCQkJCURSTV9ERUJVR19LTVMoIkZvdW5kIFN1bnJpc2VQb2ludCBMUCBQQ0hcbiIpOwo+IC0J CQkJV0FSTl9PTighSVNfU0tZTEFLRShkZXYpKTsKPiArCQkJCVdBUk5fT04oIUlTX1NLWUxBS0Uo ZGV2KSAmJgo+ICsJCQkJCSFJU19LQUJZTEFLRShkZXYpKTsKPiAgCQkJfSBlbHNlIGlmIChpZCA9 PSBJTlRFTF9QQ0hfUDJYX0RFVklDRV9JRF9UWVBFKSB7Cj4gIAkJCQlkZXZfcHJpdi0+cGNoX3R5 cGUgPSBpbnRlbF92aXJ0X2RldGVjdF9wY2goZGV2KTsKPiAgCQkJfSBlbHNlCj4gQEAgLTgzOSw3 ICs4NzEsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZV9lYXJseShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAKPiAgCWlmIChJU19CUk9YVE9OKGRldikpCj4gIAkJcmV0ID0gYnh0X3Jl c3VtZV9wcmVwYXJlKGRldl9wcml2KTsKPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYp KQo+ICsJZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3By aXYpKQo+ICAJCXJldCA9IHNrbF9yZXN1bWVfcHJlcGFyZShkZXZfcHJpdik7Cj4gIAllbHNlIGlm IChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCWhz d19kaXNhYmxlX3BjOChkZXZfcHJpdik7Cj4gQEAgLTE1ODYsNyArMTYxOCw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKQo+ICAKPiAgCWlm IChJU19CUk9YVE9OKGRldikpCj4gIAkJcmV0ID0gYnh0X3Jlc3VtZV9wcmVwYXJlKGRldl9wcml2 KTsKPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSkKPiArCWVsc2UgaWYgKElTX1NLWUxBS0Uo ZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKQo+ICAJCXJldCA9IHNrbF9yZXN1bWVfcHJlcGFyZShk ZXZfcHJpdik7Cj4gIAllbHNlIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdF TEwoZGV2X3ByaXYpKQo+ICAJCWhzd19kaXNhYmxlX3BjOChkZXZfcHJpdik7Cj4gQEAgLTE2MzAs NyArMTY2Miw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfc3VzcGVuZF9jb21wbGV0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAo+ICAJaWYgKElTX0JST1hUT04oZGV2X3ByaXYp KQo+ICAJCXJldCA9IGJ4dF9zdXNwZW5kX2NvbXBsZXRlKGRldl9wcml2KTsKPiAtCWVsc2UgaWYg KElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ICsJZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikg fHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICAJCXJldCA9IHNrbF9zdXNwZW5kX2NvbXBsZXRl KGRldl9wcml2KTsKPiAgCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FE V0VMTChkZXZfcHJpdikpCj4gIAkJcmV0ID0gaHN3X3N1c3BlbmRfY29tcGxldGUoZGV2X3ByaXYp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDU2NWU2M2EuLjM5ODJkMWEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtNzY2LDYgKzc2Niw3IEBAIHN0cnVjdCBpbnRl bF9jc3Igewo+ICAJZnVuYyhpc19oYXN3ZWxsKSBzZXAgXAo+ICAJZnVuYyhpc19za3lsYWtlKSBz ZXAgXAo+ICAJZnVuYyhpc19icm94dG9uKSBzZXAgXAo+ICsJZnVuYyhpc19rYWJ5bGFrZSkgc2Vw IFwKPiAgCWZ1bmMoaXNfcHJlbGltaW5hcnkpIHNlcCBcCj4gIAlmdW5jKGhhc19mYmMpIHNlcCBc Cj4gIAlmdW5jKGhhc19waXBlX2N4c3IpIHNlcCBcCj4gQEAgLTI0NzcsNiArMjQ3OCw3IEBAIHN0 cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewo+ICAjZGVmaW5lIElTX0JST0FEV0VMTChkZXYpCSgh SU5URUxfSU5GTyhkZXYpLT5pc192YWxsZXl2aWV3ICYmIElTX0dFTjgoZGV2KSkKPiAgI2RlZmlu ZSBJU19TS1lMQUtFKGRldikJKElOVEVMX0lORk8oZGV2KS0+aXNfc2t5bGFrZSkKPiAgI2RlZmlu ZSBJU19CUk9YVE9OKGRldikJCShJTlRFTF9JTkZPKGRldiktPmlzX2Jyb3h0b24pCj4gKyNkZWZp bmUgSVNfS0FCWUxBS0UoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19rYWJ5bGFrZSkKPiAgI2Rl ZmluZSBJU19NT0JJTEUoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aXNfbW9iaWxlKQo+ICAjZGVm aW5lIElTX0hTV19FQVJMWV9TRFYoZGV2KQkoSVNfSEFTV0VMTChkZXYpICYmIFwKPiAgCQkJCSAo SU5URUxfREVWSUQoZGV2KSAmIDB4RkYwMCkgPT0gMHgwQzAwKQo+IEBAIC0yNTk3LDEwICsyNTk5 LDEwIEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewo+ICAjZGVmaW5lIEhBU19GUEdBX0RC R19VTkNMQUlNRUQoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5oYXNfZnBnYV9kYmcpCj4gICNkZWZp bmUgSEFTX1BTUihkZXYpCQkoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpIHx8 IFwKPiAgCQkJCSBJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpIHx8IFwK PiAtCQkJCSBJU19TS1lMQUtFKGRldikpCj4gKwkJCQkgSVNfU0tZTEFLRShkZXYpIHx8IElTX0tB QllMQUtFKGRldikpCj4gICNkZWZpbmUgSEFTX1JVTlRJTUVfUE0oZGV2KQkoSVNfR0VONihkZXYp IHx8IElTX0hBU1dFTEwoZGV2KSB8fCBcCj4gIAkJCQkgSVNfQlJPQURXRUxMKGRldikgfHwgSVNf VkFMTEVZVklFVyhkZXYpIHx8IFwKPiAtCQkJCSBJU19TS1lMQUtFKGRldikpCj4gKwkJCQkgSVNf U0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gICNkZWZpbmUgSEFTX1JDNihkZXYp CQkoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNikKPiAgI2RlZmluZSBIQVNfUkM2cChkZXYpCQko SU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gNiB8fCBJU19JVllCUklER0UoZGV2KSkKPiAgCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiBpbmRleCBjZGFjZjNmLi41OThlZDJm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiBAQCAtNDMzLDcg KzQzMyw4IEBAIGludCBpOTE1X2dlbV9pbml0X3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJCQkJCSAmcmVzZXJ2ZWRfc2l6ZSk7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+IC0J CWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ICsJ CWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8Cj4gKwkJICAgIElTX1NLWUxBS0UoZGV2X3By aXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gIAkJCWJkd19nZXRfc3RvbGVuX3Jlc2VydmVkKGRl dl9wcml2LCAmcmVzZXJ2ZWRfYmFzZSwKPiAgCQkJCQkJJnJlc2VydmVkX3NpemUpOwo+ICAJCWVs c2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiBpbmRleCA0ZGNjZDliLi42M2Q0NzA2 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gQEAgLTU5MSw3ICs1OTEsNyBA QCBzdGF0aWMgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jb2RlY193YWtlX292ZXJyaWRlKHN0 cnVjdCBkZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldl90b19pOTE1KGRldik7Cj4gIAl1MzIgdG1wOwo+ICAKPiAtCWlmICghSVNfU0tZTEFLRShk ZXZfcHJpdikpCj4gKwlpZiAoIUlTX1NLWUxBS0UoZGV2X3ByaXYpICYmICFJU19LQUJZTEFLRShk ZXZfcHJpdikpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCS8qCj4gQEAgLTY0MiwxMCArNjQyLDExIEBA IHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRpb19yYXRlKHN0cnVjdCBk ZXZpY2UgKmRldiwKPiAgCXUzMiB0bXA7Cj4gIAlpbnQgbjsKPiAgCj4gLQkvKiBIU1csIEJEVyBT S0wgbmVlZCB0aGlzIGZpeCAqLwo+ICsJLyogSFNXLCBCRFcsIFNLTCwgS0JMIG5lZWQgdGhpcyBm aXggKi8KPiAgCWlmICghSVNfU0tZTEFLRShkZXZfcHJpdikgJiYKPiAtCQkhSVNfQlJPQURXRUxM KGRldl9wcml2KSAmJgo+IC0JCSFJU19IQVNXRUxMKGRldl9wcml2KSkKPiArCSAgICAhSVNfS0FC WUxBS0UoZGV2X3ByaXYpICYmCj4gKwkgICAgIUlTX0JST0FEV0VMTChkZXZfcHJpdikgJiYKPiAr CSAgICAhSVNfSEFTV0VMTChkZXZfcHJpdikpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJbXV0ZXhf bG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGlu ZGV4IGExNjM3NDEuLjhkZDlmYWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBA IC00NDgsNyArNDQ4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCwKPiAgCQlieHRfZGRpX3Zzd2lu Z19zZXF1ZW5jZShkZXYsIGhkbWlfbGV2ZWwsIHBvcnQsCj4gIAkJCQkJSU5URUxfT1VUUFVUX0hE TUkpOwo+ICAJCXJldHVybjsKPiAtCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXYpKSB7Cj4gKwl9 IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKSB7Cj4gIAkJZGRp X3RyYW5zbGF0aW9uc19mZGkgPSBOVUxMOwo+ICAJCWRkaV90cmFuc2xhdGlvbnNfZHAgPQo+ICAJ CQkJc2tsX2dldF9idWZfdHJhbnNfZHAoZGV2LCAmbl9kcF9lbnRyaWVzKTsKPiBAQCAtMTE4NCw3 ICsxMTg0LDcgQEAgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA4KQo+ICAJCWhz d19kZGlfY2xvY2tfZ2V0KGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiAtCWVsc2UgaWYgKElTX1NL WUxBS0UoZGV2KSkKPiArCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShk ZXYpKQo+ICAJCXNrbF9kZGlfY2xvY2tfZ2V0KGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiAgCWVs c2UgaWYgKElTX0JST1hUT04oZGV2KSkKPiAgCQlieHRfZGRpX2Nsb2NrX2dldChlbmNvZGVyLCBw aXBlX2NvbmZpZyk7Cj4gQEAgLTE3NjgsNyArMTc2OCw3IEBAIGJvb2wgaW50ZWxfZGRpX3BsbF9z ZWxlY3Qoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlciA9Cj4gIAkJaW50ZWxfZGRpX2dldF9jcnRjX25ld19lbmNvZGVy KGNydGNfc3RhdGUpOwo+ICAKPiAtCWlmIChJU19TS1lMQUtFKGRldikpCj4gKwlpZiAoSVNfU0tZ TEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpCj4gIAkJcmV0dXJuIHNrbF9kZGlfcGxsX3Nl bGVjdChpbnRlbF9jcnRjLCBjcnRjX3N0YXRlLAo+ICAJCQkJCSAgaW50ZWxfZW5jb2Rlcik7Cj4g IAllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCj4gQEAgLTIyNTEsNyArMjI1MSw3IEBAIHVpbnQz Ml90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICAJ bGV2ZWwgPSB0cmFuc2xhdGVfc2lnbmFsX2xldmVsKHNpZ25hbF9sZXZlbHMpOwo+ICAKPiAtCWlm IChJU19TS1lMQUtFKGRldikpCj4gKwlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtF KGRldikpCj4gIAkJc2tsX2RkaV9zZXRfaWJvb3N0KGRldiwgbGV2ZWwsIHBvcnQsIGVuY29kZXIt PnR5cGUpOwo+ICAJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+ICAJCWJ4dF9kZGlfdnN3aW5n X3NlcXVlbmNlKGRldiwgbGV2ZWwsIHBvcnQsIGVuY29kZXItPnR5cGUpOwo+IEBAIC0yMjc0LDcg KzIyNzQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgCQlpbnRlbF9lZHBfcGFuZWxfb24oaW50ZWxfZHAp Owo+ICAJfQo+ICAKPiAtCWlmIChJU19TS1lMQUtFKGRldikpIHsKPiArCWlmIChJU19TS1lMQUtF KGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkgewo+ICAJCXVpbnQzMl90IGRwbGwgPSBjcnRjLT5j b25maWctPmRkaV9wbGxfc2VsOwo+ICAJCXVpbnQzMl90IHZhbDsKPiAgCj4gQEAgLTIzNjksNyAr MjM2OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4gIAkJaW50ZWxfZWRwX3BhbmVsX29mZihpbnRlbF9k cCk7Cj4gIAl9Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2KSkKPiArCWlmIChJU19TS1lMQUtF KGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkKPiAgCQlJOTE1X1dSSVRFKERQTExfQ1RSTDIsIChJ OTE1X1JFQUQoRFBMTF9DVFJMMikgfAo+ICAJCQkJCURQTExfQ1RSTDJfRERJX0NMS19PRkYocG9y dCkpKTsKPiAgCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOSkKPiBAQCAtMjkzNywx NCArMjkzNywxNCBAQCB2b2lkIGludGVsX2RkaV9wbGxfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiAgCXVpbnQzMl90IHZhbCA9IEk5MTVfUkVBRChMQ1BMTF9DVEwpOwo+ICAKPiAtCWlm IChJU19TS1lMQUtFKGRldikpCj4gKwlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtF KGRldikpCj4gIAkJc2tsX3NoYXJlZF9kcGxsc19pbml0KGRldl9wcml2KTsKPiAgCWVsc2UgaWYg KElTX0JST1hUT04oZGV2KSkKPiAgCQlieHRfc2hhcmVkX2RwbGxzX2luaXQoZGV2X3ByaXYpOwo+ ICAJZWxzZQo+ICAJCWhzd19zaGFyZWRfZHBsbHNfaW5pdChkZXZfcHJpdik7Cj4gIAo+IC0JaWYg KElTX1NLWUxBS0UoZGV2KSkgewo+ICsJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFL RShkZXYpKSB7Cj4gIAkJaW50IGNkY2xrX2ZyZXE7Cj4gIAo+ICAJCWNkY2xrX2ZyZXEgPSBkZXZf cHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9jbG9ja19zcGVlZChkZXYpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAzMzkwZmNjLi5mMTliMzA2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC01MzAxLDcgKzUzMDEsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g IHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ICsJaWYgKElTX1NLWUxBS0UoZGV2 KSB8fCBJU19LQUJZTEFLRShkZXYpKSB7Cj4gIAkJdTMyIGxpbWl0ID0gSTkxNV9SRUFEKFNLTF9E RlNNKSAmIFNLTF9ERlNNX0NEQ0xLX0xJTUlUX01BU0s7Cj4gIAo+ICAJCWlmIChsaW1pdCA9PSBT S0xfREZTTV9DRENMS19MSU1JVF82NzUpCj4gQEAgLTk3NDcsNyArOTc0Nyw3IEBAIHN0YXRpYyB2 b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ ICAKPiAgCXBvcnQgPSAodG1wICYgVFJBTlNfRERJX1BPUlRfTUFTSykgPj4gVFJBTlNfRERJX1BP UlRfU0hJRlQ7Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2KSkKPiArCWlmIChJU19TS1lMQUtF KGRldikgfHwgSVNfS0FCWUxBS0UoZGV2KSkKPiAgCQlza3lsYWtlX2dldF9kZGlfcGxsKGRldl9w cml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7Cj4gIAllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCj4g IAkJYnh0X2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7Cj4gQEAgLTEy MDMxLDcgKzEyMDMxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJICAgICAgcGlwZV9jb25maWctPmRwbGxfaHdfc3Rh dGUucGxsOSwKPiAgCQkJICAgICAgcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUucGxsMTAsCj4g IAkJCSAgICAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLnBjc2R3MTIpOwo+IC0JfSBlbHNl IGlmIChJU19TS1lMQUtFKGRldikpIHsKPiArCX0gZWxzZSBpZiAoSVNfU0tZTEFLRShkZXYpIHx8 IElTX0tBQllMQUtFKGRldikpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJkZGlfcGxsX3NlbDogJXU7 IGRwbGxfaHdfc3RhdGU6ICIKPiAgCQkJICAgICAgImN0cmwxOiAweCV4LCBjZmdjcjE6IDB4JXgs IGNmZ2NyMjogMHgleFxuIiwKPiAgCQkJICAgICAgcGlwZV9jb25maWctPmRkaV9wbGxfc2VsLAo+ IEBAIC0xNDA5MCw3ICsxNDA5MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkgKi8KPiAgCQlmb3VuZCA9IEk5MTVfUkVBRChE RElfQlVGX0NUTChQT1JUX0EpKSAmIERESV9JTklUX0RJU1BMQVlfREVURUNURUQ7Cj4gIAkJLyog V2FJZ25vcmVERElBU3RyYXA6IHNrbCAqLwo+IC0JCWlmIChmb3VuZCB8fCBJU19TS1lMQUtFKGRl dikpCj4gKwkJaWYgKGZvdW5kIHx8IElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYp KQo+ICAJCQlpbnRlbF9kZGlfaW5pdChkZXYsIFBPUlRfQSk7Cj4gIAo+ICAJCS8qIERESSBCLCBD IGFuZCBEIGRldGVjdGlvbiBpcyBpbmRpY2F0ZWQgYnkgdGhlIFNGVVNFX1NUUkFQCj4gQEAgLTE0 MTA2LDcgKzE0MTA2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAJCS8qCj4gIAkJICogT24gU0tMIHdlIGRvbid0IGhhdmUgYSB3 YXkgdG8gZGV0ZWN0IERESS1FIHNvIHdlIHJlbHkgb24gVkJULgo+ICAJCSAqLwo+IC0JCWlmIChJ U19TS1lMQUtFKGRldikgJiYKPiArCQlpZiAoKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFL RShkZXYpKSAmJgo+ICAJCSAgICAoZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRfRV0u c3VwcG9ydHNfZHAgfHwKPiAgCQkgICAgIGRldl9wcml2LT52YnQuZGRpX3BvcnRfaW5mb1tQT1JU X0VdLnN1cHBvcnRzX2R2aSB8fAo+ICAJCSAgICAgZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZv W1BPUlRfRV0uc3VwcG9ydHNfaGRtaSkpCj4gQEAgLTE0NTUxLDcgKzE0NTUxLDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfaW5pdF9kaXNwbGF5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAl9Cj4g IAo+ICAJLyogUmV0dXJucyB0aGUgY29yZSBkaXNwbGF5IGNsb2NrIHNwZWVkICovCj4gLQlpZiAo SVNfU0tZTEFLRShkZXYpKQo+ICsJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShk ZXYpKQo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiAg CQkJc2t5bGFrZV9nZXRfZGlzcGxheV9jbG9ja19zcGVlZDsKPiAgCWVsc2UgaWYgKElTX0JST1hU T04oZGV2KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCA4Mjg3ZGY0Li4xY2IxZjNm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTEwMjMsNyArMTAyMyw3IEBAIGlu dGVsX2RwX2F1eF9pbml0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCS8qIE9uIFNLTCB3ZSBkb24ndCBoYXZlIEF1eCBmb3Ig cG9ydCBFIHNvIHdlIHJlbHkgb24gVkJUIHRvIHNldAo+ICAJICogYSBwcm9wZXIgYWx0ZXJuYXRl IGF1eCBjaGFubmVsLgo+ICAJICovCj4gLQlpZiAoSVNfU0tZTEFLRShkZXYpICYmIHBvcnQgPT0g UE9SVF9FKSB7Cj4gKwlpZiAoKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKSAm JiBwb3J0ID09IFBPUlRfRSkgewo+ICAJCXN3aXRjaCAoaW5mby0+YWx0ZXJuYXRlX2F1eF9jaGFu bmVsKSB7Cj4gIAkJY2FzZSBEUF9BVVhfQjoKPiAgCQkJcG9ydGVfYXV4X2N0bF9yZWcgPSBEUEJf QVVYX0NIX0NUTDsKPiBAQCAtMTIxMCw3ICsxMjEwLDcgQEAgaW50ZWxfZHBfc291cmNlX3JhdGVz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNvbnN0IGludCAqKnNvdXJjZV9yYXRlcykKPiAgCWlm IChJU19CUk9YVE9OKGRldikpIHsKPiAgCQkqc291cmNlX3JhdGVzID0gYnh0X3JhdGVzOwo+ICAJ CXNpemUgPSBBUlJBWV9TSVpFKGJ4dF9yYXRlcyk7Cj4gLQl9IGVsc2UgaWYgKElTX1NLWUxBS0Uo ZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2 KSkgewo+ICAJCSpzb3VyY2VfcmF0ZXMgPSBza2xfcmF0ZXM7Cj4gIAkJc2l6ZSA9IEFSUkFZX1NJ WkUoc2tsX3JhdGVzKTsKPiAgCX0gZWxzZSB7Cj4gQEAgLTE1MzAsNyArMTUzMCw3IEBAIGZvdW5k Ogo+ICAJCQkJJnBpcGVfY29uZmlnLT5kcF9tMl9uMik7Cj4gIAl9Cj4gIAo+IC0JaWYgKElTX1NL WUxBS0UoZGV2KSAmJiBpc19lZHAoaW50ZWxfZHApKQo+ICsJaWYgKChJU19TS1lMQUtFKGRldikg IHx8IElTX0tBQllMQUtFKGRldikpICYmIGlzX2VkcChpbnRlbF9kcCkpCj4gIAkJc2tsX2VkcF9z ZXRfcGxsX2NvbmZpZyhwaXBlX2NvbmZpZyk7Cj4gIAllbHNlIGlmIChJU19CUk9YVE9OKGRldikp Cj4gIAkJLyogaGFuZGxlZCBpbiBkZGkgKi87Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBp bmRleCBjZjQ3MzUyLi5mZGE1ZmM1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiBA QCAtNTgxLDcgKzU4MSw4IEBAIHN0YXRpYyBpbnQgZmluZF9jb21wcmVzc2lvbl90aHJlc2hvbGQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJICogcmVzZXJ2ZWQgcmFuZ2Ug c2l6ZSwgc28gaXQgYWx3YXlzIGFzc3VtZXMgdGhlIG1heGltdW0gKDhtYikgaXMgdXNlZC4KPiAg CSAqIElmIHdlIGVuYWJsZSBGQkMgdXNpbmcgYSBDRkIgb24gdGhhdCBtZW1vcnkgcmFuZ2Ugd2Un bGwgZ2V0IEZJRk8KPiAgCSAqIHVuZGVycnVucywgZXZlbiBpZiB0aGF0IHJhbmdlIGlzIG5vdCBy ZXNlcnZlZCBieSB0aGUgQklPUy4gKi8KPiAtCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8 IElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwK PiArCSAgICBJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCj4g IAkJZW5kID0gZGV2X3ByaXYtPmd0dC5zdG9sZW5fc2l6ZSAtIDggKiAxMDI0ICogMTAyNDsKPiAg CWVsc2UKPiAgCQllbmQgPSBkZXZfcHJpdi0+Z3R0LnN0b2xlbl91c2FibGVfc2l6ZTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9pMmMuYwo+IGluZGV4IDEzNjlmYzQuLmJkNThkYTAgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9pMmMuYwo+IEBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZ21idXNfcGluICpnZXRfZ21idXNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgewo+ICAJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJCXJldHVybiAmZ21i dXNfcGluc19ieHRbcGluXTsKPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ICsJ ZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ ICAJCXJldHVybiAmZ21idXNfcGluc19za2xbcGluXTsKPiAgCWVsc2UgaWYgKElTX0JST0FEV0VM TChkZXZfcHJpdikpCj4gIAkJcmV0dXJuICZnbWJ1c19waW5zX2Jkd1twaW5dOwo+IEBAIC04OSw3 ICs4OSw3IEBAIGJvb2wgaW50ZWxfZ21idXNfaXNfdmFsaWRfcGluKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIAlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJ c2l6ZSA9IEFSUkFZX1NJWkUoZ21idXNfcGluc19ieHQpOwo+IC0JZWxzZSBpZiAoSVNfU0tZTEFL RShkZXZfcHJpdikpCj4gKwllbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZ TEFLRShkZXZfcHJpdikpCj4gIAkJc2l6ZSA9IEFSUkFZX1NJWkUoZ21idXNfcGluc19za2wpOwo+ ICAJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiAgCQlzaXplID0gQVJSQVlfU0la RShnbWJ1c19waW5zX2Jkdyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX21vY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYwo+IGluZGV4IDZk M2M2YzAuLmIyNThhMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bW9jcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jCj4gQEAgLTE0 Myw3ICsxNDMsNyBAQCBzdGF0aWMgYm9vbCBnZXRfbW9jc19zZXR0aW5ncyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ICB7Cj4gIAlib29sIHJlc3VsdCA9IGZhbHNlOwo+ICAKPiAtCWlmIChJU19T S1lMQUtFKGRldikpIHsKPiArCWlmIChJU19TS1lMQUtFKGRldikgfHwgSVNfS0FCWUxBS0UoZGV2 KSkgewo+ICAJCXRhYmxlLT5zaXplICA9IEFSUkFZX1NJWkUoc2t5bGFrZV9tb2NzX3RhYmxlKTsK PiAgCQl0YWJsZS0+dGFibGUgPSBza3lsYWtlX21vY3NfdGFibGU7Cj4gIAkJcmVzdWx0ID0gdHJ1 ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCA3YjExMGNkLi5kZDYzYmJhIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTQ1NjcsNyArNDU2Nyw4IEBAIHN0YXRpYyB2 b2lkIGdlbjZfaW5pdF9ycHNfZnJlcXVlbmNpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg CWRldl9wcml2LT5ycHMubWF4X2ZyZXEJCT0gZGV2X3ByaXYtPnJwcy5ycDBfZnJlcTsKPiAgCj4g IAlkZXZfcHJpdi0+cnBzLmVmZmljaWVudF9mcmVxID0gZGV2X3ByaXYtPnJwcy5ycDFfZnJlcTsK PiAtCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikgfHwgSVNfU0tZTEFL RShkZXYpKSB7Cj4gKwlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpIHx8 Cj4gKwkgICAgSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKPiAgCQlyZXQg PSBzYW5keWJyaWRnZV9wY29kZV9yZWFkKGRldl9wcml2LAo+ICAJCQkJCUhTV19QQ09ERV9EWU5B TUlDX0RVVFlfQ1lDTEVfQ09OVFJPTCwKPiAgCQkJCQkmZGRjY19zdGF0dXMpOwo+IEBAIC00NTc5 LDcgKzQ1ODAsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2luaXRfcnBzX2ZyZXF1ZW5jaWVzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJCQkJZGV2X3ByaXYtPnJwcy5tYXhfZnJlcSk7Cj4gIAl9 Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2KSkgewo+ICsJaWYgKElTX1NLWUxBS0UoZGV2KSB8 fCBJU19LQUJZTEFLRShkZXYpKSB7Cj4gIAkJLyogU3RvcmUgdGhlIGZyZXF1ZW5jeSB2YWx1ZXMg aW4gMTYuNjYgTUhaIHVuaXRzLCB3aGljaCBpcwo+ICAJCSAgIHRoZSBuYXR1cmFsIGhhcmR3YXJl IHVuaXQgZm9yIFNLTCAqLwo+ICAJCWRldl9wcml2LT5ycHMucnAwX2ZyZXEgKj0gR0VOOV9GUkVR X1NDQUxFUjsKPiBAQCAtNDkzNSw3ICs0OTM2LDcgQEAgc3RhdGljIHZvaWQgX19nZW42X3VwZGF0 ZV9yaW5nX2ZyZXEoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCS8qIGNvbnZlcnQgRERSIGZy ZXF1ZW5jeSBmcm9tIHVuaXRzIG9mIDI2Ni42TUh6IHRvIGJhbmR3aWR0aCAqLwo+ICAJbWluX3Jp bmdfZnJlcSA9IG11bHRfZnJhYyhtaW5fcmluZ19mcmVxLCA4LCAzKTsKPiAgCj4gLQlpZiAoSVNf U0tZTEFLRShkZXYpKSB7Cj4gKwlpZiAoSVNfU0tZTEFLRShkZXYpIHx8IElTX0tBQllMQUtFKGRl dikpIHsKPiAgCQkvKiBDb252ZXJ0IEdUIGZyZXF1ZW5jeSB0byA1MCBIWiB1bml0cyAqLwo+ICAJ CW1pbl9ncHVfZnJlcSA9IGRldl9wcml2LT5ycHMubWluX2ZyZXEgLyBHRU45X0ZSRVFfU0NBTEVS Owo+ICAJCW1heF9ncHVfZnJlcSA9IGRldl9wcml2LT5ycHMubWF4X2ZyZXEgLyBHRU45X0ZSRVFf U0NBTEVSOwo+IEBAIC00OTUzLDcgKzQ5NTQsNyBAQCBzdGF0aWMgdm9pZCBfX2dlbjZfdXBkYXRl X3JpbmdfZnJlcShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCWludCBkaWZmID0gbWF4X2dw dV9mcmVxIC0gZ3B1X2ZyZXE7Cj4gIAkJdW5zaWduZWQgaW50IGlhX2ZyZXEgPSAwLCByaW5nX2Zy ZXEgPSAwOwo+ICAKPiAtCQlpZiAoSVNfU0tZTEFLRShkZXYpKSB7Cj4gKwkJaWYgKElTX1NLWUxB S0UoZGV2KSB8fCBJU19LQUJZTEFLRShkZXYpKSB7Cj4gIAkJCS8qCj4gIAkJCSAqIHJpbmdfZnJl cSA9IDIgKiBHVC4gcmluZ19mcmVxIGlzIGluIDEwME1IeiB1bml0cwo+ICAJCQkgKiBObyBmbG9v ciByZXF1aXJlZCBmb3IgcmluZyBmcmVxdWVuY3kgb24gU0tMLgo+IEBAIC02MDgxLDcgKzYwODIs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9nZW42X3Bvd2Vyc2F2ZV93b3JrKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKPiAgCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+ ICAJCWdlbjlfZW5hYmxlX3JjNihkZXYpOwo+ICAJCWdlbjlfZW5hYmxlX3JwcyhkZXYpOwo+IC0J CWlmIChJU19TS1lMQUtFKGRldikpCj4gKwkJaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19LQUJZ TEFLRShkZXYpKQo+ICAJCQlfX2dlbjZfdXBkYXRlX3JpbmdfZnJlcShkZXYpOwo+ICAJfSBlbHNl IGlmIChJU19CUk9BRFdFTEwoZGV2KSkgewo+ICAJCWdlbjhfZW5hYmxlX3JwcyhkZXYpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBpbmRleCBlNTBjYzg4Li4xMDE3 NTU1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IEBAIC0x ODMyLDcgKzE4MzIsNyBAQCBpbnQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlu cywgaHN3X3Bvd2VyX3dlbGxzKTsKPiAgCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2 LT5kZXYpKSB7Cj4gIAkJc2V0X3Bvd2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIGJkd19wb3dlcl93 ZWxscyk7Cj4gLQl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYtPmRldikpIHsKPiArCX0g ZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdi0+ZGV2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJp di0+ZGV2KSkgewo+ICAJCXNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBza2xfcG93ZXJf d2VsbHMpOwo+ICAJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2LT5kZXYpKSB7Cj4gIAkJ c2V0X3Bvd2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIGJ4dF9wb3dlcl93ZWxscyk7Cj4gLS0gCj4g Mi40LjMKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVy Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==