From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH RFC] drm: Add a new connector atomic property for link status Date: Wed, 23 Nov 2016 17:43:47 +0200 Message-ID: <20161123154347.GJ31595@intel.com> References: <1479864621-8105-1-git-send-email-manasi.d.navare@intel.com> <20161123080928.ywu4njrdk6s4xlsc@phenom.ffwll.local> <87shqiut0x.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Sean Paul Cc: Daniel Vetter , Intel Graphics Development , dri-devel List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBOb3YgMjMsIDIwMTYgYXQgMTA6MzI6NDRBTSAtMDUwMCwgU2VhbiBQYXVsIHdyb3Rl Ogo+IE9uIFdlZCwgTm92IDIzLCAyMDE2IGF0IDEwOjE1IEFNLCBKYW5pIE5pa3VsYQo+IDxqYW5p Lm5pa3VsYUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gT24gV2VkLCAyMyBOb3YgMjAxNiwg U2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+IHdyb3RlOgo+ID4+IE9uIFdlZCwgTm92 IDIzLCAyMDE2IGF0IDM6MDkgQU0sIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4gd3Jv dGU6Cj4gPj4+IE9uIFR1ZSwgTm92IDIyLCAyMDE2IGF0IDA5OjI3OjM1UE0gLTA1MDAsIFNlYW4g UGF1bCB3cm90ZToKPiA+Pj4+IE9uIFR1ZSwgTm92IDIyLCAyMDE2IGF0IDg6MzAgUE0sIE1hbmFz aSBOYXZhcmUKPiA+Pj4+IDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPiB3cm90ZToKPiA+Pj4+ ID4gVGhpcyBpcyBSRkMgcGF0Y2ggZm9yIGFkZGluZyBhIGNvbm5lY3RvciBsaW5rLXN0YXR1cyBw cm9wZXJ0eQo+ID4+Pj4gPiBhbmQgbWFraW5nIGl0IGF0b21pYyBieSBhZGRpbmcgaXQgdG8gdGhl IGRybV9jb25uZWN0b3Jfc3RhdGUuCj4gPj4+PiA+IFRoaXMgaXMgdG8gbWFrZSBzdXJlIGl0cyB3 aXJlZCBwcm9wZXJseSBpbiBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkKPiA+Pj4+ ID4gYW5kIGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eSBmdW5jdGlvbnMuCj4gPj4+ PiA+Cj4gPj4+Pgo+ID4+Pj4gVGhhbmtzIGZvciBzZW5kaW5nIHRoaXMuIFdlIHJhbiBpbnRvIHNv bWUgcmUtdHJhaW5pbmcgYXdrd2FyZG5lc3MKPiA+Pj4+IHJlY2VudGx5LCBhbmQgSQo+ID4+Pj4g d2FzIGhvcGluZyBmb3Igc3VjaCBhIHBhdGNoLgo+ID4+Pj4KPiA+Pj4+ID4gQ2M6IEphbmkgTmlr dWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4+PiA+IENjOiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KPiA+Pj4+ID4gQ2M6IFZpbGxlIFN5cmphbGEg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4+Pj4gPiBDYzogQ2hyaXMgV2lsc29u IDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPj4+PiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFz aSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPj4+PiA+IC0tLQo+ID4+Pj4g PiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICB8ICA1ICsrKysKPiA+Pj4+ID4gIGRy aXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgfCA2NSArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQo+ID4+Pj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5o ICAgICB8IDEyICsrKysrKystCj4gPj4+PiA+ICBpbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcu aCAgIHwgIDUgKysrKwo+ID4+Pj4gPiAgaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICB8 ICA0ICsrKwo+ID4+Pj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQo+ID4+Pj4gPgo+ID4+Pj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+Pj4+ID4gaW5k ZXggODk3MzdlNC4uNjQ0ZDE5ZiAxMDA2NDQKPiA+Pj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWMuYwo+ID4+Pj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j Cj4gPj4+PiA+IEBAIC0xMDg3LDYgKzEwODcsOSBAQCBpbnQgZHJtX2F0b21pY19jb25uZWN0b3Jf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPj4+PiA+ICAg ICAgICAgICAgICAgICAgKiBub3c/KSBhdG9taWMgd3JpdGVzIHRvIERQTVMgcHJvcGVydHk6Cj4g Pj4+PiA+ICAgICAgICAgICAgICAgICAgKi8KPiA+Pj4+ID4gICAgICAgICAgICAgICAgIHJldHVy biAtRUlOVkFMOwo+ID4+Pj4gPiArICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmln LT5saW5rX3N0YXR1c19wcm9wZXJ0eSkgewo+ID4+Pj4gPiArICAgICAgICAgICAgICAgc3RhdGUt Pmxpbmtfc3RhdHVzID0gdmFsOwo+ID4+Pgo+ID4+PiBJIHRoaW5rIHdlIHNob3VsZCBoYXZlIGEg Y2hlY2sgaGVyZSB0byBtYWtlIHN1cmUgdXNlcnNwYWNlIG5ldmVyIHRyaWVzIHRvCj4gPj4+IHNl dCB0aGlzIGZyb20gIkdPT0QiIHRvICJCQUQiLiAiQkFEIiB0byAiQkFEIiB3ZSBuZWVkIHRvIGFs bG93LCBzaW5jZSB3aXRoCj4gPj4+IGF0b21pYyB1c2Vyc3BhY2UgaXMgc3VwcG9zZWQgdG8gYmUg YWJsZSB0byBqdXN0IHJlc3RvcmUgZXZlcnl0aGluZyB0byB3aGF0Cj4gPj4+IGl0IHdhcy4KPiA+ Pj4KPiA+Pj4gSSBkb24ndCB0aGluayB0cnlpbmcgdG8gc2V0IGl0IHRvICJCQUQiIHNob3VsZCBj YXVzZSBhbiBlcnJvciB0aG91Z2gsIGp1c3QKPiA+Pj4gc2lsZW50bHkga2VlcCB0aGUgbGluayBz dGF0dXMgYXQgIkdPT0ciLiBTbzoKPiA+Pj4KPiA+Pj4gICAgICAgICAvKiBOZXZlciBkb3duZ3Jh ZGUgZnJvbSBHT09EIHRvIEJBRCBvbiB1c2Vyc3BhY2UncyByZXF1ZXN0IGhlcmUsCj4gPj4+ICAg ICAgICAgICogb25seSBodyBpc3N1ZXMgY2FuIGRvIHRoYXQuICovCj4gPj4+ICAgICAgICAgaWYg KHN0YXRlLT5saW5rX3N0YXR1cyA9PSBHT09EKQo+ID4+PiAgICAgICAgICAgICAgICAgcmV0dXJu IDA7Cj4gPj4KPiA+PiBDYW4gd2UgcmV0dXJuIGFuIGVycm9yIGlmIHRoZSB0cmFuc2l0aW9uIGlz IGludmFsaWQ/Cj4gPj4KPiA+Pj4gICAgICAgICBzdGF0ZS0+bGlua19zdGF0dXMgPSB2YWw7Cj4g Pj4+ICAgICAgICAgcmV0dXJuIDA7Cj4gPj4+Cj4gPj4+PiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gMDsKPiA+Pj4+ID4gICAgICAgICB9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21p Y19zZXRfcHJvcGVydHkpIHsKPiA+Pj4+ID4gICAgICAgICAgICAgICAgIHJldHVybiBjb25uZWN0 b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5KGNvbm5lY3RvciwKPiA+Pj4+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gPj4+PiA+ IEBAIC0xMTM1LDYgKzExMzgsOCBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9w cmludF9zdGF0ZShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsCj4gPj4+PiA+ICAgICAgICAgICAgICAg ICAqdmFsID0gKHN0YXRlLT5jcnRjKSA/IHN0YXRlLT5jcnRjLT5iYXNlLmlkIDogMDsKPiA+Pj4+ ID4gICAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ZHBtc19wcm9wZXJ0eSkg ewo+ID4+Pj4gPiAgICAgICAgICAgICAgICAgKnZhbCA9IGNvbm5lY3Rvci0+ZHBtczsKPiA+Pj4+ ID4gKyAgICAgICB9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+bGlua19zdGF0dXNfcHJv cGVydHkpIHsKPiA+Pj4+ID4gKyAgICAgICAgICAgICAgICp2YWwgPSBzdGF0ZS0+bGlua19zdGF0 dXM7Cj4gPj4+PiA+ICAgICAgICAgfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNf Z2V0X3Byb3BlcnR5KSB7Cj4gPj4+PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gY29ubmVjdG9y LT5mdW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCj4gPj4+PiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUsIHByb3BlcnR5LCB2YWwpOwo+ID4+Pj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+Pj4+ID4gaW5kZXggNWE0NTI2Mi4uNDU3NmM5ZiAxMDA2 NDQKPiA+Pj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4+Pj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPj4+PiA+IEBAIC0yNDMs NiArMjQzLDEwIEBAIGludCBkcm1fY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiA+Pj4+ID4gICAgICAgICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmY29ubmVjdG9y LT5iYXNlLAo+ID4+Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bmZpZy0+ZHBtc19wcm9wZXJ0eSwgMCk7Cj4gPj4+PiA+Cj4gPj4+PiA+ICsgICAgICAgZHJtX29i amVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPiA+Pj4+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWctPmxpbmtfc3RhdHVzX3Byb3BlcnR5LAo+ ID4+Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwo+ID4+Pj4gPiAr Cj4gPj4+PiA+ICAgICAgICAgaWYgKGRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJf QVRPTUlDKSkgewo+ID4+Pj4gPiAgICAgICAgICAgICAgICAgZHJtX29iamVjdF9hdHRhY2hfcHJv cGVydHkoJmNvbm5lY3Rvci0+YmFzZSwgY29uZmlnLT5wcm9wX2NydGNfaWQsIDApOwo+ID4+Pj4g PiAgICAgICAgIH0KPiA+Pj4+ID4gQEAgLTUwNiw2ICs1MTAsMTIgQEAgY29uc3QgY2hhciAqZHJt X2dldF9zdWJwaXhlbF9vcmRlcl9uYW1lKGVudW0gc3VicGl4ZWxfb3JkZXIgb3JkZXIpCj4gPj4+ PiA+ICB9Owo+ID4+Pj4gPiAgRFJNX0VOVU1fTkFNRV9GTihkcm1fZ2V0X2RwbXNfbmFtZSwgZHJt X2RwbXNfZW51bV9saXN0KQo+ID4+Pj4gPgo+ID4+Pj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fcHJvcF9lbnVtX2xpc3QgZHJtX2xpbmtfc3RhdHVzX2VudW1fbGlzdFtdID0gewo+ID4+Pj4g PiArICAgICAgIHsgRFJNX01PREVfTElOS19TVEFUVVNfR09PRCwgIkdvb2QiIH0sCj4gPj4+PiA+ ICsgICAgICAgeyBEUk1fTU9ERV9MSU5LX1NUQVRVU19CQUQsICJCYWQiIH0sCj4gPj4+PiA+ICt9 Owo+ID4+Pj4gPiArRFJNX0VOVU1fTkFNRV9GTihkcm1fZ2V0X2xpbmtfc3RhdHVzX25hbWUsIGRy bV9saW5rX3N0YXR1c19lbnVtX2xpc3QpCj4gPj4+PiA+ICsKPiA+Pj4+ID4gIC8qKgo+ID4+Pj4g PiAgICogZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMgLSBzZXQgdGhlIHN1cHBvcnRl ZCBidXMgZm9ybWF0cwo+ID4+Pj4gPiAgICogQGluZm86IGRpc3BsYXkgaW5mbyB0byBzdG9yZSBi dXMgZm9ybWF0cyBpbgo+ID4+Pj4gPiBAQCAtNjE2LDcgKzYyNiw3IEBAIGludCBkcm1fZGlzcGxh eV9pbmZvX3NldF9idXNfZm9ybWF0cyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbywKPiA+ Pj4+ID4gICAqICAgICBwYXRoIHByb3BlcnR5IHRoZSBNU1QgbWFuYWdlciBjcmVhdGVkLiBVc2Vy c3BhY2UgY2Fubm90IGNoYW5nZSB0aGlzCj4gPj4+PiA+ICAgKiAgICAgcHJvcGVydHkuCj4gPj4+ PiA+ICAgKiBUSUxFOgo+ID4+Pj4gPiAtICogICAgIENvbm5lY3RvciB0aWxlIGdyb3VwIHByb3Bl cnR5IHRvIGluZGljYXRlIGhvdyBhIHNldCBvZiBEUk0gY29ubmVjdG9yCj4gPj4+PiA+ICsgKiAg ICAgIENvbm5lY3RvciB0aWxlIGdyb3VwIHByb3BlcnR5IHRvIGluZGljYXRlIGhvdyBhIHNldCBv ZiBEUk0gY29ubmVjdG9yCj4gPj4+Pgo+ID4+Pj4ga2V5Ym9hcmQgc2xpcCBoZXJlCj4gPj4+Pgo+ ID4+Pj4gPiAgICogICAgIGNvbXBvc2UgdG9nZXRoZXIgaW50byBvbmUgbG9naWNhbCBzY3JlZW4u IFRoaXMgaXMgdXNlZCBieSBib3RoIGhpZ2gtcmVzCj4gPj4+PiA+ICAgKiAgICAgZXh0ZXJuYWwg c2NyZWVucyAob2Z0ZW4gb25seSB1c2luZyBhIHNpbmdsZSBjYWJsZSwgYnV0IGV4cG9zaW5nIG11 bHRpcGxlCj4gPj4+PiA+ICAgKiAgICAgRFAgTVNUIHNpbmtzKSwgb3IgaGlnaC1yZXMgaW50ZWdy YXRlZCBwYW5lbHMgKGxpa2UgZHVhbC1saW5rIERTSSkgd2hpY2gKPiA+Pj4+ID4gQEAgLTYyNSw3 ICs2MzUsMTQgQEAgaW50IGRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKHN0cnVjdCBk cm1fZGlzcGxheV9pbmZvICppbmZvLAo+ID4+Pj4gPiAgICogICAgIHRpbGluZyBhbmQgdmlydHVh bGl6ZSBib3RoICZkcm1fY3J0YyBhbmQgJmRybV9wbGFuZSBpZiBuZWVkZWQuIERyaXZlcnMKPiA+ Pj4+ID4gICAqICAgICBzaG91bGQgdXBkYXRlIHRoaXMgdmFsdWUgdXNpbmcgZHJtX21vZGVfY29u bmVjdG9yX3NldF90aWxlX3Byb3BlcnR5KCkuCj4gPj4+PiA+ICAgKiAgICAgVXNlcnNwYWNlIGNh bm5vdCBjaGFuZ2UgdGhpcyBwcm9wZXJ0eS4KPiA+Pj4+ID4gLSAqCj4gPj4+PiA+ICsgKiBsaW5r LXN0YXR1czoKPiA+Pj4+ID4gKyAqICAgICAgQ29ubmVjdG9yIGxpbmstc3RhdHVzIHByb3BlcnR5 IHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2YgbGluayBkdXJpbmcKPiA+Pj4+ID4gKyAqICAgICAg dGhlIG1vZGVzZXQuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIGxpbmstc3RhdHVzIGlzICJHT09EIi4g SWYgc29tZXRoaW5nCj4gPj4+PiA+ICsgKiAgICAgIGZhaWxzIGR1cmluZyBtb2Rlc2V0LCB0aGUg a2VybmVsIGRyaXZlciBjYW4gc2V0IHRoaXMgdG8gIkJBRCIsIHBydW5lCj4gPj4+PiA+ICsgKiAg ICAgIHRoZSBtb2RlIGxpc3QgYmFzZWQgb24gbmV3IGxpbmsgcGFyYW1ldGVycyBhbmQgc2VuZCBh IGhvdHBsdWcgdWV2ZW50Cj4gPj4+PiA+ICsgKiAgICAgIHRvIG5vdGlmeSB1c2Vyc3BhY2UgdG8g cmUtY2hlY2sgdGhlIHZhbGlkIG1vZGVzIHRocm91Z2ggR0VUX0NPTk5FQ1RPUgo+ID4+Pj4gPiAr ICogICAgICBJT0NUTCBhbmQgcmVkbyBhIG1vZGVzZXQuIERyaXZlcnMgc2hvdWxkIHVwZGF0ZSB0 aGlzIHZhbHVlIHVzaW5nCj4gPj4+PiA+ICsgKiAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRf bGlua19zdGF0dXNfcHJvcGVydHkoKS4KPiA+Pj4+ID4gICAqIENvbm5lY3RvcnMgYWxzbyBoYXZl IG9uZSBzdGFuZGFyZGl6ZWQgYXRvbWljIHByb3BlcnR5Ogo+ID4+Pj4gPiAgICoKPiA+Pj4+ID4g ICAqIENSVENfSUQ6Cj4gPj4+PiA+IEBAIC02NjYsNiArNjgzLDEzIEBAIGludCBkcm1fY29ubmVj dG9yX2NyZWF0ZV9zdGFuZGFyZF9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g Pj4+PiA+ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiA+Pj4+ID4gICAgICAgICBk ZXYtPm1vZGVfY29uZmlnLnRpbGVfcHJvcGVydHkgPSBwcm9wOwo+ID4+Pj4gPgo+ID4+Pj4gPiAr ICAgICAgIHByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZGV2LCBEUk1fTU9ERV9QUk9Q X0FUT01JQywgImxpbmstc3RhdHVzIiwKPiA+Pj4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QsCj4gPj4+PiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpFKGRybV9saW5rX3N0 YXR1c19lbnVtX2xpc3QpKTsKPiA+Pj4+ID4gKyAgICAgICBpZiAoIXByb3ApCj4gPj4+PiA+ICsg ICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiA+Pj4+ID4gKyAgICAgICBkZXYtPm1vZGVf Y29uZmlnLmxpbmtfc3RhdHVzX3Byb3BlcnR5ID0gcHJvcDsKPiA+Pj4+ID4gKwo+ID4+Pj4gPiAg ICAgICAgIHJldHVybiAwOwo+ID4+Pj4gPiAgfQo+ID4+Pj4gPgo+ID4+Pj4gPiBAQCAtOTk1LDYg KzEwMTksNDMgQEAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4+Pj4gPiAgfQo+ID4+Pj4gPiAgRVhQ T1JUX1NZTUJPTChkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHkpOwo+ID4+ Pj4gPgo+ID4+Pj4gPiArLyoqCj4gPj4+PiA+ICsgKiBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xp bmtfc3RhdHVzX3Byb3BlcnR5IC0gU2V0IGxpbmsgc3RhdHVzIHByb3BlcnR5IG9mIGEgY29ubmVj dG9yCj4gPj4+PiA+ICsgKiBAY29ubmVjdG9yOiBkcm0gY29ubmVjdG9yCj4gPj4+PiA+ICsgKiBA bGlua19zdGF0dXM6IG5ldyB2YWx1ZSBvZiBsaW5rIHN0YXR1cyBwcm9wZXJ0eSAoMDogR29vZCwg MTogQmFkKQo+ID4+Pj4gPiArICoKPiA+Pj4+ID4gKyAqIEluIHVzdWFsIHdvcmtpbmcgc2NlbmFy aW8sIHRoaXMgbGluayBzdGF0dXMgcHJvcGVydHkgd2lsbCBhbHdheXMgYmUgc2V0IHRvCj4gPj4+ PiA+ICsgKiAiR09PRCIuIElmIHNvbWV0aGluZyBmYWlscyBkdXJpbmcgb3IgYWZ0ZXIgYSBtb2Rl IHNldCwgdGhlIGtlcm5lbCBkcml2ZXIgc2hvdWxkCj4gPj4+PiA+ICsgKiBzZXQgdGhpcyBsaW5r IHN0YXR1cyBwcm9wZXJ0eSB0byAiQkFEIiBhbmQgcHJ1bmUgdGhlIG1vZGUgbGlzdCBiYXNlZCBv biBuZXcKPiA+Pj4+Cj4gPj4+PiBEb2VzIHRoZSBtb2RlIGxpc3QgcmVhbGx5ICpuZWVkKiB0byBi ZSBwcnVuZWQ/IEluIHRoZSBjYXNlIG9mIG5lZWRpbmcKPiA+Pj4+IHRvIHJlLXRyYWluIGEgRFAg bGluaywKPiA+Pj4+IGl0IHNlZW1zIGxpa2Ugd2Ugc2hvdWxkIGJlIGFibGUgdG8gc2V0IHRoaXMg QkFEIGFuZCBrZWVwIHRoZSBtb2RlbGlzdAo+ID4+Pj4gYXMtaXMgKHNpbmNlIHRoZSBzaW5rCj4g Pj4+PiBoYXNuJ3QgY2hhbmdlZCkKPiA+Pj4KPiA+Pj4gV2VsbCwgaWYgeW91IHBydW5lIGl0IHdp dGggdGhlIHNhbWUgY29uc3RyYWludHMgYXMgYmVmb3JlLCBubyBhZGRpdGlvbmFsCj4gPj4+IG1v ZGVzIHdpbGwgYmUgcmVtb3ZlZCBhbmQgdGhlIHNhbWUgbGlzdCBpcyB0aGVyZS4gUHJ1bmluZyBo ZXJlIHJlZmVycyB0bwo+ID4+PiB0aGUgLT5tb2RlX3ZhbGlkIHN0ZXAgYXMgZG9uZSBpbiBlLmcu IGRybV9oZWxwZXJfcHJvYmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2Rlcy4KPiA+Pj4KPiA+Pj4gV2Ug bWlnaHQgd2FudCB0byBiZSBhIGJpdCBtb3JlIGV4cGxpY2l0IGhlcmUgcGVyaGFwcz8gSGF2ZSBz b21lIGdvb2QKPiA+Pj4gcHJvcG9zYWwgdGV4dCB0byBpbnNlcnQ/Cj4gPj4KPiA+PiBBaCwgaG1t LCBJIGhhZG4ndCBlcXVhdGVkIHRoaXMgcHJ1bmUgdG8gdGhlIG5vcm1hbCBkcm1fY29ubmVjdG9y Cj4gPj4gcHJ1bmVfaW52YWxpZC4gSSBzdXBwb3NlIHRoZSAiYmFzZWQgb24gbmV3IGluZm9ybWF0 aW9uIiBpcyB3aGF0IGRpZAo+ID4+IGl0LiBJdCBzZWVtcyBsaWtlIHRoZSBtb2RlX3ZhbGlkIHBy dW5pbmcgd2lsbCBoYXBwZW4gYXV0b21hZ2ljYWxseQo+ID4+IHdoZW4gdXNlcnNwYWNlIHJlYWxp emVzIHRoZSBjb25uZWN0aW9uIGlzIEJBRCBhbmQgYXNrcyBmb3IgYSBuZXcgbW9kZQo+ID4+IGxp c3QuIFNvIGlzIGl0IHdvcnRoIGV2ZW4gbWVudGlvbmluZyBwcnVuaW5nIHRoZSBtb2RlIGxpc3Q/ Cj4gPj4KPiA+Pj4+Cj4gPj4+PiA+ICsgKiBpbmZvcm1hdGlvbi4gVGhlIGNhbGxlciB0aGVuIG5l ZWRzIHRvIHNlbmQgYSBob3RwbHVnIHVldmVudCBmb3IgdXNlcnNwYWNlIHRvCj4gPj4+PiA+ICsg KiAgcmUtY2hlY2sgdGhlIHZhbGlkIG1vZGVzIHRocm91Z2ggR0VUX0NPTk5FQ1RPUl9JT0NUTCBh bmQgcmV0cnkgbW9kZXNldC4KPiA+Pj4+Cj4gPj4+PiBleHRyYSBzcGFjZQo+ID4+Pj4KPiA+Pj4+ ID4gKyAqCj4gPj4+PiA+ICsgKiBOb3RlIHRoYXQgYSBsb3Qgb2YgZXhpc3RpbmcgdXNlcnNwYWNl IGRvIG5vdCBoYW5kbGUgdGhpcyBwcm9wZXJ0eS4KPiA+Pj4+ID4gKyAqIERyaXZlcnMgY2FuIHRo ZXJlZm9yZSBub3QgcmVseSBvbiB1c2Vyc3BhY2UgdG8gZml4IHVwIGV2ZXJ5dGhpbmcgYW5kCj4g Pj4+PiA+ICsgKiBzaG91bGQgdHJ5IHRvIGhhbmRsZSBpc3N1ZXMgKGxpa2UganVzdCByZS10cmFp bmluZyBhIGxpbmspIHdpdGhvdXQKPiA+Pj4+ID4gKyAqIHVzZXJzcGFjZSdzIGludGVydmVudGlv bi4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4gdGhlIGN1cnJlbnQgbW9kZQo+ID4+Pj4g PiArICogZmFpbHMgYW5kIHVzZXJzcGFjZSBtdXN0IHNlbGVjdCBhIGRpZmZlcmVudCBkaXNwbGF5 IG1vZGUuCj4gPj4+Pgo+ID4+Pj4gSG1tLCBJIHN1cHBvc2UgdGhpcyBhbnN3ZXJzIG15IGxhc3Qg cXVlc3Rpb24uIEl0J3MgdG9vIGJhZCB3ZSBjYW4ndAo+ID4+Pj4gcmVseSBvbiB0aGlzLCBzaW5j ZSB3ZSdsbAo+ID4+Pj4ganVzdCBlbmQgdXAgd2l0aCBlYWNoIGRyaXZlciByb2xsaW5nIHRoZWly IG93biByZS10cmFpbmluZyBsb2dpYyBvbgo+ID4+Pj4gdG9wIG9mIHBvc3NpYmx5IHN1cHBvcnRp bmcKPiA+Pj4+IHRoaXMgKGJ1dCBwcm9iYWJseSBub3QsIHNpbmNlIGl0J3MgcmVhbGx5IGp1c3Qg b3ZlcmhlYWQpLiBQZXJoYXBzIHRoaXMKPiA+Pj4+IGlzIGFuIG92ZXJseSBwZXNzaW1pc3RpYwo+ ID4+Pj4gdmlldz8KPiA+Pj4KPiA+Pj4gWW91IGNhbiBmb3JnbyBhbnkgcmUtdHJhaW5pbmcgb2Yg Y291cnNlLCB0aGF0IHNob3VsZCB3b3JrIHRvby4gSXQncyBqdXN0Cj4gPj4+IHRoYXQgRFAgc3Bl YyBhbmQgZXZlcnlvbmUgZWxzZSBzZWVtIHRvIHJlY29tbWVuZCB0byBhdCBsZWFzdCBkbyBzb21l Cj4gPj4+IG1pbmltYWwgZWZmb3J0IChvciBtYXliZSBldmVuIHVwZnJvbnQgbGluayB0cmFpbmlu ZykgaGVyZS4gQnV0IHRvdGFsbHkgbm90Cj4gPj4+IGRvaW5nIGFueXRoaW5nIGlmIHRoZSBsaW5r IGlzIGJhZCBzaG91bGQgYmUgb2sgdG9vIChhbmQgcHJvYmFibHkgcmVhbGx5Cj4gPj4+IHNpbXBs ZSB0byBpbXBsZW1lbnQgZm9yIGRyaXZlcnMsIG1heWJlIGV2ZW4gd2l0aCBhIGRwX2hwZF9oYW5k bGVyKCkgaGVscGVyCj4gPj4+IGZ1bmN0aW9uIHdoaWNoIGNoZWNrcyBsaW5rIHN0YXR1cyBhbmQg c2V0IGxpbmstc3RhdHVzIHRvIGJhZCZmaXJlcyBvZmYgdGhlCj4gPj4+IHVldmVudCBpZiBuZWVk ZWQuCj4gPj4+Cj4gPj4+IEFnYWluLCBkbyB5b3UgaGF2ZSBzb21lIHNhbXBsZSBwcm9zZSB0byBh ZGQgaGVyZSB0byBjbGFyaWZ5IHRoaXM/Cj4gPj4+Cj4gPj4KPiA+PiBJIGRvbid0IHRoaW5rIGl0 J3MgbWVyZWx5IGEgbWF0dGVyIG9mIGNsYXJpZnlpbmcgdGhlIGNvbW1lbnQsIHRiaC4KPiA+PiBX aXRob3V0IHJlbHlpbmcgb24gdXNlcnNwYWNlIHRvIGZpeCB1cywgdGhlcmUncyBub3QgbXVjaCBw b2ludCBpbgo+ID4+IGV4cG9zaW5nIHRoZSBwcm9wZXJ0eSBpbiB0aGUgZmlyc3QgcGxhY2UuCj4g Pj4KPiA+PiBBcyBhIGRyaXZlciBhdXRob3IsIEkgbmVlZCB0byBkZWNpZGUgd2hldGhlciBJIHdh bnQgcmUtdHJhaW5pbmcgdG8KPiA+PiB3b3JrIHByb3Blcmx5LiBJZiBJIGRvLCBJIG5lZWQgdG8g aGFuZHJvbGwgaXQgaW4gbXkgZHJpdmVyIHNpbmNlIEkKPiA+PiBjYW4ndCByZWx5IG9uIHVzZXJz cGFjZSwgYXQgd2hpY2ggcG9pbnQsIGltcGxlbWVudGluZyB0aGUgcHJvcGVydHkKPiA+PiBpc24n dCBtZWFuaW5nZnVsLiBJZiBJIGRvbid0IGNhcmUgYWJvdXQgaXQgYmVpbmcgYnVsbGV0cHJvb2Ys IEkgY2FuCj4gPj4gZXhwb3NlIHRoZSBwcm9wZXJ0eSBhbmQgbGV0IHVzZXJzcGFjZSBmaXggbWUg aWYgdGhleSBrbm93IGhvdy4KPiA+Pgo+ID4+IFNvIEknZCBwcmVmZXIgdG8gaGF2ZSB0aGUgaGVs cGVyIGJlIGEgaHlicmlkIGJldHdlZW4gdGhpcyBwYXRjaCBhbmQKPiA+PiB0aGUgcHJldmlvdXMg b25lIHRoYXQgZGlkIGEgZnVsbCBtb2Rlc2V0IHVuZGVyIHRoZSBjb3ZlcnMgKHBlcmhhcHMKPiA+ PiB3aXRoIGEgY2xpZW50IGNhcCBvciBzaW1pbGFyIHRvIGxldCB1cyBrbm93IHdoaWNoIHBhdGgg dG8gdHJ1c3QpLiBUaGF0Cj4gPj4gd2F5IEkgY2FuIGNhbGwgdGhlIGhlbHBlciBmcm9tIG15IGRy aXZlciBhbmQga25vdyB0aGF0IEknbSBnb2luZyB0byBiZQo+ID4+IHJlLXRyYWluZWQgZWl0aGVy IHdheS4KPiA+Cj4gPiBJZiB5b3VyIGRyaXZlciBpcyBhYmxlIHRvIGhhbmRsZSBldmVyeXRoaW5n IGluIGtlcm5lbCwgdGhlbiBkbyBzbyBieSBhbGwKPiA+IG1lYW5zLiBJZiBpdCBjYW4ndCwgZGVm ZXIgdG8gdXNlcnNwYWNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBmaXggc3R1ZmYsCj4gPiBkZXBl bmRpbmcgb24gd2hldGhlciBpdCBsb29rcyBhdCB0aGUgcHJvcGVydHkuIElmIHRoZSB1c2Vyc3Bh Y2UgZG9lc24ndAo+ID4gZG8gYW55dGhpbmcsIHRoaW5ncyB3aWxsIGJlIGp1c3QgYXMgZ29vZCBv ciBiYWQgYXMgdGhleSBhcmUgY3VycmVudGx5LAo+ID4gYmVmb3JlIHRoaXMgcHJvcGVydHkuCj4g Pgo+ID4gVGhpcyBhbGxvd3MgdGhlIGRyaXZlcnMgdG8gY2hvb3NlIGhvdyBtdWNoIHRoZXkgY2Fu L3dhbnQgdG8gZG8gaW4KPiA+IGtlcm5lbCwgYW5kIHdoYXQgdGhleSBkZWZlciB0byB1c2Vyc3Bh Y2UuCj4gPgo+IAo+IEp1c3QgYmVjYXVzZSBJIGNhbiwgZG9lc24ndCBtZWFuIEkgd2FudCB0byA6 KQo+IAo+IFRha2UgdGhlIENETiBEUCBkcml2ZXIgaW4gcm9ja2NoaXAgZm9yIGV4YW1wbGUgKHBv c3RlZCB5ZXN0ZXJkYXkpLgo+IFRoZXJlJ3MgYSB3b3JrZXIgaW4gdGhlIGRyaXZlciB0aGF0IGlz IHJlc3BvbnNpYmxlIGZvciBoYW5kbGluZwo+IGhwZC9leHRjb24gZXZlbnRzIGZyb20gdGhlIFVT Qi1DIHBvcnQuIElkZWFsbHksIHRoaXMgd29ya2VyIHNob3VsZAo+IGp1c3QgYmUgYSB0aGluIHNo ZWxsIGFyb3VuZCBhIGttcyB1ZXZlbnQgdGhhdCBsZXRzIHVzZXJzcGFjZSBrbm93Cj4gdGhlcmUn cyBiZWVuIGEgY2hhbmdlLiBVbmZvcnR1bmF0ZWx5IHNpbmNlIHdlIG5lZWQgdG8gbWFrZSByZS10 cmFpbmluZwo+IHdvcmsgKC9tZSBncnVtYmxlcyBhYm91dCBwcm9kdWN0aXphdGlvbikgc2VhbWxl c3NseSwgd2UgbmVlZCB0byBhZGQgYQo+IGJ1bmNoIG9mIGdvbyBpbnRvIHRoZSB3b3JrZXIgdG8g aGFuZGxlIHJlLXRyYWluaW5nLiBTaW5jZSB3ZSBuZWVkIHRvCj4gaGFuZGxlIHJlLXRyYWluaW5n IHRoZXJlIGFuZCBpbiBtb2Rlc2V0LCB3ZSBuZWVkIHRvIHByb3Blcmx5Cj4gc3luY2hyb25pemUg dGhpbmdzLiBTbyB3ZSBlbmQgdXAgd2l0aCBhIGJ1bmNoIG9mIGNvZGUgdGhhdCBkb2Vzbid0Cj4g KnJlYWxseSogbmVlZCB0byBiZSB0aGVyZS4KPiAKPiBTbyBpcyB0aGUgY29ycmVjdCBwYXRoIGZv cndhcmQgdG8gYWRkIEdPT0QvQkFEIGNvbm5lY3Rpb24gaGFuZGxpbmcgdG8KPiBDaHJvbWUvZHJt X2h3YyBhbmQgcmlwIHJlLXRyYWluaW5nIG91dCBvZiB0aGUgdmFyaW91cyBrZXJuZWwgZHJpdmVy cz8KCkluIGk5MTUgSSB0aGluayB3ZSBtaWdodCBzdGlsbCB3YW50IHRvIGRvIHRoZSAidHJ5IHRv IHJldHJhaW4gd2l0aAp0aGUgY3VycmVudCBsaW5rIHBhcmFtZXRlcnMiIHRoaW5nIGF1dG9tYWdp Y2FsbHkuIEl0J3Mgbm90IGRpZmZpY3VsdAp0byBkbyBhZnRlciBhbGwsIGFuZCBzaG91bGQgYmUg ZmFzdGVyIHRoYW4gZG9pbmcgYSBmdWxsIG1vZGVzZXQuCgo+IAo+IFNlYW4KPiAKPiAKPiA+IEJS LAo+ID4gSmFuaS4KPiA+Cj4gPgo+ID4KPiA+Pgo+ID4+IFNlYW4KPiA+Pgo+ID4+Cj4gPj4+IFRo YW5rcyBmb3IgdGFraW5nIGEgbG9vayBhdCB0aGlzLgo+ID4+Pgo+ID4+PiBDaGVlcnMsIERhbmll bAo+ID4+Pgo+ID4+Pj4gPiArICogVGhlIERSTSBkcml2ZXIgY2FuIGNob3NlIHRvIG5vdCBtb2Rp ZnkgcHJvcGVydHkgYW5kIGtlZXAgbGluayBzdGF0dXMKPiA+Pj4+ID4gKyAqIGFzICJHT09EIiBh bHdheXMgdG8ga2VlcCB0aGUgdXNlciBleHBlcmllbmNlIHNhbWUgYXMgaXQgY3VycmVudGx5IGlz Lgo+ID4+Pj4gPiArICoKPiA+Pj4+ID4gKyAqIFRoZSByZWFzb24gZm9yIGFkZGluZyB0aGlzIHBy b3BlcnR5IGlzIHRvIGhhbmRsZSBsaW5rIHRyYWluaW5nIGZhaWx1cmVzLCBidXQKPiA+Pj4+ID4g KyAqIGl0IGlzIG5vdCBsaW1pdGVkIHRvIERQIG9yIGxpbmsgdHJhaW5pbmcuIEZvciBleGFtcGxl LCBpZiB3ZSBpbXBsZW1lbnQKPiA+Pj4+ID4gKyAqIGFzeW5jaHJvbm91cyBzZXRjcnRjLCB0aGlz IHByb3BlcnR5IGNhbiBiZSB1c2VkIHRvIHJlcG9ydCBhbnkgZmFpbHVyZXMgaW4gdGhhdC4KPiA+ Pj4+ID4gKyAqLwo+ID4+Pj4gPiArdm9pZCBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xpbmtfc3Rh dHVzX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPj4+PiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBs aW5rX3N0YXR1cykKPiA+Pj4+ID4gK3sKPiA+Pj4+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4gPj4+PiA+ICsKPiA+Pj4+ID4gKyAgICAgICAvKiBN YWtlIHN1cmUgdGhlIG11dGV4IGlzIGdyYWJiZWQgKi8KPiA+Pj4+ID4gKyAgICAgICBsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiA+Pj4+ID4gKyAgICAgICBj b25uZWN0b3ItPmxpbmtfc3RhdHVzID0gbGlua19zdGF0dXM7Cj4gPj4+PiA+ICsgICAgICAgZHJt X29iamVjdF9wcm9wZXJ0eV9zZXRfdmFsdWUoJmNvbm5lY3Rvci0+YmFzZSwKPiA+Pj4+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPm1vZGVfY29uZmlnLmxpbmtf c3RhdHVzX3Byb3BlcnR5LAo+ID4+Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpbmtfc3RhdHVzKTsKPiA+Pj4+ID4gK30KPiA+Pj4+ID4gK0VYUE9SVF9TWU1CT0wo ZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eSk7Cj4gPj4+PiA+ICsK PiA+Pj4+ID4gIGludCBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X29ial9wcm9wKHN0cnVjdCBkcm1f bW9kZV9vYmplY3QgKm9iaiwKPiA+Pj4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcGVydHksCj4gPj4+PiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHZhbHVlKQo+ID4+Pj4gPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5l Y3Rvci5oCj4gPj4+PiA+IGluZGV4IDM0Zjk3NDEuLjNkNTEzYWIgMTAwNjQ0Cj4gPj4+PiA+IC0t LSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4+Pj4gPiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fY29ubmVjdG9yLmgKPiA+Pj4+ID4gQEAgLTIxMyw2ICsyMTMsOSBAQCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gPj4+PiA+Cj4gPj4+PiA+ICAgICAgICAgc3RydWN0IGRybV9l bmNvZGVyICpiZXN0X2VuY29kZXI7Cj4gPj4+PiA+Cj4gPj4+PiA+ICsgICAgICAgLyogQ29ubmVj dG9yIExpbmsgc3RhdHVzICovCj4gPj4+PiA+ICsgICAgICAgdW5zaWduZWQgaW50IGxpbmtfc3Rh dHVzOwo+ID4+Pj4gPiArCj4gPj4+PiA+ICAgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlOwo+ID4+Pj4gPiAgfTsKPiA+Pj4+ID4KPiA+Pj4+ID4gQEAgLTY5NSw2ICs2OTgsMTIg QEAgc3RydWN0IGRybV9jb25uZWN0b3Igewo+ID4+Pj4gPiAgICAgICAgIHVpbnQ4X3QgbnVtX2hf dGlsZSwgbnVtX3ZfdGlsZTsKPiA+Pj4+ID4gICAgICAgICB1aW50OF90IHRpbGVfaF9sb2MsIHRp bGVfdl9sb2M7Cj4gPj4+PiA+ICAgICAgICAgdWludDE2X3QgdGlsZV9oX3NpemUsIHRpbGVfdl9z aXplOwo+ID4+Pj4gPiArCj4gPj4+PiA+ICsgICAgICAgLyogQ29ubmVjdG9yIExpbmsgc3RhdHVz Cj4gPj4+PiA+ICsgICAgICAgICogMDogSWYgdGhlIGxpbmsgaXMgR29vZAo+ID4+Pj4gPiArICAg ICAgICAqIDE6IElmIHRoZSBsaW5rIGlzIEJhZAo+ID4+Pj4gPiArICAgICAgICAqLwo+ID4+Pj4g PiArICAgICAgIGludCBsaW5rX3N0YXR1czsKPiA+Pj4+ID4gIH07Cj4gPj4+PiA+Cj4gPj4+PiA+ ICAjZGVmaW5lIG9ial90b19jb25uZWN0b3IoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBkcm1f Y29ubmVjdG9yLCBiYXNlKQo+ID4+Pj4gPiBAQCAtNzY3LDEyICs3NzYsMTMgQEAgaW50IGRybV9t b2RlX2NyZWF0ZV90dl9wcm9wZXJ0aWVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPj4+PiA+ ICBpbnQgZHJtX21vZGVfY3JlYXRlX3NjYWxpbmdfbW9kZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiA+Pj4+ID4gIGludCBkcm1fbW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3By b3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4+Pj4gPiAgaW50IGRybV9tb2RlX2Ny ZWF0ZV9zdWdnZXN0ZWRfb2Zmc2V0X3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 Cj4gPj4+PiA+IC0KPiA+Pj4+Cj4gPj4+PiBsb3N0IGEgbGluZSBoZXJlCj4gPj4+Pgo+ID4+Pj4g PiAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfcGF0aF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAo+ID4+Pj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGgpOwo+ID4+Pj4gPiAgaW50IGRybV9tb2RlX2Nv bm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y KTsKPiA+Pj4+ID4gIGludCBkcm1fbW9kZV9jb25uZWN0b3JfdXBkYXRlX2VkaWRfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+Pj4+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZWRpZCAqZWRpZCk7Cj4g Pj4+PiA+ICt2b2lkIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHko c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+Pj4+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGxpbmtfc3RhdHVzKTsK PiA+Pj4+ID4KPiA+Pj4+ID4gIC8qKgo+ID4+Pj4gPiAgICogc3RydWN0IGRybV90aWxlX2dyb3Vw IC0gVGlsZSBncm91cCBtZXRhZGF0YQo+ID4+Pj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX21vZGVfY29uZmlnLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+ID4+Pj4g PiBpbmRleCBiZjk5OTFiLi44NmZhZWU0IDEwMDY0NAo+ID4+Pj4gPiAtLS0gYS9pbmNsdWRlL2Ry bS9kcm1fbW9kZV9jb25maWcuaAo+ID4+Pj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9j b25maWcuaAo+ID4+Pj4gPiBAQCAtNDMxLDYgKzQzMSwxMSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29u ZmlnIHsKPiA+Pj4+ID4gICAgICAgICAgKi8KPiA+Pj4+ID4gICAgICAgICBzdHJ1Y3QgZHJtX3By b3BlcnR5ICp0aWxlX3Byb3BlcnR5Owo+ID4+Pj4gPiAgICAgICAgIC8qKgo+ID4+Pj4gPiArICAg ICAgICAqIEBsaW5rX3N0YXR1c19wcm9wZXJ0eTogRGVmYXVsdCBjb25uZWN0b3IgcHJvcGVydHkg Zm9yIGxpbmsgc3RhdHVzCj4gPj4+PiA+ICsgICAgICAgICogb2YgYSBjb25uZWN0b3IKPiA+Pj4+ ID4gKyAgICAgICAgKi8KPiA+Pj4+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpsaW5r X3N0YXR1c19wcm9wZXJ0eTsKPiA+Pj4+ID4gKyAgICAgICAvKioKPiA+Pj4+ID4gICAgICAgICAg KiBAcGxhbmVfdHlwZV9wcm9wZXJ0eTogRGVmYXVsdCBwbGFuZSBwcm9wZXJ0eSB0byBkaWZmZXJl bnRpYXRlCj4gPj4+PiA+ICAgICAgICAgICogQ1VSU09SLCBQUklNQVJZIGFuZCBPVkVSTEFZIGxl Z2FjeSB1c2VzIG9mIHBsYW5lcy4KPiA+Pj4+ID4gICAgICAgICAgKi8KPiA+Pj4+ID4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJt X21vZGUuaAo+ID4+Pj4gPiBpbmRleCA3Mjg3OTBiLi4zMDljNDc4IDEwMDY0NAo+ID4+Pj4gPiAt LS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2RlLmgKPiA+Pj4+ID4gKysrIGIvaW5jbHVkZS91 YXBpL2RybS9kcm1fbW9kZS5oCj4gPj4+PiA+IEBAIC0xMjMsNiArMTIzLDEwIEBACj4gPj4+PiA+ ICAjZGVmaW5lIERSTV9NT0RFX0RJUlRZX09OICAgICAgIDEKPiA+Pj4+ID4gICNkZWZpbmUgRFJN X01PREVfRElSVFlfQU5OT1RBVEUgMgo+ID4+Pj4gPgo+ID4+Pj4gPiArLyogTGluayBTdGF0dXMg b3B0aW9ucyAqLwo+ID4+Pj4gPiArI2RlZmluZSBEUk1fTU9ERV9MSU5LX1NUQVRVU19HT09EICAg ICAgMAo+ID4+Pj4gPiArI2RlZmluZSBEUk1fTU9ERV9MSU5LX1NUQVRVU19CQUQgICAgICAgMQo+ ID4+Pj4gPiArCj4gPj4+PiA+ICBzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gewo+ID4+Pj4gPiAg ICAgICAgIF9fdTMyIGNsb2NrOwo+ID4+Pj4gPiAgICAgICAgIF9fdTE2IGhkaXNwbGF5Owo+ID4+ Pj4gPiAtLQo+ID4+Pj4gPiAxLjkuMQo+ID4+Pj4gPgo+ID4+Pj4gPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4+Pj4gPiBkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0Cj4gPj4+PiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pj4+ID4g aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK PiA+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g Pj4+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCj4gPj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo+ID4+Pgo+ID4+PiAtLQo+ID4+PiBEYW5pZWwgVmV0dGVyCj4gPj4+ IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4+PiBodHRwOi8vYmxvZy5m ZndsbC5jaAo+ID4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gPj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ID4+IGRyaS1kZXZlbEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKPiA+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo+ID4KPiA+IC0tCj4gPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBT b3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=