From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/6] drm/i915: Add HDMI probe function Date: Mon, 14 Sep 2015 15:07:54 +0200 Message-ID: <20150914130754.GD3383@phenom.ffwll.local> References: <1441373176-22302-1-git-send-email-sonika.jindal@intel.com> <1441373176-22302-3-git-send-email-sonika.jindal@intel.com> <20150904144839.GB26318@phenom.ffwll.local> <55F2B0D3.2020001@intel.com> <20150914083008.GI3383@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f169.google.com (mail-wi0-f169.google.com [209.85.212.169]) by gabe.freedesktop.org (Postfix) with ESMTPS id 58E876E8B0 for ; Mon, 14 Sep 2015 06:05:11 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so132163469wic.1 for ; Mon, 14 Sep 2015 06:05:10 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBTZXAgMTQsIDIwMTUgYXQgMDk6NTU6MzNBTSArMDAwMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiA+IFlvdSBuZWVkIHRvIGluamVjdCBhIGZha2UgaHBkIG9yIHNpbWlsYXIgZXZl cnl0aW1lIHRoZSB3b3JsZCBtaWdodCBoYXZlIGNoYW5nZWQgZnJvbSB1bmRlciB1cywgd2hpY2gg aXNuJ3QganVzdCBpbml0IGJ1dCBhbHNvIHN5c3RlbSByZXN1bWUuCj4gVGhpcyBpcyBhIGZha2Ug aHBkIG9ubHksIGp1c3Qgd2l0aG91dCB3cmFwcGVyLCBpZiB5b3Ugd2FudCwgd2UgY2FuCj4gY3Jl YXRlIGEgd3JhcHBlciBmdW5jdGlvbiBsaWtlIChpbnRlbF9oZG1pX2luc2VydF9mYWtlX2hwZCks IGFuZCBjYWxsCj4gdGhpcyBmdW5jdGlvbiBmcm9tIGluaXQoKSBBbmQgY2FsbCBIRE1JIHByb2Jl KGhvdF9wbHVnKSBmdW5jdGlvbiBmcm9tCj4gaGVyZS4gVGhpcyB3b3VsZCBiZSBqdXN0IGFkZGlu ZyBzb21lIENQVSBjeWNsZXMgaW4gdGhlIGNvZGUuIAoKV2UgYWxyZWFkeSBoYXZlIGZha2UgaHBk IGhhbmRsaW5nLCBhbmQgaXQncyBkb25lIGF0IGEgaGlnaGVyIGxldmVsIChhbmQgaW4KYWxsIHRo ZSBjb3JyZWN0IHBsYWNlcykgdXNpbmcgZHJtX2hlbHBlcl9ocGRfaXJxX2V2ZW50LgoKWW91ciBw YXRjaCBoZXJlIGJyZWFrcyB0aGF0LCBidXQgdGhlbiBvbmx5IHBhcnRpYWxseSBmaXhlcyB0aGlu Z3MgdXAgYWdhaW4KKHlvdSdyZSBtaXNzaW5nIHN5c3RlbSByZXN1bWUpLiBUaGF0J3Mgbm90IGEg Z29vZCBkZXNpZ24sIHNpbmNlIGl0IG1lYW5zCndlIG5lZWQgYmFuZGFpZHMgYWxsIG92ZXIgYWxz byBpbiB0aGUgZnV0dXJlIGZvciBhbnl0aGluZyBlbHNlIChsaWtlIERQKS4KCkhlbmNlIGltbyB3 aHkgd2Ugc2hvdWxkIGNyZWF0ZSBhIG5ldyBvdmVyYWxsIGRlc2lnbiB3aXRoIGhvdyB0aGlzIGlz CnN1cHBvc2VkIHRvIGJlIGhhbmRsZWQsIGFuZCB0aGVuIGNoYW5nZSB0aGUgY29yZSBiaXRzIChz byBwcm9iYWJseSB3ZSBuZWVkCmFuIGludGVsIHZlcnNpb24gb2YgZHJtX2hlbHBlcl9ocGRfaXJx X2V2ZW50IGFuZCB1c2UgdGhhdCBpbnN0ZWFkIG9mIHRoZQpjdXJyZW50IGNhbGxzKS4gRXZlbnR1 YWxseSB3ZSB3YW50IHRvIG1ha2UgdGhhdCBhc3luYyB0byBzcGVlZCB1cCByZXN1bWUuCgo+ID4g QWRkaW5nIGhhY2tzIGxpa2UgdGhlc2UgaW4gdGhlIGluaXQgY29kZSBpcyBjZXJ0YWlubHkgdGhl IHdyb25nIGFwcHJvYWNoLCBzaW5jZSB3ZSBuZXZlciBkb25lIGRldGVjdGlvbiB0aGlzIGVhcmx5 IChzbyBzdXJwcmlzaW5nIGZyb20gYSBoaWdoLWxldmVsCj4gPiBvcmRlcmluZykgYW5kIGl0IGFs c28gbWlzc2VzIHJlc3VtZSAod2hpY2ggaXMgd2h5IGl0IHNob3VsZCBiZSBkb25lIGluIGNvZGUg c2hhcmVkIGJldHdlZW4gZHJpdmVyIGxvYWQgYW5kIHJlc3VtZSkuCj4gRHVyaW5nIHRoZSBBREYg Y29kZSBkZXZlbG9wbWVudCwgd2Ugc2F3IHRoYXQgZmJfY29uc29sZSBjb21lcyB1cCB2ZXJ5Cj4g c29vbiwgYXMgc29vbiBhcyB0aGUgaW50ZWxfZmJkZXYgaXMgcmVhZHksIGNhdXNpbmcgYSBkZXRl Y3QoKSBvbiBhCj4gY29ubmVjdGVkIEhETUkuICBEbyB5b3UgdGhpbmsgaW50ZWxfaHBkX2luaXQo KSB3b3VsZCBiZSB0aGUgcmlnaHQgcGxhY2UKPiB0byBwcm9iZSwgY296IGFzIHlvdSByaWdodGx5 IG1lbnRpb25lZCwgd2Ugd2lsbCBuZWVkIHRoaXMgb24KPiBzdXNwZW5kL3Jlc3VtZSBhbHNvLiAK Ck5vcGUuIGZiZGV2IGlzIG9wdGlvbmFsIGFuZCB5b3UgY2FuJ3QgcmVseSB1cG9uIHRoYXQsIG9y IHdyaXRlIHRoZSBjb2RlCmFzc3VtaW5nIGl0J3MgdGhlcmUuIFRoZSBpbml0aWFsIHByb2Jpbmcg YXQgZHJpdmVyIGxvYWQgdGltZSBpcyBhdG0gbm90CmRvbmUgYXQgYWxsLCB3ZSByZWx5IHVwb24g ZmJkZXYgb3IgZWFybHkgdXNlcnNwYWNlIHRvIGRvIHRoZSBwcm9iaW5nLgoKV2hhdCB5b3UgcHJv YmFibHkgd2FudCB0byBkbyBpbnN0ZWFkIGlzIHJlc2V0IHRoZSBlZGlkIGNhY2hlIG9uIGRyaXZl cgpsb2FkIGFuZCBvbiByZXN1bWUgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGNhY2hlIGEgcG90ZW50 aWFsbHkgYm9ndXMgZWRpZC4KV2UgaGF2ZSB0aGUgZW5jb2Rlci0+cmVzZXQgaG9vayBmb3IgdGhh dCBraW5kIG9mIHdvcmsuIFRoYXQgbWlnaHQgYmUKYW5vdGhlciBhcHByb2FjaC4KCkJ1dCBkb2lu ZyBwcm9iZSBpbiBfaW5pdCBmb3IgZHluYW1pYyBwb3J0cyBpc250JyB0aGUgcmlnaHQgYXBwcm9h Y2ggaW1vLgotRGFuaWVsCgo+IAo+IFJlZ2FyZHMKPiBTaGFzaGFuawo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tCj4gRnJvbTogSW50ZWwtZ2Z4IFttYWlsdG86aW50ZWwtZ2Z4LWJvdW5jZXNA bGlzdHMuZnJlZWRlc2t0b3Aub3JnXSBPbiBCZWhhbGYgT2YgRGFuaWVsIFZldHRlcgo+IFNlbnQ6 IE1vbmRheSwgU2VwdGVtYmVyIDE0LCAyMDE1IDI6MDAgUE0KPiBUbzogSmluZGFsLCBTb25pa2EK PiBDYzogaW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IFN1YmplY3Q6IFJlOiBbSW50 ZWwtZ2Z4XSBbUEFUQ0ggMi82XSBkcm0vaTkxNTogQWRkIEhETUkgcHJvYmUgZnVuY3Rpb24KPiAK PiBPbiBGcmksIFNlcCAxMSwgMjAxNSBhdCAwNDoxNTozOVBNICswNTMwLCBKaW5kYWwsIFNvbmlr YSB3cm90ZToKPiA+IAo+ID4gCj4gPiBPbiA5LzEwLzIwMTUgMTI6MjUgQU0sIFJvZHJpZ28gVml2 aSB3cm90ZToKPiA+ID5JIGxpa2VkIHRoZSBhcHByb2FjaCBhbmQgYWdyZWUgd2l0aCBEYW5pZWws IHNvIHdpdGggaGlzIHN1Z2dlc3Rpb25zIAo+ID4gPmZlZWwgZnJlZSB0byB1c2U6Cj4gPiA+UmV2 aWV3ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbSAKPiA+ID48bWFp bHRvOnJvZHJpZ28udml2aUBpbnRlbC5jb20+Pgo+ID4gPgo+ID4gPk9uIEZyaSwgU2VwIDQsIDIw MTUgYXQgNzo0NiBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2ggCj4gPiA+PG1haWx0 bzpkYW5pZWxAZmZ3bGwuY2g+PiB3cm90ZToKPiA+ID4KPiA+ID4gICAgT24gRnJpLCBTZXAgMDQs IDIwMTUgYXQgMDY6NTY6MTJQTSArMDUzMCwgU29uaWthIEppbmRhbCB3cm90ZToKPiA+ID4gICAg ID4gRnJvbTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tCj4gPiA+ ICAgIDxtYWlsdG86c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4+Cj4gPiA+ICAgICA+Cj4gPiA+ ICAgICA+IFRoaXMgcGF0Y2ggYWRkcyBhIHNlcGFyYXRlIHByb2JlIGZ1bmN0aW9uIGZvciBIRE1J Cj4gPiA+ICAgICA+IEVESUQgcmVhZCBvdmVyIEREQyBjaGFubmVsLiBUaGlzIGZ1bmN0aW9uIGhh cyBiZWVuCj4gPiA+ICAgICA+IHJlZ2lzdGVyZWQgYXMgYSAuaG90X3BsdWcgaGFuZGxlciBmb3Ig SERNSSBlbmNvZGVyLgo+ID4gPiAgICAgPgo+ID4gPiAgICAgPiBUaGUgY3VycmVudCBpbXBsZW1l bnRhdGlvbiBvZiBoZG1pX2RldGVjdCgpCj4gPiA+ICAgICA+IGZ1bmN0aW9uIHJlLXNldHMgdGhl IGNhY2hlZCBIRE1JIGVkaWQgKGluIGNvbm5lY3Rvci0+ZGV0ZWN0X2VkaWQpIGluCj4gPiA+ICAg ICA+IGV2ZXJ5IGRldGVjdCBjYWxsLlRoaXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgbWFueSB0aW1l cywgc29tZXRpbWVzCj4gPiA+ICAgICA+IGRpcmVjdGx5IGZyb20gdXNlcnNwYWNlIHByb2Jlcywg Zm9yY2luZyBkcml2ZXJzIHRvIHJlYWQgRURJRCBldmVyeQo+ID4gPiAgICAgPiBkZXRlY3QgZnVu Y3Rpb24gY2FsbC5UaGlzIGNhdXNlcyBzZXZlcmFsIHByb2JsZW1zIGxpa2U6Cj4gPiA+ICAgICA+ Cj4gPiA+ICAgICA+IDEuIFJhY2UgY29uZGl0aW9ucyBpbiBtdWx0aXBsZSBob3RfcGx1ZyAvIHVu cGx1ZyBjYXNlcywgYmV0d2Vlbgo+ID4gPiAgICAgPiAgICBpbnRlcnJ1cHRzIGJvdHRvbSBoYWx2 ZXMgYW5kIHVzZXJzcGFjZSBkZXRlY3Rpb25zLgo+ID4gPiAgICAgPiAyLiBNYW55IFVuLW5lY2Vz c2FyeSBFRElEIHJlYWRzIGZvciBzaW5nbGUgaG90cGx1Zy91bnBsdWcKPiA+ID4gICAgID4gMy4g SERNSSBjb21wbGFpbmNlIGZhaWx1cmVzIHdoaWNoIGV4cGVjdHMgb25seSBvbmUgRURJRCByZWFk IHBlcgo+ID4gPiAgICBob3RwbHVnCj4gPiA+ICAgICA+Cj4gPiA+ICAgICA+IFRoaXMgZnVuY3Rp b24gd2lsbCBiZSBzZXJ2aW5nIHRoZSBwdXJwb3NlIG9mIHJlYWxseSByZWFkaW5nIHRoZSBFRElE Cj4gPiA+ICAgICA+IGJ5IHJlYWxseSBwcm9iaW5nIHRoZSBEREMgY2hhbm5lbCwgYW5kIHVwZGF0 aW5nIHRoZSBjYWNoZWQgRURJRC4KPiA+ID4gICAgID4KPiA+ID4gICAgID4gVGhlIHBsYW4gaXMg dG86Cj4gPiA+ICAgICA+IDEuIGk5MTUgSVJRIGhhbmRsZXIgYm90dG9tIGhhbGYgZnVuY3Rpb24g YWxyZWFkeSBjYWxscwo+ID4gPiAgICAgPiAgICBpbnRlbF9lbmNvZGVyLT5ob3RwbHVnKCkgZnVu Y3Rpb24uIEFkZGluZyBUaGlzIHByb2JlIGZ1bmN0aW9uCj4gPiA+ICAgIHdoaWNoCj4gPiA+ICAg ICA+ICAgIHdpbGwgcmVhZCB0aGUgRURJRCBvbmx5IGluIGNhc2Ugb2YgYSBob3RwbHVnIC8gdW5w bHVnLgo+ID4gPiAgICAgPiAyLiBEdXJpbmcgaW5pdF9jb25uZWN0b3IgaGlzIHByb2JlIHdpbGwg YmUgY2FsbGVkIHRvIHJlYWQgdGhlIGVkaWQKPiA+ID4gICAgID4gMy4gUmV1c2UgdGhlIGNhY2hl ZCBFRElEIGluIGhkbWlfZGV0ZWN0KCkgZnVuY3Rpb24uCj4gPiA+ICAgICA+Cj4gPiA+ICAgICA+ IFRoZSAiPCBnZW43IiBjaGVjayBpcyB0aGVyZSBiZWNhdXNlIHRoaXMgd2FzIHRlc3RlZCBvbmx5 IGZvciA+PWdlbjcKPiA+ID4gICAgID4gcGxhdGZvcm1zLiBGb3Igb2xkZXIgcGxhdGZvcm1zIHRo ZSBob3RwbHVnL3JlYWRpbmcgZWRpZCBwYXRoCj4gPiA+ICAgIHJlbWFpbnMgc2FtZS4KPiA+ID4g ICAgID4KPiA+ID4gICAgID4gdjI6IENhbGxpbmcgc2V0X2VkaWQgaW5zdGVhZCBvZiBoZG1pX3By b2JlIGR1cmluZyBpbml0Lgo+ID4gPiAgICAgPiBBbHNvLCBmb3IgcGxhdGZvcm1zIGhhdmluZyBE REksIGludGVsX2VuY29kZXIgZm9yIERQIGFuZCBIRE1JIGlzIHNhbWUKPiA+ID4gICAgID4gKHRh a2VuIGZyb20gaW50ZWxfZGlnX3BvcnQpLCBzbyBmb3IgRFAgYWxzbywgaG90X3BsdWcgZnVuY3Rp b24KPiA+ID4gICAgZ2V0cyBjYWxsZWQKPiA+ID4gICAgID4gd2hpY2ggaXMgbm90IGludGVuZGVk IGhlcmUuIFNvLCBjaGVjayBmb3IgSERNSSBpbiBpbnRlbF9oZG1pX3Byb2JlCj4gPiA+ICAgICA+ IFJlbHkgb24gSFBEIGZvciB1cGRhdGluZyBlZGlkIG9ubHkgZm9yIHBsYXRmb3JtcyBnZW4gPiA4 IGFuZCBhbHNvCj4gPiA+ICAgIGZvciBWTFYuCj4gPiA+ICAgICA+Cj4gPiA+ICAgICA+IHYzOiBE cm9wcGluZyB0aGUgZ2VuIDwgOCB8fCAhVkxWICBjaGVjay4gTm93IGFsbCBwbGF0Zm9ybXMgc2hv dWxkCj4gPiA+ICAgIHJlbHkgb24KPiA+ID4gICAgID4gaG90cGx1ZyBvciBpbml0IGZvciB1cGRh dGluZyB0aGUgZWRpZC4oRGFuaWVsKQo+ID4gPiAgICAgPiBBbHNvLCBjYWxsaW5nIGhkbWlfcHJv YmUgaW4gaW5pdCBpbnN0ZWFkIG9mIHNldF9lZGlkCj4gPiA+ICAgICA+Cj4gPiA+ICAgICA+IFNp Z25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbQo+ ID4gPiAgICA8bWFpbHRvOnNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Pgo+ID4gPiAgICAgPiBT aWduZWQtb2ZmLWJ5OiBTb25pa2EgSmluZGFsIDxzb25pa2EuamluZGFsQGludGVsLmNvbQo+ID4g PiAgICA8bWFpbHRvOnNvbmlrYS5qaW5kYWxAaW50ZWwuY29tPj4KPiA+ID4gICAgID4gLS0tCj4g PiA+ICAgICA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAgIDQ2Cj4gPiA+ ICAgICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiA+ID4gICAgID4gIDEg ZmlsZSBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+ID4gPiAgICAg Pgo+ID4gPiAgICAgPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRt aS5jCj4gPiA+ICAgIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiA+ICAg ICA+IGluZGV4IDViZGIzODYuLjFlZGE3MWEgMTAwNjQ0Cj4gPiA+ICAgICA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gPiAgICAgPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ID4gICAgID4gQEAgLTEzNjgsMjMgKzEzNjgsNTMg QEAgaW50ZWxfaGRtaV9zZXRfZWRpZChzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgo+ID4gPiAgICAqY29u bmVjdG9yKQo+ID4gPiAgICAgPiAgICAgICByZXR1cm4gY29ubmVjdGVkOwo+ID4gPiAgICAgPiAg fQo+ID4gPiAgICAgPgo+ID4gPiAgICAgPiArdm9pZCBpbnRlbF9oZG1pX3Byb2JlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ID4gPgo+ID4gPiAgICBQbGVhc2UgY2FsbCBp dCBfaG90X3BsdWcgaWYgaXQncyBmb3IgdGhlIF9ob3RfcGx1ZyBwYXRoLgo+ID4gPgo+ID4gSG1t LCBpbml0aWFsIHBsYW4gd2FzIHRvIGNhbGwgaXQgZnJvbSBvdGhlciBwbGFjZXMgaWYgYW55Li4K PiA+IEJ1dCBub3cgaXQgc2VlbXMgbW9yZSBsb2dpY2FsIHRvIG5hbWUgaXQgX2hvdF9wbHVnLgo+ ID4gSSB3aWxsIGRvIHRoYXQuCj4gPiAKPiA+ID4gICAgID4gK3sKPiA+ID4gICAgID4gKyAgICAg c3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPQo+ID4gPiAgICAgPiArICAgICAgICAgICAg ICAgICAgICAgZW5jX3RvX2ludGVsX2hkbWkoJmludGVsX2VuY29kZXItPmJhc2UpOwo+ID4gPiAg ICAgPiArICAgICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPQo+ID4g PiAgICAgPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9oZG1pLT5hdHRhY2hl ZF9jb25uZWN0b3I7Cj4gPiA+ICAgICA+ICsKPiA+ID4gICAgID4gKyAgICAgLyoKPiA+ID4gICAg ID4gKyAgICAgICogV2UgYXJlIGhlcmUsIG1lYW5zIHRoZXJlIGlzIGEgaG90cGx1ZyBvciBhIGZv cmNlCj4gPiA+ICAgICA+ICsgICAgICAqIGRldGVjdGlvbi4gQ2xlYXIgdGhlIGNhY2hlZCBFRElE IGFuZCBwcm9iZSB0aGUKPiA+ID4gICAgID4gKyAgICAgICogRERDIGJ1cyB0byBjaGVjayB0aGUg Y3VycmVudCBzdGF0dXMgb2YgSERNSS4KPiA+ID4gICAgID4gKyAgICAgICovCj4gPiA+ICAgICA+ ICsgICAgIGludGVsX2hkbWlfdW5zZXRfZWRpZCgmaW50ZWxfY29ubmVjdG9yLT5iYXNlKTsKPiA+ ID4gICAgID4gKyAgICAgaWYgKGludGVsX2hkbWlfc2V0X2VkaWQoJmludGVsX2Nvbm5lY3Rvci0+ YmFzZSkpCj4gPiA+ICAgICA+ICsgICAgICAgICAgICAgRFJNX0RFQlVHX0RSSVZFUigiRERDIHBy b2JlOiBnb3QgRURJRFxuIik7Cj4gPiA+ICAgICA+ICsgICAgIGVsc2UKPiA+ID4gICAgID4gKyAg ICAgICAgICAgICBEUk1fREVCVUdfRFJJVkVSKCJEREMgcHJvYmU6IG5vIEVESURcbiIpOwo+ID4g PiAgICAgPiArfQo+ID4gPiAgICAgPiArCj4gPiA+ICAgICA+ICBzdGF0aWMgZW51bSBkcm1fY29u bmVjdG9yX3N0YXR1cwo+ID4gPiAgICAgPiAgaW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+ID4gICAgID4gIHsKPiA+ID4gICAg ID4gICAgICAgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7Cj4gPiA+ICAgICA+ICsg ICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9Cj4gPiA+ICAgICA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0 b3IpOwo+ID4gPiAgICAgPgo+ID4gPiAgICAgPiAgICAgICBEUk1fREVCVUdfS01TKCJbQ09OTkVD VE9SOiVkOiVzXVxuIiwKPiA+ID4gICAgID4gICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3It PmJhc2UuaWQgPGh0dHA6Ly9iYXNlLmlkPiwKPiA+ID4gICAgY29ubmVjdG9yLT5uYW1lKTsKPiA+ ID4gICAgID4gKyAgICAgLyoKPiA+ID4gICAgID4gKyAgICAgICogVGhlcmUgYXJlIG1hbnkgdXNl cnNwYWNlIGNhbGxzIHdoaWNoIHByb2JlIEVESUQgZnJvbQo+ID4gPiAgICAgPiArICAgICAgKiBk ZXRlY3QgcGF0aC4gSW4gY2FzZSBvZiBtdWx0aXBsZSBob3RwbHVnL3VucGx1ZywgdGhlc2UKPiA+ ID4gICAgID4gKyAgICAgICogY2FuIGNhdXNlIHJhY2UgY29uZGl0aW9ucyB3aGlsZSBwcm9iaW5n IEVESUQuIEFsc28gaXRzCj4gPiA+ICAgICA+ICsgICAgICAqIHdhc3RlIG9mIENQVSBjeWNsZXMg dG8gcmVhZCB0aGUgRURJRCBhZ2FpbiBhbmQgYWdhaW4KPiA+ID4gICAgID4gKyAgICAgICogdW5s ZXNzIHRoZXJlIGlzIGEgcmVhbCBob3RwbHVnLgo+ID4gPiAgICAgPiArICAgICAgKiBTbywgcmVs eSBvbiBob3RwbHVncyBhbmQgaW5pdCB0byByZWFkIGVkaWQuCj4gPiA+ICAgICA+ICsgICAgICAq IENoZWNrIGNvbm5lY3RvciBzdGF0dXMgYmFzZWQgb24gYXZhaWxhYmlsaXR5IG9mIGNhY2hlZCBF RElELgo+ID4gPiAgICAgPiArICAgICAgKi8KPiA+ID4gICAgID4KPiA+ID4gICAgID4gLSAgICAg aW50ZWxfaGRtaV91bnNldF9lZGlkKGNvbm5lY3Rvcik7Cj4gPiA+ICAgICA+IC0KPiA+ID4gICAg ID4gLSAgICAgaWYgKGludGVsX2hkbWlfc2V0X2VkaWQoY29ubmVjdG9yKSkgewo+ID4gPiAgICAg PiArICAgICBpZiAoaW50ZWxfY29ubmVjdG9yLT5kZXRlY3RfZWRpZCkgewo+ID4gPiAgICAgPiAg ICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0KPiA+ID4gICAgaW50 ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwo+ID4gPiAgICAgPiAtCj4gPiA+ICAgICA+IC0g ICAgICAgICAgICAgaGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKS0+YmFzZS50eXBlID0KPiA+ ID4gICAgSU5URUxfT1VUUFVUX0hETUk7Cj4gPiA+ICAgICA+ICAgICAgICAgICAgICAgc3RhdHVz ID0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gPiA+ICAgICA+IC0gICAgIH0gZWxzZQo+ ID4gPiAgICAgPiArICAgICAgICAgICAgIGhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSktPmJh c2UudHlwZSA9Cj4gPiA+ICAgIElOVEVMX09VVFBVVF9IRE1JOwo+ID4gPiAgICAgPiArICAgICAg ICAgICAgIERSTV9ERUJVR19EUklWRVIoImhkbWkgc3RhdHVzID0gY29ubmVjdGVkXG4iKTsKPiA+ ID4gICAgID4gKyAgICAgfSBlbHNlIHsKPiA+ID4gICAgID4gICAgICAgICAgICAgICBzdGF0dXMg PSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiA+ID4gICAgID4gKyAgICAgICAgICAg ICBEUk1fREVCVUdfRFJJVkVSKCJoZG1pIHN0YXR1cyA9IGRpc2Nvbm5lY3RlZFxuIik7Cj4gPiA+ ICAgICA+ICsgICAgIH0KPiA+ID4gICAgID4KPiA+ID4gICAgID4gICAgICAgcmV0dXJuIHN0YXR1 czsKPiA+ID4gICAgID4gIH0KPiA+ID4gICAgID4gQEAgLTIxMDQsMTEgKzIxMzQsMTUgQEAgdm9p ZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdAo+ID4gPiAgICBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ID4gPiAgICAgPiAgICAgICBpbnRlbF9jb25uZWN0b3It PnVucmVnaXN0ZXIgPSBpbnRlbF9jb25uZWN0b3JfdW5yZWdpc3RlcjsKPiA+ID4gICAgID4KPiA+ ID4gICAgID4gICAgICAgaW50ZWxfaGRtaV9hZGRfcHJvcGVydGllcyhpbnRlbF9oZG1pLCBjb25u ZWN0b3IpOwo+ID4gPiAgICAgPiArICAgICBpbnRlbF9lbmNvZGVyLT5ob3RfcGx1ZyA9IGludGVs X2hkbWlfcHJvYmU7Cj4gPiA+ICAgICA+Cj4gPiA+ICAgICA+ICAgICAgIGludGVsX2Nvbm5lY3Rv cl9hdHRhY2hfZW5jb2RlcihpbnRlbF9jb25uZWN0b3IsIGludGVsX2VuY29kZXIpOwo+ID4gPiAg ICAgPiAgICAgICBkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+ICAgICA+ ICAgICAgIGludGVsX2hkbWktPmF0dGFjaGVkX2Nvbm5lY3RvciA9IGludGVsX2Nvbm5lY3RvcjsK PiA+ID4gICAgID4KPiA+ID4gICAgID4gKyAgICAgLyogU2V0IGVkaWQgZHVyaW5nIGluaXQgKi8K PiA+ID4gICAgID4gKyAgICAgaW50ZWxfaGRtaV9wcm9iZShpbnRlbF9lbmNvZGVyKTsKPiA+ID4K PiA+ID4gICAgU2VwYXJhdGUgcGF0Y2gsIGJ1dCB3ZSByZWFsbHkgZG9uJ3Qgd2FudCB0aGlzLCBp bml0aWFsIHByb2JlIHNob3VsZCBiZQo+ID4gPiAgICBkb25lIGFzeW5jIHRvIGF2b2lkIHN0YWxs aW5nIHRoZSBkcml2ZXIuCj4gPiA+ICAgIC1EYW5pZWwKPiA+IAo+ID4gV2hlcmUgZWxzZSBkbyB5 b3Ugc3VnZ2VzdCB0byBkbyB0aGlzPyBkZXRlY3QgY2FsbCBpcyBvbmUgcGxhY2Ugd2hpY2ggCj4g PiBkb2VzIHRoaXMgZm9yIERQIGFuZCB1c2VkIHRvIGRvIGZvciBIRE1JIGFsc28uCj4gPiBCdXQg c2luY2Ugd2UgbmVlZCB0byB0YWtlIHRoZSBlZGlkIHJlYWRpbmcgcGFydCBvdXQgb2YgZWRpZCwg SSBkb250IAo+ID4gc2VlIGFueSBvdGhlciBwbGFjZS4KPiA+IFBsZWFzZSBzdWdnZXN0Lgo+IAo+ IFlvdSBuZWVkIHRvIGluamVjdCBhIGZha2UgaHBkIG9yIHNpbWlsYXIgZXZlcnl0aW1lIHRoZSB3 b3JsZCBtaWdodCBoYXZlIGNoYW5nZWQgZnJvbSB1bmRlciB1cywgd2hpY2ggaXNuJ3QganVzdCBp bml0IGJ1dCBhbHNvIHN5c3RlbSByZXN1bWUuCj4gCj4gV2UgZG8gdGhhdCBhbHJlYWR5LCBzbyB5 b3UganVzdCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0IGtlZXBzIG9uIHdvcmtpbmcuCj4gUHJvYmFi bHkgYW5vdGhlciByZWFzb24gd2h5IGl0IHdvdWxkIGJlIGJldHRlciB0byByZXdvcmsgdGhhdCBl bnRpcmUgaHBkIGhhbmRsaW5nL2RldGVjdGlvbiBjb2RlLCB0byBtYWtlIHN1cmUgaXQncyBjbGVh biBhbmQgY2FuIGJlIHVuZGVyc3Rvb2QuCj4gCj4gQWRkaW5nIGhhY2tzIGxpa2UgdGhlc2UgaW4g dGhlIGluaXQgY29kZSBpcyBjZXJ0YWlubHkgdGhlIHdyb25nIGFwcHJvYWNoLCBzaW5jZSB3ZSBu ZXZlciBkb25lIGRldGVjdGlvbiB0aGlzIGVhcmx5IChzbyBzdXJwcmlzaW5nIGZyb20gYSBoaWdo LWxldmVsCj4gb3JkZXJpbmcpIGFuZCBpdCBhbHNvIG1pc3NlcyByZXN1bWUgKHdoaWNoIGlzIHdo eSBpdCBzaG91bGQgYmUgZG9uZSBpbiBjb2RlIHNoYXJlZCBiZXR3ZWVuIGRyaXZlciBsb2FkIGFu ZCByZXN1bWUpLgo+IC1EYW5pZWwKPiAtLQo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKRGFuaWVsIFZl dHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3 bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK