From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 2/3] drm/i915/icl: Fix TypeC legacy HDMI HPD handling Date: Sat, 15 Dec 2018 01:25:45 +0200 Message-ID: <20181214232545.GA21061@ideak-desk.fi.intel.com> References: <20181213194850.25406-1-imre.deak@intel.com> <20181213194850.25406-3-imre.deak@intel.com> <20181213210651.GC1681@intel.com> <20181213232507.GA26382@ideak-desk.fi.intel.com> <20181214222209.GB31365@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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8559F6F6EA for ; Fri, 14 Dec 2018 23:25:48 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181214222209.GB31365@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBEZWMgMTQsIDIwMTggYXQgMDI6MjI6MDlQTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIEZyaSwgRGVjIDE0LCAyMDE4IGF0IDAxOjI1OjA3QU0gKzAyMDAsIEltcmUgRGVh ayB3cm90ZToKPiA+IE9uIFRodSwgRGVjIDEzLCAyMDE4IGF0IDAxOjA2OjUxUE0gLTA4MDAsIFJv ZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gT24gVGh1LCBEZWMgMTMsIDIwMTggYXQgMDk6NDg6NDlQ TSArMDIwMCwgSW1yZSBEZWFrIHdyb3RlOgo+ID4gPiA+IEF0bSBIUEQgZGlzY29ubmVjdCBldmVu dHMgb24gVHlwZUMgcG9ydHMgd2lsbCBicmVhayB0aGluZ3MsIHNpbmNlIHdlJ2xsCj4gPiA+ID4g c3dpdGNoIHRoZSBUeXBlQyBtb2RlIChiZXR3ZWVuIExlZ2FjeSBhbmQgZGlzY29ubmVjdGVkIG1v ZGVzIGFzIHdlbGwgYXMKPiA+ID4gPiBhbW9uZyBVU0IgRFAgYWx0ZXJuYXRlLCBUaHVuZGVyYm9s dCBhbHRlcm5hdGUgYW5kIGRpc2Nvbm5lY3RlZCBtb2Rlcykgb24KPiA+ID4gPiB0aGUgZmx5IGZy b20gdGhlIEhQRCBkaXNjb25uZWN0IGludGVycnVwdCB3b3JrIHdoaWxlIHRoZSBwb3J0IG1heSBi ZQo+ID4gPiA+IHN0aWxsIGFjdGl2ZS4KPiA+ID4gPiAKPiA+ID4gPiBFdmVuIGlmIHRoZSBwb3J0 IGhhcHBlbnMgdG8gYmUgbm90IGFjdGl2ZSBkdXJpbmcgdGhlIGRpc2Nvbm5lY3Qgd2UnZAo+ID4g PiA+IHN0aWxsIGhhdmUgYSBwcm9ibGVtIGR1cmluZyBhIHN1YnNlcXVlbnQgbW9kZXNldCBvciBB VVggdHJhbnNmZXIgdGhhdAo+ID4gPiA+IGNvdWxkIGhhcHBlbiByZWdhcmRsZXNzIG9mIHRoZSBw b3J0J3MgY29ubmVjdGVkIHN0YXRlLiBGb3IgaW5zdGFuY2UgdGhlCj4gPiA+ID4gc3lzdGVtIHJl c3VtZSBkaXNwbGF5IG1vZGUgcmVzdG9yZSBjb2RlIGFuZCB1c2Vyc3BhY2UgY291bGQgcGVyZm9y bSBhCj4gPiA+ID4gbW9kZXNldCBvbiB0aGUgcG9ydCBvciB1c2Vyc3BhY2UgY291bGQgc3RhcnQg YW4gQVVYIHRyYW5zZmVyIGV2ZW4gaWYgdGhlCj4gPiA+ID4gcG9ydCBpcyBpbiBkaXNjb25uZWN0 ZWQgc3RhdGUuCj4gPiA+ID4gCj4gPiA+ID4gVG8gZml4IHRoaXMga2VlcCBsZWdhY3kgVHlwZUMg cG9ydHMgaW4gVHlwZUMgbGVnYWN5IG1vZGUgd2hlbmV2ZXIgd2UncmUKPiA+ID4gPiBub3Qgc3Vz cGVuZGVkLiBUaGUgbGVnYWN5IG1vZGUgaXMgYSBzdGF0aWMgY29uZmlndXJhdGlvbiBhcyBvcHBv c2VkIHRvCj4gPiA+ID4gdGhlIFRodW5kZXJib2x0IGFuZCBVU0IgRFAgYWx0ZXJuYXRlIG1vZGVz IGJldHdlZW4gd2hpY2ggd2UgY2FuIHN3aXRjaAo+ID4gPiA+IGR5bmFtaWNhbGx5Lgo+ID4gPiA+ IAo+ID4gPiA+IFdlIGRvbid0IGhhdmUgeWV0IGFuIGV4cGxpY2l0IHdheSB0byBkZXRlY3QgVHlw ZUMgbGVnYWN5IHBvcnRzLCBidXQgd2UKPiA+ID4gPiBjYW4gaW1wbHkgdGhhdCBhdCBsZWFzdCBp biBjYXNlIG9mIEhETUkgZW5hYmxlZCBwb3J0cywgc2luY2UgSERNSSBjYW4KPiA+ID4gPiBvbmx5 IGJlIHByb3ZpZGVkIGluIGxlZ2FjeSBtb2RlLiBTbyBtYXJrIFR5cGVDIEhETUkgZW5hYmxlZCBw b3J0cyBhcwo+ID4gPiA+IGxlZ2FjeSBhbmQgcnVuIHRoZSBUeXBlQyBQSFkgY29ubmVjdCBzZXF1 ZW5jZSBleHBsaWNpdGx5IGR1cmluZyBkcml2ZXIKPiA+ID4gPiBsb2FkaW5nIGFuZCBzeXN0ZW0g cmVzdW1lLiBUaGUgY29ubmVjdCB3aWxsIHN1Y2NlZWQgZXZlbiBpZiB0aGUgZGlzcGxheQo+ID4g PiA+IGlzIG5vdCBjb25uZWN0ZWQgdG8gYmVnaW4gd2l0aCAob3IgZGlzYXBwZWFycyBkdXJpbmcg dGhlIHN1c3BlbmRlZAo+ID4gPiA+IHN0YXRlKSBzaW5jZSBmb3IgbGVnYWN5IHBvcnRzIHRoZSBQ T1JUX1RYX0RGTEVYRFBQTVMgLwo+ID4gPiA+IERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQg ZmxhZyBpcyBhbHdheXMgc2V0IChhcyBvcHBvc2VkIHRvIHRoZSBVU0IKPiA+ID4gPiBEUCBhbHRl cm5hdGUgbW9kZSB3aGVyZSBpdCBnZXRzIHNldCBvbmx5IHdoZW4gYSBkaXNwbGF5IGlzIGNvbm5l Y3RlZCkuCj4gPiA+ID4gCj4gPiA+ID4gQ29ycmVzcG9uZGluZ2x5IHJ1biB0aGUgVHlwZUMgUEhZ IGRpc2Nvbm5lY3Qgc2VxdWVuY2UgZHVyaW5nIHN5c3RlbQo+ID4gPiA+IHN1c3BlbmQgYW5kIGRy aXZlciB1bmxvYWRpbmcsIGJ1dCBkaXNjb25uZWN0IGR1cmluZyBzdXNwZW5kIG9ubHkgZm9yCj4g PiA+ID4gbGVnYWN5IFR5cGVDIG1vZGUuIFdlIHdpbGwgbmVlZCB0byBkaXNjb25uZWN0IGV2ZW4g aW4gVVNCIERQIGFsdGVybmF0ZQo+ID4gPiA+IG1vZGUgaW4gdGhlIGZ1dHVyZSwgYnV0IGF0bSB3 ZSBkb24ndCBoYXZlIGEgd2F5IHRvIHJlY29ubmVjdCB0aGUgcG9ydAo+ID4gPiA+IGluIHRoaXMg bW9kZSBkdXJpbmcgcmVzdW1lIGlmIHRoZSBkaXNwbGF5IGRpc2FwcGVhcnMgd2hpbGUgYmVpbmcK PiA+ID4gPiBzdXNwZW5kZWQuIFNvIGZvciBub3cgcHVudCBvbiB0aGlzIGNhc2UuCj4gPiA+ID4g Cj4gPiA+ID4gTm90ZSB0aGF0IHdlIGRvIG5vdCBkaXNjb25uZWN0IHRoZSBwb3J0IGR1cmluZyBy dW50aW1lIHN1c3BlbmQ7IGluCj4gPiA+ID4gbGVnYWN5IG1vZGUgdGhlcmUgYXJlIG5vIHNoYXJl ZCBIVyByZXNvdXJjZXMgKFBIWSBsYW5lcykgd2l0aCBvdGhlciBIVwo+ID4gPiA+IGJsb2NrcyAo VVNCKSwgc28gbm8gbmVlZCB0byByZWxlYXNlIC8gcmVhY3F1aXJlIHRoZXNlIHJlc291cmNlcyBh cyB3aXRoCj4gPiA+ID4gVVNCIERQIGFsdGVybmF0ZSBtb2RlLiBUaGUgb25seSByZWFzb24gdG8g ZGlzY29ubmVjdCBsZWdhY3kgcG9ydHMgZHVyaW5nCj4gPiA+ID4gc3lzdGVtIHN1c3BlbmQgaXMg dGhhdCB0aGUgUE9SVF9UWF9ERkxFWERQUE1TIC8KPiA+ID4gPiBEUF9QSFlfTU9ERV9TVEFUVVNf Q09NUExFVEVEIGZsYWcgbXVzdCBiZSByZWNoZWNrZWQgYW5kIHRoZSBwb3J0IG11c3QgYmUKPiA+ ID4gPiBjb25uZWN0ZWQgYWdhaW4gZHVyaW5nIHN5c3RlbSByZXN1bWUuIFdlIG1heSBhbHNvIG5l ZWQgdG8gdHVybiB0aGUgY2hlY2sKPiA+ID4gPiBmb3IgdGhpcyBmbGFnIGludG8gYSBwb2xsLCBk ZXBlbmRpbmcgb24gZnVydGhlciB0ZXN0cyBhbmQgY2xhcmlmaWNhdGlvbnMKPiA+ID4gPiB3ZSBh cmUgZXhwZWN0aW5nIGZyb20gSFcvRlcgcGVvcGxlLgo+ID4gPiA+IAo+ID4gPiA+IElmIFZCVCBz YXlzIHRoYXQgdGhlIHBvcnQgcHJvdmlkZXMgb25seSBEUCBmdW5jdGlvbmFsaXR5IHRoZW4gd2Ug Y2FuJ3QKPiA+ID4gPiBhc3N1bWUgdGhhdCBpdCdzIGEgbGVnYWN5IHBvcnQgYXMgZm9yIEhETUkg KHNpbmNlIGl0IGNvdWxkIGFzIHdlbGwgYmUKPiA+ID4gPiBhIFRCVC9EUCBBbHQgY29ubmVjdG9y KSwgc28gd2UnbGwgc29sdmUgSFBEIGhhbmRsaW5nIGZvciB0aGUgRFAgY2FzZQo+ID4gPiA+IHdp dGggYSBkaWZmZXJlbnQgbWV0aG9kIGluIHRoZSBuZXh0IHBhdGNoLgo+ID4gPiA+IAo+ID4gPiA+ IEV2ZW50dWFsbHkgLSBpbnN0ZWFkIG9mIHRoZSBhYm92ZSBtZXRob2QgLSB3ZSdsbCBkZXBlbmQg b24gYW4gZXhwbGljaXQKPiA+ID4gPiBkZXRlY3Rpb24gbWV0aG9kIHByb3ZpZGVkIGVpdGhlciB2 aWEgYSBWQlQgZmxhZyBvciBhIEZXL0hXIHJlZ2lzdGVyIGJvdGgKPiA+ID4gPiBmb3IgdGhlIEhE TUkgYW5kIERQIGNhc2UuCj4gPiA+ID4gCj4gPiA+ID4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5m cmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODA3MAo+ID4gPiA+IEJ1Z3ppbGxhOiBo dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjQKPiA+ID4g PiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gPiA+ID4gQ2M6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4g Q2M6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiA+ IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gPiA+ID4gU2lnbmVk LW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+ID4gPiA+IC0tLQo+ID4g PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyB8IDU0ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyAgfCAyOSArKysrKysrKysrKysrKy0tLS0tLS0KPiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgNSArKystCj4gPiA+ID4gIDMgZmlsZXMgY2hhbmdl ZCwgNzUgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4gPiBpbmRleCBmM2UxZDZhMGI3ZGQuLjJlNDdmZmEx Yzk1YSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku Ywo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+ID4g QEAgLTM5MDEsOSArMzkwMSw1MCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kZGlfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiA+ID4gIAo+ID4gPiA+ICB9Cj4g PiA+ID4gIAo+ID4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9zdXNwZW5kKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+ YmFzZSk7Cj4gPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gPiA+ICsKPiA+ID4gPiArCWludGVsX2RwX2VuY29kZXJf c3VzcGVuZChlbmNvZGVyKTsKPiA+ID4gPiArCj4gPiA+ID4gKwkvKgo+ID4gPiA+ICsJICogVE9E TzogZGlzY29ubmVjdCBhbHNvIGZyb20gVVNCIERQIGFsdGVybmF0ZSBtb2RlIG9uY2Ugd2UgaGF2 ZSBhCj4gPiA+ID4gKwkgKiB3YXkgdG8gaGFuZGxlIHRoZSBtb2Rlc2V0IHJlc3RvcmUgaW4gdGhh dCBtb2RlIGR1cmluZyByZXN1bWUKPiA+ID4gPiArCSAqIGV2ZW4gaWYgdGhlIHNpbmsgaGFzIGRp c2FwcGVhcmVkIHdoaWxlIGJlaW5nIHN1c3BlbmRlZC4KPiA+ID4gPiArCSAqLwo+ID4gPiA+ICsJ aWYgKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkKPiA+ID4gPiArCQlpY2xfdGNfcGh5X2Rpc2Nv bm5lY3QoaTkxNSwgZGlnX3BvcnQpOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0 aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9l bmNvZGVyKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChkcm1fZW5jb2Rlcik7Cj4gPiA+ID4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZHJtX2VuY29kZXItPmRldik7Cj4gPiA+ ID4gKwo+ID4gPiA+ICsJaWYgKGludGVsX3BvcnRfaXNfdGMoaTkxNSwgZGlnX3BvcnQtPmJhc2Uu cG9ydCkpCj4gPiA+ID4gKwkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZCgmZGlnX3BvcnQt PmJhc2UpOwo+ID4gPiA+ICsKPiA+ID4gPiArCWludGVsX2RwX2VuY29kZXJfcmVzZXQoZHJtX2Vu Y29kZXIpOwo+ID4gPiAKPiA+ID4gZG8gd2UgbmVlZCBhbGwgb2YgdGhhdD8KPiA+IAo+ID4gWW91 IG1lYW4gaWYgd2UgbmVlZCB0byBjYWxsIGludGVsX2RwX2VuY29kZXJfcmVzZXQoKT8gVGhhdCB3 YXMgdGhlCj4gPiBvcmlnaW5hbCBzdGF0ZSwgYXMgYmVmb3JlIHRoaXMgY2hhbmdlIHdlIGhhZAo+ IAo+IHllcy4KPiAKPiA+IAo+ID4gCS5yZXNldCA9IGludGVsX2RwX2VuY29kZXJfcmVzZXQKPiA+ IAo+ID4gaW4gaW50ZWxfZGRpX2Z1bmNzLiAKPiA+IAo+ID4gPiBvciBjb3VsZCBzaW1wbHkKPiA+ ID4gCj4gPiA+IGludGVsX2RwLT5yZXNldF9saW5rX3BhcmFtcyA9IHRydWU7Cj4gPiA+IAo+ID4g PiBpbnN0ZWFkPyEgCj4gPiAKPiA+IE5vdCBzdXJlIGhvdyB3ZSBjb3VsZCBhdm9pZCBjYWxsaW5n IGludGVsX2RwX2VuY29kZXJfcmVzZXQoKSBoZXJlLCBpdAo+ID4gaGFzIHJlcXVpcmVkIExTUENP TiBhbmQgZURQIHNwZWNpZmljIHBhcnRzLgo+IAo+IEkgaGFkIGluIG15IG1pbmQgdGhlIHR5cGVf YyBvbmx5LCBzb3JyeS4KPiAKPiBCdXQgbm93IHdoYXQgSSBkb24ndCB1bmRlcnN0YW5kIGlzIHdo eSB3ZSBkb24ndCBuZWVkIHRvIGRvIHRoZSBzYW1lCj4gYW5kIGNhbGwgaW50ZWxfZHBfZW5jb2Rl cl9kZXN0cm95IGZyb20gaW5zaWRlIGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ryb3kuCj4gaXQgc2Vl bXMgdGhhdCB3ZSB3aWxsIGxvb3NlIHNvbWUgTFNQQ09OIGFuZCBlRFAgdGhlcmUgYXMgd2VsbC4u LgoKVGhhdCBzdHVmZiBtb3ZlZCB0byBpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoKSBhcyBl eHBsYWluZWQgYmVsb3csCndoaWNoIGlzIGNhbGxlZCBmcm9tIGludGVsX2RkaV9lbmNvZGVyX2Rl c3Ryb3koKS4KCj4gCj4gPiAKPiA+ID4gCj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gK3N0 YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiA+ID4gPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwo+ID4gPiA+ICsKPiA+ ID4gPiArCWludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yayhlbmNvZGVyKTsKPiA+ID4gPiArCj4g PiA+ID4gKwlpZiAoaW50ZWxfcG9ydF9pc190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5wb3J0KSkK PiA+ID4gPiArCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoaTkxNSwgZGlnX3BvcnQpOwo+ID4gPiA+ ICsKPiA+ID4gPiArCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gPiA+IAo+ID4gPiBh bmQgaGVyZSBkb24ndCB3ZSBuZWVkIHN0dWZmIG9uIGludGVsX2RwX2VuY29kZXIgZGVzdHJveSBo ZXJlIGxpa2UKPiA+ID4gaW50ZWxfZHBfYXV4X2Zpbmk/Cj4gPiAKPiA+IFllcyB3ZSBkbywgdGhh dCdzIHBhcnQgb2YgdGhlIG5ldyBpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoKSBmdW5jLgo+ ID4gSGFkIHRvIHNwbGl0IHVwIGludGVsX2RwX2VuY29kZXJfZGVzdHJveSgpLCBzaW5jZSB3ZSB3 YW50IHRvIGZsdXNoIGFueQo+ID4gcGVuZGluZyB3b3JrIG9uIHRoZSBlbmNvZGVyIGZpcnN0IChm b3IgaW5zdGFuY2UgTVNUIHNwZWNpZmljIHN0dWZmKSB0aGVuCj4gPiBkaXNjb25uZWN0IHRoZSBU QyBQSFksIHRoZW4gZG8gdGhlIERSTSBjb3JlIGNsZWFudXAgYW5kIGtmcmVlLiBQcm9iYWJseQo+ ID4gc2hvdWxkJ3ZlIGJlZW4gaW4gdGhlIGNvbW1pdCBsb2cuCj4gPiAKPiA+ID4gCj4gPiA+ID4g KwlrZnJlZShkaWdfcG9ydCk7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgaW50ZWxfZGRpX2Z1bmNzID0gewo+ID4gPiA+ IC0JLnJlc2V0ID0gaW50ZWxfZHBfZW5jb2Rlcl9yZXNldCwKPiA+ID4gPiAtCS5kZXN0cm95ID0g aW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95LAo+ID4gPiA+ICsJLnJlc2V0ID0gaW50ZWxfZGRpX2Vu Y29kZXJfcmVzZXQsCj4gPiA+ID4gKwkuZGVzdHJveSA9IGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ry b3ksCj4gPiA+ID4gIH07Cj4gPiA+ID4gIAo+ID4gPiA+ICBzdGF0aWMgc3RydWN0IGludGVsX2Nv bm5lY3RvciAqCj4gPiA+ID4gQEAgLTQxOTcsNyArNDIzOCw3IEBAIHZvaWQgaW50ZWxfZGRpX2lu aXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiA+ ID4gPiAgCWludGVsX2VuY29kZXItPnBvc3RfZGlzYWJsZSA9IGludGVsX2RkaV9wb3N0X2Rpc2Fi bGU7Cj4gPiA+ID4gIAlpbnRlbF9lbmNvZGVyLT5nZXRfaHdfc3RhdGUgPSBpbnRlbF9kZGlfZ2V0 X2h3X3N0YXRlOwo+ID4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVsX2Rk aV9nZXRfY29uZmlnOwo+ID4gPiA+IC0JaW50ZWxfZW5jb2Rlci0+c3VzcGVuZCA9IGludGVsX2Rw X2VuY29kZXJfc3VzcGVuZDsKPiA+ID4gPiArCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRl bF9kZGlfZW5jb2Rlcl9zdXNwZW5kOwo+ID4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X3Bvd2Vy X2RvbWFpbnMgPSBpbnRlbF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnM7Cj4gPiA+ID4gIAlpbnRlbF9l bmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RESTsKPiA+ID4gPiAgCWludGVsX2VuY29kZXIt PnBvd2VyX2RvbWFpbiA9IGludGVsX3BvcnRfdG9fcG93ZXJfZG9tYWluKHBvcnQpOwo+ID4gPiA+ IEBAIC00MjU3LDYgKzQyOTgsOSBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gPiA+ID4gIAlpZiAoaW50ZWxf ZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRURQICYmIGluaXRfaGRtaSkgewo+ID4gPiA+ ICAJCWlmICghaW50ZWxfZGRpX2luaXRfaGRtaV9jb25uZWN0b3IoaW50ZWxfZGlnX3BvcnQpKQo+ ID4gPiA+ICAJCQlnb3RvIGVycjsKPiA+ID4gPiArCj4gPiA+ID4gKwkJaWYgKGludGVsX3BvcnRf aXNfdGMoZGV2X3ByaXYsIHBvcnQpKQo+ID4gPiA+ICsJCQlpbnRlbF9kaWdfcG9ydC0+dGNfbGVn YWN5X3BvcnQgPSB0cnVlOwo+ID4gPiA+ICAJfQo+ID4gPiA+ICAKPiA+ID4gPiAgCWlmIChpbml0 X2xzcGNvbikgewo+ID4gPiA+IEBAIC00Mjc0LDYgKzQzMTgsMTAgQEAgdm9pZCBpbnRlbF9kZGlf aW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ ID4gPiA+ICAJfQo+ID4gPiA+ICAKPiA+ID4gPiAgCWludGVsX2luZm9mcmFtZV9pbml0KGludGVs X2RpZ19wb3J0KTsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZf cHJpdiwgcG9ydCkpCj4gPiA+ID4gKwkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChpbnRl bF9lbmNvZGVyKTsKPiA+ID4gPiArCj4gPiA+ID4gIAlyZXR1cm47Cj4gPiA+ID4gIAo+ID4gPiA+ ICBlcnI6Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ID4gaW5kZXggMDgyNTk0 YmI2NWE3Li4xOWU0OWFkYWI1NDggMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPiA+ID4gPiBAQCAtNTEwOCw5ICs1MTA4LDYgQEAgc3RhdGljIHZvaWQgaWNsX3VwZGF0 ZV90Y19wb3J0X3R5cGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ ICAJCQkgICAgICB0Y190eXBlX25hbWUoaW50ZWxfZGlnX3BvcnQtPnRjX3R5cGUpKTsKPiA+ID4g PiAgfQo+ID4gPiA+ICAKPiA+ID4gPiAtc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiAtCQkJCSAgc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+ID4gPiA+IC0KPiA+ID4gPiAgLyoKPiA+ ID4gPiAgICogVGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBD b25uZWN0IEZsb3cgZGVzY3JpYmVkIGJ5IG91cgo+ID4gPiA+ICAgKiBzcGVjaWZpY2F0aW9uLCBH ZW4xMSBUeXBlQyBQcm9ncmFtbWluZyBjaGFwdGVyLiBUaGUgcmVzdCBvZiB0aGUgZmxvdyAocmVh ZGluZwo+ID4gPiA+IEBAIC01MTQ1LDYgKzUxNDIsNyBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5 X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ICAJdmFs ID0gSTkxNV9SRUFEKFBPUlRfVFhfREZMRVhEUFBNUyk7Cj4gPiA+ID4gIAlpZiAoISh2YWwgJiBE UF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEKHRjX3BvcnQpKSkgewo+ID4gPiA+ICAJCURSTV9E RUJVR19LTVMoIkRQIFBIWSBmb3IgVEMgcG9ydCAlZCBub3QgcmVhZHlcbiIsIHRjX3BvcnQpOwo+ ID4gPiA+ICsJCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KTsKPiA+ID4gPiAgCQly ZXR1cm4gZmFsc2U7Cj4gPiA+ID4gIAl9Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC01MTc2LDggKzUx NzQsOCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ICAgKiBTZWUgdGhlIGNvbW1lbnQgYXQgdGhlIGNvbm5l Y3QgZnVuY3Rpb24uIFRoaXMgaW1wbGVtZW50cyB0aGUgRGlzY29ubmVjdAo+ID4gPiA+ICAgKiBG bG93Lgo+ID4gPiA+ICAgKi8KPiA+ID4gPiAtc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9kaXNjb25u ZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiAtCQkJCSAgc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gPiA+ID4gK3ZvaWQgaWNsX3RjX3Bo eV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiAr CQkJICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gPiA+ID4gIHsKPiA+ ID4gPiAgCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwg ZGlnX3BvcnQtPmJhc2UucG9ydCk7Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC01MjIyLDcgKzUyMjAs OCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ICAJYm9vbCBpc19sZWdhY3ksIGlzX3R5cGVjLCBpc190 YnQ7Cj4gPiA+ID4gIAl1MzIgZHBzcDsKPiA+ID4gPiAgCj4gPiA+ID4gLQlpc19sZWdhY3kgPSBJ OTE1X1JFQUQoU0RFSVNSKSAmIFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KTsKPiA+ID4gPiAr CWlzX2xlZ2FjeSA9IGludGVsX2RpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCB8fAo+ID4gPiA+ICsJ CUk5MTVfUkVBRChTREVJU1IpICYgU0RFX1RDX0hPVFBMVUdfSUNQKHRjX3BvcnQpOwo+ID4gPiA+ ICAKPiA+ID4gPiAgCS8qCj4gPiA+ID4gIAkgKiBUaGUgc3BlYyBzYXlzIHdlIHNob3VsZG4ndCBi ZSB1c2luZyB0aGUgSVNSIGJpdHMgZm9yIGRldGVjdGluZwo+ID4gPiA+IEBAIC01MjMzLDcgKzUy MzIsMTQgQEAgc3RhdGljIGJvb2wgaWNsX3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiAgCWlzX3RidCA9IGRwc3AgJiBUQ19MSVZFX1NU QVRFX1RCVCh0Y19wb3J0KTsKPiA+ID4gPiAgCj4gPiA+ID4gIAlpZiAoIWlzX2xlZ2FjeSAmJiAh aXNfdHlwZWMgJiYgIWlzX3RidCkgewo+ID4gPiA+IC0JCWljbF90Y19waHlfZGlzY29ubmVjdChk ZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQpOwo+ID4gPiA+ICsJCS8qCj4gPiA+ID4gKwkJICogV2Ug ZGlzY29ubmVjdCBmcm9tIGxlZ2FjeSBtb2RlIG9ubHkgZHVyaW5nIHN5c3RlbQo+ID4gPiA+ICsJ CSAqIHN1c3BlbmQgYW5kIGRyaXZlciB1bmxvYWRpbmcsIG90aGVyd2lzZSB3ZSBrZWVwIHRoZSBw b3J0IGluCj4gPiA+ID4gKwkJICogbGVnYWN5IG1vZGUgZXZlbiBhZnRlciBhbiBIUEQgZGlzY29u bmVjdCBldmVudC4KPiA+ID4gPiArCQkgKi8KPiA+ID4gPiArCQlpZiAoaW50ZWxfZGlnX3BvcnQt PnRjX3R5cGUgIT0gVENfUE9SVF9MRUdBQ1kpCj4gPiA+ID4gKwkJCWljbF90Y19waHlfZGlzY29u bmVjdChkZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQpOwo+ID4gPiA+ICsKPiA+ID4gPiAgCQlyZXR1 cm4gZmFsc2U7Cj4gPiA+ID4gIAl9Cj4gPiA+ID4gIAo+ID4gPiA+IEBAIC01NTQyLDcgKzU1NDgs NyBAQCBpbnRlbF9kcF9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+ID4gPiA+ICAJaW50ZWxfY29ubmVjdG9yX3VucmVnaXN0ZXIoY29ubmVjdG9y KTsKPiA+ID4gPiAgfQo+ID4gPiA+ICAKPiA+ID4gPiAtdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2Rl c3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiA+ICt2b2lkIGludGVsX2Rw X2VuY29kZXJfZmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gPiA+ID4g IHsKPiA+ID4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g ZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ID4gPiA+ICAJc3RydWN0IGludGVsX2RwICppbnRl bF9kcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gPiA+ID4gQEAgLTU1NjUsOSArNTU3MSwxNCBA QCB2b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCj4gPiA+ID4gIAl9Cj4gPiA+ID4gIAo+ID4gPiA+ICAJaW50ZWxfZHBfYXV4X2ZpbmkoaW50 ZWxfZHApOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ID4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9k cF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gPiA+ICt7 Cj4gPiA+ID4gKwlpbnRlbF9kcF9lbmNvZGVyX2ZsdXNoX3dvcmsoZW5jb2Rlcik7Cj4gPiA+ID4g IAo+ID4gPiA+ICAJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiA+ID4gPiAtCWtmcmVl KGludGVsX2RpZ19wb3J0KTsKPiA+ID4gPiArCWtmcmVlKGVuY190b19kaWdfcG9ydChlbmNvZGVy KSk7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgCj4gPiA+ID4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9z dXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ID4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ID4gaW5kZXggZDA4ZjA4ZjYwN2RkLi45N2M0MjJiZWE3 ZmIgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+IEBA IC0xMjM0LDYgKzEyMzQsNyBAQCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKPiA+ID4gPiAg CS8qIFVzZWQgZm9yIERQIGFuZCBJQ0wrIFR5cGVDL0RQIGFuZCBUeXBlQy9IRE1JIHBvcnRzLiAq Lwo+ID4gPiA+ICAJZW51bSBhdXhfY2ggYXV4X2NoOwo+ID4gPiA+ICAJZW51bSBpbnRlbF9kaXNw bGF5X3Bvd2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9tYWluOwo+ID4gPiA+ICsJYm9vbCB0Y19s ZWdhY3lfcG9ydDoxOwo+ID4gPiA+ICAJZW51bSB0Y19wb3J0X3R5cGUgdGNfdHlwZTsKPiA+ID4g PiAgCj4gPiA+ID4gIAl2b2lkICgqd3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiA+ID4gPiBAQCAtMTgwNiw3ICsxODA3LDcgQEAgdm9pZCBpbnRlbF9kcF9z aW5rX3NldF9kZWNvbXByZXNzaW9uX3N0YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4g PiA+ID4gIAkJCQkJICAgYm9vbCBlbmFibGUpOwo+ID4gPiA+ICB2b2lkIGludGVsX2RwX2VuY29k ZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiA+ID4gPiAgdm9pZCBpbnRl bF9kcF9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp Owo+ID4gPiA+IC12b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpOwo+ID4gPiA+ICt2b2lkIGludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yayhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gPiA+ICBib29sIGludGVsX2RwX2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiA+ICAJCQkgICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiA+ID4gPiAgCQkJICAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSk7Cj4gPiA+ID4gQEAgLTE4NzQs NiArMTg3NSw4IEBAIGJvb2wgaW50ZWxfZHBfcmVhZF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApOwo+ID4gPiA+ICBpbnQgaW50ZWxfZHBfbGlua19yZXF1aXJlZChpbnQgcGl4ZWxfY2xv Y2ssIGludCBicHApOwo+ID4gPiA+ICBpbnQgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShpbnQgbWF4 X2xpbmtfY2xvY2ssIGludCBtYXhfbGFuZXMpOwo+ID4gPiA+ICBib29sIGludGVsX2RpZ2l0YWxf cG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gPiA+ICt2 b2lkIGljbF90Y19waHlfZGlzY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+ID4gKwkJCSAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsK PiA+ID4gPiAgCj4gPiA+ID4gIC8qIGludGVsX2RwX2F1eF9iYWNrbGlnaHQuYyAqLwo+ID4gPiA+ ICBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4gPiA+ID4gLS0gCj4gPiA+ID4gMi4xMy4yCj4gPiA+ ID4gCj4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+ID4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==