From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 1/4] drm/edid: Pass connector to AVI inforframe functions Date: Wed, 21 Nov 2018 13:40:43 +0200 Message-ID: <87muq2ek04.fsf@intel.com> References: <20181120161345.15440-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181120161345.15440-1-ville.syrjala-VuQAYsv1563Yd54FQh9/CA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Ville Syrjala , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Seung-Woo Kim , Russell King , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Alex Deucher , Kyungmin Park , Tomi Valkeinen , Thierry Reding , Laurent Pinchart , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Shawn Guo , Vincent Abriou , Christian =?utf-8?Q?K=C3=B6nig?= , Ben Skeggs List-Id: linux-tegra@vger.kernel.org T24gVHVlLCAyMCBOb3YgMjAxOCwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBNYWtlIGxpZmUgZWFzaWVyIGZvciBkcml2ZXJzIGJ5IHNpbXBs eSBwYXNzaW5nIHRoZSBjb25uZWN0b3IKPiB0byBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21f ZGlzcGxheV9tb2RlKCkgYW5kCj4gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9xdWFudF9yYW5nZSgp LiBUaGF0IHdheSBkcml2ZXJzIGRvbid0Cj4gbmVlZCB0byB3b3JyeSBhYm91dCBpc19oZG1pMl9z aW5rIG1lc3MuCgpPdmVyYWxsIGxvb2tzIGFib3V0IHJpZ2h0IGFuZCBuaWNlLAoKUmV2aWV3ZWQt Ynk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+CgpCdXQgcGxlYXNlIGRvIHRh a2UgdGhhdCB3aXRoIGEgZ3JhaW4gb2Ygc2FsdCBmb3IgZXZlcnl0aGluZyBvdXRzaWRlIG9mCmk5 MTUgYW5kIGRybSBjb3JlLgoKUGxlYXNlIGFsc28gZmluZCBhIGZldyBjb21tZW50cyBpbmxpbmUg YmVsb3cuCgo+IENjOiBBbGV4IERldWNoZXIgPGFsZXhhbmRlci5kZXVjaGVyQGFtZC5jb20+Cj4g Q2M6ICJDaHJpc3RpYW4gS8O2bmlnIiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+IENjOiAi RGF2aWQgKENodW5NaW5nKSBaaG91IiA8RGF2aWQxLlpob3VAYW1kLmNvbT4KPiBDYzogQXJjaGl0 IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KPiBDYzogQW5kcnplaiBIYWpkYSA8YS5o YWpkYUBzYW1zdW5nLmNvbT4KPiBDYzogTGF1cmVudCBQaW5jaGFydCA8TGF1cmVudC5waW5jaGFy dEBpZGVhc29uYm9hcmQuY29tPgo+IENjOiBJbmtpIERhZSA8aW5raS5kYWVAc2Ftc3VuZy5jb20+ Cj4gQ2M6IEpvb255b3VuZyBTaGltIDxqeTA5MjIuc2hpbUBzYW1zdW5nLmNvbT4KPiBDYzogU2V1 bmctV29vIEtpbSA8c3cwMzEyLmtpbUBzYW1zdW5nLmNvbT4KPiBDYzogS3l1bmdtaW4gUGFyayA8 a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KPiBDYzogUnVzc2VsbCBLaW5nIDxsaW51eEBhcm1s aW51eC5vcmcudWs+Cj4gQ2M6IENLIEh1IDxjay5odUBtZWRpYXRlay5jb20+Cj4gQ2M6IFBoaWxp cHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+Cj4gQ2M6IFJvYiBDbGFyayA8cm9iZGNs YXJrQGdtYWlsLmNvbT4KPiBDYzogQmVuIFNrZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgo+IENj OiBUb21pIFZhbGtlaW5lbiA8dG9taS52YWxrZWluZW5AdGkuY29tPgo+IENjOiBTYW5keSBIdWFu ZyA8aGpjQHJvY2stY2hpcHMuY29tPgo+IENjOiAiSGVpa28gU3TDvGJuZXIiIDxoZWlrb0BzbnRl Y2guZGU+Cj4gQ2M6IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBsaW5hcm8u b3JnPgo+IENjOiBWaW5jZW50IEFicmlvdSA8dmluY2VudC5hYnJpb3VAc3QuY29tPgo+IENjOiBU aGllcnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgo+IENjOiBFcmljIEFuaG9s dCA8ZXJpY0BhbmhvbHQubmV0Pgo+IENjOiBTaGF3biBHdW8gPHNoYXduZ3VvQGtlcm5lbC5vcmc+ Cj4gQ2M6IElsaWEgTWlya2luIDxpbWlya2luQGFsdW0ubWl0LmVkdT4KPiBDYzogYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBDYzogbGludXgtYXJtLW1zbUB2Z2VyLmtlcm5lbC5vcmcK PiBDYzogZnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IENjOiBub3V2ZWF1QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+IENjOiBsaW51eC10ZWdyYUB2Z2VyLmtlcm5lbC5vcmcKPiBTaWdu ZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYyAgICB8ICAy ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jICAgIHwgIDIgKy0K PiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYyAgICAgfCAgMyArKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y4XzAuYyAgICAgfCAgMiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYyB8ICA1ICsrLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMgICAgICAgICAgfCAgMyArKy0KPiAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jICAgICAgfCAgMyArLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgfCAgMyArKy0KPiAgZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMgICAgICAgICAgICAgICAgfCAzMyArKysrKysrKysrKysrKy0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMgICAgICB8ICAzICsrLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMgICAgICAgICB8ICAzICsrLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgICAgICB8IDE0ICsrKysrLS0tLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMgICAgICAgfCAxNSArKysrKystLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgICAgICAgICB8IDEwICsrKyst LS0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMgICAgICAgfCAgMyArKy0K PiAgZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfYnJpZGdlLmMgICAgfCAgMyArKy0KPiAg ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jICAgfCAgNyArKystLQo+ICBk cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2VuY29kZXIuYyAgICB8ICA1ICsrLS0KPiAgZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXVkaW8uYyAgICAgfCAgMiArLQo+ICBkcml2ZXJz L2dwdS9kcm0vcm9ja2NoaXAvaW5ub19oZG1pLmMgICAgICB8ICA0ICsrLQo+ICBkcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9oZG1pLmMgICAgICAgICAgICB8ICAzICsrLQo+ICBkcml2ZXJzL2dwdS9k cm0vc3VuNGkvc3VuNGlfaGRtaV9lbmMuYyAgICB8ICAzICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0v dGVncmEvaGRtaS5jICAgICAgICAgICAgICB8ICAzICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGVn cmEvc29yLmMgICAgICAgICAgICAgICB8ICAzICsrLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3Zj NF9oZG1pLmMgICAgICAgICAgICB8IDExICsrKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS96dGUv enhfaGRtaS5jICAgICAgICAgICAgIHwgIDQgKystCj4gIGluY2x1ZGUvZHJtL2RybV9lZGlkLmgg ICAgICAgICAgICAgICAgICAgIHwgIDggKysrLS0tCj4gIDI3IGZpbGVzIGNoYW5nZWQsIDk0IGlu c2VydGlvbnMoKyksIDY2IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv ZGNlX3YxMF8wLmMKPiBpbmRleCA0Y2ZlY2RjZTI5YTMuLjFmMDQyNmQyZmMyYSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjEwXzAuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92MTBfMC5jCj4gQEAgLTE2ODIsNyArMTY4Miw3IEBA IHN0YXRpYyB2b2lkIGRjZV92MTBfMF9hZm10X3NldG1vZGUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ICAJZGNlX3YxMF8wX2F1ZGlvX3dyaXRlX3NhZF9yZWdzKGVuY29kZXIpOwo+ICAJ ZGNlX3YxMF8wX2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKGVuY29kZXIsIG1vZGUpOwo+ICAK PiAtCWVyciA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1l LCBtb2RlLCBmYWxzZSk7Cj4gKwllcnIgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlz cGxheV9tb2RlKCZmcmFtZSwgY29ubmVjdG9yLCBtb2RlKTsKPiAgCWlmIChlcnIgPCAwKSB7Cj4g IAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gc2V0dXAgQVZJIGluZm9mcmFtZTogJXpkXG4iLCBlcnIp Owo+ICAJCXJldHVybjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv ZGNlX3YxMV8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjExXzAuYwo+IGlu ZGV4IDdjODY4OTE2ZDkwZi4uMjI4MGI5NzFkNzU4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2RjZV92MTFfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZGNlX3YxMV8wLmMKPiBAQCAtMTcyNCw3ICsxNzI0LDcgQEAgc3RhdGljIHZvaWQgZGNl X3YxMV8wX2FmbXRfc2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAlkY2Vf djExXzBfYXVkaW9fd3JpdGVfc2FkX3JlZ3MoZW5jb2Rlcik7Cj4gIAlkY2VfdjExXzBfYXVkaW9f d3JpdGVfbGF0ZW5jeV9maWVsZHMoZW5jb2RlciwgbW9kZSk7Cj4gIAo+IC0JZXJyID0gZHJtX2hk bWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUsIG1vZGUsIGZhbHNlKTsK PiArCWVyciA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1l LCBjb25uZWN0b3IsIG1vZGUpOwo+ICAJaWYgKGVyciA8IDApIHsKPiAgCQlEUk1fRVJST1IoImZh aWxlZCB0byBzZXR1cCBBVkkgaW5mb2ZyYW1lOiAlemRcbiIsIGVycik7Cj4gIAkJcmV0dXJuOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNlX3Y2XzAuYwo+IGluZGV4IDE3ZWFhYmEzNjAxNy4u ZGI0NDNlYzUzZDNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Rj ZV92Nl8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2VfdjZfMC5jCj4g QEAgLTE0MjMsNiArMTQyMyw3IEBAIHN0YXRpYyB2b2lkIGRjZV92Nl8wX2F1ZGlvX3NldF9hdmlf aW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXN0cnVjdCBhbWRncHVfZW5jb2Rl ciAqYW1kZ3B1X2VuY29kZXIgPSB0b19hbWRncHVfZW5jb2RlcihlbmNvZGVyKTsKPiAgCXN0cnVj dCBhbWRncHVfZW5jb2Rlcl9hdG9tX2RpZyAqZGlnID0gYW1kZ3B1X2VuY29kZXItPmVuY19wcml2 Owo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGFtZGdwdV9nZXRfY29ubmVj dG9yX2Zvcl9lbmNvZGVyKGVuY29kZXIpOwo+ICAJc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSBm cmFtZTsKPiAgCXU4IGJ1ZmZlcltIRE1JX0lORk9GUkFNRV9IRUFERVJfU0laRSArIEhETUlfQVZJ X0lORk9GUkFNRV9TSVpFXTsKPiAgCXVpbnQ4X3QgKnBheWxvYWQgPSBidWZmZXIgKyAzOwo+IEBA IC0xNDMwLDcgKzE0MzEsNyBAQCBzdGF0aWMgdm9pZCBkY2VfdjZfMF9hdWRpb19zZXRfYXZpX2lu Zm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzc2l6ZV90IGVycjsKPiAg CXUzMiB0bXA7Cj4gIAo+IC0JZXJyID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3Bs YXlfbW9kZSgmZnJhbWUsIG1vZGUsIGZhbHNlKTsKPiArCWVyciA9IGRybV9oZG1pX2F2aV9pbmZv ZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLCBjb25uZWN0b3IsIG1vZGUpOwo+ICAJaWYg KGVyciA8IDApIHsKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBzZXR1cCBBVkkgaW5mb2ZyYW1l OiAlemRcbiIsIGVycik7Cj4gIAkJcmV0dXJuOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZGNl X3Y4XzAuYwo+IGluZGV4IDhjMDU3Njk3OGQzNi4uMTNkYTkxNTk5MWRkIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2RjZV92OF8wLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9kY2VfdjhfMC5jCj4gQEAgLTE2MTYsNyArMTYxNiw3IEBAIHN0YXRp YyB2b2lkIGRjZV92OF8wX2FmbXRfc2V0bW9kZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs Cj4gIAlkY2VfdjhfMF9hdWRpb193cml0ZV9zYWRfcmVncyhlbmNvZGVyKTsKPiAgCWRjZV92OF8w X2F1ZGlvX3dyaXRlX2xhdGVuY3lfZmllbGRzKGVuY29kZXIsIG1vZGUpOwo+ICAKPiAtCWVyciA9 IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLCBtb2RlLCBm YWxzZSk7Cj4gKwllcnIgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2Rl KCZmcmFtZSwgY29ubmVjdG9yLCBtb2RlKTsKPiAgCWlmIChlcnIgPCAwKSB7Cj4gIAkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gc2V0dXAgQVZJIGluZm9mcmFtZTogJXpkXG4iLCBlcnIpOwo+ICAJCXJl dHVybjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC1hbng3 OHh4LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYwo+IGluZGV4 IGY4NDMzYzkzZjQ2My4uZTExMzA5ZTliYzRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvYW5hbG9naXgtYW54Nzh4eC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9hbmFsb2dpeC1hbng3OHh4LmMKPiBAQCAtMTA5NCw4ICsxMDk0LDkgQEAgc3RhdGljIHZvaWQg YW54Nzh4eF9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAgCj4g IAltdXRleF9sb2NrKCZhbng3OHh4LT5sb2NrKTsKPiAgCj4gLQllcnIgPSBkcm1faGRtaV9hdmlf aW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZSwgYWRqdXN0ZWRfbW9kZSwKPiAtCQkJ CQkJICAgICAgIGZhbHNlKTsKPiArCWVyciA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9k aXNwbGF5X21vZGUoJmZyYW1lLAo+ICsJCQkJCQkgICAgICAgJmFueDc4eHgtPmNvbm5lY3RvciwK PiArCQkJCQkJICAgICAgIGFkanVzdGVkX21vZGUpOwo+ICAJaWYgKGVycikgewo+ICAJCURSTV9F UlJPUigiRmFpbGVkIHRvIHNldHVwIEFWSSBpbmZvZnJhbWU6ICVkXG4iLCBlcnIpOwo+ICAJCWdv dG8gdW5sb2NrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMngu YyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCj4gaW5kZXggYmZhOTAyMDEzYWE0 Li5hOWI0ZjQ1YWU4N2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5 MDJ4LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYwo+IEBAIC0yNTgs NyArMjU4LDggQEAgc3RhdGljIHZvaWQgc2lpOTAyeF9icmlkZ2VfbW9kZV9zZXQoc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSwKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCXJldCA9 IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLCBhZGosIGZh bHNlKTsKPiArCXJldCA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUo JmZyYW1lLAo+ICsJCQkJCQkgICAgICAgJnNpaTkwMngtPmNvbm5lY3RvciwgYWRqKTsKPiAgCWlm IChyZXQgPCAwKSB7Cj4gIAkJRFJNX0VSUk9SKCJjb3VsZG4ndCBmaWxsIEFWSSBpbmZvZnJhbWVc biIpOwo+ICAJCXJldHVybjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z aWwtc2lpODYyMC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4gaW5k ZXggYTZlOGY0NTkxZTYzLi4wY2MyOTNhNmFjMjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z aWwtc2lpODYyMC5jCj4gQEAgLTExMDQsOCArMTEwNCw3IEBAIHN0YXRpYyB2b2lkIHNpaTg2MjBf c2V0X2luZm9mcmFtZXMoc3RydWN0IHNpaTg2MjAgKmN0eCwKPiAgCWludCByZXQ7Cj4gIAo+ICAJ cmV0ID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJtLmF2aSwK PiAtCQkJCQkJICAgICAgIG1vZGUsCj4gLQkJCQkJCSAgICAgICB0cnVlKTsKPiArCQkJCQkJICAg ICAgIE5VTEwsIG1vZGUpOwo+ICAJaWYgKGN0eC0+dXNlX3BhY2tlZF9waXhlbCkKPiAgCQlmcm0u YXZpLmNvbG9yc3BhY2UgPSBIRE1JX0NPTE9SU1BBQ0VfWVVWNDIyOwo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgYi9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+IGluZGV4IDY0YzNjZjAyNzUxOC4uODhi NzIwYjYzMTI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMv ZHctaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1p LmMKPiBAQCAtMTM0NCw3ICsxMzQ0LDggQEAgc3RhdGljIHZvaWQgaGRtaV9jb25maWdfQVZJKHN0 cnVjdCBkd19oZG1pICpoZG1pLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiAgCXU4 IHZhbDsKPiAgCj4gIAkvKiBJbml0aWFsaXNlIGluZm8gZnJhbWUgZnJvbSBEUk0gbW9kZSAqLwo+ IC0JZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUsIG1vZGUs IGZhbHNlKTsKPiArCWRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZy YW1lLAo+ICsJCQkJCQkgJmhkbWktPmNvbm5lY3RvciwgbW9kZSk7Cj4gIAo+ICAJaWYgKGhkbWlf YnVzX2ZtdF9pc195dXY0NDQoaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfYnVzX2Zvcm1hdCkpCj4g IAkJZnJhbWUuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFDRV9ZVVY0NDQ7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlk LmMKPiBpbmRleCBiNTA2ZTM2MjJiMDguLjUwMWFjMDViYTdkYSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5j Cj4gQEAgLTQ4MzAsMTkgKzQ4MzAsMzIgQEAgdm9pZCBkcm1fc2V0X3ByZWZlcnJlZF9tb2RlKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1f c2V0X3ByZWZlcnJlZF9tb2RlKTsKPiAgCj4gK3N0YXRpYyBib29sIGlzX2hkbWkyX3Npbmsoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKCllvdSdyZSB1c3VhbGx5IGtub3duIGZvciBh ZGRpbmcgY29uc3QgYWxsIGFyb3VuZCwgd2h5IG5vdCBjb25zdCBwb2ludGVyCmhlcmUgYW5kIGlu IGFsbCB0aGUgb3RoZXIgZHJtXyogZnVuY3Rpb25zIHRoYXQgY2FsbCB0aGlzPwoKPiArewo+ICsJ LyoKPiArCSAqIEZJWE1FOiBzaWwtc2lpODYyMCBkb2Vzbid0IGhhdmUgYSBjb25uZWN0b3IgYXJv dW5kIHdoZW4KPiArCSAqIHdlIG5lZWQgb25lLCBzbyB3ZSBoYXZlIHRvIGJlIHByZXBhcmVkIGZv ciBhIE5VTEwgY29ubmVjdG9yLgo+ICsJICovCj4gKwlpZiAoIWNvbm5lY3RvcikKPiArCQlyZXR1 cm4gZmFsc2U7CgpUaGlzIGFjdHVhbGx5IGNoYW5nZXMgdGhlIGlzX2hkbWkyX3NpbmsgdmFsdWUg Zm9yIHNpbC1zaWk4NjIwLgoKPiArCj4gKwlyZXR1cm4gY29ubmVjdG9yLT5kaXNwbGF5X2luZm8u aGRtaS5zY2RjLnN1cHBvcnRlZCB8fAo+ICsJCWNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmNvbG9y X2Zvcm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIwOwo+ICt9Cj4gKwo+ICAvKioKPiAg ICogZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgpIC0gZmlsbCBhbiBI RE1JIEFWSSBpbmZvZnJhbWUgd2l0aAo+ICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhIGZyb20gYSBEUk0gZGlzcGxheSBtb2RlCj4gICAqIEBmcmFt ZTogSERNSSBBVkkgaW5mb2ZyYW1lCj4gKyAqIEBjb25uZWN0b3I6IHRoZSBjb25uZWN0b3IKPiAg ICogQG1vZGU6IERSTSBkaXNwbGF5IG1vZGUKPiAtICogQGlzX2hkbWkyX3Npbms6IFNpbmsgaXMg SERNSSAyLjAgY29tcGxpYW50Cj4gICAqCj4gICAqIFJldHVybjogMCBvbiBzdWNjZXNzIG9yIGEg bmVnYXRpdmUgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ICAgKi8KPiAgaW50Cj4gIGRybV9oZG1p X2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoc3RydWN0IGhkbWlfYXZpX2luZm9mcmFt ZSAqZnJhbWUsCj4gLQkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ IC0JCQkJCSBib29sIGlzX2hkbWkyX3NpbmspCj4gKwkJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gKwkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl KQo+ICB7Cj4gIAllbnVtIGhkbWlfcGljdHVyZV9hc3BlY3QgcGljdHVyZV9hc3BlY3Q7Cj4gIAlp bnQgZXJyOwo+IEBAIC00ODY0LDcgKzQ4NzcsNyBAQCBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zy b21fZGlzcGxheV9tb2RlKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lLAo+ICAJICog SERNSSAyLjAgVklDIHJhbmdlOiAxIDw9IFZJQyA8PSAxMDcgKENFQS04NjEtRikuIFNvIHdlCj4g IAkgKiBoYXZlIHRvIG1ha2Ugc3VyZSB3ZSBkb250IGJyZWFrIEhETUkgMS40IHNpbmtzLgo+ICAJ ICovCj4gLQlpZiAoIWlzX2hkbWkyX3NpbmsgJiYgZnJhbWUtPnZpZGVvX2NvZGUgPiA2NCkKPiAr CWlmICghaXNfaGRtaTJfc2luayhjb25uZWN0b3IpICYmIGZyYW1lLT52aWRlb19jb2RlID4gNjQp Cj4gIAkJZnJhbWUtPnZpZGVvX2NvZGUgPSAwOwo+ICAKPiAgCS8qCj4gQEAgLTQ5MjMsMjEgKzQ5 MzYsMTcgQEAgRVhQT1JUX1NZTUJPTChkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxh eV9tb2RlKTsKPiAgICogZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9xdWFudF9yYW5nZSgpIC0gZmls bCB0aGUgSERNSSBBVkkgaW5mb2ZyYW1lCj4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHF1YW50aXphdGlvbiByYW5nZSBpbmZvcm1hdGlvbgo+ICAgKiBAZnJhbWU6 IEhETUkgQVZJIGluZm9mcmFtZQo+ICsgKiBAY29ubmVjdG9yOiB0aGUgY29ubmVjdG9yCj4gICAq IEBtb2RlOiBEUk0gZGlzcGxheSBtb2RlCj4gICAqIEByZ2JfcXVhbnRfcmFuZ2U6IFJHQiBxdWFu dGl6YXRpb24gcmFuZ2UgKFEpCj4gICAqIEByZ2JfcXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZTogU2lu ayBzdXBwb3J0IHNlbGVjdGFibGUgUkdCIHF1YW50aXphdGlvbiByYW5nZSAoUVMpCj4gLSAqIEBp c19oZG1pMl9zaW5rOiBIRE1JIDIuMCBzaW5rLCB3aGljaCBoYXMgZGlmZmVyZW50IGRlZmF1bHQg cmVjb21tZW5kYXRpb25zCj4gLSAqCj4gLSAqIE5vdGUgdGhhdCBAaXNfaGRtaTJfc2luayBjYW4g YmUgZGVyaXZlZCBieSBsb29raW5nIGF0IHRoZQo+IC0gKiAmZHJtX3NjZGMuc3VwcG9ydGVkIGZs YWcgc3RvcmVkIGluICZkcm1faGRtaV9pbmZvLnNjZGMsCj4gLSAqICZkcm1fZGlzcGxheV9pbmZv LmhkbWksIHdoaWNoIGNhbiBiZSBmb3VuZCBpbiAmZHJtX2Nvbm5lY3Rvci5kaXNwbGF5X2luZm8u Cj4gICAqLwo+ICB2b2lkCj4gIGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfcXVhbnRfcmFuZ2Uoc3Ry dWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUsCj4gKwkJCQkgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAo+ICAJCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUsCj4gIAkJCQkgICBlbnVtIGhkbWlfcXVhbnRpemF0aW9uX3JhbmdlIHJnYl9xdWFudF9y YW5nZSwKPiAtCQkJCSAgIGJvb2wgcmdiX3F1YW50X3JhbmdlX3NlbGVjdGFibGUsCj4gLQkJCQkg ICBib29sIGlzX2hkbWkyX3NpbmspCj4gKwkJCQkgICBib29sIHJnYl9xdWFudF9yYW5nZV9zZWxl Y3RhYmxlKQo+ICB7Cj4gIAkvKgo+ICAJICogQ0VBLTg2MToKPiBAQCAtNDk2OCw3ICs0OTc3LDcg QEAgZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9xdWFudF9yYW5nZShzdHJ1Y3QgaGRtaV9hdmlfaW5m b2ZyYW1lICpmcmFtZSwKPiAgCSAqIHdlIGxpbWl0IG5vbi16ZXJvIFlRIHRvIEhETUkgMi4wIHNp bmtzIG9ubHkgYXMgSERNSSAyLjAgaXMgYmFzZWQKPiAgCSAqIG9uIG9uIENFQS04NjEtRi4KPiAg CSAqLwo+IC0JaWYgKCFpc19oZG1pMl9zaW5rIHx8Cj4gKwlpZiAoIWlzX2hkbWkyX3NpbmsoY29u bmVjdG9yKSB8fAo+ICAJICAgIHJnYl9xdWFudF9yYW5nZSA9PSBIRE1JX1FVQU5USVpBVElPTl9S QU5HRV9MSU1JVEVEKQo+ICAJCWZyYW1lLT55Y2NfcXVhbnRpemF0aW9uX3JhbmdlID0KPiAgCQkJ SERNSV9ZQ0NfUVVBTlRJWkFUSU9OX1JBTkdFX0xJTUlURUQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2hkbWkuYwo+IGluZGV4IDIwOTJhNjUwZGY3ZC4uYjg1N2RmNjdhZmYwIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+IEBAIC04MTksNyArODE5LDggQEAgc3Rh dGljIHZvaWQgaGRtaV9yZWdfaW5mb2ZyYW1lcyhzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSkK PiAgCQlyZXR1cm47Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9m cm9tX2Rpc3BsYXlfbW9kZSgmZnJtLmF2aSwgbSwgZmFsc2UpOwo+ICsJcmV0ID0gZHJtX2hkbWlf YXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJtLmF2aSwKPiArCQkJCQkJICAgICAg ICZoZGF0YS0+Y29ubmVjdG9yLCBtKTsKPiAgCWlmICghcmV0KQo+ICAJCXJldCA9IGhkbWlfYXZp X2luZm9mcmFtZV9wYWNrKCZmcm0uYXZpLCBidWYsIHNpemVvZihidWYpKTsKPiAgCWlmIChyZXQg PiAwKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYwo+IGluZGV4IGE3YzM5ZjM5NzkzZi4u MzhjNjZmYmM4Mjc2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9k cnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYwo+IEBAIC04NDks NyArODQ5LDggQEAgdGRhOTk4eF93cml0ZV9hdmkoc3RydWN0IHRkYTk5OHhfcHJpdiAqcHJpdiwg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gIHsKPiAgCXVuaW9uIGhkbWlfaW5mb2Zy YW1lIGZyYW1lOwo+ICAKPiAtCWRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21v ZGUoJmZyYW1lLmF2aSwgbW9kZSwgZmFsc2UpOwo+ICsJZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9m cm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUuYXZpLAo+ICsJCQkJCQkgJnByaXYtPmNvbm5lY3Rvciwg bW9kZSk7Cj4gIAlmcmFtZS5hdmkucXVhbnRpemF0aW9uX3JhbmdlID0gSERNSV9RVUFOVElaQVRJ T05fUkFOR0VfRlVMTDsKPiAgCj4gIAl0ZGE5OTh4X3dyaXRlX2lmKHByaXYsIERJUF9JRl9GTEFH U19JRjIsIFJFR19JRjJfSEIwLCAmZnJhbWUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMK PiBpbmRleCBlMmM2YTJiM2U4ZjIuLjhhMjYwYmQ2OTU0YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMKPiBAQCAtNDY1LDE1ICs0NjUsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRt aV9zZXRfYXZpX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0 cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXIt PmJhc2UpOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQo+ICAJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gLQlzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2hkbWktPmF0dGFjaGVkX2Nvbm5lY3Rvci0+YmFz ZTsKPiAtCWJvb2wgaXNfaGRtaTJfc2luayA9IGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWku c2NkYy5zdXBwb3J0ZWQgfHwKPiAtCSAgIGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmNvbG9yX2Zv cm1hdHMgJiBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIwOwo+ICAJdW5pb24gaGRtaV9pbmZvZnJh bWUgZnJhbWU7Cj4gIAlpbnQgcmV0Owo+ICAKPiAgCXJldCA9IGRybV9oZG1pX2F2aV9pbmZvZnJh bWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLmF2aSwKPiAtCQkJCQkJICAgICAgIGFkanVzdGVk X21vZGUsCj4gLQkJCQkJCSAgICAgICBpc19oZG1pMl9zaW5rKTsKPiArCQkJCQkJICAgICAgIGNv bm5fc3RhdGUtPmNvbm5lY3RvciwKPiArCQkJCQkJICAgICAgIGFkanVzdGVkX21vZGUpOwo+ICAJ aWYgKHJldCA8IDApIHsKPiAgCQlEUk1fRVJST1IoImNvdWxkbid0IGZpbGwgQVZJIGluZm9mcmFt ZVxuIik7Cj4gIAkJcmV0dXJuOwo+IEBAIC00ODYsMTIgKzQ4MywxMyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICAJZWxzZQo+ICAJCWZyYW1lLmF2aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQQUNFX1JH QjsKPiAgCj4gLQlkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX3F1YW50X3JhbmdlKCZmcmFtZS5hdmks IGFkanVzdGVkX21vZGUsCj4gKwlkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX3F1YW50X3JhbmdlKCZm cmFtZS5hdmksCj4gKwkJCQkJICAgY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAo+ICsJCQkJCSAgIGFk anVzdGVkX21vZGUsCj4gIAkJCQkJICAgY3J0Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZSA/ Cj4gIAkJCQkJICAgSERNSV9RVUFOVElaQVRJT05fUkFOR0VfTElNSVRFRCA6Cj4gIAkJCQkJICAg SERNSV9RVUFOVElaQVRJT05fUkFOR0VfRlVMTCwKPiAtCQkJCQkgICBpbnRlbF9oZG1pLT5yZ2Jf cXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZSwKPiAtCQkJCQkgICBpc19oZG1pMl9zaW5rKTsKPiArCQkJ CQkgICBpbnRlbF9oZG1pLT5yZ2JfcXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZSk7Cj4gIAo+ICAJZHJt X2hkbWlfYXZpX2luZm9mcmFtZV9jb250ZW50X3R5cGUoJmZyYW1lLmF2aSwKPiAgCQkJCQkgICAg Y29ubl9zdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xz cGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKPiBpbmRleCA5NmE4 ZDk1MjRiMGMuLmMxOGYxNGQ0MWYxZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9sc3Bjb24uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNv bi5jCj4gQEAgLTQ2MiwxMCArNDYyLDggQEAgdm9pZCBsc3Bjb25fc2V0X2luZm9mcmFtZXMoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl1aW50OF90IGJ1ZltWSURFT19ESVBfREFU QV9TSVpFXTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNv biA9ICZkaWdfcG9ydC0+bHNwY29uOwo+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZk aWdfcG9ydC0+ZHA7Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVs X2RwLT5hdHRhY2hlZF9jb25uZWN0b3ItPmJhc2U7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gLQlib29s IGlzX2hkbWkyX3NpbmsgPSBjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pLnNjZGMuc3VwcG9y dGVkOwo+ICsJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ ICsJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gIAo+ICAJaWYgKCFsc3Bjb24t PmFjdGl2ZSkgewo+ICAJCURSTV9FUlJPUigiV3JpdGluZyBpbmZvZnJhbWVzIHdoaWxlIExTUENP TiBkaXNhYmxlZCA/XG4iKTsKPiBAQCAtNDczLDcgKzQ3MSw4IEBAIHZvaWQgbHNwY29uX3NldF9p bmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJfQo+ICAKPiAgCXJl dCA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLmF2aSwK PiAtCQkJCQkJICAgICAgIG1vZGUsIGlzX2hkbWkyX3NpbmspOwo+ICsJCQkJCQkgICAgICAgY29u bl9zdGF0ZS0+Y29ubmVjdG9yLAo+ICsJCQkJCQkgICAgICAgYWRqdXN0ZWRfbW9kZSk7Cj4gIAlp ZiAocmV0IDwgMCkgewo+ICAJCURSTV9FUlJPUigiY291bGRuJ3QgZmlsbCBBVkkgaW5mb2ZyYW1l XG4iKTsKPiAgCQlyZXR1cm47Cj4gQEAgLTQ4OCwxMSArNDg3LDEzIEBAIHZvaWQgbHNwY29uX3Nl dF9pbmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCWZyYW1lLmF2 aS5jb2xvcnNwYWNlID0gSERNSV9DT0xPUlNQQUNFX1JHQjsKPiAgCX0KPiAgCj4gLQlkcm1faGRt aV9hdmlfaW5mb2ZyYW1lX3F1YW50X3JhbmdlKCZmcmFtZS5hdmksIG1vZGUsCj4gKwlkcm1faGRt aV9hdmlfaW5mb2ZyYW1lX3F1YW50X3JhbmdlKCZmcmFtZS5hdmksCj4gKwkJCQkJICAgY29ubl9z dGF0ZS0+Y29ubmVjdG9yLAo+ICsJCQkJCSAgIGFkanVzdGVkX21vZGUsCj4gIAkJCQkJICAgY3J0 Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZSA/Cj4gIAkJCQkJICAgSERNSV9RVUFOVElaQVRJ T05fUkFOR0VfTElNSVRFRCA6Cj4gIAkJCQkJICAgSERNSV9RVUFOVElaQVRJT05fUkFOR0VfRlVM TCwKPiAtCQkJCQkgICBmYWxzZSwgaXNfaGRtaTJfc2luayk7Cj4gKwkJCQkJICAgZmFsc2UpOwo+ ICAKPiAgCXJldCA9IGhkbWlfaW5mb2ZyYW1lX3BhY2soJmZyYW1lLCBidWYsIHNpemVvZihidWYp KTsKPiAgCWlmIChyZXQgPCAwKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IGluZGV4 IDU4MDVlYzFhYmExMi4uMTI3N2QzMWFkYjU0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nkdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nk dm8uYwo+IEBAIC05ODEsNyArOTgxLDggQEAgc3RhdGljIGJvb2wgaW50ZWxfc2R2b193cml0ZV9p bmZvZnJhbWUoc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8sCj4gIH0KPiAgCj4gIHN0YXRp YyBib29sIGludGVsX3Nkdm9fc2V0X2F2aV9pbmZvZnJhbWUoc3RydWN0IGludGVsX3Nkdm8gKmlu dGVsX3Nkdm8sCj4gLQkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZykKPiArCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAo+ICsJCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK PiAgewo+ICAJdWludDhfdCBzZHZvX2RhdGFbSERNSV9JTkZPRlJBTUVfU0laRShBVkkpXTsKPiAg CXVuaW9uIGhkbWlfaW5mb2ZyYW1lIGZyYW1lOwo+IEBAIC05ODksOCArOTkwLDggQEAgc3RhdGlj IGJvb2wgaW50ZWxfc2R2b19zZXRfYXZpX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfc2R2byAqaW50 ZWxfc2R2bywKPiAgCXNzaXplX3QgbGVuOwo+ICAKPiAgCXJldCA9IGRybV9oZG1pX2F2aV9pbmZv ZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLmF2aSwKPiAtCQkJCQkJICAgICAgICZwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLAo+IC0JCQkJCQkgICAgICAgZmFsc2UpOwo+ICsJ CQkJCQkgICAgICAgY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAo+ICsJCQkJCQkgICAgICAgJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUpOwo+ICAJaWYgKHJldCA8IDApIHsKPiAgCQlEUk1f RVJST1IoImNvdWxkbid0IGZpbGwgQVZJIGluZm9mcmFtZVxuIik7Cj4gIAkJcmV0dXJuIGZhbHNl Owo+IEBAIC0xMzE2LDcgKzEzMTcsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gIAkJaW50ZWxfc2R2b19z ZXRfZW5jb2RlKGludGVsX3Nkdm8sIFNEVk9fRU5DT0RFX0hETUkpOwo+ICAJCWludGVsX3Nkdm9f c2V0X2NvbG9yaW1ldHJ5KGludGVsX3Nkdm8sCj4gIAkJCQkJICAgU0RWT19DT0xPUklNRVRSWV9S R0IyNTYpOwo+IC0JCWludGVsX3Nkdm9fc2V0X2F2aV9pbmZvZnJhbWUoaW50ZWxfc2R2bywgY3J0 Y19zdGF0ZSk7Cj4gKwkJaW50ZWxfc2R2b19zZXRfYXZpX2luZm9mcmFtZShpbnRlbF9zZHZvLAo+ ICsJCQkJCSAgICAgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7Cj4gIAl9IGVsc2UKPiAgCQlpbnRl bF9zZHZvX3NldF9lbmNvZGUoaW50ZWxfc2R2bywgU0RWT19FTkNPREVfRFZJKTsKPiAgCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jIGIvZHJpdmVycy9n cHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiBpbmRleCA4NjJmM2VjMjIxMzEuLmYzZWY3YmY4 MDU2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4gQEAgLTk4MSw3ICs5 ODEsOCBAQCBzdGF0aWMgaW50IG10a19oZG1pX3NldHVwX2F2aV9pbmZvZnJhbWUoc3RydWN0IG10 a19oZG1pICpoZG1pLAo+ICAJdTggYnVmZmVyWzE3XTsKPiAgCXNzaXplX3QgZXJyOwo+ICAKPiAt CWVyciA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLCBt b2RlLCBmYWxzZSk7Cj4gKwllcnIgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxh eV9tb2RlKCZmcmFtZSwKPiArCQkJCQkJICAgICAgICZoZG1pLT5jb25uLCBtb2RlKTsKPiAgCWlm IChlcnIgPCAwKSB7Cj4gIAkJZGV2X2VycihoZG1pLT5kZXYsCj4gIAkJCSJGYWlsZWQgdG8gZ2V0 IEFWSSBpbmZvZnJhbWUgZnJvbSBtb2RlOiAlemRcbiIsIGVycik7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9oZG1pL2hkbWlfYnJpZGdlLmMKPiBpbmRleCA3ZTM1NzA3N2VkMjYuLjVlZDRjYWIyODE5ZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9icmlkZ2UuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jCj4gQEAgLTEwMSw3ICsx MDEsOCBAQCBzdGF0aWMgdm9pZCBtc21faGRtaV9jb25maWdfYXZpX2luZm9mcmFtZShzdHJ1Y3Qg aGRtaSAqaGRtaSkKPiAgCXUzMiB2YWw7Cj4gIAlpbnQgbGVuOwo+ICAKPiAtCWRybV9oZG1pX2F2 aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLmF2aSwgbW9kZSwgZmFsc2UpOwo+ ICsJZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUuYXZpLAo+ ICsJCQkJCQkgaGRtaS0+Y29ubmVjdG9yLCBtb2RlKTsKPiAgCj4gIAlsZW4gPSBoZG1pX2luZm9m cmFtZV9wYWNrKCZmcmFtZSwgYnVmZmVyLCBzaXplb2YoYnVmZmVyKSk7Cj4gIAlpZiAobGVuIDwg MCkgewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNw LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMKPiBpbmRleCA2Y2Ji YWUzZjQzOGIuLmQ4ZTUxMmM4MzIxMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91 dmVhdS9kaXNwbnY1MC9kaXNwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNw bnY1MC9kaXNwLmMKPiBAQCAtNTU0LDcgKzU1NCw3IEBAIG52NTBfaGRtaV9lbmFibGUoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiAg CXUzMiBtYXhfYWNfcGFja2V0Owo+ICAJdW5pb24gaGRtaV9pbmZvZnJhbWUgYXZpX2ZyYW1lOwo+ ICAJdW5pb24gaGRtaV9pbmZvZnJhbWUgdmVuZG9yX2ZyYW1lOwo+IC0JYm9vbCBzY2RjX3N1cHBv cnRlZCwgaGlnaF90bWRzX2Nsb2NrX3JhdGlvID0gZmFsc2UsIHNjcmFtYmxpbmcgPSBmYWxzZTsK PiArCWJvb2wgaGlnaF90bWRzX2Nsb2NrX3JhdGlvID0gZmFsc2UsIHNjcmFtYmxpbmcgPSBmYWxz ZTsKPiAgCXU4IGNvbmZpZzsKPiAgCWludCByZXQ7Cj4gIAlpbnQgc2l6ZTsKPiBAQCAtNTY0LDEw ICs1NjQsOSBAQCBudjUwX2hkbWlfZW5hYmxlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpCj4gIAkJcmV0dXJuOwo+ICAKPiAgCWhkbWkg PSAmbnZfY29ubmVjdG9yLT5iYXNlLmRpc3BsYXlfaW5mby5oZG1pOwo+IC0Jc2NkY19zdXBwb3J0 ZWQgPSBoZG1pLT5zY2RjLnN1cHBvcnRlZDsKPiAgCj4gLQlyZXQgPSBkcm1faGRtaV9hdmlfaW5m b2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZhdmlfZnJhbWUuYXZpLCBtb2RlLAo+IC0JCQkJCQkg ICAgICAgc2NkY19zdXBwb3J0ZWQpOwo+ICsJcmV0ID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9m cm9tX2Rpc3BsYXlfbW9kZSgmYXZpX2ZyYW1lLmF2aSwKPiArCQkJCQkJICAgICAgICZudl9jb25u ZWN0b3ItPmJhc2UsIG1vZGUpOwo+ICAJaWYgKCFyZXQpIHsKPiAgCQkvKiBXZSBoYXZlIGFuIEFW SSBJbmZvRnJhbWUsIHBvcHVsYXRlIGl0IHRvIHRoZSBkaXNwbGF5ICovCj4gIAkJYXJncy5wd3Iu YXZpX2luZm9mcmFtZV9sZW5ndGgKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vb21hcF9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2VuY29kZXIu Ywo+IGluZGV4IDQ1MmU2MjVmNmNlMy4uMjgxYjIxNjQ5NjljIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZW5jb2Rlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L29tYXBkcm0vb21hcF9lbmNvZGVyLmMKPiBAQCAtMTI4LDggKzEyOCw5IEBAIHN0YXRpYyB2b2lk IG9tYXBfZW5jb2Rlcl9tb2RlX3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAlp ZiAoaGRtaV9tb2RlICYmIGRzc2Rldi0+b3BzLT5oZG1pLnNldF9pbmZvZnJhbWUpIHsKPiAgCQlz dHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lIGF2aTsKPiAgCj4gLQkJciA9IGRybV9oZG1pX2F2aV9p bmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmF2aSwgYWRqdXN0ZWRfbW9kZSwKPiAtCQkJCQkJ CSAgICAgZmFsc2UpOwo+ICsJCXIgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxh eV9tb2RlKCZhdmksCj4gKwkJCQkJCQkgICAgIGNvbm5lY3RvciwKPiArCQkJCQkJCSAgICAgYWRq dXN0ZWRfbW9kZSk7Cj4gIAkJaWYgKHIgPT0gMCkKPiAgCQkJZHNzZGV2LT5vcHMtPmhkbWkuc2V0 X2luZm9mcmFtZShkc3NkZXYsICZhdmkpOwo+ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRl b25fYXVkaW8uYwo+IGluZGV4IDc3MGUzMWY1ZmQxYi4uNWE3ZDQ4MzM5YjMyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2F1ZGlvLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hdWRpby5jCj4gQEAgLTUxNiw3ICs1MTYsNyBAQCBzdGF0 aWMgaW50IHJhZGVvbl9hdWRpb19zZXRfYXZpX3BhY2tldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIsCj4gIAlpZiAoIWNvbm5lY3RvcikKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gLQll cnIgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZSwgbW9k ZSwgZmFsc2UpOwo+ICsJZXJyID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlf bW9kZSgmZnJhbWUsIGNvbm5lY3RvciwgbW9kZSk7Cj4gIAlpZiAoZXJyIDwgMCkgewo+ICAJCURS TV9FUlJPUigiZmFpbGVkIHRvIHNldHVwIEFWSSBpbmZvZnJhbWU6ICVkXG4iLCBlcnIpOwo+ICAJ CXJldHVybiBlcnI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5v X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYwo+IGluZGV4IDFj MDJiM2U2MTI5OS4uMjdjOTQ1ZTAzMGEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9pbm5vX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5v X2hkbWkuYwo+IEBAIC0yOTUsNyArMjk1LDkgQEAgc3RhdGljIGludCBpbm5vX2hkbWlfY29uZmln X3ZpZGVvX2F2aShzdHJ1Y3QgaW5ub19oZG1pICpoZG1pLAo+ICAJdW5pb24gaGRtaV9pbmZvZnJh bWUgZnJhbWU7Cj4gIAlpbnQgcmM7Cj4gIAo+IC0JcmMgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1l X2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZS5hdmksIG1vZGUsIGZhbHNlKTsKPiArCXJjID0gZHJt X2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUuYXZpLAo+ICsJCQkJ CQkgICAgICAmaGRtaS0+Y29ubmVjdG9yLAo+ICsJCQkJCQkgICAgICBtb2RlKTsKPiAgCj4gIAlp ZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfZm9ybWF0ID09IEhETUlfQ09MT1JTUEFDRV9ZVVY0 NDQpCj4gIAkJZnJhbWUuYXZpLmNvbG9yc3BhY2UgPSBIRE1JX0NPTE9SU1BBQ0VfWVVWNDQ0Owo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMgYi9kcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9oZG1pLmMKPiBpbmRleCBjY2Y3MTg0MDRhMWMuLjRiODY4NzhmOGRkZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMKPiBAQCAtNDM0LDcgKzQzNCw4IEBAIHN0YXRpYyBp bnQgaGRtaV9hdmlfaW5mb2ZyYW1lX2NvbmZpZyhzdHJ1Y3Qgc3RpX2hkbWkgKmhkbWkpCj4gIAo+ ICAJRFJNX0RFQlVHX0RSSVZFUigiXG4iKTsKPiAgCj4gLQlyZXQgPSBkcm1faGRtaV9hdmlfaW5m b2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZpbmZvZnJhbWUsIG1vZGUsIGZhbHNlKTsKPiArCXJl dCA9IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmluZm9mcmFtZSwK PiArCQkJCQkJICAgICAgIGhkbWktPmRybV9jb25uZWN0b3IsIG1vZGUpOwo+ICAJaWYgKHJldCA8 IDApIHsKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBzZXR1cCBBVkkgaW5mb2ZyYW1lOiAlZFxu IiwgcmV0KTsKPiAgCQlyZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c3VuNGkvc3VuNGlfaGRtaV9lbmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9oZG1p X2VuYy5jCj4gaW5kZXggMDYxZDJlMGQ5MDExLi41NTRhNmY0NTYxZjMgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2hkbWlfZW5jLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vc3VuNGkvc3VuNGlfaGRtaV9lbmMuYwo+IEBAIC01Miw3ICs1Miw4IEBAIHN0YXRpYyBp bnQgc3VuNGlfaGRtaV9zZXR1cF9hdmlfaW5mb2ZyYW1lcyhzdHJ1Y3Qgc3VuNGlfaGRtaSAqaGRt aSwKPiAgCXU4IGJ1ZmZlclsxN107Cj4gIAlpbnQgaSwgcmV0Owo+ICAKPiAtCXJldCA9IGRybV9o ZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLCBtb2RlLCBmYWxzZSk7 Cj4gKwlyZXQgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFt ZSwKPiArCQkJCQkJICAgICAgICZoZG1pLT5jb25uZWN0b3IsIG1vZGUpOwo+ICAJaWYgKHJldCA8 IDApIHsKPiAgCQlEUk1fRVJST1IoIkZhaWxlZCB0byBnZXQgaW5mb2ZyYW1lcyBmcm9tIG1vZGVc biIpOwo+ICAJCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdy YS9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvaGRtaS5jCj4gaW5kZXggMDA4MjQ2OGY3 MDNjLi5hNzU2NmM2N2JmYjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2hk bWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9oZG1pLmMKPiBAQCAtNzQxLDcgKzc0 MSw4IEBAIHN0YXRpYyB2b2lkIHRlZ3JhX2hkbWlfc2V0dXBfYXZpX2luZm9mcmFtZShzdHJ1Y3Qg dGVncmFfaGRtaSAqaGRtaSwKPiAgCXU4IGJ1ZmZlclsxN107Cj4gIAlzc2l6ZV90IGVycjsKPiAg Cj4gLQllcnIgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFt ZSwgbW9kZSwgZmFsc2UpOwo+ICsJZXJyID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9mcm9tX2Rp c3BsYXlfbW9kZSgmZnJhbWUsCj4gKwkJCQkJCSAgICAgICAmaGRtaS0+b3V0cHV0LmNvbm5lY3Rv ciwgbW9kZSk7Cj4gIAlpZiAoZXJyIDwgMCkgewo+ICAJCWRldl9lcnIoaGRtaS0+ZGV2LCAiZmFp bGVkIHRvIHNldHVwIEFWSSBpbmZvZnJhbWU6ICV6ZFxuIiwgZXJyKTsKPiAgCQlyZXR1cm47Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9zb3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS90ZWdyYS9zb3IuYwo+IGluZGV4IGIxMjlkYTJlNWFmZC4uZDkwYmY1ZjZhNjdhIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9zb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS90ZWdyYS9zb3IuYwo+IEBAIC0yMTE2LDcgKzIxMTYsOCBAQCB0ZWdyYV9zb3JfaGRtaV9zZXR1 cF9hdmlfaW5mb2ZyYW1lKHN0cnVjdCB0ZWdyYV9zb3IgKnNvciwKPiAgCXZhbHVlICY9IH5JTkZP RlJBTUVfQ1RSTF9FTkFCTEU7Cj4gIAl0ZWdyYV9zb3Jfd3JpdGVsKHNvciwgdmFsdWUsIFNPUl9I RE1JX0FWSV9JTkZPRlJBTUVfQ1RSTCk7Cj4gIAo+IC0JZXJyID0gZHJtX2hkbWlfYXZpX2luZm9m cmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUsIG1vZGUsIGZhbHNlKTsKPiArCWVyciA9IGRy bV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLAo+ICsJCQkJCQkg ICAgICAgJnNvci0+b3V0cHV0LmNvbm5lY3RvciwgbW9kZSk7Cj4gIAlpZiAoZXJyIDwgMCkgewo+ ICAJCWRldl9lcnIoc29yLT5kZXYsICJmYWlsZWQgdG8gc2V0dXAgQVZJIGluZm9mcmFtZTogJWRc biIsIGVycik7Cj4gIAkJcmV0dXJuIGVycjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaGRtaS5jCj4gaW5kZXgg ZmQ1NTIyZmQxNzllLi5jYjNkY2E3NDI2YzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaGRtaS5jCj4g QEAgLTQwOSwyMiArNDA5LDI1IEBAIHN0YXRpYyB2b2lkIHZjNF9oZG1pX3NldF9hdmlfaW5mb2Zy YW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgewo+ICAJc3RydWN0IHZjNF9oZG1p X2VuY29kZXIgKnZjNF9lbmNvZGVyID0gdG9fdmM0X2hkbWlfZW5jb2RlcihlbmNvZGVyKTsKPiAg CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGVuY29kZXItPmNydGM7Cj4gKwlzdHJ1Y3QgdmM0X2Rl diAqdmM0ID0gdG9fdmM0X2RldihlbmNvZGVyLT5kZXYpOwo+ICsJc3RydWN0IHZjNF9oZG1pICpo ZG1pID0gdmM0LT5oZG1pOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUg PSAmY3J0Yy0+c3RhdGUtPmFkanVzdGVkX21vZGU7Cj4gIAl1bmlvbiBoZG1pX2luZm9mcmFtZSBm cmFtZTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JcmV0ID0gZHJtX2hkbWlfYXZpX2luZm9mcmFtZV9m cm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUuYXZpLCBtb2RlLCBmYWxzZSk7Cj4gKwlyZXQgPSBkcm1f aGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZS5hdmksCj4gKwkJCQkJ CSAgICAgICBoZG1pLT5jb25uZWN0b3IsIG1vZGUpOwo+ICAJaWYgKHJldCA8IDApIHsKPiAgCQlE Uk1fRVJST1IoImNvdWxkbid0IGZpbGwgQVZJIGluZm9mcmFtZVxuIik7Cj4gIAkJcmV0dXJuOwo+ ICAJfQo+ICAKPiAtCWRybV9oZG1pX2F2aV9pbmZvZnJhbWVfcXVhbnRfcmFuZ2UoJmZyYW1lLmF2 aSwgbW9kZSwKPiArCWRybV9oZG1pX2F2aV9pbmZvZnJhbWVfcXVhbnRfcmFuZ2UoJmZyYW1lLmF2 aSwKPiArCQkJCQkgICBoZG1pLT5jb25uZWN0b3IsIG1vZGUsCj4gIAkJCQkJICAgdmM0X2VuY29k ZXItPmxpbWl0ZWRfcmdiX3JhbmdlID8KPiAgCQkJCQkgICBIRE1JX1FVQU5USVpBVElPTl9SQU5H RV9MSU1JVEVEIDoKPiAgCQkJCQkgICBIRE1JX1FVQU5USVpBVElPTl9SQU5HRV9GVUxMLAo+IC0J CQkJCSAgIHZjNF9lbmNvZGVyLT5yZ2JfcmFuZ2Vfc2VsZWN0YWJsZSwKPiAtCQkJCQkgICBmYWxz ZSk7Cj4gKwkJCQkJICAgdmM0X2VuY29kZXItPnJnYl9yYW5nZV9zZWxlY3RhYmxlKTsKPiAgCj4g IAl2YzRfaGRtaV93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgJmZyYW1lKTsKPiAgfQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0venRlL3p4X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS96 dGUvenhfaGRtaS5jCj4gaW5kZXggNzg2NTUyNjlkODQzLi45ZmM5OGJiNGYzZDkgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0venRlL3p4X2hkbWkuYwo+IEBAIC0xMjUsNyArMTI1LDkgQEAgc3RhdGljIGludCB6eF9oZG1p X2NvbmZpZ192aWRlb19hdmkoc3RydWN0IHp4X2hkbWkgKmhkbWksCj4gIAl1bmlvbiBoZG1pX2lu Zm9mcmFtZSBmcmFtZTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JcmV0ID0gZHJtX2hkbWlfYXZpX2lu Zm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJhbWUuYXZpLCBtb2RlLCBmYWxzZSk7Cj4gKwly ZXQgPSBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZS5hdmks Cj4gKwkJCQkJCSAgICAgICAmaGRtaS0+Y29ubmVjdG9yLAo+ICsJCQkJCQkgICAgICAgbW9kZSk7 Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0RFVl9FUlJPUihoZG1pLT5kZXYsICJmYWlsZWQgdG8g Z2V0IGF2aSBpbmZvZnJhbWU6ICVkXG4iLAo+ICAJCQkgICAgICByZXQpOwo+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAo+IGluZGV4 IGUzYzQwNDgzMzExNS4uOWRiNmYxMzBkZjY1IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9lZGlkLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4gQEAgLTM1MiwxOCArMzUy LDE4IEBAIGRybV9sb2FkX2VkaWRfZmlybXdhcmUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiAgCj4gIGludAo+ICBkcm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9t b2RlKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lLAo+IC0JCQkJCSBjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiAtCQkJCQkgYm9vbCBpc19oZG1pMl9zaW5rKTsK PiArCQkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCQkgY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+ICBpbnQKPiAgZHJtX2hkbWlfdmVuZG9y X2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZShzdHJ1Y3QgaGRtaV92ZW5kb3JfaW5mb2ZyYW1l ICpmcmFtZSwKPiAgCQkJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAg CQkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+ICB2b2lkCj4g IGRybV9oZG1pX2F2aV9pbmZvZnJhbWVfcXVhbnRfcmFuZ2Uoc3RydWN0IGhkbWlfYXZpX2luZm9m cmFtZSAqZnJhbWUsCj4gKwkJCQkgICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ ICAJCQkJICAgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gIAkJCQkgICBl bnVtIGhkbWlfcXVhbnRpemF0aW9uX3JhbmdlIHJnYl9xdWFudF9yYW5nZSwKPiAtCQkJCSAgIGJv b2wgcmdiX3F1YW50X3JhbmdlX3NlbGVjdGFibGUsCj4gLQkJCQkgICBib29sIGlzX2hkbWkyX3Np bmspOwo+ICsJCQkJICAgYm9vbCByZ2JfcXVhbnRfcmFuZ2Vfc2VsZWN0YWJsZSk7Cj4gIAo+ICAv KioKPiAgICogZHJtX2VsZF9tbmwgLSBHZXQgRUxEIG1vbml0b3IgbmFtZSBsZW5ndGggaW4gYnl0 ZXMuCgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8g bWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K